On Thu, 5 Aug 2004, Bart Oldeman wrote:
Hello Bart,
But back to the question: "HOW DOES FREECOM KNOW THAT THE CURRENT STANDARD OUTPUT IS THE DEVICE DRIVEN BY THE BIOS?" Is it save / useful to use BIOS functions. Or how can FreeCOM ensure the human sitting on the other side of the line is seeing the results.
The only reliable way is to trap int10, write a character using int21 and
Yeah, that's what I thought of. And there is also some nice try for stdin ;-).
That said. In practice a console driver will have the "FAST int29" bit set, and a COM driver won't. As int29 will surely write a character to the console. This isn't waterproof in theory but ... I simply don't know of
When I saw your mail I had this "deja vu" feeling we get here on this list much more often ;)
Well, this thread deals with CLS in particular.
However, my reasoning goes further than that, e.g. the enhanced input
needs to position the cursor all over the line, which probably spans multiple physical lines. And Cursor_Left (ASCII 0x08) does not necessarily
wrap to the previous (physical) line.
Matthias once wrote a long mail saying how other DOSes deal with this.
Hmm. I'm curious. He writes that DR DOS issues ANSI escape sequences. Actually they are fine, as long as you have a VT100 provider installed, as I wrote. But it is impossible to detect such provider across a line on another computer.
Also, in http://marc.theaimsgroup.com/?l=freedos-dev&m=101717593306186&w=2 he writes "/If/ an ANSI (or another extended console) driver is installed and detected (which is not trivial, if it should work with all known ANSI drivers), the command processor will send an ANSI-ED sequence "<[2J" to STDOUT (whereby"<" stands for ESC (1Bh) here)." Then: "Only if no such driver is around and the console is attached to the physical screen (not redirected, no CTTY),"
in http://marc.theaimsgroup.com/?l=freedos-dev&m=101742333130155&w=2 "If STDOUT does correspond with a device (bit 7) which does *not* supporting INT 29h (bit 3 cleared), it will use a method partially similar to the DR-DOS INT 10h/AH=00h method to clear the screen, in all other cases it will simply issue the ANSI ED-sequence. The INT 10h method used appears to work more" So, if STDOUT == COM3 (no Fast Output bit) and the shell does not know about a CTTY COM3 (where should it get the info about it unless the CTTY command was invoked in the shell itself?). it uses the BIOS.
My claim is:
a) you cannot detect an ANSI driver across the line **), and b) you do not know for sure what CTTY is in place, except the shell itself has invoked it ***).
So, what is described there means:
if the server computer has ANSI installed locally, it will send ANSI tokens to your client, regardless if your client has ANSI or not; if the shell on the server has not executed the CTTY command itself, it will clear the server's screen through the BIOS.
This is what I wrote and what I asked about.
When I now move the issue away from CLS toward the enhanced input, I have the problem to freely position the cursor in a long line wrapping upon several physical lines.
Actually I seem to be stuck in a problem that cannot be solved automatically, but by the user only, e.g. by setting environment variables or some flags as it is common in Unix shells (TERM=, ROWS=, LINES=, setterm). If one could assume that a VT100 parser is present, the problems would be less.
just follow the whole thread (prev and next), there's nothing I can add here, but I assumed you had already looked this up?
No, I have no luck using any search engine in conjunction with any FreeDOS archive.
Bye,
===
**) No sample in the messages list a possibility to detect an ANSI driver on the other end of a COM line.
***) Only the hint about device/stdout/fastput.
--
Steffen Kaiser
------------------------------------------------------- This SF.Net email is sponsored by OSTG. Have you noticed the changes on Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now, one more big change to announce. We are now OSTG- Open Source Technology Group. Come see the changes on the new OSTG site. www.ostg.com _______________________________________________ Freedos-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-devel