DataMuseum.dk

Presents historical artifacts from the history of:

RC3500

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

See our Wiki for more about RC3500

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦7ed31abe9⟧ TextFileVerbose

    Length: 158208 (0x26a00)
    Types: TextFileVerbose
    Names: »tsnetlst«

Derivation

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

TextFileVerbose

\f

tsnetlst    81.06.15.   18.39.                                                    page     1

   10    1          
   20    2        PROCESS netconnector(
   30    3          global_timeout : byte;
   40    4          op_sem : sempointer;       (* operator semaphore *)
   50    5          VAR
   60    6          pax_pool_sem,
   70    7          main_sem : !ts_pointer ;   (* main semaphore     *)
   80    8          local_sems
   90    9          : netc_loc_sems;
  100   10          VAR
  110   11          com_pool_sem,
  120   12          timeout_sem,
  130   13          dte_sem :  !sempointer     (* dte semaphore      *)
  140   14          );
  150   15          
  160   16        CONST
  170   17          version = "vers  1.20 /";
  180   18            (*      --------------*)
  190   19          
  200   20            (*=================================================================
  210   21            "                                                                 "
  220   22            "  net connector                                                  "
  230   23            "                                                                 "
  240   24            "  establishes a connection between the alarmapplikation and      "
  250   25            "  a x.25 dte module                                              "
  260   26            "                                                                 "
  270   27            "  the module can receive three kinds of messages :               "
  280   28            "                                                                 "
  290   29            "  - messages to net connector                                    "
  300   30            "  - messages to node supervisor                                  "
  310   31            "  - messages to paxnet                                          "
  320   32            "                                                                "
  330   33            ==================================================================*)
  340   34           
\f

tsnetlst    81.06.15.   18.39.                                                    page     2

 1010   35            (* introduction to netconnector
 1020   36            
 1030   37            abbreviation list :
 1040   38            -----------------
 1050   39            
 1060   40            sem              semaphore
 1070   41            
 1080   42            
 1090   43            
 1100   44            pseudo code version 81.15.01 :
 1110   45            ----------------------------
 1120   46            
 1130   47            
 1140   48            
 1150   49            *)
 1160   50          
 1170   51            (*--- udest}ender :
 1180   52            
 1190   53            udtagelse fra generel ventek|
 1200   54            reset af str|m
 1210   55            clear str|m
 1220   56            behandling af ikke-ok resultater
 1230   57            
 1240   58            ---- *)
 1250   59           
\f

