The toolchain I’ve started using for development on the ZX Spectrum Next is as follows:

  • Visual Studio Code – Editor, with the following extensions:
    • Z80 Assembly 0.0.3 by Imanolea
    • DeZog 1.4.8 by Maziac (this is a renamed update to Z80 Debugger 0.9.1, also by Maziac)
  • ZEsarUX 9.0 – Emulator
  • sjasmplus 1.17.0 – Z80 compiler

Click on the links for instructions on installing them.

Copying and building the source code

Download the latest source code here and follow the build instructions to test your build toolchain

Visual Studio Project File: launch.json

Visual Studio Code configuration file for launching the debugger

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "dezog",
            "request": "launch",
            "name": "Z80 Debugger",
            "zrcp": {
                "hostname": "localhost",
                "port": 10000
            },
//          "topOfStack": "Stack_Top",
            "rootFolder": "${fileDirname}",
            "listFiles": [
              {
                  "path": "${fileDirname}/${fileBasenameNoExtension}.lst",
                  "useFiles": true,
                  "asm": "sjasmplus",
                  "mainFile": "${fileDirname}/${fileBasenameNoExtension}.z80"
              }
            ],
            "disassemblerArgs": {
                "esxdosRst": true
            },
            "load": "${fileDirname}/${fileBasenameNoExtension}.nex",
            "skipInterrupt": false,
            "startAutomatically": false,
            "preLaunchTask": "sjasmplus"
        }
    ]
}

Visual Studio Project File: tasks.json

Visual Studio Code configuration file for compiling the source code

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
 		{
            "label": "sjasmplus",
            "type": "shell",
            "command": "sjasmplus", 
            "args": [
		"--lst=${fileDirname}/${fileBasenameNoExtension}.lst",
                "${file}" 
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

Z80 Source Sample

Compile a SNA file with sjasmplus

		OPT --zxnext	

		DEVICE ZXSPECTRUMNEXT

Code_Start:	EQU 0x8000
		ORG Code_Start

		include "demo_scroll.z80"

		SAVENEX OPEN "Demo/build_scroll.nex", Code_Start
		SAVENEX CORE 3, 0, 0
		SAVENEX CFG  0
		SAVENEX BAR  1, 0xE0, 50, 25
		SAVENEX AUTO
		SAVENEX CLOSE