 f428f0b18b
			
		
	
	
		f428f0b18b
		
	
	
	
	
		
			
			- устранено перепутанные кнопки для нажатий мышью для F7 и F9. FileViewer.flx 1.06 - добавлено переключение кодировки в режиме HEX просмотра. FlexNavigaror 1.16.01 - исправлен вылет при создании нового файла по Shift+F4 или просмотр с вводом имени по Shift+F3, плагин был не загружен.
		
			
				
	
	
		
			341 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			341 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | ||
| ; LAST UPDATE: 26.07.2025 savelij
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| FEPrintFile	CALL	FEResCursor
 | ||
| 	MAKEWINDOW WINSUBOBJ.STORE
 | ||
| 	W_MAIN 168,96,304,50
 | ||
| 	W_FILL 4,2,296,10,COLORI.BLACK
 | ||
| 	W_TEXT 132,3,COLORI.WHITE,"Print file"
 | ||
| 	W_BORDER 16,16,272,12
 | ||
| 	W_FILL 18,17,268,10,COLORI.WHITE
 | ||
| 	W_BUTTON 116,32,72,14
 | ||
| 	W_TEXT 140,35,COLORP.HIGHGRAY,"Stop"
 | ||
| 	W_END
 | ||
| 		LD	IX,FEPrintTab
 | ||
| 		CALL	JUMPS.TestCoords
 | ||
| 		LD	IX,FEProcessPrn
 | ||
| 		LD	HL,(FEFileLenght)
 | ||
| 		LD	A,L
 | ||
| 		LD	L,H
 | ||
| 		LD	H,0x00
 | ||
| 		OR	A
 | ||
| 		JR	Z,.InitPrn
 | ||
| 		INC	HL
 | ||
| .InitPrn	LD	(IX+PROC.MAX_PAGES),L
 | ||
| 		LD	(IX+PROC.MAX_PAGES + 1),H
 | ||
| 		LD	(IX+PROC.MAX_PAGES + 2),0x00
 | ||
| 		LD	(IX+PROC.MAX_PAGES + 3),0x00
 | ||
| 		CALL	JUMPS.InitProcess
 | ||
| 		LD	A,(EditMode)
 | ||
| 		OR	A
 | ||
| 		JP	NZ,FEPrintHEX
 | ||
| FEPrintASCII	LD	HL,0x0000
 | ||
| 		LD	(FETempShift),HL
 | ||
| 		LD	HL,(FEFileLenght)
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 		LD	DE,(FETempShift)
 | ||
| 		LD	A,D		;‚뤥«ï¥¬ ®¬¥à	áâà ¨æë
 | ||
| 		AND	0xC0
 | ||
| 		RLCA 
 | ||
| 		RLCA 
 | ||
| 		EXX 
 | ||
| 		LD	E,A		;DE - €¤à¥á áâà ¨æë ¢ ᯨ᪥
 | ||
| 		LD	D,HIGH (PagesList)
 | ||
| 		LD	A,(DE)		;’¥ª.áâà ¨æ 
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EXX 
 | ||
| 		RES	7,D		;‚ª«.á 0x4000
 | ||
| 		SET	6,D
 | ||
| FEPrnASCII	BIT	7,D
 | ||
| 		JR	Z,PrnASC
 | ||
| 		RES	7,D
 | ||
| 		SET	6,D
 | ||
| 		EXX 
 | ||
| 		INC	E		;DE - €¤à¥á áâà ¨æë ¢ ᯨ᪥
 | ||
| 		LD	A,(DE)		;’¥ª.áâà ¨æ 
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EXX 
 | ||
| PrnASC		LD	A,(DE)
 | ||
| 		INC	DE
 | ||
| 		CALL	FEPrintCHAR
 | ||
| 		JR	C,FEPrnASCIIext
 | ||
| 		CALL	FENxtPrnProc
 | ||
| 		DEC	HL
 | ||
| 		LD	A,H
 | ||
| 		OR	L
 | ||
| 		JR	NZ,FEPrnASCII
 | ||
| 		CALL FEEndJob
 | ||
| 		jr c,FEPrnASCIIext
 | ||
| 		LD	DE,0x0000
 | ||
| 		CALL	FENxtPrnProc
 | ||
| 		HALT 
 | ||
| 		HALT 
 | ||
| FEPrnASCIIext	POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 	WINDOWCLOSE
 | ||
| 		RET 
 | ||
| 
 | ||
| FEPrintHEX	LD	HL,0x0000
 | ||
| 		LD	(FETempShift),HL
 | ||
| 		LD	HL,LineBuffer
 | ||
| 		LD	BC,0x4E20
 | ||
| .L1		LD	(HL),C
 | ||
| 		INC	L
 | ||
| 		DJNZ	.L1
 | ||
| FEPrintHEXlp	CALL	FEPrnHEXline
 | ||
| 		JR	C,FEPrintHEXext
 | ||
| 		LD	HL,(FETempShift)
 | ||
| 		LD	DE,0x0010	;€¤à¥á ¤ ¬¯ +16
 | ||
| 		ADD	HL,DE
 | ||
| 		LD	(FETempShift),HL
 | ||
| 		JR	FEPrintHEXlp
 | ||
| 
 | ||
| FEPrintHEXext	CALL FEEndJob
 | ||
| 		OR	A
 | ||
| 		JR	NZ,.PrnHEXe
 | ||
| 		LD	DE,0x0000
 | ||
| 		CALL	FENxtPrnProc
 | ||
| 		HALT 
 | ||
| 		HALT 
 | ||
| .PrnHEXe
 | ||
| 	WINDOWCLOSE
 | ||
| 		RET 
 | ||
| 
 | ||
| FEPrnHEXline	LD	IXL,0x00
 | ||
| 		LD	IXH,B
 | ||
| 		LD	HL,(FEFileLenght)
 | ||
| 		LD	BC,(FETempShift)
 | ||
| 		OR	A
 | ||
| 		SBC	HL,BC
 | ||
| 		LD	A,0x00
 | ||
| 		RET	C
 | ||
| 		LD	B,0x10
 | ||
| 		LD	A,H
 | ||
| 		OR	A
 | ||
| 		JR	NZ,.PrnHLn
 | ||
| 		LD	A,L
 | ||
| 		CP	B
 | ||
| 		JR	NC,.PrnHLn
 | ||
| 		LD	B,L
 | ||
| .PrnHLn
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 		LD	DE,(FETempShift)
 | ||
| 		LD	A,D		;‚뤥«ï¥¬ ®¬¥à	áâà ¨æë
 | ||
| 		AND	0xC0
 | ||
| 		RLCA 
 | ||
| 		RLCA 
 | ||
| 		EXX 
 | ||
| 		LD	E,A		;DE - €¤à¥á áâà ¨æë ¢ ᯨ᪥
 | ||
| 		LD	D,HIGH (PagesList)
 | ||
| 		LD	A,(DE)		;’¥ª.áâà ¨æ 
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EXX 
 | ||
| 		RES	7,D		;‚ª«.á 0x4000
 | ||
| 		SET	6,D
 | ||
| 		LD	HL,LineBuffer+1	;¡ãä¥à áâப¨
 | ||
| 		EXX 
 | ||
| 		LD	HL,LineBuffer+0x3D ;¬¥áâ® ¤«ï ASCII ª®¤®¢
 | ||
| 		EXX 
 | ||
| 		LD	(HL),'0'
 | ||
| 		INC	L
 | ||
| 		LD	A,(FETempShift+1)
 | ||
| 		CALL	FEPutHexNumb
 | ||
| 		LD	A,(FETempShift)
 | ||
| 		CALL	FEPutHexNumb
 | ||
| 		LD	(HL),':'
 | ||
| 		INC	L
 | ||
| 		INC	L
 | ||
| 		INC	L
 | ||
| 		LD	A,B
 | ||
| 		OR	A
 | ||
| 		JR	Z,PrnHLp2
 | ||
| FEPrnHLoop	BIT	7,D
 | ||
