free zx pages! почти готово
This commit is contained in:
		
							parent
							
								
									65bc8dbb49
								
							
						
					
					
						commit
						df0a7937f6
					
				| @ -1 +1 @@ | ||||
| Subproject commit 403d6e2b52dadc50e99a1eac442cedd98e19d0a5 | ||||
| Subproject commit 39d099768ae06d08777c63c9d5036fa4ab9c9a01 | ||||
| @ -892,22 +892,22 @@ PrepareToZX:	; Setup HDD drives for ZX Spectrum mode | ||||
| ;		JR	C,.loop | ||||
| 	; ¢ë室 ¢ ०¨¬ zx spectrum | ||||
| .start_zx: | ||||
| 	IF FREE_ZX_PAGES | ||||
| 	; IF FREE_ZX_PAGES | ||||
| 		; ¥ ¤®«¦® á ¯®¯ áâì | ||||
| 		LD	B,BIOS.REINIT.HARD_RESET | ||||
| 		JP	REINIT | ||||
| 	ELSE	; [x] free zx pages! | ||||
| 		 XOR	A | ||||
| 		 OUT	(SLOT2),A	; ZERO_PAGE | ||||
| 		 DEC	A | ||||
| 		 OUT	(SLOT1),A	; SHARED_PAGE | ||||
| 		 ;LD	A,5 | ||||
| 		 ;OUT	(SLOT1),A | ||||
| 		 ;LD	A,2 | ||||
| 		 ;OUT	(SLOT2),A | ||||
| 		; | ||||
| 		JP	GOTO_SPEC.ZX_MODE | ||||
| 	ENDIF | ||||
| 	; ELSE	; [x] free zx pages! | ||||
| 	; 	 XOR	A | ||||
| 	; 	 OUT	(SLOT2),A	; ZERO_PAGE | ||||
| 	; 	 DEC	A | ||||
| 	; 	 OUT	(SLOT1),A	; SHARED_PAGE | ||||
| 	; 	 ;LD	A,5 | ||||
| 	; 	 ;OUT	(SLOT1),A | ||||
| 	; 	 ;LD	A,2 | ||||
| 	; 	 ;OUT	(SLOT2),A | ||||
| 	; 	; | ||||
| 	; 	JP	GOTO_SPEC.ZX_MODE | ||||
| 	; ENDIF | ||||
| ;*********************************** | ||||
| ;	ˆ¨æ¨ «¨§ æ¨ï ¯®à⮢ | ||||
| PORTS_INIT: | ||||
| @ -1071,9 +1071,6 @@ PORTS_INIT: | ||||
| 	        INCLUDE 'FUNC_FOR_TRDOS.ASM' | ||||
|                 INCLUDE 'FUNC_5x.asm' | ||||
|                 INCLUDE 'FUNC_LOW_PRINT.ASM' | ||||
| 	IFN	FREE_ZX_PAGES | ||||
|                 INCLUDE 'FUNC_ZX.ASM' | ||||
| 	ENDIF | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| 
 | ||||
