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.

wane eee HRERK The MOVCPMV/N.COM Program (VARIABLE) keene System Track Image ---------- >> 1 00H 9Q0H BOOH 1300H 21 OOH 2C50H XXXXH [-------------------- |[------][------- ][--------- ][-------------- I[----] LRRRRERER ET [ERR LL EERE EE | | KER ERR ERE | EKER EERE REE | ERE] Relocation Module lol CCP BDOS CBIOS BIT MAPS iol 1 Unused space – app. O1AOH bytes 1 COLD BOOT LOADER

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)O100H – Start of MOVCPM Relocation Module

2)O900H – Start of CP/M System Track ‘Image’. – 200H bytes that holds the COLD BOOT LOADER.(1 Sector = 512 bytes decimal.)

3)OBOOH – Start of CCP. This is 800H bytes long (4 Sectors = 2K decimal.)

4)1300H – Start of BDOS. This is EOOH bytes long. (7 Sectors=3.5K decimal.)

5)2100H – Start of BIOS. This length varies as described later, but cannot exceed 8 Sectors = 4K decimal on this Disk System.

6)2C50H – BIT MAPS. The start address is approximate and it will change depanding on the version of CP/M and length of the BIOS.

7)XXXXH – End 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.

This is an OCR’d version of the scanned page and likely contains recognition errors.

Page 21 of 56