220 lines
2.4 KiB
Plaintext
220 lines
2.4 KiB
Plaintext
|
|
; LAST UPDATE: 11.03.2025 savelij
|
|
|
|
;[]==========================================================[]
|
|
InitExtention: ;[ ] 07/10/23
|
|
; LD (InitExt.path),HL
|
|
; EX HL,DE
|
|
;
|
|
LD HL,.ExtName1
|
|
LD DE,fn_ext
|
|
CALL InitExt
|
|
LD HL,.ExtName2
|
|
LD DE,fnview_ext
|
|
CALL InitExt
|
|
LD HL,.ExtName3
|
|
LD DE,fnedit_ext
|
|
CALL InitExt
|
|
RET
|
|
|
|
.ExtName1: DZ FILENAME.FN_EXT
|
|
.ExtName2: DZ FILENAME.FNVIEW_EXT
|
|
.ExtName3: DZ FILENAME.FNEDIT_EXT
|
|
.PathEnd: DW 0 ; not used
|
|
|
|
;[]----------------------------------------------------------[]
|
|
InitExt: LD (.EXTdata),DE
|
|
;[ ] 07/10/23
|
|
; .path+1: LD DE,0
|
|
; CALL CopyString
|
|
; LD HL,FlexDIRECTORY
|
|
SPDSS DSSF.OPEN,,1
|
|
RET C
|
|
LD (ExtHandle),A
|
|
LD HL,WorkBuffer
|
|
LD DE,WorkBuffer_Size
|
|
SPDSS DSSF.READ
|
|
RET C
|
|
OR A
|
|
RET P
|
|
LD A,(ExtHandle)
|
|
PUSH DE
|
|
SPDSS DSSF.CLOSE
|
|
POP BC
|
|
LD HL,WorkBuffer
|
|
LD DE,0x0000
|
|
.EXTdata EQU $-2
|
|
EXX
|
|
LD BC,0x03FE
|
|
EXX
|
|
.loop: CALL InitExtLine
|
|
JR NC,.loop
|
|
RET
|
|
|
|
ExtHandle: DEFB 0x00
|
|
|
|
InitExtLine: LD (.InExtSv),DE
|
|
SUB A
|
|
LD (DE),A
|
|
INC DE
|
|
EXX
|
|
DEC BC
|
|
LD A,B
|
|
OR C
|
|
SCF
|
|
EXX
|
|
RET Z
|
|
SUB A
|
|
LD (DE),A
|
|
INC DE
|
|
EXX
|
|
DEC BC
|
|
LD A,B
|
|
OR C
|
|
SCF
|
|
EXX
|
|
RET Z
|
|
DEC HL
|
|
INC BC
|
|
LD IXL,0x04
|
|
.L1: LD A,B
|
|
OR C
|
|
SCF
|
|
RET Z
|
|
EXX
|
|
LD A,B
|
|
OR C
|
|
SCF
|
|
EXX
|
|
RET Z
|
|
INC HL
|
|
DEC BC
|
|
LD A,(HL)
|
|
CP 0x20
|
|
JR C,.L4
|
|
CP '`'
|
|
JR Z,.L4
|
|
CP ':'
|
|
JR Z,.L6
|
|
CP '*'
|
|
JR NZ,.L3
|
|
.L2: LD A,'?'
|
|
LD (DE),A
|
|
INC DE
|
|
DEC IXL
|
|
LD A,IXL
|
|
DEC A
|
|
JR Z,.L1
|
|
EXX
|
|
DEC BC
|
|
LD A,B
|
|
OR C
|
|
SCF
|
|
EXX
|
|
RET Z
|
|
JR .L2
|
|
|
|
.L3: LD (DE),A
|
|
INC DE
|
|
EXX
|
|
DEC BC
|
|
EXX
|
|
DEC IXL
|
|
JR NZ,.L1
|
|
.L4: LD DE,(.InExtSv)
|
|
.L5: LD A,B
|
|
OR C
|
|
SCF
|
|
RET Z
|
|
LD A,(HL)
|
|
INC HL
|
|
DEC BC
|
|
CP 0x0D
|
|
JR NZ,.L5
|
|
LD A,B
|
|
OR C
|
|
SCF
|
|
RET Z
|
|
INC HL
|
|
DEC BC
|
|
LD A,B
|
|
OR C
|
|
RET NZ
|
|
SCF
|
|
RET
|
|
|
|
.L6: DEC IXL
|
|
JR Z,.L8
|
|
.L7: EXX
|
|
LD A,B
|
|
OR C
|
|
SCF
|
|
EXX
|
|
RET Z
|
|
INC DE
|
|
EXX
|
|
DEC BC
|
|
EXX
|
|
DEC IXL
|
|
JR NZ,.L7
|
|
.L8: LD A,B
|
|
OR C
|
|
SCF
|
|
RET Z
|
|
EXX
|
|
LD A,B
|
|
OR C
|
|
SCF
|
|
EXX
|
|
RET Z
|
|
INC HL
|
|
DEC BC
|
|
LD A,(HL)
|
|
CP 0x0D
|
|
JR Z,.L4
|
|
CP 0x09
|
|
JR Z,.L8
|
|
CP 0x20
|
|
JR Z,.L8
|
|
JR C,.L4
|
|
LD (DE),A
|
|
INC DE
|
|
EXX
|
|
DEC BC
|
|
EXX
|
|
.L9: LD A,B
|
|
OR C
|
|
SCF
|
|
RET Z
|
|
EXX
|
|
LD A,B
|
|
OR C
|
|
SCF
|
|
EXX
|
|
RET Z
|
|
INC HL
|
|
DEC BC
|
|
LD A,(HL)
|
|
CP 0x0D
|
|
JR Z,.L10
|
|
CP 0x20
|
|
JR C,.L4
|
|
LD (DE),A
|
|
INC DE
|
|
EXX
|
|
DEC BC
|
|
EXX
|
|
JR .L9
|
|
|
|
.L10: SUB A
|
|
LD (DE),A
|
|
INC DE
|
|
PUSH HL
|
|
LD HL,0x0000
|
|
.InExtSv: EQU $-2
|
|
LD (HL),E
|
|
INC HL
|
|
LD (HL),D
|
|
POP HL
|
|
JR .L5
|