Compare commits
10 Commits
7154c9bfc8
...
main
Author | SHA1 | Date | |
---|---|---|---|
37c56f30f7 | |||
3b8f72d53c | |||
3a7cbdf550 | |||
051aab4695 | |||
bd1dbf9e19 | |||
e2eefe89c2 | |||
c068a870cf | |||
765263ab4c | |||
c795732223 | |||
b80c22eaff |
@@ -5,10 +5,12 @@ RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
build-essential \
|
||||
make \
|
||||
python3-pip \
|
||||
unzip \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ADD https://github.com/z00m128/sjasmplus.git#v1.21.0 /sjasmplus
|
||||
RUN cd /sjasmplus && make && make install
|
||||
RUN cd /sjasmplus && make -j8 && make install
|
||||
ADD https://boarstone.mcphail.uk/mcphail/spectrum_remload.git /ttttt
|
||||
RUN cd /ttttt && make ttttt
|
||||
ADD https://github.com/einar-saukas/ZX0.git /zx0
|
||||
@@ -17,6 +19,10 @@ RUN cd /zx0/src/ \
|
||||
&& gcc -O2 -o dzx0 dzx0.c
|
||||
ADD https://www.boriel.com/files/zxb/zxbasic-1.18.1-linux64.tar.gz .
|
||||
RUN tar xf zxbasic*
|
||||
ADD https://github.com/Mastodon-/inpaws.git /inpaws
|
||||
RUN cd /inpaws/ \
|
||||
&& make -j8
|
||||
RUN python3 -m pip install --break-system-packages skoolkit
|
||||
|
||||
FROM build AS z88dk
|
||||
RUN apt-get update \
|
||||
@@ -58,6 +64,7 @@ RUN cpanm -l $HOME/perl5 --no-wget local::lib Template::Plugin::YAML \
|
||||
&& cd ${Z88DK_PATH} \
|
||||
&& eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)" \
|
||||
&& chmod 777 build.sh \
|
||||
&& sed -i -e "s/make/make -j8/g" build.sh \
|
||||
&& BUILD_SDCC=1 BUILD_SDCC_HTTP=1 ./build.sh \
|
||||
&& make install-clean bins-clean
|
||||
|
||||
@@ -83,6 +90,9 @@ COPY --from=build /zxbasic/zxbasm.py /opt/zxbasic/zxbasm
|
||||
COPY --from=build /zxbasic/zxbc.py /opt/zxbasic/zxbc
|
||||
COPY --from=build /zxbasic/zxbpp.py /opt/zxbasic/zxbpp
|
||||
COPY --from=build /zxbasic/src /opt/zxbasic/src
|
||||
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=z88dk /opt/z88dk/bin /opt/z88dk/bin
|
||||
COPY --from=z88dk /opt/z88dk/lib /opt/z88dk/lib
|
||||
COPY --from=z88dk /opt/z88dk/include /opt/z88dk/include
|
||||
|
3
Makefile
3
Makefile
@@ -29,8 +29,7 @@ clean:
|
||||
rm -f *.zx0
|
||||
rm -rf .tmp/
|
||||
|
||||
start_new_project:
|
||||
make clean
|
||||
start_new_project: clean
|
||||
rm -rf .git
|
||||
git init -b main
|
||||
git add .devcontainer/ .vscode/ .gitignore
|
||||
|
76
README.md
76
README.md
@@ -34,10 +34,82 @@ The devcontainer contains:
|
||||
- zxbasm (assembler)
|
||||
- zxbpp (preprocessor)
|
||||
- ttttt (converts binaries into .tap blocks)
|
||||
- inpaws (interactive fiction compiler/extractor for Gilsoft's PAW)
|
||||
- skoolkit (tools for creating browseable disassemblies of Spectrum games)
|
||||
- sna2ctl.py
|
||||
- sna2skool.py
|
||||
- skool2html.py
|
||||
- skool2asm.py
|
||||
- skool2ctl.py
|
||||
- skool2bin.py
|
||||
- tap2sna.py
|
||||
- snapinfo.py
|
||||
- trace.py
|
||||
- rzxplay.py
|
||||
- tapinfo.py
|
||||
- rzxinfo.py
|
||||
- bin2tap.py
|
||||
- bin2sna.py
|
||||
- snapmod.py
|
||||
- sna2img.py
|
||||
- git (version control)
|
||||
- make (build control)
|
||||
|
||||
Build the example project by running `make` from the terminal or the VSCode extension.
|
||||
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!
|
||||
|
||||
## Install
|
||||
|
||||
This devcontainer should work in Windows, Linux and MacOS. It is recommended to install:
|
||||
- git, then configure user name and email address
|
||||
- docker, or alternative like podman
|
||||
- (Windows only, optional) Windows Subsystem for Linux, version 2
|
||||
- Microsoft's vscode
|
||||
- the "Dev Containers" extension (from Microsoft) within vscode
|
||||
|
||||
Make sure docker (or your alternative) is running before trying to use the devcontainer.
|
||||
|
||||
## Usage
|
||||
|
||||

|
||||
|
||||
Open a terminal and navigate to the directory which will contain your Spectrum projects. Run `git clone https://github.com/mcphail/speccydev.git your_project_name` and enter that directory. Start vscode by running `code .` inside the directory.
|
||||
|
||||
If you have installed the Dev Containers extension correctly, a popup will offer to reload the project within a devcontainer. Go ahead and allow this. The first time you use this devcontainer, it may take a few minutes to download and start. It should open more quickly on subsequent use.
|
||||
|
||||
Open the bottom bar in vscode to expose the terminal or select "Terminal -> New Terminal" from the menu bar. Try running some Linux commands like `ls -lh` or `date`. Build the example project by running `make` from the terminal or the VSCode extension. Experiment with editing some of the source files and running `make` again. Experiment with some of the assemblers, compilers and other tools mentioned above. The `Makefile` contains example usage of tools like sjasmplus, zmakebas, Boriel's BASIC and the FUSE utilities.
|
||||
|
||||
When you are ready to start your own project, run `make start_new_project` to wipe out the example code and start afresh.
|
||||
|
||||
## Debugging
|
||||
|
||||
Debug in the built in simulator or in CSpect externally (example CSpect invocation on Windows would be `CSpect.exe -w2 -debug -remote`). The simulator is set up to expect a binary called `myprog.sna` and a map file called `myprog.sld` but this can be configured in the `.vscode/launch.json` file.
|
||||
|
||||
Debug in the built in simulator or in CSpect externally (example CSpect invocation on Windows would be `CSpect.exe -w2 -debug -remote`).
|
||||
*Note: to use CSpect debugging from a Linux host you will have to edit the file `.vscode/launch.json` to change the `"hostname"` parameter to `"localhost"`*
|
||||
|
||||
## Licences
|
||||
|
||||
pamso - copyright Julián Albo and released under the GPL
|
||||
|
||||
sjasmplus - copyright aprisobal and released under BSD 3-clause
|
||||
|
||||
z80asm - copyright Bas Wijnen and released under GPL v3 or later
|
||||
|
||||
z80dasm - copyright Jan Panteltje and Tomaz Solc and released under GPL v2
|
||||
|
||||
zmakebas - placed under Public Domain by Russell Marks
|
||||
|
||||
z88dk - copyright the z88dk authors and released under the Clarified Artistic License
|
||||
|
||||
FUSE utilities - copyright Philip Kendall and contributors and released under GPL v2
|
||||
|
||||
zx0 and dzx0 - copyright Einar Saukas and released under BSD 3-clause
|
||||
|
||||
Boriel BASIC - copyleft Jose Rodriguez-Rosa and released under AGPL v3 and portions under MIT
|
||||
|
||||
ttttt - placed under Public Domain by Neil McPhail
|
||||
|
||||
inpaws - copyright "Mastodon" and released under GPL v3
|
||||
|
||||
skoolkit - copyright Richard Dymond and Philip M Anderson and released under GPL v3 or later
|
BIN
res/speccydev.gif
Normal file
BIN
res/speccydev.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 304 KiB |
Reference in New Issue
Block a user