...
This commit is contained in:
parent
743cc31493
commit
d8e1695ca0
@ -1 +1 @@
|
|||||||
Subproject commit 18269745815d90e76686f5693e0cb45f8f31741c
|
Subproject commit 349ba286106d21a77cf3f8a25b6f7c952eccb046
|
||||||
@ -117,7 +117,6 @@ SELHH: EXX
|
|||||||
LD A,IDE.Chanel.Primary
|
LD A,IDE.Chanel.Primary
|
||||||
SELCHAN:
|
SELCHAN:
|
||||||
OUT (IDE.Chanel.Set),A ;R02
|
OUT (IDE.Chanel.Set),A ;R02
|
||||||
|
|
||||||
LD A,(IY+IDE.HDD_INIT_TABLE.DriveType)
|
LD A,(IY+IDE.HDD_INIT_TABLE.DriveType)
|
||||||
CP IDE.Device.HDD ;!FIXIT ¢®§¬®¦®, åॠ¥ 㦮, ¯®â®¬ã-çâ® ¥á«¨ CD, â® ¯à¨«¥â¨â ¢ ¤à ©¢¥à CD
|
CP IDE.Device.HDD ;!FIXIT ¢®§¬®¦®, åॠ¥ 㦮, ¯®â®¬ã-çâ® ¥á«¨ CD, â® ¯à¨«¥â¨â ¢ ¤à ©¢¥à CD
|
||||||
LD A,(IY+IDE.HDD_INIT_TABLE.DRV_Flags)
|
LD A,(IY+IDE.HDD_INIT_TABLE.DRV_Flags)
|
||||||
@ -128,7 +127,7 @@ SELCHAN:
|
|||||||
EXX
|
EXX
|
||||||
RET Z
|
RET Z
|
||||||
NODRIVE:
|
NODRIVE:
|
||||||
LD A,2 ;!HARDCODE
|
LD A,BIOS.Error.BadDrvNumber
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
|
|
||||||
@ -239,13 +238,13 @@ HDD_5x.LONG_READ:
|
|||||||
ADD IX,BC
|
ADD IX,BC
|
||||||
LD B,C
|
LD B,C
|
||||||
ADC HL,BC
|
ADC HL,BC
|
||||||
EX AF,AF'
|
;EX AF,AF' ;!TEST 21/11/23
|
||||||
JR RST8RDR
|
JR RST8RDR
|
||||||
|
|
||||||
RNOT256 ADD IX,BC
|
RNOT256 ADD IX,BC
|
||||||
LD C,B
|
LD C,B
|
||||||
ADC HL,BC
|
ADC HL,BC
|
||||||
EX AF,AF'
|
;EX AF,AF' ;!TEST 21/11/23
|
||||||
JR RST8RDR
|
JR RST8RDR
|
||||||
|
|
||||||
HERRRD0 LD B,A
|
HERRRD0 LD B,A
|
||||||
@ -265,14 +264,13 @@ HERRRD0 LD B,A
|
|||||||
LD C,A
|
LD C,A
|
||||||
LD A,B
|
LD A,B
|
||||||
LD B,C
|
LD B,C
|
||||||
SCF ;R03
|
;R03
|
||||||
EX AF,AF' ;R03
|
SCF
|
||||||
RST8RDR:
|
;EX AF,AF' ;!TEST 21/11/23
|
||||||
|
;
|
||||||
RESTORE_PORTY
|
RST8RDR: RESTORE_PORTY
|
||||||
|
|
||||||
POP IY
|
POP IY
|
||||||
EX AF,AF'
|
;EX AF,AF' ;!TEST 21/11/23
|
||||||
RET
|
RET
|
||||||
;READ SECTOR(S)
|
;READ SECTOR(S)
|
||||||
RDS000: CALL SELECTH
|
RDS000: CALL SELECTH
|
||||||
@ -401,13 +399,13 @@ HDD_5x.LONG_WRITE:
|
|||||||
ADD IX,BC
|
ADD IX,BC
|
||||||
LD B,C
|
LD B,C
|
||||||
ADC HL,BC
|
ADC HL,BC
|
||||||
EX AF,AF'
|
;EX AF,AF'
|
||||||
JR RST8WRR
|
JR RST8WRR
|
||||||
|
|
||||||
WNOT256 ADD IX,BC
|
WNOT256 ADD IX,BC
|
||||||
LD C,B
|
LD C,B
|
||||||
ADC HL,BC
|
ADC HL,BC
|
||||||
EX AF,AF'
|
;EX AF,AF'
|
||||||
JR RST8WRR
|
JR RST8WRR
|
||||||
|
|
||||||
HERRWR0 LD B,A
|
HERRWR0 LD B,A
|
||||||
@ -427,14 +425,13 @@ HERRWR0 LD B,A
|
|||||||
LD C,A
|
LD C,A
|
||||||
LD A,B
|
LD A,B
|
||||||
LD B,C
|
LD B,C
|
||||||
SCF ;R03
|
;R03
|
||||||
EX AF,AF' ;R03 ;!FIXIT ¬ã¤à¨« ® çñâ ¢ í⮬ R03
|
SCF ;R03
|
||||||
RST8WRR EXX
|
;EX AF,AF' ;R03 ;!FIXIT ¬ã¤à¨« ® çñâ ¢ í⮬ R03
|
||||||
POP BC
|
;
|
||||||
OUT (C),B
|
RST8WRR: RESTORE_PORTY
|
||||||
EXX
|
|
||||||
POP IY
|
POP IY
|
||||||
EX AF,AF'
|
;EX AF,AF'
|
||||||
RET
|
RET
|
||||||
|
|
||||||
;WRITE SECTOR(S)
|
;WRITE SECTOR(S)
|
||||||
@ -451,6 +448,7 @@ WRS000:
|
|||||||
PUSH AF
|
PUSH AF
|
||||||
PUSH DE
|
PUSH DE
|
||||||
|
|
||||||
|
;[x] CMOS Write Protect Disabled
|
||||||
IF HDDwriteProtect
|
IF HDDwriteProtect
|
||||||
PUSH BC
|
PUSH BC
|
||||||
LD D,#1D ;!HARDCODE CMOS Write Protect
|
LD D,#1D ;!HARDCODE CMOS Write Protect
|
||||||
@ -462,7 +460,7 @@ WRS000:
|
|||||||
POP AF
|
POP AF
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD XL,0
|
LD XL,0
|
||||||
LD A,8 ;WRITE PROTECT
|
LD A,BIOS.Error.WriteProtect
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
ENDIF
|
ENDIF
|
||||||
@ -483,13 +481,12 @@ WRS002: EXX
|
|||||||
EXX
|
EXX
|
||||||
RET C
|
RET C
|
||||||
|
|
||||||
//DI
|
;DI
|
||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD A,XH
|
LD A,XH
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD BC,IDE.Write.Data
|
LD BC,IDE.Write.Data
|
||||||
|
|
||||||
;LD D,#20
|
;LD D,#20
|
||||||
LD D,512/WRITE_OUTI_DUPs
|
LD D,512/WRITE_OUTI_DUPs
|
||||||
WRS003:
|
WRS003:
|
||||||
@ -542,18 +539,13 @@ WRS003:
|
|||||||
;VERIFY SECTOR(S)
|
;VERIFY SECTOR(S)
|
||||||
HDD_5x.VERIFY:
|
HDD_5x.VERIFY:
|
||||||
PUSH IY
|
PUSH IY
|
||||||
|
SAFE_PORTY_2
|
||||||
SAFE_PORTY_2
|
|
||||||
|
|
||||||
PUSH IX
|
PUSH IX
|
||||||
PUSH HL
|
PUSH HL
|
||||||
CALL VRS000
|
CALL VRS000
|
||||||
POP HL
|
POP HL
|
||||||
POP IX
|
POP IX
|
||||||
EXX
|
RESTORE_PORTY
|
||||||
POP BC
|
|
||||||
OUT (C),B
|
|
||||||
EXX
|
|
||||||
POP IY
|
POP IY
|
||||||
RET
|
RET
|
||||||
;[]================================================================[#54]
|
;[]================================================================[#54]
|
||||||
@ -679,9 +671,7 @@ CHS005: INC A
|
|||||||
WAITPRT:
|
WAITPRT:
|
||||||
LD BC,IDE.Read.Status
|
LD BC,IDE.Read.Status
|
||||||
LD HL,#0000 ; § ¤¥à¦ª ;!HARDCODE
|
LD HL,#0000 ; § ¤¥à¦ª ;!HARDCODE
|
||||||
|
|
||||||
.loop: PUSH HL
|
.loop: PUSH HL
|
||||||
|
|
||||||
.loop2: IN A,(C)
|
.loop2: IN A,(C)
|
||||||
AND D
|
AND D
|
||||||
CP E
|
CP E
|
||||||
@ -690,12 +680,12 @@ WAITPRT:
|
|||||||
LD A,L
|
LD A,L
|
||||||
OR H
|
OR H
|
||||||
JP NZ,.loop2
|
JP NZ,.loop2
|
||||||
|
;
|
||||||
POP HL
|
POP HL
|
||||||
DEC L
|
DEC L
|
||||||
JR NZ,.loop
|
JR NZ,.loop
|
||||||
|
;
|
||||||
.error: LD A,4 ;!HARDCODE error number
|
.error: LD A,BIOS.Error.WaitPort
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
.ok: POP HL
|
.ok: POP HL
|
||||||
@ -711,7 +701,7 @@ WAITPRT:
|
|||||||
HDD_5x.DETECT:
|
HDD_5x.DETECT:
|
||||||
CP #84 ;!HARDCODE max HDD drives (#80,#81,#82,#83)
|
CP #84 ;!HARDCODE max HDD drives (#80,#81,#82,#83)
|
||||||
CCF
|
CCF
|
||||||
RET C
|
JR C,.error
|
||||||
|
|
||||||
LD HL,IDE.INIT_TBL_IDE0.DriveType
|
LD HL,IDE.INIT_TBL_IDE0.DriveType
|
||||||
AND 3
|
AND 3
|
||||||
@ -736,5 +726,6 @@ HDD_5x.DETECT:
|
|||||||
CP IDE.Device.HDD
|
CP IDE.Device.HDD
|
||||||
RET Z
|
RET Z
|
||||||
SCF
|
SCF
|
||||||
|
.error: LD A,BIOS.Error.BadDrvNumber
|
||||||
RET
|
RET
|
||||||
;[]================================================================[#57]
|
;[]================================================================[#57]
|
||||||
@ -179,7 +179,6 @@ FN_HDD_READ_BPB:
|
|||||||
RET C
|
RET C
|
||||||
CALL HD_BPB_PREP
|
CALL HD_BPB_PREP
|
||||||
RET C
|
RET C
|
||||||
|
|
||||||
JR HD_RD_L1
|
JR HD_RD_L1
|
||||||
|
|
||||||
|
|
||||||
@ -249,14 +248,14 @@ HD_READ_CONT:
|
|||||||
|
|
||||||
.loop_read1:
|
.loop_read1:
|
||||||
DUP 16
|
DUP 16
|
||||||
INI ; ¢á¥£® 16 à § INI - ®¯â¨¬ «ì®.
|
INI ; ¢á¥£® 16 à § INI - ®¯â¨¬ «ì®.
|
||||||
EDUP
|
EDUP
|
||||||
JP NZ,.loop_read1
|
JR NZ,.loop_read1
|
||||||
.loop_read2:
|
.loop_read2:
|
||||||
DUP 16
|
DUP 16
|
||||||
INI ; ¢á¥£® 16 à § INI - ®¯â¨¬ «ì®.
|
INI ; ¢á¥£® 16 à § INI - ®¯â¨¬ «ì®.
|
||||||
EDUP
|
EDUP
|
||||||
JP NZ,.loop_read2
|
JR NZ,.loop_read2
|
||||||
|
|
||||||
LD A,H
|
LD A,H
|
||||||
OR L
|
OR L
|
||||||
@ -303,14 +302,14 @@ HD_WR_L2:
|
|||||||
JP Z,HD_RET
|
JP Z,HD_RET
|
||||||
|
|
||||||
LD BC,IDE.Write.Data
|
LD BC,IDE.Write.Data
|
||||||
LD D,32
|
LD D,32 ;!HARDCODE § ¢¨á¨â ®â áçñâ稪 DUP ¢ HD_WR_LOOP
|
||||||
HD_WR_LOOP:
|
HD_WR_LOOP:
|
||||||
DUP 16
|
DUP 16
|
||||||
OUTI ; ¢á¥£® 16 à § OUTI - ®¯â¨¬ «ì®.
|
OUTI ; ¢á¥£® 16 à § OUTI - ®¯â¨¬ «ì®.
|
||||||
EDUP
|
EDUP
|
||||||
|
|
||||||
DEC D
|
DEC D
|
||||||
JP NZ,HD_WR_LOOP
|
JR NZ,HD_WR_LOOP
|
||||||
|
|
||||||
LD A,H
|
LD A,H
|
||||||
OR L
|
OR L
|
||||||
@ -599,53 +598,51 @@ HD_CALC_SECS:
|
|||||||
BIT 6,A
|
BIT 6,A
|
||||||
JR NZ,HDD_LBA
|
JR NZ,HDD_LBA
|
||||||
POP BC ; ᨬ ¥¬ § 票¥ ¤«ï ª®à४⮣® ret
|
POP BC ; ᨬ ¥¬ § 票¥ ¤«ï ª®à४⮣® ret
|
||||||
|
;
|
||||||
LD A,XH
|
LD A,XH
|
||||||
AND A
|
AND A
|
||||||
SCF
|
SCF
|
||||||
RET NZ ; ®è¨¡ª , ᫨誮¬ ¡®«ì让 HDD
|
RET NZ ; ®è¨¡ª , ᫨誮¬ ¡®«ì让 HDD
|
||||||
|
; IX,DE - ¡á®«îâë© ®¬¥à ᥪâ®à
|
||||||
; IX,DE - ¡á®«îâë© ®¬¥à ᥪâ®à
|
|
||||||
PUSH IX
|
PUSH IX
|
||||||
POP HL
|
POP HL
|
||||||
|
;
|
||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
LD C,A
|
LD C,A
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD A,C
|
LD A,C
|
||||||
LD (SYS_PAGE.COPY_SLOT3),A
|
LD (SYS_PAGE.COPY_SLOT3),A
|
||||||
|
; HL,DE - ®¬¥à ᥪâ®à
|
||||||
; HL,DE - ®¬¥à ᥪâ®à
|
; BC - ç¨á«® ᥪâ®à®¢ 樫¨¤à¥
|
||||||
; BC - ç¨á«® ᥪâ®à®¢ 樫¨¤à¥
|
|
||||||
LD BC,(SYS_PAGE.HD_IDF_ADR.sec_cyl) ; ç¨á«® ᥪâ®à®¢ 樫¨¤à¥
|
LD BC,(SYS_PAGE.HD_IDF_ADR.sec_cyl) ; ç¨á«® ᥪâ®à®¢ 樫¨¤à¥
|
||||||
LD A,16 ; HL,DE à §¤¥«¨âì BC
|
LD A,16 ; HL,DE à §¤¥«¨âì BC
|
||||||
SCF
|
SCF
|
||||||
DIV_LOOP:
|
.DIV_LOOP:
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
ADD HL,HL
|
ADD HL,HL
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
ADC HL,HL
|
ADC HL,HL
|
||||||
|
;
|
||||||
SBC HL,BC ; áà ¢¨âì HL ¨ BC
|
SBC HL,BC ; áà ¢¨âì HL ¨ BC
|
||||||
JR NC,NO_ADD ; ¯¥à¥®á ¥ ¡ë«® - +1!
|
JR NC,.NO_ADD ; ¯¥à¥®á ¥ ¡ë«® - +1!
|
||||||
ADD HL,BC
|
ADD HL,BC
|
||||||
DEC A
|
DEC A
|
||||||
JR NZ,DIV_LOOP
|
JR NZ,.DIV_LOOP
|
||||||
JR DIV_END
|
JR .DIV_END
|
||||||
NO_ADD:
|
.NO_ADD:
|
||||||
INC DE
|
INC DE
|
||||||
DEC A
|
DEC A
|
||||||
JR NZ,DIV_LOOP
|
JR NZ,.DIV_LOOP
|
||||||
DIV_END:
|
.DIV_END:
|
||||||
; DE - १ã«ìâ â, HL - ®áâ ⮪
|
; DE - १ã«ìâ â, HL - ®áâ ⮪
|
||||||
; DE - 樫¨¤à
|
; DE - 樫¨¤à
|
||||||
LD A,(SYS_PAGE.HD_IDF_ADR+12) ; !HARDCODE .sectors
|
LD A,(SYS_PAGE.HD_IDF_ADR+12) ; !HARDCODE .sectors
|
||||||
; A - ç¨á«® ᥪâ®à®¢ ¤®à®¦ª¥
|
; A - ç¨á«® ᥪâ®à®¢ ¤®à®¦ª¥
|
||||||
; HL - ®¬¥à ᥪâ®à ¢ 樫¨¤à¥
|
; HL - ®¬¥à ᥪâ®à ¢ 樫¨¤à¥
|
||||||
LD B,0
|
LD B,0
|
||||||
LD C,A
|
LD C,A
|
||||||
; LD BC,(MS_BPB+S_P_T) ; —ˆ‘‹Ž ‘…Š’Ž<E28099>Ž‚ <20>€ „Ž<E2809E>ކЅ
|
;LD BC,(MS_BPB+S_P_T) ; —ˆ‘‹Ž ‘…Š’Ž<E28099>Ž‚ <20>€ „Ž<E2809E>ކЅ
|
||||||
XOR A
|
XOR A
|
||||||
HD_CALC_LOOP2:
|
HD_CALC_LOOP2:
|
||||||
SBC HL,BC
|
SBC HL,BC
|
||||||
|
|||||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user