home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c220 / 4.ddi / INC / BIOS.H < prev    next >
Encoding:
C/C++ Source or Header  |  1990-12-16  |  3.1 KB  |  132 lines

  1. /*
  2.  *   bios.h -- non-ANSI 
  3.  *
  4.  *   Functions, structures and constants needed to access
  5.  *   the BIOS services.
  6.  *
  7.  *           Copyright (c) 1990, MetaWare Incorporated
  8.  */
  9.  
  10. #ifndef _BIOS_H
  11. #define _BIOS_H
  12.  
  13. #define _COM_INIT 0
  14. #define _COM_SEND 1
  15. #define _COM_RECEIVE 2
  16. #define _COM_STATUS 3
  17.  
  18. #define _COM_CHR7 2
  19. #define _COM_CHR8 3
  20.  
  21. #define _COM_STOP1 0
  22. #define _COM_STOP2 4
  23.  
  24. #define _COM_NOPARITY 0
  25. #define _COM_ODDPARITY 8
  26. #define _COM_EVENPARITY 24
  27.  
  28. #define _COM_110 0
  29. #define _COM_150 32
  30. #define _COM_300 64
  31. #define _COM_600 96
  32. #define _COM_1200 128
  33. #define _COM_2400 160
  34. #define _COM_4800 192
  35. #define _COM_9600 224
  36.  
  37. #define _DISK_RESET 0
  38. #define _DISK_STATUS 1
  39. #define _DISK_READ 2
  40. #define _DISK_WRITE 3
  41. #define _DISK_VERIFY 4
  42. #define _DISK_FORMAT 5
  43.  
  44. #define _KEYBRD_READ 0
  45. #define _KEYBRD_READY 1
  46. #define _KEYBRD_SHIFTSTATUS 2
  47.  
  48. #define _PRINTER_WRITE 0
  49. #define _PRINTER_INIT 1
  50. #define _PRINTER_STATUS 2
  51.  
  52. #define _TIME_GETCLOCK 0
  53. #define _TIME_SETCLOCK 1
  54.  
  55. extern unsigned _bios_equiplist(void);
  56. extern unsigned _bios_keybrd(unsigned __service);
  57. extern unsigned _bios_memsize(void);
  58. extern unsigned _bios_printer(unsigned __service, unsigned __port, unsigned __data);
  59. extern unsigned _bios_serialcom(unsigned __service, unsigned __port, unsigned __data);
  60. extern unsigned _bios_timeofday(unsigned __service, long * __timeticks);
  61.  
  62.  
  63. #ifndef _REGS_DEFINED
  64. #define _REGS_DEFINED
  65.  
  66. struct _WORDREGS {
  67.     unsigned int ax;
  68.     unsigned int bx;
  69.     unsigned int cx;
  70.     unsigned int dx;
  71.     unsigned int si;
  72.     unsigned int di;
  73.     unsigned int cflag;
  74.     };
  75.  
  76. struct _BYTEREGS {
  77.     unsigned char al, ah, xax[sizeof(int)-2];
  78.     unsigned char bl, bh, xbx[sizeof(int)-2];
  79.     unsigned char cl, ch, xcx[sizeof(int)-2];
  80.     unsigned char dl, dh, xdx[sizeof(int)-2];
  81.     };
  82.  
  83. union _REGS {
  84.     struct _WORDREGS x;
  85.     struct _BYTEREGS h;
  86.     struct _BYTEREGS l;
  87.     };
  88.  
  89. struct _SREGS {
  90.     unsigned short int es;
  91.     unsigned short int cs;
  92.     unsigned short int ss;
  93.     unsigned short int ds;
  94.     };
  95.  
  96. #endif /* _REGS_DEFINED */
  97.  
  98. extern int _int86(int __number, union _REGS * __before, union _REGS * __after);
  99. extern int _int86x(int __number, union _REGS * __before, union _REGS * __after, struct _SREGS * __segregs);
  100.  
  101. #if __HIGHC__
  102. #define REGS _REGS
  103. #define SREGS _SREGS
  104. #define WORDREGS _WORDREGS
  105. #define BYTEREGS _BYTEREGS
  106. #ifndef _DISKINFO_T_DEFINED
  107. #define _DISKINFO_T_DEFINED
  108.  
  109. struct _diskinfo_t {
  110.     unsigned short drive;
  111.     unsigned short head;
  112.     unsigned short track;
  113.     unsigned short sector;
  114.     unsigned short nsectors;
  115.     _Far void *buffer;
  116.     };
  117.  
  118. #endif /* DISKINFO_T_DEFINED */
  119.  
  120. #define diskinfo_t _diskinfo_t
  121.  
  122. /*  _bios_disk is not fully supported by some dos extenders  */
  123. /*  some options cause hard machine hangs  */
  124. extern unsigned _bios_disk(unsigned __service, struct _diskinfo_t * __info);
  125.  
  126. extern int int86(int __number, union REGS * __before, union REGS * __after);
  127. extern int int86x(int __number, union REGS * __before, union REGS * __after, struct SREGS * __segregs);
  128.  
  129. #endif /* __HIGHC__ */
  130.  
  131. #endif /* _BIOS_H */
  132.