"   TERMINAL DEFINITION FILE FOR IBM/PC WITH CDC CONNECT                      "

"       PC_CONNECT_12        VERSION 1.2                    JUNE 25, 1987     "

"     This terminal definition is provided by CDC with the autotab option     "
" enabled.  Autotabbing is the behavior of jumping the cursor to the next     "
" unprotected field when text has been entered completely filling the         "
" previous unprotected field, or when a left/right cursor motion is           "
" attempted into a protected location.  Enabling autotab will provide a       "
" convenience for most users, but inability to horizontally position thru     "
" protected areas can interfere with some usage of the Screen Design          "
" Facility if a form is built with a large number of fields.  The SDF user    "
" can usually work around this situation by moving the cursor to the          "
" desired column on an unprotected row, then moving the cursor vertically     "
" into the final position.  In extreme cases, the SDF user may need to        "
" contruct an alternate terminal definition that disables autotab.  To        "
" disable autotab, look for comments embedded within this definition,         "
" containing the string 'autotab', and reverse the position of double-quote   "
" marks to disable the default code and enable the alternate code.            "

"   VARIABLES                                                                 "
    prefix              = (1B(16) 5B(16))                     "esc ["
    clear_stay          = (prefix 32(16) 4A(16))              "2J"
    clear_all_tabs      = (prefix 33(16) 67(16))              "3g"
    set_to_24x80        = (prefix 3F(16) 33(16) 6C(16))       "?3l"
  " set_to_24x132       = (prefix 3F(l6) 33(16) 68(16)) "     "?3h"
    enable_auto_wrap    = (prefix 3F(16) 37(16) 68(16))       "?7h"
    disable_auto_wrap   = (prefix 3F(16) 37(16) 6C(16))       "?7l"
    designate_graphics  = (1B(16) 29(16) 30(16))              "esc )0"
    invoke_graphics     = (0E(16))
    invoke_text         = (0F(16))
    enable_protect      = (prefix 3D(16) 31(16) 68(16))       "=1h"
    disable_protect     = (prefix 3D(16) 31(16) 6C(16))       "=1l"
    enable_insertion    = (prefix 34(16) 68(16))              "4h"
    disable_insertion   = (prefix 34(16) 6C(16))              "4l"
    enable_autotab      = (prefix 3D(16) 33(16) 68(16))       "=3h"
    disable_autotab     = (prefix 3D(16) 33(16) 6C(16))       "=3l"
    start_screenmode    = (prefix 3D(16) 35(16) 68(16))       "=5h"
    start_linemode      = (prefix 3D(16) 35(16) 6C(16))       "=5l"

    start_alternate     = (prefix 31(16) 6D(16))              "1m"
    start_blink         = (prefix 35(16) 6D(16))              "5m"
    start_inverse       = (prefix 37(16) 6D(16))              "7m"
    start_underline     = (prefix 34(16) 6D(16))              "4m"
    stop_alternate      = (prefix 6D(16))                     "m"
    stop_blink          = (prefix 6D(16))                     "m"
    stop_inverse        = (prefix 6D(16))                     "m"
    stop_underline      = (prefix 6D(16))                     "m"

"   MODEL NAME AND COMMUNICATION TYPE                                         "
    model_name          value = 'PC_CONNECT_12'   " for autotab "
"   model_name          value = 'PC_CONNECT_12_SDF'   for no autotab "
    communications      type  = asynch
    application_string  name  = 'vt100_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   = (prefix)
    cursor_pos_second        out   = (3B(16))
    cursor_pos_third         out   = (48(16))

"   CURSOR MOVEMENT INFORMATION                                               "
    cursor_home              inout = (prefix 48(16))      label='Home'
    cursor_up                inout = (prefix 41(16))
    cursor_down              inout = (prefix 42(16))
    cursor_left              inout = (prefix 44(16))
    cursor_right             inout = (prefix 43(16))

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

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

"   TERMINAL ATTRIBUTES                                                       "
    clears_when_change_size  value = TRUE
    function_key_leaves_mark value = 0
    has_hidden               value = FALSE
    has_protect              value = TRUE
    home_at_top              value = TRUE
    multiple_sizes           value = FALSE
    tabs_to_home             value = FALSE
    tabs_to_tab_stops        value = TRUE
    tabs_to_unprotected      value = TRUE
    type_ahead               value = TRUE
    automatic_tabbing        value = TRUE   " for autotab "
"   automatic_tabbing        value = FALSE    for no autotab "

"   SCREEN SIZES                                                              "
    set_size       rows = 24 columns = 80   out = (set_to_24x80)

"   SCREEN AND LINE MODE TRANSITION                                           "

    set_screen_mode out=(clear_all_tabs enable_auto_wrap ..      "for autotab "
     enable_autotab designate_graphics invoke_text ..            "    autotab "
     enable_protect start_screenmode)                            "    autotab "
"   set_screen_mode out=(clear_all_tabs enable_auto_wrap ..    for no autotab "
"    disable_autotab designate_graphics invoke_text                no autotab "
"    enable_protect start_screenmode)                              no autotab "

    set_line_mode       out = ( prefix '0p' clear_all_tabs disable_autotab ..
         start_linemode designate_graphics invoke_text  ..
         enable_auto_wrap disable_protect disable_insertion )


"   TERMINAL CAPABILITIES                                                     "

    backspace           in = (bs)
    delete_char         inout = (prefix 50(16))  label='Del'
    delete_line_stay    inout = (prefix 4D(16))  label='Alt-D'

    erase_end_of_line   inout = (prefix 'K')
    erase_line_stay     inout = (prefix 32(16) 'K')
    erase_end_of_field  inout = (prefix 'N')
    erase_field_stay    inout = (prefix '2N')
    erase_page_stay     inout = (clear_stay)

    insert_line_stay    inout = (prefix 4C(16))         label='Alt-I'
    insert_mode_begin   inout = (enable_insertion)      label='Ins'
    insert_mode_end     inout = (disable_insertion)     label='End'

    tab_backward        inout = (prefix 'Z')
    tab_forward         inout = (09(16))
    tab_clear_all       inout = (clear_all_tabs)
    tab_set             inout = (1B(16) 48(16))

    protect_all         out = (prefix '1p')

"   MISCELLANEOUS TERMINAL SEQUENCES                                          "
    protect_begin       out = (1B(16) 'V')
    protect_end         out = (1B(16) 'W')
    output_begin        out = (disable_protect disable_insertion)
    output_end          out = (enable_protect enable_autotab)
    bell_nak            out = (bel)

"   PROGRAMMABLE FUNCTION KEY INPUT INFORMATION                               "
    f1        in = (1B(16) 4F(16) 71(16)) label='f1'
    f2        in = (1B(16) 4F(16) 72(16)) label='f2'
    f3        in = (1B(16) 4F(16) 73(16)) label='f3'
    f4        in = (1B(16) 4F(16) 74(16)) label='f4'
    f5        in = (1B(16) 4F(16) 75(16)) label='f5'
    f6        in = (1B(16) 4F(16) 76(16)) label='f6'
    f7        in = (1B(16) 4F(16) 77(16)) label='f7'
    f8        in = (1B(16) 4F(16) 78(16)) label='f8'
    f9        in = (1B(16) 4F(16) 79(16)) label='f9'
    f10       in = (1B(16) 4F(16) 7A(16)) label='10'
    f11       in = (1B(16) 4F(16) 7B(16)) label='C1'
    f12       in = (1B(16) 4F(16) 7C(16)) label='C2'
    f13       in = (1B(16) 4F(16) 7D(16)) label='C3'
    f14       in = (1B(16) 4F(16) 7E(16)) label='C4'
    f15       in = (1B(16) 4F(16) 5F(16)) label='C5'
    f16       in = (1B(16) 4F(16) 55(16)) label='C6'
    f1_s      in = (1B(16) 4F(16) 50(16)) label='  SF1'
    f2_s      in = (1B(16) 4F(16) 51(16)) label='  SF2'
    f3_s      in = (1B(16) 4F(16) 52(16)) label='  SF3'
    f4_s      in = (1B(16) 4F(16) 53(16)) label='  SF4'
    f5_s      in = (1B(16) 4F(16) 6D(16)) label='  SF5'
    f6_s      in = (1B(16) 4F(16) 6C(16)) label='  SF6'
    f7_s      in = (1B(16) 4F(16) 4D(16)) label='  SF7'
    f8_s      in = (1B(16) 4F(16) 6E(16)) label='  SF8'
    f9_s      in = (1B(16) 4F(16) 70(16)) label='  SF9'
    f10_s     in = (1B(16) 4F(16) 4F(16)) label='  SF10'
    f11_s     in = (1B(16) 4F(16) 61(16)) label='A1'
    f12_s     in = (1B(16) 4F(16) 62(16)) label='A2'
    f13_s     in = (1B(16) 4F(16) 63(16)) label='A3'
    f14_s     in = (1B(16) 4F(16) 64(16)) label='A4'
    f15_s     in = (1B(16) 4F(16) 65(16)) label='A5'
    f16_s     in = (1B(16) 4F(16) 56(16)) label='A6'

