7 Commits
5 changed files with 29 additions and 21 deletions
+9 -10
View File
@@ -1,9 +1,9 @@
# syntax=docker/dockerfile:1
# My current workflow is to build this on an M1 MacBook for both amd64 and arm64 using:
# docker buildx build --platform linux/arm64/v8,linux/amd64 -t boarstone.mcphail.uk/mcphail/speccydev:tagname .
# docker buildx build --platform linux/arm64/v8,linux/amd64 -t njmcphail/speccydev:tagname .
FROM ubuntu:24.04 AS build
FROM ubuntu:26.04 AS build
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
autoconf \
@@ -16,7 +16,7 @@ RUN apt-get update \
unzip \
&& rm -rf /var/lib/apt/lists/*
ADD https://github.com/z00m128/sjasmplus.git#v1.23.0 /sjasmplus
ADD https://github.com/z00m128/sjasmplus.git#v1.23.1 /sjasmplus
RUN cd /sjasmplus && make -j8 && make install
ADD https://boarstone.mcphail.uk/mcphail/spectrum_remload.git /ttttt
RUN cd /ttttt && make ttttt
@@ -24,8 +24,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.7-linux64.tar.gz .
RUN tar xf zxbasic*
ADD --unpack https://www.boriel.com/files/zxb/zxbasic-1.19.0-linux64.tar.gz .
ADD https://github.com/Mastodon-/inpaws.git /inpaws
RUN cd /inpaws/ \
&& make -j8
@@ -39,17 +38,17 @@ RUN cd /hdfmonkey/ \
&& ./configure \
&& make -j16 \
&& make install
ADD https://github.com/pleumann/pasta80.git#v0.98 /opt/pasta80
ADD https://github.com/pleumann/pasta80.git#v0.99 /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* \
&& cp /usr/share/automake-1.16/config.guess . \
&& cp /usr/share/automake-1.18/config.guess . \
&& ./configure \
&& make -j8 \
&& make install
FROM ubuntu:24.04
FROM ubuntu:26.04
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
@@ -76,7 +75,7 @@ COPY --from=build /zxbasic/src /opt/zxbasic/src
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/lib/python3.14/dist-packages/skoolkit/ /usr/local/lib/python3.14/dist-packages/skoolkit/
COPY --from=build /opt/pasta80 /opt/pasta80
# z88dk takes a long time to cross compile so I'm keeping this in a separate container
@@ -84,7 +83,7 @@ COPY --from=build /opt/pasta80 /opt/pasta80
# is in a subdirectory of this one. If you're building the container yourself you may
# want to alter the next line to your own tagged build of z88dk but you're welcome to
# use mine.
COPY --from=boarstone.mcphail.uk/mcphail/z88dk:v2.4 /opt/z88dk/ /opt/z88dk/
COPY --from=njmcphail/z88dk:v2.4 /opt/z88dk/ /opt/z88dk/
ENV PATH="${PATH}:/opt/z88dk/bin:/opt/zxbasic:/opt/zxbasic/tools:/opt/pasta80"
ENV ZCCCFG="/opt/z88dk/lib/config"
USER ubuntu
+1 -1
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:v8.0",
"image": "njmcphail/speccydev:v9.0",
"remoteUser": "ubuntu",
"runArgs": [
"--network=host"
+1 -1
View File
@@ -1,7 +1,7 @@
# syntax=docker/dockerfile:1
# Similar to the speccydev container, I'm building this with:
# docker buildx build --platform linux/arm64/v8,linux/amd64 -t boarstone.mcphail.uk/mcphail/z88dk:tagname .
# docker buildx build --platform linux/arm64/v8,linux/amd64 -t njmcphail/z88dk:tagname .
FROM ubuntu:24.04 AS build
RUN apt-get update \
+2 -1
View File
@@ -5,4 +5,5 @@
*.tzx
*.block
*.zx0
*.bin
*.bin
.DS_Store
+16 -8
View File
@@ -1,10 +1,10 @@
# Development tools for the ZX Spectrum v8.0
# Development tools for the ZX Spectrum v9.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.23.0 (assembler)
- sjasmplus version 1.23.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.7
- ZX BASIC (aka Boriel BASIC) version 1.19.0
- zxbc (BASIC compiler)
- zxbasm (assembler)
- zxbpp (preprocessor)
@@ -53,7 +53,7 @@ The devcontainer contains:
- bin2sna.py
- snapmod.py
- sna2img.py
- pasta80 version 0.98 (PASCAL compiler)
- pasta80 version 0.99 (PASCAL compiler)
- hdfmonkey version 0.4 (for manipulating sdcard files for the Spectrum Next)
- git (version control)
- make (build control)
@@ -75,13 +75,13 @@ 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!
## Breaking changes from v7.x
## Breaking changes from v8.x
No breaking changes, but this version brings full support for Apple silicon which was not present in previous releases.
The base has been updated from Ubuntu 24.04 to Ubuntu 26.04, largely to bring in python 3.14 which is required for the current release of Boriel BASIC. This may cause some issues, so please report bugs. z88dk is still being built on 24.04 but should be ABI compatible. Again, please report any bugs you find.
## New additions from v7.0
## New additions from v8.3
Native arm64 build for Apple devices.
Minor version update for Boriel BASIC.
## Install
@@ -106,6 +106,14 @@ Open the bottom bar in vscode to expose the terminal or select "Terminal -> New
When you are ready to start your own project, run `make start_new_project` to wipe out the example code and start afresh.
## Add the devcontainer to your existing project
```bash
curl https://raw.githubusercontent.com/mcphail/speccydev/refs/heads/main/.devcontainer/devcontainer.json -o .devcontainer.json
```
You may wish to also add the `.vscode/` directory as well, to configure the debugger.
## Versions
This `main` branch of this repository will always point to the latest numbered release of the devcontainer image. This image will contain specific, numbered releases of the various tools as documented above. If the devcontainer is updated with non-breaking changes, the minor version number will be incremented. This gives reassurance that, say, a v1.7 devcontainer will contain tools which can compile programs made with a v1.2 devcontainer without issue.