Scorpio News |
July–September 1987 – Volume 1. Issue 3. |
Page 30 of 67 |
---|
RAM Start Address V | Function V | Image File Start Address V | |
0FFD0H > | Z3 CCP Stack | 042D0H < Set to All 00’s | ^ |
0FF00H > | Z3 Cmd Buff | 04200H < Startup Command, then 00’s | |
0FED0H > | Z3 Ext FCB | 041D0H < Set All 00’s | |
0PES0H > | Z3 Msg Buffs | 04180H < Set All 00’s | ZCPR3 |
0FE00H > | Z3 Shl Stack | 04100H < Set All 00’s | Buffers |
0FD00H > | Z3 SYS.NDR | 04000H < Overlay with SYS.NDR | and |
0FC00H > | Z3 SYS.ENV | 03F00H < Overlay with SYS.ENV | Segments |
0FA00H > | Z3 SYS.FCP | 03D00H < Overlay with SYS.FCP | |
0F200H > | Z3 SYS.RCP | 03500H < Overlay with SYS.RCP | v |
0DE00H > | CBIOS | 02100H < BIOS (Possibly Overlaid) | ^ |
0D0C0H > | BDOS/BDOSZ | 01300H < BDOS (Possibly Overlaid) | Normal |
0C800H > | ZCPR3 CCP | 00B00H < Z3 CCP Overlay | MOVCPM |
N/A > | Cold Boot Ldr. | 00900H < System Cold Boot Loader | Image |
N/A > | MOVCPM | 00100H < MOVCPM relocation module | v |
The starting point for this operation is MOVCPM.COM. The first step is to generate a CP/M with CCP starting at 0C800H. This can be achieved by setting the byte at 023DH in MOVCPM to 18h to reserve 24 extra pages, and then issuing the command MOVCPM 64 *. Once MOVCPM has completed its task, the system image in the TPA is saved to a file – SAVE 42 CPMC8.COM. We now have a CP/M system that should run at 0C800H. This can be checked by SYSGENing it, booting and running one of the CPM address display utilities described above. Note that the byte at 023DH in MOVCPM reserves extra memory for a larger or smaller BIOS in 256 byte units. Add 1 for each extra ‘page’ of memory required.
If you are using Gemini BIOS 3, then MOVCPM is not used. You can still generate your system, CPM64W for example, reserving sufficient workspace pages in the SYSTEMW.CFG file to get CP/M down to the target area.
The important thing to remember is that the system that is being constructed is to boot from a Winchester, so the Cold Boot Loader sector must be suitable for this purpose. The loader in CPM64W is O.K. but those in CPM64F and CPM64FW are not. If it is intended to create a completely new system, (i.e. Z3 CCP, BDOSZ, and a modified or non Gemini BIOS, the Winchester cold boot loader can be transported from a CPM64W file, or the new parts of CP/M can be overlaid on the CPM64W file.
CPMC8.COM or CPM64W can be loaded into memory with a DEBUG program. At this stage, all that will exist in RAM will be that shown in the diagram from 100H to about 3000H. The top address is vague because the exact address will depend on the BIOS present, and there may be other bit map data present. The cold boot loader that loads the rest of CP/M off of the disk into memory will be present at 900H, CCP at B00H, BDOS at 1300H, and BIOS at 2100H. The MOVCPM relocator will occupy the area from 100H to 8FFH.
Page 30 of 67 |
---|