571 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			571 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | ||
| ; LAST UPDATE: 03.06.2025 savelij
 | ||
| 
 | ||
| ;[]=======================================================================[]
 | ||
| ;				FLEX NAVIGATOR			      	   ;
 | ||
| ;				     v1.11			           ;
 | ||
| ;			   Last	edition: 03/02/2000		           ;
 | ||
| ;[]=======================================================================[]
 | ||
| 
 | ||
| ; flex navigator equs
 | ||
| 		include fn_const.a80
 | ||
| 		include fn_macros.a80
 | ||
| 
 | ||
| ;[]-----------------------------------------------------------------------[]
 | ||
| ;		org	BASE_ADDR	;0x8000
 | ||
| ;	section	.bss
 | ||
| 
 | ||
| ;WorkBuffer:	EQU 0x8000
 | ||
| 		;resb	0x400			; work buffer for func/procs
 | ||
| 
 | ||
| ;[]-----------------------------------------------------------------------[]
 | ||
| ;		;	org	0x8400
 | ||
| ;	section	.bss
 | ||
| 
 | ||
| ;PagesList:	EQU 0x8400
 | ||
| 		;resb	0x100			; buffer for memory pages
 | ||
| ;[]-----------------------------------------------------------------------[]
 | ||
| ;		;	org	0x8500
 | ||
| ;	section	.text
 | ||
| 		PHASE BASE_ADDR
 | ||
| START_BLOCK_1
 | ||
| 
 | ||
| ;[]=======================================================================[]
 | ||
| ;	section	.text
 | ||
| 
 | ||
| ;EntryPoint:
 | ||
| 		JP	StartPoint		; entry point
 | ||
| 
 | ||
| 		JP	ClearScreen		; 8603->86BB
 | ||
| 		JP	MakeWindow		; 8606->86F0
 | ||
| 		JP	InvertRectan		; 8609->8DA0
 | ||
| 		JP	PrnTxtLnIFF		; 860C->8FB0
 | ||
| 		JP	PrnTxtLnNorm		; 860F->9024
 | ||
| 		JP	PrnTxtLnNormC		; 8612->909B
 | ||
| 		JP	PrnRangPathL		; 8615->8E48
 | ||
| 		JP	PrnRangPathR		; 8618->8EB2
 | ||
| 		JP	PrnRangPathC		; 861B->8F36
 | ||
| 		JP	InputLine		; 861E->915F
 | ||
| 		JP	InputLine.InpLnExtN	; 8621->9205
 | ||
| 		JP	InputLine.InpLnExtC	; 8624->920F
 | ||
| 		JP	DOSError		; 8627->86A8
 | ||
| 		JP	InitScrollBar		; 862A->96EB
 | ||
| 		JP	PrnHScrBar		; 862D->9729
 | ||
| 		JP	PrnVScrBar		; 8630->9882
 | ||
| 		JP	InitProcess		; 8633->99DA
 | ||
| 		JP	PrnProcess		; 8636->9A39
 | ||
| 		JP	InitScrollBar
 | ||
| 
 | ||
| 		DB	JUMPS.JUMPSIZE * 4 DUP 0xC9
 | ||
| 
 | ||
| 		JP	ResFire			; 8648->9B01
 | ||
| 		JP	TestCoords		; 864B->9B10
 | ||
| 		JP	SetCMOSPrint		; 864E->9EA9
 | ||
| 		JP	ResCMOSPrint		; 8651->9EF3
 | ||
| 		JP	SetClock		; 8654->A08E
 | ||
| 		JP	SetMouse		; 8657->A0BB
 | ||
| 
 | ||
| 		DB	JUMPS.JUMPSIZE * 4 DUP 0xC9
 | ||
| 
 | ||
| 		JP	ConvNumTxt40		; 8666->A1F7
 | ||
| 		JP	MoveBytes		; 8669->A3B6
 | ||
| 		JP	MoveBytesUp		; 866C->A3E3
 | ||
| 		JP	Mult8			; 866F->A0E8
 | ||
| 		JP	Mult16X8		; 8672->A124
 | ||
