первая бетка восьмой бетки
This commit is contained in:
parent
ea26e1f584
commit
934353b970
Binary file not shown.
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
|
||||||
;
|
|
||||||
@ -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 '„ â ¨ ¢à¥¬ï : '
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user