cfgfile_dwrite_bool(f, _T("resetwarning"), p->cs_resetwarning);
cfgfile_dwrite_bool(f, _T("denise_noehb"), p->cs_denisenoehb);
cfgfile_dwrite_bool(f, _T("agnus_bltbusybug"), p->cs_agnusbltbusybug);
+ cfgfile_dwrite_bool(f, _T("bkpt_halt"), p->cs_bkpthang);
cfgfile_dwrite_bool(f, _T("ics_agnus"), p->cs_dipagnus);
cfgfile_dwrite_bool(f, _T("cia_todbug"), p->cs_ciatodbug);
cfgfile_dwrite_bool(f, _T("z3_autoconfig"), p->cs_z3autoconfig);
|| cfgfile_yesno(option, value, _T("rom_is_slow"), &p->cs_romisslow)
|| cfgfile_yesno(option, value, _T("1mchipjumper"), &p->cs_1mchipjumper)
|| cfgfile_yesno(option, value, _T("agnus_bltbusybug"), &p->cs_agnusbltbusybug)
+ || cfgfile_yesno(option, value, _T("bkpt_halt"), &p->cs_bkpthang)
|| cfgfile_yesno(option, value, _T("gfxcard_hardware_vblank"), &p->rtg_hardwareinterrupt)
|| cfgfile_yesno(option, value, _T("gfxcard_hardware_sprite"), &p->rtg_hardwaresprite)
|| cfgfile_yesno(option, value, _T("gfxcard_multithread"), &p->rtg_multithread)
p->cs_denisenoehb = 0;
p->cs_dipagnus = 0;
p->cs_agnusbltbusybug = 0;
+ p->cs_bkpthang = 0;
p->cs_mbdmac = 0;
p->cs_pcmcia = 0;
p->cs_ksmirror_e0 = 1;
#define CPU_HALT_SSP_IN_NON_EXISTING_ADDRESS 10
#define CPU_HALT_INVALID_START_ADDRESS 11
#define CPU_HALT_68060_HALT 12
+#define CPU_HALT_BKPT 13
uae_u32 process_cpu_indirect_memory_read(uae_u32 addr, int size);
void process_cpu_indirect_memory_write(uae_u32 addr, uae_u32 data, int size);
return 4;
}
+ // BKPT?
+ if (opcode >= 0x4848 && opcode <= 0x484f && currprefs.cpu_model >= 68020) {
+ // some boards hang because there is no break point cycle acknowledge
+ if (currprefs.cs_bkpthang) {
+ cpu_halt(CPU_HALT_BKPT);
+ return 4;
+ }
+ }
+
if (debugmem_illg(opcode)) {
m68k_incpc_normal(2);
return 4;