{ "info": { "description": "Dolwin DSP JDI", "helpGroup": "DSP Debug Commands" }, "can": { "dspdisa": { "help": "Disassemble DSP code into text file", "args": 1, "usage": [ "Syntax: dspdisa [start_addr]\n", "disassemble dsp ucode from binary file and dump it into dspdisa.txt\n", "start_addr in DSP slots;\n", "Example of use: dspdisa Data\\dsp_irom.bin 0x8000\n" ] }, "dregs": { "help": "Show DSP registers", "output": "Array [] of all DSP registers contents" }, "dreg": { "help": "Modify DSP register", "hints": " ", "args": 2, "usage": [ "Syntax: dreg \n", "Register names: ar0 ar1 ar2 ar3 ix0 ix1 ix2 ix3", "r8 r9 r10 r11 st0 st1 st2 st3", "ac0h ac1h config sr prodl prodm1 prodh prodm2", "ax0l ax0h ax1l ax1h ac0l ac1l ac0m ac1m", "Example of use: dreg ar0 0x300\n" ] }, "dmem": { "help": "Dump DSP DMEM", "args": 1, "usage": [ "Syntax: dmem , dmem .\n", "Dump 32 bytes of DMEM at dsp_addr. dsp_addr in halfword DSP slots.\n", "dmem . will dump 0x800 bytes at dmem address 0\n", "Example of use: dmem 0x8000\n" ], "output": "Array [] of memory data" }, "imem": { "help": "Dump DSP IMEM", "args": 1, "usage": [ "Syntax: imem , imem .\n", "Dump 32 bytes of IMEM at dsp_addr. dsp_addr in halfword DSP slots.\n", "imem . will dump 32 bytes of imem at program counter address.\n", "Example of use: imem 0\n" ], "output": "Array [] of memory data" }, "drun": { "help": "Run DSP thread until break, halt or dstop" }, "dstop": { "help": "Stop DSP thread" }, "dstep": { "help": "Step DSP instruction(s)", "hints": "[n]" }, "dbrk": { "help": "Add IMEM breakpoint", "args": 1, "usage": [ "Syntax: dbrk \n", "Add breakpoint at dsp_addr. dsp_addr in halfword DSP slots.\n", "Example of use: dbrk 0x8020\n" ] }, "dcan": { "help": "Add IMEM canary", "args": 2, "usage": [ "Syntax: dcan \n", "Add canary at dsp_addr. dsp_addr in halfword DSP slots.\n", "When the PC is equal to the canary address, a debug message is displayed\n", "Example of use: dcan 0x10 \"Ucode entrypoint\"\n" ] }, "dlist": { "help": "List IMEM breakpoints / canaries" }, "dbrkclr": { "help": "Clear all IMEM breakpoints" }, "dcanclr": { "help": "Clear all IMEM canaries" }, "dpc": { "help": "Set DSP program counter", "args": 1, "usage": [ "Syntax: dpc \n", "Set DSP program counter to dsp_addr. dsp_addr in halfword DSP slots.\n", "Example of use: dpc 0x8000\n" ] }, "dreset": { "help": "Issue DSP reset" }, "du": { "help": "Disassemble some DSP instructions at pc / address", "hints": "[addr] [count]" }, "dst": { "help": "Dump DSP call stack" }, "difx": { "help": "Dump DSP IFX" }, "cpumbox": { "help": "Write message to CPU Mailbox", "args": 1, "usage": [ "Syntax: cpumbox \n", "Example of use: cpumbox 0x8001FEED\n" ] }, "dspmbox": { "help": "Read message from DSP Mailbox" }, "cpudspint": { "help": "Send CPU->DSP interrupt" }, "dspcpuint": { "help": "Send DSP->CPU interrupt" }, "dsp_muls": { "internal": true, "help": "Test signed 16x16 DSP multiply", "args": 2, "usage": [ "Syntax: dsp_muls 0xaabb 0x0022", "Numbers must be in 2's complement 16-bit format" ] }, "dsp_mulu": { "internal": true, "help": "Test unsigned 16x16 DSP multiply", "args": 2, "usage": [ "Syntax: dsp_muls 0xaabb 0x0022", "Numbers must be in unsigned 16-bit format" ] }, "DspIsRunning": { "internal": true, "output": "Bool" }, "DspRun": { "internal": true }, "DspSuspend": { "internal": true }, "DspStep": { "internal": true }, "DspGetReg": { "internal": true, "args": 1, "output": "UInt16" }, "DspGetPsr": { "internal": true, "output": "UInt16" }, "DspGetPc": { "internal": true, "output": "UInt16" }, "DspPackProd": { "internal": true, "output": "UInt64 (crazy packed multiply product)" }, "DspTranslateDMem": { "internal": true, "args": 1, "output": "UInt64 (pointer). nullptr if cannot be translated." }, "DspTranslateIMem": { "internal": true, "args": 1, "output": "UInt64 (pointer). nullptr if cannot be translated." }, "DspTestBreakpoint": { "internal": true, "args": 1, "output": "Bool" }, "DspToggleBreakpoint": { "internal": true, "args": 1 }, "DspAddOneShotBreakpoint": { "internal": true, "args": 1 }, "DspIsCall": { "internal": true, "args": 1, "output": "Array: [Bool, UInt32 targetAddress]" }, "DspIsCallOrJump": { "internal": true, "args": 1, "output": "Array: [Bool, UInt32 targetAddress]" }, "DspDisasm": { "internal": true, "args": 1, "output": "Array: [Bool flowControl, Int instrSizeWords, String]. Empty string (\"\") mean disasm error" } } }