atapi media changed всё ближе
This commit is contained in:
		
							parent
							
								
									624ba73ef4
								
							
						
					
					
						commit
						1cb8ee9e78
					
				| @ -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  | ||||
|  | ||||
| @ -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] | ||||
|  | ||||
| @ -2,6 +2,7 @@ | ||||
| ;======================================================================= | ||||
| ; ‚室:  A - ®¬¥à ãáâனá⢠, C - DriveType | ||||
| ; ‚ë室: A - MediaParameters, C - DriveType | ||||
| ; <20> <20>噔ㄢ L | ||||
| SELECT_DRIVE: | ||||
| 	AND	#0F | ||||
| 	LD	IY,IDE.INIT_TBL_IDE0 | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| ;=======================[All shared EQUs]=======================; | ||||
| BETA_BUILD	EQU			10			; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD> <20> ᮮ<>饭<EFBFBD><E9A5AD> <20> <20><><EFBFBD>⮢<EFBFBD><E2AEA2> ᡮથ <20><> <20><><EFBFBD><EFBFBD>⮢<EFBFBD><E2AEA2> <20><>࠭<EFBFBD> | ||||
| BETA_RC		EQU			1			; | ||||
| BETA_BUILD	EQU			40			; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD> <20> ᮮ<>饭<EFBFBD><E9A5AD> <20> <20><><EFBFBD>⮢<EFBFBD><E2AEA2> ᡮથ <20><> <20><><EFBFBD><EFBFBD>⮢<EFBFBD><E2AEA2> <20><>࠭<EFBFBD> | ||||
| BETA_RC		EQU			0			; | ||||
| ;======================[All shared defines]=====================; | ||||
|  DEFINE		PACKED_MAIN		0			; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®? | ||||
|  DEFINE		SP2000_Loader_Flag	#0107			; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tolik
						Tolik