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

📄 ram.asm

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