| 		JP	Mult16			; 8675->A110
 | ||
| 		JP	Mult16X16		; 8678->A124
 | ||
| 		JP	Mult32			; 867B->A149
 | ||
| 		JP	Divis16X16		; 867E->A16B
 | ||
| 		JP	Divis24X16		; 8681->A195
 | ||
| 		JP	Divis32X16		; 8684->A1B8
 | ||
| 		JP	Divis32			; 8687->A1CD
 | ||
| 		JP	ConvNumTxt32		; 868A->A236
 | ||
| 		JP	ConvNumTxt16		; 868D->A2AA
 | ||
| 		JP	ConvNumTxt8		; 8690->A2DE
 | ||
| 		JP	ConvTxtNum32		; 8693->A35D
 | ||
| 		JP	ConvTxtNum16		; 8696->A395
 | ||
| 		JP	Resident		; 8699->A40B
 | ||
| 
 | ||
| 		DB	0xC0 - LOW ($) DUP 0xC9
 | ||
| 
 | ||
| ;[]-----------------------------------------------------------------------[]
 | ||
| ; flex navigator settings
 | ||
| NUM_DEVICES	DB 0			; <20><><EFBFBD>-<2D><> <20><><EFBFBD>ன<EFBFBD><E0AEA9><EFBFBD>
 | ||
| TreeFlag	DB 0			; <20><><EFBFBD><EFBFBD> <20><>ॢ<EFBFBD>
 | ||
| CMOSFlag	DB 0			; <20><><EFBFBD><EFBFBD> CMOS 0 - <20><><EFBFBD>
 | ||
| 					;	    1 - <20><><EFBFBD><EFBFBD>
 | ||
| MouseFlag	DB 1			; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 0 - <20><><EFBFBD>
 | ||
| 					;	    1 - <20><><EFBFBD><EFBFBD>
 | ||
| CMOSPrint:	DB 1
 | ||
| RAMPAGES
 | ||
| .FNPAGESID	DB 0			; <20><><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> FN
 | ||
| .FNFUNCT	DB 0			; <20><>࠭<EFBFBD><E0A0AD><EFBFBD> <20> <20>㭪<EFBFBD><E3ADAA>ﬨ FN
 | ||
| .FNVIEW		DB 0			; <20><>࠭<EFBFBD><E0A0AD><EFBFBD> <20> FileViewer
 | ||
| .FNEDIT		DB 0			; <20><>࠭<EFBFBD><E0A0AD><EFBFBD> <20> FileEditor
 | ||
| .FNHELP		DB 0			; <20><>࠭<EFBFBD><E0A0AD><EFBFBD> FN HELP
 | ||
| .FNFONT		DB 0			; <20><>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD>⮢
 | ||
| .BufferID	DB 0			; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䨪<EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| .FLX		DB 0			; <20><>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD> FLX <20><><EFBFBD>ᬮ<EFBFBD><E1ACAE>. FLX <20>⨫<EFBFBD><E2A8AB>
 | ||
| .LEFTPANEL	DB 0			; <20><>࠭<EFBFBD><E0A0AD><EFBFBD> <20><>⠫<EFBFBD><E2A0AB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| .RIGHTPANEL	DB 0			; <20><>࠭<EFBFBD><E0A0AD><EFBFBD> <20><>⠫<EFBFBD><E2A0AB><EFBFBD> <20>ࠢ<EFBFBD><E0A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>䥩<EFBFBD>
 | ||
| .BuffPg1	DB 0
 | ||
| 		DB 0
 | ||
| .BuffPg3	DB 0
 | ||
| 		DB 0
 | ||
| 		DB 0
 | ||
| 
 | ||
| 		DB LOW (-$) DUP 0
 | ||
| 
 | ||
| ;UI palette & stack memory
 | ||
| ;PALETTE:		  B    G    R
 | ||
| 		DB	0x00,0x00,0x00,0x00	; Black		00 00
 | ||
| 		DB	0x00,0x00,0xFF,0x00	; B.Red		01
 | ||
| 		DB	0x00,0x80,0x00,0x00	; Green		02 08
 | ||
