|
|
DataMuseum.dkPresents historical artifacts from the history of: RC3500 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC3500 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 54528 (0xd500)
Types: TextFileVerbose
Names: »ncperlst«
└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system
└─⟦72244f0ef⟧
└─⟦this⟧ »ncperlst«
\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»