603 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			603 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | ||
| ; LAST UPDATE: 27.04.2025 savelij
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| InitVideoMode
 | ||
| 	SPDSS DSSF.GETVMOD
 | ||
| 		LD	C,A			; ⥪ã騩 ०¨¬ íªà  
 | ||
| 		LD	A,(InitFlg)
 | ||
| 		OR	A
 | ||
| 		JR	NZ,.L1
 | ||
| 		LD	A,C
 | ||
| 		LD	(VMode),A
 | ||
| 		LD	A,B			; áâà ¨æ  íªà  
 | ||
| 		LD	(VScrn),A
 | ||
| .L1		LD	HL,WorkBuffer
 | ||
| 	SPBIOS BIOSF.FN_VERSION
 | ||
| 		;!TODO ¯à®¢¥àïâì   ¯®á«¥¤¨© ¡¨®á
 | ||
| 		AND	A
 | ||
| 		LD	HL,-0x101;ACEX.Config_ID.Sp2000
 | ||
| 		SBC	HL,BC
 | ||
| 		JR	Z,.L2
 | ||
| 	SPBIOS BIOSF.RST_CONF_CUSTOM,,-3
 | ||
| .L2:
 | ||
| 		;????? âãâ áâ àë© ¢ à¨ â ¢ë¤ ç¨ FN_VERSION ¯à®¢¥àï¥âáï. <20>®¤ã¬ âì.
 | ||
| 		; LD	A,%0000'1101	; ã¦ë¥ ¡¨âë ¤«ï ¯®àâ  All_Mode
 | ||
| 		; AND	L
 | ||
| 		; SUB	%0000'1101
 | ||
| 		; JR	Z,InitVM1
 | ||
| 		; IN	A,(SCREEN_SWITCH)
 | ||
| 		; PUSH	AF
 | ||
| 		; LD	C,BIOS.RST_CONF.SP97_2
 | ||
| 		; RST	ToBIOS
 | ||
| 		; SUB	A
 | ||
| 		; OUT	(BorderColor),A
 | ||
| 		; POP	AF
 | ||
| 		; OUT	(SCREEN_SWITCH),A
 | ||
| InitVM1
 | ||
| 	SPDSS DSSF.SETVMOD,0,SETVMOD.GRF640X256
 | ||
| 		SUB	A
 | ||
| 		CALL	ClearScreen
 | ||
| InitPAL		LD	HL,PALETTE
 | ||
| 		LD	DE,0x1000
 | ||
| 	SPBIOS BIOSF.PIC_SET_PAL,0xFF,0
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| ResVideoMode	LD	B,0x00
 | ||
| VScrn		EQU $-1
 | ||
| 		LD	A,0x00
 | ||
| VMode		EQU $-1
 | ||
| 		PUSH	IY
 | ||
| 	SPDSS DSSF.SETVMOD
 | ||
| 		POP	IY
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| InitDrivers	SUB	A
 | ||
| 		LD	(CMOSFlag),A
 | ||
| 		LD	L,A
 | ||
| 		LD	H,A
 | ||
| 		LD	(TestCoords.PrvTabl),HL
 | ||
| 		LD	(TestCoords.PrMousX),HL
 | ||
| 		LD	(TestCoords.PrMousY),HL
 | ||
| 	SPDSS DSSF.GETMEM,7
 | ||
| 		JR	NC,InitDrv
 | ||
| 		CALL	ResVideoMode
 | ||
| 		LD	HL,NoEnMemory
 | ||
| 	SPDSS DSSF.PCHARS
 | ||
| 		LD	A,(RAMPAGES.FNPAGESID)
 | ||
| 	SPDSS DSSF.FREEMEM
 | ||
| 	SPDSS DSSF.EXIT,0x1E
 | ||
| 
 | ||
| NoEnMemory	DZ "Not enough memory to run program.\r\n"
 | ||
| 
 | ||
| InitDrv		LD	(RAMPAGES.BufferID),A
 | ||
| 		LD	HL,RAMPAGES.FLX
 | ||
| 	SPBIOS BIOSF.GETMEMBLKPAGES
 | ||
| .skip:
 | ||
| 	SPDSS DSSF.CURDISK
 | ||
| 		JR	C,.skip
 | ||
| 		LD	A,C
 | ||
| 		CP	12
 | ||
| 		JR	C,.L1
 | ||
| 		LD	A,11
 | ||
| .L1		LD	(NUM_DEVICES),A
 | ||
| 	SPDSS DSSF.GETTIME
 | ||
| 		JR	C,.L3
 | ||
| 		LD	A,D
 | ||
| 		CP	32
 | ||
| 		CCF 
 | ||
| 		JR	C,.L3
 | ||
| 		LD	A,E
 | ||
| 		CP	13
 | ||
| 		CCF 
 | ||
| 		JR	C,.L3
 | ||
| 		LD	A,H
 | ||
| 		CP	24
 | ||
| 		CCF 
 | ||
| 		JR	C,.L3
 | ||
| 		LD	A,L
 | ||
| 		CP	60
 | ||
| 		CCF 
 | ||
| .L3		LD	A,0x00
 | ||
| 		JR	C,.L2
 | ||
| 		INC	A
 | ||
| .L2		LD	(CMOSFlag),A
 | ||
| 		LD	A,0x00
 | ||
| InitFlg		EQU $-1
 | ||
| 		OR	A
 | ||
| 		CALL	Z,FirstInit
 | ||
| 		CALL SETUP_DISKS
 | ||
| 	SPMOUSE MOUSEF.INIT
 | ||
| 		LD	A,(MouseFlag)
 | ||
| 		OR	A
 | ||
| 		LD	C,MOUSEF.SHOW
 | ||
| 		JR	NZ,.L1
 | ||
| 		LD	C,MOUSEF.HIDE
 | ||
| .L1
 | ||
| 	SPMOUSE
 | ||
| 		;!TEST enable shared interrupts
 | ||
| 		;Check BIOS version
 | ||
| 	SPBIOS BIOSF.DRV_VERSION
 | ||
| 		AND	A
 | ||
| 		LD	HL,2 << 8 + 54		;!HARDCODE (¬¨¨¬ «ì ï ¢¥àá¨ï)-1 ¤«ï  ªâ¨¢ æ¨¨ ¯à¥à뢠¨©
 | ||
| 		SBC	HL,DE
 | ||
| 		RET	NC			; ¢ë室, ¥á«¨ ¢¥àá¨ï ¨¦¥ 2.55
 | ||
| 		LD	BC,WINSP.CPU2
 | ||
| 		IN	B,(C)
 | ||
| 	SETPORT WINSP.CPU2,0xFE
 | ||
| 		LD	A,0xAA
 | ||
