This shows you the differences between two versions of the page.
— |
blog:pushbx:2023:1008_early_october_work_on_extensions_for_ldebug [2023-10-08 18:49:57 +0200 Oct Sun] (current) ecm created |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Early October work on Extensions for lDebug ====== | ||
+ | |||
+ | **2023-10-08** | ||
+ | |||
+ | This week was spent on greatly adding to the utility of the Extension for lDebug ecology. One change was needed in the lmacros collection to support an ELD. | ||
+ | |||
+ | |||
+ | ===== lmacros section types ===== | ||
+ | |||
+ | The lmacros3.mac family of sectioning directives, '' | ||
+ | |||
+ | The macros using the types previously compared only the section name, which is obviously limited. Rather than only detecting the exact name " | ||
+ | |||
+ | |||
+ | ===== lDebug ELD work ===== | ||
+ | |||
+ | ==== Build environment ==== | ||
+ | |||
+ | The sources for all ELDs moved into the '' | ||
+ | |||
+ | A mak.sh and cfg.sh were created in the subdirectory to build all non-test ELDs. (The eldcomp ELD is included here albeit it is useful only for ELD developers.) | ||
+ | |||
+ | The default ELD code section size was increased to 16 KiB for application and device mode to match the boot loaded mode. Extensions for lDebug are still not supported in the default builds. | ||
+ | |||
+ | |||
+ | ==== Infrastructure ==== | ||
+ | |||
+ | I define ELD infrastructure to refer mainly to the debugger parts of the ELD interfaces. Therefore, parts that are always loaded and not specific to each ELD. These are the additions: | ||
+ | |||
+ | * QUIETINSTALL noun [[https:// | ||
+ | * Reclaim [[https:// | ||
+ | * Additional links, these also are zero code section use. | ||
+ | * An environment block of nearly 2 KiB is allocated to the debugger. If they fit, device parent and application environments are copied to initialise the block. This supports the SET commands ELD. | ||
+ | * [[https:// | ||
+ | * Intercepting '' | ||
+ | * ELD variables: A certain amount of " | ||
+ | |||
+ | |||
+ | ==== The specific ELDs ==== | ||
+ | |||
+ | These are the ELDs I added: | ||
+ | |||
+ | * WITHHDR: Allows to run D commands with a single-command header or trailer, modifying DCO flags to accomplish this. | ||
+ | * PRINTF: Provides some support for formatting text, with the specifiers %X, %u, %d, %c, %s (memory range, memory ASCIZ, or list-like parameter). A special %b code is used to call the size display function of the debugger, which formats a number as Bytes, KiB, MiB, or GiB. | ||
+ | * IFEXT: Adds an IF [NOT] EXT " | ||
+ | * SET: Dumps all variables, or dumps a single variable, or deletes a variable, or writes to a variable. FreeCOM-style SET /E captures a line of output of another command into a variable. (The /E switch accepts an additional numeric switch to skip a number of lines before the one to capture.) | ||
+ | * VARIABLE: Expand %-delimited variables in debugger commands. | ||
+ | * AMOUNT: Adds the ELDAMOUNT variable which reads the number of currently resident ELDs. | ||
+ | |||
+ | |||
+ | ==== Misc ==== | ||
+ | |||
+ | The manual gained two sections on ELDs. Those are [[https:// | ||
+ | |||
+ | {{tag> | ||
+ | |||
+ | |||
+ | ~~DISCUSSION~~ | ||