home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / qc25 / include / bios.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-07-25  |  4.6 KB  |  177 lines

  1. /***
  2. *bios.h - Deklarationen für Bios-Schnittstellenfunktionen und
  3. *
  4. *         dazugehörige Definitionen
  5. *    Copyright (c) 1987-1990, Microsoft Corporation.  Alle Rechte vorbehalten.
  6. *
  7. *Zweck:
  8. *    Hier werden Konstanten, Strukturen und Funktionen deklariert, die für
  9. *    Zugriff und Anwendung diverser BIOS-Schnittstellen benutzt werden.
  10. *
  11. ***/
  12.  
  13. #ifndef _MT
  14.  
  15. /* Manifeste Konstanten für serielle BIOS-Kommunikation (RS-232) */
  16.  
  17. /* Serienanschlußvorgänge */
  18.  
  19. #define _COM_INIT    0    /* Serienanschluß initialisieren */
  20. #define _COM_SEND    1    /* Zeichen senden */
  21. #define _COM_RECEIVE    2    /* Zeichen empfangen */
  22. #define _COM_STATUS    3    /* Serienanschluß-Status */
  23.  
  24. /* Initialisierungswerte für Serienanschluß. WICHTIG: Es muß von jeder der
  25.  * folgenden Gruppen (Datenbits, Stopbits, Parität und Baudrate) je ein Wert
  26.  * als Anfangswert bestimmt werden.
  27.  */
  28.  
  29. /* Zeichenlänge */
  30.  
  31. #define _COM_CHR7    2    /* 7-Bit-Zeichen */
  32. #define _COM_CHR8    3    /* 8-Bit-Zeichen */
  33.  
  34. /* Stopbit-Werte - Ein oder Aus */
  35.  
  36. #define _COM_STOP1    0    /* 1 stop bit */
  37. #define _COM_STOP2    4    /* 2 stop bits */
  38.  
  39. /*  Initialisierungwerte für Parität */
  40.  
  41. #define _COM_NOPARITY    0    /* no parity */
  42. #define _COM_ODDPARITY    8    /* odd parity */
  43. #define _COM_EVENPARITY 24    /* even parity */
  44.  
  45. /*  Baudrate-Anfangswerte */
  46.  
  47. #define _COM_110    0    /* 110 baud */
  48. #define _COM_150    32    /* 150 baud */
  49. #define _COM_300    64    /* 300 baud */
  50. #define _COM_600    96    /* 600 baud */
  51. #define _COM_1200    128    /* 1200 baud */
  52. #define _COM_2400    160    /* 2400 baud */
  53. #define _COM_4800    192    /* 4800 baud */
  54. #define _COM_9600    224    /* 9600 baud */
  55.  
  56.  
  57. /* Manifeste Konstanten für BIOS-Plattenhandhabung */
  58.  
  59. /* Platten-Dienstfunktionen */
  60.  
  61. #define _DISK_RESET    0    /* Plattencontroller rücksetzen */
  62. #define _DISK_STATUS    1    /* Plattenstatus holen */
  63. #define _DISK_READ    2    /* Plattensektoren einlesen */
  64. #define _DISK_WRITE    3    /* Plattensektoren schreiben */
  65. #define _DISK_VERIFY    4    /* Plattensektoren prüfen/bestätigen */
  66. #define _DISK_FORMAT    5    /* Plattenspur formatieren */
  67.  
  68. /* Struktur für Senden/Empfang von Information an/von BIOS-Plattenhandhabung */
  69.  
  70. #ifndef _DISKINFO_T_DEFINED
  71.  
  72. struct diskinfo_t {
  73.     unsigned drive;
  74.     unsigned head;
  75.     unsigned track;
  76.     unsigned sector;
  77.     unsigned nsectors;
  78.     void _far *buffer;
  79.     };
  80.  
  81. #define _DISKINFO_T_DEFINED
  82.  
  83. #endif
  84.  
  85.  
  86. /* Manifeste Konstanten für BIOS-Tastaturhandhabung */
  87.  
  88. /* Tastatur-Dienstfunktionen */
  89.  
  90. #define _KEYBRD_READ        0    /* nächstes Zeichen von Tastatur einlesen */
  91. #define _KEYBRD_READY        1    /* auf Tastatureingabe prüfen */
  92. #define _KEYBRD_SHIFTSTATUS    2    /* gegenwärtigen UMSCH-Status holen */
  93.  
  94. /* Dienstfunktionen für erweiterte Tastaturen */
  95.  
  96. #define _NKEYBRD_READ        0x10    /* nächstes Zeichen von Tastatur einlesen */
  97. #define _NKEYBRD_READY        0x11    /* auf Tastatureingabe prüfen */
  98. #define _NKEYBRD_SHIFTSTATUS    0x12    /* gegenwärtigen UMSCH-Status holen */
  99.  
  100.  
  101. /* Manifeste Konstanten für BIOS-Druckerhandhabung */
  102.  
  103. /* Drucker-Dienstfunktionen */
  104.  
  105. #define _PRINTER_WRITE    0    /* Zeichen zum Drucker schreiben */
  106. #define _PRINTER_INIT    1    /* Drucker initialisieren */
  107. #define _PRINTER_STATUS 2    /* Drucker-Status holen */
  108.  
  109.  
  110. /* Manifeste Konstanten für BIOS-Handhabung der Uhrzeit */
  111.  
  112. /* Uhrzeit-Dienstfunktionen */
  113.  
  114. #define _TIME_GETCLOCK    0    /* gegenwärtigen Uhrzeitwert holen */
  115. #define _TIME_SETCLOCK    1    /* gegenwärtigen Uhrzeitwert einrichten */
  116.  
  117.  
  118. #ifndef _REGS_DEFINED
  119.  
  120. /* Wortregister */
  121.  
  122. struct WORDREGS {
  123.     unsigned int ax;
  124.     unsigned int bx;
  125.     unsigned int cx;
  126.     unsigned int dx;
  127.     unsigned int si;
  128.     unsigned int di;
  129.     unsigned int cflag;
  130.     };
  131.  
  132. /* Byteregister */
  133.  
  134. struct BYTEREGS {
  135.     unsigned char al, ah;
  136.     unsigned char bl, bh;
  137.     unsigned char cl, ch;
  138.     unsigned char dl, dh;
  139.     };
  140.  
  141. /* Mehrzweck Registerunion -
  142.  * überlagert die entsprechenden Wort- und Byteregister.
  143.  */
  144.  
  145. union REGS {
  146.     struct WORDREGS x;
  147.     struct BYTEREGS h;
  148.     };
  149.  
  150. /* Segmentregister */
  151.  
  152. struct SREGS {
  153.     unsigned int es;
  154.     unsigned int cs;
  155.     unsigned int ss;
  156.     unsigned int ds;
  157.     };
  158.  
  159. #define _REGS_DEFINED
  160.  
  161. #endif /* _REGS_DEFINED */
  162.  
  163.  
  164. /* Funktionsprototypen */
  165.  
  166. unsigned _cdecl _bios_disk(unsigned, struct diskinfo_t *);
  167. unsigned _cdecl _bios_equiplist(void);
  168. unsigned _cdecl _bios_keybrd(unsigned);
  169. unsigned _cdecl _bios_memsize(void);
  170. unsigned _cdecl _bios_printer(unsigned, unsigned, unsigned);
  171. unsigned _cdecl _bios_serialcom(unsigned, unsigned, unsigned);
  172. unsigned _cdecl _bios_timeofday(unsigned, long *);
  173. int _cdecl int86(int, union REGS *, union REGS *);
  174. int _cdecl int86x(int, union REGS *, union REGS *, struct SREGS *);
  175.  
  176. #endif /* _MT */
  177.