первая бетка восьмой бетки

This commit is contained in:
Tolik 2024-10-01 05:00:13 +10:00
parent ea26e1f584
commit 934353b970
7 changed files with 160 additions and 136 deletions

Binary file not shown.

View File

@ -1176,7 +1176,6 @@ DOS_ON: NOP ;!TODO ࠡ
;*************************************** ;***************************************
; BLOCK #3D02-$,FF ; BLOCK #3D02-$,FF
; !TODO ¬®¦­® ®¯à¨å®¤®¢ âì âãâ 17 ¡ ©â®¢ ; !TODO ¬®¦­® ®¯à¨å®¤®¢ âì âãâ 17 ¡ ©â®¢
;
;*************************************** ;***************************************
;*************************************** ;***************************************
@ -1234,17 +1233,13 @@ PROG_NO_ROM:
DISP Spec_Page.no_zx_rom DISP Spec_Page.no_zx_rom
DI DI
; ;
LD A,CNF_PORT.CNF_0
OUT (SYS_PORT.RAM),A
;
LD A,SHARED_PAGE LD A,SHARED_PAGE
OUT (SLOT3),A OUT (SLOT3),A
OUT (SLOT2),A OUT (SLOT2),A
OUT (SLOT1),A OUT (SLOT1),A
;
LD HL,MESSAGE_NR
LD DE,#A000
LD BC,MESSAGE_NR.size
LD A,C
LDIR
;
LD SP,#BF00 LD SP,#BF00
; ;
LD E,0 LD E,0
@ -1259,6 +1254,12 @@ PROG_NO_ROM:
LD A,1 LD A,1
OUT (SCREEN_SWITCH),A OUT (SCREEN_SWITCH),A
; ;
LD HL,MESSAGE_NR
LD DE,#A000
LD BC,MESSAGE_NR.size
LD A,C
LDIR
;
LD HL,#A000 LD HL,#A000
LD D,0 ; delimiter LD D,0 ; delimiter
LD E,COLORS.CGA.FLASH + COLORS.CGA.INK.RED LD E,COLORS.CGA.FLASH + COLORS.CGA.INK.RED
@ -1277,7 +1278,7 @@ PROG_NO_ROM.size EQU $-PROG_NO_ROM
;-------------------[] ;-------------------[]
;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------;
;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<; ;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<;
; ENDIF
;-------------------------------[ #FFE0 ]-------------------------------; ;-------------------------------[ #FFE0 ]-------------------------------;
; ¯à®£à ¬¬ , ª®â®à ï ¡ã¤ãç¨ à §¬¥é¥­­®© ¢ #40 áâà ­¨æ¥, ; ¯à®£à ¬¬ , ª®â®à ï ¡ã¤ãç¨ à §¬¥é¥­­®© ¢ #40 áâà ­¨æ¥,
; á  ¤à¥á  RESTARTS, ¯¥à¥å¢ â뢠¥â RESET ; á  ¤à¥á  RESTARTS, ¯¥à¥å¢ â뢠¥â RESET
@ -1290,8 +1291,8 @@ RESTARTS_PROG: ; !TODO LDConf
NOP NOP
NOP NOP
.Size EQU $-RESTARTS_PROG .Size EQU $-RESTARTS_PROG
; LD A,1 ; LD A,1
; OUT (SLOT3),A ; OUT (SLOT3),A
;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------;
;----------------------------[Setup Starter]----------------------------; ;----------------------------[Setup Starter]----------------------------;
@ -1485,8 +1486,6 @@ kbd_loop2:
;#######################################################################; ;#######################################################################;
;#######################################################################; ;#######################################################################;
;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------;
@ -1504,6 +1503,11 @@ ROM_DISK.Pages: ;
;#######################################################################; ;#######################################################################;
; ;
;---------[Return to EXTENSION]--------- ;---------[Return to EXTENSION]---------
_mInfoBLOCK #3FD0-$,#FF ; ToBIOS_FromEXT _mInfoBLOCK #3FD0-$,#FF ; ToBIOS_FromEXT
; #3FD0 ; #3FD0

View File

@ -300,13 +300,16 @@ INIT_CONFIG_ALL:
LD DE,CNF_PORT.CNF_0 + ROM.BIOS LD DE,CNF_PORT.CNF_0 + ROM.BIOS
LD (SYS_PAGE.CONFIG_DE - #4000),DE LD (SYS_PAGE.CONFIG_DE - #4000),DE
; LD HL,SYS_PAGE.ZX_TASK.CURRENT - #4000 ; 㡨âì ¢á¥ § ¤ ç¨ ; LD HL,SYS_PAGE.ZX_TASK.CURRENT - #4000 ; 㡨âì ¢á¥ § ¤ ç¨
; LD DE,SYS_PAGE.ZX_TASK.CURRENT+1 - #4000 ; LD DE,SYS_PAGE.ZX_TASK.CURRENT+1 - #4000
; LD BC,_ZX_TASK - 1 ; LD BC,_ZX_TASK - 1
; LD (HL),0 ; LD (HL),0
; LDIR ; LDIR
LD A,Spec_Page
OUT (SLOT2),A
LD (Spec_Page.flag_Z - #4000),A
EX AF,AF' EX AF,AF'
OUT (SLOT2),A OUT (SLOT2),A

View File

@ -437,35 +437,19 @@ EXIT_SETUP: CALL INT_OFF
; error ; error
XOR A XOR A
OUT (SYS_PORT.ROM),A OUT (SYS_PORT.ROM),A
LD D,CMOS_CELL.QuickStartSetUp LD D,CMOS_CELL.QuickStartSetUp ; ®¡­ã«ï¥¬ ¯ à ¬¥âà ­  ¢á直© á«ãç ©
CALL CMOS_WR CALL CMOS_WR
LD A,SYS_PAGE ;
OUT (SLOT3),A CALL ScreenPOS.CRLF
RET LD A,msgStrings.errorZXmode
LD E,COLORS.CGA.INK.RED
CALL POSTMSC
.loop_di: DI
HALT
JR .loop_di
; ELSE
;LD BC,#020E
;CALL GET_CMOS_VALUE
;OR A
;LD A,#EC ;SPRINTER
;JR Z,XFLEX
;LD A,#EA ;SPECTRUM
;XFLEX:
; XOR A ;LD A,ROM.BIOS
; OUT (SYS_PORT.ROM),A
; POP HL ; ¯¨å ¥âáï ¢ EXP.ASM ¢ ¯à®æ¥¤ãà¥
; JP (HL)
;LD (JMPHL),HL
;LD C,#F3
;RST_to_BIOS
;JMPHL EQU $+1
;JP #0000
; ENDIF
SetUp_ZX_HDD: LD D,CMOS_CELL.TRDOSmount SetUp_ZX_HDD: LD D,CMOS_CELL.TRDOSmount
CALL CMOS_RD CALL CMOS_RD
AND %1010'1010 ; ¬ áª  ¤«ï 4-å HDD AND %1010'1010 ; ¬ áª  ¤«ï 4-å HDD
@ -1827,6 +1811,71 @@ init_zx_roms: DI
OUT (SYS_PORT.ROM),A OUT (SYS_PORT.ROM),A
LD A,Spec_Page LD A,Spec_Page
OUT (SLOT3),A OUT (SLOT3),A
.init_41h: ; § ¡¨âì FF- ¬¨
LD HL,#C000
LD DE,#C001
LD BC,#3FFF - 2
LD (HL),#FF
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
RET
;---------------------------------------------------------------------[]
;---------------------------------------
INCLUDE 'src/bios/ROM/SETUP/messages.z80'
;---------------------------------------
;
STRUCT MAIN_BUFFERS
ID BLOCK #100
Messages BLOCK MSG_ENG.size
Shared BLOCK 1024
End BYTE
ENDS
memBUFFER MAIN_BUFFERS = $
STACK EQU #C000
.Size EQU 128
IF memBUFFER.End-1 > #C000-STACK.Size
DISPLAY 'memBUFFER.Shared overlaps STACK by: ',/A,(memBUFFER.End-1)-(#C000-STACK.size)
ASSERT memBUFFER.End-1 < #C000-STACK.size
ENDIF
IFDEF PREBUILD
OUTEND
DISPLAY '-----[Set_Pictures Prebuild start]-----'
MMU 1 e, 0 ; áâà ­¨æ  0 ¢ ¡ ­ªã 0 ¨ ¯à®¢¥àª  ­  £à ­¨æë.
ORG ROM_MAP.LOGO
INCLUDE 'src/bios/logo/Set_Pictures.asm'
DISPLAY '-----[Set_Pictures Prebuild done ]-----'
ELSE
DISPLAY '------------------[Main.asm]------------------'
DISPLAY 'End code address: ',/A,$-1
DISPLAY 'Code size: ',/A,$-COMPILE_ADDR.MAIN
DISPLAY 'End buffers address: ',/A,memBUFFER.End-1
DISPLAY 'Free memory: ',/A,#C000-(memBUFFER.End-1)-STACK.Size
DISPLAY 'Unused bytes before INT_POINTER: ',/A,INT_POINTER-before_intPointer
ENDIF
;
;=======================================================================================================================
; ;;;;;;;; ; ;;;;;;;;
; ELSE ; ELSE
; ;;;;;;;; ; ;;;;;;;;
@ -1892,65 +1941,4 @@ init_zx_roms: DI
; ; ¬®¦­® § ¤¥©á⢮¢ âì ¥éñ 4 áâà ­¨æë ­  ¯®àâë #E4..#E7 ; ; ¬®¦­® § ¤¥©á⢮¢ âì ¥éñ 4 áâà ­¨æë ­  ¯®àâë #E4..#E7
; ;;;;;;;; ; ;;;;;;;;
; ENDIF ; ENDIF
; ;;;;;;;; ; ;;;;;;;;
.init_41h: ; § ¡¨âì FF- ¬¨
LD HL,#C000
LD DE,#C001
LD BC,#3FFF - 2
LD (HL),C
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
RET
;---------------------------------------------------------------------[]
;---------------------------------------
INCLUDE 'src/bios/ROM/SETUP/messages.z80'
;---------------------------------------
;
STRUCT MAIN_BUFFERS
ID BLOCK #100
Messages BLOCK MSG_ENG.size
Shared BLOCK 1024
End BYTE
ENDS
memBUFFER MAIN_BUFFERS = $
STACK EQU #C000
.Size EQU 128
IF memBUFFER.End-1 > #C000-STACK.Size
DISPLAY 'memBUFFER.Shared overlaps STACK by: ',/A,(memBUFFER.End-1)-(#C000-STACK.size)
ASSERT memBUFFER.End-1 < #C000-STACK.size
ENDIF
IFDEF PREBUILD
OUTEND
DISPLAY '-----[Set_Pictures Prebuild start]-----'
MMU 1 e, 0 ; áâà ­¨æ  0 ¢ ¡ ­ªã 0 ¨ ¯à®¢¥àª  ­  £à ­¨æë.
ORG ROM_MAP.LOGO
INCLUDE 'src/bios/logo/Set_Pictures.asm'
DISPLAY '-----[Set_Pictures Prebuild done ]-----'
ELSE
DISPLAY '------------------[Main.asm]------------------'
DISPLAY 'End code address: ',/A,$-1
DISPLAY 'Code size: ',/A,$-COMPILE_ADDR.MAIN
DISPLAY 'End buffers address: ',/A,memBUFFER.End-1
DISPLAY 'Free memory: ',/A,#C000-(memBUFFER.End-1)-STACK.Size
DISPLAY 'Unused bytes before INT_POINTER: ',/A,INT_POINTER-before_intPointer
ENDIF
;

View File

@ -602,7 +602,7 @@ msgStrings:
_mSetStr bootFail, tmp_Counter : DZ ' fail' ; !FIXIT strFail _mSetStr bootFail, tmp_Counter : DZ ' fail' ; !FIXIT strFail
_mSetStr bootOk, tmp_Counter : DZ ' OK' _mSetStr bootOk, tmp_Counter : DZ ' OK'
_mSetStr afterBootFail, tmp_Counter : DZ 'PRESS <ENTER> TO REBOOT, <DEL> TO ENTER SETUP OR <ESC> TO ZX-MODE . . .' _mSetStr afterBootFail, tmp_Counter : DZ 'PRESS <ENTER> TO REBOOT, <DEL> TO ENTER SETUP OR <ESC> TO ZX-MODE . . .'
; _mSetStr noMemZX, tmp_Counter : DZ 'Error! No free memory to start ZX mode. Press CTRL+ALT+DEL or RESET.' _mSetStr errorZXmode, tmp_Counter : DZ 'Error! Spectrum mode launch failed. Press CTRL+ALT+DEL or RESET.'
; ;
_mSetStr parLang, tmp_Counter : DZ 'Language (ï§ëª) : ' _mSetStr parLang, tmp_Counter : DZ 'Language (ï§ëª) : '
_mSetStr valLangEng, tmp_Counter : DZ 'English ' _mSetStr valLangEng, tmp_Counter : DZ 'English '
@ -709,7 +709,7 @@ msgStrings:
_mSetStr valQS_SetUpTrDos, tmp_Counter : DZ 'TR-DOS ' _mSetStr valQS_SetUpTrDos, tmp_Counter : DZ 'TR-DOS '
_mSetStr valQS_SetUpExp, tmp_Counter : DZ 'Expansion ' _mSetStr valQS_SetUpExp, tmp_Counter : DZ 'Expansion '
_mSetStr valQS_SetUpTrDos48, tmp_Counter : DZ 'TR-DOS 48 ' _mSetStr valQS_SetUpTrDos48, tmp_Counter : DZ 'TR-DOS 48 '
_mSetStr valQS_SetUpBasic48, tmp_Counter : DZ 'Basic 48+ ' _mSetStr valQS_SetUpBasic48, tmp_Counter : DZ 'Basic 48 '
; _mSetStrRus valLoadZXromsAuto, tmp_Counter : DZ 'On call ' ; _mSetStrRus valLoadZXromsAuto, tmp_Counter : DZ 'On call '
IF NEW_FEATURE IF NEW_FEATURE
_mSetStr parSetTime, tmp_Counter : DZ 'Date and time setup : ' _mSetStr parSetTime, tmp_Counter : DZ 'Date and time setup : '
@ -778,7 +778,7 @@ msgRusStrings:
_mSetStrRus bootFail, tmp_Counter : DZ ' ­¥¢®§¬®¦¥­' _mSetStrRus bootFail, tmp_Counter : DZ ' ­¥¢®§¬®¦¥­'
_mSetStrRus bootOk, tmp_Counter : DZ ' OK' _mSetStrRus bootOk, tmp_Counter : DZ ' OK'
_mSetStrRus afterBootFail, tmp_Counter : DZ '<EFBFBD>Œˆ <ENTER> Ÿ <EFBFBD><EFBFBD>ƒ<EFBFBD>Šˆ, <DEL> Ÿ <EFBFBD><EFBFBD>ŽŠ ˆˆ <ESC> Ÿ ZX-MODE . . .' _mSetStrRus afterBootFail, tmp_Counter : DZ '<EFBFBD>Œˆ <ENTER> Ÿ <EFBFBD><EFBFBD>ƒ<EFBFBD>Šˆ, <DEL> Ÿ <EFBFBD><EFBFBD>ŽŠ ˆˆ <ESC> Ÿ ZX-MODE . . .'
; _mSetStrRus noMemZX, tmp_Counter : DZ 'Žè¨¡ª ! <20>¥¤®áâ â®ç­® ¯ ¬ï⨠¤«ï áâ àâ  ZX Mode. <20> ¦¬¨â¥ CTRL+ALT+DEL ¨«¨ RESET.' _mSetStrRus errorZXmode, tmp_Counter : DZ 'Žè¨¡ª !  ¯ã᪠०¨¬  Spectrum ­¥ 㤠«áï. <EFBFBD> ¦¬¨â¥ CTRL+ALT+DEL ¨«¨ RESET.'
; ;
_mSetStrRus parLang, tmp_Counter : DZ 'Ÿ§ëª (language) : ' _mSetStrRus parLang, tmp_Counter : DZ 'Ÿ§ëª (language) : '
_mSetStrRus valLangEng, tmp_Counter : DZ 'English ' _mSetStrRus valLangEng, tmp_Counter : DZ 'English '
@ -885,7 +885,7 @@ msgRusStrings:
_mSetStrRus valQS_SetUpTrDos, tmp_Counter : DZ 'TR-DOS ' _mSetStrRus valQS_SetUpTrDos, tmp_Counter : DZ 'TR-DOS '
_mSetStrRus valQS_SetUpExp, tmp_Counter : DZ 'Expansion ' _mSetStrRus valQS_SetUpExp, tmp_Counter : DZ 'Expansion '
_mSetStrRus valQS_SetUpTrDos48, tmp_Counter : DZ 'TR-DOS 48 ' _mSetStrRus valQS_SetUpTrDos48, tmp_Counter : DZ 'TR-DOS 48 '
_mSetStrRus valQS_SetUpBasic48, tmp_Counter : DZ 'Basic 48+ ' _mSetStrRus valQS_SetUpBasic48, tmp_Counter : DZ 'Basic 48 '
; _mSetStrRus valLoadZXromsAuto, tmp_Counter : DZ '<27>ਠ¢ë§®¢¥ ' ; _mSetStrRus valLoadZXromsAuto, tmp_Counter : DZ '<27>ਠ¢ë§®¢¥ '
IF NEW_FEATURE IF NEW_FEATURE
_mSetStrRus parSetTime, tmp_Counter : DZ ' â  ¨ ¢à¥¬ï : ' _mSetStrRus parSetTime, tmp_Counter : DZ ' â  ¨ ¢à¥¬ï : '

View File

@ -390,7 +390,7 @@ INIT_vROM: LD A,(HL)
POP DE POP DE
POP BC POP BC
DJNZ .loop DJNZ .loop
; ãáâ ­®¢ª  ¬¥âª¨ ZX ¥á«¨ à ¬¡«®ª ­¥ #FF ; ãáâ ­®¢ª  ¬¥âª¨ ZX ¥á«¨ à ¬¡«®ª ­¥ 0
LD A,(SYS_PAGE.Block_ID.vROM) LD A,(SYS_PAGE.Block_ID.vROM)
OR A OR A
RET Z RET Z
@ -726,7 +726,6 @@ GOTO_SPECTRUM: LD A,BIOS.Error.NotSupported
OUT (RGMOD),A ; ॣ¨áâà ¬®¤ë OUT (RGMOD),A ; ॣ¨áâà ¬®¤ë
; ;
LD IY,.BASIC_128 LD IY,.BASIC_128
;!TODO ¥á«¨ 48ª â® ­¥ ­ã¦­®? ; [ ] free zx pages!
JR INIT_PAGES ; ¨­¨æ¨ «¨§ æ¨ï ­®¬¥à®¢ áâà ­¨æ ०¨¬  ᯥªâà㬠 JR INIT_PAGES ; ¨­¨æ¨ «¨§ æ¨ï ­®¬¥à®¢ áâà ­¨æ ०¨¬  ᯥªâà㬠
;start_basic: ;start_basic:
.BASIC_128: LD SP,#C000 .BASIC_128: LD SP,#C000
@ -734,7 +733,6 @@ GOTO_SPECTRUM: LD A,BIOS.Error.NotSupported
LD DE,ZX_VARS.PRINTER_BUFFER ; § ¯ã᪠¯à®£à ¬¬ë ­  BASIC-¥. LD DE,ZX_VARS.PRINTER_BUFFER ; § ¯ã᪠¯à®£à ¬¬ë ­  BASIC-¥.
LD BC,RES128_PROG.Size LD BC,RES128_PROG.Size
LDIR LDIR
DI
JP ZX_VARS.PRINTER_BUFFER JP ZX_VARS.PRINTER_BUFFER
;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------;
@ -779,9 +777,14 @@ INIT_PAGES: LD A,SYS_PAGE
JR Z,.set_pent JR Z,.set_pent
;!FIXIT ®¡à ¡®âª  ®è¨¡ª¨ ;!FIXIT ®¡à ¡®âª  ®è¨¡ª¨
DI DI
HALT .error_loop: LD A,R
AND 7
OUT (BorderColor),A
JR .error_loop
; ;
.set_48k: LD A,(HL) ; SLOT0, SLOT3 page .set_48k: LD A,5 ; !HARDCODE CONFIG_DE.ZX_START ‚•Ž„ BASIC 48 á § ªàëâ묨 128-¬¨ ¯®àâ ¬¨
LD (SYS_PAGE.CONFIG_DE.ZX_START - #8000),A
LD A,(HL) ; SLOT0, SLOT3 page
INC HL INC HL
LD E,(HL) ; SLOT1 page LD E,(HL) ; SLOT1 page
INC HL INC HL
@ -860,7 +863,7 @@ RES128_PROG:
; 3 ‚•Ž„ EXPANSION ; 3 ‚•Ž„ EXPANSION
;!TODO ¯®ª  ­¥ à ¡®â ¥â. Page #45, BIOS (ZX_EXP) #E0 ;!TODO ¯®ª  ­¥ à ¡®â ¥â. Page #45, BIOS (ZX_EXP) #E0
XOR A XOR A
OUT (C),A OUT (C),A ; 7FFD
LD A,#02 LD A,#02
LD B,#1F LD B,#1F
OUT (C),A OUT (C),A

View File

@ -368,7 +368,7 @@ SERVICE:
CALL EXEC_PNT CALL EXEC_PNT
JR SERVICE JR SERVICE
SR_TAB: DW UTILIT SR_TAB: DW RUN_DISK_TRD
DW GOTO_TRDOS.m128 DW GOTO_TRDOS.m128
DW GOTO_TRDOS.m48 DW GOTO_TRDOS.m48
DW TURBO_OFF DW TURBO_OFF
@ -481,22 +481,24 @@ Hardware_Menu_TAB:
; DW TR_DOS ; DW TR_DOS
; DW SP_DOS ; DW SP_DOS
DW SPRINTER_ZX DW SPRINTER_ZX
DW ZX_SPECTRUM_128
DW PENTAGON_128
DW SCORPION_256 DW SCORPION_256
DW Pentagon_48
DW PENTAGON_128
DW PENTAGON_512 DW PENTAGON_512
DW ZX_SPECTRUM_128
DW SPRINTER_reset ;SPRINTER_2X DW SPRINTER_reset ;SPRINTER_2X
DW RET_FROM_M DW RET_FROM_M
; DC - every last character of a string will have bit 7 set ; DC - every last character of a string will have bit 7 set
Hardware_Menu_STR: Hardware_Menu_STR:
BYTE 8 ; ª®«¨ç¥á⢮ ¯ã­ªâ®¢ BYTE 9 ; ª®«¨ç¥á⢮ ¯ã­ªâ®¢
BYTE 'Hardware',#FF ; § £®«®¢®ª ¬¥­î BYTE 'Hardware',#FF ; § £®«®¢®ª ¬¥­î
DC 'Sprinter ZX ' DC 'Sprinter ZX '
DC 'ZX Spectrum'
DC 'Pentagon 128'
DC 'Scorpion 256' DC 'Scorpion 256'
DC 'Pentagon 48 '
DC 'Pentagon 128'
DC 'Pentagon 512' DC 'Pentagon 512'
DC 'Spectrum 128'
DC 'Restart ' DC 'Restart '
DC 'RETURN' DC 'RETURN'
DC " " ; ¬ àª¥à ª®­æ  DC " " ; ¬ àª¥à ª®­æ 
@ -522,21 +524,20 @@ Hardware_Menu_STR:
;************************************************** ;**************************************************
SPRINTER_ZX: LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“ SPRINTER_ZX: LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“
.custom_ROM: LD H,BIOS.RST_CONF.SP97_1 .custom_ROM: LD H,BIOS.RST_CONF.SP97_1
LD DE,4*256 + CNF_PORT.TURBO.ON + CNF_PORT.CNF_0 ; !HARDCODE 4 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Scorpion 256k. 2+6+8 áâà ­¨æë
LD BC,#FE*256 + %0000'0010 ; !HARDCODE Port All Mode data. int pent, set default palette, 320 áâப LD BC,#FE*256 + %0000'0010 ; !HARDCODE Port All Mode data. int pent, set default palette, 320 áâப
LD DE,4*256 + CNF_PORT.TURBO.ON + CNF_PORT.CNF_0 ; !HARDCODE 4 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Scorpion 256k. 2+6+8 áâà ­¨æë
JR PREPARE_TO_START_ZX JR PREPARE_TO_START_ZX
; ;
ZX_SPECTRUM_128: ZX_SPECTRUM_128:
LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“ LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“
.custom_ROM: LD H,BIOS.RST_CONF.AY8910 .custom_ROM: LD H,BIOS.RST_CONF.AY8910
LD DE,2*256 + CNF_PORT.CNF_1 + CNF_PORT.TURBO.ON + CNF_PORT.SCORP_RESET ; !HARDCODE 2 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Pentagon 128
LD BC,#FA*256 + %1000'0011 LD BC,#FA*256 + %1000'0011
JR PREPARE_TO_START_ZX JR PENTAGON_128.zx
; ;
SCORPION_256: LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“ SCORPION_256: LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“
.custom_ROM: LD H,BIOS.RST_CONF.AY8910 .custom_ROM: LD H,BIOS.RST_CONF.AY8910
LD DE,4*256 + CNF_PORT.TURBO.ON + CNF_PORT.CNF_1 ; !HARDCODE 4 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Scorpion 256k. 2+6+8 áâà ­¨æë
LD BC,#FE*256 + %1000'0001 LD BC,#FE*256 + %1000'0001
LD DE,4*256 + CNF_PORT.TURBO.ON + CNF_PORT.CNF_1 ; !HARDCODE 4 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Scorpion 256k. 2+6+8 áâà ­¨æë
PREPARE_TO_START_ZX: PREPARE_TO_START_ZX:
DI DI
LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
@ -576,15 +577,26 @@ PREPARE_TO_START_ZX:
; ;
PENTAGON_128: LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“ PENTAGON_128: LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“
.custom_ROM: LD H,BIOS.RST_CONF.AY8910 .custom_ROM: LD H,BIOS.RST_CONF.AY8910
LD DE,2*256 + CNF_PORT.CNF_1 + CNF_PORT.TURBO.ON + CNF_PORT.SCORP_RESET ; !HARDCODE 2 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Pentagon 128
LD BC,#FE*256 + %0000'0010 LD BC,#FE*256 + %0000'0010
.zx: LD DE,2*256 + CNF_PORT.CNF_1 + CNF_PORT.TURBO.ON + CNF_PORT.SCORP_RESET ; !HARDCODE 2 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Pentagon 128
JR PREPARE_TO_START_ZX JR PREPARE_TO_START_ZX
; ;
PENTAGON_512: LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“ PENTAGON_512: LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“
.custom_ROM: LD H,BIOS.RST_CONF.AY8910 .custom_ROM: LD H,BIOS.RST_CONF.AY8910
LD DE,3*256 + CNF_PORT.CNF_1 + CNF_PORT.TURBO.ON + CNF_PORT.CNF_512 + CNF_PORT.SCORP_RESET ; !HARDCODE 3 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Pentagon 512
LD BC,#FE*256 + %0000'0010 LD BC,#FE*256 + %0000'0010
JR PREPARE_TO_START_ZX LD DE,3*256 + CNF_PORT.CNF_1 + CNF_PORT.TURBO.ON + CNF_PORT.CNF_512 + CNF_PORT.SCORP_RESET ; !HARDCODE 3 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Pentagon 512
JR PREPARE_TO_START_ZX
;
Pentagon_48: LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“
.custom_ROM: LD H,BIOS.RST_CONF.AY8910
LD BC,#FE*256 + %0000'0010
.zx: LD DE,1*256 + CNF_PORT.TURBO.ON + CNF_PORT.CNF_1 ; !HARDCODE 1 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠48 ª¡
JR PREPARE_TO_START_ZX
;
ZX_Spectrum_48: LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“
.custom_ROM: LD H,BIOS.RST_CONF.AY8910
LD BC,#FA*256 + %1000'0011
JR Pentagon_48.zx
; CONFIG_SET: ; CONFIG_SET:
; PUSH DE ; PUSH DE
@ -663,10 +675,13 @@ SPRINTER_reset:
; *** MENU UTILITES *** ; *** MENU UTILITES ***
;***************************** ;*****************************
;!FIXIT íâ® § ¯ã᪠c:\disk.trd - ­¥ ¤ã¬ î, çâ® íâ® ­ã¦­®, ¬®¦­® § ¬¥­¨âì ;!FIXIT íâ® § ¯ã᪠c:\disk.trd - ­¥ ¤ã¬ î, çâ® íâ® ­ã¦­®, ¬®¦­® § ¬¥­¨âì
UTILIT: RUN_DISK_TRD:
LD HL,C_DISK_C LD HL,C_DISK_C
CALL CALL_DOS1 CALL CALL_DOS1
LD A,SYS_PORT.CNF_0 + SYS_PORT.EXTENSION
OUT (SYS_PORT.ROM),A
;CALL DOS_ON ;CALL DOS_ON
;LD A,0 ; DETECT_HDD ;LD A,0 ; DETECT_HDD
;CALL EXP_HDD ;CALL EXP_HDD
@ -675,12 +690,12 @@ UTILIT:
;CALL DOS_OFF ;CALL DOS_OFF
JR C,DISK_UTILIT JR C,.DISK_UTILIT
LD HL,C_DISK_C3 LD HL,C_DISK_C3
CALL CALL_DOS1 CALL CALL_DOS1
UTIL_DISK: .UTIL_DISK:
XOR A XOR A
LD C,BIOS.FreeMemRMD LD C,BIOS.FreeMemRMD
CALL ToBIOS_FromEXT CALL ToBIOS_FromEXT
@ -692,33 +707,44 @@ UTIL_DISK:
LD C,BIOS.GET_RAMD_ST LD C,BIOS.GET_RAMD_ST
CALL ToBIOS_FromEXT CALL ToBIOS_FromEXT
JR C,UTIL_DISK_L1 JR C,.UTIL_DISK_L1
JR Z,UTIL_DISK_L1 JR Z,.UTIL_DISK_L1
LD HL,C_DISK_C1 LD HL,C_DISK_C1
CALL CALL_DOS1 CALL CALL_DOS1
; [ ] ¨á¯à ¢«¥­ ¡ £ á § ¯ã᪮¬ disk.trd á CNF != 0
IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,(SYS_PAGE.CONFIG_DE.CNF_PORT)
EX AF,AF'
OUT (SLOT3),A
EX AF,AF'
OUT (SYS_PORT.ROM),A
;
LD HL,C_DISK_C2 LD HL,C_DISK_C2
CALL CALL_DOS1 CALL CALL_DOS1
RET RET
UTIL_DISK_L1: .UTIL_DISK_L1:
LD A,(ZX_VARS.OPER_DISK) LD A,(ZX_VARS.OPER_DISK)
INC A INC A
CP 2 CP 2
JR Z,DISK_UTIL_RET JR Z,.DISK_UTIL_RET
LD HL,C_DISK_C5 LD HL,C_DISK_C5
CALL CALL_DOS1 CALL CALL_DOS1
JR UTIL_DISK JR .UTIL_DISK
DISK_UTIL_RET: .DISK_UTIL_RET:
LD HL,C_DISK_C6 LD HL,C_DISK_C6
CALL CALL_DOS1 CALL CALL_DOS1
RET RET
DISK_UTILIT: .DISK_UTILIT:
LD HL,C_DISK_C4 LD HL,C_DISK_C4
CALL CALL_DOS1 CALL CALL_DOS1
JR UTIL_DISK JR .UTIL_DISK
C_DEMO6: DB .Size, ZX_Token.rem, ':/disk.trd', 13,80 C_DEMO6: DB .Size, ZX_Token.rem, ':/disk.trd', 13,80
.Size EQU $-C_DEMO6-1 .Size EQU $-C_DEMO6-1