home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / m / msc7.zip / DPMIINT.H < prev    next >
C/C++ Source or Header  |  1992-02-11  |  2KB  |  72 lines

  1. //
  2. // (c) Copyright 1992, Qualitas, Inc. All Rights Reserved
  3. //
  4. // dpmiint.h - definitions for InterruptHandler classes
  5. //
  6. // The InterruptHandler and RealInterruptHandler classes provide a 
  7. // means to install and manage interrupt handlers in a DPMI environment.
  8. //
  9. // Example:
  10. //
  11. //
  12. //    #include "dpmiint.h"
  13. //
  14. //    InterruptHandler* pKeyHandler;
  15. //
  16. //    void KeybdIntHandler(dpmiRegs_t iFrame)
  17. //    {
  18. //
  19. //        pKeyHandler->callPrevious(iFrame);  // invoke previous
  20. //                             //  (if desired)
  21. //                            
  22. //         . . . body of handler . . . 
  23. //
  24. //    }
  25. //
  26. //
  27. //    void main(void)
  28. //    {
  29. //        . . . enter protected mode . . .
  30. //
  31. //        pKeyHandler = new InterruptHandler(9, KeybdIntHandler);
  32. //
  33. //        . . . body of program . . .
  34. //
  35. //        delete pKeyHandler;
  36. //        . .  .
  37. //    }
  38. //
  39. // Notes:
  40. //
  41. //    * The class automatically dispatches to the handler such that
  42. //      DS == SS (normal small model operation)
  43. //    * The handler may change registers by modifying members of the
  44. //      dpmiRegs_t structure (see dpmi.h).
  45. //    * Usage guidelines apply equally to RealInterruptHandlers
  46. //    
  47.  
  48. #include "dpmi.h"
  49.  
  50. class InterruptHandler 
  51. {
  52. public:
  53.     InterruptHandler(uChar ord, void (*isr)(dpmiRegs_t));
  54.     ~InterruptHandler(void);
  55.     void callPrevious(dpmiRegs_t&);
  56.  
  57. protected:
  58.     InterruptHandler(uChar ord);
  59.     uChar ordinal;
  60.     void far* previousVector;
  61.     void (*prevDispatch)(dpmiRegs_t);
  62.     int mode; //0=real 1=prot
  63. };
  64.  
  65.  
  66. class RealInterruptHandler : public InterruptHandler
  67. {
  68. public:
  69.     RealInterruptHandler(uChar ord, void (*isr)(dpmiRegs_t));
  70.     ~RealInterruptHandler(void);
  71. };
  72.