mirror of
https://github.com/Tolik-Trek/Sprinter-BIOS.git
synced 2026-06-15 01:11:47 +03:00
Наколдована задержка для смены плотности у тормозных 5.25 флопарей. В рекавери дос из хотфикс 3, фформат 1.17
This commit is contained in:
parent
879938cd4a
commit
e0c70519c3
@ -1 +1 @@
|
|||||||
Subproject commit f5f85b3d14c65bfc2f8619b596815e350f1a9d5b
|
Subproject commit 2fec6202f716cfa3ed48fb9bfd79d1081cc2721b
|
||||||
@ -188,12 +188,12 @@ FDD_5x_LONG_READ:
|
|||||||
EX DE,HL
|
EX DE,HL
|
||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD IY,(SYS_PAGE.FDD_TABLE.BytesPerSector)
|
LD IY,(SYS_PAGE.FDD_TABLE.BytesPerSector)
|
||||||
LD XH,C ; Memory Page Number
|
LD XH,C ; Memory Page Number
|
||||||
LD A,(SYS_PAGE.FDD_TABLE.SECTORS)
|
LD A,(SYS_PAGE.FDD_TABLE.SECTORS)
|
||||||
LD C,A
|
LD C,A
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
.DSK_LP: LD A,D
|
.DSK_LP: LD A,D
|
||||||
@ -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
|
|
||||||
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
|
; ¢ë室: A - FDD_INIT_TABLE.DISK, B - sector size high byte
|
||||||
DISK_ID: EXX
|
DISK_ID: EXX
|
||||||
@ -535,32 +588,25 @@ 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: ;
|
||||||
; „ ë¥ FDC_93.Data:
|
; „ ë¥ FDC_93.Data:
|
||||||
; ®¬¥à 樫¨¤à BYTE
|
; ®¬¥à 樫¨¤à BYTE
|
||||||
; ®¬¥à £®«®¢ª¨ BYTE
|
; ®¬¥à £®«®¢ª¨ BYTE
|
||||||
; ®¬¥à ᥪâ®à BYTE
|
; ®¬¥à ᥪâ®à BYTE
|
||||||
; ¤«¨ ᥪâ®à BYTE
|
; ¤«¨ ᥪâ®à BYTE
|
||||||
; ª®â஫ì ï á㬬 WORD
|
; ª®â஫ì ï á㬬 WORD
|
||||||
LD H,4 ; !HARDCODE áçñâ稪 ¤® ¡ ©â à §¬¥à ᥪâ®à
|
LD H,4 ; !HARDCODE áçñâ稪 ¤® ¡ ©â à §¬¥à ᥪâ®à
|
||||||
.ID_LP2: IN A,(FDC_93.Data)
|
.ID_LP2: IN A,(FDC_93.Data)
|
||||||
DEC H
|
DEC H
|
||||||
@ -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
|
||||||
@ -688,25 +735,22 @@ NTRACK: PUSH HL
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
SAVE_INTERRUPTS:
|
SAVE_INTERRUPTS:
|
||||||
.switch_off: PUSH AF
|
.switch_off: PUSH AF
|
||||||
LD A,R
|
LD A,R
|
||||||
LD A,#80
|
|
||||||
JP PE,.set_R
|
|
||||||
XOR A
|
|
||||||
.set_R: LD R,A
|
|
||||||
DI
|
DI
|
||||||
POP AF
|
LD A,#80
|
||||||
|
JP PE,.set_R
|
||||||
|
XOR A
|
||||||
|
.set_R: LD R,A
|
||||||
|
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
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,10 @@
|
|||||||
;=======================[All shared EQUs]=======================;
|
;=======================[All shared EQUs]=======================;
|
||||||
|
DEFINE SET_EXPID_VER 3
|
||||||
|
DEFINE SET_EXPID_MOD 07
|
||||||
BETA_BUILD EQU 1 ; 40 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ áâ à⮢®¬ íªà ¥
|
BETA_BUILD EQU 1 ; 40 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ áâ à⮢®¬ íªà ¥
|
||||||
BETA_RC EQU 0 ; 2 ;
|
BETA_RC EQU 0 ; 2 ;
|
||||||
RELEASEhotFIX EQU 0 ;
|
RELEASEhotFIX EQU 0 ;
|
||||||
DEFINE RELEASE_BUILD_DATE "25.06.2025"
|
DEFINE RELEASE_BUILD_DATE "19.01.2026"
|
||||||
;======================[All shared defines]=====================;
|
;======================[All shared defines]=====================;
|
||||||
DEFINE PACKED_MAIN 0 ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®?
|
DEFINE PACKED_MAIN 0 ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®?
|
||||||
DEFINE SP2000_Loader_Flag #0107 ;
|
DEFINE SP2000_Loader_Flag #0107 ;
|
||||||
|
|||||||
Binary file not shown.
@ -2,8 +2,8 @@
|
|||||||
; ============[For EXP part]=============
|
; ============[For EXP part]=============
|
||||||
; ------[Version of BIOS "VER.MOD"]------
|
; ------[Version of BIOS "VER.MOD"]------
|
||||||
EXP_ID:
|
EXP_ID:
|
||||||
.VER EQU 3 ; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥ïâì âãâ!
|
.VER EQU SET_EXPID_VER ; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥ïâì âãâ!
|
||||||
.MOD EQU 07 ; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥ïâì âãâ!
|
.MOD EQU SET_EXPID_MOD ; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥ïâì âãâ!
|
||||||
BIOS_ver_hex EQU EXP_ID.VER*256+EXP_ID.MOD
|
BIOS_ver_hex EQU EXP_ID.VER*256+EXP_ID.MOD
|
||||||
|
|
||||||
DEFINE BIOS_ver_string '0'+EXP_ID.VER, '.', '0'+EXP_ID.MOD/10, '0'+EXP_ID.MOD-(EXP_ID.MOD/10)*10
|
DEFINE BIOS_ver_string '0'+EXP_ID.VER, '.', '0'+EXP_ID.MOD/10, '0'+EXP_ID.MOD-(EXP_ID.MOD/10)*10
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user