new ide detecting procedures
This commit is contained in:
		
							parent
							
								
									61457e702e
								
							
						
					
					
						commit
						de46473cc8
					
				
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -72,51 +72,6 @@ | ||||
| ;FDD	EQU	#03 | ||||
| 
 | ||||
| 
 | ||||
| ;!!!!!!!!!!!!!!!!!!!!!! | ||||
| ; !FIXIT ¯à®¢¥à¨âì â ª¨¥ ¦¥ «¨  ¤à¥á  CMOS ¢ Settings ¨á¯®«ì§ãîâáï  | ||||
| ; SM_CYLL	EQU	#2F | ||||
| ; SM_CYLH	EQU	#30 | ||||
| ; SM_HEAD	EQU	#31 | ||||
| ; SM_SECT	EQU	#32 | ||||
| 
 | ||||
| ; SS_CYLL	EQU	#33 | ||||
| ; SS_CYLH	EQU	#34 | ||||
| ; SS_HEAD	EQU	#35 | ||||
| ; SS_SECT	EQU	#36 | ||||
| 
 | ||||
| ; M_CYLL	EQU	#37 | ||||
| ; M_CYLH	EQU	#38 | ||||
| ; M_HEAD	EQU	#39 | ||||
| ; M_SECT	EQU	#3A | ||||
| 
 | ||||
| ; S_CYLL	EQU	#3B | ||||
| ; S_CYLH	EQU	#3C | ||||
| ; S_HEAD	EQU	#3D | ||||
| ; S_SECT	EQU	#3E | ||||
| 
 | ||||
| M_CYLL	EQU	#12 | ||||
| M_CYLH	EQU	#13 | ||||
| M_HEAD	EQU	#14 | ||||
| M_SECT	EQU	#15 | ||||
| 
 | ||||
| S_CYLL	EQU	#16 | ||||
| S_CYLH	EQU	#17 | ||||
| S_HEAD	EQU	#18 | ||||
| S_SECT	EQU	#19 | ||||
| 
 | ||||
| SM_CYLL	EQU	#37 | ||||
| SM_CYLH	EQU	#38 | ||||
| SM_HEAD	EQU	#39 | ||||
| SM_SECT	EQU	#3A | ||||
| 
 | ||||
| SS_CYLL	EQU	#3B | ||||
| SS_CYLH	EQU	#3C | ||||
| SS_HEAD	EQU	#3D | ||||
| SS_SECT	EQU	#3E | ||||
| 
 | ||||
| ;!!!!!!!!!!!!!!!!!!!!!! | ||||
| 
 | ||||
| 
 | ||||
| TEMP	EQU	#7E00                                                   ; !HARDCODE  | ||||
| MEMMAP2	EQU	TEMP                                                    ; ¤®«¦® ¡ëâì ¢ë஢¥® ¯® ALIGN 256 | ||||
| TPOINTD	EQU	TEMP-32 | ||||
| @ -681,13 +636,14 @@ INFO_MESSAGE:							;!FIXIT  | ||||
| 	;CALL	ScreenPOS.LOCAT | ||||
|         CALL    LP_SET_PLACE | ||||
| 
 | ||||
| 	CALL	TSETUP | ||||
| 	CALL	TSETUP		;!TODO ¬®¦¥â ¯¨åãâì ¥ñ   ¯à¥à뢠¨ï? | ||||
| 
 | ||||
| 	CALL	AUTODET | ||||
| 	CALL	CONFIGURE_IDE_DRIVES.START | ||||
| 	CALL	CTRLKEY | ||||
| 	LD	A,B | ||||
| 	AND	#10 | ||||
| 	JR	NZ,ABOOT | ||||
| 
 | ||||
| 	CALL	TSETUP | ||||
| 
 | ||||
| 
 | ||||
