diff options
author | 2021-04-06 11:14:02 -0400 | |
---|---|---|
committer | 2021-04-06 11:14:08 -0400 | |
commit | d28b2031c4b1cf886f05e2a24b94ef589051057b (patch) | |
tree | 1ba95aa72154880408a07617f55c0d8691bf3d69 /src/emu/debug/debugcmd.cpp | |
parent | b38799131b529502ed13da57ef24ccee97ceaaf8 (diff) |
Add %o format support to debugger printf command
Diffstat (limited to 'src/emu/debug/debugcmd.cpp')
-rw-r--r-- | src/emu/debug/debugcmd.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/emu/debug/debugcmd.cpp b/src/emu/debug/debugcmd.cpp index 432e394cc98..33ccb530f20 100644 --- a/src/emu/debug/debugcmd.cpp +++ b/src/emu/debug/debugcmd.cpp @@ -767,6 +767,32 @@ int debugger_commands::mini_printf(char *buffer, const char *format, int params, params--; break; + case 'O': + case 'o': + if (params == 0) + { + m_console.printf("Not enough parameters for format!\n"); + return 0; + } + if (u32(*param >> 60) != 0) + { + p += sprintf(p, zerofill ? "%0*o" : "%*o", (width <= 20) ? 1 : width - 20, u32(*param >> 60)); + p += sprintf(p, "%0*o", 10, u32(BIT(*param, 30, 30))); + } + else + { + if (width > 20) + p += sprintf(p, zerofill ? "%0*o" : "%*o", width - 20, 0); + if (u32(BIT(*param, 30, 30)) != 0) + p += sprintf(p, zerofill ? "%0*o" : "%*o", (width <= 10) ? 1 : width - 10, u32(BIT(*param, 30, 30))); + else if (width > 10) + p += sprintf(p, zerofill ? "%0*o" : "%*o", width - 10, 0); + } + p += sprintf(p, zerofill ? "%0*o" : "%*o", (width < 10) ? width : 10, u32(BIT(*param, 0, 30))); + param++; + params--; + break; + case 'D': case 'd': if (params == 0) |