summaryrefslogtreecommitdiff
path: root/apps/plugins/zxbox/snapshot.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/zxbox/snapshot.c')
-rw-r--r--apps/plugins/zxbox/snapshot.c49
1 files changed, 13 insertions, 36 deletions
diff --git a/apps/plugins/zxbox/snapshot.c b/apps/plugins/zxbox/snapshot.c
index e1a3552382..c67b7a8f39 100644
--- a/apps/plugins/zxbox/snapshot.c
+++ b/apps/plugins/zxbox/snapshot.c
@@ -33,17 +33,14 @@
33 33
34#include <stdio.h> 34#include <stdio.h>
35#include <stdlib.h> 35#include <stdlib.h>
36/*#include <errno.h>*/
37/*#include "string.h"*/
38#include <sys/types.h> 36#include <sys/types.h>
39 37
40#define COMPRESS_SAVE 1 38#define COMPRESS_SAVE 1
41 39
42static char quick_snap_file[MAXFILENAME]; 40static char quick_snap_file[]="/.rockbox/zxboxq.z80";
43static int qsnap_created = 0; 41
44typedef struct { 42typedef struct {
45 int isfile; 43 int isfile;
46 /*FILE *fp;*/
47 int fd; 44 int fd;
48 45
49 unsigned len; 46 unsigned len;
@@ -65,7 +62,7 @@ static int snread(void *ptr, int size, SNFILE *snfp)
65 int i; 62 int i;
66 byte *dest; 63 byte *dest;
67 64
68 if(snfp->isfile) /*return (int) fread(ptr, 1, (size_t) size, snfp->fp);*/ 65 if(snfp->isfile)
69 return (int) rb->read( snfp->fd,ptr, (size_t) size); 66 return (int) rb->read( snfp->fd,ptr, (size_t) size);
70 67
71 dest = (byte *) ptr; 68 dest = (byte *) ptr;
@@ -177,7 +174,6 @@ struct z80_page_s {
177#define z80_pg_size 3 /* sizeof(struct z80_page_s)=3 */ 174#define z80_pg_size 3 /* sizeof(struct z80_page_s)=3 */
178 175
179 176
180/*static FILE *savfp;*/
181static int savfd; 177static int savfd;
182static int memptr; 178static int memptr;
183 179
@@ -282,13 +278,9 @@ static void snsh_z80_save(int fd)
282 Bit 5 : 1=Block of data is compressed 278 Bit 5 : 1=Block of data is compressed
283 Bit 6-7: No meaning 279 Bit 6-7: No meaning
284*/ 280*/
285
286
287 /*fwrite(&z80, z80_145_size, 1, fp);*/
288 rb->write(fd,&z80,z80_145_size); 281 rb->write(fd,&z80,z80_145_size);
289 282
290 if(!to_comp) 283 if(!to_comp)
291 /*fwrite(z80_proc.mem + 0x4000, 0xC000, 1, fp);*/
292 rb->write(fd,z80_proc.mem + 0x4000,0xC000); 284 rb->write(fd,z80_proc.mem + 0x4000,0xC000);
293 else { 285 else {
294 memptr = 0x4000; 286 memptr = 0x4000;
@@ -327,8 +319,6 @@ static void snsh_sna_save(int fd)
327 319
328 sna.im = z80_proc.it_mode & 0x03; 320 sna.im = z80_proc.it_mode & 0x03;
329 321
330 /*fwrite(&sna, sna_size, 1, fp);
331 fwrite(z80_proc.mem + 0x4000, 0xC000, 1, fp);*/
332 rb->write(fd,&sna, sna_size); 322 rb->write(fd,&sna, sna_size);
333 rb->write(fd,z80_proc.mem + 0x4000, 0xC000); 323 rb->write(fd,z80_proc.mem + 0x4000, 0xC000);
334 324
@@ -590,21 +580,13 @@ static void snsh_sna_load(SNFILE *fp)
590 580
591 sp_init_screen_mark(); 581 sp_init_screen_mark();
592} 582}
593/* 583
594static void cleanup_qsnap(void)
595{
596 if(qsnap_created) rb->remove(quick_snap_file);
597}
598*/
599static void save_snapshot_file_type(char *name, int type) 584static void save_snapshot_file_type(char *name, int type)
600{ 585{
601 /*FILE *snsh;*/
602 int snsh; 586 int snsh;
603 snsh = rb->open(name, O_WRONLY); 587 snsh = rb->open(name, O_WRONLY);
604 if(snsh < 0) { 588 if(snsh < 0) {
605 snsh = rb->creat(name, O_WRONLY); 589 snsh = rb->creat(name, O_WRONLY);
606/* sprintf(msgbuf, "Could not open snapshot file `%s', %s",
607 name, strerror(errno));*/
608 if(snsh < 0) { 590 if(snsh < 0) {
609 put_msg("Could not create snapshot file"); 591 put_msg("Could not create snapshot file");
610 return; 592 return;
@@ -633,22 +615,14 @@ void save_snapshot_file(char *name)
633 } 615 }
634 616
635 save_snapshot_file_type(filenamebuf, type); 617 save_snapshot_file_type(filenamebuf, type);
636 618 char msgbuf [MAXFILENAME];
637/* sprintf(msgbuf, "Saved snapshot to file %s", filenamebuf); 619 rb->snprintf(msgbuf,MAXFILENAME, "Saved snapshot to file %s", filenamebuf);
638 put_msg(msgbuf);*/ 620 put_msg(msgbuf);
639} 621}
640 622
641void save_quick_snapshot(void) 623void save_quick_snapshot(void)
642{ 624{
643/* if(!qsnap_created) { 625 save_snapshot_file_type(quick_snap_file, SN_Z80);
644 if(tmpnam(quick_snap_file) == NULL) {
645 put_msg("Could not create temporary file for quick snapshot");
646 return;
647 }
648 qsnap_created = 1;
649 atexit(cleanup_qsnap);
650 }
651 save_snapshot_file_type(quick_snap_file, SN_Z80);*/
652} 626}
653 627
654void save_snapshot(void) 628void save_snapshot(void)
@@ -665,7 +639,6 @@ void save_snapshot(void)
665void load_snapshot_file_type(char *name, int type) 639void load_snapshot_file_type(char *name, int type)
666{ 640{
667 int filetype = FT_SNAPSHOT; 641 int filetype = FT_SNAPSHOT;
668 /*FILE *snsh;*/
669 int snsh; 642 int snsh;
670 SNFILE snfil; 643 SNFILE snfil;
671 644
@@ -705,10 +678,14 @@ void snsh_z80_load_intern(byte *p, unsigned len)
705 678
706void load_quick_snapshot(void) 679void load_quick_snapshot(void)
707{ 680{
708 if(!qsnap_created) { 681 int qsnap;
682 qsnap = rb->open(quick_snap_file,O_RDONLY);
683 if(qsnap < 0) {
709 put_msg("No quick snapshot saved yet"); 684 put_msg("No quick snapshot saved yet");
710 return; 685 return;
711 } 686 }
687 else
688 rb->close ( qsnap );
712 load_snapshot_file_type(quick_snap_file, SN_Z80); 689 load_snapshot_file_type(quick_snap_file, SN_Z80);
713} 690}
714 691