~arcachofo/simulide/1.1.0

« back to all changes in this revision

Viewing changes to resources/data/codeeditor/tools/avra/tn4def.inc

  • Committer: arcachofo
  • Date: 2021-01-01 14:23:42 UTC
  • Revision ID: arcachofo@simulide.com-20210101142342-ozfljnll44g5lbl3
Initial Commit 0.5.15-RC3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
;
 
2
;    Copyright (C) 2013  Milan Kupcevic
 
3
;
 
4
;    You can redistribute and/or modify this file under the
 
5
;    terms of the GNU General Public License version 2, or
 
6
;    (at your option) any later version, as published by
 
7
;    the Free Software Foundation.
 
8
;
 
9
;    This file is distributed in the hope that it will be useful,
 
10
;    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
;    GNU General Public License for more details.
 
13
;
 
14
;    You should have received a copy of the GNU General Public License
 
15
;    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
16
;
 
17
;
 
18
; Based on ATtiny4/5/9/10 Datasheet 8127F-AVR-02/2013.
 
19
;
 
20
 
 
21
.device ATtiny4
 
22
 
 
23
.equ SIGNATURE_000 = 0x1e
 
24
.equ SIGNATURE_001 = 0x8f
 
25
.equ SIGNATURE_002 = 0x0a
 
26
 
 
27
; Port B Input Pins
 
28
.equ PINB  = 0x00
 
29
.equ PINB0 = 0
 
30
.equ PINB1 = 1
 
31
.equ PINB2 = 2
 
32
.equ PINB3 = 3
 
33
 
 
34
; Port B Data Direction Register
 
35
.equ DDRB  = 0x01
 
36
.equ DDRB0 = 0
 
37
.equ DDB0  = 0
 
38
.equ DDRB1 = 1
 
39
.equ DDB1  = 1
 
40
.equ DDRB2 = 2
 
41
.equ DDB2  = 2
 
42
.equ DDRB3 = 3
 
43
.equ DDB3  = 3
 
44
 
 
45
; Port B Data Register
 
46
.equ PORTB  = 0x02
 
47
.equ PORTB0 = 0
 
48
.equ PB0 = 0
 
49
.equ PORTB1 = 1
 
50
.equ PB1 = 1
 
51
.equ PORTB2 = 2
 
52
.equ PB2 = 2
 
53
.equ PORTB3 = 3
 
54
.equ PB3 = 3
 
55
 
 
56
; Port B Pull-up Enable Control Register
 
57
.equ PUEB  = 0x03
 
58
.equ PUEB0 = 0
 
59
.equ PUEB1 = 1
 
60
.equ PUEB2 = 2
 
61
.equ PUEB3 = 3
 
62
 
 
63
; Port Control Register
 
64
.equ PORTCR = 0x0c
 
65
.equ BBMB   = 1
 
66
 
 
67
; Pin Change Mask Register
 
68
.equ PCMSK  = 0x10
 
69
.equ PCINT0 = 0
 
70
.equ PCINT1 = 1
 
71
.equ PCINT2 = 2
 
72
.equ PCINT3 = 3
 
73
 
 
74
; Pin Change Interrupt Flag Register
 
75
.equ PCIFR = 0x11
 
76
.equ PCIF0 = 0
 
77
 
 
78
; Pin Change Interrupt Control Register
 
79
.equ PCICR = 0x12
 
80
.equ PCIE0 = 0
 
81
 
 
82
; External Interrupt Mask Register
 
83
.equ EIMSK = 0x13
 
84
.equ INT0  = 0
 
85
 
 
86
; External Interrupt Flag Register
 
87
.equ EIFR  = 0x14
 
88
.equ INTF0 = 0
 
89
 
 
90
; External Interrupt Control Register A
 
91
.equ EICRA = 0x15
 
92
.equ ISC00 = 0
 
93
.equ ISC01 = 1
 
94
 
 
95
; Digital Input Disable Register 0
 
96
.equ DIDR0 = 0x17
 
97
.equ AIN0D = 0
 
98
.equ AIN1D = 1
 
99
 
 
100
; Analog Comparator Control and Status Register
 
101
.equ ACSR  = 0x1f
 
102
.equ ACIS0 = 0
 
103
.equ ACIS1 = 1
 
104
.equ ACIC  = 2
 
105
.equ ACIE  = 3
 
106
.equ ACI   = 4
 
107
.equ ACO   = 5
 
108
.equ ACD   = 7
 
109
 
 
110
; Input Capture Register 0
 
111
.equ ICR0L = 0x22
 
112
.equ ICR0H = 0x23
 
113
 
 
114
; Output Compare Register 0 B
 
115
.equ OCR0BL = 0x24
 
116
.equ OCR0BH = 0x25
 
117
 
 
118
; Output Compare Register 0 A
 
119
.equ OCR0AL = 0x26
 
120
.equ OCR0AH = 0x27
 
121
 
 
122
; Timer/Counter0
 
123
.equ TCNT0L = 0x28
 
124
.equ TCNT0H = 0x29
 
125
 
 
126
; Timer/Counter Interrupt Flag Register 0
 
127
.equ TIFR0 = 0x2a
 
128
.equ TOV0  = 0
 
129
.equ OCF0A = 1
 
130
.equ OCF0B = 2
 
131
.equ ICF0  = 5
 
132
 
 
133
; Timer/Counter Interrupt Mask Register 0
 
134
.equ TIMSK0 = 0x2b
 
135
.equ TOIE0  = 0
 
136
.equ OCIE0A = 1
 
137
.equ OCIE0B = 2
 
138
.equ ICIE0  = 5
 
139
 
 
140
; Timer/Counter0 Control Register C
 
141
.equ TCCR0C = 0x2c
 
142
.equ FOC0B  = 6
 
143
.equ FOC0A  = 7
 
144
 
 
145
; Timer/Counter0 Control Register B
 
146
.equ TCCR0B = 0x2d
 
147
.equ CS00   = 0
 
148
.equ CS01   = 1
 
149
.equ CS02   = 2
 
150
.equ WGM02  = 3
 
151
.equ WGM03  = 4
 
152
.equ ICES0  = 6
 
153
.equ ICNC0  = 7
 
154
 
 
155
; Timer/Counter0 Control Register A
 
156
.equ TCCR0A = 0x2e
 
157
.equ WGM00  = 0
 
158
.equ WGM01  = 1
 
159
.equ COM0B0 = 4
 
160
.equ COM0B1 = 5
 
161
.equ COM0A0 = 6
 
162
.equ COM0A1 = 7
 
163
 
 
164
; General Timer/Counter Control Register
 
165
.equ GTCCR = 0x2f
 
166
.equ PSR   = 0
 
167
.equ TSM   = 7
 
168
 
 
169
; Watchdog Timer Control and Status Register
 
170
.equ WDTCSR = 0x31
 
171
.equ WDP0   = 0
 
172
.equ WDP1   = 1
 
173
.equ WDP2   = 2
 
174
.equ WDE    = 3
 
175
.equ WDP3   = 5
 
176
.equ WDIE   = 6
 
177
.equ WDIF   = 7
 
178
 
 
179
; Non-Volatile Memory Control and Status Register
 
180
.equ NVMCSR = 0x32
 
181
.equ NVMBSY = 7
 
182
 
 
183
; Non-Volatile Memory Command Register
 
184
.equ NVMCMD  = 0x33
 
185
.equ NVMCMD0 = 0
 
186
.equ NVMCMD1 = 1
 
187
.equ NVMCMD2 = 2
 
188
.equ NVMCMD3 = 3
 
189
.equ NVMCMD4 = 4
 
190
.equ NVMCMD5 = 5
 
191
 
 
192
; Vcc Level Monitoring Control and Status Register
 
193
.equ VLMCSR = 0x34
 
194
.equ VLM0   = 0
 
195
.equ VLM1   = 1
 
196
.equ VLM2   = 2
 
197
.equ VLMIE  = 6
 
198
.equ VLMF   = 7
 
199
 
 
200
; Power Reduction Register
 
201
.equ PRR    = 0x35
 
202
.equ PRTIM0 = 0
 
203
.equ PRADC  = 1
 
204
 
 
205
; Clock Prescale Register
 
206
.equ CLKPSR = 0x36
 
207
.equ CLKPS0 = 0
 
208
.equ CLKPS1 = 1
 
209
.equ CLKPS2 = 2
 
210
.equ CLKPS3 = 3
 
211
 
 
212
; Clock Main Settings Register
 
213
.equ CLKMSR = 0x37
 