| 		LD	(0x0127 + CPU2),A;(SYS_PAGE.INT_ID - #4000),A	;!HARDCODE SYS_PAGE.INT_ID - #4000
 | ||
| 		OUT	(C),B
 | ||
| 		RET 
 | ||
| 
 | ||
| FirstInit
 | ||
| 	SPDSS DSSF.BOOTDSK,0
 | ||
| 		ADD	A,'A'
 | ||
| 		LD	(ShellFile),a			; fndosln.z80
 | ||
| 	SPDSS DSSF.CURDISK
 | ||
| 		LD	HL,LeftPanel + PANEL.CURRPATH
 | ||
| 		PUSH	HL
 | ||
| 		ADD	A,'A'
 | ||
| 		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		LD	(HL),':'
 | ||
| 		INC	HL
 | ||
| 	SPDSS DSSF.CURDIR
 | ||
| 		POP	HL
 | ||
| 		LD	DE,RightPanel + PANEL.CURRPATH
 | ||
| 		LD	BC,0x0100
 | ||
| 		LDIR 
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 		LD	A,(RAMPAGES.FNFUNCT)
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		LD HL,FlexDIRECTORY
 | ||
| 	SPDSS DSSF.APPINFO,1
 | ||
| 		JP C,.L5
 | ||
| 		LD HL,FlexDIRECTORY
 | ||
| 	SPDSS DSSF.CHDIR
 | ||
| 		JP C,.L5
 | ||
| 		LD	HL,SetupName
 | ||
| 	SPDSS DSSF.OPEN,,1
 | ||
| 		JR	C,.L5
 | ||
| 		PUSH	AF
 | ||
| 		LD	HL,WorkBuffer
 | ||
| 		push	hl
 | ||
| 		push	hl
 | ||
| 		ld	(hl),0
 | ||
| 		pop	de
 | ||
| 		ld	bc,0x00ff
 | ||
| 		inc	de
 | ||
| 		ldir
 | ||
| 		pop	hl
 | ||
| 		LD	DE,0x0100
 | ||
| 	SPDSS DSSF.READ
 | ||
| 		POP	AF
 | ||
| 	SPDSS DSSF.CLOSE
 | ||
| 		LD	HL,WorkBuffer
 | ||
| 		LD	DE,SetupHead
 | ||
| 		LD	B,11
 | ||
| .L3		LD	A,(DE)
 | ||
| 		CP	(HL)
 | ||
| 		JR	NZ,.L5
 | ||
| 		INC	HL
 | ||
| 		INC	DE
 | ||
| 		DJNZ	.L3
 | ||
| 		LD	DE,PALETTE
 | ||
| 		LD	BC,0x0040
 | ||
| 		LDIR 
 | ||
| 		LD	A,(HL)
 | ||
| 		INC	HL
 | ||
| 		OR	A
 | ||
| 		JR	Z,.L4
 | ||
| 		LD	A,(HL)
 | ||
| 		INC	HL
 | ||
| 		AND	0x01
 | ||
| 		LD	(MouseFlag),A
 | ||
| 		LD	DE,LeftPanel
 | ||
| 		PUSH	DE
 | ||
| 		LDI 
 | ||
| 		LDI 
 | ||
| 		LDI 
 | ||
| 		POP	DE
 | ||
| 		EX	DE,HL
 | ||
| 		LD	BC,PANEL.FILEMASK
 | ||
| 		ADD	HL,BC
 | ||
| 		EX	DE,HL
 | ||
| 		SUB	A
 | ||
| .L1		LDI 
 | ||
| 		CP	(HL)
 | ||
| 		JR	NZ,.L1
 | ||
| 		LD	(DE),A
 | ||
| 		INC	HL
 | ||
| 		LD	DE,RightPanel
 | ||
| 		PUSH	DE
 | ||
| 		LDI 
 | ||
| 		LDI 
 | ||
| 		LDI 
 | ||
| 		POP	DE
 | ||
| 		EX	DE,HL
 | ||
| 		LD	BC,PANEL.FILEMASK
 | ||
| 		ADD	HL,BC
 | ||
| 		EX	DE,HL
 | ||
| 		SUB	A
 | ||
| .L2		LDI 
 | ||
| 		CP	(HL)
 | ||
| 		JR	NZ,.L2
 | ||
| 		LD	(DE),A
 | ||
| .L4		inc	hl
 | ||
| 		ld	a,(hl)			;¯ à ¬¥âà -  ¢â® ᬥ  ¯ ¥«¨ ¯à¨ ᬥ¥ ¤¨áª    ¥©
 | ||
| 		ld	(AutoActivatePanel),a
 | ||
| 		inc	hl
 | ||
| 		CALL	InitPAL
 | ||
| .L5		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		LD	DE,InitExtention
 | ||
| 		LD	A,(RAMPAGES.FNHELP)
 | ||
| 		LD	C,WINSP.CPU1
 | ||
| 		CALL	Resident
 | ||
| 		LD	HL,LeftPanel + PANEL.CURRPATH
 | ||
| 	SPDSS DSSF.CHDIR
 | ||
| 		LD	A,0x01
 | ||
| 		LD	(InitFlg),A
 | ||
| 		RET 
 | ||
| 
 | ||
| ; ®¡®¢«¥¨¥ ¢ â ¡«¨æ¥ ¢ë¡®à  ¤¨áª®¢   ¯ ¥«¨
 | ||
| SETUP_DISKS	LD	HL,BgDISKl		; ¤¨áª¨ «¥¢®© ¯ ¥«¨
 | ||
| 		LD	DE,BgDISKr		; ¤¨áª¨ ¯à ¢®© ¯ ¥«¨
 | ||
| 		LD	BC,FORMTABL.SIZE * 2
 | ||
| 		LD	A,(NUM_DEVICES)
 | ||
| .L1		ADD	HL,BC
 | ||
| 		INC HL
 | ||
| 		RES FORMTABL.B_ENDTABL,(HL)
 | ||
| 		DEC HL
 | ||
| 		EX	DE,HL
 | ||
| 		ADD	HL,BC
 | ||
| 		INC HL
 | ||
| 		RES FORMTABL.B_ENDTABL,(HL)
 | ||
| 		DEC HL
 | ||
| 		EX	DE,HL
 | ||
| 		DEC	A
 | ||
| 		JR	NZ,.L1
 | ||
| 		INC	HL
 | ||
| 		SET FORMTABL.B_ENDTABL,(HL)
 | ||
| 		EX	DE,HL
 | ||
| 		INC	HL
 | ||
| 		SET FORMTABL.B_ENDTABL,(HL)
 | ||
| 		RET
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| ResDrivers
 | ||
| 	SPMOUSE MOUSEF.HIDE
 | ||
| 		LD	A,(RAMPAGES.BufferID)
 | ||
| 	SPDSS DSSF.FREEMEM
 | ||
| 		;!TEST disable shared interrupts
 | ||
| 		LD	BC,WINSP.CPU2
 | ||
| 		IN	B,(C)
 | ||
| 	SETPORT WINSP.CPU2,PAGE.SYSTEM;0xFE
 | ||
| 		XOR	A
 | ||
| 		LD	(0x0127 + CPU2),A	;!HARDCODE SYS_PAGE.INT_ID
 | ||
| 		OUT	(C),B
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| InitScreen
 | ||
| 	MAKEWINDOW WINSUBOBJ.NOSTORE
 | ||
| 	W_MAIN 0,0,640,256
 | ||
| 	W_FILL 4,2,632,10,COLORI.BLACK
 | ||
| 	W_TEXT 16,3,COLORI.WHITE,"Flex Navigator v\{FLEX_VERS.NAVIGATOR}"
 | ||
| 	W_HORIZLINE 0,13,640
 | ||
| 	W_TEXT 16,17,COLORP.HIGHGRAY,"File    Select    Options    View    Config    About"
 | ||
| 	W_HORIZLINE 0,27,640
 | ||
| 	W_VERTICLINE 318,30,12
 | ||
| 	W_HORIZLINE 0,43,640
 | ||
| 	W_HORIZLINE 0,211,640
 | ||
| 	W_VERTICLINE 318,214,10
 | ||
| 	W_HORIZLINE 0,225,640
 | ||
| 	W_BORDER 252,228,384,12
 | ||
| 	W_FILL 254,229,380,10,COLORI.PANEL
 | ||
| 	W_HORIZLINE 0,241,640
 | ||
| 	W_BUTTON 0,242,80,14
 | ||
| 	W_TEXT 22,245,COLORP.HIGHGRAY,"F1 Help"
 | ||
| 	W_BUTTON 80,242,80,14
 | ||
| 	W_TEXT 100,245,COLORP.HIGHGRAY,"F3 View"
 | ||
| 	W_BUTTON 160,242,80,14
 | ||
| 	W_TEXT 182,245,COLORP.HIGHGRAY,"F4 Edit"
 | ||
| 	W_BUTTON 240,242,80,14
 | ||
| 	W_TEXT 260,245,COLORP.HIGHGRAY,"F5 Copy"
 | ||
| 	W_BUTTON 320,242,80,14
 | ||
| 	W_TEXT 334,245,COLORP.HIGHGRAY,"F6 Rename"
 | ||
| 	W_BUTTON 400,242,80,14
 | ||
| 	W_TEXT 414,245,COLORP.HIGHGRAY,"F7 MakeDir"
 | ||
| 	W_BUTTON 480,242,80,14
 | ||
| 	W_TEXT 496,245,COLORP.HIGHGRAY,"F8 Delete"
 | ||
| 	W_BUTTON 560,242,80,14
 | ||
| 	W_TEXT 580,245,COLORP.HIGHGRAY,"F10 Quit"
 | ||
| 	W_END
 | ||
| 		LD	A,(CMOSFlag)
 | ||
| 		OR	A
 | ||
| 		RET	Z
 | ||
| 	MAKEWINDOW WINSUBOBJ.WOBIND
 | ||
| 	W_BORDER 500,15,136,12
 | ||
| 	W_END
 | ||
| 		LD	HL,0x01FC
 | ||
| 		LD	DE,0x0012
 | ||
| 		LD	B,0x80
 | ||
| 		EXX 
 | ||
| 		LD	HL,0x022E
 | ||
| 		LD	DE,0x0012
 | ||
| 		LD	B,0x80
 | ||
| 		EXX 
 | ||
| 		LD	A,0x02
 | ||
| 		JP	SetCMOSPrint
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| InitPanels	LD	(InitPanFlg),A
 | ||
| 		LD	HL,LeftPanel+PANEL.VIEWFLAG
 | ||
| 		LD	A,(RightPanel+PANEL.VIEWFLAG)
 | ||
| 		OR	(HL)
 | ||
| 		AND	0x02
 | ||
| 		JR	NZ,InitPanTree
 | ||
| 		LD	IY,LeftPanel
 | ||
| 		CALL	InitPanelE
 | ||
| 		LD	IY,RightPanel
 | ||
| 		CALL	InitPanelE
 | ||
| 		JR	InitPanExit
 | ||
| 
 | ||
| InitPanTree	LD	IY,LeftPanel
 | ||
| 		BIT	VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
 | ||
| 		JR	NZ,.L1
 | ||
| 		LD	IY,RightPanel
 | ||
| .L1		CALL	InitPanelE
 | ||
| InitPanExit	LD	HL,LeftPanel
 | ||
| 		LD	DE,PANEL.CURRPATH
 | ||
| 		BIT	7,(HL)
 | ||
| 		JR	NZ,.L2
 | ||
| 		LD	HL,RightPanel
 | ||
| .L2		PUSH	HL
 | ||
| 		ADD	HL,DE
 | ||
| 	SPDSS DSSF.CHDIR
 | ||
| 		POP	IY
 | ||
| 		RET 
 | ||
| 
 | ||
| InitPanel	SUB	A
 | ||
| InitPanel1	LD	(InitPanFlg),A
 | ||
| InitPanelE	LD	A,(InitPanFlg)
 | ||
| 		BIT	0,A
 | ||
| 		CALL	Z,SetClock
 | ||
| 		CALL	PrintDisks
 | ||
| 		CALL	PrintPath
 | ||
| 		BIT	PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG)
 | ||
