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

📄 eeprom.asm

📁 calculator code ,use toshibaor nec LSI
💻 ASM
📖 第 1 页 / 共 3 页
字号:
	$nolist
;*******************************************************************************
;*******************************************************************************
;*                                                                             *
;*              (C)Copyright, CLOVER China Electronics Co.,LTD.                *
;*                          All Rigits Reserved                                *
;*   add:No.58-F Yang Dong Road, LuoFeng Demonstrative Zone Suzhou, China      *
;*                    Tel: 0512-67261886 Fax:0512-67261882                     *
;*                        http://www.clover.co.jp                              *
;*                                                                             *
;*******************************************************************************
;*******************************************************************************
;
;		OBS CPD3212T source program
;		CPU: TOSHIBA TLC-870/C series TMP86CM74A
;		RAM: 2Kbytes(0040h - 083Fh)
;		ROM: 32Kbytes(8000h - FFFFh)
;
;
;=======================================================================
;Sub routines

;External symbol definition for RAM
;SFR................
	extern	small	P0DR,P1DR,P2DR,P3DR,P4DR,P5DR,P6DR,P7DR,P8DR,P9DR
	extern	small	P0CR,P1OUTCR,P4CR1,P5CR	
	extern	small	ADCCR1,ADCCR2	
	extern	small	TC3DRA,TC3DRB,TC3CR,TC2CR,TC4CR,P1PRD,P2PRD,P3PRD,TC4DR
	extern	small	SIOCR1,SIOCR2,SIOSR,SIOBUF,PDDR
;---------0020h
	extern	small	TC1DRAL,TC1DRAH,TC1DRBL,TC1DRBH,TC2DRL,TC2DRH
	extern	small	ADCDR2,ADCDR1,P4CR2,TC3SEL,VFTCR1,VFTCR2,VFTCR3,VFTSR
;---------0031h
	extern	small	STOPCR,TC1CR,WDTCR1,WDTCR2
	extern	small	TBTCR,EINTCR,SYSCR1,SYSCR2,EIRL,EIRH,ILL,ILH,INTSEL,PSTW
;port assignment
	extern	small	STB2,STB1,LAT;EP_DIO,EP_SK,EP_CS
	extern	small	IO_PF
	extern	small	IO_CHR	
	extern	small	IO_MT,ENA2,ENA1,IN1,IN2
	extern	small	SLID_RT0,SLID_RT1,SLID_RT2,SLID_RT3
	extern	small	G1,G2,G3,G4,G5,G6,G7,G8
	extern	small	G9,G10,G11,G12,G13,G14,G15,SEG_dp
	extern	small	SEGMENT	
	extern	small	SEG_g,SEG_f,SEG_e,SEG_d,SEG_c,SEG_b,SEG_a,SEG_COM,SEG_M,SEG_MIN,SEG_E

;RAM (40-FFh).........
	extern	small W1,W2,W3,TENKEY,DISP,ACC,CONST,COST,SELL,MARG,IC_A
	extern	small FLG_1,FLG_E,FLG_C,FLG_K
	extern	small RP_TIM,TPSC,RP_TIM,TP_CNT,CL_CNT,TC1_COUNT,TC3_COUNT,TW1,F_PCONT
	extern	small MDBK,MDFLG_RT,MDFLG,MDCHK,TEN_CT,DP_POS_RT,DP_POS,DW_CT,PRE_KEY,PRE_KEY_BK,SYM
;RAM equation (40-FFh)...........

	extern	small LENG_WK,OFF_S,OFF_MSD,OFF_MSD12,OFF_LSD,OFF_DP,OFF_MSD10
	extern	small D_PRN_MAX,PRN_MAX
	extern	PRN_BUF_SYM_LTP,PRN_BUF_LSD_LTP	;V4.03D_PRN_MAX_LTP,
	extern	small W1_S,W1_LSD,W1_MSD,W1_DP,W2_S,W2_LSD,W2_MSD,W2_DP,W3_S,W3_LSD,W3_MSD,W3_DP
	extern	small MDSW_0,MDSW_1,MDSW_2,MDSW_3,MDSW_01,MDSW_11,MDSW_21,MDSW
	extern	small MDFLG,MDFLG_0,MDFLG_1,MDFLG_2,MDFLG_3,MDFLG_01,MDFLG_11,MDFLG_21
	extern	small TEN_S,TEN_LSD,TEN_DP
;RAM (100h -).........
	extern	DISP,TO_DBR,TO_DBR_LSD,DISP_CT,DISP_TMP,FLG_2
	extern	YEAR,MON,DAY,HOUR,MIN,SEC,BLK_CT,BLK_D,PTR,RTC_CK,COLOR_CT,DELAY_CT
	extern	KEY_BUF,KEY_WPTR,KEY_RPTR,KEY_CT,KEYIN,SCAN_BK,KI_CT,RET_BK,SCAN_CT
	extern	PRN_BUF,TAXRT,FC1RT,FC2RT,FC3RT,PF_CNT,DT_BUF,DT_CT,TEMP,WO_CLR,W1_CLR
	extern	MEM1,MEMGT,IC_M,IC_G,FLG_ICON,TW1_BAK,DT_DOT_CNT,DT_CHR_CNT,IC_BK
	extern	MDFLG_RT3,MDFLG_RT2,MDFLG_RT1,MDFLG_RT0,MDFLG_RT21,MDFLG_RT11,MDFLG_RT01
	extern	FLG_MODE

;RAM equation (100h -)...........
	extern	RAM_TOP,RAM_BOT
	extern	T_YEAR,T_MON,T_DAY,T_HOUR,T_MIN,T_Y20,T_AMPM,BACKUP,BK_Y20,BK_HOUR,BK_AMPM
	extern	DBR_SEG,DBR_TOP,DBR_BOT,MULSEL,DISP_MSD,DISP_LSD,STOPCR
	extern	PRN_BUF_MSD,PRN_BUF_LSD,PRN_BUF_SYM,DT_BUF_MSD,DT_BUF_LSD,PRN_BUF_S,IC_SYM
	extern	PRN_BUF_MSD_LTP
	extern	AVR_ITEM,AVR_BUF
	extern	EP_ADDR,EP_TIM,FINANCE_1,FINANCE_0,OFF_CT
	extern	TAX2RT,EURO_RATE1,EURO_RATE2,FLG_RTC
	extern	F_PCONT_1,F_PCONT_2
