System information
RDSEC:  ; READ NEXT SECTOR
  CALL RDSEC   ; USER SUPPLIED SUBROUTINE
  LXI D,128  ; MOVE LOAD ADDRESS TO NEXT 1/2
 ; PAGE
  DAD D  ; HL = HL + 128
  INR C  ; SECTOR = SECTOR + 1
  MOV A,C   ; CHECK FOR END OF TRACK
  CPI 27
   JC RDSEC  ; CARRY GENERATED IF SECTOR <27
;
; ARRIVE HERE AT END OF TRACK, MOVE TO NEXT TRACK
  INR B 
  MOV A,B   ; TEST FOR LAST TRACK
  CPI 2
   JC RDTRK  ; CARRY GENERATED IF TRACK <2
;
; USER SUPPLIED SUBROUTINE TO READ THE DISK
READSEC:
; ENTER WITH TRACK NUMBER IN REGISTER B,
; SECTOR NUMBER IN REGISTER C,
; AND ADDRESS TO FILL IN HL
;
  PUSH B  ; SAVE B AND C REGISTERS
  PUSH H  ; SAVE HL REGISTERS
 ***********************************************
 PERFORM DISK READ AT THIS POINT, BRANCH TO
 LABEL "START" IF AN ERROR OCCURS
 ***********************************************
  POP H  ; RECOVER HL
  POP B  ; RECOVER B AND C REGISTERS
  RET  ; BACK TO MAIN PROGRAM
  END START 
 Listing 6-1. GETSYS Program
6.4 Sample GETSYS and PUTSYS CP/M Operating System Manual
6-12










