beta support "free zx pages" mode

This commit is contained in:
Tolik 2024-10-06 23:53:24 +10:00
parent 9f78d202ae
commit 61f85bce5e
2 changed files with 40 additions and 54 deletions

View File

@ -71,9 +71,9 @@ SET_CURRENT_HDD:
.NUMBER+1: LD A,#FF .NUMBER+1: LD A,#FF
CP #FF CP #FF
LD C,BIOS.HDD_INIT LD C,BIOS.HDD_INIT
JP Z,ToBIOS_18 JP Z,ToBIOS
LD C,BIOS.HDD_PART ; IDE-1/IDE-2 LD C,BIOS.HDD_PART ; IDE-1/IDE-2
JP ToBIOS_18 JP ToBIOS
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-;
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-;

View File

@ -191,10 +191,10 @@ BEGIN: LD (LINE_X),IX
AND A AND A
LD HL,MSG_EXIT1 LD HL,MSG_EXIT1
JP Z,EXIT_ALL JP Z,EXIT_ALL
;
; £à㧨¬ ¯ «¨âàã ¨ ®¡à § ¤¨áª , ¥á«¨ ­ ¤® ; £à㧨¬ ¯ «¨âàã ¨ ®¡à § ¤¨áª , ¥á«¨ ­ ¤®
CALL LOAD_IMAGE_FILE CALL LOAD_IMAGE_FILE
CALL LOADING_PALETTE CALL LOADING_PALETTE
CALL SHOW_MESSAGE_OK_CFG_NAME
JP PREPARE_TO_ZXMODE JP PREPARE_TO_ZXMODE
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ; ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
@ -216,7 +216,15 @@ ERROR_FILE: LD HL,ERROR_FILE_MSG_X
.prn_msg: LD C,Dss.PChars .prn_msg: LD C,Dss.PChars
RST ToDSS RST ToDSS
; ;
LD HL,ERROR_FILE_MSG LD A,(vROM_LOAD_BIN.need_free)
OR A
JR Z,.skip_free
;
LD A,(ZX_vROM_BLK)
LD C,BIOS.FreeMem
RST ToBIOS
;
.skip_free: LD HL,ERROR_FILE_MSG
JR EXIT_ALL JR EXIT_ALL
ERROR_ZX_FLAG: LD HL,MSG_NO_ZX_FLAG ERROR_ZX_FLAG: LD HL,MSG_NO_ZX_FLAG
JR EXIT_ALL JR EXIT_ALL
@ -325,11 +333,11 @@ READ_IMAGE: LD DE,ONE_FILE
INC HL INC HL
LD (HL),0 LD (HL),0
; ãáâ ­ ¢«¨¢ ¥¬ ¨ ¨­¨â¨¬ ¢¨­â ; ãáâ ­ ¢«¨¢ ¥¬ ¨ ¨­¨â¨¬ ¢¨­â
LD A,SYS_PORT.BIOS ; LD A,SYS_PORT.BIOS
OUT (SYS_PORT.ROM),A ; OUT (SYS_PORT.ROM),A
CALL SET_CURRENT_HDD CALL SET_CURRENT_HDD
LD A,SYS_PORT.BIOS ; LD A,SYS_PORT.BIOS
OUT (SYS_PORT.RAM),A ; OUT (SYS_PORT.RAM),A
; ¯ àᨬ ¤«ï à áçñ⮢ BPB ; ¯ àᨬ ¤«ï à áçñ⮢ BPB
CALL BPB_SetUp CALL BPB_SetUp
; § ¯®¬¨­ ¥¬ ᥪâ®à ¤¨à¥ªâ®à¨¨ ; § ¯®¬¨­ ¥¬ ᥪâ®à ¤¨à¥ªâ®à¨¨
@ -549,7 +557,7 @@ EXIT_TO_DSS: DI
AND A AND A
JR NZ,.next JR NZ,.next
; ®ç¨á⪠ à ¬¤¨áª®¢ ; ®ç¨á⪠ à ¬¤¨áª®¢
LD BC,SYS_PAGE.RAMD_KEYS.NUM*256 + BIOS.FreeMemRMD LD BC,256*SYS_PAGE.RAMD_KEYS.NUM + BIOS.FreeMemRMD
.loop: PUSH BC .loop: PUSH BC
LD A,B LD A,B
DEC A DEC A
@ -741,7 +749,7 @@ RESET_TO_ZX: DI
; ;
LD A,(PARAMS.LD_Pal+2) LD A,(PARAMS.LD_Pal+2)
INC A INC A
JR NZ,Skip_Load_Pallete JR NZ,Skip_Load_Palette
; ;
LD HL,PlaceForPalette + 0 LD HL,PlaceForPalette + 0
LD A,4 LD A,4
@ -759,9 +767,9 @@ RESET_TO_ZX: DI
LD A,7 LD A,7
CALL SET_PAL CALL SET_PAL
; ;
LD A,%0000'0100 ; set custom palette
EX AF,AF' EX AF,AF'
OR %0000'0100 ; set custom palette Skip_Load_Palette:
Skip_Load_Pallete:
EX AF,AF' EX AF,AF'
LD HL,(PARAMS.Int_sc+2) LD HL,(PARAMS.Int_sc+2)
ADD A,L ADD A,L
@ -809,7 +817,7 @@ Set_Next_Par: ; SYS_PORT/CNF_PORT
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°; ;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
SET_PAL: LD DE,0 SET_PAL: LD DE,0
LD BC,#FF*256 + BIOS.PIC_SET_PAL LD BC,#FF*256 + BIOS.PIC_SET_PAL
JP ToBIOS_18 JP ToBIOS
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°; ;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
@ -997,7 +1005,10 @@ READ_CNF_FILE: LD HL,#C000
CALL vROM_LOAD_BIN CALL vROM_LOAD_BIN
ENDM ENDM
; ;
LOAD_vROM_BIN: EXX LOAD_vROM_BIN: LD A,#FF
LD (vROM_LOAD_BIN.need_free),A
;
EXX
LD HL,BUFFER_vROM_PAGES.Pages LD HL,BUFFER_vROM_PAGES.Pages
EXX EXX
LD HL,BUFFER_RAM_PAGES LD HL,BUFFER_RAM_PAGES
@ -1016,7 +1027,9 @@ LOAD_vROM_BIN: EXX
LD (HL),A LD (HL),A
LD BC,BIOS.ZX_MEMORY_MANAGER.SetCustomVroms LD BC,BIOS.ZX_MEMORY_MANAGER.SetCustomVroms
RST ToBIOS RST ToBIOS
;!TODO check error
XOR A
LD (vROM_LOAD_BIN.need_free),A
RET RET
; ;
vROM_LOAD_BIN: EX DE,HL vROM_LOAD_BIN: EX DE,HL
@ -1052,41 +1065,7 @@ vROM_LOAD_BIN: EX DE,HL
EXX EXX
RET RET
; ;
.need_free: DB 0
;NO_ZX_FLAG: DB 0
;
; MACRO vROM_LOAD romLine;,pageNumber
; .romLine = (romLine-1)*2
; EX DE,HL
; LD HL,(ADDRESS_LINES+.romLine)
; LD A,(HL)
; CP ';'
; EX DE,HL
; JR NZ,.go_load
; LD (HL),0
; EX DE,HL
; LD A,(NO_ZX_FLAG)
; OR A
; JR Z,.skip_load
; JP ERROR_ZX_FLAG
; .go_load:
; LD A,(HL) ;BUFFER_RAM_PAGES.ROM
; PUSH HL
; EX DE,HL
; CALL READ_FILE_1
; POP DE
; ;
; LD A,SHARED_PAGE
; OUT (SLOT3),A
; JP C,ERROR_FILE
; .skip_load:
; INC DE
; EX DE,HL
; ENDM
;
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°; ;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
@ -1113,11 +1092,14 @@ LOAD_IMAGE_FILE:
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°; ;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
;!TEST palette load ;!TEST palette load
LOADING_PALETTE: LOADING_PALETTE:
;EX DE,HL LD A,(PARAMS.LD_Pal+2)
INC A
RET NZ
;
LD HL,( ADDRESS_LINES + ((CFG_FILE_LINES.PALETTE-1)*2) ) LD HL,( ADDRESS_LINES + ((CFG_FILE_LINES.PALETTE-1)*2) )
LD A,(HL) LD A,(HL)
CP ';' CP ';'
JR Z,.skip RET Z
; ;
LD DE,ONE_FILE LD DE,ONE_FILE
LD BC,FULL_FILE_NAME_LENGTH LD BC,FULL_FILE_NAME_LENGTH
@ -1141,8 +1123,12 @@ LOADING_PALETTE:
; ;
LD A,(FILE_HANDLE) LD A,(FILE_HANDLE)
LD C,Dss.Close LD C,Dss.Close
RST ToDSS JP ToDSS
.skip: ;!TODO ¯¥ç â âì ¨¬ï ä ©«  ¯ «¨âàë, ¥á«¨ ®­ § £à㦥­ ;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
SHOW_MESSAGE_OK_CFG_NAME:
; ä ©«ë áç¨â ­ë ; ä ©«ë áç¨â ­ë
LD HL,MSG_NORMAL LD HL,MSG_NORMAL
LD C,Dss.PChars LD C,Dss.PChars