| @ -742,7 +698,7 @@ TSETUP: | ||||
| 	AND	A | ||||
| 	SBC	HL,DE | ||||
| 	JR	NZ,TSETUP | ||||
| 	POP	HL | ||||
| 	POP	HL		; 㡨ࠥ¬ «¨è¥¥ | ||||
| 	JP	EXIT_SETUP | ||||
| CSETUP:	XOR A | ||||
| 	LD	(ITEM_Restore),A | ||||
| @ -1115,226 +1071,6 @@ NOFDD1: | ||||
| 	RET  | ||||
| 
 | ||||
| 
 | ||||
| AUTODET: | ||||
| 	IN	A,(SLOT3) | ||||
| 	EX	AF,AF' | ||||
| 	LD	A,SYS_PAGE | ||||
| 	OUT	(SLOT3),A | ||||
| 	LD	HL,IDE.INIT_TBL_IDE0 | ||||
| 	LD	BC,256*(IDE.HDD_INIT_TABLE * 4) + #FF	;R02 | ||||
| ;CLEAR HDD VARIABLE | ||||
| .FILLIDE: | ||||
| 	LD	(HL),C		 | ||||
| 	INC	HL | ||||
| 	DJNZ	.FILLIDE | ||||
| 	EX	AF,AF' | ||||
| 	OUT	(SLOT3),A | ||||
| 
 | ||||
| 	;======== áâ à ï ã¬¥à æ¨ï ¤¨áª®¢! ======== | ||||
| 	; CALL	GET_AVAILABLE_STRUCT | ||||
| 	; LD	A,#00 | ||||
| 	; CALL	COMMONIDE | ||||
| 
 | ||||
| 	; CALL	GET_AVAILABLE_STRUCT | ||||
| 	; LD	A,#01 | ||||
| 	; CALL	COMMONIDE | ||||
| 
 | ||||
| 	; CALL	GET_AVAILABLE_STRUCT | ||||
| 	; LD	A,#02 | ||||
| 	; CALL	COMMONIDE | ||||
| 
 | ||||
| 	; CALL	GET_AVAILABLE_STRUCT | ||||
| 	; LD	A,#03 | ||||
| 	; CALL	COMMONIDE | ||||
| 	;========================================== | ||||
| 
 | ||||
| 	LD	IY,IDE.INIT_TBL_IDE0 | ||||
| 	XOR	A | ||||
| 	CALL	COMMONIDE | ||||
| 
 | ||||
| 	LD	IY,IDE.INIT_TBL_IDE1 | ||||
| 	LD	A,#01 | ||||
| 	CALL	COMMONIDE | ||||
| 
 | ||||
| 	LD	IY,IDE.INIT_TBL_IDE2 | ||||
| 	LD	A,#02 | ||||
| 	CALL	COMMONIDE | ||||
| 
 | ||||
| 	LD	IY,IDE.INIT_TBL_IDE3 | ||||
| 	LD	A,#03 | ||||
| 	CALL	COMMONIDE | ||||
| 
 | ||||
| 	;!TEST save hdd parameters to cmos for "setup" in settings | ||||
| 	 CALL	WRITING | ||||
| 	; | ||||
| 	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 | ||||
| ;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: | ||||
| 	AND	A | ||||
| 	LD	H,A		;SAVE DRIVE NUMBER | ||||
| 	LD	BC,#3011	;CMOS VALUE | ||||
| 	LD	L,msgStrings.detectIdePrMA | ||||
| 	JR	Z,COMMON2 | ||||
| 	DEC	A | ||||
| 	LD	BC,#C011	;CMOS VALUE | ||||
| 	LD	L,msgStrings.detectIdePrSL | ||||
| 	JR	Z,COMMON2 | ||||
| 	DEC	A | ||||
| 
 | ||||
| ; !HARDCODE § ¬¥¨âì ç¨á«    ¬¥âª¨ ¢ í⮩ ¯à®æ¥¤ãॠ| ||||
| 	LD	BC,#3020 | ||||
| 	LD	L,msgStrings.detectIdeSecMA | ||||
| 	JR	Z,COMMON2 | ||||
| 	DEC	A | ||||
| 	LD	BC,#C020 | ||||
| 	LD	L,msgStrings.detectIdeSecSL | ||||
| 	JR	Z,COMMON2 | ||||
| 	SCF | ||||
| 	RET | ||||
| 
 | ||||
| ;0 - AUTODETECT | ||||
| ;1 - GETTING FROM SETUP | ||||
| ;2 - CD-ROM (ATAPI device) | ||||
| ;3 - DISABLED | ||||
| COMMON2: | ||||
| 	CALL	G_VALUE | ||||
| 	OR	A | ||||
| 	JP	Z,AUTODETECT	;AUTODECECT | ||||
| 	DEC	A | ||||
| 	JP	Z,SETUPDETECT	;SETUP | ||||
| 	DEC	A | ||||
| 	JP	Z,IT_IS_CDROM	;CDROM | ||||
| 	RET			;DON'T CHECK THIS DEVICE | ||||
| 
 | ||||
| AUTODETECT: | ||||
| 	PUSH	HL | ||||
| 	LD	A,L		;DETECT	MESSAGE | ||||
| 	CALL	POSTMSG | ||||
| 	CALL	ScreenPOS.SUBNAME | ||||
| ; | ||||
| 	EI  | ||||
| ; | ||||
| 	POP	HL | ||||
| 	LD	A,H		;RESTORE DRIVE NUMBER | ||||
| 	CALL	IDEAUTO | ||||
| IDEJUMPBACK: | ||||
| 	CALL	NC,MODEL | ||||
| 	LD	A,(SKIP) | ||||
| 	INC	A | ||||
| 	LD	A,msgStrings.ideNone | ||||
| 	JR	Z,NOSKIPKEY | ||||
| 	LD	A,msgStrings.ideSkiped | ||||
| NOSKIPKEY: | ||||
| 	CALL	C,POSTMSG | ||||
| 	CALL	ScreenPOS.CRLF | ||||
| 	RET | ||||
| 
 | ||||
| IT_IS_CDROM: | ||||
| 	PUSH	HL | ||||
| 	LD	A,L		;DETECT	MESSAGE | ||||
| 	CALL	POSTMSG | ||||
| 	CALL	ScreenPOS.SUBNAME | ||||
| ; | ||||
| 	EI  | ||||
| ; | ||||
| 	POP	HL | ||||
| 	LD	A,H		;RESTORE DRIVE NUMBER | ||||
| 	CALL	IDE__CD | ||||
| 	JP	IDEJUMPBACK | ||||
| ;			????? ¯®á¬®âà¥âì | ||||
| PRIM_MASTER_CMOS_T: | ||||
| 	DB	M_CYLL,M_CYLH,M_HEAD,M_SECT | ||||
| PRIM_SLAVE_CMOS_T: | ||||
| 	DB	S_CYLL,S_CYLH,S_HEAD,S_SECT | ||||
| SEC_MASTER_CMOS_T: | ||||
| 	DB	SM_CYLL,SM_CYLH,SM_HEAD,SM_SECT	 | ||||
| SEC_SLAVE_CMOS_T: | ||||
| 	DB	SS_CYLL,SS_CYLH,SS_HEAD,SS_SECT | ||||
| 
 | ||||
