home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / cprog / ctrlclib.zip / CTRLC.H < prev    next >
Text File  |  1991-06-01  |  5KB  |  185 lines

  1. /* CTRLC.H - Header file for The Ctrl+C Library of Interrupt Routines  */
  2. /*
  3. ** CTRLCLIB - The CTRL-C Library(Tm)
  4. ** Copyright 1990 Trendtech Corporation, Inc.
  5. ** All Rights Reserved Worldwide
  6. */
  7.  
  8. #ifndef __CTRLCH__
  9. #define __CTRLCH__
  10.  
  11.  
  12. #undef MSC
  13. #ifdef MSC6
  14. #undef MSC5 
  15. #undef QC25
  16. #undef TC20
  17. #define MSC
  18. #endif
  19.  
  20. #ifdef MSC5
  21. #undef MSC6 
  22. #undef QC25
  23. #undef TC20
  24. #define MSC
  25. #endif
  26.  
  27. #ifdef QC25
  28. #undef MSC5 
  29. #undef MSC6
  30. #undef TC20
  31. #define MSC
  32. #endif
  33.  
  34. #if defined( TC20 ) || defined( TCXX )
  35. #ifndef __TURBOC__
  36. #define __TURBOC__
  37. #endif
  38. #undef MSC5 
  39. #undef MSC6
  40. #undef QC25
  41. #undef MSC
  42. #define _interrupt   interrupt
  43. #define _dos_getvect getvect
  44. #define _dos_setvect setvect
  45. #define _outp        outportb
  46. #define _disable     disable
  47. #endif
  48.  
  49.  
  50.  
  51. /* Function Prototypes:  */
  52.  
  53. extern int  CtrlcLibSetup(unsigned int);
  54. extern void CtrlcLibCleanup(void);
  55. extern void CtrlBreak(int);          
  56. extern void CtrlC(int);              
  57. extern void FullCtrlC(int);          
  58. extern unsigned int QueryCtrlC(void);        
  59. extern unsigned int QueryPrtScr(void);        
  60. extern unsigned int QuerySysReq(void);
  61. extern unsigned int QueryKeyPad5(void);
  62. extern void KeyboardHandler(int);
  63. extern void SysReq(int);              
  64. extern void CtrlAltDel(int);         
  65. extern void PrintScreen(int);      
  66. extern void PauseKey(int);         
  67. extern void CtrlS(int);         
  68. extern void CtrlP(int);         
  69. extern void SystemReset(int);
  70. extern void ShowCtrlC(void);
  71. extern int  CapsLock(int);   
  72. extern int  NumLock(int);    
  73. extern int  ScrollLock(int); 
  74. extern int  InsertLock(int); 
  75.  
  76. #define L_OFF          0x01
  77. #define L_ON           0x02
  78. #define L_ALWAYSOFF    0x04
  79. #define L_ALWAYSON     0x08
  80. #define L_TOGGLE       0x10
  81.  
  82. #define KB_FLAG_ADDR          0x00000417  /*  Keyboard flags address */
  83.  
  84. #ifdef TC20
  85. #define FARNULL               NULL
  86. #else
  87. #define FARNULL               (unsigned far *)NULL
  88. #endif
  89.  
  90. #define DISABLE               1           /*  generic function action */
  91. #define ENABLE                2           /*  this too */
  92.  
  93. #define INSTALL               DISABLE     /*  generic function action */
  94. #define REMOVE                ENABLE      /*  this too */
  95.  
  96. #define COLDBOOT              0x0000
  97. #define WARMBOOT              0x1234
  98.  
  99. #define GETBREAKFLAG          1           /*  control-C flag action */
  100. #define SETBREAKFLAG          2           /*  this too */
  101.  
  102. #define CTRLCINT              0x23        /*  return value from QUERY */
  103. #define CTRLBRKINT            0x1B        /*  return value from QUERY */
  104.  
  105. #define SCRLPRS               0x1010      /*  masks LOCK keys as pressed for always on*/
  106. #define NUMLPRS               0x2020
  107. #define CAPLPRS               0x4040
  108.  
  109. #define SCRLMASK              0x0010      /*  masks for toggling LOCK keys */
  110. #define NUMLMASK              0x0020
  111. #define CAPLMASK              0x0040
  112. #define INSLMASK              0x0080
  113.  
  114.  
  115. /*  Definitions for installed traps and interrupts */
  116.  
  117. /*  Ints needing KB handler: */
  118. #define KEYBOARDINT        0x0001
  119. #define FCTRLC             0x0002
  120. #define CTRLALTDEL         0x0004
  121. #define CTRLS              0x0010
  122. #define CTRLP              0x0020
  123. #define CTRLPRTSCR         0x0040
  124. #define SYSREQ             0x0080
  125.  
  126. /*  Ints that don't need the KB handler: */
  127. #define CTRLC              0x0100
  128. #define CTRLBREAK          0x0200
  129. #define PRINTSCREEN        0x0400
  130. #define SYSTEMBOOT         0x0800
  131. #define CTRL2              0x1000
  132. #define ALT3               0x2000
  133. #define PAUSEKEY           0x4000
  134. #define spare4             0x8000
  135.  
  136.  
  137.  
  138.  
  139. /* Global variables */
  140.  
  141. extern unsigned int KB_Make, KB_Break;
  142.  
  143. extern struct ctrlclibflags
  144.    {
  145.    unsigned int KBints;    /*  bit map of INTS requiring INT 09 handler */
  146.                            /*  bit 0 = KEYBOARD  */
  147.                            /*  bit 1 = Full CTRLC trapped (capture ^C) */
  148.                            /*  bit 2 = CTRL+ALT+DEL trapped */
  149.                            /*  bit 3 = "AlwaysFlag" 1=set; 0=not set */
  150.                            /*  bit 4 = CTRL+S trapped (DOS screen pause) */
  151.                            /*  bit 5 = CTRL+P trapped (Print Screen) */
  152.                            /*  bit 6 = AlwaysFlag trapped */
  153.                            /*  bit 7 = SysReq trapped (system request) */
  154.  
  155.  
  156.    unsigned int Ints;      /*  bit map of INT handlers NOT requiring KB handler */
  157.                            /*  bit 8 =  CTRLC trapped */
  158.                            /*  bit 9 =  CTRL-BREAK trapped */
  159.                            /*  bit 10 = PRINT SCREEN trapped */
  160.                            /*  bit 11 = Warm Boot */
  161.    unsigned int MakeBreak;
  162.    unsigned int BreakFlag;
  163.    unsigned int BootFlag;
  164.    unsigned int PauseFlag;
  165.    unsigned int PrtScrFlag;
  166.    unsigned int SysReqFlag;
  167.    unsigned int KeyPad5Flag;
  168.  
  169.    unsigned int AlwaysFlag;/*  bit field for LOCK'ing keys */
  170.                            /*  bit 1 = Scroll Lock */
  171.                            /*  bit 2 = Num Lock */
  172.                            /*  bit 3 = Caps Lock */
  173.                            /*  bit 4 = Insert Key */
  174.    unsigned int scrALWAYSMASK;
  175.    unsigned int numALWAYSMASK;
  176.    unsigned int capALWAYSMASK;
  177.    unsigned int insALWAYSMASK;
  178.  
  179.    } cl;      /* all variables initialized in CL_COMM.C */
  180.  
  181. #endif  /* __CTRLCH__ */
  182.  
  183. /* ---------------------------END OF HEADER------------------------------- */
  184.  
  185.