691 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			691 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | ||
| ; LAST UPDATE: 28.05.2025 savelij
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| ReadDIR		BIT	VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
 | ||
| 	IF TREE_REZID
 | ||
| 		JP	NZ,RESIDENT.ReadTree
 | ||
| 	ELSE
 | ||
| 		JP	NZ,ReadTreeR
 | ||
| 	ENDIF
 | ||
| 	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
 | ||
| 		PUSH	IY
 | ||
| 		POP	HL
 | ||
| 		LD BC,PANEL.EFL
 | ||
| 		ADD HL,BC
 | ||
| 		LD B,PANEL.FILEMASK - PANEL.EFL
 | ||
| .L5		LD (HL),0
 | ||
| 		INC HL
 | ||
| 		DJNZ .L5
 | ||
| 		BIT	SORTFLAG.B_FILTER,(IY + PANEL.SORTFLAG)
 | ||
| 		JR	NZ,.L2
 | ||
| 		LD	HL,NORMmask
 | ||
| .L2		LD	DE,FILEmask
 | ||
| 		LD	C,MASK_SIZE
 | ||
| 		LDIR 
 | ||
| 		LD	IX,0x0000
 | ||
| 		LD	HL,CPU3
 | ||
| 		LD	(AdrNxtFile),HL
 | ||
| 		LD	B,0x08
 | ||
| 		SUB	A
 | ||
| .L3		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		DJNZ	.L3
 | ||
| 		CALL	FindFILES
 | ||
| 		LD	E,IXL
 | ||
| 		LD	D,IXH
 | ||
| 		LD	HL,(AdrNxtFile)
 | ||
| 		LD	B,0x08
 | ||
| 		SUB	A
 | ||
| .L4		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		DJNZ	.L4
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU3,,0
 | ||
| 		LD	(IY + PANEL.EFL),E	     ;EQUIP FIL
 | ||
| 		LD	(IY + PANEL.EFH),D
 | ||
| 		LD	A,(IY + PANEL.SORTFLAG)
 | ||
| 		AND	SORTFLAG.MASK
 | ||
| 		JP	NZ,SortDIR
 | ||
| 		RET 
 | ||
| 
 | ||
| AdrNxtFile	DEFW	0x0000
 | ||
| FileAtribut	DB	DIR.M_Archive + \
 | ||
| 			DIR.M_Dir + \
 | ||
| 			DIR.M_System + \
 | ||
| 			DIR.M_Hidden + \
 | ||
| 			DIR.M_ReadOnly
 | ||
| NORMmask	DEFB	"*.*"
 | ||
| 		DB	MASK_SIZE - STRLEN("*.*") DUP 0
 | ||
| FILEmask	DB	MASK_SIZE DUP 0
 | ||
| 
 | ||
| FindFILES	BIT	SORTFLAG.B_FILTER,(IY + PANEL.SORTFLAG)
 | ||
| 		JR	NZ,FindFILESm
 | ||
| 		LD	HL,FILEmask
 | ||
| 		LD	DE,WorkBuffer
 | ||
| 		LD	A,(FileAtribut)
 | ||
| 		PUSH	IY
 | ||
| 		PUSH	IX
 | ||
| 		PUSH	DE
 | ||
| 	SPDSS DSSF.F_FIRST,0
 | ||
| 		POP	HL
 | ||
| 		POP	IX
 | ||
| 		POP	IY
 | ||
| 		RET	C
 | ||
| FndFILE		CALL	InsFileInfo
 | ||
| 		RET	C
 | ||
| 		LD	DE,WorkBuffer
 | ||
| 		PUSH	IY
 | ||
| 		PUSH	IX
 | ||
| 		PUSH	DE
 | ||
| 	SPDSS DSSF.F_NEXT
 | ||
| 		POP	HL
 | ||
| 		POP	IX
 | ||
| 		POP	IY
 | ||
| 		JR	NC,FndFILE
 | ||
