тестирование задержек для IDE
This commit is contained in:
		
							parent
							
								
									4880d5dfbd
								
							
						
					
					
						commit
						13e72e8300
					
				| @ -1 +1 @@ | ||||
| Subproject commit 785b2adeb82bc426c6a7cc5da0d2c041d414ebc3 | ||||
| Subproject commit 53e49fa3cc457e2d7a8977d6166246b8457cb5ce | ||||
| @ -5,33 +5,11 @@ | ||||
| ;	02-08-2001 DNS	Initial this module | ||||
| ;--------------------------------------------------------------- | ||||
| ;======================================================== | ||||
| ;!FIXIT  | ||||
| R170	EQU	#0050	;Data | ||||
| R171	EQU	#0051	;Error | ||||
| R172	EQU	#0052	;Direct | ||||
| R173	EQU	#0053	;Reserve | ||||
| R174	EQU	#0054	;Lenght	block low | ||||
| R175	EQU	#0055	;Lenght	block high | ||||
| R176	EQU	#4052	;Drive device | ||||
| R177	EQU	#4053	;Status | ||||
| 
 | ||||
| W170	EQU	#0150	;Data | ||||
| W171	EQU	#0151	;???? | ||||
| W172	EQU	#0152	;???? | ||||
| W173	EQU	#0153	;Reserve | ||||
| W174	EQU	#0154	;Lenght	block low | ||||
| W175	EQU	#0155	;Lenght	block high | ||||
| W176	EQU	#4152	;Drive device | ||||
| W177	EQU	#4153	;Command | ||||
| 
 | ||||
| SIZESEC		EQU	#0800 | ||||
| PKTSIZE		EQU	12 | ||||
| RAM_ATAPI_PK 	EQU	#FEE0 | ||||
| RAM_ATAPI_READ	EQU	#FEF0 | ||||
| 
 | ||||
| ;BSY	EQU	7 | ||||
| ;DRQ	EQU	3 | ||||
| ;ERR	EQU	0 | ||||
| 
 | ||||
| 
 | ||||
| ;[]===========================================================[] | ||||
| CD_5x.RESET: | ||||
| 	LD	B,50 | ||||
| @ -71,11 +49,6 @@ CD.CLOSE: | ||||
| 	JP	CD_CLOSE | ||||
| ;[]===========================================================[] | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| SIZESEC	EQU	#0800 | ||||
| PKTSIZE	EQU	12 | ||||
| 
 | ||||
| CD_TEST	LD	HL,CMDNOPP | ||||
| 	LD	DE,0 | ||||
| 	CALL	AP_COM | ||||
| @ -147,27 +120,28 @@ CD_READ: | ||||
| ;	 07h - DATA PROTECT | ||||
| ;	 0Bh - ABORTED COMMAND | ||||
| ;	 80h - TIME OUT | ||||
| 
 | ||||
| AP_COM	AND	#01 | ||||
| AP_COM:	AND	#01 | ||||
| 	LD	A,#A0 | ||||
| 	JR	Z,.APCOM1 | ||||
| 	LD	A,#B0 | ||||
| .APCOM1	LD	BC,W176 | ||||
| .APCOM1	LD	BC,IDE.Write.DriveCtrl | ||||
| 	OUT	(C),A		;SELECT	DRIVE | ||||
| 	EXX  | ||||
| 	LD	DE,#8000 | ||||
| 	LD	BC,R177 | ||||
| 	;LD	BC,IDE.Read.Status | ||||
| 	CALL	CWAITPRT | ||||
| 	EXX  | ||||
| 	JR	NC,.CDREADY | ||||
| 	LD	BC,W177 | ||||
| 	LD	BC,IDE.Write.Command | ||||
| 	LD	A,#08 | ||||
| 	OUT	(C),A | ||||
| 
 | ||||
| 	LD	B,#00 | ||||
| 	DJNZ	$ | ||||
| .pause:	DJNZ	.pause | ||||
| 
 | ||||
| 	EXX  | ||||
| 	LD	DE,#8000 | ||||
| 	LD	BC,R177 | ||||
| 	;LD	BC,IDE.Read.Status | ||||
| 	CALL	CWAITPRT | ||||
| 	EXX  | ||||
| 	RET	C | ||||
| @ -193,24 +167,24 @@ AP_COM	AND	#01 | ||||
| 	EXX | ||||
| 	OUT	(C),A | ||||
| 	XOR	A | ||||
| 	LD	BC,W171 | ||||
| 	LD	BC,IDE.Write.Error | ||||
| 	OUT	(C),A | ||||
| 	LD	DE,SIZESEC	;SIZE BLOCK | ||||
| 	LD	BC,W174 | ||||
| 	LD	BC,IDE.Write.CylinderLow | ||||
| 	OUT	(C),E | ||||
| 	LD	BC,W175 | ||||
| 	LD	BC,IDE.Write.CylinderHigh | ||||
| 	OUT	(C),D | ||||
| 	LD	BC,W177 | ||||
| 	LD	BC,IDE.Write.Command | ||||
| 	LD	A,#A0 | ||||
| 	OUT	(C),A | ||||
| 	LD	DE,#8000 | ||||
| 	LD	BC,R177 | ||||
| 	;LD	BC,IDE.Read.Status | ||||
| 	CALL	CWAITPRT | ||||
| 	EXX  | ||||
| 	RET	C | ||||
| 	EXX  | ||||
| 	LD	DE,#0908 | ||||
| 	LD	BC,R177 | ||||
| 	;LD	BC,IDE.Read.Status | ||||
| 	CALL	CWAITPRT | ||||
| 	EXX  | ||||
| 	BIT	IDE.ControlBit.Error,A | ||||
| @ -225,7 +199,7 @@ AP_COM	AND	#01 | ||||
| 	LD	A,SYS_PAGE | ||||
| 	OUT	(SLOT3),A | ||||
| 	LD	HL,RAM_ATAPI_PK | ||||
| 	LD	BC,W170 | ||||
| 	LD	BC,IDE.Write.Data | ||||
| 	LD	A,PKTSIZE | ||||
| 	SRL	A | ||||
| .OUTPKT: | ||||
| @ -240,16 +214,16 @@ AP_COM	AND	#01 | ||||
| .AP_LOOP: | ||||
| 	EXX  | ||||
| 	LD	DE,#8000 | ||||
| 	LD	BC,R177 | ||||
| 	;LD	BC,IDE.Read.Status | ||||
| 	CALL	CWAITPRT | ||||
| 	EXX  | ||||
| 	RET	C | ||||
| 	LD	BC,R177 | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	IN	A,(C) | ||||
| 	BIT	IDE.ControlBit.Error,A | ||||
| 	JR	Z,.NO_ERR | ||||
| .CDERROR: | ||||
| 	LD	BC,R171	;ERROR | ||||
| 	LD	BC,IDE.Read.Error	;ERROR | ||||
| 	IN	A,(C) | ||||
| 	RRCA  | ||||
| 	RRCA  | ||||
| @ -263,20 +237,20 @@ AP_COM	AND	#01 | ||||
| 	LD	A,0 | ||||
| 	RET	Z	;NO DATA REQUEST | ||||
| 	EX	DE,HL | ||||
| 	LD	BC,R174 | ||||
| 	LD	BC,IDE.Read.CylinderLow | ||||
| 	IN	E,(C) | ||||
| 	LD	BC,R175 | ||||
| 	LD	BC,IDE.Read.CylinderHigh | ||||
| 	IN	D,(C)	;TRANSFER BLOCK	SIZE | ||||
| 	LD	A,D | ||||
| 	OR	E | ||||
| 	RET	Z	;BLOCK = 0 | ||||
| 	LD	BC,R172 | ||||
| 	LD	BC,IDE.Read.Counter | ||||
| 	IN	A,(C) | ||||
| 	AND	#02 | ||||
| 	CP	#02 | ||||
| 	JP	Z,.FROM_CD | ||||
| ;.TO_CD: | ||||
| 	LD	BC,R170 | ||||
| 	LD	BC,IDE.Read.Data | ||||
| .WR_T_CD: | ||||
| 	OUTI  | ||||
| 	OUTI  | ||||
| @ -291,7 +265,7 @@ AP_COM	AND	#01 | ||||
| 	LD	A,H | ||||
| 	OR	L | ||||
| 	JR	Z,.NULL | ||||
| 	LD	BC,R170 | ||||
| 	LD	BC,IDE.Read.Data | ||||
| .RD_F_CD: | ||||
| 	INI  | ||||
| 	INI  | ||||
| @ -302,7 +276,7 @@ AP_COM	AND	#01 | ||||
| 	JR	NZ,.RD_F_CD | ||||
| 	EX	DE,HL | ||||
| 	JR	.AP_LOOP | ||||
| .NULL:	LD	BC,R170 | ||||
| .NULL:	LD	BC,IDE.Read.Data | ||||
| .RD_N_CD: | ||||
| 	IN	A,(C) | ||||
| 	DEC	B | ||||
| @ -331,8 +305,9 @@ AP_COM	AND	#01 | ||||
| 
 | ||||
