System information

;THIS IS A SAMPLE COLD START LOADER, WHICH, WHEN
;MODIFIED
;RESIDES ON TRACK 00, SECTOR 01 (THE FIRST SECTOR ON THE
;DISKETTE), WE ASSUME THAT THE CONTROLLER HAS LOADED
;THIS SECTOR INTO MEMORY UPON SYSTEM START-UP (THIS
;PROGRAM CAN BE KEYED-IN, OR CAN EXIST IN READ-ONLY
;MEMORY
;BEYOND THE ADDRESS SPACE OF THE CP/M VERSION YOU ARE
;RUNNING). THE COLD START LOADER BRINGS THE CP/M SYSTEM
;INTO MEMORY AT"LOADP" (3400H +"BIAS"). IN A 20K
;MEMORY SYSTEM, THE VALUE OF"BIAS" IS 000H, WITH
;LARGE
;VALUES FOR INCREASED MEMORY SIZES (SEE SECTION 2).
;AFTER
;LOADING THE CP/M SYSTEM, THE COLD START LOADER
;BRANCHES
;TO THE "BOOT" ENTRY POINT OF THE BIOS, WHICH BEGINS AT
; "BIOS" +"BIAS". THE COLD START LOADER IS NOT USED UN-
;TIL THE SYSTEM IS POWERED UP AGAIN, AS LONG AS THE BIOS
;IS NOT OVERWRITTEN. THE ORIGIN IS ASSUMED AT 0000H, AND
;MUST BE CHANGED IF THE CONTROLLER BRINGS THE COLD START
;LOADER INTO ANOTHER AREA, OR IF A READ-ONLY MEMORY
;AREA
;IS USED.
0000 ORG 0 ;BASE OF RAM IN
;CP/M
0014 = MSIZE EQU 20 ;MIN MEM SIZE IN
;KBYTES
0000 = BIAS EQU (MSIZE-20)*1024 ;OFFSET FROM 20K
;SYSTEM
3400 = CCP EQU 3400H+BIAS ;BASE OF THE CCP
4A00 = BIOS EQU CCP+1600H ;BASE OF THE BIOS
0300 = BIOSL EQU 0300H ;LENGTH OF THE BIOS
4A00 = BOOT EQU BIOS
1900 = SIZE EQU BIOS+BIOSL-CCP ;SIZE OF CP/M
;SYSTEM
0032 = SECTS EQU SIZE/128 ;# OF SECTORS TO LOAD
;
; BEGIN THE LOAD OPERATION
COLD:
0000 010200 LXI B,2 ;B=0, C=SECTOR 2
0003 1632 MVI D,SECTS ;D=# SECTORS TO
;LOAD
0005 210034 LXI H,CCP ;BASE TRANSFER
Appendix D : MDS-800 Cold Start Loader CP/M Operating System Manual
E-1