⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prn_edit.asm

📁 calculator code ,use toshibaor nec LSI
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;		wakeup print 
;==============================================================================
wkup_print:
		call	spc_prnbuf
		ld	c,3
		ld	hl,mes_wkup
		ld	iy,PRN_BUF_SYM_LTP+2	;V4.04
	test	(FLG_MODE).0
	j	f,wkup_print_1
		ld	iy,PRN_BUF_SYM+1
;V4.04		ld	(PRN_BUF_LSD-1),ps_0
;V4.04		ld	(PRN_BUF_LSD),ps_dot
;V4.04		ld	(PRN_BUF_SYM),ps_c
;V4.04		ld	(PRN_BUF_SYM+1),ps_str
;V4.04		j	print_bk		;print with black color
wkup_print_1:						;V4.03
;V4.04		ld	(PRN_BUF_LSD_LTP-1),ps_0	;V4.03
;V4.04		ld	(PRN_BUF_LSD_LTP),ps_dot	;V4.03
;V4.04		ld	(PRN_BUF_SYM_LTP),ps_c		;V4.03
;V4.04		ld	(PRN_BUF_SYM_LTP+1),ps_str	;V4.03
		call	message_p0			;V4.04
		j	print_bk			;V4.03 print with black color
mes_wkup:
	db	ps_0,ps_dot,ps_c,ps_str
;==============================================================================
;		only symbol print
;==============================================================================
;symbol print with black/red print.....
;sym_print_br:
;		ld	ix,hl			;work reg. pointer save
;		call	spc_prnbuf
;		call	store_zs8		;set P_RED flag by refer (ix) contents 
;		call	set_symbol
;		j	wk_print9		;print with check P_NP flag

;symbol print always black.....
sym_print_br:
		call	spc_prnbuf
		call	set_symbol
		j	wk_print9		;print with check P_NP flag

;==============================================================================
;		feed 1 line 
;==============================================================================
feed_1:
	ld	wa,P_NP
	test	(P_NP>>4).a		;bit -reverse-> jump status
	j	t,feed_1_start		;if jump status is 1 -> branch
		ret
feed_1_start:
		call	spc_prnbuf
	ld	wa,P_RED
	clr	(P_RED>>4).a
;V3.08		jp	key_feed
		j	print		;V3.08
print_bk:
	ld	wa,P_RED
	clr	(P_RED>>4).a
		j	wk_print9		;print with check P_NP flag
;==============================================================================
;		feed 1 line(igonore P_NP...for manual key feed) 
;==============================================================================
kfeed_1:
		call	spc_prnbuf
	ld	wa,P_RED
	clr	(P_RED>>4).a
		jp	key_feed	;V3.08 V3.09
;V3.09		jp	print		;V3.08
;==============================================================================
;		print work register 
;==============================================================================
;always print......(for CE/C key of logos694T)
wk_print_alws:
		call	edit_prn
;V3.00		call	cap_to_prn		;add caption to PRN_BUF with 2line print control
		j	print			;

;edit and print....
wk_print:
		call	edit_prn
;V3.00		call	cap_to_prn		;add caption to PRN_BUF with 2line print control
wk_print9:
;V3.00		@BBS	(RP_PRINT,wk_print91)	;auto replay printing?  yes->print
	ld	wa,P_NP
	test	(P_NP>>4).a		;bit -reverse-> jump status
	j	f,wk_print99		;if jump status is 0 -> branch
wk_print91:
		call	print
wk_print99:
		ret