| ; D - MASK | ||||
| ; E - PATTERN | ||||
| ; BC - PORT | ||||
| 	//; BC - PORT | ||||
| CWAITPRT: | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	LD	A,100 | ||||
| 	LD	HL,#0000 | ||||
| .CWAITPX: | ||||
|  | ||||
| @ -279,7 +279,7 @@ RDS000:	CALL	SELECTH | ||||
| 	RET	C | ||||
| 	EXX  | ||||
| 	LD	DE,#C140	;WAIT BUSY=0 & READY=1 & ERR=0 | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	;LD	BC,IDE.Read.Status | ||||
| 	CALL	WAITPRT | ||||
| 	EXX  | ||||
| 	RET	C | ||||
| @ -298,7 +298,7 @@ RDS000:	CALL	SELECTH | ||||
| ;SAVE HL! | ||||
| RDS002:	EXX  | ||||
| 	LD	DE,#8908   ;WAIT BUSY=0 & DRQ=1 & ERR=0 | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	;LD	BC,IDE.Read.Status | ||||
| 	CALL	WAITPRT | ||||
| 	EXX  | ||||
| 	RET	C | ||||
| @ -338,7 +338,7 @@ RDS004:	DUP 16 | ||||
| .W44:	INC	XL	    ;INC LOADED	SECTORS | ||||
| 	EXX  | ||||
| 	LD	DE,#C140   ;WAIT BUSY=0 & ERR=0 & READY=1 | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	;LD	BC,IDE.Read.Status | ||||
| 	CALL	WAITPRT | ||||
| 	EXX  | ||||
| 	RET	C | ||||
| @ -443,7 +443,7 @@ WRS000: | ||||
| 	RET	C | ||||
| 	EXX  | ||||
| 	LD	DE,#C140	;WAIT BUSY=0 & READY=1 & ERR=0 | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	;LD	BC,IDE.Read.Status | ||||
| 	CALL	WAITPRT | ||||
| 	EXX  | ||||
| 	RET	C | ||||
| @ -478,7 +478,7 @@ NO_WriteProtect: | ||||
| ;SAVE HL! | ||||
| WRS002:	EXX  | ||||
| 	LD	DE,#8908   ;WAIT BUSY=0 & DRQ=1 & ERR=0 | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	;LD	BC,IDE.Read.Status | ||||
| 	CALL	WAITPRT | ||||
| 	EXX  | ||||
| 	RET	C | ||||
| @ -520,7 +520,7 @@ WRS003: | ||||
| .W33:	INC	XL	    ;INC SAVED SECTORS | ||||
| 	EXX  | ||||
| 	LD	DE,#C140   ;WAIT BUSY=0 & ERR=0 & READY=1 | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	;LD	BC,IDE.Read.Status | ||||
| 	CALL	WAITPRT | ||||
| 	EXX  | ||||
| 	RET	C | ||||
| @ -562,7 +562,7 @@ VRS000:	CALL	SELECTH | ||||
| 	RET	C | ||||
| 	EXX  | ||||
| 	LD	DE,#C140	;WAIT BUSY=0 & READY=1 & ERR=0 | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	;LD	BC,IDE.Read.Status | ||||
| 	CALL	WAITPRT | ||||
| 	EXX  | ||||
| 	RET	C | ||||
| @ -579,7 +579,7 @@ VRS002:	LD	BC,IDE.Read.Status | ||||
| 	SCF  | ||||
| 	RET  | ||||
| VRS003:	LD	DE,#C140   ;WAIT BUSY=0 & ERR=0 & READY=1 | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	;LD	BC,IDE.Read.Status | ||||
| 	CALL	WAITPRT | ||||
| 	RET	C | ||||
| 	XOR	A | ||||
| @ -675,27 +675,32 @@ CHS005:	INC	A | ||||
| 
 | ||||
| ; D - MASK | ||||
| ; E - PATTERN | ||||
| ; BC - PORT | ||||
| 	//; BC - PORT | ||||
| WAITPRT: | ||||
| 	LD	HL,#0000 | ||||
| .P0:	IN	A,(C) | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	LD	HL,#0000		; § ¤¥à¦ª  | ||||
| 
 | ||||
| .loop:	PUSH	HL | ||||
| 
 | ||||
| .loop2:	IN	A,(C) | ||||
| 	AND	D | ||||
| 	CP	E | ||||
| 
 | ||||
| 	;!TEST | ||||
| 	 RET	Z | ||||
| 	 ;JR	NZ,.P2 | ||||
| 	 ;AND	A | ||||
| 	 ;RET | ||||
| 	;  | ||||
| 
 | ||||
| .P2:	DEC	HL | ||||
| 	JR	Z,.ok | ||||
| 	DEC	HL | ||||
| 	LD	A,L | ||||
| 	OR	H | ||||
| 	JP	NZ,.P0 | ||||
| .error:	LD	A,4     ;!HARDCODE error number | ||||
| 	JP	NZ,.loop2 | ||||
| 
 | ||||
| 	POP	HL | ||||
| 	DEC	L | ||||
| 	JR	NZ,.loop | ||||
| 
 | ||||
| .error:	LD	A,4    			;!HARDCODE error number | ||||
| 	SCF  | ||||
| 	RET  | ||||
| .ok:	POP	HL | ||||
| 	RET | ||||
| 
 | ||||
| ;======================================================================= | ||||
| 
 | ||||
| ;[]================================================================[#57] | ||||
| @ -728,7 +733,8 @@ HDD_5x.DETECT: | ||||
| 	LD	C,SLOT3 | ||||
| 	OUT	(C),B | ||||
| 
 | ||||
| 	CP	IDE.Device.NONE | ||||
| 	CCF | ||||
| 	CP	IDE.Device.HDD | ||||
| 	RET	Z | ||||
| 	SCF | ||||
| 	RET  | ||||
| ;[]================================================================[#57] | ||||
| @ -85,13 +85,17 @@ IDE3		EQU	#C1D8 | ||||
| ;	 DB	 #FF	 ;SECTOR PER CYLINDER HIGH    ;06 | ||||
| ;	 DB	 #FF	 ;DEVICE TYPE		      ;07 | ||||
| 
 | ||||
| WAIT_IDE	EQU	#0000 | ||||
| WAIT_SML	EQU	#1000 | ||||
| WAIT_ERROR	EQU	#0400 | ||||
| 
 | ||||
| IDE__CD: | ||||
| 	CALL	SELECT_IDE | ||||
| ;MASTER | ||||
| CDAUTO: | ||||
| 	LD	A,IDE.Device.CDROM | ||||
| 	LD	(IDEDEV),A | ||||
| 	LD	A,#FF | ||||
| 	LD	A,#FF			;!FIXIT ¬®¦® ®¯â¨¬¨§¨à®¢ âì | ||||
| 	JP	CDMASTR | ||||
| 
 | ||||
| SELECT_IDE: | ||||
| @ -130,17 +134,13 @@ CDMASTR: | ||||
| 	LD	(SKIP),A | ||||
| 	LD	BC,IDE.Write.DriveCtrl | ||||
| 	OUT	(C),D | ||||
|  IF IDE_Optimization | ||||
| 	DEC	B | ||||
| 	INC	C | ||||
|  ELSE | ||||
|  	LD	BC,IDE.Read.Status	 | ||||
|  ENDIF | ||||
| 	INC	C			; LD BC,IDE.Read.Status | ||||
| 	IN	A,(C) | ||||
| 	AND	#80 | ||||
| 	LD	HL,280 | ||||
| 	JR	Z,NO_BUSY | ||||
| 	LD	HL,1550 | ||||
| 	LD	HL,1550			; § ¤¥à¦ª  - 31 ᥪ㤠 | ||||
| 	EI  | ||||
| CLRBUSY: | ||||
| 	HALT  | ||||
| @ -150,7 +150,7 @@ CLRBUSY: | ||||
| 	JP	Z,ABSENT | ||||
| 	CALL	SKIPKEY | ||||
| 	JP	C,ABSENT | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	LD	BC,IDE.Read.Status	;!FIXIT ¬®¦® § ª®¬¬¥â¨à®¢ âì? | ||||
| 	IN	A,(C) | ||||
| 	AND	#80 | ||||
| 	JR	NZ,CLRBUSY | ||||
| @ -165,25 +165,31 @@ NO_BUSY: | ||||
| 	DEC	C | ||||
| 	JR	NZ,.pause | ||||
| 
 | ||||
|  IF IDE_Optimization | ||||
| 	LD	C,IDE.Read.Counter | ||||
|  ELSE | ||||
|  	LD	BC,IDE.Read.Counter | ||||
|  ENDIF | ||||
| 	LD	C,IDE.Read.Counter	; LD BC,IDE.Read.Counter | ||||
| 	IN	A,(C) | ||||
| 	CP	E | ||||
| 	JP	NZ,ABSENT | ||||
| 
 | ||||
| 	;!FIXIT CD-ROM Autodetect error! | ||||
| 	LD	A,(IDEDEV) | ||||
| 	CP	IDE.Device.CDROM | ||||
| 	JP	Z,NOHDD | ||||
| ;!TODO | ||||
| ;	I haven,t done too many tests but this works on all the hardware i have. | ||||
| ;	1 select device (port+6) | ||||
| ;	2 read status byte(port+7) if =-1 then there is no disk | ||||
| ;	if busy to many time then no disk | ||||
| ;	3 send id command 0ec0h if error then send packet device id command | ||||
| ;	0a1h if error then no disk. | ||||
| ;	commands must be send byte by byte dword operations are used only for data transfers.	 | ||||
| 	;CP	IDE.Device.NONE | ||||
| 	;JR	NZ,1F | ||||
| 
 | ||||
| 1:	CP	IDE.Device.CDROM | ||||
| 	JP	Z,NOHDD		;¯à¨  ¢â®¤¥â¥ªâ¥, ¥á«¨ âãâ CD, â® ¨ª®£¤  ¥ ¡ã¤¥â ¯¥à¥å®¤    NOHDD | ||||
| 
 | ||||
| 	LD	E,ATA_NOP | ||||
| 	LD	BC,IDE.Write.Command | ||||
| 	OUT	(C),E | ||||
|  IF IDE_Optimization | ||||
| 	DEC	B | ||||
|  ENDIF | ||||
| 	DEC	B			; LD BC, IDE.Read.Status | ||||
| WXREADY: | ||||
| 	HALT  | ||||
| 	DEC	HL | ||||
| @ -192,9 +198,7 @@ WXREADY: | ||||
| 	JP	Z,ABSENT | ||||
| 	CALL	SKIPKEY | ||||
| 	JP	C,ABSENT | ||||
|  IFN IDE_Optimization | ||||
|  	LD	BC,IDE.Read.Status | ||||
|  ENDIF | ||||
|  	;LD	BC,IDE.Read.Status | ||||
| 	IN	A,(C) | ||||
| 	AND	#C0 | ||||
| 	CP	#40 | ||||
| @ -212,20 +216,15 @@ WXREADY: | ||||
| 	LD	B,0 | ||||
| .pause:	DJNZ	.pause | ||||
| 
 | ||||
| 	LD	HL,(WAITSML) | ||||
| 	LD	HL,WAIT_SML | ||||
| 	LD	DE,#0101 | ||||
|  IF IDE_Optimization | ||||
| 	LD	B,high IDE.Read.Status | ||||
|  ELSE | ||||
|  	LD	BC,IDE.Read.Status | ||||
|  ENDIF | ||||
| 	CALL	WAIT_PRT | ||||
| 	JP	NC,NOHDD | ||||
| 
 | ||||
| GETPARM: | ||||
| 	LD	HL,(WAITIDE) | ||||
| 	LD	HL,WAIT_IDE | ||||
| 	LD	DE,#0808 | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	;LD	BC,IDE.Read.Status | ||||
| 	CALL	WAIT_PRT | ||||
| 	JP	C,ABSENT | ||||
| 	LD	BC,IDE.Read.Data | ||||
| @ -245,13 +244,9 @@ NOHDD:  LD	A,IDE.Device.CDROM | ||||
| 	LD	B,0 | ||||
| .pause:	DJNZ	.pause | ||||
| 
 | ||||
| 	LD	HL,(WAITSML) | ||||
| 	;LD	HL,WAIT_SML | ||||
| 	LD	HL,WAIT_ERROR | ||||
| 	LD	DE,#0101 | ||||
|  IF IDE_Optimization | ||||
| 	LD	B,high IDE.Read.Status | ||||
|  ELSE | ||||
|  	LD	BC,IDE.Read.Status | ||||
|  ENDIF | ||||
| 	CALL	WAIT_PRT | ||||
| 	JP	C,GETPARM | ||||
| ABSENT: | ||||
| @ -329,21 +324,17 @@ FOR_CDR: | ||||
| 
 | ||||
| IDE_CMD: | ||||
| 	PUSH	AF | ||||
| 	LD	HL,(WAITIDE) | ||||
| 	LD	HL,WAIT_IDE | ||||
| 	LD	DE,#C040 | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	;LD	BC,IDE.Read.Status | ||||
| 	CALL	WAIT_PRT | ||||
| 	POP	DE | ||||
| 	RET	C | ||||
|  IF IDE_Optimization | ||||
| 	INC	B | ||||
|  ELSE | ||||
|  	LD	BC,IDE.Write.Command  | ||||
|  ENDIF | ||||
| 	INC	B			; LD BC,IDE.Write.Command  | ||||
| 	OUT	(C),D | ||||
| 	LD	HL,(WAITIDE) | ||||
| 	LD	HL,WAIT_IDE | ||||
| 	LD	DE,#C040 | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	;LD	BC,IDE.Read.Status | ||||
| 	JP	WAIT_PRT | ||||
| 
 | ||||
| WAITHDD: | ||||
| @ -363,42 +354,24 @@ WTREADY: | ||||
| 	SCF  | ||||
| 	RET  | ||||
| 
 | ||||
| ;WAITHDD DEC	 L | ||||
| ;	 RET	 NZ | ||||
| ;	 DEC	 H | ||||
| ;	 RET	 NZ | ||||
| ;	 DEC	 E | ||||
| ;	 RET	 NZ | ||||
| ;	 SCF | ||||
| ;	 RET | ||||
| 
 | ||||
| ; E - Second * 10 | ||||
| 
 | ||||
| ;PAUSE	 LD	 HL,#0000 | ||||
| ;PAUSE1	 DEC	 L | ||||
| ;	 JR	 NZ,PAUSE1 | ||||
| ;	 DEC	 H | ||||
| ;	 JR	 NZ,PAUSE1 | ||||
| ;	 DEC	 E | ||||
| ;	 JR	 NZ,PAUSE1 | ||||
| ;	 RET | ||||
| 
 | ||||
| ; D - MASK | ||||
| ; E - PATTERN | ||||
| ; BC - PORT | ||||
| WAIT_PRT: | ||||
| 	IN	A,(C) | ||||
| 	LD	BC,IDE.Read.Status | ||||
| .loop:	IN	A,(C) | ||||
| 	AND	D | ||||
| 	CP	E | ||||
| 	JR	NZ,.P2 | ||||
| 	AND	A | ||||
| 	RET  | ||||
| 	;JR	NZ,.P2 | ||||
| 	;AND	A | ||||
| 	;RET	 | ||||
| 	RET	Z | ||||
| .P2:	DEC	HL | ||||
| 	CALL	SKIPKEY | ||||
| 	RET	C | ||||
| 	LD	A,L | ||||
| 	OR	H | ||||
| 	JP	NZ,WAIT_PRT | ||||
| 	JP	NZ,.loop | ||||
| .error:	SCF  | ||||
| 	RET  | ||||
| 
 | ||||
| @ -421,12 +394,28 @@ SKIPKEY: | ||||
| 	LD	(SKIP),A | ||||
| 	SCF  | ||||
| 	RET  | ||||
| 
 | ||||
| WAITIDE:	DW	#0000	;!FIXIT ¥ ¬¥ï¥âáï? | ||||
| WAITSML:	DW	#0400	;!FIXIT ¥ ¬¥ï¥âáï? | ||||
| SKIP:		DB	#FF | ||||
| IDEDEV:		DB	#FF | ||||
| ICHANEL:	DB	#00 | ||||
| 
 | ||||
| ;	ENDMODULE | ||||
| ; | ||||
| 
 | ||||
| ;WAITHDD DEC	 L | ||||
| ;	 RET	 NZ | ||||
| ;	 DEC	 H | ||||
| ;	 RET	 NZ | ||||
| ;	 DEC	 E | ||||
| ;	 RET	 NZ | ||||
| ;	 SCF | ||||
| ;	 RET | ||||
| 
 | ||||
| ; E - Second * 10 | ||||
| 
 | ||||
| ;PAUSE	 LD	 HL,#0000 | ||||
| ;PAUSE1	 DEC	 L | ||||
| ;	 JR	 NZ,PAUSE1 | ||||
| ;	 DEC	 H | ||||
| ;	 JR	 NZ,PAUSE1 | ||||
| ;	 DEC	 E | ||||
| ;	 JR	 NZ,PAUSE1 | ||||
| ;	 RET | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Anatoliy Belyanskiy
						Anatoliy Belyanskiy