home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_200 / 270_01 / video.h < prev   
Text File  |  1979-12-31  |  4KB  |  142 lines

  1. /* HEADER: CUG270;
  2.    TITLE: Video Header File
  3.    DATE: 04/11/1988
  4.    DESCRIPTION: Various video functions
  5.    VERSION: 1.0
  6.    KEYWORDS: VIDEO, BIOS FUNCTIONS
  7.    FILENAME: VIDEO.H
  8.    WARNINGS: Dependant on ROM BIOS
  9.    SEE-ALSO: VID_DEMO.C
  10.    SYSTEM: MS-DOS
  11.    COMPILERS: Turbo C & Microsoft C v4.0
  12.    AUTHORS: Marc Bosser
  13.  
  14.        Comments, questions, bugs & suggestions
  15.     Monday, Wedndesday, Friday, Sunday
  16.     Contact ME: Marc Bosser
  17.             1922 Julia Goldbach
  18.             Ronkonkoma, NY 11779
  19. */
  20.  
  21.         /************************************************/
  22.         /*   File Name:VIDEO.H                       */
  23.         /*   C File:3,573 bytes                       */
  24.         /*   Portability:Direct ROM BIOS calls           */
  25.         /*                                       */
  26.         /* CONTAINS:xy(y,x), ewriteM(y,x,char,color,len)*/
  27.         /*        fill(y1,sr,len,er,color),cursoroff()   */
  28.         /* Total: 4 routines                       */
  29.         /* External: int86, cprintf                   */
  30.         /* User Defined: xy,fill,ewriteM               */
  31.         /************************************************/
  32.  
  33. #define    MAXLENGTH        80        /* MAXLENGTH OF STRING PASSED TO EWRITEM */
  34. #define    VIDEO_BIOS    0x10        /* IBM PC VIDEO BIOS INTERRUPT NUMBER */
  35.  
  36. #ifndef NULL                    /* DEFINE NULL CHARACTER IF NOT DEFINED */
  37. #define NULL 0
  38. #endif
  39.  
  40. /* NOTE:  ALL ROUTINES DO NOT CHECK FOR VALID SCREEN PARAMETERS */
  41. /* Requires that DOS.H be called before compiling this module */
  42.  
  43. #ifdef __TURBOC__
  44. void xy(unsigned char y,unsigned char x);
  45. void cursoroff(void);
  46. void ewriteM(unsigned char y,unsigned char x,unsigned char ch,unsigned short len);
  47. void fill(unsigned char y1,unsigned char x1,unsigned char len,unsigned char x2,
  48.         unsigned char color);
  49. #endif
  50.  
  51. /******************************************************************************/
  52.  
  53. void xy(y,x)
  54. unsigned char y;
  55. unsigned char x;
  56.  
  57.     /* LOCATES THE CURSOR AT POSITION Y,X */
  58.     /* ACTUAL SCREEN COORDS START AT 0,0 BUT FUNCTION SUBTRACTS ONE */
  59.     /* LEGAL VALUES FOR Y ARE 1 TO 80 & X FROM 1 TO 25 */
  60.     /* Portability: Depends on ROM BIOS call 2 */
  61.  
  62. {
  63.  union REGS r;
  64.  
  65.  r.h.ah=2;
  66.  r.h.bh=0;
  67.  r.h.dl=--y;
  68.  r.h.dh=--x;
  69.  int86(VIDEO_BIOS,&r,&r);
  70. }
  71.  
  72. /******************************************************************************/
  73.  
  74. void cursoroff()
  75.  
  76.     /* TURNS THE CURSOR OFF BY PLACING IT OFF THE SCREEN AT (0,25) */
  77.     /* Portability: Depends on ROM BIOS call 2 */
  78.  
  79. {
  80.  union REGS r;
  81.  
  82.  r.h.ah=2;
  83.  r.h.bh=0;
  84.  r.h.dl=0;
  85.  r.h.dh=25;
  86.  int86(VIDEO_BIOS,&r,&r);
  87. }
  88.  
  89. /******************************************************************************/
  90.  
  91. void ewriteM(y,x,ch,len)
  92. unsigned char y;
  93. unsigned char x;
  94. unsigned char ch;
  95. unsigned short len;
  96.  
  97.     /* PRINTS A STRING BY ADDING ALL THE CHARACTERS TOGETHER */
  98.     /* ewriteM:extended write many */
  99.     /* Portability:VANILLA */
  100.  
  101. {
  102.  register unsigned short loop=0;
  103.  unsigned char message[MAXLENGTH];
  104.  
  105.  do {
  106.     message[loop]=ch;
  107.     loop++;
  108.  } while (loop < len);
  109.  message[loop]=NULL;
  110.  xy(y,x);
  111.  cprintf(message);
  112. }
  113.  
  114. /******************************************************************************/
  115.  
  116. void fill(y1,x1,len,x2,color)
  117. unsigned char y1;
  118. unsigned char x1;
  119. unsigned char len;
  120. unsigned char x2;
  121. unsigned char color;
  122.  
  123.     /* FILLS AN AREA OF THE SCREEN IN THE PARAMETER COLOR */
  124.     /* Portability: Depends on ROM BIOS call 6 */
  125.  
  126. {
  127.  union REGS r;
  128.  
  129.  r.h.ah=6;
  130.  r.h.al=0;
  131.  r.h.bh=color;
  132.  r.h.ch=--x1;
  133.  r.h.cl=--y1;
  134.  r.h.dh=x2;
  135.  r.h.dl=y1+len;
  136.  int86(VIDEO_BIOS,&r,&r);
  137. }
  138.  
  139. /******************************************************************************/
  140.  
  141.                     /**** END OF VIDEO.H ****/
  142.