User Tools

Site Tools


blog:pushbx:2024:0708_early_july_work

Early July work

2024-07-07

Enhanced DR-DOS

TracList

Not yet: Allow to combine fixup information from .rel files with that obtained from a patched JWasm (either with my original Pull Request or with the updated JWasm 2.18) or an unpatched JWasm without any reloc markers

The group base subtraction is done to make use of WarpLink's odd format. The segmented addresses often appear to be of the form SSSS:000O (offset is below 10h). This doesn't mean the object file's segment is addressed with a very low offset; the true offset it is addressed at is obtained by calculating a linear address and subtracting the linear address of the group base. This change allows to create a useful trace listing file for the DRDOS kernel module.

Not yet: Merge all conversion scripts into one.

Not yet: Detect when trace listing source name is the trace listing name with s/.tls/.lst/ and hide it then.

Enhanced DR-DOS trace listing file conversion scriptlets

This scriptlet creates the DRDOS module's trace listing file:

~/proj/tractest/convedr.pl drdos/bin/drdos.map $(
  cat drdos/wldrdos.lnk |
  grep -Eoi '.\\bin\\[0-9a-zA-Z]+\.obj' |
  sed -re 's/\.\\bin\\/drdos\/bin\//g;s/\.obj/\.lst/g'
) > drdos.tls
  1. Input the .map file (from WarpLink)
  2. Pipe the .lnk file
  3. Filter out the .obj files listed
  4. Create the .lst filenames from the .obj filenames
  5. Call convedr.pl and pipe into the .tls file

This is the scriptlet for the DRBIO module:

bash -c '
for file;
  do ./ltools/fixupp drbio/"$file".obj /dev/null reloc > drbio/"$file".rel;
done' scriptlet $(
  grep JWASM drbio/make.bat |
  grep -Eio '\-Fo[^ ]+' |
  sed -re 's/-Fo//g;s/\\/\//g;s/\/BIN\//\/bin\//g'
) && ~/proj/tractest/convedr.pl drbio/bin/bios.map $(
  grep JWASM drbio/make.bat |
  grep -Eio '\-Fo[^ ]+' |
  sed -re 's/-Fo//g;s/\\/\//g;s/\/BIN\//\/bin\//g;s/^\.\//drbio\//g;s/$/\.rel/g'
) $(
  cat drbio/wlbios.lnk |
  grep -Eoi '.\\bin\\[0-9a-zA-Z]+\.obj' |
  sed -re 's/\.\\bin\\/drbio\/bin\//g;s/\.obj/\.lst/g'
) > drbio.tls

This does some additional things:

  1. Run fixupp reloc on the JWasm generated files, writing to the null device but redirecting output to .rel files
  2. Feed all .rel files into convedr.pl (after the .map file, before the .lst files)

lDebug

Test updates. Most tests can run in DPMI with either a 16-bit or 32-bit CS now. All Extension for lDebug tests are included in this, and many of the earlier tests. Not included:

  • rr_status: Uses many branches that depend on asize
  • timeout: Expected failure cannot be communicated to the dynamic test adder
  • int2D_unhook: Uses DOS functions to hook interrupts
  • dpmi*: Expect to start in 86 Mode and enter PM as part of the test
  • load_boot: DPMI requires to run under a DOS
  • double_ctrlc: Wants to break into debuggee, but uses 86 Mode interrupt 8 to break
You could leave a comment if you were logged in.
blog/pushbx/2024/0708_early_july_work.txt · Last modified: 2024-07-08 19:03:50 +0200 Jul Mon by ecm