PAL CARD CATALOG ENTRY

SHORT DESCRIPTION

Simplified VAX terminal interface


MOVEMENT WITHIN THE PAL CARD CATALOG
Move to top-level taxonomy
Move to keyword list

ASSET PROFILE

UNIT NAME
Terminal_Io_Package
VERSION
1
REVIEW CODE
C1 1.0 B
INET ADDRESS
sun1.disacim.osd.mil (134.152.9.140)
AUTHOR
U.S. Army Information System Engineering Command
Ft. Belvoir, VA 22060-5456
RIGHTS
Approved for Public Release; Distribution Unlimited
COPYRIGHT
None -- Public Domain.
DATE CREATED
September 17, 1985
DATE RELEASED
January 17, 1994
DATE LAST UPDATED
January 17, 1994
LOCATION
DSRS Library
PAL
ENVIRONMENT
DEC VAX/VMS with DEC Ada Compilation System (ACS)
LIMITATIONS
Not documented in PAL database
CERTIFICATION
Ada System Certifier_1 1.0
Date/Time of Processing: Wednesday 25 May       1994 02:34:25Pm
Overall Assessment of System: OK
Classification of System: B
Basis of Classification --
Syntax Errors                               PASS
Completeness                                PASS
Independence from External Libraries        FAIL
Independence from a Specific Ada Compiler   PASS

Explanations for failures --
System withs non-standard library units that are not provided

Number of ...
Files               3
Library Units       6
Lines            4862
Statements        753
Comments         2769

Unidentified Withed Units --
2 unidentified withed units

FILE LISTING

Directory Display


languages/ada/swcomps/dsrs/termio:
  File Name                 Size
  ---------                 ----
  termio.zip              44,570

languages/ada/swcomps/dsrs/immedio:
  File Name                 Size
  ---------                 ----
  immedio.zip             22,827

languages/ada/swcomps/dsrs/vmsutil:
  File Name                 Size
  ---------                 ----
  vmsutil.zip             13,718


Totals
  ==============  ==============
    3 Files               81,115

ABSTRACT

                              Terminal_Io_Package
                                   01D001OD.1
                               (Old ID: RIC0002A)
PURPOSE/INTENDED USE:
Terminal_Io_Package is an Ada package that provides a few of the screen
and keyboard manipulation subprograms suggested by package
Cais_Tcroll_Terminal which is defined in the CAIS (Common APSE Interface
Set) proposal (MIL-STD-CAIS 31-OCT-1984). Many subprograms provide VT200
terminal features. 

EXAMPLE APPLICATIONS:
Terminal_Io_Package can be used to write a word processor or a text
editor.

CERTIFICATION LEVEL:
Terminal_Io_Package is certified at Level 4.  This means that the
Defense  Information Systems Agency/Center for Information Management
Software Reuse  Program (SRP) management office has successfully
compiled the code of this  Reusable Software Asset (RSA) and measured
maintainability, portability,  reliability and reusability.  In
addition, this RSA includes a test suite and a  Reuser's Manual, which
will be provided when the asset is extracted.  Note: The AdaMAT metrics
measurement score for reusability is unusually low  because of the low
proportion of variable declarations in the package body that include
initialization; the low proportion of read-only objects declared in 
library body units that are constants; the low proportion of user
defined types  used for parameters, and used in the package
specification and body; the mixing of input/output and non-input/output
statements in the same code unit; and the high proportion of constants,
types and subtypes that are visible. A check by the SRP staff revealed
the use of acceptable coding practices. 
 
IMPLEMENTATION ISSUES:
Terminal_Io_Package may invalidate Text_Io's column, line, and page
subprograms  through its use of Immediate_Io_Package.

Terminal_Io_Package depends on (withs) Immediate_Io_Package (01D001OB).

Terminal_Io_Package is highly system dependent to VAX VMS (Qio &
Assign).

HARDWARE/ENVIRONMENT CONSTRAINTS AND LIMITATIONS:
This package was compiled, linked, and tested on a DEC VAX/VMS machine
using the Ada Compilation System (ACS). 

