System information

0197 F1 POP PSW
0198 CD7D01 CALL PNIB
019B C9 RET
;
ERR: ;PRINT ERROR MESSAGE
; D,E ADDRESSES MESSAGE ENDING WITH "$"
019C 0E09 MVI C,PRINTF ;PRINT BUFFER FUNCTION
019E CD0500 CALL BDOS
01A1 C9 RET
;
;
GNB: ;GET NEXT BYTE
01A2 3A1302 LDA IBP
01A5 FE80 CPI 80H
01A7 C2B301 JNZ G0
; READ ANOTHER BUFFER
;
;
01AA CDCE01 CALL DISKR
01AD B7 ORA A ;ZERO VALUE IF READ OK
01AE CAB301 JZ G0 ;FOR ANOTHER BYTE
; END OF DATA, RETURN WITH CARRY SET FOR EOF
01B1 37 STC
01B2 C9 RET
;
G0: ;READ THE BYTE AT BUFF+REG A
01B3 5F MOV E,A ;LS BYTE OF BUFFER INDEX
01B4 1600 MVI D,0 ;DOUBLE PRECISION INDEX TO DE
01B6 3C INR A ;INDEX=INDEX+1
01B7 321302 STA IBP ;BACK TO MEMORY
; POINTER IS INCREMENTED
; SAVE THE CURRENT FILE ADDRESS
01BA 218000 LXI H,BUFF
01BD 19 DAD D
; ABSOLUTE CHARACTER ADDRESS IS IN HL
01BE 7E MOV A,M
; BYTE IS IN THE ACCUMULATOR
01BF B7 ORA A ;RESET CARRY BIT
01C0 C9 RET
;
5.4 A Sample File Dump Utility CP/M Operating System Manual
5-44