| SETUPDETECT: | ||||
| 	LD	A,H | ||||
| 	LD	IX,PRIM_MASTER_CMOS_T | ||||
| 	OR	A | ||||
| 	JR	Z,SETUPD2 | ||||
| 	; | ||||
| 	LD	IX,PRIM_SLAVE_CMOS_T | ||||
| 	CP	1 | ||||
| 	JR	Z,SETUPD2 | ||||
| 	; | ||||
| 	LD	IX,SEC_MASTER_CMOS_T | ||||
| 	CP	2 | ||||
| 	JR	Z,SETUPD2 | ||||
| 	; | ||||
| 	LD	IX,SEC_SLAVE_CMOS_T | ||||
| SETUPD2: | ||||
| 	CALL	SELECT_IDE | ||||
| 	LD	HL,TEMP | ||||
| 	LD	DE,TEMP+1 | ||||
| 	LD	BC,511 | ||||
| 	LD	(HL),0 | ||||
| 	LDIR  | ||||
| 	CALL	WAITHDD | ||||
| 	RET	C | ||||
| 	;; | ||||
| 	LD	A,(IX+2)	;M_HEAD | ||||
| 	CALL	READCMS | ||||
| 	LD	(TEMP+3*2),A                            ; !TODO ᤥ« âì ç¥à¥§ áâàãªâãàã. HEADS PER TRACK | ||||
| 	; | ||||
| 	LD	A,(IX+1)	;M_CYLH | ||||
| 	CALL	READCMS | ||||
| 	PUSH	AF | ||||
| 	; | ||||
| 	LD	A,(IX+0)	;M_CYLL | ||||
| 	CALL	READCMS | ||||
| 	POP	HL | ||||
| 	LD	L,A | ||||
| 	LD	(TEMP+1*2),HL                           ; !TODO ᤥ« âì ç¥à¥§ áâàãªâãàã. CYLINDERS | ||||
| 	; | ||||
| 	LD	A,(IX+3)	;M_SECT | ||||
| 	CALL	READCMS | ||||
| 	LD	(TEMP+6*2),A                            ; !TODO ᤥ« âì ç¥à¥§ áâàãªâãàã. SECTOR PER TRACK | ||||
| 	; | ||||
| 	;LD	A,IDE.Drive.Master | ||||
| 	;LD	BC,IDE.Write.DeviceHead | ||||
| 	;OUT	(C),A | ||||
| 	LD	A,IDE.Device.HDD | ||||
| 	LD	(IDEDEV),A | ||||
| 	CALL	IDESPEC | ||||
| 	RET | ||||
| 
 | ||||
| ;ID_BUFFER: BLOCK   #100,0                                  ;!HARDCODE      ; !FIXIT 㬥ìè¨âì ¡ãä¥à ¨«¨ ¯¥à¥¥áâ¨? | ||||
| 
 | ||||
| PIDNUM:	LD	HL,memBUFFER.ID | ||||
| 	LD	BC,#00FF | ||||
| 	XOR	A | ||||
| @ -1454,20 +1190,6 @@ PRNTIME: | ||||
| 	OUT	(SLOT3),A | ||||
| 	RET  | ||||
| 
 | ||||
| MODEL:	LD	HL,TEMP+27*2                                            ; !TODO ᤥ« âì ç¥à¥§ áâàãªâãàã.  | ||||
| 	LD	A,(HL) | ||||
| 	OR	A | ||||
| 	JR	Z,.unknown | ||||
| 	LD	B,20 | ||||
| 	CALL	DWPRINT | ||||
| 	AND	A | ||||
| 	RET  | ||||
| .unknown: | ||||
| 	LD	A,msgStrings.ideUnknown | ||||
| 	CALL	POSTMSG | ||||
| 	AND	A | ||||
| 	RET | ||||
| 
 | ||||
| PMEMORY: | ||||
| 	ADD	HL,HL | ||||
| 	ADD	HL,HL | ||||
|  | ||||
| @ -603,16 +603,16 @@ PITEM:	LD	E,(HL)                                                  ; x-coordinate | ||||
|  ENDIF | ||||
| ;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[^] | ||||
| 
 | ||||
| ; <20>¥ ¯®àâ¨â HL | ||||
| G_VALUE: | ||||
| 	PUSH	BC | ||||
| 	LD	A,C | ||||
| 	CALL	READCMS | ||||
| 	POP	BC | ||||
| 	AND	B | ||||
| RRLPX: | ||||
| 	RRCA  | ||||
| .loop:	RRCA  | ||||
| 	RRC	B | ||||
| 	JR	NC,RRLPX | ||||
| 	JR	NC,.loop | ||||
| 	RLCA  | ||||
| 	RET  | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Anatoliy Belyanskiy
						Anatoliy Belyanskiy