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