home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1988 / 03 / prolog / scrsave.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-01-06  |  1.8 KB  |  81 lines

  1. /*--------------------------------------------------------*/
  2. /*                      SCRSAVE.C                         */
  3. /*  Mit Turbo Prolog linkfähige Routinen zum Abspeichern  */
  4. /*  und Laden des Grafik-Bildschirmspeichers.             */
  5. /*       (C) M.Schlöter & PASCAL INTERNATIONAL            */
  6.  
  7. #include <stdio.h>
  8. #include <dos.h>
  9. #include <fcntl.h>
  10. #include <io.h>
  11. #include "scrsave.h"
  12.  
  13. void save_screen(Dateiname,Fehler)
  14.   char *Dateiname;
  15.   int *Fehler;
  16. {
  17.   int f;   /* File-Handle */
  18.   int res; /* Resultat von Datei-Operationen */
  19.   char far *scrp;
  20.  
  21.   *Fehler = 0;
  22.   /* Zum Schreiben neu anlegen */
  23.   f = open(Dateiname,O_CREAT | O_WRONLY); 
  24.   if (f == NULL) {  /* Fehler beim öffnen */
  25.     *Fehler = 1;
  26.     return;
  27.   }
  28.   scrp = (char far *)MK_FP(SCRBASE,PAGE0OFF) ;
  29.   res = write(f,scrp,PAGESIZE);
  30.   if (res != PAGESIZE) {
  31.     *Fehler = 2;
  32.     return;
  33.   }
  34.   scrp = (char far *)MK_FP(SCRBASE,PAGE1OFF);
  35.   res = write(f,scrp,PAGESIZE);
  36.   if (res != PAGESIZE) {
  37.     *Fehler = 2;
  38.     return;
  39.   }
  40.   res = close(f);
  41.   if (res) {
  42.     *Fehler = 3;
  43.     return;
  44.   }
  45. }
  46.  
  47. void load_screen(Dateiname,Fehler)
  48.   char *Dateiname;
  49.   int *Fehler;
  50. {
  51.   int f;   /* File-Handle */
  52.   int res; /* Resultat von Datei-Operationen */
  53.   char far *scrp;
  54.  
  55.   *Fehler = 0;
  56.   f = open(Dateiname,O_RDONLY); /* Zum Lesen öffnen */
  57.   if (f == NULL) {  /* Fehler beim öffnen */
  58.     *Fehler = 1;
  59.     return;
  60.   }
  61.   scrp = (char far *)MK_FP(SCRBASE,PAGE0OFF) ;
  62.   res = read(f,scrp,PAGESIZE);
  63.   if (res != PAGESIZE) {
  64.     *Fehler = 4;
  65.     return;
  66.   }
  67.   scrp = (char far *)MK_FP(SCRBASE,PAGE1OFF);
  68.   res = read(f,scrp,PAGESIZE);
  69.   if (res != PAGESIZE) {
  70.     *Fehler = 4;
  71.     return;
  72.   }
  73.   res = close(f);
  74.   if (res) {
  75.     *Fehler = 3;
  76.     return;
  77.   }
  78. }
  79.  
  80.  
  81.