
"   TERMINAL DEFINITION FILE FOR TELEVIDEO 955 TERMINAL                       "

"   VARIABLES                                                                 "
    ATTRIBUTES_SPACELESS    = (ESC 'F1')
    ATTRIBUTE_MODE_LINE     = (ESC '[=2l')
    AUTOWRAP_ON             = (ESC '[=7h')
    AUTOWRAP_OFF            = (ESC '[=7l')
    CLEAR_PROTECT           = (ESC '(' ESC '''')
    HOME                    = (RS)
    LARGE_SCREEN            = (ESC '[=3h')
    SMALL_SCREEN            = (ESC '[=3l')
    LOCK_KEYBOARD           = (ESC '#')
    NORMAL                  = (ESC 'G0')
    SELECT_FUNCTION_KEY_SET = (ESC '[7;0v')
    SET_DOWN_KEY_CTRL_J     = (ESC '[=9l')
    START_BLINK             = (ESC 'G2')
    START_INVISIBLE         = (ESC 'G1')
    START_INVERSE           = (ESC 'G4')
    START_UNDERLINE         = (ESC 'G8')
    TV955_MODE              = (ESC '[10;0v')
    UNLOCK_KEYBOARD         = (ESC '"')
    DEFIN1                  = (ESC '~2' TV955_MODE SELECT_FUNCTION_KEY_SET)
    DEFIN2                  = (ATTRIBUTES_SPACELESS ATTRIBUTE_MODE_LINE)
    DEFIN3                  = (SET_DOWN_KEY_CTRL_J AUTOWRAP_OFF)
    DEFINIT                 = (DEFIN1 DEFIN2 DEFIN3)

"   MODEL NAME AND COMMUNICATION TYPE                                         "
    model_name               value = 'TV_955'
    communications           type  = asynch
    application_string name='driver_procedure' out='tup$bootstrap_tv955_driver'
    application_string  name='insert_delete_scrolling' out='true'

"   END OF INFORMATION SPECIFICATION                                          "
    end_of_information       in    = (0)

"   CURSOR POSITIONING INFORMATION                                            "
    cursor_pos_encoding      bias  = (1)   type = ansi_cursor
    cursor_pos_column_first  value = FALSE
    cursor_pos_column_length value = (0)
    cursor_pos_row_length    value = (0)
    cursor_pos_begin         out   = (ESC '[')
    cursor_pos_second        out   = (';')
    cursor_pos_third         out   = ('H')

"   CURSOR MOVEMENT INFORMATION                                               "
    cursor_home              inout = (HOME)          label='home'
    cursor_up                inout = (VT)
    cursor_down              inout = (SYN)
    cursor_left              inout = (BS)
    cursor_right             inout = (FF)

"   CURSOR BEHAVIOR (for cursor movement keys)                                "
    move_past_right          type  = stop_next
    move_past_left           type  = stop_next
    move_past_top            type  = stop_next
    move_past_bottom         type  = stop_next

"   CURSOR BEHAVIOR (for character keys)                                      "
    char_past_right          type  = stop_next
    char_past_left           type  = stop_next
    char_past_last_position  type  = stop_next

"   TERMINAL ATTRIBUTES                                                       "
    automatic_tabbing              value = TRUE
    clears_when_change_size        value = FALSE
    function_key_leaves_mark       value = 1
    has_hidden                     value = TRUE
    has_protect                    value = FALSE
    home_at_top                    value = TRUE
    multiple_sizes                 value = TRUE
    tabs_to_home                   value = FALSE
    tabs_to_tab_stops              value = TRUE
    tabs_to_unprotected            value = FALSE
    type_ahead                     value = TRUE

"   SCREEN SIZE                                                               "
    set_size                 rows  = 24 columns = 80   out = (SMALL_SCREEN)
    set_size                 rows  = 24 columns = 132  out = (LARGE_SCREEN)

"   SCREEN AND LINE MODE TRANSITION                                           "
    screen_init              out   = (DEFINIT)
    set_screen_mode          out   = ()
    set_line_mode            out   = (CLEAR_PROTECT UNLOCK_KEYBOARD AUTOWRAP_ON)

"   TERMINAL CAPABILITIES                                                     "
    delete_char              inout = (ESC 'W')       label='char del'
    delete_line_bol          inout = (ESC 'R')       label='line del'
    erase_end_of_line        inout = (ESC 'T')       label='line erase'
    erase_end_of_page        inout = (ESC 'Y')       label='page erase'
    erase_unprotected        inout = (ESC '+')       label='page erase'
    erase_page_home          inout = (SUB)           label='page erase'
    insert_char              inout = (ESC 'Q')       label='char ins'
    insert_line_bol          inout = (ESC 'E')       label='line ins'
    insert_mode_begin        inout = (ESC 'q')
    insert_mode_end          inout = (ESC 'r')
    tab_backward             inout = (ESC 'I')
    tab_clear_all            inout = (ESC '3')
    tab_set                  inout = (ESC '1')
    tab_forward              inout = (HT)

"   VIDEO ATTRIBUTES AND SEQUENCES                                            "
    bell_nak                 out   = (BEL)
    output_begin             out   = ()
    output_end               out   = ()
    output_text_begin        out   = ()
    output_text_end          out   = ()
    display_begin            out   = ()
    display_end              out   = ()
    title_begin              out   = ()
    title_end                out   = ()
    message_begin            out   = ()
    message_end              out   = ()
    italic_begin             out   = (start_inverse)
    italic_end               out   = (normal)
    input_text_begin         out   = (START_UNDERLINE)
    input_text_end           out   = (NORMAL)
    protect_all              out   = ()
    alt_begin                out   = ()
    alt_end                  out   = ()
    blink_begin              out   = (START_BLINK)
    blink_end                out   = (NORMAL)
    hidden_begin             out   = (START_INVISIBLE)
    hidden_end               out   = (NORMAL)
    inverse_begin            out   = (START_INVERSE)
    inverse_end              out   = (NORMAL)
    protect_begin            out   = ()
    protect_end              out   = ()
    underline_begin          out   = (START_UNDERLINE)
    underline_end            out   = (NORMAL)
    error_begin              out   = (START_INVERSE)
    error_end                out   = (NORMAL)

"   PROGRAMMABLE FUNCTION KEY INPUT INFORMATION                               "
    next      in = 13           label='return'
    f1        in = (SOH '@')    label='f1'
    f2        in = (SOH 'A')    label='f2'
    f3        in = (SOH 'B')    label='f3'
    f4        in = (SOH 'C')    label='f4'
    f5        in = (SOH 'D')    label='f5'
    f6        in = (SOH 'E')    label='f6'
    f7        in = (SOH 'F')    label='f7'
    f8        in = (SOH 'G')    label='f8'
    f9        in = (SOH 'H')    label='f9'
    f10       in = (SOH 'I')    label='10'
    f11       in = (SOH 'J')    label='11'
    f12       in = (SOH 'K')    label='12'
    f13       in = (SOH 'L')    label='13'
    f14       in = (SOH 'M')    label='14'
    f15       in = (SOH 'N')    label='15'
    f16       in = (SOH 'O')    label='16'
    f1_s      in = (SOH '`')    label='  x'
    f2_s      in = (SOH 'a')    label='  x'
    f3_s      in = (SOH 'b')    label='  x'
    f4_s      in = (SOH 'c')    label='  x'
    f5_s      in = (SOH 'd')    label='  x'
    f6_s      in = (SOH 'e')    label='  x'
    f7_s      in = (SOH 'f')    label='  x'
    f8_s      in = (SOH 'g')    label='  x'
    f9_s      in = (SOH 'h')    label='  x'
    f10_s     in = (SOH 'i')    label='  x'
    f11_s     in = (SOH 'j')    label='  x'
    f12_s     in = (SOH 'k')    label='  x'
    f13_s     in = (SOH 'l')    label='  x'
    f14_s     in = (SOH 'm')    label='  x'
    f15_s     in = (SOH 'n')    label='  x'
    f16_s     in = (SOH 'o')    label='  x'

    bkw       in = (SOH '@')    label='f1'
    fwd       in = (SOH 'A')    label='f2'
    back      in = (SOH 'B')    label='f3'
    help      in = (SOH 'C')    label='f4'
    undo      in = (SOH 'D')    label='f5'
    stop      in = (SOH 'E')    label='f6'
    bkw_s     in = (SOH '`')    label='  f1'
    fwd_s     in = (SOH 'a')    label='  f2'
    undo_s    in = (SOH 'd')    label='  f5'
    stop_s    in = (SOH 'e')    label='  f6'

"   LINE DRAWING CHARACTER SPECIFICATION                                      "
    ld_fine_begin            out   = (ESC '$')
    ld_fine_end              out   = (ESC '%')
    ld_fine_horizontal       out   = ('K')
    ld_fine_vertical         out   = ('J')
    ld_fine_upper_left       out   = ('F')
    ld_fine_upper_right      out   = ('G')
    ld_fine_lower_left       out   = ('E')
    ld_fine_lower_right      out   = ('H')
    ld_fine_up_t             out   = ('N')
    ld_fine_down_t           out   = ('O')
    ld_fine_left_t           out   = ('M')
    ld_fine_right_t          out   = ('L')
    ld_fine_cross            out   = ('I')
    ld_medium_begin          out   = (ESC '$')
    ld_medium_end            out   = (ESC '%')
    ld_medium_horizontal     out   = ('K')
    ld_medium_vertical       out   = ('J')
    ld_medium_upper_left     out   = ('F')
    ld_medium_upper_right    out   = ('G')
    ld_medium_lower_left     out   = ('E')
    ld_medium_lower_right    out   = ('H')
    ld_medium_up_t           out   = ('N')
    ld_medium_down_t         out   = ('O')
    ld_medium_left_t         out   = ('M')
    ld_medium_right_t        out   = ('L')
    ld_medium_cross          out   = ('I')
    ld_bold_begin            out   = (ESC '$')
    ld_bold_end              out   = (ESC '%')
    ld_bold_horizontal       out   = ('K')
    ld_bold_vertical         out   = ('J')
    ld_bold_upper_left       out   = ('F')
    ld_bold_upper_right      out   = ('G')
    ld_bold_lower_left       out   = ('E')
    ld_bold_lower_right      out   = ('H')
    ld_bold_up_t             out   = ('N')
    ld_bold_down_t           out   = ('O')
    ld_bold_left_t           out   = ('M')
    ld_bold_right_t          out   = ('L')
    ld_bold_cross            out   = ('I')


"   END OF TERMINAL DEFINITION FILE FOR TELEVIDEO 955 TERMINAL               "
