2425 lines
40 KiB
Plaintext
2425 lines
40 KiB
Plaintext
|
||
; LAST UPDATE: 16.05.2025 savelij
|
||
|
||
;[]==========================================================[]
|
||
CopyFilesR LD A,(IY + PANEL.EFL)
|
||
OR (IY + PANEL.EFH)
|
||
RET Z
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
RET NZ
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
LD A,(IY + PANEL.MFL)
|
||
OR (IY + PANEL.MFH)
|
||
JR NZ,CopyMark
|
||
; ª®¯¨à®¢ ¨¥ ä ©« /¤¨àë ¯®¤ ªãàá®à®¬
|
||
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
|
||
LD IX,WorkBuffer
|
||
LD L,(IY + PANEL.FFL)
|
||
LD H,(IY + PANEL.FFH)
|
||
LD E,(IY + PANEL.CFL)
|
||
LD D,(IY + PANEL.CFH)
|
||
ADD HL,DE
|
||
ADD HL,HL ; *2
|
||
ADD HL,HL ; *4
|
||
ADD HL,HL ; *8
|
||
LD E,L
|
||
LD D,H
|
||
ADD HL,HL ; *10
|
||
ADD HL,DE ; *18
|
||
SET 6,H
|
||
SET 7,H ; | 0xC000
|
||
LD (AdrCopyFile),HL
|
||
LD DE,WorkBuffer
|
||
LD BC,FileHDR.SIZE
|
||
LDIR
|
||
POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
BIT DIR.B_Dir,(IX + FileHDR.Attr)
|
||
IF MARK_DIR
|
||
JP NZ,COPY_DIR
|
||
ELSE
|
||
RET NZ
|
||
ENDIF
|
||
LD HL,0
|
||
LD (ECopyFiles),HL
|
||
LD L,(IX + FileHDR.SizeBytes)
|
||
LD H,(IX + FileHDR.SizeBytes + 1)
|
||
LD (ECopyBytes),HL
|
||
LD E,(IX + FileHDR.SizeBytes + 2)
|
||
LD D,(IX + FileHDR.SizeBytes + 3)
|
||
LD (ECopyBytes + 2),DE
|
||
CALL ConvLenToBank
|
||
JP CopyNxt
|
||
|
||
IF MARK_DIR
|
||
; ª®¯¨à®¢ ¨¥ ¤¨àë á® ¢á¥¬ ᮤ¥à¦¨¬ë¬
|
||
COPY_DIR PUSH IX
|
||
PUSH IY
|
||
CALL RESIDENT.GetDirSize ; ¯à®¬¥à塞 ¤¨àã ¯® à §¬¥àã
|
||
LD HL,FileHDR.SizeBytes
|
||
CALL SET_DWORD ; § ¥á«¨ à §¬¥à ¤¨àë ¢ ¡ ©â å ¢ ®¯¨á ⥫ì
|
||
LD HL,0
|
||
LD (ECopyFiles),HL
|
||
EX DE,HL
|
||
LD D,B
|
||
LD E,C
|
||
CALL ConvLenToBank
|
||
|
||
POP IY
|
||
POP IX
|
||
RET
|
||
ENDIF
|
||
|
||
; ª®¯¨à®¢ ¨¥ ¯®¬¥ç¥ëå ä ©«®¢
|
||
CopyMark LD L,(IY + PANEL.MFL)
|
||
LD H,(IY + PANEL.MFH)
|
||
LD (ECopyFiles),HL
|
||
LD L,(IY + PANEL.MBL1)
|
||
LD H,(IY + PANEL.MBH1)
|
||
LD (ECopyBytes),HL
|
||
LD L,(IY + PANEL.MBL2)
|
||
LD H,(IY + PANEL.MBH2)
|
||
LD (ECopyBytes + 2),HL
|
||
; [ ] fat32
|
||
LD A,(IY + PANEL.MBL3)
|
||
LD (ECopyBytes + 4),A
|
||
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
|
||
LD HL,CPU3 - FileHDR.SIZE
|
||
LD BC,FileHDR.SIZE
|
||
.L2 ADD HL,BC
|
||
BIT FileHDR.B_MARK,(HL)
|
||
JR Z,.L2
|
||
LD (AdrCopyFile),HL
|
||
PUSH HL
|
||
POP IX
|
||
SUB A
|
||
LD L,A
|
||
LD H,A
|
||
LD E,L
|
||
LD D,H
|
||
CopyLp0 BIT FileHDR.B_MARK,(IX + FileHDR.Flag)
|
||
JR Z,CopyNx2
|
||
PUSH BC
|
||
PUSH DE
|
||
PUSH HL
|
||
LD L,(IX + FileHDR.SizeBytes)
|
||
LD H,(IX + FileHDR.SizeBytes + 1)
|
||
LD E,(IX + FileHDR.SizeBytes + 2)
|
||
LD D,(IX + FileHDR.SizeBytes + 3)
|
||
CALL ConvLenToBank
|
||
LD C,L
|
||
LD B,H
|
||
POP HL
|
||
ADD HL,BC
|
||
LD C,E
|
||
LD B,D
|
||
POP DE
|
||
EX DE,HL
|
||
ADC HL,BC
|
||
EX DE,HL
|
||
POP BC
|
||
CopyNx2 ADD IX,BC
|
||
LD A,(IX + FileHDR.Name)
|
||
OR A
|
||
JR NZ,CopyLp0
|
||
POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
CopyNxt LD IX,ProcessAll
|
||
ADD HL,HL
|
||
EX DE,HL
|
||
ADC HL,HL
|
||
EX DE,HL
|
||
LD (IX + PROC.MAXL1),L
|
||
LD (IX + PROC.MAXH1),H
|
||
LD (IX + PROC.MAXL2),E
|
||
LD (IX + PROC.MAXH2),D
|
||
CALL InitProcess
|
||
CALL ResInvert
|
||
LD HL,SetInvert
|
||
PUSH HL
|
||
; § ¯à®á ¯ã⨠ª®¯¨à®¢ ¨ï
|
||
MAKEWINDOW WINSUBOBJ.STORE
|
||
W_MAIN 96,81,448,62
|
||
W_FILL 4,2,440,10,COLORI.BLACK
|
||
W_TEXT 210,3,COLORI.WHITE,"Copy"
|
||
W_BUTTON 144,42,72,14
|
||
W_TEXT 172,45,COLORP.HIGHGRAY,"Ok"
|
||
W_BUTTON 232,42,72,14
|
||
W_TEXT 252,45,COLORP.HIGHGRAY,"Cancel"
|
||
W_TEXT 22,25,COLORP.HIGHGRAY,"Copy to:"
|
||
W_BORDER 70,22,332,12
|
||
W_FILL 72,23,328,10,COLORI.WHITE
|
||
W_END
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD HL,LeftPanel
|
||
JR NZ,.L1
|
||
LD HL,RightPanel
|
||
.L1 LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
LD DE,CurPath
|
||
SUB A
|
||
LD C,A
|
||
.L2 LDI
|
||
CP (HL)
|
||
JR NZ,.L2
|
||
LD (DE),A
|
||
SUB A
|
||
SUB C
|
||
LD (PathLen),A
|
||
LD IX,PathStr
|
||
LD HL,PathTab
|
||
CALL InputLine
|
||
WINDOWCLOSE
|
||
RET C
|
||
LD A,(PathLen)
|
||
OR A
|
||
RET Z
|
||
PUSH IY
|
||
SPDSS DSSF.INFOMEM
|
||
POP IY
|
||
LD (FreeBanks),BC
|
||
LD A,B
|
||
OR C
|
||
LD A,ERR_DSS.NOT_ENOUGH_MEMORY
|
||
JP Z,DOSError ;!!!!!!!!!!!! <20>¥â ¯ ¬ïâ¨
|
||
; ¨¤¨ª æ¨ï ¯à®æ¥áá ª®¯¨à®¢ ¨ï
|
||
MAKEWINDOW WINSUBOBJ.STORE
|
||
W_MAIN 160,81,320,78
|
||
W_FILL 4,2,312,10,COLORI.BLACK
|
||
W_TEXT 148,3,COLORI.WHITE,"Copy"
|
||
W_TEXT 8,16,COLORP.HIGHGRAY,"From:"
|
||
W_TEXT 22,26,COLORP.HIGHGRAY,"to:"
|
||
W_BORDER 16,38,288,12
|
||
W_FILL 18,39,284,10,COLORI.WHITE
|
||
W_BORDER 16,56,288,12
|
||
W_FILL 18,57,284,10,COLORI.WHITE
|
||
W_END
|
||
SUB A
|
||
LD (OverWriteFlg),A
|
||
LD HL,LeftPanel
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
JR Z,.L4
|
||
LD HL,RightPanel
|
||
.L4 LD BC,PANEL.CURRPATH
|
||
ADD HL,BC
|
||
LD (CopyFrom),HL
|
||
LD HL,CurPath
|
||
LD (CopyTo),HL
|
||
CALL SetClock
|
||
PUSH IY
|
||
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
|
||
CopyNextFile CALL PrnFromTo
|
||
LD IX,(AdrCopyFile)
|
||
LD L,(IX + FileHDR.SizeBytes)
|
||
LD H,(IX + FileHDR.SizeBytes + 1)
|
||
LD E,(IX + FileHDR.SizeBytes + 2)
|
||
LD D,(IX + FileHDR.SizeBytes + 3)
|
||
LD (ReadLen),HL
|
||
LD (ReadLen + 2),DE
|
||
LD (WriteLen),HL
|
||
LD (WriteLen + 2),DE
|
||
CALL ConvLenToBank
|
||
LD (.FileBnL),HL
|
||
LD (.FileBnH),DE
|
||
LD IX,ProcessOne
|
||
ADD HL,HL
|
||
EX DE,HL
|
||
ADC HL,HL
|
||
EX DE,HL
|
||
LD (IX + PROC.MAXL1),L
|
||
LD (IX + PROC.MAXH1),H
|
||
LD (IX + PROC.MAXL2),E
|
||
LD (IX + PROC.MAXH2),D
|
||
CALL InitProcess
|
||
CALL PrnProcess
|
||
LD HL,(FreeBanks)
|
||
LD DE,0x0000
|
||
.FileBnH EQU $-2
|
||
LD A,D
|
||
OR E
|
||
JR NZ,.CopyLp1
|
||
LD DE,0x0000
|
||
.FileBnL EQU $-2
|
||
OR A
|
||
SBC HL,DE
|
||
JR NC,.L1
|
||
ADD HL,DE
|
||
.CopyLp1 EX DE,HL
|
||
.L1 LD B,E
|
||
SPDSS DSSF.GETMEM
|
||
LD (MemIndef),A
|
||
LD HL,PagesList
|
||
SPBIOS BIOSF.GETMEMBLKPAGES
|
||
LD HL,(CopyFrom) ;Žâªàë¢ ¥¬ ä ©« ¨áâ®ç¨ª
|
||
SPDSS DSSF.CHDIR
|
||
JP C,CopyError1
|
||
LD HL,(AdrCopyFile)
|
||
INC HL
|
||
LD DE,WorkBuffer
|
||
PUSH DE
|
||
CALL MakeDOSname
|
||
POP HL
|
||
SPDSS DSSF.OPEN,,1
|
||
JP C,CopyError1
|
||
LD (FHandle1),A
|
||
LD HL,(CopyTo) ;Žâªàë¢ ¥¬ ä ©« ¯à¨¥¬¨ª
|
||
SPDSS DSSF.CHDIR
|
||
JP C,CopyError2
|
||
LD IX,(AdrCopyFile)
|
||
LD HL,(AdrCopyFile)
|
||
INC HL
|
||
LD DE,WorkBuffer
|
||
PUSH DE
|
||
CALL MakeDOSname
|
||
POP HL
|
||
LD A,(OverWriteFlg)
|
||
OR A
|
||
LD C,DSSF.CREAT_N ;0x0B
|
||
JR Z,.L2
|
||
LD C,DSSF.CREATE ;0x0A
|
||
.L2 LD A,(IX + FileHDR.Attr)
|
||
SPDSS
|
||
JR NC,CopyLp2
|
||
CP 0x07
|
||
JP NZ,CopyError2
|
||
CALL OverWrite
|
||
CopyLp2 LD (FHandle2),A
|
||
LD HL,(ReadLen)
|
||
LD A,H
|
||
OR L
|
||
LD HL,(ReadLen+2)
|
||
OR H
|
||
OR L
|
||
JP Z,CloseFiles
|
||
ReadFile
|
||
GETPORT WINSP.CPU3
|
||
PUSH AF
|
||
LD HL,PagesList
|
||
LD A,(HL)
|
||
ReadLp1 INC HL
|
||
PUSH HL
|
||
SETPORT WINSP.CPU3,,0
|
||
SPDSS DSSF.SCANKEY
|
||
LD HL,SC.ESC << 8 | 0x1B
|
||
OR A
|
||
SBC HL,DE
|
||
JP Z,CopyBreak
|
||
LD HL,(ReadLen)
|
||
LD DE,(ReadLen + 2)
|
||
LD BC,0x4000
|
||
OR A
|
||
SBC HL,BC
|
||
LD B,0x00
|
||
EX DE,HL
|
||
SBC HL,BC
|
||
EX DE,HL
|
||
JR C,ReadEnd
|
||
LD (ReadLen),HL
|
||
LD (ReadLen + 2),DE
|
||
LD HL,0xC000
|
||
LD DE,0x4000
|
||
LD A,(FHandle1)
|
||
SPDSS DSSF.READ
|
||
CALL NextProcess
|
||
POP HL
|
||
LD A,(HL)
|
||
CP 0xFF
|
||
JR NZ,ReadLp1
|
||
POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
JR WriteFile
|
||
|
||
; !FIXIT ᤥ« âì â ª:
|
||
ReadEnd: LD HL,0xC000
|
||
LD DE,(ReadLen)
|
||
LD A,D
|
||
OR E
|
||
JR Z,.L1
|
||
LD A,(FHandle1)
|
||
SPDSS DSSF.READ
|
||
CALL NextProcess
|
||
.L1 POP HL
|
||
POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
WriteFile
|
||
GETPORT WINSP.CPU3
|
||
PUSH AF
|
||
LD HL,PagesList
|
||
LD A,(HL)
|
||
WriteL1 INC HL
|
||
PUSH HL
|
||
SETPORT WINSP.CPU3,,0
|
||
SPDSS DSSF.SCANKEY
|
||
LD HL,SC.ESC << 8 | 0x1B
|
||
OR A
|
||
SBC HL,DE
|
||
JP Z,CopyBreak
|
||
LD HL,(WriteLen)
|
||
LD DE,(WriteLen + 2)
|
||
LD BC,0x4000
|
||
OR A
|
||
SBC HL,BC
|
||
LD B,0x00
|
||
EX DE,HL
|
||
SBC HL,BC
|
||
EX DE,HL
|
||
JR C,WriteEnd
|
||
LD (WriteLen),HL
|
||
LD (WriteLen + 2),DE
|
||
LD HL,0xC000
|
||
LD DE,0x4000
|
||
LD A,(FHandle2)
|
||
SPDSS DSSF.WRITE
|
||
JP C,CopyError3
|
||
CALL NextProcess
|
||
POP HL
|
||
LD A,(HL)
|
||
CP 0xFF
|
||
JR NZ,WriteL1
|
||
POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
LD HL,(ReadLen)
|
||
LD A,H
|
||
OR L
|
||
LD HL,(ReadLen + 2)
|
||
OR H
|
||
OR L
|
||
JR Z,CloseFiles
|
||
JP ReadFile
|
||
|
||
; !FIXIT ᤥ« âì â ª:
|
||
WriteEnd: LD HL,0xC000
|
||
LD DE,(WriteLen)
|
||
LD A,D
|
||
OR E
|
||
JR Z,.L1
|
||
LD A,(FHandle2)
|
||
SPDSS DSSF.WRITE
|
||
JP C,CopyError3
|
||
CALL NextProcess
|
||
.L1 POP HL
|
||
POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
CloseFiles LD A,(FHandle1)
|
||
SPDSS DSSF.GET_D_T
|
||
LD A,(FHandle2)
|
||
SPDSS DSSF.PUT_D_T
|
||
LD A,(FHandle2)
|
||
SPDSS DSSF.CLOSE
|
||
CloseFile1 LD A,(FHandle1)
|
||
SPDSS DSSF.CLOSE
|
||
LD A,(MemIndef)
|
||
SPDSS DSSF.FREEMEM
|
||
LD IX,(AdrCopyFile)
|
||
RES FileHDR.B_MARK,(IX + FileHDR.Flag)
|
||
LD HL,(ECopyBytes)
|
||
LD E,(IX + FileHDR.SizeBytes)
|
||
LD D,(IX + FileHDR.SizeBytes + 1)
|
||
OR A
|
||
SBC HL,DE
|
||
LD (ECopyBytes),HL
|
||
LD HL,(ECopyBytes+2)
|
||
LD E,(IX + FileHDR.SizeBytes + 2)
|
||
LD D,(IX + FileHDR.SizeBytes + 3)
|
||
SBC HL,DE
|
||
LD (ECopyBytes+2),HL
|
||
LD HL,(ECopyFiles)
|
||
LD A,H
|
||
OR L
|
||
JR Z,CopyEnd
|
||
DEC HL
|
||
LD (ECopyFiles),HL
|
||
LD A,H
|
||
OR L
|
||
JR Z,CopyEnd
|
||
LD HL,(AdrCopyFile)
|
||
LD DE,FileHDR.SIZE
|
||
.L1 ADD HL,DE
|
||
BIT FileHDR.B_MARK,(HL)
|
||
JR Z,.L1
|
||
LD (AdrCopyFile),HL
|
||
JP CopyNextFile
|
||
|
||
CopyEnd POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
POP IY
|
||
WINDOWCLOSE
|
||
LD HL,(ECopyFiles)
|
||
LD (IY + PANEL.MFL),L
|
||
LD (IY + PANEL.MFH),H
|
||
LD HL,(ECopyBytes)
|
||
LD (IY + PANEL.MBL1),L
|
||
LD (IY + PANEL.MBH1),H
|
||
LD HL,(ECopyBytes+2)
|
||
LD (IY + PANEL.MBL2),L
|
||
LD (IY + PANEL.MBH2),H
|
||
; [ ] fat32
|
||
LD A,(ECopyBytes+4)
|
||
LD (IY + PANEL.MBL3),A
|
||
PUSH IY
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD IY,RightPanel
|
||
JR Z,.L1
|
||
LD IY,LeftPanel
|
||
.L1 PUSH IY
|
||
POP HL
|
||
LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
PUSH IY
|
||
SPDSS DSSF.CHDIR
|
||
POP IY
|
||
PUSH AF
|
||
CALL C,DOSError
|
||
POP AF
|
||
CALL NC,RefreshDIR
|
||
POP IY
|
||
PUSH IY
|
||
POP HL
|
||
LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
PUSH IY
|
||
SPDSS DSSF.CHDIR
|
||
POP IY
|
||
JP C,BegDIRECTORY
|
||
CALL PrintDIR
|
||
CALL PrnFileInfo
|
||
JP SetMouse
|
||
|
||
CopyError3: ; …᫨ ¥â ¬¥áâ ¤¨áª¥ ¤«ï ª®¯¨à®¢ ¨ï ;!FIXIT ®¯â¨¬¨§¨à®¢ âì
|
||
POP HL ; ᨬ ¥¬ «¨è¥¥
|
||
POP DE ; âãâ «¥¦¨â AF
|
||
PUSH AF
|
||
LD A,D
|
||
SETPORT WINSP.CPU3,,0
|
||
LD A,(FHandle2)
|
||
SPDSS DSSF.CLOSE
|
||
CALL CopyErrorFileDelete
|
||
POP AF
|
||
CopyError2 PUSH AF
|
||
LD A,(FHandle1)
|
||
SPDSS DSSF.CLOSE
|
||
POP AF
|
||
CopyError1 PUSH AF
|
||
LD A,(MemIndef)
|
||
SPDSS DSSF.FREEMEM
|
||
POP AF
|
||
CALL DOSError
|
||
JP CopyEnd
|
||
|
||
CopyBreak POP HL
|
||
POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
LD A,(FHandle2)
|
||
SPDSS DSSF.CLOSE
|
||
LD A,(FHandle1)
|
||
SPDSS DSSF.CLOSE
|
||
LD A,(MemIndef)
|
||
SPDSS DSSF.FREEMEM
|
||
CALL CopyErrorFileDelete
|
||
JP CopyEnd
|
||
|
||
CopyErrorFileDelete:
|
||
LD IX,(AdrCopyFile)
|
||
LD HL,(AdrCopyFile)
|
||
INC HL
|
||
LD DE,WorkBuffer
|
||
PUSH DE
|
||
CALL MakeDOSname
|
||
POP HL
|
||
LD A,(IX + FileHDR.Attr)
|
||
PUSH IY
|
||
SPDSS DSSF.DELETE
|
||
POP IY
|
||
RET
|
||
|
||
;--------------------------------------------------------------
|
||
OverWrite CALL SetMouse
|
||
MAKEWINDOW WINSUBOBJ.STORE
|
||
W_MAIN 180,88,280,56
|
||
W_FILL 4,2,272,10,COLORI.GREEN
|
||
W_TEXT 116,3,COLORI.WHITE + COLORP.GREEN,"Message"
|
||
W_TEXT 80,16,COLORP.HIGHGRAY,"The following file EXISTS:"
|
||
W_BUTTON 16,38,56,14
|
||
W_TEXT 22,41,COLORP.HIGHGRAY,"OverWrite"
|
||
W_BUTTON 80,38,56,14
|
||
W_TEXT 102,41,COLORP.HIGHGRAY,"All"
|
||
W_BUTTON 144,38,56,14
|
||
W_TEXT 162,41,COLORP.HIGHGRAY,"Skip"
|
||
W_BUTTON 208,38,56,14
|
||
W_TEXT 220,41,COLORP.HIGHGRAY,"Cancel"
|
||
W_END
|
||
LD HL,(CopyTo)
|
||
LD DE,WorkBuffer
|
||
SUB A
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
DEC HL
|
||
LD A,'\\'
|
||
CP (HL)
|
||
JR Z,.L2
|
||
LD (DE),A
|
||
INC DE
|
||
.L2 LD HL,(AdrCopyFile)
|
||
INC HL
|
||
CALL MakeDOSname
|
||
LD IX,0x00F8
|
||
LD HL,WorkBuffer
|
||
LD DE,320
|
||
LD BC,114
|
||
LD A,COLORP.HIGHGRAY + COLORI.BLACK
|
||
CALL PrnRangPathC
|
||
OvWrtLp LD IX,OverWrtTab
|
||
CALL TestCoords
|
||
SPDSS DSSF.SCANKEY
|
||
JR Z,OvWrtLp
|
||
LD A,B
|
||
OR A
|
||
JR NZ,OvWrtLp
|
||
LD A,E
|
||
CP 0x1B
|
||
LD HL,OverExit
|
||
JR Z,OvrJump
|
||
CP 0x0D
|
||
LD HL,OverWrtFile
|
||
JR Z,OvrJump
|
||
RES 5,A
|
||
CP 'O'
|
||
LD HL,OverWrtFile
|
||
JR Z,OvrJump
|
||
CP 'A'
|
||
LD HL,OverWrtAll
|
||
JR Z,OvrJump
|
||
CP 'S'
|
||
LD HL,OverSkip
|
||
JR Z,OvrJump
|
||
CP 'C'
|
||
JR NZ,OvWrtLp
|
||
LD HL,OverExit
|
||
OvrJump
|
||
WINDOWCLOSE
|
||
JP (HL)
|
||
|
||
OverWrtAll LD A,0x01
|
||
LD (OverWriteFlg),A
|
||
OverWrtFile CALL SetClock
|
||
LD IX,(AdrCopyFile)
|
||
LD HL,(AdrCopyFile)
|
||
INC HL
|
||
LD DE,WorkBuffer
|
||
PUSH DE
|
||
CALL MakeDOSname
|
||
POP HL
|
||
LD A,(IX + FileHDR.Attr)
|
||
SPDSS DSSF.CREATE
|
||
RET
|
||
|
||
OverSkip CALL SetClock
|
||
LD IX,(AdrCopyFile)
|
||
LD L,(IX + FileHDR.SizeBytes)
|
||
LD H,(IX + FileHDR.SizeBytes + 1)
|
||
LD E,(IX + FileHDR.SizeBytes + 2)
|
||
LD D,(IX + FileHDR.SizeBytes + 3)
|
||
CALL ConvLenToBank
|
||
ADD HL,HL
|
||
EX DE,HL
|
||
ADC HL,HL
|
||
EX DE,HL
|
||
LD IX,ProcessAll
|
||
LD C,(IX + PROC.CURL1)
|
||
LD B,(IX + PROC.CURH1)
|
||
ADD HL,BC
|
||
LD (IX + PROC.CURL1),L
|
||
LD (IX + PROC.CURH1),H
|
||
LD C,(IX + PROC.CURL2)
|
||
LD B,(IX + PROC.CURH2)
|
||
EX DE,HL
|
||
ADC HL,BC
|
||
LD (IX + PROC.CURL2),L
|
||
LD (IX + PROC.CURH2),H
|
||
CALL PrnProcess
|
||
LD HL,CloseFile1
|
||
EX (SP),HL
|
||
RET
|
||
|
||
OverExit INC SP
|
||
INC SP
|
||
LD IX,(AdrCopyFile)
|
||
BIT 0,(IX + 0x00)
|
||
JP Z,CloseFile1
|
||
LD A,(FHandle1)
|
||
SPDSS DSSF.CLOSE
|
||
LD A,(MemIndef)
|
||
SPDSS DSSF.FREEMEM
|
||
POP IY
|
||
JP CopyEnd
|
||
|
||
;--------------------------------------------------------------
|
||
AdrCopyFile DW 0x0000 ; €¤à¥á ®¯¨á ⥫ï ⥪ã饣® ä ©«
|
||
CopyFrom DW 0x0000 ; €¤à¥á ¯ã⨠®âªã¤
|
||
CopyTo DW 0x0000 ; €¤à¥á ¯ã⨠ªã¤
|
||
ECopyFiles DW 0x0000 ; Š®«-¢® ª®¯¨à㥬ëå ä ©«®¢
|
||
ECopyBytes DB 5 DUP 0 ; Š®«-¢® ª®¯¨à㥬ëå ¡ ©â®¢
|
||
OverWriteFlg DB 0x00 ; ”« £ ¯¥à¥§ ¯¨á¨ ä ©«®¢
|
||
FreeBanks DW 0x0000 ; Š®«-¢® ᢮¡®¤ëå ¡ ª®¢
|
||
ReadLen DD 0 ; „«¨ ç¨â ¥¬®£® ä ©«
|
||
WriteLen DD 0 ; „«¨ § ¯¨áë¢ ¥¬®£® ä ©«
|
||
FHandle1 DB 0x00 ; ” ©« ¨áâ®ç¨ª
|
||
FHandle2 DB 0x00 ; ” ©« ¯à¨¥¬¨ª
|
||
MemIndef DB 0x00 ; ˆ¤¥ä¨ª.¯ ¬ï⨠¯®¤ ª®¯¨à®¢ ¨¥
|
||
;--------------------------------------------------------------
|
||
|
||
; DEHL - ª®«¨ç¥á⢮ ¡ ©â
|
||
; 1028975 FB36F
|
||
; 231 E7 1
|
||
; 59232 E760 4
|
||
; 21 15 1
|
||
; 14119 3727 1
|
||
; 916055 DFA57 38
|
||
; 12652 316C 1
|
||
; 14119 3727 1
|
||
; 12546 3102 1
|
||
ConvLenToBank LD A,H
|
||
LD H,L
|
||
LD L,0x00
|
||
SLA A
|
||
RL E
|
||
RL D
|
||
RL L ; LDEA * 2
|
||
SLA A
|
||
RL E
|
||
RL D
|
||
RL L ; LDEA * 2
|
||
OR H
|
||
LD H,0x00
|
||
EX DE,HL
|
||
JR Z,.L1
|
||
INC HL
|
||
.L1 LD A,H
|
||
OR L
|
||
RET NZ
|
||
INC DE
|
||
RET
|
||
|
||
PrnFromTo LD HL,(CopyFrom)
|
||
LD DE,WorkBuffer
|
||
SUB A
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
DEC HL
|
||
LD A,'\\'
|
||
CP (HL)
|
||
JR Z,.L2
|
||
LD (DE),A
|
||
INC DE
|
||
.L2 LD HL,(AdrCopyFile)
|
||
INC HL
|
||
CALL MakeDOSname
|
||
LD HL,(CopyTo)
|
||
LD DE,WorkBuffer+0x100
|
||
SUB A
|
||
.L3 LDI
|
||
CP (HL)
|
||
JR NZ,.L3
|
||
DEC HL
|
||
LD A,'\\'
|
||
CP (HL)
|
||
JR Z,.L4
|
||
LD (DE),A
|
||
INC DE
|
||
.L4 LD HL,(AdrCopyFile)
|
||
INC HL
|
||
CALL MakeDOSname
|
||
MAKEWINDOW WINSUBOBJ.WOBIND
|
||
W_FILL 204,97,256,18,COLORI.HIGHGRAY
|
||
W_END
|
||
LD IX,0x0100
|
||
LD HL,WorkBuffer
|
||
LD DE,204
|
||
LD BC,97
|
||
LD A,COLORP.HIGHGRAY + COLORI.BLACK
|
||
CALL PrnRangPathL
|
||
LD IX,0x0100
|
||
LD HL,WorkBuffer+0x100
|
||
LD DE,204
|
||
LD BC,107
|
||
LD A,COLORP.HIGHGRAY + COLORI.BLACK
|
||
JP PrnRangPathL
|
||
|
||
NextProcess LD IX,ProcessAll
|
||
LD L,(IX + PROC.CURL1)
|
||
LD H,(IX + PROC.CURH1)
|
||
INC HL
|
||
LD (IX + PROC.CURL1),L
|
||
LD (IX + PROC.CURH1),H
|
||
LD A,H
|
||
OR L
|
||
JR NZ,.L1
|
||
LD L,(IX + PROC.CURL2)
|
||
LD H,(IX + PROC.CURH2)
|
||
INC HL
|
||
LD (IX + PROC.CURL2),L
|
||
LD (IX + PROC.CURH2),H
|
||
.L1 CALL PrnProcess
|
||
LD IX,ProcessOne
|
||
LD L,(IX + PROC.CURL1)
|
||
LD H,(IX + PROC.CURH1)
|
||
INC HL
|
||
LD (IX + PROC.CURL1),L
|
||
LD (IX + PROC.CURH1),H
|
||
LD A,H
|
||
OR L
|
||
JR NZ,.L2
|
||
LD L,(IX + PROC.CURL2)
|
||
LD H,(IX + PROC.CURH2)
|
||
INC HL
|
||
LD (IX + PROC.CURL2),L
|
||
LD (IX + PROC.CURH2),H
|
||
.L2 JP PrnProcess
|
||
|
||
ProcessAll DW 178 ; X ¯®§¨æ¨ï
|
||
DW 138 ; Y ¯®§¨æ¨ï
|
||
DW 284 ; „«¨ X
|
||
DW 0 ; Š®íä䍿¨¥â ¤«ï ¯à®æ¥áá
|
||
DW 0 ; Š®à४æ¨ï ª®í䍿¨¥â
|
||
DW 0 ; Œ ªá¨¬ã¬
|
||
DW 0
|
||
DW 0 ; ’¥ªã饥
|
||
DW 0
|
||
DB COLORP.BLUE + COLORI.WHITE; 0x4F
|
||
|
||
ProcessOne DW 178 ; X ¯®§¨æ¨ï
|
||
DW 120 ; Y ¯®§¨æ¨ï
|
||
DW 284 ; „«¨ X
|
||
DW 0 ; Š®íä䍿¨¥â ¤«ï ¯à®æ¥áá
|
||
DW 0 ; Š®à४æ¨ï ª®í䍿¨¥â
|
||
DW 0 ; Œ ªá¨¬ã¬
|
||
DW 0
|
||
DW 0 ; ’¥ªã饥
|
||
DW 0
|
||
DB COLORP.BLUE + COLORI.WHITE
|
||
|
||
PathStr DB 0x80,0x00,0x00,0x00
|
||
PathLen DB 0x00
|
||
DW 170,106,324
|
||
DB 0xF0
|
||
CurPath DB 0x81 DUP 0
|
||
|
||
;[]==========================================================[]
|
||
ReNameR LD A,(IY + PANEL.EFL)
|
||
OR (IY + PANEL.EFH)
|
||
RET Z
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
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
|
||
LD L,(IY + PANEL.FFL)
|
||
LD H,(IY + PANEL.FFH)
|
||
LD E,(IY + PANEL.CFL)
|
||
LD D,(IY + PANEL.CFH)
|
||
ADD HL,DE
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR Z,ReNameNr
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
; LD A,H
|
||
; OR 0xC0
|
||
; LD H,A
|
||
SET 6,H
|
||
SET 7,H
|
||
INC HL
|
||
INC HL
|
||
LD DE,CurName
|
||
LD BC,0x000D
|
||
LDIR
|
||
LD A,DIR.M_Dir;0x10
|
||
LD (CurAttrib),A
|
||
JR ReNameN
|
||
|
||
ReNameNr ADD HL,HL ; *2
|
||
ADD HL,HL ; *4
|
||
ADD HL,HL ; *8
|
||
LD E,L
|
||
LD D,H
|
||
ADD HL,HL ; *10
|
||
ADD HL,DE ; *18
|
||
; LD A,H
|
||
; OR 0xC0
|
||
; LD H,A
|
||
SET 6,H
|
||
SET 7,H ; | 0xC000
|
||
PUSH HL
|
||
INC HL
|
||
LD DE,CurName
|
||
CALL MakeDOSname
|
||
POP HL
|
||
LD BC,FileHDR.Attr;0x000E
|
||
ADD HL,BC
|
||
LD A,(HL)
|
||
LD (CurAttrib),A
|
||
ReNameN POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
LD HL,CurName
|
||
LD A,(HL)
|
||
CP '.'
|
||
RET Z
|
||
CP '\\'
|
||
RET Z
|
||
LD DE,Name
|
||
LD C,0
|
||
LD A,' '
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR C,.L1
|
||
LD A,C
|
||
NEG
|
||
LD (NameLen),A
|
||
CALL ResInvert
|
||
LD HL,SetInvert
|
||
PUSH HL
|
||
LD HL,CurName
|
||
LD DE,RNfile
|
||
LD C,0x0C
|
||
SUB A
|
||
.L2 LDI
|
||
CP (HL)
|
||
JR NZ,.L2
|
||
OR C
|
||
JR Z,RNnxt
|
||
LD B,C
|
||
LD A,' '
|
||
.L3 LD (DE),A
|
||
INC DE
|
||
DJNZ .L3
|
||
RNnxt
|
||
MAKEWINDOW WINSUBOBJ.STORE
|
||
W_MAIN 208,81,224,62
|
||
W_FILL 4,2,216,10,COLORI.BLACK
|
||
W_TEXT 94,3,COLORI.WHITE,"Rename"
|
||
W_BUTTON 32,42,72,14
|
||
W_TEXT 60,45,COLORP.HIGHGRAY,"Ok"
|
||
W_BUTTON 120,42,72,14
|
||
W_TEXT 140,45,COLORP.HIGHGRAY,"Cancel"
|
||
W_TEXT 14,17,COLORP.HIGHGRAY,"Rename: "
|
||
RNfile EQU $ - STRLEN(" ") - 2
|
||
W_TEXT 40,29,COLORP.HIGHGRAY,"To:"
|
||
W_BORDER 60,26,134,12
|
||
W_FILL 62,27,130,10,COLORI.WHITE
|
||
W_END
|
||
LD IX,NameStr
|
||
LD HL,ReNameTab
|
||
CALL InputLine
|
||
WINDOWCLOSE
|
||
RET C
|
||
LD A,(NameLen)
|
||
OR A
|
||
RET Z
|
||
;[ ] -¡ £ ¯à¨ ¯¥à¥¨¬¥®¢ ¨¨ ä ©« ¢ ¡ãä¥à¥ Name ¢ ª®æ¥ ¨¬¥¨ ä ©« ¥ ¢á¥£¤ áâ®ï« § ªàë¢ î騩 0 ª®£¤ ¤®. ILDel1
|
||
LD HL,Name
|
||
LD E,A
|
||
LD D,0
|
||
ADC HL,DE
|
||
LD (HL),0
|
||
CALL SetClock
|
||
LD HL,SetMouse
|
||
EX (SP),HL
|
||
PUSH HL
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR Z,ReName0
|
||
PUSH IY
|
||
POP HL
|
||
LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
LD DE,WorkBuffer
|
||
PUSH DE
|
||
SUB A
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
EX DE,HL
|
||
LD A,'\\'
|
||
.L2 DEC HL
|
||
CP (HL)
|
||
JR NZ,.L2
|
||
INC HL
|
||
LD (HL),0x00
|
||
POP HL
|
||
PUSH IY
|
||
SPDSS DSSF.CHDIR
|
||
POP IY
|
||
PUSH AF
|
||
CALL C,DOSError
|
||
POP AF
|
||
RET C
|
||
ReName0 LD HL,CurName
|
||
LD DE,Name
|
||
PUSH IY
|
||
SPDSS DSSF.RENAME
|
||
POP IY
|
||
PUSH AF
|
||
CALL C,DOSError
|
||
POP AF
|
||
RET C
|
||
LD A,(CurAttrib)
|
||
BIT DIR.B_Dir,A
|
||
JP NZ,ReNameDIR
|
||
LD HL,Name
|
||
LD DE,PrevFile
|
||
LD A,(NameLen)
|
||
LD B,A
|
||
.L1 LD A,(HL)
|
||
IF CORR_FILENAME
|
||
CALL CorrBigChar
|
||
ENDIF
|
||
LD (DE),A
|
||
INC HL
|
||
INC DE
|
||
DJNZ .L1
|
||
SUB A
|
||
LD (DE),A
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR NZ,ReName1
|
||
CALL ReadDIR
|
||
CALL FindPrevFile
|
||
CALL PrintDIR
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
CALL InitScrollBar
|
||
LD A,(IY + PANEL.VIEWFLAG)
|
||
AND VIEWFLAG.MASK
|
||
PUSH AF
|
||
CALL Z,PrnHScrBar
|
||
POP AF
|
||
CALL NZ,PrnVScrBar
|
||
ReName1 LD HL,LeftPanel + PANEL.CURRPATH
|
||
LD DE,RightPanel + PANEL.CURRPATH
|
||
ReName2 LD A,(DE)
|
||
CP (HL)
|
||
RET NZ
|
||
INC HL
|
||
INC DE
|
||
LD A,(HL)
|
||
OR A
|
||
JR NZ,ReName2
|
||
LD A,(DE)
|
||
OR A
|
||
RET NZ
|
||
PUSH IY
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD IY,RightPanel
|
||
JR Z,.L1
|
||
LD IY,LeftPanel
|
||
.L1 BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR NZ,ReNameE
|
||
CALL ReadDIR
|
||
CALL PrintDIR
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
CALL InitScrollBar
|
||
LD A,(IY + PANEL.VIEWFLAG)
|
||
AND VIEWFLAG.MASK
|
||
PUSH AF
|
||
CALL Z,PrnHScrBar
|
||
POP AF
|
||
CALL NZ,PrnVScrBar
|
||
ReNameE POP IY
|
||
RET
|
||
|
||
ReNameDIR LD HL,Name
|
||
LD DE,PrevDIR
|
||
LD A,(NameLen)
|
||
LD B,A
|
||
.L1 LD A,(HL)
|
||
IF CORR_FILENAME
|
||
CALL CorrSmallChar
|
||
ENDIF
|
||
LD (HL),A
|
||
LD (DE),A
|
||
INC HL
|
||
INC DE
|
||
DJNZ .L1
|
||
SUB A
|
||
LD (DE),A
|
||
LD A,(TreeFlag)
|
||
OR A
|
||
JP Z,ReNameExit
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
EX AF,AF'
|
||
PUSH IY
|
||
GETPORT WINSP.CPU3
|
||
PUSH AF
|
||
LD IY,LeftPanel
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR NZ,.L2
|
||
LD IY,RightPanel
|
||
.L2 BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L3
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L3
|
||
SETPORT WINSP.CPU3,,0
|
||
EX AF,AF'
|
||
JR Z,ReNameTree
|
||
LD L,(IY + PANEL.FFL)
|
||
LD H,(IY + PANEL.FFH)
|
||
LD E,(IY + PANEL.CFL)
|
||
LD D,(IY + PANEL.CFH)
|
||
ADD HL,DE
|
||
ADD HL,HL ; *2
|
||
ADD HL,HL ; *4
|
||
ADD HL,HL ; *8
|
||
ADD HL,HL ; *10
|
||
; LD A,H
|
||
; OR 0xC0
|
||
; LD H,A
|
||
SET 6,H
|
||
SET 7,H
|
||
EX DE,HL
|
||
JR ReNameEx
|
||
|
||
ReNameTree BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD HL,LeftPanel
|
||
JR NZ,.L1
|
||
LD HL,RightPanel
|
||
.L1 LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
INC HL
|
||
INC HL
|
||
IF TREE_REZID
|
||
CALL FindTreeDIRR
|
||
ELSE
|
||
CALL FindTreeDIRR
|
||
ENDIF
|
||
JP C,ReNameT
|
||
LD HL,0xC001 - 0x10
|
||
LD BC,0x0010
|
||
.L2 ADD HL,BC
|
||
BIT 0,(HL)
|
||
JR Z,.L2
|
||
ADD HL,BC
|
||
DEC HL
|
||
FRName1 PUSH HL
|
||
LD DE,CurName
|
||
INC HL
|
||
INC HL
|
||
FRName2 LD A,(DE)
|
||
OR A
|
||
JR Z,FRName4
|
||
CP (HL)
|
||
JR NZ,FRName3
|
||
INC HL
|
||
INC DE
|
||
JR FRName2
|
||
|
||
FRName3 POP HL
|
||
BIT 7,(HL)
|
||
JR NZ,ReNameT
|
||
ADD HL,BC
|
||
JR FRName1
|
||
|
||
FRName4 LD A,(HL)
|
||
OR A
|
||
JR NZ,FRName3
|
||
POP DE
|
||
ReNameEx LD HL,Name
|
||
INC DE
|
||
INC DE
|
||
LD C,0x0D
|
||
SUB A
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
LD B,C
|
||
.L2 LD (DE),A
|
||
INC DE
|
||
DJNZ .L2
|
||
LD HL,WorkBuffer
|
||
PUSH IY
|
||
SPDSS DSSF.CURDIR
|
||
POP IY
|
||
LD HL,BegDIR
|
||
PUSH IY
|
||
SPDSS DSSF.CHDIR
|
||
POP IY
|
||
JR C,ReNameC
|
||
LD HL,TreeName
|
||
LD DE,WorkBuffer + 0x100
|
||
LD A,(FileAtribut)
|
||
PUSH IY
|
||
SPDSS DSSF.F_FIRST,0
|
||
POP IY
|
||
JR C,ReNameC
|
||
LD HL,TreeName
|
||
PUSH IY
|
||
SPDSS DSSF.CREATE,,0
|
||
POP IY
|
||
JR C,ReNameC
|
||
LD L,(IY + PANEL.EFL)
|
||
LD H,(IY + PANEL.EFH)
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
EX DE,HL
|
||
LD HL,0xC000
|
||
PUSH AF
|
||
SPDSS DSSF.WRITE
|
||
POP AF
|
||
SPDSS DSSF.CLOSE
|
||
ReNameC LD HL,WorkBuffer
|
||
SPDSS DSSF.CHDIR
|
||
ReNameT POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
POP IY
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR NZ,ReNameExt1
|
||
CALL ReadDIR
|
||
CALL FindPrevDIR
|
||
CALL PrintDIR
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
CALL InitScrollBar
|
||
LD A,(IY + PANEL.VIEWFLAG)
|
||
AND VIEWFLAG.MASK
|
||
PUSH AF
|
||
CALL Z,PrnHScrBar
|
||
POP AF
|
||
CALL NZ,PrnVScrBar
|
||
PUSH IY
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD IY,RightPanel
|
||
JR Z,.L1
|
||
LD IY,LeftPanel
|
||
.L1 CALL PrintDIR
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
CALL PrnVScrBar
|
||
POP IY
|
||
RET
|
||
|
||
ReNameExt1 INC SP
|
||
INC SP
|
||
CALL PrintDIR
|
||
CALL PrnFileInfo
|
||
CALL SetInvert
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
CALL PrnVScrBar
|
||
IF TREE_REZID
|
||
CALL TestTreeR.TestTreeBeg
|
||
ELSE
|
||
CALL TestTreeR.TestTreeBeg
|
||
ENDIF
|
||
PUSH IY
|
||
IF TREE_REZID
|
||
CALL MakeTreePathR
|
||
ELSE
|
||
CALL MakeTreePathR
|
||
ENDIF
|
||
EX DE,HL
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD IY,RightPanel
|
||
JR Z,.L1
|
||
LD IY,LeftPanel
|
||
.L1 PUSH IY
|
||
POP HL
|
||
LD BC,PANEL.CURRPATH
|
||
ADD HL,BC
|
||
INC HL
|
||
INC HL
|
||
EX DE,HL
|
||
SUB A
|
||
.L2 LDI
|
||
CP (HL)
|
||
JR NZ,.L2
|
||
LD (DE),A
|
||
CALL PrintPath
|
||
POP IY
|
||
RET
|
||
|
||
ReNameExit CALL ReadDIR
|
||
CALL FindPrevDIR
|
||
CALL PrintDIR
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
CALL InitScrollBar
|
||
LD A,(IY + PANEL.VIEWFLAG)
|
||
AND VIEWFLAG.MASK
|
||
PUSH AF
|
||
CALL Z,PrnHScrBar
|
||
POP AF
|
||
CALL NZ,PrnVScrBar
|
||
LD HL,LeftPanel + PANEL.CURRPATH
|
||
LD DE,RightPanel + PANEL.CURRPATH
|
||
RNameE1 LD A,(DE)
|
||
CP (HL)
|
||
RET NZ
|
||
INC HL
|
||
INC DE
|
||
LD A,(HL)
|
||
OR A
|
||
JR NZ,RNameE1
|
||
LD A,(DE)
|
||
OR A
|
||
RET NZ
|
||
PUSH IY
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD IY,RightPanel
|
||
JR Z,.L1
|
||
LD IY,LeftPanel
|
||
.L1 BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR NZ,RNameE2
|
||
CALL ReadDIR
|
||
CALL PrintDIR
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
CALL InitScrollBar
|
||
LD A,(IY + PANEL.VIEWFLAG)
|
||
AND VIEWFLAG.MASK
|
||
PUSH AF
|
||
CALL Z,PrnHScrBar
|
||
POP AF
|
||
CALL NZ,PrnVScrBar
|
||
RNameE2 POP IY
|
||
RET
|
||
|
||
CurAttrib DB 0x00
|
||
CurName DB 0x0D DUP 0x00
|
||
NameStr DB 0x0C,0x00,0x00,0x00
|
||
NameLen DB 0x00
|
||
DW 272,110,104
|
||
DB COLORP.WHITE + COLORI.BLACK
|
||
Name DB 0x0D DUP 0x00
|
||
|
||
;[]==========================================================[]
|
||
MakeDIRR CALL ResInvert
|
||
LD HL,SetInvert
|
||
PUSH HL
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
MAKEWINDOW WINSUBOBJ.STORE
|
||
W_MAIN 200,81,240,62
|
||
W_FILL 4,2,232,10,COLORI.BLACK
|
||
W_TEXT 84,3,COLORI.WHITE,"Make directory"
|
||
W_BUTTON 40,42,72,14
|
||
W_TEXT 68,45,COLORP.HIGHGRAY,"Ok"
|
||
W_BUTTON 128,42,72,14
|
||
W_TEXT 148,45,COLORP.HIGHGRAY,"Cancel"
|
||
W_TEXT 12,25,COLORP.HIGHGRAY,"New directory:"
|
||
W_BORDER 86,22,134,12
|
||
W_FILL 88,23,130,10,COLORI.WHITE
|
||
W_END
|
||
LD IX,MakeDIRStr
|
||
LD HL,MakeDIRTab
|
||
CALL InputLine
|
||
WINDOWCLOSE
|
||
RET C
|
||
LD A,(MDIRLen)
|
||
OR A
|
||
RET Z
|
||
LD HL,NewDIR
|
||
LD B,A
|
||
MkDIRlp LD A,(HL)
|
||
INC HL
|
||
CP ':'
|
||
RET Z
|
||
CP '\\'
|
||
RET Z
|
||
DJNZ MkDIRlp
|
||
CALL SetClock
|
||
LD HL,SetMouse
|
||
PUSH HL
|
||
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
JR Z,MkDIR0
|
||
PUSH IY
|
||
POP HL
|
||
LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
PUSH IY
|
||
SPDSS DSSF.CHDIR
|
||
POP IY
|
||
PUSH AF
|
||
CALL C,DOSError
|
||
POP AF
|
||
RET C
|
||
MkDIR0 LD HL,NewDIR
|
||
PUSH IY
|
||
SPDSS DSSF.MKDIR
|
||
POP IY
|
||
PUSH AF
|
||
CALL C,DOSError
|
||
POP AF
|
||
RET C
|
||
LD HL,NewDIR
|
||
LD DE,PrevDIR
|
||
LD A,(MDIRLen)
|
||
LD B,A
|
||
.L1 LD A,(HL)
|
||
IF CORR_FILENAME
|
||
CALL CorrSmallChar
|
||
ENDIF
|
||
LD (HL),A
|
||
LD (DE),A
|
||
INC HL
|
||
INC DE
|
||
DJNZ .L1
|
||
SUB A
|
||
LD (DE),A
|
||
LD A,(TreeFlag)
|
||
OR A
|
||
JP Z,MkDIRnxt1
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
EX AF,AF'
|
||
PUSH IY
|
||
LD IY,LeftPanel
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR NZ,.L2
|
||
LD IY,RightPanel
|
||
.L2 LD A,(IY + PANEL.EFH)
|
||
BIT 2,A
|
||
JP NZ,MkDIRn0
|
||
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
|
||
EX AF,AF'
|
||
JR NZ,FnTree1
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD HL,LeftPanel
|
||
JR NZ,.L4
|
||
LD HL,RightPanel
|
||
.L4 LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
INC HL
|
||
INC HL
|
||
IF TREE_REZID
|
||
CALL FindTreeDIRR
|
||
ELSE
|
||
CALL FindTreeDIRR
|
||
ENDIF
|
||
JP C,MkDIRn
|
||
LD HL,0xC001 - 0x10
|
||
LD BC,0x0010
|
||
.L5 ADD HL,BC
|
||
BIT 0,(HL)
|
||
JR Z,.L5
|
||
DEC HL
|
||
JR FnTree2
|
||
FnTree1 LD L,(IY + PANEL.FFL)
|
||
LD H,(IY + PANEL.FFH)
|
||
LD E,(IY + PANEL.CFL)
|
||
LD D,(IY + PANEL.CFH)
|
||
ADD HL,DE
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
; LD A,H
|
||
; OR 0xC0
|
||
; LD H,A
|
||
SET 6,H
|
||
SET 7,H
|
||
FnTree2 LD E,(HL)
|
||
LD BC,0x000F
|
||
ADD HL,BC
|
||
LD D,(HL)
|
||
LD (HL),B
|
||
INC HL
|
||
INC E
|
||
LD A,D
|
||
INC A
|
||
JR Z,MkDIRend
|
||
LD A,E
|
||
AND 0x7F
|
||
LD IXL,A
|
||
LD A,(HL)
|
||
AND 0x7F
|
||
CP IXL
|
||
JR NZ,MkDIRend
|
||
MkDIR10 LD A,(HL)
|
||
AND 0x7F
|
||
CP IXL
|
||
JR Z,MkDIR11
|
||
ADD HL,BC
|
||
INC HL
|
||
JR MkDIR10
|
||
|
||
MkDIR11 LD A,(HL)
|
||
RES 7,(HL)
|
||
ADD HL,BC
|
||
LD D,(HL)
|
||
LD (HL),B
|
||
INC HL
|
||
BIT 7,A
|
||
JR Z,MkDIR10
|
||
MkDIR12 LD A,(HL)
|
||
AND 0x7F
|
||
CP IXL
|
||
JR C,MkDIRend
|
||
ADD HL,BC
|
||
LD D,(HL)
|
||
LD (HL),B
|
||
INC HL
|
||
LD A,D
|
||
INC A
|
||
JR NZ,MkDIR12
|
||
MkDIRend PUSH HL
|
||
PUSH DE
|
||
LD C,L
|
||
LD B,H
|
||
LD L,(IY + PANEL.EFL)
|
||
LD H,(IY + PANEL.EFH)
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
; LD A,H
|
||
; OR 0xC0
|
||
; LD H,A
|
||
SET 6,H
|
||
SET 7,H
|
||
PUSH HL
|
||
OR A
|
||
SBC HL,BC
|
||
LD C,L
|
||
LD B,H
|
||
POP HL
|
||
LD A,L
|
||
LD D,H
|
||
ADD A,0x10
|
||
LD E,A
|
||
JR NC,.L1
|
||
INC D
|
||
.L1 LD A,B
|
||
OR C
|
||
JR Z,.L2
|
||
DEC HL
|
||
DEC DE
|
||
LDDR
|
||
.L2 POP BC
|
||
POP DE
|
||
LD A,B
|
||
EX AF,AF'
|
||
LD A,C
|
||
SET 7,A
|
||
LD (DE),A
|
||
INC DE
|
||
SUB A
|
||
LD (DE),A
|
||
INC DE
|
||
LD HL,NewDIR
|
||
LD C,0x0D
|
||
.L3 LDI
|
||
CP (HL)
|
||
JR NZ,.L3
|
||
LD B,C
|
||
.L4 LD (DE),A
|
||
INC DE
|
||
DJNZ .L4
|
||
EX AF,AF'
|
||
LD (DE),A
|
||
LD L,(IY + PANEL.EFL)
|
||
LD H,(IY + PANEL.EFH)
|
||
INC HL
|
||
LD (IY + PANEL.EFL),L
|
||
LD (IY + PANEL.EFH),H
|
||
LD HL,WorkBuffer
|
||
PUSH IY
|
||
SPDSS DSSF.CURDIR
|
||
POP IY
|
||
LD HL,BegDIR
|
||
PUSH IY
|
||
SPDSS DSSF.CHDIR
|
||
POP IY
|
||
JR C,MkDIR2
|
||
LD HL,TreeName
|
||
LD DE,WorkBuffer+0x100
|
||
LD A,(FileAtribut)
|
||
PUSH IY
|
||
SPDSS DSSF.F_FIRST,0
|
||
POP IY
|
||
JR C,MkDIR2
|
||
LD HL,TreeName
|
||
PUSH IY
|
||
SPDSS DSSF.CREATE,,0
|
||
POP IY
|
||
JR C,MkDIR2
|
||
LD L,(IY + PANEL.EFL)
|
||
LD H,(IY + PANEL.EFH)
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
EX DE,HL
|
||
LD HL,0xC000
|
||
PUSH AF
|
||
SPDSS DSSF.WRITE
|
||
POP AF
|
||
SPDSS DSSF.CLOSE
|
||
MkDIR2 LD HL,WorkBuffer
|
||
SPDSS DSSF.CHDIR
|
||
MkDIRn POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
MkDIRn0 POP IY
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR NZ,MkDIRn1
|
||
MkDIRnxt1 CALL ReadDIR
|
||
CALL FindPrevDIR
|
||
MkDIRn1 CALL PrintDIR
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
CALL InitScrollBar
|
||
LD A,(IY + PANEL.VIEWFLAG)
|
||
AND VIEWFLAG.MASK
|
||
PUSH AF
|
||
CALL Z,PrnHScrBar
|
||
POP AF
|
||
CALL NZ,PrnVScrBar
|
||
PUSH IY
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD IY,RightPanel
|
||
JR Z,.L1
|
||
LD IY,LeftPanel
|
||
.L1 BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR NZ,MkDIRn2
|
||
LD HL,LeftPanel + PANEL.CURRPATH
|
||
LD DE,RightPanel + PANEL.CURRPATH
|
||
MkDIRrf LD A,(DE)
|
||
CP (HL)
|
||
JR NZ,MkDIRex
|
||
INC HL
|
||
INC DE
|
||
LD A,(HL)
|
||
OR A
|
||
JR NZ,MkDIRrf
|
||
LD A,(DE)
|
||
OR A
|
||
JR NZ,MkDIRex
|
||
CALL ReadDIR
|
||
MkDIRn2 CALL PrintDIR
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
CALL InitScrollBar
|
||
LD A,(IY + PANEL.VIEWFLAG)
|
||
AND VIEWFLAG.MASK
|
||
PUSH AF
|
||
CALL Z,PrnHScrBar
|
||
POP AF
|
||
CALL NZ,PrnVScrBar
|
||
MkDIRex POP IY
|
||
RET
|
||
|
||
MakeDIRStr DB 0x0C,0x00,0x00,0x00
|
||
MDIRLen DB 0x00
|
||
DW 290,106,104
|
||
DB COLORP.WHITE + COLORI.BLACK
|
||
NewDIR DB 0x0D DUP 0x00
|
||
|
||
;[]==========================================================[]
|
||
DeleteFilesR LD A,(IY + PANEL.EFL)
|
||
OR (IY + PANEL.EFH)
|
||
RET Z
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
LD A,(IY + PANEL.MFL)
|
||
OR (IY + PANEL.MFH)
|
||
JR NZ,DeleteMark
|
||
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
|
||
LD L,(IY + PANEL.FFL)
|
||
LD H,(IY + PANEL.FFH)
|
||
LD E,(IY + PANEL.CFL)
|
||
LD D,(IY + PANEL.CFH)
|
||
ADD HL,DE
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR Z,DelFile
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
; LD A,H
|
||
; OR 0xC0
|
||
; LD H,A
|
||
SET 6,H
|
||
SET 7,H
|
||
LD (AdrDelFile),HL
|
||
INC HL
|
||
JR DelFil1
|
||
|
||
DelFile ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
LD E,L
|
||
LD D,H
|
||
ADD HL,HL
|
||
ADD HL,DE
|
||
; LD A,H
|
||
; OR 0xC0
|
||
; LD H,A
|
||
SET 6,H
|
||
SET 7,H
|
||
LD (AdrDelFile),HL
|
||
DelFil1 INC HL
|
||
LD E,(HL)
|
||
POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
LD A,E
|
||
CP '.'
|
||
RET Z
|
||
CP '\\'
|
||
RET Z
|
||
JR DelNext
|
||
|
||
DeleteMark
|
||
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
|
||
LD HL,0xC000 - FileHDR.SIZE
|
||
LD BC,FileHDR.SIZE
|
||
.L2 ADD HL,BC
|
||
BIT FileHDR.B_MARK,(HL)
|
||
JR Z,.L2
|
||
LD (AdrDelFile),HL
|
||
POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
DelNext CALL ResInvert
|
||
LD HL,SetInvert
|
||
PUSH HL
|
||
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
|
||
SUB A
|
||
LD (DeleteFlag),A
|
||
DeleteMain
|
||
MAKEWINDOW WINSUBOBJ.STORE
|
||
W_MAIN 180,80,280,56
|
||
W_FILL 4,2,272,10,COLORI.BLACK
|
||
W_TEXT 116,3,COLORI.WHITE,"Delete file"
|
||
W_TEXT 56,16,COLORP.HIGHGRAY,"The following file will be DELETED:"
|
||
W_BUTTON 16,38,56,14
|
||
W_TEXT 28,41,COLORP.HIGHGRAY,"Delete"
|
||
W_BUTTON 80,38,56,14
|
||
W_TEXT 102,41,COLORP.HIGHGRAY,"All"
|
||
W_BUTTON 144,38,56,14
|
||
W_TEXT 162,41,COLORP.HIGHGRAY,"Skip"
|
||
W_BUTTON 208,38,56,14
|
||
W_TEXT 220,41,COLORP.HIGHGRAY,"Cancel"
|
||
W_END
|
||
PUSH IY
|
||
POP HL
|
||
LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
LD DE,WorkBuffer
|
||
SUB A
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
LD (DE),A
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR NZ,DelLp0
|
||
DEC HL
|
||
LD A,'\\'
|
||
CP (HL)
|
||
JR Z,.L2
|
||
LD (DE),A
|
||
INC DE
|
||
.L2 CALL MakeDELname
|
||
DelLp0 LD IX,0x00F8
|
||
LD HL,WorkBuffer
|
||
LD DE,320
|
||
LD BC,106
|
||
LD A,COLORP.HIGHGRAY + COLORI.BLACK
|
||
CALL PrnRangPathC
|
||
DelLoop LD IX,DeleteTab
|
||
CALL TestCoords
|
||
SPDSS DSSF.SCANKEY
|
||
JR Z,DelLoop
|
||
LD A,B
|
||
OR A
|
||
JR NZ,DelLoop
|
||
LD A,E
|
||
CP 0x1B
|
||
LD HL,DelExit
|
||
JR Z,DelJump
|
||
CP 0x0D
|
||
LD HL,DelDelete
|
||
JR Z,DelJump
|
||
RES 5,A
|
||
CP 'D'
|
||
LD HL,DelDelete
|
||
JR Z,DelJump
|
||
CP 'A'
|
||
LD HL,DelAll
|
||
JR Z,DelJump
|
||
CP 'S'
|
||
LD HL,DelSkip
|
||
JR Z,DelJump
|
||
CP 'C'
|
||
JR NZ,DelLoop
|
||
LD HL,DelExit
|
||
DelJump
|
||
WINDOWCLOSE
|
||
JP (HL)
|
||
|
||
AdrDelFile DEFW 0x0000
|
||
DeleteFlag DEFB 0x00
|
||
|
||
MakeDELname LD HL,(AdrDelFile)
|
||
INC HL
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
; JR NZ,MakeDELn1
|
||
JP Z,MakeDOSname
|
||
;MakeDELn1
|
||
INC HL
|
||
SUB A
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
LD (DE),A
|
||
RET
|
||
|
||
;--------------------------------------------------------------
|
||
DelSkip LD C,(IY + PANEL.MFL)
|
||
LD B,(IY + PANEL.MFH)
|
||
LD A,B
|
||
OR C
|
||
JP Z,DelExit
|
||
LD IX,(AdrDelFile)
|
||
RES 0,(IX + 0x00)
|
||
LD L,(IY + PANEL.MBL1)
|
||
LD H,(IY + PANEL.MBH1)
|
||
LD E,(IX + FileHDR.SizeBytes)
|
||
LD D,(IX + FileHDR.SizeBytes + 1)
|
||
OR A
|
||
SBC HL,DE
|
||
LD (IY + PANEL.MBL1),L
|
||
LD (IY + PANEL.MBH1),H
|
||
LD L,(IY + PANEL.MBL2)
|
||
LD H,(IY + PANEL.MBH2)
|
||
; [ ] FAT32
|
||
LD A,(IY + PANEL.MBL3)
|
||
LD E,(IX + FileHDR.SizeBytes + 2)
|
||
LD D,(IX + FileHDR.SizeBytes + 3)
|
||
SBC HL,DE
|
||
; [ ] fat32
|
||
SBC A,0
|
||
LD (IY + PANEL.MBL3),A
|
||
LD (IY + PANEL.MBL2),L
|
||
LD (IY + PANEL.MBH2),H
|
||
DEC BC
|
||
LD (IY + PANEL.MFL),C
|
||
LD (IY + PANEL.MFH),B
|
||
LD A,B
|
||
OR C
|
||
JP Z,DelExit
|
||
LD HL,(AdrDelFile)
|
||
LD DE,FileHDR.SIZE
|
||
.L1 ADD HL,DE
|
||
BIT FileHDR.B_MARK,(HL)
|
||
JR Z,.L1
|
||
LD (AdrDelFile),HL
|
||
CALL PrintDIR
|
||
JP DeleteMain
|
||
|
||
DelDelete CALL SetClock
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR Z,DelDel0
|
||
PUSH IY
|
||
POP HL
|
||
LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
LD DE,WorkBuffer
|
||
PUSH DE
|
||
SUB A
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
EX DE,HL
|
||
LD A,'\\'
|
||
.L2 DEC HL
|
||
CP (HL)
|
||
JR NZ,.L2
|
||
INC HL
|
||
LD (HL),0x00
|
||
POP HL
|
||
PUSH IY
|
||
SPDSS DSSF.CHDIR
|
||
POP IY
|
||
PUSH AF
|
||
CALL C,DOSError
|
||
POP AF
|
||
JP C,DelExit
|
||
DelDel0 LD IX,(AdrDelFile)
|
||
LD DE,WorkBuffer
|
||
PUSH DE
|
||
CALL MakeDELname
|
||
POP HL
|
||
LD C,DSSF.RMDIR ;0x1C ;RMDIR
|
||
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
JR NZ,DelDel1
|
||
LD A,(IX + FileHDR.Attr)
|
||
BIT DIR.B_Dir,A
|
||
JR NZ,DelDel1
|
||
LD C,DSSF.DELETE ;0x0E ;DELETE
|
||
DelDel1 PUSH IY
|
||
SPDSS
|
||
POP IY
|
||
JR NC,DelDel2
|
||
CALL DOSError
|
||
OR A
|
||
CALL NZ,BegDIRECTORY
|
||
JP DelExit
|
||
DelDel2 LD A,0x01
|
||
LD (DeleteFlag),A
|
||
CALL SetMouse
|
||
JP DelSkip
|
||
|
||
DelAll BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
JR NZ,DelDelete
|
||
LD A,0x01
|
||
LD (DeleteFlag),A
|
||
CALL SetClock
|
||
MAKEWINDOW WINSUBOBJ.STORE
|
||
W_MAIN 160,88,320,48
|
||
W_FILL 4,2,312,10,COLORI.BLACK
|
||
W_TEXT 132,3,COLORI.WHITE,"Delete files"
|
||
W_TEXT 8,16,COLORP.HIGHGRAY,"Delete:"
|
||
W_BORDER 16,28,288,12
|
||
W_FILL 18,29,284,10,COLORI.WHITE
|
||
W_END
|
||
PUSH IY
|
||
POP HL
|
||
LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
LD (DelFrom),HL
|
||
LD IX,ProcessDel
|
||
LD L,(IY + PANEL.MFL)
|
||
LD H,(IY + PANEL.MFH)
|
||
LD A,H
|
||
OR L
|
||
JR NZ,.L1
|
||
INC HL
|
||
.L1 LD (IX + PROC.MAXL1),L
|
||
LD (IX + PROC.MAXH1),H
|
||
SUB A
|
||
LD (IX + PROC.MAXL2),A
|
||
LD (IX + PROC.MAXH2),A
|
||
CALL InitProcess
|
||
DeleteAllLp LD HL,0x0000
|
||
DelFrom EQU $-2
|
||
LD DE,WorkBuffer
|
||
SUB A
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
DEC HL
|
||
LD A,'\\'
|
||
CP (HL)
|
||
JR Z,.L2
|
||
LD (DE),A
|
||
INC DE
|
||
.L2 CALL MakeDELname
|
||
MAKEWINDOW WINSUBOBJ.WOBIND
|
||
W_FILL 208,104,256,8,COLORI.HIGHGRAY
|
||
W_END
|
||
LD IX,0x0100
|
||
LD HL,WorkBuffer
|
||
LD DE,208
|
||
LD BC,104
|
||
LD A,COLORP.HIGHGRAY + COLORI.BLACK
|
||
CALL PrnRangPathL
|
||
SPDSS DSSF.SCANKEY
|
||
LD HL,SC.ESC << 8 | 0x1B
|
||
OR A
|
||
SBC HL,DE
|
||
JP Z,DelAllExit
|
||
LD IX,(AdrDelFile)
|
||
LD DE,WorkBuffer
|
||
PUSH DE
|
||
CALL MakeDELname
|
||
POP HL
|
||
LD A,(IX + FileHDR.Attr)
|
||
BIT DIR.B_Dir,A
|
||
LD C,DSSF.DELETE ;0x0E ;DELETE
|
||
JR Z,.L3
|
||
LD C,DSSF.RMDIR ;0x1C ;RMDIR
|
||
.L3 PUSH IY
|
||
SPDSS
|
||
POP IY
|
||
JR NC,DelA1
|
||
CALL DOSError
|
||
OR A
|
||
CALL NZ,BegDIRECTORY
|
||
JP DelAllExit
|
||
|
||
DelA1 LD IX,ProcessDel
|
||
LD L,(IX + PROC.CURL1)
|
||
LD H,(IX + PROC.CURH1)
|
||
INC HL
|
||
LD (IX + PROC.CURL1),L
|
||
LD (IX + PROC.CURH1),H
|
||
CALL PrnProcess
|
||
LD C,(IY + PANEL.MFL)
|
||
LD B,(IY + PANEL.MFH)
|
||
LD A,B
|
||
OR C
|
||
JP Z,DelAllExit
|
||
LD IX,(AdrDelFile)
|
||
RES FileHDR.B_MARK,(IX + FileHDR.Flag)
|
||
LD L,(IY + PANEL.MBL1)
|
||
LD H,(IY + PANEL.MBH1)
|
||
LD E,(IX + FileHDR.SizeBytes)
|
||
LD D,(IX + FileHDR.SizeBytes + 1)
|
||
OR A
|
||
SBC HL,DE
|
||
LD (IY + PANEL.MBL1),L
|
||
LD (IY + PANEL.MBH1),H
|
||
LD L,(IY + PANEL.MBL2)
|
||
LD H,(IY + PANEL.MBH2)
|
||
; [ ] FAT32
|
||
LD A,(IY + PANEL.MBL3)
|
||
LD E,(IX + FileHDR.SizeBytes + 2)
|
||
LD D,(IX + FileHDR.SizeBytes + 3)
|
||
SBC HL,DE
|
||
; [ ] fat32
|
||
SBC A,0
|
||
LD (IY + PANEL.MBL3),A
|
||
LD (IY + PANEL.MBL2),L
|
||
LD (IY + PANEL.MBH2),H
|
||
DEC BC
|
||
LD (IY + PANEL.MFL),C
|
||
LD (IY + PANEL.MFH),B
|
||
LD A,B
|
||
OR C
|
||
JP Z,DelAllExit
|
||
LD HL,(AdrDelFile)
|
||
LD DE,FileHDR.SIZE
|
||
.L1 ADD HL,DE
|
||
BIT FileHDR.B_MARK,(HL)
|
||
JR Z,.L1
|
||
LD (AdrDelFile),HL
|
||
JP DeleteAllLp
|
||
|
||
ProcessDel DW 178
|
||
DW 117
|
||
DW 284
|
||
DW 0
|
||
DW 0
|
||
DW 0
|
||
DW 0
|
||
DW 0
|
||
DW 0
|
||
DB COLORP.BLUE + COLORI.WHITE
|
||
|
||
DelAllExit HALT
|
||
WINDOWCLOSE
|
||
DelExit BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR NZ,DelTreeDIR1
|
||
LD IX,(AdrDelFile)
|
||
BIT DIR.B_Dir,(IX + FileHDR.Attr)
|
||
JR NZ,DelTreeDIR
|
||
DelExt1 POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
LD HL,SetMouse
|
||
PUSH HL
|
||
LD A,(DeleteFlag)
|
||
OR A
|
||
JP NZ,RefreshDIR
|
||
CALL PrintDIR
|
||
JP PrnFileInfo
|
||
|
||
DelTreeDIR LD A,(TreeFlag)
|
||
OR A
|
||
JR Z,DelExt1
|
||
DelTreeDIR1 LD A,(DeleteFlag)
|
||
OR A
|
||
JR Z,DelExt1
|
||
LD DE,DelName
|
||
CALL MakeDELname
|
||
POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
CALL SetClock
|
||
LD HL,SetMouse
|
||
EX (SP),HL
|
||
PUSH HL
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
EX AF,AF'
|
||
PUSH IY
|
||
GETPORT WINSP.CPU3
|
||
PUSH AF
|
||
LD IY,LeftPanel
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR NZ,.L1
|
||
LD IY,RightPanel
|
||
.L1 BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L2
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L2
|
||
SETPORT WINSP.CPU3,,0
|
||
EX AF,AF'
|
||
JR NZ,DelTree1
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD HL,LeftPanel
|
||
JR NZ,.L3
|
||
LD HL,RightPanel
|
||
.L3 LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
INC HL
|
||
INC HL
|
||
IF TREE_REZID
|
||
CALL FindTreeDIRR
|
||
ELSE
|
||
CALL FindTreeDIRR
|
||
ENDIF
|
||
JP C,DelDIRn
|
||
LD HL,0xC001-0x10
|
||
LD BC,0x0010
|
||
.L4 ADD HL,BC
|
||
BIT 0,(HL)
|
||
JR Z,.L4
|
||
DEC HL
|
||
LD A,(HL)
|
||
AND 0x7F
|
||
INC A
|
||
LD IXL,A
|
||
ADD HL,BC
|
||
DlTree1 LD A,(HL)
|
||
AND 0x7F
|
||
CP IXL
|
||
JR NZ,DlTr31
|
||
PUSH HL
|
||
LD DE,DelName
|
||
INC HL
|
||
INC HL
|
||
DlTree2 LD A,(DE)
|
||
OR A
|
||
JR Z,DlTree4
|
||
CP (HL)
|
||
JR NZ,DlTree3
|
||
INC HL
|
||
INC DE
|
||
JR DlTree2
|
||
DlTree3 POP HL
|
||
BIT 7,(HL)
|
||
JP NZ,DelDIRn
|
||
DlTr31 ADD HL,BC
|
||
JR DlTree1
|
||
|
||
DlTree4 LD A,(HL)
|
||
OR A
|
||
JR NZ,DlTree3
|
||
POP HL
|
||
JR DelTree2
|
||
|
||
DelTree1 LD L,(IY + PANEL.FFL)
|
||
LD H,(IY + PANEL.FFH)
|
||
LD E,(IY + PANEL.CFL)
|
||
LD D,(IY + PANEL.CFH)
|
||
ADD HL,DE
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
; LD A,H
|
||
; OR 0xC0
|
||
; LD H,A
|
||
SET 6,H
|
||
SET 7,H
|
||
DelTree2 LD E,(HL)
|
||
INC HL
|
||
LD A,(HL)
|
||
LD BC,FileHDR.Attr;0x000E
|
||
ADD HL,BC
|
||
LD D,(HL)
|
||
INC HL
|
||
EX AF,AF'
|
||
PUSH DE
|
||
PUSH HL
|
||
LD C,L
|
||
LD B,H
|
||
LD L,(IY + PANEL.EFL)
|
||
LD H,(IY + PANEL.EFH)
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
; LD A,H
|
||
; OR 0xC0
|
||
; LD H,A
|
||
SET 6,H
|
||
SET 7,H
|
||
OR A
|
||
SBC HL,BC
|
||
LD C,L
|
||
LD B,H
|
||
POP HL
|
||
LD D,H
|
||
LD A,L
|
||
SUB 0x10
|
||
LD E,A
|
||
JR NC,.L1
|
||
DEC D
|
||
.L1 PUSH DE
|
||
LD A,B
|
||
OR C
|
||
JR Z,.L2
|
||
LDIR
|
||
.L2 POP HL
|
||
POP DE
|
||
DEC HL
|
||
LD (HL),D
|
||
LD A,L
|
||
SUB 0x0E
|
||
LD L,A
|
||
JR NC,.L3
|
||
DEC H
|
||
.L3 EX AF,AF'
|
||
OR A
|
||
JR Z,.L4
|
||
LD (HL),A
|
||
.L4 DEC HL
|
||
BIT 7,E
|
||
JR Z,DelTree3
|
||
RES 7,E
|
||
LD BC,0x0010
|
||
ADD HL,BC
|
||
DelTr1 SBC HL,BC
|
||
LD A,(HL)
|
||
AND 0x7F
|
||
CP E
|
||
JR C,DelTree3
|
||
JR NZ,DelTr1
|
||
.L1 SET 7,(HL)
|
||
DelTree3 LD L,(IY + PANEL.EFL)
|
||
LD H,(IY + PANEL.EFH)
|
||
DEC HL
|
||
LD (IY + PANEL.EFL),L
|
||
LD (IY + PANEL.EFH),H
|
||
LD L,(IY + PANEL.FFL)
|
||
LD H,(IY + PANEL.FFH)
|
||
LD E,(IY + PANEL.CFL)
|
||
LD D,(IY + PANEL.CFH)
|
||
LD A,H
|
||
OR L
|
||
JR Z,DelTree4
|
||
DEC HL
|
||
LD (IY + PANEL.FFL),L
|
||
LD (IY + PANEL.FFH),H
|
||
ADD HL,DE
|
||
LD C,(IY + PANEL.EFL)
|
||
LD B,(IY + PANEL.EFH)
|
||
INC HL
|
||
SBC HL,BC
|
||
JR NC,DelTree4
|
||
INC DE
|
||
DelTree4 LD (IY + PANEL.CFL),E
|
||
LD (IY + PANEL.CFH),D
|
||
LD HL,WorkBuffer
|
||
PUSH IY
|
||
SPDSS DSSF.CURDIR
|
||
POP IY
|
||
LD HL,BegDIR
|
||
PUSH IY
|
||
SPDSS DSSF.CHDIR
|
||
POP IY
|
||
JR C,DelDIR2
|
||
LD HL,TreeName
|
||
LD DE,WorkBuffer + 0x100
|
||
LD A,(FileAtribut)
|
||
PUSH IY
|
||
SPDSS DSSF.F_FIRST,0
|
||
POP IY
|
||
JR C,DelDIR2
|
||
LD HL,TreeName
|
||
PUSH IY
|
||
SPDSS DSSF.CREATE,,0
|
||
POP IY
|
||
JR C,DelDIR2
|
||
LD L,(IY + PANEL.EFL)
|
||
LD H,(IY + PANEL.EFH)
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
EX DE,HL
|
||
LD HL,0xC000
|
||
PUSH AF
|
||
SPDSS DSSF.WRITE
|
||
POP AF
|
||
SPDSS DSSF.CLOSE
|
||
DelDIR2 LD HL,WorkBuffer
|
||
SPDSS DSSF.CHDIR
|
||
DelDIRn POP AF
|
||
SETPORT WINSP.CPU3,,0
|
||
POP IY
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR NZ,DeleteExt1
|
||
CALL ReadDIR
|
||
CALL PrintDIR
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
CALL InitScrollBar
|
||
LD A,(IY + PANEL.VIEWFLAG)
|
||
AND VIEWFLAG.MASK
|
||
PUSH AF
|
||
CALL Z,PrnHScrBar
|
||
POP AF
|
||
CALL NZ,PrnVScrBar
|
||
PUSH IY
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD IY,RightPanel
|
||
JR Z,.L1
|
||
LD IY,LeftPanel
|
||
.L1 CALL PrintDIR
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
CALL PrnVScrBar
|
||
POP IY
|
||
RET
|
||
|
||
DeleteExt1 INC SP
|
||
INC SP
|
||
CALL PrintDIR
|
||
CALL PrnFileInfo
|
||
CALL SetInvert
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
CALL InitScrollBar
|
||
CALL PrnVScrBar
|
||
IF TREE_REZID
|
||
CALL MakeTreePathR
|
||
ELSE
|
||
CALL MakeTreePathR
|
||
ENDIF
|
||
PUSH IY
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD IY,RightPanel
|
||
JR Z,.L1
|
||
LD IY,LeftPanel
|
||
.L1 CALL NewDIRECTORY
|
||
POP IY
|
||
RET
|
||
|
||
DelName DB 13 DUP 0
|
||
|
||
;[]==========================================================[]
|
||
QuitConfirmWin
|
||
MAKEWINDOW WINSUBOBJ.STORE
|
||
W_MAIN 208,88,224,50
|
||
W_FILL 4,2,216,10,COLORI.BLACK
|
||
W_TEXT 104,3,COLORI.WHITE,"Quit"
|
||
W_TEXT 28,19,COLORP.HIGHGRAY,"Do you want quit Flex Navigator ?"
|
||
W_BUTTON 32,32,72,14
|
||
W_TEXT 58,35,COLORP.HIGHGRAY,"Yes"
|
||
W_BUTTON 120,32,72,14
|
||
W_TEXT 150,35,COLORP.HIGHGRAY,"No"
|
||
W_END
|
||
.Loop LD IX,QuitTab
|
||
CALL TestCoords
|
||
SPDSS DSSF.SCANKEY
|
||
JR Z,.Loop
|
||
LD A,B
|
||
OR A
|
||
JR NZ,.Loop
|
||
LD A,E
|
||
CP 0x1B
|
||
JR Z,.Abort
|
||
CP 0x0D
|
||
JR Z,.OK
|
||
RES 5,A
|
||
CP 'Y'
|
||
JR Z,.OK
|
||
CP 'N'
|
||
JR NZ,.Loop
|
||
.Abort
|
||
WINDOWCLOSE
|
||
SCF
|
||
RET
|
||
|
||
.OK
|
||
WINDOWCLOSE
|
||
OR A
|
||
RET
|