392 lines
8.0 KiB
NASM
392 lines
8.0 KiB
NASM
;.PRINTX "Service."
|
||
|
||
SERVICE:
|
||
LD DE,SR_MENU
|
||
LD BC,SR_MENU.Size
|
||
CALL RUN_MENU ;09f3
|
||
LD HL,SR_TAB
|
||
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
|
||
LD C,BIOS.FullInit
|
||
RST_to_BIOS
|
||
; ¯à¨ ®ç¨á⪥ ¯ ¬ï⨠¨§ ¬¥î ᯥªâà㬠¢®§¢à â ¢ DSS ¯® CAD
|
||
; ¡ã¤¥â ®¯ áë¬ (RAM Blocks ®á¢®¡®¤¨«¨áì),
|
||
; ¯®í⮬㠮⪫îç ¥¬ ¯¥à¥å¢ â à¥á¥â .
|
||
;!TODO ¯à¨¤ã¬ âì ª ª ®âª«îç âì ¯¥à¥å¢ â ⮫쪮 ¢®§¢à â ¢ DSS
|
||
LD A,ACEX.RET_PORT
|
||
LD BC,BIOS.SET_PORTS
|
||
CALL ToBIOS_3D13
|
||
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 IS-DOS ***
|
||
;*****************************
|
||
|
||
ISDOS:
|
||
LD HL,IS_TAB
|
||
LD DE,IS_MENU
|
||
LD BC,IS_MENU.Size
|
||
PUSH HL
|
||
CALL RUN_MENU
|
||
POP HL
|
||
CALL EXEC_PNT
|
||
JR ISDOS
|
||
|
||
IS_TAB:
|
||
; DW TR_DOS
|
||
; DW SP_DOS
|
||
DW SPRINTER_1X
|
||
DW AY8910_X
|
||
DW PENTAGON
|
||
DW SCORPION
|
||
DW PENTAGON512
|
||
DW SPRINTER_reset ;SPRINTER_2X
|
||
DW RET_FROM_M
|
||
|
||
; DC - every last character of a string will have bit 7 set
|
||
IS_MENU:
|
||
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 $-IS_MENU
|
||
|
||
;******************************
|
||
;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
|
||
SPRINTER_1X:
|
||
CALL _SET_CNF
|
||
LD C,BIOS.RST_CONF.SP97_1
|
||
RST_to_BIOS
|
||
CALL CNF_PN_320
|
||
LD L,2 ;FN_SYNC.INT_PENT
|
||
JR 1F ;!FIXIT ¬¥âªã ¯à¨¤ã¬ âì
|
||
;
|
||
;ZX Spectrum
|
||
AY8910_X:
|
||
CALL _SET_CNF
|
||
LD C,BIOS.RST_CONF.AY8910
|
||
RST_to_BIOS
|
||
|
||
LD A,#FA ; no ACC, Original waits
|
||
LD (Port_All_Mode),A
|
||
|
||
CALL CNF_SC_312
|
||
LD L,3 ;FN_SYNC.INT_ORIG
|
||
1: LD DE,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
|
||
CALL CONFIG_SET
|
||
CALL CLS ;!FIXIT 㦮 «¨?
|
||
RET
|
||
;
|
||
|
||
SCORPION:
|
||
CALL _SET_CNF
|
||
CALL CNF_SC_312
|
||
LD L,1 ;FN_SYNC.INT_SCORP
|
||
LD DE,CNF_PORT.CNF_1 + CNF_PORT.TURBO.ON
|
||
JR CONFIG_SET
|
||
|
||
PENTAGON:
|
||
CALL _SET_CNF
|
||
CALL CNF_PN_320
|
||
LD L,2 ;FN_SYNC.INT_PENT
|
||
LD DE,CNF_PORT.CNF_2 + CNF_PORT.TURBO.ON
|
||
JR CONFIG_SET
|
||
|
||
PENTAGON512:
|
||
CALL _SET_CNF
|
||
CALL CNF_PN_320
|
||
LD L,2 ;FN_SYNC.INT_PENT
|
||
LD DE,CNF_PORT.CNF_2 + CNF_PORT.TURBO.ON + CNF_PORT.CNF_512
|
||
; JR CONFIG_SET
|
||
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
|
||
RET
|
||
|
||
SPRINTER_reset:
|
||
CALL _SET_CNF
|
||
LD BC,256*BIOS.REINIT.SOFT_RESET + BIOS.REINIT
|
||
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
|
||
|
||
;!TEST
|
||
;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
|
||
;!TEST
|
||
LD C,BIOS.FreeMemRMD
|
||
RST_to_BIOS
|
||
;CALL EMM_FN3 ;!!!!! ç¥à¥§ RST_to_BIOS EMM.FreeMemRMD
|
||
;
|
||
|
||
LD HL,C_DEMO6
|
||
CALL CALL_DOS1
|
||
|
||
XOR A
|
||
;!TEST
|
||
LD C,BIOS.GET_RAMD_ST
|
||
RST_to_BIOS
|
||
;CALL GET_RAMD_ST
|
||
;
|
||
|
||
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
|
||
; |