This shows you the differences between two versions of the page.
— |
blog:pushbx:2023:0120_ldebug_immasm_work_continued [2023-01-20 17:01:32 +0100 Jan Fri] (current) ecm created |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== lDebug immasm work continued ====== | ||
+ | |||
+ | **2023-01-17** | ||
+ | |||
+ | The immediate assembler implementation of lDebug has progressed a lot. From an experimental feature with a lot of debugging and very little safeguards, it can now run most instructions without fail. | ||
+ | |||
+ | ===== ===== | ||
+ | |||
+ | Calls can be traced into or proceeded past. Software interrupts are always proceeded past. | ||
+ | |||
+ | All instructions with an implied or explicit CS or IP operand are handled to act as intended. The branches (including jcc, loop, jmp, call, ret) are mostly simulated. Likewise '' | ||
+ | |||
+ | The immasm code mostly can be written to the lDEBUG_CODE2 section if dual code is enabled. This turned out to be tedious because the assembler doesn' | ||
+ | |||
+ | The immediate assembler also got documented in the manual. | ||
+ | |||
+ | The dispatcher in cmd3 now allows a plain dot (followed by an EOL) to be handled as a no-op, even if _IMMASM is disabled. This is intended so that a plain dot line can always be entered, including when in assemble or register/ | ||
+ | |||
+ | The immasm was also adjusted so its disasm call will not generally repeat disassembly. This is important especially when the NEC disassembly repeat rules are in effect, as they would cause the disassembler to repeat after any '' | ||
+ | |||
+ | Something unrelated to immasm is that the disassembly of '' | ||
+ | |||
+ | There are two dosemu2 bugs that need to be handled yet. I will have to compile a recent dosemu2 revision to test against however. | ||
+ | |||
+ | {{tag> | ||
+ | |||
+ | |||
+ | ~~DISCUSSION~~ | ||