| 		RET 
 | ||
| 
 | ||
| FindFILESm	LD	HL,NORMmask
 | ||
| 		LD	DE,WorkBuffer
 | ||
| 		LD	A,(FileAtribut)
 | ||
| 		AND	DIR.M_Archive + \
 | ||
| 			DIR.M_Dir + \
 | ||
| 			DIR.M_System + \
 | ||
| 			DIR.M_Hidden + \
 | ||
| 			DIR.M_ReadOnly
 | ||
| 		PUSH	IY
 | ||
| 		PUSH	IX
 | ||
| 		PUSH	DE
 | ||
| 	SPDSS DSSF.F_FIRST,0
 | ||
| 		POP	HL
 | ||
| 		POP	IX
 | ||
| 		POP	IY
 | ||
| 		RET	C
 | ||
| FFILEm1		LD	A,(WorkBuffer + FFIRST.Attr);+0x20)
 | ||
| 		AND DIR.M_Dir;0x10
 | ||
| 		CALL	NZ,InsFileInfo
 | ||
| 		RET	C
 | ||
| 		LD	DE,WorkBuffer
 | ||
| 		PUSH	IY
 | ||
| 		PUSH	IX
 | ||
| 		PUSH	DE
 | ||
| 	SPDSS DSSF.F_NEXT
 | ||
| 		POP	HL
 | ||
| 		POP	IX
 | ||
| 		POP	IY
 | ||
| 		JR	NC,FFILEm1
 | ||
| 		LD	HL,FILEmask
 | ||
| 		LD	DE,WorkBuffer
 | ||
| 		LD	A,(FileAtribut)
 | ||
| 		AND	DIR.M_Archive + \
 | ||
| 			DIR.M_System + \
 | ||
| 			DIR.M_Hidden + \
 | ||
| 			DIR.M_ReadOnly
 | ||
| 		PUSH	IY
 | ||
| 		PUSH	IX
 | ||
| 		PUSH	DE
 | ||
| 	SPDSS DSSF.F_FIRST,0
 | ||
| 		POP	HL
 | ||
| 		POP	IX
 | ||
| 		POP	IY
 | ||
| 		RET	C
 | ||
| FFILEm2		CALL	InsFileInfo
 | ||
| 		RET	C
 | ||
| 		LD	DE,WorkBuffer
 | ||
| 		PUSH	IY
 | ||
| 		PUSH	IX
 | ||
| 		PUSH	DE
 | ||
| 	SPDSS DSSF.F_NEXT
 | ||
| 		POP	HL
 | ||
| 		POP	IX
 | ||
| 		POP	IY
 | ||
| 		JR	NC,FFILEm2
 | ||
| 		RET 
 | ||
| 
 | ||
| InsFileInfo	EX	DE,HL
 | ||
| 		LD	HL,(AdrNxtFile)
 | ||
| 		LD	BC,FileHDR.SIZE
 | ||
| 		ADD	HL,BC
 | ||
| 		SBC	HL,BC
 | ||
| 		EX	DE,HL
 | ||
| 		RET	C
 | ||
| 		SUB	A
 | ||
| 		LD	(DE),A
 | ||
| 		INC	DE
 | ||
| 		PUSH	HL
 | ||
| 		LD	BC,FFIRST.Attr;0x20
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	B,(HL)			; FFIRST.Attr
 | ||
| 		INC	HL
 | ||
| 		LD	A,B
 | ||
| 		EX	AF,AF'
 | ||
| 		LD	A,(HL)			; FFIRST.Name
 | ||
| 		INC	HL
 | ||
| 		LD	C,(HL)			; FFIRST.Name + 1
 | ||
| 		DEC	HL
 | ||
| ; <20><EFBFBD>ઠ <20><> <20><><EFBFBD><EFBFBD><EFBFBD>४<EFBFBD><E0A5AA><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 		CP	'.'
 | ||
| 		JR	NZ,InsF1
 | ||
| 		LD	A,' '
 | ||
| 		SUB	C
 | ||
| 		JR	NZ,InsF1
 | ||
| ; <20>ய<EFBFBD><E0AEAF><EFBFBD> <20> <20><><EFBFBD> "."
 | ||
| InsFext		POP	HL
 | ||
| 		OR	A
 | ||
| 		RET
 | ||
| 
 | ||
| InsF1		BIT	DIR.B_Dir,B		; <20><>४<EFBFBD><E0A5AA><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 䠩<>?
 | ||
| 		JR	NZ,InsF2
 | ||
| ; <20><><EFBFBD> 䠩<>
 | ||
| 		OR	A
 | ||
| 		BIT	SORTFLAG.B_EXEC,(IY + PANEL.SORTFLAG)
 | ||
| 		CALL	NZ,TestExe
 | ||
| 		JR	C,InsFext
 | ||
| 		LD	B,FileHDR.Name_Size
 | ||
| .L1		LD	A,(HL)
 | ||
| 		CALL	CorrBigChar
 | ||
| 		LD	(DE),A
 | ||
| 		INC	HL
 | ||
| 		INC	DE
 | ||
| 		DJNZ	.L1
 | ||
| 		LD	A,0x01
 | ||
| 		LD	(DE),A
 | ||
| 		INC	DE
 | ||
| 		LD	B,FileHDR.Ext_Size
 | ||
| .L2		LD	A,(HL)
 | ||
| 		CALL	CorrBigChar
 | ||
| 		LD	(DE),A
 | ||
| 		INC	HL
 | ||
| 		INC	DE
 | ||
| 		DJNZ	.L2
 | ||
| 		JR	InsF3
 | ||
| 
 | ||
| ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
 | ||
| InsF2		LD BC,DIR.Name_Size 
 | ||
| 		LDIR
 | ||
| 		LD	A,0x01
 | ||
| 		LD	(DE),A
 | ||
| 		INC	DE
 | ||
| 		LD C,DIR.Ext_Size
 | ||
| 		LDIR
 | ||
| InsF3		SUB	A
 | ||
| 		LD	(DE),A
 | ||
| 		INC	DE
 | ||
| 		EX	AF,AF'
 | ||
| 		LD	(DE),A			; DIR.Attr
 | ||
| 		INC	DE
 | ||
| 		POP	HL
 | ||
| 		PUSH	HL
 | ||
| 		LD	BC,DIR.FileSize
 | ||
| 		ADD	HL,BC
 | ||
| 		LD C,DIR.FileSize_Size
 | ||
| 		LDIR
 | ||
| 		POP	HL
 | ||
| 		PUSH	HL
 | ||
| 		LD	C,DIR.WrtDate
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	A,(HL)
 | ||
| 		AND	0x1F			; <20><>
 | ||
| 		LD	(DE),A
 | ||
| 		INC	DE
 | ||
| 		LD	C,(HL)
 | ||
| 		INC	HL
 | ||
| 		LD	B,(HL)
 | ||
| 		LD H,B
 | ||
| 		LD L,C
 | ||
| 		ADD HL,HL
 | ||
| 		ADD HL,HL
 | ||
| 		ADD HL,HL
 | ||
| 		LD A,H
 | ||
| 		AND	0x0F			; <20><><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 		LD	(DE),A
 | ||
| 		INC	DE
 | ||
| 		LD A,B
 | ||
| 		SRL	A
 | ||
| 		ADD	A,80
 | ||
| .L1		SUB	100
 | ||
| 		JR	NC,.L1
 | ||
| 		ADD	A,100			; <20><><EFBFBD>
 | ||
| 		LD	(DE),A
 | ||
| 		INC	DE
 | ||
| 		POP	HL
 | ||
| 		LD	BC,DIR.WrtTime
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	C,(HL)
 | ||
| 		INC	HL
 | ||
| 		LD	B,(HL)
 | ||
| 		LD	A,B
 | ||
| 		AND	0xF8
 | ||
| 		RRA 
 | ||
| 		RRA 
 | ||
| 		RRA 
 | ||
| 		LD	(DE),A			; <20><><EFBFBD><EFBFBD>
 | ||
| 		INC	DE
 | ||
| 		LD H,B
 | ||
| 		LD L,C
 | ||
| 		ADD HL,HL
 | ||
| 		ADD HL,HL
 | ||
| 		ADD HL,HL
 | ||
| 		LD	A,H
 | ||
| 		AND	0x3F
 | ||
| 		LD	(DE),A			; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 		INC	DE
 | ||
| 		LD	(AdrNxtFile),DE
 | ||
| 		INC	IX
 | ||
| 		RET 
 | ||
| 
 | ||
| TestExe		PUSH	HL
 | ||
| 		LD	A,L
 | ||
| 		ADD	A,8
 | ||
| 		LD	L,A
 | ||
| 		JR	NC,.L1
 | ||
| 		INC	H
 | ||
| .L1		LD	A,(HL)
 | ||
| 		INC	HL
 | ||
| 		CP	'E'
 | ||
| 		JR	NZ,TestExe1
 | ||
| 		LD	A,(HL)
 | ||
| 		INC	HL
 | ||
| 		CP	'X'
 | ||
| 		JR	NZ,TestExe1
 | ||
| 		LD	A,(HL)
 | ||
| 		CP	'E'
 | ||
| 		JR	NZ,TestExe1
 | ||
| 		POP	HL
 | ||
| 		OR	A
 | ||
| 		RET 
 | ||
| 
 | ||
| TestExe1	POP	HL
 | ||
| 		PUSH	HL
 | ||
| 		LD	A,L
 | ||
| 		ADD	A,8
 | ||
| 		LD	L,A
 | ||
| 		JR	NC,.L1
 | ||
| 		INC	H
 | ||
| .L1		LD	A,(HL)
 | ||
| 		INC	HL
 | ||
| 		CP	'T'
 | ||
| 		JR	NZ,TestExeC
 | ||
| 		LD	A,(HL)
 | ||
| 		INC	HL
 | ||
| 		CP	'R'
 | ||
| 		JR	NZ,TestExeC
 | ||
| 		LD	A,(HL)
 | ||
| 		CP	'D'
 | ||
| 		JR	NZ,TestExeC
 | ||
| 		POP	HL
 | ||
| 		OR	A
 | ||
| 		RET 
 | ||
| 
 | ||
| TestExeC	POP	HL
 | ||
| 		SCF 
 | ||
| 		RET 
 | ||
| 
 | ||
| ; <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD>४樨 <20>㪢<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>쪮<EFBFBD> <20>㪢<EFBFBD>
 | ||
| CorrBigChar	CP	'A'
 | ||
| 		RET	C
 | ||
| 		CP	'Z' + 1
 | ||
| 		JR	NC,CorrCh1
 | ||
| 		SET	5,A
 | ||
| 		RET 
 | ||
| 
 | ||
| CorrCh1		CP	0x80
 | ||
| 		RET	C
 | ||
| 		CP	0xA0
 | ||
| 		RET	NC
 | ||
| 		ADD	A,0x20
 | ||
| 		CP	0xB0
 | ||
| 		RET	C
 | ||
| 		ADD	A,0x30
 | ||
| 		RET 
 | ||
| 
 | ||
| ; <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD>४樨 <20>㪢<EFBFBD> <20> <20><><EFBFBD><EFBFBD>让 <20>㪢<EFBFBD>
 | ||
| CorrSmallChar	CP	'a'
 | ||
| 		RET	C
 | ||
| 		CP	'z' + 1
 | ||
| 		JR	NC,.CorrCh2
 | ||
| 		RES	5,A
 | ||
| 		RET 
 | ||
| 
 | ||
| .CorrCh2	CP	0xA0
 | ||
| 		RET	C
 | ||
