I should like to thank Peter Bell and Mike Waters for their help. In the first
issue of Scorpio News, I referred to a
bug in BDOSz. Apparently I had been
using an old version. The problem has now been resolved.
Soft Warm Boot on a Nascom
by R. Mohamed
No, its nothing to do with footwear. The title refers to a software controlled
reset sequence or a warm boot (in CP/M) on my Nascom 2.
The idea was developed from an
article by David Parkinson
(INMC-80 News issue 4) describing the use of the
EPROM board as a ROM-disk (i.e. copying software
from ROM to RAM). I developed software (E.O.S. - EPROM Operating System of
course) to copy any programs held in ROM into memory at their usual address and
execute them or just load the software into RAM at any address.
With my Nascom 2 power-on-jump switch set to A000h and EOS present here on a
reset, the system worked well. But if I was using disks, say under CP/M, then
pressing reset would load Nas-Sys 3 and display the EOS menu. Not very helpful.
I had the choice of altering the power-on-jump , when working with disks, via
hardware or software. Some later articles advocated the use of simple hardware
(diodes and switches) to alter the jump-on-reset address. I decided against
this approach for two reasons, it is technically inelegant and more importantly,
my Nascom 2 is encased in a large steel box. This made is practically
impossible to get at the switches, even to the extent of adding a remote switch.
The software approach has been successful and over the years has been enhanced
to its current level. The software switch allows for 3 options, warm boot from
ROM (standard system), warm boot from disk (non-standard system) or a reset to
Nas-Sys and the EOS menu.
Referring to the listing, the software recognises the remains of CP/M code at
page 0 by means of the two jump instructions at 0000h and 0005h. It is not
particularly rigorous, but I have not had any problems. If both of these jumps
are not present then it is assumed that Nas-Sys was running so execution jumps
to the rest of the EOS code (‘reset’).