| 		DB	0x00,0xFF,0xFF,0x00	; B.Yellow	03
 | ||
| 		DB	0x80,0x00,0x00,0x00	; Blue		04 10
 | ||
| 		DB	0xFF,0xFF,0x00,0x00	; Invert paper	05
 | ||
| 		DB	0x80,0x00,0x00,0x00	; Invert ink	06 18
 | ||
| 		DB	0x80,0x80,0x80,0x00	; BlackGray	07
 | ||
| 		DB	0xC0,0xC0,0xC0,0x00	; HighGray	08 20
 | ||
| 		DB	0x80,0x00,0x00,0x00	; Panel		09
 | ||
| 		DB	0xFF,0xFF,0x00,0x00	; Files		0A 28
 | ||
| 		DB	0x00,0xFF,0xFF,0x00	; Select Files	0B
 | ||
| 		DB	0x00,0xFF,0xFF,0x00	; InvSel Files	0C 30
 | ||
| 		DB	0xC0,0xC0,0xC0,0x00	; Reserved	0D
 | ||
| 		DB	0xFF,0xFF,0xFF,0x00	; White		0E 38
 | ||
| 		DB	0xFF,0xFF,0xFF,0x00	; White		0F
 | ||
| 
 | ||
| DOSError	EX	AF,AF'
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 		LD	A,(RAMPAGES.FNFUNCT)
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EX	AF,AF'
 | ||
| 		CALL	DOSErrorR
 | ||
| 		EX	AF,AF'
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EX	AF,AF'
 | ||
| 		RET
 | ||
| 
 | ||
| 		include fnwin.a80
 | ||
| 		include fnprint.a80
 | ||
| 		include fninput.a80
 | ||
| 		include fnbar.a80
 | ||
| 		include fnmouse.a80
 | ||
| 		include fnsys.a80
 | ||
| 
 | ||
| ;[]=======================================================================[]
 | ||
| ;<3B><><EFBFBD><EFBFBD><EFBFBD>
 | ||
| StartPoint:	DI
 | ||
| 		LD	SP,STACK
 | ||
| ReStartPoint:
 | ||
| 	SETPORT BORDER,0
 | ||
| 	SETPORT WINSP.Y_PORT,0xC0
 | ||
| 		CALL	InitVideoMode
 | ||
| 		CALL	InitDrivers
 | ||
| 		CALL	InitScreen
 | ||
| 		CALL	ClearDOSline
 | ||
| 		SUB	A
 | ||
| 		CALL	InitPanels
 | ||
| 		CALL	ResFire
 | ||
| MainLoop:	LD	IX,FilePanelLeft
 | ||
| 		BIT	PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
 | ||
| 		JR	Z,.L1
 | ||
| 		LD	IX,FilePanelRight
 | ||
| .L1		CALL	TestCoords
 | ||
| 		CALL	TestKeys
 | ||
| 		CALL	C,DOSline
 | ||
| 		LD	A,(TreeFlag)
 | ||
| 		OR	A
 | ||
| 	IF TREE_REZID
 | ||
| 		CALL	NZ,RESIDENT.TestTree
 | ||
| 	ELSE
 | ||
| 		CALL	NZ,TestTreeR
 | ||
| 	ENDIF
 | ||
| 		JR	MainLoop
 | ||
| 
 | ||
| ;[]-----------------------------------------------------------------------[]
 | ||
| TestKeys
 | ||
| 	SPDSS DSSF.TESTKEY
 | ||
| 		JR	Z,KeyExit
 | ||
| 		RES	7,D
 | ||
| 		LD	A,B
 | ||
| 		AND	KEYBSTAT.M_ALT | KEYBSTAT.M_CTRL
 | ||
| 		CP	KEYBSTAT.M_ALT | KEYBSTAT.M_CTRL
 | ||
| 		RET	Z
 | ||
| 		LD	IX,HOTKEYS.SHIFTKeys
 | ||
| 		LD	A,B
 | ||
| 		AND	KEYBSTAT.M_LEFTSHIFT | KEYBSTAT.M_RIGHTSHIFT
 | ||
| 		JR	NZ,.L1
 | ||
