OSDN Git Service

projects clean up 1
[pinoc/pinoc.git] / pinoc_gcc / other / 3069_.h
1 /*---------------------------------------------------------------*
2  | H8/3069F I/O address definition Release 1.0 2010-02-12        |
3  |                                                               |
4  |              Copyright (c) BestTechnology CO.,LTD. 2009-2010  |
5  *---------------------------------------------------------------*/
6
7 #ifndef _3069_H_
8 #define _3069_H_
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 typedef unsigned long int _LONG;
15 typedef unsigned int      _WORD;
16 typedef unsigned char     _BYTE;
17
18 union _BITFIELD {
19   _BYTE   BYTE;
20   struct {
21     _BYTE B7  :1;
22     _BYTE B6  :1;
23     _BYTE B5  :1;
24     _BYTE B4  :1;
25     _BYTE B3  :1;
26     _BYTE B2  :1;
27     _BYTE B1  :1;
28     _BYTE B0  :1;
29   }       BIT;
30 };
31
32 union un_p1dr {             /* union P1DR   */
33   _BYTE       BYTE;         /*  Byte Access */
34   struct {                  /*  Bit  Access */
35     _BYTE     B7      :1;   /*    Bit 7     */
36     _BYTE     B6      :1;   /*    Bit 6     */
37     _BYTE     B5      :1;   /*    Bit 5     */
38     _BYTE     B4      :1;   /*    Bit 4     */
39     _BYTE     B3      :1;   /*    Bit 3     */
40     _BYTE     B2      :1;   /*    Bit 2     */
41     _BYTE     B1      :1;   /*    Bit 1     */
42     _BYTE     B0      :1;   /*    Bit 0     */
43   }           BIT;          /*              */
44 };                          /*              */
45 union un_p2pcr {            /* union P2PCR  */
46   _BYTE       BYTE;         /*  Byte Access */
47   struct {                  /*  Bit  Access */
48     _BYTE     B7      :1;   /*    Bit 7     */
49     _BYTE     B6      :1;   /*    Bit 6     */
50     _BYTE     B5      :1;   /*    Bit 5     */
51     _BYTE     B4      :1;   /*    Bit 4     */
52     _BYTE     B3      :1;   /*    Bit 3     */
53     _BYTE     B2      :1;   /*    Bit 2     */
54     _BYTE     B1      :1;   /*    Bit 1     */
55     _BYTE     B0      :1;   /*    Bit 0     */
56   }           BIT;          /*              */
57 };                          /*              */
58 union un_p2dr {             /* union P2DR   */
59   _BYTE       BYTE;         /*  Byte Access */
60   struct {                  /*  Bit  Access */
61     _BYTE     B7      :1;   /*    Bit 7     */
62     _BYTE     B6      :1;   /*    Bit 6     */
63     _BYTE     B5      :1;   /*    Bit 5     */
64     _BYTE     B4      :1;   /*    Bit 4     */
65     _BYTE     B3      :1;   /*    Bit 3     */
66     _BYTE     B2      :1;   /*    Bit 2     */
67     _BYTE     B1      :1;   /*    Bit 1     */
68     _BYTE     B0      :1;   /*    Bit 0     */
69   }           BIT;          /*              */
70 };                          /*              */
71 union un_p3dr {             /* union P3DR   */
72   _BYTE       BYTE;         /*  Byte Access */
73   struct {                  /*  Bit  Access */
74     _BYTE     B7      :1;   /*    Bit 7     */
75     _BYTE     B6      :1;   /*    Bit 6     */
76     _BYTE     B5      :1;   /*    Bit 5     */
77     _BYTE     B4      :1;   /*    Bit 4     */
78     _BYTE     B3      :1;   /*    Bit 3     */
79     _BYTE     B2      :1;   /*    Bit 2     */
80     _BYTE     B1      :1;   /*    Bit 1     */
81     _BYTE     B0      :1;   /*    Bit 0     */
82   }           BIT;          /*              */
83 };                          /*              */
84 union un_p4pcr {            /* union P4PCR  */
85   _BYTE       BYTE;         /*  Byte Access */
86   struct {                  /*  Bit  Access */
87     _BYTE     B7      :1;   /*    Bit 7     */
88     _BYTE     B6      :1;   /*    Bit 6     */
89     _BYTE     B5      :1;   /*    Bit 5     */
90     _BYTE     B4      :1;   /*    Bit 4     */
91     _BYTE     B3      :1;   /*    Bit 3     */
92     _BYTE     B2      :1;   /*    Bit 2     */
93     _BYTE     B1      :1;   /*    Bit 1     */
94     _BYTE     B0      :1;   /*    Bit 0     */
95   }           BIT;          /*              */
96 };                          /*              */
97 union un_p4dr {             /* union P4DR   */
98   _BYTE       BYTE;         /*  Byte Access */
99   struct {                  /*  Bit  Access */
100     _BYTE     B7      :1;   /*    Bit 7     */
101     _BYTE     B6      :1;   /*    Bit 6     */
102     _BYTE     B5      :1;   /*    Bit 5     */
103     _BYTE     B4      :1;   /*    Bit 4     */
104     _BYTE     B3      :1;   /*    Bit 3     */
105     _BYTE     B2      :1;   /*    Bit 2     */
106     _BYTE     B1      :1;   /*    Bit 1     */
107     _BYTE     B0      :1;   /*    Bit 0     */
108   }           BIT;          /*              */
109 };                          /*              */
110 union un_p5pcr {            /* union P5PCR  */
111   _BYTE       BYTE;         /*  Byte Access */
112   struct {                  /*  Bit  Access */
113     _BYTE             :4;   /*              */
114     _BYTE     B3      :1;   /*    Bit 3     */
115     _BYTE     B2      :1;   /*    Bit 2     */
116     _BYTE     B1      :1;   /*    Bit 1     */
117     _BYTE     B0      :1;   /*    Bit 0     */
118   }           BIT;          /*              */
119 };                          /*              */
120 union un_p5dr {             /* union P5DR   */
121   _BYTE       BYTE;         /*  Byte Access */
122   struct {                  /*  Bit  Access */
123     _BYTE             :4;   /*              */
124     _BYTE     B3      :1;   /*    Bit 3     */
125     _BYTE     B2      :1;   /*    Bit 2     */
126     _BYTE     B1      :1;   /*    Bit 1     */
127     _BYTE     B0      :1;   /*    Bit 0     */
128   }           BIT;          /*              */
129 };                          /*              */
130 union un_p6dr {             /* union P6DR   */
131   _BYTE       BYTE;         /*  Byte Access */
132   struct {                  /*  Bit  Access */
133     _BYTE     B7      :1;   /*    Bit 7     */
134     _BYTE     B6      :1;   /*    Bit 6     */
135     _BYTE     B5      :1;   /*    Bit 5     */
136     _BYTE     B4      :1;   /*    Bit 4     */
137     _BYTE     B3      :1;   /*    Bit 3     */
138     _BYTE     B2      :1;   /*    Bit 2     */
139     _BYTE     B1      :1;   /*    Bit 1     */
140     _BYTE     B0      :1;   /*    Bit 0     */
141   }           BIT;          /*              */
142 };                          /*              */
143 union un_p7dr {             /* union P7DR   */
144   _BYTE       BYTE;         /*  Byte Access */
145   struct {                  /*  Bit  Access */
146     _BYTE     B7      :1;   /*    Bit 7     */
147     _BYTE     B6      :1;   /*    Bit 6     */
148     _BYTE     B5      :1;   /*    Bit 5     */
149     _BYTE     B4      :1;   /*    Bit 4     */
150     _BYTE     B3      :1;   /*    Bit 3     */
151     _BYTE     B2      :1;   /*    Bit 2     */
152     _BYTE     B1      :1;   /*    Bit 1     */
153     _BYTE     B0      :1;   /*    Bit 0     */
154   }           BIT;          /*              */
155 };                          /*              */
156 union un_p8dr {             /* union P8DR   */
157   _BYTE       BYTE;         /*  Byte Access */
158   struct {                  /*  Bit  Access */
159     _BYTE             :3;   /*              */
160     _BYTE     B4      :1;   /*    Bit 4     */
161     _BYTE     B3      :1;   /*    Bit 3     */
162     _BYTE     B2      :1;   /*    Bit 2     */
163     _BYTE     B1      :1;   /*    Bit 1     */
164     _BYTE     B0      :1;   /*    Bit 0     */
165   }           BIT;          /*              */
166 };                          /*              */
167 union un_p9dr {             /* union P9DR   */
168   _BYTE       BYTE;         /*  Byte Access */
169   struct {                  /*  Bit  Access */
170     _BYTE             :2;   /*              */
171     _BYTE     B5      :1;   /*    Bit 5     */
172     _BYTE     B4      :1;   /*    Bit 4     */
173     _BYTE     B3      :1;   /*    Bit 3     */
174     _BYTE     B2      :1;   /*    Bit 2     */
175     _BYTE     B1      :1;   /*    Bit 1     */
176     _BYTE     B0      :1;   /*    Bit 0     */
177   }           BIT;          /*              */
178 };                          /*              */
179 union un_padr {             /* union PADR   */
180   _BYTE       BYTE;         /*  Byte Access */
181   struct {                  /*  Bit  Access */
182     _BYTE     B7      :1;   /*    Bit 7     */
183     _BYTE     B6      :1;   /*    Bit 6     */
184     _BYTE     B5      :1;   /*    Bit 5     */
185     _BYTE     B4      :1;   /*    Bit 4     */
186     _BYTE     B3      :1;   /*    Bit 3     */
187     _BYTE     B2      :1;   /*    Bit 2     */
188     _BYTE     B1      :1;   /*    Bit 1     */
189     _BYTE     B0      :1;   /*    Bit 0     */
190   }           BIT;          /*              */
191 };                          /*              */
192 union un_pbdr {             /* union PBDR   */
193   _BYTE       BYTE;         /*  Byte Access */
194   struct {                  /*  Bit  Access */
195     _BYTE     B7      :1;   /*    Bit 7     */
196     _BYTE     B6      :1;   /*    Bit 6     */
197     _BYTE     B5      :1;   /*    Bit 5     */
198     _BYTE     B4      :1;   /*    Bit 4     */
199     _BYTE     B3      :1;   /*    Bit 3     */
200     _BYTE     B2      :1;   /*    Bit 2     */
201     _BYTE     B1      :1;   /*    Bit 1     */
202     _BYTE     B0      :1;   /*    Bit 0     */
203   }           BIT;          /*              */
204 };                          /*              */
205 union un_mdcr {             /* union MDCR   */
206   _BYTE       BYTE;         /*  Byte Access */
207   struct {                  /*  Bit  Access */
208     _BYTE             :5;   /*              */
209     _BYTE     MDS     :3;   /*    MDS       */
210   }           BIT;          /*              */
211 };                          /*              */
212 union un_syscr {            /* union SYSCR  */
213   _BYTE       BYTE;         /*  Byte Access */
214   struct {                  /*  Bit  Access */
215     _BYTE     SSBY    :1;   /*    SSBY      */
216     _BYTE     STS     :3;   /*    STS       */
217     _BYTE     UE      :1;   /*    UE        */
218     _BYTE     NMIEG   :1;   /*    NMIEG     */
219     _BYTE     SSOE    :1;   /*    SSOE      */
220     _BYTE     RAME    :1;   /*    RAME      */
221   }           BIT;          /*              */
222 };                          /*              */
223 union un_divcr {            /* union DIVCR  */
224   _BYTE       BYTE;         /*  Byte Access */
225   struct {                  /*  Bit  Access */
226     _BYTE             :6;   /*              */
227     _BYTE     DIV     :2;   /*    DIV       */
228   }           BIT;          /*              */
229 };                          /*              */
230 union un_mstcr {            /* union MSTCR  */
231   _WORD       WORD;         /*  Word Access */
232   struct {                  /*  Byte Access */
233     _BYTE     H;            /*    High      */
234     _BYTE     L;            /*    Low       */
235   }           BYTE;         /*              */
236   struct {                  /*  Bit  Access */
237     _BYTE     PSTOP   :1;   /*    PSTOP     */
238     _BYTE             :4;   /*              */
239     _BYTE     _SCI2   :1;   /*    MSTPH2    */
240     _BYTE     _SCI1   :1;   /*    MSTPH1    */
241     _BYTE     _SCI0   :1;   /*    MSTPH0    */
242     _BYTE     _DMAC   :1;   /*    MSTPL7    */
243     _BYTE             :1;   /*              */
244     _BYTE     _DRAM   :1;   /*    MSTPL5    */
245     _BYTE     _ITU    :1;   /*    MSTPL4    */
246     _BYTE     _TMR01  :1;   /*    MSTPL3    */
247     _BYTE     _TMR23  :1;   /*    MSTPL2    */
248     _BYTE             :1;   /*              */
249     _BYTE     _AD     :1;   /*    MSTPL0    */
250   }           BIT;          /*              */
251 };                          /*              */
252 struct st_bsc {             /* struct BSC   */
253   char        wk1;          /*              */
254   union {                   /* BRCR         */
255     _BYTE     BYTE;         /*  Byte Access */
256     struct {                /*  Bit  Access */
257       _BYTE   A23E    :1;   /*    A23E      */
258       _BYTE   A22E    :1;   /*    A22E      */
259       _BYTE   A21E    :1;   /*    A21E      */
260       _BYTE   A20E    :1;   /*    A20E      */
261       _BYTE           :3;   /*              */
262       _BYTE   BRLE    :1;   /*    BRLE      */
263     }         BIT;          /*              */
264   }           BRCR;         /*              */
265   char        wk2[11];      /*              */
266   union {                   /* CSCR         */
267     _BYTE     BYTE;         /*  Byte Access */
268     struct {                /*  Bit  Access */
269       _BYTE   CS7E    :1;   /*    CS7E      */
270       _BYTE   CS6E    :1;   /*    CS6E      */
271       _BYTE   CS5E    :1;   /*    CS5E      */
272       _BYTE   CS4E    :1;   /*    CS4E      */
273     }         BIT;          /*              */
274   }           CSCR;         /*              */
275   union {                   /* ABWCR        */
276     _BYTE     BYTE;         /*  Byte Access */
277     struct {                /*  Bit  Access */
278       _BYTE   ABW7    :1;   /*    ABW7      */
279       _BYTE   ABW6    :1;   /*    ABW6      */
280       _BYTE   ABW5    :1;   /*    ABW5      */
281       _BYTE   ABW4    :1;   /*    ABW4      */
282       _BYTE   ABW3    :1;   /*    ABW3      */
283       _BYTE   ABW2    :1;   /*    ABW2      */
284       _BYTE   ABW1    :1;   /*    ABW1      */
285       _BYTE   ABW0    :1;   /*    ABW0      */
286     }         BIT;          /*              */
287   }           ABWCR;        /*              */
288   union {                   /* ASTCR        */
289     _BYTE     BYTE;         /*  Byte Access */
290     struct {                /*  Bit  Access */
291       _BYTE   AST7    :1;   /*    AST7      */
292       _BYTE   AST6    :1;   /*    AST6      */
293       _BYTE   AST5    :1;   /*    AST5      */
294       _BYTE   AST4    :1;   /*    AST4      */
295       _BYTE   AST3    :1;   /*    AST3      */
296       _BYTE   AST2    :1;   /*    AST2      */
297       _BYTE   AST1    :1;   /*    AST1      */
298       _BYTE   AST0    :1;   /*    AST0      */
299     }         BIT;          /*              */
300   }           ASTCR;        /*              */
301   union {                   /* WCR          */
302     _WORD     WORD;         /*  Word Access */
303     struct {                /*  Byte Access */
304       _BYTE   H;            /*    WCRH      */
305       _BYTE   L;            /*    WCRL      */
306     }         BYTE;         /*              */
307     struct {                /*  Bit  Access */
308       _BYTE   W7      :2;   /*    W7        */
309       _BYTE   W6      :2;   /*    W6        */
310       _BYTE   W5      :2;   /*    W5        */
311       _BYTE   W4      :2;   /*    W4        */
312       _BYTE   W3      :2;   /*    W3        */
313       _BYTE   W2      :2;   /*    W2        */
314       _BYTE   W1      :2;   /*    W1        */
315       _BYTE   W0      :2;   /*    W0        */
316     }         BIT;          /*              */
317   }           WCR;          /*              */
318   union {                   /* BCR          */
319     _BYTE     BYTE;         /*  Byte Access */
320     struct {                /*  Bit  Access */
321       _BYTE   ICIS1   :1;   /*    ICIS1     */
322       _BYTE   ICIS0   :1;   /*    ICIS0     */
323       _BYTE   BROME   :1;   /*    BROME     */
324       _BYTE   BRSTS1  :1;   /*    BRSTS1    */
325       _BYTE   BRSTS0  :1;   /*    BRSTS0    */
326       _BYTE           :1;   /*              */
327       _BYTE   RDEA    :1;   /*    RDEA      */
328       _BYTE   WAITE   :1;   /*    WAITE     */
329     }         BIT;          /*              */
330   }           BCR;          /*              */
331   char        wk3;          /*              */
332   union {                   /* DRCRA        */
333     _BYTE     BYTE;         /*  Byte Access */
334     struct {                /*  Bit  Access */
335       _BYTE   DRAS    :3;   /*    DRAS      */
336       _BYTE           :1;   /*              */
337       _BYTE   BE      :1;   /*    BE        */
338       _BYTE   RDM     :1;   /*    RDM       */
339       _BYTE   SRFMD   :1;   /*    SRFMD     */
340       _BYTE   RFSHE   :1;   /*    RFSHE     */
341     }         BIT;          /*              */
342   }           DRCRA;        /*              */
343   union {                   /* DRCRB        */
344     _BYTE     BYTE;         /*  Byte Access */
345     struct {                /*  Bit  Access */
346       _BYTE   MXC     :2;   /*    MXC       */
347       _BYTE   CSEL    :1;   /*    CSEL      */
348       _BYTE   RCYCE   :1;   /*    RCYCE     */
349       _BYTE           :1;   /*              */
350       _BYTE   _TPC    :1;   /*    TPC       */
351       _BYTE   RCW     :1;   /*    RCW       */
352       _BYTE   RLW     :1;   /*    RLW       */
353     }         BIT;          /*              */
354   }           DRCRB;        /*              */
355   union {                   /* RTMCSR       */
356     _BYTE     BYTE;         /*  Byte Access */
357     struct {                /*  Bit  Access */
358       _BYTE   CMF     :1;   /*    CMF       */
359       _BYTE   CMIE    :1;   /*    CMIE      */
360       _BYTE   CKS     :3;   /*    CKS       */
361     }         BIT;          /*              */
362   }           RTMCSR;       /*              */
363   _BYTE       RTCNT;        /* RTCNT        */
364   _BYTE       RTCOR;        /* RTCOR        */
365 };                          /*              */
366 struct st_intc {            /* struct INTC  */
367   union {                   /* ISCR         */
368     _BYTE     BYTE;         /*  Byte Access */
369     struct {                /*  Bit  Access */
370       _BYTE           :2;   /*              */
371       _BYTE   IRQ5SC  :1;   /*    IRQ5SC    */
372       _BYTE   IRQ4SC  :1;   /*    IRQ4SC    */
373       _BYTE   IRQ3SC  :1;   /*    IRQ3SC    */
374       _BYTE   IRQ2SC  :1;   /*    IRQ2SC    */
375       _BYTE   IRQ1SC  :1;   /*    IRQ1SC    */
376       _BYTE   IRQ0SC  :1;   /*    IRQ0SC    */
377     }         BIT;          /*              */
378   }           ISCR;         /*              */
379   union {                   /* IER          */
380     _BYTE     BYTE;         /*  Byte Access */
381     struct {                /*  Bit  Access */
382       _BYTE           :2;   /*              */
383       _BYTE   IRQ5E   :1;   /*    IRQ5E     */
384       _BYTE   IRQ4E   :1;   /*    IRQ4E     */
385       _BYTE   IRQ3E   :1;   /*    IRQ3E     */
386       _BYTE   IRQ2E   :1;   /*    IRQ2E     */
387       _BYTE   IRQ1E   :1;   /*    IRQ1E     */
388       _BYTE   IRQ0E   :1;   /*    IRQ0E     */
389     }         BIT;          /*              */
390   }           IER;          /*              */
391   union {                   /* ISR          */
392     _BYTE     BYTE;         /*  Byte Access */
393     struct {                /*  Bit  Access */
394       _BYTE           :2;   /*              */
395       _BYTE   IRQ5F   :1;   /*    IRQ5F     */
396       _BYTE   IRQ4F   :1;   /*    IRQ4F     */
397       _BYTE   IRQ3F   :1;   /*    IRQ3F     */
398       _BYTE   IRQ2F   :1;   /*    IRQ2F     */
399       _BYTE   IRQ1F   :1;   /*    IRQ1F     */
400       _BYTE   IRQ0F   :1;   /*    IRQ0F     */
401     }         BIT;          /*              */
402   }           ISR;          /*              */
403   char        wk;           /*              */
404   union {                   /* IPRA         */
405     _BYTE     BYTE;         /*  Byte Access */
406     struct {                /*  Bit  Access */
407       _BYTE   _IRQ0   :1;   /*    IRQ0      */
408       _BYTE   _IRQ1   :1;   /*    IRQ1      */
409       _BYTE   _IRQ23  :1;   /*    IRQ2,IRQ3 */
410       _BYTE   _IRQ45  :1;   /*    IRQ4,IRQ5 */
411       _BYTE   _WDT    :1;   /* WDT,DRAM,A/D */
412       _BYTE   _ITU0   :1;   /*    ITU0      */
413       _BYTE   _ITU1   :1;   /*    ITU1      */
414       _BYTE   _ITU2   :1;   /*    ITU2      */
415     }         BIT;          /*              */
416   }           IPRA;         /*              */
417   union {                   /* IPRB         */
418     _BYTE     BYTE;         /*  Byte Access */
419     struct {                /*  Bit  Access */
420       _BYTE   _TMR01  :1;   /*    TMR0,1    */
421       _BYTE   _TMR23  :1;   /*    TMR2,3    */
422       _BYTE   _DMAC   :1;   /*    DMAC      */
423       _BYTE           :1;   /*              */
424       _BYTE   _SCI0   :1;   /*    SCI0      */
425       _BYTE   _SCI1   :1;   /*    SCI1      */
426       _BYTE   _SCI2   :1;   /*    SCI2      */
427     }         BIT;          /*              */
428   }           IPRB;         /*              */
429 };                          /*              */
430 #if __CPU__==2              /* Normal Mode  */
431 struct st_sam {             /* struct DMAC  */
432   char        wk[2];        /*              */
433   void        *MAR;         /* MAR          */
434   _WORD       ETCR;         /* ETCR         */
435   _BYTE       IOAR;         /* IOAR         */
436   union {                   /* DTCR         */
437     _BYTE     BYTE;         /*  Byte Access */
438     struct {                /*  Bit  Access */
439       _BYTE   DTE     :1;   /*    DTE       */
440       _BYTE   DTSZ    :1;   /*    DTSZ      */
441       _BYTE   DTID    :1;   /*    DTID      */
442       _BYTE   RPE     :1;   /*    RPE       */
443       _BYTE   DTIE    :1;   /*    DTIE      */
444       _BYTE   DTS     :3;   /*    DTS       */
445     }         BIT;          /*              */
446   }           DTCR;         /*              */
447 };                          /*              */
448 struct st_fam {             /* struct DMAC  */
449   char        wk1[2];       /*              */
450   void        *MARA;        /* MARA         */
451   _WORD       ETCRA;        /* ETCRA        */
452   char        wk2;          /*              */
453   union {                   /* DTCRA        */
454     _BYTE     BYTE;         /*  Byte Access */
455     struct {                /*  Bit  Access */
456       _BYTE   DTE     :1;   /*    DTE       */
457       _BYTE   DTSZ    :1;   /*    DTSZ      */
458       _BYTE   SAID    :1;   /*    SAID      */
459       _BYTE   SAIDE   :1;   /*    SAIDE     */
460       _BYTE   DTIE    :1;   /*    DTIE      */
461       _BYTE   DTS     :3;   /*    DTS       */
462     }         BIT;          /*              */
463   }           DTCRA;        /*              */
464   char        wk3[2];       /*              */
465   void        *MARB;        /* MARB         */
466   _WORD       ETCRB;        /* ETCRB        */
467   char        wk4;          /*              */
468   union {                   /* DTCRB        */
469     _BYTE     BYTE;         /*  Byte Access */
470     struct {                /*  Bit  Access */
471       _BYTE   DTME    :1;   /*    DTME      */
472       _BYTE           :1;   /*              */
473       _BYTE   DAID    :1;   /*    DAID      */
474       _BYTE   DAIDE   :1;   /*    DAIDE     */
475       _BYTE   TMS     :1;   /*    TMS       */
476       _BYTE   DTS     :3;   /*    DTS       */
477     }         BIT;          /*              */
478   }           DTCRB;        /*              */
479 };                          /*              */
480 #else                       /* Advanced Mode*/
481 struct st_sam {             /* struct DMAC  */
482   void        *MAR;         /* MAR          */
483   _WORD       ETCR;         /* ETCR         */
484   _BYTE       IOAR;         /* IOAR         */
485   union {                   /* DTCR         */
486     _BYTE     BYTE;         /*  Byte Access */
487     struct {                /*  Bit  Access */
488       _BYTE   DTE     :1;   /*    DTE       */
489       _BYTE   DTSZ    :1;   /*    DTSZ      */
490       _BYTE   DTID    :1;   /*    DTID      */
491       _BYTE   RPE     :1;   /*    RPE       */
492       _BYTE   DTIE    :1;   /*    DTIE      */
493       _BYTE   DTS     :3;   /*    DTS       */
494     }         BIT;          /*              */
495   }           DTCR;         /*              */
496 };                          /*              */
497 struct st_fam {             /* struct DMAC  */
498   void        *MARA;        /* MARA         */
499   _WORD       ETCRA;        /* ETCRA        */
500   char        wk1;          /*              */
501   union {                   /* DTCRA        */
502     _BYTE     BYTE;         /*  Byte Access */
503     struct {                /*  Bit  Access */
504       _BYTE   DTE     :1;   /*    DTE       */
505       _BYTE   DTSZ    :1;   /*    DTSZ      */
506       _BYTE   SAID    :1;   /*    SAID      */
507       _BYTE   SAIDE   :1;   /*    SAIDE     */
508       _BYTE   DTIE    :1;   /*    DTIE      */
509       _BYTE   DTS     :3;   /*    DTS       */
510     }         BIT;          /*              */
511   }           DTCRA;        /*              */
512   void        *MARB;        /* MARB         */
513   _WORD       ETCRB;        /* ETCRB        */
514   char        wk2;          /*              */
515   union {                   /* DTCRB        */
516     _BYTE     BYTE;         /*  Byte Access */
517     struct {                /*  Bit  Access */
518       _BYTE   DTME    :1;   /*    DTME      */
519       _BYTE           :1;   /*              */
520       _BYTE   DAID    :1;   /*    DAID      */
521       _BYTE   DAIDE   :1;   /*    DAIDE     */
522       _BYTE   TMS     :1;   /*    TMS       */
523       _BYTE   DTS     :3;   /*    DTS       */
524     }         BIT;          /*              */
525   }           DTCRB;        /*              */
526 };                          /*              */
527 #endif                      /*              */
528 struct st_flash {           /* struct FLASH */
529   char        wk;           /*              */
530   union {                   /* RAMCR        */
531     _BYTE     BYTE;         /*  Byte Access */
532     struct {                /*  Bit  Access */
533       _BYTE           :4;   /*              */
534       _BYTE   RAMS    :1;   /*    RAMS      */
535       _BYTE   RAM     :3;   /*    RAM       */
536     }         BIT;          /*              */
537   }           RAMCR;        /*              */
538   char        wk1[56];      /*              */
539   union {                   /* FCCS         */
540     _BYTE     BYTE;         /*  Byte Access */
541     struct {                /*  Bit  Access */
542       _BYTE   FWE     :1;   /*    FWE       */
543       _BYTE           :2;   /*              */
544       _BYTE   FLER    :1;   /*    FLER      */
545       _BYTE           :3;   /*              */
546       _BYTE   SCO     :1;   /*    SCO       */
547     }         BIT;          /*              */
548   }           FCCS;         /*              */
549   union {                   /* FPCS         */
550     _BYTE     BYTE;         /*  Byte Access */
551     struct {                /*  Bit  Access */
552       _BYTE           :7;   /*              */
553       _BYTE   PPVS    :1;   /*    PPVS      */
554     }         BIT;          /*              */
555   }           FPCS;         /*              */
556   union {                   /* FECS         */
557     _BYTE     BYTE;         /*  Byte Access */
558     struct {                /*  Bit  Access */
559       _BYTE           :7;   /*              */
560       _BYTE   EPVB    :1;   /*    EPVB      */
561     }         BIT;          /*              */
562   }           FECS;         /*              */
563   char        wk2;          /*              */
564   _BYTE       FKEY;         /* FKEY         */
565   _BYTE       FMATS;        /* FMATS        */
566   char        wk3;          /*              */
567   union {                   /* FVACR        */
568     _BYTE     BYTE;         /*  Byte Access */
569     struct {                /*  Bit  Access */
570       _BYTE   FVCHGE  :1;   /*    FVCHGE    */
571       _BYTE           :3;   /*              */
572       _BYTE   FVSEL   :4;   /*    FVSEL     */
573     }         BIT;          /*              */
574   }           FVACR;        /*              */
575   _BYTE       FVADRR;       /* FVADRR       */
576   _BYTE       FVADRE;       /* FVADRE       */
577   _BYTE       FVADRH;       /* FVADRH       */
578   _BYTE       FVADRL;       /* FVADRL       */
579 };                          /*              */
580 struct st_itu {             /* struct ITU   */
581   union {                   /* TSTR         */
582     _BYTE     BYTE;         /*  Byte Access */
583     struct {                /*  Bit  Access */
584       _BYTE           :5;   /*              */
585       _BYTE   STR2    :1;   /*    STR2      */
586       _BYTE   STR1    :1;   /*    STR1      */
587       _BYTE   STR0    :1;   /*    STR0      */
588     }         BIT;          /*              */
589   }           TSTR;         /*              */
590   union {                   /* TSNC         */
591     _BYTE     BYTE;         /*  Byte Access */
592     struct {                /*  Bit  Access */
593       _BYTE           :5;   /*              */
594       _BYTE   SYNC2   :1;   /*    SYNC2     */
595       _BYTE   SYNC1   :1;   /*    SYNC1     */
596       _BYTE   SYNC0   :1;   /*    SYNC0     */
597     }         BIT;          /*              */
598   }           TSNC;         /*              */
599   union {                   /* TMDR         */
600     _BYTE     BYTE;         /*  Byte Access */
601     struct {                /*  Bit  Access */
602       _BYTE           :1;   /*              */
603       _BYTE   MDF     :1;   /*    MDF       */
604       _BYTE   FDIR    :1;   /*    FDIR      */
605       _BYTE           :2;   /*              */
606       _BYTE   PWM2    :1;   /*    PWM2      */
607       _BYTE   PWM1    :1;   /*    PWM1      */
608       _BYTE   PWM0    :1;   /*    PWM0      */
609     }         BIT;          /*              */
610   }           TMDR;         /*              */
611   union {                   /* TOLR         */
612     _BYTE     BYTE;         /*  Byte Access */
613     struct {                /*  Bit  Access */
614       _BYTE           :2;   /*              */
615       _BYTE   TOB2    :1;   /*    TOB2      */
616       _BYTE   TOA2    :1;   /*    TOA2      */
617       _BYTE   TOB1    :1;   /*    TOB1      */
618       _BYTE   TOA1    :1;   /*    TOA1      */
619       _BYTE   TOB0    :1;   /*    TOB0      */
620       _BYTE   TOA0    :1;   /*    TOA0      */
621     }         BIT;          /*              */
622   }           TOLR;         /*              */
623   union {                   /* TISRA        */
624     _BYTE     BYTE;         /*  Byte Access */
625     struct {                /*  Bit  Access */
626       _BYTE           :1;   /*              */
627       _BYTE   IMIEA2  :1;   /*    IMIEA2    */
628       _BYTE   IMIEA1  :1;   /*    IMIEA2    */
629       _BYTE   IMIEA0  :1;   /*    IMIEA2    */
630       _BYTE           :1;   /*              */
631       _BYTE   IMFA2   :1;   /*    IMFA2     */
632       _BYTE   IMFA1   :1;   /*    IMFA1     */
633       _BYTE   IMFA0   :1;   /*    IMFA0     */
634     }         BIT;          /*              */
635   }           TISRA;        /*              */
636   union {                   /* TISRB        */
637     _BYTE     BYTE;         /*  Byte Access */
638     struct {                /*  Bit  Access */
639       _BYTE           :1;   /*              */
640       _BYTE   IMIEB2  :1;   /*    IMIEB2    */
641       _BYTE   IMIEB1  :1;   /*    IMIEB2    */
642       _BYTE   IMIEB0  :1;   /*    IMIEB2    */
643       _BYTE           :1;   /*              */
644       _BYTE   IMFB2   :1;   /*    IMFB2     */
645       _BYTE   IMFB1   :1;   /*    IMFB1     */
646       _BYTE   IMFB0   :1;   /*    IMFB0     */
647     }         BIT;          /*              */
648   }           TISRB;        /*              */
649   union {                   /* TISRC        */
650     _BYTE     BYTE;         /*  Byte Access */
651     struct {                /*  Bit  Access */
652       _BYTE           :1;   /*              */
653       _BYTE   OVIE2   :1;   /*    OVIE2     */
654       _BYTE   OVIE1   :1;   /*    OVIE2     */
655       _BYTE   OVIE0   :1;   /*    OVIE2     */
656       _BYTE           :1;   /*              */
657       _BYTE   OVF2    :1;   /*    OVF2      */
658       _BYTE   OVF1    :1;   /*    OVF1      */
659       _BYTE   OVF0    :1;   /*    OVF0      */
660     }         BIT;          /*              */
661   }           TISRC;        /*              */
662 };                          /*              */
663 struct st_itu0 {            /* struct ITU0  */
664   union {                   /* TCR          */
665     _BYTE     BYTE;         /*  Byte Access */
666     struct {                /*  Bit  Access */
667       _BYTE           :1;   /*              */
668       _BYTE   CCLR    :2;   /*    CCLR      */
669       _BYTE   CKEG    :2;   /*    CKEG      */
670       _BYTE   TPSC    :3;   /*    TPSC      */
671     }         BIT;          /*              */
672   }           TCR;          /*              */
673   union {                   /* TIOR         */
674     _BYTE     BYTE;         /*  Byte Access */
675     struct {                /*  Bit  Access */
676       _BYTE           :1;   /*              */
677       _BYTE   IOB     :3;   /*    IOB       */
678       _BYTE           :1;   /*              */
679       _BYTE   IOA     :3;   /*    IOA       */
680     }         BIT;          /*              */
681   }           TIOR;         /*              */
682   _WORD       TCNT;         /* TCNT         */
683   _WORD       GRA;          /* GRA          */
684   _WORD       GRB;          /* GRB          */
685 };                          /*              */
686 union un_wdt {              /* union WDT    */
687   struct {                  /* Read  Access */
688     union {                 /* TCSR         */
689       _BYTE   BYTE;         /*  Byte Access */
690       struct {              /*  Bit  Access */
691         _BYTE OVF     :1;   /*    OVF       */
692         _BYTE WTIT    :1;   /*    WT/IT     */
693         _BYTE TME     :1;   /*    TME       */
694         _BYTE         :2;   /*              */
695         _BYTE CKS     :3;   /*    CKS       */
696       }       BIT;          /*              */
697     }         TCSR;         /*              */
698     _BYTE     TCNT;         /* TCNT         */
699     char      wk;           /*              */
700     union {                 /* RSTCSR       */
701       _BYTE   BYTE;         /*  Byte Access */
702       struct {              /*              */
703         _BYTE WRST    :1;   /*    WSRT      */
704       }       BIT;          /*              */
705     }         RSTCSR;       /*              */
706   }           READ;         /*              */
707   struct {                  /* Write Access */
708     _WORD     TCSR;         /* TCSR/TCNT    */
709     _WORD     RSTCSR;       /* RSTCSR       */
710   } WRITE;                  /*              */
711 };                          /*              */
712 struct st_tmr01 {           /* struct TMR01 */
713   union {                   /* TCR0         */
714     _BYTE     BYTE;         /*  Byte Access */
715     struct {                /*  Bit  Access */
716       _BYTE   CMIEB   :1;   /*    CMIEB     */
717       _BYTE   CMIEA   :1;   /*    CMIEA     */
718       _BYTE   OVIE    :1;   /*    OVIE      */
719       _BYTE   CCLR    :2;   /*    CCLR      */
720       _BYTE   CKS     :3;   /*    CKS       */
721     }         BIT;          /*              */
722   }           TCR0;         /*              */
723   union {                   /* TCR1         */
724     _BYTE     BYTE;         /*  Byte Access */
725     struct {                /*  Bit  Access */
726       _BYTE   CMIEB   :1;   /*    CMIEB     */
727       _BYTE   CMIEA   :1;   /*    CMIEA     */
728       _BYTE   OVIE    :1;   /*    OVIE      */
729       _BYTE   CCLR    :2;   /*    CCLR      */
730       _BYTE   CKS     :3;   /*    CKS       */
731     }         BIT;          /*              */
732   }           TCR1;         /*              */
733   union {                   /* TCSR0        */
734     _BYTE     BYTE;         /*  Byte Access */
735     struct {                /*  Bit  Access */
736       _BYTE   CMFB    :1;   /*    CMFB      */
737       _BYTE   CMFA    :1;   /*    CMFA      */
738       _BYTE   OVF     :1;   /*    OVF       */
739       _BYTE   ADTE    :1;   /*    ADTE      */
740       _BYTE   OS      :4;   /*    OS        */
741     }         BIT;          /*              */
742   }           TCSR0;        /*              */
743   union {                   /* TCSR1        */
744     _BYTE     BYTE;         /*  Byte Access */
745     struct {                /*  Bit  Access */
746       _BYTE   CMFB    :1;   /*    CMFB      */
747       _BYTE   CMFA    :1;   /*    CMFA      */
748       _BYTE   OVF     :1;   /*    OVF       */
749       _BYTE   ICE     :1;   /*    ICE       */
750       _BYTE   OS      :4;   /*    OS        */
751     }         BIT;          /*              */
752   }           TCSR1;        /*              */
753   _WORD       TCORA;        /* TCORA        */
754   _WORD       TCORB;        /* TCORB        */
755   _WORD       TCNT;         /* TCNT         */
756 };                          /*              */
757 struct st_tmr23 {           /* struct TMR23 */
758   union {                   /* TCR2         */
759     _BYTE     BYTE;         /*  Byte Access */
760     struct {                /*  Bit  Access */
761       _BYTE   CMIEB   :1;   /*    CMIEB     */
762       _BYTE   CMIEA   :1;   /*    CMIEA     */
763       _BYTE   OVIE    :1;   /*    OVIE      */
764       _BYTE   CCLR    :2;   /*    CCLR      */
765       _BYTE   CKS     :3;   /*    CKS       */
766     }         BIT;          /*              */
767   }           TCR2;         /*              */
768   union {                   /* TCR3         */
769     _BYTE     BYTE;         /*  Byte Access */
770     struct {                /*  Bit  Access */
771       _BYTE   CMIEB   :1;   /*    CMIEB     */
772       _BYTE   CMIEA   :1;   /*    CMIEA     */
773       _BYTE   OVIE    :1;   /*    OVIE      */
774       _BYTE   CCLR    :2;   /*    CCLR      */
775       _BYTE   CKS     :3;   /*    CKS       */
776     }         BIT;          /*              */
777   }           TCR3;         /*              */
778   union {                   /* TCSR2        */
779     _BYTE     BYTE;         /*  Byte Access */
780     struct {                /*  Bit  Access */
781       _BYTE   CMFB    :1;   /*    CMFB      */
782       _BYTE   CMFA    :1;   /*    CMFA      */
783       _BYTE   OVF     :1;   /*    OVF       */
784       _BYTE           :1;   /*              */
785       _BYTE   OS      :4;   /*    OS        */
786     }         BIT;          /*              */
787   }           TCSR2;        /*              */
788   union {                   /* TCSR3        */
789     _BYTE     BYTE;         /*  Byte Access */
790     struct {                /*  Bit  Access */
791       _BYTE   CMFB    :1;   /*    CMFB      */
792       _BYTE   CMFA    :1;   /*    CMFA      */
793       _BYTE   OVF     :1;   /*    OVF       */
794       _BYTE   ICE     :1;   /*    ICE       */
795       _BYTE   OS      :4;   /*    OS        */
796     }         BIT;          /*              */
797   }           TCSR3;        /*              */
798   _WORD       TCORA;        /* TCORA        */
799   _WORD       TCORB;        /* TCORB        */
800   _WORD       TCNT;         /* TCNT         */
801 };                          /*              */
802 struct st_tmr0 {            /* struct TMR0  */
803   union {                   /* TCR          */
804     _BYTE     BYTE;         /*  Byte Access */
805     struct {                /*  Bit  Access */
806       _BYTE   CMIEB   :1;   /*    CMIEB     */
807       _BYTE   CMIEA   :1;   /*    CMIEA     */
808       _BYTE   OVIE    :1;   /*    OVIE      */
809       _BYTE   CCLR    :2;   /*    CCLR      */
810       _BYTE   CKS     :3;   /*    CKS       */
811     }         BIT;          /*              */
812   }           TCR;          /*              */
813   char        wk1;          /*              */
814   union {                   /* TCSR         */
815     _BYTE     BYTE;         /*  Byte Access */
816     struct {                /*  Bit  Access */
817       _BYTE   CMFB    :1;   /*    CMFB      */
818       _BYTE   CMFA    :1;   /*    CMFA      */
819       _BYTE   OVF     :1;   /*    OVF       */
820       _BYTE   ADTE    :1;   /*    ADTE      */
821       _BYTE   OS      :4;   /*    OS        */
822     }         BIT;          /*              */
823   }           TCSR;         /*              */
824   char        wk2;          /*              */
825   _BYTE       TCORA;        /* TCORA        */
826   char        wk3;          /*              */
827   _BYTE       TCORB;        /* TCORB        */
828   char        wk4;          /*              */
829   _BYTE       TCNT;         /* TCNT         */
830 };                          /*              */
831 struct st_tmr1 {            /* struct TMR1  */
832   union {                   /* TCR          */
833     _BYTE     BYTE;         /*  Byte Access */
834     struct {                /*  Bit  Access */
835       _BYTE   CMIEB   :1;   /*    CMIEB     */
836       _BYTE   CMIEA   :1;   /*    CMIEA     */
837       _BYTE   OVIE    :1;   /*    OVIE      */
838       _BYTE   CCLR    :2;   /*    CCLR      */
839       _BYTE   CKS     :3;   /*    CKS       */
840     }         BIT;          /*              */
841   }           TCR;          /*              */
842   char        wk1;          /*              */
843   union {                   /* TCSR         */
844     _BYTE     BYTE;         /*  Byte Access */
845     struct {                /*  Bit  Access */
846       _BYTE   CMFB    :1;   /*    CMFB      */
847       _BYTE   CMFA    :1;   /*    CMFA      */
848       _BYTE   OVF     :1;   /*    OVF       */
849       _BYTE   ICE     :1;   /*    ICE       */
850       _BYTE   OS      :4;   /*    OS        */
851     }         BIT;          /*              */
852   }           TCSR;         /*              */
853   char        wk2;          /*              */
854   _BYTE       TCORA;        /* TCORA        */
855   char        wk3;          /*              */
856   _BYTE       TCORB;        /* TCORB        */
857   char        wk4;          /*              */
858   _BYTE       TCNT;         /* TCNT         */
859 };                          /*              */
860 struct st_tmr2 {            /* struct TMR2  */
861   union {                   /* TCR          */
862     _BYTE     BYTE;         /*  Byte Access */
863     struct {                /*  Bit  Access */
864       _BYTE   CMIEB   :1;   /*    CMIEB     */
865       _BYTE   CMIEA   :1;   /*    CMIEA     */
866       _BYTE   OVIE    :1;   /*    OVIE      */
867       _BYTE   CCLR    :2;   /*    CCLR      */
868       _BYTE   CKS     :3;   /*    CKS       */
869     }         BIT;          /*              */
870   }           TCR;          /*              */
871   char        wk1;          /*              */
872   union {                   /* TCSR         */
873     _BYTE     BYTE;         /*  Byte Access */
874     struct {                /*  Bit  Access */
875       _BYTE   CMFB    :1;   /*    CMFB      */
876       _BYTE   CMFA    :1;   /*    CMFA      */
877       _BYTE   OVF     :1;   /*    OVF       */
878       _BYTE           :1;   /*              */
879       _BYTE   OS      :4;   /*    OS        */
880     }         BIT;          /*              */
881   }           TCSR;         /*              */
882   char        wk2;          /*              */
883   _BYTE       TCORA;        /* TCORA        */
884   char        wk3;          /*              */
885   _BYTE       TCORB;        /* TCORB        */
886   char        wk4;          /*              */
887   _BYTE       TCNT;         /* TCNT         */
888 };                          /*              */
889 union un_dastcr {           /* DASTCR       */
890   _BYTE       BYTE;         /*  Byte Access */
891   struct {                  /*  Bit  Access */
892     _BYTE             :7;   /*              */
893     _BYTE     DASTE   :1;   /*    DASTE     */
894   }           BIT;          /*              */
895 };                          /*              */
896 struct st_da {              /* struct D/A   */
897   _BYTE       DADR0;        /* DADR0        */
898   _BYTE       DADR1;        /* DADR1        */
899   union {                   /* DACR         */
900     _BYTE     BYTE;         /*  Byte Access */
901     struct {                /*  Bit  Access */
902       _BYTE   DAOE1   :1;   /*    DAOE1     */
903       _BYTE   DAOE0   :1;   /*    DAOE0     */
904       _BYTE   DAE     :1;   /*    DAE       */
905     }         BIT;          /*              */
906   }           DACR;         /*              */
907 };                          /*              */
908 struct st_tpc {             /* struct TPC   */
909   union {                   /* TPMR         */
910     _BYTE     BYTE;         /*  Byte Access */
911     struct {                /*  Bit  Access */
912       _BYTE           :4;   /*              */
913       _BYTE   G3NOV   :1;   /*    G3NOV     */
914       _BYTE   G2NOV   :1;   /*    G2NOV     */
915       _BYTE   G1NOV   :1;   /*    G1NOV     */
916       _BYTE   G0NOV   :1;   /*    G0NOV     */
917     }         BIT;          /*              */
918   }           TPMR;         /*              */
919   union {                   /* TPCR         */
920     _BYTE     BYTE;         /*  Byte Access */
921     struct {                /*  Bit  Access */
922       _BYTE   G3CMS   :2;   /*    G3CMS     */
923       _BYTE   G2CMS   :2;   /*    G2CMS     */
924       _BYTE   G1CMS   :2;   /*    G1CMS     */
925       _BYTE   G0CMS   :2;   /*    G0CMS     */
926     }         BIT;          /*              */
927   }           TPCR;         /*              */
928   union {                   /* NDERB        */
929     _BYTE     BYTE;         /*  Byte Access */
930     struct {                /*  Bit  Access */
931       _BYTE   B15     :1;   /*    NDER15    */
932       _BYTE   B14     :1;   /*    NDER14    */
933       _BYTE   B13     :1;   /*    NDER13    */
934       _BYTE   B12     :1;   /*    NDER12    */
935       _BYTE   B11     :1;   /*    NDER11    */
936       _BYTE   B10     :1;   /*    NDER10    */
937       _BYTE   B9      :1;   /*    NDER9     */
938       _BYTE   B8      :1;   /*    NDER8     */
939     }         BIT;          /*              */
940   }           NDERB;        /*              */
941   union {                   /* NDERA        */
942     _BYTE     BYTE;         /*  Byte Access */
943     struct {                /*  Bit  Access */
944       _BYTE   B7      :1;   /*    NDER7     */
945       _BYTE   B6      :1;   /*    NDER6     */
946       _BYTE   B5      :1;   /*    NDER5     */
947       _BYTE   B4      :1;   /*    NDER4     */
948       _BYTE   B3      :1;   /*    NDER3     */
949       _BYTE   B2      :1;   /*    NDER2     */
950       _BYTE   B1      :1;   /*    NDER1     */
951       _BYTE   B0      :1;   /*    NDER0     */
952     }         BIT;          /*              */
953   }           NDERA;        /*              */
954   union {                   /* NDRB (H'A4)  */
955     _BYTE     BYTE;         /*  Byte Access */
956     struct {                /*  Bit  Access */
957       _BYTE   B15     :1;   /*    NDR15     */
958       _BYTE   B14     :1;   /*    NDR14     */
959       _BYTE   B13     :1;   /*    NDR13     */
960       _BYTE   B12     :1;   /*    NDR12     */
961       _BYTE   B11     :1;   /*    NDR11     */
962       _BYTE   B10     :1;   /*    NDR10     */
963       _BYTE   B9      :1;   /*    NDR9      */
964       _BYTE   B8      :1;   /*    NDR8      */
965     }         BIT;          /*              */
966   }           NDRB1;        /*              */
967   union {                   /* NDRA (H'A5)  */
968     _BYTE     BYTE;         /*  Byte Access */
969     struct {                /*  Bit  Access */
970       _BYTE   B7      :1;   /*    NDR7      */
971       _BYTE   B6      :1;   /*    NDR6      */
972       _BYTE   B5      :1;   /*    NDR5      */
973       _BYTE   B4      :1;   /*    NDR4      */
974       _BYTE   B3      :1;   /*    NDR3      */
975       _BYTE   B2      :1;   /*    NDR2      */
976       _BYTE   B1      :1;   /*    NDR1      */
977       _BYTE   B0      :1;   /*    NDR0      */
978     }         BIT;          /*              */
979   }           NDRA1;        /*              */
980   union {                   /* NDRB (H'A6)  */
981     _BYTE     BYTE;         /*  Byte Access */
982     struct {                /*  Bit  Access */
983       _BYTE           :4;   /*              */
984       _BYTE   B11     :1;   /*    NDR11     */
985       _BYTE   B10     :1;   /*    NDR10     */
986       _BYTE   B9      :1;   /*    NDR9      */
987       _BYTE   B8      :1;   /*    NDR8      */
988     }         BIT;          /*              */
989   }           NDRB2;        /*              */
990   union {                   /* NDRA (H'A7)  */
991     _BYTE     BYTE;         /*  Byte Access */
992     struct {                /*  Bit  Access */
993       _BYTE           :4;   /*              */
994       _BYTE   B3      :1;   /*    NDR3      */
995       _BYTE   B2      :1;   /*    NDR2      */
996       _BYTE   B1      :1;   /*    NDR1      */
997       _BYTE   B0      :1;   /*    NDR0      */
998     }         BIT;          /*              */
999   }           NDRA2;        /*              */
1000 };                          /*              */
1001 struct st_sci {             /* struct SCI   */
1002   union {                   /* SMR          */
1003     _BYTE     BYTE;         /*  Byte Access */
1004     struct {                /*  Bit  Access */
1005       _BYTE   CA      :1;   /*    C/A       */
1006       _BYTE   CHR     :1;   /*    CHR       */
1007       _BYTE   PE      :1;   /*    PE        */
1008       _BYTE   OE      :1;   /*    O/E       */
1009       _BYTE   STOP    :1;   /*    STOP      */
1010       _BYTE   MP      :1;   /*    MP        */
1011       _BYTE   CKS     :2;   /*    CKS       */
1012     }         BIT;          /*              */
1013   }           SMR;          /*              */
1014   _BYTE       BRR;          /* BRR          */
1015   union {                   /* SCR          */
1016     _BYTE     BYTE;         /*  Byte Access */
1017     struct {                /*  Bit  Access */
1018       _BYTE   TIE     :1;   /*    TIE       */
1019       _BYTE   RIE     :1;   /*    RIE       */
1020       _BYTE   TE      :1;   /*    TE        */
1021       _BYTE   RE      :1;   /*    RE        */
1022       _BYTE   MPIE    :1;   /*    MPIE      */
1023       _BYTE   TEIE    :1;   /*    TEIE      */
1024       _BYTE   CKE     :2;   /*    CKE       */
1025     }         BIT;          /*              */
1026   }           SCR;          /*              */
1027   _BYTE       TDR;          /* TDR          */
1028   union {                   /* SSR          */
1029     _BYTE     BYTE;         /*  Byte Access */
1030     struct {                /*  Bit  Access */
1031       _BYTE   TDRE    :1;   /*    TDRE      */
1032       _BYTE   RDRF    :1;   /*    RDRF      */
1033       _BYTE   ORER    :1;   /*    ORER      */
1034       _BYTE   FER     :1;   /*    FER       */
1035       _BYTE   PER     :1;   /*    PER       */
1036       _BYTE   TEND    :1;   /*    TEND      */
1037       _BYTE   MPB     :1;   /*    MPB       */
1038       _BYTE   MPBT    :1;   /*    MPBT      */
1039     }         BIT;          /*              */
1040   }           SSR;          /*              */
1041   _BYTE       RDR;          /* RDR          */
1042   union {                   /* SCMR         */
1043     _BYTE     BYTE;         /*  Byte Access */
1044     struct {                /*  Bit  Access */
1045       _BYTE           :4;   /*              */
1046       _BYTE   SDIR    :1;   /*    SDIR      */
1047       _BYTE   SINV    :1;   /*    SINV      */
1048       _BYTE           :1;   /*              */
1049       _BYTE   SMIF    :1;   /*    SMIF      */
1050     }         BIT;          /*              */
1051   }           SCMR;         /*              */
1052 };                          /*              */
1053 struct st_smci {            /* struct SMCI  */
1054   union {                   /* SMR          */
1055     _BYTE     BYTE;         /*  Byte Access */
1056     struct {                /*  Bit  Access */
1057       _BYTE   GM      :1;   /*    GM        */
1058       _BYTE   CHR     :1;   /*    CHR       */
1059       _BYTE   PE      :1;   /*    PE        */
1060       _BYTE   OE      :1;   /*    O/E       */
1061       _BYTE   STOP    :1;   /*    STOP      */
1062       _BYTE   MP      :1;   /*    MP        */
1063       _BYTE   CKS     :2;   /*    CKS       */
1064     }         BIT;          /*              */
1065   }           SMR;          /*              */
1066   _BYTE       BRR;          /* BRR          */
1067   union {                   /* SCR          */
1068     _BYTE     BYTE;         /*  Byte Access */
1069     struct {                /*  Bit  Access */
1070       _BYTE   TIE     :1;   /*    TIE       */
1071       _BYTE   RIE     :1;   /*    RIE       */
1072       _BYTE   TE      :1;   /*    TE        */
1073       _BYTE   RE      :1;   /*    RE        */
1074       _BYTE   MPIE    :1;   /*    MPIE      */
1075       _BYTE   TEIE    :1;   /*    TEIE      */
1076       _BYTE   CKE     :2;   /*    CKE       */
1077     }         BIT;          /*              */
1078   }           SCR;          /*              */
1079   _BYTE       TDR;          /* TDR          */
1080   union {                   /* SSR          */
1081     _BYTE     BYTE;         /*  Byte Access */
1082     struct {                /*  Bit  Access */
1083       _BYTE   TDRE    :1;   /*    TDRE      */
1084       _BYTE   RDRF    :1;   /*    RDRF      */
1085       _BYTE   ORER    :1;   /*    ORER      */
1086       _BYTE   ERS     :1;   /*    ERS       */
1087       _BYTE   PER     :1;   /*    PER       */
1088       _BYTE   TEND    :1;   /*    TEND      */
1089       _BYTE   MPB     :1;   /*    MPB       */
1090       _BYTE   MPBT    :1;   /*    MPBT      */
1091     }         BIT;          /*              */
1092   }           SSR;          /*              */
1093   _BYTE       RDR;          /* RDR          */
1094   union {                   /* SCMR         */
1095     _BYTE     BYTE;         /*  Byte Access */
1096     struct {                /*  Bit  Access */
1097       _BYTE           :4;   /*              */
1098       _BYTE   SDIR    :1;   /*    SDIR      */
1099       _BYTE   SINV    :1;   /*    SINV      */
1100       _BYTE           :1;   /*              */
1101       _BYTE   SMIF    :1;   /*    SMIF      */
1102     }         BIT;          /*              */
1103   }           SCMR;         /*              */
1104 };                          /*              */
1105 struct st_ad {              /* struct A/D   */
1106   _WORD       ADDRA;        /* ADDRA        */
1107   _WORD       ADDRB;        /* ADDRB        */
1108   _WORD       ADDRC;        /* ADDRC        */
1109   _WORD       ADDRD;        /* ADDRD        */
1110   union {                   /* ADCSR        */
1111     _BYTE     BYTE;         /*  Byte Access */
1112     struct {                /*  Bit  Access */
1113       _BYTE   ADF     :1;   /*    ADF       */
1114       _BYTE   ADIE    :1;   /*    ADIE      */
1115       _BYTE   ADST    :1;   /*    ADST      */
1116       _BYTE   SCAN    :1;   /*    SCAN      */
1117       _BYTE   CKS     :1;   /*    CKS       */
1118       _BYTE   CH      :3;   /*    CH        */
1119     }         BIT;          /*              */
1120   }           ADCSR;        /*              */
1121   union {                   /* ADCR         */
1122     _BYTE     BYTE;         /*  Byte Access */
1123     struct {                /*  Bit  Access */
1124       _BYTE   TRGE    :1;   /*    TRGE      */
1125     }         BIT;          /*              */
1126   }           ADCR;         /*              */
1127 };                          /*              */
1128
1129 #define P1DDR   (*(volatile unsigned char   *)0xFEE000) /* P1DDR */
1130 #define P2DDR   (*(volatile unsigned char   *)0xFEE001) /* P2DDR */
1131 #define P3DDR   (*(volatile unsigned char   *)0xFEE002) /* P3DDR */
1132 #define P4DDR   (*(volatile unsigned char   *)0xFEE003) /* P4DDR */
1133 #define P5DDR   (*(volatile unsigned char   *)0xFEE004) /* P5DDR */
1134 #define P6DDR   (*(volatile unsigned char   *)0xFEE005) /* P6DDR */
1135 #define P8DDR   (*(volatile unsigned char   *)0xFEE007) /* P8DDR */
1136 #define P9DDR   (*(volatile unsigned char   *)0xFEE008) /* P9DDR */
1137 #define PADDR   (*(volatile unsigned char   *)0xFEE009) /* PADDR */
1138 #define PBDDR   (*(volatile unsigned char   *)0xFEE00A) /* PBDDR */
1139 #define P2PCR   (*(volatile union  un_p2pcr *)0xFEE03C) /* P2PCR */
1140 #define P4PCR   (*(volatile union  un_p4pcr *)0xFEE03E) /* P4PCR */
1141 #define P5PCR   (*(volatile union  un_p5pcr *)0xFEE03F) /* P5PCR */
1142 #define P1DR    (*(volatile union  un_p1dr  *)0xFFFFD0) /* P1DR */
1143 #define P2DR    (*(volatile union  un_p2dr  *)0xFFFFD1) /* P2DR */
1144 #define P3DR    (*(volatile union  un_p3dr  *)0xFFFFD2) /* P3DR */
1145 #define P4DR    (*(volatile union  un_p4dr  *)0xFFFFD3) /* P4DR */
1146 #define P5DR    (*(volatile union  un_p5dr  *)0xFFFFD4) /* P5DR */
1147 #define P6DR    (*(volatile union  un_p6dr  *)0xFFFFD5) /* P6DR */
1148 #define P7DR    (*(volatile union  un_p7dr  *)0xFFFFD6) /* P7DR */
1149 #define P8DR    (*(volatile union  un_p8dr  *)0xFFFFD7) /* P8DR */
1150 #define P9DR    (*(volatile union  un_p9dr  *)0xFFFFD8) /* P9DR */
1151 #define PADR    (*(volatile union  un_padr  *)0xFFFFD9) /* PADR */
1152 #define PBDR    (*(volatile union  un_pbdr  *)0xFFFFDA) /* PBDR */
1153 #define MDCR    (*(volatile union  un_mdcr  *)0xFEE011) /* MDCR */
1154 #define SYSCR   (*(volatile union  un_syscr *)0xFEE012) /* SYSCR */
1155 #define DIVCR   (*(volatile union  un_divcr *)0xFEE01B) /* DIVCR */
1156 #define MSTCR   (*(volatile union  un_mstcr *)0xFEE01C) /* MSTCR */
1157 #define BSC     (*(volatile struct st_bsc   *)0xFEE012) /* BSC */
1158 #define INTC    (*(volatile struct st_intc  *)0xFEE014) /* INTC */
1159 #define DMAC0A  (*(volatile struct st_sam   *)0xFFFF20) /* DMAC 0A */
1160 #define DMAC0B  (*(volatile struct st_sam   *)0xFFFF28) /* DMAC 0B */
1161 #define DMAC1A  (*(volatile struct st_sam   *)0xFFFF30) /* DMAC 1A */
1162 #define DMAC1B  (*(volatile struct st_sam   *)0xFFFF38) /* DMAC 1B */
1163 #define DMAC0   (*(volatile struct st_fam   *)0xFFFF20) /* DMAC 0 */
1164 #define DMAC1   (*(volatile struct st_fam   *)0xFFFF30) /* DMAC 1 */
1165 #define FLASH   (*(volatile struct st_flash *)0xFEE076) /* FLASH */
1166 #define ITU     (*(volatile struct st_itu   *)0xFFFF60) /* ITU */
1167 #define ITU0    (*(volatile struct st_itu0  *)0xFFFF68) /* ITU0 */
1168 #define ITU1    (*(volatile struct st_itu0  *)0xFFFF70) /* ITU1 */
1169 #define ITU2    (*(volatile struct st_itu0  *)0xFFFF78) /* ITU2 */
1170 #define WDT     (*(volatile union  un_wdt   *)0xFFFF8C) /* WDT */
1171 #define TMR01   (*(volatile struct st_tmr01 *)0xFFFF80) /* TMR01 */
1172 #define TMR23   (*(volatile struct st_tmr23 *)0xFFFF90) /* TMR23 */
1173 #define TMR0    (*(volatile struct st_tmr0  *)0xFFFF80) /* TMR0 */
1174 #define TMR1    (*(volatile struct st_tmr1  *)0xFFFF81) /* TMR1 */
1175 #define TMR2    (*(volatile struct st_tmr2  *)0xFFFF90) /* TMR2 */
1176 #define TMR3    (*(volatile struct st_tmr1  *)0xFFFF91) /* TMR3 */
1177 #define DASTCR  (*(volatile union  un_dastcr*)0xFEE01A) /* DASTCR */
1178 #define DA      (*(volatile struct st_da    *)0xFFFF9C) /* D/A */
1179 #define TPC     (*(volatile struct st_tpc   *)0xFFFFA0) /* TPC */
1180 #define SCI0    (*(volatile struct st_sci   *)0xFFFFB0) /* SCI0 */
1181 #define SCI1    (*(volatile struct st_sci   *)0xFFFFB8) /* SCI1 */
1182 #define SCI2    (*(volatile struct st_sci   *)0xFFFFC0) /* SCI2 */
1183 #define SMCI0   (*(volatile struct st_smci  *)0xFFFFB0) /* SMCI0 */
1184 #define SMCI1   (*(volatile struct st_smci  *)0xFFFFB8) /* SMCI1 */
1185 #define SMCI2   (*(volatile struct st_smci  *)0xFFFFC0) /* SMCI2 */
1186 #define AD      (*(volatile struct st_ad    *)0xFFFFE0) /* A/D */
1187
1188
1189 #define DI  asm("orc.b #0xc0,ccr")
1190 #define EI  asm("andc.b #0x3f,ccr")
1191
1192 /*--------------------------------------------------------------*/
1193 /* 割り込み関数プロトタイプ宣言                                 */
1194 /*--------------------------------------------------------------*/
1195 // NMI割り込み
1196 void int_nmi (void)     asm ("_int_adi")    __attribute__((interrupt_handler));
1197 /*
1198 // トラップ命令
1199 void int_trap0 (void) __attribute__((interrupt_handler));
1200 void int_trap1 (void) __attribute__((interrupt_handler));
1201 void int_trap2 (void) __attribute__((interrupt_handler));
1202 void int_trap3 (void) __attribute__((interrupt_handler));
1203 */
1204 // IRQ0〜5外部割り込み
1205 void int_irq0 (void)    asm ("_int_irq0")   __attribute__((interrupt_handler));
1206 void int_irq1 (void)    asm ("_int_irq1")   __attribute__((interrupt_handler));
1207 void int_irq2 (void)    asm ("_int_irq2")   __attribute__((interrupt_handler));
1208 void int_irq3 (void)    asm ("_int_irq3")   __attribute__((interrupt_handler));
1209 void int_irq4 (void)    asm ("_int_irq4")   __attribute__((interrupt_handler));
1210 void int_irq5 (void)    asm ("_int_irq5")   __attribute__((interrupt_handler));
1211 // ウォッチドッグタイマ (インターバルタイマ)
1212 void int_wovi (void)    asm ("_int_wovi")   __attribute__((interrupt_handler));
1213 // リフレッシュコントローラ (コンペアマッチ)
1214 void int_cmi (void)     asm ("_int_cmi")    __attribute__((interrupt_handler));
1215
1216 // A/D (A/D完了)
1217 void int_adi (void)     asm ("_int_adi")    __attribute__((interrupt_handler));
1218
1219 // ITU0 (コンペアマッチ/インプットキャプチャA0)
1220 void int_imia0 (void)   asm ("_int_imia0")  __attribute__((interrupt_handler));
1221 // ITU0 (コンペアマッチ/インプットキャプチャB0)
1222 void int_imib0 (void)   asm ("_int_imib0")  __attribute__((interrupt_handler));
1223 // ITU0 (オーバフロー0)
1224 void int_ovi0 (void)    asm ("_int_ovi0")   __attribute__((interrupt_handler));
1225
1226 // ITU1 (コンペアマッチ/インプットキャプチャA1)
1227 void int_imia1 (void)   asm ("_int_imia1")  __attribute__((interrupt_handler));
1228 // ITU1 (コンペアマッチ/インプットキャプチャB1)
1229 void int_imib1 (void)   asm ("_int_imib1")  __attribute__((interrupt_handler));
1230 // ITU1 (オーバフロー1)
1231 void int_ovi1 (void)    asm ("_int_ovi1")   __attribute__((interrupt_handler));
1232
1233 // ITU2 (コンペアマッチ/インプットキャプチャA2)
1234 void int_imia2 (void)   asm ("_int_imia2")  __attribute__((interrupt_handler));
1235 // ITU2 (コンペアマッチ/インプットキャプチャB2)
1236 void int_imib2 (void)   asm ("_int_imib2")  __attribute__((interrupt_handler));
1237 // ITU2 (オーバフロー2)
1238 void int_ovi2 (void)    asm ("_int_ovi2")   __attribute__((interrupt_handler));
1239
1240 // TMR0 (コンペアマッチA0)
1241 void int_cmia0 (void)   asm ("_int_cmia0")  __attribute__((interrupt_handler));
1242 // TMR0 (コンペアマッチB0)
1243 void int_cmib0 (void)   asm ("_int_cmib0")  __attribute__((interrupt_handler));
1244 // TMR1 (コンペアマッチA1/B1)
1245 void int_cmiab1 (void)  asm ("_int_cmiab1") __attribute__((interrupt_handler));
1246 // TMR0,1 (オーバフロー0/1)
1247 void int_tovi01 (void)  asm ("_int_tovi01") __attribute__((interrupt_handler));
1248
1249 // TMR2 (コンペアマッチA2)
1250 void int_cmia2 (void)   asm ("_int_cmia2")  __attribute__((interrupt_handler));
1251 // TMR2 (コンペアマッチB2)
1252 void int_cmib2 (void)   asm ("_int_cmib2")  __attribute__((interrupt_handler));
1253 // TMR3 (コンペアマッチA3/B3)
1254 void int_cmiab3 (void)  asm ("_int_cmiab3") __attribute__((interrupt_handler));
1255 // TMR2,3 (オーバフロー2/3)
1256 void int_tovi23 (void)  asm ("_int_tovi23") __attribute__((interrupt_handler));
1257
1258 // DMAC0 (DMAC0/DMAC0A転送完了)
1259 void int_dend0a (void)  asm ("_int_dend0a") __attribute__((interrupt_handler));
1260 // DMAC0 (DMAC0B転送完了)
1261 void int_dend0b (void)  asm ("_int_dend0b") __attribute__((interrupt_handler));
1262 // DMAC1 (DMAC1/DMAC1A転送完了)
1263 void int_dend1a (void)  asm ("_int_dend1a") __attribute__((interrupt_handler));
1264 // DMAC1 (DMAC1B転送完了)
1265 void int_dend1b (void)  asm ("_int_dend1b") __attribute__((interrupt_handler));
1266
1267 // SCI0 (受信エラー0)
1268 void int_eri0 (void)    asm ("_int_eri0")   __attribute__((interrupt_handler));
1269 // SCI0 (受信データフル0)
1270 void int_rxi0 (void)    asm ("_int_rxi0")   __attribute__((interrupt_handler));
1271 // SCI0 (送信データエンプティ0)
1272 void int_txi0 (void)    asm ("_int_txi0")   __attribute__((interrupt_handler));
1273 // SCI0 (送信終了0)
1274 void int_tei0 (void)    asm ("_int_tei0")   __attribute__((interrupt_handler));
1275
1276 // SCI1 (受信エラー1)
1277 void int_eri1 (void)    asm ("_int_eri1")   __attribute__((interrupt_handler));
1278 // SCI1 (受信データフル1)
1279 void int_rxi1 (void)    asm ("_int_rxi1")   __attribute__((interrupt_handler));
1280 // SCI1 (送信データエンプティ1)
1281 void int_txi1 (void)    asm ("_int_txi1")   __attribute__((interrupt_handler));
1282 // SCI1 (送信終了1)
1283 void int_tei1 (void)    asm ("_int_tei1")   __attribute__((interrupt_handler));
1284
1285 // SCI2 (受信エラー2)
1286 void int_eri2 (void)    asm ("_int_eri2")   __attribute__((interrupt_handler));
1287 // SCI2 (受信データフル2)
1288 void int_rxi2 (void)    asm ("_int_rxi2")   __attribute__((interrupt_handler));
1289 // SCI2 (送信データエンプティ2)
1290 void int_txi2 (void)    asm ("_int_txi2")   __attribute__((interrupt_handler));
1291 // SCI2 (送信終了2)
1292 void int_tei2 (void)    asm ("_int_tei2")   __attribute__((interrupt_handler));
1293
1294 /*--------------------------------------------------------------*/
1295 /* シリアル通信関数(FIFOバッファ付)                             */
1296 /*--------------------------------------------------------------*/
1297 /*
1298 typedef enum { // ボーレート設定リスト at 20MHz
1299   br4800  = 129,
1300   br9600  = 64,
1301   br19200 = 32,
1302   br38400 = 15,
1303   br57600 = 10
1304 } TBaudRate;
1305 */
1306
1307 typedef enum { // ボーレート設定リスト at 25MHz
1308   br4800  = 162,
1309   br9600  = 80,
1310   br19200 = 40,
1311   br38400 = 19,
1312   br57600 = 13,
1313   br115200 = 6
1314 } TBaudRate;
1315
1316 // SCI初期化
1317 extern void SCI0_INIT (TBaudRate, char *, short, char *, short);
1318 extern void SCI1_INIT (TBaudRate, char *, short, char *, short);
1319 extern void SCI2_INIT (TBaudRate, char *, short, char *, short);
1320 // 1文字送信
1321 extern void SCI0_OUT_DATA (char);
1322 extern void SCI1_OUT_DATA (char);
1323 extern void SCI2_OUT_DATA (char);
1324 // 文字列送信
1325 extern void SCI0_OUT_STRING (char *);
1326 extern void SCI1_OUT_STRING (char *);
1327 extern void SCI2_OUT_STRING (char *);
1328 // バイナリ列送信
1329 extern void SCI0_OUT_STRINGB (char *, short);
1330 extern void SCI1_OUT_STRINGB (char *, short);
1331 extern void SCI2_OUT_STRINGB (char *, short);
1332 // 受信バッファチェック
1333 extern short SCI0_IN_DATA_CHECK (void);
1334 extern short SCI1_IN_DATA_CHECK (void);
1335 extern short SCI2_IN_DATA_CHECK (void);
1336 // 送信バッファチェック
1337 extern short SCI0_OUT_DATA_CHECK (void);
1338 extern short SCI1_OUT_DATA_CHECK (void);
1339 extern short SCI2_OUT_DATA_CHECK (void);
1340 // 受信バッファクリア
1341 extern void SCI0_IN_DATA_CLEAR (void);
1342 extern void SCI1_IN_DATA_CLEAR (void);
1343 extern void SCI2_IN_DATA_CLEAR (void);
1344 // 送信バッファクリア
1345 extern void SCI0_OUT_DATA_CLEAR (void);
1346 extern void SCI1_OUT_DATA_CLEAR (void);
1347 extern void SCI2_OUT_DATA_CLEAR (void);
1348 // 1文字受信
1349 extern char SCI0_IN_DATA (void);
1350 extern char SCI1_IN_DATA (void);
1351 extern char SCI2_IN_DATA (void);
1352 // 文字列送信
1353 extern short SCI0_IN_STRING (char *, short);
1354 extern short SCI1_IN_STRING (char *, short);
1355 extern short SCI2_IN_STRING (char *, short);
1356 // 簡易フォーマット出力
1357 extern int SCI0_PRINTF (const char *, ...);
1358 extern int SCI1_PRINTF (const char *, ...);
1359 extern int SCI2_PRINTF (const char *, ...);
1360
1361 /*--------------------------------------------------------------*/
1362 /* インライン命令                                               */
1363 /*--------------------------------------------------------------*/
1364 extern __inline__ void sleep (void) __attribute__ ((always_inline));
1365 extern __inline__ void nop (void) __attribute__ ((always_inline));
1366 extern __inline__ void set_ccr (unsigned char mask) __attribute__ ((always_inline));
1367 extern __inline__ unsigned char get_ccr (void) __attribute__ ((always_inline));
1368 extern __inline__ void *get_sp (void) __attribute__ ((always_inline));
1369
1370 extern __inline__ void sleep (void)
1371 {
1372   asm ("sleep");
1373 }
1374
1375 extern __inline__ void nop (void)
1376 {
1377   asm ("nop");
1378 }
1379
1380 extern __inline__ void set_ccr (unsigned char mask)
1381 {
1382   asm ("ldc %0l,ccr"::"r"(mask));
1383 }
1384
1385 extern __inline__ unsigned char get_ccr (void)
1386 {
1387   unsigned char value;
1388   asm ("stc ccr,%0l":"=g"(value):);
1389   return(value);
1390 }
1391
1392 #ifdef __cplusplus
1393 }
1394 #endif
1395
1396 #endif /* _3069_H_ */