fix bug in EMM.MergeMemBlocks (нашел Константин Косарев)

This commit is contained in:
Tolik 2024-12-01 19:50:19 +10:00
parent ab774cc0e2
commit 3c0d7205c7
7 changed files with 31 additions and 58 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
;

View File

@ -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 ;  ¤à¥á §­ ª®£¥­¥à â®à 

View File

@ -277,7 +277,7 @@ INIT_vROM: LD A,(HL)
;-----------------------------------------------------------------------;
;!FIXIT
;----------------[<5B>ыЄЅЋЅ­ЈЅ/ЎсЂЎЁЎІЄЅ­ЈЅ стр ­Јц сЏЅЊтруЌ ]-------------;
;-------------[<5B>ыЄЅЋЅ­ЈЅ/ЎсЂЎЁЎІЄЅ­ЈЅ/Ј­Јт стр ­Јц сЏЅЊтруЌ ]-----------;
;¢å®¤: ॣ B:
; FN 0x
; 0 - § à¥§¥à¢¨à®¢ ­®

View File

@ -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 ;