214
.equ CLKMS0 = 0
 
215
.equ CLKMS1 = 1
 
216
 
 
217
; Oscillator Calibration Register
 
218
.equ OSCCAL = 0x39
 
219
.equ CAL0   = 0
 
220
.equ CAL1   = 1
 
221
.equ CAL2   = 2
 
222
.equ CAL3   = 3
 
223
.equ CAL4   = 4
 
224
.equ CAL5   = 5
 
225
.equ CAL6   = 6
 
226
.equ CAL7   = 7
 
227
 
 
228
; Sleep Mode Control Register
 
229
.equ SMCR = 0x3a
 
230
.equ SE   = 0
 
231
.equ SM0  = 1
 
232
.equ SM1  = 2
 
233
.equ SM2  = 3
 
234
 
 
235
; Reset Flag Register
 
236
.equ RSTFLR = 0x3b
 
237
.equ PORF   = 0
 
238
.equ EXTRF  = 1
 
239
.equ WDRF   = 3
 
240
 
 
241
; Configuration Change Protection Register
 
242
.equ CCP  = 0x3c
 
243
.equ CCP0 = 0
 
244
.equ CCP1 = 1
 
245
.equ CCP2 = 2
 
246
.equ CCP3 = 3
 
247
.equ CCP4 = 4
 
248
.equ CCP5 = 5
 
249
.equ CCP6 = 6
 
250
.equ CCP7 = 7
 
251
 
 
252
; Stack Pointer Register
 
253
.equ SPL = 0x3d
 
254
.equ SPH = 0x3e
 
255
 
 
256
; Status Register
 
257
.equ SREG   = 0x3f
 
258
.equ SREG_C = 0
 
259
.equ SREG_Z = 1
 
260
.equ SREG_N = 2
 
261
.equ SREG_V = 3
 
262
.equ SREG_S = 4
 
263
.equ SREG_H = 5
 
264
.equ SREG_T = 6
 
265
.equ SREG_I = 7
 
266
 
 
267
; Indirect address registers
 
268
.def XL = r26
 
269
.def XH = r27
 
270
.def YL = r28
 
271
.def YH = r29
 
272
.def ZL = r30
 
273
.def ZH = r31
 
274
 
 
275
; Non-Volatile Memory Lock Bits
 
276
.equ MAPPED_LOCKBITS_0 = 0x3f00
 
277
.equ NVLB1 = 0
 
278
.equ LB1 = 0
 
279
.equ NVLB2 = 1
 
280
.equ LB2 = 1
 
281
 
 
282
; Flash Memory
 
283
.equ PAGESIZE = 16
 
284
.equ FLASHEND = 0x00ff
 
285
.equ MAPPED_FLASH_START = 0x4000
 
286
.equ MAPPED_FLASH_SIZE  = 0x0200
 
287
.equ MAPPED_FLASH_END   = 0x41ff
 
288
 
 
289
; RAM Memory
 
290
.equ IOEND  = 0x003f
 
291
.equ RAMEND = 0x005f
 
292
.equ SRAM_START = 0x0040
 
293
.equ SRAM_SIZE  = 32
 
294
 
 
295
; Configuration
 
296
.equ MAPPED_CONFIG_0 = 0x3f40
 
297
.equ RSTDISBL = 0
 
298
.equ WDTON = 1
 
299
.equ CKOUT = 2
 
300
 
 
301
; Calibration
 
302
.equ MAPPED_CALIB_0 = 0x3f80
 
303
 
 
304
; Signature
 
305
.equ MAPPED_SIGN_0 = 0x3fc0
 
306
.equ MAPPED_SIGN_1 = 0x3fc1
 
307
.equ MAPPED_SIGN_2 = 0x3fc2
 
308
 
 
309
; Interrupt Vectors
 
310
.equ INT_VECTORS_SIZE = 10
 
311
.equ INT0addr = 0x0001
 
312
.equ PCI0addr = 0x0002
 
313
.equ ICP0addr = 0x0003
 
314
.equ OVF0addr = 0x0004
 
315
.equ OC0Aaddr = 0x0005
 
316
.equ OC0Baddr = 0x0006
 
317
.equ ACIaddr  = 0x0007
 
318
.equ WDTaddr  = 0x0008
 
319
.equ VLMaddr  = 0x0009
 
320