;RAM bit...........
	extern	E_MUL,E_DIV,E_DLT,E_MUP,E_CST,E_SEL,E_MAR,F_M2CAL
	extern	C_MUL,C_DIV,C_DLT,C_MUP,C_CST,C_SEL,C_MAR,CSM_RECALL
	extern	F_CALER,F_ZDIVER,F_PERCAL,F_WAKE
	extern	ICON_MIN,ICON_M,ICON_E,ICON_GT,F_ICDSP,F_GTON,RTC_CHK
	extern	F_KON,F_KOFF,F_TNKEY

	extern	F_INIT,F_FEED,F_PRINT,F_FDREQ,F_PRREQ,F_RUSH,F_REDBAK,P_MOVE
	extern	F_LPRN,F_EXFED,F_RVSE,F_RVSE,F_RVREQ,F_STBDLY,F_CHPOFF,F_REVCAN,F_STBON
	extern	F_SSTB,F_BHLD,F_ACC,P_ERR,P_NP,P_RED,IO_MT,F_TRAN

	extern	F_MIN_TRA,F_DPIN,F_OFF,F_RATE,F_RTUPD
	extern	SW_OFF_RT,SW_RAT_RT,SW_NP_RT,SW_FIN_RT,SW_FEED_RT,SW_DMY_RT,SW_24_RT,F_24ON,F_ENLARG,F_LARGP,F_INIREQ
	extern  F_HLD_FED,F_HLD_SET,PAPER_FEED
	extern	RTC_ON,RTC_TIM,RTC_24,RTC_DMY,RTC_YMD,RTC_SET,F_ICPN,NO_CLK,MEQ_ENB,ERR_MES,ERR_CLR
	extern	EP_FAIL,EP_ACCES,RATE_PROG,IC_PROG,EURO_PROG
	extern	M_TX2,M_TX1,M_M2,M_HAND,M_FINANCE 
	extern	SW_LTP,F_DOFF;M_VIC,M_JET,M_NIL,	
	extern	SLID_RT0,SLID_RT1,SLID_RT2
	extern	SW_DP0,SW_DP1,SW_DP2,SW_DP3,SW_DP4,SW_DP5,SW_DP6,SW_ADM,SW_ADM12,SW_DTST,M10,SW_SG;
	extern	SW_RND54,SW_RNDUP,SW_GT,SW_NP,SW_EUTX,SW_MGT,SW_OFF,SW_IC,SW_ICPM,SW_SGT,SW_SGM,SW_SGG
	extern	SW_SGK,SW_EUROS,SW_FEED,SW_A,SW_M2,SW_AC,M14,SW_DMY,SW_TA,SW_V15,SW_24,SW_FIN,SW_RATE
	extern	SW_IC_RT,SW_ICPM_RT,F_ICPM,F_EQU,SW_RND54_RT,SW_RNDUP_RT,SW_GT_RT,F_PEREXE,SW_ADM_RT
	extern	FEED_REQ,DP_UPDATE,EURO_DISPLY,F_COUNTRY,F_COUNTRY1,F_COUNTRY2,F_COUNTRY_EQU,F_WAITP,F_TX12,RATE_INI
	extern	M_FX_SD,M_FX_SGM,M_TA,M_FX_54,M_FX_M14,M_FX_V15,F_POWER,F_BLINK,M_FX_AC,M_5514T
	extern	FN_INTEREST,FN_AMOUNT,FN_MONTH,FN_PAYMENT,FN_MTHRATE,FN_TEMP,FN_TEMP1
	extern	FN_MONTH_H,DEC_SET_CONT,AUTO_OFF_TIM
	extern	FINANCE,W4,COUNTRY,COUNTRY1,COUNTRY2,COUNTRY_TEN
	extern	DIAG_WK,FN_AMOUNT_MSD14,FN_AMOUNT_MSD,FN_AMOUNT_EXP,FN_MTHRATE_MSD,FN_PAYMENT_MSD14
	extern	VPRN,STB_BAK,PHASE_CT,STEP_CT,LINE_PTR,DOT_CT,DOT_LINE,DIGIT_CT,HD_TEMP,STEP_BAK,LINE_PTR_BK
;bit 	
	extern	F_INTEREST,F_AMOUNT,F_MONTH,F_PAYMENT,F_MODIFIED,F_CAL_AMOUNT,F_CAL_MONTH,F_CAL_PAYMENT
	extern	F_FNEABL,F_FINBUSY,F_FINAL,F_FINCAL,F_FNRECALL 
	extern	RTC_INIT,NO_PRINT
;External symbol definition for Sub routines

;external symbol for general sub routines......................
	extern	calc_add,calc_mult,calc_div
	extern	w1_clear,w2_clear,w3_clear,w2_round,ten_clear,acc_clear,mem1_clear,gt_clear
	extern	stg_sfl47,stg_sfr47,stg_sfl49,stg_sfr49,w1_zerock,ten_zerock,_spaceck
	extern	edit_disp,disp_to_dbr,spc_prnbuf,spc_dt,spc_disp
	extern	wk_update,ic_update,add_mode
	extern	wk_round,exchg_w12
	extern	wait_100ms,wait_50ms,wait_xms,wait_40c
	extern	dp_adjust
;external symbol for print sub routine.........................
	extern	print,w2_print,w2_round_print
	extern	w1_print,w1_round_print,w1_round
	extern	wk_print,kfeed_1,feed_1,prn_init,err_print,wkup_print,ic_print,ic_print00,sym_print_br,print_shpd,print_bk

	extern	ee_to_euro1,ee_to_euro2,ee_to_tax,ee_to_ten,ee_to_wreg,eeprom_check
	extern	w2_to_ee,country_to_ee,ee_country_read,rate_init_check,ee_rate_init,fn_register_clear
	extern	w1_to_w4,w1_to_ten,w1_to_w2,w1_to_const
	extern	w2_to_ten,w2_to_tax,w2_to_euro,w2_to_w4,w2_to_eetx,w2_to_marg,w2_to_cost
	extern	w2_to_sell,w2_to_const,w2_to_w1
	extern	const_to_w1,ten_to_w1,w4_to_w1,cost_to_w1,sell_to_w1,marg_to_w1,tax_to_w1,ten_to_w1dp
	extern	const_to_w2,cost_to_w2,sell_to_w2,marg_to_w2,w4_to_w2,tax_to_w2
	extern	euro1_to_w2,euro2_to_w2,w2_to_euro1,w2_to_euro2,ten_to_euro1,ten_to_euro2,euro1_to_ten,euro2_to_ten
	extern	acc_to_w2,ten_to_w2dp,gt_to_w2,ten_to_w2,mem1_to_w2
	extern	_zerock,w2_to_tax2,w2_to_eetx2,tax2_to_w1,tax2_to_w2
	extern	w1_to_acc,w2_to_acc,acc_to_ten
	extern	ee_to_tax2,ic_print_y,wkrnd_zsp0
	extern	equal_sub,wk_round_with_ten_dp
	extern	const_clear,wk_round_with_const_dp,wk_round_with_2DP
	extern	init_vft,vft_disable,vft_enable
	extern	wk_round_down,wk_round_up
	extern	w1_to_ftemp,ftemp_to_w2
	extern	message_edit	;V4.04
	$nolist
;*******************************************************************************
;*******************************************************************************
;*                                                                             *
;*              (C)Copyright, CLOVER China Electronics Co.,LTD.                *
;*                         (Company No:190077-X)                               *
;*                          All Rigits Reserved                                *
;*   add:No.58-F Yang Dong Road, LuoFeng Demonstrative Zone Suzhou, China      *
;*                    Tel: 0512-67261886 Fax:0512-67261882                     *
;*                        http://www.clover.co.jp                              *
;*                                                                             *
;*******************************************************************************
;*******************************************************************************
;
;		OBS CPD3212T source program
;		CPU: TOSHIBA TLC-870/C series TMP86CM74AF
;		RAM: 2Kbytes(0040h - 083Fh)
;		ROM: 32Kbytes(8000h - FFFFh)
;
;
;Macro difinition
	$list
;==============================================================================
;	Push register
;==============================================================================
;==============================================================================
;	Pop register
;==============================================================================
;==============================================================================
;	Set bit		Note: use WA registor
;==============================================================================
;==============================================================================
;	Set bit		Note: use WA registor
;==============================================================================
;==============================================================================
;	Branch if bit set	Note: use WA registor
;==============================================================================
;==============================================================================
;	Branch if bit clear	Note: use WA registor
;==============================================================================
;==============================================================================
;	Set '1' to W2
;==============================================================================
;==============================================================================
;	Set '100' to W2
;==============================================================================

;==============================================================================
;V2.00@define(lcd_disable)(
;V2.00		ld	(LCDCTL1),0y10000100	;1/4 duty, REFV V4,=VDD, Booster circuit disable, LCD display enable
;V2.00		clr	(P6DR).3
;V2.00		clr	(P6DR).5
;V2.00		clr	(FLG_MODE).6		;indicate LED OFF
;V2.00)

;V2.00@define(lcd_enable)(
;V2.00		ld	(LCDCTL1),0y10000101	;1/4 duty, REFV V4,=VDD, Booster circuit disable, LCD display enable
;V2.00		ld	(LCDCTL2),0y00000001	;base frequency for frame frequency 8M
;V2.00		set	(FLG_MODE).6		;indicate LED ON
;V2.00)
;==============================================================================
;----------------------------
;==============================================================================
;===============================================================================V1.21
;==============================================================================V1.21
;---------------------------------
;======================================
;----------------------------
;----------------------------
;----------------------------
;---------------------------
;---------------------------
;==========================================

;================================================
	;-------------------------
;================================================
;@set(D14,0)		;in case of 12digit model
;@set(UP_COM,1)		;in case of upper commma VFD

MAX_DIGIT	equ	12
MAX_DIGIT_DT	equ	15

D_PRN_MAX_LTP	equ	16		;maximum capacity of numeric part(digit)
;DISP character code................
D_0		equ	0x00
D_1		equ	0x01
D_I		equ	0x01
D_2		equ	0x02
D_3		equ	0x03
D_4		equ	0x04
D_5		equ	0x05
D_S		equ	0x05
D_6		equ	0x06
D_G		equ	0x06
D_7		equ	0x07
D_8		equ	0x08
D_9		equ	0x09
D_A		equ	0x0a
D_B		equ	0x0b
D_C		equ	0x0c
D_D		equ	0x0d
D_E		equ	0x0e
D_F		equ	0x0f
D_P		equ	0x10
D_H		equ	0x11
D_HYPN		equ	0x12
D_MIN		equ	0x12
D_L		equ	0x13
D_M		equ	0x14
D_N		equ	0x15
D_EQU		equ	0x16
D_R		equ	0x17
D_U		equ	0x18
D_T		equ	0x19

D_Lo		equ	0x29
D_Uo		equ	0x2a

D_SPC		equ	0x3f
;Key code............................
K_ZERO		equ	0x00
K_NUM		equ	0x09		;0-9 key
K_ZERO2		equ	0x0a
K_ZERO3		equ	0x0b
K_TEN		equ	0x0b
K_DP		equ	0x0c
K_CE		equ	0x0d
K_CEC		equ	0x0e
K_GT		equ	0x0f
K_PLS		equ	0x10
K_MIN		equ	0x11
K_ST		equ	0x12
K_TL		equ	0x13
K_ROUND		equ	0x13
K_SHS		equ	0x14		;#/S
K_FIN		equ	0x14
K_PNP		equ	0x15

K_TX2P		equ	0x14
K_TX2M		equ	0x15

K_EQU		equ	0x16
K_PER		equ	0x17
K_MUL		equ	0x18
K_DIV		equ	0x19
K_MU		equ	0x1a
K_DLT		equ	0x1b
K_SGN		equ	0x1c
K_BS		equ	0x1d
K_SHD		equ	0x1e		;#/D
K_IC		equ	0x1f
K_MPL		equ	0x20
K_MMI		equ	0x21
K_MST		equ	0x22
K_MTL		equ	0x23

K_M2PL		equ	0x2c
K_M2MI		equ	0x2d
K_M2ST		equ	0x2e
K_M2TL		equ	0x2f

;K_MONTH	equ	0x2c
;K_PAYMENT	equ	0x2d
;K_INTEREST	equ	0x2e
;K_AMOUNT	equ	0x2f

K_MONTH		equ	0x40	;V1.25 exten key code
K_PAYMENT	equ	0x41	;V1.25 exten key code
K_INTEREST	equ	0x42	;V1.25 exten key code
K_AMOUNT	equ	0x43	;V1.25 exten key code
	
K_EURO		equ	0x44	;V1.25 exten key code
K_LOCAL		equ	0x45	;V1.25 exten key code

