fix bug in EMM.MergeMemBlocks (нашел Константин Косарев)
This commit is contained in:
		
							parent
							
								
									ab774cc0e2
								
							
						
					
					
						commit
						3c0d7205c7
					
				| @ -238,7 +238,7 @@ TAB_FNS: | ||||
|         DB      low  READ_PORTS                         ; #F9  [x] 26/01/2024 | ||||
|         DB      low     FN_RESERVED			; #FA  [x] 26/01/2024 ¥ à ¡®â «  ¨ ¥ 㦠, ¤ã¡«¨àã¥â SET_PORTS | ||||
|         DB      low  GOTO_SPEC				; #FB  Goto Spectrum! | ||||
|         DB      low  ZX_MEMORY_MANAGER			; #FC  ; [ ] free zx pages! | ||||
|         DB      low  ZX_MEMORY_MANAGER			; #FC  API ¤«ï ¤¨ ¬¨ç¥áª®£® ¢ë¤¥«¥¨ï áâà ¨æ ‘¯¥ªâà㬠 | ||||
|         DB      low  REINIT                             ; #FD  | ||||
|         DB      low     FN_RESERVED                     ; #FE  SAVE_AUTOSTART. …áâì ¢ ZX_EXP.ASM | ||||
|         DB      low  FN_VERSION                         ; #FF  | ||||
|  | ||||
| @ -707,11 +707,11 @@ POST_5_ERROR: | ||||
| 	OUT	(RGADR),A | ||||
| 	OUT	(RGMOD),A | ||||
| 	OUT	(SLOT0),A | ||||
| 	; [ ] 20/08/2024 ; [x] free zx pages! | ||||
| 	;  LD	A,5 | ||||
| 	;  OUT	(SLOT1),A | ||||
| 	;  LD	A,2 | ||||
| 	;  OUT	(SLOT2),A | ||||
| 	;free zx pages! | ||||
| 	 ;LD	A,ZX_PAGE.SLOT1 | ||||
| 	 ;OUT	(SLOT1),A | ||||
| 	 ;LD	A,ZX_PAGE.SLOT2 | ||||
| 	 ;OUT	(SLOT2),A | ||||
| 	 OUT	(SLOT2),A	; ZERO_PAGE | ||||
| 	 DEC	A		; SHARED_PAGE | ||||
| 	 OUT	(SLOT1),A | ||||
| @ -777,7 +777,7 @@ Check_EE_Port:	LD	A,ACEX.RET_PORT | ||||
| 	 	 ;CALL	@ToBIOS_3D13					; ¯¥à¥ãáâ ®¢¨âì ¢ãâà. ¯®àâ #EE | ||||
| 		 CALL	SET_PORTS | ||||
| 		; | ||||
| 		; [ ] 20/10/2024 ¨£®à ¯¥à¥å¢ â稪  ¯® ª« ¢¨è¥ 0 | ||||
| 		; [x] 20/10/2024 ¨£®à ¯¥à¥å¢ â稪  ¯® ª« ¢¨è¥ 0 | ||||
| 		 LD	A,high ZXKeys.Line_4 | ||||
| 		 IN	A,(ZXKeys) | ||||
| 		 RRCA | ||||
| @ -1196,7 +1196,7 @@ DOS_ON:	NOP	;!TODO ࠡ | ||||
| 
 | ||||
| 
 | ||||