| @ -1196,7 +1193,7 @@ DOS_ON:	NOP	;!TODO ࠡ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	IF	FREE_ZX_PAGES | ||||
| 	; IF	FREE_ZX_PAGES | ||||
| ; [ ] free zx pages! ---------------------------------------------------; | ||||
| GOTO_SPEC:	PUSH	HL | ||||
| 		LD	HL,RET_TO_BIOS | ||||
| @ -1222,78 +1219,77 @@ ZX_MEMORY_MANAGER: | ||||
| ;---------------------[ ‡€ƒ‹“˜Šˆ „‹Ÿ #41 ‘’<E28098>€<EFBFBD>ˆ–›]----------------------; | ||||
| ;-------------[RST 08] | ||||
| RAM_BIOS_PROG:								; for CALL BIOS in #41 page | ||||
|  DISP	Spec_Page.to_bios | ||||
| 	PUSH AF | ||||
| 	LD A,ROM.BIOS | ||||
| 	OUT (SYS_PORT.ROM),A | ||||
| 	POP AF | ||||
| 	RET | ||||
|  ENT | ||||
| 	DISP	Spec_Page.to_bios | ||||
| 		PUSH AF | ||||
| 		LD A,ROM.BIOS | ||||
| 		OUT (SYS_PORT.ROM),A | ||||
| 		POP AF | ||||
| 		RET | ||||
| 	ENT | ||||
| .Length EQU $-RAM_BIOS_PROG | ||||
| ;-------------------[] | ||||
| ;  | ||||
| ;-------------[RST 38] | ||||
| PROG_NO_ROM: | ||||
|  DISP   Spec_Page.no_zx_rom | ||||
| 	DI | ||||
| 	; | ||||
| 	LD	A,SHARED_PAGE | ||||
| 	OUT	(SLOT3),A | ||||
| 	OUT	(SLOT2),A | ||||
| 	OUT	(SLOT1),A | ||||
| 	; | ||||
| 	LD	SP,#BF00 | ||||
| 	; | ||||
| 	LD      E,0 | ||||
| 	LD      BC,BIOS.LP_OPEN_S.TXT_80x32_Default | ||||
| 	RST     ToBIOS | ||||
| 	; | ||||
| 	LD      DE,0 | ||||
| 	LD      HL,#2050 | ||||
| 	LD      C,BIOS.LP_CLS_WIN | ||||
| 	RST     ToBIOS | ||||
| 	; set scr-2 | ||||
| 	LD      A,1 | ||||
| 	OUT     (SCREEN_SWITCH),A | ||||
| 	; | ||||
| 	LD      HL,MESSAGE_NR | ||||
| 	LD      DE,#A000 | ||||
| 	LD      BC,MESSAGE_NR.size | ||||
| 	LD      A,C | ||||
| 	LDIR | ||||
| 	; | ||||
| 	LD      HL,#A000 | ||||
| 	LD      D,0							; delimiter | ||||
| 	LD      E,COLORS.CGA.FLASH + COLORS.CGA.INK.RED | ||||
| 	LD      B,A | ||||
| 	LD      C,BIOS.LP_PRINT_LINE3 | ||||
| 	RST     ToBIOS | ||||
| 	; | ||||
| .loop:	DI | ||||
|         HALT | ||||
|         JR .loop | ||||
| 	; | ||||
| 	DISP   Spec_Page.no_zx_rom | ||||
| 		DI | ||||
| 		; | ||||
| 		LD	A,SHARED_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| 		OUT	(SLOT2),A | ||||
| 		OUT	(SLOT1),A | ||||
| 		; | ||||
| 		LD	SP,#BF00 | ||||
| 		; | ||||
| 		LD      E,0 | ||||
| 		LD      BC,BIOS.LP_OPEN_S.TXT_80x32_Default | ||||
| 		RST     ToBIOS | ||||
| 		; | ||||
| 		LD      DE,0 | ||||
| 		LD      HL,#2050 | ||||
| 		LD      C,BIOS.LP_CLS_WIN | ||||
| 		RST     ToBIOS | ||||
| 		; set scr-2 | ||||
| 		LD      A,1 | ||||
| 		OUT     (SCREEN_SWITCH),A | ||||
| 		; | ||||
| 		LD      HL,MESSAGE_NR | ||||
| 		LD      DE,#A000 | ||||
| 		LD      BC,MESSAGE_NR.size | ||||
| 		LD      A,C | ||||
| 		LDIR | ||||
| 		; | ||||
| 		LD      HL,#A000 | ||||
| 		LD      D,0							; delimiter | ||||
| 		LD      E,COLORS.CGA.FLASH + COLORS.CGA.INK.RED | ||||
| 		LD      B,A | ||||
| 		LD      C,BIOS.LP_PRINT_LINE3 | ||||
| 		RST     ToBIOS | ||||
| 		; | ||||
| .loop:		DI | ||||
|         	HALT | ||||
|         	JR .loop | ||||
| 		; | ||||
| MESSAGE_NR:	DZ " Spectrum ROM not installed.  Use spectrum.exe  Press Ctrl+Alt+Del or RESET" | ||||
| .size		EQU $-MESSAGE_NR | ||||
|  ENT | ||||
| 	ENT | ||||
| PROG_NO_ROM.size EQU $-PROG_NO_ROM | ||||
| ;-------------------[] | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<;  | ||||
|  ENDIF | ||||
| ;  ENDIF | ||||
| ;-------------------------------[ #FFE0 ]-------------------------------; | ||||
| ;	¯à®£à ¬¬ , ª®â®à ï ¡ã¤ãç¨ à §¬¥é¥®© ¢ #40 áâà ¨æ¥, | ||||
| ;	á  ¤à¥á  RESTARTS, ¯¥à¥å¢ â뢠¥â RESET | ||||
| RESTARTS_PROG:							        ; !TODO LDConf ¯¥à¥å¢ â à¥á¥â    «î¡®© ª®ä¥ ¯®á«¥ hardreset | ||||
| 	LD HL,RESTARTS						         | ||||
| 	LD B,16								 | ||||
| .loop: | ||||
| 	LD (HL),0							 | ||||
| 	INC HL								 | ||||
| 	DJNZ .loop							 | ||||
| 	NOP								 | ||||
| 	NOP								 | ||||
| .Size	EQU $-RESTARTS_PROG | ||||
| RESTARTS_PROG:	; !TODO LDConf ¯¥à¥å¢ â à¥á¥â    «î¡®© ª®ä¥ ¯®á«¥ hardreset | ||||
| 		LD HL,RESTARTS						         | ||||
| 		LD B,16								 | ||||
| .loop:		LD (HL),0							 | ||||
| 		INC HL								 | ||||
| 		DJNZ .loop							 | ||||
| 		NOP								 | ||||
| 		NOP								 | ||||
| .Size		EQU $-RESTARTS_PROG | ||||
| 	; LD A,1							 | ||||
| 	; OUT (SLOT3),A						 | ||||
| ;-----------------------------------------------------------------------; | ||||
| @ -1304,8 +1300,7 @@ RESTARTS_PROG:							        ; !TODO LDConf  | ||||
| ;	¤«ï § ¯ã᪠ Setup | ||||
| Start: | ||||
|   DISP	COMPILE_ADDR.SETUP_STARTER | ||||
| Exec: | ||||
| 	LD A,CNF_PORT.CNF_0 + ROM.EXTENSION | ||||
| Exec:	LD A,CNF_PORT.CNF_0 + ROM.EXTENSION | ||||
| 	OUT (SYS_PORT.ROM),A | ||||
| 
 | ||||
| 	LD HL,ROM_MAP.SETUP | ||||
| @ -1329,10 +1324,8 @@ Exec: | ||||
| ; ¨ ¥á«¨  ¦ â , â® ¯à®¨á室¨â ¨£®à ¯ à ¬¥âà  | ||||
| ; "<22>ëáâàë© áâ àâ <20>‡“" ¢® ¢à¥¬ï ¯¥à¥§ £à㧪¨ | ||||
| 	EX AF,AF' | ||||
| 
 | ||||
| 	LD A,#FF							; !HARDCODE | ||||
| 	OUT (C),A							; keyboard int & acc on, zx_screen & original waits off (for conf >= 3.05) | ||||
| 
 | ||||
| 	 LD A,#FF							; !HARDCODE | ||||
| 	 OUT (C),A							; keyboard int & acc on, zx_screen & original waits off (for conf >= 3.05) | ||||
| 	EX AF,AF' | ||||
| ;----------------------[] | ||||
|         DI  | ||||
|  | ||||
| @ -60,26 +60,25 @@ EMM.InitMem:	PUSH	BC | ||||
| 		LD	HL,SYS_PAGE.RAM_TABLE					; €¤à¥á RAM FAT ¢ އ“. | ||||
| 	; ®¡ã«ï¥¬ â ¡«¨æã | ||||
| 		XOR	A | ||||
| .loopFree: | ||||
| 		LD	(HL),A | ||||
| .loopFree:	LD	(HL),A | ||||
| 		INC	L | ||||
| 		JR	NZ,.loopFree | ||||
| 	; १¥à¢¨à㥬 ᯥæ.áâà ¨æë ¨ áâà ¨æë ZX | ||||
| 		LD	B,RESERVED_PAGES.Blocks | ||||
| 		;LD	B,RESERVED_PAGES.Blocks | ||||
| 		LD	DE,RESERVED_PAGES					; â ¡«¨æ  § ïâëå á¨á⥬ëå áâà ¨æ | ||||
| .loop:		LD	A,(DE) | ||||
| 		CP	#FF | ||||
| 		JR	Z,.exitLoop | ||||
| .loopBlk: | ||||
| 		INC	DE | ||||
| 		; | ||||
| .loopBlk:	INC	DE | ||||
| 		LD	L,A | ||||
| 		LD	A,(DE) | ||||
| 		LD	(HL),A | ||||
| 		CP	#FF | ||||
| 		JR	NZ,.loopBlk | ||||
| .exitLoop: | ||||
| 		INC	DE | ||||
| 		DJNZ	.loop | ||||
| 		; | ||||
| .exitLoop:	;INC	DE | ||||
| 		;DJNZ	.loop | ||||
| 		LD	L,A | ||||
| 		LD	(HL),A | ||||
| 	; ˆ¨æ¨ «¨§ æ¨ï ª«î祩 RAM-Disks | ||||
| @ -105,16 +104,16 @@ EMM.InitMem:	PUSH	BC | ||||
| ;---------------------------------------------------------------------[] | ||||
| RESERVED_PAGES: | ||||
| 	; [x] Block #1 - ¬®¦® ®á¢®¡®¤¨âì ¯® ID 1 | ||||
| 		DB	1,3,4,6,7,8,9,10,11,12,13,14,15	; [ ] free zx pages! for Spectrum | ||||
| 		;DB	1,3,4,6,7,8,9,10,11,12,13,14,15	; [ ] free zx pages! for Spectrum | ||||
| 	 ;!FIXIT áâà ¨æë 16..31 ¥ § à¥§¥à¢¨à®¢ ë, ® ¨á¯®«ì§ãîâáï ¢ Pentagon 512 | ||||
| 	 ; | ||||
| 	 ; í¬ã«ïâ®à <20>‡“ ;!FIXIT ROM-Emulator ᤥ« âì ¤¨ ¬¨ç¥áª¨¥ áâà ¨æë | ||||
| 		DB	#42,#43,#44,#45,#46,#47;,#48,#49,#4A,#4B ; [ ] free zx pages! For (BASIC128, BASIC48, TRDOS, SCORP_ROM)*2, vBIOS, vEXTENSION | ||||
| 		DB	#FF							; End of the block | ||||
| 		;DB	#42,#43,#44,#45,#46,#47;,#48,#49,#4A,#4B ; [ ] free zx pages! For (BASIC128, BASIC48, TRDOS, SCORP_ROM)*2, vBIOS, vEXTENSION | ||||
| 		;DB	#FF							; End of the block | ||||
| 	 ; | ||||
| 	; | ||||
| 	;; Block #2 - ¥«ì§ï ®á¢®¡®¦¤ âì | ||||
| 		DB	0,2,5		; [ ] free zx pages!			; for Spectrum and BIOS starting | ||||
| 		DB	0;,2,5		; [ ] free zx pages!			; for Spectrum and BIOS starting | ||||
| 		DB	DCP_PAGE 						; Ports map | ||||
| 		DB	Spec_Page						; Page for Spectrum mode | ||||
| 	 ; Screen pages | ||||
| @ -126,7 +125,7 @@ RESERVED_PAGES: | ||||
| 		DB	SYS_PAGE						; Page for system (BIOS) variables | ||||
| 		DB	#FF							; End of the block | ||||
| 	; | ||||
| .Blocks		EQU	2 | ||||
| ;.Blocks		EQU	2 | ||||
| ;----------------------------------------------------------------------; | ||||
| ; | ||||
| 
 | ||||
| @ -304,7 +303,7 @@ EMM.FreeMem:	; [x] free zx pages! ⥯ | ||||
| 		LD	A,(HL)	; á«¥¤ãî騩 ¡«®ª | ||||
| 		AND	A | ||||
| 		JR	Z,.error | ||||
| 		LD	(HL),0	; Žá¢®¡®¤¨âì | ||||
| 		LD	(HL),0		; Žá¢®¡®¤¨âì | ||||
| 		CP	#FF		; …᫨ ¥ ª®¥æ | ||||
| 		JR	NZ,.loop	; ¯à®¤®«¦ âì | ||||
| 
 | ||||
|  | ||||
| @ -327,57 +327,56 @@ RST_CONF: | ||||
| ; B = 1 - RESTART. | ||||
| ; B = 2 - Soft reset | ||||
| ; B = 3 - Hard reset | ||||
| ; B = 4 - Reinit spectrum pages | ||||
| REINIT:	DEC     B | ||||
| 	JR      Z,.Restart      ;1 | ||||
| 	DEC     B | ||||
| 	JR      Z,.SoftReset    ;2 | ||||
| 	DEC     B | ||||
| 	JR      Z,.HardReset    ;3 | ||||
| 	DEC     B | ||||
| 	SCF | ||||
| 	RET     NZ | ||||
| .ReinitZXpages:                 ;4 | ||||
|  	LD DE,RESERVED_PAGES                                            ; â ¡«¨æ  § ïâëå á¨á⥬ëå áâà ¨æ | ||||
| 	LD HL,SYS_PAGE.RAM_TABLE                                         ; €¤à¥á FAT އ“. | ||||
| 	RET	NZ | ||||
| ; 	JR      Z,.HardReset    ;3 | ||||
| ; 	DEC     B | ||||
| ; .ReinitZXpages:                 ;4 | ||||
| ;  	LD DE,RESERVED_PAGES                                            ; â ¡«¨æ  § ïâëå á¨á⥬ëå áâà ¨æ | ||||
| ; 	LD HL,SYS_PAGE.RAM_TABLE                                         ; €¤à¥á FAT އ“. | ||||
| 
 | ||||
|         LD C,SLOT3 | ||||
|         IN B,(C) | ||||
|         LD A,SYS_PAGE | ||||
|         OUT (SLOT3),A | ||||
| ;         LD C,SLOT3 | ||||
| ;         IN B,(C) | ||||
| ;         LD A,SYS_PAGE | ||||
| ;         OUT (SLOT3),A | ||||
|         | ||||
| 	LD A,(DE) | ||||
| .zxloop: | ||||
| 	CP #FF | ||||
| 	JR Z,.endzxloop | ||||
| 	INC DE | ||||
| 	LD L,A | ||||
| ; 	LD A,(DE) | ||||
| ; .zxloop: | ||||
| ; 	CP #FF | ||||
| ; 	JR Z,.endzxloop | ||||
| ; 	INC DE | ||||
| ; 	LD L,A | ||||
| 
 | ||||
|         LD A,(HL) | ||||
|         AND A | ||||
|         JR NZ,.errorzxloop | ||||
| ;         LD A,(HL) | ||||
| ;         AND A | ||||
| ;         JR NZ,.errorzxloop | ||||
| 
 | ||||
|         LD A,(DE) | ||||
| 	LD (HL),A | ||||
| 	JR .zxloop | ||||
| ;         LD A,(DE) | ||||
| ; 	LD (HL),A | ||||
| ; 	JR .zxloop | ||||
| 
 | ||||
| .errorzxloop: | ||||
|         DEC DE | ||||
|         LD HL,-RESERVED_PAGES-1 | ||||
|         ADD HL,DE | ||||
|         JR NC,.errorzxloop_noChanges | ||||
| ; .errorzxloop: | ||||
| ;         DEC DE | ||||
| ;         LD HL,-RESERVED_PAGES-1 | ||||
| ;         ADD HL,DE | ||||
| ;         JR NC,.errorzxloop_noChanges | ||||
| 
 | ||||
|         DEC DE | ||||
|         LD H,high SYS_PAGE.RAM_TABLE | ||||
|         LD A,(DE) | ||||
| 	LD L,A | ||||
|         LD A,#FF | ||||
| 	LD (HL),A | ||||
| .errorzxloop_noChanges: | ||||
|         SCF | ||||
| .endzxloop: | ||||
|         OUT (C),B | ||||
|         RET | ||||
| ;         DEC DE | ||||
| ;         LD H,high SYS_PAGE.RAM_TABLE | ||||
| ;         LD A,(DE) | ||||
| ; 	LD L,A | ||||
| ;         LD A,#FF | ||||
| ; 	LD (HL),A | ||||
| ; .errorzxloop_noChanges: | ||||
| ;         SCF | ||||
| ; .endzxloop: | ||||
| ;         OUT (C),B | ||||
| ;         RET | ||||
| ; | ||||
| 
 | ||||
| ;[x] | ||||
|  | ||||
| @ -1,324 +0,0 @@ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  IFN	FREE_ZX_PAGES | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;!TODO § ¤¥©á⢮¢ âì | ||||
| GOTO_SPEC:	IN	A,(SLOT3) | ||||
| 		EX	AF,AF' | ||||
| 		LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	A,B | ||||
| 		LD	(SYS_PAGE.CONFIG_DE.ZX_START),A | ||||
| 		EX	AF,AF' | ||||
| 		OUT	(SLOT3),A | ||||
| 
 | ||||
| ;NO_SETUP_2:	CP	#FC | ||||
| ;		JR	Z,SPECTRUM_0	; Ю䍣ãà æ¨ï AY | ||||
| 
 | ||||
| ;NO_SETUP_1: | ||||
| ;!TODO ᤥ« âì  ªâ¨¢ æ¨î ¢¨â  ¤«ï ¯ à ¬¥âà  ¨§ Setup | ||||
| .ZX_MODE:	LD	A,#FE	; !HARDCODE ᤥ« âì ç¥à¥§ ¬¥âªã ACC-off Spectrum-MODE | ||||
| 		LD	BC,Port_All_Mode | ||||
| 		OUT	(C),A | ||||
| 		LD	SP,#C000 | ||||
| 		; | ||||
| 		CALL	FN_SYNC.INT_PENT | ||||
| 		CALL	SET_TXT_PALETTE.ZX | ||||
| 		; | ||||
| 		LD	E,0 | ||||
| 		CALL	LP_SET_32 | ||||
| 		; | ||||
| 		LD	E,0 | ||||
| 		LD	HL,#5104 | ||||
| 		CALL	LP_SET_32.X | ||||
| 
 | ||||
| 	; ????? ¬®¦® ¨á¯®«ì§®¢ âì ª®£¤ -¨¡ã¤ì ª ª-¨¡ã¤ì | ||||
| 	; LD D,#35 | ||||
| 	; CALL CMOS_RD | ||||
| 	; BIT 0,A | ||||
| 	; PUSH AF | ||||
| 	; CALL Z,SPRINTER_1 | ||||
| 	; POP AF | ||||
| 	; PUSH AF | ||||
| 	; CALL NZ,AY8910 | ||||
| 	; POP AF | ||||
| 
 | ||||
| .TASK_0:	XOR	A						; § ¤ ç  0, ०¨¬ 256 ª¨«®¡ ©â | ||||
| .START_TASK:	LD	IX,.BASIC_128 | ||||
| 		JP	INIT_PAGES					; ¨¨æ¨ «¨§ æ¨ï ®¬¥à®¢ áâà ¨æ ०¨¬  ᯥªâà㬠 | ||||
| 		; | ||||
| ;start_basic: | ||||
| .BASIC_128:	LD	SP,#C000 | ||||
| 		LD	HL,RES128_PROG | ||||
| 		LD	DE,ZX_VARS.PRINTER_BUFFER			; § ¯ã᪠¯à®£à ¬¬ë   BASIC-¥. | ||||
| 		LD	BC,RES128_PROG.Size | ||||
| 		LDIR | ||||
| 		DI | ||||
| 		JP	ZX_VARS.PRINTER_BUFFER | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| 
 | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;***************************************** | ||||
| ; | ||||
| ;	ˆ¨æ¨ «¨§ æ¨ï áâà ¨æ ¤«ï | ||||
| ;	ᯥªâà㬮¢áª®£® ०¨¬  ¨ | ||||
| ;	¢®ááâ ®¢«¥¨¥ ᯥªâà㬮¢áª®£® | ||||
| ;	íªà   | ||||
| ; | ||||
| ;	‚®§¢à â ¯® IX | ||||
| ; | ||||
| ;	!!! NO USE STACK !!! | ||||
| ; | ||||
| ;***************************************** | ||||
| ;!TODO á⥪ ãáâ ®¢«¥ ¢ âà¥â쥩 áâà ¨æ¥, ¥ ¨á¯®«ì§®¢ âì ¨«¨ ãáâ  ¢«¨¢ âì ¢ ¤àã£ãî! | ||||
| ; ¨¨æ¨ «¨§ æ¨ï áâà ¨æ zx spectrum | ||||
| INIT_PAGES: | ||||
| 	AND A | ||||
| 	LD E,A | ||||
| 	EX AF,AF' | ||||
| 	LD A,E | ||||
| 
 | ||||
| ;	BIT 7,A | ||||
| ;	JR Z,SCORPION_256_MODE | ||||
| ;	BIT 6,A | ||||
| ;	JR Z,PENTAGON_128_MODE | ||||
| ; | ||||
| ;PENTAGON_48_MODE: | ||||
| ;	AND #3C | ||||
| ;        OUT (SLOT0),A | ||||
| ;	INC A | ||||
| ;        OUT (SLOT1),A | ||||
| ;	INC A | ||||
| ;        OUT (SLOT2),A | ||||
| ;	INC A | ||||
| ;	LD D,A | ||||
| ;	LD BC,#1FFD | ||||
| ;	XOR A | ||||
| ;	OUT (C),A | ||||
| ;	LD B,#7F | ||||
| ;	OUT (C),A | ||||
| ;	LD A,D | ||||
| ;	OUT (SLOT3),A | ||||
| ;	JR INIT_VIDEO_REG | ||||
| ; | ||||
| ; | ||||
| ; PENTAGON_128_MODE: | ||||
| ; 	LD D,8 | ||||
| ; 	AND #38 | ||||
| ; 	JR ALL_MODE | ||||
| 
 | ||||
| SCORPION_256_MODE: | ||||
| 	LD D,16 | ||||
| 	AND #30		; ¤® 4-å ᯥªâà㬮¢ | ||||
| 
 | ||||
| ALL_MODE: | ||||
| 	OUT (SLOT0),A | ||||
| 	XOR 5		; [ ] free zx pages! | ||||
| 	OUT (SLOT1),A | ||||
| 	XOR 7		; [ ] free zx pages! | ||||
| 	OUT (SLOT2),A | ||||
| 	OR #0F		; [ ] free zx pages! | ||||
| 	LD E,A | ||||
| 
 | ||||
| .loop:  DEC D | ||||
| 
 | ||||
| 	LD A,D | ||||
| 	RLCA | ||||
| 	AND #10 | ||||
| 	LD BC,#1FFD | ||||
| 	OUT (C),A | ||||
| 
 | ||||
| 	LD A,D | ||||
| 	AND 7 | ||||
| 	OR #40 | ||||
| 	LD B,#7F | ||||
| 	OUT (C),A | ||||
| 
 | ||||
| 	LD A,E | ||||
| 	OUT (SLOT3),A | ||||
| 	DEC E | ||||
| 
 | ||||
| 	DEC D | ||||
| 	INC D | ||||
| 	JR NZ,.loop | ||||
| 
 | ||||
| INIT_VIDEO_REG: | ||||
| 	XOR A | ||||
| 	OUT (RGADR),A	; ॣ¨áâà ¢¨¤¥®  ¤à¥á  | ||||
| 	OUT (RGMOD),A	; ॣ¨áâà ¬®¤ë | ||||
| ;	OUT (RGSCR),A	; ॣ¨áâà íªà   | ||||
|          | ||||
|         ;!TEST | ||||
|          ; Restore old Spectrum Screen | ||||
| 	 ;; LD HL,#4000 | ||||
| 	 ;; LD DE,#4000 | ||||
| 	 ;; LD BC,#1B00 | ||||
| 	 ;; LDIR | ||||
| 
 | ||||
| 	 ; EX AF,AF' | ||||
| 	 ; BIT 6,A | ||||
| 	 ; JR NZ,NO_SCREEN_ALT | ||||
| 
 | ||||
| 	 ; EX AF,AF' | ||||
| 
 | ||||
| 	 ; LD A,7	; ᥤ쬠ï íªà  ï áâà ¨æ  | ||||
| 	 ; LD BC,#7FFD | ||||
| 	 ; OUT (C),A | ||||
| 
 | ||||
|          ; Restore old Spectrum Screen 2 | ||||
| 	 ;; LD HL,#C000 | ||||
| 	 ;; LD DE,#C000 | ||||
| 	 ;; LD BC,#1B00 | ||||
| 	 ;; LDIR								 | ||||
| 
 | ||||
| 	 ; XOR A | ||||
| 	 ; LD BC,#7FFD | ||||
| 	 ; OUT (C),A | ||||
|         ; | ||||
| 
 | ||||
| 	EX AF,AF' | ||||
| NO_SCREEN_ALT: | ||||
| 	AND A | ||||
| 	JP (IX) | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| ; | ||||
| ;>$< >$< >$< >$< >$< >$< [ <20>…<EFBFBD>…Œ…™€…Œ€Ÿ ‚ އ“ ] >$< >$< >$< >$< >$< >$< ; | ||||
| 
 | ||||
| ;--------[ <20>ணࠬ¬ , à §¬¥é ¥¬ ï á #5B00 ¤«ï § ¯ã᪠ Spectrum ]--------; | ||||
| RES128_PROG: | ||||
|  DISP ZX_VARS.PRINTER_BUFFER						;#5B00 | ||||
| 		XOR	A | ||||
| 		OUT	(SYS_PORT.RAM),A				; ‚®§¢à â ¢ 128k ROM | ||||
| 		LD	C,SLOT3 | ||||
| 		IN	B,(C) | ||||
| 		LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	DE,(SYS_PAGE.CONFIG_DE) | ||||
| 		OUT	(C),B | ||||
| 		; | ||||
| 		EXX | ||||
| 		 LD	A,B | ||||
| 		EXX | ||||
| 		LD	BC,Port_All_Mode | ||||
| 		OUT	(C),A | ||||
| 		; | ||||
| 		XOR	A | ||||
| 		LD	BC,#1FFD | ||||
| 		OUT	(C),A						; Scorp ¯®àâ | ||||
| 		LD	B,#7F | ||||
| 		OUT	(C),A						; 128 ¯®àâ | ||||
| 		; | ||||
| 		LD	A,E						; ãáâ ®¢ª  ª®ä¨£ãà æ¨¨ ¨ ०¨¬  TURBO | ||||
| 		OUT	(SYS_PORT.RAM),A				; CONFIG_SET | ||||
| 		; | ||||
| 		INC	D | ||||
| 		DEC	D | ||||
| 		; 0 ‚•Ž„ ‚ BASIC-128 | ||||
| 		JP	Z,0 | ||||
| 		; 1 ‚•Ž„ ‚ BASIC-48 | ||||
| 		LD	A,#10 | ||||
| 		OUT	(C),A | ||||
| 		DEC	D | ||||
| 		JP	Z,0 | ||||
| 		; 2 ‚•Ž„ ‚ TR-DOS | ||||
| 		LD	HL,0 | ||||
| 		PUSH	HL | ||||
| 		DEC	D | ||||
| 		JP	Z,#3D29 | ||||
| 		; 3 ‚•Ž„ ‚ EXPANSION | ||||
| 		;!TODO ¯®ª  ¥ à ¡®â ¥â. Page #45, BIOS (ZX_EXP) #E0 | ||||
| 		XOR	A | ||||
| 		OUT	(C),A | ||||
| 		LD	A,#02 | ||||
| 		LD	B,#1F | ||||
| 		OUT	(C),A | ||||
| 		DEC	D | ||||
| 		JP	Z,0 | ||||
| 		; | ||||
| 		XOR	A | ||||
| 		OUT	(C),A | ||||
| 		LD	A,#30 | ||||
| 		LD	B,#7F | ||||
| 		OUT	(C),A | ||||
| 		;!TEST | ||||
| 		LD	A,CNF_PORT.PENT_RESET + CNF_PORT.SCORP_RESET | ||||
| 		OUT	(CNF_PORT.OFF),A | ||||
| 		; | ||||
| 		DEC	D | ||||
| 		; 4 ‚•Ž„ ‚ TR-DOS á § ªàëâ묨 128-¬¨ ¯®àâ ¬¨ | ||||
| 		JP	Z,#3D29 | ||||
| 		; 5 ‚•Ž„ ‚ BASIC-48 á § ªàëâ묨 128-¬¨ ¯®àâ ¬¨					 | ||||
| 		JP	0 | ||||
|  ENT | ||||
| .Size		EQU	$-RES128_PROG | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| 
 | ||||
| ;---------------------[ ‡€ƒ‹“˜Šˆ „‹Ÿ #41 ‘’<E28098>€<EFBFBD>ˆ–›]----------------------; | ||||
| ;-------------[RST 08] | ||||
| RAM_BIOS_PROG:								; for CALL BIOS in #41 page | ||||
|  DISP	Spec_Page.to_bios | ||||
| 	PUSH AF | ||||
| 	LD A,ROM.BIOS | ||||
| 	OUT (SYS_PORT.ROM),A | ||||
| 	POP AF | ||||
| 	RET | ||||
|  ENT | ||||
| .Length EQU $-RAM_BIOS_PROG | ||||
| ;-------------------[] | ||||
| ;  | ||||
| ;-------------[RST 38] | ||||
| PROG_NO_ROM: | ||||
|  DISP   Spec_Page.no_zx_rom | ||||
| 	DI | ||||
| 	; | ||||
| 	LD	A,SHARED_PAGE | ||||
| 	OUT	(SLOT3),A | ||||
| 	OUT	(SLOT2),A | ||||
| 	OUT	(SLOT1),A | ||||
| 	; | ||||
| 	LD	SP,#BF00 | ||||
| 	; | ||||
| 	LD      E,0 | ||||
| 	LD      BC,BIOS.LP_OPEN_S.TXT_80x32_Default | ||||
| 	RST     ToBIOS | ||||
| 	; | ||||
| 	LD      DE,0 | ||||
| 	LD      HL,#2050 | ||||
| 	LD      C,BIOS.LP_CLS_WIN | ||||
| 	RST     ToBIOS | ||||
| 	; set scr-2 | ||||
| 	LD      A,1 | ||||
| 	OUT     (SCREEN_SWITCH),A | ||||
| 	; | ||||
| 	LD      HL,MESSAGE_NR | ||||
| 	LD      DE,#A000 | ||||
| 	LD      BC,MESSAGE_NR.size | ||||
| 	LD      A,C | ||||
| 	LDIR | ||||
| 	; | ||||
| 	LD      HL,#A000 | ||||
| 	LD      D,0							; delimiter | ||||
| 	LD      E,COLORS.CGA.FLASH + COLORS.CGA.INK.RED | ||||
| 	LD      B,A | ||||
| 	LD      C,BIOS.LP_PRINT_LINE3 | ||||
| 	RST     ToBIOS | ||||
| 	; | ||||
| .loop:	DI | ||||
|         HALT | ||||
|         JR .loop | ||||
| 	; | ||||
| MESSAGE_NR:     DZ " Spectrum ROM not installed.  Use spectrum.exe  Press Ctrl+Alt+Del or RESET" | ||||
| .size           EQU $-MESSAGE_NR | ||||
|  ENT | ||||
| PROG_NO_ROM.size EQU $-PROG_NO_ROM | ||||
| ;-------------------[] | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<;  | ||||
| ; | ||||
| ; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ; | ||||
| ; | ||||
|  ENDIF	;--------------------------------------------------------------------[^] | ||||
| @ -73,11 +73,11 @@ | ||||
| 
 | ||||
| ;FDD	EQU	#03 | ||||
| 
 | ||||
| 
 | ||||
| ;!FIXIT	®à¬ «ì® ¯à®¯¨á âì | ||||
| TEMP	EQU	#7E00   						; !HARDCODE  | ||||
| MEMMAP2	EQU	TEMP                                                    ; ¤®«¦® ¡ëâì ¢ë஢¥® ¯® ALIGN 256 | ||||
| TPOINTD	EQU	TEMP - SYS_PAGE.RAMD_KEYS.NUM - SYS_PAGE.Sp_RAMD_KEYS.NUM ; [x] 4/11/2023 | ||||
| 
 | ||||
| TPOINTD	EQU	TEMP - SYS_PAGE.RAMD_KEYS.NUM; - SYS_PAGE.Sp_RAMD_KEYS.NUM ; [x] 4/11/2023 | ||||
| 	ASSERT	(low TEMP = 0) or (low MEMMAP2 = 0), "ERROR Align 256!!!" | ||||
| 
 | ||||
| ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ; | ||||
| ;SETUP_MAIN: | ||||
| @ -247,52 +247,77 @@ CLEAR_MEM:	IN	A,(SLOT3) | ||||
| 		PUSH	AF | ||||
| 		LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| 	; ®ç¨é ¥¬ ¡ãä¥à RAM Table | ||||
| 		LD	HL,MEMMAP2 | ||||
| 		LD	DE,MEMMAP2+1 | ||||
| 		LD	BC,255 | ||||
| 		LD	(HL),0 | ||||
| 		LDIR | ||||
| 	; ª®¯¨à㥬 ZX vROM  | ||||
| 		LD	IX,SYS_PAGE.Block_ID.vROM | ||||
| 		LD	H,high SYS_PAGE.RAM_TABLE | ||||
| 		LD	D,high MEMMAP2 | ||||
| 		LD	BC,#01FF					;!HARDCODE 1 vROM RAM BLOCK ID | ||||
| 		CALL	.SAVE_RMD | ||||
| 	; [x] 28/09/2024 Žâ¤¥«ìë¥ à ¬¤¨áª¨ ¤«ï ०¨¬  ᯥªâà㬠 ¨ DSS. | ||||
| 		LD	B,high BIOS.SWAP_RAM_DRIVES.Sp2000 | ||||
| 		CALL	SWAP_RAM_DRIVES | ||||
| 	; 㦮 «¨ á®åà ïâì à ¬¤¨áª¨ ¯à¨ ¯¥à¥§ ¯ã᪥? | ||||
| 		LD	BC,CMOS_CELL.BootUpParams.Mask.SaveRAMdisks		;#400E | ||||
| 		CALL	GET_CMOS_VALUE | ||||
| 		OR	A | ||||
| 		PUSH	AF | ||||
| 		JR	Z,.skip_save_rmd | ||||
| 		; | ||||
| 	; save RAM disks on reboot when memory is cleared | ||||
| 		LD	HL,SYS_PAGE.RAMD_KEYS | ||||
| 		LD	DE,TPOINTD | ||||
| 		LD	BC,SYS_PAGE.RAMD_KEYS.NUM | ||||
| 		LDIR | ||||
| 		; [x] 4/11/2023 | ||||
| 		 LD	HL,SYS_PAGE.Sp_RAMD_KEYS | ||||
| 		 LD	BC,SYS_PAGE.Sp_RAMD_KEYS.NUM | ||||
| 		 LDIR | ||||
| 		;  LD	HL,SYS_PAGE.Sp_RAMD_KEYS | ||||
| 		;  LD	BC,SYS_PAGE.Sp_RAMD_KEYS.NUM | ||||
| 		;  LDIR | ||||
| 		; | ||||
| 	; ®ç¨é ¥¬ RAM Table | ||||
| 		LD	HL,MEMMAP2 | ||||
| 		LD	DE,MEMMAP2+1 | ||||
| 		LD	BC,255 | ||||
| 		LD	(HL),0 | ||||
| 		LDIR | ||||
| 	; ¢®ááâ  ¢«¨¢ ¥¬ RAM ¤¨áª¨  | ||||
| 	; ª®¯¨à㥬 RAM ¤¨áª¨ Sprinter mode | ||||
| 		LD	IX,SYS_PAGE.RAMD_KEYS					;RAM DISKS | ||||
| 		LD	H,high SYS_PAGE.RAM_TABLE | ||||
| 		LD	D,high MEMMAP2 | ||||
| 		LD	BC,SYS_PAGE.RAMD_KEYS.NUM*256+#FF | ||||
| 		CALL	.MEMLOOP | ||||
| 		CALL	.SAVE_RMD | ||||
| 	; [x] 4/11/2023 | ||||
| 		LD	IX,SYS_PAGE.Sp_RAMD_KEYS | ||||
| 		LD	B,SYS_PAGE.Sp_RAMD_KEYS.NUM | ||||
| 		CALL	.MEMLOOP | ||||
| 		; LD	IX,SYS_PAGE.Sp_RAMD_KEYS | ||||
| 		; LD	B,SYS_PAGE.Sp_RAMD_KEYS.NUM | ||||
| 		; CALL	.SAVE_RMD | ||||
| 	; | ||||
| 		CALL	EMM.InitMem | ||||
| 		LD	BC,CMOS_CELL.BootUpParams.Mask.SaveRAMdisks		;#400E | ||||
| 		CALL	GET_CMOS_VALUE | ||||
| 		OR	A | ||||
| 		CALL	NZ,CCHAIN | ||||
| .skip_save_rmd:	CALL	EMM.InitMem | ||||
| 		CALL	RESTORE_CHAINS | ||||
| 		POP	AF | ||||
| 		JR	Z,.skip_restore_rmd | ||||
| 		; LD	BC,CMOS_CELL.BootUpParams.Mask.SaveRAMdisks		;#400E | ||||
| 		; CALL	GET_CMOS_VALUE | ||||
| 		; OR	A | ||||
| 		; JR	Z,.skip_restore | ||||
| 		; | ||||
| 		LD	HL,TPOINTD | ||||
| 		LD	DE,SYS_PAGE.RAMD_KEYS | ||||
| 		LD	BC,SYS_PAGE.RAMD_KEYS.NUM | ||||
| 		LDIR  | ||||
| 		; | ||||
| .skip_restore_rmd: | ||||
| 		POP	AF | ||||
| 		OUT	(SLOT3),A | ||||
| 	; [x] 04/11/2023 Žâ¤¥«ìë¥ à ¬¤¨áª¨ ¤«ï ०¨¬  ᯥªâà㬠 ¨ DSS. | ||||
| 		LD	B,high BIOS.SWAP_RAM_DRIVES.Sp2000 | ||||
| 		JP	SWAP_RAM_DRIVES | ||||
| 		; LD	B,high BIOS.SWAP_RAM_DRIVES.Sp2000 | ||||
| 		; JP	SWAP_RAM_DRIVES | ||||
| 		RET | ||||
| 	; | ||||
| 	; | ||||
| .MEMLOOP: | ||||
| 		LD	A,(IX) | ||||
| .SAVE_RMD:	LD	A,(IX) | ||||
| 		INC	IX | ||||
| 		OR	A | ||||
| 		LD	L,A | ||||
| 		CALL	NZ,RCHAIN | ||||
| 		DJNZ	.MEMLOOP | ||||
| 		CALL	NZ,COPY_CHAIN | ||||
| 		DJNZ	.SAVE_RMD | ||||
| 		RET | ||||
| ; | ||||
| 
 | ||||
| @ -365,7 +390,7 @@ EXIT_SETUP:	CALL	INT_OFF | ||||
| 		CALL	TRD_MOUNT	; !TEST 24/09/2024 ¯¥à¥®á ¢ EXIT_SETUP (¯¥à¥¤ § ¯ã᪮¬ ZX) | ||||
| 		CALL	SetUp_ZX_HDD | ||||
| 
 | ||||
| 	IF FREE_ZX_PAGES | ||||
| ;	IF FREE_ZX_PAGES | ||||
| 		LD	A,Spec_Page | ||||
| 		OUT	(SLOT3),A | ||||
| 		; | ||||
| @ -411,25 +436,24 @@ EXIT_SETUP:	CALL	INT_OFF | ||||
| 		XOR	A | ||||
| 		JP	GOTO_SPECTRUM.FN | ||||
| 
 | ||||
| 	ELSE | ||||
| 		;LD	BC,#020E | ||||
| 		;CALL	GET_CMOS_VALUE | ||||
| 		;OR	A | ||||
| 		;LD	A,#EC	;SPRINTER | ||||
| 		;JR	Z,XFLEX | ||||
| 		;LD	A,#EA	;SPECTRUM | ||||
| ;	ELSE | ||||
| 	;LD	BC,#020E | ||||
| 	;CALL	GET_CMOS_VALUE | ||||
| 	;OR	A | ||||
| 	;LD	A,#EC	;SPRINTER | ||||
| 	;JR	Z,XFLEX | ||||
| 	;LD	A,#EA	;SPECTRUM | ||||
| ;XFLEX: | ||||
| 		XOR	A			;LD      A,ROM.BIOS | ||||
| 		OUT     (SYS_PORT.ROM),A | ||||
| 		POP	HL                                                      ; ¯¨å ¥âáï ¢ EXP.ASM ¢ ¯à®æ¥¤ãॠ | ||||
| 		JP      (HL) | ||||
| 		;LD	(JMPHL),HL | ||||
| 
 | ||||
| 		;LD	C,#F3 | ||||
| 		;RST_to_BIOS | ||||
| ;JMPHL		EQU $+1 | ||||
| 		;JP	#0000 | ||||
| 	ENDIF | ||||
| 		; XOR	A			;LD      A,ROM.BIOS | ||||
| 		; OUT	(SYS_PORT.ROM),A | ||||
| 		; POP	HL			; ¯¨å ¥âáï ¢ EXP.ASM ¢ ¯à®æ¥¤ãॠ | ||||
| 		; JP	(HL) | ||||
| 	;LD	(JMPHL),HL | ||||
| 	;LD	C,#F3 | ||||
| 	;RST_to_BIOS | ||||
| ;JMPHL	EQU $+1 | ||||
| 	;JP	#0000 | ||||
| 		; ENDIF | ||||
| 
 | ||||
| SetUp_ZX_HDD:	LD	D,CMOS_CELL.TRDOSmount | ||||
| 		CALL	CMOS_RD | ||||
| @ -608,8 +632,8 @@ START: | ||||
| 	 | ||||
| 	;CALL	TRD_MOUNT	; !TEST 24/09/2024 ¯¥à¥®á ¢ EXIT_SETUP (¯¥à¥¤ § ¯ã᪮¬ ZX) | ||||
| 	CALL	FDD_INSTAL | ||||
| 	CALL	ZXMODE_SETUP | ||||
| 	CALL	CLEAR_MEM | ||||
| 	CALL	ZXMODE_SETUP | ||||
| 	CALL	XY_SCREEN | ||||
| 
 | ||||
| ;R06 | ||||
| @ -1432,34 +1456,26 @@ GET_ID:	LD	HL,memBUFFER.ID | ||||
| ;R01	RET  | ||||
| 
 | ||||
| 
 | ||||
| RCHAIN: | ||||
| 	LD	E,L | ||||
| 	LDI  | ||||
| 	DEC	L | ||||
| 	LD	L,(HL) | ||||
| 	INC	L | ||||
| 	RET	Z | ||||
| 	DEC	L | ||||
| 	JR	RCHAIN | ||||
| COPY_CHAIN:	LD	E,L | ||||
| 		LDI  | ||||
| 		DEC	L | ||||
| 		LD	L,(HL) | ||||
| 		INC	L | ||||
| 		RET	Z | ||||
| 		DEC	L | ||||
| 		JR	COPY_CHAIN | ||||
| 
 | ||||
| CCHAIN: | ||||
| 	LD	HL,MEMMAP2 | ||||
| 	LD	DE,SYS_PAGE.RAM_TABLE | ||||
| 	XOR	A | ||||
| CCHAINC: | ||||
| 	CP	(HL) | ||||
| 	JR	Z,NOCOPYC | ||||
| 	LD	E,L | ||||
| 	LDI  | ||||
| 	DEC	L | ||||
| NOCOPYC: | ||||
| 	INC	L | ||||
| 	JR	NZ,CCHAINC | ||||
| 	LD	HL,TPOINTD | ||||
| 	LD	DE,SYS_PAGE.RAMD_KEYS | ||||
| 	LD	BC,SYS_PAGE.RAMD_KEYS.NUM | ||||
| 	LDIR  | ||||
| 	RET  | ||||
| RESTORE_CHAINS:	LD	HL,MEMMAP2 | ||||
| 		LD	DE,SYS_PAGE.RAM_TABLE | ||||
| 		XOR	A | ||||
| .loop:		CP	(HL) | ||||
| 		JR	Z,.NoCopy | ||||
| 		LD	E,L | ||||
| 		LDI  | ||||
| 		DEC	L | ||||
| .NoCopy:	INC	L | ||||
| 		JR	NZ,.loop | ||||
| 		RET | ||||
| 
 | ||||
| ;---------------------------------------------------------------[] | ||||
| ;REGISTER #1E | ||||
| @ -1707,26 +1723,19 @@ ZXMODE_SETUP:	IN	A,(SLOT3) | ||||
| 		 JR	Z,.No_Need_To_Load_ZXROMS | ||||
| .Load_ZXROMS:	 XOR	A | ||||
| 		 LD	R,A | ||||
| 		; | ||||
| 		; Load ZX ROM's | ||||
| 		 ;LD A,ROM.EXTENSION | ||||
| 		 ;OUT (SYS_PORT.ROM),A | ||||
| 		 ; CALL	MANAGE_ZX_PAGES.FREE_vMEMORY	;!FIXIT ¥ â  áâà ¨æ  ¢ SLOT3	; [ ] free zx pages! | ||||
| 		 ;XOR	A				;LD A,ROM.BIOS | ||||
| 		 ;OUT (SYS_PORT.ROM),A | ||||
| 		 XOR	A | ||||
| 		 LD	BC,64*256 + BIOS.ZX_MEMORY_MANAGER  ; [ ] free zx pages! HARDCODE | ||||
| 		 LD	BC,64*256 + BIOS.ZX_MEMORY_MANAGER  ; [ ] free zx pages! MANAGE_ZX_PAGES.FREE_vMEMORY | ||||
| 		 RST	ToBIOS_18 | ||||
| 		; | ||||
| 		LD	B,3				; !HARDCODE zx-rom number of pages | ||||
| 		CALL	EMM.GetMem | ||||
| 		JR	C,.init_41h			;!FIXIT ¯¥ç â âì ®è¨¡ªã	; [ ] free zx pages! | ||||
| 		CALL	init_zx_roms | ||||
| 	IFN FREE_ZX_PAGES | ||||
| 		; áâ ¢¨¬ ¬¥âªã ¥á«¨ ¯à®£à㧨«¨ <20>‡“ ᯥªâà㬠 | ||||
| 		LD	HL,'XZ' | ||||
| 		LD	(Spec_Page.flag_Z),HL | ||||
| 	ENDIF	; | ||||
| 	; IFN FREE_ZX_PAGES | ||||
| 	; 	; áâ ¢¨¬ ¬¥âªã ¥á«¨ ¯à®£à㧨«¨ <20>‡“ ᯥªâà㬠 | ||||
| 	; 	LD	HL,'XZ' | ||||
| 	; 	LD	(Spec_Page.flag_Z),HL | ||||
| 	; ENDIF	; | ||||
| .No_Need_To_Load_ZXROMS: | ||||
| 		POP	AF | ||||
| 		OUT	(SLOT3),A | ||||
| @ -1763,9 +1772,9 @@ ZXMODE_SETUP:	IN	A,(SLOT3) | ||||
| ; ¤«ï ०¨¬  zx spectrum | ||||
| ; !HARDCODE ®¬¥à  áâà ¨æ ¤«ï í¬ã«ïâ®à  <20>‡“ | ||||
| init_zx_roms:	DI | ||||
| 	;;;;;;;; | ||||
| 	IF FREE_ZX_PAGES | ||||
| 	;;;;;;;; | ||||
| 	; ;;;;;;;; | ||||
| 	; IF FREE_ZX_PAGES | ||||
| 	; ;;;;;;;; | ||||
| 	; <20>€ ‚•ŽŽ„… A = SYS_PAGE.Block_ID.vROM | ||||
| 		; ¤®¡¨¢ ¥¬ ¡ãä¥à ¤® 11 ¡ ©â®¢ ¯ãáâ묨 áâࠨ栬¨ | ||||
| 		; ¢ ¡ãä¥à 㯠¤ãâ 1 RAM BLOCK ID, 3 áâà ¨æë ¤«ï vROM ¨ #FF  | ||||
| @ -1807,72 +1816,72 @@ init_zx_roms:	DI | ||||
| 		OUT	(SYS_PORT.ROM),A | ||||
| 		LD	A,Spec_Page | ||||
| 		OUT	(SLOT3),A | ||||
| 	;;;;;;;; | ||||
| 	ELSE | ||||
| 	;;;;;;;; | ||||
| 		IN	A,(SLOT3) | ||||
| 		EX	AF,AF' | ||||
| 		; | ||||
| 		LD	A,SYS_PORT.EXTENSION | ||||
| 		OUT	(SYS_PORT.ROM),A | ||||
| 		INC	A		; !HARDCODE LD A,2 | ||||
| 		LD	B,3		; !HARDCODE 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 | ||||
| 		;!FIXIT ; [ ] free zx pages! ¯¥à¥¤¥« âì   ¢ë§®¢ FREE_ZX_PAGES.INIT_vROM | ||||
| 		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.EXPANSION				; ROM-ID - BIOS | ||||
| 		 ;LD	B,#45						;!HARDCODE page | ||||
| 		 LD	B,#41 | ||||
| 		 CALL	SET_PORTS | ||||
| 		 ; | ||||
| 		 LD	A,ACEX.vROM.BIOS_1				; ROM-ID - BIOS-1 | ||||
| 		 ;LD	B,#46						;!HARDCODE page | ||||
| 		 LD	B,#41 | ||||
| 		 CALL	SET_PORTS | ||||
| 		 ; | ||||
| 		 LD	A,ACEX.vROM.BIOS_2				; ROM-ID - BIOS-2 | ||||
| 		 ;LD	B,#47						;!HARDCODE page | ||||
| 		 LD	B,#41 | ||||
| 		 CALL	SET_PORTS | ||||
| 		; ¬®¦® § ¤¥©á⢮¢ âì ¥éñ 4 áâà ¨æë   ¯®àâë #E4..#E7 | ||||
| 	;;;;;;;; | ||||
| 	ENDIF | ||||
| 	;;;;;;;; | ||||
| ; 	;;;;;;;; | ||||
| ; 	ELSE | ||||
| ; 	;;;;;;;; | ||||
| ; 		IN	A,(SLOT3) | ||||
| ; 		EX	AF,AF' | ||||
| ; 		; | ||||
| ; 		LD	A,SYS_PORT.EXTENSION | ||||
| ; 		OUT	(SYS_PORT.ROM),A | ||||
| ; 		INC	A		; !HARDCODE LD A,2 | ||||
| ; 		LD	B,3		; !HARDCODE 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 | ||||
| ; 		;!FIXIT ; [ ] free zx pages! ¯¥à¥¤¥« âì   ¢ë§®¢ FREE_ZX_PAGES.INIT_vROM | ||||
| ; 		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.EXPANSION				; ROM-ID - BIOS | ||||
| ; 		 ;LD	B,#45						;!HARDCODE page | ||||
| ; 		 LD	B,#41 | ||||
| ; 		 CALL	SET_PORTS | ||||
| ; 		 ; | ||||
| ; 		 LD	A,ACEX.vROM.BIOS_1				; ROM-ID - BIOS-1 | ||||
| ; 		 ;LD	B,#46						;!HARDCODE page | ||||
| ; 		 LD	B,#41 | ||||
| ; 		 CALL	SET_PORTS | ||||
| ; 		 ; | ||||
| ; 		 LD	A,ACEX.vROM.BIOS_2				; ROM-ID - BIOS-2 | ||||
| ; 		 ;LD	B,#47						;!HARDCODE page | ||||
| ; 		 LD	B,#41 | ||||
| ; 		 CALL	SET_PORTS | ||||
| ; 		; ¬®¦® § ¤¥©á⢮¢ âì ¥éñ 4 áâà ¨æë   ¯®àâë #E4..#E7 | ||||
| ; 	;;;;;;;; | ||||
| ; 	ENDIF | ||||
| ; 	;;;;;;;; | ||||
| 
 | ||||
| .init_41h:	; § ¡¨âì FF- ¬¨ | ||||
| 		LD	HL,#C000 | ||||
|  | ||||
| @ -286,7 +286,6 @@ ZX_MEMORY: | ||||
| ; ????? SYS_PAGE.SHARED_BUFFER_256b | ||||
| ; | ||||
| ; [ ] ‘âà ¨æ  Ž‡“ ¤«ï ᪮௠ ¢ SLOT0 ¤®«¦  ᮢ¯ ¤ âì á ã«¥¢®© áâࠨ楩 ¯®àâ  #7FFD | ||||
|  IF	FREE_ZX_PAGES | ||||
|  MODULE	MANAGE_ZX_PAGES | ||||
| 
 | ||||
| ;-----------------------------------------------------------------------; | ||||
| @ -316,11 +315,11 @@ INIT_vRAM:	XOR	A | ||||
| 		; | ||||
| 		XOR	A | ||||
| 		OUT	(C),A | ||||
| 		BIT	3,E	; 128/512 | ||||
| 		BIT	0,E	; 128/512 | ||||
| 		RET	Z | ||||
| 		; set 128 + 384 | ||||
| 		;LD	A,SYS_PORT.CNF_512 | ||||
| 		;OUT	(SYS_PORT.ROM),A | ||||
| 		LD	A,SYS_PORT.CNF_512 + SYS_PORT.CNF_0 + SYS_PORT.TURBO.ON | ||||
| 		OUT	(SYS_PORT.ROM),A | ||||
| 		; | ||||
| 		LD	D,%0100'0000 | ||||
| 		CALL	SET_7FFD | ||||
| @ -385,7 +384,7 @@ INIT_vROM:	LD	A,(HL) | ||||
| 		PUSH	DE | ||||
| 		PUSH	HL | ||||
| 		 LD	C,BIOS.SET_PORTS | ||||
| 		 RST_to_BIOS | ||||
| 		 CALL	ToBIOS_FromEXT | ||||
| 		 ;CALL	SET_PORTS | ||||
| 		POP	HL | ||||
| 		POP	DE | ||||
| @ -434,7 +433,7 @@ INIT_vROM:	LD	A,(HL) | ||||
| ; FN 1x | ||||
| ;		   16 - ¯®«ãç¨âì à ¬¡«®ª¨ ¨¨æ¨ «¨§¨à®¢ ëå vROM ¨ VRAM | ||||
| ;	       17..31 - § à¥§¥à¢¨à®¢ ë | ||||
| ; FN 2x | ||||
| ; FN 2x ;!TODO | ||||
| ;		   32 - § à¥§¥à¢¨à®¢ ® | ||||
| ;		   33 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Spectrum  48k ¨ ¨¨â 2-å áâà ¨æ vROM | ||||
| ;		   34 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Pentagon 128k ¨ ¨¨â 3-å áâà ¨æ vROM | ||||
| @ -524,15 +523,15 @@ FREE_vRAM:	LD	A,(SYS_PAGE.Block_ID.vRAM) | ||||
| 		RET | ||||
| ;--------------; | ||||
| FREE_vMEMORY:	CALL	FREE_vRAM | ||||
| 		;JR	FREE_vROM | ||||
| ;--------------; | ||||
| FREE_vROM:	LD	A,(SYS_PAGE.Block_ID.vROM) | ||||
| 		OR	A | ||||
| 		RET	Z | ||||
| 		LD	C,BIOS.FreeMem | ||||
| 		CALL	ToBIOS_FromEXT | ||||
| 		RET	C | ||||
| 		XOR	A | ||||
| 		LD	(SYS_PAGE.Block_ID.vROM),A | ||||
| 		LD	C,BIOS.FreeMem | ||||
| 		RST_to_BIOS | ||||
| ;--------------; | ||||
| RES_FLAG_ZXvROM:			; ¥ ¤®«¦® ¯®àâ¨âì DE | ||||
| 		EX	AF,AF' | ||||
| @ -561,7 +560,7 @@ GET_128k_MEM:	LD	D,ZX_MEMORY.MODE_128k | ||||
| GET_XXX_MEM:	CALL	FREE_vRAM | ||||
| .init:		LD	B,D | ||||
| 		LD	C,BIOS.GetMem | ||||
| 		RST_to_BIOS | ||||
| 		CALL	ToBIOS_FromEXT | ||||
| 		;CALL	EMM.GetMem | ||||
| 		RET	C | ||||
| 		LD	(SYS_PAGE.Block_ID.vRAM),A | ||||
| @ -598,12 +597,12 @@ GET_SCORP_RAM:	CALL	FREE_vRAM | ||||
| 		; Get Pent128 mem | ||||
| 		LD	B,ZX_MEMORY.MODE_128k | ||||
| 		LD	C,BIOS.GetMem | ||||
| 		RST_to_BIOS | ||||
| 		CALL	ToBIOS_FromEXT | ||||
| 		;CALL	EMM.GetMem | ||||
| 		; A - Pent128 mem block id | ||||
| 		LD	B,D	; Scorp128 mem block id | ||||
| 		LD	C,BIOS.MergeMemBlocks | ||||
| 		RST_to_BIOS | ||||
| 		CALL	ToBIOS_FromEXT | ||||
| 		;CALL	EMM.MergeMemBlocks | ||||
| 		LD	(SYS_PAGE.Block_ID.vRAM),A | ||||
| 		RET | ||||
| @ -625,7 +624,7 @@ GET_SCORP_RAM:	CALL	FREE_vRAM | ||||
| 		; | ||||
| .error_no_mem:	LD	A,C | ||||
| 		LD	C,BIOS.FreeMem | ||||
| 		RST_to_BIOS | ||||
| 		CALL	ToBIOS_FromEXT | ||||
| 		;CALL	EMM.FreeMem | ||||
| 		LD	A,BIOS.Error.EMM.NoMemory | ||||
| 		SCF | ||||
| @ -675,56 +674,54 @@ GOTO_SPECTRUM:	LD	A,BIOS.Error.NotSupported | ||||
| 		LD	SP,#C000 | ||||
| 		;!TODO ᤥ« âì  ªâ¨¢ æ¨î ¢¨â  ¤«ï ¯ à ¬¥âà  ¨§ Setup | ||||
| 		; ãáâ ®¢ª  ¨â  | ||||
| 	EXX | ||||
| 		LD	C,BIOS.FN_SYNC | ||||
| 		RST_to_BIOS | ||||
| 		;CALL	FN_SYNC | ||||
| 		EXX | ||||
| 		 LD	C,BIOS.FN_SYNC | ||||
| 		 CALL	ToBIOS_FromEXT | ||||
| 		EXX | ||||
| 		; ãáâ ®¢ª  à §¢ñà⪨ | ||||
| 	EXX | ||||
| 		LD	A,C | ||||
| 	EXX | ||||
| 		RLCA | ||||
| 		AND	%0000'0001 | ||||
| 		OR	%1000'0110 | ||||
| 		LD	C,BIOS.FN_SYNC | ||||
| 		RST_to_BIOS | ||||
| 		;CALL	FN_SYNC | ||||
| 	EXX | ||||
| 		LD	A,C | ||||
| 	EXX | ||||
| 		EXX | ||||
| 		 RLCA | ||||
| 		 AND	%0000'0001 | ||||
| 		 OR	%1000'0110 | ||||
| 		 LD	C,BIOS.FN_SYNC | ||||
| 		 CALL	ToBIOS_FromEXT | ||||
| 		EXX | ||||
| 		; | ||||
| 		LD	A,C | ||||
| 		EXX | ||||
| 		AND	%0000'0100		;!TODO § ¯®¬¨âì/¢®ááâ ®¢¨âì ª á⮬ãî ¯ «¨âàã? | ||||
| 		LD	BC,BIOS.SET_PAL_INIT.ZX | ||||
| 		CALL	Z,ToBIOS_FromEXT | ||||
| 		; | ||||
| 		LD	E,0 | ||||
| 		LD	BC,BIOS.LP_OPEN_S.ZX_32x24_Default | ||||
| 		RST_to_BIOS | ||||
| 		;CALL	LP_SET_32 | ||||
| 		CALL	ToBIOS_FromEXT | ||||
| 		; | ||||
| 		LD	E,0 | ||||
| 		LD	HL,#5104 | ||||
| 		LD	BC,BIOS.LP_OPEN_S.ZX_32x24 | ||||
| 		RST_to_BIOS | ||||
| 		;CALL	LP_SET_32.X | ||||
| 		; .SHARED_BUFFER_256b | ||||
| 		CALL	ToBIOS_FromEXT | ||||
| 		; | ||||
| 		LD	A,(SYS_PAGE.Block_ID.vRAM) | ||||
| 		LD	HL,SYS_PAGE.SHARED_BUFFER_256b | ||||
| 		LD	C,BIOS.GetMemBlkPages | ||||
| 		RST_to_BIOS | ||||
| 		;CALL	EMM.GetMemBlkPages | ||||
| 		CALL	ToBIOS_FromEXT | ||||
| 		;!FIXIT | ||||
| 		 ;RET C | ||||
| 		 ;RET	C | ||||
| 		; !FIXIT ¯à®¢¥àª  à §¬¥à  ¡«®ª , ᤥ« âì, ç⮡ ¢ë¡¨à «áï ®¡êñ¬ ¯ ¬ï⨠| ||||
| 		 ;LD	A,B | ||||
| 		 ;CP	16 | ||||
| 		; | ||||
| 		LD	D,B | ||||
| ;.TASK_0:	XOR	A						; § ¤ ç  0, ०¨¬ 256 ª¨«®¡ ©â | ||||
| .START_TASK:	LD	IY,.BASIC_128 | ||||
| 		JP	INIT_PAGES					; ¨¨æ¨ «¨§ æ¨ï ®¬¥à®¢ áâà ¨æ ०¨¬  ᯥªâà㬠 | ||||
| 		;.TASK_0: § ¤ ç  0, ०¨¬ 256 ª¨«®¡ ©â | ||||
| .START_TASK:	XOR	A | ||||
| 		OUT	(RGADR),A	; ॣ¨áâà ¢¨¤¥®  ¤à¥á  | ||||
| 		OUT	(RGMOD),A	; ॣ¨áâà ¬®¤ë | ||||
| 		; | ||||
| ;start_basic: | ||||
| 		LD	IY,.BASIC_128 | ||||
| 		JP	INIT_PAGES					; ¨¨æ¨ «¨§ æ¨ï ®¬¥à®¢ áâà ¨æ ०¨¬  ᯥªâà㬠 | ||||
| 		;start_basic: | ||||
| .BASIC_128:	LD	SP,#C000 | ||||
| 		LD	HL,RES128_PROG | ||||
| 		LD	DE,ZX_VARS.PRINTER_BUFFER			; § ¯ã᪠¯à®£à ¬¬ë   BASIC-¥. | ||||
| @ -754,8 +751,8 @@ GOTO_SPECTRUM:	LD	A,BIOS.Error.NotSupported | ||||
| ; D  - ª®«¨ç¥á⢮ íâ¨å áâà ¨æ | ||||
| INIT_PAGES:	LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT1),A | ||||
| 		==== | ||||
| 		LD	A,SYS_PORT.TURBO.ON + SYS_PORT.CNF_0 + SYS_PORT.CNF_512	;!FIXIT ¯¥à¥¤¥« âì ¨¨â. ¥á«¨ 512, â® ¥â 1ffd ¨  ®¡®à®â | ||||
| 		; [ ] free zx pages! ¯¥à¥¤¥« âì ¨¨â. ¥á«¨ 512, â® ¥â 1ffd ¨  ®¡®à®â | ||||
| 		LD	A,SYS_PORT.TURBO.ON + SYS_PORT.CNF_0; + SYS_PORT.CNF_512 | ||||
| 		OUT	(SYS_PORT.ROM),A | ||||
| 		; | ||||
| 		RES	7,H | ||||
| @ -777,28 +774,28 @@ INIT_PAGES:	LD	A,SYS_PAGE | ||||
| 		 DI | ||||
| 		 HALT | ||||
| 		; | ||||
| .set_48k:	LD	A,(HL)						; SLOT0, SLOT3 page | ||||
| 		INC	HL | ||||
| 		LD	E,(HL)						; SLOT1 page | ||||
| 		INC	HL | ||||
| 		LD	D,(HL)						; SLOT2 page | ||||
| 		JR	.set_slots | ||||
| 		; | ||||
| .set_scorp:	CALL	MANAGE_ZX_PAGES.INIT_vRAM | ||||
| 		LD	A,#10 | ||||
| 		CALL	MANAGE_ZX_PAGES.INIT_vRAM.set_1ffd | ||||
| 		; A = 0, BC = #7FFD | ||||
| 		LD	B,#1F | ||||
| 		OUT	(C),A | ||||
| 		JR	.set_table | ||||
| 		INC	A						; reset ZF | ||||
| 		; | ||||
| .set_pent:	CALL	MANAGE_ZX_PAGES.INIT_vRAM | ||||
| .set_pent:	CALL	Z,MANAGE_ZX_PAGES.INIT_vRAM | ||||
| 		; ¬¥ï¥¬ ¯®à冷ª ¤«ï ¯à®æ¥¤ãàë set_48k | ||||
| .set_table:	LD	A,(SYS_PAGE.SHARED_BUFFER_256b+2 - #8000)	; SLOT2 page | ||||
| 		LD	D,A | ||||
| 		LD	A,(SYS_PAGE.SHARED_BUFFER_256b+5 - #8000)	; SLOT1 page | ||||
| 		LD	E,A | ||||
| 		LD	A,(SYS_PAGE.SHARED_BUFFER_256b+0 - #8000)	; SLOT0, SLOT3 page | ||||
| 		JR	.set_slots | ||||
| 		; | ||||
| .set_48k:	LD	A,(HL)						; SLOT0, SLOT3 page | ||||
| 		INC	HL | ||||
| 		LD	E,(HL)						; SLOT1 page | ||||
| 		INC	HL | ||||
| 		LD	D,(HL)						; SLOT2 page | ||||
| 		; | ||||
| .set_slots:	OUT	(SLOT0),A | ||||
| 		OUT	(SLOT3),A | ||||
| @ -807,10 +804,7 @@ INIT_PAGES:	LD	A,SYS_PAGE | ||||
| 		LD	A,D | ||||
| 		OUT	(SLOT2),A | ||||
| 		; | ||||
| 		XOR A | ||||
| 		OUT (RGADR),A	; ॣ¨áâà ¢¨¤¥®  ¤à¥á  | ||||
| 		OUT (RGMOD),A	; ॣ¨áâà ¬®¤ë | ||||
| 		JP (IY) | ||||
| 		JP	(IY) | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| ; | ||||
| @ -886,4 +880,3 @@ RES128_PROG: | ||||
| ;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<;  | ||||
| ; | ||||
| ; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ; | ||||
|  ENDIF | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| ;=======================[All shared EQUs]=======================; | ||||
| BETA_BUILD	EQU			7			; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ   áâ à⮢®¬ íªà ¥ | ||||
| BETA_BUILD	EQU			8			; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ   áâ à⮢®¬ íªà ¥ | ||||
| ;======================[All shared defines]=====================; | ||||
|  DEFINE		PACKED_MAIN		0			; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®? | ||||
|  DEFINE		SP2000_Loader_Flag	#0107			; | ||||
| @ -11,7 +11,6 @@ BETA_BUILD	EQU			7			;  | ||||
|  DEFINE		USE_E1_SCANCODE		0			; | ||||
|  DEFINE		RECOVERYmountTYPE	1			; 1 - ¡ëáâàë© ¥¬®£® § å à¤ª®¦¥ë© ¢ à¨ â. 2 - ¡®«¥¥ "¯à ¢¨«ìë©" | ||||
|  DEFINE		RECOVERYrdChooseTYPE	1			; 1 - RECOVERY £à㧨âáï ¢ ¤¨áª 15, 2 - ¨é¥âáï ᢮¡®¤ë© à ¬¤¨áª, ¥á«¨ ¥â, â® ¢ 15-ë© | ||||
|  DEFINE		FREE_ZX_PAGES		1			; 1 - ®á¢®¡®¤¨âì áâà ¨æë ᯥªâà㬠 ;!TODO | ||||
| ;----[ ‡ ¤¥à¦ª  ¢ ª ¤à å ¯®á«¥ ®âà¨á®¢ª¨ «®£®â¨¯  (0 = 256) ]---; | ||||
|  DEFINE		LOGO_DELAY_MIN		25			; | ||||
|  DEFINE		LOGO_DELAY_NORM		100			; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tolik
						Tolik