мелкие правки с инитом vROM

This commit is contained in:
Anatoliy Belyanskiy 2024-02-24 23:31:24 +10:00
parent 8816322b85
commit a4a69a2604
4 changed files with 148 additions and 172 deletions

View File

@ -16,8 +16,8 @@ EXP_START:
;---------------------------------------
ROM_NUMBER:
.part1: DW MotherBoardID ; MotherBoardID
.part2: DB 0
.part1: DW MotherBoardID
.part2: DB 0
;---------------------------------------
;---------------------------------------
@ -145,7 +145,7 @@ TABLE_X:
;
;=======================================
IFN TEST_INT
RESTARTS EQU #FFE0 ; !FIXIT ¢ë­¥á⨠¢ SP2000.inc
RESTARTS EQU #FFE0
GLOBAL_RESET:
DI
IM 1
@ -210,18 +210,17 @@ NMI_Point:
;=======================================
; BLOCK MEM_MAP.ID_Version-$,0 ;#C0-$,0
ID_Version:
dw BIOS_ver_hex
ID_Version: DW BIOS_ver_hex
ID_SPRINTER_length:
DB ID_SPRINTER.LENGTH
ID_SPRINTER: ; § ¯¨áì 1
DB 'Firmware v'
; § ¯¨áì 1
ID_SPRINTER: DB 'Firmware v'
.BIOS_ver: DB BIOS_ver_string,', '
IF DEBUG
DB 'BETA release'
ELSE
DB 'release ',BUILD_DATE
ENDIF
IF DEBUG
DB 'BETA release'
ELSE
DB 'release ',BUILD_DATE
ENDIF
DB 0
; § ¯¨áì 2
DB 'Sprinter',0
@ -233,7 +232,7 @@ ID_SPRINTER: ;
.LENGTH EQU $-ID_SPRINTER
; Check for max length of string
ASSERT ID_SPRINTER.LENGTH < #40, 'ERROR! ID String is to long!'
ASSERT ID_SPRINTER.LENGTH < #FF, 'ERROR! ID String is to long!'
;=======================================
@ -275,7 +274,9 @@ TABLE_X: ; ⠡
;
;=======================================
IF TEST_INT
RESTARTS EQU #FFE0 ; !FIXIT ¢ë­¥á⨠¢ SP2000.inc
RESTARTS EQU #FFE0
; ¯®«­ë© ¯¥à¥å¢ â à¥á¥â  áà §ã ¯®á«¥ ¯à®«¨¢ª¨ ª®­äë ¨ CAD.
; § ª¨¤ë¢ ¥âáï ¢ ª àâã ¯®à⮢, ¯®í⮬㠨ᯮ«ì§®¢ âì ­ ¤® å¨âà®.
GLOBAL_RESET:
DI
IM 1
@ -714,7 +715,7 @@ POST_5_OK:
ADD IX,SP ; ¢®ááâ ­®¢¨âì §­ ç¥­¨¥ ¯¥à¥¤ ­­®¥ § £àã§ç¨ª®¬ ª®­äë (¥á«¨ áâ àâ ¯®á«¥ à¥á¥â )
; í⮬ ¬¥á⥠㠭 á IX:IY ¨§ Loader.asm
; „®â é¨«¨ ¤® á ¬¥âªã ®â «® ¤¥à , ¯®ª  ­¥ ¨á¯®«ì§ã¥âáï
;!TEST 31/12/23 ¯®¤áâà å®¢ª  ®â ãâ¥çª¨ ¯ ¬ïâ¨
;[x] 31/12/23 ¯®¤áâà å®¢ª  ®â ãâ¥çª¨ ¯ ¬ïâ¨
LD D,YH
LD E,YL
EX DE,HL
@ -899,25 +900,28 @@ init_rom_address EQU #8200 ;!HARDCO
LD A,'Z'
LD (DE),A
;!FIXIT ᤥ« âì ¢ë¡®à £à㧨âì ¤ /­¥â <20>‡“ ᯥªâà㬠 ¯à¨ áâ àâ¥, [-------]
; ¥á«¨ ­¥â - â® ¢®âª­ãâì íâ®â ª®¤:
; 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
;---------------------------------------
;---------------------------------------
; ‡ £«ã誠 ¤«ï áâà ­¨æë #41 ­  ¢á直© ¯®¦ à­ë©
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
;
;-------------------------------------------------------------------------------------------------------------------;
;!TODO ᤥ« âì ¢ë¡®à ¢ Setup, çâ® £à㧨âì ¢ v<>‡“ ¯à¨ áâ àâ¥. ‚ à¨ ­âë:
; 1 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ áâ à⥠¥á«¨ ­¥â ä« £  ZX
; 2 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ ª ¦¤®¬ ¯¥à¥§ ¯ã᪥ (¬®¦¥â ¡ëâì ®¯ á­®)
; 3 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨­¨â¨âì áâà ­¨æã #41 ª ª ¢ 3.04
; 4 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨­¨â¨âì áâà ­¨æã #41 â ª, ç⮡ ª®¤ ¢ ­¥© ¯®¤£à㦠« <20>‡“ ᯥªâà㬠 ¯à¨ ®¡à é¥­¨¨
;-------------------------------------------------------------------------------------------------------------------;
ENDMODULE
;[---------------------------------------------------------------------]
;
;**************************************
;
@ -1144,7 +1148,6 @@ init_zx_roms:
DISP Reset_Handler.init_rom_address
IN A,(SLOT3)
;PUSH AF
EX AF,AF'
DI
@ -1152,10 +1155,8 @@ init_zx_roms:
OUT (SYS_PORT.ROM),A
INC A ;!HARDCODE LD A,2
LD B,3 ; zx-rom number of pages
;!FIXIT ¯¥à¥¤¥« âì ­  äã­ªæ¨î ¡¨®á  ¤«ï ç⥭¨ï ROM-DISK ¨ ¯¥à¥­¥á⨠¢ ­¥£® <20>‡“ ᯥªâà㬠
.loop: ;push bc
EXX
;
.loop: EXX
;
out (ROM.SLOT0),a
or %0100'0000 ; !HARDCODE ­®¬¥à  áâà ­¨æ ¤«ï í¬ã«ïâ®à  <20>‡“
@ -1167,68 +1168,49 @@ init_zx_roms:
LD BC,#4000
LDIR
inc a
;pop bc
INC A
EXX
DJNZ .loop
xor a
out (ROM.SLOT0),a
OUT (SYS_PORT.ROM),A
;POP AF
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_128 ; ROM-ID - BASIC 128
LD B,#42 ;!HARDCODE page
;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23
;CALL .SET_ROM
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.BASIC_48 ; ROM-ID - BASIC 48
LD B,#43 ;!HARDCODE page
;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23
;CALL .SET_ROM
;
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
LD A,ACEX.vROM.TR_DOS ; ROM-ID - TR-DOS
LD B,#44 ;!HARDCODE page
;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23
;CALL .SET_ROM
CALL SET_PORTS
;
; LD A,ACEX.vROM.BIOS ; ROM-ID - BIOS
; LD B,#45 ;!HARDCODE page
;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23
;CALL .SET_ROM
CALL SET_PORTS
;
; LD A,ACEX.vROM.BIOS_3 ; ROM-ID - BIOS-1
; LD B,#45 ;!HARDCODE page
;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23
;CALL .SET_ROM
CALL SET_PORTS
;
; LD A,ACEX.vROM.BIOS_4 ; ROM-ID - BIOS-2
; LD B,#47 ;!HARDCODE page
;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23
;CALL .SET_ROM
CALL SET_PORTS
;
RET
;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23
;.SET_ROM:
;LD C,BIOS.SET_PORTS
;JP ToBIOS_3D13
;
ENT
.length EQU $-init_zx_roms
;-----------------------------------------------------------------------;
@ -1236,7 +1218,8 @@ init_zx_roms:
;-----------------------------------------------------------------------;
GOTO_SPEC: ; ????? ¯à®æ¥¤ãà  ¡¨®á  ¤«ï § å®¤  ¢ ०¨¬ ᯥªâà㬠
;!TODO § ¤¥©á⢮¢ âì
GOTO_SPEC:
IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
@ -1262,30 +1245,23 @@ ZX_SPECTRUM_MODE:
CALL FN_SYNC.INT_PENT
CALL SET_PAL_ZX
LD E,0
;!TEST
; LD HL,#4104
; LD B,4
; CALL LP_OPEN_S
CALL LP_SET_32
LD E,0
CALL LP_SET_32
;
LD E,0
LD HL,#5104
;!TEST
; LD B,4
;CALL LP_OPEN_S
LD E,0
LD HL,#5104
CALL LP_SET_32.X
; ????? ¬®¦­® ¨á¯®«ì§®¢ âì ª®£¤ -­¨¡ã¤ì ª ª-­¨¡ã¤ì
; LD D,#35
; CALL CMOS_RD
; BIT 0,A ; !!!!!
; PUSH AF
; CALL Z,SPRINTER_1
; POP AF
; PUSH AF
; CALL NZ,AY8910
; POP AF
; BIT 0,A
; PUSH AF
; CALL Z,SPRINTER_1
; POP AF
; PUSH AF
; CALL NZ,AY8910
; POP AF
SPECTRUM_0:
XOR A ; § ¤ ç  0, ०¨¬ 256 ª¨«®¡ ©â
@ -1443,63 +1419,62 @@ Length EQU $-Setup_Starter.Start
;---------------------[ ‡€ƒ‹“˜Šˆ „‹Ÿ #41 <E28098><EFBFBD>ˆ]----------------------;
;-------------[RST 08]
; RAM_BIOS_PROG: ; for CALL BIOS in #41 page
; DISP Spec_Page.to_bios
; PUSH AF
; LD A,ROM.BIOS
; OUT (SYS_PORT.ROM),A
; POP AF
; RET
; ENT
; .Length EQU $-RAM_BIOS_PROG
; ;-------------------[]
; ;-------------[RST 38]
; PROG_NO_ROM:
; DISP Spec_Page.no_zx_rom
; DI
; LD A,#FF
; OUT (SLOT3),A
; OUT (SLOT2),A
; OUT (SLOT1),A
; LD SP,#BF00
; LD C,BIOS.LP_OPEN_S
; LD B,3
; LD E,0
; RST ToBIOS
; LD C,BIOS.LP_CLS_WIN
; LD DE,0
; LD HL,#2050
; RST ToBIOS
; LD A,1
; OUT (RGMOD),A ; set scr-2
; LD HL,MESSAGE_NR
; LD DE,#A000
; LD BC,MESSAGE_NR.size
; LD A,C
; LDIR
; LD HL,#A000
; LD D,0 ; delimiter
; LD E,COLORS.CGA.FLASH + COLORS.CGA.INC.RED
; LD B,A
; LD C,BIOS.LP_PRINT_LINE3
; RST ToBIOS
; .loop: DI
; HALT
; JR .loop
; MESSAGE_NR: DZ " Spectrum ROM not installed. Use spectrum.exe Press Ctrl+Alt+Del or RESET"
; .size EQU $-MESSAGE_NR
; ENT
; PROG_NO_ROM.size EQU $-PROG_NO_ROM
RAM_BIOS_PROG: ; for CALL BIOS in #41 page
DISP Spec_Page.to_bios
PUSH AF
LD A,ROM.BIOS
OUT (SYS_PORT.ROM),A
POP AF
RET
ENT
.Length EQU $-RAM_BIOS_PROG
;-------------------[]
;
;-------------[RST 38]
PROG_NO_ROM:
DISP Spec_Page.no_zx_rom
DI
;
LD A,#FF
OUT (SLOT3),A
OUT (SLOT2),A
OUT (SLOT1),A
;
LD SP,#BF00
;
LD E,0
LD BC,BIOS.LP_OPEN_S.TXT_80x32_Default
RST ToBIOS
;
LD DE,0
LD HL,#2050
LD C,BIOS.LP_CLS_WIN
RST ToBIOS
; set scr-2
LD A,1
OUT (SCREEN_SWITCH),A
;
LD HL,MESSAGE_NR
LD DE,#A000
LD BC,MESSAGE_NR.size
LD A,C
LDIR
;
LD HL,#A000
LD D,0 ; delimiter
LD E,COLORS.CGA.FLASH + COLORS.CGA.INC.RED
LD B,A
LD C,BIOS.LP_PRINT_LINE3
RST ToBIOS
;
.loop: DI
HALT
JR .loop
;
MESSAGE_NR: DZ " Spectrum ROM not installed. Use spectrum.exe Press Ctrl+Alt+Del or RESET"
.size EQU $-MESSAGE_NR
ENT
PROG_NO_ROM.size EQU $-PROG_NO_ROM
;-------------------[]
;-----------------------------------------------------------------------;
;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<;

View File

@ -109,7 +109,8 @@ RST_CONF:
XOR A
RET
;
;[x]
.CHOOSE_CNF:
;!TEST
CP ACEX.Config_PG.Sp2000_SoftSetUp
@ -134,8 +135,9 @@ RST_CONF:
JR Z,.INT_PLD
SCF
RET
.INIT_ACEX: ;!FIXIT ;!TODO <20>…„Ž„…<E280B9>Ž!!!!
;
;[x]
.INIT_ACEX:
DI
; ãáâ ­ ¢«¨¢ ¥¬ ­ã«¥¢ãî ª àâã ¯®à⮢
LD A,CNF_PORT.CNF_0
@ -187,10 +189,11 @@ RST_CONF:
LD HL,RST_18_1.exit
XOR A
SBC HL,DE
JR NZ,1F ; NZ - ¥á«¨ ¢ë§®¢ ¡ë« ¯® RST #18
JR NZ,.set_ret ; NZ - ¥á«¨ ¢ë§®¢ ¡ë« ¯® RST #18
POP DE ; ¥á«¨ ¢ë§®¢ ¡ë« ¢ އ“ ¯® RST 8
INC A
1: LD (Spec_Page.RET_addr),DE
.set_ret:
LD (Spec_Page.RET_addr),DE
; A=0 - SYS_PORT.ON
; A=1 - SYS_PORT.OFF
LD (Spec_Page.Reload_Version),A
@ -238,7 +241,6 @@ RST_CONF:
RET
;
.INIT_ACEX.PROGRAM:
DISPLAY " !!! !!! .INIT_ACEX.PROGRAM !!! !!!"
DISP Spec_Page.init_acex
;
SAFE_PORTY
@ -256,9 +258,9 @@ RST_CONF:
OUT (FastRAM.SLOT0),A ; ‘âà ­¨æ  Š<>˜ = 3
;
LD HL,.INIT_ACEX.Reload_String ; ä« £ ¯¥à¥§ £à㧪¨ ¨§ Š<>˜- 
JR Z,1F ; ãáâ ­ ¢«¨¢ ¥¬ ä« £ ¯¥à¥§ £à㧪¨ ¨§ Š<>˜- 
JR Z,.skip ; ãáâ ­ ¢«¨¢ ¥¬ ä« £ ¯¥à¥§ £à㧪¨ ¨§ Š<>˜- 
INC L ; § â¨à ¥¬ ä« £ ¯¥à¥§ £à㧪¨ ¨§ Š<>˜- 
1: LD DE,ACEX.LOADER.String_Address-#C000
.skip: LD DE,ACEX.LOADER.String_Address-#C000
LD BC,#10
LDIR

View File

@ -1,6 +1,6 @@
;
;---------[All shared defines]----------
DEFINE DEBUG 1 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥­¨¥ ® â¥á⮢®© ᡮથ ­  áâ à⮢®¬ íªà ­¥
DEFINE DEBUG 0 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥­¨¥ ® â¥á⮢®© ᡮથ ­  áâ à⮢®¬ íªà ­¥
DEFINE PACKED_MAIN 0 ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®?
DEFINE SP2000_Loader_Flag #0107
DEFINE IDE_Optimization 1 ; á«¥£ª  ®¯â¨¬¨§¨àã¥â ­¥ª®â®àë¥ ¯à®æ¥¤ãàë à ¡®âë á HDD

View File

@ -1,13 +1,12 @@
TODO:
- ¯ã­ªâ ¢ á¥â ¯¥ "á®åà ­ïâì áâà ­¨æë ᯥªâà㬠 ¯à¨ ¯¥à¥§ £à㧪¥"
- ¯¥à¥¤ ¨­¨æ¨ «¨§ æ¨¥© áâà ­¨æ ᯥªâà㬠 ¨ áâà ­¨æë 41 ¯à®¢¥àïâì, ­¥ § ­ïâë «¨ ®­¨ à ¬¤¨áª®¬
- ‘¦ βμ εΰγα⮬ <20>‡“ α―¥<E28095>βΰγ¬  ¨ ‹®£®β¨―, ¥ιρ 1 αβΰ ­¨ζ  ¬®¦¥β ®αΆ®΅®¤¨βμαο
- Ά α¥β ― ¤«ο α®εΰ ­¥­¨ο ΰγη­λε ­ αβ஥<C2AE> HDD ­¥ β¥ ο祩<C2A5>¨ CMOS
- ç¨áâ¨âì ¡ãä¥à ª« ¢ë ­¥ ¢âã¯ãî,   ª ª¨¬¨-­¨¡ã¤ì ª®¬ ­¤ ¬¨ ¤«ï íâ¨å ¢á直å SIO/PIO, ¥á«¨ ¥áâì
-+ ! ¢ Setup ¤®¡ ¢¨âì ¯ã­ªâ ­ áâனª¨ ¢à¥¬¥­¨ ¨ ¤ âë
-+ ­¥¬­®£® ¤®ΰ ΅®β ­  α¨α⥬  ―¥ΰ¥εΆ β  ΰ¥α¥β  ¤«ο γαβΰ ­¥­¨ο ­¥<C2AD>®β®ΰλε £«ξ<C2AB>®Ά ¨ ­  ΅γ¤γι¥¥
Done:
+ ­¥¬­®£® ¤®à ¡®â ­  á¨á⥬  ¯¥à¥å¢ â  à¥á¥â  ¤«ï ãáâà ­¥­¨ï ­¥ª®â®àëå £«îª®¢ ¨ ­  ¡ã¤ã饥
+ ¢ á¥â ¯ à ¡®â ¥â á®åà ­¥­¨¥ ­ áâ஥ª HDD "Setup" ¯®á«¥ ¯¥à¢®£® 㤠筮£®  ¢â®¤¥â¥ªâ 
+ ‘¤¥« ­ ã­¨¢¥àá «ì­ë© § £àã§ç¨ª ¡¨âáâਬ  ¤«ï 1k30 ¨ 1k50
+ €ªâ¨¢¨à®¢ ­ ¢â®à®© ª ­ « IDE
+ <20>ã¬¥à æ¨ï ãáâனá⢠IDE ¯¥à¥¤¥« ­  á ¯®á«¥¤®¢ â¥«ì­®© ­  䨧¨ç¥áªãî