📄 prn_edit.asm
字号:
; 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 + -