Re: [Freedos-devel] FreeCOM CLS suggestions (vs. CTTY?)
Dear Mr. Auer, Mr. Ehlert is in France this week but he will be back at the weekend. He will answer your questions as soon as possible. Thanks, i.A. L. Tartan Sunday, June 13, 2004, 5:01:20 AM, you wrote: Hi, I wondered what CLS should do while CTTY points to not CON. Any ideas? I could not find it by Googling, so I assume that people will simply not try using CLS over a serial terminal... Or if they do - the CLEAR / HOME ANSI escape sequence or - a bunch for linefeeds or - a formfeed should do the trick. As CTTY targets can only be CON, NUL and serial ports (parallel ports would not make much sense) or other bidirectional char devices, I think one of the above choices should be okay. Alternatively, even just always clear the local display even during CTTY non-CON should work just great for everyday CTTY / CLS users. Instead of using the CRT unit function, which never updates the screen size stuff as it seems, CLS for CON can best be implemented as: AH=0f int 10 returns: AH=columns AL=mode BH=page read byte 40[84] = max row number on screen AH=06 (scroll) AL=0 (zero lines of scrolling, only clear) BH=07 (color, for blank lines, should not be zero) CX=0 (upper left corner) DH=40[84] DL=the_AH_from_int_10_function_0f int 10 (might destroy BP register but has no return values otherwise... Trident VGA might destroy DS register in SVGA modes...) And finally, not to forget, AH=02 BH=the_BH_from_int_10_function_0f DX=0 (top left) int 10, which moves the cursor to home position. The int 10.0f can be replaced by 40[...] reading, too. Combined, you will have a TINY and RELIABLE (flexible, for different screen sizes, see Bugzilla entry number 1687, CLS Assumes 25 Screen Lines) implementation of CLS which does not use the CRT library of the C compiler (and therefore the whole CRT library would no longer be used by FreeCOM anymore AFAIK). The above { get mode by int 10.0f, get rows from RAM, clear by int 10.06, home by int 10.02 } should be put after a check for CTTY-non-CON which would send one of the 3 suggested strings either instead of doing the int 10 stuff or after it to the current CTTY device unless it is CON/NUL. Let us know if you have some experience or opinion about what should happen for CLS in combination with CTTY to AUX or NUL or Thanks. Eric --- This SF.Net email is sponsored by the new InstallShield X. From Windows to Linux, servers to mobile, InstallShield X is the one installation-authoring solution that does it all. Learn more and evaluate today! http://www.installshield.com/Dev2Dev/0504 ___ Freedos-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-devel -- Best regards, Tom Ehlert mailto:[EMAIL PROTECTED] +49-241-79886 --- This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND ___ Freedos-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-devel
Re: [Freedos-devel] FreeCOM CLS suggestions (vs. CTTY?)
The way MS-DOS dealt wit this was if the display device was not the DOS console the CLS command should return an ANSI escape to clear the screen. A very, very old standalone version of FreeDOS CLS did this. -jh Eric Auer wrote: Hi, I wondered what CLS should do while CTTY points to not CON. Any ideas? I could not find it by Googling, so I assume that people will simply not try using CLS over a serial terminal... Or if they do - the CLEAR / HOME ANSI escape sequence or - a bunch for linefeeds or - a formfeed should do the trick. As CTTY targets can only be CON, NUL and serial ports (parallel ports would not make much sense) or other bidirectional char devices, I think one of the above choices should be okay. Alternatively, even just always clear the local display even during CTTY non-CON should work just great for everyday CTTY / CLS users. Instead of using the CRT unit function, which never updates the screen size stuff as it seems, CLS for CON can best be implemented as: AH=0f int 10 returns: AH=columns AL=mode BH=page read byte 40[84] = max row number on screen AH=06 (scroll) AL=0 (zero lines of scrolling, only clear) BH=07 (color, for blank lines, should not be zero) CX=0 (upper left corner) DH=40[84] DL=the_AH_from_int_10_function_0f int 10 (might destroy BP register but has no return values otherwise... Trident VGA might destroy DS register in SVGA modes...) And finally, not to forget, AH=02 BH=the_BH_from_int_10_function_0f DX=0 (top left) int 10, which moves the cursor to home position. The int 10.0f can be replaced by 40[...] reading, too. Combined, you will have a TINY and RELIABLE (flexible, for different screen sizes, see Bugzilla entry number 1687, CLS Assumes 25 Screen Lines) implementation of CLS which does not use the CRT library of the C compiler (and therefore the whole CRT library would no longer be used by FreeCOM anymore AFAIK). The above { get mode by int 10.0f, get rows from RAM, clear by int 10.06, home by int 10.02 } should be put after a check for CTTY-non-CON which would send one of the 3 suggested strings either instead of doing the int 10 stuff or after it to the current CTTY device unless it is CON/NUL. Let us know if you have some experience or opinion about what should happen for CLS in combination with CTTY to AUX or NUL or Thanks. Eric -- _ This email message has been automatically encrypted using ROT-26. --- This SF.Net email is sponsored by the new InstallShield X. From Windows to Linux, servers to mobile, InstallShield X is the one installation-authoring solution that does it all. Learn more and evaluate today! http://www.installshield.com/Dev2Dev/0504 ___ Freedos-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-devel
[Freedos-devel] FreeCOM CLS suggestions (vs. CTTY?)
Hi, I wondered what CLS should do while CTTY points to not CON. Any ideas? I could not find it by Googling, so I assume that people will simply not try using CLS over a serial terminal... Or if they do - the CLEAR / HOME ANSI escape sequence or - a bunch for linefeeds or - a formfeed should do the trick. As CTTY targets can only be CON, NUL and serial ports (parallel ports would not make much sense) or other bidirectional char devices, I think one of the above choices should be okay. Alternatively, even just always clear the local display even during CTTY non-CON should work just great for everyday CTTY / CLS users. Instead of using the CRT unit function, which never updates the screen size stuff as it seems, CLS for CON can best be implemented as: AH=0f int 10 returns: AH=columns AL=mode BH=page read byte 40[84] = max row number on screen AH=06 (scroll) AL=0 (zero lines of scrolling, only clear) BH=07 (color, for blank lines, should not be zero) CX=0 (upper left corner) DH=40[84] DL=the_AH_from_int_10_function_0f int 10 (might destroy BP register but has no return values otherwise... Trident VGA might destroy DS register in SVGA modes...) And finally, not to forget, AH=02 BH=the_BH_from_int_10_function_0f DX=0 (top left) int 10, which moves the cursor to home position. The int 10.0f can be replaced by 40[...] reading, too. Combined, you will have a TINY and RELIABLE (flexible, for different screen sizes, see Bugzilla entry number 1687, CLS Assumes 25 Screen Lines) implementation of CLS which does not use the CRT library of the C compiler (and therefore the whole CRT library would no longer be used by FreeCOM anymore AFAIK). The above { get mode by int 10.0f, get rows from RAM, clear by int 10.06, home by int 10.02 } should be put after a check for CTTY-non-CON which would send one of the 3 suggested strings either instead of doing the int 10 stuff or after it to the current CTTY device unless it is CON/NUL. Let us know if you have some experience or opinion about what should happen for CLS in combination with CTTY to AUX or NUL or Thanks. Eric --- This SF.Net email is sponsored by the new InstallShield X. From Windows to Linux, servers to mobile, InstallShield X is the one installation-authoring solution that does it all. Learn more and evaluate today! http://www.installshield.com/Dev2Dev/0504 ___ Freedos-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-devel