| 		CALL	NZ,PrintDOSPath
 | ||
| 		LD	A,(IY+PANEL.VIEWFLAG)
 | ||
| 		AND	VIEWFLAG.MASK
 | ||
| 		JP	NZ,InitPPanel
 | ||
| 		LD	L,(IY+PANEL.XL)
 | ||
| 		LD	H,(IY+PANEL.XH)
 | ||
| 		LD	(PanelN1),HL
 | ||
| 		INC	HL
 | ||
| 		INC	HL
 | ||
| 		LD	(PanelN2),HL
 | ||
| 		LD	(PanelN6),HL
 | ||
| 		LD	(PanelN3),HL
 | ||
| 		LD	(Nbut1),HL
 | ||
| 		LD	(Nfile),HL
 | ||
| 		LD	DE,0x0010
 | ||
| 		ADD	HL,DE
 | ||
| 		LD	(PanelN4),HL
 | ||
| 		LD	(Nbut1+2),HL
 | ||
| 		LD	(Nbar1),HL
 | ||
| 		LD	(IY+PANEL.BARXL),L
 | ||
| 		LD	(IY+PANEL.BARXH),H
 | ||
| 		LD	(IY+PANEL.BARYL),0xC9
 | ||
| 		LD	(IY+PANEL.BARYH),0x00
 | ||
