/*---------------------------------------------------------------------------
 * Dateiname   : sim.h
 * Version     : 0.3
 * Zweck       : Deklarationen für das System Integration Modul
 * Organiation : Fachhochschule Hamburg
 * Autor       : Clemens Drews
 * Datum       : 30.11.97
 *---------------------------------------------------------------------------
 */

#ifndef SIM_H
#define SIM_H 1

#include "hwdefs.h"


/* MCR   BITS */

#define  EXOFF    BIT15
#define  FRZSW    BIT14
#define  FRZBM    BIT13
#define  SLVEN    BIT11
#define  SHEN1    BIT9
#define  SHEN0    BIT8
#define  MCRSUPV  BIT7
#define  MM       BIT6
#define  IARB3    BIT3
#define  IARB2    BIT2
#define  IARB1    BIT1
#define  IARB0    BIT0

/* SIMTR BITS */

#define  SOSEL1   BIT7
#define  SOSEL0   BIT6
#define  SHIRQ1   BIT5
#define  SHIRQ0   BIT4
#define  FBIT1    BIT3
#define  FBIT0    BIT2
#define  BWC1     BIT1  
#define  BWC0     BIT0

/* SYNCR BITS     */

#define  SYNCRW   BIT15
#define  SYNCRX   BIT14
#define  Y5       BIT13
#define  Y4       BIT12
#define  Y3       BIT11
#define  Y2       BIT10
#define  Y1       BIT9
#define  Y0       BIT8
#define  EDIV     BIT7
#define  SLIMP    BIT4
#define  SLOCK    BIT3
#define  RSTEN    BIT2
#define  STSIM    BIT1
#define  STEXT    BIT0

/* RSR BITS       */

#define  RSREXT   BIT7
#define  RSRPOW   BIT6
#define  RSRSW    BIT5
#define  RSRHLT   BIT4
#define  RSRLOC   BIT2
#define  RSRSYS   BIT1
#define  RSRTST   BIT0

/* PORT E BITS    */

#define  PORTE7   BIT7
#define  PORTE6   BIT6
#define  PORTE5   BIT5
#define  PORTE4   BIT4
#define  PORTE3   BIT3
#define  PORTE2   BIT2
#define  PORTE1   BIT1
#define  PORTE0   BIT0


#define  PORTEDDR7   BIT7
#define  PORTEDDR6   BIT6
#define  PORTEDDR5   BIT5
#define  PORTEDDR4   BIT4
#define  PORTEDDR3   BIT3
#define  PORTEDDR2   BIT2
#define  PORTEDDR1   BIT1
#define  PORTEDDR0   BIT0


/*   PORT E PIN ASSIGNMENT REG */

#define  PEPA7       BIT7
#define  PEPA6       BIT6
#define  PEPA5       BIT5
#define  PEPA4       BIT4
#define  PEPA3       BIT3
#define  PEPA2       BIT2
#define  PEPA1       BIT1
#define  PEPA0       BIT0

/* PORTF BITS    */

#define  PORTF7   BIT7
#define  PORTF6   BIT6
#define  PORTF5   BIT5
#define  PORTF4   BIT4
#define  PORTF3   BIT3
#define  PORTF2   BIT2
#define  PORTF1   BIT1
#define  PORTF0   BIT0


#define  PORTFDDR7   BIT7
#define  PORTFDDR6   BIT6
#define  PORTFDDR5   BIT5
#define  PORTFDDR4   BIT4
#define  PORTFDDR3   BIT3
#define  PORTFDDR2   BIT2
#define  PORTFDDR1   BIT1
#define  PORTFDDR0   BIT0


/*   PORTF PIN ASSIGNMENT REG */

#define  PFPA7       BIT7
#define  PFPA6       BIT6
#define  PFPA5       BIT5
#define  PFPA4       BIT4
#define  PFPA3       BIT3
#define  PFPA2       BIT2
#define  PFPA1       BIT1
#define  PFPA0       BIT0

/* SYPCR BITS */

#define  SYPCRSWE    BIT7
#define  SYSCRSWP    BIT6
#define  SYSCRSWTI   BIT5
#define  SYSCRSWTO   BIT4
#define  SYSCRHME    BIT3
#define  SYSCRBME    BIT2
#define  SYSCRBMT1   BIT1
#define  SYSCRBMT0   BIT0

/* PICR  BITS  */

