?? business_fn.asm
字號:
$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)
;
;
;Basic function............................
;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'
S_TLGT equ 0x07 ;TL G+
S_STAPL equ 0x07
S_ST equ 0x08 ;' S'
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -