...
This commit is contained in:
		
							parent
							
								
									7fc7fe3490
								
							
						
					
					
						commit
						1f3a3f2192
					
				| @ -1 +1 @@ | ||||
| Subproject commit dd98f391c99f3ff16920ca176349cff874ad9b23 | ||||
| Subproject commit 2facbb273ecfd873a5bb622c8c405cc9880a39e5 | ||||
| @ -292,7 +292,7 @@ RDS000:	CALL	SELECTH | ||||
| 	LD	XL,0 | ||||
| 	LD	XH,A | ||||
| 	LD	BC,IDE.Write.Command | ||||
| 	LD	A,ATA_READ_SECTORS	; WITH RETRY | ||||
| 	LD	A,IDE.ATA.ReadSectorsWithRetry | ||||
| 	OUT	(C),A | ||||
| ;????? | ||||
| ;SAVE HL! | ||||
| @ -473,7 +473,7 @@ NO_WriteProtect: | ||||
| 	LD	XL,0 | ||||
| 	LD	XH,A | ||||
| 	LD	BC,IDE.Write.Command | ||||
| 	LD	A,ATA_WRITE_SECTORS		; WITH RETRY | ||||
| 	LD	A,IDE.ATA.WriteSectorsWithRetry | ||||
| 	OUT	(C),A | ||||
| ;SAVE HL! | ||||
| WRS002:	EXX  | ||||
| @ -570,7 +570,7 @@ VRS000:	CALL	SELECTH | ||||
| 	CALL	PRESET | ||||
| 	POP	HL | ||||
| 	LD	BC,IDE.Write.Command | ||||
| 	LD	A,ATA_READ_VERIFY_SECTORS				; WITH RETRY | ||||
| 	LD	A,IDE.ATA.ReadVerifySectorsWithRetry | ||||
| 	OUT	(C),A | ||||
| VRS002:	LD	BC,IDE.Read.Status | ||||
| 	IN	A,(C) | ||||
|  | ||||
| @ -169,7 +169,7 @@ FN_HDD_PREPARE:								;  | ||||
| 
 | ||||
| .SetCommand: | ||||
| 	LD BC,IDE.Write.Command | ||||
| 	LD A,ATA_READ_SECTORS | ||||
| 	LD A,IDE.ATA.ReadSectorsWithRetry | ||||
| 	; OUT (C),A                | ||||
| 	AND A | ||||
| 	RET | ||||
| @ -220,7 +220,7 @@ HD_RD_L1: | ||||
| 	SAFE_PORTY | ||||
| 
 | ||||
| 	LD BC,IDE.Write.Command | ||||
| 	LD A,ATA_READ_SECTORS | ||||
| 	LD A,IDE.ATA.ReadSectorsWithRetry | ||||
| 	OUT (C),A | ||||
| HD_RD_L2: | ||||
| 
 | ||||
| @ -293,7 +293,7 @@ FN_HDD_WRITE: | ||||
| 	EX	AF,AF' | ||||
| 
 | ||||
| 	LD	BC,IDE.Write.Command | ||||
| 	LD	A,ATA_WRITE_SECTORS | ||||
| 	LD	A,IDE.ATA.WriteSectorsWithRetry | ||||
| 	OUT	(C),A | ||||
| 
 | ||||
| HD_WR_L2: | ||||
| @ -331,7 +331,7 @@ FN_HDD_RECAL: | ||||
| 	LD	A,#A0 | ||||
| 	LD	BC,IDE.Write.DriveCtrl | ||||
| 	OUT	(C),A | ||||
| 	LD	A,ATA_EXECUTE_DEVICE_DIAGNOSTIC | ||||
| 	LD	A,IDE.ATA.ExecuteDeviceDiagnostic | ||||
| 	CALL    HD_CMD_EXE | ||||
| 	AND	A | ||||
| 	BIT	IDE.ControlBit.Error,A | ||||
| @ -451,7 +451,7 @@ HD_C0_L3: | ||||
| 	WAIT_HDD | ||||
| 
 | ||||
| 	LD	BC,IDE.Write.Command | ||||
| 	LD	A,ATA_IDENTIFY_DEVICE | ||||
| 	LD	A,IDE.ATA.IdentifyDevice | ||||
| 	OUT	(C),A | ||||
| 
 | ||||
| 	WAIT_HDD | ||||
| @ -519,7 +519,7 @@ HD_C0_NO_LBA: | ||||
| 	LD	A,D | ||||
| 	OUT	(SLOT3),A | ||||
| 	 | ||||
| 	LD	A,ATA_INITIALIZE_DEVICE_PARAMETERS			; SET HDD PARAMETERS | ||||
| 	LD	A,IDE.ATA.InitializeDeviceParameters			; SET HDD PARAMETERS | ||||
| 	CALL	HD_CMD_EXE | ||||
| 	RET | ||||
| 
 | ||||
|  | ||||
| @ -105,17 +105,17 @@ CDAUTO: | ||||
| 
 | ||||
| SELECT_IDE: | ||||
| 	AND	A	;%0000'0011 | ||||
| 	LD	D,IDE.ATA.Master | ||||
| 	LD	D,IDE.Drive.Master | ||||
| 	JR	Z,.AUTO_0 | ||||
| 	DEC	A | ||||
| 	LD	D,#B0 | ||||
| 	JR	Z,.AUTO_0 | ||||
| 	DEC	A | ||||
| 	;R00 | ||||
| 	 LD	D,IDE.ATA.Master | ||||
| 	 LD	D,IDE.Drive.Master | ||||
| 	 JR	Z,.AUTO_1		 | ||||
| 	 DEC	A			 | ||||
| 	 LD	D,IDE.ATA.Slave		 | ||||
| 	 LD	D,IDE.Drive.Slave		 | ||||
| .AUTO_1: LD	A,IDE.Chanel.Secondary	 ;SELECT SECONDARY | ||||
| 	 OUT	(IDE.Chanel.Set),A	 | ||||
| 	 ;LD	A,1 | ||||
| @ -134,7 +134,6 @@ SELECT_IDE: | ||||
| 
 | ||||
| IDEAUTO: | ||||
| 	CALL	SELECT_IDE | ||||
| ;MASTER | ||||
| 	LD	A,IDE.Device.NONE | ||||
| 	LD	(IDEDEV),A | ||||
| CDMASTR: | ||||
| @ -192,7 +191,7 @@ NO_BUSY: | ||||
| 	 JR	NZ,.check_next | ||||
| 	 ;JP	NZ,DETECT_ATA_ATAPI | ||||
| 	; | ||||
| 
 | ||||
| /* | ||||
| DETECT_ATA_ATAPI:	;R02 | ||||
| ; 1. Set the Sectorcount, LBAlo, LBAmid, and LBAhi IO ports to 0 (port 0x1F2 to 0x1F5). | ||||
| 	LD	BC,IDE.Write.Counter | ||||
| @ -206,13 +205,13 @@ DETECT_ATA_ATAPI:	;R02 | ||||
| 	; | ||||
| ; 2. Send the IDENTIFY command (0xEC) to the Command IO port (0x1F7). | ||||
| 	LD	BC,IDE.Write.Command | ||||
| 	LD	E,ATA_IDENTIFY_DEVICE  | ||||
| 	LD	E,IDE.ATA.IdentifyDevice  | ||||
| 	OUT	(C),E	 | ||||
| 	; | ||||
| ; 3. Read the Status port (0x1F7) again. | ||||
| ;   3.1 If the value read is 0, the drive does not exist. | ||||
| 	LD	B,0 | ||||
| .pause:	DJNZ	.pause | ||||
| ;   3.1 If the value read is 0, the drive does not exist. | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	IN	A,(C) | ||||
| 	JP	Z,ABSENT | ||||
| @ -228,13 +227,12 @@ DETECT_ATA_ATAPI:	;R02 | ||||
| 	INC	C	;IDE.Read.CylinderHigh | ||||
| 	IN	B,(C) | ||||
| 	OR	B | ||||
| 
 | ||||
| 	JP	NZ,NOHDD	; IT IS ATAPI | ||||
| 	JP	NZ,Non_ATA	; IT IS ATAPI | ||||
| ;   3.5 Otherwise, continue polling one of the Status ports until bit 3 (DRQ, value = 8) sets, or until bit 0 (ERR, value = 1) sets. | ||||
| 	LD	HL,WAIT_SML | ||||
| 	LD	DE,#0101	;!FIXIT | ||||
| 	LD	DE,#0908 | ||||
| 	CALL	WAIT_PRT | ||||
| 	JP	NC,ABSENT | ||||
| 	JP	C,ABSENT | ||||
| 	; | ||||
| ; 4. At that point, if ERR is clear, the data is ready to read from the Data port (0x1F0). Read 256 16-bit values, and store them.	 | ||||
| 	LD	A,IDE.Device.HDD | ||||
| @ -242,15 +240,16 @@ DETECT_ATA_ATAPI:	;R02 | ||||
| 	JP	GETPARM | ||||
| 	; | ||||
| ;;;;;;;;;;;;;;;;;;;;;;; R02 | ||||
| */ | ||||
| 
 | ||||
| 
 | ||||
| NO_BUSY.check_next: | ||||
| 	CP	IDE.Device.CDROM | ||||
| 	JP	Z,NOHDD | ||||
| 	JP	Z,Non_ATA | ||||
| 
 | ||||
| ;!TODO ¯à¨¡à âìáï âãâ. <20>®á«¥ R02 âãâ ¬®¦® ã¡à âì ¬®£® «¨è¥£® | ||||
| ;-=-=-==-=-=-=-=-=-=-==-=-=-=-=-=-=-==-=-=-=-=-=-=-==-=-=-=-=-=-=-==-=-=; | ||||
| 	LD	E,ATA_NOP | ||||
| 	LD	E,IDE.ATA.Nop | ||||
| 	LD	BC,IDE.Write.Command | ||||
| 	OUT	(C),E | ||||
| 	DEC	B			; LD BC, IDE.Read.Status | ||||
| @ -273,7 +272,7 @@ WXREADY: | ||||
| 
 | ||||
| 	LD	A,IDE.Device.HDD | ||||
| 	LD	(IDEDEV),A | ||||
| 	LD	E,ATA_IDENTIFY_DEVICE  | ||||
| 	LD	E,IDE.ATA.IdentifyDevice  | ||||
| 	LD	BC,IDE.Write.Command | ||||
| 	OUT	(C),E | ||||
| 
 | ||||
| @ -283,7 +282,7 @@ WXREADY: | ||||
| 	LD	HL,WAIT_SML | ||||
| 	LD	DE,#0101 | ||||
| 	CALL	WAIT_PRT | ||||
| 	JP	NC,NOHDD | ||||
| 	JP	NC,Non_ATA | ||||
| ;-=-=-==-=-=-=-=-=-=-==-=-=-=-=-=-=-==-=-=-=-=-=-=-==-=-=-=-=-=-=-==-=-=; | ||||
| GETPARM: | ||||
| 	LD	HL,WAIT_IDE | ||||
| @ -299,7 +298,7 @@ GETPARM: | ||||
| 	AND	A | ||||
| 	RET  | ||||
| 
 | ||||
| NOHDD:  LD	A,IDE.Device.CDROM | ||||
| Non_ATA: LD	A,IDE.Device.CDROM | ||||
| 	LD	(IDEDEV),A | ||||
| 	LD	E,#A1		;!HARDCODE IDENTIFY ATAPI | ||||
| 	LD	BC,IDE.Write.Command | ||||
| @ -313,8 +312,7 @@ NOHDD:  LD	A,IDE.Device.CDROM | ||||
| 	LD	DE,#0101 | ||||
| 	CALL	WAIT_PRT | ||||
| 	JP	C,GETPARM | ||||
| ABSENT: | ||||
| 	SCF  | ||||
| ABSENT:	SCF  | ||||
| 	RET  | ||||
| 
 | ||||
| IDESPEC: | ||||
| @ -358,7 +356,7 @@ NONLBA:	LD	A,B | ||||
|  	LD	BC,IDE.Write.Counter | ||||
|  ENDIF | ||||
| 	OUT	(C),A | ||||
| 	LD	A,ATA_INITIALIZE_DEVICE_PARAMETERS | ||||
| 	LD	A,IDE.ATA.InitializeDeviceParameters | ||||
| 	CALL	IDE_CMD | ||||
| ;	RET	C | ||||
| 	LD	C,(IY+IDE.HDD_INIT_TABLE.SectorsPerTrack)               ; Sector per track | ||||
| @ -417,26 +415,27 @@ WTREADY: | ||||
| 	JR	NZ,WTREADY | ||||
| 	SCF  | ||||
| 	RET  | ||||
| 
 | ||||
| ; D - MASK | ||||
| ; E - PATTERN | ||||
| ; BC - PORT | ||||
| ; IN: | ||||
| ;  HL - Waiting delay | ||||
| ;  DE - MASK : PATTERN | ||||
| ; OUT: | ||||
| ;  NC: (PORT & D)-E = 0 | ||||
| ;  CF: waiting delay exceeded  | ||||
| WAIT_PRT: | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	; | ||||
| .loop:	IN	A,(C) | ||||
| 	AND	D | ||||
| 	CP	E | ||||
| 	;JR	NZ,.P2 | ||||
| 	;AND	A | ||||
| 	;RET	 | ||||
| 	RET	Z | ||||
| .P2:	DEC	HL | ||||
| 	 RET	Z | ||||
| 	DEC	HL | ||||
| 	CALL	SKIPKEY | ||||
| 	RET	C | ||||
| 	LD	A,L | ||||
| 	OR	H | ||||
| 	JP	NZ,.loop | ||||
| .error:	SCF  | ||||
| 	; | ||||
| 	SCF  | ||||
| 	RET  | ||||
| 
 | ||||
| SKIPKEY: | ||||
|  | ||||
| @ -633,7 +633,8 @@ CHEKOK:	;CALL	ScreenPOS.GET_CUR | ||||
|         CALL    CMOS_TEST | ||||
| 
 | ||||
| 	LD	A,msgStrings.cmosNone | ||||
| 	JR	C,NOCMOS | ||||
| 	JR	C,CMOS_ABSENT | ||||
| 	; CMOS OK | ||||
| 	CALL	CMOSINIT | ||||
| 	LD	A,msgStrings.cmosFound | ||||
| 	CALL	POSTMSG | ||||
| @ -644,11 +645,10 @@ CHEKOK:	;CALL	ScreenPOS.GET_CUR | ||||
| 	LD	HL,RebootDate | ||||
| 	CALL	PRNTIME | ||||
| 	CALL	ScreenPOS.CRLF | ||||
| 	JR	NOCMOS2 | ||||
| 
 | ||||
| NOCMOS: | ||||
| 	JR	INFO_MESSAGE | ||||
| CMOS_ABSENT: | ||||
| 	CALL	POSTMSG | ||||
| NOCMOS2:							;!FIXIT  §¢ ¨¥ ¥¯à ¢¨«ì®¥  | ||||
| INFO_MESSAGE:							;!FIXIT  §¢ ¨¥ ¥¯à ¢¨«ì®¥  | ||||
| 	LD	DE,#0528 | ||||
| 	;CALL	ScreenPOS.LOCAT | ||||
|         CALL    LP_SET_PLACE | ||||
| @ -723,10 +723,7 @@ TSETUP: | ||||
| 	JR	NZ,TSETUP | ||||
| 	POP	HL | ||||
| 	JP	EXIT_SETUP | ||||
| CSETUP: | ||||
| ;	POP	HL | ||||
| ;------------test	; !!!!!  ¯®á¬®âà¥âì | ||||
| 	XOR A | ||||
| CSETUP:	XOR A | ||||
| 	LD	(ITEM_Restore),A | ||||
| 	CALL	SETTINGS | ||||
| 	XOR	A | ||||
| @ -1103,7 +1100,7 @@ AUTODET: | ||||
| 	LD	A,SYS_PAGE | ||||
| 	OUT	(SLOT3),A | ||||
| 	LD	HL,IDE.INIT_TBL_IDE0 | ||||
| 	LD	BC,#20FF	;R02				        ;!HARDCODE table | ||||
| 	LD	BC,256*(IDE.HDD_INIT_TABLE * 4) + #FF	;R02 | ||||
| FILLIDE: | ||||
| 	LD	(HL),C		;CLEAR HDD VARIABLE | ||||
| 	INC	HL | ||||
| @ -1111,7 +1108,7 @@ FILLIDE: | ||||
| 	EX	AF,AF' | ||||
| 	OUT	(SLOT3),A | ||||
| 
 | ||||
| ;==== ;!!!!!	áâ à ï ã¬¥à æ¨ï ¤¨áª®¢	!!!!!==== | ||||
| 	;======== áâ à ï ã¬¥à æ¨ï ¤¨áª®¢! ======== | ||||
| 	; CALL	GET_AVAILABLE_STRUCT | ||||
| 	; LD	A,#00 | ||||
| 	; CALL	COMMONIDE | ||||
| @ -1127,7 +1124,7 @@ FILLIDE: | ||||
| 	; CALL	GET_AVAILABLE_STRUCT | ||||
| 	; LD	A,#03 | ||||
| 	; CALL	COMMONIDE | ||||
| ;========================================== | ||||
| 	;========================================== | ||||
| 
 | ||||
| 	LD	IY,IDE.INIT_TBL_IDE0 | ||||
| 	LD	A,#00 | ||||
| @ -1148,35 +1145,34 @@ FILLIDE: | ||||
| 	CALL	ScreenPOS.CRLF | ||||
| 	RET | ||||
| ; | ||||
| ;==== ;!!!!!	áâ à ï ã¬¥à æ¨ï ¤¨áª®¢	!!!!!==== | ||||
| ; GET_AVAILABLE_STRUCT | ||||
| ; 	LD	C,SLOT3 | ||||
| ; 	IN	B,(C) | ||||
| ; 	LD	A,SYS_PAGE | ||||
| ; 	OUT	(C),A | ||||
| ; 	CALL	FIND_AVAILABLE_STRUCT | ||||
| ; 	OUT	(C),B | ||||
| ; 	RET | ||||
| 	;======== áâ à ï ã¬¥à æ¨ï ¤¨áª®¢! ======== | ||||
| ;GET_AVAILABLE_STRUCT | ||||
| 	;LD	C,SLOT3 | ||||
| 	;IN	B,(C) | ||||
| 	;LD	A,SYS_PAGE | ||||
| 	;OUT	(C),A | ||||
| 	;CALL	FIND_AVAILABLE_STRUCT | ||||
| 	;OUT	(C),B | ||||
| 	;RET | ||||
| ;FIND_AVAILABLE_STRUCT | ||||
| 	;LD	IY,IDE0 | ||||
| 	;LD	A,(IY+DTYPE_H) | ||||
| 	;INC	A | ||||
| 	;RET	Z | ||||
| 	;LD	IY,IDE1 | ||||
| 	;LD	A,(IY+DTYPE_H) | ||||
| 	;INC	A | ||||
| 	;RET	Z | ||||
| 	;LD	IY,IDE2 | ||||
| 	;LD	A,(IY+DTYPE_H) | ||||
| 	;INC	A | ||||
| 	;RET	Z | ||||
| 	;LD	IY,IDE3 | ||||
| 	;LD	A,(IY+DTYPE_H) | ||||
| 	;INC	A | ||||
| 	;RET | ||||
| 	;========================================== | ||||
| 
 | ||||
| ; FIND_AVAILABLE_STRUCT | ||||
| ; 	LD	IY,IDE0 | ||||
| ; 	LD	A,(IY+DTYPE_H) | ||||
| ; 	INC	A | ||||
| ; 	RET	Z | ||||
| ; 	LD	IY,IDE1 | ||||
| ; 	LD	A,(IY+DTYPE_H) | ||||
| ; 	INC	A | ||||
| ; 	RET	Z | ||||
| ; 	LD	IY,IDE2 | ||||
| ; 	LD	A,(IY+DTYPE_H) | ||||
| ; 	INC	A | ||||
| ; 	RET	Z | ||||
| ; 	LD	IY,IDE3 | ||||
| ; 	LD	A,(IY+DTYPE_H) | ||||
| ; 	INC	A | ||||
| ; 	RET | ||||
| ;========================================== | ||||
| ; | ||||
| 
 | ||||
| ; !HARDCODE § ¬¥¨âì ç¨á«    ¬¥âª¨ ¢ í⮩ ¯à®æ¥¤ãॠ| ||||
| COMMONIDE: | ||||
| @ -1204,9 +1200,8 @@ COMMONIDE: | ||||
| 
 | ||||
| ;0 - AUTODETECT | ||||
| ;1 - GETTING FROM SETUP | ||||
| ;2 - CD-ROM | ||||
| ;2 - CD-ROM (ATAPI device) | ||||
| ;3 - DISABLED | ||||
| 
 | ||||
| COMMON2: | ||||
| 	CALL	G_VALUE | ||||
| 	OR	A | ||||
| @ -1219,7 +1214,7 @@ COMMON2: | ||||
| 
 | ||||
| AUTODETECT: | ||||
| 	PUSH	HL | ||||
| 	LD	A,L                                                     	;DETECT	MESSAGE | ||||
| 	LD	A,L		;DETECT	MESSAGE | ||||
| 	CALL	POSTMSG | ||||
| 	CALL	ScreenPOS.SUBNAME | ||||
| ; | ||||
| @ -1719,11 +1714,11 @@ FindStringAddr: | ||||
| 	LD	H,0 | ||||
| 	LD	BC,memBUFFER.Messages | ||||
| 	ADD	HL,HL | ||||
| 	ADD     HL,BC | ||||
| 	LD      A,(HL) | ||||
| 	INC     HL | ||||
| 	LD      H,(HL) | ||||
| 	LD      L,A	 | ||||
| 	ADD	HL,BC | ||||
| 	LD	A,(HL) | ||||
| 	INC	HL | ||||
| 	LD	H,(HL) | ||||
| 	LD	L,A	 | ||||
| 	RET | ||||
| /* | ||||
| Get_Item_Address: | ||||
| @ -1764,20 +1759,19 @@ POSTMSC: | ||||
| 	LD	A,E | ||||
| 	JP	CPRINTZ | ||||
| 
 | ||||
| ; | ||||
| SETLAND: | ||||
| 	LD	A,#0E                                                   ; !HARDCODE CMOS ï祩ª  options | ||||
| 	CALL	READCMS | ||||
| 	AND	#04                                                     ; !HARDCODE CMOS § ç¥¨¥ ï§ëª  | ||||
| 	JR	NZ,.RUS | ||||
| 
 | ||||
| 	; | ||||
| 	LD	HL,MSG_ENG | ||||
| 	LD	DE,memBUFFER.Messages | ||||
| 	LD	BC,MSG_ENG.size | ||||
| 	LDIR | ||||
| 	RET | ||||
| .RUS: | ||||
| 	LD	HL,MSG_RUS | ||||
| 	; | ||||
| .RUS:	LD	HL,MSG_RUS | ||||
| 	LD	DE,memBUFFER.Messages | ||||
| 	LD	BC,MSG_RUS.size | ||||
| 	LDIR | ||||
|  | ||||
| @ -13,6 +13,5 @@ | ||||
| 	INCLUDE 'src/bios/shared/VERSION.inc'                           ; ‚¥àá¨ï EXP ¨ ROM | ||||
| 	INCLUDE 'Shared_Includes/constants/BIOS_EQU.inc' | ||||
| 	INCLUDE 'src/bios/ROM/BIOS.inc'	 | ||||
| 	INCLUDE	'Shared_Includes/constants/ata.inc' | ||||
| ;--------------------------------------- | ||||
| ; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Anatoliy Belyanskiy
						Anatoliy Belyanskiy