;==============================================================================
;		Caption set to PRN_BUF (if overflow, print 2line)
;==============================================================================
;V3.00;input: (CAP) <-caption code(00 to 0b)
;V3.00;       (LANG) <-lunguage code(0 to 4)
;V3.00CAP_L_C		equ	10		;caption length
;V3.00MAX_LANG	equ	5		;muximum language
;V3.00cap_to_prn:
;V3.00		@BBC	(SW_CAP,cap_tpr_9)		
;check effective length of caption...
;V3.00		ld	a,(CAP)			;caption code
;V3.00		j	z,cap_tpr_9		;code=0 -> igonore
;V3.00		cmp	a,CAP_BOT
;V3.00		j	gt,cap_tpr_9		;code is over -> igonore
;V3.00		call	cap_addr		;hl <- caption top address
;V3.00		ld	c,CAP_L_C-1		;
;V3.00cap_tpr_1:		
;V3.00		cmp	(hl+c),' '		;
;V3.00		j	ne,cap_tpr_19
;V3.00		dec	c			;
;V3.00		j	f,cap_tpr_1		;c=ff? no->
;V3.00cap_tpr_19:
;V3.00		inc	c			;c <- effective length of caption
;V3.00		cmp	(CAP),CAP_FCR		;FC rate caption?  no->
;V3.00		j	ne,cap_tpr_190
;V3.00		inc	c			;length+2 for RATEnn (2digits number+1space)
;V3.00		inc	c
;V3.00		inc	c
;V3.00cap_tpr_190:		
;V3.00;check effective space length of PRN_BUF...
;V3.00		ld	hl,PRN_BUF_MSD
;V3.00cap_tpr_1x:
;V3.00		ld	b,0
;V3.00cap_tpr_2:		
;V3.00		cmp	(hl),' '
;V3.00		j	ne,cap_tpr_29
;V3.00		inc	hl
;V3.00		inc	b			;reg.b <-effective space length of PRN_BUF
;V3.00		cmp	b,D_PRN_MAX
;V3.00		j	lt,cap_tpr_2
;V3.00cap_tpr_29:
;V3.00		inc	c			;need extra one more space for sepalator
;V3.00		cmp	c,b
;V3.00		j	le,cap_tpr_5		;caption length is smaller than PRN_BUF space  -> set caption
;V3.00;not enough space in PRN_BUF -> 2line print
;V3.00		call	prn_buff_save
;V3.00		ld	b,0			;reg.b ... back up for black/red
;V3.00		@BBC	(P_RED,cap_tpr_30)	;save red print flag
;V3.00		ld	b,1
;V3.00cap_tpr_30:
;V3.00		push	b
;V3.00		call	spc_prnbuf		;PRN_BUF space clear
;V3.00		call	cap_set			;caption set to PRN_BUF
;V3.00		call	wk_print9		;print caption only
;V3.00		call	prn_buff_load
;V3.00		pop	b
;V3.00		cmp	b,0
;V3.00		j	eq,cap_tpr_9		;black print?  yes->
;V3.00		@SEB	(P_RED)
;V3.00		j	cap_tpr_9
;V3.00cap_tpr_5:
;V3.00		call	cap_set
;V3.00cap_tpr_9:
;V3.00		ld	(CAP),CAP_SPC		;clear caption code
;V3.00		ret

;V3.00;move caption table to PRN_BUF.....
;V3.00cap_set:
;V3.00		call	cap_addr		;hl <- caption top address
;V3.00		ld	iy,PRN_BUF_MSD
;V3.00cap_setx:
;V3.00		ld	c,0
;V3.00cap_set0:
;V3.00		ld	a,(hl+c)
;V3.00		cmp	a,' '
;V3.00		j	eq,cap_set2
;V3.00		ld	(iy),a
;V3.00cap_set2:
;V3.00		inc	iy
;V3.00		inc	c
;V3.00		cmp	c,CAP_L_C
;V3.00		j	lt,cap_set0

;V3.00		cmp	(CAP),CAP_FCR		;FC rate caption?  no->
;V3.00		j	ne,cap_set4
;V3.00;set 2digits FC rate number....
;V3.00		ld	c,CAP_L_C-1		;
;V3.00cap_set30:
;V3.00		cmp	(hl+c),' '
;V3.00		j	ne,cap_set36		;not blank?  yes-> set number
;V3.00		dec	c
;V3.00		j	f,cap_set30		;c=ff? no->
;V3.00cap_set36:
;V3.00		inc	c
;V3.00		ld	hl,PRN_BUF_MSD
;V3.00		ld	(hl+c),'-'		;insert "-"
;V3.00		inc	c
;V3.00		ld	a,(BEE_RNO)		;current rate number
;V3.00		inc	a
;V3.00		push	c
;V3.00		call	hex_to_dec
;V3.00		pop	c
;V3.00		push	a
;V3.00		swap	a
;V3.00		and	a,0x0f
;V3.00		or	a,0x60
;V3.00		ld	(hl+c),a
;V3.00		inc	c
;V3.00		pop	a
;V3.00		and	a,0x0f
;V3.00		or	a,0x60
;V3.00		ld	(hl+c),a
;V3.00cap_set4:
;V3.00		ret

;V3.00cap_addr:
;V3.00		ld	a,(CAP)			;caption code(0 to 0b)
;V3.00		dec	a
;V3.00		ld	w,MAX_LANG		;block size par each caption
;V3.00		mul	w,a
;V3.00		add	a,(LANG)
;V3.00		ld	w,CAP_L_C		;1 caption length
;V3.00		mul	w,a
;V3.00		ld	hl,tbl_cap_calc
;V3.00		add	hl,wa			;hl <- caption top address
;V3.00		ret


;V3.00tbl_cap_calc:					;*code 00 is no caption
;V3.00		db	"TAX%      "		;01 Eng Tax rate
;V3.00		db	"STEUER%   "		;01 Ger
;V3.00		db	"TAXE%     "		;01 Fre
;V3.00		db	"IMPUESTO% "		;01 Spa
;V3.00		db	"IMPOSTA%  "		;01 Ita
;V3.00
;V3.00		db	"TAX       "		;02 Eng Tax value
;V3.00		db	"STEUER    "		;02 Ger
;V3.00		db	"TAXE      "		;02 Fre
;V3.00		db	"IMPUESTO  "		;02 Spa
;V3.00		db	"IMPOSTA   "		;02 Ita
;V3.00
;V3.00		db	"TAX+      "		;03 Eng Tax+ value
;V3.00		db	"STEUER+   "		;03 Ger
;V3.00		db	"TAXE+     "		;03 Fre
;V3.00		db	"IMPUESTO+ "		;03 Spa
;V3.00		db	"IMPOSTA+  "		;03 Ita
;V3.00
;V3.00		db	"TAX-      "		;04 Eng Tax- value
;V3.00		db	"STEUER-   "		;04 Ger
;V3.00		db	"TAXE-     "		;04 Fre
;V3.00		db	"IMPUESTO- "		;04 Spa
;V3.00		db	"IMPOSTA-  "		;04 Ita

;V3.00		db	"COST      "		;05 Eng COST
;V3.00		db	"EK-PR.    "		;05 Ger
;V3.00		db	"COUT      "		;05 Fre
;V3.00		db	"COMPRA    "		;05 Spa
;V3.00		db	"COSTO     "		;05 Ita

;V3.00		db	"SELL      "		;06 Eng SELL
;V3.00		db	"VK-PR.    "		;06 Ger
;V3.00		db	"P VTE     "		;06 Fre
;V3.00		db	"VENTA     "		;06 Spa
;V3.00		db	"PREZZO    "		;06 Ita

;V3.00		db	"MARGIN    "		;07 Eng MARGIN
;V3.00		db	"MARGE     "		;07 Ger
;V3.00		db	"MARGE     "		;07 Fre
;V3.00		db	"MARGEN    "		;07 Spa
;V3.00		db	"MARGINE   "		;07 Ita

;V3.00		db	"PAID      "		;08 Eng CASH
;V3.00		db	"GEGEB.    "		;08 Ger
;V3.00		db	"PAYE      "		;08 Fre
;V3.00		db	"PAGADO    "		;08 Spa
;V3.00		db	"PAGAMENTO "		;08 Ita

;V3.00		db	"CHANGE    "		;09 Eng CHANGE
;V3.00		db	"R",CA_UDOT2,"CKG.    "	;09 Ger
;V3.00		db	"RENDU     "		;09 Fre
;V3.00		db	"CAMBIO    "		;09 Spa
;V3.00		db	"CAMBIO    "		;09 Ita
;V3.00
;V3.00		db	"LOCAL     "		;0a Eng LOCAL
;V3.00		db	"LOKAL     "		;0a Ger
;V3.00		db	"LOCAL     "		;0a Fre
;V3.00		db	"LOCAL     "		;0a Spa
;V3.00		db	"VAL.LOCAL "		;0a Ita

;V3.00		db	"FC        "		;0b Eng FC 
;V3.00		db	"FREMD     "		;0b Ger
;V3.00		db	"DEVISE    "		;0b Fre
;V3.00		db	"DIVISA    "		;0b Spa
;V3.00		db	"VAL.EST   "		;0b Ita
;V3.00
;V3.00		db	"RATE      "		;0c Eng FC RT
;V3.00		db	"KURS      "		;0c Ger
;V3.00		db	"CHANGE    "		;0c Fre
;V3.00		db	"CONVERS.  "		;0c Spa
;V3.00		db	"CAMBIO    "		;0c Ita
;V3.00
;V3.00		db	"SUBTTL    "		;0d Eng SUBTTL
;V3.00		db	"ZW-SUM    "		;0d Ger
;V3.00		db	"S-TOT     "		;0d Fre
;V3.00		db	"SUBTTL    "		;0d Spa
;V3.00		db	"SUBTTL    "		;0d Ita
 ;V3.00                              
;V3.00		db	"CASH      "		;0e Eng CASH
;V3.00		db	"CASH      "		;0e Ger
;V3.00		db	"CASH      "		;0e Fre
;V3.00		db	"CASH      "		;0e Spa
;V3.00		db	"CASH      "		;0e Ita
                               
;V3.00		db	"          "		;0f Eng
;V3.00		db	"          "		;0f Ger
;V3.00		db	"          "		;0f Fre
;V3.00		db	"          "		;0f Spa
;V3.00		db	"          "		;0f Ita
                               
;V3.00		db	"TAX",CA_1,"%     "	;10 Eng Tax1 rate
;V3.00		db	"STEUER",CA_1,"%  "	;10 Ger
;V3.00		db	"TAXE",CA_1,"%    "	;10 Fre
;V3.00		db	"IMPUESTO",CA_1,"%"	;10 Spa
;V3.00		db	"IMPOSTA",CA_1,"% "	;10 Ita

