.CM  SCRIPT , Version - 1.1 , last edited by holger
.ad 8
.bm 8
.fm 4
.bt $Copyright (c) 2000-2004 SAP AG$$Page %$
.tm 12
.hm 6
.hs 3
.TT 1 $SQL$Project Distributed Database System$VIN00$
.tt 2 $$$
.TT 3 $$Dialog_const_u_type$$2000-01-07$
***********************************************************
.nf

.nf


    ========== licence begin  GPL
    Copyright (c) 2000-2004 SAP AG

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    as published by the Free Software Foundation; either version 2
    of the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    ========== licence end

.fo


.fo
.nf
.sp
MODULE  : Dialog_const_u_type
=========
.sp
Purpose:  Definition of constants and types for the dialog components
.CM *-END-* purpose -------------------------------------
.sp
.cp 3
Define  :
 
.CM *-END-* define --------------------------------------
.sp;.cp 3
Use     :
 
.CM *-END-* use -----------------------------------------
.sp;.cp 3
Synonym :
 
.CM *-END-* synonym -------------------------------------
.sp;.cp 3
Author  : 
.sp
.cp 3
Created : 1987-02-27
.sp
.cp 3
Version : 2000-01-07
.sp
.cp 3
Release :      Date : 2000-01-07
.sp
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Specification:
 
 
.CM *-END-* specification -------------------------------
.sp 2
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Description:
 
 
.CM *-END-* description ---------------------------------
.sp 2
***********************************************************
.sp
.cp 10
.nf
.oc _/1
Structure:
 
.CM *-END-* structure -----------------------------------
.sp 2
**********************************************************
.sp
.cp 10
.nf
.oc _/1
.CM -lll-
Code    :
 
 
CONST
      mxin_c7           = 7;
      mxin_c45          = 45;
      mxin_c250         = 250;
      bin_c60          =
            '                                                            ';
      cin_sysname      = 'ADABAS              ';
      mxin_sysname      = 6;
      cin_c_undef      = 'UNDEF               ';
      cin_v_plus       = 12;
      cin_v_minus      = 13;
      cin_nullbyte     = '\00';
      cin_count_signal = '\01';
      cin_sqlnull      = '\FF';
      mxin_parsid       = 12;
      mxin_databases     = 8;
      cin_maxpackets     = 2;
      mxin_dbs           = mxin_databases; (* concurrent database sessions *)
      mxin_gh_line       = 72;
      mxin_pickobject    = 2048;
      mxin_get_buffer    = 134;
      mxin_vvalue        = 255;
      mxin_prefix        = 20;
      cin_cr_byte       = '\00';
      (* ============================================= *)
      (*     Constants for Logical Screen              *)
      (* ============================================= *)
      (* ls_part *)
      cin_ls_whole_screen = 0;
      cin_ls_basic_window = 1;
      cin_ls_header       = 2;
      cin_ls_workarea     = 3;
      cin_ls_inputarea    = 4;
      cin_ls_functionmenu = 5;
      cin_ls_sysline      = 6;
      cin_ls_undef_part   = 7;
      (* *)
      mxin_sk_labels         = 12;
      mxin_key_labels_tab    = 120;
      mxin_screens           = 2;
      (* predefined screen attributes *)
      cin_ls_normal          = 0;
      cin_ls_enhanced        = 1;
      cin_ls_title           = 2;
      cin_ls_blink           = 3;
      cin_ls_infomsg         = 4;
      cin_ls_errormsg        = 5;
      cin_ls_graphic         = 6;
      cin_ls_invisible       = 11;
      cin_ls_inverse         = 12;
      (* internal constants for VIN5* *)
      cin_ls_backgr_normal   = 6;
      cin_ls_backgr_enhanced = 7;
      cin_ls_backgr_blink    = 8;
      cin_ls_grayed          = 9;
      (* ============================================= *)
      (* Constants for Screen Attributes               *)
      (* ============================================= *)
      cin_attr1      = 0;
      cin_attr2      = 1;
      cin_attr3      = 2;
      cin_attr4      = 3;
      cin_attr5      = 4;
      cin_attr6      = 5;
      cin_attr7      = 6;
      cin_attr8      = 7;
      cin_attr9      = 8;
      cin_attr10     = 9;
      cin_attr11     = 10;
      cin_attr12     = 11;
      cin_attr13     = 12;
      cin_attr14     = 13;
      cin_attr15     = 14;
      cin_attr16     = 15;
      cin_maxattr    = 16;
      cin_max_ap     =  8; (* max entries in attr/printer *)
      (* ============================================= *)
      (* Constants for Virtual Printer                 *)
      (* and Virtual File                              *)
      (* ============================================= *)
      mxin_prline             = 256; (* only for edit form *)
      cin_printerfilename     =
            'PRINTER                                                         ';
      mxin_errtext            =  40;
      mxin_minoutreclen       =   8;
      (* ============================================== *)
      (* Constants for Tool Editor                      *)
      (* ============================================== *)
      (* The edit form has to have the width of the     *)
      (* largest screen that is supported (SUN, HP9)    *)
      (* The maximal screen width is 142. The content   *)
      (* of the editor lines is 141 because of attrbyte.*)
      (* ============================================== *)
      mxin_screenline        = 256;
      mxin_eline             = mxin_screenline;
      mxin_double_eline      = 512; (* mxin_eline * 2 (UNICODE) *)
      mxin_eform_buffer       = 24552; (* tin_eform_buffer *)
      mxin_small_eform_buffer = 12276; (* tin_small_eform_buffer *)
      mxin_prefix_content    = 4;
      cin_eprefix            = '====';
      cin_eprefix_char       = '=';
      cin_bright_cmd         = '****';
      cin_bright_cmd_char    = '*';
      cin_attention_mark     = '!';
      cin_first_slno         = 1;
      cin_first_scol         = 1;  (* 20.1.88*)
      cin_vt_hif_line        = 25;     (*24*)
      mxin_header_lines      = 2;  (* header on edit screen *)
      mxin_trailer_lines     = 3;  (* trailer on edit screen *)
      cin_first_edit_slno    = 3;  (* screen-line/screen-col,  *)
      cin_firsteditscol      = 6;  (* where first eline begins *)
      cin_ocmd_scol          = 6;  (* where command input begins *)
      mxin_min_scr_lines     = 10;
      mxin_min_scr_cols      = 30;
      mxin_sform_lines       = 18;
      mxin_id_field          = 8; (* variable fields in *)
      mxin_rel_field         = 8;
      bin_id_field           = bsp_c8;
      mxin_mode_field        = 12; (* edit screen header *)
      mxin_text_field        = 40;
      bin_text_field         = bsp_c40;
      mxin_user_field         = 18;
      mxin_format_buffer      = 250;
      mxin_cmd_pool           = 255;
      cin_max_choice          = 15;
      (* ============================================= *)
      (* Constants for Messages and Help               *)
      (* ============================================= *)
      mxin_cursor_cols        = mxin_screenline;
      mxin_messages           = 120;
      mxin_msgkeys            = 120;
      mxin_msgpoolbuf         = 3840;
      mxin_msgnos             = mxin_msgkeys;
      mxin_null_string        = mxsp_c20;
      mxin_sep_string         = mxsp_c20;
      mxin_bool_string        = mxsp_c10;
      (* ============================================= *)
      (* Constants for Virtual Printer                 *)
      (* ============================================= *)
      (* M.Reinecke 26.06.92 *)
      cin_minpagewidth       = 1;
      cin_maxpagewidth       = mxin_prline;
      cin_minleftmargin      = 0;
      cin_maxleftmargin      = cin_maxpagewidth;
      cin_minrightmargin     = 0;
      cin_maxrightmargin     = cin_maxpagewidth;
      cin_minpagelength      = 1;
      cin_maxpagelength      = 999;
      cin_mintopmargin       = 0;
      cin_maxtopmargin       = cin_maxpagelength;
      cin_minbottommargin    = 0;
      cin_maxbottommargin    = cin_maxpagelength;
      cin_maxtitleline       = 3;
      cin_titlechar          = '$';
      cin_pdtchar            = '%';
      cin_pagechar           = 'P';
      cin_datechar           = 'D';
      cin_timechar           = 'T';
      (**)
      mxin_copy               = 999;
      mxin_helps              = 24;
      mxin_parms_buffer       = 80;
      mxin_help_text_id       = 12;
      bin_parseid            = bsp_c12;
      cin_no_substitution    = bin_c60;
      (* Languages *)
      cin_k_deu              = 'DEU';
      cin_k_eng              = 'ENG';
      cin_k_fra              = 'FRA';
      cin_k_esp              = 'ESP';
      (* Components *)
      cin_k_dbkern           = 'DBKERN      ';
      cin_k_domain           = 'DOMAIN      ';
      cin_k_easy             = 'EASY        ';
      cin_k_edit             = 'EDIT        ';
      cin_k_form             = 'FORM        ';
      cin_k_help             = 'HELP        ';
      cin_k_load             = 'LOAD        ';
      cin_k_online           = 'ONLINE      ';
      cin_k_plrun            = 'PLRUN       ';
      cin_k_plworkbench      = 'PLWORKBENCH ';
      cin_k_query            = 'QUERY       ';
      cin_k_report           = 'REPORT      ';
      cin_k_set              = 'SET         ';
      cin_k_sql              = 'SQL         ';
      cin_k_utility          = 'UTILITY     ';
      cin_k_workbench        = 'WORKBENCH   ';
      cin_k_pclink           = 'PCLINK      ';
      (* ============================================== *)
      (* Constants for SET (VIN07)                      *)
      (*                                                *)
      (* Vorgehensweise bei neuem Set Parameter:        *)
      (* - SYSSET Definition in SYSSET.ins erweitern    *)
      (* - neue cin_set.. Konstante in vin00 definieren *)
      (* - neuen cin09_set.. Namen in vin09 definieren  *)
      (* - neuen SET.dem und SET.enm Eintrag definieren *)
      (* - Konstante mxin_setparms erhoehen.            *)
      (* ============================================== *)
      (* ============================================== *)
      (* general text constants                         *)
      (* ============================================== *)
      cin_k_on40            = 'ON                                      ';
      cin_k_off40           = 'OFF                                     ';
      cin_k_right           = 'RIGHT                                   ';
      cin_k_right_num       = 'RIGHT NUM                               ';
      cin_k_left            = 'LEFT                                    ';
      cin_k_left_num        = 'LEFT NUM                                ';
      cin_k_no              = 'NO                                      ';
      cin_k_vax             = 'VAX                                     ';
      cin_k_false           = 'N';
      cin_k_true            = 'Y';
      cin_no_thousand_groups = 'N';
      (* ============================================= *)
      (* Offset of messages for SET menue              *)
      (* ============================================= *)
      cin_setmsg_nameoffset          = 17300;
      (* ============================================= *)
      (* General messages   &   Start/End  Position    *)
      (* ============================================= *)
      cin_setmsg_first               = 17801;
      cin_setmsg_last                = 17805;
      cin_setmsg_testmsg             = 17801;
      cin_setmsg_go_ahead            = 17802;
      cin_setmsg_tonly_temp          = 17803;
      cin_setmsg_storesetparms       = 17804;
      cin_setmsg_nomsg               = 17805;
      (* ============================================= *)
      (* Message for Label field in header line        *)
      (* ============================================= *)
      cin_setmsg_executelabel        = 17850;
      (* ============================================= *)
      (* Error message                                 *)
      (* ============================================= *)
      cin_setmsg_date_time           = 17416;
      cin_setmsg_formats_are         = 17417;
      cin_setmsg_bool_answer         = 17418;
      cin_setmsg_only_yes_no         = 17419;
      cin_setmsg_not_numeric         = 17420;
      cin_setmsg_reduced_to_max      = 17421;
      cin_setmsg_invalid_input       = 17422;
      cin_setmsg_positive_number     = 17423;
      cin_setmsg_missing_ampersand   = 17424;
      cin_setmsg_too_many_ampersands = 17425;
      cin_setmsg_no_blank            = 17426;
      cin_setmsg_lang_not_supported  = 17427;
      cin_setmsg_printformat         = 17428;
      cin_setmsg_increased_to_min    = 17429;
      cin_setmsg_wrong_quote         = 17430;
      cin_setmsg_presentation        = 17431;
      cin_setmsg_select_pres         = 17432;
      (* ============================================= *)
      (* Numeric Constants                             *)
      (* ============================================= *)
      cin_set_username         =  1;
      cin_set_language         =  2;
      cin_set_null             =  3;
      cin_set_decimal          =  4;
      cin_set_date             =  5;
      cin_set_time             =  6;
      cin_set_sep              =  7;
      cin_set_l_sep            =  8;
      cin_set_printformat      =  9;
      cin_set_copy             = 10;
      cin_set_syseditor        = 11;
      cin_set_editor           = 12;
      cin_set_lopres           = 13;
      cin_set_loadprot         = 14;
      cin_set_transize         = 15;
      cin_set_yepres           = 16;
      cin_set_lt_pres          = 17;
      cin_set_le_pres          = 18;
      cin_set_gt_pres          = 19;
      cin_set_ge_pres          = 20;
      cin_set_eq_pres          = 21;
      cin_set_ne_pres          = 22;
      cin_set_not_pres         = 23;
      cin_set_in_pres          = 24;
      cin_set_betw_pres        = 25;
      cin_set_sounds_pres      = 26;
      cin_set_delimiter        = 27;
      cin_set_fillchar         = 28;
      cin_set_graficchar       = 29;
      cin_set_ignore_case      = 30;
      cin_set_actualize_menu   = 31;
      cin_set_qupres           = 32;
      cin_set_queryprot        = 33;
      cin_set_autoprot         = 34;
      cin_set_plpres           = 35;
      cin_set_plprot           = 36;
      cin_set_pretty           = 37;
      cin_set_nesting          = 38;
      cin_set_code_area        = 39;
      cin_set_value_area       = 40;
      cin_set_dia_version      = 41;
      cin_set_dia_target_langs = 42;
      cin_set_timestamp        = 43;
      cin_set_boolean          = 44;
      cin_set_sqltime          = 45;
      cin_set_history          = 46;
      cin_set_controlpres      = 47; (* overrides the plpres message *)
      (* ============================================= *)
      (* Number of SET Parameters                      *)
      (* ============================================= *)
      mxin_setparms         = 47;
      (* ============================================= *)
      (*     Constants for DATE and TIME masks         *)
      (* ============================================= *)
      mxin_date_mask_string   = mxsp_c50;
      cin_key_iso             =
            'ISO                                               ';
      mxin_key_iso            = 3;
      cin_key_usa             =
            'USA                                               ';
      mxin_key_usa            = 3;
      cin_key_eur             =
            'EUR                                               ';
      mxin_key_eur            = 3;
      cin_key_jis             =
            'JIS                                               ';
      mxin_key_jis            = 3;
      cin_key_int             =
            'INTERNAL                                          ';
      mxin_key_int            = 8;
      (* ============================================= *)
      (*     Constants for Programm Version (xpl)      *)
      (* ============================================= *)
      cin_k_prod    = 'PROD';
      cin_k_hist    = 'HIST';
      cin_k_test    = 'TEST';
      cin_k_work    = 'WORK';
      cin_k_all     = 'ALL ';
      (* ============================================= *)
      (*     Constants for tin_packet_status           *)
      (* ============================================= *)
      p_waiting   = 0;
      p_reset     = 1;
      p_requested = 2;
      p_received  = 3;
      (* ============================================= *)
      (*     Constants for I32 CODE MAPPING TABLES     *)
      (* ============================================= *)
      cin_to_small          = 1;
      cin_to_capital        = 2;
      cin_to_ebcdic         = 3;
      cin_to_ascii          = 4;
      cin_charset_to_std    = 5;
      cin_std_to_charset    = 6;
      (*========================================== *)
      (* Constants for Logical Screen (VIN50)      *)
      (*========================================== *)
      mxin_window_stack      = 4;
