Introduction - Dotneteer/spectnetide GitHub Wiki

Get the ZX Spectrum IDE

This project contains several Visual Studio 2017 packages. To be able to compile and run the project, you need to install the Visual Studio extension development workload:

  1. Start the Visual Studio 2017 IDE
  2. With the Tools|Get Tools and Features command, launch the Visual Studio Installer.
  3. Make sure to select the Visual Studio extension development workload:

Visual Studio Installer

  1. Click the Modify button. (Note: You need to close the VS 2017 IDE while the installer runs.)

Obtain and Run the Source Code

  1. Get the source code from this Github repository:
git clone https://github.com/Dotneteer/spectnetide.git
  1. Open the Spect.Net.sln solution file in Visual Studio 2017.
  2. Create the artifacts with the Build|Rebuild Solution command. (Note: The first time it might take time while VS loads the required NuGet packages.)
  3. In Solution Explorer, use the context menu to set the Spect.Net.VsPackage project in the VsIntegration folder as the startup project.
  4. Go to the Properties page of the Spect.Net.VsPackage project, and in the Debug tab set the VS 2017 devenv.exe file to run with the /rootsuffix Exp command line. This setting takes care starting the Visual Studio Experimental Instance with the ZX Spectrum IDE loaded.
  5. Use the Debug|Start Without Debugging command (Ctrl+F5) to run the project. (Note: Do not use the Start Debugging command unless you need it. Without debugging VS 2017 will start much faster.)

Create Your First ZX Spectrum Project

After the VS IDE (Experimental Instance) starts, you cannot see any new menu telling you that the ZX Spectrum IDE is loaded. However, in the Help|About dialog, you can see that the package is now active:

VS Help About Dialog

To display the ZX Spectrum related menus, first create a ZX Spectrum project:

  1. Run the File|New|Project command (Ctrl+Shift+N), select the ZX Spectrum tab and choose the ZX Spectrum Code Discovery project type. Specify a project name (use PacManDiscovery).

New Zx Spectrum Project

  1. The IDE creates a new project with a few files and folders:

Solution Explorer with the new project

File/Folder Description
Rom The folder that holds Spectrum ROMs
Rom/ZxSpectrum48.rom The binary ROM file for the Spectrum 48K model
Rom/ZxSpectrum48.disann Disassembly annotations for the Spectrum 48K ROM
SavedStates Used for future extension (stores virtual machine state files)
TapeFiles Stores .TZX (and, in the future, other) tape files
Annotations.disann Your custom disassembly annotations are saved into this file
  1. As soon as the IDE created the project, you can discover a new top level menu, ZX Spectrum IDE:

ZX Spectrum IDE menu

  1. In Solution Explorer, select the TapeFiles folder, and use the Add|Existing item context menu command to add a new .TZX file to the project. In the git repository of the spectnetide project, in the Spect.Net.VsPackage/TzxResources folder, you find a couple of .TZX files. For the sake of demonstration, choose Pac-Man.tzx, and add it to the project:

New TZX file added to the project

Run the ZX Spectrum Virtual Machine

1 . Run the ZX Spectrum IDE|ZX Spectrum Emulator command. The shows up the emulator tool window. As the title of the tool window indicates, the virtual machine is momentarily stopped.

The Emulator Tool Window

  1. Click the little Play icon in the toolbar of the emulator to start the virtual machine. The ZX Spectrum comes to life. As you resize the tool window, the emulator changes its screen size, accordingly.

Spectrum VM started

  1. Type the LOAD "" command into the emulator. Take care that the emulator window is the active one, receiving the keyboard focus, and press the J, and then twice the Shift+P keys again. With pressing Enter, you can execute LOAD "". Th virtual machine starts loading the Pac-Man.tzx file.

Loading a Game

  1. When the game has been loaded, it starts, just like it would on a physical ZX Spectrum.

Pac-Man in action

Going On

You have just scratched the surface! There are many other features you can use in the IDE to discover the structure and internals of ZX Spectrum applications.