SUBUNITS:
Terminal_Io_Package has the following visible subunits, which are
grouped according to their functionality:

  CAIS subprograms:

    Size                         Returns the screen's maximum dimensions.
    Set_Position                 Sets the cursor position to a specific
                                 location.
    Position                     Returns the cursor position.
    Clear_Screen                 Erases everything on the screen.
    Home_Cursor                  Puts the cursor in the upper left corner of
                                 the screen.
    Bell                         Causes the terminal to beep once.
    Col_In_Screen                Returns true if the line is in the terminal
                                 screen.
    Line_In_Screen               Returns true if the column is in the
                                 terminal screen.
    In_Screen                    Returns true if the line and column are
                                 in the terminal screen.

  Get and Put any Terminal Character:

    Set_Alternate_Keypad_Mode    Sets terminal so the keypad sends a
                                 distinct code.
    Reset_Alternate_Keypad_Mode  Resets the keypad mode to the numeric
                                 keypad mode.
    Alternate_Keypad_Mode        Returns true if the keypad mode is set.
    Get_Terminal_Char            Gets a terminal specific character.
    Put_Terminal_Char            Puts a terminal specific character.
    Ada_Char                     Converts a terminal character type.
    Get_Keypad_Char              Gets only a keypad character.
    Put_Keypad_Char              Puts only a keypad character.
    Get_Cursor_Key               Gets only a cursor key (up, down, left,
                                 right arrow key).
    Move_Cursor                  Moves the cursor up, down, left, or right.

  Fancy Display:

    Put_Wide                     Outputs a double wide string.
    Put_Large                    Outputs a double size string.
    Reset_Character_Size         Resets character size on a given line or
                                 line and column.
    Put_Flashing                 Outputs a flashing string to the terminal.
    Set_Reverse_Screen           Sets screen background to white and text to
                                 black.
    Reset_Reverse_Screen         Resets screen background to white and text
                                 to black.
    Set_Highlight                Sets screen output mode to reverse video.
    Reset_Highlight              Puts screen output mode back to normal.
    Put_Reverse                  Outputs string, character, or integer in
                                 reverse video.
    Usascii_Char_Set             Sets character set to ASCII.
    Graphic_Char_Set             Sets character set to graphic.
    Columns_80                   Sets the columns per line to 80.
    Columns_132                  Sets the columns per line to 132.
    Jump_Scroll                  Sets scrolling to jump mode.
    Smooth_Scroll                Sets scrolling to smooth mode.

  Scrolling Region:

    Set_Scrolling_Region         Sets the scrolling region.
    Reset_Scrolling_Region       Resets the scrolling region to the whole
                                 screen.
    Scroll_Region_Down           Moves everything in the scrolling region
                                 down.
    Scroll_Region_Up             Moves everything in the scrolling region
                                 up.
    Scrolling_Region_Size        Sets the scrolling region size.
    Set_Position_In_Region       Sets the cursor position to a specific
                                 location relative to the scrolling region.
    Position_In_Region           Returns cursor position relative to the
                                 scrolling region.
    Clear_Screen_In_Region       Erases screen relative to the scrolling
                                 region.
    Home_Cursor_In_Region        Puts cursor in upper left corner relative
                                 to the scrolling region.
    In_Region_Absolute           Returns true if absolute screen position or
                                 line is in region.
    In_Region_Relative           Returns true if region relative position or
                                 line is in region.

  Erasing:

    Erase_Cursor_To_Eol                Erases from the cursor location to
                                       the end of line.
    Erase_Beginning_Of_Line_To_Cursor  Erases from the beginning of line to
                                       the cursor location.
    Erase_Line                         Erases the line where the cursor is
                                       located.
    Erase_Cursor_To_End_Of_Screen      Erases from the cursor location to 
                                       the end of screen
    Erase_Begininning_Of_Screen_To_Cursor  Erases from the beginning of
                                       screen (upper left corner) to the
                                       cursor location.
    Erase_Screen                       Erases the whole screen.
  
  Manipulation on the Keyboard LED's:

    Reset_Leds                   Turns all LEDs (L1 - L4) off.
    Set_Led1                     Turns LED L1 on.
    Set_Led2                     Turns LED L2 on.
    Set_Led3                     Turns LED L3 on.
    Set_Led4                     Turns LED L4 on.

  Display Alignment:

    Alignment_Display            Displays the alignment pattern (fills the 
                                 screen with E's).

DSRS CLASSIFICATION:
availability:  extractable
certification level:  level_4
component type:  implementation
data representation:  boolean
data representation:  character
data representation:  enumeration
data representation:  numeric
data representation:  record
environment:  mvii/vms/vaxada
function:  control
function:  delete
function:  display
function:  erase
function:  get
function:  input_output
function:  inquire
function:  move
function:  put
function:  query
function:  replace
function:  verify
language:  ada
object:  character
object:  key
object:  number
object:  screen
object:  size
object:  string
originator:  rapid
unit type:  package

LEGAL RESTRICTIONS:
This RSA contains public domain data with unlimited rights for all
users.   Extraction is permitted to all authorized library users. This
software and its documentation are provided "as is" and without any
expressed or implied warranties whatsoever.  No warranties as to
performance, merchantability, or fitness for a particular purpose exist.

The user is advised to test the software thoroughly before relying on
it.  The user must assume the entire risk and liability of using this
software.  In no event shall any person or organization of people be
held responsible for any direct, indirect, consequential or
inconsequential damages or lost profits. 

MISCELLANEOUS:
The standard for Level 4 certification has recently been upgraded. This
asset is currently undergoing modification to meet the new Level 4
requirements. 


REVISION HISTORY

January 17, 1994 Version 1 Original submission to PAL


RELEASE NOTICE

This prologue must be included in all copies of this software.
Restrictions on use or distribution:  NONE

LEGAL RESTRICTIONS:
This RSA contains public domain data with unlimited rights for all
users.   Extraction is permitted to all authorized library users. This
software and its documentation are provided "as is" and without any
expressed or implied warranties whatsoever.  No warranties as to
performance, merchantability, or fitness for a particular purpose exist.


DISCLAIMER

 This software and its documentation are provided "AS IS" and
without any expressed or implied warranties whatsoever.  No warranties
as to performance, merchantability, or fitness for a particularpurpose exist. 
 The user is advised to test the software thoroughly before
relying on it.  The user must assume the entire risk and liability of
using this software.  In no event shall any person or organization of
people be held responsible for any direct, indirect, consequential or
inconsequential damages or lost profits.