| 		CP	0xB0
 | ||
| 		JR	NC,.CorrCh3
 | ||
| 		SUB	0x20
 | ||
| 		RET 
 | ||
| 
 | ||
| .CorrCh3	CP	0xE0
 | ||
| 		RET	C
 | ||
| 		SUB	0x50
 | ||
| 		RET
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| SortDIR
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		LD	C,A
 | ||
| 	GETPORT WINSP.CPU3
 | ||
| 		LD	B,A
 | ||
| 		PUSH	BC
 | ||
| 		BIT	PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
 | ||
| 		LD	A,(RAMPAGES.LEFTPANEL)
 | ||
| 		JR	Z,.L1
 | ||
| 		LD	A,(RAMPAGES.RIGHTPANEL)
 | ||
| .L1
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		LD	A,(RAMPAGES.BuffPg3)
 | ||
| 	SETPORT WINSP.CPU3,,0
 | ||
| 		LD	HL,CPU3
 | ||
| 		LD	(EndSort),HL
 | ||
| 		SUB	A
 | ||
| 		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		LD	(HL),A
 | ||
| 		LD	(BegSort),HL
 | ||
| 		LD	A,(IY + PANEL.SORTFLAG)
 | ||
| 		RRA 
 | ||
| 		LD	HL,SortABC		; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><> Name CTRL+F3
 | ||
| 		JR	C,.SortBeg
 | ||
| 		RRA 
 | ||
| 		LD	HL,SortExt		; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><> Extension CTRL+F4
 | ||
| 		JR	C,.SortBeg
 | ||
| 		RRA 
 | ||
| 		LD	HL,SortData		; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><> Date CTRL+F5
 | ||
| 		JR	C,.SortBeg
 | ||
| 		LD	HL,SortSize		; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><> Size CTRL+F6
 | ||
| .SortBeg	LD	(.Scall1),HL
 | ||
| 		LD	(.Scall2),HL
 | ||
| 		LD (.Scall3),HL
 | ||
| 		LD	IX,CPU1 + 1
 | ||
| 		LD	HL,CPU1 + 1
 | ||
| ; <20><EFBFBD>ઠ <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>४<EFBFBD><E0A5AA>ਨ
 | ||
| 		BIT DIR.B_Dir,(IX + FileHDR.Attr - 1)
 | ||
| 		JR Z,.SortStart
 | ||
| ; <20> <20><><EFBFBD><EFBFBD><EFBFBD>४<EFBFBD><E0A5AA><EFBFBD><EFBFBD><EFBFBD> <20><> <20><EFBFBD>ઠ <20><> <20><><EFBFBD> ".."
 | ||
| 		LD A,(HL)
 | ||
| 		CP '.'
 | ||
| 		JR NZ,.SortStart
 | ||
| 		INC HL
 | ||
| 		LD A,(HL)
 | ||
| 		DEC HL
 | ||
| 		CP '.'
 | ||
| 		JR NZ,.SortStart
 | ||
| ; <20><><EFBFBD><EFBFBD>ᨬ <20><><EFBFBD><EFBFBD> ".."
 | ||
| 		PUSH HL
 | ||
| 		CALL 0
 | ||
| .Scall3		EQU $-2
 | ||
| 		LD	BC,FileHDR.SIZE
 | ||
| 		LD HL,CPU3
 | ||
| 		ADD HL,BC
 | ||
| 		LD (EndSort),HL
 | ||
| 		LD (HL),0
 | ||
| 		INC HL
 | ||
| 		LD (HL),0
 | ||
| 		LD (BegSort),HL
 | ||
| 		POP HL
 | ||
| 		ADD	IX,BC
 | ||
| 		ADD	HL,BC
 | ||
| ; <20><>砫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20>ᥣ<EFBFBD> <20><>⠫쭮<E2A0AB><ECADAE>
 | ||
| .SortStart	PUSH	IX
 | ||
| 		PUSH	HL
 | ||