| 		LD	IX,HOTKEYS.CTRLKeys
 | ||
| 		BIT	KEYBSTAT.B_CTRL,B
 | ||
| 		JR	NZ,.L1
 | ||
| 		LD	IX,HOTKEYS.ALTKeys
 | ||
| 		BIT	KEYBSTAT.B_ALT,B
 | ||
| 		JR	NZ,.L1
 | ||
| 		LD	IX,HOTKEYS.ASCIIKeys
 | ||
| .L1		LD	L,(IX+0x00)		; ᪠<> <20><><EFBFBD>
 | ||
| 		INC	IX
 | ||
| 		INC L
 | ||
| 		SCF
 | ||
| 		RET	Z
 | ||
| 		DEC L
 | ||
| 		LD	H,(IX+0x00)		; ASCII <20><><EFBFBD>
 | ||
| 		INC	IX
 | ||
| 		LD	C,(IX+0x00)		; LOW <20><><EFBFBD><EFBFBD><EFBFBD> <20>맮<EFBFBD><EBA7AE>
 | ||
| 		INC	IX
 | ||
| 		LD	B,(IX+0x00)		; HIGH <20><><EFBFBD><EFBFBD><EFBFBD> <20>맮<EFBFBD><EBA7AE>
 | ||
| 		INC	IX
 | ||
| 		OR	A
 | ||
| 		SBC	HL,DE
 | ||
| 		JR	NZ,.L1
 | ||
| 		LD	(KeyCALL),BC
 | ||
| 	SPDSS DSSF.SCANKEY
 | ||
| 		CALL	0x0000
 | ||
| KeyCALL		EQU $-2
 | ||
| KeyExit		XOR	A
 | ||
| 		RET
 | ||
| 
 | ||
| ;[]-----------------------------------------------------------------------[]
 | ||
| MouseOnOff	LD	A,(MouseFlag)
 | ||
| 		XOR	0x01
 | ||
| 		LD	(MouseFlag),A
 | ||
| 		LD	C,MOUSEF.INIT
 | ||
| 		JR	NZ,.L1
 | ||
| 		LD	C,MOUSEF.HIDE
 | ||
| .L1
 | ||
| 	SPMOUSE
 | ||
| 		RET
 | ||
| 
 | ||
| ;[]-----------------------------------------------------------------------[]
 | ||
| ComExit		CALL	ResDrivers
 | ||
| 		CALL	ResVideoMode
 | ||
| 		LD	HL,thanks
 | ||
| 	SPDSS DSSF.PCHARS
 | ||
| 		LD	A,(RAMPAGES.FNPAGESID)
 | ||
| 	SPDSS DSSF.FREEMEM
 | ||
| 	SPDSS DSSF.EXIT,0
 | ||
| 
 | ||
| thanks		DZ "\r\nThank you for using Flex Navigator.\r\n"
 | ||
| 
 | ||
| ; (ADR) + BCDE = BCDE
 | ||
| BCDEHLP:	LD A,(HL)
 | ||
| 		INC HL
 | ||
| 		ADD A,E
 | ||
| 		LD E,A
 | ||
| 		LD A,(HL)
 | ||
| 		INC HL
 | ||
| 		ADC A,D
 | ||
| 		LD D,A
 | ||
| 		LD A,(HL)
 | ||
| 		INC HL
 | ||
| 		ADC A,C
 | ||
| 		LD C,A
 | ||
| 		LD A,(HL)
 | ||
| 		ADC A,B
 | ||
| 		LD B,A
 | ||
| 		RET
 | ||
| 
 | ||
| GET_DWORD:	LD E,(HL)
 | ||
| 		INC HL
 | ||
| 		LD D,(HL)
 | ||
| 		INC HL
 | ||
| 		LD C,(HL)
 | ||
| 		INC HL
 | ||
| 		LD B,(HL)
 | ||
| 		RET
 | ||
| 
 | ||
| SET_DWORD:	LD (HL),E
 | ||
| 		INC HL
 | ||
| 		LD (HL),D
 | ||
| 		INC HL
 | ||
| 		LD (HL),C
 | ||
