zx-roms adaptation in progress

This commit is contained in:
Anatoliy Belyanskiy 2023-06-21 21:50:05 +10:00
parent 6a170dff30
commit ac41dad886
7 changed files with 105 additions and 86 deletions

@ -1 +1 @@
Subproject commit 80b60f7294ce3eee958a0c4e9a6f29577cee496f
Subproject commit d8f20a33b9525ba38e6f87956f88081375a81526

View File

@ -1345,11 +1345,11 @@ SW_ROM_1:
;***************************************
_mInfoBLOCK #3CF8-$,0
; no basic-48!
JP_HL_48:
;JP_HL_48:
PUSH HL
SW_ROM:
;SW_ROM:
PUSH AF
LD A,ROM.BIOS
LD A,ROM.BIOS ;!FIXIT ­ĽŻŕ ˘¨Ťě­ŽĽ ­ §˘ ­¨Ľ ŞŽ­áâ ­âë
OUT (SYS_PORT.RAM),A
POP AF
RET

View File

@ -8,11 +8,18 @@
; ¥á«¨ A=-1, â® ¢®§¢à â,
; ¨­ ç¥ ¢ë¯®«­¥­¨¥
;*****************************
EXEC_PNT:
INC A
RET Z
;!FIXIT ¯®ç¥¬ã ­¥ â ª?
; DEC A
; JR Z,EXEC_HL
; LD D,0
; LD E,A
; XOR A
; ADC HL,DE
; ADC HL,DE
;
EXEC_PNT_LOOP:
DEC A
JR Z,EXEC_HL
@ -33,9 +40,9 @@ RET_FROM_M:
;****************************************
; <20><EFBFBD>Ž MENU_128
;****************************************
; ‚•Ž„: - DE -  ¤à¥á ¬¥­î
; BC - ¤«¨­  ¬¥­î
; ‚›•Ž„: A - ¢ë¡à ­­ë© ¯ã­ªâ
; ‚•Ž„: DE -  ¤à¥á ¬¥­î
; BC - ¤«¨­  ¬¥­î
; ‚›•Ž„: A - ¢ë¡à ­­ë© ¯ã­ªâ
;****************************************
RUN_MENU:
PUSH IX
@ -44,25 +51,25 @@ RUN_MENU:
LD A,(DE)
DEC A ; ç¨á«® CMD
CP 9
CP 9 ; !HARDCODE ¬ ª¨á¬ «ì­®¥ ç¨á«® ¯ã­ªâ®¢ ¬¥­î
JR C,RUN_M_1
RUN_MN_ERR:
POP BC
POP DE
LD A,0FFh ; ¢¥à­ãâìáï á ­®¬¥à®¬ 255 - ®è¨¡ª 
LD A,#FF ; ¢¥à­ãâìáï á ­®¬¥à®¬ 255 - ®è¨¡ª 
POP IX
RET
RUN_M_1:
LD A,(5B00H)
CP #F5 ; <EFBFBD><EFBFBD>ˆœ € ŠŽ„ŽŒ PUSH AF
LD A,(ZX_VARS.SWAP_ROM)
CP #F5 ; áà ¢­¨âì € á ®¯ª®¤®¬ PUSH AF
JR NZ,RUN_MN_ERR
LD HL,LEN_P_M
ADD HL,BC ; HL - ­ã¦­ ï ¤«¨­  ¯ ¬ïâ¨
LD B,H ; HL -> BC
ADD HL,BC ; HL - ­ã¦­ ï ¤«¨­  ¯ ¬ïâ¨
LD B,H ; HL -> BC
LD C,L
LD HL,(5C61h) ; HL - ­ ç «® à ¡ ®¡«
LD HL,(ZX_VARS.WORK_SPACE) ; HL - ­ ç «® à ¡ ®¡«
PUSH BC
PUSH HL
@ -105,10 +112,11 @@ JP_HL: JP (HL)
;**************************************
; 128k MENU
;**************************************
MENU_PROG EQU 25B9h
SWAP_ROM EQU 5B00h
NEW_SP EQU 1F45h
RET_SP EQU 1F20h
;!HARDCODE
MENU_PROG EQU #25B9 ; #25B9 in sp_128.asm
;SWAP_ROM EQU #5B00
NEW_SP EQU #1F45 ; L1F45: in sp_128.asm
RET_SP EQU #1F20 ; L1F20: in sp_128.asm
;**************************************
; <20>ணࠬ¬  ¢ë§®¢  MENU_128 ¨§ އ“.
@ -131,33 +139,35 @@ MN_128_S:
; <20>â  ¯à®£à ¬¬  ¯¥à¥¬¥é ¥âáï ¢ ®§ã
;**************************************
MENU_128:
LD A,0
OUT (SYS_PORT.OFF),A
CALL SWAP_ROM
XOR A
OUT (SYS_PORT.RAM),A
CALL ZX_VARS.SWAP_ROM
CALL NEW_SP
SH_1: LD DE,MENU_DAT - MENU_128
LD HL,#F6EA
LD HL,ZX_VARS.MENU_TBL.JUMP
LD BC,4
LDIR
SH_2: LD HL,MENU_128_E - MENU_128
LD (#F6EA),HL
LD (ZX_VARS.MENU_TBL.JUMP),HL
SH_3: LD HL,MENU_128_E2 - MENU_128
LD (#F6EC),HL
LD (ZX_VARS.MENU_TBL.TEXT),HL
JP MENU_PROG
RET_M EQU $-MENU_128
SH_4: LD HL,MENU_DAT - MENU_128
LD DE,#F6EA
LD DE,ZX_VARS.MENU_TBL.JUMP
LD BC,4
LDIR
CALL RET_SP
CALL SWAP_ROM
CALL ZX_VARS.SWAP_ROM
EX AF,AF'
LD A,0
OUT (CNF_PORT),A
;LD A,0
;OUT (CNF_PORT),A
LD A,SYS_PORT.EXTENSION
OUT (SYS_PORT.ROM),A ;!!!!! ¢¥àá¨ï ¤«ï <20>‡“
EX AF,AF'
RET
MENU_DAT:
@ -186,7 +196,7 @@ LEN_P_M EQU $-MENU_128
;**************************************
; RST 30 - ¯®«ã祭¨¥ BC SPACES á  ¤à¥á  HL
; 19E8h - ®á¢®¡®¦¤¥­¨¥ BC spaces á  ¤à¥á  HL
; #19E8 - ®á¢®¡®¦¤¥­¨¥ BC spaces á  ¤à¥á  HL
; HL - à ¡. ï祩ª 
; BC -  ¤à¥á ¯à®£à ¬¬ë
; DE -  ¤à¥á ¤ ­­ëå ¤«ï ¯¥à¥¬¥é¥­¨ï
@ -276,8 +286,8 @@ ERR_TST_M:
;**************************************
CALL_DOS_MOVE:
LD DE,#5C00 - DOS_PROG.Size ;!HARDCODE
LD HL,DOS_PROG
LD DE,DOS_PROG.Exec
LD BC,DOS_PROG.Size
LDIR
RET
@ -290,50 +300,56 @@ CALL_DOS1:
LD DE,(ZX_VARS.E_LINE)
LD (ZX_VARS.CH_ADR),DE
LDIR
LD (ZX_VARS.WORK_SP),DE
LD (ZX_VARS.WORK_SPACE),DE
LD (ZX_VARS.STK_BOT),DE
LD (ZX_VARS.STK_END),DE
CALL CALL_DOS_MOVE
JP #5C00 - DOS_PROG.Size
CALL_DOS:
PUSH HL
PUSH DE
PUSH BC
PUSH AF
CALL CALL_DOS_MOVE
LD A,13H
LD (5C00H-DOS_PROG.Size+DOS_PROG_A),A
POP AF
POP BC
POP DE
POP HL
JP #5C00-DOS_PROG.Size
JP DOS_PROG.Exec
DOS_PROG:
PUSH AF
XOR A
OUT (SYS_PORT.OFF),A
POP AF
CALL #3D03 ;!HARDCODE
DOS_PROG_A EQU $-DOS_PROG-1
PUSH AF
LD A,0
OUT (CNF_PORT),A
POP AF
RET
DOS_PROG.Size EQU $-DOS_PROG
DISP #5C00 - DOS_PROG.Size ;!HARDCODE
//DOS_PROG:
.Exec: PUSH AF
XOR A
OUT (SYS_PORT.RAM),A
POP AF
//DOS_PROG_A+1:
.Patch+2: CALL #3D03 ;!HARDCODE
PUSH AF
;!FIXIT ᤥ« âì ç¥à¥§ ãá«®¢¨¥ ª®¬¯¨«ï樨 ZX_ROM_BIOS
//LD A,0
//OUT (CNF_PORT),A
LD A,SYS_PORT.EXTENSION
OUT (SYS_PORT.ROM),A ;!!!!! ¢¥àá¨ï ¤«ï <20>‡“
POP AF
RET
//DOS_PROG_LEN
.Size EQU $ - .Exec
ENT
;????? ¢à®¤¥, ­¥ ¨á¯®«ì§ãîâáï
CONT_PROG:
LD HL,1AFDH
PUSH HL
LD HL,5B00H
PUSH HL
LD DE,5C71H
LD BC,1
LD A,0E8H
LD (DE),A
JP SW_ROM
LD HL,#1AFD ;!HARDCODE COM_LN:
PUSH HL
LD HL,#5B00 ;!HARDCODE
PUSH HL
LD DE,ZX_VARS.FLG_INPUT
LD BC,1
LD A,#E8 ;!HARDCODE
LD (DE),A
JP SW_ROM
CALL_DOS:
PUSH HL
PUSH DE
PUSH BC
PUSH AF
CALL CALL_DOS_MOVE
LD A,#13 ;!HARDCODE #13 ¨§ AUTO_1303
LD (DOS_PROG.Patch),A
POP AF
POP BC
POP DE
POP HL
JP DOS_PROG.Exec
;
;

View File

@ -1,12 +1,13 @@
;.PRINTX "Service."
SERVICE:
LD HL,SR_TAB
//LD HL,SR_TAB
LD DE,SR_MENU
LD BC,SR_MENU.Size
PUSH HL
//PUSH HL
CALL RUN_MENU ;09f3
POP HL
LD HL,SR_TAB
//POP HL
CALL EXEC_PNT
JR SERVICE
@ -29,7 +30,7 @@ SR_MENU:
DC 'TURBO ON '
DC 'Clear RAM'
DC 'RETURN'
DC ' ' ; ¬ àª¥à ª®­æ 
DC " " ; ¬ àª¥à ª®­æ 
.Size EQU $-SR_MENU
;*****************************
@ -136,7 +137,7 @@ IS_MENU:
DC 'Pentagon 512'
DC 'Restart '
DC 'RETURN'
DC ' ' ; ¬ àª¥à ª®­æ 
DC " " ; ¬ àª¥à ª®­æ 
.Size EQU $-IS_MENU
;******************************
@ -267,6 +268,7 @@ CNF_PN_320:
LD A,Port_VSYNC.SET_320L
OUT (Port_VSYNC),A
RET
; LD A,CNF_0
; OUT (SYS_PORT.ROM),A
; CALL DOS_OFF

View File

@ -465,9 +465,9 @@ RET_FROM_BIOS_TO_BASIC48:
;***************************************
_mInfoBLOCK #3CF8-$,0
; no basic-48!
;JP_HL_48:
JP_HL_48:
PUSH HL
;SW_ROM:
SW_ROM:
PUSH AF
LD A,ROM.BIOS ;!FIXIT ¨«¨ ¯®áâ ¢¨âì âãâ ROM.EXPANSION ???
OUT (SYS_PORT.RAM),A

View File

@ -6,7 +6,7 @@
DEFINE PACKED_MAIN 0;| | ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®?
DEFINE SetFullZXromLoader 0;| ; ¤®¡ ¢«ïâì ¢ ¯à®è¨¢ªã ¨ £à㧨âì ¢á¥ ROM ᯥªâà㬠 ¨«¨ ç áâì?
DEFINE IDE_Optimization 1;| ; á«¥£ª  ®¯â¨¬¨§¨àã¥â ­¥ª®â®àë¥ ¯à®æ¥¤ãàë à ¡®âë á HDD
DEFINE NeedSafePort_Y 1;| ============== ; £®¢®à¨â á ¬® §  ᥡï)))
DEFINE NeedSafePort_Y 1;| ============== ; !!!!! ¥á«¨ 0, â® ¢ ०¨¬¥ sp-ᯥªâà㬠 ­¥ª®â®àë¥ ¯à®æ¥¤ãàë ¬®£ãâ § áà âì íªà ­
DEFINE Pashalki 0; \__________________/\
DEFINE PICTURE_FILE './src/bios/logo/psfathers.bmp';|
;____________________________________________________________/

View File

@ -1,15 +1,16 @@
;
;---------[All shared includes]---------
INCLUDE 'src/bios/shared/DEFINES.INC' ; Shared defines
INCLUDE 'src/bios/shared/DEFINES.INC' ; Shared defines
IF Pashalki
INCLUDE 'Shared_Includes/structures/EasterSprites.inc'
ENDIF
INCLUDE 'src/bios/Loader/Loader.asm' ; Bitstream loader as macros
INCLUDE 'src/bios/shared/CompMacro.asm' ; ¬ ªà®áë
INCLUDE 'Shared_Includes/constants/SP2000.inc' ; ª®­áâ ­âë
INCLUDE 'src/bios/Loader/Loader.asm' ; Bitstream loader as macros
INCLUDE 'src/bios/shared/CompMacro.asm' ; ¬ ªà®áë
INCLUDE 'Shared_Includes/constants/SP2000.inc' ; ª®­áâ ­âë
INCLUDE 'Shared_Includes/constants/zx_char_codes.inc' ; ª®­áâ ­âë
INCLUDE 'Shared_Includes/macroses/macros.z80'
INCLUDE 'src/bios/ROM/MEM_MAP.inc' ; ª àâ  ¯ ¬ïâ¨
INCLUDE 'src/bios/shared/VERSION.inc' ; ‚¥àá¨ï EXP ¨ ROM
INCLUDE 'src/bios/ROM/MEM_MAP.inc' ; ª àâ  ¯ ¬ïâ¨
INCLUDE 'src/bios/shared/VERSION.inc' ; ‚¥àá¨ï EXP ¨ ROM
INCLUDE 'Shared_Includes/constants/BIOS_EQU.inc'
INCLUDE 'src/bios/ROM/BIOS.inc'
;---------------------------------------