| 	; IF	FREE_ZX_PAGES | ||||
| ; [ ] free zx pages! ---------------------------------------------------; | ||||
| ;-----------------------------------------------------------------------; | ||||
| GOTO_SPEC:	PUSH	HL | ||||
| 		LD	HL,RET_TO_BIOS | ||||
| 		EX	(SP),HL | ||||
|  | ||||
| @ -102,30 +102,26 @@ EMM.InitMem:	PUSH	BC | ||||
| 		POP	BC | ||||
| 		RET | ||||
| ;---------------------------------------------------------------------[] | ||||
| 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 | ||||
| 	 ;!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 | ||||
| 	 ; | ||||
| RESERVED_PAGES:	;[x] free zx pages!	 | ||||
| 	; Block #1 - ¬®¦® ®á¢®¡®¤¨âì ¯® ID 1 | ||||
| 		;DB	1,3,4,6,7,8,9,10,11,12,13,14,15			; for Spectrum | ||||
| 	 	; í¬ã«ïâ®à <20>‡“ | ||||
| 		;DB	#42,#43,#44,#45,#46,#47;,#48,#49,#4A,#4B 	; For (BASIC128, BASIC48, TRDOS, SCORP_ROM)*2, vBIOS, vEXTENSION | ||||
| 		;DB	#FF						; End of the block | ||||
| 	; | ||||
| 	;; Block #2 - ¥«ì§ï ®á¢®¡®¦¤ âì | ||||
| 		DB	ZX_PAGE.SLOT0,ZX_PAGE.SLOT2,ZX_PAGE.SLOT1	; [ ] free zx pages!			; for Spectrum and BIOS starting | ||||
| 	;  Block #2 - ¥«ì§ï ®á¢®¡®¦¤ âì | ||||
| 		DB	ZX_PAGE.SLOT0,ZX_PAGE.SLOT2,ZX_PAGE.SLOT1	; 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	MODE_PAGE					; ????? | ||||
| 		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 | ||||
| ;----------------------------------------------------------------------; | ||||
| ; | ||||
| 
 | ||||
| @ -278,20 +274,15 @@ EMM.FreeMemRMD:	CALL	GET_RAMD_ST | ||||
| ;		  ‚室: A - <20>€—€‹Ž –…<E28093>Ž—Šˆ | ||||
| ; <20>… <20>Ž<EFBFBD>’ˆ’œ DE!!! | ||||
| ;EMM_FN3M: | ||||
| EMM.FreeMem:	; [x] free zx pages! ⥯¥àì ¥«ì§ï ®á¢®¡®¤¨âì áâà ¨æã #FF | ||||
| EMM.FreeMem:	; [x] ⥯¥àì ¥«ì§ï ®á¢®¡®¤¨âì áâà ¨æã #FF | ||||
| 		 SCF | ||||
| 		 INC	A | ||||
| 		 RET	Z | ||||
| 		 DEC	A | ||||
| 		 ;AND	A | ||||
| 		 ;SCF | ||||
| 		; | ||||
| 		RET	Z | ||||
| 		; | ||||
| 		LD	C,A | ||||
| 		;CP	ZX_RAM_ID		;!FIXIT ; [ ] free zx pages! | ||||
| 		;CALL	Z,RES_FLAG_ZXvROM | ||||
| 		; | ||||
| 		IN	A,(SLOT3) | ||||
| 		EX	AF,AF' | ||||
| 		LD	A,SYS_PAGE | ||||
| @ -307,7 +298,7 @@ EMM.FreeMem:	; [x] free zx pages! ⥯ | ||||
| 		CP	#FF		; …᫨ ¥ ª®¥æ | ||||
| 		JR	NZ,.loop	; ¯à®¤®«¦ âì | ||||
| 
 | ||||
| 	; !TEST	23/08/2024 ¢®ááâ ®¢«¥¨¥ 楯®çª¨ ¥á«¨ ®á¢®¡®¦¤ «¨ ¥ á  ç «  | ||||
| 	; [x] 23/08/2024 ¢®ááâ ®¢«¥¨¥ 楯®çª¨ ¥á«¨ ®á¢®¡®¦¤ «¨ ¥ á  ç «  | ||||
| 		LD	A,C | ||||
| 		LD	L,0 | ||||
| 		LD	BC,256 | ||||
| @ -542,6 +533,7 @@ EMM.MergeMemBlocks: | ||||
| 		LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	H,high SYS_PAGE.RAM_TABLE | ||||
| 		LD	L,E | ||||
| 		LD	C,B | ||||
| 		LD	B,0 | ||||
| .ADD_L:		LD	A,(HL) | ||||
| @ -558,8 +550,7 @@ EMM.MergeMemBlocks: | ||||
| 		SCF | ||||
| 		RET | ||||
| 
 | ||||
