mirror of
https://github.com/Tolik-Trek/Sprinter-BIOS.git
synced 2026-06-15 09:21:46 +03:00
Наколдована задержка для смены плотности у тормозных 5.25 флопарей. В рекавери дос из хотфикс 3, фформат 1.17
This commit is contained in:
parent
879938cd4a
commit
3f9e0b7207
@ -1 +1 @@
|
||||
Subproject commit f5f85b3d14c65bfc2f8619b596815e350f1a9d5b
|
||||
Subproject commit 6073b8787867fe5d217d064c9f5f77972303148c
|
||||
@ -206,7 +206,7 @@ FDD_5x_LONG_READ:
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
CALL FDD_RW_SECTOR
|
||||
JR C,ERRDOS
|
||||
JR C,.ERRDOS
|
||||
; à §¬¥à ᥪâ®à
|
||||
LD D,YH
|
||||
LD E,YL
|
||||
@ -254,7 +254,7 @@ FDD_5x_LONG_READ:
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
ERRDOS: POP HL
|
||||
.ERRDOS: POP HL
|
||||
POP BC
|
||||
POP DE
|
||||
CALL SET_DOS_OFF
|
||||
@ -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,37 +528,58 @@ 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
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
; ‚室: BC - ¢ãâ२© ¨ ¢¥è¨© áçñâ稪¨
|
||||
WAIT_FDD_FOR_SEARCH_TRACK:
|
||||
LD A,#C0 ;!HARDCODE CMD Š<>1818‚ƒ93
|
||||
OUT (FDC_93.Command),A
|
||||
PUSH BC
|
||||
CALL .LOOP
|
||||
POP BC
|
||||
RET NC
|
||||
CALL CHANGE_SPEED
|
||||
DEC C
|
||||
JR NZ,WAIT_FDD_FOR_SEARCH_TRACK
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
.LOOP: LD HL,#F000
|
||||
.loop_reg_HL: IN A,(FDC_93.DrvCTRL)
|
||||
AND #C0
|
||||
RET NZ
|
||||
;
|
||||
.ID_LP4: DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR NZ,.loop_reg_HL
|
||||
;
|
||||
DJNZ .LOOP
|
||||
SCF
|
||||
RET
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
; ¯à¥àë¢ ¨ï ¤®«¦ë ¡ëâì ®âª«îç¥ë
|
||||
; ¢ë室: A - FDD_INIT_TABLE.DISK, B - sector size high byte
|
||||
DISK_ID: EXX
|
||||
@ -535,23 +588,16 @@ DISK_ID: EXX
|
||||
OUT (FDC_93.Data),A
|
||||
LD A,#18 ;!TODO ¢ë¯¨á âì ª®¬¬ ¤ë ‚ƒ ;SEARCH ;!HARDCODE CMD Š<>1818‚ƒ93
|
||||
CALL EXECOM
|
||||
LD C,4 ; áçñâ稪
|
||||
.loop_reg_C: LD A,#C0 ;!HARDCODE CMD Š<>1818‚ƒ93
|
||||
OUT (FDC_93.Command),A
|
||||
LD HL,#F000 ; áçñâ稪
|
||||
.loop_reg_HL: IN A,(FDC_93.DrvCTRL)
|
||||
AND #C0
|
||||
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
|
||||
; ªã᮪ ¤«ï ¡ëáâàëå ä«®¯¯ ३
|
||||
LD BC,#0104 ; 1 - áçñâ稪
|
||||
CALL WAIT_FDD_FOR_SEARCH_TRACK
|
||||
JR NC,.Read_Index
|
||||
; ªã᮪ ¤«ï â®à¬®§ëå ä«®¯¯ ३
|
||||
LD BC,#0504 ; 1 - áçñâ稪
|
||||
CALL WAIT_FDD_FOR_SEARCH_TRACK
|
||||
JR NC,.Read_Index
|
||||
EXX
|
||||
SCF
|
||||
;SCF
|
||||
RET
|
||||
;
|
||||
.Read_Index: ;
|
||||
@ -583,6 +629,7 @@ DISK_ID: EXX
|
||||
EX AF,AF'
|
||||
AND #80
|
||||
RET
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
;
|
||||
SEEK: LD XL,A
|
||||
@ -690,23 +737,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
|
||||
;[]===========================================================[]
|
||||
@ -345,13 +345,14 @@ FN_TURBO:
|
||||
;!FIXIT ¬¥ï¥¬ ¯«®â®áâì - ¬¥ï¥¬ ¢ á¨á⥬®© áâà ¨æ¥ ¨äã ®¡ í⮬
|
||||
.SET_FDD_720:
|
||||
LD A,FDD_Density.SET_720
|
||||
OUT (FDD_Density),A
|
||||
AND A
|
||||
RET
|
||||
JR .set
|
||||
; OUT (FDD_Density),A
|
||||
; AND A
|
||||
; RET
|
||||
;!FIXIT ¬¥ï¥¬ ¯«®â®áâì - ¬¥ï¥¬ ¢ á¨á⥬®© áâà ¨æ¥ ¨äã ®¡ í⮬
|
||||
.SET_FDD_1440:
|
||||
LD A,FDD_Density.SET_1440
|
||||
OUT (FDD_Density),A
|
||||
.set: OUT (FDD_Density),A
|
||||
AND A
|
||||
RET
|
||||
|
||||
|
||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user