mirror of
https://github.com/Tolik-Trek/Spectrum.EXE.git
synced 2026-06-15 09:01:38 +03:00
поддержка TAP, пока самая фонарная
This commit is contained in:
parent
4acaf55877
commit
e4001a265a
@ -1 +1 @@
|
|||||||
Subproject commit a0e68ce3a19bd47537585e49bfbf5e45fab197a1
|
Subproject commit a9cc74a9eba4044c35c930159bda0b0dde5d429b
|
||||||
109
spectrum.asm
109
spectrum.asm
@ -390,9 +390,12 @@ READ_IMAGE: LD DE,ONE_FILE
|
|||||||
LD A,(IMAGE_FLAG)
|
LD A,(IMAGE_FLAG)
|
||||||
AND A
|
AND A
|
||||||
JR Z,.Load_TRD
|
JR Z,.Load_TRD
|
||||||
|
;
|
||||||
DEC A ; check if SCL
|
DEC A ; check if SCL
|
||||||
JP Z,Load_SCL
|
JP Z,Load_SCL
|
||||||
|
;
|
||||||
|
DEC A
|
||||||
|
JP Z,LOAD_TAP
|
||||||
;jp Error_Flag ;!!!!!!!!!!!!!!!!
|
;jp Error_Flag ;!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
.Load_TRD: LD A,(IMAGE_HANDLER)
|
.Load_TRD: LD A,(IMAGE_HANDLER)
|
||||||
@ -410,6 +413,21 @@ READ_IMAGE: LD DE,ONE_FILE
|
|||||||
JP Load_IMAGE_File
|
JP Load_IMAGE_File
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
|
|
||||||
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
|
LOAD_TAP: CALL READ_IMAGE.Load_TRD
|
||||||
|
RET C
|
||||||
|
;
|
||||||
|
LD A,SYS_PAGE
|
||||||
|
OUT (SLOT3),A
|
||||||
|
LD A,(Load_IMAGE_File.MEM_BLK)
|
||||||
|
LD (SYS_PAGE.TAP_RAM_BLK),A
|
||||||
|
XOR A
|
||||||
|
LD (SYS_PAGE.TAP_RAM_POINT),A
|
||||||
|
LD A,#C0
|
||||||
|
LD (SYS_PAGE.TAP_RAM_POINT + 1),A
|
||||||
|
RET
|
||||||
|
|
||||||
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
; hl:de - à §¬¥à ä ©« ¢ ¡ ©â å
|
; hl:de - à §¬¥à ä ©« ¢ ¡ ©â å
|
||||||
@ -850,21 +868,51 @@ Skip_Load_Palette:
|
|||||||
JR NZ,Set_Next_Par
|
JR NZ,Set_Next_Par
|
||||||
LD B,#FE
|
LD B,#FE
|
||||||
Set_Next_Par: ; SYS_PORT/CNF_PORT
|
Set_Next_Par: ; SYS_PORT/CNF_PORT
|
||||||
XOR A
|
; XOR A ; Y/N
|
||||||
LD HL,(PARAMS.Turbo+2)
|
; LD HL,(PARAMS.Turbo+2) ; #03 02
|
||||||
ADD A,L
|
; ADD A,L ;
|
||||||
LD HL,(PARAMS.Sprinter+2)
|
; LD HL,(PARAMS.Sprinter+2) ; #04 0C
|
||||||
ADD A,L
|
; ADD A,L ;
|
||||||
LD HL,(PARAMS.P_7FFD+2)
|
; LD C,L
|
||||||
ADD A,L
|
; LD HL,(PARAMS.P_7FFD+2) ; #00 30
|
||||||
LD HL,(PARAMS.P_1FFD+2)
|
; ADD A,L ;
|
||||||
ADD A,L
|
; LD D,L
|
||||||
LD HL,(PARAMS.Mem512+2)
|
; LD HL,(PARAMS.Mem512+2) ; #80 00
|
||||||
ADD A,L
|
; ADD A,L
|
||||||
|
; LD HL,(PARAMS.P_1FFD+2) ; #08 40
|
||||||
|
; ADD A,L ;
|
||||||
|
; LD E,A
|
||||||
|
;
|
||||||
|
XOR A ; Y/N
|
||||||
|
LD HL,PARAMS.P_7FFD+2 ; #14 34
|
||||||
|
OR (HL) ;
|
||||||
|
LD HL,PARAMS.P_1FFD+2 ; #18 40
|
||||||
|
XOR (HL) ;
|
||||||
|
LD HL,PARAMS.Sprinter+2 ; #E7 FF
|
||||||
|
AND (HL) ;
|
||||||
|
;
|
||||||
|
LD HL,PARAMS.Turbo+2 ; #03 02
|
||||||
|
OR (HL) ;
|
||||||
|
LD HL,PARAMS.Mem512+2 ; #80 00
|
||||||
|
OR (HL)
|
||||||
LD E,A
|
LD E,A
|
||||||
; Start ROM
|
; Start ROM
|
||||||
LD HL,(PARAMS.To_trd+2)
|
LD HL,(PARAMS.To_trd+2)
|
||||||
LD D,L
|
; no xFFD ports?
|
||||||
|
CPL
|
||||||
|
AND %0110'0000
|
||||||
|
JR NZ,.xFFD_norm
|
||||||
|
;
|
||||||
|
OR L
|
||||||
|
LD L,5 ; BASIC 48 á § ªàëâ묨 128-¬¨ ¯®àâ ¬¨
|
||||||
|
JR Z,.resPortsBlock
|
||||||
|
;
|
||||||
|
DEC L ; TR-DOS á § ªàëâ묨 128-¬¨ ¯®àâ ¬¨
|
||||||
|
.resPortsBlock: LD A,E
|
||||||
|
AND %1001'1111
|
||||||
|
LD E,A
|
||||||
|
;
|
||||||
|
.xFFD_norm: LD D,L
|
||||||
; vROM & vRAM
|
; vROM & vRAM
|
||||||
LD HL,(ZX_vROM_BLK)
|
LD HL,(ZX_vROM_BLK)
|
||||||
; RESERVED
|
; RESERVED
|
||||||
@ -878,7 +926,8 @@ Set_Next_Par: ; SYS_PORT/CNF_PORT
|
|||||||
JR .di_halt
|
JR .di_halt
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
|
|
||||||
|
ld hl,1
|
||||||
|
or (hl)
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
SET_PAL: LD DE,0
|
SET_PAL: LD DE,0
|
||||||
LD BC,#FF*256 + BIOS.PIC_SET_PAL
|
LD BC,#FF*256 + BIOS.PIC_SET_PAL
|
||||||
@ -1000,11 +1049,24 @@ FIND_FILES: PUSH HL
|
|||||||
; ;
|
; ;
|
||||||
.CHOOSE_FILE: LD A,(HL)
|
.CHOOSE_FILE: LD A,(HL)
|
||||||
AND %1101'1111
|
AND %1101'1111
|
||||||
; TRD file
|
; TAP or TRD?
|
||||||
CP 'T'
|
CP 'T'
|
||||||
|
JR NZ,.not_T
|
||||||
|
;
|
||||||
|
INC HL
|
||||||
|
LD A,(HL)
|
||||||
|
DEC HL
|
||||||
|
AND %1101'1111
|
||||||
|
; TRD file
|
||||||
|
CP 'R'
|
||||||
JR Z,.TRD
|
JR Z,.TRD
|
||||||
|
; TAP file
|
||||||
|
CP 'A'
|
||||||
|
JR Z,.TAP
|
||||||
|
JR .unknown
|
||||||
|
;
|
||||||
; SCL file
|
; SCL file
|
||||||
CP 'S'
|
.not_T: CP 'S'
|
||||||
JR Z,.SCL
|
JR Z,.SCL
|
||||||
; ZX file
|
; ZX file
|
||||||
CP 'Z'
|
CP 'Z'
|
||||||
@ -1018,11 +1080,15 @@ FIND_FILES: PUSH HL
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.SCL: LD DE,IMAGE_FLAG
|
.SCL: LD DE,IMAGE_FLAG
|
||||||
LD A,1
|
LD A,1 ; scl
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
.TRD: LD DE,(X_FILE)
|
.TRD: LD DE,(X_FILE)
|
||||||
LD (IMAGE_NAME),DE
|
LD (IMAGE_NAME),DE
|
||||||
JR .unknown
|
JR .unknown
|
||||||
|
.TAP: LD DE,IMAGE_FLAG
|
||||||
|
LD A,2 ; tap
|
||||||
|
LD (DE),A
|
||||||
|
JR .TRD
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
|
|
||||||
|
|
||||||
@ -1336,6 +1402,7 @@ GET_vRAM_PAGES: CALL .check_params
|
|||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
DJNZ .loop
|
DJNZ .loop
|
||||||
;
|
;
|
||||||
|
AND %1111'1000
|
||||||
LD B,high BIOS.ZX_MEMORY_MANAGER.GetMem.Pent512
|
LD B,high BIOS.ZX_MEMORY_MANAGER.GetMem.Pent512
|
||||||
CP #80
|
CP #80
|
||||||
RET NC
|
RET NC
|
||||||
@ -1533,7 +1600,7 @@ ZX_vRAM_BLK: BYTE 0
|
|||||||
LINE_X: WORD 0
|
LINE_X: WORD 0
|
||||||
X_FILE: WORD 0
|
X_FILE: WORD 0
|
||||||
CNF_NAME: WORD 0
|
CNF_NAME: WORD 0
|
||||||
IMAGE_FLAG: BYTE 0 ; 0 - trd, scl - 1, sna - 2, tap - 3
|
IMAGE_FLAG: BYTE 0 ; 0 - trd, scl - 1, tap - 2, sna - 3
|
||||||
IMAGE_NAME: WORD 0
|
IMAGE_NAME: WORD 0
|
||||||
IMAGE_HANDLER: BYTE 0
|
IMAGE_HANDLER: BYTE 0
|
||||||
SAVE_SLOT3: BYTE 0
|
SAVE_SLOT3: BYTE 0
|
||||||
@ -1548,9 +1615,9 @@ ADDRESS_LINES: BLOCK CFG_FILE_LINES*2,0
|
|||||||
PARAMS:; Y / N ; âãâ § ç¥¨ï ¤«ï ª«î祩 § ¯¨áë¢ îâáï ª ª 16 ¡¨â § 票¥, § ç¨â ®¡à âë© ¯®à冷ª ¡ ©â®¢
|
PARAMS:; Y / N ; âãâ § ç¥¨ï ¤«ï ª«î祩 § ¯¨áë¢ îâáï ª ª 16 ¡¨â § 票¥, § ç¨â ®¡à âë© ¯®à冷ª ¡ ©â®¢
|
||||||
.Turbo: DW ._Turbo, #0302 ; ¢ª«îç¨âì TURBO
|
.Turbo: DW ._Turbo, #0302 ; ¢ª«îç¨âì TURBO
|
||||||
.Lines312 DW ._Lines312, #8000 ; ¢ª«îç¨âì 312 áâப
|
.Lines312 DW ._Lines312, #8000 ; ¢ª«îç¨âì 312 áâப
|
||||||
.Sprinter: DW ._Sprinter, #040C ; ¢ª«îç¨âì Sprinter
|
.Sprinter: DW ._Sprinter, #E7FF ; ¢ª«îç¨âì Sprinter
|
||||||
.P_7FFD: DW ._P_7FFD, #0030 ; ¢ª«îç¨âì 7FFD °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
.P_7FFD: DW ._P_7FFD, #1434 ; ¢ª«îç¨âì 7FFD °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
||||||
.P_1FFD: DW ._P_1FFD, #0040 ; ¢ª«îç¨âì 1FFD °°¥ ¬¥ïâì ¯®à冷ª, ¨á¯®«ì§ã¥âáï ¢ GET_vRAM_PAGES°°
|
.P_1FFD: DW ._P_1FFD, #1840 ; ¢ª«îç¨âì 1FFD °°¥ ¬¥ïâì ¯®à冷ª, ¨á¯®«ì§ã¥âáï ¢ GET_vRAM_PAGES°°
|
||||||
.Mem512: DW ._Mem512, #8000 ; ¢ª«îç¨âì 512k °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
.Mem512: DW ._Mem512, #8000 ; ¢ª«îç¨âì 512k °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
||||||
.To_trd: DW ._To_trd, #0200 ; ¢o©â¨ ¢ TR-DOS
|
.To_trd: DW ._To_trd, #0200 ; ¢o©â¨ ¢ TR-DOS
|
||||||
.Int_sc: DW ._Int_sc, #0102 ; ¢ª«îç¨âì INT "¯®-᪮௨®®¢áª¨"
|
.Int_sc: DW ._Int_sc, #0102 ; ¢ª«îç¨âì INT "¯®-᪮௨®®¢áª¨"
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
sj.insert_define("BUILD_DATE", "'" .. date .. "." .. month .. "." .. year .. "'")
|
sj.insert_define("BUILD_DATE", "'" .. date .. "." .. month .. "." .. year .. "'")
|
||||||
ENDLUA
|
ENDLUA
|
||||||
|
|
||||||
DEFINE SP_VERSION "2.03 beta build"
|
DEFINE SP_VERSION "2.04 beta build"
|
||||||
;
|
;
|
||||||
DEFINE NEED_MIN_DSS_VERSION '1.71.36'
|
DEFINE NEED_MIN_DSS_VERSION '1.71.36'
|
||||||
DSS_MIN_VERS:
|
DSS_MIN_VERS:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user