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