|
|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 106752 (0x1a100)
Types: TextFile
Names: »tsathlst«
└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system
└─⟦72244f0ef⟧
└─⟦this⟧ »tsathlst«
\f
tsathlst 81.06.23. 20.18. page 1
10 1 PROCESS at_handler(
20 2 op_sem : sempointer;
30 3 VAR
40 4 dc_address ,
50 5 own_address : !macroaddr;
60 6 VAR
70 7 sem : !ts_pointer_vector
80 8 );
90 9
100 10 CONST
110 11 version = "vers 3.18 /";
120 12
130 13
140 14 (* ------------------------------------------------------------------------
150 15 .
160 16 . The at_handler presupposes the following surroundings:
170 17 .
180 18 . - at runtime:
190 19 .
200 20 . Libraries: tslib.
210 21 .
220 22 . Externals: at_connector, receipt_message, reject_message.
230 23 .
240 24 .
250 25 . - at compile time:
260 26 .
270 27 . Environments: alarmenv, tsenvir
280 28 .
290 29 . Call: <object> = pascal80 <options> alarmenv tsenvir <source>
300 30 .
310 31 ------------------------------------------------------------------------ *)
320 32
\f
tsathlst 81.06.23. 20.18. page 2
1010 33 (*
1020 34 INTRODUCTION TO THE AT-HANDLER:
1030 35
1040 36
1050 37
1060 38 Abbreviation list for the AT-HANDLER process:
1070 39
1080 40 ---------------------------------------------
1090 41
1100 42 ac alarm centre
1110 43 addr address
1120 44 at alarm terminal
1130 45 atc at-connector
1140 46 ath at-handler
1150 47 dc district centre
1160 48 del delete
1170 49 incar incarnation
1180 50 ins insert
1190 51 ix index
1200 52 locvar local variable
1210 53 mac macro address
1220 54 max greatest
1230 55 mic micro address
1240 56 min smallest
1250 57 msg message
1260 58 no number
1270 59 pac primary alarm centre
1280 60 rac receiving alarm centre
1290 61 rec receiver
1300 62 sac sending alarm centre
1310 63 sem semaphore
1320 64 send sender
1330 65 tss ts-supervisor
1340 66
\f
tsathlst 81.06.23. 20.18. page 3
2010 67 Pseudo-code for the AT-HANDLER process:
2020 68 --------------------------------------
2030 69
2040 70 ( this pseudo_code will be updated regularly - last time was 80.06.03 )
2050 71
2060 72
2070 73 PROCESS at_handler("process_parameters");
2080 74
2090 75 CONST
2100 76 . "process_constants, installation dependent" (may be moved to alarm-environment);
2110 77
2120 78
2130 79 TYPE
2140 80 . "message_format" (may be moved to alarm-environment);
2150 81
2160 82 VAR
2170 83 . "sac_rac_table";
2180 84 . "atc_table, binary search";
2190 85
2200 86 . "addressing_data";
2210 87 . "atc_incarnation_data";
2220 88 . "error_handling_data";
2230 89
2240 90 . "input_semaphore";
2250 91
2260 92 BEGIN
2270 93 . "initialization";
2280 94
2290 95 . REPEAT
2300 96 . "collect a buffer on the input_semaphore, and
2310 97 . "handle the message in the buffer, corresponding to the
2320 98 . operation_code, and produce resulting messages";
2330 99
2340 100 . "for each resulting message do addressing/indexing
2350 101 . do supervising and signal each of the buffers to the
2360 102 . corresponding input_semaphore";
2370 103
2380 104 . UNTIL forever;
2390 105
2400 106
2410 107 END;
2420 108
2430 109 (end of pseudo_code)
2440 110 *)
2450 111
\f
tsathlst 81.06.23. 20.18. page 4
3010 112 (* ------------------------------------------------------------------------
3020 113 . Declaration part 1: sac_rac table and table control variables.
3030 114 ------------------------------------------------------------------------ *)
3040 115
3050 116 VAR
3060 117 sac_rac_tbl : sac_rac_table
3070 118 := sac_rac_table( sac_rac_lth ***
3080 119 sac_rac_tbl_entry ( sac_rac_entry( empty_addr, empty_addr ), false ) );
3090 120
3100 121 sac_rac_ix : sac_rac_range := 1;
3110 122 sac_rac_top : upper_sac_rac_index := 0; (* Indicates the highest used sac_rac_index *)
3120 123
\f
tsathlst 81.06.23. 20.18. page 5
4010 124 (* ------------------------------------------------------------------------
4020 125 . Declaration part 2: ATC incarnation table and ATC shadow table and table
4030 126 . control variables.
4040 127 ------------------------------------------------------------------------ *)
4050 128
4060 129 VAR
4070 130 atc_tbl : atc_table
4080 131 := atc_table( atc_tbl_lth *** atc_description( 0, 1, 1, 0, poll_delay_time,
4090 132 (..), stop_code, stop_code, 1 ) );
4100 133
4110 134 shadows : atc_shadow_table;
4120 135
4130 136 atc_tbl_ix : atc_table_range := 1;
4140 137 atc_tbl_top : upper_atc_tbl_index := 0;
4150 138
\f
tsathlst 81.06.23. 20.18. page 6
5010 139 (* ------------------------------------------------------------------------
5020 140 . Declaration part 3: resource handling.
5030 141 ------------------------------------------------------------------------ *)
5040 142
5050 143 VAR
5060 144 main_wait : (
5070 145 idle_main ,
5080 146 busy_main ,
5090 147 busy_pool ) := idle_main;
5100 148
5110 149 claim_level : atc_inc_claim := claim_none;
5120 150
5130 151 resource_claims : integer := 0;
5140 152
5150 153 queue_lth : byte := 0;
5160 154
5170 155 aux_msg ,
5180 156 working_0404_msg ,
5190 157 working_0608_msg : reference;
5200 158
\f
tsathlst 81.06.23. 20.18. page 7
6010 159 (* ------------------------------------------------------------------------
6020 160 . Declaration part 4: main part.
6030 161 ------------------------------------------------------------------------ *)
6040 162
6050 163 TYPE
6060 164 route_vector = ARRAY( netc_route..netc_route1 ) OF byte;
6070 165
6080 166 CONST
6090 167 route_vct = route_vector( at_route, at_route1 );
6100 168
6110 169 VAR
6120 170 main_msg : reference;
6130 171
6140 172 result_code : result_range := accepted;
6150 173
6160 174 atc_name : alfa;
6170 175 atc_no : integer := at_addr_limit;
6180 176 alfa_pos : 1..alfalength := 1;
6190 177
\f
tsathlst 81.06.23. 20.18. page 8
7010 178 (* ------------------------------------------------------------------------
7020 179 . Declaration part 5: supervision.
7030 180 ------------------------------------------------------------------------ *)
7040 181
7050 182 VAR
7060 183 book_up_pool : pool 1 OF updates;
7070 184 time_out_pool : pool 1 OF integer;
7080 185
7090 186 book_up_msg ,
7100 187 time_out_msg : reference;
7110 188
7120 189 node_test_freq : integer := max_int;
7130 190 traffic_test_freq : integer := max_int;
7140 191 nt_time_out : boolean := false;
7150 192
7160 193 dc_disconnect : boolean := true;
7170 194
\f
tsathlst 81.06.23. 20.18. page 9
8010 195 (* ------------------------------------------------------------------------
8020 196 . Declaration part 6: miscellaneous.
8030 197 ------------------------------------------------------------------------ *)
8040 198
8050 199 VAR
8060 200 (*q test : boolean := false; q*)
8070 201
8080 202 z : zone;
8090 203
\f
tsathlst 81.06.23. 20.18. page 10
9010 204 (* ------------------------------------------------------------------------
9020 205 . Declaration part 7: Externals.
9030 206 ------------------------------------------------------------------------ *)
9040 207
9050 208 PROCESS atconnector(
9060 209 op_sem : sempointer;
9070 210 VAR
9080 211 main_sem ,
9090 212 queue_sem : !ts_pointer;
9100 213 VAR
9110 214 ath_sem ,
9120 215 driversem ,
9130 216 com_pool : !sempointer;
9140 217 VAR
9150 218 actual_activity : !connector_state;
9160 219 VAR
9170 220 poll_delay : !integer;
9180 221 VAR
9190 222 traffic_test_freq : !integer;
9200 223 VAR
9210 224 traffic_counter : integer;
9220 225 VAR
9230 226 own_dc ,
9240 227 own_ts : !macroaddr;
9250 228 ownaddr : !integer;
9260 229 channelno : !byte
9270 230 );
9280 231 EXTERNAL;
9290 232
\f
tsathlst 81.06.23. 20.18. page 11
10010 233 PROCEDURE book_up(
10020 234 VAR
10030 235 time_out_msg ,
10040 236 book_up_msg : reference;
10050 237 seconds : integer
10060 238 );
10070 239
10080 240 (* -----------------------------------------------------------------------
10090 241 ----------------------------------------------------------------------- *)
10100 242
10110 243 BEGIN
10120 244 1 !
10130 245 2 ! IF NOT nil( book_up_msg ) THEN
10140 246 3 ! BEGIN
10150 247 4 ! !
10160 248 5 ! ! LOCK book_up_msg AS locvar: updates DO
10170 249 6 ! ! WITH locvar DO
10180 250 7 ! ! count:= seconds
10190 251 8 ! ! ;
10200 252 9 ! !
10210 253 10 ! ! IF nil( time_out_msg ) THEN
10220 254 11 ! ! BEGIN
10230 255 12 ! ! !
10240 256 13 ! ! ! book_up_msg^.u1:= update_req;
10250 257 14 ! ! ! book_up_msg^.u4:= #hc4
10260 258 15 ! ! !
10270 259 16 ! ! END
10280 260 17 ! ! ELSE
10290 261 18 ! ! BEGIN
10300 262 19 ! ! !
10310 263 20 ! ! ! book_up_msg^.u1:= book_req;
10320 264 21 ! ! ! book_up_msg^.u4:= #hc3;
10330 265 22 ! ! !
10340 266 23 ! ! ! push( time_out_msg, book_up_msg )
10350 267 24 ! ! !
10360 268 25 ! ! END;
10370 269 26 ! !
10380 270 27 ! ! signal( book_up_msg, sem( timeout_sem_no ).s^ )
10390 271 28 ! !
10400 272 29 ! END
10410 273 30 !
10420 274 31 END; (* procedure book_up *)
10430 275
\f
tsathlst 81.06.23. 20.18. page 12
11010 276 FUNCTION get_message(
11020 277 VAR
11030 278 msg : reference;
11040 279 route ,
11050 280 opc : byte;
11060 281 noofbytes : integer;
11070 282 rec_macro : macroaddr;
11080 283 rec_micro : integer;
11090 284 upd : update_range;
11100 285 res : result_range
11110 286 ): boolean;
11120 287
11130 288 (* -----------------------------------------------------------------------
11140 289 . Function : Returns as true with a message, supplied with a fully
11150 290 . updated alarmlabel, if one is available on the
11160 291 . semaphore, that holds the vacant resources, and if
11170 292 . no messages are hanging on the main semaphore.
11180 293 ----------------------------------------------------------------------- *)
11190 294
11200 295 BEGIN
11210 296 1 !
11220 297 2 ! IF passive( sem( ath_sem_no ).w^ ) THEN
11230 298 3 ! BEGIN
11240 299 4 ! !
11250 300 5 ! ! sensesem( msg, sem( com_pool ).w^ );
11260 301 6 ! !
11270 302 7 ! ! IF NOT nil( msg ) THEN
11280 303 8 ! ! LOCK msg AS locvar: alarmlabel DO
11290 304 9 ! ! WITH msg^, locvar DO
11300 305 10 ! ! BEGIN
11310 306 11 ! ! !
11320 307 12 ! ! ! u3:= route;
11330 308 13 ! ! ! u4:= opc;
11340 309 14 ! ! !
11350 310 15 ! ! ! no_of_by:= label_size + noofbytes;
11360 311 16 ! ! !
11370 312 17 ! ! ! rec.macro:= rec_macro;
11380 313 18 ! ! ! rec.micro:= rec_micro;
11390 314 19 ! ! !
11400 315 20 ! ! ! send.macro:= own_address;
11410 316 21 ! ! ! send.micro:= ath_mic_addr;
11420 317 22 ! ! !
11430 318 23 ! ! ! update:= upd;
11440 319 24 ! ! ! result:= res;
11450 320 25 ! ! !
11460 321 26 ! ! ! main_wait:= idle_main
\f
tsathlst 81.06.23. 20.18. page 13
11470 322 27 ! ! !
11480 323 28 ! ! END
11490 324 29 ! ! ELSE
11500 325 30 ! ! main_wait:= busy_pool
11510 326 31 ! !
11520 327 32 ! END
11530 328 33 ! ELSE
11540 329 34 ! main_wait:= busy_main
11550 330 35 ! ;
11560 331 36 !
11570 332 37 ! get_message:= NOT nil( msg )
11580 333 38 !
11590 334 39 END; (* function get_message *)
11600 335
\f
tsathlst 81.06.23. 20.18. page 14
12010 336 FUNCTION foreign_nc(
12020 337 node_address : macroaddr
12030 338 ): boolean;
12040 339
12050 340 (* -----------------------------------------------------------------------
12060 341 . Function : Returns as true if - in the alarm net hierarchy - the node
12070 342 . in question is a foreign NC or located below a foreign NC.
12080 343 ----------------------------------------------------------------------- *)
12090 344
12100 345 BEGIN
12110 346 1 !
12120 347 2 ! WITH node_address DO
12130 348 3 ! foreign_nc:= ( dc_addr <> own_address.dc_addr )
12140 349 4 ! OR
12150 350 5 ! ( nc_addr <> own_address.nc_addr )
12160 351 6 !
12170 352 7 END; (* function foreign_nc *)
12180 353
12190 354
\f
tsathlst 81.06.23. 20.18. page 15
13010 355 FUNCTION acting_ac(
13020 356 sac_rac_ix : sac_rac_range
13030 357 ): alarmnetaddr;
13040 358
13050 359 (* -----------------------------------------------------------------------
13060 360 . function : Returns with the alarm net address of the AC that
13070 361 . for the moment is functioning as receiver/sender at the
13080 362 . entry in sac_rac table indicated by sac_rac_ix.
13090 363 ----------------------------------------------------------------------- *)
13100 364
13110 365 BEGIN
13120 366 1 !
13130 367 2 ! WITH sac_rac_tbl( sac_rac_ix ).sac_rac_e DO
13140 368 3 ! IF ( substitute_ac_addr <> empty_addr ) THEN
13150 369 4 ! acting_ac:= substitute_ac_addr
13160 370 5 ! ELSE
13170 371 6 ! acting_ac:= usual_ac_addr
13180 372 7 !
13190 373 8 END; (* function acting_ac *)
13200 374
\f
tsathlst 81.06.23. 20.18. page 16
14010 375 FUNCTION search_sac_rac(
14020 376 ac_address : alarmnetaddr;
14030 377 VAR
14040 378 sac_rac_ix : sac_rac_range
14050 379 ): boolean;
14060 380
14070 381 (* -----------------------------------------------------------------------
14080 382 . function : Searches the sac_rac table for an entry, where
14090 383 . ac_address is the functioning AC.
14100 384 ----------------------------------------------------------------------- *)
14110 385
14120 386 BEGIN
14130 387 1 !
14140 388 2 ! sac_rac_ix:= 1;
14150 389 3 !
14160 390 4 ! WHILE ( acting_ac( sac_rac_ix ) <> ac_address ) AND ( sac_rac_ix < sac_rac_top ) DO
14170 391 5 ! sac_rac_ix:= sac_rac_ix + 1;
14180 392 6 !
14190 393 7 ! search_sac_rac:= acting_ac( sac_rac_ix ) = ac_address
14200 394 8 !
14210 395 9 END; (* function search_sac_rac *)
14220 396
\f
tsathlst 81.06.23. 20.18. page 17
15010 397 (*------------ atc_tbl-part ------------*)
15020 398
15030 399 FUNCTION find_atc_tbl_entry(
15040 400 mic_addr : integer;
15050 401 VAR
15060 402 atc_tbl_ix : atc_table_range
15070 403 ): boolean;
15080 404
15090 405 (* ----------------------------------------------------------------------
15100 406 . This function returns the index of the element with the given micro address.
15110 407 . If not found, then the index is the place of the new element.
15120 408 . The search strategy is a binary search in an ordered list of
15130 409 . elements. The smallest element has the index = 1.
15140 410 . Error - will not appear.
15150 411 ----------------------------------------------------------------------- *)
15160 412
15170 413 VAR
15180 414 low, mid : atc_table_range;
15190 415
15200 416 BEGIN
15210 417 1 !
15220 418 2 ! IF ( atc_tbl_top > 0 ) THEN
15230 419 3 ! BEGIN (* now the search is started *)
15240 420 4 ! !
15250 421 5 ! ! low := 1;
15260 422 6 ! ! atc_tbl_ix:= atc_tbl_top;
15270 423 7 ! !
15280 424 8 ! ! WHILE ( atc_tbl( atc_tbl_ix ).atc_mic_addr > mic_addr ) AND ( ( atc_tbl_ix - low ) > 0 ) DO
15290 425 9 ! ! BEGIN
15300 426 10 ! ! !
15310 427 11 ! ! ! mid:= ( atc_tbl_ix - low ) DIV 2 + low;
15320 428 12 ! ! !
15330 429 13 ! ! ! IF ( atc_tbl( mid ).atc_mic_addr < mic_addr ) THEN
15340 430 14 ! ! ! low:= mid + 1
15350 431 15 ! ! ! ELSE
15360 432 16 ! ! ! atc_tbl_ix:= mid
15370 433 17 ! ! !
15380 434 18 ! ! END;
15390 435 19 ! !
15400 436 20 ! ! IF ( atc_tbl( atc_tbl_ix ).atc_mic_addr <> mic_addr ) THEN
15410 437 21 ! ! BEGIN
15420 438 22 ! ! !
15430 439 23 ! ! ! find_atc_tbl_entry:= false;
15440 440 24 ! ! ! atc_tbl_ix:= atc_tbl_ix + ord( atc_tbl( atc_tbl_ix ).atc_mic_addr < mic_addr )
15450 441 25 ! ! !
15460 442 26 ! ! END
\f
tsathlst 81.06.23. 20.18. page 18
15470 443 27 ! ! ELSE
15480 444 28 ! ! find_atc_tbl_entry:= true
15490 445 29 ! !
15500 446 30 ! END
15510 447 31 ! ELSE
15520 448 32 ! BEGIN
15530 449 33 ! !
15540 450 34 ! ! find_atc_tbl_entry:= false;
15550 451 35 ! ! atc_tbl_ix:= 1
15560 452 36 ! !
15570 453 37 ! END
15580 454 38 !
15590 455 39 END; (* find_atc_tbl_entry *)
15600 456
\f
tsathlst 81.06.23. 20.18. page 19
16010 457 PROCEDURE place_atc_tbl_entry(
16020 458 atc_tbl_ix : atc_table_range;
16030 459 atc_mic : integer;
16040 460 pac_index : sac_rac_range
16050 461 );
16060 462
16070 463 (* ---------------------------------------------------------------------
16080 464 . Function : Enters and initialize a new entry and re-arranges the
16090 465 . table.
16100 466 . Call only if there's room in the table and the position
16110 467 . in the table is located.
16120 468 ----------------------------------------------------------------------- *)
16130 469
16140 470 VAR
16150 471 work_ix : upper_atc_tbl_index;
16160 472 work_entry : atc_description;
16170 473
16180 474 BEGIN
16190 475 1 !
16200 476 2 ! work_entry:= atc_tbl( atc_tbl_top + 1 );
16210 477 3 !
16220 478 4 ! FOR work_ix:= atc_tbl_top DOWNTO atc_tbl_ix DO
16230 479 5 ! atc_tbl( work_ix + 1 ):= atc_tbl( work_ix );
16240 480 6 !
16250 481 7 ! atc_tbl( atc_tbl_ix ):= work_entry;
16260 482 8 !
16270 483 9 ! WITH atc_tbl( atc_tbl_ix ) DO
16280 484 10 ! BEGIN
16290 485 11 ! !
16300 486 12 ! ! atc_mic_addr := atc_mic;
16310 487 13 ! ! pac_ix := pac_index;
16320 488 14 ! ! traffic_count:= 0;
16330 489 15 ! ! delay:= poll_delay_time;
16340 490 16 ! ! claim_set:= (..);
16350 491 17 ! ! actual_activity:= stop_code;
16360 492 18 ! ! wanted_activity := stop_code
16370 493 19 ! !
16380 494 20 ! END;
16390 495 21 !
16400 496 22 ! atc_tbl_top:= atc_tbl_top + 1
16410 497 23 !
16420 498 24 END (* place_atc_tbl_entry *);
16430 499
\f
tsathlst 81.06.23. 20.18. page 20
17010 500 PROCEDURE del_atc_tbl_entry(
17020 501 atc_tbl_ix : atc_table_range
17030 502 );
17040 503
17050 504 (* ---------------------------------------------------------------------
17060 505 . Function : Removes the entry and re-arranges the table.
17070 506 . Call only if the entry in question is located.
17080 507 ---------------------------------------------------------------------- *)
17090 508
17100 509 VAR
17110 510 work_entry : atc_description;
17120 511
17130 512 BEGIN
17140 513 1 !
17150 514 2 ! IF NOT nil( shadows( atc_tbl( atc_tbl_ix ).shad_ix ) ) THEN
17160 515 3 ! remove( shadows( atc_tbl( atc_tbl_ix ).shad_ix ) );
17170 516 4 !
17180 517 5 ! work_entry:= atc_tbl( atc_tbl_ix );
17190 518 6 !
17200 519 7 ! WHILE ( atc_tbl_ix < atc_tbl_top ) DO
17210 520 8 ! BEGIN
17220 521 9 ! !
17230 522 10 ! ! atc_tbl( atc_tbl_ix ):= atc_tbl( atc_tbl_ix + 1 );
17240 523 11 ! ! atc_tbl_ix:= atc_tbl_ix + 1
17250 524 12 ! !
17260 525 13 ! END;
17270 526 14 !
17280 527 15 ! atc_tbl( atc_tbl_top ):= work_entry;
17290 528 16 ! atc_tbl_top := atc_tbl_top - 1
17300 529 17 !
17310 530 18 END (* del_atc_tbl_entry *);
17320 531
\f
tsathlst 81.06.23. 20.18. page 21
18010 532 PROCEDURE decrease_claims(
18020 533 VAR
18030 534 claim_set : atc_claim_set;
18040 535 msg_kind : atc_inc_claim
18050 536 );
18060 537
18070 538 (* -----------------------------------------------------------------------
18080 539 ----------------------------------------------------------------------- *)
18090 540
18100 541 BEGIN
18110 542 1 !
18120 543 2 ! IF msg_kind IN claim_set THEN
18130 544 3 ! BEGIN
18140 545 4 ! !
18150 546 5 ! ! claim_set:= claim_set - (.msg_kind.);
18160 547 6 ! ! resource_claims:= resource_claims - 1
18170 548 7 ! !
18180 549 8 ! END
18190 550 9 !
18200 551 10 END; (* procedure decrease_claims *)
18210 552
\f
tsathlst 81.06.23. 20.18. page 22
19010 553 PROCEDURE increase_claims(
19020 554 first_ix ,
19030 555 last_ix : atc_table_range;
19040 556 msg_kind : atc_inc_claim
19050 557 );
19060 558
19070 559 (* -----------------------------------------------------------------------
19080 560 ----------------------------------------------------------------------- *)
19090 561
19100 562 BEGIN
19110 563 1 !
19120 564 2 ! FOR first_ix:= first_ix TO last_ix DO
19130 565 3 ! WITH atc_tbl( first_ix ) DO
19140 566 4 ! IF NOT ( msg_kind IN claim_set ) THEN
19150 567 5 ! BEGIN
19160 568 6 ! !
19170 569 7 ! ! claim_set:= claim_set + (.msg_kind.);
19180 570 8 ! ! resource_claims:= resource_claims + 1
19190 571 9 ! !
19200 572 10 ! END
19210 573 11 ! ;
19220 574 12 !
19230 575 13 ! IF ( msg_kind > claim_level ) THEN
19240 576 14 ! claim_level:= msg_kind
19250 577 15 !
19260 578 16 END; (* procedure increase_claims *)
19270 579
\f
tsathlst 81.06.23. 20.18. page 23
20010 580 PROCEDURE atc_stop_poll(
20020 581 first_ix : atc_table_range;
20030 582 last_ix : upper_atc_tbl_index
20040 583 );
20050 584
20060 585 (* -----------------------------------------------------------------------
20070 586 ----------------------------------------------------------------------- *)
20080 587
20090 588 VAR
20100 589 msg : reference;
20110 590
20120 591 BEGIN
20130 592 1 !
20140 593 2 ! IF ( first_ix <= last_ix ) THEN
20150 594 3 ! REPEAT
20160 595 4 ! !
20170 596 5 ! ! WITH atc_tbl( first_ix ), sac_rac_tbl( pac_ix ) DO
20180 597 6 ! ! IF ( disconnected AND ( actual_activity = start_code ) )
20190 598 7 ! ! OR
20200 599 8 ! ! ( dc_disconnect AND ( actual_activity = service_code ) ) THEN
20210 600 9 ! ! IF get_message( msg, netc_route1, #h90, 0,
20220 601 10 ! ! own_address, atc_mic_addr, stop_code, accepted ) THEN
20230 602 11 ! ! BEGIN
20240 603 12 ! ! !
20250 604 13 ! ! ! signal( msg, sem( ts_vect_ix ).s^ );
20260 605 14 ! ! !
20270 606 15 ! ! ! decrease_claims( claim_set, msg_0900_stop );
20280 607 16 ! ! !
20290 608 17 ! ! ! first_ix:= ( first_ix MOD last_ix ) + 1
20300 609 18 ! ! !
20310 610 19 ! ! END
20320 611 20 ! ! ELSE
20330 612 21 ! ! increase_claims( first_ix, last_ix, msg_0900_stop )
20340 613 22 ! !
20350 614 23 ! UNTIL ( first_ix = 1 ) OR ( main_wait <> idle_main )
20360 615 24 !
20370 616 25 END; (* procedure atc_stop_poll *)
20380 617
\f
tsathlst 81.06.23. 20.18. page 24
21010 618 PROCEDURE atc_start_poll(
21020 619 first_ix : atc_table_range;
21030 620 last_ix : upper_atc_tbl_index
21040 621 );
21050 622
21060 623 (* -----------------------------------------------------------------------
21070 624 ----------------------------------------------------------------------- *)
21080 625
21090 626 VAR
21100 627 msg : reference;
21110 628
21120 629 BEGIN
21130 630 1 !
21140 631 2 ! IF ( first_ix <= last_ix ) THEN
21150 632 3 ! REPEAT
21160 633 4 ! !
21170 634 5 ! ! WITH atc_tbl( first_ix ), sac_rac_tbl( pac_ix ) DO
21180 635 6 ! ! IF ( actual_activity <> break_code ) THEN
21190 636 7 ! ! IF ( actual_activity <> wanted_activity ) THEN
21200 637 8 ! ! IF ( ( NOT disconnected ) AND ( wanted_activity = start_code ) )
21210 638 9 ! ! OR
21220 639 10 ! ! ( ( NOT dc_disconnect ) AND ( wanted_activity = service_code ) ) THEN
21230 640 11 ! ! IF get_message( msg, netc_route1, #h90, 4, own_address, atc_mic_addr,
21240 641 12 ! ! wanted_activity, accepted ) THEN
21250 642 13 ! ! BEGIN
21260 643 14 ! ! !
21270 644 15 ! ! ! LOCK msg AS locvar: al_form_0900 DO
21280 645 16 ! ! ! WITH locvar DO
21290 646 17 ! ! ! BEGIN
21300 647 18 ! ! ! !
21310 648 19 ! ! ! ! t_e_c_init:= 0;
21320 649 20 ! ! ! ! frequence:= delay
21330 650 21 ! ! ! !
21340 651 22 ! ! ! END
21350 652 23 ! ! ! ;
21360 653 24 ! ! !
21370 654 25 ! ! ! signal( msg, sem( ts_vect_ix ).s^ );
21380 655 26 ! ! !
21390 656 27 ! ! ! decrease_claims( claim_set, msg_0900_start );
21400 657 28 ! ! !
21410 658 29 ! ! ! first_ix:= ( first_ix MOD last_ix ) + 1
21420 659 30 ! ! !
21430 660 31 ! ! END
21440 661 32 ! ! ELSE
21450 662 33 ! ! increase_claims( first_ix, last_ix, msg_0900_start )
21460 663 34 ! !
\f
tsathlst 81.06.23. 20.18. page 25
21470 664 35 ! UNTIL ( first_ix = 1 ) OR ( main_wait <> idle_main )
21480 665 36 !
21490 666 37 END; (* procedure atc_start_poll *)
21500 667
\f
tsathlst 81.06.23. 20.18. page 26
22010 668 PROCEDURE atc_supervise;
22020 669
22030 670 (* -----------------------------------------------------------------------
22040 671 ----------------------------------------------------------------------- *)
22050 672
22060 673 VAR
22070 674 msg : reference;
22080 675
22090 676 BEGIN
22100 677 1 !
22110 678 2 ! IF ( atc_tbl_top > 0 ) THEN
22120 679 3 ! BEGIN
22130 680 4 ! !
22140 681 5 ! ! atc_tbl_ix:= 1;
22150 682 6 ! !
22160 683 7 ! ! REPEAT
22170 684 8 ! ! !
22180 685 9 ! ! ! WITH atc_tbl( atc_tbl_ix ) DO
22190 686 10 ! ! ! IF ( actual_activity <> break_code ) THEN
22200 687 11 ! ! ! BEGIN
22210 688 12 ! ! ! !
22220 689 13 ! ! ! ! IF ( traffic_count > 0 ) THEN (* - Traffic since the last test - *)
22230 690 14 ! ! ! ! traffic_count:= 0
22240 691 15 ! ! ! ! ELSE
22250 692 16 ! ! ! ! IF ( traffic_count < 0 ) THEN
22260 693 17 ! ! ! ! BEGIN (* - No reaction on the last node test - *)
22270 694 18 ! ! ! ! !
22280 695 19 ! ! ! ! END
22290 696 20 ! ! ! ! ELSE
22300 697 21 ! ! ! ! BEGIN (* - No traffic since the last node test. Node test the ATC - *)
22310 698 22 ! ! ! ! !
22320 699 23 ! ! ! ! ! traffic_count:= -1;
22330 700 24 ! ! ! ! !
22340 701 25 ! ! ! ! ! IF get_message( msg, netc_route1, #hc0, 0,
22350 702 26 ! ! ! ! ! own_address, atc_mic_addr, read_code, accepted ) THEN
22360 703 27 ! ! ! ! ! BEGIN
22370 704 28 ! ! ! ! ! !
22380 705 29 ! ! ! ! ! ! signal( msg, sem( ts_vect_ix ).s^ );
22390 706 30 ! ! ! ! ! !
22400 707 31 ! ! ! ! ! ! decrease_claims( claim_set, msg_1200 );
22410 708 32 ! ! ! ! ! !
22420 709 33 ! ! ! ! ! ! atc_tbl_ix:= ( atc_tbl_ix MOD atc_tbl_top ) + 1
22430 710 34 ! ! ! ! ! !
22440 711 35 ! ! ! ! ! END
22450 712 36 ! ! ! ! ! ELSE
22460 713 37 ! ! ! ! ! increase_claims( atc_tbl_ix, atc_tbl_top, msg_1200 )
\f
tsathlst 81.06.23. 20.18. page 27
22470 714 38 ! ! ! ! !
22480 715 39 ! ! ! ! END
22490 716 40 ! ! ! !
22500 717 41 ! ! ! END
22510 718 42 ! ! !
22520 719 43 ! ! UNTIL ( atc_tbl_ix = 1 ) OR ( main_wait <> idle_main )
22530 720 44 ! !
22540 721 45 ! END
22550 722 46 !
22560 723 47 END; (* procedure atc_supervise *)
22570 724
\f
tsathlst 81.06.23. 20.18. page 28
23010 725 PROCEDURE ac_check_connection(
23020 726 sac_rac_ix : sac_rac_range
23030 727 );
23040 728
23050 729 (* -----------------------------------------------------------------------
23060 730 . Function : Signals a check of the connection to an disconnected AC
23070 731 . if there is a vacant resource.
23080 732 ----------------------------------------------------------------------- *)
23090 733
23100 734 VAR
23110 735 msg : reference;
23120 736
23130 737 BEGIN
23140 738 1 !
23150 739 2 ! WITH sac_rac_tbl( sac_rac_ix ) DO
23160 740 3 ! IF disconnected THEN
23170 741 4 ! IF get_message( msg, at_route, #hc8, 0,
23180 742 5 ! acting_ac( sac_rac_ix ).macro, acting_ac( sac_rac_ix ).micro, read_code, accepted ) THEN
23190 743 6 ! signal( msg, sem( tssup_sem_no ).s^ )
23200 744 7 !
23210 745 8 END; (* procedure ac_check_connection *)
23220 746
\f
tsathlst 81.06.23. 20.18. page 29
24010 747 BEGIN
24020 748 1 ! (*------------ main program ------------*)
24030 749 2 !
24040 750 3 ! testopen( z, own.incname, op_sem );
24050 751 4 ! testout( z, version, ts_env_vers );
24060 752 5 !
24070 753 6 ! (*------------ initialisation ------------*)
24080 754 7 !
24090 755 8 ! FOR atc_tbl_ix:= 1 TO atc_tbl_lth DO
24100 756 9 ! WITH atc_tbl( atc_tbl_ix ) DO
24110 757 10 ! BEGIN
24120 758 11 ! !
24130 759 12 ! ! shad_ix:= atc_tbl_ix;
24140 760 13 ! ! ts_vect_ix:= atc_sem_no + 2 * ( atc_tbl_ix - 1 )
24150 761 14 ! !
24160 762 15 ! END;
24170 763 16 !
24180 764 17 ! alloc( book_up_msg, book_up_pool, sem( ath_sem_no ).s^ );
24190 765 18 !
24200 766 19 ! WITH book_up_msg^ DO
24210 767 20 ! u3:= netc_route1;
24220 768 21 !
24230 769 22 ! LOCK book_up_msg AS locvar: updates DO
24240 770 23 ! WITH locvar DO
24250 771 24 ! object:= ath_mic_addr;
24260 772 25 !
24270 773 26 ! alloc( time_out_msg, time_out_pool, sem( ath_sem_no ).s^ );
24280 774 27 !
24290 775 28 ! WITH time_out_msg^ DO
24300 776 29 ! BEGIN
24310 777 30 ! !
24320 778 31 ! ! u1:= book_req;
24330 779 32 ! ! u3:= netc_route1;
24340 780 33 ! ! u4:= #hc2
24350 781 34 ! !
24360 782 35 ! END;
24370 783 36 !
24380 784 37 ! LOCK time_out_msg AS locvar: integer DO
24390 785 38 ! locvar:= ath_mic_addr;
24400 786 39 !
24410 787 40 ! IF ( link( "atconnector ", atconnector ) = accepted ) THEN
24420 788 41 ! book_up( time_out_msg, book_up_msg, node_test_freq );
24430 789 42 !
\f
tsathlst 81.06.23. 20.18. page 30
25010 790 43 ! REPEAT (* ......................... forever .............................. *)
25020 791 44 ! !
25030 792 45 ! !
25040 793 46 ! ! REPEAT
25050 794 47 ! ! !
25060 795 48 ! ! ! CASE main_wait OF
25070 796 49 ! ! ! !
25080 797 50 ! ! ! ! idle_main,
25090 798 51 ! ! ! ! busy_main:
25100 799 52 ! ! ! ! wait( main_msg, sem( ath_sem_no ).w^ )
25110 800 53 ! ! ! ! ;
25120 801 54 ! ! ! !
25130 802 55 ! ! ! ! busy_pool:
25140 803 56 ! ! ! ! CASE waitsd( main_msg, sem( ath_sem_no ).w^, wait_sem_delay ) OF
25150 804 57 ! ! ! ! !
25160 805 58 ! ! ! ! ! a_semaphore:
25170 806 59 ! ! ! ! ! ;
25180 807 60 ! ! ! ! !
25190 808 61 ! ! ! ! ! a_delay:
25200 809 62 ! ! ! ! ! ;
25210 810 63 ! ! ! ! !
25220 811 64 ! ! ! ! ! OTHERWISE
25230 812 65 ! ! ! ! END
25240 813 66 ! ! ! ! ;
25250 814 67 ! ! ! !
25260 815 68 ! ! ! ! OTHERWISE
25270 816 69 ! ! ! END
25280 817 70 ! ! !
25290 818 71 ! ! UNTIL NOT nil( main_msg )
25300 819 72 ! ! ;
25310 820 73 ! !
25320 821 74 ! ! result_code:= accepted;
25330 822 75 ! !
25340 823 76 ! ! (*q if test then testout(z,"main_msg u3:",main_msg^.u3);
25350 824 77 ! ! if test then testout(z," u4:",main_msg^.u4); q*)
25360 825 78 ! !
25370 826 79 ! ! WITH main_msg^ DO
25380 827 80 ! ! CASE u3 (* this is the routings information *) OF
25390 828 81 ! ! ! (* And then we handle the message depending on the receiver address.
25400 829 82 ! ! ! *)
25410 830 83 ! ! !
25420 831 84 ! ! ! dummy_route:
25430 832 85 ! ! ! return( main_msg )
25440 833 86 ! ! ! ;
25450 834 87 ! ! !
\f
tsathlst 81.06.23. 20.18. page 31
26010 835 88 ! ! ! at_route: (* Message from an ATC to be routed through ATH *)
26020 836 89 ! ! ! BEGIN
26030 837 90 ! ! ! !
26040 838 91 ! ! ! ! (*q if test then testout(z,"from an atc ",0); q*)
26050 839 92 ! ! ! !
26060 840 93 ! ! ! ! CASE u4 OF (* Operation code *)
26070 841 94 ! ! ! ! !
26080 842 95 ! ! ! ! ! (* 00.01 - Log to PAC. Enter AC net addresses *)
26090 843 96 ! ! ! ! ! #h01:
26100 844 97 ! ! ! ! ! LOCK main_msg AS locvar: al_form_0001 DO
26110 845 98 ! ! ! ! ! WITH locvar, al_label, aac_address DO
26120 846 99 ! ! ! ! ! IF ( 0 < ts_add( 0 ) ) AND ( ts_add( 0 ) <= sac_rac_top ) THEN
26130 847 100 ! ! ! ! ! BEGIN
26140 848 101 ! ! ! ! ! !
26150 849 102 ! ! ! ! ! ! rec:= acting_ac( ts_add( 0 ) );
26160 850 103 ! ! ! ! ! !
26170 851 104 ! ! ! ! ! ! IF ( 0 < micro ) AND ( micro <= sac_rac_top ) THEN
26180 852 105 ! ! ! ! ! ! aac_address:= acting_ac( micro )
26190 853 106 ! ! ! ! ! !
26200 854 107 ! ! ! ! ! END
26210 855 108 ! ! ! ! ! ELSE
26220 856 109 ! ! ! ! ! result_code:= unknown_receiver
26230 857 110 ! ! ! ! ! ;
26240 858 111 ! ! ! ! !
26250 859 112 ! ! ! ! ! (* 03.00 *)
26260 860 113 ! ! ! ! ! (* 03.01 *)
26270 861 114 ! ! ! ! ! (* 03.02 - Alarms. Enter AC address *)
26280 862 115 ! ! ! ! ! #h30..#h32:
26290 863 116 ! ! ! ! ! LOCK main_msg AS locvar: alarmlabel DO
26300 864 117 ! ! ! ! ! WITH locvar DO
26310 865 118 ! ! ! ! ! BEGIN
26320 866 119 ! ! ! ! ! !
26330 867 120 ! ! ! ! ! ! IF ( ( 0 < ts_add( 0 ) ) AND ( ts_add( 0 ) <= sac_rac_top ) ) THEN
26340 868 121 ! ! ! ! ! ! rec:= acting_ac( ts_add( 0 ) )
26350 869 122 ! ! ! ! ! ! ELSE
26360 870 123 ! ! ! ! ! ! result_code:= unknown_receiver;
26370 871 124 ! ! ! ! ! !
26380 872 125 ! ! ! ! ! ! (* inconsistency between ac_address table in ATC and sac_rac_table
26390 873 126 ! ! ! ! ! ! - maybe because of a time dependent event *)
26400 874 127 ! ! ! ! ! !
26410 875 128 ! ! ! ! ! END
26420 876 129 ! ! ! ! ! ;
26430 877 130 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 32
27010 878 131 ! ! ! ! ! (* 09.01 - Receipt for change of poll activity. Actual activity is modified of ATC. *)
27020 879 132 ! ! ! ! ! #h91:
27030 880 133 ! ! ! ! ! LOCK main_msg AS locvar: al_form_0900 DO
27040 881 134 ! ! ! ! ! WITH locvar, al_label DO
27050 882 135 ! ! ! ! ! IF find_atc_tbl_entry( send.micro, atc_tbl_ix ) THEN
27060 883 136 ! ! ! ! ! IF ( result = accepted ) THEN
27070 884 137 ! ! ! ! ! WITH atc_tbl( atc_tbl_ix ), sac_rac_tbl( pac_ix ) DO
27080 885 138 ! ! ! ! ! BEGIN
27090 886 139 ! ! ! ! ! !
27100 887 140 ! ! ! ! ! ! wanted_activity:= update;
27110 888 141 ! ! ! ! ! !
27120 889 142 ! ! ! ! ! ! IF disconnected OR dc_disconnect THEN
27130 890 143 ! ! ! ! ! ! atc_stop_poll( atc_tbl_ix, atc_tbl_ix )
27140 891 144 ! ! ! ! ! !
27150 892 145 ! ! ! ! ! END
27160 893 146 ! ! ! ! ! ELSE
27170 894 147 ! ! ! ! ! ELSE
27180 895 148 ! ! ! ! ! result_code:= unknown_sender
27190 896 149 ! ! ! ! ! ;
27200 897 150 ! ! ! ! !
27210 898 151 ! ! ! ! ! OTHERWISE
27220 899 152 ! ! ! ! ! (* Other operation code are passed uninspected and unaltered *)
27230 900 153 ! ! ! ! !
27240 901 154 ! ! ! ! END (* case u4 *)
27250 902 155 ! ! ! ! ;
27260 903 156 ! ! ! !
27270 904 157 ! ! ! ! IF ( result_code <> accepted ) THEN
27280 905 158 ! ! ! ! reject_message( main_msg,
27290 906 159 ! ! ! ! sem( tssup_sem_no ).s, route_vct( u3 ), own_address, ath_mic_addr, result_code )
27300 907 160 ! ! ! ! ELSE
27310 908 161 ! ! ! ! signal( main_msg, sem( tssup_sem_no ).s^ )
27320 909 162 ! ! ! !
27330 910 163 ! ! ! END (* Message from an ATC *)
27340 911 164 ! ! ! ;
27350 912 165 ! ! !
\f
tsathlst 81.06.23. 20.18. page 33
28010 913 166 ! ! ! at_route1: (* Message from ATC to ATH *)
28020 914 167 ! ! ! BEGIN
28030 915 168 ! ! ! !
28040 916 169 ! ! ! ! CASE u4 OF (* Operation code *)
28050 917 170 ! ! ! ! !
28060 918 171 ! ! ! ! ! (* 01.02 - Rejected message *)
28070 919 172 ! ! ! ! ! #h12:
28080 920 173 ! ! ! ! ! testout( z, "garb return ", u3 )
28090 921 174 ! ! ! ! ! ;
28100 922 175 ! ! ! ! !
28110 923 176 ! ! ! ! !
28120 924 177 ! ! ! ! ! (* 04.05 - Receipt for group control. Dropped unless ATC says serious error *)
28130 925 178 ! ! ! ! ! #h45:
28140 926 179 ! ! ! ! ! LOCK main_msg AS locvar: alarmlabel DO
28150 927 180 ! ! ! ! ! WITH locvar DO
28160 928 181 ! ! ! ! ! IF NOT ( result IN (.accepted, not_steering, unknown_sender.) ) THEN
28170 929 182 ! ! ! ! ! BEGIN
28180 930 183 ! ! ! ! ! !
28190 931 184 ! ! ! ! ! ! result_code:= result;
28200 932 185 ! ! ! ! ! !
28210 933 186 ! ! ! ! ! ! LOCK working_0404_msg AS a_label: alarmlabel DO
28220 934 187 ! ! ! ! ! ! rec:= a_label.send
28230 935 188 ! ! ! ! ! !
28240 936 189 ! ! ! ! ! END
28250 937 190 ! ! ! ! ! ;
28260 938 191 ! ! ! ! !
28270 939 192 ! ! ! ! ! (* 09.01 - Receipt for modification of connector state. *)
28280 940 193 ! ! ! ! ! #h91:
28290 941 194 ! ! ! ! ! ;
28300 942 195 ! ! ! ! !
28310 943 196 ! ! ! ! ! (* 12.15 - Receipt for completion of break routine. *)
28320 944 197 ! ! ! ! ! #hcf:
28330 945 198 ! ! ! ! ! LOCK main_msg AS locvar: alarmlabel DO
28340 946 199 ! ! ! ! ! WITH locvar, send DO
28350 947 200 ! ! ! ! ! IF find_atc_tbl_entry( micro, atc_tbl_ix ) THEN
28360 948 201 ! ! ! ! ! BEGIN
28370 949 202 ! ! ! ! ! !
28380 950 203 ! ! ! ! ! ! del_atc_tbl_entry( atc_tbl_ix );
28390 951 204 ! ! ! ! ! !
28400 952 205 ! ! ! ! ! END
28410 953 206 ! ! ! ! ! ;
28420 954 207 ! ! ! ! !
28430 955 208 ! ! ! ! !
28440 956 209 ! ! ! ! ! OTHERWISE
28450 957 210 ! ! ! ! ! testout( z, "at_route1 ", u4 )
28460 958 211 ! ! ! ! END
\f
tsathlst 81.06.23. 20.18. page 34
28470 959 212 ! ! ! ! ;
28480 960 213 ! ! ! !
28490 961 214 ! ! ! ! IF ( result_code <> accepted ) THEN
28500 962 215 ! ! ! ! signal( main_msg, sem( tssup_sem_no ).s^ )
28510 963 216 ! ! ! ! ELSE
28520 964 217 ! ! ! ! return( main_msg )
28530 965 218 ! ! ! !
28540 966 219 ! ! ! END
28550 967 220 ! ! ! ;
28560 968 221 ! ! !
\f
tsathlst 81.06.23. 20.18. page 35
29010 969 222 ! ! ! netc_route1: (* Message from TSS or from time out process to ATH *)
29020 970 223 ! ! ! BEGIN
29030 971 224 ! ! ! !
29040 972 225 ! ! ! ! CASE u4 OF (* Operation code *)
29050 973 226 ! ! ! ! !
29060 974 227 ! ! ! ! ! (* 01.02 - Rejected message *)
29070 975 228 ! ! ! ! ! #h12:
29080 976 229 ! ! ! ! ! testout( z, "garb return ", u3 );
29090 977 230 ! ! ! ! ! ;
29100 978 231 ! ! ! ! !
29110 979 232 ! ! ! ! ! (* 02.00 - Broadcast. DC fall-out. *)
29120 980 233 ! ! ! ! ! #h20:
29130 981 234 ! ! ! ! ! LOCK main_msg AS locvar: al_form_020_ DO
29140 982 235 ! ! ! ! ! WITH locvar, al_net_addr, macro DO
29150 983 236 ! ! ! ! ! IF ( dc_addr <> own_address.dc_addr ) THEN
29160 984 237 ! ! ! ! ! BEGIN (* - Foreign DC - *)
29170 985 238 ! ! ! ! ! !
29180 986 239 ! ! ! ! ! ! IF ( sac_rac_top > 0 ) THEN
29190 987 240 ! ! ! ! ! ! FOR sac_rac_ix:= 1 TO sac_rac_top DO
29200 988 241 ! ! ! ! ! ! IF ( acting_ac( sac_rac_ix ).macro.dc_addr <> own_address.dc_addr ) THEN
29210 989 242 ! ! ! ! ! ! sac_rac_tbl( sac_rac_ix ).disconnected:= true
29220 990 243 ! ! ! ! ! ! ;
29230 991 244 ! ! ! ! ! !
29240 992 245 ! ! ! ! ! ! atc_stop_poll( 1, atc_tbl_top )
29250 993 246 ! ! ! ! ! !
29260 994 247 ! ! ! ! ! END
29270 995 248 ! ! ! ! ! ELSE
29280 996 249 ! ! ! ! ! BEGIN (* - Own DC - *)
29290 997 250 ! ! ! ! ! !
29300 998 251 ! ! ! ! ! ! dc_disconnect:= true;
29310 999 252 ! ! ! ! ! !
29320 1000 253 ! ! ! ! ! ! IF ( sac_rac_top > 0 ) THEN
29330 1001 254 ! ! ! ! ! ! FOR sac_rac_ix:= 1 TO sac_rac_top DO
29340 1002 255 ! ! ! ! ! ! IF foreign_nc( acting_ac( sac_rac_ix ).macro ) THEN
29350 1003 256 ! ! ! ! ! ! sac_rac_tbl( sac_rac_ix ).disconnected:= true
29360 1004 257 ! ! ! ! ! ! ;
29370 1005 258 ! ! ! ! ! !
29380 1006 259 ! ! ! ! ! ! atc_stop_poll( 1, atc_tbl_top )
29390 1007 260 ! ! ! ! ! !
29400 1008 261 ! ! ! ! ! END
29410 1009 262 ! ! ! ! ! ;
29420 1010 263 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 36
30010 1011 264 ! ! ! ! ! (* 02.01 - Broadcast. DC re-established. *)
30020 1012 265 ! ! ! ! ! #h21:
30030 1013 266 ! ! ! ! ! LOCK main_msg AS locvar: al_form_020_ DO
30040 1014 267 ! ! ! ! ! WITH locvar, al_net_addr, macro DO
30050 1015 268 ! ! ! ! ! IF ( dc_addr <> own_address.dc_addr ) THEN
30060 1016 269 ! ! ! ! ! BEGIN (* - Foreign DC - *)
30070 1017 270 ! ! ! ! ! !
30080 1018 271 ! ! ! ! ! ! IF ( sac_rac_top > 0 ) THEN
30090 1019 272 ! ! ! ! ! ! FOR sac_rac_ix:= 1 TO sac_rac_top DO
30100 1020 273 ! ! ! ! ! ! IF ( acting_ac( sac_rac_ix ).macro.dc_addr <> own_address.dc_addr ) THEN
30110 1021 274 ! ! ! ! ! ! ac_check_connection( sac_rac_ix )
30120 1022 275 ! ! ! ! ! !
30130 1023 276 ! ! ! ! ! END
30140 1024 277 ! ! ! ! ! ELSE
30150 1025 278 ! ! ! ! ! BEGIN (* - Own DC - *)
30160 1026 279 ! ! ! ! ! !
30170 1027 280 ! ! ! ! ! ! IF dc_disconnect THEN
30180 1028 281 ! ! ! ! ! ! IF get_message( aux_msg, at_route, #hc8, 0,
30190 1029 282 ! ! ! ! ! ! dc_address, dc_erh_mic_addr, read_code, accepted ) THEN
30200 1030 283 ! ! ! ! ! ! signal( aux_msg, sem( tssup_sem_no ).s^ )
30210 1031 284 ! ! ! ! ! ! ;
30220 1032 285 ! ! ! ! ! !
30230 1033 286 ! ! ! ! ! ! IF ( sac_rac_top > 0 ) THEN
30240 1034 287 ! ! ! ! ! ! FOR sac_rac_ix:= 1 TO sac_rac_top DO
30250 1035 288 ! ! ! ! ! ! IF foreign_nc( acting_ac( sac_rac_ix ).macro ) THEN
30260 1036 289 ! ! ! ! ! ! ac_check_connection( sac_rac_ix )
30270 1037 290 ! ! ! ! ! !
30280 1038 291 ! ! ! ! ! END
30290 1039 292 ! ! ! ! ! ;
30300 1040 293 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 37
31010 1041 294 ! ! ! ! ! (* 02.02 - Broadcast. NC fall-out. *)
31020 1042 295 ! ! ! ! ! #h22:
31030 1043 296 ! ! ! ! ! LOCK main_msg AS locvar: al_form_020_ DO
31040 1044 297 ! ! ! ! ! WITH locvar, al_net_addr, macro DO
31050 1045 298 ! ! ! ! ! IF foreign_nc( macro ) THEN
31060 1046 299 ! ! ! ! ! BEGIN (* - Foreign NC - *)
31070 1047 300 ! ! ! ! ! !
31080 1048 301 ! ! ! ! ! ! IF ( sac_rac_top > 0 ) THEN
31090 1049 302 ! ! ! ! ! ! FOR sac_rac_ix:= 1 TO sac_rac_top DO
31100 1050 303 ! ! ! ! ! ! IF foreign_nc( acting_ac( sac_rac_ix ).macro ) THEN
31110 1051 304 ! ! ! ! ! ! sac_rac_tbl( sac_rac_ix ).disconnected:= true
31120 1052 305 ! ! ! ! ! ! ;
31130 1053 306 ! ! ! ! ! !
31140 1054 307 ! ! ! ! ! ! atc_stop_poll( 1, atc_tbl_top )
31150 1055 308 ! ! ! ! ! !
31160 1056 309 ! ! ! ! ! END
31170 1057 310 ! ! ! ! ! ELSE
31180 1058 311 ! ! ! ! ! BEGIN (* - Own NC - *)
31190 1059 312 ! ! ! ! ! !
31200 1060 313 ! ! ! ! ! ! dc_disconnect:= true;
31210 1061 314 ! ! ! ! ! !
31220 1062 315 ! ! ! ! ! ! IF ( sac_rac_top > 0 ) THEN
31230 1063 316 ! ! ! ! ! ! FOR sac_rac_ix:= 1 TO sac_rac_top DO
31240 1064 317 ! ! ! ! ! ! IF ( acting_ac( sac_rac_ix ).macro <> own_address ) THEN
31250 1065 318 ! ! ! ! ! ! sac_rac_tbl( sac_rac_ix ).disconnected:= true
31260 1066 319 ! ! ! ! ! ! ;
31270 1067 320 ! ! ! ! ! !
31280 1068 321 ! ! ! ! ! ! atc_stop_poll( 1, atc_tbl_top )
31290 1069 322 ! ! ! ! ! !
31300 1070 323 ! ! ! ! ! END
31310 1071 324 ! ! ! ! ! ;
31320 1072 325 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 38
32010 1073 326 ! ! ! ! ! (* 02.03 - Broadcast. NC re-established. *)
32020 1074 327 ! ! ! ! ! #h23:
32030 1075 328 ! ! ! ! ! LOCK main_msg AS locvar: al_form_020_ DO
32040 1076 329 ! ! ! ! ! WITH locvar, al_net_addr, macro DO
32050 1077 330 ! ! ! ! ! IF foreign_nc( macro ) THEN
32060 1078 331 ! ! ! ! ! BEGIN (* - Foreign NC - *)
32070 1079 332 ! ! ! ! ! !
32080 1080 333 ! ! ! ! ! ! IF ( sac_rac_top > 0 ) THEN
32090 1081 334 ! ! ! ! ! ! FOR sac_rac_ix:= 1 TO sac_rac_top DO
32100 1082 335 ! ! ! ! ! ! IF foreign_nc( acting_ac( sac_rac_ix ).macro ) THEN
32110 1083 336 ! ! ! ! ! ! ac_check_connection( sac_rac_ix )
32120 1084 337 ! ! ! ! ! !
32130 1085 338 ! ! ! ! ! END
32140 1086 339 ! ! ! ! ! ELSE
32150 1087 340 ! ! ! ! ! BEGIN (* - Own NC - *)
32160 1088 341 ! ! ! ! ! !
32170 1089 342 ! ! ! ! ! ! IF dc_disconnect THEN
32180 1090 343 ! ! ! ! ! ! IF get_message( aux_msg, at_route, #hc8, 0,
32190 1091 344 ! ! ! ! ! ! dc_address, dc_erh_mic_addr, read_code, accepted ) THEN
32200 1092 345 ! ! ! ! ! ! signal( aux_msg, sem( tssup_sem_no ).s^ )
32210 1093 346 ! ! ! ! ! ! ;
32220 1094 347 ! ! ! ! ! !
32230 1095 348 ! ! ! ! ! ! IF ( sac_rac_top > 0 ) THEN
32240 1096 349 ! ! ! ! ! ! FOR sac_rac_ix:= 1 TO atc_tbl_top DO
32250 1097 350 ! ! ! ! ! ! IF ( acting_ac( sac_rac_ix ).macro <> own_address ) THEN
32260 1098 351 ! ! ! ! ! ! ac_check_connection( sac_rac_ix )
32270 1099 352 ! ! ! ! ! !
32280 1100 353 ! ! ! ! ! END
32290 1101 354 ! ! ! ! ! ;
32300 1102 355 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 39
33010 1103 356 ! ! ! ! ! (* 02.04 - Broadcast. TS fall-out. *)
33020 1104 357 ! ! ! ! ! #h24:
33030 1105 358 ! ! ! ! ! LOCK main_msg AS locvar: al_form_020_ DO
33040 1106 359 ! ! ! ! ! WITH locvar, al_net_addr DO
33050 1107 360 ! ! ! ! ! BEGIN
33060 1108 361 ! ! ! ! ! !
33070 1109 362 ! ! ! ! ! ! IF ( sac_rac_top > 0 ) THEN
33080 1110 363 ! ! ! ! ! ! FOR sac_rac_ix:= 1 TO sac_rac_top DO
33090 1111 364 ! ! ! ! ! ! IF ( acting_ac( sac_rac_ix ).macro = macro ) THEN
33100 1112 365 ! ! ! ! ! ! sac_rac_tbl( sac_rac_ix ).disconnected:= true
33110 1113 366 ! ! ! ! ! ! ;
33120 1114 367 ! ! ! ! ! !
33130 1115 368 ! ! ! ! ! ! atc_stop_poll( 1, atc_tbl_top )
33140 1116 369 ! ! ! ! ! !
33150 1117 370 ! ! ! ! ! END
33160 1118 371 ! ! ! ! ! ;
33170 1119 372 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 40
34010 1120 373 ! ! ! ! ! (* 02.05 - Broadcast. TS re-established. *)
34020 1121 374 ! ! ! ! ! #h25:
34030 1122 375 ! ! ! ! ! LOCK main_msg AS locvar: al_form_020_ DO
34040 1123 376 ! ! ! ! ! WITH locvar, al_net_addr DO
34050 1124 377 ! ! ! ! ! BEGIN
34060 1125 378 ! ! ! ! ! !
34070 1126 379 ! ! ! ! ! ! IF ( sac_rac_top > 0 ) THEN
34080 1127 380 ! ! ! ! ! ! FOR sac_rac_ix:= 1 TO sac_rac_top DO
34090 1128 381 ! ! ! ! ! ! IF ( acting_ac( sac_rac_ix ).macro = macro ) THEN
34100 1129 382 ! ! ! ! ! ! ac_check_connection( sac_rac_ix )
34110 1130 383 ! ! ! ! ! !
34120 1131 384 ! ! ! ! ! END
34130 1132 385 ! ! ! ! ! ;
34140 1133 386 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 41
35010 1134 387 ! ! ! ! ! (* 02.06 - Broadcast. AC fall-out. *)
35020 1135 388 ! ! ! ! ! #h26:
35030 1136 389 ! ! ! ! ! BEGIN
35040 1137 390 ! ! ! ! ! !
35050 1138 391 ! ! ! ! ! ! LOCK main_msg AS locvar: al_form_020_ DO
35060 1139 392 ! ! ! ! ! ! WITH locvar DO
35070 1140 393 ! ! ! ! ! ! IF ( sac_rac_top > 0 ) THEN
35080 1141 394 ! ! ! ! ! ! FOR sac_rac_ix:= 1 TO sac_rac_top DO
35090 1142 395 ! ! ! ! ! ! IF ( acting_ac( sac_rac_ix ) = al_net_addr ) THEN
35100 1143 396 ! ! ! ! ! ! sac_rac_tbl( sac_rac_ix ).disconnected:= true
35110 1144 397 ! ! ! ! ! ! ;
35120 1145 398 ! ! ! ! ! !
35130 1146 399 ! ! ! ! ! ! atc_stop_poll( 1, atc_tbl_top )
35140 1147 400 ! ! ! ! ! !
35150 1148 401 ! ! ! ! ! END
35160 1149 402 ! ! ! ! ! ;
35170 1150 403 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 42
36010 1151 404 ! ! ! ! ! (* 02.07 - Broadcast. AC re-established. *)
36020 1152 405 ! ! ! ! ! #h27:
36030 1153 406 ! ! ! ! ! LOCK main_msg AS locvar: al_form_020_ DO
36040 1154 407 ! ! ! ! ! WITH locvar DO
36050 1155 408 ! ! ! ! ! IF ( sac_rac_top > 0 ) THEN
36060 1156 409 ! ! ! ! ! FOR sac_rac_ix:= 1 TO sac_rac_top DO
36070 1157 410 ! ! ! ! ! IF ( acting_ac( sac_rac_ix ) = al_net_addr ) THEN
36080 1158 411 ! ! ! ! ! ac_check_connection( sac_rac_ix )
36090 1159 412 ! ! ! ! ! ;
36100 1160 413 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 43
37010 1161 414 ! ! ! ! ! (* 04.04 - Group control is multiplied by ATH - if the sender is known *)
37020 1162 415 ! ! ! ! ! #h44:
37030 1163 416 ! ! ! ! ! IF atc_tbl_top > 0 THEN
37040 1164 417 ! ! ! ! ! BEGIN
37050 1165 418 ! ! ! ! ! !
37060 1166 419 ! ! ! ! ! ! LOCK main_msg AS locvar: al_form_0404 DO
37070 1167 420 ! ! ! ! ! ! WITH locvar, al_label DO
37080 1168 421 ! ! ! ! ! ! IF ( ( no_of_by - 4 ) > 0 ) AND ( ( high_micro - low_micro ) > - 1 ) THEN
37090 1169 422 ! ! ! ! ! ! BEGIN
37100 1170 423 ! ! ! ! ! ! !
37110 1171 424 ! ! ! ! ! ! ! IF search_sac_rac( send, sac_rac_ix ) THEN
37120 1172 425 ! ! ! ! ! ! ! ts_add( 0 ):= sac_rac_ix
37130 1173 426 ! ! ! ! ! ! ! ELSE
37140 1174 427 ! ! ! ! ! ! ! result_code:= unknown_sender
37150 1175 428 ! ! ! ! ! ! !
37160 1176 429 ! ! ! ! ! ! END
37170 1177 430 ! ! ! ! ! ! ELSE
37180 1178 431 ! ! ! ! ! ! result_code:= data_inconsistent;
37190 1179 432 ! ! ! ! ! !
37200 1180 433 ! ! ! ! ! ! IF ( result_code = accepted ) THEN
37210 1181 434 ! ! ! ! ! ! signal( main_msg, sem( ath_int1 ).s^ )
37220 1182 435 ! ! ! ! ! !
37230 1183 436 ! ! ! ! ! END
37240 1184 437 ! ! ! ! ! ELSE
37250 1185 438 ! ! ! ! ! result_code:= unknown_receiver
37260 1186 439 ! ! ! ! ! ;
37270 1187 440 ! ! ! ! !
37280 1188 441 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 44
38010 1189 442 ! ! ! ! ! (* 06.00 - Creation of an ATC incarnation *)
38020 1190 443 ! ! ! ! ! #h60:
38030 1191 444 ! ! ! ! ! IF ( atc_tbl_top < atc_tbl_lth ) THEN
38040 1192 445 ! ! ! ! ! BEGIN
38050 1193 446 ! ! ! ! ! !
38060 1194 447 ! ! ! ! ! ! LOCK main_msg AS locvar: al_form_0600 DO
38070 1195 448 ! ! ! ! ! ! WITH locvar, al_label, atc_tbl_e DO
38080 1196 449 ! ! ! ! ! ! IF ( send.macro <> dc_address ) THEN
38090 1197 450 ! ! ! ! ! ! result_code:= forbidden
38100 1198 451 ! ! ! ! ! ! ELSE
38110 1199 452 ! ! ! ! ! ! BEGIN
38120 1200 453 ! ! ! ! ! ! !
38130 1201 454 ! ! ! ! ! ! ! IF find_atc_tbl_entry( atc_mic, atc_tbl_ix ) THEN
38140 1202 455 ! ! ! ! ! ! ! result_code:= existing_entry
38150 1203 456 ! ! ! ! ! ! ! ELSE
38160 1204 457 ! ! ! ! ! ! ! IF ( pac_ix < 1 ) OR ( sac_rac_top < pac_ix ) THEN
38170 1205 458 ! ! ! ! ! ! ! result_code:= out_of_range
38180 1206 459 ! ! ! ! ! ! ! ELSE
38190 1207 460 ! ! ! ! ! ! ! BEGIN
38200 1208 461 ! ! ! ! ! ! ! !
38210 1209 462 ! ! ! ! ! ! ! ! place_atc_tbl_entry( atc_tbl_ix, atc_mic, pac_ix );
38220 1210 463 ! ! ! ! ! ! ! !
38230 1211 464 ! ! ! ! ! ! ! ! (* calculate an unambigouos atc_name *)
38240 1212 465 ! ! ! ! ! ! ! ! atc_name:= "atc__ ";
38250 1213 466 ! ! ! ! ! ! ! ! atc_no:= atc_mic;
38260 1214 467 ! ! ! ! ! ! ! ! alfa_pos:= 8;
38270 1215 468 ! ! ! ! ! ! ! !
38280 1216 469 ! ! ! ! ! ! ! ! REPEAT
38290 1217 470 ! ! ! ! ! ! ! ! !
38300 1218 471 ! ! ! ! ! ! ! ! ! atc_name( alfa_pos ):= chr( atc_no MOD 10 + ord( "0" ) );
38310 1219 472 ! ! ! ! ! ! ! ! ! atc_no:= atc_no DIV 10;
38320 1220 473 ! ! ! ! ! ! ! ! ! alfa_pos:= alfa_pos - 1
38330 1221 474 ! ! ! ! ! ! ! ! !
38340 1222 475 ! ! ! ! ! ! ! ! UNTIL ( alfa_pos = 4 );
38350 1223 476 ! ! ! ! ! ! ! !
38360 1224 477 ! ! ! ! ! ! ! ! (* Create and start the incarnation *)
38370 1225 478 ! ! ! ! ! ! ! ! WITH atc_tbl( atc_tbl_ix ) DO
38380 1226 479 ! ! ! ! ! ! ! ! result_code:= create(
38390 1227 480 ! ! ! ! ! ! ! ! atc_name ,
38400 1228 481 ! ! ! ! ! ! ! ! atconnector(
38410 1229 482 ! ! ! ! ! ! ! ! op_sem ,
38420 1230 483 ! ! ! ! ! ! ! ! sem( ts_vect_ix ) ,
38430 1231 484 ! ! ! ! ! ! ! ! sem( ts_vect_ix + 1 ) ,
38440 1232 485 ! ! ! ! ! ! ! ! sem( ath_sem_no ).s ,
38450 1233 486 ! ! ! ! ! ! ! ! sem( lam_no + lam_sem_no ).s ,
38460 1234 487 ! ! ! ! ! ! ! ! sem( com_pool ).w ,
\f
tsathlst 81.06.23. 20.18. page 45
38470 1235 488 ! ! ! ! ! ! ! ! actual_activity ,
38480 1236 489 ! ! ! ! ! ! ! ! delay ,
38490 1237 490 ! ! ! ! ! ! ! ! node_test_freq ,
38500 1238 491 ! ! ! ! ! ! ! ! traffic_test_freq ,
38510 1239 492 ! ! ! ! ! ! ! ! dc_address ,
38520 1240 493 ! ! ! ! ! ! ! ! own_address ,
38530 1241 494 ! ! ! ! ! ! ! ! atc_mic ,
38540 1242 495 ! ! ! ! ! ! ! ! port_no
38550 1243 496 ! ! ! ! ! ! ! ! ) ,
38560 1244 497 ! ! ! ! ! ! ! ! shadows( shad_ix ) ,
38570 1245 498 ! ! ! ! ! ! ! ! atc_size
38580 1246 499 ! ! ! ! ! ! ! ! );
38590 1247 500 ! ! ! ! ! ! ! !
38600 1248 501 ! ! ! ! ! ! ! ! IF ( result_code = accepted ) THEN
38610 1249 502 ! ! ! ! ! ! ! ! start( shadows( atc_tbl( atc_tbl_ix ).shad_ix ), atc_pri )
38620 1250 503 ! ! ! ! ! ! ! ! ELSE
38630 1251 504 ! ! ! ! ! ! ! ! BEGIN
38640 1252 505 ! ! ! ! ! ! ! ! !
38650 1253 506 ! ! ! ! ! ! ! ! ! del_atc_tbl_entry( atc_tbl_ix );
38660 1254 507 ! ! ! ! ! ! ! ! ! result_code:= breaked
38670 1255 508 ! ! ! ! ! ! ! ! !
38680 1256 509 ! ! ! ! ! ! ! ! END
38690 1257 510 ! ! ! ! ! ! ! !
38700 1258 511 ! ! ! ! ! ! ! END
38710 1259 512 ! ! ! ! ! ! !
38720 1260 513 ! ! ! ! ! ! END
38730 1261 514 ! ! ! ! ! !
38740 1262 515 ! ! ! ! ! END
38750 1263 516 ! ! ! ! ! ELSE
38760 1264 517 ! ! ! ! ! result_code:= no_room
38770 1265 518 ! ! ! ! ! ;
38780 1266 519 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 46
39010 1267 520 ! ! ! ! ! (* 06.08 - Remove ATC incarnation. *)
39020 1268 521 ! ! ! ! ! #h68:
39030 1269 522 ! ! ! ! ! LOCK main_msg AS locvar: al_form_0608 DO
39040 1270 523 ! ! ! ! ! WITH locvar, al_label, atc_tbl_e DO
39050 1271 524 ! ! ! ! ! IF ( send.macro <> dc_address ) THEN
39060 1272 525 ! ! ! ! ! result:= forbidden
39070 1273 526 ! ! ! ! ! ELSE
39080 1274 527 ! ! ! ! ! IF find_atc_tbl_entry( atc_mic, atc_tbl_ix ) THEN
39090 1275 528 ! ! ! ! ! del_atc_tbl_entry( atc_tbl_ix )
39100 1276 529 ! ! ! ! ! ELSE
39110 1277 530 ! ! ! ! ! result_code:= not_found
39120 1278 531 ! ! ! ! ! ;
39130 1279 532 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 47
40010 1280 533 ! ! ! ! ! (* 10.10 - Operation on sac_rac table *)
40020 1281 534 ! ! ! ! ! #haa:
40030 1282 535 ! ! ! ! ! LOCK main_msg AS locvar: al_form_1010 DO
40040 1283 536 ! ! ! ! ! WITH locvar, al_label DO
40050 1284 537 ! ! ! ! ! IF ( send.macro <> dc_address ) THEN
40060 1285 538 ! ! ! ! ! result_code:= forbidden
40070 1286 539 ! ! ! ! ! ELSE
40080 1287 540 ! ! ! ! ! IF ( sac_rac_tbl_ix < 1 ) OR ( sac_rac_lth < sac_rac_tbl_ix ) THEN
40090 1288 541 ! ! ! ! ! result_code:= out_of_range
40100 1289 542 ! ! ! ! ! ELSE
40110 1290 543 ! ! ! ! ! CASE update OF
40120 1291 544 ! ! ! ! ! !
40130 1292 545 ! ! ! ! ! ! read_code:
40140 1293 546 ! ! ! ! ! ! tbl_entry:= sac_rac_tbl( sac_rac_tbl_ix ).sac_rac_e
40150 1294 547 ! ! ! ! ! ! ;
40160 1295 548 ! ! ! ! ! !
40170 1296 549 ! ! ! ! ! ! insert_code:
40180 1297 550 ! ! ! ! ! ! WITH sac_rac_tbl( sac_rac_tbl_ix ) DO
40190 1298 551 ! ! ! ! ! ! BEGIN
40200 1299 552 ! ! ! ! ! ! !
40210 1300 553 ! ! ! ! ! ! ! sac_rac_e:= tbl_entry;
40220 1301 554 ! ! ! ! ! ! ! disconnected:= true;
40230 1302 555 ! ! ! ! ! ! !
40240 1303 556 ! ! ! ! ! ! ! IF ( sac_rac_tbl_ix > sac_rac_top ) THEN
40250 1304 557 ! ! ! ! ! ! ! sac_rac_top:= sac_rac_tbl_ix
40260 1305 558 ! ! ! ! ! ! ! ;
40270 1306 559 ! ! ! ! ! ! !
40280 1307 560 ! ! ! ! ! ! ! ac_check_connection( sac_rac_tbl_ix )
40290 1308 561 ! ! ! ! ! ! !
40300 1309 562 ! ! ! ! ! ! END
40310 1310 563 ! ! ! ! ! ! ;
40320 1311 564 ! ! ! ! ! !
40330 1312 565 ! ! ! ! ! ! remove_code:
40340 1313 566 ! ! ! ! ! ! WITH sac_rac_tbl( sac_rac_tbl_ix ) DO
40350 1314 567 ! ! ! ! ! ! BEGIN
40360 1315 568 ! ! ! ! ! ! !
40370 1316 569 ! ! ! ! ! ! ! sac_rac_e:= sac_rac_entry( empty_addr, empty_addr );
40380 1317 570 ! ! ! ! ! ! ! disconnected:= false;
40390 1318 571 ! ! ! ! ! ! !
40400 1319 572 ! ! ! ! ! ! ! IF ( sac_rac_top = sac_rac_tbl_ix ) THEN
40410 1320 573 ! ! ! ! ! ! ! BEGIN
40420 1321 574 ! ! ! ! ! ! ! !
40430 1322 575 ! ! ! ! ! ! ! ! WHILE ( sac_rac_top > 1 ) AND ( acting_ac( sac_rac_top ) = empty_addr ) DO
40440 1323 576 ! ! ! ! ! ! ! ! sac_rac_top:= sac_rac_top - 1
40450 1324 577 ! ! ! ! ! ! ! ! ;
40460 1325 578 ! ! ! ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 48
40470 1326 579 ! ! ! ! ! ! ! ! IF ( acting_ac( sac_rac_top ) = empty_addr ) THEN
40480 1327 580 ! ! ! ! ! ! ! ! sac_rac_top:= sac_rac_top - 1
40490 1328 581 ! ! ! ! ! ! ! !
40500 1329 582 ! ! ! ! ! ! ! END
40510 1330 583 ! ! ! ! ! ! !
40520 1331 584 ! ! ! ! ! ! END
40530 1332 585 ! ! ! ! ! ! ;
40540 1333 586 ! ! ! ! ! !
40550 1334 587 ! ! ! ! ! ! OTHERWISE
40560 1335 588 ! ! ! ! ! ! result_code:= unknown_update
40570 1336 589 ! ! ! ! ! !
40580 1337 590 ! ! ! ! ! END
40590 1338 591 ! ! ! ! ! ;
40600 1339 592 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 49
41010 1340 593 ! ! ! ! ! (* 12.00 - Node test. Check connection to disconnected DC and AC's. *)
41020 1341 594 ! ! ! ! ! #hc0:
41030 1342 595 ! ! ! ! ! BEGIN
41040 1343 596 ! ! ! ! ! !
41050 1344 597 ! ! ! ! ! ! LOCK main_msg AS locvar: al_form_1200 DO
41060 1345 598 ! ! ! ! ! ! WITH locvar DO
41070 1346 599 ! ! ! ! ! ! BEGIN
41080 1347 600 ! ! ! ! ! ! !
41090 1348 601 ! ! ! ! ! ! ! node_test_freq:= master_time_out;
41100 1349 602 ! ! ! ! ! ! ! traffic_test_freq:= master_time_out + tolerance
41110 1350 603 ! ! ! ! ! ! !
41120 1351 604 ! ! ! ! ! ! END
41130 1352 605 ! ! ! ! ! ! ;
41140 1353 606 ! ! ! ! ! !
41150 1354 607 ! ! ! ! ! ! book_up( time_out_msg, book_up_msg, node_test_freq );
41160 1355 608 ! ! ! ! ! !
41170 1356 609 ! ! ! ! ! ! IF dc_disconnect THEN
41180 1357 610 ! ! ! ! ! ! IF get_message( aux_msg, at_route, #hc8, 0,
41190 1358 611 ! ! ! ! ! ! dc_address, dc_erh_mic_addr, read_code, accepted ) THEN
41200 1359 612 ! ! ! ! ! ! signal( aux_msg, sem( tssup_sem_no ).s^ )
41210 1360 613 ! ! ! ! ! ! ;
41220 1361 614 ! ! ! ! ! !
41230 1362 615 ! ! ! ! ! ! IF ( sac_rac_top > 0 ) THEN
41240 1363 616 ! ! ! ! ! ! FOR sac_rac_ix:= 1 TO sac_rac_top DO
41250 1364 617 ! ! ! ! ! ! ac_check_connection( sac_rac_ix )
41260 1365 618 ! ! ! ! ! ! ;
41270 1366 619 ! ! ! ! ! !
41280 1367 620 ! ! ! ! ! ! nt_time_out:= false;
41290 1368 621 ! ! ! ! ! !
41300 1369 622 ! ! ! ! ! ! atc_supervise
41310 1370 623 ! ! ! ! ! !
41320 1371 624 ! ! ! ! ! END
41330 1372 625 ! ! ! ! ! ;
41340 1373 626 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 50
42010 1374 627 ! ! ! ! ! (* 12.02 - Time out alarm on own TSS. Overtake the node test function.
42020 1375 628 ! ! ! ! ! - Disconnect DC and all AC's and stop all ATC's. *)
42030 1376 629 ! ! ! ! ! #hc2:
42040 1377 630 ! ! ! ! ! BEGIN
42050 1378 631 ! ! ! ! ! !
42060 1379 632 ! ! ! ! ! ! book_up( main_msg, book_up_msg, node_test_freq );
42070 1380 633 ! ! ! ! ! !
42080 1381 634 ! ! ! ! ! ! IF NOT nt_time_out THEN
42090 1382 635 ! ! ! ! ! ! BEGIN
42100 1383 636 ! ! ! ! ! ! !
42110 1384 637 ! ! ! ! ! ! ! nt_time_out:= true;
42120 1385 638 ! ! ! ! ! ! !
42130 1386 639 ! ! ! ! ! ! ! dc_disconnect:= true;
42140 1387 640 ! ! ! ! ! ! !
42150 1388 641 ! ! ! ! ! ! ! IF ( sac_rac_top > 0 ) THEN
42160 1389 642 ! ! ! ! ! ! ! FOR sac_rac_ix:= 1 TO sac_rac_top DO
42170 1390 643 ! ! ! ! ! ! ! IF ( acting_ac( sac_rac_ix ) <> empty_addr ) THEN
42180 1391 644 ! ! ! ! ! ! ! sac_rac_tbl( sac_rac_ix ).disconnected:= true
42190 1392 645 ! ! ! ! ! ! ! ;
42200 1393 646 ! ! ! ! ! ! !
42210 1394 647 ! ! ! ! ! ! ! atc_stop_poll( 1, atc_tbl_top )
42220 1395 648 ! ! ! ! ! ! !
42230 1396 649 ! ! ! ! ! ! END
42240 1397 650 ! ! ! ! ! ! ;
42250 1398 651 ! ! ! ! ! !
42260 1399 652 ! ! ! ! ! ! atc_supervise
42270 1400 653 ! ! ! ! ! !
42280 1401 654 ! ! ! ! ! END
42290 1402 655 ! ! ! ! ! ;
42300 1403 656 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 51
43010 1404 657 ! ! ! ! ! (* 12.03 *)
43020 1405 658 ! ! ! ! ! (* 12.04 - Returned book/update message from time out process *)
43030 1406 659 ! ! ! ! ! #hc3..#hc4:
43040 1407 660 ! ! ! ! ! book_up_msg :=: main_msg
43050 1408 661 ! ! ! ! ! ;
43060 1409 662 ! ! ! ! !
43070 1410 663 ! ! ! ! ! (* 12.09 - Receipt for dummy alarm from PAC or from DC. *)
43080 1411 664 ! ! ! ! ! #hc9:
43090 1412 665 ! ! ! ! ! BEGIN
43100 1413 666 ! ! ! ! ! !
43110 1414 667 ! ! ! ! ! ! LOCK main_msg AS locvar: alarmlabel DO
43120 1415 668 ! ! ! ! ! ! WITH locvar DO
43130 1416 669 ! ! ! ! ! ! IF ( send.macro = dc_address ) THEN
43140 1417 670 ! ! ! ! ! ! dc_disconnect:= false
43150 1418 671 ! ! ! ! ! ! ELSE
43160 1419 672 ! ! ! ! ! ! IF ( sac_rac_top > 0 ) THEN
43170 1420 673 ! ! ! ! ! ! FOR sac_rac_ix:= 1 TO sac_rac_top DO
43180 1421 674 ! ! ! ! ! ! IF ( acting_ac( sac_rac_ix ) = send ) THEN
43190 1422 675 ! ! ! ! ! ! sac_rac_tbl( sac_rac_ix ).disconnected:= false
43200 1423 676 ! ! ! ! ! ! ;
43210 1424 677 ! ! ! ! ! !
43220 1425 678 ! ! ! ! ! ! atc_start_poll( 1, atc_tbl_top )
43230 1426 679 ! ! ! ! ! !
43240 1427 680 ! ! ! ! ! END
43250 1428 681 ! ! ! ! ! ;
43260 1429 682 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 52
44010 1430 683 ! ! ! ! ! OTHERWISE
44020 1431 684 ! ! ! ! ! reject_message( main_msg,
44030 1432 685 ! ! ! ! ! sem( tssup_sem_no ).s, route_vct( u3 ), own_address, ath_mic_addr, unknown_opcode )
44040 1433 686 ! ! ! ! !
44050 1434 687 ! ! ! ! END (* case u4 to ATH *)
44060 1435 688 ! ! ! ! ;
44070 1436 689 ! ! ! !
44080 1437 690 ! ! ! ! IF NOT nil( main_msg ) THEN
44090 1438 691 ! ! ! ! IF main_msg^.u4 IN (.#h12, #h20..#h27, #hc9.) THEN
44100 1439 692 ! ! ! ! return( main_msg )
44110 1440 693 ! ! ! ! ELSE
44120 1441 694 ! ! ! ! receipt_message( main_msg, sem( tssup_sem_no ).s, route_vct( u3 ), 0, result_code )
44130 1442 695 ! ! ! !
44140 1443 696 ! ! ! END (* Message from TSS to ATH *)
44150 1444 697 ! ! ! ;
44160 1445 698 ! ! !
\f
tsathlst 81.06.23. 20.18. page 53
45010 1446 699 ! ! ! netc_route: (* Message to an ATC from TSS to be routed through ATH *)
45020 1447 700 ! ! ! BEGIN
45030 1448 701 ! ! ! !
45040 1449 702 ! ! ! ! (*q if test then testout(z,"to an atc ",0); q*)
45050 1450 703 ! ! ! !
45060 1451 704 ! ! ! ! IF atc_tbl_top > 0 THEN
45070 1452 705 ! ! ! ! LOCK main_msg AS locvar: alarmlabel DO
45080 1453 706 ! ! ! ! WITH locvar DO
45090 1454 707 ! ! ! ! IF find_atc_tbl_entry( rec.micro, atc_tbl_ix ) THEN
45100 1455 708 ! ! ! ! WITH atc_tbl( atc_tbl_ix ) DO
45110 1456 709 ! ! ! ! IF ( actual_activity <> break_code ) THEN
45120 1457 710 ! ! ! ! CASE u4 OF (* Operation code *)
45130 1458 711 ! ! ! ! !
45140 1459 712 ! ! ! ! ! (* 04.00 - Control. Find index of AC in sac_rac table. *)
45150 1460 713 ! ! ! ! ! #h40:
45160 1461 714 ! ! ! ! ! BEGIN
45170 1462 715 ! ! ! ! ! !
45180 1463 716 ! ! ! ! ! ! IF ( acting_ac( pac_ix ) <> send ) THEN
45190 1464 717 ! ! ! ! ! ! BEGIN
45200 1465 718 ! ! ! ! ! ! !
45210 1466 719 ! ! ! ! ! ! ! IF search_sac_rac( send, sac_rac_ix ) THEN
45220 1467 720 ! ! ! ! ! ! ! result_code:= accepted
45230 1468 721 ! ! ! ! ! ! ! ELSE
45240 1469 722 ! ! ! ! ! ! ! result_code:= unknown_sender
45250 1470 723 ! ! ! ! ! ! !
45260 1471 724 ! ! ! ! ! ! END
45270 1472 725 ! ! ! ! ! ! ELSE
45280 1473 726 ! ! ! ! ! ! sac_rac_ix:= pac_ix;
45290 1474 727 ! ! ! ! ! !
45300 1475 728 ! ! ! ! ! ! IF ( result_code = accepted ) THEN
45310 1476 729 ! ! ! ! ! ! ts_add( 0 ):= sac_rac_ix
45320 1477 730 ! ! ! ! ! !
45330 1478 731 ! ! ! ! ! END
45340 1479 732 ! ! ! ! ! ;
45350 1480 733 ! ! ! ! !
45360 1481 734 ! ! ! ! ! (* 08.04 - Extern test. Check the legitimacy *)
45370 1482 735 ! ! ! ! ! #h84:
45380 1483 736 ! ! ! ! ! IF ( acting_ac( pac_ix ) <> send ) THEN
45390 1484 737 ! ! ! ! ! result_code:= forbidden
45400 1485 738 ! ! ! ! ! ELSE
45410 1486 739 ! ! ! ! ! ts_add( 0 ):= pac_ix
45420 1487 740 ! ! ! ! ! ;
45430 1488 741 ! ! ! ! !
45440 1489 742 ! ! ! ! ! OTHERWISE
45450 1490 743 ! ! ! ! ! (* Other operation codes are passed uninspected and unaltered *)
45460 1491 744 ! ! ! ! !
\f
tsathlst 81.06.23. 20.18. page 54
46010 1492 745 ! ! ! ! END (* case operation code *)
46020 1493 746 ! ! ! ! ELSE
46030 1494 747 ! ! ! ! result_code:= breaked
46040 1495 748 ! ! ! ! ELSE
46050 1496 749 ! ! ! ! result_code:= not_found
46060 1497 750 ! ! ! ! ELSE
46070 1498 751 ! ! ! ! result_code:= unknown_receiver
46080 1499 752 ! ! ! ! ;
46090 1500 753 ! ! ! ! (* end - lock main_msg. end - with locvar, atc_tbl *)
46100 1501 754 ! ! ! !
46110 1502 755 ! ! ! ! IF ( result_code <> accepted ) THEN
46120 1503 756 ! ! ! ! reject_message( main_msg,
46130 1504 757 ! ! ! ! sem( tssup_sem_no ).s, route_vct( u3 ), own_address, ath_mic_addr, result_code )
46140 1505 758 ! ! ! ! ELSE
46150 1506 759 ! ! ! ! signal( main_msg, sem( atc_tbl( atc_tbl_ix ).ts_vect_ix ).s^ )
46160 1507 760 ! ! ! !
46170 1508 761 ! ! ! END (* Message from TSS to an AT *)
46180 1509 762 ! ! ! ;
46190 1510 763 ! ! !
46200 1511 764 ! ! ! OTHERWISE (* Unknown route *)
46210 1512 765 ! ! ! BEGIN
46220 1513 766 ! ! ! ! (*q test := not test;
46230 1514 767 ! ! ! ! if test then testout(z,"starttestout",0);
46240 1515 768 ! ! ! ! if not test then testout(z,"stop testout",0); q*)
46250 1516 769 ! ! ! !
46260 1517 770 ! ! ! ! reject_message( main_msg,
46270 1518 771 ! ! ! ! sem( tssup_sem_no ).s, at_route, own_address, ath_mic_addr, unknown_route )
46280 1519 772 ! ! ! !
46290 1520 773 ! ! ! END
46300 1521 774 ! ! ! ;
46310 1522 775 ! ! !
46320 1523 776 ! ! END (* case route - with main_msg^ *)
46330 1524 777 ! !
46340 1525 778 ! UNTIL forever
46350 1526 779 !
46360 1527 780 END (* process at_handler *).
46370 1528
46380 1529
\f
tsathlst 81.06.23. 20.18. page 55
0 122* 131* 131* 137* 151* 153* 418 424 488 600 648 678 689 690 692
701 741 846 846 846 849 851 867 867 867 868 986 1000 1018 1028
1033 1048 1062 1080 1090 1095 1109 1126 1140 1155 1163 1168 1172 1357 1362
1388 1419 1441 1451 1476 1486
1 121* 131* 131* 132* 136* 176* 176* 183* 184* 388 391 421 430 451 476
479 496 522 523 528 547 570 608 614 658 664 681 699 709 719
755 760 987 992 1001 1006 1019 1034 1049 1054 1063 1068 1081 1096 1110
1115 1127 1141 1146 1156 1168 1204 1220 1231 1287 1322 1323 1327 1363 1389
1394 1420 1425
2 427 760
4 640 1168 1222
8 1214
10 1218 1219
aac_address 845 852=
accepted 172* 601 641 702 742 787 821 883 904 928 961 1029 1091 1180 1248
1358 1467 1475 1502
acting_ac 355* 369= 371= 390 393 742 742 849 852 868 988 1002 1020 1035 1050
1064 1082 1097 1111 1128 1142 1157 1322 1326 1390 1421 1463 1483
actual_activity <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
218* 491= 597 599 635 636 686 1235 1456
ac_address 376* 390 393
ac_check_connection <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
725* 1021 1036 1083 1098 1129 1158 1307 1364
alarmlabel 303 863 926 933 945 1414 1452
alarmnetaddr 357* 376*
alfa 174*
alfalength 176*
alfa_pos 176* 1214= 1218 1220= 1220 1222
alloc 764 773
al_form_0001 844
al_form_020_ 981 1013 1043 1075 1105 1122 1138 1153
al_form_0404 1166
al_form_0600 1194
al_form_0608 1269
al_form_0900 644 880
al_form_1010 1282
al_form_1200 1344
al_label 845 881 1167 1195 1270 1283
al_net_addr 982 1014 1044 1076 1106 1123 1142 1157
as 248: 303: 644: 769: 784: 844: 863: 880: 926: 933: 945: 981: 1013: 1043: 1075:
1105: 1122: 1138: 1153: 1166: 1194: 1269: 1282: 1344: 1414: 1452:
atconnector 208* 787 1228
atc_claim_set <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
534*
\f
tsathlst 81.06.23. 20.18. page 56
atc_description <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
131* 472* 510*
atc_inc_claim <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
149* 535* 556*
atc_mic 459* 486 1201 1209 1213 1241 1274
atc_mic_addr 424 429 436 440 486= 601 640 702
atc_name 174* 1212= 1218= 1227
atc_no 175* 1213= 1218 1219= 1219
atc_pri 1249
atc_sem_no 760
atc_shadow_table <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
134*
atc_size 1245
atc_start_poll <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
618* 1425
atc_stop_poll <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
580* 890 992 1006 1054 1068 1115 1146 1394
atc_supervise <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
668* 1369 1399
atc_table 130* 131*
atc_table_range <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
136* 402* 414* 458* 501* 555* 581* 619*
atc_tbl 130* 424 429 436 440 476 479= 479 481= 483 514 515 517 522= 522
527= 565 596 634 685 756 884 1225 1249 1455 1506
atc_tbl_e 1195 1270
atc_tbl_ix 136* 402* 422= 424 424 427 432= 436 440= 440 440 451= 458* 478 481
483 501* 514 515 517 519 522 522 523= 523 681= 685 709= 709 713
719 755= 756 759 760 882 884 890 890 947 950 1201 1209 1225 1249
1253 1274 1275 1454 1455 1506
atc_tbl_lth 131* 755 1191
atc_tbl_top 137* 418 422 476 478 496= 496 519 527 528= 528 678 709 713 992
1006 1054 1068 1096 1115 1146 1163 1191 1394 1425 1451
ath_int1 1181
ath_mic_addr 316 771 785 906 1432 1504 1518
ath_sem 214*
ath_sem_no 297 764 773 799 803 1232
at_addr_limit <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
175*
at_handler 1*
at_route 167* 741 835: 1028 1090 1357 1518
at_route1 167* 913:
aux_msg 155* 1028 1030 1090 1092 1357 1359
a_delay 808:
a_label 933: 934
\f
tsathlst 81.06.23. 20.18. page 57
a_semaphore 805:
book_req 263 778
book_up 233* 788 1354 1379
book_up_msg 186* 236* 245 248: 256 257 263 264 266 270 764 766 769: 788 1354
1379 1407=
book_up_pool 183* 764
boolean 191* 193* 286* 338* 379* 403*
breaked 1254 1494
break_code 635 686 1456
busy_main 146* 329 798:
busy_pool 147* 325 802:
byte 153* 164* 229* 280*
channelno 229*
chr 1218
claim_level 149* 575 576=
claim_none 149*
claim_set 490= 534* 543 546= 546 566 569= 569 606 656 707
com_pool 216* 300 1234
connector_state <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
218*
count 250=
create 1226
data_inconsistent <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
1178
dc_addr 348 348 983 983 988 988 1015 1015 1020 1020
dc_address 4* 1029 1091 1196 1239 1271 1284 1358 1416
dc_disconnect <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
193* 599 639 889 998= 1027 1060= 1089 1356 1386= 1417=
dc_erh_mic_addr <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
1029 1091 1358
decrease_claims <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
532* 606 656 707
delay 489= 649 1236
del_atc_tbl_entry <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
500* 950 1253 1275
disconnected 597 637 740 889 989= 1003= 1051= 1065= 1112= 1143= 1301= 1317= 1391= 1422=
driversem 215*
dummy_route 831:
empty_addr 119* 119* 368 1316 1316 1322 1326 1390
existing_entry <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
1202
external 231*
false 119* 191* 439 450 1317 1367 1417 1422
find_atc_tbl_entry <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
399* 439= 444= 450= 882 947 1201 1274 1454
\f
tsathlst 81.06.23. 20.18. page 58
first_ix 554* 564= 564 565 581* 593 596 608= 608 612 614 619* 631 634 658=
658 662 664
forbidden 1197 1272 1285 1484
foreign_nc 336* 348= 1002 1035 1045 1050 1077 1082
forever 1525
frequence 649=
get_message 276* 332= 600 640 701 741 1028 1090 1357
h01 843:
h12 919: 975: 1438
h20 980: 1438
h21 1012:
h22 1042:
h23 1074:
h24 1104:
h25 1121:
h26 1135:
h27 1152: 1438
h30 862
h32 862:
h40 1460:
h44 1162:
h45 925:
h60 1190:
h68 1268:
h84 1482:
h90 600 640
h91 879: 940:
haa 1281:
hc0 701 1341:
hc2 780 1376:
hc3 264 1406
hc4 257 1406:
hc8 741 1028 1090 1357
hc9 1411: 1438
hcf 944:
high_micro 1168
idle_main 145* 147* 321 614 664 719 797:
incname 750
increase_claims <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
553* 612 662 713
insert_code 1296:
integer 151* 175* 184* 189* 190* 220* 222* 224* 228* 237* 281* 283* 400* 459* 784
label_size 310
lam_no 1233
\f
tsathlst 81.06.23. 20.18. page 59
lam_sem_no 1233
last_ix 555* 564 582* 593 608 612 620* 631 658 662
link 787
lock 248: 303: 644: 769: 784: 844: 863: 880: 926: 933: 945: 981: 1013: 1043: 1075:
1105: 1122: 1138: 1153: 1166: 1194: 1269: 1282: 1344: 1414: 1452:
locvar 248: 249 303: 304 644: 645 769: 770 784: 785= 844: 845 863: 864 880:
881 926: 927 945: 946 981: 982 1013: 1014 1043: 1044 1075: 1076 1105: 1106
1122: 1123 1138: 1139 1153: 1154 1166: 1167 1194: 1195 1269: 1270 1282: 1283 1344:
1345 1414: 1415 1452: 1453
low 414* 421= 424 427 427 430=
low_micro 1168
macro 312= 315= 742 982 988 1002 1014 1020 1035 1044 1045 1050 1064 1076 1077
1082 1097 1111 1111 1128 1128 1196 1271 1284 1416
macroaddr 5* 227* 282* 337*
main_msg 170* 799 803 818 826 832 844: 863: 880: 905 908 926: 945: 962 964
981: 1013: 1043: 1075: 1105: 1122: 1138: 1153: 1166: 1181 1194: 1269: 1282: 1344: 1379
1407 1414: 1431 1437 1438 1439 1441 1452: 1503 1506 1517
main_sem 211*
main_wait 144* 321= 325= 329= 614 664 719 795
master_time_out <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
1348 1349
max_int 189* 190*
micro 313= 316= 742 851 851 852 882 947 1454
mic_addr 400* 424 429 436 440
mid 414* 427= 429 430 432
msg 278* 300 302 303: 304 332 589* 600 604 627* 640 644: 654 674* 701
705 735* 741 743
msg_0900_start <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
656 662
msg_0900_stop <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
606 612
msg_1200 707 713
msg_kind 535* 543 546 556* 566 569 575 576
nc_addr 350 350
netc_route 164* 1446:
netc_route1 164* 600 640 701 767 779 969:
node_address 337* 347
node_test_freq <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
189* 788 1237 1348= 1354 1379
noofbytes 281* 310
not_found 1277 1496
not_steering 928
no_of_by 310= 1168
no_room 1264
\f
tsathlst 81.06.23. 20.18. page 60
nt_time_out 191* 1367= 1381 1384=
object 771=
opc 280* 308
op_sem 2* 209* 750 1229
ord 440 1218
out_of_range 1205 1288
own 750
ownaddr 228*
own_address 5* 315 348 350 601 640 702 906 983 988 1015 1020 1064 1097 1240
1432 1504 1518
own_dc 226*
own_ts 227*
pac_index 460* 487
pac_ix 487= 596 634 884 1204 1204 1209 1463 1473 1483 1486
passive 297
place_atc_tbl_entry <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
457* 1209
poll_delay 220*
poll_delay_time <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
131* 489
pool 183* 184*
port_no 1242
process 1* 208*
push 266
queue_lth 153*
queue_sem 212*
read_code 702 742 1029 1091 1292: 1358
rec 312 313 849= 868= 934= 1454
receipt_message <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
1441
rec_macro 282* 312
rec_micro 283* 313
reference 157* 170* 187* 236* 278* 589* 627* 674* 735*
reject_message <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
905 1431 1503 1517
remove 515
remove_code 1312:
res 285* 319
resource_claims <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
151* 547= 547 570= 570
result 319= 883 928 931 1272=
result_code 172* 821= 856= 870= 895= 904 906 931= 961 1174= 1178= 1180 1185= 1197= 1202=
1205= 1226= 1248 1254= 1264= 1277= 1285= 1288= 1335= 1441 1467= 1469= 1475 1484= 1494=
1496= 1498= 1502 1504
\f
tsathlst 81.06.23. 20.18. page 61
result_range 172* 285*
return 832 964 1439
route 279* 307
route_vct 167* 906 1432 1441 1504
route_vector 164* 167*
s 270 604 654 705 743 764 773 906 908 962 1030 1092 1181 1232 1233
1359 1432 1441 1504 1506 1518
sac_rac_e 367 1293 1300= 1316=
sac_rac_entry <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
119* 1316
sac_rac_ix 121* 356* 367 378* 388= 390 390 391= 391 393 726* 739 742 742 987=
988 989 1001= 1002 1003 1019= 1020 1021 1034= 1035 1036 1049= 1050 1051 1063=
1064 1065 1081= 1082 1083 1096= 1097 1098 1110= 1111 1112 1127= 1128 1129 1141=
1142 1143 1156= 1157 1158 1171 1172 1363= 1364 1389= 1390 1391 1420= 1421 1422
1466 1473= 1476
sac_rac_lth 118* 1287
sac_rac_range <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
121* 356* 378* 460* 726*
sac_rac_table <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
117* 118*
sac_rac_tbl 117* 367 596 634 739 884 989 1003 1051 1065 1112 1143 1293 1297 1313
1391 1422
sac_rac_tbl_ix <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
1287 1287 1293 1297 1303 1304 1307 1313 1319
sac_rac_tbl_entry <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
119*
sac_rac_top 122* 390 846 851 867 986 987 1000 1001 1018 1019 1033 1034 1048 1049
1062 1063 1080 1081 1095 1109 1110 1126 1127 1140 1141 1155 1156 1204 1303
1304= 1319 1322 1322 1323= 1323 1326 1327= 1327 1362 1363 1388 1389 1419 1420
search_sac_rac <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
375* 393= 1171 1466
seconds 237* 250
sem 7* 270 297 300 604 654 705 743 764 773 799 803 906 908 962
1030 1092 1181 1230 1231 1232 1233 1234 1359 1432 1441 1504 1506 1518
sempointer 2* 209* 216*
send 315 316 882 934 946 1171 1196 1271 1284 1416 1421 1463 1466 1483
sensesem 300
service_code 599 639
shadows 134* 514 515 1244 1249
shad_ix 514 515 759= 1244 1249
signal 270 604 654 705 743 908 962 1030 1092 1181 1359 1506
start 1249
start_code 597 637
stop_code 132* 132* 491 492 601
\f
tsathlst 81.06.23. 20.18. page 62
substitute_ac_addr <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
368 369
tbl_entry 1293= 1300
testopen 750
testout 751 920 957 976
timeout_sem_no <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
270
time_out_msg 187* 235* 253 266 773 775 784: 788 1354
time_out_pool <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
184* 773
tolerance 1349
traffic_count <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
488= 689 690= 692 699=
traffic_counter <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
224*
traffic_test_freq <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
190* 222* 1238 1349=
true 193* 444 989 998 1003 1051 1060 1065 1112 1143 1301 1384 1386 1391
tssup_sem_no 743 906 908 962 1030 1092 1359 1432 1441 1504 1518
ts_add 846 846 849 867 867 868 1172= 1476= 1486=
ts_env_vers 751
ts_pointer 212*
ts_pointer_vector <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
7*
ts_vect_ix 604 654 705 760= 1230 1231 1506
t_e_c_init 648=
u1 256= 263= 778=
u3 307= 767= 779= 827 906 920 976 1432 1441 1504
u4 257= 264= 308= 780= 840 916 957 972 1438 1457
unknown_opcode <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
1432
unknown_receiver <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
856 870 1185 1498
unknown_route <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
1518
unknown_sender <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
895 928 1174 1469
unknown_update <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
1335
upd 284* 318
update 318= 887 1290
updates 183* 248 769
update_range 284*
update_req 256
\f
tsathlst 81.06.23. 20.18. page 63
upper_atc_tbl_index <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
137* 471* 582* 620*
upper_sac_rac_index <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
122*
usual_ac_addr <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
371
version 11* 751
w 297 300 799 803 1234
wait 799
waitsd 803
wait_sem_delay <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
803
wanted_activity <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
492= 636 637 639 641 887=
working_0404_msg <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
156* 933:
working_0608_msg <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
157*
work_entry 472* 476= 481 510* 517= 527
work_ix 471* 478= 479 479
z 202* 750 751 920 957 976
zone 202*
\f
tsathlst 81.06.23. 20.18. page 64
AND 11
ARRAY 1
BEGIN 75
CASE 8
CONST 2
DIV 2
DO 89
DOWNTO 1
ELSE 43
END 83
FOR 18
FUNCTION 5
IF 105
IN 4
MOD 4
NIL 7
NOT 11
OF 11
OR 9
OTHERWISE 8
PROCEDURE 9
REPEAT 6
THEN 105
TO 17
TYPE 1
UNTIL 6
VAR 27
WHILE 4
WITH 41
*pascal80 codesize.12000 alarmenv tsenvir source
81.06.23. 20.20. pascal80 version 1981.04.01
name headline beginline endline appetite(words)
book_up 243 246 274 : 9
get_message 295 298 332 : 11
foreign_nc 345 352 350 : 6
acting_ac 365 367 373 : 7
search_sac_r 386 388 395 : 17
find_atc_tbl 414 419 455 : 10
place_atc_tb 471 476 498 : 18
del_atc_tbl_ 510 515 530 : 23
decrease_cla 541 544 551 : 6
increase_cla 562 564 578 : 11
atc_stop_pol 589 594 614 : 28
atc_start_po 627 632 664 : 30
atc_supervis 674 679 723 : 26
ac_check_con 735 739 743 : 38
at_handler 11 750 1527 : 328
code: 1 . 958 = 12958 bytes
end of PASCAL80 compilation
end
blocksread = 55
*o c
▶EOF◀