| 		LD	DE,0x0114
 | ||
| 		ADD	HL,DE
 | ||
| 		LD	(PanelN5),HL
 | ||
| 		LD	(Nbar2+2),HL
 | ||
| 		LD	(Nbut2),HL
 | ||
| 		LD	(IY+PANEL.BARMLL),E
 | ||
| 		LD	(IY+PANEL.BARMLH),D
 | ||
| 		LD	DE,0x0010
 | ||
| 		ADD	HL,DE
 | ||
| 		LD	(Nbut2+2),HL
 | ||
| 		LD	(Nfile+2),HL
 | ||
| 		LD	(IY+PANEL.FPL),0x33
 | ||
| 		LD	(IY+PANEL.FPH),0x00
 | ||
| ; Šà âª ï ¯ ¥«ì
 | ||
| 	MAKEWINDOW WINSUBOBJ.WOBIND
 | ||
| PanelN1		EQU $+1
 | ||
| 	W_BORDER 0,59,312,151
 | ||
| PanelN2		EQU $+1
 | ||
| 	W_FILL 0,60,308,149,COLORI.PANEL
 | ||
| PanelN3		EQU $+1
 | ||
| 	W_ICONLEFTARROW 0,201
 | ||
| PanelN4		EQU $+1
 | ||
| 	W_FILL 0,201,276,8,COLORI.HIGHGRAY
 | ||
