home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / prof_c / 12sbuf / sb_init.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-08-11  |  817 b   |  40 lines

  1. /*
  2.  *    sb_init -- initialize the buffered screen interface
  3.  */
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <string.h>
  8. #include <local\sbuf.h>
  9.  
  10. /* global data declarations */
  11. struct BUFFER Sbuf;            /* control information */
  12. union CELL Scrnbuf[SB_ROWS][SB_COLS];    /* screen buffer array */
  13.  
  14. int
  15. sb_init()
  16. {
  17.     int i;
  18.     char *um;    /* update mode */
  19.  
  20.     /* set initial parameter values */
  21.     Sbuf.bp = &Scrnbuf[0][0];
  22.     Sbuf.row = Sbuf.col = 0;
  23.     for (i = 0; i < SB_ROWS; ++i) {
  24.         Sbuf.lcol[i] = SB_COLS;
  25.         Sbuf.rcol[i] = 0;
  26.     }
  27.     Sbuf.flags = 0;
  28.  
  29.     /* set screen update mode */
  30.     um = strupr(getenv("UPDATEMODE"));
  31.     if (um == NULL || strcmp(um, "BIOS") == 0)
  32.         Sbuf.flags &= ~SB_DIRECT;
  33.     else if (strcmp(um, "DIRECT") == 0)
  34.         Sbuf.flags |= SB_DIRECT;
  35.     else
  36.         return SB_ERR;
  37.  
  38.     return SB_OK;
  39. }
  40.