mirror of
https://github.com/jscrane/r65emu.git
synced 2024-12-09 08:49:18 +00:00
size optimisations
This commit is contained in:
parent
c4cc897319
commit
e1919226e5
@ -18,10 +18,10 @@ static char chkpt[] = { "CHKPOINT" };
|
||||
static int cpid = 0;
|
||||
|
||||
const char *checkpoint(sdtape &tape, const char *dir) {
|
||||
#if defined(USE_SD) || defined(USE_SPIFFS) || defined(ESP8266)
|
||||
tape.stop();
|
||||
snprintf(buf, sizeof(buf), "%s%s.%03d", dir, chkpt, cpid++);
|
||||
|
||||
#if defined(USE_SD) || defined(USE_SPIFFS) || defined(ESP8266)
|
||||
#if defined(USE_SD)
|
||||
File file = SD.open(buf, O_WRITE | O_CREAT | O_TRUNC);
|
||||
#elif defined(USE_SPIFFS)
|
||||
@ -31,16 +31,16 @@ const char *checkpoint(sdtape &tape, const char *dir) {
|
||||
#endif
|
||||
hardware_checkpoint(file);
|
||||
file.close();
|
||||
#endif
|
||||
tape.start(dir);
|
||||
#endif
|
||||
return buf;
|
||||
}
|
||||
|
||||
void restore(sdtape &tape, const char *dir, const char *filename) {
|
||||
#if defined(USE_SD) || defined(USE_SPIFFS) || defined(ESP8266)
|
||||
tape.stop();
|
||||
snprintf(buf, sizeof(buf), "%s%s", dir, filename);
|
||||
|
||||
#if defined(USE_SD) || defined(USE_SPIFFS) || defined(ESP8266)
|
||||
#if defined(USE_SD)
|
||||
File file = SD.open(buf, O_READ);
|
||||
#elif defined(USE_SPIFFS)
|
||||
@ -50,8 +50,8 @@ void restore(sdtape &tape, const char *dir, const char *filename) {
|
||||
#endif
|
||||
hardware_restore(file);
|
||||
file.close();
|
||||
#endif
|
||||
int n = sscanf(buf + strlen(dir), "%[A-Z0-9].%d", chkpt, &cpid);
|
||||
cpid = (n == 1)? 0: cpid+1;
|
||||
#endif
|
||||
tape.start(dir);
|
||||
}
|
||||
|
@ -41,12 +41,14 @@ void i8080::ei() {
|
||||
}
|
||||
|
||||
char *i8080::status(char *buf, size_t n, bool hdr) {
|
||||
#if defined(CPU_DEBUG)
|
||||
uint8_t op = _mem[PC];
|
||||
snprintf(buf, n,
|
||||
"%s%04x %02x %02x %04x %04x %04x %04x %d%d%d%d%d%d%d%d",
|
||||
hdr? "_pc_ op aa _bc_ _de_ _hl_ _sp_ szih_p_c\r": "",
|
||||
PC, op, A, BC, DE, HL, SP, flags.S, flags.Z, flags.I, flags.H,
|
||||
flags._, flags.P, flags.__, flags.C);
|
||||
#endif
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
@ -25,12 +25,14 @@ uint8_t r6502::flags() {
|
||||
}
|
||||
|
||||
char *r6502::status(char *buf, size_t n, bool hdr) {
|
||||
#if defined(CPU_DEBUG)
|
||||
flags();
|
||||
snprintf(buf, n,
|
||||
"%s%02x %02x %02x %02x %d%d%d%d%d%d%d%d %04x %02x",
|
||||
hdr? "aa xx yy sp nv_bdizc _pc_ op\r\n": "",
|
||||
A, X, Y, S, P.bits.N, P.bits.V, P.bits._, P.bits.B,
|
||||
P.bits.D, P.bits.I, P.bits.Z, P.bits.C, PC, (uint8_t)_mem[PC]);
|
||||
#endif
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
2
z80.cpp
2
z80.cpp
@ -7,6 +7,7 @@
|
||||
#include "z80.h"
|
||||
|
||||
char *z80::status(char *buf, size_t n, bool hdr) {
|
||||
#if defined(CPU_DEBUG)
|
||||
uint8_t op = _mem[PC];
|
||||
snprintf(buf, n,
|
||||
"%s%04x %02x %04x %04x %04x %04x %04x %04x %04x %04x %04x %d%d%d "
|
||||
@ -14,6 +15,7 @@ char *z80::status(char *buf, size_t n, bool hdr) {
|
||||
hdr? "_pc_ op _af_ _bc_ _de_ _hl_ _af' _bc' _de' _hl' _ir_ imff _sp_ sz5h3pnc\r\n": "",
|
||||
PC, op, AF, BC, DE, HL, AF_, BC_, DE_, HL_, IR, _im, _iff1, _iff2,
|
||||
SP, flags.S, flags.Z, flags._5, flags.H, flags._3, flags.P, flags.N, flags.C);
|
||||
#endif
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user