====== Mid late April work ====== **2024-04-21** This week I worked on several projects. ===== Instruction reference ===== * [[https://hg.pushbx.org/ecm/insref/rev/fb3914592257|Specify sizes of some imm operands]] * [[https://hg.pushbx.org/ecm/insref/rev/bb1d521ac31f|Fix wrong parentheses]] * [[https://hg.pushbx.org/ecm/insref/rev/ebafc620974d|Fix NTVDM BOP]], it is an LES not LEA ===== MSDebug ===== * Bugfix: [[https://hg.pushbx.org/ecm/msdebug/rev/8d9ceac8c59f|CALL and JMP with an operand of the form SSSS:OOOO]] is always assembled as far, even if the segment matches the segment being assembled into (bug in original MS-DOS Debug) * [[https://hg.pushbx.org/ecm/msdebug/rev/a2b4008ff7a6|Create a map file]] * [[https://hg.pushbx.org/ecm/msdebug/rev/827ff6c52ee0|Insert maximum height and width for listing]] using page directives * [[https://hg.pushbx.org/ecm/msdebug/rev/b5073b494fe8|Remove a trailing question mark]] * Feature added: [[https://hg.pushbx.org/ecm/msdebug/rev/1728c5172ae4|Support semicolon at start of line]] as comment indicator * [[https://hg.pushbx.org/ecm/msdebug/rev/414c058aa051|Use tractest convmasm.pl]] to create trace listing file for lDebug TracList ===== TracList / tractest ===== * [[https://hg.pushbx.org/ecm/tractest/rev/e7ded8de843b|Add the E.]] (again) * [[https://hg.pushbx.org/ecm/tractest/file/68653f1d72d8/convmasm.pl|Add convmasm.pl script]] to convert MSDebug map and listing files to a trace listing usable by us * [[https://hg.pushbx.org/ecm/tractest/file/f34bc863449f/convdebx.pl|Add convdebx.pl script]] to convert Debug/X listing file to a trace listing usable by us The Debug/X listing file needs to be created by [[https://github.com/ecm-pushbx/JWasm/commits/ecm-list-relocations/|a patched JWasm]] to really be useful for us. [[https://github.com/Baron-von-Riedesel/JWasm/pull/23|This patch makes the assembler mark relocations in its listing]], in a style similar to NASM. ===== lDebug ===== * Assemble and disassemble [[https://hg.pushbx.org/ecm/ldebug/rev/fa6e1afbb84a|shift/rotate with BYTE 1]] for 186+ form with an imm8 that happens to equal 1 * mktables: [[https://hg.pushbx.org/ecm/ldebug/rev/beacda5ecb5c|Check that no duplicate keys exist]] * [[https://hg.pushbx.org/ecm/ldebug/rev/a0dc5cd5f0cf|Allow CALL/JMP FAR imm]], a form of far branch that takes a default segment from the a_addr (segment being assembled into). Compatible to MSDebug. As suggested [[https://github.com/Baron-von-Riedesel/DOS-debug/commit/9a7c66cebe17254db65de4f70f61a0aa22ee8682#diff-20872ca9cde35e29fad36f69db24d50e1fab449f3e4080e60562e7fe0176de21R7|in a comment to Debug/X]]. * [[https://hg.pushbx.org/ecm/ldebug/rev/b8b31414263f|Add new type OP_IMM_NOT_EXTEND]] which will disassemble with a WORD or DWORD size keyword if the immediate is in imms8 range * Assembler: Allow [[https://hg.pushbx.org/ecm/ldebug/rev/c762c0c05464|to specify displacement size]] within square brackets, allowing to specify BYTE, WORD, or DWORD size. If permissible the displacement is extended to this size. ([[https://hg.pushbx.org/ecm/ldebug/rev/eefa3be3acb7|1]], [[https://hg.pushbx.org/ecm/ldebug/rev/b15dffadf7cb|2]]) * Assembler: [[https://hg.pushbx.org/ecm/ldebug/rev/a8a228f21433|Forbid assembling MOVSX/MOVZX]] with 32-bit destination and unspecified source size (new operand type OP_ASM_MOVX) {{tag>insref msdebug traclist ldebug}} ~~DISCUSSION~~