Scor­pio News


July–September 1988 – Volume 2. Issue 3.

Page 16 of 39

Load Address Block 316 bits absolute address
Length of Block 37 bits sector count + flag
Load Address Block 416 bits absolute address
Length of Block 47 bits sector count + flag

This structure takes 16 bytes and allows each section to be broken into up to 4 blocks of up to 16K (128 CP/M records). The length bytes have a flag in bit 7 to indicate the end of the section. Since I used one logical sector to contain the entire table, I could have up to 8 sections, but it would obviously be possible to use more sectors and have more sections. To make life simple I wrote a short program to combine standard object files (.COM files) to make up an overlay file with addresses provided from the console, although a submit file with XSUB can be used to control it.

The machine code to operate this system takes about 70 bytes once the file is open and the reference table is loaded. I have included a listing of it. It will not allow returns to the caller since this was not necessary in my application but it should be easy to do. Also it does not keep a record of the last section loaded but this should not be too difficult either. Naturally it uses random access file handling.

Page 16 of 39