- [CHG] mode berserk passa a per Fast Tape. sistema de Opcions.

- [NEW] Opció per a parar execució al acabar de carregar una cinta.
- [NEW] Opció per a parar l'execució al trobar una instrucció del Z80 no vàlida
- [NEW] Savestate del Fernando Martin, per a provar més ràpid.
- [NEW] Treballant en el sistema d'anàlisi visual del codi
This commit is contained in:
2024-12-08 22:57:03 +01:00
parent edf8728b04
commit 8fd2eecb85
9 changed files with 129 additions and 17 deletions

19
z80.cpp
View File

@@ -9,6 +9,7 @@ namespace z80
static uint8_t memtag[65536];
static uint32_t t = 0;
static uint16_t current_opcode_address = 0;
bool options[Z80_NUM_OPTIONS] = { true };
int (*in_ports[256])(int);
void (*out_ports[256])(int, int);
@@ -1032,9 +1033,8 @@ namespace z80
void INVALID(uint8_t opcode)
{
// [TODO]
printf("INVALID OPCODE AT: %04x\n", current_opcode_address);
z80debug::stop();
if (options[Z80_OPTION_STOP_ON_INVALID]) z80debug::stop();
}
void reset(uint8_t* mem)
@@ -2738,4 +2738,19 @@ namespace z80
uint8_t getMemTag(const uint16_t addr) { return memtag[addr]; };
const bool getOption(const int option)
{
return options[option];
}
void setOption(const int option, const bool value)
{
options[option] = value;
}
void toggleOption(const int option)
{
options[option] = !options[option];
}
}