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

⟦d564fd548⟧ TextFileVerbose

    Length: 54528 (0xd500)
    Types: TextFileVerbose
    Names: »ncperlst«

Derivation

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

TextFileVerbose

\f

ncperlst    81.06.09.   15.17.                                                    page     1

   10    1           
\f

ncperlst    81.06.09.   15.17.                                                    page     2

 1010    2          
 1020    3        PROCESS ncsupervisor (
 1030    4          opsem :         sempointer;        (*  operator              *)
 1040    5          VAR main_sem : !ts_pointer;        (*  my input semaphore    *)
 1050    6          VAR free_sem : !ts_pointer;        (*  nc buffer pool        *)
 1060    7          VAR done :     !ts_pointer;        (*  answer from timeout   *)
 1070    8          VAR net_sem,                       (*  netconnector          *)
 1080    9          timeout_sem  : !sempointer         (*  timeout module        *)
 1090   10          );
 1100   11          
 1110   12        CONST
 1120   13          
 1130   14          version = "vers  p.14 /";
 1140   15          
 1150   16           
\f

ncperlst    81.06.09.   15.17.                                                    page     3

 2010   17          
 2020   18        CONST
 2030   19          
 2040   20          
 2050   21          no_nc_talk = 30;             (*  number of buffers for nc     *)
 2060   22          last_node = 2;             (*  max number of ts addresses   *)
 2070   23          max_node = last_node+1;
 2080   24          dc = 0;
 2090   25          
 2100   26          copy_code   = #h10;
 2110   27          refuse_code = #h12;
 2120   28          dc_down     = #h20;
 2130   29          dc_up       = #h21;
 2140   30          nc_down     = #h22;
 2150   31          nc_up       = #h23;
 2160   32          ts_down     = #h24;
 2170   33          ts_up       = #h25;
 2180   34          tablerequest= #hae;
 2190   35          var_code    = #hb0;
 2200   36          var_answ    = #hb1;
 2210   37          nodetest_code=#hc0;
 2220   38          nodetest_answ=#hc1;
 2230   39          connect_code= #hc8;
 2240   40          connect_answ= #hc9;
 2250   41          finis_code  = #hce;
 2260   42          
 2270   43          words = size_listen - 1 - ( label_size DIV 2);
 2280   44          maxbytes = words*2;
 2290   45          refuse_length = 2*label_size+2;
 2300   46          bc_length = label_size + 4 + 2;
 2310   47          ae_length = label_size + 4;
 2320   48          test_length = label_size + 10;
 2330   49          
 2340   50          delay1 = 250;              (*  1 sec = 1000 m sec     *)
 2350   51          delay2 = 2;
 2360   52          margin = 5;                (*  timeout tolerance     *)
 2370   53          read_clock = 2;
 2380   54          writetimer = 6;
 2390   55          
 2400   56          write = 2;
 2410   57           
\f

ncperlst    81.06.09.   15.17.                                                    page     4

 3010   58          
 3020   59        TYPE
 3030   60          
 3040   61          status = ( down, starting, sleep, ready );
 3050   62          
 3060   63          node_range = 0..max_node;
 3070   64          
 3080   65          flawshape = PACKED RECORD             (*  for 1.0 and 1.2   *)
 3090   66                             !  head,
 3100   67                             !  data: alarmlabel
 3110   68                             END;
 3120   69          
 3130   70          
 3140   71          note = PACKED RECORD                  (*  for 2.xx and 10.14      *)
 3150   72                        !  head: alarmlabel;
 3160   73                        !  comp: alarmnetaddr;
 3170   74                        !  cnt : integer
 3180   75                        END;
 3190   76          
 3200   77          
 3210   78          form11= PACKED RECORD                   (*  for 11.0 and 11.1      *)
 3220   79                         !  head: alarmlabel;
 3230   80                         !  address: macroaddr;
 3240   81                         END;
 3250   82          
 3260   83          params = RECORD
 3270   84                   !  n1, n2, n3: integer;
 3280   85                   !  rec : alarmnetaddr;
 3290   86                   END;
 3300   87          
 3310   88          testshape = PACKED RECORD              (*  for 12.0, 12.1, 12.8, 12.9   *)
 3320   89                             !  head: alarmlabel;
 3330   90                             !  testno, peri : integer;
 3340   91                             !  data: ARRAY ( 3..words) OF integer;
 3350   92                             END;
 3360   93          
 3370   94          
 3380   95          
 3390   96           
\f

ncperlst    81.06.09.   15.17.                                                    page     5

 4010   97          
 4020   98        VAR
 4030   99          
 4040  100          tickmess : pool 1;                 (*  1 sec ticks                *)
 4050  101          clockpool: pool 1 OF ts_time;      (*  timing                     *)
 4060  102          bufferpool: pool no_nc_talk OF testshape;
 4070  103          
 4080  104          clock_msg,
 4090  105          ms, msg : reference;
 4100  106          
 4110  107          n, ts, nodes : node_range := 0;
 4120  108          
 4130  109          index : ARRAY ( node_range) OF node_range;
 4140  110          addr : ARRAY ( node_range) OF alarmnetaddr;
 4150  111          state : ARRAY ( node_range) OF status;
 4160  112          tests : ARRAY ( node_range) OF integer;
 4170  113          
 4180  114          ar,
 4190  115          who,                                 (*  message receiver    *)
 4200  116          here : alarmnetaddr :=               (*  my addr             *)
 4210  117          alarmnetaddr(macroaddr(0,0,0),0);
 4220  118          
 4230  119          from : macroaddr;                    (*  message sender      *)
 4240  120          
 4250  121          periode: integer:= 5*60;              (*  timeout periode     *)
 4260  122          rest_time : integer:= 5*60;           (*  rest # sec to timeout   *)
 4270  123          
 4280  124          np, l, k, nr, ns,
 4290  125          h : integer;
 4300  126          cause : result_range;
 4310  127          
 4320  128          console : zone;
 4330  129          
 4340  130          
 4350  131          
 4360  132          PROCEDURE readram ( VAR w: byte; adr: integer);
 4370  133          EXTERNAL;
 4380  134          
 4390  135          
 4400  136          PROCEDURE writeram ( adr, w: integer);
 4410  137          EXTERNAL;
 4420  138          
 4430  139           
\f

ncperlst    81.06.09.   15.17.                                                    page     6

 5010  140          
 5020  141          FUNCTION gettime : ts_time;
 5030  142            
 5040  143          TYPE
 5050  144            clock_form = RECORD  time: ts_time  END;
 5060  145            
 5070  146          BEGIN
 5080  147    1     ! 
 5090  148    2     ! signal ( clock_msg, timeout_sem^);
 5100  149    3     ! wait   ( clock_msg, done.w^);
 5110  150    4     ! LOCK     clock_msg AS buf: clock_form DO
 5120  151    5     !   gettime:= buf.time
 5130  152    6     !   
 5140  153    7     END;
 5150  154          
 5160  155          
 5170  156          
 5180  157          PROCEDURE writetime;
 5190  158          VAR t: ts_time;
 5200  159          BEGIN
 5210  160    1     ! t:= gettime;
 5220  161    2     ! testout ( console, "time        ", t(0));
 5230  162    3     ! testout ( console, "  mm ss     ", t(1));
 5240  163    4     END;
 5250  164          
 5260  165           
\f

ncperlst    81.06.09.   15.17.                                                    page     7

 6010  166          
 6020  167          PROCEDURE xmit ( VAR m: reference; u4val: byte );
 6030  168            
 6040  169          BEGIN
 6050  170    1     ! m^.u1:= write;
 6060  171    2     ! m^.u3:= nc_route;
 6070  172    3     ! m^.u4:= u4val;
 6080  173    4     ! signal ( m, net_sem^)
 6090  174    5     END;
 6100  175          
 6110  176          
 6120  177          
 6130  178          
 6140  179          
 6150  180          
 6160  181          PROCEDURE answer (
 6170  182            VAR m : reference;
 6180  183            cause : result_range;
 6190  184            oper  : byte   );
 6200  185            
 6210  186          BEGIN
 6220  187    1     ! LOCK m AS head: alarmlabel DO
 6230  188    2     !   WITH head DO
 6240  189    3     !     BEGIN
 6250  190    4     !     ! rec:= send;
 6260  191    5     !     ! send:= here;
 6270  192    6     !     ! result:= cause;
 6280  193    7     !     ! ts_add:= gettime;
 6290  194    8     !     END;
 6300  195    9     ! xmit ( m, oper);
 6310  196   10     END;
 6320  197          
 6330  198          
 6340  199           
\f

ncperlst    81.06.09.   15.17.                                                    page     8

 7010  200          
 7020  201          
 7030  202          PROCEDURE refuse ( VAR m : reference; cause : result_range );
 7040  203            
 7050  204          BEGIN
 7060  205    1     ! 
 7070  206    2     ! LOCK m AS buf : flawshape DO
 7080  207    3     !   WITH buf DO
 7090  208    4     !     BEGIN
 7100  209    5     !     ! data:= head;
 7110  210    6     !     ! data.op_code:= m^.u4;
 7120  211    7     !     ! head.no_of_by:= refuse_length;
 7130  212    8     !     ! head.rec:= head.send;
 7140  213    9     !     ! head.send:= here;
 7150  214   10     !     ! head.result:= cause;
 7160  215   11     !     ! head.ts_add:= gettime;
 7170  216   12     !     ! 
 7180  217   13     !     ! sensesem ( ms, free_sem.w^);
 7190  218   14     !     ! IF NOT nil ( ms) THEN
 7200  219   15     !     !   BEGIN
 7210  220   16     !     !   ! LOCK ms AS new : flawshape DO
 7220  221   17     !     !   !   BEGIN
 7230  222   18     !     !   !   ! new:= buf;
 7240  223   19     !     !   !   ! new.head.rec:= addr(dc);
 7250  224   20     !     !   !   END;
 7260  225   21     !     !   ! xmit ( ms, copy_code);
 7270  226   22     !     !   END;
 7280  227   23     !     ! 
 7290  228   24     !     END;
 7300  229   25     ! xmit ( m, refuse_code);
 7310  230   26     ! 
 7320  231   27     END;
 7330  232          
 7340  233          
 7350  234           
\f

ncperlst    81.06.09.   15.17.                                                    page     9

 8010  235          
 8020  236          PROCEDURE insert ( new: macroaddr; newstate: status );
 8030  237            
 8040  238          VAR   t: node_range;
 8050  239          BEGIN
 8060  240    1     ! 
 8070  241    2     ! IF ( new.dc_addr = here.macro.dc_addr ) AND
 8080  242    3     !   ( new.nc_addr = here.macro.nc_addr ) AND
 8090  243    4     !   ( new.ts_addr <> 0 )  THEN
 8100  244    5     !   BEGIN   (*  new is one of my ts   *)
 8110  245    6     !   ! addr(nodes+1).macro:= new;
 8120  246    7     !   ! t:= index(new.ts_addr);
 8130  247    8     !   ! IF t = max_node THEN
 8140  248    9     !   !   BEGIN
 8150  249   10     !   !   ! t:= nodes+1;
 8160  250   11     !   !   ! index(new.ts_addr):= t;
 8170  251   12     !   !   ! nodes:= t;
 8180  252   13     !   !   END;
 8190  253   14     !   ! IF msg^.u4 = ts_down THEN state(t):= down  ELSE
 8200  254   15     !   !   IF msg^.u4 = ts_up THEN state(t):= ready  ELSE
 8210  255   16     !   !     state(t):= newstate;
 8220  256   17     !   END;
 8230  257   18     ! 
 8240  258   19     END;
 8250  259          
 8260  260          
 8270  261           
\f

ncperlst    81.06.09.   15.17.                                                    page    10

 9010  262          PROCEDURE update ( VAR msg: reference);
 9020  263            
 9030  264          BEGIN    (*      11.0 from dc    *)
 9040  265    1     ! 
 9050  266    2     ! LOCK msg AS buf: form11 DO
 9060  267    3     !   WITH buf DO
 9070  268    4     !     BEGIN
 9080  269    5     !     ! insert ( address, starting);
 9090  270    6     !     ! here:= buf.head.rec;
 9100  271    7     !     END;
 9110  272    8     ! answer ( msg, accepted, var_answ);
 9120  273    9     ! 
 9130  274   10     END;
 9140  275          
 9150  276           
\f

ncperlst    81.06.09.   15.17.                                                    page    11

10010  277          
10020  278          
10030  279          PROCEDURE first ( VAR m : reference );
10040  280            
10050  281          VAR   res : byte;
10060  282            
10070  283          BEGIN
10080  284    1     ! 
10090  285    2     ! LOCK m AS buf : testshape DO
10100  286    3     !   WITH buf, head DO
10110  287    4     !     BEGIN
10120  288    5     !     ! IF ( m^.u4 = nodetest_code) AND             (*  12.0   from dc *)
10130  289    6     !     !   ( rec.macro.ts_addr = 0 ) AND
10140  290    7     !     !   ( send.macro.nc_addr = 0 ) AND
10150  291    8     !     !   ( send.macro.ts_addr = 0 ) THEN
10160  292    9     !     !   BEGIN
10170  293   10     !     !   ! here.macro:= rec.macro;
10180  294   11     !     !   ! periode:= abs ( peri);
10190  295   12     !     !   ! rest_time:= periode;
10200  296   13     !     !   ! addr(dc).macro.dc_addr:= here.macro.dc_addr;
10210  297   14     !     !   ! state(dc):= ready;
10220  298   15     !     !   ! cause:= not_ready;
10230  299   16     !     !   ! res:= nodetest_answ;
10240  300   17     !     !   END  ELSE
10250  301   18     !     !   BEGIN
10260  302   19     !     !   ! cause:= unknown_opcode;
10270  303   20     !     !   ! res:= refuse_code;
10280  304   21     !     !   END;
10290  305   22     !     END;
10300  306   23     ! 
10310  307   24     ! answer ( m, cause, res);
10320  308   25     ! 
10330  309   26     END;
10340  310          
10350  311          
10360  312           
\f

ncperlst    81.06.09.   15.17.                                                    page    12

11010  313          
11020  314          PROCEDURE restart ( where: alarmnetaddr);
11030  315            
11040  316          BEGIN            (*  send 10.14 to dc     *)
11050  317    1     ! 
11060  318    2     ! wait ( ms, free_sem.w^);
11070  319    3     ! LOCK ms AS buf: note DO
11080  320    4     !   WITH buf, head DO
11090  321    5     !     BEGIN
11100  322    6     !     ! no_of_by:= ae_length;
11110  323    7     !     ! rec:= addr(dc);
11120  324    8     !     ! send:= here;
11130  325    9     !     ! update:= insert_code;
11140  326   10     !     ! result:= accepted;
11150  327   11     !     ! ts_add:= gettime;
11160  328   12     !     ! comp:= where;
11170  329   13     !     END;
11180  330   14     ! xmit ( ms, tablerequest);
11190  331   15     ! 
11200  332   16     END;
11210  333          
11220  334           
\f

ncperlst    81.06.09.   15.17.                                                    page    13

12010  335          
12020  336          
12030  337          PROCEDURE broadcast (
12040  338            operation : byte;               (*  op code          *)
12050  339            who : alarmnetaddr;             (*  receiver         *)
12060  340            where : alarmnetaddr;           (*  component        *)
12070  341            c : integer                     (*  count            *)
12080  342            );
12090  343            
12100  344          BEGIN
12110  345    1     ! 
12120  346    2     ! wait ( ms, free_sem.w^);
12130  347    3     ! LOCK ms AS buf : note DO
12140  348    4     !   WITH buf, head DO
12150  349    5     !     BEGIN
12160  350    6     !     ! no_of_by:= bc_length;
12170  351    7     !     ! rec:= who;
12180  352    8     !     ! send:= here;
12190  353    9     !     ! update:= insert_code;
12200  354   10     !     ! ts_add:= gettime;
12210  355   11     !     ! comp:= where;
12220  356   12     !     ! cnt:= c
12230  357   13     !     END;
12240  358   14     ! 
12250  359   15     ! xmit ( ms, operation)
12260  360   16     ! 
12270  361   17     END;
12280  362          
12290  363          
12300  364          
12310  365           
\f

ncperlst    81.06.09.   15.17.                                                    page    14

13010  366          
13020  367          PROCEDURE test_all;
13030  368            
13040  369          BEGIN                           (*  test all ts   *)
13050  370    1     ! 
13060  371    2     ! FOR ts:= 1 TO nodes DO
13070  372    3     !   BEGIN
13080  373    4     !   ! 
13090  374    5     !   ! IF state(ts) = sleep THEN         (*  answer missing   *)
13100  375    6     !   !   BEGIN
13110  376    7     !   !   ! state(ts):= down;
13120  377    8     !   !   ! FOR n:= 0 TO nodes DO
13130  378    9     !   !   !   IF n <> ts THEN
13140  379   10     !   !   !     broadcast ( ts_down, addr(n), addr(ts), 0);
13150  380   11     !   !   END;
13160  381   12     !   ! 
13170  382   13     !   ! wait ( ms, free_sem.w^);
13180  383   14     !   ! LOCK ms AS buf: testshape DO
13190  384   15     !   !   WITH buf, head DO
13200  385   16     !   !     BEGIN
13210  386   17     !   !     ! no_of_by:= test_length;
13220  387   18     !   !     ! rec:= addr(ts);
13230  388   19     !   !     ! send:= here;
13240  389   20     !   !     ! update:= insert_code;
13250  390   21     !   !     ! ts_add:= gettime;
13260  391   22     !   !     ! count ( tests(ts));
13270  392   23     !   !     ! testno:= tests(ts);
13280  393   24     !   !     ! peri:= periode+margin;
13290  394   25     !   !     END;
13300  395   26     !   ! IF state(ts) = ready THEN state(ts):= sleep;
13310  396   27     !   ! xmit ( ms, nodetest_code)
13320  397   28     !   ! 
13330  398   29     !   END
13340  399   30     END;
13350  400          
13360  401          
13370  402           
\f

ncperlst    81.06.09.   15.17.                                                    page    15

14010  403          
14020  404            (*--------------------- exception for nc-sup -------------------------*)
14030  405          
14040  406          PROCEDURE exception ( cause : integer);
14050  407            
14060  408          VAR  switch: byte;
14070  409            
14080  410          BEGIN
14090  411    1     ! trace ( cause);        (*  shows where I was   *)
14100  412    2     ! 
14110  413    3     !   (*                 clear resources    *)
14120  414    4     ! IF NOT nil ( msg) THEN refuse ( msg, breaked);
14130  415    5     ! IF nil ( ms) THEN wait ( ms, free_sem.w^);
14140  416    6     ! 
14150  417    7     ! LOCK ms AS buf: testshape DO
14160  418    8     !   WITH buf, head DO
14170  419    9     !     BEGIN
14180  420   10     !     ! no_of_by:= label_size + 2;
14190  421   11     !     ! send:= addr(dc);
14200  422   12     !     ! testno:= cause
14210  423   13     !     END;
14220  424   14     ! answer ( ms, breaked, finis_code);
14230  425   15     ! 
14240  426   16     ! FOR h:= 1 TO no_nc_talk DO
14250  427   17     !   BEGIN
14260  428   18     !   ! wait ( ms, free_sem.w^);
14270  429   19     !   ! release ( ms)
14280  430   20     !   END;
14290  431   21     ! 
14300  432   22     !   (*                 exception loop   *)
14310  433   23     ! h:= 0;
14320  434   24     ! REPEAT
14330  435   25     ! ! wait ( msg, main_sem.w^);
14340  436   26     ! ! IF ownertest ( tickmess, msg) THEN
14350  437   27     ! !   release ( msg)
14360  438   28     ! ! ELSE
14370  439   29     ! !   refuse ( msg, breaked);
14380  440   30     ! ! h:= h+1;
14390  441   31     ! ! 
14400  442   32     ! ! IF h>2 THEN
14410  443   33     ! !   BEGIN            (*     autoload       *)
14420  444   34     ! !   ! readram ( switch, 10);
14430  445   35     ! !   ! IF switch DIV 16 = 6 THEN
14440  446   36     ! !   !   BEGIN
14450  447   37     ! !   !   ! writeram ( 6,0);   writeram ( 5,1);
14460  448   38     ! !   !   ! WHILE true DO ;
\f

ncperlst    81.06.09.   15.17.                                                    page    16

14470  449   39     ! !   !   END
14480  450   40     ! !   END;
14490  451   41     ! UNTIL false
14500  452   42     ! 
14510  453   43     END;
14520  454          
14530  455          
14540  456           
\f

ncperlst    81.06.09.   15.17.                                                    page    17

15010  457            (*-------------------- main program -----------------------------*)
15020  458          
15030  459        BEGIN
15040  460    1   ! testopen ( console, own.incname, opsem);
15050  461    2   ! testout ( console, version, al_env_version);
15060  462    3   ! 
15070  463    4   ! 
15080  464    5   !   (*
15090  465    6   !   for ts:= 0 to max_node do
15100  466    7   !   begin
15110  467    8   !   index(ts):= max_node;
15120  468    9   !   addr(ts).macro:= macroaddr(0,0,0);
15130  469   10   !   addr(ts).micro:= tss_mic_addr;
15140  470   11   !   state(ts):= down;
15150  471   12   !   tests(ts):= 0
15160  472   13   !   end;
15170  473   14   !   addr(dc).micro:= dc_erh_mic_addr;
15180  474   15   !   
15190  475   16   !   for h:= 1 to no_nc_talk do
15200  476   17   !   begin
15210  477   18   !   alloc ( msg, bufferpool, free_sem.s^);
15220  478   19   !   msg^.u3:= nc_route;
15230  479   20   !   signal( msg, free_sem.s^)
15240  480   21   !   end;
15250  481   22   !   *)
15260  482   23   ! alloc ( clock_msg, clockpool, done.s^);
15270  483   24   ! clock_msg^.u1:= read_clock;
15280  484   25   ! clock_msg^.u3:= nc_route;
15290  485   26   ! 
15300  486   27   !   (*  wait for 12.00   *)
15310  487   28   ! REPEAT
15320  488   29   ! ! wait ( msg, main_sem.w^);
15330  489   30   ! ! CASE msg^.u3 OF
15340  490   31   ! ! ! dummy_route:    return ( msg);
15350  491   32   ! ! ! netc_route1:    return ( msg);      (*  refused  *)
15360  492   33   ! ! ! netc_route:     first ( msg);
15370  493   34   ! ! ! OTHERWISE        signal ( msg, net_sem^);
15380  494   35   ! ! END  (*  case  *)
15390  495   36   ! UNTIL state(dc) = ready;
15400  496   37   ! 
15410  497   38   ! restart ( here);
15420  498   39   ! alloc ( msg, tickmess, main_sem.s^);
15430  499   40   ! msg^.u1:= writetimer;
15440  500   41   ! msg^.u3:= delay1;
15450  501   42   ! msg^.u4:= delay2;
15460  502   43   !   (*
\f

ncperlst    81.06.09.   15.17.                                                    page    18

15470  503   44   !   sendtimer ( msg);
15480  504   45   !   *)
15490  505   46   ! 
15500  506   47   !   (*q   trace ( 370);    (*  only for debug   *)
15510  507   48   !  
\f

ncperlst    81.06.09.   15.17.                                                    page    19

16010  508   49   ! 
16020  509   50   !   (*------------------------ main loop ----------------------------------*)
16030  510   51   ! 
16040  511   52   ! REPEAT
16050  512   53   ! ! 
16060  513   54   ! ! wait ( msg, main_sem.w^);
16070  514   55   ! ! 
16080  515   56   ! ! IF ownertest ( tickmess, msg) THEN              (*  timer  *)
16090  516   57   ! !   BEGIN
16100  517   58   ! !   ! rest_time:= rest_time - 1;
16110  518   59   ! !   ! msg^.u3:= delay1;
16120  519   60   ! !   ! msg^.u4:= delay2;
16130  520   61   ! !   ! sendtimer ( msg);
16140  521   62   ! !   ! 
16150  522   63   ! !   ! IF rest_time <= 0 THEN                      (*  timeout    *)
16160  523   64   ! !   !   BEGIN
16170  524   65   ! !   !   !   <*      skip UNTIL  dc makes nodetest ---------------------------- *>
16180  525   66   ! !   !   ! IF state(dc) <> down THEN
16190  526   67   ! !   !   !   BEGIN
16200  527   68   ! !   !   !   ! state(dc):= down;
16210  528   69   ! !   !   !   ! FOR ts:= 1 TO nodes DO
16220  529   70   ! !   !   !   !   broadcast ( dc_down, addr(ts), addr(dc), 0);
16230  530   71   ! !   !   !   END;
16240  531   72   ! !   !   !   <* ----------------------------------------------------------------*>
16250  532   73   ! !   !   ! test_all;
16260  533   74   ! !   !   ! rest_time:= periode;
16270  534   75   ! !   !   ! 
16280  535   76   ! !   !   END    (*  timeout  *)
16290  536   77   ! !   END     (* timer    *)
16300  537   78   ! ! ELSE
16310  538   79   ! !   
16320  539   80   ! !   IF msg^.u3 = dummy_route THEN
16330  540   81   ! !     return ( msg)
16340  541   82   ! !   ELSE
16350  542   83   ! !     
16360  543   84   ! !      
\f

ncperlst    81.06.09.   15.17.                                                    page    20

17010  544   85   ! !     
17020  545   86   ! !     BEGIN                        (*  other messages   *)
17030  546   87   ! !     ! 
17040  547   88   ! !     ! LOCK msg AS head: alarmlabel DO
17050  548   89   ! !     !   BEGIN
17060  549   90   ! !     !   ! who:= head.rec;
17070  550   91   ! !     !   ! from:= head.send.macro
17080  551   92   ! !     !   END;
17090  552   93   ! !     ! 
17100  553   94   ! !     ! IF who = here THEN             (*  for me    *)
17110  554   95   ! !     !   BEGIN
17120  555   96   ! !     !   ! CASE msg^.u4 OF
17130  556   97   ! !     !   ! ! 
17140  557   98   ! !     !   ! ! refuse_code:
17150  558   99   ! !     !   ! !   BEGIN
17160  559  100   ! !     !   ! !   ! LOCK msg AS buf: testshape DO
17170  560  101   ! !     !   ! !   !   WITH buf DO
17180  561  102   ! !     !   ! !   !     IF state(index(peri MOD 64)) <> down THEN
17190  562  103   ! !     !   ! !   !       BEGIN
17200  563  104   ! !     !   ! !   !       ! testout ( console, "msg to      ", peri);
17210  564  105   ! !     !   ! !   !       ! testout ( console, "returned    ", data(6));
17220  565  106   ! !     !   ! !   !       END;
17230  566  107   ! !     !   ! !   ! return ( msg)
17240  567  108   ! !     !   ! !   END;
17250  568  109   ! !     !   ! ! 
17260  569  110   ! !     !   ! ! #h20..#h23,
17270  570  111   ! !     !   ! ! #h26..#h29:
17280  571  112   ! !     !   ! !   BEGIN                              (*  broadcast    *)
17290  572  113   ! !     !   ! !   ! LOCK msg AS buf: note DO
17300  573  114   ! !     !   ! !   !   WITH buf DO
17310  574  115   ! !     !   ! !   !     BEGIN
17320  575  116   ! !     !   ! !   !     ! IF from = addr(dc).macro THEN head.send.micro:= addr(dc).micro;
17330  576  117   ! !     !   ! !   !     ! FOR ts:= 0 TO nodes DO
17340  577  118   ! !     !   ! !   !     !   IF head.send <> addr(ts) THEN
17350  578  119   ! !     !   ! !   !     !     broadcast ( msg^.u4, addr(ts), comp, cnt)
17360  579  120   ! !     !   ! !   !     END;
17370  580  121   ! !     !   ! !   ! return ( msg);
17380  581  122   ! !     !   ! !   END;
17390  582  123   ! !     !   ! ! 
17400  583  124   ! !     !   ! !  
\f

ncperlst    81.06.09.   15.17.                                                    page    21

18010  584  125   ! !     !   ! ! 
18020  585  126   ! !     !   ! ! ts_down,
18030  586  127   ! !     !   ! ! ts_up  :
18040  587  128   ! !     !   ! !   BEGIN                             (*  ts broadcast   *)
18050  588  129   ! !     !   ! !   ! LOCK msg AS buf: note DO
18060  589  130   ! !     !   ! !   !   WITH buf, head DO
18070  590  131   ! !     !   ! !   !     BEGIN
18080  591  132   ! !     !   ! !   !     ! 
18090  592  133   ! !     !   ! !   !     ! insert ( comp.macro, ready);
18100  593  134   ! !     !   ! !   !     ! 
18110  594  135   ! !     !   ! !   !     ! IF from = addr(dc).macro THEN head.send.micro:= addr(dc).micro;
18120  595  136   ! !     !   ! !   !     ! FOR ts:= 0 TO nodes DO
18130  596  137   ! !     !   ! !   !     !   IF head.send<> addr(ts) THEN
18140  597  138   ! !     !   ! !   !     !     broadcast ( msg^.u4, addr(ts), comp, cnt);
18150  598  139   ! !     !   ! !   !     END;
18160  599  140   ! !     !   ! !   ! return ( msg);
18170  600  141   ! !     !   ! !   ! 
18180  601  142   ! !     !   ! !   END;
18190  602  143   ! !     !   ! ! 
18200  603  144   ! !     !   ! ! var_code:
18210  604  145   ! !     !   ! !   BEGIN
18220  605  146   ! !     !   ! !   ! IF from = addr(dc).macro THEN                      (*  11.0   *)
18230  606  147   ! !     !   ! !   !   update ( msg) ELSE
18240  607  148   ! !     !   ! !   !   refuse ( msg, unknown_sender);
18250  608  149   ! !     !   ! !   !  
\f

ncperlst    81.06.09.   15.17.                                                    page    22

19010  609  150   ! !     !   ! !   !   (*------------------ perf. test ---------------------------------*)
19020  610  151   ! !     !   ! !   ! REPEAT
19030  611  152   ! !     !   ! !   ! ! wait ( msg, main_sem.w^);
19040  612  153   ! !     !   ! !   ! ! IF msg^.u4 = 02 THEN
19050  613  154   ! !     !   ! !   ! !   BEGIN
19060  614  155   ! !     !   ! !   ! !   ! LOCK msg AS buf: params DO
19070  615  156   ! !     !   ! !   ! !   !   WITH buf DO
19080  616  157   ! !     !   ! !   ! !   !     BEGIN
19090  617  158   ! !     !   ! !   ! !   !     ! np:= n1;
19100  618  159   ! !     !   ! !   ! !   !     ! l:= n2;
19110  619  160   ! !     !   ! !   ! !   !     ! k:= n3;
19120  620  161   ! !     !   ! !   ! !   !     ! ar:= rec
19130  621  162   ! !     !   ! !   ! !   !     END;
19140  622  163   ! !     !   ! !   ! !   END;
19150  623  164   ! !     !   ! !   ! ! IF msg^.u4 < #h30 THEN return ( msg) ELSE
19160  624  165   ! !     !   ! !   ! !   answer ( msg, accepted, msg^.u4+1);
19170  625  166   ! !     !   ! !   ! ! IF k>no_nc_talk THEN k:= no_nc_talk;
19180  626  167   ! !     !   ! !   ! ! IF l>maxbytes THEN l:= maxbytes;
19190  627  168   ! !     !   ! !   ! ! FOR h:= 1 TO k DO
19200  628  169   ! !     !   ! !   ! !   BEGIN
19210  629  170   ! !     !   ! !   ! !   ! alloc ( msg, bufferpool, main_sem.s^);
19220  630  171   ! !     !   ! !   ! !   ! msg^.u3:= nc_route;
19230  631  172   ! !     !   ! !   ! !   ! signal ( msg, free_sem.s^);
19240  632  173   ! !     !   ! !   ! !   END;
19250  633  174   ! !     !   ! !   ! ! 
19260  634  175   ! !     !   ! !   ! ! nr:= 0;
19270  635  176   ! !     !   ! !   ! ! ns:= 0;
19280  636  177   ! !     !   ! !   ! ! writetime;
19290  637  178   ! !     !   ! !   ! ! REPEAT
19300  638  179   ! !     !   ! !   ! ! ! WHILE open ( main_sem.w^) DO
19310  639  180   ! !     !   ! !   ! ! !   BEGIN
19320  640  181   ! !     !   ! !   ! ! !   ! IF msg^.u4 = nodetest_answ THEN
19330  641  182   ! !     !   ! !   ! ! !   !   BEGIN
19340  642  183   ! !     !   ! !   ! ! !   !   ! nr:= nr+1;
19350  643  184   ! !     !   ! !   ! ! !   !   ! signal ( msg, free_sem.s^);
19360  644  185   ! !     !   ! !   ! ! !   !   END ELSE
19370  645  186   ! !     !   ! !   ! ! !   !   IF msg^.u4 = 01 THEN
19380  646  187   ! !     !   ! !   ! ! !   !     BEGIN
19390  647  188   ! !     !   ! !   ! ! !   !     ! testout ( console, "  sendt     ", ns);
19400  648  189   ! !     !   ! !   ! ! !   !     ! testout ( console, "  modtaget  ", nr);
19410  649  190   ! !     !   ! !   ! ! !   !     ! return ( msg)
19420  650  191   ! !     !   ! !   ! ! !   !     END ELSE
19430  651  192   ! !     !   ! !   ! ! !   !     IF msg^.u4 < #h30 THEN return ( msg) ELSE
19440  652  193   ! !     !   ! !   ! ! !   !       answer ( msg, accepted, msg^.u4+1);
19450  653  194   ! !     !   ! !   ! ! !   END;
19460  654  195   ! !     !   ! !   ! ! ! 
\f

ncperlst    81.06.09.   15.17.                                                    page    23

19470  655  196   ! !     !   ! !   ! ! ! WHILE open ( free_sem.w^) AND ( ns < np ) DO
19480  656  197   ! !     !   ! !   ! ! !   BEGIN
19490  657  198   ! !     !   ! !   ! ! !   ! wait ( msg, free_sem.w^);
19500  658  199   ! !     !   ! !   ! ! !   ! ns:= ns+1;
19510  659  200   ! !     !   ! !   ! ! !   ! LOCK msg AS buf: testshape DO
19520  660  201   ! !     !   ! !   ! ! !   !   WITH buf, head DO
19530  661  202   ! !     !   ! !   ! ! !   !     BEGIN
19540  662  203   ! !     !   ! !   ! ! !   !     ! no_of_by:= label_size +l;
19550  663  204   ! !     !   ! !   ! ! !   !     ! rec:= ar;
19560  664  205   ! !     !   ! !   ! ! !   !     ! send:= here;
19570  665  206   ! !     !   ! !   ! ! !   !     ! ts_add:= gettime;
19580  666  207   ! !     !   ! !   ! ! !   !     ! testno:= ns;
19590  667  208   ! !     !   ! !   ! ! !   !     ! peri:= 3600;
19600  668  209   ! !     !   ! !   ! ! !   !     END;
19610  669  210   ! !     !   ! !   ! ! !   ! msg^.u3:= nc_route;
19620  670  211   ! !     !   ! !   ! ! !   ! msg^.u4:= nodetest_code;
19630  671  212   ! !     !   ! !   ! ! !   ! signal ( msg, net_sem^);
19640  672  213   ! !     !   ! !   ! ! !   END;
19650  673  214   ! !     !   ! !   ! ! ! wait ( msg, main_sem.w^);
19660  674  215   ! !     !   ! !   ! ! ! signal ( msg, main_sem.s^);
19670  675  216   ! !     !   ! !   ! ! UNTIL nr+ns = np+np;
19680  676  217   ! !     !   ! !   ! ! 
19690  677  218   ! !     !   ! !   ! ! writetime;
19700  678  219   ! !     !   ! !   ! ! FOR h:= 1 TO k DO
19710  679  220   ! !     !   ! !   ! !   BEGIN
19720  680  221   ! !     !   ! !   ! !   ! wait ( msg, free_sem.w^);
19730  681  222   ! !     !   ! !   ! !   ! release ( msg)
19740  682  223   ! !     !   ! !   ! !   END
19750  683  224   ! !     !   ! !   ! !   
19760  684  225   ! !     !   ! !   ! UNTIL false
19770  685  226   ! !     !   ! !   ! 
19780  686  227   ! !     !   ! !   END;
19790  687  228   ! !     !   ! ! 
19800  688  229   ! !     !   ! ! 
19810  689  230   ! !     !   ! ! 
19820  690  231   ! !     !   ! ! nodetest_code:
19830  691  232   ! !     !   ! !   BEGIN                                      (*  12.0    *)
19840  692  233   ! !     !   ! !   ! IF from = addr(dc).macro THEN
19850  693  234   ! !     !   ! !   !   BEGIN
19860  694  235   ! !     !   ! !   !   ! LOCK msg AS buf: testshape DO
19870  695  236   ! !     !   ! !   !   !   periode:= abs ( buf.peri);
19880  696  237   ! !     !   ! !   !   ! rest_time:= periode;
19890  697  238   ! !     !   ! !   !   ! answer ( msg, accepted, nodetest_answ);
19900  698  239   ! !     !   ! !   !   ! IF state(dc) = down THEN
19910  699  240   ! !     !   ! !   !   !   BEGIN
19920  700  241   ! !     !   ! !   !   !   ! FOR ts:= 1 TO nodes DO
\f

ncperlst    81.06.09.   15.17.                                                    page    24

19930  701  242   ! !     !   ! !   !   !   !   broadcast ( dc_up, addr(ts), addr(dc), 0);
19940  702  243   ! !     !   ! !   !   !   END;
19950  703  244   ! !     !   ! !   !   ! state(dc):= ready;
19960  704  245   ! !     !   ! !   !   ! test_all;
19970  705  246   ! !     !   ! !   !   ! rest_time:= periode;
19980  706  247   ! !     !   ! !   !   END
19990  707  248   ! !     !   ! !   ! ELSE
20000  708  249   ! !     !   ! !   !   refuse ( msg, unknown_sender)
20010  709  250   ! !     !   ! !   END;
20020  710  251   ! !     !   ! ! 
20030  711  252   ! !     !   ! ! 
20040  712  253   ! !     !   ! ! 
20050  713  254   ! !     !   ! !   <*  *>
20060  714  255   ! !     !   ! !   (*-------------- only for debug of own exception ------------------*)
20070  715  256   ! !     !   ! ! 
20080  716  257   ! !     !   ! ! #h0b:                                               (*  0.11    *)
20090  717  258   ! !     !   ! !   BEGIN
20100  718  259   ! !     !   ! !   ! h:= h DIV msg^.u1;        (*  if u1 = 0   *)
20110  719  260   ! !     !   ! !   ! exception ( msg^.u2);     (*  or use u2   *)
20120  720  261   ! !     !   ! !   END;
20130  721  262   ! !     !   ! ! 
20140  722  263   ! !     !   ! !   <*  *>
20150  723  264   ! !     !   ! ! 
20160  724  265   ! !     !   ! ! 
20170  725  266   ! !     !   ! !  
\f

ncperlst    81.06.09.   15.17.                                                    page    25

21010  726  267   ! !     !   ! ! 
21020  727  268   ! !     !   ! ! nodetest_answ:                                 (*  12.1    *)
21030  728  269   ! !     !   ! !   BEGIN
21040  729  270   ! !     !   ! !   ! LOCK msg AS buf: testshape DO
21050  730  271   ! !     !   ! !   !   WITH buf DO
21060  731  272   ! !     !   ! !   !     BEGIN
21070  732  273   ! !     !   ! !   !     ! ts:= index(head.send.macro.ts_addr);
21080  733  274   ! !     !   ! !   !     ! IF ts <= nodes THEN     (*  found   *)
21090  734  275   ! !     !   ! !   !     !   BEGIN
21100  735  276   ! !     !   ! !   !     !   ! IF head.result = not_ready THEN
21110  736  277   ! !     !   ! !   !     !   !   BEGIN
21120  737  278   ! !     !   ! !   !     !   !   ! restart ( head.send);
21130  738  279   ! !     !   ! !   !     !   !   ! IF state(ts) >= sleep THEN              (*  ts autoloaded    *)
21140  739  280   ! !     !   ! !   !     !   !   !   FOR n:= 0 TO nodes DO
21150  740  281   ! !     !   ! !   !     !   !   !     IF n <> ts THEN
21160  741  282   ! !     !   ! !   !     !   !   !       broadcast ( ts_down, addr(n), addr(ts), 0);
21170  742  283   ! !     !   ! !   !     !   !   ! state(ts):= starting;
21180  743  284   ! !     !   ! !   !     !   !   END  ELSE
21190  744  285   ! !     !   ! !   !     !   !   BEGIN
21200  745  286   ! !     !   ! !   !     !   !   ! IF state(ts) = down THEN
21210  746  287   ! !     !   ! !   !     !   !   !   BEGIN
21220  747  288   ! !     !   ! !   !     !   !   !   ! FOR n:= 0 TO nodes DO
21230  748  289   ! !     !   ! !   !     !   !   !   !   IF n <> ts THEN
21240  749  290   ! !     !   ! !   !     !   !   !   !     broadcast ( ts_up, addr(n), addr(ts), 0)
21250  750  291   ! !     !   ! !   !     !   !   !   END;
21260  751  292   ! !     !   ! !   !     !   !   ! state(ts):= ready;
21270  752  293   ! !     !   ! !   !     !   !   END;
21280  753  294   ! !     !   ! !   !     !   ! IF tests(ts) <> testno THEN
21290  754  295   ! !     !   ! !   !     !   !   BEGIN
21300  755  296   ! !     !   ! !   !     !   !   ! testout ( console, "send no.    ", tests(ts));
21310  756  297   ! !     !   ! !   !     !   !   ! testout ( console, "received    ", testno);
21320  757  298   ! !     !   ! !   !     !   !   END;
21330  758  299   ! !     !   ! !   !     !   !   (*  look at data(2..8)    *)
21340  759  300   ! !     !   ! !   !     !   END
21350  760  301   ! !     !   ! !   !     ! ELSE
21360  761  302   ! !     !   ! !   !     !   insert ( from, starting);
21370  762  303   ! !     !   ! !   !     END;
21380  763  304   ! !     !   ! !   ! return ( msg);
21390  764  305   ! !     !   ! !   END;
21400  765  306   ! !     !   ! ! 
21410  766  307   ! !     !   ! ! connect_code:                                    (*  12.8    *)
21420  767  308   ! !     !   ! !   BEGIN
21430  768  309   ! !     !   ! !   ! answer ( msg, accepted, connect_answ)
21440  769  310   ! !     !   ! !   END
21450  770  311   ! !     !   ! !   
21460  771  312   ! !     !   ! !   OTHERWISE
\f

ncperlst    81.06.09.   15.17.                                                    page    26

21470  772  313   ! !     !   ! !   refuse ( msg, unknown_opcode)
21480  773  314   ! !     !   ! !   
21490  774  315   ! !     !   ! END  (*  case  *)
21500  775  316   ! !     !   END  (*  who = here   *)
21510  776  317   ! !     !   
21520  777  318   ! !     !    
\f

ncperlst    81.06.09.   15.17.                                                    page    27

22010  778  319   ! !     !   
22020  779  320   ! !     ! ELSE
22030  780  321   ! !     !   
22040  781  322   ! !     !   IF ( msg^.u3 = netc_route1 ) THEN          (*  refused by netc    *)
22050  782  323   ! !     !     return ( msg)   ELSE
22060  783  324   ! !     !     
22070  784  325   ! !     !     IF ( msg^.u3 = netc_route2 ) THEN         (*  answer from netc   *)
22080  785  326   ! !     !       signal ( msg, net_sem^)
22090  786  327   ! !     !     ELSE
22100  787  328   ! !     !       
22110  788  329   ! !     !       IF who.micro = netc_mic_addr THEN       (*  to netc     *)
22120  789  330   ! !     !         BEGIN
22130  790  331   ! !     !         ! msg^.u3:= netc_route1;
22140  791  332   ! !     !         ! signal ( msg, net_sem^);
22150  792  333   ! !     !         END  ELSE
22160  793  334   ! !     !         
22170  794  335   ! !     !         IF ( from = addr(dc).macro )
22180  795  336   ! !     !           AND ( msg^.u4 = var_code)
22190  796  337   ! !     !           AND ( who.micro = tss_mic_addr ) THEN
22200  797  338   ! !     !           update ( msg)
22210  798  339   ! !     !         ELSE
22220  799  340   ! !     !           refuse ( msg, unknown_receiver);
22230  800  341   ! !     END
22240  801  342   ! !     
22250  802  343   ! UNTIL  false;
22260  803  344   ! 
22270  804  345   END .      (*  of nc - supervisor   *)
22280  805        
22290  806        
22300  807        
\f

ncperlst    81.06.09.   15.17.                                                    page    28

           0   24*   63*  107*  117*  117*  117*  117*  161   243   289   290   291   377   379   433 
              447   522   529   576   595   634   635   701   739   741   747   749 
           1   23*   43*  100*  101*  162   245   249   371   426   440   447   517   528   624   627 
              642   652   658   678   700 
           2   22*   43*   44*   45*   45*   46*   51*   53*   56*  420   442 
           3   91*
           4   46*   47*
           5   52*  121*  122*  447 
           6   54*  445   447   564 
          01  645 
          02  612 
          10   48*  444 
          16  445 
          30   21*
          60  121*  122*
          64  561 
         250   50*
        3600  667 
abs           294   695 
accepted      272   326   624   652   697   768 
addr          110*  223   245   296   323   379   379   387   421   529   529   575   575   577   578 
              594   594   596   597   605   692   701   701   741   741   749   749   794 
address        80*  269 
adr           132*  136*
ae_length      47*  322 
alarmlabel     67*   72*   79*   89*  187   547 
alarmnetaddr   73*   85*  110*  116*  117*  314*  339*  340*
alloc         482   498   629 
al_env_version                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              461 
answer        181*  272   307   424   624   652   697   768 
ar            114*  620=  663 
as            150:  187:  206:  220:  266:  285:  319:  347:  383:  417:  547:  559:  572:  588:  614:
              659:  694:  729:
bc_length      46*  350 
breaked       414   424   439 
broadcast     337*  379   529   578   597   701   741   749 
buf           150:  151   206:  207   222   266:  267   270   285:  286   319:  320   347:  348   383:
              384   417:  418   559:  560   572:  573   588:  589   614:  615   659:  660   694:  695 
              729:  730 
bufferpool    102*  629 
byte          132*  167*  184*  281*  338*  408*
c             341*  356 
cause         126*  183*  192   202*  214   298=  302=  307   406*  411   422 
\f

ncperlst    81.06.09.   15.17.                                                    page    29

clockpool     101*  482 
clock_form    144*  150 
clock_msg     104*  148   149   150:  482   483   484 
cnt            74*  356=  578   597 
comp           73*  328=  355=  578   592   597 
connect_answ   40*  768 
connect_code   39*  766:
console       128*  161   162   460   461   563   564   647   648   755   756 
copy_code      26*  225 
count         391 
data           67*   91*  209=  210   564 
dc             24*  223   296   297   323   421   495   525   527   529   575   575   594   594   605 
              692   698   701   703   794 
dc_addr       241   241   296=  296 
dc_down        28*  529 
dc_up          29*  701 
delay1         50*  500   518 
delay2         51*  501   519 
done            7*  149   482 
down           61*  253   376   525   527   561   698   745 
dummy_route   490:  539 
exception     406*  719 
external      133*  137*
false         451   684   802 
finis_code     41*  424 
first         279*  492 
flawshape      65*  206   220 
form11         78*  266 
free_sem        6*  217   318   346   382   415   428   631   643   655   657   680 
from          119*  550=  575   594   605   692   761   794 
gettime       141*  151=  160   193   215   327   354   390   665 
h             125*  426=  433=  440=  440   442   627=  678=  718=  718 
h0b           716:
h10            26*
h12            27*
h20            28*  569 
h21            29*
h22            30*
h23            31*  569 
h24            32*
h25            33*
h26           570 
h29           570:
h30           623   651 
\f

ncperlst    81.06.09.   15.17.                                                    page    30

hae            34*
hb0            35*
hb1            36*
hc0            37*
hc1            38*
hc8            39*
hc9            40*
hce            41*
head           66*   72*   79*   89*  187:  188   209   211   212   212   213   214   215   223   270 
              286   320   348   384   418   547:  549   550   575   577   589   594   596   660   732 
              735   737 
here          116*  191   213   241   242   270=  293   296   324   352   388   497   553   664 
incname       460 
index         109*  246   250=  561   732 
insert        236*  269   592   761 
insert_code   325   353   389 
integer        74*   84*   90*   91*  112*  121*  122*  125*  132*  136*  341*  406*
k             124*  619=  625   625=  627   678 
l             124*  618=  626   626=  662 
label_size     43*   45*   46*   47*   48*  420   662 
last_node      22*   23*
lock          150:  187:  206:  220:  266:  285:  319:  347:  383:  417:  547:  559:  572:  588:  614:
              659:  694:  729:
m             167*  170   171   172   173   182*  187:  195   202*  206:  210   229   279*  285:  288 
              307 
macro         241   242   245=  289   290   291   293=  293   296   296   550   575   592   594   605 
              692   732   794 
macroaddr      80*  117*  119*  236*
main_sem        5*  435   488   498   513   611   629   638   673   674 
margin         52*  393 
maxbytes       44*  626   626 
max_node       23*   63*  247 
micro         575=  575   594=  594   788   796 
ms            105*  217   218   220:  225   318   319:  330   346   347:  359   382   383:  396   415 
              415   417:  424   428   429 
msg           105*  253   254   262*  266:  272   414   414   435   436   437   439   488   489   490 
              491   492   493   498   499   500   501   513   515   518   519   520   539   540   547:
              555   559:  566   572:  578   580   588:  597   599   606   607   611   612   614:  623 
              623   624   624   629   630   631   640   643   645   649   651   651   652   652   657 
              659:  669   670   671   673   674   680   681   694:  697   708   718   719   729:  763 
              768   772   781   782   784   785   790   791   795   797   799 
n             107*  377=  378   379   739=  740   741   747=  748   749 
n1             84*  617 
n2             84*  618 
\f

ncperlst    81.06.09.   15.17.                                                    page    31

n3             84*  619 
ncsupervisor    3*
nc_addr       242   242   290 
nc_down        30*
nc_route      171   484   630   669 
nc_up          31*
netc_mic_addr                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              788 
netc_route    492:
netc_route1   491:  781   790 
netc_route2   784 
net_sem         8*  173   493   671   785   791 
new           220:  222=  223   236*  241   242   243   245   246   250 
newstate      236*  255 
nodes         107*  245   249   251=  371   377   528   576   595   700   733   739   747 
nodetest_answ                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
               38*  299   640   697   727:
nodetest_code                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
               37*  288   396   670   690:
node_range     63*  107*  109*  109*  110*  111*  112*  238*
note           71*  319   347   572   588 
not_ready     298   735 
no_nc_talk     21*  102*  426   625   625 
no_of_by      211=  322=  350=  386=  420=  662=
np            124*  617=  655   675   675 
nr            124*  634=  642=  642   648   675 
ns            124*  635=  647   655   658=  658   666   675 
open          638   655 
oper          184*  195 
operation     338*  359 
opsem           4*  460 
op_code       210=
own           460 
ownertest     436   515 
params         83*  614 
peri           90*  294   393=  561   563   667=  695 
periode       121*  294=  295   393   533   695=  696   705 
pool          100*  101*  102*
process         3*
readram       132*  444 
ready          61*  254   297   395   495   592   703   751 
read_clock     53*  483 
rec            85*  190=  212=  223=  270   289   293   323=  351=  387=  549   620   663=
reference     105*  167*  182*  202*  262*  279*
\f

ncperlst    81.06.09.   15.17.                                                    page    32

refuse        202*  414   439   607   708   772   799 
refuse_code    27*  229   303   557:
refuse_length                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
               45*  211 
release       429   437   681 
res           281*  299=  303=  307 
restart       314*  497   737 
rest_time     122*  295=  517=  517   522   533=  696=  705=
result        192=  214=  326=  735 
result_range  126*  183*  202*
return        490   491   540   566   580   599   623   649   651   763   782 
s             482   498   629   631   643   674 
sempointer      4*    9*
send          190   191=  212   213=  290   291   324=  352=  388=  421=  550   575   577   594   596 
              664=  732   737 
sendtimer     520 
sensesem      217 
signal        148   173   493   631   643   671   674   785   791 
size_listen    43*
sleep          61*  374   395   738 
starting       61*  269   742   761 
state         111*  253=  254=  255=  297=  374   376=  395   395=  495   525   527=  561   698   703=
              738   742=  745   751=
status         61*  111*  236*
switch        408*  444   445 
t             158*  160=  161   162   238*  246=  247   249=  250   251   253   254   255 
tablerequest   34*  330 
testno         90*  392=  422=  666=  753   756 
testopen      460 
testout       161   162   461   563   564   647   648   755   756 
tests         112*  391   392   753   755 
testshape      88*  102*  285   383   417   559   659   694   729 
test_all      367*  532   704 
test_length    48*  386 
tickmess      100*  436   498   515 
time          144*  151 
timeout_sem     9*  148 
trace         411 
true          448 
ts            107*  371=  374   376   378   379   387   391   392   395   395   528=  529   576=  577 
              578   595=  596   597   700=  701   732=  733   738   740   741   742   745   748   749 
              751   753   755 
tss_mic_addr  796 
ts_add        193=  215=  327=  354=  390=  665=
\f

ncperlst    81.06.09.   15.17.                                                    page    33

ts_addr       243   246   250   289   291   732 
ts_down        32*  253   379   585:  741 
ts_pointer      5*    6*    7*
ts_time       101*  141*  144*  158*
ts_up          33*  254   586:  749 
u1            170=  483=  499=  718 
u2            719 
u3            171=  484=  489   500=  518=  539   630=  669=  781   784   790=
u4            172=  210   253   254   288   501=  519=  555   578   597   612   623   624   640   645 
              651   652   670=  795 
u4val         167*  172 
unknown_opcode                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              302   772 
unknown_receiver                                                 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              799 
unknown_sender                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              607   708 
update        262*  325=  353=  389=  606   797 
var_answ       36*  272 
var_code       35*  603:  795 
version        14*  461 
w             132*  136*  149   217   318   346   382   415   428   435   488   513   611   638   655 
              657   673   680 
wait          149   318   346   382   415   428   435   488   513   611   657   673   680 
where         314*  328   340*  355 
who           115*  339*  351   549=  553   788   796 
words          43*   44*   91*
write          56*  170 
writeram      136*  447   447 
writetime     157*  636   677 
writetimer     54*  499 
xmit          167*  195   225   229   330   359   396 
zone          128*
\f

ncperlst    81.06.09.   15.17.                                                    page    34

AND                8
ARRAY              5
BEGIN             67
CASE               2
CONST              2
DIV                3
DO                46
ELSE              19
END               75
FOR               11
FUNCTION           1
IF                45
MOD                1
NIL                3
NOT                2
OF                 9
OTHERWISE          2
PACKED             4
PROCEDURE         13
RECORD             6
REPEAT             5
THEN              45
TO                11
TYPE               2
UNTIL              5
VAR               15
WHILE              3
WITH              14
 nc performance
81.06.09.      15.18.                         pascal80     version 1981.04.01


   name        headline beginline endline  appetite(words) 

   gettime        144       148     151  :       9            
   writetime      158       160     163  :      25            
   xmit           169       170     173  :       5            
   answer         186       187     196  :      18            
   refuse         204       206     231  :      18            
   insert         238       244     258  :       6            
   update         264       266     274  :      14            
   first          281       285     309  :      20            
   restart        316       318     332  :      20            
   broadcast      344       346     359  :      20            
   test_all       369       371     399  :      25            
   exception      408       411     453  :      19            
   ncsupervisor    14       460     804  :     162            

 code: 9 . 384  = 7584 bytes


end of PASCAL80 compilation 

end
blocksread = 53
«eof»