&     if $OS in [ MSDOS, WIN32 ]
      (*========================================== *)
      (* for PC Config File                        *)
      (*========================================== *)
      cin_pcconfiglist    = 10;
      (*========================================== *)
      (* Windows Dialog Box IDs and other consts.  *)
      (*========================================== *)
      cin_dlg_confirm1   = 18001;
      cin_dlg_confirm2   = 18002;
      cin_dlg_confirm3   = 18003;
      cin_dlg_confirm4   = 18004;
      cin_dlg_confirm5   = 18005;
      cin_dlg_exitbox    = 18100;
      cin_dlgexit_textfield = 101;
      cin_switch_logon = 18202;
      cin_dlg_logon    = 18202;
      cin_dlg_standardbox= 18101;
      cin_win_modefield_end = 15;
&     endif
      (* Constants for vin25 *)
      cin_logon_nam_col            =    2;
      cin_logon_inp_col            =   17;
      cin_logon_un_line            =   20;
      cin_logon_pw_line            =   21;
      cin_logon_db_line            =   22;
      cin_logon_locline            =   23;
      (* Calculate these constants using those above *)
      cin_logon_un_prefix           = 2000 (* 100 * cin_logon_un_line *);
      cin_logon_pw_prefix           = 2100 (* 100 * cin_logon_pw_line *);
      cin_logon_db_prefix           = 2200 (* 100 * cin_logon_db_line *);
      cin_logon_locprefix           = 2300 (* 100 * cin_logon_locline *);
 
TYPE
      (* ========================================= *)
      (*  Initalize file names (see VIN60)         *)
      (* ========================================= *)
      tin_standardfiles = (tracefile, loadprotfile, dialogprotfile,
            queryprotfile, xuserfile, xparamfile, testprotfile,
            installprotfile, dbloadlogfile, dbextractlogfile);
      (* ================================ *)
      (*     String Types                *)
      (* ================================ *)
      tin_c7             = PACKED ARRAY [ 1..mxin_c7 ] OF char;
      tin_c45            = PACKED ARRAY [ 1..mxin_c45 ] OF char;
      tin_c250           = PACKED ARRAY [ 1..mxin_c250 ] OF char;
      (* ================================ *)
      (*     Numeric Types               *)
      (* ================================ *)
      tin_parsid = PACKED ARRAY [ 1..mxin_parsid ] OF char;
 
      tin_eget_options = RECORD
            thoustoken : char;
            dectoken   : char;
            filler     : tsp00_C2;
            scale      : tsp00_Int4;
            scale_len  : tsp00_Int4;
            scale_frac : tsp00_Int4;
      END;
 
      (* ================================ *)
      (*     Types for the Kernel        *)
      (* ================================ *)
      tin_vvalue         = PACKED ARRAY [ 1..mxin_vvalue ] OF char;
      tin_get_buffer     = PACKED ARRAY [ 1..mxin_get_buffer ] OF char;
      tin_switch_type    = (switch_on, switch_off);
      tin_fetch_dir      = (mf_first, mf_last, mf_next,
            mf_prev, mf_rest, mf_pos);
      (* ================================ *)
      (*     Types for Logon (VIN25)      *)
      (* ================================ *)
      tin_gh_line        = PACKED ARRAY [ 1..mxin_gh_line ] OF char;
      tin_comp_label     = tsp00_C20;
      (* =================================== *)
      (*     Types for switch to OS (VIN71)  *)
      (* =================================== *)
      tin_i71_state    = (i71_no_exec, i71_is_exec,
            i71_executed, i71_error);
      (* =================================== *)
      (*     Types for REPORT                *)
      (* =================================== *)
      tin_report_mode  = ( r_master, r_detail,
            r_normal, r_dialog );
      (* ====================================== *)
      (*     Types for the virtual terminal     *)
      (* ====================================== *)
      tin_vt_releasemode    = vt_unknown..vt_control_key;
      (* vt_unknown..vt_end_key   E.Stils 12.08.93 *)
      tin_ls_releasemode    =  (f1, f2, f3, f4, f5, f6, f7, f8, f9,
            f10, f11, f12, (* B.M. 30.10.92 *)
            f_help, f_up, f_down, f_enter, f_clear,
            f_left, f_right, f_pick,
            f_put, f_mark, f_select, f_move,
            f_copy, f_insert, f_delete, f_top,
            f_bottom, f_cursor_home, f_cursor_end,
            f_cursor_bol, f_cursor_eol, f_cancel,
            f_undo, f_cmd, f_file_open, f_file_save,
            f_exit, f_print, f_find, f_replace,
            f_local, f_hscroll, f_vscroll,
            f_mouse_dbl, f_mouse_up, f_mouse_down,
            f_control,
            f_end );
      tin_keyboard_type  =  (k_standard, k_extended);
      tin_ls_sk_label    = PACKED ARRAY [ 1..csp_lslabel ] OF char;
      tin_vt_softkeys    =  ARRAY [ 1..csp_sk_number ] OF tin_ls_sk_label;
 
      tin_display_range = RECORD  (* B.M. Rel 3.0 90/02/28 *)
            total_begin : tsp00_Int4;
            total_end   : tsp00_Int4;
            displ_begin : tsp00_Int4;
            displ_end   : tsp00_Int4;
      END;
 
      tin_ls_fmode          = (ls_input, ls_dbcs, ls_mixed, ls_continued);
      (* ============================================= *)
      (*            Range and Set definitions          *)
      (* ============================================= *)
