home *** CD-ROM | disk | FTP | other *** search
- /* vscroll.c (emx+gcc) -- Copyright (c) 1987-1993 by Eberhard Mattes */
-
- #include <stdlib.h>
- #include <dos.h>
- #define INCL_VIO
- #include <os2emx.h>
- #include <sys/video.h>
- #include "video2.h"
-
- void v_scroll (int tl_x, int tl_y, int br_x, int br_y, int count, int flag)
- {
- if (count > 0)
- {
- if (_osmode == OS2_MODE)
- {
- BYTE cell[2];
-
- cell[0] = ' ';
- cell[1] = (BYTE)_v_attr;
- switch (flag)
- {
- case V_SCROLL_UP:
- VioScrollUp (tl_y, tl_x, br_y, br_x, count, cell, 0);
- break;
- case V_SCROLL_DOWN:
- VioScrollDn (tl_y, tl_x, br_y, br_x, count, cell, 0);
- break;
- case V_SCROLL_LEFT:
- VioScrollLf (tl_y, tl_x, br_y, br_x, count, cell, 0);
- break;
- case V_SCROLL_RIGHT:
- VioScrollRt (tl_y, tl_x, br_y, br_x, count, cell, 0);
- break;
- case V_SCROLL_CLEAR:
- VioScrollUp (tl_y, tl_x, br_y, br_x, 0xffff, cell, 0);
- break;
- }
- }
- else
- {
- union REGS r;
-
- r.h.al = count;
- switch (flag)
- {
- case V_SCROLL_UP:
- r.h.ah = 0x06;
- break;
- case V_SCROLL_DOWN:
- r.h.ah = 0x07;
- break;
- case V_SCROLL_LEFT:
- case V_SCROLL_RIGHT:
- return;
- case V_SCROLL_CLEAR:
- r.h.ah = 0x06;
- r.h.al = 0;
- break;
- }
- r.h.cl = (unsigned char)tl_x;
- r.h.ch = (unsigned char)tl_y;
- r.h.dl = (unsigned char)br_x;
- r.h.dh = (unsigned char)br_y;
- r.h.bh = (unsigned char)_v_attr;
- _int86 (0x10, &r, &r);
- }
- }
- }
-