mirror of
https://github.com/Tolik-Trek/Sprinter-BIOS.git
synced 2026-06-15 17:31: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 BC
|
||||||
PUSH HL
|
PUSH HL
|
||||||
CALL FDD_RW_SECTOR
|
CALL FDD_RW_SECTOR
|
||||||
JR C,ERRDOS
|
JR C,.ERRDOS
|
||||||
; à §¬¥à ᥪâ®à
|
; à §¬¥à ᥪâ®à
|
||||||
LD D,YH
|
LD D,YH
|
||||||
LD E,YL
|
LD E,YL
|
||||||
@ -254,7 +254,7 @@ FDD_5x_LONG_READ:
|
|||||||
XOR A
|
XOR A
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
ERRDOS: POP HL
|
.ERRDOS: POP HL
|
||||||
POP BC
|
POP BC
|
||||||
POP DE
|
POP DE
|
||||||
CALL SET_DOS_OFF
|
CALL SET_DOS_OFF
|
||||||
@ -488,7 +488,39 @@ S_FDD: PUSH BC
|
|||||||
RET
|
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)
|
CHANGE_SPEED: IN A,(SLOT3)
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
@ -496,37 +528,58 @@ CHANGE_SPEED: IN A,(SLOT3)
|
|||||||
LD A,(SYS_PAGE.FDD_TABLE.DISK)
|
LD A,(SYS_PAGE.FDD_TABLE.DISK)
|
||||||
XOR #80
|
XOR #80
|
||||||
LD (SYS_PAGE.FDD_TABLE.DISK),A
|
LD (SYS_PAGE.FDD_TABLE.DISK),A
|
||||||
;AND #80
|
JR SET_SPEED.set
|
||||||
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
|
|
||||||
;
|
|
||||||
;
|
;
|
||||||
SET_SPEED: IN A,(SLOT3)
|
SET_SPEED: IN A,(SLOT3)
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD A,(SYS_PAGE.FDD_TABLE.DISK)
|
LD A,(SYS_PAGE.FDD_TABLE.DISK)
|
||||||
;AND #80
|
.set: AND #80
|
||||||
RLA
|
RRA
|
||||||
|
RRA
|
||||||
|
OR 1
|
||||||
|
OUT (FDD_Density),A
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
EX AF,AF'
|
RET
|
||||||
;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
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
; ‚室: 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
|
RET
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
; ¯à¥àë¢ ¨ï ¤®«¦ë ¡ëâì ®âª«îç¥ë
|
; ¯à¥àë¢ ¨ï ¤®«¦ë ¡ëâì ®âª«îç¥ë
|
||||||
; ¢ë室: A - FDD_INIT_TABLE.DISK, B - sector size high byte
|
; ¢ë室: A - FDD_INIT_TABLE.DISK, B - sector size high byte
|
||||||
DISK_ID: EXX
|
DISK_ID: EXX
|
||||||
@ -535,23 +588,16 @@ DISK_ID: EXX
|
|||||||
OUT (FDC_93.Data),A
|
OUT (FDC_93.Data),A
|
||||||
LD A,#18 ;!TODO ¢ë¯¨á âì ª®¬¬ ¤ë ‚ƒ ;SEARCH ;!HARDCODE CMD Š<>1818‚ƒ93
|
LD A,#18 ;!TODO ¢ë¯¨á âì ª®¬¬ ¤ë ‚ƒ ;SEARCH ;!HARDCODE CMD Š<>1818‚ƒ93
|
||||||
CALL EXECOM
|
CALL EXECOM
|
||||||
LD C,4 ; áçñâ稪
|
; ªã᮪ ¤«ï ¡ëáâàëå ä«®¯¯ ३
|
||||||
.loop_reg_C: LD A,#C0 ;!HARDCODE CMD Š<>1818‚ƒ93
|
LD BC,#0104 ; 1 - áçñâ稪
|
||||||
OUT (FDC_93.Command),A
|
CALL WAIT_FDD_FOR_SEARCH_TRACK
|
||||||
LD HL,#F000 ; áçñâ稪
|
JR NC,.Read_Index
|
||||||
.loop_reg_HL: IN A,(FDC_93.DrvCTRL)
|
; ªã᮪ ¤«ï â®à¬®§ëå ä«®¯¯ ३
|
||||||
AND #C0
|
LD BC,#0504 ; 1 - áçñâ稪
|
||||||
JR NZ,.Read_Index
|
CALL WAIT_FDD_FOR_SEARCH_TRACK
|
||||||
;
|
JR NC,.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
|
|
||||||
EXX
|
EXX
|
||||||
SCF
|
;SCF
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.Read_Index: ;
|
.Read_Index: ;
|
||||||
@ -583,6 +629,7 @@ DISK_ID: EXX
|
|||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
AND #80
|
AND #80
|
||||||
RET
|
RET
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
;
|
;
|
||||||
SEEK: LD XL,A
|
SEEK: LD XL,A
|
||||||
@ -690,23 +737,20 @@ NTRACK: PUSH HL
|
|||||||
SAVE_INTERRUPTS:
|
SAVE_INTERRUPTS:
|
||||||
.switch_off: PUSH AF
|
.switch_off: PUSH AF
|
||||||
LD A,R
|
LD A,R
|
||||||
|
DI
|
||||||
LD A,#80
|
LD A,#80
|
||||||
JP PE,.set_R
|
JP PE,.set_R
|
||||||
XOR A
|
XOR A
|
||||||
.set_R: LD R,A
|
.set_R: LD R,A
|
||||||
DI
|
|
||||||
POP AF
|
POP AF
|
||||||
RET
|
RET
|
||||||
; ;
|
; ;
|
||||||
.restore: PUSH AF
|
.restore: PUSH AF
|
||||||
LD A,R
|
LD A,R
|
||||||
BIT 7,A
|
DI
|
||||||
JR Z,.set_di
|
RLA
|
||||||
|
JR NC,.set_di
|
||||||
EI
|
EI
|
||||||
POP AF ; PE
|
.set_di: POP AF ; PE
|
||||||
RET
|
|
||||||
;
|
|
||||||
.set_di: DI
|
|
||||||
POP AF ; PO
|
|
||||||
RET
|
RET
|
||||||
;[]===========================================================[]
|
;[]===========================================================[]
|
||||||
@ -345,13 +345,14 @@ FN_TURBO:
|
|||||||
;!FIXIT ¬¥ï¥¬ ¯«®â®áâì - ¬¥ï¥¬ ¢ á¨á⥬®© áâà ¨æ¥ ¨äã ®¡ í⮬
|
;!FIXIT ¬¥ï¥¬ ¯«®â®áâì - ¬¥ï¥¬ ¢ á¨á⥬®© áâà ¨æ¥ ¨äã ®¡ í⮬
|
||||||
.SET_FDD_720:
|
.SET_FDD_720:
|
||||||
LD A,FDD_Density.SET_720
|
LD A,FDD_Density.SET_720
|
||||||
OUT (FDD_Density),A
|
JR .set
|
||||||
AND A
|
; OUT (FDD_Density),A
|
||||||
RET
|
; AND A
|
||||||
|
; RET
|
||||||
;!FIXIT ¬¥ï¥¬ ¯«®â®áâì - ¬¥ï¥¬ ¢ á¨á⥬®© áâà ¨æ¥ ¨äã ®¡ í⮬
|
;!FIXIT ¬¥ï¥¬ ¯«®â®áâì - ¬¥ï¥¬ ¢ á¨á⥬®© áâà ¨æ¥ ¨äã ®¡ í⮬
|
||||||
.SET_FDD_1440:
|
.SET_FDD_1440:
|
||||||
LD A,FDD_Density.SET_1440
|
LD A,FDD_Density.SET_1440
|
||||||
OUT (FDD_Density),A
|
.set: OUT (FDD_Density),A
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user