* How can I clear the screen?
@ 1996-03-27 0:00 Jason Powell
1996-03-29 0:00 ` steved
0 siblings, 1 reply; 7+ messages in thread
From: Jason Powell @ 1996-03-27 0:00 UTC (permalink / raw)
I want to clear the screen and start at the top with the next line. How
can I do that? Thanks in advance.
Jason Powell
=> A mathematician is a machine for converting coffee into theorms.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: How can I clear the screen?
1996-03-27 0:00 How can I clear the screen? Jason Powell
@ 1996-03-29 0:00 ` steved
1996-03-29 0:00 ` Hung Huynh
1996-03-30 0:00 ` Keith Thompson
0 siblings, 2 replies; 7+ messages in thread
From: steved @ 1996-03-29 0:00 UTC (permalink / raw)
In <4jbr2n$djp@daily-planet.nodak.edu>, jpowell@badlands.NoDak.edu (Jason Powell) writes:
>I want to clear the screen and start at the top with the next line. How
>can I do that? Thanks in advance.
>
>Jason Powell
>
>=> A mathematician is a machine for converting coffee into theorms.
>
Well, you don't describe your platform or environment, but the following
works in a text mode window using GNAT on OS/2. It isn't the most
elegant set of routines or methods, but they work for me. I believe they
rely on the ole ANSI.SYS (or equivalent for OS/2) driver.
-- File: terminal.ads
PACKAGE Terminal IS
-- Cooridinates are such that row 1, column 1 is at the top left corner
-- of the terminal display.
PROCEDURE ClearScreen;
PROCEDURE CursorPosn( row, col : Natural );
PROCEDURE CursorUp( rows : Natural := 0 );
PROCEDURE CursorDown( rows : Natural := 0 );
PROCEDURE CursorForward( chars : Natural := 0 );
PROCEDURE CursorBack( chars : Natural := 0 );
END Terminal;
-- File: terminal.adb
WITH Text_Io;
USE Text_Io;
WITH Ada.Characters.Latin_1;
USE Ada.Characters.Latin_1;
PACKAGE BODY Terminal IS
PACKAGE NatIo IS NEW Text_Io.Integer_Io( Natural );
USE NatIo;
CSI : CONSTANT String := ESC & "[";
PROCEDURE ClearScreen IS
BEGIN
Put( CSI & "2J" );
END ClearScreen;
PROCEDURE CursorPosn( row, col : Natural ) IS
BEGIN
Put( CSI );
Put( row, 0 );
Put( ";" );
Put( col, 0 );
Put( "H" );
END CursorPosn;
PROCEDURE CursorUp( rows : Natural := 0 ) IS
BEGIN
Put( CSI );
IF rows > 0 THEN
Put( rows, 0 );
END IF;
Put( "A" );
END CursorUp;
PROCEDURE CursorDown( rows : Natural := 0 ) IS
BEGIN
Put( CSI );
IF rows > 0 THEN
Put( rows, 0 );
END IF;
Put( "B" );
END CursorDown;
PROCEDURE CursorForward( chars : Natural := 0 ) IS
BEGIN
Put( CSI );
IF chars > 0 THEN
Put( chars, 0 );
END IF;
Put( "C" );
END CursorForward;
PROCEDURE CursorBack( chars : Natural := 0 ) IS
BEGIN
Put( CSI );
IF chars > 0 THEN
Put( chars, 0 );
END IF;
Put( "D" );
END CursorBack;
END Terminal;
I hope this helps,
Steve Doiel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: How can I clear the screen?
1996-03-29 0:00 ` steved
@ 1996-03-29 0:00 ` Hung Huynh
1996-03-29 0:00 ` Ted Dennison
1996-03-30 0:00 ` Keith Thompson
1 sibling, 1 reply; 7+ messages in thread
From: Hung Huynh @ 1996-03-29 0:00 UTC (permalink / raw)
To: Steve Doiel
> Well, you don't describe your platform or environment, but the following
> works in a text mode window using GNAT on OS/2. It isn't the most
> elegant set of routines or methods, but they work for me. I believe they
> rely on the ole ANSI.SYS (or equivalent for OS/2) driver.
Hi! I tried your package in a unix xterm window and it worked fine.
But could you explain how this procedure work? I'm a novice.
------------------------------------------
PROCEDURE ClearScreen IS
BEGIN
Put( CSI & "2J" );
END ClearScreen;
------------------------------------------
I understand that your CSI is equal to ESC & "[" , but why does the
output of the string "ESC[2J" cause a screen clear? Does it have something
to do with ANSI?
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: How can I clear the screen?
1996-03-29 0:00 ` Hung Huynh
@ 1996-03-29 0:00 ` Ted Dennison
0 siblings, 0 replies; 7+ messages in thread
From: Ted Dennison @ 1996-03-29 0:00 UTC (permalink / raw)
Hung Huynh wrote:
> I understand that your CSI is equal to ESC & "[" , but why does the
> output of the string "ESC[2J" cause a screen clear? Does it have something
> to do with ANSI?
It has everything to do with ANSI/VT100. If the text display this is
being written to supports ANSI/VT100/VT220 etc., then this will clear
the screen. If it does not, then you will likely see some random
garbage with a "2J" at the end.
--
T.E.D.
| Work - mailto:dennison@escmail.orl.mmc.com |
| Home - mailto:dennison@iag.net |
| URL - http://www.iag.net/~dennison |
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: How can I clear the screen?
1996-03-29 0:00 ` steved
1996-03-29 0:00 ` Hung Huynh
@ 1996-03-30 0:00 ` Keith Thompson
1996-03-31 0:00 ` Hung Huynh
1 sibling, 1 reply; 7+ messages in thread
From: Keith Thompson @ 1996-03-30 0:00 UTC (permalink / raw)
In <4jfqqv$ekh@news.pacifier.com> steved@pacifier.com@199.2.117.163 (Steve Doiel) writes:
> Well, you don't describe your platform or environment, but the following
> works in a text mode window using GNAT on OS/2. It isn't the most
> elegant set of routines or methods, but they work for me. I believe they
> rely on the ole ANSI.SYS (or equivalent for OS/2) driver.
[spec and body of Terminal package deleted]
This implementation assumes a terminal or emulator that accepts
VT100-style control codes (also referred to as ANSI, since there's an
ANSI standard for this). These days that's almost a safe assumption,
since the vast majority of modern text-mode terminals and emulators,
including xterm, at least have a mode in which they emulate a VT100.
Full generality would require something like Unix's termcap, terminfo,
or curses interface.
--
Keith Thompson (The_Other_Keith) kst@thomsoft.com
TeleSoft^H^H^H^H^H^H^H^H Alsys^H^H^H^H^H Thomson Software Products
10251 Vista Sorrento Parkway, Suite 300, San Diego, CA, USA, 92121-2718
This sig uses the word "Exon" in violation of the Communications Decency Act.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: How can I clear the screen?
1996-03-30 0:00 ` Keith Thompson
@ 1996-03-31 0:00 ` Hung Huynh
1996-04-02 0:00 ` Michael A. Packer
0 siblings, 1 reply; 7+ messages in thread
From: Hung Huynh @ 1996-03-31 0:00 UTC (permalink / raw)
:This implementation assumes a terminal or emulator that accepts
:VT100-style control codes (also referred to as ANSI, since there's an
Anyone know where to get by a list of the VT100-style control codes?
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: How can I clear the screen?
1996-03-31 0:00 ` Hung Huynh
@ 1996-04-02 0:00 ` Michael A. Packer
0 siblings, 0 replies; 7+ messages in thread
From: Michael A. Packer @ 1996-04-02 0:00 UTC (permalink / raw)
Hung Huynh (d95hung@dtek.chalmers.se) wrote:
:
:
: :This implementation assumes a terminal or emulator that accepts
: :VT100-style control codes (also referred to as ANSI, since there's an
:
:
: Anyone know where to get by a list of the VT100-style control codes?
let me go search.....i know i have this somewhere...
ANSI ESCAPE SEQUENCES
===============================================================================
Wherever you see '#', that should be replaced by the appropriate number.
ESC code sequence Function
------------------- ---------------------------
Cursor Controls:
ESC[#;#H or ESC[#;#f Moves cusor to line #, column #
ESC[#A Moves cursor up # lines
ESC[#B Moves cursor down # lines
ESC[#C Moves cursor forward # spaces
ESC[#D Moves cursor back # spaces
ESC[#;#R Reports current cursor line & column
ESC[s Saves cursor position for recall later
ESC[u Return to saved cursor position
Erase Functions:
ESC[2J Clear screen and home cursor
ESC[K Clear to end of line
Set Graphics Rendition:
ESC[#;#;....;#m Set display attributes where # is
0 for normal display
1 for bold on
4 underline (mono only)
5 blink on
7 reverse video on
8 nondisplayed (invisible)
30 black foreground
31 red foreground
32 green foreground
33 yellow foreground
34 blue foreground
35 magenta foreground
36 cyan foreground
37 white foreground
40 black background
41 red background
42 green background
43 yellow background
44 blue background
45 magenta background
46 cyan background
47 white background
ESC[=#;7h or Put screen in indicated mode where # is
ESC[=h or 0 for 40 x 25 black & white
ESC[=0h or 1 for 40 x 25 color
ESC[?7h 2 for 80 x 25 b&w
3 for 80 x 25 color
4 for 320 x 200 color graphics
5 for 320 x 200 b & w graphics
6 for 640 x 200 b & w graphics
7 to wrap at end of line
ESC[=#;7l or ESC[=l or Resets mode # set with above command
ESC[=0l or ESC[?7l
Keyboard Reassignments:
ESC[#;#;...p Keyboard reassignment. The first ASCII
or ESC["string"p code defines which code is to be
or ESC[#;"string";#; changed. The remaining codes define
#;"string";#p what it is to be changed to.
E.g. Reassign the Q and q keys to the A and a keys (and vice versa).
ESC [65;81p A becomes Q
ESC [97;113p a becomes q
ESC [81;65p Q becomes A
ESC [113;97p q becomes a
E.g. Reassign the F10 key to a DIR command.
ESC [0;68;"dir";13p The 0;68 is the extended ASCII code
for the F10 key and 13 is the ASCII
code for a carriage return.
Other function key codes F1=59,F2=60,F3=61,F4=62,F5=63
F6=64,F7=65,F8=66,F9=67,F10=68
--
Michael Packer Ph. 540-831-5978 Radford Univ. CS Systems Administrator
pac@runet.edu Fax 540-831-5970 http://www.runet.edu/~pac
All I ask is a chance to prove that money can't make me happy.
Make it idiot proof and someone will make a better idiot.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~1996-04-02 0:00 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-03-27 0:00 How can I clear the screen? Jason Powell
1996-03-29 0:00 ` steved
1996-03-29 0:00 ` Hung Huynh
1996-03-29 0:00 ` Ted Dennison
1996-03-30 0:00 ` Keith Thompson
1996-03-31 0:00 ` Hung Huynh
1996-04-02 0:00 ` Michael A. Packer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox