Settings: Load ZX ROMS
This commit is contained in:
		
							parent
							
								
									e551861939
								
							
						
					
					
						commit
						c1011079f6
					
				| @ -1 +1 @@ | ||||
| Subproject commit f3ac185e2fe2d1e76f8e54c3c1f421a99fafdd62 | ||||
| Subproject commit 17997278e4aea455a68532547beb561fd216ad19 | ||||
										
											Binary file not shown.
										
									
								
							| @ -797,129 +797,126 @@ set_config: | ||||
| 
 | ||||
| ;[---------------------------------------------------------------------] | ||||
| 
 | ||||
| 	MODULE Reset_Handler | ||||
| start:	DI | ||||
| 	IN	A,(SLOT3) | ||||
| 	PUSH	AF | ||||
| 	MODULE	Reset_Handler | ||||
| start:		DI | ||||
| 		IN	A,(SLOT3) | ||||
| 		PUSH	AF | ||||
| ;----[¯¥à¥å¢ â soft reset #EE port]----- | ||||
| Check_EE_Port: | ||||
| 	LD	A,ACEX.RET_PORT | ||||
| 	LD	B,0 | ||||
| 	;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23 | ||||
| 	 ;LD	C,BIOS.SET_PORTS	 | ||||
| 	 ;CALL	@ToBIOS_3D13				; ¯¥à¥ãáâ ®¢¨âì ¢ãâà. ¯®àâ #EE | ||||
| 	 CALL	SET_PORTS | ||||
| 	; | ||||
| 	LD	A,B | ||||
| 	AND	A | ||||
| 	JR	Z,Check_Spec_Page | ||||
| 	; | ||||
| 	OUT	(SLOT3),A						; Set restart page | ||||
| Check_EE_Port:	LD	A,ACEX.RET_PORT | ||||
| 		LD	B,0 | ||||
| 		;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23 | ||||
| 	 	 ;LD	C,BIOS.SET_PORTS	 | ||||
| 	 	 ;CALL	@ToBIOS_3D13					; ¯¥à¥ãáâ ®¢¨âì ¢ãâà. ¯®àâ #EE | ||||
| 		 CALL	SET_PORTS | ||||
| 		; | ||||
| 		LD	A,B | ||||
| 		AND	A | ||||
| 		JR	Z,Check_Spec_Page | ||||
| 		; | ||||
| 		OUT	(SLOT3),A					; Set restart page | ||||
| .After_Hard_Rst: | ||||
| 	LD	HL,(Spec_Page.RET_addr)					; prog address | ||||
| 	LD	A,(Spec_Page.page_0)					; PAGE0 | ||||
| 	OUT	(SLOT0),A | ||||
| 	LD	A,(Spec_Page.page_1)					; PAGE1 | ||||
| 	OUT	(SLOT1),A | ||||
| 	LD	A,(Spec_Page.page_2)					; PAGE2 | ||||
| 	OUT	(SLOT2),A | ||||
| 	LD	A,(Spec_Page.Reload_Version) | ||||
| 	CP	#FF | ||||
| 	JR	Z,.JPHL	; olg logic | ||||
| 	; new logic | ||||
| .ver_2:	EXX | ||||
| 	 LD	HL,(Spec_Page.Stack_Point) | ||||
| 	 LD	SP,HL | ||||
| 	EXX | ||||
| 	AND	A | ||||
| 	LD	A,#FF | ||||
| 	LD	(Spec_Page.Reload_Version),A | ||||
| 	LD	A,(Spec_Page.page_3)					; PAGE3 | ||||
| 	OUT	(SLOT3),A | ||||
| 	JR	Z,.JPHL | ||||
| 	PUSH	HL | ||||
| 	JP	EXP_FNS_2_RET | ||||
| .JPHL:	JP	(HL) | ||||
| 		LD	HL,(Spec_Page.RET_addr)				; prog address | ||||
| 		LD	A,(Spec_Page.page_0)				; PAGE0 | ||||
| 		OUT	(SLOT0),A | ||||
| 		LD	A,(Spec_Page.page_1)				; PAGE1 | ||||
| 		OUT	(SLOT1),A | ||||
| 		LD	A,(Spec_Page.page_2)				; PAGE2 | ||||
| 		OUT	(SLOT2),A | ||||
| 		LD	A,(Spec_Page.Reload_Version) | ||||
| 		CP	#FF | ||||
| 		JR	Z,.JPHL	; olg logic | ||||
| 		; new logic | ||||
| .ver_2:		EXX | ||||
| 		LD	HL,(Spec_Page.Stack_Point) | ||||
| 		LD	SP,HL | ||||
| 		EXX | ||||
| 		AND	A | ||||
| 		LD	A,#FF | ||||
| 		LD	(Spec_Page.Reload_Version),A | ||||
| 		LD	A,(Spec_Page.page_3)				; PAGE3 | ||||
| 		OUT	(SLOT3),A | ||||
| 		JR	Z,.JPHL | ||||
| 		PUSH	HL | ||||
| 		JP	EXP_FNS_2_RET | ||||
| .JPHL:		JP	(HL) | ||||
| ; | ||||
| ;--[¯¥à¥å¢ â soft/hard reset #41 page]-- | ||||
| Check_Spec_Page: | ||||
| 	LD	A,Spec_Page | ||||
| 	OUT	(SLOT3),A | ||||
| 	; Check for hardreset flag | ||||
| 	LD	A,(Spec_Page.flag_R) | ||||
| 	CP	'R' | ||||
| 	JR	NZ,No_Reset_handlers | ||||
| 	LD	A,(Spec_Page.flag_S) | ||||
| 	CP	'S' | ||||
| 	JR	NZ,No_Reset_handlers | ||||
| 	LD	A,(Spec_Page.flag_T) | ||||
| 	CP	'T' | ||||
| 	JR	NZ,No_Reset_handlers | ||||
| 	; | ||||
| 	XOR	A | ||||
| 	LD	(Spec_Page.flag_R),A | ||||
| 	JR	Check_EE_Port.After_Hard_Rst | ||||
| 	; | ||||
| 
 | ||||
| 		LD	A,Spec_Page | ||||
| 		OUT	(SLOT3),A | ||||
| 		; Check for hardreset flag | ||||
| 		LD	A,(Spec_Page.flag_R) | ||||
| 		CP	'R' | ||||
| 		JR	NZ,No_Reset_handlers | ||||
| 		LD	A,(Spec_Page.flag_S) | ||||
| 		CP	'S' | ||||
| 		JR	NZ,No_Reset_handlers | ||||
| 		LD	A,(Spec_Page.flag_T) | ||||
| 		CP	'T' | ||||
| 		JR	NZ,No_Reset_handlers | ||||
| 		; | ||||
| 		XOR	A | ||||
| 		LD	(Spec_Page.flag_R),A | ||||
| 		JR	Check_EE_Port.After_Hard_Rst | ||||
| 		; | ||||
| ;--------------------------------------- | ||||
| No_Reset_handlers: | ||||
| 	; Check ZX ROMS Loaded | ||||
| 	LD	A,(Spec_Page.flag_Z) | ||||
| 	CP	'Z' | ||||
| 	JR	NZ,.Load_ZXROMS | ||||
| 	LD	A,(Spec_Page.flag_X) | ||||
| 	CP	'X' | ||||
| 	JR	NZ,.Load_ZXROMS | ||||
| 	; [x] 31/12/23 ¯®¤áâà å®¢ª  ®â ¥¤®ãâ¥çª¨ ¯ ¬ï⨠| ||||
| 	 LD	A,R | ||||
| 	 AND	#80 | ||||
| 	 JR	Z,No_Need_To_Load_ZXROMS | ||||
| .Load_ZXROMS: | ||||
| 	 XOR	A | ||||
| 	 LD	R,A | ||||
| 	; | ||||
| 	; Load ZX ROM's | ||||
| init_rom_address        EQU #8200                                       ;!HARDCODE | ||||
| 	ld	hl,init_zx_roms | ||||
| 	ld	de,init_rom_address | ||||
| 	ld	bc,init_zx_roms.length | ||||
| 	ldir | ||||
| 	; | ||||
| 	call	init_rom_address | ||||
| 	; | ||||
| 	LD	HL,#C000 | ||||
| 	LD	DE,#C001 | ||||
| 	LD	BC,#3FFF | ||||
| 	LD	(HL),C | ||||
| 	LDIR								; § ¡¨âì FF- ¬¨ | ||||
|         ; áâ ¢¨¬ ¬¥âªã ¥á«¨ ¯à®£à㧨«¨ <20>‡“ ᯥªâà㬠 | ||||
| 	DEC	DE		; Spec_Page.flag_X | ||||
|         LD	A,'X' | ||||
|         LD	(DE),A | ||||
|         DEC	DE		; Spec_Page.flag_Z | ||||
|         LD	A,'Z' | ||||
|         LD	(DE),A      | ||||
| 
 | ||||
| 	; ‡ £«ã誠 ¤«ï áâà ¨æë #41   ¢á直© ¯®¦ àë© | ||||
| 	LD HL,PROG_NO_ROM | ||||
| 	LD DE,#C000 + Spec_Page.no_zx_rom | ||||
| 	LD BC,PROG_NO_ROM.size | ||||
| 	LDIR | ||||
| 	; | ||||
| 	LD HL,RAM_BIOS_PROG | ||||
| 	LD DE,#C000 + Spec_Page.to_bios | ||||
| 	LD BC,RAM_BIOS_PROG.Length | ||||
| 	LDIR | ||||
| No_Reset_handlers:/* | ||||
| 		; Check ZX ROMS Loaded | ||||
| 		LD	A,(Spec_Page.flag_Z) | ||||
| 		CP	'Z' | ||||
| 		JR	NZ,.Load_ZXROMS | ||||
| 		LD	A,(Spec_Page.flag_X) | ||||
| 		CP	'X' | ||||
| 		JR	NZ,.Load_ZXROMS | ||||
| 		; [x] 31/12/23 ¯®¤áâà å®¢ª  ®â ¥¤®ãâ¥çª¨ ¯ ¬ï⨠| ||||
| 		LD	A,R | ||||
| 		AND	#80 | ||||
| 		JR	Z,No_Need_To_Load_ZXROMS | ||||
| .Load_ZXROMS:	XOR	A | ||||
| 		LD	R,A | ||||
| 		; | ||||
| 		; Load ZX ROM's | ||||
| init_rom_address EQU	#8200						;!HARDCODE | ||||
| 		; | ||||
| 		LD	HL,init_zx_roms | ||||
| 		LD	DE,init_rom_address | ||||
| 		LD	BC,init_zx_roms.length | ||||
| 		LDIR | ||||
| 		; | ||||
| 		CALL	init_rom_address | ||||
| 		; | ||||
| 		LD	HL,#C000 | ||||
| 		LD	DE,#C001 | ||||
| 		LD	BC,#3FFF | ||||
| 		LD	(HL),C | ||||
| 		LDIR							; § ¡¨âì FF- ¬¨ | ||||
|         	; áâ ¢¨¬ ¬¥âªã ¥á«¨ ¯à®£à㧨«¨ <20>‡“ ᯥªâà㬠 | ||||
| 		DEC	DE		; Spec_Page.flag_X | ||||
| 		LD	A,'X' | ||||
| 		LD	(DE),A | ||||
| 		DEC	DE		; Spec_Page.flag_Z | ||||
| 		LD	A,'Z' | ||||
| 		LD	(DE),A | ||||
| 		; ‡ £«ã誠 ¤«ï áâà ¨æë #41   ¢á直© ¯®¦ àë© | ||||
| 		LD	HL,PROG_NO_ROM | ||||
| 		LD	DE,#C000+Spec_Page.no_zx_rom | ||||
| 		LD	BC,PROG_NO_ROM.size | ||||
| 		LDIR | ||||
| 		; | ||||
| 		LD	HL,RAM_BIOS_PROG | ||||
| 		LD	DE,#C000+Spec_Page.to_bios | ||||
| 		LD	BC,RAM_BIOS_PROG.Length | ||||
| 		LDIR | ||||
| 		*/ | ||||
| No_Need_To_Load_ZXROMS: | ||||
| 	POP	AF | ||||
| 	OUT	(SLOT3),A | ||||
| 	; | ||||
| 		POP	AF | ||||
| 		OUT	(SLOT3),A | ||||
| ;-------------------------------------------------------------------------------------------------------------------; | ||||
| ;!TODO ᤥ« âì ¢ë¡®à ¢ Setup, çâ® £à㧨âì ¢ v<>‡“ ¯à¨ áâ àâ¥. ‚ à¨ âë: | ||||
| ;	1 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ áâ à⥠¥á«¨ ¥â ä« £  ZX | ||||
| ;	2 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ ª ¦¤®¬ ¯¥à¥§ ¯ã᪥ (¬®¦¥â ¡ëâì ®¯ á®) | ||||
| ;	3 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 ª ª ¢ 3.04 | ||||
| ;	4 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 â ª, ç⮡ ª®¤ ¢ ¥© ¯®¤£à㦠« <20>‡“ ᯥªâà㬠 ¯à¨ ®¡à é¥¨¨ | ||||
| ;[ ]	0 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 ª ª ¢ 3.04 | ||||
| ;[ ]	1 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ áâ à⥠¥á«¨ ¥â ä« £  ZX | ||||
| ;[ ]	2 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ ª ¦¤®¬ ¯¥à¥§ ¯ã᪥ (¬®¦¥â ¡ëâì ®¯ á®) | ||||
| ;[ ]	3 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 â ª, ç⮡ ª®¤ ¢ ¥© ¯®¤£à㦠« <20>‡“ ᯥªâà㬠 ¯à¨ ®¡à é¥¨¨ | ||||
| ;-------------------------------------------------------------------------------------------------------------------; | ||||
| 	ENDMODULE | ||||
| ; | ||||
| @ -1168,6 +1165,7 @@ ZG_ADDRESS:      INCLUDE  'FONT.ASM' | ||||
| ; | ||||
| ; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ [___FOR ZX-MODE___] _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ; | ||||
| 
 | ||||
| /* | ||||
| ; | ||||
| ;------------------------[copy zx-roms to zx-pages]---------------------; | ||||
| ; SLOT0 - ROM 8, sys_port - on. | ||||
| @ -1245,8 +1243,7 @@ init_zx_roms: | ||||
| 	ENT | ||||
| .length	EQU $-init_zx_roms | ||||
| ;-----------------------------------------------------------------------; | ||||
| ; | ||||
| 
 | ||||
| ;*/ | ||||
| 
 | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;!TODO § ¤¥©á⢮¢ âì | ||||
|  | ||||
| @ -520,6 +520,7 @@ START: | ||||
| 
 | ||||
| 	CALL	TRQUICK | ||||
| 	CALL	FINSTAL | ||||
| 	CALL	ZXMODE_SETUP | ||||
| 	CALL	CLEARM | ||||
| 	CALL	RESCREEN | ||||
| 
 | ||||
| @ -1082,59 +1083,53 @@ SYSID:	DZ	"Starting..." | ||||
| FD144A:	DB	#80,#12,#02,#50,#00,#00,#02,FDD_INI_TABLE.FDD | ||||
| FD720A:	DB	#00,#09,#02,#50,#00,#00,#02,FDD_INI_TABLE.FDD | ||||
| 
 | ||||
| FINSTAL: | ||||
| 	IN	A,(SLOT3) | ||||
| 	EX	AF,AF' | ||||
| 	LD	A,SYS_PAGE | ||||
| 	OUT	(SLOT3),A | ||||
| 	LD	HL,FDD_INI_TABLE.FDD_0 | ||||
| 	LD	BC,SYS_PAGE.FDD_TBL.Size*256 + #FF	; table_size*256 + fill_byte  | ||||
| .FILLFDD: | ||||
| 	LD	(HL),C | ||||
| 	INC	HL | ||||
| 	DJNZ	.FILLFDD | ||||
| 	; | ||||
| 	EX	AF,AF' | ||||
| 	OUT	(SLOT3),A | ||||
| 	LD	BC,CMOS_CELL.DrivesSetup_1.Mask.FirstFDD		;#0311 | ||||
| 	CALL	G_VALUE | ||||
| 	LD	HL,FD720A | ||||
| 	OR	A | ||||
| 	JR	Z,SETFD0 | ||||
| 	LD	HL,FD144A | ||||
| 	DEC	A | ||||
| 	JR	NZ,NOFDD0 | ||||
| SETFD0: | ||||
| 	IN	A,(SLOT3) | ||||
| 	EX	AF,AF' | ||||
| 	LD	A,SYS_PAGE | ||||
| 	OUT	(SLOT3),A | ||||
| 	LD	DE,FDD_INI_TABLE.FDD_0 | ||||
| 	LD	BC,#0008						; !HARDCODE | ||||
| 	LDIR  | ||||
| 	EX	AF,AF' | ||||
| 	OUT	(SLOT3),A | ||||
| NOFDD0: | ||||
| 	LD	BC,CMOS_CELL.DrivesSetup_1.Mask.SecondFDD		;#0C11 | ||||
| 	CALL	G_VALUE | ||||
| 	LD	HL,FD720A | ||||
| 	OR	A | ||||
| 	JR	Z,SETFD1 | ||||
| 	LD	HL,FD144A | ||||
| 	DEC	A | ||||
| 	JR	NZ,NOFDD1 | ||||
| SETFD1: | ||||
| 	IN	A,(SLOT3) | ||||
| 	EX	AF,AF' | ||||
| 	LD	A,SYS_PAGE | ||||
| 	OUT	(SLOT3),A | ||||
| 	LD	DE,FDD_INI_TABLE.FDD_1 | ||||
| 	LD	BC,#0008						; !HARDCODE | ||||
| 	LDIR  | ||||
| 	EX	AF,AF' | ||||
| 	OUT	(SLOT3),A | ||||
| NOFDD1: | ||||
| 	RET  | ||||
| FINSTAL:	IN	A,(SLOT3) | ||||
| 		EX	AF,AF' | ||||
| 		LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	HL,FDD_INI_TABLE.FDD_0 | ||||
| 		LD	BC,SYS_PAGE.FDD_TBL.Size*256 + #FF	; table_size*256 + fill_byte  | ||||
| .FILLFDD:	LD	(HL),C | ||||
| 		INC	HL | ||||
| 		DJNZ	.FILLFDD | ||||
| 		; | ||||
| 		EX	AF,AF' | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	BC,CMOS_CELL.DrivesSetup_1.Mask.FirstFDD		;#0311 | ||||
| 		CALL	G_VALUE | ||||
| 		LD	HL,FD720A | ||||
| 		OR	A | ||||
| 		JR	Z,.SETFD0 | ||||
| 		LD	HL,FD144A | ||||
| 		DEC	A | ||||
| 		JR	NZ,.NOFDD0 | ||||
| .SETFD0:	IN	A,(SLOT3) | ||||
| 		EX	AF,AF' | ||||
| 		LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	DE,FDD_INI_TABLE.FDD_0 | ||||
| 		LD	BC,#0008						; !HARDCODE | ||||
| 		LDIR  | ||||
| 		EX	AF,AF' | ||||
| 		OUT	(SLOT3),A | ||||
| .NOFDD0:	LD	BC,CMOS_CELL.DrivesSetup_1.Mask.SecondFDD		;#0C11 | ||||
| 		CALL	G_VALUE | ||||
| 		LD	HL,FD720A | ||||
| 		OR	A | ||||
| 		JR	Z,.SETFD1 | ||||
| 		LD	HL,FD144A | ||||
| 		DEC	A | ||||
| 		JR	NZ,.NOFDD1 | ||||
| .SETFD1:	IN	A,(SLOT3) | ||||
| 		EX	AF,AF' | ||||
| 		LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	DE,FDD_INI_TABLE.FDD_1 | ||||
| 		LD	BC,#0008						; !HARDCODE | ||||
| 		LDIR  | ||||
| 		EX	AF,AF' | ||||
| 		OUT	(SLOT3),A | ||||
| .NOFDD1:	RET  | ||||
| 
 | ||||
| 
 | ||||
| PIDNUM:	LD	HL,memBUFFER.ID | ||||
| @ -1342,6 +1337,7 @@ NOCOPYC: | ||||
| 	LDIR  | ||||
| 	RET  | ||||
| 
 | ||||
| ;---------------------------------------------------------------[] | ||||
| TRQUICK: | ||||
| ;REGISTER #1E | ||||
| ; %0000'0011 - TR DOS A:	Default	 / FDD / HDD / RMD | ||||
| @ -1359,9 +1355,7 @@ TRQUICK: | ||||
| 	CALL	TRDOSX | ||||
| 	LD	BC,CMOS_CELL.TRDOSmount.Mask.D				;#C01E | ||||
| 	LD	A,3 | ||||
| 
 | ||||
| TRDOSX: | ||||
| 	; PUSH	AF | ||||
| TRDOSX:	; PUSH	AF | ||||
| 	; CALL	G_VALUE | ||||
| 	; POP	BC | ||||
| 	; OR	A | ||||
| @ -1385,34 +1379,37 @@ TRDOSX: | ||||
| 	JP	Z,HDD_TO_DRV | ||||
| 	SCF  | ||||
| 	RET  | ||||
| ;---------------------------------------------------------------[] | ||||
| 
 | ||||
| ; ®âªà뢠¥â ¯®àâ #FE   ç⥨¥ ¢ 3-© ª à⥠¯®à⮢ | ||||
| ; OPENDOS: | ||||
| ; 	DI  | ||||
| ; 	IN	A,(SLOT3) | ||||
| ; 	EX	AF,AF' | ||||
| ; 	LD	A,#40 | ||||
| ; 	OUT	(SLOT3),A | ||||
| ; 	LD	HL,#C000 | ||||
| ; 	LD	DE,#F000 | ||||
| ; 	LD	BC,#0400 | ||||
| ; 	LDIR  | ||||
| ; 	LD	A,#40 | ||||
| ; 	LD	(#F26E),A | ||||
| ; 	LD	(#F27E),A | ||||
| ; 	LD	(#F2EE),A | ||||
| ; 	LD	(#F2FE),A | ||||
| ; 	LD	(#F36E),A | ||||
| ; 	LD	(#F37E),A | ||||
| ; 	LD	(#F3EE),A | ||||
| ; 	LD	(#F3FE),A | ||||
| ; 	LD	HL,#F000 | ||||
| ; 	LD	DE,#F400 | ||||
| ; 	LD	BC,#0C00 | ||||
| ; 	LDIR  | ||||
| ; 	EX	AF,AF' | ||||
| ; 	OUT	(SLOT3),A | ||||
| ; 	RET  | ||||
| 
 | ||||
| ;!TODO ¯®á¬®âà¥âì | ||||
| 	;®âªà뢠¥â ¯®àâ #FE   ç⥨¥ ¢ 3-© ª à⥠¯®à⮢ | ||||
| 	;OPENDOS: | ||||
| 	;	DI  | ||||
| 	;	IN	A,(SLOT3) | ||||
| 	;	EX	AF,AF' | ||||
| 	;	LD	A,#40 | ||||
| 	;	OUT	(SLOT3),A | ||||
| 	;	LD	HL,#C000 | ||||
| 	;	LD	DE,#F000 | ||||
| 	;	LD	BC,#0400 | ||||
| 	;	LDIR  | ||||
| 	;	LD	A,#40 | ||||
| 	;	LD	(#F26E),A | ||||
| 	;	LD	(#F27E),A | ||||
| 	;	LD	(#F2EE),A | ||||
| 	;	LD	(#F2FE),A | ||||
| 	;	LD	(#F36E),A | ||||
| 	;	LD	(#F37E),A | ||||
| 	;	LD	(#F3EE),A | ||||
| 	;	LD	(#F3FE),A | ||||
| 	;	LD	HL,#F000 | ||||
| 	;	LD	DE,#F400 | ||||
| 	;	LD	BC,#0C00 | ||||
| 	;	LDIR  | ||||
| 	;	EX	AF,AF' | ||||
| 	;	OUT	(SLOT3),A | ||||
| 	;	RET  | ||||
| ; | ||||
| 
 | ||||
| 
 | ||||
| @ -1553,6 +1550,144 @@ PRINT_CHANEL: | ||||
| 	 JP	LP_PRINT_LINE6 | ||||
| ; | ||||
| 
 | ||||
| ;----------------------------------------------------------------------[] | ||||
| ;!TODO ᤥ« âì ¢ë¡®à ¢ Setup, çâ® £à㧨âì ¢ v<>‡“ ¯à¨ áâ àâ¥. ‚ à¨ âë: | ||||
| ;[ ]	0 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 ª ª ¢ 3.04 | ||||
| ;[ ]	1 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ áâ à⥠¥á«¨ ¥â ä« £  ZX | ||||
| ;[ ]	2 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ ª ¦¤®¬ ¯¥à¥§ ¯ã᪥ | ||||
| ;[ ]	3 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 â ª, | ||||
| ;	     ç⮡ ª®¤ ¢ ¥© ¯®¤£à㦠« <20>‡“ ᯥªâà㬠 ¯à¨ ®¡à é¥¨¨ | ||||
| ZXMODE_SETUP:	IN	A,(SLOT3) | ||||
| 		PUSH	AF | ||||
| 		LD	A,Spec_Page | ||||
| 		OUT	(SLOT3),A | ||||
| 		; | ||||
| 		LD	BC,CMOS_CELL.Options.Mask.LoadZXroms | ||||
| 		CALL	G_VALUE | ||||
| 		; | ||||
| 		OR	A | ||||
| 		JR	Z,.init_41h | ||||
| 		DEC	A | ||||
| 		JR	Z,.CheckAndLoad | ||||
| 		DEC	A | ||||
| 		JR	Z,.Load_ZXROMS | ||||
| 		;!TODO | ||||
| 		 ;DEC	A | ||||
| 		 ;JR	Z,.New_init_41h | ||||
| 		; | ||||
| 		; Check ZX ROMS Loaded | ||||
| .CheckAndLoad:	LD	A,(Spec_Page.flag_Z) | ||||
| 		CP	'Z' | ||||
| 		JR	NZ,.Load_ZXROMS | ||||
| 		LD	A,(Spec_Page.flag_X) | ||||
| 		CP	'X' | ||||
| 		JR	NZ,.Load_ZXROMS | ||||
| 		; [x] 31/12/23 ¯®¤áâà å®¢ª  ®â ¥¤®ãâ¥çª¨ ¯ ¬ï⨠| ||||
| 		 LD	A,R | ||||
| 		 AND	#80 | ||||
| 		 JR	Z,.No_Need_To_Load_ZXROMS | ||||
| .Load_ZXROMS:	 XOR	A | ||||
| 		 LD	R,A | ||||
| 		; | ||||
| 		; Load ZX ROM's | ||||
| 		call	init_zx_roms | ||||
| 		; | ||||
| 		LD	HL,#C000 | ||||
| 		LD	DE,#C001 | ||||
| 		LD	BC,#3FFF | ||||
| 		LD	(HL),C | ||||
| 		LDIR								; § ¡¨âì FF- ¬¨ | ||||
|         	; áâ ¢¨¬ ¬¥âªã ¥á«¨ ¯à®£à㧨«¨ <20>‡“ ᯥªâà㬠 | ||||
| 		DEC	DE		; Spec_Page.flag_X | ||||
|         	LD	A,'X' | ||||
|         	LD	(DE),A | ||||
|         	DEC	DE		; Spec_Page.flag_Z | ||||
|         	LD	A,'Z' | ||||
|         	LD	(DE),A      | ||||
| 		; ‡ £«ã誠 ¤«ï áâà ¨æë #41   ¢á直© ¯®¦ àë© | ||||
| .init_41h:	LD HL,PROG_NO_ROM | ||||
| 		LD DE,#C000 + Spec_Page.no_zx_rom | ||||
| 		LD BC,PROG_NO_ROM.size | ||||
| 		LDIR | ||||
| 		; | ||||
| 		LD HL,RAM_BIOS_PROG | ||||
| 		LD DE,#C000 + Spec_Page.to_bios | ||||
| 		LD BC,RAM_BIOS_PROG.Length | ||||
| 		LDIR | ||||
| .No_Need_To_Load_ZXROMS: | ||||
| 		POP	AF | ||||
| 		OUT	(SLOT3),A | ||||
| 		RET | ||||
| 
 | ||||
| ; | ||||
| ;--------------------[copy zx-roms to zx-pages]-----------------; | ||||
| ; SLOT0 - ROM 8, sys_port - on. | ||||
| ; RAM SLOT0 - page 0 | ||||
| ; ¤«ï ०¨¬  zx spectrum | ||||
| ; ‚›<E2809A>Ž‹<C5BD>Ÿ…’‘Ÿ ˆ‡ އ“ | ||||
| ; !HARDCODE ®¬¥à  áâà ¨æ ¤«ï í¬ã«ïâ®à  <20>‡“ | ||||
| init_zx_roms:	IN      A,(SLOT3) | ||||
| 		EX	AF,AF' | ||||
| 		; | ||||
| 		DI | ||||
| 		LD      A,SYS_PORT.EXTENSION | ||||
| 		OUT     (SYS_PORT.ROM),A  | ||||
|         	INC     A		;!HARDCODE LD A,2 | ||||
|         	LD      B,3		; zx-rom number of pages | ||||
| 		; | ||||
| .loop:		EXX | ||||
| 		; | ||||
| 		out     (ROM.SLOT0),a | ||||
| 		or	%0100'0000	; !HARDCODE ®¬¥à  áâà ¨æ ¤«ï í¬ã«ïâ®à  <20>‡“ | ||||
| 		out	(SLOT3),a | ||||
| 		and	%1011'1111	; !HARDCODE ®¬¥à  áâà ¨æ ¤«ï í¬ã«ïâ®à  <20>‡“ | ||||
| 		; | ||||
| 		LD	HL,0 | ||||
| 		LD	DE,#C000 | ||||
| 		LD	BC,#4000 | ||||
| 		LDIR | ||||
| 		; | ||||
|         	INC     A | ||||
| 		EXX | ||||
| 		DJNZ    .loop | ||||
| 		; | ||||
| 		xor     a | ||||
| 		out     (ROM.SLOT0),a | ||||
| 		OUT     (SYS_PORT.ROM),A   | ||||
| 		EX	AF,AF' | ||||
| 		out     (SLOT3),a | ||||
| 		; | ||||
| 	;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23 | ||||
| 		LD	A,ACEX.vROM.BASIC_128				; ROM-ID - BASIC 128 | ||||
| 		LD	B,#42						;!HARDCODE page | ||||
| 		CALL	SET_PORTS | ||||
| 		; | ||||
| 		LD	A,ACEX.vROM.BASIC_48				; ROM-ID - BASIC 48 | ||||
| 		LD	B,#43						;!HARDCODE page | ||||
| 		CALL	SET_PORTS | ||||
| 		; | ||||
| 		LD	A,ACEX.vROM.TR_DOS				; ROM-ID - TR-DOS | ||||
| 		LD	B,#44						;!HARDCODE page | ||||
| 		CALL	SET_PORTS | ||||
| 		; | ||||
| 		; í⨠áâà ¨æë ¯®ª  ¥ ¨á¯®«ì§ãîâáï | ||||
| 		 LD	A,ACEX.vROM.BIOS				; ROM-ID - BIOS | ||||
| 		 ;LD	B,#45						;!HARDCODE page | ||||
| 		 LD	B,#41 | ||||
| 		 CALL	SET_PORTS | ||||
| 		 ; | ||||
| 		 LD	A,ACEX.vROM.BIOS_3				; ROM-ID - BIOS-1 | ||||
| 		 ;LD	B,#46						;!HARDCODE page | ||||
| 		 LD	B,#41 | ||||
| 		 CALL	SET_PORTS | ||||
| 		 ; | ||||
| 		 LD	A,ACEX.vROM.BIOS_4				; ROM-ID - BIOS-2 | ||||
| 		 ;LD	B,#47						;!HARDCODE page | ||||
| 		 LD	B,#41 | ||||
| 		 JP	SET_PORTS | ||||
| 		; ¬®¦® § ¤¥©á⢮¢ âì ¥éñ 4 áâà ¨æë   ¯®àâë #E4..#E7 | ||||
| ;---------------------------------------------------------------------[] | ||||
| 
 | ||||
| 
 | ||||
| ;--------------------------------------- | ||||
|  INCLUDE 'src/bios/ROM/SETUP/messages.z80' | ||||
|  | ||||
| @ -52,13 +52,13 @@ | ||||
| 			"TypDelay",	 -- 	DEFINES.INC --> UnusedSettingsFeatures  | ||||
| 		}, | ||||
| 		[2]={ | ||||
| 			"TrDosA",	 -- 1 | ||||
| 			"TrDosB",	 -- 2 | ||||
| 			"TrDosC",	 -- 3 | ||||
| 			"TrDosD",	 -- 4 | ||||
|                         "SetTime",	 -- 5	DEFINES.INC --> NEW_FEATURE | ||||
| 			"HddWrPr",	 -- 6	DEFINES.INC --> HDDwriteProtect | ||||
| 					 -- 7 | ||||
| 			"LoadZXroms",	 -- 1 | ||||
| 			"TrDosA",	 -- 2 | ||||
| 			"TrDosB",	 -- 3 | ||||
| 			"TrDosC",	 -- 4 | ||||
| 			"TrDosD",	 -- 5 | ||||
|                         "SetTime",	 -- 6	DEFINES.INC --> NEW_FEATURE | ||||
| 			"HddWrPr",	 -- 7	DEFINES.INC --> HDDwriteProtect | ||||
| 					 -- 8 | ||||
| 					 -- 9 | ||||
| 					 -- 10 | ||||
| @ -467,6 +467,16 @@ SettingsItemsTabs: | ||||
| 	DB	msgStrings.valFDD | ||||
| 	DB	msgStrings.valHDD | ||||
| 
 | ||||
| 	_mSETitemParams LoadZXroms | ||||
| 	DW	OnChangeAction.nothing | ||||
|         IF NEW_FEATURE :     DB paramLine : ENDIF | ||||
| 	DB	columnNum,lineNum | ||||
| 	DB	paramName | ||||
| 	DW	CMOS_CELL.Options.Mask.LoadZXroms : DB %0000'1000 | ||||
| 	DB	msgStrings.valLoadZXromsManually | ||||
| 	DB	msgStrings.valLoadZXromsFlag | ||||
| 	DB	msgStrings.valLoadZXromsCAD | ||||
| 
 | ||||
| 	IF NEW_FEATURE | ||||
|          _mSETitemParams SetTime | ||||
| 	 DW	OnChangeAction.SetTime | ||||
| @ -651,6 +661,11 @@ msgStrings: | ||||
|  _mSetStr parTrDosB, tmp_Counter		:	DZ	'TR DOS B:>          : ' | ||||
|  _mSetStr parTrDosC, tmp_Counter		:	DZ	'TR DOS C:>          : ' | ||||
|  _mSetStr parTrDosD, tmp_Counter		:	DZ	'TR DOS D:>          : ' | ||||
|  _mSetStr parLoadZXroms, tmp_Counter		:	DZ	'Load ZX ROMs        : ' | ||||
|  _mSetStr valLoadZXromsManually, tmp_Counter	:	DZ	'Manually    ' | ||||
|  _mSetStr valLoadZXromsFlag, tmp_Counter	:	DZ	'By ZX flag  ' | ||||
|  _mSetStr valLoadZXromsCAD, tmp_Counter		:	DZ	'On restart  ' | ||||
| ; _mSetStrRus valLoadZXromsAuto, tmp_Counter	:	DZ	'On call     ' | ||||
|  IF NEW_FEATURE | ||||
|   _mSetStr parSetTime, tmp_Counter		:       DZ      'Date and time setup : ' | ||||
|   _mSetStr valFolder, tmp_Counter		:       DB      16,'ENTER',17,0 | ||||
| @ -804,6 +819,11 @@ msgRusStrings: | ||||
|  _mSetStrRus parTrDosB, tmp_Counter		:	DZ	'TR DOS B:>          : ' | ||||
|  _mSetStrRus parTrDosC, tmp_Counter		:	DZ	'TR DOS C:>          : ' | ||||
|  _mSetStrRus parTrDosD, tmp_Counter		:	DZ	'TR DOS D:>          : ' | ||||
|  _mSetStrRus parLoadZXroms, tmp_Counter		:	DZ	'‡ £à㦠âì ZX <EFBFBD>‡“    : ' | ||||
|  _mSetStrRus valLoadZXromsManually, tmp_Counter	:	DZ	'‚àãçãî     ' | ||||
|  _mSetStrRus valLoadZXromsFlag, tmp_Counter	:	DZ	'<EFBFBD>® ä« £ã ZX ' | ||||
|  _mSetStrRus valLoadZXromsCAD, tmp_Counter	:	DZ	'<EFBFBD>ਠà¥áâ àâ¥' | ||||
| ; _mSetStrRus valLoadZXromsAuto, tmp_Counter	:	DZ	'<27>ਠ¢ë§®¢¥  ' | ||||
|  IF NEW_FEATURE | ||||
|  _mSetStrRus parSetTime, tmp_Counter		:	DZ	'„ â  ¨ ¢à¥¬ï        : ' | ||||
|  _mSetStrRus valFolder, tmp_Counter		:	DB	16,'‚‚Ž„',17,0 | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| ;=======================[All shared EQUs]=======================; | ||||
| BETA_BUILD	EQU			5			; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ   áâ à⮢®¬ íªà ¥ | ||||
| BETA_BUILD	EQU			6			; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ   áâ à⮢®¬ íªà ¥ | ||||
| ;======================[All shared defines]=====================; | ||||
|  DEFINE		PACKED_MAIN		0			; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®? | ||||
|  DEFINE		SP2000_Loader_Flag	#0107			; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tolik
						Tolik