DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦bda2d0893⟧ TextFile

    Length: 88320 (0x15900)
    Types: TextFile
    Names: »tsdtelst«

Derivation

└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system
    └─⟦72244f0ef⟧ 
        └─⟦this⟧ »tsdtelst« 

TextFile

\f

tsdtelst    81.06.15.   15.39.                                                    page     1

   10    1          
   20    2        PROCESS  dtesimulator(
   30    3          op_sem   : sempointer;  (* operator semaphore *)
   40    4          VAR
   50    5          pax_pool_sem,
   60    6          dte_sem : !ts_pointer;
   70    7          VAR
   80    8          netc_sem,
   90    9          rut_trm_sem,
  100   10          (*              equal to utrm at local receiver *)
  110   11          rut_rec_sem  : !sempointer;
  120   12          (*              equal to urec at local transmitter *)
  130   13          dte_adr : int_pax_addr
  140   14          );
  150   15          
  160   16        CONST
  170   17          version = "vers  1.15 /";
  180   18            (*----------------------*)
  190   19          
  200   20            (*===================================================================
  210   21            "                                                                   "
  220   22            "  FUNCTION : DTE establishes a connection between PAXCON and       "
  230   23            "             ROUTER in the prototype of the alarmsystem.           "
  240   24            "                                                                   "
  250   25            "  STRATEGI : DTE converts one DTE-function to one ore more         "
  260   26            "             ROUTER-functions.                                     "
  270   27            "                                                                   "
  280   28            =====================================================================*)
  290   29          
  300   30           
\f

tsdtelst    81.06.15.   15.39.                                                    page     2

 1010   31            (*   INTRODUCTION TO DTE
 1020   32            
 1030   33            Abbreviation list :
 1040   34            -----------------
 1050   35            
 1060   36            mes               message
 1070   37            
 1080   38            op                operator
 1090   39            
 1100   40            ptr               pointer
 1110   41            
 1120   42            sem               semaphore
 1130   43            
 1140   44            ts                terminal station
 1150   45            
 1160   46            
 1170   47            Pseudo code version 80.12.19 :
 1180   48            ----------------------------
 1190   49            *)
 1200   50           
\f

tsdtelst    81.06.15.   15.39.                                                    page     3

 2010   51            (*-----------------------------------------------------------
 2020   52            -   constants                                               -
 2030   53            -------------------------------------------------------------*)
 2040   54        CONST
 2050   55          
 2060   56          max_calls = max_stream_no-min_stream_no+1;
 2070   57           
\f

tsdtelst    81.06.15.   15.39.                                                    page     4

 3010   58            (*--------------------------------------------------------------
 3020   59            .  string constants
 3030   60            ----------------------------------------------------------------*)
 3040   61          
 3050   62          t_01 = "dummy return";
 3060   63          t_02 = "stream table";
 3070   64          t_03 = "car_ref nil ";
 3080   65          t_04 = "car ref used";
 3090   66          t_05 = "l-rec-q     ";
 3100   67          t_06 = "dst-stream  ";
 3110   68          t_07 = "dst-adr     ";
 3120   69          t_08 = "diag-code   ";
 3130   70          t_09 = "entry used  ";
 3140   71          t_10 = "entry not us";
 3150   72          
 3160   73          t_11 = "call index  ";
 3170   74          t_12 = "calls moved ";
 3180   75          t_13 = "get-trm-buf ";
 3190   76          t_14 = "** no paxbuf";
 3200   77          t_15 = "get-rec-buf ";
 3210   78          t_16 = "dst node no ";
 3220   79          t_17 = "ext addr no ";
 3230   80          t_18 = "connect rout";
 3240   81          t_19 = "dte connectd";
 3250   82          t_20 = "** conn err ";
 3260   83          
 3270   84          t_21 = "no resources";
 3280   85          t_22 = "extensionerr";
 3290   86          t_23 = "sense ready ";
 3300   87          t_24 = "discon ext  ";
 3310   88          t_25 = "rut-reset   ";
 3320   89          t_26 = "transresult ";
 3330   90          t_27 = "rut_receive ";
 3340   91          t_28 = "rut pac stat";
 3350   92          t_29 = "rut pac from";
 3360   93          t_30 = "rec userfld ";
 3370   94          
 3380   95          t_31 = "rec streamno";
 3390   96          t_32 = "rec-dte-car-";
 3400   97          t_33 = "** no callix";
 3410   98          t_34 = "** no ricbuf";
 3420   99          t_35 = "rec-dte-clr-";
 3430  100          t_36 = "rec-dte-aic-";
 3440  101          t_37 = "rec-dte-rej-";
 3450  102          t_38 = "rec-dtesdata";
 3460  103          t_39 = "** no rdata ";
\f

tsdtelst    81.06.15.   15.39.                                                    page     5

 3470  104          
 3480  105          t_40 = "** bad usfld";
 3490  106          t_41 = "rut status  ";
 3500  107          t_42 = "** bad rutfk";
 3510  108          t_43 = "** rut error";
 3520  109          t_44 = "** u2-------";
 3530  110          t_45 = "** status---";
 3540  111          t_46 = "netc-dte-car";
 3550  112          t_47 = "send-to-node";
 3560  113          t_48 = "netc-dte-clr";
 3570  114          t_49 = "netc-dte-aic";
 3580  115          
 3590  116          t_50 = "netc-dte-rda";
 3600  117          t_51 = "rut transmit";
 3610  118          t_52 = "netc-dte-aic";
 3620  119          t_53 = "netc-dte-rej";
 3630  120          t_54 = "netc-dte-res";
 3640  121          t_55 = "netc-dtestat";
 3650  122          t_56 = "** bad dtefk";
 3660  123          t_57 = "** ill buffr";
 3670  124           
\f

tsdtelst    81.06.15.   15.39.                                                    page     6

 4010  125            (*--------------------------------------------------------------
 4020  126            -  types                                                       -
 4030  127            ----------------------------------------------------------------*)
 4040  128        TYPE
 4050  129          
 4060  130          stream_e
 4070  131          = RECORD
 4080  132            !  car_ref : reference;
 4090  133            !  l_rec_q : integer;
 4100  134            !  receive_queue : semaphore;
 4110  135            !  dst_stream : byte;
 4120  136            !  dst : int_pax_addr;
 4130  137            !  facility : integer;
 4140  138            !  state : state_type;
 4150  139            !  priority : byte;
 4160  140            !  diag_code : byte
 4170  141            END;
 4180  142          
 4190  143          calls_e
 4200  144          = RECORD
 4210  145            !  dst : int_pax_addr;
 4220  146            !  dst_stream : byte;
 4230  147            !  used : boolean ;
 4240  148            !  facility : integer;
 4250  149            END;
 4260  150           
\f

tsdtelst    81.06.15.   15.39.                                                    page     7

 5010  151            (*-----------------------------------------------------------
 5020  152            .   variables section                                       .
 5030  153            -------------------------------------------------------------*)
 5040  154        VAR
 5050  155          i : integer;
 5060  156          
 5070  157          ref,
 5080  158          rut_buf_ref,
 5090  159          in_ref   :  reference;
 5100  160          
 5110  161          z : zone;
 5120  162          
 5130  163          ric_pool : semaphore;
 5140  164          
 5150  165          calls : ARRAY (1..max_calls) OF calls_e;
 5160  166          
 5170  167          streams : ARRAY ( min_stream_no..max_stream_no) OF stream_e;
 5180  168          
 5190  169          act_stream_no : integer;
 5200  170          act_dst : int_pax_addr;
 5210  171          act_user_field : integer;
 5220  172          act_call_no : integer;
 5230  173          act_result : byte;
 5240  174          act_diag_code : byte;
 5250  175          act_pac_state : byte:=0;
 5260  176          
 5270  177          no_trm_bufs : integer := 0;
 5280  178          
 5290  179          no_rec_bufs : integer := 0;
 5300  180          
 5310  181          
 5320  182          cur_facility : integer := 0;
 5330  183          
 5340  184          tst : byte := 255;
 5350  185          
 5360  186            (*
 5370  187            8 - write actions on streams
 5380  188            16 - write results from router
 5390  189            32 - write table entryes
 5400  190            64 - write testsections
 5410  191            128 - write procedure calls
 5420  192            *)
 5430  193           
\f

tsdtelst    81.06.15.   15.39.                                                    page     8

 6010  194            (*==============================================================
 6020  195            =   procedures section                                         =
 6030  196            ================================================================*)
 6040  197          
 6050  198          PROCEDURE ts_wait(
 6060  199            VAR
 6070  200            mes_ref  : reference;
 6080  201            sem_ptr  : sempointer
 6090  202            );
 6100  203            
 6110  204              (*-----------------------------------------------------------
 6120  205              . wait with return of dummy messages                        -
 6130  206              -------------------------------------------------------------*)
 6140  207            
 6150  208          BEGIN
 6160  209    1     ! 
 6170  210    2     ! wait( mes_ref, sem_ptr^);
 6180  211    3     ! 
 6190  212    4     ! WHILE mes_ref^.u3 = dummy_route DO
 6200  213    5     !   BEGIN
 6210  214    6     !   ! IF tst>4 THEN
 6220  215    7     !   !   testout(z,t_01,mes_ref^.u1);
 6230  216    8     !   ! signal( mes_ref, pax_pool_sem.s^);
 6240  217    9     !   ! wait( mes_ref, sem_ptr^);
 6250  218   10     !   END;
 6260  219   11     ! 
 6270  220   12     END (* ts_wait *);
 6280  221          
 6290  222           
\f

tsdtelst    81.06.15.   15.39.                                                    page     9

 7010  223          FUNCTION address( adr:int_pax_addr):integer;
 7020  224          BEGIN
 7030  225    1     ! address :=
 7040  226    2     ! adr.net_addr*1000 +
 7050  227    3     ! adr.reg_addr*100  +
 7060  228    4     ! adr.node_addr*10  +
 7070  229    5     ! adr.ext_addr;
 7080  230    6     END;
 7090  231           
\f

tsdtelst    81.06.15.   15.39.                                                    page    10

 8010  232          PROCEDURE write_stream (
 8020  233            i : byte );
 8030  234              (*-------------------------------------------------------
 8040  235              .   writes the content of stream table entry i
 8050  236              ---------------------------------------------------------*)
 8060  237          BEGIN
 8070  238    1     ! WITH streams(i) DO
 8080  239    2     !   BEGIN
 8090  240    3     !   ! testout(z,t_02,i);
 8100  241    4     !   ! IF nil(car_ref) THEN
 8110  242    5     !   !   testout(z,t_03,i)
 8120  243    6     !   ! ELSE
 8130  244    7     !   !   testout(z,t_04,i);
 8140  245    8     !   ! testout(z,t_05, l_rec_q);
 8150  246    9     !   ! testout(z,t_06, dst_stream);
 8160  247   10     !   ! testout(z,t_07,address(dst));
 8170  248   11     !   ! testout(z,t_08, diag_code);
 8180  249   12     !   END;
 8190  250   13     END;
 8200  251           
\f

tsdtelst    81.06.15.   15.39.                                                    page    11

 9010  252          PROCEDURE write_call (
 9020  253            i : byte );
 9030  254              (*----------------------------------------------------
 9040  255              .  writes the content of calls table entry i
 9050  256              ------------------------------------------------------*)
 9060  257          BEGIN
 9070  258    1     ! WITH calls(i) DO
 9080  259    2     !   BEGIN
 9090  260    3     !   ! IF used THEN
 9100  261    4     !   !   testout(z,t_09,i)
 9110  262    5     !   ! ELSE
 9120  263    6     !   !   testout(z,t_10,i);
 9130  264    7     !   ! testout(z,t_07,address(dst));
 9140  265    8     !   ! testout(z,t_06, dst_stream);
 9150  266    9     !   END;
 9160  267   10     END;
 9170  268           
