📄 ram.asm
字号:
DP_POS_RT dsb 1 ;up dated real time
DP_POS dsb 1 ;fixed DP selector position
MDCHK dsb 1 ;
DW_CT dsb 1 ;down counter for 1/128s routin
;printer controller.............................
;SOL_BIT dsb 3 ;
TPSC dsb 1
RP_TIM dsb 1 ;reset pulse wait time
TP_CNT dsb 1 ;time pulse TP counter
CL_CNT dsb 1 ;pattern column counter
F_PCONT dsb 3 ;used for printer control flag
F_PCONT_1 equ F_PCONT+0 ;used for printer control flag
F_PCONT_2 equ F_PCONT+1 ;used for printer control flag
F_PCONT_3 equ F_PCONT+2 ;used for printer control flag
TC1_COUNT dsb 1 ;
TC3_COUNT dsb 1 ;for timer 3 counter
TW1_BAK dsb 2 ;used for back with timer1 interrupt
TW1 dsb 2 ;
SYM dsb 1 ;
;printer controller.............................
;==============================================================================
; RAM assign (over 100h)
;==============================================================================
RAM_1 section data abs=0x0100
DISP dsb 14 ;display buffer
DISP_MSD equ DISP ;
DISP_LSD equ DISP+13 ;
DISP_TMP dsb 4 ;for convert LCD into DBR
TO_DBR dsb 16 ;used for LCD display content write into DBR
TO_DBR_LSD equ TO_DBR+15
;V1.30MEMGT dsb 9 ;Grand Total
;V1.30IC_G dsb 2 ;Item counter for GT
DT_BUF dsb 9 ;#/D entry buffer
DT_BUF_MSD equ DT_BUF ;
DT_BUF_LSD equ DT_BUF+8 ;
DT_CT dsb 1 ;#/D key entry counter
DT_DOT_CNT dsb 1 ;#/D decimal counter
DT_CHR_CNT dsb 1 ;befor dt input, counter how many digital input
DISP_CT dsb 1
COLOR_CT dsb 1 ;backlight color control
;Key scan........................................
KEYIN dsb 1 ;
KEY_WPTR dsb 1 ;
KEY_RPTR dsb 1 ;
KEY_CT dsb 1 ;
SCAN_CT dsb 1 ;
SCAN_BK dsb 1 ;
KI_CT dsb 1 ;
RET_BK dsb 1 ;
KEY_BUF dsb 64 ;
DELAY_CT dsb 1
;For power failure...............................
PF_CNT dsb 1
;Printer controler...............................
PRN_MAX equ 24 ;maximum capacity of prn buffer
D_PRN_MAX equ 21 ;maximum capacity of numeric part(digit)
PRN_BUF dsb PRN_MAX ;Print Buffer
PRN_BUF_S dsb PRN_MAX ;in case print 19th data, always=0xff
PRN_BUF_MSD equ PRN_BUF+0
PRN_BUF_LSD equ PRN_BUF+20
PRN_BUF_SYM equ PRN_BUF+21
;D_PRN_MAX_LTP equ 16 ;maximum capacity of numeric part(digit)
PRN_BUF_MSD_LTP equ PRN_BUF+3
PRN_BUF_LSD_LTP equ PRN_BUF+17
PRN_BUF_SYM_LTP equ PRN_BUF+18
IC_SYM dsb 1
AVR_ITEM dsb 2
AVR_BUF dsb 9
EP_ADDR dsb 1 ;EEPROM address
EP_TIM dsb 1 ;EEPROM w/r time, if the time over, EEPROM fail set
;RTC tempolary.................................
BLK_CT dsb 1 ;free running counter for brinking
BLK_D dsb 1 ;indicate blanking digit when RTC set mode
PTR dsb 1 ;indicate digit pointer for RTC set
TEMP dsb 14 ;for RTC set
T_Y20 equ TEMP ;copy from RTC data, these area use for keep entry value for RTC set
T_YEAR equ TEMP+1 ;
T_MON equ TEMP+2 ;
T_DAY equ TEMP+3 ;
T_HOUR equ TEMP+4 ;
T_MIN equ TEMP+5 ;
T_AMPM equ TEMP+6 ;
BACKUP equ TEMP+7 ;copy TEMP data for resume data when press CE/C key under RTC set mode
BK_Y20 equ BACKUP ;
BK_YEAR equ BACKUP+1 ;
BK_MON equ BACKUP+2 ;
BK_DAY equ BACKUP+3 ;
BK_HOUR equ BACKUP+4 ;
BK_MIN equ BACKUP+5 ;
BK_AMPM equ BACKUP+6 ;
W4 dsb 9 ;temporary register used for compute finance
FN_AMOUNT dsb 9 ;used for financial amount
FN_INTEREST dsb 9 ;used for year interest
FN_MTHRATE dsb 9 ;used for month interest percent, month interest%= (year interest)/1200
FN_PAYMENT dsb 9 ;used for financial payment
FN_TEMP dsb 9 ;temporary register used for saveing (1+interest)^month
FN_TEMP1 dsb 9 ;temporary register used for
FN_MONTH dsb 2 ;used for financial months
FN_MONTH_H dsb 2 ;temporary register used for compute month
FINANCE_0 dsb 1 ;flag for finance calculation
FINANCE_1 dsb 1
OFF_CT dsb 1 ;used for VFD display off count
LCD_FLAG dsb 1 ;for LCD symbol display flag
LCD_FLAG1 dsb 1
;RTC tempolary.................................
;/////////////// not clear these areas when resume from power failure ////////////////
W1_CLR:
MEMGT dsb 9 ;Grand Total
IC_G dsb 2 ;Item counter for GT
WO_CLR:
FLG_MODE dsb 2
;RTC ..........................................
YEAR dsb 1 ;
MON dsb 1 ;
DAY dsb 1 ;
HOUR dsb 1 ;
MIN dsb 1 ;
SEC dsb 1 ;
RTC_CK dsb 1 ;RTC sub counter
FLG_RTC dsb 1 ;RTC flags
;RTC ..........................................
COUNTRY dsb 2 ;used for save country code 00~13
COUNTRY1 equ COUNTRY
COUNTRY2 equ COUNTRY+1
COUNTRY_TEN dsb 1
EURO_RATE1 dsb 9 ;EURO convert, local rate
EURO_RATE2 dsb 9
DEC_SET_CONT dsb 1
AUTO_OFF_TIM dsb 2
TAXRT dsb 9 ;
TAX2RT dsb 9 ;
MEM1 dsb 9 ;Memory1
IC_M dsb 2 ;Item counter for Memory1
IC_BK dsb 2 ;v1.22 use for backup IC_G or IC_M to calculate average /or repaeat IC print
FLG_ICON dsb 1 ;for icon display of VFT
FLG_ICON_1 dsb 1 ;V1.46
VPRN dsb 1
STB_BAK dsb 2
PHASE_CT dsb 1
STEP_CT dsb 1
LINE_PTR dsb 1
DOT_CT dsb 1
DOT_LINE dsb 36
DIGIT_CT dsb 1
HD_TEMP dsb 2
STEP_BAK dsb 2
LINE_PTR_BK dsb 1 ;V4.03
;/////////////// not clear these areas when resume from power failure ////////////////
RAM_END:
;End of user RAM (0x081f)
; |
;Stack area (at least keep 32bytes)
; |
;End of RAM (0x043f)
;RAM_BOT equ 0x083f ;this RAM size is for TMP86CM74A,TMP86CS25,TMP86CM25
RAM_BOT equ 0x043f ;V2.24 this RAM size is for TMP86CM74A
;Data Buffer Register for LCD....................
DBR_TOP equ 0x0f80
; |
; |
DBR_SEG equ 0x0fa0
;
;
DBR_BOT equ 0x0fcf
;V2.00MULSEL equ 0x0fc0
;V2.00STOPCR equ 0x0f9a
;==============================================================================
; RAM address equations
;==============================================================================
;Data structure of work memory...................
LENG_WK equ 7 ;length of data resistor
OFF_S equ 0
OFF_MSD equ 1
OFF_MSD12 equ 2 ;in case of 12digit model
OFF_MSD10 equ 3 ;V1.21 in case of 10digit model
OFF_LSD equ 7
OFF_DP equ 8
;
;
;Work register structure........................
;
; e.g) -1234567.8901234
;
; SGN MSD - - - - - - - - - - - - - LSD DP
; +0 +1 +2 +3 +4 +5 +6 +7 +8
; 0 1 1 2 3 4 5 6 7 8 9 0 1 2 3 4 0 7
;
W1_S equ W1 ;sign (bit0)
W1_MSD equ W1+OFF_MSD ;14th-13th digit
W1_LSD equ W1+OFF_LSD ;2nd-1st digit
W1_DP equ W1+OFF_DP ;dp location
W2_S equ W2 ;
W2_MSD equ W2+OFF_MSD ;
W2_LSD equ W2+OFF_LSD ;
W2_DP equ W2+OFF_DP ;
W3_S equ W3 ;
W3_MSD equ W3+OFF_MSD ;
W3_LSD equ W3+OFF_LSD ;
W3_DP equ W3+OFF_DP ;
TEN_S equ TENKEY
TEN_MSD equ TENKEY+OFF_MSD
TEN_LSD equ TENKEY+OFF_LSD
TEN_DP equ TENKEY+OFF_DP
MDSW_0 equ MDSW+0
MDSW_1 equ MDSW+1
MDSW_2 equ MDSW+2
MDSW_3 equ MDSW+3
MDSW_01 equ MDSW+4
MDSW_11 equ MDSW+5
MDSW_21 equ MDSW+6
MDFLG_0 equ MDFLG+0
MDFLG_1 equ MDFLG+1
MDFLG_2 equ MDFLG+2
MDFLG_3 equ MDFLG+3
MDFLG_01 equ MDFLG+4
MDFLG_11 equ MDFLG+5
MDFLG_21 equ MDFLG+6
MDFLG_RT0 equ MDFLG_RT+0
MDFLG_RT1 equ MDFLG_RT+1
MDFLG_RT2 equ MDFLG_RT+2
MDFLG_RT3 equ MDFLG_RT+3
MDFLG_RT01 equ MDFLG_RT+4
MDFLG_RT11 equ MDFLG_RT+5
MDFLG_RT21 equ MDFLG_RT+6
;Mode switch bit location............
; MDSW_01,MDSW_0
; bit -> 3 2 1 0 7 6 5 4 3 2 1 0
; SG D14 V15 AM12 ADM DP6 DP5 DP4 DP3 DP2 DP1 DP0
; MDSW_11,MDSW_1
; bit -> 3 2 1 0 7 6 5 4 3 2 1 0
; SGG SGM SGT IC+- NCT OFF MGT EUTX DSP GT UP 5/4
; MDSW_21,MDSW_2
; bit -> 3 2 1 0 7 6 5 4 3 2 1 0
; FIN 24H TA DMY AMZ AC M2 CMP FED EUROS SGK
;
;==============================================================================
; RAM flag bit equations
;==============================================================================
;
; flag equation contents -> aaaa aaaa aaaa 0bbb
; --flag addr-- bit
;
;
E_MUL equ (FLG_E<<4)+0
E_DIV equ (FLG_E<<4)+1
E_DLT equ (FLG_E<<4)+2
E_MUP equ (FLG_E<<4)+3
E_CST equ (FLG_E<<4)+4
E_SEL equ (FLG_E<<4)+5
E_MAR equ (FLG_E<<4)+6
F_M2CAL equ (FLG_E<<4)+7
C_MUL equ (FLG_C<<4)+0
C_DIV equ (FLG_C<<4)+1
C_DLT equ (FLG_C<<4)+2
C_MUP equ (FLG_C<<4)+3
C_CST equ (FLG_C<<4)+4
C_SEL equ (FLG_C<<4)+5
C_MAR equ (FLG_C<<4)+6
CSM_RECALL equ (FLG_C<<4)+7
F_CALER equ (FLG_1<<4)+0 ;calculation error
F_ZDIVER equ (FLG_1<<4)+1 ;0 divided error
F_PERCAL equ (FLG_1<<4)+2 ;shift 2 DP for % calculation
F_MIN_TRA equ (FLG_1<<4)+3 ;minus tranzaction (-, M- M2-)
F_DPIN equ (FLG_1<<4)+4 ;DP key entered
F_OFF equ (FLG_1<<4)+5 ;off mode
F_RATE equ (FLG_1<<4)+6 ;rate setting mode
F_RTUPD equ (FLG_1<<4)+7 ;new tax rate entry in rate set mode
MEQ_ENB equ (FLG_2<<4)+0 ;M+=/M-= enable for after calculation error
ERR_MES equ (FLG_2<<4)+1 ;already print error message (for NP->PRN, FEED key)
ERR_CLR equ (FLG_2<<4)+2 ;just after clear calculation error
EP_FAIL equ (FLG_2<<4)+3 ;EEPROM fail flag
EP_ACCES equ (FLG_2<<4)+4 ;EEPROM busy flag
RATE_PROG equ (FLG_2<<4)+5 ;indicate enter into rate setting mode
EURO_PROG equ (FLG_2<<4)+6 ;indicate enter into euro rate setting mode
IC_PROG equ (FLG_2<<4)+7 ;used for view euro rate "by" + or "-"
ICON_MIN equ (FLG_ICON<<4)+0 ;
ICON_E equ (FLG_ICON<<4)+1 ;
ICON_M equ (FLG_ICON<<4)+2 ;
ICON_GT equ (FLG_ICON<<4)+3 ;
F_GTON equ (FLG_ICON<<4)+4 ;
F_ICPM equ (FLG_ICON<<4)+5 ;defined for [IC] key
F_EQU equ (FLG_ICON<<4)+6 ;
F_PEREXE equ (FLG_ICON<<4)+7 ;calculation for percent
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -