It had 2k of Memory on board - 1k providing a 48 x 16 black and white display and 1k for user programs. There was also a 1k ROM Monitor providing facilities to write simple machine code programs, and a cassette interface largely implemented in hardware. Hardware extensions mostly involved adding more RAM or ROMs containing Basic.
The emulator supports all the hardware of the standard Nascom 1 I know about - the keyboard and display, the cassette port and the hardware single stepping code. It has been tested on the Nas Sys 4 ROM (supplied) but also seems to work fine with the T4 ROM (also supplied). However, the hardware has been mostly produced by reverse engineering the ROM images, so it isn't surprising.....
Everything is available in the distribution to allow the emulator to work ; there are a choice of two monitor ROMs. There is a configuration file (see the file for details of what it contains) and a special 6 x 12 font file to allow the Nascom Screen to fit correctly on a standard VGA Mode 13 display
The emulator is started by typing 'NASCOM' which boots the machine into
the monitor selected in the configuration file NASCOM.CFG. By default this
is the Nas Sys 4 monitor. The following keys are available.
F1 | Reset |
F10 | Enter Debugger |
ESC | Quit |
F1 | Set Breakpoint |
F5 | View Display |
F7 | Step over procedure |
F8 | Single Step |
F9 | Run to break |
ESC | Return to emulator |
Arrow keys/0-F | Change Program (Data address with shift) |
A xxxx yyyy | Print sum, difference and offset |
B xxxx | Set breakpoint |
C aaaa bbbb cccc | Dumb copy of cccc bytes from aaaa to bbbb |
D xxxx yyyy | Memory dump to display/tape |
E aaaa | Execute |
G aaaa bbbb cccc | Write tape data, create an 'autoexecute tape' |
I aaaa bbbb cccc | Intelligent copy (see C) |
K n | Set shift lock/caps lock/inverse |
L | Copy keys to tape |
M nnnn | Modify |
N | Set default i/o routines |
O pp dd | Output dd to port pp |
Q pp | Query port pp |
R | Read from tape |
S eeee | Single step |
T aaaa bbbb | Memory dump from aaaa to bbbb |
W aaaa bbbb | Write to tape memory from aaaa to bbbb |
X | Haven't figured it out yet |
Z xxxx | Set new monitor command table |
? | Display available commands. |