\f

tsdtelst    81.06.15.   15.39.                                                    page    12

10010  269          FUNCTION call_resources (
10020  270            VAR act_call_no : integer ): boolean;
10030  271              (*-------------------------------------------------------------
10040  272              .  looks for call-resources in dte
10050  273              ---------------------------------------------------------------*)
10060  274            
10070  275          VAR i : integer := 1;
10080  276            found : boolean := false;
10090  277          BEGIN
10100  278    1     ! call_resources := true;
10110  279    2     ! 
10120  280    3     !   (*---- look if call exists ----*)
10130  281    4     ! 
10140  282    5     ! WHILE (NOT found) AND (i<=max_calls) DO
10150  283    6     !   IF calls(i).used THEN
10160  284    7     !     IF ( calls(i).dst=act_dst) AND (calls(i).dst_stream=act_stream_no) THEN
10170  285    8     !       found := true
10180  286    9     !     ELSE
10190  287   10     !       i:= i+1
10200  288   11     !     ELSE
10210  289   12     !       i:= i+1;
10220  290   13     ! 
10230  291   14     ! IF NOT found THEN
10240  292   15     !   BEGIN
10250  293   16     !   !   (*---- find a free call entry ---*)
10260  294   17     !   ! 
10270  295   18     !   ! i:=1;
10280  296   19     !   ! 
10290  297   20     !   ! WHILE (NOT found) AND (i<=max_calls) DO
10300  298   21     !   !   IF calls(i).used THEN
10310  299   22     !   !     i := i+1
10320  300   23     !   !   ELSE
10330  301   24     !   !     found := true;
10340  302   25     !   ! 
10350  303   26     !   ! IF found THEN
10360  304   27     !   !   BEGIN
10370  305   28     !   !   ! calls(i).used := true;
10380  306   29     !   !   ! calls(i).dst_stream := act_stream_no;
10390  307   30     !   !   ! calls(i).dst := act_dst;
10400  308   31     !   !   END
10410  309   32     !   ! ELSE
10420  310   33     !   !   call_resources := false;
10430  311   34     !   END;
10440  312   35     ! act_call_no := i;
10450  313   36     ! 
10460  314   37     ! IF tst>32 THEN
\f

tsdtelst    81.06.15.   15.39.                                                    page    13

10470  315   38     !   testout(z,t_11,i);
10480  316   39     END;
10490  317           
\f

tsdtelst    81.06.15.   15.39.                                                    page    14

11010  318          PROCEDURE call_to_stream (
11020  319            call_index ,
11030  320            stream_index : byte );
11040  321              (*-----------------------------------------------------
11050  322              -   moves all call-values from calls to streams       -
11060  323              -------------------------------------------------------*)
11070  324          BEGIN
11080  325    1     ! WITH streams( stream_index) DO
11090  326    2     !   BEGIN
11100  327    3     !   ! dst_stream := calls( call_index).dst_stream;
11110  328    4     !   ! dst := calls( call_index).dst;
11120  329    5     !   ! facility := calls( call_index).facility;
11130  330    6     !   ! 
11140  331    7     !   ! IF tst>32 THEN
11150  332    8     !   !   BEGIN
11160  333    9     !   !   ! testout(z,t_12, call_index);
11170  334   10     !   !   END;
11180  335   11     !   ! 
11190  336   12     !   END;
11200  337   13     ! 
11210  338   14     ! calls( call_index).used := false;
11220  339   15     END;
11230  340           
\f

tsdtelst    81.06.15.   15.39.                                                    page    15

12010  341          PROCEDURE clear_stream_table (
12020  342            indx : byte );
12030  343              (*-----------------------------------------------------------
12040  344              .  clears the streamtable index stream-no
12050  345              -------------------------------------------------------------*)
12060  346          BEGIN
12070  347    1     ! IF tst>32 THEN
12080  348    2     !   write_stream(indx);
12090  349    3     ! 
12100  350    4     ! WITH streams( indx) DO
12110  351    5     !   BEGIN
12120  352    6     !   ! IF NOT nil( car_ref) THEN
12130  353    7     !   !   BEGIN
12140  354    8     !   !   ! car_ref^.u2 := dte_user_clear;
12150  355    9     !   !   ! signal( car_ref, netc_sem^);
12160  356   10     !   !   END;
12170  357   11     !   ! 
12180  358   12     !   ! dst_stream := 0;
12190  359   13     !   ! dst := int_pax_addr(0,0,0,0);
12200  360   14     !   ! facility := 0;
12210  361   15     !   ! diag_code := 0;
12220  362   16     !   ! state := clearing;
12230  363   17     !   END;
12240  364   18     END;
12250  365           
\f

tsdtelst    81.06.15.   15.39.                                                    page    16

13010  366          PROCEDURE get_transmit_buf (
13020  367            VAR ref : reference );
13030  368              (*------------------------------------------------------
13040  369              -   allocates a transmitbuffer and makes it ready for use
13050  370              --------------------------------------------------------*)
13060  371          BEGIN
13070  372    1     ! sensesem( ref, pax_pool_sem.w^);
13080  373    2     ! 
13090  374    3     ! IF NOT nil( ref) THEN
13100  375    4     !   BEGIN
13110  376    5     !   ! no_trm_bufs := no_trm_bufs +1;
13120  377    6     !   ! 
13130  378    7     !   ! IF tst>128 THEN
13140  379    8     !   !   testout(z,t_13, no_trm_bufs);
13150  380    9     !   ! 
13160  381   10     !   ! ref^.u1 := rut_trp;
13170  382   11     !   ! ref^.u2 := rut_default;
13180  383   12     !   ! ref^.u3 := rut_default;
13190  384   13     !   ! ref^.u4 := from_link;
13200  385   14     !   ! 
13210  386   15     !   ! LOCK ref AS buf : rut_trp_pdata DO
13220  387   16     !   !   BEGIN
13230  388   17     !   !   ! WITH buf.rut_prefix DO
13240  389   18     !   !   !   BEGIN
13250  390   19     !   !   !   ! first := l_rut_prefix;
13260  391   20     !   !   !   ! last := l_rut_prefix + l_phead1 + l_control  -1;
13270  392   21     !   !   !   ! ext_no := dte_adr.ext_addr;
13280  393   22     !   !   !   END;
13290  394   23     !   !   ! 
13300  395   24     !   !   ! WITH buf.phead DO
13310  396   25     !   !   !   BEGIN
13320  397   26     !   !   !   ! format := rut_format_1;
13330  398   27     !   !   !   ! priority := rut_prio_0;
13340  399   28     !   !   !   ! packet_type := rut_pack_type;
13350  400   29     !   !   !   ! state := 0;
13360  401   30     !   !   !   ! org := dte_adr;
13370  402   31     !   !   !   ! top_of_data := l_rut_prefix + l_phead1 + l_control ;
13380  403   32     !   !   !   END;
13390  404   33     !   !   END;
13400  405   34     !   END
13410  406   35     ! ELSE
13420  407   36     !   IF tst>128 THEN
13430  408   37     !     testout(z,t_14, 0);
13440  409   38     END;
13450  410           
\f

tsdtelst    81.06.15.   15.39.                                                    page    17

14010  411          PROCEDURE send_rpacket_bufs (
14020  412            no_of_bufs : byte );
14030  413              (*---------------------------------------------------------
14040  414              -   sends receive packet buffers to router                -
14050  415              -----------------------------------------------------------*)
14060  416          VAR
14070  417            i : integer;
14080  418            ref : reference;
14090  419          BEGIN
14100  420    1     ! FOR i := 1 TO no_of_bufs DO
14110  421    2     !   BEGIN
14120  422    3     !   ! sensesem( ref, pax_pool_sem.w^);
14130  423    4     !   ! 
14140  424    5     !   ! IF NOT nil( ref) THEN
14150  425    6     !   !   BEGIN
14160  426    7     !   !   ! no_rec_bufs := no_rec_bufs +1;
14170  427    8     !   !   ! 
14180  428    9     !   !   ! IF tst>128 THEN
14190  429   10     !   !   !   testout(z,t_15, no_rec_bufs);
14200  430   11     !   !   ! 
14210  431   12     !   !   ! ref^.u1 := rut_rec;
14220  432   13     !   !   ! ref^.u2 := rut_default;
14230  433   14     !   !   ! ref^.u3 := rut_default;
14240  434   15     !   !   ! ref^.u4 := from_link;
14250  435   16     !   !   ! 
14260  436   17     !   !   ! LOCK ref AS rec : rut_trp_pdata DO
14270  437   18     !   !   !   WITH rec DO
14280  438   19     !   !   !     BEGIN
14290  439   20     !   !   !     ! WITH rec.rut_prefix DO
14300  440   21     !   !   !     !   BEGIN
14310  441   22     !   !   !     !   ! first := l_rut_prefix ;
14320  442   23     !   !   !     !   ! last := first + max_l_data+ l_phead1-1;
14330  443   24     !   !   !     !   ! ext_no := dte_adr.ext_addr;
14340  444   25     !   !   !     !   END;
14350  445   26     !   !   !     ! 
14360  446   27     !   !   !     ! WITH rec.phead DO
14370  447   28     !   !   !     !   BEGIN
14380  448   29     !   !   !     !   ! format := rut_format_1;
14390  449   30     !   !   !     !   ! priority:=0;
14400  450   31     !   !   !     !   ! packet_type := rut_pack_type;
14410  451   32     !   !   !     !   ! dst := int_pax_addr(0,0,0,0);
14420  452   33     !   !   !     !   ! state := 0;
14430  453   34     !   !   !     !   ! org := dte_adr;
14440  454   35     !   !   !     !   ! facility := cur_facility;
14450  455   36     !   !   !     !   ! top_of_data := rut_prefix.first + max_l_data +1;
14460  456   37     !   !   !     !   ! user_field := rut_rec;
\f

tsdtelst    81.06.15.   15.39.                                                    page    18

14470  457   38     !   !   !     !   END;
14480  458   39     !   !   !     END;
14490  459   40     !   !   ! 
14500  460   41     !   !   ! signal( ref, rut_rec_sem^);
14510  461   42     !   !   END
14520  462   43     !   ! ELSE
14530  463   44     !   !   IF tst>128 THEN
14540  464   45     !   !     testout(z,t_14,1);
14550  465   46     !   END;
14560  466   47     END;
14570  467           
\f

tsdtelst    81.06.15.   15.39.                                                    page    19

15010  468          PROCEDURE act_destination;
15020  469              (*--------------------------------------------------------------
15030  470              -   converts an external paxnetaddress to an internal          -
15040  471              -   paxnetaddress                                              -
15050  472              ----------------------------------------------------------------*)
15060  473            
15070  474          VAR
15080  475            i : integer := 0;
15090  476          BEGIN
15100  477    1     ! 
15110  478    2     ! LOCK in_ref AS dte_buf : car_buf_type DO
15120  479    3     !   WHILE (dte_buf.call_buf.dte_adr <> paxnet_config(i))
15130  480    4     !     AND (i<15) DO i := i+1;
15140  481    5     ! 
15150  482    6     ! act_dst.net_addr := 0;
15160  483    7     ! act_dst.reg_addr := 0;
15170  484    8     ! act_dst.node_addr := i;
15180  485    9     ! act_dst.ext_addr := 3;
15190  486   10     ! 
15200  487   11     ! IF tst>64 THEN
15210  488   12     !   testout(z,t_16,i);
15220  489   13     END;
15230  490           
\f

tsdtelst    81.06.15.   15.39.                                                    page    20

16010  491          FUNCTION external_addr (
16020  492            internal_addr : int_pax_addr
16030  493            ): ext_pax_addr;
16040  494              (*--------------------------------------------------------------
16050  495              -   converts an internal paxnetaddress to an external paxnetaddress
16060  496              ----------------------------------------------------------------*)
16070  497          BEGIN
16080  498    1     ! 
16090  499    2     ! IF internal_addr.node_addr < 15 THEN
16100  500    3     !   external_addr := paxnet_config( internal_addr.node_addr)
16110  501    4     ! ELSE
16120  502    5     !   external_addr := paxnet_config(15);
16130  503    6     ! 
16140  504    7     ! IF tst>64 THEN
16150  505    8     !   testout(z,t_17, internal_addr.node_addr);
16160  506    9     END;
16170  507           
\f

tsdtelst    81.06.15.   15.39.                                                    page    21

17010  508            (*------------------------------------------------------------
17020  509            .     MAIN PROGRAM                                           .
17030  510            --------------------------------------------------------------*)
17040  511        BEGIN
17050  512    1   ! 
17060  513    2   ! testopen( z, own.incname, op_sem);
17070  514    3   ! testout(  z, version    , al_env_version);
17080  515    4   ! 
17090  516    5   !   (* initialize streams-array  *)
17100  517    6   ! 
17110  518    7   ! FOR i := min_stream_no TO max_stream_no DO
17120  519    8   !   WITH streams(i) DO
17130  520    9   !     BEGIN
17140  521   10   !     ! l_rec_q := 0;
17150  522   11   !     ! dst_stream := 0;
17160  523   12   !     ! dst := int_pax_addr(0,0,0,0);
17170  524   13   !     ! facility := 0;
17180  525   14   !     ! diag_code := 0;
17190  526   15   !     ! state := free;
17200  527   16   !     ! priority := rut_prio_0;
17210  528   17   !     END;
17220  529   18   ! 
17230  530   19   !   (*  initialize call-array  *)
17240  531   20   ! 
17250  532   21   ! FOR i:= 1 TO max_calls DO
17260  533   22   !   BEGIN
17270  534   23   !   ! calls(i).used := false;
17280  535   24   !   ! calls(i).facility := 0;
17290  536   25   !   END;
17300  537   26   !  
\f

tsdtelst    81.06.15.   15.39.                                                    page    22

18010  538   27   !   (*---   connect extension in router   ---*)
18020  539   28   !   (*-------------------------------------*)
18030  540   29   ! 
18040  541   30   ! sensesem( in_ref, pax_pool_sem.w^);
18050  542   31   ! 
18060  543   32   ! IF NOT nil( in_ref) THEN
18070  544   33   !   BEGIN
18080  545   34   !   ! in_ref^.u1 := rut_con;
18090  546   35   !   ! in_ref^.u2 := rut_default;
18100  547   36   !   ! in_ref^.u3 := rut_default;
18110  548   37   !   ! in_ref^.u4 := from_link;
18120  549   38   !   ! 
18130  550   39   !   ! LOCK in_ref AS buf : rut_prefix_type DO
18140  551   40   !   !   buf.ext_no := dte_adr.ext_addr;
18150  552   41   !   ! 
18160  553   42   !   ! signal( in_ref, rut_rec_sem^);
18170  554   43   !   ! 
18180  555   44   !   ! IF tst>128 THEN
18190  556   45   !   !   testout(z,t_18,1);
18200  557   46   !   END;
18210  558   47   ! 
18220  559   48   ! send_rpacket_bufs(2);
18230  560   49   !  
\f

tsdtelst    81.06.15.   15.39.                                                    page    23

19010  561   50   ! REPEAT
19020  562   51   ! ! 
19030  563   52   ! ! ts_wait( in_ref, dte_sem.w);
19040  564   53   ! ! 
19050  565   54   ! ! 
19060  566   55   ! ! IF in_ref^.u4 = from_link THEN
19070  567   56   ! !     (*---------------------------------------------------
19080  568   57   ! !     .   buffer from ROUTER
19090  569   58   ! !     -----------------------------------------------------*)
19100  570   59   ! !   
19110  571   60   ! !   IF in_ref^.u2 = rut_ok THEN
19120  572   61   ! !     
19130  573   62   ! !     BEGIN
19140  574   63   ! !     ! CASE in_ref^.u1 OF
19150  575   64   ! !     ! ! 
19160  576   65   ! !     ! ! rut_con :
19170  577   66   ! !     ! !     (*----------   connect extension   ----------*)
19180  578   67   ! !     ! !   BEGIN
19190  579   68   ! !     ! !   ! IF tst>16 THEN
19200  580   69   ! !     ! !   !   CASE in_ref^.u2 OF
19210  581   70   ! !     ! !   !   ! rut_ok :
19220  582   71   ! !     ! !   !   !   BEGIN
19230  583   72   ! !     ! !   !   !   ! testout( z, "dte connectd",0);
19240  584   73   ! !     ! !   !   !   END;
19250  585   74   ! !     ! !   !   ! rut_no_res :
19260  586   75   ! !     ! !   !   !   BEGIN
19270  587   76   ! !     ! !   !   !   ! testout(z,t_20, rut_no_res);
19280  588   77   ! !     ! !   !   !   ! testout( z, t_21, 0);
19290  589   78   ! !     ! !   !   !   END;
19300  590   79   ! !     ! !   !   ! rut_ext_err :
19310  591   80   ! !     ! !   !   !   BEGIN
19320  592   81   ! !     ! !   !   !   ! testout(z,t_20, rut_ext_err);
19330  593   82   ! !     ! !   !   !   ! testout( z, t_22, 0);
19340  594   83   ! !     ! !   !   !   END
19350  595   84   ! !     ! !   !   !   OTHERWISE
19360  596   85   ! !     ! !   !   !   testout(z,t_20,in_ref^.u2);
19370  597   86   ! !     ! !   !   END;
19380  598   87   ! !     ! !   ! 
19390  599   88   ! !     ! !   ! signal( in_ref, pax_pool_sem.s^);
19400  600   89   ! !     ! !   END;
19410  601   90   ! !     ! !  
\f

tsdtelst    81.06.15.   15.39.                                                    page    24

20010  602   91   ! !     ! ! rut_srdy :
20020  603   92   ! !     ! !     (*----------   sense ready   ----------*)
20030  604   93   ! !     ! !   BEGIN
20040  605   94   ! !     ! !   ! IF tst>16 THEN
20050  606   95   ! !     ! !   !   testout( z, t_23, in_ref^.u2);
20060  607   96   ! !     ! !   ! signal( in_ref, pax_pool_sem.s^);
20070  608   97   ! !     ! !   END;
20080  609   98   ! !     ! ! 
20090  610   99   ! !     ! ! rut_dis :
20100  611  100   ! !     ! !     (*----------   disconnect extension   ----------*)
20110  612  101   ! !     ! !   BEGIN
20120  613  102   ! !     ! !   ! IF tst>16 THEN
20130  614  103   ! !     ! !   !   testout( z, t_24, in_ref^.u2);
20140  615  104   ! !     ! !   ! signal( in_ref, pax_pool_sem.s^);
20150  616  105   ! !     ! !   END;
20160  617  106   ! !     ! ! 
20170  618  107   ! !     ! ! 
20180  619  108   ! !     ! ! rut_res :
20190  620  109   ! !     ! !     (*----------   reset   ----------*)
20200  621  110   ! !     ! !   BEGIN
20210  622  111   ! !     ! !   ! IF tst>16 THEN
20220  623  112   ! !     ! !   !   testout(z,t_25,0);
20230  624  113   ! !     ! !   ! signal( in_ref, pax_pool_sem.s^);
20240  625  114   ! !     ! !   END;
20250  626  115   ! !     ! !  
\f

tsdtelst    81.06.15.   15.39.                                                    page    25

21010  627  116   ! !     ! ! rut_trp , rut_dir :
21020  628  117   ! !     ! !     (*----------   transmit packet   ----------*)
21030  629  118   ! !     ! !   BEGIN
21040  630  119   ! !     ! !   ! IF tst>8 THEN
21050  631  120   ! !     ! !   !   testout(z,t_26,in_ref^.u2);
21060  632  121   ! !     ! !   !   <*
21070  633  122   ! !     ! !   !   act_result := in_ref^.u2;
21080  634  123   ! !     ! !   !   LOCK in_ref AS buf : rut_trp_pdata DO
21090  635  124   ! !     ! !   !   BEGIN
21100  636  125   ! !     ! !   !   act_user_field := buf.phead.user_field DIV 256;
21110  637  126   ! !     ! !   !   act_stream_no := buf.phead.user_field MOD 256;
21120  638  127   ! !     ! !   !   IF tst>8 THEN
21130  639  128   ! !     ! !   !   testout(z,"act-streamno", act_stream_no);
21140  640  129   ! !     ! !   !   
21150  641  130   ! !     ! !   !   IF ( act_user_field = dte_car)
21160  642  131   ! !     ! !   !   AND ( act_stream_no > 0) THEN
21170  643  132   ! !     ! !   !   BEGIN
21180  644  133   ! !     ! !   !   ref :=: streams( act_stream_no).car_ref;
21190  645  134   ! !     ! !   !   ref^.u2 := dte_ok_result;
21200  646  135   ! !     ! !   !   signal( ref, netc_sem^);
21210  647  136   ! !     ! !   !   END;
21220  648  137   ! !     ! !   !   END;
21230  649  138   ! !     ! !   !   *>
21240  650  139   ! !     ! !   ! signal( in_ref, pax_pool_sem.s^);
21250  651  140   ! !     ! !   END;
21260  652  141   ! !     ! !  
\f

tsdtelst    81.06.15.   15.39.                                                    page    26

22010  653  142   ! !     ! ! rut_rec :
22020  654  143   ! !     ! !     (*----------   receive packet   ----------*)
22030  655  144   ! !     ! !   BEGIN
22040  656  145   ! !     ! !   ! IF tst>8 THEN
22050  657  146   ! !     ! !   !   testout(z,t_27,0);
22060  658  147   ! !     ! !   ! 
22070  659  148   ! !     ! !   ! LOCK in_ref AS buf : rut_trp_pdata DO
22080  660  149   ! !     ! !   !   BEGIN
22090  661  150   ! !     ! !   !   ! 
22100  662  151   ! !     ! !   !   ! act_pac_state := buf.phead.state;
22110  663  152   ! !     ! !   !   ! IF tst>4 THEN
22120  664  153   ! !     ! !   !   !   testout(z,t_28, act_pac_state);
22130  665  154   ! !     ! !   !   ! act_user_field := buf.phead.user_field DIV 256 ;
22140  666  155   ! !     ! !   !   ! act_stream_no := buf.phead.user_field MOD 256;
22150  667  156   ! !     ! !   !   ! act_dst := buf.phead.org;
22160  668  157   ! !     ! !   !   ! 
22170  669  158   ! !     ! !   !   ! IF tst>32 THEN
22180  670  159   ! !     ! !   !   !   BEGIN
22190  671  160   ! !     ! !   !   !   ! testout(z,t_29,address(act_dst));
22200  672  161   ! !     ! !   !   !   ! 
22210  673  162   ! !     ! !   !   !   ! testout(z,t_30, act_user_field);
22220  674  163   ! !     ! !   !   !   ! testout(z,t_31, act_stream_no);
22230  675  164   ! !     ! !   !   !   END;
22240  676  165   ! !     ! !   !   ! 
22250  677  166   ! !     ! !   !   ! CASE act_user_field OF
22260  678  167   ! !     ! !   !   ! !  
\f

tsdtelst    81.06.15.   15.39.                                                    page    27

23010  679  168   ! !     ! !   !   ! ! dte_car :
23020  680  169   ! !     ! !   !   ! !   BEGIN  (*-------  it is an incomming call  --------*)
23030  681  170   ! !     ! !   !   ! !   ! 
23040  682  171   ! !     ! !   !   ! !   ! sensesem( ref, ric_pool);
23050  683  172   ! !     ! !   !   ! !   ! 
23060  684  173   ! !     ! !   !   ! !   ! IF NOT nil( ref) THEN
23070  685  174   ! !     ! !   !   ! !   !   BEGIN
23080  686  175   ! !     ! !   !   ! !   !   ! 
23090  687  176   ! !     ! !   !   ! !   !   ! IF call_resources(act_call_no) THEN
23100  688  177   ! !     ! !   !   ! !   !   !   BEGIN
23110  689  178   ! !     ! !   !   ! !   !   !   ! 
23120  690  179   ! !     ! !   !   ! !   !   !   ! IF tst>64 THEN
23130  691  180   ! !     ! !   !   ! !   !   !   !   BEGIN
23140  692  181   ! !     ! !   !   ! !   !   !   !   ! testout(z,t_32,dte_car);
23150  693  182   ! !     ! !   !   ! !   !   !   !   END;
23160  694  183   ! !     ! !   !   ! !   !   !   ! 
23170  695  184   ! !     ! !   !   ! !   !   !   ! ref^.u2 := dte_ok_result;
23180  696  185   ! !     ! !   !   ! !   !   !   ! 
23190  697  186   ! !     ! !   !   ! !   !   !   ! LOCK ref AS ric : ric_buf_type DO
23200  698  187   ! !     ! !   !   ! !   !   !   !   WITH ric DO
23210  699  188   ! !     ! !   !   ! !   !   !   !     BEGIN
23220  700  189   ! !     ! !   !   ! !   !   !   !     ! first := ric_first_val;
23230  701  190   ! !     ! !   !   ! !   !   !   !     ! last := ric_first_val + l_listen+l_control-1;
23240  702  191   ! !     ! !   !   ! !   !   !   !     ! call_id := act_call_no;
23250  703  192   ! !     ! !   !   ! !   !   !   !     ! call_buf.dte_adr_l := l_dte_adr;
23260  704  193   ! !     ! !   !   ! !   !   !   !     ! call_buf.dte_adr := external_addr( act_dst);
23270  705  194   ! !     ! !   !   ! !   !   !   !     ! call_buf.facility_l := l_facilities;
23280  706  195   ! !     ! !   !   ! !   !   !   !     ! call_buf.facility := buf.phead.facility;
23290  707  196   ! !     ! !   !   ! !   !   !   !     ! call_buf.control := buf.control;
23300  708  197   ! !     ! !   !   ! !   !   !   !     ! call_buf.alarm_mess := buf.alarm_mess;
23310  709  198   ! !     ! !   !   ! !   !   !   !     END;
23320  710  199   ! !     ! !   !   ! !   !   !   ! 
23330  711  200   ! !     ! !   !   ! !   !   !   ! signal( ref, netc_sem^);
23340  712  201   ! !     ! !   !   ! !   !   !   END
23350  713  202   ! !     ! !   !   ! !   !   ! ELSE
23360  714  203   ! !     ! !   !   ! !   !   !   BEGIN
23370  715  204   ! !     ! !   !   ! !   !   !   ! signal( ref, ric_pool);
23380  716  205   ! !     ! !   !   ! !   !   !   ! testout(z,t_33, 0);
23390  717  206   ! !     ! !   !   ! !   !   !   END
23400  718  207   ! !     ! !   !   ! !   !   END
23410  719  208   ! !     ! !   !   ! !   ! ELSE
23420  720  209   ! !     ! !   !   ! !   !   testout(z,t_34, 0);
23430  721  210   ! !     ! !   !   ! !   END;
23440  722  211   ! !     ! !   !   ! !  
\f

tsdtelst    81.06.15.   15.39.                                                    page    28

24010  723  212   ! !     ! !   !   ! ! dte_clr :
24020  724  213   ! !     ! !   !   ! !     (*    call clear from remote user  *)
24030  725  214   ! !     ! !   !   ! !   BEGIN
24040  726  215   ! !     ! !   !   ! !   ! IF tst>64 THEN
24050  727  216   ! !     ! !   !   ! !   !   BEGIN
24060  728  217   ! !     ! !   !   ! !   !   ! testout(z,t_35, dte_clr);
24070  729  218   ! !     ! !   !   ! !   !   END;
24080  730  219   ! !     ! !   !   ! !   ! 
24090  731  220   ! !     ! !   !   ! !   !   (*  send diag-code to local user  *)
24100  732  221   ! !     ! !   !   ! !   ! 
24110  733  222   ! !     ! !   !   ! !   ! sensesem( ref, streams( act_stream_no).receive_queue);
24120  734  223   ! !     ! !   !   ! !   ! 
24130  735  224   ! !     ! !   !   ! !   ! WHILE NOT nil( ref) DO
24140  736  225   ! !     ! !   !   ! !   !   BEGIN
24150  737  226   ! !     ! !   !   ! !   !   ! ref^.u2 := dte_remo_clear;
24160  738  227   ! !     ! !   !   ! !   !   ! 
24170  739  228   ! !     ! !   !   ! !   !   ! LOCK ref AS dte_buf : dte_sdata_data DO
24180  740  229   ! !     ! !   !   ! !   !   !   dte_buf.control := buf.control;
24190  741  230   ! !     ! !   !   ! !   !   ! 
24200  742  231   ! !     ! !   !   ! !   !   ! signal( ref, netc_sem^);
24210  743  232   ! !     ! !   !   ! !   !   ! streams(act_stream_no).l_rec_q := streams(act_stream_no).l_rec_q -1;
24220  744  233   ! !     ! !   !   ! !   !   ! sensesem( ref, streams(act_stream_no).receive_queue);
24230  745  234   ! !     ! !   !   ! !   !   END;
24240  746  235   ! !     ! !   !   ! !   ! 
24250  747  236   ! !     ! !   !   ! !   ! 
24260  748  237   ! !     ! !   !   ! !   ! IF streams( act_stream_no).state = clearing THEN
24270  749  238   ! !     ! !   !   ! !   !   streams( act_stream_no).state := free
24280  750  239   ! !     ! !   !   ! !   ! ELSE
24290  751  240   ! !     ! !   !   ! !   !   BEGIN
24300  752  241   ! !     ! !   !   ! !   !   ! get_transmit_buf( rut_buf_ref);
24310  753  242   ! !     ! !   !   ! !   !   ! 
24320  754  243   ! !     ! !   !   ! !   !   ! IF NOT nil( rut_buf_ref) THEN
24330  755  244   ! !     ! !   !   ! !   !   !   BEGIN
24340  756  245   ! !     ! !   !   ! !   !   !   ! LOCK rut_buf_ref AS rut_buf : rut_trp_pdata DO
24350  757  246   ! !     ! !   !   ! !   !   !   !   WITH rut_buf DO
24360  758  247   ! !     ! !   !   ! !   !   !   !     BEGIN
24370  759  248   ! !     ! !   !   ! !   !   !   !     ! WITH phead DO
24380  760  249   ! !     ! !   !   ! !   !   !   !     !   BEGIN
24390  761  250   ! !     ! !   !   ! !   !   !   !     !   ! dst := streams(act_stream_no).dst;
24400  762  251   ! !     ! !   !   ! !   !   !   !     !   ! facility := streams(act_stream_no).facility;
24410  763  252   ! !     ! !   !   ! !   !   !   !     !   ! user_field := dte_clr * 256 + streams(act_stream_no).dst_stream;
24420  764  253   ! !     ! !   !   ! !   !   !   !     !   END;
24430  765  254   ! !     ! !   !   ! !   !   !   !     ! control.op_code := dte_user_clear;
24440  766  255   ! !     ! !   !   ! !   !   !   !     ! control.data := 0;
24450  767  256   ! !     ! !   !   ! !   !   !   !     END;
24460  768  257   ! !     ! !   !   ! !   !   !   ! signal( rut_buf_ref, rut_trm_sem^);
\f

tsdtelst    81.06.15.   15.39.                                                    page    29

24470  769  258   ! !     ! !   !   ! !   !   !   END
24480  770  259   ! !     ! !   !   ! !   !   ! ELSE
24490  771  260   ! !     ! !   !   ! !   !   !   testout(z,t_14,2);
24500  772  261   ! !     ! !   !   ! !   !   ! 
24510  773  262   ! !     ! !   !   ! !   !   ! clear_stream_table( act_stream_no);
24520  774  263   ! !     ! !   !   ! !   !   END;
24530  775  264   ! !     ! !   !   ! !   ! 
24540  776  265   ! !     ! !   !   ! !   END;
24550  777  266   ! !     ! !   !   ! !  
\f

tsdtelst    81.06.15.   15.39.                                                    page    30

25010  778  267   ! !     ! !   !   ! ! dte_aic :
25020  779  268   ! !     ! !   !   ! !     (*  call accept from remote user  *)
25030  780  269   ! !     ! !   !   ! !   BEGIN
25040  781  270   ! !     ! !   !   ! !   ! IF tst>64 THEN
25050  782  271   ! !     ! !   !   ! !   !   BEGIN
25060  783  272   ! !     ! !   !   ! !   !   ! testout(z,t_36, dte_aic);
25070  784  273   ! !     ! !   !   ! !   !   END;
25080  785  274   ! !     ! !   !   ! !   ! 
25090  786  275   ! !     ! !   !   ! !   ! streams( act_stream_no).dst_stream := buf.control.data;
25100  787  276   ! !     ! !   !   ! !   END;
25110  788  277   ! !     ! !   !   ! ! 
25120  789  278   ! !     ! !   !   ! ! 
25130  790  279   ! !     ! !   !   ! ! dte_rejic :
25140  791  280   ! !     ! !   !   ! !     (*  call reject from remote user  *)
25150  792  281   ! !     ! !   !   ! !   BEGIN
25160  793  282   ! !     ! !   !   ! !   ! IF tst>64 THEN
25170  794  283   ! !     ! !   !   ! !   !   BEGIN
25180  795  284   ! !     ! !   !   ! !   !   ! testout(z,t_37,dte_rejic);
25190  796  285   ! !     ! !   !   ! !   !   END;
25200  797  286   ! !     ! !   !   ! !   ! 
25210  798  287   ! !     ! !   !   ! !   ! streams( act_stream_no).diag_code := buf.control.data;
25220  799  288   ! !     ! !   !   ! !   ! sensesem( ref, streams( act_stream_no).receive_queue);
25230  800  289   ! !     ! !   !   ! !   ! 
25240  801  290   ! !     ! !   !   ! !   ! IF NOT nil( ref) THEN
25250  802  291   ! !     ! !   !   ! !   !   BEGIN
25260  803  292   ! !     ! !   !   ! !   !   ! LOCK ref AS dte_buf : dte_sdata_data DO
25270  804  293   ! !     ! !   !   ! !   !   !   BEGIN
25280  805  294   ! !     ! !   !   ! !   !   !   ! ref^.u2 := dte_remo_clear;
25290  806  295   ! !     ! !   !   ! !   !   !   ! dte_buf.control := buf.control;
25300  807  296   ! !     ! !   !   ! !   !   !   END;
25310  808  297   ! !     ! !   !   ! !   !   ! signal( ref, netc_sem^);
25320  809  298   ! !     ! !   !   ! !   !   ! streams(act_stream_no).l_rec_q := streams(act_stream_no).l_rec_q -1;
25330  810  299   ! !     ! !   !   ! !   !   ! sensesem( ref, streams( act_stream_no).receive_queue);
25340  811  300   ! !     ! !   !   ! !   !   END;
25350  812  301   ! !     ! !   !   ! !   ! 
25360  813  302   ! !     ! !   !   ! !   ! WHILE NOT nil( ref) DO
25370  814  303   ! !     ! !   !   ! !   !   BEGIN
25380  815  304   ! !     ! !   !   ! !   !   ! ref^.u2 := dte_remo_clear;
25390  816  305   ! !     ! !   !   ! !   !   ! signal( ref, netc_sem^);
25400  817  306   ! !     ! !   !   ! !   !   ! streams(act_stream_no).l_rec_q := streams(act_stream_no).l_rec_q -1;
25410  818  307   ! !     ! !   !   ! !   !   ! sensesem( ref, streams( act_stream_no).receive_queue);
25420  819  308   ! !     ! !   !   ! !   !   END;
25430  820  309   ! !     ! !   !   ! !   END;
25440  821  310   ! !     ! !   !   ! ! 
25450  822  311   ! !     ! !   !   ! !  
\f

