summaryrefslogtreecommitdiff
path: root/trans.c
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2020-06-12 23:54:22 -0700
committerMichael Pavone <pavone@retrodev.com>2020-06-12 23:54:22 -0700
commitfb293afbcf0252107b51ca66f89796c7fa20e02a (patch)
tree71bb151590e51cf4dc2417d343b436c56385ce29 /trans.c
parent7cedf97a48dae6b5d2d2ed603d869913848fce55 (diff)
Fix 68k test harness target, add cycle count to output and add a cycle limit
Diffstat (limited to 'trans.c')
-rw-r--r--trans.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/trans.c b/trans.c
index 1992e88..67dd681 100644
--- a/trans.c
+++ b/trans.c
@@ -26,8 +26,9 @@ void render_infobox(char * title, char * buf)
#ifndef NEW_CORE
m68k_context * sync_components(m68k_context * context, uint32_t address)
{
- if (context->current_cycle > 0x80000000) {
- context->current_cycle -= 0x80000000;
+ if (context->current_cycle >= context->target_cycle) {
+ puts("hit cycle limit");
+ exit(0);
}
if (context->status & M68K_STATUS_TRACE || context->trace_pending) {
context->target_cycle = context->current_cycle;
@@ -39,6 +40,7 @@ m68k_context * sync_components(m68k_context * context, uint32_t address)
m68k_context *reset_handler(m68k_context *context)
{
m68k_print_regs(context);
+ printf("cycles: %d\n", context->current_cycle);
exit(0);
//unreachable
return context;
@@ -80,16 +82,14 @@ int main(int argc, char ** argv)
m68k_context * context = init_68k_context(&opts, reset_handler);
context->mem_pointers[0] = memmap[0].buffer;
context->mem_pointers[1] = memmap[1].buffer;
+ context->current_cycle = 40;
#ifndef NEW_CORE
- context->target_cycle = context->sync_cycle = 0x80000000;
+ context->target_cycle = context->sync_cycle = 8000;
#endif
m68k_reset(context);
#ifdef NEW_CORE
- for (;;)
- {
- m68k_execute(context, 0x80000000);
- context->cycles = 0;
- }
+ m68k_execute(context, 8000);
+ puts("hit cycle limit");
#endif
return 0;
}