80-Bus News


January–February 1983, Volume 2, Issue 1

Page 21 of 56

It should be noted that if the origional CBIOS is replaced as described later, then the resulting CP/M cannot be directly changed in size to suit a different Memory size. This is not really a problem since most people will probably be using 64K RAM anyway and will not want to change the size. Once the Software is set up it does not take long to reconfigure CP/M and insert the new CBIOS in any case. The method described here is to put the new BIOS into a copy of CP/M configured for the RAM size required and which is non relocatable.

The other way to do the job is to change the BIOS in MOVCPM.COM, the program that is used to alter CP/M to suit changing memory size. To do this requires Software that most people do not have available, as described below.



Figure 1. The MOVCPM Program and CP/M Image in RAM

The mapping of MOVCPM is shown in Fig. 1, which represents an ‘image’ of the program after it has been loaded into memory. It is important to note the following addresses. (Which could be different particularly on other systems.) Use your BUG program to look at your copy.

1)0100HStart of MOVCPM Relocation Module
2)0900HStart of CP/M System Track ‘Image’. – 200H bytes that holds the COLD BOOT LOADER.​(1 Sector = 512 bytes decimal.)
3)0B00HStart of CCP. This is 800H bytes long (4 Sectors = 2K decimal.)
4)1300HStart of BDOS. This is E00H bytes long. (7 Sectors=3.5K decimal.)
5)2100HStart of BIOS. This length varies as described later, but cannot exceed 8 Sectors = 4K decimal on this Disk System.
6)2C50HBIT MAPS. The start address is approximate and it will change depanding on the version of CP/M and length of the BIOS.
7)XXXXHEnd of BIT MAPS. Again a variable address.

(According to CP/M UG UK the first 6 bytes of the BDOS are the Serial number of CP/M and should be retained intact for programs to run.)

The MOVCPM program contains a section to Relocate CP/M, and also a copy of CP/M ‘organized’ for low memory. The program also contains a module called a BIT MAP. This contains data which tells the relocation part which BYTES to alter when CP/M is ‘moved’ to suit a different memory size. If the BIOS is changed then the relevant part of the BIT MAP must also be changed. An assembler that can create a .PRL (Page Relocatable) File is needed to do the job, so this method is not available unless such an assembler is to hand.

Page 21 of 56