Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| faa40d9f58 | |||
| 856c40cc59 | |||
| 23512a7b4e | |||
| 00c8691af8 | |||
| dc4ca0ff5d | |||
| 630d8e6810 | |||
| c8fd3c309b |
@@ -3,7 +3,10 @@
|
|||||||
FROM ubuntu:24.04 AS build
|
FROM ubuntu:24.04 AS build
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get install -y --no-install-recommends \
|
&& apt-get install -y --no-install-recommends \
|
||||||
|
autoconf \
|
||||||
|
automake \
|
||||||
build-essential \
|
build-essential \
|
||||||
|
fpc \
|
||||||
make \
|
make \
|
||||||
python3-pip \
|
python3-pip \
|
||||||
unzip \
|
unzip \
|
||||||
@@ -17,12 +20,24 @@ ADD https://github.com/einar-saukas/ZX0.git /zx0
|
|||||||
RUN cd /zx0/src/ \
|
RUN cd /zx0/src/ \
|
||||||
&& gcc -O2 -o zx0 zx0.c optimize.c compress.c memory.c \
|
&& gcc -O2 -o zx0 zx0.c optimize.c compress.c memory.c \
|
||||||
&& gcc -O2 -o dzx0 dzx0.c
|
&& gcc -O2 -o dzx0 dzx0.c
|
||||||
ADD https://www.boriel.com/files/zxb/zxbasic-v1.18.3-beta5-linux64.tar.gz .
|
ADD https://www.boriel.com/files/zxb/zxbasic-1.18.3-linux64.tar.gz .
|
||||||
RUN tar xf zxbasic*
|
RUN tar xf zxbasic*
|
||||||
ADD https://github.com/Mastodon-/inpaws.git /inpaws
|
ADD https://github.com/Mastodon-/inpaws.git /inpaws
|
||||||
RUN cd /inpaws/ \
|
RUN cd /inpaws/ \
|
||||||
&& make -j8
|
&& make -j8
|
||||||
RUN python3 -m pip install --break-system-packages skoolkit
|
RUN python3 -m pip install --break-system-packages skoolkit
|
||||||
|
ADD https://github.com/gasman/hdfmonkey.git /hdfmonkey
|
||||||
|
RUN cd /hdfmonkey/ \
|
||||||
|
&& autoheader \
|
||||||
|
&& aclocal \
|
||||||
|
&& autoconf \
|
||||||
|
&& automake -a \
|
||||||
|
&& ./configure \
|
||||||
|
&& make -j16 \
|
||||||
|
&& make install
|
||||||
|
ADD https://github.com/pleumann/pasta80.git#v0.96 /opt/pasta80
|
||||||
|
RUN cd /opt/pasta80 \
|
||||||
|
&& fpc pasta
|
||||||
|
|
||||||
FROM ubuntu:24.04 AS z88dk
|
FROM ubuntu:24.04 AS z88dk
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
@@ -62,7 +77,7 @@ RUN apt-get update \
|
|||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
ENV Z88DK_PATH="/opt/z88dk"
|
ENV Z88DK_PATH="/opt/z88dk"
|
||||||
RUN cpanm -l $HOME/perl5 --no-wget local::lib Template::Plugin::YAML \
|
RUN cpanm -l $HOME/perl5 --no-wget local::lib Template::Plugin::YAML \
|
||||||
&& git clone --depth 1 --recursive https://github.com/z88dk/z88dk.git ${Z88DK_PATH} \
|
&& git clone --depth 1 --branch v2.4 --recursive https://github.com/z88dk/z88dk.git ${Z88DK_PATH} \
|
||||||
&& cd ${Z88DK_PATH} \
|
&& cd ${Z88DK_PATH} \
|
||||||
&& eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)" \
|
&& eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)" \
|
||||||
&& chmod 777 build.sh \
|
&& chmod 777 build.sh \
|
||||||
@@ -96,7 +111,9 @@ COPY --from=build /zxbasic/tools /opt/zxbasic/tools
|
|||||||
COPY --from=build /inpaws/inpaws /bin/inpaws
|
COPY --from=build /inpaws/inpaws /bin/inpaws
|
||||||
COPY --from=build /usr/local/bin/ /usr/local/bin/
|
COPY --from=build /usr/local/bin/ /usr/local/bin/
|
||||||
COPY --from=build /usr/local/lib/python3.12/dist-packages/skoolkit/ /usr/local/lib/python3.12/dist-packages/skoolkit/
|
COPY --from=build /usr/local/lib/python3.12/dist-packages/skoolkit/ /usr/local/lib/python3.12/dist-packages/skoolkit/
|
||||||
|
COPY --from=build /usr/local/bin/hdfmonkey /bin/hdfmonkey
|
||||||
|
COPY --from=build /opt/pasta80 /opt/pasta80
|
||||||
COPY --from=z88dk /opt/z88dk/ /opt/z88dk/
|
COPY --from=z88dk /opt/z88dk/ /opt/z88dk/
|
||||||
ENV PATH="${PATH}:/opt/z88dk/bin:/opt/zxbasic:/opt/zxbasic/tools"
|
ENV PATH="${PATH}:/opt/z88dk/bin:/opt/zxbasic:/opt/zxbasic/tools:/opt/pasta80"
|
||||||
ENV ZCCCFG="/opt/z88dk/lib/config"
|
ENV ZCCCFG="/opt/z88dk/lib/config"
|
||||||
USER ubuntu
|
USER ubuntu
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "ZX Spectrum dev tools",
|
"name": "ZX Spectrum dev tools",
|
||||||
//"build": { "dockerfile": "Dockerfile" },
|
//"build": { "dockerfile": "Dockerfile" },
|
||||||
// The Dockerfile takes an age to build due to z88dk, so pull from prebuilt:
|
// The Dockerfile takes an age to build due to z88dk, so pull from prebuilt:
|
||||||
"image": "boarstone.mcphail.uk/mcphail/speccydev:v1.0",
|
"image": "boarstone.mcphail.uk/mcphail/speccydev:v3.0",
|
||||||
"remoteUser": "ubuntu",
|
"remoteUser": "ubuntu",
|
||||||
"runArgs": [
|
"runArgs": [
|
||||||
"--network=host"
|
"--network=host"
|
||||||
|
|||||||
22
README.md
22
README.md
@@ -1,4 +1,4 @@
|
|||||||
# Development tools for the ZX Spectrum v1.0
|
# Development tools for the ZX Spectrum v3.0
|
||||||
|
|
||||||
The Dockerfile is the basis of the devcontainer and can be changed to add or remove tools. It will take a long time to build locally, so by default the devcontainer will pull a prebuilt version. Edit `.devcontainer/devcontainer.json` if you would rather build your own.
|
The Dockerfile is the basis of the devcontainer and can be changed to add or remove tools. It will take a long time to build locally, so by default the devcontainer will pull a prebuilt version. Edit `.devcontainer/devcontainer.json` if you would rather build your own.
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ The devcontainer contains:
|
|||||||
- z80asm version 1.8 (assembler)
|
- z80asm version 1.8 (assembler)
|
||||||
- z80dasm version 1.1.6 (disassembler)
|
- z80dasm version 1.1.6 (disassembler)
|
||||||
- zmakebas version 1.2b (creates BASIC programs)
|
- zmakebas version 1.2b (creates BASIC programs)
|
||||||
- z88dk version 2.3 (C compiler and other utilities including assembler)
|
- z88dk version 2.4 (C compiler and other utilities including assembler)
|
||||||
- utilities from the FUSE emulator version 1.4.3:
|
- utilities from the FUSE emulator version 1.4.3:
|
||||||
- audio2tape
|
- audio2tape
|
||||||
- createhdf
|
- createhdf
|
||||||
@@ -29,7 +29,7 @@ The devcontainer contains:
|
|||||||
- tzxlist
|
- tzxlist
|
||||||
- zx0 (binary compressor)
|
- zx0 (binary compressor)
|
||||||
- dzx0 (binary decompressor)
|
- dzx0 (binary decompressor)
|
||||||
- ZX BASIC (aka Boriel BASIC) version 1.18.2
|
- ZX BASIC (aka Boriel BASIC) version 1.18.3
|
||||||
- zxbc (BASIC compiler)
|
- zxbc (BASIC compiler)
|
||||||
- zxbasm (assembler)
|
- zxbasm (assembler)
|
||||||
- zxbpp (preprocessor)
|
- zxbpp (preprocessor)
|
||||||
@@ -53,6 +53,8 @@ The devcontainer contains:
|
|||||||
- bin2sna.py
|
- bin2sna.py
|
||||||
- snapmod.py
|
- snapmod.py
|
||||||
- sna2img.py
|
- sna2img.py
|
||||||
|
- pasta80 version 0.96 (PASCAL compiler)
|
||||||
|
- hdfmonkey version 0.4 (for manipulating sdcard files for the Spectrum Next)
|
||||||
- git (version control)
|
- git (version control)
|
||||||
- make (build control)
|
- make (build control)
|
||||||
|
|
||||||
@@ -60,6 +62,16 @@ Several useful VSCode extentsions will be installed, including a Z80 assembly la
|
|||||||
|
|
||||||
Thanks to the many authors of these wonderful tools and extensions; to think what we could have made with these in 1985!
|
Thanks to the many authors of these wonderful tools and extensions; to think what we could have made with these in 1985!
|
||||||
|
|
||||||
|
## Breaking changes from v2.x
|
||||||
|
|
||||||
|
Boriel BASIC (zxbasic) has been updated. This version corrects a bug when referencing array data from assembly language. Code reliant on the old, faulty, behaviour may break.
|
||||||
|
|
||||||
|
## New additions from v2.x
|
||||||
|
|
||||||
|
The `pasta80` PASCAL compiler has been added. Example code is in `/opt/pasta80/examples`. Invoke the compiler by running `pasta`. A fun feature is that it can run in an IDE mode with vscode integration by running `pasta --ide`!
|
||||||
|
|
||||||
|
`hdfmonkey` is a useful tool for manipulating the sdcard images needed for the Spectrum Next and its emulators.
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
This devcontainer should work in Windows, Linux and MacOS. It is recommended to install:
|
This devcontainer should work in Windows, Linux and MacOS. It is recommended to install:
|
||||||
@@ -120,3 +132,7 @@ ttttt - placed under Public Domain by Neil McPhail
|
|||||||
inpaws - copyright "Mastodon" and released under GPL v3
|
inpaws - copyright "Mastodon" and released under GPL v3
|
||||||
|
|
||||||
skoolkit - copyright Richard Dymond and Philip M Anderson and released under GPL v3 or later
|
skoolkit - copyright Richard Dymond and Philip M Anderson and released under GPL v3 or later
|
||||||
|
|
||||||
|
hdfmonkey - copyright Matt Westcott and released under GPL v3
|
||||||
|
|
||||||
|
PASTA/80 - copyright Jörg Pleumann and released under GPL v3 with linking exception
|
||||||
|
|||||||
Reference in New Issue
Block a user