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