This shows you the differences between two versions of the page.
— |
blog:pushbx:2023:1115_early_november_work_on_extensions_for_ldebug [2023-11-15 17:10:12 +0100 Nov Wed] (current) ecm created |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Early November work on Extensions for lDebug ====== | ||
+ | |||
+ | **2023-11-12** | ||
+ | |||
+ | This week some more work on ELDs got done. I also [[https:// | ||
+ | |||
+ | |||
+ | ===== Other linker ELDs ===== | ||
+ | |||
+ | Two ELDs using the "other link" feature got added. This means that when they are built with ELDOTHER=1 then they will link some specifically marked data links (using the '' | ||
+ | |||
+ | This allows the two other link ELDs so far, ldmemoth.eld and instnoth.eld (variants of ldmem.eld and instnoun.eld respectively), | ||
+ | |||
+ | The additions to the ELDs individual sources [[https:// | ||
+ | |||
+ | The conversion of the two original ELDs to their other link variants was straightforward and achieved without any mistakes. The ldmem ELD was extended to also show command injection handlers. The instnoun ELD had commands added to set (install), clear (uninstall), | ||
+ | |||
+ | The use is limited for other install flags, like the DCO4 flags for interrupt hooks, because these front-end DCO flags are only actually acted upon when the cmd3 command loop runs. | ||
+ | |||
+ | Similarly, the ldmemoth ELD is limited in that it may be called when a memory structure is being modified by the other link debugger or one of its ELDs. | ||
+ | |||
+ | Further, the other link ELDs do not detect when the other link debugger terminates. It is to be considered user error to attempt to use them past that point. | ||
+ | |||
+ | |||
+ | ===== ldmem.eld ===== | ||
+ | |||
+ | Like mentioned, the ldmem ELD now displays a command inject handler. It also displays selector values in Protected Mode. | ||
+ | |||
+ | |||
+ | ===== Copy Output ELD (co.eld) ===== | ||
+ | |||
+ | The Copy Output ELD [[https:// | ||
+ | |||
+ | These changes result in two new modes of operation: GETINPUTMODE ALL (the prior behaviour) or GETINPUTMODE FULLONLY (ignore output during '' | ||
+ | |||
+ | The new hook in the debugger [[https:// | ||
+ | |||
+ | Unrelated to these changes, the ELD gained a COPYOUTPUT TRUNCATE command. | ||
+ | |||
+ | |||
+ | ===== dbitmap ELD ===== | ||
+ | |||
+ | This ELD allows to view as bitmaps data that represents 8-pixel-wide graphics with 1 bit per pixel. The data is dumped as text with configurable texts of up to 10 text bytes per pixel. | ||
+ | |||
+ | The data to be dumped can be specified with an INTERNAL keyword to access a font embedded into the ELD, which was lifted from the GLaBIOS project. | ||
+ | |||
+ | It is intended to add a mode where more than one bitmap can be displayed, with each bitmap occupying its own column. This is still to be added. | ||
+ | |||
+ | |||
+ | ===== lineio.asm ===== | ||
+ | |||
+ | The ::empty:: keyword [[https:// | ||
+ | |||
+ | |||
+ | ===== DOS current directory and current drive ELDs ===== | ||
+ | |||
+ | dospwd.eld: Display current drive' | ||
+ | |||
+ | doscd.eld: Change current directory and/or current drive | ||
+ | |||
+ | dosdrive.eld: | ||
+ | |||
+ | |||
+ | ===== dosdir.eld ===== | ||
+ | |||
+ | This ELD displays a DOS directory listing based on a pathname pattern specified to it. The listing can use either SFN search or LFN search. It can be verbose with SFN, attributes, size, last modified timestamp, and LFN, which is the default. It can also be WIDE, with just the SFN with brackets to indicate subdirectories, | ||
+ | |||
+ | |||
+ | ===== variable.eld ===== | ||
+ | |||
+ | This ELD gained a oneshot mode which displays or runs a command line tail passed to it, doing the expected variable substitution. This allows to use it without affecting all commands entered to the debugger. | ||
+ | |||
+ | |||
+ | ===== path.eld ===== | ||
+ | |||
+ | This ELD ports the init's filename extension warning, filename extension guessing, and path search to work for N and K commands entered to the fully initialised debugger. | ||
+ | |||
+ | |||
+ | ===== Misc ===== | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * Add a source/ | ||
+ | |||
+ | {{tag> | ||
+ | |||
+ | |||
+ | ~~DISCUSSION~~ | ||