...
This commit is contained in:
parent
c8d95662c8
commit
d3c7979b19
@ -1 +1 @@
|
||||
Subproject commit 84d47b2818758fdceda21ecf2953324c1f339858
|
||||
Subproject commit 713bcf1538ff822231da15aed4d8fb7611ebe205
|
||||
Binary file not shown.
@ -44,7 +44,7 @@
|
||||
; POP AF
|
||||
; RET
|
||||
HD_BPB_PREP:
|
||||
; [ ] 27/01/2023
|
||||
; [x] 27/01/2024 ⥯¥àì ०¨¬ ᯥªâàã¬ à ¡®â ¥â á «î¡ë¬ à §¤¥«®¬ HDD
|
||||
;LD D,A
|
||||
;IN A,(SLOT3)
|
||||
;EX AF,AF'
|
||||
@ -238,7 +238,7 @@ FN_HDD_READ_BPB:
|
||||
CALL HD_WAIT
|
||||
RET C
|
||||
CALL HD_BPB_PREP
|
||||
JR NC,HD_RD_L1
|
||||
JR NC,FN_HDD_READ.L1
|
||||
RET
|
||||
|
||||
|
||||
@ -254,7 +254,7 @@ FN_HDD_READ_NEXT:
|
||||
CALL HD_WAIT
|
||||
RET C
|
||||
CALL NEXT_ADD_SEC
|
||||
JR HD_RD_L1
|
||||
JR FN_HDD_READ.L1
|
||||
|
||||
|
||||
; HL - BUFER, A - PAGE
|
||||
@ -266,44 +266,25 @@ FN_HDD_READ:
|
||||
CALL HD_WAIT
|
||||
CALL NC,HD_PREPARE
|
||||
RET C
|
||||
HD_RD_L1:
|
||||
EXX
|
||||
.L1: EXX
|
||||
LD C,SLOT3
|
||||
IN B,(C)
|
||||
EXX
|
||||
OUT (SLOT3),A
|
||||
EX AF,AF'
|
||||
|
||||
;
|
||||
SAFE_PORTY
|
||||
|
||||
;
|
||||
LD BC,IDE.Write.Command
|
||||
LD A,IDE.ATA.ReadSectorsWithRetry
|
||||
OUT (C),A
|
||||
HD_RD_L2:
|
||||
WAIT_HDD
|
||||
|
||||
.L2: WAIT_HDD
|
||||
;BIT IDE.ControlBit.DataRequest,A
|
||||
AND IDE.ControlByte.DataRequest
|
||||
JR NZ,HD_READ_CONT
|
||||
|
||||
ZERO_PORTY
|
||||
HD_RET:
|
||||
EXX
|
||||
OUT (C),B
|
||||
EXX
|
||||
LD BC,IDE.Read.Error
|
||||
IN A,(C)
|
||||
AND A
|
||||
SCF
|
||||
RET NZ
|
||||
|
||||
EX AF,AF'
|
||||
AND A
|
||||
RET
|
||||
|
||||
HD_READ_CONT:
|
||||
JR Z,HD_RET_PortY
|
||||
;
|
||||
;HD_READ_CONT
|
||||
LD BC,IDE.Read.Data
|
||||
|
||||
.loop_read1:
|
||||
DUP 16
|
||||
INI ; ¢á¥£® 16 à § INI - ®¯â¨¬ «ì®.
|
||||
@ -314,21 +295,38 @@ HD_READ_CONT:
|
||||
INI ; ¢á¥£® 16 à § INI - ®¯â¨¬ «ì®.
|
||||
EDUP
|
||||
JR NZ,.loop_read2
|
||||
|
||||
;
|
||||
LD A,H
|
||||
OR L
|
||||
JR NZ,HD_RD_L2
|
||||
|
||||
JR NZ,.L2
|
||||
;
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
EX AF,AF'
|
||||
LD HL,SYS_PAGE.RAMD_FAT
|
||||
LD H,high SYS_PAGE.RAMD_FAT
|
||||
LD L,A
|
||||
LD A,(HL)
|
||||
OUT (SLOT3),A
|
||||
EX AF,AF'
|
||||
LD HL,#C000 ; !!!!!
|
||||
JR HD_RD_L2
|
||||
JR .L2
|
||||
|
||||
|
||||
HD_RET_PortY:
|
||||
ZERO_PORTY
|
||||
HD_RET: EXX
|
||||
OUT (C),B
|
||||
EXX
|
||||
LD BC,IDE.Read.Error
|
||||
IN A,(C)
|
||||
AND A
|
||||
SCF
|
||||
RET NZ
|
||||
;
|
||||
EX AF,AF'
|
||||
AND A
|
||||
RET
|
||||
|
||||
|
||||
; HL - BUFER, A - PAGE
|
||||
FN_HDD_WRITE:
|
||||
@ -357,7 +355,7 @@ HD_WR_L2:
|
||||
WAIT_HDD
|
||||
|
||||
BIT IDE.ControlBit.DataRequest,A
|
||||
JP Z,HD_RET
|
||||
JR Z,HD_RET
|
||||
|
||||
LD BC,IDE.Write.Data
|
||||
LD D,32 ;!HARDCODE § ¢¨á¨â ®â áçñâ稪 DUP ¢ HD_WR_LOOP
|
||||
@ -376,7 +374,7 @@ HD_WR_LOOP:
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
EX AF,AF'
|
||||
LD HL,SYS_PAGE.RAMD_FAT
|
||||
LD H,high SYS_PAGE.RAMD_FAT
|
||||
LD L,A
|
||||
LD A,(HL)
|
||||
OUT (SLOT3),A
|
||||
@ -384,6 +382,7 @@ HD_WR_LOOP:
|
||||
LD HL,#C000 ;!!!!!
|
||||
JR HD_WR_L2
|
||||
|
||||
; [ ] ¯®ª à ¡®â ¥â ⮫쪮 á ®¤¨¬ ª «®¬ (¯®-áâ ஬ã)
|
||||
FN_HDD_RECAL:
|
||||
LD A,IDE.Drive.Master
|
||||
LD BC,IDE.Write.DeviceHead
|
||||
@ -407,34 +406,82 @@ FN_HDD_RECAL:
|
||||
; CALL HD_CMD_EXE
|
||||
; RET
|
||||
|
||||
|
||||
; [x] 28/01/2024 à ¡®â ¥â á® ¢á¥¬¨ ª « ¬¨
|
||||
FN_HDD_TEST_IDE:
|
||||
LD E,#00
|
||||
LD BC,IDE.Write.DeviceHead
|
||||
LD A,IDE.Drive.Master
|
||||
OUT (C),A
|
||||
|
||||
CALL TEST_HDD_DRV
|
||||
|
||||
JR NZ,NO_HDD1
|
||||
SET 0,E
|
||||
NO_HDD1:
|
||||
LD BC,IDE.Write.DeviceHead
|
||||
LD A,IDE.Drive.Slave
|
||||
OUT (C),A
|
||||
|
||||
CALL TEST_HDD_DRV
|
||||
|
||||
JR NZ,NO_HDD2
|
||||
SET 1,E
|
||||
NO_HDD2:
|
||||
LD A,E
|
||||
; TEST Secondary Chanel
|
||||
LD A,IDE.Chanel.Secondary
|
||||
OUT (IDE.Chanel.Set),A
|
||||
CALL .TEST_CHANEL
|
||||
SLA E
|
||||
SLA E
|
||||
; TEST Primary Chanel
|
||||
LD A,IDE.Chanel.Primary
|
||||
OUT (IDE.Chanel.Set),A
|
||||
CALL .TEST_CHANEL
|
||||
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; LD BC,IDE.Write.DeviceHead
|
||||
; LD A,IDE.Drive.Master
|
||||
; OUT (C),A
|
||||
; ;
|
||||
; CALL TEST_HDD_DRV
|
||||
; ;
|
||||
; JR NZ,.NO_HDD1
|
||||
; SET 0,E
|
||||
; .NO_HDD1:
|
||||
; LD BC,IDE.Write.DeviceHead
|
||||
; LD A,IDE.Drive.Slave
|
||||
; OUT (C),A
|
||||
; ;
|
||||
; CALL TEST_HDD_DRV
|
||||
; ;
|
||||
; JR NZ,.NO_HDD2
|
||||
; SET 1,E
|
||||
; .NO_HDD2:
|
||||
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;
|
||||
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
LD C,SLOT3
|
||||
IN B,(C)
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
;
|
||||
LD A,(SYS_PAGE.CURRENT_HDD)
|
||||
OUT (C),B
|
||||
CP #FF
|
||||
JR Z,.exit
|
||||
AND 1
|
||||
JR Z,.exit
|
||||
LD A,IDE.Chanel.Secondary
|
||||
OUT (IDE.Chanel.Set),A
|
||||
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
.exit: LD A,E
|
||||
AND A
|
||||
SCF
|
||||
RET Z ; HDD absent !
|
||||
AND A
|
||||
RET
|
||||
|
||||
.TEST_CHANEL:
|
||||
LD BC,IDE.Write.DeviceHead
|
||||
LD A,IDE.Drive.Master
|
||||
OUT (C),A
|
||||
;
|
||||
CALL TEST_HDD_DRV
|
||||
;
|
||||
JR NZ,.NO_HDD1
|
||||
SET 0,E
|
||||
.NO_HDD1:
|
||||
LD BC,IDE.Write.DeviceHead
|
||||
LD A,IDE.Drive.Slave
|
||||
OUT (C),A
|
||||
;
|
||||
CALL TEST_HDD_DRV
|
||||
;
|
||||
RET NZ
|
||||
SET 1,E
|
||||
RET
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;-----------------------------------[DIFFERENT]
|
||||
; <20>¥ ¤®«¦ ¯®àâ¨âì ॣ¨áâà E!!!
|
||||
@ -446,7 +493,7 @@ TEST_HDD_DRV:
|
||||
IF IDE_Optimization
|
||||
INC C
|
||||
OUT (C),H ; IDE.Write.Sector
|
||||
|
||||
;
|
||||
DEC C
|
||||
INC B
|
||||
IN A,(C) ; ????? IDE.Write.Counter+#100
|
||||
@ -497,7 +544,7 @@ TEST_HDD_DRV:
|
||||
; RET
|
||||
|
||||
|
||||
; [ ] 07/01/2024 bit1: Primary/Secondary, bit0 - master/slave, bit2..3: ¨á¯®«ì§ãî騩áï à §¤¥« ¢ MBR
|
||||
; [x] 07/01/2024 bit1: Primary/Secondary, bit0 - master/slave, bit2..3: ¨á¯®«ì§ãî騩áï à §¤¥« ¢ MBR
|
||||
; !TODO ᤥ« âì à ¡®âã á ¯¥à¥¬¥ë¬¨ ¡¨®á SYS_PAGE.IDE_0..3
|
||||
FN_HDD_PART:
|
||||
DI
|
||||
@ -554,7 +601,7 @@ FN_HDD_PART:
|
||||
SCF
|
||||
JR .exit
|
||||
|
||||
; [ ] 27/01/2024 ¤ ¯â¨à®¢ ¤«ï ª®à४⮩ à ¡®âë á FN_HDD_PART
|
||||
; [x] 27/01/2024 ¤ ¯â¨à®¢ ¤«ï ª®à४⮩ à ¡®âë á FN_HDD_PART
|
||||
FN_HDD_INIT:
|
||||
LD C,SLOT3
|
||||
IN B,(C)
|
||||
@ -645,10 +692,6 @@ FN_HDD_INIT:
|
||||
OUT (SLOT3),A
|
||||
LD A,IDE.ATA.InitializeDeviceParameters ; SET HDD PARAMETERS
|
||||
CALL HD_CMD_EXE
|
||||
;
|
||||
;
|
||||
;
|
||||
;
|
||||
RET
|
||||
HD_CMD_EXE:
|
||||
CALL HD_WAIT
|
||||
@ -782,7 +825,7 @@ HD_CALC_SECS:
|
||||
AND A
|
||||
RET
|
||||
|
||||
; [ ] 27/01/2024 ⥯¥àì ०¨¬ ᯥªâàã¬ à ¡®â ¥â á «î¡ë¬ à §¤¥«®¬ HDD
|
||||
; [x] 27/01/2024 ⥯¥àì ०¨¬ ᯥªâàã¬ à ¡®â ¥â á «î¡ë¬ à §¤¥«®¬ HDD
|
||||
SET_BPB_OFFSET:
|
||||
LD A,SYS_PAGE
|
||||
LD HL,SYS_PAGE.MS_BPB
|
||||
@ -804,7 +847,7 @@ SET_BPB_OFFSET:
|
||||
LD B,A
|
||||
;
|
||||
LD HL,SYS_PAGE.MS_BPB-16 + #01BE ;!HARDCODE ᬥ饨¥ ®â ç « ᥪâ®à ¤«ï â ¡«¨æë à §¤¥«®¢ c ¯¥à¢ë¬ ᥪâ®à®¬ LBA ¤«ï ¯¥à¢®£® à §¤¥«
|
||||
LD DE,16 ;!HARDCODE à §¬¥à ¯®«ï ®¯¨á ⥫ï à §¤¥«
|
||||
LD DE,16 ;!HARDCODE à §¬¥à ¯®«ï ®¯¨á ⥫ï à §¤¥«
|
||||
.loop: ADD HL,DE
|
||||
DJNZ .loop
|
||||
;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user