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 _mInfoBLOCK #3CF8-$,0
; no basic-48! ; no basic-48!
JP_HL_48: ;JP_HL_48:
PUSH HL PUSH HL
SW_ROM: ;SW_ROM:
PUSH AF PUSH AF
LD A,ROM.BIOS LD A,ROM.BIOS ;!FIXIT ­ĽŻŕ ˘¨Ťě­ŽĽ ­ §˘ ­¨Ľ ŞŽ­áâ ­âë
OUT (SYS_PORT.RAM),A OUT (SYS_PORT.RAM),A
POP AF POP AF
RET RET

View File

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

View File

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

View File

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

View File

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