#define KEY_POLL_INTERVAL_MSEC 5000
-unsigned char read_ranges;
-unsigned int read_addr[8];
-unsigned int read_upper[8];
-unsigned char *read_data[8];
-unsigned char write_ranges;
-unsigned int write_addr[8];
-unsigned int write_upper[8];
-unsigned char *write_data[8];
-address_translation_cache code_translation_cache = {0};
-
int kb_hook_enabled = 0;
int mouse_hook_enabled = 0;
int cpu_emulation_running = 1;
}
if (irq) {
- while (irq) {
last_irq = ((read_reg() & 0xe000) >> 13);
if (last_irq != last_last_irq) {
last_last_irq = last_irq;
M68K_SET_IRQ(last_irq);
}
- m68k_execute(5);
- }
- if (gayleirq && int2_enabled) {
- write16(0xdff09c, 0x8000 | (1 << 3) && last_irq != 2);
- last_last_irq = last_irq;
- last_irq = 2;
- M68K_SET_IRQ(2);
- }
+ } else if (!irq && last_last_irq != 0) {
M68K_SET_IRQ(0);
last_last_irq = 0;
- m68k_execute(5);
}
- /*else {
- if (last_irq != 0) {
- M68K_SET_IRQ(0);
- last_last_irq = last_irq;
- last_irq = 0;
- }
- }*/
+
if (do_reset) {
cpu_pulse_reset();
do_reset=0;
static inline int32_t platform_write_check(uint8_t type, uint32_t addr, uint32_t val) {
switch (cfg->platform->id) {
+ case PLATFORM_MAC:
+ switch (addr) {
+ case 0xEFFFFE: // VIA1?
+ if (val & 0x10 && !ovl) {
+ ovl = 1;
+ printf("[MAC] OVL on.\n");
+ } else if (ovl) {
+ ovl = 0;
+ printf("[MAC] OVL off.\n");
+ }
+ break;
+ }
+ break;
case PLATFORM_AMIGA:
switch (addr) {
case CIAAPRA: