Hello,
Today I'm pushing out release 9 of lDebug, the 86-DOS debugger with the small L
[1]! Just in time for the next FreeDOS interim release. It collected a few
changes [2] since March's release 8. This includes several bugfixes and a
number of other improvements, such as:
Assembling PUSH or POP with memory operands will now default to a size if none
is given, to make the debugger more compatible to MS-DOS Debug. When specifying
16-bit unsigned numbers above-or-equal FF80h to the assembler, it can encode
them as sign-extended 8-bit immediates in some cases. Further, the assembler
accepts JMP FAR with a single number as implying a destination code segment
equal to the current assembly segment, a feature copied from MS-DOS Debug.
Assembling a MOVZX instruction writing to a 32-bit register from a memory
operand lacking a size is rejected. (If the destination is a 16-bit register
instead then a byte size is assumed.)
The new MODRM keyword allows to select or depict encodings that the assembler
wouldn't choose by default. The xchg operand order in both the assembler and
disassembler match NASM's and NDISASM's now. With a new DAO (Debugger Assembler
Options) flag the NASM form of LOOP with an ECX or CX operand can be
disassembled when an ASIZE prefix is found, rather than suffixing a D or W.
Three patch areas are added, currently used only for the TSC Extension for
lDebug (ELD), to run small code snippets close to exiting or entering the
debugger upon running a debuggee.
The instsect.com application now ships with the improved FSIBOOT5 protocol for
the two-stage FAT32 loader. The application itself was improved somewhat, as
well.
Heatshrink compression of the online help pages is now enabled, shrinking the
total resident size of the debugger as compared to using the uncompressed
online help.
The immediate assembler is enabled as well. This feature is inspired by D86. It
allows you to enter a debugger command that consists of a dot followed by an
assembly instruction, which will be assembled into a small buffer and ran
immediately.
Bugs fixed:
* DPMI exit call to int 21h with 32-bit stack would crash. Reported by Japheth.
* Switching modes from DPMI PM to Real/Virtual 86 Mode with non-86-mode
selector bases for one of the address variables (such as ADS, "Address D
command Segment/Selector") would crash.
* Linear address specification to G or B commands using "@(" didn't parse
closing parens correctly.
* BL command display fixed for DPMI with segments not matching current CS.
* Allow a comma between a numeric size expression (after L specifier) and a
subsequent size keyword.
* Correctly parse device mode command line if it ends in a Line Feed (LF).
* Avoid some memory corruption during device mode init.
* The LBA check of the booted debugger works around a bug in the Xi8088
ROM-BIOS [3] by setting DS to 40h while calling int 13h function 41h.
* Flat binary file load disabled by default in device mode or resident
debugger. It'd corrupt memory if no address was specified.
For the exact log of changesets you can consult the Mercurial repo [4]. I also
write about lDebug changes regularly on my tech blog, the pushbx blog [5]. As
usual the default, FreeDOS, and SvarDOS packages can be downloaded from our
server [6].
My suggested blurb for the FreeDOS news:
Today marks another release of the DOS debugger with the small L, lDebug. This
line-oriented debugger is a fork originally based on the 2008 version 1.13 of
FreeDOS Debug/X, with a number of additions. Release 9 marks some bugfixes, a
new revision of the lDebug/lDOS boot protocol for FAT32 drives, and the
immediate assembler feature now enabled at build time. There's [a longer
announcement on the freedos-user list]. Get lDebug from [ecm's website] [7] or
from the mirror at ibiblio's FreeDOS Files Archive.
Regards,
ecm
[1]: https://pushbx.org/ecm/web/#projects-ldebug
[2]: https://pushbx.org/ecm/doc/ldebug.htm#news-r9
[3]: https://www.bttr-software.de/forum/forum_entry.php?id=21275
[4]: https://hg.pushbx.org/ecm/ldebug/shortlog/release9
[5]: https://pushbx.org/ecm/dokuwiki/doku.php?id=blog:pushbx
[6]: https://pushbx.org/ecm/download/ldebug/
[7]: https://pushbx.org/ecm/web/#projects-ldebug
_______________________________________________
Freedos-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-user