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
|
||||||
229
spectrum.asm
229
spectrum.asm
@ -84,6 +84,9 @@ program_start EQU BEGIN
|
|||||||
;
|
;
|
||||||
; Program EQU section
|
; Program EQU section
|
||||||
;***************************************
|
;***************************************
|
||||||
|
FULL_FILE_NAME_LENGTH EQU 128 ; ¤«¨ áâப¨ ¯ã⨠ª ä ©«ã
|
||||||
|
MAX_LINE_LENGTH EQU 120 ; ¤«¨ áâப¨ CFG ä ©«
|
||||||
|
CFG_FILE_LINES EQU 8
|
||||||
NAME_CFG_LINE EQU 0
|
NAME_CFG_LINE EQU 0
|
||||||
BASIC128_LINE EQU 2
|
BASIC128_LINE EQU 2
|
||||||
BASIC_48_LINE EQU 4
|
BASIC_48_LINE EQU 4
|
||||||
@ -91,7 +94,9 @@ TRDOS_LINE EQU 6
|
|||||||
EXP_LINE EQU 8
|
EXP_LINE EQU 8
|
||||||
BIOS_LINE EQU 10
|
BIOS_LINE EQU 10
|
||||||
BIOS2_LINE EQU 12
|
BIOS2_LINE EQU 12
|
||||||
OPTIONS_LINE EQU 14
|
;XXX_LINE EQU ??
|
||||||
|
OPTIONS_LINE EQU (CFG_FILE_LINES-1)*2
|
||||||
|
|
||||||
;***************************************
|
;***************************************
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -116,7 +121,7 @@ BEGIN:
|
|||||||
LD (LINE_X),IX
|
LD (LINE_X),IX
|
||||||
|
|
||||||
LD HL,START_MSG
|
LD HL,START_MSG
|
||||||
LD C,5Ch
|
LD C,Dss.PChars
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
|
|
||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
@ -125,10 +130,10 @@ BEGIN:
|
|||||||
JP COMAND_LINE
|
JP COMAND_LINE
|
||||||
ERROR_FILE:
|
ERROR_FILE:
|
||||||
LD HL,ERROR_FILE_MSG_X
|
LD HL,ERROR_FILE_MSG_X
|
||||||
LD C,5Ch
|
LD C,Dss.PChars
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
LD HL,ONE_FILE
|
LD HL,ONE_FILE
|
||||||
LD C,5Ch
|
LD C,Dss.PChars
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
|
|
||||||
LD HL,ERROR_FILE_MSG
|
LD HL,ERROR_FILE_MSG
|
||||||
@ -184,8 +189,7 @@ COMAND_LINE:
|
|||||||
CALL READ_FILE_1
|
CALL READ_FILE_1
|
||||||
JP NC,CONTINUE
|
JP NC,CONTINUE
|
||||||
|
|
||||||
NO_FIL:
|
NO_FIL: LD HL,CNF_FILE
|
||||||
LD HL,CNF_FILE
|
|
||||||
LD A,Spec_Page
|
LD A,Spec_Page
|
||||||
CALL READ_FILE_1
|
CALL READ_FILE_1
|
||||||
JR C,ERROR_FILE
|
JR C,ERROR_FILE
|
||||||
@ -352,7 +356,7 @@ IMAGE_NAME: WORD 0
|
|||||||
IMAGE_HANDLER: BYTE 0
|
IMAGE_HANDLER: BYTE 0
|
||||||
SAVE_SLOT3: BYTE 0
|
SAVE_SLOT3: BYTE 0
|
||||||
LEN_CNF: WORD 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
|
CONTINUE: ; CNF ä ©« ¯à®ç¨â , DE - ¤«¨ CNF
|
||||||
@ -360,28 +364,27 @@ CONTINUE: ; CNF 䠩
|
|||||||
|
|
||||||
LD HL,#C000
|
LD HL,#C000
|
||||||
LD DE,A_LINES
|
LD DE,A_LINES
|
||||||
LD C,8
|
LD C,CFG_FILE_LINES
|
||||||
LOOP_A:
|
LOOP_A: LD B,MAX_LINE_LENGTH ; ¤«¨ áâப¨
|
||||||
LD B,120 ; áâப¨ ¥ ¡®«¥¥ 120 ᨬ¢®«®¢
|
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD (HL),E
|
LD (HL),E
|
||||||
INC HL
|
INC HL
|
||||||
LD (HL),D
|
LD (HL),D
|
||||||
INC HL
|
INC HL
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LOOP_L:
|
LOOP_L: LD A,(HL)
|
||||||
LD A,(HL)
|
|
||||||
CP 13
|
CP 13
|
||||||
JR Z,N_LINE
|
JR Z,N_LINE
|
||||||
CP 10
|
CP 10
|
||||||
JR Z,N_LINE
|
JR Z,N_LINE
|
||||||
CP 0
|
AND A
|
||||||
JP Z,END_CNF_ERROR
|
JP Z,END_CNF_ERROR
|
||||||
INC HL
|
INC HL
|
||||||
|
CP ';'
|
||||||
|
JR Z,N_LINE
|
||||||
DJNZ LOOP_L
|
DJNZ LOOP_L
|
||||||
|
|
||||||
N_LINE:
|
N_LINE: LD (HL),0
|
||||||
LD (HL),0
|
|
||||||
INC HL
|
INC HL
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
CP 13
|
CP 13
|
||||||
@ -393,48 +396,29 @@ N_LINE:
|
|||||||
|
|
||||||
; ¢ë¤¥«¥® 8 áâப ¢ CNF
|
; ¢ë¤¥«¥® 8 áâப ¢ CNF
|
||||||
;*************************************
|
;*************************************
|
||||||
|
MACRO vROM_LOAD romLine, pageNumber
|
||||||
LD HL,(A_LINES+BASIC128_LINE) ; 2-ï áâப - ¨¬ï ä ©« BASIC128
|
LD HL,(A_LINES + romLine)
|
||||||
LD A,#42
|
LD A,(HL)
|
||||||
|
CP ';'
|
||||||
|
JR Z,.skip_load
|
||||||
|
LD A,pageNumber
|
||||||
CALL READ_FILE_1
|
CALL READ_FILE_1
|
||||||
LD A,Spec_Page
|
LD A,Spec_Page
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
JP C,ERROR_FILE
|
JP C,ERROR_FILE
|
||||||
|
.skip_load:
|
||||||
|
ENDM
|
||||||
|
|
||||||
LD HL,(A_LINES+BASIC_48_LINE) ; 3-ï áâப - ¨¬ï ä ©« BASIC 48
|
vROM_LOAD BASIC128_LINE, #42 ; 2-ï áâப - ¨¬ï ä ©« BASIC128
|
||||||
LD A,#43
|
vROM_LOAD BASIC_48_LINE, #43 ; 3-ï áâப - ¨¬ï ä ©« BASIC 48
|
||||||
CALL READ_FILE_1
|
vROM_LOAD TRDOS_LINE, #44 ; 4-ï áâப - ¨¬ï ä ©« TR-DOS
|
||||||
LD A,Spec_Page
|
vROM_LOAD EXP_LINE, #45 ; 5-ï áâப - ¨¬ï ä ©« EXPANSION
|
||||||
OUT (SLOT3),A
|
vROM_LOAD BIOS_LINE, #46 ; 6-ï áâப - ¨¬ï ä ©« BIOS
|
||||||
JP C,ERROR_FILE
|
vROM_LOAD BIOS2_LINE, #47 ; 7-ï áâப - ¨¬ï ä ©« BIOS2
|
||||||
|
; vROM_LOAD _LINE, #42 ; 8-ï áâப - ¨¬ï ä ©«
|
||||||
LD HL,(A_LINES+TRDOS_LINE) ; 4-ï áâப - ¨¬ï ä ©« TR-DOS
|
; vROM_LOAD _LINE, #42 ; 9-ï áâப - ¨¬ï ä ©«
|
||||||
LD A,#44
|
; vROM_LOAD _LINE, #42 ; 10-ï áâப - ¨¬ï ä ©«
|
||||||
CALL READ_FILE_1
|
; vROM_LOAD _LINE, #42 ; 11-ï áâப - ¨¬ï ä ©«
|
||||||
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
|
|
||||||
|
|
||||||
; ä ©«ë áç¨â ë
|
; ä ©«ë áç¨â ë
|
||||||
;*************************************
|
;*************************************
|
||||||
@ -531,7 +515,6 @@ PARAM_E2:
|
|||||||
;************************************
|
;************************************
|
||||||
|
|
||||||
PARAM_END:
|
PARAM_END:
|
||||||
|
|
||||||
LD A,#E2 ; ROM-ID - BASIC 128
|
LD A,#E2 ; ROM-ID - BASIC 128
|
||||||
LD B,#42 ; page
|
LD B,#42 ; page
|
||||||
CALL SET_ROM
|
CALL SET_ROM
|
||||||
@ -587,10 +570,9 @@ SKIP_IMAGE:
|
|||||||
|
|
||||||
;********************************************
|
;********************************************
|
||||||
|
|
||||||
SET_ROM:
|
|
||||||
; out B - old ROM-page
|
; out B - old ROM-page
|
||||||
|
SET_ROM:
|
||||||
DI
|
DI
|
||||||
|
|
||||||
; PUSH BC
|
; PUSH BC
|
||||||
; PUSH AF
|
; PUSH AF
|
||||||
|
|
||||||
@ -660,11 +642,11 @@ SET_ROM:
|
|||||||
;********************************************
|
;********************************************
|
||||||
READ_IMAGE:
|
READ_IMAGE:
|
||||||
LD DE,ONE_FILE
|
LD DE,ONE_FILE
|
||||||
LD BC,128
|
LD BC,FULL_FILE_NAME_LENGTH
|
||||||
LDIR
|
LDIR
|
||||||
LD HL,ONE_FILE
|
LD HL,ONE_FILE
|
||||||
|
|
||||||
LD A,1
|
LD A,Dss.Open.R
|
||||||
LD C,Dss.Open
|
LD C,Dss.Open
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
RET C
|
RET C
|
||||||
@ -681,22 +663,20 @@ READ_IMAGE:
|
|||||||
|
|
||||||
.Load_TRD:
|
.Load_TRD:
|
||||||
LD A,(IMAGE_HANDLER)
|
LD A,(IMAGE_HANDLER)
|
||||||
LD C,Dss.Move_FP
|
LD B,Dss.Move_FP.FrEnd
|
||||||
LD B,2
|
|
||||||
LD HL,0
|
LD HL,0
|
||||||
LD IX,0
|
LD IX,0
|
||||||
|
LD C,Dss.Move_FP
|
||||||
RST ToDSS ; ©â¨ ¤«¨ã ä ©«
|
RST ToDSS ; ©â¨ ¤«¨ã ä ©«
|
||||||
RET C
|
RET C
|
||||||
|
|
||||||
PUSH IX
|
PUSH IX
|
||||||
POP DE
|
POP DE
|
||||||
|
|
||||||
;--------------[new_code]---------------
|
|
||||||
call Get_RAM_Disk_E
|
call Get_RAM_Disk_E
|
||||||
ret c
|
ret c
|
||||||
|
|
||||||
jp Load_IMAGE_File
|
jp Load_IMAGE_File
|
||||||
;---------------------------------------
|
|
||||||
Get_RAM_Disk_E:
|
Get_RAM_Disk_E:
|
||||||
; hl:de - à §¬¥à ä ©« ¢ ¡ ©â å
|
; hl:de - à §¬¥à ä ©« ¢ ¡ ©â å
|
||||||
LD A,D
|
LD A,D
|
||||||
@ -719,32 +699,29 @@ Get_RAM_Disk_E:
|
|||||||
JR Z,ERROR_NO_MEM
|
JR Z,ERROR_NO_MEM
|
||||||
PUSH AF
|
PUSH AF
|
||||||
;***************************************
|
;***************************************
|
||||||
|
;!FIXIT ¡¥§®¯ á® § ¨¬ âì à ¬¤¨áª¨, ç⮡ ¯®«ì§®¢ â¥«ì ¥ áâà ¤ «
|
||||||
; ®á¢®¡®¤¨âì ram-disk e:
|
; ®á¢®¡®¤¨âì ram-disk e:
|
||||||
.free_disk:
|
.free_disk:
|
||||||
DI
|
DI
|
||||||
LD A,0
|
XOR A ; RAM-Drive E:
|
||||||
LD C,BIOS.EMM_FN3
|
LD C,BIOS.FreeMemRMD
|
||||||
RST ToBIOS ; ®á¢®¡®¤¨âì e:
|
RST ToBIOS ; ®á¢®¡®¤¨âì e:
|
||||||
;!!!!!!!!!!!!!!!!!!!!!! ; § ç âì ¤à㣮© à ¬¤à ©¢, ᢮¡®¤ë©?
|
|
||||||
;***************************************
|
|
||||||
POP AF
|
POP AF
|
||||||
LD B,A ; § ¯à®á¨âì ¯ ¬ïâì ã bios-
|
LD B,A ; § ¯à®á¨âì ¯ ¬ïâì ã bios-
|
||||||
LD A,0
|
XOR A ; RAM-Drive E:
|
||||||
LD C,BIOS.EMM_FN2 ; ¨ ¯®¤á®¥¤¨¨âì ª e:
|
LD C,BIOS.GetMemRMD ; ¨ ¯®¤á®¥¤¨¨âì ª e:
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
JR C,ERROR_NO_MEM
|
JR C,ERROR_NO_MEM
|
||||||
LD (MEM_BLK),A
|
LD (MEM_BLK),A
|
||||||
|
RET
|
||||||
;--------------[new_code]---------------
|
|
||||||
ret
|
|
||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
|
|
||||||
Load_IMAGE_File:
|
Load_IMAGE_File:
|
||||||
LD A,(IMAGE_HANDLER)
|
LD A,(IMAGE_HANDLER)
|
||||||
LD C,Dss.Move_FP
|
|
||||||
LD B,0
|
|
||||||
LD HL,0
|
LD HL,0
|
||||||
LD IX,0
|
LD IX,0
|
||||||
|
LD BC,Dss.Move_FP.FrStart * 256 + Dss.Move_FP
|
||||||
RST ToDSS ; ãáâ ®¢¨âì 㪠§ ⥫ì 0
|
RST ToDSS ; ãáâ ®¢¨âì 㪠§ ⥫ì 0
|
||||||
RET C
|
RET C
|
||||||
|
|
||||||
@ -791,9 +768,8 @@ Load_IMAGE_File:
|
|||||||
|
|
||||||
Set_RAM_Dsk_EtoA:
|
Set_RAM_Dsk_EtoA:
|
||||||
DI
|
DI
|
||||||
LD A,0
|
XOR A
|
||||||
LD B,0
|
LD BC,0*256 + BIOS.RAMD_TO_DRV ; § ç¨âì e: a:
|
||||||
LD C,BIOS.RAMD_TO_DRV ; § ç¨âì e: a:
|
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
@ -817,14 +793,12 @@ SAV_PG3X: db 0
|
|||||||
;********************************************
|
;********************************************
|
||||||
READ_FILE_1:
|
READ_FILE_1:
|
||||||
LD DE,ONE_FILE
|
LD DE,ONE_FILE
|
||||||
LD BC,128
|
LD BC,FULL_FILE_NAME_LENGTH
|
||||||
LDIR
|
|
||||||
LD HL,ONE_FILE
|
LD HL,ONE_FILE
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
|
||||||
READ_FILE:
|
READ_FILE:
|
||||||
|
LD A,Dss.Open.R
|
||||||
LD A,1
|
|
||||||
LD C,Dss.Open
|
LD C,Dss.Open
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
RET C ; ®è¨¡ª , ¥á«¨ ¥â ä ©«
|
RET C ; ®è¨¡ª , ¥á«¨ ¥â ä ©«
|
||||||
@ -832,8 +806,8 @@ READ_FILE:
|
|||||||
LD (FILE_HANDLE),A
|
LD (FILE_HANDLE),A
|
||||||
LD A,(FILE_HANDLE)
|
LD A,(FILE_HANDLE)
|
||||||
|
|
||||||
LD HL,0C000h
|
LD HL,#C000
|
||||||
LD DE,4000h
|
LD DE,#4000
|
||||||
LD C,Dss.Read
|
LD C,Dss.Read
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
RET C ; ®è¨¡ª ¯à¨ ç⥨¨
|
RET C ; ®è¨¡ª ¯à¨ ç⥨¨
|
||||||
@ -855,27 +829,24 @@ FILE_HANDLE: db 0
|
|||||||
EXIT_TO_DSS:
|
EXIT_TO_DSS:
|
||||||
DI
|
DI
|
||||||
LD SP,#BFF0
|
LD SP,#BFF0
|
||||||
LD A,CNF_0
|
LD A,CNF_PORT.CNF_0
|
||||||
OUT (SYS_PORT.OFF),A
|
OUT (SYS_PORT.OFF),A
|
||||||
|
|
||||||
ld a,(#FFF0)
|
LD A,(#FFF0) ;!HARDCODE
|
||||||
out (SLOT0),a
|
OUT (SLOT0),A
|
||||||
|
|
||||||
LD B,3 ; IBM_PAL
|
XOR A
|
||||||
LD A,0
|
LD BC,3*256 + BIOS.SET_PAL_INIT ; SET IBM PAL
|
||||||
LD C,#A6 ; SET_standard_PAL
|
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
|
|
||||||
LD A,3 ; OPEN_TXT
|
LD A,Dss.SetVMod.txt80x32 ; OPEN_TXT
|
||||||
LD B,0
|
LD BC,0*256 + Dss.SetVMod
|
||||||
LD C,#50
|
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
|
|
||||||
LD C,#56 ; CLS
|
LD A,#20
|
||||||
LD DE,0
|
LD DE,0
|
||||||
LD HL,#2050
|
LD HL,#2050
|
||||||
LD B,7
|
LD BC,7*256 + Dss.Clear
|
||||||
LD A,#20
|
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
|
|
||||||
LD HL,MSG_ZX_EXIT
|
LD HL,MSG_ZX_EXIT
|
||||||
@ -921,7 +892,7 @@ RESET_TO_ZX:
|
|||||||
cp #1E
|
cp #1E
|
||||||
jr z,EXIT_TO_DSS
|
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
|
OUT (SYS_PORT.ON),A ; System-page on & CNF = 0
|
||||||
|
|
||||||
;-------------[TEST ATARIN]-------------
|
;-------------[TEST ATARIN]-------------
|
||||||
@ -958,19 +929,19 @@ RESET_TO_ZX:
|
|||||||
LD A,(Ret_fn_+2)
|
LD A,(Ret_fn_+2)
|
||||||
XOR B
|
XOR B
|
||||||
LD B,A
|
LD B,A
|
||||||
LD A,Conf_port.RET_PORT
|
LD A,ACEX.RET_PORT
|
||||||
CALL SET_ROM ; ¢ª«îç¨âì ¢®§¢à â
|
CALL SET_ROM ; ¢ª«îç¨âì ¢®§¢à â
|
||||||
|
|
||||||
LD A,CNF_3
|
LD A,CNF_PORT.CNF_3
|
||||||
OUT (SYS_PORT.ON),A ; System-page on & CNF = 3
|
OUT (SYS_PORT.ON),A ; System-page on & CNF = 3
|
||||||
|
|
||||||
XOR A
|
XOR A
|
||||||
OUT (BorderColor),A ; border-0
|
OUT (BorderColor),A ; border-0
|
||||||
OUT (RGADR),A ; Screen-page = 0
|
OUT (RGADR),A ; Screen-page = 0
|
||||||
OUT (RGMOD),A ; Screen-mode-page = 0
|
OUT (RGMOD),A ; Screen-mode-page = 0
|
||||||
LD BC,1FFDh
|
LD BC,#1FFD
|
||||||
OUT (C),A ; Scorpion-port = 0
|
OUT (C),A ; Scorpion-port = 0
|
||||||
LD BC,7FFDh
|
LD BC,#7FFD
|
||||||
OUT (C),A ; pentagon-port = 0
|
OUT (C),A ; pentagon-port = 0
|
||||||
|
|
||||||
LD A,(Int_or_+2)
|
LD A,(Int_or_+2)
|
||||||
@ -978,37 +949,36 @@ RESET_TO_ZX:
|
|||||||
LD A,#FA ; original waits on
|
LD A,#FA ; original waits on
|
||||||
JR NZ,ORIG1
|
JR NZ,ORIG1
|
||||||
LD A,#FE
|
LD A,#FE
|
||||||
ORIG1:
|
ORIG1: LD BC,Port_All_Mode
|
||||||
LD BC,Port_All_Mode
|
|
||||||
OUT (C),A ; ACC-Off
|
OUT (C),A ; ACC-Off
|
||||||
|
|
||||||
LD BC,CBL.SYS_PORT
|
LD BC,CBL.SYS_PORT
|
||||||
LD A,0
|
XOR A
|
||||||
OUT (C),A ; CBL-off
|
OUT (C),A ; CBL-off
|
||||||
|
|
||||||
LD A,#12 ; FDD-720
|
LD A,BIOS.FN_TURBO.VG.OFF ; FDD-720
|
||||||
LD C,BIOS.FN_TURBO
|
LD C,BIOS.FN_TURBO
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
|
|
||||||
;---------------[test!!!!!]-------------
|
;---------------[test!!!!!]-------------
|
||||||
|
;!FIXIT à §à㫨âì ०¨¬ ᯥªâàã¬ à ¡®âã á «î¡ë¬¨ ª « ¬¨ ¨ à §¤¥« ¬¨
|
||||||
|
XOR A ; --> IDE-1
|
||||||
LD C,BIOS.HDD_PART ; IDE-1/IDE-2
|
LD C,BIOS.HDD_PART ; IDE-1/IDE-2
|
||||||
LD A,0 ; --> IDE-1
|
RST ToBIOS_18
|
||||||
RST #18
|
|
||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
|
|
||||||
;******************************
|
;******************************
|
||||||
XOR A ; Set ZX-Palette
|
XOR A
|
||||||
LD B,2
|
LD BC,2*256 + BIOS.SET_PAL_INIT ; Set ZX-Palette
|
||||||
LD C,#A6
|
RST ToBIOS_18
|
||||||
RST 18h
|
|
||||||
|
|
||||||
LD A,(Int_or_+2)
|
LD A,(Int_or_+2)
|
||||||
AND A ; 3
|
AND A ; 3
|
||||||
JR NZ,Original
|
JR NZ,Original
|
||||||
LD A,(Int_sc_+2) ; 1/2
|
LD A,(Int_sc_+2) ; 1/2
|
||||||
Original:
|
Original:
|
||||||
LD C,#F2 ; -> INT for Pentagon or Scorpion
|
LD C,BIOS.FN_SYNC ; -> INT for Pentagon or Scorpion
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
|
|
||||||
LD HL,#4000 ; clear ZX-Spectrum screen
|
LD HL,#4000 ; clear ZX-Spectrum screen
|
||||||
LD DE,#4001
|
LD DE,#4001
|
||||||
@ -1017,49 +987,58 @@ Original:
|
|||||||
LDIR
|
LDIR
|
||||||
|
|
||||||
LD HL,#4104 ; Screen-1
|
LD HL,#4104 ; Screen-1
|
||||||
LD BC,#0480
|
|
||||||
LD E,0
|
LD E,0
|
||||||
RST #18
|
LD BC,4*256 + BIOS.LP_OPEN_S
|
||||||
|
RST ToBIOS_18
|
||||||
|
|
||||||
LD HL,#5104 ; Screen-2
|
LD HL,#5104 ; Screen-2
|
||||||
LD BC,#0480
|
|
||||||
LD E,0
|
LD E,0
|
||||||
RST #18
|
LD BC,4*256 + BIOS.LP_OPEN_S
|
||||||
|
RST ToBIOS_18
|
||||||
|
|
||||||
XOR A
|
XOR A
|
||||||
OUT (RGADR),A
|
OUT (RGADR),A
|
||||||
OUT (RGMOD),A
|
OUT (RGMOD),A
|
||||||
;************************************************
|
;************************************************
|
||||||
; ˆ¨æ¨ «¨§ æ¨ï áâà ¨æ
|
; ˆ¨æ¨ «¨§ æ¨ï áâà ¨æ
|
||||||
|
;!FIXIT ç¥à¥§ äãªæ¨î ¡¨®á ¯®¯à®¡®¢ âì
|
||||||
DI
|
DI
|
||||||
LD A,0
|
|
||||||
OUT (SLOT0),A
|
|
||||||
LD A,5
|
LD A,5
|
||||||
OUT (SLOT1),A
|
OUT (SLOT1),A
|
||||||
|
|
||||||
XOR A
|
XOR A
|
||||||
|
OUT (SLOT0),A
|
||||||
|
|
||||||
LD BC,#1FFD
|
LD BC,#1FFD
|
||||||
OUT (C),A ; #1FFD
|
OUT (C),A ; #1FFD
|
||||||
LD B,#7F
|
LD B,#7F
|
||||||
|
|
||||||
|
;!TEST
|
||||||
|
LD A,8
|
||||||
LOOP_P1:
|
LOOP_P1:
|
||||||
|
DEC A
|
||||||
OUT (C),A ; #7FFD
|
OUT (C),A ; #7FFD
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
INC A
|
|
||||||
CP 8
|
|
||||||
JR NZ,LOOP_P1
|
JR NZ,LOOP_P1
|
||||||
|
|
||||||
|
;OUT (C),A ; #7FFD
|
||||||
|
;OUT (SLOT3),A
|
||||||
|
;INC A
|
||||||
|
;CP 8
|
||||||
|
;JR NZ,LOOP_P1
|
||||||
|
;
|
||||||
|
|
||||||
LD B,#1F
|
LD B,#1F
|
||||||
LD A,#10
|
LD A,#10
|
||||||
OUT (C),A ; #1FFD
|
OUT (C),A ; #1FFD
|
||||||
LD A,8
|
|
||||||
LD B,#7F
|
LD B,#7F
|
||||||
|
LD A,8
|
||||||
LOOP_P2:
|
LOOP_P2:
|
||||||
OUT (C),A ; #7FFD
|
OUT (C),A ; #7FFD
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
INC A
|
INC A
|
||||||
CP 16
|
CP 16
|
||||||
JR NZ,LOOP_P2
|
JR NZ,LOOP_P2
|
||||||
|
|
||||||
XOR A
|
XOR A
|
||||||
OUT (C),A ; #7FFD
|
OUT (C),A ; #7FFD
|
||||||
LD B,#1F
|
LD B,#1F
|
||||||
@ -1102,7 +1081,7 @@ PROG_STARTS:
|
|||||||
LD A,2
|
LD A,2
|
||||||
OUT (SLOT2),A
|
OUT (SLOT2),A
|
||||||
LD A,E
|
LD A,E
|
||||||
OUT (SYS_PORT.OFF),A ; System-port
|
OUT (SYS_PORT.OFF),A
|
||||||
LD A,D
|
LD A,D
|
||||||
AND A
|
AND A
|
||||||
JP Z,0
|
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
|
;/Turbo /Lines312 /Sprinter /7FFD /1FFD /Mem512 /Int-Sc /To-TRDOS /no-run /origin /ret-zx /ret-fn
|
||||||
|
|
||||||
CNF_FILE: db "SPECTRUM.CFG",0
|
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