From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: * X-Spam-Status: No, score=1.2 required=5.0 tests=BAYES_00,FROM_NUMERIC_TLD, INVALID_MSGID,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,1852c21ee9dc8fb1 X-Google-Attributes: gid103376,public From: steved@pacifier.com@199.2.117.163 (Steve Doiel) Subject: Re: How can I clear the screen? Date: 1996/03/29 Message-ID: <4jfqqv$ekh@news.pacifier.com>#1/1 X-Deja-AN: 144788604 references: <4jbr2n$djp@daily-planet.nodak.edu> organization: Pacifier BBS, Vancouver, Wa. ((360) 693-0325) reply-to: steved@pacifier.com (Steve Doiel) newsgroups: comp.lang.ada Date: 1996-03-29T00:00:00+00:00 List-Id: 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