;V3.00		db	"TAX",CA_1,"      "	;11 Eng Tax1 value
;V3.00		db	"STEUER",CA_1,"   "	;11 Ger
;V3.00		db	"TAXE",CA_1,"     "	;11 Fre
;V3.00		db	"IMPUESTO",CA_1," "	;11 Spa
;V3.00		db	"IMPOSTA",CA_1,"  "	;11 Ita
;V3.00                        
;V3.00		db	"TAX",CA_1,"+     "	;12 Eng Tax1+ value
;V3.00		db	"STEUER",CA_1,"+  "	;12 Ger
;V3.00		db	"TAXE",CA_1,"+    "	;12 Fre
;V3.00		db	"IMPUESTO",CA_1,"+"	;12 Spa
;V3.00		db	"IMPOSTA",CA_1,"+ "	;12 Ita

;V3.00		db	"TAX",CA_1,"-     "	;13 Eng Tax1- value
;V3.00		db	"STEUER",CA_1,"-  "	;13 Ger
;V3.00		db	"TAXE",CA_1,"-    "	;13 Fre
;V3.00		db	"IMPUESTO",CA_1,"-"	;13 Spa
;V3.00		db	"IMPOSTA",CA_1,"- "	;13 Ita
                               
;V3.00		db	"TAX",CA_2,"%     "	;14 Eng Tax2 rate
;V3.00		db	"STEUER",CA_2,"%  "	;14 Ger
;V3.00		db	"TAXE",CA_2,"%    "	;14 Fre
;V3.00		db	"IMPUESTO",CA_2,"%"	;14 Spa
;V3.00		db	"IMPOSTA",CA_2,"% "	;14 Ita

;V3.00		db	"TAX",CA_2,"      "	;15 Eng Tax2 value
;V3.00		db	"STEUER",CA_2,"   "	;15 Ger
;V3.00		db	"TAXE",CA_2,"     "	;15 Fre
;V3.00		db	"IMPUESTO",CA_2," "	;15 Spa
;V3.00		db	"IMPOSTA",CA_2,"  "	;15 Ita

;V3.00		db	"TAX",CA_2,"+     "	;16 Eng Tax2+ value
;V3.00		db	"STEUER",CA_2,"+  "	;16 Ger
;V3.00		db	"TAXE",CA_2,"+    "	;16 Fre
;V3.00		db	"IMPUESTO",CA_2,"+"	;16 Spa
;V3.00		db	"IMPOSTA",CA_2,"+ "	;16 Ita

;V3.00		db	"TAX",CA_2,"-     "	;17 Eng Tax2- value
;V3.00		db	"STEUER",CA_2,"-  "	;17 Ger
;V3.00		db	"TAXE",CA_2,"-    "	;17 Fre
;V3.00		db	"IMPUESTO",CA_2,"-"	;17 Spa
;V3.00		db	"IMPOSTA",CA_2,"- "	;17 Ita

;V3.00		db	"AMOUNT    "		;18 Eng amount
;V3.00		db	"WERT      "		;18 Ger 
;V3.00		db	"VALEUR    "		;18 Fre 
;V3.00		db	"IMPORTE   "		;18 Spa 
;V3.00		db	"VALORE    "		;18 Ita 
	
;V3.00		db	"INTEREST  "		;19 Eng interest
;V3.00		db	"ZINSSATZ  "		;19 Ger 
;V3.00		db	"INTERET   "		;19 Fre 
;V3.00		db	"INTERES   "		;19 Spa 
;V3.00		db	"INTERESSE "		;19 Ita 
	
;V3.00		db	"MONTH     "		;1a Eng month
;V3.00		db	"MONATE    "		;1a Ger 
;V3.00		db	"MOIS      "		;1a Fre 
;V3.00		db	"MESES     "		;1a Spa 
;V3.00		db	"MESI      "		;1a Ita 
	
;V3.00		db	"PAYMENT   "		;1b Eng payment
;V3.00		db	"ZAHLUNG   "		;1b Ger 
;V3.00		db	"MENSUALITE"		;1b Fre 
;V3.00		db	"PAGO      "		;1b Spa 
;V3.00		db	"RATA      "		;1b Ita 

;V3.00		db	"EURO      "		;1b Eng EURO
;V3.00		db	"EURO      "		;1b Ger 
;V3.00		db	"EURO      "		;1b Fre 
;V3.00		db	"EURO      "		;1b Spa 
;V3.00		db	"EURO      "		;1b Ita 
	

;==============================================================================
;		print DT_BUF by #/D format
;==============================================================================
;
;input: C flag	CS=1: with tenkey entry(print DT_BUF)   CS=0: no tenkey entry(print current display value)
;
print_shpd:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -