|
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: 88320 (0x15900) Types: TextFile Names: »tsdtelst«
└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system └─⟦72244f0ef⟧ └─⟦this⟧ »tsdtelst«
\f tsdtelst 81.06.15. 15.39. page 1 10 1 20 2 PROCESS dtesimulator( 30 3 op_sem : sempointer; (* operator semaphore *) 40 4 VAR 50 5 pax_pool_sem, 60 6 dte_sem : !ts_pointer; 70 7 VAR 80 8 netc_sem, 90 9 rut_trm_sem, 100 10 (* equal to utrm at local receiver *) 110 11 rut_rec_sem : !sempointer; 120 12 (* equal to urec at local transmitter *) 130 13 dte_adr : int_pax_addr 140 14 ); 150 15 160 16 CONST 170 17 version = "vers 1.15 /"; 180 18 (*----------------------*) 190 19 200 20 (*=================================================================== 210 21 " " 220 22 " FUNCTION : DTE establishes a connection between PAXCON and " 230 23 " ROUTER in the prototype of the alarmsystem. " 240 24 " " 250 25 " STRATEGI : DTE converts one DTE-function to one ore more " 260 26 " ROUTER-functions. " 270 27 " " 280 28 =====================================================================*) 290 29 300 30 \f tsdtelst 81.06.15. 15.39. page 2 1010 31 (* INTRODUCTION TO DTE 1020 32 1030 33 Abbreviation list : 1040 34 ----------------- 1050 35 1060 36 mes message 1070 37 1080 38 op operator 1090 39 1100 40 ptr pointer 1110 41 1120 42 sem semaphore 1130 43 1140 44 ts terminal station 1150 45 1160 46 1170 47 Pseudo code version 80.12.19 : 1180 48 ---------------------------- 1190 49 *) 1200 50 \f tsdtelst 81.06.15. 15.39. page 3 2010 51 (*----------------------------------------------------------- 2020 52 - constants - 2030 53 -------------------------------------------------------------*) 2040 54 CONST 2050 55 2060 56 max_calls = max_stream_no-min_stream_no+1; 2070 57 \f tsdtelst 81.06.15. 15.39. page 4 3010 58 (*-------------------------------------------------------------- 3020 59 . string constants 3030 60 ----------------------------------------------------------------*) 3040 61 3050 62 t_01 = "dummy return"; 3060 63 t_02 = "stream table"; 3070 64 t_03 = "car_ref nil "; 3080 65 t_04 = "car ref used"; 3090 66 t_05 = "l-rec-q "; 3100 67 t_06 = "dst-stream "; 3110 68 t_07 = "dst-adr "; 3120 69 t_08 = "diag-code "; 3130 70 t_09 = "entry used "; 3140 71 t_10 = "entry not us"; 3150 72 3160 73 t_11 = "call index "; 3170 74 t_12 = "calls moved "; 3180 75 t_13 = "get-trm-buf "; 3190 76 t_14 = "** no paxbuf"; 3200 77 t_15 = "get-rec-buf "; 3210 78 t_16 = "dst node no "; 3220 79 t_17 = "ext addr no "; 3230 80 t_18 = "connect rout"; 3240 81 t_19 = "dte connectd"; 3250 82 t_20 = "** conn err "; 3260 83 3270 84 t_21 = "no resources"; 3280 85 t_22 = "extensionerr"; 3290 86 t_23 = "sense ready "; 3300 87 t_24 = "discon ext "; 3310 88 t_25 = "rut-reset "; 3320 89 t_26 = "transresult "; 3330 90 t_27 = "rut_receive "; 3340 91 t_28 = "rut pac stat"; 3350 92 t_29 = "rut pac from"; 3360 93 t_30 = "rec userfld "; 3370 94 3380 95 t_31 = "rec streamno"; 3390 96 t_32 = "rec-dte-car-"; 3400 97 t_33 = "** no callix"; 3410 98 t_34 = "** no ricbuf"; 3420 99 t_35 = "rec-dte-clr-"; 3430 100 t_36 = "rec-dte-aic-"; 3440 101 t_37 = "rec-dte-rej-"; 3450 102 t_38 = "rec-dtesdata"; 3460 103 t_39 = "** no rdata "; \f tsdtelst 81.06.15. 15.39. page 5 3470 104 3480 105 t_40 = "** bad usfld"; 3490 106 t_41 = "rut status "; 3500 107 t_42 = "** bad rutfk"; 3510 108 t_43 = "** rut error"; 3520 109 t_44 = "** u2-------"; 3530 110 t_45 = "** status---"; 3540 111 t_46 = "netc-dte-car"; 3550 112 t_47 = "send-to-node"; 3560 113 t_48 = "netc-dte-clr"; 3570 114 t_49 = "netc-dte-aic"; 3580 115 3590 116 t_50 = "netc-dte-rda"; 3600 117 t_51 = "rut transmit"; 3610 118 t_52 = "netc-dte-aic"; 3620 119 t_53 = "netc-dte-rej"; 3630 120 t_54 = "netc-dte-res"; 3640 121 t_55 = "netc-dtestat"; 3650 122 t_56 = "** bad dtefk"; 3660 123 t_57 = "** ill buffr"; 3670 124 \f tsdtelst 81.06.15. 15.39. page 6 4010 125 (*-------------------------------------------------------------- 4020 126 - types - 4030 127 ----------------------------------------------------------------*) 4040 128 TYPE 4050 129 4060 130 stream_e 4070 131 = RECORD 4080 132 ! car_ref : reference; 4090 133 ! l_rec_q : integer; 4100 134 ! receive_queue : semaphore; 4110 135 ! dst_stream : byte; 4120 136 ! dst : int_pax_addr; 4130 137 ! facility : integer; 4140 138 ! state : state_type; 4150 139 ! priority : byte; 4160 140 ! diag_code : byte 4170 141 END; 4180 142 4190 143 calls_e 4200 144 = RECORD 4210 145 ! dst : int_pax_addr; 4220 146 ! dst_stream : byte; 4230 147 ! used : boolean ; 4240 148 ! facility : integer; 4250 149 END; 4260 150 \f tsdtelst 81.06.15. 15.39. page 7 5010 151 (*----------------------------------------------------------- 5020 152 . variables section . 5030 153 -------------------------------------------------------------*) 5040 154 VAR 5050 155 i : integer; 5060 156 5070 157 ref, 5080 158 rut_buf_ref, 5090 159 in_ref : reference; 5100 160 5110 161 z : zone; 5120 162 5130 163 ric_pool : semaphore; 5140 164 5150 165 calls : ARRAY (1..max_calls) OF calls_e; 5160 166 5170 167 streams : ARRAY ( min_stream_no..max_stream_no) OF stream_e; 5180 168 5190 169 act_stream_no : integer; 5200 170 act_dst : int_pax_addr; 5210 171 act_user_field : integer; 5220 172 act_call_no : integer; 5230 173 act_result : byte; 5240 174 act_diag_code : byte; 5250 175 act_pac_state : byte:=0; 5260 176 5270 177 no_trm_bufs : integer := 0; 5280 178 5290 179 no_rec_bufs : integer := 0; 5300 180 5310 181 5320 182 cur_facility : integer := 0; 5330 183 5340 184 tst : byte := 255; 5350 185 5360 186 (* 5370 187 8 - write actions on streams 5380 188 16 - write results from router 5390 189 32 - write table entryes 5400 190 64 - write testsections 5410 191 128 - write procedure calls 5420 192 *) 5430 193 \f tsdtelst 81.06.15. 15.39. page 8 6010 194 (*============================================================== 6020 195 = procedures section = 6030 196 ================================================================*) 6040 197 6050 198 PROCEDURE ts_wait( 6060 199 VAR 6070 200 mes_ref : reference; 6080 201 sem_ptr : sempointer 6090 202 ); 6100 203 6110 204 (*----------------------------------------------------------- 6120 205 . wait with return of dummy messages - 6130 206 -------------------------------------------------------------*) 6140 207 6150 208 BEGIN 6160 209 1 ! 6170 210 2 ! wait( mes_ref, sem_ptr^); 6180 211 3 ! 6190 212 4 ! WHILE mes_ref^.u3 = dummy_route DO 6200 213 5 ! BEGIN 6210 214 6 ! ! IF tst>4 THEN 6220 215 7 ! ! testout(z,t_01,mes_ref^.u1); 6230 216 8 ! ! signal( mes_ref, pax_pool_sem.s^); 6240 217 9 ! ! wait( mes_ref, sem_ptr^); 6250 218 10 ! END; 6260 219 11 ! 6270 220 12 END (* ts_wait *); 6280 221 6290 222 \f tsdtelst 81.06.15. 15.39. page 9 7010 223 FUNCTION address( adr:int_pax_addr):integer; 7020 224 BEGIN 7030 225 1 ! address := 7040 226 2 ! adr.net_addr*1000 + 7050 227 3 ! adr.reg_addr*100 + 7060 228 4 ! adr.node_addr*10 + 7070 229 5 ! adr.ext_addr; 7080 230 6 END; 7090 231 \f tsdtelst 81.06.15. 15.39. page 10 8010 232 PROCEDURE write_stream ( 8020 233 i : byte ); 8030 234 (*------------------------------------------------------- 8040 235 . writes the content of stream table entry i 8050 236 ---------------------------------------------------------*) 8060 237 BEGIN 8070 238 1 ! WITH streams(i) DO 8080 239 2 ! BEGIN 8090 240 3 ! ! testout(z,t_02,i); 8100 241 4 ! ! IF nil(car_ref) THEN 8110 242 5 ! ! testout(z,t_03,i) 8120 243 6 ! ! ELSE 8130 244 7 ! ! testout(z,t_04,i); 8140 245 8 ! ! testout(z,t_05, l_rec_q); 8150 246 9 ! ! testout(z,t_06, dst_stream); 8160 247 10 ! ! testout(z,t_07,address(dst)); 8170 248 11 ! ! testout(z,t_08, diag_code); 8180 249 12 ! END; 8190 250 13 END; 8200 251 \f tsdtelst 81.06.15. 15.39. page 11 9010 252 PROCEDURE write_call ( 9020 253 i : byte ); 9030 254 (*---------------------------------------------------- 9040 255 . writes the content of calls table entry i 9050 256 ------------------------------------------------------*) 9060 257 BEGIN 9070 258 1 ! WITH calls(i) DO 9080 259 2 ! BEGIN 9090 260 3 ! ! IF used THEN 9100 261 4 ! ! testout(z,t_09,i) 9110 262 5 ! ! ELSE 9120 263 6 ! ! testout(z,t_10,i); 9130 264 7 ! ! testout(z,t_07,address(dst)); 9140 265 8 ! ! testout(z,t_06, dst_stream); 9150 266 9 ! END; 9160 267 10 END; 9170 268 \f tsdtelst 81.06.15. 15.39. page 12 10010 269 FUNCTION call_resources ( 10020 270 VAR act_call_no : integer ): boolean; 10030 271 (*------------------------------------------------------------- 10040 272 . looks for call-resources in dte 10050 273 ---------------------------------------------------------------*) 10060 274 10070 275 VAR i : integer := 1; 10080 276 found : boolean := false; 10090 277 BEGIN 10100 278 1 ! call_resources := true; 10110 279 2 ! 10120 280 3 ! (*---- look if call exists ----*) 10130 281 4 ! 10140 282 5 ! WHILE (NOT found) AND (i<=max_calls) DO 10150 283 6 ! IF calls(i).used THEN 10160 284 7 ! IF ( calls(i).dst=act_dst) AND (calls(i).dst_stream=act_stream_no) THEN 10170 285 8 ! found := true 10180 286 9 ! ELSE 10190 287 10 ! i:= i+1 10200 288 11 ! ELSE 10210 289 12 ! i:= i+1; 10220 290 13 ! 10230 291 14 ! IF NOT found THEN 10240 292 15 ! BEGIN 10250 293 16 ! ! (*---- find a free call entry ---*) 10260 294 17 ! ! 10270 295 18 ! ! i:=1; 10280 296 19 ! ! 10290 297 20 ! ! WHILE (NOT found) AND (i<=max_calls) DO 10300 298 21 ! ! IF calls(i).used THEN 10310 299 22 ! ! i := i+1 10320 300 23 ! ! ELSE 10330 301 24 ! ! found := true; 10340 302 25 ! ! 10350 303 26 ! ! IF found THEN 10360 304 27 ! ! BEGIN 10370 305 28 ! ! ! calls(i).used := true; 10380 306 29 ! ! ! calls(i).dst_stream := act_stream_no; 10390 307 30 ! ! ! calls(i).dst := act_dst; 10400 308 31 ! ! END 10410 309 32 ! ! ELSE 10420 310 33 ! ! call_resources := false; 10430 311 34 ! END; 10440 312 35 ! act_call_no := i; 10450 313 36 ! 10460 314 37 ! IF tst>32 THEN \f tsdtelst 81.06.15. 15.39. page 13 10470 315 38 ! testout(z,t_11,i); 10480 316 39 END; 10490 317 \f tsdtelst 81.06.15. 15.39. page 14 11010 318 PROCEDURE call_to_stream ( 11020 319 call_index , 11030 320 stream_index : byte ); 11040 321 (*----------------------------------------------------- 11050 322 - moves all call-values from calls to streams - 11060 323 -------------------------------------------------------*) 11070 324 BEGIN 11080 325 1 ! WITH streams( stream_index) DO 11090 326 2 ! BEGIN 11100 327 3 ! ! dst_stream := calls( call_index).dst_stream; 11110 328 4 ! ! dst := calls( call_index).dst; 11120 329 5 ! ! facility := calls( call_index).facility; 11130 330 6 ! ! 11140 331 7 ! ! IF tst>32 THEN 11150 332 8 ! ! BEGIN 11160 333 9 ! ! ! testout(z,t_12, call_index); 11170 334 10 ! ! END; 11180 335 11 ! ! 11190 336 12 ! END; 11200 337 13 ! 11210 338 14 ! calls( call_index).used := false; 11220 339 15 END; 11230 340 \f tsdtelst 81.06.15. 15.39. page 15 12010 341 PROCEDURE clear_stream_table ( 12020 342 indx : byte ); 12030 343 (*----------------------------------------------------------- 12040 344 . clears the streamtable index stream-no 12050 345 -------------------------------------------------------------*) 12060 346 BEGIN 12070 347 1 ! IF tst>32 THEN 12080 348 2 ! write_stream(indx); 12090 349 3 ! 12100 350 4 ! WITH streams( indx) DO 12110 351 5 ! BEGIN 12120 352 6 ! ! IF NOT nil( car_ref) THEN 12130 353 7 ! ! BEGIN 12140 354 8 ! ! ! car_ref^.u2 := dte_user_clear; 12150 355 9 ! ! ! signal( car_ref, netc_sem^); 12160 356 10 ! ! END; 12170 357 11 ! ! 12180 358 12 ! ! dst_stream := 0; 12190 359 13 ! ! dst := int_pax_addr(0,0,0,0); 12200 360 14 ! ! facility := 0; 12210 361 15 ! ! diag_code := 0; 12220 362 16 ! ! state := clearing; 12230 363 17 ! END; 12240 364 18 END; 12250 365 \f tsdtelst 81.06.15. 15.39. page 16 13010 366 PROCEDURE get_transmit_buf ( 13020 367 VAR ref : reference ); 13030 368 (*------------------------------------------------------ 13040 369 - allocates a transmitbuffer and makes it ready for use 13050 370 --------------------------------------------------------*) 13060 371 BEGIN 13070 372 1 ! sensesem( ref, pax_pool_sem.w^); 13080 373 2 ! 13090 374 3 ! IF NOT nil( ref) THEN 13100 375 4 ! BEGIN 13110 376 5 ! ! no_trm_bufs := no_trm_bufs +1; 13120 377 6 ! ! 13130 378 7 ! ! IF tst>128 THEN 13140 379 8 ! ! testout(z,t_13, no_trm_bufs); 13150 380 9 ! ! 13160 381 10 ! ! ref^.u1 := rut_trp; 13170 382 11 ! ! ref^.u2 := rut_default; 13180 383 12 ! ! ref^.u3 := rut_default; 13190 384 13 ! ! ref^.u4 := from_link; 13200 385 14 ! ! 13210 386 15 ! ! LOCK ref AS buf : rut_trp_pdata DO 13220 387 16 ! ! BEGIN 13230 388 17 ! ! ! WITH buf.rut_prefix DO 13240 389 18 ! ! ! BEGIN 13250 390 19 ! ! ! ! first := l_rut_prefix; 13260 391 20 ! ! ! ! last := l_rut_prefix + l_phead1 + l_control -1; 13270 392 21 ! ! ! ! ext_no := dte_adr.ext_addr; 13280 393 22 ! ! ! END; 13290 394 23 ! ! ! 13300 395 24 ! ! ! WITH buf.phead DO 13310 396 25 ! ! ! BEGIN 13320 397 26 ! ! ! ! format := rut_format_1; 13330 398 27 ! ! ! ! priority := rut_prio_0; 13340 399 28 ! ! ! ! packet_type := rut_pack_type; 13350 400 29 ! ! ! ! state := 0; 13360 401 30 ! ! ! ! org := dte_adr; 13370 402 31 ! ! ! ! top_of_data := l_rut_prefix + l_phead1 + l_control ; 13380 403 32 ! ! ! END; 13390 404 33 ! ! END; 13400 405 34 ! END 13410 406 35 ! ELSE 13420 407 36 ! IF tst>128 THEN 13430 408 37 ! testout(z,t_14, 0); 13440 409 38 END; 13450 410 \f tsdtelst 81.06.15. 15.39. page 17 14010 411 PROCEDURE send_rpacket_bufs ( 14020 412 no_of_bufs : byte ); 14030 413 (*--------------------------------------------------------- 14040 414 - sends receive packet buffers to router - 14050 415 -----------------------------------------------------------*) 14060 416 VAR 14070 417 i : integer; 14080 418 ref : reference; 14090 419 BEGIN 14100 420 1 ! FOR i := 1 TO no_of_bufs DO 14110 421 2 ! BEGIN 14120 422 3 ! ! sensesem( ref, pax_pool_sem.w^); 14130 423 4 ! ! 14140 424 5 ! ! IF NOT nil( ref) THEN 14150 425 6 ! ! BEGIN 14160 426 7 ! ! ! no_rec_bufs := no_rec_bufs +1; 14170 427 8 ! ! ! 14180 428 9 ! ! ! IF tst>128 THEN 14190 429 10 ! ! ! testout(z,t_15, no_rec_bufs); 14200 430 11 ! ! ! 14210 431 12 ! ! ! ref^.u1 := rut_rec; 14220 432 13 ! ! ! ref^.u2 := rut_default; 14230 433 14 ! ! ! ref^.u3 := rut_default; 14240 434 15 ! ! ! ref^.u4 := from_link; 14250 435 16 ! ! ! 14260 436 17 ! ! ! LOCK ref AS rec : rut_trp_pdata DO 14270 437 18 ! ! ! WITH rec DO 14280 438 19 ! ! ! BEGIN 14290 439 20 ! ! ! ! WITH rec.rut_prefix DO 14300 440 21 ! ! ! ! BEGIN 14310 441 22 ! ! ! ! ! first := l_rut_prefix ; 14320 442 23 ! ! ! ! ! last := first + max_l_data+ l_phead1-1; 14330 443 24 ! ! ! ! ! ext_no := dte_adr.ext_addr; 14340 444 25 ! ! ! ! END; 14350 445 26 ! ! ! ! 14360 446 27 ! ! ! ! WITH rec.phead DO 14370 447 28 ! ! ! ! BEGIN 14380 448 29 ! ! ! ! ! format := rut_format_1; 14390 449 30 ! ! ! ! ! priority:=0; 14400 450 31 ! ! ! ! ! packet_type := rut_pack_type; 14410 451 32 ! ! ! ! ! dst := int_pax_addr(0,0,0,0); 14420 452 33 ! ! ! ! ! state := 0; 14430 453 34 ! ! ! ! ! org := dte_adr; 14440 454 35 ! ! ! ! ! facility := cur_facility; 14450 455 36 ! ! ! ! ! top_of_data := rut_prefix.first + max_l_data +1; 14460 456 37 ! ! ! ! ! user_field := rut_rec; \f tsdtelst 81.06.15. 15.39. page 18 14470 457 38 ! ! ! ! END; 14480 458 39 ! ! ! END; 14490 459 40 ! ! ! 14500 460 41 ! ! ! signal( ref, rut_rec_sem^); 14510 461 42 ! ! END 14520 462 43 ! ! ELSE 14530 463 44 ! ! IF tst>128 THEN 14540 464 45 ! ! testout(z,t_14,1); 14550 465 46 ! END; 14560 466 47 END; 14570 467 \f tsdtelst 81.06.15. 15.39. page 19 15010 468 PROCEDURE act_destination; 15020 469 (*-------------------------------------------------------------- 15030 470 - converts an external paxnetaddress to an internal - 15040 471 - paxnetaddress - 15050 472 ----------------------------------------------------------------*) 15060 473 15070 474 VAR 15080 475 i : integer := 0; 15090 476 BEGIN 15100 477 1 ! 15110 478 2 ! LOCK in_ref AS dte_buf : car_buf_type DO 15120 479 3 ! WHILE (dte_buf.call_buf.dte_adr <> paxnet_config(i)) 15130 480 4 ! AND (i<15) DO i := i+1; 15140 481 5 ! 15150 482 6 ! act_dst.net_addr := 0; 15160 483 7 ! act_dst.reg_addr := 0; 15170 484 8 ! act_dst.node_addr := i; 15180 485 9 ! act_dst.ext_addr := 3; 15190 486 10 ! 15200 487 11 ! IF tst>64 THEN 15210 488 12 ! testout(z,t_16,i); 15220 489 13 END; 15230 490 \f tsdtelst 81.06.15. 15.39. page 20 16010 491 FUNCTION external_addr ( 16020 492 internal_addr : int_pax_addr 16030 493 ): ext_pax_addr; 16040 494 (*-------------------------------------------------------------- 16050 495 - converts an internal paxnetaddress to an external paxnetaddress 16060 496 ----------------------------------------------------------------*) 16070 497 BEGIN 16080 498 1 ! 16090 499 2 ! IF internal_addr.node_addr < 15 THEN 16100 500 3 ! external_addr := paxnet_config( internal_addr.node_addr) 16110 501 4 ! ELSE 16120 502 5 ! external_addr := paxnet_config(15); 16130 503 6 ! 16140 504 7 ! IF tst>64 THEN 16150 505 8 ! testout(z,t_17, internal_addr.node_addr); 16160 506 9 END; 16170 507 \f tsdtelst 81.06.15. 15.39. page 21 17010 508 (*------------------------------------------------------------ 17020 509 . MAIN PROGRAM . 17030 510 --------------------------------------------------------------*) 17040 511 BEGIN 17050 512 1 ! 17060 513 2 ! testopen( z, own.incname, op_sem); 17070 514 3 ! testout( z, version , al_env_version); 17080 515 4 ! 17090 516 5 ! (* initialize streams-array *) 17100 517 6 ! 17110 518 7 ! FOR i := min_stream_no TO max_stream_no DO 17120 519 8 ! WITH streams(i) DO 17130 520 9 ! BEGIN 17140 521 10 ! ! l_rec_q := 0; 17150 522 11 ! ! dst_stream := 0; 17160 523 12 ! ! dst := int_pax_addr(0,0,0,0); 17170 524 13 ! ! facility := 0; 17180 525 14 ! ! diag_code := 0; 17190 526 15 ! ! state := free; 17200 527 16 ! ! priority := rut_prio_0; 17210 528 17 ! END; 17220 529 18 ! 17230 530 19 ! (* initialize call-array *) 17240 531 20 ! 17250 532 21 ! FOR i:= 1 TO max_calls DO 17260 533 22 ! BEGIN 17270 534 23 ! ! calls(i).used := false; 17280 535 24 ! ! calls(i).facility := 0; 17290 536 25 ! END; 17300 537 26 ! \f tsdtelst 81.06.15. 15.39. page 22 18010 538 27 ! (*--- connect extension in router ---*) 18020 539 28 ! (*-------------------------------------*) 18030 540 29 ! 18040 541 30 ! sensesem( in_ref, pax_pool_sem.w^); 18050 542 31 ! 18060 543 32 ! IF NOT nil( in_ref) THEN 18070 544 33 ! BEGIN 18080 545 34 ! ! in_ref^.u1 := rut_con; 18090 546 35 ! ! in_ref^.u2 := rut_default; 18100 547 36 ! ! in_ref^.u3 := rut_default; 18110 548 37 ! ! in_ref^.u4 := from_link; 18120 549 38 ! ! 18130 550 39 ! ! LOCK in_ref AS buf : rut_prefix_type DO 18140 551 40 ! ! buf.ext_no := dte_adr.ext_addr; 18150 552 41 ! ! 18160 553 42 ! ! signal( in_ref, rut_rec_sem^); 18170 554 43 ! ! 18180 555 44 ! ! IF tst>128 THEN 18190 556 45 ! ! testout(z,t_18,1); 18200 557 46 ! END; 18210 558 47 ! 18220 559 48 ! send_rpacket_bufs(2); 18230 560 49 ! \f tsdtelst 81.06.15. 15.39. page 23 19010 561 50 ! REPEAT 19020 562 51 ! ! 19030 563 52 ! ! ts_wait( in_ref, dte_sem.w); 19040 564 53 ! ! 19050 565 54 ! ! 19060 566 55 ! ! IF in_ref^.u4 = from_link THEN 19070 567 56 ! ! (*--------------------------------------------------- 19080 568 57 ! ! . buffer from ROUTER 19090 569 58 ! ! -----------------------------------------------------*) 19100 570 59 ! ! 19110 571 60 ! ! IF in_ref^.u2 = rut_ok THEN 19120 572 61 ! ! 19130 573 62 ! ! BEGIN 19140 574 63 ! ! ! CASE in_ref^.u1 OF 19150 575 64 ! ! ! ! 19160 576 65 ! ! ! ! rut_con : 19170 577 66 ! ! ! ! (*---------- connect extension ----------*) 19180 578 67 ! ! ! ! BEGIN 19190 579 68 ! ! ! ! ! IF tst>16 THEN 19200 580 69 ! ! ! ! ! CASE in_ref^.u2 OF 19210 581 70 ! ! ! ! ! ! rut_ok : 19220 582 71 ! ! ! ! ! ! BEGIN 19230 583 72 ! ! ! ! ! ! ! testout( z, "dte connectd",0); 19240 584 73 ! ! ! ! ! ! END; 19250 585 74 ! ! ! ! ! ! rut_no_res : 19260 586 75 ! ! ! ! ! ! BEGIN 19270 587 76 ! ! ! ! ! ! ! testout(z,t_20, rut_no_res); 19280 588 77 ! ! ! ! ! ! ! testout( z, t_21, 0); 19290 589 78 ! ! ! ! ! ! END; 19300 590 79 ! ! ! ! ! ! rut_ext_err : 19310 591 80 ! ! ! ! ! ! BEGIN 19320 592 81 ! ! ! ! ! ! ! testout(z,t_20, rut_ext_err); 19330 593 82 ! ! ! ! ! ! ! testout( z, t_22, 0); 19340 594 83 ! ! ! ! ! ! END 19350 595 84 ! ! ! ! ! ! OTHERWISE 19360 596 85 ! ! ! ! ! ! testout(z,t_20,in_ref^.u2); 19370 597 86 ! ! ! ! ! END; 19380 598 87 ! ! ! ! ! 19390 599 88 ! ! ! ! ! signal( in_ref, pax_pool_sem.s^); 19400 600 89 ! ! ! ! END; 19410 601 90 ! ! ! ! \f tsdtelst 81.06.15. 15.39. page 24 20010 602 91 ! ! ! ! rut_srdy : 20020 603 92 ! ! ! ! (*---------- sense ready ----------*) 20030 604 93 ! ! ! ! BEGIN 20040 605 94 ! ! ! ! ! IF tst>16 THEN 20050 606 95 ! ! ! ! ! testout( z, t_23, in_ref^.u2); 20060 607 96 ! ! ! ! ! signal( in_ref, pax_pool_sem.s^); 20070 608 97 ! ! ! ! END; 20080 609 98 ! ! ! ! 20090 610 99 ! ! ! ! rut_dis : 20100 611 100 ! ! ! ! (*---------- disconnect extension ----------*) 20110 612 101 ! ! ! ! BEGIN 20120 613 102 ! ! ! ! ! IF tst>16 THEN 20130 614 103 ! ! ! ! ! testout( z, t_24, in_ref^.u2); 20140 615 104 ! ! ! ! ! signal( in_ref, pax_pool_sem.s^); 20150 616 105 ! ! ! ! END; 20160 617 106 ! ! ! ! 20170 618 107 ! ! ! ! 20180 619 108 ! ! ! ! rut_res : 20190 620 109 ! ! ! ! (*---------- reset ----------*) 20200 621 110 ! ! ! ! BEGIN 20210 622 111 ! ! ! ! ! IF tst>16 THEN 20220 623 112 ! ! ! ! ! testout(z,t_25,0); 20230 624 113 ! ! ! ! ! signal( in_ref, pax_pool_sem.s^); 20240 625 114 ! ! ! ! END; 20250 626 115 ! ! ! ! \f tsdtelst 81.06.15. 15.39. page 25 21010 627 116 ! ! ! ! rut_trp , rut_dir : 21020 628 117 ! ! ! ! (*---------- transmit packet ----------*) 21030 629 118 ! ! ! ! BEGIN 21040 630 119 ! ! ! ! ! IF tst>8 THEN 21050 631 120 ! ! ! ! ! testout(z,t_26,in_ref^.u2); 21060 632 121 ! ! ! ! ! <* 21070 633 122 ! ! ! ! ! act_result := in_ref^.u2; 21080 634 123 ! ! ! ! ! LOCK in_ref AS buf : rut_trp_pdata DO 21090 635 124 ! ! ! ! ! BEGIN 21100 636 125 ! ! ! ! ! act_user_field := buf.phead.user_field DIV 256; 21110 637 126 ! ! ! ! ! act_stream_no := buf.phead.user_field MOD 256; 21120 638 127 ! ! ! ! ! IF tst>8 THEN 21130 639 128 ! ! ! ! ! testout(z,"act-streamno", act_stream_no); 21140 640 129 ! ! ! ! ! 21150 641 130 ! ! ! ! ! IF ( act_user_field = dte_car) 21160 642 131 ! ! ! ! ! AND ( act_stream_no > 0) THEN 21170 643 132 ! ! ! ! ! BEGIN 21180 644 133 ! ! ! ! ! ref :=: streams( act_stream_no).car_ref; 21190 645 134 ! ! ! ! ! ref^.u2 := dte_ok_result; 21200 646 135 ! ! ! ! ! signal( ref, netc_sem^); 21210 647 136 ! ! ! ! ! END; 21220 648 137 ! ! ! ! ! END; 21230 649 138 ! ! ! ! ! *> 21240 650 139 ! ! ! ! ! signal( in_ref, pax_pool_sem.s^); 21250 651 140 ! ! ! ! END; 21260 652 141 ! ! ! ! \f tsdtelst 81.06.15. 15.39. page 26 22010 653 142 ! ! ! ! rut_rec : 22020 654 143 ! ! ! ! (*---------- receive packet ----------*) 22030 655 144 ! ! ! ! BEGIN 22040 656 145 ! ! ! ! ! IF tst>8 THEN 22050 657 146 ! ! ! ! ! testout(z,t_27,0); 22060 658 147 ! ! ! ! ! 22070 659 148 ! ! ! ! ! LOCK in_ref AS buf : rut_trp_pdata DO 22080 660 149 ! ! ! ! ! BEGIN 22090 661 150 ! ! ! ! ! ! 22100 662 151 ! ! ! ! ! ! act_pac_state := buf.phead.state; 22110 663 152 ! ! ! ! ! ! IF tst>4 THEN 22120 664 153 ! ! ! ! ! ! testout(z,t_28, act_pac_state); 22130 665 154 ! ! ! ! ! ! act_user_field := buf.phead.user_field DIV 256 ; 22140 666 155 ! ! ! ! ! ! act_stream_no := buf.phead.user_field MOD 256; 22150 667 156 ! ! ! ! ! ! act_dst := buf.phead.org; 22160 668 157 ! ! ! ! ! ! 22170 669 158 ! ! ! ! ! ! IF tst>32 THEN 22180 670 159 ! ! ! ! ! ! BEGIN 22190 671 160 ! ! ! ! ! ! ! testout(z,t_29,address(act_dst)); 22200 672 161 ! ! ! ! ! ! ! 22210 673 162 ! ! ! ! ! ! ! testout(z,t_30, act_user_field); 22220 674 163 ! ! ! ! ! ! ! testout(z,t_31, act_stream_no); 22230 675 164 ! ! ! ! ! ! END; 22240 676 165 ! ! ! ! ! ! 22250 677 166 ! ! ! ! ! ! CASE act_user_field OF 22260 678 167 ! ! ! ! ! ! ! \f tsdtelst 81.06.15. 15.39. page 27 23010 679 168 ! ! ! ! ! ! ! dte_car : 23020 680 169 ! ! ! ! ! ! ! BEGIN (*------- it is an incomming call --------*) 23030 681 170 ! ! ! ! ! ! ! ! 23040 682 171 ! ! ! ! ! ! ! ! sensesem( ref, ric_pool); 23050 683 172 ! ! ! ! ! ! ! ! 23060 684 173 ! ! ! ! ! ! ! ! IF NOT nil( ref) THEN 23070 685 174 ! ! ! ! ! ! ! ! BEGIN 23080 686 175 ! ! ! ! ! ! ! ! ! 23090 687 176 ! ! ! ! ! ! ! ! ! IF call_resources(act_call_no) THEN 23100 688 177 ! ! ! ! ! ! ! ! ! BEGIN 23110 689 178 ! ! ! ! ! ! ! ! ! ! 23120 690 179 ! ! ! ! ! ! ! ! ! ! IF tst>64 THEN 23130 691 180 ! ! ! ! ! ! ! ! ! ! BEGIN 23140 692 181 ! ! ! ! ! ! ! ! ! ! ! testout(z,t_32,dte_car); 23150 693 182 ! ! ! ! ! ! ! ! ! ! END; 23160 694 183 ! ! ! ! ! ! ! ! ! ! 23170 695 184 ! ! ! ! ! ! ! ! ! ! ref^.u2 := dte_ok_result; 23180 696 185 ! ! ! ! ! ! ! ! ! ! 23190 697 186 ! ! ! ! ! ! ! ! ! ! LOCK ref AS ric : ric_buf_type DO 23200 698 187 ! ! ! ! ! ! ! ! ! ! WITH ric DO 23210 699 188 ! ! ! ! ! ! ! ! ! ! BEGIN 23220 700 189 ! ! ! ! ! ! ! ! ! ! ! first := ric_first_val; 23230 701 190 ! ! ! ! ! ! ! ! ! ! ! last := ric_first_val + l_listen+l_control-1; 23240 702 191 ! ! ! ! ! ! ! ! ! ! ! call_id := act_call_no; 23250 703 192 ! ! ! ! ! ! ! ! ! ! ! call_buf.dte_adr_l := l_dte_adr; 23260 704 193 ! ! ! ! ! ! ! ! ! ! ! call_buf.dte_adr := external_addr( act_dst); 23270 705 194 ! ! ! ! ! ! ! ! ! ! ! call_buf.facility_l := l_facilities; 23280 706 195 ! ! ! ! ! ! ! ! ! ! ! call_buf.facility := buf.phead.facility; 23290 707 196 ! ! ! ! ! ! ! ! ! ! ! call_buf.control := buf.control; 23300 708 197 ! ! ! ! ! ! ! ! ! ! ! call_buf.alarm_mess := buf.alarm_mess; 23310 709 198 ! ! ! ! ! ! ! ! ! ! END; 23320 710 199 ! ! ! ! ! ! ! ! ! ! 23330 711 200 ! ! ! ! ! ! ! ! ! ! signal( ref, netc_sem^); 23340 712 201 ! ! ! ! ! ! ! ! ! END 23350 713 202 ! ! ! ! ! ! ! ! ! ELSE 23360 714 203 ! ! ! ! ! ! ! ! ! BEGIN 23370 715 204 ! ! ! ! ! ! ! ! ! ! signal( ref, ric_pool); 23380 716 205 ! ! ! ! ! ! ! ! ! ! testout(z,t_33, 0); 23390 717 206 ! ! ! ! ! ! ! ! ! END 23400 718 207 ! ! ! ! ! ! ! ! END 23410 719 208 ! ! ! ! ! ! ! ! ELSE 23420 720 209 ! ! ! ! ! ! ! ! testout(z,t_34, 0); 23430 721 210 ! ! ! ! ! ! ! END; 23440 722 211 ! ! ! ! ! ! ! \f tsdtelst 81.06.15. 15.39. page 28 24010 723 212 ! ! ! ! ! ! ! dte_clr : 24020 724 213 ! ! ! ! ! ! ! (* call clear from remote user *) 24030 725 214 ! ! ! ! ! ! ! BEGIN 24040 726 215 ! ! ! ! ! ! ! ! IF tst>64 THEN 24050 727 216 ! ! ! ! ! ! ! ! BEGIN 24060 728 217 ! ! ! ! ! ! ! ! ! testout(z,t_35, dte_clr); 24070 729 218 ! ! ! ! ! ! ! ! END; 24080 730 219 ! ! ! ! ! ! ! ! 24090 731 220 ! ! ! ! ! ! ! ! (* send diag-code to local user *) 24100 732 221 ! ! ! ! ! ! ! ! 24110 733 222 ! ! ! ! ! ! ! ! sensesem( ref, streams( act_stream_no).receive_queue); 24120 734 223 ! ! ! ! ! ! ! ! 24130 735 224 ! ! ! ! ! ! ! ! WHILE NOT nil( ref) DO 24140 736 225 ! ! ! ! ! ! ! ! BEGIN 24150 737 226 ! ! ! ! ! ! ! ! ! ref^.u2 := dte_remo_clear; 24160 738 227 ! ! ! ! ! ! ! ! ! 24170 739 228 ! ! ! ! ! ! ! ! ! LOCK ref AS dte_buf : dte_sdata_data DO 24180 740 229 ! ! ! ! ! ! ! ! ! dte_buf.control := buf.control; 24190 741 230 ! ! ! ! ! ! ! ! ! 24200 742 231 ! ! ! ! ! ! ! ! ! signal( ref, netc_sem^); 24210 743 232 ! ! ! ! ! ! ! ! ! streams(act_stream_no).l_rec_q := streams(act_stream_no).l_rec_q -1; 24220 744 233 ! ! ! ! ! ! ! ! ! sensesem( ref, streams(act_stream_no).receive_queue); 24230 745 234 ! ! ! ! ! ! ! ! END; 24240 746 235 ! ! ! ! ! ! ! ! 24250 747 236 ! ! ! ! ! ! ! ! 24260 748 237 ! ! ! ! ! ! ! ! IF streams( act_stream_no).state = clearing THEN 24270 749 238 ! ! ! ! ! ! ! ! streams( act_stream_no).state := free 24280 750 239 ! ! ! ! ! ! ! ! ELSE 24290 751 240 ! ! ! ! ! ! ! ! BEGIN 24300 752 241 ! ! ! ! ! ! ! ! ! get_transmit_buf( rut_buf_ref); 24310 753 242 ! ! ! ! ! ! ! ! ! 24320 754 243 ! ! ! ! ! ! ! ! ! IF NOT nil( rut_buf_ref) THEN 24330 755 244 ! ! ! ! ! ! ! ! ! BEGIN 24340 756 245 ! ! ! ! ! ! ! ! ! ! LOCK rut_buf_ref AS rut_buf : rut_trp_pdata DO 24350 757 246 ! ! ! ! ! ! ! ! ! ! WITH rut_buf DO 24360 758 247 ! ! ! ! ! ! ! ! ! ! BEGIN 24370 759 248 ! ! ! ! ! ! ! ! ! ! ! WITH phead DO 24380 760 249 ! ! ! ! ! ! ! ! ! ! ! BEGIN 24390 761 250 ! ! ! ! ! ! ! ! ! ! ! ! dst := streams(act_stream_no).dst; 24400 762 251 ! ! ! ! ! ! ! ! ! ! ! ! facility := streams(act_stream_no).facility; 24410 763 252 ! ! ! ! ! ! ! ! ! ! ! ! user_field := dte_clr * 256 + streams(act_stream_no).dst_stream; 24420 764 253 ! ! ! ! ! ! ! ! ! ! ! END; 24430 765 254 ! ! ! ! ! ! ! ! ! ! ! control.op_code := dte_user_clear; 24440 766 255 ! ! ! ! ! ! ! ! ! ! ! control.data := 0; 24450 767 256 ! ! ! ! ! ! ! ! ! ! END; 24460 768 257 ! ! ! ! ! ! ! ! ! ! signal( rut_buf_ref, rut_trm_sem^); \f tsdtelst 81.06.15. 15.39. page 29 24470 769 258 ! ! ! ! ! ! ! ! ! END 24480 770 259 ! ! ! ! ! ! ! ! ! ELSE 24490 771 260 ! ! ! ! ! ! ! ! ! testout(z,t_14,2); 24500 772 261 ! ! ! ! ! ! ! ! ! 24510 773 262 ! ! ! ! ! ! ! ! ! clear_stream_table( act_stream_no); 24520 774 263 ! ! ! ! ! ! ! ! END; 24530 775 264 ! ! ! ! ! ! ! ! 24540 776 265 ! ! ! ! ! ! ! END; 24550 777 266 ! ! ! ! ! ! ! \f tsdtelst 81.06.15. 15.39. page 30 25010 778 267 ! ! ! ! ! ! ! dte_aic : 25020 779 268 ! ! ! ! ! ! ! (* call accept from remote user *) 25030 780 269 ! ! ! ! ! ! ! BEGIN 25040 781 270 ! ! ! ! ! ! ! ! IF tst>64 THEN 25050 782 271 ! ! ! ! ! ! ! ! BEGIN 25060 783 272 ! ! ! ! ! ! ! ! ! testout(z,t_36, dte_aic); 25070 784 273 ! ! ! ! ! ! ! ! END; 25080 785 274 ! ! ! ! ! ! ! ! 25090 786 275 ! ! ! ! ! ! ! ! streams( act_stream_no).dst_stream := buf.control.data; 25100 787 276 ! ! ! ! ! ! ! END; 25110 788 277 ! ! ! ! ! ! ! 25120 789 278 ! ! ! ! ! ! ! 25130 790 279 ! ! ! ! ! ! ! dte_rejic : 25140 791 280 ! ! ! ! ! ! ! (* call reject from remote user *) 25150 792 281 ! ! ! ! ! ! ! BEGIN 25160 793 282 ! ! ! ! ! ! ! ! IF tst>64 THEN 25170 794 283 ! ! ! ! ! ! ! ! BEGIN 25180 795 284 ! ! ! ! ! ! ! ! ! testout(z,t_37,dte_rejic); 25190 796 285 ! ! ! ! ! ! ! ! END; 25200 797 286 ! ! ! ! ! ! ! ! 25210 798 287 ! ! ! ! ! ! ! ! streams( act_stream_no).diag_code := buf.control.data; 25220 799 288 ! ! ! ! ! ! ! ! sensesem( ref, streams( act_stream_no).receive_queue); 25230 800 289 ! ! ! ! ! ! ! ! 25240 801 290 ! ! ! ! ! ! ! ! IF NOT nil( ref) THEN 25250 802 291 ! ! ! ! ! ! ! ! BEGIN 25260 803 292 ! ! ! ! ! ! ! ! ! LOCK ref AS dte_buf : dte_sdata_data DO 25270 804 293 ! ! ! ! ! ! ! ! ! BEGIN 25280 805 294 ! ! ! ! ! ! ! ! ! ! ref^.u2 := dte_remo_clear; 25290 806 295 ! ! ! ! ! ! ! ! ! ! dte_buf.control := buf.control; 25300 807 296 ! ! ! ! ! ! ! ! ! END; 25310 808 297 ! ! ! ! ! ! ! ! ! signal( ref, netc_sem^); 25320 809 298 ! ! ! ! ! ! ! ! ! streams(act_stream_no).l_rec_q := streams(act_stream_no).l_rec_q -1; 25330 810 299 ! ! ! ! ! ! ! ! ! sensesem( ref, streams( act_stream_no).receive_queue); 25340 811 300 ! ! ! ! ! ! ! ! END; 25350 812 301 ! ! ! ! ! ! ! ! 25360 813 302 ! ! ! ! ! ! ! ! WHILE NOT nil( ref) DO 25370 814 303 ! ! ! ! ! ! ! ! BEGIN 25380 815 304 ! ! ! ! ! ! ! ! ! ref^.u2 := dte_remo_clear; 25390 816 305 ! ! ! ! ! ! ! ! ! signal( ref, netc_sem^); 25400 817 306 ! ! ! ! ! ! ! ! ! streams(act_stream_no).l_rec_q := streams(act_stream_no).l_rec_q -1; 25410 818 307 ! ! ! ! ! ! ! ! ! sensesem( ref, streams( act_stream_no).receive_queue); 25420 819 308 ! ! ! ! ! ! ! ! END; 25430 820 309 ! ! ! ! ! ! ! END; 25440 821 310 ! ! ! ! ! ! ! 25450 822 311 ! ! ! ! ! ! ! \f tsdtelst 81.06.15. 15.39. page 31 26010 823 312 ! ! ! ! ! ! ! dte_sdata : 26020 824 313 ! ! ! ! ! ! ! (* data from remote user *) 26030 825 314 ! ! ! ! ! ! ! BEGIN 26040 826 315 ! ! ! ! ! ! ! ! IF tst>64 THEN 26050 827 316 ! ! ! ! ! ! ! ! BEGIN 26060 828 317 ! ! ! ! ! ! ! ! ! testout(z,t_38, dte_sdata); 26070 829 318 ! ! ! ! ! ! ! ! END; 26080 830 319 ! ! ! ! ! ! ! ! sensesem( ref, streams( act_stream_no).receive_queue); 26090 831 320 ! ! ! ! ! ! ! ! 26100 832 321 ! ! ! ! ! ! ! ! IF NOT nil( ref) THEN 26110 833 322 ! ! ! ! ! ! ! ! BEGIN 26120 834 323 ! ! ! ! ! ! ! ! ! ref^.u2 := dte_ok_result; 26130 835 324 ! ! ! ! ! ! ! ! ! 26140 836 325 ! ! ! ! ! ! ! ! ! LOCK ref AS dte_buf : dte_sdata_data DO 26150 837 326 ! ! ! ! ! ! ! ! ! BEGIN 26160 838 327 ! ! ! ! ! ! ! ! ! ! dte_buf.control := buf.control; 26170 839 328 ! ! ! ! ! ! ! ! ! ! dte_buf.alarm_mess := buf.alarm_mess; 26180 840 329 ! ! ! ! ! ! ! ! ! ! 26190 841 330 ! ! ! ! ! ! ! ! ! ! dte_buf.first := sdata_first_val; 26200 842 331 ! ! ! ! ! ! ! ! ! ! dte_buf.last := dte_buf.first + l_control+l_listen-1; 26210 843 332 ! ! ! ! ! ! ! ! ! ! 26220 844 333 ! ! ! ! ! ! ! ! ! END; 26230 845 334 ! ! ! ! ! ! ! ! ! 26240 846 335 ! ! ! ! ! ! ! ! ! streams(act_stream_no).l_rec_q := streams(act_stream_no).l_rec_q -1; 26250 847 336 ! ! ! ! ! ! ! ! ! signal( ref, netc_sem^); 26260 848 337 ! ! ! ! ! ! ! ! END 26270 849 338 ! ! ! ! ! ! ! ! ELSE 26280 850 339 ! ! ! ! ! ! ! ! IF tst>64 THEN 26290 851 340 ! ! ! ! ! ! ! ! testout( z, t_39, act_stream_no); 26300 852 341 ! ! ! ! ! ! ! END 26310 853 342 ! ! ! ! ! ! ! OTHERWISE 26320 854 343 ! ! ! ! ! ! ! BEGIN 26330 855 344 ! ! ! ! ! ! ! ! IF tst>64 THEN 26340 856 345 ! ! ! ! ! ! ! ! testout(z,t_40, act_user_field); 26350 857 346 ! ! ! ! ! ! ! END; 26360 858 347 ! ! ! ! ! ! ! 26370 859 348 ! ! ! ! ! ! ! 26380 860 349 ! ! ! ! ! ! END (* case *); 26390 861 350 ! ! ! ! ! ! 26400 862 351 ! ! ! ! ! END (* lock in_ref *); 26410 863 352 ! ! ! ! ! 26420 864 353 ! ! ! ! ! in_ref^.u2 := rut_default; 26430 865 354 ! ! ! ! ! signal( in_ref, rut_rec_sem^); 26440 866 355 ! ! ! ! ! 26450 867 356 ! ! ! ! END; 26460 868 357 ! ! ! ! \f tsdtelst 81.06.15. 15.39. page 32 27010 869 358 ! ! ! ! rut_stat : 27020 870 359 ! ! ! ! (*---------- status ----------*) 27030 871 360 ! ! ! ! BEGIN 27040 872 361 ! ! ! ! ! IF tst>64 THEN 27050 873 362 ! ! ! ! ! testout(z,t_41,0); 27060 874 363 ! ! ! ! END; 27070 875 364 ! ! ! ! 27080 876 365 ! ! ! ! OTHERWISE 27090 877 366 ! ! ! ! (*---------- unknown router-function ----------*) 27100 878 367 ! ! ! ! BEGIN 27110 879 368 ! ! ! ! ! IF tst>64 THEN 27120 880 369 ! ! ! ! ! testout(z,t_42,0); 27130 881 370 ! ! ! ! END 27140 882 371 ! ! ! END; (* case router-functions *) 27150 883 372 ! ! END 27160 884 373 ! ! ELSE 27170 885 374 ! ! BEGIN 27180 886 375 ! ! ! IF tst>16 THEN 27190 887 376 ! ! ! BEGIN 27200 888 377 ! ! ! ! testout(z,t_43,in_ref^.u1); 27210 889 378 ! ! ! ! testout(z,t_44, in_ref^.u2); 27220 890 379 ! ! ! ! testout(z,t_45,in_ref^.u3); 27230 891 380 ! ! ! END; 27240 892 381 ! ! ! 27250 893 382 ! ! ! signal( in_ref, pax_pool_sem.s^); 27260 894 383 ! ! END 27270 895 384 ! ! 27280 896 385 ! ! \f tsdtelst 81.06.15. 15.39. page 33 28010 897 386 ! ! ELSE 28020 898 387 ! ! IF in_ref^.u4 = to_link THEN 28030 899 388 ! ! (*--------------------------------------------------- 28040 900 389 ! ! . buffer from NETCON 28050 901 390 ! ! -----------------------------------------------------*) 28060 902 391 ! ! BEGIN 28070 903 392 ! ! ! IF ((in_ref^.u3 < min_stream_no) OR (in_ref^.u3 > max_stream_no)) 28080 904 393 ! ! ! AND (in_ref^.u1 <> dte_ric) AND (in_ref^.u1 <> dte_rejic) THEN 28090 905 394 ! ! ! BEGIN 28100 906 395 ! ! ! ! in_ref^.u2 := dte_stream_err; 28110 907 396 ! ! ! ! signal( in_ref, netc_sem^); 28120 908 397 ! ! ! END 28130 909 398 ! ! ! ELSE 28140 910 399 ! ! ! CASE in_ref^.u1 OF 28150 911 400 ! ! ! ! 28160 912 401 ! ! ! ! dte_car : 28170 913 402 ! ! ! ! (* call from local user *) 28180 914 403 ! ! ! ! BEGIN 28190 915 404 ! ! ! ! ! IF tst>64 THEN 28200 916 405 ! ! ! ! ! BEGIN 28210 917 406 ! ! ! ! ! ! testout(z,t_46,1); 28220 918 407 ! ! ! ! ! END; 28230 919 408 ! ! ! ! ! 28240 920 409 ! ! ! ! ! get_transmit_buf( rut_buf_ref); 28250 921 410 ! ! ! ! ! act_stream_no := in_ref^.u3; 28260 922 411 ! ! ! ! ! 28270 923 412 ! ! ! ! ! act_destination; 28280 924 413 ! ! ! ! ! IF tst>64 THEN 28290 925 414 ! ! ! ! ! BEGIN 28300 926 415 ! ! ! ! ! ! testout(z,t_47,address(act_dst)); 28310 927 416 ! ! ! ! ! END; 28320 928 417 ! ! ! ! ! 28330 929 418 ! ! ! ! ! IF NOT nil( rut_buf_ref) THEN 28340 930 419 ! ! ! ! ! BEGIN 28350 931 420 ! ! ! ! ! ! 28360 932 421 ! ! ! ! ! ! LOCK in_ref AS dte_buf : car_buf_type DO 28370 933 422 ! ! ! ! ! ! 28380 934 423 ! ! ! ! ! ! LOCK rut_buf_ref AS rut_buf : rut_trp_pdata DO 28390 935 424 ! ! ! ! ! ! BEGIN 28400 936 425 ! ! ! ! ! ! ! WITH rut_buf.phead DO 28410 937 426 ! ! ! ! ! ! ! BEGIN 28420 938 427 ! ! ! ! ! ! ! ! dst := act_dst; 28430 939 428 ! ! ! ! ! ! ! ! facility := dte_buf.call_buf.facility; 28440 940 429 ! ! ! ! ! ! ! ! streams( act_stream_no).facility := facility; 28450 941 430 ! ! ! ! ! ! ! ! user_field := dte_car * 256 + act_stream_no; 28460 942 431 ! ! ! ! ! ! ! ! top_of_data := top_of_data + dte_buf.call_buf.alarm_mess.al.no_of_by+2; \f tsdtelst 81.06.15. 15.39. page 34 28470 943 432 ! ! ! ! ! ! ! END; 28480 944 433 ! ! ! ! ! ! ! 28490 945 434 ! ! ! ! ! ! ! rut_buf.control := dte_buf.call_buf.control; 28500 946 435 ! ! ! ! ! ! ! rut_buf.alarm_mess := dte_buf.call_buf.alarm_mess; 28510 947 436 ! ! ! ! ! ! ! rut_buf.rut_prefix.last := rut_buf.rut_prefix.last 28520 948 437 ! ! ! ! ! ! ! + dte_buf.call_buf.alarm_mess.al.no_of_by+2; 28530 949 438 ! ! ! ! ! ! END; 28540 950 439 ! ! ! ! ! ! 28550 951 440 ! ! ! ! ! ! signal( rut_buf_ref, rut_trm_sem^); 28560 952 441 ! ! ! ! ! END 28570 953 442 ! ! ! ! ! ELSE 28580 954 443 ! ! ! ! ! testout(z,t_14,3); 28590 955 444 ! ! ! ! ! 28600 956 445 ! ! ! ! ! IF nil( streams( act_stream_no).car_ref) THEN 28610 957 446 ! ! ! ! ! streams( act_stream_no).car_ref :=: in_ref 28620 958 447 ! ! ! ! ! ELSE 28630 959 448 ! ! ! ! ! BEGIN 28640 960 449 ! ! ! ! ! ! in_ref^.u2 := dte_ok_result; 28650 961 450 ! ! ! ! ! ! signal( in_ref, netc_sem^); 28660 962 451 ! ! ! ! ! END; 28670 963 452 ! ! ! ! ! streams( act_stream_no).dst := act_dst; 28680 964 453 ! ! ! ! ! 28690 965 454 ! ! ! ! ! IF tst>32 THEN 28700 966 455 ! ! ! ! ! write_stream( act_stream_no); 28710 967 456 ! ! ! ! END; 28720 968 457 ! ! ! ! \f tsdtelst 81.06.15. 15.39. page 35 29010 969 458 ! ! ! ! dte_clr : 29020 970 459 ! ! ! ! (* clear call from local user *) 29030 971 460 ! ! ! ! BEGIN 29040 972 461 ! ! ! ! ! IF tst>64 THEN 29050 973 462 ! ! ! ! ! BEGIN 29060 974 463 ! ! ! ! ! ! testout(z,t_48, 1); 29070 975 464 ! ! ! ! ! END; 29080 976 465 ! ! ! ! ! 29090 977 466 ! ! ! ! ! LOCK in_ref AS dte_buf : clear_buf_type DO 29100 978 467 ! ! ! ! ! act_diag_code := dte_buf.diag_code; 29110 979 468 ! ! ! ! ! 29120 980 469 ! ! ! ! ! (* send diag-code to remote dte *) 29130 981 470 ! ! ! ! ! 29140 982 471 ! ! ! ! ! get_transmit_buf( rut_buf_ref); 29150 983 472 ! ! ! ! ! 29160 984 473 ! ! ! ! ! IF NOT nil( rut_buf_ref) THEN 29170 985 474 ! ! ! ! ! BEGIN 29180 986 475 ! ! ! ! ! ! LOCK rut_buf_ref AS rut_buf : rut_trp_pdata DO 29190 987 476 ! ! ! ! ! ! WITH rut_buf DO 29200 988 477 ! ! ! ! ! ! BEGIN 29210 989 478 ! ! ! ! ! ! ! WITH phead DO 29220 990 479 ! ! ! ! ! ! ! BEGIN 29230 991 480 ! ! ! ! ! ! ! ! dst := streams( in_ref^.u3).dst; 29240 992 481 ! ! ! ! ! ! ! ! facility := streams( in_ref^.u3).facility; 29250 993 482 ! ! ! ! ! ! ! ! user_field := dte_clr *256 + streams( in_ref^.u3).dst_stream; 29260 994 483 ! ! ! ! ! ! ! END; 29270 995 484 ! ! ! ! ! ! ! control.op_code := dte_clr; 29280 996 485 ! ! ! ! ! ! ! control.data := act_diag_code; 29290 997 486 ! ! ! ! ! ! END; 29300 998 487 ! ! ! ! ! ! signal( rut_buf_ref, rut_trm_sem^); 29310 999 488 ! ! ! ! ! END 29320 1000 489 ! ! ! ! ! ELSE 29330 1001 490 ! ! ! ! ! testout(z,t_14,4); 29340 1002 491 ! ! ! ! ! 29350 1003 492 ! ! ! ! ! (* clear stream table *) 29360 1004 493 ! ! ! ! ! 29370 1005 494 ! ! ! ! ! clear_stream_table( in_ref^.u3); 29380 1006 495 ! ! ! ! ! 29390 1007 496 ! ! ! ! ! 29400 1008 497 ! ! ! ! ! (* return clear call buffer *) 29410 1009 498 ! ! ! ! ! in_ref^.u2 := dte_ok_result; 29420 1010 499 ! ! ! ! ! signal( in_ref, netc_sem^); 29430 1011 500 ! ! ! ! END; 29440 1012 501 ! ! ! ! \f tsdtelst 81.06.15. 15.39. page 36 30010 1013 502 ! ! ! ! dte_ric : 30020 1014 503 ! ! ! ! (* local user ready for receive call *) 30030 1015 504 ! ! ! ! BEGIN 30040 1016 505 ! ! ! ! ! IF tst>64 THEN 30050 1017 506 ! ! ! ! ! BEGIN 30060 1018 507 ! ! ! ! ! ! testout(z,t_49,1); 30070 1019 508 ! ! ! ! ! END; 30080 1020 509 ! ! ! ! ! signal( in_ref, ric_pool); 30090 1021 510 ! ! ! ! END; 30100 1022 511 ! ! ! ! 30110 1023 512 ! ! ! ! 30120 1024 513 ! ! ! ! dte_rdata : 30130 1025 514 ! ! ! ! (* local user ready for receive data *) 30140 1026 515 ! ! ! ! IF streams(in_ref^.u3).l_rec_q <= windowsize THEN 30150 1027 516 ! ! ! ! BEGIN 30160 1028 517 ! ! ! ! ! act_stream_no := in_ref^.u3; 30170 1029 518 ! ! ! ! ! WITH streams( in_ref^.u3) DO 30180 1030 519 ! ! ! ! ! BEGIN 30190 1031 520 ! ! ! ! ! ! count( l_rec_q); 30200 1032 521 ! ! ! ! ! ! IF tst>64 THEN 30210 1033 522 ! ! ! ! ! ! testout(z,t_50, l_rec_q); 30220 1034 523 ! ! ! ! ! END; 30230 1035 524 ! ! ! ! ! signal( in_ref, streams( act_stream_no).receive_queue); 30240 1036 525 ! ! ! ! END 30250 1037 526 ! ! ! ! ELSE 30260 1038 527 ! ! ! ! signal( in_ref, pax_pool_sem.s^); 30270 1039 528 ! ! ! ! 30280 1040 529 ! ! ! ! \f tsdtelst 81.06.15. 15.39. page 37 31010 1041 530 ! ! ! ! dte_sdata : 31020 1042 531 ! ! ! ! (* local user sends data *) 31030 1043 532 ! ! ! ! BEGIN 31040 1044 533 ! ! ! ! ! 31050 1045 534 ! ! ! ! ! get_transmit_buf( rut_buf_ref); 31060 1046 535 ! ! ! ! ! act_stream_no := in_ref^.u3; 31070 1047 536 ! ! ! ! ! 31080 1048 537 ! ! ! ! ! IF NOT nil( rut_buf_ref) THEN 31090 1049 538 ! ! ! ! ! BEGIN 31100 1050 539 ! ! ! ! ! ! LOCK in_ref AS dte_buf : dte_sdata_data DO 31110 1051 540 ! ! ! ! ! ! LOCK rut_buf_ref AS rut_buf : rut_trp_pdata DO 31120 1052 541 ! ! ! ! ! ! BEGIN 31130 1053 542 ! ! ! ! ! ! ! WITH rut_buf.phead DO 31140 1054 543 ! ! ! ! ! ! ! BEGIN 31150 1055 544 ! ! ! ! ! ! ! ! dst := streams( act_stream_no).dst; 31160 1056 545 ! ! ! ! ! ! ! ! facility := streams( act_stream_no).facility; 31170 1057 546 ! ! ! ! ! ! ! ! user_field := dte_sdata * 256 + streams( act_stream_no).dst_stream; 31180 1058 547 ! ! ! ! ! ! ! ! top_of_data := top_of_data + dte_buf.alarm_mess.al.no_of_by+2; 31190 1059 548 ! ! ! ! ! ! ! END; 31200 1060 549 ! ! ! ! ! ! ! 31210 1061 550 ! ! ! ! ! ! ! rut_buf.control := dte_buf.control; 31220 1062 551 ! ! ! ! ! ! ! rut_buf.alarm_mess := dte_buf.alarm_mess; 31230 1063 552 ! ! ! ! ! ! ! rut_buf.rut_prefix.last := rut_buf.rut_prefix.last 31240 1064 553 ! ! ! ! ! ! ! + dte_buf.alarm_mess.al.no_of_by+2; 31250 1065 554 ! ! ! ! ! ! ! 31260 1066 555 ! ! ! ! ! ! ! IF tst>64 THEN 31270 1067 556 ! ! ! ! ! ! ! testout(z,t_51,act_stream_no); 31280 1068 557 ! ! ! ! ! ! ! 31290 1069 558 ! ! ! ! ! ! ! 31300 1070 559 ! ! ! ! ! ! END; 31310 1071 560 ! ! ! ! ! ! 31320 1072 561 ! ! ! ! ! ! signal( rut_buf_ref, rut_trm_sem^); 31330 1073 562 ! ! ! ! ! END 31340 1074 563 ! ! ! ! ! ELSE 31350 1075 564 ! ! ! ! ! testout(z,t_14,5); 31360 1076 565 ! ! ! ! ! 31370 1077 566 ! ! ! ! ! in_ref^.u2 := dte_ok_result; 31380 1078 567 ! ! ! ! ! signal( in_ref, netc_sem^); 31390 1079 568 ! ! ! ! END; 31400 1080 569 ! ! ! ! \f tsdtelst 81.06.15. 15.39. page 38 32010 1081 570 ! ! ! ! dte_aic : 32020 1082 571 ! ! ! ! (* local user accepts a call *) 32030 1083 572 ! ! ! ! BEGIN 32040 1084 573 ! ! ! ! ! IF tst>64 THEN 32050 1085 574 ! ! ! ! ! BEGIN 32060 1086 575 ! ! ! ! ! ! testout(z,t_52,1); 32070 1087 576 ! ! ! ! ! END; 32080 1088 577 ! ! ! ! ! 32090 1089 578 ! ! ! ! ! get_transmit_buf( rut_buf_ref); 32100 1090 579 ! ! ! ! ! act_stream_no := in_ref^.u3; 32110 1091 580 ! ! ! ! ! 32120 1092 581 ! ! ! ! ! IF NOT nil( rut_buf_ref) THEN 32130 1093 582 ! ! ! ! ! BEGIN 32140 1094 583 ! ! ! ! ! ! LOCK in_ref AS dte_buf : aic_buf_type DO 32150 1095 584 ! ! ! ! ! ! LOCK rut_buf_ref AS rut_buf : rut_trp_pdata DO 32160 1096 585 ! ! ! ! ! ! BEGIN 32170 1097 586 ! ! ! ! ! ! ! call_to_stream( dte_buf.aic_id, act_stream_no); 32180 1098 587 ! ! ! ! ! ! ! 32190 1099 588 ! ! ! ! ! ! ! WITH rut_buf.phead DO 32200 1100 589 ! ! ! ! ! ! ! BEGIN 32210 1101 590 ! ! ! ! ! ! ! ! dst := streams( act_stream_no).dst; 32220 1102 591 ! ! ! ! ! ! ! ! facility := streams( act_stream_no).facility; 32230 1103 592 ! ! ! ! ! ! ! ! user_field := dte_aic * 256 + streams( act_stream_no).dst_stream; 32240 1104 593 ! ! ! ! ! ! ! END; 32250 1105 594 ! ! ! ! ! ! ! 32260 1106 595 ! ! ! ! ! ! ! 32270 1107 596 ! ! ! ! ! ! ! rut_buf.control.data := act_stream_no; 32280 1108 597 ! ! ! ! ! ! END; 32290 1109 598 ! ! ! ! ! ! 32300 1110 599 ! ! ! ! ! ! signal( rut_buf_ref, rut_trm_sem^); 32310 1111 600 ! ! ! ! ! END 32320 1112 601 ! ! ! ! ! ELSE 32330 1113 602 ! ! ! ! ! testout(z,t_14,6); 32340 1114 603 ! ! ! ! ! 32350 1115 604 ! ! ! ! ! in_ref^.u2 := dte_ok_result; 32360 1116 605 ! ! ! ! ! signal( in_ref, netc_sem^); 32370 1117 606 ! ! ! ! ! 32380 1118 607 ! ! ! ! END; 32390 1119 608 ! ! ! ! \f tsdtelst 81.06.15. 15.39. page 39 33010 1120 609 ! ! ! ! dte_rejic : 33020 1121 610 ! ! ! ! (* local user rejects a call *) 33030 1122 611 ! ! ! ! BEGIN 33040 1123 612 ! ! ! ! ! IF tst>64 THEN 33050 1124 613 ! ! ! ! ! BEGIN 33060 1125 614 ! ! ! ! ! ! testout(z,t_53,1); 33070 1126 615 ! ! ! ! ! END; 33080 1127 616 ! ! ! ! ! 33090 1128 617 ! ! ! ! ! get_transmit_buf( rut_buf_ref); 33100 1129 618 ! ! ! ! ! act_stream_no := in_ref^.u3; 33110 1130 619 ! ! ! ! ! 33120 1131 620 ! ! ! ! ! IF NOT nil( rut_buf_ref) THEN 33130 1132 621 ! ! ! ! ! BEGIN 33140 1133 622 ! ! ! ! ! ! LOCK in_ref AS dte_buf : rejic_buf_type DO 33150 1134 623 ! ! ! ! ! ! LOCK rut_buf_ref AS rut_buf : rut_trp_pdata DO 33160 1135 624 ! ! ! ! ! ! BEGIN 33170 1136 625 ! ! ! ! ! ! ! calls( dte_buf.rejic_id).used := false; 33180 1137 626 ! ! ! ! ! ! ! 33190 1138 627 ! ! ! ! ! ! ! WITH rut_buf.phead DO 33200 1139 628 ! ! ! ! ! ! ! BEGIN 33210 1140 629 ! ! ! ! ! ! ! ! dst := calls( dte_buf.rejic_id).dst; 33220 1141 630 ! ! ! ! ! ! ! ! facility := calls( dte_buf.rejic_id).facility; 33230 1142 631 ! ! ! ! ! ! ! ! user_field := dte_rejic * 256 + calls(dte_buf.rejic_id).dst_stream; 33240 1143 632 ! ! ! ! ! ! ! END; 33250 1144 633 ! ! ! ! ! ! ! 33260 1145 634 ! ! ! ! ! ! ! rut_buf.control.op_code := dte_rejic; 33270 1146 635 ! ! ! ! ! ! ! rut_buf.control.data := dte_buf.rejic_diag; 33280 1147 636 ! ! ! ! ! ! END; 33290 1148 637 ! ! ! ! ! ! 33300 1149 638 ! ! ! ! ! ! signal( rut_buf_ref, rut_trm_sem^); 33310 1150 639 ! ! ! ! ! END 33320 1151 640 ! ! ! ! ! ELSE 33330 1152 641 ! ! ! ! ! testout(z,t_14,7); 33340 1153 642 ! ! ! ! ! in_ref^.u2 := dte_ok_result; 33350 1154 643 ! ! ! ! ! signal( in_ref, netc_sem^); 33360 1155 644 ! ! ! ! ! 33370 1156 645 ! ! ! ! END; 33380 1157 646 ! ! ! ! \f tsdtelst 81.06.15. 15.39. page 40 34010 1158 647 ! ! ! ! dte_res : (* reset *) 34020 1159 648 ! ! ! ! BEGIN 34030 1160 649 ! ! ! ! ! IF tst>8 THEN 34040 1161 650 ! ! ! ! ! testout(z,t_54, in_ref^.u1); 34050 1162 651 ! ! ! ! ! in_ref^.u2 := dte_ok_result; 34060 1163 652 ! ! ! ! ! signal( in_ref, netc_sem^); 34070 1164 653 ! ! ! ! END; 34080 1165 654 ! ! ! ! 34090 1166 655 ! ! ! ! dte_stat : (* status *) 34100 1167 656 ! ! ! ! BEGIN 34110 1168 657 ! ! ! ! ! IF tst>8 THEN 34120 1169 658 ! ! ! ! ! testout(z,t_55, in_ref^.u1); 34130 1170 659 ! ! ! ! ! in_ref^.u2 := dte_ok_result; 34140 1171 660 ! ! ! ! ! signal( in_ref, netc_sem^); 34150 1172 661 ! ! ! ! END; 34160 1173 662 ! ! ! ! OTHERWISE 34170 1174 663 ! ! ! ! BEGIN 34180 1175 664 ! ! ! ! ! IF tst>8 THEN 34190 1176 665 ! ! ! ! ! testout(z,t_56, in_ref^.u1); 34200 1177 666 ! ! ! ! ! in_ref^.u2 := dte_ok_result; 34210 1178 667 ! ! ! ! ! signal( in_ref, netc_sem^); 34220 1179 668 ! ! ! ! END; 34230 1180 669 ! ! ! END; 34240 1181 670 ! ! END 34250 1182 671 ! ! ELSE 34260 1183 672 ! ! IF in_ref^.u4 = dyn_test THEN 34270 1184 673 ! ! BEGIN 34280 1185 674 ! ! ! tst := in_ref^.u3; 34290 1186 675 ! ! ! CASE in_ref^.u2 OF 34300 1187 676 ! ! ! ! 1 : LOCK in_ref AS buf : RECORD 34310 1188 677 ! ! ! ! ! l_r_q : integer; 34320 1189 678 ! ! ! ! ! d_s : byte; 34330 1190 679 ! ! ! ! ! d : int_pax_addr; 34340 1191 680 ! ! ! ! ! f : integer; 34350 1192 681 ! ! ! ! ! p,di : byte; 34360 1193 682 ! ! ! ! END DO 34370 1194 683 ! ! ! ! WITH buf DO 34380 1195 684 ! ! ! ! WITH streams(in_ref^.u1) DO 34390 1196 685 ! ! ! ! BEGIN 34400 1197 686 ! ! ! ! ! l_r_q := l_rec_q; 34410 1198 687 ! ! ! ! ! d_s := dst_stream; 34420 1199 688 ! ! ! ! ! d := dst; 34430 1200 689 ! ! ! ! ! f := facility; 34440 1201 690 ! ! ! ! ! p := priority; 34450 1202 691 ! ! ! ! ! di := diag_code; 34460 1203 692 ! ! ! ! END; \f tsdtelst 81.06.15. 15.39. page 41 34470 1204 693 ! ! ! ! 2 : LOCK in_ref AS buf : calls_e DO 34480 1205 694 ! ! ! ! WITH calls( in_ref^.u1) DO 34490 1206 695 ! ! ! ! BEGIN 34500 1207 696 ! ! ! ! ! buf.dst := dst; 34510 1208 697 ! ! ! ! ! buf.dst_stream := dst_stream; 34520 1209 698 ! ! ! ! ! buf.used := used; 34530 1210 699 ! ! ! ! ! buf.facility := facility; 34540 1211 700 ! ! ! ! END; 34550 1212 701 ! ! ! END; 34560 1213 702 ! ! ! signal( in_ref, pax_pool_sem.s^); 34570 1214 703 ! ! END 34580 1215 704 ! ! ELSE 34590 1216 705 ! ! BEGIN 34600 1217 706 ! ! ! IF tst>8 THEN 34610 1218 707 ! ! ! testout(z,t_57, in_ref^.u4); 34620 1219 708 ! ! ! release( in_ref); 34630 1220 709 ! ! END; 34640 1221 710 ! ! 34650 1222 711 ! UNTIL false; 34660 1223 712 ! 34670 1224 713 END. 34680 1225 \f tsdtelst 81.06.15. 15.39. page 42 0 175* 177* 179* 182* 358 359 359 359 359 360 361 400 408 449 451 451 451 451 452 475* 482 483 521 522 523 523 523 523 524 525 535 583 588 593 623 657 716 720 766 873 880 1 56* 165* 275* 287 289 295 299 376 391 420 426 442 455 464 480 532 556 701 743 809 817 842 846 917 974 1018 1086 1125 1187: 2 559 771 942 948 1058 1064 1204: 3 485 954 4 214 663 1001 5 1075 6 1113 7 1152 8 630 656 1160 1168 1175 1217 10 228 15 480 499 502 16 579 605 613 622 886 32 314 331 347 669 965 64 487 504 690 726 781 793 826 850 855 872 879 915 924 972 1016 1032 1066 1084 1123 100 227 128 378 407 428 463 555 255 184* 256 665 666 763 941 993 1057 1103 1142 1000 226 act_call_no 172* 270* 312= 687 702 act_destination <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 468* 923 act_diag_code <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 174* 978= 996 act_dst 170* 284 307 482 483 484 485 667= 671 704 926 938 963 act_pac_state <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 175* 662= 664 act_result 173* act_stream_no <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 169* 284 306 666= 674 733 743 743 744 748 749 761 762 763 773 786 798 799 809 809 810 817 817 818 830 846 846 851 921= 940 941 956 957 963 966 1028= 1035 1046= 1055 1056 1057 1067 1090= 1097 1101 1102 1103 1107 1129= act_user_field <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 171* 665= 673 677 856 address 223* 225= 247 264 671 926 adr 223* 226 227 228 229 aic_buf_type 1094 aic_id 1097 al 942 948 1058 1064 \f tsdtelst 81.06.15. 15.39. page 43 alarm_mess 708= 708 839= 839 942 946= 946 948 1058 1062= 1062 1064 al_env_version <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 514 as 386: 436: 478: 550: 659: 697: 739: 756: 803: 836: 932: 934: 977: 986: 1050: 1051: 1094: 1095: 1133: 1134: 1187: 1204: boolean 147* 270* 276* buf 386: 388 395 550: 551 659: 662 665 666 667 706 707 708 740 786 798 806 838 839 1187: 1194 1204: 1207 1208 1209 1210 byte 135* 139* 140* 146* 173* 174* 175* 184* 233* 253* 320* 342* 412* 1189 1192 calls 165* 258 283 284 284 298 305 306 307 327 328 329 338 534 535 1136 1140 1141 1142 1205 calls_e 143* 165* 1204 call_buf 479 703 704 705 706 707 708 939 942 945 946 948 call_id 702= call_index 319* 327 328 329 333 338 call_resources <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 269* 278= 310= 687 call_to_stream <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 318* 1097 car_buf_type 478 932 car_ref 132* 241 352 354 355 956 957= clearing 362 748 clear_buf_type <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 977 clear_stream_table <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 341* 773 1005 control 707= 707 740= 740 765 766 786 798 806= 806 838= 838 945= 945 995 996 1061= 1061 1107 1145 1146 count 1031 cur_facility 182* 454 d 1190: 1199= data 766= 786 798 996= 1107= 1146= di 1192: 1202= diag_code 140* 248 361= 525= 798= 978 1202 dst 136* 145* 247 264 284 307= 328= 328 359= 451= 523= 761= 761 938= 963= 991= 991 1055= 1055 1101= 1101 1140= 1140 1199 1207= 1207 dst_stream 135* 146* 246 265 284 306= 327= 327 358= 522= 763 786= 993 1057 1103 1142 1198 1208= 1208 dtesimulator 2* dte_adr 13* 392 401 443 453 479 551 704= dte_adr_l 703= dte_aic 778: 783 1081: 1103 dte_buf 478: 479 739: 740 803: 806 836: 838 839 841 842 842 932: 939 942 945 946 948 977: 978 1050: 1058 1061 1062 1064 1094: 1097 1133: 1136 1140 1141 1142 1146 \f tsdtelst 81.06.15. 15.39. page 44 dte_car 679: 692 912: 941 dte_clr 723: 728 763 969: 993 995 dte_ok_result <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 695 834 960 1009 1077 1115 1153 1162 1170 1177 dte_rdata 1024: dte_rejic 790: 795 904 1120: 1142 1145 dte_remo_clear <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 737 805 815 dte_res 1158: dte_ric 904 1013: dte_sdata 823: 828 1041: 1057 dte_sdata_data <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 739 803 836 1050 dte_sem 6* 563 dte_stat 1166: dte_stream_err <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 906 dte_user_clear <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 354 765 dummy_route 212 dyn_test 1183 d_s 1189: 1198= external_addr <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 491* 500= 502= 704 ext_addr 229 392 443 485= 551 ext_no 392= 443= 551= ext_pax_addr 493* f 1191: 1200= facility 137* 148* 329= 329 360= 454= 524= 535= 706= 706 762= 762 939= 939 940= 940 992= 992 1056= 1056 1102= 1102 1141= 1141 1200 1210= 1210 facility_l 705= false 276* 310 338 534 1136 1222 first 390= 441= 442 455 700= 841= 842 format 397= 448= found 276* 282 285= 291 297 301= 303 free 526 749 from_link 384 434 548 566 get_transmit_buf <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 366* 752 920 982 1045 1089 1128 i 155* 233* 238 240 242 244 253* 258 261 263 275* 282 283 284 284 287= 287 289= 289 295= 297 298 299= 299 305 306 307 312 315 417* 420= 475* 479 480 480= 480 484 488 518= 519 532= 534 535 incname 513 indx 342* 348 350 \f tsdtelst 81.06.15. 15.39. page 45 integer 133* 137* 148* 155* 169* 171* 172* 177* 179* 182* 223* 270* 275* 417* 475* 1188 1191 internal_addr <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 492* 499 500 505 int_pax_addr 13* 136* 145* 170* 223* 359 451 492* 523 1190 in_ref 159* 478: 541 543 545 546 547 548 550: 553 563 566 571 574 580 596 599 606 607 614 615 624 631 650 659: 864 865 888 889 890 893 898 903 903 904 904 906 907 910 921 932: 957 960 961 977: 991 992 993 1005 1009 1010 1020 1026 1028 1029 1035 1038 1046 1050: 1077 1078 1090 1094: 1115 1116 1129 1133: 1153 1154 1161 1162 1163 1169 1170 1171 1176 1177 1178 1183 1185 1186 1187: 1195 1204: 1205 1213 1218 1219 last 391= 442= 701= 842= 947= 947 1063= 1063 lock 386: 436: 478: 550: 659: 697: 739: 756: 803: 836: 932: 934: 977: 986: 1050: 1051: 1094: 1095: 1133: 1134: 1187: 1204: l_control 391 402 701 842 l_dte_adr 703 l_facilities 705 l_listen 701 842 l_phead1 391 402 442 l_rec_q 133* 245 521= 743= 743 809= 809 817= 817 846= 846 1026 1031 1033 1197 l_rut_prefix 390 391 402 441 l_r_q 1188: 1197= max_calls 56* 165* 282 297 532 max_l_data 442 455 max_stream_no <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 56* 167* 518 903 mes_ref 200* 210 212 215 216 217 min_stream_no <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 56* 167* 518 903 netc_sem 8* 355 711 742 808 816 847 907 961 1010 1078 1116 1154 1163 1171 1178 net_addr 226 482= node_addr 228 484= 499 500 505 no_of_bufs 412* 420 no_of_by 942 948 1058 1064 no_rec_bufs 179* 426= 426 429 no_trm_bufs 177* 376= 376 379 op_code 765= 995= 1145= op_sem 3* 513 org 401= 453= 667 own 513 p 1192: 1201= packet_type 399= 450= paxnet_config <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 479 500 502 \f tsdtelst 81.06.15. 15.39. page 46 pax_pool_sem 5* 216 372 422 541 599 607 615 624 650 893 1038 1213 phead 395 446 662 665 666 667 706 759 936 989 1053 1099 1138 priority 139* 398= 449= 527= 1201 process 2* rec 436: 437 439 446 receive_queue <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 134* 733 744 799 810 818 830 1035 ref 157* 367* 372 374 381 382 383 384 386: 418* 422 424 431 432 433 434 436: 460 682 684 695 697: 711 715 733 735 737 739: 742 744 799 801 803: 805 808 810 813 815 816 818 830 832 834 836: 847 reference 132* 159* 200* 367* 418* reg_addr 227 483= rejic_buf_type <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 1133 rejic_diag 1146 rejic_id 1136 1140 1141 1142 release 1219 ric 697: 698 ric_buf_type 697 ric_first_val <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 700 701 ric_pool 163* 682 715 1020 rut_buf 756: 757 934: 936 945 946 947 947 986: 987 1051: 1053 1061 1062 1063 1063 1095: 1099 1107 1134: 1138 1145 1146 rut_buf_ref 158* 752 754 756: 768 920 929 934: 951 982 984 986: 998 1045 1048 1051: 1072 1089 1092 1095: 1110 1128 1131 1134: 1149 rut_con 545 576: rut_default 382 383 432 433 546 547 864 rut_dir 627: rut_dis 610: rut_ext_err 590: 592 rut_format_1 397 448 rut_no_res 585: 587 rut_ok 571 581: rut_pack_type <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 399 450 rut_prefix 388 439 455 947 947 1063 1063 rut_prefix_type <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 550 rut_prio_0 398 527 rut_rec 431 456 653: rut_rec_sem 11* 460 553 865 rut_res 619: rut_srdy 602: \f tsdtelst 81.06.15. 15.39. page 47 rut_stat 869: rut_trm_sem 9* 768 951 998 1072 1110 1149 rut_trp 381 627: rut_trp_pdata <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 386 436 659 756 934 986 1051 1095 1134 s 216 599 607 615 624 650 893 1038 1213 sdata_first_val <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 841 semaphore 134* 163* sempointer 3* 11* 201* sem_ptr 201* 210 217 send_rpacket_bufs <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 411* 559 sensesem 372 422 541 682 733 744 799 810 818 830 signal 216 355 460 553 599 607 615 624 650 711 715 742 768 808 816 847 865 893 907 951 961 998 1010 1020 1035 1038 1072 1078 1110 1116 1149 1154 1163 1171 1178 1213 state 138* 362= 400= 452= 526= 662 748 749= state_type 138* streams 167* 238 325 350 519 733 743 743 744 748 749 761 762 763 786 798 799 809 809 810 817 817 818 830 846 846 940 956 957 963 991 992 993 1026 1029 1035 1055 1056 1057 1101 1102 1103 1195 stream_e 130* 167* stream_index 320* 325 testopen 513 testout 215 240 242 244 245 246 247 248 261 263 264 265 315 333 379 408 429 464 488 505 514 556 583 587 588 592 593 596 606 614 623 631 657 664 671 673 674 692 716 720 728 771 783 795 828 851 856 873 880 888 889 890 917 926 954 974 1001 1018 1033 1067 1075 1086 1113 1125 1152 1161 1169 1176 1218 top_of_data 402= 455= 942= 942 1058= 1058 to_link 898 true 278 285 301 305 tst 184* 214 314 331 347 378 407 428 463 487 504 555 579 605 613 622 630 656 663 669 690 726 781 793 826 850 855 872 879 886 915 924 965 972 1016 1032 1066 1084 1123 1160 1168 1175 1185= 1217 ts_pointer 6* ts_wait 198* 563 t_01 62* 215 t_02 63* 240 t_03 64* 242 t_04 65* 244 t_05 66* 245 t_06 67* 246 265 \f tsdtelst 81.06.15. 15.39. page 48 t_07 68* 247 264 t_08 69* 248 t_09 70* 261 t_10 71* 263 t_11 73* 315 t_12 74* 333 t_13 75* 379 t_14 76* 408 464 771 954 1001 1075 1113 1152 t_15 77* 429 t_16 78* 488 t_17 79* 505 t_18 80* 556 t_19 81* t_20 82* 587 592 596 t_21 84* 588 t_22 85* 593 t_23 86* 606 t_24 87* 614 t_25 88* 623 t_26 89* 631 t_27 90* 657 t_28 91* 664 t_29 92* 671 t_30 93* 673 t_31 95* 674 t_32 96* 692 t_33 97* 716 t_34 98* 720 t_35 99* 728 t_36 100* 783 t_37 101* 795 t_38 102* 828 t_39 103* 851 t_40 105* 856 t_41 106* 873 t_42 107* 880 t_43 108* 888 t_44 109* 889 t_45 110* 890 t_46 111* 917 t_47 112* 926 t_48 113* 974 t_49 114* 1018 t_50 116* 1033 \f tsdtelst 81.06.15. 15.39. page 49 t_51 117* 1067 t_52 118* 1086 t_53 119* 1125 t_54 120* 1161 t_55 121* 1169 t_56 122* 1176 t_57 123* 1218 u1 215 381= 431= 545= 574 888 904 904 910 1161 1169 1176 1195 1205 u2 354= 382= 432= 546= 571 580 596 606 614 631 695= 737= 805= 815= 834= 864= 889 906= 960= 1009= 1077= 1115= 1153= 1162= 1170= 1177= 1186 u3 212 383= 433= 547= 890 903 903 921 991 992 993 1005 1026 1028 1029 1046 1090 1129 1185 u4 384= 434= 548= 566 898 1183 1218 used 147* 260 283 298 305= 338= 534= 1136= 1209= 1209 user_field 456= 665 666 763= 941= 993= 1057= 1103= 1142= version 17* 514 w 372 422 541 563 wait 210 217 windowsize 1026 write_call 252* write_stream 232* 348 966 z 161* 215 240 242 244 245 246 247 248 261 263 264 265 315 333 379 408 429 464 488 505 513 514 556 583 587 588 592 593 596 606 614 623 631 657 664 671 673 674 692 716 720 728 771 783 795 828 851 856 873 880 888 889 890 917 926 954 974 1001 1018 1033 1067 1075 1086 1113 1125 1152 1161 1169 1176 1218 zone 161* \f tsdtelst 81.06.15. 15.39. page 50 AND 6 ARRAY 2 BEGIN 113 CASE 5 CONST 2 DIV 1 DO 54 ELSE 26 END 121 FOR 3 FUNCTION 3 IF 72 MOD 1 NIL 17 NOT 18 OF 7 OR 1 OTHERWISE 4 PROCEDURE 8 RECORD 3 REPEAT 1 THEN 72 TO 3 TYPE 1 UNTIL 1 VAR 9 WHILE 6 WITH 23 ts dte sim 81.06.15. 15.40. pascal80 version 1981.04.01 name headline beginline endline appetite(words) ts_wait 208 210 220 : 18 address 224 229 230 : 5 write_stream 237 238 250 : 32 write_call 257 258 267 : 32 call_resourc 275 278 316 : 19 call_to_stre 324 325 339 : 19 clear_stream 346 348 364 : 14 get_transmit 371 372 409 : 21 send_rpacket 417 420 466 : 29 act_destinat 475 478 489 : 20 external_add 497 500 506 : 17 dtesimulator 17 513 1224 : 418 code: 9 . 512 = 9728 bytes end of PASCAL80 compilation end blocksread = 53 ▶EOF◀