5 Commits
v4.0 ... v6.0

Author SHA1 Message Date
91e987b972 Add TAPTOOLS 2026-02-23 12:31:47 +00:00
f2510aedc2 Bug fix for Boriel BASIC 2026-02-09 21:36:51 +00:00
97418fa1ef Hotfix for Boriel BASIC 2026-02-02 00:10:52 +00:00
e6cb4ab37e Update boriel basic and sjasmplus to latest 2026-01-19 09:20:37 +00:00
1a04a2e83e Typo 2025-12-08 21:44:41 +00:00
3 changed files with 34 additions and 15 deletions

View File

@@ -7,12 +7,13 @@ RUN apt-get update \
automake \ automake \
build-essential \ build-essential \
fpc \ fpc \
libdsk4-dev \
make \ make \
python3-pip \ python3-pip \
unzip \ unzip \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
ADD https://github.com/z00m128/sjasmplus.git#v1.21.0 /sjasmplus ADD https://github.com/z00m128/sjasmplus.git#v1.21.1 /sjasmplus
RUN cd /sjasmplus && make -j8 && make install RUN cd /sjasmplus && make -j8 && make install
ADD https://boarstone.mcphail.uk/mcphail/spectrum_remload.git /ttttt ADD https://boarstone.mcphail.uk/mcphail/spectrum_remload.git /ttttt
RUN cd /ttttt && make ttttt RUN cd /ttttt && make ttttt
@@ -20,7 +21,7 @@ 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-1.18.4-linux64.tar.gz . ADD https://www.boriel.com/files/zxb/zxbasic-1.18.7-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/ \
@@ -38,6 +39,11 @@ RUN cd /hdfmonkey/ \
ADD https://github.com/pleumann/pasta80.git#v0.96 /opt/pasta80 ADD https://github.com/pleumann/pasta80.git#v0.96 /opt/pasta80
RUN cd /opt/pasta80 \ RUN cd /opt/pasta80 \
&& fpc pasta && fpc pasta
ADD --unpack https://www.seasip.info/ZX/taptools-1.1.3.tar.gz taptools/
RUN cd taptools/taptools* \
&& ./configure \
&& make -j8 \
&& make install
FROM ubuntu:24.04 AS z88dk FROM ubuntu:24.04 AS z88dk
RUN apt-get update \ RUN apt-get update \
@@ -90,6 +96,8 @@ RUN apt-get update \
ca-certificates \ ca-certificates \
fuse-emulator-utils \ fuse-emulator-utils \
git \ git \
libdsk4 \
libdsk-utils \
m4 \ m4 \
make \ make \
openssh-client \ openssh-client \
@@ -99,7 +107,6 @@ RUN apt-get update \
z80dasm \ z80dasm \
zmakebas \ zmakebas \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
COPY --from=build /usr/local/bin/sjasmplus /bin/sjasmplus
COPY --from=build /ttttt/ttttt /bin/ttttt COPY --from=build /ttttt/ttttt /bin/ttttt
COPY --from=build /zx0/src/zx0 /bin/zx0 COPY --from=build /zx0/src/zx0 /bin/zx0
COPY --from=build /zx0/src/dzx0 /bin/dzx0 COPY --from=build /zx0/src/dzx0 /bin/dzx0
@@ -111,7 +118,6 @@ 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=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:/opt/pasta80" ENV PATH="${PATH}:/opt/z88dk/bin:/opt/zxbasic:/opt/zxbasic/tools:/opt/pasta80"

View File

@@ -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:v4.0", "image": "boarstone.mcphail.uk/mcphail/speccydev:v6.0",
"remoteUser": "ubuntu", "remoteUser": "ubuntu",
"runArgs": [ "runArgs": [
"--network=host" "--network=host"

View File

@@ -1,10 +1,10 @@
# Development tools for the ZX Spectrum v4.0 # Development tools for the ZX Spectrum v6.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.
The devcontainer contains: The devcontainer contains:
- pasmo version 0.5.3 (assembler) - pasmo version 0.5.3 (assembler)
- sjasmplus version 1.21.0 (assembler) - sjasmplus version 1.21.1 (assembler)
- 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)
@@ -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.4 - ZX BASIC (aka Boriel BASIC) version 1.18.7
- zxbc (BASIC compiler) - zxbc (BASIC compiler)
- zxbasm (assembler) - zxbasm (assembler)
- zxbpp (preprocessor) - zxbpp (preprocessor)
@@ -57,20 +57,31 @@ The devcontainer contains:
- hdfmonkey version 0.4 (for manipulating sdcard files for the Spectrum Next) - hdfmonkey version 0.4 (for manipulating sdcard files for the Spectrum Next)
- git (version control) - git (version control)
- make (build control) - make (build control)
- John Elliott's TAPTOOLS version 1.1.3
- specform (add +3DOS header to a file)
- unspecform (removes +3DOS header)
- tapcat (combines files into a .tap file)
- tapls (lists content of a .tap file)
- tapget (extracts one or more files from a .tap file)
- tapsplit (extracts everything from a .tap file in one go)
- tap2dsk (builds a +3 or PCDOS image from a .tap file)
- mkp3fs (builds a +3 or PCDOS image from separate files)
- bin2bas (wraps a machine code program in a 2-line BASIC program that runs it)
- sna2tap (converts a .sna format snapshot to a .tap file)
- sna2dsk (converts a .sna format snapshot to a .dsk file)
- dsk2tap (converts a .dsk image to a .tap file which when run on a +3 recreates the original disk)
Several useful VSCode extentsions will be installed, including a Z80 assembly language server, Z80 and C debugger, Makefile support, BASIC syntax highlighter and more. Several useful VSCode extentsions will be installed, including a Z80 assembly language server, Z80 and C debugger, Makefile support, BASIC syntax highlighter and more.
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 v3.x ## Breaking changes from v5.x
Boriel BASIC (zxbasic) has been updated. There have been further bug fixes to array referencing which may break old code reliant on previous behaviour. Some of the binaries, such as `sjasmplus`, are now found in a different $PATH, which may break some existing build scripts.
## New additions from v2.x ## New additions from v5.2
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`! Addition of TAPTOOLS.
`hdfmonkey` is a useful tool for manipulating the sdcard images needed for the Spectrum Next and its emulators.
## Install ## Install
@@ -109,7 +120,7 @@ Debug in the built in simulator or in CSpect externally (example CSpect invocati
## Licences ## Licences
pamso - copyright Julián Albo and released under the GPL pasmo - copyright Julián Albo and released under the GPL
sjasmplus - copyright aprisobal and released under BSD 3-clause sjasmplus - copyright aprisobal and released under BSD 3-clause
@@ -136,3 +147,5 @@ skoolkit - copyright Richard Dymond and Philip M Anderson and released under GPL
hdfmonkey - copyright Matt Westcott and released under GPL v3 hdfmonkey - copyright Matt Westcott and released under GPL v3
PASTA/80 - copyright Jörg Pleumann and released under GPL v3 with linking exception PASTA/80 - copyright Jörg Pleumann and released under GPL v3 with linking exception
TAPTOOLS - copyright John Elliott and released under GPL v2