/***********************************************************************/
/*  													               */
/*      PROJECT NAME :  RTOSDemo                                       */
/*      FILE         :  iodefine.h                                     */
/*      DESCRIPTION  :  Definition of I/O Registers                    */
/*      CPU SERIES   :  RX600                                          */
/*      CPU TYPE     :  RX64M                                          */
/*  													               */
/*      This file is generated by e2 studio.                        */
/*  													               */
/***********************************************************************/                                                                          
                                                                           
                                                                           
                                                                           
                                                                          


/********************************************************************************
*
* Device     : RX/RX600/RX64M
*
* File Name  : iodefine.h
*
* Abstract   : Definition of I/O Register
*
* History    : 0.20 (2013-10-03)  [Hardware Manual Revision : 0.40]
*
* Note       : This is a typical example.
*
* Copyright (C) 2013 Renesas Electronics Corporation and
* Renesas Solutions Corp. All rights reserved.
*
*********************************************************************************/
/*                                                                              */
/*  CPU TYPE    : RX64M                                                         */
/*  DESCRIPTION : Definition of ICU Register                                    */
/*                                                                              */
/*  Usage : IR,DTCER,IER,IPR of ICU Register                                    */
/*     The following IR, DTCE, IEN, IPR macro functions simplify usage.         */
/*     The bit access operation is "Bit_Name(interrupt source,name)".           */
/*     A part of the name can be omitted.                                       */
/*       IR(BSC,BUSERR) = 0;     expands to :                                   */
/*     for example :                                                            */
/*         ICU.IR[16].BIT.IR = 0;                                               */
/*                                                                              */
/*       DTCE(ICU,IRQ0) = 1;     expands to :                                   */
/*         ICU.DTCER[64].BIT.DTCE = 1;                                          */
/*                                                                              */
/*       IEN(CMT0,CMI0) = 1;     expands to :                                   */
/*         ICU.IER[0x03].BIT.IEN4 = 1;                                          */
/*                                                                              */
/*  Usage : #pragma interrupt Function_Identifier(vect=**)                      */
/*     The number of vector is "(interrupt source, name)".                      */
/*       #pragma interrupt INT_IRQ0(vect=VECT(ICU,IRQ0))          expands to :  */
/*     for example :                                                            */
/*       #pragma interrupt INT_CMT0_CMI0(vect=VECT(CMT0,CMI0))    expands to :  */
/*                                                                              */
/*  Usage : MSTPCRA,MSTPCRB,MSTPCRC of SYSTEM Register                          */
/*     The bit access operation is "MSTP(name)".                                */
/*     The name that can be used is a macro name defined with "iodefine.h".     */
/*       MSTP(TMR2) = 0;    // TMR2,TMR3                          expands to :  */
/*     for example :                                                            */
/*         SYSTEM.MSTPCRA.BIT.MSTPA4  = 0;                                      */
/*       MSTP(SCI0) = 0;    // SCI0,SMCI0                         expands to :  */
/*         SYSTEM.MSTPCRB.BIT.MSTPB31 = 0;                                      */
/*       MSTP(TPU4) = 0;    // TPU0,TPU1,TPU2,TPU3,TPU4,TPU5      expands to :  */
/*         SYSTEM.MSTPCRA.BIT.MSTPA13 = 0;                                      */
/*       MSTP(CMT3) = 0;    // CMT2,CMT3                          expands to :  */
/*         SYSTEM.MSTPCRA.BIT.MSTPA14 = 0;                                      */
/*                                                                              */
/*                                                                              */
/********************************************************************************/


#ifndef __RX64MIODEFINE_HEADER__
#define __RX64MIODEFINE_HEADER__

#ifdef __RX_LITTLE_ENDIAN__

struct st_bsc {
    union {
        unsigned char BYTE;
        struct {
            unsigned char STSCLR:1;
            unsigned char :7;
        } BIT;
    } BERCLR;
    char           wk0[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char IGAEN:1;
            unsigned char TOEN:1;
            unsigned char :6;
        } BIT;
    } BEREN;
    char           wk1[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char IA:1;
            unsigned char TO:1;
            unsigned char :2;
            unsigned char MST:3;
            unsigned char :1;
        } BIT;
    } BERSR1;
    char           wk2[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short :3;
            unsigned short ADDR:13;
        } BIT;
    } BERSR2;
    char           wk3[4];
    union {
        unsigned short WORD;
        struct {
            unsigned short BPRA:2;
            unsigned short BPRO:2;
            unsigned short BPIB:2;
            unsigned short BPGB:2;
            unsigned short BPHB:2;
            unsigned short BPFB:2;
            unsigned short BPEB:2;
            unsigned short :2;
        } BIT;
    } BUSPRI;
    char           wk4[7408];
    union {
        unsigned short WORD;
        struct {
            unsigned short WRMOD:1;
            unsigned short :2;
            unsigned short EWENB:1;
            unsigned short :4;
            unsigned short PRENB:1;
            unsigned short PWENB:1;
            unsigned short :5;
            unsigned short PRMOD:1;
        } BIT;
    } CS0MOD;
    union {
        unsigned long LONG;
        struct {
            unsigned long CSPWWAIT:3;
            unsigned long :5;
            unsigned long CSPRWAIT:3;
            unsigned long :5;
            unsigned long CSWWAIT:5;
            unsigned long :3;
            unsigned long CSRWAIT:5;
            unsigned long :3;
        } BIT;
    } CS0WCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long CSROFF:3;
            unsigned long :1;
            unsigned long CSWOFF:3;
            unsigned long :1;
            unsigned long WDOFF:3;
            unsigned long :1;
            unsigned long AWAIT:2;
            unsigned long :2;
            unsigned long RDON:3;
            unsigned long :1;
            unsigned long WRON:3;
            unsigned long :1;
            unsigned long WDON:3;
            unsigned long :1;
            unsigned long CSON:3;
            unsigned long :1;
        } BIT;
    } CS0WCR2;
    char           wk5[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short WRMOD:1;
            unsigned short :2;
            unsigned short EWENB:1;
            unsigned short :4;
            unsigned short PRENB:1;
            unsigned short PWENB:1;
            unsigned short :5;
            unsigned short PRMOD:1;
        } BIT;
    } CS1MOD;
    union {
        unsigned long LONG;
        struct {
            unsigned long CSPWWAIT:3;
            unsigned long :5;
            unsigned long CSPRWAIT:3;
            unsigned long :5;
            unsigned long CSWWAIT:5;
            unsigned long :3;
            unsigned long CSRWAIT:5;
            unsigned long :3;
        } BIT;
    } CS1WCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long CSROFF:3;
            unsigned long :1;
            unsigned long CSWOFF:3;
            unsigned long :1;
            unsigned long WDOFF:3;
            unsigned long :1;
            unsigned long AWAIT:2;
            unsigned long :2;
            unsigned long RDON:3;
            unsigned long :1;
            unsigned long WRON:3;
            unsigned long :1;
            unsigned long WDON:3;
            unsigned long :1;
            unsigned long CSON:3;
            unsigned long :1;
        } BIT;
    } CS1WCR2;
    char           wk6[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short WRMOD:1;
            unsigned short :2;
            unsigned short EWENB:1;
            unsigned short :4;
            unsigned short PRENB:1;
            unsigned short PWENB:1;
            unsigned short :5;
            unsigned short PRMOD:1;
        } BIT;
    } CS2MOD;
    union {
        unsigned long LONG;
        struct {
            unsigned long CSPWWAIT:3;
            unsigned long :5;
            unsigned long CSPRWAIT:3;
            unsigned long :5;
            unsigned long CSWWAIT:5;
            unsigned long :3;
            unsigned long CSRWAIT:5;
            unsigned long :3;
        } BIT;
    } CS2WCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long CSROFF:3;
            unsigned long :1;
            unsigned long CSWOFF:3;
            unsigned long :1;
            unsigned long WDOFF:3;
            unsigned long :1;
            unsigned long AWAIT:2;
            unsigned long :2;
            unsigned long RDON:3;
            unsigned long :1;
            unsigned long WRON:3;
            unsigned long :1;
            unsigned long WDON:3;
            unsigned long :1;
            unsigned long CSON:3;
            unsigned long :1;
        } BIT;
    } CS2WCR2;
    char           wk7[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short WRMOD:1;
            unsigned short :2;
            unsigned short EWENB:1;
            unsigned short :4;
            unsigned short PRENB:1;
            unsigned short PWENB:1;
            unsigned short :5;
            unsigned short PRMOD:1;
        } BIT;
    } CS3MOD;
    union {
        unsigned long LONG;
        struct {
            unsigned long CSPWWAIT:3;
            unsigned long :5;
            unsigned long CSPRWAIT:3;
            unsigned long :5;
            unsigned long CSWWAIT:5;
            unsigned long :3;
            unsigned long CSRWAIT:5;
            unsigned long :3;
        } BIT;
    } CS3WCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long CSROFF:3;
            unsigned long :1;
            unsigned long CSWOFF:3;
            unsigned long :1;
            unsigned long WDOFF:3;
            unsigned long :1;
            unsigned long AWAIT:2;
            unsigned long :2;
            unsigned long RDON:3;
            unsigned long :1;
            unsigned long WRON:3;
            unsigned long :1;
            unsigned long WDON:3;
            unsigned long :1;
            unsigned long CSON:3;
            unsigned long :1;
        } BIT;
    } CS3WCR2;
    char           wk8[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short WRMOD:1;
            unsigned short :2;
            unsigned short EWENB:1;
            unsigned short :4;
            unsigned short PRENB:1;
            unsigned short PWENB:1;
            unsigned short :5;
            unsigned short PRMOD:1;
        } BIT;
    } CS4MOD;
    union {
        unsigned long LONG;
        struct {
            unsigned long CSPWWAIT:3;
            unsigned long :5;
            unsigned long CSPRWAIT:3;
            unsigned long :5;
            unsigned long CSWWAIT:5;
            unsigned long :3;
            unsigned long CSRWAIT:5;
            unsigned long :3;
        } BIT;
    } CS4WCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long CSROFF:3;
            unsigned long :1;
            unsigned long CSWOFF:3;
            unsigned long :1;
            unsigned long WDOFF:3;
            unsigned long :1;
            unsigned long AWAIT:2;
            unsigned long :2;
            unsigned long RDON:3;
            unsigned long :1;
            unsigned long WRON:3;
            unsigned long :1;
            unsigned long WDON:3;
            unsigned long :1;
            unsigned long CSON:3;
            unsigned long :1;
        } BIT;
    } CS4WCR2;
    char           wk9[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short WRMOD:1;
            unsigned short :2;
            unsigned short EWENB:1;
            unsigned short :4;
            unsigned short PRENB:1;
            unsigned short PWENB:1;
            unsigned short :5;
            unsigned short PRMOD:1;
        } BIT;
    } CS5MOD;
    union {
        unsigned long LONG;
        struct {
            unsigned long CSPWWAIT:3;
            unsigned long :5;
            unsigned long CSPRWAIT:3;
            unsigned long :5;
            unsigned long CSWWAIT:5;
            unsigned long :3;
            unsigned long CSRWAIT:5;
            unsigned long :3;
        } BIT;
    } CS5WCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long CSROFF:3;
            unsigned long :1;
            unsigned long CSWOFF:3;
            unsigned long :1;
            unsigned long WDOFF:3;
            unsigned long :1;
            unsigned long AWAIT:2;
            unsigned long :2;
            unsigned long RDON:3;
            unsigned long :1;
            unsigned long WRON:3;
            unsigned long :1;
            unsigned long WDON:3;
            unsigned long :1;
            unsigned long CSON:3;
            unsigned long :1;
        } BIT;
    } CS5WCR2;
    char           wk10[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short WRMOD:1;
            unsigned short :2;
            unsigned short EWENB:1;
            unsigned short :4;
            unsigned short PRENB:1;
            unsigned short PWENB:1;
            unsigned short :5;
            unsigned short PRMOD:1;
        } BIT;
    } CS6MOD;
    union {
        unsigned long LONG;
        struct {
            unsigned long CSPWWAIT:3;
            unsigned long :5;
            unsigned long CSPRWAIT:3;
            unsigned long :5;
            unsigned long CSWWAIT:5;
            unsigned long :3;
            unsigned long CSRWAIT:5;
            unsigned long :3;
        } BIT;
    } CS6WCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long CSROFF:3;
            unsigned long :1;
            unsigned long CSWOFF:3;
            unsigned long :1;
            unsigned long WDOFF:3;
            unsigned long :1;
            unsigned long AWAIT:2;
            unsigned long :2;
            unsigned long RDON:3;
            unsigned long :1;
            unsigned long WRON:3;
            unsigned long :1;
            unsigned long WDON:3;
            unsigned long :1;
            unsigned long CSON:3;
            unsigned long :1;
        } BIT;
    } CS6WCR2;
    char           wk11[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short WRMOD:1;
            unsigned short :2;
            unsigned short EWENB:1;
            unsigned short :4;
            unsigned short PRENB:1;
            unsigned short PWENB:1;
            unsigned short :5;
            unsigned short PRMOD:1;
        } BIT;
    } CS7MOD;
    union {
        unsigned long LONG;
        struct {
            unsigned long CSPWWAIT:3;
            unsigned long :5;
            unsigned long CSPRWAIT:3;
            unsigned long :5;
            unsigned long CSWWAIT:5;
            unsigned long :3;
            unsigned long CSRWAIT:5;
            unsigned long :3;
        } BIT;
    } CS7WCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long CSROFF:3;
            unsigned long :1;
            unsigned long CSWOFF:3;
            unsigned long :1;
            unsigned long WDOFF:3;
            unsigned long :1;
            unsigned long AWAIT:2;
            unsigned long :2;
            unsigned long RDON:3;
            unsigned long :1;
            unsigned long WRON:3;
            unsigned long :1;
            unsigned long WDON:3;
            unsigned long :1;
            unsigned long CSON:3;
            unsigned long :1;
        } BIT;
    } CS7WCR2;
    char           wk12[1926];
    union {
        unsigned short WORD;
        struct {
            unsigned short EXENB:1;
            unsigned short :3;
            unsigned short BSIZE:2;
            unsigned short :2;
            unsigned short EMODE:1;
            unsigned short :3;
            unsigned short MPXEN:1;
            unsigned short :3;
        } BIT;
    } CS0CR;
    char           wk13[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short RRCV:4;
            unsigned short :4;
            unsigned short WRCV:4;
            unsigned short :4;
        } BIT;
    } CS0REC;
    char           wk14[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short EXENB:1;
            unsigned short :3;
            unsigned short BSIZE:2;
            unsigned short :2;
            unsigned short EMODE:1;
            unsigned short :3;
            unsigned short MPXEN:1;
            unsigned short :3;
        } BIT;
    } CS1CR;
    char           wk15[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short RRCV:4;
            unsigned short :4;
            unsigned short WRCV:4;
            unsigned short :4;
        } BIT;
    } CS1REC;
    char           wk16[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short EXENB:1;
            unsigned short :3;
            unsigned short BSIZE:2;
            unsigned short :2;
            unsigned short EMODE:1;
            unsigned short :3;
            unsigned short MPXEN:1;
            unsigned short :3;
        } BIT;
    } CS2CR;
    char           wk17[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short RRCV:4;
            unsigned short :4;
            unsigned short WRCV:4;
            unsigned short :4;
        } BIT;
    } CS2REC;
    char           wk18[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short EXENB:1;
            unsigned short :3;
            unsigned short BSIZE:2;
            unsigned short :2;
            unsigned short EMODE:1;
            unsigned short :3;
            unsigned short MPXEN:1;
            unsigned short :3;
        } BIT;
    } CS3CR;
    char           wk19[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short RRCV:4;
            unsigned short :4;
            unsigned short WRCV:4;
            unsigned short :4;
        } BIT;
    } CS3REC;
    char           wk20[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short EXENB:1;
            unsigned short :3;
            unsigned short BSIZE:2;
            unsigned short :2;
            unsigned short EMODE:1;
            unsigned short :3;
            unsigned short MPXEN:1;
            unsigned short :3;
        } BIT;
    } CS4CR;
    char           wk21[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short RRCV:4;
            unsigned short :4;
            unsigned short WRCV:4;
            unsigned short :4;
        } BIT;
    } CS4REC;
    char           wk22[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short EXENB:1;
            unsigned short :3;
            unsigned short BSIZE:2;
            unsigned short :2;
            unsigned short EMODE:1;
            unsigned short :3;
            unsigned short MPXEN:1;
            unsigned short :3;
        } BIT;
    } CS5CR;
    char           wk23[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short RRCV:4;
            unsigned short :4;
            unsigned short WRCV:4;
            unsigned short :4;
        } BIT;
    } CS5REC;
    char           wk24[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short EXENB:1;
            unsigned short :3;
            unsigned short BSIZE:2;
            unsigned short :2;
            unsigned short EMODE:1;
            unsigned short :3;
            unsigned short MPXEN:1;
            unsigned short :3;
        } BIT;
    } CS6CR;
    char           wk25[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short RRCV:4;
            unsigned short :4;
            unsigned short WRCV:4;
            unsigned short :4;
        } BIT;
    } CS6REC;
    char           wk26[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short EXENB:1;
            unsigned short :3;
            unsigned short BSIZE:2;
            unsigned short :2;
            unsigned short EMODE:1;
            unsigned short :3;
            unsigned short MPXEN:1;
            unsigned short :3;
        } BIT;
    } CS7CR;
    char           wk27[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short RRCV:4;
            unsigned short :4;
            unsigned short WRCV:4;
            unsigned short :4;
        } BIT;
    } CS7REC;
    char           wk28[4];
    union {
        unsigned short WORD;
        struct {
            unsigned short RCVEN0:1;
            unsigned short RCVEN1:1;
            unsigned short RCVEN2:1;
            unsigned short RCVEN3:1;
            unsigned short RCVEN4:1;
            unsigned short RCVEN5:1;
            unsigned short RCVEN6:1;
            unsigned short RCVEN7:1;
            unsigned short RCVENM0:1;
            unsigned short RCVENM1:1;
            unsigned short RCVENM2:1;
            unsigned short RCVENM3:1;
            unsigned short RCVENM4:1;
            unsigned short RCVENM5:1;
            unsigned short RCVENM6:1;
            unsigned short RCVENM7:1;
        } BIT;
    } CSRECEN;
    char           wk29[894];
    union {
        unsigned char BYTE;
        struct {
            unsigned char EXENB:1;
            unsigned char :3;
            unsigned char BSIZE:2;
            unsigned char :2;
        } BIT;
    } SDCCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char EMODE:1;
            unsigned char :7;
        } BIT;
    } SDCMOD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BE:1;
            unsigned char :7;
        } BIT;
    } SDAMOD;
    char           wk30[13];
    union {
        unsigned char BYTE;
        struct {
            unsigned char SFEN:1;
            unsigned char :7;
        } BIT;
    } SDSELF;
    char           wk31[3];
    union {
        unsigned short WORD;
        struct {
            unsigned short RFC:12;
            unsigned short REFW:4;
        } BIT;
    } SDRFCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char RFEN:1;
            unsigned char :7;
        } BIT;
    } SDRFEN;
    char           wk32[9];
    union {
        unsigned char BYTE;
        struct {
            unsigned char INIRQ:1;
            unsigned char :7;
        } BIT;
    } SDICR;
    char           wk33[3];
    union {
        unsigned short WORD;
        struct {
            unsigned short ARFI:4;
            unsigned short ARFC:4;
            unsigned short PRC:3;
            unsigned short :5;
        } BIT;
    } SDIR;
    char           wk34[26];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MXC:2;
            unsigned char :6;
        } BIT;
    } SDADR;
    char           wk35[3];
    union {
        unsigned long LONG;
        struct {
            unsigned long CL:3;
            unsigned long :5;
            unsigned long WR:1;
            unsigned long RP:3;
            unsigned long RCD:2;
            unsigned long :2;
            unsigned long RAS:3;
            unsigned long :13;
        } BIT;
    } SDTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short MR:15;
            unsigned short :1;
        } BIT;
    } SDMOD;
    char           wk36[6];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MRSST:1;
            unsigned char :2;
            unsigned char INIST:1;
            unsigned char SRFST:1;
            unsigned char :3;
        } BIT;
    } SDSR;
};

struct st_cac {
    union {
        unsigned char BYTE;
        struct {
            unsigned char CFME:1;
            unsigned char :7;
        } BIT;
    } CACR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char CACREFE:1;
            unsigned char FMCS:3;
            unsigned char TCSS:2;
            unsigned char EDGES:2;
        } BIT;
    } CACR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char RPS:1;
            unsigned char RSCS:3;
            unsigned char RCDS:2;
            unsigned char DFS:2;
        } BIT;
    } CACR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char FERRIE:1;
            unsigned char MENDIE:1;
            unsigned char OVFIE:1;
            unsigned char :1;
            unsigned char FERRFCL:1;
            unsigned char MENDFCL:1;
            unsigned char OVFFCL:1;
            unsigned char :1;
        } BIT;
    } CAICR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char FERRF:1;
            unsigned char MENDF:1;
            unsigned char OVFF:1;
            unsigned char :5;
        } BIT;
    } CASTR;
    char           wk0[1];
    unsigned short CAULVR;
    unsigned short CALLVR;
    unsigned short CACNTBR;
};

struct st_can {
    struct {
        union {
            unsigned long LONG;
            struct {
                unsigned short H;
                unsigned short L;
            } WORD;
            struct {
                unsigned char HH;
                unsigned char HL;
                unsigned char LH;
                unsigned char LL;
            } BYTE;
            struct {
                unsigned long EID:18;
                unsigned long SID:11;
                unsigned long :1;
                unsigned long RTR:1;
                unsigned long IDE:1;
            } BIT;
        } ID;
        unsigned short DLC;        
        unsigned char  DATA[8];
        unsigned short TS;        
    } MB[32];
    union {
        unsigned long LONG;
        struct {
            unsigned short H;
            unsigned short L;
        } WORD;
        struct {
            unsigned char HH;
            unsigned char HL;
            unsigned char LH;
            unsigned char LL;
        } BYTE;
        struct {
            unsigned long EID:18;
            unsigned long SID:11;
            unsigned long :3;
        } BIT;
    } MKR[8];
    union {
        unsigned long LONG;
        struct {
            unsigned short H;
            unsigned short L;
        } WORD;
        struct {
            unsigned char HH;
            unsigned char HL;
            unsigned char LH;
            unsigned char LL;
        } BYTE;
        struct {
            unsigned long EID:18;
            unsigned long SID:11;
            unsigned long :1;
            unsigned long RTR:1;
            unsigned long IDE:1;
        } BIT;
    } FIDCR0;
    union {
        unsigned long LONG;
        struct {
            unsigned short H;
            unsigned short L;
        } WORD;
        struct {
            unsigned char HH;
            unsigned char HL;
            unsigned char LH;
            unsigned char LL;
        } BYTE;
        struct {
            unsigned long EID:18;
            unsigned long SID:11;
            unsigned long :1;
            unsigned long RTR:1;
            unsigned long IDE:1;
        } BIT;
    } FIDCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned short H;
            unsigned short L;
        } WORD;
        struct {
            unsigned char HH;
            unsigned char HL;
            unsigned char LH;
            unsigned char LL;
        } BYTE;
        struct {
            unsigned char MB0:1;
            unsigned char MB1:1;
            unsigned char MB2:1;
            unsigned char MB3:1;
            unsigned char MB4:1;
            unsigned char MB5:1;
            unsigned char MB6:1;
            unsigned char MB7:1;
            unsigned char MB8:1;
            unsigned char MB9:1;
            unsigned char MB10:1;
            unsigned char MB11:1;
            unsigned char MB12:1;
            unsigned char MB13:1;
            unsigned char MB14:1;
            unsigned char MB15:1;
            unsigned char MB16:1;
            unsigned char MB17:1;
            unsigned char MB18:1;
            unsigned char MB19:1;
            unsigned char MB20:1;
            unsigned char MB21:1;
            unsigned char MB22:1;
            unsigned char MB23:1;
            unsigned char MB24:1;
            unsigned char MB25:1;
            unsigned char MB26:1;
            unsigned char MB27:1;
            unsigned char MB28:1;
            unsigned char MB29:1;
            unsigned char MB30:1;
            unsigned char MB31:1;
        } BIT;
    } MKIVLR;
    union {
        unsigned long LONG;
        struct {
            unsigned short H;
            unsigned short L;
        } WORD;
        struct {
            unsigned char HH;
            unsigned char HL;
            unsigned char LH;
            unsigned char LL;
        } BYTE;
        struct {
            unsigned char MB0:1;
            unsigned char MB1:1;
            unsigned char MB2:1;
            unsigned char MB3:1;
            unsigned char MB4:1;
            unsigned char MB5:1;
            unsigned char MB6:1;
            unsigned char MB7:1;
            unsigned char MB8:1;
            unsigned char MB9:1;
            unsigned char MB10:1;
            unsigned char MB11:1;
            unsigned char MB12:1;
            unsigned char MB13:1;
            unsigned char MB14:1;
            unsigned char MB15:1;
            unsigned char MB16:1;
            unsigned char MB17:1;
            unsigned char MB18:1;
            unsigned char MB19:1;
            unsigned char MB20:1;
            unsigned char MB21:1;
            unsigned char MB22:1;
            unsigned char MB23:1;
            unsigned char MB24:1;
            unsigned char MB25:1;
            unsigned char MB26:1;
            unsigned char MB27:1;
            unsigned char MB28:1;
            unsigned char MB29:1;
            unsigned char MB30:1;
            unsigned char MB31:1;
        } BIT;
    } MIER;
    char           wk0[1008];
    union {
        unsigned char BYTE;
        union {
            struct {
                unsigned char SENTDATA:1;
                unsigned char TRMACTIVE:1;
                unsigned char TRMABT:1;
                unsigned char :1;
                unsigned char ONESHOT:1;
                unsigned char :1;
                unsigned char RECREQ:1;
                unsigned char TRMREQ:1;
            } TX;
            struct {
                unsigned char NEWDATA:1;
                unsigned char INVALDATA:1;
                unsigned char MSGLOST:1;
                unsigned char :1;
                unsigned char ONESHOT:1;
                unsigned char :1;
                unsigned char RECREQ:1;
                unsigned char TRMREQ:1;
            } RX;
        } BIT;
    } MCTL[32];
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char MBM:1;
            unsigned char IDFM:2;
            unsigned char MLM:1;
            unsigned char TPM:1;
            unsigned char TSRC:1;
            unsigned char TSPS:2;
            unsigned char CANM:2;
            unsigned char SLPM:1;
            unsigned char BOM:2;
            unsigned char RBOC:1;
            unsigned char :2;
        } BIT;
    } CTLR;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char NDST:1;
            unsigned char SDST:1;
            unsigned char RFST:1;
            unsigned char TFST:1;
            unsigned char NMLST:1;
            unsigned char FMLST:1;
            unsigned char TABST:1;
            unsigned char EST:1;
            unsigned char RSTST:1;
            unsigned char HLTST:1;
            unsigned char SLPST:1;
            unsigned char EPST:1;
            unsigned char BOST:1;
            unsigned char TRMST:1;
            unsigned char RECST:1;
            unsigned char :1;
        } BIT;
    } STR;
    union {
        unsigned long LONG;
        struct {
            unsigned short H;
            unsigned short L;
        } WORD;
        struct {
            unsigned char HH;
            unsigned char HL;
            unsigned char LH;
            unsigned char LL;
        } BYTE;
        struct {
            unsigned long CCLKS:1;
            unsigned long :7;
            unsigned long TSEG2:3;
            unsigned long :1;
            unsigned long SJW:2;
            unsigned long :2;
            unsigned long BRP:10;
            unsigned long :2;
            unsigned long TSEG1:4;
        } BIT;
    } BCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char RFE:1;
            unsigned char RFUST:3;
            unsigned char RFMLF:1;
            unsigned char RFFST:1;
            unsigned char RFWST:1;
            unsigned char RFEST:1;
        } BIT;
    } RFCR;
    unsigned char  RFPCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TFE:1;
            unsigned char TFUST:3;
            unsigned char :2;
            unsigned char TFFST:1;
            unsigned char TFEST:1;
        } BIT;
    } TFCR;
    unsigned char  TFPCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BEIE:1;
            unsigned char EWIE:1;
            unsigned char EPIE:1;
            unsigned char BOEIE:1;
            unsigned char BORIE:1;
            unsigned char ORIE:1;
            unsigned char OLIE:1;
            unsigned char BLIE:1;
        } BIT;
    } EIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BEIF:1;
            unsigned char EWIF:1;
            unsigned char EPIF:1;
            unsigned char BOEIF:1;
            unsigned char BORIF:1;
            unsigned char ORIF:1;
            unsigned char OLIF:1;
            unsigned char BLIF:1;
        } BIT;
    } EIFR;
    unsigned char  RECR;
    unsigned char  TECR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SEF:1;
            unsigned char FEF:1;
            unsigned char AEF:1;
            unsigned char CEF:1;
            unsigned char BE1F:1;
            unsigned char BE0F:1;
            unsigned char ADEF:1;
            unsigned char EDPM:1;
        } BIT;
    } ECSR;
    unsigned char  CSSR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MBNST:5;
            unsigned char :2;
            unsigned char SEST:1;
        } BIT;
    } MSSR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MBSM:2;
            unsigned char :6;
        } BIT;
    } MSMR;
    unsigned short TSR;
    unsigned short AFSR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TSTE:1;
            unsigned char TSTM:2;
            unsigned char :5;
        } BIT;
    } TCR;
};

struct st_cmt {
    union {
        unsigned short WORD;
        struct {
            unsigned short STR0:1;
            unsigned short STR1:1;
            unsigned short :14;
        } BIT;
    } CMSTR0;
    char           wk0[14];
    union {
        unsigned short WORD;
        struct {
            unsigned short STR2:1;
            unsigned short STR3:1;
            unsigned short :14;
        } BIT;
    } CMSTR1;
};

struct st_cmt0 {
    union {
        unsigned short WORD;
        struct {
            unsigned short CKS:2;
            unsigned short :4;
            unsigned short CMIE:1;
            unsigned short :9;
        } BIT;
    } CMCR;
    unsigned short CMCNT;
    unsigned short CMCOR;
};

struct st_cmtw {
    union {
        unsigned short WORD;
        struct {
            unsigned short STR:1;
            unsigned short :15;
        } BIT;
    } CMWSTR;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short CKS:2;
            unsigned short :1;
            unsigned short CM2IE:1;
            unsigned short IC0IE:1;
            unsigned short IC1IE:1;
            unsigned short OC0IE:1;
            unsigned short OC1IE:1;
            unsigned short :1;
            unsigned short CMS:1;
            unsigned short :3;
            unsigned short CLLR:3;
        } BIT;
    } CMWCR;
    char           wk1[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short IC0:2;
            unsigned short IC1:2;
            unsigned short IC0E:1;
            unsigned short IC1E:1;
            unsigned short :2;
            unsigned short OC0:2;
            unsigned short OC1:2;
            unsigned short OC0E:1;
            unsigned short OC1E:1;
            unsigned short :1;
            unsigned short CM2E:1;
        } BIT;
    } CMWIOR;
    char           wk2[6];
    unsigned long  CMWCNT;
    unsigned long  CMWCOR;
    unsigned long  CMWICR0;
    unsigned long  CMWICR1;
    unsigned long  CMWOCR0;
    unsigned long  CMWOCR1;
};

struct st_crc {
    union {
        unsigned char BYTE;
        struct {
            unsigned char GPS:2;
            unsigned char LMS:1;
            unsigned char :4;
            unsigned char DORCLR:1;
        } BIT;
    } CRCCR;
    unsigned char  CRCDIR;
    unsigned short CRCDOR;
};

struct st_da {

    unsigned short DADR0;
    unsigned short DADR1;    
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char DAE:1;
            unsigned char DAOE0:1;
            unsigned char DAOE1:1;
        } BIT;
    } DACR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DPSEL:1;
        } BIT;
    } DADPR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DAADST:1;
        } BIT;
    } DAADSCR;
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char DAAMP0:1;
            unsigned char DAAMP1:1;
        } BIT;
    } DAAMPCR;
};

struct st_dmac {
    union {
        unsigned char BYTE;
        struct {
            unsigned char DMST:1;
            unsigned char :7;
        } BIT;
    } DMAST;
    char           wk0[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char DMIS4:1;
            unsigned char DMIS5:1;
            unsigned char DMIS6:1;
            unsigned char DMIS7:1;
        } BIT;
    } DMIST;
};

struct st_dmac0 {

    void          *DMSAR;
    void          *DMDAR;    
    unsigned long  DMCRA;
    unsigned short DMCRB;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short DCTG:2;
            unsigned short :6;
            unsigned short SZ:2;
            unsigned short :2;
            unsigned short DTS:2;
            unsigned short MD:2;
        } BIT;
    } DMTMD;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DARIE:1;
            unsigned char SARIE:1;
            unsigned char RPTIE:1;
            unsigned char ESIE:1;
            unsigned char DTIE:1;
            unsigned char :3;
        } BIT;
    } DMINT;
    union {
        unsigned short WORD;
        struct {
            unsigned short DARA:5;
            unsigned short :1;
            unsigned short DM:2;
            unsigned short SARA:5;
            unsigned short :1;
            unsigned short SM:2;
        } BIT;
    } DMAMD;
    char           wk2[2];
    unsigned long  DMOFR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DTE:1;
            unsigned char :7;
        } BIT;
    } DMCNT;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SWREQ:1;
            unsigned char :3;
            unsigned char CLRS:1;
            unsigned char :3;
        } BIT;
    } DMREQ;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ESIF:1;
            unsigned char :3;
            unsigned char DTIF:1;
            unsigned char :2;
            unsigned char ACT:1;
        } BIT;
    } DMSTS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DISEL:1;
            unsigned char :7;
        } BIT;
    } DMCSL;
};

struct st_dmac1 {    

    void          *DMSAR;
    void          *DMDAR;    
    unsigned long  DMCRA;
    unsigned short DMCRB;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short DCTG:2;
            unsigned short :6;
            unsigned short SZ:2;
            unsigned short :2;
            unsigned short DTS:2;
            unsigned short MD:2;
        } BIT;
    } DMTMD;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DARIE:1;
            unsigned char SARIE:1;
            unsigned char RPTIE:1;
            unsigned char ESIE:1;
            unsigned char DTIE:1;
            unsigned char :3;
        } BIT;
    } DMINT;
    union {
        unsigned short WORD;
        struct {
            unsigned short DARA:5;
            unsigned short :1;
            unsigned short DM:2;
            unsigned short SARA:5;
            unsigned short :1;
            unsigned short SM:2;
        } BIT;
    } DMAMD;
    char           wk2[6];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DTE:1;
            unsigned char :7;
        } BIT;
    } DMCNT;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SWREQ:1;
            unsigned char :3;
            unsigned char CLRS:1;
            unsigned char :3;
        } BIT;
    } DMREQ;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ESIF:1;
            unsigned char :3;
            unsigned char DTIF:1;
            unsigned char :2;
            unsigned char ACT:1;
        } BIT;
    } DMSTS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DISEL:1;
            unsigned char :7;
        } BIT;
    } DMCSL;
};

struct st_doc {
    union {
        unsigned char BYTE;
        struct {
            unsigned char OMS:2;
            unsigned char DCSEL:1;
            unsigned char :1;
            unsigned char DOPCIE:1;
            unsigned char DOPCF:1;
            unsigned char DOPCFCL:1;
            unsigned char :1;
        } BIT;
    } DOCR;
    char           wk0[1];
    unsigned short DODIR;
    unsigned short DODSR;
};

struct st_dtc {
    union {
        unsigned char BYTE;
        struct {
            unsigned char RRS:1;
            unsigned char :3;
        } BIT;
    } DTCCR;
    char           wk0[3];

    void          *DTCVBR;    
    union {
        unsigned char BYTE;
        struct {
            unsigned char SHORT:1;
            unsigned char :7;
        } BIT;
    } DTCADMOD;
    char           wk1[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DTCST:1;
            unsigned char :7;
        } BIT;
    } DTCST;
    char           wk2[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short VECN:8;
            unsigned short :7;
            unsigned short ACT:1;
        } BIT;
    } DTCSTS;
};

struct st_eccram {
    union {
        unsigned char BYTE;
        struct {
            unsigned char RAMMOD:2;
            unsigned char :6;
        } BIT;
    } ECCRAMMODE;
    union {
        unsigned char BYTE;
        struct {
            unsigned char RAMERR:1;
            unsigned char :7;
        } BIT;
    } ECCRAMSTS;
    char           wk0[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char RAMPRCR:1;
            unsigned char KW:7;
        } BIT;
    } ECCRAMPRCR;
    char           wk1[3];
    union {
        unsigned long LONG;
        struct {
            unsigned long :3;
            unsigned long READ:16;
            unsigned long :13;
        } BIT;
    } ECCRAMECAD;
    char           wk2[4];
    union {
        unsigned char BYTE;
        struct {
            unsigned char RAMPRCR2:1;
            unsigned char KW2:7;
        } BIT;
    } ECCRAMPRCR2;
    char           wk3[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TSTBYP:1;
            unsigned char :7;
        } BIT;
    } ECCRAMETST;
};

struct st_edmac {
    union {
        unsigned long LONG;
        struct {
            unsigned long SWR:1;
            unsigned long :3;
            unsigned long DL:2;
            unsigned long DE:1;
            unsigned long :25;
        } BIT;
    } EDMR;
    char           wk0[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long TR:1;
            unsigned long :31;
        } BIT;
    } EDTRR;
    char           wk1[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long RR:1;
            unsigned long :31;
        } BIT;
    } EDRRR;
    char           wk2[4];
    void          *TDLAR;
    char           wk3[4];
    void          *RDLAR;
    char           wk4[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long CERF:1;
            unsigned long PRE:1;
            unsigned long RTSF:1;
            unsigned long RTLF:1;
            unsigned long RRF:1;
            unsigned long :2;
            unsigned long RMAF:1;
            unsigned long TRO:1;
            unsigned long CD:1;
            unsigned long DLC:1;
            unsigned long CND:1;
            unsigned long :4;
            unsigned long RFOF:1;
            unsigned long RDE:1;
            unsigned long FR:1;
            unsigned long TFUF:1;
            unsigned long TDE:1;
            unsigned long TC:1;
            unsigned long ECI:1;
            unsigned long ADE:1;
            unsigned long RFCOF:1;
            unsigned long RABT:1;
            unsigned long TABT:1;
            unsigned long :3;
            unsigned long TWB:1;
            unsigned long :1;
        } BIT;
    } EESR;
    char           wk5[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long CERFIP:1;
            unsigned long PREIP:1;
            unsigned long RTSFIP:1;
            unsigned long RTLFIP:1;
            unsigned long RRFIP:1;
            unsigned long :2;
            unsigned long RMAFIP:1;
            unsigned long TROIP:1;
            unsigned long CDIP:1;
            unsigned long DLCIP:1;
            unsigned long CNDIP:1;
            unsigned long :4;
            unsigned long RFOFIP:1;
            unsigned long RDEIP:1;
            unsigned long FRIP:1;
            unsigned long TFUFIP:1;
            unsigned long TDEIP:1;
            unsigned long TCIP:1;
            unsigned long ECIIP:1;
            unsigned long ADEIP:1;
            unsigned long RFCOFIP:1;
            unsigned long RABTIP:1;
            unsigned long TABTIP:1;
            unsigned long :3;
            unsigned long TWBIP:1;
            unsigned long :1;
        } BIT;
    } EESIPR;
    char           wk6[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long CERFCE:1;
            unsigned long PRECE:1;
            unsigned long RTSFCE:1;
            unsigned long RTLFCE:1;
            unsigned long RRFCE:1;
            unsigned long :2;
            unsigned long RMAFCE:1;
            unsigned long TROCE:1;
            unsigned long CDCE:1;
            unsigned long DLCCE:1;
            unsigned long CNDCE:1;
            unsigned long :20;
        } BIT;
    } TRSCER;
    char           wk7[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long MFC:16;
            unsigned long :16;
        } BIT;
    } RMFCR;
    char           wk8[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long TFT:11;
            unsigned long :21;
        } BIT;
    } TFTR;
    char           wk9[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long RFD:5;
            unsigned long :3;
            unsigned long TFD:5;
            unsigned long :19;
        } BIT;
    } FDR;
    char           wk10[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long RNR:1;
            unsigned long RNC:1;
            unsigned long :30;
        } BIT;
    } RMCR;
    char           wk11[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long UNDER:16;
            unsigned long :16;
        } BIT;
    } TFUCR;
    union {
        unsigned long LONG;
        struct {
            unsigned long OVER:16;
            unsigned long :16;
        } BIT;
    } RFOCR;
    union {
        unsigned long LONG;
        struct {
            unsigned long ELB:1;
            unsigned long :31;
        } BIT;
    } IOSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long RFDO:3;
            unsigned long :13;
            unsigned long RFFO:3;
            unsigned long :13;
        } BIT;
    } FCFTR;
    char           wk12[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long PADR:6;
            unsigned long :10;
            unsigned long PADS:2;
            unsigned long :14;
        } BIT;
    } RPADIR;
    union {
        unsigned long LONG;
        struct {
            unsigned long TIS:1;
            unsigned long :3;
            unsigned long TIM:1;
            unsigned long :27;
        } BIT;
    } TRIMD;
    char           wk13[72];
    void          *RBWAR;
    void          *RDFAR;
    char           wk14[4];
    void          *TBRAR;    
    void          *TDFAR;    
};

struct st_edmacp {
    union {
        unsigned long LONG;
        struct {
            unsigned long SWR:1;
            unsigned long :3;
            unsigned long DL:2;
            unsigned long DE:1;
            unsigned long :25;
        } BIT;
    } EDMR;
    char           wk0[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long TR:1;
            unsigned long :31;
        } BIT;
    } EDTRR;
    char           wk1[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long RR:1;
            unsigned long :31;
        } BIT;
    } EDRRR;
    char           wk2[4];
    unsigned long  TDLAR;
    char           wk3[4];
    unsigned long  RDLAR;
    char           wk4[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long RFOF:1;
            unsigned long RDE:1;
            unsigned long FR:1;
            unsigned long TFUF:1;
            unsigned long TDE:1;
            unsigned long TC:1;
            unsigned long ECI:1;
            unsigned long ADE:1;
            unsigned long RFCOF:1;
            unsigned long RABT:1;
            unsigned long TABT:1;
            unsigned long :3;
            unsigned long TWB:1;
            unsigned long :1;
        } BIT;
    } EESR;
    char           wk5[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long RFOFIP:1;
            unsigned long RDEIP:1;
            unsigned long FRIP:1;
            unsigned long TFUFIP:1;
            unsigned long TDEIP:1;
            unsigned long TCIP:1;
            unsigned long ECIIP:1;
            unsigned long ADEIP:1;
            unsigned long RFCOFIP:1;
            unsigned long RABTIP:1;
            unsigned long TABTIP:1;
            unsigned long :3;
            unsigned long TWBIP:1;
            unsigned long :1;
        } BIT;
    } EESIPR;
    char           wk6[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long CERFCE:1;
            unsigned long PRECE:1;
            unsigned long RTSFCE:1;
            unsigned long RTLFCE:1;
            unsigned long RRFCE:1;
            unsigned long :2;
            unsigned long RMAFCE:1;
            unsigned long TROCE:1;
            unsigned long CDCE:1;
            unsigned long DLCCE:1;
            unsigned long CNDCE:1;
            unsigned long :20;
        } BIT;
    } TRSCER;
    char           wk7[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long MFC:16;
            unsigned long :16;
        } BIT;
    } RMFCR;
    char           wk8[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long TFT:11;
            unsigned long :21;
        } BIT;
    } TFTR;
    char           wk9[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long RFD:5;
            unsigned long :3;
            unsigned long TFD:5;
            unsigned long :19;
        } BIT;
    } FDR;
    char           wk10[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long RNR:1;
            unsigned long RNC:1;
            unsigned long :30;
        } BIT;
    } RMCR;
    char           wk11[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long UNDER:16;
            unsigned long :16;
        } BIT;
    } TFUCR;
    union {
        unsigned long LONG;
        struct {
            unsigned long OVER:16;
            unsigned long :16;
        } BIT;
    } RFOCR;
    union {
        unsigned long LONG;
        struct {
            unsigned long ELB:1;
            unsigned long :31;
        } BIT;
    } IOSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long RFDO:3;
            unsigned long :13;
            unsigned long RFFO:3;
            unsigned long :13;
        } BIT;
    } FCFTR;
    char           wk12[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long PADR:6;
            unsigned long :10;
            unsigned long PADS:2;
            unsigned long :14;
        } BIT;
    } RPADIR;
    union {
        unsigned long LONG;
        struct {
            unsigned long TIS:1;
            unsigned long :3;
            unsigned long TIM:1;
            unsigned long :27;
        } BIT;
    } TRIMD;
    char           wk13[72];
    unsigned long  RBWAR;
    unsigned long  RDFAR;
    char           wk14[4];
    unsigned long  TBRAR;
    unsigned long  TDFAR;
};

struct st_elc {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char ELCON:1;
        } BIT;
    } ELCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR0;
    char           wk0[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR4;
    char           wk1[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR7;
    char           wk2[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR10;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR11;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR12;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR13;
    char           wk3[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR15;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR16;
    char           wk4[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR18;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR19;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR20;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR21;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR22;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR23;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR24;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR25;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR26;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR27;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR28;
    char           wk5[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MTU0MD:2;
            unsigned char :4;
            unsigned char MTU3MD:2;
        } BIT;
    } ELOPA;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MTU4MD:2;
            unsigned char :6;
        } BIT;
    } ELOPB;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char CMT1MD:2;
            unsigned char :4;
        } BIT;
    } ELOPC;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TMR0MD:2;
            unsigned char TMR1MD:2;
            unsigned char TMR2MD:2;
            unsigned char TMR3MD:2;
        } BIT;
    } ELOPD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PGR0:1;
            unsigned char PGR1:1;
            unsigned char PGR2:1;
            unsigned char PGR3:1;
            unsigned char PGR4:1;
            unsigned char PGR5:1;
            unsigned char PGR6:1;
            unsigned char PGR7:1;
        } BIT;
    } PGR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PGR0:1;
            unsigned char PGR1:1;
            unsigned char PGR2:1;
            unsigned char PGR3:1;
            unsigned char PGR4:1;
            unsigned char PGR5:1;
            unsigned char PGR6:1;
            unsigned char PGR7:1;
        } BIT;
    } PGR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PGCI:2;
            unsigned char PGCOVE:1;
            unsigned char :1;
            unsigned char PGCO:3;
            unsigned char :1;
        } BIT;
    } PGC1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PGCI:2;
            unsigned char PGCOVE:1;
            unsigned char :1;
            unsigned char PGCO:3;
            unsigned char :1;
        } BIT;
    } PGC2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PDBF0:1;
            unsigned char PDBF1:1;
            unsigned char PDBF2:1;
            unsigned char PDBF3:1;
            unsigned char PDBF4:1;
            unsigned char PDBF5:1;
            unsigned char PDBF6:1;
            unsigned char PDBF7:1;
        } BIT;
    } PDBF1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PDBF0:1;
            unsigned char PDBF1:1;
            unsigned char PDBF2:1;
            unsigned char PDBF3:1;
            unsigned char PDBF4:1;
            unsigned char PDBF5:1;
            unsigned char PDBF6:1;
            unsigned char PDBF7:1;
        } BIT;
    } PDBF2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSB:3;
            unsigned char PSP:2;
            unsigned char PSM:2;
            unsigned char :1;
        } BIT;
    } PEL0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSB:3;
            unsigned char PSP:2;
            unsigned char PSM:2;
            unsigned char :1;
        } BIT;
    } PEL1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSB:3;
            unsigned char PSP:2;
            unsigned char PSM:2;
            unsigned char :1;
        } BIT;
    } PEL2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSB:3;
            unsigned char PSP:2;
            unsigned char PSM:2;
            unsigned char :1;
        } BIT;
    } PEL3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SEG:1;
            unsigned char :5;
            unsigned char WE:1;
            unsigned char WI:1;
        } BIT;
    } ELSEGR;
    char           wk6[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR33;
    char           wk7[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR35;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR36;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR37;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR38;
    char           wk8[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR41;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR42;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR43;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR44;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR45;
    char           wk9[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPU0MD:2;
            unsigned char TPU1MD:2;
            unsigned char TPU2MD:2;
            unsigned char TPU3MD:2;
        } BIT;
    } ELOPF;
    char           wk10[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CMTW0MD:2;
            unsigned char :6;
        } BIT;
    } ELOPH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char GPT0MD:3;
            unsigned char :1;
            unsigned char GPT1MD:3;
            unsigned char :1;
        } BIT;
    } ELOPI;
    union {
        unsigned char BYTE;
        struct {
            unsigned char GPT2MD:3;
            unsigned char :1;
            unsigned char GPT3MD:3;
            unsigned char :1;
        } BIT;
    } ELOPJ;
};

struct st_eptpc {
    union {
        unsigned long LONG;
        struct {
            unsigned long RESET:1;
            unsigned long :31;
        } BIT;
    } PTRSTR;
    union {
        unsigned long LONG;
        struct {
            unsigned long SCLKDIV:3;
            unsigned long :5;
            unsigned long SCLKSEL:3;
            unsigned long :21;
        } BIT;
    } STCSELR;
    char           wk0[15096];
    union {
        unsigned long LONG;
        struct {
            unsigned long ST:1;
            unsigned long SY0:1;
            unsigned long SY1:1;
            unsigned long PRC:1;
            unsigned long :12;
            unsigned long CYC0:1;
            unsigned long CYC1:1;
            unsigned long CYC2:1;
            unsigned long CYC3:1;
            unsigned long CYC4:1;
            unsigned long CYC5:1;
            unsigned long :10;
        } BIT;
    } MIESR;
    union {
        unsigned long LONG;
        struct {
            unsigned long ST:1;
            unsigned long SY0:1;
            unsigned long SY1:1;
            unsigned long PR:1;
            unsigned long :12;
            unsigned long CYC0:1;
            unsigned long CYC1:1;
            unsigned long CYC2:1;
            unsigned long CYC3:1;
            unsigned long CYC4:1;
            unsigned long CYC5:1;
            unsigned long :10;
        } BIT;
    } MIEIPR;
    char           wk1[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long REV:16;
            unsigned long VER:16;
        } BIT;
    } PTVRR;
    union {
        unsigned long LONG;
        struct {
            unsigned long CYCP0:1;
            unsigned long CYCP1:1;
            unsigned long CYCP2:1;
            unsigned long CYCP3:1;
            unsigned long CYCP4:1;
            unsigned long CYCP5:1;
            unsigned long :2;
            unsigned long CYCN0:1;
            unsigned long CYCN1:1;
            unsigned long CYCN2:1;
            unsigned long CYCN3:1;
            unsigned long CYCN4:1;
            unsigned long CYCN5:1;
            unsigned long :2;
            unsigned long PLSP:1;
            unsigned long :7;
            unsigned long PLSN:1;
            unsigned long :7;
        } BIT;
    } ELIPPR;
    union {
        unsigned long LONG;
        struct {
            unsigned long CYCP0:1;
            unsigned long CYCP1:1;
            unsigned long CYCP2:1;
            unsigned long CYCP3:1;
            unsigned long CYCP4:1;
            unsigned long CYCP5:1;
            unsigned long :2;
            unsigned long CYCN0:1;
            unsigned long CYCN1:1;
            unsigned long CYCN2:1;
            unsigned long CYCN3:1;
            unsigned long CYCN4:1;
            unsigned long CYCN5:1;
            unsigned long :2;
            unsigned long PLSP:1;
            unsigned long :7;
            unsigned long PLSN:1;
            unsigned long :7;
        } BIT;
    } ELIPACR;
    char           wk2[40];
    union {
        unsigned long LONG;
        struct {
            unsigned long SYNC:1;
            unsigned long SYNCOUT:1;
            unsigned long :1;
            unsigned long SYNTOUT:1;
            unsigned long W10D:1;
            unsigned long :27;
        } BIT;
    } STSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long SYNC:1;
            unsigned long SYNCOUT:1;
            unsigned long :1;
            unsigned long SYNTOUT:1;
            unsigned long W10D:1;
            unsigned long :27;
        } BIT;
    } STIPR;
    char           wk3[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long REV:16;
            unsigned long VER:16;
        } BIT;
    } STVRR;
    union {
        unsigned long LONG;
        struct {
            unsigned long STCF:2;
            unsigned long :30;
        } BIT;
    } STCFR;
    union {
        unsigned long LONG;
        struct {
            unsigned long WINT:8;
            unsigned long :5;
            unsigned long CMOD:1;
            unsigned long :1;
            unsigned long W10S:1;
            unsigned long DVTH:4;
            unsigned long SYTH:4;
            unsigned long :4;
            unsigned long ALEN0:1;
            unsigned long ALEN1:1;
            unsigned long :2;
        } BIT;
    } STMR;
    unsigned long  SYNTOR;
    char           wk4[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long IPTSEL0:1;
            unsigned long IPTSEL1:1;
            unsigned long IPTSEL2:1;
            unsigned long IPTSEL3:1;
            unsigned long IPTSEL4:1;
            unsigned long IPTSEL5:1;
            unsigned long :26;
        } BIT;
    } IPTSELR;
    union {
        unsigned long LONG;
        struct {
            unsigned long MINTEN0:1;
            unsigned long MINTEN1:1;
            unsigned long MINTEN2:1;
            unsigned long MINTEN3:1;
            unsigned long MINTEN4:1;
            unsigned long MINTEN5:1;
            unsigned long :26;
        } BIT;
    } MITSELR;
    union {
        unsigned long LONG;
        struct {
            unsigned long ELTDIS0:1;
            unsigned long ELTDIS1:1;
            unsigned long ELTDIS2:1;
            unsigned long ELTDIS3:1;
            unsigned long ELTDIS4:1;
            unsigned long ELTDIS5:1;
            unsigned long :26;
        } BIT;
    } ELTSELR;
    union {
        unsigned long LONG;
        struct {
            unsigned long SYSEL:1;
            unsigned long :31;
        } BIT;
    } STCHSELR;
    char           wk5[16];
    union {
        unsigned long LONG;
        struct {
            unsigned long STR:1;
            unsigned long :31;
        } BIT;
    } SYNSTARTR;
    union {
        unsigned long LONG;
        struct {
            unsigned long LOAD:1;
            unsigned long :31;
        } BIT;
    } LCIVLDR;
    char           wk6[8];
    unsigned long  SYNTDARU;
    unsigned long  SYNTDARL;
    unsigned long  SYNTDBRU;
    unsigned long  SYNTDBRL;
    char           wk7[16];
    union {
        unsigned long LONG;
        struct {
            unsigned long VALU:16;
            unsigned long :16;
        } BIT;
    } LCIVRU;
    unsigned long  LCIVRM;
    unsigned long  LCIVRL;
    char           wk8[104];
    union {
        unsigned long LONG;
        struct {
            unsigned long GW10:1;
            unsigned long :31;
        } BIT;
    } GETW10R;
    union {
        unsigned long LONG;
        struct {
            unsigned long LMTU:31;
            unsigned long :1;
        } BIT;
    } PLIMITRU;
    unsigned long  PLIMITRM;
    unsigned long  PLIMITRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long LMTU:31;
            unsigned long :1;
        } BIT;
    } MLIMITRU;
    unsigned long  MLIMITRM;
    unsigned long  MLIMITRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long INFO:1;
            unsigned long :31;
        } BIT;
    } GETINFOR;
    char           wk9[44];
    union {
        unsigned long LONG;
        struct {
            unsigned long CNTU:16;
            unsigned long :16;
        } BIT;
    } LCCVRU;
    unsigned long  LCCVRM;
    unsigned long  LCCVRL;
    char           wk10[148];
    unsigned long  PW10VRU;
    unsigned long  PW10VRM;
    unsigned long  PW10VRL;
    char           wk11[180];
    unsigned long  MW10RU;
    unsigned long  MW10RM;
    unsigned long  MW10RL;
    char           wk12[36];
    unsigned long  TMSTTRU0;
    unsigned long  TMSTTRL0;
    union {
        unsigned long LONG;
        struct {
            unsigned long CYC:30;
            unsigned long :2;
        } BIT;
    } TMCYCR0;
    union {
        unsigned long LONG;
        struct {
            unsigned long WTH:29;
            unsigned long :3;
        } BIT;
    } TMPLSR0;
    unsigned long  TMSTTRU1;
    unsigned long  TMSTTRL1;
    union {
        unsigned long LONG;
        struct {
            unsigned long CYC:30;
            unsigned long :2;
        } BIT;
    } TMCYCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long WTH:29;
            unsigned long :3;
        } BIT;
    } TMPLSR1;
    unsigned long  TMSTTRU2;
    unsigned long  TMSTTRL2;
    union {
        unsigned long LONG;
        struct {
            unsigned long CYC:30;
            unsigned long :2;
        } BIT;
    } TMCYCR2;
    union {
        unsigned long LONG;
        struct {
            unsigned long WTH:29;
            unsigned long :3;
        } BIT;
    } TMPLSR2;
    unsigned long  TMSTTRU3;
    unsigned long  TMSTTRL3;
    union {
        unsigned long LONG;
        struct {
            unsigned long CYC:30;
            unsigned long :2;
        } BIT;
    } TMCYCR3;
    union {
        unsigned long LONG;
        struct {
            unsigned long WTH:29;
            unsigned long :3;
        } BIT;
    } TMPLSR3;
    unsigned long  TMSTTRU4;
    unsigned long  TMSTTRL4;
    union {
        unsigned long LONG;
        struct {
            unsigned long CYC:30;
            unsigned long :2;
        } BIT;
    } TMCYCR4;
    union {
        unsigned long LONG;
        struct {
            unsigned long WTH:29;
            unsigned long :3;
        } BIT;
    } TMPLSR4;
    unsigned long  TMSTTRU5;
    unsigned long  TMSTTRL5;
    union {
        unsigned long LONG;
        struct {
            unsigned long CYC:30;
            unsigned long :2;
        } BIT;
    } TMCYCR5;
    union {
        unsigned long LONG;
        struct {
            unsigned long WTH:29;
            unsigned long :3;
        } BIT;
    } TMPLSR5;
    char           wk13[28];
    union {
        unsigned long LONG;
        struct {
            unsigned long EN0:1;
            unsigned long EN1:1;
            unsigned long EN2:1;
            unsigned long EN3:1;
            unsigned long EN4:1;
            unsigned long EN5:1;
            unsigned long :26;
        } BIT;
    } TMSTARTR;
    char           wk14[128];
    union {
        unsigned long LONG;
        struct {
            unsigned long OVRE0:1;
            unsigned long OVRE1:1;
            unsigned long OVRE2:1;
            unsigned long OVRE3:1;
            unsigned long :4;
            unsigned long MACE:1;
            unsigned long :7;
            unsigned long PRRE0:1;
            unsigned long PRRE1:1;
            unsigned long PRRE2:1;
            unsigned long PRRE3:1;
            unsigned long PRTE00:1;
            unsigned long PRTE01:1;
            unsigned long PRTE02:1;
            unsigned long PRTE03:1;
            unsigned long PRTE10:1;
            unsigned long PRTE11:1;
            unsigned long PRTE12:1;
            unsigned long PRTE13:1;
            unsigned long URE0:1;
            unsigned long URE1:1;
            unsigned long :2;
        } BIT;
    } PRSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long OVRE0:1;
            unsigned long OVRE1:1;
            unsigned long OVRE2:1;
            unsigned long OVRE3:1;
            unsigned long :4;
            unsigned long MACE:1;
            unsigned long :7;
            unsigned long PRRE0:1;
            unsigned long PRRE1:1;
            unsigned long PRRE2:1;
            unsigned long PRRE3:1;
            unsigned long PRTE00:1;
            unsigned long PRTE01:1;
            unsigned long PRTE02:1;
            unsigned long PRTE03:1;
            unsigned long PRTE10:1;
            unsigned long PRTE11:1;
            unsigned long PRTE12:1;
            unsigned long PRTE13:1;
            unsigned long URE0:1;
            unsigned long URE1:1;
            unsigned long :2;
        } BIT;
    } PRIPR;
    char           wk15[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long REV:16;
            unsigned long VER:16;
        } BIT;
    } PRVRR;
    union {
        unsigned long LONG;
        struct {
            unsigned long MACU:24;
            unsigned long :8;
        } BIT;
    } PRMACRU0;
    union {
        unsigned long LONG;
        struct {
            unsigned long MACL:24;
            unsigned long :8;
        } BIT;
    } PRMACRL0;
    union {
        unsigned long LONG;
        struct {
            unsigned long MACU:24;
            unsigned long :8;
        } BIT;
    } PRMACRU1;
    union {
        unsigned long LONG;
        struct {
            unsigned long MACL:24;
            unsigned long :8;
        } BIT;
    } PRMACRL1;
    union {
        unsigned long LONG;
        struct {
            unsigned long TDIS:2;
            unsigned long :30;
        } BIT;
    } TRNDISR;
    char           wk16[12];
    union {
        unsigned long LONG;
        struct {
            unsigned long MOD:1;
            unsigned long :31;
        } BIT;
    } TRNMR;
    union {
        unsigned long LONG;
        struct {
            unsigned long THVAL:11;
            unsigned long :21;
        } BIT;
    } TRNCTTDR;
};

struct st_eptpcs {
    union {
        unsigned long LONG;
        struct {
            unsigned long OFMUD:1;
            unsigned long INTCHG:1;
            unsigned long MPDUD:1;
            unsigned long :1;
            unsigned long DRPTO:1;
            unsigned long INTDEV:1;
            unsigned long DRQOVR:1;
            unsigned long :2;
            unsigned long PDRPMR:1;
            unsigned long :2;
            unsigned long RECLP:1;
            unsigned long SRTABT:1;
            unsigned long INFABT:1;
            unsigned long :1;
            unsigned long RESDN:1;
            unsigned long GENDN:1;
            unsigned long :2;
            unsigned long PRE0:1;
            unsigned long PRE1:1;
            unsigned long PRE2:1;
            unsigned long PRE3:1;
            unsigned long :8;
        } BIT;
    } SYSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long OFMUD:1;
            unsigned long INTCHG:1;
            unsigned long MPDUD:1;
            unsigned long :1;
            unsigned long DRPTO:1;
            unsigned long INTDEV:1;
            unsigned long DRQOVR:1;
            unsigned long :2;
            unsigned long PDRPMR:1;
            unsigned long :2;
            unsigned long RECLP:1;
            unsigned long SRTABT:1;
            unsigned long INFABT:1;
            unsigned long :1;
            unsigned long RESDN:1;
            unsigned long GENDN:1;
            unsigned long :2;
            unsigned long PRE0:1;
            unsigned long PRE1:1;
            unsigned long PRE2:1;
            unsigned long PRE3:1;
            unsigned long :8;
        } BIT;
    } SYIPR;
    char           wk0[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long REV:16;
            unsigned long VER:16;
        } BIT;
    } SYVRR;
    union {
        unsigned long LONG;
        struct {
            unsigned long MACU:24;
            unsigned long :8;
        } BIT;
    } SYMACRU;
    union {
        unsigned long LONG;
        struct {
            unsigned long MACL:24;
            unsigned long :8;
        } BIT;
    } SYMACRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long LLC:8;
            unsigned long :24;
        } BIT;
    } SYLLCCTLR;
    unsigned long  SYIPR2;
    char           wk1[32];
    union {
        unsigned long LONG;
        struct {
            unsigned long VER:4;
            unsigned long TRSP:4;
            unsigned long :24;
        } BIT;
    } SYSPVRR;
    union {
        unsigned long LONG;
        struct {
            unsigned long DNUM:8;
            unsigned long :24;
        } BIT;
    } SYDOMR;
    char           wk2[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long FLG0:1;
            unsigned long FLG1:1;
            unsigned long FLG2:1;
            unsigned long FLG3:1;
            unsigned long FLG4:1;
            unsigned long FLG5:1;
            unsigned long FLG6:1;
            unsigned long FLG7:1;
            unsigned long FLG8:1;
            unsigned long FLG9:1;
            unsigned long FLG10:1;
            unsigned long FLG11:1;
            unsigned long FLG12:1;
            unsigned long FLG13:1;
            unsigned long FLG14:1;
            unsigned long FLG15:1;
            unsigned long :16;
        } BIT;
    } ANFR;
    union {
        unsigned long LONG;
        struct {
            unsigned long FLG0:1;
            unsigned long FLG1:1;
            unsigned long FLG2:1;
            unsigned long FLG3:1;
            unsigned long FLG4:1;
            unsigned long FLG5:1;
            unsigned long FLG6:1;
            unsigned long FLG7:1;
            unsigned long FLG8:1;
            unsigned long FLG9:1;
            unsigned long FLG10:1;
            unsigned long FLG11:1;
            unsigned long FLG12:1;
            unsigned long FLG13:1;
            unsigned long FLG14:1;
            unsigned long FLG15:1;
            unsigned long :16;
        } BIT;
    } SYNFR;
    union {
        unsigned long LONG;
        struct {
            unsigned long FLG0:1;
            unsigned long FLG1:1;
            unsigned long FLG2:1;
            unsigned long FLG3:1;
            unsigned long FLG4:1;
            unsigned long FLG5:1;
            unsigned long FLG6:1;
            unsigned long FLG7:1;
            unsigned long FLG8:1;
            unsigned long FLG9:1;
            unsigned long FLG10:1;
            unsigned long FLG11:1;
            unsigned long FLG12:1;
            unsigned long FLG13:1;
            unsigned long FLG14:1;
            unsigned long FLG15:1;
            unsigned long :16;
        } BIT;
    } DYRQFR;
    union {
        unsigned long LONG;
        struct {
            unsigned long FLG0:1;
            unsigned long FLG1:1;
            unsigned long FLG2:1;
            unsigned long FLG3:1;
            unsigned long FLG4:1;
            unsigned long FLG5:1;
            unsigned long FLG6:1;
            unsigned long FLG7:1;
            unsigned long FLG8:1;
            unsigned long FLG9:1;
            unsigned long FLG10:1;
            unsigned long FLG11:1;
            unsigned long FLG12:1;
            unsigned long FLG13:1;
            unsigned long FLG14:1;
            unsigned long FLG15:1;
            unsigned long :16;
        } BIT;
    } DYRPFR;
    unsigned long  SYCIDRU;
    unsigned long  SYCIDRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long PNUM:16;
            unsigned long :16;
        } BIT;
    } SYPNUMR;
    char           wk3[20];
    union {
        unsigned long LONG;
        struct {
            unsigned long BMUP:1;
            unsigned long STUP:1;
            unsigned long ANUP:1;
            unsigned long :29;
        } BIT;
    } SYRVLDR;
    char           wk4[12];
    union {
        unsigned long LONG;
        struct {
            unsigned long ANCE0:1;
            unsigned long ANCE1:1;
            unsigned long :2;
            unsigned long SYNC0:1;
            unsigned long SYNC1:1;
            unsigned long SYNC2:1;
            unsigned long :1;
            unsigned long FUP0:1;
            unsigned long FUP1:1;
            unsigned long FUP2:1;
            unsigned long :1;
            unsigned long DRQ0:1;
            unsigned long DRQ1:1;
            unsigned long DRQ2:1;
            unsigned long :1;
            unsigned long DRP0:1;
            unsigned long DRP1:1;
            unsigned long DRP2:1;
            unsigned long :1;
            unsigned long PDRQ0:1;
            unsigned long PDRQ1:1;
            unsigned long PDRQ2:1;
            unsigned long :1;
            unsigned long PDRP0:1;
            unsigned long PDRP1:1;
            unsigned long PDRP2:1;
            unsigned long :1;
            unsigned long PDFUP0:1;
            unsigned long PDFUP1:1;
            unsigned long PDFUP2:1;
            unsigned long :1;
        } BIT;
    } SYRFL1R;
    union {
        unsigned long LONG;
        struct {
            unsigned long MAN0:1;
            unsigned long MAN1:1;
            unsigned long :2;
            unsigned long SIG0:1;
            unsigned long SIG1:1;
            unsigned long :22;
            unsigned long ILL0:1;
            unsigned long ILL1:1;
            unsigned long :2;
        } BIT;
    } SYRFL2R;
    union {
        unsigned long LONG;
        struct {
            unsigned long ANCE:1;
            unsigned long :3;
            unsigned long SYNC:1;
            unsigned long :3;
            unsigned long DRQ:1;
            unsigned long :3;
            unsigned long PDRQ:1;
            unsigned long :19;
        } BIT;
    } SYTRENR;
    char           wk5[4];
    unsigned long  MTCIDU;
    unsigned long  MTCIDL;
    union {
        unsigned long LONG;
        struct {
            unsigned long PNUM:16;
            unsigned long :16;
        } BIT;
    } MTPID;
    char           wk6[20];
    union {
        unsigned long LONG;
        struct {
            unsigned long ANCE:8;
            unsigned long SYNC:8;
            unsigned long DRQ:8;
            unsigned long :8;
        } BIT;
    } SYTLIR;
    union {
        unsigned long LONG;
        struct {
            unsigned long ANCE:8;
            unsigned long SYNC:8;
            unsigned long DRP:8;
            unsigned long :8;
        } BIT;
    } SYRLIR;
    unsigned long  OFMRU;
    unsigned long  OFMRL;
    unsigned long  MPDRU;
    unsigned long  MPDRL;
    char           wk7[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long GMPR2:8;
            unsigned long :8;
            unsigned long GMPR1:8;
            unsigned long :8;
        } BIT;
    } GMPR;
    unsigned long  GMCQR;
    unsigned long  GMIDRU;
    unsigned long  GMIDRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long TSRC:8;
            unsigned long :8;
            unsigned long CUTO:16;
        } BIT;
    } CUOTSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long SRMV:16;
            unsigned long :16;
        } BIT;
    } SRR;
    char           wk8[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long MACU:24;
            unsigned long :8;
        } BIT;
    } PPMACRU;
    union {
        unsigned long LONG;
        struct {
            unsigned long MACL:24;
            unsigned long :8;
        } BIT;
    } PPMACRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long MACU:24;
            unsigned long :8;
        } BIT;
    } PDMACRU;
    union {
        unsigned long LONG;
        struct {
            unsigned long MACL:24;
            unsigned long :8;
        } BIT;
    } PDMACRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long TYPE:16;
            unsigned long :16;
        } BIT;
    } PETYPER;
    char           wk9[12];
    unsigned long  PPIPR;
    unsigned long  PDIPR;
    union {
        unsigned long LONG;
        struct {
            unsigned long EVTO:8;
            unsigned long :24;
        } BIT;
    } PETOSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long GETO:8;
            unsigned long :24;
        } BIT;
    } PGTOSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long PRTL:8;
            unsigned long :24;
        } BIT;
    } PPTTLR;
    union {
        unsigned long LONG;
        struct {
            unsigned long PDTL:8;
            unsigned long :24;
        } BIT;
    } PDTTLR;
    union {
        unsigned long LONG;
        struct {
            unsigned long EVUPT:16;
            unsigned long :16;
        } BIT;
    } PEUDPR;
    union {
        unsigned long LONG;
        struct {
            unsigned long GEUPT:16;
            unsigned long :16;
        } BIT;
    } PGUDPR;
    union {
        unsigned long LONG;
        struct {
            unsigned long SEL:1;
            unsigned long PRT:1;
            unsigned long ENB:1;
            unsigned long :29;
        } BIT;
    } FFLTR;
    char           wk10[28];
    union {
        unsigned long LONG;
        struct {
            unsigned long MACU:24;
            unsigned long :8;
        } BIT;
    } FMAC0RU;
    union {
        unsigned long LONG;
        struct {
            unsigned long MACL:24;
            unsigned long :8;
        } BIT;
    } FMAC0RL;
    union {
        unsigned long LONG;
        struct {
            unsigned long MACU:24;
            unsigned long :8;
        } BIT;
    } FMAC1RU;
    union {
        unsigned long LONG;
        struct {
            unsigned long MACL:24;
            unsigned long :8;
        } BIT;
    } FMAC1RL;
    char           wk11[80];
    union {
        unsigned long LONG;
        struct {
            unsigned long ASYMU:16;
            unsigned long :16;
        } BIT;
    } DASYMRU;
    unsigned long  DASYMRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long EGP:16;
            unsigned long INGP:16;
        } BIT;
    } TSLATR;
    union {
        unsigned long LONG;
        struct {
            unsigned long TCYC:8;
            unsigned long :4;
            unsigned long SBDIS:1;
            unsigned long :3;
            unsigned long FILDIS:1;
            unsigned long :3;
            unsigned long TCMOD:1;
            unsigned long :3;
            unsigned long TRAN:1;
            unsigned long :7;
        } BIT;
    } SYCONFR;
    union {
        unsigned long LONG;
        struct {
            unsigned long FORM0:1;
            unsigned long FORM1:1;
            unsigned long :30;
        } BIT;
    } SYFORMR;
    unsigned long  RSTOUTR;
};

struct st_etherc {
    union {
        unsigned long LONG;
        struct {
            unsigned long PRM:1;
            unsigned long DM:1;
            unsigned long RTM:1;
            unsigned long ILB:1;
            unsigned long :1;
            unsigned long TE:1;
            unsigned long RE:1;
            unsigned long :2;
            unsigned long MPDE:1;
            unsigned long :2;
            unsigned long PRCEF:1;
            unsigned long :3;
            unsigned long TXF:1;
            unsigned long RXF:1;
            unsigned long PFR:1;
            unsigned long ZPF:1;
            unsigned long TPC:1;
            unsigned long :11;
        } BIT;
    } ECMR;
    char           wk0[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long RFL:12;
            unsigned long :20;
        } BIT;
    } RFLR;
    char           wk1[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long ICD:1;
            unsigned long MPD:1;
            unsigned long LCHNG:1;
            unsigned long :1;
            unsigned long PSRTO:1;
            unsigned long BFR:1;
            unsigned long :26;
        } BIT;
    } ECSR;
    char           wk2[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long ICDIP:1;
            unsigned long MPDIP:1;
            unsigned long LCHNGIP:1;
            unsigned long :1;
            unsigned long PSRTOIP:1;
            unsigned long BFSIPR:1;
            unsigned long :26;
        } BIT;
    } ECSIPR;
    char           wk3[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long MDC:1;
            unsigned long MMD:1;
            unsigned long MDO:1;
            unsigned long MDI:1;
            unsigned long :28;
        } BIT;
    } PIR;
    char           wk4[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long LMON:1;
            unsigned long :31;
        } BIT;
    } PSR;
    char           wk5[20];
    union {
        unsigned long LONG;
        struct {
            unsigned long RMD:20;
            unsigned long :12;
        } BIT;
    } RDMLR;
    char           wk6[12];
    union {
        unsigned long LONG;
        struct {
            unsigned long IPG:5;
            unsigned long :27;
        } BIT;
    } IPGR;
    union {
        unsigned long LONG;
        struct {
            unsigned long AP:16;
            unsigned long :16;
        } BIT;
    } APR;
    union {
        unsigned long LONG;
        struct {
            unsigned long MP:16;
            unsigned long :16;
        } BIT;
    } MPR;
    char           wk7[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long RPAUSE:8;
            unsigned long :24;
        } BIT;
    } RFCF;
    union {
        unsigned long LONG;
        struct {
            unsigned long TPAUSE:16;
            unsigned long :16;
        } BIT;
    } TPAUSER;
    union {
        unsigned long LONG;
        struct {
            unsigned long TXP:8;
            unsigned long :24;
        } BIT;
    } TPAUSECR;
    union {
        unsigned long LONG;
        struct {
            unsigned long BCF:16;
            unsigned long :16;
        } BIT;
    } BCFRR;
    char           wk8[80];
    unsigned long  MAHR;
    char           wk9[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long MA:16;
            unsigned long :16;
        } BIT;
    } MALR;
    char           wk10[4];
    unsigned long  TROCR;
    unsigned long  CDCR;
    unsigned long  LCCR;
    unsigned long  CNDCR;
    char           wk11[4];
    unsigned long  CEFCR;
    unsigned long  FRECR;
    unsigned long  TSFRCR;
    unsigned long  TLFRCR;
    unsigned long  RFCR;
    unsigned long  MAFCR;
};

struct st_exdmac {
    union {
        unsigned char BYTE;
        struct {
            unsigned char DMST:1;
            unsigned char :7;
        } BIT;
    } EDMAST;
    char           wk0[479];
    unsigned long  CLSBR0;
    unsigned long  CLSBR1;
    unsigned long  CLSBR2;
    unsigned long  CLSBR3;
    unsigned long  CLSBR4;
    unsigned long  CLSBR5;
    unsigned long  CLSBR6;
    unsigned long  CLSBR7;
};

struct st_exdmac0 {

    void          *EDMSAR;
    void          *EDMDAR;    
    unsigned long  EDMCRA;
    unsigned short EDMCRB;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short DCTG:2;
            unsigned short :6;
            unsigned short SZ:2;
            unsigned short :2;
            unsigned short DTS:2;
            unsigned short MD:2;
        } BIT;
    } EDMTMD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DACKSEL:1;
            unsigned char DACKW:1;
            unsigned char DACKE:1;
            unsigned char DACKS:1;
            unsigned char :4;
        } BIT;
    } EDMOMD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DARIE:1;
            unsigned char SARIE:1;
            unsigned char RPTIE:1;
            unsigned char ESIE:1;
            unsigned char DTIE:1;
            unsigned char :3;
        } BIT;
    } EDMINT;
    union {
        unsigned long LONG;
        struct {
            unsigned long DARA:5;
            unsigned long :1;
            unsigned long DM:2;
            unsigned long SARA:5;
            unsigned long :1;
            unsigned long SM:2;
            unsigned long DIR:1;
            unsigned long AMS:1;
            unsigned long :14;
        } BIT;
    } EDMAMD;
    unsigned long  EDMOFR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DTE:1;
            unsigned char :7;
        } BIT;
    } EDMCNT;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SWREQ:1;
            unsigned char :3;
            unsigned char CLRS:1;
            unsigned char :3;
        } BIT;
    } EDMREQ;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ESIF:1;
            unsigned char :3;
            unsigned char DTIF:1;
            unsigned char :2;
            unsigned char ACT:1;
        } BIT;
    } EDMSTS;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DREQS:2;
            unsigned char :6;
        } BIT;
    } EDMRMD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char EREQ:1;
            unsigned char :7;
        } BIT;
    } EDMERF;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PREQ:1;
            unsigned char :7;
        } BIT;
    } EDMPRF;
};

struct st_exdmac1 {

    void          *EDMSAR;
    void          *EDMDAR;    
    unsigned long  EDMCRA;
    unsigned short EDMCRB;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short DCTG:2;
            unsigned short :6;
            unsigned short SZ:2;
            unsigned short :2;
            unsigned short DTS:2;
            unsigned short MD:2;
        } BIT;
    } EDMTMD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DACKSEL:1;
            unsigned char DACKW:1;
            unsigned char DACKE:1;
            unsigned char DACKS:1;
            unsigned char :4;
        } BIT;
    } EDMOMD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DARIE:1;
            unsigned char SARIE:1;
            unsigned char RPTIE:1;
            unsigned char ESIE:1;
            unsigned char DTIE:1;
            unsigned char :3;
        } BIT;
    } EDMINT;
    union {
        unsigned long LONG;
        struct {
            unsigned long DARA:5;
            unsigned long :1;
            unsigned long DM:2;
            unsigned long SARA:5;
            unsigned long :1;
            unsigned long SM:2;
            unsigned long DIR:1;
            unsigned long AMS:1;
            unsigned long :14;
        } BIT;
    } EDMAMD;
    char           wk1[4];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DTE:1;
            unsigned char :7;
        } BIT;
    } EDMCNT;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SWREQ:1;
            unsigned char :3;
            unsigned char CLRS:1;
            unsigned char :3;
        } BIT;
    } EDMREQ;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ESIF:1;
            unsigned char :3;
            unsigned char DTIF:1;
            unsigned char :2;
            unsigned char ACT:1;
        } BIT;
    } EDMSTS;
    char           wk2[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DREQS:2;
            unsigned char :6;
        } BIT;
    } EDMRMD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char EREQ:1;
            unsigned char :7;
        } BIT;
    } EDMERF;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PREQ:1;
            unsigned char :7;
        } BIT;
    } EDMPRF;
};

struct st_gpt {
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char CST0:1;
            unsigned char CST1:1;
            unsigned char CST2:1;
            unsigned char CST3:1;
            unsigned char :4;
            unsigned char :8;
        } BIT;
    } GTSTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short NFA0EN:1;
            unsigned short NFB0EN:1;
            unsigned short NFA1EN:1;
            unsigned short NFB1EN:1;
            unsigned short NFA2EN:1;
            unsigned short NFB2EN:1;
            unsigned short NFA3EN:1;
            unsigned short NFB3EN:1;
            unsigned short NFCS0:2;
            unsigned short NFCS1:2;
            unsigned short NFCS2:2;
            unsigned short NFCS3:2;
        } BIT;
    } NFCR;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char CSHW0:2;
            unsigned char CSHW1:2;
            unsigned char CSHW2:2;
            unsigned char CSHW3:2;
            unsigned char CPHW0:2;
            unsigned char CPHW1:2;
            unsigned char CPHW2:2;
            unsigned char CPHW3:2;
        } BIT;
    } GTHSCR;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char CCHW0:2;
            unsigned char CCHW1:2;
            unsigned char CCHW2:2;
            unsigned char CCHW3:2;
            unsigned char CCSW0:1;
            unsigned char CCSW1:1;
            unsigned char CCSW2:1;
            unsigned char CCSW3:1;
            unsigned char :4;
        } BIT;
    } GTHCCR;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char CSHSL0:4;
            unsigned char CSHSL1:4;
            unsigned char CSHSL2:4;
            unsigned char CSHSL3:4;
        } BIT;
    } GTHSSR;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char CSHPL0:4;
            unsigned char CSHPL1:4;
            unsigned char CSHPL2:4;
            unsigned char CSHPL3:4;
        } BIT;
    } GTHPSR;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char WP0:1;
            unsigned char WP1:1;
            unsigned char WP2:1;
            unsigned char WP3:1;
            unsigned char :4;
            unsigned char :8;
        } BIT;
    } GTWP;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char SYNC0:2;
            unsigned char :2;
            unsigned char SYNC1:2;
            unsigned char :2;
            unsigned char SYNC2:2;
            unsigned char :2;
            unsigned char SYNC3:2;
            unsigned char :2;
        } BIT;
    } GTSYNC;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char ETIPEN:1;
            unsigned char ETINEN:1;
            unsigned char :6;
            unsigned char ETIPF:1;
            unsigned char ETINF:1;
            unsigned char :3;
            unsigned char GTENFCS:2;
            unsigned char GTETRGEN:1;
        } BIT;
    } GTETINT;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char BD00:1;
            unsigned char BD01:1;
            unsigned char BD02:1;
            unsigned char BD03:1;
            unsigned char BD10:1;
            unsigned char BD11:1;
            unsigned char BD12:1;
            unsigned char BD13:1;
            unsigned char BD20:1;
            unsigned char BD21:1;
            unsigned char BD22:1;
            unsigned char BD23:1;
            unsigned char BD30:1;
            unsigned char BD31:1;
            unsigned char BD32:1;
            unsigned char BD33:1;
        } BIT;
    } GTBDR;
    char           wk1[2];
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char SWP0:1;
            unsigned char SWP1:1;
            unsigned char SWP2:1;
            unsigned char SWP3:1;
            unsigned char :4;
            unsigned char :8;
        } BIT;
    } GTSWP;
};

struct st_gpt0 {
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char GTIOA:6;
            unsigned char OADFLT:1;
            unsigned char OAHLD:1;
            unsigned char GTIOB:6;
            unsigned char OBDFLT:1;
            unsigned char OBHLD:1;
        } BIT;
    } GTIOR;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char GTINTA:1;
            unsigned char GTINTB:1;
            unsigned char GTINTC:1;
            unsigned char GTINTD:1;
            unsigned char GTINTE:1;
            unsigned char GTINTF:1;
            unsigned char GTINTPR:2;
            unsigned char :3;
            unsigned char EINT:1;
            unsigned char ADTRAUEN:1;
            unsigned char ADTRADEN:1;
            unsigned char ADTRBUEN:1;
            unsigned char ADTRBDEN:1;
        } BIT;
    } GTINTAD;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char MD:3;
            unsigned char :5;
            unsigned char TPCS:2;
            unsigned char :2;
            unsigned char CCLR:2;
            unsigned char :2;
        } BIT;
    } GTCR;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char CCRA:2;
            unsigned char CCRB:2;
            unsigned char PR:2;
            unsigned char CCRSWT:1;
            unsigned char :1;
            unsigned char ADTTA:2;
            unsigned char ADTDA:1;
            unsigned char :1;
            unsigned char ADTTB:2;
            unsigned char ADTDB:1;
            unsigned char :1;
        } BIT;
    } GTBER;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char UD:1;
            unsigned char UDF:1;
            unsigned char :6;
            unsigned char :8;
        } BIT;
    } GTUDC;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char ITLA:1;
            unsigned char ITLB:1;
            unsigned char ITLC:1;
            unsigned char ITLD:1;
            unsigned char ITLE:1;
            unsigned char ITLF:1;
            unsigned char IVTC:2;
            unsigned char IVTT:3;
            unsigned char :1;
            unsigned char ADTAL:1;
            unsigned char :1;
            unsigned char ADTBL:1;
            unsigned char :1;
        } BIT;
    } GTITC;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char TCFA:1;
            unsigned char TCFB:1;
            unsigned char TCFC:1;
            unsigned char TCFD:1;
            unsigned char TCFE:1;
            unsigned char TCFF:1;
            unsigned char TCFPO:1;
            unsigned char TCFPU:1;
            unsigned char ITCNT:3;
            unsigned char DTEF:1;
            unsigned char :3;
            unsigned char TUCF:1;
        } BIT;
    } GTST;
    unsigned short GTCNT;
    unsigned short GTCCRA;
    unsigned short GTCCRB;
    unsigned short GTCCRC;
    unsigned short GTCCRD;
    unsigned short GTCCRE;
    unsigned short GTCCRF;
    unsigned short GTPR;
    unsigned short GTPBR;
    unsigned short GTPDBR;
    char           wk0[2];
    unsigned short GTADTRA;
    unsigned short GTADTBRA;
    unsigned short GTADTDBRA;
    char           wk1[2];
    unsigned short GTADTRB;
    unsigned short GTADTBRB;
    unsigned short GTADTDBRB;
    char           wk2[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short NEA:1;
            unsigned short NEB:1;
            unsigned short NVA:1;
            unsigned short NVB:1;
            unsigned short NFS:4;
            unsigned short NFV:1;
            unsigned short :3;
            unsigned short SWN:1;
            unsigned short :1;
            unsigned short OAE:1;
            unsigned short OBE:1;
        } BIT;
    } GTONCR;
    union {
        unsigned short WORD;
        struct {
            unsigned short TDE:1;
            unsigned short :3;
            unsigned short TDBUE:1;
            unsigned short TDBDE:1;
            unsigned short :2;
            unsigned short TDFER:1;
            unsigned short :7;
        } BIT;
    } GTDTCR;
    unsigned short GTDVU;
    unsigned short GTDVD;
    unsigned short GTDBU;
    unsigned short GTDBD;
    union {
        unsigned short WORD;
        struct {
            unsigned short SOS:2;
            unsigned short :14;
        } BIT;
    } GTSOS;
    union {
        unsigned short WORD;
        struct {
            unsigned short SOTR:1;
            unsigned short :15;
        } BIT;
    } GTSOTR;
};

struct st_icu {
    union {
        unsigned char BYTE;
        struct {
            unsigned char IR:1;
            unsigned char :7;
        } BIT;
    } IR[256];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DTCE:1;
            unsigned char :7;
        } BIT;
    } DTCER[256];
    union {
        unsigned char BYTE;
        struct {
            unsigned char IEN0:1;
            unsigned char IEN1:1;
            unsigned char IEN2:1;
            unsigned char IEN3:1;
            unsigned char IEN4:1;
            unsigned char IEN5:1;
            unsigned char IEN6:1;
            unsigned char IEN7:1;
        } BIT;
    } IER[32];
    char           wk0[192];
    union {
        unsigned char BYTE;
        struct {
            unsigned char SWINT:1;
            unsigned char :7;
        } BIT;
    } SWINTR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SWINT2:1;
            unsigned char :7;
        } BIT;
    } SWINT2R;
    char           wk1[14];
    union {
        unsigned short WORD;
        struct {
            unsigned short FVCT:8;
            unsigned short :7;
            unsigned short FIEN:1;
        } BIT;
    } FIR;
    char           wk2[14];
    union {
        unsigned char BYTE;
        struct {
            unsigned char IPR:4;
            unsigned char :4;
        } BIT;
    } IPR[256];
    unsigned char  DMRSR0;
    char           wk3[3];
    unsigned char  DMRSR1;
    char           wk4[3];
    unsigned char  DMRSR2;
    char           wk5[3];
    unsigned char  DMRSR3;
    char           wk6[3];
    unsigned char  DMRSR4;
    char           wk7[3];
    unsigned char  DMRSR5;
    char           wk8[3];
    unsigned char  DMRSR6;
    char           wk9[3];
    unsigned char  DMRSR7;
    char           wk10[227];

    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char IRQMD:2;
            unsigned char :4;
        } BIT;
    } IRQCR[16];
    char           wk11[16];
    union {
        unsigned char BYTE;
        struct {
            unsigned char FLTEN0:1;
            unsigned char FLTEN1:1;
            unsigned char FLTEN2:1;
            unsigned char FLTEN3:1;
            unsigned char FLTEN4:1;
            unsigned char FLTEN5:1;
            unsigned char FLTEN6:1;
            unsigned char FLTEN7:1;
        } BIT;
    } IRQFLTE0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char FLTEN8:1;
            unsigned char FLTEN9:1;
            unsigned char FLTEN10:1;
            unsigned char FLTEN11:1;
            unsigned char FLTEN12:1;
            unsigned char FLTEN13:1;
            unsigned char FLTEN14:1;
            unsigned char FLTEN15:1;
        } BIT;
    } IRQFLTE1;
    char           wk12[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short FCLKSEL0:2;
            unsigned short FCLKSEL1:2;
            unsigned short FCLKSEL2:2;
            unsigned short FCLKSEL3:2;
            unsigned short FCLKSEL4:2;
            unsigned short FCLKSEL5:2;
            unsigned short FCLKSEL6:2;
            unsigned short FCLKSEL7:2;
        } BIT;
    } IRQFLTC0;
    union {
        unsigned short WORD;
        struct {
            unsigned short FCLKSEL8:2;
            unsigned short FCLKSEL9:2;
            unsigned short FCLKSEL10:2;
            unsigned short FCLKSEL11:2;
            unsigned short FCLKSEL12:2;
            unsigned short FCLKSEL13:2;
            unsigned short FCLKSEL14:2;
            unsigned short FCLKSEL15:2;
        } BIT;
    } IRQFLTC1;
    char           wk13[84];
    union {
        unsigned char BYTE;
        struct {
            unsigned char NMIST:1;
            unsigned char OSTST:1;
            unsigned char WDTST:1;
            unsigned char IWDTST:1;
            unsigned char LVD1ST:1;
            unsigned char LVD2ST:1;
            unsigned char ECCRAMST:1;
            unsigned char :1;
        } BIT;
    } NMISR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NMIEN:1;
            unsigned char OSTEN:1;
            unsigned char WDTEN:1;
            unsigned char IWDTEN:1;
            unsigned char LVD1EN:1;
            unsigned char LVD2EN:1;
            unsigned char ECCRAMEN:1;
            unsigned char :1;
        } BIT;
    } NMIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NMICLR:1;
            unsigned char OSTCLR:1;
            unsigned char WDTCLR:1;
            unsigned char IWDTCLR:1;
            unsigned char LVD1CLR:1;
            unsigned char LVD2CLR:1;
            unsigned char ECCRAMCLR:1;
            unsigned char :1;
        } BIT;
    } NMICLR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char NMIMD:1;
            unsigned char :4;
        } BIT;
    } NMICR;
    char           wk14[12];
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFLTEN:1;
            unsigned char :7;
        } BIT;
    } NMIFLTE;
    char           wk15[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFCLKSEL:2;
            unsigned char :6;
        } BIT;
    } NMIFLTC;
    char           wk16[107];
    union {
        unsigned long LONG;
        struct {
            unsigned long IS0:1;
            unsigned long IS1:1;
            unsigned long IS2:1;
            unsigned long IS3:1;
            unsigned long IS4:1;
            unsigned long IS5:1;
            unsigned long IS6:1;
            unsigned long IS7:1;
            unsigned long IS8:1;
            unsigned long IS9:1;
            unsigned long IS10:1;
            unsigned long IS11:1;
            unsigned long IS12:1;
            unsigned long IS13:1;
            unsigned long IS14:1;
            unsigned long IS15:1;
            unsigned long IS16:1;
            unsigned long IS17:1;
            unsigned long IS18:1;
            unsigned long IS19:1;
            unsigned long IS20:1;
            unsigned long IS21:1;
            unsigned long IS22:1;
            unsigned long IS23:1;
            unsigned long IS24:1;
            unsigned long IS25:1;
            unsigned long IS26:1;
            unsigned long IS27:1;
            unsigned long IS28:1;
            unsigned long IS29:1;
            unsigned long IS30:1;
            unsigned long IS31:1;
        } BIT;
    } GRPBE0;
    union {
        unsigned long LONG;
        struct {
            unsigned long IS0:1;
            unsigned long IS1:1;
            unsigned long IS2:1;
            unsigned long IS3:1;
            unsigned long IS4:1;
            unsigned long IS5:1;
            unsigned long IS6:1;
            unsigned long IS7:1;
            unsigned long IS8:1;
            unsigned long IS9:1;
            unsigned long IS10:1;
            unsigned long IS11:1;
            unsigned long IS12:1;
            unsigned long IS13:1;
            unsigned long IS14:1;
            unsigned long IS15:1;
            unsigned long IS16:1;
            unsigned long IS17:1;
            unsigned long IS18:1;
            unsigned long IS19:1;
            unsigned long IS20:1;
            unsigned long IS21:1;
            unsigned long IS22:1;
            unsigned long IS23:1;
            unsigned long IS24:1;
            unsigned long IS25:1;
            unsigned long IS26:1;
            unsigned long IS27:1;
            unsigned long IS28:1;
            unsigned long IS29:1;
            unsigned long IS30:1;
            unsigned long IS31:1;
        } BIT;
    } GRPBE1;
    char           wk17[40];
    union {
        unsigned long LONG;
        struct {
            unsigned long IS0:1;
            unsigned long IS1:1;
            unsigned long IS2:1;
            unsigned long IS3:1;
            unsigned long IS4:1;
            unsigned long IS5:1;
            unsigned long IS6:1;
            unsigned long IS7:1;
            unsigned long IS8:1;
            unsigned long IS9:1;
            unsigned long IS10:1;
            unsigned long IS11:1;
            unsigned long IS12:1;
            unsigned long IS13:1;
            unsigned long IS14:1;
            unsigned long IS15:1;
            unsigned long IS16:1;
            unsigned long IS17:1;
            unsigned long IS18:1;
            unsigned long IS19:1;
            unsigned long IS20:1;
            unsigned long IS21:1;
            unsigned long IS22:1;
            unsigned long IS23:1;
            unsigned long IS24:1;
            unsigned long IS25:1;
            unsigned long IS26:1;
            unsigned long IS27:1;
            unsigned long IS28:1;
            unsigned long IS29:1;
            unsigned long IS30:1;
            unsigned long IS31:1;
        } BIT;
    } GRPBL0;
    union {
        unsigned long LONG;
        struct {
            unsigned long IS0:1;
            unsigned long IS1:1;
            unsigned long IS2:1;
            unsigned long IS3:1;
            unsigned long IS4:1;
            unsigned long IS5:1;
            unsigned long IS6:1;
            unsigned long IS7:1;
            unsigned long IS8:1;
            unsigned long IS9:1;
            unsigned long IS10:1;
            unsigned long IS11:1;
            unsigned long IS12:1;
            unsigned long IS13:1;
            unsigned long IS14:1;
            unsigned long IS15:1;
            unsigned long IS16:1;
            unsigned long IS17:1;
            unsigned long IS18:1;
            unsigned long IS19:1;
            unsigned long IS20:1;
            unsigned long IS21:1;
            unsigned long IS22:1;
            unsigned long IS23:1;
            unsigned long IS24:1;
            unsigned long IS25:1;
            unsigned long IS26:1;
            unsigned long IS27:1;
            unsigned long IS28:1;
            unsigned long IS29:1;
            unsigned long IS30:1;
            unsigned long IS31:1;
        } BIT;
    } GRPBL1;
    char           wk18[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long EN0:1;
            unsigned long EN1:1;
            unsigned long EN2:1;
            unsigned long EN3:1;
            unsigned long EN4:1;
            unsigned long EN5:1;
            unsigned long EN6:1;
            unsigned long EN7:1;
            unsigned long EN8:1;
            unsigned long EN9:1;
            unsigned long EN10:1;
            unsigned long EN11:1;
            unsigned long EN12:1;
            unsigned long EN13:1;
            unsigned long EN14:1;
            unsigned long EN15:1;
            unsigned long EN16:1;
            unsigned long EN17:1;
            unsigned long EN18:1;
            unsigned long EN19:1;
            unsigned long EN20:1;
            unsigned long EN21:1;
            unsigned long EN22:1;
            unsigned long EN23:1;
            unsigned long EN24:1;
            unsigned long EN25:1;
            unsigned long EN26:1;
            unsigned long EN27:1;
            unsigned long EN28:1;
            unsigned long EN29:1;
            unsigned long EN30:1;
            unsigned long EN31:1;
        } BIT;
    } GENBE0;
    union {
        unsigned long LONG;
        struct {
            unsigned long EN0:1;
            unsigned long EN1:1;
            unsigned long EN2:1;
            unsigned long EN3:1;
            unsigned long EN4:1;
            unsigned long EN5:1;
            unsigned long EN6:1;
            unsigned long EN7:1;
            unsigned long EN8:1;
            unsigned long EN9:1;
            unsigned long EN10:1;
            unsigned long EN11:1;
            unsigned long EN12:1;
            unsigned long EN13:1;
            unsigned long EN14:1;
            unsigned long EN15:1;
            unsigned long EN16:1;
            unsigned long EN17:1;
            unsigned long EN18:1;
            unsigned long EN19:1;
            unsigned long EN20:1;
            unsigned long EN21:1;
            unsigned long EN22:1;
            unsigned long EN23:1;
            unsigned long EN24:1;
            unsigned long EN25:1;
            unsigned long EN26:1;
            unsigned long EN27:1;
            unsigned long EN28:1;
            unsigned long EN29:1;
            unsigned long EN30:1;
            unsigned long EN31:1;
        } BIT;
    } GENBE1;
    char           wk19[40];
    union {
        unsigned long LONG;
        struct {
            unsigned long EN0:1;
            unsigned long EN1:1;
            unsigned long EN2:1;
            unsigned long EN3:1;
            unsigned long EN4:1;
            unsigned long EN5:1;
            unsigned long EN6:1;
            unsigned long EN7:1;
            unsigned long EN8:1;
            unsigned long EN9:1;
            unsigned long EN10:1;
            unsigned long EN11:1;
            unsigned long EN12:1;
            unsigned long EN13:1;
            unsigned long EN14:1;
            unsigned long EN15:1;
            unsigned long EN16:1;
            unsigned long EN17:1;
            unsigned long EN18:1;
            unsigned long EN19:1;
            unsigned long EN20:1;
            unsigned long EN21:1;
            unsigned long EN22:1;
            unsigned long EN23:1;
            unsigned long EN24:1;
            unsigned long EN25:1;
            unsigned long EN26:1;
            unsigned long EN27:1;
            unsigned long EN28:1;
            unsigned long EN29:1;
            unsigned long EN30:1;
            unsigned long EN31:1;
        } BIT;
    } GENBL0;
    union {
        unsigned long LONG;
        struct {
            unsigned long EN0:1;
            unsigned long EN1:1;
            unsigned long EN2:1;
            unsigned long EN3:1;
            unsigned long EN4:1;
            unsigned long EN5:1;
            unsigned long EN6:1;
            unsigned long EN7:1;
            unsigned long EN8:1;
            unsigned long EN9:1;
            unsigned long EN10:1;
            unsigned long EN11:1;
            unsigned long EN12:1;
            unsigned long EN13:1;
            unsigned long EN14:1;
            unsigned long EN15:1;
            unsigned long EN16:1;
            unsigned long EN17:1;
            unsigned long EN18:1;
            unsigned long EN19:1;
            unsigned long EN20:1;
            unsigned long EN21:1;
            unsigned long EN22:1;
            unsigned long EN23:1;
            unsigned long EN24:1;
            unsigned long EN25:1;
            unsigned long EN26:1;
            unsigned long EN27:1;
            unsigned long EN28:1;
            unsigned long EN29:1;
            unsigned long EN30:1;
            unsigned long EN31:1;
        } BIT;
    } GENBL1;
    char           wk20[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long CLR0:1;
            unsigned long CLR1:1;
            unsigned long CLR2:1;
            unsigned long CLR3:1;
            unsigned long CLR4:1;
            unsigned long CLR5:1;
            unsigned long CLR6:1;
            unsigned long CLR7:1;
            unsigned long CLR8:1;
            unsigned long CLR9:1;
            unsigned long CLR10:1;
            unsigned long CLR11:1;
            unsigned long CLR12:1;
            unsigned long CLR13:1;
            unsigned long CLR14:1;
            unsigned long CLR15:1;
            unsigned long CLR16:1;
            unsigned long CLR17:1;
            unsigned long CLR18:1;
            unsigned long CLR19:1;
            unsigned long CLR20:1;
            unsigned long CLR21:1;
            unsigned long CLR22:1;
            unsigned long CLR23:1;
            unsigned long CLR24:1;
            unsigned long CLR25:1;
            unsigned long CLR26:1;
            unsigned long CLR27:1;
            unsigned long CLR28:1;
            unsigned long CLR29:1;
            unsigned long CLR30:1;
            unsigned long CLR31:1;
        } BIT;
    } GCREBE0;
    union {
        unsigned long LONG;
        struct {
            unsigned long CLR0:1;
            unsigned long CLR1:1;
            unsigned long CLR2:1;
            unsigned long CLR3:1;
            unsigned long CLR4:1;
            unsigned long CLR5:1;
            unsigned long CLR6:1;
            unsigned long CLR7:1;
            unsigned long CLR8:1;
            unsigned long CLR9:1;
            unsigned long CLR10:1;
            unsigned long CLR11:1;
            unsigned long CLR12:1;
            unsigned long CLR13:1;
            unsigned long CLR14:1;
            unsigned long CLR15:1;
            unsigned long CLR16:1;
            unsigned long CLR17:1;
            unsigned long CLR18:1;
            unsigned long CLR19:1;
            unsigned long CLR20:1;
            unsigned long CLR21:1;
            unsigned long CLR22:1;
            unsigned long CLR23:1;
            unsigned long CLR24:1;
            unsigned long CLR25:1;
            unsigned long CLR26:1;
            unsigned long CLR27:1;
            unsigned long CLR28:1;
            unsigned long CLR29:1;
            unsigned long CLR30:1;
            unsigned long CLR31:1;
        } BIT;
    } GCREBE1;
    char           wk21[120];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIBR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIBR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIBR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIBR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIBR4;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIBR5;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIBR6;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIBR7;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIBR8;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIBR9;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIBRA;
    char           wk22[117];
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR128;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR129;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR130;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR131;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR132;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR133;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR134;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR135;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR136;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR137;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR138;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR139;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR140;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR141;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR142;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR143;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR144;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR145;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR146;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR147;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR148;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR149;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR150;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR151;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR152;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR153;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR154;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR155;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR156;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR157;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR158;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR159;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR160;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR161;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR162;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR163;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR164;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR165;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR166;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR167;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR168;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR169;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR170;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR171;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR172;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR173;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR174;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR175;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR176;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR177;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR178;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR179;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR180;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR181;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR182;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR183;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR184;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR185;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR186;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR187;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR188;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR189;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR190;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR191;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR192;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR193;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR194;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR195;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR196;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR197;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR198;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR199;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR200;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR201;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR202;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR203;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR204;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR205;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR206;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR207;
    char           wk23[48];
    union {
        unsigned long LONG;
        struct {
            unsigned long IS0:1;
            unsigned long IS1:1;
            unsigned long IS2:1;
            unsigned long IS3:1;
            unsigned long IS4:1;
            unsigned long IS5:1;
            unsigned long IS6:1;
            unsigned long IS7:1;
            unsigned long IS8:1;
            unsigned long IS9:1;
            unsigned long IS10:1;
            unsigned long IS11:1;
            unsigned long IS12:1;
            unsigned long IS13:1;
            unsigned long IS14:1;
            unsigned long IS15:1;
            unsigned long IS16:1;
            unsigned long IS17:1;
            unsigned long IS18:1;
            unsigned long IS19:1;
            unsigned long IS20:1;
            unsigned long IS21:1;
            unsigned long IS22:1;
            unsigned long IS23:1;
            unsigned long IS24:1;
            unsigned long IS25:1;
            unsigned long IS26:1;
            unsigned long IS27:1;
            unsigned long IS28:1;
            unsigned long IS29:1;
            unsigned long IS30:1;
            unsigned long IS31:1;
        } BIT;
    } GRPAE0;
    union {
        unsigned long LONG;
        struct {
            unsigned long IS0:1;
            unsigned long IS1:1;
            unsigned long IS2:1;
            unsigned long IS3:1;
            unsigned long IS4:1;
            unsigned long IS5:1;
            unsigned long IS6:1;
            unsigned long IS7:1;
            unsigned long IS8:1;
            unsigned long IS9:1;
            unsigned long IS10:1;
            unsigned long IS11:1;
            unsigned long IS12:1;
            unsigned long IS13:1;
            unsigned long IS14:1;
            unsigned long IS15:1;
            unsigned long IS16:1;
            unsigned long IS17:1;
            unsigned long IS18:1;
            unsigned long IS19:1;
            unsigned long IS20:1;
            unsigned long IS21:1;
            unsigned long IS22:1;
            unsigned long IS23:1;
            unsigned long IS24:1;
            unsigned long IS25:1;
            unsigned long IS26:1;
            unsigned long IS27:1;
            unsigned long IS28:1;
            unsigned long IS29:1;
            unsigned long IS30:1;
            unsigned long IS31:1;
        } BIT;
    } GRPAE1;
    char           wk24[40];
    union {
        unsigned long LONG;
        struct {
            unsigned long IS0:1;
            unsigned long IS1:1;
            unsigned long IS2:1;
            unsigned long IS3:1;
            unsigned long IS4:1;
            unsigned long IS5:1;
            unsigned long IS6:1;
            unsigned long IS7:1;
            unsigned long IS8:1;
            unsigned long IS9:1;
            unsigned long IS10:1;
            unsigned long IS11:1;
            unsigned long IS12:1;
            unsigned long IS13:1;
            unsigned long IS14:1;
            unsigned long IS15:1;
            unsigned long IS16:1;
            unsigned long IS17:1;
            unsigned long IS18:1;
            unsigned long IS19:1;
            unsigned long IS20:1;
            unsigned long IS21:1;
            unsigned long IS22:1;
            unsigned long IS23:1;
            unsigned long IS24:1;
            unsigned long IS25:1;
            unsigned long IS26:1;
            unsigned long IS27:1;
            unsigned long IS28:1;
            unsigned long IS29:1;
            unsigned long IS30:1;
            unsigned long IS31:1;
        } BIT;
    } GRPAL0;
    union {
        unsigned long LONG;
        struct {
            unsigned long IS0:1;
            unsigned long IS1:1;
            unsigned long IS2:1;
            unsigned long IS3:1;
            unsigned long IS4:1;
            unsigned long IS5:1;
            unsigned long IS6:1;
            unsigned long IS7:1;
            unsigned long IS8:1;
            unsigned long IS9:1;
            unsigned long IS10:1;
            unsigned long IS11:1;
            unsigned long IS12:1;
            unsigned long IS13:1;
            unsigned long IS14:1;
            unsigned long IS15:1;
            unsigned long IS16:1;
            unsigned long IS17:1;
            unsigned long IS18:1;
            unsigned long IS19:1;
            unsigned long IS20:1;
            unsigned long IS21:1;
            unsigned long IS22:1;
            unsigned long IS23:1;
            unsigned long IS24:1;
            unsigned long IS25:1;
            unsigned long IS26:1;
            unsigned long IS27:1;
            unsigned long IS28:1;
            unsigned long IS29:1;
            unsigned long IS30:1;
            unsigned long IS31:1;
        } BIT;
    } GRPAL1;
    char           wk25[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long EN0:1;
            unsigned long EN1:1;
            unsigned long EN2:1;
            unsigned long EN3:1;
            unsigned long EN4:1;
            unsigned long EN5:1;
            unsigned long EN6:1;
            unsigned long EN7:1;
            unsigned long EN8:1;
            unsigned long EN9:1;
            unsigned long EN10:1;
            unsigned long EN11:1;
            unsigned long EN12:1;
            unsigned long EN13:1;
            unsigned long EN14:1;
            unsigned long EN15:1;
            unsigned long EN16:1;
            unsigned long EN17:1;
            unsigned long EN18:1;
            unsigned long EN19:1;
            unsigned long EN20:1;
            unsigned long EN21:1;
            unsigned long EN22:1;
            unsigned long EN23:1;
            unsigned long EN24:1;
            unsigned long EN25:1;
            unsigned long EN26:1;
            unsigned long EN27:1;
            unsigned long EN28:1;
            unsigned long EN29:1;
            unsigned long EN30:1;
            unsigned long EN31:1;
        } BIT;
    } GENAE0;
    union {
        unsigned long LONG;
        struct {
            unsigned long EN0:1;
            unsigned long EN1:1;
            unsigned long EN2:1;
            unsigned long EN3:1;
            unsigned long EN4:1;
            unsigned long EN5:1;
            unsigned long EN6:1;
            unsigned long EN7:1;
            unsigned long EN8:1;
            unsigned long EN9:1;
            unsigned long EN10:1;
            unsigned long EN11:1;
            unsigned long EN12:1;
            unsigned long EN13:1;
            unsigned long EN14:1;
            unsigned long EN15:1;
            unsigned long EN16:1;
            unsigned long EN17:1;
            unsigned long EN18:1;
            unsigned long EN19:1;
            unsigned long EN20:1;
            unsigned long EN21:1;
            unsigned long EN22:1;
            unsigned long EN23:1;
            unsigned long EN24:1;
            unsigned long EN25:1;
            unsigned long EN26:1;
            unsigned long EN27:1;
            unsigned long EN28:1;
            unsigned long EN29:1;
            unsigned long EN30:1;
            unsigned long EN31:1;
        } BIT;
    } GENAE1;
    char           wk26[40];
    union {
        unsigned long LONG;
        struct {
            unsigned long EN0:1;
            unsigned long EN1:1;
            unsigned long EN2:1;
            unsigned long EN3:1;
            unsigned long EN4:1;
            unsigned long EN5:1;
            unsigned long EN6:1;
            unsigned long EN7:1;
            unsigned long EN8:1;
            unsigned long EN9:1;
            unsigned long EN10:1;
            unsigned long EN11:1;
            unsigned long EN12:1;
            unsigned long EN13:1;
            unsigned long EN14:1;
            unsigned long EN15:1;
            unsigned long EN16:1;
            unsigned long EN17:1;
            unsigned long EN18:1;
            unsigned long EN19:1;
            unsigned long EN20:1;
            unsigned long EN21:1;
            unsigned long EN22:1;
            unsigned long EN23:1;
            unsigned long EN24:1;
            unsigned long EN25:1;
            unsigned long EN26:1;
            unsigned long EN27:1;
            unsigned long EN28:1;
            unsigned long EN29:1;
            unsigned long EN30:1;
            unsigned long EN31:1;
        } BIT;
    } GENAL0;
    union {
        unsigned long LONG;
        struct {
            unsigned long EN0:1;
            unsigned long EN1:1;
            unsigned long EN2:1;
            unsigned long EN3:1;
            unsigned long EN4:1;
            unsigned long EN5:1;
            unsigned long EN6:1;
            unsigned long EN7:1;
            unsigned long EN8:1;
            unsigned long EN9:1;
            unsigned long EN10:1;
            unsigned long EN11:1;
            unsigned long EN12:1;
            unsigned long EN13:1;
            unsigned long EN14:1;
            unsigned long EN15:1;
            unsigned long EN16:1;
            unsigned long EN17:1;
            unsigned long EN18:1;
            unsigned long EN19:1;
            unsigned long EN20:1;
            unsigned long EN21:1;
            unsigned long EN22:1;
            unsigned long EN23:1;
            unsigned long EN24:1;
            unsigned long EN25:1;
            unsigned long EN26:1;
            unsigned long EN27:1;
            unsigned long EN28:1;
            unsigned long EN29:1;
            unsigned long EN30:1;
            unsigned long EN31:1;
        } BIT;
    } GENAL1;
    char           wk27[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long CLR0:1;
            unsigned long CLR1:1;
            unsigned long CLR2:1;
            unsigned long CLR3:1;
            unsigned long CLR4:1;
            unsigned long CLR5:1;
            unsigned long CLR6:1;
            unsigned long CLR7:1;
            unsigned long CLR8:1;
            unsigned long CLR9:1;
            unsigned long CLR10:1;
            unsigned long CLR11:1;
            unsigned long CLR12:1;
            unsigned long CLR13:1;
            unsigned long CLR14:1;
            unsigned long CLR15:1;
            unsigned long CLR16:1;
            unsigned long CLR17:1;
            unsigned long CLR18:1;
            unsigned long CLR19:1;
            unsigned long CLR20:1;
            unsigned long CLR21:1;
            unsigned long CLR22:1;
            unsigned long CLR23:1;
            unsigned long CLR24:1;
            unsigned long CLR25:1;
            unsigned long CLR26:1;
            unsigned long CLR27:1;
            unsigned long CLR28:1;
            unsigned long CLR29:1;
            unsigned long CLR30:1;
            unsigned long CLR31:1;
        } BIT;
    } GCREAE0;
    union {
        unsigned long LONG;
        struct {
            unsigned long CLR0:1;
            unsigned long CLR1:1;
            unsigned long CLR2:1;
            unsigned long CLR3:1;
            unsigned long CLR4:1;
            unsigned long CLR5:1;
            unsigned long CLR6:1;
            unsigned long CLR7:1;
            unsigned long CLR8:1;
            unsigned long CLR9:1;
            unsigned long CLR10:1;
            unsigned long CLR11:1;
            unsigned long CLR12:1;
            unsigned long CLR13:1;
            unsigned long CLR14:1;
            unsigned long CLR15:1;
            unsigned long CLR16:1;
            unsigned long CLR17:1;
            unsigned long CLR18:1;
            unsigned long CLR19:1;
            unsigned long CLR20:1;
            unsigned long CLR21:1;
            unsigned long CLR22:1;
            unsigned long CLR23:1;
            unsigned long CLR24:1;
            unsigned long CLR25:1;
            unsigned long CLR26:1;
            unsigned long CLR27:1;
            unsigned long CLR28:1;
            unsigned long CLR29:1;
            unsigned long CLR30:1;
            unsigned long CLR31:1;
        } BIT;
    } GCREAE1;
    char           wk28[120];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIAR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIAR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIAR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIAR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIAR4;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIAR5;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIAR6;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIAR7;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIAR8;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIAR9;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIARA;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR0:1;
            unsigned char PIR1:1;
            unsigned char PIR2:1;
            unsigned char PIR3:1;
            unsigned char PIR4:1;
            unsigned char PIR5:1;
            unsigned char PIR6:1;
            unsigned char PIR7:1;
        } BIT;
    } PIARB;
    char           wk29[196];
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR208;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR209;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR210;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR211;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR212;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR213;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR214;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR215;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR216;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR217;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR218;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR219;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR220;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR221;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR222;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR223;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR224;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR225;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR226;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR227;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR228;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR229;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR230;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR231;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR232;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR233;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR234;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR235;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR236;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR237;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR238;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR239;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR240;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR241;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR242;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR243;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR244;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR245;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR246;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR247;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR248;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR249;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR250;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR251;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR252;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR253;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR254;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR255;
    union {
        unsigned char BYTE;
        struct {
            unsigned char WPRC:1;
            unsigned char :7;
        } BIT;
    } SLIPRCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SELEXD0:1;
            unsigned char SELEXD1:1;
            unsigned char :6;
        } BIT;
    } SELEXDR;
};

struct st_iwdt {
    unsigned char  IWDTRR;
    char           wk0[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short TOPS:2;
            unsigned short :2;
            unsigned short CKS:4;
            unsigned short RPES:2;
            unsigned short :2;
            unsigned short RPSS:2;
            unsigned short :2;
        } BIT;
    } IWDTCR;
    union {
        unsigned short WORD;
        struct {
            unsigned short CNTVAL:14;
            unsigned short UNDFF:1;
            unsigned short REFEF:1;
        } BIT;
    } IWDTSR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char RSTIRQS:1;
        } BIT;
    } IWDTRCR;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char SLCSTP:1;
        } BIT;
    } IWDTCSTPR;
};

struct st_mmc {
    union {
        unsigned long LONG;
        struct {
            unsigned long DATW:2;
            unsigned long :1;
            unsigned long SBIT:1;
            unsigned long :2;
            unsigned long OPDM:1;
            unsigned long TBIT:1;
            unsigned long CRCSTE:1;
            unsigned long BOOTACK:1;
            unsigned long CRC16C:1;
            unsigned long :1;
            unsigned long RCRC7C:2;
            unsigned long RIDXC:2;
            unsigned long CMD12EN:1;
            unsigned long CMLTE:1;
            unsigned long DWEN:1;
            unsigned long WDAT:1;
            unsigned long :1;
            unsigned long RBSY:1;
            unsigned long RTYP:2;
            unsigned long CMD:6;
            unsigned long BOOT:1;
            unsigned long :1;
        } BIT;
    } CECMDSET;
    char           wk0[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long ARG:32;
        } BIT;
    } CEARG;
    union {
        unsigned long LONG;
        struct {
            unsigned long C12ARG:32;
        } BIT;
    } CEARGCMD12;
    union {
        unsigned long LONG;
        struct {
            unsigned long BREAK:1;
            unsigned long :31;
        } BIT;
    } CECMDCTRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long BLKSZ:16;
            unsigned long BLKCNT:16;
        } BIT;
    } CEBLOCKSET;
    union {
        unsigned long LONG;
        struct {
            unsigned long :4;
            unsigned long SRWDTO:4;
            unsigned long SRBSYTO:4;
            unsigned long SRSTPO:2;
            unsigned long :2;
            unsigned long CLKDIV:4;
            unsigned long :4;
            unsigned long CLKEN:1;
            unsigned long :6;
            unsigned long MMCBUSBSY:1;
        } BIT;
    } CECLKCTRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long ATYP:1;
            unsigned long :7;
            unsigned long DMAREN:1;
            unsigned long DMAWEN:1;
            unsigned long DMATYP:1;
            unsigned long :5;
        } BIT;
    } CEBUFACC;
    unsigned long  CERESP3;
    unsigned long  CERESP2;
    unsigned long  CERESP1;
    unsigned long  CERESP0;
    union {
        unsigned long LONG;
        struct {
            unsigned long RSP12:32;
        } BIT;
    } CERESPCMD12;
    union {
        unsigned long LONG;
        struct {
            unsigned long DATA:32;
        } BIT;
    } CEDATA;
    char           wk1[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long SBTDATTO:4;
            unsigned long S1STBTDATTO:4;
            unsigned long SBTACKTO:4;
            unsigned long SBTCLKDIV:4;
        } BIT;
    } CEBOOT;
    union {
        unsigned long LONG;
        struct {
            unsigned long RSPTO:1;
            unsigned long RBSYTO:1;
            unsigned long RDATTO:1;
            unsigned long WDATTO:1;
            unsigned long CRCSTO:1;
            unsigned long :3;
            unsigned long RSPERR:1;
            unsigned long RIDXERR:1;
            unsigned long RDATERR:1;
            unsigned long WDATERR:1;
            unsigned long :2;
            unsigned long BUFVIO:1;
            unsigned long CMDVIO:1;
            unsigned long CRSPE:1;
            unsigned long RBSYE:1;
            unsigned long :2;
            unsigned long BUFREN:1;
            unsigned long BUFWEN:1;
            unsigned long BUFRE:1;
            unsigned long DTRANE:1;
            unsigned long CMD12CRE:1;
            unsigned long CMD12RBE:1;
            unsigned long CMD12DRE:1;
            unsigned long :5;
        } BIT;
    } CEINT;
    union {
        unsigned long LONG;
        struct {
            unsigned long MRSPTO:1;
            unsigned long MRBSYTO:1;
            unsigned long MRDATTO:1;
            unsigned long MWDATTO:1;
            unsigned long MCRCSTO:1;
            unsigned long :3;
            unsigned long MRSPERR:1;
            unsigned long MRIDXERR:1;
            unsigned long MRDATERR:1;
            unsigned long MWDATERR:1;
            unsigned long :2;
            unsigned long MBUFVIO:1;
            unsigned long MCMDVIO:1;
            unsigned long MCRSPE:1;
            unsigned long MRBSYE:1;
            unsigned long :2;
            unsigned long MBUFREN:1;
            unsigned long MBUFWEN:1;
            unsigned long MBUFRE:1;
            unsigned long MDTRANE:1;
            unsigned long MCMD12CRE:1;
            unsigned long MCMD12RBE:1;
            unsigned long MCMD12DRE:1;
            unsigned long :5;
        } BIT;
    } CEINTEN;
    union {
        unsigned long LONG;
        struct {
            unsigned long RCVBLK:16;
            unsigned long DATSIG:8;
            unsigned long RSPIDX:6;
            unsigned long CMDSIG:1;
            unsigned long CMDSEQ:1;
        } BIT;
    } CEHOSTSTS1;
    union {
        unsigned long LONG;
        struct {
            unsigned long :5;
            unsigned long BTDATTO:1;
            unsigned long STBTDATTO:1;
            unsigned long BTACKTO:1;
            unsigned long STRSPTO:1;
            unsigned long AC12RSPTO:1;
            unsigned long RSPBSYTO:1;
            unsigned long AC12BSYTO:1;
            unsigned long CRCSTTO:1;
            unsigned long DATBSYTO:1;
            unsigned long STRDATTO:1;
            unsigned long :1;
            unsigned long CRCST:3;
            unsigned long :1;
            unsigned long BTACKEBE:1;
            unsigned long BTACKPATE:1;
            unsigned long RSPIDXE:1;
            unsigned long AC12IDXE:1;
            unsigned long RSPEBE:1;
            unsigned long AC12REBE:1;
            unsigned long RDATEBE:1;
            unsigned long CRCSTEBE:1;
            unsigned long RSPCRC7E:1;
            unsigned long AC12CRCE:1;
            unsigned long CRC16E:1;
            unsigned long CRCSTE:1;
        } BIT;
    } CEHOSTSTS2;
    char           wk2[32];
    union {
        unsigned long LONG;
        struct {
            unsigned long :4;
            unsigned long MCDFALL:1;
            unsigned long MCDRISE:1;
            unsigned long :6;
            unsigned long CDFALL:1;
            unsigned long CDRISE:1;
            unsigned long CDSIG:1;
            unsigned long :17;
        } BIT;
    } CEDETECT;
    union {
        unsigned long LONG;
        struct {
            unsigned long :19;
            unsigned long CLKMAIN:1;
            unsigned long :1;
            unsigned long RESNOUT:1;
            unsigned long :10;
        } BIT;
    } CEADDMODE;
    char           wk3[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long VERSION:16;
            unsigned long :15;
            unsigned long SWRST:1;
        } BIT;
    } CEVERSION;
};

struct st_mpc {
    union {
        unsigned char BYTE;
        struct {
            unsigned char CS0E:1;
            unsigned char CS1E:1;
            unsigned char CS2E:1;
            unsigned char CS3E:1;
            unsigned char CS4E:1;
            unsigned char CS5E:1;
            unsigned char CS6E:1;
            unsigned char CS7E:1;
        } BIT;
    } PFCSE;
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CS0S:1;
            unsigned char :1;
            unsigned char CS1S:2;
            unsigned char CS2S:2;
            unsigned char CS3S:2;
        } BIT;
    } PFCSS0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char CS4S:2;
            unsigned char CS5S:2;
            unsigned char CS6S:2;
            unsigned char CS7S:2;
        } BIT;
    } PFCSS1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char A8E:1;
            unsigned char A9E:1;
            unsigned char A10E:1;
            unsigned char A11E:1;
            unsigned char A12E:1;
            unsigned char A13E:1;
            unsigned char A14E:1;
            unsigned char A15E:1;
        } BIT;
    } PFAOE0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char A16E:1;
            unsigned char A17E:1;
            unsigned char A18E:1;
            unsigned char A19E:1;
            unsigned char A20E:1;
            unsigned char A21E:1;
            unsigned char A22E:1;
            unsigned char A23E:1;
        } BIT;
    } PFAOE1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ADRLE:1;
            unsigned char ADRHMS:1;
            unsigned char :1;
            unsigned char BCLKO:1;
            unsigned char DHE:1;
            unsigned char DH32E:1;
            unsigned char WR1BC1E:1;
            unsigned char WR32BC32E:1;
        } BIT;
    } PFBCR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char WAITS:2;
            unsigned char ALEOE:1;
            unsigned char ALES:1;
            unsigned char MDSDE:1;
            unsigned char :1;
            unsigned char DQM1E:1;
            unsigned char SDCLKE:1;
        } BIT;
    } PFBCR1;
    char           wk1[6];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char PHYMODE0:1;
            unsigned char PHYMODE1:1;
            unsigned char :2;
        } BIT;
    } PFENET;
    char           wk2[16];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char PFSWE:1;
            unsigned char B0WI:1;
        } BIT;
    } PWPR;
    char           wk3[32];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } P00PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } P01PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } P02PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } P03PFS;
    char           wk4[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } P05PFS;
    char           wk5[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } P07PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P10PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P11PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P12PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P13PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P14PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P15PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P16PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P17PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P20PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P21PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P22PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P23PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P24PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P25PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P26PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P27PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P30PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P31PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P32PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P33PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P34PFS;
    char           wk6[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } P40PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } P41PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } P42PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } P43PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } P44PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } P45PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } P46PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } P47PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P50PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P51PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P52PFS;
    char           wk7[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P54PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P55PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P56PFS;
    char           wk8[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P60PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P61PFS;
    char           wk9[4];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P66PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } P67PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } P70PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } P71PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } P72PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } P73PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } P74PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } P75PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } P76PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } P77PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } P80PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } P81PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } P82PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } P83PFS;
    char           wk10[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } P86PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } P87PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :1;
            unsigned char ASEL:1;
        } BIT;
    } P90PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :1;
            unsigned char ASEL:1;
        } BIT;
    } P91PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :1;
            unsigned char ASEL:1;
        } BIT;
    } P92PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :1;
            unsigned char ASEL:1;
        } BIT;
    } P93PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :1;
            unsigned char ASEL:1;
        } BIT;
    } P94PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :1;
            unsigned char ASEL:1;
        } BIT;
    } P95PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :1;
            unsigned char ASEL:1;
        } BIT;
    } P96PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :1;
            unsigned char ASEL:1;
        } BIT;
    } P97PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PA0PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PA1PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PA2PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PA3PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PA4PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PA5PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PA6PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PA7PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PB0PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PB1PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PB2PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PB3PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PB4PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PB5PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PB6PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PB7PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PC0PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PC1PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PC2PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PC3PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PC4PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PC5PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PC6PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PC7PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } PD0PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } PD1PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } PD2PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } PD3PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } PD4PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } PD5PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } PD6PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } PD7PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } PE0PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } PE1PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } PE2PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } PE3PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } PE4PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } PE5PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } PE6PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char ASEL:1;
        } BIT;
    } PE7PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PF0PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PF1PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PF2PFS;
    char           wk11[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char ISEL:1;
            unsigned char :1;
        } BIT;
    } PF5PFS;
    char           wk12[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } PG0PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } PG1PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } PG2PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } PG3PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } PG4PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } PG5PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } PG6PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } PG7PFS;
    char           wk13[11];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } PJ3PFS;
    char           wk14[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PSEL:6;
            unsigned char :2;
        } BIT;
    } PJ5PFS;
};

struct st_mpu {
    union {
        unsigned long LONG;
        struct {
            unsigned long :4;
            unsigned long RSPN:28;
        } BIT;
    } RSPAGE0;
    union {
        unsigned long LONG;
        struct {
            unsigned long V:1;
            unsigned long UAC:3;
            unsigned long REPN:28;
        } BIT;
    } REPAGE0;
    union {
        unsigned long LONG;
        struct {
            unsigned long :4;
            unsigned long RSPN:28;
        } BIT;
    } RSPAGE1;
    union {
        unsigned long LONG;
        struct {
            unsigned long V:1;
            unsigned long UAC:3;
            unsigned long REPN:28;
        } BIT;
    } REPAGE1;
    union {
        unsigned long LONG;
        struct {
            unsigned long :4;
            unsigned long RSPN:28;
        } BIT;
    } RSPAGE2;
    union {
        unsigned long LONG;
        struct {
            unsigned long V:1;
            unsigned long UAC:3;
            unsigned long REPN:28;
        } BIT;
    } REPAGE2;
    union {
        unsigned long LONG;
        struct {
            unsigned long :4;
            unsigned long RSPN:28;
        } BIT;
    } RSPAGE3;
    union {
        unsigned long LONG;
        struct {
            unsigned long V:1;
            unsigned long UAC:3;
            unsigned long REPN:28;
        } BIT;
    } REPAGE3;
    union {
        unsigned long LONG;
        struct {
            unsigned long :4;
            unsigned long RSPN:28;
        } BIT;
    } RSPAGE4;
    union {
        unsigned long LONG;
        struct {
            unsigned long V:1;
            unsigned long UAC:3;
            unsigned long REPN:28;
        } BIT;
    } REPAGE4;
    union {
        unsigned long LONG;
        struct {
            unsigned long :4;
            unsigned long RSPN:28;
        } BIT;
    } RSPAGE5;
    union {
        unsigned long LONG;
        struct {
            unsigned long V:1;
            unsigned long UAC:3;
            unsigned long REPN:28;
        } BIT;
    } REPAGE5;
    union {
        unsigned long LONG;
        struct {
            unsigned long :4;
            unsigned long RSPN:28;
        } BIT;
    } RSPAGE6;
    union {
        unsigned long LONG;
        struct {
            unsigned long V:1;
            unsigned long UAC:3;
            unsigned long REPN:28;
        } BIT;
    } REPAGE6;
    union {
        unsigned long LONG;
        struct {
            unsigned long :4;
            unsigned long RSPN:28;
        } BIT;
    } RSPAGE7;
    union {
        unsigned long LONG;
        struct {
            unsigned long V:1;
            unsigned long UAC:3;
            unsigned long REPN:28;
        } BIT;
    } REPAGE7;
    char           wk0[192];
    union {
        unsigned long LONG;
        struct {
            unsigned long MPEN:1;
            unsigned long :31;
        } BIT;
    } MPEN;
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long UBAC:3;
            unsigned long :28;
        } BIT;
    } MPBAC;
    union {
        unsigned long LONG;
        struct {
            unsigned long CLR:1;
            unsigned long :31;
        } BIT;
    } MPECLR;
    union {
        unsigned long LONG;
        struct {
            unsigned long IA:1;
            unsigned long DA:1;
            unsigned long DRW:1;
            unsigned long :29;
        } BIT;
    } MPESTS;
    char           wk1[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long DEA:32;
        } BIT;
    } MPDEA;
    char           wk2[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long SA:32;
        } BIT;
    } MPSA;
    union {
        unsigned short WORD;
        struct {
            unsigned short S:1;
            unsigned short :15;
        } BIT;
    } MPOPS;
    union {
        unsigned short WORD;
        struct {
            unsigned short INV:1;
            unsigned short :15;
        } BIT;
    } MPOPI;
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long UHACI:3;
            unsigned long :12;
            unsigned long HITI:8;
            unsigned long :8;
        } BIT;
    } MHITI;
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long UHACD:3;
            unsigned long :12;
            unsigned long HITD:8;
            unsigned long :8;
        } BIT;
    } MHITD;
};

struct st_mtu {
    union {
        unsigned char BYTE;
        struct {
            unsigned char OE3B:1;
            unsigned char OE4A:1;
            unsigned char OE4B:1;
            unsigned char OE3D:1;
            unsigned char OE4C:1;
            unsigned char OE4D:1;
            unsigned char :2;
        } BIT;
    } TOERA;
    char           wk0[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char UF:1;
            unsigned char VF:1;
            unsigned char WF:1;
            unsigned char FB:1;
            unsigned char P:1;
            unsigned char N:1;
            unsigned char BDC:1;
            unsigned char :1;
        } BIT;
    } TGCRA;
    union {
        unsigned char BYTE;
        struct {
            unsigned char OLSP:1;
            unsigned char OLSN:1;
            unsigned char TOCS:1;
            unsigned char TOCL:1;
            unsigned char :2;
            unsigned char PSYE:1;
            unsigned char :1;
        } BIT;
    } TOCR1A;
    union {
        unsigned char BYTE;
        struct {
            unsigned char OLS1P:1;
            unsigned char OLS1N:1;
            unsigned char OLS2P:1;
            unsigned char OLS2N:1;
            unsigned char OLS3P:1;
            unsigned char OLS3N:1;
            unsigned char BF:2;
        } BIT;
    } TOCR2A;
    char           wk1[4];
    unsigned short TCDRA;
    unsigned short TDDRA;
    char           wk2[8];
    unsigned short TCNTSA;
    unsigned short TCBRA;
    char           wk3[12];
    union {
        unsigned char BYTE;
        struct {
            unsigned char T4VCOR:3;
            unsigned char T4VEN:1;
            unsigned char T3ACOR:3;
            unsigned char T3AEN:1;
        } BIT;
    } TITCR1A;
    union {
        unsigned char BYTE;
        struct {
            unsigned char T4VCNT:3;
            unsigned char :1;
            unsigned char T3ACNT:3;
            unsigned char :1;
        } BIT;
    } TITCNT1A;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BTE:2;
            unsigned char :6;
        } BIT;
    } TBTERA;
    char           wk4[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TDER:1;
            unsigned char :7;
        } BIT;
    } TDERA;
    char           wk5[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char OLS1P:1;
            unsigned char OLS1N:1;
            unsigned char OLS2P:1;
            unsigned char OLS2N:1;
            unsigned char OLS3P:1;
            unsigned char OLS3N:1;
            unsigned char :2;
        } BIT;
    } TOLBRA;
    char           wk6[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TITM:1;
            unsigned char :7;
        } BIT;
    } TITMRA;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TRG4COR:3;
            unsigned char :5;
        } BIT;
    } TITCR2A;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TRG4CNT:3;
            unsigned char :5;
        } BIT;
    } TITCNT2A;
    char           wk7[35];
    union {
        unsigned char BYTE;
        struct {
            unsigned char WRE:1;
            unsigned char SCC:1;
            unsigned char :5;
            unsigned char CCE:1;
        } BIT;
    } TWCRA;
    char           wk8[15];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DRS:1;
            unsigned char :7;
        } BIT;
    } TMDR2A;
    char           wk9[15];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CST0:1;
            unsigned char CST1:1;
            unsigned char CST2:1;
            unsigned char CST8:1;
            unsigned char :2;
            unsigned char CST3:1;
            unsigned char CST4:1;
        } BIT;
    } TSTRA;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SYNC0:1;
            unsigned char SYNC1:1;
            unsigned char SYNC2:1;
            unsigned char :3;
            unsigned char SYNC3:1;
            unsigned char SYNC4:1;
        } BIT;
    } TSYRA;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SCH7:1;
            unsigned char SCH6:1;
            unsigned char :1;
            unsigned char SCH4:1;
            unsigned char SCH3:1;
            unsigned char SCH2:1;
            unsigned char SCH1:1;
            unsigned char SCH0:1;
        } BIT;
    } TCSYSTR;
    char           wk10[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char RWE:1;
            unsigned char :7;
        } BIT;
    } TRWERA;
    char           wk11[1925];
    union {
        unsigned char BYTE;
        struct {
            unsigned char OE6B:1;
            unsigned char OE7A:1;
            unsigned char OE7B:1;
            unsigned char OE6D:1;
            unsigned char OE7C:1;
            unsigned char OE7D:1;
            unsigned char :2;
        } BIT;
    } TOERB;
    char           wk12[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char OLSP:1;
            unsigned char OLSN:1;
            unsigned char TOCS:1;
            unsigned char TOCL:1;
            unsigned char :2;
            unsigned char PSYE:1;
            unsigned char :1;
        } BIT;
    } TOCR1B;
    union {
        unsigned char BYTE;
        struct {
            unsigned char OLS1P:1;
            unsigned char OLS1N:1;
            unsigned char OLS2P:1;
            unsigned char OLS2N:1;
            unsigned char OLS3P:1;
            unsigned char OLS3N:1;
            unsigned char BF:2;
        } BIT;
    } TOCR2B;
    char           wk13[4];
    unsigned short TCDRB;
    unsigned short TDDRB;
    char           wk14[8];
    unsigned short TCNTSB;
    unsigned short TCBRB;
    char           wk15[12];
    union {
        unsigned char BYTE;
        struct {
            unsigned char T7VCOR:3;
            unsigned char T7VEN:1;
            unsigned char T6ACOR:3;
            unsigned char T6AEN:1;
        } BIT;
    } TITCR1B;
    union {
        unsigned char BYTE;
        struct {
            unsigned char T7VCNT:3;
            unsigned char :1;
            unsigned char T6ACNT:3;
            unsigned char :1;
        } BIT;
    } TITCNT1B;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BTE:2;
            unsigned char :6;
        } BIT;
    } TBTERB;
    char           wk16[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TDER:1;
            unsigned char :7;
        } BIT;
    } TDERB;
    char           wk17[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char OLS1P:1;
            unsigned char OLS1N:1;
            unsigned char OLS2P:1;
            unsigned char OLS2N:1;
            unsigned char OLS3P:1;
            unsigned char OLS3N:1;
            unsigned char :2;
        } BIT;
    } TOLBRB;
    char           wk18[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TITM:1;
            unsigned char :7;
        } BIT;
    } TITMRB;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TRG7COR:3;
            unsigned char :5;
        } BIT;
    } TITCR2B;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TRG7CNT:3;
            unsigned char :5;
        } BIT;
    } TITCNT2B;
    char           wk19[35];
    union {
        unsigned char BYTE;
        struct {
            unsigned char WRE:1;
            unsigned char SCC:1;
            unsigned char :5;
            unsigned char CCE:1;
        } BIT;
    } TWCRB;
    char           wk20[15];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DRS:1;
            unsigned char :7;
        } BIT;
    } TMDR2B;
    char           wk21[15];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char CST6:1;
            unsigned char CST7:1;
        } BIT;
    } TSTRB;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char SYNC6:1;
            unsigned char SYNC7:1;
        } BIT;
    } TSYRB;
    char           wk22[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char RWE:1;
            unsigned char :7;
        } BIT;
    } TRWERB;
};

struct st_mtu0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFAEN:1;
            unsigned char NFBEN:1;
            unsigned char NFCEN:1;
            unsigned char NFDEN:1;
            unsigned char NFCS:2;
            unsigned char :2;
        } BIT;
    } NFCR0;
    char           wk0[8];
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFAEN:1;
            unsigned char NFBEN:1;
            unsigned char NFCEN:1;
            unsigned char NFDEN:1;
            unsigned char NFCS:2;
            unsigned char :2;
        } BIT;
    } NFCRC;
    char           wk1[102];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:3;
            unsigned char CKEG:2;
            unsigned char CCLR:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MD:4;
            unsigned char BFA:1;
            unsigned char BFB:1;
            unsigned char BFE:1;
            unsigned char :1;
        } BIT;
    } TMDR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOA:4;
            unsigned char IOB:4;
        } BIT;
    } TIORH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOC:4;
            unsigned char IOD:4;
        } BIT;
    } TIORL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGIEA:1;
            unsigned char TGIEB:1;
            unsigned char TGIEC:1;
            unsigned char TGIED:1;
            unsigned char TCIEV:1;
            unsigned char :2;
            unsigned char TTGE:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGFA:1;
            unsigned char TGFB:1;
            unsigned char TGFC:1;
            unsigned char TGFD:1;
            unsigned char TCFV:1;
            unsigned char :3;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
    unsigned short TGRC;
    unsigned short TGRD;
    char           wk2[16];
    unsigned short TGRE;
    unsigned short TGRF;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGIEE:1;
            unsigned char TGIEF:1;
            unsigned char :5;
            unsigned char TTGE2:1;
        } BIT;
    } TIER2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGFE:1;
            unsigned char TGFF:1;
            unsigned char :6;
        } BIT;
    } TSR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTSA:1;
            unsigned char TTSB:1;
            unsigned char TTSE:1;
            unsigned char :5;
        } BIT;
    } TBTM;
    char           wk3[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC2:3;
            unsigned char :5;
        } BIT;
    } TCR2;
};

struct st_mtu1 {
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFAEN:1;
            unsigned char NFBEN:1;
            unsigned char NFCEN:1;
            unsigned char NFDEN:1;
            unsigned char NFCS:2;
            unsigned char :2;
        } BIT;
    } NFCR1;
    char           wk1[238];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:3;
            unsigned char CKEG:2;
            unsigned char CCLR:2;
            unsigned char :1;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MD:4;
            unsigned char :4;
        } BIT;
    } TMDR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOA:4;
            unsigned char IOB:4;
        } BIT;
    } TIOR;
    char           wk2[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGIEA:1;
            unsigned char TGIEB:1;
            unsigned char :2;
            unsigned char TCIEV:1;
            unsigned char TCIEU:1;
            unsigned char :1;
            unsigned char TTGE:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGFA:1;
            unsigned char TGFB:1;
            unsigned char :2;
            unsigned char TCFV:1;
            unsigned char TCFU:1;
            unsigned char :1;
            unsigned char TCFD:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
    char           wk3[4];
    union {
        unsigned char BYTE;
        struct {
            unsigned char I1AE:1;
            unsigned char I1BE:1;
            unsigned char I2AE:1;
            unsigned char I2BE:1;
            unsigned char :4;
        } BIT;
    } TICCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char LWA:1;
            unsigned char PHCKSEL:1;
            unsigned char :6;
        } BIT;
    } TMDR3;
    char           wk4[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC2:3;
            unsigned char PCB:2;
            unsigned char :3;
        } BIT;
    } TCR2;
    char           wk5[11];
    unsigned long  TCNTLW;
    unsigned long  TGRALW;
    unsigned long  TGRBLW;
};

struct st_mtu2 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFAEN:1;
            unsigned char NFBEN:1;
            unsigned char NFCEN:1;
            unsigned char NFDEN:1;
            unsigned char NFCS:2;
            unsigned char :2;
        } BIT;
    } NFCR2;
    char           wk0[365];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:3;
            unsigned char CKEG:2;
            unsigned char CCLR:2;
            unsigned char :1;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MD:4;
            unsigned char :4;
        } BIT;
    } TMDR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOA:4;
            unsigned char IOB:4;
        } BIT;
    } TIOR;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGIEA:1;
            unsigned char TGIEB:1;
            unsigned char :2;
            unsigned char TCIEV:1;
            unsigned char TCIEU:1;
            unsigned char :1;
            unsigned char TTGE:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGFA:1;
            unsigned char TGFB:1;
            unsigned char :2;
            unsigned char TCFV:1;
            unsigned char TCFU:1;
            unsigned char :1;
            unsigned char TCFD:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC2:3;
            unsigned char PCB:2;
            unsigned char :3;
        } BIT;
    } TCR2;
};

struct st_mtu3 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:3;
            unsigned char CKEG:2;
            unsigned char CCLR:3;
        } BIT;
    } TCR;
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MD:4;
            unsigned char BFA:1;
            unsigned char BFB:1;
            unsigned char :2;
        } BIT;
    } TMDR1;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOA:4;
            unsigned char IOB:4;
        } BIT;
    } TIORH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOC:4;
            unsigned char IOD:4;
        } BIT;
    } TIORL;
    char           wk2[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGIEA:1;
            unsigned char TGIEB:1;
            unsigned char TGIEC:1;
            unsigned char TGIED:1;
            unsigned char TCIEV:1;
            unsigned char :2;
            unsigned char TTGE:1;
        } BIT;
    } TIER;
    char           wk3[7];
    unsigned short TCNT;
    char           wk4[6];
    unsigned short TGRA;
    unsigned short TGRB;
    char           wk5[8];
    unsigned short TGRC;
    unsigned short TGRD;
    char           wk6[4];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGFA:1;
            unsigned char TGFB:1;
            unsigned char TGFC:1;
            unsigned char TGFD:1;
            unsigned char TCFV:1;
            unsigned char :2;
            unsigned char TCFD:1;
        } BIT;
    } TSR;
    char           wk7[11];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTSA:1;
            unsigned char TTSB:1;
            unsigned char :6;
        } BIT;
    } TBTM;
    char           wk8[19];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC2:3;
            unsigned char :5;
        } BIT;
    } TCR2;
    char           wk9[37];
    unsigned short TGRE;
    char           wk10[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFAEN:1;
            unsigned char NFBEN:1;
            unsigned char NFCEN:1;
            unsigned char NFDEN:1;
            unsigned char NFCS:2;
            unsigned char :2;
        } BIT;
    } NFCR3;
};

struct st_mtu4 {
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:3;
            unsigned char CKEG:2;
            unsigned char CCLR:3;
        } BIT;
    } TCR;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MD:4;
            unsigned char BFA:1;
            unsigned char BFB:1;
            unsigned char :2;
        } BIT;
    } TMDR1;
    char           wk2[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOA:4;
            unsigned char IOB:4;
        } BIT;
    } TIORH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOC:4;
            unsigned char IOD:4;
        } BIT;
    } TIORL;
    char           wk3[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGIEA:1;
            unsigned char TGIEB:1;
            unsigned char TGIEC:1;
            unsigned char TGIED:1;
            unsigned char TCIEV:1;
            unsigned char :1;
            unsigned char TTGE2:1;
            unsigned char TTGE:1;
        } BIT;
    } TIER;
    char           wk4[8];
    unsigned short TCNT;
    char           wk5[8];
    unsigned short TGRA;
    unsigned short TGRB;
    char           wk6[8];
    unsigned short TGRC;
    unsigned short TGRD;
    char           wk7[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGFA:1;
            unsigned char TGFB:1;
            unsigned char TGFC:1;
            unsigned char TGFD:1;
            unsigned char TCFV:1;
            unsigned char :2;
            unsigned char TCFD:1;
        } BIT;
    } TSR;
    char           wk8[11];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTSA:1;
            unsigned char TTSB:1;
            unsigned char :6;
        } BIT;
    } TBTM;
    char           wk9[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short ITB4VE:1;
            unsigned short ITB3AE:1;
            unsigned short ITA4VE:1;
            unsigned short ITA3AE:1;
            unsigned short DT4BE:1;
            unsigned short UT4BE:1;
            unsigned short DT4AE:1;
            unsigned short UT4AE:1;
            unsigned short :6;
            unsigned short BF:2;
        } BIT;
    } TADCR;
    char           wk10[2];
    unsigned short TADCORA;
    unsigned short TADCORB;
    unsigned short TADCOBRA;
    unsigned short TADCOBRB;
    char           wk11[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC2:3;
            unsigned char :5;
        } BIT;
    } TCR2;
    char           wk12[38];
    unsigned short TGRE;
    unsigned short TGRF;
    char           wk13[28];
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFAEN:1;
            unsigned char NFBEN:1;
            unsigned char NFCEN:1;
            unsigned char NFDEN:1;
            unsigned char NFCS:2;
            unsigned char :2;
        } BIT;
    } NFCR4;
};

struct st_mtu5 {
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFUEN:1;
            unsigned char NFVEN:1;
            unsigned char NFWEN:1;
            unsigned char :1;
            unsigned char NFCS:2;
            unsigned char :2;
        } BIT;
    } NFCR5;
    char           wk1[2538];
    unsigned short TCNTU;
    unsigned short TGRU;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:2;
            unsigned char :6;
        } BIT;
    } TCRU;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC2:3;
            unsigned char CKEG:2;
            unsigned char :3;
        } BIT;
    } TCR2U;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOC:5;
            unsigned char :3;
        } BIT;
    } TIORU;
    char           wk2[9];
    unsigned short TCNTV;
    unsigned short TGRV;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:2;
            unsigned char :6;
        } BIT;
    } TCRV;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC2:3;
            unsigned char CKEG:2;
            unsigned char :3;
        } BIT;
    } TCR2V;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOC:5;
            unsigned char :3;
        } BIT;
    } TIORV;
    char           wk3[9];
    unsigned short TCNTW;
    unsigned short TGRW;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:2;
            unsigned char :6;
        } BIT;
    } TCRW;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC2:3;
            unsigned char CKEG:2;
            unsigned char :3;
        } BIT;
    } TCR2W;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOC:5;
            unsigned char :3;
        } BIT;
    } TIORW;
    char           wk4[9];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CMFW5:1;
            unsigned char CMFV5:1;
            unsigned char CMFU5:1;
            unsigned char :5;
        } BIT;
    } TSR;
    char           wk5[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGIE5W:1;
            unsigned char TGIE5V:1;
            unsigned char TGIE5U:1;
            unsigned char :5;
        } BIT;
    } TIER;
    char           wk6[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CSTW5:1;
            unsigned char CSTV5:1;
            unsigned char CSTU5:1;
            unsigned char :5;
        } BIT;
    } TSTR;
    char           wk7[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CMPCLR5W:1;
            unsigned char CMPCLR5V:1;
            unsigned char CMPCLR5U:1;
            unsigned char :5;
        } BIT;
    } TCNTCMPCLR;
};

struct st_mtu6 {
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFAEN:1;
            unsigned char NFBEN:1;
            unsigned char NFCEN:1;
            unsigned char NFDEN:1;
            unsigned char NFCS:2;
            unsigned char :2;
        } BIT;
    } NFCR6;
    char           wk1[1884];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:3;
            unsigned char CKEG:2;
            unsigned char CCLR:3;
        } BIT;
    } TCR;
    char           wk2[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MD:4;
            unsigned char BFA:1;
            unsigned char BFB:1;
            unsigned char :2;
        } BIT;
    } TMDR1;
    char           wk3[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOA:4;
            unsigned char IOB:4;
        } BIT;
    } TIORH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOC:4;
            unsigned char IOD:4;
        } BIT;
    } TIORL;
    char           wk4[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGIEA:1;
            unsigned char TGIEB:1;
            unsigned char TGIEC:1;
            unsigned char TGIED:1;
            unsigned char TCIEV:1;
            unsigned char :2;
            unsigned char TTGE:1;
        } BIT;
    } TIER;
    char           wk5[7];
    unsigned short TCNT;
    char           wk6[6];
    unsigned short TGRA;
    unsigned short TGRB;
    char           wk7[8];
    unsigned short TGRC;
    unsigned short TGRD;
    char           wk8[4];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGFA:1;
            unsigned char TGFB:1;
            unsigned char TGFC:1;
            unsigned char TGFD:1;
            unsigned char TCFV:1;
            unsigned char :2;
            unsigned char TCFD:1;
        } BIT;
    } TSR;
    char           wk9[11];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTSA:1;
            unsigned char TTSB:1;
            unsigned char :6;
        } BIT;
    } TBTM;
    char           wk10[19];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC2:3;
            unsigned char :5;
        } BIT;
    } TCR2;
    char           wk11[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CE2B:1;
            unsigned char CE2A:1;
            unsigned char CE1B:1;
            unsigned char CE1A:1;
            unsigned char CE0D:1;
            unsigned char CE0C:1;
            unsigned char CE0B:1;
            unsigned char CE0A:1;
        } BIT;
    } TSYCR;
    char           wk12[33];
    unsigned short TGRE;
};

struct st_mtu7 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFAEN:1;
            unsigned char NFBEN:1;
            unsigned char NFCEN:1;
            unsigned char NFDEN:1;
            unsigned char NFCS:2;
            unsigned char :2;
        } BIT;
    } NFCR7;
    char           wk0[1884];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:3;
            unsigned char CKEG:2;
            unsigned char CCLR:3;
        } BIT;
    } TCR;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MD:4;
            unsigned char BFA:1;
            unsigned char BFB:1;
            unsigned char :2;
        } BIT;
    } TMDR1;
    char           wk2[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOA:4;
            unsigned char IOB:4;
        } BIT;
    } TIORH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOC:4;
            unsigned char IOD:4;
        } BIT;
    } TIORL;
    char           wk3[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGIEA:1;
            unsigned char TGIEB:1;
            unsigned char TGIEC:1;
            unsigned char TGIED:1;
            unsigned char TCIEV:1;
            unsigned char :1;
            unsigned char TTGE2:1;
            unsigned char TTGE:1;
        } BIT;
    } TIER;
    char           wk4[8];
    unsigned short TCNT;
    char           wk5[8];
    unsigned short TGRA;
    unsigned short TGRB;
    char           wk6[8];
    unsigned short TGRC;
    unsigned short TGRD;
    char           wk7[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGFA:1;
            unsigned char TGFB:1;
            unsigned char TGFC:1;
            unsigned char TGFD:1;
            unsigned char TCFV:1;
            unsigned char :2;
            unsigned char TCFD:1;
        } BIT;
    } TSR;
    char           wk8[11];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTSA:1;
            unsigned char TTSB:1;
            unsigned char :6;
        } BIT;
    } TBTM;
    char           wk9[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short ITB7VE:1;
            unsigned short ITB6AE:1;
            unsigned short ITA7VE:1;
            unsigned short ITA6AE:1;
            unsigned short DT7BE:1;
            unsigned short UT7BE:1;
            unsigned short DT7AE:1;
            unsigned short UT7AE:1;
            unsigned short :6;
            unsigned short BF:2;
        } BIT;
    } TADCR;
    char           wk10[2];
    unsigned short TADCORA;
    unsigned short TADCORB;
    unsigned short TADCOBRA;
    unsigned short TADCOBRB;
    char           wk11[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC2:3;
            unsigned char :5;
        } BIT;
    } TCR2;
    char           wk12[38];
    unsigned short TGRE;
    unsigned short TGRF;
};

struct st_mtu8 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFAEN:1;
            unsigned char NFBEN:1;
            unsigned char NFCEN:1;
            unsigned char NFDEN:1;
            unsigned char NFCS:2;
            unsigned char :2;
        } BIT;
    } NFCR8;
    char           wk0[871];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:3;
            unsigned char CKEG:2;
            unsigned char CCLR:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MD:4;
            unsigned char BFA:1;
            unsigned char BFB:1;
            unsigned char :2;
        } BIT;
    } TMDR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOA:4;
            unsigned char IOB:4;
        } BIT;
    } TIORH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOC:4;
            unsigned char IOD:4;
        } BIT;
    } TIORL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGIEA:1;
            unsigned char TGIEB:1;
            unsigned char TGIEC:1;
            unsigned char TGIED:1;
            unsigned char TCIEV:1;
            unsigned char TCIEU:1;
            unsigned char :2;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGFA:1;
            unsigned char TGFB:1;
            unsigned char TGFC:1;
            unsigned char TGFD:1;
            unsigned char TCFV:1;
            unsigned char :3;
        } BIT;
    } TSR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC2:3;
            unsigned char PCB:2;
            unsigned char :3;
        } BIT;
    } TCR2;
    char           wk1[1];
    unsigned long  TCNT;
    unsigned long  TGRA;
    unsigned long  TGRB;
    unsigned long  TGRC;
    unsigned long  TGRD;
};

struct st_pdc {
    union {
        unsigned long LONG;
        struct {
            unsigned long PCKE:1;
            unsigned long VPS:1;
            unsigned long HPS:1;
            unsigned long PRST:1;
            unsigned long DFIE:1;
            unsigned long FEIE:1;
            unsigned long OVIE:1;
            unsigned long UDRIE:1;
            unsigned long VERIE:1;
            unsigned long HERIE:1;
            unsigned long PCKOE:1;
            unsigned long PCKDIV:3;
            unsigned long EDS:1;
            unsigned long :17;
        } BIT;
    } PCCR0;
    union {
        unsigned long LONG;
        struct {
            unsigned long PCE:1;
            unsigned long :31;
        } BIT;
    } PCCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long FBSY:1;
            unsigned long FEMPF:1;
            unsigned long FEF:1;
            unsigned long OVRF:1;
            unsigned long UDRF:1;
            unsigned long VERF:1;
            unsigned long HERF:1;
            unsigned long :25;
        } BIT;
    } PCSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long VSYNC:1;
            unsigned long HSYNC:1;
            unsigned long :30;
        } BIT;
    } PCMONR;
    union {
        unsigned long LONG;
        struct {
            unsigned long B0:1;
            unsigned long B1:1;
            unsigned long B2:1;
            unsigned long B3:1;
            unsigned long B4:1;
            unsigned long B5:1;
            unsigned long B6:1;
            unsigned long B7:1;
            unsigned long B8:1;
            unsigned long B9:1;
            unsigned long B10:1;
            unsigned long B11:1;
            unsigned long B12:1;
            unsigned long B13:1;
            unsigned long B14:1;
            unsigned long B15:1;
            unsigned long B16:1;
            unsigned long B17:1;
            unsigned long B18:1;
            unsigned long B19:1;
            unsigned long B20:1;
            unsigned long B21:1;
            unsigned long B22:1;
            unsigned long B23:1;
            unsigned long B24:1;
            unsigned long B25:1;
            unsigned long B26:1;
            unsigned long B27:1;
            unsigned long B28:1;
            unsigned long B29:1;
            unsigned long B30:1;
            unsigned long B31:1;
        } BIT;
    } PCDR;
    union {
        unsigned long LONG;
        struct {
            unsigned long VST:12;
            unsigned long :4;
            unsigned long VSZ:12;
            unsigned long :4;
        } BIT;
    } VCR;
    union {
        unsigned long LONG;
        struct {
            unsigned long HST:12;
            unsigned long :4;
            unsigned long HSZ:12;
            unsigned long :4;
        } BIT;
    } HCR;
};

struct st_poe {
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char POE0M:2;
            unsigned char :6;
            unsigned char PIE1:1;
            unsigned char :3;
            unsigned char POE0F:1;
            unsigned char :3;
        } BIT;
    } ICSR1;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :8;
            unsigned char OIE1:1;
            unsigned char OCE1:1;
            unsigned char :5;
            unsigned char OSF1:1;
        } BIT;
    } OCSR1;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char POE4M:2;
            unsigned char :6;
            unsigned char PIE2:1;
            unsigned char :3;
            unsigned char POE4F:1;
            unsigned char :3;
        } BIT;
    } ICSR2;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char OIE2:1;
            unsigned char OCE2:1;
            unsigned char :5;
            unsigned char OSF2:1;
        } BIT;
    } OCSR2;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char POE8M:2;
            unsigned char :6;
            unsigned char PIE3:1;
            unsigned char POE8E:1;
            unsigned char :2;
            unsigned char POE8F:1;
            unsigned char :3;
        } BIT;
    } ICSR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MTUCH34HIZ:1;
            unsigned char MTUCH67HIZ:1;
            unsigned char MTUCH0HIZ:1;
            unsigned char GPT01HIZ:1;
            unsigned char GPT23HIZ:1;
            unsigned char :3;
        } BIT;
    } SPOER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MTU0AZE:1;
            unsigned char MTU0BZE:1;
            unsigned char MTU0CZE:1;
            unsigned char MTU0DZE:1;
            unsigned char :4;
        } BIT;
    } POECR1;
    union {
        unsigned short WORD;
        struct {
            unsigned short MTU7BDZE:1;
            unsigned short MTU7ACZE:1;
            unsigned short MTU6BDZE:1;
            unsigned short :5;
            unsigned short MTU4BDZE:1;
            unsigned short MTU4ACZE:1;
            unsigned short MTU3BDZE:1;
            unsigned short :5;
        } BIT;
    } POECR2;
    union {
        unsigned short WORD;
        struct {
            unsigned short GPT0ABZE:1;
            unsigned short GPT1ABZE:1;
            unsigned short :6;
            unsigned short GPT2ABZE:1;
            unsigned short GPT3ABZE:1;
            unsigned short :6;
        } BIT;
    } POECR3;
    union {
        unsigned short WORD;
        struct {
            unsigned short :2;
            unsigned short IC2ADDMT34ZE:1;
            unsigned short IC3ADDMT34ZE:1;
            unsigned short IC4ADDMT34ZE:1;
            unsigned short IC5ADDMT34ZE:1;
            unsigned short :3;
            unsigned short IC1ADDMT67ZE:1;
            unsigned short :1;
            unsigned short IC3ADDMT67ZE:1;
            unsigned short IC4ADDMT67ZE:1;
            unsigned short IC5ADDMT67ZE:1;
            unsigned short :2;
        } BIT;
    } POECR4;
    union {
        unsigned short WORD;
        struct {
            unsigned short :1;
            unsigned short IC1ADDMT0ZE:1;
            unsigned short IC2ADDMT0ZE:1;
            unsigned short :1;
            unsigned short IC4ADDMT0ZE:1;
            unsigned short IC5ADDMT0ZE:1;
            unsigned short :10;
        } BIT;
    } POECR5;
    union {
        unsigned short WORD;
        struct {
            unsigned short :1;
            unsigned short IC1ADDGPT01ZE:1;
            unsigned short IC2ADDGPT01Z:1;
            unsigned short IC3ADDGPT01ZE:1;
            unsigned short :1;
            unsigned short IC5ADDGPT01ZE:1;
            unsigned short :3;
            unsigned short IC1ADDGPT23ZE:1;
            unsigned short IC2ADDGPT23Z:1;
            unsigned short IC3ADDGPT23ZE:1;
            unsigned short IC4ADDGPT23ZE:1;
            unsigned short :3;
        } BIT;
    } POECR6;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char POE10M:2;
            unsigned char :6;
            unsigned char PIE4:1;
            unsigned char POE10E:1;
            unsigned char :2;
            unsigned char POE10F:1;
            unsigned char :3;
        } BIT;
    } ICSR4;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char POE11M:2;
            unsigned char :6;
            unsigned char PIE5:1;
            unsigned char POE11E:1;
            unsigned char :2;
            unsigned char POE11F:1;
            unsigned char :3;
        } BIT;
    } ICSR5;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char OLSG0A:1;
            unsigned char OLSG0B:1;
            unsigned char OLSG1A:1;
            unsigned char OLSG1B:1;
            unsigned char OLSG2A:1;
            unsigned char OLSG2B:1;
            unsigned char :1;
            unsigned char OLSEN:1;
            unsigned char :8;
        } BIT;
    } ALR1;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :8;
            unsigned char :1;
            unsigned char OSTSTE:1;
            unsigned char :2;
            unsigned char OSTSTF:1;
            unsigned char :3;
        } BIT;
    } ICSR6;
    char           wk0[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char G0ASEL:4;
            unsigned char G0BSEL:4;
        } BIT;
    } G0SELR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char G1ASEL:4;
            unsigned char G1BSEL:4;
        } BIT;
    } G1SELR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char G2ASEL:4;
            unsigned char G2BSEL:4;
        } BIT;
    } G2SELR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char G3ASEL:4;
            unsigned char G3BSEL:4;
        } BIT;
    } G3SELR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char M0ASEL:4;
            unsigned char M0BSEL:4;
        } BIT;
    } M0SELR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char M0CSEL:4;
            unsigned char M0DSEL:4;
        } BIT;
    } M0SELR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char M3BSEL:4;
            unsigned char M3DSEL:4;
        } BIT;
    } M3SELR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char M4ASEL:4;
            unsigned char M4CSEL:4;
        } BIT;
    } M4SELR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char M4BSEL:4;
            unsigned char M4DSEL:4;
        } BIT;
    } M4SELR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char M4G0SEL:1;
            unsigned char M4G1SEL:1;
            unsigned char M4G2SEL:1;
            unsigned char :5;
        } BIT;
    } MGSELR;
};

struct st_port0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char :1;
            unsigned char B5:1;
            unsigned char :1;
            unsigned char B7:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char :1;
            unsigned char B5:1;
            unsigned char :1;
            unsigned char B7:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char :1;
            unsigned char B5:1;
            unsigned char :1;
            unsigned char B7:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char :1;
            unsigned char B5:1;
            unsigned char :1;
            unsigned char B7:1;
        } BIT;
    } PMR;
    char           wk3[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char B2:1;
            unsigned char :3;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR1;
    char           wk4[62];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char :1;
            unsigned char B5:1;
            unsigned char :1;
            unsigned char B7:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char :5;
        } BIT;
    } DSCR;
};

struct st_port1 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PMR;
    char           wk3[32];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR1;
    char           wk4[61];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PCR;
};

struct st_port2 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PMR;
    char           wk3[33];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR1;
    char           wk4[60];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char B7:1;
        } BIT;
    } DSCR;
};

struct st_port3 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PMR;
    char           wk3[34];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR1;
    char           wk4[59];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PCR;
};

struct st_port4 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PMR;
    char           wk3[35];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR1;
    char           wk4[58];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PCR;
};

struct st_port5 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } PMR;
    char           wk3[36];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR1;
    char           wk4[57];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char :3;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } DSCR;
};

struct st_port6 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PMR;
    char           wk3[37];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR1;
    char           wk4[56];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PCR;
};

struct st_port7 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PMR;
    char           wk3[38];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR1;
    char           wk4[55];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PCR;
};

struct st_port8 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char :2;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char :2;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char :2;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char :2;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PMR;
    char           wk3[39];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR1;
    char           wk4[54];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char :2;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PCR;
};

struct st_port9 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PMR;
    char           wk3[40];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR1;
    char           wk4[53];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } DSCR;
};

struct st_porta {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PMR;
    char           wk3[41];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR1;
    char           wk4[52];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } DSCR;
};

struct st_portb {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PMR;
    char           wk3[42];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR1;
    char           wk4[51];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } DSCR;
};

struct st_portc {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PMR;
    char           wk3[43];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR1;
    char           wk4[50];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } DSCR;
};

struct st_portd {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PMR;
    char           wk3[44];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR1;
    char           wk4[49];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } DSCR;
};

struct st_porte {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PMR;
    char           wk3[45];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR1;
    char           wk4[48];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } DSCR;
};

struct st_portf {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char :2;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char :2;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char :2;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char :2;
        } BIT;
    } PMR;
    char           wk3[46];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :5;
        } BIT;
    } ODR1;
    char           wk4[47];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char :2;
        } BIT;
    } PCR;
};

struct st_portg {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PMR;
    char           wk3[47];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR1;
    char           wk4[46];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char B2:1;
            unsigned char B3:1;
            unsigned char B4:1;
            unsigned char B5:1;
            unsigned char B6:1;
            unsigned char B7:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0:1;
            unsigned char B1:1;
            unsigned char :6;
        } BIT;
    } DSCR;
};

struct st_portj {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char B3:1;
            unsigned char :1;
            unsigned char B5:1;
            unsigned char :2;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char B3:1;
            unsigned char :1;
            unsigned char B5:1;
            unsigned char :2;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char B3:1;
            unsigned char :1;
            unsigned char B5:1;
            unsigned char :2;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char B3:1;
            unsigned char :1;
            unsigned char B5:1;
            unsigned char :2;
        } BIT;
    } PMR;
    char           wk3[49];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char B6:1;
            unsigned char :1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char B2:1;
            unsigned char :5;
        } BIT;
    } ODR1;
    char           wk4[44];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char B3:1;
            unsigned char :1;
            unsigned char B5:1;
            unsigned char :2;
        } BIT;
    } PCR;
};

struct st_ppg0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char G0CMS:2;
            unsigned char G1CMS:2;
            unsigned char G2CMS:2;
            unsigned char G3CMS:2;
        } BIT;
    } PCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char G0NOV:1;
            unsigned char G1NOV:1;
            unsigned char G2NOV:1;
            unsigned char G3NOV:1;
            unsigned char G0INV:1;
            unsigned char G1INV:1;
            unsigned char G2INV:1;
            unsigned char G3INV:1;
        } BIT;
    } PMR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDER8:1;
            unsigned char NDER9:1;
            unsigned char NDER10:1;
            unsigned char NDER11:1;
            unsigned char NDER12:1;
            unsigned char NDER13:1;
            unsigned char NDER14:1;
            unsigned char NDER15:1;
        } BIT;
    } NDERH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDER0:1;
            unsigned char NDER1:1;
            unsigned char NDER2:1;
            unsigned char NDER3:1;
            unsigned char NDER4:1;
            unsigned char NDER5:1;
            unsigned char NDER6:1;
            unsigned char NDER7:1;
        } BIT;
    } NDERL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char POD8:1;
            unsigned char POD9:1;
            unsigned char POD10:1;
            unsigned char POD11:1;
            unsigned char POD12:1;
            unsigned char POD13:1;
            unsigned char POD14:1;
            unsigned char POD15:1;
        } BIT;
    } PODRH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char POD0:1;
            unsigned char POD1:1;
            unsigned char POD2:1;
            unsigned char POD3:1;
            unsigned char POD4:1;
            unsigned char POD5:1;
            unsigned char POD6:1;
            unsigned char POD7:1;
        } BIT;
    } PODRL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDR8:1;
            unsigned char NDR9:1;
            unsigned char NDR10:1;
            unsigned char NDR11:1;
            unsigned char NDR12:1;
            unsigned char NDR13:1;
            unsigned char NDR14:1;
            unsigned char NDR15:1;
        } BIT;
    } NDRH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDR0:1;
            unsigned char NDR1:1;
            unsigned char NDR2:1;
            unsigned char NDR3:1;
            unsigned char NDR4:1;
            unsigned char NDR5:1;
            unsigned char NDR6:1;
            unsigned char NDR7:1;
        } BIT;
    } NDRL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDR8:1;
            unsigned char NDR9:1;
            unsigned char NDR10:1;
            unsigned char NDR11:1;
            unsigned char :4;
        } BIT;
    } NDRH2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDR0:1;
            unsigned char NDR1:1;
            unsigned char NDR2:1;
            unsigned char NDR3:1;
            unsigned char :4;
        } BIT;
    } NDRL2;
};

struct st_ppg1 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char PTRSL:1;
            unsigned char :7;
        } BIT;
    } PTRSLR;
    char           wk0[5];
    union {
        unsigned char BYTE;
        struct {
            unsigned char G0CMS:2;
            unsigned char G1CMS:2;
            unsigned char G2CMS:2;
            unsigned char G3CMS:2;
        } BIT;
    } PCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char G0NOV:1;
            unsigned char G1NOV:1;
            unsigned char G2NOV:1;
            unsigned char G3NOV:1;
            unsigned char G0INV:1;
            unsigned char G1INV:1;
            unsigned char G2INV:1;
            unsigned char G3INV:1;
        } BIT;
    } PMR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDER24:1;
            unsigned char NDER25:1;
            unsigned char NDER26:1;
            unsigned char NDER27:1;
            unsigned char NDER28:1;
            unsigned char NDER29:1;
            unsigned char NDER30:1;
            unsigned char NDER31:1;
        } BIT;
    } NDERH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDER16:1;
            unsigned char NDER17:1;
            unsigned char NDER18:1;
            unsigned char NDER19:1;
            unsigned char NDER20:1;
            unsigned char NDER21:1;
            unsigned char NDER22:1;
            unsigned char NDER23:1;
        } BIT;
    } NDERL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char POD24:1;
            unsigned char POD25:1;
            unsigned char POD26:1;
            unsigned char POD27:1;
            unsigned char POD28:1;
            unsigned char POD29:1;
            unsigned char POD30:1;
            unsigned char POD31:1;
        } BIT;
    } PODRH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char POD16:1;
            unsigned char POD17:1;
            unsigned char POD18:1;
            unsigned char POD19:1;
            unsigned char POD20:1;
            unsigned char POD21:1;
            unsigned char POD22:1;
            unsigned char POD23:1;
        } BIT;
    } PODRL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDR24:1;
            unsigned char NDR25:1;
            unsigned char NDR26:1;
            unsigned char NDR27:1;
            unsigned char NDR28:1;
            unsigned char NDR29:1;
            unsigned char NDR30:1;
            unsigned char NDR31:1;
        } BIT;
    } NDRH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDR16:1;
            unsigned char NDR17:1;
            unsigned char NDR18:1;
            unsigned char NDR19:1;
            unsigned char NDR20:1;
            unsigned char NDR21:1;
            unsigned char NDR22:1;
            unsigned char NDR23:1;
        } BIT;
    } NDRL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDR24:1;
            unsigned char NDR25:1;
            unsigned char NDR26:1;
            unsigned char NDR27:1;
            unsigned char :4;
        } BIT;
    } NDRH2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDR16:1;
            unsigned char NDR17:1;
            unsigned char NDR18:1;
            unsigned char NDR19:1;
            unsigned char :4;
        } BIT;
    } NDRL2;
};

struct st_qspi {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char SPSSLIE:1;
            unsigned char :3;
            unsigned char SPTIE:1;
            unsigned char SPE:1;
            unsigned char SPRIE:1;
        } BIT;
    } SPCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SSLP:1;
            unsigned char :7;
        } BIT;
    } SSLP;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPLP:1;
            unsigned char IO2FV:1;
            unsigned char IO3FV:1;
            unsigned char :1;
            unsigned char MOIFV:1;
            unsigned char MOIFE:1;
            unsigned char :2;
        } BIT;
    } SPPCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char SPSSLF:1;
            unsigned char SPTEF:1;
            unsigned char TREND:1;
            unsigned char SPRFF:1;
        } BIT;
    } SPSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long SPD0:1;
            unsigned long SPD1:1;
            unsigned long SPD2:1;
            unsigned long SPD3:1;
            unsigned long SPD4:1;
            unsigned long SPD5:1;
            unsigned long SPD6:1;
            unsigned long SPD7:1;
            unsigned long SPD8:1;
            unsigned long SPD9:1;
            unsigned long SPD10:1;
            unsigned long SPD11:1;
            unsigned long SPD12:1;
            unsigned long SPD13:1;
            unsigned long SPD14:1;
            unsigned long SPD15:1;
            unsigned long SPD16:1;
            unsigned long SPD17:1;
            unsigned long SPD18:1;
            unsigned long SPD19:1;
            unsigned long SPD20:1;
            unsigned long SPD21:1;
            unsigned long SPD22:1;
            unsigned long SPD23:1;
            unsigned long SPD24:1;
            unsigned long SPD25:1;
            unsigned long SPD26:1;
            unsigned long SPD27:1;
            unsigned long SPD28:1;
            unsigned long SPD29:1;
            unsigned long SPD30:1;
            unsigned long SPD31:1;
        } BIT;
    } SPDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPSC:2;
            unsigned char :6;
        } BIT;
    } SPSCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPSS:2;
            unsigned char :6;
        } BIT;
    } SPSSR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPBR0:1;
            unsigned char SPBR1:1;
            unsigned char SPBR2:1;
            unsigned char SPBR3:1;
            unsigned char SPBR4:1;
            unsigned char SPBR5:1;
            unsigned char SPBR6:1;
            unsigned char SPBR7:1;
        } BIT;
    } SPBR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char TXDMY:1;
        } BIT;
    } SPDCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SCKDL:3;
            unsigned char :5;
        } BIT;
    } SPCKD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLNDL:3;
            unsigned char :5;
        } BIT;
    } SSLND;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPNDL:3;
            unsigned char :5;
        } BIT;
    } SPND;
    char           wk0[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short CPHA:1;
            unsigned short CPOL:1;
            unsigned short BRDV:2;
            unsigned short SPRW:1;
            unsigned short SPIMOD:2;
            unsigned short SSLKP:1;
            unsigned short SPB:4;
            unsigned short LSBF:1;
            unsigned short SPNDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SCKDEN:1;
        } BIT;
    } SPCMD0;
    union {
        unsigned short WORD;
        struct {
            unsigned short CPHA:1;
            unsigned short CPOL:1;
            unsigned short BRDV:2;
            unsigned short SPRW:1;
            unsigned short SPIMOD:2;
            unsigned short SSLKP:1;
            unsigned short SPB:4;
            unsigned short LSBF:1;
            unsigned short SPNDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SCKDEN:1;
        } BIT;
    } SPCMD1;
    union {
        unsigned short WORD;
        struct {
            unsigned short CPHA:1;
            unsigned short CPOL:1;
            unsigned short BRDV:2;
            unsigned short SPRW:1;
            unsigned short SPIMOD:2;
            unsigned short SSLKP:1;
            unsigned short SPB:4;
            unsigned short LSBF:1;
            unsigned short SPNDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SCKDEN:1;
        } BIT;
    } SPCMD2;
    union {
        unsigned short WORD;
        struct {
            unsigned short CPHA:1;
            unsigned short CPOL:1;
            unsigned short BRDV:2;
            unsigned short SPRW:1;
            unsigned short SPIMOD:2;
            unsigned short SSLKP:1;
            unsigned short SPB:4;
            unsigned short LSBF:1;
            unsigned short SPNDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SCKDEN:1;
        } BIT;
    } SPCMD3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char RXTRG:3;
            unsigned char TXTRGEX:1;
            unsigned char TXTRG:2;
            unsigned char RXRST:1;
            unsigned char TXRST:1;
        } BIT;
    } SPBFCR;
    char           wk1[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short RXBC:6;
            unsigned short :2;
            unsigned short TXBC:6;
            unsigned short :2;
        } BIT;
    } SPBDCR;
    union {
        unsigned long LONG;
    } SPBMUL0;
    union {
        unsigned long LONG;
    } SPBMUL1;
    union {
        unsigned long LONG;
    } SPBMUL2;
    union {
        unsigned long LONG;
    } SPBMUL3;
};

struct st_riic0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char SDAI:1;
            unsigned char SCLI:1;
            unsigned char SDAO:1;
            unsigned char SCLO:1;
            unsigned char SOWP:1;
            unsigned char CLO:1;
            unsigned char IICRST:1;
            unsigned char ICE:1;
        } BIT;
    } ICCR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ST:1;
            unsigned char RS:1;
            unsigned char SP:1;
            unsigned char :1;
            unsigned char TRS:1;
            unsigned char MST:1;
            unsigned char BBSY:1;
        } BIT;
    } ICCR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BC:3;
            unsigned char BCWP:1;
            unsigned char CKS:3;
            unsigned char MTWP:1;
        } BIT;
    } ICMR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TMOS:1;
            unsigned char TMOL:1;
            unsigned char TMOH:1;
            unsigned char :1;
            unsigned char SDDL:3;
            unsigned char DLCS:1;
        } BIT;
    } ICMR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NF:2;
            unsigned char ACKBR:1;
            unsigned char ACKBT:1;
            unsigned char ACKWP:1;
            unsigned char RDRFS:1;
            unsigned char WAIT:1;
            unsigned char SMBS:1;
        } BIT;
    } ICMR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TMOE:1;
            unsigned char MALE:1;
            unsigned char NALE:1;
            unsigned char SALE:1;
            unsigned char NACKE:1;
            unsigned char NFE:1;
            unsigned char SCLE:1;
            unsigned char FMPE:1;
        } BIT;
    } ICFER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SAR0E:1;
            unsigned char SAR1E:1;
            unsigned char SAR2E:1;
            unsigned char GCAE:1;
            unsigned char :1;
            unsigned char DIDE:1;
            unsigned char :1;
            unsigned char HOAE:1;
        } BIT;
    } ICSER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TMOIE:1;
            unsigned char ALIE:1;
            unsigned char STIE:1;
            unsigned char SPIE:1;
            unsigned char NAKIE:1;
            unsigned char RIE:1;
            unsigned char TEIE:1;
            unsigned char TIE:1;
        } BIT;
    } ICIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char AAS0:1;
            unsigned char AAS1:1;
            unsigned char AAS2:1;
            unsigned char GCA:1;
            unsigned char :1;
            unsigned char DID:1;
            unsigned char :1;
            unsigned char HOA:1;
        } BIT;
    } ICSR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TMOF:1;
            unsigned char AL:1;
            unsigned char START:1;
            unsigned char STOP:1;
            unsigned char NACKF:1;
            unsigned char RDRF:1;
            unsigned char TEND:1;
            unsigned char TDRE:1;
        } BIT;
    } ICSR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SVA0:1;
            unsigned char SVA:7;
        } BIT;
    } SARL0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char FS:1;
            unsigned char SVA:2;
            unsigned char :5;
        } BIT;
    } SARU0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SVA0:1;
            unsigned char SVA:7;
        } BIT;
    } SARL1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char FS:1;
            unsigned char SVA:2;
            unsigned char :5;
        } BIT;
    } SARU1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SVA0:1;
            unsigned char SVA:7;
        } BIT;
    } SARL2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char FS:1;
            unsigned char SVA:2;
            unsigned char :5;
        } BIT;
    } SARU2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BRL:5;
            unsigned char :3;
        } BIT;
    } ICBRL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BRH:5;
            unsigned char :3;
        } BIT;
    } ICBRH;
    unsigned char  ICDRT;
    unsigned char  ICDRR;
};

struct st_riic2 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char SDAI:1;
            unsigned char SCLI:1;
            unsigned char SDAO:1;
            unsigned char SCLO:1;
            unsigned char SOWP:1;
            unsigned char CLO:1;
            unsigned char IICRST:1;
            unsigned char ICE:1;
        } BIT;
    } ICCR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ST:1;
            unsigned char RS:1;
            unsigned char SP:1;
            unsigned char :1;
            unsigned char TRS:1;
            unsigned char MST:1;
            unsigned char BBSY:1;
        } BIT;
    } ICCR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BC:3;
            unsigned char BCWP:1;
            unsigned char CKS:3;
            unsigned char MTWP:1;
        } BIT;
    } ICMR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TMOS:1;
            unsigned char TMOL:1;
            unsigned char TMOH:1;
            unsigned char :1;
            unsigned char SDDL:3;
            unsigned char DLCS:1;
        } BIT;
    } ICMR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NF:2;
            unsigned char ACKBR:1;
            unsigned char ACKBT:1;
            unsigned char ACKWP:1;
            unsigned char RDRFS:1;
            unsigned char WAIT:1;
            unsigned char SMBS:1;
        } BIT;
    } ICMR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TMOE:1;
            unsigned char MALE:1;
            unsigned char NALE:1;
            unsigned char SALE:1;
            unsigned char NACKE:1;
            unsigned char NFE:1;
            unsigned char SCLE:1;
            unsigned char :1;
        } BIT;
    } ICFER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SAR0E:1;
            unsigned char SAR1E:1;
            unsigned char SAR2E:1;
            unsigned char GCAE:1;
            unsigned char :1;
            unsigned char DIDE:1;
            unsigned char :1;
            unsigned char HOAE:1;
        } BIT;
    } ICSER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TMOIE:1;
            unsigned char ALIE:1;
            unsigned char STIE:1;
            unsigned char SPIE:1;
            unsigned char NAKIE:1;
            unsigned char RIE:1;
            unsigned char TEIE:1;
            unsigned char TIE:1;
        } BIT;
    } ICIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char AAS0:1;
            unsigned char AAS1:1;
            unsigned char AAS2:1;
            unsigned char GCA:1;
            unsigned char :1;
            unsigned char DID:1;
            unsigned char :1;
            unsigned char HOA:1;
        } BIT;
    } ICSR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TMOF:1;
            unsigned char AL:1;
            unsigned char START:1;
            unsigned char STOP:1;
            unsigned char NACKF:1;
            unsigned char RDRF:1;
            unsigned char TEND:1;
            unsigned char TDRE:1;
        } BIT;
    } ICSR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SVA0:1;
            unsigned char SVA:7;
        } BIT;
    } SARL0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char FS:1;
            unsigned char SVA:2;
            unsigned char :5;
        } BIT;
    } SARU0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SVA0:1;
            unsigned char SVA:7;
        } BIT;
    } SARL1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char FS:1;
            unsigned char SVA:2;
            unsigned char :5;
        } BIT;
    } SARU1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SVA0:1;
            unsigned char SVA:7;
        } BIT;
    } SARL2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char FS:1;
            unsigned char SVA:2;
            unsigned char :5;
        } BIT;
    } SARU2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BRL:5;
            unsigned char :3;
        } BIT;
    } ICBRL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BRH:5;
            unsigned char :3;
        } BIT;
    } ICBRH;
    unsigned char  ICDRT;
    unsigned char  ICDRR;
};

struct st_rspi0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPMS:1;
            unsigned char TXMD:1;
            unsigned char MODFEN:1;
            unsigned char MSTR:1;
            unsigned char SPEIE:1;
            unsigned char SPTIE:1;
            unsigned char SPE:1;
            unsigned char SPRIE:1;
        } BIT;
    } SPCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SSL0P:1;
            unsigned char SSL1P:1;
            unsigned char SSL2P:1;
            unsigned char SSL3P:1;
            unsigned char :4;
        } BIT;
    } SSLP;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPLP:1;
            unsigned char SPLP2:1;
            unsigned char :2;
            unsigned char MOIFV:1;
            unsigned char MOIFE:1;
            unsigned char :2;
        } BIT;
    } SPPCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char OVRF:1;
            unsigned char IDLNF:1;
            unsigned char MODF:1;
            unsigned char PERF:1;
            unsigned char :4;
        } BIT;
    } SPSR;
    union {
        unsigned long LONG;
        struct {
            unsigned short H;
            unsigned short L;
        } WORD;
    } SPDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPSLN:3;
            unsigned char :5;
        } BIT;
    } SPSCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPCP:3;
            unsigned char :1;
            unsigned char SPECM:3;
            unsigned char :1;
        } BIT;
    } SPSSR;
    unsigned char SPBR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPFC:2;
            unsigned char :2;
            unsigned char SPRDTD:1;
            unsigned char SPLW:1;
            unsigned char :2;
        } BIT;
    } SPDCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SCKDL:3;
            unsigned char :5;
        } BIT;
    } SPCKD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLNDL:3;
            unsigned char :5;
        } BIT;
    } SSLND;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPNDL:3;
            unsigned char :5;
        } BIT;
    } SPND;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPPE:1;
            unsigned char SPOE:1;
            unsigned char SPIIE:1;
            unsigned char PTE:1;
            unsigned char SCKASE:1;
            unsigned char SPTDDL:3;
        } BIT;
    } SPCR2;
    union {
        unsigned short WORD;
        struct {
            unsigned short CPHA:1;
            unsigned short CPOL:1;
            unsigned short BRDV:2;
            unsigned short SSLA:3;
            unsigned short SSLKP:1;
            unsigned short SPB:4;
            unsigned short LSBF:1;
            unsigned short SPNDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SCKDEN:1;
        } BIT;
    } SPCMD0;
    union {
        unsigned short WORD;
        struct {
            unsigned short CPHA:1;
            unsigned short CPOL:1;
            unsigned short BRDV:2;
            unsigned short SSLA:3;
            unsigned short SSLKP:1;
            unsigned short SPB:4;
            unsigned short LSBF:1;
            unsigned short SPNDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SCKDEN:1;
        } BIT;
    } SPCMD1;
    union {
        unsigned short WORD;
        struct {
            unsigned short CPHA:1;
            unsigned short CPOL:1;
            unsigned short BRDV:2;
            unsigned short SSLA:3;
            unsigned short SSLKP:1;
            unsigned short SPB:4;
            unsigned short LSBF:1;
            unsigned short SPNDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SCKDEN:1;
        } BIT;
    } SPCMD2;
    union {
        unsigned short WORD;
        struct {
            unsigned short CPHA:1;
            unsigned short CPOL:1;
            unsigned short BRDV:2;
            unsigned short SSLA:3;
            unsigned short SSLKP:1;
            unsigned short SPB:4;
            unsigned short LSBF:1;
            unsigned short SPNDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SCKDEN:1;
        } BIT;
    } SPCMD3;
    union {
        unsigned short WORD;
        struct {
            unsigned short CPHA:1;
            unsigned short CPOL:1;
            unsigned short BRDV:2;
            unsigned short SSLA:3;
            unsigned short SSLKP:1;
            unsigned short SPB:4;
            unsigned short LSBF:1;
            unsigned short SPNDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SCKDEN:1;
        } BIT;
    } SPCMD4;
    union {
        unsigned short WORD;
        struct {
            unsigned short CPHA:1;
            unsigned short CPOL:1;
            unsigned short BRDV:2;
            unsigned short SSLA:3;
            unsigned short SSLKP:1;
            unsigned short SPB:4;
            unsigned short LSBF:1;
            unsigned short SPNDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SCKDEN:1;
        } BIT;
    } SPCMD5;
    union {
        unsigned short WORD;
        struct {
            unsigned short CPHA:1;
            unsigned short CPOL:1;
            unsigned short BRDV:2;
            unsigned short SSLA:3;
            unsigned short SSLKP:1;
            unsigned short SPB:4;
            unsigned short LSBF:1;
            unsigned short SPNDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SCKDEN:1;
        } BIT;
    } SPCMD6;
    union {
        unsigned short WORD;
        struct {
            unsigned short CPHA:1;
            unsigned short CPOL:1;
            unsigned short BRDV:2;
            unsigned short SSLA:3;
            unsigned short SSLKP:1;
            unsigned short SPB:4;
            unsigned short LSBF:1;
            unsigned short SPNDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SCKDEN:1;
        } BIT;
    } SPCMD7;
};

struct st_rtc {
    union {
        unsigned char BYTE;
        struct {
            unsigned char F64HZ:1;
            unsigned char F32HZ:1;
            unsigned char F16HZ:1;
            unsigned char F8HZ:1;
            unsigned char F4HZ:1;
            unsigned char F2HZ:1;
            unsigned char F1HZ:1;
            unsigned char :1;
        } BIT;
    } R64CNT;
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char SEC1:4;
            unsigned char SEC10:3;
            unsigned char :1;
        } BIT;
    } RSECCNT;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MIN1:4;
            unsigned char MIN10:3;
            unsigned char :1;
        } BIT;
    } RMINCNT;
    char           wk2[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char HR1:4;
            unsigned char HR10:2;
            unsigned char PM:1;
            unsigned char :1;
        } BIT;
    } RHRCNT;
    char           wk3[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DAYW:3;
            unsigned char :5;
        } BIT;
    } RWKCNT;
    char           wk4[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DATE1:4;
            unsigned char DATE10:2;
            unsigned char :2;
        } BIT;
    } RDAYCNT;
    char           wk5[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MON1:4;
            unsigned char MON10:1;
            unsigned char :3;
        } BIT;
    } RMONCNT;
    char           wk6[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short YR1:4;
            unsigned short YR10:4;
            unsigned short :8;
        } BIT;
    } RYRCNT;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SEC1:4;
            unsigned char SEC10:3;
            unsigned char ENB:1;
        } BIT;
    } RSECAR;
    char           wk7[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MIN1:4;
            unsigned char MIN10:3;
            unsigned char ENB:1;
        } BIT;
    } RMINAR;
    char           wk8[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char HR1:4;
            unsigned char HR10:2;
            unsigned char PM:1;
            unsigned char ENB:1;
        } BIT;
    } RHRAR;
    char           wk9[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DAYW:3;
            unsigned char :4;
            unsigned char ENB:1;
        } BIT;
    } RWKAR;
    char           wk10[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DATE1:4;
            unsigned char DATE10:2;
            unsigned char :1;
            unsigned char ENB:1;
        } BIT;
    } RDAYAR;
    char           wk11[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MON1:4;
            unsigned char MON10:1;
            unsigned char :2;
            unsigned char ENB:1;
        } BIT;
    } RMONAR;
    char           wk12[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short YR1:4;
            unsigned short YR10:4;
            unsigned short :8;
        } BIT;
    } RYRAR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char ENB:1;
        } BIT;
    } RYRAREN;
    char           wk13[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char AIE:1;
            unsigned char CIE:1;
            unsigned char PIE:1;
            unsigned char RTCOS:1;
            unsigned char PES:4;
        } BIT;
    } RCR1;
    char           wk14[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char START:1;
            unsigned char RESET:1;
            unsigned char ADJ30:1;
            unsigned char RTCOE:1;
            unsigned char AADJE:1;
            unsigned char AADJP:1;
            unsigned char HR24:1;
            unsigned char CNTMD:1;
        } BIT;
    } RCR2;
    char           wk15[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char RTCEN:1;
            unsigned char RTCDV:3;
            unsigned char :4;
        } BIT;
    } RCR3;
    char           wk16[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char RCKSEL:1;
            unsigned char :7;
        } BIT;
    } RCR4;
    char           wk17[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short RFC:1;
            unsigned short :15;
        } BIT;
    } RFRH;
    union {
        unsigned short WORD;
        struct {
            unsigned short RFC:16;
        } BIT;
    } RFRL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ADJ:6;
            unsigned char PMADJ:2;
        } BIT;
    } RADJ;
    char           wk18[17];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCCT:2;
            unsigned char TCST:1;
            unsigned char :1;
            unsigned char TCNF:2;
            unsigned char :1;
            unsigned char TCEN:1;
        } BIT;
    } RTCCR0;
    char           wk19[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCCT:2;
            unsigned char TCST:1;
            unsigned char :1;
            unsigned char TCNF:2;
            unsigned char :1;
            unsigned char TCEN:1;
        } BIT;
    } RTCCR1;
    char           wk20[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCCT:2;
            unsigned char TCST:1;
            unsigned char :1;
            unsigned char TCNF:2;
            unsigned char :1;
            unsigned char TCEN:1;
        } BIT;
    } RTCCR2;
    char           wk21[13];
    union {
        unsigned char BYTE;
        struct {
            unsigned char SEC1:4;
            unsigned char SEC10:3;
            unsigned char :1;
        } BIT;
    } RSECCP0;
    char           wk22[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MIN1:4;
            unsigned char MIN10:3;
            unsigned char :1;
        } BIT;
    } RMINCP0;
    char           wk23[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char HR1:4;
            unsigned char HR10:2;
            unsigned char PM:1;
            unsigned char :1;
        } BIT;
    } RHRCP0;
    char           wk24[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DATE1:4;
            unsigned char DATE10:2;
            unsigned char :2;
        } BIT;
    } RDAYCP0;
    char           wk25[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MON1:4;
            unsigned char MON10:1;
            unsigned char :3;
        } BIT;
    } RMONCP0;
    char           wk26[5];
    union {
        unsigned char BYTE;
        struct {
            unsigned char SEC1:4;
            unsigned char SEC10:3;
            unsigned char :1;
        } BIT;
    } RSECCP1;
    char           wk27[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MIN1:4;
            unsigned char MIN10:3;
            unsigned char :1;
        } BIT;
    } RMINCP1;
    char           wk28[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char HR1:4;
            unsigned char HR10:2;
            unsigned char PM:1;
            unsigned char :1;
        } BIT;
    } RHRCP1;
    char           wk29[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DATE1:4;
            unsigned char DATE10:2;
            unsigned char :2;
        } BIT;
    } RDAYCP1;
    char           wk30[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MON1:4;
            unsigned char MON10:1;
            unsigned char :3;
        } BIT;
    } RMONCP1;
    char           wk31[5];
    union {
        unsigned char BYTE;
        struct {
            unsigned char SEC1:4;
            unsigned char SEC10:3;
            unsigned char :1;
        } BIT;
    } RSECCP2;
    char           wk32[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MIN1:4;
            unsigned char MIN10:3;
            unsigned char :1;
        } BIT;
    } RMINCP2;
    char           wk33[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char HR1:4;
            unsigned char HR10:2;
            unsigned char PM:1;
            unsigned char :1;
        } BIT;
    } RHRCP2;
    char           wk34[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DATE1:4;
            unsigned char DATE10:2;
            unsigned char :2;
        } BIT;
    } RDAYCP2;
    char           wk35[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MON1:4;
            unsigned char MON10:1;
            unsigned char :3;
        } BIT;
    } RMONCP2;
};

struct st_rtcb {
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNT:8;
        } BIT;
    } BCNT0;
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNT:8;
        } BIT;
    } BCNT1;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNT:8;
        } BIT;
    } BCNT2;
    char           wk2[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNT:8;
        } BIT;
    } BCNT3;
    char           wk3[7];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNTAR:8;
        } BIT;
    } BCNT0AR;
    char           wk4[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNTAR:8;
        } BIT;
    } BCNT1AR;
    char           wk5[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNTAR:8;
        } BIT;
    } BCNT2AR;
    char           wk6[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNTAR:8;
        } BIT;
    } BCNT3AR;
    char           wk7[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ENB:8;
        } BIT;
    } BCNT0AER;
    char           wk8[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ENB:8;
        } BIT;
    } BCNT1AER;
    char           wk9[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short ENB:8;
            unsigned short :8;
        } BIT;
    } BCNT2AER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ENB:8;
        } BIT;
    } BCNT3AER;
    char           wk10[5];
    union {
        unsigned char BYTE;
        struct {
            unsigned char START:1;
            unsigned char RESET:1;
            unsigned char :1;
            unsigned char RTCOE:1;
            unsigned char AADJE:1;
            unsigned char AADJP:1;
            unsigned char :1;
            unsigned char CNTMD:1;
        } BIT;
    } BRCR2;
    char           wk11[45];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP0:8;
        } BIT;
    } BCNT0CP0;
    char           wk12[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP0:8;
        } BIT;
    } BCNT1CP0;
    char           wk13[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP0:8;
        } BIT;
    } BCNT2CP0;
    char           wk14[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP0:8;
        } BIT;
    } BCNT3CP0;
    char           wk15[7];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP1:8;
        } BIT;
    } BCNT0CP1;
    char           wk16[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP1:8;
        } BIT;
    } BCNT1CP1;
    char           wk17[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP1:8;
        } BIT;
    } BCNT2CP1;
    char           wk18[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP1:8;
        } BIT;
    } BCNT3CP1;
    char           wk19[7];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP2:8;
        } BIT;
    } BCNT0CP2;
    char           wk20[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP2:8;
        } BIT;
    } BCNT1CP2;
    char           wk21[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP2:8;
        } BIT;
    } BCNT2CP2;
    char           wk22[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP2:8;
        } BIT;
    } BCNT3CP2;
};

struct st_s12ad {
    union {
        unsigned short WORD;
        struct {
            unsigned short DBLANS:5;
            unsigned short :1;
            unsigned short GBADIE:1;
            unsigned short DBLE:1;
            unsigned short EXTRG:1;
            unsigned short TRGE:1;
            unsigned short :2;
            unsigned short ADIE:1;
            unsigned short ADCS:2;
            unsigned short ADST:1;
        } BIT;
    } ADCSR;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short ANSA0:16;
        } BIT;
    } ADANSA0;
    char           wk1[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short ADS0:16;
        } BIT;
    } ADADS0;
    char           wk2[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ADC:2;
            unsigned char :5;
            unsigned char AVEE:1;
        } BIT;
    } ADADC;
    char           wk3[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short :1;
            unsigned short ADPRC:2;
            unsigned short :2;
            unsigned short ACE:1;
            unsigned short :2;
            unsigned short DIAGVAL:2;
            unsigned short DIAGLD:1;
            unsigned short DIAGM:1;
            unsigned short :3;
            unsigned short ADRFMT:1;
        } BIT;
    } ADCER;
    union {
        unsigned short WORD;
        struct {
            unsigned short TRSB:6;
            unsigned short :2;
            unsigned short TRSA:6;
            unsigned short :2;
        } BIT;
    } ADSTRGR;
    union {
        unsigned short WORD;
        struct {
            unsigned short TSSAD:1;
            unsigned short OCSAD:1;
            unsigned short :6;
            unsigned short TSS:1;
            unsigned short OCS:1;
            unsigned short :3;
            unsigned short EXSEL:2;
            unsigned short EXOEN:1;
        } BIT;
    } ADEXICR;
    union {
        unsigned short WORD;
        struct {
            unsigned short ANSB0:16;
        } BIT;
    } ADANSB0;
    char           wk4[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short AD:12;
            unsigned short :4;
        } BIT;
    } ADDBLDR;
    char           wk5[4];
    union {
        unsigned short WORD;
        union {
            struct {
                unsigned short AD:12;
                unsigned short :2;
                unsigned short DIAGST:2;
            } RIGHT;
            struct {
                unsigned short DIAGST:2;
                unsigned short :2;
                unsigned short AD:12;
            } LEFT;
        } BIT;
    } ADRD;
    unsigned short ADDR0;
    unsigned short ADDR1;
    unsigned short ADDR2;
    unsigned short ADDR3;
    unsigned short ADDR4;
    unsigned short ADDR5;
    unsigned short ADDR6;
    unsigned short ADDR7;
    char           wk6[48];
    unsigned char  ADSSTR0;
    unsigned char  ADSSTRL;
    char           wk7[4];
    union {
        unsigned short WORD;
        struct {
            unsigned short SSTSH:8;
            unsigned short SHANS:3;
            unsigned short :5;
        } BIT;
    } ADSHCR;
    char           wk8[11];
    unsigned char  ADSSTR1;
    unsigned char  ADSSTR2;
    unsigned char  ADSSTR3;
    unsigned char  ADSSTR4;
    unsigned char  ADSSTR5;
    unsigned char  ADSSTR6;
    unsigned char  ADSSTR7;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ADNDIS:5;
            unsigned char :3;
        } BIT;
    } ADDISCR;
    char           wk9[5];
    union {
        unsigned short WORD;
        struct {
            unsigned short PGS:1;
            unsigned short GBRSCN:1;
            unsigned short :13;
            unsigned short GBRP:1;
        } BIT;
    } ADGSPCR;
    char           wk10[2];
    unsigned short ADDBLDRA;
    unsigned short ADDBLDRB;
    char           wk11[8];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char WCMPE:1;
            unsigned char CMPIE:1;
        } BIT;
    } ADCMPCR;
    char           wk12[3];
    union {
        unsigned short WORD;
        struct {
            unsigned short CMPS0:16;
        } BIT;
    } ADCMPANSR0;
    char           wk13[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short CMPL0:16;
        } BIT;
    } ADCMPLR0;
    char           wk14[2];
    unsigned short ADCMPDR0;
    unsigned short ADCMPDR1;
    union {
        unsigned short WORD;
        struct {
            unsigned short CMPF0:16;
        } BIT;
    } ADCMPSR0;
};

struct st_s12ad1 {
    union {
        unsigned short WORD;
        struct {
            unsigned short ANSA0:16;
        } BIT;
    } ADANSA0;
    union {
        unsigned short WORD;
        struct {
            unsigned short ANSA1:5;
            unsigned short :11;
        } BIT;
    } ADANSA1;
    union {
        unsigned short WORD;
        struct {
            unsigned short ADS0:16;
        } BIT;
    } ADADS0;
    union {
        unsigned short WORD;
        struct {
            unsigned short ADS1:5;
            unsigned short :11;
        } BIT;
    } ADADS1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ADC:2;
            unsigned char :5;
            unsigned char AVEE:1;
        } BIT;
    } ADADC;
    char           wk0[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short :1;
            unsigned short ADPRC:2;
            unsigned short :2;
            unsigned short ACE:1;
            unsigned short :2;
            unsigned short DIAGVAL:2;
            unsigned short DIAGLD:1;
            unsigned short DIAGM:1;
            unsigned short :3;
            unsigned short ADRFMT:1;
        } BIT;
    } ADCER;
    union {
        unsigned short WORD;
        struct {
            unsigned short TRSB:6;
            unsigned short :2;
            unsigned short TRSA:6;
            unsigned short :2;
        } BIT;
    } ADSTRGR;
    union {
        unsigned short WORD;
        struct {
            unsigned short TSSAD:1;
            unsigned short OCSAD:1;
            unsigned short :6;
            unsigned short TSS:1;
            unsigned short OCS:1;
            unsigned short :3;
            unsigned short EXSEL:2;
            unsigned short EXOEN:1;
        } BIT;
    } ADEXICR;
    union {
        unsigned short WORD;
        struct {
            unsigned short ANSB0:16;
        } BIT;
    } ADANSB0;
    union {
        unsigned short WORD;
        struct {
            unsigned short ANSB1:5;
            unsigned short :11;
        } BIT;
    } ADANSB1;
    unsigned short ADDBLDR;
    unsigned short ADTSDR;
    unsigned short ADOCDR;
    union {
        unsigned short WORD;
        union {
            struct {
                unsigned short AD:12;
                unsigned short :2;
                unsigned short DIAGST:2;
            } RIGHT;
            struct {
                unsigned short DIAGST:2;
                unsigned short :2;
                unsigned short AD:12;
            } LEFT;
        } BIT;
    } ADRD;
    unsigned short ADDR0;
    unsigned short ADDR1;
    unsigned short ADDR2;
    unsigned short ADDR3;
    unsigned short ADDR4;
    unsigned short ADDR5;
    unsigned short ADDR6;
    unsigned short ADDR7;
    unsigned short ADDR8;
    unsigned short ADDR9;
    unsigned short ADDR10;
    unsigned short ADDR11;
    unsigned short ADDR12;
    unsigned short ADDR13;
    unsigned short ADDR14;
    unsigned short ADDR15;
    unsigned short ADDR16;
    unsigned short ADDR17;
    unsigned short ADDR18;
    unsigned short ADDR19;
    unsigned short ADDR20;
    char           wk1[22];
    unsigned char  ADSSTR0;
    unsigned char  ADSSTRL;
    char           wk2[14];
    unsigned char  ADSSTRT;
    unsigned char  ADSSTRO;
    char           wk3[1];
    unsigned char  ADSSTR1;
    unsigned char  ADSSTR2;
    unsigned char  ADSSTR3;
    unsigned char  ADSSTR4;
    unsigned char  ADSSTR5;
    unsigned char  ADSSTR6;
    unsigned char  ADSSTR7;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ADNDIS:5;
            unsigned char :3;
        } BIT;
    } ADDISCR;
    char           wk4[5];
    union {
        unsigned short WORD;
        struct {
            unsigned short PGS:1;
            unsigned short GBRSCN:1;
            unsigned short :13;
            unsigned short GBRP:1;
        } BIT;
    } ADGSPCR;
    char           wk5[2];
    unsigned short ADDBLDRA;
    unsigned short ADDBLDRB;
    char           wk6[8];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char WCMPE:1;
            unsigned char CMPIE:1;
        } BIT;
    } ADCMPCR;
    char           wk7[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CMPSTS:1;
            unsigned char CMPSOC:1;
            unsigned char :6;
        } BIT;
    } ADCMPANSER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char CMPLTS:1;
            unsigned char CMPLOC:1;
            unsigned char :6;
        } BIT;
    } ADCMPLER;
    union {
        unsigned short WORD;
        struct {
            unsigned short CMPS0:16;
        } BIT;
    } ADCMPANSR0;
    union {
        unsigned short WORD;
        struct {
            unsigned short CMPS1:5;
            unsigned short :11;
        } BIT;
    } ADCMPANSR1;
    union {
        unsigned short WORD;
        struct {
            unsigned short CMPL0:16;
        } BIT;
    } ADCMPLR0;
    union {
        unsigned short WORD;
        struct {
            unsigned short CMPL1:5;
            unsigned short :11;
        } BIT;
    } ADCMPLR1;
    unsigned short ADCMPDR0;
    unsigned short ADCMPDR1;
    union {
        unsigned short WORD;
        struct {
            unsigned short CMPF0:16;
        } BIT;
    } ADCMPSR0;
    union {
        unsigned short WORD;
        struct {
            unsigned short CMPF1:5;
            unsigned short :11;
        } BIT;
    } ADCMPSR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char CMPFTS:1;
            unsigned char CMPFOC:1;
            unsigned char :6;
        } BIT;
    } ADCMPSER;
};

struct st_sci0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char CKS:2;
            unsigned char MP:1;
            unsigned char STOP:1;
            unsigned char PM:1;
            unsigned char PE:1;
            unsigned char CHR:1;
            unsigned char CM:1;
        } BIT;
    } SMR;
    unsigned char  BRR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char CKE:2;
            unsigned char TEIE:1;
            unsigned char MPIE:1;
            unsigned char RE:1;
            unsigned char TE:1;
            unsigned char RIE:1;
            unsigned char TIE:1;
        } BIT;
    } SCR;
    unsigned char  TDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MPBT:1;
            unsigned char MPB:1;
            unsigned char TEND:1;
            unsigned char PER:1;
            unsigned char FER:1;
            unsigned char ORER:1;
            unsigned char :2;
        } BIT;
    } SSR;
    unsigned char  RDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SMIF:1;
            unsigned char :1;
            unsigned char SINV:1;
            unsigned char SDIR:1;
            unsigned char CHR1:1;
            unsigned char :2;
            unsigned char BCP2:1;
        } BIT;
    } SCMR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ACS0:1;
            unsigned char :1;
            unsigned char BRME:1;
            unsigned char :1;
            unsigned char ABCS:1;
            unsigned char NFEN:1;
            unsigned char BGDM:1;
            unsigned char RXDESEL:1;
        } BIT;
    } SEMR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFCS:3;
            unsigned char :5;
        } BIT;
    } SNFR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IICM:1;
            unsigned char :2;
            unsigned char IICDL:5;
        } BIT;
    } SIMR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IICINTM:1;
            unsigned char IICCSC:1;
            unsigned char :3;
            unsigned char IICACKT:1;
            unsigned char :2;
        } BIT;
    } SIMR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IICSTAREQ:1;
            unsigned char IICRSTAREQ:1;
            unsigned char IICSTPREQ:1;
            unsigned char IICSTIF:1;
            unsigned char IICSDAS:2;
            unsigned char IICSCLS:2;
        } BIT;
    } SIMR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IICACKR:1;
            unsigned char :7;
        } BIT;
    } SISR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SSE:1;
            unsigned char CTSE:1;
            unsigned char MSS:1;
            unsigned char :1;
            unsigned char MFF:1;
            unsigned char :1;
            unsigned char CKPOL:1;
            unsigned char CKPH:1;
        } BIT;
    } SPMR;
    unsigned char  TDRH;
    unsigned char  TDRL;
    unsigned char  RDRH;
    unsigned char  RDRL;
    unsigned char  MDDR;
};

struct st_sci12 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char CKS:2;
            unsigned char MP:1;
            unsigned char STOP:1;
            unsigned char PM:1;
            unsigned char PE:1;
            unsigned char CHR:1;
            unsigned char CM:1;
        } BIT;
    } SMR;
    unsigned char  BRR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char CKE:2;
            unsigned char TEIE:1;
            unsigned char MPIE:1;
            unsigned char RE:1;
            unsigned char TE:1;
            unsigned char RIE:1;
            unsigned char TIE:1;
        } BIT;
    } SCR;
    unsigned char  TDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MPBT:1;
            unsigned char MPB:1;
            unsigned char TEND:1;
            unsigned char PER:1;
            unsigned char FER:1;
            unsigned char ORER:1;
            unsigned char :2;
        } BIT;
    } SSR;
    unsigned char  RDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SMIF:1;
            unsigned char :1;
            unsigned char SINV:1;
            unsigned char SDIR:1;
            unsigned char CHR1:1;
            unsigned char :2;
            unsigned char BCP2:1;
        } BIT;
    } SCMR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ACS0:1;
            unsigned char :1;
            unsigned char BRME:1;
            unsigned char :1;
            unsigned char ABCS:1;
            unsigned char NFEN:1;
            unsigned char BGDM:1;
            unsigned char RXDESEL:1;
        } BIT;
    } SEMR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFCS:3;
            unsigned char :5;
        } BIT;
    } SNFR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IICM:1;
            unsigned char :2;
            unsigned char IICDL:5;
        } BIT;
    } SIMR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IICINTM:1;
            unsigned char IICCSC:1;
            unsigned char :3;
            unsigned char IICACKT:1;
            unsigned char :2;
        } BIT;
    } SIMR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IICSTAREQ:1;
            unsigned char IICRSTAREQ:1;
            unsigned char IICSTPREQ:1;
            unsigned char IICSTIF:1;
            unsigned char IICSDAS:2;
            unsigned char IICSCLS:2;
        } BIT;
    } SIMR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IICACKR:1;
            unsigned char :7;
        } BIT;
    } SISR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SSE:1;
            unsigned char CTSE:1;
            unsigned char MSS:1;
            unsigned char :1;
            unsigned char MFF:1;
            unsigned char :1;
            unsigned char CKPOL:1;
            unsigned char CKPH:1;
        } BIT;
    } SPMR;
    unsigned char  TDRH;
    unsigned char  TDRL;
    unsigned char  RDRH;
    unsigned char  RDRL;
    unsigned char  MDDR;
    char           wk0[13];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ESME:1;
            unsigned char :7;
        } BIT;
    } ESMER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char SFSF:1;
            unsigned char RXDSF:1;
            unsigned char BRME:1;
            unsigned char :4;
        } BIT;
    } CR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BFE:1;
            unsigned char CF0RE:1;
            unsigned char CF1DS:2;
            unsigned char PIBE:1;
            unsigned char PIBS:3;
        } BIT;
    } CR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DFCS:3;
            unsigned char :1;
            unsigned char BCCS:2;
            unsigned char RTS:2;
        } BIT;
    } CR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SDST:1;
            unsigned char :7;
        } BIT;
    } CR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TXDXPS:1;
            unsigned char RXDXPS:1;
            unsigned char :2;
            unsigned char SHARPS:1;
            unsigned char :3;
        } BIT;
    } PCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BFDIE:1;
            unsigned char CF0MIE:1;
            unsigned char CF1MIE:1;
            unsigned char PIBDIE:1;
            unsigned char BCDIE:1;
            unsigned char AEDIE:1;
            unsigned char :2;
        } BIT;
    } ICR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BFDF:1;
            unsigned char CF0MF:1;
            unsigned char CF1MF:1;
            unsigned char PIBDF:1;
            unsigned char BCDF:1;
            unsigned char AEDF:1;
            unsigned char :2;
        } BIT;
    } STR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BFDCL:1;
            unsigned char CF0MCL:1;
            unsigned char CF1MCL:1;
            unsigned char PIBDCL:1;
            unsigned char BCDCL:1;
            unsigned char AEDCL:1;
            unsigned char :2;
        } BIT;
    } STCR;
    unsigned char  CF0DR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char CF0CE0:1;
            unsigned char CF0CE1:1;
            unsigned char CF0CE2:1;
            unsigned char CF0CE3:1;
            unsigned char CF0CE4:1;
            unsigned char CF0CE5:1;
            unsigned char CF0CE6:1;
            unsigned char CF0CE7:1;
        } BIT;
    } CF0CR;
    unsigned char  CF0RR;
    unsigned char  PCF1DR;
    unsigned char  SCF1DR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char CF1CE0:1;
            unsigned char CF1CE1:1;
            unsigned char CF1CE2:1;
            unsigned char CF1CE3:1;
            unsigned char CF1CE4:1;
            unsigned char CF1CE5:1;
            unsigned char CF1CE6:1;
            unsigned char CF1CE7:1;
        } BIT;
    } CF1CR;
    unsigned char  CF1RR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCST:1;
            unsigned char :7;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TOMS:2;
            unsigned char :1;
            unsigned char TWRC:1;
            unsigned char TCSS:3;
            unsigned char :1;
        } BIT;
    } TMR;
    unsigned char  TPRE;
    unsigned char  TCNT;
};

struct st_scif {
    union {
        unsigned short WORD;
        struct {
            unsigned short CKS:2;
            unsigned short :1;
            unsigned short STOP:1;
            unsigned short PM:1;
            unsigned short PE:1;
            unsigned short CHR:1;
            unsigned short CM:1;
            unsigned short :8;
        } BIT;
    } SMR;
    union {
        unsigned char  BRR;
        unsigned char  MDDR;    
    };
    char           wk0[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short CKE:2;
            unsigned short TEIE:1;
            unsigned short REIE:1;
            unsigned short RE:1;
            unsigned short TE:1;
            unsigned short RIE:1;
            unsigned short TIE:1;
            unsigned short :8;
        } BIT;
    } SCR;
    unsigned char  FTDR;
    char           wk1[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short DR:1;
            unsigned short RDF:1;
            unsigned short PER:1;
            unsigned short FER:1;
            unsigned short BRK:1;
            unsigned short TDFE:1;
            unsigned short TEND:1;
            unsigned short ER:1;
            unsigned short :8;
        } BIT;
    } FSR;
    unsigned char  FRDR;
    char           wk2[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short LOOP:1;
            unsigned short RFRST:1;
            unsigned short TFRST:1;
            unsigned short MCE:1;
            unsigned short TTRG:2;
            unsigned short RTRG:2;
            unsigned short RSTRG:3;
            unsigned short :5;
        } BIT;
    } FCR;
    union {
        unsigned short WORD;
        struct {
            unsigned short R:5;
            unsigned short :3;
            unsigned short T:5;
            unsigned short :3;
        } BIT;
    } FDR;
    union {
        unsigned short WORD;
        struct {
            unsigned short SPB2DT:1;
            unsigned short SPB2IO:1;
            unsigned short SCKDT:1;
            unsigned short SCKIO:1;
            unsigned short CTS2DT:1;
            unsigned short CTS2IO:1;
            unsigned short RTS2DT:1;
            unsigned short RTS2IO:1;
            unsigned short :8;
        } BIT;
    } SPTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short ORER:1;
            unsigned short :1;
            unsigned short FER:4;
            unsigned short :2;
            unsigned short PER:4;
            unsigned short :4;
        } BIT;
    } LSR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ABCS0:1;
            unsigned char :1;
            unsigned char NFEN:1;
            unsigned char DIR:1;
            unsigned char MDDRS:1;
            unsigned char BRME:1;
            unsigned char ACS0:1;
            unsigned char BGDM:1;
        } BIT;
    } SEMR;
    char           wk3[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short TFTC:5;
            unsigned short :2;
            unsigned short TTRGS:1;
            unsigned short RFTC:5;
            unsigned short :2;
            unsigned short RTRGS:1;
        } BIT;
    } FTCR;
};

struct st_smci {
    union {
        unsigned char BYTE;
        struct {
            unsigned char CKS:2;
            unsigned char BCP:2;
            unsigned char PM:1;
            unsigned char PE:1;
            unsigned char BLK:1;
            unsigned char GM:1;
        } BIT;
    } SMR;
    char           wk0[3];

    union {
        unsigned char  BRR;
        unsigned char  MDDR;    
    };
    char           wk1[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CKE:2;
            unsigned char TEIE:1;
            unsigned char MPIE:1;
            unsigned char RE:1;
            unsigned char TE:1;
            unsigned char RIE:1;
            unsigned char TIE:1;
        } BIT;
    } SCR;
    char           wk2[3];
    unsigned char  TDR;
    char           wk3[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MPBT:1;
            unsigned char MPB:1;
            unsigned char TEND:1;
            unsigned char PER:1;
            unsigned char ERS:1;
            unsigned char ORER:1;
            unsigned char :2;
        } BIT;
    } SSR;
    char           wk4[3];
    unsigned char  RDR;
    char           wk5[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char SMIF:1;
            unsigned char :1;
            unsigned char SINV:1;
            unsigned char SDIR:1;
            unsigned char CHR1:1;
            unsigned char :2;
            unsigned char BCP2:1;
        } BIT;
    } SCMR;
    char           wk6[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ACS0:1;
            unsigned char :1;
            unsigned char RSDMOS:1;
            unsigned char :1;
            unsigned char ABCS:1;
            unsigned char :1;
            unsigned char MDDRS:1;
            unsigned char BRME:1;
        } BIT;
    } SEMR;
};

struct st_smci0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char CKS:2;
            unsigned char BCP:2;
            unsigned char PM:1;
            unsigned char PE:1;
            unsigned char BLK:1;
            unsigned char GM:1;
        } BIT;
    } SMR;
    unsigned char  BRR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char CKE:2;
            unsigned char TEIE:1;
            unsigned char MPIE:1;
            unsigned char RE:1;
            unsigned char TE:1;
            unsigned char RIE:1;
            unsigned char TIE:1;
        } BIT;
    } SCR;
    unsigned char  TDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MPBT:1;
            unsigned char MPB:1;
            unsigned char TEND:1;
            unsigned char PER:1;
            unsigned char ERS:1;
            unsigned char ORER:1;
            unsigned char :2;
        } BIT;
    } SSR;
    unsigned char  RDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SMIF:1;
            unsigned char :1;
            unsigned char SINV:1;
            unsigned char SDIR:1;
            unsigned char CHR1:1;
            unsigned char :2;
            unsigned char BCP2:1;
        } BIT;
    } SCMR;
};

struct st_src {
    union {
        unsigned long LONG;
        struct {
            unsigned long SRCFCTR:22;
            unsigned long :10;
        } BIT;
    } SRCFCTR[5552];
    char           wk0[2352];
    union {
        unsigned long LONG;
        struct {
            unsigned long B0:1;
            unsigned long B1:1;
            unsigned long B2:1;
            unsigned long B3:1;
            unsigned long B4:1;
            unsigned long B5:1;
            unsigned long B6:1;
            unsigned long B7:1;
            unsigned long B8:1;
            unsigned long B9:1;
            unsigned long B10:1;
            unsigned long B11:1;
            unsigned long B12:1;
            unsigned long B13:1;
            unsigned long B14:1;
            unsigned long B15:1;
            unsigned long B16:1;
            unsigned long B17:1;
            unsigned long B18:1;
            unsigned long B19:1;
            unsigned long B20:1;
            unsigned long B21:1;
            unsigned long B22:1;
            unsigned long B23:1;
            unsigned long B24:1;
            unsigned long B25:1;
            unsigned long B26:1;
            unsigned long B27:1;
            unsigned long B28:1;
            unsigned long B29:1;
            unsigned long B30:1;
            unsigned long B31:1;
        } BIT;
    } SRCID;
    union {
        unsigned long LONG;
        struct {
            unsigned long B0:1;
            unsigned long B1:1;
            unsigned long B2:1;
            unsigned long B3:1;
            unsigned long B4:1;
            unsigned long B5:1;
            unsigned long B6:1;
            unsigned long B7:1;
            unsigned long B8:1;
            unsigned long B9:1;
            unsigned long B10:1;
            unsigned long B11:1;
            unsigned long B12:1;
            unsigned long B13:1;
            unsigned long B14:1;
            unsigned long B15:1;
            unsigned long B16:1;
            unsigned long B17:1;
            unsigned long B18:1;
            unsigned long B19:1;
            unsigned long B20:1;
            unsigned long B21:1;
            unsigned long B22:1;
            unsigned long B23:1;
            unsigned long B24:1;
            unsigned long B25:1;
            unsigned long B26:1;
            unsigned long B27:1;
            unsigned long B28:1;
            unsigned long B29:1;
            unsigned long B30:1;
            unsigned long B31:1;
        } BIT;
    } SRCOD;
    union {
        unsigned short WORD;
        struct {
            unsigned short IFTRG:2;
            unsigned short :6;
            unsigned short IEN:1;
            unsigned short IED:1;
            unsigned short :6;
        } BIT;
    } SRCIDCTRL;
    union {
        unsigned short WORD;
        struct {
            unsigned short OFTRG:2;
            unsigned short :6;
            unsigned short OEN:1;
            unsigned short OED:1;
            unsigned short OCH:1;
            unsigned short :5;
        } BIT;
    } SRCODCTRL;
    union {
        unsigned short WORD;
        struct {
            unsigned short OFS:3;
            unsigned short :1;
            unsigned short IFS:4;
            unsigned short CL:1;
            unsigned short FL:1;
            unsigned short OVEN:1;
            unsigned short UDEN:1;
            unsigned short SRCEN:1;
            unsigned short CEEN:1;
            unsigned short :1;
            unsigned short FICRAE:1;
        } BIT;
    } SRCCTRL;
    union {
        unsigned short WORD;
        struct {
            unsigned short OINT:1;
            unsigned short IINIT:1;
            unsigned short OVF:1;
            unsigned short UDF:1;
            unsigned short FLF:1;
            unsigned short CEF:1;
            unsigned short :2;
            unsigned short IFDN:3;
            unsigned short OFDN:5;
        } BIT;
    } SRCSTAT;
};

struct st_ssi {
    union {
        unsigned long LONG;
        struct {
            unsigned long REN:1;
            unsigned long TEN:1;
            unsigned long :1;
            unsigned long MUEN:1;
            unsigned long CKDV:4;
            unsigned long DEL:1;
            unsigned long PDTA:1;
            unsigned long SDTA:1;
            unsigned long SPDP:1;
            unsigned long SWSP:1;
            unsigned long SCKP:1;
            unsigned long SWSD:1;
            unsigned long SCKD:1;
            unsigned long SWL:3;
            unsigned long DWL:3;
            unsigned long CHNL:2;
            unsigned long :1;
            unsigned long IIEN:1;
            unsigned long ROIEN:1;
            unsigned long RUIEN:1;
            unsigned long TOIEN:1;
            unsigned long TUIEN:1;
            unsigned long CKS:1;
            unsigned long :1;
        } BIT;
    } SSICR;
    union {
        unsigned long LONG;
        struct {
            unsigned long IDST:1;
            unsigned long RSWNO:1;
            unsigned long RCHNO:2;
            unsigned long TSWNO:1;
            unsigned long TCHNO:2;
            unsigned long :18;
            unsigned long IIRQ:1;
            unsigned long ROIRQ:1;
            unsigned long RUIRQ:1;
            unsigned long TOIRQ:1;
            unsigned long TUIRQ:1;
            unsigned long :2;
        } BIT;
    } SSISR;
    char           wk0[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long RFRST:1;
            unsigned long TFRST:1;
            unsigned long RIE:1;
            unsigned long TUE:1;
            unsigned long RTRG:2;
            unsigned long TTRG:2;
            unsigned long :23;
            unsigned long AUCKE:1;
        } BIT;
    } SSIFCR;
    union {
        unsigned long LONG;
        struct {
            unsigned long RDF:1;
            unsigned long :7;
            unsigned long RDC:4;
            unsigned long :4;
            unsigned long TDE:1;
            unsigned long :7;
            unsigned long TDC:4;
            unsigned long :4;
        } BIT;
    } SSIFSR;
    unsigned long  SSIFTDR;
    unsigned long  SSIFRDR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long CONT:1;
            unsigned long :23;
        } BIT;
    } SSITDMR;
};

struct st_system {
    union {
        unsigned short WORD;
        struct {
            unsigned short MD:1;
            unsigned short :15;
        } BIT;
    } MDMONR;
    union {
        unsigned short WORD;
        struct {
            unsigned short :5;
            unsigned short UBTS:1;
            unsigned short :10;
        } BIT;
    } MDSR;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short ROME:1;
            unsigned short EXBE:1;
            unsigned short :6;
            unsigned short KEY:8;
        } BIT;
    } SYSCR0;
    union {
        unsigned short WORD;
        struct {
            unsigned short RAME:1;
            unsigned short :5;
            unsigned short ECCRAME:1;
            unsigned short SBYRAME:1;
            unsigned short :8;
        } BIT;
    } SYSCR1;
    char           wk1[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short :14;
            unsigned short OPE:1;
            unsigned short SSBY:1;
        } BIT;
    } SBYCR;
    char           wk2[2];
    union {
        unsigned long LONG;
        struct {
            unsigned long MSTPA0:1;
            unsigned long MSTPA1:1;
            unsigned long :2;
            unsigned long MSTPA4:1;
            unsigned long MSTPA5:1;
            unsigned long :1;
            unsigned long MSTPA7:1;
            unsigned long :1;
            unsigned long MSTPA9:1;
            unsigned long MSTPA10:1;
            unsigned long MSTPA11:1;
            unsigned long :1;
            unsigned long MSTPA13:1;
            unsigned long MSTPA14:1;
            unsigned long MSTPA15:1;
            unsigned long MSTPA16:1;
            unsigned long MSTPA17:1;
            unsigned long :1;
            unsigned long MSTPA19:1;
            unsigned long :7;
            unsigned long MSTPA27:1;
            unsigned long MSTPA28:1;
            unsigned long MSTPA29:1;
            unsigned long :1;
            unsigned long ACSE:1;
        } BIT;
    } MSTPCRA;
    union {
        unsigned long LONG;
        struct {
            unsigned long MSTPB0:1;
            unsigned long MSTPB1:1;
            unsigned long MSTPB2:1;
            unsigned long :1;
            unsigned long MSTPB4:1;
            unsigned long :1;
            unsigned long MSTPB6:1;
            unsigned long :1;
            unsigned long MSTPB8:1;
            unsigned long MSTPB9:1;
            unsigned long :2;
            unsigned long MSTPB12:1;
            unsigned long :1;
            unsigned long MSTPB14:1;
            unsigned long MSTPB15:1;
            unsigned long :1;
            unsigned long MSTPB17:1;
            unsigned long :1;
            unsigned long MSTPB19:1;
            unsigned long :1;
            unsigned long MSTPB21:1;
            unsigned long MSTPB22:1;
            unsigned long MSTPB23:1;
            unsigned long MSTPB24:1;
            unsigned long MSTPB25:1;
            unsigned long MSTPB26:1;
            unsigned long MSTPB27:1;
            unsigned long MSTPB28:1;
            unsigned long MSTPB29:1;
            unsigned long MSTPB30:1;
            unsigned long MSTPB31:1;
        } BIT;
    } MSTPCRB;
    union {
        unsigned long LONG;
        struct {
            unsigned long MSTPC0:1;
            unsigned long :1;
            unsigned long MSTPC2:1;
            unsigned long :4;
            unsigned long MSTPC7:1;
            unsigned long :9;
            unsigned long MSTPC17:1;
            unsigned long :1;
            unsigned long MSTPC19:1;
            unsigned long :3;
            unsigned long MSTPC23:1;
            unsigned long MSTPC24:1;
            unsigned long MSTPC25:1;
            unsigned long MSTPC26:1;
            unsigned long MSTPC27:1;
            unsigned long :4;
        } BIT;
    } MSTPCRC;
    union {
        unsigned long LONG;
        struct {
            unsigned long :14;
            unsigned long MSTPD14:1;
            unsigned long MSTPD15:1;
            unsigned long :3;
            unsigned long MSTPD19:1;
            unsigned long :1;
            unsigned long MSTPD21:1;
            unsigned long :1;
            unsigned long MSTPD23:1;
            unsigned long :4;
            unsigned long MSTPD28:1;
            unsigned long MSTPD29:1;
            unsigned long MSTPD30:1;
            unsigned long MSTPD31:1;
        } BIT;
    } MSTPCRD;
    union {
        unsigned long LONG;
        struct {
            unsigned long PCKD:4;
            unsigned long PCKC:4;
            unsigned long PCKB:4;
            unsigned long PCKA:4;
            unsigned long BCK:4;
            unsigned long :2;
            unsigned long PSTOP0:1;
            unsigned long PSTOP1:1;
            unsigned long ICK:4;
            unsigned long FCK:4;
        } BIT;
    } SCKCR;
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short UCK:4;
            unsigned short :8;
        } BIT;
    } SCKCR2;
    union {
        unsigned short WORD;
        struct {
            unsigned short CKSEL:3;
            unsigned short :5;
        } BIT;
    } SCKCR3;
    union {
        unsigned short WORD;
        struct {
            unsigned short PLIDIV:2;
            unsigned short :2;
            unsigned short PLLSRCSEL:1;
            unsigned short :3;
            unsigned short STC:6;
            unsigned short :2;
        } BIT;
    } PLLCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PLLEN:1;
            unsigned char :7;
        } BIT;
    } PLLCR2;
    char           wk3[5];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCLKDIV:1;
            unsigned char :7;
        } BIT;
    } BCKCR;
    char           wk4[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MOSTP:1;
            unsigned char :7;
        } BIT;
    } MOSCCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SOSTP:1;
            unsigned char :7;
        } BIT;
    } SOSCCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char LCSTP:1;
            unsigned char :7;
        } BIT;
    } LOCOCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ILCSTP:1;
            unsigned char :7;
        } BIT;
    } ILOCOCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char HCSTP:1;
            unsigned char :7;
        } BIT;
    } HOCOCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char HCFRQ:2;
            unsigned char :6;
        } BIT;
    } HOCOCR2;
    char           wk6[4];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MOOVF:1;
            unsigned char SOOVF:1;
            unsigned char PLOVF:1;
            unsigned char HCOVF:1;
            unsigned char ILCOVF:1;
            unsigned char :3;
        } BIT;
    } OSCOVFSR;
    char           wk7[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char OSTDIE:1;
            unsigned char :6;
            unsigned char OSTDE:1;
        } BIT;
    } OSTDCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char OSTDF:1;
            unsigned char :7;
        } BIT;
    } OSTDSR;
    char           wk8[94];
    union {
        unsigned char BYTE;
        struct {
            unsigned char OPCM:3;
            unsigned char :1;
            unsigned char OPCMTSF:1;
            unsigned char :3;
        } BIT;
    } OPCCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char RSTCKSEL:3;
            unsigned char :4;
            unsigned char RSTCKEN:1;
        } BIT;
    } RSTCKCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MSTS:8;
        } BIT;
    } MOSCWTCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SSTS:8;
        } BIT;
    } SOSCWTCR;
    char           wk9[28];
    union {
        unsigned char BYTE;
        struct {
            unsigned char IWTDRF:1;
            unsigned char WDTRF:1;
            unsigned char SWRF:1;
            unsigned char :5;
        } BIT;
    } RSTSR2;
    char           wk10[1];
    unsigned short SWRR;
    char           wk11[28];
    union {
        unsigned char BYTE;
        struct {
            unsigned char LVD1IDTSEL:2;
            unsigned char LVD1IRQSEL:1;
            unsigned char :5;
        } BIT;
    } LVD1CR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char LVD1DET:1;
            unsigned char LVD1MON:1;
            unsigned char :6;
        } BIT;
    } LVD1SR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char LVD2IDTSEL:2;
            unsigned char LVD2IRQSEL:1;
            unsigned char :5;
        } BIT;
    } LVD2CR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char LVD2DET:1;
            unsigned char LVD2MON:1;
            unsigned char :6;
        } BIT;
    } LVD2SR;
    char           wk12[794];
    union {
        unsigned short WORD;
        struct {
            unsigned short PRC0:1;
            unsigned short PRC1:1;
            unsigned short :1;
            unsigned short PRC3:1;
            unsigned short :4;
            unsigned short PRKEY:8;
        } BIT;
    } PRCR;
    char           wk13[48768];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DEEPCUT:2;
            unsigned char :4;
            unsigned char IOKEEP:1;
            unsigned char DPSBY:1;
        } BIT;
    } DPSBYCR;
    char           wk14[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DIRQ0E:1;
            unsigned char DIRQ1E:1;
            unsigned char DIRQ2E:1;
            unsigned char DIRQ3E:1;
            unsigned char DIRQ4E:1;
            unsigned char DIRQ5E:1;
            unsigned char DIRQ6E:1;
            unsigned char DIRQ7E:1;
        } BIT;
    } DPSIER0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DIRQ8E:1;
            unsigned char DIRQ9E:1;
            unsigned char DIRQ10E:1;
            unsigned char DIRQ11E:1;
            unsigned char DIRQ12E:1;
            unsigned char DIRQ13E:1;
            unsigned char DIRQ14E:1;
            unsigned char DIRQ15E:1;
        } BIT;
    } DPSIER1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DLVD1IE:1;
            unsigned char DLVD2IE:1;
            unsigned char DRTCIIE:1;
            unsigned char DRTCAIE:1;
            unsigned char DNMIE:1;
            unsigned char DRIICDIE:1;
            unsigned char DRIICCIE:1;
            unsigned char DUSBIE:1;
        } BIT;
    } DPSIER2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DCANIE:1;
            unsigned char :7;
        } BIT;
    } DPSIER3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DIRQ0F:1;
            unsigned char DIRQ1F:1;
            unsigned char DIRQ2F:1;
            unsigned char DIRQ3F:1;
            unsigned char DIRQ4F:1;
            unsigned char DIRQ5F:1;
            unsigned char DIRQ6F:1;
            unsigned char DIRQ7F:1;
        } BIT;
    } DPSIFR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DIRQ8F:1;
            unsigned char DIRQ9F:1;
            unsigned char DIRQ10F:1;
            unsigned char DIRQ11F:1;
            unsigned char DIRQ12F:1;
            unsigned char DIRQ13F:1;
            unsigned char DIRQ14F:1;
            unsigned char DIRQ15F:1;
        } BIT;
    } DPSIFR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DLVD1IF:1;
            unsigned char DLVD2IF:1;
            unsigned char DRTCIIF:1;
            unsigned char DRTCAIF:1;
            unsigned char DNMIF:1;
            unsigned char DRIICDIF:1;
            unsigned char DRIICCIF:1;
            unsigned char DUSBIF:1;
        } BIT;
    } DPSIFR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DCANIF:1;
            unsigned char :7;
        } BIT;
    } DPSIFR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DIRQ0EG:1;
            unsigned char DIRQ1EG:1;
            unsigned char DIRQ2EG:1;
            unsigned char DIRQ3EG:1;
            unsigned char DIRQ4EG:1;
            unsigned char DIRQ5EG:1;
            unsigned char DIRQ6EG:1;
            unsigned char DIRQ7EG:1;
        } BIT;
    } DPSIEGR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DIRQ8EG:1;
            unsigned char DIRQ9EG:1;
            unsigned char DIRQ10EG:1;
            unsigned char DIRQ11EG:1;
            unsigned char DIRQ12EG:1;
            unsigned char DIRQ13EG:1;
            unsigned char DIRQ14EG:1;
            unsigned char DIRQ15EG:1;
        } BIT;
    } DPSIEGR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DLVD1EG:1;
            unsigned char DLVD2EG:1;
            unsigned char :2;
            unsigned char DNMIEG:1;
            unsigned char DRIICDEG:1;
            unsigned char DRIICCEG:1;
            unsigned char :1;
        } BIT;
    } DPSIEGR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DCANIEG:1;
            unsigned char :7;
        } BIT;
    } DPSIEGR3;
    char           wk15[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PORF:1;
            unsigned char LVD0RF:1;
            unsigned char LVD1RF:1;
            unsigned char LVD2RF:1;
            unsigned char :3;
            unsigned char DPSRSTF:1;
        } BIT;
    } RSTSR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char CWSF:1;
            unsigned char :7;
        } BIT;
    } RSTSR1;
    char           wk16[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MOFXIN:1;
            unsigned char MODRV:3;
            unsigned char MODRV2:2;
            unsigned char MOSEL:1;
            unsigned char :1;
        } BIT;
    } MOFCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char HOCOPCNT:1;
            unsigned char :7;
        } BIT;
    } HOCOPCR;
    char           wk17[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char LVD1E:1;
            unsigned char LVD2E:1;
            unsigned char :1;
        } BIT;
    } LVCMPCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char LVD1LVL:4;
            unsigned char LVD2LVL:4;
        } BIT;
    } LVDLVLR;
    char           wk18[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char LVD1RIE:1;
            unsigned char LVD1DFDIS:1;
            unsigned char LVD1CMPE:1;
            unsigned char :1;
            unsigned char LVD1FSAMP:2;
            unsigned char LVD1RI:1;
            unsigned char LVD1RN:1;
        } BIT;
    } LVD1CR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char LVD2RIE:1;
            unsigned char LVD2DFDIS:1;
            unsigned char LVD2CMPE:1;
            unsigned char :1;
            unsigned char LVD2FSAMP:2;
            unsigned char LVD2RI:1;
            unsigned char LVD2RN:1;
        } BIT;
    } LVD2CR0;
    char           wk19[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char VBATTMNSEL:1;
            unsigned char :7;
        } BIT;
    } VBATTMNSELR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char VBATTMON:1;
            unsigned char :7;
        } BIT;
    } VBATTMONR;
    char           wk20[1];
    unsigned char  DPSBKR[32];
    char           wk21[7794020];
    union {
        unsigned long LONG;
        struct {
            unsigned long MDE:3;
            unsigned long :29;
        } BIT;
    } MDE;
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long IWDTSTRT:1;
            unsigned long IWDTTOPS:2;
            unsigned long IWDTCKS:4;
            unsigned long IWDTRPES:2;
            unsigned long IWDTRPSS:2;
            unsigned long IWDTRSTIRQS:1;
            unsigned long :1;
            unsigned long IWDTSLCSTP:1;
            unsigned long :2;
            unsigned long WDTSTRT:1;
            unsigned long WDTTOPS:2;
            unsigned long WDTCKS:4;
            unsigned long WDTRPES:2;
            unsigned long WDTRPSS:2;
            unsigned long WDTRSTIRQS:1;
            unsigned long :3;
        } BIT;
    } OFS0;
    union {
        unsigned long LONG;
        struct {
            unsigned long VDSEL:2;
            unsigned long LVDAS:1;
            unsigned long :5;
            unsigned long HOCOEN:1;
            unsigned long :23;
        } BIT;
    } OFS1;
};

struct st_temps {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char TSOE:1;
            unsigned char :2;
            unsigned char TSEN:1;
        } BIT;
    } TSCR;
};

struct st_tmr0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char CCLR:2;
            unsigned char OVIE:1;
            unsigned char CMIEA:1;
            unsigned char CMIEB:1;
        } BIT;
    } TCR;
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char OSA:2;
            unsigned char OSB:2;
            unsigned char ADTE:1;
            unsigned char :3;
        } BIT;
    } TCSR;
    char           wk1[1];
    unsigned char  TCORA;
    char           wk2[1];
    unsigned char  TCORB;
    char           wk3[1];
    unsigned char  TCNT;
    char           wk4[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CKS:3;
            unsigned char CSS:2;
            unsigned char :2;
            unsigned char TMRIS:1;
        } BIT;
    } TCCR;
    char           wk5[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCS:1;
            unsigned char :7;
        } BIT;
    } TCSTR;
};

struct st_tmr1 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char CCLR:2;
            unsigned char OVIE:1;
            unsigned char CMIEA:1;
            unsigned char CMIEB:1;
        } BIT;
    } TCR;
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char OSA:2;
            unsigned char OSB:2;
            unsigned char :4;
        } BIT;
    } TCSR;
    char           wk1[1];
    unsigned char  TCORA;
    char           wk2[1];
    unsigned char  TCORB;
    char           wk3[1];
    unsigned char  TCNT;
    char           wk4[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CKS:3;
            unsigned char CSS:2;
            unsigned char :2;
            unsigned char TMRIS:1;
        } BIT;
    } TCCR;
};

struct st_tmr01 {
    unsigned short TCORA;
    unsigned short TCORB;
    unsigned short TCNT;
    unsigned short TCCR;
};

struct st_tpu0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFAEN:1;
            unsigned char NFBEN:1;
            unsigned char NFCEN:1;
            unsigned char NFDEN:1;
            unsigned char NFCS:2;
            unsigned char :2;
        } BIT;
    } NFCR;
    char           wk0[7];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:3;
            unsigned char CKEG:2;
            unsigned char CCLR:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MD:4;
            unsigned char BFA:1;
            unsigned char BFB:1;
            unsigned char ICSELB:1;
            unsigned char ICSELD:1;
        } BIT;
    } TMDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOA:4;
            unsigned char IOB:4;
        } BIT;
    } TIORH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOC:4;
            unsigned char IOD:4;
        } BIT;
    } TIORL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGIEA:1;
            unsigned char TGIEB:1;
            unsigned char TGIEC:1;
            unsigned char TGIED:1;
            unsigned char TCIEV:1;
            unsigned char :2;
            unsigned char TTGE:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGFA:1;
            unsigned char TGFB:1;
            unsigned char TGFC:1;
            unsigned char TGFD:1;
            unsigned char TCFV:1;
            unsigned char TCFU:1;
            unsigned char :1;
            unsigned char TCFD:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
    unsigned short TGRC;
    unsigned short TGRD;
};

struct st_tpu1 {
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFAEN:1;
            unsigned char NFBEN:1;
            unsigned char NFCEN:1;
            unsigned char NFDEN:1;
            unsigned char NFCS:2;
            unsigned char :2;
        } BIT;
    } NFCR;
    char           wk1[22];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:3;
            unsigned char CKEG:2;
            unsigned char CCLR:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MD:4;
            unsigned char BFA:1;
            unsigned char BFB:1;
            unsigned char ICSELB:1;
            unsigned char ICSELD:1;
        } BIT;
    } TMDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOA:4;
            unsigned char IOB:4;
        } BIT;
    } TIOR;
    char           wk2[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGIEA:1;
            unsigned char TGIEB:1;
            unsigned char TGIEC:1;
            unsigned char TGIED:1;
            unsigned char TCIEV:1;
            unsigned char TCIEU:1;
            unsigned char :1;
            unsigned char TTGE:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGFA:1;
            unsigned char TGFB:1;
            unsigned char TGFC:1;
            unsigned char TGFD:1;
            unsigned char TCFV:1;
            unsigned char TCFU:1;
            unsigned char :1;
            unsigned char TCFD:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
};

struct st_tpu2 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFAEN:1;
            unsigned char NFBEN:1;
            unsigned char NFCEN:1;
            unsigned char NFDEN:1;
            unsigned char NFCS:2;
            unsigned char :2;
        } BIT;
    } NFCR;
    char           wk0[37];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:3;
            unsigned char CKEG:2;
            unsigned char CCLR:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MD:4;
            unsigned char BFA:1;
            unsigned char BFB:1;
            unsigned char ICSELB:1;
            unsigned char ICSELD:1;
        } BIT;
    } TMDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOA:4;
            unsigned char IOB:4;
        } BIT;
    } TIOR;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGIEA:1;
            unsigned char TGIEB:1;
            unsigned char TGIEC:1;
            unsigned char TGIED:1;
            unsigned char TCIEV:1;
            unsigned char TCIEU:1;
            unsigned char :1;
            unsigned char TTGE:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGFA:1;
            unsigned char TGFB:1;
            unsigned char TGFC:1;
            unsigned char TGFD:1;
            unsigned char TCFV:1;
            unsigned char TCFU:1;
            unsigned char :1;
            unsigned char TCFD:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
};

struct st_tpu3 {
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFAEN:1;
            unsigned char NFBEN:1;
            unsigned char NFCEN:1;
            unsigned char NFDEN:1;
            unsigned char NFCS:2;
            unsigned char :2;
        } BIT;
    } NFCR;
    char           wk1[52];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:3;
            unsigned char CKEG:2;
            unsigned char CCLR:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MD:4;
            unsigned char BFA:1;
            unsigned char BFB:1;
            unsigned char ICSELB:1;
            unsigned char ICSELD:1;
        } BIT;
    } TMDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOA:4;
            unsigned char IOB:4;
        } BIT;
    } TIORH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOC:4;
            unsigned char IOD:4;
        } BIT;
    } TIORL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGIEA:1;
            unsigned char TGIEB:1;
            unsigned char TGIEC:1;
            unsigned char TGIED:1;
            unsigned char TCIEV:1;
            unsigned char TCIEU:1;
            unsigned char :1;
            unsigned char TTGE:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGFA:1;
            unsigned char TGFB:1;
            unsigned char TGFC:1;
            unsigned char TGFD:1;
            unsigned char TCFV:1;
            unsigned char TCFU:1;
            unsigned char :1;
            unsigned char TCFD:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
    unsigned short TGRC;
    unsigned short TGRD;
};

struct st_tpu4 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFAEN:1;
            unsigned char NFBEN:1;
            unsigned char NFCEN:1;
            unsigned char NFDEN:1;
            unsigned char NFCS:2;
            unsigned char :2;
        } BIT;
    } NFCR;
    char           wk0[67];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:3;
            unsigned char CKEG:2;
            unsigned char CCLR:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MD:4;
            unsigned char BFA:1;
            unsigned char BFB:1;
            unsigned char ICSELB:1;
            unsigned char ICSELD:1;
        } BIT;
    } TMDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOA:4;
            unsigned char IOB:4;
        } BIT;
    } TIOR;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGIEA:1;
            unsigned char TGIEB:1;
            unsigned char TGIEC:1;
            unsigned char TGIED:1;
            unsigned char TCIEV:1;
            unsigned char TCIEU:1;
            unsigned char :1;
            unsigned char TTGE:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGFA:1;
            unsigned char TGFB:1;
            unsigned char TGFC:1;
            unsigned char TGFD:1;
            unsigned char TCFV:1;
            unsigned char TCFU:1;
            unsigned char :1;
            unsigned char TCFD:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
};

struct st_tpu5 {
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char NFAEN:1;
            unsigned char NFBEN:1;
            unsigned char NFCEN:1;
            unsigned char NFDEN:1;
            unsigned char NFCS:2;
            unsigned char :2;
        } BIT;
    } NFCR;
    char           wk1[82];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPSC:3;
            unsigned char CKEG:2;
            unsigned char CCLR:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MD:4;
            unsigned char BFA:1;
            unsigned char BFB:1;
            unsigned char ICSELB:1;
            unsigned char ICSELD:1;
        } BIT;
    } TMDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOA:4;
            unsigned char IOB:4;
        } BIT;
    } TIOR;
    char           wk2[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGIEA:1;
            unsigned char TGIEB:1;
            unsigned char TGIEC:1;
            unsigned char TGIED:1;
            unsigned char TCIEV:1;
            unsigned char TCIEU:1;
            unsigned char :1;
            unsigned char TTGE:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TGFA:1;
            unsigned char TGFB:1;
            unsigned char TGFC:1;
            unsigned char TGFD:1;
            unsigned char TCFV:1;
            unsigned char TCFU:1;
            unsigned char :1;
            unsigned char TCFD:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
};

struct st_tpua {
    union {
        unsigned char BYTE;
        struct {
            unsigned char CST0:1;
            unsigned char CST1:1;
            unsigned char CST2:1;
            unsigned char CST3:1;
            unsigned char CST4:1;
            unsigned char CST5:1;
            unsigned char :2;
        } BIT;
    } TSTR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SYNC0:1;
            unsigned char SYNC1:1;
            unsigned char SYNC2:1;
            unsigned char SYNC3:1;
            unsigned char SYNC4:1;
            unsigned char SYNC5:1;
            unsigned char :2;
        } BIT;
    } TSYR;
};

struct st_usb {
    union {
        unsigned long LONG;
        struct {
            unsigned long SRPC0:1;
            unsigned long RPUE0:1;
            unsigned long :1;
            unsigned long DRPD0:1;
            unsigned long FIXPHY0:1;
            unsigned long :11;
            unsigned long DP0:1;
            unsigned long DM0:1;
            unsigned long :2;
            unsigned long DOVCA0:1;
            unsigned long DOVCB0:1;
            unsigned long :1;
            unsigned long DVBSTS0:1;
            unsigned long :8;
        } BIT;
    } DPUSR0R;
    union {
        unsigned long LONG;
        struct {
            unsigned long DPINTE0:1;
            unsigned long DMINTE0:1;
            unsigned long :2;
            unsigned long DOVRCRAE0:1;
            unsigned long DOVRCRBE0:1;
            unsigned long :1;
            unsigned long DVBSE0:1;
            unsigned long :8;
            unsigned long DPINT0:1;
            unsigned long DMINT0:1;
            unsigned long :2;
            unsigned long DOVRCRA0:1;
            unsigned long DOVRCRB0:1;
            unsigned long :1;
            unsigned long DVBINT0:1;
            unsigned long :8;
        } BIT;
    } DPUSR1R;
};

struct st_usb0 {
    union {
        unsigned short WORD;
        struct {
            unsigned short USBE:1;
            unsigned short :3;
            unsigned short DPRPU:1;
            unsigned short DRPD:1;
            unsigned short DCFM:1;
            unsigned short :3;
            unsigned short SCKE:1;
            unsigned short :5;
        } BIT;
    } SYSCFG;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short LNST:2;
            unsigned short IDMON:1;
            unsigned short :3;
            unsigned short HTACT:1;
            unsigned short :7;
            unsigned short OVCMON:2;
        } BIT;
    } SYSSTS0;
    char           wk1[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short RHST:3;
            unsigned short :1;
            unsigned short UACT:1;
            unsigned short RESUME:1;
            unsigned short USBRST:1;
            unsigned short RWUPE:1;
            unsigned short WKUP:1;
            unsigned short VBUSEN:1;
            unsigned short EXICEN:1;
            unsigned short HNPBTOA:1;
            unsigned short :4;
        } BIT;
    } DVSTCTR0;
    char           wk2[10];
    unsigned short CFIFO;
    char           wk3[2];
    unsigned short D0FIFO;
    char           wk4[2];
    unsigned short D1FIFO;
    char           wk5[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short CURPIPE:4;
            unsigned short :1;
            unsigned short ISEL:1;
            unsigned short :2;
            unsigned short BIGEND:1;
            unsigned short :1;
            unsigned short MBW:1;
            unsigned short :3;
            unsigned short REW:1;
            unsigned short RCNT:1;
        } BIT;
    } CFIFOSEL;
    union {
        unsigned short WORD;
        struct {
            unsigned short DTLN:9;
            unsigned short :4;
            unsigned short FRDY:1;
            unsigned short BCLR:1;
            unsigned short BVAL:1;
        } BIT;
    } CFIFOCTR;
    char           wk6[4];
    union {
        unsigned short WORD;
        struct {
            unsigned short CURPIPE:4;
            unsigned short :4;
            unsigned short BIGEND:1;
            unsigned short :1;
            unsigned short MBW:1;
            unsigned short :1;
            unsigned short DREQE:1;
            unsigned short DCLRM:1;
            unsigned short REW:1;
            unsigned short RCNT:1;
        } BIT;
    } D0FIFOSEL;
    union {
        unsigned short WORD;
        struct {
            unsigned short DTLN:9;
            unsigned short :4;
            unsigned short FRDY:1;
            unsigned short BCLR:1;
            unsigned short BVAL:1;
        } BIT;
    } D0FIFOCTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short CURPIPE:4;
            unsigned short :4;
            unsigned short BIGEND:1;
            unsigned short :1;
            unsigned short MBW:1;
            unsigned short :1;
            unsigned short DREQE:1;
            unsigned short DCLRM:1;
            unsigned short REW:1;
            unsigned short RCNT:1;
        } BIT;
    } D1FIFOSEL;
    union {
        unsigned short WORD;
        struct {
            unsigned short DTLN:9;
            unsigned short :4;
            unsigned short FRDY:1;
            unsigned short BCLR:1;
            unsigned short BVAL:1;
        } BIT;
    } D1FIFOCTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short BRDYE:1;
            unsigned short NRDYE:1;
            unsigned short BEMPE:1;
            unsigned short CTRE:1;
            unsigned short DVSE:1;
            unsigned short SOFE:1;
            unsigned short RSME:1;
            unsigned short VBSE:1;
        } BIT;
    } INTENB0;
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short SACKE:1;
            unsigned short SIGNE:1;
            unsigned short EOFERRE:1;
            unsigned short :4;
            unsigned short ATTCHE:1;
            unsigned short DTCHE:1;
            unsigned short :1;
            unsigned short BCHGE:1;
            unsigned short OVRCRE:1;
        } BIT;
    } INTENB1;
    char           wk7[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short PIPE0BRDYE:1;
            unsigned short PIPE1BRDYE:1;
            unsigned short PIPE2BRDYE:1;
            unsigned short PIPE3BRDYE:1;
            unsigned short PIPE4BRDYE:1;
            unsigned short PIPE5BRDYE:1;
            unsigned short PIPE6BRDYE:1;
            unsigned short PIPE7BRDYE:1;
            unsigned short PIPE8BRDYE:1;
            unsigned short PIPE9BRDYE:1;
            unsigned short :6;
        } BIT;
    } BRDYENB;
    union {
        unsigned short WORD;
        struct {
            unsigned short PIPE0NRDYE:1;
            unsigned short PIPE1NRDYE:1;
            unsigned short PIPE2NRDYE:1;
            unsigned short PIPE3NRDYE:1;
            unsigned short PIPE4NRDYE:1;
            unsigned short PIPE5NRDYE:1;
            unsigned short PIPE6NRDYE:1;
            unsigned short PIPE7NRDYE:1;
            unsigned short PIPE8NRDYE:1;
            unsigned short PIPE9NRDYE:1;
            unsigned short :6;
        } BIT;
    } NRDYENB;
    union {
        unsigned short WORD;
        struct {
            unsigned short PIPE0BEMPE:1;
            unsigned short PIPE1BEMPE:1;
            unsigned short PIPE2BEMPE:1;
            unsigned short PIPE3BEMPE:1;
            unsigned short PIPE4BEMPE:1;
            unsigned short PIPE5BEMPE:1;
            unsigned short PIPE6BEMPE:1;
            unsigned short PIPE7BEMPE:1;
            unsigned short PIPE8BEMPE:1;
            unsigned short PIPE9BEMPE:1;
            unsigned short :6;
        } BIT;
    } BEMPENB;
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short EDGESTS:1;
            unsigned short :1;
            unsigned short BRDYM:1;
            unsigned short :1;
            unsigned short TRNENSEL:1;
            unsigned short :7;
        } BIT;
    } SOFCFG;
    char           wk8[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short CTSQ:3;
            unsigned short VALID:1;
            unsigned short DVSQ:3;
            unsigned short VBSTS:1;
            unsigned short BRDY:1;
            unsigned short NRDY:1;
            unsigned short BEMP:1;
            unsigned short CTRT:1;
            unsigned short DVST:1;
            unsigned short SOFR:1;
            unsigned short RESM:1;
            unsigned short VBINT:1;
        } BIT;
    } INTSTS0;
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short SACK:1;
            unsigned short SIGN:1;
            unsigned short EOFERR:1;
            unsigned short :4;
            unsigned short ATTCH:1;
            unsigned short DTCH:1;
            unsigned short :1;
            unsigned short BCHG:1;
            unsigned short OVRCR:1;
        } BIT;
    } INTSTS1;
    char           wk9[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short PIPE0BRDY:1;
            unsigned short PIPE1BRDY:1;
            unsigned short PIPE2BRDY:1;
            unsigned short PIPE3BRDY:1;
            unsigned short PIPE4BRDY:1;
            unsigned short PIPE5BRDY:1;
            unsigned short PIPE6BRDY:1;
            unsigned short PIPE7BRDY:1;
            unsigned short PIPE8BRDY:1;
            unsigned short PIPE9BRDY:1;
            unsigned short :6;
        } BIT;
    } BRDYSTS;
    union {
        unsigned short WORD;
        struct {
            unsigned short PIPE0NRDY:1;
            unsigned short PIPE1NRDY:1;
            unsigned short PIPE2NRDY:1;
            unsigned short PIPE3NRDY:1;
            unsigned short PIPE4NRDY:1;
            unsigned short PIPE5NRDY:1;
            unsigned short PIPE6NRDY:1;
            unsigned short PIPE7NRDY:1;
            unsigned short PIPE8NRDY:1;
            unsigned short PIPE9NRDY:1;
            unsigned short :6;
        } BIT;
    } NRDYSTS;
    union {
        unsigned short WORD;
        struct {
            unsigned short PIPE0BEMP:1;
            unsigned short PIPE1BEMP:1;
            unsigned short PIPE2BEMP:1;
            unsigned short PIPE3BEMP:1;
            unsigned short PIPE4BEMP:1;
            unsigned short PIPE5BEMP:1;
            unsigned short PIPE6BEMP:1;
            unsigned short PIPE7BEMP:1;
            unsigned short PIPE8BEMP:1;
            unsigned short PIPE9BEMP:1;
            unsigned short :6;
        } BIT;
    } BEMPSTS;
    union {
        unsigned short WORD;
        struct {
            unsigned short FRNM:11;
            unsigned short :3;
            unsigned short CRCE:1;
            unsigned short OVRN:1;
        } BIT;
    } FRMNUM;
    union {
        unsigned short WORD;
        struct {
            unsigned short :15;
            unsigned short DVCHG:1;
        } BIT;
    } DVCHGR;
    union {
        unsigned short WORD;
        struct {
            unsigned short USBADDR:7;
            unsigned short :1;
            unsigned short STSRECOV:4;
            unsigned short :4;
        } BIT;
    } USBADDR;
    char           wk10[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short BMREQUESTTYPE:8;
            unsigned short BREQUEST:8;
        } BIT;
    } USBREQ;
    unsigned short USBVAL;
    unsigned short USBINDX;
    unsigned short USBLENG;
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short DIR:1;
            unsigned short :2;
            unsigned short SHTNAK:1;
            unsigned short :8;
        } BIT;
    } DCPCFG;
    union {
        unsigned short WORD;
        struct {
            unsigned short MXPS:7;
            unsigned short :5;
            unsigned short DEVSEL:4;
        } BIT;
    } DCPMAXP;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short CCPL:1;
            unsigned short :2;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short :2;
            unsigned short SUREQCLR:1;
            unsigned short :2;
            unsigned short SUREQ:1;
            unsigned short BSTS:1;
        } BIT;
    } DCPCTR;
    char           wk11[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short PIPESEL:4;
            unsigned short :12;
        } BIT;
    } PIPESEL;
    char           wk12[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short EPNUM:4;
            unsigned short DIR:1;
            unsigned short :2;
            unsigned short SHTNAK:1;
            unsigned short :1;
            unsigned short DBLB:1;
            unsigned short BFRE:1;
            unsigned short :3;
            unsigned short TYPE:2;
        } BIT;
    } PIPECFG;
    char           wk13[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short MXPS:9;
            unsigned short :3;
            unsigned short DEVSEL:4;
        } BIT;
    } PIPEMAXP;
    union {
        unsigned short WORD;
        struct {
            unsigned short IITV:3;
            unsigned short :9;
            unsigned short IFIS:1;
            unsigned short :3;
        } BIT;
    } PIPEPERI;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short ATREPM:1;
            unsigned short :3;
            unsigned short INBUFM:1;
            unsigned short BSTS:1;
        } BIT;
    } PIPE1CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short ATREPM:1;
            unsigned short :3;
            unsigned short INBUFM:1;
            unsigned short BSTS:1;
        } BIT;
    } PIPE2CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short ATREPM:1;
            unsigned short :3;
            unsigned short INBUFM:1;
            unsigned short BSTS:1;
        } BIT;
    } PIPE3CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short ATREPM:1;
            unsigned short :3;
            unsigned short INBUFM:1;
            unsigned short BSTS:1;
        } BIT;
    } PIPE4CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short ATREPM:1;
            unsigned short :3;
            unsigned short INBUFM:1;
            unsigned short BSTS:1;
        } BIT;
    } PIPE5CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short :5;
            unsigned short BSTS:1;
        } BIT;
    } PIPE6CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short :5;
            unsigned short BSTS:1;
        } BIT;
    } PIPE7CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short :5;
            unsigned short BSTS:1;
        } BIT;
    } PIPE8CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short :5;
            unsigned short BSTS:1;
        } BIT;
    } PIPE9CTR;
    char           wk14[14];
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short TRCLR:1;
            unsigned short TRENB:1;
            unsigned short :6;
        } BIT;
    } PIPE1TRE;
    unsigned short PIPE1TRN;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short TRCLR:1;
            unsigned short TRENB:1;
            unsigned short :6;
        } BIT;
    } PIPE2TRE;
    unsigned short PIPE2TRN;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short TRCLR:1;
            unsigned short TRENB:1;
            unsigned short :6;
        } BIT;
    } PIPE3TRE;
    unsigned short PIPE3TRN;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short TRCLR:1;
            unsigned short TRENB:1;
            unsigned short :6;
        } BIT;
    } PIPE4TRE;
    unsigned short PIPE4TRN;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short TRCLR:1;
            unsigned short TRENB:1;
            unsigned short :6;
        } BIT;
    } PIPE5TRE;
    unsigned short PIPE5TRN;
    char           wk15[44];
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short USBSPD:2;
            unsigned short :8;
        } BIT;
    } DEVADD0;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short USBSPD:2;
            unsigned short :8;
        } BIT;
    } DEVADD1;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short USBSPD:2;
            unsigned short :8;
        } BIT;
    } DEVADD2;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short USBSPD:2;
            unsigned short :8;
        } BIT;
    } DEVADD3;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short USBSPD:2;
            unsigned short :8;
        } BIT;
    } DEVADD4;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short USBSPD:2;
            unsigned short :8;
        } BIT;
    } DEVADD5;
    char           wk16[20];
    union {
        unsigned long LONG;
        struct {
            unsigned long SLEWR00:1;
            unsigned long SLEWR01:1;
            unsigned long SLEWF00:1;
            unsigned long SLEWF01:1;
            unsigned long :2;
            unsigned long USBSPD:2;
            unsigned long :24;
        } BIT;
    } DPUSR2R;
};

struct st_usbhs {
    union {
        unsigned short WORD;
        struct {
            unsigned short USBE:1;
            unsigned short :3;
            unsigned short DPRPU:1;
            unsigned short DRPD:1;
            unsigned short DCFM:1;
            unsigned short HSE:1;
            unsigned short CNEN:1;
            unsigned short :7;
        } BIT;
    } SYSCFG;
    union {
        unsigned short WORD;
        struct {
            unsigned short BWAIT:4;
            unsigned short :12;
        } BIT;
    } BUSWAIT;
    union {
        unsigned short WORD;
        struct {
            unsigned short LNST:2;
            unsigned short IDMON:1;
            unsigned short :3;
            unsigned short HTACT:1;
            unsigned short :7;
            unsigned short OVCMON:2;
        } BIT;
    } SYSSTS0;
    union {
        unsigned short WORD;
        struct {
            unsigned short PLLLOCK:1;
            unsigned short :15;
        } BIT;
    } PLLSTA;
    union {
        unsigned short WORD;
        struct {
            unsigned short RHST:3;
            unsigned short :1;
            unsigned short UACT:1;
            unsigned short RESUME:1;
            unsigned short USBRST:1;
            unsigned short RWUPE:1;
            unsigned short WKUP:1;
            unsigned short VBUSEN:1;
            unsigned short EXICEN:1;
            unsigned short HNPBTOA:1;
            unsigned short :4;
        } BIT;
    } DVSTCTR0;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short UTST:4;
            unsigned short :12;
        } BIT;
    } TESTMODE;
    char           wk1[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short TENDE:1;
            unsigned short :7;
            unsigned short DFACC:2;
            unsigned short :2;
        } BIT;
    } D0FBCFG;
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short TENDE:1;
            unsigned short :7;
            unsigned short DFACC:2;
            unsigned short :2;
        } BIT;
    } D1FBCFG;
    unsigned short CFIFO;
    unsigned short CFIFO1;
    unsigned short D0FIFO;
    unsigned short D0FIFO1;
    unsigned short D1FIFO;
    unsigned short D1FIFO1;
    union {
        unsigned short WORD;
        struct {
            unsigned short CURPIPE:4;
            unsigned short :1;
            unsigned short ISEL:1;
            unsigned short :2;
            unsigned short BIGEND:1;
            unsigned short :1;
            unsigned short MBW:2;
            unsigned short :2;
            unsigned short REW:1;
            unsigned short RCNT:1;
        } BIT;
    } CFIFOSEL;
    union {
        unsigned short WORD;
        struct {
            unsigned short DTLN:12;
            unsigned short :1;
            unsigned short FRDY:1;
            unsigned short BCLR:1;
            unsigned short BVAL:1;
        } BIT;
    } CFIFOCTR;
    char           wk2[4];
    union {
        unsigned short WORD;
        struct {
            unsigned short CURPIPE:4;
            unsigned short :4;
            unsigned short BIGEND:1;
            unsigned short :1;
            unsigned short MBW:2;
            unsigned short DREQE:1;
            unsigned short DCLRM:1;
            unsigned short REW:1;
            unsigned short RCNT:1;
        } BIT;
    } D0FIFOSEL;
    union {
        unsigned short WORD;
        struct {
            unsigned short DTLN:12;
            unsigned short :1;
            unsigned short FRDY:1;
            unsigned short BCLR:1;
            unsigned short BVAL:1;
        } BIT;
    } D0FIFOCTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short CURPIPE:4;
            unsigned short :4;
            unsigned short BIGEND:1;
            unsigned short :1;
            unsigned short MBW:2;
            unsigned short DREQE:1;
            unsigned short DCLRM:1;
            unsigned short REW:1;
            unsigned short RCNT:1;
        } BIT;
    } D1FIFOSEL;
    union {
        unsigned short WORD;
        struct {
            unsigned short DTLN:12;
            unsigned short :1;
            unsigned short FRDY:1;
            unsigned short BCLR:1;
            unsigned short BVAL:1;
        } BIT;
    } D1FIFOCTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short BRDYE:1;
            unsigned short NRDYE:1;
            unsigned short BEMPE:1;
            unsigned short CTRE:1;
            unsigned short DVSE:1;
            unsigned short SOFE:1;
            unsigned short RSME:1;
            unsigned short VBSE:1;
        } BIT;
    } INTENB0;
    union {
        unsigned short WORD;
        struct {
            unsigned short PDDETINTE:1;
            unsigned short :3;
            unsigned short SACKE:1;
            unsigned short SIGNE:1;
            unsigned short EOFERRE:1;
            unsigned short :1;
            unsigned short LPMENDE:1;
            unsigned short L1RSMENDE:1;
            unsigned short :1;
            unsigned short ATTCHE:1;
            unsigned short DTCHE:1;
            unsigned short :1;
            unsigned short BCHGE:1;
            unsigned short OVRCRE:1;
        } BIT;
    } INTENB1;
    char           wk3[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short PIPE0BRDYE:1;
            unsigned short PIPE1BRDYE:1;
            unsigned short PIPE2BRDYE:1;
            unsigned short PIPE3BRDYE:1;
            unsigned short PIPE4BRDYE:1;
            unsigned short PIPE5BRDYE:1;
            unsigned short PIPE6BRDYE:1;
            unsigned short PIPE7BRDYE:1;
            unsigned short PIPE8BRDYE:1;
            unsigned short PIPE9BRDYE:1;
            unsigned short :6;
        } BIT;
    } BRDYENB;
    union {
        unsigned short WORD;
        struct {
            unsigned short PIPE0NRDYE:1;
            unsigned short PIPE1NRDYE:1;
            unsigned short PIPE2NRDYE:1;
            unsigned short PIPE3NRDYE:1;
            unsigned short PIPE4NRDYE:1;
            unsigned short PIPE5NRDYE:1;
            unsigned short PIPE6NRDYE:1;
            unsigned short PIPE7NRDYE:1;
            unsigned short PIPE8NRDYE:1;
            unsigned short PIPE9NRDYE:1;
            unsigned short :6;
        } BIT;
    } NRDYENB;
    union {
        unsigned short WORD;
        struct {
            unsigned short PIPE0BEMPE:1;
            unsigned short PIPE1BEMPE:1;
            unsigned short PIPE2BEMPE:1;
            unsigned short PIPE3BEMPE:1;
            unsigned short PIPE4BEMPE:1;
            unsigned short PIPE5BEMPE:1;
            unsigned short PIPE6BEMPE:1;
            unsigned short PIPE7BEMPE:1;
            unsigned short PIPE8BEMPE:1;
            unsigned short PIPE9BEMPE:1;
            unsigned short :6;
        } BIT;
    } BEMPENB;
    union {
        unsigned short WORD;
        struct {
            unsigned short :2;
            unsigned short SOFM:2;
            unsigned short EDGESTS:1;
            unsigned short INTL:1;
            unsigned short BRDYM:1;
            unsigned short :1;
            unsigned short TRNENSEL:1;
            unsigned short :7;
        } BIT;
    } SOFCFG;
    union {
        unsigned short WORD;
        struct {
            unsigned short dirpd:1;
            unsigned short pllreset:1;
            unsigned short :1;
            unsigned short cdpen:1;
            unsigned short clksel0:1;
            unsigned short clksel1:1;
            unsigned short :2;
            unsigned short repsel0:1;
            unsigned short repsel1:1;
            unsigned short :1;
            unsigned short repstart:1;
            unsigned short :3;
            unsigned short HSEB:1;
        } BIT;
    } PHYSET;
    union {
        unsigned short WORD;
        struct {
            unsigned short CTSQ:3;
            unsigned short VALID:1;
            unsigned short DVSQ:3;
            unsigned short VBSTS:1;
            unsigned short BRDY:1;
            unsigned short NRDY:1;
            unsigned short BEMP:1;
            unsigned short CTRT:1;
            unsigned short DVST:1;
            unsigned short SOFR:1;
            unsigned short RESM:1;
            unsigned short VBINT:1;
        } BIT;
    } INTSTS0;
    union {
        unsigned short WORD;
        struct {
            unsigned short PDDETINT:1;
            unsigned short :3;
            unsigned short SACK:1;
            unsigned short SIGN:1;
            unsigned short EOFERR:1;
            unsigned short :1;
            unsigned short LPMEND:1;
            unsigned short L1RSMEND:1;
            unsigned short :1;
            unsigned short ATTCH:1;
            unsigned short DTCH:1;
            unsigned short :1;
            unsigned short BCHG:1;
            unsigned short OVRCR:1;
        } BIT;
    } INTSTS1;
    char           wk4[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short PIPE0BRDY:1;
            unsigned short PIPE1BRDY:1;
            unsigned short PIPE2BRDY:1;
            unsigned short PIPE3BRDY:1;
            unsigned short PIPE4BRDY:1;
            unsigned short PIPE5BRDY:1;
            unsigned short PIPE6BRDY:1;
            unsigned short PIPE7BRDY:1;
            unsigned short PIPE8BRDY:1;
            unsigned short PIPE9BRDY:1;
            unsigned short :6;
        } BIT;
    } BRDYSTS;
    union {
        unsigned short WORD;
        struct {
            unsigned short PIPE0NRDYE:1;
            unsigned short PIPE1NRDYE:1;
            unsigned short PIPE2NRDYE:1;
            unsigned short PIPE3NRDYE:1;
            unsigned short PIPE4NRDYE:1;
            unsigned short PIPE5NRDYE:1;
            unsigned short PIPE6NRDYE:1;
            unsigned short PIPE7NRDYE:1;
            unsigned short PIPE8NRDYE:1;
            unsigned short PIPE9NRDYE:1;
            unsigned short :6;
        } BIT;
    } NRDYSTS;
    union {
        unsigned short WORD;
        struct {
            unsigned short PIPE0BENP:1;
            unsigned short PIPE1BENP:1;
            unsigned short PIPE2BENP:1;
            unsigned short PIPE3BENP:1;
            unsigned short PIPE4BENP:1;
            unsigned short PIPE5BENP:1;
            unsigned short PIPE6BENP:1;
            unsigned short PIPE7BENP:1;
            unsigned short PIPE8BEMPE:1;
            unsigned short PIPE9BEMPE:1;
            unsigned short :6;
        } BIT;
    } BEMPSTS;
    union {
        unsigned short WORD;
        struct {
            unsigned short FRNM:11;
            unsigned short :3;
            unsigned short CRCE:1;
            unsigned short OVRN:1;
        } BIT;
    } FRMNUM;
    union {
        unsigned short WORD;
        struct {
            unsigned short UFRNM:3;
            unsigned short :13;
        } BIT;
    } UFRMNUM;
    union {
        unsigned short WORD;
        struct {
            unsigned short USBADDR:7;
            unsigned short :9;
        } BIT;
    } USBADDR;
    char           wk5[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short BMREQUESTTYPE:8;
            unsigned short BREQUEST:8;
        } BIT;
    } USBREQ;
    unsigned short USBVAL;
    unsigned short USBINDX;
    unsigned short USBLENG;
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short DIR:1;
            unsigned short :11;
        } BIT;
    } DCPCFG;
    union {
        unsigned short WORD;
        struct {
            unsigned short MXPS:7;
            unsigned short :5;
            unsigned short DEVSEL:4;
        } BIT;
    } DCPMAXP;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short CCPL:1;
            unsigned short :1;
            unsigned short PINGE:1;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short :2;
            unsigned short SUREQCLR:1;
            unsigned short CSSTS:1;
            unsigned short CSCLR:1;
            unsigned short SUREQ:1;
            unsigned short BSTS:1;
        } BIT;
    } DCPCTR;
    char           wk6[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short PIPESEL:4;
            unsigned short :12;
        } BIT;
    } PIPESEL;
    char           wk7[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short EPNUM:4;
            unsigned short DIR:1;
            unsigned short :2;
            unsigned short SHTNAK:1;
            unsigned short CNTMD:1;
            unsigned short DBLB:1;
            unsigned short BFRE:1;
            unsigned short :3;
            unsigned short TYPE:2;
        } BIT;
    } PIPECFG;
    union {
        unsigned short WORD;
        struct {
            unsigned short BUFNMB:8;
            unsigned short :2;
            unsigned short BUFSIZE:5;
            unsigned short :1;
        } BIT;
    } PIPEBUF;
    union {
        unsigned short WORD;
        struct {
            unsigned short MXPS:11;
            unsigned short :1;
            unsigned short DEVSEL:4;
        } BIT;
    } PIPEMAXP;
    union {
        unsigned short WORD;
        struct {
            unsigned short IITV:3;
            unsigned short :9;
            unsigned short IFIS:1;
            unsigned short :3;
        } BIT;
    } PIPEPERI;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short ATREPM:1;
            unsigned short :1;
            unsigned short CSSTS:1;
            unsigned short CSCLR:1;
            unsigned short INBUFM:1;
            unsigned short BSTS:1;
        } BIT;
    } PIPE1CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short ATREPM:1;
            unsigned short :1;
            unsigned short CSSTS:1;
            unsigned short CSCLR:1;
            unsigned short INBUFM:1;
            unsigned short BSTS:1;
        } BIT;
    } PIPE2CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short ATREPM:1;
            unsigned short :1;
            unsigned short CSSTS:1;
            unsigned short CSCLR:1;
            unsigned short INBUFM:1;
            unsigned short BSTS:1;
        } BIT;
    } PIPE3CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short ATREPM:1;
            unsigned short :1;
            unsigned short CSSTS:1;
            unsigned short CSCLR:1;
            unsigned short INBUFM:1;
            unsigned short BSTS:1;
        } BIT;
    } PIPE4CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short ATREPM:1;
            unsigned short :1;
            unsigned short CSSTS:1;
            unsigned short CSCLR:1;
            unsigned short INBUFM:1;
            unsigned short BSTS:1;
        } BIT;
    } PIPE5CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short ATREPM:1;
            unsigned short :1;
            unsigned short CSSTS:1;
            unsigned short CSCLR:1;
            unsigned short INBUFM:1;
            unsigned short BSTS:1;
        } BIT;
    } PIPE6CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short ATREPM:1;
            unsigned short :1;
            unsigned short CSSTS:1;
            unsigned short CSCLR:1;
            unsigned short INBUFM:1;
            unsigned short BSTS:1;
        } BIT;
    } PIPE7CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short ATREPM:1;
            unsigned short :1;
            unsigned short CSSTS:1;
            unsigned short CSCLR:1;
            unsigned short INBUFM:1;
            unsigned short BSTS:1;
        } BIT;
    } PIPE8CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short PID:2;
            unsigned short :3;
            unsigned short PBUSY:1;
            unsigned short SQMON:1;
            unsigned short SQSET:1;
            unsigned short SQCLR:1;
            unsigned short ACLRM:1;
            unsigned short ATREPM:1;
            unsigned short :1;
            unsigned short CSSTS:1;
            unsigned short CSCLR:1;
            unsigned short INBUFM:1;
            unsigned short BSTS:1;
        } BIT;
    } PIPE9CTR;
    char           wk8[14];
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short TRCLR:1;
            unsigned short TRENB:1;
            unsigned short :6;
        } BIT;
    } PIPE1TRE;
    union {
        unsigned short WORD;
        struct {
            unsigned short TRNCNT:16;
        } BIT;
    } PIPE1TRN;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short TRCLR:1;
            unsigned short TRENB:1;
            unsigned short :6;
        } BIT;
    } PIPE2TRE;
    union {
        unsigned short WORD;
        struct {
            unsigned short TRNCNT:16;
        } BIT;
    } PIPE2TRN;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short TRCLR:1;
            unsigned short TRENB:1;
            unsigned short :6;
        } BIT;
    } PIPE3TRE;
    union {
        unsigned short WORD;
        struct {
            unsigned short TRNCNT:16;
        } BIT;
    } PIPE3TRN;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short TRCLR:1;
            unsigned short TRENB:1;
            unsigned short :6;
        } BIT;
    } PIPE4TRE;
    union {
        unsigned short WORD;
        struct {
            unsigned short TRNCNT:16;
        } BIT;
    } PIPE4TRN;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short TRCLR:1;
            unsigned short TRENB:1;
            unsigned short :6;
        } BIT;
    } PIPE5TRE;
    union {
        unsigned short WORD;
        struct {
            unsigned short TRNCNT:16;
        } BIT;
    } PIPE5TRN;
    char           wk9[44];
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short USBSPD:2;
            unsigned short HUBPORT:3;
            unsigned short UPPHUB:4;
            unsigned short :1;
        } BIT;
    } DEVADD0;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short USBSPD:2;
            unsigned short HUBPORT:3;
            unsigned short UPPHUB:4;
            unsigned short :1;
        } BIT;
    } DEVADD1;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short USBSPD:2;
            unsigned short HUBPORT:3;
            unsigned short UPPHUB:4;
            unsigned short :1;
        } BIT;
    } DEVADD2;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short USBSPD:2;
            unsigned short HUBPORT:3;
            unsigned short UPPHUB:4;
            unsigned short :1;
        } BIT;
    } DEVADD3;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short USBSPD:2;
            unsigned short HUBPORT:3;
            unsigned short UPPHUB:4;
            unsigned short :1;
        } BIT;
    } DEVADD4;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short USBSPD:2;
            unsigned short HUBPORT:3;
            unsigned short UPPHUB:4;
            unsigned short :1;
        } BIT;
    } DEVADD5;
    char           wk10[36];
    union {
        unsigned short WORD;
        struct {
            unsigned short :7;
            unsigned short HWLPM:1;
            unsigned short :8;
        } BIT;
    } LPCTRL;
    union {
        unsigned short WORD;
        struct {
            unsigned short :14;
            unsigned short SUSPENDM:1;
            unsigned short :1;
        } BIT;
    } LPSTS;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short XCVRSEL:2;
            unsigned short TERMSEL:1;
            unsigned short OPMODE:2;
            unsigned short :1;
            unsigned short SUSMON:1;
            unsigned short :1;
        } BIT;
    } PHYFUNCTR;
    char           wk11[4];
    union {
        unsigned short WORD;
        struct {
            unsigned short :9;
            unsigned short DPPUDWN:1;
            unsigned short DMPUDWN:1;
            unsigned short :5;
        } BIT;
    } PHYOTGCTR;
    char           wk12[52];
    union {
        unsigned short WORD;
        struct {
            unsigned short IDPSRCE:1;
            unsigned short IDMSINKE:1;
            unsigned short VDPSRCE:1;
            unsigned short IDPSINKE:1;
            unsigned short VDMSRCE:1;
            unsigned short DCPMODE:1;
            unsigned short :2;
            unsigned short CHGDETSTS:1;
            unsigned short PDDETSTS:1;
            unsigned short :6;
        } BIT;
    } BCCTRL;
    char           wk13[14];
    union {
        unsigned short WORD;
        struct {
            unsigned short drise0:1;
            unsigned short drise1:1;
            unsigned short dfall0:1;
            unsigned short dfall1:1;
            unsigned short :3;
            unsigned short pcompenb:1;
            unsigned short hsiup0:1;
            unsigned short hsiup1:1;
            unsigned short hsiup2:1;
            unsigned short hsiup3:1;
            unsigned short impoffset0:1;
            unsigned short impoffset1:1;
            unsigned short impoffset2:1;
            unsigned short :1;
        } BIT;
    } PHYTRIM1;
    union {
        unsigned short WORD;
        struct {
            unsigned short squ0:1;
            unsigned short squ1:1;
            unsigned short squ2:1;
            unsigned short squ3:1;
            unsigned short :3;
            unsigned short hsrxenmode:1;
            unsigned short prd0:1;
            unsigned short prd1:1;
            unsigned short :2;
            unsigned short dis0:1;
            unsigned short dis1:1;
            unsigned short dis2:1;
            unsigned short :1;
        } BIT;
    } PHYTRIM2;
    char           wk14[12];
    union {
        unsigned long LONG;
        struct {
            unsigned long SRPC:1;
            unsigned long :3;
            unsigned long FIXPHY:1;
            unsigned long :11;
            unsigned long DP:1;
            unsigned long DM:1;
            unsigned long :2;
            unsigned long DOVCA:1;
            unsigned long DOVCB:1;
            unsigned long :1;
            unsigned long DVBSTS:1;
            unsigned long :8;
        } BIT;
    } DPUSR0R;
    union {
        unsigned long LONG;
        struct {
            unsigned long DPINTE:1;
            unsigned long DMINTE:1;
            unsigned long :2;
            unsigned long DOVRCRAE:1;
            unsigned long DOVRCRBE:1;
            unsigned long :1;
            unsigned long DVBSE:1;
            unsigned long :8;
            unsigned long DPINT:1;
            unsigned long DMINT:1;
            unsigned long :2;
            unsigned long DOVRCRA:1;
            unsigned long DOVRCRB:1;
            unsigned long :1;
            unsigned long DVBINT:1;
            unsigned long :8;
        } BIT;
    } DPUSR1R;
};

struct st_wdt {
    unsigned char  WDTRR;
    char           wk0[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short TOPS:2;
            unsigned short :2;
            unsigned short CKS:4;
            unsigned short RPES:2;
            unsigned short :2;
            unsigned short RPSS:2;
            unsigned short :2;
        } BIT;
    } WDTCR;
    union {
        unsigned short WORD;
        struct {
            unsigned short CNTVAL:14;
            unsigned short UNDFF:1;
            unsigned short REFEF:1;
        } BIT;
    } WDTSR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char RSTIRQS:1;
        } BIT;
    } WDTRCR;
};

#elif __RX_BIG_ENDIAN__        /*Big endian*/

struct st_bsc {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char STSCLR:1;
        } BIT;
    } BERCLR;
    char           wk0[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char TOEN:1;
            unsigned char IGAEN:1;
        } BIT;
    } BEREN;
    char           wk1[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char MST:3;
            unsigned char :2;
            unsigned char TO:1;
            unsigned char IA:1;
        } BIT;
    } BERSR1;
    char           wk2[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short ADDR:13;
        } BIT;
    } BERSR2;
    char           wk3[4];
    union {
        unsigned short WORD;
        struct {
            unsigned short :2;
            unsigned short BPEB:2;
            unsigned short BPFB:2;
            unsigned short BPHB:2;
            unsigned short BPGB:2;
            unsigned short BPIB:2;
            unsigned short BPRO:2;
            unsigned short BPRA:2;
        } BIT;
    } BUSPRI;
    char           wk4[7408];
    union {
        unsigned short WORD;
        struct {
            unsigned short PRMOD:1;
            unsigned short :5;
            unsigned short PWENB:1;
            unsigned short PRENB:1;
            unsigned short :4;
            unsigned short EWENB:1;
            unsigned short :2;
            unsigned short WRMOD:1;
        } BIT;
    } CS0MOD;
    union {
        unsigned long LONG;
        struct {
            unsigned long :3;
            unsigned long CSRWAIT:5;
            unsigned long :3;
            unsigned long CSWWAIT:5;
            unsigned long :5;
            unsigned long CSPRWAIT:3;
            unsigned long :5;
            unsigned long CSPWWAIT:3;
        } BIT;
    } CS0WCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long CSON:3;
            unsigned long :1;
            unsigned long WDON:3;
            unsigned long :1;
            unsigned long WRON:3;
            unsigned long :1;
            unsigned long RDON:3;
            unsigned long :2;
            unsigned long AWAIT:2;
            unsigned long :1;
            unsigned long WDOFF:3;
            unsigned long :1;
            unsigned long CSWOFF:3;
            unsigned long :1;
            unsigned long CSROFF:3;
        } BIT;
    } CS0WCR2;
    char           wk5[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short PRMOD:1;
            unsigned short :5;
            unsigned short PWENB:1;
            unsigned short PRENB:1;
            unsigned short :4;
            unsigned short EWENB:1;
            unsigned short :2;
            unsigned short WRMOD:1;
        } BIT;
    } CS1MOD;
    union {
        unsigned long LONG;
        struct {
            unsigned long :3;
            unsigned long CSRWAIT:5;
            unsigned long :3;
            unsigned long CSWWAIT:5;
            unsigned long :5;
            unsigned long CSPRWAIT:3;
            unsigned long :5;
            unsigned long CSPWWAIT:3;
        } BIT;
    } CS1WCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long CSON:3;
            unsigned long :1;
            unsigned long WDON:3;
            unsigned long :1;
            unsigned long WRON:3;
            unsigned long :1;
            unsigned long RDON:3;
            unsigned long :2;
            unsigned long AWAIT:2;
            unsigned long :1;
            unsigned long WDOFF:3;
            unsigned long :1;
            unsigned long CSWOFF:3;
            unsigned long :1;
            unsigned long CSROFF:3;
        } BIT;
    } CS1WCR2;
    char           wk6[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short PRMOD:1;
            unsigned short :5;
            unsigned short PWENB:1;
            unsigned short PRENB:1;
            unsigned short :4;
            unsigned short EWENB:1;
            unsigned short :2;
            unsigned short WRMOD:1;
        } BIT;
    } CS2MOD;
    union {
        unsigned long LONG;
        struct {
            unsigned long :3;
            unsigned long CSRWAIT:5;
            unsigned long :3;
            unsigned long CSWWAIT:5;
            unsigned long :5;
            unsigned long CSPRWAIT:3;
            unsigned long :5;
            unsigned long CSPWWAIT:3;
        } BIT;
    } CS2WCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long CSON:3;
            unsigned long :1;
            unsigned long WDON:3;
            unsigned long :1;
            unsigned long WRON:3;
            unsigned long :1;
            unsigned long RDON:3;
            unsigned long :2;
            unsigned long AWAIT:2;
            unsigned long :1;
            unsigned long WDOFF:3;
            unsigned long :1;
            unsigned long CSWOFF:3;
            unsigned long :1;
            unsigned long CSROFF:3;
        } BIT;
    } CS2WCR2;
    char           wk7[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short PRMOD:1;
            unsigned short :5;
            unsigned short PWENB:1;
            unsigned short PRENB:1;
            unsigned short :4;
            unsigned short EWENB:1;
            unsigned short :2;
            unsigned short WRMOD:1;
        } BIT;
    } CS3MOD;
    union {
        unsigned long LONG;
        struct {
            unsigned long :3;
            unsigned long CSRWAIT:5;
            unsigned long :3;
            unsigned long CSWWAIT:5;
            unsigned long :5;
            unsigned long CSPRWAIT:3;
            unsigned long :5;
            unsigned long CSPWWAIT:3;
        } BIT;
    } CS3WCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long CSON:3;
            unsigned long :1;
            unsigned long WDON:3;
            unsigned long :1;
            unsigned long WRON:3;
            unsigned long :1;
            unsigned long RDON:3;
            unsigned long :2;
            unsigned long AWAIT:2;
            unsigned long :1;
            unsigned long WDOFF:3;
            unsigned long :1;
            unsigned long CSWOFF:3;
            unsigned long :1;
            unsigned long CSROFF:3;
        } BIT;
    } CS3WCR2;
    char           wk8[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short PRMOD:1;
            unsigned short :5;
            unsigned short PWENB:1;
            unsigned short PRENB:1;
            unsigned short :4;
            unsigned short EWENB:1;
            unsigned short :2;
            unsigned short WRMOD:1;
        } BIT;
    } CS4MOD;
    union {
        unsigned long LONG;
        struct {
            unsigned long :3;
            unsigned long CSRWAIT:5;
            unsigned long :3;
            unsigned long CSWWAIT:5;
            unsigned long :5;
            unsigned long CSPRWAIT:3;
            unsigned long :5;
            unsigned long CSPWWAIT:3;
        } BIT;
    } CS4WCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long CSON:3;
            unsigned long :1;
            unsigned long WDON:3;
            unsigned long :1;
            unsigned long WRON:3;
            unsigned long :1;
            unsigned long RDON:3;
            unsigned long :2;
            unsigned long AWAIT:2;
            unsigned long :1;
            unsigned long WDOFF:3;
            unsigned long :1;
            unsigned long CSWOFF:3;
            unsigned long :1;
            unsigned long CSROFF:3;
        } BIT;
    } CS4WCR2;
    char           wk9[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short PRMOD:1;
            unsigned short :5;
            unsigned short PWENB:1;
            unsigned short PRENB:1;
            unsigned short :4;
            unsigned short EWENB:1;
            unsigned short :2;
            unsigned short WRMOD:1;
        } BIT;
    } CS5MOD;
    union {
        unsigned long LONG;
        struct {
            unsigned long :3;
            unsigned long CSRWAIT:5;
            unsigned long :3;
            unsigned long CSWWAIT:5;
            unsigned long :5;
            unsigned long CSPRWAIT:3;
            unsigned long :5;
            unsigned long CSPWWAIT:3;
        } BIT;
    } CS5WCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long CSON:3;
            unsigned long :1;
            unsigned long WDON:3;
            unsigned long :1;
            unsigned long WRON:3;
            unsigned long :1;
            unsigned long RDON:3;
            unsigned long :2;
            unsigned long AWAIT:2;
            unsigned long :1;
            unsigned long WDOFF:3;
            unsigned long :1;
            unsigned long CSWOFF:3;
            unsigned long :1;
            unsigned long CSROFF:3;
        } BIT;
    } CS5WCR2;
    char           wk10[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short PRMOD:1;
            unsigned short :5;
            unsigned short PWENB:1;
            unsigned short PRENB:1;
            unsigned short :4;
            unsigned short EWENB:1;
            unsigned short :2;
            unsigned short WRMOD:1;
        } BIT;
    } CS6MOD;
    union {
        unsigned long LONG;
        struct {
            unsigned long :3;
            unsigned long CSRWAIT:5;
            unsigned long :3;
            unsigned long CSWWAIT:5;
            unsigned long :5;
            unsigned long CSPRWAIT:3;
            unsigned long :5;
            unsigned long CSPWWAIT:3;
        } BIT;
    } CS6WCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long CSON:3;
            unsigned long :1;
            unsigned long WDON:3;
            unsigned long :1;
            unsigned long WRON:3;
            unsigned long :1;
            unsigned long RDON:3;
            unsigned long :2;
            unsigned long AWAIT:2;
            unsigned long :1;
            unsigned long WDOFF:3;
            unsigned long :1;
            unsigned long CSWOFF:3;
            unsigned long :1;
            unsigned long CSROFF:3;
        } BIT;
    } CS6WCR2;
    char           wk11[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short PRMOD:1;
            unsigned short :5;
            unsigned short PWENB:1;
            unsigned short PRENB:1;
            unsigned short :4;
            unsigned short EWENB:1;
            unsigned short :2;
            unsigned short WRMOD:1;
        } BIT;
    } CS7MOD;
    union {
        unsigned long LONG;
        struct {
            unsigned long :3;
            unsigned long CSRWAIT:5;
            unsigned long :3;
            unsigned long CSWWAIT:5;
            unsigned long :5;
            unsigned long CSPRWAIT:3;
            unsigned long :5;
            unsigned long CSPWWAIT:3;
        } BIT;
    } CS7WCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long CSON:3;
            unsigned long :1;
            unsigned long WDON:3;
            unsigned long :1;
            unsigned long WRON:3;
            unsigned long :1;
            unsigned long RDON:3;
            unsigned long :2;
            unsigned long AWAIT:2;
            unsigned long :1;
            unsigned long WDOFF:3;
            unsigned long :1;
            unsigned long CSWOFF:3;
            unsigned long :1;
            unsigned long CSROFF:3;
        } BIT;
    } CS7WCR2;
    char           wk12[1926];
    union {
        unsigned short WORD;
        struct {
            unsigned short :3;
            unsigned short MPXEN:1;
            unsigned short :3;
            unsigned short EMODE:1;
            unsigned short :2;
            unsigned short BSIZE:2;
            unsigned short :3;
            unsigned short EXENB:1;
        } BIT;
    } CS0CR;
    char           wk13[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short WRCV:4;
            unsigned short :4;
            unsigned short RRCV:4;
        } BIT;
    } CS0REC;
    char           wk14[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short :3;
            unsigned short MPXEN:1;
            unsigned short :3;
            unsigned short EMODE:1;
            unsigned short :2;
            unsigned short BSIZE:2;
            unsigned short :3;
            unsigned short EXENB:1;
        } BIT;
    } CS1CR;
    char           wk15[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short WRCV:4;
            unsigned short :4;
            unsigned short RRCV:4;
        } BIT;
    } CS1REC;
    char           wk16[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short :3;
            unsigned short MPXEN:1;
            unsigned short :3;
            unsigned short EMODE:1;
            unsigned short :2;
            unsigned short BSIZE:2;
            unsigned short :3;
            unsigned short EXENB:1;
        } BIT;
    } CS2CR;
    char           wk17[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short WRCV:4;
            unsigned short :4;
            unsigned short RRCV:4;
        } BIT;
    } CS2REC;
    char           wk18[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short :3;
            unsigned short MPXEN:1;
            unsigned short :3;
            unsigned short EMODE:1;
            unsigned short :2;
            unsigned short BSIZE:2;
            unsigned short :3;
            unsigned short EXENB:1;
        } BIT;
    } CS3CR;
    char           wk19[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short WRCV:4;
            unsigned short :4;
            unsigned short RRCV:4;
        } BIT;
    } CS3REC;
    char           wk20[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short :3;
            unsigned short MPXEN:1;
            unsigned short :3;
            unsigned short EMODE:1;
            unsigned short :2;
            unsigned short BSIZE:2;
            unsigned short :3;
            unsigned short EXENB:1;
        } BIT;
    } CS4CR;
    char           wk21[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short WRCV:4;
            unsigned short :4;
            unsigned short RRCV:4;
        } BIT;
    } CS4REC;
    char           wk22[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short :3;
            unsigned short MPXEN:1;
            unsigned short :3;
            unsigned short EMODE:1;
            unsigned short :2;
            unsigned short BSIZE:2;
            unsigned short :3;
            unsigned short EXENB:1;
        } BIT;
    } CS5CR;
    char           wk23[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short WRCV:4;
            unsigned short :4;
            unsigned short RRCV:4;
        } BIT;
    } CS5REC;
    char           wk24[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short :3;
            unsigned short MPXEN:1;
            unsigned short :3;
            unsigned short EMODE:1;
            unsigned short :2;
            unsigned short BSIZE:2;
            unsigned short :3;
            unsigned short EXENB:1;
        } BIT;
    } CS6CR;
    char           wk25[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short WRCV:4;
            unsigned short :4;
            unsigned short RRCV:4;
        } BIT;
    } CS6REC;
    char           wk26[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short :3;
            unsigned short MPXEN:1;
            unsigned short :3;
            unsigned short EMODE:1;
            unsigned short :2;
            unsigned short BSIZE:2;
            unsigned short :3;
            unsigned short EXENB:1;
        } BIT;
    } CS7CR;
    char           wk27[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short WRCV:4;
            unsigned short :4;
            unsigned short RRCV:4;
        } BIT;
    } CS7REC;
    char           wk28[4];
    union {
        unsigned short WORD;
        struct {
            unsigned short RCVENM7:1;
            unsigned short RCVENM6:1;
            unsigned short RCVENM5:1;
            unsigned short RCVENM4:1;
            unsigned short RCVENM3:1;
            unsigned short RCVENM2:1;
            unsigned short RCVENM1:1;
            unsigned short RCVENM0:1;
            unsigned short RCVEN7:1;
            unsigned short RCVEN6:1;
            unsigned short RCVEN5:1;
            unsigned short RCVEN4:1;
            unsigned short RCVEN3:1;
            unsigned short RCVEN2:1;
            unsigned short RCVEN1:1;
            unsigned short RCVEN0:1;
        } BIT;
    } CSRECEN;
    char           wk29[894];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char BSIZE:2;
            unsigned char :3;
            unsigned char EXENB:1;
        } BIT;
    } SDCCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char EMODE:1;
        } BIT;
    } SDCMOD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char BE:1;
        } BIT;
    } SDAMOD;
    char           wk30[13];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char SFEN:1;
        } BIT;
    } SDSELF;
    char           wk31[3];
    union {
        unsigned short WORD;
        struct {
            unsigned short REFW:4;
            unsigned short RFC:12;
        } BIT;
    } SDRFCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char RFEN:1;
        } BIT;
    } SDRFEN;
    char           wk32[9];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char INIRQ:1;
        } BIT;
    } SDICR;
    char           wk33[3];
    union {
        unsigned short WORD;
        struct {
            unsigned short :5;
            unsigned short PRC:3;
            unsigned short ARFC:4;
            unsigned short ARFI:4;
        } BIT;
    } SDIR;
    char           wk34[26];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char MXC:2;
        } BIT;
    } SDADR;
    char           wk35[3];
    union {
        unsigned long LONG;
        struct {
            unsigned long :13;
            unsigned long RAS:3;
            unsigned long :2;
            unsigned long RCD:2;
            unsigned long RP:3;
            unsigned long WR:1;
            unsigned long :5;
            unsigned long CL:3;
        } BIT;
    } SDTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short :1;
            unsigned short MR:15;
        } BIT;
    } SDMOD;
    char           wk36[6];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char SRFST:1;
            unsigned char INIST:1;
            unsigned char :2;
            unsigned char MRSST:1;
        } BIT;
    } SDSR;
};

struct st_cac {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char CFME:1;
        } BIT;
    } CACR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char EDGES:2;
            unsigned char TCSS:2;
            unsigned char FMCS:3;
            unsigned char CACREFE:1;
        } BIT;
    } CACR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DFS:2;
            unsigned char RCDS:2;
            unsigned char RSCS:3;
            unsigned char RPS:1;
        } BIT;
    } CACR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char OVFFCL:1;
            unsigned char MENDFCL:1;
            unsigned char FERRFCL:1;
            unsigned char :1;
            unsigned char OVFIE:1;
            unsigned char MENDIE:1;
            unsigned char FERRIE:1;
        } BIT;
    } CAICR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char OVFF:1;
            unsigned char MENDF:1;
            unsigned char FERRF:1;
        } BIT;
    } CASTR;
    char           wk0[1];
    unsigned short CAULVR;
    unsigned short CALLVR;
    unsigned short CACNTBR;
};

struct st_can {
    struct {
        union {
            unsigned long LONG;
            struct {
                unsigned short H;
                unsigned short L;
            } WORD;
            struct {
                unsigned char HH;
                unsigned char HL;
                unsigned char LH;
                unsigned char LL;
            } BYTE;
            struct {
                unsigned long IDE:1;
                unsigned long RTR:1;
                unsigned long :1;
                unsigned long SID:11;
                unsigned long EID:18;
            } BIT;
        } ID;
        unsigned short DLC;        
        unsigned char  DATA[8];
        unsigned short TS;        
    } MB[32];
    union {
        unsigned long LONG;
        struct {
            unsigned short H;
            unsigned short L;
        } WORD;
        struct {
            unsigned char HH;
            unsigned char HL;
            unsigned char LH;
            unsigned char LL;
        } BYTE;
        struct {
            unsigned long :3;
            unsigned long SID:11;
            unsigned long EID:18;
        } BIT;
    } MKR[8];
    union {
        unsigned long LONG;
        struct {
            unsigned short H;
            unsigned short L;
        } WORD;
        struct {
            unsigned char HH;
            unsigned char HL;
            unsigned char LH;
            unsigned char LL;
        } BYTE;
        struct {
            unsigned long IDE:1;
            unsigned long RTR:1;
            unsigned long :1;
            unsigned long SID:11;
            unsigned long EID:18;
        } BIT;
    } FIDCR0;
    union {
        unsigned long LONG;
        struct {
            unsigned short H;
            unsigned short L;
        } WORD;
        struct {
            unsigned char HH;
            unsigned char HL;
            unsigned char LH;
            unsigned char LL;
        } BYTE;
        struct {
            unsigned long IDE:1;
            unsigned long RTR:1;
            unsigned long :1;
            unsigned long SID:11;
            unsigned long EID:18;
        } BIT;
    } FIDCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned short H;
            unsigned short L;
        } WORD;
        struct {
            unsigned char HH;
            unsigned char HL;
            unsigned char LH;
            unsigned char LL;
        } BYTE;
        struct {
            unsigned char MB31:1;
            unsigned char MB30:1;
            unsigned char MB29:1;
            unsigned char MB28:1;
            unsigned char MB27:1;
            unsigned char MB26:1;
            unsigned char MB25:1;
            unsigned char MB24:1;
            unsigned char MB23:1;
            unsigned char MB22:1;
            unsigned char MB21:1;
            unsigned char MB20:1;
            unsigned char MB19:1;
            unsigned char MB18:1;
            unsigned char MB17:1;
            unsigned char MB16:1;
            unsigned char MB15:1;
            unsigned char MB14:1;
            unsigned char MB13:1;
            unsigned char MB12:1;
            unsigned char MB11:1;
            unsigned char MB10:1;
            unsigned char MB9:1;
            unsigned char MB8:1;
            unsigned char MB7:1;
            unsigned char MB6:1;
            unsigned char MB5:1;
            unsigned char MB4:1;
            unsigned char MB3:1;
            unsigned char MB2:1;
            unsigned char MB1:1;
            unsigned char MB0:1;
        } BIT;
    } MKIVLR;
    union {
        unsigned long LONG;
        struct {
            unsigned short H;
            unsigned short L;
        } WORD;
        struct {
            unsigned char HH;
            unsigned char HL;
            unsigned char LH;
            unsigned char LL;
        } BYTE;
        struct {
            unsigned char MB31:1;
            unsigned char MB30:1;
            unsigned char MB29:1;
            unsigned char MB28:1;
            unsigned char MB27:1;
            unsigned char MB26:1;
            unsigned char MB25:1;
            unsigned char MB24:1;
            unsigned char MB23:1;
            unsigned char MB22:1;
            unsigned char MB21:1;
            unsigned char MB20:1;
            unsigned char MB19:1;
            unsigned char MB18:1;
            unsigned char MB17:1;
            unsigned char MB16:1;
            unsigned char MB15:1;
            unsigned char MB14:1;
            unsigned char MB13:1;
            unsigned char MB12:1;
            unsigned char MB11:1;
            unsigned char MB10:1;
            unsigned char MB9:1;
            unsigned char MB8:1;
            unsigned char MB7:1;
            unsigned char MB6:1;
            unsigned char MB5:1;
            unsigned char MB4:1;
            unsigned char MB3:1;
            unsigned char MB2:1;
            unsigned char MB1:1;
            unsigned char MB0:1;
        } BIT;
    } MIER;
    char           wk0[1008];
    union {
        unsigned char BYTE;
        union {
            struct {
                unsigned char TRMREQ:1;
                unsigned char RECREQ:1;
                unsigned char :1;
                unsigned char ONESHOT:1;
                unsigned char :1;
                unsigned char TRMABT:1;
                unsigned char TRMACTIVE:1;
                unsigned char SENTDATA:1;
            } TX;
            struct {
                unsigned char TRMREQ:1;
                unsigned char RECREQ:1;
                unsigned char :1;
                unsigned char ONESHOT:1;
                unsigned char :1;
                unsigned char MSGLOST:1;
                unsigned char INVALDATA:1;
                unsigned char NEWDATA:1;
            } RX;
        } BIT;
    } MCTL[32];
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :2;
            unsigned char RBOC:1;
            unsigned char BOM:2;
            unsigned char SLPM:1;
            unsigned char CANM:2;
            unsigned char TSPS:2;
            unsigned char TSRC:1;
            unsigned char TPM:1;
            unsigned char MLM:1;
            unsigned char IDFM:2;
            unsigned char MBM:1;
        } BIT;
    } CTLR;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :1;
            unsigned char RECST:1;
            unsigned char TRMST:1;
            unsigned char BOST:1;
            unsigned char EPST:1;
            unsigned char SLPST:1;
            unsigned char HLTST:1;
            unsigned char RSTST:1;
            unsigned char EST:1;
            unsigned char TABST:1;
            unsigned char FMLST:1;
            unsigned char NMLST:1;
            unsigned char TFST:1;
            unsigned char RFST:1;
            unsigned char SDST:1;
            unsigned char NDST:1;
        } BIT;
    } STR;
    union {
        unsigned long LONG;
        struct {
            unsigned short H;
            unsigned short L;
        } WORD;
        struct {
            unsigned char HH;
            unsigned char HL;
            unsigned char LH;
            unsigned char LL;
        } BYTE;
        struct {
            unsigned long TSEG1:4;
            unsigned long :2;
            unsigned long BRP:10;
            unsigned long :2;
            unsigned long SJW:2;
            unsigned long :1;
            unsigned long TSEG2:3;
            unsigned long :7;
            unsigned long CCLKS:1;
        } BIT;
    } BCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char RFEST:1;
            unsigned char RFWST:1;
            unsigned char RFFST:1;
            unsigned char RFMLF:1;
            unsigned char RFUST:3;
            unsigned char RFE:1;
        } BIT;
    } RFCR;
    unsigned char  RFPCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TFEST:1;
            unsigned char TFFST:1;
            unsigned char :2;
            unsigned char TFUST:3;
            unsigned char TFE:1;
        } BIT;
    } TFCR;
    unsigned char  TFPCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BLIE:1;
            unsigned char OLIE:1;
            unsigned char ORIE:1;
            unsigned char BORIE:1;
            unsigned char BOEIE:1;
            unsigned char EPIE:1;
            unsigned char EWIE:1;
            unsigned char BEIE:1;
        } BIT;
    } EIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BLIF:1;
            unsigned char OLIF:1;
            unsigned char ORIF:1;
            unsigned char BORIF:1;
            unsigned char BOEIF:1;
            unsigned char EPIF:1;
            unsigned char EWIF:1;
            unsigned char BEIF:1;
        } BIT;
    } EIFR;
    unsigned char  RECR;
    unsigned char  TECR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char EDPM:1;
            unsigned char ADEF:1;
            unsigned char BE0F:1;
            unsigned char BE1F:1;
            unsigned char CEF:1;
            unsigned char AEF:1;
            unsigned char FEF:1;
            unsigned char SEF:1;
        } BIT;
    } ECSR;
    unsigned char  CSSR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SEST:1;
            unsigned char :2;
            unsigned char MBNST:5;
        } BIT;
    } MSSR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char MBSM:2;
        } BIT;
    } MSMR;
    unsigned short TSR;
    unsigned short AFSR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char TSTM:2;
            unsigned char TSTE:1;
        } BIT;
    } TCR;
};

struct st_cmt {
    union {
        unsigned short WORD;
        struct {
            unsigned short :14;
            unsigned short STR1:1;
            unsigned short STR0:1;
        } BIT;
    } CMSTR0;
    char           wk0[14];
    union {
        unsigned short WORD;
        struct {
            unsigned short :14;
            unsigned short STR3:1;
            unsigned short STR2:1;
        } BIT;
    } CMSTR1;
};

struct st_cmt0 {
    union {
        unsigned short WORD;
        struct {
            unsigned short :9;
            unsigned short CMIE:1;
            unsigned short :4;
            unsigned short CKS:2;
        } BIT;
    } CMCR;
    unsigned short CMCNT;
    unsigned short CMCOR;
};

struct st_cmtw {
    union {
        unsigned short WORD;
        struct {
            unsigned short :15;
            unsigned short STR:1;
        } BIT;
    } CMWSTR;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short CLLR:3;
            unsigned short :3;
            unsigned short CMS:1;
            unsigned short :1;
            unsigned short OC1IE:1;
            unsigned short OC0IE:1;
            unsigned short IC1IE:1;
            unsigned short IC0IE:1;
            unsigned short CM2IE:1;
            unsigned short :1;
            unsigned short CKS:2;
        } BIT;
    } CMWCR;
    char           wk1[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short CM2E:1;
            unsigned short :1;
            unsigned short OC1E:1;
            unsigned short OC0E:1;
            unsigned short OC1:2;
            unsigned short OC0:2;
            unsigned short :2;
            unsigned short IC1E:1;
            unsigned short IC0E:1;
            unsigned short IC1:2;
            unsigned short IC0:2;
        } BIT;
    } CMWIOR;
    char           wk2[6];
    unsigned long  CMWCNT;
    unsigned long  CMWCOR;
    unsigned long  CMWICR0;
    unsigned long  CMWICR1;
    unsigned long  CMWOCR0;
    unsigned long  CMWOCR1;
};

struct st_crc {
    union {
        unsigned char BYTE;
        struct {
            unsigned char DORCLR:1;
            unsigned char :4;
            unsigned char LMS:1;
            unsigned char GPS:2;
        } BIT;
    } CRCCR;
    unsigned char  CRCDIR;
    unsigned short CRCDOR;
};

struct st_da {
//    union {
//        unsigned short WORD;
//        struct {
//            unsigned short :4;
//            unsigned short B11:1;
//            unsigned short B10:1;
//            unsigned short B9:1;
//            unsigned short B8:1;
//            unsigned short B7:1;
//            unsigned short B6:1;
//            unsigned short B5:1;
//            unsigned short B4:1;
//            unsigned short B3:1;
//            unsigned short B2:1;
//            unsigned short B1:1;
//            unsigned short B0:1;
//        } BIT;
//    } DADR0;
//    union {
//        unsigned short WORD;
//        struct {
//            unsigned short :4;
//            unsigned short B11:1;
//            unsigned short B10:1;
//            unsigned short B9:1;
//            unsigned short B8:1;
//            unsigned short B7:1;
//            unsigned short B6:1;
//            unsigned short B5:1;
//            unsigned short B4:1;
//            unsigned short B3:1;
//            unsigned short B2:1;
//            unsigned short B1:1;
//            unsigned short B0:1;
//        } BIT;
//    } DADR1;
    unsigned short DADR0;
    unsigned short DADR1;    
    union {
        unsigned char BYTE;
        struct {
            unsigned char DAOE1:1;
            unsigned char DAOE0:1;
            unsigned char DAE:1;
        } BIT;
    } DACR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DPSEL:1;
        } BIT;
    } DADPR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DAADST:1;
        } BIT;
    } DAADSCR;
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DAAMP1:1;
            unsigned char DAAMP0:1;
        } BIT;
    } DAAMPCR;
};

struct st_dmac {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DMST:1;
        } BIT;
    } DMAST;
    char           wk0[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DMIS7:1;
            unsigned char DMIS6:1;
            unsigned char DMIS5:1;
            unsigned char DMIS4:1;
        } BIT;
    } DMIST;
};

struct st_dmac0 {
//    unsigned long  DMSAR;
//    unsigned long  DMDAR;
    void          *DMSAR;
    void          *DMDAR;    
    unsigned long  DMCRA;
    unsigned short DMCRB;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short MD:2;
            unsigned short DTS:2;
            unsigned short :2;
            unsigned short SZ:2;
            unsigned short :6;
            unsigned short DCTG:2;
        } BIT;
    } DMTMD;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char DTIE:1;
            unsigned char ESIE:1;
            unsigned char RPTIE:1;
            unsigned char SARIE:1;
            unsigned char DARIE:1;
        } BIT;
    } DMINT;
    union {
        unsigned short WORD;
        struct {
            unsigned short SM:2;
            unsigned short :1;
            unsigned short SARA:5;
            unsigned short DM:2;
            unsigned short :1;
            unsigned short DARA:5;
        } BIT;
    } DMAMD;
    char           wk2[2];
    unsigned long  DMOFR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DTE:1;
        } BIT;
    } DMCNT;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char CLRS:1;
            unsigned char :3;
            unsigned char SWREQ:1;
        } BIT;
    } DMREQ;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ACT:1;
            unsigned char :2;
            unsigned char DTIF:1;
            unsigned char :3;
            unsigned char ESIF:1;
        } BIT;
    } DMSTS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DISEL:1;
        } BIT;
    } DMCSL;
};

struct st_dmac1 {    
//    unsigned long  DMSAR;
//    unsigned long  DMDAR;
    void          *DMSAR;
    void          *DMDAR;    
    unsigned long  DMCRA;
    unsigned short DMCRB;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short MD:2;
            unsigned short DTS:2;
            unsigned short :2;
            unsigned short SZ:2;
            unsigned short :6;
            unsigned short DCTG:2;
        } BIT;
    } DMTMD;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char DTIE:1;
            unsigned char ESIE:1;
            unsigned char RPTIE:1;
            unsigned char SARIE:1;
            unsigned char DARIE:1;
        } BIT;
    } DMINT;
    union {
        unsigned short WORD;
        struct {
            unsigned short SM:2;
            unsigned short :1;
            unsigned short SARA:5;
            unsigned short DM:2;
            unsigned short :1;
            unsigned short DARA:5;
        } BIT;
    } DMAMD;
    char           wk2[6];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DTE:1;
        } BIT;
    } DMCNT;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char CLRS:1;
            unsigned char :3;
            unsigned char SWREQ:1;
        } BIT;
    } DMREQ;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ACT:1;
            unsigned char :2;
            unsigned char DTIF:1;
            unsigned char :3;
            unsigned char ESIF:1;
        } BIT;
    } DMSTS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DISEL:1;
        } BIT;
    } DMCSL;
};

struct st_doc {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char DOPCFCL:1;
            unsigned char DOPCF:1;
            unsigned char DOPCIE:1;
            unsigned char :1;
            unsigned char DCSEL:1;
            unsigned char OMS:2;
        } BIT;
    } DOCR;
    char           wk0[1];
    unsigned short DODIR;
    unsigned short DODSR;
};

struct st_dtc {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char RRS:1;
        } BIT;
    } DTCCR;
    char           wk0[3];
//    unsigned long  DTCVBR;
    void          *DTCVBR;    
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char SHORT:1;
        } BIT;
    } DTCADMOD;
    char           wk1[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DTCST:1;
        } BIT;
    } DTCST;
    char           wk2[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short ACT:1;
            unsigned short :7;
            unsigned short VECN:8;
        } BIT;
    } DTCSTS;
};

struct st_eccram {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char RAMMOD:2;
        } BIT;
    } ECCRAMMODE;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char RAMERR:1;
        } BIT;
    } ECCRAMSTS;
    char           wk0[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char KW:7;
            unsigned char RAMPRCR:1;
        } BIT;
    } ECCRAMPRCR;
    char           wk1[3];
    union {
        unsigned long LONG;
        struct {
            unsigned long :13;
            unsigned long READ:16;
        } BIT;
    } ECCRAMECAD;
    char           wk2[4];
    union {
        unsigned char BYTE;
        struct {
            unsigned char KW2:7;
            unsigned char RAMPRCR2:1;
        } BIT;
    } ECCRAMPRCR2;
    char           wk3[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char TSTBYP:1;
        } BIT;
    } ECCRAMETST;
};

struct st_edmac {
    union {
        unsigned long LONG;
        struct {
            unsigned long :25;
            unsigned long DE:1;
            unsigned long DL:2;
            unsigned long :3;
            unsigned long SWR:1;
        } BIT;
    } EDMR;
    char           wk0[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long TR:1;
        } BIT;
    } EDTRR;
    char           wk1[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long RR:1;
        } BIT;
    } EDRRR;
    char           wk2[4];
//    unsigned long  TDLAR;
    void          *TDLAR;
    char           wk3[4];
//    unsigned long  RDLAR;
    void          *RDLAR;
    char           wk4[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long TWB:1;
            unsigned long :3;
            unsigned long TABT:1;
            unsigned long RABT:1;
            unsigned long RFCOF:1;
            unsigned long ADE:1;
            unsigned long ECI:1;
            unsigned long TC:1;
            unsigned long TDE:1;
            unsigned long TFUF:1;
            unsigned long FR:1;
            unsigned long RDE:1;
            unsigned long RFOF:1;
            unsigned long :4;
            unsigned long CND:1;
            unsigned long DLC:1;
            unsigned long CD:1;
            unsigned long TRO:1;
            unsigned long RMAF:1;
            unsigned long :2;
            unsigned long RRF:1;
            unsigned long RTLF:1;
            unsigned long RTSF:1;
            unsigned long PRE:1;
            unsigned long CERF:1;
        } BIT;
    } EESR;
    char           wk5[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long TWBIP:1;
            unsigned long :3;
            unsigned long TABTIP:1;
            unsigned long RABTIP:1;
            unsigned long RFCOFIP:1;
            unsigned long ADEIP:1;
            unsigned long ECIIP:1;
            unsigned long TCIP:1;
            unsigned long TDEIP:1;
            unsigned long TFUFIP:1;
            unsigned long FRIP:1;
            unsigned long RDEIP:1;
            unsigned long RFOFIP:1;
            unsigned long :4;
            unsigned long CNDIP:1;
            unsigned long DLCIP:1;
            unsigned long CDIP:1;
            unsigned long TROIP:1;
            unsigned long RMAFIP:1;
            unsigned long :2;
            unsigned long RRFIP:1;
            unsigned long RTLFIP:1;
            unsigned long RTSFIP:1;
            unsigned long PREIP:1;
            unsigned long CERFIP:1;
        } BIT;
    } EESIPR;
    char           wk6[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :20;
            unsigned long CNDCE:1;
            unsigned long DLCCE:1;
            unsigned long CDCE:1;
            unsigned long TROCE:1;
            unsigned long RMAFCE:1;
            unsigned long :2;
            unsigned long RRFCE:1;
            unsigned long RTLFCE:1;
            unsigned long RTSFCE:1;
            unsigned long PRECE:1;
            unsigned long CERFCE:1;
        } BIT;
    } TRSCER;
    char           wk7[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long MFC:16;
        } BIT;
    } RMFCR;
    char           wk8[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :21;
            unsigned long TFT:11;
        } BIT;
    } TFTR;
    char           wk9[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :19;
            unsigned long TFD:5;
            unsigned long :3;
            unsigned long RFD:5;
        } BIT;
    } FDR;
    char           wk10[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :30;
            unsigned long RNC:1;
            unsigned long RNR:1;
        } BIT;
    } RMCR;
    char           wk11[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long UNDER:16;
        } BIT;
    } TFUCR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long OVER:16;
        } BIT;
    } RFOCR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long ELB:1;
        } BIT;
    } IOSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :13;
            unsigned long RFFO:3;
            unsigned long :13;
            unsigned long RFDO:3;
        } BIT;
    } FCFTR;
    char           wk12[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :14;
            unsigned long PADS:2;
            unsigned long :10;
            unsigned long PADR:6;
        } BIT;
    } RPADIR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :27;
            unsigned long TIM:1;
            unsigned long :3;
            unsigned long TIS:1;
        } BIT;
    } TRIMD;
    char           wk13[72];
//    unsigned long  RBWAR;
    void          *RBWAR;
//    unsigned long  RDFAR;
    void          *RDFAR;
    char           wk14[4];
//    unsigned long  TBRAR;
    void          *TBRAR;    
//    unsigned long  TDFAR;
    void          *TDFAR;    
};

struct st_edmacp {
    union {
        unsigned long LONG;
        struct {
            unsigned long :25;
            unsigned long DE:1;
            unsigned long DL:2;
            unsigned long :3;
            unsigned long SWR:1;
        } BIT;
    } EDMR;
    char           wk0[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long TR:1;
        } BIT;
    } EDTRR;
    char           wk1[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long RR:1;
        } BIT;
    } EDRRR;
    char           wk2[4];
    unsigned long  TDLAR;
    char           wk3[4];
    unsigned long  RDLAR;
    char           wk4[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long TWB:1;
            unsigned long :3;
            unsigned long TABT:1;
            unsigned long RABT:1;
            unsigned long RFCOF:1;
            unsigned long ADE:1;
            unsigned long ECI:1;
            unsigned long TC:1;
            unsigned long TDE:1;
            unsigned long TFUF:1;
            unsigned long FR:1;
            unsigned long RDE:1;
            unsigned long RFOF:1;
        } BIT;
    } EESR;
    char           wk5[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long TWBIP:1;
            unsigned long :3;
            unsigned long TABTIP:1;
            unsigned long RABTIP:1;
            unsigned long RFCOFIP:1;
            unsigned long ADEIP:1;
            unsigned long ECIIP:1;
            unsigned long TCIP:1;
            unsigned long TDEIP:1;
            unsigned long TFUFIP:1;
            unsigned long FRIP:1;
            unsigned long RDEIP:1;
            unsigned long RFOFIP:1;
        } BIT;
    } EESIPR;
    char           wk6[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :20;
            unsigned long CNDCE:1;
            unsigned long DLCCE:1;
            unsigned long CDCE:1;
            unsigned long TROCE:1;
            unsigned long RMAFCE:1;
            unsigned long :2;
            unsigned long RRFCE:1;
            unsigned long RTLFCE:1;
            unsigned long RTSFCE:1;
            unsigned long PRECE:1;
            unsigned long CERFCE:1;
        } BIT;
    } TRSCER;
    char           wk7[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long MFC:16;
        } BIT;
    } RMFCR;
    char           wk8[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :21;
            unsigned long TFT:11;
        } BIT;
    } TFTR;
    char           wk9[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :19;
            unsigned long TFD:5;
            unsigned long :3;
            unsigned long RFD:5;
        } BIT;
    } FDR;
    char           wk10[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :30;
            unsigned long RNC:1;
            unsigned long RNR:1;
        } BIT;
    } RMCR;
    char           wk11[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long UNDER:16;
        } BIT;
    } TFUCR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long OVER:16;
        } BIT;
    } RFOCR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long ELB:1;
        } BIT;
    } IOSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :13;
            unsigned long RFFO:3;
            unsigned long :13;
            unsigned long RFDO:3;
        } BIT;
    } FCFTR;
    char           wk12[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :14;
            unsigned long PADS:2;
            unsigned long :10;
            unsigned long PADR:6;
        } BIT;
    } RPADIR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :27;
            unsigned long TIM:1;
            unsigned long :3;
            unsigned long TIS:1;
        } BIT;
    } TRIMD;
    char           wk13[72];
    unsigned long  RBWAR;
    unsigned long  RDFAR;
    char           wk14[4];
    unsigned long  TBRAR;
    unsigned long  TDFAR;
};

struct st_elc {
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELCON:1;
        } BIT;
    } ELCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR0;
    char           wk0[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR4;
    char           wk1[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR7;
    char           wk2[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR10;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR11;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR12;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR13;
    char           wk3[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR15;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR16;
    char           wk4[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR18;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR19;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR20;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR21;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR22;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR23;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR24;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR25;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR26;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR27;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR28;
    char           wk5[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char MTU3MD:2;
            unsigned char :4;
            unsigned char MTU0MD:2;
        } BIT;
    } ELOPA;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char MTU4MD:2;
        } BIT;
    } ELOPB;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char CMT1MD:2;
        } BIT;
    } ELOPC;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TMR3MD:2;
            unsigned char TMR2MD:2;
            unsigned char TMR1MD:2;
            unsigned char TMR0MD:2;
        } BIT;
    } ELOPD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PGR7:1;
            unsigned char PGR6:1;
            unsigned char PGR5:1;
            unsigned char PGR4:1;
            unsigned char PGR3:1;
            unsigned char PGR2:1;
            unsigned char PGR1:1;
            unsigned char PGR0:1;
        } BIT;
    } PGR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PGR7:1;
            unsigned char PGR6:1;
            unsigned char PGR5:1;
            unsigned char PGR4:1;
            unsigned char PGR3:1;
            unsigned char PGR2:1;
            unsigned char PGR1:1;
            unsigned char PGR0:1;
        } BIT;
    } PGR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char PGCO:3;
            unsigned char :1;
            unsigned char PGCOVE:1;
            unsigned char PGCI:2;
        } BIT;
    } PGC1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char PGCO:3;
            unsigned char :1;
            unsigned char PGCOVE:1;
            unsigned char PGCI:2;
        } BIT;
    } PGC2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PDBF7:1;
            unsigned char PDBF6:1;
            unsigned char PDBF5:1;
            unsigned char PDBF4:1;
            unsigned char PDBF3:1;
            unsigned char PDBF2:1;
            unsigned char PDBF1:1;
            unsigned char PDBF0:1;
        } BIT;
    } PDBF1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PDBF7:1;
            unsigned char PDBF6:1;
            unsigned char PDBF5:1;
            unsigned char PDBF4:1;
            unsigned char PDBF3:1;
            unsigned char PDBF2:1;
            unsigned char PDBF1:1;
            unsigned char PDBF0:1;
        } BIT;
    } PDBF2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char PSM:2;
            unsigned char PSP:2;
            unsigned char PSB:3;
        } BIT;
    } PEL0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char PSM:2;
            unsigned char PSP:2;
            unsigned char PSB:3;
        } BIT;
    } PEL1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char PSM:2;
            unsigned char PSP:2;
            unsigned char PSB:3;
        } BIT;
    } PEL2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char PSM:2;
            unsigned char PSP:2;
            unsigned char PSB:3;
        } BIT;
    } PEL3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char WI:1;
            unsigned char WE:1;
            unsigned char :5;
            unsigned char SEG:1;
        } BIT;
    } ELSEGR;
    char           wk6[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR33;
    char           wk7[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR35;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR36;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR37;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR38;
    char           wk8[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR41;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR42;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR43;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR44;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ELS:8;
        } BIT;
    } ELSR45;
    char           wk9[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TPU3MD:2;
            unsigned char TPU2MD:2;
            unsigned char TPU1MD:2;
            unsigned char TPU0MD:2;
        } BIT;
    } ELOPF;
    char           wk10[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char CMTW0MD:2;
        } BIT;
    } ELOPH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char GPT1MD:3;
            unsigned char :1;
            unsigned char GPT0MD:3;
        } BIT;
    } ELOPI;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char GPT3MD:3;
            unsigned char :1;
            unsigned char GPT2MD:3;
        } BIT;
    } ELOPJ;
};

struct st_eptpc {
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long RESET:1;
        } BIT;
    } PTRSTR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :21;
            unsigned long SCLKSEL:3;
            unsigned long :5;
            unsigned long SCLKDIV:3;
        } BIT;
    } STCSELR;
    char           wk0[15096];
    union {
        unsigned long LONG;
        struct {
            unsigned long :10;
            unsigned long CYC5:1;
            unsigned long CYC4:1;
            unsigned long CYC3:1;
            unsigned long CYC2:1;
            unsigned long CYC1:1;
            unsigned long CYC0:1;
            unsigned long :12;
            unsigned long PRC:1;
            unsigned long SY1:1;
            unsigned long SY0:1;
            unsigned long ST:1;
        } BIT;
    } MIESR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :10;
            unsigned long CYC5:1;
            unsigned long CYC4:1;
            unsigned long CYC3:1;
            unsigned long CYC2:1;
            unsigned long CYC1:1;
            unsigned long CYC0:1;
            unsigned long :12;
            unsigned long PR:1;
            unsigned long SY1:1;
            unsigned long SY0:1;
            unsigned long ST:1;
        } BIT;
    } MIEIPR;
    char           wk1[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long VER:16;
            unsigned long REV:16;
        } BIT;
    } PTVRR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :7;
            unsigned long PLSN:1;
            unsigned long :7;
            unsigned long PLSP:1;
            unsigned long :2;
            unsigned long CYCN5:1;
            unsigned long CYCN4:1;
            unsigned long CYCN3:1;
            unsigned long CYCN2:1;
            unsigned long CYCN1:1;
            unsigned long CYCN0:1;
            unsigned long :2;
            unsigned long CYCP5:1;
            unsigned long CYCP4:1;
            unsigned long CYCP3:1;
            unsigned long CYCP2:1;
            unsigned long CYCP1:1;
            unsigned long CYCP0:1;
        } BIT;
    } ELIPPR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :7;
            unsigned long PLSN:1;
            unsigned long :7;
            unsigned long PLSP:1;
            unsigned long :2;
            unsigned long CYCN5:1;
            unsigned long CYCN4:1;
            unsigned long CYCN3:1;
            unsigned long CYCN2:1;
            unsigned long CYCN1:1;
            unsigned long CYCN0:1;
            unsigned long :2;
            unsigned long CYCP5:1;
            unsigned long CYCP4:1;
            unsigned long CYCP3:1;
            unsigned long CYCP2:1;
            unsigned long CYCP1:1;
            unsigned long CYCP0:1;
        } BIT;
    } ELIPACR;
    char           wk2[40];
    union {
        unsigned long LONG;
        struct {
            unsigned long :27;
            unsigned long W10D:1;
            unsigned long SYNTOUT:1;
            unsigned long :1;
            unsigned long SYNCOUT:1;
            unsigned long SYNC:1;
        } BIT;
    } STSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :27;
            unsigned long W10D:1;
            unsigned long SYNTOUT:1;
            unsigned long :1;
            unsigned long SYNCOUT:1;
            unsigned long SYNC:1;
        } BIT;
    } STIPR;
    char           wk3[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long VER:16;
            unsigned long REV:16;
        } BIT;
    } STVRR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :30;
            unsigned long STCF:2;
        } BIT;
    } STCFR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :2;
            unsigned long ALEN1:1;
            unsigned long ALEN0:1;
            unsigned long :4;
            unsigned long SYTH:4;
            unsigned long DVTH:4;
            unsigned long W10S:1;
            unsigned long :1;
            unsigned long CMOD:1;
            unsigned long :5;
            unsigned long WINT:8;
        } BIT;
    } STMR;
    unsigned long  SYNTOR;
    char           wk4[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :26;
            unsigned long IPTSEL5:1;
            unsigned long IPTSEL4:1;
            unsigned long IPTSEL3:1;
            unsigned long IPTSEL2:1;
            unsigned long IPTSEL1:1;
            unsigned long IPTSEL0:1;
        } BIT;
    } IPTSELR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :26;
            unsigned long MINTEN5:1;
            unsigned long MINTEN4:1;
            unsigned long MINTEN3:1;
            unsigned long MINTEN2:1;
            unsigned long MINTEN1:1;
            unsigned long MINTEN0:1;
        } BIT;
    } MITSELR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :26;
            unsigned long ELTDIS5:1;
            unsigned long ELTDIS4:1;
            unsigned long ELTDIS3:1;
            unsigned long ELTDIS2:1;
            unsigned long ELTDIS1:1;
            unsigned long ELTDIS0:1;
        } BIT;
    } ELTSELR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long SYSEL:1;
        } BIT;
    } STCHSELR;
    char           wk5[16];
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long STR:1;
        } BIT;
    } SYNSTARTR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long LOAD:1;
        } BIT;
    } LCIVLDR;
    char           wk6[8];
    unsigned long  SYNTDARU;
    unsigned long  SYNTDARL;
    unsigned long  SYNTDBRU;
    unsigned long  SYNTDBRL;
    char           wk7[16];
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long VALU:16;
        } BIT;
    } LCIVRU;
    unsigned long  LCIVRM;
    unsigned long  LCIVRL;
    char           wk8[104];
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long GW10:1;
        } BIT;
    } GETW10R;
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long LMTU:31;
        } BIT;
    } PLIMITRU;
    unsigned long  PLIMITRM;
    unsigned long  PLIMITRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long LMTU:31;
        } BIT;
    } MLIMITRU;
    unsigned long  MLIMITRM;
    unsigned long  MLIMITRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long INFO:1;
        } BIT;
    } GETINFOR;
    char           wk9[44];
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long CNTU:16;
        } BIT;
    } LCCVRU;
    unsigned long  LCCVRM;
    unsigned long  LCCVRL;
    char           wk10[148];
    unsigned long  PW10VRU;
    unsigned long  PW10VRM;
    unsigned long  PW10VRL;
    char           wk11[180];
    unsigned long  MW10RU;
    unsigned long  MW10RM;
    unsigned long  MW10RL;
    char           wk12[36];
    unsigned long  TMSTTRU0;
    unsigned long  TMSTTRL0;
    union {
        unsigned long LONG;
        struct {
            unsigned long :2;
            unsigned long CYC:30;
        } BIT;
    } TMCYCR0;
    union {
        unsigned long LONG;
        struct {
            unsigned long :3;
            unsigned long WTH:29;
        } BIT;
    } TMPLSR0;
    unsigned long  TMSTTRU1;
    unsigned long  TMSTTRL1;
    union {
        unsigned long LONG;
        struct {
            unsigned long :2;
            unsigned long CYC:30;
        } BIT;
    } TMCYCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long :3;
            unsigned long WTH:29;
        } BIT;
    } TMPLSR1;
    unsigned long  TMSTTRU2;
    unsigned long  TMSTTRL2;
    union {
        unsigned long LONG;
        struct {
            unsigned long :2;
            unsigned long CYC:30;
        } BIT;
    } TMCYCR2;
    union {
        unsigned long LONG;
        struct {
            unsigned long :3;
            unsigned long WTH:29;
        } BIT;
    } TMPLSR2;
    unsigned long  TMSTTRU3;
    unsigned long  TMSTTRL3;
    union {
        unsigned long LONG;
        struct {
            unsigned long :2;
            unsigned long CYC:30;
        } BIT;
    } TMCYCR3;
    union {
        unsigned long LONG;
        struct {
            unsigned long :3;
            unsigned long WTH:29;
        } BIT;
    } TMPLSR3;
    unsigned long  TMSTTRU4;
    unsigned long  TMSTTRL4;
    union {
        unsigned long LONG;
        struct {
            unsigned long :2;
            unsigned long CYC:30;
        } BIT;
    } TMCYCR4;
    union {
        unsigned long LONG;
        struct {
            unsigned long :3;
            unsigned long WTH:29;
        } BIT;
    } TMPLSR4;
    unsigned long  TMSTTRU5;
    unsigned long  TMSTTRL5;
    union {
        unsigned long LONG;
        struct {
            unsigned long :2;
            unsigned long CYC:30;
        } BIT;
    } TMCYCR5;
    union {
        unsigned long LONG;
        struct {
            unsigned long :3;
            unsigned long WTH:29;
        } BIT;
    } TMPLSR5;
    char           wk13[28];
    union {
        unsigned long LONG;
        struct {
            unsigned long :26;
            unsigned long EN5:1;
            unsigned long EN4:1;
            unsigned long EN3:1;
            unsigned long EN2:1;
            unsigned long EN1:1;
            unsigned long EN0:1;
        } BIT;
    } TMSTARTR;
    char           wk14[128];
    union {
        unsigned long LONG;
        struct {
            unsigned long :2;
            unsigned long URE1:1;
            unsigned long URE0:1;
            unsigned long PRTE13:1;
            unsigned long PRTE12:1;
            unsigned long PRTE11:1;
            unsigned long PRTE10:1;
            unsigned long PRTE03:1;
            unsigned long PRTE02:1;
            unsigned long PRTE01:1;
            unsigned long PRTE00:1;
            unsigned long PRRE3:1;
            unsigned long PRRE2:1;
            unsigned long PRRE1:1;
            unsigned long PRRE0:1;
            unsigned long :7;
            unsigned long MACE:1;
            unsigned long :4;
            unsigned long OVRE3:1;
            unsigned long OVRE2:1;
            unsigned long OVRE1:1;
            unsigned long OVRE0:1;
        } BIT;
    } PRSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :2;
            unsigned long URE1:1;
            unsigned long URE0:1;
            unsigned long PRTE13:1;
            unsigned long PRTE12:1;
            unsigned long PRTE11:1;
            unsigned long PRTE10:1;
            unsigned long PRTE03:1;
            unsigned long PRTE02:1;
            unsigned long PRTE01:1;
            unsigned long PRTE00:1;
            unsigned long PRRE3:1;
            unsigned long PRRE2:1;
            unsigned long PRRE1:1;
            unsigned long PRRE0:1;
            unsigned long :7;
            unsigned long MACE:1;
            unsigned long :4;
            unsigned long OVRE3:1;
            unsigned long OVRE2:1;
            unsigned long OVRE1:1;
            unsigned long OVRE0:1;
        } BIT;
    } PRIPR;
    char           wk15[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long VER:16;
            unsigned long REV:16;
        } BIT;
    } PRVRR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long MACU:24;
        } BIT;
    } PRMACRU0;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long MACL:24;
        } BIT;
    } PRMACRL0;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long MACU:24;
        } BIT;
    } PRMACRU1;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long MACL:24;
        } BIT;
    } PRMACRL1;
    union {
        unsigned long LONG;
        struct {
            unsigned long :30;
            unsigned long TDIS:2;
        } BIT;
    } TRNDISR;
    char           wk16[12];
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long MOD:1;
        } BIT;
    } TRNMR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :21;
            unsigned long THVAL:11;
        } BIT;
    } TRNCTTDR;
};

struct st_eptpcs {
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long PRE3:1;
            unsigned long PRE2:1;
            unsigned long PRE1:1;
            unsigned long PRE0:1;
            unsigned long :2;
            unsigned long GENDN:1;
            unsigned long RESDN:1;
            unsigned long :1;
            unsigned long INFABT:1;
            unsigned long SRTABT:1;
            unsigned long RECLP:1;
            unsigned long :2;
            unsigned long PDRPMR:1;
            unsigned long :2;
            unsigned long DRQOVR:1;
            unsigned long INTDEV:1;
            unsigned long DRPTO:1;
            unsigned long :1;
            unsigned long MPDUD:1;
            unsigned long INTCHG:1;
            unsigned long OFMUD:1;
        } BIT;
    } SYSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long PRE3:1;
            unsigned long PRE2:1;
            unsigned long PRE1:1;
            unsigned long PRE0:1;
            unsigned long :2;
            unsigned long GENDN:1;
            unsigned long RESDN:1;
            unsigned long :1;
            unsigned long INFABT:1;
            unsigned long SRTABT:1;
            unsigned long RECLP:1;
            unsigned long :2;
            unsigned long PDRPMR:1;
            unsigned long :2;
            unsigned long DRQOVR:1;
            unsigned long INTDEV:1;
            unsigned long DRPTO:1;
            unsigned long :1;
            unsigned long MPDUD:1;
            unsigned long INTCHG:1;
            unsigned long OFMUD:1;
        } BIT;
    } SYIPR;
    char           wk0[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long VER:16;
            unsigned long REV:16;
        } BIT;
    } SYVRR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long MACU:24;
        } BIT;
    } SYMACRU;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long MACL:24;
        } BIT;
    } SYMACRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long :24;
            unsigned long LLC:8;
        } BIT;
    } SYLLCCTLR;
    unsigned long  SYIPR2;
    char           wk1[32];
    union {
        unsigned long LONG;
        struct {
            unsigned long :24;
            unsigned long TRSP:4;
            unsigned long VER:4;
        } BIT;
    } SYSPVRR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :24;
            unsigned long DNUM:8;
        } BIT;
    } SYDOMR;
    char           wk2[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long FLG15:1;
            unsigned long FLG14:1;
            unsigned long FLG13:1;
            unsigned long FLG12:1;
            unsigned long FLG11:1;
            unsigned long FLG10:1;
            unsigned long FLG9:1;
            unsigned long FLG8:1;
            unsigned long FLG7:1;
            unsigned long FLG6:1;
            unsigned long FLG5:1;
            unsigned long FLG4:1;
            unsigned long FLG3:1;
            unsigned long FLG2:1;
            unsigned long FLG1:1;
            unsigned long FLG0:1;
        } BIT;
    } ANFR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long FLG15:1;
            unsigned long FLG14:1;
            unsigned long FLG13:1;
            unsigned long FLG12:1;
            unsigned long FLG11:1;
            unsigned long FLG10:1;
            unsigned long FLG9:1;
            unsigned long FLG8:1;
            unsigned long FLG7:1;
            unsigned long FLG6:1;
            unsigned long FLG5:1;
            unsigned long FLG4:1;
            unsigned long FLG3:1;
            unsigned long FLG2:1;
            unsigned long FLG1:1;
            unsigned long FLG0:1;
        } BIT;
    } SYNFR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long FLG15:1;
            unsigned long FLG14:1;
            unsigned long FLG13:1;
            unsigned long FLG12:1;
            unsigned long FLG11:1;
            unsigned long FLG10:1;
            unsigned long FLG9:1;
            unsigned long FLG8:1;
            unsigned long FLG7:1;
            unsigned long FLG6:1;
            unsigned long FLG5:1;
            unsigned long FLG4:1;
            unsigned long FLG3:1;
            unsigned long FLG2:1;
            unsigned long FLG1:1;
            unsigned long FLG0:1;
        } BIT;
    } DYRQFR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long FLG15:1;
            unsigned long FLG14:1;
            unsigned long FLG13:1;
            unsigned long FLG12:1;
            unsigned long FLG11:1;
            unsigned long FLG10:1;
            unsigned long FLG9:1;
            unsigned long FLG8:1;
            unsigned long FLG7:1;
            unsigned long FLG6:1;
            unsigned long FLG5:1;
            unsigned long FLG4:1;
            unsigned long FLG3:1;
            unsigned long FLG2:1;
            unsigned long FLG1:1;
            unsigned long FLG0:1;
        } BIT;
    } DYRPFR;
    unsigned long  SYCIDRU;
    unsigned long  SYCIDRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long PNUM:16;
        } BIT;
    } SYPNUMR;
    char           wk3[20];
    union {
        unsigned long LONG;
        struct {
            unsigned long :29;
            unsigned long ANUP:1;
            unsigned long STUP:1;
            unsigned long BMUP:1;
        } BIT;
    } SYRVLDR;
    char           wk4[12];
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long PDFUP2:1;
            unsigned long PDFUP1:1;
            unsigned long PDFUP0:1;
            unsigned long :1;
            unsigned long PDRP2:1;
            unsigned long PDRP1:1;
            unsigned long PDRP0:1;
            unsigned long :1;
            unsigned long PDRQ2:1;
            unsigned long PDRQ1:1;
            unsigned long PDRQ0:1;
            unsigned long :1;
            unsigned long DRP2:1;
            unsigned long DRP1:1;
            unsigned long DRP0:1;
            unsigned long :1;
            unsigned long DRQ2:1;
            unsigned long DRQ1:1;
            unsigned long DRQ0:1;
            unsigned long :1;
            unsigned long FUP2:1;
            unsigned long FUP1:1;
            unsigned long FUP0:1;
            unsigned long :1;
            unsigned long SYNC2:1;
            unsigned long SYNC1:1;
            unsigned long SYNC0:1;
            unsigned long :2;
            unsigned long ANCE1:1;
            unsigned long ANCE0:1;
        } BIT;
    } SYRFL1R;
    union {
        unsigned long LONG;
        struct {
            unsigned long :2;
            unsigned long ILL1:1;
            unsigned long ILL0:1;
            unsigned long :22;
            unsigned long SIG1:1;
            unsigned long SIG0:1;
            unsigned long :2;
            unsigned long MAN1:1;
            unsigned long MAN0:1;
        } BIT;
    } SYRFL2R;
    union {
        unsigned long LONG;
        struct {
            unsigned long :19;
            unsigned long PDRQ:1;
            unsigned long :3;
            unsigned long DRQ:1;
            unsigned long :3;
            unsigned long SYNC:1;
            unsigned long :3;
            unsigned long ANCE:1;
        } BIT;
    } SYTRENR;
    char           wk5[4];
    unsigned long  MTCIDU;
    unsigned long  MTCIDL;
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long PNUM:16;
        } BIT;
    } MTPID;
    char           wk6[20];
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long DRQ:8;
            unsigned long SYNC:8;
            unsigned long ANCE:8;
        } BIT;
    } SYTLIR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long DRP:8;
            unsigned long SYNC:8;
            unsigned long ANCE:8;
        } BIT;
    } SYRLIR;
    unsigned long  OFMRU;
    unsigned long  OFMRL;
    unsigned long  MPDRU;
    unsigned long  MPDRL;
    char           wk7[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long GMPR1:8;
            unsigned long :8;
            unsigned long GMPR2:8;
        } BIT;
    } GMPR;
    unsigned long  GMCQR;
    unsigned long  GMIDRU;
    unsigned long  GMIDRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long CUTO:16;
            unsigned long :8;
            unsigned long TSRC:8;
        } BIT;
    } CUOTSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long SRMV:16;
        } BIT;
    } SRR;
    char           wk8[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long MACU:24;
        } BIT;
    } PPMACRU;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long MACL:24;
        } BIT;
    } PPMACRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long MACU:24;
        } BIT;
    } PDMACRU;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long MACL:24;
        } BIT;
    } PDMACRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long TYPE:16;
        } BIT;
    } PETYPER;
    char           wk9[12];
    unsigned long  PPIPR;
    unsigned long  PDIPR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :24;
            unsigned long EVTO:8;
        } BIT;
    } PETOSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :24;
            unsigned long GETO:8;
        } BIT;
    } PGTOSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :24;
            unsigned long PRTL:8;
        } BIT;
    } PPTTLR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :24;
            unsigned long PDTL:8;
        } BIT;
    } PDTTLR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long EVUPT:16;
        } BIT;
    } PEUDPR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long GEUPT:16;
        } BIT;
    } PGUDPR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :29;
            unsigned long ENB:1;
            unsigned long PRT:1;
            unsigned long SEL:1;
        } BIT;
    } FFLTR;
    char           wk10[28];
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long MACU:24;
        } BIT;
    } FMAC0RU;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long MACL:24;
        } BIT;
    } FMAC0RL;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long MACU:24;
        } BIT;
    } FMAC1RU;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long MACL:24;
        } BIT;
    } FMAC1RL;
    char           wk11[80];
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long ASYMU:16;
        } BIT;
    } DASYMRU;
    unsigned long  DASYMRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long INGP:16;
            unsigned long EGP:16;
        } BIT;
    } TSLATR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :7;
            unsigned long TRAN:1;
            unsigned long :3;
            unsigned long TCMOD:1;
            unsigned long :3;
            unsigned long FILDIS:1;
            unsigned long :3;
            unsigned long SBDIS:1;
            unsigned long :4;
            unsigned long TCYC:8;
        } BIT;
    } SYCONFR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :30;
            unsigned long FORM1:1;
            unsigned long FORM0:1;
        } BIT;
    } SYFORMR;
    unsigned long  RSTOUTR;
};

struct st_etherc {
    union {
        unsigned long LONG;
        struct {
            unsigned long :11;
            unsigned long TPC:1;
            unsigned long ZPF:1;
            unsigned long PFR:1;
            unsigned long RXF:1;
            unsigned long TXF:1;
            unsigned long :3;
            unsigned long PRCEF:1;
            unsigned long :2;
            unsigned long MPDE:1;
            unsigned long :2;
            unsigned long RE:1;
            unsigned long TE:1;
            unsigned long :1;
            unsigned long ILB:1;
            unsigned long RTM:1;
            unsigned long DM:1;
            unsigned long PRM:1;
        } BIT;
    } ECMR;
    char           wk0[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :20;
            unsigned long RFL:12;
        } BIT;
    } RFLR;
    char           wk1[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :26;
            unsigned long BFR:1;
            unsigned long PSRTO:1;
            unsigned long :1;
            unsigned long LCHNG:1;
            unsigned long MPD:1;
            unsigned long ICD:1;
        } BIT;
    } ECSR;
    char           wk2[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :26;
            unsigned long BFSIPR:1;
            unsigned long PSRTOIP:1;
            unsigned long :1;
            unsigned long LCHNGIP:1;
            unsigned long MPDIP:1;
            unsigned long ICDIP:1;
        } BIT;
    } ECSIPR;
    char           wk3[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :28;
            unsigned long MDI:1;
            unsigned long MDO:1;
            unsigned long MMD:1;
            unsigned long MDC:1;
        } BIT;
    } PIR;
    char           wk4[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long LMON:1;
        } BIT;
    } PSR;
    char           wk5[20];
    union {
        unsigned long LONG;
        struct {
            unsigned long :12;
            unsigned long RMD:20;
        } BIT;
    } RDMLR;
    char           wk6[12];
    union {
        unsigned long LONG;
        struct {
            unsigned long :27;
            unsigned long IPG:5;
        } BIT;
    } IPGR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long AP:16;
        } BIT;
    } APR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long MP:16;
        } BIT;
    } MPR;
    char           wk7[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :24;
            unsigned long RPAUSE:8;
        } BIT;
    } RFCF;
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long TPAUSE:16;
        } BIT;
    } TPAUSER;
    union {
        unsigned long LONG;
        struct {
            unsigned long :24;
            unsigned long TXP:8;
        } BIT;
    } TPAUSECR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long BCF:16;
        } BIT;
    } BCFRR;
    char           wk8[80];
    unsigned long  MAHR;
    char           wk9[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long :16;
            unsigned long MA:16;
        } BIT;
    } MALR;
    char           wk10[4];
    unsigned long  TROCR;
    unsigned long  CDCR;
    unsigned long  LCCR;
    unsigned long  CNDCR;
    char           wk11[4];
    unsigned long  CEFCR;
    unsigned long  FRECR;
    unsigned long  TSFRCR;
    unsigned long  TLFRCR;
    unsigned long  RFCR;
    unsigned long  MAFCR;
};

struct st_exdmac {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DMST:1;
        } BIT;
    } EDMAST;
    char           wk0[479];
    unsigned long  CLSBR0;
    unsigned long  CLSBR1;
    unsigned long  CLSBR2;
    unsigned long  CLSBR3;
    unsigned long  CLSBR4;
    unsigned long  CLSBR5;
    unsigned long  CLSBR6;
    unsigned long  CLSBR7;
};

struct st_exdmac0 {
//    unsigned long  EDMSAR;
//    unsigned long  EDMDAR;
    void          *EDMSAR;
    void          *EDMDAR;    
    unsigned long  EDMCRA;
    unsigned short EDMCRB;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short MD:2;
            unsigned short DTS:2;
            unsigned short :2;
            unsigned short SZ:2;
            unsigned short :6;
            unsigned short DCTG:2;
        } BIT;
    } EDMTMD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char DACKS:1;
            unsigned char DACKE:1;
            unsigned char DACKW:1;
            unsigned char DACKSEL:1;
        } BIT;
    } EDMOMD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char DTIE:1;
            unsigned char ESIE:1;
            unsigned char RPTIE:1;
            unsigned char SARIE:1;
            unsigned char DARIE:1;
        } BIT;
    } EDMINT;
    union {
        unsigned long LONG;
        struct {
            unsigned long :14;
            unsigned long AMS:1;
            unsigned long DIR:1;
            unsigned long SM:2;
            unsigned long :1;
            unsigned long SARA:5;
            unsigned long DM:2;
            unsigned long :1;
            unsigned long DARA:5;
        } BIT;
    } EDMAMD;
    unsigned long  EDMOFR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DTE:1;
        } BIT;
    } EDMCNT;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char CLRS:1;
            unsigned char :3;
            unsigned char SWREQ:1;
        } BIT;
    } EDMREQ;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ACT:1;
            unsigned char :2;
            unsigned char DTIF:1;
            unsigned char :3;
            unsigned char ESIF:1;
        } BIT;
    } EDMSTS;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char DREQS:2;
        } BIT;
    } EDMRMD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char EREQ:1;
        } BIT;
    } EDMERF;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char PREQ:1;
        } BIT;
    } EDMPRF;
};

struct st_exdmac1 {
//    unsigned long  EDMSAR;
//    unsigned long  EDMDAR;
    void          *EDMSAR;
    void          *EDMDAR;    
    unsigned long  EDMCRA;
    unsigned short EDMCRB;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short MD:2;
            unsigned short DTS:2;
            unsigned short :2;
            unsigned short SZ:2;
            unsigned short :6;
            unsigned short DCTG:2;
        } BIT;
    } EDMTMD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char DACKS:1;
            unsigned char DACKE:1;
            unsigned char DACKW:1;
            unsigned char DACKSEL:1;
        } BIT;
    } EDMOMD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char DTIE:1;
            unsigned char ESIE:1;
            unsigned char RPTIE:1;
            unsigned char SARIE:1;
            unsigned char DARIE:1;
        } BIT;
    } EDMINT;
    union {
        unsigned long LONG;
        struct {
            unsigned long :14;
            unsigned long AMS:1;
            unsigned long DIR:1;
            unsigned long SM:2;
            unsigned long :1;
            unsigned long SARA:5;
            unsigned long DM:2;
            unsigned long :1;
            unsigned long DARA:5;
        } BIT;
    } EDMAMD;
    char           wk1[4];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DTE:1;
        } BIT;
    } EDMCNT;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char CLRS:1;
            unsigned char :3;
            unsigned char SWREQ:1;
        } BIT;
    } EDMREQ;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ACT:1;
            unsigned char :2;
            unsigned char DTIF:1;
            unsigned char :3;
            unsigned char ESIF:1;
        } BIT;
    } EDMSTS;
    char           wk2[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char DREQS:2;
        } BIT;
    } EDMRMD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char EREQ:1;
        } BIT;
    } EDMERF;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char PREQ:1;
        } BIT;
    } EDMPRF;
};

struct st_gpt {
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :8;
            unsigned char :4;
            unsigned char CST3:1;
            unsigned char CST2:1;
            unsigned char CST1:1;
            unsigned char CST0:1;
        } BIT;
    } GTSTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short NFCS3:2;
            unsigned short NFCS2:2;
            unsigned short NFCS1:2;
            unsigned short NFCS0:2;
            unsigned short NFB3EN:1;
            unsigned short NFA3EN:1;
            unsigned short NFB2EN:1;
            unsigned short NFA2EN:1;
            unsigned short NFB1EN:1;
            unsigned short NFA1EN:1;
            unsigned short NFB0EN:1;
            unsigned short NFA0EN:1;
        } BIT;
    } NFCR;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char CPHW3:2;
            unsigned char CPHW2:2;
            unsigned char CPHW1:2;
            unsigned char CPHW0:2;
            unsigned char CSHW3:2;
            unsigned char CSHW2:2;
            unsigned char CSHW1:2;
            unsigned char CSHW0:2;
        } BIT;
    } GTHSCR;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :4;
            unsigned char CCSW3:1;
            unsigned char CCSW2:1;
            unsigned char CCSW1:1;
            unsigned char CCSW0:1;
            unsigned char CCHW3:2;
            unsigned char CCHW2:2;
            unsigned char CCHW1:2;
            unsigned char CCHW0:2;
        } BIT;
    } GTHCCR;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char CSHSL3:4;
            unsigned char CSHSL2:4;
            unsigned char CSHSL1:4;
            unsigned char CSHSL0:4;
        } BIT;
    } GTHSSR;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char CSHPL3:4;
            unsigned char CSHPL2:4;
            unsigned char CSHPL1:4;
            unsigned char CSHPL0:4;
        } BIT;
    } GTHPSR;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :8;
            unsigned char :4;
            unsigned char WP3:1;
            unsigned char WP2:1;
            unsigned char WP1:1;
            unsigned char WP0:1;
        } BIT;
    } GTWP;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :2;
            unsigned char SYNC3:2;
            unsigned char :2;
            unsigned char SYNC2:2;
            unsigned char :2;
            unsigned char SYNC1:2;
            unsigned char :2;
            unsigned char SYNC0:2;
        } BIT;
    } GTSYNC;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char GTETRGEN:1;
            unsigned char GTENFCS:2;
            unsigned char :3;
            unsigned char ETINF:1;
            unsigned char ETIPF:1;
            unsigned char :6;
            unsigned char ETINEN:1;
            unsigned char ETIPEN:1;
        } BIT;
    } GTETINT;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char BD33:1;
            unsigned char BD32:1;
            unsigned char BD31:1;
            unsigned char BD30:1;
            unsigned char BD23:1;
            unsigned char BD22:1;
            unsigned char BD21:1;
            unsigned char BD20:1;
            unsigned char BD13:1;
            unsigned char BD12:1;
            unsigned char BD11:1;
            unsigned char BD10:1;
            unsigned char BD03:1;
            unsigned char BD02:1;
            unsigned char BD01:1;
            unsigned char BD00:1;
        } BIT;
    } GTBDR;
    char           wk1[2];
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :8;
            unsigned char :4;
            unsigned char SWP3:1;
            unsigned char SWP2:1;
            unsigned char SWP1:1;
            unsigned char SWP0:1;
        } BIT;
    } GTSWP;
};

struct st_gpt0 {
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char OBHLD:1;
            unsigned char OBDFLT:1;
            unsigned char GTIOB:6;
            unsigned char OAHLD:1;
            unsigned char OADFLT:1;
            unsigned char GTIOA:6;
        } BIT;
    } GTIOR;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char ADTRBDEN:1;
            unsigned char ADTRBUEN:1;
            unsigned char ADTRADEN:1;
            unsigned char ADTRAUEN:1;
            unsigned char EINT:1;
            unsigned char :3;
            unsigned char GTINTPR:2;
            unsigned char GTINTF:1;
            unsigned char GTINTE:1;
            unsigned char GTINTD:1;
            unsigned char GTINTC:1;
            unsigned char GTINTB:1;
            unsigned char GTINTA:1;
        } BIT;
    } GTINTAD;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :2;
            unsigned char CCLR:2;
            unsigned char :2;
            unsigned char TPCS:2;
            unsigned char :5;
            unsigned char MD:3;
        } BIT;
    } GTCR;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :1;
            unsigned char ADTDB:1;
            unsigned char ADTTB:2;
            unsigned char :1;
            unsigned char ADTDA:1;
            unsigned char ADTTA:2;
            unsigned char :1;
            unsigned char CCRSWT:1;
            unsigned char PR:2;
            unsigned char CCRB:2;
            unsigned char CCRA:2;
        } BIT;
    } GTBER;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :8;
            unsigned char :6;
            unsigned char UDF:1;
            unsigned char UD:1;
        } BIT;
    } GTUDC;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :1;
            unsigned char ADTBL:1;
            unsigned char :1;
            unsigned char ADTAL:1;
            unsigned char :1;
            unsigned char IVTT:3;
            unsigned char IVTC:2;
            unsigned char ITLF:1;
            unsigned char ITLE:1;
            unsigned char ITLD:1;
            unsigned char ITLC:1;
            unsigned char ITLB:1;
            unsigned char ITLA:1;
        } BIT;
    } GTITC;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char TUCF:1;
            unsigned char :3;
            unsigned char DTEF:1;
            unsigned char ITCNT:3;
            unsigned char TCFPU:1;
            unsigned char TCFPO:1;
            unsigned char TCFF:1;
            unsigned char TCFE:1;
            unsigned char TCFD:1;
            unsigned char TCFC:1;
            unsigned char TCFB:1;
            unsigned char TCFA:1;
        } BIT;
    } GTST;
    unsigned short GTCNT;
    unsigned short GTCCRA;
    unsigned short GTCCRB;
    unsigned short GTCCRC;
    unsigned short GTCCRD;
    unsigned short GTCCRE;
    unsigned short GTCCRF;
    unsigned short GTPR;
    unsigned short GTPBR;
    unsigned short GTPDBR;
    char           wk0[2];
    unsigned short GTADTRA;
    unsigned short GTADTBRA;
    unsigned short GTADTDBRA;
    char           wk1[2];
    unsigned short GTADTRB;
    unsigned short GTADTBRB;
    unsigned short GTADTDBRB;
    char           wk2[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short OBE:1;
            unsigned short OAE:1;
            unsigned short :1;
            unsigned short SWN:1;
            unsigned short :3;
            unsigned short NFV:1;
            unsigned short NFS:4;
            unsigned short NVB:1;
            unsigned short NVA:1;
            unsigned short NEB:1;
            unsigned short NEA:1;
        } BIT;
    } GTONCR;
    union {
        unsigned short WORD;
        struct {
            unsigned short :7;
            unsigned short TDFER:1;
            unsigned short :2;
            unsigned short TDBDE:1;
            unsigned short TDBUE:1;
            unsigned short :3;
            unsigned short TDE:1;
        } BIT;
    } GTDTCR;
    unsigned short GTDVU;
    unsigned short GTDVD;
    unsigned short GTDBU;
    unsigned short GTDBD;
    union {
        unsigned short WORD;
        struct {
            unsigned short :14;
            unsigned short SOS:2;
        } BIT;
    } GTSOS;
    union {
        unsigned short WORD;
        struct {
            unsigned short :15;
            unsigned short SOTR:1;
        } BIT;
    } GTSOTR;
};

struct st_icu {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char IR:1;
        } BIT;
    } IR[256];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DTCE:1;
        } BIT;
    } DTCER[256];
    union {
        unsigned char BYTE;
        struct {
            unsigned char IEN7:1;
            unsigned char IEN6:1;
            unsigned char IEN5:1;
            unsigned char IEN4:1;
            unsigned char IEN3:1;
            unsigned char IEN2:1;
            unsigned char IEN1:1;
            unsigned char IEN0:1;
        } BIT;
    } IER[32];
    char           wk0[192];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char SWINT:1;
        } BIT;
    } SWINTR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char SWINT2:1;
        } BIT;
    } SWINT2R;
    char           wk1[14];
    union {
        unsigned short WORD;
        struct {
            unsigned short FIEN:1;
            unsigned short :7;
            unsigned short FVCT:8;
        } BIT;
    } FIR;
    char           wk2[14];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char IPR:4;
        } BIT;
    } IPR[256];
    unsigned char  DMRSR0;
    char           wk3[3];
    unsigned char  DMRSR1;
    char           wk4[3];
    unsigned char  DMRSR2;
    char           wk5[3];
    unsigned char  DMRSR3;
    char           wk6[3];
    unsigned char  DMRSR4;
    char           wk7[3];
    unsigned char  DMRSR5;
    char           wk8[3];
    unsigned char  DMRSR6;
    char           wk9[3];
    unsigned char  DMRSR7;
    char           wk10[227];
//    union {
//        unsigned char BYTE;
//        struct {
//            unsigned char DMRS:8;
//        } BIT;
//    } DMRSR0;
//    char           wk3[3];
//    union {
//        unsigned char BYTE;
//        struct {
//            unsigned char DMRS:8;
//        } BIT;
//    } DMRSR1;
//    char           wk4[3];
//    union {
//        unsigned char BYTE;
//        struct {
//            unsigned char DMRS:8;
//        } BIT;
//    } DMRSR2;
//    char           wk5[3];
//    union {
//        unsigned char BYTE;
//        struct {
//            unsigned char DMRS:8;
//        } BIT;
//    } DMRSR3;
//    char           wk6[3];
//    union {
//        unsigned char BYTE;
//        struct {
//            unsigned char DMRS:8;
//        } BIT;
//    } DMRSR4;
//    char           wk7[3];
//    union {
//        unsigned char BYTE;
//        struct {
//            unsigned char DMRS:8;
//        } BIT;
//    } DMRSR5;
//    char           wk8[3];
//    union {
//        unsigned char BYTE;
//        struct {
//            unsigned char DMRS:8;
//        } BIT;
//    } DMRSR6;
//    char           wk9[3];
//    union {
//        unsigned char BYTE;
//        struct {
//            unsigned char DMRS:8;
//        } BIT;
//    } DMRSR7;
//    char           wk10[227];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char IRQMD:2;
        } BIT;
    } IRQCR[16];
    char           wk11[16];
    union {
        unsigned char BYTE;
        struct {
            unsigned char FLTEN7:1;
            unsigned char FLTEN6:1;
            unsigned char FLTEN5:1;
            unsigned char FLTEN4:1;
            unsigned char FLTEN3:1;
            unsigned char FLTEN2:1;
            unsigned char FLTEN1:1;
            unsigned char FLTEN0:1;
        } BIT;
    } IRQFLTE0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char FLTEN15:1;
            unsigned char FLTEN14:1;
            unsigned char FLTEN13:1;
            unsigned char FLTEN12:1;
            unsigned char FLTEN11:1;
            unsigned char FLTEN10:1;
            unsigned char FLTEN9:1;
            unsigned char FLTEN8:1;
        } BIT;
    } IRQFLTE1;
    char           wk12[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short FCLKSEL7:2;
            unsigned short FCLKSEL6:2;
            unsigned short FCLKSEL5:2;
            unsigned short FCLKSEL4:2;
            unsigned short FCLKSEL3:2;
            unsigned short FCLKSEL2:2;
            unsigned short FCLKSEL1:2;
            unsigned short FCLKSEL0:2;
        } BIT;
    } IRQFLTC0;
    union {
        unsigned short WORD;
        struct {
            unsigned short FCLKSEL15:2;
            unsigned short FCLKSEL14:2;
            unsigned short FCLKSEL13:2;
            unsigned short FCLKSEL12:2;
            unsigned short FCLKSEL11:2;
            unsigned short FCLKSEL10:2;
            unsigned short FCLKSEL9:2;
            unsigned short FCLKSEL8:2;
        } BIT;
    } IRQFLTC1;
    char           wk13[84];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ECCRAMST:1;
            unsigned char LVD2ST:1;
            unsigned char LVD1ST:1;
            unsigned char IWDTST:1;
            unsigned char WDTST:1;
            unsigned char OSTST:1;
            unsigned char NMIST:1;
        } BIT;
    } NMISR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ECCRAMEN:1;
            unsigned char LVD2EN:1;
            unsigned char LVD1EN:1;
            unsigned char IWDTEN:1;
            unsigned char WDTEN:1;
            unsigned char OSTEN:1;
            unsigned char NMIEN:1;
        } BIT;
    } NMIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ECCRAMCLR:1;
            unsigned char LVD2CLR:1;
            unsigned char LVD1CLR:1;
            unsigned char IWDTCLR:1;
            unsigned char WDTCLR:1;
            unsigned char OSTCLR:1;
            unsigned char NMICLR:1;
        } BIT;
    } NMICLR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char NMIMD:1;
        } BIT;
    } NMICR;
    char           wk14[12];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char NFLTEN:1;
        } BIT;
    } NMIFLTE;
    char           wk15[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char NFCLKSEL:2;
        } BIT;
    } NMIFLTC;
    char           wk16[107];
    union {
        unsigned long LONG;
        struct {
            unsigned long IS31:1;
            unsigned long IS30:1;
            unsigned long IS29:1;
            unsigned long IS28:1;
            unsigned long IS27:1;
            unsigned long IS26:1;
            unsigned long IS25:1;
            unsigned long IS24:1;
            unsigned long IS23:1;
            unsigned long IS22:1;
            unsigned long IS21:1;
            unsigned long IS20:1;
            unsigned long IS19:1;
            unsigned long IS18:1;
            unsigned long IS17:1;
            unsigned long IS16:1;
            unsigned long IS15:1;
            unsigned long IS14:1;
            unsigned long IS13:1;
            unsigned long IS12:1;
            unsigned long IS11:1;
            unsigned long IS10:1;
            unsigned long IS9:1;
            unsigned long IS8:1;
            unsigned long IS7:1;
            unsigned long IS6:1;
            unsigned long IS5:1;
            unsigned long IS4:1;
            unsigned long IS3:1;
            unsigned long IS2:1;
            unsigned long IS1:1;
            unsigned long IS0:1;
        } BIT;
    } GRPBE0;
    union {
        unsigned long LONG;
        struct {
            unsigned long IS31:1;
            unsigned long IS30:1;
            unsigned long IS29:1;
            unsigned long IS28:1;
            unsigned long IS27:1;
            unsigned long IS26:1;
            unsigned long IS25:1;
            unsigned long IS24:1;
            unsigned long IS23:1;
            unsigned long IS22:1;
            unsigned long IS21:1;
            unsigned long IS20:1;
            unsigned long IS19:1;
            unsigned long IS18:1;
            unsigned long IS17:1;
            unsigned long IS16:1;
            unsigned long IS15:1;
            unsigned long IS14:1;
            unsigned long IS13:1;
            unsigned long IS12:1;
            unsigned long IS11:1;
            unsigned long IS10:1;
            unsigned long IS9:1;
            unsigned long IS8:1;
            unsigned long IS7:1;
            unsigned long IS6:1;
            unsigned long IS5:1;
            unsigned long IS4:1;
            unsigned long IS3:1;
            unsigned long IS2:1;
            unsigned long IS1:1;
            unsigned long IS0:1;
        } BIT;
    } GRPBE1;
    char           wk17[40];
    union {
        unsigned long LONG;
        struct {
            unsigned long IS31:1;
            unsigned long IS30:1;
            unsigned long IS29:1;
            unsigned long IS28:1;
            unsigned long IS27:1;
            unsigned long IS26:1;
            unsigned long IS25:1;
            unsigned long IS24:1;
            unsigned long IS23:1;
            unsigned long IS22:1;
            unsigned long IS21:1;
            unsigned long IS20:1;
            unsigned long IS19:1;
            unsigned long IS18:1;
            unsigned long IS17:1;
            unsigned long IS16:1;
            unsigned long IS15:1;
            unsigned long IS14:1;
            unsigned long IS13:1;
            unsigned long IS12:1;
            unsigned long IS11:1;
            unsigned long IS10:1;
            unsigned long IS9:1;
            unsigned long IS8:1;
            unsigned long IS7:1;
            unsigned long IS6:1;
            unsigned long IS5:1;
            unsigned long IS4:1;
            unsigned long IS3:1;
            unsigned long IS2:1;
            unsigned long IS1:1;
            unsigned long IS0:1;
        } BIT;
    } GRPBL0;
    union {
        unsigned long LONG;
        struct {
            unsigned long IS31:1;
            unsigned long IS30:1;
            unsigned long IS29:1;
            unsigned long IS28:1;
            unsigned long IS27:1;
            unsigned long IS26:1;
            unsigned long IS25:1;
            unsigned long IS24:1;
            unsigned long IS23:1;
            unsigned long IS22:1;
            unsigned long IS21:1;
            unsigned long IS20:1;
            unsigned long IS19:1;
            unsigned long IS18:1;
            unsigned long IS17:1;
            unsigned long IS16:1;
            unsigned long IS15:1;
            unsigned long IS14:1;
            unsigned long IS13:1;
            unsigned long IS12:1;
            unsigned long IS11:1;
            unsigned long IS10:1;
            unsigned long IS9:1;
            unsigned long IS8:1;
            unsigned long IS7:1;
            unsigned long IS6:1;
            unsigned long IS5:1;
            unsigned long IS4:1;
            unsigned long IS3:1;
            unsigned long IS2:1;
            unsigned long IS1:1;
            unsigned long IS0:1;
        } BIT;
    } GRPBL1;
    char           wk18[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long EN31:1;
            unsigned long EN30:1;
            unsigned long EN29:1;
            unsigned long EN28:1;
            unsigned long EN27:1;
            unsigned long EN26:1;
            unsigned long EN25:1;
            unsigned long EN24:1;
            unsigned long EN23:1;
            unsigned long EN22:1;
            unsigned long EN21:1;
            unsigned long EN20:1;
            unsigned long EN19:1;
            unsigned long EN18:1;
            unsigned long EN17:1;
            unsigned long EN16:1;
            unsigned long EN15:1;
            unsigned long EN14:1;
            unsigned long EN13:1;
            unsigned long EN12:1;
            unsigned long EN11:1;
            unsigned long EN10:1;
            unsigned long EN9:1;
            unsigned long EN8:1;
            unsigned long EN7:1;
            unsigned long EN6:1;
            unsigned long EN5:1;
            unsigned long EN4:1;
            unsigned long EN3:1;
            unsigned long EN2:1;
            unsigned long EN1:1;
            unsigned long EN0:1;
        } BIT;
    } GENBE0;
    union {
        unsigned long LONG;
        struct {
            unsigned long EN31:1;
            unsigned long EN30:1;
            unsigned long EN29:1;
            unsigned long EN28:1;
            unsigned long EN27:1;
            unsigned long EN26:1;
            unsigned long EN25:1;
            unsigned long EN24:1;
            unsigned long EN23:1;
            unsigned long EN22:1;
            unsigned long EN21:1;
            unsigned long EN20:1;
            unsigned long EN19:1;
            unsigned long EN18:1;
            unsigned long EN17:1;
            unsigned long EN16:1;
            unsigned long EN15:1;
            unsigned long EN14:1;
            unsigned long EN13:1;
            unsigned long EN12:1;
            unsigned long EN11:1;
            unsigned long EN10:1;
            unsigned long EN9:1;
            unsigned long EN8:1;
            unsigned long EN7:1;
            unsigned long EN6:1;
            unsigned long EN5:1;
            unsigned long EN4:1;
            unsigned long EN3:1;
            unsigned long EN2:1;
            unsigned long EN1:1;
            unsigned long EN0:1;
        } BIT;
    } GENBE1;
    char           wk19[40];
    union {
        unsigned long LONG;
        struct {
            unsigned long EN31:1;
            unsigned long EN30:1;
            unsigned long EN29:1;
            unsigned long EN28:1;
            unsigned long EN27:1;
            unsigned long EN26:1;
            unsigned long EN25:1;
            unsigned long EN24:1;
            unsigned long EN23:1;
            unsigned long EN22:1;
            unsigned long EN21:1;
            unsigned long EN20:1;
            unsigned long EN19:1;
            unsigned long EN18:1;
            unsigned long EN17:1;
            unsigned long EN16:1;
            unsigned long EN15:1;
            unsigned long EN14:1;
            unsigned long EN13:1;
            unsigned long EN12:1;
            unsigned long EN11:1;
            unsigned long EN10:1;
            unsigned long EN9:1;
            unsigned long EN8:1;
            unsigned long EN7:1;
            unsigned long EN6:1;
            unsigned long EN5:1;
            unsigned long EN4:1;
            unsigned long EN3:1;
            unsigned long EN2:1;
            unsigned long EN1:1;
            unsigned long EN0:1;
        } BIT;
    } GENBL0;
    union {
        unsigned long LONG;
        struct {
            unsigned long EN31:1;
            unsigned long EN30:1;
            unsigned long EN29:1;
            unsigned long EN28:1;
            unsigned long EN27:1;
            unsigned long EN26:1;
            unsigned long EN25:1;
            unsigned long EN24:1;
            unsigned long EN23:1;
            unsigned long EN22:1;
            unsigned long EN21:1;
            unsigned long EN20:1;
            unsigned long EN19:1;
            unsigned long EN18:1;
            unsigned long EN17:1;
            unsigned long EN16:1;
            unsigned long EN15:1;
            unsigned long EN14:1;
            unsigned long EN13:1;
            unsigned long EN12:1;
            unsigned long EN11:1;
            unsigned long EN10:1;
            unsigned long EN9:1;
            unsigned long EN8:1;
            unsigned long EN7:1;
            unsigned long EN6:1;
            unsigned long EN5:1;
            unsigned long EN4:1;
            unsigned long EN3:1;
            unsigned long EN2:1;
            unsigned long EN1:1;
            unsigned long EN0:1;
        } BIT;
    } GENBL1;
    char           wk20[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long CLR31:1;
            unsigned long CLR30:1;
            unsigned long CLR29:1;
            unsigned long CLR28:1;
            unsigned long CLR27:1;
            unsigned long CLR26:1;
            unsigned long CLR25:1;
            unsigned long CLR24:1;
            unsigned long CLR23:1;
            unsigned long CLR22:1;
            unsigned long CLR21:1;
            unsigned long CLR20:1;
            unsigned long CLR19:1;
            unsigned long CLR18:1;
            unsigned long CLR17:1;
            unsigned long CLR16:1;
            unsigned long CLR15:1;
            unsigned long CLR14:1;
            unsigned long CLR13:1;
            unsigned long CLR12:1;
            unsigned long CLR11:1;
            unsigned long CLR10:1;
            unsigned long CLR9:1;
            unsigned long CLR8:1;
            unsigned long CLR7:1;
            unsigned long CLR6:1;
            unsigned long CLR5:1;
            unsigned long CLR4:1;
            unsigned long CLR3:1;
            unsigned long CLR2:1;
            unsigned long CLR1:1;
            unsigned long CLR0:1;
        } BIT;
    } GCREBE0;
    union {
        unsigned long LONG;
        struct {
            unsigned long CLR31:1;
            unsigned long CLR30:1;
            unsigned long CLR29:1;
            unsigned long CLR28:1;
            unsigned long CLR27:1;
            unsigned long CLR26:1;
            unsigned long CLR25:1;
            unsigned long CLR24:1;
            unsigned long CLR23:1;
            unsigned long CLR22:1;
            unsigned long CLR21:1;
            unsigned long CLR20:1;
            unsigned long CLR19:1;
            unsigned long CLR18:1;
            unsigned long CLR17:1;
            unsigned long CLR16:1;
            unsigned long CLR15:1;
            unsigned long CLR14:1;
            unsigned long CLR13:1;
            unsigned long CLR12:1;
            unsigned long CLR11:1;
            unsigned long CLR10:1;
            unsigned long CLR9:1;
            unsigned long CLR8:1;
            unsigned long CLR7:1;
            unsigned long CLR6:1;
            unsigned long CLR5:1;
            unsigned long CLR4:1;
            unsigned long CLR3:1;
            unsigned long CLR2:1;
            unsigned long CLR1:1;
            unsigned long CLR0:1;
        } BIT;
    } GCREBE1;
    char           wk21[120];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIBR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIBR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIBR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIBR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIBR4;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIBR5;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIBR6;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIBR7;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIBR8;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIBR9;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIBRA;
    char           wk22[117];
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR128;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR129;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR130;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR131;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR132;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR133;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR134;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR135;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR136;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR137;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR138;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR139;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR140;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR141;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR142;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBXR143;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR144;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR145;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR146;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR147;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR148;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR149;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR150;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR151;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR152;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR153;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR154;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR155;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR156;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR157;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR158;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR159;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR160;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR161;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR162;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR163;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR164;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR165;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR166;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR167;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR168;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR169;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR170;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR171;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR172;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR173;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR174;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR175;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR176;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR177;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR178;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR179;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR180;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR181;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR182;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR183;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR184;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR185;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR186;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR187;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR188;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR189;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR190;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR191;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR192;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR193;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR194;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR195;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR196;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR197;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR198;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR199;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR200;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR201;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR202;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR203;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR204;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR205;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR206;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIBR207;
    char           wk23[48];
    union {
        unsigned long LONG;
        struct {
            unsigned long IS31:1;
            unsigned long IS30:1;
            unsigned long IS29:1;
            unsigned long IS28:1;
            unsigned long IS27:1;
            unsigned long IS26:1;
            unsigned long IS25:1;
            unsigned long IS24:1;
            unsigned long IS23:1;
            unsigned long IS22:1;
            unsigned long IS21:1;
            unsigned long IS20:1;
            unsigned long IS19:1;
            unsigned long IS18:1;
            unsigned long IS17:1;
            unsigned long IS16:1;
            unsigned long IS15:1;
            unsigned long IS14:1;
            unsigned long IS13:1;
            unsigned long IS12:1;
            unsigned long IS11:1;
            unsigned long IS10:1;
            unsigned long IS9:1;
            unsigned long IS8:1;
            unsigned long IS7:1;
            unsigned long IS6:1;
            unsigned long IS5:1;
            unsigned long IS4:1;
            unsigned long IS3:1;
            unsigned long IS2:1;
            unsigned long IS1:1;
            unsigned long IS0:1;
        } BIT;
    } GRPAE0;
    union {
        unsigned long LONG;
        struct {
            unsigned long IS31:1;
            unsigned long IS30:1;
            unsigned long IS29:1;
            unsigned long IS28:1;
            unsigned long IS27:1;
            unsigned long IS26:1;
            unsigned long IS25:1;
            unsigned long IS24:1;
            unsigned long IS23:1;
            unsigned long IS22:1;
            unsigned long IS21:1;
            unsigned long IS20:1;
            unsigned long IS19:1;
            unsigned long IS18:1;
            unsigned long IS17:1;
            unsigned long IS16:1;
            unsigned long IS15:1;
            unsigned long IS14:1;
            unsigned long IS13:1;
            unsigned long IS12:1;
            unsigned long IS11:1;
            unsigned long IS10:1;
            unsigned long IS9:1;
            unsigned long IS8:1;
            unsigned long IS7:1;
            unsigned long IS6:1;
            unsigned long IS5:1;
            unsigned long IS4:1;
            unsigned long IS3:1;
            unsigned long IS2:1;
            unsigned long IS1:1;
            unsigned long IS0:1;
        } BIT;
    } GRPAE1;
    char           wk24[40];
    union {
        unsigned long LONG;
        struct {
            unsigned long IS31:1;
            unsigned long IS30:1;
            unsigned long IS29:1;
            unsigned long IS28:1;
            unsigned long IS27:1;
            unsigned long IS26:1;
            unsigned long IS25:1;
            unsigned long IS24:1;
            unsigned long IS23:1;
            unsigned long IS22:1;
            unsigned long IS21:1;
            unsigned long IS20:1;
            unsigned long IS19:1;
            unsigned long IS18:1;
            unsigned long IS17:1;
            unsigned long IS16:1;
            unsigned long IS15:1;
            unsigned long IS14:1;
            unsigned long IS13:1;
            unsigned long IS12:1;
            unsigned long IS11:1;
            unsigned long IS10:1;
            unsigned long IS9:1;
            unsigned long IS8:1;
            unsigned long IS7:1;
            unsigned long IS6:1;
            unsigned long IS5:1;
            unsigned long IS4:1;
            unsigned long IS3:1;
            unsigned long IS2:1;
            unsigned long IS1:1;
            unsigned long IS0:1;
        } BIT;
    } GRPAL0;
    union {
        unsigned long LONG;
        struct {
            unsigned long IS31:1;
            unsigned long IS30:1;
            unsigned long IS29:1;
            unsigned long IS28:1;
            unsigned long IS27:1;
            unsigned long IS26:1;
            unsigned long IS25:1;
            unsigned long IS24:1;
            unsigned long IS23:1;
            unsigned long IS22:1;
            unsigned long IS21:1;
            unsigned long IS20:1;
            unsigned long IS19:1;
            unsigned long IS18:1;
            unsigned long IS17:1;
            unsigned long IS16:1;
            unsigned long IS15:1;
            unsigned long IS14:1;
            unsigned long IS13:1;
            unsigned long IS12:1;
            unsigned long IS11:1;
            unsigned long IS10:1;
            unsigned long IS9:1;
            unsigned long IS8:1;
            unsigned long IS7:1;
            unsigned long IS6:1;
            unsigned long IS5:1;
            unsigned long IS4:1;
            unsigned long IS3:1;
            unsigned long IS2:1;
            unsigned long IS1:1;
            unsigned long IS0:1;
        } BIT;
    } GRPAL1;
    char           wk25[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long EN31:1;
            unsigned long EN30:1;
            unsigned long EN29:1;
            unsigned long EN28:1;
            unsigned long EN27:1;
            unsigned long EN26:1;
            unsigned long EN25:1;
            unsigned long EN24:1;
            unsigned long EN23:1;
            unsigned long EN22:1;
            unsigned long EN21:1;
            unsigned long EN20:1;
            unsigned long EN19:1;
            unsigned long EN18:1;
            unsigned long EN17:1;
            unsigned long EN16:1;
            unsigned long EN15:1;
            unsigned long EN14:1;
            unsigned long EN13:1;
            unsigned long EN12:1;
            unsigned long EN11:1;
            unsigned long EN10:1;
            unsigned long EN9:1;
            unsigned long EN8:1;
            unsigned long EN7:1;
            unsigned long EN6:1;
            unsigned long EN5:1;
            unsigned long EN4:1;
            unsigned long EN3:1;
            unsigned long EN2:1;
            unsigned long EN1:1;
            unsigned long EN0:1;
        } BIT;
    } GENAE0;
    union {
        unsigned long LONG;
        struct {
            unsigned long EN31:1;
            unsigned long EN30:1;
            unsigned long EN29:1;
            unsigned long EN28:1;
            unsigned long EN27:1;
            unsigned long EN26:1;
            unsigned long EN25:1;
            unsigned long EN24:1;
            unsigned long EN23:1;
            unsigned long EN22:1;
            unsigned long EN21:1;
            unsigned long EN20:1;
            unsigned long EN19:1;
            unsigned long EN18:1;
            unsigned long EN17:1;
            unsigned long EN16:1;
            unsigned long EN15:1;
            unsigned long EN14:1;
            unsigned long EN13:1;
            unsigned long EN12:1;
            unsigned long EN11:1;
            unsigned long EN10:1;
            unsigned long EN9:1;
            unsigned long EN8:1;
            unsigned long EN7:1;
            unsigned long EN6:1;
            unsigned long EN5:1;
            unsigned long EN4:1;
            unsigned long EN3:1;
            unsigned long EN2:1;
            unsigned long EN1:1;
            unsigned long EN0:1;
        } BIT;
    } GENAE1;
    char           wk26[40];
    union {
        unsigned long LONG;
        struct {
            unsigned long EN31:1;
            unsigned long EN30:1;
            unsigned long EN29:1;
            unsigned long EN28:1;
            unsigned long EN27:1;
            unsigned long EN26:1;
            unsigned long EN25:1;
            unsigned long EN24:1;
            unsigned long EN23:1;
            unsigned long EN22:1;
            unsigned long EN21:1;
            unsigned long EN20:1;
            unsigned long EN19:1;
            unsigned long EN18:1;
            unsigned long EN17:1;
            unsigned long EN16:1;
            unsigned long EN15:1;
            unsigned long EN14:1;
            unsigned long EN13:1;
            unsigned long EN12:1;
            unsigned long EN11:1;
            unsigned long EN10:1;
            unsigned long EN9:1;
            unsigned long EN8:1;
            unsigned long EN7:1;
            unsigned long EN6:1;
            unsigned long EN5:1;
            unsigned long EN4:1;
            unsigned long EN3:1;
            unsigned long EN2:1;
            unsigned long EN1:1;
            unsigned long EN0:1;
        } BIT;
    } GENAL0;
    union {
        unsigned long LONG;
        struct {
            unsigned long EN31:1;
            unsigned long EN30:1;
            unsigned long EN29:1;
            unsigned long EN28:1;
            unsigned long EN27:1;
            unsigned long EN26:1;
            unsigned long EN25:1;
            unsigned long EN24:1;
            unsigned long EN23:1;
            unsigned long EN22:1;
            unsigned long EN21:1;
            unsigned long EN20:1;
            unsigned long EN19:1;
            unsigned long EN18:1;
            unsigned long EN17:1;
            unsigned long EN16:1;
            unsigned long EN15:1;
            unsigned long EN14:1;
            unsigned long EN13:1;
            unsigned long EN12:1;
            unsigned long EN11:1;
            unsigned long EN10:1;
            unsigned long EN9:1;
            unsigned long EN8:1;
            unsigned long EN7:1;
            unsigned long EN6:1;
            unsigned long EN5:1;
            unsigned long EN4:1;
            unsigned long EN3:1;
            unsigned long EN2:1;
            unsigned long EN1:1;
            unsigned long EN0:1;
        } BIT;
    } GENAL1;
    char           wk27[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long CLR31:1;
            unsigned long CLR30:1;
            unsigned long CLR29:1;
            unsigned long CLR28:1;
            unsigned long CLR27:1;
            unsigned long CLR26:1;
            unsigned long CLR25:1;
            unsigned long CLR24:1;
            unsigned long CLR23:1;
            unsigned long CLR22:1;
            unsigned long CLR21:1;
            unsigned long CLR20:1;
            unsigned long CLR19:1;
            unsigned long CLR18:1;
            unsigned long CLR17:1;
            unsigned long CLR16:1;
            unsigned long CLR15:1;
            unsigned long CLR14:1;
            unsigned long CLR13:1;
            unsigned long CLR12:1;
            unsigned long CLR11:1;
            unsigned long CLR10:1;
            unsigned long CLR9:1;
            unsigned long CLR8:1;
            unsigned long CLR7:1;
            unsigned long CLR6:1;
            unsigned long CLR5:1;
            unsigned long CLR4:1;
            unsigned long CLR3:1;
            unsigned long CLR2:1;
            unsigned long CLR1:1;
            unsigned long CLR0:1;
        } BIT;
    } GCREAE0;
    union {
        unsigned long LONG;
        struct {
            unsigned long CLR31:1;
            unsigned long CLR30:1;
            unsigned long CLR29:1;
            unsigned long CLR28:1;
            unsigned long CLR27:1;
            unsigned long CLR26:1;
            unsigned long CLR25:1;
            unsigned long CLR24:1;
            unsigned long CLR23:1;
            unsigned long CLR22:1;
            unsigned long CLR21:1;
            unsigned long CLR20:1;
            unsigned long CLR19:1;
            unsigned long CLR18:1;
            unsigned long CLR17:1;
            unsigned long CLR16:1;
            unsigned long CLR15:1;
            unsigned long CLR14:1;
            unsigned long CLR13:1;
            unsigned long CLR12:1;
            unsigned long CLR11:1;
            unsigned long CLR10:1;
            unsigned long CLR9:1;
            unsigned long CLR8:1;
            unsigned long CLR7:1;
            unsigned long CLR6:1;
            unsigned long CLR5:1;
            unsigned long CLR4:1;
            unsigned long CLR3:1;
            unsigned long CLR2:1;
            unsigned long CLR1:1;
            unsigned long CLR0:1;
        } BIT;
    } GCREAE1;
    char           wk28[120];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIAR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIAR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIAR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIAR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIAR4;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIAR5;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIAR6;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIAR7;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIAR8;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIAR9;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIARA;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIR7:1;
            unsigned char PIR6:1;
            unsigned char PIR5:1;
            unsigned char PIR4:1;
            unsigned char PIR3:1;
            unsigned char PIR2:1;
            unsigned char PIR1:1;
            unsigned char PIR0:1;
        } BIT;
    } PIARB;
    char           wk29[196];
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR208;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR209;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR210;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR211;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR212;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR213;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR214;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR215;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR216;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR217;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR218;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR219;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR220;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR221;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR222;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR223;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR224;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR225;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR226;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR227;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR228;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR229;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR230;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR231;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR232;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR233;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR234;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR235;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR236;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR237;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR238;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR239;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR240;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR241;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR242;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR243;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR244;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR245;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR246;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR247;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR248;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR249;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR250;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR251;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR252;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR253;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR254;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLI:8;
        } BIT;
    } SLIAR255;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char WPRC:1;
        } BIT;
    } SLIPRCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char SELEXD1:1;
            unsigned char SELEXD0:1;
        } BIT;
    } SELEXDR;
};

struct st_iwdt {
    unsigned char  IWDTRR;
    char           wk0[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short :2;
            unsigned short RPSS:2;
            unsigned short :2;
            unsigned short RPES:2;
            unsigned short CKS:4;
            unsigned short :2;
            unsigned short TOPS:2;
        } BIT;
    } IWDTCR;
    union {
        unsigned short WORD;
        struct {
            unsigned short REFEF:1;
            unsigned short UNDFF:1;
            unsigned short CNTVAL:14;
        } BIT;
    } IWDTSR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char RSTIRQS:1;
        } BIT;
    } IWDTRCR;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char SLCSTP:1;
        } BIT;
    } IWDTCSTPR;
};

struct st_mmc {
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long BOOT:1;
            unsigned long CMD:6;
            unsigned long RTYP:2;
            unsigned long RBSY:1;
            unsigned long :1;
            unsigned long WDAT:1;
            unsigned long DWEN:1;
            unsigned long CMLTE:1;
            unsigned long CMD12EN:1;
            unsigned long RIDXC:2;
            unsigned long RCRC7C:2;
            unsigned long :1;
            unsigned long CRC16C:1;
            unsigned long BOOTACK:1;
            unsigned long CRCSTE:1;
            unsigned long TBIT:1;
            unsigned long OPDM:1;
            unsigned long :2;
            unsigned long SBIT:1;
            unsigned long :1;
            unsigned long DATW:2;
        } BIT;
    } CECMDSET;
    char           wk0[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long ARG:32;
        } BIT;
    } CEARG;
    union {
        unsigned long LONG;
        struct {
            unsigned long C12ARG:32;
        } BIT;
    } CEARGCMD12;
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long BREAK:1;
        } BIT;
    } CECMDCTRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long BLKCNT:16;
            unsigned long BLKSZ:16;
        } BIT;
    } CEBLOCKSET;
    union {
        unsigned long LONG;
        struct {
            unsigned long MMCBUSBSY:1;
            unsigned long :6;
            unsigned long CLKEN:1;
            unsigned long :4;
            unsigned long CLKDIV:4;
            unsigned long :2;
            unsigned long SRSTPO:2;
            unsigned long SRBSYTO:4;
            unsigned long SRWDTO:4;
        } BIT;
    } CECLKCTRL;
    union {
        unsigned long LONG;
        struct {
            unsigned long :5;
            unsigned long DMATYP:1;
            unsigned long DMAWEN:1;
            unsigned long DMAREN:1;
            unsigned long :7;
            unsigned long ATYP:1;
        } BIT;
    } CEBUFACC;
    unsigned long  CERESP3;
    unsigned long  CERESP2;
    unsigned long  CERESP1;
    unsigned long  CERESP0;
    union {
        unsigned long LONG;
        struct {
            unsigned long RSP12:32;
        } BIT;
    } CERESPCMD12;
    union {
        unsigned long LONG;
        struct {
            unsigned long DATA:32;
        } BIT;
    } CEDATA;
    char           wk1[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long SBTCLKDIV:4;
            unsigned long SBTACKTO:4;
            unsigned long S1STBTDATTO:4;
            unsigned long SBTDATTO:4;
        } BIT;
    } CEBOOT;
    union {
        unsigned long LONG;
        struct {
            unsigned long :5;
            unsigned long CMD12DRE:1;
            unsigned long CMD12RBE:1;
            unsigned long CMD12CRE:1;
            unsigned long DTRANE:1;
            unsigned long BUFRE:1;
            unsigned long BUFWEN:1;
            unsigned long BUFREN:1;
            unsigned long :2;
            unsigned long RBSYE:1;
            unsigned long CRSPE:1;
            unsigned long CMDVIO:1;
            unsigned long BUFVIO:1;
            unsigned long :2;
            unsigned long WDATERR:1;
            unsigned long RDATERR:1;
            unsigned long RIDXERR:1;
            unsigned long RSPERR:1;
            unsigned long :3;
            unsigned long CRCSTO:1;
            unsigned long WDATTO:1;
            unsigned long RDATTO:1;
            unsigned long RBSYTO:1;
            unsigned long RSPTO:1;
        } BIT;
    } CEINT;
    union {
        unsigned long LONG;
        struct {
            unsigned long :5;
            unsigned long MCMD12DRE:1;
            unsigned long MCMD12RBE:1;
            unsigned long MCMD12CRE:1;
            unsigned long MDTRANE:1;
            unsigned long MBUFRE:1;
            unsigned long MBUFWEN:1;
            unsigned long MBUFREN:1;
            unsigned long :2;
            unsigned long MRBSYE:1;
            unsigned long MCRSPE:1;
            unsigned long MCMDVIO:1;
            unsigned long MBUFVIO:1;
            unsigned long :2;
            unsigned long MWDATERR:1;
            unsigned long MRDATERR:1;
            unsigned long MRIDXERR:1;
            unsigned long MRSPERR:1;
            unsigned long :3;
            unsigned long MCRCSTO:1;
            unsigned long MWDATTO:1;
            unsigned long MRDATTO:1;
            unsigned long MRBSYTO:1;
            unsigned long MRSPTO:1;
        } BIT;
    } CEINTEN;
    union {
        unsigned long LONG;
        struct {
            unsigned long CMDSEQ:1;
            unsigned long CMDSIG:1;
            unsigned long RSPIDX:6;
            unsigned long DATSIG:8;
            unsigned long RCVBLK:16;
        } BIT;
    } CEHOSTSTS1;
    union {
        unsigned long LONG;
        struct {
            unsigned long CRCSTE:1;
            unsigned long CRC16E:1;
            unsigned long AC12CRCE:1;
            unsigned long RSPCRC7E:1;
            unsigned long CRCSTEBE:1;
            unsigned long RDATEBE:1;
            unsigned long AC12REBE:1;
            unsigned long RSPEBE:1;
            unsigned long AC12IDXE:1;
            unsigned long RSPIDXE:1;
            unsigned long BTACKPATE:1;
            unsigned long BTACKEBE:1;
            unsigned long :1;
            unsigned long CRCST:3;
            unsigned long :1;
            unsigned long STRDATTO:1;
            unsigned long DATBSYTO:1;
            unsigned long CRCSTTO:1;
            unsigned long AC12BSYTO:1;
            unsigned long RSPBSYTO:1;
            unsigned long AC12RSPTO:1;
            unsigned long STRSPTO:1;
            unsigned long BTACKTO:1;
            unsigned long STBTDATTO:1;
            unsigned long BTDATTO:1;
        } BIT;
    } CEHOSTSTS2;
    char           wk2[32];
    union {
        unsigned long LONG;
        struct {
            unsigned long :17;
            unsigned long CDSIG:1;
            unsigned long CDRISE:1;
            unsigned long CDFALL:1;
            unsigned long :6;
            unsigned long MCDRISE:1;
            unsigned long MCDFALL:1;
        } BIT;
    } CEDETECT;
    union {
        unsigned long LONG;
        struct {
            unsigned long :10;
            unsigned long RESNOUT:1;
            unsigned long :1;
            unsigned long CLKMAIN:1;
        } BIT;
    } CEADDMODE;
    char           wk3[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long SWRST:1;
            unsigned long :15;
            unsigned long VERSION:16;
        } BIT;
    } CEVERSION;
};

struct st_mpc {
    union {
        unsigned char BYTE;
        struct {
            unsigned char CS7E:1;
            unsigned char CS6E:1;
            unsigned char CS5E:1;
            unsigned char CS4E:1;
            unsigned char CS3E:1;
            unsigned char CS2E:1;
            unsigned char CS1E:1;
            unsigned char CS0E:1;
        } BIT;
    } PFCSE;
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CS3S:2;
            unsigned char CS2S:2;
            unsigned char CS1S:2;
            unsigned char :1;
            unsigned char CS0S:1;
        } BIT;
    } PFCSS0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char CS7S:2;
            unsigned char CS6S:2;
            unsigned char CS5S:2;
            unsigned char CS4S:2;
        } BIT;
    } PFCSS1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char A15E:1;
            unsigned char A14E:1;
            unsigned char A13E:1;
            unsigned char A12E:1;
            unsigned char A11E:1;
            unsigned char A10E:1;
            unsigned char A9E:1;
            unsigned char A8E:1;
        } BIT;
    } PFAOE0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char A23E:1;
            unsigned char A22E:1;
            unsigned char A21E:1;
            unsigned char A20E:1;
            unsigned char A19E:1;
            unsigned char A18E:1;
            unsigned char A17E:1;
            unsigned char A16E:1;
        } BIT;
    } PFAOE1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char WR32BC32E:1;
            unsigned char WR1BC1E:1;
            unsigned char DH32E:1;
            unsigned char DHE:1;
            unsigned char BCLKO:1;
            unsigned char :1;
            unsigned char ADRHMS:1;
            unsigned char ADRLE:1;
        } BIT;
    } PFBCR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SDCLKE:1;
            unsigned char DQM1E:1;
            unsigned char :1;
            unsigned char MDSDE:1;
            unsigned char ALES:1;
            unsigned char ALEOE:1;
            unsigned char WAITS:2;
        } BIT;
    } PFBCR1;
    char           wk1[6];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PHYMODE1:1;
            unsigned char PHYMODE0:1;
        } BIT;
    } PFENET;
    char           wk2[16];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B0WI:1;
            unsigned char PFSWE:1;
        } BIT;
    } PWPR;
    char           wk3[32];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P00PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P01PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P02PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P03PFS;
    char           wk4[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P05PFS;
    char           wk5[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P07PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P10PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P11PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P12PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P13PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P14PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P15PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P16PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P17PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P20PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P21PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P22PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P23PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P24PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P25PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P26PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P27PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P30PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P31PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P32PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P33PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P34PFS;
    char           wk6[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
        } BIT;
    } P40PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
        } BIT;
    } P41PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
        } BIT;
    } P42PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
        } BIT;
    } P43PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
        } BIT;
    } P44PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
        } BIT;
    } P45PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
        } BIT;
    } P46PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
        } BIT;
    } P47PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P50PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P51PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P52PFS;
    char           wk7[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P54PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P55PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P56PFS;
    char           wk8[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P60PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P61PFS;
    char           wk9[4];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P66PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } P67PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } P70PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } P71PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } P72PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } P73PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } P74PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } P75PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } P76PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } P77PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } P80PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } P81PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } P82PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } P83PFS;
    char           wk10[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } P86PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } P87PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char :1;
            unsigned char PSEL:6;
        } BIT;
    } P90PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char :1;
            unsigned char PSEL:6;
        } BIT;
    } P91PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char :1;
            unsigned char PSEL:6;
        } BIT;
    } P92PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char :1;
            unsigned char PSEL:6;
        } BIT;
    } P93PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char :1;
            unsigned char PSEL:6;
        } BIT;
    } P94PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char :1;
            unsigned char PSEL:6;
        } BIT;
    } P95PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char :1;
            unsigned char PSEL:6;
        } BIT;
    } P96PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char :1;
            unsigned char PSEL:6;
        } BIT;
    } P97PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PA0PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PA1PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PA2PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PA3PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PA4PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PA5PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PA6PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PA7PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PB0PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PB1PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PB2PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PB3PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PB4PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PB5PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PB6PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PB7PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PC0PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PC1PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PC2PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PC3PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PC4PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PC5PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PC6PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PC7PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PD0PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PD1PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PD2PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PD3PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PD4PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PD5PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PD6PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PD7PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PE0PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PE1PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PE2PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PE3PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PE4PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PE5PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PE6PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ASEL:1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PE7PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PF0PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PF1PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PF2PFS;
    char           wk11[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char ISEL:1;
            unsigned char PSEL:6;
        } BIT;
    } PF5PFS;
    char           wk12[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } PG0PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } PG1PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } PG2PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } PG3PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } PG4PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } PG5PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } PG6PFS;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } PG7PFS;
    char           wk13[11];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } PJ3PFS;
    char           wk14[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char PSEL:6;
        } BIT;
    } PJ5PFS;
};

struct st_mpu {
    union {
        unsigned long LONG;
        struct {
            unsigned long RSPN:28;
        } BIT;
    } RSPAGE0;
    union {
        unsigned long LONG;
        struct {
            unsigned long REPN:28;
            unsigned long UAC:3;
            unsigned long V:1;
        } BIT;
    } REPAGE0;
    union {
        unsigned long LONG;
        struct {
            unsigned long RSPN:28;
        } BIT;
    } RSPAGE1;
    union {
        unsigned long LONG;
        struct {
            unsigned long REPN:28;
            unsigned long UAC:3;
            unsigned long V:1;
        } BIT;
    } REPAGE1;
    union {
        unsigned long LONG;
        struct {
            unsigned long RSPN:28;
        } BIT;
    } RSPAGE2;
    union {
        unsigned long LONG;
        struct {
            unsigned long REPN:28;
            unsigned long UAC:3;
            unsigned long V:1;
        } BIT;
    } REPAGE2;
    union {
        unsigned long LONG;
        struct {
            unsigned long RSPN:28;
        } BIT;
    } RSPAGE3;
    union {
        unsigned long LONG;
        struct {
            unsigned long REPN:28;
            unsigned long UAC:3;
            unsigned long V:1;
        } BIT;
    } REPAGE3;
    union {
        unsigned long LONG;
        struct {
            unsigned long RSPN:28;
        } BIT;
    } RSPAGE4;
    union {
        unsigned long LONG;
        struct {
            unsigned long REPN:28;
            unsigned long UAC:3;
            unsigned long V:1;
        } BIT;
    } REPAGE4;
    union {
        unsigned long LONG;
        struct {
            unsigned long RSPN:28;
        } BIT;
    } RSPAGE5;
    union {
        unsigned long LONG;
        struct {
            unsigned long REPN:28;
            unsigned long UAC:3;
            unsigned long V:1;
        } BIT;
    } REPAGE5;
    union {
        unsigned long LONG;
        struct {
            unsigned long RSPN:28;
        } BIT;
    } RSPAGE6;
    union {
        unsigned long LONG;
        struct {
            unsigned long REPN:28;
            unsigned long UAC:3;
            unsigned long V:1;
        } BIT;
    } REPAGE6;
    union {
        unsigned long LONG;
        struct {
            unsigned long RSPN:28;
        } BIT;
    } RSPAGE7;
    union {
        unsigned long LONG;
        struct {
            unsigned long REPN:28;
            unsigned long UAC:3;
            unsigned long V:1;
        } BIT;
    } REPAGE7;
    char           wk0[192];
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long MPEN:1;
        } BIT;
    } MPEN;
    union {
        unsigned long LONG;
        struct {
            unsigned long :28;
            unsigned long UBAC:3;
        } BIT;
    } MPBAC;
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long CLR:1;
        } BIT;
    } MPECLR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :29;
            unsigned long DRW:1;
            unsigned long DA:1;
            unsigned long IA:1;
        } BIT;
    } MPESTS;
    char           wk1[4];
    union {
        unsigned long LONG;
        struct {
            unsigned long DEA:32;
        } BIT;
    } MPDEA;
    char           wk2[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long SA:32;
        } BIT;
    } MPSA;
    union {
        unsigned short WORD;
        struct {
            unsigned short :15;
            unsigned short S:1;
        } BIT;
    } MPOPS;
    union {
        unsigned short WORD;
        struct {
            unsigned short :15;
            unsigned short INV:1;
        } BIT;
    } MPOPI;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long HITI:8;
            unsigned long :12;
            unsigned long UHACI:3;
        } BIT;
    } MHITI;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long HITD:8;
            unsigned long :12;
            unsigned long UHACD:3;
        } BIT;
    } MHITD;
};

struct st_mtu {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char OE4D:1;
            unsigned char OE4C:1;
            unsigned char OE3D:1;
            unsigned char OE4B:1;
            unsigned char OE4A:1;
            unsigned char OE3B:1;
        } BIT;
    } TOERA;
    char           wk0[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char BDC:1;
            unsigned char N:1;
            unsigned char P:1;
            unsigned char FB:1;
            unsigned char WF:1;
            unsigned char VF:1;
            unsigned char UF:1;
        } BIT;
    } TGCRA;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char PSYE:1;
            unsigned char :2;
            unsigned char TOCL:1;
            unsigned char TOCS:1;
            unsigned char OLSN:1;
            unsigned char OLSP:1;
        } BIT;
    } TOCR1A;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BF:2;
            unsigned char OLS3N:1;
            unsigned char OLS3P:1;
            unsigned char OLS2N:1;
            unsigned char OLS2P:1;
            unsigned char OLS1N:1;
            unsigned char OLS1P:1;
        } BIT;
    } TOCR2A;
    char           wk1[4];
    unsigned short TCDRA;
    unsigned short TDDRA;
    char           wk2[8];
    unsigned short TCNTSA;
    unsigned short TCBRA;
    char           wk3[12];
    union {
        unsigned char BYTE;
        struct {
            unsigned char T3AEN:1;
            unsigned char T3ACOR:3;
            unsigned char T4VEN:1;
            unsigned char T4VCOR:3;
        } BIT;
    } TITCR1A;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char T3ACNT:3;
            unsigned char :1;
            unsigned char T4VCNT:3;
        } BIT;
    } TITCNT1A;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char BTE:2;
        } BIT;
    } TBTERA;
    char           wk4[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char TDER:1;
        } BIT;
    } TDERA;
    char           wk5[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char OLS3N:1;
            unsigned char OLS3P:1;
            unsigned char OLS2N:1;
            unsigned char OLS2P:1;
            unsigned char OLS1N:1;
            unsigned char OLS1P:1;
        } BIT;
    } TOLBRA;
    char           wk6[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char TITM:1;
        } BIT;
    } TITMRA;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char TRG4COR:3;
        } BIT;
    } TITCR2A;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char TRG4CNT:3;
        } BIT;
    } TITCNT2A;
    char           wk7[35];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CCE:1;
            unsigned char :5;
            unsigned char SCC:1;
            unsigned char WRE:1;
        } BIT;
    } TWCRA;
    char           wk8[15];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DRS:1;
        } BIT;
    } TMDR2A;
    char           wk9[15];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CST4:1;
            unsigned char CST3:1;
            unsigned char :2;
            unsigned char CST8:1;
            unsigned char CST2:1;
            unsigned char CST1:1;
            unsigned char CST0:1;
        } BIT;
    } TSTRA;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SYNC4:1;
            unsigned char SYNC3:1;
            unsigned char :3;
            unsigned char SYNC2:1;
            unsigned char SYNC1:1;
            unsigned char SYNC0:1;
        } BIT;
    } TSYRA;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SCH0:1;
            unsigned char SCH1:1;
            unsigned char SCH2:1;
            unsigned char SCH3:1;
            unsigned char SCH4:1;
            unsigned char :1;
            unsigned char SCH6:1;
            unsigned char SCH7:1;
        } BIT;
    } TCSYSTR;
    char           wk10[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char RWE:1;
        } BIT;
    } TRWERA;
    char           wk11[1925];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char OE7D:1;
            unsigned char OE7C:1;
            unsigned char OE6D:1;
            unsigned char OE7B:1;
            unsigned char OE7A:1;
            unsigned char OE6B:1;
        } BIT;
    } TOERB;
    char           wk12[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char PSYE:1;
            unsigned char :2;
            unsigned char TOCL:1;
            unsigned char TOCS:1;
            unsigned char OLSN:1;
            unsigned char OLSP:1;
        } BIT;
    } TOCR1B;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BF:2;
            unsigned char OLS3N:1;
            unsigned char OLS3P:1;
            unsigned char OLS2N:1;
            unsigned char OLS2P:1;
            unsigned char OLS1N:1;
            unsigned char OLS1P:1;
        } BIT;
    } TOCR2B;
    char           wk13[4];
    unsigned short TCDRB;
    unsigned short TDDRB;
    char           wk14[8];
    unsigned short TCNTSB;
    unsigned short TCBRB;
    char           wk15[12];
    union {
        unsigned char BYTE;
        struct {
            unsigned char T6AEN:1;
            unsigned char T6ACOR:3;
            unsigned char T7VEN:1;
            unsigned char T7VCOR:3;
        } BIT;
    } TITCR1B;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char T6ACNT:3;
            unsigned char :1;
            unsigned char T7VCNT:3;
        } BIT;
    } TITCNT1B;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char BTE:2;
        } BIT;
    } TBTERB;
    char           wk16[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char TDER:1;
        } BIT;
    } TDERB;
    char           wk17[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char OLS3N:1;
            unsigned char OLS3P:1;
            unsigned char OLS2N:1;
            unsigned char OLS2P:1;
            unsigned char OLS1N:1;
            unsigned char OLS1P:1;
        } BIT;
    } TOLBRB;
    char           wk18[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char TITM:1;
        } BIT;
    } TITMRB;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char TRG7COR:3;
        } BIT;
    } TITCR2B;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char TRG7CNT:3;
        } BIT;
    } TITCNT2B;
    char           wk19[35];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CCE:1;
            unsigned char :5;
            unsigned char SCC:1;
            unsigned char WRE:1;
        } BIT;
    } TWCRB;
    char           wk20[15];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DRS:1;
        } BIT;
    } TMDR2B;
    char           wk21[15];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CST7:1;
            unsigned char CST6:1;
        } BIT;
    } TSTRB;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SYNC7:1;
            unsigned char SYNC6:1;
        } BIT;
    } TSYRB;
    char           wk22[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char RWE:1;
        } BIT;
    } TRWERB;
};

struct st_mtu0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char NFCS:2;
            unsigned char NFDEN:1;
            unsigned char NFCEN:1;
            unsigned char NFBEN:1;
            unsigned char NFAEN:1;
        } BIT;
    } NFCR0;
    char           wk0[8];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char NFCS:2;
            unsigned char NFDEN:1;
            unsigned char NFCEN:1;
            unsigned char NFBEN:1;
            unsigned char NFAEN:1;
        } BIT;
    } NFCRC;
    char           wk1[102];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CCLR:3;
            unsigned char CKEG:2;
            unsigned char TPSC:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char BFE:1;
            unsigned char BFB:1;
            unsigned char BFA:1;
            unsigned char MD:4;
        } BIT;
    } TMDR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOB:4;
            unsigned char IOA:4;
        } BIT;
    } TIORH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOD:4;
            unsigned char IOC:4;
        } BIT;
    } TIORL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTGE:1;
            unsigned char :2;
            unsigned char TCIEV:1;
            unsigned char TGIED:1;
            unsigned char TGIEC:1;
            unsigned char TGIEB:1;
            unsigned char TGIEA:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char TCFV:1;
            unsigned char TGFD:1;
            unsigned char TGFC:1;
            unsigned char TGFB:1;
            unsigned char TGFA:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
    unsigned short TGRC;
    unsigned short TGRD;
    char           wk2[16];
    unsigned short TGRE;
    unsigned short TGRF;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTGE2:1;
            unsigned char :5;
            unsigned char TGIEF:1;
            unsigned char TGIEE:1;
        } BIT;
    } TIER2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char TGFF:1;
            unsigned char TGFE:1;
        } BIT;
    } TSR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char TTSE:1;
            unsigned char TTSB:1;
            unsigned char TTSA:1;
        } BIT;
    } TBTM;
    char           wk3[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char TPSC2:3;
        } BIT;
    } TCR2;
};

struct st_mtu1 {
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char NFCS:2;
            unsigned char NFDEN:1;
            unsigned char NFCEN:1;
            unsigned char NFBEN:1;
            unsigned char NFAEN:1;
        } BIT;
    } NFCR1;
    char           wk1[238];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char CCLR:2;
            unsigned char CKEG:2;
            unsigned char TPSC:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char MD:4;
        } BIT;
    } TMDR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOB:4;
            unsigned char IOA:4;
        } BIT;
    } TIOR;
    char           wk2[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTGE:1;
            unsigned char :1;
            unsigned char TCIEU:1;
            unsigned char TCIEV:1;
            unsigned char :2;
            unsigned char TGIEB:1;
            unsigned char TGIEA:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCFD:1;
            unsigned char :1;
            unsigned char TCFU:1;
            unsigned char TCFV:1;
            unsigned char :2;
            unsigned char TGFB:1;
            unsigned char TGFA:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
    char           wk3[4];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char I2BE:1;
            unsigned char I2AE:1;
            unsigned char I1BE:1;
            unsigned char I1AE:1;
        } BIT;
    } TICCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char PHCKSEL:1;
            unsigned char LWA:1;
        } BIT;
    } TMDR3;
    char           wk4[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char PCB:2;
            unsigned char TPSC2:3;
        } BIT;
    } TCR2;
    char           wk5[11];
    unsigned long  TCNTLW;
    unsigned long  TGRALW;
    unsigned long  TGRBLW;
};

struct st_mtu2 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char NFCS:2;
            unsigned char NFDEN:1;
            unsigned char NFCEN:1;
            unsigned char NFBEN:1;
            unsigned char NFAEN:1;
        } BIT;
    } NFCR2;
    char           wk0[365];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char CCLR:2;
            unsigned char CKEG:2;
            unsigned char TPSC:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char MD:4;
        } BIT;
    } TMDR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOB:4;
            unsigned char IOA:4;
        } BIT;
    } TIOR;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTGE:1;
            unsigned char :1;
            unsigned char TCIEU:1;
            unsigned char TCIEV:1;
            unsigned char :2;
            unsigned char TGIEB:1;
            unsigned char TGIEA:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCFD:1;
            unsigned char :1;
            unsigned char TCFU:1;
            unsigned char TCFV:1;
            unsigned char :2;
            unsigned char TGFB:1;
            unsigned char TGFA:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char PCB:2;
            unsigned char TPSC2:3;
        } BIT;
    } TCR2;
};

struct st_mtu3 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char CCLR:3;
            unsigned char CKEG:2;
            unsigned char TPSC:3;
        } BIT;
    } TCR;
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char BFB:1;
            unsigned char BFA:1;
            unsigned char MD:4;
        } BIT;
    } TMDR1;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOB:4;
            unsigned char IOA:4;
        } BIT;
    } TIORH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOD:4;
            unsigned char IOC:4;
        } BIT;
    } TIORL;
    char           wk2[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTGE:1;
            unsigned char :2;
            unsigned char TCIEV:1;
            unsigned char TGIED:1;
            unsigned char TGIEC:1;
            unsigned char TGIEB:1;
            unsigned char TGIEA:1;
        } BIT;
    } TIER;
    char           wk3[7];
    unsigned short TCNT;
    char           wk4[6];
    unsigned short TGRA;
    unsigned short TGRB;
    char           wk5[8];
    unsigned short TGRC;
    unsigned short TGRD;
    char           wk6[4];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCFD:1;
            unsigned char :2;
            unsigned char TCFV:1;
            unsigned char TGFD:1;
            unsigned char TGFC:1;
            unsigned char TGFB:1;
            unsigned char TGFA:1;
        } BIT;
    } TSR;
    char           wk7[11];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char TTSB:1;
            unsigned char TTSA:1;
        } BIT;
    } TBTM;
    char           wk8[19];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char TPSC2:3;
        } BIT;
    } TCR2;
    char           wk9[37];
    unsigned short TGRE;
    char           wk10[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char NFCS:2;
            unsigned char NFDEN:1;
            unsigned char NFCEN:1;
            unsigned char NFBEN:1;
            unsigned char NFAEN:1;
        } BIT;
    } NFCR3;
};

struct st_mtu4 {
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CCLR:3;
            unsigned char CKEG:2;
            unsigned char TPSC:3;
        } BIT;
    } TCR;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char BFB:1;
            unsigned char BFA:1;
            unsigned char MD:4;
        } BIT;
    } TMDR1;
    char           wk2[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOB:4;
            unsigned char IOA:4;
        } BIT;
    } TIORH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOD:4;
            unsigned char IOC:4;
        } BIT;
    } TIORL;
    char           wk3[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTGE:1;
            unsigned char TTGE2:1;
            unsigned char :1;
            unsigned char TCIEV:1;
            unsigned char TGIED:1;
            unsigned char TGIEC:1;
            unsigned char TGIEB:1;
            unsigned char TGIEA:1;
        } BIT;
    } TIER;
    char           wk4[8];
    unsigned short TCNT;
    char           wk5[8];
    unsigned short TGRA;
    unsigned short TGRB;
    char           wk6[8];
    unsigned short TGRC;
    unsigned short TGRD;
    char           wk7[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCFD:1;
            unsigned char :2;
            unsigned char TCFV:1;
            unsigned char TGFD:1;
            unsigned char TGFC:1;
            unsigned char TGFB:1;
            unsigned char TGFA:1;
        } BIT;
    } TSR;
    char           wk8[11];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char TTSB:1;
            unsigned char TTSA:1;
        } BIT;
    } TBTM;
    char           wk9[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short BF:2;
            unsigned short :6;
            unsigned short UT4AE:1;
            unsigned short DT4AE:1;
            unsigned short UT4BE:1;
            unsigned short DT4BE:1;
            unsigned short ITA3AE:1;
            unsigned short ITA4VE:1;
            unsigned short ITB3AE:1;
            unsigned short ITB4VE:1;
        } BIT;
    } TADCR;
    char           wk10[2];
    unsigned short TADCORA;
    unsigned short TADCORB;
    unsigned short TADCOBRA;
    unsigned short TADCOBRB;
    char           wk11[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char TPSC2:3;
        } BIT;
    } TCR2;
    char           wk12[38];
    unsigned short TGRE;
    unsigned short TGRF;
    char           wk13[28];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char NFCS:2;
            unsigned char NFDEN:1;
            unsigned char NFCEN:1;
            unsigned char NFBEN:1;
            unsigned char NFAEN:1;
        } BIT;
    } NFCR4;
};

struct st_mtu5 {
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char NFCS:2;
            unsigned char :1;
            unsigned char NFWEN:1;
            unsigned char NFVEN:1;
            unsigned char NFUEN:1;
        } BIT;
    } NFCR5;
    char           wk1[2538];
    unsigned short TCNTU;
    unsigned short TGRU;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char TPSC:2;
        } BIT;
    } TCRU;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char CKEG:2;
            unsigned char TPSC2:3;
        } BIT;
    } TCR2U;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char IOC:5;
        } BIT;
    } TIORU;
    char           wk2[9];
    unsigned short TCNTV;
    unsigned short TGRV;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char TPSC:2;
        } BIT;
    } TCRV;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char CKEG:2;
            unsigned char TPSC2:3;
        } BIT;
    } TCR2V;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char IOC:5;
        } BIT;
    } TIORV;
    char           wk3[9];
    unsigned short TCNTW;
    unsigned short TGRW;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char TPSC:2;
        } BIT;
    } TCRW;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char CKEG:2;
            unsigned char TPSC2:3;
        } BIT;
    } TCR2W;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char IOC:5;
        } BIT;
    } TIORW;
    char           wk4[9];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char CMFU5:1;
            unsigned char CMFV5:1;
            unsigned char CMFW5:1;
        } BIT;
    } TSR;
    char           wk5[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char TGIE5U:1;
            unsigned char TGIE5V:1;
            unsigned char TGIE5W:1;
        } BIT;
    } TIER;
    char           wk6[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char CSTU5:1;
            unsigned char CSTV5:1;
            unsigned char CSTW5:1;
        } BIT;
    } TSTR;
    char           wk7[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char CMPCLR5U:1;
            unsigned char CMPCLR5V:1;
            unsigned char CMPCLR5W:1;
        } BIT;
    } TCNTCMPCLR;
};

struct st_mtu6 {
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char NFCS:2;
            unsigned char NFDEN:1;
            unsigned char NFCEN:1;
            unsigned char NFBEN:1;
            unsigned char NFAEN:1;
        } BIT;
    } NFCR6;
    char           wk1[1884];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CCLR:3;
            unsigned char CKEG:2;
            unsigned char TPSC:3;
        } BIT;
    } TCR;
    char           wk2[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char BFB:1;
            unsigned char BFA:1;
            unsigned char MD:4;
        } BIT;
    } TMDR1;
    char           wk3[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOB:4;
            unsigned char IOA:4;
        } BIT;
    } TIORH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOD:4;
            unsigned char IOC:4;
        } BIT;
    } TIORL;
    char           wk4[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTGE:1;
            unsigned char :2;
            unsigned char TCIEV:1;
            unsigned char TGIED:1;
            unsigned char TGIEC:1;
            unsigned char TGIEB:1;
            unsigned char TGIEA:1;
        } BIT;
    } TIER;
    char           wk5[7];
    unsigned short TCNT;
    char           wk6[6];
    unsigned short TGRA;
    unsigned short TGRB;
    char           wk7[8];
    unsigned short TGRC;
    unsigned short TGRD;
    char           wk8[4];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCFD:1;
            unsigned char :2;
            unsigned char TCFV:1;
            unsigned char TGFD:1;
            unsigned char TGFC:1;
            unsigned char TGFB:1;
            unsigned char TGFA:1;
        } BIT;
    } TSR;
    char           wk9[11];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char TTSB:1;
            unsigned char TTSA:1;
        } BIT;
    } TBTM;
    char           wk10[19];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char TPSC2:3;
        } BIT;
    } TCR2;
    char           wk11[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CE0A:1;
            unsigned char CE0B:1;
            unsigned char CE0C:1;
            unsigned char CE0D:1;
            unsigned char CE1A:1;
            unsigned char CE1B:1;
            unsigned char CE2A:1;
            unsigned char CE2B:1;
        } BIT;
    } TSYCR;
    char           wk12[33];
    unsigned short TGRE;
};

struct st_mtu7 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char NFCS:2;
            unsigned char NFDEN:1;
            unsigned char NFCEN:1;
            unsigned char NFBEN:1;
            unsigned char NFAEN:1;
        } BIT;
    } NFCR7;
    char           wk0[1884];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CCLR:3;
            unsigned char CKEG:2;
            unsigned char TPSC:3;
        } BIT;
    } TCR;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char BFB:1;
            unsigned char BFA:1;
            unsigned char MD:4;
        } BIT;
    } TMDR1;
    char           wk2[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOB:4;
            unsigned char IOA:4;
        } BIT;
    } TIORH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOD:4;
            unsigned char IOC:4;
        } BIT;
    } TIORL;
    char           wk3[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTGE:1;
            unsigned char TTGE2:1;
            unsigned char :1;
            unsigned char TCIEV:1;
            unsigned char TGIED:1;
            unsigned char TGIEC:1;
            unsigned char TGIEB:1;
            unsigned char TGIEA:1;
        } BIT;
    } TIER;
    char           wk4[8];
    unsigned short TCNT;
    char           wk5[8];
    unsigned short TGRA;
    unsigned short TGRB;
    char           wk6[8];
    unsigned short TGRC;
    unsigned short TGRD;
    char           wk7[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCFD:1;
            unsigned char :2;
            unsigned char TCFV:1;
            unsigned char TGFD:1;
            unsigned char TGFC:1;
            unsigned char TGFB:1;
            unsigned char TGFA:1;
        } BIT;
    } TSR;
    char           wk8[11];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char TTSB:1;
            unsigned char TTSA:1;
        } BIT;
    } TBTM;
    char           wk9[6];
    union {
        unsigned short WORD;
        struct {
            unsigned short BF:2;
            unsigned short :6;
            unsigned short UT7AE:1;
            unsigned short DT7AE:1;
            unsigned short UT7BE:1;
            unsigned short DT7BE:1;
            unsigned short ITA6AE:1;
            unsigned short ITA7VE:1;
            unsigned short ITB6AE:1;
            unsigned short ITB7VE:1;
        } BIT;
    } TADCR;
    char           wk10[2];
    unsigned short TADCORA;
    unsigned short TADCORB;
    unsigned short TADCOBRA;
    unsigned short TADCOBRB;
    char           wk11[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char TPSC2:3;
        } BIT;
    } TCR2;
    char           wk12[38];
    unsigned short TGRE;
    unsigned short TGRF;
};

struct st_mtu8 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char NFCS:2;
            unsigned char NFDEN:1;
            unsigned char NFCEN:1;
            unsigned char NFBEN:1;
            unsigned char NFAEN:1;
        } BIT;
    } NFCR8;
    char           wk0[871];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CCLR:3;
            unsigned char CKEG:2;
            unsigned char TPSC:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char BFB:1;
            unsigned char BFA:1;
            unsigned char MD:4;
        } BIT;
    } TMDR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOB:4;
            unsigned char IOA:4;
        } BIT;
    } TIORH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOD:4;
            unsigned char IOC:4;
        } BIT;
    } TIORL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char TCIEU:1;
            unsigned char TCIEV:1;
            unsigned char TGIED:1;
            unsigned char TGIEC:1;
            unsigned char TGIEB:1;
            unsigned char TGIEA:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char TCFV:1;
            unsigned char TGFD:1;
            unsigned char TGFC:1;
            unsigned char TGFB:1;
            unsigned char TGFA:1;
        } BIT;
    } TSR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char PCB:2;
            unsigned char TPSC2:3;
        } BIT;
    } TCR2;
    char           wk1[1];
    unsigned long  TCNT;
    unsigned long  TGRA;
    unsigned long  TGRB;
    unsigned long  TGRC;
    unsigned long  TGRD;
};

struct st_pdc {
    union {
        unsigned long LONG;
        struct {
            unsigned long :17;
            unsigned long EDS:1;
            unsigned long PCKDIV:3;
            unsigned long PCKOE:1;
            unsigned long HERIE:1;
            unsigned long VERIE:1;
            unsigned long UDRIE:1;
            unsigned long OVIE:1;
            unsigned long FEIE:1;
            unsigned long DFIE:1;
            unsigned long PRST:1;
            unsigned long HPS:1;
            unsigned long VPS:1;
            unsigned long PCKE:1;
        } BIT;
    } PCCR0;
    union {
        unsigned long LONG;
        struct {
            unsigned long :31;
            unsigned long PCE:1;
        } BIT;
    } PCCR1;
    union {
        unsigned long LONG;
        struct {
            unsigned long :25;
            unsigned long HERF:1;
            unsigned long VERF:1;
            unsigned long UDRF:1;
            unsigned long OVRF:1;
            unsigned long FEF:1;
            unsigned long FEMPF:1;
            unsigned long FBSY:1;
        } BIT;
    } PCSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :30;
            unsigned long HSYNC:1;
            unsigned long VSYNC:1;
        } BIT;
    } PCMONR;
    union {
        unsigned long LONG;
        struct {
            unsigned long B31:1;
            unsigned long B30:1;
            unsigned long B29:1;
            unsigned long B28:1;
            unsigned long B27:1;
            unsigned long B26:1;
            unsigned long B25:1;
            unsigned long B24:1;
            unsigned long B23:1;
            unsigned long B22:1;
            unsigned long B21:1;
            unsigned long B20:1;
            unsigned long B19:1;
            unsigned long B18:1;
            unsigned long B17:1;
            unsigned long B16:1;
            unsigned long B15:1;
            unsigned long B14:1;
            unsigned long B13:1;
            unsigned long B12:1;
            unsigned long B11:1;
            unsigned long B10:1;
            unsigned long B9:1;
            unsigned long B8:1;
            unsigned long B7:1;
            unsigned long B6:1;
            unsigned long B5:1;
            unsigned long B4:1;
            unsigned long B3:1;
            unsigned long B2:1;
            unsigned long B1:1;
            unsigned long B0:1;
        } BIT;
    } PCDR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :4;
            unsigned long VSZ:12;
            unsigned long :4;
            unsigned long VST:12;
        } BIT;
    } VCR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :4;
            unsigned long HSZ:12;
            unsigned long :4;
            unsigned long HST:12;
        } BIT;
    } HCR;
};

struct st_poe {
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :3;
            unsigned char POE0F:1;
            unsigned char :3;
            unsigned char PIE1:1;
            unsigned char :6;
            unsigned char POE0M:2;
        } BIT;
    } ICSR1;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char OSF1:1;
            unsigned char :5;
            unsigned char OCE1:1;
            unsigned char OIE1:1;
        } BIT;
    } OCSR1;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :3;
            unsigned char POE4F:1;
            unsigned char :3;
            unsigned char PIE2:1;
            unsigned char :6;
            unsigned char POE4M:2;
        } BIT;
    } ICSR2;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char OSF2:1;
            unsigned char :5;
            unsigned char OCE2:1;
            unsigned char OIE2:1;
        } BIT;
    } OCSR2;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :3;
            unsigned char POE8F:1;
            unsigned char :2;
            unsigned char POE8E:1;
            unsigned char PIE3:1;
            unsigned char :6;
            unsigned char POE8M:2;
        } BIT;
    } ICSR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char GPT23HIZ:1;
            unsigned char GPT01HIZ:1;
            unsigned char MTUCH0HIZ:1;
            unsigned char MTUCH67HIZ:1;
            unsigned char MTUCH34HIZ:1;
        } BIT;
    } SPOER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char MTU0DZE:1;
            unsigned char MTU0CZE:1;
            unsigned char MTU0BZE:1;
            unsigned char MTU0AZE:1;
        } BIT;
    } POECR1;
    union {
        unsigned short WORD;
        struct {
            unsigned short :5;
            unsigned short MTU3BDZE:1;
            unsigned short MTU4ACZE:1;
            unsigned short MTU4BDZE:1;
            unsigned short :5;
            unsigned short MTU6BDZE:1;
            unsigned short MTU7ACZE:1;
            unsigned short MTU7BDZE:1;
        } BIT;
    } POECR2;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short GPT3ABZE:1;
            unsigned short GPT2ABZE:1;
            unsigned short :6;
            unsigned short GPT1ABZE:1;
            unsigned short GPT0ABZE:1;
        } BIT;
    } POECR3;
    union {
        unsigned short WORD;
        struct {
            unsigned short :2;
            unsigned short IC5ADDMT67ZE:1;
            unsigned short IC4ADDMT67ZE:1;
            unsigned short IC3ADDMT67ZE:1;
            unsigned short :1;
            unsigned short IC1ADDMT67ZE:1;
            unsigned short :3;
            unsigned short IC5ADDMT34ZE:1;
            unsigned short IC4ADDMT34ZE:1;
            unsigned short IC3ADDMT34ZE:1;
            unsigned short IC2ADDMT34ZE:1;
        } BIT;
    } POECR4;
    union {
        unsigned short WORD;
        struct {
            unsigned short :10;
            unsigned short IC5ADDMT0ZE:1;
            unsigned short IC4ADDMT0ZE:1;
            unsigned short :1;
            unsigned short IC2ADDMT0ZE:1;
            unsigned short IC1ADDMT0ZE:1;
        } BIT;
    } POECR5;
    union {
        unsigned short WORD;
        struct {
            unsigned short :3;
            unsigned short IC4ADDGPT23ZE:1;
            unsigned short IC3ADDGPT23ZE:1;
            unsigned short IC2ADDGPT23Z:1;
            unsigned short IC1ADDGPT23ZE:1;
            unsigned short :3;
            unsigned short IC5ADDGPT01ZE:1;
            unsigned short :1;
            unsigned short IC3ADDGPT01ZE:1;
            unsigned short IC2ADDGPT01Z:1;
            unsigned short IC1ADDGPT01ZE:1;
        } BIT;
    } POECR6;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :3;
            unsigned char POE10F:1;
            unsigned char :2;
            unsigned char POE10E:1;
            unsigned char PIE4:1;
            unsigned char :6;
            unsigned char POE10M:2;
        } BIT;
    } ICSR4;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :3;
            unsigned char POE11F:1;
            unsigned char :2;
            unsigned char POE11E:1;
            unsigned char PIE5:1;
            unsigned char :6;
            unsigned char POE11M:2;
        } BIT;
    } ICSR5;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :8;
            unsigned char OLSEN:1;
            unsigned char :1;
            unsigned char OLSG2B:1;
            unsigned char OLSG2A:1;
            unsigned char OLSG1B:1;
            unsigned char OLSG1A:1;
            unsigned char OLSG0B:1;
            unsigned char OLSG0A:1;
        } BIT;
    } ALR1;
    union {
        unsigned short WORD;
        struct {
            unsigned char H;
            unsigned char L;
        } BYTE;
        struct {
            unsigned char :3;
            unsigned char OSTSTF:1;
            unsigned char :2;
            unsigned char OSTSTE:1;
        } BIT;
    } ICSR6;
    char           wk0[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char G0BSEL:4;
            unsigned char G0ASEL:4;
        } BIT;
    } G0SELR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char G1BSEL:4;
            unsigned char G1ASEL:4;
        } BIT;
    } G1SELR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char G2BSEL:4;
            unsigned char G2ASEL:4;
        } BIT;
    } G2SELR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char G3BSEL:4;
            unsigned char G3ASEL:4;
        } BIT;
    } G3SELR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char M0BSEL:4;
            unsigned char M0ASEL:4;
        } BIT;
    } M0SELR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char M0DSEL:4;
            unsigned char M0CSEL:4;
        } BIT;
    } M0SELR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char M3DSEL:4;
            unsigned char M3BSEL:4;
        } BIT;
    } M3SELR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char M4CSEL:4;
            unsigned char M4ASEL:4;
        } BIT;
    } M4SELR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char M4DSEL:4;
            unsigned char M4BSEL:4;
        } BIT;
    } M4SELR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char M4G2SEL:1;
            unsigned char M4G1SEL:1;
            unsigned char M4G0SEL:1;
        } BIT;
    } MGSELR;
};

struct st_port0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char :1;
            unsigned char B5:1;
            unsigned char :1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char :1;
            unsigned char B5:1;
            unsigned char :1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char :1;
            unsigned char B5:1;
            unsigned char :1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char :1;
            unsigned char B5:1;
            unsigned char :1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :3;
            unsigned char B2:1;
        } BIT;
    } ODR1;
    char           wk4[62];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char :1;
            unsigned char B5:1;
            unsigned char :1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } DSCR;
};

struct st_port1 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[32];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR1;
    char           wk4[61];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
};

struct st_port2 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[33];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR1;
    char           wk4[60];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
        } BIT;
    } DSCR;
};

struct st_port3 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[34];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR1;
    char           wk4[59];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
};

struct st_port4 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[35];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR1;
    char           wk4[58];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
};

struct st_port5 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[36];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR1;
    char           wk4[57];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :3;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } DSCR;
};

struct st_port6 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[37];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR1;
    char           wk4[56];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
};

struct st_port7 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[38];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR1;
    char           wk4[55];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
};

struct st_port8 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char :2;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char :2;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char :2;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char :2;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[39];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR1;
    char           wk4[54];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char :2;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
};

struct st_port9 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[40];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR1;
    char           wk4[53];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } DSCR;
};

struct st_porta {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[41];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR1;
    char           wk4[52];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } DSCR;
};

struct st_portb {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[42];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR1;
    char           wk4[51];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } DSCR;
};

struct st_portc {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[43];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR1;
    char           wk4[50];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } DSCR;
};

struct st_portd {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[44];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR1;
    char           wk4[49];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } DSCR;
};

struct st_porte {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[45];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR1;
    char           wk4[48];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } DSCR;
};

struct st_portf {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[46];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR1;
    char           wk4[47];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
};

struct st_portg {
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PMR;
    char           wk3[47];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
            unsigned char :1;
            unsigned char B4:1;
            unsigned char :1;
            unsigned char B2:1;
            unsigned char :1;
            unsigned char B0:1;
        } BIT;
    } ODR1;
    char           wk4[46];
    union {
        unsigned char BYTE;
        struct {
            unsigned char B7:1;
            unsigned char B6:1;
            unsigned char B5:1;
            unsigned char B4:1;
            unsigned char B3:1;
            unsigned char B2:1;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } PCR;
    char           wk5[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char B1:1;
            unsigned char B0:1;
        } BIT;
    } DSCR;
};

struct st_portj {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char B5:1;
            unsigned char :1;
            unsigned char B3:1;
        } BIT;
    } PDR;
    char           wk0[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char B5:1;
            unsigned char :1;
            unsigned char B3:1;
        } BIT;
    } PODR;
    char           wk1[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char B5:1;
            unsigned char :1;
            unsigned char B3:1;
        } BIT;
    } PIDR;
    char           wk2[31];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char B5:1;
            unsigned char :1;
            unsigned char B3:1;
        } BIT;
    } PMR;
    char           wk3[49];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char B6:1;
        } BIT;
    } ODR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char B2:1;
        } BIT;
    } ODR1;
    char           wk4[44];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char B5:1;
            unsigned char :1;
            unsigned char B3:1;
        } BIT;
    } PCR;
};

struct st_ppg0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char G3CMS:2;
            unsigned char G2CMS:2;
            unsigned char G1CMS:2;
            unsigned char G0CMS:2;
        } BIT;
    } PCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char G3INV:1;
            unsigned char G2INV:1;
            unsigned char G1INV:1;
            unsigned char G0INV:1;
            unsigned char G3NOV:1;
            unsigned char G2NOV:1;
            unsigned char G1NOV:1;
            unsigned char G0NOV:1;
        } BIT;
    } PMR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDER15:1;
            unsigned char NDER14:1;
            unsigned char NDER13:1;
            unsigned char NDER12:1;
            unsigned char NDER11:1;
            unsigned char NDER10:1;
            unsigned char NDER9:1;
            unsigned char NDER8:1;
        } BIT;
    } NDERH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDER7:1;
            unsigned char NDER6:1;
            unsigned char NDER5:1;
            unsigned char NDER4:1;
            unsigned char NDER3:1;
            unsigned char NDER2:1;
            unsigned char NDER1:1;
            unsigned char NDER0:1;
        } BIT;
    } NDERL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char POD15:1;
            unsigned char POD14:1;
            unsigned char POD13:1;
            unsigned char POD12:1;
            unsigned char POD11:1;
            unsigned char POD10:1;
            unsigned char POD9:1;
            unsigned char POD8:1;
        } BIT;
    } PODRH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char POD7:1;
            unsigned char POD6:1;
            unsigned char POD5:1;
            unsigned char POD4:1;
            unsigned char POD3:1;
            unsigned char POD2:1;
            unsigned char POD1:1;
            unsigned char POD0:1;
        } BIT;
    } PODRL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDR15:1;
            unsigned char NDR14:1;
            unsigned char NDR13:1;
            unsigned char NDR12:1;
            unsigned char NDR11:1;
            unsigned char NDR10:1;
            unsigned char NDR9:1;
            unsigned char NDR8:1;
        } BIT;
    } NDRH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDR7:1;
            unsigned char NDR6:1;
            unsigned char NDR5:1;
            unsigned char NDR4:1;
            unsigned char NDR3:1;
            unsigned char NDR2:1;
            unsigned char NDR1:1;
            unsigned char NDR0:1;
        } BIT;
    } NDRL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char NDR11:1;
            unsigned char NDR10:1;
            unsigned char NDR9:1;
            unsigned char NDR8:1;
        } BIT;
    } NDRH2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char NDR3:1;
            unsigned char NDR2:1;
            unsigned char NDR1:1;
            unsigned char NDR0:1;
        } BIT;
    } NDRL2;
};

struct st_ppg1 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char PTRSL:1;
        } BIT;
    } PTRSLR;
    char           wk0[5];
    union {
        unsigned char BYTE;
        struct {
            unsigned char G3CMS:2;
            unsigned char G2CMS:2;
            unsigned char G1CMS:2;
            unsigned char G0CMS:2;
        } BIT;
    } PCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char G3INV:1;
            unsigned char G2INV:1;
            unsigned char G1INV:1;
            unsigned char G0INV:1;
            unsigned char G3NOV:1;
            unsigned char G2NOV:1;
            unsigned char G1NOV:1;
            unsigned char G0NOV:1;
        } BIT;
    } PMR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDER31:1;
            unsigned char NDER30:1;
            unsigned char NDER29:1;
            unsigned char NDER28:1;
            unsigned char NDER27:1;
            unsigned char NDER26:1;
            unsigned char NDER25:1;
            unsigned char NDER24:1;
        } BIT;
    } NDERH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDER23:1;
            unsigned char NDER22:1;
            unsigned char NDER21:1;
            unsigned char NDER20:1;
            unsigned char NDER19:1;
            unsigned char NDER18:1;
            unsigned char NDER17:1;
            unsigned char NDER16:1;
        } BIT;
    } NDERL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char POD31:1;
            unsigned char POD30:1;
            unsigned char POD29:1;
            unsigned char POD28:1;
            unsigned char POD27:1;
            unsigned char POD26:1;
            unsigned char POD25:1;
            unsigned char POD24:1;
        } BIT;
    } PODRH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char POD23:1;
            unsigned char POD22:1;
            unsigned char POD21:1;
            unsigned char POD20:1;
            unsigned char POD19:1;
            unsigned char POD18:1;
            unsigned char POD17:1;
            unsigned char POD16:1;
        } BIT;
    } PODRL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDR31:1;
            unsigned char NDR30:1;
            unsigned char NDR29:1;
            unsigned char NDR28:1;
            unsigned char NDR27:1;
            unsigned char NDR26:1;
            unsigned char NDR25:1;
            unsigned char NDR24:1;
        } BIT;
    } NDRH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char NDR23:1;
            unsigned char NDR22:1;
            unsigned char NDR21:1;
            unsigned char NDR20:1;
            unsigned char NDR19:1;
            unsigned char NDR18:1;
            unsigned char NDR17:1;
            unsigned char NDR16:1;
        } BIT;
    } NDRL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char NDR27:1;
            unsigned char NDR26:1;
            unsigned char NDR25:1;
            unsigned char NDR24:1;
        } BIT;
    } NDRH2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char NDR19:1;
            unsigned char NDR18:1;
            unsigned char NDR17:1;
            unsigned char NDR16:1;
        } BIT;
    } NDRL2;
};

struct st_qspi {
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPRIE:1;
            unsigned char SPE:1;
            unsigned char SPTIE:1;
            unsigned char :3;
            unsigned char SPSSLIE:1;
        } BIT;
    } SPCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char SSLP:1;
        } BIT;
    } SSLP;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char MOIFE:1;
            unsigned char MOIFV:1;
            unsigned char :1;
            unsigned char IO3FV:1;
            unsigned char IO2FV:1;
            unsigned char SPLP:1;
        } BIT;
    } SPPCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPRFF:1;
            unsigned char TREND:1;
            unsigned char SPTEF:1;
            unsigned char SPSSLF:1;
        } BIT;
    } SPSR;
    union {
        unsigned long LONG;
        struct {
            unsigned long SPD31:1;
            unsigned long SPD30:1;
            unsigned long SPD29:1;
            unsigned long SPD28:1;
            unsigned long SPD27:1;
            unsigned long SPD26:1;
            unsigned long SPD25:1;
            unsigned long SPD24:1;
            unsigned long SPD23:1;
            unsigned long SPD22:1;
            unsigned long SPD21:1;
            unsigned long SPD20:1;
            unsigned long SPD19:1;
            unsigned long SPD18:1;
            unsigned long SPD17:1;
            unsigned long SPD16:1;
            unsigned long SPD15:1;
            unsigned long SPD14:1;
            unsigned long SPD13:1;
            unsigned long SPD12:1;
            unsigned long SPD11:1;
            unsigned long SPD10:1;
            unsigned long SPD9:1;
            unsigned long SPD8:1;
            unsigned long SPD7:1;
            unsigned long SPD6:1;
            unsigned long SPD5:1;
            unsigned long SPD4:1;
            unsigned long SPD3:1;
            unsigned long SPD2:1;
            unsigned long SPD1:1;
            unsigned long SPD0:1;
        } BIT;
    } SPDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char SPSC:2;
        } BIT;
    } SPSCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char SPSS:2;
        } BIT;
    } SPSSR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPBR7:1;
            unsigned char SPBR6:1;
            unsigned char SPBR5:1;
            unsigned char SPBR4:1;
            unsigned char SPBR3:1;
            unsigned char SPBR2:1;
            unsigned char SPBR1:1;
            unsigned char SPBR0:1;
        } BIT;
    } SPBR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TXDMY:1;
        } BIT;
    } SPDCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char SCKDL:3;
        } BIT;
    } SPCKD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char SLNDL:3;
        } BIT;
    } SSLND;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char SPNDL:3;
        } BIT;
    } SPND;
    char           wk0[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short SCKDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SPNDEN:1;
            unsigned short LSBF:1;
            unsigned short SPB:4;
            unsigned short SSLKP:1;
            unsigned short SPIMOD:2;
            unsigned short SPRW:1;
            unsigned short BRDV:2;
            unsigned short CPOL:1;
            unsigned short CPHA:1;
        } BIT;
    } SPCMD0;
    union {
        unsigned short WORD;
        struct {
            unsigned short SCKDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SPNDEN:1;
            unsigned short LSBF:1;
            unsigned short SPB:4;
            unsigned short SSLKP:1;
            unsigned short SPIMOD:2;
            unsigned short SPRW:1;
            unsigned short BRDV:2;
            unsigned short CPOL:1;
            unsigned short CPHA:1;
        } BIT;
    } SPCMD1;
    union {
        unsigned short WORD;
        struct {
            unsigned short SCKDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SPNDEN:1;
            unsigned short LSBF:1;
            unsigned short SPB:4;
            unsigned short SSLKP:1;
            unsigned short SPIMOD:2;
            unsigned short SPRW:1;
            unsigned short BRDV:2;
            unsigned short CPOL:1;
            unsigned short CPHA:1;
        } BIT;
    } SPCMD2;
    union {
        unsigned short WORD;
        struct {
            unsigned short SCKDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SPNDEN:1;
            unsigned short LSBF:1;
            unsigned short SPB:4;
            unsigned short SSLKP:1;
            unsigned short SPIMOD:2;
            unsigned short SPRW:1;
            unsigned short BRDV:2;
            unsigned short CPOL:1;
            unsigned short CPHA:1;
        } BIT;
    } SPCMD3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TXRST:1;
            unsigned char RXRST:1;
            unsigned char TXTRG:2;
            unsigned char TXTRGEX:1;
            unsigned char RXTRG:3;
        } BIT;
    } SPBFCR;
    char           wk1[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short :2;
            unsigned short TXBC:6;
            unsigned short :2;
            unsigned short RXBC:6;
        } BIT;
    } SPBDCR;
    union {
        unsigned long LONG;
    } SPBMUL0;
    union {
        unsigned long LONG;
    } SPBMUL1;
    union {
        unsigned long LONG;
    } SPBMUL2;
    union {
        unsigned long LONG;
    } SPBMUL3;
};

struct st_riic0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char ICE:1;
            unsigned char IICRST:1;
            unsigned char CLO:1;
            unsigned char SOWP:1;
            unsigned char SCLO:1;
            unsigned char SDAO:1;
            unsigned char SCLI:1;
            unsigned char SDAI:1;
        } BIT;
    } ICCR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BBSY:1;
            unsigned char MST:1;
            unsigned char TRS:1;
            unsigned char :1;
            unsigned char SP:1;
            unsigned char RS:1;
            unsigned char ST:1;
        } BIT;
    } ICCR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MTWP:1;
            unsigned char CKS:3;
            unsigned char BCWP:1;
            unsigned char BC:3;
        } BIT;
    } ICMR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DLCS:1;
            unsigned char SDDL:3;
            unsigned char :1;
            unsigned char TMOH:1;
            unsigned char TMOL:1;
            unsigned char TMOS:1;
        } BIT;
    } ICMR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SMBS:1;
            unsigned char WAIT:1;
            unsigned char RDRFS:1;
            unsigned char ACKWP:1;
            unsigned char ACKBT:1;
            unsigned char ACKBR:1;
            unsigned char NF:2;
        } BIT;
    } ICMR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char FMPE:1;
            unsigned char SCLE:1;
            unsigned char NFE:1;
            unsigned char NACKE:1;
            unsigned char SALE:1;
            unsigned char NALE:1;
            unsigned char MALE:1;
            unsigned char TMOE:1;
        } BIT;
    } ICFER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char HOAE:1;
            unsigned char :1;
            unsigned char DIDE:1;
            unsigned char :1;
            unsigned char GCAE:1;
            unsigned char SAR2E:1;
            unsigned char SAR1E:1;
            unsigned char SAR0E:1;
        } BIT;
    } ICSER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TIE:1;
            unsigned char TEIE:1;
            unsigned char RIE:1;
            unsigned char NAKIE:1;
            unsigned char SPIE:1;
            unsigned char STIE:1;
            unsigned char ALIE:1;
            unsigned char TMOIE:1;
        } BIT;
    } ICIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char HOA:1;
            unsigned char :1;
            unsigned char DID:1;
            unsigned char :1;
            unsigned char GCA:1;
            unsigned char AAS2:1;
            unsigned char AAS1:1;
            unsigned char AAS0:1;
        } BIT;
    } ICSR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TDRE:1;
            unsigned char TEND:1;
            unsigned char RDRF:1;
            unsigned char NACKF:1;
            unsigned char STOP:1;
            unsigned char START:1;
            unsigned char AL:1;
            unsigned char TMOF:1;
        } BIT;
    } ICSR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SVA:7;
            unsigned char SVA0:1;
        } BIT;
    } SARL0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char SVA:2;
            unsigned char FS:1;
        } BIT;
    } SARU0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SVA:7;
            unsigned char SVA0:1;
        } BIT;
    } SARL1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char SVA:2;
            unsigned char FS:1;
        } BIT;
    } SARU1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SVA:7;
            unsigned char SVA0:1;
        } BIT;
    } SARL2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char SVA:2;
            unsigned char FS:1;
        } BIT;
    } SARU2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char BRL:5;
        } BIT;
    } ICBRL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char BRH:5;
        } BIT;
    } ICBRH;
    unsigned char  ICDRT;
    unsigned char  ICDRR;
};

struct st_riic2 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char ICE:1;
            unsigned char IICRST:1;
            unsigned char CLO:1;
            unsigned char SOWP:1;
            unsigned char SCLO:1;
            unsigned char SDAO:1;
            unsigned char SCLI:1;
            unsigned char SDAI:1;
        } BIT;
    } ICCR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BBSY:1;
            unsigned char MST:1;
            unsigned char TRS:1;
            unsigned char :1;
            unsigned char SP:1;
            unsigned char RS:1;
            unsigned char ST:1;
        } BIT;
    } ICCR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MTWP:1;
            unsigned char CKS:3;
            unsigned char BCWP:1;
            unsigned char BC:3;
        } BIT;
    } ICMR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DLCS:1;
            unsigned char SDDL:3;
            unsigned char :1;
            unsigned char TMOH:1;
            unsigned char TMOL:1;
            unsigned char TMOS:1;
        } BIT;
    } ICMR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SMBS:1;
            unsigned char WAIT:1;
            unsigned char RDRFS:1;
            unsigned char ACKWP:1;
            unsigned char ACKBT:1;
            unsigned char ACKBR:1;
            unsigned char NF:2;
        } BIT;
    } ICMR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char SCLE:1;
            unsigned char NFE:1;
            unsigned char NACKE:1;
            unsigned char SALE:1;
            unsigned char NALE:1;
            unsigned char MALE:1;
            unsigned char TMOE:1;
        } BIT;
    } ICFER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char HOAE:1;
            unsigned char :1;
            unsigned char DIDE:1;
            unsigned char :1;
            unsigned char GCAE:1;
            unsigned char SAR2E:1;
            unsigned char SAR1E:1;
            unsigned char SAR0E:1;
        } BIT;
    } ICSER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TIE:1;
            unsigned char TEIE:1;
            unsigned char RIE:1;
            unsigned char NAKIE:1;
            unsigned char SPIE:1;
            unsigned char STIE:1;
            unsigned char ALIE:1;
            unsigned char TMOIE:1;
        } BIT;
    } ICIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char HOA:1;
            unsigned char :1;
            unsigned char DID:1;
            unsigned char :1;
            unsigned char GCA:1;
            unsigned char AAS2:1;
            unsigned char AAS1:1;
            unsigned char AAS0:1;
        } BIT;
    } ICSR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TDRE:1;
            unsigned char TEND:1;
            unsigned char RDRF:1;
            unsigned char NACKF:1;
            unsigned char STOP:1;
            unsigned char START:1;
            unsigned char AL:1;
            unsigned char TMOF:1;
        } BIT;
    } ICSR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SVA:7;
            unsigned char SVA0:1;
        } BIT;
    } SARL0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char SVA:2;
            unsigned char FS:1;
        } BIT;
    } SARU0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SVA:7;
            unsigned char SVA0:1;
        } BIT;
    } SARL1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char SVA:2;
            unsigned char FS:1;
        } BIT;
    } SARU1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SVA:7;
            unsigned char SVA0:1;
        } BIT;
    } SARL2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char SVA:2;
            unsigned char FS:1;
        } BIT;
    } SARU2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char BRL:5;
        } BIT;
    } ICBRL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char BRH:5;
        } BIT;
    } ICBRH;
    unsigned char  ICDRT;
    unsigned char  ICDRR;
};

struct st_rspi0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPRIE:1;
            unsigned char SPE:1;
            unsigned char SPTIE:1;
            unsigned char SPEIE:1;
            unsigned char MSTR:1;
            unsigned char MODFEN:1;
            unsigned char TXMD:1;
            unsigned char SPMS:1;
        } BIT;
    } SPCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char SSL3P:1;
            unsigned char SSL2P:1;
            unsigned char SSL1P:1;
            unsigned char SSL0P:1;
        } BIT;
    } SSLP;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char MOIFE:1;
            unsigned char MOIFV:1;
            unsigned char :2;
            unsigned char SPLP2:1;
            unsigned char SPLP:1;
        } BIT;
    } SPPCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char PERF:1;
            unsigned char MODF:1;
            unsigned char IDLNF:1;
            unsigned char OVRF:1;
        } BIT;
    } SPSR;
    union {
        unsigned long LONG;
        struct {
            unsigned short H;
        } WORD;
    } SPDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char SPSLN:3;
        } BIT;
    } SPSCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char SPECM:3;
            unsigned char :1;
            unsigned char SPCP:3;
        } BIT;
    } SPSSR;
    unsigned char SPBR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char SPLW:1;
            unsigned char SPRDTD:1;
            unsigned char :2;
            unsigned char SPFC:2;
        } BIT;
    } SPDCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char SCKDL:3;
        } BIT;
    } SPCKD;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char SLNDL:3;
        } BIT;
    } SSLND;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char SPNDL:3;
        } BIT;
    } SPND;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SPTDDL:3;
            unsigned char SCKASE:1;
            unsigned char PTE:1;
            unsigned char SPIIE:1;
            unsigned char SPOE:1;
            unsigned char SPPE:1;
        } BIT;
    } SPCR2;
    union {
        unsigned short WORD;
        struct {
            unsigned short SCKDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SPNDEN:1;
            unsigned short LSBF:1;
            unsigned short SPB:4;
            unsigned short SSLKP:1;
            unsigned short SSLA:3;
            unsigned short BRDV:2;
            unsigned short CPOL:1;
            unsigned short CPHA:1;
        } BIT;
    } SPCMD0;
    union {
        unsigned short WORD;
        struct {
            unsigned short SCKDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SPNDEN:1;
            unsigned short LSBF:1;
            unsigned short SPB:4;
            unsigned short SSLKP:1;
            unsigned short SSLA:3;
            unsigned short BRDV:2;
            unsigned short CPOL:1;
            unsigned short CPHA:1;
        } BIT;
    } SPCMD1;
    union {
        unsigned short WORD;
        struct {
            unsigned short SCKDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SPNDEN:1;
            unsigned short LSBF:1;
            unsigned short SPB:4;
            unsigned short SSLKP:1;
            unsigned short SSLA:3;
            unsigned short BRDV:2;
            unsigned short CPOL:1;
            unsigned short CPHA:1;
        } BIT;
    } SPCMD2;
    union {
        unsigned short WORD;
        struct {
            unsigned short SCKDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SPNDEN:1;
            unsigned short LSBF:1;
            unsigned short SPB:4;
            unsigned short SSLKP:1;
            unsigned short SSLA:3;
            unsigned short BRDV:2;
            unsigned short CPOL:1;
            unsigned short CPHA:1;
        } BIT;
    } SPCMD3;
    union {
        unsigned short WORD;
        struct {
            unsigned short SCKDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SPNDEN:1;
            unsigned short LSBF:1;
            unsigned short SPB:4;
            unsigned short SSLKP:1;
            unsigned short SSLA:3;
            unsigned short BRDV:2;
            unsigned short CPOL:1;
            unsigned short CPHA:1;
        } BIT;
    } SPCMD4;
    union {
        unsigned short WORD;
        struct {
            unsigned short SCKDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SPNDEN:1;
            unsigned short LSBF:1;
            unsigned short SPB:4;
            unsigned short SSLKP:1;
            unsigned short SSLA:3;
            unsigned short BRDV:2;
            unsigned short CPOL:1;
            unsigned short CPHA:1;
        } BIT;
    } SPCMD5;
    union {
        unsigned short WORD;
        struct {
            unsigned short SCKDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SPNDEN:1;
            unsigned short LSBF:1;
            unsigned short SPB:4;
            unsigned short SSLKP:1;
            unsigned short SSLA:3;
            unsigned short BRDV:2;
            unsigned short CPOL:1;
            unsigned short CPHA:1;
        } BIT;
    } SPCMD6;
    union {
        unsigned short WORD;
        struct {
            unsigned short SCKDEN:1;
            unsigned short SLNDEN:1;
            unsigned short SPNDEN:1;
            unsigned short LSBF:1;
            unsigned short SPB:4;
            unsigned short SSLKP:1;
            unsigned short SSLA:3;
            unsigned short BRDV:2;
            unsigned short CPOL:1;
            unsigned short CPHA:1;
        } BIT;
    } SPCMD7;
};

struct st_rtc {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char F1HZ:1;
            unsigned char F2HZ:1;
            unsigned char F4HZ:1;
            unsigned char F8HZ:1;
            unsigned char F16HZ:1;
            unsigned char F32HZ:1;
            unsigned char F64HZ:1;
        } BIT;
    } R64CNT;
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char SEC10:3;
            unsigned char SEC1:4;
        } BIT;
    } RSECCNT;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char MIN10:3;
            unsigned char MIN1:4;
        } BIT;
    } RMINCNT;
    char           wk2[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char PM:1;
            unsigned char HR10:2;
            unsigned char HR1:4;
        } BIT;
    } RHRCNT;
    char           wk3[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char DAYW:3;
        } BIT;
    } RWKCNT;
    char           wk4[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char DATE10:2;
            unsigned char DATE1:4;
        } BIT;
    } RDAYCNT;
    char           wk5[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char MON10:1;
            unsigned char MON1:4;
        } BIT;
    } RMONCNT;
    char           wk6[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short YR10:4;
            unsigned short YR1:4;
        } BIT;
    } RYRCNT;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ENB:1;
            unsigned char SEC10:3;
            unsigned char SEC1:4;
        } BIT;
    } RSECAR;
    char           wk7[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ENB:1;
            unsigned char MIN10:3;
            unsigned char MIN1:4;
        } BIT;
    } RMINAR;
    char           wk8[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ENB:1;
            unsigned char PM:1;
            unsigned char HR10:2;
            unsigned char HR1:4;
        } BIT;
    } RHRAR;
    char           wk9[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ENB:1;
            unsigned char :4;
            unsigned char DAYW:3;
        } BIT;
    } RWKAR;
    char           wk10[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ENB:1;
            unsigned char :1;
            unsigned char DATE10:2;
            unsigned char DATE1:4;
        } BIT;
    } RDAYAR;
    char           wk11[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ENB:1;
            unsigned char :2;
            unsigned char MON10:1;
            unsigned char MON1:4;
        } BIT;
    } RMONAR;
    char           wk12[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short YR10:4;
            unsigned short YR1:4;
        } BIT;
    } RYRAR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ENB:1;
        } BIT;
    } RYRAREN;
    char           wk13[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char PES:4;
            unsigned char RTCOS:1;
            unsigned char PIE:1;
            unsigned char CIE:1;
            unsigned char AIE:1;
        } BIT;
    } RCR1;
    char           wk14[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CNTMD:1;
            unsigned char HR24:1;
            unsigned char AADJP:1;
            unsigned char AADJE:1;
            unsigned char RTCOE:1;
            unsigned char ADJ30:1;
            unsigned char RESET:1;
            unsigned char START:1;
        } BIT;
    } RCR2;
    char           wk15[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char RTCDV:3;
            unsigned char RTCEN:1;
        } BIT;
    } RCR3;
    char           wk16[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char RCKSEL:1;
        } BIT;
    } RCR4;
    char           wk17[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short :15;
            unsigned short RFC:1;
        } BIT;
    } RFRH;
    union {
        unsigned short WORD;
        struct {
            unsigned short RFC:16;
        } BIT;
    } RFRL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PMADJ:2;
            unsigned char ADJ:6;
        } BIT;
    } RADJ;
    char           wk18[17];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCEN:1;
            unsigned char :1;
            unsigned char TCNF:2;
            unsigned char :1;
            unsigned char TCST:1;
            unsigned char TCCT:2;
        } BIT;
    } RTCCR0;
    char           wk19[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCEN:1;
            unsigned char :1;
            unsigned char TCNF:2;
            unsigned char :1;
            unsigned char TCST:1;
            unsigned char TCCT:2;
        } BIT;
    } RTCCR1;
    char           wk20[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCEN:1;
            unsigned char :1;
            unsigned char TCNF:2;
            unsigned char :1;
            unsigned char TCST:1;
            unsigned char TCCT:2;
        } BIT;
    } RTCCR2;
    char           wk21[13];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char SEC10:3;
            unsigned char SEC1:4;
        } BIT;
    } RSECCP0;
    char           wk22[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char MIN10:3;
            unsigned char MIN1:4;
        } BIT;
    } RMINCP0;
    char           wk23[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char PM:1;
            unsigned char HR10:2;
            unsigned char HR1:4;
        } BIT;
    } RHRCP0;
    char           wk24[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char DATE10:2;
            unsigned char DATE1:4;
        } BIT;
    } RDAYCP0;
    char           wk25[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char MON10:1;
            unsigned char MON1:4;
        } BIT;
    } RMONCP0;
    char           wk26[5];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char SEC10:3;
            unsigned char SEC1:4;
        } BIT;
    } RSECCP1;
    char           wk27[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char MIN10:3;
            unsigned char MIN1:4;
        } BIT;
    } RMINCP1;
    char           wk28[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char PM:1;
            unsigned char HR10:2;
            unsigned char HR1:4;
        } BIT;
    } RHRCP1;
    char           wk29[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char DATE10:2;
            unsigned char DATE1:4;
        } BIT;
    } RDAYCP1;
    char           wk30[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char MON10:1;
            unsigned char MON1:4;
        } BIT;
    } RMONCP1;
    char           wk31[5];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char SEC10:3;
            unsigned char SEC1:4;
        } BIT;
    } RSECCP2;
    char           wk32[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char MIN10:3;
            unsigned char MIN1:4;
        } BIT;
    } RMINCP2;
    char           wk33[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char PM:1;
            unsigned char HR10:2;
            unsigned char HR1:4;
        } BIT;
    } RHRCP2;
    char           wk34[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char DATE10:2;
            unsigned char DATE1:4;
        } BIT;
    } RDAYCP2;
    char           wk35[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char MON10:1;
            unsigned char MON1:4;
        } BIT;
    } RMONCP2;
};

struct st_rtcb {
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNT:8;
        } BIT;
    } BCNT0;
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNT:8;
        } BIT;
    } BCNT1;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNT:8;
        } BIT;
    } BCNT2;
    char           wk2[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNT:8;
        } BIT;
    } BCNT3;
    char           wk3[7];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNTAR:8;
        } BIT;
    } BCNT0AR;
    char           wk4[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNTAR:8;
        } BIT;
    } BCNT1AR;
    char           wk5[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNTAR:8;
        } BIT;
    } BCNT2AR;
    char           wk6[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNTAR:8;
        } BIT;
    } BCNT3AR;
    char           wk7[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ENB:8;
        } BIT;
    } BCNT0AER;
    char           wk8[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char ENB:8;
        } BIT;
    } BCNT1AER;
    char           wk9[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short ENB:8;
        } BIT;
    } BCNT2AER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ENB:8;
        } BIT;
    } BCNT3AER;
    char           wk10[5];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CNTMD:1;
            unsigned char :1;
            unsigned char AADJP:1;
            unsigned char AADJE:1;
            unsigned char RTCOE:1;
            unsigned char :1;
            unsigned char RESET:1;
            unsigned char START:1;
        } BIT;
    } BRCR2;
    char           wk11[45];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP0:8;
        } BIT;
    } BCNT0CP0;
    char           wk12[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP0:8;
        } BIT;
    } BCNT1CP0;
    char           wk13[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP0:8;
        } BIT;
    } BCNT2CP0;
    char           wk14[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP0:8;
        } BIT;
    } BCNT3CP0;
    char           wk15[7];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP1:8;
        } BIT;
    } BCNT0CP1;
    char           wk16[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP1:8;
        } BIT;
    } BCNT1CP1;
    char           wk17[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP1:8;
        } BIT;
    } BCNT2CP1;
    char           wk18[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP1:8;
        } BIT;
    } BCNT3CP1;
    char           wk19[7];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP2:8;
        } BIT;
    } BCNT0CP2;
    char           wk20[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP2:8;
        } BIT;
    } BCNT1CP2;
    char           wk21[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP2:8;
        } BIT;
    } BCNT2CP2;
    char           wk22[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCNCP2:8;
        } BIT;
    } BCNT3CP2;
};

struct st_s12ad {
    union {
        unsigned short WORD;
        struct {
            unsigned short ADST:1;
            unsigned short ADCS:2;
            unsigned short ADIE:1;
            unsigned short :2;
            unsigned short TRGE:1;
            unsigned short EXTRG:1;
            unsigned short DBLE:1;
            unsigned short GBADIE:1;
            unsigned short :1;
            unsigned short DBLANS:5;
        } BIT;
    } ADCSR;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short ANSA0:16;
        } BIT;
    } ADANSA0;
    char           wk1[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short ADS0:16;
        } BIT;
    } ADADS0;
    char           wk2[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char AVEE:1;
            unsigned char :5;
            unsigned char ADC:2;
        } BIT;
    } ADADC;
    char           wk3[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short ADRFMT:1;
            unsigned short :3;
            unsigned short DIAGM:1;
            unsigned short DIAGLD:1;
            unsigned short DIAGVAL:2;
            unsigned short :2;
            unsigned short ACE:1;
            unsigned short :2;
            unsigned short ADPRC:2;
        } BIT;
    } ADCER;
    union {
        unsigned short WORD;
        struct {
            unsigned short :2;
            unsigned short TRSA:6;
            unsigned short :2;
            unsigned short TRSB:6;
        } BIT;
    } ADSTRGR;
    union {
        unsigned short WORD;
        struct {
            unsigned short EXOEN:1;
            unsigned short EXSEL:2;
            unsigned short :3;
            unsigned short OCS:1;
            unsigned short TSS:1;
            unsigned short :6;
            unsigned short OCSAD:1;
            unsigned short TSSAD:1;
        } BIT;
    } ADEXICR;
    union {
        unsigned short WORD;
        struct {
            unsigned short ANSB0:16;
        } BIT;
    } ADANSB0;
    char           wk4[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short :2;
            unsigned short AD:12;
        } BIT;
    } ADDBLDR;
    char           wk5[4];
    union {
        unsigned short WORD;
        union {
            struct {
                unsigned short DIAGST:2;
                unsigned short :2;
                unsigned short AD:12;
            } RIGHT;
            struct {
                unsigned short AD:12;
                unsigned short :2;
                unsigned short DIAGST:2;
            } LEFT;
        } BIT;
    } ADRD;
    unsigned short ADDR0;
    unsigned short ADDR1;
    unsigned short ADDR2;
    unsigned short ADDR3;
    unsigned short ADDR4;
    unsigned short ADDR5;
    unsigned short ADDR6;
    unsigned short ADDR7;
    char           wk6[48];
    unsigned char  ADSSTR0;
    unsigned char  ADSSTRL;
    char           wk7[4];
    union {
        unsigned short WORD;
        struct {
            unsigned short :5;
            unsigned short SHANS:3;
            unsigned short SSTSH:8;
        } BIT;
    } ADSHCR;
    char           wk8[11];
    unsigned char  ADSSTR1;
    unsigned char  ADSSTR2;
    unsigned char  ADSSTR3;
    unsigned char  ADSSTR4;
    unsigned char  ADSSTR5;
    unsigned char  ADSSTR6;
    unsigned char  ADSSTR7;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char ADNDIS:5;
        } BIT;
    } ADDISCR;
    char           wk9[5];
    union {
        unsigned short WORD;
        struct {
            unsigned short GBRP:1;
            unsigned short :13;
            unsigned short GBRSCN:1;
            unsigned short PGS:1;
        } BIT;
    } ADGSPCR;
    char           wk10[2];
    unsigned short ADDBLDRA;
    unsigned short ADDBLDRB;
    char           wk11[8];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CMPIE:1;
            unsigned char WCMPE:1;
        } BIT;
    } ADCMPCR;
    char           wk12[3];
    union {
        unsigned short WORD;
        struct {
            unsigned short CMPS0:16;
        } BIT;
    } ADCMPANSR0;
    char           wk13[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short CMPL0:16;
        } BIT;
    } ADCMPLR0;
    char           wk14[2];
    unsigned short ADCMPDR0;
    unsigned short ADCMPDR1;
    union {
        unsigned short WORD;
        struct {
            unsigned short CMPF0:16;
        } BIT;
    } ADCMPSR0;
};

struct st_s12ad1 {
    union {
        unsigned short WORD;
        struct {
            unsigned short ANSA0:16;
        } BIT;
    } ADANSA0;
    union {
        unsigned short WORD;
        struct {
            unsigned short :11;
            unsigned short ANSA1:5;
        } BIT;
    } ADANSA1;
    union {
        unsigned short WORD;
        struct {
            unsigned short ADS0:16;
        } BIT;
    } ADADS0;
    union {
        unsigned short WORD;
        struct {
            unsigned short :11;
            unsigned short ADS1:5;
        } BIT;
    } ADADS1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char AVEE:1;
            unsigned char :5;
            unsigned char ADC:2;
        } BIT;
    } ADADC;
    char           wk0[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short ADRFMT:1;
            unsigned short :3;
            unsigned short DIAGM:1;
            unsigned short DIAGLD:1;
            unsigned short DIAGVAL:2;
            unsigned short :2;
            unsigned short ACE:1;
            unsigned short :2;
            unsigned short ADPRC:2;
        } BIT;
    } ADCER;
    union {
        unsigned short WORD;
        struct {
            unsigned short :2;
            unsigned short TRSA:6;
            unsigned short :2;
            unsigned short TRSB:6;
        } BIT;
    } ADSTRGR;
    union {
        unsigned short WORD;
        struct {
            unsigned short EXOEN:1;
            unsigned short EXSEL:2;
            unsigned short :3;
            unsigned short OCS:1;
            unsigned short TSS:1;
            unsigned short :6;
            unsigned short OCSAD:1;
            unsigned short TSSAD:1;
        } BIT;
    } ADEXICR;
    union {
        unsigned short WORD;
        struct {
            unsigned short ANSB0:16;
        } BIT;
    } ADANSB0;
    union {
        unsigned short WORD;
        struct {
            unsigned short :11;
            unsigned short ANSB1:5;
        } BIT;
    } ADANSB1;
    unsigned short ADDBLDR;
    unsigned short ADTSDR;
    unsigned short ADOCDR;
    union {
        unsigned short WORD;
        union {
            struct {
                unsigned short DIAGST:2;
                unsigned short :2;
                unsigned short AD:12;
            } RIGHT;
            struct {
                unsigned short AD:12;
                unsigned short :2;
                unsigned short DIAGST:2;
            } LEFT;
        } BIT;
    } ADRD;
    unsigned short ADDR0;
    unsigned short ADDR1;
    unsigned short ADDR2;
    unsigned short ADDR3;
    unsigned short ADDR4;
    unsigned short ADDR5;
    unsigned short ADDR6;
    unsigned short ADDR7;
    unsigned short ADDR8;
    unsigned short ADDR9;
    unsigned short ADDR10;
    unsigned short ADDR11;
    unsigned short ADDR12;
    unsigned short ADDR13;
    unsigned short ADDR14;
    unsigned short ADDR15;
    unsigned short ADDR16;
    unsigned short ADDR17;
    unsigned short ADDR18;
    unsigned short ADDR19;
    unsigned short ADDR20;
    char           wk1[22];
    unsigned char  ADSSTR0;
    unsigned char  ADSSTRL;
    char           wk2[14];
    unsigned char  ADSSTRT;
    unsigned char  ADSSTRO;
    char           wk3[1];
    unsigned char  ADSSTR1;
    unsigned char  ADSSTR2;
    unsigned char  ADSSTR3;
    unsigned char  ADSSTR4;
    unsigned char  ADSSTR5;
    unsigned char  ADSSTR6;
    unsigned char  ADSSTR7;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char ADNDIS:5;
        } BIT;
    } ADDISCR;
    char           wk4[5];
    union {
        unsigned short WORD;
        struct {
            unsigned short GBRP:1;
            unsigned short :13;
            unsigned short GBRSCN:1;
            unsigned short PGS:1;
        } BIT;
    } ADGSPCR;
    char           wk5[2];
    unsigned short ADDBLDRA;
    unsigned short ADDBLDRB;
    char           wk6[8];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CMPIE:1;
            unsigned char WCMPE:1;
        } BIT;
    } ADCMPCR;
    char           wk7[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char CMPSOC:1;
            unsigned char CMPSTS:1;
        } BIT;
    } ADCMPANSER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char CMPLOC:1;
            unsigned char CMPLTS:1;
        } BIT;
    } ADCMPLER;
    union {
        unsigned short WORD;
        struct {
            unsigned short CMPS0:16;
        } BIT;
    } ADCMPANSR0;
    union {
        unsigned short WORD;
        struct {
            unsigned short :11;
            unsigned short CMPS1:5;
        } BIT;
    } ADCMPANSR1;
    union {
        unsigned short WORD;
        struct {
            unsigned short CMPL0:16;
        } BIT;
    } ADCMPLR0;
    union {
        unsigned short WORD;
        struct {
            unsigned short :11;
            unsigned short CMPL1:5;
        } BIT;
    } ADCMPLR1;
    unsigned short ADCMPDR0;
    unsigned short ADCMPDR1;
    union {
        unsigned short WORD;
        struct {
            unsigned short CMPF0:16;
        } BIT;
    } ADCMPSR0;
    union {
        unsigned short WORD;
        struct {
            unsigned short :11;
            unsigned short CMPF1:5;
        } BIT;
    } ADCMPSR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char CMPFOC:1;
            unsigned char CMPFTS:1;
        } BIT;
    } ADCMPSER;
};

struct st_sci0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char CM:1;
            unsigned char CHR:1;
            unsigned char PE:1;
            unsigned char PM:1;
            unsigned char STOP:1;
            unsigned char MP:1;
            unsigned char CKS:2;
        } BIT;
    } SMR;
    unsigned char  BRR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TIE:1;
            unsigned char RIE:1;
            unsigned char TE:1;
            unsigned char RE:1;
            unsigned char MPIE:1;
            unsigned char TEIE:1;
            unsigned char CKE:2;
        } BIT;
    } SCR;
    unsigned char  TDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char ORER:1;
            unsigned char FER:1;
            unsigned char PER:1;
            unsigned char TEND:1;
            unsigned char MPB:1;
            unsigned char MPBT:1;
        } BIT;
    } SSR;
    unsigned char  RDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCP2:1;
            unsigned char :2;
            unsigned char CHR1:1;
            unsigned char SDIR:1;
            unsigned char SINV:1;
            unsigned char :1;
            unsigned char SMIF:1;
        } BIT;
    } SCMR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char RXDESEL:1;
            unsigned char BGDM:1;
            unsigned char NFEN:1;
            unsigned char ABCS:1;
            unsigned char :1;
            unsigned char BRME:1;
            unsigned char :1;
            unsigned char ACS0:1;
        } BIT;
    } SEMR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char NFCS:3;
        } BIT;
    } SNFR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IICDL:5;
            unsigned char :2;
            unsigned char IICM:1;
        } BIT;
    } SIMR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char IICACKT:1;
            unsigned char :3;
            unsigned char IICCSC:1;
            unsigned char IICINTM:1;
        } BIT;
    } SIMR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IICSCLS:2;
            unsigned char IICSDAS:2;
            unsigned char IICSTIF:1;
            unsigned char IICSTPREQ:1;
            unsigned char IICRSTAREQ:1;
            unsigned char IICSTAREQ:1;
        } BIT;
    } SIMR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char IICACKR:1;
        } BIT;
    } SISR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char CKPH:1;
            unsigned char CKPOL:1;
            unsigned char :1;
            unsigned char MFF:1;
            unsigned char :1;
            unsigned char MSS:1;
            unsigned char CTSE:1;
            unsigned char SSE:1;
        } BIT;
    } SPMR;
    unsigned char  TDRH;
    unsigned char  TDRL;
    unsigned char  RDRH;
    unsigned char  RDRL;
    unsigned char  MDDR;
};

struct st_sci12 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char CM:1;
            unsigned char CHR:1;
            unsigned char PE:1;
            unsigned char PM:1;
            unsigned char STOP:1;
            unsigned char MP:1;
            unsigned char CKS:2;
        } BIT;
    } SMR;
    unsigned char  BRR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TIE:1;
            unsigned char RIE:1;
            unsigned char TE:1;
            unsigned char RE:1;
            unsigned char MPIE:1;
            unsigned char TEIE:1;
            unsigned char CKE:2;
        } BIT;
    } SCR;
    unsigned char  TDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char ORER:1;
            unsigned char FER:1;
            unsigned char PER:1;
            unsigned char TEND:1;
            unsigned char MPB:1;
            unsigned char MPBT:1;
        } BIT;
    } SSR;
    unsigned char  RDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCP2:1;
            unsigned char :2;
            unsigned char CHR1:1;
            unsigned char SDIR:1;
            unsigned char SINV:1;
            unsigned char :1;
            unsigned char SMIF:1;
        } BIT;
    } SCMR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char RXDESEL:1;
            unsigned char BGDM:1;
            unsigned char NFEN:1;
            unsigned char ABCS:1;
            unsigned char :1;
            unsigned char BRME:1;
            unsigned char :1;
            unsigned char ACS0:1;
        } BIT;
    } SEMR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char NFCS:3;
        } BIT;
    } SNFR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IICDL:5;
            unsigned char :2;
            unsigned char IICM:1;
        } BIT;
    } SIMR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char IICACKT:1;
            unsigned char :3;
            unsigned char IICCSC:1;
            unsigned char IICINTM:1;
        } BIT;
    } SIMR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IICSCLS:2;
            unsigned char IICSDAS:2;
            unsigned char IICSTIF:1;
            unsigned char IICSTPREQ:1;
            unsigned char IICRSTAREQ:1;
            unsigned char IICSTAREQ:1;
        } BIT;
    } SIMR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char IICACKR:1;
        } BIT;
    } SISR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char CKPH:1;
            unsigned char CKPOL:1;
            unsigned char :1;
            unsigned char MFF:1;
            unsigned char :1;
            unsigned char MSS:1;
            unsigned char CTSE:1;
            unsigned char SSE:1;
        } BIT;
    } SPMR;
    unsigned char  TDRH;
    unsigned char  TDRL;
    unsigned char  RDRH;
    unsigned char  RDRL;
    unsigned char  MDDR;
    char           wk0[13];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char ESME:1;
        } BIT;
    } ESMER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char BRME:1;
            unsigned char RXDSF:1;
            unsigned char SFSF:1;
        } BIT;
    } CR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char PIBS:3;
            unsigned char PIBE:1;
            unsigned char CF1DS:2;
            unsigned char CF0RE:1;
            unsigned char BFE:1;
        } BIT;
    } CR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char RTS:2;
            unsigned char BCCS:2;
            unsigned char :1;
            unsigned char DFCS:3;
        } BIT;
    } CR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char SDST:1;
        } BIT;
    } CR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char SHARPS:1;
            unsigned char :2;
            unsigned char RXDXPS:1;
            unsigned char TXDXPS:1;
        } BIT;
    } PCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char AEDIE:1;
            unsigned char BCDIE:1;
            unsigned char PIBDIE:1;
            unsigned char CF1MIE:1;
            unsigned char CF0MIE:1;
            unsigned char BFDIE:1;
        } BIT;
    } ICR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char AEDF:1;
            unsigned char BCDF:1;
            unsigned char PIBDF:1;
            unsigned char CF1MF:1;
            unsigned char CF0MF:1;
            unsigned char BFDF:1;
        } BIT;
    } STR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char AEDCL:1;
            unsigned char BCDCL:1;
            unsigned char PIBDCL:1;
            unsigned char CF1MCL:1;
            unsigned char CF0MCL:1;
            unsigned char BFDCL:1;
        } BIT;
    } STCR;
    unsigned char  CF0DR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char CF0CE7:1;
            unsigned char CF0CE6:1;
            unsigned char CF0CE5:1;
            unsigned char CF0CE4:1;
            unsigned char CF0CE3:1;
            unsigned char CF0CE2:1;
            unsigned char CF0CE1:1;
            unsigned char CF0CE0:1;
        } BIT;
    } CF0CR;
    unsigned char  CF0RR;
    unsigned char  PCF1DR;
    unsigned char  SCF1DR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char CF1CE7:1;
            unsigned char CF1CE6:1;
            unsigned char CF1CE5:1;
            unsigned char CF1CE4:1;
            unsigned char CF1CE3:1;
            unsigned char CF1CE2:1;
            unsigned char CF1CE1:1;
            unsigned char CF1CE0:1;
        } BIT;
    } CF1CR;
    unsigned char  CF1RR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char TCST:1;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char TCSS:3;
            unsigned char TWRC:1;
            unsigned char :1;
            unsigned char TOMS:2;
        } BIT;
    } TMR;
    unsigned char  TPRE;
    unsigned char  TCNT;
};

struct st_scif {
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short CM:1;
            unsigned short CHR:1;
            unsigned short PE:1;
            unsigned short PM:1;
            unsigned short STOP:1;
            unsigned short :1;
            unsigned short CKS:2;
        } BIT;
    } SMR;
//    unsigned char  BRR;
    union {
        unsigned char  BRR;
        unsigned char  MDDR;    
    };
    char           wk0[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short TIE:1;
            unsigned short RIE:1;
            unsigned short TE:1;
            unsigned short RE:1;
            unsigned short REIE:1;
            unsigned short TEIE:1;
            unsigned short CKE:2;
        } BIT;
    } SCR;
    unsigned char  FTDR;
    char           wk1[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short ER:1;
            unsigned short TEND:1;
            unsigned short TDFE:1;
            unsigned short BRK:1;
            unsigned short FER:1;
            unsigned short PER:1;
            unsigned short RDF:1;
            unsigned short DR:1;
        } BIT;
    } FSR;
    unsigned char  FRDR;
    char           wk2[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short :5;
            unsigned short RSTRG:3;
            unsigned short RTRG:2;
            unsigned short TTRG:2;
            unsigned short MCE:1;
            unsigned short TFRST:1;
            unsigned short RFRST:1;
            unsigned short LOOP:1;
        } BIT;
    } FCR;
    union {
        unsigned short WORD;
        struct {
            unsigned short :3;
            unsigned short T:5;
            unsigned short :3;
            unsigned short R:5;
        } BIT;
    } FDR;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short RTS2IO:1;
            unsigned short RTS2DT:1;
            unsigned short CTS2IO:1;
            unsigned short CTS2DT:1;
            unsigned short SCKIO:1;
            unsigned short SCKDT:1;
            unsigned short SPB2IO:1;
            unsigned short SPB2DT:1;
        } BIT;
    } SPTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short PER:4;
            unsigned short :2;
            unsigned short FER:4;
            unsigned short :1;
            unsigned short ORER:1;
        } BIT;
    } LSR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BGDM:1;
            unsigned char ACS0:1;
            unsigned char BRME:1;
            unsigned char MDDRS:1;
            unsigned char DIR:1;
            unsigned char NFEN:1;
            unsigned char :1;
            unsigned char ABCS0:1;
        } BIT;
    } SEMR;
    char           wk3[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short RTRGS:1;
            unsigned short :2;
            unsigned short RFTC:5;
            unsigned short TTRGS:1;
            unsigned short :2;
            unsigned short TFTC:5;
        } BIT;
    } FTCR;
};

struct st_smci {
    union {
        unsigned char BYTE;
        struct {
            unsigned char GM:1;
            unsigned char BLK:1;
            unsigned char PE:1;
            unsigned char PM:1;
            unsigned char BCP:2;
            unsigned char CKS:2;
        } BIT;
    } SMR;
    char           wk0[3];
//    unsigned char  BRR;
    union {
        unsigned char  BRR;
        unsigned char  MDDR;    
    };
    char           wk1[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TIE:1;
            unsigned char RIE:1;
            unsigned char TE:1;
            unsigned char RE:1;
            unsigned char MPIE:1;
            unsigned char TEIE:1;
            unsigned char CKE:2;
        } BIT;
    } SCR;
    char           wk2[3];
    unsigned char  TDR;
    char           wk3[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char ORER:1;
            unsigned char ERS:1;
            unsigned char PER:1;
            unsigned char TEND:1;
            unsigned char MPB:1;
            unsigned char MPBT:1;
        } BIT;
    } SSR;
    char           wk4[3];
    unsigned char  RDR;
    char           wk5[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCP2:1;
            unsigned char :2;
            unsigned char CHR1:1;
            unsigned char SDIR:1;
            unsigned char SINV:1;
            unsigned char :1;
            unsigned char SMIF:1;
        } BIT;
    } SCMR;
    char           wk6[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char BRME:1;
            unsigned char MDDRS:1;
            unsigned char :1;
            unsigned char ABCS:1;
            unsigned char :1;
            unsigned char RSDMOS:1;
            unsigned char :1;
            unsigned char ACS0:1;
        } BIT;
    } SEMR;
};

struct st_smci0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char GM:1;
            unsigned char BLK:1;
            unsigned char PE:1;
            unsigned char PM:1;
            unsigned char BCP:2;
            unsigned char CKS:2;
        } BIT;
    } SMR;
    unsigned char  BRR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TIE:1;
            unsigned char RIE:1;
            unsigned char TE:1;
            unsigned char RE:1;
            unsigned char MPIE:1;
            unsigned char TEIE:1;
            unsigned char CKE:2;
        } BIT;
    } SCR;
    unsigned char  TDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char ORER:1;
            unsigned char ERS:1;
            unsigned char PER:1;
            unsigned char TEND:1;
            unsigned char MPB:1;
            unsigned char MPBT:1;
        } BIT;
    } SSR;
    unsigned char  RDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char BCP2:1;
            unsigned char :2;
            unsigned char CHR1:1;
            unsigned char SDIR:1;
            unsigned char SINV:1;
            unsigned char :1;
            unsigned char SMIF:1;
        } BIT;
    } SCMR;
};

struct st_src {
    union {
        unsigned long LONG;
        struct {
            unsigned long :10;
            unsigned long SRCFCTR:22;
        } BIT;
    } SRCFCTR[5552];
    char           wk0[2352];
    union {
        unsigned long LONG;
        struct {
            unsigned long B31:1;
            unsigned long B30:1;
            unsigned long B29:1;
            unsigned long B28:1;
            unsigned long B27:1;
            unsigned long B26:1;
            unsigned long B25:1;
            unsigned long B24:1;
            unsigned long B23:1;
            unsigned long B22:1;
            unsigned long B21:1;
            unsigned long B20:1;
            unsigned long B19:1;
            unsigned long B18:1;
            unsigned long B17:1;
            unsigned long B16:1;
            unsigned long B15:1;
            unsigned long B14:1;
            unsigned long B13:1;
            unsigned long B12:1;
            unsigned long B11:1;
            unsigned long B10:1;
            unsigned long B9:1;
            unsigned long B8:1;
            unsigned long B7:1;
            unsigned long B6:1;
            unsigned long B5:1;
            unsigned long B4:1;
            unsigned long B3:1;
            unsigned long B2:1;
            unsigned long B1:1;
            unsigned long B0:1;
        } BIT;
    } SRCID;
    union {
        unsigned long LONG;
        struct {
            unsigned long B31:1;
            unsigned long B30:1;
            unsigned long B29:1;
            unsigned long B28:1;
            unsigned long B27:1;
            unsigned long B26:1;
            unsigned long B25:1;
            unsigned long B24:1;
            unsigned long B23:1;
            unsigned long B22:1;
            unsigned long B21:1;
            unsigned long B20:1;
            unsigned long B19:1;
            unsigned long B18:1;
            unsigned long B17:1;
            unsigned long B16:1;
            unsigned long B15:1;
            unsigned long B14:1;
            unsigned long B13:1;
            unsigned long B12:1;
            unsigned long B11:1;
            unsigned long B10:1;
            unsigned long B9:1;
            unsigned long B8:1;
            unsigned long B7:1;
            unsigned long B6:1;
            unsigned long B5:1;
            unsigned long B4:1;
            unsigned long B3:1;
            unsigned long B2:1;
            unsigned long B1:1;
            unsigned long B0:1;
        } BIT;
    } SRCOD;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short IED:1;
            unsigned short IEN:1;
            unsigned short :6;
            unsigned short IFTRG:2;
        } BIT;
    } SRCIDCTRL;
    union {
        unsigned short WORD;
        struct {
            unsigned short :5;
            unsigned short OCH:1;
            unsigned short OED:1;
            unsigned short OEN:1;
            unsigned short :6;
            unsigned short OFTRG:2;
        } BIT;
    } SRCODCTRL;
    union {
        unsigned short WORD;
        struct {
            unsigned short FICRAE:1;
            unsigned short :1;
            unsigned short CEEN:1;
            unsigned short SRCEN:1;
            unsigned short UDEN:1;
            unsigned short OVEN:1;
            unsigned short FL:1;
            unsigned short CL:1;
            unsigned short IFS:4;
            unsigned short :1;
            unsigned short OFS:3;
        } BIT;
    } SRCCTRL;
    union {
        unsigned short WORD;
        struct {
            unsigned short OFDN:5;
            unsigned short IFDN:3;
            unsigned short :2;
            unsigned short CEF:1;
            unsigned short FLF:1;
            unsigned short UDF:1;
            unsigned short OVF:1;
            unsigned short IINIT:1;
            unsigned short OINT:1;
        } BIT;
    } SRCSTAT;
};

struct st_ssi {
    union {
        unsigned long LONG;
        struct {
            unsigned long :1;
            unsigned long CKS:1;
            unsigned long TUIEN:1;
            unsigned long TOIEN:1;
            unsigned long RUIEN:1;
            unsigned long ROIEN:1;
            unsigned long IIEN:1;
            unsigned long :1;
            unsigned long CHNL:2;
            unsigned long DWL:3;
            unsigned long SWL:3;
            unsigned long SCKD:1;
            unsigned long SWSD:1;
            unsigned long SCKP:1;
            unsigned long SWSP:1;
            unsigned long SPDP:1;
            unsigned long SDTA:1;
            unsigned long PDTA:1;
            unsigned long DEL:1;
            unsigned long CKDV:4;
            unsigned long MUEN:1;
            unsigned long :1;
            unsigned long TEN:1;
            unsigned long REN:1;
        } BIT;
    } SSICR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :2;
            unsigned long TUIRQ:1;
            unsigned long TOIRQ:1;
            unsigned long RUIRQ:1;
            unsigned long ROIRQ:1;
            unsigned long IIRQ:1;
            unsigned long :18;
            unsigned long TCHNO:2;
            unsigned long TSWNO:1;
            unsigned long RCHNO:2;
            unsigned long RSWNO:1;
            unsigned long IDST:1;
        } BIT;
    } SSISR;
    char           wk0[8];
    union {
        unsigned long LONG;
        struct {
            unsigned long AUCKE:1;
            unsigned long :23;
            unsigned long TTRG:2;
            unsigned long RTRG:2;
            unsigned long TUE:1;
            unsigned long RIE:1;
            unsigned long TFRST:1;
            unsigned long RFRST:1;
        } BIT;
    } SSIFCR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :4;
            unsigned long TDC:4;
            unsigned long :7;
            unsigned long TDE:1;
            unsigned long :4;
            unsigned long RDC:4;
            unsigned long :7;
            unsigned long RDF:1;
        } BIT;
    } SSIFSR;
    unsigned long  SSIFTDR;
    unsigned long  SSIFRDR;
    union {
        unsigned long LONG;
        struct {
            unsigned long :23;
            unsigned long CONT:1;
        } BIT;
    } SSITDMR;
};

struct st_system {
    union {
        unsigned short WORD;
        struct {
            unsigned short :15;
            unsigned short MD:1;
        } BIT;
    } MDMONR;
    union {
        unsigned short WORD;
        struct {
            unsigned short :10;
            unsigned short UBTS:1;
        } BIT;
    } MDSR;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short KEY:8;
            unsigned short :6;
            unsigned short EXBE:1;
            unsigned short ROME:1;
        } BIT;
    } SYSCR0;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short SBYRAME:1;
            unsigned short ECCRAME:1;
            unsigned short :5;
            unsigned short RAME:1;
        } BIT;
    } SYSCR1;
    char           wk1[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short SSBY:1;
            unsigned short OPE:1;
        } BIT;
    } SBYCR;
    char           wk2[2];
    union {
        unsigned long LONG;
        struct {
            unsigned long ACSE:1;
            unsigned long :1;
            unsigned long MSTPA29:1;
            unsigned long MSTPA28:1;
            unsigned long MSTPA27:1;
            unsigned long :7;
            unsigned long MSTPA19:1;
            unsigned long :1;
            unsigned long MSTPA17:1;
            unsigned long MSTPA16:1;
            unsigned long MSTPA15:1;
            unsigned long MSTPA14:1;
            unsigned long MSTPA13:1;
            unsigned long :1;
            unsigned long MSTPA11:1;
            unsigned long MSTPA10:1;
            unsigned long MSTPA9:1;
            unsigned long :1;
            unsigned long MSTPA7:1;
            unsigned long :1;
            unsigned long MSTPA5:1;
            unsigned long MSTPA4:1;
            unsigned long :2;
            unsigned long MSTPA1:1;
            unsigned long MSTPA0:1;
        } BIT;
    } MSTPCRA;
    union {
        unsigned long LONG;
        struct {
            unsigned long MSTPB31:1;
            unsigned long MSTPB30:1;
            unsigned long MSTPB29:1;
            unsigned long MSTPB28:1;
            unsigned long MSTPB27:1;
            unsigned long MSTPB26:1;
            unsigned long MSTPB25:1;
            unsigned long MSTPB24:1;
            unsigned long MSTPB23:1;
            unsigned long MSTPB22:1;
            unsigned long MSTPB21:1;
            unsigned long :1;
            unsigned long MSTPB19:1;
            unsigned long :1;
            unsigned long MSTPB17:1;
            unsigned long :1;
            unsigned long MSTPB15:1;
            unsigned long MSTPB14:1;
            unsigned long :1;
            unsigned long MSTPB12:1;
            unsigned long :2;
            unsigned long MSTPB9:1;
            unsigned long MSTPB8:1;
            unsigned long :1;
            unsigned long MSTPB6:1;
            unsigned long :1;
            unsigned long MSTPB4:1;
            unsigned long :1;
            unsigned long MSTPB2:1;
            unsigned long MSTPB1:1;
            unsigned long MSTPB0:1;
        } BIT;
    } MSTPCRB;
    union {
        unsigned long LONG;
        struct {
            unsigned long :4;
            unsigned long MSTPC27:1;
            unsigned long MSTPC26:1;
            unsigned long MSTPC25:1;
            unsigned long MSTPC24:1;
            unsigned long MSTPC23:1;
            unsigned long :3;
            unsigned long MSTPC19:1;
            unsigned long :1;
            unsigned long MSTPC17:1;
            unsigned long :9;
            unsigned long MSTPC7:1;
            unsigned long :4;
            unsigned long MSTPC2:1;
            unsigned long :1;
            unsigned long MSTPC0:1;
        } BIT;
    } MSTPCRC;
    union {
        unsigned long LONG;
        struct {
            unsigned long MSTPD31:1;
            unsigned long MSTPD30:1;
            unsigned long MSTPD29:1;
            unsigned long MSTPD28:1;
            unsigned long :4;
            unsigned long MSTPD23:1;
            unsigned long :1;
            unsigned long MSTPD21:1;
            unsigned long :1;
            unsigned long MSTPD19:1;
            unsigned long :3;
            unsigned long MSTPD15:1;
            unsigned long MSTPD14:1;
        } BIT;
    } MSTPCRD;
    union {
        unsigned long LONG;
        struct {
            unsigned long FCK:4;
            unsigned long ICK:4;
            unsigned long PSTOP1:1;
            unsigned long PSTOP0:1;
            unsigned long :2;
            unsigned long BCK:4;
            unsigned long PCKA:4;
            unsigned long PCKB:4;
            unsigned long PCKC:4;
            unsigned long PCKD:4;
        } BIT;
    } SCKCR;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short UCK:4;
        } BIT;
    } SCKCR2;
    union {
        unsigned short WORD;
        struct {
            unsigned short :5;
            unsigned short CKSEL:3;
        } BIT;
    } SCKCR3;
    union {
        unsigned short WORD;
        struct {
            unsigned short :2;
            unsigned short STC:6;
            unsigned short :3;
            unsigned short PLLSRCSEL:1;
            unsigned short :2;
            unsigned short PLIDIV:2;
        } BIT;
    } PLLCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char PLLEN:1;
        } BIT;
    } PLLCR2;
    char           wk3[5];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char BCLKDIV:1;
        } BIT;
    } BCKCR;
    char           wk4[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char MOSTP:1;
        } BIT;
    } MOSCCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char SOSTP:1;
        } BIT;
    } SOSCCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char LCSTP:1;
        } BIT;
    } LOCOCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char ILCSTP:1;
        } BIT;
    } ILOCOCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char HCSTP:1;
        } BIT;
    } HOCOCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char HCFRQ:2;
        } BIT;
    } HOCOCR2;
    char           wk6[4];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char ILCOVF:1;
            unsigned char HCOVF:1;
            unsigned char PLOVF:1;
            unsigned char SOOVF:1;
            unsigned char MOOVF:1;
        } BIT;
    } OSCOVFSR;
    char           wk7[3];
    union {
        unsigned char BYTE;
        struct {
            unsigned char OSTDE:1;
            unsigned char :6;
            unsigned char OSTDIE:1;
        } BIT;
    } OSTDCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char OSTDF:1;
        } BIT;
    } OSTDSR;
    char           wk8[94];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char OPCMTSF:1;
            unsigned char :1;
            unsigned char OPCM:3;
        } BIT;
    } OPCCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char RSTCKEN:1;
            unsigned char :4;
            unsigned char RSTCKSEL:3;
        } BIT;
    } RSTCKCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char MSTS:8;
        } BIT;
    } MOSCWTCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char SSTS:8;
        } BIT;
    } SOSCWTCR;
    char           wk9[28];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char SWRF:1;
            unsigned char WDTRF:1;
            unsigned char IWTDRF:1;
        } BIT;
    } RSTSR2;
    char           wk10[1];
    unsigned short SWRR;
    char           wk11[28];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char LVD1IRQSEL:1;
            unsigned char LVD1IDTSEL:2;
        } BIT;
    } LVD1CR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char LVD1MON:1;
            unsigned char LVD1DET:1;
        } BIT;
    } LVD1SR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :5;
            unsigned char LVD2IRQSEL:1;
            unsigned char LVD2IDTSEL:2;
        } BIT;
    } LVD2CR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :6;
            unsigned char LVD2MON:1;
            unsigned char LVD2DET:1;
        } BIT;
    } LVD2SR;
    char           wk12[794];
    union {
        unsigned short WORD;
        struct {
            unsigned short PRKEY:8;
            unsigned short :4;
            unsigned short PRC3:1;
            unsigned short :1;
            unsigned short PRC1:1;
            unsigned short PRC0:1;
        } BIT;
    } PRCR;
    char           wk13[48768];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DPSBY:1;
            unsigned char IOKEEP:1;
            unsigned char :4;
            unsigned char DEEPCUT:2;
        } BIT;
    } DPSBYCR;
    char           wk14[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DIRQ7E:1;
            unsigned char DIRQ6E:1;
            unsigned char DIRQ5E:1;
            unsigned char DIRQ4E:1;
            unsigned char DIRQ3E:1;
            unsigned char DIRQ2E:1;
            unsigned char DIRQ1E:1;
            unsigned char DIRQ0E:1;
        } BIT;
    } DPSIER0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DIRQ15E:1;
            unsigned char DIRQ14E:1;
            unsigned char DIRQ13E:1;
            unsigned char DIRQ12E:1;
            unsigned char DIRQ11E:1;
            unsigned char DIRQ10E:1;
            unsigned char DIRQ9E:1;
            unsigned char DIRQ8E:1;
        } BIT;
    } DPSIER1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DUSBIE:1;
            unsigned char DRIICCIE:1;
            unsigned char DRIICDIE:1;
            unsigned char DNMIE:1;
            unsigned char DRTCAIE:1;
            unsigned char DRTCIIE:1;
            unsigned char DLVD2IE:1;
            unsigned char DLVD1IE:1;
        } BIT;
    } DPSIER2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DCANIE:1;
        } BIT;
    } DPSIER3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DIRQ7F:1;
            unsigned char DIRQ6F:1;
            unsigned char DIRQ5F:1;
            unsigned char DIRQ4F:1;
            unsigned char DIRQ3F:1;
            unsigned char DIRQ2F:1;
            unsigned char DIRQ1F:1;
            unsigned char DIRQ0F:1;
        } BIT;
    } DPSIFR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DIRQ15F:1;
            unsigned char DIRQ14F:1;
            unsigned char DIRQ13F:1;
            unsigned char DIRQ12F:1;
            unsigned char DIRQ11F:1;
            unsigned char DIRQ10F:1;
            unsigned char DIRQ9F:1;
            unsigned char DIRQ8F:1;
        } BIT;
    } DPSIFR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DUSBIF:1;
            unsigned char DRIICCIF:1;
            unsigned char DRIICDIF:1;
            unsigned char DNMIF:1;
            unsigned char DRTCAIF:1;
            unsigned char DRTCIIF:1;
            unsigned char DLVD2IF:1;
            unsigned char DLVD1IF:1;
        } BIT;
    } DPSIFR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DCANIF:1;
        } BIT;
    } DPSIFR3;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DIRQ7EG:1;
            unsigned char DIRQ6EG:1;
            unsigned char DIRQ5EG:1;
            unsigned char DIRQ4EG:1;
            unsigned char DIRQ3EG:1;
            unsigned char DIRQ2EG:1;
            unsigned char DIRQ1EG:1;
            unsigned char DIRQ0EG:1;
        } BIT;
    } DPSIEGR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char DIRQ15EG:1;
            unsigned char DIRQ14EG:1;
            unsigned char DIRQ13EG:1;
            unsigned char DIRQ12EG:1;
            unsigned char DIRQ11EG:1;
            unsigned char DIRQ10EG:1;
            unsigned char DIRQ9EG:1;
            unsigned char DIRQ8EG:1;
        } BIT;
    } DPSIEGR1;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char DRIICCEG:1;
            unsigned char DRIICDEG:1;
            unsigned char DNMIEG:1;
            unsigned char :2;
            unsigned char DLVD2EG:1;
            unsigned char DLVD1EG:1;
        } BIT;
    } DPSIEGR2;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char DCANIEG:1;
        } BIT;
    } DPSIEGR3;
    char           wk15[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char DPSRSTF:1;
            unsigned char :3;
            unsigned char LVD2RF:1;
            unsigned char LVD1RF:1;
            unsigned char LVD0RF:1;
            unsigned char PORF:1;
        } BIT;
    } RSTSR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char CWSF:1;
        } BIT;
    } RSTSR1;
    char           wk16[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char MOSEL:1;
            unsigned char MODRV2:2;
            unsigned char MODRV:3;
            unsigned char MOFXIN:1;
        } BIT;
    } MOFCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char HOCOPCNT:1;
        } BIT;
    } HOCOPCR;
    char           wk17[2];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :1;
            unsigned char LVD2E:1;
            unsigned char LVD1E:1;
        } BIT;
    } LVCMPCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char LVD2LVL:4;
            unsigned char LVD1LVL:4;
        } BIT;
    } LVDLVLR;
    char           wk18[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char LVD1RN:1;
            unsigned char LVD1RI:1;
            unsigned char LVD1FSAMP:2;
            unsigned char :1;
            unsigned char LVD1CMPE:1;
            unsigned char LVD1DFDIS:1;
            unsigned char LVD1RIE:1;
        } BIT;
    } LVD1CR0;
    union {
        unsigned char BYTE;
        struct {
            unsigned char LVD2RN:1;
            unsigned char LVD2RI:1;
            unsigned char LVD2FSAMP:2;
            unsigned char :1;
            unsigned char LVD2CMPE:1;
            unsigned char LVD2DFDIS:1;
            unsigned char LVD2RIE:1;
        } BIT;
    } LVD2CR0;
    char           wk19[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char VBATTMNSEL:1;
        } BIT;
    } VBATTMNSELR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char VBATTMON:1;
        } BIT;
    } VBATTMONR;
    char           wk20[1];
    unsigned char  DPSBKR[32];
    char           wk21[7794020];
    union {
        unsigned long LONG;
        struct {
            unsigned long :29;
            unsigned long MDE:3;
        } BIT;
    } MDE;
    union {
        unsigned long LONG;
        struct {
            unsigned long :3;
            unsigned long WDTRSTIRQS:1;
            unsigned long WDTRPSS:2;
            unsigned long WDTRPES:2;
            unsigned long WDTCKS:4;
            unsigned long WDTTOPS:2;
            unsigned long WDTSTRT:1;
            unsigned long :2;
            unsigned long IWDTSLCSTP:1;
            unsigned long :1;
            unsigned long IWDTRSTIRQS:1;
            unsigned long IWDTRPSS:2;
            unsigned long IWDTRPES:2;
            unsigned long IWDTCKS:4;
            unsigned long IWDTTOPS:2;
            unsigned long IWDTSTRT:1;
        } BIT;
    } OFS0;
    union {
        unsigned long LONG;
        struct {
            unsigned long :23;
            unsigned long HOCOEN:1;
            unsigned long :5;
            unsigned long LVDAS:1;
            unsigned long VDSEL:2;
        } BIT;
    } OFS1;
};

struct st_temps {
    union {
        unsigned char BYTE;
        struct {
            unsigned char TSEN:1;
            unsigned char :2;
            unsigned char TSOE:1;
        } BIT;
    } TSCR;
};

struct st_tmr0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char CMIEB:1;
            unsigned char CMIEA:1;
            unsigned char OVIE:1;
            unsigned char CCLR:2;
        } BIT;
    } TCR;
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :3;
            unsigned char ADTE:1;
            unsigned char OSB:2;
            unsigned char OSA:2;
        } BIT;
    } TCSR;
    char           wk1[1];
    unsigned char  TCORA;
    char           wk2[1];
    unsigned char  TCORB;
    char           wk3[1];
    unsigned char  TCNT;
    char           wk4[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TMRIS:1;
            unsigned char :2;
            unsigned char CSS:2;
            unsigned char CKS:3;
        } BIT;
    } TCCR;
    char           wk5[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :7;
            unsigned char TCS:1;
        } BIT;
    } TCSTR;
};

struct st_tmr1 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char CMIEB:1;
            unsigned char CMIEA:1;
            unsigned char OVIE:1;
            unsigned char CCLR:2;
        } BIT;
    } TCR;
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :4;
            unsigned char OSB:2;
            unsigned char OSA:2;
        } BIT;
    } TCSR;
    char           wk1[1];
    unsigned char  TCORA;
    char           wk2[1];
    unsigned char  TCORB;
    char           wk3[1];
    unsigned char  TCNT;
    char           wk4[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TMRIS:1;
            unsigned char :2;
            unsigned char CSS:2;
            unsigned char CKS:3;
        } BIT;
    } TCCR;
};

struct st_tmr01 {
    unsigned short TCORA;
    unsigned short TCORB;
    unsigned short TCNT;
    unsigned short TCCR;
};

struct st_tpu0 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char NFCS:2;
            unsigned char NFDEN:1;
            unsigned char NFCEN:1;
            unsigned char NFBEN:1;
            unsigned char NFAEN:1;
        } BIT;
    } NFCR;
    char           wk0[7];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CCLR:3;
            unsigned char CKEG:2;
            unsigned char TPSC:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ICSELD:1;
            unsigned char ICSELB:1;
            unsigned char BFB:1;
            unsigned char BFA:1;
            unsigned char MD:4;
        } BIT;
    } TMDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOB:4;
            unsigned char IOA:4;
        } BIT;
    } TIORH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOD:4;
            unsigned char IOC:4;
        } BIT;
    } TIORL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTGE:1;
            unsigned char :2;
            unsigned char TCIEV:1;
            unsigned char TGIED:1;
            unsigned char TGIEC:1;
            unsigned char TGIEB:1;
            unsigned char TGIEA:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCFD:1;
            unsigned char :1;
            unsigned char TCFU:1;
            unsigned char TCFV:1;
            unsigned char TGFD:1;
            unsigned char TGFC:1;
            unsigned char TGFB:1;
            unsigned char TGFA:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
    unsigned short TGRC;
    unsigned short TGRD;
};

struct st_tpu1 {
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char NFCS:2;
            unsigned char NFDEN:1;
            unsigned char NFCEN:1;
            unsigned char NFBEN:1;
            unsigned char NFAEN:1;
        } BIT;
    } NFCR;
    char           wk1[22];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CCLR:3;
            unsigned char CKEG:2;
            unsigned char TPSC:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ICSELD:1;
            unsigned char ICSELB:1;
            unsigned char BFB:1;
            unsigned char BFA:1;
            unsigned char MD:4;
        } BIT;
    } TMDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOB:4;
            unsigned char IOA:4;
        } BIT;
    } TIOR;
    char           wk2[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTGE:1;
            unsigned char :1;
            unsigned char TCIEU:1;
            unsigned char TCIEV:1;
            unsigned char TGIED:1;
            unsigned char TGIEC:1;
            unsigned char TGIEB:1;
            unsigned char TGIEA:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCFD:1;
            unsigned char :1;
            unsigned char TCFU:1;
            unsigned char TCFV:1;
            unsigned char TGFD:1;
            unsigned char TGFC:1;
            unsigned char TGFB:1;
            unsigned char TGFA:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
};

struct st_tpu2 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char NFCS:2;
            unsigned char NFDEN:1;
            unsigned char NFCEN:1;
            unsigned char NFBEN:1;
            unsigned char NFAEN:1;
        } BIT;
    } NFCR;
    char           wk0[37];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CCLR:3;
            unsigned char CKEG:2;
            unsigned char TPSC:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ICSELD:1;
            unsigned char ICSELB:1;
            unsigned char BFB:1;
            unsigned char BFA:1;
            unsigned char MD:4;
        } BIT;
    } TMDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOB:4;
            unsigned char IOA:4;
        } BIT;
    } TIOR;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTGE:1;
            unsigned char :1;
            unsigned char TCIEU:1;
            unsigned char TCIEV:1;
            unsigned char TGIED:1;
            unsigned char TGIEC:1;
            unsigned char TGIEB:1;
            unsigned char TGIEA:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCFD:1;
            unsigned char :1;
            unsigned char TCFU:1;
            unsigned char TCFV:1;
            unsigned char TGFD:1;
            unsigned char TGFC:1;
            unsigned char TGFB:1;
            unsigned char TGFA:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
};

struct st_tpu3 {
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char NFCS:2;
            unsigned char NFDEN:1;
            unsigned char NFCEN:1;
            unsigned char NFBEN:1;
            unsigned char NFAEN:1;
        } BIT;
    } NFCR;
    char           wk1[52];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CCLR:3;
            unsigned char CKEG:2;
            unsigned char TPSC:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ICSELD:1;
            unsigned char ICSELB:1;
            unsigned char BFB:1;
            unsigned char BFA:1;
            unsigned char MD:4;
        } BIT;
    } TMDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOB:4;
            unsigned char IOA:4;
        } BIT;
    } TIORH;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOD:4;
            unsigned char IOC:4;
        } BIT;
    } TIORL;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTGE:1;
            unsigned char :1;
            unsigned char TCIEU:1;
            unsigned char TCIEV:1;
            unsigned char TGIED:1;
            unsigned char TGIEC:1;
            unsigned char TGIEB:1;
            unsigned char TGIEA:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCFD:1;
            unsigned char :1;
            unsigned char TCFU:1;
            unsigned char TCFV:1;
            unsigned char TGFD:1;
            unsigned char TGFC:1;
            unsigned char TGFB:1;
            unsigned char TGFA:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
    unsigned short TGRC;
    unsigned short TGRD;
};

struct st_tpu4 {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char NFCS:2;
            unsigned char NFDEN:1;
            unsigned char NFCEN:1;
            unsigned char NFBEN:1;
            unsigned char NFAEN:1;
        } BIT;
    } NFCR;
    char           wk0[67];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CCLR:3;
            unsigned char CKEG:2;
            unsigned char TPSC:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ICSELD:1;
            unsigned char ICSELB:1;
            unsigned char BFB:1;
            unsigned char BFA:1;
            unsigned char MD:4;
        } BIT;
    } TMDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOB:4;
            unsigned char IOA:4;
        } BIT;
    } TIOR;
    char           wk1[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTGE:1;
            unsigned char :1;
            unsigned char TCIEU:1;
            unsigned char TCIEV:1;
            unsigned char TGIED:1;
            unsigned char TGIEC:1;
            unsigned char TGIEB:1;
            unsigned char TGIEA:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCFD:1;
            unsigned char :1;
            unsigned char TCFU:1;
            unsigned char TCFV:1;
            unsigned char TGFD:1;
            unsigned char TGFC:1;
            unsigned char TGFB:1;
            unsigned char TGFA:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
};

struct st_tpu5 {
    char           wk0[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char NFCS:2;
            unsigned char NFDEN:1;
            unsigned char NFCEN:1;
            unsigned char NFBEN:1;
            unsigned char NFAEN:1;
        } BIT;
    } NFCR;
    char           wk1[82];
    union {
        unsigned char BYTE;
        struct {
            unsigned char CCLR:3;
            unsigned char CKEG:2;
            unsigned char TPSC:3;
        } BIT;
    } TCR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char ICSELD:1;
            unsigned char ICSELB:1;
            unsigned char BFB:1;
            unsigned char BFA:1;
            unsigned char MD:4;
        } BIT;
    } TMDR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char IOB:4;
            unsigned char IOA:4;
        } BIT;
    } TIOR;
    char           wk2[1];
    union {
        unsigned char BYTE;
        struct {
            unsigned char TTGE:1;
            unsigned char :1;
            unsigned char TCIEU:1;
            unsigned char TCIEV:1;
            unsigned char TGIED:1;
            unsigned char TGIEC:1;
            unsigned char TGIEB:1;
            unsigned char TGIEA:1;
        } BIT;
    } TIER;
    union {
        unsigned char BYTE;
        struct {
            unsigned char TCFD:1;
            unsigned char :1;
            unsigned char TCFU:1;
            unsigned char TCFV:1;
            unsigned char TGFD:1;
            unsigned char TGFC:1;
            unsigned char TGFB:1;
            unsigned char TGFA:1;
        } BIT;
    } TSR;
    unsigned short TCNT;
    unsigned short TGRA;
    unsigned short TGRB;
};

struct st_tpua {
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char CST5:1;
            unsigned char CST4:1;
            unsigned char CST3:1;
            unsigned char CST2:1;
            unsigned char CST1:1;
            unsigned char CST0:1;
        } BIT;
    } TSTR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char :2;
            unsigned char SYNC5:1;
            unsigned char SYNC4:1;
            unsigned char SYNC3:1;
            unsigned char SYNC2:1;
            unsigned char SYNC1:1;
            unsigned char SYNC0:1;
        } BIT;
    } TSYR;
};

struct st_usb {
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long DVBSTS0:1;
            unsigned long :1;
            unsigned long DOVCB0:1;
            unsigned long DOVCA0:1;
            unsigned long :2;
            unsigned long DM0:1;
            unsigned long DP0:1;
            unsigned long :11;
            unsigned long FIXPHY0:1;
            unsigned long DRPD0:1;
            unsigned long :1;
            unsigned long RPUE0:1;
            unsigned long SRPC0:1;
        } BIT;
    } DPUSR0R;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long DVBINT0:1;
            unsigned long :1;
            unsigned long DOVRCRB0:1;
            unsigned long DOVRCRA0:1;
            unsigned long :2;
            unsigned long DMINT0:1;
            unsigned long DPINT0:1;
            unsigned long :8;
            unsigned long DVBSE0:1;
            unsigned long :1;
            unsigned long DOVRCRBE0:1;
            unsigned long DOVRCRAE0:1;
            unsigned long :2;
            unsigned long DMINTE0:1;
            unsigned long DPINTE0:1;
        } BIT;
    } DPUSR1R;
};

struct st_usb0 {
    union {
        unsigned short WORD;
        struct {
            unsigned short :5;
            unsigned short SCKE:1;
            unsigned short :3;
            unsigned short DCFM:1;
            unsigned short DRPD:1;
            unsigned short DPRPU:1;
            unsigned short :3;
            unsigned short USBE:1;
        } BIT;
    } SYSCFG;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short OVCMON:2;
            unsigned short :7;
            unsigned short HTACT:1;
            unsigned short :3;
            unsigned short IDMON:1;
            unsigned short LNST:2;
        } BIT;
    } SYSSTS0;
    char           wk1[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short HNPBTOA:1;
            unsigned short EXICEN:1;
            unsigned short VBUSEN:1;
            unsigned short WKUP:1;
            unsigned short RWUPE:1;
            unsigned short USBRST:1;
            unsigned short RESUME:1;
            unsigned short UACT:1;
            unsigned short :1;
            unsigned short RHST:3;
        } BIT;
    } DVSTCTR0;
    char           wk2[10];
    unsigned short CFIFO;
    char           wk3[2];
    unsigned short D0FIFO;
    char           wk4[2];
    unsigned short D1FIFO;
    char           wk5[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short RCNT:1;
            unsigned short REW:1;
            unsigned short :3;
            unsigned short MBW:1;
            unsigned short :1;
            unsigned short BIGEND:1;
            unsigned short :2;
            unsigned short ISEL:1;
            unsigned short :1;
            unsigned short CURPIPE:4;
        } BIT;
    } CFIFOSEL;
    union {
        unsigned short WORD;
        struct {
            unsigned short BVAL:1;
            unsigned short BCLR:1;
            unsigned short FRDY:1;
            unsigned short :4;
            unsigned short DTLN:9;
        } BIT;
    } CFIFOCTR;
    char           wk6[4];
    union {
        unsigned short WORD;
        struct {
            unsigned short RCNT:1;
            unsigned short REW:1;
            unsigned short DCLRM:1;
            unsigned short DREQE:1;
            unsigned short :1;
            unsigned short MBW:1;
            unsigned short :1;
            unsigned short BIGEND:1;
            unsigned short :4;
            unsigned short CURPIPE:4;
        } BIT;
    } D0FIFOSEL;
    union {
        unsigned short WORD;
        struct {
            unsigned short BVAL:1;
            unsigned short BCLR:1;
            unsigned short FRDY:1;
            unsigned short :4;
            unsigned short DTLN:9;
        } BIT;
    } D0FIFOCTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short RCNT:1;
            unsigned short REW:1;
            unsigned short DCLRM:1;
            unsigned short DREQE:1;
            unsigned short :1;
            unsigned short MBW:1;
            unsigned short :1;
            unsigned short BIGEND:1;
            unsigned short :4;
            unsigned short CURPIPE:4;
        } BIT;
    } D1FIFOSEL;
    union {
        unsigned short WORD;
        struct {
            unsigned short BVAL:1;
            unsigned short BCLR:1;
            unsigned short FRDY:1;
            unsigned short :4;
            unsigned short DTLN:9;
        } BIT;
    } D1FIFOCTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short VBSE:1;
            unsigned short RSME:1;
            unsigned short SOFE:1;
            unsigned short DVSE:1;
            unsigned short CTRE:1;
            unsigned short BEMPE:1;
            unsigned short NRDYE:1;
            unsigned short BRDYE:1;
        } BIT;
    } INTENB0;
    union {
        unsigned short WORD;
        struct {
            unsigned short OVRCRE:1;
            unsigned short BCHGE:1;
            unsigned short :1;
            unsigned short DTCHE:1;
            unsigned short ATTCHE:1;
            unsigned short :4;
            unsigned short EOFERRE:1;
            unsigned short SIGNE:1;
            unsigned short SACKE:1;
        } BIT;
    } INTENB1;
    char           wk7[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short PIPE9BRDYE:1;
            unsigned short PIPE8BRDYE:1;
            unsigned short PIPE7BRDYE:1;
            unsigned short PIPE6BRDYE:1;
            unsigned short PIPE5BRDYE:1;
            unsigned short PIPE4BRDYE:1;
            unsigned short PIPE3BRDYE:1;
            unsigned short PIPE2BRDYE:1;
            unsigned short PIPE1BRDYE:1;
            unsigned short PIPE0BRDYE:1;
        } BIT;
    } BRDYENB;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short PIPE9NRDYE:1;
            unsigned short PIPE8NRDYE:1;
            unsigned short PIPE7NRDYE:1;
            unsigned short PIPE6NRDYE:1;
            unsigned short PIPE5NRDYE:1;
            unsigned short PIPE4NRDYE:1;
            unsigned short PIPE3NRDYE:1;
            unsigned short PIPE2NRDYE:1;
            unsigned short PIPE1NRDYE:1;
            unsigned short PIPE0NRDYE:1;
        } BIT;
    } NRDYENB;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short PIPE9BEMPE:1;
            unsigned short PIPE8BEMPE:1;
            unsigned short PIPE7BEMPE:1;
            unsigned short PIPE6BEMPE:1;
            unsigned short PIPE5BEMPE:1;
            unsigned short PIPE4BEMPE:1;
            unsigned short PIPE3BEMPE:1;
            unsigned short PIPE2BEMPE:1;
            unsigned short PIPE1BEMPE:1;
            unsigned short PIPE0BEMPE:1;
        } BIT;
    } BEMPENB;
    union {
        unsigned short WORD;
        struct {
            unsigned short :7;
            unsigned short TRNENSEL:1;
            unsigned short :1;
            unsigned short BRDYM:1;
            unsigned short :1;
            unsigned short EDGESTS:1;
        } BIT;
    } SOFCFG;
    char           wk8[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short VBINT:1;
            unsigned short RESM:1;
            unsigned short SOFR:1;
            unsigned short DVST:1;
            unsigned short CTRT:1;
            unsigned short BEMP:1;
            unsigned short NRDY:1;
            unsigned short BRDY:1;
            unsigned short VBSTS:1;
            unsigned short DVSQ:3;
            unsigned short VALID:1;
            unsigned short CTSQ:3;
        } BIT;
    } INTSTS0;
    union {
        unsigned short WORD;
        struct {
            unsigned short OVRCR:1;
            unsigned short BCHG:1;
            unsigned short :1;
            unsigned short DTCH:1;
            unsigned short ATTCH:1;
            unsigned short :4;
            unsigned short EOFERR:1;
            unsigned short SIGN:1;
            unsigned short SACK:1;
        } BIT;
    } INTSTS1;
    char           wk9[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short PIPE9BRDY:1;
            unsigned short PIPE8BRDY:1;
            unsigned short PIPE7BRDY:1;
            unsigned short PIPE6BRDY:1;
            unsigned short PIPE5BRDY:1;
            unsigned short PIPE4BRDY:1;
            unsigned short PIPE3BRDY:1;
            unsigned short PIPE2BRDY:1;
            unsigned short PIPE1BRDY:1;
            unsigned short PIPE0BRDY:1;
        } BIT;
    } BRDYSTS;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short PIPE9NRDY:1;
            unsigned short PIPE8NRDY:1;
            unsigned short PIPE7NRDY:1;
            unsigned short PIPE6NRDY:1;
            unsigned short PIPE5NRDY:1;
            unsigned short PIPE4NRDY:1;
            unsigned short PIPE3NRDY:1;
            unsigned short PIPE2NRDY:1;
            unsigned short PIPE1NRDY:1;
            unsigned short PIPE0NRDY:1;
        } BIT;
    } NRDYSTS;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short PIPE9BEMP:1;
            unsigned short PIPE8BEMP:1;
            unsigned short PIPE7BEMP:1;
            unsigned short PIPE6BEMP:1;
            unsigned short PIPE5BEMP:1;
            unsigned short PIPE4BEMP:1;
            unsigned short PIPE3BEMP:1;
            unsigned short PIPE2BEMP:1;
            unsigned short PIPE1BEMP:1;
            unsigned short PIPE0BEMP:1;
        } BIT;
    } BEMPSTS;
    union {
        unsigned short WORD;
        struct {
            unsigned short OVRN:1;
            unsigned short CRCE:1;
            unsigned short :3;
            unsigned short FRNM:11;
        } BIT;
    } FRMNUM;
    union {
        unsigned short WORD;
        struct {
            unsigned short DVCHG:1;
        } BIT;
    } DVCHGR;
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short STSRECOV:4;
            unsigned short :1;
            unsigned short USBADDR:7;
        } BIT;
    } USBADDR;
    char           wk10[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short BREQUEST:8;
            unsigned short BMREQUESTTYPE:8;
        } BIT;
    } USBREQ;
    unsigned short USBVAL;
    unsigned short USBINDX;
    unsigned short USBLENG;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short SHTNAK:1;
            unsigned short :2;
            unsigned short DIR:1;
        } BIT;
    } DCPCFG;
    union {
        unsigned short WORD;
        struct {
            unsigned short DEVSEL:4;
            unsigned short :5;
            unsigned short MXPS:7;
        } BIT;
    } DCPMAXP;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short SUREQ:1;
            unsigned short :2;
            unsigned short SUREQCLR:1;
            unsigned short :2;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :2;
            unsigned short CCPL:1;
            unsigned short PID:2;
        } BIT;
    } DCPCTR;
    char           wk11[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short :12;
            unsigned short PIPESEL:4;
        } BIT;
    } PIPESEL;
    char           wk12[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short TYPE:2;
            unsigned short :3;
            unsigned short BFRE:1;
            unsigned short DBLB:1;
            unsigned short :1;
            unsigned short SHTNAK:1;
            unsigned short :2;
            unsigned short DIR:1;
            unsigned short EPNUM:4;
        } BIT;
    } PIPECFG;
    char           wk13[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short DEVSEL:4;
            unsigned short :3;
            unsigned short MXPS:9;
        } BIT;
    } PIPEMAXP;
    union {
        unsigned short WORD;
        struct {
            unsigned short :3;
            unsigned short IFIS:1;
            unsigned short :9;
            unsigned short IITV:3;
        } BIT;
    } PIPEPERI;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short INBUFM:1;
            unsigned short :3;
            unsigned short ATREPM:1;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE1CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short INBUFM:1;
            unsigned short :3;
            unsigned short ATREPM:1;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE2CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short INBUFM:1;
            unsigned short :3;
            unsigned short ATREPM:1;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE3CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short INBUFM:1;
            unsigned short :3;
            unsigned short ATREPM:1;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE4CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short INBUFM:1;
            unsigned short :3;
            unsigned short ATREPM:1;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE5CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short :5;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE6CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short :5;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE7CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short :5;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE8CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short :5;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE9CTR;
    char           wk14[14];
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short TRENB:1;
            unsigned short TRCLR:1;
        } BIT;
    } PIPE1TRE;
    unsigned short PIPE1TRN;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short TRENB:1;
            unsigned short TRCLR:1;
        } BIT;
    } PIPE2TRE;
    unsigned short PIPE2TRN;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short TRENB:1;
            unsigned short TRCLR:1;
        } BIT;
    } PIPE3TRE;
    unsigned short PIPE3TRN;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short TRENB:1;
            unsigned short TRCLR:1;
        } BIT;
    } PIPE4TRE;
    unsigned short PIPE4TRN;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short TRENB:1;
            unsigned short TRCLR:1;
        } BIT;
    } PIPE5TRE;
    unsigned short PIPE5TRN;
    char           wk15[44];
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short USBSPD:2;
        } BIT;
    } DEVADD0;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short USBSPD:2;
        } BIT;
    } DEVADD1;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short USBSPD:2;
        } BIT;
    } DEVADD2;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short USBSPD:2;
        } BIT;
    } DEVADD3;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short USBSPD:2;
        } BIT;
    } DEVADD4;
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short USBSPD:2;
        } BIT;
    } DEVADD5;
    char           wk16[20];
    union {
        unsigned long LONG;
        struct {
            unsigned long :24;
            unsigned long USBSPD:2;
            unsigned long :2;
            unsigned long SLEWF01:1;
            unsigned long SLEWF00:1;
            unsigned long SLEWR01:1;
            unsigned long SLEWR00:1;
        } BIT;
    } DPUSR2R;
};

struct st_usbhs {
    union {
        unsigned short WORD;
        struct {
            unsigned short :7;
            unsigned short CNEN:1;
            unsigned short HSE:1;
            unsigned short DCFM:1;
            unsigned short DRPD:1;
            unsigned short DPRPU:1;
            unsigned short :3;
            unsigned short USBE:1;
        } BIT;
    } SYSCFG;
    union {
        unsigned short WORD;
        struct {
            unsigned short :12;
            unsigned short BWAIT:4;
        } BIT;
    } BUSWAIT;
    union {
        unsigned short WORD;
        struct {
            unsigned short OVCMON:2;
            unsigned short :7;
            unsigned short HTACT:1;
            unsigned short :3;
            unsigned short IDMON:1;
            unsigned short LNST:2;
        } BIT;
    } SYSSTS0;
    union {
        unsigned short WORD;
        struct {
            unsigned short :15;
            unsigned short PLLLOCK:1;
        } BIT;
    } PLLSTA;
    union {
        unsigned short WORD;
        struct {
            unsigned short :4;
            unsigned short HNPBTOA:1;
            unsigned short EXICEN:1;
            unsigned short VBUSEN:1;
            unsigned short WKUP:1;
            unsigned short RWUPE:1;
            unsigned short USBRST:1;
            unsigned short RESUME:1;
            unsigned short UACT:1;
            unsigned short :1;
            unsigned short RHST:3;
        } BIT;
    } DVSTCTR0;
    char           wk0[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short :12;
            unsigned short UTST:4;
        } BIT;
    } TESTMODE;
    char           wk1[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short :2;
            unsigned short DFACC:2;
            unsigned short :7;
            unsigned short TENDE:1;
        } BIT;
    } D0FBCFG;
    union {
        unsigned short WORD;
        struct {
            unsigned short :2;
            unsigned short DFACC:2;
            unsigned short :7;
            unsigned short TENDE:1;
        } BIT;
    } D1FBCFG;
    unsigned short CFIFO;
    unsigned short CFIFO1;
    unsigned short D0FIFO;
    unsigned short D0FIFO1;
    unsigned short D1FIFO;
    unsigned short D1FIFO1;
    union {
        unsigned short WORD;
        struct {
            unsigned short RCNT:1;
            unsigned short REW:1;
            unsigned short :2;
            unsigned short MBW:2;
            unsigned short :1;
            unsigned short BIGEND:1;
            unsigned short :2;
            unsigned short ISEL:1;
            unsigned short :1;
            unsigned short CURPIPE:4;
        } BIT;
    } CFIFOSEL;
    union {
        unsigned short WORD;
        struct {
            unsigned short BVAL:1;
            unsigned short BCLR:1;
            unsigned short FRDY:1;
            unsigned short :1;
            unsigned short DTLN:12;
        } BIT;
    } CFIFOCTR;
    char           wk2[4];
    union {
        unsigned short WORD;
        struct {
            unsigned short RCNT:1;
            unsigned short REW:1;
            unsigned short DCLRM:1;
            unsigned short DREQE:1;
            unsigned short MBW:2;
            unsigned short :1;
            unsigned short BIGEND:1;
            unsigned short :4;
            unsigned short CURPIPE:4;
        } BIT;
    } D0FIFOSEL;
    union {
        unsigned short WORD;
        struct {
            unsigned short BVAL:1;
            unsigned short BCLR:1;
            unsigned short FRDY:1;
            unsigned short :1;
            unsigned short DTLN:12;
        } BIT;
    } D0FIFOCTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short RCNT:1;
            unsigned short REW:1;
            unsigned short DCLRM:1;
            unsigned short DREQE:1;
            unsigned short MBW:2;
            unsigned short :1;
            unsigned short BIGEND:1;
            unsigned short :4;
            unsigned short CURPIPE:4;
        } BIT;
    } D1FIFOSEL;
    union {
        unsigned short WORD;
        struct {
            unsigned short BVAL:1;
            unsigned short BCLR:1;
            unsigned short FRDY:1;
            unsigned short :1;
            unsigned short DTLN:12;
        } BIT;
    } D1FIFOCTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short VBSE:1;
            unsigned short RSME:1;
            unsigned short SOFE:1;
            unsigned short DVSE:1;
            unsigned short CTRE:1;
            unsigned short BEMPE:1;
            unsigned short NRDYE:1;
            unsigned short BRDYE:1;
        } BIT;
    } INTENB0;
    union {
        unsigned short WORD;
        struct {
            unsigned short OVRCRE:1;
            unsigned short BCHGE:1;
            unsigned short :1;
            unsigned short DTCHE:1;
            unsigned short ATTCHE:1;
            unsigned short :1;
            unsigned short L1RSMENDE:1;
            unsigned short LPMENDE:1;
            unsigned short :1;
            unsigned short EOFERRE:1;
            unsigned short SIGNE:1;
            unsigned short SACKE:1;
            unsigned short :3;
            unsigned short PDDETINTE:1;
        } BIT;
    } INTENB1;
    char           wk3[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short PIPE9BRDYE:1;
            unsigned short PIPE8BRDYE:1;
            unsigned short PIPE7BRDYE:1;
            unsigned short PIPE6BRDYE:1;
            unsigned short PIPE5BRDYE:1;
            unsigned short PIPE4BRDYE:1;
            unsigned short PIPE3BRDYE:1;
            unsigned short PIPE2BRDYE:1;
            unsigned short PIPE1BRDYE:1;
            unsigned short PIPE0BRDYE:1;
        } BIT;
    } BRDYENB;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short PIPE9NRDYE:1;
            unsigned short PIPE8NRDYE:1;
            unsigned short PIPE7NRDYE:1;
            unsigned short PIPE6NRDYE:1;
            unsigned short PIPE5NRDYE:1;
            unsigned short PIPE4NRDYE:1;
            unsigned short PIPE3NRDYE:1;
            unsigned short PIPE2NRDYE:1;
            unsigned short PIPE1NRDYE:1;
            unsigned short PIPE0NRDYE:1;
        } BIT;
    } NRDYENB;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short PIPE9BEMPE:1;
            unsigned short PIPE8BEMPE:1;
            unsigned short PIPE7BEMPE:1;
            unsigned short PIPE6BEMPE:1;
            unsigned short PIPE5BEMPE:1;
            unsigned short PIPE4BEMPE:1;
            unsigned short PIPE3BEMPE:1;
            unsigned short PIPE2BEMPE:1;
            unsigned short PIPE1BEMPE:1;
            unsigned short PIPE0BEMPE:1;
        } BIT;
    } BEMPENB;
    union {
        unsigned short WORD;
        struct {
            unsigned short :7;
            unsigned short TRNENSEL:1;
            unsigned short :1;
            unsigned short BRDYM:1;
            unsigned short INTL:1;
            unsigned short EDGESTS:1;
            unsigned short SOFM:2;
        } BIT;
    } SOFCFG;
    union {
        unsigned short WORD;
        struct {
            unsigned short HSEB:1;
            unsigned short :3;
            unsigned short repstart:1;
            unsigned short :1;
            unsigned short repsel1:1;
            unsigned short repsel0:1;
            unsigned short :2;
            unsigned short clksel1:1;
            unsigned short clksel0:1;
            unsigned short cdpen:1;
            unsigned short :1;
            unsigned short pllreset:1;
            unsigned short dirpd:1;
        } BIT;
    } PHYSET;
    union {
        unsigned short WORD;
        struct {
            unsigned short VBINT:1;
            unsigned short RESM:1;
            unsigned short SOFR:1;
            unsigned short DVST:1;
            unsigned short CTRT:1;
            unsigned short BEMP:1;
            unsigned short NRDY:1;
            unsigned short BRDY:1;
            unsigned short VBSTS:1;
            unsigned short DVSQ:3;
            unsigned short VALID:1;
            unsigned short CTSQ:3;
        } BIT;
    } INTSTS0;
    union {
        unsigned short WORD;
        struct {
            unsigned short OVRCR:1;
            unsigned short BCHG:1;
            unsigned short :1;
            unsigned short DTCH:1;
            unsigned short ATTCH:1;
            unsigned short :1;
            unsigned short L1RSMEND:1;
            unsigned short LPMEND:1;
            unsigned short :1;
            unsigned short EOFERR:1;
            unsigned short SIGN:1;
            unsigned short SACK:1;
            unsigned short :3;
            unsigned short PDDETINT:1;
        } BIT;
    } INTSTS1;
    char           wk4[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short PIPE9BRDY:1;
            unsigned short PIPE8BRDY:1;
            unsigned short PIPE7BRDY:1;
            unsigned short PIPE6BRDY:1;
            unsigned short PIPE5BRDY:1;
            unsigned short PIPE4BRDY:1;
            unsigned short PIPE3BRDY:1;
            unsigned short PIPE2BRDY:1;
            unsigned short PIPE1BRDY:1;
            unsigned short PIPE0BRDY:1;
        } BIT;
    } BRDYSTS;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short PIPE9NRDYE:1;
            unsigned short PIPE8NRDYE:1;
            unsigned short PIPE7NRDYE:1;
            unsigned short PIPE6NRDYE:1;
            unsigned short PIPE5NRDYE:1;
            unsigned short PIPE4NRDYE:1;
            unsigned short PIPE3NRDYE:1;
            unsigned short PIPE2NRDYE:1;
            unsigned short PIPE1NRDYE:1;
            unsigned short PIPE0NRDYE:1;
        } BIT;
    } NRDYSTS;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short PIPE9BEMPE:1;
            unsigned short PIPE8BEMPE:1;
            unsigned short PIPE7BENP:1;
            unsigned short PIPE6BENP:1;
            unsigned short PIPE5BENP:1;
            unsigned short PIPE4BENP:1;
            unsigned short PIPE3BENP:1;
            unsigned short PIPE2BENP:1;
            unsigned short PIPE1BENP:1;
            unsigned short PIPE0BENP:1;
        } BIT;
    } BEMPSTS;
    union {
        unsigned short WORD;
        struct {
            unsigned short OVRN:1;
            unsigned short CRCE:1;
            unsigned short :3;
            unsigned short FRNM:11;
        } BIT;
    } FRMNUM;
    union {
        unsigned short WORD;
        struct {
            unsigned short :13;
            unsigned short UFRNM:3;
        } BIT;
    } UFRMNUM;
    union {
        unsigned short WORD;
        struct {
            unsigned short :9;
            unsigned short USBADDR:7;
        } BIT;
    } USBADDR;
    char           wk5[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short BREQUEST:8;
            unsigned short BMREQUESTTYPE:8;
        } BIT;
    } USBREQ;
    unsigned short USBVAL;
    unsigned short USBINDX;
    unsigned short USBLENG;
    union {
        unsigned short WORD;
        struct {
            unsigned short :11;
            unsigned short DIR:1;
        } BIT;
    } DCPCFG;
    union {
        unsigned short WORD;
        struct {
            unsigned short DEVSEL:4;
            unsigned short :5;
            unsigned short MXPS:7;
        } BIT;
    } DCPMAXP;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short SUREQ:1;
            unsigned short CSCLR:1;
            unsigned short CSSTS:1;
            unsigned short SUREQCLR:1;
            unsigned short :2;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short PINGE:1;
            unsigned short :1;
            unsigned short CCPL:1;
            unsigned short PID:2;
        } BIT;
    } DCPCTR;
    char           wk6[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short :12;
            unsigned short PIPESEL:4;
        } BIT;
    } PIPESEL;
    char           wk7[2];
    union {
        unsigned short WORD;
        struct {
            unsigned short TYPE:2;
            unsigned short :3;
            unsigned short BFRE:1;
            unsigned short DBLB:1;
            unsigned short CNTMD:1;
            unsigned short SHTNAK:1;
            unsigned short :2;
            unsigned short DIR:1;
            unsigned short EPNUM:4;
        } BIT;
    } PIPECFG;
    union {
        unsigned short WORD;
        struct {
            unsigned short :1;
            unsigned short BUFSIZE:5;
            unsigned short :2;
            unsigned short BUFNMB:8;
        } BIT;
    } PIPEBUF;
    union {
        unsigned short WORD;
        struct {
            unsigned short DEVSEL:4;
            unsigned short :1;
            unsigned short MXPS:11;
        } BIT;
    } PIPEMAXP;
    union {
        unsigned short WORD;
        struct {
            unsigned short :3;
            unsigned short IFIS:1;
            unsigned short :9;
            unsigned short IITV:3;
        } BIT;
    } PIPEPERI;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short INBUFM:1;
            unsigned short CSCLR:1;
            unsigned short CSSTS:1;
            unsigned short :1;
            unsigned short ATREPM:1;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE1CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short INBUFM:1;
            unsigned short CSCLR:1;
            unsigned short CSSTS:1;
            unsigned short :1;
            unsigned short ATREPM:1;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE2CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short INBUFM:1;
            unsigned short CSCLR:1;
            unsigned short CSSTS:1;
            unsigned short :1;
            unsigned short ATREPM:1;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE3CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short INBUFM:1;
            unsigned short CSCLR:1;
            unsigned short CSSTS:1;
            unsigned short :1;
            unsigned short ATREPM:1;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE4CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short INBUFM:1;
            unsigned short CSCLR:1;
            unsigned short CSSTS:1;
            unsigned short :1;
            unsigned short ATREPM:1;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE5CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short INBUFM:1;
            unsigned short CSCLR:1;
            unsigned short CSSTS:1;
            unsigned short :1;
            unsigned short ATREPM:1;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE6CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short INBUFM:1;
            unsigned short CSCLR:1;
            unsigned short CSSTS:1;
            unsigned short :1;
            unsigned short ATREPM:1;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE7CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short INBUFM:1;
            unsigned short CSCLR:1;
            unsigned short CSSTS:1;
            unsigned short :1;
            unsigned short ATREPM:1;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE8CTR;
    union {
        unsigned short WORD;
        struct {
            unsigned short BSTS:1;
            unsigned short INBUFM:1;
            unsigned short CSCLR:1;
            unsigned short CSSTS:1;
            unsigned short :1;
            unsigned short ATREPM:1;
            unsigned short ACLRM:1;
            unsigned short SQCLR:1;
            unsigned short SQSET:1;
            unsigned short SQMON:1;
            unsigned short PBUSY:1;
            unsigned short :3;
            unsigned short PID:2;
        } BIT;
    } PIPE9CTR;
    char           wk8[14];
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short TRENB:1;
            unsigned short TRCLR:1;
        } BIT;
    } PIPE1TRE;
    union {
        unsigned short WORD;
        struct {
            unsigned short TRNCNT:16;
        } BIT;
    } PIPE1TRN;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short TRENB:1;
            unsigned short TRCLR:1;
        } BIT;
    } PIPE2TRE;
    union {
        unsigned short WORD;
        struct {
            unsigned short TRNCNT:16;
        } BIT;
    } PIPE2TRN;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short TRENB:1;
            unsigned short TRCLR:1;
        } BIT;
    } PIPE3TRE;
    union {
        unsigned short WORD;
        struct {
            unsigned short TRNCNT:16;
        } BIT;
    } PIPE3TRN;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short TRENB:1;
            unsigned short TRCLR:1;
        } BIT;
    } PIPE4TRE;
    union {
        unsigned short WORD;
        struct {
            unsigned short TRNCNT:16;
        } BIT;
    } PIPE4TRN;
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short TRENB:1;
            unsigned short TRCLR:1;
        } BIT;
    } PIPE5TRE;
    union {
        unsigned short WORD;
        struct {
            unsigned short TRNCNT:16;
        } BIT;
    } PIPE5TRN;
    char           wk9[44];
    union {
        unsigned short WORD;
        struct {
            unsigned short :1;
            unsigned short UPPHUB:4;
            unsigned short HUBPORT:3;
            unsigned short USBSPD:2;
        } BIT;
    } DEVADD0;
    union {
        unsigned short WORD;
        struct {
            unsigned short :1;
            unsigned short UPPHUB:4;
            unsigned short HUBPORT:3;
            unsigned short USBSPD:2;
        } BIT;
    } DEVADD1;
    union {
        unsigned short WORD;
        struct {
            unsigned short :1;
            unsigned short UPPHUB:4;
            unsigned short HUBPORT:3;
            unsigned short USBSPD:2;
        } BIT;
    } DEVADD2;
    union {
        unsigned short WORD;
        struct {
            unsigned short :1;
            unsigned short UPPHUB:4;
            unsigned short HUBPORT:3;
            unsigned short USBSPD:2;
        } BIT;
    } DEVADD3;
    union {
        unsigned short WORD;
        struct {
            unsigned short :1;
            unsigned short UPPHUB:4;
            unsigned short HUBPORT:3;
            unsigned short USBSPD:2;
        } BIT;
    } DEVADD4;
    union {
        unsigned short WORD;
        struct {
            unsigned short :1;
            unsigned short UPPHUB:4;
            unsigned short HUBPORT:3;
            unsigned short USBSPD:2;
        } BIT;
    } DEVADD5;
    char           wk10[36];
    union {
        unsigned short WORD;
        struct {
            unsigned short :8;
            unsigned short HWLPM:1;
        } BIT;
    } LPCTRL;
    union {
        unsigned short WORD;
        struct {
            unsigned short :1;
            unsigned short SUSPENDM:1;
        } BIT;
    } LPSTS;
    union {
        unsigned short WORD;
        struct {
            unsigned short :1;
            unsigned short SUSMON:1;
            unsigned short :1;
            unsigned short OPMODE:2;
            unsigned short TERMSEL:1;
            unsigned short XCVRSEL:2;
        } BIT;
    } PHYFUNCTR;
    char           wk11[4];
    union {
        unsigned short WORD;
        struct {
            unsigned short :5;
            unsigned short DMPUDWN:1;
            unsigned short DPPUDWN:1;
        } BIT;
    } PHYOTGCTR;
    char           wk12[52];
    union {
        unsigned short WORD;
        struct {
            unsigned short :6;
            unsigned short PDDETSTS:1;
            unsigned short CHGDETSTS:1;
            unsigned short :2;
            unsigned short DCPMODE:1;
            unsigned short VDMSRCE:1;
            unsigned short IDPSINKE:1;
            unsigned short VDPSRCE:1;
            unsigned short IDMSINKE:1;
            unsigned short IDPSRCE:1;
        } BIT;
    } BCCTRL;
    char           wk13[14];
    union {
        unsigned short WORD;
        struct {
            unsigned short :1;
            unsigned short impoffset2:1;
            unsigned short impoffset1:1;
            unsigned short impoffset0:1;
            unsigned short hsiup3:1;
            unsigned short hsiup2:1;
            unsigned short hsiup1:1;
            unsigned short hsiup0:1;
            unsigned short pcompenb:1;
            unsigned short :3;
            unsigned short dfall1:1;
            unsigned short dfall0:1;
            unsigned short drise1:1;
            unsigned short drise0:1;
        } BIT;
    } PHYTRIM1;
    union {
        unsigned short WORD;
        struct {
            unsigned short :1;
            unsigned short dis2:1;
            unsigned short dis1:1;
            unsigned short dis0:1;
            unsigned short :2;
            unsigned short prd1:1;
            unsigned short prd0:1;
            unsigned short hsrxenmode:1;
            unsigned short :3;
            unsigned short squ3:1;
            unsigned short squ2:1;
            unsigned short squ1:1;
            unsigned short squ0:1;
        } BIT;
    } PHYTRIM2;
    char           wk14[12];
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long DVBSTS:1;
            unsigned long :1;
            unsigned long DOVCB:1;
            unsigned long DOVCA:1;
            unsigned long :2;
            unsigned long DM:1;
            unsigned long DP:1;
            unsigned long :11;
            unsigned long FIXPHY:1;
            unsigned long :3;
            unsigned long SRPC:1;
        } BIT;
    } DPUSR0R;
    union {
        unsigned long LONG;
        struct {
            unsigned long :8;
            unsigned long DVBINT:1;
            unsigned long :1;
            unsigned long DOVRCRB:1;
            unsigned long DOVRCRA:1;
            unsigned long :2;
            unsigned long DMINT:1;
            unsigned long DPINT:1;
            unsigned long :8;
            unsigned long DVBSE:1;
            unsigned long :1;
            unsigned long DOVRCRBE:1;
            unsigned long DOVRCRAE:1;
            unsigned long :2;
            unsigned long DMINTE:1;
            unsigned long DPINTE:1;
        } BIT;
    } DPUSR1R;
};

struct st_wdt {
    unsigned char  WDTRR;
    char           wk0[1];
    union {
        unsigned short WORD;
        struct {
            unsigned short :2;
            unsigned short RPSS:2;
            unsigned short :2;
            unsigned short RPES:2;
            unsigned short CKS:4;
            unsigned short :2;
            unsigned short TOPS:2;
        } BIT;
    } WDTCR;
    union {
        unsigned short WORD;
        struct {
            unsigned short REFEF:1;
            unsigned short UNDFF:1;
            unsigned short CNTVAL:14;
        } BIT;
    } WDTSR;
    union {
        unsigned char BYTE;
        struct {
            unsigned char RSTIRQS:1;
        } BIT;
    } WDTRCR;
};

#endif
enum enum_ir {
IR_BSC_BUSERR=16,IR_RAM_RAMERR=18,
IR_FCU_FIFERR=21,IR_FCU_FRDYI=23,
IR_ICU_SWINT2=26,IR_ICU_SWINT,
IR_CMT0_CMI0,
IR_CMT1_CMI1,
IR_CMTW0_CMWI0,
IR_CMTW_CMWI1,
IR_USBHS_D0FIFO2,IR_USBHS_D1FIFO2,
IR_USB0_D0FIFO0,IR_USB0_D1FIFO0,
IR_RSPI0_SPRI0=38,IR_RSPI0_SPTI0,
IR_QSPI_SPRI=42,IR_QSPI_SPTI,
IR_SDHI_SBFAI,
IR_MMC_MBFAI,
IR_SSI0_SSITXI0,IR_SSI0_SSIRXI0,
IR_SSI1_SSIRTI1,
IR_SRC0_IDEI0=50,IR_SRC0_ODFI0,
IR_RIIC0_RXI0,IR_RIIC0_TXI0,
IR_RIIC2_RXI2,IR_RIIC2_TXI2,
IR_SCI0_RXI0=58,IR_SCI0_TXI0,
IR_SCI1_RXI1,IR_SCI1_TXI1,
IR_SCI2_RXI2,IR_SCI2_TXI2,
IR_ICU_IRQ0,IR_ICU_IRQ1,IR_ICU_IRQ2,IR_ICU_IRQ3,IR_ICU_IRQ4,IR_ICU_IRQ5,IR_ICU_IRQ6,IR_ICU_IRQ7,IR_ICU_IRQ8,IR_ICU_IRQ9,IR_ICU_IRQ10,IR_ICU_IRQ11,IR_ICU_IRQ12,IR_ICU_IRQ13,IR_ICU_IRQ14,IR_ICU_IRQ15,
IR_SCI3_RXI3,IR_SCI3_TXI3,
IR_SCI4_RXI4,IR_SCI4_TXI4,
IR_SCI5_RXI5,IR_SCI5_TXI5,
IR_SCI6_RXI6,IR_SCI6_TXI6,
IR_LVD1_COMPA1,
IR_LVD2_COMPA2,
IR_USB0_USBR0,
IR_RTC_ALARM,IR_RTC_PRD,
IR_USBHS_HSUSBR,
IR_IWDT_IWUNI,
IR_WDT_WUNI,
IR_SCI7_RXI7,IR_SCI7_TXI7,
IR_SCIF8_RXIF8,IR_SCIF8_TXIF8,
IR_SCIF9_RXIF9,IR_SCIF9_TXIF9,
IR_SCIF10_RXIF10,IR_SCIF10_TXIF10,
IR_ICU_GROUPBE0,IR_ICU_GROUPBE1,IR_ICU_GROUPAE0,IR_ICU_GROUPAE1,IR_ICU_GROUPBL0,IR_ICU_GROUPBL1,IR_ICU_GROUPAL0,IR_ICU_GROUPAL1,
IR_SCIF11_RXIF11,IR_SCIF11_TXIF11,
IR_SCI12_RXI12,IR_SCI12_TXI12,
IR_DMAC_DMAC0I=120,IR_DMAC_DMAC1I,IR_DMAC_DMAC2I,IR_DMAC_DMAC3I,IR_DMAC_DMAC74I,
IR_ICU_OST,
IR_EXDMAC_EXDMAC0I,IR_EXDMAC_EXDMAC1I,
IR_PERIB128_INTB128,
IR_PERIB129_INTB129,
IR_PERIB130_INTB130,
IR_PERIB131_INTB131,
IR_PERIB132_INTB132,
IR_PERIB133_INTB133,
IR_PERIB134_INTB134,
IR_PERIB135_INTB135,
IR_PERIB136_INTB136,
IR_PERIB137_INTB137,
IR_PERIB138_INTB138,
IR_PERIB139_INTB139,
IR_PERIB140_INTB140,
IR_PERIB141_INTB141,
IR_PERIB142_INTB142,
IR_PERIB143_INTB143,
IR_PERIB144_INTB144,
IR_PERIB145_INTB145,
IR_PERIB146_INTB146,
IR_PERIB147_INTB147,
IR_PERIB148_INTB148,
IR_PERIB149_INTB149,
IR_PERIB150_INTB150,
IR_PERIB151_INTB151,
IR_PERIB152_INTB152,
IR_PERIB153_INTB153,
IR_PERIB154_INTB154,
IR_PERIB155_INTB155,
IR_PERIB156_INTB156,
IR_PERIB157_INTB157,
IR_PERIB158_INTB158,
IR_PERIB159_INTB159,
IR_PERIB160_INTB160,
IR_PERIB161_INTB161,
IR_PERIB162_INTB162,
IR_PERIB163_INTB163,
IR_PERIB164_INTB164,
IR_PERIB165_INTB165,
IR_PERIB166_INTB166,
IR_PERIB167_INTB167,
IR_PERIB168_INTB168,
IR_PERIB169_INTB169,
IR_PERIB170_INTB170,
IR_PERIB171_INTB171,
IR_PERIB172_INTB172,
IR_PERIB173_INTB173,
IR_PERIB174_INTB174,
IR_PERIB175_INTB175,
IR_PERIB176_INTB176,
IR_PERIB177_INTB177,
IR_PERIB178_INTB178,
IR_PERIB179_INTB179,
IR_PERIB180_INTB180,
IR_PERIB181_INTB181,
IR_PERIB182_INTB182,
IR_PERIB183_INTB183,
IR_PERIB184_INTB184,
IR_PERIB185_INTB185,
IR_PERIB186_INTB186,
IR_PERIB187_INTB187,
IR_PERIB188_INTB188,
IR_PERIB189_INTB189,
IR_PERIB190_INTB190,
IR_PERIB191_INTB191,
IR_PERIB192_INTB192,
IR_PERIB193_INTB193,
IR_PERIB194_INTB194,
IR_PERIB195_INTB195,
IR_PERIB196_INTB196,
IR_PERIB197_INTB197,
IR_PERIB198_INTB198,
IR_PERIB199_INTB199,
IR_PERIB200_INTB200,
IR_PERIB201_INTB201,
IR_PERIB202_INTB202,
IR_PERIB203_INTB203,
IR_PERIB204_INTB204,
IR_PERIB205_INTB205,
IR_PERIB206_INTB206,
IR_PERIB207_INTB207,
IR_PERIA208_INTA208,
IR_PERIA209_INTA209,
IR_PERIA210_INTA210,
IR_PERIA211_INTA211,
IR_PERIA212_INTA212,
IR_PERIA213_INTA213,
IR_PERIA214_INTA214,
IR_PERIA215_INTA215,
IR_PERIA216_INTA216,
IR_PERIA217_INTA217,
IR_PERIA218_INTA218,
IR_PERIA219_INTA219,
IR_PERIA220_INTA220,
IR_PERIA221_INTA221,
IR_PERIA222_INTA222,
IR_PERIA223_INTA223,
IR_PERIA224_INTA224,
IR_PERIA225_INTA225,
IR_PERIA226_INTA226,
IR_PERIA227_INTA227,
IR_PERIA228_INTA228,
IR_PERIA229_INTA229,
IR_PERIA230_INTA230,
IR_PERIA231_INTA231,
IR_PERIA232_INTA232,
IR_PERIA233_INTA233,
IR_PERIA234_INTA234,
IR_PERIA235_INTA235,
IR_PERIA236_INTA236,
IR_PERIA237_INTA237,
IR_PERIA238_INTA238,
IR_PERIA239_INTA239,
IR_PERIA240_INTA240,
IR_PERIA241_INTA241,
IR_PERIA242_INTA242,
IR_PERIA243_INTA243,
IR_PERIA244_INTA244,
IR_PERIA245_INTA245,
IR_PERIA246_INTA246,
IR_PERIA247_INTA247,
IR_PERIA248_INTA248,
IR_PERIA249_INTA249,
IR_PERIA250_INTA250,
IR_PERIA251_INTA251,
IR_PERIA252_INTA252,
IR_PERIA253_INTA253,
IR_PERIA254_INTA254,
IR_PERIA255_INTA255
};

enum enum_dtce {
DTCE_ICU_SWINT2=26,DTCE_ICU_SWINT,
DTCE_CMT0_CMI0,
DTCE_CMT1_CMI1,
DTCE_CMTW0_CMWI0,
DTCE_CMTW_CMWI1,
DTCE_USBHS_D0FIFO2,DTCE_USBHS_D1FIFO2,
DTCE_USB0_D0FIFO0,DTCE_USB0_D1FIFO0,
DTCE_RSPI0_SPRI0=38,DTCE_RSPI0_SPTI0,
DTCE_QSPI_SPRI=42,DTCE_QSPI_SPTI,
DTCE_SDHI_SBFAI,
DTCE_MMC_MBFAI,
DTCE_SSI0_SSITXI0,DTCE_SSI0_SSIRXI0,
DTCE_SSI1_SSIRTI1,
DTCE_SRC0_IDEI0=50,DTCE_SRC0_ODFI0,
DTCE_RIIC0_RXI0,DTCE_RIIC0_TXI0,
DTCE_RIIC2_RXI2,DTCE_RIIC2_TXI2,
DTCE_SCI0_RXI0=58,DTCE_SCI0_TXI0,
DTCE_SCI1_RXI1,DTCE_SCI1_TXI1,
DTCE_SCI2_RXI2,DTCE_SCI2_TXI2,
DTCE_ICU_IRQ0,DTCE_ICU_IRQ1,DTCE_ICU_IRQ2,DTCE_ICU_IRQ3,DTCE_ICU_IRQ4,DTCE_ICU_IRQ5,DTCE_ICU_IRQ6,DTCE_ICU_IRQ7,DTCE_ICU_IRQ8,DTCE_ICU_IRQ9,DTCE_ICU_IRQ10,DTCE_ICU_IRQ11,DTCE_ICU_IRQ12,DTCE_ICU_IRQ13,DTCE_ICU_IRQ14,DTCE_ICU_IRQ15,
DTCE_SCI3_RXI3,DTCE_SCI3_TXI3,
DTCE_SCI4_RXI4,DTCE_SCI4_TXI4,
DTCE_SCI5_RXI5,DTCE_SCI5_TXI5,
DTCE_SCI6_RXI6,DTCE_SCI6_TXI6,
DTCE_PDC_PCDFI=97,
DTCE_SCI7_RXI7,DTCE_SCI7_TXI7,
DTCE_SCIF8_RXIF8,DTCE_SCIF8_TXIF8,
DTCE_SCIF9_RXIF9,DTCE_SCIF9_TXIF9,
DTCE_SCIF10_RXIF10,DTCE_SCIF10_TXIF10,
DTCE_SCIF11_RXIF11=114,DTCE_SCIF11_TXIF11,
DTCE_SCI12_RXI12,DTCE_SCI12_TXI12,
DTCE_DMAC_DMAC0I=120,DTCE_DMAC_DMAC1I,DTCE_DMAC_DMAC2I,DTCE_DMAC_DMAC3I,
DTCE_EXDMAC_EXDMAC0I=126,DTCE_EXDMAC_EXDMAC1I,
DTCE_PERIB128_INTB128,
DTCE_PERIB129_INTB129,
DTCE_PERIB130_INTB130,
DTCE_PERIB131_INTB131,
DTCE_PERIB132_INTB132,
DTCE_PERIB133_INTB133,
DTCE_PERIB134_INTB134,
DTCE_PERIB135_INTB135,
DTCE_PERIB136_INTB136,
DTCE_PERIB137_INTB137,
DTCE_PERIB138_INTB138,
DTCE_PERIB139_INTB139,
DTCE_PERIB140_INTB140,
DTCE_PERIB141_INTB141,
DTCE_PERIB142_INTB142,
DTCE_PERIB143_INTB143,
DTCE_PERIB144_INTB144,
DTCE_PERIB145_INTB145,
DTCE_PERIB146_INTB146,
DTCE_PERIB147_INTB147,
DTCE_PERIB148_INTB148,
DTCE_PERIB149_INTB149,
DTCE_PERIB150_INTB150,
DTCE_PERIB151_INTB151,
DTCE_PERIB152_INTB152,
DTCE_PERIB153_INTB153,
DTCE_PERIB154_INTB154,
DTCE_PERIB155_INTB155,
DTCE_PERIB156_INTB156,
DTCE_PERIB157_INTB157,
DTCE_PERIB158_INTB158,
DTCE_PERIB159_INTB159,
DTCE_PERIB160_INTB160,
DTCE_PERIB161_INTB161,
DTCE_PERIB162_INTB162,
DTCE_PERIB163_INTB163,
DTCE_PERIB164_INTB164,
DTCE_PERIB165_INTB165,
DTCE_PERIB166_INTB166,
DTCE_PERIB167_INTB167,
DTCE_PERIB168_INTB168,
DTCE_PERIB169_INTB169,
DTCE_PERIB170_INTB170,
DTCE_PERIB171_INTB171,
DTCE_PERIB172_INTB172,
DTCE_PERIB173_INTB173,
DTCE_PERIB174_INTB174,
DTCE_PERIB175_INTB175,
DTCE_PERIB176_INTB176,
DTCE_PERIB177_INTB177,
DTCE_PERIB178_INTB178,
DTCE_PERIB179_INTB179,
DTCE_PERIB180_INTB180,
DTCE_PERIB181_INTB181,
DTCE_PERIB182_INTB182,
DTCE_PERIB183_INTB183,
DTCE_PERIB184_INTB184,
DTCE_PERIB185_INTB185,
DTCE_PERIB186_INTB186,
DTCE_PERIB187_INTB187,
DTCE_PERIB188_INTB188,
DTCE_PERIB189_INTB189,
DTCE_PERIB190_INTB190,
DTCE_PERIB191_INTB191,
DTCE_PERIB192_INTB192,
DTCE_PERIB193_INTB193,
DTCE_PERIB194_INTB194,
DTCE_PERIB195_INTB195,
DTCE_PERIB196_INTB196,
DTCE_PERIB197_INTB197,
DTCE_PERIB198_INTB198,
DTCE_PERIB199_INTB199,
DTCE_PERIB200_INTB200,
DTCE_PERIB201_INTB201,
DTCE_PERIB202_INTB202,
DTCE_PERIB203_INTB203,
DTCE_PERIB204_INTB204,
DTCE_PERIB205_INTB205,
DTCE_PERIB206_INTB206,
DTCE_PERIB207_INTB207,
DTCE_PERIA208_INTA208,
DTCE_PERIA209_INTA209,
DTCE_PERIA210_INTA210,
DTCE_PERIA211_INTA211,
DTCE_PERIA212_INTA212,
DTCE_PERIA213_INTA213,
DTCE_PERIA214_INTA214,
DTCE_PERIA215_INTA215,
DTCE_PERIA216_INTA216,
DTCE_PERIA217_INTA217,
DTCE_PERIA218_INTA218,
DTCE_PERIA219_INTA219,
DTCE_PERIA220_INTA220,
DTCE_PERIA221_INTA221,
DTCE_PERIA222_INTA222,
DTCE_PERIA223_INTA223,
DTCE_PERIA224_INTA224,
DTCE_PERIA225_INTA225,
DTCE_PERIA226_INTA226,
DTCE_PERIA227_INTA227,
DTCE_PERIA228_INTA228,
DTCE_PERIA229_INTA229,
DTCE_PERIA230_INTA230,
DTCE_PERIA231_INTA231,
DTCE_PERIA232_INTA232,
DTCE_PERIA233_INTA233,
DTCE_PERIA234_INTA234,
DTCE_PERIA235_INTA235,
DTCE_PERIA236_INTA236,
DTCE_PERIA237_INTA237,
DTCE_PERIA238_INTA238,
DTCE_PERIA239_INTA239,
DTCE_PERIA240_INTA240,
DTCE_PERIA241_INTA241,
DTCE_PERIA242_INTA242,
DTCE_PERIA243_INTA243,
DTCE_PERIA244_INTA244,
DTCE_PERIA245_INTA245,
DTCE_PERIA246_INTA246,
DTCE_PERIA247_INTA247,
DTCE_PERIA248_INTA248,
DTCE_PERIA249_INTA249,
DTCE_PERIA250_INTA250,
DTCE_PERIA251_INTA251,
DTCE_PERIA252_INTA252,
DTCE_PERIA253_INTA253,
DTCE_PERIA254_INTA254,
DTCE_PERIA255_INTA255
};

enum enum_ier {
IER_BSC_BUSERR=0x02,
IER_RAM_RAMERR=0x02,
IER_FCU_FIFERR=0x02,IER_FCU_FRDYI=0x02,
IER_ICU_SWINT2=0x03,IER_ICU_SWINT=0x03,
IER_CMT0_CMI0=0x03,
IER_CMT1_CMI1=0x03,
IER_CMTW0_CMWI0=0x03,
IER_CMTW_CMWI1=0x03,
IER_USBHS_D0FIFO2=0x04,IER_USBHS_D1FIFO2=0x04,
IER_USB0_D0FIFO0=0x04,IER_USB0_D1FIFO0=0x04,
IER_RSPI0_SPRI0=0x04,IER_RSPI0_SPTI0=0x04,
IER_QSPI_SPRI=0x05,IER_QSPI_SPTI=0x05,
IER_SDHI_SBFAI=0x05,
IER_MMC_MBFAI=0x05,
IER_SSI0_SSITXI0=0x05,IER_SSI0_SSIRXI0=0x05,
IER_SSI1_SSIRTI1=0x06,
IER_SRC0_IDEI0=0x06,IER_SRC0_ODFI0=0x06,
IER_RIIC0_RXI0=0x06,IER_RIIC0_TXI0=0x06,
IER_RIIC2_RXI2=0x06,IER_RIIC2_TXI2=0x06,
IER_SCI0_RXI0=0x07,IER_SCI0_TXI0=0x07,
IER_SCI1_RXI1=0x07,IER_SCI1_TXI1=0x07,
IER_SCI2_RXI2=0x07,IER_SCI2_TXI2=0x07,
IER_ICU_IRQ0=0x08,IER_ICU_IRQ1=0x08,IER_ICU_IRQ2=0x08,IER_ICU_IRQ3=0x08,IER_ICU_IRQ4=0x08,IER_ICU_IRQ5=0x08,IER_ICU_IRQ6=0x08,IER_ICU_IRQ7=0x08,IER_ICU_IRQ8=0x09,IER_ICU_IRQ9=0x09,IER_ICU_IRQ10=0x09,IER_ICU_IRQ11=0x09,IER_ICU_IRQ12=0x09,IER_ICU_IRQ13=0x09,IER_ICU_IRQ14=0x09,IER_ICU_IRQ15=0x09,
IER_SCI3_RXI3=0x0A,IER_SCI3_TXI3=0x0A,
IER_SCI4_RXI4=0x0A,IER_SCI4_TXI4=0x0A,
IER_SCI5_RXI5=0x0A,IER_SCI5_TXI5=0x0A,
IER_SCI6_RXI6=0x0A,IER_SCI6_TXI6=0x0A,
IER_LVD1_COMPA1=0x0B,
IER_LVD2_COMPA2=0x0B,
IER_USB0_USBR0=0x0B,
IER_RTC_ALARM=0x0B,IER_RTC_PRD=0x0B,
IER_USBHS_HSUSBR=0x0B,
IER_IWDT_IWUNI=0x0B,
IER_WDT_WUNI=0x0C,
IER_PDC_PCDFI=0x0C,
IER_SCI7_RXI7=0x0C,IER_SCI7_TXI7=0x0C,
IER_SCIF8_RXIF8=0x0C,IER_SCIF8_TXIF8=0x0C,
IER_SCIF9_RXIF9=0x0C,IER_SCIF9_TXIF9=0x0C,
IER_SCIF10_RXIF10=0x0D,IER_SCIF10_TXIF10=0x0D,
IER_ICU_GROUPBE0=0x0D,IER_ICU_GROUPBE1=0x0D,IER_ICU_GROUPAE0=0x0D,IER_ICU_GROUPAE1=0x0D,IER_ICU_GROUPBL0=0x0D,IER_ICU_GROUPBL1=0x0D,IER_ICU_GROUPAL0=0x0E,IER_ICU_GROUPAL1=0x0E,
IER_SCIF11_RXIF11=0x0E,IER_SCIF11_TXIF11=0x0E,
IER_SCI12_RXI12=0x0E,IER_SCI12_TXI12=0x0E,
IER_DMAC_DMAC0I=0x0F,IER_DMAC_DMAC1I=0x0F,IER_DMAC_DMAC2I=0x0F,IER_DMAC_DMAC3I=0x0F,IER_DMAC_DMAC74I=0x0F,
IER_ICU_OST=0x0F,
IER_EXDMAC_EXDMAC0I=0x0F,IER_EXDMAC_EXDMAC1I=0x0F,
IER_PERIB128_INTB128=0x10,
IER_PERIB129_INTB129=0x10,
IER_PERIB130_INTB130=0x10,
IER_PERIB131_INTB131=0x10,
IER_PERIB132_INTB132=0x10,
IER_PERIB133_INTB133=0x10,
IER_PERIB134_INTB134=0x10,
IER_PERIB135_INTB135=0x10,
IER_PERIB136_INTB136=0x11,
IER_PERIB137_INTB137=0x11,
IER_PERIB138_INTB138=0x11,
IER_PERIB139_INTB139=0x11,
IER_PERIB140_INTB140=0x11,
IER_PERIB141_INTB141=0x11,
IER_PERIB142_INTB142=0x11,
IER_PERIB143_INTB143=0x11,
IER_PERIB144_INTB144=0x12,
IER_PERIB145_INTB145=0x12,
IER_PERIB146_INTB146=0x12,
IER_PERIB147_INTB147=0x12,
IER_PERIB148_INTB148=0x12,
IER_PERIB149_INTB149=0x12,
IER_PERIB150_INTB150=0x12,
IER_PERIB151_INTB151=0x12,
IER_PERIB152_INTB152=0x13,
IER_PERIB153_INTB153=0x13,
IER_PERIB154_INTB154=0x13,
IER_PERIB155_INTB155=0x13,
IER_PERIB156_INTB156=0x13,
IER_PERIB157_INTB157=0x13,
IER_PERIB158_INTB158=0x13,
IER_PERIB159_INTB159=0x13,
IER_PERIB160_INTB160=0x14,
IER_PERIB161_INTB161=0x14,
IER_PERIB162_INTB162=0x14,
IER_PERIB163_INTB163=0x14,
IER_PERIB164_INTB164=0x14,
IER_PERIB165_INTB165=0x14,
IER_PERIB166_INTB166=0x14,
IER_PERIB167_INTB167=0x14,
IER_PERIB168_INTB168=0x15,
IER_PERIB169_INTB169=0x15,
IER_PERIB170_INTB170=0x15,
IER_PERIB171_INTB171=0x15,
IER_PERIB172_INTB172=0x15,
IER_PERIB173_INTB173=0x15,
IER_PERIB174_INTB174=0x15,
IER_PERIB175_INTB175=0x15,
IER_PERIB176_INTB176=0x16,
IER_PERIB177_INTB177=0x16,
IER_PERIB178_INTB178=0x16,
IER_PERIB179_INTB179=0x16,
IER_PERIB180_INTB180=0x16,
IER_PERIB181_INTB181=0x16,
IER_PERIB182_INTB182=0x16,
IER_PERIB183_INTB183=0x16,
IER_PERIB184_INTB184=0x17,
IER_PERIB185_INTB185=0x17,
IER_PERIB186_INTB186=0x17,
IER_PERIB187_INTB187=0x17,
IER_PERIB188_INTB188=0x17,
IER_PERIB189_INTB189=0x17,
IER_PERIB190_INTB190=0x17,
IER_PERIB191_INTB191=0x17,
IER_PERIB192_INTB192=0x18,
IER_PERIB193_INTB193=0x18,
IER_PERIB194_INTB194=0x18,
IER_PERIB195_INTB195=0x18,
IER_PERIB196_INTB196=0x18,
IER_PERIB197_INTB197=0x18,
IER_PERIB198_INTB198=0x18,
IER_PERIB199_INTB199=0x18,
IER_PERIB200_INTB200=0x19,
IER_PERIB201_INTB201=0x19,
IER_PERIB202_INTB202=0x19,
IER_PERIB203_INTB203=0x19,
IER_PERIB204_INTB204=0x19,
IER_PERIB205_INTB205=0x19,
IER_PERIB206_INTB206=0x19,
IER_PERIB207_INTB207=0x19,
IER_PERIA208_INTA208=0x1A,
IER_PERIA209_INTA209=0x1A,
IER_PERIA210_INTA210=0x1A,
IER_PERIA211_INTA211=0x1A,
IER_PERIA212_INTA212=0x1A,
IER_PERIA213_INTA213=0x1A,
IER_PERIA214_INTA214=0x1A,
IER_PERIA215_INTA215=0x1A,
IER_PERIA216_INTA216=0x1B,
IER_PERIA217_INTA217=0x1B,
IER_PERIA218_INTA218=0x1B,
IER_PERIA219_INTA219=0x1B,
IER_PERIA220_INTA220=0x1B,
IER_PERIA221_INTA221=0x1B,
IER_PERIA222_INTA222=0x1B,
IER_PERIA223_INTA223=0x1B,
IER_PERIA224_INTA224=0x1C,
IER_PERIA225_INTA225=0x1C,
IER_PERIA226_INTA226=0x1C,
IER_PERIA227_INTA227=0x1C,
IER_PERIA228_INTA228=0x1C,
IER_PERIA229_INTA229=0x1C,
IER_PERIA230_INTA230=0x1C,
IER_PERIA231_INTA231=0x1C,
IER_PERIA232_INTA232=0x1D,
IER_PERIA233_INTA233=0x1D,
IER_PERIA234_INTA234=0x1D,
IER_PERIA235_INTA235=0x1D,
IER_PERIA236_INTA236=0x1D,
IER_PERIA237_INTA237=0x1D,
IER_PERIA238_INTA238=0x1D,
IER_PERIA239_INTA239=0x1D,
IER_PERIA240_INTA240=0x1E,
IER_PERIA241_INTA241=0x1E,
IER_PERIA242_INTA242=0x1E,
IER_PERIA243_INTA243=0x1E,
IER_PERIA244_INTA244=0x1E,
IER_PERIA245_INTA245=0x1E,
IER_PERIA246_INTA246=0x1E,
IER_PERIA247_INTA247=0x1E,
IER_PERIA248_INTA248=0x1F,
IER_PERIA249_INTA249=0x1F,
IER_PERIA250_INTA250=0x1F,
IER_PERIA251_INTA251=0x1F,
IER_PERIA252_INTA252=0x1F,
IER_PERIA253_INTA253=0x1F,
IER_PERIA254_INTA254=0x1F,
IER_PERIA255_INTA255=0x1F
};

enum enum_ipr {
IPR_BSC_BUSERR=0,
IPR_RAM_RAMERR=0,
IPR_FCU_FIFERR=1,IPR_FCU_FRDYI=2,
IPR_ICU_SWINT2=3,IPR_ICU_SWINT=3,
IPR_CMT0_CMI0=4,
IPR_CMT1_CMI1=5,
IPR_CMTW0_CMWI0=6,
IPR_CMTW_CMWI1=7,
IPR_USBHS_D0FIFO2=32,IPR_USBHS_D1FIFO2=33,
IPR_USB0_D0FIFO0=34,IPR_USB0_D1FIFO0=35,
IPR_RSPI0_SPRI0=38,IPR_RSPI0_SPTI0=39,
IPR_QSPI_SPRI=42,IPR_QSPI_SPTI=43,
IPR_SDHI_SBFAI=44,
IPR_MMC_MBFAI=45,
IPR_SSI0_SSITXI0=46,IPR_SSI0_SSIRXI0=47,
IPR_SSI1_SSIRTI1=48,
IPR_SRC0_IDEI0=50,IPR_SRC0_ODFI0=51,
IPR_RIIC0_RXI0=52,IPR_RIIC0_TXI0=53,
IPR_RIIC2_RXI2=54,IPR_RIIC2_TXI2=55,
IPR_SCI0_RXI0=58,IPR_SCI0_TXI0=59,
IPR_SCI1_RXI1=60,IPR_SCI1_TXI1=61,
IPR_SCI2_RXI2=62,IPR_SCI2_TXI2=63,
IPR_ICU_IRQ0=64,IPR_ICU_IRQ1=65,IPR_ICU_IRQ2=66,IPR_ICU_IRQ3=67,IPR_ICU_IRQ4=68,IPR_ICU_IRQ5=69,IPR_ICU_IRQ6=70,IPR_ICU_IRQ7=71,IPR_ICU_IRQ8=72,IPR_ICU_IRQ9=73,IPR_ICU_IRQ10=74,IPR_ICU_IRQ11=75,IPR_ICU_IRQ12=76,IPR_ICU_IRQ13=77,IPR_ICU_IRQ14=78,IPR_ICU_IRQ15=79,
IPR_SCI3_RXI3=80,IPR_SCI3_TXI3=81,
IPR_SCI4_RXI4=82,IPR_SCI4_TXI4=83,
IPR_SCI5_RXI5=84,IPR_SCI5_TXI5=85,
IPR_SCI6_RXI6=86,IPR_SCI6_TXI6=87,
IPR_LVD1_COMPA1=88,
IPR_LVD2_COMPA2=89,
IPR_USB0_USBR0=90,
IPR_RTC_ALARM=92,IPR_RTC_PRD=93,
IPR_USBHS_HSUSBR=94,
IPR_IWDT_IWUNI=95,
IPR_WDT_WUNI=96,
IPR_PDC_PCDFI=97,
IPR_SCI7_RXI7=98,IPR_SCI7_TXI7=99,
IPR_SCIF8_RXIF8=100,IPR_SCIF8_TXIF8=101,
IPR_SCIF9_RXIF9=102,IPR_SCIF9_TXIF9=103,
IPR_SCIF10_RXIF10=104,IPR_SCIF10_TXIF10=105,
IPR_ICU_GROUPBE0=106,IPR_ICU_GROUPBE1=107,IPR_ICU_GROUPAE0=108,IPR_ICU_GROUPAE1=109,IPR_ICU_GROUPBL0=110,IPR_ICU_GROUPBL1=111,IPR_ICU_GROUPAL0=112,IPR_ICU_GROUPAL1=113,
IPR_SCIF11_RXIF11=114,IPR_SCIF11_TXIF11=115,
IPR_SCI12_RXI12=116,IPR_SCI12_TXI12=117,
IPR_DMAC_DMAC0I=120,IPR_DMAC_DMAC1I=121,IPR_DMAC_DMAC2I=122,IPR_DMAC_DMAC3I=123,IPR_DMAC_DMAC74I=124,
IPR_ICU_OST=125,
IPR_EXDMAC_EXDMAC0I=126,IPR_EXDMAC_EXDMAC1I=127,
IPR_PERIB128_INTB128=128,
IPR_PERIB129_INTB129=129,
IPR_PERIB130_INTB130=130,
IPR_PERIB131_INTB131=131,
IPR_PERIB132_INTB132=132,
IPR_PERIB133_INTB133=133,
IPR_PERIB134_INTB134=134,
IPR_PERIB135_INTB135=135,
IPR_PERIB136_INTB136=136,
IPR_PERIB137_INTB137=137,
IPR_PERIB138_INTB138=138,
IPR_PERIB139_INTB139=139,
IPR_PERIB140_INTB140=140,
IPR_PERIB141_INTB141=141,
IPR_PERIB142_INTB142=142,
IPR_PERIB143_INTB143=143,
IPR_PERIB144_INTB144=144,
IPR_PERIB145_INTB145=145,
IPR_PERIB146_INTB146=146,
IPR_PERIB147_INTB147=147,
IPR_PERIB148_INTB148=148,
IPR_PERIB149_INTB149=149,
IPR_PERIB150_INTB150=150,
IPR_PERIB151_INTB151=151,
IPR_PERIB152_INTB152=152,
IPR_PERIB153_INTB153=153,
IPR_PERIB154_INTB154=154,
IPR_PERIB155_INTB155=155,
IPR_PERIB156_INTB156=156,
IPR_PERIB157_INTB157=157,
IPR_PERIB158_INTB158=158,
IPR_PERIB159_INTB159=159,
IPR_PERIB160_INTB160=160,
IPR_PERIB161_INTB161=161,
IPR_PERIB162_INTB162=162,
IPR_PERIB163_INTB163=163,
IPR_PERIB164_INTB164=164,
IPR_PERIB165_INTB165=165,
IPR_PERIB166_INTB166=166,
IPR_PERIB167_INTB167=167,
IPR_PERIB168_INTB168=168,
IPR_PERIB169_INTB169=169,
IPR_PERIB170_INTB170=170,
IPR_PERIB171_INTB171=171,
IPR_PERIB172_INTB172=172,
IPR_PERIB173_INTB173=173,
IPR_PERIB174_INTB174=174,
IPR_PERIB175_INTB175=175,
IPR_PERIB176_INTB176=176,
IPR_PERIB177_INTB177=177,
IPR_PERIB178_INTB178=178,
IPR_PERIB179_INTB179=179,
IPR_PERIB180_INTB180=180,
IPR_PERIB181_INTB181=181,
IPR_PERIB182_INTB182=182,
IPR_PERIB183_INTB183=183,
IPR_PERIB184_INTB184=184,
IPR_PERIB185_INTB185=185,
IPR_PERIB186_INTB186=186,
IPR_PERIB187_INTB187=187,
IPR_PERIB188_INTB188=188,
IPR_PERIB189_INTB189=189,
IPR_PERIB190_INTB190=190,
IPR_PERIB191_INTB191=191,
IPR_PERIB192_INTB192=192,
IPR_PERIB193_INTB193=193,
IPR_PERIB194_INTB194=194,
IPR_PERIB195_INTB195=195,
IPR_PERIB196_INTB196=196,
IPR_PERIB197_INTB197=197,
IPR_PERIB198_INTB198=198,
IPR_PERIB199_INTB199=199,
IPR_PERIB200_INTB200=200,
IPR_PERIB201_INTB201=201,
IPR_PERIB202_INTB202=202,
IPR_PERIB203_INTB203=203,
IPR_PERIB204_INTB204=204,
IPR_PERIB205_INTB205=205,
IPR_PERIB206_INTB206=206,
IPR_PERIB207_INTB207=207,
IPR_PERIA208_INTA208=208,
IPR_PERIA209_INTA209=209,
IPR_PERIA210_INTA210=210,
IPR_PERIA211_INTA211=211,
IPR_PERIA212_INTA212=212,
IPR_PERIA213_INTA213=213,
IPR_PERIA214_INTA214=214,
IPR_PERIA215_INTA215=215,
IPR_PERIA216_INTA216=216,
IPR_PERIA217_INTA217=217,
IPR_PERIA218_INTA218=218,
IPR_PERIA219_INTA219=219,
IPR_PERIA220_INTA220=220,
IPR_PERIA221_INTA221=221,
IPR_PERIA222_INTA222=222,
IPR_PERIA223_INTA223=223,
IPR_PERIA224_INTA224=224,
IPR_PERIA225_INTA225=225,
IPR_PERIA226_INTA226=226,
IPR_PERIA227_INTA227=227,
IPR_PERIA228_INTA228=228,
IPR_PERIA229_INTA229=229,
IPR_PERIA230_INTA230=230,
IPR_PERIA231_INTA231=231,
IPR_PERIA232_INTA232=232,
IPR_PERIA233_INTA233=233,
IPR_PERIA234_INTA234=234,
IPR_PERIA235_INTA235=235,
IPR_PERIA236_INTA236=236,
IPR_PERIA237_INTA237=237,
IPR_PERIA238_INTA238=238,
IPR_PERIA239_INTA239=239,
IPR_PERIA240_INTA240=240,
IPR_PERIA241_INTA241=241,
IPR_PERIA242_INTA242=242,
IPR_PERIA243_INTA243=243,
IPR_PERIA244_INTA244=244,
IPR_PERIA245_INTA245=245,
IPR_PERIA246_INTA246=246,
IPR_PERIA247_INTA247=247,
IPR_PERIA248_INTA248=248,
IPR_PERIA249_INTA249=249,
IPR_PERIA250_INTA250=250,
IPR_PERIA251_INTA251=251,
IPR_PERIA252_INTA252=252,
IPR_PERIA253_INTA253=253,
IPR_PERIA254_INTA254=254,
IPR_PERIA255_INTA255=255
};

#define    IEN_BSC_BUSERR        IEN0
#define    IEN_RAM_RAMERR        IEN2
#define    IEN_FCU_FIFERR        IEN5
#define    IEN_FCU_FRDYI        IEN7
#define    IEN_ICU_SWINT2        IEN2
#define    IEN_ICU_SWINT        IEN3
#define    IEN_CMT0_CMI0        IEN4
#define    IEN_CMT1_CMI1        IEN5
#define    IEN_CMTW0_CMWI0        IEN6
#define    IEN_CMTW_CMWI1        IEN7
#define    IEN_USBHS_D0FIFO2    IEN0
#define    IEN_USBHS_D1FIFO2    IEN1
#define    IEN_USB0_D0FIFO0    IEN2
#define    IEN_USB0_D1FIFO0    IEN3
#define    IEN_RSPI0_SPRI0        IEN6
#define    IEN_RSPI0_SPTI0        IEN7
#define    IEN_QSPI_SPRI        IEN2
#define    IEN_QSPI_SPTI        IEN3
#define    IEN_SDHI_SBFAI        IEN4
#define    IEN_MMC_MBFAI        IEN5
#define    IEN_SSI0_SSITXI0    IEN6
#define    IEN_SSI0_SSIRXI0    IEN7
#define    IEN_SSI1_SSIRTI1    IEN0
#define    IEN_SRC0_IDEI0        IEN2
#define    IEN_SRC0_ODFI0        IEN3
#define    IEN_RIIC0_RXI0        IEN4
#define    IEN_RIIC0_TXI0        IEN5
#define    IEN_RIIC2_RXI2        IEN6
#define    IEN_RIIC2_TXI2        IEN7
#define    IEN_SCI0_RXI0        IEN2
#define    IEN_SCI0_TXI0        IEN3
#define    IEN_SCI1_RXI1        IEN4
#define    IEN_SCI1_TXI1        IEN5
#define    IEN_SCI2_RXI2        IEN6
#define    IEN_SCI2_TXI2        IEN7
#define    IEN_ICU_IRQ0        IEN0
#define    IEN_ICU_IRQ1        IEN1
#define    IEN_ICU_IRQ2        IEN2
#define    IEN_ICU_IRQ3        IEN3
#define    IEN_ICU_IRQ4        IEN4
#define    IEN_ICU_IRQ5        IEN5
#define    IEN_ICU_IRQ6        IEN6
#define    IEN_ICU_IRQ7        IEN7
#define    IEN_ICU_IRQ8        IEN0
#define    IEN_ICU_IRQ9        IEN1
#define    IEN_ICU_IRQ10        IEN2
#define    IEN_ICU_IRQ11        IEN3
#define    IEN_ICU_IRQ12        IEN4
#define    IEN_ICU_IRQ13        IEN5
#define    IEN_ICU_IRQ14        IEN6
#define    IEN_ICU_IRQ15        IEN7
#define    IEN_SCI3_RXI3        IEN0
#define    IEN_SCI3_TXI3        IEN1
#define    IEN_SCI4_RXI4        IEN2
#define    IEN_SCI4_TXI4        IEN3
#define    IEN_SCI5_RXI5        IEN4
#define    IEN_SCI5_TXI5        IEN5
#define    IEN_SCI6_RXI6        IEN6
#define    IEN_SCI6_TXI6        IEN7
#define    IEN_LVD1_COMPA1        IEN0
#define    IEN_LVD2_COMPA2        IEN1
#define    IEN_USB0_USBR0        IEN2
#define    IEN_RTC_ALARM        IEN4
#define    IEN_RTC_PRD            IEN5
#define    IEN_USBHS_HSUSBR    IEN6
#define    IEN_IWDT_IWUNI        IEN7
#define    IEN_WDT_WUNI        IEN0
#define    IEN_PDC_PCDFI        IEN1
#define    IEN_SCI7_RXI7        IEN2
#define    IEN_SCI7_TXI7        IEN3
#define    IEN_SCIF8_RXIF8        IEN4
#define    IEN_SCIF8_TXIF8        IEN5
#define    IEN_SCIF9_RXIF9        IEN6
#define    IEN_SCIF9_TXIF9        IEN7
#define    IEN_SCIF10_RXIF10    IEN0
#define    IEN_SCIF10_TXIF10    IEN1
#define    IEN_ICU_GROUPBE0    IEN2
#define    IEN_ICU_GROUPBE1    IEN3
#define    IEN_ICU_GROUPAE0    IEN4
#define    IEN_ICU_GROUPAE1    IEN5
#define    IEN_ICU_GROUPBL0    IEN6
#define    IEN_ICU_GROUPBL1    IEN7
#define    IEN_ICU_GROUPAL0    IEN0
#define    IEN_ICU_GROUPAL1    IEN1
#define    IEN_SCIF11_RXIF11    IEN2
#define    IEN_SCIF11_TXIF11    IEN3
#define    IEN_SCI12_RXI12        IEN4
#define    IEN_SCI12_TXI12        IEN5
#define    IEN_DMAC_DMAC0I        IEN0
#define    IEN_DMAC_DMAC1I        IEN1
#define    IEN_DMAC_DMAC2I        IEN2
#define    IEN_DMAC_DMAC3I        IEN3
#define    IEN_DMAC_DMAC74I    IEN4
#define    IEN_ICU_OST            IEN5
#define    IEN_EXDMAC_EXDMAC0I    IEN6
#define    IEN_EXDMAC_EXDMAC1I    IEN7
#define    IEN_PERIB128_INTB128    IEN0
#define    IEN_PERIB129_INTB129    IEN1
#define    IEN_PERIB130_INTB130    IEN2
#define    IEN_PERIB131_INTB131    IEN3
#define    IEN_PERIB132_INTB132    IEN4
#define    IEN_PERIB133_INTB133    IEN5
#define    IEN_PERIB134_INTB134    IEN6
#define    IEN_PERIB135_INTB135    IEN7
#define    IEN_PERIB136_INTB136    IEN0
#define    IEN_PERIB137_INTB137    IEN1
#define    IEN_PERIB138_INTB138    IEN2
#define    IEN_PERIB139_INTB139    IEN3
#define    IEN_PERIB140_INTB140    IEN4
#define    IEN_PERIB141_INTB141    IEN5
#define    IEN_PERIB142_INTB142    IEN6
#define    IEN_PERIB143_INTB143    IEN7
#define    IEN_PERIB144_INTB144    IEN0
#define    IEN_PERIB145_INTB145    IEN1
#define    IEN_PERIB146_INTB146    IEN2
#define    IEN_PERIB147_INTB147    IEN3
#define    IEN_PERIB148_INTB148    IEN4
#define    IEN_PERIB149_INTB149    IEN5
#define    IEN_PERIB150_INTB150    IEN6
#define    IEN_PERIB151_INTB151    IEN7
#define    IEN_PERIB152_INTB152    IEN0
#define    IEN_PERIB153_INTB153    IEN1
#define    IEN_PERIB154_INTB154    IEN2
#define    IEN_PERIB155_INTB155    IEN3
#define    IEN_PERIB156_INTB156    IEN4
#define    IEN_PERIB157_INTB157    IEN5
#define    IEN_PERIB158_INTB158    IEN6
#define    IEN_PERIB159_INTB159    IEN7
#define    IEN_PERIB160_INTB160    IEN0
#define    IEN_PERIB161_INTB161    IEN1
#define    IEN_PERIB162_INTB162    IEN2
#define    IEN_PERIB163_INTB163    IEN3
#define    IEN_PERIB164_INTB164    IEN4
#define    IEN_PERIB165_INTB165    IEN5
#define    IEN_PERIB166_INTB166    IEN6
#define    IEN_PERIB167_INTB167    IEN7
#define    IEN_PERIB168_INTB168    IEN0
#define    IEN_PERIB169_INTB169    IEN1
#define    IEN_PERIB170_INTB170    IEN2
#define    IEN_PERIB171_INTB171    IEN3
#define    IEN_PERIB172_INTB172    IEN4
#define    IEN_PERIB173_INTB173    IEN5
#define    IEN_PERIB174_INTB174    IEN6
#define    IEN_PERIB175_INTB175    IEN7
#define    IEN_PERIB176_INTB176    IEN0
#define    IEN_PERIB177_INTB177    IEN1
#define    IEN_PERIB178_INTB178    IEN2
#define    IEN_PERIB179_INTB179    IEN3
#define    IEN_PERIB180_INTB180    IEN4
#define    IEN_PERIB181_INTB181    IEN5
#define    IEN_PERIB182_INTB182    IEN6
#define    IEN_PERIB183_INTB183    IEN7
#define    IEN_PERIB184_INTB184    IEN0
#define    IEN_PERIB185_INTB185    IEN1
#define    IEN_PERIB186_INTB186    IEN2
#define    IEN_PERIB187_INTB187    IEN3
#define    IEN_PERIB188_INTB188    IEN4
#define    IEN_PERIB189_INTB189    IEN5
#define    IEN_PERIB190_INTB190    IEN6
#define    IEN_PERIB191_INTB191    IEN7
#define    IEN_PERIB192_INTB192    IEN0
#define    IEN_PERIB193_INTB193    IEN1
#define    IEN_PERIB194_INTB194    IEN2
#define    IEN_PERIB195_INTB195    IEN3
#define    IEN_PERIB196_INTB196    IEN4
#define    IEN_PERIB197_INTB197    IEN5
#define    IEN_PERIB198_INTB198    IEN6
#define    IEN_PERIB199_INTB199    IEN7
#define    IEN_PERIB200_INTB200    IEN0
#define    IEN_PERIB201_INTB201    IEN1
#define    IEN_PERIB202_INTB202    IEN2
#define    IEN_PERIB203_INTB203    IEN3
#define    IEN_PERIB204_INTB204    IEN4
#define    IEN_PERIB205_INTB205    IEN5
#define    IEN_PERIB206_INTB206    IEN6
#define    IEN_PERIB207_INTB207    IEN7
#define    IEN_PERIA208_INTA208    IEN0
#define    IEN_PERIA209_INTA209    IEN1
#define    IEN_PERIA210_INTA210    IEN2
#define    IEN_PERIA211_INTA211    IEN3
#define    IEN_PERIA212_INTA212    IEN4
#define    IEN_PERIA213_INTA213    IEN5
#define    IEN_PERIA214_INTA214    IEN6
#define    IEN_PERIA215_INTA215    IEN7
#define    IEN_PERIA216_INTA216    IEN0
#define    IEN_PERIA217_INTA217    IEN1
#define    IEN_PERIA218_INTA218    IEN2
#define    IEN_PERIA219_INTA219    IEN3
#define    IEN_PERIA220_INTA220    IEN4
#define    IEN_PERIA221_INTA221    IEN5
#define    IEN_PERIA222_INTA222    IEN6
#define    IEN_PERIA223_INTA223    IEN7
#define    IEN_PERIA224_INTA224    IEN0
#define    IEN_PERIA225_INTA225    IEN1
#define    IEN_PERIA226_INTA226    IEN2
#define    IEN_PERIA227_INTA227    IEN3
#define    IEN_PERIA228_INTA228    IEN4
#define    IEN_PERIA229_INTA229    IEN5
#define    IEN_PERIA230_INTA230    IEN6
#define    IEN_PERIA231_INTA231    IEN7
#define    IEN_PERIA232_INTA232    IEN0
#define    IEN_PERIA233_INTA233    IEN1
#define    IEN_PERIA234_INTA234    IEN2
#define    IEN_PERIA235_INTA235    IEN3
#define    IEN_PERIA236_INTA236    IEN4
#define    IEN_PERIA237_INTA237    IEN5
#define    IEN_PERIA238_INTA238    IEN6
#define    IEN_PERIA239_INTA239    IEN7
#define    IEN_PERIA240_INTA240    IEN0
#define    IEN_PERIA241_INTA241    IEN1
#define    IEN_PERIA242_INTA242    IEN2
#define    IEN_PERIA243_INTA243    IEN3
#define    IEN_PERIA244_INTA244    IEN4
#define    IEN_PERIA245_INTA245    IEN5
#define    IEN_PERIA246_INTA246    IEN6
#define    IEN_PERIA247_INTA247    IEN7
#define    IEN_PERIA248_INTA248    IEN0
#define    IEN_PERIA249_INTA249    IEN1
#define    IEN_PERIA250_INTA250    IEN2
#define    IEN_PERIA251_INTA251    IEN3
#define    IEN_PERIA252_INTA252    IEN4
#define    IEN_PERIA253_INTA253    IEN5
#define    IEN_PERIA254_INTA254    IEN6
#define    IEN_PERIA255_INTA255    IEN7

#define    VECT_BSC_BUSERR        16
#define    VECT_RAM_RAMERR        18
#define    VECT_FCU_FIFERR        21
#define    VECT_FCU_FRDYI        23
#define    VECT_ICU_SWINT2        26
#define    VECT_ICU_SWINT        27
#define    VECT_CMT0_CMI0        28
#define    VECT_CMT1_CMI1        29
#define    VECT_CMTW0_CMWI0    30
#define    VECT_CMTW_CMWI1        31
#define    VECT_USBHS_D0FIFO2    32
#define    VECT_USBHS_D1FIFO2    33
#define    VECT_USB0_D0FIFO0    34
#define    VECT_USB0_D1FIFO0    35
#define    VECT_RSPI0_SPRI0    38
#define    VECT_RSPI0_SPTI0    39
#define    VECT_QSPI_SPRI        42
#define    VECT_QSPI_SPTI        43
#define    VECT_SDHI_SBFAI        44
#define    VECT_MMC_MBFAI        45
#define    VECT_SSI0_SSITXI0    46
#define    VECT_SSI0_SSIRXI0    47
#define    VECT_SSI1_SSIRTI1    48
#define    VECT_SRC0_IDEI0        50
#define    VECT_SRC0_ODFI0        51
#define    VECT_RIIC0_RXI0        52
#define    VECT_RIIC0_TXI0        53
#define    VECT_RIIC2_RXI2        54
#define    VECT_RIIC2_TXI2        55
#define    VECT_SCI0_RXI0        58
#define    VECT_SCI0_TXI0        59
#define    VECT_SCI1_RXI1        60
#define    VECT_SCI1_TXI1        61
#define    VECT_SCI2_RXI2        62
#define    VECT_SCI2_TXI2        63
#define    VECT_ICU_IRQ0        64
#define    VECT_ICU_IRQ1        65
#define    VECT_ICU_IRQ2        66
#define    VECT_ICU_IRQ3        67
#define    VECT_ICU_IRQ4        68
#define    VECT_ICU_IRQ5        69
#define    VECT_ICU_IRQ6        70
#define    VECT_ICU_IRQ7        71
#define    VECT_ICU_IRQ8        72
#define    VECT_ICU_IRQ9        73
#define    VECT_ICU_IRQ10        74
#define    VECT_ICU_IRQ11        75
#define    VECT_ICU_IRQ12        76
#define    VECT_ICU_IRQ13        77
#define    VECT_ICU_IRQ14        78
#define    VECT_ICU_IRQ15        79
#define    VECT_SCI3_RXI3        80
#define    VECT_SCI3_TXI3        81
#define    VECT_SCI4_RXI4        82
#define    VECT_SCI4_TXI4        83
#define    VECT_SCI5_RXI5        84
#define    VECT_SCI5_TXI5        85
#define    VECT_SCI6_RXI6        86
#define    VECT_SCI6_TXI6        87
#define    VECT_LVD1_COMPA1    88
#define    VECT_LVD2_COMPA2    89
#define    VECT_USB0_USBR0        90
#define    VECT_RTC_ALARM        92
#define    VECT_RTC_PRD        93
#define    VECT_USBHS_HSUSBR    94
#define    VECT_IWDT_IWUNI        95
#define    VECT_WDT_WUNI        96
#define    VECT_PDC_PCDFI        97
#define    VECT_SCI7_RXI7        98
#define    VECT_SCI7_TXI7        99
#define    VECT_SCIF8_RXIF8    100
#define    VECT_SCIF8_TXIF8    101
#define    VECT_SCIF9_RXIF9    102
#define    VECT_SCIF9_TXIF9    103
#define    VECT_SCIF10_RXIF10    104
#define    VECT_SCIF10_TXIF10    105
#define    VECT_ICU_GROUPBE0    106
#define    VECT_ICU_GROUPBE1    107
#define    VECT_ICU_GROUPAE0    108
#define    VECT_ICU_GROUPAE1    109
#define    VECT_ICU_GROUPBL0    110
#define    VECT_ICU_GROUPBL1    111
#define    VECT_ICU_GROUPAL0    112
#define    VECT_ICU_GROUPAL1    113
#define    VECT_SCIF11_RXIF11    114
#define    VECT_SCIF11_TXIF11    115
#define    VECT_SCI12_RXI12    116
#define    VECT_SCI12_TXI12    117
#define    VECT_DMAC_DMAC0I    120
#define    VECT_DMAC_DMAC1I    121
#define    VECT_DMAC_DMAC2I    122
#define    VECT_DMAC_DMAC3I    123
#define    VECT_DMAC_DMAC74I    124
#define    VECT_ICU_OST        125
#define    VECT_EXDMAC_EXDMAC0I    126
#define    VECT_EXDMAC_EXDMAC1I    127
#define    VECT_PERIB128_INTB128    128
#define    VECT_PERIB129_INTB129    129
#define    VECT_PERIB130_INTB130    130
#define    VECT_PERIB131_INTB131    131
#define    VECT_PERIB132_INTB132    132
#define    VECT_PERIB133_INTB133    133
#define    VECT_PERIB134_INTB134    134
#define    VECT_PERIB135_INTB135    135
#define    VECT_PERIB136_INTB136    136
#define    VECT_PERIB137_INTB137    137
#define    VECT_PERIB138_INTB138    138
#define    VECT_PERIB139_INTB139    139
#define    VECT_PERIB140_INTB140    140
#define    VECT_PERIB141_INTB141    141
#define    VECT_PERIB142_INTB142    142
#define    VECT_PERIB143_INTB143    143
#define    VECT_PERIB144_INTB144    144
#define    VECT_PERIB145_INTB145    145
#define    VECT_PERIB146_INTB146    146
#define    VECT_PERIB147_INTB147    147
#define    VECT_PERIB148_INTB148    148
#define    VECT_PERIB149_INTB149    149
#define    VECT_PERIB150_INTB150    150
#define    VECT_PERIB151_INTB151    151
#define    VECT_PERIB152_INTB152    152
#define    VECT_PERIB153_INTB153    153
#define    VECT_PERIB154_INTB154    154
#define    VECT_PERIB155_INTB155    155
#define    VECT_PERIB156_INTB156    156
#define    VECT_PERIB157_INTB157    157
#define    VECT_PERIB158_INTB158    158
#define    VECT_PERIB159_INTB159    159
#define    VECT_PERIB160_INTB160    160
#define    VECT_PERIB161_INTB161    161
#define    VECT_PERIB162_INTB162    162
#define    VECT_PERIB163_INTB163    163
#define    VECT_PERIB164_INTB164    164
#define    VECT_PERIB165_INTB165    165
#define    VECT_PERIB166_INTB166    166
#define    VECT_PERIB167_INTB167    167
#define    VECT_PERIB168_INTB168    168
#define    VECT_PERIB169_INTB169    169
#define    VECT_PERIB170_INTB170    170
#define    VECT_PERIB171_INTB171    171
#define    VECT_PERIB172_INTB172    172
#define    VECT_PERIB173_INTB173    173
#define    VECT_PERIB174_INTB174    174
#define    VECT_PERIB175_INTB175    175
#define    VECT_PERIB176_INTB176    176
#define    VECT_PERIB177_INTB177    177
#define    VECT_PERIB178_INTB178    178
#define    VECT_PERIB179_INTB179    179
#define    VECT_PERIB180_INTB180    180
#define    VECT_PERIB181_INTB181    181
#define    VECT_PERIB182_INTB182    182
#define    VECT_PERIB183_INTB183    183
#define    VECT_PERIB184_INTB184    184
#define    VECT_PERIB185_INTB185    185
#define    VECT_PERIB186_INTB186    186
#define    VECT_PERIB187_INTB187    187
#define    VECT_PERIB188_INTB188    188
#define    VECT_PERIB189_INTB189    189
#define    VECT_PERIB190_INTB190    190
#define    VECT_PERIB191_INTB191    191
#define    VECT_PERIB192_INTB192    192
#define    VECT_PERIB193_INTB193    193
#define    VECT_PERIB194_INTB194    194
#define    VECT_PERIB195_INTB195    195
#define    VECT_PERIB196_INTB196    196
#define    VECT_PERIB197_INTB197    197
#define    VECT_PERIB198_INTB198    198
#define    VECT_PERIB199_INTB199    199
#define    VECT_PERIB200_INTB200    200
#define    VECT_PERIB201_INTB201    201
#define    VECT_PERIB202_INTB202    202
#define    VECT_PERIB203_INTB203    203
#define    VECT_PERIB204_INTB204    204
#define    VECT_PERIB205_INTB205    205
#define    VECT_PERIB206_INTB206    206
#define    VECT_PERIB207_INTB207    207
#define    VECT_PERIA208_INTA208    208
#define    VECT_PERIA209_INTA209    209
#define    VECT_PERIA210_INTA210    210
#define    VECT_PERIA211_INTA211    211
#define    VECT_PERIA212_INTA212    212
#define    VECT_PERIA213_INTA213    213
#define    VECT_PERIA214_INTA214    214
#define    VECT_PERIA215_INTA215    215
#define    VECT_PERIA216_INTA216    216
#define    VECT_PERIA217_INTA217    217
#define    VECT_PERIA218_INTA218    218
#define    VECT_PERIA219_INTA219    219
#define    VECT_PERIA220_INTA220    220
#define    VECT_PERIA221_INTA221    221
#define    VECT_PERIA222_INTA222    222
#define    VECT_PERIA223_INTA223    223
#define    VECT_PERIA224_INTA224    224
#define    VECT_PERIA225_INTA225    225
#define    VECT_PERIA226_INTA226    226
#define    VECT_PERIA227_INTA227    227
#define    VECT_PERIA228_INTA228    228
#define    VECT_PERIA229_INTA229    229
#define    VECT_PERIA230_INTA230    230
#define    VECT_PERIA231_INTA231    231
#define    VECT_PERIA232_INTA232    232
#define    VECT_PERIA233_INTA233    233
#define    VECT_PERIA234_INTA234    234
#define    VECT_PERIA235_INTA235    235
#define    VECT_PERIA236_INTA236    236
#define    VECT_PERIA237_INTA237    237
#define    VECT_PERIA238_INTA238    238
#define    VECT_PERIA239_INTA239    239
#define    VECT_PERIA240_INTA240    240
#define    VECT_PERIA241_INTA241    241
#define    VECT_PERIA242_INTA242    242
#define    VECT_PERIA243_INTA243    243
#define    VECT_PERIA244_INTA244    244
#define    VECT_PERIA245_INTA245    245
#define    VECT_PERIA246_INTA246    246
#define    VECT_PERIA247_INTA247    247
#define    VECT_PERIA248_INTA248    248
#define    VECT_PERIA249_INTA249    249
#define    VECT_PERIA250_INTA250    250
#define    VECT_PERIA251_INTA251    251
#define    VECT_PERIA252_INTA252    252
#define    VECT_PERIA253_INTA253    253
#define    VECT_PERIA254_INTA254    254
#define    VECT_PERIA255_INTA255    255

#define    MSTP_EXDMAC    SYSTEM.MSTPCRA.BIT.MSTPA29
#define    MSTP_EXDMAC0    SYSTEM.MSTPCRA.BIT.MSTPA29
#define    MSTP_EXDMAC1    SYSTEM.MSTPCRA.BIT.MSTPA29
#define    MSTP_DTC    SYSTEM.MSTPCRA.BIT.MSTPA28
#define    MSTP_DMAC    SYSTEM.MSTPCRA.BIT.MSTPA28
#define    MSTP_DMAC0    SYSTEM.MSTPCRA.BIT.MSTPA28
#define    MSTP_DMAC1    SYSTEM.MSTPCRA.BIT.MSTPA28
#define    MSTP_DMAC2    SYSTEM.MSTPCRA.BIT.MSTPA28
#define    MSTP_DMAC3    SYSTEM.MSTPCRA.BIT.MSTPA28
#define    MSTP_DMAC4    SYSTEM.MSTPCRA.BIT.MSTPA28
#define    MSTP_DMAC5    SYSTEM.MSTPCRA.BIT.MSTPA28
#define    MSTP_DMAC6    SYSTEM.MSTPCRA.BIT.MSTPA28
#define    MSTP_DMAC7    SYSTEM.MSTPCRA.BIT.MSTPA28
#define    MSTP_DA        SYSTEM.MSTPCRA.BIT.MSTPA19
#define    MSTP_S12AD    SYSTEM.MSTPCRA.BIT.MSTPA17
#define    MSTP_S12AD1    SYSTEM.MSTPCRA.BIT.MSTPA16
#define    MSTP_CMT0    SYSTEM.MSTPCRA.BIT.MSTPA15
#define    MSTP_CMT1    SYSTEM.MSTPCRA.BIT.MSTPA15
#define    MSTP_CMT2    SYSTEM.MSTPCRA.BIT.MSTPA14
#define    MSTP_CMT3    SYSTEM.MSTPCRA.BIT.MSTPA14
#define    MSTP_TPU0    SYSTEM.MSTPCRA.BIT.MSTPA13
#define    MSTP_TPU1    SYSTEM.MSTPCRA.BIT.MSTPA13
#define    MSTP_TPU2    SYSTEM.MSTPCRA.BIT.MSTPA13
#define    MSTP_TPU3    SYSTEM.MSTPCRA.BIT.MSTPA13
#define    MSTP_TPU4    SYSTEM.MSTPCRA.BIT.MSTPA13
#define    MSTP_TPU5    SYSTEM.MSTPCRA.BIT.MSTPA13
#define    MSTP_PPG0    SYSTEM.MSTPCRA.BIT.MSTPA11
#define    MSTP_PPG1    SYSTEM.MSTPCRA.BIT.MSTPA10
#define    MSTP_MTU3    SYSTEM.MSTPCRA.BIT.MSTPA9
#define    MSTP_GPT    SYSTEM.MSTPCRA.BIT.MSTPA7
#define    MSTP_GPT0    SYSTEM.MSTPCRA.BIT.MSTPA7
#define    MSTP_GPT1    SYSTEM.MSTPCRA.BIT.MSTPA7
#define    MSTP_GPT2    SYSTEM.MSTPCRA.BIT.MSTPA7
#define    MSTP_GPT3    SYSTEM.MSTPCRA.BIT.MSTPA7
#define    MSTP_TMR0    SYSTEM.MSTPCRA.BIT.MSTPA5
#define    MSTP_TMR1    SYSTEM.MSTPCRA.BIT.MSTPA5
#define    MSTP_TMR2    SYSTEM.MSTPCRA.BIT.MSTPA4
#define    MSTP_TMR3    SYSTEM.MSTPCRA.BIT.MSTPA4
#define    MSTP_CMTW1    SYSTEM.MSTPCRA.BIT.MSTPA1
#define    MSTP_CMTW0    SYSTEM.MSTPCRA.BIT.MSTPA0
#define    MSTP_SCI0    SYSTEM.MSTPCRB.BIT.MSTPB31
#define    MSTP_SMCI0    SYSTEM.MSTPCRB.BIT.MSTPB31
#define    MSTP_SCI1    SYSTEM.MSTPCRB.BIT.MSTPB30
#define    MSTP_SMCI1    SYSTEM.MSTPCRB.BIT.MSTPB30
#define    MSTP_SCI2    SYSTEM.MSTPCRB.BIT.MSTPB29
#define    MSTP_SMCI2    SYSTEM.MSTPCRB.BIT.MSTPB29
#define    MSTP_SCI3    SYSTEM.MSTPCRB.BIT.MSTPB28
#define    MSTP_SMCI3    SYSTEM.MSTPCRB.BIT.MSTPB28
#define    MSTP_SCI4    SYSTEM.MSTPCRB.BIT.MSTPB27
#define    MSTP_SMCI4    SYSTEM.MSTPCRB.BIT.MSTPB27
#define    MSTP_SCI5    SYSTEM.MSTPCRB.BIT.MSTPB26
#define    MSTP_SMCI5    SYSTEM.MSTPCRB.BIT.MSTPB26
#define    MSTP_SCI6    SYSTEM.MSTPCRB.BIT.MSTPB25
#define    MSTP_SMCI6    SYSTEM.MSTPCRB.BIT.MSTPB25
#define    MSTP_SCI7    SYSTEM.MSTPCRB.BIT.MSTPB24
#define    MSTP_SMCI7    SYSTEM.MSTPCRB.BIT.MSTPB24
#define    MSTP_CRC    SYSTEM.MSTPCRB.BIT.MSTPB23
#define    MSTP_DCU    SYSTEM.MSTPCRB.BIT.MSTPB22
#define    MSTP_RIIC0    SYSTEM.MSTPCRB.BIT.MSTPB21
#define    MSTP_USB0    SYSTEM.MSTPCRB.BIT.MSTPB19
#define    MSTP_RSPI0    SYSTEM.MSTPCRB.BIT.MSTPB17
#define    MSTP_EDMAC0    SYSTEM.MSTPCRB.BIT.MSTPB15
#define    MSTP_EDMAC1    SYSTEM.MSTPCRB.BIT.MSTPB14
#define    MSTP_USBHS    SYSTEM.MSTPCRB.BIT.MSTPB12
#define    MSTP_ELC    SYSTEM.MSTPCRB.BIT.MSTPB9
#define    MSTP_TEMPS    SYSTEM.MSTPCRB.BIT.MSTPB8
#define    MSTP_DOC    SYSTEM.MSTPCRB.BIT.MSTPB6
#define    MSTP_SCI12    SYSTEM.MSTPCRB.BIT.MSTPB4
#define    MSTP_SMCI12    SYSTEM.MSTPCRB.BIT.MSTPB4
#define    MSTP_CAN2    SYSTEM.MSTPCRB.BIT.MSTPB2
#define    MSTP_CAN1    SYSTEM.MSTPCRB.BIT.MSTPB1
#define    MSTP_CAN0    SYSTEM.MSTPCRB.BIT.MSTPB0
#define    MSTP_SCIF8    SYSTEM.MSTPCRC.BIT.MSTPC27
#define    MSTP_SCIF9    SYSTEM.MSTPCRC.BIT.MSTPC26
#define    MSTP_SCIF10    SYSTEM.MSTPCRC.BIT.MSTPC25
#define    MSTP_SCIF11    SYSTEM.MSTPCRC.BIT.MSTPC24
#define    MSTP_QSPI    SYSTEM.MSTPCRC.BIT.MSTPC23
#define    MSTP_CAC    SYSTEM.MSTPCRC.BIT.MSTPC19
#define    MSTP_RIIC2    SYSTEM.MSTPCRC.BIT.MSTPC17
#define    MSTP_STBYRAM    SYSTEM.MSTPCRC.BIT.MSTPC7
#define    MSTP_ECCRAM    SYSTEM.MSTPCRC.BIT.MSTPC2
#define    MSTP_RAM0    SYSTEM.MSTPCRC.BIT.MSTPC0
#define    MSTP_AES    SYSTEM.MSTPCRD.BIT.MSTPD31
#define    MSTP_DES    SYSTEM.MSTPCRD.BIT.MSTPD30
#define    MSTP_SHA    SYSTEM.MSTPCRD.BIT.MSTPD29
#define    MSTP_RNG    SYSTEM.MSTPCRD.BIT.MSTPD28
#define    MSTP_SRC    SYSTEM.MSTPCRD.BIT.MSTPD23
#define    MSTP_MMC    SYSTEM.MSTPCRD.BIT.MSTPD21
#define    MSTP_SDHI    SYSTEM.MSTPCRD.BIT.MSTPD19
#define    MSTP_SSI0    SYSTEM.MSTPCRD.BIT.MSTPD15
#define    MSTP_SSI1    SYSTEM.MSTPCRD.BIT.MSTPD14

#define    __IR( x )        ICU.IR[ IR ## x ].BIT.IR
#define     _IR( x )        __IR( x )
#define      IR( x , y )    _IR( _ ## x ## _ ## y )
#define    __DTCE( x )        ICU.DTCER[ DTCE ## x ].BIT.DTCE
#define     _DTCE( x )        __DTCE( x )
#define      DTCE( x , y )    _DTCE( _ ## x ## _ ## y )
#define    __IEN( x )        ICU.IER[ IER ## x ].BIT.IEN ## x
#define     _IEN( x )        __IEN( x )
#define      IEN( x , y )    _IEN( _ ## x ## _ ## y )
#define    __IPR( x )        ICU.IPR[ IPR ## x ].BIT.IPR
#define     _IPR( x )        __IPR( x )
#define      IPR( x , y )    _IPR( _ ## x ## _ ## y )
#define    __VECT( x )        VECT ## x
#define     _VECT( x )        __VECT( x )
#define      VECT( x , y )    _VECT( _ ## x ## _ ## y )
#define    __MSTP( x )        MSTP ## x
#define     _MSTP( x )        __MSTP( x )
#define      MSTP( x )        _MSTP( _ ## x )

#define    BSC        (*(volatile struct st_bsc     *)0x81300)
#define    CAC        (*(volatile struct st_cac     *)0x8B000)
#define    CAN0    (*(volatile struct st_can     *)0x90200)
#define    CAN1    (*(volatile struct st_can     *)0x91200)
#define    CAN2    (*(volatile struct st_can     *)0x92200)
#define    CMT        (*(volatile struct st_cmt     *)0x88000)
#define    CMT0    (*(volatile struct st_cmt0    *)0x88002)
#define    CMT1    (*(volatile struct st_cmt0    *)0x88008)
#define    CMT2    (*(volatile struct st_cmt0    *)0x88012)
#define    CMT3    (*(volatile struct st_cmt0    *)0x88018)
#define    CMTW0    (*(volatile struct st_cmtw    *)0x94200)
#define    CMTW1    (*(volatile struct st_cmtw    *)0x94280)
#define    CRC        (*(volatile struct st_crc     *)0x88280)
#define    DA        (*(volatile struct st_da      *)0x88040)
#define    DMAC    (*(volatile struct st_dmac    *)0x82200)
#define    DMAC0    (*(volatile struct st_dmac0   *)0x82000)
#define    DMAC1    (*(volatile struct st_dmac1   *)0x82040)
#define    DMAC2    (*(volatile struct st_dmac1   *)0x82080)
#define    DMAC3    (*(volatile struct st_dmac1   *)0x820C0)
#define    DMAC4    (*(volatile struct st_dmac1   *)0x82100)
#define    DMAC5    (*(volatile struct st_dmac1   *)0x82140)
#define    DMAC6    (*(volatile struct st_dmac1   *)0x82180)
#define    DMAC7    (*(volatile struct st_dmac1   *)0x821C0)
#define    DOC        (*(volatile struct st_doc     *)0x8B080)
#define    DTC        (*(volatile struct st_dtc     *)0x82400)
#define    ECCRAM    (*(volatile struct st_eccram  *)0x812C0)
#define    EDMAC0    (*(volatile struct st_edmac   *)0xC0000)
#define    EDMAC1    (*(volatile struct st_edmac   *)0xC0200)
#define    EDMACP    (*(volatile struct st_edmacp  *)0xC0400)
#define    ELC        (*(volatile struct st_elc     *)0x8B100)
#define    EPTPC    (*(volatile struct st_eptpc   *)0xC0500)
#define    EPTPCS0    (*(volatile struct st_eptpcs  *)0xC4800)
#define    EPTPCS1    (*(volatile struct st_eptpcs  *)0xC4C00)
#define    ETHERC0    (*(volatile struct st_etherc  *)0xC0100)
#define    ETHERC1    (*(volatile struct st_etherc  *)0xC0300)
#define    EXDMAC    (*(volatile struct st_exdmac  *)0x82A00)
#define    EXDMAC0    (*(volatile struct st_exdmac0 *)0x82800)
#define    EXDMAC1    (*(volatile struct st_exdmac1 *)0x82840)
#define    GPT        (*(volatile struct st_gpt     *)0xC2000)
#define    GPT0    (*(volatile struct st_gpt0    *)0xC2100)
#define    GPT1    (*(volatile struct st_gpt0    *)0xC2180)
#define    GPT2    (*(volatile struct st_gpt0    *)0xC2200)
#define    GPT3    (*(volatile struct st_gpt0    *)0xC2280)
#define    ICU        (*(volatile struct st_icu     *)0x87000)
#define    IWDT    (*(volatile struct st_iwdt    *)0x88030)
#define    MMC        (*(volatile struct st_mmc     *)0x88500)
#define    MPC        (*(volatile struct st_mpc     *)0x8C100)
#define    MPU        (*(volatile struct st_mpu     *)0x86400)
#define    MTU        (*(volatile struct st_mtu     *)0xC120A)
#define    MTU0    (*(volatile struct st_mtu0    *)0xC1290)
#define    MTU1    (*(volatile struct st_mtu1    *)0xC1290)
#define    MTU2    (*(volatile struct st_mtu2    *)0xC1292)
#define    MTU3    (*(volatile struct st_mtu3    *)0xC1200)
#define    MTU4    (*(volatile struct st_mtu4    *)0xC1200)
#define    MTU5    (*(volatile struct st_mtu5    *)0xC1294)
#define    MTU6    (*(volatile struct st_mtu6    *)0xC12A2)
#define    MTU7    (*(volatile struct st_mtu7    *)0xC12A4)
#define    MTU8    (*(volatile struct st_mtu8    *)0xC1298)
#define    PDC        (*(volatile struct st_pdc     *)0xA0500)
#define    POE3    (*(volatile struct st_poe     *)0x8C4C0)
#define    PORT0    (*(volatile struct st_port0   *)0x8C000)
#define    PORT1    (*(volatile struct st_port1   *)0x8C001)
#define    PORT2    (*(volatile struct st_port2   *)0x8C002)
#define    PORT3    (*(volatile struct st_port3   *)0x8C003)
#define    PORT4    (*(volatile struct st_port4   *)0x8C004)
#define    PORT5    (*(volatile struct st_port5   *)0x8C005)
#define    PORT6    (*(volatile struct st_port6   *)0x8C006)
#define    PORT7    (*(volatile struct st_port7   *)0x8C007)
#define    PORT8    (*(volatile struct st_port8   *)0x8C008)
#define    PORT9    (*(volatile struct st_port9   *)0x8C009)
#define    PORTA    (*(volatile struct st_porta   *)0x8C00A)
#define    PORTB    (*(volatile struct st_portb   *)0x8C00B)
#define    PORTC    (*(volatile struct st_portc   *)0x8C00C)
#define    PORTD    (*(volatile struct st_portd   *)0x8C00D)
#define    PORTE    (*(volatile struct st_porte   *)0x8C00E)
#define    PORTF    (*(volatile struct st_portf   *)0x8C00F)
#define    PORTG    (*(volatile struct st_portg   *)0x8C010)
#define    PORTJ    (*(volatile struct st_portj   *)0x8C012)
#define    PPG0    (*(volatile struct st_ppg0    *)0x881E6)
#define    PPG1    (*(volatile struct st_ppg1    *)0x881F0)
#define    QSPI    (*(volatile struct st_qspi    *)0x89E00)
#define    RIIC0    (*(volatile struct st_riic0   *)0x88300)
#define    RIIC2    (*(volatile struct st_riic2   *)0x88340)
#define    RSPI0    (*(volatile struct st_rspi0   *)0xD0100)
#define    RTC        (*(volatile struct st_rtc     *)0x8C400)
#define    RTCB    (*(volatile struct st_rtcb    *)0x8C402)
#define    S12AD    (*(volatile struct st_s12ad   *)0x89000)
#define    S12AD1    (*(volatile struct st_s12ad1  *)0x89104)
#define    SCI0    (*(volatile struct st_sci0    *)0x8A000)
#define    SCI1    (*(volatile struct st_sci0    *)0x8A020)
#define    SCI2    (*(volatile struct st_sci0    *)0x8A040)
#define    SCI3    (*(volatile struct st_sci0    *)0x8A060)
#define    SCI4    (*(volatile struct st_sci0    *)0x8A080)
#define    SCI5    (*(volatile struct st_sci0    *)0x8A0A0)
#define    SCI6    (*(volatile struct st_sci0    *)0x8A0C0)
#define    SCI7    (*(volatile struct st_sci0    *)0x8A0E0)
#define    SCI12    (*(volatile struct st_sci12   *)0x8B300)
//#define    SCIA    (*(volatile struct st_scia    *)0x88484)
//#define    SCIF10A    (*(volatile struct st_scia    *)0xD0042)
//#define    SCIF11A    (*(volatile struct st_scia    *)0xD0062)
#define    SCIF8    (*(volatile struct st_scif    *)0xD0000)
#define    SCIF9    (*(volatile struct st_scif    *)0xD0020)
#define    SCIF10    (*(volatile struct st_scif    *)0xD0040)
#define    SCIF11    (*(volatile struct st_scif    *)0xD0060)
//#define    SCIF8A    (*(volatile struct st_scia    *)0xD0002)
//#define    SCIF9A    (*(volatile struct st_scia    *)0xD0022)
#define    SMCI    (*(volatile struct st_smci    *)0x88480)
#define    SMCI0    (*(volatile struct st_smci0   *)0x8A000)
#define    SMCI1    (*(volatile struct st_smci0   *)0x8A020)
#define    SMCI2    (*(volatile struct st_smci0   *)0x8A040)
#define    SMCI3    (*(volatile struct st_smci0   *)0x8A060)
#define    SMCI4    (*(volatile struct st_smci0   *)0x8A080)
#define    SMCI5    (*(volatile struct st_smci0   *)0x8A0A0)
#define    SMCI6    (*(volatile struct st_smci0   *)0x8A0C0)
#define    SMCI7    (*(volatile struct st_smci0   *)0x8A0E0)
#define    SMCI12    (*(volatile struct st_smci0   *)0x8B300)
//#define    SMCIA    (*(volatile struct st_scia    *)0x88484)
#define    SRC        (*(volatile struct st_src     *)0x98000)
#define    SSI0    (*(volatile struct st_ssi     *)0x8A500)
#define    SSI1    (*(volatile struct st_ssi     *)0x8A540)
#define    SYSTEM    (*(volatile struct st_system  *)0x80000)
#define    TEMPS    (*(volatile struct st_temps   *)0x8C500)
#define    TMR0    (*(volatile struct st_tmr0    *)0x88200)
#define    TMR1    (*(volatile struct st_tmr1    *)0x88201)
#define    TMR2    (*(volatile struct st_tmr0    *)0x88210)
#define    TMR3    (*(volatile struct st_tmr1    *)0x88211)
#define    TMR01    (*(volatile struct st_tmr01   *)0x88204)
#define    TMR23    (*(volatile struct st_tmr01   *)0x88214)
#define    TPU0    (*(volatile struct st_tpu0    *)0x88108)
#define    TPU1    (*(volatile struct st_tpu1    *)0x88108)
#define    TPU2    (*(volatile struct st_tpu2    *)0x8810A)
#define    TPU3    (*(volatile struct st_tpu3    *)0x8810A)
#define    TPU4    (*(volatile struct st_tpu4    *)0x8810C)
#define    TPU5    (*(volatile struct st_tpu5    *)0x8810C)
#define    TPUA    (*(volatile struct st_tpua    *)0x88100)
#define    USB        (*(volatile struct st_usb     *)0xA0400)
#define    USB0    (*(volatile struct st_usb0    *)0xA0000)
#define    USBHS    (*(volatile struct st_usbhs   *)0xD0400)
#define    WDT        (*(volatile struct st_wdt     *)0x88020)
#endif
