📄 business_fn.mac
字号:
;V4.12a jp rate_key_end_99
;V4.17 jp rate_ten_key_01 ;V4.12a
j rate_ten_key_01x ;V4.17
;V4.12a jp no_operation
euro_rate_recall_0:
cmp (KEYIN),K_EURO
j eq,euro_rate_recall_country1
cmp (KEYIN),K_LOCAL
j eq,euro_rate_recall_country2
jp no_operation
euro_rate_recall_country1:
call euro1_to_w2
ld a,(COUNTRY1)
ld (COUNTRY_TEN),a
jp rate_recall_start
euro_rate_recall_country2:
ld a,(COUNTRY2)
ld (COUNTRY_TEN),a
call euro2_to_w2
rate_recall_start:
call w2_to_ten
call keep_ten_6dig
ld hl,TENKEY
call euro_print
call feed_1
call euro_display
call ten_clear
@CLB (F_RATE)
@CLB (F_TNKEY)
@CLB (F_DPIN)
ld (TEN_CT),0 ;
ld (DT_CT),0 ;
ld (DT_DOT_CNT),0 ;
ld (DT_CHR_CNT),0 ;
ld (KEYIN),K_EURO_LOCAL_TAX_DUM
ld (PRE_KEY),K_EURO_LOCAL_TAX_DUM
j no_operation
;EURO Conversion.................................
euro_convert:
cmp (PRE_KEY),K_EURO
j eq,no_operation
cmp (PRE_KEY),K_EURO_DUM
j eq,no_operation
jp euro_conver_euro_0
local_convert:
cmp (PRE_KEY),K_LOCAL
j eq,no_operation
cmp (PRE_KEY),K_LOCAL_DUM
j eq,no_operation
euro_conver_euro_0:
call tax_equ
@BBS (F_CALER,tax_equ_end) ;V4.11
j cs,no_operation
call ten_to_w1
cmp (PRE_KEY),K_EURO
j eq,euro_conv_euro_start_00
cmp (PRE_KEY),K_LOCAL
j eq,euro_conv_euro_start_00
call w1_to_w4 ;
euro_conv_euro_start_00:
@SEB (SW_RND54)
@CLB (SW_RNDUP)
cmp (PRE_KEY),K_EURO
j eq,euro_conv_euro_start_1
cmp (PRE_KEY),K_LOCAL
j eq,euro_conv_euro_start_1
cmp (KEYIN),K_EURO
j eq,euro_conver_euro_1
cmp (KEYIN),K_LOCAL
j eq,euro_conver_euro_2
jp no_operation
euro_conver_euro_1:
ld a,(COUNTRY2) ;local key
ld w,(COUNTRY1)
ld (COUNTRY_TEN),a
jp euro_conv_euro_start
euro_conver_euro_2:
ld a,(COUNTRY1) ;euro key
ld w,(COUNTRY2)
ld (COUNTRY_TEN),a
euro_conv_euro_start:
push wa
cmp a,0
j eq,euro_conv_euro_1
ld (SYM),S_SHP
call w1_print
cmp (KEYIN),K_EURO
j ne,to_call_euro2
call euro2_to_w2
jp call_euro_rate_1
to_call_euro2:
call euro1_to_w2
call_euro_rate_1:
ld hl,W2
call euro_print
call calc_div
pop wa
cmp w,0
j eq,to_euro_keep_2dp
;; call w1_round
jp euro_conv_euro_1
to_euro_keep_2dp:
@BBS (F_CALER,euro_local_error)
ld hl,W1
call wk_round_with_2DP
euro_conv_euro_1:
@BBS (F_CALER,euro_local_error)
ld (SYM),S_EUROS
call w1_print
euro_conv_euro_start_1:
cmp (KEYIN),K_EURO
j ne,euro_conv_euro_1_2
ld a,(COUNTRY1)
ld (COUNTRY_TEN),a
jp euro_conv_euro_3
euro_conv_euro_1_2:
ld a,(COUNTRY2)
ld (COUNTRY_TEN),a
euro_conv_euro_3:
cmp a,0
j ne,euro_conv_euro_4
cmp (PRE_KEY),K_EURO
j eq,euro_conv_euro_end_1_1
cmp (PRE_KEY),K_LOCAL
j eq,euro_conv_euro_end_1_2
jp euro_conv_euro_end
euro_conv_euro_4:
cmp (KEYIN),K_EURO
j ne,to_call_euro1
call euro1_to_w2
jp call_euro_rate_2
to_call_euro1:
call euro2_to_w2
call_euro_rate_2:
ld hl,W2
call euro_print
cmp (PRE_KEY),K_EURO
j eq,euro_conv_euro_end_1_1
cmp (PRE_KEY),K_LOCAL
j eq,euro_conv_euro_end_1_2
call calc_mult
@BBS (F_CALER,euro_local_error)
call w1_round
jp euro_conv_euro_end_2
euro_conv_euro_end_1_1:
ld (KEYIN),K_LOCAL_DUM
jp euro_conv_euro_end_1_3
euro_conv_euro_end_1_2:
ld (KEYIN),K_EURO_DUM
euro_conv_euro_end_1_3:
call w4_to_w1
euro_conv_euro_end_2:
ld (SYM),S_SHP
cmp (COUNTRY_TEN),0
j ne,euro_conv_euro_end_3
ld (SYM),S_EUROS
euro_conv_euro_end_3:
call w1_print
euro_conv_euro_end:
call feed_1
euro_local_error:
call w1_to_ten
@CLB (F_COUNTRY2)
ld a,(MDBK+1)
ld (MDFLG_1),a
tax_equ_end: ;V4.11
ld (SYM),S_AST
ld (FLG_C),0
ld (FLG_E),0
jp function_end
;------------------------------------------------------------------
euro_rate_confirm:
local_rate_confirm:
call keep_ten_6dig ;V3.08
ld a,(COUNTRY_TEN)
cmp (KEYIN),K_LOCAL
j eq,euro_rate_confirm_2
cmp (KEYIN),K_EURO
j eq,euro_rate_confirm_1
euro_rate_confirm_1:
ld (COUNTRY1),a
cmp a,(COUNTRY2) ;V4.11
j ne,euro_rate_com1 ;V4.11
call ten_to_euro2 ;V4.11
euro_rate_com1: ;V4.11
@SEB (F_COUNTRY1)
call ten_to_euro1
jp euro_rate_confirm_3
euro_rate_confirm_2:
ld (COUNTRY2),a
cmp a,(COUNTRY1) ;V4.11
j ne,euro_rate_com2 ;V4.11
call ten_to_euro1 ;V4.11
euro_rate_com2: ;V4.11
@SEB (F_COUNTRY2)
call ten_to_euro2
euro_rate_confirm_3:
call euro_set_sub
call keep_ten_6dig
ld hl,TENKEY
call euro_print
call feed_1
call euro_display
call ten_clear
@CLB (F_RATE) ;top blinking and recall rate when no EEPROM
@CLB (RATE_PROG)
@CLB (EURO_PROG)
@CLB (F_TNKEY)
@CLB (F_DPIN)
ld (TEN_CT),0 ;
ld (DT_CT),0 ;
ld (DT_DOT_CNT),0 ;
ld (DT_CHR_CNT),0 ;
ld (KEYIN),K_EURO_LOCAL_TAX_DUM
ld (PRE_KEY),K_EURO_LOCAL_TAX_DUM
jp no_operation
;--------------------------------------------------
euro_set_sub:
call keep_ten_6dig
call ten_to_w2 ;Tenkey->WORK_02
ld a,(COUNTRY_TEN)
cmp a,12
j lt,euro_set_sub_0
set cf
sub a,12
call w2_to_ee ;
euro_set_sub_0:
call country_to_ee ;-store EE_COUNTRY(Country Code)
ret
;-----------------------------------------------------
;==============================================================================
local_key:
local_key_start:
ld (KEYIN),K_LOCAL
@BBS (F_COUNTRY,euro_rate_recall_x) ;V3.07
@BBS (EURO_PROG,local_rate_confirm)
@BBC (F_RATE,local_convert)
jp local_rate_recall
;local_convert:
jp local_convert
;--------------------------------------------------------------------
;print out and backup ten buffer, and printout euro rate
;w1=ten buffer, w2=euro rate
;====================================================================
; Euro Rate + Key (Browse previous Euro Rate)
;====================================================================
eurate_plus_key:
;V4.10 ld a,(COUNTRY) ;country code from 0 to 12
;V4.10 cmp a,13-1 ;
;V4.10 j lt,eurate_p01
;V4.10 ld (COUNTRY),0xff
eurate_p01:
;V4.10 inc (COUNTRY)
euro_view:
;V4.10 ld (TEN_CT),0
;V4.10 ld (DT_CHR_CNT),0 ;V1.06
;V4.10 ld (DT_DOT_CNT),0 ;V1.06
;V4.10 @CLB (F_DPIN)
;V4.10 @CLB (F_TNKEY)
;V4.10 ld a,(COUNTRY)
;V4.10 call ee_to_ten
;V4.10 call euro_display
;V4.10 j no_operation
;==============================================================================
; Euro Rate - Key (Browse previous Euro Rate)
;==============================================================================
eurate_minus_key:
;V4.10 ld a,(COUNTRY) ;\
;V4.10 cmp a,0 ;/country code from 0 to 13
;V4.10 j gt,eurate_m00
;V4.10 ld (COUNTRY),13
eurate_m00:
;V4.10 dec (COUNTRY)
;V4.10 jp euro_view
;=====================================================
; dispaly r-cc on LCD right side
;=====================================================
init_rate_dispaly:
call ten_clear
ld hl,TENKEY
call edit_disp
ld hl,euro_ini_tbl ;\
ld a,(hl+0) ;|
ld (DISP_LSD-3),a ;|
ld a,(hl+1) ;|display r-"country code"
ld (DISP_LSD-2),a ;|
ld a,(hl+2) ;|
ld (DISP_LSD-1),a ;|
ld a,(hl+3) ;|
ld (DISP_LSD-0),a ;/
call vft_enable ;V2.01
@CLB (F_DOFF) ;V2.22
jp euro_display_0
;=====================================================
;for example display: "r-01 (6.59325)"
;=====================================================
euro_display:
@SEB (EURO_DISPLY) ;V1.28
call spc_disp
ld hl,TENKEY ;\
call edit_disp ;/tenk buffer write into display buffer
ld c,(COUNTRY_TEN) ;\
cmp c,17 ;/country code 0~12
j ge,euro_display90
shlc c ;
shlc c ;
ld hl,euro_dsp_tbl ;\
ld a,(hl+c) ;|
ld (DISP+3),a ;|
inc c ;|
ld a,(hl+c) ;|display r-"country code"
ld (DISP+4),a ;|
inc c ;|
ld a,(hl+c) ;|
ld (DISP+5),a ;|
inc c ;|
ld a,(hl+c) ;|
ld (DISP+6),a ;/
ld a,(COUNTRY_TEN)
cmp (KEYIN),K_EURO
j eq,euro_display_x
cmp a,(COUNTRY2)
j ne,euro_display_x
ld (DISP+2),0y10000010
cmp (KEYIN),K_LOCAL
j eq,euro_display_0
euro_display_x:
cmp a,(COUNTRY1)
j ne,euro_display_0
ld (DISP+2),0y10000001
euro_display_0:
call disp_to_dbr ;display buffer to LCD buffer
euro_display90:
;V3.04 @CLB (EURO_DISPLY) ;V1.28
ret
;
euro_dsp_tbl:
; db D_r,D_MIN,0x00,0x01 ;00 r-01
; db D_r,D_MIN,0x00,0x02 ;01 r-02
; db D_r,D_MIN,0x00,0x03 ;02 r-03
; db D_r,D_MIN,0x00,0x04 ;03 r-04
; db D_r,D_MIN,0x00,0x05 ;04 r-05
; db D_r,D_MIN,0x00,0x06 ;05 r-06
; db D_r,D_MIN,0x00,0x07 ;06 r-07
; db D_r,D_MIN,0x00,0x08 ;07 r-08
; db D_r,D_MIN,0x00,0x09 ;08 r-09
; db D_r,D_MIN,0x01,0x00 ;09 r-10
; db D_r,D_MIN,0x01,0x01 ;0a r-11
; db D_r,D_MIN,0x01,0x02 ;0b r-12
; db D_r,D_MIN,0x01,0x03 ;0c r-13
db D_E,D_U,D_R,D_EQU ;EUr
db D_B,D_E,D_F,D_EQU ;bEF
db D_D,D_E,D_M,D_EQU ;dEN
db D_E,D_S,D_P,D_EQU ;ESP
db D_F,D_R,D_F,D_EQU ;FrF
db D_I,D_E,D_P,D_EQU ;IEP
db D_I,D_T,D_L,D_EQU ;ItL
db D_L,D_U,D_F,D_EQU ;LUF
db D_N,D_L,D_G,D_EQU ;nLG
db D_A,D_T,D_S,D_EQU ;Ats
db D_P,D_T,D_E,D_EQU ;Pte
db D_F,D_I,D_M,D_EQU ;FIN
db D_C,D_C,D_1,D_EQU ;CC1
db D_C,D_C,D_2,D_EQU ;CC2
db D_C,D_C,D_3,D_EQU ;CC3
db D_C,D_C,D_4,D_EQU ;CC4
db D_C,D_C,D_5,D_EQU ;CC5
db D_C,D_C,D_5,D_EQU ;CC6
db D_C,D_C,D_5,D_EQU ;CC7
db D_C,D_C,D_5,D_EQU ;CC8
db D_C,D_C,D_5,D_EQU ;CC9
db D_C,D_C,D_5,D_EQU ;CC10
db D_C,D_C,D_5,D_EQU ;CC11
db D_C,D_C,D_5,D_EQU ;CC12
db D_C,D_C,D_5,D_EQU ;CC13
euro_ini_tbl:
db D_R,D_MIN,D_C,D_C ; (init r-cc)
; db D_L,D_MIN,0x00,0x01 ;
; db D_L,D_MIN,0x00,0x02 ;
; db D_L,D_MIN,0x00,0x03 ;
;------------------------------------------------------------
euro_print:
ld a,0x3a
clr cf
add a,(COUNTRY_TEN)
ld (SYM),a
call edit_prn
ld ix,PRN_BUF_MSD_LTP ;V4.03
@IS_LTP_ON(euro_print_0) ;V4.03
ld ix,PRN_BUF ;V4.03
euro_print_0:
ld (ix+1),ps_dot
ld (ix+2),ps_dot
ld (ix+3),ps_dot
@BBS (F_COUNTRY2,euro_print_1)
ld a,(COUNTRY_TEN)
cmp a,(COUNTRY1)
j ne,euro_print_1
ld (ix+1),ps_1
ld (ix),ps_der
jp euro_print_3
euro_print_1:
ld a,(COUNTRY_TEN)
cmp a,(COUNTRY2)
j ne,euro_print_3
ld (ix+1),ps_2
ld (ix),ps_der
euro_print_3:
ld c,(COUNTRY_TEN)
shlc c
ld hl,country_code_tbl
ld a,(hl+c)
ld (ix+4),a
inc c
ld a,(hl+c)
ld (ix+5),a
call wk_print9
@CLB (F_COUNTRY1)
@CLB (F_COUNTRY2)
ret
;----------------------------------------
country_code_tbl:
db 0,0
db 0,1
db 0,2
db 0,3
db 0,4
db 0,5
db 0,6
db 0,7
db 0,8
db 0,9
db 1,0
db 1,1
db 1,2
db 1,3
db 1,4
db 1,5
db 1,6
db 1,7
db 1,8
db 1,9
db 2,0
db 2,1
db 2,2
db 2,3
db 2,4
db 2,5
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -