home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_07 / MARK_WC2.LZH / INCLUDE / BIOS.H < prev    next >
C/C++ Source or Header  |  1988-04-27  |  4KB  |  108 lines

  1. /*
  2.  * bios.h -- header file for Atari ST "bios" functions.
  3.  *
  4.  * Copyright (c) 1986-1987, Mark Williams Company, Chicago
  5.  * This file and its contents may not be copied or distributed
  6.  * without permission.
  7.  */
  8.  
  9. /*
  10.  * Device handles for Bconin(), Bconout(), Bconstat(), and Bcostat().
  11.  */
  12. #define BC_PRT    0    /* Printer port, output, and input */
  13. #define BC_AUX    1    /* Auxiliary port, output, and input */
  14. #define BC_CON    2    /* Console keyboard/display, output, and input */
  15. #define BC_MID    3    /* Midi port, output, and input */
  16. #define BC_KBD    4    /* Intelligent keyboard port, output only */
  17. #define BC_RAW    5    /* Raw screen, output only */
  18. /*
  19.  * Scan codes for miscellaneous keys.  Some of these may be found in the
  20.  * high word of the long returned by Bconin(BC_CON).
  21.  */
  22. #define KC_RET    0x1C    /* Return key */
  23. #define KC_CTRL    0x1D    /* Control key - never returned by Bconin() */
  24. #define KC_LSH    0x2A    /* Left shift key - never returned by Bconin() */
  25. #define KC_RSH    0x36    /* Right shift key - never returned by Bconin() */
  26. #define KC_ALT    0x38    /* Alt key - never returned by Bconin() */
  27. #define KC_CAPS    0x3A    /* Caps lock key - never returned by Bconin() */
  28. #define KC_F1    0x3B    /* Function key 1 */
  29. #define KC_F2    0x3C
  30. #define KC_F3    0x3D
  31. #define KC_F4    0x3E
  32. #define KC_F5    0x3F
  33. #define KC_F6    0x40
  34. #define KC_F7    0x41
  35. #define KC_F8    0x42
  36. #define KC_F9    0x43
  37. #define KC_F10    0x44
  38. #define KC_CLR    0x47    /* Clr Home key */
  39. #define KC_CUP    0x48    /* Cursor up */
  40. #define KC_CLEFT 0x4B    /* Cursor left */
  41. #define KC_CRIGHT 0x4D    /* Cursor right */
  42. #define KC_CDOWN 0x50    /* Cursor down */
  43. #define KC_INS    0x52    /* Insert key */
  44. #define KC_UNDO    0x61    /* Undo key */
  45. #define KC_HELP    0x62    /* Help key */
  46. #define KC_ENT    0x72    /* Enter key */
  47. /*
  48.  * Shift key bits returned by Getshift():
  49.  */
  50. #define GS_RSH    1    /* Right shift key */
  51. #define GS_LSH    2    /* Left shift key */
  52. #define GS_CTRL    4    /* Control key */
  53. #define GS_ALT    8    /* Alt key */
  54. #define GS_CAPS    16    /* Caps Lock key */
  55. #define GS_RMB    32    /* Right mouse button - Clr Home */
  56. #define GS_LMB    64    /* Left mouse button - Insert */
  57. /*
  58.  * Structures referenced by Getmpb():
  59.  */
  60. struct mdb {            /* Memory descriptor block */
  61.     struct mdb *md_next;    /* Link to next descriptor */
  62.     char *md_base;        /* Base of memory block */
  63.     long md_size;        /* Length of memory block */
  64.     long md_proc;        /* Owner's process identifier */
  65. };
  66. struct mpb {            /* Memory parameter block */
  67.     struct mdb *mp_free;    /* Free descriptor list head */
  68.     struct mdb *mp_used;    /* Allocated descriptor list head */
  69.     long    *mp_rove;    /* Roving pointer of unknown significance */
  70. };
  71. /*
  72.  * Strucures referenced by Getbpb() -- BIOS block device parameter block:
  73.  */
  74. struct bpb {
  75.     short    bp_recsiz;    /* Sector size in bytes = 512 */
  76.     short    bp_clsiz;    /* Cluster size in sectors = 2 */
  77.     short    bp_clsizb;    /* Cluster size in bytes = 1024 */
  78.     short    bp_rdlen;    /* Root directory size in sectors */
  79.     short    bp_fsiz;    /* FAT size in sectors */
  80.     short    bp_fatrec;    /* Sector number of second FAT */
  81.     short    bp_datrec;    /* Sector number of data */
  82.     short    bp_numcl;    /* Number of data clusters */
  83.     short    bp_flags;    /* 1 = 16-bit FAT */
  84. };
  85. /*
  86.  * BIOS parameter block, as found in boot block of device.
  87.  * Note that the byte order is that of the 8086:
  88.  */
  89. struct bbpb {
  90.     char    bp_bras[2];    /* branch to boot code */
  91.     char    bp_oem[6];    /* OEM cruft */
  92.     char    bp_serial[3];    /* 24-bit serial number */
  93.     char    bp_bps[2];    /* Sector size in bytes = 512 */
  94.     char    bp_spc;        /* Cluster size in sectors = 2 */
  95.     char    bp_res[2];    /* Reserved sectors */
  96.     char    bp_nfats;    /* Number of FATs = 2 */
  97.     char    bp_ndirs[2];    /* Root directory size in entries */
  98.     char    bp_nsects[2];    /* Total sectors on medium */
  99.     char    bp_media;    /* Medium descriptor */
  100.     char    bp_spf[2];    /* FAT size, in sectors */
  101.     char    bp_spt[2];    /* No. of sectors per track */
  102.     char    bp_nsides[2];    /* No. of sides on medium */
  103.     char    bp_nhid[2];    /* hidden sectors = ignored */
  104.                 /* 482 bytes of boot code */
  105. };
  106.  
  107. /* End of bios.h */
  108.