This shows you the differences between two versions of the page.
— |
blog:pushbx:2023:0122_serial_mouse_iocline_first_steps_on_einsicht [2023-01-22 17:39:30 +0100 Jan Sun] (current) ecm created |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Serial mouse, IOCLINE, first steps on Einsicht ====== | ||
+ | |||
+ | **2023-01-22** | ||
+ | |||
+ | This week several things progressed with the debugger and the 95LX. | ||
+ | |||
+ | ===== Serial mouse ===== | ||
+ | |||
+ | However, the first item of note is that I unearthed a three-button serial mouse. I connected it to COM1 of the 686 DOS box. (COM2 has the null modem cable to the Linux box because PD ZModem defaults to COM2, which I then copied in lDebug.) Installing a driver was as easy as issuing a '' | ||
+ | |||
+ | |||
+ | ===== The IOCLINE variable ===== | ||
+ | |||
+ | During use of the debugger on the HP 95LX, I noticed upon some long line (probably testing nested IF commands) that the "^ Error" indicator' | ||
+ | |||
+ | The solution was quickly found: When the '' | ||
+ | |||
+ | Easier said than done. I had to test the handling of this for an unusual amount of time, as the details kept slipping my grasp. I do think I succeeded eventually, but I did mark the code as magic. In this sense that means it is mysterious, surprising, or difficult to understand. | ||
+ | |||
+ | So after testing the new build on the Linux machine of course the next order was to transfer it to the 95LX. | ||
+ | |||
+ | |||
+ | ===== Transfer woes ===== | ||
+ | |||
+ | The transfer of the lcdebugu.com file proved difficult. PD ZModem repeatedly terminated with an error. Eventually, I found that the free space on the SRAM card was below 3000 Bytes. I deleted some files to make space for the full file. | ||
+ | |||
+ | Next, it appeared that PDZM continued the transfer where it had aborted. The transfer appeared to run to its completion. However, running '' | ||
+ | |||
+ | I transferred a somewhat older build of lDebug (ldebug.com) after that. I also checked the lCDebug I had transferred in dosemu2 on the Linux box, where it worked flawlessly. Finally I ran lDebug on the problematic lCDebug on the 95LX. lCDebug started up fine, but did not quit on a Q command. Running BU and tracing into the Q command I found it was corrupted. | ||
+ | |||
+ | Moreover, I found out that there was no bug in the lCDebug program, its code section simply was corrupted. I tested for this by debugging the initial relocations and segment setups and finding that at the point the code section is relocated, the Q command code was already wrong. | ||
+ | |||
+ | So I had to transfer the lCDebug file anew. | ||
+ | |||
+ | Side note: The 95LX's shell appears to be missing a '' | ||
+ | |||
+ | Eventually, the IOCLINE splitting handling turned out to work perfectly. Which wasn't surprising after the tests on the Linux development box, but it's something. | ||
+ | |||
+ | |||
+ | ===== First Einsicht ===== | ||
+ | |||
+ | As a german proverb has it, " | ||
+ | |||
+ | After a bit of documentation of the prior changes to Insight, particularly the new keyboard shortcuts, the actual work on Einsicht kicked off with the Register window. It is now in a state where a register dump (R or RE command) in the connected lDebug will update the Register window in Einsicht, and register or flag modifications in Einsicht' | ||
+ | |||
+ | This is still far from perfect. Every digit or flag modified in Einsicht sends a separate command to lDebug. The Terminal window is not immediately updated with the sent command, requiring to enter another keypress to Einsicht or even exit the Flags window to trigger an update. And Einsicht never sends an R command for dumping registers, or '' | ||
+ | |||
+ | Further, the lDebug register values are not yet copied to the saved registers at any point, so differences to Einsicht' | ||
+ | |||
+ | Another bit that is not yet supported is to skip the lDebug register change highlighting escape codes that lDebug can intersperse into its output for the R register dump command. Partially supported is running lDebug on a 16-bit (pre-386) CPU, where writing to the 386-specific registers is not supported. | ||
+ | |||
+ | It leaves a lot to be desired, and the model of the register and flag updates will not exactly map to how disassembly and data buffers can be updated from lDebug output, but it is a start. | ||
+ | |||
+ | |||
+ | {{tag> | ||
+ | |||
+ | |||
+ | ~~DISCUSSION~~ | ||