mirror of
https://github.com/Tolik-Trek/Spectrum.EXE.git
synced 2026-06-15 00:51:36 +03:00
custom number of ROMs loading
This commit is contained in:
parent
0177b8b844
commit
cff96ddd41
@ -1 +1 @@
|
||||
Subproject commit 80b60f7294ce3eee958a0c4e9a6f29577cee496f
|
||||
Subproject commit 81f727ca6ecd8fcaaac4f4e573fe1fd6578c1efa
|
||||
371
spectrum.asm
371
spectrum.asm
@ -84,14 +84,19 @@ program_start EQU BEGIN
|
||||
;
|
||||
; Program EQU section
|
||||
;***************************************
|
||||
NAME_CFG_LINE EQU 0
|
||||
BASIC128_LINE EQU 2
|
||||
BASIC_48_LINE EQU 4
|
||||
TRDOS_LINE EQU 6
|
||||
EXP_LINE EQU 8
|
||||
BIOS_LINE EQU 10
|
||||
BIOS2_LINE EQU 12
|
||||
OPTIONS_LINE EQU 14
|
||||
FULL_FILE_NAME_LENGTH EQU 128 ; ¤«¨ áâப¨ ¯ã⨠ª ä ©«ã
|
||||
MAX_LINE_LENGTH EQU 120 ; ¤«¨ áâப¨ CFG ä ©«
|
||||
CFG_FILE_LINES EQU 8
|
||||
NAME_CFG_LINE EQU 0
|
||||
BASIC128_LINE EQU 2
|
||||
BASIC_48_LINE EQU 4
|
||||
TRDOS_LINE EQU 6
|
||||
EXP_LINE EQU 8
|
||||
BIOS_LINE EQU 10
|
||||
BIOS2_LINE EQU 12
|
||||
;XXX_LINE EQU ??
|
||||
OPTIONS_LINE EQU (CFG_FILE_LINES-1)*2
|
||||
|
||||
;***************************************
|
||||
;
|
||||
|
||||
@ -106,17 +111,17 @@ OPTIONS_LINE EQU 14
|
||||
; Code start section
|
||||
;[]-------------------------------------------------------------------[]
|
||||
IF EXE_HEADER
|
||||
include 'Shared_Includes/constants/EXE_Header.z80'
|
||||
ORG org_addr
|
||||
include 'Shared_Includes/constants/EXE_Header.z80'
|
||||
ORG org_addr
|
||||
ELSE
|
||||
ORG org_addr - CLP_Buffer
|
||||
ORG org_addr - CLP_Buffer
|
||||
ENDIF
|
||||
|
||||
BEGIN:
|
||||
LD (LINE_X),IX
|
||||
|
||||
LD HL,START_MSG
|
||||
LD C,5Ch
|
||||
LD C,Dss.PChars
|
||||
RST ToDSS
|
||||
|
||||
IN A,(SLOT3)
|
||||
@ -125,10 +130,10 @@ BEGIN:
|
||||
JP COMAND_LINE
|
||||
ERROR_FILE:
|
||||
LD HL,ERROR_FILE_MSG_X
|
||||
LD C,5Ch
|
||||
LD C,Dss.PChars
|
||||
RST ToDSS
|
||||
LD HL,ONE_FILE
|
||||
LD C,5Ch
|
||||
LD C,Dss.PChars
|
||||
RST ToDSS
|
||||
|
||||
LD HL,ERROR_FILE_MSG
|
||||
@ -184,8 +189,7 @@ COMAND_LINE:
|
||||
CALL READ_FILE_1
|
||||
JP NC,CONTINUE
|
||||
|
||||
NO_FIL:
|
||||
LD HL,CNF_FILE
|
||||
NO_FIL: LD HL,CNF_FILE
|
||||
LD A,Spec_Page
|
||||
CALL READ_FILE_1
|
||||
JR C,ERROR_FILE
|
||||
@ -352,89 +356,69 @@ IMAGE_NAME: WORD 0
|
||||
IMAGE_HANDLER: BYTE 0
|
||||
SAVE_SLOT3: BYTE 0
|
||||
LEN_CNF: WORD 0
|
||||
A_LINES: WORD 0,0,0,0,0,0,0,0
|
||||
A_LINES: BLOCK CFG_FILE_LINES*2, 0
|
||||
;*********************************************
|
||||
|
||||
CONTINUE: ; CNF ä ©« ¯à®ç¨â , DE - ¤«¨ CNF
|
||||
LD (LEN_CNF),DE
|
||||
LD (LEN_CNF),DE
|
||||
|
||||
LD HL,#C000
|
||||
LD DE,A_LINES
|
||||
LD C,8
|
||||
LOOP_A:
|
||||
LD B,120 ; áâப¨ ¥ ¡®«¥¥ 120 ᨬ¢®«®¢
|
||||
EX DE,HL
|
||||
LD (HL),E
|
||||
INC HL
|
||||
LD (HL),D
|
||||
INC HL
|
||||
EX DE,HL
|
||||
LOOP_L:
|
||||
LD A,(HL)
|
||||
CP 13
|
||||
JR Z,N_LINE
|
||||
CP 10
|
||||
JR Z,N_LINE
|
||||
CP 0
|
||||
JP Z,END_CNF_ERROR
|
||||
INC HL
|
||||
DJNZ LOOP_L
|
||||
LD HL,#C000
|
||||
LD DE,A_LINES
|
||||
LD C,CFG_FILE_LINES
|
||||
LOOP_A: LD B,MAX_LINE_LENGTH ; ¤«¨ áâப¨
|
||||
EX DE,HL
|
||||
LD (HL),E
|
||||
INC HL
|
||||
LD (HL),D
|
||||
INC HL
|
||||
EX DE,HL
|
||||
LOOP_L: LD A,(HL)
|
||||
CP 13
|
||||
JR Z,N_LINE
|
||||
CP 10
|
||||
JR Z,N_LINE
|
||||
AND A
|
||||
JP Z,END_CNF_ERROR
|
||||
INC HL
|
||||
CP ';'
|
||||
JR Z,N_LINE
|
||||
DJNZ LOOP_L
|
||||
|
||||
N_LINE:
|
||||
LD (HL),0
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
CP 13
|
||||
JR Z,N_LINE
|
||||
CP 10
|
||||
JR Z,N_LINE
|
||||
DEC C
|
||||
JR NZ,LOOP_A
|
||||
N_LINE: LD (HL),0
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
CP 13
|
||||
JR Z,N_LINE
|
||||
CP 10
|
||||
JR Z,N_LINE
|
||||
DEC C
|
||||
JR NZ,LOOP_A
|
||||
|
||||
; ¢ë¤¥«¥® 8 áâப ¢ CNF
|
||||
;*************************************
|
||||
MACRO vROM_LOAD romLine, pageNumber
|
||||
LD HL,(A_LINES + romLine)
|
||||
LD A,(HL)
|
||||
CP ';'
|
||||
JR Z,.skip_load
|
||||
LD A,pageNumber
|
||||
CALL READ_FILE_1
|
||||
LD A,Spec_Page
|
||||
OUT (SLOT3),A
|
||||
JP C,ERROR_FILE
|
||||
.skip_load:
|
||||
ENDM
|
||||
|
||||
LD HL,(A_LINES+BASIC128_LINE) ; 2-ï áâப - ¨¬ï ä ©« BASIC128
|
||||
LD A,#42
|
||||
CALL READ_FILE_1
|
||||
LD A,Spec_Page
|
||||
OUT (SLOT3),A
|
||||
JP C,ERROR_FILE
|
||||
|
||||
LD HL,(A_LINES+BASIC_48_LINE) ; 3-ï áâப - ¨¬ï ä ©« BASIC 48
|
||||
LD A,#43
|
||||
CALL READ_FILE_1
|
||||
LD A,Spec_Page
|
||||
OUT (SLOT3),A
|
||||
JP C,ERROR_FILE
|
||||
|
||||
LD HL,(A_LINES+TRDOS_LINE) ; 4-ï áâப - ¨¬ï ä ©« TR-DOS
|
||||
LD A,#44
|
||||
CALL READ_FILE_1
|
||||
LD A,Spec_Page
|
||||
OUT (SLOT3),A
|
||||
JP C,ERROR_FILE
|
||||
|
||||
LD HL,(A_LINES+EXP_LINE) ; 5-ï áâப - ¨¬ï ä ©« EXPANSION
|
||||
LD A,#45
|
||||
CALL READ_FILE_1
|
||||
LD A,Spec_Page
|
||||
OUT (SLOT3),A
|
||||
JP C,ERROR_FILE
|
||||
|
||||
LD HL,(A_LINES+BIOS_LINE) ; 6-ï áâப - ¨¬ï ä ©« BIOS
|
||||
LD A,#46
|
||||
CALL READ_FILE_1
|
||||
LD A,Spec_Page
|
||||
OUT (SLOT3),A
|
||||
JP C,ERROR_FILE
|
||||
|
||||
LD HL,(A_LINES+BIOS2_LINE) ; 7-ï áâப - ¨¬ï ä ©« BIOS2
|
||||
LD A,#47
|
||||
CALL READ_FILE_1
|
||||
LD A,Spec_Page
|
||||
OUT (SLOT3),A
|
||||
JP C,ERROR_FILE
|
||||
vROM_LOAD BASIC128_LINE, #42 ; 2-ï áâப - ¨¬ï ä ©« BASIC128
|
||||
vROM_LOAD BASIC_48_LINE, #43 ; 3-ï áâப - ¨¬ï ä ©« BASIC 48
|
||||
vROM_LOAD TRDOS_LINE, #44 ; 4-ï áâப - ¨¬ï ä ©« TR-DOS
|
||||
vROM_LOAD EXP_LINE, #45 ; 5-ï áâப - ¨¬ï ä ©« EXPANSION
|
||||
vROM_LOAD BIOS_LINE, #46 ; 6-ï áâப - ¨¬ï ä ©« BIOS
|
||||
vROM_LOAD BIOS2_LINE, #47 ; 7-ï áâப - ¨¬ï ä ©« BIOS2
|
||||
; vROM_LOAD _LINE, #42 ; 8-ï áâப - ¨¬ï ä ©«
|
||||
; vROM_LOAD _LINE, #42 ; 9-ï áâப - ¨¬ï ä ©«
|
||||
; vROM_LOAD _LINE, #42 ; 10-ï áâப - ¨¬ï ä ©«
|
||||
; vROM_LOAD _LINE, #42 ; 11-ï áâப - ¨¬ï ä ©«
|
||||
|
||||
; ä ©«ë áç¨â ë
|
||||
;*************************************
|
||||
@ -531,7 +515,6 @@ PARAM_E2:
|
||||
;************************************
|
||||
|
||||
PARAM_END:
|
||||
|
||||
LD A,#E2 ; ROM-ID - BASIC 128
|
||||
LD B,#42 ; page
|
||||
CALL SET_ROM
|
||||
@ -587,10 +570,9 @@ SKIP_IMAGE:
|
||||
|
||||
;********************************************
|
||||
|
||||
; out B - old ROM-page
|
||||
SET_ROM:
|
||||
; out B - old ROM-page
|
||||
DI
|
||||
|
||||
; PUSH BC
|
||||
; PUSH AF
|
||||
|
||||
@ -660,11 +642,11 @@ SET_ROM:
|
||||
;********************************************
|
||||
READ_IMAGE:
|
||||
LD DE,ONE_FILE
|
||||
LD BC,128
|
||||
LD BC,FULL_FILE_NAME_LENGTH
|
||||
LDIR
|
||||
LD HL,ONE_FILE
|
||||
|
||||
LD A,1
|
||||
LD A,Dss.Open.R
|
||||
LD C,Dss.Open
|
||||
RST ToDSS
|
||||
RET C
|
||||
@ -681,22 +663,20 @@ READ_IMAGE:
|
||||
|
||||
.Load_TRD:
|
||||
LD A,(IMAGE_HANDLER)
|
||||
LD C,Dss.Move_FP
|
||||
LD B,2
|
||||
LD B,Dss.Move_FP.FrEnd
|
||||
LD HL,0
|
||||
LD IX,0
|
||||
LD C,Dss.Move_FP
|
||||
RST ToDSS ; ©â¨ ¤«¨ã ä ©«
|
||||
RET C
|
||||
|
||||
PUSH IX
|
||||
POP DE
|
||||
|
||||
;--------------[new_code]---------------
|
||||
call Get_RAM_Disk_E
|
||||
ret c
|
||||
|
||||
jp Load_IMAGE_File
|
||||
;---------------------------------------
|
||||
|
||||
Get_RAM_Disk_E:
|
||||
; hl:de - à §¬¥à ä ©« ¢ ¡ ©â å
|
||||
LD A,D
|
||||
@ -719,32 +699,29 @@ Get_RAM_Disk_E:
|
||||
JR Z,ERROR_NO_MEM
|
||||
PUSH AF
|
||||
;***************************************
|
||||
;!FIXIT ¡¥§®¯ á® § ¨¬ âì à ¬¤¨áª¨, ç⮡ ¯®«ì§®¢ â¥«ì ¥ áâà ¤ «
|
||||
; ®á¢®¡®¤¨âì ram-disk e:
|
||||
.free_disk:
|
||||
DI
|
||||
LD A,0
|
||||
LD C,BIOS.EMM_FN3
|
||||
XOR A ; RAM-Drive E:
|
||||
LD C,BIOS.FreeMemRMD
|
||||
RST ToBIOS ; ®á¢®¡®¤¨âì e:
|
||||
;!!!!!!!!!!!!!!!!!!!!!! ; § ç âì ¤à㣮© à ¬¤à ©¢, ᢮¡®¤ë©?
|
||||
;***************************************
|
||||
|
||||
POP AF
|
||||
LD B,A ; § ¯à®á¨âì ¯ ¬ïâì ã bios-
|
||||
LD A,0
|
||||
LD C,BIOS.EMM_FN2 ; ¨ ¯®¤á®¥¤¨¨âì ª e:
|
||||
XOR A ; RAM-Drive E:
|
||||
LD C,BIOS.GetMemRMD ; ¨ ¯®¤á®¥¤¨¨âì ª e:
|
||||
RST ToBIOS
|
||||
JR C,ERROR_NO_MEM
|
||||
LD (MEM_BLK),A
|
||||
|
||||
;--------------[new_code]---------------
|
||||
ret
|
||||
RET
|
||||
;---------------------------------------
|
||||
|
||||
Load_IMAGE_File:
|
||||
LD A,(IMAGE_HANDLER)
|
||||
LD C,Dss.Move_FP
|
||||
LD B,0
|
||||
LD HL,0
|
||||
LD IX,0
|
||||
LD BC,Dss.Move_FP.FrStart * 256 + Dss.Move_FP
|
||||
RST ToDSS ; ãáâ ®¢¨âì 㪠§ ⥫ì 0
|
||||
RET C
|
||||
|
||||
@ -765,7 +742,7 @@ Load_IMAGE_File:
|
||||
RST ToDSS
|
||||
JR C,ERROR_IN_READ
|
||||
|
||||
LD HL,PROGRES_IND ; loading progress
|
||||
LD HL,PROGRES_IND ; loading progress
|
||||
LD C,Dss.PChars
|
||||
RST ToDSS
|
||||
|
||||
@ -778,12 +755,12 @@ Load_IMAGE_File:
|
||||
CP #FF
|
||||
JR NZ,.load_loop
|
||||
|
||||
LD HL,CR_LINE ; loading
|
||||
LD HL,CR_LINE ; loading
|
||||
LD C,Dss.PChars
|
||||
RST ToDSS
|
||||
|
||||
LD A,(IMAGE_HANDLER)
|
||||
LD C,Dss.Close ; § ªàëâì ä ©«
|
||||
LD C,Dss.Close ; § ªàëâì ä ©«
|
||||
RST ToDSS
|
||||
|
||||
RET C
|
||||
@ -791,9 +768,8 @@ Load_IMAGE_File:
|
||||
|
||||
Set_RAM_Dsk_EtoA:
|
||||
DI
|
||||
LD A,0
|
||||
LD B,0
|
||||
LD C,BIOS.RAMD_TO_DRV ; § ç¨âì e: a:
|
||||
XOR A
|
||||
LD BC,0*256 + BIOS.RAMD_TO_DRV ; § ç¨âì e: a:
|
||||
RST ToBIOS
|
||||
AND A
|
||||
RET
|
||||
@ -808,7 +784,7 @@ ERROR_NO_MEM:
|
||||
RST ToDSS
|
||||
ERROR_IMAGE_X:
|
||||
LD A,(IMAGE_HANDLER)
|
||||
LD C,Dss.Close ; § ªàëâì ä ©«
|
||||
LD C,Dss.Close ; § ªàëâì ä ©«
|
||||
RST ToDSS
|
||||
SCF
|
||||
RET
|
||||
@ -817,14 +793,12 @@ SAV_PG3X: db 0
|
||||
;********************************************
|
||||
READ_FILE_1:
|
||||
LD DE,ONE_FILE
|
||||
LD BC,128
|
||||
LDIR
|
||||
LD BC,FULL_FILE_NAME_LENGTH
|
||||
LD HL,ONE_FILE
|
||||
OUT (SLOT3),A
|
||||
|
||||
READ_FILE:
|
||||
|
||||
LD A,1
|
||||
LD A,Dss.Open.R
|
||||
LD C,Dss.Open
|
||||
RST ToDSS
|
||||
RET C ; ®è¨¡ª , ¥á«¨ ¥â ä ©«
|
||||
@ -832,8 +806,8 @@ READ_FILE:
|
||||
LD (FILE_HANDLE),A
|
||||
LD A,(FILE_HANDLE)
|
||||
|
||||
LD HL,0C000h
|
||||
LD DE,4000h
|
||||
LD HL,#C000
|
||||
LD DE,#4000
|
||||
LD C,Dss.Read
|
||||
RST ToDSS
|
||||
RET C ; ®è¨¡ª ¯à¨ ç⥨¨
|
||||
@ -845,7 +819,7 @@ READ_FILE:
|
||||
RST ToDSS
|
||||
|
||||
POP DE ; ¤«¨ áç¨â ëå ¤ ëå
|
||||
RET ; ®è¨¡ª ¯à¨ § ªàë⨨ ¨«¨ Ok
|
||||
RET ; ®è¨¡ª ¯à¨ § ªàë⨨ ¨«¨ Ok
|
||||
|
||||
FILE_HANDLE: db 0
|
||||
|
||||
@ -855,27 +829,24 @@ FILE_HANDLE: db 0
|
||||
EXIT_TO_DSS:
|
||||
DI
|
||||
LD SP,#BFF0
|
||||
LD A,CNF_0
|
||||
LD A,CNF_PORT.CNF_0
|
||||
OUT (SYS_PORT.OFF),A
|
||||
|
||||
ld a,(#FFF0)
|
||||
out (SLOT0),a
|
||||
LD A,(#FFF0) ;!HARDCODE
|
||||
OUT (SLOT0),A
|
||||
|
||||
LD B,3 ; IBM_PAL
|
||||
LD A,0
|
||||
LD C,#A6 ; SET_standard_PAL
|
||||
XOR A
|
||||
LD BC,3*256 + BIOS.SET_PAL_INIT ; SET IBM PAL
|
||||
RST ToBIOS
|
||||
|
||||
LD A,3 ; OPEN_TXT
|
||||
LD B,0
|
||||
LD C,#50
|
||||
LD A,Dss.SetVMod.txt80x32 ; OPEN_TXT
|
||||
LD BC,0*256 + Dss.SetVMod
|
||||
RST ToDSS
|
||||
|
||||
LD C,#56 ; CLS
|
||||
LD A,#20
|
||||
LD DE,0
|
||||
LD HL,#2050
|
||||
LD B,7
|
||||
LD A,#20
|
||||
LD BC,7*256 + Dss.Clear
|
||||
RST ToDSS
|
||||
|
||||
LD HL,MSG_ZX_EXIT
|
||||
@ -921,7 +892,7 @@ RESET_TO_ZX:
|
||||
cp #1E
|
||||
jr z,EXIT_TO_DSS
|
||||
|
||||
LD A,CNF_0
|
||||
LD A,CNF_PORT.CNF_0
|
||||
OUT (SYS_PORT.ON),A ; System-page on & CNF = 0
|
||||
|
||||
;-------------[TEST ATARIN]-------------
|
||||
@ -958,19 +929,19 @@ RESET_TO_ZX:
|
||||
LD A,(Ret_fn_+2)
|
||||
XOR B
|
||||
LD B,A
|
||||
LD A,Conf_port.RET_PORT
|
||||
CALL SET_ROM ; ¢ª«îç¨âì ¢®§¢à â
|
||||
LD A,ACEX.RET_PORT
|
||||
CALL SET_ROM ; ¢ª«îç¨âì ¢®§¢à â
|
||||
|
||||
LD A,CNF_3
|
||||
OUT (SYS_PORT.ON),A ; System-page on & CNF = 3
|
||||
LD A,CNF_PORT.CNF_3
|
||||
OUT (SYS_PORT.ON),A ; System-page on & CNF = 3
|
||||
|
||||
XOR A
|
||||
OUT (BorderColor),A ; border-0
|
||||
OUT (RGADR),A ; Screen-page = 0
|
||||
OUT (RGMOD),A ; Screen-mode-page = 0
|
||||
LD BC,1FFDh
|
||||
OUT (BorderColor),A ; border-0
|
||||
OUT (RGADR),A ; Screen-page = 0
|
||||
OUT (RGMOD),A ; Screen-mode-page = 0
|
||||
LD BC,#1FFD
|
||||
OUT (C),A ; Scorpion-port = 0
|
||||
LD BC,7FFDh
|
||||
LD BC,#7FFD
|
||||
OUT (C),A ; pentagon-port = 0
|
||||
|
||||
LD A,(Int_or_+2)
|
||||
@ -978,88 +949,96 @@ RESET_TO_ZX:
|
||||
LD A,#FA ; original waits on
|
||||
JR NZ,ORIG1
|
||||
LD A,#FE
|
||||
ORIG1:
|
||||
LD BC,Port_All_Mode
|
||||
ORIG1: LD BC,Port_All_Mode
|
||||
OUT (C),A ; ACC-Off
|
||||
|
||||
LD BC,CBL.SYS_PORT
|
||||
LD A,0
|
||||
XOR A
|
||||
OUT (C),A ; CBL-off
|
||||
|
||||
LD A,#12 ; FDD-720
|
||||
LD A,BIOS.FN_TURBO.VG.OFF ; FDD-720
|
||||
LD C,BIOS.FN_TURBO
|
||||
RST #18
|
||||
RST ToBIOS_18
|
||||
|
||||
;---------------[test!!!!!]-------------
|
||||
LD C,BIOS.HDD_PART ; IDE-1/IDE-2
|
||||
LD A,0 ; --> IDE-1
|
||||
RST #18
|
||||
;!FIXIT à §à㫨âì ०¨¬ ᯥªâàã¬ à ¡®âã á «î¡ë¬¨ ª « ¬¨ ¨ à §¤¥« ¬¨
|
||||
XOR A ; --> IDE-1
|
||||
LD C,BIOS.HDD_PART ; IDE-1/IDE-2
|
||||
RST ToBIOS_18
|
||||
;---------------------------------------
|
||||
|
||||
;******************************
|
||||
XOR A ; Set ZX-Palette
|
||||
LD B,2
|
||||
LD C,#A6
|
||||
RST 18h
|
||||
XOR A
|
||||
LD BC,2*256 + BIOS.SET_PAL_INIT ; Set ZX-Palette
|
||||
RST ToBIOS_18
|
||||
|
||||
LD A,(Int_or_+2)
|
||||
AND A ; 3
|
||||
JR NZ,Original
|
||||
LD A,(Int_sc_+2) ; 1/2
|
||||
AND A ; 3
|
||||
JR NZ,Original
|
||||
LD A,(Int_sc_+2) ; 1/2
|
||||
Original:
|
||||
LD C,#F2 ; -> INT for Pentagon or Scorpion
|
||||
RST #18
|
||||
LD C,BIOS.FN_SYNC ; -> INT for Pentagon or Scorpion
|
||||
RST ToBIOS_18
|
||||
|
||||
LD HL,#4000 ; clear ZX-Spectrum screen
|
||||
LD DE,#4001
|
||||
LD BC,#1AFF
|
||||
LD (HL),L
|
||||
LD (HL),L
|
||||
LDIR
|
||||
|
||||
LD HL,#4104 ; Screen-1
|
||||
LD BC,#0480
|
||||
LD E,0
|
||||
RST #18
|
||||
LD BC,4*256 + BIOS.LP_OPEN_S
|
||||
RST ToBIOS_18
|
||||
|
||||
LD HL,#5104 ; Screen-2
|
||||
LD BC,#0480
|
||||
LD E,0
|
||||
RST #18
|
||||
LD BC,4*256 + BIOS.LP_OPEN_S
|
||||
RST ToBIOS_18
|
||||
|
||||
XOR A
|
||||
OUT (RGADR),A
|
||||
OUT (RGMOD),A
|
||||
;************************************************
|
||||
; ˆ¨æ¨ «¨§ æ¨ï áâà ¨æ
|
||||
|
||||
;!FIXIT ç¥à¥§ äãªæ¨î ¡¨®á ¯®¯à®¡®¢ âì
|
||||
DI
|
||||
LD A,0
|
||||
OUT (SLOT0),A
|
||||
LD A,5
|
||||
OUT (SLOT1),A
|
||||
|
||||
XOR A
|
||||
OUT (SLOT0),A
|
||||
|
||||
LD BC,#1FFD
|
||||
OUT (C),A ; #1FFD
|
||||
LD B,#7F
|
||||
LOOP_P1:
|
||||
OUT (C),A ; #7FFD
|
||||
OUT (SLOT3),A
|
||||
INC A
|
||||
CP 8
|
||||
JR NZ,LOOP_P1
|
||||
|
||||
LD B,#1F
|
||||
LD A,#10
|
||||
OUT (C),A ; #1FFD
|
||||
LD A,8
|
||||
LD B,#7F
|
||||
;!TEST
|
||||
LD A,8
|
||||
LOOP_P1:
|
||||
DEC A
|
||||
OUT (C),A ; #7FFD
|
||||
OUT (SLOT3),A
|
||||
JR NZ,LOOP_P1
|
||||
|
||||
;OUT (C),A ; #7FFD
|
||||
;OUT (SLOT3),A
|
||||
;INC A
|
||||
;CP 8
|
||||
;JR NZ,LOOP_P1
|
||||
;
|
||||
|
||||
LD B,#1F
|
||||
LD A,#10
|
||||
OUT (C),A ; #1FFD
|
||||
LD B,#7F
|
||||
LD A,8
|
||||
LOOP_P2:
|
||||
OUT (C),A ; #7FFD
|
||||
OUT (SLOT3),A
|
||||
INC A
|
||||
CP 16
|
||||
JR NZ,LOOP_P2
|
||||
OUT (C),A ; #7FFD
|
||||
OUT (SLOT3),A
|
||||
INC A
|
||||
CP 16
|
||||
JR NZ,LOOP_P2
|
||||
|
||||
XOR A
|
||||
OUT (C),A ; #7FFD
|
||||
LD B,#1F
|
||||
@ -1076,19 +1055,19 @@ LOOP_P2:
|
||||
LD A,(Line312_+2)
|
||||
OUT (Port_VSYNC),A
|
||||
|
||||
LD A,(P_7FFD_+2) ; - Pentagon off
|
||||
LD A,(P_7FFD_+2) ; - Pentagon off
|
||||
LD BC,#7FFD
|
||||
OUT (C),A
|
||||
|
||||
LD A,(Turbo__+2) ; 3 - turbo
|
||||
LD A,(Turbo__+2) ; 3 - turbo
|
||||
|
||||
LD HL,(Sprint_+2) ; +04h - Sprinter-ZX
|
||||
LD HL,(Sprint_+2) ; +04h - Sprinter-ZX
|
||||
ADD A,L ; +0Ch - Scorpion/Pentagon
|
||||
|
||||
LD HL,(P_1FFD_+2) ; +40h - Scorpion port off
|
||||
LD HL,(P_1FFD_+2) ; +40h - Scorpion port off
|
||||
ADD A,L
|
||||
|
||||
LD HL,(Mem512_+2) ; +80h - Pentagon-512 on
|
||||
LD HL,(Mem512_+2) ; +80h - Pentagon-512 on
|
||||
ADD A,L
|
||||
|
||||
LD E,A
|
||||
@ -1102,7 +1081,7 @@ PROG_STARTS:
|
||||
LD A,2
|
||||
OUT (SLOT2),A
|
||||
LD A,E
|
||||
OUT (SYS_PORT.OFF),A ; System-port
|
||||
OUT (SYS_PORT.OFF),A
|
||||
LD A,D
|
||||
AND A
|
||||
JP Z,0
|
||||
@ -1151,7 +1130,7 @@ Ret_fn: db "ret-fn", 255,0
|
||||
;/Turbo /Lines312 /Sprinter /7FFD /1FFD /Mem512 /Int-Sc /To-TRDOS /no-run /origin /ret-zx /ret-fn
|
||||
|
||||
CNF_FILE: db "SPECTRUM.CFG",0
|
||||
ONE_FILE: ds 128
|
||||
ONE_FILE: BLOCK FULL_FILE_NAME_LENGTH, 0
|
||||
;
|
||||
;
|
||||
;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user