System information
0140 FE01 CPI WRDIR ;TO DIRECTORY?
0142 3A7101 LDA ERFLAG ;IN CASE OF ERRORS
0145 C0 RNZ ;NO FURTHER PROCESSING
;
; CLEAR HOST BUFFER FOR DIRECTORY WRITE
0146 B7 ORA A ;ERRORS?
0147 C0 RNZ ;SKIP IF SO
0148 AF XRA A ;0 TO ACCUM
0149 326B01 STA HSTWRT ;BUFFER WRITTEN
014C CD5F01 CALL WRITEHST
014F 3A7101 LDA ERFLAG
0152 C9 RET
;
;*****************************************************
;* *
;* UTILITY SUBROUTINE FOR 16-BIT COMPARE *
;* *
;*****************************************************
SEKTRKCMP:
;HL = .UNATRK OR .HSTTRK, COMPARE WITH SEKTRK
0153 EB XCHG
0154 216201 LXI H,SEKTRK
0157 1A LDAX D ;LOW BYTE COMPARE
0158 BE CMP M ;SAME?
0159 C0 RNZ ;RETURN IF NOT
; LOW BYTES EQUAL, TEST HIGH 1S
015A 13 INX D
015B 23 INX H
015C 1A LDAX D
015D BE CMP M ;SETS FLAGS
015E C9 RET
;
;*****************************************************
;* *
;* WRITEHST PERFORMS THE PHYSICAL WRITE TO *
;* THE HOST DISK, READHST READS THE PHYSICAL *
;* DISK. *
;* *
;*****************************************************
WRITEHST:
;HSTDSK = HOST DISK #, HSTTRK = HOST TRACK #,
;HSTSEC = HOST SECT #. WRITE "HSTSIZ" BYTES
;FROM HSTBUF AND RETURN ERROR FLAG IN ERFLAG.
;RETURN ERFLAG NON-ZERO IF ERROR
015F C9 RET
Appendix G : Blocking and Deblocking Algorithms CP/M Operating System Manual
G-8