--- np2/statsave.c 2003/10/16 17:57:09 1.1.1.1 +++ np2/statsave.c 2003/10/24 10:58:47 1.12 @@ -12,14 +12,14 @@ #include "pc9861k.h" #include "mpu98ii.h" #include "board14.h" +#include "bios.h" #include "vram.h" -#include "maketext.h" #include "palettes.h" -#include "font.h" +#include "maketext.h" #include "sound.h" -#include "bios.h" #include "fmboard.h" #include "beep.h" +#include "font.h" #include "fddfile.h" #include "fdd_mtr.h" #include "sxsi.h" @@ -38,20 +38,18 @@ typedef struct { char index[10]; UINT16 ver; UINT32 size; -} NP2FLAGPART_T; +} NP2FENT; enum { NP2FLAG_BIN = 0, NP2FLAG_TERM, - NP2FLAG_286, - NP2FLAG_CORE, + NP2FLAG_CLOCK, NP2FLAG_DMA, NP2FLAG_EGC, NP2FLAG_EXT, NP2FLAG_EVT, NP2FLAG_GIJ, NP2FLAG_FM, - NP2FLAG_BEEP, NP2FLAG_MIDI, NP2FLAG_DISK }; @@ -74,9 +72,9 @@ typedef struct { int num; } ENUMTBL; -#define PROCID(a, b, c, d) (((d) << 24) | ((c) << 16) | ((b) << 8) | (a)) -#define PROC2NUM(a, b) proc2num(&(a), b, sizeof(b)/sizeof(PROCTBL)) -#define NUM2PROC(a, b) num2proc(&(a), b, sizeof(b)/sizeof(PROCTBL)) +#define PROCID(a, b, c, d) (((d) << 24) + ((c) << 16) + ((b) << 8) + (a)) +#define PROC2NUM(a, b) proc2num(&(a), (b), sizeof(b)/sizeof(PROCTBL)) +#define NUM2PROC(a, b) num2proc(&(a), (b), sizeof(b)/sizeof(PROCTBL)) #include "statsave.tbl" @@ -140,15 +138,15 @@ static BOOL num2proc(void *func, const P // ---- typedef struct { - FILEH fh; - long pos; - long bak; - long next; - NP2FHDR f; - NP2FLAGPART_T p; -} NP2FFILE; + FILEH fh; + long pos; + long bak; + long next; + NP2FHDR f; + NP2FENT p; +} _NP2FFILE, *NP2FFILE; -static int flagopen(NP2FFILE *f, const char *filename, ERR_BUF *e) { +static int flagopen(NP2FFILE f, const char *filename, ERR_BUF *e) { if (f) { f->fh = file_open(filename); @@ -187,7 +185,7 @@ static int flagopen(NP2FFILE *f, const c return(NP2FLAG_FAILURE); } -static int flagcreate(NP2FFILE *f, const char *filename) { +static int flagcreate(NP2FFILE f, const char *filename) { if (f) { f->fh = file_create(filename); @@ -205,10 +203,10 @@ static int flagcreate(NP2FFILE *f, const return(NP2FLAG_FAILURE); } -static int flagload_create(NP2FFILE *f) { +static int flagload_create(NP2FFILE f) { if (f) { - ZeroMemory(&f->p, sizeof(NP2FLAGPART_T)); + ZeroMemory(&f->p, sizeof(NP2FENT)); if (f->pos & 15) { f->pos += 15; f->pos &= ~0xf; @@ -216,18 +214,17 @@ static int flagload_create(NP2FFILE *f) return(NP2FLAG_FAILURE); } } - if (file_read(f->fh, &f->p, sizeof(NP2FLAGPART_T)) - != sizeof(NP2FLAGPART_T)) { + if (file_read(f->fh, &f->p, sizeof(NP2FENT)) != sizeof(NP2FENT)) { return(NP2FLAG_FAILURE); } - f->pos += sizeof(NP2FLAGPART_T); + f->pos += sizeof(NP2FENT); f->next = f->pos + f->p.size; return(NP2FLAG_SUCCESS); } return(NP2FLAG_FAILURE); } -static int flagload_load(NP2FFILE *f, void *buf, UINT size) { +static int flagload_load(NP2FFILE f, void *buf, UINT size) { if (f && buf && size && (file_read(f->fh, buf, size) == size)) { f->pos += size; @@ -236,7 +233,7 @@ static int flagload_load(NP2FFILE *f, vo return(NP2FLAG_FAILURE); } -static int flagload_close(NP2FFILE *f) { +static int flagload_close(NP2FFILE f) { if (file_seek(f->fh, f->next, 0) != f->next) { return(NP2FLAG_FAILURE); @@ -245,11 +242,11 @@ static int flagload_close(NP2FFILE *f) { return(NP2FLAG_SUCCESS); } -static int flagsave_create(NP2FFILE *f, const STENTRY *t) { +static int flagsave_create(NP2FFILE f, const STENTRY *t) { if (f && t) { int len; - ZeroMemory(&f->p, sizeof(NP2FLAGPART_T)); + ZeroMemory(&f->p, sizeof(NP2FENT)); if (f->pos & 15) { UINT rem; rem = 16 - (f->pos & 15); @@ -268,17 +265,16 @@ static int flagsave_create(NP2FFILE *f, CopyMemory(f->p.index, t->index, len); } f->p.ver = t->ver; - if (file_write(f->fh, &f->p, sizeof(NP2FLAGPART_T)) - != sizeof(NP2FLAGPART_T)) { + if (file_write(f->fh, &f->p, sizeof(NP2FENT)) != sizeof(NP2FENT)) { return(NP2FLAG_FAILURE); } - f->pos += sizeof(NP2FLAGPART_T); + f->pos += sizeof(NP2FENT); return(NP2FLAG_SUCCESS); } return(NP2FLAG_FAILURE); } -static int flagsave_save(NP2FFILE *f, void *buf, UINT size) { +static int flagsave_save(NP2FFILE f, void *buf, UINT size) { if (f && buf && size && (file_write(f->fh, buf, size) == size)) { f->pos += size; @@ -288,7 +284,7 @@ static int flagsave_save(NP2FFILE *f, vo return(NP2FLAG_FAILURE); } -static int flagsave_close(NP2FFILE *f) { +static int flagsave_close(NP2FFILE f) { if (!f) { goto fs_closeerr; @@ -296,8 +292,7 @@ static int flagsave_close(NP2FFILE *f) { if (file_seek(f->fh, f->bak, 0) != f->bak) { goto fs_closeerr; } - if (file_write(f->fh, &f->p, sizeof(NP2FLAGPART_T)) - != sizeof(NP2FLAGPART_T)) { + if (file_write(f->fh, &f->p, sizeof(NP2FENT)) != sizeof(NP2FENT)) { goto fs_closeerr; } if (file_seek(f->fh, f->pos, 0) == f->pos) { @@ -308,7 +303,7 @@ fs_closeerr: return(NP2FLAG_FAILURE); } -static void flagclose(NP2FFILE *f) { +static void flagclose(NP2FFILE f) { if (f) { file_close(f->fh); @@ -318,7 +313,7 @@ static void flagclose(NP2FFILE *f) { // ---- -static int flagsave_term(NP2FFILE *f, const STENTRY *t) { +static int flagsave_term(NP2FFILE f, const STENTRY *t) { int ret; @@ -330,7 +325,7 @@ static int flagsave_term(NP2FFILE *f, co // ---- -static int flagsave_common(NP2FFILE *f, const STENTRY *t) { +static int flagsave_common(NP2FFILE f, const STENTRY *t) { int ret; @@ -342,7 +337,7 @@ static int flagsave_common(NP2FFILE *f, return(ret); } -static int flagload_common(NP2FFILE *f, const STENTRY *t) { +static int flagload_common(NP2FFILE f, const STENTRY *t) { return(flagload_load(f, t->arg1, t->arg2)); } @@ -350,50 +345,20 @@ static int flagload_common(NP2FFILE *f, // ----- -static int flagsave_286(NP2FFILE *f, const STENTRY *t) { - - int ret; - - ret = flagsave_create(f, t); - if (ret != NP2FLAG_FAILURE) { - ret |= flagsave_save(f, &i286r, sizeof(I286REGS)); - ret |= flagsave_save(f, &i286s, sizeof(I286STAT)); - ret |= flagsave_close(f); - } - return(ret); -} - -static int flagload_286(NP2FFILE *f, const STENTRY *t) { - - int ret; - - ret = flagload_load(f, &i286r, sizeof(I286REGS)); - ret |= flagload_load(f, &i286s, sizeof(I286STAT)); - (void)t; - return(ret); -} - - -// ----- - -static int flagload_core(NP2FFILE *f, const STENTRY *t) { +static int flagload_clock(NP2FFILE f, const STENTRY *t) { int ret; ret = flagload_common(f, t); - if (opna_rate) { - pc.sampleclock = (pc.realclock / opna_rate) + 1; - } - else { - pc.sampleclock = 0; - } + sound_changeclock(); + beep_changeclock(); return(ret); } // ----- -static int flagsave_dma(NP2FFILE *f, const STENTRY *t) { +static int flagsave_dma(NP2FFILE f, const STENTRY *t) { int ret; int i; @@ -415,7 +380,7 @@ static int flagsave_dma(NP2FFILE *f, con return(ret); } -static int flagload_dma(NP2FFILE *f, const STENTRY *t) { +static int flagload_dma(NP2FFILE f, const STENTRY *t) { int ret; int i; @@ -443,7 +408,7 @@ static int flagload_dma(NP2FFILE *f, con // ----- -static int flagsave_egc(NP2FFILE *f, const STENTRY *t) { +static int flagsave_egc(NP2FFILE f, const STENTRY *t) { int ret; _EGC egcbak; @@ -460,7 +425,7 @@ static int flagsave_egc(NP2FFILE *f, con return(ret); } -static int flagload_egc(NP2FFILE *f, const STENTRY *t) { +static int flagload_egc(NP2FFILE f, const STENTRY *t) { int ret; @@ -474,7 +439,7 @@ static int flagload_egc(NP2FFILE *f, con // ----- -static int flagsave_ext(NP2FFILE *f, const STENTRY *t) { +static int flagsave_ext(NP2FFILE f, const STENTRY *t) { int ret; @@ -489,7 +454,7 @@ static int flagsave_ext(NP2FFILE *f, con return(ret); } -static int flagload_ext(NP2FFILE *f, const STENTRY *t) { +static int flagload_ext(NP2FFILE f, const STENTRY *t) { int ret; int i; @@ -526,9 +491,6 @@ static int flagload_ext(NP2FFILE *f, con // ----- typedef struct { - SINT32 remainclock; - SINT32 baseclock; - UINT32 clock; UINT readyevents; UINT waitevents; } NEVTSAVE; @@ -540,10 +502,10 @@ typedef struct { NEVENTCB proc; } NEVTITEM; -static int nevent_save(NP2FFILE *f, int num) { +static int nevent_save(NP2FFILE f, int num) { NEVTITEM nit; - int i; + UINT i; ZeroMemory(&nit, sizeof(nit)); for (i=0; ip.ver == t->ver) && (f->p.size == t->arg2)) { @@ -1173,7 +1130,7 @@ static int flagcheck_versize(NP2FFILE *f return(NP2FLAG_FAILURE); } -static int flagcheck_veronly(NP2FFILE *f, const STENTRY *t, ERR_BUF *e) { +static int flagcheck_veronly(NP2FFILE f, const STENTRY *t, ERR_BUF *e) { if ((f) && (t)) { if (f->p.ver == t->ver) { @@ -1190,9 +1147,9 @@ static int flagcheck_veronly(NP2FFILE *f int statsave_save(const char *filename) { - NP2FFILE f; + _NP2FFILE f; int ret; - int i; + UINT i; ret = flagcreate(&f, filename); if (ret == NP2FLAG_FAILURE) { @@ -1201,8 +1158,7 @@ int statsave_save(const char *filename) for (i=0; i