тестирование задержек
This commit is contained in:
		
							parent
							
								
									f8fe84be7e
								
							
						
					
					
						commit
						a3aef23cd6
					
				| @ -1 +1 @@ | ||||
| Subproject commit be5eed466fa1c0e442b828a42ffc1b9abda23ac9 | ||||
| Subproject commit 83c2b69b4af0a36475fa42378000fb6e57c59021 | ||||
| @ -677,16 +677,15 @@ TAB_5xFNS: | ||||
| 
 | ||||
| ;************************************ | ||||
| ; ‚室 ¢ äãªæ¨î ¯® RST18 ¨ RST8 | ||||
| EXP_FNS_RST18: | ||||
|         PUSH	HL | ||||
| 	LD	L,C | ||||
| 	LD	H,high TAB_FNS | ||||
| 	LD	C,(HL) | ||||
| 	INC	H | ||||
| 	LD	H,(HL) | ||||
| 	LD	L,C | ||||
| 	EX	(SP),HL | ||||
| 	RET | ||||
| EXP_FNS_RST18: 	PUSH	HL | ||||
| 		LD	L,C | ||||
| 		LD	H,high TAB_FNS | ||||
| 		LD	C,(HL) | ||||
| 		INC	H | ||||
| 		LD	H,(HL) | ||||
| 		LD	L,C | ||||
| 		EX	(SP),HL | ||||
| 		RET | ||||
| 
 | ||||
| 	; ATA_5x_RESET | ||||
| 	; ATA_5x_LONG_READ | ||||
| @ -704,50 +703,39 @@ EXP_FNS_RST18: | ||||
| 	; 	FN_RESERVED_5x  | ||||
| 	; DRV_LIST | ||||
| 
 | ||||
| FN_5x_Parser_1:			 	; ATA_5x_RESET | ||||
| 	LD	C,#01 | ||||
| 	JP	FN_5x_Parser  | ||||
| FN_5x_Parser_2:				; ATA_5x_LONG_READ | ||||
| 	LD	C,#02 | ||||
| 	JP	FN_5x_Parser  | ||||
| FN_5x_Parser_3:				; ATA_5x_LONG_WRITE | ||||
| 	LD	C,#03 | ||||
| 	JP	FN_5x_Parser  | ||||
| FN_5x_Parser_4:				; ATA_5x_VERIFY | ||||
| 	LD	C,#04 | ||||
| 	JP	FN_5x_Parser  | ||||
| FN_5x_Parser_6:				; ATA_5x_WRITE | ||||
| 	LD	C,#06 | ||||
| 	JP	FN_5x_Parser  | ||||
| FN_5x_Parser_7:				; ATA_5x_DETECT | ||||
| 	LD	C,#07 | ||||
| 	JP	FN_5x_Parser  | ||||
| FN_5x_Parser_8:				; ATA_5x_GET_PAR | ||||
| 	LD	C,#08 | ||||
| 	JP	FN_5x_Parser  | ||||
| FN_5x_Parser_9:				; ATA_5x_SET_PAR | ||||
| 	LD	C,#09 | ||||
| 	JP	FN_5x_Parser  | ||||
| FN_5x_Parser_E:				; DRV_EXTENDED | ||||
| 	LD	C,#0E | ||||
| 	JP	FN_5x_Parser  | ||||
| FN_5x_Parser_5:				; ATA_5x_READ | ||||
| 	LD	C,5 | ||||
| FN_5x_Parser: | ||||
|         PUSH    HL | ||||
|         LD      H,A | ||||
|         AND     #F0 | ||||
|         OR      C | ||||
|         ; âãâ ¢ A ®¬¥à “‘’<E28098>މ‘’‚€ + <20>ŽŒ…<C592> ”“<E2809D>Š–ˆˆ  | ||||
|         LD      L,A | ||||
|         LD      A,H | ||||
| 	LD	H,high TAB_5xFNS | ||||
| 	LD	C,(HL) | ||||
| 	INC	H | ||||
| 	LD	H,(HL) | ||||
| 	LD	L,C | ||||
| 	EX	(SP),HL | ||||
| 	RET | ||||
| FN_5x_Parser_1:	LD	C,#01			 	; ATA_5x_RESET | ||||
| 		JR	FN_5x_Parser  | ||||
| FN_5x_Parser_2:	LD	C,#02				; ATA_5x_LONG_READ | ||||
| 		JR	FN_5x_Parser  | ||||
| FN_5x_Parser_3:	LD	C,#03				; ATA_5x_LONG_WRITE | ||||
| 		JR	FN_5x_Parser  | ||||
| FN_5x_Parser_4:	LD	C,#04				; ATA_5x_VERIFY | ||||
| 		JR	FN_5x_Parser  | ||||
| FN_5x_Parser_6:	LD	C,#06				; ATA_5x_WRITE | ||||
| 		JR	FN_5x_Parser  | ||||
| FN_5x_Parser_7:	LD	C,#07				; ATA_5x_DETECT | ||||
| 		JR	FN_5x_Parser  | ||||
| FN_5x_Parser_8:	LD	C,#08				; ATA_5x_GET_PAR | ||||
| 		JR	FN_5x_Parser  | ||||
| FN_5x_Parser_9:	LD	C,#09				; ATA_5x_SET_PAR | ||||
| 		JR	FN_5x_Parser  | ||||
| FN_5x_Parser_E:	LD	C,#0E				; DRV_EXTENDED | ||||
| 		JR	FN_5x_Parser  | ||||
| FN_5x_Parser_5:	LD	C,5				; ATA_5x_READ | ||||
| FN_5x_Parser:	PUSH    HL | ||||
| 		LD      H,A | ||||
| 		AND     #F0 | ||||
| 		OR      C | ||||
| 		; âãâ ¢ A ®¬¥à “‘’<E28098>މ‘’‚€ + <20>ŽŒ…<C592> ”“<E2809D>Š–ˆˆ  | ||||
| 		LD      L,A | ||||
| 		LD      A,H | ||||
| 		LD	H,high TAB_5xFNS | ||||
| 		LD	C,(HL) | ||||
| 		INC	H | ||||
| 		LD	H,(HL) | ||||
| 		LD	L,C | ||||
| 		EX	(SP),HL | ||||
| 		RET | ||||
| 
 | ||||