| 		JR	Z,PrnHLp1
 | ||
| 		RES	7,D
 | ||
| 		SET	6,D
 | ||
| 		EXX 
 | ||
| 		INC	E		;DE - €¤à¥á áâà ¨æë ¢ ᯨ᪥
 | ||
| 		LD	A,(DE)		;’¥ª.áâà ¨æ 
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EXX 
 | ||
| PrnHLp1		LD	A,(DE)
 | ||
| 		INC	DE
 | ||
| 		EXX 
 | ||
| 		CP	0x20
 | ||
| 		JR	NC,.L1
 | ||
| 		LD	A,'.'
 | ||
| .L1		LD	(HL),A
 | ||
| 		INC	L
 | ||
| 		EXX 
 | ||
| 		CALL	FEPutHexNumb	;<3B>à®æ¥¤ãà  ª®¢¥àâ 
 | ||
| 		INC	L
 | ||
| 		INC	IXL		;“¢¥«¨ç.ª®«-¢® ¢¢¥¤¥ëå ¡ ©â®¢
 | ||
| 		LD	A,IXL
 | ||
| 		AND	0x03
 | ||
| 		JR	NZ,.L2
 | ||
| 		INC	L
 | ||
| .L2		DJNZ	FEPrnHLoop
 | ||
| PrnHLp2		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| ;<3B>à®æ¥¤ãà  ®âç¨á⪨ § ª®ç¨¢è¨åáï ¡ ©â®¢
 | ||
| FillHeP		LD	A,0x10		;Œ ªá.¡ ©â®¢
 | ||
| 		SUB	IXL		;’¥ª.ª®«-¢® ¡ ©â®¢
 | ||
| 		JR	Z,FEFillP2
 | ||
| 		LD	B,A
 | ||
| 		LD	C,0x20
 | ||
| FEFillP1	LD	(HL),C
 | ||
| 		INC	L
 | ||
| 		LD	(HL),C
 | ||
| 		INC	L
 | ||
| 		INC	L
 | ||
| 		EXX 
 | ||
| 		LD	(HL),0x20
 | ||
| 		INC	L
 | ||
| 		EXX 
 | ||
| 		INC	IXL
 | ||
| 		LD	A,IXL		;‚ æ¥âॠ2 ¯à®¡¥« 
 | ||
| 		AND	0x03
 | ||
| 		JR	NZ,.L1
 | ||
| 		INC	L
 | ||
| .L1		DJNZ	FEFillP1
 | ||
| FEFillP2	LD	HL,LineBuffer
 | ||
| 		LD	B,0x4E
 | ||
| FEPrnHEX	LD	A,(HL)
 | ||
| 		INC	HL
 | ||
| 		CALL	FEPrintCHAR
 | ||
| 		LD	A,0x01
 | ||
| 		RET	C
 | ||
| 		DJNZ	FEPrnHEX
 | ||
| 		LD	A,0x0D
 | ||
| 		CALL	FEPrintCHAR
 | ||
| 		RET	C
 | ||
| 		LD	A,0x0A
 | ||
| 		CALL	FEPrintCHAR
 | ||
| 		RET 
 | ||
| 
 | ||
| FEPrintCHAR	LD	IXL,A
 | ||
| 		PUSH	IX
 | ||
| 		PUSH	HL
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	BC
 | ||
| 		EXX 
 | ||
| 		PUSH	DE
 | ||
| 	SPMOUSE MOUSEF.READ_STATE
 | ||
| 		BIT	0,A
 | ||
| 		JR	Z,.PrnCH1
 | ||
| 		LD	IX,FEPrintTab
 | ||
| 		CALL	JUMPS.TestCoords
 | ||
| 		JR	C,.PrnCH2
 | ||
| .PrnCH1
 | ||
| 	SPDSS DSSF.SCANKEY
 | ||
| 		LD	A,E
 | ||
| .PrnCH2		POP	DE
 | ||
| 		EXX 
 | ||
| 		POP	BC
 | ||
| 		POP	DE
 | ||
| 		POP	HL
 | ||
| 		POP	IX
 | ||
