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