home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / xmmx.zip / source / mmm_dos.h < prev    next >
C/C++ Source or Header  |  1996-12-14  |  2KB  |  90 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. #define BASE_CONFIG_FILE_NAME "mmm_base.cfg"
  11. //&<<&#include 
  12. #include <conio.h>
  13. #include <direct.h>
  14. #include <dos.h>
  15. #include <process.h>
  16. #include "mmmx.h"
  17. #include "mmmgrep.h"
  18. //&>>&5 0 5 11
  19.  
  20. //&<<&class mmm_Screen;
  21. class mmm_Screen{
  22.   int need;
  23.   int WIDTH,HEIGHT;
  24.   int OldScr,OldCl;
  25.   char far *OldCurs,OldAttr;
  26.   unsigned short far *VMem;
  27.   void Clear();
  28. public:
  29.   mmm_Screen();
  30.   ~mmm_Screen();
  31.   int GetH(){ return HEIGHT; }
  32.   int GetW(){ return WIDTH; }
  33.   int &Need(){ return need; }
  34.   unsigned short far *Vmem(){ return VMem; }
  35.   void View();
  36.   void SetCursor(int x,int y,int attr);
  37.   void ClrCursor();
  38. };
  39. //&>>&9 0 9 D
  40. extern mmm_Screen mmm_screen;
  41.  
  42. //&<<&class mmm_KeyBoard;
  43. #ifdef __TURBOC__
  44. #  define IntArg ...
  45. #else
  46. #  define IntArg
  47. #endif
  48.  
  49.  
  50. #ifdef __386__
  51. #define _far_
  52. #else
  53. #define _far_ far
  54. #endif
  55.  
  56. class mmm_KeyBoard{
  57.     unsigned char keybuf[256];
  58.     volatile unsigned char bbuf,ebuf;
  59.     volatile short code;
  60.     int IsScan(){ return bbuf!=ebuf; }
  61.     void AddScan(unsigned char k);
  62.     void interrupt (far *OldInt9)(IntArg);
  63.     static void interrupt NewInt9(IntArg);
  64. public:
  65.     void InitKeyboardLayout();
  66.     char *InitDefaultAltCase();
  67.     char *AltCase;
  68.     char keys[4][128];
  69.     int LastScanCode;
  70.     void SetACode(int n);
  71.     mmm_KeyBoard();
  72.     ~mmm_KeyBoard();
  73.     int GetScan();
  74. };
  75.   /////// mmmx.err
  76. //&>>&19 0 F 13
  77. //&<<&inline void mmm_KeyBoard::AddScan(unsigned char k){
  78. inline void mmm_KeyBoard::AddScan(unsigned char k){
  79.     if(code!=0x0666) return;
  80.     if(bbuf==(unsigned char)(ebuf+1)){ Beep(); return; }
  81.     keybuf[ebuf++]=k;
  82.   }
  83. //&>>&0 0 0 18
  84. extern mmm_KeyBoard _far_ mmm_KBD;
  85.  
  86. void MkScan(int scancode);
  87.  
  88. #endif
  89. //&>>&F 0 F 0
  90.