On at 2022-07-17 11:07 +0200, C. Masloch wrote:
Next problem: The cursor always stays in the lower left corner of the DOS screen. This is sort of documented in the manual [8], but I don't fully understand it.

The idea was to either wrap at the end of line for a dumb terminal
experience or try to stick to intended coordinates where possible.

A slightly more elegant method would have been to let the terminal
show the upper 80x25 chars of a 256x256 char coordinate system :-)

I don't understand how the F6 setting is related to any of what you wrote. The cursor problem is the only major problem I could not fix yet. Makes line editing in lDebug more difficult than I'd like it to be because you can't tell where the debugger's cursor is at.

Fixed the cursor problem [1] (at least for normal output with CR/LF/text, maybe not fixed for some ANSI escape things). Before this, all output during normal operation (ie not PROMPTPARM [2]) would simply write to the screen text memory wherever it pleased. The cursor wasn't *set* to stay in the lower corner, it just happened to be that after the DOS boot, config, and autoexec output the cursor usually *already* was in the lower corner. If you tried running CLS in FreeCOM and then started Terminal, the cursor would stay near the upper corner instead.

I also fixed a bug I didn't even know was there before: Pressing F5 would cycle through the different CR policies (what to send when receiving an Enter keypress) but would not update the status item that's supposed to show which CR policy is in effect. The fix was simple [6].

Another bug caused the speed to be garbled in the status display before using F2, at least when running Terminal as "terminal.com a 4 ! &". The upper byte of the word [linespeed] was nonzero in that case. [3]

So the remaining problems are:

1. sometimes part of long output is lost,

2. hang on STAU,

Improved this by enabling the "prevent jammed keyboard" option already given before in the source. This is now included by default, though only actually used when the hshake variable indicates a jam (STAU indicator lights up). [4] That allows to spam F7 until the keyboard jam handling lets through the keypresses, allowing to change the F7 setting back and regain control of the terminal.

3. inverted video changes to brown,

I missed previously that the default colour is yellow-on-blue, not light-white-on-blue as I assumed. Yellow is actually light-brown. That explains how we got to blue-on-brown. Anyway, I fixed the reset to actually set light-brown-on-blue [5] and the invert to properly invert the colours and intensity bits [6]. (RxANSI does it differently, as noted in the commit message here. Might be something to fix.)

4. and the cursor is glued to the bottom corner.

As mentioned, mostly fixed. Before the first output is shown the cursor is not set yet though. And as mentioned may not be correct if ANSI escape sequences are involved. But it is already much better for my simple use case.

Regards,
ecm


[1]: https://hg.pushbx.org/ecm/terminal/rev/14e39566145a
[2]: https://hg.pushbx.org/ecm/terminal/file/bf9903fceae9/term-set.asm#l97
[3]: https://hg.pushbx.org/ecm/terminal/rev/bac5c6182290
[4]: https://hg.pushbx.org/ecm/terminal/rev/d48e0bf12ed9
[5]: https://hg.pushbx.org/ecm/terminal/rev/c64249cb36b5
[6]: https://hg.pushbx.org/ecm/terminal/rev/bf9903fceae9


_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to