mirror of
https://github.com/pevans/erc-c.git
synced 2024-12-21 23:29:16 +00:00
Add disasm command (toggle disassembly)
This commit is contained in:
parent
4558e62adc
commit
edd175c1f9
@ -78,6 +78,7 @@ extern void vm_debug_unbreak(int);
|
||||
extern void vm_debug_unbreak_all();
|
||||
|
||||
extern DEBUG_CMD(break);
|
||||
extern DEBUG_CMD(disasm);
|
||||
extern DEBUG_CMD(help);
|
||||
extern DEBUG_CMD(jump);
|
||||
extern DEBUG_CMD(printaddr);
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <strings.h>
|
||||
|
||||
#include "apple2.h"
|
||||
#include "mos6502.h"
|
||||
#include "vm_debug.h"
|
||||
#include "vm_di.h"
|
||||
@ -33,6 +34,8 @@ static bool breakpoints[BREAKPOINTS_MAX];
|
||||
vm_debug_cmd cmdtable[] = {
|
||||
{ "break", "b", vm_debug_cmd_break, 1, "<addr>",
|
||||
"Add breakpoint at <addr>", },
|
||||
{ "disasm", "d", vm_debug_cmd_disasm, 0, "",
|
||||
"Toggle disassembly", },
|
||||
{ "help", "h", vm_debug_cmd_help, 0, "",
|
||||
"Print out this list of commands", },
|
||||
{ "jump", "j", vm_debug_cmd_jump, 1, "<addr>",
|
||||
@ -415,3 +418,13 @@ DEBUG_CMD(step)
|
||||
mos6502_execute(cpu);
|
||||
vm_debug_break(cpu->PC);
|
||||
}
|
||||
|
||||
DEBUG_CMD(disasm)
|
||||
{
|
||||
apple2 *mach = (apple2 *)vm_di_get(VM_MACHINE);
|
||||
FILE *stream = (FILE *)vm_di_get(VM_OUTPUT);
|
||||
|
||||
vm_reflect_disasm(NULL);
|
||||
|
||||
fprintf(stream, "disassembly %s\n", mach->disasm ? "ON" : "OFF");
|
||||
}
|
||||
|
@ -268,3 +268,13 @@ Test(vm_debug, cmd_step)
|
||||
}
|
||||
|
||||
/* Test(vm_debug, cmd_quit) */
|
||||
|
||||
Test(vm_debug, cmd_disassemble)
|
||||
{
|
||||
cr_assert_eq(mach->disasm, false);
|
||||
vm_debug_cmd_disasm(&args);
|
||||
cr_assert_neq(strlen(buf), 0);
|
||||
cr_assert_eq(mach->disasm, true);
|
||||
vm_debug_cmd_disasm(&args);
|
||||
cr_assert_eq(mach->disasm, false);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user