OSDN Git Service

V2.0
[fast-forth/master.git] / mspregister.mac
1                 save
2                 listing off   ; kein Listing über diesen File
3
4 ;****************************************************************************
5 ;*                                                                          *
6 ;*   AS 1.41 - Datei REGMSP.INC von Alfred Arnold                           *
7 ;*                                                                          *
8 ;*   Sinn : enthält Makro- und Registerdefinitionen für den MSP430          *
9 ;*                                                                          *
10 ;*   letzte Änderungen : 2002-01-11                                         *
11 ;*                       2010/2011/2012 erweitert von Matthias Koch         *
12 ;*                                                                          *
13 ;****************************************************************************
14
15                 ifndef  regmspinc      ; verhindert Mehrfacheinbindung
16
17 regmspinc       equ     1
18
19                 if      (MOMCPUNAME<>"MSP430")
20                  fatal  "Falscher Prozessortyp eingestellt: nur MSP430 erlaubt!"
21                 endif
22
23                 if      MOMPASS=1
24                  message "MSP430-Register+Befehlsdefinitionen (C) 1996 Alfred Arnold"
25                 endif
26
27 ; Definitions for Instructions, Macros and Ports.
28
29 ;----------------------------------------------------------------------------
30 ; Arithmetik
31
32 adc             macro   op
33                 addc.attribute #0,op
34                 endm
35
36 dadc            macro   op
37                 dadd.attribute #0,op
38                 endm
39
40 dec             macro   op
41                 sub.attribute #1,op
42                 endm
43
44 decd            macro   op
45                 sub.attribute #2,op
46                 endm
47
48 inc             macro   op
49                 add.attribute #1,op
50                 endm
51
52 incd            macro   op
53                 add.attribute #2,op
54                 endm
55
56 sbc             macro   op
57                 subc.attribute #0,op
58                 endm
59
60 ;----------------------------------------------------------------------------
61 ; Logik
62
63 inv             macro   op
64                 xor.attribute #-1,op
65                 endm
66
67 rla             macro   op
68                 add.attribute op,op
69                 endm
70
71 rlc             macro   op
72                 addc.attribute op,op
73                 endm
74
75 ;----------------------------------------------------------------------------
76 ; Daten bewegen ;-)
77
78 clr             macro   op
79                 mov.attribute #0,op
80                 endm
81
82 clrc            macro
83                 bic     #1,sr
84                 endm
85
86 clrn            macro
87                 bic     #4,sr
88                 endm
89
90 clrz            macro
91                 bic     #2,sr
92                 endm
93
94 pop             macro   op         ; Muss hier noch ein Atribut anbringen ! Kann auch Bytes zurückladen...
95                 mov.attribute     @sp+,op
96                 endm
97
98 setc            macro
99                 bis     #1,sr
100                 endm
101
102 setn            macro
103                 bis     #4,sr
104                 endm
105
106 setz            macro
107                 bis     #2,sr
108                 endm
109
110 tst             macro   op
111                 cmp.attribute #0,op
112                 endm
113
114 ;----------------------------------------------------------------------------
115 ; Sprungbefehle
116
117 br              macro   op
118                 mov     op,pc
119                 endm
120
121 dint            macro
122                 bic     #8,sr
123                 endm
124
125 eint            macro
126                 bis     #8,sr
127                 endm
128
129 nop             macro         
130                 .word   04303h         ; mov #0, r3         
131                 endm
132
133 nop2            macro                  ; 1 Word, 2 Takte
134                 jmp $+2
135                 endm
136
137 nop3            macro                  ; 1 Word, 3 Takte
138                 MOV PC,PC
139                 endm
140
141 ret             macro
142                 mov     @sp+,pc
143                 endm
144
145 jlo             macro   label   ; unsigned
146                 jnc     label
147                 endm
148
149 jhs             macro   label   ; unsigned
150                 jc      label
151                 endm
152
153 jeq             macro   label
154                 jz      label
155                 endm
156
157 ; ================================================
158 ; Flags im Statusregister
159 ; ================================================
160 ; SR bits : only SR(11:0) are PUSHed by interrupts
161 ; ================================================
162 C             equ 0001h
163 Z             equ 0002h
164 N             equ 0004h
165 V             equ 0100h
166 GIE           equ 0008h
167 CPUOFF        equ 0010h
168 OSCOFF        equ 0020h
169 SCG0          equ 0040h
170 SCG1          equ 0080h
171 UF9           equ 0200h ; = SR(9) User Flag 1 used by ?NUMBER --> INTERPRET --> LITERAL to process double numbers, else free for use.  
172 UF10          equ 0400h ; = SR(10) User Flag 2  
173 UF11          equ 0800h ; = SR(11) User Flag 3  
174
175 ;----------------------------------------------------------------------------
176 ; Low-Power-Mode Bitmuster
177
178 LPM0          equ CPUOFF
179 LPM1          equ SCG0 + CPUOFF
180 LPM2          equ SCG1 + CPUOFF
181 LPM3          equ SCG1 + SCG0 + CPUOFF
182 LPM4          equ SCG1 + SCG0 + OSCOFF + CPUOFF
183
184 ;----------------------------------------------------------------------------
185
186                 endif                   ; von IFDEF...
187                 restore                 ; wieder erlauben
188   listing on