mirror of
https://github.com/Tolik-Trek/Sprinter-BIOS.git
synced 2026-06-16 01:41:16 +03:00
переделать весь FDD_DRIVER на IY
This commit is contained in:
parent
53ee837c81
commit
67c829e788
@ -191,7 +191,6 @@ FDD_5x_LONG_READ:
|
|||||||
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) ; ãáâ ¢«¨¢ âì ®â¤¥«ì® ¯¥à¥¬¥ãî current 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
|
||||||
@ -211,9 +210,14 @@ FDD_5x_LONG_READ:
|
|||||||
CALL FDD_RW_SECTOR
|
CALL FDD_RW_SECTOR
|
||||||
JR C,.ERRDOS
|
JR C,.ERRDOS
|
||||||
; à §¬¥à ᥪâ®à
|
; à §¬¥à ᥪâ®à
|
||||||
LD D,YH
|
IN A,(SLOT3)
|
||||||
LD E,YL
|
EX AF,AF'
|
||||||
;
|
LD A,SYS_PAGE
|
||||||
|
OUT (SLOT3),A
|
||||||
|
LD E,(IY + FDD_TABLE_s.BytesPerSector)
|
||||||
|
LD D,(IY + FDD_TABLE_s.BytesPerSector + 1)
|
||||||
|
EX AF,AF'
|
||||||
|
OUT (SLOT3),A
|
||||||
POP HL
|
POP HL
|
||||||
POP BC
|
POP BC
|
||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
@ -229,7 +233,8 @@ FDD_5x_LONG_READ:
|
|||||||
INC D
|
INC D
|
||||||
.NINC_T: DJNZ .DSK_LP
|
.NINC_T: DJNZ .DSK_LP
|
||||||
;
|
;
|
||||||
.RETDOS: CALL SET_DOS_OFF
|
;.RETDOS:
|
||||||
|
CALL SET_DOS_OFF
|
||||||
LD A,XH ; Memory Page Number
|
LD A,XH ; Memory Page Number
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
@ -331,10 +336,11 @@ FDD_RW_SECTOR: LD D,5 ;RETRY COUNT
|
|||||||
LD A,E
|
LD A,E
|
||||||
INC A
|
INC A
|
||||||
OUT (FDC_93.Sector),A
|
OUT (FDC_93.Sector),A
|
||||||
IN A,(SLOT3)
|
;
|
||||||
EX AF,AF'
|
;IN A,(SLOT3)
|
||||||
LD A,XH
|
;EX AF,AF'
|
||||||
OUT (SLOT3),A
|
;LD A,XH
|
||||||
|
;OUT (SLOT3),A
|
||||||
;
|
;
|
||||||
LD B,4
|
LD B,4
|
||||||
LD C,FDC_93.Data
|
LD C,FDC_93.Data
|
||||||
@ -346,23 +352,31 @@ FDD_RW_SECTOR: LD D,5 ;RETRY COUNT
|
|||||||
.wait_loop: IN A,(FDC_93.DrvCTRL) ;WAIT INTRQ or DRQ
|
.wait_loop: IN A,(FDC_93.DrvCTRL) ;WAIT INTRQ or DRQ
|
||||||
AND %1100'0000 ;b6: DRQ (§ ¯à®á ¤ ëå = 1). b7: INTRQ (¢ë¯®«ï¥âáï ª®¬ ¤ = 0).
|
AND %1100'0000 ;b6: DRQ (§ ¯à®á ¤ ëå = 1). b7: INTRQ (¢ë¯®«ï¥âáï ª®¬ ¤ = 0).
|
||||||
JR NZ,.RW_PROC
|
JR NZ,.RW_PROC
|
||||||
|
;
|
||||||
INC DE
|
INC DE
|
||||||
LD A,E
|
LD A,E
|
||||||
OR D
|
OR D
|
||||||
JR NZ,.wait_loop
|
JR NZ,.wait_loop
|
||||||
|
;
|
||||||
DJNZ .wait_loop
|
DJNZ .wait_loop
|
||||||
SCF
|
SCF
|
||||||
JR .after_rw ; error
|
;JR .after_rw ; error
|
||||||
|
JR .after_rw_end ; error
|
||||||
;
|
;
|
||||||
.RW_PROC: EXX
|
.RW_PROC: IN A,(SLOT3)
|
||||||
|
EX AF,AF'
|
||||||
|
; [ ] 15/04/25 à §¬¥à ᥪâ®à ¡®«ìè¥, 祬 ãáâ ®¢«¥® ¢ SYS_PAGE.FDD_TABLE.BytesPerSector ¢ë§®¢¥â ®è¨¡ªã
|
||||||
|
LD A,SYS_PAGE
|
||||||
|
OUT (SLOT3),A
|
||||||
|
LD E,(IY + FDD_TABLE_s.BytesPerSector)
|
||||||
|
LD D,(IY + FDD_TABLE_s.BytesPerSector + 1)
|
||||||
|
LD A,XH
|
||||||
|
OUT (SLOT3),A
|
||||||
|
INC DE
|
||||||
|
EXX
|
||||||
BIT 5,B
|
BIT 5,B
|
||||||
EXX
|
EXX
|
||||||
; [ ] 15/04/25 à §¬¥à ᥪâ®à ¡®«ìè¥, 祬 ãáâ ®¢«¥® ¢ SYS_PAGE.FDD_TABLE.BytesPerSector ¢ë§®¢¥â ®è¨¡ªã
|
JR NZ,.write_loop ; १ã«ìâ â BIT 5,B
|
||||||
LD D,YH
|
|
||||||
LD E,YL
|
|
||||||
INC DE
|
|
||||||
;
|
|
||||||
JR NZ,.write_loop
|
|
||||||
;READ BYTE
|
;READ BYTE
|
||||||
.read_loop: DEC DE
|
.read_loop: DEC DE
|
||||||
LD A,D
|
LD A,D
|
||||||
@ -379,7 +393,7 @@ FDD_RW_SECTOR: LD D,5 ;RETRY COUNT
|
|||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
;
|
;
|
||||||
POP DE
|
.after_rw_end: POP DE
|
||||||
POP HL
|
POP HL
|
||||||
;EI
|
;EI
|
||||||
LD A,BIOS.Error.NotReady
|
LD A,BIOS.Error.NotReady
|
||||||
@ -549,43 +563,6 @@ SET_FDD: PUSH BC
|
|||||||
; FDD.SET720: LD A,FDD_Density.SET_720
|
; FDD.SET720: LD A,FDD_Density.SET_720
|
||||||
; OUT (FDD_Density),A
|
; OUT (FDD_Density),A
|
||||||
; RET
|
; RET
|
||||||
|
|
||||||
<<<<<<< HEAD:src/bios/exp/EXTENDED/FDD_DRIVER_2.asm
|
|
||||||
;----------------------------------------------------------------------;
|
|
||||||
; 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
|
|
||||||
|
|
||||||
=======
|
|
||||||
>>>>>>> refs/remotes/Sprinter-Core/beta:src/bios/exp/EXTENDED/FDD_DRIVER.asm
|
|
||||||
CHANGE_SPEED: IN A,(SLOT3)
|
CHANGE_SPEED: IN A,(SLOT3)
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
@ -594,13 +571,7 @@ CHANGE_SPEED: IN A,(SLOT3)
|
|||||||
XOR #80
|
XOR #80
|
||||||
LD (SYS_PAGE.FDD_TABLE.DISK),A
|
LD (SYS_PAGE.FDD_TABLE.DISK),A
|
||||||
JR SET_SPEED.set
|
JR SET_SPEED.set
|
||||||
<<<<<<< HEAD:src/bios/exp/EXTENDED/FDD_DRIVER_2.asm
|
|
||||||
|
|
||||||
;
|
;
|
||||||
;
|
|
||||||
=======
|
|
||||||
;
|
|
||||||
>>>>>>> refs/remotes/Sprinter-Core/beta:src/bios/exp/EXTENDED/FDD_DRIVER.asm
|
|
||||||
SET_SPEED: IN A,(SLOT3)
|
SET_SPEED: IN A,(SLOT3)
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
@ -660,24 +631,6 @@ 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
|
||||||
<<<<<<< HEAD:src/bios/exp/EXTENDED/FDD_DRIVER_2.asm
|
|
||||||
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 %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
|
|
||||||
=======
|
|
||||||
; ªã᮪ ¤«ï ¡ëáâàëå ä«®¯¯ ३
|
; ªã᮪ ¤«ï ¡ëáâàëå ä«®¯¯ ३
|
||||||
LD BC,#0104 ; áçñâ稪¨
|
LD BC,#0104 ; áçñâ稪¨
|
||||||
CALL WAIT_FDD_FOR_SEARCH_TRACK
|
CALL WAIT_FDD_FOR_SEARCH_TRACK
|
||||||
@ -686,7 +639,6 @@ DISK_ID: EXX
|
|||||||
LD BC,#0804 ; áçñâ稪¨
|
LD BC,#0804 ; áçñâ稪¨
|
||||||
CALL WAIT_FDD_FOR_SEARCH_TRACK
|
CALL WAIT_FDD_FOR_SEARCH_TRACK
|
||||||
JR NC,.Read_Index
|
JR NC,.Read_Index
|
||||||
>>>>>>> refs/remotes/Sprinter-Core/beta:src/bios/exp/EXTENDED/FDD_DRIVER.asm
|
|
||||||
EXX
|
EXX
|
||||||
;SCF
|
;SCF
|
||||||
RET
|
RET
|
||||||
@ -697,13 +649,8 @@ DISK_ID: EXX
|
|||||||
; ®¬¥à £®«®¢ª¨ BYTE
|
; ®¬¥à £®«®¢ª¨ BYTE
|
||||||
; ®¬¥à ᥪâ®à BYTE
|
; ®¬¥à ᥪâ®à BYTE
|
||||||
; ¤«¨ ᥪâ®à BYTE
|
; ¤«¨ ᥪâ®à BYTE
|
||||||
<<<<<<< HEAD:src/bios/exp/EXTENDED/FDD_DRIVER_2.asm
|
|
||||||
; ª®â஫ì ï á㬬 WORD
|
; ª®â஫ì ï á㬬 WORD
|
||||||
LD H,4 ; !HARDCODE áçñâ稪 ¤® ¡ ©â à §¬¥à ᥪâ®à
|
LD H,4 ; !HARDCODE áçñâ稪 ¤® ¡ ©â à §¬¥à ᥪâ®à
|
||||||
=======
|
|
||||||
; ª®â஫ì ï á㬬 WORD
|
|
||||||
LD H,4 ; !HARDCODE áçñâ稪 ¤® ¡ ©â à §¬¥à ᥪâ®à
|
|
||||||
>>>>>>> refs/remotes/Sprinter-Core/beta:src/bios/exp/EXTENDED/FDD_DRIVER.asm
|
|
||||||
.ID_LP2: IN A,(FDC_93.Data)
|
.ID_LP2: IN A,(FDC_93.Data)
|
||||||
DEC H
|
DEC H
|
||||||
JR NZ,.ID_LP3
|
JR NZ,.ID_LP3
|
||||||
@ -769,12 +716,16 @@ SEEK: LD XL,A
|
|||||||
; DJNZ PMS2
|
; DJNZ PMS2
|
||||||
; RET
|
; RET
|
||||||
P50ms: PUSH BC
|
P50ms: PUSH BC
|
||||||
LD A,12
|
;LD A,12
|
||||||
|
LD B,12
|
||||||
.P1ms: LD C,255
|
.P1ms: LD C,255
|
||||||
.PMS: DEC C
|
.PMS: DEC C
|
||||||
JR NZ,.PMS
|
JR NZ,.PMS
|
||||||
DEC A
|
;
|
||||||
JR NZ,.P1ms
|
;DEC A
|
||||||
|
;JR NZ,.P1ms
|
||||||
|
DJNZ .P1ms
|
||||||
|
;
|
||||||
POP BC
|
POP BC
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user