поддержка TAP, пока самая фонарная

This commit is contained in:
Tolik 2025-10-17 16:26:31 +10:00
parent 4acaf55877
commit e4001a265a
3 changed files with 93 additions and 26 deletions

@ -1 +1 @@
Subproject commit a0e68ce3a19bd47537585e49bfbf5e45fab197a1 Subproject commit a9cc74a9eba4044c35c930159bda0b0dde5d429b

View File

@ -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 - à §¬¥à ä ©«  ¢ ¡ ©â å
@ -832,7 +850,7 @@ RESET_TO_ZX: DI
LD A,7 LD A,7
CALL SET_PAL CALL SET_PAL
; ;
LD A,%0000'0100 ; set custom palette LD A,%0000'0100 ; set custom palette
EX AF,AF' EX AF,AF'
Skip_Load_Palette: Skip_Load_Palette:
EX AF,AF' EX AF,AF'
@ -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
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°; ;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
@ -1066,8 +1132,8 @@ READ_CNF_FILE: LD HL,#C000
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°; ;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
MACRO vROM_LOAD romLine;,pageNumber MACRO vROM_LOAD romLine;,pageNumber
.RomLine = (romLine-1)*2 .RomLine = (romLine-1)*2
LD DE,(ADDRESS_LINES+.RomLine) LD DE,(ADDRESS_LINES+.RomLine)
CALL vROM_LOAD_BIN CALL vROM_LOAD_BIN
ENDM ENDM
; ;
LOAD_vROM_BIN: LD A,#FF LOAD_vROM_BIN: LD A,#FF
@ -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 "¯®-᪮௨®­®¢áª¨"

View File

@ -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: