home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / mmm_pkg.zip / mmm_dos.h < prev    next >
C/C++ Source or Header  |  1996-12-05  |  2KB  |  89 lines

  1. /***************************************************
  2. *   DOS include file for MMMX Editor               *
  3. *   Contains MS-DOS/PHARLAP specific functions     *
  4. ****************************************************/
  5.  
  6. #ifndef __INCLUDED_MMM_DOS__
  7. #define __INCLUDED_MMM_DOS__
  8.  
  9. #define EXECUTER_FILENAME "__mmm__.bat"
  10. //&<<&#include 
  11. #include <conio.h>
  12. #include <direct.h>
  13. #include <dos.h>
  14. #include <process.h>
  15. #include "mmmx.h"
  16. #include "mmmgrep.h"
  17. //&>>&5 0 5 11
  18.  
  19. //&<<&class mmm_Screen;
  20. class mmm_Screen{
  21.   int need;
  22.   int WIDTH,HEIGHT;
  23.   int OldScr,OldCl;
  24.   char far *OldCurs,OldAttr;
  25.   unsigned short far *VMem;
  26.   void Clear();
  27. public:
  28.   mmm_Screen();
  29.   ~mmm_Screen();
  30.   int GetH(){ return HEIGHT; }
  31.   int GetW(){ return WIDTH; }
  32.   int &Need(){ return need; }
  33.   unsigned short far *Vmem(){ return VMem; }
  34.   void View();
  35.   void SetCursor(int x,int y,int attr);
  36.   void ClrCursor();
  37. };
  38. //&>>&9 0 9 D
  39. extern mmm_Screen mmm_screen;
  40.  
  41. //&<<&class mmm_KeyBoard;
  42. #ifdef __TURBOC__
  43. #  define IntArg ...
  44. #else
  45. #  define IntArg
  46. #endif
  47.  
  48.  
  49. #ifdef __386__
  50. #define _far_
  51. #else
  52. #define _far_ far
  53. #endif
  54.  
  55. class mmm_KeyBoard{
  56.     unsigned char keybuf[256];
  57.     volatile unsigned char bbuf,ebuf;
  58.     volatile short code;
  59.     int IsScan(){ return bbuf!=ebuf; }
  60.     void AddScan(unsigned char k);
  61.     void interrupt (far *OldInt9)(IntArg);
  62.     static void interrupt NewInt9(IntArg);
  63. public:
  64.     void InitKeyboardLayout();
  65.     char *InitDefaultAltCase();
  66.     char *AltCase;
  67.     char keys[4][108];
  68.     int LastScanCode;
  69.     void SetACode(int n);
  70.     mmm_KeyBoard();
  71.     ~mmm_KeyBoard();
  72.     int GetScan();
  73. };
  74.   /////// mmmx.err
  75. //&>>&16 0 C 0
  76. //&<<&inline void mmm_KeyBoard::AddScan(unsigned char k){
  77. inline void mmm_KeyBoard::AddScan(unsigned char k){
  78.     if(code!=0x0666) return;
  79.     if(bbuf==(unsigned char)(ebuf+1)){ Beep(); return; }
  80.     keybuf[ebuf++]=k;
  81.   }
  82. //&>>&0 0 0 18
  83. extern mmm_KeyBoard _far_ mmm_KBD;
  84.  
  85. void MkScan(int scancode);
  86.  
  87. #endif
  88. //&>>&E 0 E 0
  89.