| PanelN5		EQU $+1
 | ||
| 	W_ICONRIGHTARROW 0,201
 | ||
| PanelN6		EQU $+1
 | ||
| 	W_FILL 0,213,310,12,COLORI.HIGHGRAY
 | ||
| 	W_END
 | ||
| 
 | ||
| 		LD	HL,NormMouse
 | ||
| 		LD	DE,PanelPlaceL
 | ||
| 		BIT	PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
 | ||
| 		JR	Z,.L1
 | ||
| 		LD	DE,PanelPlaceR
 | ||
| .L1		PUSH	DE
 | ||
| 		LD	BC,0x0050
 | ||
| 		LDIR 
 | ||
| 		POP	HL
 | ||
| 		LD	C,0x32
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	(IY+PANEL.BARLFL),L
 | ||
| 		LD	(IY+PANEL.BARLFH),H
 | ||
| 		LD	C,0x0E
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	(IY+PANEL.BARRTL),L
 | ||
| 		LD	(IY+PANEL.BARRTH),H
 | ||
| 		JP	InitPanEx
 | ||
| 
 | ||
| NormMouse
 | ||
| Nfile		DEFW   0,  0, 63,199,%0000000000000000,0,NewFile,RESIDENT.MarkFile
 | ||
| Nbut1		DEFW   0,  0,201,209,%0000000000000011,0,ScrollDown,0
 | ||