tsdtelst    81.06.15.   15.39.                                                    page    31

26010  823  312   ! !     ! !   !   ! ! dte_sdata :
26020  824  313   ! !     ! !   !   ! !     (*  data from remote user *)
26030  825  314   ! !     ! !   !   ! !   BEGIN
26040  826  315   ! !     ! !   !   ! !   ! IF tst>64 THEN
26050  827  316   ! !     ! !   !   ! !   !   BEGIN
26060  828  317   ! !     ! !   !   ! !   !   ! testout(z,t_38, dte_sdata);
26070  829  318   ! !     ! !   !   ! !   !   END;
26080  830  319   ! !     ! !   !   ! !   ! sensesem( ref, streams( act_stream_no).receive_queue);
26090  831  320   ! !     ! !   !   ! !   ! 
26100  832  321   ! !     ! !   !   ! !   ! IF NOT nil( ref) THEN
26110  833  322   ! !     ! !   !   ! !   !   BEGIN
26120  834  323   ! !     ! !   !   ! !   !   ! ref^.u2 := dte_ok_result;
26130  835  324   ! !     ! !   !   ! !   !   ! 
26140  836  325   ! !     ! !   !   ! !   !   ! LOCK ref AS dte_buf : dte_sdata_data DO
26150  837  326   ! !     ! !   !   ! !   !   !   BEGIN
26160  838  327   ! !     ! !   !   ! !   !   !   ! dte_buf.control := buf.control;
26170  839  328   ! !     ! !   !   ! !   !   !   ! dte_buf.alarm_mess := buf.alarm_mess;
26180  840  329   ! !     ! !   !   ! !   !   !   ! 
26190  841  330   ! !     ! !   !   ! !   !   !   ! dte_buf.first := sdata_first_val;
26200  842  331   ! !     ! !   !   ! !   !   !   ! dte_buf.last := dte_buf.first + l_control+l_listen-1;
26210  843  332   ! !     ! !   !   ! !   !   !   ! 
26220  844  333   ! !     ! !   !   ! !   !   !   END;
26230  845  334   ! !     ! !   !   ! !   !   ! 
26240  846  335   ! !     ! !   !   ! !   !   ! streams(act_stream_no).l_rec_q := streams(act_stream_no).l_rec_q -1;
26250  847  336   ! !     ! !   !   ! !   !   ! signal( ref, netc_sem^);
26260  848  337   ! !     ! !   !   ! !   !   END
26270  849  338   ! !     ! !   !   ! !   ! ELSE
26280  850  339   ! !     ! !   !   ! !   !   IF tst>64 THEN
26290  851  340   ! !     ! !   !   ! !   !     testout( z, t_39, act_stream_no);
26300  852  341   ! !     ! !   !   ! !   END
26310  853  342   ! !     ! !   !   ! !   OTHERWISE
26320  854  343   ! !     ! !   !   ! !   BEGIN
26330  855  344   ! !     ! !   !   ! !   ! IF tst>64 THEN
26340  856  345   ! !     ! !   !   ! !   !   testout(z,t_40, act_user_field);
26350  857  346   ! !     ! !   !   ! !   END;
26360  858  347   ! !     ! !   !   ! ! 
26370  859  348   ! !     ! !   !   ! ! 
26380  860  349   ! !     ! !   !   ! END (* case *);
26390  861  350   ! !     ! !   !   ! 
26400  862  351   ! !     ! !   !   END (* lock in_ref *);
26410  863  352   ! !     ! !   ! 
26420  864  353   ! !     ! !   ! in_ref^.u2 := rut_default;
26430  865  354   ! !     ! !   ! signal( in_ref, rut_rec_sem^);
26440  866  355   ! !     ! !   ! 
26450  867  356   ! !     ! !   END;
26460  868  357   ! !     ! !  
\f

tsdtelst    81.06.15.   15.39.                                                    page    32

27010  869  358   ! !     ! ! rut_stat :
27020  870  359   ! !     ! !     (*----------   status   ----------*)
27030  871  360   ! !     ! !   BEGIN
27040  872  361   ! !     ! !   ! IF tst>64 THEN
27050  873  362   ! !     ! !   !   testout(z,t_41,0);
27060  874  363   ! !     ! !   END;
27070  875  364   ! !     ! ! 
27080  876  365   ! !     ! ! OTHERWISE
27090  877  366   ! !     ! !   (*----------   unknown router-function   ----------*)
27100  878  367   ! !     ! ! BEGIN
27110  879  368   ! !     ! ! ! IF tst>64 THEN
27120  880  369   ! !     ! ! !   testout(z,t_42,0);
27130  881  370   ! !     ! ! END
27140  882  371   ! !     ! END;  (*  case router-functions  *)
27150  883  372   ! !     END
27160  884  373   ! !   ELSE
27170  885  374   ! !     BEGIN
27180  886  375   ! !     ! IF tst>16 THEN
27190  887  376   ! !     !   BEGIN
27200  888  377   ! !     !   ! testout(z,t_43,in_ref^.u1);
27210  889  378   ! !     !   ! testout(z,t_44, in_ref^.u2);
27220  890  379   ! !     !   ! testout(z,t_45,in_ref^.u3);
27230  891  380   ! !     !   END;
27240  892  381   ! !     ! 
27250  893  382   ! !     ! signal( in_ref, pax_pool_sem.s^);
27260  894  383   ! !     END
27270  895  384   ! !     
27280  896  385   ! !      
\f

tsdtelst    81.06.15.   15.39.                                                    page    33

28010  897  386   ! !   ELSE
28020  898  387   ! !     IF in_ref^.u4 = to_link THEN
28030  899  388   ! !         (*---------------------------------------------------
28040  900  389   ! !         .   buffer from NETCON
28050  901  390   ! !         -----------------------------------------------------*)
28060  902  391   ! !       BEGIN
28070  903  392   ! !       ! IF ((in_ref^.u3 < min_stream_no) OR (in_ref^.u3 > max_stream_no))
28080  904  393   ! !       !   AND (in_ref^.u1 <> dte_ric) AND (in_ref^.u1 <> dte_rejic) THEN
28090  905  394   ! !       !   BEGIN
28100  906  395   ! !       !   ! in_ref^.u2 := dte_stream_err;
28110  907  396   ! !       !   ! signal( in_ref, netc_sem^);
28120  908  397   ! !       !   END
28130  909  398   ! !       ! ELSE
28140  910  399   ! !       !   CASE in_ref^.u1 OF
28150  911  400   ! !       !   ! 
28160  912  401   ! !       !   ! dte_car :
28170  913  402   ! !       !   !     (*   call from local user  *)
28180  914  403   ! !       !   !   BEGIN
28190  915  404   ! !       !   !   ! IF tst>64 THEN
28200  916  405   ! !       !   !   !   BEGIN
28210  917  406   ! !       !   !   !   ! testout(z,t_46,1);
28220  918  407   ! !       !   !   !   END;
28230  919  408   ! !       !   !   ! 
28240  920  409   ! !       !   !   ! get_transmit_buf( rut_buf_ref);
28250  921  410   ! !       !   !   ! act_stream_no := in_ref^.u3;
28260  922  411   ! !       !   !   ! 
28270  923  412   ! !       !   !   ! act_destination;
28280  924  413   ! !       !   !   ! IF tst>64 THEN
28290  925  414   ! !       !   !   !   BEGIN
28300  926  415   ! !       !   !   !   ! testout(z,t_47,address(act_dst));
28310  927  416   ! !       !   !   !   END;
28320  928  417   ! !       !   !   ! 
28330  929  418   ! !       !   !   ! IF NOT nil( rut_buf_ref) THEN
28340  930  419   ! !       !   !   !   BEGIN
28350  931  420   ! !       !   !   !   ! 
28360  932  421   ! !       !   !   !   ! LOCK in_ref AS dte_buf : car_buf_type DO
28370  933  422   ! !       !   !   !   !   
28380  934  423   ! !       !   !   !   !   LOCK rut_buf_ref AS rut_buf : rut_trp_pdata DO
28390  935  424   ! !       !   !   !   !     BEGIN
28400  936  425   ! !       !   !   !   !     ! WITH rut_buf.phead DO
28410  937  426   ! !       !   !   !   !     !   BEGIN
28420  938  427   ! !       !   !   !   !     !   ! dst := act_dst;
28430  939  428   ! !       !   !   !   !     !   ! facility := dte_buf.call_buf.facility;
28440  940  429   ! !       !   !   !   !     !   ! streams( act_stream_no).facility := facility;
28450  941  430   ! !       !   !   !   !     !   ! user_field := dte_car * 256 + act_stream_no;
28460  942  431   ! !       !   !   !   !     !   ! top_of_data := top_of_data + dte_buf.call_buf.alarm_mess.al.no_of_by+2;
\f

tsdtelst    81.06.15.   15.39.                                                    page    34

28470  943  432   ! !       !   !   !   !     !   END;
28480  944  433   ! !       !   !   !   !     ! 
28490  945  434   ! !       !   !   !   !     ! rut_buf.control := dte_buf.call_buf.control;
28500  946  435   ! !       !   !   !   !     ! rut_buf.alarm_mess := dte_buf.call_buf.alarm_mess;
28510  947  436   ! !       !   !   !   !     ! rut_buf.rut_prefix.last := rut_buf.rut_prefix.last
28520  948  437   ! !       !   !   !   !     ! + dte_buf.call_buf.alarm_mess.al.no_of_by+2;
28530  949  438   ! !       !   !   !   !     END;
28540  950  439   ! !       !   !   !   ! 
28550  951  440   ! !       !   !   !   ! signal( rut_buf_ref, rut_trm_sem^);
28560  952  441   ! !       !   !   !   END
28570  953  442   ! !       !   !   ! ELSE
28580  954  443   ! !       !   !   !   testout(z,t_14,3);
28590  955  444   ! !       !   !   ! 
28600  956  445   ! !       !   !   ! IF nil( streams( act_stream_no).car_ref) THEN
28610  957  446   ! !       !   !   !   streams( act_stream_no).car_ref :=: in_ref
28620  958  447   ! !       !   !   ! ELSE
28630  959  448   ! !       !   !   !   BEGIN
28640  960  449   ! !       !   !   !   ! in_ref^.u2 := dte_ok_result;
28650  961  450   ! !       !   !   !   ! signal( in_ref, netc_sem^);
28660  962  451   ! !       !   !   !   END;
28670  963  452   ! !       !   !   ! streams( act_stream_no).dst := act_dst;
28680  964  453   ! !       !   !   ! 
28690  965  454   ! !       !   !   ! IF tst>32 THEN
28700  966  455   ! !       !   !   !   write_stream( act_stream_no);
28710  967  456   ! !       !   !   END;
28720  968  457   ! !       !   !  
\f

tsdtelst    81.06.15.   15.39.                                                    page    35

