Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1186 | savelij | 1 | ifndef reg166inc ; avoid multiple inclusion |
2 | reg166inc equ 1 |
||
3 | |||
4 | save |
||
5 | listing off ; no listing over this file |
||
6 | |||
7 | ;**************************************************************************** |
||
8 | ;* * |
||
9 | ;* AS 1.42 - Datei REG166.INC * |
||
10 | ;* * |
||
11 | ;* Contains SFR, Macro and Adress Definitions for 80C166/167 * |
||
12 | ;* * |
||
13 | ;**************************************************************************** |
||
14 | |||
15 | switch MOMCPUNAME |
||
16 | case "80C166" |
||
17 | _n equ 166 |
||
18 | case "80C167" |
||
19 | _n equ 167 |
||
20 | case "80C167CS" |
||
21 | _n equ 168 |
||
22 | elsecase |
||
23 | fatal "wrong target: only 80C166, 80C167, or 80C167CS are supported!" |
||
24 | endcase |
||
25 | |||
26 | if MOMPASS=1 |
||
27 | message "80C166/167 SFR Definitions (C) 1994 Alfred Arnold" |
||
28 | message "Extensions for 80C167CS 2003 Marc Reibel" |
||
29 | message "including SFPRs for \{MOMCPUNAME}" |
||
30 | endif |
||
31 | |||
32 | ; Make things a bit shorter: |
||
33 | |||
34 | DefIntBits macro BASE,adr,{NoExpand} ; Define Interrupt Register + its Bits |
||
35 | tmpstr166 set "BASE" |
||
36 | {tmpstr166}IC equ adr |
||
37 | {tmpstr166}_GLVL bit {tmpstr166}IC.0 ; Group Priority |
||
38 | {tmpstr166}_ILVL bit {tmpstr166}IC.2 ; Interrupt Priority |
||
39 | {tmpstr166}IE bit {tmpstr166}IC.6 ; Interrupt Enable |
||
40 | {tmpstr166}IR bit {tmpstr166}IC.7 ; Interrupt Flag |
||
41 | endm |
||
42 | |||
43 | ;---------------------------------------------------------------------------- |
||
44 | ; Special Registers: |
||
45 | ; Bit Addresses only for bit-addressable registers! |
||
46 | ; Only start bit for bit fields! |
||
47 | |||
48 | if _n>=167 |
||
49 | SYSCON equ 0ff12h ; System Configuration |
||
50 | XPERSHARE bit SYSCON.0 ; XBUS Peripherals also on External BUS |
||
51 | VISIBLE bit SYSCON.1 ; XBUS Peripherals on Port Pins |
||
52 | XPEN bit SYSCON.2 ; Enable XBUS Peripherals |
||
53 | BDRSTEN bit SYSCON.3 ; Bidirectional /RSTIN |
||
54 | OWDDIS bit SYSCON.4 ; Disable Oscillator Watchdog |
||
55 | CSCFG bit SYSCON.6 ; Chip Select Mode (1=non-latched) |
||
56 | WRCFG bit SYSCON.7 ; /WRL and /WRH instead of /WR and /BHE |
||
57 | CLKEN bit SYSCON.8 ; Emit System Clock on Pin |
||
58 | BYTDIS bit SYSCON.9 ; Block /BHE Pin |
||
59 | ROMENT bit SYSCON.10 ; Enable Internal Rom |
||
60 | SGTDIS bit SYSCON.11 ; Disable Memory Segmentation |
||
61 | ROMS1 bit SYSCON.12 ; Position of Internal ROM |
||
62 | |||
63 | |||
64 | if _n>=168 |
||
65 | SYSCON1 equ 0f1dch ; Sleep Mode for IDLE Instruction |
||
66 | ; (Bits 1 and 0) |
||
67 | ; 00 Normal IDLE Mode |
||
68 | ; 01 SLEEP Mode |
||
69 | ; 11 SLEEP Mode, RTC and Oscillator off |
||
70 | |||
71 | SYSCON2 equ 0f1d0h ; Clock Generieration |
||
72 | RCS bit SYSCON2.6 ; RTC Clock Source Main Oscillator |
||
73 | SCS bit SYSCON2.7 ; SDD Clock Source Main Oscillator |
||
74 | CLKLOCK bit SYSCON2.15 ; Main Oscillator/PLL stable? |
||
75 | |||
76 | RSTCON equ 0f1e0h ; Reset Control Register |
||
77 | |||
78 | IDCHIP equ 0f07ch ; Chip Identification Register |
||
79 | IDMANUF equ 0f07eh |
||
80 | IDMEM2 equ 0f076h |
||
81 | IDMEM equ 0f07ah |
||
82 | IDPROG equ 0f078h |
||
83 | |||
84 | FOCON equ 0ffaah ; Clock Output Control Register |
||
85 | |||
86 | SYSCON3 equ 0f1d4h ; Peripheral Management |
||
87 | ADCDIS bit SYSCON3.0 ; Disable ADC |
||
88 | ASC0DIS bit SYSCON3.1 ; Disable Asynchronous Serial Port |
||
89 | SSCDIS bit SYSCON3.2 ; Disable Synchronous Serial Port |
||
90 | GPTDIS bit SYSCON3.3 ; Disable GPT Disables |
||
91 | DFMDIS bit SYSCON3.4 ; Disable DFlash (only Variants with Flash) |
||
92 | PFMDIS bit SYSCON3.5 ; Disable PFlash (only Variants with Flash) |
||
93 | CC1DIS bit SYSCON3.6 ; Disable Capcom1 |
||
94 | CC2DIS bit SYSCON3.7 ; Disable Capcom2 |
||
95 | PWMDIS bit SYSCON3.9 ; Disable PWM |
||
96 | CAN1DIS bit SYSCON3.13 ; Disable CAN1 |
||
97 | CAN2DIS bit SYSCON3.14 ; Disable CAN2 |
||
98 | PCDDIS bit SYSCON3.15 ; Disable Peripheral Clock Source |
||
99 | endif |
||
100 | |||
101 | elseif |
||
102 | SYSCON equ 0ff0ch |
||
103 | MCTC bit SYSCON.0 ; Memory Cycle Length |
||
104 | RWDC bit SYSCON.4 ; Write/Read Delay |
||
105 | MTTC bit SYSCON.5 ; Tri State Time |
||
106 | BTYP bit SYSCON.6 ; State of EBC-Pins |
||
107 | RDYEN bit SYSCON.12 ; Enable /READY |
||
108 | endif |
||
109 | ROMEN bit SYSCON.10 ; Enable Internal ROM |
||
110 | STKSZ bit SYSCON.13 ; Maximum Size of Stack |
||
111 | |||
112 | if _n>=167 |
||
113 | RP0H equ 0f108h ; System Startup Register (Read Only) |
||
114 | CSSEL bit RP0H.1 ; Number of CS Lines |
||
115 | SALSEL bit RP0H.3 ; Number of Address Lines, starting at A16 |
||
116 | endif |
||
117 | |||
118 | PSW equ 0ff10h ; Flag Register |
||
119 | N bit PSW.0 ; Negatives Result |
||
120 | C bit PSW.1 ; Carry |
||
121 | V bit PSW.2 ; Overflow |
||
122 | Z bit PSW.3 ; Zero Result |
||
123 | E bit PSW.4 ; End of Table |
||
124 | MULIP bit PSW.5 ; Multiplication/Division interrupted ? |
||
125 | USR0 bit PSW.6 ; User Defined |
||
126 | if _n>=167 |
||
127 | HLDEN bit PSW.10 ; Enable Hold |
||
128 | endif |
||
129 | IEN bit PSW.11 ; Enable Interrupts |
||
130 | ILVL bit PSW.12 ; Interrupt Level currently being served |
||
131 | |||
132 | TFR equ 0ffach ; Trap Flag Register |
||
133 | ILLBUS bit TFR.0 ; Externer Bus used, but not configured |
||
134 | ILLINA bit TFR.1 ; Code Access to Odd Address |
||
135 | ILLOPA bit TFR.2 ; Word Access to Odd Address |
||
136 | PRTFLT bit TFR.3 ; Protection Violation |
||
137 | UNDOPC bit TFR.7 ; Undefined Maschine Instruction |
||
138 | STKUF bit TFR.13 ; Stack Underflow |
||
139 | STKOF bit TFR.14 ; Stack Overflow |
||
140 | NMI bit TFR.15 ; Non-Maskable Interrupt |
||
141 | if _n>=167 |
||
142 | EXICON equ 0f1c0h ; External Interrupt Controller Control |
||
143 | if _n>=168 |
||
144 | EXISEL equ 0f1dah ; External Interrupt Source Register |
||
145 | endif |
||
146 | EXI0ES bit EXICON.0 ; Edge-Triggered Interrupt 0 |
||
147 | EXI1ES bit EXICON.2 ; Edge-Triggered Interrupt 1 |
||
148 | EXI2ES bit EXICON.4 ; Edge-Triggered Interrupt 2 |
||
149 | EXI3ES bit EXICON.6 ; Edge-Triggered Interrupt 3 |
||
150 | EXI4ES bit EXICON.8 ; Edge-Triggered Interrupt 4 |
||
151 | EXI5ES bit EXICON.10 ; Edge-Triggered Interrupt 5 |
||
152 | EXI6ES bit EXICON.12 ; Edge-Triggered Interrupt 6 |
||
153 | EXI7ES bit EXICON.14 ; Edge-Triggered Interrupt 7 |
||
154 | endif |
||
155 | |||
156 | DPP0 equ 0fe00h ; Paging Register |
||
157 | DPP1 equ 0fe02h |
||
158 | DPP2 equ 0fe04h |
||
159 | DPP3 equ 0fe06h |
||
160 | |||
161 | CSP equ 0fe08h ; Bits 16.. of Program Counter |
||
162 | |||
163 | MDH equ 0fe0ch ; Multiplier/Divider Register |
||
164 | MDL equ 0fe0eh |
||
165 | MDC equ 0ff0eh ; Multiplier/Divider Control |
||
166 | MDRIU bit MDC.4 ; Multiplier in Use |
||
167 | |||
168 | CP equ 0fe10h ; Register Context Pointer |
||
169 | |||
170 | SP equ 0fe12h ; Stack Pointer |
||
171 | STKOV equ 0fe14h ; Upper Bound Stack Pointer |
||
172 | STKUN equ 0fe16h ; Lower Bound Stack Pointer |
||
173 | |||
174 | ZEROS equ 0ff1ch ; Constant All-Zeros |
||
175 | ONES equ 0ff1eh ; Constant All-Ones |
||
176 | |||
177 | ;---------------------------------------------------------------------------- |
||
178 | ; Memory Interface |
||
179 | |||
180 | if _n>=167 |
||
181 | ADDRSEL1 equ 0fe18h ; Address Decoder Register 1..4 |
||
182 | ADDRSEL2 equ 0fe1ah |
||
183 | ADDRSEL3 equ 0fe1ch |
||
184 | ADDRSEL4 equ 0fe1eh |
||
185 | |||
186 | BUSCON0 equ 0ff0ch ; Bus Configuration Register 0..4 |
||
187 | MCTC0 bit BUSCON0.0 ; Memory Cycle Length |
||
188 | RWDC0 bit BUSCON0.4 ; Write/Read Delay |
||
189 | MTTC0 bit BUSCON0.5 ; Tri State Zeit |
||
190 | BTYP0 bit BUSCON0.6 ; State of EBC Pins |
||
191 | ALECTL0 bit BUSCON0.9 ; ALE Extension |
||
192 | BUSACT0 bit BUSCON0.10 ; Bus Active |
||
193 | RDYEN0 bit BUSCON0.12 ; Enable /READY |
||
194 | BUSCON1 equ 0ff14h |
||
195 | MCTC1 bit BUSCON1.0 ; Memory Cycle Length |
||
196 | RWDC1 bit BUSCON1.4 ; Write/Read Delay |
||
197 | MTTC1 bit BUSCON1.5 ; Tri State Zeit |
||
198 | BTYP1 bit BUSCON1.6 ; State of EBC Pins |
||
199 | ALECTL1 bit BUSCON1.9 ; ALE Extension |
||
200 | BUSACT1 bit BUSCON1.10 ; Bus Active |
||
201 | RDYEN1 bit BUSCON1.12 ; Enable /READY |
||
202 | CSREN1 bit BUSCON1.14 ; CS Pins Operating Mode |
||
203 | CSWEN1 bit BUSCON1.15 |
||
204 | BUSCON2 equ 0ff16h |
||
205 | MCTC2 bit BUSCON2.0 ; see above |
||
206 | RWDC2 bit BUSCON2.4 |
||
207 | MTTC2 bit BUSCON2.5 |
||
208 | BTYP2 bit BUSCON2.6 |
||
209 | ALECTL2 bit BUSCON2.9 |
||
210 | BUSACT2 bit BUSCON2.10 |
||
211 | RDYEN2 bit BUSCON2.12 |
||
212 | CSREN2 bit BUSCON2.14 |
||
213 | CSWEN2 bit BUSCON2.15 |
||
214 | BUSCON3 equ 0ff18h |
||
215 | MCTC3 bit BUSCON3.0 |
||
216 | RWDC3 bit BUSCON3.4 |
||
217 | MTTC3 bit BUSCON3.5 |
||
218 | BTYP3 bit BUSCON3.6 |
||
219 | ALECTL3 bit BUSCON3.9 |
||
220 | BUSACT3 bit BUSCON3.10 |
||
221 | RDYEN3 bit BUSCON3.12 |
||
222 | CSREN3 bit BUSCON3.14 |
||
223 | CSWEN3 bit BUSCON3.15 |
||
224 | BUSCON4 equ 0ff1ah |
||
225 | MCTC4 bit BUSCON4.0 |
||
226 | RWDC4 bit BUSCON4.4 |
||
227 | MTTC4 bit BUSCON4.5 |
||
228 | BTYP4 bit BUSCON4.6 |
||
229 | ALECTL4 bit BUSCON4.9 |
||
230 | BUSACT4 bit BUSCON4.10 |
||
231 | RDYEN4 bit BUSCON4.12 |
||
232 | CSREN4 bit BUSCON4.14 |
||
233 | CSWEN4 bit BUSCON4.15 |
||
234 | |||
235 | if _n>=168 |
||
236 | XPERCON equ 0f024h ; XPeripherals |
||
237 | XPER0_M equ 0001h ; CAN1 (on after Reset) |
||
238 | XPER1_M equ 0002h ; CAN2 (off after Reset) |
||
239 | XPER10_M equ 0400h ; XRAM 2 KByte (on after Reset) |
||
240 | XPER11_M equ 0800h ; XRAM 6 KByte (off after Reset)!!! |
||
241 | XPER14_M equ 4000h ; 4KByte DFlash (off after Reset)!!! |
||
242 | |||
243 | ISNC equ 0f1deh ; Interrupt Sub Node Control Register |
||
244 | RTCIR bit ISNC.0 ; RTC Interrupt Request Flag |
||
245 | RTCIE bit ISNC.1 ; Enable RTC Interrupt |
||
246 | PLLIR bit ISNC.2 ; PLL Interrupt Request Flag |
||
247 | PLLIE bit ISNC.3 ; Enable PLL Interrupt |
||
248 | endif |
||
249 | |||
250 | DefIntBits XP0,0f186h ; Interrupt Control Peripheral Device 0 |
||
251 | DefIntBits XP1,0f18eh ; Interrupt Control Peripheral Device 1 |
||
252 | DefIntBits XP2,0f196h ; Interrupt Control Peripheral Device 2 |
||
253 | ; Flash Termination (Flash Variants) |
||
254 | DefIntBits XP3,0f19eh ; Interrupt Control Peripheral Device 3 |
||
255 | endif |
||
256 | |||
257 | ;---------------------------------------------------------------------------- |
||
258 | ; Ports: |
||
259 | |||
260 | if _n>=167 |
||
261 | PICON equ 0f1c4h |
||
262 | endif |
||
263 | |||
264 | if _n>=167 |
||
265 | P0L equ 0ff00h ; Port 0 Data Register |
||
266 | P0H equ 0ff02h |
||
267 | DP0L equ 0f100h ; Port 0 Data Direction Register |
||
268 | DP0H equ 0f102h |
||
269 | if _n>=168 |
||
270 | POCON0H equ 0f082h |
||
271 | POCON0L equ 0f080h |
||
272 | endif |
||
273 | elseif |
||
274 | P0 equ 0ff00h |
||
275 | DP0 equ 0ff02h |
||
276 | endif |
||
277 | |||
278 | if _n>=167 |
||
279 | P1L equ 0ff04h ; Port 1 Data Register |
||
280 | P1H equ 0ff06h |
||
281 | DP1L equ 0f104h ; Port 1 Data Direction Register |
||
282 | DP1H equ 0f106h |
||
283 | if _n>=168 |
||
284 | P1DIDIS equ 0fea4h ; Port 1 Disable Digital-Input |
||
285 | endif |
||
286 | if _n>=168 |
||
287 | POCON1H equ 0f086h ; Port 1 Output Drivers |
||
288 | POCON1L equ 0f084h |
||
289 | endif |
||
290 | elseif |
||
291 | P1 equ 0ff04h |
||
292 | DP1 equ 0ff06h |
||
293 | endif |
||
294 | |||
295 | P2 equ 0ffc0h ; Port 2 Data Register |
||
296 | DP2 equ 0ffc2h ; Port 2 Data Direction Register |
||
297 | if _n>=167 |
||
298 | ODP2 equ 0f1c2h ; Port 2 Open Drain Setting |
||
299 | P2LIN bit PICON.0 ; Port 2 Input Threshold Bits 0..7 |
||
300 | P2HIN bit PICON.1 ; Port 2 Input Threshold Bits 8..15 |
||
301 | if _n>=168 |
||
302 | POCON20 equ 0f0aah ; Port 2 Dedicated Pin Control Register |
||
303 | ; /RSTOUT,CLKOUT/FOUT,ALE, |
||
304 | ; /WH,/RD,/BHE,/WH |
||
305 | POCON2 equ 0f088h ; Port 2 Output Drivers |
||
306 | endif |
||
307 | endif |
||
308 | |||
309 | P3 equ 0ffc4h ; Port 3 Data Register |
||
310 | DP3 equ 0ffc6h ; Port 3 Data Direction Register |
||
311 | if _n>=167 |
||
312 | ODP3 equ 0f1c6h ; Port 3 Open Drain Setting |
||
313 | P3LIN bit PICON.2 ; Port 3 Input Threshold Bits 0..7 |
||
314 | P3HIN bit PICON.3 ; Port 3 Input Threshold Bits 8..15 |
||
315 | if _n>=168 |
||
316 | POCON3 equ 0f08ah ; Port 3 Output Drivers |
||
317 | endif |
||
318 | endif |
||
319 | |||
320 | if _n>=167 |
||
321 | P4 equ 0ffc8h ; Port 4 Data Register |
||
322 | DP4 equ 0ffcah ; Port 4 Data Direction Register |
||
323 | ODP4 equ 0f1cah ; Port 4 Open Drain Setting |
||
324 | P4LIN bit PICON.4 ; Port 4 Input Threshold |
||
325 | if _n>=168 |
||
326 | POCON4 equ 0f08ch ; Port 4 Output Drivers |
||
327 | endif |
||
328 | elseif |
||
329 | P4 equ 0ff08h |
||
330 | DP4 equ 0ff0ah |
||
331 | endif |
||
332 | |||
333 | P5 equ 0ffa2h ; Port 5 Data Register (input-only) |
||
334 | |||
335 | if _n>=167 |
||
336 | P5DIDIS equ 0ffa4h |
||
337 | endif |
||
338 | |||
339 | if _n>=167 |
||
340 | P6 equ 0ffcch ; Port 6 Data Register |
||
341 | DP6 equ 0ffceh ; Port 6 Data Direction Register |
||
342 | ODP6 equ 0f1ceh ; Port 6 Open Drain Setting |
||
343 | P6LIN bit PICON.5 ; Port 6 Input Threshold |
||
344 | if _n>=168 |
||
345 | POCON6 equ 0f08eh ; Port 6 Output Drivers |
||
346 | endif |
||
347 | P7 equ 0ffd0h ; Port 7 Data Register |
||
348 | DP7 equ 0ffd2h ; Port 7 Data Direction Register |
||
349 | ODP7 equ 0f1d2h ; Port 7 Open Drain Setting |
||
350 | P7LIN bit PICON.6 ; Port 7 Input Threshold |
||
351 | if _n>=168 |
||
352 | POCON7 equ 0f090h ; Port 7 Output Drivers |
||
353 | endif |
||
354 | P8 equ 0ffd4h ; Port 8 Data Register |
||
355 | DP8 equ 0ffd6h ; Port 8 Data Direction Register |
||
356 | ODP8 equ 0f1d6h ; Port 8 Open Drain Setting |
||
357 | P8LIN bit PICON.7 ; Port 8 Input Threshold |
||
358 | if _n>=168 |
||
359 | POCON8 equ 0f092h ; Port 8 Output Drivers |
||
360 | endif |
||
361 | endif |
||
362 | |||
363 | ;---------------------------------------------------------------------------- |
||
364 | ; Timers: |
||
365 | |||
366 | T0 equ 0fe50h ; CAPCOM Timer 0 |
||
367 | T0REL equ 0fe54h ; Timer 0 Reload Register |
||
368 | T01CON equ 0ff50h ; Timer 0+1 Control Register |
||
369 | T0I bit T01CON.0 ; Timer 0 Input Selection |
||
370 | T0M bit T01CON.3 ; Timer 0 Mode |
||
371 | T0R bit T01CON.6 ; Timer 0 Start/Stop |
||
372 | T1I bit T01CON.8 ; Timer 1 Input Selection |
||
373 | T1M bit T01CON.11 ; Timer 1 Mode |
||
374 | T1R bit T01CON.14 ; Timer 1 Start/Stop |
||
375 | DefIntBits T0,0ff9ch ; Timer 0 Interrupt Control |
||
376 | |||
377 | T1 equ 0fe52h ; CAPCOM Timer 1 |
||
378 | T1REL equ 0fe56h ; Timer 1 Reload Register |
||
379 | DefIntBits T1,0ff9eh ; Timer 1 Interrupt Control |
||
380 | |||
381 | T2 equ 0fe40h ; Timer 2 |
||
382 | T2CON equ 0ff40h ; Timer 2 Control Register |
||
383 | T2I bit T2CON.0 ; Timer 2 Input Selection |
||
384 | T2M bit T2CON.3 ; Timer 2 Mode |
||
385 | T2R bit T2CON.6 ; Timer 2 Start/Stop |
||
386 | T2UD bit T2CON.7 ; Timer 2 Direction |
||
387 | if _n>=167 |
||
388 | T2UDE bit T2CON.8 ; Timer 2 External Count Direction Selection |
||
389 | endif |
||
390 | DefIntBits T2,0ff60h ; Timer 2 Interrupt Control |
||
391 | |||
392 | T3 equ 0fe42h ; Timer 3 |
||
393 | T3CON equ 0ff42h ; Timer 3 Control Register |
||
394 | T3I bit T3CON.0 ; Timer 3 Input Selection |
||
395 | T3M bit T3CON.3 ; Timer 3 Mode |
||
396 | T3R bit T3CON.6 ; Timer 3 Start/Stop |
||
397 | T3UD bit T3CON.7 ; Timer 3 Direction |
||
398 | T3UDE bit T3CON.8 ; Timer 3 External Count Direction Selection |
||
399 | T3OE bit T3CON.9 ; Timer 3 Enable Output |
||
400 | T3OTL bit T3CON.10 ; Timer 3 Overflow |
||
401 | DefIntBits T3,0ff62h ; Timer 3 Interrupt Control |
||
402 | |||
403 | T4 equ 0fe44h ; Timer 4 |
||
404 | T4CON equ 0ff44h ; Timer 4 Control Register |
||
405 | T4I bit T4CON.0 ; Timer 4 Eingangssignal |
||
406 | T4M bit T4CON.3 ; Timer 4 Mode |
||
407 | T4R bit T4CON.6 ; Timer 4 Start/Stop |
||
408 | T4UD bit T4CON.7 ; Timer 4 Direction |
||
409 | if _n>=167 |
||
410 | T4UDE bit T4CON.8 ; Timer 4 External Count Direction Selection |
||
411 | endif |
||
412 | DefIntBits T4,0ff64h ; Timer 4 Interrupt Control |
||
413 | |||
414 | T5 equ 0fe46h ; Timer 5 |
||
415 | T5CON equ 0ff46h ; Timer 5 Control Register |
||
416 | T5I bit T5CON.0 ; Timer 5 Input Selection |
||
417 | T5M bit T5CON.3 ; Timer 5 Mode |
||
418 | T5R bit T5CON.6 ; Timer 5 Start/Stop |
||
419 | T5UD bit T5CON.7 ; Timer 5 Direction |
||
420 | if _n>=167 |
||
421 | T5UDE bit T5CON.8 ; Timer 5 External Count Direction Selection |
||
422 | endif |
||
423 | CI bit T5CON.12 ; CAPREL Input Selection |
||
424 | T5CLR bit T5CON.14 ; Timer 5 Clear upon Capture |
||
425 | T5SC bit T5CON.15 ; Timer 5 Capture Enable |
||
426 | DefIntBits T5,0ff66h ; Timer 5 Interrupt Control |
||
427 | |||
428 | T6 equ 0fe48h ; Timer 6 |
||
429 | T6CON equ 0ff48h ; Control Register Timer 6 |
||
430 | T6I bit T6CON.0 ; Timer 6 Input Selection |
||
431 | if _n>=167 |
||
432 | T6M bit T6CON.3 ; Timer 6 Mode |
||
433 | endif |
||
434 | T6R bit T6CON.6 ; Timer 6 Start/Stop |
||
435 | T6UD bit T6CON.7 ; Timer 6 Count Direction |
||
436 | if _n>=167 |
||
437 | T6UDE bit T6CON.8 ; Timer 6 External Count Direction Selection |
||
438 | endif |
||
439 | T6OE bit T6CON.9 ; Timer 6 Enable Output |
||
440 | T6OTL bit T6CON.10 ; Timer 6 Overflow |
||
441 | T6SR bit T6CON.15 ; Timer 6 Reload |
||
442 | DefIntBits T6,0ff68h ; Timer 6 Interrupt Control |
||
443 | |||
444 | if _n>=167 |
||
445 | T78CON equ 0ff20h ; Timer 7+8 Control Register |
||
446 | |||
447 | T7 equ 0f050h ; Timer 7 |
||
448 | T7REL equ 0f054h ; Timer 7 Reload Register |
||
449 | T7M bit T78CON.3 ; Timer 7 Timer/Counter Mode |
||
450 | DefIntBits T7,0f17ah ; Timer 7 Interrupt Control |
||
451 | |||
452 | T8 equ 0f052h ; CAPCOM Timer 8 |
||
453 | T8REL equ 0f056h ; Timer 8 Reload Register |
||
454 | T8M bit T78CON.11 ; Timer 8 Timer/Counter Mode |
||
455 | DefIntBits T8,0f17ch ; Timer 8 Interrupt Control |
||
456 | if _n>=168 |
||
457 | T14 equ 0f0d2h ; RTC Timer 14 |
||
458 | T14REL equ 0f0d0h ; RTC Timer 14 Reload Register |
||
459 | RTCL equ 0f0d4h ; RTC Low Word |
||
460 | RTCH equ 0f0d6h ; RTC High Word |
||
461 | endif |
||
462 | endif |
||
463 | |||
464 | ;----------------------------------------------------------------------- |
||
465 | ; Capture/Compare Unit: |
||
466 | |||
467 | CAPREL equ 0fe4ah ; Capture/Reload Register |
||
468 | CC0 equ 0fe80h ; CAPCOM Registers |
||
469 | CC1 equ 0fe82h |
||
470 | CC2 equ 0fe84h |
||
471 | CC3 equ 0fe86h |
||
472 | CC4 equ 0fe88h |
||
473 | CC5 equ 0fe8ah |
||
474 | CC6 equ 0fe8ch |
||
475 | CC7 equ 0fe8eh |
||
476 | CC8 equ 0fe90h |
||
477 | CC9 equ 0fe92h |
||
478 | CC10 equ 0fe94h |
||
479 | CC11 equ 0fe96h |
||
480 | CC12 equ 0fe98h |
||
481 | CC13 equ 0fe9ah |
||
482 | CC14 equ 0fe9ch |
||
483 | CC15 equ 0fe9eh |
||
484 | if _n>=167 |
||
485 | CC16 equ 0fe60h ; Further CAPCOM Registers |
||
486 | CC17 equ 0fe62h |
||
487 | CC18 equ 0fe64h |
||
488 | CC19 equ 0fe66h |
||
489 | CC20 equ 0fe68h |
||
490 | CC21 equ 0fe6ah |
||
491 | CC22 equ 0fe6ch |
||
492 | CC23 equ 0fe6eh |
||
493 | CC24 equ 0fe70h |
||
494 | CC25 equ 0fe72h |
||
495 | CC26 equ 0fe74h |
||
496 | CC27 equ 0fe76h |
||
497 | CC28 equ 0fe78h |
||
498 | CC29 equ 0fe7ah |
||
499 | CC30 equ 0fe7ch |
||
500 | CC31 equ 0fe7eh |
||
501 | endif |
||
502 | |||
503 | CCM0 equ 0ff52h ; CAPCOM Mode Register |
||
504 | CCMOD0 bit CCM0.0 ; CC0 Mode Selection |
||
505 | ACC0 bit CCM0.3 ; CC0 assigned to Timer 0/1 |
||
506 | CCMOD1 bit CCM0.4 ; CC1 Mode Selection |
||
507 | ACC1 bit CCM0.7 ; CC1 assigned to Timer 0/1 |
||
508 | CCMOD2 bit CCM0.8 ; CC2 Mode Selection |
||
509 | ACC2 bit CCM0.11 ; CC2 assigned to Timer 0/1 |
||
510 | CCMOD3 bit CCM0.12 ; CC3 Mode Selection |
||
511 | ACC3 bit CCM0.15 ; CC3 assigned to Timer 0/1 |
||
512 | |||
513 | CCM1 equ 0ff54h |
||
514 | CCMOD4 bit CCM1.0 ; CC4 Mode Selection |
||
515 | ACC4 bit CCM1.3 ; CC4 assigned to Timer 0/1 |
||
516 | CCMOD5 bit CCM1.4 ; CC5 Mode Selection |
||
517 | ACC5 bit CCM1.7 ; CC5 assigned to Timer 0/1 |
||
518 | CCMOD6 bit CCM1.8 ; CC6 Mode Selection |
||
519 | ACC6 bit CCM1.11 ; CC6 assigned to Timer 0/1 |
||
520 | CCMOD7 bit CCM1.12 ; CC7 Mode Selection |
||
521 | ACC7 bit CCM1.15 ; CC7 assigned to Timer 0/1 |
||
522 | |||
523 | CCM2 equ 0ff56h |
||
524 | CCMOD8 bit CCM2.0 ; CC8 Mode Selection |
||
525 | ACC8 bit CCM2.3 ; CC8 assigned to Timer 0/1 |
||
526 | CCMOD9 bit CCM2.4 ; CC9 Mode Selection |
||
527 | ACC9 bit CCM2.7 ; CC9 assigned to Timer 0/1 |
||
528 | CCMOD10 bit CCM2.8 ; CC10 Mode Selection |
||
529 | ACC10 bit CCM2.11 ; CC10 assigned to Timer 0/1 |
||
530 | CCMOD11 bit CCM2.12 ; CC11 Mode Selection |
||
531 | ACC11 bit CCM2.15 ; CC11 assigned to Timer 0/1 |
||
532 | |||
533 | CCM3 equ 0ff58h |
||
534 | CCMOD12 bit CCM3.0 ; CC12 Mode Selection |
||
535 | ACC12 bit CCM3.3 ; CC12 assigned to Timer 0/1 |
||
536 | CCMOD13 bit CCM3.4 ; CC13 Mode Selection |
||
537 | ACC13 bit CCM3.7 ; CC13 assigned to Timer 0/1 |
||
538 | CCMOD14 bit CCM3.8 ; CC14 Mode Selection |
||
539 | ACC14 bit CCM3.11 ; CC14 assigned to Timer 0/1 |
||
540 | CCMOD15 bit CCM3.12 ; CC15 Mode Selection |
||
541 | ACC15 bit CCM3.15 ; CC15 assigned to Timer 0/1 |
||
542 | |||
543 | CCM4 equ 0ff22h |
||
544 | CCMOD16 bit CCM4.0 ; CC16 Mode Selection |
||
545 | ACC16 bit CCM4.3 ; CC16 assigned to Timer 0/1 |
||
546 | CCMOD17 bit CCM4.4 ; CC17 Mode Selection |
||
547 | ACC17 bit CCM4.7 ; CC17 assigned to Timer 0/1 |
||
548 | CCMOD18 bit CCM4.8 ; CC18 Mode Selection |
||
549 | ACC18 bit CCM4.11 ; CC18 assigned to Timer 0/1 |
||
550 | CCMOD19 bit CCM4.12 ; CC19 Mode Selection |
||
551 | ACC19 bit CCM4.15 ; CC19 assigned to Timer 0/1 |
||
552 | |||
553 | CCM5 equ 0ff24h |
||
554 | CCMOD20 bit CCM5.0 ; CC20 Mode Selection |
||
555 | ACC20 bit CCM5.3 ; CC20 assigned to Timer 0/1 |
||
556 | CCMOD21 bit CCM5.4 ; CC21 Mode Selection |
||
557 | ACC21 bit CCM5.7 ; CC21 assigned to Timer 0/1 |
||
558 | CCMOD22 bit CCM5.8 ; CC22 Mode Selection |
||
559 | ACC22 bit CCM5.11 ; CC22 assigned to Timer 0/1 |
||
560 | CCMOD23 bit CCM5.12 ; CC23 Mode Selection |
||
561 | ACC23 bit CCM5.15 ; CC23 assigned to Timer 0/1 |
||
562 | |||
563 | CCM6 equ 0ff26h |
||
564 | CCMOD24 bit CCM6.0 ; CC24 Mode Selection |
||
565 | ACC24 bit CCM6.3 ; CC24 assigned to Timer 0/1 |
||
566 | CCMOD25 bit CCM6.4 ; CC25 Mode Selection |
||
567 | ACC25 bit CCM6.7 ; CC25 assigned to Timer 0/1 |
||
568 | CCMOD26 bit CCM6.8 ; CC26 Mode Selection |
||
569 | ACC26 bit CCM6.11 ; CC26 assigned to Timer 0/1 |
||
570 | CCMOD27 bit CCM6.12 ; CC27 Mode Selection |
||
571 | ACC27 bit CCM6.15 ; CC27 assigned to Timer 0/1 |
||
572 | |||
573 | CCM7 equ 0ff28h |
||
574 | CCMOD28 bit CCM7.0 ; CC28 Mode Selection |
||
575 | ACC28 bit CCM7.3 ; CC28 assigned to Timer 0/1 |
||
576 | CCMOD29 bit CCM7.4 ; CC29 Mode Selection |
||
577 | ACC29 bit CCM7.7 ; CC29 assigned to Timer 0/1 |
||
578 | CCMOD30 bit CCM7.8 ; CC30 Mode Selection |
||
579 | ACC30 bit CCM7.11 ; CC30 assigned to Timer 0/1 |
||
580 | CCMOD31 bit CCM7.12 ; CC31 Mode Selection |
||
581 | ACC31 bit CCM7.15 ; CC31 assigned to Timer 0/1 |
||
582 | |||
583 | DefIntBits CR,0ff6ah ; CAPREL Interrupt Control Register |
||
584 | |||
585 | DefIntBits CC0,0ff78h ; Interrupt Control CAPCOM Channels |
||
586 | DefIntBits CC1,0ff7ah |
||
587 | DefIntBits CC2,0ff7ch |
||
588 | DefIntBits CC3,0ff7eh |
||
589 | DefIntBits CC4,0ff80h |
||
590 | DefIntBits CC5,0ff82h |
||
591 | DefIntBits CC6,0ff84h |
||
592 | DefIntBits CC7,0ff86h |
||
593 | DefIntBits CC8,0ff88h |
||
594 | DefIntBits CC9,0ff8ah |
||
595 | DefIntBits CC10,0ff8ch |
||
596 | DefIntBits CC11,0ff8eh |
||
597 | DefIntBits CC12,0ff90h |
||
598 | DefIntBits CC13,0ff92h |
||
599 | DefIntBits CC14,0ff94h |
||
600 | DefIntBits CC15,0ff96h |
||
601 | if _n>=167 |
||
602 | DefIntBits CC16,0f160h ; Interrupt Control futher CAPCOM Channels |
||
603 | DefIntBits CC17,0f162h |
||
604 | DefIntBits CC18,0f164h |
||
605 | DefIntBits CC19,0f166h |
||
606 | DefIntBits CC20,0f168h |
||
607 | DefIntBits CC21,0f16ah |
||
608 | DefIntBits CC22,0f16ch |
||
609 | DefIntBits CC23,0f16eh |
||
610 | DefIntBits CC24,0f170h |
||
611 | DefIntBits CC25,0f172h |
||
612 | DefIntBits CC26,0f174h |
||
613 | DefIntBits CC27,0f176h |
||
614 | DefIntBits CC28,0f178h |
||
615 | DefIntBits CC29,0f184h |
||
616 | DefIntBits CC30,0f18ch |
||
617 | DefIntBits CC31,0f194h |
||
618 | endif |
||
619 | |||
620 | PECC0 equ 0fec0h ; PEC Channel Control Register |
||
621 | PECC1 equ 0fec2h |
||
622 | PECC2 equ 0fec4h |
||
623 | PECC3 equ 0fec6h |
||
624 | PECC4 equ 0fec8h |
||
625 | PECC5 equ 0fecah |
||
626 | PECC6 equ 0fecch |
||
627 | PECC7 equ 0feceh |
||
628 | |||
629 | SRCP0 equ 0fce0h ; PEC Source Register |
||
630 | SRCP1 equ 0fce4h |
||
631 | SRCP2 equ 0fce8h |
||
632 | SRCP3 equ 0fcech |
||
633 | SRCP4 equ 0fcf0h |
||
634 | SRCP5 equ 0fcf4h |
||
635 | SRCP6 equ 0fcf8h |
||
636 | SRCP7 equ 0fcfch |
||
637 | DSTP0 equ 0fce2h ; PEC Destination Register |
||
638 | DSTP1 equ 0fce6h |
||
639 | DSTP2 equ 0fceah |
||
640 | DSTP3 equ 0fceeh |
||
641 | DSTP4 equ 0fcf2h |
||
642 | DSTP5 equ 0fcf6h |
||
643 | DSTP6 equ 0fcfah |
||
644 | DSTP7 equ 0fcfeh |
||
645 | |||
646 | ;---------------------------------------------------------------------------- |
||
647 | ; Pulse Width Modulator: |
||
648 | |||
649 | if _n>=167 |
||
650 | PP0 equ 0f038h ; PWM Period 0 |
||
651 | PT0 equ 0f030h ; PWM Counter 0 |
||
652 | PW0 equ 0fe30h ; PWM Pulse Width 0 |
||
653 | PP1 equ 0f03ah ; PWM Period 1 |
||
654 | PT1 equ 0f032h ; PWM Counter 1 |
||
655 | PW1 equ 0fe30h ; PWM Pulse Width 1 |
||
656 | PP2 equ 0f03ch ; PWM Period 2 |
||
657 | PT2 equ 0f034h ; PWM Counter 2 |
||
658 | PW2 equ 0fe30h ; PWM Pulse Width 2 |
||
659 | PP3 equ 0f03eh ; PWM Period 3 |
||
660 | PT3 equ 0f036h ; PWM Counter 3 |
||
661 | PW3 equ 0fe30h ; PWM Pulse Width 3 |
||
662 | PWMCON0 equ 0ff30h ; PWM Control Register 0 |
||
663 | PTR0 bit PWMCON0.0 ; PT0 Run |
||
664 | PTR1 bit PWMCON0.1 ; PT1 Run |
||
665 | PTR2 bit PWMCON0.2 ; PT2 Run |
||
666 | PTR3 bit PWMCON0.3 ; PT3 Run |
||
667 | PTI0 bit PWMCON0.4 ; PT0 Input Selection |
||
668 | PTI1 bit PWMCON0.5 ; PT1 Input Selection |
||
669 | PTI2 bit PWMCON0.6 ; PT2 Input Selection |
||
670 | PTI3 bit PWMCON0.7 ; PT3 Input Selection |
||
671 | PIE0 bit PWMCON0.8 ; PT0 Enable Interrups |
||
672 | PIE1 bit PWMCON0.9 ; PT1 Enable Interrups |
||
673 | PIE2 bit PWMCON0.10 ; PT2 Enable Interrups |
||
674 | PIE3 bit PWMCON0.11 ; PT3 Enable Interrups |
||
675 | PIR0 bit PWMCON0.12 ; PT0 Interrupt Flag |
||
676 | PIR1 bit PWMCON0.13 ; PT1 Interrupt Flag |
||
677 | PIR2 bit PWMCON0.14 ; PT2 Interrupt Flag |
||
678 | PIR3 bit PWMCON0.15 ; PT3 Interrupt Flag |
||
679 | PWMCON1 equ 0ff32h ; PWM Control Register 1 |
||
680 | PEN0 bit PWMCON1.0 ; PT0 Enable Output |
||
681 | PEN1 bit PWMCON1.1 ; PT1 Enable Output |
||
682 | PEN2 bit PWMCON1.2 ; PT2 Enable Output |
||
683 | PEN3 bit PWMCON1.3 ; PT3 Enable Output |
||
684 | PM0 bit PWMCON1.4 ; PT0 Mode |
||
685 | PM1 bit PWMCON1.5 ; PT1 Mode |
||
686 | PM2 bit PWMCON1.6 ; PT2 Mode |
||
687 | PM3 bit PWMCON1.7 ; PT3 Mode |
||
688 | PB01 bit PWMCON1.12 ; PT0&1 Burst Mode |
||
689 | PS2 bit PWMCON1.14 ; PT2 Single Shot Mode |
||
690 | PS3 bit PWMCON1.15 ; PT3 Single Shot Mode |
||
691 | DefIntBits PWM,0f17eh ; PWM Interrupt Control |
||
692 | endif |
||
693 | |||
694 | ;---------------------------------------------------------------------------- |
||
695 | ; A/D-Converter: |
||
696 | |||
697 | ADDAT equ 0fea0h ; A/D-Converter Ergebnis |
||
698 | if _n>=167 |
||
699 | ADDAT2 equ 0f0a0h ; A/D-Converter Ergebnis 2 |
||
700 | endif |
||
701 | DefIntBits ADC,0ff98h ; A/D-Converter Interrupt Control for End of Conversion |
||
702 | DefIntBits ADE,0ff9ah ; A/D-Converter Interrupt Control for Errors |
||
703 | ADCON equ 0ffa0h ; A/D-Converter Control Register |
||
704 | ADCH bit ADCON.0 ; A/D-Converter Channel Selection |
||
705 | ADM bit ADCON.4 ; A/D-Converter Mode |
||
706 | ADST bit ADCON.7 ; Start A/D Conversion |
||
707 | ADBSY bit ADCON.8 ; A/D-Converter Busy |
||
708 | if _n>=167 |
||
709 | ADWR bit ADCON.9 ; do not restart A/D-Converter before being read |
||
710 | ADCIN bit ADCON.10 ; A/D-Converter Channel Injection (??...) |
||
711 | ADCRQ bit ADCON.11 ; A/D-Converter Channel Injection Requested |
||
712 | endif |
||
713 | |||
714 | ;---------------------------------------------------------------------------- |
||
715 | ; Watchdog: |
||
716 | |||
717 | WDT equ 0feaeh ; Watchdog Counter |
||
718 | WDTCON equ 0ffaeh ; Watchdog Control Register |
||
719 | WDTIN bit WDTCON.0 ; Watchdog Input frequency |
||
720 | WDTR bit WDTCON.1 ; Reset by Watchdog |
||
721 | if _n>=167 |
||
722 | SWR bit WDTCON.2 ; Software Reset |
||
723 | SHWR bit WDTCON.3 ; Short Hardware-Reset |
||
724 | LHWR bit WDTCON.4 ; Long Hardware-Reset |
||
725 | PONR bit WDTCON.5 ; Power On Reset (Flash Variants) |
||
726 | endif |
||
727 | WDTREL bit WDTCON.8 ; Reload Value Watchdog |
||
728 | |||
729 | ;---------------------------------------------------------------------------- |
||
730 | ; Serielles: |
||
731 | |||
732 | S0TBUF equ 0feb0h ; SIO0 Transmit Register |
||
733 | S0RBUF equ 0feb2h ; SIO0 Receive Register |
||
734 | S0BG equ 0feb4h ; SIO0 Baud Rate Selection |
||
735 | DefIntBits S0T,0ff6ch ; SIO0 Interrupt Control Transmitter |
||
736 | DefIntBits S0R,0ff6eh ; SIO0 Interrupt Control Receiver |
||
737 | DefIntBits S0E,0ff70h ; SIO0 Interrupt Control Errors |
||
738 | |||
739 | if _n>=167 |
||
740 | DefIntBits S0TB,0f19ch ; Interrupt Control Transmit Buffer |
||
741 | endif |
||
742 | |||
743 | S0CON equ 0ffb0h ; SIO0 Control Register |
||
744 | S0M bit S0CON.0 ; SIO0 Mode |
||
745 | S0STP bit S0CON.3 ; SIO0 Number of Stopbits |
||
746 | S0REN bit S0CON.4 ; SIO0 Enable Receiver |
||
747 | S0PEN bit S0CON.5 ; SIO0 Enable Parity |
||
748 | S0FEN bit S0CON.6 ; SIO0 Enable Frame Check |
||
749 | S0OEN bit S0CON.7 ; SIO0 Enable Overflow Check |
||
750 | S0PE bit S0CON.8 ; SIO0 Parity Error |
||
751 | S0FE bit S0CON.9 ; SIO0 Framing Error |
||
752 | S0OE bit S0CON.10 ; SIO0 Overflow |
||
753 | if _n>=167 |
||
754 | S0ODD bit S0CON.12 ; SIO0 Odd Parity |
||
755 | S0BRS bit S0CON.13 ; SIO0 Baud Rate Factor |
||
756 | endif |
||
757 | S0LB bit S0CON.14 ; SIO0 Loopback |
||
758 | S0R bit S0CON.15 ; SIO0 Enable Baud Rate Generator |
||
759 | |||
760 | if _n>=167 |
||
761 | SSCTB equ 0f0b0h ; SSC Transmit Register |
||
762 | SSCRB equ 0f0b2h ; SSC Receive Register |
||
763 | SSCBR equ 0f0b4h ; SSC Baud Rate Selection |
||
764 | DefIntBits SSCT,0ff72h ; SSC Interrupt Control Transmitter |
||
765 | DefIntBits SSCR,0ff74h ; SSC Interrupt Control Receiver |
||
766 | DefIntBits SSCE,0ff76h ; SSC Interrupt Control Errors |
||
767 | SSCCON equ 0ffb2h ; SSC Control Register |
||
768 | SSCBM bit SSCCON.0 ; Word Width |
||
769 | SSCBC bit SSCCON.0 ; Number of Bits |
||
770 | SSCHB bit SSCCON.4 ; Start Bit Control |
||
771 | SSCPH bit SSCCON.5 ; Clock Phase |
||
772 | SSCP0 bit SSCCON.6 ; Clock Polarity |
||
773 | SSCTEN bit SSCCON.8 ; Enable Transmit Errors |
||
774 | SSCTE bit SSCCON.8 ; Transmit Error Flag |
||
775 | SSCREN bit SSCCON.9 ; Enable Receive Errors |
||
776 | SSCRE bit SSCCON.9 ; Receive Errot Flag |
||
777 | SSCPEN bit SSCCON.10 ; Enable Phase Errors |
||
778 | SSCPE bit SSCCON.10 ; Phase Error Flag |
||
779 | SSCBEN bit SSCCON.11 ; Enable Baud Rate Errors |
||
780 | SSCBE bit SSCCON.11 ; Baud Rate Errors Flag |
||
781 | SSCBSY bit SSCCON.12 ; SSC Busy |
||
782 | SSCMS bit SSCCON.14 ; SSC Operate as Master |
||
783 | SSCEN bit SSCCON.15 ; SSC Enable |
||
784 | elseif |
||
785 | S1TBUF equ 0feb8h ; SIO1 Transmit Register |
||
786 | S1RBUF equ 0febah ; SIO1 Receive Register |
||
787 | S1BG equ 0febch ; SIO1 Baud Rate Selection |
||
788 | DefIntBits S1T,0ff72h ; SIO1 Interrupt Control Transmitter |
||
789 | DefIntBits S1R,0ff74h ; SIO1 Interrupt Control Receiver |
||
790 | DefIntBits S1E,0ff76h ; SIO1 Interrupt Control Errors |
||
791 | S1CON equ 0ffb8h ; SIO1 Control Register |
||
792 | S1M bit S1CON.0 ; SIO1 Mode |
||
793 | S1STP bit S1CON.3 ; SIO1 Number of Stopbits |
||
794 | S1REN bit S1CON.4 ; SIO1 Enable Receiver |
||
795 | S1PEN bit S1CON.5 ; SIO1 Enable Parity |
||
796 | S1FEN bit S1CON.6 ; SIO1 Enable Frame Check |
||
797 | S1OEN bit S1CON.7 ; SIO1 Enable Overflow Check |
||
798 | S1PE bit S1CON.8 ; SIO1 Parity Error |
||
799 | S1FE bit S1CON.9 ; SIO1 Framing Error |
||
800 | S1OE bit S1CON.10 ; SIO1 Overflow |
||
801 | S1LB bit S1CON.14 ; SIO1 Loopback |
||
802 | S1R bit S1CON.15 ; SIO1 Enable Baud Rate Generator |
||
803 | endif |
||
804 | |||
805 | ;---------------------------------------------------------------------------- |
||
806 | ; Canbus 1 und 2 |
||
807 | |||
808 | if _n>=167 |
||
809 | |||
810 | ;bitram; DefIntBits C1, 0ef02h ; CAN1 Interrupt Control Register |
||
811 | C1BTR equ 0ef04h ; CAN1 Bit Timing Register |
||
812 | C1CSR equ 0ef00h ; CAN1 Control/Status Register |
||
813 | C1GMS equ 0ef06h ; CAN1 Global Mask Short |
||
814 | C1LAR1 equ 0ef14h ; CAN1 Lower Arbitration Register |
||
815 | C1LAR2 equ 0ef24h |
||
816 | C1LAR3 equ 0ef34h |
||
817 | C1LAR4 equ 0ef44h |
||
818 | C1LAR5 equ 0ef54h |
||
819 | C1LAR6 equ 0ef64h |
||
820 | C1LAR7 equ 0ef74h |
||
821 | C1LAR8 equ 0ef84h |
||
822 | C1LAR9 equ 0ef94h |
||
823 | C1LAR10 equ 0efa4h |
||
824 | C1LAR11 equ 0efb4h |
||
825 | C1LAR12 equ 0efc4h |
||
826 | C1LAR13 equ 0efd4h |
||
827 | C1LAR14 equ 0efe4h |
||
828 | C1LAR15 equ 0eff4h |
||
829 | C1LGML equ 0ef0ah ; CAN1 Lower Global Mask Support Long |
||
830 | C1LMLM equ 0ef0eh ; CAN1 Lower Mask Of Last Message |
||
831 | C1MCFG1 equ 0ef16h ; CAN1 Message Configuration Register |
||
832 | C1MCFG2 equ 0ef26h |
||
833 | C1MCFG3 equ 0ef36h |
||
834 | C1MCFG4 equ 0ef46h |
||
835 | C1MCFG5 equ 0ef56h |
||
836 | C1MCFG6 equ 0ef66h |
||
837 | C1MCFG7 equ 0ef76h |
||
838 | C1MCFG8 equ 0ef86h |
||
839 | C1MCFG9 equ 0ef96h |
||
840 | C1MCFG10 equ 0efa6h |
||
841 | C1MCFG11 equ 0efb6h |
||
842 | C1MCFG12 equ 0efc6h |
||
843 | C1MCFG13 equ 0efd6h |
||
844 | C1MCFG14 equ 0efe6h |
||
845 | C1MCFG15 equ 0eff6h |
||
846 | C1MCR1 equ 0ef10h ; CAN1 Message Control Register |
||
847 | C1MCR2 equ 0ef20h |
||
848 | C1MCR3 equ 0ef30h |
||
849 | C1MCR4 equ 0ef40h |
||
850 | C1MCR5 equ 0ef50h |
||
851 | C1MCR6 equ 0ef60h |
||
852 | C1MCR7 equ 0ef70h |
||
853 | C1MCR8 equ 0ef80h |
||
854 | C1MCR9 equ 0ef90h |
||
855 | C1MCR10 equ 0efa0h |
||
856 | C1MCR11 equ 0efb0h |
||
857 | C1MCR12 equ 0efc0h |
||
858 | C1MCR13 equ 0efd0h |
||
859 | C1MCR14 equ 0efe0h |
||
860 | C1MCR15 equ 0eff0h |
||
861 | C1PCIR equ 0ef02h ; CAN1 Port Control and Interrupt Register |
||
862 | C1UAR1 equ 0ef12h ; CAN1 Upper Arbitration Register |
||
863 | C1UAR2 equ 0ef22h |
||
864 | C1UAR3 equ 0ef32h |
||
865 | C1UAR4 equ 0ef42h |
||
866 | C1UAR5 equ 0ef52h |
||
867 | C1UAR6 equ 0ef62h |
||
868 | C1UAR7 equ 0ef72h |
||
869 | C1UAR8 equ 0ef82h |
||
870 | C1UAR9 equ 0ef92h |
||
871 | C1UAR10 equ 0efa2h |
||
872 | C1UAR11 equ 0efb2h |
||
873 | C1UAR12 equ 0efc2h |
||
874 | C1UAR13 equ 0efd2h |
||
875 | C1UAR14 equ 0efe2h |
||
876 | C1UAR15 equ 0eff2h |
||
877 | C1UGML equ 0ef08h ; CAN1 Upper Global Mask Long |
||
878 | C1UMLM equ 0ef0ch ; CAN1 Upper Mask Of Last Message |
||
879 | endif |
||
880 | if _n>=168 |
||
881 | |||
882 | ;bitram; DefIntBits C2, 0ee02h ; CAN2 Interrupt Control Register |
||
883 | C2BTR equ 0ee04h ; CAN2 Bit Timing Register |
||
884 | C2CSR equ 0ee00h ; CAN2 Control Status Register |
||
885 | C2GMS equ 0ee06h ; CAN2 Global Mask Support |
||
886 | C2LAR1 equ 0ee14h ; CAN2 Lower Arbitration Register |
||
887 | C2LAR2 equ 0ee24h |
||
888 | C2LAR3 equ 0ee34h |
||
889 | C2LAR4 equ 0ee44h |
||
890 | C2LAR5 equ 0ee54h |
||
891 | C2LAR6 equ 0ee64h |
||
892 | C2LAR7 equ 0ee74h |
||
893 | C2LAR8 equ 0ee84h |
||
894 | C2LAR9 equ 0ee94h |
||
895 | C2LAR10 equ 0eea4h |
||
896 | C2LAR11 equ 0eeb4h |
||
897 | C2LAR12 equ 0eec4h |
||
898 | C2LAR13 equ 0eed4h |
||
899 | C2LAR14 equ 0eee4h |
||
900 | C2LAR15 equ 0eef4h |
||
901 | C2LGML equ 0ee0ah ; CAN2 Lower Global Mask Support |
||
902 | C2LMLM equ 0ee0eh ; CAN2 Lower Mask Of Last Message |
||
903 | C2MCFG1 equ 0ee16h ; CAN2 Message Configuration Register |
||
904 | C2MCFG2 equ 0ee26h |
||
905 | C2MCFG3 equ 0ee36h |
||
906 | C2MCFG4 equ 0ee46h |
||
907 | C2MCFG5 equ 0ee56h |
||
908 | C2MCFG6 equ 0ee66h |
||
909 | C2MCFG7 equ 0ee76h |
||
910 | C2MCFG8 equ 0ee86h |
||
911 | C2MCFG9 equ 0ee96h |
||
912 | C2MCFG10 equ 0eea6h |
||
913 | C2MCFG11 equ 0eeb6h |
||
914 | C2MCFG12 equ 0eec6h |
||
915 | C2MCFG13 equ 0eed6h |
||
916 | C2MCFG14 equ 0eee6h |
||
917 | C2MCFG15 equ 0eef6h |
||
918 | C2MCR1 equ 0ee10h ; CAN2 Message Control Register |
||
919 | C2MCR2 equ 0ee20h |
||
920 | C2MCR3 equ 0ee30h |
||
921 | C2MCR4 equ 0ee40h |
||
922 | C2MCR5 equ 0ee50h |
||
923 | C2MCR6 equ 0ee60h |
||
924 | C2MCR7 equ 0ee70h |
||
925 | C2MCR8 equ 0ee80h |
||
926 | C2MCR9 equ 0ee90h |
||
927 | C2MCR10 equ 0eea0h |
||
928 | C2MCR11 equ 0eeb0h |
||
929 | C2MCR12 equ 0eec0h |
||
930 | C2MCR13 equ 0eed0h |
||
931 | C2MCR14 equ 0eee0h |
||
932 | C2MCR15 equ 0eef0h |
||
933 | C2PCIR equ 0ee02h ; CAN2 Port Control And Interrupt Register |
||
934 | C2UAR1 equ 0ee12h ; CAN2 Upper Arbitration Register |
||
935 | C2UAR2 equ 0ee22h |
||
936 | C2UAR3 equ 0ee32h |
||
937 | C2UAR4 equ 0ee42h |
||
938 | C2UAR5 equ 0ee52h |
||
939 | C2UAR6 equ 0ee62h |
||
940 | C2UAR7 equ 0ee72h |
||
941 | C2UAR8 equ 0ee82h |
||
942 | C2UAR9 equ 0ee92h |
||
943 | C2UAR10 equ 0eea2h |
||
944 | C2UAR11 equ 0eeb2h |
||
945 | C2UAR12 equ 0eec2h |
||
946 | C2UAR13 equ 0eed2h |
||
947 | C2UAR14 equ 0eee2h |
||
948 | C2UAR15 equ 0eef2h |
||
949 | C2UGML equ 0ee08h ; CAN2 Upper Global Mask Support |
||
950 | C2UMLM equ 0ee0ch ; CAN2 Upper Mask Of Last Message |
||
951 | endif |
||
952 | |||
953 | |||
954 | ;---------------------------------------------------------------------------- |
||
955 | ; Vectors / Special Addresses |
||
956 | |||
957 | RESET equ 000h ; Reset Entry |
||
958 | NMITRAP equ 008h ; NMI Entry |
||
959 | STOTRAP equ 010h ; Entry Stack Overflow |
||
960 | STUTRAP equ 018h ; Entry Stack Underflow |
||
961 | BTRAP equ 028h ; Undefined Opcode, Protection Fault, |
||
962 | ; Invalid Word Access, Invalid Instruction Address, |
||
963 | ; Invalid Bus Access |
||
964 | CC0INT equ 040h ; Interrupt Entry CAPCOM |
||
965 | CC1INT equ 044h |
||
966 | CC2INT equ 048h |
||
967 | CC3INT equ 04ch |
||
968 | CC4INT equ 050h |
||
969 | CC5INT equ 054h |
||
970 | CC6INT equ 058h |
||
971 | CC7INT equ 05ch |
||
972 | CC8INT equ 060h |
||
973 | CC9INT equ 064h |
||
974 | CC10INT equ 068h |
||
975 | CC11INT equ 06ch |
||
976 | CC12INT equ 070h |
||
977 | CC13INT equ 074h |
||
978 | CC14INT equ 078h |
||
979 | CC15INT equ 07ch |
||
980 | if _n>=167 |
||
981 | CC16INT equ 0c0h |
||
982 | CC17INT equ 0c4h |
||
983 | CC18INT equ 0c8h |
||
984 | CC19INT equ 0cch |
||
985 | CC20INT equ 0d0h |
||
986 | CC21INT equ 0d4h |
||
987 | CC22INT equ 0d8h |
||
988 | CC23INT equ 0dch |
||
989 | CC24INT equ 0e0h |
||
990 | CC25INT equ 0e4h |
||
991 | CC26INT equ 0e8h |
||
992 | CC27INT equ 0ech |
||
993 | CC28INT equ 0f0h |
||
994 | CC29INT equ 0110h |
||
995 | CC30INT equ 0114h |
||
996 | CC31INT equ 0118h |
||
997 | endif |
||
998 | |||
999 | |||
1000 | T0INT equ 080h ; Interrupt Entry Timer 0 |
||
1001 | T1INT equ 084h ; Interrupt Entry Timer 1 |
||
1002 | T2INT equ 088h ; Interrupt Entry Timer 2 |
||
1003 | T3INT equ 08ch ; Interrupt Entry Timer 3 |
||
1004 | T4INT equ 090h ; Interrupt Entry Timer 4 |
||
1005 | T5INT equ 094h ; Interrupt Entry Timer 5 |
||
1006 | T6INT equ 098h ; Interrupt Entry Timer 6 |
||
1007 | if _n>=167 |
||
1008 | T7INT equ 0f4h ; Interrupt Entry Timer 7 |
||
1009 | T8INT equ 0f8h ; Interrupt Entry Timer 8 |
||
1010 | endif |
||
1011 | |||
1012 | |||
1013 | CRINT equ 09ch ; Interrupt Entry CAPREL |
||
1014 | ADCINT equ 0a0h ; Interrupt Entry A/D Conversion Complete |
||
1015 | ADEINT equ 0a4h ; Interrupt Entry A/D Converter Overflow |
||
1016 | S0TINT equ 0a8h ; Interrupt Entry SIO0 Ready to Send |
||
1017 | S0RINT equ 0ach ; Interrupt Entry SIO0 Character Reception |
||
1018 | S0EINT equ 0b0h ; Interrupt Entry SIO0 Error |
||
1019 | S1TINT equ 0b4h ; Interrupt Entry SIO1 Ready to Send |
||
1020 | S1RINT equ 0b8h ; Interrupt Entry SIO1 Character Reception |
||
1021 | S1EINT equ 0bch ; Interrupt Entry SIO1 Error |
||
1022 | if _n>=167 |
||
1023 | S0TBINT equ 011ch ; ASC0 Transmit Buffer |
||
1024 | PWMINT equ 0fch ; PWM Channels 0..3 |
||
1025 | XP0INT equ 0100h ; CAN1 |
||
1026 | XP1INT equ 0104h ; CAN2 |
||
1027 | XP2INT equ 0108h ; Unassigned Node |
||
1028 | XP3INT equ 010ch ; PLL,OWD,RTC |
||
1029 | endif |
||
1030 | |||
1031 | |||
1032 | ;---------------------------------------------------------------------------- |
||
1033 | ; Memory Ranges |
||
1034 | |||
1035 | switch _n |
||
1036 | case 168 |
||
1037 | IRAM equ 0f200h ; Start of Internal RAM |
||
1038 | case 167 |
||
1039 | IRAM equ 0f600h |
||
1040 | elsecase |
||
1041 | IRAM equ 0fa00h |
||
1042 | endcase |
||
1043 | IRAMEND equ 0fdffh ; End " " " |
||
1044 | |||
1045 | |||
1046 | BITRAM equ 0fd00h ; Start of Bit Addressable IRAM Area |
||
1047 | BITRAMEND equ 0fdffh ; End " " " " " |
||
1048 | |||
1049 | if _n>=167 |
||
1050 | BITRAM1 equ 0f100h ; Start of Bit Addressable ESFR Area |
||
1051 | BITRAM1END equ 0f1ffh ; End " " " " " |
||
1052 | BITRAM2 equ 0ff00h ; Start of Bit Addressable SFR Area |
||
1053 | BITRAM2END equ 0ffffh ; End " " " " " |
||
1054 | endif |
||
1055 | |||
1056 | |||
1057 | if _n>=167 |
||
1058 | PECPTR equ 0fce0h ; Start of PEC-Vektoren (optional) |
||
1059 | PECPTREND equ 0fcffh ; End " " |
||
1060 | elseif |
||
1061 | PECPTR equ 0fde0h |
||
1062 | PECPTREND equ 0fdffh |
||
1063 | endif |
||
1064 | |||
1065 | SFRSTART equ 0fe00h ; Start of SFR-Bereich |
||
1066 | SFREND equ 0ffffh ; End SFR-Bereich |
||
1067 | |||
1068 | if _n>=167 |
||
1069 | ESFRSTART equ 0f000h ; Start of Extended SFR Area |
||
1070 | ESFREND equ 0f1ffh ; End of Extended SFR Area |
||
1071 | endif |
||
1072 | |||
1073 | IROM equ 0 ; Start of Internal ROM |
||
1074 | if _n>=167 |
||
1075 | IROMEND equ 07fffh ; End of Internal ROM (not fully populated) |
||
1076 | elseif |
||
1077 | IROMEND equ 01fffh |
||
1078 | endif |
||
1079 | |||
1080 | if _n>=168 |
||
1081 | EEPROM equ 08000h ; Start of Internal 4 KByte EEprom |
||
1082 | EEPROMEND equ 08fffh ; End of Internal EEprom |
||
1083 | endif |
||
1084 | if _n>=167 |
||
1085 | XRAM1 equ 0e000h ; Internal XRAM 2 KByte Start |
||
1086 | XRAM1END equ 0e7ffh ; Internal XRAM 2 KByte End |
||
1087 | endif |
||
1088 | if _n>=168 |
||
1089 | XRAM2 equ 0c000h ; Internal XRAM 6 KByte Start |
||
1090 | XRAM2END equ 0d7ffh ; Internal XRAM 6 KByte End |
||
1091 | endif |
||
1092 | |||
1093 | |||
1094 | ;---------------------------------------------------------------------------- |
||
1095 | ; Bequemlichkeitsmakros |
||
1096 | |||
1097 | clr macro op ; Set Operand to 0 |
||
1098 | and op,#0 |
||
1099 | endm |
||
1100 | |||
1101 | bchg macro op ; Invert Bit |
||
1102 | bmovn op,op |
||
1103 | endm |
||
1104 | |||
1105 | dec macro op ; Decrement |
||
1106 | sub op,#1 |
||
1107 | endm |
||
1108 | |||
1109 | inc macro op ; Increment |
||
1110 | add op,#1 |
||
1111 | endm |
||
1112 | |||
1113 | swapb macro op ; Swap Bytes |
||
1114 | ror op,#8 |
||
1115 | endm |
||
1116 | |||
1117 | ;---------------------------------------------------------------------------- |
||
1118 | |||
1119 | restore ; enable listing again |
||
1120 | |||
1121 | endif ; reg166inc |