====== Early July work ====== **2024-07-07** ===== Enhanced DR-DOS ===== * [[https://hg.pushbx.org/ecm/edrdos/rev/c15abf01ed58|Add listing file output]] for dosgrps.asm * Fix: [[https://hg.pushbx.org/ecm/edrdos/rev/7616ed590558|LFN search calling the redirector]] should not expect FAT+ size bits in the DTA * Fix: [[https://hg.pushbx.org/ecm/edrdos/rev/877d3129bbed|Address all new LFN variables using the BDOS_DATA segment]] instead of a mix ===== TracList ===== * convedr.pl: * [[https://hg.pushbx.org/ecm/tractest/rev/629a598dde0e|extract function to process .rel file]] * [[https://hg.pushbx.org/ecm/tractest/rev/facfd0f5c8eb|allow lack of initial blank]] before offset of machine code dump * [[https://hg.pushbx.org/ecm/tractest/rev/ac400c73c5bc|allow specifying explicit .rel files]] * [[https://hg.pushbx.org/ecm/tractest/rev/9eb085ae15db|subtract group base from segmented section address]] in WarpLink .map file * [[https://hg.pushbx.org/ecm/tractest/rev/19cecc618c9f|extract function to format dump]] * [[https://hg.pushbx.org/ecm/tractest/rev/cd796b6097c7|accept machine code line overflow]] * [[https://hg.pushbx.org/ecm/tractest/rev/a11d87e0ed73|allow equals sign before offset]] * [[https://hg.pushbx.org/ecm/tractest/rev/868d843c67d9|display trace listing source file]] * convmasm.pl: [[https://hg.pushbx.org/ecm/tractest/rev/bea07af5e0b5|display trace listing source file]] * convdebx.pl: [[https://hg.pushbx.org/ecm/tractest/rev/198dca325961|support new JWasm listing relocation markers]] (after [[https://github.com/Baron-von-Riedesel/JWasm/pull/23|the Pull Request]] resulted in [[https://github.com/Baron-von-Riedesel/JWasm/commit/ab8a297024e6f5063355f6e3b50299eaa0d46d03|an update]] to JWasm) * traclist.pl: [[https://hg.pushbx.org/ecm/tractest/rev/f6d08c2b304f|display trace listing source file]] in opcode2 line, moving the opcode2 line format code to later in the main loop 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 - Input the .map file (from WarpLink) - Pipe the .lnk file - Filter out the .obj files listed - Create the .lst filenames from the .obj filenames - 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: - Run fixupp reloc on the JWasm generated files, writing to the null device but redirecting output to .rel files - Feed all .rel files into convedr.pl (after the .map file, before the .lst files) ===== lDebug ===== [[https://hg.pushbx.org/ecm/ldebug/shortlog/a25db784fd80|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 {{tag>edrdos traclist ldebug eld}} ~~DISCUSSION~~