Код:
LD85F:
cpi 0A5H
jnc LD853
xthl
inx h
mov e,m
inx h
mov d,m
inx h
mov a,m
pop h
LD86C:
dad d ; (h, l) + (BC) -> (h, l)
aci 000H ; A + data8 + C -> A
; mov e,l
; mov l,h
; mov h,a ; (HL,E) = (A,HL)
mov e,a ; (E,HL)
call LD9D9 ; проверка готовности НЖМД, получение кода ошибки и RET
jz LD9F8 ; обработка ошибки ?
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
sectors:
mvi b,16
mov a,e
call div
inr a
out 53h ;sector
xra a
heads:
mvi b,4
call div
out 56h ;head
mov a,h
out 055h ;cyl (High)
mov a,l
out 054h ;cyl (Low)
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
jmp Lnext_00
.db $00, $00, $00, $00, $00, $00, $00, $00
;----------------------------------------------------------------------------------------
; push d
; call LD8F3
; out 055H
; pop d
; mov h,l
; mov l,e
; call LD8F3
; out 054H
;----------------------------------------------------------------------------------------
;----------------------------------------------------------------------------------------
; lxi d,0FF00H
; call LD904
; lxi d,0010H
; call LD8FC
; out 056H
; mov a,l
; inr a
; out 053H
;----------------------------------------------------------------------------------------
Lnext_00:
mvi a,002H
out 052H
pop d
lxi h,0EB00H
mvi a,020H
inr e
dcr e
jz LD8A9
mvi a,030H
LD8A9:
out 057H
mvi c,002H
LD8AD:
call LD9D9 ; проверка готовности НЖМД, получение кода ошибки и RET
jz LD9F9 ; обработка ошибки ?
in 057H
ani 008H
jz LD9F9 ; обработка ошибки ?
mvi b,002H
LD8BC:
inr e
dcr e
jnz LD8CF
LD8C1:
in 050H
mov m,a
inr l
in 058H
mov m,a
inr l
jnz LD8C1
jmp LD8DC
;
LD8CF:
inr l
mov a,m
out 058H
dcr l
mov a,m
out 050H
inr l
inr l
jnz LD8CF
LD8DC:
inr h
dcr b
jnz LD8BC
dcr c
jnz LD8AD
call LD9D9 ; проверка готовности НЖМД, получение кода ошибки и RET
jz LD9F9 ; обработка ошибки ?
ani 0DDH
cpi 050H
rz
jmp LD9F9 ; обработка ошибки ?
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
div:
MVI C,16 ; HL=AHL/B, A=AHL%B
L1: DAD H
ADC A
JC L2
CMP B
JC L3
L2: SUB B
INR L
L3: DCR C
JNZ L1
RET
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.db $00, $00, $00, $00, $00, $00, $00, $00
;----------------------------------------------------------------------------------------
;LD8F3:
; lxi d,0FC00H
; call LD904
; lxi d,00040H
;LD8FC:
; mvi b,0FFH
;LD8FE:
; add b
; dad d
; jnc LD8FE
; ret
;----------------------------------------------------------------------------------------
;----------------------------------------------------------------------------------------
;LD904:
; xra a
; mvi b,010H
;LD907:
; add b
; dad d
; jc LD907
; ret
;----------------------------------------------------------------------------------------
;
call LE474
lda 0080H
ana a
jz LD980
lxi d,005DH
call LE0BB
mov b,h
mov c,l
lxi d,0FFCFH
dad d
jc LE0B5
lda 005CH
ana a
jnz LD931
lda 0004H
inr a
LD931:
dcr a
cpi 002H
jz LE0B5
cmc
sbi 000H
cpi 004H
jnc LE0B5
mov e,a
mvi d,000H
LD942:
mov a,d
call LD9B2
mov a,m
cmp c
jnz LD954
inx h
mov a,m
sub b
jnz LD954
mov m,a
dcx h
mov m,a
LD954:
inr d
mov a,d
cpi 004H
jnz LD942
mov a,e
call LD9B2
mov m,c
inx h
mov m,b
inx h
push h
lxi h,0F3BEH
mvi a,0FFH
inx b
LD96A:
lxi d,00622H
dad d
aci 000H
dcx b
mov d,a
mov a,b
ora c
mov a,d
jnz LD96A
xchg
pop h
mov m,e
inx h
mov m,d
inx h
mov m,a
ret
*
*
*
LD9F8:
pop psw
LD9F9:
in 057H
rrc
in 051H
jc LDA02
xra a
LDA02:
mov b,a
in 057H
ani 020H
ora b
mov b,a
in 057H
ani 0C0H
cpi 040H
mov a,b
jz LDA15
ori 010H
LDA15:
out 05FH
jmp LE6AB
*
*
*
LE6AB:
sta XE873
lda XE867
cpi 006H
jz LE6C2
xra a
sta XE874
sta XE87A
mvi a,001H
sta XE872
LE6C2:
lda XE873
ana a
ret