home *** CD-ROM | disk | FTP | other *** search
- /*--------------------------------------------------------*/
- /* SCRSAVE.C */
- /* Mit Turbo Prolog linkfähige Routinen zum Abspeichern */
- /* und Laden des Grafik-Bildschirmspeichers. */
- /* (C) M.Schlöter & PASCAL INTERNATIONAL */
-
- #include <stdio.h>
- #include <dos.h>
- #include <fcntl.h>
- #include <io.h>
- #include "scrsave.h"
-
- void save_screen(Dateiname,Fehler)
- char *Dateiname;
- int *Fehler;
- {
- int f; /* File-Handle */
- int res; /* Resultat von Datei-Operationen */
- char far *scrp;
-
- *Fehler = 0;
- /* Zum Schreiben neu anlegen */
- f = open(Dateiname,O_CREAT | O_WRONLY);
- if (f == NULL) { /* Fehler beim öffnen */
- *Fehler = 1;
- return;
- }
- scrp = (char far *)MK_FP(SCRBASE,PAGE0OFF) ;
- res = write(f,scrp,PAGESIZE);
- if (res != PAGESIZE) {
- *Fehler = 2;
- return;
- }
- scrp = (char far *)MK_FP(SCRBASE,PAGE1OFF);
- res = write(f,scrp,PAGESIZE);
- if (res != PAGESIZE) {
- *Fehler = 2;
- return;
- }
- res = close(f);
- if (res) {
- *Fehler = 3;
- return;
- }
- }
-
- void load_screen(Dateiname,Fehler)
- char *Dateiname;
- int *Fehler;
- {
- int f; /* File-Handle */
- int res; /* Resultat von Datei-Operationen */
- char far *scrp;
-
- *Fehler = 0;
- f = open(Dateiname,O_RDONLY); /* Zum Lesen öffnen */
- if (f == NULL) { /* Fehler beim öffnen */
- *Fehler = 1;
- return;
- }
- scrp = (char far *)MK_FP(SCRBASE,PAGE0OFF) ;
- res = read(f,scrp,PAGESIZE);
- if (res != PAGESIZE) {
- *Fehler = 4;
- return;
- }
- scrp = (char far *)MK_FP(SCRBASE,PAGE1OFF);
- res = read(f,scrp,PAGESIZE);
- if (res != PAGESIZE) {
- *Fehler = 4;
- return;
- }
- res = close(f);
- if (res) {
- *Fehler = 3;
- return;
- }
- }
-
-