Heath, I have scoured the 'net for such a package, and other than Feldman's, couldn't find just what I wanted. I also looked at the VT100/xterm escape sequences and came up with a series of child packages to handle the different screen properties. I've attached a screen_files.txt file to this message containing all the packages - suitable for gnatchop (I checked it). Hope this help you.. and anyone else looking for this. Yours in Ada95! John J Cupak Jr, CCP Heath Isler wrote: > Hello, > > I would like to thank everyone for the input. I have decided to use the > escape sequences for a ansi terminal since my target platforms are Win9X, > Dos, Unixes, I don't care at this point if it runs on Win NT since I don't > have it. > > Heath > > Matthew Heaney wrote in message > news:m3677if8ks.fsf@mheaney.ni.net... > > "Heath Isler" writes: > > > > > My question is is there a way in the stadard packages to Clear the > Screen > > > and postition the cursor in a specific location, i.e. Locate_Cursor (x > => > > > 10, y =>15); ? I am plan on using this for menus and data input. > > > > No, there's nothing in the Ada predefined packages to do that. > > > > > > > I have also looked through a lot of packages on the net, and some of > > > them seem to fit my need. I not sure if I should use one of the > > > Terminal IO or menu packages. Can anyone recommend a package to use? > > > > In the GNAT source distribution, the dining philosophers example does > > terminal I/O using escape sequences. > > > > > > --:::::::::: > > --screen.ads > > --:::::::::: > > package Screen is > > > > -- simple ANSI terminal emulator > > -- Michael Feldman, The George Washington University > > -- July, 1995 > > > > ScreenHeight : constant Integer := 24; > > ScreenWidth : constant Integer := 80; > > > > subtype Height is Integer range 1..ScreenHeight; > > subtype Width is Integer range 1..ScreenWidth; > > > > type Position is record > > Row : Height := 1; > > Column: Width := 1; > > end record; > > > > procedure Beep; > > -- Pre: none > > -- Post: the terminal beeps once > > > > procedure ClearScreen; > > -- Pre: none > > -- Post: the terminal screen is cleared > > > > procedure MoveCursor (To: in Position); > > -- Pre: To is defined > > -- Post: the terminal cursor is moved to the given position > > > > end Screen; > > > > > > --:::::::::: > > --screen.adb > > --:::::::::: > > with Text_IO; > > package body Screen is > > > > -- simple ANSI terminal emulator > > -- Michael Feldman, The George Washington University > > -- July, 1995 > > > > -- These procedures will work correctly only if the actual > > -- terminal is ANSI compatible. ANSI.SYS on a DOS machine > > -- will suffice. > > > > package Int_IO is new Text_IO.Integer_IO (Num => Integer); > > > > procedure Beep is > > begin > > Text_IO.Put (Item => ASCII.BEL); > > end Beep; > > > > procedure ClearScreen is > > begin > > Text_IO.Put (Item => ASCII.ESC); > > Text_IO.Put (Item => "[2J"); > > end ClearScreen; > > > > procedure MoveCursor (To: in Position) is > > begin > > Text_IO.New_Line; > > Text_IO.Put (Item => ASCII.ESC); > > Text_IO.Put ("["); > > Int_IO.Put (Item => To.Row, Width => 1); > > Text_IO.Put (Item => ';'); > > Int_IO.Put (Item => To.Column, Width => 1); > > Text_IO.Put (Item => 'f'); > > end MoveCursor; > > > > end Screen;