Nascom-2 Emulator Documentation

Version 1.0

This is a short documentation for Nasemu, the Nascom-2 Emulator. I will be adding to this as time goes by, but it should be enough to get you started.

If you are new to the Nascom, you can't do much else than using the simulated Tape Recorder to load a file into the emulator and run it.
Later I will add some documentation on the commands for NASSYS-3, the Nascom-2 monitor.

Known quirks and work in progress :

If you have any suggestions, I'll be happy to hear about it. Mail me at : jesperh@telia.com

 

The Trace Window

The Trace Window is the main window for using the emulator as a Z-80 simulator.
It shows a disassembly of the code being executed, and allows you to set breakpoints and tracepoints. Any break- or trace-points set are indicated by the red and green tags. For more info about this, see Breakpoints.

The blue line in the trace window indicates the current instruction, the instruction pointed to by the Program Counter. The focused line is the line which will be the target for a command selected from the trace window popup menu.

 


 

Trace Window Popup

The popup menu offers these choices :
Run to here will set a temporary breakpoint at the current cursor location and start the emulator.
Set PC here will set the Program Counter to the instruction at the cursor.
View at PC scrolls the window so the current instruction can be viewed.
Breakpoints gives a submenu where the various break- and trace-points can be toggled. See Breakpoints for more info.
Format is currently not active.
Font allows you to change the font used in the Trace window.

 

 

 

The Register Window

The register window shows all the registers of the simulated Z-80 CPU.
The values can be changed by simply writing a new value in the edit fields.
Note that the focus need to be moved from the edit field (click on some other window) before the change is activated.


 

 

The Memory Window

The memory contents can be viewed and modified in this window. To view any location, simply scroll to it, using the scroll bar. To modify a value, just position the cursor on the byte to be changed and write the new value.
Note that you can write ASCII values directly, by positioning the cursor on the ASCII part of the window.


 

The Screen Window

This is where it all happens. When the emulator is running, this screen shows an exact copy of the real Nascom-2 screen.
The display is 48 characters * 16 lines, with line 16 being a special non-scrolled line displayed on the top.
Keyboard input and screen output works as on the "real" thing.


 

Screen Window Popup

Here you can select the Zoom factor of the Screen Window.


 

The Toolbar

The buttons on the toolbar duplicates some of the menu functions, and are as follows:
Trace Into - Execute the next instruction, tracing into calls.
Step Over - Execute the next instruction, stepping over calls.
Run to cursor - Execute until PC = cursor position. (this may not occur !)
Run to return - Execute until next RET, RETI or RETN instruction.
Run - Run until next breakpoint (if any).
Stop - Break execution.


Reset CPU - Reset the CPU

Play - Prompts for a file which will then be played on the simulated Tape Recorder.
Stop - Stop recording to the simulated Tape Recorder.
Record - Prompts for a file which will be recorded on the simulated Tape Recorder.

Preferences - opens the Preferences Dialog.

Help - shows program information, version, e.t.c.

 

The Speedbar

The Speedbar contains the Emulation Speed slider and two status windows. One which shows the approximate speed of the emulator and one which shows the current update frequency (frame rate) for the screen window.
The original Nascom-2 was running at 4 MHz, so set the slider to give you around this to get the "real" feel.
The approximate refresh frequency for the Screen window can be adjusted in Preferences. It should be set so you get as high a refresh frequency as possible, without slowing your PC to a halt.

 

The Menu

The options on the menu are:
File - Close windows, Open the Preference Dialog or Exit the application.
View - Controls the visibility of the Tool bars and the emulator windows.
Tape Recorder - Controls the simulated Tape Recorder. See Tape Recorder for more info.
Breakpoints - List the current breakpoints.
Window - Standard menu entry for window handling.
Help - Displays program version information, e.t.c.

 

 

Breakpoints

To help in debugging, the emulator allows you to set break- and trace-points in the code (and memory).
There are three different kinds of breakpoints:

Also, there are three tracepoints, Alpha, Beta and Charlie. Setting any of these, will cause a counter to be incremented every time they are "hit", by program fetch, read or write.
Note. Read/Write breakpoints and Tracepoints not implemented in version 1.0

Breakpoint List Dialog

The Breakpoint List Dialog shows a list of current breakpoints and tracepoints, their type and the hitcounts for the Alpha, Beta and Charlie tracepoints.
Doubleclicking and entry, or selecting an entry and then pressing the Edit button will show the Breakpoint Edit Dialog.


 

Breakpoint Edit Dialog

Here you can edit a breakpoint or tracepoint. The address and the type of breakpoint or tracepoint can be set.
Also, the tracepoint count can be set, or reset.


 

Preferences

The Preferences Dialog contains the emulator setup.
The Approx. Screen Refresh slider, controls the refresh frequency of the emulated Nascom-2 screen. On the real Nascom-2, the screen refresh is handled by hardware, and this is a way to duplicate this and still make the emulator able to run on slower machines. The frequence set here should be adjusted to give as high a refresh frequency as possible, without slowing down your PC too much.
The Memory allocation and mapping list, contains the initial setup of the emulator. For the emulator to work, it should contain the ROM images mapped at the correct positions.
It allows you to map a memory area as either RAM or ROM and optionally select a file to map into this area.
The original Nascom-2 has the monitor ROM mapped from 0x0000-0x7FF, and the BASIC ROM mapped at 0E000-0FFFF.
To change an entry, doubleclick it or select it and press the Edit button. This will display the Memorymap Edit Dialog.


 

Memorymap Edit Dialog

Here you can change the starting and ending address as well as the memory type of the selected area.
You can optionally select a file to map into this memory area.
If a file is selected, the ending address will automatically be adjusted by the size of the file.


 

Tape Recorder

On the original Nascom-2, programs could be saved on (casette) tapes. The emulator has a simulated tape recorder, which which you can simulate recording an playback. The simulated tape recorder uses files on the PC.
To load a tape image into the Nascom-2 emulator, first click the Run button to start the emulator, then click the Play button. Select a file in the filedialog that pops up, and click Ok (or Open). The file should now be loaded into the emulator, exactly like on the real Nascom-2. You should see a sequence of addresses each terminated by a ".".
Like: 1000 0200 . 1100 0100 . 1200 0000 .
If you see a lot of characters scrolling over the screen, it means the "tape" wasn't made with the "G"enerate command to automatically start the "R"ead command, so you'll have to do this manually, before starting the tape recorder.
Start the emulator with the Run button, Enter "R" and press return. Now you can press Play to select and play a file.