костыли со сменой носителя 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
	 Tolik
						Tolik