страницы 2 и 5 снова в резерве, переделаны процедуры для выделения и инита vRAM
This commit is contained in:
		
							parent
							
								
									b140cdd2ba
								
							
						
					
					
						commit
						df304e2861
					
				| @ -1 +1 @@ | ||||
| Subproject commit 14a3896e7283495e2bf55cc81a995f5f1e88e539 | ||||
| Subproject commit ff7c23909878e2f143563eee9e30fd9013bcd570 | ||||
| @ -113,17 +113,17 @@ RESERVED_PAGES: | ||||
| 	 ; | ||||
| 	; | ||||
| 	;; Block #2 - ¥«ì§ï ®á¢®¡®¦¤ âì | ||||
| 		DB	0;,2,5		; [ ] free zx pages!			; for Spectrum and BIOS starting | ||||
| 		DB	DCP_PAGE 						; Ports map | ||||
| 		DB	Spec_Page						; Page for Spectrum mode | ||||
| 		DB	ZX_PAGE.SLOT0,ZX_PAGE.SLOT2,ZX_PAGE.SLOT1	; [ ] free zx pages!			; for Spectrum and BIOS starting | ||||
| 		DB	DCP_PAGE 					; Ports map | ||||
| 		DB	Spec_Page					; Page for Spectrum mode | ||||
| 	 ; Screen pages | ||||
| 		DB	#50,#51,#52,#53,#54,#55,#56,#57 | ||||
| 		DB	#58,#59,#5A,#5B,#5C,#5D,#5E,#5F | ||||
| 	 ; | ||||
| 	 ;DB	MODE_PAGE						; ????? | ||||
| 		DB	CBL.BUFFER_PAGE						; Page for CBL audio | ||||
| 		DB	SYS_PAGE						; Page for system (BIOS) variables | ||||
| 		DB	#FF							; End of the block | ||||
| 		DB	CBL.BUFFER_PAGE					; Page for CBL audio | ||||
| 		DB	SYS_PAGE					; Page for system (BIOS) variables | ||||
| 		DB	#FF						; End of the block | ||||
| 	; | ||||
| ;.Blocks		EQU	2 | ||||
| ;----------------------------------------------------------------------; | ||||
|  | ||||
| @ -16,10 +16,10 @@ RST_CONF: | ||||
| ;--[] ZX Spectrum | ||||
| .AY8910:	CALL	.ACC_OFF | ||||
| 		LD	DE,ACEX.Config_ID.Sp97_AY | ||||
| 		CALL	.INT_PLD | ||||
| 		LD	A,CNF_PORT.CNF_1 | ||||
| 		OUT	(SYS_PORT.ON),A | ||||
| 		RET | ||||
| 		JR	.INT_PLD | ||||
| 		;LD	A,CNF_PORT.CNF_1 | ||||
| 		;OUT	(SYS_PORT.ON),A | ||||
| 		;RET | ||||
| ;--[] | ||||
| 
 | ||||
| ;--[] Sprinter ZX | ||||
|  | ||||
| @ -222,13 +222,14 @@ INIT_SYS_ALL: | ||||
| 	INC	HL | ||||
| 	LD	(HL),DRIVE_CODES.TRDOS.HDD | ||||
| 	INC	HL | ||||
| 	LD	(HL),ZERO_PAGE	; [x] free zx pages!			; SYS_PAGE.COPY_SLOT0, ¡ë«® 0 | ||||
| 	; A = 0 | ||||
| 	LD	(HL),A | ||||
| 	INC	HL | ||||
| 	LD	(HL),SHARED_PAGE; [x] free zx pages!			; SYS_PAGE.COPY_SLOT1, ¡ë«® 5 | ||||
| 	LD	(HL),ZX_PAGE.SLOT1 | ||||
| 	INC	HL | ||||
| 	LD	(HL),ZERO_PAGE	; [x] free zx pages!			; SYS_PAGE.COPY_SLOT2, ¡ë«® 2 | ||||
| 	LD	(HL),ZX_PAGE.SLOT2 | ||||
| 	INC	HL | ||||
| 	LD	(HL),ZERO_PAGE	; [x] free zx pages!			; SYS_PAGE.COPY_SLOT3, ¡ë«® 0 | ||||
| 	LD	(HL),A | ||||
| 
 | ||||
