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

📄 business_fn.mac

📁 calculator code ,use toshibaor nec LSI
💻 MAC
📖 第 1 页 / 共 4 页
字号:
;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 + -