atapi media changed всё ближе

This commit is contained in:
Tolik committed 2025-02-13 23:29:27 +10:00
1 parent 624ba73ef4
commit 1cb8ee9e78
5 files changed
+38 -11

No files matched your search

+2 -2
View File
@@ -557,7 +557,7 @@ TAB_5xFNS:
DB low ATAPI_5x_WRITE ; [ ] new
DB low ATAPI_5x_DETECT
DB low ATAPI_5x_GET_PAR ; [ ] new
DB low FN_ABSENT_5x ; SETMED
DB low ATAPI_5x_SET_PAR ; SETMED
DB low DRV_VERSION
DB low FN_RESERVED_5x
@@ -660,7 +660,7 @@ TAB_5xFNS:
DB high ATAPI_5x_WRITE ; WRITE ; [ ] new
DB high ATAPI_5x_DETECT
DB high ATAPI_5x_GET_PAR
DB high FN_ABSENT_5x ; SETMED
DB high ATAPI_5x_SET_PAR ; SETMED
DB high DRV_VERSION
DB high FN_RESERVED_5x
+22
View File
@@ -114,6 +114,28 @@ ATAPI_5x_GET_PAR:
RET
;[]================================================================[#58]
;[]================================================================[#59]
; [ ] media changed
ATAPI_5x_SET_PAR:
LD L,B
LD C,IDE.Device.ATAPI
CALL SELECT_DRIVE
RET C
;
IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
;
LD (IY+IDE.HDD_INIT_TABLE.MediaParameters),B
EX AF,AF
OUT (SLOT3),A
RET
;[]================================================================[#59]
;!TODO
; atapi.pdf áâà. 24 § ¯¨áì/ç⥭¨¥ ¬®£ãâ ¡ëâì ¬ ªá¨¬ «ì­ë¬¨ ¡«®ª ¬¨ ¢ ­¥áª®«ìª® § å®¤®¢
;[]================================================================[#55]
+1
View File
@@ -2,6 +2,7 @@
;=======================================================================
; ‚室: A - ­®¬¥à ãáâனá⢠, C - DriveType
; ‚ë室: A - MediaParameters, C - DriveType
; ­¥ ¯®àâ¨â L
SELECT_DRIVE:
AND #0F
LD IY,IDE.INIT_TBL_IDE0
+11 -7
View File
@@ -446,20 +446,22 @@ IDESPEC: IN A,(SLOT3)
LD (IY+IDE.HDD_INIT_TABLE.DRV_Flags),A
; ­  ¢á直© á«ãç ©
LD (IY+IDE.HDD_INIT_TABLE.MediaParameters),%0000'0001
;!FIXIT ᤥ« âì æ¨ª« á® áçñâ稪®¬
.get_error_loop: LD HL,ATAPI_CMD_PACKET.TEST_UNIT_READY
LD B,100 ; áçñâ稪 ¯®¯ë⮪ (1 ¯®¯ë⪠ - 1 HALT)
.get_error_loop: PUSH BC
LD HL,ATAPI_CMD_PACKET.TEST_UNIT_READY
CALL EXEC_PACKET_COMMAND.start
POP BC
JR NC,.s_size
;
CP BIOS.Error.ATAPI.NotReady
JR Z,.get_error_loop
;
RES 1,(IY + IDE.HDD_INIT_TABLE.MediaParameters) ; [ ] removable media
CP BIOS.Error.ATAPI.UnitAttention
JR Z,IDESPEC.END
; «î¡ ï ­¥¯®­ïâ­ ï ®è¨¡ª  - ­¥â ­®á¨â¥«ï
;
CP BIOS.Error.ATAPI.NotReady
SCF
JR .set_sector
JR NZ,.set_sector ; «î¡ ï ­¥¯®­ïâ­ ï ®è¨¡ª  - ­¥â ­®á¨â¥«ï
HALT
DJNZ .get_error_loop
;
; LD HL,ATAPI_CMD_PACKET.REQUEST_SENSE
; LD DE,IDENTIFY_DEVICE_BUFFER.ReservedWord224 ; ¯à®áâ® ­ã¦¥­ ¡ë« ¡ãä¥à
@@ -468,6 +470,7 @@ IDESPEC: IN A,(SLOT3)
.s_size: LD HL,ATAPI_CMD_PACKET.READ_CAPACITY_DATA
LD DE,IDENTIFY_DEVICE_BUFFER.ReservedWord224 ; ¯à®áâ® ­ã¦¥­ ¡ë« ¡ãä¥à
CALL EXEC_PACKET_COMMAND.start
;
.set_sector: LD HL,#FFFF
JR C,.No_Media
;
@@ -481,6 +484,7 @@ IDESPEC: IN A,(SLOT3)
;
.No_Media: LD (IY+IDE.HDD_INIT_TABLE.SectorSize),H
LD (IY+IDE.HDD_INIT_TABLE.SectorSize + 1),L
RES 1,(IY + IDE.HDD_INIT_TABLE.MediaParameters) ; [ ] removable media
;LD (IY+IDE.HDD_INIT_TABLE.MediaParameters),%0000'0001 ; !HARDCODE ATAPI ¯®ª  ¢á¥£¤  removable
;
JR IDESPEC.END
+2 -2
View File
@@ -1,6 +1,6 @@
;=======================[All shared EQUs]=======================;
BETA_BUILD EQU 10 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥­¨¥ ® â¥á⮢®© ᡮથ ­  áâ à⮢®¬ íªà ­¥
BETA_RC EQU 1 ;
BETA_BUILD EQU 40 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥­¨¥ ® â¥á⮢®© ᡮથ ­  áâ à⮢®¬ íªà ­¥
BETA_RC EQU 0 ;
;======================[All shared defines]=====================;
DEFINE PACKED_MAIN 0 ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®?
DEFINE SP2000_Loader_Flag #0107 ;