K_EURO_DUM	equ	0x46	;V2.08 exten key code
K_LOCAL_DUM	equ	0x47	;V2.08 exten key code
K_EURO_LOCAL_TAX_DUM	equ	0x48
K_CST		equ	0x24		;feed
K_SEL		equ	0x25
K_MGR		equ	0x26
K_ROOT		equ	0x27

K_RATE		equ	0x28

K_TXP		equ	0x29
K_TXM		equ	0x2a

K_DEC		equ	0x2b
K_TIM		equ	0x2b
K_PERPLS	equ	0x2b
;K_EURO		equ	0x2c
;K_LOCAL		equ	0x2d
K_OFF		equ	0x2e
K_FED		equ	0x2f
K_MAX		equ	0x30		;for illegal key check
K_PRP		equ	0x31		;+% (dummy key code)
K_PRM		equ	0x32		;-% (dummy key code)
K_TAX		equ	0x33		;TAX (dummy key code)
K_M2CAL		equ	0x34		;M2 (dummy key code) V1.22
K_TX12M	equ	0x35	;V2.07 for [tax1][tax2][-]
K_TX12P	equ	0x36	;V2.07 for [tax1][tax2][+]
K_ICPLS	equ	0x37	;V2.12 
K_ICMIN	equ	0x38	;V2.12
;Printer character wheel code........
C_DP		equ	0x0c
C_TWODP		equ	0xcc
C_COM		equ	0x0b
C_SPC		equ	0x0f
C_DOT		equ	0x0c	;M71 printer head replace space with "dot"
C_SPCD		equ	0xff		;space for 2digit
C_SHPL		equ	0xd0		;for '#' on the left most digit
;V1.45C_AM		equ	0x78		;AM for symbol digit
;V1.45C_PM		equ	0x38		;PM for symbol digit
C_AM		equ	0xc0	;V1.45	;AM for symbol digit
C_PM		equ	0xa0	;V1.45	;PM for symbol digit
C_SHPR		equ	0xfd		;for '#' on the right
C_MIN		equ	0x0a	;V1.05	"-"

;V4.02============
;define symbol and character
ps_0		equ	0x00
ps_1		equ	0x01
ps_2		equ	0x02
ps_3		equ	0x03
ps_4		equ	0x04
ps_5		equ	0x05
ps_6		equ	0x06
ps_7		equ	0x07
ps_8		equ	0x08
ps_9		equ	0x09
ps_pls		equ	0x0a
ps_min		equ	0x0b
ps_dot		equ	0x0c
ps_str		equ	0x0d
ps_com		equ	0x0e
ps_spc		equ	0x0f
ps_mul		equ	0x10
ps_div		equ	0x11
ps_equ		equ	0x12
ps_der		equ	0x13
ps_per		equ	0x14
ps_dlt		equ	0x15
ps_dia		equ	0x16
ps_eur		equ	0x17
ps_a		equ	0x18
ps_b		equ	0x19
ps_c		equ	0x1a
ps_d		equ	0x1b
ps_e		equ	0x1c
ps_f		equ	0x1d
ps_g		equ	0x1e
ps_i		equ	0x1f
ps_l		equ	0x20
ps_m		equ	0x21
ps_n		equ	0x22
ps_o		equ	0x23
ps_p		equ	0x24
ps_r		equ	0x25
ps_s		equ	0x26
ps_t		equ	0x27
ps_u		equ	0x28
ps_z		equ	0x29
ps_mm		equ	0x2a
ps_mder		equ	0x2b
;Printing symbol(specified sumbol table offset)..............
;		equ	0x00		;'  '
S_PWR		equ	0x01		;'C*'
S_PLS		equ	0x02		;' +'
S_MIN		equ	0x03		;' -'
S_SPC		equ	0x04		;'  '
S_SHD		equ	0x04	
S_SHP		equ	0x05		;' #'
S_TL		equ	0x06		;' T'

⌨️ 快捷键说明

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