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

  1. /* vputline.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_putline (const char *src, int x, int y, int count)
  11. {
  12.   if (count > 0)
  13.     {
  14.       if (_osmode == OS2_MODE)
  15.         VioWrtCellStr (src, 2 * count, y, x, 0);
  16.       else if (_v_mem != NULL)
  17.         memcpy (_v_mem + (y * _v_width + x) * 2, src, count * 2);
  18.       else
  19.         {
  20.           union REGS r;
  21.           int i;
  22.  
  23.           for (i = 0; i < count; ++i)
  24.             {
  25.               r.h.ah = 0x02;
  26.               r.h.bh = 0;
  27.               r.h.dl = x + i;
  28.               r.h.dh = y;
  29.               _int86 (0x10, &r, &r);
  30.               r.h.ah = 0x09;
  31.               r.h.bh = 0;
  32.               r.h.al = src[0];
  33.               r.h.bl = src[1];
  34.               r.x.cx = 1;
  35.               _int86 (0x10, &r, &r);
  36.               src += 2;
  37.             }
  38.           r.h.ah = 0x02;
  39.           r.h.bh = 0;
  40.           r.h.dl = (unsigned char)_v_x;
  41.           r.h.dh = (unsigned char)_v_y;
  42.           _int86 (0x10, &r, &r);
  43.         }
  44.     }
  45. }
  46.