> Hello,
>
> recently the DEBUG utility got an upgrade:
>
> https://github.com/Baron-von-Riedesel/DOS-debug
>
> The main reason for the new version is that in v1.28 the "driver" variant
> was broken. But there are also a few nice bug fixes
>
> There exist now also a version that can flip video screens between
> debugger and debuggee, thus giving a much better look as to what the
> debugged program is really doing.
> Verne Brooks has implemented this feature in his debug version as well,
> but I decided not to follow the - simple - approach that he chose ( using
> the BIOS page switching mechanisms ). It's because I had to learn that
> there exist quite a few machines where this BIOS switching has quirks.
> What's done instead is to save/restore video contents to an XMS memory
> block. That also has its disadvantages ( won't work on 8086 machines ,
> needs an XMS host, may run out of handles, copying several kB of data
> to/from slow video memory, ... ), but it works, and it works quite
> satisfying.
I copied the vv feature from your Debug on Saturday into lDebug, then expanded it a bit. I added V ON and V OFF commands to enable or disable video screen swapping. I also made sure that it can work on 8086 (86M) or 286 (PM) machines. (It is true that XMS generally requires a 286. But, for example, my tinyxms for 8086tiny used to provide XMS on an 8086-level machine. (Now updated to 186-level which includes all 286-level R86M features.)) I also added a section to the manual. Unlike your approach of providing a separate executable that always enables screen swapping, I made it so it is included in the default executable but starts out as disabled. The V ON command or /V+ switch to the debugger can be used to enable it.
And I also added a device driver mode entrypoint and init to lDebug. Unlike yours, I do create a PSP and do PSP-swapping, I allow some limited support for quitting the debugger if it did not return to DOS's device loader yet, and the device driver is built-into the normal executable so it's a triple-mode executable: DOS application, DOS device driver, or DOS kernel.
The "current release" is available on our server at https://pushbx.org/ecm/download/ldebug.zip.
Still missing before release 5 is the lDebugX fix to check segment limits to determine using 32-bit offsets rather than the D/B bit. --- l |