home *** CD-ROM | disk | FTP | other *** search
- /***
- *bios.h - Deklarationen für Bios-Schnittstellenfunktionen und
- *
- * dazugehörige Definitionen
- * Copyright (c) 1987-1990, Microsoft Corporation. Alle Rechte vorbehalten.
- *
- *Zweck:
- * Hier werden Konstanten, Strukturen und Funktionen deklariert, die für
- * Zugriff und Anwendung diverser BIOS-Schnittstellen benutzt werden.
- *
- ***/
-
- #ifndef _MT
-
- /* Manifeste Konstanten für serielle BIOS-Kommunikation (RS-232) */
-
- /* Serienanschlußvorgänge */
-
- #define _COM_INIT 0 /* Serienanschluß initialisieren */
- #define _COM_SEND 1 /* Zeichen senden */
- #define _COM_RECEIVE 2 /* Zeichen empfangen */
- #define _COM_STATUS 3 /* Serienanschluß-Status */
-
- /* Initialisierungswerte für Serienanschluß. WICHTIG: Es muß von jeder der
- * folgenden Gruppen (Datenbits, Stopbits, Parität und Baudrate) je ein Wert
- * als Anfangswert bestimmt werden.
- */
-
- /* Zeichenlänge */
-
- #define _COM_CHR7 2 /* 7-Bit-Zeichen */
- #define _COM_CHR8 3 /* 8-Bit-Zeichen */
-
- /* Stopbit-Werte - Ein oder Aus */
-
- #define _COM_STOP1 0 /* 1 stop bit */
- #define _COM_STOP2 4 /* 2 stop bits */
-
- /* Initialisierungwerte für Parität */
-
- #define _COM_NOPARITY 0 /* no parity */
- #define _COM_ODDPARITY 8 /* odd parity */
- #define _COM_EVENPARITY 24 /* even parity */
-
- /* Baudrate-Anfangswerte */
-
- #define _COM_110 0 /* 110 baud */
- #define _COM_150 32 /* 150 baud */
- #define _COM_300 64 /* 300 baud */
- #define _COM_600 96 /* 600 baud */
- #define _COM_1200 128 /* 1200 baud */
- #define _COM_2400 160 /* 2400 baud */
- #define _COM_4800 192 /* 4800 baud */
- #define _COM_9600 224 /* 9600 baud */
-
-
- /* Manifeste Konstanten für BIOS-Plattenhandhabung */
-
- /* Platten-Dienstfunktionen */
-
- #define _DISK_RESET 0 /* Plattencontroller rücksetzen */
- #define _DISK_STATUS 1 /* Plattenstatus holen */
- #define _DISK_READ 2 /* Plattensektoren einlesen */
- #define _DISK_WRITE 3 /* Plattensektoren schreiben */
- #define _DISK_VERIFY 4 /* Plattensektoren prüfen/bestätigen */
- #define _DISK_FORMAT 5 /* Plattenspur formatieren */
-
- /* Struktur für Senden/Empfang von Information an/von BIOS-Plattenhandhabung */
-
- #ifndef _DISKINFO_T_DEFINED
-
- struct diskinfo_t {
- unsigned drive;
- unsigned head;
- unsigned track;
- unsigned sector;
- unsigned nsectors;
- void _far *buffer;
- };
-
- #define _DISKINFO_T_DEFINED
-
- #endif
-
-
- /* Manifeste Konstanten für BIOS-Tastaturhandhabung */
-
- /* Tastatur-Dienstfunktionen */
-
- #define _KEYBRD_READ 0 /* nächstes Zeichen von Tastatur einlesen */
- #define _KEYBRD_READY 1 /* auf Tastatureingabe prüfen */
- #define _KEYBRD_SHIFTSTATUS 2 /* gegenwärtigen UMSCH-Status holen */
-
- /* Dienstfunktionen für erweiterte Tastaturen */
-
- #define _NKEYBRD_READ 0x10 /* nächstes Zeichen von Tastatur einlesen */
- #define _NKEYBRD_READY 0x11 /* auf Tastatureingabe prüfen */
- #define _NKEYBRD_SHIFTSTATUS 0x12 /* gegenwärtigen UMSCH-Status holen */
-
-
- /* Manifeste Konstanten für BIOS-Druckerhandhabung */
-
- /* Drucker-Dienstfunktionen */
-
- #define _PRINTER_WRITE 0 /* Zeichen zum Drucker schreiben */
- #define _PRINTER_INIT 1 /* Drucker initialisieren */
- #define _PRINTER_STATUS 2 /* Drucker-Status holen */
-
-
- /* Manifeste Konstanten für BIOS-Handhabung der Uhrzeit */
-
- /* Uhrzeit-Dienstfunktionen */
-
- #define _TIME_GETCLOCK 0 /* gegenwärtigen Uhrzeitwert holen */
- #define _TIME_SETCLOCK 1 /* gegenwärtigen Uhrzeitwert einrichten */
-
-
- #ifndef _REGS_DEFINED
-
- /* Wortregister */
-
- struct WORDREGS {
- unsigned int ax;
- unsigned int bx;
- unsigned int cx;
- unsigned int dx;
- unsigned int si;
- unsigned int di;
- unsigned int cflag;
- };
-
- /* Byteregister */
-
- struct BYTEREGS {
- unsigned char al, ah;
- unsigned char bl, bh;
- unsigned char cl, ch;
- unsigned char dl, dh;
- };
-
- /* Mehrzweck Registerunion -
- * überlagert die entsprechenden Wort- und Byteregister.
- */
-
- union REGS {
- struct WORDREGS x;
- struct BYTEREGS h;
- };
-
- /* Segmentregister */
-
- struct SREGS {
- unsigned int es;
- unsigned int cs;
- unsigned int ss;
- unsigned int ds;
- };
-
- #define _REGS_DEFINED
-
- #endif /* _REGS_DEFINED */
-
-
- /* Funktionsprototypen */
-
- unsigned _cdecl _bios_disk(unsigned, struct diskinfo_t *);
- unsigned _cdecl _bios_equiplist(void);
- unsigned _cdecl _bios_keybrd(unsigned);
- unsigned _cdecl _bios_memsize(void);
- unsigned _cdecl _bios_printer(unsigned, unsigned, unsigned);
- unsigned _cdecl _bios_serialcom(unsigned, unsigned, unsigned);
- unsigned _cdecl _bios_timeofday(unsigned, long *);
- int _cdecl int86(int, union REGS *, union REGS *);
- int _cdecl int86x(int, union REGS *, union REGS *, struct SREGS *);
-
- #endif /* _MT */
-