&     if $OS IN [ VMSP, VMS ]
      tin_natural            = PACKED 0..csp_maxint2;
      tin_screencount        = PACKED 1..mxin_screens;
      tin_prefix_col         = PACKED 1..mxin_prefix_content;
      tin_title_num          = PACKED 0..cin_maxtitleline;
      tin_prtline_pos        = PACKED 1..mxsp_prtline;
      tin_set_id             = PACKED 1..mxin_setparms;
      tin_sep_length         = PACKED 0..mxin_sep_string;
      tin_copy_range         = PACKED 1..mxin_copy;
      tin_ls_part            = PACKED cin_ls_whole_screen..cin_ls_undef_part;
      tin_ls_attribute_index = PACKED 0..15;
      tin_window_level       = PACKED 0..mxin_window_stack;
      tin_mxin_dbs_set       = PACKED SET OF 1..mxin_dbs; (* VMSP 2 Byte *)
      tin_show_set           = PACKED SET OF tin_set_id;
      tin_ls_key_set         = PACKED SET OF tin_ls_releasemode;
      tin_ls_fieldmode       = PACKED SET OF tin_ls_fmode;
&     else
&     if   $OSSPEC = SCO
      tin_natural            = 0..csp_maxint2;
&     else
      tin_natural            = tsp00_Int2;
&     endif
      tin_screencount        = 1..mxin_screens;
      tin_prefix_col         = 1..mxin_prefix_content;
      tin_title_num          = 0..cin_maxtitleline;
      tin_prtline_pos        = 1..mxsp_prtline;
      tin_set_id             = 1..mxin_setparms;
      tin_sep_length         = 0..mxin_sep_string;
      tin_copy_range         = 1..mxin_copy;
      tin_ls_part            = cin_ls_whole_screen..cin_ls_undef_part;
      tin_ls_attribute_index = 0..15;
      tin_window_level       = 0..mxin_window_stack;
      tin_mxin_dbs_set       = SET OF 1..mxin_dbs;
      tin_show_set           = SET OF tin_set_id;
      tin_ls_key_set         = SET OF tin_ls_releasemode;
      tin_ls_fieldmode       = SET OF tin_ls_fmode;
