- плагин доделан, описание/history в cdplayer.txt рядом с плагином. FE 1.09 - исправлено: при выходе из редактора с несохраненным файлом и запросе на сохранение клавиша Enter теперь работает как подтверждение сохранения. FN 1.16 - встроенный editor переехал в плагин откуда и запускается по F4, из FN удален. - встроенный viewer переехал в плагин откуда и запускается по F3, из FN удален. - встроенный help переехал в плагин откуда и запускается при нажатии F1, из FN удален. - загрузка плагина отделена от запуска, теперь можно запускать плагины не только из панели FN. - добавлен макрос формирования заголовка для плагинов. - добавлена поддержка работы плагинов в адреса 0x4000-0x7FFF (окно 1) в дополнение к старым 0xC000-0xBFFF (окно 3), пока используется в плагине cdplayer. - в окнах с ошибкой переделан на 2 типа окон вместо многих под каждую ошибку. - исправлена потеря цвета при печати текста по указанному адресу. - текстовым файлам вернул кодировку CP866, readme.md оставлен в кодировке UTF8.
735 lines
11 KiB
Plaintext
735 lines
11 KiB
Plaintext
|
||
; LAST UPDATE: 24.07.2025 savelij
|
||
|
||
MAX_LEVEL_DIR EQU 21
|
||
|
||
;[]----------------------------------------------------------[]
|
||
ReadTreeR PUSH IY
|
||
POP HL
|
||
LD BC,PANEL.FILES_ALL
|
||
ADD HL,BC
|
||
LD B,PANEL.FILE_MASK - PANEL.FILES_ALL
|
||
.LL1 LD (HL),0
|
||
INC HL
|
||
DJNZ .LL1
|
||
LD HL,BegDIR
|
||
PUSH IY
|
||
SPDSS DSSF.CHDIR
|
||
POP IY
|
||
LD HL,TreeName
|
||
PUSH IY
|
||
SPDSS DSSF.OPEN,,0
|
||
POP IY
|
||
JP NC,LoadTreeR
|
||
; ä ©« á ¤¥à¥¢®¬ ª â «®£®¢ ¥ ©¤¥, ᪠¨à㥬 ¨ á®§¤ ¥¬
|
||
.ScanTree
|
||
GETPORT WINSP.CPU1
|
||
LD C,A
|
||
GETPORT WINSP.CPU3
|
||
LD B,A
|
||
PUSH BC
|
||
LD A,(RAMPAGES.BuffPg3)
|
||
SETPORT WINSP.CPU1,,0
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L1
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L1
|
||
SETPORT WINSP.CPU3,,0
|
||
PUSH IY
|
||
MAKEWINDOW WINSUBOBJ.STORE
|
||
W_MAIN 240,96,160,40
|
||
W_FILL 4,2,152,10,COLORI.BLACK
|
||
W_TEXT 44,3,COLORI.WHITE,"Scanning tree"
|
||
W_TEXT 32,20,COLORP.HIGHGRAY,"Directories:"
|
||
W_END
|
||
LD (.TreeSP1),SP
|
||
SUB A
|
||
LD (CurTree),A
|
||
LD SP,STACKTREE
|
||
LD HL,0
|
||
PUSH HL
|
||
LD (LoadItemDIRR.CurTAdr),HL
|
||
LD HL,CPU3 + TreeHead_Size
|
||
LD (EndTree),HL
|
||
LD B,0x10
|
||
SUB A
|
||
.L2 LD (HL),A
|
||
INC HL
|
||
DJNZ .L2
|
||
LD HL,1
|
||
LD (TreeDIRS),HL
|
||
CALL LoadItemDIRR
|
||
JR NC,.TreeExit ; NC - ¥â ¤¨à¥ªâ®à¨©
|
||
.TreeLoop PUSH HL
|
||
SPDSS DSSF.SCANKEY
|
||
LD A,E
|
||
SUB 0x1B
|
||
POP HL
|
||
JP Z,AbortTree
|
||
LD A,(CurTree)
|
||
INC A
|
||
CP MAX_LEVEL_DIR
|
||
JR Z,.DIRSend
|
||
LD (CurTree),A
|
||
LD DE,(TreeDIRS)
|
||
BIT 2,D ; DE >= 1024
|
||
JR NZ,.TreeExit
|
||
PUSH HL
|
||
LD A,(HL)
|
||
OR A
|
||
JR Z,.DIRSend
|
||
LD (LoadItemDIRR.CurTAdr),HL
|
||
SPDSS DSSF.CHDIR
|
||
CALL LoadItemDIRR
|
||
JR C,.TreeLoop ; C - ¥áâì ¤¨à¥ªâ®à¨¨
|
||
.DIRSend
|
||
SPDSS DSSF.SCANKEY
|
||
LD A,E
|
||
SUB 0x1B
|
||
JP Z,AbortTree
|
||
POP HL
|
||
LD A,H
|
||
OR L
|
||
JR Z,.TreeExit
|
||
PUSH HL
|
||
LD HL,CurTree
|
||
DEC (HL)
|
||
LD HL,UpDIR
|
||
SPDSS DSSF.CHDIR
|
||
POP HL
|
||
LD DE,0x000F
|
||
ADD HL,DE
|
||
LD A,(HL)
|
||
INC HL
|
||
INC A
|
||
JR NZ,.TreeLoop
|
||
JR .DIRSend
|
||
|
||
.TreeExit
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
LD SP,STACKTREE
|
||
LD IX,0
|
||
PUSH IX
|
||
LD HL,CPU1
|
||
LD DE,TreeHead
|
||
LD BC,TreeHead_Size
|
||
EX DE,HL
|
||
LDIR ; § ¥á«¨ § £®«®¢®ª ¤¥à¥¢ ª â «®£®¢ FN
|
||
LD HL,(TreeDIRS)
|
||
DEC HL
|
||
LD A,H
|
||
OR L
|
||
JR Z,.TreeExit1
|
||
LD HL,CPU3 + TreeHead_Size
|
||
.TreeEndLp INC IXL
|
||
PUSH HL
|
||
PUSH DE
|
||
LD A,IXL
|
||
CP IXH
|
||
JR C,.L3
|
||
LD IXH,A
|
||
.L3 LD (DE),A
|
||
INC DE
|
||
SUB A
|
||
LD (DE),A
|
||
INC DE
|
||
LD BC,0x000C
|
||
LDIR
|
||
LD (DE),A
|
||
INC DE
|
||
LD (DE),A
|
||
INC DE
|
||
INC HL
|
||
LD C,(HL)
|
||
INC HL
|
||
LD B,(HL)
|
||
INC HL
|
||
LD A,(HL)
|
||
AND 0x80
|
||
POP HL
|
||
OR (HL)
|
||
LD (HL),A
|
||
LD L,C
|
||
LD H,B
|
||
LD A,H
|
||
OR L
|
||
JR NZ,.TreeEndLp
|
||
.TreeEndLp1 DEC IXL
|
||
POP HL
|
||
LD A,H
|
||
OR L
|
||
JR Z,.TreeExit1
|
||
LD BC,0x000F
|
||
ADD HL,BC
|
||
LD A,(HL)
|
||
INC HL
|
||
INC A
|
||
JR NZ,.TreeEndLp
|
||
JR .TreeEndLp1
|
||
|
||
.TreeExit1 LD (EndTree),DE
|
||
DEC DE
|
||
LD A,0xFF
|
||
LD (DE),A
|
||
LD SP,0
|
||
.TreeSP1 EQU $-2
|
||
POP IY
|
||
RES VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG)
|
||
LD A,IXH
|
||
CP 0x0B
|
||
JR C,.L4
|
||
SET VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG)
|
||
.L4
|
||
GETPORT WINSP.CPU3
|
||
LD (RAMPAGES.BuffPg3),A
|
||
GETPORT WINSP.CPU1
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD HL,RAMPAGES.LEFTPANEL
|
||
JR Z,.L5
|
||
LD HL,RAMPAGES.RIGHTPANEL
|
||
.L5 LD (HL),A
|
||
WINDOWCLOSE
|
||
POP BC
|
||
LD A,B
|
||
SETPORT WINSP.CPU3,,0
|
||
LD A,C
|
||
SETPORT WINSP.CPU1,,0
|
||
LD HL,(TreeDIRS)
|
||
LD (IY+PANEL.FILES_ALL),L ; EQUIP FIL
|
||
LD (IY+PANEL.FILES_ALL + 1),H
|
||
PUSH IY
|
||
GETPORT WINSP.CPU3
|
||
PUSH AF
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L6
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L6
|
||
SETPORT WINSP.CPU3,,0
|
||
LD HL,BegDIR
|
||
SPDSS DSSF.CHDIR
|
||
LD HL,TreeName
|
||
SPDSS DSSF.CREATE,,0
|
||
JR C,.TreeErr
|
||
PUSH AF
|
||
LD HL,CPU3
|
||
LD DE,(EndTree)
|
||
RES 6,D
|
||
SPDSS DSSF.WRITE
|
||
POP AF
|
||
SPDSS DSSF.CLOSE
|
||
.TreeErr LD A,1
|
||
LD (CPU3 + 1),A
|
||
POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
POP IY
|
||
JP LoadTreeR.TreeOkey
|
||
|
||
; § £à㧪 ¤¥à¥¢ ª â «®£®¢ ¨§ ä ©«
|
||
LoadTreeR EX AF,AF'
|
||
PUSH IY
|
||
GETPORT WINSP.CPU3
|
||
PUSH AF
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L1
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L1
|
||
SETPORT WINSP.CPU3,,0
|
||
EX AF,AF'
|
||
PUSH AF
|
||
LD HL,CPU3
|
||
LD DE,0x4000
|
||
SPDSS DSSF.READ
|
||
EX AF,AF'
|
||
LD HL,CPU3
|
||
LD DE,WorkBuffer
|
||
LD BC,0x0010
|
||
LDIR
|
||
POP AF
|
||
SPDSS DSSF.CLOSE
|
||
POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
POP IY
|
||
EX AF,AF'
|
||
JP C,ReadTreeR.ScanTree ; Error
|
||
LD HL,WorkBuffer + 2
|
||
LD DE,TreeHead + 2
|
||
LD B,TreeHead_Size - 3
|
||
.L2 LD A,(DE)
|
||
CP (HL)
|
||
JP NZ,ReadTreeR.ScanTree ; Error
|
||
INC HL
|
||
INC DE
|
||
DJNZ .L2
|
||
GETPORT WINSP.CPU3
|
||
PUSH AF
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L3
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L3
|
||
SETPORT WINSP.CPU3,,0
|
||
LD HL,CPU3
|
||
LD DE,0x000E
|
||
LD BC,0
|
||
LD IXH,0
|
||
.LoadTr1 LD A,(HL)
|
||
AND 0x7F
|
||
CP IXH
|
||
JR C,.L4
|
||
LD IXH,A
|
||
.L4 INC HL
|
||
LD (HL),0
|
||
INC BC
|
||
ADD HL,DE
|
||
LD A,(HL)
|
||
INC HL
|
||
INC A
|
||
JR NZ,.LoadTr1
|
||
RES VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG)
|
||
LD A,IXH
|
||
CP 0x0B
|
||
JR C,.L5
|
||
SET VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG)
|
||
.L5 LD (IY+PANEL.FILES_ALL),C ; EQUIP FILES
|
||
LD (IY+PANEL.FILES_ALL + 1),B
|
||
BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG)
|
||
LD A,1
|
||
JR NZ,.L6
|
||
LD A,3
|
||
.L6 LD (CPU3 + 1),A
|
||
POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
.TreeOkey PUSH IY
|
||
POP HL
|
||
LD DE,PANEL.CURR_PATH
|
||
ADD HL,DE
|
||
INC HL
|
||
INC HL
|
||
JP FindTreeDIRR
|
||
|
||
AbortTree LD SP,(ReadTreeR.TreeSP1)
|
||
POP IY
|
||
POP BC
|
||
LD A,B
|
||
SETPORT WINSP.CPU3,,0
|
||
LD A,C
|
||
SETPORT WINSP.CPU1,,0
|
||
RES VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG)
|
||
RES VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
WINDOWCLOSE
|
||
LD HL,InitPanels
|
||
EX (SP),HL
|
||
SUB A
|
||
RET
|
||
|
||
TreeName DZ FILENAME.FNTREE_FLN
|
||
TreeHead DB 0,0,0x5C,0,0,0,0xAE,"FlexTree",0
|
||
TreeHead_Size EQU $ - TreeHead
|
||
BegDIR DB 0x5C,0
|
||
UpDIR DB "..",0
|
||
CurTree DB 0
|
||
TreeDIRS DW 0 ; ª®«¨ç¥á⢮ ©¤¥ëå ¤¨à
|
||
EndTree DW 0 ; ⥪ã騩 ¤à¥á ¢ â ¡«¨æ¥ ¤¨à¥ªâ®à¨©
|
||
|
||
; ç⥨¥ ®¯¨á ⥫¥© ¤¨à¥ªâ®à¨©
|
||
LoadItemDIRR: LD DE,(EndTree)
|
||
PUSH DE
|
||
LD IX,0
|
||
LD HL,NORMmask
|
||
LD DE,WorkBuffer
|
||
LD A,(FileAtribut)
|
||
AND DIR.M_Archive + \
|
||
DIR.M_Dir + \
|
||
DIR.M_System + \
|
||
DIR.M_Hidden + \
|
||
DIR.M_ReadOnly
|
||
PUSH IX
|
||
PUSH DE
|
||
SPDSS DSSF.F_FIRST,1
|
||
POP HL
|
||
POP IX
|
||
JR C,.FndFLtrE ; ¨ç¥£® ¥ ©¤¥®? ¢ë室
|
||
.FndFLtr LD A,(WorkBuffer + 0x20)
|
||
AND DIR.M_Dir ; íâ® ¤¨à ?
|
||
CALL NZ,.ADD_DIR ; ¥á«¨ ¤ â® ¤®¡ ¢«ï¥¬
|
||
JR C,.FndFLtrE ; ®è¨¡ª ¤®¡ ¢«¥¨ï? ¢ë室¨¬
|
||
; ç¨â ¥¬ á«¥¤ãî騩 ®¯¨á ⥫ì
|
||
LD DE,WorkBuffer
|
||
PUSH IX
|
||
PUSH DE
|
||
SPDSS DSSF.F_NEXT
|
||
POP HL
|
||
POP IX
|
||
JR NC,.FndFLtr
|
||
; § ¢¥à襨¥ á®§¤ ¨ï ¤¥à¥¢
|
||
.FndFLtrE LD HL,(EndTree)
|
||
DEC HL
|
||
LD (HL),0xFF
|
||
LD C,IXL
|
||
LD B,IXH
|
||
LD HL,(TreeDIRS)
|
||
ADD HL,BC
|
||
LD (TreeDIRS),HL
|
||
POP HL
|
||
LD A,B
|
||
OR C
|
||
RET Z
|
||
PUSH HL
|
||
CALL .PRT_NUM_DIR ; ®¡®¢«ï¥¬ ª®«¨ç¥á⢮ ©¤¥ëå ¤¨à
|
||
POP HL
|
||
LD DE,0
|
||
.CurTAdr EQU $-2
|
||
LD A,D
|
||
OR E
|
||
SCF
|
||
RET Z
|
||
EX DE,HL
|
||
LD BC,0x000D
|
||
ADD HL,BC
|
||
LD (HL),E
|
||
INC HL
|
||
LD (HL),D
|
||
EX DE,HL
|
||
SCF
|
||
RET
|
||
|
||
; § ¥á¥¨¥ ¢ â ¡«¨æã í«¥¬¥â ¤¨à¥ªâ®à¨¨
|
||
.ADD_DIR EX DE,HL
|
||
LD HL,(EndTree)
|
||
LD BC,0x0010
|
||
ADD HL,BC
|
||
SBC HL,BC
|
||
EX DE,HL
|
||
RET C
|
||
LD BC,FFIRST.Name
|
||
ADD HL,BC
|
||
LD A,(HL)
|
||
CP '.' ; ¯¥à¢ë© ᨬ¢®« ¨¬¥¨ â®çª ?
|
||
RET Z
|
||
LD C,0x10 ; ¤«¨ í«¥¬¥â ¢ â ¡«¨æ¥
|
||
SUB A
|
||
; ¯¥à¥®á ¨¬¥¨ ¤® 0
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
LD B,C
|
||
; ®áâ ⮪ § ¯®«ï¥¬ ã«¥¬
|
||
.L2 LD (DE),A
|
||
INC DE
|
||
DJNZ .L2
|
||
LD (EndTree),DE
|
||
INC IX
|
||
RET
|
||
|
||
; ª®¢¥àá¨ï ¨ ¯¥ç âì ç¨á« ª®«¨ç¥á⢠¤¨à¥ªâ®à¨© ¢ ¤¥à¥¢¥
|
||
.PRT_NUM_DIR LD HL,(TreeDIRS)
|
||
DEC HL
|
||
LD DE,.CurDNumb
|
||
PUSH DE
|
||
LD B,4
|
||
LD A,' '
|
||
.L3 LD (DE),A
|
||
INC DE
|
||
DJNZ .L3
|
||
POP DE
|
||
EXX
|
||
LD C,0
|
||
EXX
|
||
LD BC,1000 ; 1'000
|
||
CALL .GetN16
|
||
LD BC,100 ; 100
|
||
CALL .GetN16
|
||
LD BC,10 ; 10
|
||
CALL .GetN16
|
||
LD A,L
|
||
ADD A,'0'
|
||
LD (DE),A
|
||
LD HL,.CurDNumb
|
||
LD DE,336 ; X pos
|
||
LD BC,116 ; Y pos
|
||
LD A,COLORP.HIGHGRAY
|
||
JP PrnTxtLnIFF
|
||
|
||
.GetN16 LD A,'0' - 1
|
||
OR A
|
||
.L4 INC A
|
||
SBC HL,BC
|
||
JR NC,.L4
|
||
ADD HL,BC
|
||
CP '0'
|
||
JR Z,.L5
|
||
EXX
|
||
SET 0,C
|
||
EXX
|
||
.L5 EXX
|
||
BIT 0,C
|
||
EXX
|
||
RET Z
|
||
LD (DE),A
|
||
INC DE
|
||
RET
|
||
|
||
.CurDNumb DEFB " ",0
|
||
|
||
;[]=========================================================[]
|
||
TestTreeR BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
RET Z
|
||
LD B,0x28
|
||
.TstTree PUSH BC
|
||
SPMOUSE MOUSEF.READ_STATE
|
||
POP BC
|
||
OR A
|
||
RET NZ
|
||
PUSH BC
|
||
SPDSS DSSF.TESTKEY
|
||
POP BC
|
||
RET NZ
|
||
HALT
|
||
DJNZ .TstTree
|
||
IFNDEF TREE_DIR_ENTER
|
||
LD A,E
|
||
CP 0x0D ; ᬥ ¤¨à¥ªâ®à¨¨ ¨§ ¤¥à¥¢ ⮫쪮 ¯® ENTER
|
||
RET NZ
|
||
ENDIF
|
||
.TestTreeBeg
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L14
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L14
|
||
SETPORT WINSP.CPU1,,0
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
LD L,(IY+PANEL.FIRST_FILE)
|
||
LD H,(IY+PANEL.FIRST_FILE + 1)
|
||
LD E,(IY+PANEL.CURR_FILE)
|
||
LD D,(IY+PANEL.CURR_FILE + 1)
|
||
ADD HL,DE
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
SET 6,H
|
||
INC HL
|
||
BIT 0,(HL)
|
||
JR NZ,.L2
|
||
EX DE,HL
|
||
LD HL,CPU1
|
||
LD BC,0x000E
|
||
.L1 INC HL
|
||
RES 0,(HL)
|
||
ADD HL,BC
|
||
LD A,(HL)
|
||
INC HL
|
||
INC A
|
||
JR NZ,.L1
|
||
EX DE,HL
|
||
SET 0,(HL)
|
||
CALL PrintDIR
|
||
CALL SetInvert
|
||
CALL MakeTreePathR
|
||
PUSH IY
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD IY,RightPanel
|
||
JR Z,.L3
|
||
LD IY,LeftPanel
|
||
.L3 CALL NewDIRECTORY
|
||
POP IY
|
||
.L2 POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
RET
|
||
|
||
;[]==========================================================[]
|
||
MakeTreePathR
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L5
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L5
|
||
SETPORT WINSP.CPU1,,0
|
||
LD L,(IY+PANEL.FIRST_FILE)
|
||
LD H,(IY+PANEL.FIRST_FILE + 1)
|
||
LD E,(IY+PANEL.CURR_FILE)
|
||
LD D,(IY+PANEL.CURR_FILE + 1)
|
||
ADD HL,DE
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
SET 6,H
|
||
LD DE,WorkBuffer+0xFF
|
||
LD BC,0x0010
|
||
SUB A
|
||
LD (DE),A
|
||
DEC DE
|
||
LD A,(HL)
|
||
OR A
|
||
JR Z,.L4
|
||
AND 0x7F
|
||
INC A
|
||
LD IXL,A
|
||
ADD HL,BC
|
||
INC DE
|
||
.L3 SBC HL,BC
|
||
PUSH HL
|
||
LD A,(HL)
|
||
INC HL
|
||
AND 0x7F
|
||
CP IXL
|
||
JR NC,.L2
|
||
LD IXL,A
|
||
LD B,0xFF
|
||
SUB A
|
||
.L6 INC B
|
||
INC HL
|
||
CP (HL)
|
||
JR NZ,.L6
|
||
.L1 DEC HL
|
||
DEC DE
|
||
LD A,(HL)
|
||
LD (DE),A
|
||
DJNZ .L1
|
||
DEC DE
|
||
LD A,'\\'
|
||
LD (DE),A
|
||
.L2 POP HL
|
||
LD A,(HL)
|
||
AND 0x7F
|
||
CP 2
|
||
JR NC,.L3
|
||
.L4 EX DE,HL
|
||
LD (HL),'\\'
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
RET
|
||
|
||
;[]==========================================================[]
|
||
FindTreeDIRR
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
LD IX,LeftPanel
|
||
BIT VIEWFLAG.B_TREE,(IX+PANEL.VIEWFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR NZ,.L14
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L14
|
||
SETPORT WINSP.CPU1,,0
|
||
LD DE,CPU1
|
||
LD BC,0
|
||
.L1 LD A,(DE)
|
||
AND 0x7F
|
||
LD IXL,A
|
||
.L2 PUSH HL
|
||
PUSH DE
|
||
LD A,(DE)
|
||
AND 0x7F
|
||
CP IXL
|
||
JR NZ,.L4
|
||
INC DE
|
||
INC DE
|
||
.L3 LD A,(DE)
|
||
CP (HL)
|
||
JR NZ,.L4
|
||
INC HL
|
||
INC DE
|
||
LD A,(DE)
|
||
OR A
|
||
JR Z,.L6
|
||
LD A,(HL)
|
||
CP '\\'
|
||
JR NZ,.L3
|
||
.L4 POP HL
|
||
LD DE,0x000F
|
||
ADD HL,DE
|
||
EX DE,HL
|
||
POP HL
|
||
INC BC
|
||
LD A,(DE)
|
||
INC DE
|
||
INC A
|
||
JR NZ,.L2
|
||
.L5 POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
SCF
|
||
RET
|
||
|
||
.L6 LD A,IXL
|
||
OR A
|
||
JR Z,.L7
|
||
LD A,(HL)
|
||
INC HL
|
||
CP '\\'
|
||
JR Z,.L7
|
||
DEC HL
|
||
OR A
|
||
JR NZ,.L4
|
||
.L7 POP DE
|
||
INC SP
|
||
INC SP
|
||
LD A,E
|
||
ADD A,0x0F
|
||
LD E,A
|
||
JR NC,.L15
|
||
INC D
|
||
.L15 INC BC
|
||
LD A,(HL)
|
||
OR A
|
||
JR Z,.L8
|
||
LD A,(DE)
|
||
INC DE
|
||
INC A
|
||
JR Z,.L5
|
||
JR .L1
|
||
|
||
.L8 DEC BC
|
||
PUSH BC
|
||
LD HL,CPU1
|
||
LD BC,0x000E
|
||
.L9 INC HL
|
||
LD (HL),B
|
||
ADD HL,BC
|
||
LD A,(HL)
|
||
INC HL
|
||
INC A
|
||
JR NZ,.L9
|
||
POP HL
|
||
LD A,E
|
||
SUB 0x0E
|
||
LD E,A
|
||
JR NC,.L10
|
||
DEC D
|
||
.L10 LD IX,LeftPanel
|
||
BIT VIEWFLAG.B_TREE,(IX+PANEL.VIEWFLAG)
|
||
JR NZ,.L11
|
||
LD IX,RightPanel
|
||
.L11 BIT PANELFLAG.B_PRNDOSPATH,(IX+PANEL.PANELFLAG)
|
||
LD A,1
|
||
JR NZ,.L12
|
||
LD A,3
|
||
.L12 LD (DE),A
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
LD E,L
|
||
LD D,H
|
||
LD BC,4
|
||
OR A
|
||
SBC HL,BC
|
||
JR NC,.L13
|
||
LD HL,0
|
||
.L13 LD (IX+PANEL.FIRST_FILE),L
|
||
LD (IX+PANEL.FIRST_FILE + 1),H
|
||
EX DE,HL
|
||
OR A
|
||
SBC HL,DE
|
||
LD (IX+PANEL.CURR_FILE),L
|
||
LD (IX+PANEL.CURR_FILE + 1),H
|
||
OR A
|
||
RET
|