#define  PIRQL2      BIT10
#define  PIRQL1      BIT9
#define  PIRQL0      BIT8
#define  PIV7        BIT7
#define  PIV6        BIT6
#define  PIV5        BIT5
#define  PIV4        BIT4
#define  PIV3        BIT3
#define  PIV2        BIT2
#define  PIV1        BIT1
#define  PIV0        BIT0

/* PITR BITS   */


#define  PITRPTP     BIT8
#define  PITR7       BIT7
#define  PITR6       BIT6
#define  PITR5       BIT5
#define  PITR4       BIT4
#define  PITR3       BIT3
#define  PITR2       BIT2
#define  PITR1       BIT1
#define  PITR0       BIT0


/* CSPDR - PORT C Bit Definitions */
#define SIMPC0       BIT0
#define SIMPC1       BIT1
#define SIMPC2       BIT2

typedef struct
{
  UWORD SMCR;    /* 00 */
  UWORD SIMTR;   /* 02 */
  UWORD SYNCR;   /* 04 */
  UBYTE DUMMY1;  /* 06 */
  UBYTE RSR;     /* 07 */
  UWORD SIMTRE;  /* 08 */
  UWORD DUMMY2;  /* 0A */
  UWORD DUMMY3;  /* 0C */
  UWORD DUMMY4;  /* 0E */
  UBYTE DUMMY5;  /* 10 */
  UBYTE PORTE;   /* 11 */
  UBYTE DUMMY6;  /* 12 */
  UBYTE PORTEDDR;/* 13 */
  UBYTE DUMMY7;  /* 14 */
  UBYTE DDRE;    /* 15 */
  UBYTE DUMMY8;  /* 16 */
  UBYTE PEPAR;   /* 17 */
  UBYTE DUMMY9;  /* 18 */
  UBYTE PORTFD1; /* 19 */
  UBYTE DUMMY10; /* 1A */
  UBYTE PORTFD2; /* 1B */
  UBYTE DUMMY11; /* 1C */
  UBYTE DDRF;    /* 1D */
  UBYTE DUMMY12; /* 1E */
  UBYTE PFPAR;   /* 1F */
  UBYTE DUMMY13; /* 20 */
  UBYTE SYPCR;   /* 21 */
  UWORD PICR;    /* 22 */
  UWORD PITR;    /* 24 */
  UBYTE DUMMY14; /* 26 */
  UBYTE SWSR;    /* 27 */
  UWORD DUMMY15; /* 28 */
  UWORD DUMMY16; /* 2A */
  UWORD DUMMY17; /* 2C */
  UWORD DUMMY18; /* 2E */
  UWORD TSTMSRA; /* 30 */
  UWORD TSTMSRB; /* 32 */
  UWORD TSTSC;   /* 34 */  /* TSTSCB AND TSTSCA */
  UWORD TSTRC;   /* 36 */
  UWORD TSTCREG; /* 38 */
  UWORD TSTDREG; /* 3A */
  UWORD DUMMY19; /* 3C */
  UWORD DUMMY20; /* 3E */
  UBYTE DUMMY21; /* 40 */
  UBYTE CSPDR;   /* 41 */ /*Work ends Here*/
  UBYTE DUMMY22; /* 42 */
  UWORD CSPAR0;  /* 44 */
  UWORD CSPAR1;  /* 46 */
  UWORD CSBARBT; /* 48 */
  UWORD CSORBT;  /* 4A */
  UWORD CSBAR0;  /* 4C */
  UWORD CSOR0;   /* 4E */
  UWORD CSBAR1;  /* 50 */
  UWORD CSOR1;   /* 52 */
  UWORD CSBAR2;  /* 54 */
  UWORD CSOR2;   /* 56 */
  UWORD CSBAR3;  /* 58 */
  UWORD CSOR3;   /* 5A */
  UWORD CSBAR4;  /* 5C */
  UWORD CSOR4;   /* 5E */
  UWORD CSBAR5;  /* 60 */
  UWORD CSOR5;   /* 62 */
  UWORD CSBAR6;  /* 64 */
  UWORD CSOR6;   /* 66 */
  UWORD CSBAR7;  /* 68 */
  UWORD CSOR7;   /* 6A */
  UWORD CSBAR8;  /* 6C */
  UWORD CSOR8;   /* 6E */
  UWORD CSBAR9;  /* 70 */
  UWORD CSOR9;   /* 72 */
  UWORD CSBAR10; /* 74 */
  UWORD CSOR10;  /* 76 */
  UWORD FILL8;   /* 78 */
  UWORD FILL9;   /* 7A */
  UWORD FILL10;  /* 7C */
  UWORD FILL11;  /* 7e */
} simstruct ;

#endif /* SIM_H */
