home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
utility
/
disk
/
ledp27_e
/
ledpanel.h
< prev
next >
Wrap
Text File
|
1994-05-12
|
5KB
|
155 lines
/*
LEDPANEL.H - Kontroll-Struktur für das LED-Panel
Die folgende C-Struktur dient gleichzeitig als Patch-Area
für die Voreinstellungen und zur Kontrolle des LED-Panels
durch externe Programme, etwa ein Accessory oder CPX-Modul.
Der 'LEDP'-Cookie enthält einen Zeiger auf diese Struktur.
*/
#define LEDP_MAGIC 'LEDP'
#define LEDP_VERSION 0x0207
#define LEDP_VERDATE 0x20041994L
#define LEDP_VARLEN 0x20
typedef struct
{
struct
{
long magic; /* magische Zahl MAGIC */
int version; /* Versionsnummer und */
long verdate; /* Datum des LED-Panels */
int varlen; /* Länge der Patch-Area in Bytes */
int light; /* Flag für "light"-Version */
} header;
int active; /* Flag für Anzeige aktiv */
long ledbits; /* gewählte Laufwerke */
int alldrvs; /* Flag für angemeldete Laufwerke */
int delay; /* Nachleuchtdauer der LEDs in VBLs */
struct
{
int top; /* Abstand zum oberen Rand in Zeilen */
int right; /* Abstand zum rechten Rand in Bytes */
} margin;
struct
{
res1: 7; /* reserviert */
bgcol: 1; /* Hintergrundfarbe des Panels */
res2: 3; /* reserviert */
ledfrm: 1; /* Flag für runde LEDs */
res3: 3; /* reserviert */
ledcol: 1; /* Flag für farbige LEDs */
} color;
struct
{
lftspc: 1; /* linker Rand */
caps: 1; /* CapsLock-Anzeige */
cpspc: 1; /* Lücke zwischen R/W und CapsLock */
rwsym: 1; /* R/W-Symbol */
rwspc: 1; /* Lücke zwischen LEDs und R/W-Symbol */
onlya: 1; /* Floppys zusammenfassen */
hrdspc: 1; /* Extra-Lücke vor Harddisk */
ramspc: 1; /* Extra-Lücke vor RAM-Disk */
allspc: 1; /* Extra-Lücken zwischen Laufwerken */
frespc: 1; /* Lücken für freie Laufwerke zeigen */
leds: 1; /* LED-Panel anzeigen */
datspc: 1; /* Abstand zwischen Uhr/Datum und LEDs */
date: 1; /* Datum */
clock: 1; /* Uhrensymbol */
time: 1; /* Uhrzeit */
rgtspc: 1; /* rechter Rand */
} setup;
int lines; /* Anzahl LED-Zeilen (1/2 oder 0=auto) */
struct
{
char year,sec; /* Flag für Jahr/Sekunden anzeigen */
} dtverb;
struct
{
char date,time; /* Null-Zeichen für Datum/Uhrzeit */
} zero;
struct
{
char off,on; /* Symbol für Uhrzeit aus/an */
} clock;
struct
{
char off,on; /* Symbol für CapsLock aus/an */
} caps;
struct
{
char caps,shft; /* Maske für CapsLock/Umschalt-Taste */
} keymask;
struct
{
char hrd,ram; /* erstes Laufwerk der Harddisk/RAM-Disk */
} fstdrv;
struct
{
int x,y,w,h; /* letztes benutztes Rechteck */
} lstrect;
struct
{
char *pointer; /* Zeiger auf zu überwachendes Byte */
char check; /* Default für zu überprüfendes Byte */
char last; /* letzter Wert des Bytes */
char andmask; /* Und-Maske zum Zurücksetzen */
char ormask; /* Oder-Maske zum Zurücksetzen */
char restime; /* Zeit zum Zurücksetzen */
char counter; /* Zähler dafür */
char bit0; /* Zeichen für 0-Bit */
char bit1; /* Zeichen für 1-Bit */
char bytelft; /* Zeichen links vom Byte */
char bytergt; /* Zeichen links vom Byte */
} watch;
} LEDP;
/*
Offsets (dezimal)
-----------------
0 header 32 lines
0 magic 34 dtverb
4 version 36 zero
6 verdate 38 clock
10 varlen 40 caps
12 light 42 keymask
14 active 44 fstdrv
16 ledbits 46 lstrect
20 alldrvs 54 watch
22 delay 54 pointer
24 margin 58 check
24 top 60 andmask
26 right 62 restime
28 color 64 bit0
30 setup 66 bytelft
*/
/*
Hinweise
--------
magic: XBRA-Kennung des LED-Panels
varlen: Länge der zu speichernden Variablen ab Header
active: Bit 0: Anzeige ein/ausschalten,
Bit 15: Anzeige auffrischen
lastrect: Letztes zur Anzeige benutztes Grafik-Rechteck
watch: Für Programmierer zu Debugging-Zwecken,
hiermit kann ein Byte überwacht werden
pointer: Zeiger auf das Byte, man muß natürlich global
(im Supervisor-Modus) darauf zugreifen können
check: Unbenutzt, man kann den obigen Zeiger darauf
zeigen lassen (Zugriff garantiert erlaubt)
andmask: Nachdem ein Zähler abgelaufen ist, wird
eine Und-Operation mit dieser Maske durchgeführt,
ormask: zusätzlich auch noch eine Oder-Operation
restime: Startwert für den Zähler in VBLs (falls 0,
dann wird das Byte nie verändert)
bit0/bit1: Zeichen für 0-Bit und 1-Bit
bytelft/bytergt: Zeichen für Umrahmung des Bytes
Empfohlene Vorgehensweise beim Verändern von Parametern:
1. Header überprüfen (magic, version)
2. LED-Panel abschalten (active=0)
3. Änderungen an der Konfiguration vornehmen
4. Grafik-Rechteck (lstrect) löschen
5. LED-Panel einschalten und auffrischen (active=0x8001)
*/