| 		INC HL
 | ||
| 		LD (HL),B
 | ||
| 		RET
 | ||
| 
 | ||
| ;[]=======================================================================[]
 | ||
| ; discription of flex navigator file panels
 | ||
| LeftPanel:	DB 0x80			; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 7 - <20><><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 					;	      <20><><EFBFBD> 0 - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 		DB 0x00			; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 - <20><><EFBFBD>⪠<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 					;	       <20><><EFBFBD> 0 - <20><><EFBFBD><EFBFBD><E0AEA1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 					;	       <20><><EFBFBD> 1 - <20><>ॢ<EFBFBD>
 | ||
| 					;	       <20><><EFBFBD> 2 - 㦠⮥ <20><>ॢ<EFBFBD>
 | ||
| 		DB 0x01			; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2>
 | ||
| 					;	       <20><><EFBFBD> 0 - <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 					;	       <20><><EFBFBD> 1 - <20><> <20><><EFBFBD><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD>
 | ||
| 					;	       <20><><EFBFBD> 2 - <20><> ࠧ<><E0A0A7><EFBFBD><EFBFBD>
 | ||
| 					;	       <20><><EFBFBD> 3 - <20><> <20><><EFBFBD><EFBFBD>
 | ||
| 					;	       <20><><EFBFBD> 4 - execute file
 | ||
| 					;	       <20><><EFBFBD> 5 - file mask
 | ||
| 		DW 4			; X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 		DW 0			; X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
 | ||
| 		DW 0			; Y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
 | ||
| 		DW 0			; Max <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
 | ||
| 		DW 0			; ⥪.<2E><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
 | ||
| 		DW 0			; <20><><EFBFBD><EFBFBD><EFBFBD> <20>祩<EFBFBD><E7A5A9> BarLeft
 | ||
| 		DW 0			; <20><><EFBFBD><EFBFBD><EFBFBD> <20>祩<EFBFBD><E7A5A9> BarRight
 | ||
| 		DW 0			; <20><><EFBFBD>-<2D><> 䠩<><E4A0A9><EFBFBD> <20><> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>
 | ||
| 		DW 0			; <20><>饥 <20><><EFBFBD>-<2D><> 䠩<><E4A0A9><EFBFBD>
 | ||
| 		DW 0			; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<> <20><> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>
 | ||
| 		DW 0			; T<><54><EFBFBD>騩 䠩<> <20><> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>
 | ||
| 		DW 0			; <20><><EFBFBD>-<2D><> <20><>ન<E0AAA8><E0AEA2><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9><EFBFBD>
 | ||
| 		DD 0			; <20><><EFBFBD>-<2D><> <20><>ન<E0AAA8><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⮢
 | ||
| 		DB 0
 | ||
| 		DB "*.*"		; Ma᪠ <20><><EFBFBD> 䠩<><E4A0A9><EFBFBD>
 | ||
| 		DB 0x0A DUP 0
 | ||
| 		DB 0x100 DUP 0		; <20><><EFBFBD><EFBFBD> <20> ⥪<>饩 <20><>४<EFBFBD><E0A5AA>ਨ
 | ||
| 
 | ||
| RightPanel:	DB 0x01			; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 7 - <20><><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 					;	      <20><><EFBFBD> 0 - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 		DB 0x00			; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 - <20><><EFBFBD>⪠<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 					;	       <20><><EFBFBD> 0 - <20><><EFBFBD><EFBFBD><E0AEA1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 					;	       <20><><EFBFBD> 1 - <20><>ॢ<EFBFBD>
 | ||
| 					;	       <20><><EFBFBD> 2 - 㦠⮥ <20><>ॢ<EFBFBD>
 | ||
| 		DB 0x01			; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2>
 | ||
| 					;	       <20><><EFBFBD> 0 - <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 					;	       <20><><EFBFBD> 1 - <20><> <20><><EFBFBD><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD>
 | ||
| 					;	       <20><><EFBFBD> 2 - <20><> ࠧ<><E0A0A7><EFBFBD><EFBFBD>
 | ||
| 					;	       <20><><EFBFBD> 3 - <20><> <20><><EFBFBD><EFBFBD>
 | ||