| 		RET	C
 | ||
| 		JR	Z,FEPrnCHAR
 | ||
| 		CP	0x1B
 | ||
| 		SCF 
 | ||
| 		RET	Z
 | ||
| 		RES	5,A
 | ||
| 		CP	'S'
 | ||
| 		JR	NZ,FEPrnCHAR
 | ||
| FEStopPrint	SCF 
 | ||
| 		RET 
 | ||
| 
 | ||
| FEPrnCHAR	PUSH	HL
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	BC
 | ||
| 		EXX 
 | ||
| 		PUSH	DE
 | ||
| 		LD	A,IXL
 | ||
| 	SPDSS DSSF.PRINT
 | ||
| 		POP	DE
 | ||
| 		LD	A,B
 | ||
| 		EXX 
 | ||
| 		POP	BC
 | ||
| 		POP	DE
 | ||
| 		POP	HL
 | ||
| 		RET	NC
 | ||
| 		HALT 
 | ||
| 		JR	FEPrintCHAR
 | ||
| 
 | ||
| FEPrintTab	DEFW 0x011C,0x0164,0x0080,0x008E,0x01,0x0000,FEStopPrint,0x0000
 | ||
| 		DEFW 0x8000
 | ||
| 
 | ||
| FENxtPrnProc	LD	A,E
 | ||
| 		OR	A
 | ||
| 		RET	NZ
 | ||
| 		PUSH	HL
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	BC
 | ||
| 		EXX 
 | ||
| 		PUSH	DE
 | ||
| 		LD	IX,FEProcessPrn
 | ||
| 		LD	L,(IX+PROC.CURR_PAGE)
 | ||
| 		LD	H,(IX+PROC.CURR_PAGE + 1)
 | ||
| 		INC	HL
 | ||
| 		LD	(IX+PROC.CURR_PAGE),L
 | ||
| 		LD	(IX+PROC.CURR_PAGE + 1),H
 | ||
| 		LD	A,H
 | ||
| 		OR	L
 | ||
| 		JR	NZ,.NxtProc
 | ||
| 		LD	L,(IX+PROC.CURR_PAGE + 2)
 | ||
| 		LD	H,(IX+PROC.CURR_PAGE + 3)
 | ||
| 		INC	HL
 | ||
| 		LD	(IX+PROC.CURR_PAGE + 2),L
 | ||
| 		LD	(IX+PROC.CURR_PAGE + 3),H
 | ||
| .NxtProc	CALL	JUMPS.PrnProcess
 | ||
| 		POP	DE
 | ||
| 		EXX 
 | ||
| 		POP	BC
 | ||
| 		POP	DE
 | ||
| 		POP	HL
 | ||
| 		RET 
 | ||
| 
 | ||
| FEEndJob:	PUSH 	AF
 | ||
| 		PUSH	HL
 | ||
| 		PUSH	BC
 | ||
| 		EXX 
 | ||
| 		PUSH	DE
 | ||
| 		ld a,0x0C
 | ||
| 		CALL	FEPrintCHAR
 | ||
| 		jr c,.print_cancel
 | ||
| 		ld a,0x1B
 | ||
| 		CALL	FEPrintCHAR
 | ||
| 		jr c,.print_cancel
 | ||
| 		ld a,0x40
 | ||
| 		CALL	FEPrintCHAR
 | ||
| 		jr c,.print_cancel
 | ||
| 		POP	DE
 | ||
| 		EXX 
 | ||
| 		POP	BC
 | ||
| 		POP	HL
 | ||
| 		POP	AF
 | ||
| 		ret
 | ||
| 
 | ||
| .print_cancel:	POP	DE
 | ||
| 		EXX
 | ||
| 		POP	BC
 | ||
| 		POP	HL
 | ||
| 		POP	AF			
 | ||
| 		SCF
 | ||
| 		RET			
 | ||
| 
 | ||
| FEProcessPrn	DEFW	0x00BA
 | ||
| 		DEFW	0x0071
 | ||
| 		DEFW	0x010C
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFB	0x4F
 |