System information
 16B6 219C16  LXI H,SIGNON
 16B9 CDD317  CALL PRMSG ;PRINT MESSAGE
 16BC AF  XRA A ;CLEAR ACCUMULATOR
 16BD 320400  STA CDISK ;SET INITIALLY TO DISK A
 16C0 C30F17  JMP GOCPM ;GO TO CP/M
 ;
 ;
 WBOOT:; LOADER ON TRACK 0, SECTOR 1, WHICH WILL BE SKIPPED FOR
WARM 
 ; READ CP/M FROM DISK - ASSUMING THERE IS A 128 BYTE COLD
START
 ; START.
 ;
 16C3 318000  LXI SP,BUFF ;USING DMA - THUS 80 THRU FF 
;AVAILABLE FOR STACK
 ;
 16C6 0E0A  MVI C,RETRY ;MAX RETRIES
 16C8 C5 PUSH B
 WBOOT0: ;ENTER HERE ON ERROR RETRIES
 16C9 010000  LXI B,CPMB ;SET DMA ADDRESS TO START OF 
;DISK SYSTEM
 16CC CDBB17  CALL SETDMA
 16CF 0E00  MVI C,0 ;BOOT FROM DRIVE 0
 16D1 CD7D17  CALL SELDSK
 16D4 0E00  MVI C,0
 16D6 CDA717  CALL SETTRK ;START WITH TRACK 0
 16D9 0E02  MVI C,2 ;START READING SECTOR 2
 16DB CDAC17  CALL SETSEC
 ;
 ; READ SECTORS, COUNT NSECTS TO ZERO
 16DE C1  POP B ;10-ERROR COUNT
 16DF 062C  MVI B,NSECTS
 RDSEC: ;READ NEXT SECTOR
 16E1 C5  PUSH B ;SAVE SECTOR COUNT
 16E2 CDC117  CALL READ
 16E5 C24917  JNZ BOOTERR ;RETRY IF ERRORS OCCUR
 16E8 2A6C18  LHLD IOD ;INCREMENT DMA ADDRESS
 16EB 118000  LXI D,128 ;SECTOR SIZE
 16EE 19  DAD D ;INCREMENTED DMA ADDRESS IN HL
 16EF 44  MOV B,H
 16F0 4D  MOV C,L ;READY FOR CALL TO SET DMA
 16F1 CDBB17  CALL SETDMA
 16F4 3A6B18  LDA IOS ;SECTOR NUMBER JUST READ
 16F7 FE1A  CPI 26 ;READ LAST SECTOR?
 16F9 DA0517  JC RD1
Appendix A : The MDS-800 BIOS CP/M Operating System Manual
A-6