| 					;	       <20><><EFBFBD> 4 - execute file
 | ||
| 					;	       <20><><EFBFBD> 5 - file mask
 | ||
| 		DW 324			; X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 		DW 0			; X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
 | ||
| 		DW 0			; Y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
 | ||
| 		DW 0			; Max <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
 | ||
| 		DW 0			; ⥪.<2E><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
 | ||
| 		DW 0			; <20><><EFBFBD><EFBFBD><EFBFBD> <20>祩<EFBFBD><E7A5A9> BarLeft
 | ||
| 		DW 0			; <20><><EFBFBD><EFBFBD><EFBFBD> <20>祩<EFBFBD><E7A5A9> BarRight
 | ||
| 		DW 0			; <20><><EFBFBD>-<2D><> 䠩<><E4A0A9><EFBFBD> <20><> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>
 | ||
| 		DW 0			; <20><>饥 <20><><EFBFBD>-<2D><> 䠩<><E4A0A9><EFBFBD>
 | ||
| 		DW 0			; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<> <20><> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>
 | ||
| 		DW 0			; T<><54><EFBFBD>騩 䠩<> <20><> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>
 | ||
| 		DW 0			; <20><><EFBFBD>-<2D><> <20><>ન<E0AAA8><E0AEA2><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9><EFBFBD>
 | ||
| 		DD 0			; <20><><EFBFBD>-<2D><> <20><>ન<E0AAA8><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⮢
 | ||
| 		DB 0
 | ||
| 		DB "*.*"		; Ma᪠ <20><><EFBFBD> 䠩<><E4A0A9><EFBFBD>
 | ||
| 		DB 0x0A DUP 0
 | ||
| 		DB 0x100 DUP 0		; <20><><EFBFBD><EFBFBD> <20> ⥪<>饩 <20><>४<EFBFBD><E0A5AA>ਨ
 | ||
| 
 | ||
| ;[]=======================================================================[]
 | ||
| 
 | ||
| START_SORT
 | ||
| 		include fnsort.a80
 | ||
| END_SORT
 | ||
| 	IF TREE_REZID = 0
 | ||
| START_TREE
 | ||
| 		include fntree.a80
 | ||
| END_TREE
 | ||
| 	ENDIF
 | ||
| 		include fnpanel.a80
 | ||
| 		include fndos.a80
 | ||
| 
 | ||
| 		include fnwork.a80
 | ||
| 
 | ||
| ; <20>맮<EFBFBD> <20>㭪樨 <20> <20><>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD>
 | ||
| RESIDENT
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| .CopyFiles:	LD	DE,CopyFilesR
 | ||
| ; resident 2
 | ||
| .FunctResident:	LD	A,(RAMPAGES.FNFUNCT)
 | ||
| 		LD	C,WINSP.CPU1
 | ||
| 		JP	Resident
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[] 
 | ||
| .ReName:	LD	DE,ReNameR
 | ||
| 		jr	.FunctResident
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| .MakeDIR:	LD	DE,MakeDIRR
 | ||
| 		jr	.FunctResident
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| .DeleteFiles:	LD	DE,DeleteFilesR
 | ||
| 		jr	.FunctResident
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| .Quit:		CALL	ResInvert
 | ||
| .QuitL1		LD	DE,QuitConfirmWin
 | ||
| 		CALL	.FunctResident
 | ||
| 		JP	C,SetInvert
 | ||
| 		LD	HL,ComExit
 | ||
| 		EX	(SP),HL
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| .Setup:		LD	DE,SetupR
 | ||
| 		jr	.FunctResident
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| .FileInfo:	CALL	ResInvert
 | ||
| .FileInfoL2	LD	HL,SetInvert
 | ||
| 		PUSH	HL
 | ||
| 		LD	DE,FileInfoR
 | ||
| 		jr	.FunctResident
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| .PrintFile:	CALL	ResInvert
 | ||
| .PrintFileL3	LD	HL,SetInvert
 | ||
| 		PUSH	HL
 | ||
| 		LD	DE,PrintFileR
 | ||
