home *** CD-ROM | disk | FTP | other *** search
/ The Pier Shareware 6 / The_Pier_Shareware_Number_6_(The_Pier_Exchange)_(1995).iso / 024 / psi110g.zip / HARDWARE.H < prev    next >
C/C++ Source or Header  |  1994-04-17  |  3KB  |  121 lines

  1. #ifndef _PC_H
  2. #define _PC_H
  3. #define _HARDWARE_H
  4.   
  5. #ifndef _GLOBAL_H
  6. #include "global.h"
  7. #endif
  8.   
  9. #ifndef _CONFIG_H
  10. #include "config.h"
  11. #endif
  12.   
  13. #ifndef _SESSION_H
  14. #include "session.h"
  15. #endif
  16.   
  17. #define NSW 10  /* Number of stopwatch "memories" */
  18.   
  19. struct stopwatch {
  20.     long calls;
  21.     int16 maxval;
  22.     int16 minval;
  23. };
  24.   
  25. struct screen {
  26. #define UNKNOWN_SWAP 0  /* Default */
  27. #define EMS_SWAP 1
  28. #define XMS_SWAP 2  /* not yet working */
  29. #define MEM_SWAP 4
  30. #define FILE_SWAP 8
  31.   
  32.     int stype;       /* Where is the screen saved ? */
  33.     union {
  34.         char *save;     /* Conventional memory screen save buffer */
  35. #ifdef EMS
  36.         struct {
  37.             unsigned int token;
  38.             char *save;
  39.         } ems;
  40. #endif
  41. #ifdef XMS
  42.         int handle;     /* XMS handle */
  43. #endif
  44.         FILE *fp;       /* File pointer to disk image */
  45.     } sv;
  46.     int row;        /* Saved cursor location */
  47.     int col;
  48. };
  49. #define NULLSCREEN  (struct screen *)0
  50.   
  51. extern char *Screen;    /* Pointer to video memory */
  52. extern int Numrows,Numcols;
  53. extern int ScreenSize;
  54. extern int SwapMode;
  55. #ifdef XMS
  56. extern unsigned int ScreenSizeK;   /* Screen size in Kbytes */
  57. #endif
  58. extern struct stopwatch Sw[];
  59. extern int16 Intstk[];  /* Interrupt stack defined in pcgen.asm */
  60. extern void (*Shutdown[])();    /* List of functions to call at shutdown */
  61. extern int Mtasker; /* Type of multitasker, if any */
  62.   
  63. /* In 8250.c: */
  64. void asytimer __ARGS((void));
  65.   
  66. /* In scc.c: */
  67. void scctimer __ARGS((void));
  68. void sccstop __ARGS((void));
  69.   
  70. /* In pc.c: */
  71. void clrbit __ARGS((unsigned port,char bits));
  72. void ctick __ARGS((void));
  73. INTERRUPT  (*getirq __ARGS((unsigned int)) ) __ARGS((void));
  74. void freescreen __ARGS((struct session *sp));
  75. int getmask __ARGS((unsigned irq));
  76. void ioinit __ARGS((void));
  77. void iostop __ARGS((void));
  78. void kbint __ARGS((void));
  79. int kbread __ARGS((void));
  80. int maskoff __ARGS((unsigned irq));
  81. int maskon __ARGS((unsigned irq));
  82. void newscreen __ARGS((struct session *sp));
  83. void pctick __ARGS((void));
  84. void setbit __ARGS((unsigned port,char bits));
  85. int setirq __ARGS((unsigned irq,INTERRUPT (*handler) __ARGS((void))));
  86. void sysreset __ARGS((void));
  87. void systick __ARGS((void));
  88. void writebit __ARGS((unsigned port,char mask,int val));
  89. long bioscnt __ARGS((void));
  90. void UpdateStatus __ARGS((void));
  91.   
  92. /* In pcgen.asm: */
  93. INTERRUPT btick __ARGS((void));
  94. void chktasker __ARGS((void));
  95. void chtimer __ARGS((INTERRUPT (*)()));
  96. unsigned long divrem __ARGS((int32 dividend,int16 divisor));
  97. int16 getss __ARGS((void));
  98. void giveup __ARGS((void));
  99. int kbraw __ARGS((void));
  100. int16 longdiv __ARGS((int16 divisor,int n,int16 *dividend));
  101. int16 longmul __ARGS((int16 multiplier,int n,int16 *multiplicand));
  102. INTERRUPT nullvec __ARGS((void));
  103. void uchtimer __ARGS((void));
  104. int16 clockbits __ARGS((void));
  105.   
  106. /* In stopwatch.asm: */
  107. void swstart __ARGS((void));
  108. int16 stopval __ARGS((void));
  109.   
  110. /* In sw.c: */
  111. void swstop __ARGS((int n));
  112.   
  113. /* In command.asm: */
  114. int start_back __ARGS((void));
  115. int stop_back __ARGS((void));
  116.   
  117. /* in bpq.c */
  118. void bpqtimer __ARGS((void));
  119.   
  120. #endif  /* _PC_H */
  121.