home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / qc_prog / chap14 / savescrn.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-04-07  |  1.0 KB  |  38 lines

  1. /* savescrn.c -- saves screen, including attribute    */
  2. /*               values, in a file                    */
  3. /*               Uses direct memory access.           */
  4.  
  5. #include <stdio.h>  /* for file-handling */
  6. #include "scrn.h"
  7. #include "grafchar.h"
  8. void Save_screen()
  9. {
  10.     FILE *save;
  11.     char filename[80];
  12.     unsigned char mode;
  13.     unsigned short char_attr;  /* character,attribute */
  14.     int offset;
  15.     VIDMEM screen;
  16.  
  17.      if ((mode = Getvmode()) == TEXTMONO)
  18.           screen = MONMEM;
  19.      else if (mode == TEXTC80 || mode == TEXTBW80)
  20.           screen = CGAMEM;
  21.      else
  22.         exit(1);
  23.     Setcurs(BOTLINE + 1, 0, PAGE);
  24.     printf("Please enter name for save file: ");
  25.     scanf("%s", filename);
  26.     if ((save = fopen(filename,"wb")) == NULL)
  27.         {
  28.         fprintf(stderr,"Can't open %s\n", filename);
  29.         exit(1);
  30.         }
  31.    for (offset = 0; offset < CHARS; offset++)
  32.         {
  33.         char_attr = screen[offset];
  34.         fwrite(&char_attr, 2, 1, save);
  35.         }
  36.    fclose(save);
  37. }
  38.