"   CDC STANDARD FUNCTION KEY INPUT INFORMATION                               "
    next      in = 13  label='NEXT'
    back      in = (1B(16) 4F(16) 73(16)) label='f3'
    help      in = (1B(16) 4F(16) 74(16)) label='f4'
    undo      in = (1B(16) 4F(16) 75(16)) label='f5'
    stop      in = (1B(16) 4F(16) 76(16)) label='f6'
    undo_s    in = (1B(16) 4F(16) 6D(16)) label='  SF5'
    stop_s    in = (1B(16) 4F(16) 6C(16)) label='  SF6'
    down      in = ()
    down_s    in = ()
    up        in = ()
    up_s      in = ()

    fwd       in = (1B(16) 4F(16) 58(16)) label='FWD'
    fwd_s     in = (1B(16) 4F(16) 6F(16)) label='Shift-FWD'

    bkw       in = (1B(16) 4F(16) 57(16)) label='BKW'
    bkw_s     in = (1B(16) 4F(16) 66(16)) label='Shift-BKW'

    edit      in = ()
    edit_s    in = ()
    data      in = ()
    data_s    in = ()

"   TERMINAL VIDEO ATTRIBUTES                                                 "
    alt_begin           out = (start_alternate)
    alt_end             out = (stop_alternate)
    blink_begin         out = (start_blink)
    blink_end           out = (stop_blink)
    inverse_begin       out = (start_inverse)
    inverse_end         out = (stop_inverse)
    underline_begin     out = (start_underline)
    underline_end       out = (stop_underline)

"   LOGICAL ATTRIBUTE SPECIFICATIONS                                          "
    error_begin         out = (start_inverse)
    error_end           out = (stop_inverse)
    input_text_begin    out = (start_underline)
    input_text_end      out = (stop_underline)
    italic_begin        out = (start_inverse)
    italic_end          out = (stop_inverse)

"   LINE DRAWING CHARACTER SPECIFICATION                                      "
    ld_fine_begin            out = invoke_graphics
    ld_fine_end              out = invoke_text
    ld_fine_horizontal       out = 71(16)
    ld_fine_vertical         out = 78(16)
    ld_fine_upper_left       out = 6C(16)
    ld_fine_upper_right      out = 6B(16)
    ld_fine_lower_left       out = 6D(16)
    ld_fine_lower_right      out = 6A(16)
    ld_fine_up_t             out = 77(16)
    ld_fine_down_t           out = 76(16)
    ld_fine_left_t           out = 74(16)
    ld_fine_right_t          out = 75(16)
    ld_fine_cross            out = 6E(16)
    ld_medium_begin          out = (invoke_graphics start_alternate)
    ld_medium_end            out = (invoke_text stop_alternate)
    ld_medium_horizontal     out = 71(16)
    ld_medium_vertical       out = 78(16)
    ld_medium_upper_left     out = 6C(16)
    ld_medium_upper_right    out = 6B(16)
    ld_medium_lower_left     out = 6D(16)
    ld_medium_lower_right    out = 6A(16)
    ld_medium_up_t           out = 77(16)
    ld_medium_down_t         out = 76(16)
    ld_medium_left_t         out = 74(16)
    ld_medium_right_t        out = 75(16)
    ld_medium_cross          out = 6E(16)
    ld_bold_begin            out = (start_inverse)
    ld_bold_end              out = (stop_inverse)
    ld_bold_horizontal       out = (' ')
    ld_bold_vertical         out = (' ')
    ld_bold_upper_left       out = (' ')
    ld_bold_upper_right      out = (' ')
    ld_bold_lower_left       out = (' ')
    ld_bold_lower_right      out = (' ')
    ld_bold_up_t             out = (' ')
    ld_bold_down_t           out = (' ')
    ld_bold_left_t           out = (' ')
    ld_bold_right_t          out = (' ')
    ld_bold_cross            out = (' ')


"   END OF TERMINAL DEFINITION FILE FOR IBM/PC WITH CDC CONNECT              "

