1082 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1082 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | ||
| ; LAST UPDATE: 31.05.2025 savelij
 | ||
| 
 | ||
| LineBuffer := WorkBuffer+0x300
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| 		JP	FileViewer
 | ||
| 
 | ||
| 		DZ FLEX_VERS.VIEWER
 | ||
| 
 | ||
| FileViewer	CALL	LoadFile
 | ||
| 		RET	C
 | ||
| 		LD	IX,ViewingFile
 | ||
| 		SUB	A
 | ||
| 		LD	(ViewMode),A
 | ||
| 		LD	(ASCIIaddX),A
 | ||
| 		LD	HL,0x0000
 | ||
| 		LD	(FileShift),HL
 | ||
| 		LD	(FileShift+2),HL
 | ||
| 		LD	L,(IX+28)
 | ||
| 		LD	H,(IX+29)
 | ||
| 		LD	(FileLenght),HL
 | ||
| 		LD	L,(IX+30)
 | ||
| 		LD	H,(IX+31)
 | ||
| 		LD	(FileLenght+2),HL
 | ||
| 		CALL	InitViewScr
 | ||
| ViewerBegin	CALL	InitStatusLine
 | ||
| 		CALL	InitVProc
 | ||
| 		CALL	PrintVPage
 | ||
| ViewerLoop	LD	A,(ViewMode)
 | ||
| 		OR	A
 | ||
| 		JR	NZ,HViewLoop
 | ||
| TViewLoop	LD	IX,ASCIItab
 | ||
| 		CALL	JUMPS.TestCoords
 | ||
| 	SPDSS DSSF.SCANKEY		;ަ¨¤ ¥¬  ¦ â¨ï ª« ¢¨è
 | ||
| 		JR	Z,TViewLoop
 | ||
| 		LD	A,E		;…-ASCII ª®¤
 | ||
| 		CP	0x1B		;Esc
 | ||
| 		JP	Z,ViewerExit
 | ||
| 		OR	A
 | ||
| 		JR	NZ,TViewLoop	;†¤¥¬ äãªæ¨®.ª« ¢¨è¨
 | ||
| 		LD	A,D
 | ||
| 		CP	0x44
 | ||
| 		JP	Z,ViewerExit
 | ||
| 		LD	HL,TViewLoop
 | ||
| 		PUSH	HL
 | ||
| 		CP	0x3B
 | ||
| 		JP	Z,About
 | ||
| 		CP	0x3C
 | ||
| 		JP	Z,ChASCIImode
 | ||
| 		CP	0x3E
 | ||
| 		JP	Z,ChViewer	;<3B>à®á¬®âà ¢ HEX
 | ||
| 		CP	0x42
 | ||
| 		JP	Z,ChCodePage    ;‘¬¥  ª®¤®¢®© áâà ¨æë WIN/DOS/KOI
 | ||
| 		CP	0x41
 | ||
| 		JP	Z,FVPrintFile
 | ||
| 		CP	0x54
 | ||
| 		JP	Z,ScrollLeft
 | ||
| 		CP	0x56
 | ||
| 		JP	Z,ScrollRght
 | ||
| 		CP	87		;Home
 | ||
| 		JP	Z,THome
 | ||
| 		CP	81		;End
 | ||
| 		JP	Z,TEnd
 | ||
| 		CP	88		;‘â५ª  ¢¢¥àå
 | ||
| 		JP	Z,TLineUp
 | ||
| 		CP	82		;‘â५ª  ¢¨§
 | ||
| 		JP	Z,TLineDwn
 | ||
| 		CP	89		;PageUp
 | ||
| 		JP	Z,TPageUp
 | ||
| 		CP	83		;PageDown
 | ||
| 		JP	Z,TPageDwn
 | ||
| 		LD	A,B
 | ||
| 		AND	0x30
 | ||
| 		CP	0x30
 | ||
| 		RET	Z
 | ||
| 		BIT	5,B
 | ||
| 		RET	Z
 | ||
| 		LD	A,D
 | ||
| 		AND	0x7F
 | ||
| 		CP	0x57		;Ctrl+PageUp
 | ||
| 		JP	Z,TBegFile	;¢  ç «® ä ©« 
 | ||
| 		CP	0x51		;Ctrl+PageDown
 | ||
| 		JP	Z,TEndFile	;¢ ª®¥æ ä ©« 
 | ||
| 		CP	0x19		;Ctrl+P
 | ||
| 		JP	Z,FVPrintFile
 | ||
| 		RET 
 | ||
| 
 | ||
| ;--------------------------------------------------------------
 | ||
| HViewLoop	LD	IX,HEXtab
 | ||
| 		CALL	JUMPS.TestCoords
 | ||
| 	SPDSS DSSF.SCANKEY		;ަ¨¤ ¥¬  ¦ â¨ï ª« ¢¨è
 | ||
| 		JR	Z,HViewLoop
 | ||
| 		LD	A,E		;…-ASCII ª®¤
 | ||
| 		CP	0x1B		;Esc
 | ||
| 		JP	Z,ViewerExit
 | ||
| 		OR	A
 | ||
| 		JR	NZ,HViewLoop	;†¤¥¬ äãªæ¨®.ª« ¢¨è¨
 | ||
| 		LD	A,D		;
 | ||
| 		CP	0x44		;F10
 | ||
| 		JP	Z,ViewerExit
 | ||
| 		LD	HL,HViewLoop
 | ||
| 		PUSH	HL
 | ||
| 		CP	0x3B
 | ||
| 		JP	Z,About
 | ||
| 		CP	0x3E		;F4
 | ||
| 		JP	Z,ChViewer	;<3B>à®á¬®âà ¢ ⥪áâ¥
 | ||
| 		CP	0x3F		;F5
 | ||
| 		JP	Z,HGoTo		;<3B>¥à¥å®¤    ¤à¥á ¯®«ì§®¢ â¥«ï
 | ||
| 		CP	0x41
 | ||
| 		JP	Z,FVPrintFile
 | ||
| 		CP	88		;‘â५ª  ¢¢¥àå
 | ||
| 		JP	Z,FVHLineUp
 | ||
| 		CP	82		;‘â५ª  ¢¨§
 | ||
| 		JP	Z,HLineDwn
 | ||
| 		CP	89		;PageUp
 | ||
| 		JP	Z,FVHPageUp
 | ||
| 		CP	83		;PageDown
 | ||
| 		JP	Z,HPageDwn
 | ||
| 		LD	A,B
 | ||
| 		AND	0x30
 | ||
| 		CP	0x30
 | ||
| 		RET	Z
 | ||
| 		BIT	5,B
 | ||
| 		RET	Z
 | ||
| 		LD	A,D
 | ||
| 		AND	0x7F
 | ||
| 		CP	0x57		;Ctrl+PageUp
 | ||
| 		JP	Z,HBegFile	;¢  ç «® ä ©« 
 | ||
| 		CP	0x51		;Ctrl+PageDown
 | ||
| 		JP	Z,HEndFile	;¢ ª®¥æ ä ©« 
 | ||
| 		CP	0x19		;Ctrl+P
 | ||
| 		JP	Z,FVPrintFile
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| ChViewer	LD	HL,ViewerBegin
 | ||
| 		EX	(SP),HL
 | ||
| 		SUB	A
 | ||
| 		LD	(ASCIIaddX),A
 | ||
| 		LD	A,(ViewMode)
 | ||
| 		XOR	0x01
 | ||
| 		LD	(ViewMode),A
 | ||
| 		RET	NZ
 | ||
| 		LD	HL,(FileShift)
 | ||
| 		LD	DE,(FileShift+2)
 | ||
| 		INC	HL
 | ||
| 		LD	A,H
 | ||
| 		OR	L
 | ||
| 		JR	NZ,.L1
 | ||
| 		INC	DE
 | ||
| .L1		CALL	SearchUp
 | ||
| 		LD	(FileShift),HL
 | ||
| 		LD	(FileShift+2),DE
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| PrintVPage	LD	A,(ViewMode)
 | ||
| 		OR	A
 | ||
| 		JP	NZ,PrnHEXpage
 | ||
| 		JP	PrnASCIIpage
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| ViewingFile	DUPL	0x30,0
 | ||
| ViewMode	DEFB	0x00
 | ||
| ASCIImode	DEFB	0x01
 | ||
| ASCIIaddX	DEFB	0x00
 | ||
| EmptyLines	DEFB	0x00
 | ||
| FileLenght	DUPL	4,0	; „«¨  ä ©«  (32¡¨â)
 | ||
| FileShift	DUPL	4,0	; ‘¬¥é¥¨¥ ®â  ç «  ä ©«  (32¡¨â)
 | ||
| TempShift	DUPL	4,0	; ‚६¥ ï ï祩ª  ᬥ饨ï (32¡¨â)
 | ||
| FVNextShift	DUPL	4,0	; ‘«¥¤ãîé ï áâà ¨æ  ¤«ï ASCII (32¡¨â)
 | ||
| FVMemIndef	DEFB	0x00
 | ||
| FHandle		DEFB	0x00
 | ||
| FVReadLen	DUPL	4,0
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| ViewerExit	LD	A,(FVMemIndef)
 | ||
| 	SPDSS DSSF.FREEMEM
 | ||
| 		OR	A
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| LoadFile	CALL	JUMPS.SetClock
 | ||
| 		LD	DE,ViewingFile
 | ||
| ;	SPDSS DSSF.F_FIRST,1,0x37
 | ||
| 	SPDSS DSSF.F_FIRST,1,	DIR.M_Archive + \
 | ||
| 				DIR.M_Dir + \
 | ||
| 				DIR.M_System + \
 | ||
| 				DIR.M_Hidden + \
 | ||
| 				DIR.M_ReadOnly
 | ||
| 		PUSH	AF
 | ||
| 		CALL	C,JUMPS.DOSError
 | ||
| 		POP	AF
 | ||
| 		JP	C,LoadExit
 | ||
| ;		LD	HL,ViewingFile+33
 | ||
| ;		LD	A,(HL)
 | ||
| ;LoadFl0		CALL	FVCorrBigChar
 | ||
| ;		LD	(HL),A
 | ||
| ;		INC	HL
 | ||
| ;		LD	A,(HL)
 | ||
| ;		OR	A
 | ||
| ;		JR	NZ,LoadFl0
 | ||
| 		LD	IX,ViewingFile
 | ||
| 		LD	H,(IX+28)
 | ||
| 		LD	A,(IX+29)
 | ||
| 		LD	E,(IX+30)
 | ||
| 		LD	D,(IX+31)
 | ||
| 		LD	L,0x00
 | ||
| 		SLA	A
 | ||
| 		RL	E
 | ||
| 		RL	D
 | ||
| 		RL	L
 | ||
| 		SLA	A
 | ||
| 		RL	E
 | ||
| 		RL	D
 | ||
| 		RL	L
 | ||
| 		OR	H
 | ||
| 		LD	H,0x00
 | ||
| 		EX	DE,HL
 | ||
| 		JR	Z,.L1
 | ||
| 		INC	HL
 | ||
| .L1		LD	A,H
 | ||
| 		OR	L
 | ||
| 		JR	NZ,LoadFl1
 | ||
| 		INC	HL
 | ||
| LoadFl1		LD	A,D
 | ||
| 		OR	E
 | ||
| 		LD	A,0x1E
 | ||
| 		PUSH	AF
 | ||
| 		CALL	NZ,JUMPS.DOSError	;!!!!!!!!!!!! <20>¥â ¯ ¬ïâ¨
 | ||
| 		POP	AF
 | ||
| 		SCF 
 | ||
| 		JP	NZ,LoadExit
 | ||
| 		PUSH	HL
 | ||
| 	SPDSS DSSF.INFOMEM
 | ||
| 		POP	DE
 | ||
| 		LD	L,C
 | ||
| 		LD	H,B
 | ||
| 		OR	A
 | ||
| 		SBC	HL,DE
 | ||
| 		LD	A,0x1E
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	AF
 | ||
| 		CALL	C,JUMPS.DOSError	;!!!!!!!!!!!! <20>¥â ¯ ¬ïâ¨
 | ||
| 		POP	AF
 | ||
| 		POP	DE
 | ||
| 		JP	C,LoadExit
 | ||
| 		LD	IX,ProcessView
 | ||
| 		LD	(IX+PROC.MAXL1),E
 | ||
| 		LD	(IX+PROC.MAXH1),D
 | ||
| 		SUB	A
 | ||
| 		LD	(IX+PROC.MAXL2),A
 | ||
| 		LD	(IX+PROC.MAXH2),A
 | ||
| 		PUSH	DE
 | ||
| 		CALL	JUMPS.InitProcess
 | ||
| 		POP	DE
 | ||
| 		LD	B,E
 | ||
| 	SPDSS DSSF.GETMEM
 | ||
| 		LD	(FVMemIndef),A
 | ||
| 		LD	HL,PagesList
 | ||
| 	SPBIOS BIOSF.GETMEMBLKPAGES
 | ||
| 	MAKEWINDOW WINSUBOBJ.STORE
 | ||
| 	W_MAIN 160,88,320,48
 | ||
| 	W_FILL 4,2,312,10,COLORI.BLACK
 | ||
| 	W_TEXT 112,3,COLORI.WHITE,"FN File Viewer v\{FLEX_VERS.VIEWER}"
 | ||
| 	W_TEXT 8,16,COLORP.HIGHGRAY,"Reading:"
 | ||
| 	W_BORDER 16,28,288,12
 | ||
| 	W_FILL 18,29,284,10,COLORI.WHITE
 | ||
| 	W_END
 | ||
| 	SPDSS DSSF.CURDISK
 | ||
| 		LD	HL,WorkBuffer
 | ||
| 		ADD	A,"A"
 | ||
| 		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		LD	(HL),":"
 | ||
| 		INC	HL
 | ||
| 		PUSH	HL
 | ||
| 	SPDSS DSSF.CURDIR
 | ||
| 		POP	HL
 | ||
| 		SUB	A
 | ||
| .L2		INC	HL
 | ||
| 		CP	(HL)
 | ||
| 		JR	NZ,.L2
 | ||
| 		DEC	HL
 | ||
| 		LD	A,0x5C
 | ||
| 		CP	(HL)
 | ||
| 		INC	HL
 | ||
| 		JR	Z,.L3
 | ||
| 		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| .L3		EX	DE,HL
 | ||
| 		LD	HL,ViewingFile+33
 | ||
| 		SUB	A
 | ||
| .L4		LDI 
 | ||
| 		CP	(HL)
 | ||
| 		JR	NZ,.L4
 | ||
| 		LD	(DE),A
 | ||
| 		LD	IX,0x0100
 | ||
| 		LD	HL,WorkBuffer
 | ||
| 		LD	DE,0x00D8
 | ||
| 		LD	BC,0x0068
 | ||
| 		LD	A,0x80
 | ||
| 		CALL	JUMPS.PrnRangPathL
 | ||
| 		LD	HL,ViewingFile+33
 | ||
| 	SPDSS DSSF.OPEN,,1
 | ||
| 		PUSH	AF
 | ||
| 		CALL	C,JUMPS.DOSError
 | ||
| 		POP	AF
 | ||
| 		JP	C,NoRead
 | ||
| 		LD	(FHandle),A
 | ||
| 		LD	IX,ViewingFile
 | ||
| 		LD	L,(IX+28)
 | ||
| 		LD	H,(IX+29)
 | ||
| 		LD	(FVReadLen),HL
 | ||
| 		LD	L,(IX+30)
 | ||
| 		LD	H,(IX+31)
 | ||
| 		LD	(FVReadLen+2),HL
 | ||
| 	SETPORT WINSP.Y_PORT,0xC0
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 		LD	HL,PagesList
 | ||
| 		LD	A,(HL)
 | ||
| .ReadLp1	INC	HL
 | ||
| 		PUSH	HL
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 	SPDSS DSSF.SCANKEY
 | ||
| 		LD	HL,0x011B
 | ||
| 		OR	A
 | ||
| 		SBC	HL,DE
 | ||
| 		JP	Z,ReadAbort
 | ||
| 		LD	HL,(FVReadLen)
 | ||
| 		LD	DE,(FVReadLen+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	(FVReadLen),HL
 | ||
| 		LD	(FVReadLen+2),DE
 | ||
| 		LD	HL,0x4000
 | ||
| 		LD	DE,0x4000
 | ||
| 		LD	A,(FHandle)
 | ||
| 	SPDSS DSSF.READ
 | ||
| 		CALL	FVNextProcess
 | ||
| 		POP	HL
 | ||
| 		LD	A,(HL)
 | ||
| 		CP	0xFF
 | ||
| 		JR	NZ,.ReadLp1
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		JR	ReadExit
 | ||
| 
 | ||
| .ReadEnd	LD	HL,0x4000
 | ||
| 		LD	DE,(FVReadLen)
 | ||
| 		LD	A,D
 | ||
| 		OR	E
 | ||
| 		JR	Z,ReadEn1
 | ||
| 		LD	A,(FHandle)
 | ||
| 	SPDSS DSSF.READ
 | ||
| 		CALL	FVNextProcess
 | ||
| ReadEn1		POP	HL
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| ReadExit	LD	A,(FHandle)
 | ||
| 	SPDSS DSSF.CLOSE
 | ||
| 		OR	A
 | ||
| LoadExit	HALT 
 | ||
| 		HALT 
 | ||
| 	WINDOWCLOSE
 | ||
| 		PUSH	AF
 | ||
| 		CALL	JUMPS.SetMouse
 | ||
| 		POP	AF
 | ||
| 		RET 
 | ||
| 
 | ||
| ReadAbort	POP	HL
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| NoRead		LD	A,(FVMemIndef)
 | ||
| 	SPDSS DSSF.FREEMEM
 | ||
| 		SCF 
 | ||
| 		JR	LoadExit
 | ||
| 
 | ||
| FVNextProcess	LD	IX,ProcessView
 | ||
| 		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,.NextPr1
 | ||
| 		LD	L,(IX+PROC.CURL2)
 | ||
| 		LD	H,(IX+PROC.CURH2)
 | ||
| 		INC	HL
 | ||
| 		LD	(IX+PROC.CURL2),L
 | ||
| 		LD	(IX+PROC.CURH2),H
 | ||
| .NextPr1	CALL	JUMPS.PrnProcess
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| ProcessView	DEFW	0x00B2
 | ||
| 		DEFW	0x0075
 | ||
| 		DEFW	0x011C
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFB	0x4F
 | ||
| 
 | ||
| ;FVCorrBigChar	CP	0x41
 | ||
| ;		RET	C
 | ||
| ;		CP	0x5B
 | ||
| ;		JR	NC,.CorrCh1
 | ||
| ;		SET	5,A
 | ||
| ;		RET 
 | ||
| 
 | ||
| ;.CorrCh1	CP	0x80
 | ||
| ;		RET	C
 | ||
| ;		CP	0xA0
 | ||
| ;		RET	NC
 | ||
| ;		SET	5,A
 | ||
| ;		CP	0x90
 | ||
| ;		RET	C
 | ||
| ;		SET	6,A
 | ||
| ;		RES	4,A
 | ||
| ;		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| InitViewScr	LD	HL,FVFLen
 | ||
| 		LD	B,0x10
 | ||
| 		LD	A,0x20
 | ||
| .L1		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		DJNZ	.L1
 | ||
| 		LD	HL,FVFClast
 | ||
| 		LD	B,0x05
 | ||
| .L2		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		DJNZ	.L2
 | ||
| 		LD	DE,FVFLen
 | ||
| 		LD	IX,ViewingFile
 | ||
| 		LD	L,(IX+28)
 | ||
| 		LD	H,(IX+29)
 | ||
| 		LD	C,(IX+30)
 | ||
| 		LD	B,(IX+31)
 | ||
| 		CALL	JUMPS.ConvNumTxt32
 | ||
| 		LD	A,0x20
 | ||
| 		LD	(DE),A
 | ||
| 		INC	DE
 | ||
| 		LD	HL,FVBytes
 | ||
| 		LD	BC,0x0005
 | ||
| 		LDIR 
 | ||
| 		LD	DE,FVFData
 | ||
| 		CALL	FVGetData
 | ||
| 		LD	DE,FVFTime
 | ||
| 		CALL	FVGetTime
 | ||
| 		LD	L,(IX+26)
 | ||
| 		LD	H,(IX+27)
 | ||
| 		LD	DE,FVFClast
 | ||
| 		CALL	JUMPS.ConvNumTxt16
 | ||
| 		LD	HL,FVFAtributs
 | ||
| 		LD	DE,FVFAttrib
 | ||
| 		LD	C,(IX+32)
 | ||
| 		LD	B,0x08
 | ||
| InitVS0		RL	C
 | ||
| 		LD	A,"-"
 | ||
| 		JR	NC,.L3
 | ||
| 		LD	A,(HL)
 | ||
| .L3		LD	(DE),A
 | ||
| 		INC	HL
 | ||
| 		INC	DE
 | ||
| 		DJNZ	InitVS0
 | ||
| 	MAKEWINDOW WINSUBOBJ.NOSTORE
 | ||
| 	W_MAIN 0,0,640,256
 | ||
| 	W_FILL 4,2,632,10,COLORI.BLACK
 | ||
| 	W_TEXT 8,3,COLORI.WHITE,"  FN File Viewer v\{FLEX_VERS.VIEWER}"
 | ||
| 	W_HORIZLINE 0,13,640
 | ||
| 	W_TEXT 8,17,COLORP.HIGHGRAY,"Viewing:"
 | ||
| 	W_VERTICLINE 574,16,10
 | ||
| 	W_HORIZLINE 0,27,640
 | ||
| 	W_HORIZLINE 0,227,640
 | ||
| 	W_FILL 0,28,640,200,COLORI.PANEL
 | ||
| 	W_TEXT 8,231,COLORP.HIGHGRAY,"Len:                  "
 | ||
| FVFLen		EQU $ - STRLEN("                ") - 1
 | ||
| 	W_VERTICLINE 160,230,10
 | ||
| 	W_TEXT 172,231,COLORP.HIGHGRAY,"Create data:                 "
 | ||
| FVFData		EQU $ - STRLEN("               ") - 1
 | ||
| FVFTime		EQU $ - STRLEN("     ") - 1
 | ||
| 	W_VERTICLINE 336,230,10
 | ||
| 	W_TEXT 348,231,COLORP.HIGHGRAY,"First cluster:       "
 | ||
| FVFClast	EQU $ - STRLEN("     ") - 1
 | ||
| 	W_VERTICLINE 480,230,10
 | ||
| 	W_TEXT 492,231,COLORP.HIGHGRAY,"File attribute:         "
 | ||
| FVFAttrib	EQU $ - STRLEN("        ") - 1
 | ||
| 	W_END
 | ||
| 	SPDSS DSSF.CURDISK
 | ||
| 		LD	HL,WorkBuffer
 | ||
| 		ADD	A,"A"
 | ||
| 		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		LD	(HL),":"
 | ||
| 		INC	HL
 | ||
| 		PUSH	HL
 | ||
| 	SPDSS DSSF.CURDIR
 | ||
| 		POP	HL
 | ||
| 		SUB	A
 | ||
| .L4		INC	HL
 | ||
| 		CP	(HL)
 | ||
| 		JR	NZ,.L4
 | ||
| 		DEC	HL
 | ||
| 		LD	A,0x5C
 | ||
| 		CP	(HL)
 | ||
| 		INC	HL
 | ||
| 		JR	Z,.L5
 | ||
| 		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| .L5		EX	DE,HL
 | ||
| 		LD	HL,ViewingFile+33
 | ||
| 		SUB	A
 | ||
| .L6		LDI 
 | ||
| 		CP	(HL)
 | ||
| 		JR	NZ,.L6
 | ||
| 		LD	(DE),A
 | ||
| 		LD	IX,0x0200
 | ||
| 		LD	HL,WorkBuffer
 | ||
| 		LD	DE,0x0034
 | ||
| 		LD	BC,0x0011
 | ||
| 		LD	A,0x80
 | ||
| 		CALL	JUMPS.PrnRangPathL
 | ||
| 		LD	HL,0x01FC
 | ||
| 		LD	DE,0x0003
 | ||
| 		LD	B,0x08
 | ||
| 		EXX 
 | ||
| 		LD	HL,0x022E
 | ||
| 		LD	DE,0x0003
 | ||
| 		LD	B,0x08
 | ||
| 		EXX 
 | ||
| 		LD	A,0x02
 | ||
| 		CALL	JUMPS.SetCMOSPrint
 | ||
| 		RET 
 | ||
| 
 | ||
| FVFAtributs	DEFB	"--ad-shr"
 | ||
| 
 | ||
| ;„ â 
 | ||
| FVGetData	EX	DE,HL
 | ||
| 		LD	A,(IX+24)
 | ||
| 		AND	0x1F
 | ||
| 		CALL	FVGet8Bit
 | ||
| 		LD	(HL),"."
 | ||
| 		INC	HL
 | ||
| 		LD	A,(IX+24)
 | ||
| 		LD	C,(IX+25)
 | ||
| 		LD	B,5
 | ||
| .L1		SRL	C
 | ||
| 		RRA 
 | ||
| 		DJNZ	.L1
 | ||
| 		AND	0x0F
 | ||
| 		CALL	FVGet8Bit
 | ||
| 		LD	(HL),"."
 | ||
| 		INC	HL
 | ||
| 		LD	A,(IX+25)      ;ƒ®¤
 | ||
| 		SRL	A
 | ||
| 		ADD	A,80
 | ||
| .L2		SUB	100
 | ||
| 		JR	NC,.L2
 | ||
| 		ADD	A,100		;ƒ®¤
 | ||
| 		CALL	FVGet8Bit
 | ||
| 		EX	DE,HL
 | ||
| 		RET 
 | ||
| 
 | ||
| ;∴•
 | ||
| FVGetTime	EX	DE,HL
 | ||
| 		LD	A,(IX+23)	;— áë
 | ||
| 		AND	0xF8
 | ||
| 		RRA 
 | ||
| 		RRA 
 | ||
| 		RRA 
 | ||
| 		CALL	FVGet8Bit
 | ||
| 		LD	(HL),":"
 | ||
| 		INC	HL
 | ||
| 		LD	A,(IX+22)
 | ||
| 		LD	C,(IX+23)
 | ||
| 		LD	B,5
 | ||
| .L1		SRL	C
 | ||
| 		RRA 
 | ||
| 		DJNZ	.L1
 | ||
| 		AND	0x3F
 | ||
| 		CALL	FVGet8Bit
 | ||
| 		EX	DE,HL
 | ||
| 		RET 
 | ||
| 
 | ||
| FVGet8Bit	LD	B,0x2F
 | ||
| .L1		INC	B
 | ||
| 		SUB	10
 | ||
| 		JR	NC,.L1
 | ||
| 		ADD	A,10
 | ||
| 		LD	(HL),B
 | ||
| 		INC	HL
 | ||
| 		ADD	A,"0"
 | ||
| 		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		RET 
 | ||
| 
 | ||
| FVBytes		DEFB	"bytes"
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| InitStatusLine	LD	A,(ViewMode)
 | ||
| 		OR	A
 | ||
| 		JP	NZ,HEXstatus
 | ||
| ASCIIstatus	LD	HL,UnWrapT
 | ||
| 		LD	DE,0x005E
 | ||
| 		LD	A,(ASCIImode)
 | ||
| 		OR	A
 | ||
| 		JR	Z,.L1
 | ||
| 		LD	HL,WrapT
 | ||
| 		LD	DE,0x0064
 | ||
| .L1		LD	(ASCIIx),DE
 | ||
| 		LD	DE,ASCIIm
 | ||
| 		LD	BC,0x0009
 | ||
| 		LDIR 
 | ||
| 		CALL    InitCodePage
 | ||
| 	MAKEWINDOW WINSUBOBJ.WOBIND
 | ||
| 	W_HORIZLINE 0,241,640
 | ||
| 	W_FILL 2,243,636,12,COLORI.HIGHGRAY
 | ||
| 	W_HORIZLINE 2,255,638
 | ||
| 	W_BUTTON 0,242,80,14
 | ||
| 	W_TEXT 18,245,COLORP.HIGHGRAY,"F1 About"
 | ||
| 	W_BUTTON 80,242,80,14
 | ||
| 	W_TEXT 94,245,COLORP.HIGHGRAY,"F2 UnWrap"
 | ||
| ASCIIx:		EQU $ - STRLEN("F2 UnWrap") - 6
 | ||
| ASCIIm:		EQU $ - STRLEN("F2 UnWrap") - 1
 | ||
| 	W_BUTTON 160,242,80,14
 | ||
| 	W_TEXT 184,245,COLORP.HIGHGRAY,"F4 Hex"
 | ||
| 	W_BUTTON 400,242,80,14
 | ||
| 	W_TEXT 422,245,COLORP.HIGHGRAY,"F7 Print"
 | ||
| 	W_BUTTON 480,242,80,14
 | ||
| 	W_TEXT 504,245,COLORP.HIGHGRAY,"F8 DOS"
 | ||
| ASCIIenc:	EQU $ - STRLEN("DOS") - 1
 | ||
| 	W_BUTTON 560,242,80,14
 | ||
| 	W_TEXT 580,245,COLORP.HIGHGRAY,"F10 Quit"
 | ||
| 	W_END
 | ||
| 		RET 
 | ||
| 
 | ||
| UnWrapT		DEFB	"F2 UnWrap"
 | ||
| WrapT		DEFB	"F2 Wrap  "
 | ||
| EncDos:		DEFB	"DOS"
 | ||
| EncWin:		DEFB	"WIN"
 | ||
| EncKoi:		DEFB	"KOI"
 | ||
| 
 | ||
| HEXstatus
 | ||
| 	MAKEWINDOW WINSUBOBJ.WOBIND
 | ||
| 	W_HORIZLINE 0,241,640
 | ||
| 	W_FILL 2,243,636,12,COLORI.HIGHGRAY
 | ||
| 	W_HORIZLINE 2,255,638
 | ||
| 	W_BUTTON 0,242,80,14
 | ||
| 	W_TEXT 18,245,COLORP.HIGHGRAY,"F1 About"
 | ||
| 	W_BUTTON 160,242,80,14
 | ||
| 	W_TEXT 182,245,COLORP.HIGHGRAY,"F4 ASCII"
 | ||
| 	W_BUTTON 240,242,80,14
 | ||
| 	W_TEXT 258,245,COLORP.HIGHGRAY,"F5 Go to"
 | ||
| 	W_BUTTON 400,242,80,14
 | ||
| 	W_TEXT 422,245,COLORP.HIGHGRAY,"F7 Print"
 | ||
| 	W_BUTTON 560,242,80,14
 | ||
| 	W_TEXT 580,245,COLORP.HIGHGRAY,"F10 Quit"
 | ||
| 	W_END
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| About
 | ||
| 	MAKEWINDOW WINSUBOBJ.STORE
 | ||
| 	W_MAIN 160,72,320,85
 | ||
| 	W_FILL 4,2,312,10,COLORP.BLACK
 | ||
| 	W_TEXT 144,3,COLORI.WHITE,"About"
 | ||
| 	W_TEXT 96,18,COLORP.HIGHGRAY,"Flex Navigator File Viewer"
 | ||
| 	W_TEXT 144,28,COLORP.HIGHGRAY,"v\{FLEX_VERS.VIEWER}"
 | ||
| 	W_TEXT 18,40,COLORP.HIGHGRAY,"Programming:  (C)2000 Enin Anton"
 | ||
| 	W_TEXT 92,50,COLORP.HIGHGRAY,"(C)2021 Mikhaltchenkov Dmitry"
 | ||
| 	W_BUTTON 124,66,72,14
 | ||
| 	W_TEXT 154,69,COLORP.HIGHGRAY,"Ok"
 | ||
| 	W_END
 | ||
| AboutLoop	LD	IX,FVAboutTab
 | ||
| 		CALL	JUMPS.TestCoords
 | ||
| 	SPDSS DSSF.SCANKEY
 | ||
| 		JR	Z,AboutLoop
 | ||
| 		LD	A,B
 | ||
| 		OR	A
 | ||
| 		JR	NZ,AboutLoop
 | ||
| 		LD	A,E
 | ||
| 		CP	0x1B
 | ||
| 		JR	Z,AboutExt
 | ||
| 		CP	0x0D
 | ||
| 		JR	Z,AboutExt
 | ||
| 		RES	5,A
 | ||
| 		CP	"O"
 | ||
| 		JR	NZ,AboutLoop
 | ||
| AboutExt
 | ||
| 	WINDOWCLOSE
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| ScrollSCRup	LD	DE,0x241C
 | ||
| 		JR	ScrlSCRDnUp
 | ||
| 
 | ||
| ScrollSCRdown	LD	DE,0x1C24
 | ||
| ;<3B>  ¢å®¤:
 | ||
| ;	 D  - Y	®âªã¤ 
 | ||
| ;	 …  - Y	ªã¤ 
 | ||
| ScrlSCRDnUp	DI 
 | ||
| 		PUSH	DE
 | ||
| 	SPMOUSE MOUSEF.REFRESH
 | ||
| 		POP	DE
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		LD	HL,0x4000
 | ||
| 		LD	BC,320
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0xC0
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| ScSCRN1		LD	A,D
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.COPY_VERT
 | ||
| 		LD	A,(HL)
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	A,E
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.COPY_VERT
 | ||
| 		LD	(HL),A
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		INC	HL
 | ||
| 		DEC	BC
 | ||
| 		LD	A,B
 | ||
| 		OR	C
 | ||
| 		JR	NZ,ScSCRN1
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EI 
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| InitFPages	PUSH	HL
 | ||
| 		LD	DE,(TempShift)
 | ||
| 		LD	HL,(TempShift+2)
 | ||
| 		LD	A,D		;‚뤥«ï¥¬ ®¬¥à	áâà ¨æë
 | ||
| 		RLA 
 | ||
| 		RL	L
 | ||
| 		RLA 
 | ||
| 		RL	L
 | ||
| 		LD	A,L
 | ||
| 		EXX 
 | ||
| 		LD	E,A		;DE - €¤à¥á áâà ¨æë ¢ ᯨ᪥
 | ||
| 		LD	D,HIGH (PagesList)
 | ||
| 		LD	A,(DE)		;’¥ª.áâà ¨æ 
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EXX 
 | ||
| 		RES	7,D		;‚ª«.á 0x4000
 | ||
| 		SET	6,D
 | ||
| 		POP	HL
 | ||
| 		RET 
 | ||
| 
 | ||
| TestFPages	BIT	7,D
 | ||
| 		RET	Z
 | ||
| 		RES	7,D
 | ||
| 		SET	6,D
 | ||
| 		EXX 
 | ||
| 		INC	E		;DE - €¤à¥á áâà ¨æë ¢ ᯨ᪥
 | ||
| 		LD	A,(DE)		;’¥ª.áâà ¨æ 
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EXX 
 | ||
| 		RET 
 | ||
| 
 | ||
| GetFPages	PUSH	HL
 | ||
| 		RES	6,D
 | ||
| 		EXX 
 | ||
| 		LD	A,E
 | ||
| 		EXX 
 | ||
| 		BIT	7,D
 | ||
| 		RES	7,D
 | ||
| 		JR	Z,.L1
 | ||
| 		INC	A
 | ||
| .L1		LD	L,A
 | ||
| 		SUB	A
 | ||
| 		LD	H,A
 | ||
| 		SRL	L
 | ||
| 		RRA 
 | ||
| 		SRL	L
 | ||
| 		RRA 
 | ||
| 		OR	D
 | ||
| 		LD	D,A
 | ||
| 		LD	(TempShift),DE
 | ||
| 		LD	(TempShift+2),HL
 | ||
| 		POP	HL
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| ;<3B>à®æ¥¤ãà  ¨¨æ¨ «¨§ æ¨ï â ¡«¨æë ¯à®æ¥â®¢
 | ||
| InitVProc	LD	A,0x01
 | ||
| 		LD	(ProcFlag),A	;”« £ ¢ë¢®¤  ¯à®æ¥â®¢
 | ||
| 		LD	A,(ViewMode)
 | ||
| 		OR	A
 | ||
| 		JR	NZ,InProcHex
 | ||
| ;<3B>à®æ¥âë ¤«ï TextWrap
 | ||
| InProcASCII	LD	HL,(FileLenght)
 | ||
| 		LD	DE,(FileLenght+2)
 | ||
| 		LD	B,0x19
 | ||
| InProcA		PUSH	BC
 | ||
| 		CALL	SearchUp
 | ||
| 		POP	BC
 | ||
| 		RET	C
 | ||
| 		DJNZ	InProcA
 | ||
| 		JR	InitProc
 | ||
| 
 | ||
| ;<3B>à®æ¥âë ¤«ï Hex
 | ||
| InProcHex	LD	HL,(FileLenght)
 | ||
| 		LD	DE,(FileLenght+2)
 | ||
| 		LD	BC,0x0190
 | ||
| 		OR	A
 | ||
| 		SBC	HL,BC
 | ||
| 		LD	BC,0x0000
 | ||
| 		EX	DE,HL
 | ||
| 		SBC	HL,BC
 | ||
| 		EX	DE,HL
 | ||
| 		RET	C
 | ||
| 		LD	A,H
 | ||
| 		OR	L
 | ||
| 		OR	D
 | ||
| 		OR	E
 | ||
| 		RET	Z
 | ||
| ;<3B>à®æ¥¤ãà  ¨¨æ¨ «¨§ æ¨¨ â ¡«¨æë ¯à®æ¥â®¢
 | ||
| ;<3B>  ¢å®¤:
 | ||
| ;	  DE+HL	- „«¨ 	ä ©« -1áâà ¨æ 
 | ||
| InitProc	PUSH	HL
 | ||
| 		PUSH	DE
 | ||
| 		EX	DE,HL
 | ||
| 		LD	BC,100		;„«¨  ä ©« /100 (%)
 | ||
| 		CALL	JUMPS.Divis32
 | ||
| 		LD	(Coeff1+1),DE	;<3B>®«ãç ¥¬ ª®«-¢® ¡ ©â  
 | ||
| 		LD	(Coeff2+1),HL	;®¤¨ ¯à®æ¥â
 | ||
| 		LD	IX,ProcentTab
 | ||
| 		LD	HL,0x0000
 | ||
| 		LD	E,L
 | ||
| 		LD	D,H
 | ||
| 		LD	BC,0x6300	;ƒ¥¥à¨¬ â ¡«¨æã
 | ||
| 		LD	(IX+0x00),L
 | ||
| 		INC	IX
 | ||
| 		LD	(IX+0x00),H
 | ||
| 		INC	IX
 | ||
| 		LD	(IX+0x00),E
 | ||
| 		INC	IX
 | ||
| 		LD	(IX+0x00),D
 | ||
| 		INC	IX
 | ||
| 		LD	(IX+0x00),C
 | ||
| 		INC	IX
 | ||
| 		INC	C
 | ||
| ;¤«ï ª ¦¤®£® ¯à®æ¥â 
 | ||
| CoeffLoop	PUSH	BC
 | ||
| Coeff1		LD	BC,0x0000
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	(IX+0x00),L
 | ||
| 		INC	IX
 | ||
| 		LD	(IX+0x00),H
 | ||
| 		INC	IX
 | ||
| 		EX	DE,HL
 | ||
| Coeff2		LD	BC,0x0000
 | ||
| 		ADC	HL,BC
 | ||
| 		EX	DE,HL
 | ||
| 		POP	BC
 | ||
| 		LD	(IX+0x00),E
 | ||
| 		INC	IX
 | ||
| 		LD	(IX+0x00),D
 | ||
| 		INC	IX
 | ||
| 		LD	(IX+0x00),C
 | ||
| 		INC	IX
 | ||
| 		INC	C
 | ||
| 		DJNZ	CoeffLoop
 | ||
| 		POP	DE
 | ||
| 		POP	HL
 | ||
| 		LD	(IX+0x00),L	;Œ ªá.¯à®æ¥â
 | ||
| 		INC	IX
 | ||
| 		LD	(IX+0x00),H
 | ||
| 		INC	IX
 | ||
| 		LD	(IX+0x00),E
 | ||
| 		INC	IX
 | ||
| 		LD	(IX+0x00),D
 | ||
| 		INC	IX
 | ||
| 		LD	(IX+0x00),C
 | ||
| 		SUB	A
 | ||
| 		LD	(ProcFlag),A
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| ;<3B>à®æ¥¤ãà  ¯à®áç¥â  ¨ ¯¥ç â¨ ¯à®æ¥â®
 | ||
| PrintVProc	LD	HL,PutProcent
 | ||
| 		PUSH	HL	;‚ë室¨¬   ¯¥ç âì
 | ||
| 		LD	A,(ProcFlag)
 | ||
| 		OR	A
 | ||
| 		LD	A,100
 | ||
| 		RET	NZ		;“¦¥ ¢á¥ 100%
 | ||
| 		LD	IX,ProcentTab+250 ;‘¥à¨¤¨  â ¡«¨æë ¯à®æ.50%
 | ||
| 		LD	HL,(FileShift)	;’¥ªã饥 ᬥ饨¥
 | ||
| 		LD	DE,(FileShift+2)
 | ||
| 		CALL	TestProcent	;‚ ª ª®© ¯®«®¢¨¥  å®¤.?
 | ||
| 		JR	C,LowTest	;<50%
 | ||
| 		LD	A,(IX+0x04)
 | ||
| 		RET	Z		;=50%
 | ||
| 		LD	IX,ProcentTab+375 ;’ ¡«¨æ  á 75%
 | ||
| 		CALL	TestProcent	;‚ ª ª®© ¯®«®¢¨¥  å®¤.?
 | ||
| 		JR	C,Test2		;50%<X<75%
 | ||
| ;<3B>à®æ¥¤ãà  ¯®¨áª  ¯à®æ¥â  ¢¢¥àå ¯® â ¡«¨æ¥
 | ||
| Test1		LD	A,(IX+0x04)	;’¥ªã騩 ¯à®æ¥â
 | ||
| 		RET	Z		;X=%
 | ||
| 		RET	C		;X<%
 | ||
| 		CP	100		;Š®¥çë© ¯à®æ¥â
 | ||
| 		RET	Z
 | ||
| 		LD	BC,0x0005	;ˆé¥¬ ¢¢¥àå ¯® â ¡«¨æ¥
 | ||
| 		ADD	IX,BC		;<3B>ã¦ë©	¯à®æ¥â
 | ||
| 		CALL	TestProcent
 | ||
| 		JR	Test1
 | ||
| 
 | ||
| ;<3B>à®æ¥¤ãà  ¯®¨áª  ¯à®æ¥â  ¢¨§	¯® â ¡«¨æ¥
 | ||
| Test2		LD	A,(IX+0x04)	;’¥ªã騩 ¯à®æ¥â
 | ||
| 		RET	Z		;X=%
 | ||
| 		RET	NC		;X>%
 | ||
| 		OR	A
 | ||
| 		RET	Z
 | ||
| 		LD	BC,-0x0005	;ˆé¥¬ ¢¨§ ¯® â ¡«¨æ¥
 | ||
| 		ADD	IX,BC		;<3B>ã¦ë©	¯à®æ¥â
 | ||
| 		CALL	TestProcent
 | ||
| 		JR	Test2
 | ||
| 
 | ||
| ;X<50%
 | ||
| LowTest		LD	IX,ProcentTab+125 ;’ ¡«¨æ  á 25%
 | ||
| 		CALL	TestProcent	;‚ ª ª®© ¯®«®¢¨¥  å®¤.?
 | ||
| 		JR	C,Test2		;01%<X<25%
 | ||
| 		JR	Test1		;25%<X<50%
 | ||
| 
 | ||
| ;<3B>à®æ¥¤ãà  â¥áâ¨à®¢ ¨ï	⥪ã饣® ᬥ饨ï
 | ||
| ;<3B>  ¢å®¤:
 | ||
| ;	  DE+HL	- ’¥ªã饥 ᬥ饨¥
 | ||
| ;<3B>  ¢ë室:
 | ||
| ;	  Z - ’¥ª.ᬥé=¯à®æ¥â
 | ||
| ;	  C - ’¥ª.ᬥé<¯à®æ¥â
 | ||
| ;	 NC - ’¥ª.ᬥé>¯à®æ¥â
 | ||
| TestProcent	PUSH	HL
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	BC
 | ||
| 		LD	C,(IX+0x00)
 | ||
| 		LD	B,(IX+0x01)
 | ||
| 		OR	A
 | ||
| 		SBC	HL,BC
 | ||
| 		EX	DE,HL
 | ||
| 		LD	C,(IX+0x02)
 | ||
| 		LD	B,(IX+0x03)
 | ||
| 		SBC	HL,BC
 | ||
| 		JR	NZ,.L1
 | ||
| 		LD	A,D
 | ||
| 		OR	E
 | ||
| .L1		POP	BC
 | ||
| 		POP	DE
 | ||
| 		POP	HL
 | ||
| 		RET 
 | ||
| 
 | ||
| ;<3B>à®æ¥¤ãà  ¢ë¢®¤  ¯à®æ¥â®¢
 | ||
| PutProcent	LD	HL,ProcText
 | ||
| 		PUSH	HL
 | ||
| 		LD	BC,0x2F00
 | ||
| .L1		INC	B
 | ||
| 		SUB	100
 | ||
| 		JR	NC,.L1
 | ||
| 		ADD	A,100
 | ||
| 		EX	AF,AF'
 | ||
| 		LD	A,B
 | ||
| 		CP	"0"
 | ||
| 		JR	Z,.L2
 | ||
| 		SET	0,C
 | ||
| .L2		BIT	0,C
 | ||
| 		JR	NZ,.L3
 | ||
| 		LD	A,0x20
 | ||
| .L3		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		EX	AF,AF'
 | ||
| 		LD	B,0x2F
 | ||
| .L4		INC	B
 | ||
| 		SUB	10
 | ||
| 		JR	NC,.L4
 | ||
| 		ADD	A,10
 | ||
| 		EX	AF,AF'
 | ||
| 		LD	A,B
 | ||
| 		CP	"0"
 | ||
| 		JR	Z,.L5
 | ||
| 		SET	0,C
 | ||
| .L5		BIT	0,C
 | ||
| 		JR	NZ,.L6
 | ||
| 		LD	A,0x20
 | ||
| .L6		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		EX	AF,AF'
 | ||
| 		ADD	A,"0"
 | ||
| 		LD	(HL),A
 | ||
| 		POP	HL
 | ||
| 		LD	DE,0x0250
 | ||
| 		LD	BC,0x0011
 | ||
| 		LD	A,0x80
 | ||
| 		CALL	JUMPS.PrnTxtLnNorm
 | ||
| 		RET 
 | ||
| 
 | ||
| InitCodePage:	LD	A,0
 | ||
| CodePage	EQU $-1
 | ||
| 		LD      L,A
 | ||
| 		LD      H,0
 | ||
| 		ADD     HL,HL
 | ||
| 		ADD     A,L
 | ||
| 		LD      L,A
 | ||
| 		LD      DE,EncDos
 | ||
| 		ADD     HL,DE
 | ||
| 		LD      DE,ASCIIenc
 | ||
| 		LD      BC,3
 | ||
| 		LDIR
 | ||
| 		LD	A, (CodePage)
 | ||
| 		AND	A
 | ||
| 		JR	NZ,.next
 | ||
| 		LD	HL,0
 | ||
| .call:		LD	(PutLine2),A
 | ||
| 		LD	(PutLine2 + 1),HL
 | ||
| 		RET
 | ||
| 
 | ||
| .next:		DEC	A
 | ||
| 		LD	HL,Table866
 | ||
| 		JR	Z,.next1
 | ||
| 		LD	HL,TableKoi
 | ||
| .next1:		LD	(DecodeSymbol.table),HL
 | ||
| 		LD	HL,DecodeSymbol
 | ||
| 		LD	A, 0xCD
 | ||
| 		JR	.call
 | ||
| 
 | ||
| ProcText	DEFB	"   %",0
 | ||
| ProcFlag	DEFB	0x00
 | ||
| ProcentTab	DUPL	505,0
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| 		include fvtext.a80
 | ||
| 		include fvhex.a80
 | ||
| 		include fvprn.a80
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| ASCIItab:	DEFW 0x0050,0x0230,0x001C,0x007F,0x00,0x0000,TLineUpMs,TBegFile
 | ||
| 		DEFW 0x0050,0x0230,0x0080,0x00E4,0x00,0x0000,TLineDwnMs,TEndFile
 | ||
| 		DEFW 0x0000,0x0050,0x001C,0x00E4,0x00,0x0000,TPageUpMs,ScrollLeft
 | ||
| 		DEFW 0x0230,0x0280,0x001C,0x00E4,0x00,0x0000,TPageDwnMs,ScrollRght
 | ||
| 		DEFW 0x0000,0x0050,0x00F2,0x0100,0x01,0x0000,About,0x0000
 | ||
| 		DEFW 0x0050,0x00A0,0x00F2,0x0100,0x01,0x0000,ChASCIImode,0x0000
 | ||
| 		DEFW 0x00A0,0x00F0,0x00F2,0x0100,0x01,0x0000,ChViewer,0x0000
 | ||
| 		DEFW 0x0190,0x01E0,0x00F2,0x0100,0x01,0x0000,ChCodePage,0x0000
 | ||
| 		DEFW 0x01E0,0x0230,0x00F2,0x0100,0x01,0x0000,FVPrintFile,0x0000
 | ||
| 		DEFW 0x0230,0x0280,0x00F2,0x0100,0x21,0x0000,ViewerExit,0x0000
 | ||
| 		DEFW 0x8000
 | ||
| 
 | ||
| HEXtab:		DEFW 0x0050,0x0230,0x001C,0x007F,0x00,0x0000,HLineUpMs,HBegFile
 | ||
| 		DEFW 0x0050,0x0230,0x0080,0x00E4,0x00,0x0000,HLineDwnMs,HEndFile
 | ||
| 		DEFW 0x0000,0x0050,0x001C,0x00E4,0x00,0x0000,HPageUpMs,0x0000
 | ||
| 		DEFW 0x0230,0x0280,0x001C,0x00E4,0x00,0x0000,HPageDwnMs,0x0000
 | ||
| 		DEFW 0x0000,0x0050,0x00F2,0x0100,0x01,0x0000,About,0x0000
 | ||
| 		DEFW 0x00A0,0x00F0,0x00F2,0x0100,0x01,0x0000,ChViewer,0x0000
 | ||
| 		DEFW 0x00F0,0x0140,0x00F2,0x0100,0x01,0x0000,HGoTo,0x0000
 | ||
| 		DEFW 0x01E0,0x0230,0x00F2,0x0100,0x01,0x0000,FVPrintFile,0x0000
 | ||
| 		DEFW 0x0230,0x0280,0x00F2,0x0100,0x21,0x0000,ViewerExit,0x0000
 | ||
| 		DEFW 0x8000
 | ||
| 
 | ||
| FVAboutTab:	DEFW 0x011C,0x0164,0x008A,0x0098,0x21,0x0000,AboutExt,0x0000
 | ||
| 		DEFW 0x0000,0x00A0,0x0000,0x0100,0x20,0x0000,AboutExt,0x0000
 | ||
| 		DEFW 0x01E0,0x0280,0x0000,0x0100,0x20,0x0000,AboutExt,0x0000
 | ||
| 		DEFW 0x0000,0x0280,0x0000,0x0048,0x20,0x0000,AboutExt,0x0000
 | ||
| 		DEFW 0x0000,0x0280,0x009D,0x0100,0x20,0x0000,AboutExt,0x0000
 | ||
| 		DEFW 0x8000
 | ||
| ;[]==========================================================[]
 | 