| ; ‚室 ¢ äãªæ¨¨ <20>ˆŽ‘ ¨§ TR-DOS | ||||
| EXP_FNS:; ®âª«îç ¥¬ § ¯¨áì ¢ íªà  ᯥªâà㬠 | ||||
|  | ||||
| @ -767,7 +767,7 @@ POST_5_OK: | ||||
| ; Don't use IY before this point if it`s normal booting!!! | ||||
| 	LD	IX,0 | ||||
| 	XOR	A | ||||
| 	ADD	IX,SP					; ¢®ááâ ®¢¨âì § ç¥¨¥ ¯¥à¥¤ ®¥ § £àã§ç¨ª®¬ ª®äë (¥á«¨ áâ àâ ¯®á«¥ à¥á¥â ) | ||||
| 	ADD	IX,SP	; ¢®ááâ ®¢¨âì § ç¥¨¥ ¯¥à¥¤ ®¥ § £àã§ç¨ª®¬ ª®äë (¥á«¨ áâ àâ ¯®á«¥ à¥á¥â ) | ||||
| ; ‚ í⮬ ¬¥áâ¥ ã  á IX:IY ¨§ Loader.asm | ||||
| ; „®â é¨«¨ ¤® á ¬¥âªã ®â «® ¤¥à  | ||||
| 	;[x] 31/12/2023 ¯®¤áâà å®¢ª  ®â ¥¤®ãâ¥çª¨ ¯ ¬ï⨠| ||||
| @ -788,7 +788,7 @@ POST_5_OK: | ||||
| 	 JR	NZ,.no_conf_reload | ||||
| 	 LD	A,#80 | ||||
| .no_conf_reload: | ||||
| 	 LD	R,A	; reg R bit7 - ¯à¨§ ª à ¡®âë «® ¤¥à  | ||||
| 	 LD	R,A	; reg R bit7 - ¯à¨§ ª § ¯ã᪠ á ®âà ¡®âª®© «® ¤¥à  ª®äë | ||||
| 	; | ||||
| 	;   ¢á直© á«ãç © | ||||
| 	 LD	HL,ACEX.Config_ID.Sp2000 | ||||
| @ -881,24 +881,24 @@ No_Reset_handlers: | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| 	MODULE Prepare_For_Setup | ||||
| Set_ALL_Mode:	LD A,Port_All_Mode.DEFAULT | ||||
| 		LD BC,Port_All_Mode | ||||
| 		OUT (C),A | ||||
| Set_ALL_Mode:	LD	A,Port_All_Mode.DEFAULT | ||||
| 		LD	BC,Port_All_Mode | ||||
| 		OUT	(C),A | ||||
| 
 | ||||
| Set_Default_Screen: | ||||
| 		CALL FN_SYNC.INT_DEF					; set default int | ||||
| 		ld a,128+4						; !HARDCODE  | ||||
| 		CALL FN_SYNC						; set default vsync | ||||
| Setup_to_RAM:	LD HL,Setup_Starter.Start | ||||
| 		LD DE,COMPILE_ADDR.SETUP_STARTER | ||||
| 		LD BC,Setup_Starter.Size | ||||
| 		CALL	FN_SYNC.INT_DEF					; set default int | ||||
| 		LD	A,128+4						; !HARDCODE  | ||||
| 		CALL	FN_SYNC						; set default vsync | ||||
| Setup_to_RAM:	LD	HL,Setup_Starter.Start | ||||
| 		LD	DE,COMPILE_ADDR.SETUP_STARTER | ||||
| 		LD	BC,Setup_Starter.Size | ||||
| 		LDIR | ||||
| 	;   á⥪ ª« ¤ñâáï  ¤à¥á ¢®§¢à â  ¨ ¤ «ìè¥ â é¨âáï ¢á直¬¨ ª®áâë«ï¬¨, ç⮡ ¢¥àãâìáï  § ¤ | ||||
| 		CALL Setup_Starter.Exec					; #C000 | ||||
| 		CALL	Setup_Starter.Exec				; #C000 | ||||
| 		;JP	PrepareToZX | ||||
| 	ENDMODULE | ||||
| 
 | ||||
| PrepareToZX:	; Setup HDD drives for ZX Spectrum mode | ||||
| ;PrepareToZX:	; Setup HDD drives for ZX Spectrum mode | ||||
| ; 		DI | ||||
| ; 		LD	D,CMOS_CELL.TRDOSmount | ||||
| ; 		CALL	CMOS_RD | ||||
| @ -1052,8 +1052,8 @@ PORTS_INIT: | ||||
| 		OUT	(C),A | ||||
| 		; £«ã訬 ª®¢®ªá | ||||
| 		XOR	A | ||||
| 		OUT	(CBL.SYS_PORT),A | ||||
| 		LD	BC,CBL.OUT | ||||
| 		OUT	(SP_SND.CBL.SYS_PORT),A | ||||
| 		LD	BC,SP_SND.CBL.OUT | ||||
| 		LD	A,#80 | ||||
| .CBL_MUTE:	OUT	(C),A | ||||
| 		DJNZ	.CBL_MUTE | ||||
| @ -1556,7 +1556,7 @@ BEEP:		LD	A,#10 | ||||
| 		JR	NZ,BEEP | ||||
| 		RET | ||||
| 		; | ||||
| .beep_loop:	OUT	(ZX_Beeper),A | ||||
| .beep_loop:	OUT	(SP_SND.Beeper),A | ||||
| 		LD	B,D | ||||
| 		LD	C,E | ||||
| 		; | ||||
|  | ||||
| @ -181,7 +181,7 @@ ATAPI_5x_READ:	;PUSH	IY		; !FIXIT  | ||||
| 		EX	AF,AF' | ||||
| 		 IN	A,(SLOT3) | ||||
| 		EX	AF,AF' | ||||
| 		JP	ATAPI_5x_LONG_READ.main | ||||
| 		JR	ATAPI_5x_LONG_READ.main | ||||
| ;[]================================================================[#52] | ||||
| ;Function: Long	Read Sectors | ||||
| ;	A - Disk | ||||
| @ -198,17 +198,19 @@ ATAPI_5x_LONG_READ: | ||||
| 		; | ||||
| 		;PUSH	IY		; !FIXIT § ç¥¬? | ||||
| 		LD	C,1		; ¯à¨§ ª long | ||||
| .main:		SAFE_PORTY_2 | ||||
| 		PUSH	BC | ||||
| 		PUSH	IX | ||||
| 		PUSH	HL | ||||
| .main:		EX	AF,AF' | ||||
| 		 AND	A	;read | ||||
| 		EX	AF,AF' | ||||
| 		JR	ATAPI_BEGIN_RW | ||||
| 		; | ||||
| 		 EX	AF,AF' | ||||
| 		  AND	A	;read | ||||
| 		 EX	AF,AF' | ||||
| 		CALL	RW_ATAPI_SECTORs | ||||
| 		; [ ] sector size. media changed | ||||
| 		 JP	ATA_5x_LONG_READ.shared | ||||
| 		; SAFE_PORTY_2 | ||||
| 		; PUSH	BC | ||||
| 		; PUSH	IX | ||||
| 		; PUSH	HL | ||||
| 		; ; | ||||
| 		; CALL	RW_ATAPI_SECTORs | ||||
| 		; ; [ ] sector size. media changed | ||||
| 		;  JP	ATA_5x_LONG_READ.shared | ||||
| 		;  JP	NC,ATA_5x_LONG_READ.shared | ||||
| 		;  CP	BIOS.Error.UnitAttention | ||||
| 		;  JR	Z,ATAPI_MEDIA_ERROR | ||||
| @ -278,6 +280,15 @@ RW_ATAPI_SECTORs: | ||||
| 
 | ||||
| ;[]===========================================================[#52, #55] | ||||
| 
 | ||||
| ATAPI_BEGIN_RW:	SAFE_PORTY_2 | ||||
| 		PUSH	BC | ||||
| 		PUSH	IX | ||||
| 		PUSH	HL | ||||
| 		; | ||||
| 		 CALL	RW_ATAPI_SECTORs | ||||
| 		; | ||||
| 		JP	ATA_5x_LONG_READ.shared | ||||
| 
 | ||||
| ;[]================================================================[#56] | ||||
| ;Function: Write Sectors | ||||
| ;	A - Disk | ||||
| @ -289,11 +300,14 @@ RW_ATAPI_SECTORs: | ||||
| ;      DE - Address + (Sector counter *	Size sector) | ||||
| ;WRITE SECTOR(S) | ||||
| ATAPI_5x_WRITE:	;PUSH	IY		; !FIXIT § ç¥¬? | ||||
| 		LD	C,0		; ¯à¨§ ª short | ||||
| 		; ¯à®¡  ¡ £  | ||||
| 		 LD	C,0		; ¯à¨§ ª short | ||||
| 		 ;LD	C,1		; ¯à¨§ ª long | ||||
| 		; | ||||
| 		EX	AF,AF' | ||||
| 		 IN	A,(SLOT3) | ||||
| 		EX	AF,AF' | ||||
| 		JP	ATAPI_5x_LONG_WRITE.main | ||||
| 		JR	ATAPI_5x_LONG_WRITE.main | ||||
| ;[]================================================================[#53] | ||||
| ;Function: Long	Write Sectors | ||||
| ;	A - Disk | ||||
| @ -310,17 +324,19 @@ ATAPI_5x_LONG_WRITE: | ||||
| 		; | ||||
| 		;PUSH	IY		; !FIXIT § ç¥¬? | ||||
| 		LD	C,1		; ¯à¨§ ª long | ||||
| .main:		SAFE_PORTY_2 | ||||
| 		PUSH	BC | ||||
| 		PUSH	IX | ||||
| 		PUSH	HL | ||||
| .main:		EX	AF,AF' | ||||
| 		 SCF		;write | ||||
| 		EX	AF,AF' | ||||
| 		JR	ATAPI_BEGIN_RW | ||||
| 		; | ||||
| 		 EX	AF,AF' | ||||
| 		  SCF		;write | ||||
| 		 EX	AF,AF' | ||||
| 		 CALL	RW_ATAPI_SECTORs | ||||
| 		; | ||||
| 		JP	ATA_5x_LONG_READ.shared | ||||
| 		; SAFE_PORTY_2 | ||||
| 		; PUSH	BC | ||||
| 		; PUSH	IX | ||||
| 		; PUSH	HL | ||||
| 		; ; | ||||
| 		;  CALL	RW_ATAPI_SECTORs | ||||
| 		; ; | ||||
| 		; JP	ATA_5x_LONG_READ.shared | ||||
| 
 | ||||
| ;[]================================================================[#57] | ||||
| ;Function: Detect Disk | ||||
| @ -607,9 +623,10 @@ EXEC_PACKET_COMMAND: | ||||
| 		; | ||||
| 		POP	BC | ||||
| 		OUT	(C),B | ||||
| 		; | ||||
| 		LD	B,#80 | ||||
| .pause2: 	DJNZ	.pause2 | ||||
| 		; pause | ||||
| 		LD	B,0 | ||||
| 		DJNZ	$ | ||||
| 		; DJNZ	$ | ||||
| 		; | ||||
| 		EX	AF,AF' | ||||
| 		 LD	XH,A	; áâà ¨æ  ¤«ï R/W_LONG | ||||
| @ -617,7 +634,9 @@ EXEC_PACKET_COMMAND: | ||||
| 		EX	AF,AF' | ||||
| 		EX	DE,HL | ||||
| 		; | ||||
| .AP_LOOP:	CALL	ATAPI_CHECK_DRV | ||||
| .AP_LOOP:	;LD	B,128 | ||||
| 		;DJNZ	$ | ||||
| 		CALL	ATAPI_CHECK_DRV | ||||
| 		JP	C,.error;_APLOOP | ||||
| 		RET	Z | ||||
| 	;====== IF DATA REQUEST ===============================================; | ||||
| @ -626,23 +645,6 @@ EXEC_PACKET_COMMAND: | ||||
| 		; | ||||
| 		LD	A,XH | ||||
| 		OUT	(SLOT3),A | ||||
| 		; | ||||
| 		;LD	BC,IDE.Read.ByteCountLow | ||||
| 		;IN	E,(C) | ||||
| 		;INC	C	;LD BC,IDE.Read.ByteCountHigh | ||||
| 		;IN	D,(C)	;TRANSFER BLOCK	SIZE | ||||
| 		;; | ||||
| 		;LD	A,D | ||||
| 		;OR	E | ||||
| 		;RET	Z	;BLOCK = 0 | ||||
| 		;; 㬥ìè ¥¬ áçñâ稪 § £à㦠¥¬ëå ¡ ©â®¢ ¢ 2 à § . —¨â ¥¬ ¯® 2 ¡ ©â  | ||||
| 		;SRL	D | ||||
| 		;RR	E | ||||
| 		;; | ||||
| 		;LD	BC,IDE.Read.InterruptReason | ||||
| 		;IN	A,(C) | ||||
| 		;AND	IDE.InterruptReasonByte.IO | ||||
| 		;LD	BC,IDE.Read.Data | ||||
| 		CALL	ATAPI_PREPARE_RW | ||||
| 		RET	NC | ||||
| 		JR	Z,.WRITE_DATA | ||||
| @ -688,24 +690,7 @@ ATAPI_IdlePasses: | ||||
| 		JP	C,EXEC_PACKET_COMMAND.error | ||||
| 		JP	Z,EXEC_PACKET_COMMAND.error_fail | ||||
| 		; | ||||
| .Enter:		;LD	BC,IDE.Read.ByteCountLow | ||||
| 		;IN	E,(C) | ||||
| 		;INC	C	;LD BC,IDE.Read.ByteCountHigh | ||||
| 		;IN	D,(C)	;TRANSFER BLOCK	SIZE | ||||
| 		;; | ||||
| 		;LD	A,D | ||||
| 		;OR	E | ||||
| 		;RET	Z	;BLOCK = 0 | ||||
| 		;; | ||||
| 		;; 㬥ìè ¥¬ áçñâ稪 § £à㦠¥¬ëå ¡ ©â®¢ ¢ 2 à § . —¨â ¥¬ ¯® 2 ¡ ©â  | ||||
| 		;SRL	D | ||||
| 		;RR	E | ||||
| 		;; | ||||
| 		;LD	BC,IDE.Read.InterruptReason | ||||
| 		;IN	A,(C) | ||||
| 		;AND	IDE.InterruptReasonByte.IO | ||||
| 		;LD	BC,IDE.Read.Data | ||||
| 		CALL	ATAPI_PREPARE_RW | ||||
| .Enter:		CALL	ATAPI_PREPARE_RW | ||||
| 		RET	NC | ||||
| 		JR	Z,.write_data | ||||
| 		; | ||||
| @ -737,6 +722,7 @@ ATAPI_IdlePasses: | ||||
| ATAPI_CHECK_DRV: | ||||
| 		;EX	DE,HL | ||||
| 		EXX | ||||
| 		 ;CALL	.zeroWait | ||||
| 		 CALL	ATAPI_WAITPRT | ||||
| 		EXX | ||||
| 		; ZF=1 | ||||
| @ -764,9 +750,25 @@ ATAPI_CHECK_DRV: | ||||
| 		JP	Z,ATAPI_MEDIA_ERROR | ||||
| 		CP	BIOS.Error.ATAPI.UnitAttention | ||||
| 		JP	Z,ATAPI_MEDIA_ERROR | ||||
| 		; | ||||
| 		;CP	BIOS.Error.ATAPI.IllegalRequest | ||||
| 		;RET	Z | ||||
| 		; | ||||
| 		SCF | ||||
| 		RET | ||||
| 		; | ||||
| ; .zeroWait:	;LD	B,2 | ||||
| ; 		LD	HL,#800 | ||||
| ; .loop:		LD	A,high IDE.Read.Status | ||||
| ; 		IN	A,(low IDE.Read.Status) | ||||
| ; 		AND	A | ||||
| ; 		RET	NZ | ||||
| ; 		DEC	HL | ||||
| ; 		LD	A,H | ||||
| ; 		OR	L | ||||
| ; 		JR	NZ,.loop | ||||
| ; 		;DJNZ	.loop | ||||
| ; 		RET | ||||
| 
 | ||||
| ATAPI_PREPARE_RW: | ||||
| 		LD	BC,IDE.Read.ByteCountLow | ||||
| @ -836,9 +838,9 @@ ATAPI_GET_ERROR_REG: | ||||
| ; !!! ¥ª®â®àë¥ äãªæ¨¨  ¤¥îâáï, çâ®   ¢ë室¥ ¢á¥£¤  ZF | ||||
| ; ¥ ¤®«¦  âண âì ॣ. C | ||||
| ATAPI_WAITPRT:	LD	DE,256*IDE.CtrlByte.Busy + 0 | ||||
| .Custom:	LD	B,100 | ||||
| .Custom:	LD	B,6		; 3 = ®¡é ï § ¤¥à¦ª  ®ª®«® ᥪã¤ë | ||||
| 		LD	HL,#0000 | ||||
| 	; | ||||
| 	; 4ÿ128ÿ768 | ||||
| .LOOP:		LD	A,high IDE.Read.Status | ||||
| 		IN	A,(low IDE.Read.Status) | ||||
| 		CP	#FF | ||||
| @ -852,13 +854,59 @@ ATAPI_WAITPRT:	LD	DE,256*IDE.CtrlByte.Busy + 0 | ||||
| 		LD	A,H | ||||
| 		OR	L | ||||
| 		JR	NZ,.LOOP | ||||
| 		; | ||||
| 		; LD	A,high IDE.Read.Status | ||||
| 		; IN	A,(low IDE.Read.Status) | ||||
| 		; CP	#FF | ||||
| 		; SCF | ||||
| 		; RET	Z | ||||
| 		; | ||||
| 	; 1ÿ392ÿ512ÿ256 | ||||
| 		DJNZ	.LOOP | ||||
| 		; | ||||
| 		; LD	A,high IDE.Read.Status | ||||
| 		; IN	A,(low IDE.Read.Status) | ||||
| 		; INC	A	;CP	#FF | ||||
| 		; SCF | ||||
| 		; RET	Z | ||||
| 		; | ||||
| 		LD	A,BIOS.Error.Busy | ||||
| .error:		SCF  | ||||
| 		RET | ||||
| 		; | ||||
| .error:		SCF | ||||
| 		RET | ||||
| ;----------------------------------------------------------------------; | ||||
| 
 | ||||
| 
 | ||||
| ;----------------------------------------------------------------------; | ||||
| ; D - MASK, E - PATTERN | ||||
| ; !!! ¥ª®â®àë¥ äãªæ¨¨  ¤¥îâáï, çâ®   ¢ë室¥ ¢á¥£¤  ZF | ||||
| ; ¥ ¤®«¦  âண âì ॣ. C | ||||
| ; ATAPI_WAITPRT:	LD	DE,256*IDE.CtrlByte.Busy + 0 | ||||
| ; .Custom:	 | ||||
| ; .LOOP:		LD	A,high IDE.Read.Status | ||||
| ;  		IN	A,(low IDE.Read.Status) | ||||
| ; 		CP	#FF | ||||
| ; 		JR	Z,.error | ||||
| ; 		; | ||||
| ; 		AND	D | ||||
| ; 		CP	E | ||||
| ; 		RET	Z | ||||
| ; 		JR	.LOOP | ||||
| ; 		; | ||||
| ; 		; LD	A,high IDE.Read.Status | ||||
| ; 		; IN	A,(low IDE.Read.Status) | ||||
| ; 		; INC	A	;CP	#FF | ||||
| ; 		; SCF | ||||
| ; 		; RET	Z | ||||
| ; 		; ; | ||||
| ; 		; LD	A,BIOS.Error.Busy | ||||
| ; 		; RET | ||||
| ; 		; | ||||
| ; .error:		SCF | ||||
| ;  		RET | ||||
| ;----------------------------------------------------------------------; | ||||
| 
 | ||||
| ;----------------------------------------------------------------------; | ||||
| ; DE - buffer | ||||
| ATAPI_READ_CAPACITY_DATA: | ||||
|  | ||||
| @ -119,7 +119,7 @@ RESERVED_PAGES:	;[x] free zx pages! | ||||
| 		DB	#58,#59,#5A,#5B,#5C,#5D,#5E,#5F | ||||
| 	 ; | ||||
| 		;DB	MODE_PAGE					; ????? | ||||
| 		DB	CBL.BUFFER_PAGE					; Page for CBL audio | ||||
| 		DB	SP_SND.CBL.BUFFER_PAGE				; Page for CBL audio | ||||
| 		DB	SYS_PAGE					; Page for system (BIOS) variables | ||||
| 		DB	#FF						; End of the block | ||||
| 	; | ||||
|  | ||||
| @ -72,7 +72,7 @@ RST_CONF: | ||||
| 		LD	A,#80 | ||||
| 		JR	Z,.YES_CBL | ||||
| 		XOR	A | ||||
| .YES_CBL:	LD	BC,CBL.SYS_PORT | ||||
| .YES_CBL:	LD	BC,SP_SND.CBL.SYS_PORT | ||||
| 		OUT	(C),A | ||||
| 		; | ||||
| 		LD	A,E		; config-byte | ||||
|  | ||||
| @ -163,12 +163,10 @@ EMM.CheckColdInit: | ||||
| 	INC	HL | ||||
| 	INC	DE | ||||
| 	DJNZ	.loop | ||||
| 
 | ||||
| 	; Disable user IM address in SYS_PAGE | ||||
| 	 XOR	A | ||||
| 	 LD	(SYS_PAGE.INT_ID - #4000),A | ||||
| 	; | ||||
| 
 | ||||
| 	EX	AF,AF' | ||||
| 	OUT	(SLOT2),A | ||||
| 	RET | ||||
|  | ||||
| @ -397,7 +397,8 @@ SETUP_FROM_CMOS: | ||||
| 		; RET | ||||
| /////////////////////////////////////////////////////////////////////[^] | ||||
| /////////////////////////////////////////////////////////////////////[v] | ||||
| IDESPEC:	IN	A,(SLOT3) | ||||
| PARSE_IdentifyDevice: | ||||
| 		IN	A,(SLOT3) | ||||
| 		EX	AF,AF' | ||||
| 		LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| @ -440,11 +441,7 @@ IDESPEC:	IN	A,(SLOT3) | ||||
| 		;		 | ||||
| 		LD	A,(IDENTIFY_DEVICE_BUFFER.NumSectorsPerTrack) | ||||
| 		LD	(IY+IDE.HDD_INIT_TABLE.SectorsPerTrack),A | ||||
| 		IF IDE_Optimization | ||||
| 		 LD	B,high IDE.Write.Counter	 | ||||
| 		ELSE | ||||
|  		 LD	BC,IDE.Write.Counter | ||||
| 		ENDIF | ||||
| 		LD	B,high IDE.Write.Counter	 | ||||
| 		OUT	(C),A | ||||
| 		LD	A,IDE.CMD.ATA.InitializeDeviceParameters | ||||
| 		CALL	IDE_CMD | ||||
| @ -460,7 +457,8 @@ IDESPEC:	IN	A,(SLOT3) | ||||
| 		; | ||||
| 		LD	(IY+IDE.HDD_INIT_TABLE.SectorsPerCylinderLow),L | ||||
| 		LD	(IY+IDE.HDD_INIT_TABLE.SectorsPerCylinderHigh),H | ||||
| .END:		; [x] save hdd parameters to cmos for "setup" in settings | ||||
| .END:		RES	1,(IY + IDE.HDD_INIT_TABLE.MediaParameters)	; [ ] removable media | ||||
| 		; [x] save hdd parameters to cmos for "setup" in settings | ||||
| 		 LD	A,(IY+IDE.HDD_INIT_TABLE.DRV_Flags)	; for save to cmos in GETPARM | ||||
| 		; | ||||
| 		EX	AF,AF' | ||||
| @ -474,19 +472,22 @@ IDESPEC:	IN	A,(SLOT3) | ||||
| 		LD	HL,ICHANEL | ||||
| 		OR	(HL) | ||||
| 		LD	(IY+IDE.HDD_INIT_TABLE.DRV_Flags),A | ||||
| 		; | ||||
| 		; | ||||
| 		;   ¢á直© á«ãç © | ||||
| 		 LD	(IY+IDE.HDD_INIT_TABLE.MediaParameters),%0000'0001 | ||||
| 		 LD	B,100	; áçñâ稪 ¯®¯ë⮪ (1 ¯®¯ë⪠ - 1 HALT) | ||||
| .get_error_loop: PUSH	BC | ||||
| 		 ;LD	HL,ATAPI_CMD_PACKET.TEST_UNIT_READY | ||||
| 		 ;CALL	EXEC_PACKET_COMMAND.start | ||||
| 		 CALL	EXEC_TEST_CMD | ||||
| 		 CALL	EXEC_TEST_CMD  | ||||
| 		 POP	BC | ||||
| 		 JR	NC,.s_size | ||||
| 		 ; | ||||
| 		 RES	1,(IY + IDE.HDD_INIT_TABLE.MediaParameters)	; [ ] removable media | ||||
| 		 CP	BIOS.Error.ATAPI.UnitAttention | ||||
| 		 JR	Z,IDESPEC.END | ||||
| 		 JR	Z,PARSE_IdentifyDevice.END	;!TEST ;!FIXIT ZIP bug | ||||
| 		 ;JR	Z,.TEST_SET | ||||
| 
 | ||||
| 		 ; | ||||
| 		 HALT | ||||
| 		 DJNZ	.get_error_loop | ||||
| @ -508,9 +509,59 @@ 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 | ||||
| 		; | ||||
| 		JR	IDESPEC.END | ||||
| 		JR	PARSE_IdentifyDevice.END	;!TEST ;!FIXIT ZIP bug | ||||
| 		; | ||||
| /* | ||||
| ;====;	;!TEST ;!FIXIT ZIP bug | ||||
| .TEST_SET:	LD	HL,.MODE_SENSE | ||||
| 		LD	DE,SYS_PAGE.MS_BPB	; ¯à®á⮠㦥 ¡ë« ¡ãä¥à | ||||
| 		LD	BC,BIOS.DRV_EXTENDED.ATAPI_Custom_PCMD | ||||
| 		CALL	ATAPI_CUSTOM_CMD | ||||
| 		JR	NC,.OK_DONE | ||||
| 		; | ||||
| 		LD	A,COLORS.CGA.BORDER.CYAN | ||||
| 		OUT	(BorderColor),A | ||||
| 		JR	.go_exit | ||||
| 		; | ||||
| .OK_DONE:	LD	A,(SYS_PAGE.MS_BPB + 2) | ||||
| 		AND	A | ||||
| 		JR	NZ,.go_exit | ||||
| 		; | ||||
| 		LD	(SYS_PAGE.MS_BPB + 10),A | ||||
| 		LD	HL,(SYS_PAGE.MS_BPB) | ||||
| 		LD	(.MODE_SELECT.Size),HL | ||||
| 		LD	HL,.MODE_SELECT | ||||
| 		LD	DE,SYS_PAGE.MS_BPB	; ¯à®á⮠㦥 ¡ë« ¡ãä¥à | ||||
| 		LD	BC,BIOS.DRV_EXTENDED.ATAPI_Custom_PCMD | ||||
| 		CALL	ATAPI_CUSTOM_CMD | ||||
| 		JR	NC,.go_exit		 | ||||
| 		; | ||||
| 		LD	A,COLORS.CGA.BORDER.GREEN | ||||
| 		OUT	(BorderColor),A | ||||
| 		;JR	.go_exit | ||||
| 		; | ||||
| .go_exit:	AND	A | ||||
| 		JP	PARSE_IdentifyDevice.END | ||||
| 		; | ||||
| 		; | ||||
| 
 | ||||
| .MODE_SENSE:		BYTE	#5A | ||||
| 			BYTE	#08 | ||||
| .MODE_SENSE.Page:	BYTE	#08	;bit7..6 - Page Control, bit5..0 - Page Code | ||||
| 			BLOCK	4,0 | ||||
| 			BYTE	#02,#00 | ||||
| 			BLOCK	3,0 | ||||
| 			; | ||||
| .MODE_SELECT:		BYTE	#55 | ||||
| 			BYTE	#08 | ||||
| .MODE_SELECT.Page:	BYTE	#08	;bit7..6 - Page Control, bit5..0 - Page Code | ||||
| 			BLOCK	4,0 | ||||
| .MODE_SELECT.Size:	BYTE	#02,#00 | ||||
| 			BLOCK	3,0 | ||||
| 			;		 | ||||
| ;====;	;!TEST		 | ||||
| */		; | ||||
| /////////////////////////////////////////////////////////////////////[^] | ||||
| 
 | ||||
| 
 | ||||
| @ -761,7 +812,7 @@ GETPARAM:	LD	HL,PAUSES.WAIT.IDE | ||||
| 		LD	HL,IDENTIFY_DEVICE_BUFFER | ||||
| 		INIR  | ||||
| 		INIR  | ||||
| 		CALL	IDESPEC | ||||
| 		CALL	PARSE_IdentifyDevice | ||||
| 		; [x] save hdd parameters to cmos for "setup" in settings | ||||
| 		CALL	SaveToCMOS | ||||
| 		AND	A | ||||
|  | ||||
| @ -17,32 +17,38 @@ INT_POINTER:		WORD    0 | ||||
|    ENDIF | ||||
|  ENDIF | ||||
| 
 | ||||
| INT_HANDLER: | ||||
| 	PUSH	AF | ||||
| 	EX	AF,AF' | ||||
| 	PUSH	AF | ||||
| 	PUSH	BC | ||||
| 	PUSH	DE | ||||
| 	PUSH	HL | ||||
| 	EXX  | ||||
| 	PUSH	BC | ||||
| 	PUSH	DE | ||||
| 	PUSH	HL | ||||
| 	PUSH	IX | ||||
| 	PUSH	IY | ||||
| 	CALL	KEYSCAN | ||||
| 	POP	IY | ||||
| 	POP	IX | ||||
| 	POP	HL | ||||
| 	POP	DE | ||||
| 	POP	BC | ||||
| 	EXX  | ||||
| 	POP	HL | ||||
| 	POP	DE | ||||
| 	POP	BC | ||||
| 	POP	AF | ||||
| 	EX	AF,AF' | ||||
| 	POP	AF | ||||
| 	EI  | ||||
| 	RETI  | ||||
| INT_HANDLER:	PUSH	AF | ||||
| 		EX	AF,AF' | ||||
| 		PUSH	AF | ||||
| 		PUSH	BC | ||||
| 		PUSH	DE | ||||
| 		PUSH	HL | ||||
| 		EXX  | ||||
| 		PUSH	BC | ||||
| 		PUSH	DE | ||||
| 		PUSH	HL | ||||
| 		PUSH	IX | ||||
| 		PUSH	IY | ||||
| 		CALL	KEYSCAN | ||||
| 		; | ||||
| 		IF	STARTUP_SND | ||||
| 		 SCF | ||||
| .sndSwitch:	 CCF		; SCF/CCF | ||||
| 		 CALL	C,STARTUP_SOUND | ||||
| 		ENDIF | ||||
| 		; | ||||
| 		POP	IY | ||||
| 		POP	IX | ||||
| 		POP	HL | ||||
| 		POP	DE | ||||
| 		POP	BC | ||||
| 		EXX  | ||||
| 		POP	HL | ||||
| 		POP	DE | ||||
| 		POP	BC | ||||
| 		POP	AF | ||||
| 		EX	AF,AF' | ||||
| 		POP	AF | ||||
| 		EI  | ||||
| 		RETI  | ||||
| ; | ||||
| @ -554,15 +554,17 @@ RESTART_ID: | ||||
| .str:	DZ	"RESTART" | ||||
| .size   EQU     $ - RESTART_ID.str | ||||
| 
 | ||||
| Start_again: | ||||
| 	ld sp,STACK-2 | ||||
| START: | ||||
| 	DI  | ||||
| 	PUSH	AF | ||||
| 	XOR	A | ||||
| 	LD	(ERRSUM),A | ||||
| 	LD	(ERRSUM.ErrDateTime),A | ||||
| 
 | ||||
| Start_again:	LD	SP,STACK-2 | ||||
| START:		DI  | ||||
| 		PUSH	AF | ||||
| 		XOR	A | ||||
| 		LD	(ERRSUM),A | ||||
| 		LD	(ERRSUM.ErrDateTime),A | ||||
| 		; | ||||
| 		LD	A,R	; reg R bit7 - ¯à¨§ ª § ¯ã᪠ á ®âà ¡®âª®© «® ¤¥à  ª®äë (¨§ SET_CONFIG_ID) | ||||
| 		LD	(LOGOTYPE.playSnd),A | ||||
| 		; | ||||
| ;	LD	C,#97 | ||||
| ;	RST_to_BIOS_18 | ||||
| ;	XOR	A | ||||
| @ -1598,7 +1600,9 @@ ElementsBuffer: | ||||
| .DownCenter:       BYTE "Á"                     ; DC - DownCenter | ||||
| .Size              EQU  $-ElementsBuffer | ||||
| ; | ||||
| 
 | ||||
|  IF	STARTUP_SND | ||||
|   INCLUDE	'startup_sound.asm' | ||||
|  ENDIF | ||||
|  INCLUDE	'VIDEO_IO.asm' | ||||
|  INCLUDE	'AUTOIDE.asm' | ||||
|  INCLUDE	'SETTINGS.asm' | ||||
|  | ||||
| @ -290,22 +290,33 @@ PRSYM:	LD      B,1 | ||||
| ////////////////////	LOGO	\\\\\\\\\\\\\\\\\\\\ | ||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| LOGOTYPE:	CALL	SHOW_LOGO | ||||
| 		; | ||||
| 		IF	STARTUP_SND | ||||
| .playSnd+1:	 LD	A,#80 | ||||
| 		 RLA | ||||
| 		 JR	NC,.noSound | ||||
| 		 ; | ||||
| 		 LD	A,#37		; opcode SCF, play sound on | ||||
| 		 LD	(INT_HANDLER.sndSwitch),A | ||||
| .noSound:	 ; | ||||
| 		ENDIF | ||||
| 		; | ||||
| 		LD	BC,CMOS_CELL.BootUpParams.Mask.StartDelay | ||||
| 		CALL	GET_CMOS_VALUE | ||||
| 		OR	A | ||||
| 		JR	Z,.EASYDLY	; Delay average | ||||
| 		JR	Z,.MinDelay | ||||
| 		DEC	A | ||||
| 		JR	Z,.SKIPDLY	; Delay disabled | ||||
| 		JR	Z,.AverageDelay | ||||
| 	; Delay enabled | ||||
| 		LD	B,LOGO_DELAY_NORM | ||||
| .loop		EI  | ||||
| 		push    bc | ||||
| 		HALT  | ||||
| 		CALL    go_setup | ||||
| 		CALL	go_setup | ||||
| 		pop     bc | ||||
| 		DJNZ	.loop | ||||
| 	; Delay average | ||||
| .SKIPDLY:	LD	B,LOGO_DELAY_MAX | ||||
| .AverageDelay:	LD	B,LOGO_DELAY_MAX | ||||
| .MMA:   	PUSH	BC | ||||
| 		EI  | ||||
| 		HALT  | ||||
| @ -323,12 +334,17 @@ LOGOTYPE:	CALL	SHOW_LOGO | ||||
| 		DI  | ||||
|         	CALL    WIN_OPEN.SCR1 | ||||
| 		; | ||||
| 		IF	STARTUP_SND | ||||
| 		 LD	A,#3F		; opcode CCF, play sound off | ||||
| 		 LD	(INT_HANDLER.sndSwitch),A		 | ||||
| 		ENDIF | ||||
| 		; | ||||
| 		LD	DE,0 | ||||
| 		LD	HL,#0920	;!HARDCODE LOGOTYPE SIZE | ||||
|         	LD      B,7 | ||||
|         	JP      LP_CLS_WIN | ||||
| 	; Delay disabled | ||||
| .EASYDLY:	LD	B,LOGO_DELAY_MIN | ||||
| .MinDelay:	LD	B,LOGO_DELAY_MIN | ||||
| .loop2:		EI  | ||||
| 		HALT  | ||||
| 		DJNZ	.loop2 | ||||
|  | ||||
							
								
								
									
										215
									
								
								src/bios/rom/SETUP/startup_sound.asm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										215
									
								
								src/bios/rom/SETUP/startup_sound.asm
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,215 @@ | ||||
| ; CODE BY €«¥ªá ¤à -=TmK deMarche=- | ||||
| ; play frame | ||||
| ; use: af,hl,de,bc  251 | ||||
| STARTUP_SOUND:	LD	HL,.BYTE_POS | ||||
| 		LD	A,(HL) | ||||
| 		LD	C,SP_SND.AY | ||||
| 		CP	.toneDataSize + 1 | ||||
| 		JR	C,.play | ||||
|     		;-- mus off | ||||
| 		XOR	A | ||||
| 		LD	E,A | ||||
| .offLp:		LD	B,high SP_SND.AY.CTRL | ||||
| 		OUT	(C),A | ||||
| 		LD	B,high SP_SND.AY.DATA | ||||
| 		OUT	(C),E | ||||
| 		INC	A | ||||
| 		CP	15 | ||||
| 		JR	NZ,.offLp | ||||
| 		RET | ||||
| 		; | ||||
| .play:		LD	DE,#0700+56 | ||||
| 		LD	B,high SP_SND.AY.CTRL | ||||
| 		OUT	(C),D | ||||
| 		LD	B,high SP_SND.AY.DATA | ||||
| 		OUT	(C),E | ||||
| 		CP	33 | ||||
| 		JR	NC,.playVol | ||||
| 		AND	3 | ||||
| 		JR	NZ,.playVol | ||||
|     		;--- play tone | ||||
| 		LD	HL,(.WORD_TONE) | ||||
| 		;A=0 | ||||
| .playToneLp:	LD	B,high SP_SND.AY.CTRL | ||||
| 		OUT	(C),A | ||||
| 		LD	B,high SP_SND.AY.DATA | ||||
| 		OUTI | ||||
| 		INC	A | ||||
| 		CP	6 | ||||
| 		JR	NZ,.playToneLp | ||||
| 		; | ||||
| 		LD	(.WORD_TONE),HL | ||||
| .playVol:	LD	HL,(.WORD_VOL) | ||||
| 		LD	A,8 | ||||
| 		LD	E,(HL) | ||||
| 		INC	HL | ||||
| .playVolLp:	LD	B,high SP_SND.AY.CTRL | ||||
| 		OUT	(C),A | ||||
| 		LD	B,high SP_SND.AY.DATA | ||||
| 		OUT	(C),E | ||||
| 		INC	A | ||||
| 		CP	11 | ||||
| 		JR	NZ,.playVolLp | ||||
| 		; | ||||
| 		LD	(.WORD_VOL),HL | ||||
| 		LD	HL,.BYTE_POS | ||||
| 		INC	(HL) | ||||
| 		RET | ||||
| ;----------------------------------------------------------------------- | ||||
| .BYTE_POS:	DB	0 | ||||
| .WORD_VOL:	DW	.volData | ||||
| .WORD_TONE:	DW	.toneData | ||||
| ;----------------------------------------------------------------------- | ||||
| .volData:	;DB	11,10,08,06,08,07,06,05 | ||||
| 		;DB	12,11,09,07,09,08,07,06 | ||||
| 		DB	13,12,10,08,09,08,07,06 | ||||
| 		DB	13,12,10,08,09,08,07,06 | ||||
| 		DB	13,12,10,08,09,08,07,06 | ||||
| 		DB	12,12,10,08,07,06,05,04 | ||||
| 		DB	07,06,05,04,03,02,01,00 | ||||
| 		DB	05,04,03,02,01,00,00,00 | ||||
| 		DB	04,03,02,02,01,00,00,00 | ||||
| 		DB	02,02,01,01,00,00,00,00 | ||||
| 
 | ||||
| .toneData:	DB	68,3,136,6,162,1 | ||||
| 		DB	136,6,136,6,68,3 | ||||
| 		DB	57,1,229,4,114,2 | ||||
| 		;DB	68,3,229,4,162,1 | ||||
| 		;DB	46,2,92,4,23,1 | ||||
| 		;DB	57,1,92,4,114,2 | ||||
| 		;DB	209,0,68,3,162,1 | ||||
| 		;DB	46,2,68,3,23,1 | ||||
| 		;DB	209,0,68,3,162,1 | ||||
| .toneDataSize	EQU	$ - .toneData | ||||
| 
 | ||||
| .codeEnd:	DISPLAY	"StartUp Sound size:	",/A,.codeEnd - STARTUP_SOUND | ||||
| 
 | ||||
| ;     savesna	"startup_sound.sna", #8000 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| /* | ||||
| 
 | ||||
| 
 | ||||
|  MODULE	STARTUP_SOUND | ||||
| 	DEFINE	SND_VARIANT 2	; 0, 1, 2 | ||||
| 
 | ||||
| 	IF	SND_VARIANT == 0 | ||||
| 		DEFINE	SND_Const1 15 | ||||
| 		DEFINE	SND_Const2 7 | ||||
| 		; | ||||
| 	ELSEIF	SND_VARIANT == 1 | ||||
| 		DEFINE	SND_Const1 15 | ||||
| 		DEFINE	SND_Const2 7 | ||||
| 		; | ||||
| 	ELSEIF	SND_VARIANT == 2 | ||||
| 		DEFINE	SND_Const1 14 | ||||
| 		DEFINE	SND_Const2 6 | ||||
| 	ENDIF | ||||
| 
 | ||||
| codeBegin:	LD	A,SND_Const1 | ||||
| 		LD	HL,.volData | ||||
| 		LD	DE,.sndData | ||||
| .lp:		CALL	.snd | ||||
| 		CALL	.vol | ||||
| 		CALL	.vol | ||||
| 		CALL	.vol | ||||
| 		DEC	A | ||||
| 		JP	NZ,.lp | ||||
|    		;-- | ||||
| 		LD	DE,#07ff | ||||
| 		LD	B,E | ||||
| 		OUT	(C),D | ||||
| 		LD	B,#bf | ||||
| 		OUT	(C),E | ||||
| 		RET | ||||
| ;---------------- | ||||
| .snd:		CALL	.vol | ||||
| 		CP	SND_Const2 | ||||
| 		RET	C | ||||
| 		; | ||||
| .sndEnd:	EX	AF,AF | ||||
| 		EX	DE,HL | ||||
| 		PUSH	DE | ||||
| 		XOR	A | ||||
| .sndLp:		LD	B,#ff | ||||
| 		OUT	(C),A | ||||
| 		LD	B,#bf | ||||
| 		OUTI | ||||
| 		INC	A | ||||
| 		CP	6 | ||||
| 		JR	NZ,.sndLp | ||||
| 		POP	DE | ||||
| 		EX	DE,HL | ||||
| 		EX	AF,AF | ||||
| 		RET | ||||
| ;---------------- | ||||
| .vol:		;EI | ||||
| 		;HALT | ||||
| 		EX	AF,AF | ||||
| 		PUSH	DE | ||||
| 		LD	BC,#fffd | ||||
| 		LD	DE,#0700+56 | ||||
| 		OUT	(C),D | ||||
| 		LD	B,#bf | ||||
| 		OUT	(C),E | ||||
| 		LD	A,8 | ||||
| 		LD	E,(HL) | ||||
| 		INC	HL | ||||
| .volLp:		LD	B,#ff | ||||
| 		OUT	(C),A | ||||
| 		LD	B,#bf | ||||
| 		OUT	(C),E | ||||
| 		INC	A | ||||
| 		CP	11 | ||||
| 		JR	NZ,.volLp | ||||
| 		POP	DE | ||||
| 		EX	AF,AF | ||||
| 		RET | ||||
| ;---------------- | ||||
| .volData: | ||||
| 	IF	SND_VARIANT == 0 | ||||
| 		DB	13,12,10,08,09,08,07,06 | ||||
| 		DB	13,12,10,08,09,08,07,06 | ||||
| 		DB	13,12,10,08,09,08,07,06 | ||||
| 		DB	12,12,10,08,07,06,05,04 | ||||
| 		DB	07,06,05,04,03,02,01,00 | ||||
| 		DB	05,04,03,02,01,00,00,00 | ||||
| 		DB	04,03,02,02,01,00,00,00 | ||||
| 		DB	02,02,01,01,00,00,00,00 | ||||
| 		; | ||||
| 	ELSEIF	SND_VARIANT == 1 | ||||
| 		DB	11,10,08,06,08,07,06,05 | ||||
| 		DB	12,11,09,07,09,08,07,06 | ||||
| 		DB	13,12,10,08,09,08,07,06 | ||||
| 		DB	13,12,10,08,07,06,05,04 | ||||
| 		DB	08,07,06,05,04,03,02,01 | ||||
| 		DB	06,05,04,03,02,01,00,00 | ||||
| 		DB	04,04,03,02,01,00,00,00 | ||||
| 		DB	02,02,01,01,00,00,00,00 | ||||
| 	; | ||||
| 	ELSEIF	SND_VARIANT == 2 | ||||
| 		DB	15,14,13,10,10,09,09,07 | ||||
| 		DB	15,14,13,10,10,09,09,07 | ||||
| 		DB	15,14,13,10,10,09,09,07 | ||||
| 		DB	15,14,13,10,07,06,05,04 | ||||
| 		DB	08,07,06,05,04,03,02,01 | ||||
| 		DB	06,05,04,03,02,01,00,00 | ||||
| 		DB	04,03,02,01,00,00,00,00 | ||||
| 	ENDIF | ||||
| 
 | ||||
| 
 | ||||
| .sndData:	DB	68,3,136,6,162,1 | ||||
| 		DB	136,6,136,6,68,3 | ||||
| 		DB	57,1,229,4,114,2 | ||||
| 		DB	68,3,229,4,162,1 | ||||
| 		DB	46,2,92,4,23,1 | ||||
| 		DB	57,1,92,4,114,2 | ||||
| 		DB	209,0,68,3,162,1 | ||||
| 		DB	46,2,68,3,23,1 | ||||
| 		DB	209,0,68,3,162,1 | ||||
| 
 | ||||
| codeEnd:	DISPLAY	"StartUp Sound size:	",/A,codeEnd-codeBegin | ||||
| 
 | ||||
| 	ENDMODULE | ||||
| */ | ||||
| @ -17,6 +17,7 @@ BETA_RC		EQU			2			; | ||||
|  DEFINE		LOGO_DELAY_NORM		100			; | ||||
|  DEFINE		LOGO_DELAY_MAX		130			; | ||||
| ;----------------------------[ TEST ]---------------------------; | ||||
|  DEFINE		STARTUP_SND		1			; | ||||
|  DEFINE		ERROR_POST_5		0			; ¢¨áãâì   ®è¨¡ª¥ ¢ POST 5 | ||||
|  DEFINE		TEST_INT		1			; ’¥áâ®¢ë© ®¡à ¡®â稪 ¯®«ì§®¢ â¥«ì᪮£® INT | ||||
|  DEFINE		NEW_FEATURE		0			; !TODO ¯ãªâë ¢ á¥â ¯ | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tolik
						Tolik