Texas Instruments MSP50C6xx Calculator User Manual


 
C–– Efficiency
5-41Code Development Tools
Seven of the files are important to the functionality of this project. The Timer2
ISR (tim2_isr.asm) forms the basis for the RTC so it will be discussed first.
timer2_isr
mov *save_tim2_stat,STAT ;save status
mov *save_tim2_a0,a0 ;save a0
; timer fired so 1 second passed
; update the variable storing the seconds passed so far
mov a0, *seconds_passed
add a0, a0, 1
mov *seconds_passed, a0
mov a0,*save_tim2_a0 ;restore a0
mov STAT,*save_tim2_stat ;restore status
inte ;turn interrupts back on
iret
The Timer2 ISR is configured to fire at 1 second intervals. Each time the ISR
executes, it saves any registers that it will modify, increments the RAM location
seconds_passed, and restores the registers it modified.
The second important file is main_ram.irx. It is used to allocate RAM for
seconds_passed and for saving and restoring registers in the Timer2 ISR.
;****************************************************************
; MAIN_RAM.IRX
;
; Start of memory for MAIN module is defined in
; include ..\ram\ram.irx
;****************************************************************
; Timer 2 interrupt variables
save_tim2_stat equRAMSTART_CUSTOMER + 2 * 1
save_tim2_a0 equ save_tim2_stat + 2 * 1
seconds_passed equsave_tim2_a0 + 2 * 1
RAMSTART_CMM1 equseconds_passed
include cmm1_ram.irx
; End of RAM
RAMEND_CUSTOMER equRAMEND_CMM1
RAMLENGTH_CUSTOMER equ RAMEND_CUSTOMER RAMSTART_CUSTOMER
Any additional ram that is used in an ISR or in mainasm.asm should be
allocated here. RAM is allocated by making a new label and setting it equal to
the previous label plus an offset. A variable called some_variable could be
allocated by changing
seconds_passed equsave_tim2_a0 + 2 * 1
RAMSTART_CMM1 equseconds_passed
to
seconds_passed equsave_tim2_a0 + 2 * 1
some_variable equseconds_passed + 2 * 1
RAMSTART_CMM1 equsome_variable
The next important file is vroncof2.asm. Most of this file is used to support
standard C functionality and will not need to be changed. The part that will