Settings: Load ZX ROMS
This commit is contained in:
parent
e551861939
commit
c1011079f6
@ -1 +1 @@
|
||||
Subproject commit f3ac185e2fe2d1e76f8e54c3c1f421a99fafdd62
|
||||
Subproject commit 17997278e4aea455a68532547beb561fd216ad19
|
||||
Binary file not shown.
@ -802,8 +802,7 @@ start: DI
|
||||
IN A,(SLOT3)
|
||||
PUSH AF
|
||||
;----[¯¥à¥å¢ â soft reset #EE port]-----
|
||||
Check_EE_Port:
|
||||
LD A,ACEX.RET_PORT
|
||||
Check_EE_Port: LD A,ACEX.RET_PORT
|
||||
LD B,0
|
||||
;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23
|
||||
;LD C,BIOS.SET_PORTS
|
||||
@ -860,9 +859,8 @@ Check_Spec_Page:
|
||||
LD (Spec_Page.flag_R),A
|
||||
JR Check_EE_Port.After_Hard_Rst
|
||||
;
|
||||
|
||||
;---------------------------------------
|
||||
No_Reset_handlers:
|
||||
No_Reset_handlers:/*
|
||||
; Check ZX ROMS Loaded
|
||||
LD A,(Spec_Page.flag_Z)
|
||||
CP 'Z'
|
||||
@ -874,18 +872,18 @@ No_Reset_handlers:
|
||||
LD A,R
|
||||
AND #80
|
||||
JR Z,No_Need_To_Load_ZXROMS
|
||||
.Load_ZXROMS:
|
||||
XOR A
|
||||
.Load_ZXROMS: XOR A
|
||||
LD R,A
|
||||
;
|
||||
; Load ZX ROM's
|
||||
init_rom_address EQU #8200 ;!HARDCODE
|
||||
ld hl,init_zx_roms
|
||||
ld de,init_rom_address
|
||||
ld bc,init_zx_roms.length
|
||||
ldir
|
||||
;
|
||||
call init_rom_address
|
||||
LD HL,init_zx_roms
|
||||
LD DE,init_rom_address
|
||||
LD BC,init_zx_roms.length
|
||||
LDIR
|
||||
;
|
||||
CALL init_rom_address
|
||||
;
|
||||
LD HL,#C000
|
||||
LD DE,#C001
|
||||
@ -899,7 +897,6 @@ init_rom_address EQU #8200 ;!HARDCO
|
||||
DEC DE ; Spec_Page.flag_Z
|
||||
LD A,'Z'
|
||||
LD (DE),A
|
||||
|
||||
; ‡ £«ãèª ¤«ï áâà ¨æë #41 ¢á直© ¯®¦ àë©
|
||||
LD HL,PROG_NO_ROM
|
||||
LD DE,#C000+Spec_Page.no_zx_rom
|
||||
@ -910,16 +907,16 @@ init_rom_address EQU #8200 ;!HARDCO
|
||||
LD DE,#C000+Spec_Page.to_bios
|
||||
LD BC,RAM_BIOS_PROG.Length
|
||||
LDIR
|
||||
*/
|
||||
No_Need_To_Load_ZXROMS:
|
||||
POP AF
|
||||
OUT (SLOT3),A
|
||||
;
|
||||
;-------------------------------------------------------------------------------------------------------------------;
|
||||
;!TODO ᤥ« âì ¢ë¡®à ¢ Setup, çâ® £à㧨âì ¢ v<>‡“ ¯à¨ áâ àâ¥. ‚ ਠâë:
|
||||
; 1 - ƒà㧨â <20>‡“ ᯥªâà㬠¨§ ROM ¯à¨ áâ à⥠¥á«¨ ¥â ä« £ ZX
|
||||
; 2 - ƒà㧨â <20>‡“ ᯥªâà㬠¨§ ROM ¯à¨ ª ¦¤®¬ ¯¥à¥§ ¯ã᪥ (¬®¦¥â ¡ëâì ®¯ á®)
|
||||
; 3 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 ª ª ¢ 3.04
|
||||
; 4 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 â ª, ç⮡ ª®¤ ¢ ¥© ¯®¤£à㦠« <20>‡“ ᯥªâà㬠¯à¨ ®¡à 饨¨
|
||||
;[ ] 0 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 ª ª ¢ 3.04
|
||||
;[ ] 1 - ƒà㧨â <20>‡“ ᯥªâà㬠¨§ ROM ¯à¨ áâ à⥠¥á«¨ ¥â ä« £ ZX
|
||||
;[ ] 2 - ƒà㧨â <20>‡“ ᯥªâà㬠¨§ ROM ¯à¨ ª ¦¤®¬ ¯¥à¥§ ¯ã᪥ (¬®¦¥â ¡ëâì ®¯ á®)
|
||||
;[ ] 3 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 â ª, ç⮡ ª®¤ ¢ ¥© ¯®¤£à㦠« <20>‡“ ᯥªâà㬠¯à¨ ®¡à 饨¨
|
||||
;-------------------------------------------------------------------------------------------------------------------;
|
||||
ENDMODULE
|
||||
;
|
||||
@ -1168,6 +1165,7 @@ ZG_ADDRESS: INCLUDE 'FONT.ASM'
|
||||
;
|
||||
; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ [___FOR ZX-MODE___] _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ;
|
||||
|
||||
/*
|
||||
;
|
||||
;------------------------[copy zx-roms to zx-pages]---------------------;
|
||||
; SLOT0 - ROM 8, sys_port - on.
|
||||
@ -1245,8 +1243,7 @@ init_zx_roms:
|
||||
ENT
|
||||
.length EQU $-init_zx_roms
|
||||
;-----------------------------------------------------------------------;
|
||||
;
|
||||
|
||||
;*/
|
||||
|
||||
;-----------------------------------------------------------------------;
|
||||
;!TODO § ¤¥©á⢮¢ âì
|
||||
|
||||
@ -520,6 +520,7 @@ START:
|
||||
|
||||
CALL TRQUICK
|
||||
CALL FINSTAL
|
||||
CALL ZXMODE_SETUP
|
||||
CALL CLEARM
|
||||
CALL RESCREEN
|
||||
|
||||
@ -1082,15 +1083,13 @@ SYSID: DZ "Starting..."
|
||||
FD144A: DB #80,#12,#02,#50,#00,#00,#02,FDD_INI_TABLE.FDD
|
||||
FD720A: DB #00,#09,#02,#50,#00,#00,#02,FDD_INI_TABLE.FDD
|
||||
|
||||
FINSTAL:
|
||||
IN A,(SLOT3)
|
||||
FINSTAL: IN A,(SLOT3)
|
||||
EX AF,AF'
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD HL,FDD_INI_TABLE.FDD_0
|
||||
LD BC,SYS_PAGE.FDD_TBL.Size*256 + #FF ; table_size*256 + fill_byte
|
||||
.FILLFDD:
|
||||
LD (HL),C
|
||||
.FILLFDD: LD (HL),C
|
||||
INC HL
|
||||
DJNZ .FILLFDD
|
||||
;
|
||||
@ -1100,12 +1099,11 @@ FINSTAL:
|
||||
CALL G_VALUE
|
||||
LD HL,FD720A
|
||||
OR A
|
||||
JR Z,SETFD0
|
||||
JR Z,.SETFD0
|
||||
LD HL,FD144A
|
||||
DEC A
|
||||
JR NZ,NOFDD0
|
||||
SETFD0:
|
||||
IN A,(SLOT3)
|
||||
JR NZ,.NOFDD0
|
||||
.SETFD0: IN A,(SLOT3)
|
||||
EX AF,AF'
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
@ -1114,17 +1112,15 @@ SETFD0:
|
||||
LDIR
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
NOFDD0:
|
||||
LD BC,CMOS_CELL.DrivesSetup_1.Mask.SecondFDD ;#0C11
|
||||
.NOFDD0: LD BC,CMOS_CELL.DrivesSetup_1.Mask.SecondFDD ;#0C11
|
||||
CALL G_VALUE
|
||||
LD HL,FD720A
|
||||
OR A
|
||||
JR Z,SETFD1
|
||||
JR Z,.SETFD1
|
||||
LD HL,FD144A
|
||||
DEC A
|
||||
JR NZ,NOFDD1
|
||||
SETFD1:
|
||||
IN A,(SLOT3)
|
||||
JR NZ,.NOFDD1
|
||||
.SETFD1: IN A,(SLOT3)
|
||||
EX AF,AF'
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
@ -1133,8 +1129,7 @@ SETFD1:
|
||||
LDIR
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
NOFDD1:
|
||||
RET
|
||||
.NOFDD1: RET
|
||||
|
||||
|
||||
PIDNUM: LD HL,memBUFFER.ID
|
||||
@ -1342,6 +1337,7 @@ NOCOPYC:
|
||||
LDIR
|
||||
RET
|
||||
|
||||
;---------------------------------------------------------------[]
|
||||
TRQUICK:
|
||||
;REGISTER #1E
|
||||
; %0000'0011 - TR DOS A: Default / FDD / HDD / RMD
|
||||
@ -1359,9 +1355,7 @@ TRQUICK:
|
||||
CALL TRDOSX
|
||||
LD BC,CMOS_CELL.TRDOSmount.Mask.D ;#C01E
|
||||
LD A,3
|
||||
|
||||
TRDOSX:
|
||||
; PUSH AF
|
||||
TRDOSX: ; PUSH AF
|
||||
; CALL G_VALUE
|
||||
; POP BC
|
||||
; OR A
|
||||
@ -1385,7 +1379,10 @@ TRDOSX:
|
||||
JP Z,HDD_TO_DRV
|
||||
SCF
|
||||
RET
|
||||
;---------------------------------------------------------------[]
|
||||
|
||||
|
||||
;!TODO ¯®á¬®âà¥âì
|
||||
;®âªàë¢ ¥â ¯®àâ #FE ç⥨¥ ¢ 3-© ª à⥠¯®à⮢
|
||||
;OPENDOS:
|
||||
; DI
|
||||
@ -1553,6 +1550,144 @@ PRINT_CHANEL:
|
||||
JP LP_PRINT_LINE6
|
||||
;
|
||||
|
||||
;----------------------------------------------------------------------[]
|
||||
;!TODO ᤥ« âì ¢ë¡®à ¢ Setup, çâ® £à㧨âì ¢ v<>‡“ ¯à¨ áâ àâ¥. ‚ ਠâë:
|
||||
;[ ] 0 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 ª ª ¢ 3.04
|
||||
;[ ] 1 - ƒà㧨â <20>‡“ ᯥªâà㬠¨§ ROM ¯à¨ áâ à⥠¥á«¨ ¥â ä« £ ZX
|
||||
;[ ] 2 - ƒà㧨â <20>‡“ ᯥªâà㬠¨§ ROM ¯à¨ ª ¦¤®¬ ¯¥à¥§ ¯ã᪥
|
||||
;[ ] 3 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 â ª,
|
||||
; ç⮡ ª®¤ ¢ ¥© ¯®¤£à㦠« <20>‡“ ᯥªâà㬠¯à¨ ®¡à 饨¨
|
||||
ZXMODE_SETUP: IN A,(SLOT3)
|
||||
PUSH AF
|
||||
LD A,Spec_Page
|
||||
OUT (SLOT3),A
|
||||
;
|
||||
LD BC,CMOS_CELL.Options.Mask.LoadZXroms
|
||||
CALL G_VALUE
|
||||
;
|
||||
OR A
|
||||
JR Z,.init_41h
|
||||
DEC A
|
||||
JR Z,.CheckAndLoad
|
||||
DEC A
|
||||
JR Z,.Load_ZXROMS
|
||||
;!TODO
|
||||
;DEC A
|
||||
;JR Z,.New_init_41h
|
||||
;
|
||||
; Check ZX ROMS Loaded
|
||||
.CheckAndLoad: LD A,(Spec_Page.flag_Z)
|
||||
CP 'Z'
|
||||
JR NZ,.Load_ZXROMS
|
||||
LD A,(Spec_Page.flag_X)
|
||||
CP 'X'
|
||||
JR NZ,.Load_ZXROMS
|
||||
; [x] 31/12/23 ¯®¤áâà 客ª ®â ¥¤®ãâ¥çª¨ ¯ ¬ïâ¨
|
||||
LD A,R
|
||||
AND #80
|
||||
JR Z,.No_Need_To_Load_ZXROMS
|
||||
.Load_ZXROMS: XOR A
|
||||
LD R,A
|
||||
;
|
||||
; Load ZX ROM's
|
||||
call init_zx_roms
|
||||
;
|
||||
LD HL,#C000
|
||||
LD DE,#C001
|
||||
LD BC,#3FFF
|
||||
LD (HL),C
|
||||
LDIR ; § ¡¨âì FF- ¬¨
|
||||
; áâ ¢¨¬ ¬¥âªã ¥á«¨ ¯à®£à㧨«¨ <20>‡“ ᯥªâàã¬
|
||||
DEC DE ; Spec_Page.flag_X
|
||||
LD A,'X'
|
||||
LD (DE),A
|
||||
DEC DE ; Spec_Page.flag_Z
|
||||
LD A,'Z'
|
||||
LD (DE),A
|
||||
; ‡ £«ãèª ¤«ï áâà ¨æë #41 ¢á直© ¯®¦ àë©
|
||||
.init_41h: LD HL,PROG_NO_ROM
|
||||
LD DE,#C000 + Spec_Page.no_zx_rom
|
||||
LD BC,PROG_NO_ROM.size
|
||||
LDIR
|
||||
;
|
||||
LD HL,RAM_BIOS_PROG
|
||||
LD DE,#C000 + Spec_Page.to_bios
|
||||
LD BC,RAM_BIOS_PROG.Length
|
||||
LDIR
|
||||
.No_Need_To_Load_ZXROMS:
|
||||
POP AF
|
||||
OUT (SLOT3),A
|
||||
RET
|
||||
|
||||
;
|
||||
;--------------------[copy zx-roms to zx-pages]-----------------;
|
||||
; SLOT0 - ROM 8, sys_port - on.
|
||||
; RAM SLOT0 - page 0
|
||||
; ¤«ï ०¨¬ zx spectrum
|
||||
; ‚›<E2809A>Ž‹<C5BD>Ÿ…’‘Ÿ ˆ‡ އ“
|
||||
; !HARDCODE ®¬¥à áâà ¨æ ¤«ï í¬ã«ïâ®à <20>‡“
|
||||
init_zx_roms: IN A,(SLOT3)
|
||||
EX AF,AF'
|
||||
;
|
||||
DI
|
||||
LD A,SYS_PORT.EXTENSION
|
||||
OUT (SYS_PORT.ROM),A
|
||||
INC A ;!HARDCODE LD A,2
|
||||
LD B,3 ; zx-rom number of pages
|
||||
;
|
||||
.loop: EXX
|
||||
;
|
||||
out (ROM.SLOT0),a
|
||||
or %0100'0000 ; !HARDCODE ®¬¥à áâà ¨æ ¤«ï í¬ã«ïâ®à <20>‡“
|
||||
out (SLOT3),a
|
||||
and %1011'1111 ; !HARDCODE ®¬¥à áâà ¨æ ¤«ï í¬ã«ïâ®à <20>‡“
|
||||
;
|
||||
LD HL,0
|
||||
LD DE,#C000
|
||||
LD BC,#4000
|
||||
LDIR
|
||||
;
|
||||
INC A
|
||||
EXX
|
||||
DJNZ .loop
|
||||
;
|
||||
xor a
|
||||
out (ROM.SLOT0),a
|
||||
OUT (SYS_PORT.ROM),A
|
||||
EX AF,AF'
|
||||
out (SLOT3),a
|
||||
;
|
||||
;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23
|
||||
LD A,ACEX.vROM.BASIC_128 ; ROM-ID - BASIC 128
|
||||
LD B,#42 ;!HARDCODE page
|
||||
CALL SET_PORTS
|
||||
;
|
||||
LD A,ACEX.vROM.BASIC_48 ; ROM-ID - BASIC 48
|
||||
LD B,#43 ;!HARDCODE page
|
||||
CALL SET_PORTS
|
||||
;
|
||||
LD A,ACEX.vROM.TR_DOS ; ROM-ID - TR-DOS
|
||||
LD B,#44 ;!HARDCODE page
|
||||
CALL SET_PORTS
|
||||
;
|
||||
; í⨠áâà ¨æë ¯®ª ¥ ¨á¯®«ì§ãîâáï
|
||||
LD A,ACEX.vROM.BIOS ; ROM-ID - BIOS
|
||||
;LD B,#45 ;!HARDCODE page
|
||||
LD B,#41
|
||||
CALL SET_PORTS
|
||||
;
|
||||
LD A,ACEX.vROM.BIOS_3 ; ROM-ID - BIOS-1
|
||||
;LD B,#46 ;!HARDCODE page
|
||||
LD B,#41
|
||||
CALL SET_PORTS
|
||||
;
|
||||
LD A,ACEX.vROM.BIOS_4 ; ROM-ID - BIOS-2
|
||||
;LD B,#47 ;!HARDCODE page
|
||||
LD B,#41
|
||||
JP SET_PORTS
|
||||
; ¬®¦® § ¤¥©á⢮¢ âì ¥éñ 4 áâà ¨æë ¯®àâë #E4..#E7
|
||||
;---------------------------------------------------------------------[]
|
||||
|
||||
|
||||
;---------------------------------------
|
||||
INCLUDE 'src/bios/ROM/SETUP/messages.z80'
|
||||
|
||||
@ -52,13 +52,13 @@
|
||||
"TypDelay", -- DEFINES.INC --> UnusedSettingsFeatures
|
||||
},
|
||||
[2]={
|
||||
"TrDosA", -- 1
|
||||
"TrDosB", -- 2
|
||||
"TrDosC", -- 3
|
||||
"TrDosD", -- 4
|
||||
"SetTime", -- 5 DEFINES.INC --> NEW_FEATURE
|
||||
"HddWrPr", -- 6 DEFINES.INC --> HDDwriteProtect
|
||||
-- 7
|
||||
"LoadZXroms", -- 1
|
||||
"TrDosA", -- 2
|
||||
"TrDosB", -- 3
|
||||
"TrDosC", -- 4
|
||||
"TrDosD", -- 5
|
||||
"SetTime", -- 6 DEFINES.INC --> NEW_FEATURE
|
||||
"HddWrPr", -- 7 DEFINES.INC --> HDDwriteProtect
|
||||
-- 8
|
||||
-- 9
|
||||
-- 10
|
||||
@ -467,6 +467,16 @@ SettingsItemsTabs:
|
||||
DB msgStrings.valFDD
|
||||
DB msgStrings.valHDD
|
||||
|
||||
_mSETitemParams LoadZXroms
|
||||
DW OnChangeAction.nothing
|
||||
IF NEW_FEATURE : DB paramLine : ENDIF
|
||||
DB columnNum,lineNum
|
||||
DB paramName
|
||||
DW CMOS_CELL.Options.Mask.LoadZXroms : DB %0000'1000
|
||||
DB msgStrings.valLoadZXromsManually
|
||||
DB msgStrings.valLoadZXromsFlag
|
||||
DB msgStrings.valLoadZXromsCAD
|
||||
|
||||
IF NEW_FEATURE
|
||||
_mSETitemParams SetTime
|
||||
DW OnChangeAction.SetTime
|
||||
@ -651,6 +661,11 @@ msgStrings:
|
||||
_mSetStr parTrDosB, tmp_Counter : DZ 'TR DOS B:> : '
|
||||
_mSetStr parTrDosC, tmp_Counter : DZ 'TR DOS C:> : '
|
||||
_mSetStr parTrDosD, tmp_Counter : DZ 'TR DOS D:> : '
|
||||
_mSetStr parLoadZXroms, tmp_Counter : DZ 'Load ZX ROMs : '
|
||||
_mSetStr valLoadZXromsManually, tmp_Counter : DZ 'Manually '
|
||||
_mSetStr valLoadZXromsFlag, tmp_Counter : DZ 'By ZX flag '
|
||||
_mSetStr valLoadZXromsCAD, tmp_Counter : DZ 'On restart '
|
||||
; _mSetStrRus valLoadZXromsAuto, tmp_Counter : DZ 'On call '
|
||||
IF NEW_FEATURE
|
||||
_mSetStr parSetTime, tmp_Counter : DZ 'Date and time setup : '
|
||||
_mSetStr valFolder, tmp_Counter : DB 16,'ENTER',17,0
|
||||
@ -804,6 +819,11 @@ msgRusStrings:
|
||||
_mSetStrRus parTrDosB, tmp_Counter : DZ 'TR DOS B:> : '
|
||||
_mSetStrRus parTrDosC, tmp_Counter : DZ 'TR DOS C:> : '
|
||||
_mSetStrRus parTrDosD, tmp_Counter : DZ 'TR DOS D:> : '
|
||||
_mSetStrRus parLoadZXroms, tmp_Counter : DZ '‡ £à㦠âì ZX <EFBFBD>‡“ : '
|
||||
_mSetStrRus valLoadZXromsManually, tmp_Counter : DZ '‚àãçãî '
|
||||
_mSetStrRus valLoadZXromsFlag, tmp_Counter : DZ '<EFBFBD>® ä« £ã ZX '
|
||||
_mSetStrRus valLoadZXromsCAD, tmp_Counter : DZ '<EFBFBD>ਠà¥áâ àâ¥'
|
||||
; _mSetStrRus valLoadZXromsAuto, tmp_Counter : DZ '<27>ਠ¢ë§®¢¥ '
|
||||
IF NEW_FEATURE
|
||||
_mSetStrRus parSetTime, tmp_Counter : DZ '„ â ¨ ¢à¥¬ï : '
|
||||
_mSetStrRus valFolder, tmp_Counter : DB 16,'‚‚Ž„',17,0
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
;=======================[All shared EQUs]=======================;
|
||||
BETA_BUILD EQU 5 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ áâ à⮢®¬ íªà ¥
|
||||
BETA_BUILD EQU 6 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ áâ à⮢®¬ íªà ¥
|
||||
;======================[All shared defines]=====================;
|
||||
DEFINE PACKED_MAIN 0 ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®?
|
||||
DEFINE SP2000_Loader_Flag #0107 ;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user