29010  969  458   ! !       !   ! dte_clr :
29020  970  459   ! !       !   !     (*   clear call from local user *)
29030  971  460   ! !       !   !   BEGIN
29040  972  461   ! !       !   !   ! IF tst>64 THEN
29050  973  462   ! !       !   !   !   BEGIN
29060  974  463   ! !       !   !   !   ! testout(z,t_48, 1);
29070  975  464   ! !       !   !   !   END;
29080  976  465   ! !       !   !   ! 
29090  977  466   ! !       !   !   ! LOCK in_ref AS dte_buf : clear_buf_type DO
29100  978  467   ! !       !   !   !   act_diag_code := dte_buf.diag_code;
29110  979  468   ! !       !   !   ! 
29120  980  469   ! !       !   !   !   (*  send diag-code to remote dte  *)
29130  981  470   ! !       !   !   ! 
29140  982  471   ! !       !   !   ! get_transmit_buf( rut_buf_ref);
29150  983  472   ! !       !   !   ! 
29160  984  473   ! !       !   !   ! IF NOT nil( rut_buf_ref) THEN
29170  985  474   ! !       !   !   !   BEGIN
29180  986  475   ! !       !   !   !   ! LOCK rut_buf_ref AS rut_buf : rut_trp_pdata DO
29190  987  476   ! !       !   !   !   !   WITH rut_buf DO
29200  988  477   ! !       !   !   !   !     BEGIN
29210  989  478   ! !       !   !   !   !     ! WITH phead DO
29220  990  479   ! !       !   !   !   !     !   BEGIN
29230  991  480   ! !       !   !   !   !     !   ! dst := streams( in_ref^.u3).dst;
29240  992  481   ! !       !   !   !   !     !   ! facility := streams( in_ref^.u3).facility;
29250  993  482   ! !       !   !   !   !     !   ! user_field := dte_clr *256 + streams( in_ref^.u3).dst_stream;
29260  994  483   ! !       !   !   !   !     !   END;
29270  995  484   ! !       !   !   !   !     ! control.op_code := dte_clr;
29280  996  485   ! !       !   !   !   !     ! control.data := act_diag_code;
29290  997  486   ! !       !   !   !   !     END;
29300  998  487   ! !       !   !   !   ! signal( rut_buf_ref, rut_trm_sem^);
29310  999  488   ! !       !   !   !   END
29320 1000  489   ! !       !   !   ! ELSE
29330 1001  490   ! !       !   !   !   testout(z,t_14,4);
29340 1002  491   ! !       !   !   ! 
29350 1003  492   ! !       !   !   !   (*  clear stream table *)
29360 1004  493   ! !       !   !   ! 
29370 1005  494   ! !       !   !   ! clear_stream_table( in_ref^.u3);
29380 1006  495   ! !       !   !   ! 
29390 1007  496   ! !       !   !   ! 
29400 1008  497   ! !       !   !   !   (* return clear call buffer *)
29410 1009  498   ! !       !   !   ! in_ref^.u2 := dte_ok_result;
29420 1010  499   ! !       !   !   ! signal( in_ref, netc_sem^);
29430 1011  500   ! !       !   !   END;
29440 1012  501   ! !       !   !  
\f

tsdtelst    81.06.15.   15.39.                                                    page    36

30010 1013  502   ! !       !   ! dte_ric :
30020 1014  503   ! !       !   !     (* local user ready for receive call *)
30030 1015  504   ! !       !   !   BEGIN
30040 1016  505   ! !       !   !   ! IF tst>64 THEN
30050 1017  506   ! !       !   !   !   BEGIN
30060 1018  507   ! !       !   !   !   ! testout(z,t_49,1);
30070 1019  508   ! !       !   !   !   END;
30080 1020  509   ! !       !   !   ! signal( in_ref, ric_pool);
30090 1021  510   ! !       !   !   END;
30100 1022  511   ! !       !   ! 
30110 1023  512   ! !       !   ! 
30120 1024  513   ! !       !   ! dte_rdata :
30130 1025  514   ! !       !   !     (* local user ready for receive data *)
30140 1026  515   ! !       !   !   IF streams(in_ref^.u3).l_rec_q <= windowsize THEN
30150 1027  516   ! !       !   !     BEGIN
30160 1028  517   ! !       !   !     ! act_stream_no := in_ref^.u3;
30170 1029  518   ! !       !   !     ! WITH streams( in_ref^.u3) DO
30180 1030  519   ! !       !   !     !   BEGIN
30190 1031  520   ! !       !   !     !   ! count( l_rec_q);
30200 1032  521   ! !       !   !     !   ! IF tst>64 THEN
30210 1033  522   ! !       !   !     !   !   testout(z,t_50, l_rec_q);
30220 1034  523   ! !       !   !     !   END;
30230 1035  524   ! !       !   !     ! signal( in_ref, streams( act_stream_no).receive_queue);
30240 1036  525   ! !       !   !     END
30250 1037  526   ! !       !   !   ELSE
30260 1038  527   ! !       !   !     signal( in_ref, pax_pool_sem.s^);
30270 1039  528   ! !       !   ! 
30280 1040  529   ! !       !   !  
\f

tsdtelst    81.06.15.   15.39.                                                    page    37

31010 1041  530   ! !       !   ! dte_sdata :
31020 1042  531   ! !       !   !     (*  local user sends data  *)
31030 1043  532   ! !       !   !   BEGIN
31040 1044  533   ! !       !   !   ! 
31050 1045  534   ! !       !   !   ! get_transmit_buf( rut_buf_ref);
31060 1046  535   ! !       !   !   ! act_stream_no := in_ref^.u3;
31070 1047  536   ! !       !   !   ! 
31080 1048  537   ! !       !   !   ! IF NOT nil( rut_buf_ref) THEN
31090 1049  538   ! !       !   !   !   BEGIN
31100 1050  539   ! !       !   !   !   ! LOCK in_ref AS dte_buf : dte_sdata_data DO
31110 1051  540   ! !       !   !   !   !   LOCK rut_buf_ref AS rut_buf : rut_trp_pdata DO
31120 1052  541   ! !       !   !   !   !     BEGIN
31130 1053  542   ! !       !   !   !   !     ! WITH rut_buf.phead DO
31140 1054  543   ! !       !   !   !   !     !   BEGIN
31150 1055  544   ! !       !   !   !   !     !   ! dst := streams( act_stream_no).dst;
31160 1056  545   ! !       !   !   !   !     !   ! facility := streams( act_stream_no).facility;
31170 1057  546   ! !       !   !   !   !     !   ! user_field := dte_sdata * 256 + streams( act_stream_no).dst_stream;
31180 1058  547   ! !       !   !   !   !     !   ! top_of_data := top_of_data + dte_buf.alarm_mess.al.no_of_by+2;
31190 1059  548   ! !       !   !   !   !     !   END;
31200 1060  549   ! !       !   !   !   !     ! 
31210 1061  550   ! !       !   !   !   !     ! rut_buf.control := dte_buf.control;
31220 1062  551   ! !       !   !   !   !     ! rut_buf.alarm_mess := dte_buf.alarm_mess;
31230 1063  552   ! !       !   !   !   !     ! rut_buf.rut_prefix.last := rut_buf.rut_prefix.last
31240 1064  553   ! !       !   !   !   !     ! + dte_buf.alarm_mess.al.no_of_by+2;
31250 1065  554   ! !       !   !   !   !     ! 
31260 1066  555   ! !       !   !   !   !     ! IF tst>64 THEN
31270 1067  556   ! !       !   !   !   !     !   testout(z,t_51,act_stream_no);
31280 1068  557   ! !       !   !   !   !     ! 
31290 1069  558   ! !       !   !   !   !     ! 
31300 1070  559   ! !       !   !   !   !     END;
31310 1071  560   ! !       !   !   !   ! 
31320 1072  561   ! !       !   !   !   ! signal( rut_buf_ref, rut_trm_sem^);
31330 1073  562   ! !       !   !   !   END
31340 1074  563   ! !       !   !   ! ELSE
31350 1075  564   ! !       !   !   !   testout(z,t_14,5);
31360 1076  565   ! !       !   !   ! 
31370 1077  566   ! !       !   !   ! in_ref^.u2 := dte_ok_result;
31380 1078  567   ! !       !   !   ! signal( in_ref, netc_sem^);
31390 1079  568   ! !       !   !   END;
31400 1080  569   ! !       !   !  
\f

tsdtelst    81.06.15.   15.39.                                                    page    38

32010 1081  570   ! !       !   ! dte_aic :
32020 1082  571   ! !       !   !     (* local user accepts a call *)
32030 1083  572   ! !       !   !   BEGIN
32040 1084  573   ! !       !   !   ! IF tst>64 THEN
32050 1085  574   ! !       !   !   !   BEGIN
32060 1086  575   ! !       !   !   !   ! testout(z,t_52,1);
32070 1087  576   ! !       !   !   !   END;
32080 1088  577   ! !       !   !   ! 
32090 1089  578   ! !       !   !   ! get_transmit_buf( rut_buf_ref);
32100 1090  579   ! !       !   !   ! act_stream_no := in_ref^.u3;
32110 1091  580   ! !       !   !   ! 
32120 1092  581   ! !       !   !   ! IF NOT nil( rut_buf_ref) THEN
32130 1093  582   ! !       !   !   !   BEGIN
32140 1094  583   ! !       !   !   !   ! LOCK in_ref AS dte_buf : aic_buf_type DO
32150 1095  584   ! !       !   !   !   !   LOCK rut_buf_ref AS rut_buf : rut_trp_pdata DO
32160 1096  585   ! !       !   !   !   !     BEGIN
32170 1097  586   ! !       !   !   !   !     ! call_to_stream( dte_buf.aic_id, act_stream_no);
32180 1098  587   ! !       !   !   !   !     ! 
32190 1099  588   ! !       !   !   !   !     ! WITH rut_buf.phead DO
32200 1100  589   ! !       !   !   !   !     !   BEGIN
32210 1101  590   ! !       !   !   !   !     !   ! dst := streams( act_stream_no).dst;
32220 1102  591   ! !       !   !   !   !     !   ! facility := streams( act_stream_no).facility;
32230 1103  592   ! !       !   !   !   !     !   ! user_field := dte_aic * 256 + streams( act_stream_no).dst_stream;
32240 1104  593   ! !       !   !   !   !     !   END;
32250 1105  594   ! !       !   !   !   !     ! 
32260 1106  595   ! !       !   !   !   !     ! 
32270 1107  596   ! !       !   !   !   !     ! rut_buf.control.data := act_stream_no;
32280 1108  597   ! !       !   !   !   !     END;
32290 1109  598   ! !       !   !   !   ! 
32300 1110  599   ! !       !   !   !   ! signal( rut_buf_ref, rut_trm_sem^);
32310 1111  600   ! !       !   !   !   END
32320 1112  601   ! !       !   !   ! ELSE
32330 1113  602   ! !       !   !   !   testout(z,t_14,6);
32340 1114  603   ! !       !   !   ! 
32350 1115  604   ! !       !   !   ! in_ref^.u2 := dte_ok_result;
32360 1116  605   ! !       !   !   ! signal( in_ref, netc_sem^);
32370 1117  606   ! !       !   !   ! 
32380 1118  607   ! !       !   !   END;
32390 1119  608   ! !       !   !  
\f

tsdtelst    81.06.15.   15.39.                                                    page    39

33010 1120  609   ! !       !   ! dte_rejic :
33020 1121  610   ! !       !   !     (* local user rejects a call *)
33030 1122  611   ! !       !   !   BEGIN
33040 1123  612   ! !       !   !   ! IF tst>64 THEN
33050 1124  613   ! !       !   !   !   BEGIN
33060 1125  614   ! !       !   !   !   ! testout(z,t_53,1);
33070 1126  615   ! !       !   !   !   END;
33080 1127  616   ! !       !   !   ! 
33090 1128  617   ! !       !   !   ! get_transmit_buf( rut_buf_ref);
33100 1129  618   ! !       !   !   ! act_stream_no := in_ref^.u3;
33110 1130  619   ! !       !   !   ! 
33120 1131  620   ! !       !   !   ! IF NOT nil( rut_buf_ref) THEN
33130 1132  621   ! !       !   !   !   BEGIN
33140 1133  622   ! !       !   !   !   ! LOCK in_ref AS dte_buf : rejic_buf_type DO
33150 1134  623   ! !       !   !   !   !   LOCK rut_buf_ref AS rut_buf : rut_trp_pdata DO
33160 1135  624   ! !       !   !   !   !     BEGIN
33170 1136  625   ! !       !   !   !   !     ! calls( dte_buf.rejic_id).used := false;
33180 1137  626   ! !       !   !   !   !     ! 
33190 1138  627   ! !       !   !   !   !     ! WITH rut_buf.phead DO
33200 1139  628   ! !       !   !   !   !     !   BEGIN
33210 1140  629   ! !       !   !   !   !     !   ! dst := calls( dte_buf.rejic_id).dst;
33220 1141  630   ! !       !   !   !   !     !   ! facility := calls( dte_buf.rejic_id).facility;
33230 1142  631   ! !       !   !   !   !     !   ! user_field := dte_rejic * 256 + calls(dte_buf.rejic_id).dst_stream;
33240 1143  632   ! !       !   !   !   !     !   END;
33250 1144  633   ! !       !   !   !   !     ! 
33260 1145  634   ! !       !   !   !   !     ! rut_buf.control.op_code := dte_rejic;
33270 1146  635   ! !       !   !   !   !     ! rut_buf.control.data := dte_buf.rejic_diag;
33280 1147  636   ! !       !   !   !   !     END;
33290 1148  637   ! !       !   !   !   ! 
33300 1149  638   ! !       !   !   !   ! signal( rut_buf_ref, rut_trm_sem^);
33310 1150  639   ! !       !   !   !   END
33320 1151  640   ! !       !   !   ! ELSE
33330 1152  641   ! !       !   !   !   testout(z,t_14,7);
33340 1153  642   ! !       !   !   ! in_ref^.u2 := dte_ok_result;
33350 1154  643   ! !       !   !   ! signal( in_ref, netc_sem^);
33360 1155  644   ! !       !   !   ! 
33370 1156  645   ! !       !   !   END;
33380 1157  646   ! !       !   !  
\f

tsdtelst    81.06.15.   15.39.                                                    page    40

34010 1158  647   ! !       !   ! dte_res :      (*  reset  *)
34020 1159  648   ! !       !   !   BEGIN
34030 1160  649   ! !       !   !   ! IF tst>8 THEN
34040 1161  650   ! !       !   !   !   testout(z,t_54, in_ref^.u1);
34050 1162  651   ! !       !   !   ! in_ref^.u2 := dte_ok_result;
34060 1163  652   ! !       !   !   ! signal( in_ref, netc_sem^);
34070 1164  653   ! !       !   !   END;
34080 1165  654   ! !       !   ! 
34090 1166  655   ! !       !   ! dte_stat :     (*  status  *)
34100 1167  656   ! !       !   !   BEGIN
34110 1168  657   ! !       !   !   ! IF tst>8 THEN
34120 1169  658   ! !       !   !   !   testout(z,t_55, in_ref^.u1);
34130 1170  659   ! !       !   !   ! in_ref^.u2 := dte_ok_result;
34140 1171  660   ! !       !   !   ! signal( in_ref, netc_sem^);
34150 1172  661   ! !       !   !   END;
34160 1173  662   ! !       !   ! OTHERWISE
34170 1174  663   ! !       !   ! BEGIN
34180 1175  664   ! !       !   ! ! IF tst>8 THEN
34190 1176  665   ! !       !   ! !   testout(z,t_56, in_ref^.u1);
34200 1177  666   ! !       !   ! ! in_ref^.u2 := dte_ok_result;
34210 1178  667   ! !       !   ! ! signal( in_ref, netc_sem^);
34220 1179  668   ! !       !   ! END;
34230 1180  669   ! !       !   END;
34240 1181  670   ! !       END
34250 1182  671   ! !     ELSE
34260 1183  672   ! !       IF in_ref^.u4 = dyn_test THEN
34270 1184  673   ! !         BEGIN
34280 1185  674   ! !         ! tst := in_ref^.u3;
34290 1186  675   ! !         ! CASE in_ref^.u2 OF
34300 1187  676   ! !         ! ! 1 : LOCK in_ref AS buf : RECORD
34310 1188  677   ! !         ! !                           !  l_r_q : integer;
34320 1189  678   ! !         ! !                           !  d_s : byte;
34330 1190  679   ! !         ! !                           !  d : int_pax_addr;
34340 1191  680   ! !         ! !                           !  f : integer;
34350 1192  681   ! !         ! !                           !  p,di : byte;
34360 1193  682   ! !         ! !     END DO
34370 1194  683   ! !         ! !     WITH buf DO
34380 1195  684   ! !         ! !       WITH streams(in_ref^.u1) DO
34390 1196  685   ! !         ! !         BEGIN
34400 1197  686   ! !         ! !         ! l_r_q := l_rec_q;
34410 1198  687   ! !         ! !         ! d_s := dst_stream;
34420 1199  688   ! !         ! !         ! d := dst;
34430 1200  689   ! !         ! !         ! f := facility;
34440 1201  690   ! !         ! !         ! p := priority;
34450 1202  691   ! !         ! !         ! di := diag_code;
34460 1203  692   ! !         ! !         END;
\f

tsdtelst    81.06.15.   15.39.                                                    page    41

34470 1204  693   ! !         ! ! 2 : LOCK in_ref AS buf : calls_e DO
34480 1205  694   ! !         ! !     WITH calls( in_ref^.u1) DO
34490 1206  695   ! !         ! !       BEGIN
34500 1207  696   ! !         ! !       ! buf.dst := dst;
34510 1208  697   ! !         ! !       ! buf.dst_stream := dst_stream;
34520 1209  698   ! !         ! !       ! buf.used := used;
34530 1210  699   ! !         ! !       ! buf.facility := facility;
34540 1211  700   ! !         ! !       END;
34550 1212  701   ! !         ! END;
34560 1213  702   ! !         ! signal( in_ref, pax_pool_sem.s^);
34570 1214  703   ! !         END
34580 1215  704   ! !       ELSE
34590 1216  705   ! !         BEGIN
34600 1217  706   ! !         ! IF tst>8 THEN
34610 1218  707   ! !         !   testout(z,t_57, in_ref^.u4);
34620 1219  708   ! !         ! release( in_ref);
34630 1220  709   ! !         END;
34640 1221  710   ! ! 
34650 1222  711   ! UNTIL false;
34660 1223  712   ! 
34670 1224  713   END.
34680 1225      
\f

tsdtelst    81.06.15.   15.39.                                                    page    42

           0  175*  177*  179*  182*  358   359   359   359   359   360   361   400   408   449   451 
              451   451   451   452   475*  482   483   521   522   523   523   523   523   524   525 
              535   583   588   593   623   657   716   720   766   873   880 
           1   56*  165*  275*  287   289   295   299   376   391   420   426   442   455   464   480 
              532   556   701   743   809   817   842   846   917   974  1018  1086  1125  1187:
           2  559   771   942   948  1058  1064  1204:
           3  485   954 
           4  214   663  1001 
           5 1075 
           6 1113 
           7 1152 
           8  630   656  1160  1168  1175  1217 
          10  228 
          15  480   499   502 
          16  579   605   613   622   886 
          32  314   331   347   669   965 
          64  487   504   690   726   781   793   826   850   855   872   879   915   924   972  1016 
             1032  1066  1084  1123 
         100  227 
         128  378   407   428   463   555 
         255  184*
         256  665   666   763   941   993  1057  1103  1142 
        1000  226 
act_call_no   172*  270*  312=  687   702 
act_destination                                                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              468*  923 
act_diag_code                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              174*  978=  996 
act_dst       170*  284   307   482   483   484   485   667=  671   704   926   938   963 
act_pac_state                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              175*  662=  664 
act_result    173*
act_stream_no                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              169*  284   306   666=  674   733   743   743   744   748   749   761   762   763   773 
              786   798   799   809   809   810   817   817   818   830   846   846   851   921=  940 
              941   956   957   963   966  1028= 1035  1046= 1055  1056  1057  1067  1090= 1097  1101 
             1102  1103  1107  1129=
act_user_field                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              171*  665=  673   677   856 
address       223*  225=  247   264   671   926 
adr           223*  226   227   228   229 
aic_buf_type 1094 
aic_id       1097 
al            942   948  1058  1064 
\f

tsdtelst    81.06.15.   15.39.                                                    page    43

alarm_mess    708=  708   839=  839   942   946=  946   948  1058  1062= 1062  1064 
al_env_version                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              514 
as            386:  436:  478:  550:  659:  697:  739:  756:  803:  836:  932:  934:  977:  986: 1050:
             1051: 1094: 1095: 1133: 1134: 1187: 1204:
boolean       147*  270*  276*
buf           386:  388   395   550:  551   659:  662   665   666   667   706   707   708   740   786 
              798   806   838   839  1187: 1194  1204: 1207  1208  1209  1210 
byte          135*  139*  140*  146*  173*  174*  175*  184*  233*  253*  320*  342*  412* 1189  1192 
calls         165*  258   283   284   284   298   305   306   307   327   328   329   338   534   535 
             1136  1140  1141  1142  1205 
calls_e       143*  165* 1204 
call_buf      479   703   704   705   706   707   708   939   942   945   946   948 
call_id       702=
call_index    319*  327   328   329   333   338 
call_resources                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              269*  278=  310=  687 
call_to_stream                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              318* 1097 
car_buf_type  478   932 
car_ref       132*  241   352   354   355   956   957=
clearing      362   748 
clear_buf_type                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              977 
clear_stream_table                                               <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              341*  773  1005 
control       707=  707   740=  740   765   766   786   798   806=  806   838=  838   945=  945   995 
              996  1061= 1061  1107  1145  1146 
count        1031 
cur_facility  182*  454 
d            1190: 1199=
data          766=  786   798   996= 1107= 1146=
di           1192: 1202=
diag_code     140*  248   361=  525=  798=  978  1202 
dst           136*  145*  247   264   284   307=  328=  328   359=  451=  523=  761=  761   938=  963=
              991=  991  1055= 1055  1101= 1101  1140= 1140  1199  1207= 1207 
dst_stream    135*  146*  246   265   284   306=  327=  327   358=  522=  763   786=  993  1057  1103 
             1142  1198  1208= 1208 
dtesimulator    2*
dte_adr        13*  392   401   443   453   479   551   704=
dte_adr_l     703=
dte_aic       778:  783  1081: 1103 
dte_buf       478:  479   739:  740   803:  806   836:  838   839   841   842   842   932:  939   942 
              945   946   948   977:  978  1050: 1058  1061  1062  1064  1094: 1097  1133: 1136  1140 
             1141  1142  1146 
\f

tsdtelst    81.06.15.   15.39.                                                    page    44

