System information
 007C = FCBCR EQU FCB+32 ;CURRENT (NEXT) RECORD 
;NUMBER (0 TO 127)
 007D = FCBLN EQU FCB+33 ;FCB LENGTH
 ;
 ; SET UP STACK
 0100 210000  LXI H,0
 0103 39  DAD SP
 ; ENTRY STACK POINTER IN HL FROM THE CCP
 0104 221502  SHLD OLDSP
 ; SET SP TO LOCAL STACK AREA (RESTORED AT FINIS)
 0107 315702  LXI SP,STKTOP
 ; READ AND PRINT SUCCESSIVE BUFFERS
 010A CDC101  CALL SETUP ;SET UP INPUT FILE
 010D FEFF  CPI 255 ;255 IF FILE NOT PRESENT
 010F C21B01  JNZ OPENOK ;SKIP IF OPEN IS OK
 ;
 ; FILE NOT THERE, GIVE ERROR MESSAGE AND RETURN
 0112 11F301  LXI D,OPNMSG
 0115 CD9C01  CALL ERR
 0118 C35101  JMP FINIS ;TO RETURN
 ;
 OPENOK: ;OPEN OPERATION OK, SET BUFFER INDEX TO END
 011B 3E80  MVI A,80H
 011D 321302  STA IBP ;SET BUFFER POINTER TO 80H
 ; HL CONTAINS NEXT ADDRESS TO PRINT
 0120 210000  LXI H,0 ;START WITH 0000
 ;
 GLOOP:
 0123 E5  PUSH H ;SAVE LINE POSITION
 0124 CDA201  CALL GNB
 0127 E1  POP H ;RECALL LINE POSITION
 0128 DA5101  JC FINIS ;CARRY SET BY GNB IF END FILE
 012B 47  MOV B,A
 ; PRINT HEX VALUES
 ; CHECK FOR LINE FOLD
 012C 7D  MOV A,L
5.4 A Sample File Dump Utility CP/M Operating System Manual
5-41










