summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--menu.c16
-rw-r--r--menu.s686
2 files changed, 17 insertions, 5 deletions
diff --git a/menu.c b/menu.c
index c656dca..6dbbd12 100644
--- a/menu.c
+++ b/menu.c
@@ -191,8 +191,17 @@ void * menu_write_w(uint32_t address, void * context, uint16_t value)
m68k->should_return = 1;
break;
case 3: {
- m68k->should_return = 1;
- gen->should_exit = 1;
+ switch (dst)
+ {
+ case 1:
+ m68k->should_return = 1;
+ gen->should_exit = 1;
+ break;
+ case 2:
+ m68k->should_return = 1;
+ break;
+ }
+
break;
}
}
@@ -204,6 +213,9 @@ void * menu_write_w(uint32_t address, void * context, uint16_t value)
menu->latch = value;
menu->state = 1;
}
+ if (m68k->should_return) {
+ m68k->target_cycle = m68k->current_cycle;
+ }
return context;
}
diff --git a/menu.s68 b/menu.s68
index b1c7f42..92a4eb5 100644
--- a/menu.s68
+++ b/menu.s68
@@ -926,12 +926,12 @@ show_about:
bra .wait
exit:
- move.w #1, menu_port+12
+ move.l #1, menu_port+12
bra exit
resume:
- ;TODO: Implement me
- bra resume
+ move.l #2, menu_port+12
+ bra show_pause_menu
save_state:
;TODO: Implement me