It would be nice if the first 14 ASCII/ANSI characters of a string, or up to the first "$" DS:DX is pointing to, would be printed during a t-step command.
The output should appear on the second line at the edge of the register output because there is still free space at the edge available for a maximum of 16 characters.
Control characters should be embedded in parentheses and described as specified in the ASCII table (dt command in LDEBUG).
Example:
-d ds:dx,dx+E
2A3F:0000 48 65 6C 6C 6F 20 57 6F-72 6C 64 21 0D 0A 24 Hello World!..$
-t
AX=0924 BX=0006 CX=001F DX=0000 SP=0080 BP=0000 SI=0000 DI=0000
DS=2A3F ES=2A3E SS=2A40 CS=2A3E IP=000C 0_ D_ I1 S_ Z1 A_ P1 C_ "Hello World! "
2A3E:000C B44C mov ah, 4C
-
And for an example with control characters, if there is a carriage return and line feed between the string "Hello" and "World".
-t
AX=0924 BX=0006 CX=001F DX=0000 SP=0080 BP=0000 SI=0000 DI=0000
DS=2A3F ES=2A3E SS=2A40 CS=2A3E IP=000C 0_ D_ I1 S_ Z1 A_ P1 C_ "Hello[CR][LF]W"
2A3E:000C B44C mov ah, 4C
-
Added yesterday as the Extension for lDebug called rdumpstr.eld. Like the rdumpidx.eld this will not display bytes >= 128 as text, instead replacing them by dots (to save on a little space). Again if you would like this to change just say so.
Like the rdumpidx.eld in https://sourceforge.net/p/freedos/feature-requests/130/#8169 this ELD will only modify the R register dump in 16-bit, Real/Virtual 86 Mode, non-40-column mode. The requirement that debuggee not be in Protected Mode and the limit to 16-bit registers means we do not have to worry about segment limits when accessing the contents.