перед сменой схемы free zx pages
This commit is contained in:
		
							parent
							
								
									a23b2eb756
								
							
						
					
					
						commit
						23eefc8625
					
				| @ -1 +1 @@ | ||||
| Subproject commit 51a136edca8c04554de0b189d7680ebbe358c64a | ||||
| Subproject commit 18eb6779037e4e6291119d52cd7b8aba3b51de6c | ||||
| @ -917,7 +917,7 @@ FN_SYNC: | ||||
| 	IN B,(C) | ||||
| 	 LD A,SYS_PAGE | ||||
| 	 OUT (C),A | ||||
| 	 LD DE,(SYS_PAGE.CONFIG_ALL) | ||||
| 	 LD DE,(SYS_PAGE.SCREEN_TABLE) | ||||
| 	OUT (C),B | ||||
| 
 | ||||
| 	CALL Test_CONFIG_ALL | ||||
| @ -929,7 +929,7 @@ FN_SYNC: | ||||
| 	IN B,(C) | ||||
| 	 LD A,SYS_PAGE | ||||
| 	 OUT (C),A | ||||
| 	 LD DE,(SYS_PAGE.CONFIG_ALL) | ||||
| 	 LD DE,(SYS_PAGE.SCREEN_TABLE) | ||||
| 	OUT (C),B | ||||
| 
 | ||||
| 	LD D,CMOS_CELL.ScreenSET | ||||
| @ -969,7 +969,7 @@ FN_SYNC: | ||||
| 	IN A,(PORT_Y) | ||||
| 	LD (SYS_PAGE.COPY_RGADR),A | ||||
| 
 | ||||
| 	LD (SYS_PAGE.CONFIG_ALL),IX | ||||
| 	LD (SYS_PAGE.SCREEN_TABLE),IX | ||||
| 	XOR	A | ||||
| 
 | ||||
| ;----[START]-----------------------[? 1] | ||||
| @ -1047,7 +1047,7 @@ FN_SYNC: | ||||
| ;-----------------------------[^ 2]----- | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT3),A | ||||
| 	LD IX,(SYS_PAGE.CONFIG_ALL) | ||||
| 	LD IX,(SYS_PAGE.SCREEN_TABLE) | ||||
| 
 | ||||
| 	EX AF,AF' | ||||
| 	ADD A,#80 | ||||
|  | ||||
| @ -293,7 +293,7 @@ INIT_CONFIG_ALL: | ||||
| .setDefaultINT: | ||||
| 	LD HL,SCREEN_TABLES.PENTAGON                                    ; set pentagon int | ||||
| .setINT: | ||||
| 	LD (SYS_PAGE.CONFIG_ALL - #4000),HL | ||||
| 	LD (SYS_PAGE.SCREEN_TABLE - #4000),HL | ||||
| ;------------[new code end]------------- | ||||
| ; | ||||
| 	LD DE,CNF_PORT.CNF_0 + ROM.BIOS | ||||
| @ -301,7 +301,7 @@ INIT_CONFIG_ALL: | ||||
| 
 | ||||
| 	LD HL,SYS_PAGE.ZX_TASK.CURRENT - #4000				; 㡨âì ¢á¥ § ¤ ç¨ | ||||
| 	LD DE,SYS_PAGE.ZX_TASK.CURRENT+1 - #4000 | ||||
| 	LD BC,_#ZX_TASK - 1 | ||||
| 	LD BC,_ZX_TASK - 1 | ||||
| 	LD (HL),0 | ||||
| 	LDIR | ||||
| 
 | ||||
|  | ||||
| @ -102,7 +102,7 @@ FN_ENTRANCE:	;!TODO	A - TASK NUMBER | ||||
| ;‚室:	A - TASK NUMBER | ||||
| GET_ZX_TASK_DATA: | ||||
| 		 GET_ZX_TASK_DATA_OFFSET | ||||
| 		 ADD	A,_#ZX_TASK_DATA | ||||
| 		 ADD	A,_ZX_TASK_DATA | ||||
| 		 LD	C,A | ||||
| 		 LD	B,0 | ||||
| 		 LD	IX,SYS_PAGE.ZX_TASK.CURRENT | ||||
| @ -113,8 +113,8 @@ GET_ZX_TASK_DATA: | ||||
| 
 | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;‚室:	A - TASK NUMBER | ||||
| FREE_vMEMORY:	LD	D,(IX + _#ZX_TASK_DATA.vROM_ID) | ||||
| 		LD	A,(IX + _#ZX_TASK_DATA.vRAM_ID) | ||||
| FREE_vMEMORY:	LD	D,(IX + _ZX_TASK_DATA.vROM_ID) | ||||
| 		LD	A,(IX + _ZX_TASK_DATA.vRAM_ID) | ||||
| 		CALL	EMM.FreeMem | ||||
| 		LD	A,D | ||||
| 		CALL	EMM.FreeMem | ||||
| @ -128,8 +128,8 @@ FREE_vMEMORY:	LD	D,(IX + _#ZX_TASK_DATA.vROM_ID) | ||||
| ;‚ë室:	H - vRAM block ID | ||||
| ;	L - vROM block ID | ||||
| GET_RAMBLOCK_IDs: | ||||
| 		LD	H,(IX + _#ZX_TASK_DATA.vRAM_ID) | ||||
| 		LD	L,(IX + _#ZX_TASK_DATA.vROM_ID) | ||||
| 		LD	H,(IX + _ZX_TASK_DATA.vRAM_ID) | ||||
| 		LD	L,(IX + _ZX_TASK_DATA.vROM_ID) | ||||
| 		RET | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| @ -137,14 +137,14 @@ GET_RAMBLOCK_IDs: | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;‚室:	HL - ¡«®ª áâà ¨æ   ª®â®àë¥ ¬ ¯¯¨¬ (¢á¥£¤  11 èâ.) | ||||
| ;	 A - TASK NUMBER | ||||
| INIT_vROM:	LD	A,(IX + _#ZX_TASK_DATA.vROM_ID) | ||||
| INIT_vROM:	LD	A,(IX + _ZX_TASK_DATA.vROM_ID) | ||||
| 		CP	(HL) | ||||
| 		EX	DE,HL | ||||
| 		CALL	NZ,EMM.FreeMem | ||||
| 		EX	DE,HL | ||||
| 		; | ||||
| 		LD	A,(HL) | ||||
| 		LD	(IX + _#ZX_TASK_DATA.vROM_ID),A | ||||
| 		LD	(IX + _ZX_TASK_DATA.vROM_ID),A | ||||
| 		INC	HL | ||||
| 		; ãáâ ®¢ª  ¯®à⮢ ROM | ||||
| 		LD	DE,.PORTS | ||||
| @ -246,7 +246,7 @@ GET_XXX_MEM:	CALL	FREE_vRAM | ||||
| .init:		LD	B,D | ||||
| 		CALL	EMM.GetMem | ||||
| 		RET	C | ||||
| 		LD	(IX + _#ZX_TASK_DATA.vRAM_ID),A | ||||
| 		LD	(IX + _ZX_TASK_DATA.vRAM_ID),A | ||||
| 		RET | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| @ -254,9 +254,9 @@ GET_XXX_MEM:	CALL	FREE_vRAM | ||||
| ;-----------------------------------------------------------------------; | ||||
| FREE_vRAM:	XOR	A | ||||
| 		LD	C,A | ||||
| 		OR	(IX + _#ZX_TASK_DATA.vRAM_ID) | ||||
| 		OR	(IX + _ZX_TASK_DATA.vRAM_ID) | ||||
| 		RET	Z | ||||
| 		LD	(IX + _#ZX_TASK_DATA.vRAM_ID),C | ||||
| 		LD	(IX + _ZX_TASK_DATA.vRAM_ID),C | ||||
| 		JP	EMM.FreeMem | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| @ -292,7 +292,7 @@ GET_SCORP_RAM:	CALL	FREE_vRAM | ||||
| 		; A - Pent128 mem block id | ||||
| 		LD	B,D	; Scorp128 mem block id | ||||
| 		CALL	EMM.MergeMemBlocks | ||||
| 		LD	(IX + _#ZX_TASK_DATA.vRAM_ID),A | ||||
| 		LD	(IX + _ZX_TASK_DATA.vRAM_ID),A | ||||
| 		RET | ||||
| 		; | ||||
| 	; 䨫ìâà ¤«ï áâà ¨æ ᪮௠ | ||||
| @ -334,7 +334,7 @@ GET_SCORP_RAM:	CALL	FREE_vRAM | ||||
| ;      	     CF: 1 - ¥ ¯¥à¥ãáâ  ¢«¨¢ âì ¯ «¨âàã | ||||
| 
 | ||||
| /* | ||||
| ; ‚室:	D[3..0]: 0 - BASIC 128, 1 - BASIC 48, 2 - TR-DOS 128, ;!FIXIT ¯¥à¥¤¥« âì, íâ® CONFIG_DE | ||||
| ; ‚室:	D[3..0]: 0 - BASIC 128, 1 - BASIC 48, 2 - TR-DOS 128, | ||||
| ; 	    	 3 - EXPANSION. C § ªàëâ묨 128-¬¨ ¯®àâ ¬¨: | ||||
| ; 	    	 4 - TR-DOS, 5 - BASIC 48 | ||||
| ;	D[7..4]: ;!TODO Port All Mode: b4 - Acc off/on | ||||
| @ -361,35 +361,35 @@ GOTO_SPEC:	DI | ||||
| 		LD	SP,#C000 | ||||
| 		LD	A,D | ||||
| 		CALL	GET_ZX_TASK_DATA | ||||
| 		LD	A,(IX + _#ZX_TASK_DATA.STATE) | ||||
| 		LD	A,(IX + _ZX_TASK_DATA.STATE) | ||||
| 		RR	E | ||||
| 		JR	NC,.save_state | ||||
| 		OR	%0000'0100 | ||||
| .save_state:	LD	(IX + _#ZX_TASK_DATA.STATE),A | ||||
| .save_state:	LD	(IX + _ZX_TASK_DATA.STATE),A | ||||
| 		; | ||||
| 		; [ ] free zx pages! ;!TODO ¥á«¨ § ¤ ç  ¯ãáâ ï, â® ¯¥à¢ë© ¨¨â | ||||
| 		; | ||||
| 	;!TODO ᤥ« âì  ªâ¨¢ æ¨î ¢¨â  ¤«ï ¯ à ¬¥âà  ¨§ Setup | ||||
| 	;!TODO ãáâ ®¢¨âì £¤¥-¨¡ã¤ì ¨¦¥ áâíª ¨§ TASK | ||||
| 		LD	A,(SYS_PAGE.CONFIG_DE.ZX_START) | ||||
| 		LD	(IX + _#ZX_TASK_DATA.CONFIG_DE + 1),A | ||||
| 		LD	(IX + _ZX_TASK_DATA.CONFIG_DE + 1),A | ||||
| 		; | ||||
| 		LD	A,(IX + _#ZX_TASK_DATA.PORT_ALL_MODE) | ||||
| 		LD	A,(IX + _ZX_TASK_DATA.PORT_ALL_MODE) | ||||
| 		LD	BC,Port_All_Mode | ||||
| 		OUT	(C),A | ||||
| 		; ãáâ ®¢ª  ¨â  | ||||
| 		LD	A,(IX + _#ZX_TASK_DATA.FN_SYNC) | ||||
| 		LD	A,(IX + _ZX_TASK_DATA.FN_SYNC) | ||||
| 		AND	%0000'0111 | ||||
| 		CALL	FN_SYNC | ||||
| 		; ãáâ ®¢ª  à §¢ñà⪨ | ||||
| 		LD	A,(IX + _#ZX_TASK_DATA.FN_SYNC) | ||||
| 		LD	A,(IX + _ZX_TASK_DATA.FN_SYNC) | ||||
| 		AND	%1100'0000 | ||||
| 		OR	%0010'0000 | ||||
| 		RLCA | ||||
| 		RLCA | ||||
| 		CALL	FN_SYNC | ||||
| 		; | ||||
| 		LD	A,(IX + _#ZX_TASK_DATA.STATE) | ||||
| 		LD	A,(IX + _ZX_TASK_DATA.STATE) | ||||
| 		AND	%0000'0100		;!TODO § ¯®¬¨âì/¢®ááâ ®¢¨âì ª á⮬ãî ¯ «¨âàã? | ||||
| 		CALL	Z,SET_TXT_PALETTE.ZX | ||||
| 		; | ||||
| @ -400,7 +400,7 @@ GOTO_SPEC:	DI | ||||
| 		LD	HL,#5104 | ||||
| 		CALL	LP_SET_32.X | ||||
| 		; .SHARED_BUFFER_256b | ||||
| 		LD	A,(IX + _#ZX_TASK_DATA.vRAM_ID) | ||||
| 		LD	A,(IX + _ZX_TASK_DATA.vRAM_ID) | ||||
| 		LD	HL,SYS_PAGE.SHARED_BUFFER_256b | ||||
| 		CALL	EMM.GetMemBlkPages | ||||
| 		;!FIXIT | ||||
| @ -758,8 +758,8 @@ RES128_PROG: | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT3),A | ||||
| 	LD DE,(SYS_PAGE.CONFIG_DE) | ||||
| 	XOR A | ||||
| 	LD (SYS_PAGE.CONFIG_DE.ZX_START),A | ||||
| 	;XOR A | ||||
| 	;LD (SYS_PAGE.CONFIG_DE.ZX_START),A | ||||
| 	OUT (C),B | ||||
| 
 | ||||
| 	LD BC,#1FFD | ||||
|  | ||||
| @ -138,32 +138,32 @@ TASK_SWITCH: | ||||
| 	OUT (SLOT3),A | ||||
| 
 | ||||
| 	LD	IX,SYS_PAGE.ZX_TASK.CURRENT	; ¤ ë¥ § ¤ ç | ||||
| 	LD	A,_#ZX_TASK_DATA		; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç | ||||
| 	LD	A,_ZX_TASK_DATA		; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç | ||||
| 	ADD	A,(IX)				; ᬥ饨¥ ¤ ëå ⥪ã饩 § ¤ ç¨ | ||||
| 	LD	E,A | ||||
| 	LD	D,0 | ||||
| 	ADD	IX,DE				; ¤ ë¥ ⥪ã饩 § ¤ ç¨ | ||||
| 
 | ||||
| 	LD (IX + _#ZX_TASK_DATA.SLOT3_PAGE),B	; á®åà ¨âì áâà ¨æã 3 | ||||
| 	LD (IX + _ZX_TASK_DATA.SLOT3_PAGE),B	; á®åà ¨âì áâà ¨æã 3 | ||||
| 	LD HL,0 | ||||
| 	ADD HL,SP | ||||
| 	LD (IX + _#ZX_TASK_DATA.SP),L		; á®åà ¨âì á⥪ § ¤ ç¨ | ||||
| 	LD (IX + _#ZX_TASK_DATA.SP + 1),H | ||||
| 	SET 0,(IX + _#ZX_TASK_DATA.STATE)	; ãáâ ®¢¨âì ä« £ á®åà ¥®á⨠⥪ã饩 § ¤ ç¨ | ||||
| 	RES 1,(IX + _#ZX_TASK_DATA.STATE)	; ãáâ ®¢¨âì ä« £, çâ® § ¤ ç  ¯®ª¨ãâ  | ||||
| 	LD (IX + _ZX_TASK_DATA.SP),L		; á®åà ¨âì á⥪ § ¤ ç¨ | ||||
| 	LD (IX + _ZX_TASK_DATA.SP + 1),H | ||||
| 	SET 0,(IX + _ZX_TASK_DATA.STATE)	; ãáâ ®¢¨âì ä« £ á®åà ¥®á⨠⥪ã饩 § ¤ ç¨ | ||||
| 	RES 1,(IX + _ZX_TASK_DATA.STATE)	; ãáâ ®¢¨âì ä« £, çâ® § ¤ ç  ¯®ª¨ãâ  | ||||
| 
 | ||||
| 	LD	IX,SYS_PAGE.ZX_TASK.CURRENT | ||||
| 	LD	A,_#ZX_TASK_DATA		; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç | ||||
| 	LD	A,_ZX_TASK_DATA		; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç | ||||
| 	ADD	A,C				; ᬥ饨¥ ¤ ëå ®¢®© § ¤ ç¨ | ||||
| 	LD	E,A | ||||
| 	LD	D,0 | ||||
| 	ADD	IX,DE				; ¤ ë¥ ®¢®© § ¤ ç¨ | ||||
| 
 | ||||
| ;	BIT 1,(IX + _#ZX_TASK_DATA.STATE) | ||||
| ;	BIT 1,(IX + _ZX_TASK_DATA.STATE) | ||||
| ;	JR NZ,TASK_IN_WORK			; § ¤ ç  ¢ à ¡®â¥ ??? ¥¢¥à®¥ § ¢¥à襨¥ | ||||
| ;						; á¡à á뢠âì ¨«¨ ¯à®áâ® ¢®§¢à é âìáï | ||||
| 
 | ||||
| 	BIT 0,(IX + _#ZX_TASK_DATA.STATE)	; ¡ë«  á®åà ¥ /¥â | ||||
| 	BIT 0,(IX + _ZX_TASK_DATA.STATE)	; ¡ë«  á®åà ¥ /¥â | ||||
| 	JR NZ,TASK_SET				; § ¤ ç  áãé¥áâ¢ã¥â | ||||
| 
 | ||||
| ;	§ ¤ ç¨ ¥ ¡ë«®! | ||||
| @ -197,16 +197,16 @@ TASK_RESTORE: | ||||
| 	 ;LD	D,0 | ||||
| 	 ;ADD	IX,DE				; ®¢ ï § ¤ ç  | ||||
| 	 ;LD	E,16 | ||||
| 	 ADD	A,_#ZX_TASK_DATA		; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç | ||||
| 	 ADD	A,_ZX_TASK_DATA		; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç | ||||
| 	 LD	E,A | ||||
| 	 LD	D,0 | ||||
| 	; | ||||
| 	ADD	IX,DE | ||||
| 
 | ||||
| 	LD	L,(IX + _#ZX_TASK_DATA.SP)	; ¢á¯®¬¨âì á⥪ | ||||
| 	LD	H,(IX + _#ZX_TASK_DATA.SP + 1) | ||||
| 	LD	L,(IX + _ZX_TASK_DATA.SP)	; ¢á¯®¬¨âì á⥪ | ||||
| 	LD	H,(IX + _ZX_TASK_DATA.SP + 1) | ||||
| 	LD	SP,HL | ||||
| 	LD	A,(IX + _#ZX_TASK_DATA.SLOT3_PAGE); ¢á¯®¬¨âì âà¥âìî áâà ¨æã | ||||
| 	LD	A,(IX + _ZX_TASK_DATA.SLOT3_PAGE); ¢á¯®¬¨âì âà¥âìî áâà ¨æã | ||||
| 	OUT	(SLOT3),A | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tolik
						Tolik