| .SortDIRlp1	LD	A,(HL)
 | ||
| 		OR	A
 | ||
| 		JR	Z,.SortDIRnxt
 | ||
| 		BIT DIR.B_Dir,(IX + FileHDR.Attr - 1)
 | ||
| 		PUSH	HL
 | ||
| 		CALL	NZ,0x0000		; <20><EFBFBD>ઠ <20><><EFBFBD> DIR
 | ||
| .Scall1		EQU $-2
 | ||
| 		POP	HL
 | ||
| 		LD	BC,FileHDR.SIZE
 | ||
| 		ADD	IX,BC
 | ||
| 		ADD	HL,BC
 | ||
| 		JR	.SortDIRlp1
 | ||
| 
 | ||
| .SortDIRnxt	LD	HL,(EndSort)
 | ||
| 		SUB	A
 | ||
| 		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		LD	(HL),A
 | ||
| 		LD	(BegSort),HL
 | ||
| 		POP	HL
 | ||
| 		POP	IX
 | ||
| .SortDIRlp2	LD	A,(HL)
 | ||
| 		OR	A
 | ||
| 		JR	Z,.SortDIRext
 | ||
| 		BIT DIR.B_Dir,(IX + FileHDR.Attr - 1)
 | ||
| 		PUSH	HL
 | ||
| 		CALL	Z,0x0000		; <20><EFBFBD>ઠ <20><><EFBFBD> 䠩<><E4A0A9>
 | ||
| .Scall2		EQU $-2
 | ||
| 		POP	HL
 | ||
| 		LD	BC,FileHDR.SIZE
 | ||
| 		ADD	IX,BC
 | ||
| 		ADD	HL,BC
 | ||
| 		JR	.SortDIRlp2
 | ||
| 
 | ||
| .SortDIRext	LD	HL,(EndSort)
 | ||
| 		LD	B,0x08
 | ||
| 		SUB	A
 | ||
| .L3		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		DJNZ	.L3
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		LD	(RAMPAGES.BuffPg3),A
 | ||
| 	GETPORT WINSP.CPU3
 | ||
| 		BIT	PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
 | ||
| 		LD	HL,RAMPAGES.LEFTPANEL
 | ||
| 		JR	Z,.L2
 | ||
| 		LD	HL,RAMPAGES.RIGHTPANEL
 | ||
| .L2		LD	(HL),A
 | ||
| 		POP	BC
 | ||
| 		LD	A,B
 | ||
| 	SETPORT WINSP.CPU3,,0
 | ||
| 		LD	A,C
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		RET 
 | ||
| 
 | ||
| BegSort		DEFW	0x0000
 | ||
| EndSort		DEFW	0x0000
 | ||
| 
 | ||
| ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><> Name CTRL+F3
 | ||
| SortABC		EX	DE,HL
 | ||
| 		LD	HL,(BegSort)
 | ||
| .Sabc1		LD	A,(HL)
 | ||
| 		OR	A
 | ||
| 		JP	Z,SortDIRins
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	HL
 | ||
| 		LD	B,12
 | ||
| .Sabc2		LD	A,(DE)	;(DE) <	(HL)  "C"
 | ||
| 		CP	(HL)	;(DE) >= (HL) "NC"
 | ||
| 		JR	NZ,.Sabc3
 | ||
| 		INC	DE
 | ||
| 		INC	HL
 | ||
| 		DJNZ	.Sabc2
 | ||
| .Sabc3		POP	HL
 | ||
| 		POP	DE
 | ||
| 		JP	C,SortDIRins
 | ||
| 		LD	BC,FileHDR.SIZE
 | ||
| 		ADD	HL,BC
 | ||
| 		JR	.Sabc1
 | ||
| 
 | ||
| ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><> Extension CTRL+F4
 | ||
| SortExt		EX	DE,HL
 | ||
| 		LD	HL,(BegSort)
 | ||
| .Sext1		LD	A,(HL)
 | ||
