Sprinter-BIOS/bios/rom/ZX/ZX_MENU.ASM
2026-05-19 18:51:51 +10:00

753 lines
17 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,SYS_PORT.EXTENSION
OUT (SYS_PORT.ROM),A
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 RUN_DISK_TRD
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
;
CALL ToBIOS_FromEXT
; ¯à¨ ®ç¨á⪥ ¯ ¬ï⨠¨§ ¬¥­î ᯥªâà㬠 ¢®§¢à â ¢ 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
CALL ToBIOS_FromEXT
;
EI
RET
;*****************************
; *** 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 SCORPION_256
DW Pentagon_48
DW PENTAGON_128
DW PENTAGON_512
DW ZX_SPECTRUM_128
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 9 ; ª®«¨ç¥á⢮ ¯ã­ªâ®¢
BYTE 'Hardware',#FF ; § £®«®¢®ª ¬¥­î
DC 'Sprinter ZX '
DC 'Scorpion 256'
DC 'Pentagon 48 '
DC 'Pentagon 128'
DC 'Pentagon 512'
DC 'Spectrum 128'
DC 'Restart '
DC 'RETURN'
DC " " ; ¬ àª¥à ª®­æ 
.Size EQU $ - Hardware_Menu_STR
;!TODO ®âª«îç âì 7FFD ¨ 1FFD ®¤­®¢à¥¬¥­­® ç¥à¥§ ®âª«î祭¨¥ 1FFD ¢ cnf_port
; ¨ § é¥«ªã ¢ 7FFD ¨­ ç¥ vROM ¯®¤áã­¥â áâà ­¨æã BASIC128.
; § ¢¨á¨¬®á⨠®â ãáâ ­ ¢«¨¢ ¥¬®© ª àâë ¯®à⮢ ¢ë¡¨à âì ª àâã ¤«ï ¯à®¯¨á뢠­¨ï ¯®àâ  AY
;
;**************************************************
SPRINTER_ZX: LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“
.custom_ROM: LD H,BIOS.RST_CONF.SP97_1
LD BC,#FE*256 + %0000'0010 ; = GOTO_SPEC reg B, reg A
LD DE,4*256 + CNF_PORT.TURBO.ON + CNF_PORT.CNF_0 ; !HARDCODE 4 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Scorpion 256k. 2+6+8 áâà ­¨æë
JR PREPARE_TO_START_ZX
;
ZX_SPECTRUM_128:
LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“
.custom_ROM: LD H,BIOS.RST_CONF.AY8910
LD BC,#FA*256 + %1000'0011 ; = GOTO_SPEC reg B, reg A
JR PENTAGON_128.zx
;
SCORPION_256: LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“
.custom_ROM: LD H,BIOS.RST_CONF.AY8910
LD BC,#FE*256 + %1000'0001 ; = GOTO_SPEC reg B, reg A
LD DE,4*256 + CNF_PORT.TURBO.ON + CNF_PORT.CNF_1 ; !HARDCODE 4 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Scorpion 256k. 2+6+8 áâà ­¨æë
PREPARE_TO_START_ZX:
DI
LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
OUT (SYS_PORT.ROM),A
LD A,SYS_PAGE
OUT (SLOT3),A
;
PUSH HL
PUSH BC
PUSH DE
PUSH DE
;
LD C,H
CALL ToBIOS_FromEXT
;
POP DE
LD B,D
CALL MANAGE_ZX_PAGES.FN_ENTRANCE.API
JR C,.loop_rst
;
POP DE
POP BC
POP HL
;
LD D,L ; !HARDCODE â®çª  ¢å®¤  ¢ <20>‡“ ᯥªâà㬠
; LD H,A
; LD A,(SYS_PAGE.Block_ID.vROM)
; LD L,A
LD HL,(SYS_PAGE.Block_ID.vROM)
LD H,A
LD A,C
JP GOTO_SPECTRUM
;
.loop_rst: LD BC,BIOS.REINIT.HARD_RESET
CALL ToBIOS_FromEXT
JR .loop_rst
;
PENTAGON_128: LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“
.custom_ROM: LD H,BIOS.RST_CONF.AY8910
LD BC,#FE*256 + %0000'0010 ; = GOTO_SPEC reg B, reg A
.zx: LD DE,2*256 + CNF_PORT.CNF_2 + CNF_PORT.TURBO.ON + CNF_PORT.SCORP_RESET ; !HARDCODE 2 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Pentagon 128
JR PREPARE_TO_START_ZX
;
PENTAGON_512: LD L,0 ; â®çª  ¢å®¤  ¢ <20>‡“
.custom_ROM: LD H,BIOS.RST_CONF.AY8910
LD BC,#FE*256 + %0000'0010 ; = GOTO_SPEC reg B, reg A
LD DE,3*256 + CNF_PORT.CNF_2 + 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 ; = GOTO_SPEC reg B, reg A
.zx: LD DE,1*256 + CNF_PORT.TURBO.ON + CNF_PORT.CNF_2 ; !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 ; = GOTO_SPEC reg B, reg A
JR Pentagon_48.zx
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
;*****************************
; *** MENU UTILITES ***
;*****************************
;!FIXIT BIOS SIZE. íâ® § ¯ã᪠c:\disk.trd - ­¥ ¤ã¬ î, çâ® íâ® ­ã¦­®, ¬®¦­® § ¬¥­¨âì
RUN_DISK_TRD:
LD HL,C_DISK_C
CALL CALL_DOS1
; [ ] ¨á¯à ¢«¥­ ¡ £ á § ¯ã᪮¬ disk.trd á CNF != 0
LD A,SYS_PORT.CNF_0 + SYS_PORT.EXTENSION
OUT (SYS_PORT.ROM),A
;
LD C,BIOS.HDD_INIT
CALL ToBIOS_FromEXT
JR C,.DISK_UTILIT
LD HL,C_DISK_C3
CALL CALL_DOS1
.UTIL_DISK:
XOR A
LD C,BIOS.FreeMemRMD
CALL ToBIOS_FromEXT
LD HL,C_DEMO6
CALL CALL_DOS1
XOR A
LD C,BIOS.GET_RAMD_ST
CALL ToBIOS_FromEXT
JR C,.UTIL_DISK_L1
JR Z,.UTIL_DISK_L1
LD HL,C_DISK_C1
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
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
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
;
;***************************************
;VERSION: DEFB 22,21,0
; DEFB 16,2,"Expansion 3.02  1997 ELSY Co.",16,1,0FFh
;**********************************************
;******************************
;SP_DOS:
; LD B,#E2
; LD A,#E1
; JR TR_DOS1
;TR_DOS:
; LD B,#EA
; LD A,#E1
;TR_DOS1:
; CALL DOS_ON
; CALL SET_ROM_PAGES
; CALL DOS_OFF
; RET
;******************************
; _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
; 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
;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