home *** CD-ROM | disk | FTP | other *** search
/ PC Extra Super CD 1998 January / PCPLUS131.iso / DJGPP / V2 / DJDEV201.ZIP / include / bios.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-01-23  |  4.1 KB  |  115 lines

  1. /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
  2. #ifndef __dj_include_bios_h_
  3. #define __dj_include_bios_h_
  4.  
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8.  
  9. #ifndef __dj_ENFORCE_ANSI_FREESTANDING
  10.  
  11. #ifndef __STRICT_ANSI__
  12.  
  13. #ifndef _POSIX_SOURCE
  14.  
  15. int  bioscom(int _cmd, char _data, int _port);
  16. int  biosdisk(int _cmd, int _drive, int _head, int _track, int _sector,
  17.           int _nsects, void *_buffer);
  18. int  biosequip(void);
  19. int  bioskey(int cmd);
  20. int  biosmemory(void);
  21. int  biosprint(int _cmd, int _byte, int _port);
  22. long biostime(int _cmd, long _newtime);
  23.  
  24. /*
  25.  *  For compatibility with other DOS C compilers.
  26.  */
  27.  
  28. /* Disk parameters for _bios_disk() function. */
  29. struct _diskinfo_t {
  30.   unsigned drive;       /* Drive number. */
  31.   unsigned head;        /* Head number. */
  32.   unsigned track;       /* Track number. */
  33.   unsigned sector;      /* Sector number. */
  34.   unsigned nsectors;    /* Number of sectors to read/write/verify. */
  35.   void    *buffer;      /* Buffer for reading/writing/verifying. */
  36. };
  37. #define diskinfo_t _diskinfo_t
  38.  
  39. /* Constants for _bios_disk() function. */
  40. #define _DISK_RESET        0     /* Reset disk controller. */
  41. #define _DISK_STATUS       1     /* Get disk status. */
  42. #define _DISK_READ         2     /* Read disk sectors. */
  43. #define _DISK_WRITE        3     /* Write disk sectors. */
  44. #define _DISK_VERIFY       4     /* Verify disk sectors. */
  45. #define _DISK_FORMAT       5     /* Format disk track. */
  46.  
  47. /* Constants fot _bios_serialcom() function. */
  48. #define _COM_INIT          0     /* Init serial port. */
  49. #define _COM_SEND          1     /* Send character. */
  50. #define _COM_RECEIVE       2     /* Receive character. */
  51. #define _COM_STATUS        3     /* Get serial port status. */
  52.  
  53. #define _COM_CHR7          2     /* 7 bits characters. */
  54. #define _COM_CHR8          3     /* 8 bits characters. */
  55.  
  56. #define _COM_STOP1         0     /* 1 stop bit. */
  57. #define _COM_STOP2         4     /* 2 stop bits. */
  58.  
  59. #define _COM_NOPARITY      0     /* No parity. */
  60. #define _COM_ODDPARITY     8     /* Odd parity. */
  61. #define _COM_SPACEPARITY   16    /* Space parity. */
  62. #define _COM_EVENPARITY    24    /* Even parity. */
  63.  
  64. #define _COM_110           0     /* 110 baud. */
  65. #define _COM_150           32    /* 150 baud. */
  66. #define _COM_300           64    /* 300 baud. */
  67. #define _COM_600           96    /* 600 baud. */
  68. #define _COM_1200          128   /* 1200 baud. */
  69. #define _COM_2400          160   /* 2400 baud. */
  70. #define _COM_4800          192   /* 4800 baud. */
  71. #define _COM_9600          224   /* 9600 baud. */
  72.  
  73. /* Constants for _bios_keybrd() function. */
  74. #define _KEYBRD_READ          0     /* Read character. */
  75. #define _KEYBRD_READY         1     /* Check character. */
  76. #define _KEYBRD_SHIFTSTATUS   2     /* Get shift status. */
  77.  
  78. #define _NKEYBRD_READ         0x10  /* Read extended character. */
  79. #define _NKEYBRD_READY        0x11  /* Check extended character. */
  80. #define _NKEYBRD_SHIFTSTATUS  0x12  /* Get exteded shift status. */
  81.  
  82. /* Constans for _bios_printer() function. */
  83. #define _PRINTER_WRITE     0     /* Write character. */
  84. #define _PRINTER_INIT      1     /* Initialize printer. */
  85. #define _PRINTER_STATUS    2     /* Get printer status. */
  86.  
  87. /* Constants for _bios_timeofday() function. */
  88. #define _TIME_GETCLOCK     0     /* Get current clock count. */
  89. #define _TIME_SETCLOCK     1     /* Set current clock count. */
  90.  
  91. #define _bios_equiplist()           ((unsigned)biosequip())
  92. #define _bios_memsize()             ((unsigned)biosmemory())
  93. #define _bios_printer(_c, _p, _d)   ((unsigned)biosprint(_c, _d, _p))
  94. #define _bios_serialcom(_c, _p, _d) ((unsigned)bioscom(_c, _d, _p))
  95. #define _bios_keybrd(_c)            ((unsigned)bioskey(_c))
  96.  
  97. unsigned _bios_disk(unsigned _cmd, struct _diskinfo_t *_di);
  98. unsigned _bios_timeofday(unsigned _cmd, unsigned long *_timeval);
  99.  
  100. /* For int86(), int86x() and union REGS. */
  101. #include <dos.h>
  102.  
  103. #endif /* !_POSIX_SOURCE */
  104. #endif /* !__STRICT_ANSI__ */
  105. #endif /* !__dj_ENFORCE_ANSI_FREESTANDING */
  106.  
  107. #ifndef __dj_ENFORCE_FUNCTION_CALLS
  108. #endif /* !__dj_ENFORCE_FUNCTION_CALLS */
  109.  
  110. #ifdef __cplusplus
  111. }
  112. #endif
  113.  
  114. #endif /* !__dj_include_bios_h_ */
  115.