System information

00BF+B7 ORA A ;CARRY = 0
00C0+1F RAR ;SHIFT RIGHT
00C1 326901 STA SEKHST ;HOST SECTOR TO SEEK
;
; ACTIVE HOST SECTOR?
00C4 216A01 LXI H,HSTACT ;HOST ACTIVE FLAG
00C7 7E MOV A,M
00C8 3601 MVI M,1 ;ALWAYS BECOMES 1
00CA B7 ORA A ;WAS IT ALREADY?
00CB CAF200 JZ FILHST ;FILL HOST IF NOT
;
; HOST BUFFER ACTIVE, SAME AS SEEK BUFFER?
00CE 3A6101 LDA SEKDSK
00D1 216501 LXI H,HSTDSK ;SAME DISK?
00D4 BE CMP M ;SEKDSK = HSTDSK?
00D5 C2EB00 JNZ NOMATCH
;
; SAME DISK, SAME TRACK?
00D8 216601 LXI H,HSTTRK
00DB CD5301 CALL SEKTRKCMP ;SEKTRK = HSTTRK?
00DE C2EB00 JNZ NOMATCH
;
; SAME DISK, SAME TRACK, SAME BUFFER?
00E1 3A6901 LDA SEKHST
00E4 216801 LXI H,HSTSEC ;SEKHST = HSTSEC?
00E7 BE CMP M
00E8 CA0F01 JZ MATCH ;SKIP IF MATCH
;
NOMATCH:
;PROPER DISK, BUT NOT CORRECT SECTOR
00EB 3A6B01 LDA HSTWRT ;HOST WRITTEN?
00EE B7 ORA A
00EF C45F01 CNZ WRITEHST ;CLEAR HOST BUFF
;
FILHST:
;MAY HAVE TO FILL THE HOST BUFFER
00F2 3A6101 LDA SEKDSK
00F5 326501 STA HSTDSK
00F8 2A6201 LHLD SEKTRK
00FB 226601 SHLD HSTTRK
00FE 3A6901 LDA SEKHST
0101 326801 STA HSTSEC
0104 3A7201 LDA RSFLAG ;NEED TO READ?
0107 B7 ORA A
0108 C46001 CNZ READHST ;YES, IF 1
Appendix G : Blocking and Deblocking Algorithms CP/M Operating System Manual
G-6