mirror of
https://github.com/digarok/gsplus.git
synced 2024-05-28 13:41:31 +00:00
add settings snytax.
0>setting 1>setting where "setting" is: brk - enable/disable GS+ brk support cop - enable/disable GS+ cop support e/m/x - set psr for disassembly support.
This commit is contained in:
parent
96ecfb3b0d
commit
fb2dee9b9b
|
@ -899,6 +899,45 @@ next:
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int do_setting(const char *cp, int value) {
|
||||
|
||||
const char *YYCURSOR = cp;
|
||||
const char *YYMARKER = NULL;
|
||||
const char *YYCTXMARKER = NULL;
|
||||
unsigned psr_bits = 0;
|
||||
|
||||
/*!re2c
|
||||
* {
|
||||
fputs("invalid setting\n", stderr);
|
||||
return -1;
|
||||
}
|
||||
"brk" eol {
|
||||
engine.flags &= ~FLAG_WANT_BRK;
|
||||
if (value) engine.flags |= FLAG_WANT_BRK;
|
||||
printf("brk intercept %s\n", value ? "on" : "off");
|
||||
return 0;
|
||||
}
|
||||
"cop" eol {
|
||||
engine.flags &= ~FLAG_WANT_COP;
|
||||
if (value) engine.flags |= FLAG_WANT_COP;
|
||||
printf("cop intercept %s\n", value ? "on" : "off");
|
||||
return 0;
|
||||
}
|
||||
|
||||
"e" eol { psr_bits = 0x0100; goto set_psr; }
|
||||
"m" eol { psr_bits = 0x0020; goto set_psr; }
|
||||
"x" eol { psr_bits = 0x0010; goto set_psr; }
|
||||
*/
|
||||
|
||||
set_psr:
|
||||
if (value) g_disasm_psr |= psr_bits;
|
||||
else g_disasm_psr &= ~psr_bits;
|
||||
if (g_disasm_psr & 0x0100) g_disasm_psr = 0x0130;
|
||||
printf("disasm psr %03x\n", g_disasm_psr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static int do_brk_cop(const char *cp, int which) {
|
||||
/* brk=1 / brk=0 */
|
||||
|
||||
|
@ -928,6 +967,8 @@ next:
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
static word32 do_mem_assign(word32 addr, const char *cp) {
|
||||
/* "string" -> pokes ASCII chars */
|
||||
|
@ -1166,8 +1207,9 @@ static int parse_command(const char *cp) {
|
|||
("q" | "quit" | "exit" | "bye") eol { return 'q'; }
|
||||
"reset" eol { do_reset(); return 0; }
|
||||
("help" | "?") eol { do_help(); return 0; }
|
||||
"brk=" { return do_brk_cop(YYCURSOR, 0x00); }
|
||||
"cop=" { return do_brk_cop(YYCURSOR, 0x02); }
|
||||
|
||||
"0>" { return do_setting(YYCURSOR, 0); }
|
||||
"1>" { return do_setting(YYCURSOR, 1); }
|
||||
|
||||
// register stuff
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user