1)I have included “signon” messages and also a ‘Putvid’ type of screen
printing routine. These are copied to RAM at O9000H and ‘Jumped to’ by
the COLD BOOT LOADER after CPMSYS64 has been loaded. If I need routines
like “cinit” or UART initialization, they can be placed in this area of
memory as well. After printing the ‘signon’ messages the routine jumps
to BIOS to start CP/M. Any CP/M that contains OLDBIOS, and does not have
a modified COLD BOOT will skip these messages but will display its’ own
2)I have modified the ‘TAB’ routine so that 16 locations are displayed on
a line, in HEX and ASCII. The HEX is displayed in columns of four bytes.
This mod. is really more useful with the IVC card display as there is
a lot of ‘wrap around’ on the NASCOM 48 wide screen, but it can be used.
3)I have also added a few extra bytes so that I can now ‘Dump’ the ‘TAB’
output to my IMP Printer.
4)The ‘SIMON’ signon messages have been increased to show that a modified
SIMON is in use. A list of Command keys is also displayed as a reminder
of the commands available in SIMON.
It may be necessary in the future to add a ‘cinit’ routine, and it would also be
possible to include any special initialization routines for UARTS etc. By
reducing the very extensive ‘signon’ messages, or using an even larger ROM (!)
there is scope for almost any addition, such as direct Memory dump to
cassette/disk, and so on.
N.B. If the initialization routines in middle memory make any calls to CP/M to
print messages, or to clear characters as “cinit” does, then since CP/M has at
that stage NOT been started, it will be necessary to initialize the ‘ BDOS jump ‘
and IOBYTE in low memory BEFORE making any calls to BDOS otherwise the system
I hope that this article has been of some help to others who, like me want to
learn more about some of the less well documented features and operations of CP/M
systems. ( I must apologise however, to the Authors of the various Programs for
the liberties that I, an amateur ‘hacker’, have taken with their software, and
hope that this will be accepted in the cause of ‘‘Learning’.)
NOTE :- My method of Booting NASSYS and CP/M from EPROM CARD is described in
8O0BUS NEWS No 1. (N.B. There is an error in the diagram on page 45 of that
article. The wiper of S1A goes to pin 2 of LKS1, not to pin 3.)
we nee ee es nt en a HERE ERREE e e
Appendix 1. The Mapping of CP/M in Memory.
es sa ee as <= 0 SE SR Shh i SON Ht Se Stam SN St ee ah
Above the line, addresses refer to CP/M from MOVMODV
00C0H 0100H D800H H000H EE00H PERFFH
0000H * 01 00H * DC00H * E400H * F200H ‘ FRFFH
1 i 1 1 1
i 1 1 1 1
CP/M Workspace TPA CCP BDOS CBIOS
Below the line, addresses refer to CP/M from MOVOLD
Figure 3. CP/M Memory Addresses for two different CBIOS’s, assuming 64K RAM.
See com cea em a ts mm rm <i mh mh inh tte te AR mR AA Se SEU SONY OS i tH Se Smt St te ar i! mame a ca