

/***************************************************************************
*
*        Programm:   Sim
*        Modul:      sim.h
*        Funktion:   headerfile
*
*        Datum:            10.07.88
*        letzte Änderung:  05.05.89
*
***************************************************************************/

#include <exec/types.h>

struct liste
{
   struct liste *next;       /* Zeiger auf Liste weiterer Folgebausteine */
   struct device  *device;   /* Zeiger auf Struktur der Folgebausteine */
};


struct leitung
{
   char             *name;   /* Zeiger auf Namen der Variablen */
   USHORT           new;     /* aktueller Wert der Leitung */
   USHORT           old;     /* alter Wert der Leitung */
   struct liste     *liste;  /* Zeiger auf Liste der angeschlossenen
                                Bausteine */
   struct leitung   *next;   /* Zeiger auf nächste Leitung */
   USHORT           init;    /* Initialisierungswert der Leitung */
};


struct device
{
   void           (*device)();    /* Bausteinfunktion */
   struct device  *next;          /* Zeiger auf nächsten Baustein */
   struct device  *succ;          /* Zeiger auf nächsten Baustein
                                     in ready-queue */
   USHORT         out_count;      /* Anzahl der Ausgänge */
   struct leitung **out;          /* Zeiger auf Zeiger-Array auf Ausgänge */
   USHORT         in_count;       /* Anzahl der Eingänge */
   struct leitung **in;           /* Zeiger auf Zeiger-Array auf Eingänge */
   USHORT         *in_puffer;     /* Zeiger auf Array mit Eingangspuffer-
                                     daten */
   int            wait;           /* 0:Baustein ist bereit; 1:Bst. wartet */
   char           *file;          /* Data-File */
   void           (*dev_init)();  /* Baustein-Initialisierungsfunktion */
   USHORT         *state;         /* Zeiger auf Array mit Zustandswerten */
   USHORT         state_count;    /* Anzahl der Zustandswerte */
};


