|
|
— |
blog:pushbx:2023:1101_late_october_work_on_ldebug [2023-11-01 14:03:47 +0100 Nov Wed] (current) ecm created |
| ====== Late October work on lDebug ====== |
| |
| **2023-10-29** |
| |
| This week I worked only on lDebug. |
| |
| ===== ELD-unrelated changes ===== |
| |
| * _INIT_MAX option [[https://hg.pushbx.org/ecm/ldebug/rev/773e4f433fc1|to restore prior init allocation]] so that a second init relocation is never needed |
| * Update and delete some outdated comments |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/8664c53091a9|Document DCO6 flags]] for ROM-BIOS I/O in the manual's service reference |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/94d8f1df6045|Add manual section]] on [[https://pushbx.org/ecm/doc/ldebug.htm#buildingmktables|building and running mktables]] |
| |
| |
| ===== ELD infrastructure ===== |
| |
| * The [[https://hg.pushbx.org/ecm/ldebug/rev/03b68397bac7|structures for ELD variables are now first]] in the isvariable? structures, meaning an ELD can override debugger built-in variables |
| * Link ''build_option_PM'' equate [[https://hg.pushbx.org/ecm/ldebug/rev/5f40b8533118|to indicate whether debugger build is an lDebugX]] |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/a59b59903dcf|Make it so offset 79h]] in the ELD code section is always a transfer to the debugger's ''cmd3'' command loop |
| * Update manual on some ELD-related topics |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/f929d0bef424|Link]] the ''yy_check_lfn'' function |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/4cd49dbe6ac8|Link some code entrypoints as data links]] as well |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/6b520db1ce9d|Link]] the ''yy_reset_buf'' function for ELDs that want to write to ''line_in'' |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/8bd7a474c514|Add new hook]] ''ext_puts_copyoutput_handler'' later in puts (after silent buffer dispatch, before paging prompt), with a chain of downlinks similar to the command and preprocess hooks |
| |
| |
| ===== ELD architecture ===== |
| |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/56b74a25a855#l2.242|Add mmacro]] ''dw_emserr'' which adds a relocation except for parameters matching the string "0" |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/750a885038bb|Fix alignment directive]] in amount ELD's transient data section |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/3cf03dacc44b|X ELD intercepts]] ''?X'' commands to display its help |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/285912985fbe|Add new second parameter]] to ''extcall'' with the name "PM required" which is an optional code link if _PM=0 and a required code link otherwise |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/771ffed50e33|Optimise linker]] if no PM required code links occur |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/79905bc50967|Put the required keyword]] on extcall mmacro uses for ''puts_ext_done'' to harden against changing to extcallcall |
| * Call ''yy_reset_buf'' before writing to ''line_in'' (to discard buffered content from files) |
| |
| |
| ===== Specific ELDs ===== |
| |
| * X ELD to add EMS commands (X commands) if debugger is built with _EMS=0 |
| * List ELD: [[https://hg.pushbx.org/ecm/ldebug/rev/8d2b384f42f0|Drop run time check]] whether optional code link to interrupt call function succeeded, replaced by a PM required code link |
| * DTA display ELD |
| * List ELD: [[https://hg.pushbx.org/ecm/ldebug/rev/ae2163aee432|Add SFN keyword]] to use SFN search even if LFN search would be available |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/c84613c30b8d|Document AMIS message display]] ELD's functions [[https://pushbx.org/ecm/doc/ldebug.htm#int2Dfunc40|in the manual]] |
| * LDMEM: [[https://hg.pushbx.org/ecm/ldebug/rev/49cc84a8ccba|Display amount]] of used and total ELD variables |
| * LDMEM: [[https://hg.pushbx.org/ecm/ldebug/rev/c8640e734cbf|Display individual ELD variables]] |
| * LDMEM: [[https://hg.pushbx.org/ecm/ldebug/rev/f6e305716d0b|Display ELD instances]] corresponding to ELD variables |
| * LDMEM: [[https://hg.pushbx.org/ecm/ldebug/rev/4100520d9d2b|Display command handler entrypoints]] and their corresponding ELD instances |
| * Copy Output (CO) ELD: New ELD using a new puts hook to copy debugger terminal output to a file while not InDOS |
| * ELD test A: Test ELD that installs multiple variables and also uses array variables |
| * IF EXT ELD: [[https://hg.pushbx.org/ecm/ldebug/rev/fb3cab4b4484|Allow to operate as a one-shot ELD]] without installing as a resident ELD. This uses command injection to run the THEN command if the condition is true. The ELD will mark itself resident for the command injection, but unmark itself before the injected command runs, allowing the debugger's EXT command's reclaim handling to reclaim all of this ELD's memory when an EXT command is run. |
| |
| {{tag>ldebug eld}} |
| |
| |
| ~~DISCUSSION~~ |
| |