/* @lastChanged: "1998-02-16 12:00"
 
 * @filename:   vta370
 * @purpose:    "TA_driver_testroutines"
 * @release:    7.1.0.0
 * @see:        "-.-"
 *
 * @copyright:  (c) 1998-2004 SAP AG"
 */
 
.tt 1 $SAP$LiveCache$VTA370$
.tt 3 $$TA_driver_testroutines$2000-07-24$
 
.nf
 
 .nf

    ========== licence begin  GPL
    Copyright (c) 1998-2005 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
***********************************************************
 
Module  : TA_driver_testroutines
 
Define  :
 
        PROCEDURE
              t370inittranslate_table (VAR upg : tta_user_proc_globals);
 
        PROCEDURE
              t370t1ebcdic_to_ascii (VAR codetable : tsp00_Ctable;
                    VAR source : tsp00_MoveObj;
                    VAR dest   : tsp00_MoveObj;
                    length     : integer);
 
        PROCEDURE
              t370t2ebcdic_to_ascii (VAR codetable : tsp00_Ctable;
                    VAR source : tsp00_MoveObj;
                    VAR dest   : tsp00_MoveObj;
                    length     : integer);
 
        PROCEDURE
              t370t3ebcdic_to_ascii (VAR codetable : tsp00_Ctable;
                    VAR source : tsp00_MoveObj;
                    VAR dest   : tsp00_MoveObj;
                    length     : integer);
 
        PROCEDURE
              t370tascii_to_ebcdic (VAR codetable : tsp00_Ctable;
                    VAR source : tsp00_MoveObj;
                    VAR dest   : tsp00_MoveObj;
                    length     : integer);
 
        PROCEDURE
              t370pascii_pos_ebcdic (VAR codetable : tsp00_Ctable;
                    VAR source : tsp00_MoveObj;
                    srcind     : integer;
                    VAR dest   : tsp00_MoveObj;
                    destind    : integer;
                    length     : integer);
 
        PROCEDURE
              t370tests (VAR upg : tta_user_proc_globals;
                    VAR first      : tsp00_Sname;
                    VAR second     : tsp00_Sname;
                    command        : tsp1_packet_ptr;
                    VAR rcv_packet : tsp1_packet_ptr;
                    VAR returncode : tsp00_Int2);
 
.CM *-END-* define --------------------------------------
.sp;.cp 3
Use     :
 
        FROM
              TA_driver_procedures : VTA320;
 
        PROCEDURE
              t320readterminal (VAR upg : tta_user_proc_globals;
                    VAR lineinfo  : tsp00_DataLine;
                    VAR last_line : boolean);
 
        PROCEDURE
              t320buildbuffer (VAR line1 : tsp00_DataLine;
                    VAR cmd_segm : tsp1_segment);
 
        PROCEDURE
              t320finish_part (VAR upg : tta_user_proc_globals;
                    packet_ptr : tsp1_packet_ptr;
                    VAR part   : tsp1_part);
 
        PROCEDURE
              t320parseid_part (VAR upg : tta_user_proc_globals;
                    snd_packet   : tsp1_packet_ptr;
                    VAR snd_segm : tsp1_segment;
                    VAR parsid   : tsp00_C12);
 
        PROCEDURE
              t320dbs_send (VAR upg : tta_user_proc_globals;
                    snd_packet     : tsp1_packet_ptr;
                    VAR rcv_packet : tsp1_packet_ptr;
                    VAR returncode : tsp00_Int2);
&       ifdef TRACE
 
      ------------------------------ 
 
        FROM
              TA_test_procedures : VTA02;
 
        PROCEDURE
              t02int4 (debug : tut_debug;
                    nam      : tsp00_Sname;
                    int      : tsp00_Int4);
 
        PROCEDURE
              t02switch (VAR pfkey : tut_pfkey);
 
        PROCEDURE
              t02limited_switch (VAR pfkey : tut_pfkey);
 
        PROCEDURE
              t02maxbuflength (VAR pfkey : tut_pfkey);
 
        PROCEDURE
              t02minbuf (min_wanted : boolean);
 
        PROCEDURE
              t02moveobj (debug  : tut_debug;
                    VAR moveobj  : tut_param_ln;
                    moveobj_size : tsp00_Int4;
                    startpos     : tsp00_Int4;
                    endpos       : tsp00_Int4);
&       endif
 
      ------------------------------ 
 
        FROM
              TA_RTE_functions : VTA05;
 
        PROCEDURE
              t05sqlexec (VAR term : tut_terminal;
                    VAR cmd_ln     : tsp00_Line;
                    VAR errtext    : tsp00_ErrText;
                    VAR retcode    : tsp00_Int2);
 
      ------------------------------ 
 
        FROM
              TA_terminal_IO : VTA09;
 
        PROCEDURE
              t09fileinput (VAR term : tut_terminal;
                    VAR batch_fn     : tsp00_VFilename;
                    VAR param_line   : tut_param_ln;
                    VAR errtext      : tsp00_ErrText;
                    VAR return_code  : tsp00_Int2);
 
        PROCEDURE
              t09holding (VAR term   : tut_terminal;
                    VAR pf_key : tut_pfkey);
 
        PROCEDURE
              t09put20 (VAR term : tut_terminal;
                    text : tsp00_C20; text_attr : char);
 
        PROCEDURE
              t09putmsg (VAR t09      : tut_terminal;
                    VAR msg           : tsp00_Line;
                    is_warning        : boolean;
                    immediate_display : boolean);
 
        PROCEDURE
              t09returncode_set (VAR t09 : tut_terminal;
                    retcode : integer);
 
      ------------------------------ 
 
        FROM
              TA_write_protfile : VTA12;
 
        PROCEDURE
              t12write_prot (VAR refer : tut_vf_fileref;
                    VAR ln    : tsp00_Line;
                    length    : integer;
                    VAR error : integer);
 
      ------------------------------ 
 
        FROM
              GG_edit_routines : VGG17;
 
        PROCEDURE
              g17int4to_line (int : tsp00_Int4;
                    with_zero     : boolean;
                    int_len       : integer;
                    ln_pos        : integer;
                    VAR ln        : tsp00_Line);
 
      ------------------------------ 
 
        FROM
              UT_auxiliary_procedures : VUT05;
 
        PROCEDURE
              u05sqlexec_errmsg (VAR term : tut_terminal;
                    VAR protfile : tut_vf_fileref;
                    VAR errtext  : tsp00_ErrText;
                    retcode      : tsp00_Int2);
 
        PROCEDURE
              u05switch (VAR term   : tut_terminal;
                    VAR protfile    : tut_vf_fileref;
                    sql_packet      : tsp1_packet_ptr;
                    VAR sql_ref     : tsp00_Int4;
                    switch_cmd      : tsp00_C20;
                    VAR pfkey       : tut_pfkey;
                    VAR sql_retcode : tsp00_Int2);
 
      ------------------------------ 
 
        FROM
              UT_hostfile : VUT06;
 
        PROCEDURE
              u06hostfile_err (VAR term : tut_terminal;
                    VAR protfile : tut_vf_fileref;
                    write_prot   : boolean;
                    VAR errtext  : tsp00_ErrText);
 
      ------------------------------ 
 
        FROM
              RTE_driver : VEN102;
 
        PROCEDURE
              sqlaconnect (uid      : tsp00_TaskId;
                    VAR servernode  : tsp00_NodeId;
                    VAR serverdb    : tsp00_DbName;
                    service         : tsp00_Service;
                    packet_cnt      : tsp00_Int4;
                    VAR reference   : tsp00_Int4;
                    VAR packet_size : tsp00_Int4;
                    VAR packet_list : tsp1_packet_list;
                    VAR errtext     : tsp00_ErrText;
                    VAR returncode  : tsp1_comm_error);
 
        PROCEDURE
              sqlarelease (reference : tsp00_Int4);
 
      ------------------------------ 
 
        FROM
              Kernel_move_and_fill : VGG101;
 
        PROCEDURE
              SAPDB_PascalForcedFill (
                    size        : tsp00_Int4;
                    m           : tsp00_MoveObjPtr;
                    pos         : tsp00_Int4;
                    len         : tsp00_Int4;
                    fillchar    : char);
 
        PROCEDURE
              s10mv (
                    source_upb  : tsp00_Int4;
                    destin_upb  : tsp00_Int4;
                    source      : tsp00_MoveObjPtr;
                    source_pos  : tsp00_Int4;
                    destin      : tsp00_MoveObjPtr;
                    destin_pos  : tsp00_Int4;
                    length      : tsp00_Int4);
 
      ------------------------------ 
 
        FROM
              Packet_handling : VSP26;
 
        PROCEDURE
              s26first_segment_init (packet_ptr : tsp1_packet_ptr;
                    segm_kind                   : tsp1_segment_kind;
                    VAR first_segm_ptr          : tsp1_segment_ptr);
 
        PROCEDURE
              s26new_part_init (packet_ptr : tsp1_packet_ptr;
                    VAR cmd_segm           : tsp1_segment;
                    VAR new_part_ptr       : tsp1_part_ptr);
 
      ------------------------------ 
 
        FROM
              RTE-Extension-30 : VSP30;
 
        PROCEDURE
              s30map (VAR code_t : tsp00_Ctable;
                    VAR source   : tsp00_MoveObj;
                    spos         : tsp00_Int4;
                    VAR dest     : tsp00_MoveObj;
                    dpos         : tsp00_Int4;
                    length       : tsp00_Int4);
 
.CM *-END-* use -----------------------------------------
.sp;.cp 3
Synonym :
 
        PROCEDURE
              t02moveobj;
 
              tsp00_MoveObj tut_param_ln
 
.CM *-END-* synonym -------------------------------------
.sp;.cp 3
Author  : ElkeZ
.sp
.cp 3
Created : 1983-08-26
.sp
.cp 3
.sp
.cp 3
Release :      Date : 2000-07-24
.sp
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Specification:
 
.oc _/1;1.Allgemeines
.sp
Dieses Modul stellt die Teile f?ur den Driver VTA31 zur Verf?ugung,
die nur f?ur den Testbetrieb, also nicht f?ur eine Kundenversion
gedacht sind.
.br
Das betrifft die M?oglichkeiten, die Befehle aus einem File zu lesen,
die Initialisierung der Datenbank mittels eines Files zu machen,
das getrennte Parsen und Ausf?uhren eines Befehls und die M?oglichkeit
der Dateneingabe.
.sp 2;.oc _/1;2.Prozeduren
.sp
FILE_HANDLER
.sp
Setzt mit Hilfe der Prozedur t09set_screen_input das Eingabemedium
auf das angegebene File.
.sp 2
V_INIT
.sp
Diese Prozedur liest aus dem angegebenen File den Configuration-Record,
tr?agt ihn in den Auftragsblock ein und schickt diesen an das VDN-System.
.sp 2
T37_NICHT_MOEGLICH
.sp
Gibt eine Meldung aus, da?z das gew?ahlte Testkommando in der
aktuellen Version nicht zur Verf?ugung steht.
.sp 2
T37TESTHILFEN
.sp;Alle Testkommandos werden durch diese Prozedur behandelt.
.br
In den meisten F?allen werden nur die von VTA31 verwendeten Variablen
umgesetzt, ansonsten eine der oben genannten Prozeduren
bzw. eine aus VTA35 oder VTA36 aufgerufen.
.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
      n_cms        = 'CMS         ';
      n_count      = 'COUNT       ';
      n_unix       = 'UNIX        ';
      n_statistics = 'STATISTICS  ';
 
 
(*------------------------------*) 
 
PROCEDURE
      ta370call_os (VAR upg : tta_user_proc_globals;
            VAR term     : tut_terminal;
            VAR cmd_segm : tsp1_segment);
 
VAR
      i         : integer;
      retcode   : tsp00_Int2;
      errtext   : tsp00_ErrText;
      ln        : tsp00_Line;
      char_size : integer;
      offset    : integer;
 
BEGIN
IF  upg.term_simulation = tasim_unicode
THEN
    BEGIN
    char_size := 2;
    IF  upg.swap = sw_normal
    THEN
        offset := 0
    ELSE
        offset := -1
    (*ENDIF*) 
    END
ELSE
    BEGIN
    char_size := 1;
    offset    := 0
    END;
(*ENDIF*) 
ln := term.blankline;
i  := 1;
WITH cmd_segm DO
    WHILE (i*char_size <= sp1p_buf_len) AND (i <= LINE_MXSP00) DO
        BEGIN
        ln[ i ] := sp1p_buf[ i*char_size + offset ];
        i       := succ (i)
        END;
    (*ENDWHILE*) 
(*ENDWITH*) 
t05sqlexec (term, ln, errtext, retcode);
u05sqlexec_errmsg (term, upg.prot.refer, errtext, retcode)
END;
 
(*------------------------------*) 
 
PROCEDURE
      ta370file_handler (VAR upg : tta_user_proc_globals;
            VAR cmd     : tsp00_MoveObj;
            cmdlength   : tsp00_Int4;
            VAR retcode : tsp00_Int2);
 
CONST
      c_write_prot = true;
 
VAR
      i, k     : integer;
      blankfn  : tsp00_VFilename;
      param_ln : tut_param_ln;
      errtext  : tsp00_ErrText;
 
BEGIN
i:= 1;
WHILE (cmd [ i ] = ' ') AND (i < cmdlength) DO
    i := i + 1;
(*ENDWHILE*) 
(* skip "FILE"/"RUN" *)
WHILE (cmd[ i ] <> ' ') AND (i < cmdlength) DO
    i := i + 1;
(*ENDWHILE*) 
k := 1;
SAPDB_PascalForcedFill (sizeof (param_ln), @param_ln, 1, sizeof (param_ln), ' ');
WHILE (i <= cmdlength) AND (k <= sizeof (param_ln)) DO
    BEGIN
    param_ln [ k ] := cmd [ i ];
    i := i + 1;
    k := k + 1
    END;
(*ENDWHILE*) 
t09returncode_set (upg.term^, 0);
blankfn := upg.term^.blankfilename;
&ifdef trace
t02moveobj (debug_ta, param_ln, sizeof (param_ln), 1, sizeof(param_ln));
&endif
t09fileinput (upg.term^, blankfn, param_ln, errtext, retcode);
IF  retcode <> 0
THEN
    u06hostfile_err (upg.term^, upg.prot.refer, c_write_prot, errtext)
(*ENDIF*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      ta37kernel_switch (VAR upg : tta_user_proc_globals;
            snd_packet    : tsp1_packet_ptr;
            VAR first_str : tsp00_Sname);
 
VAR
      to_release      : boolean;
      sql_comm_err    : tsp1_comm_error;
      dummy_retcode   : tsp00_Int2;
      i               : integer;
      snd_packet_size : tsp00_Int4;
      packet_list     : tsp1_packet_list;
      switch_cmd      : tsp00_C20;
      errt            : tsp00_ErrText;
 
BEGIN
upg.pfkey    := pf_none;
to_release   := false;
sql_comm_err := sp1ce_ok;
IF  upg.reference = 0
THEN
    BEGIN
    sqlaconnect (upg.procid, upg.servernode, upg.serverdb,
          sql_user, 1, upg.reference, snd_packet_size, packet_list,
          errt, sql_comm_err);
    IF  sql_comm_err <> sp1ce_ok
    THEN
        BEGIN
        t09put20 (upg.term^, 'SQLACONNECT NOT OK  ', cut_bright_protected);
        upg.reference := 0
        END
    ELSE
        BEGIN
        snd_packet := packet_list [1];
&       ifdef trace
        t02int4 (debug_ta, 'packet size ', snd_packet_size);
&       endif
        snd_packet^.sp1_header.sp1h_varpart_size :=  snd_packet_size -
              sizeof (snd_packet^.sp1_header);
        to_release := true;
        END;
    (*ENDIF*) 
    END;
(*ENDIF*) 
IF  sql_comm_err = sp1ce_ok
THEN
    BEGIN
    switch_cmd := bsp_c20;
    FOR i := 1 TO SNAME_MXSP00 DO
        switch_cmd [i] := first_str [i];
    (*ENDFOR*) 
    u05switch (upg.term^, upg.prot.refer, snd_packet, upg.reference,
          switch_cmd, upg.pfkey, dummy_retcode)
    END;
(*ENDIF*) 
IF  (sql_comm_err = sp1ce_ok) AND to_release
THEN
    BEGIN
    sqlarelease (upg.reference);
    IF  sql_comm_err = sp1ce_ok
    THEN
        upg.reference := 0
    (*ENDIF*) 
    END
(*ENDIF*) 
END;
 
(* PTS 1106167 E.Z. *)
(*------------------------------*) 
 
PROCEDURE
      ta370drop_old_parsids (VAR upg    : tta_user_proc_globals;
            snd_packet     : tsp1_packet_ptr;
            VAR rcv_packet : tsp1_packet_ptr;
            VAR returncode : tsp00_Int2);
 
VAR
      i                  : integer;
      snd_segm           : tsp1_segment_ptr;
      cmd_part           : tsp1_part_ptr;
      c12                : tsp00_C12;
      in_line            : tsp00_DataLine;
 
BEGIN
IF  (snd_packet <> NIL)
    AND (upg.reference > 0)
THEN
    FOR i := 1 TO upg.p_count DO
        BEGIN
        s26first_segment_init (snd_packet, sp1sk_cmd, snd_segm);
        upg.curr_segm := snd_segm;
        snd_segm^.sp1c_mess_type := sp1m_dbs;
        snd_segm^.sp1c_with_info := false;
        s26new_part_init (snd_packet, snd_segm^, cmd_part);
        cmd_part^.sp1p_part_kind := sp1pk_command;
        c12 := 'DROP PARSEID';
        s10mv (sizeof(c12), sizeof(tsp00_Line),
              @c12, 1, @in_line.text, 1, sizeof(c12));
        in_line.pos    := 12;
        in_line.length := 12;
        t320buildbuffer (in_line, snd_segm^);
        t320finish_part (upg, snd_packet, cmd_part^);
        t320parseid_part (upg, snd_packet, snd_segm^, upg.parsing[ i ]);
        t320dbs_send (upg, snd_packet, rcv_packet, returncode)
        END
    (*ENDFOR*) 
(*ENDIF*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      t370tests (VAR upg    : tta_user_proc_globals;
            VAR first      : tsp00_Sname;
            VAR second     : tsp00_Sname;
            command        : tsp1_packet_ptr;
            VAR rcv_packet : tsp1_packet_ptr;
            VAR returncode : tsp00_Int2);
 
VAR
      done       : boolean;
      l          : tsp00_DataLine;
      b          : boolean;
      i          : integer;
      virt       : tsp00_C8;
 
BEGIN
upg.pfkey := pf_none;
done      := true;
IF  first = cta_n_file
THEN
    WITH upg.curr_segm^ DO
        ta370file_handler (upg,
              sp1p_buf, sp1p_buf_len, returncode)
    (*ENDWITH*) 
ELSE
    BEGIN
    IF  (first = cta_n_switch        ) OR
        (first = cta_n_switch_limited) OR
        (first = cta_n_minbuf        ) OR
        (first = cta_n_maxbuf        ) OR
        (first = cta_n_buflimit      )
    THEN
        ta37kernel_switch (upg, command, first)
    ELSE
        BEGIN
&       ifdef TRACE
        IF  (first = cta_n_tswitch        ) OR
            (first = cta_n_tswitch_limited) OR
            (first = cta_n_tminbuf        ) OR
            (first = cta_n_tmaxbuf        ) OR
            (first = cta_n_tbuflimit      )
        THEN
            BEGIN
            IF  first = cta_n_tswitch
            THEN
                t02switch (upg.pfkey)
            ELSE
                IF  first = cta_n_tswitch_limited
                THEN
                    t02limited_switch (upg.pfkey)
                ELSE
                    IF  first = cta_n_tminbuf
                    THEN
                        t02minbuf (true)
                    ELSE
                        IF  first = cta_n_tmaxbuf
                        THEN
                            t02minbuf (false)
                        ELSE
                            IF  first = cta_n_tbuflimit
                            THEN
                                t02maxbuflength (upg.pfkey)
                            (*ENDIF*) 
                        (*ENDIF*) 
                    (*ENDIF*) 
                (*ENDIF*) 
            (*ENDIF*) 
            END
        ELSE
&           endif
            IF  (first = n_cms) OR (first = n_unix)
            THEN
                ta370call_os (upg, upg.term^, upg.curr_segm^)
            ELSE
                done:= false
            (*ENDIF*) 
        (*ENDIF*) 
        END;
    (*ENDIF*) 
    returncode := 0
    END;
(*ENDIF*) 
IF  NOT done AND (upg.pfkey = pf_none)
THEN
    BEGIN
    done:= true;
    IF  first = cta_n_tswitch
    THEN
        FOR i:= 1 TO 4 DO
            t320readterminal (upg, l, b)
        (*ENDFOR*) 
    ELSE
        IF  first = cta_n_parsing
        THEN
            (* PTS 1106167 E.Z. *)
            BEGIN
            IF  second <> 'NOINIT      '
            THEN
                BEGIN
                ta370drop_old_parsids (upg, command, rcv_packet, returncode);
                upg.p_count:= 0
                END;
            (*ENDIF*) 
            upg.execution:= tek_only_parsing;
            END
        ELSE
            IF  first = cta_n_pars_execute
            THEN
                upg.execution:= tek_parsing_executing
            ELSE
                IF  first = cta_n_pars_then_ex
                THEN
                    upg.execution:= tek_pars_then_execute
                ELSE
                    IF  first = cta_n_executing
                    THEN
                        upg.execution:= tek_only_executing
                    ELSE
                        IF  first = cta_n_syntax
                        THEN
                            upg.execution:= tek_only_syntax
                        ELSE
                            (* PTS 1111575 E.Z. *)
                            IF  (first = cta_n_load) AND
                                (second <> n_statistics)
                            THEN
                                upg.execution:= tek_dbsload
                            ELSE
                                done:= false;
                            (*ENDIF*) 
                        (*ENDIF*) 
                    (*ENDIF*) 
                (*ENDIF*) 
            (*ENDIF*) 
        (*ENDIF*) 
    (*ENDIF*) 
    IF  NOT done
    THEN
        BEGIN
        done:= true;
        IF  first = cta_n_time
        THEN
            BEGIN
            upg.time:= true;
            (* vcinit (upg.procid) *)
            END
        ELSE
            IF  first = cta_n_notime
            THEN
                upg.time:= false
            ELSE
                IF  first = cta_n_real
                THEN
                    upg.rtime:= true
                ELSE
                    IF  first = cta_n_noreal
                    THEN
                        upg.rtime:= false
                    ELSE
                        IF  first = cta_n_sum
                        THEN
                            BEGIN
                            upg.sum:= true;
                            upg.virt:= 0;
                            END
                        ELSE
                            IF  first = cta_n_endsum
                            THEN
                                BEGIN
                                upg.sum:= false;
                                virt:= 'virtual:';
                                l.text   := upg.term^.blankline;
                                l.pos    := 0;
                                l.length := 1;
                                FOR i:= 1 TO 8 DO
                                    l.text[ i ]:= virt[ i ];
                                (*ENDFOR*) 
                                l.pos:= 10;
                                l.length:= 11;
                                g17int4to_line (upg.virt, false, 11,
                                      l.pos, l.text);
                                l.pos:= l.pos + 11;
                                l.length:= l.length + 11;
                                t09putmsg (upg.term^, l.text, false, false);
                                t09holding (upg.term^, upg.pfkey);
                                (*t begin*)
                                t12write_prot (upg.prot.refer,
                                      l.text, 23, i);
                                (*t end*)
                                END
                            ELSE
                                IF  first = n_count
                                THEN
                                    BEGIN
                                    virt:= 'ANZAHL :';
                                    l.text   := upg.term^.blankline;
                                    l.pos    := 0;
                                    l.length := 1;
                                    FOR i:= 1 TO 8 DO
                                        l.text[ i ]:= virt[ i ];
                                    (*ENDFOR*) 
                                    l.pos:= 10;
                                    l.length:= 11;
                                    g17int4to_line (upg.cnt, false, 11,
                                          l.pos, l.text);
                                    l.pos:= l.pos + 11;
                                    l.length:= l.length + 11;
                                    t09putmsg (upg.term^, l.text,false,false);
                                    t09holding (upg.term^, upg.pfkey);
                                    (*t begin*)
                                    t12write_prot (upg.prot.refer,
                                          l.text,23,i);
                                    (*t end*)
                                    END
                                ELSE
                                    IF  first = cta_n_data_input
                                    THEN
                                        upg.is_data_input:= true
                                    ELSE
                                        IF  first = cta_n_no_data_input
                                        THEN
                                            upg.is_data_input:= false
                                        ELSE
                                            done := false;
                                        (*ENDIF*) 
                                    (*ENDIF*) 
                                (*ENDIF*) 
                            (*ENDIF*) 
                        (*ENDIF*) 
                    (*ENDIF*) 
                (*ENDIF*) 
            (*ENDIF*) 
        (*ENDIF*) 
        END;
    (*ENDIF*) 
    IF  NOT done
    THEN
        BEGIN
        done:= true;
        IF  first = cta_n_parameter
        THEN
            upg.appl_param_infos := true
        ELSE
            IF  first = cta_n_no_parameter
            THEN
                upg.appl_param_infos := false
            ELSE
                IF  first = cta_n_masscmd
                THEN
                    upg.mass_cmd := true
                ELSE
                    IF  first = cta_n_no_masscmd
                    THEN
                        upg.mass_cmd := false
                    (*ENDIF*) 
                (*ENDIF*) 
            (*ENDIF*) 
        (*ENDIF*) 
        END
    (*ENDIF*) 
    END
(*ENDIF*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      t370inittranslate_table (VAR upg : tta_user_proc_globals);
 
BEGIN
it_one_part(upg.ebc_to_asc);
it_two_part(upg.asc_to_ebc);
END;
 
(*------------------------------*) 
 
PROCEDURE
      it_one_part(VAR codetab : tsp00_Ctable);
 
BEGIN
codetab [   1 ] := chr (  0);
codetab [   2 ] := chr (  1);
codetab [   3 ] := chr (  2);
codetab [   4 ] := chr (  3);
codetab [   5 ] := chr (128);
codetab [   6 ] := chr (  9);
codetab [   7 ] := chr (129);
codetab [   8 ] := chr (127);
codetab [   9 ] := chr (130);
codetab [  10 ] := chr (131);
codetab [  11 ] := chr (132);
codetab [  12 ] := chr ( 11);
codetab [  13 ] := chr ( 12);
codetab [  14 ] := chr ( 13);
codetab [  15 ] := chr ( 14);
codetab [  16 ] := chr ( 15);
codetab [  17 ] := chr ( 16);
codetab [  18 ] := chr ( 17);
codetab [  19 ] := chr ( 18);
codetab [  20 ] := chr ( 19);
codetab [  21 ] := chr (133);
codetab [  22 ] := chr (134);
codetab [  23 ] := chr (  8);
codetab [  24 ] := chr (135);
codetab [  25 ] := chr ( 24);
codetab [  26 ] := chr ( 25);
codetab [  27 ] := chr (136);
codetab [  28 ] := chr (137);
codetab [  29 ] := chr ( 28);
codetab [  30 ] := chr ( 29);
codetab [  31 ] := chr ( 30);
codetab [  32 ] := chr ( 31);
codetab [  33 ] := chr (138);
codetab [  34 ] := chr (139);
codetab [  35 ] := chr (140);
codetab [  36 ] := chr (141);
codetab [  37 ] := chr (142);
codetab [  38 ] := chr ( 10);
codetab [  39 ] := chr ( 23);
codetab [  40 ] := chr ( 27);
codetab [  41 ] := chr (143);
codetab [  42 ] := chr (144);
codetab [  43 ] := chr (145);
codetab [  44 ] := chr (146);
codetab [  45 ] := chr (147);
codetab [  46 ] := chr (  5);
codetab [  47 ] := chr (  6);
codetab [  48 ] := chr (  7);
codetab [  49 ] := chr (148);
codetab [  50 ] := chr (149);
codetab [  51 ] := chr ( 22);
codetab [  52 ] := chr (150);
codetab [  53 ] := chr (151);
codetab [  54 ] := chr (152);
codetab [  55 ] := chr (153);
codetab [  56 ] := chr (  4);
codetab [  57 ] := chr (154);
codetab [  58 ] := chr (155);
codetab [  59 ] := chr (156);
codetab [  60 ] := chr (157);
codetab [  61 ] := chr ( 20);
codetab [  62 ] := chr ( 21);
codetab [  63 ] := chr (158);
codetab [  64 ] := chr ( 26);
codetab [  65 ] := chr ( 32);
codetab [  66 ] := chr (159);
codetab [  67 ] := chr (160);
codetab [  68 ] := chr (161);
codetab [  69 ] := chr (162);
codetab [  70 ] := chr (163);
codetab [  71 ] := chr (164);
codetab [  72 ] := chr (165);
codetab [  73 ] := chr (166);
codetab [  74 ] := chr (167);
codetab [  75 ] := chr (213);
codetab [  76 ] := chr ( 46);
codetab [  77 ] := chr ( 60);
codetab [  78 ] := chr ( 40);
codetab [  79 ] := chr ( 43);
codetab [  80 ] := chr (169);
codetab [  81 ] := chr ( 38);
codetab [  82 ] := chr (170);
codetab [  83 ] := chr (171);
codetab [  84 ] := chr (172);
codetab [  85 ] := chr (173);
codetab [  86 ] := chr (174);
codetab [  87 ] := chr (175);
codetab [  88 ] := chr (176);
codetab [  89 ] := chr (177);
codetab [  90 ] := chr (178);
codetab [  91 ] := chr ( 33);
codetab [  92 ] := chr ( 36);
codetab [  93 ] := chr ( 42);
codetab [  94 ] := chr ( 41);
codetab [  95 ] := chr ( 59);
codetab [  96 ] := chr ( 94);
codetab [  97 ] := chr ( 45);
codetab [  98 ] := chr ( 47);
codetab [  99 ] := chr (179);
codetab [ 100 ] := chr (180);
codetab [ 101 ] := chr (181);
codetab [ 102 ] := chr (182);
codetab [ 103 ] := chr (183);
codetab [ 104 ] := chr (184);
codetab [ 105 ] := chr (185);
codetab [ 106 ] := chr (186);
codetab [ 107 ] := chr (124);
codetab [ 108 ] := chr ( 44);
codetab [ 109 ] := chr ( 37);
codetab [ 110 ] := chr ( 95);
codetab [ 111 ] := chr ( 62);
codetab [ 112 ] := chr ( 63);
codetab [ 113 ] := chr (187);
codetab [ 114 ] := chr (188);
codetab [ 115 ] := chr (189);
codetab [ 116 ] := chr (190);
codetab [ 117 ] := chr (191);
codetab [ 118 ] := chr (192);
codetab [ 119 ] := chr (193);
codetab [ 120 ] := chr (194);
codetab [ 121 ] := chr (195);
codetab [ 122 ] := chr ( 96);
codetab [ 123 ] := chr ( 58);
codetab [ 124 ] := chr ( 35);
codetab [ 125 ] := chr ( 64);
codetab [ 126 ] := chr ( 39);
codetab [ 127 ] := chr ( 61);
codetab [ 128 ] := chr ( 34);
codetab [ 129 ] := chr (196);
codetab [ 130 ] := chr ( 97);
codetab [ 131 ] := chr ( 98);
codetab [ 132 ] := chr ( 99);
codetab [ 133 ] := chr (100);
codetab [ 134 ] := chr (101);
codetab [ 135 ] := chr (102);
codetab [ 136 ] := chr (103);
codetab [ 137 ] := chr (104);
codetab [ 138 ] := chr (105);
codetab [ 139 ] := chr (197);
codetab [ 140 ] := chr (198);
codetab [ 141 ] := chr (199);
codetab [ 142 ] := chr (200);
codetab [ 143 ] := chr (201);
codetab [ 144 ] := chr (202);
codetab [ 145 ] := chr (203);
codetab [ 146 ] := chr (106);
codetab [ 147 ] := chr (107);
codetab [ 148 ] := chr (108);
codetab [ 149 ] := chr (109);
codetab [ 150 ] := chr (110);
codetab [ 151 ] := chr (111);
codetab [ 152 ] := chr (112);
codetab [ 153 ] := chr (113);
codetab [ 154 ] := chr (114);
codetab [ 155 ] := chr (204);
codetab [ 156 ] := chr (205);
codetab [ 157 ] := chr (206);
codetab [ 158 ] := chr (207);
codetab [ 159 ] := chr (208);
codetab [ 160 ] := chr (209);
codetab [ 161 ] := chr (210);
codetab [ 162 ] := chr (126);
codetab [ 163 ] := chr (115);
codetab [ 164 ] := chr (116);
codetab [ 165 ] := chr (117);
codetab [ 166 ] := chr (118);
codetab [ 167 ] := chr (119);
codetab [ 168 ] := chr (120);
codetab [ 169 ] := chr (121);
codetab [ 170 ] := chr (122);
codetab [ 171 ] := chr (211);
codetab [ 172 ] := chr (212);
codetab [ 173 ] := chr (168);
codetab [ 174 ] := chr ( 91);
codetab [ 175 ] := chr (214);
codetab [ 176 ] := chr (215);
codetab [ 177 ] := chr (216);
codetab [ 178 ] := chr (217);
codetab [ 179 ] := chr (218);
codetab [ 180 ] := chr (219);
codetab [ 181 ] := chr (220);
codetab [ 182 ] := chr (221);
codetab [ 183 ] := chr (222);
codetab [ 184 ] := chr (223);
codetab [ 185 ] := chr (224);
codetab [ 186 ] := chr (225);
codetab [ 187 ] := chr (226);
codetab [ 188 ] := chr (227);
codetab [ 189 ] := chr (228);
codetab [ 190 ] := chr ( 93);
codetab [ 191 ] := chr (229);
codetab [ 192 ] := chr (230);
codetab [ 193 ] := chr (123);
codetab [ 194 ] := chr ( 65);
codetab [ 195 ] := chr ( 66);
codetab [ 196 ] := chr ( 67);
codetab [ 197 ] := chr ( 68);
codetab [ 198 ] := chr ( 69);
codetab [ 199 ] := chr ( 70);
codetab [ 200 ] := chr ( 71);
codetab [ 201 ] := chr ( 72);
codetab [ 202 ] := chr ( 73);
codetab [ 203 ] := chr (231);
codetab [ 204 ] := chr (232);
codetab [ 205 ] := chr (233);
codetab [ 206 ] := chr (234);
codetab [ 207 ] := chr (235);
codetab [ 208 ] := chr (236);
codetab [ 209 ] := chr (125);
codetab [ 210 ] := chr ( 74);
codetab [ 211 ] := chr ( 75);
codetab [ 212 ] := chr ( 76);
codetab [ 213 ] := chr ( 77);
codetab [ 214 ] := chr ( 78);
codetab [ 215 ] := chr ( 79);
codetab [ 216 ] := chr ( 80);
codetab [ 217 ] := chr ( 81);
codetab [ 218 ] := chr ( 82);
codetab [ 219 ] := chr (237);
codetab [ 220 ] := chr (238);
codetab [ 221 ] := chr (239);
codetab [ 222 ] := chr (240);
codetab [ 223 ] := chr (241);
codetab [ 224 ] := chr (242);
codetab [ 225 ] := chr ( 92);
codetab [ 226 ] := chr (243);
codetab [ 227 ] := chr ( 83);
codetab [ 228 ] := chr ( 84);
codetab [ 229 ] := chr ( 85);
codetab [ 230 ] := chr ( 86);
codetab [ 231 ] := chr ( 87);
codetab [ 232 ] := chr ( 88);
codetab [ 233 ] := chr ( 89);
codetab [ 234 ] := chr ( 90);
codetab [ 235 ] := chr (244);
codetab [ 236 ] := chr (245);
codetab [ 237 ] := chr (246);
codetab [ 238 ] := chr (247);
codetab [ 239 ] := chr (248);
codetab [ 240 ] := chr (249);
codetab [ 241 ] := chr ( 48);
codetab [ 242 ] := chr ( 49);
codetab [ 243 ] := chr ( 50);
codetab [ 244 ] := chr ( 51);
codetab [ 245 ] := chr ( 52);
codetab [ 246 ] := chr ( 53);
codetab [ 247 ] := chr ( 54);
codetab [ 248 ] := chr ( 55);
codetab [ 249 ] := chr ( 56);
codetab [ 250 ] := chr ( 57);
codetab [ 251 ] := chr (250);
codetab [ 252 ] := chr (251);
codetab [ 253 ] := chr (252);
codetab [ 254 ] := chr (253);
codetab [ 255 ] := chr (254);
codetab [ 256 ] := chr (255);
END;
 
(*------------------------------*) 
 
PROCEDURE
      it_two_part(VAR codetab : tsp00_Ctable);
 
BEGIN
(* asciiebcdic  => codetabs[ x ], x = ord(ascii) *)
codetab [   1 ] := chr (  0); (* nul *)
codetab [   2 ] := chr (  1); (* soh *)
codetab [   3 ] := chr (  2); (* stx *)
codetab [   4 ] := chr (  3); (* etx *)
codetab [   5 ] := chr ( 55); (* eot *)
codetab [   6 ] := chr ( 45); (* enq *)
codetab [   7 ] := chr ( 46); (* ack *)
codetab [   8 ] := chr ( 47); (* bel *)
codetab [   9 ] := chr ( 22); (* bs *)
codetab [  10 ] := chr (  5); (* ht *)
codetab [  11 ] := chr ( 37); (* lf *)
codetab [  12 ] := chr ( 11); (* vt *)
codetab [  13 ] := chr ( 12); (* ff *)
codetab [  14 ] := chr ( 13); (* cr *)
codetab [  15 ] := chr ( 14); (* so *)
codetab [  16 ] := chr ( 15); (* si *)
codetab [  17 ] := chr ( 16); (* dle *)
codetab [  18 ] := chr ( 17); (* dc1 *)
codetab [  19 ] := chr ( 18); (* dc2 *)
codetab [  20 ] := chr ( 19); (* dc3 *)
codetab [  21 ] := chr ( 60); (* dc4 *)
codetab [  22 ] := chr ( 61); (* nak *)
codetab [  23 ] := chr ( 50); (* syn *)
codetab [  24 ] := chr ( 38); (* etb *)
codetab [  25 ] := chr ( 24); (* can *)
codetab [  26 ] := chr ( 25); (* em *)
codetab [  27 ] := chr ( 63); (* sub *)
codetab [  28 ] := chr ( 39); (* esc *)
codetab [  29 ] := chr ( 28); (* fs *)
codetab [  30 ] := chr ( 29); (* gs *)
codetab [  31 ] := chr ( 30); (* rs *)
codetab [  32 ] := chr ( 31); (* us *)
codetab [  33 ] := chr ( 64); (* sp *)
codetab [  34 ] := chr ( 90); (* ! *)
codetab [  35 ] := chr (127); (* " *)
codetab [  36 ] := chr (123); (* # *)
codetab [  37 ] := chr ( 91); (* $ *)
codetab [  38 ] := chr (108); (* % *)
codetab [  39 ] := chr ( 80); (* & *)
codetab [  40 ] := chr (125); (* ' *)
codetab [  41 ] := chr ( 77); (* ( *)
codetab [  42 ] := chr ( 93); (* ) *)
codetab [  43 ] := chr ( 92); (* * *)
codetab [  44 ] := chr ( 78); (* + *)
codetab [  45 ] := chr (107); (* , *)
codetab [  46 ] := chr ( 96); (* - *)
codetab [  47 ] := chr ( 75); (* . *)
codetab [  48 ] := chr ( 97); (* / *)
codetab [  49 ] := chr (240); (* 0 *)
codetab [  50 ] := chr (241); (* 1 *)
codetab [  51 ] := chr (242); (* 2 *)
codetab [  52 ] := chr (243); (* 3 *)
codetab [  53 ] := chr (244); (* 4 *)
codetab [  54 ] := chr (245); (* 5 *)
codetab [  55 ] := chr (246); (* 6 *)
codetab [  56 ] := chr (247); (* 7 *)
codetab [  57 ] := chr (248); (* 8 *)
codetab [  58 ] := chr (249); (* 9 *)
codetab [  59 ] := chr (122); (* : *)
codetab [  60 ] := chr ( 94); (* ; *)
codetab [  61 ] := chr ( 76); (* < *)
codetab [  62 ] := chr (126); (* = *)
codetab [  63 ] := chr (110); (* > *)
codetab [  64 ] := chr (111); (* ?? *)
codetab [  65 ] := chr (124); (* @ *)
codetab [  66 ] := chr (193); (* A *)
codetab [  67 ] := chr (194); (* B *)
codetab [  68 ] := chr (195); (* C *)
codetab [  69 ] := chr (196); (* D *)
codetab [  70 ] := chr (197); (* E *)
codetab [  71 ] := chr (198); (* F *)
codetab [  72 ] := chr (199); (* G *)
codetab [  73 ] := chr (200); (* H *)
codetab [  74 ] := chr (201); (* I *)
codetab [  75 ] := chr (209); (* J *)
codetab [  76 ] := chr (210); (* K *)
codetab [  77 ] := chr (211); (* L *)
codetab [  78 ] := chr (212); (* M *)
codetab [  79 ] := chr (213); (* N *)
codetab [  80 ] := chr (214); (* O *)
codetab [  81 ] := chr (215); (* P *)
codetab [  82 ] := chr (216); (* Q *)
codetab [  83 ] := chr (217); (* R *)
codetab [  84 ] := chr (226); (* S *)
codetab [  85 ] := chr (227); (* T *)
codetab [  86 ] := chr (228); (* U *)
codetab [  87 ] := chr (229); (* V *)
codetab [  88 ] := chr (230); (* W *)
codetab [  89 ] := chr (231); (* X *)
codetab [  90 ] := chr (232); (* Y *)
codetab [  91 ] := chr (233); (* Z *)
codetab [  92 ] := chr (173); (* [  *)
codetab [  93 ] := chr (224); (* backslash *)
codetab [  94 ] := chr (189); (*  ] *)
codetab [  95 ] := chr ( 95); (* not-sign *)
codetab [  96 ] := chr (109); (* _ *)
codetab [  97 ] := chr (121);
(* single quote bend to the left *)
codetab [  98 ] := chr (129); (* a *)
codetab [  99 ] := chr (130); (* b *)
codetab [ 100 ] := chr (131); (* c *)
codetab [ 101 ] := chr (132); (* d *)
codetab [ 102 ] := chr (133); (* e *)
codetab [ 103 ] := chr (134); (* f *)
codetab [ 104 ] := chr (135); (* g *)
codetab [ 105 ] := chr (136); (* h *)
codetab [ 106 ] := chr (137); (* i *)
codetab [ 107 ] := chr (145); (* j *)
codetab [ 108 ] := chr (146); (* k *)
codetab [ 109 ] := chr (147); (* l *)
codetab [ 110 ] := chr (148); (* m *)
codetab [ 111 ] := chr (149); (* n *)
codetab [ 112 ] := chr (150); (* o *)
codetab [ 113 ] := chr (151); (* p *)
codetab [ 114 ] := chr (152); (* q *)
codetab [ 115 ] := chr (153); (* r *)
codetab [ 116 ] := chr (162); (* s *)
codetab [ 117 ] := chr (163); (* t *)
codetab [ 118 ] := chr (164); (* u *)
codetab [ 119 ] := chr (165); (* v *)
codetab [ 120 ] := chr (166); (* w *)
codetab [ 121 ] := chr (167); (* x *)
codetab [ 122 ] := chr (168); (* y *)
codetab [ 123 ] := chr (169); (* z *)
codetab [ 124 ] := chr (192); (* opening curved bracket *)
codetab [ 125 ] := chr (106); (* vertical line *)
codetab [ 126 ] := chr (208); (* closing curved bracket *)
codetab [ 127 ] := chr (161); (* wavy line *)
codetab [ 128 ] := chr (  7); (* del *)
codetab [ 129 ] := chr (  4);
codetab [ 130 ] := chr (  6);
codetab [ 131 ] := chr (  8);
codetab [ 132 ] := chr (  9);
codetab [ 133 ] := chr ( 10);
codetab [ 134 ] := chr ( 20);
codetab [ 135 ] := chr ( 21);
codetab [ 136 ] := chr ( 23);
codetab [ 137 ] := chr ( 26);
codetab [ 138 ] := chr ( 27);
codetab [ 139 ] := chr ( 32);
codetab [ 140 ] := chr ( 33);
codetab [ 141 ] := chr ( 34);
codetab [ 142 ] := chr ( 35);
codetab [ 143 ] := chr ( 36);
codetab [ 144 ] := chr ( 40);
codetab [ 145 ] := chr ( 41);
codetab [ 146 ] := chr ( 42);
codetab [ 147 ] := chr ( 43);
codetab [ 148 ] := chr ( 44);
codetab [ 149 ] := chr ( 48);
codetab [ 150 ] := chr ( 49);
codetab [ 151 ] := chr ( 51);
codetab [ 152 ] := chr ( 52);
codetab [ 153 ] := chr ( 53);
codetab [ 154 ] := chr ( 54);
codetab [ 155 ] := chr ( 56);
codetab [ 156 ] := chr ( 57);
codetab [ 157 ] := chr ( 58);
codetab [ 158 ] := chr ( 59);
codetab [ 159 ] := chr ( 62);
codetab [ 160 ] := chr ( 65);
codetab [ 161 ] := chr ( 66);
codetab [ 162 ] := chr ( 67);
codetab [ 163 ] := chr ( 68);
codetab [ 164 ] := chr ( 69);
codetab [ 165 ] := chr ( 70);
codetab [ 166 ] := chr ( 71);
codetab [ 167 ] := chr ( 72);
codetab [ 168 ] := chr ( 73);
codetab [ 169 ] := chr (172);
codetab [ 170 ] := chr ( 79);
codetab [ 171 ] := chr ( 81);
codetab [ 172 ] := chr ( 82);
codetab [ 173 ] := chr ( 83);
codetab [ 174 ] := chr ( 84);
codetab [ 175 ] := chr ( 85);
codetab [ 176 ] := chr ( 86);
codetab [ 177 ] := chr ( 87);
codetab [ 178 ] := chr ( 88);
codetab [ 179 ] := chr ( 89);
codetab [ 180 ] := chr ( 98);
codetab [ 181 ] := chr ( 99);
codetab [ 182 ] := chr (100);
codetab [ 183 ] := chr (101);
codetab [ 184 ] := chr (102);
codetab [ 185 ] := chr (103);
codetab [ 186 ] := chr (104);
codetab [ 187 ] := chr (105);
codetab [ 188 ] := chr (112);
codetab [ 189 ] := chr (113);
codetab [ 190 ] := chr (114);
codetab [ 191 ] := chr (115);
codetab [ 192 ] := chr (116);
codetab [ 193 ] := chr (117);
codetab [ 194 ] := chr (118);
codetab [ 195 ] := chr (119);
codetab [ 196 ] := chr (120);
codetab [ 197 ] := chr (128);
codetab [ 198 ] := chr (138);
codetab [ 199 ] := chr (139);
codetab [ 200 ] := chr (140);
codetab [ 201 ] := chr (141);
codetab [ 202 ] := chr (142);
codetab [ 203 ] := chr (143);
codetab [ 204 ] := chr (144);
codetab [ 205 ] := chr (154);
codetab [ 206 ] := chr (155);
codetab [ 207 ] := chr (156);
codetab [ 208 ] := chr (157);
codetab [ 209 ] := chr (158);
codetab [ 210 ] := chr (159);
codetab [ 211 ] := chr (160);
codetab [ 212 ] := chr (170);
codetab [ 213 ] := chr (171);
codetab [ 214 ] := chr ( 74);
codetab [ 215 ] := chr (174);
codetab [ 216 ] := chr (175);
codetab [ 217 ] := chr (176);
codetab [ 218 ] := chr (177);
codetab [ 219 ] := chr (178);
codetab [ 220 ] := chr (179);
codetab [ 221 ] := chr (180);
codetab [ 222 ] := chr (181);
codetab [ 223 ] := chr (182);
codetab [ 224 ] := chr (183);
codetab [ 225 ] := chr (184);
codetab [ 226 ] := chr (185);
codetab [ 227 ] := chr (186);
codetab [ 228 ] := chr (187);
codetab [ 229 ] := chr (188);
codetab [ 230 ] := chr (190);
codetab [ 231 ] := chr (191);
codetab [ 232 ] := chr (202);
codetab [ 233 ] := chr (203);
codetab [ 234 ] := chr (204);
codetab [ 235 ] := chr (205);
codetab [ 236 ] := chr (206);
codetab [ 237 ] := chr (207);
codetab [ 238 ] := chr (218);
codetab [ 239 ] := chr (219);
codetab [ 240 ] := chr (220);
codetab [ 241 ] := chr (221);
codetab [ 242 ] := chr (222);
codetab [ 243 ] := chr (223);
codetab [ 244 ] := chr (225);
codetab [ 245 ] := chr (234);
codetab [ 246 ] := chr (235);
codetab [ 247 ] := chr (236);
codetab [ 248 ] := chr (237);
codetab [ 249 ] := chr (238);
codetab [ 250 ] := chr (239);
codetab [ 251 ] := chr (250);
codetab [ 252 ] := chr (251);
codetab [ 253 ] := chr (252);
codetab [ 254 ] := chr (253);
codetab [ 255 ] := chr (254);
codetab [ 256 ] := chr (255);
END;
 
(*------------------------------*) 
 
PROCEDURE
      t370t1ebcdic_to_ascii (VAR codetable : tsp00_Ctable;
            VAR source : tsp00_MoveObj;
            VAR dest   : tsp00_MoveObj;
            length     : integer);
 
BEGIN
s30map(codetable, source, 1, dest, 1, length)
END;
 
(*------------------------------*) 
 
PROCEDURE
      t370t2ebcdic_to_ascii (VAR codetable : tsp00_Ctable;
            VAR source : tsp00_MoveObj;
            VAR dest   : tsp00_MoveObj;
            length     : integer);
 
BEGIN
s30map(codetable, source, 1, dest, 1, length)
END;
 
(*------------------------------*) 
 
PROCEDURE
      t370t3ebcdic_to_ascii (VAR codetable : tsp00_Ctable;
            VAR source : tsp00_MoveObj;
            VAR dest   : tsp00_MoveObj;
            length     : integer);
 
BEGIN
s30map(codetable, source, 1, dest, 1, length)
END;
 
(*------------------------------*) 
 
PROCEDURE
      t370tascii_to_ebcdic (VAR codetable : tsp00_Ctable;
            VAR source : tsp00_MoveObj;
            VAR dest   : tsp00_MoveObj;
            length     : integer);
 
BEGIN
s30map(codetable, source, 1, dest, 1, length)
END;
 
(*------------------------------*) 
 
PROCEDURE
      t370pascii_pos_ebcdic (VAR codetable : tsp00_Ctable;
            VAR source : tsp00_MoveObj;
            srcind     : integer;
            VAR dest   : tsp00_MoveObj;
            destind    : integer;
            length     : integer);
 
BEGIN
s30map(codetable, source, srcind, dest, destind, length)
END;
 
.CM *-END-* code ----------------------------------------
.SP 2 
***********************************************************
.PA 
