9 extern Var cpuvars[], ppuvars[], memvars[], apuvars[], evvars[];
10 extern Event *events[NEVENT], *elist;
18 for(i = 0; i < NEVENT; i++)
19 if(elist == events[i])
21 if(i == NEVENT && elist != nil)
22 print("unknown event %p in chain\n", elist);
24 for(i = 0; i < NEVENT; i++){
27 Bputc(bp, e->time >> 8);
28 Bputc(bp, e->time >> 16);
29 Bputc(bp, e->time >> 24);
30 for(j = 0; j < NEVENT; j++)
31 if(e->next == events[j])
33 if(j == NEVENT && e->next != nil)
34 print("unknown event %p in chain\n", e->next);
47 elist = i >= NEVENT ? nil : events[i];
48 for(i = 0; i < NEVENT; i++){
51 e->time |= Bgetc(bp) << 8;
52 e->time |= Bgetc(bp) << 16;
53 e->time |= Bgetc(bp) << 24;
55 e->next = j >= NEVENT ? nil : events[j];
60 getvars(Biobuf *bp, Var *v)
66 for(; v->a != nil; v++)
69 Bread(bp, v->a, v->n);
76 *p++ = w | Bgetc(bp) << 8;
86 *q++ = l | Bgetc(bp) << 24;
94 putvars(Biobuf *bp, Var *v)
100 for(; v->a != nil; v++)
103 Bwrite(bp, v->a, v->n);
109 Bputc(bp, *p & 0xff);
110 Bputc(bp, *p++ >> 8);
120 Bputc(bp, *q++ >> 24);
127 savestate(char *file)
132 bp = Bopen(file, OWRITE);
137 putvars(bp, cpuvars);
138 putvars(bp, ppuvars);
139 putvars(bp, memvars);
140 putvars(bp, apuvars);
147 loadstate(char *file)
152 bp = Bopen(file, OREAD);
157 getvars(bp, cpuvars);
158 getvars(bp, ppuvars);
159 getvars(bp, memvars);
160 getvars(bp, apuvars);