| 		OR	A
 | ||
| 		JP	Z,SortDIRins
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	HL
 | ||
| 		LD	BC,0x0009
 | ||
| 		ADD	HL,BC
 | ||
| 		EX	DE,HL
 | ||
| 		ADD	HL,BC
 | ||
| 		EX	DE,HL
 | ||
| 		LD	B,03
 | ||
| .Sext2		LD	A,(DE)	;(DE) <	(HL)  "C"
 | ||
| 		CP	(HL)	;(DE) >= (HL) "NC"
 | ||
| 		JR	NZ,.Sext4
 | ||
| 		INC	DE
 | ||
| 		INC	HL
 | ||
| 		DJNZ	.Sext2
 | ||
| 		POP	HL
 | ||
| 		POP	DE
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	HL
 | ||
| 		LD	B,8
 | ||
| .Sext3		LD	A,(DE)	;(DE) <	(HL)  "C"
 | ||
| 		CP	(HL)	;(DE) >= (HL) "NC"
 | ||
| 		JR	NZ,.Sext4
 | ||
| 		INC	DE
 | ||
| 		INC	HL
 | ||
| 		DJNZ	.Sext3
 | ||
| .Sext4		POP	HL
 | ||
| 		POP	DE
 | ||
| 		JP	C,SortDIRins
 | ||
| 		LD	BC,FileHDR.SIZE
 | ||
| 		ADD	HL,BC
 | ||
| 		JR	.Sext1
 | ||
| 
 | ||
| ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><> Date CTRL+F5
 | ||
| SortData	EX	DE,HL
 | ||
| 		LD	HL,(BegSort)
 | ||
| .Sdata1		LD	A,(HL)
 | ||
| 		OR	A
 | ||
| 		JP	Z,SortDIRins
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	HL
 | ||
| 		LD	BC,0x0014
 | ||
| 		ADD	HL,BC
 | ||
| 		EX	DE,HL
 | ||
| 		ADD	HL,BC
 | ||
| 		EX	DE,HL
 | ||
| 		LD	A,(DE)	;(DE) <	(HL)  "C"
 | ||
| 		CP	(HL)	;(DE) >= (HL) "NC"
 | ||
| 		JR	NZ,.SdataE
 | ||
| 		DEC	DE
 | ||
| 		DEC	HL
 | ||
| 		LD	A,(DE)	;(DE) <	(HL)  "C"
 | ||
| 		CP	(HL)	;(DE) >= (HL) "NC"
 | ||
| 		JR	NZ,.SdataE
 | ||
| 		DEC	DE
 | ||
| 		DEC	HL
 | ||
| 		LD	A,(DE)	;(DE) <	(HL)  "C"
 | ||
| 		CP	(HL)	;(DE) >= (HL) "NC"
 | ||
| 		JR	NZ,.SdataE
 | ||
| 		INC	HL
 | ||
| 		INC	HL
 | ||
| 		INC	HL
 | ||
| 		INC	DE
 | ||
| 		INC	DE
 | ||
| 		INC	DE
 | ||
| 		LD	A,(DE)	;(DE) <	(HL)  "C"
 | ||
| 		CP	(HL)	;(DE) >= (HL) "NC"
 | ||
| 		JR	NZ,.SdataE
 | ||
| 		INC	DE
 | ||
| 		INC	HL
 | ||
| 		LD	A,(DE)	;(DE) <	(HL)  "C"
 | ||
| 		CP	(HL)	;(DE) >= (HL) "NC"
 | ||
| 		JR	NZ,.SdataE
 | ||
| 		POP	HL
 | ||
| 		POP	DE
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	HL
 | ||
| 		LD	B,12
 | ||
| .Sdata2		LD	A,(DE)	;(DE) <	(HL)  "C"
 | ||
| 		CP	(HL)	;(DE) >= (HL) "NC"
 | ||
| 		JR	NZ,.SdataE
 | ||
