home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / MISC / EMXLIB8F.ZIP / EMX / LIB / VIDEO / VSCROLL.C < prev    next >
Encoding:
C/C++ Source or Header  |  1993-01-02  |  1.8 KB  |  69 lines

  1. /* vscroll.c (emx+gcc) -- Copyright (c) 1987-1993 by Eberhard Mattes */
  2.  
  3. #include <stdlib.h>
  4. #include <dos.h>
  5. #define INCL_VIO
  6. #include <os2emx.h>
  7. #include <sys/video.h>
  8. #include "video2.h"
  9.  
  10. void v_scroll (int tl_x, int tl_y, int br_x, int br_y, int count, int flag)
  11. {
  12.   if (count > 0)
  13.     {
  14.       if (_osmode == OS2_MODE)
  15.         {
  16.           BYTE cell[2];
  17.  
  18.           cell[0] = ' ';
  19.           cell[1] = (BYTE)_v_attr;
  20.           switch (flag)
  21.             {
  22.             case V_SCROLL_UP:
  23.               VioScrollUp (tl_y, tl_x, br_y, br_x, count, cell, 0);
  24.               break;
  25.             case V_SCROLL_DOWN:
  26.               VioScrollDn (tl_y, tl_x, br_y, br_x, count, cell, 0);
  27.               break;
  28.             case V_SCROLL_LEFT:
  29.               VioScrollLf (tl_y, tl_x, br_y, br_x, count, cell, 0);
  30.               break;
  31.             case V_SCROLL_RIGHT:
  32.               VioScrollRt (tl_y, tl_x, br_y, br_x, count, cell, 0);
  33.               break;
  34.             case V_SCROLL_CLEAR:
  35.               VioScrollUp (tl_y, tl_x, br_y, br_x, 0xffff, cell, 0);
  36.               break;
  37.             }
  38.         }
  39.       else
  40.         {
  41.           union REGS r;
  42.  
  43.           r.h.al = count;
  44.           switch (flag)
  45.             {
  46.             case V_SCROLL_UP:
  47.               r.h.ah = 0x06;
  48.               break;
  49.             case V_SCROLL_DOWN:
  50.               r.h.ah = 0x07;
  51.               break;
  52.             case V_SCROLL_LEFT:
  53.             case V_SCROLL_RIGHT:
  54.               return;
  55.             case V_SCROLL_CLEAR:
  56.               r.h.ah = 0x06;
  57.               r.h.al = 0;
  58.               break;
  59.             }
  60.           r.h.cl = (unsigned char)tl_x;
  61.           r.h.ch = (unsigned char)tl_y;
  62.           r.h.dl = (unsigned char)br_x;
  63.           r.h.dh = (unsigned char)br_y;
  64.           r.h.bh = (unsigned char)_v_attr;
  65.           _int86 (0x10, &r, &r);
  66.         }
  67.     }
  68. }
  69.