HiSoft Devpac

The Plus 3 Version

5th Edition July 1990

This document is a copy of “The Plus 3 Version” chapter, included in the original “HiSoft Devpac, The Assembler/Debugger, Suitable for all ZX Spectrums including 48K, 128K and Plus3 models” manual. Published by Cristian Secară on March 2001.

Devpac on the Spectrum Plus 3 behaves in a similar way to Devpac 4 on the regular Spectrum 128/48. The programs supplied are GENS451 (51-column version of regular 48K/128K assembler), GENP3 (Plus3 assembler), GENP351 (51-column version), MONS4 (regular 48K/128K debugger) and MONP3 (Plus 3 debugger). GENS451 and MONS4 are fully detailed in this manual, while GENP3, GENP351 and MONP3 are slightly different. You should read the main manual and the following notes carefully.

What to do first

Before doing anything, write-protect your master disk and make a back-up copy. This should be done by inserting your master disk and entering

COPY ”A:*.*” TO ”M:”

while in +3BASIC. Then insert a new, blank disk and enter

COPY ”M:*.*” TO ”A:”

You should then put your master disk away and only use the back-up.

GEN Version 5.1

By default, any filing operation (such as the editor’s Get and Put commands) will use drive A; if you wish to use another frive then you should start the filename with the drive letter followed by a colon. If you wish to use tape, use T: before the filename.



loads TEST from the disk in drive A


loads TEST from a disk in drive B


saves all of the current text to cassette with the name SPRITE


assembles the current text file and places the object code in a file called OBJECT on the RAM disk

The Plus3DOS filename convention are used e.g. 8 letters for the filename with 3 letters for the extension.

The RAM disk is fully supported as drive M:.

The editor X command gives you a catalogue of the disk drive. Use X,,s where s is any valid drive/file specifier; the default is A:*.*.



Plus3DOS error messages are reported by number; the error numbers are given in your Plus 3 handbook.

Inclusion from tape while assembling and assembly to tape are not supported.

MON Version 5.1

The greatest difference from version 4 is that MONP3 sits above the RAM disk in hidden RAM leaving virtually all (but 160 bytes) of the 48K RAM for debugging. 160 bytes is needed in safe RAM (anything safe below address 49152) and you are asked for a safe location at start-up. You should give an address (in decimal); 160 bytes from this address will be used for bank switching, safe stack, etc. If you wish to enter MONP3 from BASIC after this initial start-up, you should execute the address you have given as the start of the safe area.

Initially, MONP3 should be loaded and executed at 32768 (decimal); after you have given an address (in decimal) for its first-class RAM usage, it will relocate itself above the RAM disk and reduce the RAM disk/cache buffer by 16K.

The Plus 3 version of MON saves both the screen and the system variables on entry and after a breakpoint. This means that you can inspect your program’s output at any time (use the S command) and that you can single-step/execute programs that use different system variables from MON. This is a very powerful feature.

Numbers may now be entered in decimal at any time by preceding them with the backslash (\ or [SYMBOL SHIFT]-D) character.

RST #28 instructions are followed by DEFW xx since the Plus 3 uses this restart with an inline address.

Disassembly to disk using the T command is supported; simply enter a drive letter (A,B,M), followed by a colon and the filename when prompted Text ?.

The H command now gives a help screen. The old H command that converted from decimal to hex is not needed because of the ability to enter numbers in decimal by preceding them with a \ (reached by [SYMBOL SHIFT]-D).

The R command prompts you to enter a RAM and a ROM memory page. The ROM number can be 0,1,2 or 3 while the RAM page is anything from 0 to 7 inclussive; the RAM page will be swapped in at address #C000 and can be inspected, modified, disassembled, etc. The current RAM and ROM pages are displayed on the Front Panel, above the memory display and to the right.

The S command allows you to inspect the screen state previous to entering MONP3 (whether by a cold start or through a breakpoint). Press the SPACE bar to get back to the Front Panel display.

By the way, there is a misprint in the Plus 3 manual that may cause you problems - page 190, second paragraph - D1...D2 are ROM/RAM switching, D0 affects whether RAM/ROM.

We hope you enjoy using Devpac for the Plus 3 and welcome any comments you may have regarding the package.

We have Plus 3 versions of our standard Pascal compiler, K&R integer C compiler and super-fast floating-point BASIC compiler as well. Please write or phone for details.