| 		INC	DE
 | ||
| 		INC	HL
 | ||
| 		DJNZ	.Sdata2
 | ||
| .SdataE		POP	HL
 | ||
| 		POP	DE
 | ||
| 		JR	C,SortDIRins
 | ||
| 		LD	BC,FileHDR.SIZE
 | ||
| 		ADD	HL,BC
 | ||
| 		JR	.Sdata1
 | ||
| 
 | ||
| ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><> Size CTRL+F6
 | ||
| SortSize	EX	DE,HL
 | ||
| 		LD	HL,(BegSort)
 | ||
| .Ssize1		LD	A,(HL)
 | ||
| 		OR	A
 | ||
| 		JR	Z,SortDIRins
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	HL
 | ||
| 		LD	BC,0x0011
 | ||
| 		ADD	HL,BC
 | ||
| 		EX	DE,HL
 | ||
| 		ADD	HL,BC
 | ||
| 		EX	DE,HL
 | ||
| 		LD	A,(DE)	;(DE) <	(HL)  "C"
 | ||
| 		CP	(HL)	;(DE) >= (HL) "NC"
 | ||
| 		JR	NZ,.SsizeE
 | ||
| 		DEC	DE
 | ||
| 		DEC	HL
 | ||
| 		LD	A,(DE)	;(DE) <	(HL)  "C"
 | ||
| 		CP	(HL)	;(DE) >= (HL) "NC"
 | ||
| 		JR	NZ,.SsizeE
 | ||
| 		DEC	DE
 | ||
| 		DEC	HL
 | ||
| 		LD	A,(DE)	;(DE) <	(HL)  "C"
 | ||
| 		CP	(HL)	;(DE) >= (HL) "NC"
 | ||
| 		JR	NZ,.SsizeE
 | ||
| 		DEC	DE
 | ||
| 		DEC	HL
 | ||
| 		LD	A,(DE)	;(DE) <	(HL)  "C"
 | ||
| 		CP	(HL)	;(DE) >= (HL) "NC"
 | ||
| 		JR	NZ,.SsizeE
 | ||
| 		POP	HL
 | ||
| 		POP	DE
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	HL
 | ||
| 		LD	B,12
 | ||
| .Ssize2		LD	A,(DE)	;(DE) <	(HL)  "C"
 | ||
| 		CP	(HL)	;(DE) >= (HL) "NC"
 | ||
| 		JR	NZ,.SsizeE
 | ||
| 		INC	DE
 | ||
| 		INC	HL
 | ||
| 		DJNZ	.Ssize2
 | ||
| .SsizeE		POP	HL
 | ||
| 		POP	DE
 | ||
| 		JR	C,SortDIRins
 | ||
| 		LD	BC,FileHDR.SIZE
 | ||
| 		ADD	HL,BC
 | ||
| 		JR	.Ssize1
 | ||
| 
 | ||
| SortDIRins	DEC	HL
 | ||
| 		DEC	DE
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	HL
 | ||
| 		EX	DE,HL
 | ||
| 		LD	HL,(EndSort)
 | ||
| 		PUSH	HL
 | ||
| 		OR	A
 | ||
| 		SBC	HL,DE
 | ||
| 		LD	B,H
 | ||
| 		LD	C,L
 | ||
| 		POP	DE
 | ||
| 		LD	HL,FileHDR.SIZE
 | ||
| 		ADD	HL,DE
 | ||
| 		LD	(EndSort),HL
 | ||
| 		SUB	A
 | ||
| 		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		LD	(HL),A
 | ||
| 		DEC	HL
 | ||
| 		EX	DE,HL
 | ||
| 		LD	A,B
 | ||
| 		OR	C
 | ||
| 		CALL	NZ,MoveBytesUp
 | ||
| 		POP	DE
 | ||
| 		POP	HL
 | ||
| 		LD	BC,FileHDR.SIZE
 | ||
| 		LDIR 
 | ||
| 		RET 
 |