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 \
build-essential \
fpc \
libdsk4-dev \
make \
python3-pip \
unzip \
&& 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
ADD https://boarstone.mcphail.uk/mcphail/spectrum_remload.git /ttttt
RUN cd /ttttt && make ttttt
@@ -20,7 +21,7 @@ ADD https://github.com/einar-saukas/ZX0.git /zx0
RUN cd /zx0/src/ \
&& gcc -O2 -o zx0 zx0.c optimize.c compress.c memory.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*
ADD https://github.com/Mastodon-/inpaws.git /inpaws
RUN cd /inpaws/ \
@@ -38,6 +39,11 @@ RUN cd /hdfmonkey/ \
ADD https://github.com/pleumann/pasta80.git#v0.96 /opt/pasta80
RUN cd /opt/pasta80 \
&& 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
RUN apt-get update \
@@ -90,6 +96,8 @@ RUN apt-get update \
ca-certificates \
fuse-emulator-utils \
git \
libdsk4 \
libdsk-utils \
m4 \
make \
openssh-client \
@@ -99,7 +107,6 @@ RUN apt-get update \
z80dasm \
zmakebas \
&& 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 /zx0/src/zx0 /bin/zx0
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 /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/bin/hdfmonkey /bin/hdfmonkey
COPY --from=build /opt/pasta80 /opt/pasta80
COPY --from=z88dk /opt/z88dk/ /opt/z88dk/
ENV PATH="${PATH}:/opt/z88dk/bin:/opt/zxbasic:/opt/zxbasic/tools:/opt/pasta80"

View File

@@ -2,7 +2,7 @@
"name": "ZX Spectrum dev tools",
//"build": { "dockerfile": "Dockerfile" },
// 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",
"runArgs": [
"--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 devcontainer contains:
- pasmo version 0.5.3 (assembler)
- sjasmplus version 1.21.0 (assembler)
- sjasmplus version 1.21.1 (assembler)
- z80asm version 1.8 (assembler)
- z80dasm version 1.1.6 (disassembler)
- zmakebas version 1.2b (creates BASIC programs)
@@ -29,7 +29,7 @@ The devcontainer contains:
- tzxlist
- zx0 (binary compressor)
- dzx0 (binary decompressor)
- ZX BASIC (aka Boriel BASIC) version 1.18.4
- ZX BASIC (aka Boriel BASIC) version 1.18.7
- zxbc (BASIC compiler)
- zxbasm (assembler)
- zxbpp (preprocessor)
@@ -57,20 +57,31 @@ The devcontainer contains:
- hdfmonkey version 0.4 (for manipulating sdcard files for the Spectrum Next)
- git (version 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.
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`!
`hdfmonkey` is a useful tool for manipulating the sdcard images needed for the Spectrum Next and its emulators.
Addition of TAPTOOLS.
## Install
@@ -109,7 +120,7 @@ Debug in the built in simulator or in CSpect externally (example CSpect invocati
## 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
@@ -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
PASTA/80 - copyright Jörg Pleumann and released under GPL v3 with linking exception
TAPTOOLS - copyright John Elliott and released under GPL v2