| .ADD_NEXT: | ||||
| 		LD	A,C | ||||
| .ADD_NEXT:	LD	A,C | ||||
| 		AND	A | ||||
| 		JR	Z,.ADD_ERR | ||||
| 		LD	(HL),A | ||||
|  | ||||
| @ -50,14 +50,14 @@ RST_CONF: | ||||
| 		OUT	(SYS_PORT.ON),A | ||||
| 		LD	A,C | ||||
| 		; | ||||
| 		CP	#80 ;!FIXIT âãâ ⥯¥àì ¬®¦¥â «î¡®¥ ç¨á«® ¡ëâì ã áâ àëå ¯à®£ ; [ ] free zx pages | ||||
| 		CP	#80 ; âãâ ⥯¥àì ¬®¦¥â «î¡®¥ ç¨á«® ¡ëâì ã áâ àëå ¯à®£ | ||||
| 		JR	NC,.CHOOSE_CNF | ||||
| 		; only for old FLEX10K soft compatible | ||||
| .crutch:	LD	C,SLOT3 | ||||
| 		IN	B,(C) | ||||
| 		OUT	(C),A							; PAGE á ¯à®è¨¢ª®© | ||||
| 		LD	DE,(#C090)						; PLD-ID | ||||
| 		OUT	(C),B							; RET page | ||||
| 		OUT	(C),A						; PAGE á ¯à®è¨¢ª®© | ||||
| 		LD	DE,(#C090)					; PLD-ID | ||||
| 		OUT	(C),B						; RET page | ||||
| ;--[]		;JR INT_PLD | ||||
| .INT_PLD:       ; only for old FLEX10K soft compatible | ||||
| 		LD	C,SLOT3 | ||||
| @ -76,8 +76,8 @@ RST_CONF: | ||||
| 		OUT	(C),A | ||||
| 		; | ||||
| 		LD	A,E		; config-byte | ||||
| 		OR	#FE								;!HARDCODE  | ||||
| 		LD	BC,Port_All_Mode					        ; SYSTEM Spectrum/Sprinter | ||||
| 		OR	#FE						;!HARDCODE  | ||||
| 		LD	BC,Port_All_Mode				; SYSTEM Spectrum/Sprinter | ||||
| 		OUT	(C),A | ||||
| 		; | ||||
| 		LD	A,#3C | ||||
| @ -94,9 +94,9 @@ RST_CONF: | ||||
| 		RET | ||||
| 		; | ||||
| 	;[x] | ||||
| .CHOOSE_CNF:	; [ ] bug with "free zx pages" | ||||
| .CHOOSE_CNF:	; [x] bug with "free zx pages" | ||||
| 		 LD	A,high ZX_MEM_PORT.Scorpion | ||||
| 		 IN	A,(ZX_MEM_PORT)		;!HARDCODE  | ||||
| 		 IN	A,(ZX_MEM_PORT) | ||||
| 		 RRCA | ||||
| 		 LD	A,C | ||||
| 		 JR	C,.not_vRAM_page | ||||
| @ -218,13 +218,6 @@ RST_CONF: | ||||
| ; 		LD	(HL),"T" | ||||
| ; 		; | ||||
| ; 		; .. ... ... ..  | ||||
| ; 		;!TODO ᤥ« âì äãªæ¨î ¯® § «¨¢ª¥ ᢮¥© ª®äë, ¯¥à¥å¢ âã à¥á¥â . | ||||
| ; 		; *. ‚室 ¢ ¯®¤äãªæ¨î ⮫쪮 ç¥à¥§ RST 08 ¨«¨ #18 | ||||
| ; 		; *. ‘®åà ¨âì ¢á¥ áâà ¨æë ¯®«ì§®¢ â¥«ï ¢ SYS_PAGE ¤«ï ¯¥à¥å¢ â  à¥á¥â  | ||||
| ; 		; *. „®áâ âì á® á⥪   ¤à¥á ¢®§¢à â  ¨ á®åà ¨âì ¢ SYS_PAGE ¤«ï ¯¥à¥å¢ â  à¥á¥â  | ||||
| ; 		; *. ‘®åà ¨âì ªã¤ -¨¡ã¤ì § ç¥¨¥ á⥪  | ||||
| ; 		; * | ||||
| ; 		; .. ... ... ..  | ||||
| ; 		;LD	BC,BIOS.REINIT.HARD_RESET | ||||
| ; .reinit:	JP	REINIT | ||||
| 		; | ||||
| @ -413,16 +406,6 @@ RST_CONF: | ||||
| .kill_flag:	LD	(HL),"S" | ||||
| 		INC	HL | ||||
| 		LD	(HL),"T" | ||||
| 		; | ||||
| 		; .. ... ... ..  | ||||
| 		; [ ]  | ||||
| 		;!TODO ᤥ« âì äãªæ¨î ¯® § «¨¢ª¥ ᢮¥© ª®äë, ¯¥à¥å¢ âã à¥á¥â . | ||||
| 		; *. ‚室 ¢ ¯®¤äãªæ¨î ⮫쪮 ç¥à¥§ RST 08 ¨«¨ #18 | ||||
| 		; *. ‘®åà ¨âì ¢á¥ áâà ¨æë ¯®«ì§®¢ â¥«ï ¢ SYS_PAGE ¤«ï ¯¥à¥å¢ â  à¥á¥â  | ||||
| 		; *. „®áâ âì á® á⥪   ¤à¥á ¢®§¢à â  ¨ á®åà ¨âì ¢ SYS_PAGE ¤«ï ¯¥à¥å¢ â  à¥á¥â  | ||||
| 		; *. ‘®åà ¨âì ªã¤ -¨¡ã¤ì § ç¥¨¥ á⥪  | ||||
| 		; * | ||||
| 		; .. ... ... ..  | ||||
| 		RET | ||||
| 		; | ||||
| 
 | ||||
|  | ||||
| @ -252,7 +252,6 @@ INIT_SYS_ALL: | ||||
| 	 XOR	A | ||||
| 	 LD	(SYS_PAGE.CURRENT_RAM_DRV - #4000),A | ||||
| 	; | ||||
| 	; [ ] free zx pages! | ||||
| 	 ;;; init task's | ||||
| 	; | ||||
| 	LD	DE,ZG_ADDRESS						;  ¤à¥á § ª®£¥¥à â®à  | ||||
|  | ||||
| @ -277,7 +277,7 @@ INIT_vROM:	LD	A,(HL) | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| ;!FIXIT | ||||
| ;----------------[<5B>ыЄЅЋЅЈЅ/ЎсЂЎЁЎІЄЅЈЅ стр Јц сЏЅЊтруЌ ]-------------; | ||||
| ;-------------[<5B>ыЄЅЋЅЈЅ/ЎсЂЎЁЎІЄЅЈЅ/ЈЈт стр Јц сЏЅЊтруЌ ]-----------; | ||||
| ;¢å®¤:	ॣ B: | ||||
| ; FN 0x | ||||
| ;		    0 - § à¥§¥à¢¨à®¢ ® | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| ;=======================[All shared EQUs]=======================; | ||||
| BETA_BUILD	EQU			9			; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ   áâ à⮢®¬ íªà ¥ | ||||
| BETA_BUILD	EQU			17			; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ   áâ à⮢®¬ íªà ¥ | ||||
| ;======================[All shared defines]=====================; | ||||
|  DEFINE		PACKED_MAIN		0			; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®? | ||||
|  DEFINE		SP2000_Loader_Flag	#0107			; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tolik
						Tolik