костыли со сменой носителя ATAPI
This commit is contained in:
parent
a26c17f183
commit
f22efa0794
@ -1 +1 @@
|
||||
Subproject commit f533c03f52f53e581c794c1017b7b0d61d39dfbf
|
||||
Subproject commit 4ecde88739cd3e2b7447dd36b79163f1a5e0d40d
|
||||
@ -44,7 +44,7 @@ ATAPI_5x_RESET: LD C,IDE.Device.ATAPI
|
||||
DJNZ .loop
|
||||
RET
|
||||
;[]================================================================[#51]
|
||||
|
||||
|
||||
|
||||
;[]================================================================[#58]
|
||||
;Function: Get Current Media Parameters
|
||||
@ -70,34 +70,33 @@ ATAPI_5x_GET_PAR:
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
;
|
||||
; [ ] sector size. media changed
|
||||
CALL ATAPI_CHECK_MEDIA_CHANGED
|
||||
EX AF,AF'
|
||||
POP AF
|
||||
EX AF,AF'
|
||||
JR NC,.get_data
|
||||
;
|
||||
CP BIOS.Error.ATAPI.UnitAttention
|
||||
JR Z,.UnitAttention
|
||||
;
|
||||
;CP BIOS.Error.ATAPI.NotReady
|
||||
;SCF
|
||||
;RET NZ
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
EX AF,AF
|
||||
LD HL,#FFFF
|
||||
LD D,H
|
||||
LD E,L
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
.UnitAttention: RES 1,(IY + IDE.HDD_INIT_TABLE.MediaParameters) ; [ ] removable media
|
||||
EX AF,AF'
|
||||
SCF
|
||||
EX AF,AF'
|
||||
.get_data: ;
|
||||
LD A,(IY+IDE.HDD_INIT_TABLE.MediaParameters)
|
||||
; [ ] sector size. media changed
|
||||
CALL ATAPI_CHECK_MEDIA_CHANGED
|
||||
EX AF,AF'
|
||||
POP AF
|
||||
EX AF,AF'
|
||||
JR NC,.get_data
|
||||
;
|
||||
CP BIOS.Error.ATAPI.UnitAttention
|
||||
JR Z,.UnitAttention
|
||||
;
|
||||
CP BIOS.Error.ATAPI.MediumError
|
||||
JR NZ,.unknown_error
|
||||
;
|
||||
LD A,BIOS.Error.ATAPI.UnitAttention ;!FIXIT ª®áâë«ì
|
||||
.unknown_error: LD HL,#FFFF
|
||||
LD D,H
|
||||
LD E,L
|
||||
SCF
|
||||
EX AF,AF' ; âãâ ¬ ᪨à㥬 ®è¨¡ªã, ¨§ ç «ì® CF=1 ⮫쪮 ¥á«¨ ãáâனá⢮ ®âáãâáâ¢ã¥â
|
||||
OUT (SLOT3),A
|
||||
RET
|
||||
;
|
||||
.UnitAttention: RES 1,(IY + IDE.HDD_INIT_TABLE.MediaParameters) ; [ ] removable media
|
||||
EX AF,AF'
|
||||
SCF
|
||||
EX AF,AF'
|
||||
.get_data: LD A,(IY+IDE.HDD_INIT_TABLE.MediaParameters)
|
||||
LD B,(IY+IDE.HDD_INIT_TABLE.DRV_Flags)
|
||||
; [ ] sector size
|
||||
LD E,(IY+IDE.HDD_INIT_TABLE.SectorSize)
|
||||
@ -109,10 +108,10 @@ ATAPI_5x_GET_PAR:
|
||||
LD H,(IY+IDE.HDD_INIT_TABLE.MediaSizeHigh+1)
|
||||
LD E,(IY+IDE.HDD_INIT_TABLE.MediaSizeLow)
|
||||
LD D,(IY+IDE.HDD_INIT_TABLE.MediaSizeLow+1)
|
||||
;
|
||||
;
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
LD A,BIOS.Error.ATAPI.UnitAttention ; ¥á«¨ CF, â® ®¬¥à ®è¨¡ª¨
|
||||
OUT (SLOT3),A
|
||||
LD A,BIOS.Error.ATAPI.UnitAttention ; ¥á«¨ CF, â® ®¬¥à ®è¨¡ª¨
|
||||
EX AF,AF
|
||||
RET
|
||||
;[]================================================================[#58]
|
||||
@ -396,16 +395,19 @@ ATAPI_REQUEST_SENSE:
|
||||
ATAPI_CHECK_MEDIA_CHANGED:
|
||||
CALL EXEC_TEST_CMD ;!FIXIT ¬®¦¥â ¨ ¥ ¤®
|
||||
RET C
|
||||
; .skip_nop: EXX
|
||||
; CALL ATAPI_WAITPRT
|
||||
; EXX
|
||||
; LD A, high IDE.Read.Status
|
||||
; IN A,(low IDE.Read.Status)
|
||||
; RRA
|
||||
; ;RET NC
|
||||
;JR C,.noWait
|
||||
; JR NC,.next_check
|
||||
; ;
|
||||
; CP BIOS.Error.ATAPI.UnitAttention
|
||||
; SCF
|
||||
; RET Z
|
||||
; ;
|
||||
; CP BIOS.Error.ATAPI.MediumError
|
||||
; JR Z,.next_check
|
||||
; ;
|
||||
; SCF
|
||||
; RET
|
||||
;
|
||||
EXX
|
||||
.next_check: EXX
|
||||
LD C,SLOT3
|
||||
IN B,(C)
|
||||
LD A,SYS_PAGE
|
||||
@ -460,6 +462,7 @@ TRAY_FN: LD HL,ATAPI_CMD_PACKET.CLOSE
|
||||
; A' - ç «ì ï áâà ¨æ ¤«ï R/W Long
|
||||
;
|
||||
; RETURN: CF - ERROR
|
||||
; ;!FIXIT ®¬¥à ¥¯à ¢¨«ìë¥
|
||||
; !TODO CD ERRORS to INCLUDES
|
||||
; #01 - RECOVERED ERROR
|
||||
; #02 - NOT READY
|
||||
@ -471,12 +474,26 @@ TRAY_FN: LD HL,ATAPI_CMD_PACKET.CLOSE
|
||||
; #0B - ABORTED COMMAND
|
||||
; #80 - TIME OUT
|
||||
EXEC_PACKET_COMMAND:
|
||||
; .error_APLOOP: LD A,BIOS.Error.ATAPI.UnitAttention
|
||||
; RET
|
||||
;
|
||||
.error_ex: EX DE,HL
|
||||
.error: CP #FF
|
||||
.error_fail: SCF
|
||||
LD C,A
|
||||
LD A,BIOS.Error.Failure
|
||||
RET Z
|
||||
;
|
||||
LD A,BIOS.Error.ATAPI.UnitAttention
|
||||
CP C
|
||||
SCF
|
||||
RET Z
|
||||
;
|
||||
LD A,BIOS.Error.ATAPI.MediumError
|
||||
CP C
|
||||
SCF
|
||||
RET Z
|
||||
;
|
||||
LD A,BIOS.Error.Busy
|
||||
RET
|
||||
;
|
||||
@ -578,7 +595,7 @@ EXEC_PACKET_COMMAND:
|
||||
EX DE,HL
|
||||
;
|
||||
.AP_LOOP: CALL ATAPI_CHECK_DRV
|
||||
JP C,.error
|
||||
JP C,.error;_APLOOP
|
||||
RET Z
|
||||
;====== IF DATA REQUEST ===============================================;
|
||||
.data_request: IN A,(SLOT3)
|
||||
|
||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user