Merge branch 'main' into update-libc.obj
This commit is contained in:
@@ -122,7 +122,13 @@ struc fpcvt
|
|||||||
.sizeof:
|
.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
|
; Entry point
|
||||||
@@ -449,63 +455,56 @@ z1:
|
|||||||
mov esi, commands
|
mov esi, commands
|
||||||
call find_cmd
|
call find_cmd
|
||||||
mov eax, aUnknownCommand
|
mov eax, aUnknownCommand
|
||||||
jc .x11
|
jc .cmd_procg
|
||||||
|
|
||||||
; 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
|
|
||||||
mov eax, [esi+8]
|
mov eax, [esi+8]
|
||||||
mov ecx, [curarg]
|
mov ecx, [curarg]
|
||||||
cmp byte [ecx], 0
|
cmp byte [ecx], 0
|
||||||
jz .noargs
|
jz .noargs
|
||||||
test byte [esi+16], 2
|
test byte [esi+16], CMD_WITH_PARAM
|
||||||
jz .x11
|
jz .cmd_procg
|
||||||
jmp @f
|
jmp @f
|
||||||
|
|
||||||
.noargs:
|
.noargs:
|
||||||
test byte [esi+16], 1
|
test byte [esi+16], CMD_WITHOUT_PARAM
|
||||||
jz .x11
|
jz .cmd_procg
|
||||||
|
|
||||||
@@:
|
@@:
|
||||||
cmp [debuggee_pid], 0
|
cmp [debuggee_pid], 0
|
||||||
jz .nodebuggee
|
jz .nodebuggee
|
||||||
mov eax, aAlreadyLoaded
|
mov eax, aAlreadyLoaded
|
||||||
test byte [esi+16], 8
|
test byte [esi+16], CMD_WITH_LOADED_APP
|
||||||
jz .x11
|
jz .cmd_procg
|
||||||
jmp .x9
|
jmp .run_cmd
|
||||||
|
|
||||||
.nodebuggee:
|
.nodebuggee:
|
||||||
mov eax, need_debuggee
|
mov eax, need_debuggee
|
||||||
test byte [esi+16], 4
|
test byte [esi+16], CMD_WITHOUT_LOADED_APP
|
||||||
jnz .x9
|
jnz .run_cmd
|
||||||
|
|
||||||
.x11:
|
.cmd_procg:
|
||||||
xchg esi, eax
|
xchg esi, eax
|
||||||
call put_message
|
call put_message
|
||||||
|
|
||||||
; store cmdline for repeating
|
; store cmdline for repeating
|
||||||
.x10:
|
.cmd_procg_no_put_msg:
|
||||||
mov esi, cmdline
|
mov esi, cmdline
|
||||||
mov ecx, [cmdline_len]
|
mov ecx, [cmdline_len]
|
||||||
|
|
||||||
@@:
|
@@:
|
||||||
cmp ecx, 0
|
cmp ecx, 0
|
||||||
jle .we
|
jle .wait_event
|
||||||
mov al, [esi + ecx]
|
mov al, [esi + ecx]
|
||||||
mov [cmdline_prev + ecx], al
|
mov [cmdline_prev + ecx], al
|
||||||
dec ecx
|
dec ecx
|
||||||
jmp @b
|
jmp @b
|
||||||
|
|
||||||
.we:
|
.wait_event:
|
||||||
mov [cmdline_len], 0
|
mov [cmdline_len], 0
|
||||||
jmp waitevent
|
jmp waitevent
|
||||||
|
|
||||||
.x9:
|
.run_cmd:
|
||||||
call dword [esi+4]
|
call dword [esi+4]
|
||||||
jmp .x10
|
jmp .cmd_procg_no_put_msg
|
||||||
|
|
||||||
;-----------------------------------------------------------------------------
|
;-----------------------------------------------------------------------------
|
||||||
; Cmdline handling
|
; Cmdline handling
|
||||||
|
|||||||
@@ -1880,66 +1880,85 @@ help_groups:
|
|||||||
;-----------------------------------------------------------------------------
|
;-----------------------------------------------------------------------------
|
||||||
; Commands format definitions
|
; 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:
|
commands:
|
||||||
dd _aH, OnHelp, HelpSyntax, HelpHelp
|
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
|
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
|
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
|
dd aLoad, OnLoad, LoadSyntax, LoadHelp
|
||||||
db 6
|
db CMD_WITH_PARAM or CMD_WITHOUT_LOADED_APP
|
||||||
|
|
||||||
dd aReload, OnReload, ReloadSyntax, ReloadHelp
|
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
|
dd aTerminate, OnTerminate, TerminateSyntax, TerminateHelp
|
||||||
db 9
|
db CMD_WITHOUT_PARAM or CMD_WITH_LOADED_APP
|
||||||
|
|
||||||
dd aDetach, OnDetach, DetachSyntax, DetachHelp
|
dd aDetach, OnDetach, DetachSyntax, DetachHelp
|
||||||
db 9
|
db CMD_WITHOUT_PARAM or CMD_WITH_LOADED_APP
|
||||||
|
|
||||||
dd aSuspend, OnSuspend, SuspendSyntax, SuspendHelp
|
dd aSuspend, OnSuspend, SuspendSyntax, SuspendHelp
|
||||||
db 9
|
db CMD_WITHOUT_PARAM or CMD_WITH_LOADED_APP
|
||||||
|
|
||||||
dd aResume, OnResume, ResumeSyntax, ResumeHelp
|
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
|
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
|
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
|
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
|
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
|
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
|
dd aBp, OnBp, BpSyntax, BpHelp
|
||||||
db 0Ah
|
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||||
|
|
||||||
dd aBpm, OnBpmb, BpmSyntax, BpmHelp
|
dd aBpm, OnBpmb, BpmSyntax, BpmHelp
|
||||||
db 0Ah
|
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||||
|
|
||||||
dd aBpmb, OnBpmb, BpmSyntax, BpmHelp
|
dd aBpmb, OnBpmb, BpmSyntax, BpmHelp
|
||||||
db 0Ah
|
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||||
|
|
||||||
dd aBpmw, OnBpmw, BpmSyntax, BpmHelp
|
dd aBpmw, OnBpmw, BpmSyntax, BpmHelp
|
||||||
db 0Ah
|
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||||
|
|
||||||
dd aBpmd, OnBpmd, BpmSyntax, BpmHelp
|
dd aBpmd, OnBpmd, BpmSyntax, BpmHelp
|
||||||
db 0Ah
|
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||||
|
|
||||||
dd aBl, OnBl, BlSyntax, BlHelp
|
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
|
dd aBc, OnBc, BcSyntax, BcHelp
|
||||||
db 0Ah
|
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||||
|
|
||||||
dd aBd, OnBd, BdSyntax, BdHelp
|
dd aBd, OnBd, BdSyntax, BdHelp
|
||||||
db 0Ah
|
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||||
|
|
||||||
dd aBe, OnBe, BeSyntax, BeHelp
|
dd aBe, OnBe, BeSyntax, BeHelp
|
||||||
db 0Ah
|
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||||
|
|
||||||
dd aReg, OnReg, RSyntax, RHelp
|
dd aReg, OnReg, RSyntax, RHelp
|
||||||
db 0Ah
|
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||||
|
|
||||||
dd aUnpack, OnUnpack, UnpackSyntax, UnpackHelp
|
dd aUnpack, OnUnpack, UnpackSyntax, UnpackHelp
|
||||||
db 9
|
db CMD_WITHOUT_PARAM or CMD_WITH_LOADED_APP
|
||||||
|
|
||||||
dd aLoadSymbols, OnLoadSymbols, LoadSymbolsSyntax, LoadSymbolsHelp
|
dd aLoadSymbols, OnLoadSymbols, LoadSymbolsSyntax, LoadSymbolsHelp
|
||||||
db 0Ah
|
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||||
|
|
||||||
dd 0
|
dd 0
|
||||||
|
|
||||||
;-----------------------------------------------------------------------------
|
;-----------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ commands: ; all commands must be in uppercase
|
|||||||
; dd 'APPE', login_first, login_first, login_first, cmd_APPE
|
; dd 'APPE', login_first, login_first, login_first, cmd_APPE
|
||||||
dd 'CDUP', login_first, login_first, login_first, cmdCDUP
|
dd 'CDUP', login_first, login_first, login_first, cmdCDUP
|
||||||
dd 'CWD', login_first, login_first, login_first, cmdCWD
|
dd 'CWD', login_first, login_first, login_first, cmdCWD
|
||||||
|
dd 'XCWD', login_first, login_first, login_first, cmdCWD
|
||||||
dd 'DELE', login_first, login_first, login_first, cmdDELE
|
dd 'DELE', login_first, login_first, login_first, cmdDELE
|
||||||
; dd 'HELP', login_first, login_first, login_first, cmd_HELP
|
; dd 'HELP', login_first, login_first, login_first, cmd_HELP
|
||||||
dd 'LIST', login_first, login_first, login_first, cmdLIST
|
dd 'LIST', login_first, login_first, login_first, cmdLIST
|
||||||
@@ -96,6 +97,7 @@ commands: ; all commands must be in uppercase
|
|||||||
dd 'PASV', login_first, login_first, login_first, cmdPASV
|
dd 'PASV', login_first, login_first, login_first, cmdPASV
|
||||||
dd 'PORT', login_first, login_first, login_first, cmdPORT
|
dd 'PORT', login_first, login_first, login_first, cmdPORT
|
||||||
dd 'PWD', login_first, login_first, login_first, cmdPWD
|
dd 'PWD', login_first, login_first, login_first, cmdPWD
|
||||||
|
dd 'XPWD', login_first, login_first, login_first, cmdPWD
|
||||||
dd 'QUIT', cmdQUIT, cmdQUIT, cmdQUIT, cmdQUIT
|
dd 'QUIT', cmdQUIT, cmdQUIT, cmdQUIT, cmdQUIT
|
||||||
; dd 'REIN', login_first, login_first, login_first, cmd_REIN
|
; dd 'REIN', login_first, login_first, login_first, cmd_REIN
|
||||||
; dd 'REST', login_first, login_first, login_first, cmd_REST
|
; dd 'REST', login_first, login_first, login_first, cmd_REST
|
||||||
|
|||||||
Reference in New Issue
Block a user