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

  1. /* recall.c -- displays previously stored screen,     */
  2. /*             including attributes.  Uses DMA.       */
  3. /* Program list: recall.c, scrfun.c                   */
  4. /* User include files: scrn.h, grafchar.h             */
  5. /* Note: activate Screen Swapping On in Debug menu    */
  6.  
  7. #include <stdio.h>
  8. #include <conio.h>
  9. #include "scrn.h"
  10. #include "grafchar.h"
  11.  
  12. main(ac, ar)
  13. int ac;
  14. char *ar[];
  15. {
  16.      unsigned char mode;
  17.      unsigned short char_attr;
  18.      FILE *save;
  19.      unsigned int offset;
  20.      char filename[81];
  21.      VIDMEM screen;
  22.  
  23.      if (ac < 2)
  24.           {
  25.           fprintf(stderr, "Usage: %s filename\n", ar[0]);
  26.           exit(1);
  27.           }
  28.  
  29.      if ((save = fopen(ar[1],"rb")) == NULL)
  30.           {
  31.           fprintf(stderr, "Can't open %s\n", ar[1]);
  32.           exit(1);
  33.           }
  34.  
  35.      if ((mode = Getvmode()) == TEXTMONO)
  36.           screen = MONMEM;
  37.      else if (mode == TEXTC80 || mode == TEXTBW80)
  38.           screen = CGAMEM;
  39.      else
  40.         exit(1);
  41.  
  42.      Clearscr();
  43.      for (offset = 0; offset < CHARS; offset++)
  44.           {
  45.           fread(&char_attr, 2, 1, save);
  46.           screen[offset] = char_attr;
  47.           }
  48.      fclose(save);
  49.      Setcurs(23, 0, PAGE);
  50.      getch();   /* anti scrolling for QC environment */
  51. }
  52.