From c64ebdb221b43ec9c7f4bdbf40344c03ac042619 Mon Sep 17 00:00:00 2001 From: Max Logaev Date: Sun, 11 Jan 2026 02:30:38 +0300 Subject: [PATCH] mtdbg: Fixed magic cmd flags Signed-off-by: Max Logaev --- programs/develop/mtdbg/gui.inc | 47 +++++++++-------- programs/develop/mtdbg/mtdbg.asm | 89 +++++++++++++++++++------------- 2 files changed, 77 insertions(+), 59 deletions(-) diff --git a/programs/develop/mtdbg/gui.inc b/programs/develop/mtdbg/gui.inc index cf4b39350..ab5f0ed7e 100644 --- a/programs/develop/mtdbg/gui.inc +++ b/programs/develop/mtdbg/gui.inc @@ -122,7 +122,13 @@ struc fpcvt .sizeof: } +;----------------------------------------------------------------------------- +; Command flags +CMD_WITHOUT_PARAM = 1b ; command may be called without parameters +CMD_WITH_PARAM = 10b ; command may be called with parameters +CMD_WITHOUT_LOADED_APP = 100b ; command may be called without loaded program +CMD_WITH_LOADED_APP = 1000b ; command may be called with loaded program ;----------------------------------------------------------------------------- ; Entry point @@ -449,63 +455,56 @@ z1: mov esi, commands call find_cmd mov eax, aUnknownCommand - jc .x11 - - ; check command requirements - ; flags field: - ; &1: command may be called without parameters - ; &2: command may be called with parameters - ; &4: command may be called without loaded program - ; &8: command may be called with loaded program + jc .cmd_procg mov eax, [esi+8] mov ecx, [curarg] cmp byte [ecx], 0 jz .noargs - test byte [esi+16], 2 - jz .x11 + test byte [esi+16], CMD_WITH_PARAM + jz .cmd_procg jmp @f .noargs: - test byte [esi+16], 1 - jz .x11 + test byte [esi+16], CMD_WITHOUT_PARAM + jz .cmd_procg @@: cmp [debuggee_pid], 0 jz .nodebuggee mov eax, aAlreadyLoaded - test byte [esi+16], 8 - jz .x11 - jmp .x9 + test byte [esi+16], CMD_WITH_LOADED_APP + jz .cmd_procg + jmp .run_cmd .nodebuggee: - mov eax, need_debuggee - test byte [esi+16], 4 - jnz .x9 + mov eax, aNeedDebuggee + test byte [esi+16], CMD_WITHOUT_LOADED_APP + jnz .run_cmd - .x11: + .cmd_procg: xchg esi, eax call put_message ; store cmdline for repeating - .x10: + .cmd_procg_no_put_msg: mov esi, cmdline mov ecx, [cmdline_len] @@: cmp ecx, 0 - jle .we + jle .wait_event mov al, [esi + ecx] mov [cmdline_prev + ecx], al dec ecx jmp @b - .we: + .wait_event: mov [cmdline_len], 0 jmp waitevent - .x9: + .run_cmd: call dword [esi+4] - jmp .x10 + jmp .cmd_procg_no_put_msg ;----------------------------------------------------------------------------- ; Cmdline handling diff --git a/programs/develop/mtdbg/mtdbg.asm b/programs/develop/mtdbg/mtdbg.asm index adc26d0c9..93c5e250d 100644 --- a/programs/develop/mtdbg/mtdbg.asm +++ b/programs/develop/mtdbg/mtdbg.asm @@ -499,7 +499,7 @@ mxp_lzo_sig2_size = $ - mxp_lzo_sig2 OnReload: cmp [debuggee_pid], 0 jnz terminate_reload - mov esi, need_debuggee + mov esi, aNeedDebuggee cmp byte [loadname], 0 jnz do_reload jz put_message @@ -1880,66 +1880,85 @@ help_groups: ;----------------------------------------------------------------------------- ; Commands format definitions -; TODO: make it with macros - -; flags field: -; &1: command may be called without parameters -; &2: command may be called with parameters -; &4: command may be called without loaded program -; &8: command may be called with loaded program commands: dd _aH, OnHelp, HelpSyntax, HelpHelp - db 0Fh + db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITHOUT_LOADED_APP or CMD_WITH_LOADED_APP + dd aHelp, OnHelp, HelpSyntax, HelpHelp - db 0Fh + db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITHOUT_LOADED_APP or CMD_WITH_LOADED_APP + dd aQuit, OnQuit, QuitSyntax, QuitHelp - db 0Dh + db CMD_WITHOUT_PARAM or CMD_WITHOUT_LOADED_APP or CMD_WITH_LOADED_APP + dd aLoad, OnLoad, LoadSyntax, LoadHelp - db 6 + db CMD_WITH_PARAM or CMD_WITHOUT_LOADED_APP + dd aReload, OnReload, ReloadSyntax, ReloadHelp - db 0Dh + db CMD_WITHOUT_PARAM or CMD_WITHOUT_LOADED_APP or CMD_WITH_LOADED_APP + dd aTerminate, OnTerminate, TerminateSyntax, TerminateHelp - db 9 + db CMD_WITHOUT_PARAM or CMD_WITH_LOADED_APP + dd aDetach, OnDetach, DetachSyntax, DetachHelp - db 9 + db CMD_WITHOUT_PARAM or CMD_WITH_LOADED_APP + dd aSuspend, OnSuspend, SuspendSyntax, SuspendHelp - db 9 + db CMD_WITHOUT_PARAM or CMD_WITH_LOADED_APP + dd aResume, OnResume, ResumeSyntax, ResumeHelp - db 0Bh + db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP + dd aStep, OnStepMultiple, StepSyntax, StepHelp - db 0Bh + db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP + dd aProceed, OnProceedMultiple, ProceedSyntax, ProceedHelp - db 0Bh + db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP + dd aCalc, OnCalc, CalcSyntax, CalcHelp - db 0Eh + db CMD_WITH_PARAM or CMD_WITHOUT_LOADED_APP or CMD_WITH_LOADED_APP + dd aDump, OnDump, DumpSyntax, DumpHelp - db 0Bh + db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP + dd aUnassemble, OnUnassemble, UnassembleSyntax, UnassembleHelp - db 0Bh + db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP + dd aBp, OnBp, BpSyntax, BpHelp - db 0Ah + db CMD_WITH_PARAM or CMD_WITH_LOADED_APP + dd aBpm, OnBpmb, BpmSyntax, BpmHelp - db 0Ah + db CMD_WITH_PARAM or CMD_WITH_LOADED_APP + dd aBpmb, OnBpmb, BpmSyntax, BpmHelp - db 0Ah + db CMD_WITH_PARAM or CMD_WITH_LOADED_APP + dd aBpmw, OnBpmw, BpmSyntax, BpmHelp - db 0Ah + db CMD_WITH_PARAM or CMD_WITH_LOADED_APP + dd aBpmd, OnBpmd, BpmSyntax, BpmHelp - db 0Ah + db CMD_WITH_PARAM or CMD_WITH_LOADED_APP + dd aBl, OnBl, BlSyntax, BlHelp - db 0Bh + db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP + dd aBc, OnBc, BcSyntax, BcHelp - db 0Ah + db CMD_WITH_PARAM or CMD_WITH_LOADED_APP + dd aBd, OnBd, BdSyntax, BdHelp - db 0Ah + db CMD_WITH_PARAM or CMD_WITH_LOADED_APP + dd aBe, OnBe, BeSyntax, BeHelp - db 0Ah + db CMD_WITH_PARAM or CMD_WITH_LOADED_APP + dd aReg, OnReg, RSyntax, RHelp - db 0Ah + db CMD_WITH_PARAM or CMD_WITH_LOADED_APP + dd aUnpack, OnUnpack, UnpackSyntax, UnpackHelp - db 9 + db CMD_WITHOUT_PARAM or CMD_WITH_LOADED_APP + dd aLoadSymbols, OnLoadSymbols, LoadSymbolsSyntax, LoadSymbolsHelp - db 0Ah + db CMD_WITH_PARAM or CMD_WITH_LOADED_APP + dd 0 ;----------------------------------------------------------------------------- @@ -2122,7 +2141,7 @@ load_err_msgs: .1F db 'Not Menuet/Kolibri executable.',10,0 .20 db 'Too many processes.',10,0 load_succ_msg db 'Program loaded successfully! PID=%4X. Use "g" to run.',10,0 -need_debuggee db 'No program loaded. Use "load" command.',10,0 +aNeedDebuggee db 'No program loaded. Use "load" command.',10,0 aAlreadyLoaded db 'Program is already loaded. Use "terminate" or "detach" commands',10,0 terminated_msg db 'Program terminated.',10,0 aException db 'Debugged program caused an exception %2X. ', 0