#include "\include\define.h" #include "\include\gemdefs.h"/**/ #include "\include\osbind.h"/**/ #define GRMODE 0 /* graphics mode 0 (320x200) */ #define FSIZE 32034 /* size of DEGAS save-file */ short palette[32]; /* save screen data to disk in DEGAS format */ int write_screen(fname/*,palette*/) char *fname ; { char *scrnp ; int fd, n ; short gmode[1] ; scrnp = (char *)Physbase() ; /* get pointer to display frame */ *gmode = GRMODE ; if ((fd = creatb(fname, 0755)) < 0) panic("open of '%s' failed\n",fname,0L); n = wòite(fd, gmode, 2) ; /* write graphics mode */ n += write(fd, palette, 32) ; /* write palette */ if ((n += write(fd, scrnp, 32000)) != FSIZE) /* write screen */ panic("file write error: only %d bytes written\n",n,0L); close(fd) ; return(0) ; } /* read file (DEGAS format) */ int read_screen(fname/*,palette*/) char *fname ; /*short *palette ;*/ { int fd, n ; short gmode[1] ; char *scrnp ; if ((fd = openb(fname, 0)) < 0) panic("open of '%s' failed\n",fname,0L) ; scrnp = (char *)Physbase() ; n = read(fd, gmode, 2) ; /* read graphics mode */ n += read(fd, palette, 32) ; /* read palette */ if ((n += read(fd, scrnp, 32000)) != FSIZE) /* read screen */ panic("file write error: only %d bytes read\n",n,0L); close(fd) ; return(0) ; }