| 		jr	.FunctResident
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| .DiskInfo:	CALL	ResInvert
 | ||
| .DiskInfoL4:	LD	DE,DiskInfoR
 | ||
| 		jr	.FunctResident
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| .SystemInfo:	LD	DE,SystemInfoR
 | ||
| 		jr	.FunctResident
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| .Version:	LD	DE,VersionR
 | ||
| 		jr	.FunctResident
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| .QSearch:	LD	DE,QSearchR
 | ||
| 		jr	.FunctResident
 | ||
| 
 | ||
| 	IF TREE_REZID
 | ||
| .TestTree	LD DE,TestTreeR
 | ||
| 		jr	.FunctResident
 | ||
| 
 | ||
| .TestTreeBeg	LD DE,TestTreeR.TestTreeBeg
 | ||
| 		jr	.FunctResident
 | ||
| 
 | ||
| .ReadTree	LD DE,ReadTreeR
 | ||
| 		jr	.FunctResident
 | ||
| 
 | ||
| .MakeTreePath	LD DE,MakeTreePathR
 | ||
| 		jr	.FunctResident
 | ||
| 
 | ||
| .FindTreeDIR	LD DE,FindTreeDIRR
 | ||
| 		jr	.FunctResident
 | ||
| 	ENDIF
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| .MarkFile:	LD	DE,MarkFileR
 | ||
| ; resident 3
 | ||
| .HelpResident:	LD	A,(RAMPAGES.FNHELP)
 | ||
| 		LD	C,WINSP.CPU1
 | ||
| 		JP	Resident
 | ||
| 
 | ||
| 	IF MARK_DIR
 | ||
| .GetDirSize:	LD DE,GetDirSizeR
 | ||
| 		JR .HelpResident
 | ||
| 	ENDIF
 | ||
| 
 | ||
| .UnMarkGroup:	LD	DE,UnMarkGroupR
 | ||
| 		jr	.HelpResident
 | ||
| 
 | ||
| .UnMarkGroupN:	LD	DE,UnMarkGroupRN
 | ||
| 		jr	.HelpResident
 | ||
| 
 | ||
| .MarkGroup:	LD	DE,MarkGroupR
 | ||
| 		jr	.HelpResident
 | ||
| 
 | ||
| .MarkGroupN:	LD	DE,MarkGroupRN
 | ||
| 		jr	.HelpResident
 | ||
| 
 | ||
| .SelectAll:	LD	DE,SelectAllR
 | ||
| 		jr	.HelpResident
 | ||
| 
 | ||
| .SelectAllN:	LD	DE,SelectAllRN
 | ||
| 		jr	.HelpResident
 | ||
| 
 | ||
| .UnSelectAll:	LD	DE,UnSelectAllR
 | ||
| 		jr	.HelpResident
 | ||
| 
 | ||
| .UnSelectAllN:	LD	DE,UnSelectAllRN
 | ||
| 		jr	.HelpResident
 | ||
| 
 | ||
| .InvertSelect:	LD	DE,InvertSelectR
 | ||
| 		jr	.HelpResident
 | ||
| 
 | ||
| .InvertSelectN:	LD	DE,InvertSelectRN
 | ||
| 		jr	.HelpResident
 | ||
| 
 | ||
| 		include fnmenu.a80
 | ||
| 		include fninit.a80
 | ||
| 		include fndosline.a80
 | ||
| 		include fntab.a80
 | ||
| END_BLOCK_1:
 | ||
| 	DEPHASE ; BASE_ADDR
 | ||
| 
 | ||
| ;[]=======================================================================[]
 | ||
| 	PHASE 0x4000
 | ||
| ;	section	.text
 | ||
| START_BLOCK_2
 | ||
| FlexDIRECTORY:	DB 0x100 DUP 0
 | ||
| 
 | ||
| 		include rez2_fnfunct.a80
 | ||
| 		include rez2_fnmisc.a80
 | ||
| 		include rez2_fnsearch.a80
 | ||
| 		include rez2_fnconfig.a80
 | ||
| 		include rez2_fnerror.a80
 | ||
| 		include rez2_fntab1.a80
 | ||
| 	IF TREE_REZID
 | ||
| 		include fntree.a80
 | ||
| 	ENDIF
 | ||
| END_BLOCK_2:
 | ||
| 	DEPHASE ; 0x4000
 | ||
| 
 | ||
| START_BLOCK_EDITOR
 | ||
| 	PHASE 0xC000
 | ||
| 		include plugins/fnviewer/fviewer.a80
 | ||
| 	DEPHASE ; 0xC000
 | ||
| END_BLOCK_EDITOR
 | ||
| 
 | ||
| START_BLOCK_VIEWER
 | ||
| 	PHASE 0xC000
 | ||
| 		include plugins/fneditor/feditor.a80
 | ||
| 	DEPHASE ; 0xC000
 | ||
| END_BLOCK_VIEWER
 | ||
| 
 | ||
| ;[]-----------------------------------------------------------------------[]
 | ||
| 	PHASE 0x4000
 | ||
| ;	section	.text
 | ||
| START_BLOCK_3
 | ||
| 
 | ||
| DOShistory:	DB DOShistory_Size DUP 0	;times	0x200 db 0
 | ||
| fn_ext:		DB WorkBuffer_Size DUP 0	;times	0x400 db 0
 | ||
| fnview_ext:	DB WorkBuffer_Size DUP 0	;times	0x400 db 0
 | ||
| fnedit_ext:	DB WorkBuffer_Size DUP 0	;times	0x400 db 0
 | ||
| 
 | ||
| 		include rez3_fnnext.a80
 | ||
| 		include rez3_fnmark.a80
 | ||
| 
 | ||
| WINSP_CPU	EQU WINSP.CPU3			; <20><><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA5><EFBFBD><E0AEA2><EFBFBD><EFBFBD>
 | ||
| WINSP_ADR	EQU 0xC000			; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
 | ||
| 
 | ||
| 		include plugins/help/help.a80
 | ||
| HelpText:	include plugins/help/help_t.a80
 | ||
| HelpTextEnd:
 | ||
| END_BLOCK_3:
 | ||
| 	DEPHASE ; 0x4000
 | ||
| 
 | ||
| ;[]=======================================================================[]
 | ||
| 	PHASE 0xC000
 | ||
| ;	section	.data
 | ||
| START_BLOCK_4
 | ||
| 
 | ||
| FONT_RAW_PACK		binclude tmp/font_raw.pack
 | ||
| IFFFONT_RAW_PACK	binclude tmp/iff_font_raw.pack
 | ||
| IFFFONT_RAW_END
 | ||
| 
 | ||
| END_BLOCK_4:
 | ||
| 	DEPHASE ; 0xC000
 | ||
| 
 | ||
| ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>⫠<EFBFBD><E2ABA0><EFBFBD>
 | ||
| BLOCK1_SIZE	EQU END_BLOCK_1 - START_BLOCK_1			; <20>᭮<EFBFBD><E1ADAE><EFBFBD><EFBFBD> <20><><EFBFBD>
 | ||
| BLOCK2_SIZE	EQU END_BLOCK_2 - START_BLOCK_2			; १<><E0A5A7><EFBFBD><EFBFBD><EFBFBD> 2
 | ||
| BLOCK3_SIZE	EQU END_BLOCK_3 - START_BLOCK_3			; १<><E0A5A7><EFBFBD><EFBFBD><EFBFBD> 3
 | ||
| EDITOR_SIZE	EQU END_BLOCK_EDITOR - START_BLOCK_EDITOR	; ।<><E0A5A4><EFBFBD><EFBFBD><EFBFBD>
 | ||
| VIEWER_SIZE	EQU END_BLOCK_VIEWER - START_BLOCK_VIEWER	; <20><><EFBFBD>
 | ||
| SORT_SIZE	EQU END_SORT - START_SORT			; <20><><EFBFBD><EFBFBD><EFBFBD>騪
 | ||
| TREE_SIZE	EQU END_TREE - START_TREE			; ࠡ<><E0A0A1><EFBFBD> <20> <20><>ॢ<EFBFBD><E0A5A2>
 | 
