поиск бага с флопарём

This commit is contained in:
Анатолий Белянский 2026-01-11 23:26:53 +10:00
parent 879938cd4a
commit 886adc7cff
2 changed files with 61 additions and 42 deletions

@ -1 +1 @@
Subproject commit f5f85b3d14c65bfc2f8619b596815e350f1a9d5b
Subproject commit 6073b8787867fe5d217d064c9f5f77972303148c

View File

@ -488,7 +488,39 @@ S_FDD: PUSH BC
RET
;
;
;----------------------------------------------------------------------;
; CHANGE_SPEED: IN A,(SLOT3)
; EX AF,AF'
; LD A,SYS_PAGE
; OUT (SLOT3),A
; LD A,(SYS_PAGE.FDD_TABLE.DISK)
; XOR #80
; LD (SYS_PAGE.FDD_TABLE.DISK),A
; RLA
; EX AF,AF'
; OUT (SLOT3),A
; EX AF,AF'
; JR NC,FDD.SET720
; FDD.SET1440: LD A,FDD_Density.SET_1440
; OUT (FDD_Density),A
; RET
; ;
; ;
; SET_SPEED: IN A,(SLOT3)
; EX AF,AF'
; LD A,SYS_PAGE
; OUT (SLOT3),A
; LD A,(SYS_PAGE.FDD_TABLE.DISK)
; ;AND #80
; RLA
; EX AF,AF'
; OUT (SLOT3),A
; EX AF,AF'
; JR C,FDD.SET1440
; FDD.SET720: LD A,FDD_Density.SET_720
; OUT (FDD_Density),A
; RET
CHANGE_SPEED: IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
@ -496,35 +528,24 @@ CHANGE_SPEED: IN A,(SLOT3)
LD A,(SYS_PAGE.FDD_TABLE.DISK)
XOR #80
LD (SYS_PAGE.FDD_TABLE.DISK),A
;AND #80
RLA
EX AF,AF'
OUT (SLOT3),A
EX AF,AF'
;JR Z,FDD.SET720
JR NC,FDD.SET720
;JP FDD.SET1440 ;CF=1
FDD.SET1440: LD A,FDD_Density.SET_1440
OUT (FDD_Density),A
RET
;
JR SET_SPEED.set
;
;
SET_SPEED: IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,(SYS_PAGE.FDD_TABLE.DISK)
;AND #80
RLA
.set: AND #80
RRA
RRA
OR 1
OUT (FDD_Density),A
EX AF,AF'
OUT (SLOT3),A
EX AF,AF'
;JR NZ,FDD.SET1440
JR C,FDD.SET1440
;JR FDD.SET720 ;CF=0
FDD.SET720: LD A,FDD_Density.SET_720
OUT (FDD_Density),A
RET
;----------------------------------------------------------------------;
; ¯à¥à뢠­¨ï ¤®«¦­ë ¡ëâì ®âª«î祭ë
@ -540,13 +561,14 @@ DISK_ID: EXX
OUT (FDC_93.Command),A
LD HL,#F000 ; áçñâ稪
.loop_reg_HL: IN A,(FDC_93.DrvCTRL)
AND #C0
AND %1100'0000
JR NZ,.Read_Index
;
.ID_LP4: DEC HL
LD A,H
OR L
JR NZ,.loop_reg_HL
;
CALL CHANGE_SPEED
DEC C
JR NZ,.loop_reg_C
@ -690,23 +712,20 @@ NTRACK: PUSH HL
SAVE_INTERRUPTS:
.switch_off: PUSH AF
LD A,R
DI
LD A,#80
JP PE,.set_R
XOR A
.set_R: LD R,A
DI
POP AF
RET
; ;
.restore: PUSH AF
LD A,R
BIT 7,A
JR Z,.set_di
DI
RLA
JR NC,.set_di
EI
POP AF ; PE
RET
;
.set_di: DI
POP AF ; PO
.set_di: POP AF ; PE
RET
;[]===========================================================[]