335 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			335 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | ||
| ; LAST UPDATE: 24.03.2025 savelij
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| FVPrintFile
 | ||
| 	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,PrintTab
 | ||
| 		CALL	JUMPS.TestCoords
 | ||
| 		LD	IX,ProcessPrn
 | ||
| 		LD	HL,(FileLenght)
 | ||
| 		LD	DE,(FileLenght+2)
 | ||
| 		LD	A,L
 | ||
| 		LD	L,H
 | ||
| 		LD	H,E
 | ||
| 		LD	E,D
 | ||
| 		OR	A
 | ||
| 		JR	Z,.InitPrn
 | ||
| 		INC	HL
 | ||
| 		LD	A,H
 | ||
| 		OR	L
 | ||
| 		JR	NZ,.InitPrn
 | ||
| 		INC	E
 | ||
| .InitPrn	LD	(IX+PROC.MAXL1),L
 | ||
| 		LD	(IX+PROC.MAXH1),H
 | ||
| 		LD	(IX+PROC.MAXL2),E
 | ||
| 		LD	(IX+PROC.MAXH2),0x00
 | ||
| 		CALL	JUMPS.InitProcess
 | ||
| 		LD	A,(ViewMode)
 | ||
| 		OR	A
 | ||
| 		JP	NZ,PrintHEX
 | ||
| PrintASCII	LD	HL,0x0000
 | ||
| 		LD	(TempShift),HL
 | ||
| 		LD	(TempShift+2),HL
 | ||
| 		LD	HL,(FileLenght)
 | ||
| 		LD	BC,(FileLenght+2)
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 		CALL	InitFPages
 | ||
| PrnASCII	CALL	TestFPages
 | ||
| 		LD	A,(DE)
 | ||
| 		INC	DE
 | ||
| 		CALL	FVPrintCHAR
 | ||
| 		JR	C,PrnASCIIext
 | ||
| 		CALL	FVNxtPrnProc
 | ||
| 		LD	A,H
 | ||
| 		OR	L
 | ||
| 		JR	NZ,.L1
 | ||
| 		DEC	BC
 | ||
| .L1		DEC	HL
 | ||
| 		LD	A,H
 | ||
| 		OR	L
 | ||
| 		OR	B
 | ||
| 		OR	C
 | ||
| 		JR	NZ,PrnASCII
 | ||
| 		CALL EndJob
 | ||
| 		jr c,PrnASCIIext
 | ||
| 		LD	DE,0x0000
 | ||
| 		CALL	FVNxtPrnProc
 | ||
| 		HALT 
 | ||
| 		HALT 
 | ||
| PrnASCIIext	POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 	WINDOWCLOSE
 | ||
| 		RET 
 | ||
| 
 | ||
| PrintHEX	LD	HL,0x0000
 | ||
| 		LD	(TempShift),HL
 | ||
| 		LD	(TempShift+2),HL
 | ||
| 		LD	HL,LineBuffer
 | ||
| 		LD	BC,0x5020
 | ||
| .L1		LD	(HL),C
 | ||
| 		INC	L
 | ||
| 		DJNZ	.L1
 | ||
| PrintHEXlp	CALL	PrnHEXline
 | ||
| 		JR	C,PrintHEXext
 | ||
| 		LD	HL,(TempShift)
 | ||
| 		LD	DE,0x0010	;€¤à¥á ¤ ¬¯ +16
 | ||
| 		ADD	HL,DE
 | ||
| 		LD	(TempShift),HL
 | ||
| 		LD	HL,(TempShift+2)
 | ||
| 		LD	E,D
 | ||
| 		ADC	HL,DE
 | ||
| 		LD	(TempShift+2),HL
 | ||
| 		JR	PrintHEXlp
 | ||
| 
 | ||
| PrintHEXext	CALL EndJob
 | ||
| 		OR	A
 | ||
| 		JR	NZ,PrnHEXe
 | ||
| 		LD	DE,0x0000
 | ||
| 		CALL	FVNxtPrnProc
 | ||
| 		HALT 
 | ||
| 		HALT 
 | ||
| PrnHEXe
 | ||
| 	WINDOWCLOSE
 | ||
| 		RET 
 | ||
| 
 | ||
| PrnHEXline	LD	IXL,0x00
 | ||
| 		LD	HL,(FileLenght)
 | ||
| 		LD	BC,(TempShift)
 | ||
| 		OR	A
 | ||
| 		SBC	HL,BC
 | ||
| 		EX	DE,HL
 | ||
| 		LD	HL,(FileLenght+2)
 | ||
| 		LD	BC,(TempShift+2)
 | ||
| 		SBC	HL,BC
 | ||
| 		LD	A,0x00
 | ||
| 		RET	C
 | ||
| 		LD	B,0x10
 | ||
| 		JR	NZ,PrnHLn
 | ||
| 		LD	A,D
 | ||
| 		OR	A
 | ||
| 		JR	NZ,PrnHLn
 | ||
| 		OR	E
 | ||
| 		LD	A,0x00
 | ||
| 		SCF 
 | ||
| 		RET	Z
 | ||
| 		LD	A,E
 | ||
| 		CP	B
 | ||
| 		JR	NC,PrnHLn
 | ||
| 		LD	B,E
 | ||
| PrnHLn
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 		CALL	InitFPages
 | ||
| 		LD	HL,LineBuffer+1	;¡ãä¥à áâப¨
 | ||
| 		EXX 
 | ||
| 		LD	HL,LineBuffer+0x3F ;¬¥áâ® ¤«ï ASCII ª®¤®¢
 | ||