| Nbut2		DEFW   0,  0,201,209,%0000000000000011,0,ScrollUp,0
 | ||
| Nbar1		DEFW   0,  0,201,209,%0000000000000000,0,PageUp,0
 | ||
| Nbar2		DEFW   0,  0,201,209,%0000000000000000,0,PageDown,0
 | ||
| 
 | ||
| ; <20>®¤à®¡ ï ¯ ¥«ì ¨ ¯ ¥«ì á ¤¥à¥¢®¬
 | ||
| InitPPanel	LD	L,(IY+PANEL.XL)
 | ||
| 		LD	H,(IY+PANEL.XH)
 | ||
| 		LD	(PanelP1),HL
 | ||
| 		INC	HL
 | ||
| 		INC	HL
 | ||
| 		LD	(PanelP2),HL
 | ||
| 		LD	(PanelP6),HL
 | ||
| 		LD	(Pfile),HL
 | ||
| 		LD	DE,0x0124
 | ||
| 		ADD	HL,DE
 | ||
| 		LD	(PanelP3),HL
 | ||
| 		LD	(PanelP4),HL
 | ||
| 		LD	(PanelP5),HL
 | ||
| 		LD	(Pbut1),HL
 | ||
| 		LD	(Pbut2),HL
 | ||
| 		LD	(Pbar1),HL
 | ||
| 		LD	(Pbar2),HL
 | ||
| 		LD	(Pfile+2),HL
 | ||
| 		LD	(IY+PANEL.BARXL),L
 | ||
| 		LD	(IY+PANEL.BARXH),H
 | ||
| 		LD	DE,0x0010
 | ||
| 		ADD	HL,DE
 | ||
| 		LD	(Pbut1+2),HL
 | ||
| 		LD	(Pbut2+2),HL
 | ||
| 		LD	(Pbar1+2),HL
 | ||
| 		LD	(Pbar2+2),HL
 | ||
| 		LD	(IY+PANEL.BARYL),0x44
 | ||
| 		LD	(IY+PANEL.BARYH),0x00
 | ||
| 		LD	(IY+PANEL.BARMLL),0x85
 | ||
| 		LD	(IY+PANEL.BARMLH),0x00
 | ||
| 		LD	(IY+PANEL.FPL),0x12
 | ||
| 		LD	(IY+PANEL.FPH),0x00
 | ||
| 	MAKEWINDOW WINSUBOBJ.WOBIND
 | ||
| PanelP1		EQU $+1
 | ||
| 	W_BORDER 0,59,312,151
 | ||
| PanelP2		EQU $+1
 | ||
| 	W_FILL 0,60,308,149,COLORI.PANEL
 | ||
| PanelP3		EQU $+1
 | ||
| 	W_ICONUPARROW 0,60
 | ||
| PanelP4		EQU $+1
 | ||
| 	W_FILL 0,68,16,133,COLORI.HIGHGRAY
 | ||
| PanelP5		EQU $+1
 | ||
| 	W_ICONDOWNARROW 0,201
 | ||
| PanelP6		EQU $+1
 | ||
| 	W_FILL 0,213,310,12,COLORI.HIGHGRAY
 | ||
| 	W_END
 | ||
| 
 | ||
| 		LD	HL,PodrMouse
 | ||
| 		LD	DE,PanelPlaceL
 | ||
| 		BIT	PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
 | ||
| 		JR	Z,.L1
 | ||
| 		LD	DE,PanelPlaceR
 | ||
| .L1		PUSH	DE
 | ||
| 		LD	BC,0x0050
 | ||
| 		LDIR 
 | ||
| 		POP	HL
 | ||
| 		LD	BC,0x0036
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	(IY+PANEL.BARLFL),L
 | ||
| 		LD	(IY+PANEL.BARLFH),H
 | ||
| 		LD	BC,0x000E
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	(IY+PANEL.BARRTL),L
 | ||
| 		LD	(IY+PANEL.BARRTH),H
 | ||
| 		JP	InitPanEx
 | ||
| 
 | ||
| PodrMouse
 | ||
| Pfile		DW   0,  0, 63,207,%0000000000000000,0,NewFile,RESIDENT.MarkFile
 | ||
| Pbut1		DW   0,  0, 60, 68,%0000000000000011,0,ScrollDown,0
 | ||
| Pbut2		DW   0,  0,201,209,%0000000000000011,0,ScrollUp,0
 | ||
| Pbar1		DW   0,  0, 68,  0,%0000000000000000,0,PageUp,0
 | ||
| Pbar2		DW   0,  0,  0,209,%0000000000000000,0,PageDown,0
 | ||
| 
 | ||
| InitPanEx	LD	A,(InitPanFlg)
 | ||
| 		BIT	0,A
 | ||
| 		JR	NZ,.L2
 | ||
| 		PUSH	IY
 | ||
| 		PUSH	IY
 | ||
| 		POP	HL
 | ||
| 		LD	DE,PANEL.CURRPATH
 | ||
| 		ADD	HL,DE
 | ||
| 	SPDSS DSSF.CHDIR
 | ||
| 		POP	IY
 | ||
| 		JR	NC,.L1
 | ||
| 		CALL	DOSError
 | ||
| 		PUSH	IY
 | ||
| 	SPDSS DSSF.CURDISK
 | ||
| 		POP	IY
 | ||
| 		PUSH	IY
 | ||
| 		POP	HL
 | ||
| 		LD	DE,PANEL.CURRPATH
 | ||
| 		ADD	HL,DE
 | ||
| 		ADD	A,'A'
 | ||
| 		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		LD	(HL),':'
 | ||
| 		INC	HL
 | ||
| 		PUSH	IY
 | ||
| 	SPDSS DSSF.CURDIR
 | ||
| 		POP	IY
 | ||
| 		JP	InitPanel
 | ||
| 
 | ||
| .L1		CALL	ReadDIR
 | ||
| 		LD	A,(InitPanFlg)
 | ||
| 		BIT	1,A
 | ||
| 		CALL	NZ,FindPrevFile
 | ||
| .L2		CALL	PrintDIR
 | ||
| 		CALL	SetInvert
 | ||
| 		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
 | ||
| 		CALL	SetMouse
 | ||
| 		LD	A,(InitPanFlg)
 | ||
| 		BIT	0,A
 | ||
| 		RET	NZ
 | ||
| 		LD	HL,LeftPanel+PANEL.VIEWFLAG
 | ||
| 		LD	A,(RightPanel+PANEL.VIEWFLAG)
 | ||
| 		OR	(HL)
 | ||
| 		AND	0x02
 | ||
| 		RRCA 
 | ||
| 		LD	(TreeFlag),A
 | ||
| 		BIT	VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
 | ||
| 		RET	Z
 | ||
| 		PUSH	IY
 | ||
| 		BIT	PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
 | ||
| 		LD	IY,RightPanel
 | ||
| 		LD	HL,LeftPanel + PANEL.CURRPATH
 | ||
| 		LD	DE,RightPanel + PANEL.CURRPATH
 | ||
| 		JR	Z,.L3
 | ||
| 		LD	IY,LeftPanel
 | ||
| 		LD	HL,RightPanel + PANEL.CURRPATH
 | ||
| 		LD	DE,LeftPanel + PANEL.CURRPATH
 | ||
| .L3		SUB	A
 | ||
| .L4		LDI 
 | ||
| 		CP	(HL)
 | ||
| 		JR	NZ,.L4
 | ||
| 		LD	(DE),A
 | ||
| 		CALL	InitPanelE
 | ||
| 		POP	IY
 | ||
| 		RET 
 | ||
| 
 | ||
| InitPanFlg	DEFB	0x00
 |