&     endif
      (* ============================================= *)
      (* Types for the tool-internal editor            *)
      (* ============================================= *)
      tin_edit_key = ( edk_nothing, edk_enter, edk_mark, edk_clear,
            edk_insert, edk_delete, edk_pick, edk_put, edk_splitjoin,
            edk_print, edk_down, edk_up, edk_top, edk_bottom, edk_home,
            edk_end, edk_left, edk_right, edk_hscroll, edk_vscroll,
            edk_save, edk_open );
      tin_screenline   = PACKED ARRAY [ 1..mxin_screenline ] OF char;
      tin_eform_buffer = PACKED ARRAY [ 1..mxin_eform_buffer ] OF char;
      tin_small_eform_buffer = PACKED ARRAY [ 1..mxin_small_eform_buffer ]
            OF char;
      tin_eline        = tin_screenline;
      tin_double_eline = PACKED ARRAY [1..mxin_double_eline] OF char;
      tin_edit_cmd_type = (e_no_cmd, e_ins, e_del, e_copy, e_move,
            e_rshift, e_lshift, e_dupl, e_ftarget, e_ptarget,
            e_center, e_illegal_cmd, e_dark, e_visible );
      tin_prefix_content = PACKED ARRAY [ 1..mxin_prefix_content ] OF char;
 
      tin_prefix_line  = RECORD
            content     : tin_prefix_content;
            op          : tin_edit_cmd_type;
            block_cmd   : boolean;      (* cc, mm, >>, << *)
            filler      : tsp00_C2;
            arg         : tin_natural;   (* max. 2 digits *)
            eline_nr    : tin_natural;
      END;
 
      tin_prefix_lines  = ARRAY [ 1..mxin_prefix ] OF tin_prefix_line;
 
      tin_prefix_type  = RECORD
            length      : tin_natural;
            line        : tin_prefix_lines;
      END;
 
 
      tin_screen_position = RECORD
            lines       : tin_natural;
            cols        : tin_natural;
            line_pos    : tin_natural;
            col_pos     : tin_natural
      END;
 
      tin_cmd_pool        = PACKED ARRAY [ 1..mxin_cmd_pool ] OF char;
      tin_sform           = ARRAY [ 1..mxin_sform_lines ] OF tin_screenline;
      tin_mode_field      = tsp00_C12;
      tin_text_field      = tsp00_C40;
      tin_user_field      = tsp00_KnlIdentifier;
      tin_pickobject      = PACKED ARRAY [ 1..mxin_pickobject ] OF char;
 
      tin_eform_vars     = RECORD
            size               : tin_natural;
            elength            : tin_natural;
            lines              : tin_natural;
            act_line           : tin_natural;
            act_pos            : tin_natural;
            text_offset        : tin_natural;
      END;
 
 
      tin_pick_buffer        = RECORD
            pick_vars    : tin_eform_vars;
            content      : tin_pickobject;
            blockwidth   : tsp00_Int2;
            filler       : tsp00_Int2;
      END;
 
 
      tin_cmd_type = RECORD
            length     : tin_natural;
            content    : tin_screenline;
            filler     : boolean;
      END;
 
 
      tin_cmd_stack =   RECORD
            cvars       : tin_eform_vars;
            cp          : tin_natural;
            cbuf        : tin_cmd_pool;
            filler      : tsp00_C3;
      END;
 
      (* ============================================= *)
      (* Types of editor source global variables       *)
      (* ============================================= *)
      tin_edit_msg = (ok_msg, unknown_ecmd, unknown_relkey,
            copy_pending, move_pending, del_pending, dupl_pending,
            shift_pending, target_pending, dark_pending,
            ambiguous_targets, eform_overflow, eform_underflow,
            left_truncated, right_truncated,
            top_reached, bottom_reached, printer_not_ok,
            file_error, default_pf, no_target,
            option_error, slash_missing, no_copy,
            not_implemented,
            prefix_overflow,
            no_pick, pick_done , buf_empty,
            no_info, ok_change,
            no_change, li_trunc, print_enqueued, print_out,
            no_print, eform_empty, ok_copy,
            red_cmd, wrap_on, wrap_off, wrap_overflow, line_overflow,
            pr_prot, wrong_csrpos );
      tin_eline_no     = tsp00_C3;
      tin_erg_no       = tsp00_C6;
 
      tin_edit_work_area = RECORD
            prefix             : tin_prefix_type;
            term_type          : tin_keyboard_type;
            csr_set_by_user    : boolean;
            csr_switch         : boolean;
            insert_mode        : boolean;
            ecols_on_screen    : tin_natural;
            first_edit_scol    : tin_natural;
            insert_line        : tin_natural;
            insert_scol        : tin_natural;
            target_line        : tin_natural;
            error_line         : tin_natural;
            insert_before      : boolean;
            target_found       : boolean;
            target_kind        : (ptarget, ftarget);
            error_found        : boolean;
            msg_id             : tin_edit_msg;
            error_type         : (cmd_error, relkey_error, ocmd_error);
            mark1              : boolean;
            mark2              : boolean;
            mark1_line         : tin_natural;
            mark1_scol         : tin_natural;
            mark2_line         : tin_natural;
            mark2_scol         : tin_natural;
            cmd_line           : tin_natural;
            last_search_line   : tin_natural;
            last_search_col    : tin_natural;
            last_search_cmd    : tin_cmd_type;
            pf_msg_pos         : tin_natural;
            lines_on_screen    : tin_natural;
            cols_on_screen     : tin_natural;
            e_cmd              : boolean;
            print_now          : boolean;
            double_edit        : boolean;
            current_eform      : tsp00_Uint1;
            screen_no          : tsp00_Uint1;
            print_prot         : boolean;
            filler2            : tsp00_C2;
      END;
 
 
      tin_ed_winmark_type = RECORD
            mode     : tsp00_VtMark;
            mark     : tsp00_VtRectangle;
      END;
 
      (* ============================================= *)
      (* Popup types VIN17                             *)
      (* ============================================= *)
 
      tin_popup_record = RECORD
            used       : integer;
            popup_set  : ARRAY [1..cin_max_choice] OF boolean;
            only_one   : boolean;
      END;
 
      (*============================== *)
      (*  M E S S A G E   C A L L S   *)
      (*============================== *)
      tin_msg_number   = integer;
      tin_parms_buffer = PACKED ARRAY [ 1..mxin_parms_buffer ] OF char;
 
      tin_msg_parms    = RECORD
            length : tin_natural;
            buffer : tin_parms_buffer
                  (*====================================== *)
                  (* contains the substitution parameters  *)
                  (* for the system messages. Format is    *)
                  (*    |============================|     *)
                  (*    | len | parameter string     | ... *)
                  (*    |============================|     *)
                  (* length denotes the total length       *)
                  (*====================================== *)
      END;
 
      tin_language_id  = tsp00_C3;
      tin_component_id = tsp00_C12;
      tin_msg_type     = (long_msg, short_msg, crash_msg);
 
      tin_msg_key = RECORD
            next     : tsp00_Int2;
            prev     : tsp00_Int2;
            key      : tsp00_Int2;
            index    : tsp00_Int2;
      END;
 
      (*==============================*)
      (*     H E L P   C A L L S      *)
      (*==============================*)
      tin_help_text_id = PACKED ARRAY [ 1..mxin_help_text_id ] OF char;
 
      tin_bookmark_hid = RECORD (* M.Reinecke 29.01.93 *)
            bookmark_hid : tin_help_text_id;
            bookmark_act : boolean;
            filler1      : tsp00_C3;
      END;
 
 
      tin_example_hid = RECORD (* M.Reinecke 23.03.93 *)
            example_hid   : tin_help_text_id;
            example_first : tin_natural;
            example_last  : tin_natural;
            example_set   : boolean;
            filler1       : tsp00_C3;
      END;
 
      (*================================*)
      (* identifiziert einen Help-Text  *)
      (* fuer eine bestimmte Komponente *)
      (*================================*)
      (*============================== *)
      (*   R E P O R T    C A L L S    *)
      (*============================== *)
      (* ========================================================= *)
      (* the following types are used in the i50report interface   *)
      (* ========================================================= *)
      tin_format_buffer  = PACKED ARRAY [ 1..mxin_format_buffer ] OF char;
      tin_connect_status = (rc_ok,
            rc_dbms_start_required,
            rc_too_many_users,
            rc_restart_required,
            rc_logon_required,
            rc_user_or_pswd_illegal,
            rc_crash,
            rc_timeout,
            rc_too_many_databases,
            rc_unknown_symbolic_dbname,
            rc_implicit_release);
 
      tin_easydiarep_parms = RECORD
            d_db_status   : tin_connect_status;
            d_session_end : boolean;
            e_ret_keys    : tin_ls_key_set;
            e_rel_key     : tin_ls_releasemode;
            ul_rowno      : tsp00_Int4;
            ul_colno      : tsp00_Int4;
      END;
 
      (*================================== *)
      (*  G L O B A L  V A R I A B L E S  *)
      (*================================== *)
      tin_null_string  =  tsp00_C20;
      tin_sep_string   =  tsp00_C20;
 
      tin_bool_presentation = RECORD
            truestr   : tsp00_C10;
            falsestr  : tsp00_C10;
      END;
 
      tin_msgpoolbuf   = PACKED ARRAY [  1..mxin_msgpoolbuf  ] OF char;
 
      tin_msgpool = RECORD
            buf   : tin_msgpoolbuf;
            evars : tin_eform_vars;
      END;
 
      tin_msgkeys = ARRAY [ 1..mxin_msgkeys ] OF tin_msg_key;
 
      tin_msg_tab = RECORD
            lang        : tin_language_id;
            table_ok    : boolean;
            packet_free : boolean; (* LOAD in some cases needs both packets *)
            filler      : tsp00_C1;
            first       : tsp00_Int2;
            last        : tsp00_Int2;
            empty       : tsp00_Int2;
            parsid      : tin_parsid;
            bufpos      : ARRAY [ 1..4 ] OF tsp00_Int2;
            messages    : tin_msgkeys;
            msgpool     : tin_msgpool;
      END;
 
 
      tin_msgnos = RECORD
            len : tsp00_Int2;
            buf : ARRAY [  1..mxin_msgnos  ] OF tsp00_Int2;
      END;
 
      tin_user_privilege = (no_data, private_data, public_data);
      (**)
      (* virtueller Drucker  *)
      (* M.Reinecke 26.06.92 *)
      (**)
      tin_vp_status = ( vp_not_open, vp_open, vp_reset, vp_used );
      tin_vp_style = ( vp_trunc, vp_split, vp_wrap );
      tin_vp_titletyp = ( vp_toptitle, vp_bottitle );
 
      tin_vp_pdtpos = RECORD (* Page, Date, Time *)
            tlinetyp : tin_vp_titletyp;
            tlinenum : tin_title_num;
            tlinepos : tin_prtline_pos;
      END;
 
 
      tin_vp_title = RECORD
            tline     : ARRAY [ 1..cin_maxtitleline ] OF tsp00_PrtLine;
            tlinelen  : ARRAY [ 1..cin_maxtitleline ] OF tin_natural;
            fill_nat  : tin_natural;
            tlinefeed : ARRAY [ 1..cin_maxtitleline ] OF tsp00_VpLinefeeds;
            fill_enum : boolean;
      END;
 
 
      tin_vp_record = RECORD
            pr_name   : tsp00_PrtName;
            act_page  : tin_natural;
            act_line  : tin_natural;
            top_title : tin_vp_title;
            bot_title : tin_vp_title;
            page_pos  : tin_vp_pdtpos;
            date_pos  : tin_vp_pdtpos;
            time_pos  : tin_vp_pdtpos;
            status    : tin_vp_status;
            style     : tin_vp_style;
            filler    : tsp00_C2;
      END;
 
      (* virtuelles Terminal *)
 
      tin_ed_record = RECORD
            elines_on_screen : tin_natural;
            ecols_on_screen  : tin_natural;
            first_edit_scol  : tin_natural;
            filler           : tsp00_C2;
      END;
 
      (*================================================ *)
      (*   Types for VIN40/VIN41 (format masks)          *)
      (*================================================ *)
      tin_mk_p_error = (mk_ok, empty, wrong_digitnumber, double_definition,
            quotes_not_closed, wrong_pos, mask_too_long);
      tin_mk_w_error = (mk_w_ok, var_too_long, mk_ill_var);
      tin_date_mask_string = PACKED ARRAY [ 1..mxin_date_mask_string ]
            OF char;
      tin_dmtype = (dm_free, dm_iso, dm_usa, dm_eur, dm_jis, dm_int );
 
      tin_date_mask = RECORD
            mlen     : tin_natural;
            tlen     : tin_natural;
            dm_type  : tin_dmtype;
            msk      : tin_date_mask_string;
            filler   : tsp00_C1;
      END;
 
      (*=============================================== *)
      (* Check for not allowed SQL statements (VIN20/21 *)
      (*=============================================== *)
      tin_check_sql = (
            cs_nothing_special,
            cs_commit,
            cs_connect,
            cs_crosstab,
            cs_dbproc,
            cs_delete,
            cs_explain,
            cs_fetch,
            cs_mfetch,
            cs_release,
            cs_rollback,
            cs_select,
            cs_select_direct,
            cs_select_first,
            cs_select_last,
            cs_select_next,
            cs_select_prev,
            cs_set_format,
            cs_set_language,
            cs_set_role,
            cs_set_session,
            cs_set_others,
            cs_show,
            cs_update,
            cs_update_stat);
      (*========================================== *)
      (* Types for SET (VIN06 - 09)                *)
      (*========================================== *)
      tin_editor_type = (prefix_left, prefix_right, no_prefix, vax);
      (* ========================================= *)
      (* including types for Screen Attributes     *)
      (* ========================================= *)
 
      tin_attr_record = RECORD
            attribut        : tsp00_VtAttrib;
            foreground      : tsp00_VtColor;
            background      : tsp00_VtColor;
            filler          : tsp00_C1;
      END;
 
      tin_attr_array  = ARRAY [1..cin_maxattr] OF tin_attr_record;
 
      tin_attrparm = RECORD
            attr_name       : tsp00_Name;
            filler          : tsp00_C2;
            attr_array      : tin_attr_array;
      END;
 
 
      tin_attrset_type = RECORD
            count    : integer;     (* Anzahl der vorhandenen Attr. *)
            act_attr : integer;     (* aktuell eingestelltes Attr. *)
            attrset  : ARRAY [1..cin_max_ap] OF tin_attrparm;
      END;
 
 
      tin_printerparms  = RECORD
            formatname  : tsp00_Name;
            filler1     : tsp00_C2;
            printer     : tsp00_PrtName;
            pagelength  : integer;
            pagewidth   : integer;
            tmargin     : integer;
            bmargin     : integer;
            lmargin     : integer;
            rmargin     : integer;
            newpage     : boolean;
            filler2     : tsp00_C3;
      END;
 
 
      tin_pset_type = RECORD
            count           : integer; (* siehe Attribute *)
            act_print       : integer;
            printerset      : ARRAY [1..cin_max_ap] OF tin_printerparms;
      END;
 
 
      tin_set_parms_record = RECORD
            change           : boolean;
            language         : tin_language_id;
            null             : tin_null_string;
            bool_presentation : tin_bool_presentation;
            decimal          : tsp_decimal_presentation;
            date             : tin_date_mask;
            time             : tin_date_mask;
            timestamp        : tin_date_mask;
            sep              : tin_sep_string;
            l_sep            : tin_sep_length;
            act_print_name   : tsp00_Name;
            printformat      : tin_pset_type;
            copy             : tin_copy_range;
            presentation     : tin_attrset_type;
            syseditor        : tsp00_C40;
            editor           : tin_editor_type;
            numeric_prefix   : boolean;
            lopres           : tsp00_Name;
            loadprot         : tsp00_VFilename;
            transize         : tsp00_Int4;
            yepres           : tsp00_Name;
            lt_pres          : tsp00_C40;
            le_pres          : tsp00_C40;
            gt_pres          : tsp00_C40;
            ge_pres          : tsp00_C40;
            eq_pres          : tsp00_C40;
            ne_pres          : tsp00_C40;
            not_pres         : tsp00_C40;
            in_pres          : tsp00_C40;
            betw_pres        : tsp00_C40;
            sounds_pres      : tsp00_C40;
            delimiter        : char;
            fillchar         : char;
            graficchar       : char;
            ignore_case      : boolean;
            actualize_menu   : boolean;
            qupres           : tsp00_Name;
            queryprot        : tsp00_VFilename;
            autoprot         : boolean;
            plpres           : tsp00_Name;
            plprot           : tsp00_VFilename;
            pretty           : boolean;
            nesting          : tsp00_Uint1;
            sqltime          : boolean;
            history          : boolean;
            code_area        : tsp00_Int4;
            value_area       : tsp00_Int4;
            dia_version      : tsp00_C4;
            dia_target_langs : tsp00_C24;
      END;
 
      (*========================================== *)
      (* Types for code mapping tables             *)
      (*========================================== *)
      (* for ASCII/EBCDIC, UPPER/LOWER   *)
      (* and Standard/Charset variants    *)
      tin_code_tables   = ARRAY [ cin_to_small..cin_std_to_charset ]
            OF tsp00_Ctable;
      (* for Multibyte <-> UNICODE       *)
 
      tin_multibyte_tables = RECORD
            encodings_ptr   : tsp8_encodings_ptr;
            encoding_cnt    : tsp00_Int2;
            dblang          : tsp00_KnlIdentifier;
            dblang_idx      : tsp00_Int2;
            unicode_type    : tsp00_Uint1;
            filler          : tsp00_Uint1;
      END;
 
      (*========================================== *)
      (* Types for the Logical Screen              *)
      (*========================================== *)
      tin_prog_function  = f1 .. f_down;
      tin_key_labels_tab = PACKED ARRAY [   f1 .. f_down ]
            OF tin_ls_sk_label;
      tin_key_comments_tab = ARRAY [  f1 .. f_down  ] OF tsp00_Int2;
      tin_key_map          = ARRAY [  f1 .. f_down  ]
            OF tin_vt_releasemode;
 
      tin_ls_key_type = RECORD
            activated     : tin_ls_key_set;         (*   8 *)
            active_marked : tin_ls_key_set;         (*   8 *)
            highlighted   : tin_ls_key_set;         (*   8 *)
            key_labels    : tin_key_labels_tab;     (* 120 *)
            key_comments  : tin_key_comments_tab;   (*  30 *)
            filler1       : tsp00_C2;
            key_map       : tin_key_map;            (*  15 *)
            filler2       : boolean;
      END;
 
 
      tin_ls_position = RECORD
            screen_nr   : tin_screencount;
            screen_part : tin_ls_part;
            filler      : tsp00_C2;
            scol        : tin_natural;
            sline       : tin_natural;
      END;
 
 
      tin_ls_fieldtype = RECORD
            field_att  : tin_ls_attribute_index;
            fieldmode  : tin_ls_fieldmode;
            filler     : tsp00_C2;
      END;
 
 
      tin_ls_fieldatt  = RECORD
            background : tsp00_VtColor;
            fieldmode  : tin_ls_fieldmode;
            foreground : tsp00_VtColor;
            field_att  : tsp00_VtAttrib;
      END;
 
 
      tin_screen_window = RECORD
            first_pos : tin_ls_position;
            lines     : tin_natural;
            cols      : tin_natural;
      END;
 
 
      tin_win_options = RECORD
            frame_ft        : tin_ls_fieldtype;
            background_ft   : tin_ls_fieldtype;
            with_frame      : boolean;
            background_part : tin_ls_part;
            filler          : tsp00_C2;
      END;
 
 
      tin_ls_parms   = RECORD  (* B.M. Rel 3.0 90/03/01 *)
            reset_changed_bit   : boolean; (* option for output        *)
            standard_attributes : boolean; (* B.M. Rel 3.0.01 1 Oct 1991 *)
            change_backgr_attr  : boolean; (* E.Stils 29.01.1993 *)
            filler              : tsp00_C1;
            mark_begin          : tin_ls_position; (*option for output and*)
            mark_end            : tin_ls_position; (*...result from input *)
            key                 : tsp00_VtKeyStroke; (* result from input  *)
            mouse_pos           : tin_ls_position; (*...result from input *)
            scroll_dir          : tsp00_Int4;        (* ...result from input *)
      END;
 
 
      tin_vt_record = RECORD
            vt_ref    : tsp00_Int4;
            ok        : boolean;
            filler    : tsp00_C3;
            opt       : tsp00_VtOptions;
            parms     : tin_ls_parms;
            wopt      : tin_win_options;
            desc      : tsp00_TerminalDescription;
            vt_errtxt : tsp00_ErrText;
      END;
 
 
      tin_ls_window = RECORD
            first_line : tsp00_Int4;
            last_line  : tsp00_Int4;
            first_col  : tsp00_Int4;
            last_col   : tsp00_Int4;
      END;
 
      tin_ls_description = ARRAY [  cin_ls_basic_window..cin_ls_sysline ]
            OF tin_ls_window;
 
      tin_ls_record   = RECORD
            nr_screens          : tin_screencount;
            description         : ARRAY [ 1..mxin_screens ] OF
                  tin_ls_description;
            cursorpos           : tin_ls_position;
            fctline_cursor      : tin_ls_releasemode;
            filler              : tsp00_C3;
      END;
 
 
      tin_ls_input_field = RECORD
            changed     : boolean;
            buf         : tin_screenline;
            len         : tsp00_Int2;
            fld_pos     : tin_ls_position;
            left_trunc  : tin_natural;
            right_trunc : tin_natural;
      END;
 
 
      tin_screen_frame      = RECORD
            header       : tsp00_OnlineHeader;
            info_msg     : tin_screenline;
            sys_msg      : tin_screenline;
            upper_margin : tin_natural;
            left_margin  : tin_natural;
            bright_line  : tin_natural;
            max_lines    : tin_natural;
            max_cols     : tin_natural;
            is_error     : boolean;
            filler1      : tsp00_C3;
      END;
 
 
      tin_display_parms      = RECORD
            frame         : ARRAY [ 1..mxin_screens ] OF tin_screen_frame;
            screen_pos    : tin_screen_position;
            csr_pos       : tin_ls_position;
            active_screen : tin_screencount;
            pick          : tin_pick_buffer;
            split_screen  : boolean;
            my_layout     : boolean;
            changed       : boolean;
            wrap          : boolean;
            filler        : tsp00_C2;
      END;
 
      (* This is a help type for the VIN5* procedures *)
      tin_terminal_type = ( t_3270, dap4x, pc_terminal, win_terminal,
            unknown_terminal);
      tin_lineaddr = ^tsp00_Line;
      tin_packet_stat_array = PACKED ARRAY [ 1..2 ] OF tsp00_Uint1;
      (**)
      (* alternate use of both packets in LOAD, prevent access *)
      (* by SET, HELP, MESSAGE-READ etc.                       *)
      (* tsp00_Uint1: See the constants for tin_packet_status     *)
      (*           p_waiting, p_reset, p_requested, p_received *)
 
      tin_i20_vars = RECORD
            swap           : tsp00_SwapKind;
            code_type      : tsp00_CodeType;
            comp           : tin_component_id;
            comp_enum      : tsp4_component;
            filler1        : tsp00_C3;
            appl_version   : tsp00_C5;
            application    : tsp00_C3;
            errcode        : tsp00_Int2;
            errmsg         : tsp00_C70;
      END;
 
 
      tin_i32_vars = RECORD
            transtables : tin_code_tables;
      END;
 
      (* i50_vars *)
 
      tin_ls_internal_window = RECORD
            first_line : tin_natural;
            first_col  : tin_natural;
            length     : tin_natural;
            width      : tin_natural;
      END;
 
 
      tin_win_stack_element = RECORD
            screen_nr        : tin_screencount;
            description      : tin_ls_description;
            defined_part     : tin_ls_part;
            with_windowframe : boolean;
            filler           : tsp00_C2;
      END;
 
 
      tin_win_stack = RECORD
            level : tin_window_level;
            stack : ARRAY [1..mxin_window_stack ] OF
                  tin_win_stack_element;
      END;
 
 
      tin_i50_vars = RECORD
            window           : tin_ls_internal_window;
            curr_sno         : tsp00_Int4;
            curr_row         : tsp00_Int4;
            curr_col         : tsp00_Int4;
            hif              : tsp00_HifParms;
            stack            : tin_win_stack;
            new_value        : boolean;
            defined_part     : tin_ls_part;
            with_windowframe : boolean;
            filler           : tsp00_C1;
      END;
 
      tin_kernel_session = tsp00_C4;
 
      tin_packet_control = RECORD
            snd_packet_ptr : tsp1_packet_ptr;
            rcv_packet_ptr : tsp1_packet_ptr;
            curr_segm_ptr  : tsp1_segment_ptr;
            curr_part_ptr  : tsp1_part_ptr;
            packet_stat    : tsp00_Uint1;
            filler         : tsp00_C3;
      END;
 
      tin_packet_control_ptr = ^tin_packet_control;
 
      tin_sql_session = RECORD
            is_connected    : boolean;
            service         : tsp00_Service;
            reference       : tsp00_Int4;
            ksession        : tin_kernel_session;
            nodeid          : tsp00_NodeId;
            user_ident      : tsp00_KnlIdentifier;
            group_id        : tsp00_KnlIdentifier;
            connect_id      : tsp00_KnlIdentifier;
            local_sysdba    : tsp00_KnlIdentifier;
            system_user     : tsp00_KnlIdentifier;
            user_priv       : tin_user_privilege;
            password        : tsp00_CryptPw;
            serverdb        : tsp00_DbName;
            symbolic_dbname : tsp00_DbName;
            isolationlevel  : tsp00_Int2;
            timeout         : tsp00_Int2;
            cachelimit      : tsp00_Int2;
            sqlmode         : tsp00_SqlMode;
            sql_mode        : tsp1_sqlmode;
            connect_status  : tin_connect_status;
            as_utility      : boolean;
            nolog_session   : boolean;
            curr_packet     : integer; (* formerly s_no *)
            packet_nesting  : integer; (* formarly s_nest *)
            is_unicode_db   : boolean;
            sfiller1        : tsp00_C3;
            sfiller2        : tsp00_Int4;
            packet_control  : ARRAY[1..cin_maxpackets] OF tin_packet_control;
      END;
 
      (*========================================== *)
      (*        Global Variable i01_g^             *)
      (*========================================== *)
      tin_acv_address = tsp00_Addr;
      (* Dummy Pointer for all_command_glob ( VAK00 ) *)
 
      tin_global_in_record = RECORD
            dbno               : tsp00_Int4;
            session            : ARRAY [1..mxin_dbs] OF tin_sql_session;
            sql_ptr            : tin_packet_control_ptr;
            (* should always be true;
            *   with i01g^, sql_session[dbno] do
            *       sql_ptr = @packet_control[curr_packet]
            *)
            set_parms          : tin_set_parms_record;   (* 888 *)
            i20                : tin_i20_vars;           (* 12 *)
            i32                : tin_i32_vars;           (* 1536 *)
            multibyte          : tin_multibyte_tables;   (* 24 -> ? *)
            bookmark           : tin_bookmark_hid;       (* 16 *)
            example            : tin_example_hid;        (* 20 *)
            cancelb_ptr        : tsp00_BoolAddr;
            msg_tab            : tin_msg_tab;            (* 4852 *)
            vp                 : tin_vp_record;          (* 68 *)
            vt                 : tin_vt_record;          (* 159 *)
            ls                 : tin_ls_record;          (* 216 *)
            i50                : tin_i50_vars;           (* 948 *)
            key_type           : tin_ls_key_type;   (* neu !!! *)
            filler2            : tsp00_C2;
            com_stack          : tin_cmd_stack;          (* 279 *)
            is_batch           : boolean;
            vf_pool_ptr        : tsp00_Int4;
            global_end         : integer; (* this field has to be the *)
            (* very  l a s t   field    *)
      END;
 
      tin_global_in_vars = ^tin_global_in_record;
      (*========================================== *)
      (* Types for TEST/TRACE (VMT90ff.)           *)
      (*========================================== *)
      tin_name_array        = ARRAY [ 1..20 ] OF tsp00_Name;
      tin_filename_array    = ARRAY [ 1..10 ] OF tsp00_VFilename;
      (* ============================================= *)
      (*     Types for VMT time measuring              *)
      (* ============================================= *)
 
      tin_td_layer      = RECORD
            fname        : tsp00_VFilename;
            file_no      : tsp00_Int4;
            hostfile_err : tsp00_ErrText;
            open         : boolean;
            printer      : boolean;
            filler       : tsp00_C2;
      END;
 
      (* ============================================= *)
      (* Types for TEST                                *)
      (* ============================================= *)
      tin_prot_filerec = (notest, tprot, single_test, multi_test);
 
      tin_testmode   =    RECORD
            mode            : tin_prot_filerec;
      END;
 
      (* ============================================= *)
      (* Types for menus (VIN45)                       *)
      (* ============================================= *)
      tin_global_test_vars = (no_comments, act_comment, all_comments);
      tin_menu_comment = (display_only, interactive_menu,
            position_result_only);
 
      tin_menu_display_option = RECORD
            screen_nr          : tin_screencount;
            selection_pos      : tin_ls_position;
            maxcols            : tsp00_Int4;
            part               : tin_ls_part;
            display            : tin_menu_comment;
            centered           : boolean;
            comment            : tin_global_test_vars;
            confirm_with_enter : boolean;
            show_selection     : tin_ls_key_set;
            mand_selection     : tin_ls_key_set;
            filler             : tsp00_C1;
            errmsg             : tin_screenline;
            sysmsg             : tin_screenline;
            range_lbl          : tsp00_C8;
            promptpos          : tin_ls_position;
            init_itemno        : tsp00_Int4;
      END;
 
 
      tin_menu_returnparms = RECORD
            itemno : tsp00_Int4;
            item   : tin_screenline;
            rf     : tin_ls_releasemode;
            filler : tsp00_C2;
      END;
 
      (* ============================================= *)
      (* Types for i04literal                         *)
      (* ============================================= *)
 
      tin_menu_result = RECORD
            dbpid      : tin_parsid;
            dbpos      : ARRAY [ 1..7 ] OF tsp00_Int2;
            s_label    : tsp00_C8;
            m_label    : tsp00_C12;
            l_label    : tsp00_C18;
            xl_label   : tsp00_C80;
            tab_exists : boolean;
            filler     : tsp00_C3;
      END;
 
      (* ============================================= *)
      (* Types for long handling                       *)
      (* ============================================= *)
 
      tin_long_desc_type = RECORD
            lt_newlong   : boolean;
            lt_fillchar  : tsp00_C1;
            lt_fill1     : PACKED ARRAY [1..6] OF char;
            CASE boolean OF
                true :
                    (lt_old     : tsp00_LongDescriptor;
                    lt_fill2   : tsp00_C16);
                false :
                    (lt_new     : tsp00_LongDescBlock);
                END;
            (*ENDCASE*) 
            (**)
&           if $OS in [MSDOS, WIN32]
            (* ======================== *)
            (* Types for PC Config File *)
            (* ======================== *)
 
 
      tin_pcconfig = RECORD
            key    : tsp00_C24;
            result : tsp00_C40;
      END;
 
 
      tin_pcconfiglist = RECORD
            length : tsp00_Int4;
            arr    : ARRAY [ 1..cin_pcconfiglist ] OF tin_pcconfig;
      END;
 
&     endif
 
.CM *-END-* code ----------------------------------------
.SP 2 
***********************************************************
*-PRETTY-*  statements    :          0
*-PRETTY-*  lines of code :       1282        PRETTYX 3.10 
*-PRETTY-*  lines in file :       1498         1997-12-10 
.PA 
