home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / drdobbs / 1991 / 06 / dflat3 / system.h < prev    next >
Text File  |  1991-05-19  |  4KB  |  134 lines

  1. /* --------------- system.h -------------- */
  2. #ifndef SYSTEM_H
  3. #define SYSTEM_H
  4. /* ----- interrupt vectors ----- */
  5. #define TIMER  8
  6. #define VIDEO  0x10
  7. #define KEYBRD 0x16
  8. #define DOS    0x21
  9. #define CRIT   0x24
  10. #define MOUSE  0x33
  11. /* ------- platform-dependent values ------ */
  12. #define FREQUENCY 100
  13. #define COUNT (1193280L / FREQUENCY)
  14. #define ZEROFLAG 0x40
  15. #define MAXSAVES 50
  16. #define SCREENWIDTH  80
  17. #define SCREENHEIGHT (peekb(0x40,0x84)+1)
  18. /* ----- keyboard BIOS (0x16) functions -------- */
  19. #define READKB 0
  20. #define KBSTAT 1
  21. /* ------- video BIOS (0x10) functions --------- */
  22. #define SETCURSORTYPE 1
  23. #define SETCURSOR     2
  24. #define READCURSOR    3
  25. #define READATTRCHAR  8
  26. #define WRITEATTRCHAR 9
  27. #define HIDECURSOR 0x20
  28. /* ------- the interrupt function registers -------- */
  29. typedef struct {
  30.     int bp,di,si,ds,es,dx,cx,bx,ax,ip,cs,fl;
  31. } IREGS;
  32. /* ---------- cursor prototypes -------- */
  33. void curr_cursor(int *x, int *y);
  34. void cursor(int x, int y);
  35. void hidecursor(void);
  36. void unhidecursor(void);
  37. void savecursor(void);
  38. void restorecursor(void);
  39. void normalcursor(void);
  40. void set_cursor_type(unsigned t);
  41. void videomode(void);
  42. /* ---------- mouse prototypes ---------- */
  43. int mouse_installed(void);
  44. int mousebuttons(void);
  45. void get_mouseposition(int *x, int *y);
  46. void set_mouseposition(int x, int y);
  47. void show_mousecursor(void);
  48. void hide_mousecursor(void);
  49. int button_releases(void);
  50. void resetmouse(void);
  51. #define leftbutton()     (mousebuttons()&1)
  52. #define rightbutton()     (mousebuttons()&2)
  53. #define waitformouse()     while(mousebuttons());
  54. /* ------------ timer macros -------------- */
  55. #define timed_out(timer)         (timer==0)
  56. #define set_timer(timer, secs)     timer=(secs)*182/10+1
  57. #define disable_timer(timer)     timer = -1
  58. #define timer_running(timer)     (timer > 0)
  59. #define countdown(timer)         --timer
  60. #define timer_disabled(timer)     (timer == -1)
  61. /* ----------- video adaptor prototypes ----------- */
  62. int isEGA(void);
  63. int isVGA(void);
  64. void Set25(void);
  65. void Set43(void);
  66. void Set50(void);
  67.  
  68. #ifdef POWERC
  69. long LPARAM(void *);
  70. #else
  71. #define LPARAM(p) (PARAM) (p)
  72. #endif
  73.  
  74. #if (MSC | POWERC)
  75. /* ============= MSC/POWERC Compatibility Macros ============ */
  76. #define BLACK         0
  77. #define BLUE          1
  78. #define GREEN         2
  79. #define CYAN          3
  80. #define RED           4
  81. #define MAGENTA       5
  82. #define BROWN         6
  83. #define LIGHTGRAY     7
  84. #define DARKGRAY      8
  85. #define LIGHTBLUE     9
  86. #define LIGHTGREEN   10
  87. #define LIGHTCYAN    11
  88. #define LIGHTRED     12
  89. #define LIGHTMAGENTA 13
  90. #define YELLOW       14
  91. #define WHITE        15
  92. #define keyhit           kbhit
  93. #undef FP_OFF
  94. #undef FP_SEG
  95. #define FP_OFF(p)    ((unsigned)(p))
  96. #define FP_SEG(p)    ((unsigned)((unsigned long)(p) >> 16))
  97. #endif
  98.  
  99. #ifdef MSC
  100. /* ============= MSC Compatibility Macros ============ */
  101. #define getvect(v)   _dos_getvect(v)
  102. #define setvect(v,f) _dos_setvect(v,f)
  103. #define MK_FP(s,o)   ((void far *) \
  104.                (((unsigned long)(s) << 16) | (unsigned)(o)))
  105. #undef FP_OFF
  106. #undef FP_SEG
  107. #define FP_OFF(p)    ((unsigned)(p))
  108. #define FP_SEG(p)    ((unsigned)((unsigned long)(p) >> 16))
  109. #define poke(a,b,c)  (*((int  far*)MK_FP((a),(b))) = (int)(c))
  110. #define pokeb(a,b,c) (*((char far*)MK_FP((a),(b))) = (char)(c))
  111. #define peek(a,b)    (*((int  far*)MK_FP((a),(b))))
  112. #define peekb(a,b)   (*((char far*)MK_FP((a),(b))))
  113. #define findfirst(p,f,a) _dos_findfirst(p,a,f)
  114. #define findnext(f)      _dos_findnext(f)
  115. #define ffblk            find_t
  116. #define ff_name          name
  117. #define ff_fsize         size
  118. #define ff_attrib        attrib
  119. #define fnsplit          _splitpath
  120. #define fnmerge          _makepath
  121. #define EXTENSION         2
  122. #define FILENAME          4
  123. #define DIRECTORY         8
  124. #define DRIVE            16
  125. #define MAXPATH          80
  126. #define MAXDRIVE          3 
  127. #define MAXDIR           66
  128. #define MAXFILE           9
  129. #define MAXEXT            5
  130. #define setdisk(d)       _dos_setdrive((d)+1, NULL)
  131. #define bioskey          _bios_keybrd
  132. #endif
  133. #endif
  134.