SpectNet IDE

Visual Studio 2017/2019 integrated ZX Spectrum IDE for the Community

Version 2.0 is coming soon!

I have been actively working on version 2 since June 2019. The first public preview will be available in November 2019. The main themes of version 2:

  • Totally rewitten Visual Studio integration. I removed many annoying issues related to solution loading
  • Multiple ZX Spectrum projects. You can put more than one ZX Spectrum project into a single solution. While working, you can change the active project anytime.
  • Boriel's BASIC (ZX BASIC) integration. Besides Z80 assembly, now, you can use ZX BASIC as your programming language to create spectacular games and applications.
  • New debugging tools. The ZX Spectrum emulator provides two extra options: ULA render point indication, and shadow screen rendering.
  • New, more modern project item icons

Preview 1 will have these limitations:

  • ZX BASIC source code debugging is not supported yet
  • Z80 Assembler Output and Z80 Unit Test Explorer is not supported yet
  • SpectNetIDE is available only on VS 2019 (all editions supported)
  • Spectrum Scripting Console App project type removed

Essential Tools

SpectNet IDE encapsulates the tools you need to develop Z80 Programs for the ZX Spectrum 48K, 128+, and +3E. It integrates with Visual Studio 2017 and 2019 IDE, including the free Community editions.

Download SpectNet IDE

Get VS 2017 or 2019 Community

SpectNet IDE Archive

ZX Spectrum Project Types

In Visual Studio, you can create ZX Spectrum projects. SpectNetIde provides two project types out of the box.

You can use the ZX Spectrum Code Discovery Project to analyze, examine, and debug the Z80 code of the ROM, games, and other applications. Also, you can create your own Z80 assembly programs with the built-in assembler.

The ZX Scripting Console App allows you to write C# applications to create scripts that control the ZX Spectrum virtual machine. This project type can be used to understand how games run (e.g. equip them with "eternal life"), and automate tasks that help you peep into the code that could not be solved otherwise.

ZX Spectrum Emulator

The built-in ZX Spectrum Emulator allows you to run a virtual machine just like the original hardware. It not only ensures high-fidelity operation of the selected ZX Spectrum model; you can pause the machine any time to start debugging.

The emulator allows you to save and restore the paused state of the virtual machine, moreover, you can store these files as a part of your project.

Z80 Disassembly

The built-in Z80 Disassembler has many unique features that only SpectNetIDE provides. It not only turns binary code into Z80 disassembly, but it allows you to annotate the code.

You can define labels and symbols as well as tail or prefix comments. To separate code and data, you can mark segments of the binary as a byte or a word array or a memory area to ignore.

The SpectNetIDE disassembler understands ZX Spectrum specific code, such as the byte code following the RST $08 and RST $28 instructions, and generates the output accordingly.

The disassembler understands the extended Z80 instruction set of ZX Spectrum Next, and — of course — handles all undocumented Z80 operations. The IDE comes with annotated ROMs for each model, including ZX Spectrum 48K, +128, and +3E.

Debugging tools

Creating and analyzing code is in the heart of SpectNetIDE. The environment provides many tools to examine the running code, the state of the CPU, the ULA, and the memory.

When stepping through code, you can immediately get information about the number of T-cycles spent between to stops, as well as the clock cycles wasted for contended memory access.

With the help of the Disassembly tool window, you can set up simple breakpoints, and even define conditions to pause the execution flow.

The Memory tool window allows you to have a real-time view of the memory, highlighting the addresses pointed by one of the 16-bit Z80 register pairs.

To examine the running code, you can define and show watch expressions that combine the state of registers, flags, and memory locations into display values that tell you what the program does.

Full-blown Z80 assembly programming

SpectNetIde provides you a robust Z80 assembler with many useful features.

  • Syntax-highlighted editor
  • Flexible syntax
  • String escape sequences for ZX Spectrum-specific characters
  • Loops and conditional statements
  • Powerful dynamic macros

You can set up breakpoint in the source code. When the execution flow reaches one of them, the corresponding source code is displayed. The Debug, Pause, Step-Into, Step-Over, and Step-Out commands are available with source code, too.

You can export the Z80 assembly code into .TZX and .TAP code files that can be immediately LOADed into ZX Spectrum — with optional auto start support.

... And many others

  • Two types of ZX Spectrum keyboards
  • Tape File Explorer
  • Call Stack Tool Window
  • Unit Tests for Z80 Code
  • ZX Spectrum BASIC List
  • Virtual floppy devices and disks for ZX Spectrum +3E