dte_car       679:  692   912:  941 
dte_clr       723:  728   763   969:  993   995 
dte_ok_result                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              695   834   960  1009  1077  1115  1153  1162  1170  1177 
dte_rdata    1024:
dte_rejic     790:  795   904  1120: 1142  1145 
dte_remo_clear                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              737   805   815 
dte_res      1158:
dte_ric       904  1013:
dte_sdata     823:  828  1041: 1057 
dte_sdata_data                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              739   803   836  1050 
dte_sem         6*  563 
dte_stat     1166:
dte_stream_err                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              906 
dte_user_clear                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              354   765 
dummy_route   212 
dyn_test     1183 
d_s          1189: 1198=
external_addr                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              491*  500=  502=  704 
ext_addr      229   392   443   485=  551 
ext_no        392=  443=  551=
ext_pax_addr  493*
f            1191: 1200=
facility      137*  148*  329=  329   360=  454=  524=  535=  706=  706   762=  762   939=  939   940=
              940   992=  992  1056= 1056  1102= 1102  1141= 1141  1200  1210= 1210 
facility_l    705=
false         276*  310   338   534  1136  1222 
first         390=  441=  442   455   700=  841=  842 
format        397=  448=
found         276*  282   285=  291   297   301=  303 
free          526   749 
from_link     384   434   548   566 
get_transmit_buf                                                 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              366*  752   920   982  1045  1089  1128 
i             155*  233*  238   240   242   244   253*  258   261   263   275*  282   283   284   284 
              287=  287   289=  289   295=  297   298   299=  299   305   306   307   312   315   417*
              420=  475*  479   480   480=  480   484   488   518=  519   532=  534   535 
incname       513 
indx          342*  348   350 
\f

tsdtelst    81.06.15.   15.39.                                                    page    45

integer       133*  137*  148*  155*  169*  171*  172*  177*  179*  182*  223*  270*  275*  417*  475*
             1188  1191 
internal_addr                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              492*  499   500   505 
int_pax_addr   13*  136*  145*  170*  223*  359   451   492*  523  1190 
in_ref        159*  478:  541   543   545   546   547   548   550:  553   563   566   571   574   580 
              596   599   606   607   614   615   624   631   650   659:  864   865   888   889   890 
              893   898   903   903   904   904   906   907   910   921   932:  957   960   961   977:
              991   992   993  1005  1009  1010  1020  1026  1028  1029  1035  1038  1046  1050: 1077 
             1078  1090  1094: 1115  1116  1129  1133: 1153  1154  1161  1162  1163  1169  1170  1171 
             1176  1177  1178  1183  1185  1186  1187: 1195  1204: 1205  1213  1218  1219 
last          391=  442=  701=  842=  947=  947  1063= 1063 
lock          386:  436:  478:  550:  659:  697:  739:  756:  803:  836:  932:  934:  977:  986: 1050:
             1051: 1094: 1095: 1133: 1134: 1187: 1204:
l_control     391   402   701   842 
l_dte_adr     703 
l_facilities  705 
l_listen      701   842 
l_phead1      391   402   442 
l_rec_q       133*  245   521=  743=  743   809=  809   817=  817   846=  846  1026  1031  1033  1197 
l_rut_prefix  390   391   402   441 
l_r_q        1188: 1197=
max_calls      56*  165*  282   297   532 
max_l_data    442   455 
max_stream_no                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
               56*  167*  518   903 
mes_ref       200*  210   212   215   216   217 
min_stream_no                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
               56*  167*  518   903 
netc_sem        8*  355   711   742   808   816   847   907   961  1010  1078  1116  1154  1163  1171 
             1178 
net_addr      226   482=
node_addr     228   484=  499   500   505 
no_of_bufs    412*  420 
no_of_by      942   948  1058  1064 
no_rec_bufs   179*  426=  426   429 
no_trm_bufs   177*  376=  376   379 
op_code       765=  995= 1145=
op_sem          3*  513 
org           401=  453=  667 
own           513 
p            1192: 1201=
packet_type   399=  450=
paxnet_config                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              479   500   502 
\f

tsdtelst    81.06.15.   15.39.                                                    page    46

pax_pool_sem    5*  216   372   422   541   599   607   615   624   650   893  1038  1213 
phead         395   446   662   665   666   667   706   759   936   989  1053  1099  1138 
priority      139*  398=  449=  527= 1201 
process         2*
rec           436:  437   439   446 
receive_queue                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              134*  733   744   799   810   818   830  1035 
ref           157*  367*  372   374   381   382   383   384   386:  418*  422   424   431   432   433 
              434   436:  460   682   684   695   697:  711   715   733   735   737   739:  742   744 
              799   801   803:  805   808   810   813   815   816   818   830   832   834   836:  847 
reference     132*  159*  200*  367*  418*
reg_addr      227   483=
rejic_buf_type                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1133 
rejic_diag   1146 
rejic_id     1136  1140  1141  1142 
release      1219 
ric           697:  698 
ric_buf_type  697 
ric_first_val                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              700   701 
ric_pool      163*  682   715  1020 
rut_buf       756:  757   934:  936   945   946   947   947   986:  987  1051: 1053  1061  1062  1063 
             1063  1095: 1099  1107  1134: 1138  1145  1146 
rut_buf_ref   158*  752   754   756:  768   920   929   934:  951   982   984   986:  998  1045  1048 
             1051: 1072  1089  1092  1095: 1110  1128  1131  1134: 1149 
rut_con       545   576:
rut_default   382   383   432   433   546   547   864 
rut_dir       627:
rut_dis       610:
rut_ext_err   590:  592 
rut_format_1  397   448 
rut_no_res    585:  587 
rut_ok        571   581:
rut_pack_type                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              399   450 
rut_prefix    388   439   455   947   947  1063  1063 
rut_prefix_type                                                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              550 
rut_prio_0    398   527 
rut_rec       431   456   653:
rut_rec_sem    11*  460   553   865 
rut_res       619:
rut_srdy      602:
\f

tsdtelst    81.06.15.   15.39.                                                    page    47

rut_stat      869:
rut_trm_sem     9*  768   951   998  1072  1110  1149 
rut_trp       381   627:
rut_trp_pdata                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              386   436   659   756   934   986  1051  1095  1134 
s             216   599   607   615   624   650   893  1038  1213 
sdata_first_val                                                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              841 
semaphore     134*  163*
sempointer      3*   11*  201*
sem_ptr       201*  210   217 
send_rpacket_bufs                                                <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              411*  559 
sensesem      372   422   541   682   733   744   799   810   818   830 
signal        216   355   460   553   599   607   615   624   650   711   715   742   768   808   816 
              847   865   893   907   951   961   998  1010  1020  1035  1038  1072  1078  1110  1116 
             1149  1154  1163  1171  1178  1213 
state         138*  362=  400=  452=  526=  662   748   749=
state_type    138*
streams       167*  238   325   350   519   733   743   743   744   748   749   761   762   763   786 
              798   799   809   809   810   817   817   818   830   846   846   940   956   957   963 
              991   992   993  1026  1029  1035  1055  1056  1057  1101  1102  1103  1195 
stream_e      130*  167*
stream_index  320*  325 
testopen      513 
testout       215   240   242   244   245   246   247   248   261   263   264   265   315   333   379 
              408   429   464   488   505   514   556   583   587   588   592   593   596   606   614 
              623   631   657   664   671   673   674   692   716   720   728   771   783   795   828 
              851   856   873   880   888   889   890   917   926   954   974  1001  1018  1033  1067 
             1075  1086  1113  1125  1152  1161  1169  1176  1218 
top_of_data   402=  455=  942=  942  1058= 1058 
to_link       898 
true          278   285   301   305 
tst           184*  214   314   331   347   378   407   428   463   487   504   555   579   605   613 
              622   630   656   663   669   690   726   781   793   826   850   855   872   879   886 
              915   924   965   972  1016  1032  1066  1084  1123  1160  1168  1175  1185= 1217 
ts_pointer      6*
ts_wait       198*  563 
t_01           62*  215 
t_02           63*  240 
t_03           64*  242 
t_04           65*  244 
t_05           66*  245 
t_06           67*  246   265 
\f

tsdtelst    81.06.15.   15.39.                                                    page    48

t_07           68*  247   264 
t_08           69*  248 
t_09           70*  261 
t_10           71*  263 
t_11           73*  315 
t_12           74*  333 
t_13           75*  379 
t_14           76*  408   464   771   954  1001  1075  1113  1152 
t_15           77*  429 
t_16           78*  488 
t_17           79*  505 
t_18           80*  556 
t_19           81*
t_20           82*  587   592   596 
t_21           84*  588 
t_22           85*  593 
t_23           86*  606 
t_24           87*  614 
t_25           88*  623 
t_26           89*  631 
t_27           90*  657 
t_28           91*  664 
t_29           92*  671 
t_30           93*  673 
t_31           95*  674 
t_32           96*  692 
t_33           97*  716 
t_34           98*  720 
t_35           99*  728 
t_36          100*  783 
t_37          101*  795 
t_38          102*  828 
t_39          103*  851 
t_40          105*  856 
t_41          106*  873 
t_42          107*  880 
t_43          108*  888 
t_44          109*  889 
t_45          110*  890 
t_46          111*  917 
t_47          112*  926 
t_48          113*  974 
t_49          114* 1018 
t_50          116* 1033 
\f

tsdtelst    81.06.15.   15.39.                                                    page    49

t_51          117* 1067 
t_52          118* 1086 
t_53          119* 1125 
t_54          120* 1161 
t_55          121* 1169 
t_56          122* 1176 
t_57          123* 1218 
u1            215   381=  431=  545=  574   888   904   904   910  1161  1169  1176  1195  1205 
u2            354=  382=  432=  546=  571   580   596   606   614   631   695=  737=  805=  815=  834=
              864=  889   906=  960= 1009= 1077= 1115= 1153= 1162= 1170= 1177= 1186 
u3            212   383=  433=  547=  890   903   903   921   991   992   993  1005  1026  1028  1029 
             1046  1090  1129  1185 
u4            384=  434=  548=  566   898  1183  1218 
used          147*  260   283   298   305=  338=  534= 1136= 1209= 1209 
user_field    456=  665   666   763=  941=  993= 1057= 1103= 1142=
version        17*  514 
w             372   422   541   563 
wait          210   217 
windowsize   1026 
write_call    252*
write_stream  232*  348   966 
z             161*  215   240   242   244   245   246   247   248   261   263   264   265   315   333 
              379   408   429   464   488   505   513   514   556   583   587   588   592   593   596 
              606   614   623   631   657   664   671   673   674   692   716   720   728   771   783 
              795   828   851   856   873   880   888   889   890   917   926   954   974  1001  1018 
             1033  1067  1075  1086  1113  1125  1152  1161  1169  1176  1218 
zone          161*
\f

tsdtelst    81.06.15.   15.39.                                                    page    50

AND                6
ARRAY              2
BEGIN            113
CASE               5
CONST              2
DIV                1
DO                54
ELSE              26
END              121
FOR                3
FUNCTION           3
IF                72
MOD                1
NIL               17
NOT               18
OF                 7
OR                 1
OTHERWISE          4
PROCEDURE          8
RECORD             3
REPEAT             1
THEN              72
TO                 3
TYPE               1
UNTIL              1
VAR                9
WHILE              6
WITH              23
 ts dte sim
81.06.15.      15.40.                         pascal80     version 1981.04.01


   name        headline beginline endline  appetite(words) 

   ts_wait        208       210     220  :      18            
   address        224       229     230  :       5            
   write_stream   237       238     250  :      32            
   write_call     257       258     267  :      32            
   call_resourc   275       278     316  :      19            
   call_to_stre   324       325     339  :      19            
   clear_stream   346       348     364  :      14            
   get_transmit   371       372     409  :      21            
   send_rpacket   417       420     466  :      29            
   act_destinat   475       478     489  :      20            
   external_add   497       500     506  :      17            
   dtesimulator    17       513    1224  :     418            

 code: 9 . 512  = 9728 bytes


end of PASCAL80 compilation 

end
blocksread = 53
▶EOF◀