;-------------------------------------------------------------------------------
; MSP430 Assembler Code Template for use with TI Code Composer Studio
;
;
;-------------------------------------------------------------------------------
.cdecls C,LIST,"msp430.h" ; Include device header file
;-------------------------------------------------------------------------------
.def RESET ; Export program entry-point to
; make it known to linker.
;-------------------------------------------------------------------------------
.text ; Assemble into program memory.
.retain ; Override ELF conditional linking
; and retain current section.
.retainrefs ; And retain any sections that have
; references to current section.
;-------------------------------------------------------------------------------
RESET mov.w #__STACK_END,SP ; Initialize stackpointer
StopWDT mov.w #WDTPW|WDTHOLD,&WDTCTL ; Stop watchdog timer
.text ; program start
.global _main ; define entry point
_main:
NOP
mov.w #WDTPW+WDTHOLD,&WDTCTL ; stop watchdog timer
;Set the I/O port that controls the RED LED to an output.
; To do this set bit 0 in the P1DIR register. Leave all
; all other I/O lines as inputs
Call #SetIOPorts
Call #InitilizeDisplaySPI
Call #InitilizeDisplay
bic.b #01100001b, P2OUT
mov.b #01100001b, P2DIR
; echo peripheral swt
bis.b #00001100b, P1SEL
bis.b #00010000b, P2SEL
call #TimerSetUp
looptemp:
;mov.b #0xa5,R10
;call #SendSPI
;jmp looptemp
;bic #0X4100,&UCSCTL6
call #HalfSecondDelay
;bic.b #0X70,&UCSCTL1
;MOV #0X11FF,&UCSCTL2
;call #HalfSecondDelay
Mainloop:
bis.b #01100001b, P2OUT ;wait < 10 us
nop ;wait 10us
nop ;wait 10us
nop ;wait 10us
nop ;wait 10us
nop ;wait 10us
nop ;wait 10us
nop ;wait 10us
nop ;wait 10us
nop ;wait 10us
nop ;wait 10us
nop ;wait 10us
bic.b #01100001b, P2OUT ;signal started
WaitDistance:
bit.w #CCI,&TA2CCTL1
jz WaitDistance
mov.w #0xFFFF,&TA2CCR0
mov.w #0xFFFF,&TA0CCR0
WaitLM:
bit.w #CCI,&TA2CCTL1
jnz WaitLM
WaitLR:
bit.w #CCI,&TA0CCTL1
jnz WaitLR
WaitTillDistanceIsLowLeft:
bit.w #CCI,&TA0CCTL2
jnz WaitTillDistanceIsLowLeft
mov.w TA2CCR1, R13
mov.w TA0CCR2, R7
mov.w TA0CCR1, R8
mov.w #0x0000,&TA2CCR0
mov.w #0x0000,&TA0CCR0
mov #0x1f,R10
call #SendSPI
mov #0x01,R10
call #SendSPI
mov #0x00,R10
call #SendSPI
rla.w R13
rla.w R13
bic.w #000000000001111b, R13
mov #0x5f,R10
call #SendSPI
mov.b LookUpTable(R13), R10
call #SendSPI
add.b #1, R13
mov.b LookUpTable(R13), R10
call #SendSPI
mov #0x0e, R10
call #SendSPI
mov #0x02,R10
call #SendSPI
add.b #1, R13
mov.b LookUpTable(R13), R10
call #SendSPI
add.b #1, R13
mov.b LookUpTable(R13), R10
call #SendSPI
mov #0x0d, R10
call #SendSPI
mov #0x04,R10
call #SendSPIf
call #HalfSecondDelay
jmp Mainloop
NOP
TimerSetUp:
; SMCLK, /8, Up mode, no interrupts
mov.w #0000001011010100b, &TA0CTL ;left right
mov.w #0000001011010100b, &TA2CTL
; Capture on faling, CCIxA, Synchronous, Capture, No interrupts
mov.w #1000100100000000b, &TA0CCTL2 ;left capture
mov.w #1000100100000000b, &TA0CCTL1 ;right capture
mov.w #1000100100000000b, &TA2CCTL1 ;front capture
mov.w #0000000000000111b, &TA0EX0
mov.w #0000000000000111b, &TA2EX0
ret
InitilizeDisplay:
bic.b #01000000b,P1OUT ;reset the display
call #HalfSecondDelay ;only need 20us but I have a half second delay.
bis.b #01000000b,P1OUT
mov.a #DisplayInitilizationData,R4
InitDisplayMore:
bic.b #00001000b,P2OUT
mov #0x1f,R10
call #SendSPI
mov.b @R4+,R5
cmp.b #0xff,R5
jz InitDisplayDone
mov.b R5,R10
and.b #0x0f,R10
call #SendSPI
rra.b R5
rra.b R5
rra.b R5
rra.b R5
mov.b R5,R10
and.b #0x0f,R10
call #SendSPI
bis.b #00001000b,P2OUT
jmp InitDisplayMore
InitDisplayDone:
bis.b #00001000b,P2OUT
ret
DisplayInitilizationData:
.byte 0x3A,0x01f,0x09,0x06,0x1E,0x39,0x1B,0x6E,0x56,0x7A,0x38,0x01,0x0F,0x39,0x56,0x70,0x38,0xff
Displaynumbers:
mov.a #DisplayNumberData,R4
bic.b #00001000b,P2OUT
DisplaynumbersMore:
mov.b @R4+,R10
cmp.b #0xff,R10
jz DisplaynumbersDone
call #SendSPI
jmp DisplaynumbersMore
DisplaynumbersDone:
bis.b #00001000b,P2OUT
ret
DisplayNumberData:
.byte 0x5f,0x01,0x03,0x02,0x03,0xff
DisplayLetters:
mov.a #DisplayLettersData,R4
bic.b #00001000b,P2OUT
DisplayLettersMore:
mov.b @R4+,R10
cmp.b #0xff,R10
jz DisplayLettersDone
call #SendSPI
jmp DisplayLettersMore
DisplayLettersDone:
bis.b #00001000b,P2OUT
ret
DisplayLettersData:
.byte 0x5f,0x03,0x05,0x09,0x06,0x0D,0x06,0x0F,0x06,0x0E,0x06,0x05,0x06,0xff
HalfSecondDelay:
mov #0x1,R14
OuterTimercountLoop:
mov #0xffff,R15
TimercountLoop:
nop
sub #1,R15
jnz TimercountLoop
sub #1,R14
jnz OuterTimercountLoop
ret
SetIOPorts:
; IO ports need to be defined as Inputs and outputs based on the development board
;
; PORT 1 bit direction function
; 0 output LED on Developmet board
; 1 input (pullup) Switch 2 on development board
; 2 input right distance sensor
; 3 input left distance sensor
; 4 output left pwm
; 5 output right pwm
; 6 output Display reset
; 7 input EzEET_uart
mov.b #00000011b,P1OUT ;set up all default output values and pullups
mov.b #00000010b,P1REN ;enable pull up/dn resistors
mov.b #01110001b,P1DIR ;set all pin directions per definition
; PORT 2 bit direction function
; 0 output Distance Right Trigger
; 1 input (pullup) Switch 1 on development board
; 2 output Direction of right motor
; 3 output Chip Select for display
; 4 input front distance sensor
; 5 output front distance sensor trigger
; 6 output left distance sensor trigger
; 7 output direction of left motor
mov.b #00001010b,P2OUT ;set up all default output values and pullups
mov.b #00000010b,P2REN ;enable pull up/dn resistors
mov.b #11101101b,P2DIR ;set all pin directions per definition
; PORT 3 bit direction function
; 0 output MOSI (also LED 1)
; 1 input MISO (also LED 2)
; 2 output SCLK (also LED 3)
; 3 output UART Tx (also LED 4)
; 4 input UART Rx (also LED 5)
; 5 output LED 6
; 6 output LED 7
; 7 output LED 8
mov.b #00000110b,P3OUT ;set up all default output values and pullups
mov.b #00000000b,P3REN ;enable pull up/dn resistors
mov.b #11101101b,P3DIR ;set all pin directions per definition
mov.b #00000111b,P3SEL
; PORT 4 bit direction function
; PORT 5 bit direction function
; PORT 6 bit direction function
; PORT 7 bit direction function
ret
InitilizeDisplaySPI:
bic.b #00001000b, &P2OUT ;Chip Select low initializer
mov.b #01000000b, &P1OUT ;Reset high initializer
mov.b #00001000b, &P2DIR ;Chip Select Output mode
mov.b #01000000b, &P1DIR ;Reset Output mode
mov.b #00000111b, &P3SEL ;SCLK, MOSI, MISO
mov.b #00000001b, UCB0CTL1 ;Allow modifications
mov.b #01001001b, &UCB0CTL0 ;Communication parameters
mov.b #11000001b, &UCB0CTL1 ;More parameters
mov.b #0x0B, &UCB0BR0 ;Setting baud rate to achieve 100 kHz clock
mov.b #0x00, &UCB0BR1
bic.b #00000001b, UCB0CTL1 ;Enable serial
bic.b #01000000b, &P1DIR ;Pull reset low
call #HalfSecondDelay ;Wait
; bic.b #01000000b, &P1DIR ;Pull reset high
nop
ret
SendSPI:
bis.b #01000000b, &P1DIR ;set Chip Select
mov.b R10, &UCB0TXBUF
CheckSTATUS:
bit.b #1, &UCB0STAT
jnz CheckSTATUS
nop
ret
nop
LookUpTable:
.byte 0x00, 0x03, 0x00, 0x03 ;transforming values from the timer to real value
.byte 0x00, 0x03, 0x00, 0x03
.byte 0x00, 0x03, 0x00, 0x03
.byte 0x00, 0x03, 0x00, 0x03
.byte 0x00, 0x03, 0x00, 0x03
.byte 0x00, 0x03, 0x00, 0x03
.byte 0x00, 0x03, 0x00, 0x03
.byte 0x00, 0x03, 0x00, 0x03
.byte 0x00, 0x03, 0x00, 0x03
.byte 0x00, 0x03, 0x00, 0x03
.byte 0x00, 0x03, 0x01, 0x03
.byte 0x00, 0x03, 0x01, 0x03
.byte 0x00, 0x03, 0x01, 0x03
.byte 0x00, 0x03, 0x01, 0x03
.byte 0x00, 0x03, 0x01, 0x03
.byte 0x00, 0x03, 0x01, 0x03
.byte 0x00, 0x03, 0x01, 0x03
.byte 0x00, 0x03, 0x01, 0x03
.byte 0x00, 0x03, 0x01, 0x03
.byte 0x00, 0x03, 0x02, 0x03
.byte 0x00, 0x03, 0x02, 0x03
.byte 0x00, 0x03, 0x02, 0x03
.byte 0x00, 0x03, 0x02, 0x03
.byte 0x00, 0x03, 0x02, 0x03
.byte 0x00, 0x03, 0x02, 0x03
.byte 0x00, 0x03, 0x02, 0x03
.byte 0x00, 0x03, 0x02, 0x03
.byte 0x00, 0x03, 0x02, 0x03
.byte 0x00, 0x03, 0x03, 0x03
.byte 0x00, 0x03, 0x03, 0x03
.byte 0x00, 0x03, 0x03, 0x03
.byte 0x00, 0x03, 0x03, 0x03
.byte 0x00, 0x03, 0x03, 0x03
.byte 0x00, 0x03, 0x03, 0x03
.byte 0x00, 0x03, 0x03, 0x03
.byte 0x00, 0x03, 0x03, 0x03
.byte 0x00, 0x03, 0x03, 0x03
.byte 0x00, 0x03, 0x04, 0x03
.byte 0x00, 0x03, 0x04, 0x03
.byte 0x00, 0x03, 0x04, 0x03
.byte 0x00, 0x03, 0x04, 0x03
.byte 0x00, 0x03, 0x04, 0x03
.byte 0x00, 0x03, 0x04, 0x03
.byte 0x00, 0x03, 0x04, 0x03
.byte 0x00, 0x03, 0x04, 0x03
.byte 0x00, 0x03, 0x04, 0x03
.byte 0x00, 0x03, 0x05, 0x03
.byte 0x00, 0x03, 0x05, 0x03
.byte 0x00, 0x03, 0x05, 0x03
.byte 0x00, 0x03, 0x05, 0x03
.byte 0x00, 0x03, 0x05, 0x03
.byte 0x00, 0x03, 0x05, 0x03
.byte 0x00, 0x03, 0x05, 0x03
.byte 0x00, 0x03, 0x05, 0x03
.byte 0x00, 0x03, 0x05, 0x03
.byte 0x00, 0x03, 0x06, 0x03
.byte 0x00, 0x03, 0x06, 0x03
.byte 0x00, 0x03, 0x06, 0x03
.byte 0x00, 0x03, 0x06, 0x03
.byte 0x00, 0x03, 0x06, 0x03
.byte 0x00, 0x03, 0x06, 0x03
.byte 0x00, 0x03, 0x06, 0x03
.byte 0x00, 0x03, 0x06, 0x03
.byte 0x00, 0x03, 0x06, 0x03
.byte 0x00, 0x03, 0x07, 0x03
.byte 0x00, 0x03, 0x07, 0x03
.byte 0x00, 0x03, 0x07, 0x03
.byte 0x00, 0x03, 0x07, 0x03
.byte 0x00, 0x03, 0x07, 0x03
.byte 0x00, 0x03, 0x07, 0x03
.byte 0x00, 0x03, 0x07, 0x03
.byte 0x00, 0x03, 0x07, 0x03
.byte 0x00, 0x03, 0x07, 0x03
.byte 0x00, 0x03, 0x08, 0x03
.byte 0x00, 0x03, 0x08, 0x03
.byte 0x00, 0x03, 0x08, 0x03
.byte 0x00, 0x03, 0x08, 0x03
.byte 0x00, 0x03, 0x08, 0x03
.byte 0x00, 0x03, 0x08, 0x03
.byte 0x00, 0x03, 0x08, 0x03
.byte 0x00, 0x03, 0x08, 0x03
.byte 0x00, 0x03, 0x08, 0x03
.byte 0x00, 0x03, 0x09, 0x03
.byte 0x00, 0x03, 0x09, 0x03
.byte 0x00, 0x03, 0x09, 0x03
.byte 0x00, 0x03, 0x09, 0x03
.byte 0x00, 0x03, 0x09, 0x03
.byte 0x00, 0x03, 0x09, 0x03
.byte 0x00, 0x03, 0x09, 0x03
.byte 0x00, 0x03, 0x09, 0x03
.byte 0x00, 0x03, 0x09, 0x03
.byte 0x00, 0x03, 0x09, 0x03
.byte 0x01, 0x03, 0x00, 0x03
.byte 0x01, 0x03, 0x00, 0x03
.byte 0x01, 0x03, 0x00, 0x03
.byte 0x01, 0x03, 0x00, 0x03
.byte 0x01, 0x03, 0x00, 0x03
.byte 0x01, 0x03, 0x00, 0x03
.byte 0x01, 0x03, 0x00, 0x03
.byte 0x01, 0x03, 0x00, 0x03
.byte 0x01, 0x03, 0x00, 0x03
.byte 0x01, 0x03, 0x01, 0x03
.byte 0x01, 0x03, 0x01, 0x03
.byte 0x01, 0x03, 0x01, 0x03
.byte 0x01, 0x03, 0x01, 0x03
.byte 0x01, 0x03, 0x01, 0x03
.byte 0x01, 0x03, 0x01, 0x03
.byte 0x01, 0x03, 0x01, 0x03
.byte 0x01, 0x03, 0x01, 0x03
.byte 0x01, 0x03, 0x01, 0x03
.byte 0x01, 0x03, 0x02, 0x03
.byte 0x01, 0x03, 0x02, 0x03
.byte 0x01, 0x03, 0x02, 0x03
.byte 0x01, 0x03, 0x02, 0x03
.byte 0x01, 0x03, 0x02, 0x03
.byte 0x01, 0x03, 0x02, 0x03
.byte 0x01, 0x03, 0x02, 0x03
.byte 0x01, 0x03, 0x02, 0x03
.byte 0x01, 0x03, 0x02, 0x03
.byte 0x01, 0x03, 0x03, 0x03
.byte 0x01, 0x03, 0x03, 0x03
.byte 0x01, 0x03, 0x03, 0x03
.byte 0x01, 0x03, 0x03, 0x03
.byte 0x01, 0x03, 0x03, 0x03
.byte 0x01, 0x03, 0x03, 0x03
.byte 0x01, 0x03, 0x03, 0x03
.byte 0x01, 0x03, 0x03, 0x03
.byte 0x01, 0x03, 0x03, 0x03
.byte 0x01, 0x03, 0x04, 0x03
.byte 0x01, 0x03, 0x04, 0x03
.byte 0x01, 0x03, 0x04, 0x03
.byte 0x01, 0x03, 0x04, 0x03
.byte 0x01, 0x03, 0x04, 0x03
.byte 0x01, 0x03, 0x04, 0x03
.byte 0x01, 0x03, 0x04, 0x03
.byte 0x01, 0x03, 0x04, 0x03
.byte 0x01, 0x03, 0x04, 0x03
.byte 0x01, 0x03, 0x05, 0x03
.byte 0x01, 0x03, 0x05, 0x03
.byte 0x01, 0x03, 0x05, 0x03
.byte 0x01, 0x03, 0x05, 0x03
.byte 0x01, 0x03, 0x05, 0x03
.byte 0x01, 0x03, 0x05, 0x03
.byte 0x01, 0x03, 0x05, 0x03
.byte 0x01, 0x03, 0x05, 0x03
.byte 0x01, 0x03, 0x05, 0x03
.byte 0x01, 0x03, 0x06, 0x03
.byte 0x01, 0x03, 0x06, 0x03
.byte 0x01, 0x03, 0x06, 0x03
.byte 0x01, 0x03, 0x06, 0x03
.byte 0x01, 0x03, 0x06, 0x03
.byte 0x01, 0x03, 0x06, 0x03
.byte 0x01, 0x03, 0x06, 0x03
.byte 0x01, 0x03, 0x06, 0x03
.byte 0x01, 0x03, 0x06, 0x03
.byte 0x01, 0x03, 0x07, 0x03
.byte 0x01, 0x03, 0x07, 0x03
.byte 0x01, 0x03, 0x07, 0x03
.byte 0x01, 0x03, 0x07, 0x03
.byte 0x01, 0x03, 0x07, 0x03
.byte 0x01, 0x03, 0x07, 0x03
.byte 0x01, 0x03, 0x07, 0x03
.byte 0x01, 0x03, 0x07, 0x03
.byte 0x01, 0x03, 0x07, 0x03
.byte 0x01, 0x03, 0x08, 0x03
.byte 0x01, 0x03, 0x08, 0x03
.byte 0x01, 0x03, 0x08, 0x03
.byte 0x01, 0x03, 0x08, 0x03
.byte 0x01, 0x03, 0x08, 0x03
.byte 0x01, 0x03, 0x08, 0x03
.byte 0x01, 0x03, 0x08, 0x03
.byte 0x01, 0x03, 0x08, 0x03
.byte 0x01, 0x03, 0x08, 0x03
.byte 0x01, 0x03, 0x08, 0x03
.byte 0x01, 0x03, 0x09, 0x03
.byte 0x01, 0x03, 0x09, 0x03
.byte 0x01, 0x03, 0x09, 0x03
.byte 0x01, 0x03, 0x09, 0x03
.byte 0x01, 0x03, 0x09, 0x03
.byte 0x01, 0x03, 0x09, 0x03
.byte 0x01, 0x03, 0x09, 0x03
.byte 0x01, 0x03, 0x09, 0x03
.byte 0x01, 0x03, 0x09, 0x03
.byte 0x02, 0x03, 0x00, 0x03
.byte 0x02, 0x03, 0x00, 0x03
.byte 0x02, 0x03, 0x00, 0x03
.byte 0x02, 0x03, 0x00, 0x03
.byte 0x02, 0x03, 0x00, 0x03
.byte 0x02, 0x03, 0x00, 0x03
.byte 0x02, 0x03, 0x00, 0x03
.byte 0x02, 0x03, 0x00, 0x03
.byte 0x02, 0x03, 0x00, 0x03
.byte 0x02, 0x03, 0x01, 0x03
.byte 0x02, 0x03, 0x01, 0x03
.byte 0x02, 0x03, 0x01, 0x03
.byte 0x02, 0x03, 0x01, 0x03
.byte 0x02, 0x03, 0x01, 0x03
.byte 0x02, 0x03, 0x01, 0x03
.byte 0x02, 0x03, 0x01, 0x03
.byte 0x02, 0x03, 0x01, 0x03
.byte 0x02, 0x03, 0x01, 0x03
.byte 0x02, 0x03, 0x02, 0x03
.byte 0x02, 0x03, 0x02, 0x03
.byte 0x02, 0x03, 0x02, 0x03
.byte 0x02, 0x03, 0x02, 0x03
.byte 0x02, 0x03, 0x02, 0x03
.byte 0x02, 0x03, 0x02, 0x03
.byte 0x02, 0x03, 0x02, 0x03
.byte 0x02, 0x03, 0x02, 0x03
.byte 0x02, 0x03, 0x02, 0x03
.byte 0x02, 0x03, 0x03, 0x03
.byte 0x02, 0x03, 0x03, 0x03
.byte 0x02, 0x03, 0x03, 0x03
.byte 0x02, 0x03, 0x03, 0x03
.byte 0x02, 0x03, 0x03, 0x03
.byte 0x02, 0x03, 0x03, 0x03
.byte 0x02, 0x03, 0x03, 0x03
.byte 0x02, 0x03, 0x03, 0x03
.byte 0x02, 0x03, 0x03, 0x03
.byte 0x02, 0x03, 0x04, 0x03
.byte 0x02, 0x03, 0x04, 0x03
.byte 0x02, 0x03, 0x04, 0x03
.byte 0x02, 0x03, 0x04, 0x03
.byte 0x02, 0x03, 0x04, 0x03
.byte 0x02, 0x03, 0x04, 0x03
.byte 0x02, 0x03, 0x04, 0x03
.byte 0x02, 0x03, 0x04, 0x03
.byte 0x02, 0x03, 0x04, 0x03
.byte 0x02, 0x03, 0x05, 0x03
.byte 0x02, 0x03, 0x05, 0x03
.byte 0x02, 0x03, 0x05, 0x03
.byte 0x02, 0x03, 0x05, 0x03
.byte 0x02, 0x03, 0x05, 0x03
.byte 0x02, 0x03, 0x05, 0x03
.byte 0x02, 0x03, 0x05, 0x03
.byte 0x02, 0x03, 0x05, 0x03
.byte 0x02, 0x03, 0x05, 0x03
.byte 0x02, 0x03, 0x06, 0x03
.byte 0x02, 0x03, 0x06, 0x03
.byte 0x02, 0x03, 0x06, 0x03
.byte 0x02, 0x03, 0x06, 0x03
.byte 0x02, 0x03, 0x06, 0x03
.byte 0x02, 0x03, 0x06, 0x03
.byte 0x02, 0x03, 0x06, 0x03
.byte 0x02, 0x03, 0x06, 0x03
.byte 0x02, 0x03, 0x06, 0x03
.byte 0x02, 0x03, 0x07, 0x03
.byte 0x02, 0x03, 0x07, 0x03
.byte 0x02, 0x03, 0x07, 0x03
.byte 0x02, 0x03, 0x07, 0x03
.byte 0x02, 0x03, 0x07, 0x03
.byte 0x02, 0x03, 0x07, 0x03
.byte 0x02, 0x03, 0x07, 0x03
.byte 0x02, 0x03, 0x07, 0x03
.byte 0x02, 0x03, 0x07, 0x03
.byte 0x02, 0x03, 0x07, 0x03
.byte 0x02, 0x03, 0x08, 0x03
.byte 0x02, 0x03, 0x08, 0x03
.byte 0x02, 0x03, 0x08, 0x03
.byte 0x02, 0x03, 0x08, 0x03
.byte 0x02, 0x03, 0x08, 0x03
.byte 0x02, 0x03, 0x08, 0x03
.byte 0x02, 0x03, 0x08, 0x03
.byte 0x02, 0x03, 0x08, 0x03
.byte 0x02, 0x03, 0x08, 0x03
.byte 0x02, 0x03, 0x09, 0x03
.byte 0x02, 0x03, 0x09, 0x03
.byte 0x02, 0x03, 0x09, 0x03
.byte 0x02, 0x03, 0x09, 0x03
.byte 0x02, 0x03, 0x09, 0x03
.byte 0x02, 0x03, 0x09, 0x03
.byte 0x02, 0x03, 0x09, 0x03
.byte 0x02, 0x03, 0x09, 0x03
.byte 0x02, 0x03, 0x09, 0x03
.byte 0x03, 0x03, 0x00, 0x03
.byte 0x03, 0x03, 0x00, 0x03
.byte 0x03, 0x03, 0x00, 0x03
.byte 0x03, 0x03, 0x00, 0x03
.byte 0x03, 0x03, 0x00, 0x03
.byte 0x03, 0x03, 0x00, 0x03
.byte 0x03, 0x03, 0x00, 0x03
.byte 0x03, 0x03, 0x00, 0x03
.byte 0x03, 0x03, 0x00, 0x03
.byte 0x03, 0x03, 0x01, 0x03
.byte 0x03, 0x03, 0x01, 0x03
.byte 0x03, 0x03, 0x01, 0x03
.byte 0x03, 0x03, 0x01, 0x03
.byte 0x03, 0x03, 0x01, 0x03
.byte 0x03, 0x03, 0x01, 0x03
.byte 0x03, 0x03, 0x01, 0x03
.byte 0x03, 0x03, 0x01, 0x03
.byte 0x03, 0x03, 0x01, 0x03
.byte 0x03, 0x03, 0x02, 0x03
.byte 0x03, 0x03, 0x02, 0x03
.byte 0x03, 0x03, 0x02, 0x03
.byte 0x03, 0x03, 0x02, 0x03
.byte 0x03, 0x03, 0x02, 0x03
.byte 0x03, 0x03, 0x02, 0x03
.byte 0x03, 0x03, 0x02, 0x03
.byte 0x03, 0x03, 0x02, 0x03
.byte 0x03, 0x03, 0x02, 0x03
.byte 0x03, 0x03, 0x03, 0x03
.byte 0x03, 0x03, 0x03, 0x03
.byte 0x03, 0x03, 0x03, 0x03
.byte 0x03, 0x03, 0x03, 0x03
.byte 0x03, 0x03, 0x03, 0x03
.byte 0x03, 0x03, 0x03, 0x03
.byte 0x03, 0x03, 0x03, 0x03
.byte 0x03, 0x03, 0x03, 0x03
.byte 0x03, 0x03, 0x03, 0x03
.byte 0x03, 0x03, 0x04, 0x03
.byte 0x03, 0x03, 0x04, 0x03
.byte 0x03, 0x03, 0x04, 0x03
.byte 0x03, 0x03, 0x04, 0x03
.byte 0x03, 0x03, 0x04, 0x03
.byte 0x03, 0x03, 0x04, 0x03
.byte 0x03, 0x03, 0x04, 0x03
.byte 0x03, 0x03, 0x04, 0x03
.byte 0x03, 0x03, 0x04, 0x03
.byte 0x03, 0x03, 0x05, 0x03
.byte 0x03, 0x03, 0x05, 0x03
.byte 0x03, 0x03, 0x05, 0x03
.byte 0x03, 0x03, 0x05, 0x03
.byte 0x03, 0x03, 0x05, 0x03
.byte 0x03, 0x03, 0x05, 0x03
.byte 0x03, 0x03, 0x05, 0x03
.byte 0x03, 0x03, 0x05, 0x03
.byte 0x03, 0x03, 0x05, 0x03
.byte 0x03, 0x03, 0x06, 0x03
.byte 0x03, 0x03, 0x06, 0x03
.byte 0x03, 0x03, 0x06, 0x03
.byte 0x03, 0x03, 0x06, 0x03
.byte 0x03, 0x03, 0x06, 0x03
.byte 0x03, 0x03, 0x06, 0x03
.byte 0x03, 0x03, 0x06, 0x03
.byte 0x03, 0x03, 0x06, 0x03
.byte 0x03, 0x03, 0x06, 0x03
.byte 0x03, 0x03, 0x06, 0x03
.byte 0x03, 0x03, 0x07, 0x03
.byte 0x03, 0x03, 0x07, 0x03
.byte 0x03, 0x03, 0x07, 0x03
.byte 0x03, 0x03, 0x07, 0x03
.byte 0x03, 0x03, 0x07, 0x03
.byte 0x03, 0x03, 0x07, 0x03
.byte 0x03, 0x03, 0x07, 0x03
.byte 0x03, 0x03, 0x07, 0x03
.byte 0x03, 0x03, 0x07, 0x03
.byte 0x03, 0x03, 0x08, 0x03
.byte 0x03, 0x03, 0x08, 0x03
.byte 0x03, 0x03, 0x08, 0x03
.byte 0x03, 0x03, 0x08, 0x03
.byte 0x03, 0x03, 0x08, 0x03
.byte 0x03, 0x03, 0x08, 0x03
.byte 0x03, 0x03, 0x08, 0x03
.byte 0x03, 0x03, 0x08, 0x03
.byte 0x03, 0x03, 0x08, 0x03
.byte 0x03, 0x03, 0x09, 0x03
.byte 0x03, 0x03, 0x09, 0x03
.byte 0x03, 0x03, 0x09, 0x03
.byte 0x03, 0x03, 0x09, 0x03
.byte 0x03, 0x03, 0x09, 0x03
.byte 0x03, 0x03, 0x09, 0x03
.byte 0x03, 0x03, 0x09, 0x03
.byte 0x03, 0x03, 0x09, 0x03
.byte 0x03, 0x03, 0x09, 0x03
.byte 0x04, 0x03, 0x00, 0x03
;-------------------------------------------------------------------------------
; Stack Pointer definition
;-------------------------------------------------------------------------------
.global __STACK_END
.sect .stack
;-------------------------------------------------------------------------------
; Interrupt Vectors
;-------------------------------------------------------------------------------
.sect ".reset" ; MSP430 RESET Vector
.short RESET