| 	LD	A,9 | ||||
| 	LD	(SYS_PAGE.MSD_SECS - #4000),A | ||||
|  | ||||
| @ -445,7 +445,7 @@ GET_SCORP_RAM:	CALL	FREE_vRAM | ||||
| 	; ¢ë¤¥«¨âì áâà ¨æë ᪮௠ | ||||
| 		XOR	A | ||||
| 		LD	DE,#F0D0	; ¤«ï 䨫ìâà . #F0 - ¬ áª , #D0 - áâà ¨æë ISA #D0..#DF | ||||
| 		LD	BC,256*BIOS.ZX_MEMORY_MANAGER.MODE_256k/2 + #FF	; B - ª®«¨ç¥á⢮ áâà ¨æ, C - Œ¥âª  ª®æ  à ¬¡«®ª  | ||||
| 		LD	BC,256*8 + #FF	; B - ª®«¨ç¥á⢮ áâà ¨æ, C - Œ¥âª  ª®æ  à ¬¡«®ª  | ||||
| 		LD	HL,SYS_PAGE.RAM_TABLE | ||||
| .allocate_loop:	DEC	L | ||||
| 		JR	Z,.error_no_mem | ||||
| @ -575,7 +575,7 @@ GOTO_SPECTRUM:	DI | ||||
| 		CALL	ToBIOS_FromEXT | ||||
| 		; | ||||
| 		LD	A,(SYS_PAGE.Block_ID.vRAM) | ||||
| 		LD	HL,SYS_PAGE.SHARED_BUFFER_256b | ||||
| 		LD	HL,SYS_PAGE.SHARED_BUFFER_256b + 1 | ||||
| 		LD	C,BIOS.GetMemBlkPages | ||||
| 		CALL	ToBIOS_FromEXT | ||||
| 		;!FIXIT | ||||
| @ -588,40 +588,51 @@ GOTO_SPECTRUM:	DI | ||||
| 		EXX | ||||
| 		 POP	BC | ||||
| 		EXX | ||||
| 		;.TASK_0: § ¤ ç  0, ०¨¬ 256 ª¨«®¡ ©â | ||||
| .START_TASK:	XOR	A | ||||
| 		; | ||||
| 		XOR	A | ||||
| 		OUT	(RGADR),A	; ॣ¨áâà ¢¨¤¥®  ¤à¥á  | ||||
| 		OUT	(RGMOD),A	; ॣ¨áâà ¬®¤ë | ||||
| 	; ¯®¤£®â®¢ª  áâà ¨æ | ||||
| 		PUSH	DE | ||||
| 		; | ||||
| 		LD	IY,.BASIC_128 | ||||
| 		JR	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 | ||||
| 		JP	ZX_VARS.PRINTER_BUFFER | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| 
 | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;***************************************** | ||||
| ; | ||||
| ;	ˆ¨æ¨ «¨§ æ¨ï áâà ¨æ ¤«ï | ||||
| ;	ᯥªâà㬮¢áª®£® ०¨¬  ¨ | ||||
| ;	¢®ááâ ®¢«¥¨¥ ᯥªâà㬮¢áª®£® | ||||
| ;	íªà   | ||||
| ; | ||||
| ;	‚®§¢à â ¯® IY | ||||
| ; | ||||
| ;	!!! NO USE STACK !!! | ||||
| ; | ||||
| ;***************************************** | ||||
| ;!TODO á⥪ ãáâ ®¢«¥ ¢® ¢â®à®© áâà ¨æ¥, ¥ ¨á¯®«ì§®¢ âì ¨«¨ ãáâ  ¢«¨¢ âì ¢ ¤àã£ãî! | ||||
| ; ¨¨æ¨ «¨§ æ¨ï áâà ¨æ zx spectrum | ||||
| ; HL -  ¤à¥á ¡«®ª  áâà ¨æ ¢ SYS_PAGE SLOT3 | ||||
| ; D  - ª®«¨ç¥á⢮ íâ¨å áâà ¨æ | ||||
| 		LD	HL,SYS_PAGE.SHARED_BUFFER_256b+30 | ||||
| 		LD	DE,SYS_PAGE.SHARED_BUFFER_256b+32 | ||||
| 		LD	BC,26 | ||||
| 		LDDR | ||||
| 		; | ||||
| 		INC	L | ||||
| 		LD	(HL),ZX_PAGE.SLOT1 | ||||
| 		LD	HL,SYS_PAGE.SHARED_BUFFER_256b+2 | ||||
| 		LD	E,(HL) | ||||
| 		LD	(HL),ZX_PAGE.SLOT2 | ||||
| 		LD	HL,SYS_PAGE.SHARED_BUFFER_256b+6 | ||||
| 		LD	(HL),E | ||||
| 		LD	HL,SYS_PAGE.SHARED_BUFFER_256b | ||||
| 		LD	(HL),A | ||||
| 		; | ||||
| 		POP	DE | ||||
| 	; | ||||
| 		; DEC	HL | ||||
| 		; LD	(HL),A						; ZX_PAGE.SLOT0 | ||||
| 		; INC	HL | ||||
| 		; INC	HL | ||||
| 		; LD	A,(HL) | ||||
| 		; LD	(HL),ZX_PAGE.SLOT1 | ||||
| 		; INC	HL | ||||
| 		; INC	HL | ||||
| 		; LD	E,(HL) | ||||
| 		; LD	(HL),ZX_PAGE.SLOT2 | ||||
| 		; INC	HL | ||||
| 		; LD	(HL),A | ||||
| 		; INC	HL | ||||
| 		; LD	(HL),E | ||||
| 		; | ||||
| 		;LD	HL,SYS_PAGE.SHARED_BUFFER_256b | ||||
| 		;LD	IY,.BASIC_128 | ||||
| 		;JR	INIT_PAGES					; ¨¨æ¨ «¨§ æ¨ï ®¬¥à®¢ áâà ¨æ ०¨¬  ᯥªâà㬠 | ||||
| 	; ¨¨æ¨ «¨§ æ¨ï áâà ¨æ zx spectrum | ||||
| 	; HL -  ¤à¥á ¡«®ª  áâà ¨æ ¢ SYS_PAGE SLOT3 | ||||
| 	; D  - ª®«¨ç¥á⢮ íâ¨å áâà ¨æ | ||||
| INIT_PAGES:	LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT1),A | ||||
| 		; [ ] free zx pages! ¯¥à¥¤¥« âì ¨¨â. ¥á«¨ 512, â® ¥â 1ffd ¨  ®¡®à®â | ||||
| @ -652,12 +663,14 @@ INIT_PAGES:	LD	A,SYS_PAGE | ||||
| 		; | ||||
| .set_48k:	LD	A,5	; !HARDCODE CONFIG_DE.ZX_START ‚•Ž„ ‚ BASIC 48 á § ªàëâ묨 128-¬¨ ¯®àâ ¬¨ | ||||
| 		LD	(SYS_PAGE.CONFIG_DE.ZX_START - #8000),A | ||||
| 		LD	A,(HL)						; SLOT0, SLOT3 page | ||||
| 		INC	HL | ||||
| 		LD	E,(HL)						; SLOT1 page | ||||
| 		INC	HL | ||||
| 		LD	D,(HL)						; SLOT2 page | ||||
| 		JR	.set_slots | ||||
| 		;LD	A,(HL)						; SLOT0, SLOT3 page | ||||
| 		;INC	HL | ||||
| 		;LD	E,(HL)						; SLOT1 page | ||||
| 		;INC	HL | ||||
| 		;LD	D,(HL)						; SLOT2 page | ||||
| 		;JR	.set_slots | ||||
| 		; | ||||
| 		JR	.set_table | ||||
| 		; | ||||
| .set_scorp:	CALL	MANAGE_ZX_PAGES.INIT_vRAM | ||||
| 		LD	A,#10 | ||||
| @ -668,7 +681,7 @@ INIT_PAGES:	LD	A,SYS_PAGE | ||||
| 		INC	A						; reset ZF | ||||
| 		; | ||||
| .set_pent:	CALL	Z,MANAGE_ZX_PAGES.INIT_vRAM | ||||
| 		; ¬¥ï¥¬ ¯®à冷ª ¤«ï ¯à®æ¥¤ãàë set_48k | ||||
| 		; ¬¥ï¥¬ ¯®à冷ª ¤«ï ¯à®æ¥¤ãàë .set_slots | ||||
| .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 | ||||
| @ -681,8 +694,35 @@ INIT_PAGES:	LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT1),A | ||||
| 		LD	A,D | ||||
| 		OUT	(SLOT2),A | ||||
| 		;JP	(IY) | ||||
| 		; | ||||
| 		JP	(IY) | ||||
| ;.BASIC_128:	;start_basic: | ||||
| 		LD	SP,#C000 | ||||
| 		LD	HL,RES128_PROG | ||||
| 		LD	DE,ZX_VARS.PRINTER_BUFFER			; § ¯ã᪠¯à®£à ¬¬ë   BASIC-¥. | ||||
| 		LD	BC,RES128_PROG.Size | ||||
| 		LDIR | ||||
| 		JP	ZX_VARS.PRINTER_BUFFER | ||||
| ;----------------------------------------------------------------------; | ||||
| ;  0 1 2 3 4     5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | ||||
| ;  x 0 x 1 2 x 3 4 | ||||
| ;  x 0 1 2 3 4  | ||||
| ;p 0 1 2 3 4 5 6 7 | ||||
| ;  0 x 2 x x 5 x x  | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;***************************************** | ||||
| ; | ||||
| ;	ˆ¨æ¨ «¨§ æ¨ï áâà ¨æ ¤«ï | ||||
| ;	ᯥªâà㬮¢áª®£® ०¨¬  ¨ | ||||
| ;	¢®ááâ ®¢«¥¨¥ ᯥªâà㬮¢áª®£® | ||||
| ;	íªà   | ||||
| ; | ||||
| ;	‚®§¢à â ¯® IY | ||||
| ; | ||||
| ;	!!! NO USE STACK !!! | ||||
| ; | ||||
| ;***************************************** | ||||
| 
 | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| ; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tolik
						Tolik