home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / utility / disk / ledp27_e / ledpanel.h < prev    next >
Text File  |  1994-05-12  |  5KB  |  155 lines

  1. /*
  2.     LEDPANEL.H - Kontroll-Struktur für das LED-Panel
  3.  
  4.     Die folgende C-Struktur dient gleichzeitig als Patch-Area
  5.     für die Voreinstellungen und zur Kontrolle des LED-Panels
  6.     durch externe Programme, etwa ein Accessory oder CPX-Modul.
  7.     Der 'LEDP'-Cookie enthält einen Zeiger auf diese Struktur.
  8. */
  9.  
  10. #define LEDP_MAGIC 'LEDP'
  11. #define LEDP_VERSION 0x0207
  12. #define LEDP_VERDATE 0x20041994L
  13. #define LEDP_VARLEN 0x20
  14.  
  15. typedef struct
  16. {
  17.     struct
  18.     {
  19.         long magic; /* magische Zahl MAGIC */
  20.         int version; /* Versionsnummer und */
  21.         long verdate; /* Datum des LED-Panels */
  22.         int varlen; /* Länge der Patch-Area in Bytes */
  23.         int light; /* Flag für "light"-Version */
  24.     }    header;
  25.     int active; /* Flag für Anzeige aktiv */
  26.     long ledbits; /* gewählte Laufwerke */
  27.     int alldrvs; /* Flag für angemeldete Laufwerke */
  28.     int delay; /* Nachleuchtdauer der LEDs in VBLs */
  29.     struct
  30.     {
  31.         int top; /* Abstand zum oberen Rand in Zeilen */
  32.         int right; /* Abstand zum rechten Rand in Bytes */
  33.     }    margin;
  34.     struct
  35.     {
  36.         res1: 7; /* reserviert */
  37.         bgcol: 1; /* Hintergrundfarbe des Panels */
  38.         res2: 3; /* reserviert */
  39.         ledfrm: 1; /* Flag für runde LEDs */
  40.         res3: 3; /* reserviert */
  41.         ledcol: 1; /* Flag für farbige LEDs */
  42.     }    color;
  43.     struct
  44.     {
  45.         lftspc: 1; /* linker Rand */
  46.         caps: 1; /* CapsLock-Anzeige */
  47.         cpspc: 1; /* Lücke zwischen R/W und CapsLock */
  48.         rwsym: 1; /* R/W-Symbol */
  49.         rwspc: 1; /* Lücke zwischen LEDs und R/W-Symbol */
  50.         onlya: 1; /* Floppys zusammenfassen */
  51.         hrdspc: 1; /* Extra-Lücke vor Harddisk */
  52.         ramspc: 1; /* Extra-Lücke vor RAM-Disk */
  53.         allspc: 1; /* Extra-Lücken zwischen Laufwerken */
  54.         frespc: 1; /* Lücken für freie Laufwerke zeigen */
  55.         leds: 1; /* LED-Panel anzeigen */
  56.         datspc: 1; /* Abstand zwischen Uhr/Datum und LEDs */
  57.         date: 1; /* Datum */
  58.         clock: 1; /* Uhrensymbol */
  59.         time: 1; /* Uhrzeit */
  60.         rgtspc: 1; /* rechter Rand */
  61.     }    setup;
  62.     int lines; /* Anzahl LED-Zeilen (1/2 oder 0=auto) */
  63.     struct
  64.     {
  65.         char year,sec; /* Flag für Jahr/Sekunden anzeigen */
  66.     }    dtverb;
  67.     struct
  68.     {
  69.         char date,time; /* Null-Zeichen für Datum/Uhrzeit */
  70.     }    zero;
  71.     struct
  72.     {
  73.         char off,on; /* Symbol für Uhrzeit aus/an */
  74.     }    clock;
  75.     struct
  76.     {
  77.         char off,on; /* Symbol für CapsLock aus/an */
  78.     }    caps;
  79.     struct
  80.     {
  81.         char caps,shft; /* Maske für CapsLock/Umschalt-Taste */
  82.     }    keymask;
  83.     struct
  84.     {
  85.         char hrd,ram; /* erstes Laufwerk der Harddisk/RAM-Disk */
  86.     }    fstdrv;
  87.     struct
  88.     {
  89.         int x,y,w,h; /* letztes benutztes Rechteck */
  90.     }    lstrect;
  91.     struct
  92.     {
  93.         char *pointer; /* Zeiger auf zu überwachendes Byte */
  94.         char check; /* Default für zu überprüfendes Byte */
  95.         char last; /* letzter Wert des Bytes */
  96.         char andmask; /* Und-Maske zum Zurücksetzen */
  97.         char ormask; /* Oder-Maske zum Zurücksetzen */
  98.         char restime; /* Zeit zum Zurücksetzen */
  99.         char counter; /* Zähler dafür */
  100.         char bit0; /* Zeichen für 0-Bit */
  101.         char bit1; /* Zeichen für 1-Bit */
  102.         char bytelft; /* Zeichen links vom Byte */
  103.         char bytergt; /* Zeichen links vom Byte */
  104.     }    watch;
  105. }    LEDP;
  106.  
  107. /*
  108.     Offsets (dezimal)
  109.     -----------------
  110.     0 header            32 lines
  111.         0 magic            34 dtverb
  112.         4 version        36 zero
  113.         6 verdate        38 clock
  114.         10 varlen        40 caps
  115.         12 light        42 keymask
  116.     14 active            44 fstdrv
  117.     16 ledbits            46 lstrect
  118.     20 alldrvs            54 watch
  119.     22 delay                54 pointer
  120.     24 margin                58 check
  121.         24 top                60 andmask
  122.         26 right            62 restime
  123.     28 color                64 bit0
  124.     30 setup                66 bytelft
  125. */
  126.  
  127. /*
  128.     Hinweise
  129.     --------
  130.     magic: XBRA-Kennung des LED-Panels
  131.     varlen: Länge der zu speichernden Variablen ab Header
  132.     active:    Bit 0: Anzeige ein/ausschalten,
  133.             Bit 15: Anzeige auffrischen
  134.     lastrect: Letztes zur Anzeige benutztes Grafik-Rechteck
  135.     watch: Für Programmierer zu Debugging-Zwecken,
  136.             hiermit kann ein Byte überwacht werden
  137.         pointer: Zeiger auf das Byte, man muß natürlich    global
  138.             (im Supervisor-Modus) darauf zugreifen können
  139.         check: Unbenutzt, man kann den obigen Zeiger darauf
  140.             zeigen lassen (Zugriff garantiert erlaubt)
  141.         andmask: Nachdem ein Zähler abgelaufen ist, wird
  142.             eine Und-Operation mit dieser Maske durchgeführt,
  143.         ormask: zusätzlich auch noch eine Oder-Operation
  144.         restime: Startwert für den Zähler in VBLs (falls 0,
  145.             dann wird das Byte nie verändert)
  146.         bit0/bit1: Zeichen für 0-Bit und 1-Bit
  147.         bytelft/bytergt: Zeichen für Umrahmung des Bytes
  148.     Empfohlene Vorgehensweise beim Verändern von Parametern:
  149.     1. Header überprüfen (magic, version)
  150.     2. LED-Panel abschalten (active=0)
  151.     3. Änderungen an der Konfiguration vornehmen
  152.     4. Grafik-Rechteck (lstrect) löschen
  153.     5. LED-Panel einschalten und auffrischen (active=0x8001)
  154. */
  155.