| 		EXX 
 | ||
| 		LD	A,(TempShift+3)	;Š« ¤¥¬	ᬥ饨¥
 | ||
| 		CALL	PutHexNumb	;®â  ç «  ä ¨« 
 | ||
| 		LD	A,(TempShift+2)
 | ||
| 		CALL	PutHexNumb
 | ||
| 		LD	A,(TempShift+1)
 | ||
| 		CALL	PutHexNumb
 | ||
| 		LD	A,(TempShift)
 | ||
| 		CALL	PutHexNumb
 | ||
| 		LD	(HL),":"
 | ||
| 		INC	L
 | ||
| 		INC	L
 | ||
| PrnHLoop	CALL	TestFPages
 | ||
| 		LD	A,(DE)
 | ||
| 		INC	DE
 | ||
| 		PUSH	AF
 | ||
| 		CALL	PutHexNumb
 | ||
| 		POP	AF
 | ||
| 		INC	L
 | ||
| 		EXX 
 | ||
| 		CP	0x20
 | ||
| 		JR	NC,.L1
 | ||
| 		LD	A,"."
 | ||
| .L1		LD	(HL),A
 | ||
| 		INC	L
 | ||
| 		EXX 
 | ||
| 		INC	IXL
 | ||
| 		LD	A,IXL
 | ||
| 		CP	0x04
 | ||
| 		JR	Z,.PrHNx1
 | ||
| 		CP	0x08
 | ||
| 		JR	Z,.PrHNx1
 | ||
| 		CP	0x0C
 | ||
| 		JR	NZ,.L2
 | ||
| .PrHNx1		INC	L
 | ||
| .L2		DJNZ	PrnHLoop
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		LD	A,0x10
 | ||
| 		SUB	IXL
 | ||
| 		JR	Z,.FillP2
 | ||
| 		LD	B,A
 | ||
| 		LD	C,0x20
 | ||
| .FillP1		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 ¯à®¡¥« 
 | ||
| 		CP	0x04
 | ||
| 		JR	Z,.FlPNx1
 | ||
| 		CP	0x08
 | ||
| 		JR	Z,.FlPNx1
 | ||
| 		CP	0x0C
 | ||
| 		JR	NZ,.L3
 | ||
| .FlPNx1		INC	L
 | ||
| .L3		DJNZ	.FillP1
 | ||
| .FillP2		LD	HL,LineBuffer
 | ||
| 		LD	B,0x50
 | ||
| PrnHEX		LD	A,(HL)
 | ||
| 		INC	HL
 | ||
| 		CALL	FVPrintCHAR
 | ||
| 		LD	A,0x01
 | ||
| 		RET	C
 | ||
| 		DJNZ	PrnHEX
 | ||
| 		LD	A,0x0D
 | ||
| 		CALL	FVPrintCHAR
 | ||
| 		RET	C
 | ||
| 		LD	A,0x0A
 | ||
| 		CALL	FVPrintCHAR
 | ||
| 		RET 
 | ||
| 
 | ||
| FVPrintCHAR	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,PrintTab
 | ||
| 		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,FVPrnCHAR
 | ||
| 		CP	0x1B
 | ||
| 		SCF 
 | ||
| 		RET	Z
 | ||
| 		RES	5,A
 | ||
| 		CP	"S"
 | ||
| 		JR	NZ,FVPrnCHAR
 | ||
| FVStopPrint	SCF 
 | ||
| 		RET 
 | ||
| 
 | ||
| FVPrnCHAR	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	FVPrintCHAR
 | ||
| 
 | ||
| PrintTab	DEFW 0x011C,0x0164,0x0080,0x008E,0x01,0x0000,FVStopPrint,0x0000
 | ||
| 		DEFW 0x8000
 | ||
| 
 | ||
| FVNxtPrnProc	LD	A,E
 | ||
| 		OR	A
 | ||
| 		RET	NZ
 | ||
| 		PUSH	HL
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	BC
 | ||
| 		EXX 
 | ||
| 		PUSH	DE
 | ||
| 		LD	IX,ProcessPrn
 | ||
| 		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,.NxtProc
 | ||
| 		LD	L,(IX+PROC.CURL2)
 | ||
| 		LD	H,(IX+PROC.CURH2)
 | ||
| 		INC	HL
 | ||
| 		LD	(IX+PROC.CURL2),L
 | ||
| 		LD	(IX+PROC.CURH2),H
 | ||
| .NxtProc	CALL	JUMPS.PrnProcess
 | ||
| 		POP	DE
 | ||
| 		EXX 
 | ||
| 		POP	BC
 | ||
| 		POP	DE
 | ||
| 		POP	HL
 | ||
| 		RET 
 | ||
| 
 | ||
| EndJob:		PUSH 	AF
 | ||
| 		PUSH	HL
 | ||
| 		PUSH	BC
 | ||
| 		EXX 
 | ||
| 		PUSH	DE
 | ||
| 		ld a,0x0C
 | ||
| 		CALL	FVPrintCHAR
 | ||
| 		jr c,.print_cancel
 | ||
| 		ld a,0x1B
 | ||
| 		CALL	FVPrintCHAR
 | ||
| 		jr c,.print_cancel
 | ||
| 		ld a,0x40
 | ||
| 		CALL	FVPrintCHAR
 | ||
| 		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			
 | ||
| 
 | ||
| ProcessPrn	DEFW	0x00BA
 | ||
| 		DEFW	0x0071
 | ||
| 		DEFW	0x010C
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFW	0x0000
 | ||
| 		DEFB	0x4F
 |