2419 lines
		
	
	
		
			40 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			2419 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)
 | ||
| 		CALL	CorrBigChar
 | ||
| 		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)
 | ||
| 		CALL	CorrSmallChar
 | ||
| 		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)
 | ||
| 		CALL	CorrSmallChar
 | ||
| 		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
 |