User Tools

Site Tools


blog:pushbx:2026:0927_mid_late_september_work_on_the_debugger_and_various

Mid late September work on the debugger and various

2026-09-27

This week changeset 7000 was added to the ldebug.exp repo.

testpxms

This program tests whether calling the Protected Mode XMS entrypoint succeeds with a number of different choices. The choices are:

  • B - set Big bit of the stack segment
  • D - set Default size bit of the code segment
  • O - set Operand size of the call instruction to 32-bit
  • C - compare the resulting data to insure it is correct

Crucially, this test assumed the 2019 dosemu2's semantics. This meant that a zero handle in the XMS move structure would interpret an address as a Virtual 86 Mode 16:16 far address, composed of a segment word and an offset word.

This it turns out is no longer what the 2026 dosemu2 uses for its function 0Bh when called from the Protected Mode XMS handler.

The individual changesets:

I reported the various failures of this test program to the dosemu2 project. I was eventually told that function 0Bh works differently when called in Protected Mode now.

This led to adding the Protected Mode XMS extension function 7Bh, which accepts a type in the AL register indicating the interpretation of handle zero addresses:

  • 00h - Virtual 86 Mode far address
  • 01h - Linear address
  • 02h - Near 32-bit offset in current DS selector
  • 03h - Protected Mode 16:16 far address (selector and offset)
  • others - unsupported types return new error AEh

symsnip

ident86

ACEGALS

  • Add section pointersplus on +> arrows used for indices pointing to data within some structure that doesn't use near or far or segment pointers.

lDebug (experimental)

I originally wrote this fix as the head changeset of the ldebug.exp repo. Later, I reconsidered and exported it (hg expo) then imported it (hg impo) on top of the non-experimental repo's head changeset. To avoid a doubled changeset, I stripped the original from ldebug.exp then pulled the imported one and merged it with the prior experimental head.

Usually I avoid modifying history, but in this case the only modification happened in the experimental repo, so it is less critical.

tractest/TracList

You could leave a comment if you were logged in.
blog/pushbx/2026/0927_mid_late_september_work_on_the_debugger_and_various.txt · Last modified: by ecm