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