переделать весь FDD_DRIVER на IY

This commit is contained in:
Анатолий Белянский 2026-01-24 20:10:46 +10:00
parent 53ee837c81
commit 67c829e788

View File

@ -191,7 +191,6 @@ FDD_5x_LONG_READ:
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD IY,(SYS_PAGE.FDD_TABLE.BytesPerSector) ; ãáâ ­ ¢«¨¢ âì ®â¤¥«ì­® ¯¥à¥¬¥­­ãî current BytesPerSector?
LD XH,C ; Memory Page Number
LD A,(SYS_PAGE.FDD_TABLE.SECTORS)
LD C,A
@ -211,9 +210,14 @@ FDD_5x_LONG_READ:
CALL FDD_RW_SECTOR
JR C,.ERRDOS
; à §¬¥à ᥪâ®à 
LD D,YH
LD E,YL
;
IN A,(SLOT3)
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 BC
ADD HL,DE
@ -229,7 +233,8 @@ FDD_5x_LONG_READ:
INC D
.NINC_T: DJNZ .DSK_LP
;
.RETDOS: CALL SET_DOS_OFF
;.RETDOS:
CALL SET_DOS_OFF
LD A,XH ; Memory Page Number
EX AF,AF'
EX DE,HL
@ -331,10 +336,11 @@ FDD_RW_SECTOR: LD D,5 ;RETRY COUNT
LD A,E
INC A
OUT (FDC_93.Sector),A
IN A,(SLOT3)
EX AF,AF'
LD A,XH
OUT (SLOT3),A
;
;IN A,(SLOT3)
;EX AF,AF'
;LD A,XH
;OUT (SLOT3),A
;
LD B,4
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
AND %1100'0000 ;b6: DRQ (§ ¯à®á ¤ ­­ëå = 1). b7: INTRQ (¢ë¯®«­ï¥âáï ª®¬ ­¤  = 0).
JR NZ,.RW_PROC
;
INC DE
LD A,E
OR D
JR NZ,.wait_loop
;
DJNZ .wait_loop
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
EXX
; [ ] 15/04/25 à §¬¥à ᥪâ®à  ¡®«ìè¥, 祬 ãáâ ­®¢«¥­® ¢ SYS_PAGE.FDD_TABLE.BytesPerSector ¢ë§®¢¥â ®è¨¡ªã
LD D,YH
LD E,YL
INC DE
;
JR NZ,.write_loop
JR NZ,.write_loop ; १ã«ìâ â BIT 5,B
;READ BYTE
.read_loop: DEC DE
LD A,D
@ -379,7 +393,7 @@ FDD_RW_SECTOR: LD D,5 ;RETRY COUNT
OUT (SLOT3),A
EX AF,AF'
;
POP DE
.after_rw_end: POP DE
POP HL
;EI
LD A,BIOS.Error.NotReady
@ -549,43 +563,6 @@ SET_FDD: PUSH BC
; FDD.SET720: LD A,FDD_Density.SET_720
; OUT (FDD_Density),A
; 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)
EX AF,AF'
LD A,SYS_PAGE
@ -594,13 +571,7 @@ CHANGE_SPEED: IN A,(SLOT3)
XOR #80
LD (SYS_PAGE.FDD_TABLE.DISK),A
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)
EX AF,AF'
LD A,SYS_PAGE
@ -660,24 +631,6 @@ DISK_ID: EXX
OUT (FDC_93.Data),A
LD A,#18 ;!TODO ¢ë¯¨á âì ª®¬¬ ­¤ë ‚ƒ ;SEARCH ;!HARDCODE CMD Š<>1818ƒ93
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 ; áçñâ稪¨
CALL WAIT_FDD_FOR_SEARCH_TRACK
@ -686,7 +639,6 @@ DISK_ID: EXX
LD BC,#0804 ; áçñâ稪¨
CALL WAIT_FDD_FOR_SEARCH_TRACK
JR NC,.Read_Index
>>>>>>> refs/remotes/Sprinter-Core/beta:src/bios/exp/EXTENDED/FDD_DRIVER.asm
EXX
;SCF
RET
@ -697,13 +649,8 @@ DISK_ID: EXX
; ­®¬¥à £®«®¢ª¨ BYTE
; ­®¬¥à ᥪâ®à  BYTE
; ¤«¨­  ᥪâ®à  BYTE
<<<<<<< HEAD:src/bios/exp/EXTENDED/FDD_DRIVER_2.asm
; ª®­â஫쭠ï á㬬  WORD
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)
DEC H
JR NZ,.ID_LP3
@ -769,12 +716,16 @@ SEEK: LD XL,A
; DJNZ PMS2
; RET
P50ms: PUSH BC
LD A,12
;LD A,12
LD B,12
.P1ms: LD C,255
.PMS: DEC C
JR NZ,.PMS
DEC A
JR NZ,.P1ms
;
;DEC A
;JR NZ,.P1ms
DJNZ .P1ms
;
POP BC
RET
;