; 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