Sprinter-Core/src/bios/rom/ZX/ZX_MENU.ASM

838 lines
20 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; "MENU PROGRAMS."
;*********************************
; FOR INCLUDE !!!
;*********************************
; Ž¡á«ã¦¨¢ ­¨¥ Œ…<C592>ž
; HL -  ¤à¥á â ¡«¨æë ¯à®£à ¬¬
; A - ­®¬¥à ¢ â ¡«¨æ¥
; ¥á«¨ A=-1, â® ¢®§¢à â,
; ¨­ ç¥ ¢ë¯®«­¥­¨¥
;*****************************
EXEC_PNT:
INC A
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:
DEC A
JR Z,EXEC_HL
INC HL
INC HL
JR EXEC_PNT_LOOP
EXEC_HL:
LD E,(HL)
INC HL
LD D,(HL)
INC HL
EX DE,HL
JP (HL)
RET_FROM_M:
POP HL
RET
;****************************************
; <20><EFBFBD>Ž MENU_128
;****************************************
; ‚•Ž„: DE -  ¤à¥á ¬¥­î
; BC - ¤«¨­  ¬¥­î
; ‚›•Ž„: A - ¢ë¡à ­­ë© ¯ã­ªâ
;****************************************
RUN_MENU:
PUSH IX
PUSH DE ; DE - MENU
PUSH BC ; BC - len_menu
LD A,(DE)
DEC A ; ç¨á«® CMD
CP 9 ; !HARDCODE ¬ ª¨á¬ «ì­®¥ ç¨á«® ¯ã­ªâ®¢ ¬¥­î
JR C,RUN_M_1
RUN_MN_ERR:
POP BC
POP DE
LD A,#FF ; ¢¥à­ãâìáï á ­®¬¥à®¬ 255 - ®è¨¡ª 
POP IX
RET
RUN_M_1:
LD A,(ZX_VARS.PROG.SWAP_ROM)
CP #F5 ; áà ¢­¨âì € á ®¯ª®¤®¬ PUSH AF
JR NZ,RUN_MN_ERR
LD HL,LEN_P_M
ADD HL,BC ; HL - ­ã¦­ ï ¤«¨­  ¯ ¬ïâ¨
LD B,H ; HL -> BC
LD C,L
LD HL,(ZX_VARS.WORK_SPACE) ; HL - ­ ç «® à ¡ ®¡«
PUSH BC
PUSH HL
CALL C_1655 ; ¯®«ãç¨âì à ¡®çãî ¯ ¬ïâì
POP DE
PUSH DE ; ­ ç «® à ¡ ®¡«
LD BC,LEN_P_M ; ¤«¨­  ¯à®£à ¬¬ë ¬¥­î
LD HL,MENU_128 ; á ¬  ¯à®£à ¬¬ 
LDIR ; ¯à®£à ¬¬  ¯¥à¥¬¥é¥­ . DE - ¬¥áâ® ¤«ï MENU
POP BC
PUSH BC ; ­ ç «® ¯à®£à ¬¬ë
PUSH DE ; á®åà ­¨âì ¬¥áâ® ¤«ï MENU
LD DE,MN_128_S ; ¤ ­­ë¥ ¤«ï shifter
CALL SHIFTER ; ¨§¬¥­¨âì ¤ ­­ë¥ ¢ ᮮ⢥âá⢨¨ á ¯®«®¦¥­¨¥¬ ¢ MEM
POP DE ; ¢¥à­ãâì ¬¥áâ® ¤«ï MENU
POP HL ; ­ ç «® ¯à®£à ¬¬ë
POP IX ; ¤«¨­  ¤ ­­ëå
POP BC ; ¤«¨­  ¬¥­î
EX (SP),HL ; HL - ¬¥­î
LDIR ; ¯¥à¥¬¥áâ¨âì ¤ ­­ë¥ MENU
POP HL ;  ¤à¥á ¯à®£à ¬¬ë MENU
PUSH HL
PUSH IX ; ¤«¨­  à ¡. ®¡«
CALL JP_HL ; ¢ë§®¢ ¯à®£à ¬¬ë MENU
POP BC ; ¢¥à­ãâì ¤«¨­ã à ¡ ®¡«
POP HL ; ¨ ­ ç «  ¯à®£à ¬¬ë
PUSH AF ; á®åà ­¨âì ­®¬¥à ¢ë¡®à 
CALL C_19E8 ; ®á¢®¡®¤¨âì ¯ ¬ïâì !!
POP AF ; ¢¥à­ãâì ­®¬¥à ¢ë¡®à 
POP IX
RET ; ¢®§¢à â ¨§ ¯à®£à ¬¬ë RUN_MENU
JP_HL: JP (HL)
;**************************************
; 128k MENU
;**************************************
;!HARDCODE
MENU_PROG EQU #25B9 ; #25B9 in sp_128.asm
;SWAP_ROM EQU #5B00
NEW_SP EQU #1F45 ; L1F45: in sp_128.asm
RET_SP EQU #1F20 ; L1F20: in sp_128.asm
;**************************************
; <20>ணࠬ¬  ¢ë§®¢  MENU_128 ¨§ އ“.
;**************************************
MN_128_S:
DB SH_1 - MENU_128+1
DB SH_2 - MENU_128+1
DB SH_3 - MENU_128+1
DB SH_4 - MENU_128+1
DB SH_5 - MENU_128
DB SH_6 - MENU_128
DB SH_7 - MENU_128
DB SH_8 - MENU_128
DB SH_9 - MENU_128
DB SH_A - MENU_128
DB SH_B - MENU_128
DB SH_C - MENU_128
DB 0
;**************************************
; <20>â  ¯à®£à ¬¬  ¯¥à¥¬¥é ¥âáï ¢ ®§ã
;**************************************
MENU_128:
XOR A
OUT (SYS_PORT.RAM),A
CALL ZX_VARS.PROG.SWAP_ROM
CALL NEW_SP
SH_1: LD DE,MENU_DAT - MENU_128
LD HL,ZX_VARS.MENU_TBL.JUMP
LD BC,4
LDIR
SH_2: LD HL,MENU_128_E - MENU_128
LD (ZX_VARS.MENU_TBL.JUMP),HL
SH_3: LD HL,MENU_128_E2 - MENU_128
LD (ZX_VARS.MENU_TBL.TEXT),HL
JP MENU_PROG
RET_M EQU $-MENU_128
SH_4: LD HL,MENU_DAT - MENU_128
LD DE,ZX_VARS.MENU_TBL.JUMP
LD BC,4
LDIR
CALL RET_SP
CALL ZX_VARS.PROG.SWAP_ROM
EX AF,AF'
;LD A,0
;OUT (CNF_PORT),A
LD A,SYS_PORT.EXTENSION
OUT (SYS_PORT.ROM),A ;!!!!! ¢¥àá¨ï ¤«ï <20>‡“
EX AF,AF'
RET
MENU_DAT:
DW 0,0
MENU_128_E:
DB 8
DB 0
SH_5: DW RET_M
DB 1
SH_6: DW RET_M
DB 2
SH_7: DW RET_M
DB 3
SH_8: DW RET_M
DB 4
SH_9: DW RET_M
DB 5
SH_A: DW RET_M
DB 6
SH_B: DW RET_M
DB 7
SH_C: DW RET_M
MENU_128_E2:
LEN_P_M EQU $-MENU_128
;**************************************
; RST 30 - ¯®«ã祭¨¥ BC SPACES á  ¤à¥á  HL
; #19E8 - ®á¢®¡®¦¤¥­¨¥ BC spaces á  ¤à¥á  HL
; HL - à ¡. ï祩ª 
; BC -  ¤à¥á ¯à®£à ¬¬ë
; DE -  ¤à¥á ¤ ­­ëå ¤«ï ¯¥à¥¬¥é¥­¨ï
SHIFTER:
LD A,(DE) ; (DE) - SHIFT IN PROG
AND A
RET Z
INC DE
LD L,A
LD H,0
ADD HL,BC ; HL - ADRESS FOR SHIFT
LD A,(HL) ; (HL)=(HL)+BC
ADD A,C
LD (HL),A
INC HL
LD A,(HL)
ADC A,B
LD (HL),A
JR SHIFTER
;*******************************************
; Œ…<C592>ž : ¡ ©â 1 - ¤«ï १ã«ìâ â 
; ¡ ©â 2 - ç¨á«® ¯ã­ªâ®¢ +1
; ­ §¢ ­¨¥ ¬¥­î, ª®¤ 0FFh ( COPY )
; ¯ã­ªâë ¬¥­î ®ª®­ç ­¨¥ ¡ ©â®¬ á
; ãáâ, 7-¬ ¡¨â®¬ + ¯ãáâ ï áâப  !!
;*******************************************
BASIC_MENU:
; LD A,(HL)
; CP 'S'
; JP Z,SET_SYSTEM
LD DE,(ZX_VARS.CH_ADR)
PUSH DE
LD (ZX_VARS.CH_ADR),HL
CALL_48X #1C8C ; SYMBOL VAR
CALL_48X #2BF1 ; input txt !!!
; DE - adr
; BC - len
PUSH DE
PUSH BC
INC DE
CALL TST_M
JR C,NO_EXE_M
CALL RUN_MENU
LD (IY+0),255
NO_EXE_M:
POP BC
POP DE
LD (DE),A
POP HL
LD (ZX_VARS.CH_ADR),HL
JP SW_ROM
TST_M:
PUSH DE
PUSH BC
EX DE,HL
LD D,(HL)
INC D
LD A,255
CPIR
JR NZ,ERR_TST_M
LOOP_TST_M:
LD A,B
OR C
JR Z,ERR_TST_M
BIT 7,(HL)
INC HL
DEC BC
JR Z,LOOP_TST_M
DEC D
JR NZ,LOOP_TST_M
POP BC
POP DE
AND A
RET
ERR_TST_M:
POP BC
POP DE
LD A,255
SCF
RET
;**************************************
CALL_DOS_MOVE:
LD HL,DOS_PROG
LD DE,DOS_PROG.Exec
LD BC,DOS_PROG.Size
LDIR
RET
;
; HL -  ¤à¥á ª®¬ ­¤ë, BC - ¤«¨­  ª®¬ ­¤ë
CALL_DOS1:
LD C,(HL)
INC HL
LD B,0
LD DE,(ZX_VARS.E_LINE)
LD (ZX_VARS.CH_ADR),DE
LDIR
LD (ZX_VARS.WORK_SPACE),DE
LD (ZX_VARS.STK_BOT),DE
LD (ZX_VARS.STK_END),DE
CALL CALL_DOS_MOVE
JP DOS_PROG.Exec
DOS_PROG:
DISP #5C00 - DOS_PROG.Size ;!HARDCODE
//DOS_PROG:
.Exec: PUSH AF
XOR A
OUT (SYS_PORT.RAM),A
POP AF
//DOS_PROG_A+1:
.Patch+2: CALL #3D03 ;!HARDCODE
PUSH AF
;!FIXIT ᤥ« âì ç¥à¥§ ãá«®¢¨¥ ª®¬¯¨«ï樨 ZX_ROM_BIOS
//LD A,0
//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:
LD HL,#1AFD ;!HARDCODE COM_LN:
PUSH HL
LD HL,#5B00 ;!HARDCODE
PUSH HL
LD DE,ZX_VARS.FLG_INPUT
LD BC,1
LD A,#E8 ;!HARDCODE
LD (DE),A
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
;
;
;=======================================================================;
;=======================================================================;
;=======================================================================;
SERVICE:
//LD HL,SR_TAB
LD DE,SR_MENU
LD BC,SR_MENU.Size
//PUSH HL
CALL RUN_MENU ;09f3
LD HL,SR_TAB
//POP HL
CALL EXEC_PNT
JR SERVICE
SR_TAB: DW UTILIT
DW GOTO_TRDOS.m128
DW GOTO_TRDOS.m48
DW TURBO_OFF
DW TURBO_ON
DW CLEAR_RAM
DW RET_FROM_M
; DC - every last character of a string will have bit 7 set
SR_MENU:
BYTE 8 ; ª®«¨ç¥á⢮ ¯ã­ªâ®¢
BYTE 'Options ',#FF ; § £®«®¢®ª ¬¥­î
DC 'RUN disk.trd'
DC '128 TR-DOS'
DC '48 TR-DOS'
DC 'TURBO OFF '
DC 'TURBO ON '
DC 'Clear RAM'
DC 'RETURN'
DC " " ; ¬ àª¥à ª®­æ 
.Size EQU $-SR_MENU
;*****************************
;SR_48R:
GOTO_TRDOS:
.m128: LD A,#10
JR .RUN
;SR_48:
.m48: LD A,#30 ; ‘⮯®à ­  PORT_128 !!!
;SR_48A:
.RUN: LD BC,#7FFD
OUT (C),A
LD BC,0 ; <20>€ 0 !!
PUSH BC
LD BC,#3D2F ; DOS !
PUSH BC
JP SW_ROM
;*******************************
TURBO_OFF:
LD A,BIOS.FN_TURBO.OFF
LD C,BIOS.FN_TURBO
JP_to_BIOS
TURBO_ON:
LD A,BIOS.FN_TURBO.ON
LD C,BIOS.FN_TURBO
JP_to_BIOS
;*******************************
CLEAR_RAM:
DI
; [ ] free zx pages!
LD BC,BIOS.REINIT.FREE_NO_ZX_MEM
;LD C,BIOS.FullInit
;
RST_to_BIOS
; ¯à¨ ®ç¨á⪥ ¯ ¬ï⨠¨§ ¬¥­î ᯥªâà㬠 ¢®§¢à â ¢ DSS ¯® CAD
; ¡ã¤¥â ®¯ á­ë¬ (RAM Blocks ®á¢®¡®¤¨«¨áì),
; ¯®í⮬㠮⪫îç ¥¬ ¯¥à¥å¢ â à¥á¥â .
LD A,ACEX.RET_PORT
LD BC,BIOS.SET_PORTS
;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23
;CALL ToBIOS_3D13
RST_to_BIOS
;
EI
RET
;SR_CL_MEM:
; DI
; LD A,10H
;SR_CL_R2:
; LD BC,1FFDH
; OUT (C),A
; EX AF,AF'
; XOR A
;SR_CL_R1:
; LD BC,7FFDH
; OUT (C),A
; LD HL,0C000H
; LD DE,0C001H
; LD BC,03FFFH
; LD (HL),L
; LDIR
; INC A
; CP 48H
; JR NZ,SR_CL_R1
; EX AF,AF'
; CP 0
; JP Z,BASIC_128 ; ¢ë室 ­  á¡à®á BASIC 128
; LD A,0
; JR SR_CL_R2
;*****************************
; *** MENU Hardware ***
;*****************************
Hardware_Menu:
LD HL,Hardware_Menu_TAB
LD DE,Hardware_Menu_STR
LD BC,Hardware_Menu_STR.Size
PUSH HL
CALL RUN_MENU
POP HL
CALL EXEC_PNT
JR Hardware_Menu
Hardware_Menu_TAB:
; DW TR_DOS
; DW SP_DOS
DW SPRINTER_ZX
DW ZX_SPECTRUM_128
DW PENTAGON_128
DW SCORPION_256
DW PENTAGON_512
DW SPRINTER_reset ;SPRINTER_2X
DW RET_FROM_M
; DC - every last character of a string will have bit 7 set
Hardware_Menu_STR:
BYTE 8 ; ª®«¨ç¥á⢮ ¯ã­ªâ®¢
BYTE 'Hardware',#FF ; § £®«®¢®ª ¬¥­î
DC 'Sprinter ZX '
DC 'ZX Spectrum'
DC 'Pentagon 128'
DC 'Scorpion 256'
DC 'Pentagon 512'
DC 'Restart '
DC 'RETURN'
DC " " ; ¬ àª¥à ª®­æ 
.Size EQU $ - Hardware_Menu_STR
;******************************
;SP_DOS:
; LD B,0E2H
; LD A,0E1H
; JR TR_DOS1
;TR_DOS:
; LD B,0EAH
; LD A,0E1H
;TR_DOS1:
; CALL DOS_ON
; CALL SET_ROM_PAGES
; CALL DOS_OFF
; RET
;******************************
;**************************************************
;Sprinter ZX
;[ ] free zx pages!
/*
LD H,A ; Block_ID.vRAM
;!TODO ­ áâà ¨¢ âì ¢ BIOS zx mode
LD DE,256*0 + CNF_PORT.TURBO.ON + CNF_PORT.CNF_0
LD A,(SYS_PAGE.Block_ID.vROM)
LD L,A
LD B,#FE ; !HARDCODE Port All Mode data
LD A,%0000'0010
EX AF,AF'
XOR A
;
;POP HL ; <20>… ­ã¦¥­.  ¤à¥á ¢®§¢à â  ¢ EXP ¨§ SETUP
LD A,ROM.EXTENSION
OUT (SYS_PORT.ROM),A
XOR A
JP GOTO_SPECTRUM.FN
; ‚室: D: 0 - BASIC 128, 1 - BASIC 48, 2 - TR-DOS 128,
; 3 - EXPANSION. C § ªàëâ묨 128-¬¨ ¯®àâ ¬¨:
; 4 - TR-DOS, 5 - BASIC 48
; E: §­ ç¥­¨¥ ¤«ï SYS_PORT/CNF_PORT
; H: ;!TODO Block_ID.vROM
; L: Block_ID.vRAM
; A: TASK Number = 0
; B: Port All Mode
;A'[1..0]: 1 - int scorp, 2 - int pent, 3 - int ZX
; A'[2]: 0 - set default palette, 1 - don't change palette
; A'[7]: 0 - 320, 1 - 312 áâப
; 1 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Pentagon 48k. 3 áâà ­¨æë
; 2 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Pentagon 128k. 2+6 áâà ­¨æë
; 3 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Pentagon 512k. 2+30 áâà ­¨æë
; 4 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Scorpion 256k. 2+6+8 áâà ­¨æë
*/
SPRINTER_ZX: ;DI
;LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
;OUT (SYS_PORT.ROM),A
;LD SP,SYS_PAGE.SYS_SP
;LD A,SYS_PAGE
;OUT (SLOT3),A
;
LD A,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 áâப
JR PREPARE_TO_START_ZX
;
ZX_SPECTRUM_128:
;DI
;LD SP,SYS_PAGE.SYS_SP
;LD A,SYS_PAGE
;OUT (SLOT3),A
;
LD A,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
JR PREPARE_TO_START_ZX
SCORPION_256: ;DI
;LD SP,SYS_PAGE.SYS_SP
;LD A,SYS_PAGE
;OUT (SLOT3),A
;
LD A,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
;JR PREPARE_TO_START_ZX
PREPARE_TO_START_ZX:
DI
EX AF,AF'
LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
OUT (SYS_PORT.ROM),A
LD A,SYS_PAGE
OUT (SLOT3),A
EX AF,AF'
;
PUSH BC
PUSH DE
PUSH DE
;
LD C,A
RST_to_BIOS
;
POP DE
LD B,D
;LD C,BIOS.ZX_MEMORY_MANAGER
;RST_to_BIOS
CALL MANAGE_ZX_PAGES.FN_ENTRANCE.API
JR C,.loop_rst
;
POP DE
POP BC
;
LD D,0 ; !HARDCODE â®çª  ¢å®¤  ¢ <20>‡“ ᯥªâà㬠
LD H,A
LD A,(SYS_PAGE.Block_ID.vROM)
LD L,A
LD A,C
EX AF,AF'
XOR A
JP GOTO_SPECTRUM.FN
;
.loop_rst: LD BC,BIOS.REINIT.HARD_RESET
RST_to_BIOS
JR .loop_rst
PENTAGON_128: ;DI
;LD SP,SYS_PAGE.SYS_SP
;LD A,SYS_PAGE
;OUT (SLOT3),A
;
LD A,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
JR PREPARE_TO_START_ZX
PENTAGON_512: ;DI
;LD SP,SYS_PAGE.SYS_SP
;LD A,SYS_PAGE
;OUT (SLOT3),A
;
LD A,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
JR PREPARE_TO_START_ZX
; CONFIG_SET:
; PUSH DE
; EI
; HALT
; DI
; IN A,(SLOT3)
; EX AF,AF'
; LD A,SYS_PAGE
; OUT (SLOT3),A
; LD (SYS_PAGE.CONFIG_DE),DE
; ;!FIXIT ¥áâì «¨ á¬ëá« ¤¥« âì ¤® FN_SYNC?
; LD A,(ZX_VARS.BORDER)
; RRCA
; RRCA
; RRCA
; AND 7
; OUT (BorderColor),A
; ;
; EX AF,AF'
; OUT (SLOT3),A
; LD A,L
; LD C,BIOS.FN_SYNC
; RST_to_BIOS
; LD HL,#4104 ;!HARDCODE
; LD E,0
; LD BC,256*4 + BIOS.LP_OPEN_S ;!HARDCODE
; RST_to_BIOS
; LD HL,#5104 ;!HARDCODE
; LD E,0
; LD BC,256*4 + BIOS.LP_OPEN_S
; RST_to_BIOS
; POP DE
; LD A,E
; OUT (SYS_PORT.ROM),A
; IM 1
; EI
; JP CLS ;!FIXIT ­ã¦­® «¨?
SPRINTER_reset:
DI
LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
OUT (SYS_PORT.ROM),A
LD BC,BIOS.REINIT.SOFT_RESET
JP_to_BIOS
; _SET_CNF:
; ;DI
; LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
; OUT (SYS_PORT.ROM),A
; RET
; CNF_SC_312:
; LD A,Port_VSYNC.SET_312L
; OUT (Port_VSYNC),A
; RET
; CNF_PN_320:
; LD A,Port_VSYNC.SET_320L
; OUT (Port_VSYNC),A
; RET
; LD A,CNF_0
; OUT (SYS_PORT.ROM),A
; CALL DOS_OFF
; JP 0
;*****************************
; *** MENU UTILITES ***
;*****************************
;!FIXIT íâ® § ¯ã᪠c:\disk.trd - ­¥ ¤ã¬ î, çâ® íâ® ­ã¦­®, ¬®¦­® § ¬¥­¨âì
UTILIT:
LD HL,C_DISK_C
CALL CALL_DOS1
;CALL DOS_ON
;LD A,0 ; DETECT_HDD
;CALL EXP_HDD
LD C,BIOS.HDD_INIT
RST_to_BIOS
;CALL DOS_OFF
JR C,DISK_UTILIT
LD HL,C_DISK_C3
CALL CALL_DOS1
UTIL_DISK:
XOR A
LD C,BIOS.FreeMemRMD
RST_to_BIOS
LD HL,C_DEMO6
CALL CALL_DOS1
XOR A
LD C,BIOS.GET_RAMD_ST
RST_to_BIOS
JR C,UTIL_DISK_L1
JR Z,UTIL_DISK_L1
LD HL,C_DISK_C1
CALL CALL_DOS1
LD HL,C_DISK_C2
CALL CALL_DOS1
RET
UTIL_DISK_L1:
LD A,(ZX_VARS.OPER_DISK)
INC A
CP 2
JR Z,DISK_UTIL_RET
LD HL,C_DISK_C5
CALL CALL_DOS1
JR UTIL_DISK
DISK_UTIL_RET:
LD HL,C_DISK_C6
CALL CALL_DOS1
RET
DISK_UTILIT:
LD HL,C_DISK_C4
CALL CALL_DOS1
JR UTIL_DISK
C_DEMO6: DB .Size, ZX_Token.rem, ':/disk.trd', 13,80
.Size EQU $-C_DEMO6-1
;***************************************
;VERSION: DEFB 22,21,0
; DEFB 16,2,"Expansion 3.02  1997 ELSY Co.",16,1,0FFh
;**********************************************
DOS_RUN:
LD HL,C_DISK_C1
CALL CALL_DOS1
LD HL,C_DISK_C2
CALL CALL_DOS1
RET
START_TRD:
LD HL,C_DISK_C
CALL CALL_DOS1
LD HL,C_DISK_C0
CALL CALL_DOS1
LD HL,C_DISK_C3
CALL CALL_DOS1
RET
C_DISK_C: DB .Size, ZX_Token.rem, ':', 13,80
.Size EQU $-C_DISK_C-1
C_DISK_C0: DB .Size, ZX_Token.rem, ':/CLEAR E', 13,80
.Size EQU $-C_DISK_C0-1
C_DISK_C1: DB .Size, ZX_Token.rem, ':/RMD E', 13,80
.Size EQU $-C_DISK_C1-1
C_DISK_C2: DB .Size, ZX_Token.rem, ':RUN', 13,80
.Size EQU $-C_DISK_C2-1
C_DISK_C3: DB .Size, ZX_Token.rem, ':/HDD', 13,80
.Size EQU $-C_DISK_C3-1
C_DISK_C4: DB .Size, ZX_Token.rem, ':/FDD', 13,80
.Size EQU $-C_DISK_C4-1
C_DISK_C5: DB .Size, ZX_Token.rem, ':/B:', 13,80
.Size EQU $-C_DISK_C5-1
C_DISK_C6: DB .Size, ZX_Token.rem, ':/A:', 13,80
.Size EQU $-C_DISK_C6-1
;