tsnetlst    81.06.15.   18.39.                                                    page     3

 2010   60            (*----------------------------------------------------------------
 2020   61            .   constants                                                    .
 2030   62            ------------------------------------------------------------------*)
 2040   63        CONST
 2050   64          
 2060   65          
 2070   66          ric_delay_1 = 0;       (* delay used for receiving on incomming call *)
 2080   67          
 2090   68          ric_delay_2 = 0;       (* delay used for ric-buffers *)
 2100   69            (*                        delay = ric-delay-1 * (2 ** ric-delay-2) msec *)
 2110   70          all_ric_bufs = 2;        (* total number of ric-buffers *)
 2120   71          
 2130   72          dc_index = max_locals +2;
 2140   73          
 2150   74          max_pax_table = dc_index + max_globals;
 2160   75          
 2170   76          netc_routes = (. netc_route, netc_route1, netc_route2 .);
 2180   77          first_codes = (. #h30, #h40, #h41, #hc0, #hc1 .);
 2190   78           
\f

tsnetlst    81.06.15.   18.39.                                                    page     4

 3010   79        TYPE
 3020   80          mess_10_12_type
 3030   81          = RECORD
 3040   82            !  a : alarmlabel;
 3050   83            !  pax_index : integer;
 3060   84            !  pax_entry : paxnet_e;
 3070   85            END;
 3080   86          
 3090   87          release_cause = (accept, reject);
 3100   88          
 3110   89          stat_type = ARRAY (1..16) OF integer;
 3120   90           
\f

tsnetlst    81.06.15.   18.39.                                                    page     5

 4010   91            (*-------------------------------------------------------------------
 4020   92            .   variables section                                               .
 4030   93            ----------------------------------------------------------------------*)
 4040   94        VAR
 4050   95          act_pax_index : integer;
 4060   96          act_stream_index : byte;
 4070   97          act_pax_addr : ext_pax_addr;
 4080   98          
 4090   99          local_macro,
 4100  100          alarm_macro : macroaddr;
 4110  101          alarm_op_code : byte;
 4120  102          
 4130  103          no_address : boolean := true;
 4140  104          pax_table_top,
 4150  105          local_mac_top : byte;
 4160  106          
 4170  107          i,j,k : integer;
 4180  108          z : zone;
 4190  109          
 4200  110          act_facilities : integer := 0;
 4210  111        CONST
 4220  112          
 4230  113          loca_packets = 1;
 4240  114          lost_packets = 2;
 4250  115          nons_packets = 3;
 4260  116          send_packets = 4;
 4270  117          reci_packets = 5;
 4280  118          retr_packets = 6;
 4290  119          call_packets = 7;
 4300  120          rica_packets = 8;
 4310  121          netc_packets = 9;
 4320  122          copy_packets = 10;
 4330  123          aicc_packets = 11;
 4340  124          reji_packets = 12;
 4350  125          
 4360  126          no_pax_bufs = 13;
 4370  127          no_com_bufs = 14;
 4380  128          ill_adr_bufs= 15;
 4390  129          dubl_packets = 16;
 4400  130          
 4410  131        VAR
 4420  132          stat : stat_type := stat_type(16 *** 0);
 4430  133          
 4440  134          tst : integer := 255;
 4450  135          
 4460  136            (*
\f

tsnetlst    81.06.15.   18.39.                                                    page     6

 4470  137            2 - protocol values
 4480  138            4 - actions on each stream
 4490  139            8 - results from dte
 4500  140            16 - write checkpoints
 4510  141            32 - write table contents
 4520  142            64 - write procedurecalls
 4530  143            ----*)
 4540  144           
\f

tsnetlst    81.06.15.   18.39.                                                    page     7

 5010  145            (*---------------------------------------------------------------
 5020  146            .   pools                                                       .
 5030  147            -----------------------------------------------------------------*)
 5040  148        VAR
 5050  149          
 5060  150          timer_pool  : pool 1;
 5070  151          
 5080  152            (*---------------------------------------------------------------
 5090  153            .   references                                                  .
 5100  154            -----------------------------------------------------------------*)
 5110  155          
 5120  156          t_ref,
 5130  157          nil_ref,
 5140  158          ref,
 5150  159          in_ref              (* input reference *)
 5160  160          : reference;
 5170  161          
 5180  162            (*--------------------------------------------------------------
 5190  163            .   internal semaphores                                        .
 5200  164            -----------------------------------------------------------------*)
 5210  165          
 5220  166          
 5230  167           
\f

tsnetlst    81.06.15.   18.39.                                                    page     8

 6010  168            (*----------------------------------------------------------------
 6020  169            .   tables section                                               .
 6030  170            ------------------------------------------------------------------*)
 6040  171        VAR
 6050  172          
 6060  173          pax_table         (* is used for routing alarmnetmessages *)
 6070  174          : ARRAY(1..max_pax_table+1) OF paxnet_e;
 6080  175          
 6090  176          stream_states
 6100  177          : ARRAY (min_stream_no-1..max_stream_no) OF stream_s_e;
 6110  178          
 6120  179           
\f

tsnetlst    81.06.15.   18.39.                                                    page     9

 7010  180            (*------------------------------------------------------------------
 7020  181            .  externals
 7030  182            --------------------------------------------------------------------*)
 7040  183          
 7050  184          PROCEDURE reject_message (
 7060  185            VAR
 7070  186            msg  : reference;
 7080  187            VAR
 7090  188            rec_sem : !sempointer;
 7100  189            route : byte;
 7110  190            sender_macro : macroaddr;
 7120  191            sender_micro : integer;
 7130  192            result_code : result_range
 7140  193            );
 7150  194          EXTERNAL;
 7160  195           
\f

tsnetlst    81.06.15.   18.39.                                                    page    10

 8010  196            (*----------------------------------------------------------
 8020  197            -   forwards                                               -
 8030  198            ------------------------------------------------------------*)
 8040  199          
 8050  200          PROCEDURE send_aic_buf(
 8060  201            stream,
 8070  202            call_id,
 8080  203            c_data
 8090  204            : byte );
 8100  205          FORWARD;
 8110  206          
 8120  207          PROCEDURE send_rejic_buf (
 8130  208            call_id,
 8140  209            diag_code : byte );
 8150  210          FORWARD;
 8160  211          
 8170  212          FUNCTION local_transmitter (
 8180  213            VAR
 8190  214            ref : reference;
 8200  215            local_macro : macroaddr): integer;
 8210  216          FORWARD;
 8220  217          
 8230  218          PROCEDURE send_rdata_bufs (
 8240  219            no_of_bufs,
 8250  220            stream : byte );
 8260  221          FORWARD;
 8270  222          
 8280  223          PROCEDURE send_sdata_buf (
 8290  224            VAR iref : reference;
 8300  225            stream_no : byte;
 8310  226            opr_code : byte ;
 8320  227            c_data : byte );
 8330  228          FORWARD;
 8340  229          
 8350  230          PROCEDURE send_to_stream (
 8360  231            VAR
 8370  232            ref : reference;
 8380  233            stream_index : integer
 8390  234            ); FORWARD;
 8400  235          
 8410  236          PROCEDURE release_uo_data (
 8420  237            cause : release_cause;
 8430  238            stream : byte );
 8440  239          FORWARD;
 8450  240          
 8460  241          PROCEDURE send_to_wait (
\f

tsnetlst    81.06.15.   18.39.                                                    page    11

 8470  242            VAR ref : reference;
 8480  243            pax_index : byte );
 8490  244          FORWARD;
 8500  245           
\f

tsnetlst    81.06.15.   18.39.                                                    page    12

 9010  246            (*===============================================================
 9020  247            "   procedures  section                                          "
 9030  248            ==================================================================*)
 9040  249          
 9050  250          PROCEDURE write_create_pars;
 9060  251              (*-------------------------------------------------------
 9070  252              .  writes all the create parameters
 9080  253              ---------------------------------------------------------*)
 9090  254          BEGIN
 9100  255    1     ! testout(z,"global-timou", global_timeout);
 9110  256    2     ! testout(z,"pax-pool    ", pax_pool);
 9120  257    3     ! testout(z,"common pool ", com_pool);
 9130  258    4     ! testout(z,"main sem no ", netc_sem_no);
 9140  259    5     ! testout(z,"local supsem", tssup_sem_no);
 9150  260    6     ! testout(z,"local ncsem ", nc_sem_no);
 9160  261    7     ! testout(z,"timeoutsemno", timeout_sem_no);
 9170  262    8     ! testout(z,"dte sem no  ", dte_sem_no);
 9180  263    9     END;
 9190  264          
 9200  265           
\f

tsnetlst    81.06.15.   18.39.                                                    page    13

10010  266          PROCEDURE write_paxnet_entry ( i:integer);
10020  267              (*---------------------------------------------------------
10030  268              .  writes the content of paxnet entry number i
10040  269              .  used for testpurposes
10050  270              -----------------------------------------------------------*)
10060  271          BEGIN
10070  272    1     ! WITH pax_table(i) DO
10080  273    2     !   BEGIN
10090  274    3     !   ! testout(z,"pax-table-no", i);
10100  275    4     !   ! testout(z,"al_mac_dc   ", al_mac_addr.dc_addr);
10110  276    5     !   ! testout(z,"al_mac_nc   ", al_mac_addr.nc_addr);
10120  277    6     !   ! testout(z,"al_mac_ts   ", al_mac_addr.ts_addr);
10130  278    7     !   ! testout(z,"ext_pax_net ", pax_addr(3));
10140  279    8     !   ! testout(z,"ext_pax_reg ", pax_addr(6));
10150  280    9     !   ! testout(z,"ext_pax_node", pax_addr(8)*10+pax_addr(9));
10160  281   10     !   ! testout(z,"stream-no   ", stream_no);
10170  282   11     !   ! testout(z,"max-retrans ", max_retrans);
10180  283   12     !   END;
10190  284   13     END;
10200  285           
\f

tsnetlst    81.06.15.   18.39.                                                    page    14

11010  286          PROCEDURE write_stream_state (i:integer);
11020  287              (*---------------------------------------------------------
11030  288              .  writes the content of stream-states(i)
11040  289              .  used for testpurposes
11050  290              -----------------------------------------------------------*)
11060  291          BEGIN
11070  292    1     ! WITH stream_states(i) DO
11080  293    2     !   BEGIN
11090  294    3     !   ! testout(z,"stream-stats", i);
11100  295    4     !   ! IF NOT nil( act_out) THEN
11110  296    5     !   !   testout(z,"not-nil-act ", 1)
11120  297    6     !   ! ELSE
11130  298    7     !   !   testout(z,"nil-act-out ", 0);
11140  299    8     !   ! CASE state OF
11150  300    9     !   ! ! free : testout(z,"s=free      ", l_f_q*100+l_s_q);
11160  301   10     !   ! ! calling : testout(z,"s=calling   ", l_f_q*100+l_s_q);
11170  302   11     !   ! ! sending : testout(z,"s=sending   ", l_f_q*100+l_s_q);
11180  303   12     !   ! ! receiving : testout(z,"s=receiving ", l_f_q*100+l_s_q);
11190  304   13     !   ! ! waiting : testout(z,"s=waiting   ", l_f_q*100+l_s_q);
11200  305   14     !   ! ! clearing : testout(z,"s=clearing  ", l_f_q*100+l_s_q);
11210  306   15     !   ! ! resetting : testout(z,"s=resetting ", l_f_q*100+l_s_q);
11220  307   16     !   ! END;
11230  308   17     !   ! testout(z,"timers-1   ", timers(1));
11240  309   18     !   END;
11250  310   19     END;
11260  311           
\f

tsnetlst    81.06.15.   18.39.                                                    page    15

12010  312          FUNCTION connec_to_addr (
12020  313            VAR stream_indx : byte ) : boolean;
12030  314              (*--------------------------------------------------------------
12040  315              .  checks if there is a stream active to act-pax-addr
12050  316              ----------------------------------------------------------------*)
12060  317          VAR i : byte := min_stream_no;
12070  318          BEGIN
12080  319    1     ! connec_to_addr := false;
12090  320    2     ! 
12100  321    3     ! stream_indx := min_stream_no -1;
12110  322    4     ! 
12120  323    5     ! WHILE i <= max_stream_no DO
12130  324    6     !   WITH stream_states(i) DO
12140  325    7     !     BEGIN
12150  326    8     !     ! IF (state <> free)
12160  327    9     !     !   AND ( act_pax_addr = pax_addr) THEN
12170  328   10     !     !   BEGIN
12180  329   11     !     !   ! connec_to_addr := true;
12190  330   12     !     !   ! stream_indx := i;
12200  331   13     !     !   ! i:= max_stream_no;
12210  332   14     !     !   END;
12220  333   15     !     ! i := i+1;
12230  334   16     !     END;
12240  335   17     ! 
12250  336   18     ! IF tst>64 THEN
12260  337   19     !   testout(z,"connec-to-ad", stream_indx);
12270  338   20     END;
12280  339           
\f

tsnetlst    81.06.15.   18.39.                                                    page    16

13010  340          PROCEDURE init_stream_states ;
13020  341              (*---------------------------------------------------------------
13030  342              .   initializes the stream_table                                .
13040  343              -----------------------------------------------------------------*)
13050  344          VAR
13060  345            i,j : integer;
13070  346            ref : reference;
13080  347            
13090  348          BEGIN
13100  349    1     ! FOR i := min_stream_no-1 TO max_stream_no DO
13110  350    2     !   WITH stream_states(i) DO
13120  351    3     !     BEGIN
13130  352    4     !     ! l_f_q := 0;
13140  353    5     !     ! l_s_q := 0;
13150  354    6     !     ! max_retrans := 0;
13160  355    7     !     ! retrans_count := 0;
13170  356    8     !     ! retrans_timo := stream_timeout;
13180  357    9     !     ! retrans_timer := retrans_timo;
13190  358   10     !     ! pax_addr := ext_pax_addr(14***0);
13200  359   11     !     ! v_s_inc := 0;
13210  360   12     !     ! v_s := 1;
13220  361   13     !     ! v_r_inc := 0;
13230  362   14     !     ! v_r := 0;
13240  363   15     !     ! 
13250  364   16     !     ! FOR j:= 1 TO max_queue DO
13260  365   17     !     !   timers( j ) := 0;
13270  366   18     !     ! 
13280  367   19     !     ! state := free;
13290  368   20     !     END
13300  369   21     END;
13310  370           
\f

tsnetlst    81.06.15.   18.39.                                                    page    17

14010  371          PROCEDURE update_stream_state (
14020  372            entry : byte;
14030  373            upd_kind : upd_kinds ;
14040  374            new_state : state_type );
14050  375              (*---------------------------------------------------
14060  376              .   updates the streamstates
14070  377              -----------------------------------------------------*)
14080  378          VAR
14090  379            ref : reference;
14100  380            
14110  381          BEGIN
14120  382    1     ! WITH stream_states(entry) DO
14130  383    2     !   BEGIN
14140  384    3     !   ! CASE upd_kind OF
14150  385    4     !   ! ! 
14160  386    5     !   ! ! inc_all :
14170  387    6     !   ! !   BEGIN
14180  388    7     !   ! !   ! state := new_state;
14190  389    8     !   ! !   ! IF alarm_op_code IN first_codes THEN
14200  390    9     !   ! !   !   BEGIN
14210  391   10     !   ! !   !   ! count(l_f_q);
14220  392   11     !   ! !   !   ! timers( l_f_q) := stream_timeout;
14230  393   12     !   ! !   !   END
14240  394   13     !   ! !   ! ELSE
14250  395   14     !   ! !   !   count( l_s_q);
14260  396   15     !   ! !   END;
14270  397   16     !   ! ! 
14280  398   17     !   ! ! inc_q :
14290  399   18     !   ! !   BEGIN
14300  400   19     !   ! !   ! IF alarm_op_code IN first_codes THEN
14310  401   20     !   ! !   !   BEGIN
14320  402   21     !   ! !   !   ! count( l_f_q);
14330  403   22     !   ! !   !   ! timers( l_f_q) := stream_timeout;
14340  404   23     !   ! !   !   END
14350  405   24     !   ! !   ! ELSE
14360  406   25     !   ! !   !   count(l_s_q);
14370  407   26     !   ! !   END;
14380  408   27     !   ! ! 
14390  409   28     !   ! ! dec_f_q :
14400  410   29     !   ! !   BEGIN
14410  411   30     !   ! !   ! l_f_q := l_f_q -1;
14420  412   31     !   ! !   ! FOR i := 1 TO l_f_q DO
14430  413   32     !   ! !   !   timers(i) := timers( i+1);
14440  414   33     !   ! !   END;
14450  415   34     !   ! ! 
14460  416   35     !   ! ! dec_s_q :
\f

tsnetlst    81.06.15.   18.39.                                                    page    18

14470  417   36     !   ! !   l_s_q := l_s_q -1;
14480  418   37     !   ! ! 
14490  419   38     !   ! ! new_stat :
14500  420   39     !   ! !   state := new_state;
14510  421   40     !   ! ! 
14520  422   41     !   ! END (* case *);
14530  423   42     !   ! IF tst>64 THEN
14540  424   43     !   !   write_stream_state( entry);
14550  425   44     !   END
14560  426   45     END;
14570  427           
\f

tsnetlst    81.06.15.   18.39.                                                    page    19

15010  428          PROCEDURE update_pax_table (
15020  429            i : integer;
15030  430            VAR a : alarmlabel;
15040  431            VAR new_pax_e : paxnet_e );
15050  432              (*------------------------------------------------------
15060  433              .  updates the pax-table with new-pax-e in respect to
15070  434              .  upd-code, and deleivers the result in res-code
15080  435              --------------------------------------------------------*)
15090  436          BEGIN
15100  437    1     ! IF (i>0) AND (i<=max_pax_table) THEN
15110  438    2     !   BEGIN
15120  439    3     !   ! 
15130  440    4     !   ! a.result := accepted;
15140  441    5     !   ! 
15150  442    6     !   ! IF i>=max_locals+1 THEN i:=i+1;
15160  443    7     !   !   (* because DC has no entry for searching *)
15170  444    8     !   ! 
15180  445    9     !   ! CASE a.update OF
15190  446   10     !   ! ! 
15200  447   11     !   ! ! read_code :    (*  read from pax-table  *)
15210  448   12     !   ! !   new_pax_e := pax_table(i);
15220  449   13     !   ! ! 
15230  450   14     !   ! !   <*---- deleted because OF rc.pgs.55 -------
15240  451   15     !   ! !   insert_code :   (*  insert entry in pax-table  *)
15250  452   16     !   ! !   (* entryes can only be inserted just below the top *)
15260  453   17     !   ! !   BEGIN
15270  454   18     !   ! !   IF ((i=local_mac_top-1) AND (new_pax_e.stream_no>0)) OR
15280  455   19     !   ! !   (( i=pax_table_top-1) AND (new_pax_e.stream_no=0)) THEN
15290  456   20     !   ! !   BEGIN
15300  457   21     !   ! !   pax_table(i) := new_pax_e;
15310  458   22     !   ! !   IF i = 1 THEN no_address := false;
15320  459   23     !   ! !   IF (i=local_mac_top-1) AND (local_mac_top<max_locals+1) THEN
15330  460   24     !   ! !   local_mac_top := local_mac_top +1
15340  461   25     !   ! !   ELSE
15350  462   26     !   ! !   IF (i=pax_table_top-1) AND (pax_table_top<max_pax_table) THEN
15360  463   27     !   ! !   pax_table_top := pax_table_top +1;
15370  464   28     !   ! !   END
15380  465   29     !   ! !   ELSE
15390  466   30     !   ! !   a.result := not_accepted;
15400  467   31     !   ! !   END;
15410  468   32     !   ! !   ----------------------------*>
15420  469   33     !   ! !  
\f

tsnetlst    81.06.15.   18.39.                                                    page    20

16010  470   34     !   ! ! insert_code :   (* insert entry in pax-table *)
16020  471   35     !   ! !   BEGIN
16030  472   36     !   ! !   !   (* modifying can be done anywhere in the table *)
16040  473   37     !   ! !   ! 
16050  474   38     !   ! !   ! pax_table(i) := new_pax_e;
16060  475   39     !   ! !   ! 
16070  476   40     !   ! !   ! IF i <= max_locals THEN
16080  477   41     !   ! !   !   IF i >= local_mac_top THEN
16090  478   42     !   ! !   !     local_mac_top := i+1
16100  479   43     !   ! !   !   ELSE
16110  480   44     !   ! !   !   ELSE
16120  481   45     !   ! !   !     IF i >= pax_table_top THEN
16130  482   46     !   ! !   !       pax_table_top := i+1;
16140  483   47     !   ! !   ! IF i=1 THEN no_address := false;
16150  484   48     !   ! !   END;
16160  485   49     !   ! ! 
16170  486   50     !   ! ! remove_code :   (*  remove entry in pax-table *)
16180  487   51     !   ! !     (* entryes has to be removed from the top *)
16190  488   52     !   ! !   BEGIN
16200  489   53     !   ! !   ! IF (i=local_mac_top-1) OR (i=pax_table_top-1) THEN
16210  490   54     !   ! !   !   BEGIN
16220  491   55     !   ! !   !   ! pax_table(i).al_mac_addr := nil_macro;
16230  492   56     !   ! !   !   ! IF i=1 THEN no_address := true;
16240  493   57     !   ! !   !   ! 
16250  494   58     !   ! !   !   ! IF i=local_mac_top-1 THEN
16260  495   59     !   ! !   !   !   local_mac_top := local_mac_top-1
16270  496   60     !   ! !   !   ! ELSE
16280  497   61     !   ! !   !   !   pax_table_top := pax_table_top -1;
16290  498   62     !   ! !   !   END
16300  499   63     !   ! !   ! ELSE
16310  500   64     !   ! !   !   a.result := not_accepted;
16320  501   65     !   ! !   END;
16330  502   66     !   ! ! OTHERWISE
16340  503   67     !   ! ! a.result := unknown_update
16350  504   68     !   ! END
16360  505   69     !   END
16370  506   70     ! ELSE
16380  507   71     !   a.result := no_room;
16390  508   72     ! 
16400  509   73     ! IF tst>64 THEN
16410  510   74     !   write_paxnet_entry(i);
16420  511   75     END;
16430  512           
\f

tsnetlst    81.06.15.   18.39.                                                    page    21

17010  513          PROCEDURE init_pax_table ;
17020  514              (*-----------------------------------------------------
17030  515              .  initializes the pax-table
17040  516              -------------------------------------------------------*)
17050  517          VAR
17060  518            i: integer;
17070  519          BEGIN
17080  520    1     ! 
17090  521    2     ! FOR i := 2 TO max_pax_table DO
17100  522    3     !   WITH pax_table(i) DO
17110  523    4     !     BEGIN
17120  524    5     !     ! al_mac_addr := nil_macro;
17130  525    6     !     ! stream_no := 1;
17140  526    7     !     ! max_retrans := 0;
17150  527    8     !     END;
17160  528    9     ! 
17170  529   10     ! WITH pax_table(1) DO
17180  530   11     !   BEGIN
17190  531   12     !   ! al_mac_addr := macroaddr(0,0,0);
17200  532   13     !   ! pax_addr := ext_pax_addr(13***0, netc_mic_addr);
17210  533   14     !   ! stream_no := 1;
17220  534   15     !   END;
17230  535   16     ! 
17240  536   17     ! WITH pax_table( dc_index) DO
17250  537   18     !   BEGIN
17260  538   19     !   ! al_mac_addr := dc_alarm_macro;
17270  539   20     !   ! pax_addr := paxnet_config(1);
17280  540   21     !   END;
17290  541   22     END;
17300  542          
17310  543           
\f

tsnetlst    81.06.15.   18.39.                                                    page    22

18010  544          PROCEDURE send_to_systimer (
18020  545            VAR
18030  546            ref : reference );
18040  547              (*-----------------------------------------------------
18050  548              .  sends a timerbuffer to systemtimer
18060  549              -------------------------------------------------------*)
18070  550          BEGIN
18080  551    1     ! ref^.u3 := 50;
18090  552    2     ! ref^.u4 := 7;
18100  553    3     ! 
18110  554    4     ! sendtimer( ref);
18120  555    5     END;
18130  556          
18140  557          FUNCTION free_stream : byte;
18150  558              (*---------------------------------------------------------------
18160  559              .   finds the first idle stream in the stream-states            .
18170  560              -----------------------------------------------------------------*)
18180  561          VAR
18190  562            i : integer;
18200  563            
18210  564          BEGIN
18220  565    1     ! i:= min_stream_no;
18230  566    2     ! 
18240  567    3     ! WHILE (stream_states(i).state <> free) AND (i<max_stream_no) DO
18250  568    4     !   i:= i+1;
18260  569    5     ! 
18270  570    6     ! IF stream_states(i).state = free THEN
18280  571    7     !   free_stream := i
18290  572    8     ! ELSE
18300  573    9     !   free_stream := min_stream_no -1;
18310  574   10     ! 
18320  575   11     ! IF tst>64 THEN
18330  576   12     !   testout(z,"free-stream ", i);
18340  577   13     END;
18350  578          
18360  579           
\f

tsnetlst    81.06.15.   18.39.                                                    page    23

19010  580          PROCEDURE start_new_inc(
19020  581            stream : byte );
19030  582              (*-----------------------------------------------
19040  583              . starts a new incarnation og messagenumbers
19050  584              -------------------------------------------------*)
19060  585          BEGIN
19070  586    1     ! WITH stream_states( stream) DO
19080  587    2     !   BEGIN
19090  588    3     !   ! v_s_inc := (v_s_inc +1) MOD 256;
19100  589    4     !   ! v_s := 1;
19110  590    5     !   ! v_r_inc := (v_r_inc +1) MOD 256;
19120  591    6     !   ! v_r := 0;
19130  592    7     !   END;
19140  593    8     ! 
19150  594    9     ! IF tst>64 THEN
19160  595   10     !   testout(z,"start-new-in", stream);
19170  596   11     END;
19180  597           
\f

tsnetlst    81.06.15.   18.39.                                                    page    24

20010  598          PROCEDURE set_retrans (
20020  599            stream : byte );
20030  600              (*--------------------------------------------------
20040  601              . sets  max-retrans  retrans-count  retrans-timo
20050  602              .  and  retrans-timer
20060  603              ----------------------------------------------------*)
20070  604          BEGIN
20080  605    1     ! WITH stream_states( stream) DO
20090  606    2     !   BEGIN
20100  607    3     !   ! max_retrans := pax_table( act_out^.u1).max_retrans;
20110  608    4     !   ! retrans_count := 0;
20120  609    5     !   ! retrans_timo := stream_timeout;
20130  610    6     !   ! retrans_timer := retrans_timo;
20140  611    7     !   END;
20150  612    8     END;
20160  613          
20170  614          PROCEDURE set_control (
20180  615            stream : byte;
20190  616            opr : byte;
20200  617            VAR call_field : call_field_type );
20210  618              (*-------------------------------------------------
20220  619              .  sets control-field in call-field
20230  620              ---------------------------------------------------*)
20240  621          BEGIN
20250  622    1     ! WITH call_field.control DO
20260  623    2     !   WITH stream_states( stream) DO
20270  624    3     !     BEGIN
20280  625    4     !     ! op_code := opr;
20290  626    5     !     ! data := 0;
20300  627    6     !     ! n_s_inc := v_s_inc;
20310  628    7     !     ! n_s := v_s;
20320  629    8     !     ! n_r_inc := v_r_inc;
20330  630    9     !     ! n_r := v_r;
20340  631   10     !     ! 
20350  632   11     !     ! IF tst>64 THEN
20360  633   12     !     !   testout(z,"set-control ", stream);
20370  634   13     !     END
20380  635   14     END;
20390  636           
\f

tsnetlst    81.06.15.   18.39.                                                    page    25

21010  637          PROCEDURE make_a_call (
21020  638            stream_no : byte );
21030  639              (*-------------------------------------------------------
21040  640              .   makes a call request at dte
21050  641              ---------------------------------------------------------*)
21060  642          VAR
21070  643            ref : reference;
21080  644          BEGIN
21090  645    1     ! count( stat( call_packets));
21100  646    2     ! 
21110  647    3     ! sensesem( ref, pax_pool_sem.w^);
21120  648    4     ! 
21130  649    5     ! IF NOT nil( ref) THEN
21140  650    6     !   BEGIN
21150  651    7     !   ! 
21160  652    8     !   ! ref^.u1 := dte_car;
21170  653    9     !   ! ref^.u2 := dte_default;
21180  654   10     !   ! ref^.u3 := stream_no;
21190  655   11     !   ! ref^.u4 := to_link;
21200  656   12     !   ! 
21210  657   13     !   ! LOCK ref AS buf : car_buf_type DO
21220  658   14     !   !   WITH buf DO
21230  659   15     !   !     BEGIN
21240  660   16     !   !     ! first := ric_first_val;
21250  661   17     !   !     ! 
21260  662   18     !   !     ! q_bit := false;
21270  663   19     !   !     ! 
21280  664   20     !   !     ! set_control( stream_no, dte_car, call_buf);
21290  665   21     !   !     ! 
21300  666   22     !   !     ! WITH call_buf DO
21310  667   23     !   !     !   BEGIN
21320  668   24     !   !     !   ! dte_adr_l := l_dte_adr;
21330  669   25     !   !     !   ! dte_adr := act_pax_addr;
21340  670   26     !   !     !   ! facility_l := l_facilities;
21350  671   27     !   !     !   ! facility := act_facilities;
21360  672   28     !   !     !   ! 
21370  673   29     !   !     !   ! LOCK stream_states( stream_no).act_out AS abuf : max_alarm_mess DO
21380  674   30     !   !     !   !   BEGIN
21390  675   31     !   !     !   !   ! alarm_mess := abuf;
21400  676   32     !   !     !   !   ! last := ric_first_val + l_control + abuf.al.no_of_by -1+2;
21410  677   33     !   !     !   !   END;
21420  678   34     !   !     !   END
21430  679   35     !   !     END;
21440  680   36     !   ! signal( ref, dte_sem^);
21450  681   37     !   ! 
21460  682   38     !   ! IF tst>64 THEN
\f

tsnetlst    81.06.15.   18.39.                                                    page    26

21470  683   39     !   !   testout(z,"make-a-call ", stream_no);
21480  684   40     !   END
21490  685   41     ! ELSE
21500  686   42     !   BEGIN
21510  687   43     !   ! IF tst>4 THEN
21520  688   44     !   !   testout(z,"no car buf  ",0);
21530  689   45     !   ! 
21540  690   46     !   ! count( stat( no_pax_bufs));
21550  691   47     !   END;
21560  692   48     END;
21570  693           
\f

tsnetlst    81.06.15.   18.39.                                                    page    27

22010  694          PROCEDURE start_stream (
22020  695            VAR ref : reference;
22030  696            stream_no,
22040  697            pax_index : byte );
22050  698              (*--------------------------------------------------------
22060  699              -   makes a stream ready for use                         -
22070  700              ----------------------------------------------------------*)
22080  701          BEGIN
22090  702    1     ! stream_states( stream_no).pax_addr := pax_table( pax_index).pax_addr;
22100  703    2     ! 
22110  704    3     ! ref^.u1 := pax_index;
22120  705    4     ! ref :=: stream_states( stream_no).act_out;
22130  706    5     ! 
22140  707    6     ! update_stream_state( stream_no, new_stat, calling);
22150  708    7     ! act_pax_addr := pax_table( pax_index).pax_addr;
22160  709    8     ! start_new_inc( stream_no);
22170  710    9     ! send_rdata_bufs( windowsize, stream_no);
22180  711   10     ! make_a_call( stream_no);
22190  712   11     ! 
22200  713   12     ! set_retrans( stream_no);
22210  714   13     ! 
22220  715   14     ! IF tst>64 THEN
22230  716   15     !   testout(z,"start-stream", stream_no);
22240  717   16     END;
22250  718           
\f

tsnetlst    81.06.15.   18.39.                                                    page    28

23010  719          FUNCTION copy_data (
23020  720            amess : max_alarm_mess;
23030  721            VAR user_ref : reference ) : byte;
23040  722              (*--------------------------------------------------------
23050  723              .  copies an alarmmess into a buffer from common pool
23060  724              ----------------------------------------------------------*)
23070  725          BEGIN
23080  726    1     ! sensesem( user_ref, com_pool_sem^);
23090  727    2     ! 
23100  728    3     ! IF NOT nil( user_ref) THEN
23110  729    4     !   BEGIN
23120  730    5     !   ! user_ref^.u3 := netc_route;
23130  731    6     !   ! LOCK user_ref AS abuf : max_alarm_mess DO
23140  732    7     !   !   BEGIN
23150  733    8     !   !   ! abuf := amess;
23160  734    9     !   !   ! user_ref^.u4 := amess.al.op_code;
23170  735   10     !   !   ! IF tst>64 THEN
23180  736   11     !   !   !   testout(z,"copy data   ", amess.al.no_of_by);
23190  737   12     !   !   END;
23200  738   13     !   ! 
23210  739   14     !   ! count( stat( copy_packets));
23220  740   15     !   ! 
23230  741   16     !   ! copy_data := data_received;
23240  742   17     !   END
23250  743   18     ! ELSE
23260  744   19     !   BEGIN
23270  745   20     !   ! copy_data := data_not_received;
23280  746   21     !   ! count( stat( no_com_bufs));
23290  747   22     !   ! IF tst>64 THEN
23300  748   23     !   !   testout(z,"copy data   ", 0);
23310  749   24     !   END;
23320  750   25     ! 
23330  751   26     END;
23340  752          
23350  753           
\f

tsnetlst    81.06.15.   18.39.                                                    page    29

24010  754          PROCEDURE handle_10_12_mess (
24020  755            VAR in_ref : reference );
24030  756              (*---------------------------------------------------------
24040  757              .  handles any message with netconnector as receiver
24050  758              -----------------------------------------------------------*)
24060  759          BEGIN
24070  760    1     ! count( stat( netc_packets));
24080  761    2     ! 
24090  762    3     ! IF in_ref^.u4 = #hac THEN
24100  763    4     !   BEGIN
24110  764    5     !   !   (*-- update paxnettable --*)
24120  765    6     !   ! 
24130  766    7     !   ! LOCK in_ref AS buf : mess_10_12_type DO
24140  767    8     !   !   BEGIN
24150  768    9     !   !   ! 
24160  769   10     !   !   ! update_pax_table( buf.pax_index, buf.a, buf.pax_entry);
24170  770   11     !   !   ! 
24180  771   12     !   !   ! buf.a.op_code := #had;
24190  772   13     !   !   ! local_macro := buf.a.rec.macro;
24200  773   14     !   !   ! buf.a.rec := buf.a.send;
24210  774   15     !   !   ! buf.a.send.macro := local_macro;
24220  775   16     !   !   ! buf.a.send.micro := netc_mic_addr;
24230  776   17     !   !   ! 
24240  777   18     !   !   ! in_ref^.u4 := #had;
24250  778   19     !   !   END;
24260  779   20     !   ! 
24270  780   21     !   ! in_ref^.u3 := netc_route2;
24280  781   22     !   ! 
24290  782   23     !   ! act_pax_index := local_transmitter( in_ref, local_macro);
24300  783   24     !   END
24310  784   25     !    
\f

tsnetlst    81.06.15.   18.39.                                                    page    30

25010  785   26     ! ELSE
25020  786   27     !     (*-- message <> 10.12 received with netcon as receiver --*)
25030  787   28     !   BEGIN
25040  788   29     !   ! count( stat( ill_adr_bufs));
25050  789   30     !   ! 
25060  790   31     !   ! IF in_ref^.u4 = #h12 THEN
25070  791   32     !   !   return( in_ref)
25080  792   33     !   ! ELSE
25090  793   34     !   !   BEGIN
25100  794   35     !   !   ! LOCK in_ref AS buf:alarmlabel DO
25110  795   36     !   !   !   local_macro := buf.rec.macro;
25120  796   37     !   !   ! 
25130  797   38     !   !   ! k := local_transmitter( nil_ref, local_macro);
25140  798   39     !   !   ! 
25150  799   40     !   !   ! reject_message
25160  800   41     !   !   ! ( in_ref, local_sems(k), netc_route1, local_macro,
25170  801   42     !   !   ! netc_mic_addr, unknown_opcode);
25180  802   43     !   !   ! 
25190  803   44     !   !   ! 
25200  804   45     !   !   ! IF tst>4 THEN
25210  805   46     !   !   !   testout(z,"address err ", i)
25220  806   47     !   !   END;
25230  807   48     !   END;
25240  808   49     END;
25250  809           
\f

tsnetlst    81.06.15.   18.39.                                                    page    31

26010  810          PROCEDURE handle_node_test (
26020  811            VAR alabel : alarmlabel );
26030  812              (*---------------------------------------------------------------
26040  813              .  updates pax-table with act-pax-addr when node-test comes
26050  814              .  and netc has no address
26060  815              -----------------------------------------------------------------*)
26070  816          BEGIN
26080  817    1     ! IF alabel.op_code = #hc0 THEN
26090  818    2     !   BEGIN
26100  819    3     !   ! pax_table(1).al_mac_addr := alabel.rec.macro;
26110  820    4     !   ! no_address := false;
26120  821    5     !   ! 
26130  822    6     !   ! IF alabel.send.macro.nc_addr = 0 THEN
26140  823    7     !   !   k := dc_index
26150  824    8     !   ! ELSE
26160  825    9     !   !   k := dc_index + 1;
26170  826   10     !   ! 
26180  827   11     !   ! pax_table(k).al_mac_addr := alabel.send.macro;
26190  828   12     !   ! pax_table(k).pax_addr := act_pax_addr;
26200  829   13     !   ! pax_table(k).max_retrans := 0;
26210  830   14     !   ! 
26220  831   15     !   ! IF tst>16 THEN
26230  832   16     !   !   BEGIN
26240  833   17     !   !   ! testout(z,"ha-node-test", k);
26250  834   18     !   !   ! write_paxnet_entry(k);
26260  835   19     !   !   END;
26270  836   20     !   ! 
26280  837   21     !   ! IF pax_table_top <= k THEN
26290  838   22     !   !   pax_table_top := k+1;
26300  839   23     !   ! 
26310  840   24     !   END;
26320  841   25     END;
26330  842           
\f

tsnetlst    81.06.15.   18.39.                                                    page    32

27010  843          FUNCTION stream_transmitter (
27020  844            VAR stream : byte;  (* zero means make a call *)
27030  845            op_code : byte;
27040  846            c_data : byte;
27050  847            VAR ref : reference (* nil means send a receipt *)
27060  848            ) : integer;
27070  849              (*----------------------------------------------------------
27080  850              .  1.  sends a receipt without data on stream
27090  851              .  2.  sends a receipt with data on stream
27100  852              .  3.  makes a call if stream is zero and a free stream exists
27110  853              ------------------------------------------------------------*)
27120  854          VAR
27130  855            alarm_macro : macroaddr;
27140  856            i : integer;
27150  857          BEGIN
27160  858    1     ! IF tst>64 THEN
27170  859    2     !   testout(z,"strm-transm ", stream);
27180  860    3     ! 
27190  861    4     ! IF NOT nil(ref) THEN
27200  862    5     !   BEGIN
27210  863    6     !   !   (*-  a message has to be send to net -*)
27220  864    7     !   ! 
27230  865    8     !   ! IF stream = 0 THEN
27240  866    9     !   !   BEGIN
27250  867   10     !   !   ! 
27260  868   11     !   !   ! LOCK ref AS abuf : alarmlabel DO
27270  869   12     !   !   !   BEGIN
27280  870   13     !   !   !   ! alarm_macro := abuf.rec.macro;
27290  871   14     !   !   !   ! alarm_op_code := abuf.op_code;
27300  872   15     !   !   !   END;
27310  873   16     !   !   ! 
27320  874   17     !   !   ! pax_table( pax_table_top).al_mac_addr := alarm_macro;
27330  875   18     !   !   ! 
27340  876   19     !   !   ! i:= dc_index;
27350  877   20     !   !   ! 
27360  878   21     !   !   ! WHILE pax_table(i).al_mac_addr <> alarm_macro DO
27370  879   22     !   !   !   i:= i+1;
27380  880   23     !   !   !  
\f

tsnetlst    81.06.15.   18.39.                                                    page    33

28010  881   24     !   !   ! IF i<pax_table_top THEN
28020  882   25     !   !   !   BEGIN
28030  883   26     !   !   !   !   (*- a receiver exists ; now check streams -*)
28040  884   27     !   !   !   ! 
28050  885   28     !   !   !   ! IF tst>16 THEN
28060  886   29     !   !   !   !   testout(z,"rec exists  ", i);
28070  887   30     !   !   !   ! 
28080  888   31     !   !   !   ! stream := free_stream;
28090  889   32     !   !   !   ! 
28100  890   33     !   !   !   ! IF stream >= min_stream_no THEN
28110  891   34     !   !   !   !   BEGIN
28120  892   35     !   !   !   !   ! start_stream( ref, stream, i);
28130  893   36     !   !   !   !   END
28140  894   37     !   !   !   ! ELSE
28150  895   38     !   !   !   !   send_to_wait( ref, i);
28160  896   39     !   !   !   END
28170  897   40     !   !   !    
\f

tsnetlst    81.06.15.   18.39.                                                    page    34

29010  898   41     !   !   ! ELSE
29020  899   42     !   !   !   BEGIN
29030  900   43     !   !   !   !   (*- no receiver exists in table -*)
29040  901   44     !   !   !   !   (*- check exit-addr or free stream -*)
29050  902   45     !   !   !   ! 
29060  903   46     !   !   !   ! IF tst>16 THEN
29070  904   47     !   !   !   !   testout(z,"no addr     ",i);
29080  905   48     !   !   !   ! 
29090  906   49     !   !   !   ! 
29100  907   50     !   !   !   ! 
29110  908   51     !   !   !   ! act_pax_addr := pax_table( dc_index).pax_addr;
29120  909   52     !   !   !   ! IF connec_to_addr( act_stream_index) THEN
29130  910   53     !   !   !   !   BEGIN
29140  911   54     !   !   !   !   ! ref^.u1 := dc_index;
29150  912   55     !   !   !   !   ! send_to_stream( ref, act_stream_index)
29160  913   56     !   !   !   !   END
29170  914   57     !   !   !   ! ELSE
29180  915   58     !   !   !   !   BEGIN
29190  916   59     !   !   !   !   ! stream:=free_stream;
29200  917   60     !   !   !   !   ! 
29210  918   61     !   !   !   !   ! IF stream >= min_stream_no THEN
29220  919   62     !   !   !   !   !   BEGIN
29230  920   63     !   !   !   !   !   ! start_stream( ref, stream, dc_index);
29240  921   64     !   !   !   !   !   END
29250  922   65     !   !   !   !   ! ELSE
29260  923   66     !   !   !   !   !   BEGIN
29270  924   67     !   !   !   !   !   ! IF tst>16 THEN
29280  925   68     !   !   !   !   !   !   testout(z,"wait dc     ",stream);
29290  926   69     !   !   !   !   !   ! 
29300  927   70     !   !   !   !   !   ! send_to_wait( ref, dc_index);
29310  928   71     !   !   !   !   !   END;
29320  929   72     !   !   !   !   END;
29330  930   73     !   !   !   END
29340  931   74     !   !   !    
\f

tsnetlst    81.06.15.   18.39.                                                    page    35

30010  932   75     !   !   END
30020  933   76     !   ! ELSE
30030  934   77     !   !   BEGIN
30040  935   78     !   !   ! IF tst>16 THEN
30050  936   79     !   !   !   testout(z,"send datarec", op_code);
30060  937   80     !   !   ! 
30070  938   81     !   !   ! send_sdata_buf( ref, stream, op_code,c_data);
30080  939   82     !   !   END;
30090  940   83     !   END (* not nil ref *)
30100  941   84     ! ELSE
30110  942   85     !   BEGIN
30120  943   86     !   !   (*- a receipt has to be made *)
30130  944   87     !   ! 
30140  945   88     !   ! IF tst>16 THEN
30150  946   89     !   !   testout(z,"send receipt", op_code);
30160  947   90     !   ! 
30170  948   91     !   ! send_sdata_buf( ref, stream, op_code,c_data);
30180  949   92     !   ! 
30190  950   93     !   END;
30200  951   94     ! stream_transmitter := stream;
30210  952   95     ! 
30220  953   96     ! IF tst>64 THEN
30230  954   97     !   testout(z,"strm-transm ", stream);
30240  955   98     END;
30250  956           
\f

tsnetlst    81.06.15.   18.39.                                                    page    36

31010  957          FUNCTION local_receiver (
31020  958            VAR
31030  959            ref : reference;
31040  960            VAR
31050  961            remote_macro : macroaddr
31060  962            ): integer;
31070  963              (*----------------------------------------------------------------
31080  964              .  routes a message either to further handling by netconnector  .
31090  965              .  or routes it to local user at once                           .
31100  966              ------------------------------------------------------------------*)
31110  967          VAR
31120  968            i : integer := 1;
31130  969          BEGIN
31140  970    1     ! count( stat( loca_packets));
31150  971    2     ! 
31160  972    3     ! ref^.u3 := netc_route;
31170  973    4     ! 
31180  974    5     ! LOCK ref AS buf : alarmlabel DO
31190  975    6     !   BEGIN
31200  976    7     !   ! alarm_op_code := ref^.u4;
31210  977    8     !   ! buf.op_code := ref^.u4;
31220  978    9     !   ! remote_macro := buf.rec.macro;
31230  979   10     !   END;
31240  980   11     ! 
31250  981   12     ! pax_table( pax_table_top).al_mac_addr := remote_macro;
31260  982   13     ! 
31270  983   14     ! WHILE pax_table(i).al_mac_addr <> remote_macro DO i:= i+1;
31280  984   15     ! 
31290  985   16     ! IF (i < local_mac_top) THEN
31300  986   17     !   signal( ref, local_sems(pax_table(i).stream_no)^);
31310  987   18     ! 
31320  988   19     ! pax_table( pax_table_top).al_mac_addr := nil_macro;
31330  989   20     ! 
31340  990   21     ! local_receiver := i;
31350  991   22     ! 
31360  992   23     ! IF tst>64 THEN
31370  993   24     !   testout(z,"local-receiv", i);
31380  994   25     END;
31390  995           
\f

tsnetlst    81.06.15.   18.39.                                                    page    37

32010  996          FUNCTION stream_receiver (
32020  997            func : byte;
32030  998            VAR ref: reference ) : integer;
32040  999              (*-------------------------------------------------------
32050 1000              .  receives a message from dte-module and looks at
32060 1001              .  control.op-code
32070 1002              . if this is a command, the data are either used by netcon
32080 1003              .  or send to local user via local-transmitter
32090 1004              . if it is a receipt, this is handled by the netcon
32100 1005              ---------------------------------------------------------*)
32110 1006          VAR
32120 1007            stream : byte := 0;
32130 1008            user_ref : reference;
32140 1009            result : byte;
32150 1010          BEGIN
32160 1011    1     ! CASE func OF
32170 1012    2     ! ! 
32180 1013    3     ! ! dte_ric :    (*-  incomming call -*)
32190 1014    4     ! !   BEGIN
32200 1015    5     ! !   ! count( stat( rica_packets));
32210 1016    6     ! !   ! LOCK ref AS buf : ric_buf_type DO
32220 1017    7     ! !   !   WITH buf DO
32230 1018    8     ! !   !     BEGIN
32240 1019    9     ! !   !     ! result := copy_data( call_buf.alarm_mess, user_ref);
32250 1020   10     ! !   !     ! 
32260 1021   11     ! !   !     ! IF tst>64 THEN
32270 1022   12     ! !   !     !   testout(z,"strm-rec-ric", result);
32280 1023   13     ! !   !     ! 
32290 1024   14     ! !   !     ! IF result = data_received THEN
32300 1025   15     ! !   !     !   BEGIN
32310 1026   16     ! !   !     !   ! 
32320 1027   17     ! !   !     !   ! act_pax_addr := call_buf.dte_adr;
32330 1028   18     ! !   !     !   ! 
32340 1029   19     ! !   !     !   ! IF NOT connec_to_addr( stream) THEN
32350 1030   20     ! !   !     !   !   BEGIN
32360 1031   21     ! !   !     !   !   ! stream := free_stream;
32370 1032   22     ! !   !     !   !   ! 
32380 1033   23     ! !   !     !   !   ! IF stream >= min_stream_no THEN
32390 1034   24     ! !   !     !   !   !   BEGIN
32400 1035   25     ! !   !     !   !   !   ! send_rdata_bufs( windowsize, stream);
32410 1036   26     ! !   !     !   !   !   ! stream_states( stream).pax_addr := act_pax_addr;
32420 1037   27     ! !   !     !   !   !   ! update_stream_state( stream, new_stat, receiving);
32430 1038   28     ! !   !     !   !   !   END
32440 1039   29     ! !   !     !   !   END;
32450 1040   30     ! !   !     !   ! 
32460 1041   31     ! !   !     !   ! LOCK user_ref AS abuf : alarmlabel DO
\f

tsnetlst    81.06.15.   18.39.                                                    page    38

32470 1042   32     ! !   !     !   !   BEGIN
32480 1043   33     ! !   !     !   !   ! alarm_macro := abuf.rec.macro;
32490 1044   34     ! !   !     !   !   ! IF no_address THEN
32500 1045   35     ! !   !     !   !   !   handle_node_test( abuf);
32510 1046   36     ! !   !     !   !   END;
32520 1047   37     ! !   !     !   ! 
32530 1048   38     ! !   !     !   ! IF tst>16 THEN
32540 1049   39     ! !   !     !   !   testout(z,"ric to local", alarm_macro.ts_addr);
32550 1050   40     ! !   !     !   ! 
32560 1051   41     ! !   !     !   ! IF stream >= min_stream_no THEN
32570 1052   42     ! !   !     !   !   BEGIN
32580 1053   43     ! !   !     !   !   ! WITH stream_states( stream) DO
32590 1054   44     ! !   !     !   !   !   IF v_r_inc*256 +v_r <> call_buf.control.n_s_inc*256+call_buf.control.n_s THEN
32600 1055   45     ! !   !     !   !   !     BEGIN
32610 1056   46     ! !   !     !   !   !     ! act_pax_index := local_transmitter( user_ref, alarm_macro);
32620 1057   47     ! !   !     !   !   !     ! v_r_inc := call_buf.control.n_s_inc;
32630 1058   48     ! !   !     !   !   !     ! v_r := call_buf.control.n_s;
32640 1059   49     ! !   !     !   !   !     END
32650 1060   50     ! !   !     !   !   !   ELSE
32660 1061   51     ! !   !     !   !   !     BEGIN (* dublicated package *)
32670 1062   52     ! !   !     !   !   !     ! count( stat( dubl_packets));
32680 1063   53     ! !   !     !   !   !     ! return( user_ref);
32690 1064   54     ! !   !     !   !   !     ! IF tst>64 THEN
32700 1065   55     ! !   !     !   !   !     !   testout(z,"dublicate-r ", stat( dubl_packets));
32710 1066   56     ! !   !     !   !   !     END;
32720 1067   57     ! !   !     !   !   ! 
32730 1068   58     ! !   !     !   !   ! send_aic_buf( stream, call_id, data_received);
32740 1069   59     ! !   !     !   !   END
32750 1070   60     ! !   !     !   ! ELSE
32760 1071   61     ! !   !     !   !   send_rejic_buf( call_id, data_received);
32770 1072   62     ! !   !     !   END
32780 1073   63     ! !   !     ! ELSE
32790 1074   64     ! !   !     !     (*-- no buffer ready for data --*)
32800 1075   65     ! !   !     !   send_rejic_buf( call_id, data_not_received);
32810 1076   66     ! !   !     END;
32820 1077   67     ! !   END;
32830 1078   68     ! ! 
32840 1079   69     ! !  
\f

tsnetlst    81.06.15.   18.39.                                                    page    39

33010 1080   70     ! ! dte_rdata :  (*- receive data  -*)
33020 1081   71     ! !   BEGIN
33030 1082   72     ! !   ! count( stat( reci_packets));
33040 1083   73     ! !   ! stream := ref^.u3;
33050 1084   74     ! !   ! LOCK ref AS dbuf : dte_sdata_data DO
33060 1085   75     ! !   !   WITH dbuf DO
33070 1086   76     ! !   !     BEGIN
33080 1087   77     ! !   !     ! 
33090 1088   78     ! !   !     ! result := copy_data( alarm_mess, user_ref);
33100 1089   79     ! !   !     ! 
33110 1090   80     ! !   !     ! IF tst>64 THEN
33120 1091   81     ! !   !     !   testout(z,"strm-rec-dat", result);
33130 1092   82     ! !   !     ! 
33140 1093   83     ! !   !     ! IF result = data_received THEN
33150 1094   84     ! !   !     !   BEGIN
33160 1095   85     ! !   !     !   ! 
33170 1096   86     ! !   !     !   ! LOCK user_ref AS abuf : alarmlabel DO
33180 1097   87     ! !   !     !   !   BEGIN
33190 1098   88     ! !   !     !   !   ! alarm_macro := abuf.rec.macro;
33200 1099   89     ! !   !     !   !   ! IF no_address THEN
33210 1100   90     ! !   !     !   !   !   BEGIN
33220 1101   91     ! !   !     !   !   !   ! act_pax_addr := stream_states( stream).pax_addr;
33230 1102   92     ! !   !     !   !   !   ! handle_node_test( abuf);
33240 1103   93     ! !   !     !   !   !   END;
33250 1104   94     ! !   !     !   !   END;
33260 1105   95     ! !   !     !   ! 
33270 1106   96     ! !   !     !   ! 
33280 1107   97     ! !   !     !   ! IF tst>16 THEN
33290 1108   98     ! !   !     !   !   testout(z,"rdata to loc", alarm_macro.ts_addr);
33300 1109   99     ! !   !     !   ! 
33310 1110  100     ! !   !     !   ! WITH stream_states( stream) DO
33320 1111  101     ! !   !     !   !   IF v_r_inc*256+v_r <> control.n_s_inc*256+control.n_s THEN
33330 1112  102     ! !   !     !   !     BEGIN
33340 1113  103     ! !   !     !   !     ! act_pax_index := local_transmitter( user_ref, alarm_macro);
33350 1114  104     ! !   !     !   !     ! v_r_inc := control.n_s_inc;
33360 1115  105     ! !   !     !   !     ! v_r := control.n_s;
33370 1116  106     ! !   !     !   !     END
33380 1117  107     ! !   !     !   !   ELSE
33390 1118  108     ! !   !     !   !     BEGIN (* dublicated package *)
33400 1119  109     ! !   !     !   !     ! count( stat( dubl_packets));
33410 1120  110     ! !   !     !   !     ! return( user_ref);
33420 1121  111     ! !   !     !   !     ! IF tst>64 THEN
33430 1122  112     ! !   !     !   !     !   testout(z,"dublicate-d ", stat( dubl_packets));
33440 1123  113     ! !   !     !   !     END;
33450 1124  114     ! !   !     !   ! stream := stream_transmitter( ref^.u3, opc_receipt, data_received, nil_ref);
33460 1125  115     ! !   !     !   END
\f

tsnetlst    81.06.15.   18.39.                                                    page    40

33470 1126  116     ! !   !     ! ELSE
33480 1127  117     ! !   !     !     (*-- no buffer ready for data --*)
33490 1128  118     ! !   !     !   stream := stream_transmitter( ref^.u3, opc_receipt, data_not_received, nil_ref);
33500 1129  119     ! !   !     END
33510 1130  120     ! !   END;
33520 1131  121     ! ! 
33530 1132  122     ! ! OTHERWISE
33540 1133  123     ! ! count( stat( nons_packets));
33550 1134  124     ! END (* case *);
33560 1135  125     ! stream_receiver := stream;
33570 1136  126     END;
33580 1137           
\f

tsnetlst    81.06.15.   18.39.                                                    page    41

34010 1138          FUNCTION local_transmitter (
34020 1139            VAR
34030 1140            ref : reference;
34040 1141            local_macro : macroaddr ):integer;
34050 1142              (*----------------------------------------------------
34060 1143              .  routes a message to local user, i e               .
34070 1144              .  tssupervisor,   ncsupervisor,   dcsimulator       .
34080 1145              .  or others                                         .
34090 1146              .  either because it is received from the net      .
34100 1147              .  or because it is not transmitted to the net     .
34110 1148              ----------------------------------------------------*)
34120 1149          VAR
34130 1150            i : integer := 1;
34140 1151            
34150 1152          BEGIN
34160 1153    1     ! 
34170 1154    2     ! IF NOT nil( ref) THEN
34180 1155    3     !   IF NOT( ref^.u3 IN netc_routes) THEN
34190 1156    4     !     ref^.u3 := netc_route;
34200 1157    5     ! 
34210 1158    6     ! pax_table( local_mac_top).al_mac_addr := local_macro;
34220 1159    7     ! 
34230 1160    8     ! WHILE pax_table(i).al_mac_addr <> local_macro DO i:= i+1;
34240 1161    9     ! 
34250 1162   10     ! 
34260 1163   11     ! IF (i = local_mac_top) OR (pax_table(i).stream_no =0) THEN
34270 1164   12     !   BEGIN
34280 1165   13     !   ! IF tst>64 THEN
34290 1166   14     !   !   testout(z,"local-trm-to", 1);
34300 1167   15     !   ! 
34310 1168   16     !   ! local_transmitter := 1;
34320 1169   17     !   ! IF NOT nil( ref) THEN
34330 1170   18     !   !   signal( ref, local_sems(1)^)
34340 1171   19     !   END
34350 1172   20     ! ELSE
34360 1173   21     !   BEGIN
34370 1174   22     !   ! IF tst>64 THEN
34380 1175   23     !   !   testout(z,"local-transm", i);
34390 1176   24     !   ! 
34400 1177   25     !   ! local_transmitter := i;
34410 1178   26     !   ! IF NOT nil( ref) THEN
34420 1179   27     !   !   signal( ref, local_sems(pax_table(i).stream_no)^);
34430 1180   28     !   END;
34440 1181   29     ! 
34450 1182   30     ! pax_table( local_mac_top).al_mac_addr := nil_macro;
34460 1183   31     ! 
\f

tsnetlst    81.06.15.   18.39.                                                    page    42

34470 1184   32     END;
34480 1185           
\f

tsnetlst    81.06.15.   18.39.                                                    page    43

35010 1186          PROCEDURE send_to_stream (
35020 1187            VAR
35030 1188            ref : reference ;
35040 1189            stream_index : integer
35050 1190            );
35060 1191              (*--------------------------------------------------------------
35070 1192              -   sends an outputmessage to stream and updates the tables    -
35080 1193              ----------------------------------------------------------------*)
35090 1194            
35100 1195          BEGIN
35110 1196    1     ! 
35120 1197    2     ! IF (( alarm_op_code IN first_codes)
35130 1198    3     !   AND (stream_states( stream_index).l_f_q < max_queue))
35140 1199    4     !   OR NOT ( alarm_op_code IN first_codes) THEN
35150 1200    5     !   BEGIN
35160 1201    6     !   ! IF tst>64 THEN
35170 1202    7     !   !   testout(z,"send to strm", stream_index);
35180 1203    8     !   ! 
35190 1204    9     !   ! IF nil( stream_states(stream_index).act_out) THEN
35200 1205   10     !   !   BEGIN
35210 1206   11     !   !   ! ref :=: stream_states(stream_index).act_out;
35220 1207   12     !   !   ! make_a_call( stream_index);
35230 1208   13     !   !   ! update_stream_state( stream_index, new_stat, calling);
35240 1209   14     !   !   ! set_retrans(stream_index);
35250 1210   15     !   !   END
35260 1211   16     !   ! ELSE
35270 1212   17     !   !   BEGIN
35280 1213   18     !   !   ! IF alarm_op_code IN first_codes THEN
35290 1214   19     !   !   !   signal( ref, stream_states( stream_index).first_queue)
35300 1215   20     !   !   ! ELSE
35310 1216   21     !   !   !   signal( ref, stream_states(stream_index).second_queue);
35320 1217   22     !   !   ! CASE stream_states( stream_index).state OF
35330 1218   23     !   !   ! ! calling,
35340 1219   24     !   !   ! ! sending :
35350 1220   25     !   !   ! !   update_stream_state( stream_index, inc_q, sending);
35360 1221   26     !   !   ! ! waiting,
35370 1222   27     !   !   ! ! receiving :
35380 1223   28     !   !   ! !   update_stream_state( stream_index, inc_all, sending);
35390 1224   29     !   !   ! ! OTHERWISE;
35400 1225   30     !   !   ! END;
35410 1226   31     !   !   END
35420 1227   32     !   END
35430 1228   33     !    
\f

tsnetlst    81.06.15.   18.39.                                                    page    44

36010 1229   34     ! ELSE
36020 1230   35     !   IF ref^.u4 = #h12 THEN
36030 1231   36     !     return( ref)
36040 1232   37     !   ELSE
36050 1233   38     !     BEGIN
36060 1234   39     !     ! IF tst>64 THEN
36070 1235   40     !     !   testout(z,"queu too big", stream_index);
36080 1236   41     !     ! 
36090 1237   42     !     ! LOCK ref AS a : alarmlabel DO
36100 1238   43     !     !   local_macro := a.send.macro;
36110 1239   44     !     ! k := local_transmitter( nil_ref, local_macro);
36120 1240   45     !     ! 
36130 1241   46     !     ! reject_message
36140 1242   47     !     ! ( ref, local_sems(k), netc_route1, local_macro,
36150 1243   48     !     ! netc_mic_addr, no_resources);
36160 1244   49     !     ! 
36170 1245   50     !     END;
36180 1246   51     END;
36190 1247           
\f

tsnetlst    81.06.15.   18.39.                                                    page    45

37010 1248          PROCEDURE send_to_wait (
37020 1249            VAR ref : reference;
37030 1250            pax_index : byte );
37040 1251              (*-------------------------------------------------------------
37050 1252              . sends an outputbuffer to wait_queue at stream-states index
37060 1253              . no min-stream-no  - 1
37070 1254              ---------------------------------------------------------------*)
37080 1255          BEGIN
37090 1256    1     ! update_stream_state( min_stream_no-1, inc_q, free);
37100 1257    2     ! 
37110 1258    3     ! 
37120 1259    4     ! ref^.u1 := pax_index;
37130 1260    5     ! 
37140 1261    6     ! IF alarm_op_code IN first_codes THEN
37150 1262    7     !   signal( ref, stream_states( min_stream_no-1).first_queue)
37160 1263    8     ! ELSE
37170 1264    9     !   signal( ref, stream_states( min_stream_no-1).second_queue);
37180 1265   10     ! IF tst>64 THEN
37190 1266   11     !   testout(z,"send-to-wait", pax_index);
37200 1267   12     END;
37210 1268           
\f

tsnetlst    81.06.15.   18.39.                                                    page    46

38010 1269          PROCEDURE make_ric_bufs (
38020 1270            no_of_bufs : byte
38030 1271            );
38040 1272              (*-------------------------------------------------------------
38050 1273              .  - gets a receive incomming call buffer and makes it ready  .
38060 1274              .    for use                                                  .
38070 1275              ---------------------------------------------------------------*)
38080 1276          VAR
38090 1277            i : integer;
38100 1278            ref : reference;
38110 1279            
38120 1280          BEGIN
38130 1281    1     ! IF tst>64 THEN
38140 1282    2     !   testout(z,"make-ric-buf", no_of_bufs);
38150 1283    3     ! 
38160 1284    4     ! FOR i:= 1 TO no_of_bufs DO
38170 1285    5     !   BEGIN
38180 1286    6     !   ! 
38190 1287    7     !   ! sensesem( ref, pax_pool_sem.w^);
38200 1288    8     !   ! 
38210 1289    9     !   ! IF NOT nil( ref) THEN
38220 1290   10     !   !   BEGIN
38230 1291   11     !   !   ! 
38240 1292   12     !   !   ! ref^.u1 := dte_ric;
38250 1293   13     !   !   ! ref^.u2 := dte_default;
38260 1294   14     !   !   ! ref^.u3 := netc_route;
38270 1295   15     !   !   ! ref^.u4 := to_link;
38280 1296   16     !   !   ! 
38290 1297   17     !   !   ! LOCK ref AS ric_buf : ric_buf_type DO
38300 1298   18     !   !   !   WITH ric_buf DO
38310 1299   19     !   !   !     BEGIN
38320 1300   20     !   !   !     ! first := ric_first_val;
38330 1301   21     !   !   !     ! last := ric_first_val+min_ric_data-1;
38340 1302   22     !   !   !     ! delay1:=ric_delay_1;
38350 1303   23     !   !   !     ! delay2:=ric_delay_2;
38360 1304   24     !   !   !     ! call_id:= 0;
38370 1305   25     !   !   !     END;
38380 1306   26     !   !   ! 
38390 1307   27     !   !   ! signal( ref, dte_sem^ );
38400 1308   28     !   !   END
38410 1309   29     !   !    
\f

tsnetlst    81.06.15.   18.39.                                                    page    47

39010 1310   30     !   ! ELSE
39020 1311   31     !   !   BEGIN
39030 1312   32     !   !   ! count( stat( no_pax_bufs));
39040 1313   33     !   !   ! IF tst>4 THEN
39050 1314   34     !   !   !   testout(z,"no ric bufs ", i);
39060 1315   35     !   !   END;
39070 1316   36     !   END;
39080 1317   37     END; (* make-ric-bufs *)
39090 1318           
\f

tsnetlst    81.06.15.   18.39.                                                    page    48

40010 1319          PROCEDURE send_aic_buf (
40020 1320            stream,
40030 1321            call_id,
40040 1322            c_data
40050 1323            : byte );
40060 1324              (*----------------------------------------------------------------
40070 1325              .   sends an aic-buffer to the dte                               .
40080 1326              ------------------------------------------------------------------*)
40090 1327          VAR
40100 1328            ref : reference;
40110 1329          BEGIN
40120 1330    1     ! IF tst>64 THEN
40130 1331    2     !   testout(z,"send-aic-buf", stream);
40140 1332    3     ! 
40150 1333    4     ! sensesem( ref, pax_pool_sem.w^);
40160 1334    5     ! 
40170 1335    6     ! IF NOT nil( ref) THEN
40180 1336    7     !   BEGIN
40190 1337    8     !   ! count( stat( aicc_packets));
40200 1338    9     !   ! ref^.u1 := dte_aic;
40210 1339   10     !   ! ref^.u2 := dte_default;
40220 1340   11     !   ! ref^.u3 := stream;
40230 1341   12     !   ! ref^.u4 := to_link;
40240 1342   13     !   ! 
40250 1343   14     !   ! LOCK ref AS aic : aic_buf_type DO
40260 1344   15     !   !   WITH aic DO
40270 1345   16     !   !     BEGIN
40280 1346   17     !   !     ! first := aic_first_val;
40290 1347   18     !   !     ! last := aic_first_val +1;
40300 1348   19     !   !     ! aic_id:= call_id;
40310 1349   20     !   !     ! aic_q := false;
40320 1350   21     !   !     END;
40330 1351   22     !   ! 
40340 1352   23     !   ! signal( ref, dte_sem^);
40350 1353   24     !   ! send_sdata_buf( ref, stream, dte_aic, c_data);
40360 1354   25     !   END
40370 1355   26     ! ELSE
40380 1356   27     !   BEGIN
40390 1357   28     !   ! count( stat( no_pax_bufs));
40400 1358   29     !   ! IF tst>4 THEN
40410 1359   30     !   !   testout(z,"no aic buf  ",0);
40420 1360   31     !   END;
40430 1361   32     ! 
40440 1362   33     END (* send-aic-buf *);
40450 1363           
\f

tsnetlst    81.06.15.   18.39.                                                    page    49

41010 1364          PROCEDURE send_rejic_buf (
41020 1365            call_id,
41030 1366            diag_code : byte );
41040 1367              (*----------------------------------------------------------
41050 1368              .   sends a ric-buffer to dte                              .
41060 1369              ------------------------------------------------------------*)
41070 1370          VAR
41080 1371            ref : reference ;
41090 1372          BEGIN
41100 1373    1     ! 
41110 1374    2     ! IF tst>64 THEN
41120 1375    3     !   testout(z,"send-rejic  ", call_id);
41130 1376    4     ! 
41140 1377    5     ! sensesem ( ref, pax_pool_sem.w^);
41150 1378    6     ! 
41160 1379    7     ! IF NOT nil( ref) THEN
41170 1380    8     !   BEGIN
41180 1381    9     !   ! count( stat( reji_packets));
41190 1382   10     !   ! 
41200 1383   11     !   ! ref^.u1 := dte_rejic;
41210 1384   12     !   ! ref^.u2 := dte_default;
41220 1385   13     !   ! ref^.u3 := call_id;
41230 1386   14     !   ! ref^.u4 := to_link;
41240 1387   15     !   ! 
41250 1388   16     !   ! LOCK ref AS rejic : rejic_buf_type DO
41260 1389   17     !   !   WITH rejic DO
41270 1390   18     !   !     BEGIN
41280 1391   19     !   !     ! first := rejic_first_val;
41290 1392   20     !   !     ! last := rejic_first_val +1;
41300 1393   21     !   !     ! rejic_id := call_id;
41310 1394   22     !   !     ! rejic_diag := diag_code;
41320 1395   23     !   !     END;
41330 1396   24     !   ! 
41340 1397   25     !   ! signal( ref, dte_sem^);
41350 1398   26     !   END
41360 1399   27     ! ELSE
41370 1400   28     !   BEGIN
41380 1401   29     !   ! count( stat( no_pax_bufs));
41390 1402   30     !   ! IF tst>4 THEN
41400 1403   31     !   !   testout(z,"no rejic buf", 0);
41410 1404   32     !   END;
41420 1405   33     ! 
41430 1406   34     END (* send-rejic-buf *);
41440 1407           
\f

tsnetlst    81.06.15.   18.39.                                                    page    50

42010 1408          PROCEDURE send_ric_buf (
42020 1409            VAR
42030 1410            ref : reference );
42040 1411              (*--------------------------------------------------------
42050 1412              -   sends a ric-buffer to dte                            -
42060 1413              ----------------------------------------------------------*)
42070 1414          BEGIN
42080 1415    1     ! ref^.u2 := dte_default;
42090 1416    2     ! 
42100 1417    3     ! signal( ref, dte_sem^);
42110 1418    4     END;
42120 1419           
\f

tsnetlst    81.06.15.   18.39.                                                    page    51

43010 1420          PROCEDURE send_sdata_buf (
43020 1421            VAR iref : reference;
43030 1422            stream_no : byte;
43040 1423            opr_code : byte ;
43050 1424            c_data : byte );
43060 1425              (*-------------------------------------------------
43070 1426              .   sends a sdata buffer to dte
43080 1427              ---------------------------------------------------*)
43090 1428          VAR
43100 1429            ref : reference;
43110 1430            i : integer;
43120 1431          BEGIN
43130 1432    1     ! IF tst>64 THEN
43140 1433    2     !   BEGIN
43150 1434    3     !   ! testout(z,"send-sdata-b", stream_no);
43160 1435    4     !   ! testout(z,"op-code     ", opr_code);
43170 1436    5     !   END;
43180 1437    6     ! 
43190 1438    7     ! sensesem( ref, pax_pool_sem.w^);
43200 1439    8     ! 
43210 1440    9     ! IF NOT nil( ref) THEN
43220 1441   10     !   BEGIN
43230 1442   11     !   ! 
43240 1443   12     !   ! count( stat( send_packets));
43250 1444   13     !   ! ref^.u1 := dte_sdata;
43260 1445   14     !   ! ref^.u2 := dte_default;
43270 1446   15     !   ! ref^.u3 := stream_no;
43280 1447   16     !   ! ref^.u4 := to_link;
43290 1448   17     !   ! 
43300 1449   18     !   ! LOCK ref AS buf : dte_sdata_data DO
43310 1450   19     !   !   BEGIN
43320 1451   20     !   !   ! buf.first := sdata_first_val;
43330 1452   21     !   !   ! buf.last := sdata_first_val + l_control  -1;
43340 1453   22     !   !   ! 
43350 1454   23     !   !   ! buf.q_bit := false;
43360 1455   24     !   !   ! buf.m_bit := false;
43370 1456   25     !   !   !  
\f

tsnetlst    81.06.15.   18.39.                                                    page    52

44010 1457   26     !   !   ! WITH buf.control DO
44020 1458   27     !   !   !   WITH stream_states( stream_no) DO
44030 1459   28     !   !   !     BEGIN
44040 1460   29     !   !   !     ! op_code := opr_code;
44050 1461   30     !   !   !     ! data := c_data;
44060 1462   31     !   !   !     ! n_s_inc := v_s_inc;
44070 1463   32     !   !   !     ! n_s := v_s;
44080 1464   33     !   !   !     ! n_r_inc := v_r_inc;
44090 1465   34     !   !   !     ! n_r := v_r;
44100 1466   35     !   !   !     END;
44110 1467   36     !   !   ! 
44120 1468   37     !   !   ! IF NOT nil( iref) THEN
44130 1469   38     !   !   !   LOCK iref AS abuf : max_alarm_mess DO
44140 1470   39     !   !   !     BEGIN
44150 1471   40     !   !   !     ! buf.alarm_mess := abuf;
44160 1472   41     !   !   !     ! buf.last := buf.last + abuf.al.no_of_by+2;
44170 1473   42     !   !   !     END
44180 1474   43     !   !   !   ELSE
44190 1475   44     !   !   !     buf.alarm_mess.al.no_of_by := 0;
44200 1476   45     !   !   ! 
44210 1477   46     !   !   END;
44220 1478   47     !   ! signal( ref, dte_sem^);
44230 1479   48     !   END
44240 1480   49     ! ELSE
44250 1481   50     !   BEGIN
44260 1482   51     !   ! count( stat( no_pax_bufs));
44270 1483   52     !   ! IF tst>4 THEN
44280 1484   53     !   !   testout(z,"no sdata buf", 0);
44290 1485   54     !   END;
44300 1486   55     END;
44310 1487           
\f

tsnetlst    81.06.15.   18.39.                                                    page    53

45010 1488          PROCEDURE retransmit_data (
45020 1489            stream : byte );
45030 1490              (*--------------------------------------------------------------
45040 1491              .  retransmits the data at stream_states(stream).act_out
45050 1492              ----------------------------------------------------------------*)
45060 1493          BEGIN
45070 1494    1     ! IF tst>64 THEN
45080 1495    2     !   testout(z,"retransmit  ", stream);
45090 1496    3     ! 
45100 1497    4     ! WITH stream_states( stream) DO
45110 1498    5     !   BEGIN
45120 1499    6     !   ! IF NOT nil( act_out) THEN
45130 1500    7     !   !   BEGIN
45140 1501    8     !   !   ! retrans_count := retrans_count +1;
45150 1502    9     !   !   ! 
45160 1503   10     !   !   ! IF retrans_count <= max_retrans THEN
45170 1504   11     !   !   !   BEGIN
45180 1505   12     !   !   !   ! retrans_timer := retrans_timo;
45190 1506   13     !   !   !   ! send_sdata_buf( act_out, stream, opc_command,0);
45200 1507   14     !   !   !   END
45210 1508   15     !   !   ! ELSE
45220 1509   16     !   !   !   BEGIN (*  reject the packet *)
45230 1510   17     !   !   !   ! count( stat( lost_packets));
45240 1511   18     !   !   !   ! release_uo_data( reject, stream);
45250 1512   19     !   !   !   END;
45260 1513   20     !   !   END;
45270 1514   21     !   END;
45280 1515   22     ! 
45290 1516   23     END;
45300 1517          
45310 1518           
\f

tsnetlst    81.06.15.   18.39.                                                    page    54

46010 1519          PROCEDURE release_uo_data (
46020 1520            cause : release_cause;
46030 1521            stream : byte );
46040 1522              (*---------------------------------------------------------------
46050 1523              .  releases the data at stream_states(stream).act_out
46060 1524              -----------------------------------------------------------------*)
46070 1525          BEGIN
46080 1526    1     ! IF tst>64 THEN
46090 1527    2     !   testout(z,"release-uo  ", stream);
46100 1528    3     ! 
46110 1529    4     ! WITH stream_states( stream) DO
46120 1530    5     !   v_s := (v_s+1) MOD 256;
46130 1531    6     !   (*----  release act-out  ----*)
46140 1532    7     ! 
46150 1533    8     ! IF NOT nil( stream_states(stream).act_out) THEN
46160 1534    9     !   BEGIN
46170 1535   10     !   ! IF cause = accept THEN
46180 1536   11     !   !   return( stream_states(stream).act_out)
46190 1537   12     !   ! ELSE
46200 1538   13     !   !     (*--- reject with no-connection --- *)
46210 1539   14     !   !   IF stream_states(stream).act_out^.u4 = #h12 THEN
46220 1540   15     !   !     return( stream_states(stream).act_out)
46230 1541   16     !   !   ELSE
46240 1542   17     !   !     BEGIN
46250 1543   18     !   !     ! LOCK stream_states(stream).act_out AS a:alarmlabel DO
46260 1544   19     !   !     !   local_macro := a.send.macro;
46270 1545   20     !   !     ! k := local_transmitter( nil_ref, local_macro);
46280 1546   21     !   !     ! 
46290 1547   22     !   !     ! reject_message
46300 1548   23     !   !     ! (stream_states(stream).act_out, local_sems(k), netc_route1,
46310 1549   24     !   !     ! local_macro,
46320 1550   25     !   !     ! netc_mic_addr, no_connection);
46330 1551   26     !   !     ! 
46340 1552   27     !   !     END;
46350 1553   28     !   !  
\f

tsnetlst    81.06.15.   18.39.                                                    page    55

47010 1554   29     !   !   (*---- take the next in queue  ----*)
47020 1555   30     !   ! 
47030 1556   31     !   ! sensesem( stream_states(stream).act_out, stream_states(stream).first_queue);
47040 1557   32     !   ! 
47050 1558   33     !   ! IF nil( stream_states( stream).act_out) THEN
47060 1559   34     !   !   BEGIN
47070 1560   35     !   !   ! sensesem( stream_states( stream).act_out, stream_states( stream).second_queue);
47080 1561   36     !   !   ! IF NOT nil(stream_states(stream).act_out) THEN
47090 1562   37     !   !   !   update_stream_state(stream,dec_s_q,free);
47100 1563   38     !   !   END
47110 1564   39     !   ! ELSE
47120 1565   40     !   !   update_stream_state( stream, dec_f_q, free);
47130 1566   41     !   ! IF nil( stream_states(stream).act_out) THEN
47140 1567   42     !   !   BEGIN
47150 1568   43     !   !   ! stream_states(stream).retrans_timer := 0;
47160 1569   44     !   !   ! IF stream_states( stream).state = calling THEN
47170 1570   45     !   !   !   update_stream_state( stream, new_stat, free)
47180 1571   46     !   !   ! ELSE
47190 1572   47     !   !   !   IF cause = accept THEN
47200 1573   48     !   !   !     update_stream_state( stream, new_stat, waiting)
47210 1574   49     !   !   !   ELSE
47220 1575   50     !   !   !     update_stream_state( stream, new_stat, free)
47230 1576   51     !   !   END
47240 1577   52     !   ! ELSE
47250 1578   53     !   !   BEGIN
47260 1579   54     !   !   ! set_retrans( stream);
47270 1580   55     !   !   ! 
47280 1581   56     !   !   ! WITH stream_states( stream) DO
47290 1582   57     !   !   !   BEGIN
47300 1583   58     !   !   !   ! 
47310 1584   59     !   !   !   ! IF cause = accept THEN
47320 1585   60     !   !   !   !   send_sdata_buf( act_out, stream, opc_command, 0)
47330 1586   61     !   !   !   ! ELSE
47340 1587   62     !   !   !   !   BEGIN
47350 1588   63     !   !   !   !   ! make_a_call( stream);
47360 1589   64     !   !   !   !   ! update_stream_state( stream, new_stat, calling);
47370 1590   65     !   !   !   !   END;
47380 1591   66     !   !   !   END;
47390 1592   67     !   !   END;
47400 1593   68     !   END;
47410 1594   69     END;
47420 1595           
\f

tsnetlst    81.06.15.   18.39.                                                    page    56

48010 1596          PROCEDURE return_rdata_buf (
48020 1597            VAR ref : reference );
48030 1598              (*----------------------------------------------------------
48040 1599              .  sends a rdata-buffer to dte again
48050 1600              ------------------------------------------------------------*)
48060 1601          BEGIN
48070 1602    1     ! IF tst>64 THEN
48080 1603    2     !   testout(z,"return-rdata", ref^.u2);
48090 1604    3     ! 
48100 1605    4     ! ref^.u2 := dte_default;
48110 1606    5     ! 
48120 1607    6     ! LOCK ref AS rdata : dte_sdata_data DO
48130 1608    7     !   rdata.last := sdata_first_val + l_control + l_listen -1;
48140 1609    8     ! 
48150 1610    9     ! signal( ref, dte_sem^);
48160 1611   10     ! 
48170 1612   11     END;
48180 1613           
\f

tsnetlst    81.06.15.   18.39.                                                    page    57

49010 1614          PROCEDURE send_rdata_bufs (
49020 1615            no_of_bufs,
49030 1616            stream    : byte );
49040 1617              (*------------------------------------------------------
49050 1618              -   sends rdata bufs to dte                            -
49060 1619              --------------------------------------------------------*)
49070 1620          VAR
49080 1621            i : integer;
49090 1622            ref : reference ;
49100 1623            
49110 1624          BEGIN
49120 1625    1     ! IF tst>64 THEN
49130 1626    2     !   testout(z,"send-rdata-b", stream);
49140 1627    3     ! 
49150 1628    4     ! FOR i := 1 TO no_of_bufs DO
49160 1629    5     !   BEGIN
49170 1630    6     !   ! sensesem( ref, pax_pool_sem.w^);
49180 1631    7     !   ! 
49190 1632    8     !   ! IF NOT nil( ref) THEN
49200 1633    9     !   !   BEGIN
49210 1634   10     !   !   ! 
49220 1635   11     !   !   ! ref^.u1 := dte_rdata;
49230 1636   12     !   !   ! ref^.u2 := dte_default;
49240 1637   13     !   !   ! ref^.u3 := stream;
49250 1638   14     !   !   ! ref^.u4 := to_link;
49260 1639   15     !   !   ! 
49270 1640   16     !   !   ! LOCK ref AS rdata : dte_sdata_data DO
49280 1641   17     !   !   !   WITH rdata DO
49290 1642   18     !   !   !     BEGIN
49300 1643   19     !   !   !     ! first := sdata_first_val;
49310 1644   20     !   !   !     ! last  := sdata_first_val +l_control+ l_listen -1;
49320 1645   21     !   !   !     END;
49330 1646   22     !   !   ! 
49340 1647   23     !   !   ! signal( ref, dte_sem^);
49350 1648   24     !   !   END
49360 1649   25     !   ! ELSE
49370 1650   26     !   !   BEGIN
49380 1651   27     !   !   ! count( stat( no_pax_bufs));
49390 1652   28     !   !   ! IF tst>4 THEN
49400 1653   29     !   !   !   testout(z,"no rdata buf",0);
49410 1654   30     !   !   END;
49420 1655   31     !   END
49430 1656   32     END (* send-rdata-bufs *);
49440 1657           
\f

tsnetlst    81.06.15.   18.39.                                                    page    58

50010 1658          FUNCTION ok_receive_state (
50020 1659            VAR ref : reference
50030 1660            ) : boolean;
50040 1661              (*----------------------------------------------------------
50050 1662              . tests the dte-rdata-buffer
50060 1663              . in ( control.op-code and control.data )
50070 1664              . and checks the state of the stream
50080 1665              . value :
50090 1666              . true -- if data should be received by stream-receiver
50100 1667              . false - if it is an answer on a command
50110 1668              -------------------------------------------------------------*)
50120 1669          BEGIN
50130 1670    1     ! IF tst>64 THEN
50140 1671    2     !   testout(z,"ok-receiv-st", 0);
50150 1672    3     ! 
50160 1673    4     ! ok_receive_state := false;
50170 1674    5     ! 
50180 1675    6     ! LOCK ref AS rdata : dte_sdata_data DO
50190 1676    7     !   WITH stream_states( ref^.u3) DO
50200 1677    8     !     CASE state OF
50210 1678    9     !     ! 
50220 1679   10     !     ! free : (*-- the rdata is nonsens --*)
50230 1680   11     !     !   BEGIN
50240 1681   12     !     !   ! count( stat( nons_packets));
50250 1682   13     !     !   ! 
50260 1683   14     !     !   !   (*-- send clear stream --*)
50270 1684   15     !     !   ! 
50280 1685   16     !     !   !   (*--?????????--*)
50290 1686   17     !     !   ! 
50300 1687   18     !     !   END;
50310 1688   19     !     !  
\f

tsnetlst    81.06.15.   18.39.                                                    page    59

51010 1689   20     !     ! calling :
51020 1690   21     !     !     (*-----  dte-aic,  dte-rejic and dte-clr is interesting ---*)
51030 1691   22     !     !   BEGIN
51040 1692   23     !     !   ! CASE rdata.control.op_code OF
51050 1693   24     !     !   ! ! 
51060 1694   25     !     !   ! ! dte_aic :
51070 1695   26     !     !   ! !     (*----- the call has been accepted -----*)
51080 1696   27     !     !   ! !   BEGIN
51090 1697   28     !     !   ! !   ! 
51100 1698   29     !     !   ! !   ! update_stream_state( ref^.u3, new_stat, sending);
51110 1699   30     !     !   ! !   ! 
51120 1700   31     !     !   ! !   ! IF (rdata.control.n_r_inc = v_s_inc)
51130 1701   32     !     !   ! !   !   AND (rdata.control.n_r = v_s) THEN
51140 1702   33     !     !   ! !   !   IF rdata.control.data = data_received THEN
51150 1703   34     !     !   ! !   !     release_uo_data( accept, ref^.u3)
51160 1704   35     !     !   ! !   !   ELSE
51170 1705   36     !     !   ! !   !     IF rdata.control.data = data_not_received THEN
51180 1706   37     !     !   ! !   !       retransmit_data( ref^.u3);
51190 1707   38     !     !   ! !   ! 
51200 1708   39     !     !   ! !   END;
51210 1709   40     !     !   ! ! 
51220 1710   41     !     !   ! ! dte_rejic :
51230 1711   42     !     !   ! !     (*------- the call was rejected ---*)
51240 1712   43     !     !   ! !   BEGIN
51250 1713   44     !     !   ! !   ! 
51260 1714   45     !     !   ! !   ! IF rdata.control.data = data_received THEN
51270 1715   46     !     !   ! !   !   BEGIN
51280 1716   47     !     !   ! !   !   ! release_uo_data( accept, ref^.u3);
51290 1717   48     !     !   ! !   !   ! 
51300 1718   49     !     !   ! !   !   !   (* clear stream *)
51310 1719   50     !     !   ! !   !   !   (*-----?????????????------*)
51320 1720   51     !     !   ! !   !   END
51330 1721   52     !     !   ! !   ! ELSE
51340 1722   53     !     !   ! !   !   IF rdata.control.data = data_not_received THEN
51350 1723   54     !     !   ! !   !     BEGIN
51360 1724   55     !     !   ! !   !     ! act_pax_addr := stream_states( ref^.u3).pax_addr;
51370 1725   56     !     !   ! !   !     ! make_a_call( ref^.u3);
51380 1726   57     !     !   ! !   !     END;
51390 1727   58     !     !   ! !   END;
51400 1728   59     !     !   ! !  
\f

tsnetlst    81.06.15.   18.39.                                                    page    60

52010 1729   60     !     !   ! ! opc_receipt :
52020 1730   61     !     !   ! !     (*--------- data receipt from remote netcon -------*)
52030 1731   62     !     !   ! !   
52040 1732   63     !     !   ! !   IF (rdata.control.n_r_inc = v_s_inc)
52050 1733   64     !     !   ! !     AND (rdata.control.n_r = v_s) THEN
52060 1734   65     !     !   ! !     IF rdata.control.data = data_received THEN
52070 1735   66     !     !   ! !       release_uo_data( accept, ref^.u3)
52080 1736   67     !     !   ! !     ELSE
52090 1737   68     !     !   ! !       IF rdata.control.data = data_not_received THEN
52100 1738   69     !     !   ! !         retransmit_data( ref^.u3);
52110 1739   70     !     !   ! ! 
52120 1740   71     !     !   ! ! dte_clr :
52130 1741   72     !     !   ! !     (*-----  clear from remote netcon ---*)
52140 1742   73     !     !   ! !   
52150 1743   74     !     !   ! !     (*--- clear stream ---*)
52160 1744   75     !     !   ! !     (*---??????????????---*)
52170 1745   76     !     !   ! !   BEGIN
52180 1746   77     !     !   ! !   END;
52190 1747   78     !     !   ! ! 
52200 1748   79     !     !   ! ! OTHERWISE
52210 1749   80     !     !   ! !   (*------ nonsens  ---*)
52220 1750   81     !     !   ! ! BEGIN
52230 1751   82     !     !   ! ! ! count( stat( nons_packets));
52240 1752   83     !     !   ! ! END;
52250 1753   84     !     !   ! ! 
52260 1754   85     !     !   ! END (*case *)
52270 1755   86     !     !   ! 
52280 1756   87     !     !   END (*calling *);
52290 1757   88     !     !  
\f

tsnetlst    81.06.15.   18.39.                                                    page    61

53010 1758   89     !     ! sending :
53020 1759   90     !     !     (*----- opc-receipt and opc-command are interesting ----*)
53030 1760   91     !     !   BEGIN
53040 1761   92     !     !   ! CASE rdata.control.op_code OF
53050 1762   93     !     !   ! ! 
53060 1763   94     !     !   ! ! opc_receipt :
53070 1764   95     !     !   ! !     (*--------- receipt for send uo-data ----- *)
53080 1765   96     !     !   ! !   BEGIN
53090 1766   97     !     !   ! !   ! IF (rdata.control.n_r_inc = v_s_inc)
53100 1767   98     !     !   ! !   !   AND (rdata.control.n_r = v_s) THEN
53110 1768   99     !     !   ! !   !   IF rdata.control.data = data_received THEN
53120 1769  100     !     !   ! !   !     release_uo_data( accept, ref^.u3)
53130 1770  101     !     !   ! !   !   ELSE
53140 1771  102     !     !   ! !   !     IF rdata.control.data = data_not_received THEN
53150 1772  103     !     !   ! !   !       retransmit_data( ref^.u3);
53160 1773  104     !     !   ! !   END;
53170 1774  105     !     !   ! ! 
53180 1775  106     !     !   ! ! opc_command :
53190 1776  107     !     !   ! !     (*--------- data-received on active stream ------- *)
53200 1777  108     !     !   ! !   BEGIN
53210 1778  109     !     !   ! !   ! ok_receive_state := true;
53220 1779  110     !     !   ! !   ! count( stat( reci_packets));
53230 1780  111     !     !   ! !   END;
53240 1781  112     !     !   ! ! 
53250 1782  113     !     !   ! ! dte_reset :
53260 1783  114     !     !   ! !     (*------- reset counters and retransmit data ------*)
53270 1784  115     !     !   ! !   BEGIN
53280 1785  116     !     !   ! !   END;
53290 1786  117     !     !   ! ! 
53300 1787  118     !     !   ! ! dte_clr :
53310 1788  119     !     !   ! !     (*----- send clear ok and make a new call -----*)
53320 1789  120     !     !   ! !   BEGIN
53330 1790  121     !     !   ! !   END;
53340 1791  122     !     !   ! ! OTHERWISE
53350 1792  123     !     !   ! ! count( stat( nons_packets));
53360 1793  124     !     !   ! ! 
53370 1794  125     !     !   ! END (* case *);
53380 1795  126     !     !   ! 
53390 1796  127     !     !   END; (* sending *)
53400 1797  128     !     !  
\f

tsnetlst    81.06.15.   18.39.                                                    page    62

54010 1798  129     !     ! receiving,
54020 1799  130     !     ! waiting :
54030 1800  131     !     !     (*------- opc-command, dte-clr and dte-reset are interesting --*)
54040 1801  132     !     !   BEGIN
54050 1802  133     !     !   ! CASE rdata.control.op_code OF
54060 1803  134     !     !   ! ! 
54070 1804  135     !     !   ! ! opc_command :
54080 1805  136     !     !   ! !     (*--------- data received on active stream -----*)
54090 1806  137     !     !   ! !   BEGIN
54100 1807  138     !     !   ! !   ! ok_receive_state := true;
54110 1808  139     !     !   ! !   ! count( stat( reci_packets));
54120 1809  140     !     !   ! !   ! update_stream_state( ref^.u3, new_stat, receiving);
54130 1810  141     !     !   ! !   END;
54140 1811  142     !     !   ! ! 
54150 1812  143     !     !   ! ! dte_reset :
54160 1813  144     !     !   ! !     (*-------  reset counters -----*)
54170 1814  145     !     !   ! !   BEGIN
54180 1815  146     !     !   ! !   END;
54190 1816  147     !     !   ! ! 
54200 1817  148     !     !   ! ! dte_clr :
54210 1818  149     !     !   ! !     (*----- send clear ok ------*)
54220 1819  150     !     !   ! !   BEGIN
54230 1820  151     !     !   ! !   END;
54240 1821  152     !     !   ! ! 
54250 1822  153     !     !   ! ! OTHERWISE
54260 1823  154     !     !   ! ! count( stat( nons_packets));
54270 1824  155     !     !   ! END(* case *)
54280 1825  156     !     !   ! 
54290 1826  157     !     !   END (* waiting *);
54300 1827  158     !     ! 
54310 1828  159     !     ! clearing :
54320 1829  160     !     !     (*------  implemented later ------*)
54330 1830  161     !     !   BEGIN
54340 1831  162     !     !   END;
54350 1832  163     !     ! 
54360 1833  164     !     ! resetting :
54370 1834  165     !     !     (*------ implemented later --------*)
54380 1835  166     !     !   BEGIN
54390 1836  167     !     !   END;
54400 1837  168     !     ! OTHERWISE;
54410 1838  169     !     ! 
54420 1839  170     !     END; (* case *)
54430 1840  171     ! 
54440 1841  172     END; (* procedure *)
54450 1842           
\f

tsnetlst    81.06.15.   18.39.                                                    page    63

55010 1843          PROCEDURE dte_result_handler (
55020 1844            VAR
55030 1845            ref : reference
55040 1846            );
55050 1847              (*----------------------------------------------------------
55060 1848              .  - handles all not ok results given from dte             .
55070 1849              ------------------------------------------------------------*)
55080 1850          BEGIN
55090 1851    1     ! IF tst>16 THEN
55100 1852    2     !   testout(z,"dte-res-nok ", ref^.u2);
55110 1853    3     ! 
55120 1854    4     ! CASE ref^.u1 OF
55130 1855    5     ! ! 
55140 1856    6     ! ! dte_rdata :
55150 1857    7     ! !   BEGIN
55160 1858    8     ! !   ! IF tst>16 THEN
55170 1859    9     ! !   !   testout(z,"dte-rdata-no",ref^.u2);
55180 1860   10     ! !   ! 
55190 1861   11     ! !   ! CASE in_ref^.u2 OF
55200 1862   12     ! !   ! ! 
55210 1863   13     ! !   ! ! dte_remo_clear : (* rejic or clear *)
55220 1864   14     ! !   ! !   
55230 1865   15     ! !   ! !   IF ok_receive_state( ref) THEN
55240 1866   16     ! !   ! !     BEGIN
55250 1867   17     ! !   ! !     ! signal( ref, pax_pool_sem.s^);
55260 1868   18     ! !   ! !     END;
55270 1869   19     ! !   ! ! 
55280 1870   20     ! !   ! ! OTHERWISE
55290 1871   21     ! !   ! ! BEGIN
55300 1872   22     ! !   ! ! ! return_rdata_buf( ref);
55310 1873   23     ! !   ! ! END
55320 1874   24     ! !   ! END (* case *);
55330 1875   25     ! !   ! 
55340 1876   26     ! !   END;
55350 1877   27     ! ! 
55360 1878   28     ! ! dte_aic, dte_rejic :
55370 1879   29     ! !   BEGIN
55380 1880   30     ! !   ! IF tst>16 THEN
55390 1881   31     ! !   !   testout(z,"in dte-ric  ",0);
55400 1882   32     ! !   ! signal( ref, pax_pool_sem.s^);
55410 1883   33     ! !   ! 
55420 1884   34     ! !   END;
55430 1885   35     ! ! 
55440 1886   36     ! ! dte_clr :
55450 1887   37     ! !   BEGIN
55460 1888   38     ! !   ! IF tst>16 THEN
\f

tsnetlst    81.06.15.   18.39.                                                    page    64

55470 1889   39     ! !   !   testout(z,"in dte-clr  ",0);
55480 1890   40     ! !   ! signal( ref, pax_pool_sem.s^);
55490 1891   41     ! !   ! 
55500 1892   42     ! !   END;
55510 1893   43     ! !  
\f

tsnetlst    81.06.15.   18.39.                                                    page    65

56010 1894   44     ! ! dte_res :
56020 1895   45     ! !   BEGIN
56030 1896   46     ! !   ! IF tst>16 THEN
56040 1897   47     ! !   !   testout(z,"in dte-res  ",0);
56050 1898   48     ! !   ! signal( ref, pax_pool_sem.s^);
56060 1899   49     ! !   ! 
56070 1900   50     ! !   END;
56080 1901   51     ! ! 
56090 1902   52     ! ! dte_stat :
56100 1903   53     ! !   BEGIN
56110 1904   54     ! !   ! IF tst>16 THEN
56120 1905   55     ! !   !   testout(z,"in dte-stat ",0);
56130 1906   56     ! !   ! signal( ref, pax_pool_sem.s^);
56140 1907   57     ! !   ! 
56150 1908   58     ! !   END;
56160 1909   59     ! ! 
56170 1910   60     ! ! dte_ric :
56180 1911   61     ! !   BEGIN
56190 1912   62     ! !   ! IF tst>16 THEN
56200 1913   63     ! !   !   testout(z,"in dte-ric  ",0);
56210 1914   64     ! !   ! signal( ref, pax_pool_sem.s^);
56220 1915   65     ! !   ! 
56230 1916   66     ! !   END
56240 1917   67     ! !   
56250 1918   68     ! !   OTHERWISE
56260 1919   69     ! !   BEGIN
56270 1920   70     ! !   ! IF tst>16 THEN
56280 1921   71     ! !   !   testout(z,"in unkn fct ",0);
56290 1922   72     ! !   ! signal( ref, pax_pool_sem.s^);
56300 1923   73     ! !   ! 
56310 1924   74     ! !   END;
56320 1925   75     ! ! 
56330 1926   76     ! ! ref^.u2 := dte_default;
56340 1927   77     ! ! signal( ref, dte_sem^);
56350 1928   78     ! ! 
56360 1929   79     ! END;
56370 1930   80     END;
56380 1931          
56390 1932           
\f

tsnetlst    81.06.15.   18.39.                                                    page    66

57010 1933          PROCEDURE ts_wait (
57020 1934            VAR
57030 1935            mes_ref : reference;
57040 1936            VAR
57050 1937            sem_ptr : sempointer
57060 1938            );
57070 1939            
57080 1940              (*----------------------------------------------------------------
57090 1941              .   wait with return of dummy messages                         .
57100 1942              ----------------------------------------------------------------*)
57110 1943            
57120 1944          BEGIN
57130 1945    1     ! 
57140 1946    2     ! wait( mes_ref, sem_ptr^);
57150 1947    3     ! 
57160 1948    4     ! WHILE (mes_ref^.u3 = dummy_route)
57170 1949    5     !   AND NOT ownertest( timer_pool, mes_ref) DO
57180 1950    6     !   BEGIN
57190 1951    7     !   ! IF tst>4 THEN
57200 1952    8     !   !   testout(z,"dummybuf ret",0);
57210 1953    9     !   ! 
57220 1954   10     !   ! signal(mes_ref, pax_pool_sem.s^);
57230 1955   11     !   ! wait( mes_ref, sem_ptr^);
57240 1956   12     !   END;
57250 1957   13     ! 
57260 1958   14     END (* ts_wait *);
57270 1959          
57280 1960          
57290 1961           
\f

tsnetlst    81.06.15.   18.39.                                                    page    67

58010 1962            (*---------------------------------------------------------------
58020 1963            .   main program                                                .
58030 1964            -----------------------------------------------------------------*)
58040 1965          
58050 1966        BEGIN
58060 1967    1   ! 
58070 1968    2   ! testopen( z, own.incname, op_sem);
58080 1969    3   ! testout(  z, version    , al_env_version);
58090 1970    4   ! 
58100 1971    5   ! write_create_pars;
58110 1972    6   ! 
58120 1973    7   !   (*---  initialize internal tables  ---*)
58130 1974    8   ! 
58140 1975    9   ! local_mac_top := 2;
58150 1976   10   ! pax_table_top := dc_index + 1;
58160 1977   11   ! 
58170 1978   12   ! init_stream_states;
58180 1979   13   ! init_pax_table;
58190 1980   14   ! 
58200 1981   15   ! 
58210 1982   16   ! 
58220 1983   17   !   (*---  listen at dte               ---*)
58230 1984   18   ! 
58240 1985   19   ! make_ric_bufs( all_ric_bufs);
58250 1986   20   ! 
58260 1987   21   ! 
58270 1988   22   ! alloc( ref, timer_pool, main_sem.s^);
58280 1989   23   ! send_to_systimer( ref);
58290 1990   24   ! 
58300 1991   25   ! 
58310 1992   26   !  
\f

tsnetlst    81.06.15.   18.39.                                                    page    68

59010 1993   27   !   (*------------------------------------------------------------
59020 1994   28   !   .   main loop                                                .
59030 1995   29   !   --------------------------------------------------------------*)
59040 1996   30   ! 
59050 1997   31   ! REPEAT     (* until forever *)
59060 1998   32   ! ! 
59070 1999   33   ! ! ts_wait( in_ref, main_sem.w);
59080 2000   34   ! ! 
59090 2001   35   ! ! IF ownertest ( timer_pool, in_ref) THEN
59100 2002   36   ! !   BEGIN
59110 2003   37   ! !   !   (*-------------------------------------------------------
59120 2004   38   ! !   !   .  buffer from TIMER
59130 2005   39   ! !   !   ---------------------------------------------------------*)
59140 2006   40   ! !   ! 
59150 2007   41   ! !   ! send_to_systimer( in_ref);
59160 2008   42   ! !   ! 
59170 2009   43   ! !   ! FOR i := min_stream_no-1 TO max_stream_no DO
59180 2010   44   ! !   !   WITH stream_states(i) DO
59190 2011   45   ! !   !     BEGIN
59200 2012   46   ! !   !     !   (*--- check timeout for all buffers in first-queue ----*)
59210 2013   47   ! !   !     ! j:= 1;
59220 2014   48   ! !   !     ! 
59230 2015   49   ! !   !     ! WHILE j <= l_f_q DO
59240 2016   50   ! !   !     !   IF timers(j) > 0 THEN
59250 2017   51   ! !   !     !     BEGIN
59260 2018   52   ! !   !     !     ! timers(j) := timers(j) -1;
59270 2019   53   ! !   !     !     ! 
59280 2020   54   ! !   !     !     ! IF timers(j) = 0 THEN
59290 2021   55   ! !   !     !     !   BEGIN
59300 2022   56   ! !   !     !     !   ! 
59310 2023   57   ! !   !     !     !   ! IF tst>4 THEN
59320 2024   58   ! !   !     !     !   !   testout(z,"timeout on  ", i*100+j);
59330 2025   59   ! !   !     !     !   ! 
59340 2026   60   ! !   !     !     !   ! 
59350 2027   61   ! !   !     !     !   !   (* reject uo data *)
59360 2028   62   ! !   !     !     !   ! sensesem( t_ref, first_queue);
59370 2029   63   ! !   !     !     !   ! 
59380 2030   64   ! !   !     !     !   ! IF NOT nil( t_ref) THEN
59390 2031   65   ! !   !     !     !   !   BEGIN
59400 2032   66   ! !   !     !     !   !   ! LOCK t_ref AS a:alarmlabel DO
59410 2033   67   ! !   !     !     !   !   !   local_macro := a.send.macro;
59420 2034   68   ! !   !     !     !   !   ! 
59430 2035   69   ! !   !     !     !   !   ! k := local_transmitter( nil_ref, local_macro);
59440 2036   70   ! !   !     !     !   !   ! 
59450 2037   71   ! !   !     !     !   !   ! reject_message
59460 2038   72   ! !   !     !     !   !   ! ( t_ref, local_sems(k), netc_route1, local_macro,
\f

tsnetlst    81.06.15.   18.39.                                                    page    69

59470 2039   73   ! !   !     !     !   !   ! netc_mic_addr, not_ready);
59480 2040   74   ! !   !     !     !   !   END;
59490 2041   75   ! !   !     !     !   ! 
59500 2042   76   ! !   !     !     !   ! update_stream_state(i,dec_f_q, free);
59510 2043   77   ! !   !     !     !   END
59520 2044   78   ! !   !     !     ! ELSE
59530 2045   79   ! !   !     !     !   j:=j+1
59540 2046   80   ! !   !     !     END
59550 2047   81   ! !   !     !   ELSE
59560 2048   82   ! !   !     !     BEGIN
59570 2049   83   ! !   !     !     ! IF tst>4 THEN
59580 2050   84   ! !   !     !     !   testout(z,"wrong timer ", j);
59590 2051   85   ! !   !     !     ! timers(j) := 60;
59600 2052   86   ! !   !     !     ! j:= l_f_q +1;
59610 2053   87   ! !   !     !     END;
59620 2054   88   ! !   !     ! 
59630 2055   89   ! !   !     ! IF NOT nil( act_out) THEN
59640 2056   90   ! !   !     !   IF retrans_timer >= 0 THEN
59650 2057   91   ! !   !     !     BEGIN
59660 2058   92   ! !   !     !     ! 
59670 2059   93   ! !   !     !     ! IF retrans_timer = 0 THEN
59680 2060   94   ! !   !     !     !   BEGIN
59690 2061   95   ! !   !     !     !   !   (*--- the action is dependent on the stream state --*)
59700 2062   96   ! !   !     !     !   ! 
59710 2063   97   ! !   !     !     !   ! CASE state OF
59720 2064   98   ! !   !     !     !   ! ! free : (* do nothing *)
59730 2065   99   ! !   !     !     !   ! !   BEGIN
59740 2066  100   ! !   !     !     !   ! !   ! release_uo_data( reject, i);
59750 2067  101   ! !   !     !     !   ! !   END;
59760 2068  102   ! !   !     !     !   ! ! 
59770 2069  103   ! !   !     !     !   ! ! calling : (* make a new call *)
59780 2070  104   ! !   !     !     !   ! !   BEGIN
59790 2071  105   ! !   !     !     !   ! !   ! retrans_count := retrans_count +1;
59800 2072  106   ! !   !     !     !   ! !   ! 
59810 2073  107   ! !   !     !     !   ! !   ! IF retrans_count <= max_retrans THEN
59820 2074  108   ! !   !     !     !   ! !   !   BEGIN
59830 2075  109   ! !   !     !     !   ! !   !   ! retrans_timer := retrans_timo;
59840 2076  110   ! !   !     !     !   ! !   !   ! act_pax_addr := pax_addr;
59850 2077  111   ! !   !     !     !   ! !   !   ! make_a_call(i);
59860 2078  112   ! !   !     !     !   ! !   !   END
59870 2079  113   ! !   !     !     !   ! !   ! ELSE
59880 2080  114   ! !   !     !     !   ! !   !   BEGIN (* reject the packet *)
59890 2081  115   ! !   !     !     !   ! !   !   ! count( stat( lost_packets));
59900 2082  116   ! !   !     !     !   ! !   !   ! release_uo_data( reject, i);
59910 2083  117   ! !   !     !     !   ! !   !   END;
59920 2084  118   ! !   !     !     !   ! !   END;
\f

tsnetlst    81.06.15.   18.39.                                                    page    70

59930 2085  119   ! !   !     !     !   ! !  
\f

tsnetlst    81.06.15.   18.39.                                                    page    71

60010 2086  120   ! !   !     !     !   ! ! sending : (* send again *)
60020 2087  121   ! !   !     !     !   ! !   retransmit_data(i);
60030 2088  122   ! !   !     !     !   ! ! 
60040 2089  123   ! !   !     !     !   ! ! waiting,
60050 2090  124   ! !   !     !     !   ! ! clearing : (*- clear stream -*)
60060 2091  125   ! !   !     !     !   ! !   BEGIN
60070 2092  126   ! !   !     !     !   ! !   !   (*--- ??????? --*)
60080 2093  127   ! !   !     !     !   ! !   ! testout(z,"* state err1", 1);
60090 2094  128   ! !   !     !     !   ! !   END;
60100 2095  129   ! !   !     !     !   ! ! 
60110 2096  130   ! !   !     !     !   ! ! resetting : (*-- reset stream ---*)
60120 2097  131   ! !   !     !     !   ! !   BEGIN
60130 2098  132   ! !   !     !     !   ! !   !   (*--- ??????? --*)
60140 2099  133   ! !   !     !     !   ! !   END;
60150 2100  134   ! !   !     !     !   ! ! 
60160 2101  135   ! !   !     !     !   ! ! receiving : (* do nothing *)
60170 2102  136   ! !   !     !     !   ! !   BEGIN
60180 2103  137   ! !   !     !     !   ! !   ! testout(z,"* state err2", 2);
60190 2104  138   ! !   !     !     !   ! !   END
60200 2105  139   ! !   !     !     !   ! !   OTHERWISE;
60210 2106  140   ! !   !     !     !   ! END ; (* case *)
60220 2107  141   ! !   !     !     !   END
60230 2108  142   ! !   !     !     ! ELSE
60240 2109  143   ! !   !     !     !   retrans_timer := retrans_timer -1;
60250 2110  144   ! !   !     !     END;
60260 2111  145   ! !   !     END
60270 2112  146   ! !   END
60280 2113  147   ! !    
\f

tsnetlst    81.06.15.   18.39.                                                    page    72

61010 2114  148   ! ! ELSE
61020 2115  149   ! !   
61030 2116  150   ! !   IF in_ref^.u4 = to_link THEN
61040 2117  151   ! !     BEGIN   (*  a buffer from dte  *)
61050 2118  152   ! !     !   (*-----------------------------------
61060 2119  153   ! !     !   .  buffer from DTE
61070 2120  154   ! !     !   -------------------------------------*)
61080 2121  155   ! !     ! 
61090 2122  156   ! !     ! IF in_ref^.u2 = dte_ok_result THEN
61100 2123  157   ! !     !   BEGIN       (* all went well at dte *)
61110 2124  158   ! !     !   ! CASE in_ref^.u1 OF
61120 2125  159   ! !     !   ! ! 
61130 2126  160   ! !     !   ! ! dte_car :                 (* ok-answer on call request *)
61140 2127  161   ! !     !   ! !   BEGIN
61150 2128  162   ! !     !   ! !   ! IF tst>16 THEN
61160 2129  163   ! !     !   ! !   !   testout(z,"dte-car-ok  ",0);
61170 2130  164   ! !     !   ! !   ! signal( in_ref, pax_pool_sem.s^);
61180 2131  165   ! !     !   ! !   END;
61190 2132  166   ! !     !   ! ! 
61200 2133  167   ! !     !   ! ! dte_aic, dte_rejic :      (* ok-answer on receipt on call *)
61210 2134  168   ! !     !   ! !   BEGIN
61220 2135  169   ! !     !   ! !   ! IF tst>16 THEN
61230 2136  170   ! !     !   ! !   !   testout(z,"dte-rec-ok  ",0);
61240 2137  171   ! !     !   ! !   ! signal( in_ref, pax_pool_sem.s^);
61250 2138  172   ! !     !   ! !   END;
61260 2139  173   ! !     !   ! ! 
61270 2140  174   ! !     !   ! ! dte_clr :                 (* ok-answer on clear request *)
61280 2141  175   ! !     !   ! !   BEGIN
61290 2142  176   ! !     !   ! !   ! IF tst>16 THEN
61300 2143  177   ! !     !   ! !   !   testout(z,"dte-clr-ok  ", 0);
61310 2144  178   ! !     !   ! !   ! signal( in_ref, pax_pool_sem.s^);
61320 2145  179   ! !     !   ! !   END;
61330 2146  180   ! !     !   ! !  
\f

tsnetlst    81.06.15.   18.39.                                                    page    73

62010 2147  181   ! !     !   ! ! dte_res :                 (* ok-answer on reset request *)
62020 2148  182   ! !     !   ! !   BEGIN
62030 2149  183   ! !     !   ! !   ! IF tst>16 THEN
62040 2150  184   ! !     !   ! !   !   testout(z,"dte-reset-ok",0);
62050 2151  185   ! !     !   ! !   ! signal( in_ref, pax_pool_sem.s^);
62060 2152  186   ! !     !   ! !   END;
62070 2153  187   ! !     !   ! ! 
62080 2154  188   ! !     !   ! ! dte_stat :                (* ok-answer on stream status *)
62090 2155  189   ! !     !   ! !   BEGIN
62100 2156  190   ! !     !   ! !   ! IF tst>16 THEN
62110 2157  191   ! !     !   ! !   !   testout(z,"dte-stat-ok ",0);
62120 2158  192   ! !     !   ! !   ! signal( in_ref, pax_pool_sem.s^);
62130 2159  193   ! !     !   ! !   END;
62140 2160  194   ! !     !   ! ! 
62150 2161  195   ! !     !   ! !  
\f

tsnetlst    81.06.15.   18.39.                                                    page    74

63010 2162  196   ! !     !   ! ! dte_sdata :                   (* ok-answer on send data *)
63020 2163  197   ! !     !   ! !   BEGIN
63030 2164  198   ! !     !   ! !   ! IF tst>16 THEN
63040 2165  199   ! !     !   ! !   !   testout(z,"dte-sdata-ok",0);
63050 2166  200   ! !     !   ! !   ! signal( in_ref, pax_pool_sem.s^);
63060 2167  201   ! !     !   ! !   ! 
63070 2168  202   ! !     !   ! !   END;
63080 2169  203   ! !     !   ! ! 
63090 2170  204   ! !     !   ! ! dte_rdata :                   (* ok-answer on receive data *)
63100 2171  205   ! !     !   ! !   BEGIN
63110 2172  206   ! !     !   ! !   ! IF tst>16 THEN
63120 2173  207   ! !     !   ! !   !   testout(z,"dte-rdata-ok",0);
63130 2174  208   ! !     !   ! !   ! 
63140 2175  209   ! !     !   ! !   ! IF ok_receive_state( in_ref) THEN
63150 2176  210   ! !     !   ! !   !   i := stream_receiver( dte_rdata, in_ref);
63160 2177  211   ! !     !   ! !   ! 
63170 2178  212   ! !     !   ! !   ! return_rdata_buf( in_ref);
63180 2179  213   ! !     !   ! !   ! 
63190 2180  214   ! !     !   ! !   END;
63200 2181  215   ! !     !   ! ! 
63210 2182  216   ! !     !   ! ! dte_ric :                     (* ok-answer on receive call *)
63220 2183  217   ! !     !   ! !   BEGIN
63230 2184  218   ! !     !   ! !   ! IF tst>16 THEN
63240 2185  219   ! !     !   ! !   !   testout(z,"dte-ric-ok  ", 0);
63250 2186  220   ! !     !   ! !   ! 
63260 2187  221   ! !     !   ! !   ! i := stream_receiver( dte_ric, in_ref);
63270 2188  222   ! !     !   ! !   ! 
63280 2189  223   ! !     !   ! !   ! in_ref^.u2 := dte_default;
63290 2190  224   ! !     !   ! !   ! 
63300 2191  225   ! !     !   ! !   ! signal( in_ref, dte_sem^);
63310 2192  226   ! !     !   ! !   END
63320 2193  227   ! !     !   ! !   
63330 2194  228   ! !     !   ! !   OTHERWISE
63340 2195  229   ! !     !   ! !   BEGIN
63350 2196  230   ! !     !   ! !   ! signal( in_ref, pax_pool_sem.s^);
63360 2197  231   ! !     !   ! !   END
63370 2198  232   ! !     !   ! END (* case *);
63380 2199  233   ! !     !   END
63390 2200  234   ! !     ! ELSE
63400 2201  235   ! !     !   BEGIN
63410 2202  236   ! !     !   ! dte_result_handler( in_ref);
63420 2203  237   ! !     !   ! 
63430 2204  238   ! !     !   ! IF NOT nil( in_ref) THEN
63440 2205  239   ! !     !   !   BEGIN
63450 2206  240   ! !     !   !   ! IF tst>16 THEN
63460 2207  241   ! !     !   !   !   testout(z,"resulthandle",0);
\f

tsnetlst    81.06.15.   18.39.                                                    page    75

63470 2208  242   ! !     !   !   ! signal( in_ref, pax_pool_sem.s^);
63480 2209  243   ! !     !   !   END
63490 2210  244   ! !     !   END
63500 2211  245   ! !     END
63510 2212  246   ! !      
\f

tsnetlst    81.06.15.   18.39.                                                    page    76

64010 2213  247   ! !   ELSE
64020 2214  248   ! !     IF in_ref^.u4 = dyn_test THEN
64030 2215  249   ! !       BEGIN
64040 2216  250   ! !       !   (*----------------------------------------------------
64050 2217  251   ! !       !   .  buffer to set testmode
64060 2218  252   ! !       !   ------------------------------------------------------*)
64070 2219  253   ! !       ! 
64080 2220  254   ! !       ! tst := in_ref^.u3;
64090 2221  255   ! !       ! 
64100 2222  256   ! !       ! CASE in_ref^.u2 OF
64110 2223  257   ! !       ! ! 1: LOCK in_ref AS buf : stat_type DO
64120 2224  258   ! !       ! !     buf := stat;
64130 2225  259   ! !       ! ! 2: LOCK in_ref AS buf : paxnet_e DO
64140 2226  260   ! !       ! !     buf := pax_table(in_ref^.u1);
64150 2227  261   ! !       ! ! 
64160 2228  262   ! !       ! ! 3: LOCK in_ref AS buf : RECORD
64170 2229  263   ! !       ! !                           !  lfq,lsq : integer;
64180 2230  264   ! !       ! !                           !  p_addr : ext_pax_addr;
64190 2231  265   ! !       ! !                           !  r_t,r_to,r_c,m_r,v_s_i,vs,v_r_i,vr : byte;
64200 2232  266   ! !       ! !                           !  t_1 : integer
64210 2233  267   ! !       ! !     END DO
64220 2234  268   ! !       ! !     WITH buf DO
64230 2235  269   ! !       ! !       WITH stream_states( in_ref^.u1) DO
64240 2236  270   ! !       ! !         BEGIN
64250 2237  271   ! !       ! !         ! lfq:=l_f_q;
64260 2238  272   ! !       ! !         ! lsq:=l_s_q;
64270 2239  273   ! !       ! !         ! p_addr:=pax_addr;
64280 2240  274   ! !       ! !         ! r_t:=retrans_timer;
64290 2241  275   ! !       ! !         ! r_to := retrans_timo;
64300 2242  276   ! !       ! !         ! r_c := retrans_count;
64310 2243  277   ! !       ! !         ! m_r := max_retrans;
64320 2244  278   ! !       ! !         ! v_s_i := v_s_inc;
64330 2245  279   ! !       ! !         ! vs:= v_s;
64340 2246  280   ! !       ! !         ! v_r_i := v_r_inc;
64350 2247  281   ! !       ! !         ! vr := v_r;
64360 2248  282   ! !       ! !         ! t_1 := timers(1);
64370 2249  283   ! !       ! !         END;
64380 2250  284   ! !       ! ! OTHERWISE;
64390 2251  285   ! !       ! END (* case *);
64400 2252  286   ! !       ! 
64410 2253  287   ! !       ! return( in_ref);
64420 2254  288   ! !       END
64430 2255  289   ! !        
\f

tsnetlst    81.06.15.   18.39.                                                    page    77

65010 2256  290   ! !     ELSE
65020 2257  291   ! !         (*-------------------------------------
65030 2258  292   ! !         .   buffer from SUPERVISOR
65040 2259  293   ! !         ---------------------------------------*)
65050 2260  294   ! !       
65060 2261  295   ! !       IF (in_ref^.u3 >= netc_route)
65070 2262  296   ! !         AND (in_ref^.u3 <= netc_route2 ) THEN
65080 2263  297   ! !         BEGIN                       (*  message to paxnet  *)
65090 2264  298   ! !         ! 
65100 2265  299   ! !         ! IF tst>16 THEN
65110 2266  300   ! !         !   testout(z,"sup-buffer  ", (in_ref^.u4 DIV 16)*100+in_ref^.u4 MOD 16);
65120 2267  301   ! !         ! 
65130 2268  302   ! !         ! LOCK in_ref AS buf : alarmlabel DO
65140 2269  303   ! !         !   alarm_macro := buf.rec.macro;
65150 2270  304   ! !         ! 
65160 2271  305   ! !         ! 
65170 2272  306   ! !         ! IF in_ref^.u3 = netc_route1 THEN
65180 2273  307   ! !         !   handle_10_12_mess( in_ref)
65190 2274  308   ! !         !    
\f

tsnetlst    81.06.15.   18.39.                                                    page    78

66010 2275  309   ! !         ! ELSE
66020 2276  310   ! !         !   BEGIN
66030 2277  311   ! !         !   !   (*-- a message to the net --*)
66040 2278  312   ! !         !   ! 
66050 2279  313   ! !         !   ! act_pax_index := local_receiver( in_ref, alarm_macro);
66060 2280  314   ! !         !   ! 
66070 2281  315   ! !         !   ! IF NOT nil( in_ref) THEN
66080 2282  316   ! !         !   !   
66090 2283  317   ! !         !   !   IF act_pax_index < pax_table_top THEN    (* the alarmmacro is in pax-table *)
66100 2284  318   ! !         !   !     BEGIN
66110 2285  319   ! !         !   !     ! 
66120 2286  320   ! !         !   !     ! IF tst>16 THEN
66130 2287  321   ! !         !   !     !   testout(z,"macro in tab", act_pax_index);
66140 2288  322   ! !         !   !     ! 
66150 2289  323   ! !         !   !     ! act_pax_addr := pax_table( act_pax_index).pax_addr;
66160 2290  324   ! !         !   !     ! 
66170 2291  325   ! !         !   !     ! IF NOT connec_to_addr( act_stream_index) THEN
66180 2292  326   ! !         !   !     !   BEGIN           (* no stream active to this address *)
66190 2293  327   ! !         !   !     !   !   (* and no waiting on this address *)
66200 2294  328   ! !         !   !     !   ! 
66210 2295  329   ! !         !   !     !   ! act_stream_index := free_stream;
66220 2296  330   ! !         !   !     !   ! 
66230 2297  331   ! !         !   !     !   ! IF act_stream_index < min_stream_no THEN
66240 2298  332   ! !         !   !     !   !   BEGIN        (* no streams are ready for use *)
66250 2299  333   ! !         !   !     !   !   ! IF tst>16 THEN
66260 2300  334   ! !         !   !     !   !   !   testout( z, "no streams  ",in_ref^.u4);
66270 2301  335   ! !         !   !     !   !   ! send_to_wait( in_ref, act_pax_index);
66280 2302  336   ! !         !   !     !   !   END
66290 2303  337   ! !         !   !     !   ! ELSE
66300 2304  338   ! !         !   !     !   !   BEGIN        (* act-stream-index points to an idle stream *)
66310 2305  339   ! !         !   !     !   !   ! 
66320 2306  340   ! !         !   !     !   !   ! IF tst>16 THEN
66330 2307  341   ! !         !   !     !   !   !   testout( z, "idle stream ", act_stream_index);
66340 2308  342   ! !         !   !     !   !   ! start_stream( in_ref,act_stream_index, act_pax_index);
66350 2309  343   ! !         !   !     !   !   END
66360 2310  344   ! !         !   !     !   END
66370 2311  345   ! !         !   !     ! ELSE
66380 2312  346   ! !         !   !     !   BEGIN
66390 2313  347   ! !         !   !     !   !   (*  index at act-pax-index points to active stream  *)
66400 2314  348   ! !         !   !     !   ! 
66410 2315  349   ! !         !   !     !   ! in_ref^.u1 := act_pax_index MOD 256 ;
66420 2316  350   ! !         !   !     !   ! send_to_stream( in_ref, act_stream_index);
66430 2317  351   ! !         !   !     !   END;
66440 2318  352   ! !         !   !     END
66450 2319  353   ! !         !   !      
\f

tsnetlst    81.06.15.   18.39.                                                    page    79

67010 2320  354   ! !         !   !   ELSE
67020 2321  355   ! !         !   !       (*---  reject with unknown receiver ---*)
67030 2322  356   ! !         !   !     IF in_ref^.u4 = #h12 THEN
67040 2323  357   ! !         !   !       return( in_ref)
67050 2324  358   ! !         !   !     ELSE
67060 2325  359   ! !         !   !       BEGIN
67070 2326  360   ! !         !   !       !   (*-- no alarmmacro in table --*)
67080 2327  361   ! !         !   !       ! 
67090 2328  362   ! !         !   !       ! LOCK in_ref AS a : alarmlabel DO
67100 2329  363   ! !         !   !       !   local_macro := a.send.macro;
67110 2330  364   ! !         !   !       ! k := local_transmitter( nil_ref, local_macro);
67120 2331  365   ! !         !   !       ! 
67130 2332  366   ! !         !   !       ! reject_message
67140 2333  367   ! !         !   !       ! ( in_ref, local_sems(k), netc_route1, local_macro,
67150 2334  368   ! !         !   !       ! netc_mic_addr, unknown_receiver);
67160 2335  369   ! !         !   !       ! 
67170 2336  370   ! !         !   !       END;
67180 2337  371   ! !         !   END
67190 2338  372   ! !         END
67200 2339  373   ! !          
\f

tsnetlst    81.06.15.   18.39.                                                    page    80

68010 2340  374   ! !       ELSE
68020 2341  375   ! !         IF in_ref^.u4 = #h12 THEN
68030 2342  376   ! !           return( in_ref)
68040 2343  377   ! !         ELSE
68050 2344  378   ! !           BEGIN                       (*  message from paxnet  *)
68060 2345  379   ! !           ! IF tst>4 THEN
68070 2346  380   ! !           !   BEGIN
68080 2347  381   ! !           !   ! testout( z, "unknown mess", in_ref^.u3);
68090 2348  382   ! !           !   ! testout( z, "in notownbuf", in_ref^.u4);
68100 2349  383   ! !           !   END;
68110 2350  384   ! !           ! 
68120 2351  385   ! !           ! LOCK in_ref AS a : alarmlabel DO
68130 2352  386   ! !           !   local_macro := a.send.macro;
68140 2353  387   ! !           ! k := local_transmitter( nil_ref, local_macro);
68150 2354  388   ! !           ! 
68160 2355  389   ! !           ! reject_message
68170 2356  390   ! !           ! ( in_ref, local_sems(k), netc_route1, local_macro,
68180 2357  391   ! !           ! netc_mic_addr, unknown_route);
68190 2358  392   ! !           ! 
68200 2359  393   ! !           END;
68210 2360  394   ! ! 
68220 2361  395   ! UNTIL false;
68230 2362  396   END.
68240 2363      
68250 2364      
\f

tsnetlst    81.06.15.   18.39.                                                    page    81

           0   66*   68*  110*  132*  298   352   353   354   355   358   359   361   362   365   437 
              526   531   531   531   532   591   608   626   688   748   822   829   865  1007* 1163 
             1304  1359  1403  1475  1484  1506  1568  1585  1653  1671  1881  1889  1897  1905  1913 
             1921  1952  2016  2020  2056  2059  2129  2136  2143  2150  2157  2165  2173  2185  2207 
           1   89*  113*  150*  174*  174*  177*  296   308   321   333   349   360   364   411   412 
              413   417   442   442   478   482   483   489   489   492   494   495   497   525   529 
              533   539   568   573   588   589   590   676   819   825   838   879   968*  983  1150*
             1160  1166  1168  1170  1256  1262  1264  1284  1301  1347  1392  1452  1501  1530  1608 
             1628  1644  1976  2009  2013  2018  2045  2052  2071  2093  2109  2223: 2248 
           2   70*   72*  114*  521   676  1472  1975  2103  2225:
           3  115*  278  2228:
           4  116*  687   804  1313  1358  1402  1483  1652  1951  2023  2049  2345 
           5  117*
           6  118*  279 
           7  119*  552 
           8  120*  280 
           9  121*  280 
          10  122*  280 
          11  123*
          12  124*
          13  126*  532 
          14  127*  358 
          15  128*
          16   89*  129*  132*  831   885   903   924   935   945  1048  1107  1851  1858  1880  1888 
             1896  1904  1912  1920  2128  2135  2142  2149  2156  2164  2172  2184  2206  2265  2266 
             2266  2286  2299  2306 
          50  551 
          60 2051 
          64  336   423   509   575   594   632   682   715   735   747   858   953   992  1021  1064 
             1090  1121  1165  1174  1201  1234  1265  1281  1330  1374  1432  1494  1526  1602  1625 
             1670 
         100  300   301   302   303   304   305   306  2024  2266 
         255  134*
         256  588   590  1054  1054  1111  1111  1530  2315 
a              82*  430*  440   445   500   503   507   769   771   772   773   773   774   775  1237:
             1238  1543: 1544  2032: 2033  2328: 2329  2351: 2352 
abuf          673:  675   676   731:  733=  868:  870   871  1041: 1043  1045  1096: 1098  1102  1469:
             1471  1472 
accept         87* 1535  1572  1584  1703  1716  1735  1769 
accepted      440 
act_facilities                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              110*  671 
act_out       295   607   673:  705  1204  1206  1499  1506  1533  1536  1539  1540  1543: 1548  1556 
             1558  1560  1561  1566  1585  2055 
\f

tsnetlst    81.06.15.   18.39.                                                    page    82

act_pax_addr   97*  327   669   708=  828   908= 1027= 1036  1101= 1724= 2076= 2289=
act_pax_index                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
               95*  782= 1056= 1113= 2279= 2283  2287  2289  2301  2308  2315 
act_stream_index                                                 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
               96*  909   912  2291  2295= 2297  2307  2308  2316 
aic          1343: 1344 
aicc_packets  123* 1337 
aic_buf_type 1343 
aic_first_val                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1346  1347 
aic_id       1348=
aic_q        1349=
al            676   734   736  1472  1475 
alabel        811*  817   819   822   827 
alarmlabel     82*  430*  794   811*  868   974  1041  1096  1237  1543  2032  2268  2328  2351 
alarm_macro   100*  855*  870=  874   878  1043= 1049  1056  1098= 1108  1113  2269= 2279 
alarm_mess    675= 1019  1088  1471= 1475 
alarm_op_code                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              101*  389   400   871=  976= 1197  1199  1213  1261 
alloc        1988 
all_ric_bufs   70* 1985 
al_env_version                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1969 
al_mac_addr   275   276   277   491=  524=  531=  538=  819=  827=  874=  878   981=  983   988= 1158=
             1160  1182=
amess         720*  733   734   736 
as            657:  673:  731:  766:  794:  868:  974: 1016: 1041: 1084: 1096: 1237: 1297: 1343: 1388:
             1449: 1469: 1543: 1607: 1640: 1675: 2032: 2223: 2225: 2228: 2268: 2328: 2351:
boolean       103*  313* 1660*
buf           657:  658   766:  769   769   769   771   772   773   773   774   775   794:  795   974:
              977   978  1016: 1017  1449: 1451  1452  1454  1455  1457  1471  1472  1472  1475  2223:
             2224= 2225: 2226= 2228: 2234  2268: 2269 
byte            3*   96*  101*  105*  189*  204*  209*  220*  225*  226*  227*  238*  243*  313*  317*
              372*  557*  581*  599*  615*  616*  638*  697*  721*  844*  845*  846*  997* 1007* 1009*
             1250* 1270* 1323* 1366* 1422* 1423* 1424* 1489* 1521* 1616* 2231 
calling       301:  707  1208  1218: 1569  1589  1689: 2069:
call_buf      664   666  1019  1027  1054  1054  1057  1058 
call_field    617*  622 
call_field_type                                                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              617*
call_id       202*  208* 1068  1071  1075  1304= 1321* 1348  1365* 1375  1385  1393 
call_packets  119*  645 
car_buf_type  657 
cause         237* 1520* 1535  1572  1584 
\f

tsnetlst    81.06.15.   18.39.                                                    page    83

clearing      305: 1828: 2090:
com_pool      257 
com_pool_sem   11*  726 
connec_to_addr                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              312*  319=  329=  909  1029  2291 
control       622  1054  1054  1057  1058  1111  1111  1114  1115  1457  1692  1700  1701  1702  1705 
             1714  1722  1732  1733  1734  1737  1761  1766  1767  1768  1771  1802 
copy_data     719*  741=  745= 1019  1088 
copy_packets  122*  739 
count         391   395   402   406   645   690   739   746   760   788   970  1015  1062  1082  1119 
             1133  1312  1337  1357  1381  1401  1443  1482  1510  1651  1681  1751  1779  1792  1808 
             1823  2081 
c_data        203*  227*  846*  938   948  1322* 1353  1424* 1461 
data          626= 1461= 1702  1705  1714  1722  1734  1737  1768  1771 
data_not_received                                                <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              745  1075  1128  1705  1722  1737  1771 
data_received                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              741  1024  1068  1071  1093  1124  1702  1714  1734  1768 
dbuf         1084: 1085 
dc_addr       275 
dc_alarm_macro                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              538 
dc_index       72*   74*  536   823   825   876   908   911   920   927  1976 
dec_f_q       409: 1565  2042 
dec_s_q       416: 1562 
delay1       1302=
delay2       1303=
diag_code     209* 1366* 1394 
dte_adr       669= 1027 
dte_adr_l     668=
dte_aic      1338  1353  1694: 1878: 2133:
dte_car       652   664  2126:
dte_clr      1740: 1787: 1817: 1886: 2140:
dte_default   653  1293  1339  1384  1415  1445  1605  1636  1926  2189 
dte_ok_result                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             2122 
dte_rdata    1080: 1635  1856: 2170: 2176 
dte_rejic    1383  1710: 1878: 2133:
dte_remo_clear                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1863:
dte_res      1894: 2147:
dte_reset    1782: 1812:
dte_result_handler                                               <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1843* 2202 
\f

tsnetlst    81.06.15.   18.39.                                                    page    84

dte_ric      1013: 1292  1910: 2182: 2187 
dte_sdata    1444  2162:
dte_sdata_data                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1084  1449  1607  1640  1675 
dte_sem        13*  680  1307  1352  1397  1417  1478  1610  1647  1927  2191 
dte_sem_no    262 
dte_stat     1902: 2154:
dubl_packets  129* 1062  1065  1119  1122 
dummy_route  1948 
dyn_test     2214 
entry         372*  382   424 
external      194*
ext_pax_addr   97*  358   532  2230 
facility      671=
facility_l    670=
false         319   483   662   820  1349  1454  1455  1673  2361 
first         660= 1300= 1346= 1391= 1451= 1643=
first_codes    77*  389   400  1197  1199  1213  1261 
first_queue  1214  1262  1556  2028 
free          300:  326   367   567   570  1256  1562  1565  1570  1575  1679: 2042  2064:
free_stream   557*  571=  573=  888   916  1031  2295 
func          997* 1011 
global_timeout                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                3*  255 
h12           790  1230  1539  2322  2341 
h30            77*
h40            77*
h41            77*
hac           762 
had           771   777 
handle_10_12_mess                                                <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              754* 2273 
handle_node_test                                                 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              810* 1045  1102 
hc0            77*  817 
hc1            77*
i             107*  266*  272   274   286*  292   294   317*  323   324   330   331=  333=  333   345*
              349=  350   412=  413   413   429*  437   437   442   442=  442   448   474   476   477 
              478   481   482   483   489   489   491   492   494   510   518*  521=  522   562*  565=
              567   567   568=  568   570   571   576   805   856*  876=  878   879=  879   881   886 
              892   895   904   968*  983   983=  983   985   986   990   993  1150* 1160  1160= 1160 
             1163  1163  1175  1177  1179  1277* 1284= 1314  1430* 1621* 1628= 2009= 2010  2024  2042 
             2066  2077  2082  2087  2176= 2187=
ill_adr_bufs  128*  788 
\f

tsnetlst    81.06.15.   18.39.                                                    page    85

incname      1968 
inc_all       386: 1223 
inc_q         398: 1220  1256 
init_pax_table                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              513* 1979 
init_stream_states                                               <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              340* 1978 
insert_code   470:
integer        83*   89*   95*  107*  110*  134*  191*  215*  233*  266*  286*  345*  429*  518*  562*
              848*  856*  962*  968*  998* 1141* 1150* 1189* 1277* 1430* 1621* 2229  2232 
in_ref        159*  755*  762   766:  777   780   782   790   791   794:  800  1861  1999  2001  2007 
             2116  2122  2124  2130  2137  2144  2151  2158  2166  2175  2176  2178  2187  2189  2191 
             2196  2202  2204  2208  2214  2220  2222  2223: 2225: 2226  2228: 2235  2253  2261  2262 
             2266  2266  2268: 2272  2273  2279  2281  2300  2301  2308  2315  2316  2322  2323  2328:
             2333  2341  2342  2347  2348  2351: 2356 
iref          224* 1421* 1468  1469:
j             107*  345*  364=  365  2013= 2015  2016  2018  2018  2020  2024  2045= 2045  2050  2051 
             2052=
k             107*  797=  800   823=  825=  827   828   829   833   834   837   838  1239= 1242  1545=
             1548  2035= 2038  2330= 2333  2353= 2356 
last          676= 1301= 1347= 1392= 1452= 1472= 1472  1608= 1644=
lfq          2229: 2237=
local_macro    99*  215*  772=  774   782   795=  797   800  1141* 1158  1160  1238= 1239  1242  1544=
             1545  1549  2033= 2035  2038  2329= 2330  2333  2352= 2353  2356 
local_mac_top                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              105*  477   478=  489   494   495=  495   985  1158  1163  1182  1975=
local_receiver                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              957*  990= 2279 
local_sems      8*  800   986  1170  1179  1242  1548  2038  2333  2356 
local_transmitter                                                <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              212*  782   797  1056  1113  1138* 1168= 1177= 1239  1545  2035  2330  2353 
loca_packets  113*  970 
lock          657:  673   731:  766:  794:  868:  974: 1016: 1041: 1084: 1096: 1237: 1297: 1343: 1388:
             1449: 1469: 1543  1607: 1640: 1675: 2032: 2223: 2225: 2228: 2268: 2328: 2351:
lost_packets  114* 1510  2081 
lsq          2229: 2238=
l_control     676  1452  1608  1644 
l_dte_adr     668 
l_facilities  670 
l_f_q         300   301   302   303   304   305   306   352=  391   392   402   403   411=  411   412 
             1198  2015  2052  2237 
l_listen     1608  1644 
l_s_q         300   301   302   303   304   305   306   353=  395   406   417=  417  2238 
macro         772   774=  795   819   822   827   870   978  1043  1098  1238  1544  2033  2269  2329 
             2352 
\f

tsnetlst    81.06.15.   18.39.                                                    page    86

macroaddr     100*  190*  215*  531   855*  961* 1141*
main_sem        7* 1988  1999 
make_a_call   637*  711  1207  1588  1725  2077 
make_ric_bufs                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1269* 1985 
max_alarm_mess                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              673   720*  731  1469 
max_globals    74*
max_locals     72*  442   476 
max_pax_table                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
               74*  174*  437   521 
max_queue     364  1198 
max_retrans   282   354=  526=  607=  607   829= 1503  2073  2243 
max_stream_no                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              177*  323   331   349   567  2009 
mess_10_12_type                                                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
               80*  766 
mes_ref      1935* 1946  1948  1949  1954  1955 
micro         775=
min_ric_data 1301 
min_stream_no                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              177*  317*  321   349   565   573   890   918  1033  1051  1256  1262  1264  2009  2297 
msg           186*
m_bit        1455=
m_r          2231: 2243=
nc_addr       276   822 
nc_sem_no     260 
netconnector    2*
netc_loc_sems                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                9*
netc_mic_addr                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              532   775   801  1243  1550  2039  2334  2357 
netc_packets  121*  760 
netc_route     76*  730   972  1156  1294  2261 
netc_route1    76*  800  1242  1548  2038  2272  2333  2356 
netc_route2    76*  780  2262 
netc_routes    76* 1155 
netc_sem_no   258 
new_pax_e     431*  448=  474 
new_stat      419:  707  1037  1208  1570  1573  1575  1589  1698  1809 
new_state     374*  388   420 
nil_macro     491   524   988  1182 
nil_ref       157*  797  1124  1128  1239  1545  2035  2330  2353 
nons_packets  115* 1133  1681  1751  1792  1823 
\f

tsnetlst    81.06.15.   18.39.                                                    page    87

not_accepted  500 
not_ready    2039 
no_address    103*  483=  492=  820= 1044  1099 
no_com_bufs   127*  746 
no_connection                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1550 
no_of_bufs    219* 1270* 1282  1284  1615* 1628 
no_of_by      676   736  1472  1475=
no_pax_bufs   126*  690  1312  1357  1401  1482  1651 
no_resources 1243 
no_room       507 
n_r           630= 1465= 1701  1733  1767 
n_r_inc       629= 1464= 1700  1732  1766 
n_s           628= 1054  1058  1111  1115  1463=
n_s_inc       627= 1054  1057  1111  1114  1462=
ok_receive_state                                                 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1658* 1673= 1778= 1807= 1865  2175 
opc_command  1506  1585  1775: 1804:
opc_receipt  1124  1128  1729: 1763:
opr           616*  625 
opr_code      226* 1423* 1435  1460 
op_code       625=  734   771=  817   845*  871   936   938   946   948   977= 1460= 1692  1761  1802 
op_sem          4* 1968 
own          1968 
ownertest    1949  2001 
paxnet_config                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              539 
paxnet_e       84*  174*  431* 2225 
pax_addr      278   279   280   280   327   358=  532=  539=  702=  702   708   828=  908  1036= 1101 
             1724  2076  2239  2289 
pax_entry      84*  769 
pax_index      83*  243*  697*  702   704   708   769  1250* 1259  1266 
pax_pool      256 
pax_pool_sem    6*  647  1287  1333  1377  1438  1630  1867  1882  1890  1898  1906  1914  1922  1954 
             2130  2137  2144  2151  2158  2166  2196  2208 
pax_table     173*  272   448   474=  491   522   529   536   607   702   708   819   827   828   829 
              874   878   908   981   983   986   988  1158  1160  1163  1179  1182  2226  2289 
pax_table_top                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              104*  481   482=  489   497=  497   837   838=  874   881   981   988  1976= 2283 
pool          150*
process         2*
p_addr       2230: 2239=
q_bit         662= 1454=
rdata        1607: 1608  1640: 1641  1675: 1692  1700  1701  1702  1705  1714  1722  1732  1733  1734 
             1737  1761  1766  1767  1768  1771  1802 
\f

tsnetlst    81.06.15.   18.39.                                                    page    88

read_code     447:
rec           772   773=  795   819   870   978  1043  1098  2269 
receiving     303: 1037  1222: 1798: 1809  2101:
reci_packets  117* 1082  1779  1808 
rec_sem       188*
ref           158*  214*  232*  242*  346*  379*  546*  551   552   554   643*  647   649   652   653 
              654   655   657:  680   695*  704   705=  847*  861   868:  892   895   911   912   920 
              927   938   948   959*  972   974:  976   977   986   998* 1016: 1083  1084: 1124  1128 
             1140* 1154  1155  1156  1169  1170  1178  1179  1188* 1206= 1214  1216  1230  1231  1237:
             1242  1249* 1259  1262  1264  1278* 1287  1289  1292  1293  1294  1295  1297: 1307  1328*
             1333  1335  1338  1339  1340  1341  1343: 1352  1353  1371* 1377  1379  1383  1384  1385 
             1386  1388: 1397  1410* 1415  1417  1429* 1438  1440  1444  1445  1446  1447  1449: 1478 
             1597* 1603  1605  1607: 1610  1622* 1630  1632  1635  1636  1637  1638  1640: 1647  1659*
             1675: 1676  1698  1703  1706  1716  1724  1725  1735  1738  1769  1772  1809  1845* 1852 
             1854  1859  1865  1867  1872  1882  1890  1898  1906  1914  1922  1926  1927  1988  1989 
reference     160*  186*  214*  224*  232*  242*  346*  379*  546*  643*  695*  721*  755*  847*  959*
              998* 1008* 1140* 1188* 1249* 1278* 1328* 1371* 1410* 1421* 1429* 1597* 1622* 1659* 1845*
             1935*
reject         87* 1511  2066  2082 
reject_message                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              184*  799  1241  1547  2037  2332  2355 
rejic        1388: 1389 
rejic_buf_type                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1388 
rejic_diag   1394=
rejic_first_val                                                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1391  1392 
rejic_id     1393=
reji_packets  124* 1381 
release_cause                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
               87*  237* 1520*
release_uo_data                                                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              236* 1511  1519* 1703  1716  1735  1769  2066  2082 
remote_macro  961*  978=  981   983 
remove_code   486:
resetting     306: 1833: 2096:
result        440=  500=  503=  507= 1009* 1019= 1022  1024  1088= 1091  1093 
result_code   192*
result_range  192*
retransmit_data                                                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1488* 1706  1738  1772  2087 
retrans_count                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              355=  608= 1501= 1501  1503  2071= 2071  2073  2242 
retrans_timer                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              357=  610= 1505= 1568= 2056  2059  2075= 2109= 2109  2240 
\f

tsnetlst    81.06.15.   18.39.                                                    page    89

retrans_timo  356=  357   609=  610  1505  2075  2241 
retr_packets  118*
return        791  1063  1120  1231  1536  1540  2253  2323  2342 
return_rdata_buf                                                 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1596* 1872  2178 
rica_packets  120* 1015 
ric_buf      1297: 1298 
ric_buf_type 1016  1297 
ric_delay_1    66* 1302 
ric_delay_2    68* 1303 
ric_first_val                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              660   676  1300  1301 
route         189*
r_c          2231: 2242=
r_t          2231: 2240=
r_to         2231: 2241=
s            1867  1882  1890  1898  1906  1914  1922  1954  1988  2130  2137  2144  2151  2158  2166 
             2196  2208 
sdata_first_val                                                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1451  1452  1608  1643  1644 
second_queue 1216  1264  1560 
sempointer      4*   13*  188* 1937*
sem_ptr      1937* 1946  1955 
send          773   774   775   822   827  1238  1544  2033  2329  2352 
sender_macro  190*
sender_micro  191*
sending       302: 1219: 1220  1223  1698  1758: 2086:
sendtimer     554 
send_aic_buf  200* 1068  1319*
send_packets  116* 1443 
send_rdata_bufs                                                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              218*  710  1035  1614*
send_rejic_buf                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              207* 1071  1075  1364*
send_ric_buf 1408*
send_sdata_buf                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              223*  938   948  1353  1420* 1506  1585 
send_to_stream                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              230*  912  1186* 2316 
send_to_systimer                                                 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              544* 1989  2007 
send_to_wait  241*  895   927  1248* 2301 
sensesem      647   726  1287  1333  1377  1438  1556  1560  1630  2028 
set_control   614*  664 
\f

tsnetlst    81.06.15.   18.39.                                                    page    90

set_retrans   598*  713  1209  1579 
signal        680   986  1170  1179  1214  1216  1262  1264  1307  1352  1397  1417  1478  1610  1647 
             1867  1882  1890  1898  1906  1914  1922  1927  1954  2130  2137  2144  2151  2158  2166 
             2191  2196  2208 
start_new_inc                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              580*  709 
start_stream  694*  892   920  2308 
stat          132*  645   690   739   746   760   788   970  1015  1062  1065  1082  1119  1122  1133 
             1312  1337  1357  1381  1401  1443  1482  1510  1651  1681  1751  1779  1792  1808  1823 
             2081  2224 
state         299   326   367=  388=  420=  567   570  1217  1569  1677  2063 
state_type    374*
stat_type      89*  132*  132* 2223 
stream        201*  220*  238*  581*  586   595   599*  605   615*  623   633   844*  859   865   888=
              890   892   916=  918   920   925   938   948   951   954  1007* 1029  1031= 1033  1035 
             1036  1037  1051  1053  1068  1083= 1101  1110  1124= 1128= 1135  1320* 1331  1340  1353 
             1489* 1495  1497  1506  1511  1521* 1527  1529  1533  1536  1539  1540  1543  1548  1556 
             1556  1558  1560  1560  1561  1562  1565  1566  1568  1569  1570  1573  1575  1579  1581 
             1585  1588  1589  1616* 1626  1637 
stream_index  233* 1189* 1198  1202  1204  1206  1207  1208  1209  1214  1216  1217  1220  1223  1235 
stream_indx   313*  321=  330=  337 
stream_no     225*  281   525=  533=  638*  654   664   673   683   696*  702   705   707   709   710 
              711   713   716   986  1163  1179  1422* 1434  1446  1458 
stream_receiver                                                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              996* 1135= 2176  2187 
stream_states                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              176*  292   324   350   382   567   570   586   605   623   673   702   705  1036  1053 
             1101  1110  1198  1204  1206  1214  1216  1217  1262  1264  1458  1497  1529  1533  1536 
             1539  1540  1543  1548  1556  1556  1558  1560  1560  1561  1566  1568  1569  1581  1676 
             1724  2010  2235 
stream_s_e    177*
stream_timeout                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              356   392   403   609 
stream_transmitter                                               <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              843*  951= 1124  1128 
testopen     1968 
testout       255   256   257   258   259   260   261   262   274   275   276   277   278   279   280 
              281   282   294   296   298   300   301   302   303   304   305   306   308   337   576 
              595   633   683   688   716   736   748   805   833   859   886   904   925   936   946 
              954   993  1022  1049  1065  1091  1108  1122  1166  1175  1202  1235  1266  1282  1314 
             1331  1359  1375  1403  1434  1435  1484  1495  1527  1603  1626  1653  1671  1852  1859 
             1881  1889  1897  1905  1913  1921  1952  1969  2024  2050  2093  2103  2129  2136  2143 
             2150  2157  2165  2173  2185  2207  2266  2287  2300  2307  2347  2348 
timeout_sem    12*
\f

tsnetlst    81.06.15.   18.39.                                                    page    91

timeout_sem_no                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              261 
timers        308   365=  392=  403=  413=  413  2016  2018= 2018  2020  2051= 2248 
timer_pool    150* 1949  1988  2001 
to_link       655  1295  1341  1386  1447  1638  2116 
true          103*  329   492  1778  1807 
tssup_sem_no  259 
tst           134*  336   423   509   575   594   632   682   687   715   735   747   804   831   858 
              885   903   924   935   945   953   992  1021  1048  1064  1090  1107  1121  1165  1174 
             1201  1234  1265  1281  1313  1330  1358  1374  1402  1432  1483  1494  1526  1602  1625 
             1652  1670  1851  1858  1880  1888  1896  1904  1912  1920  1951  2023  2049  2128  2135 
             2142  2149  2156  2164  2172  2184  2206  2220= 2265  2286  2299  2306  2345 
ts_addr       277  1049  1108 
ts_pointer      7*
ts_wait      1933* 1999 
t_1          2232: 2248=
t_ref         156* 2028  2030  2032: 2038 
u1            607   652=  704=  911= 1259= 1292= 1338= 1383= 1444= 1635= 1854  2124  2226  2235  2315=
u2            653= 1293= 1339= 1384= 1415= 1445= 1603  1605= 1636= 1852  1859  1861  1926= 2122  2189=
             2222 
u3            551=  654=  730=  780=  972= 1083  1124  1128  1155  1156= 1294= 1340= 1385= 1446= 1637=
             1676  1698  1703  1706  1716  1724  1725  1735  1738  1769  1772  1809  1948  2220  2261 
             2262  2272  2347 
u4            552=  655=  734=  762   777=  790   976   977  1230  1295= 1341= 1386= 1447= 1539  1638=
             2116  2214  2266  2266  2300  2322  2341  2348 
unknown_opcode                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              801 
unknown_receiver                                                 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             2334 
unknown_route                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             2357 
unknown_update                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              503 
update        445 
update_pax_table                                                 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              428*  769 
update_stream_state                                              <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              371*  707  1037  1208  1220  1223  1256  1562  1565  1570  1573  1575  1589  1698  1809 
             2042 
upd_kind      373*  384 
upd_kinds     373*
user_ref      721*  726   728   730   731:  734  1008* 1019  1041: 1056  1063  1088  1096: 1113  1120 
version        17* 1969 
vr           2231: 2247=
\f

tsnetlst    81.06.15.   18.39.                                                    page    92

vs           2231: 2245=
v_r           362=  591=  630  1054  1058= 1111  1115= 1465  2247 
v_r_i        2231: 2246=
v_r_inc       361=  590=  590   629  1054  1057= 1111  1114= 1464  2246 
v_s           360=  589=  628  1463  1530= 1530  1701  1733  1767  2245 
v_s_i        2231: 2244=
v_s_inc       359=  588=  588   627  1462  1700  1732  1766  2244 
w             647  1287  1333  1377  1438  1630  1999 
wait         1946  1955 
waiting       304: 1221: 1573  1799: 2089:
windowsize    710  1035 
write_create_pars                                                <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              250* 1971 
write_paxnet_entry                                               <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              266*  510   834 
write_stream_state                                               <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              286*  424 
z             108*  255   256   257   258   259   260   261   262   274   275   276   277   278   279 
              280   281   282   294   296   298   300   301   302   303   304   305   306   308   337 
              576   595   633   683   688   716   736   748   805   833   859   886   904   925   936 
              946   954   993  1022  1049  1065  1091  1108  1122  1166  1175  1202  1235  1266  1282 
             1314  1331  1359  1375  1403  1434  1435  1484  1495  1527  1603  1626  1653  1671  1852 
             1859  1881  1889  1897  1905  1913  1921  1952  1968  1969  2024  2050  2093  2103  2129 
             2136  2143  2150  2157  2165  2173  2185  2207  2266  2287  2300  2307  2347  2348 
zone          108*
\f

tsnetlst    81.06.15.   18.39.                                                    page    93

AND                9
ARRAY              3
BEGIN            207
CASE              14
CONST              3
DIV                1
DO                73
ELSE              64
END              223
FOR                7
FORWARD            8
FUNCTION           9
IF               168
IN                 7
MOD                5
NIL               23
NOT               25
OF                17
OR                 3
OTHERWISE         12
PROCEDURE         36
RECORD             2
REPEAT             1
THEN             168
TO                 7
TYPE               1
UNTIL              1
VAR               51
WHILE              7
WITH              31
*message compile netcon
 compile netcon
*pascal80 alarmenv paxenv source
81.06.15.      18.40.                         pascal80     version 1981.04.01


   name        headline beginline endline  appetite(words) 

   write_create   254       255     263  :      17            
   write_paxnet   271       272     284  :      24            
   write_stream   291       292     310  :      24            
   connec_to_ad   317       319     338  :      21            
   init_stream_   345       349     369  :      19            
   update_strea   379       382     426  :      24            
   update_pax_t   436       438     511  :       9            
   init_pax_tab   518       521     541  :      13            
   send_to_syst   550       551     555  :      10            
   free_stream    562       565     577  :      18            
   start_new_in   585       586     596  :      19            
   set_retrans    604       605     612  :       9            
   set_control    621       622     635  :      21            
   make_a_call    643       645     692  :      27            
   start_stream   701       702     717  :      17            
   copy_data      725       726     751  :      21            
   handle_10_12   759       760     808  :      19            
   handle_node_   816       818     841  :      17            
   stream_trans   855       859     955  :      22            
   local_receiv   968       970     994  :      20            
   stream_recei  1007      1013    1136  :      50            
   local_transm  1150      1155    1184  :      19            
   send_to_stre  1195      1200    1246  :      19            
   send_to_wait  1255      1256    1267  :      17            
   make_ric_buf  1277      1282    1317  :      27            
   send_aic_buf  1328      1331    1362  :      23            
   send_rejic_b  1371      1375    1406  :      23            
   send_ric_buf  1414      1415    1418  :       4            
   send_sdata_b  1429      1433    1486  :      28            
   retransmit_d  1493      1495    1516  :      20            
   release_uo_d  1525      1527    1594  :      19            
   return_rdata  1601      1603    1612  :      20            
   send_rdata_b  1621      1626    1656  :      27            
   ok_receive_s  1669      1671    1841  :      21            
   dte_result_h  1850      1852    1930  :      19            
   ts_wait       1944      1946    1958  :      18            
   netconnector    17      1968    2362  :     899            

 code: 41 . 290  = 21282 bytes


end of PASCAL80 compilation 

end
blocksread = 53
*mode list.no
«eof»