COMPILATION LISTING OF SEGMENT cv_cmf Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 12/01/89 1000.0 mst Fri Options: optimize map 1 2 3 /* * * * * * * * * * * * * * * * * * * * * * * */ 4 /* */ 5 /* COMPILED OUTPUT OF SEGMENT cv_cmf.rd */ 6 /* Compiled by: reduction_compiler, Version 2.5 of Oct 21, 1985 */ 7 /* Compiled on: 12/01/89 1000.0 mst Fri */ 8 /* */ 9 /* * * * * * * * * * * * * * * * * * * * * * * */ 10 11 /* *********************************************************** 12* * * 13* * Copyright, (C) Honeywell Bull Inc., 1987 * 14* * * 15* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 16* * * 17* * Copyright (c) 1972 by Massachusetts Institute of * 18* * Technology and Honeywell Information Systems, Inc. * 19* * * 20* *********************************************************** */ 21 22 /* format: style2,indcomtxt */ 23 24 /* CV_CMF - Program to compile the Channel Master File into a Channel Definition Table. 25* Written August 1975 by THVV 26* Modified 751117 by PG to add access_name stmt 27* Modified 760512 by Mike Grady to add baud stmt and FNP info 28* Modified 760705 by D. M. Wells to understand about FTP channels 29* Modified November 1976 by T. Casey to allow name: ttyNXX-ttyNYY; and Baud: NNN; 30* Modified 761229 by D. M. Wells to allow compatibility for renamed items -- 31* line_type TELNET and service_types FTP and MC 32* Modified 770624 by Robert Coren to make terminal types be character strings 33* and to add dont_read_answerback attribute. 34* Modified Fall 1978 by Larry Johnson for demultiplexing. 35* Modified April 1979 by Larry Johnson to move most checking of multiplexer 36* and sub-channel specifications into multiplexer specific modules, 37* and to allow FNP's to be specified other than those running MCS. 38* Modified July 1979 by C. Hornig to allow non-FNP MCS channels. 39* Modified 1979 August 21 by Art Beattie to accomodate a change to cdt.incl.pl1. 40* Modified January 1981 by E. N. Kittlitz to eliminate cdte.phone_no. 41* Modified May 1981 by Robert Coren to call parse_tty_name_. 42* Modified December 1981 by Benson I. Margulies for cdt tree. 43* Modified April 1982 by Robert Coren for change to baud_rates.incl.pl1. 44* Modified July 1982 by E. N. Kittlitz for [severity] and cmf suffix. 45* Modified August 1982 by E. N. Kittlitz for check_acs. 46* Modified January 1983 by Keith Loepere for generic_destination. 47* Modified 84-01-09 by BIM for more access control flags. 48**/ 49 50 51 /* HISTORY COMMENTS: 52* 1) change(86-09-21,Beattie), approve(86-09-21,MCR7542), 53* audit(86-10-31,Brunelle), install(86-11-12,MR12.0-1211): 54* Remove references to the 963 and 029 preaccess commands and 55* remove support for ARDS, 202_ETX, 2741 and 1050 in system 56* interfaces. 57* 2) change(87-03-17,Beattie), approve(87-05-04,MCR7682), 58* audit(87-05-29,Parisek), install(87-07-17,MR12.1-1042): 59* Fix bug in mpx_error where errors in CMF that are detected by 60* multiplexers were not getting displayed. 61* END HISTORY COMMENTS */ 62 63 64 /*++ 65* 66*BEGIN / / ERROR(2) / RETURN \ 67* 68*mainloop / FNP : ; / LEX(2) open_fnp LEX(2) PUSH(mainloop) / do_fnp \ 69*3 / name : ; / LEX(2) open_chn LEX(2) PUSH(mainloop) / do_name \ 70* 71* \" Master Keywords. These supply defaults for all cdte's following. 72* 73*4 / Access_class : ; / LEX(4) [dft.access_class = access_class_value] / mainloop \ 74*5 / Access_class : / LEX(2) ERROR(10) NEXT_STMT / mainloop \ 75*6 / Check_acs : / LEX(2) PUSH(mainloop) PUSH (assign_dft_access) / checksub \ 76*7 / Attributes : / LEX(2) PUSH(mainloop) PUSH(assign_dft) / attsub \ 77*8 / Baud : ; / LEX(2) [dft.baud_rate = baud_rate_value; dft.flags.autobaud = ""b] 78* LEX(2) / mainloop \ 79*9 / Baud : auto ; / LEX(2) [dft.baud_rate = 0; dft.flags.autobaud = "1"b] 80* LEX(2) / mainloop \ 81*10 / Baud : none ; / LEX(2) [dft.baud_rate = 0; dft.flags.autobaud = ""b] 82* LEX(2) / mainloop \ 83*11 / Baud : / LEX(2) ERROR(29) NEXT_STMT / mainloop \ 84*12 / Line_type : ; / LEX(2) [dft.line_type = line_type_value] LEX(2) / mainloop \ 85*13 / Line_type : / LEX(2) ERROR(11) NEXT_STMT / mainloop \ 86*14 / Terminal_type : ; / LEX(2) check_terminal_type 87* [dft.initial_terminal_type = terminal_type_value] LEX(2) 88* / mainloop \ 89*15 / Terminal_type : / LEX(2) ERROR(8) NEXT_STMT / mainloop \ 90*16 / Comment : ; / LEX(2) [dft.comment = token_value] LEX(2) / mainloop \ 91*17 / Initial_command : ; / LEX(2) [dft.initial_command = token_value; dft.execute_initial_command = token_value ^= ""] LEX(2) / mainloop \ 92*18 / Generic_destination : ; / LEX(2) [addr (dft.initial_command) -> generic_destination = token_value; dft.generic_destination_present = token_value ^= ""] LEX(2) / mainloop \ 93*19 / Charge : ; / LEX(2) [dft.charge_type = charge_value] LEX(2) / mainloop \ 94*20 / Charge : / LEX(2) ERROR(12) NEXT_STMT / mainloop \ 95*21 / Service : ; / LEX(2) [dft.service_type = service_value] LEX(2) / mainloop \ 96*22 / Service : / LEX(2) ERROR(16) NEXT_STMT / mainloop \ 97*23 / FNP_required_up_time : ; / LEX(2) [cdt.acceptable_fnp_tbf = token.Nvalue] LEX(2) 98* / mainloop \ 99*24 / FNP_required_up_time : / LEX(2) ERROR(44) NEXT_STMT / mainloop \ 100*25 / Spare_channel_count : ; / LEX(2) [cdt.spare_channel_count = token.Nvalue] LEX(2) 101* / mainloop \ 102*26 / Spare_channel_count : / LEX(2) ERROR(47) NEXT_STMT / mainloop \ 103* 104*27 / end ; / / RETURN \ 105*28 / : / ERROR(3) NEXT_STMT / mainloop \ 106*29 / / ERROR(4) NEXT_STMT / mainloop \ 107*30 / / ERROR(5) / RETURN \ 108* 109* 110* \" 111* \" do_name subroutine - handles name sub-keywords 112* 113*do_name / access_class : ; / LEX(4) [cdte.access_class = access_class_value] / do_name \ 114*32 / access_class : / LEX(2) ERROR(10) NEXT_STMT / do_name \ 115*33 / baud : auto ; / LEX(2) [cdte.flags.autobaud = "1"b; cdte.baud_rate = 0] 116* LEX(2) / do_name \ 117*34 / baud : none ; / LEX(2) [cdte.flags.autobaud = "0"b; cdte.baud_rate = 0] 118* LEX(2) / do_name \ 119*35 / baud : ; / LEX(2) [cdte.baud_rate = baud_rate_value] LEX(2) / do_name \ 120*36 / baud : / LEX(2) ERROR(29) NEXT_STMT / do_name \ 121*37 / check_acs : / LEX(2) PUSH(do_name) PUSH(assign_access) / checksub \ 122*38 / attributes : / LEX(2) PUSH(do_name) PUSH(assign_attr) / attsub \ 123*39 / answerback : ; / LEX(2) [cdte.answerback = token_value] LEX(2) / do_name \ 124*40 / line_type : / LEX(2) [cdte.line_type = line_type_value] LEX(1) / line_type \ 125*41 / line_type : / LEX(2) ERROR(11) NEXT_STMT / do_name \ 126*42 / dataset : / LEX(2) [cdte.modem_type = dataset_value] LEX(1) / dataset \ 127*43 / dataset : / LEX(2) ERROR (38) NEXT_STMT / do_name \ 128*44 / terminal_type : ; / LEX(2) check_terminal_type 129* [cdte.initial_terminal_type = terminal_type_value] LEX(2) 130* / do_name \ 131*45 / terminal_type : / LEX(2) ERROR(8) NEXT_STMT / do_name \ 132*46 / comment : ; / LEX(2) [cdte.comment = token_value] LEX(2) / do_name \ 133*47 / initial_command : ; / LEX(2) [cdte.initial_command = token_value; cdte.execute_initial_command = token_value ^= ""] LEX(2) / do_name \ 134*48 / generic_destination : ; / LEX(2) [addr (cdte.initial_command) -> generic_destination = token_value; cdte.generic_destination_present = token_value ^= ""] LEX(2) / do_name \ 135*49 / charge : ; / LEX(2) [cdte.charge_type = charge_value] LEX(2) / do_name \ 136*50 / charge : / LEX(2) ERROR(12) NEXT_STMT / do_name \ 137*51 / service : ; / LEX(2) [cdte.service_type = service_value] LEX(2) 138* / do_name \ 139*52 / service : / LEX(2) ERROR(16) NEXT_STMT / do_name \ 140*53 / multiplexer_type : , ; 141* / LEX(2) [cdte.mpx_type = mpx_type_value] 142* LEX(2) [cdte.mpx_service = service_value] LEX(2) 143* / do_name \ 144*54 / multiplexer_type : , / LEX(4) ERROR(16) NEXT_STMT / do_name\ 145*55 / multiplexer_type : ; / LEX(2) [cdte.mpx_type = mpx_type_value] LEX(2) / do_name \ 146*56 / multiplexer_type : / LEX(2) ERROR(51) NEXT_STMT / do_name \ 147*57 / / close_chn / STACK_POP \ 148*58 / / close_chn / STACK_POP \ 149* 150* \" 151* 152* \" a couple of routines to handle line_type and dataset options 153* 154*dataset / , / LEX / ds_opt \ 155*60 / ; / LEX / do_name \ 156*61 / / ERROR(4) NEXT_STMT / do_name \ 157*62 / / ERROR(5) / RETURN \ 158* 159*ds_opt / private_line / LEX [cdte.flags.private_line = "1"b] / dataset \ 160*64 / / ERROR(40) NEXT_STMT / do_name \ 161*65 / / ERROR(5) / RETURN \ 162* 163*line_type / , / LEX / lt_opt \ 164*67 / ; / LEX / do_name \ 165*68 / / ERROR(4) NEXT_STMT / do_name \ 166*69 / / ERROR(5) / RETURN \ 167* 168*lt_opt / ebcdic / LEX [cdte.flags.bsc_ebcdic = "1"b] / line_type \ 169*71 / ascii / LEX [cdte.flags.bsc_ebcdic = "0"b] / line_type \ 170*72 / transparent / LEX [cdte.flags.bsc_transparent = "1"b] / line_type \ 171*73 / nontransparent / LEX [cdte.flags.bsc_transparent = "0"b] / line_type \ 172*74 / / ERROR(41) NEXT_STMT / do_name \ 173*75 / / ERROR(5) / RETURN \ 174* 175* \" do_fnp subroutine - handles FNP sub-keywords 176* 177*do_fnp / type : ; / LEX(2) [fnpe.type = fnp_type_value] LEX(2) / do_fnp \ 178*77 / type : / LEX(2) ERROR(19) NEXT_STMT / do_fnp \ 179*78 / memory : ; / LEX(2) [fnpe.memory = token.Nvalue] LEX(2) / do_fnp \ 180*79 / memory : / LEX(2) ERROR(20) NEXT_STMT / do_fnp \ 181*80 / lsla : ; / LEX(2) [fnpe.nlslas = token.Nvalue] LEX(2) / do_fnp \ 182*81 / lsla : / LEX(2) ERROR(21) NEXT_STMT / do_fnp \ 183*82 / hsla : ; / LEX(2) [fnpe.nhslas = token.Nvalue] LEX(2) / do_fnp \ 184*83 / hsla : / LEX(2) ERROR(21) NEXT_STMT / do_fnp \ 185*84 / image : ; / LEX(2) [fnpe.coreimage = token_value] LEX(2) / do_fnp \ 186*85 / image : / LEX(2) ERROR(22) NEXT_STMT / do_fnp \ 187*86 / additional_info : ; / LEX(2) [fnpe.coreimage = token_value] LEX(2) / do_fnp\ 188*87 / additional_info : / [fnpe.coreimage = ""] NEXT_STMT / do_fnp \ 189*88 / service : ; / LEX(2) [fnpe.service_type = service_value] LEX(2) / do_fnp \ 190*89 / service : / LEX(2) ERROR(16) NEXT_STMT / do_fnp \ 191*90 / multiplexer_type : ; / LEX(2) [fnpe.mpx_type = mpx_type_value] LEX(2) /do_fnp\ 192*91 / multiplexer_type : / LEX(2) ERROR(51) NEXT_STMT /do_fnp\ 193*92 / / close_fnp / STACK_POP \ 194*93 / / close_fnp / STACK_POP \ 195* 196* \" 197* 198* \" attsub subroutine - handles attributes lists 199* 200*attsub / / [sx=ON; ats=dft.attributes] / \ 201* 202*attloop / ; / LEX / STACK_POP \ 203*96 / none / LEX [string(ats)=""b] / atts \ 204*97 / ^ / LEX [sx=OFF] / \ 205*98 / set_modes / LEX [ats.set_modes=sx] / atts \ 206*99 / audit / LEX [ats.audit_access_error=sx] / atts \ 207*100 / hardwired / LEX [ats.hardwired=sx] / atts \ 208*101 / check_answerback / LEX [ats.ck_answerback=sx] / atts \ 209*102 / dont_read_answerback / LEX [ats.dont_read_answerback=sx] / atts \ 210*103 / / ERROR(14) NEXT_STMT / STACK_POP \ 211*104 / / ERROR(7) / RETURN \ 212* 213*atts / , / LEX [sx = ON] / attloop \ 214*106 / ; / LEX / STACK_POP \ 215* 216*107 / / ERROR(15) NEXT_STMT / STACK_POP \ 217*108 / / ERROR(7) / RETURN \ 218* 219*assign_attr / / [cdte.attributes = ats] 220* / STACK_POP \ 221*assign_dft / / [dft.attributes=ats] 222* / STACK_POP \ 223* 224* 225*checksub / / [sx=ON;access=dft.access_control] / \ 226* 227*checkloop / ; / LEX / STACK_POP \ 228*113 / none / LEX [string(access)=""b] / checks \ 229*114 / all / LEX [string(access)=ALL_ACCESS_CHECKS] / checks \ 230*115 / ^ / LEX [sx=OFF] / \ 231*116 / login / LEX [access.login=sx] / checks \ 232*117 / slave_dial / LEX [access.slave_dial=sx] / checks \ 233*118 / dial_server / LEX [access.dial_server=sx] / checks \ 234*119 / dial_out / LEX [access.dial_out=sx] / checks \ 235*120 / priv_attach / LEX [access.priv_attach=sx] / checks \ 236*121 / / ERROR(27) NEXT_STMT / STACK_POP \ 237*122 / / ERROR(26) / RETURN \ 238* 239*checks / , / LEX [sx=ON] / checkloop \ 240*124 / ; / LEX / STACK_POP \ 241*125 / / ERROR(27) NEXT_STMT / STACK_POP \ 242*126 / / ERROR(26) / RETURN \ 243* 244*assign_dft_access 245*127 / / [dft.access_control=access] / STACK_POP \ 246*assign_access 247*128 / / [cdte.access_control=access] / STACK_POP \ 248* 249* ++*/ 250 251 252 cv_cmf: 253 procedure; 254 255 /* automatic */ 256 257 dcl (APstmt, APtoken, areap, cmfp) 258 ptr; 259 260 dcl 1 dft aligned like cdte; 261 dcl 1 ats aligned like cdte.attributes; 262 dcl 1 access aligned like cdte.access_control; 263 dcl ALL_ACCESS_CHECKS bit (5) init ("11111"b) int static options (constant); 264 265 dcl access_class_value (2) bit (72) aligned; 266 dcl charge_value fixed bin; 267 dcl service_value fixed bin; 268 dcl line_type_value fixed bin; 269 dcl terminal_type_value char (32); 270 dcl fnp_type_value fixed bin; 271 dcl dataset_value fixed bin; 272 dcl baud_rate_value fixed bin; 273 dcl mpx_type_value fixed bin; 274 275 dcl mpx_error_printedp ptr init (null ()); 276 dcl system_areap ptr; 277 278 dcl dn char (168); 279 dcl (supplied_en, cmf_en, cdt_en) 280 char (32); 281 dcl (i, n) fixed bin; 282 dcl fnpno fixed bin; 283 dcl ndev fixed bin; 284 dcl bitc fixed bin (24); 285 dcl (argc, argx) fixed bin; 286 dcl ap ptr; 287 dcl al fixed bin (21); 288 dcl ec fixed bin (35); 289 dcl code fixed bin (35); 290 dcl created_table_segment bit (1) aligned; 291 dcl sx bit (1) aligned; 292 dcl fb35 fixed bin (35); 293 294 dcl 1 dvt (16) aligned, 295 2 device_id char (8), 296 2 device_prices (0:7) float; 297 298 /* based */ 299 300 dcl bchr char (al) unal based (ap); 301 dcl system_area area based (system_areap); 302 dcl mpx_error_printed (hbound (mpx_types, 1), 99) bit (1) unal based (mpx_error_printedp); 303 304 /* builtin */ 305 306 declare (addr, bin, character, collate, dimension, divide, hbound, index, lbound, length, ltrim, max, null, 307 rank, rel, rtrim, size, string, substr, translate, unspec, verify, wordno) 308 builtin; 309 310 /* conditions */ 311 312 declare cleanup condition; 313 declare sub_error_ condition; 314 315 /* entries */ 316 317 dcl convert_authorization_$from_string_range 318 entry ((2) bit (72) aligned, character (*), fixed binary (35)); 319 dcl convert_status_code_ entry (fixed bin (35), char (8) aligned, char (100) aligned); 320 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 321 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 322 dcl cdt_mgr_$thread entry (ptr, fixed bin (35)); 323 dcl cv_dec_check_ entry (char (*), fixed bin (35)) returns (fixed bin); 324 dcl find_condition_info_ entry (ptr, ptr, fixed bin (35)); 325 dcl get_wdir_ entry () returns (char (168)); 326 dcl get_group_id_ entry () returns (char (32) aligned); 327 dcl get_shortest_path_ entry (char (*)) returns (char (168)); 328 dcl get_system_free_area_ entry () returns (ptr); 329 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 330 dcl expand_pathname_$add_suffix 331 entry (char (*), char (*), char (*), char (*), fixed bin (35)); 332 dcl com_err_ entry options (variable); 333 dcl system_info_$device_prices 334 entry (fixed bin, ptr); 335 dcl lex_error_ entry options (variable); 336 dcl lex_string_$init_lex_delims 337 entry (char (*), char (*), char (*), char (*), char (*), bit (*), char (*) var, 338 char (*) var, char (*) var, char (*) var); 339 dcl lex_string_$lex entry (ptr, fixed bin, fixed bin, ptr, bit (*), char (*), char (*), char (*), 340 char (*), char (*), char (*) var, char (*) var, char (*) var, char (*) var, ptr, 341 ptr, fixed bin (35)); 342 dcl translator_temp_$get_segment 343 entry (char (*), ptr, fixed bin (35)); 344 dcl translator_temp_$release_all_segments 345 entry (ptr, fixed bin (35)); 346 347 dcl com_err_$suppress_name entry () options (variable); 348 dcl initiate_file_ entry (char (*), char (*), bit (*), ptr, fixed bin (24), fixed bin (35)); 349 dcl hcs_$make_seg entry (char (*), char (*), char (*), fixed bin (5), ptr, fixed bin (35)); 350 dcl hcs_$truncate_seg entry (ptr, fixed bin, fixed bin (35)); 351 dcl ttt_info_$terminal_data 352 entry (char (*), fixed bin, fixed bin, ptr, fixed bin (35)); 353 dcl match_star_name_ entry (char (*), char (*), fixed bin (35)); 354 dcl sort_items_$general entry (ptr, entry); 355 dcl hcs_$make_entry entry (ptr, char (*), char (*), entry, fixed bin (35)); 356 dcl parse_tty_name_ entry (char (*), fixed bin, bit (1), fixed bin, fixed bin); 357 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 358 dcl suffixed_name_$new_suffix 359 entry (char (*), char (*), char (*), char (32), fixed bin (35)); 360 dcl terminate_file_ entry (ptr, fixed bin (24), bit (*), fixed bin (35)); 361 362 /* internal static */ 363 364 dcl ( 365 ( 366 ON bit (1) initial ("1"b), 367 OFF bit (1) initial ("0"b), 368 my_name char (6) initial ("cv_cmf") 369 ) options (constant), 370 first bit (1) initial ("1"b), 371 (LEXDLM, LEXCTL) char (128) var, 372 BREAKS char (128) var, 373 IGBREAKS char (128) var 374 ) internal static; 375 376 dcl services (8) char (12) static options (constant) 377 init ("login", "FTP", "MC", "slave", "", "autocall", "inactive", "multiplexer"); 378 379 /* external static */ 380 381 dcl ( 382 error_table_$translation_failed, 383 error_table_$noentry, 384 error_table_$too_many_args, 385 error_table_$badopt, 386 error_table_$zero_length_seg, 387 error_table_$noarg, 388 error_table_$bad_conversion 389 ) fixed bin (35) external static; 390 dcl sys_info$max_seg_size ext fixed bin (18); 391 392 dcl cv_cmf_severity_ fixed bin (35) external init (0); 393 394 /* include files */ 395 /* format: off */ 396 /* BEGIN INCLUDE FILE ... cdt.incl.pl1 */ 1 2 1 3 /* format: style3,idind25,indcomtxt */ 1 4 1 5 /* Channel Definition Table. 1 6* This table lists all of the hardware channels (ports) connected 1 7* to the system, and maintains the attributes of each one. 1 8* 1 9* PG 741230 1 10* Modified by Mike Grady 5/6/76 to add FNP info. 1 11* Modified by Tom Casey 7/29/76 to add more FNP info and a few other things. 1 12* Modified by Robert Coren 6/13/77 to make terminal types be character strings. 1 13* Modified July 1979 by T. Casey to add several variables for MR8.0 process preservation facility. 1 14* Modified December 1980 by E. N. Kittlitz to eliminate cdte.phone_no. 1 15* Modified March 1981 by Robert Coren to add "listening" flag for multiplexers and to add TANDD_SERVICE service_type. 1 16* Modified April 1981 by E. N. Kittlitz to add cdte.dial_ev_chn, cdte.recent_wakeup_time, cdte.recent_wakeup_count. 1 17* Modified July 1981 by T. Casey for MR9.0 to add dialup_flags.detach_after_hangup 1 18* Modified December 1981 by E. N. Kittlitz for cdte.leave_edited, cdte.hold_arg, 1 19* Modified September 1981 by Benson I. Margulies for cdt_mgr_'s tree of multiplexer's. 1 20* Modified August 1982 by E. N. Kittlitz for check_acs. 1 21* Modified January 1983 by Keith Loepere for generic_destination. 1 22* Modified August 1983 by Robert Coren to add mpxe.check and mpxe.retry_load. 1 23* Modified 831216 by E. N. Kittlitz for required_access_class. 1 24* Modified 84-04-01 by BIM to finish communications AIM: 1 25* access class ranges, 1 26* access_control flags. 1 27**/ 1 28 1 29 1 30 /****^ HISTORY COMMENTS: 1 31* 1) change(87-03-17,Beattie), approve(87-04-06,MCR7656), 1 32* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 1 33* Add support for answering service to use IOCBs when tty_ cannot be 1 34* used to service login channels. 1 35* END HISTORY COMMENTS */ 1 36 1 37 1 38 dcl CDT_version_5 fixed bin internal static initial (5) options (constant); 1 39 dcl CDT_version fixed bin internal static initial (6) options (constant); 1 40 1 41 dcl (cdtp, cdtep, fnpep, mpxep) 1 42 ptr; 1 43 1 44 dcl 1 cdt based (cdtp) aligned, /* all of the system channels */ 1 45 2 author like author_dcl.author, /* standard header */ 1 46 2 max_size fixed bin, /* maximum number of cdte's in 255K */ 1 47 2 current_size fixed bin, /* number of last cdte. */ 1 48 2 version fixed bin, 1 49 2 freep fixed bin, /* chain of free cdte's */ 1 50 2 n_cdtes fixed bin, /* number of used cdte's */ 1 51 2 meters_last_reset fixed bin (71), /* clock time dialup meters were reset */ 1 52 2 realtime_in_dialup fixed bin (71), /* Dialup meter */ 1 53 2 cpu_in_dialup fixed bin (71), /* .. */ 1 54 2 pf_in_dialup fixed bin, /* .. */ 1 55 2 pp_in_dialup fixed bin, /* .. */ 1 56 2 entries_to_dialup fixed bin, /* .. */ 1 57 2 flags, 1 58 3 go bit (1) unal, /* ans. serv. said "go ahead and answer the phones" */ 1 59 3 cdt_is_live bit (1) unal, /* cdt is active */ 1 60 3 mux_mgr_system_init 1 61 bit (1) unal, /* mux mgr has loaded top-levels */ 1 62 3 pad1 bit (33) unal, 1 63 2 acceptable_fnp_tbf fixed bin, /* acceptable minutes between FNP crashes */ 1 64 2 spare_channel_count fixed bin, /* number of extra channels to leave room for in ring0 */ 1 65 2 threads aligned like channel_threads, 1 66 /* root of non-fnp-top-level-multiplexers */ 1 67 2 pad2 (31) bit (36) aligned, /* pad header to 80 words */ 1 68 2 fnp_entry dim (8) like fnpe, /* max of 8 FNPs for now */ 1 69 2 cdt_entry dim (2500) like cdte; /* # of cdte's in 255K */ 1 70 1 71 1 72 dcl 1 cdte based (cdtep) aligned, /* a channel */ 1 73 2 in_use fixed bin, /* see dialup_values. 0=NOW_FREE */ 1 74 /**** * These variables are filled in when the CDTE is created by cv_cmf. They are not dynamic. */ 1 75 2 pad1 bit (36) aligned, 1 76 2 name char (32), /* ASCII name of channel */ 1 77 2 access_class (2) bit (72) aligned, /* access class range */ 1 78 2 comment char (48), /* printable message about channel */ 1 79 2 charge_type fixed bin (17) unal, /* billing group */ 1 80 2 service_type fixed bin (17) unal, /* service group (AS, ftp, mc) */ 1 81 2 line_type fixed bin (17) unal, /* tty line type (protocol) */ 1 82 2 baud_rate fixed bin (17) unal, /* 110, 133, 150, etc. */ 1 83 2 modem_type fixed bin (17) unal, /* type of modem on this channel */ 1 84 2 pad2 bit (18) unaligned, 1 85 2 answerback char (8), /* answerback string expected */ 1 86 2 initial_terminal_type 1 87 char (32) unal, /* as specified in the CMF */ 1 88 2 mpx_data unal, /* data used only for multiplexed channels */ 1 89 3 mpx_type fixed bin (17), /* type of multiplexing used */ 1 90 3 mpx_service fixed bin (17), /* service type, active or inactive */ 1 91 2 flags, 1 92 ( 3 attributes, 1 93 4 ck_answerback bit (1), /* ON means that ansbk must equal our records */ 1 94 4 audit_access_error 1 95 bit (1), /* ON means ck that person auth is inside access class range */ 1 96 /* this implies that the access_class describes a range of 1 97* legitimate user auths. */ 1 98 4 hardwired bit (1), /* ON means it is */ 1 99 4 set_modes bit (1), /* ON means to set initial modes at dialup */ 1 100 4 dont_read_answerback 1 101 bit (1), /* ON means don't try to read answerback */ 1 102 4 pada bit (4), 1 103 3 access_control unaligned, /* As below */ 1 104 4 dial_out bit (1), /* dialing user must be on ACS */ 1 105 4 priv_attach bit (1), /* PA_ user must be on ACS */ 1 106 4 dial_server bit (1), /* accept_dials process must be on acs */ 1 107 4 login bit (1), /* logging in user must be on acs */ 1 108 4 slave_dial bit (1), /* dialing user must give -user and be on acs */ 1 109 4 pado bit (3), 1 110 3 options, 1 111 4 execute_initial_command 1 112 bit (1), /* ON means to do it */ 1 113 4 attached_by_operator 1 114 bit (1), /* ON means temporary attachment. */ 1 115 4 private_line bit (1), /* ON means private_line sync modem in use */ 1 116 4 bsc_ebcdic bit (1), /* ON means bsc would like to use ebcdic code set */ 1 117 4 bsc_transparent bit (1), /* ON means bsc is in transparent mode */ 1 118 4 vip_pollselect bit (1), /* ON means VIP line is multidrop */ 1 119 4 autobaud bit (1), /* ON means auto baud detection this channel */ 1 120 4 generic_destination_present 1 121 bit (1), /* ON means that the initial_command field contains 1 122* a generic destination to match on dial_out or priv attach */ 1 123 4 use_iocb bit (1), /* ON means to use IOCB operations to support channel */ 1 124 4 pado bit (9) 1 125 ) unaligned, 1 126 2 initial_command char (64), /* pseudo first input line */ 1 127 /**** The following variables represent dynamic control info, and 1 128* are used mostly by dialup_ and asu_ */ 1 129 2 event fixed bin (71), /* event call channel for channel events */ 1 130 2 current_service_type fixed bin (17) unal, /* Current usage of line. */ 1 131 2 tra_vec fixed bin (17) unal, /* which section of dialup_ to do next */ 1 132 2 count fixed bin (17) unal, /* How many login tries he's had. */ 1 133 2 dialup_flags unal, /* flag bits for dialup to maintain */ 1 134 3 ppm bit (1) unal, /* print preaccess message for IBM terminals */ 1 135 3 cpo bit (1) unal, /* conditional printer-off (depends on answerback */ 1 136 3 wakeup_handler bit (1) unal, /* says who is wakeup handler for this channel */ 1 137 /* 0 = dialup_, 1 = mc_tty_ */ 1 138 3 save_arg bit (1) unal, /* -save login arg given */ 1 139 3 nosave_arg bit (1) unal, /* -nosave login arg given */ 1 140 3 detach_after_hangup 1 141 bit (1) unal, /* remember WAIT_DETACH when setting WAIT_BEFORE_HANGUP */ 1 142 3 leave_edited bit (1) unal, /* user control of edited mode */ 1 143 3 hold_arg bit (1) unal, /* -hold arg given */ 1 144 3 no_hold_arg bit (1) unal, /* -no_hold arg given */ 1 145 3 immediate_arg bit (1) unal, /* -immediate arg given */ 1 146 3 current_access_class_valid 1 147 bit (1) unal, /* dialup_ or lg_ctl_ has determined the current_access_class */ 1 148 3 pad bit (7) unal, 1 149 2 twx fixed bin, /* channel device index */ 1 150 2 state fixed bin, /* channel state */ 1 151 2 tty_id_code char (4), /* channel id (answerback) */ 1 152 2 current_terminal_type 1 153 char (32) unal, /* most recently-set terminal type */ 1 154 2 process ptr unal, /* ptr to ATE owning this channel */ 1 155 2 dialed_to_procid bit (36), /* Dialed channels remember owner's proc id */ 1 156 2 next_channel fixed bin (17) unal, /* cdte index of next channel for this process */ 1 157 2 cur_line_type fixed bin (17) unal, /* line type of currently dialed terminal */ 1 158 2 current_access_class (2) bit (72) aligned, /* This is a range, but at this time it must be a null range. 1 159* We do not yet define multi-class connections, but we will someday. */ 1 160 2 disconnected_ate_index 1 161 fixed bin (17) unal, /* index of ate of disconnected process */ 1 162 2 dial_ctl_ring fixed bin (3) unsigned unaligned, 1 163 /* used by dial_ctl_ to record ring of priv_attach or dial_out attachments */ 1 164 2 dial_rq_privileged bit (1) unaligned, /* used by dial ctl to record comm priv from priv_attach or dial_out request */ 1 165 2 pad3 bit (14) unaligned, 1 166 /**** The following variables are kept for metering purposes. */ 1 167 2 n_dialups fixed bin, /* number of times channel has been dialed up */ 1 168 2 n_logins fixed bin, /* number of login sessions on this channel */ 1 169 2 dialed_up_time fixed bin (35), /* total time channel was dialed up (seconds) */ 1 170 2 dialup_time fixed bin (71), /* time of present dialup */ 1 171 2 disconnected_proc_command 1 172 fixed bin (12) unsigned unal, 1 173 /* 1 to 5 for -list,-create,-connect,-new_proc,-destroy */ 1 174 2 disconnected_proc_number 1 175 fixed bin (12) unsigned unal, 1 176 /* {N} in -connect {N}, -new_proc {N}, -destroy {N} */ 1 177 2 n_disconnected_procs fixed bin (12) unsigned unal, 1 178 /* number of disconnected processes that user has */ 1 179 2 recent_wakeup_count fixed bin, /* counter to detect channel wakeup loop */ 1 180 2 recent_wakeup_time fixed bin (71), /* time of first wakeup in suspected channel wakeup loop */ 1 181 2 dial_ev_chn fixed bin (71), /* Dialed channels remember master's IPC channel */ 1 182 /**** cdt_mgr_ uses these to maintain the tree of channels. They ****/ 1 183 /**** really belong in the mpxe, but it is full up, and the cdte ****/ 1 184 /**** had the space. */ 1 185 2 threads aligned like channel_threads, 1 186 /**** The use name is that of the user who gave the dial or slave ****/ 1 187 /**** preaccess request. ****/ 1 188 2 user_name unaligned, 1 189 3 person char (20) unaligned, 1 190 3 project char (9) unaligned, 1 191 3 pad char (3) unaligned, /* no tag */ 1 192 2 iocbp ptr unaligned; /* 104 words */ 1 193 1 194 1 195 dcl generic_destination based char (32); /* used to match destinations on dial_out and priv_attach, 1 196* overlays initial_command field for slave and autocall lines */ 1 197 1 198 1 199 1 200 dcl 1 fnpe based (fnpep) aligned, /* an FNP */ 1 201 /* These variables are filled in from the CMF */ 1 202 2 type fixed bin, /* type of this FNP, DN355, DN6670, etc. */ 1 203 2 memory fixed bin, /* amount of memory on this FNP */ 1 204 2 nlslas fixed bin, /* number of lslas on this FNP */ 1 205 2 nhslas fixed bin, /* number of hslas on this FNP */ 1 206 2 service_type fixed bin, /* service type */ 1 207 2 mpx_type fixed bin, /* type of multiplexer on this fnp */ 1 208 2 coreimage char (168), /* pathname of image, maybe in >sl1 */ 1 209 /**** The following are used during system operation to remember the state of the FNP */ 1 210 2 boot_segp ptr, /* ptr to seg used for bootload */ 1 211 2 boot_ev_chan fixed bin (71), /* for ring0 to report crashes and bootload complete */ 1 212 2 mpxe like mpxe, /* standard multiplexer data */ 1 213 2 threads aligned like channel_threads, 1 214 /* same mpx threads as channel */ 1 215 2 pad3 (25) fixed bin; /* pad to 96 words per entry */ 1 216 1 217 /* This structure describes the data necessary to control a multiplexer. 1 218* For FNP's., a copy appears in the fnpe. For communications lines, it 1 219* overlays the initial_command field in the cdte. */ 1 220 1 221 dcl 1 mpxe based (mpxep) aligned, 1 222 2 state fixed bin, /* current state, up, down, loading */ 1 223 2 current_service_type fixed bin, /* usually = service type, unless cdt installation changes it */ 1 224 2 current_mpx_type fixed bin, /* type of multiplexer currently running */ 1 225 2 n_bootloads fixed bin, /* count of load attempts */ 1 226 2 time_initial_load fixed bin (71), /* time this MPX first completed a load */ 1 227 2 time_last_load fixed bin (71), /* time MPX last completed a bootload */ 1 228 2 time_last_crash fixed bin (71), /* time MPX last crashed */ 1 229 2 time_load_start fixed bin (71), /* time current load started */ 1 230 2 last_tbf fixed bin, /* number of minutes this MPX was up last bootload */ 1 231 2 flags unal, 1 232 3 go bit (1), /* start MPX after it loads */ 1 233 3 listening bit (1), /* listen has been done on subchannels */ 1 234 3 check bit (1), /* loaded with check option */ 1 235 3 retry_load bit (1), /* reload if load fails */ 1 236 3 pad1 bit (32), 1 237 2 pad2 (2) fixed bin; /* pad to 16 words */ 1 238 1 239 /* These threads define the tree of multiplexers in the cdt. */ 1 240 /* next_sister and prev_sister link nodes at the same level, ordered */ 1 241 /* by alpha sort order of the channel name. Daughter points to the */ 1 242 /* first child of this node, if any. Daughter count is the number */ 1 243 /* of children, as a consistency check. Mother is a back pointer to */ 1 244 /* the parent, present in all the children, not just the first. */ 1 245 /* threads are cdt indexes. If positive, they index the cdt_entry array */ 1 246 /* in cdt, if negative, they are the negative of an index into the fnp_entry */ 1 247 /* array. If zero, they refer to the top of the non-fnp mpx tree. */ 1 248 1 249 dcl 1 channel_threads aligned based, 1 250 2 next_sister fixed bin unaligned, 1 251 2 prev_sister fixed bin unaligned, 1 252 2 daughter fixed bin unaligned, 1 253 2 mother fixed bin unaligned, /* negative is a fnpx, positive a cdtx */ 1 254 2 pad bit (18) unaligned, 1 255 2 daughter_count fixed bin unaligned; 1 256 1 257 /* Values for cdte.service_type field */ 1 258 1 259 dcl ( 1 260 ANS_SERVICE init (1), /* login or dial */ 1 261 FTP_SERVICE init (2), /* file transfer service */ 1 262 MC_SERVICE init (3), /* message coordinator */ 1 263 SLAVE_SERVICE init (4), /* special channel */ 1 264 DIAL_SERVICE init (5), /* transient state */ 1 265 DIAL_OUT_SERVICE init (6), /* auto call line */ 1 266 MPX_SERVICE init (8), /* ring0 demultiplexed line */ 1 267 TANDD_SERVICE init (9) /* transient state, attached for T & D */ 1 268 ) fixed bin internal static options (constant); 1 269 1 270 /* Values for service type in both cdte and fnpe */ 1 271 1 272 dcl ( 1 273 INACTIVE init (7), /* not to be used, even though configured */ 1 274 ACTIVE init (1) 1 275 ) /* for FNP only, configured and to be used */ 1 276 fixed bin internal static options (constant); 1 277 1 278 /* Value for both cdte.in_use and fnpe.state */ 1 279 1 280 dcl NOT_CONFIGURED fixed bin int static init (-1) options (constant); 1 281 /* was not configured at Multics bootload time */ 1 282 1 283 /* NOTE: an INACTIVE channel can be made active by operator command or CDT installation, 1 284* but a NOT_CONFIGURED channel can not be used until its multiplexer is reloaded */ 1 285 1 286 /* Value for cdte.in_use */ 1 287 1 288 dcl CHANNEL_DELETED fixed bin int static init (-2); 1 289 /* channel deleted by CDT installation */ 1 290 1 291 /* NOTE: a configured channel being deleted by a CDT installation is set to CHANNEL_DELETED. 1 292* multiplexer_mgr_ sets cdte.in_use to NOW_FREE at the next reload of its multiplexer. 1 293* A NOT_CONFIGURED channel is set to NOW_FREE immediately when deleted by a CDT installation. */ 1 294 1 295 1 296 /* Values for mpxe.state field */ 1 297 1 298 dcl ( 1 299 FNP_FREE init (0), /* this fnpe is not used */ 1 300 FNP_UNKNOWN init (1), /* FNP is in some unknown state */ 1 301 FNP_DOWN init (2), /* FNP crashed, not yet reloaded */ 1 302 FNP_BOOT init (3), /* FNP has been booted, but no response yet */ 1 303 FNP_UP init (4) /* FNP is up and running fine */ 1 304 ) fixed bin internal static options (constant); 1 305 1 306 dcl ( 1 307 MPX_FREE init (0), /* this mpxe is not used */ 1 308 MPX_UNKNOWN init (1), /* MPX is in some unknown state */ 1 309 MPX_DOWN init (2), /* MPX crashed, not yet reloaded */ 1 310 MPX_BOOT init (3), /* MPX has been booted, but no response yet */ 1 311 MPX_UP init (4) /* MPX is up and running fine */ 1 312 ) fixed bin internal static options (constant); 1 313 2 1 /* BEGIN INCLUDE FILE ... fnp_types.incl.pl1 */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 2 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 2 8* Add data needed for the uncp multiplexer (DSA gateway) interface 2 9* implementation. 2 10* END HISTORY COMMENTS */ 2 11 2 12 2 13 /* Values for fnpe.type field */ 2 14 /* 2 15* Created 79 May 14 by Art Beattie by splitting information out from cdt.incl.pl1 2 16* Added in March 1982 - DN7100.fd. 2 17**/ 2 18 2 19 dcl (DN355 init (1), /* a DataNet 355 FNP */ 2 20 DN6600 init (2), /* a DataNet 6600 FNP */ 2 21 DN6670 init (3), /* a Honeywell Bull Network Processor (18x) */ 2 22 DN7100 init (4) /* The DSA Datanet architecture (DN7) */ 2 23 ) fixed bin internal static options (constant); 2 24 2 25 dcl fnp_types (4) char (8) int static options (constant) 2 26 init ("DN355", "DN6600", "DN6670", "DN7100"); 2 27 2 28 dcl fnp_models (4) fixed bin (17) int static options (constant) 2 29 init (355, 6600, 6670, 7100); 2 30 2 31 dcl supported_fnp (4) bit (1) int static options (constant) 2 32 init ("0"b, "0"b, "1"b, "1"b); 2 33 2 34 2 35 /* END INCLUDE FILE ... fnp_types.incl.pl1 */ 1 314 1 315 1 316 /* END INCLUDE FILE ... cdt.incl.pl1 */ 396 397 /* BEGIN INCLUDE FILE ... author_dcl.incl.pl1 */ 3 2 3 3 /* This include file declares the "author" substructure 3 4* in a form suitable for using the PL/I "like" attribute. 3 5* 3 6* Written 750304 by PG 3 7**/ 3 8 3 9 dcl 1 author_dcl aligned based, 4 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 4 2 4 3 /* the "author" items must always be the first ones in the table. The 4 4* module which moves the converted table to the System Control process 4 5* fills in these data items and assumes them to be at the head of the segment 4 6* regardless of the specific table's actual declaration. The variables 4 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 4 8* respectively. For tables installed in multiple processes, these 4 9* are to be used to lock out multiple installations. */ 4 10 4 11 /* Lock should be used as a modification lock. Since, in general, 4 12* entries may not be moved in system tables, even by installations, 4 13* it is sufficient for only installers and programs that change threads 4 14* to set or respect the lock. Simply updating data in an entry 4 15* requires no such protection. 4 16* 4 17* Last_install_time is used by readers of system tables to detect 4 18* installations or other serious modifications. By checking it before 4 19* and after copying a block of data, they can be protected against 4 20* modifications. 4 21* 4 22* Modules that set the lock should save proc_group_id, and then 4 23* put their group id there for the time they hold the lock. 4 24* if they do not actually install the, they should restore the group id. 4 25**/ 4 26 4 27 2 author aligned, /* validation data about table's author */ 4 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 4 29 3 lock bit (36), /* installation lock */ 4 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 4 31 3 update_authorization bit (1) unal, /* update only authorizations */ 4 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 4 33 3 pad bit (33) unaligned, 4 34 3 last_install_time fixed bin (71), 4 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 4 36 3 w_dir char (64), /* author's working directory */ 4 37 4 38 /* END INCLUDE FILE author.incl.pl1 */ 3 10 3 11 2 pad; 3 12 3 13 /* END INCLUDE FILE ... author_dcl.incl.pl1 */ 397 398 /* BEGIN INCLUDE FILE ... line_types.incl.pl1 */ 5 2 5 3 /* Written November 10 1975 by Paul Green */ 5 4 /* Modified October 1978 by Larry Johnson to include line_type_names */ 5 5 /* Modified 12/19/78 by J. Stern to add POLLED_VIP line type */ 5 6 /* Modified 9/27/79 by J. Stern to add X25LAP line type */ 5 7 /* Modified Spring 1981 by Charles Hornig to add HDLC line type */ 5 8 /* Modified May 1981 by Robert Coren to add COLTS line type */ 5 9 /* Modified September 1984 by Robert Coren to correctly count VIP as a synchronous line type */ 5 10 5 11 5 12 /****^ HISTORY COMMENTS: 5 13* 1) change(86-02-25,Negaret), approve(87-07-13,MCR7679), 5 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 5 15* Add a DSA line type. 5 16* 2) change(87-03-17,Beattie), approve(87-07-13,MCR7656), 5 17* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 5 18* Add HASP_OPR to identify HASP workstation consoles with login service. 5 19* END HISTORY COMMENTS */ 5 20 5 21 5 22 declare (LINE_MC initial (-2), 5 23 LINE_TELNET initial (-1), 5 24 LINE_UNKNOWN initial (0), 5 25 LINE_ASCII initial (1), 5 26 LINE_1050 initial (2), 5 27 LINE_2741 initial (3), 5 28 LINE_ARDS initial (4), 5 29 LINE_SYNCH initial (5), 5 30 LINE_G115 initial (6), 5 31 LINE_BSC initial (7), 5 32 LINE_ETX initial (8), 5 33 LINE_VIP initial (9), 5 34 LINE_ASYNC1 initial (10), 5 35 LINE_ASYNC2 initial (11), 5 36 LINE_ASYNC3 initial (12), 5 37 LINE_SYNC1 initial (13), 5 38 LINE_SYNC2 initial (14), 5 39 LINE_SYNC3 initial (15), 5 40 LINE_POLLED_VIP initial (16), 5 41 LINE_X25LAP initial (17), 5 42 LINE_HDLC initial (18), 5 43 LINE_COLTS initial (19), 5 44 LINE_DSA initial (20), 5 45 LINE_HASP_OPR initial (21) 5 46 ) fixed bin internal static options (constant); 5 47 5 48 dcl max_line_type fixed bin int static options (constant) init (21); 5 49 5 50 declare n_sync_line_types fixed bin int static options (constant) init (10); 5 51 5 52 declare sync_line_type (10) fixed bin int static options (constant) init (5, 6, 7, 9, 13, 14, 15, 16, 17, 18); 5 53 5 54 dcl line_types (-2:21) char (16) int static options (constant) init ( 5 55 "MC", /* -2 */ 5 56 "TELNET", /* -1 */ 5 57 "none", /* 0 */ 5 58 "ASCII", /* 1 */ 5 59 "1050", /* 2 */ 5 60 "2741", /* 3 */ 5 61 "ARDS", /* 4 */ 5 62 "Sync", /* 5 */ 5 63 "G115", /* 6 */ 5 64 "BSC", /* 7 */ 5 65 "202ETX", /* 8 */ 5 66 "VIP", /* 9 */ 5 67 "ASYNC1", /* 10 */ 5 68 "ASYNC2", /* 11 */ 5 69 "ASYNC3", /* 12 */ 5 70 "SYNC1", /* 13 */ 5 71 "SYNC2", /* 14 */ 5 72 "SYNC3", /* 15 */ 5 73 "POLLED_VIP", /* 16 */ 5 74 "X25LAP", /* 17 */ 5 75 "HDLC", /* 18 */ 5 76 "COLTS", /* 19 */ 5 77 "DSA", /* 20 */ 5 78 "HASP_OPR"); /* 21 */ 5 79 5 80 /* END INCLUDE FILE ... line_types.incl.pl1 */ 398 399 /* BEGIN INCLUDE FILE ... baud_rates.incl.pl1 */ 6 2 6 3 /* Defines valid baud rate values for communications channels */ 6 4 6 5 /* Created by somebody a long time ago */ 6 6 /* Modified April 1982 by Robert Coren to add speeds above 9600 (up to 72000) */ 6 7 6 8 dcl baud_table (15) fixed bin int static options (constant) init 6 9 (110, 133, 150, 300, 600, 1200, 1800, 2400, 4800, 7200, 6 10 9600, 19200, 40800, 50000, 72000); 6 11 6 12 /* END INCLUDE FILE ... baud_rates.incl.pl1 */ 399 400 /* BEGIN INCLUDE FILE ... dataset_names.incl.pl1 */ 7 2 7 3 /* Created June 4, 1976 by Mike Grady */ 7 4 7 5 dcl dataset_names (0:7) char (8) int static options (constant) init ( 7 6 "none", 7 7 "103A", 7 8 "201C", 7 9 "202C5", 7 10 "202C6", 7 11 "208A", 7 12 "208B", 7 13 "209A"); 7 14 7 15 /* END INCLUDE FILE ... dataset_names.incl.pl1 */ 400 401 /* Begin include file ..... multiplexer_types.incl.pl1 */ 8 2 8 3 8 4 8 5 /****^ HISTORY COMMENTS: 8 6* 1) change(89-03-20,Parisek), approve(89-06-01,MCR8110), 8 7* audit(89-10-09,Farley), install(89-10-25,MR12.3-1100): 8 8* Add support of protocol mpx. 8 9* END HISTORY COMMENTS */ 8 10 8 11 8 12 /* This include file defines known multiplexer types */ 8 13 /* Prepared August 1978 by Larry Johnson */ 8 14 /* Changed April 1979 to rename the fnp multiplexer mcs */ 8 15 8 16 dcl (TTY_MPX init (0), /* nonmultiplexed channel */ 8 17 MCS_MPX init (1), /* FNP running MCS */ 8 18 USER1_MPX init (2), /* a range of values for user defined multiplexers */ 8 19 USER2_MPX init (3), 8 20 USER3_MPX init (4), 8 21 USER4_MPX init (5), 8 22 USER5_MPX init (6), 8 23 IBM3270_MPX init (7), /* IBM 3270 display terminal controller */ 8 24 VIP7760_MPX init (8), /* Honeywell VIP 7760 terminal controller */ 8 25 STY_MPX init (9), /* Software Terminal Facility */ 8 26 LAP_MPX init (10), /* Link Access Protocol (X.25 level 2) */ 8 27 X25_MPX init (11), /* CCITT X.25 level 3 */ 8 28 HASP_MPX init (12), /* HASP RJE protocol */ 8 29 UNCP_MPX init (13), /* DSA protocol */ 8 30 SYSTEM2_MPX init (14), 8 31 SYSTEM1_MPX init (15), 8 32 PROTOCOL_MPX init (16)) /* TCP/IP network X.25 protocol */ 8 33 int static options (constant); 8 34 8 35 dcl mpx_types (0:16) char (32) int static options (constant) init ( 8 36 "tty", "mcs", "user1", "user2", "user3", "user4", "user5", "ibm3270", 8 37 "vip7760", "sty", "lap", "x25", "hasp", "uncp", "system2", "system1", 8 38 "protocol"); 8 39 8 40 dcl mpx_special_lock (0:16) bit (1) int static options (constant) init ( 8 41 "0"b, "1"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, 8 42 "0"b, "0"b, "0"b, "0"b, "0"b, "1"b, "0"b, "0"b, "0"b); 8 43 8 44 /* End include file ..... multiplexer_types.incl.pl1 */ 401 402 /* BEGIN INCLUDE FILE ... dialup_values.incl.pl1 */ 9 2 9 3 /* format: style4 */ 9 4 9 5 /* Values for "cdte.tra_vec" used by dialup_ and others. */ 9 6 9 7 /* Modified by T. Casey April 1976 to add WAIT_NEW_PASSWORD 9 8* - in 1977 and 1978 to add WAIT_(GREETING_MSG DELETE_CHANNEL) 9 9* - and in October 1979 to add WAIT_CONNECT_REQUEST 9 10* Modified by Robert Coren in May 1981 to add TANDD_ATTACH values and 9 11* WAIT_DISCARD_WAKEUP 9 12* Modified by T. Casey, July 1981, for MR9.0, to add WAIT_BEFORE_HANGUP. 9 13* Modified by E. N. Kittlitz, July 1982, to add TTY_MASKED. 9 14**/ 9 15 9 16 /****^ HISTORY COMMENTS: 9 17* 1) change(87-04-20,GDixon), approve(87-07-13,MCR7741), 9 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 19* Add constant arrays naming cdte.state, cdte.tra_vec and ute.active values. 9 20* 2) change(87-05-11,GDixon), approve(87-07-13,MCR7741), 9 21* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 22* Add named constants for instance tags. 9 23* END HISTORY COMMENTS */ 9 24 9 25 dcl (WAIT_DIALUP init (1), /* Channel waiting for dialup. */ 9 26 WAIT_ANSWERBACK initial (2), /* WRU sent, waiting for reply */ 9 27 WAIT_LOGIN_LINE init (3), /* Greeting typed, wait for login command. */ 9 28 WAIT_LOGIN_ARGS init (4), /* Want rest of login line */ 9 29 WAIT_OLD_PASSWORD init (5), /* "-cpw" was specified. Wait for old password. */ 9 30 WAIT_PASSWORD init (6), /* Waiting for password. (If "-cpw", repeat of new one.) */ 9 31 WAIT_NEW_PASSWORD init (7), /* "-cpw" was specified. Wait for new password */ 9 32 WAIT_LOGOUT_SIG init (8), /* Channel is hooked up. Wait for logout. */ 9 33 WAIT_LOGOUT init (9), /* A logout has been requested. Wait for process to die */ 9 34 WAIT_LOGOUT_HOLD init (10), /* As above but don't hang up when it dies. */ 9 35 WAIT_DETACH init (11), /* As above but ignore channel afterwards. */ 9 36 WAIT_NEW_PROC init (12), /* As above but make new process and continue. */ 9 37 WAIT_REMOVE init (13), /* As above but completely expunge channel. */ 9 38 WAIT_FIN_PRIV_ATTACH init (14), /* When channel dials up, connect it to user */ 9 39 WAIT_DIAL_RELEASE init (15), /* Waiting for master process to release. */ 9 40 WAIT_DIAL_OUT init (16), /* Waiting for auto call to complete */ 9 41 WAIT_HANGUP init (17), /* Wait for the hangup event to occur for a channel */ 9 42 WAIT_SLAVE_REQUEST init (18), /* Ignore line until someone asks */ 9 43 WAIT_GREETING_MSG init (19), /* Print greeting message and wait for login line */ 9 44 WAIT_DELETE_CHANNEL init (20), /* Channel deleted - mark cdte after process is destroyed */ 9 45 WAIT_CONNECT_REQUEST init (21), /* logged in; awaiting request re disconnected processes */ 9 46 WAIT_TANDD_HANGUP init (22), /* when channel hangs up, proceed with t & d attachment */ 9 47 WAIT_FIN_TANDD_ATTACH init (23), /* when channel dials up, finish t & d attachment */ 9 48 WAIT_DISCARD_WAKEUPS init (24), /* disregard all wakeups on channel */ 9 49 WAIT_BEFORE_HANGUP init (25), /* allow output to print before hanging up */ 9 50 WAIT_DESTROY_REQUEST init (26), /* waiting to continue with destroy request after process has destroyed itself */ 9 51 WAIT_NEW_PROC_REQUEST init (27) /* waiting to continue with new_proc request after process has destroyed itself */ 9 52 ) fixed bin internal static options (constant); 9 53 9 54 dcl TRA_VEC_VALUES (0:13) char (32) aligned int static options (constant) init 9 55 /* names of ute.destroy_flag values */ 9 56 ("", "wait dialup", "wait answerback", "wait login line", /* 0-3 */ 9 57 "wait login args", "wait old password", "wait password", /* 4-6 */ 9 58 "wait new password", "wait logout signal", "wait logout", /* 7-9 */ 9 59 "wait logout hold", "wait detach", "wait new proc", /* 10-12 */ 9 60 "wait remove"); /* -13 */ 9 61 9 62 /* Values for "cdte.state", typewriter state. */ 9 63 9 64 dcl (TTY_MASKED init (-1), /* Terminal channel is there, but masked by MCS */ 9 65 TTY_HUNG init (1), /* Terminal channel is there, but dead. */ 9 66 TTY_KNOWN init (2), /* Channel being "listened" to, awaiting dialup. */ 9 67 TTY_DIALED init (5) /* Channel is dialed up. This is normal state. */ 9 68 ) fixed bin internal static options (constant); 9 69 9 70 dcl STATE_VALUES (-1:5) char (15) aligned int static options (constant) init 9 71 /* names of cdte.state values */ 9 72 ("masked", "dead", "hung up", "listening", "", "", "dialed up"); 9 73 9 74 /* Values for "cdte.in_use" and "ate.active" */ 9 75 9 76 dcl (NOW_FREE init (0), /* Entry is empty. */ 9 77 NOW_HUNG_UP init (1), /* Entry is usable but tty is hung up. */ 9 78 NOW_LISTENING init (2), /* Entry is waiting for phone call. */ 9 79 NOW_DIALED init (3), /* Entry is connected but login not complete. */ 9 80 NOW_LOGGED_IN init (4), /* Entry is logged in but no process. */ 9 81 NOW_HAS_PROCESS init (5), /* Entry has a valid process. */ 9 82 NOW_DIALING init (6), /* Entry (auto_call line) is dialing */ 9 83 NOW_DIALED_OUT init (7) /* Entry (auto_call line) is in use */ 9 84 ) fixed bin internal static options (constant); 9 85 9 86 dcl ACTIVE_VALUES (0:5) char (18) aligned int static options (constant) init 9 87 /* names of ute.active values */ 9 88 ("free", "hung-up", "listening", "dialed", "logged in, no proc", "logged in & proc"); 9 89 9 90 9 91 /**** Values for ute.tag */ 9 92 9 93 dcl (TAG_INTERACTIVE init("a"), 9 94 TAG_UFT init("f"), 9 95 TAG_ABSENTEE init("m"), 9 96 TAG_PROXY init("p"), 9 97 TAG_DAEMON init("z") 9 98 ) char(1) int static options(constant); 9 99 9 100 9 101 /**** Following are constants used to indicate to the process termination 9 102* handler the reason for the process termination. They are used by 9 103* uc_proc_term_handler_, as well as uc_ls_new_proc_request_ and 9 104* uc_ls_destroy_request_. */ 9 105 9 106 dcl ( 9 107 PT_FPE initial (1), 9 108 PT_LOGOUT initial (4), 9 109 PT_NEW_PROC_AUTH initial (13), 9 110 PT_HANGUP initial (20), 9 111 PT_SHUTDOWN initial (21), 9 112 PT_BUMP initial (22), 9 113 PT_ALARM initial (23), 9 114 PT_DETACH initial (24), 9 115 PT_UNBUMP initial (25), 9 116 PT_OPERATOR_TERMINATE initial (27), 9 117 PT_DESTROY_REQUEST initial (30), 9 118 PT_NEW_PROC_REQUEST initial (31) 9 119 ) fixed bin (17) internal static options (constant); 9 120 9 121 /**** Values for ute.preempted: 9 122* -1 user unbumped after term signal sent 9 123* 0 user unbumped; ignore alarm___ 9 124* 1 value internally used in load_ctl_ 9 125* 2 user bumped; when alarm___ comes in, send term signal 9 126* 3 term signal sent; destroy process if termsgnl, alarm___, or cpulimit 9 127* signals come in 9 128* 4 user bumped; process sick, so destroy without sending term signal 9 129* 5 trm_ signal sent, termsgnl received; (if still 3, we never got the 9 130* termsgnl). */ 9 131 9 132 dcl ( 9 133 PREEMPT_UNBUMP initial (-1), 9 134 PREEMPT_UNBUMP_IGNORE_ALARM initial (0), 9 135 PREEMPT_LOAD_CTL initial (1), 9 136 PREEMPT_BUMPED initial (2), 9 137 PREEMPT_TERM_SENT initial (3), 9 138 PREEMPT_BUMPED_NO_TERM initial (4), 9 139 PREEMPT_TERMSGNL_RECEIVED initial (5) 9 140 ) fixed bin (17) internal static options(constant); 9 141 9 142 dcl PREEMPT_VALUES (-1:5) char(28) varying int static options(constant) init( 9 143 "unbumped", 9 144 "not bumped, ignore alarm___", 9 145 "load_ctl_", 9 146 "bumped", 9 147 "bumped, trm_ sent", 9 148 "bumped without trm_", 9 149 "bumped, termsgnl received"); 9 150 9 151 /* END INCLUDE FILE ... dialup_values.incl.pl1 */ 402 403 /* BEGIN INCLUDE FILE sub_error_info.incl.pl1 */ 10 2 /* format: style2 */ 10 3 10 4 /* The include file condition_info_header must be used with this file */ 10 5 10 6 declare sub_error_info_ptr pointer; 10 7 declare 1 sub_error_info aligned based (sub_error_info_ptr), 10 8 2 header aligned like condition_info_header, 10 9 2 retval fixed bin (35), /* return value */ 10 10 2 name char (32), /* module name */ 10 11 2 info_ptr ptr; 10 12 10 13 declare sub_error_info_version_1 10 14 internal static options (constant) fixed bin init (1); 10 15 10 16 /* END INCLUDE FILE sub_error_info.incl.pl1 */ 403 11 1 /* BEGIN INCLUDE FILE condition_info_header.incl.pl1 BIM 1981 */ 11 2 /* format: style2 */ 11 3 11 4 declare condition_info_header_ptr 11 5 pointer; 11 6 declare 1 condition_info_header 11 7 aligned based (condition_info_header_ptr), 11 8 2 length fixed bin, /* length in words of this structure */ 11 9 2 version fixed bin, /* version number of this structure */ 11 10 2 action_flags aligned, /* tell handler how to proceed */ 11 11 3 cant_restart bit (1) unaligned, /* caller doesn't ever want to be returned to */ 11 12 3 default_restart bit (1) unaligned, /* caller can be returned to with no further action */ 11 13 3 quiet_restart bit (1) unaligned, /* return, and print no message */ 11 14 3 support_signal bit (1) unaligned, /* treat this signal as if the signalling procedure had the support bit set */ 11 15 /* if the signalling procedure had the support bit set, do the same for its caller */ 11 16 3 pad bit (32) unaligned, 11 17 2 info_string char (256) varying, /* may contain printable message */ 11 18 2 status_code fixed bin (35); /* if^=0, code interpretable by com_err_ */ 11 19 11 20 /* END INCLUDE FILE condition_info_header.incl.pl1 */ 404 12 1 /* BEGIN INCLUDE FILE ... condition_info.incl.pl1 */ 12 2 12 3 /* Structure for find_condition_info_. 12 4* 12 5* Written 1-Mar-79 by M. N. Davidoff. 12 6**/ 12 7 12 8 /* automatic */ 12 9 12 10 declare condition_info_ptr pointer; 12 11 12 12 /* based */ 12 13 12 14 declare 1 condition_info aligned based (condition_info_ptr), 12 15 2 mc_ptr pointer, /* pointer to machine conditions at fault time */ 12 16 2 version fixed binary, /* Must be 1 */ 12 17 2 condition_name char (32) varying, /* name of condition */ 12 18 2 info_ptr pointer, /* pointer to the condition data structure */ 12 19 2 wc_ptr pointer, /* pointer to wall crossing machine conditions */ 12 20 2 loc_ptr pointer, /* pointer to location where condition occured */ 12 21 2 flags unaligned, 12 22 3 crawlout bit (1), /* on if condition occured in lower ring */ 12 23 3 pad1 bit (35), 12 24 2 pad2 bit (36), 12 25 2 user_loc_ptr pointer, /* ptr to most recent nonsupport loc before condition occurred */ 12 26 2 pad3 (4) bit (36); 12 27 12 28 /* internal static */ 12 29 12 30 declare condition_info_version_1 12 31 fixed binary internal static options (constant) initial (1); 12 32 12 33 /* END INCLUDE FILE ... condition_info.incl.pl1 */ 405 406 declare 1 auto_condition_info aligned like condition_info; 407 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 13 2 /* format: style2,^inddcls,idind32 */ 13 3 13 4 declare 1 terminate_file_switches based, 13 5 2 truncate bit (1) unaligned, 13 6 2 set_bc bit (1) unaligned, 13 7 2 terminate bit (1) unaligned, 13 8 2 force_write bit (1) unaligned, 13 9 2 delete bit (1) unaligned; 13 10 13 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 13 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 13 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 13 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 13 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 13 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 13 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 13 18 13 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 407 408 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 14 2* 14 3* Values for the "access mode" argument so often used in hardcore 14 4* James R. Davis 26 Jan 81 MCR 4844 14 5* Added constants for SM access 4/28/82 Jay Pattin 14 6* Added text strings 03/19/85 Chris Jones 14 7**/ 14 8 14 9 14 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 14 11 dcl ( 14 12 N_ACCESS init ("000"b), 14 13 R_ACCESS init ("100"b), 14 14 E_ACCESS init ("010"b), 14 15 W_ACCESS init ("001"b), 14 16 RE_ACCESS init ("110"b), 14 17 REW_ACCESS init ("111"b), 14 18 RW_ACCESS init ("101"b), 14 19 S_ACCESS init ("100"b), 14 20 M_ACCESS init ("010"b), 14 21 A_ACCESS init ("001"b), 14 22 SA_ACCESS init ("101"b), 14 23 SM_ACCESS init ("110"b), 14 24 SMA_ACCESS init ("111"b) 14 25 ) bit (3) internal static options (constant); 14 26 14 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 14 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 14 29 14 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 14 31 static options (constant); 14 32 14 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 14 34 static options (constant); 14 35 14 36 dcl ( 14 37 N_ACCESS_BIN init (00000b), 14 38 R_ACCESS_BIN init (01000b), 14 39 E_ACCESS_BIN init (00100b), 14 40 W_ACCESS_BIN init (00010b), 14 41 RW_ACCESS_BIN init (01010b), 14 42 RE_ACCESS_BIN init (01100b), 14 43 REW_ACCESS_BIN init (01110b), 14 44 S_ACCESS_BIN init (01000b), 14 45 M_ACCESS_BIN init (00010b), 14 46 A_ACCESS_BIN init (00001b), 14 47 SA_ACCESS_BIN init (01001b), 14 48 SM_ACCESS_BIN init (01010b), 14 49 SMA_ACCESS_BIN init (01011b) 14 50 ) fixed bin (5) internal static options (constant); 14 51 14 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 408 409 /* format: on */ 410 411 /* program */ 412 413 cmfp = null; /* Initialize for cleanup handler */ 414 cdtp = null; /* .. */ 415 areap = null; /* .. */ 416 dn, supplied_en = ""; 417 created_table_segment = ""b; 418 419 on cleanup 420 begin; 421 call clean_up; /* do any tidying up of address space */ 422 cv_cmf_severity_ = 5; /* fie on you */ 423 end; 424 425 call cu_$arg_count (argc, ec); /* Note AF calls */ 426 if ec ^= 0 427 then do; 428 call com_err_ (ec, my_name); 429 go to severity_5_failure; 430 end; 431 432 if argc = 0 433 then do; 434 give_usage: 435 call com_err_$suppress_name (0, my_name, "Usage: cv_cmf CMF (-brief|-bf|-long|-lg)"); 436 go to severity_5_failure; 437 end; 438 439 do argx = 1 to argc; 440 call cu_$arg_ptr (argx, ap, al, (0)); 441 if character (bchr, 1) ^= "-" 442 then do; 443 if supplied_en ^= "" 444 then do; 445 call com_err_ (error_table_$too_many_args, my_name, 446 "Only one pathname may be given. ^a was the second.", bchr); 447 go to severity_5_failure; 448 end; 449 450 call expand_pathname_ (bchr, dn, supplied_en, ec); 451 if ec ^= 0 452 then do; 453 path_error: 454 call com_err_ (ec, my_name, "^a", bchr); 455 go to severity_5_failure; 456 end; 457 call expand_pathname_$add_suffix (bchr, "cmf", dn, cmf_en, ec); 458 if ec ^= 0 459 then go to path_error; 460 461 call suffixed_name_$new_suffix (supplied_en, "cmf", "cdt", cdt_en, ec); 462 /* if we get this far, how can we fail? */ 463 if ec ^= 0 /* still, let's have a look */ 464 then go to path_error; 465 466 end; /* Pathname case */ 467 468 else if bchr = "-bf" 469 then SERROR_CONTROL = "01"b; 470 else if bchr = "-brief" 471 then SERROR_CONTROL = "01"b; 472 else if bchr = "-long" | bchr = "-lg" 473 then SERROR_CONTROL = "10"b; 474 else if bchr = "-severity" | bchr = "-sv" 475 then do; 476 if argx >= argc 477 then do; 478 call com_err_ (error_table_$noarg, my_name, "After ""^a"".", bchr); 479 go to severity_5_failure; 480 end; 481 argx = argx + 1; 482 call cu_$arg_ptr (argx, ap, al, ec); 483 fb35 = cv_dec_check_ (bchr, ec); 484 if ec ^= 0 | fb35 < 0 | fb35 > 5 485 then do; 486 call com_err_ (error_table_$bad_conversion, my_name, 487 "Severity must be an integer in the range 0 - 5, not ""^a"".", bchr); 488 go to severity_5_failure; 489 end; 490 MIN_PRINT_SEVERITY = fb35; 491 end; 492 else do; 493 call com_err_ (error_table_$badopt, my_name, "^a", bchr); 494 go to severity_5_failure; 495 end; 496 end; /* Arg Loop */ 497 498 if supplied_en = "" 499 then go to give_usage; 500 call system_info_$device_prices (ndev, addr (dvt)); 501 502 call initiate_file_ (dn, cmf_en, R_ACCESS, cmfp, bitc, ec); 503 if ec = error_table_$noentry 504 then if cmf_en ^= supplied_en 505 then do; 506 call initiate_file_ (dn, supplied_en, R_ACCESS, cmfp, bitc, ec); 507 if ec = 0 508 then do; 509 call com_err_ (0, my_name, "Warning: converting ^a. The segment should be named ^a.", 510 pathname_ (dn, supplied_en), cmf_en); 511 cmf_en = supplied_en; 512 end; 513 end; 514 if ec ^= 0 515 then do; 516 cmf_error: 517 call com_err_ (ec, my_name, "^a.", pathname_ (dn, cmf_en)); 518 go to severity_5_failure; 519 end; 520 521 n = divide (bitc + 8, 9, 24, 0); 522 if n = 0 523 then do; 524 ec = error_table_$zero_length_seg; 525 go to cmf_error; 526 end; 527 528 dn = get_wdir_ (); 529 call hcs_$make_seg (dn, cdt_en, "", 1010b, cdtp, ec); 530 created_table_segment = (ec = 0); 531 if cdtp = null 532 then do; 533 cdt_error: 534 call com_err_ (ec, my_name, "^a.", pathname_ (dn, cdt_en)); 535 go to severity_5_failure; 536 end; 537 538 call hcs_$truncate_seg (cdtp, 0, ec); /* if we set it all to ""b, it would take all the page faults */ 539 if ec ^= 0 540 then go to cdt_error; 541 542 cdtep = addr (cdt.cdt_entry (1)); 543 544 cdt.author.proc_group_id = get_group_id_ (); /* Initialize the header of the new cdt */ 545 cdt.author.table = "CDT"; 546 dn = get_shortest_path_ (dn); 547 cdt.author.w_dir = substr (dn, 1, length (cdt.author.w_dir)); 548 cdt.author.last_install_time = 0; 549 cdt.version = CDT_version; 550 cdt.max_size = divide (sys_info$max_seg_size - bin (rel (cdtep), 18), size (cdte), 17, 0); 551 cdt.acceptable_fnp_tbf = 5; 552 cdt.spare_channel_count = 10; 553 554 unspec (dft) = "0"b; /* Zero the defaults .. the lazy way */ 555 cdtep = addr (dft); /* Set up cdtep to point at the dfts. */ 556 dft.name = ""; /* Initialize defaults */ 557 dft.comment = ""; 558 dft.charge_type = 0; 559 dft.line_type = LINE_UNKNOWN; 560 dft.initial_terminal_type = ""; /* nothing special */ 561 dft.current_terminal_type = ""; 562 dft.tty_id_code = ""; 563 string (dft.user_name) = ""; 564 dft.baud_rate = 300; 565 dft.modem_type = 0; 566 string (dft.flags) = "0"b; 567 dft.service_type = ANS_SERVICE; /* dialup line */ 568 dft.answerback = ""; 569 dft.initial_command = ""; 570 call convert_authorization_$from_string_range (dft.access_class, "system_low", code); 571 572 call translator_temp_$get_segment (my_name, areap, code); 573 if areap = null 574 then do; 575 call com_err_ (code, my_name, "While making a temporary segment in the process directory."); 576 go to severity_5_failure; 577 end; 578 579 if first 580 then do; 581 BREAKS = substr (collate (), 1, 8) || substr (collate (), 10, 24) || "()*,:;^"; 582 IGBREAKS = substr (collate (), 1, 8) || substr (collate (), 10, 24); 583 call lex_string_$init_lex_delims ("""", """", "/*", "*/", ";", "10"b, BREAKS, IGBREAKS, LEXDLM, 584 LEXCTL); 585 first = "0"b; 586 end; 587 588 call lex_string_$lex (cmfp, n, 0, areap, "100"b, """", """", "/*", "*/", ";", BREAKS, IGBREAKS, LEXDLM, LEXCTL, 589 APstmt, APtoken, ec); 590 591 Pthis_token = APtoken; 592 call SEMANTIC_ANALYSIS (); 593 594 /* now let individual sub-channels judge on their channels */ 595 596 system_areap = get_system_free_area_ (); 597 allocate mpx_error_printed in (system_area); 598 string (mpx_error_printed) = "0"b; 599 600 do i = 1 to hbound (cdt.fnp_entry, 1); 601 fnpep = addr (cdt.fnp_entry (i)); 602 if fnpe.state ^= FNP_FREE 603 then call process_subchans (fnpep, substr (collate (), rank ("a") + i, 1), fnpe.mpx_type); 604 end; 605 606 do i = 1 to cdt.current_size; 607 cdtep = addr (cdt.cdt_entry (i)); 608 if cdte.service_type = MPX_SERVICE 609 then call process_subchans (cdtep, (cdte.name), (cdte.mpx_type)); 610 end; 611 612 /* thread proc will detect missing parents and the like */ 613 614 on sub_error_ 615 begin; 616 declare almsg char (100) aligned; 617 call find_condition_info_ (null, addr (auto_condition_info), (0)); 618 sub_error_info_ptr = auto_condition_info.info_ptr; 619 call convert_status_code_ (sub_error_info.status_code, "", almsg); 620 if ^sub_error_info.default_restart /* not warning */ 621 then do; 622 call semant_error (6, (almsg), (sub_error_info.info_string)); 623 go to abort; 624 end; 625 call semant_error (25, (almsg), (sub_error_info.info_string)); 626 /* Warning */ 627 end; 628 629 call cdt_mgr_$thread (cdtp, (0)); /* we look at condition, not code */ 630 revert sub_error_; 631 632 abort: 633 if MERROR_SEVERITY > 2 634 then do; 635 call com_err_ (error_table_$translation_failed, my_name, cmf_en); 636 if created_table_segment 637 then bitc = -1; 638 else bitc = 0; 639 end; 640 else bitc = (wordno (addr (cdt.cdt_entry (1))) + size (cdte) * cdt.current_size) * 36; 641 if bitc >= 0 642 then do; 643 call terminate_file_ (cdtp, bitc, TERM_FILE_TRUNC_BC_TERM, ec); 644 if ec ^= 0 645 then do; 646 call com_err_ (ec, my_name, "Unable to set bitcount on ^a to ^d.", pathname_ (dn, cdt_en), 647 bitc); 648 go to severity_5_failure; 649 end; 650 end; 651 652 call clean_up; 653 cv_cmf_severity_ = MERROR_SEVERITY; 654 return; 655 656 severity_5_failure: 657 call clean_up; 658 cv_cmf_severity_ = 5; 659 return; 660 661 662 clean_up: 663 procedure; 664 665 if cmfp ^= null 666 then call terminate_file_ (cmfp, (0), TERM_FILE_TERM, (0)); 667 668 if cdtp ^= null 669 then if created_table_segment 670 then do; 671 call terminate_file_ (cdtp, (0), TERM_FILE_DELETE, (0)); 672 cdtp = null; 673 end; 674 else call terminate_file_ (cdtp, (0), TERM_FILE_TRUNC_BC_TERM, (0)); 675 676 if areap ^= null 677 then call translator_temp_$release_all_segments (areap, (0)); 678 679 end clean_up; 680 681 /* SYNTAX FUNCTIONS */ 682 683 access_class: 684 procedure () returns (bit (1) aligned); 685 686 call convert_authorization_$from_string_range (access_class_value, token_value, code); 687 return (code = 0); 688 689 end access_class; 690 691 692 693 694 legal_line_type: 695 proc returns (bit (1)); 696 697 dcl temp_line_type character (16); /* because we want to make changes to names, we need auto version */ 698 699 temp_line_type = token_value; 700 701 if temp_line_type = "Network" 702 then temp_line_type = "TELNET"; 703 704 do line_type_value = lbound (line_types, 1) to hbound (line_types, 1) 705 while (temp_line_type ^= line_types (line_type_value)); 706 end; 707 if line_type_value > hbound (line_types, 1) 708 then return ("0"b); /* The 1050, 2741, ETX and ARDS line types are no longer valid. */ 709 if line_type_value = LINE_1050 | line_type_value = LINE_2741 | line_type_value = LINE_ARDS 710 | line_type_value = LINE_ETX 711 then return ("0"b); 712 return ("1"b); 713 714 end legal_line_type; 715 716 717 718 719 legal_charge: 720 proc returns (bit (1) aligned); 721 722 if token_value = "none" 723 then do; 724 charge_value = 0; 725 return ("1"b); 726 end; 727 728 do charge_value = 1 to ndev while (token_value ^= dvt.device_id (charge_value)); 729 end; 730 if charge_value > ndev 731 then return ("0"b); 732 return ("1"b); 733 734 end legal_charge; 735 736 legal_service: 737 proc returns (bit (1) aligned); 738 739 dcl temp_service_type character (12); /* because we want to make changes, we need auto variable */ 740 741 temp_service_type = token_value; 742 743 if temp_service_type = "mc" 744 then temp_service_type = "MC"; 745 else if temp_service_type = "ftp" 746 then temp_service_type = "FTP"; 747 748 do service_value = lbound (services, 1) to hbound (services, 1) 749 while (temp_service_type ^= services (service_value)); 750 end; 751 if service_value > hbound (services, 1) 752 then return ("0"b); 753 return ("1"b); 754 755 end legal_service; 756 757 758 759 760 legal_fnp_type: 761 proc returns (bit (1) aligned); 762 763 do fnp_type_value = 1 to hbound (fnp_types, 1) while (token_value ^= fnp_types (fnp_type_value)); 764 end; 765 if fnp_type_value > hbound (fnp_types, 1) 766 then do; 767 if token_value ^= "HNP" 768 then return ("0"b); 769 fnp_type_value = 3; 770 end; 771 return ("1"b); 772 773 end legal_fnp_type; 774 775 776 777 778 legal_baud: 779 proc returns (bit (1) aligned); 780 781 baud_rate_value = cv_dec_check_ (token_value, code); 782 if code ^= 0 783 then return ("0"b); 784 785 if baud_rate_value = 0 786 then return ("1"b); 787 if baud_rate_value = 133 /* no longer valid */ 788 then return ("0"b); 789 do i = 1 to hbound (baud_table, 1) while (baud_table (i) ^= baud_rate_value); 790 end; 791 if i > hbound (baud_table, 1) 792 then return ("0"b); 793 return ("1"b); 794 795 end legal_baud; 796 797 legal_fnp_service: 798 proc returns (bit (1) aligned); 799 800 if token_value = "active" 801 then service_value = ACTIVE; 802 else if token_value = "inactive" 803 then service_value = INACTIVE; 804 else return ("0"b); 805 return ("1"b); 806 807 end legal_fnp_service; 808 809 810 811 812 legal_dataset: 813 proc returns (bit (1) aligned); 814 815 do dataset_value = 1 to hbound (dataset_names, 1) while (token_value ^= dataset_names (dataset_value)); 816 end; 817 if dataset_value > hbound (dataset_names, 1) 818 then return ("0"b); 819 return ("1"b); 820 821 end legal_dataset; 822 823 824 825 826 legal_mpx_type: 827 proc returns (bit (1) aligned); 828 829 do mpx_type_value = 1 to hbound (mpx_types, 1) while (token_value ^= mpx_types (mpx_type_value)); 830 end; 831 if mpx_type_value > hbound (mpx_types, 1) 832 then return ("0"b); 833 else return ("1"b); 834 835 end legal_mpx_type; 836 837 /* SEMANTIC FUNCTIONS */ 838 839 open_chn: 840 proc; 841 842 dcl i fixed bin; 843 dcl fnp_no fixed bin; 844 dcl (name1, name2) char (64) var; 845 dcl (chan1, chan2) fixed bin; 846 dcl pic9 picture "999999"; 847 848 if cdt.current_size = cdt.max_size 849 then do; 850 pic9 = cdt.max_size; 851 call semant_error (9, ltrim (pic9, "0"), ""); 852 go to abort; 853 end; 854 855 channels_open = 0; 856 i = index (token_value, "-"); /* check for range of channels */ 857 if i = 0 858 then do; /* one channel */ 859 name1 = token_value; 860 channels_open = 1; 861 end; 862 else do; 863 if i = 1 | i = token.Lvalue 864 then do; /* bad range syntax */ 865 bad_pair: 866 call ERROR (45); 867 name1 = "dummy"; 868 channels_open = 1; 869 go to make_cdt_entry; 870 end; 871 name1 = substr (token_value, 1, i - 1); 872 name2 = substr (token_value, i + 1); 873 if length (name1) ^= length (name2) 874 then go to bad_pair; 875 if name1 = name2 876 then go to bad_pair; 877 do i = 1 to length (name1) while (substr (name1, i, 1) = substr (name2, i, 1)); 878 end; /* count equal characters */ 879 channel_digits = length (name1) - i + 1;/* number of digits that will vary */ 880 if verify (substr (name1, i), "0123456789") ^= 0 881 then go to bad_pair; 882 if verify (substr (name2, i), "0123456789") ^= 0 883 then go to bad_pair; 884 chan1 = bin (substr (name1, i)); /* starting channel */ 885 chan2 = bin (substr (name2, i)); /* ending channel */ 886 if chan1 >= chan2 887 then go to bad_pair; 888 channels_open = chan2 - chan1 + 1; /* number of channels to generate */ 889 end; 890 891 call check_chan_name ((name1), fnp_no, code); 892 if code ^= 0 893 then do; 894 name1 = "dummy"; 895 channels_open = 1; 896 end; 897 898 make_cdt_entry: 899 cdt.current_size, cdt.n_cdtes = cdt.n_cdtes + 1; 900 cdtep = addr (cdt.cdt_entry (cdt.n_cdtes)); 901 cdte = dft; 902 cdte.in_use = NOW_HUNG_UP; 903 cdte.name = name1; 904 905 end open_chn; 906 907 /* declare these variables in the external procedure, so open_chn and close_chn can share them */ 908 909 dcl channels_open fixed bin; 910 dcl channel_digits fixed bin; 911 912 913 914 915 close_chn: 916 proc; 917 918 dcl p ptr; 919 dcl new_name char (64) var; 920 dcl i fixed bin; 921 dcl pic9 picture "99999999"; 922 dcl fnp_no fixed bin; 923 924 if cdt.current_size = 0 925 then return; 926 if cdte.answerback ^= "" 927 then cdte.flags.ck_answerback = "1"b; 928 929 if verify (cdte.comment, substr (collate (), 8, 9) || substr (collate (), 33)) ^= 0 930 then call semant_error (18, (cdte.name), ""); 931 932 if cdte.flags.execute_initial_command & cdte.flags.generic_destination_present 933 then do; 934 call semant_error (55, (cdte.name), ""); 935 cdte.flags.execute_initial_command, cdte.flags.generic_destination_present = "0"b; 936 end; /* can't allow since these fields overlay */ 937 938 if cdte.service_type = MPX_SERVICE 939 then do; /* check for consistency of multiplexer stuff */ 940 if cdte.mpx_type = 0 941 then /* must be specified */ 942 call semant_error (48, (cdte.name), ""); 943 if cdte.flags.execute_initial_command | cdte.flags.generic_destination_present 944 then /* cant allow this, as field is redefined */ 945 call semant_error (49, (cdte.name), ""); 946 unspec (cdte.initial_command) = "0"b; /* reset for mpx use */ 947 cdte.flags.execute_initial_command, cdte.flags.generic_destination_present = "0"b; 948 if cdte.mpx_service = 0 949 then cdte.mpx_service = ACTIVE; 950 end; 951 else if cdte.mpx_type ^= 0 952 then /* cant have multiplexer type for non-mpx chan */ 953 call semant_error (50, (cdte.name), ""); 954 955 956 do i = 2 to channels_open; 957 if cdt.current_size = cdt.max_size 958 then do; 959 pic9 = cdt.max_size; 960 call semant_error (9, ltrim (pic9, "0"), ""); 961 go to abort; 962 end; 963 new_name = rtrim (cdte.name); 964 pic9 = bin (substr (new_name, length (new_name) - channel_digits + 1)) + 1; 965 substr (new_name, length (new_name) - channel_digits + 1) = 966 substr (pic9, length (pic9) - channel_digits + 1); 967 call check_chan_name ((new_name), fnp_no, code); 968 969 cdt.current_size, cdt.n_cdtes = cdt.current_size + 1; 970 /* one more channel entry */ 971 p = addr (cdt.cdt_entry (cdt.n_cdtes)); /* get ptr to new entry */ 972 p -> cdte = cdte; /* copy previous entry into this one */ 973 cdtep = p; /* move cdtep to latest entry */ 974 cdte.name = new_name; /* put in the new name */ 975 976 end; 977 978 979 return; 980 981 end close_chn; 982 983 984 985 986 /* Procedure to check syntax of a channel name */ 987 988 check_chan_name: 989 proc (name, fnp_no, code); 990 991 dcl name char (*); 992 dcl fnp_no fixed bin; 993 dcl code fixed bin (35); 994 dcl i fixed bin; 995 dcl p ptr; 996 dcl hsla bit (1); 997 dcl la_no fixed bin; 998 dcl subchan fixed bin; 999 1000 fnp_no = 0; 1001 code = 0; 1002 if name = "" | length (name) > length (cdte.name) 1003 then do; 1004 bad_chan_name: 1005 call semant_error (28, name, ""); 1006 code = 1; /* error return */ 1007 return; 1008 end; 1009 if (substr (name, 1, 3) = "net" | substr (name, 1, 3) = "ftp") & length (name) = 6 1010 & verify (substr (name, 4), "0123456789") = 0 1011 then ; 1012 else do; 1013 if substr (name, 2, 1) = "." 1014 then do; 1015 call parse_tty_name_ (name, fnp_no, hsla, la_no, subchan); 1016 if fnp_no < 0 1017 then fnp_no = 0; 1018 end; 1019 if index (name, "..") ^= 0 1020 then go to bad_chan_name; 1021 if substr (name, length (name), 1) = "." 1022 then go to bad_chan_name; 1023 if substr (name, 1, 1) = "." 1024 then goto bad_chan_name; 1025 end; 1026 1027 do i = 1 to cdt.current_size; 1028 p = addr (cdt.cdt_entry (i)); 1029 if p -> cdte.name = name 1030 then call semant_error (13, name, ""); 1031 end; 1032 1033 return; 1034 1035 end check_chan_name; 1036 1037 /* let the multiplexer rule on the validity of any of its sub-channels */ 1038 1039 process_subchans: 1040 proc (cdt_entryp, mpx_name, mpx_type); 1041 1042 dcl cdt_entryp ptr; /* cdtep or fnpep */ 1043 dcl mpx_name char (*); 1044 dcl mpx_type fixed bin; 1045 1046 dcl (star_name, segname, entryname) 1047 char (32); 1048 dcl i fixed bin; 1049 dcl p ptr; 1050 dcl entvar entry (ptr, ptr, char (*), ptr, entry) variable; 1051 1052 dcl 1 cdt_list aligned, 1053 2 count fixed bin, 1054 2 cdte_ptr (cdt.current_size) ptr unal; 1055 1056 star_name = rtrim (mpx_name) || ".*"; 1057 cdt_list.count = 0; 1058 do i = 1 to cdt.current_size; 1059 p = addr (cdt.cdt_entry (i)); 1060 call match_star_name_ ((p -> cdte.name), star_name, code); 1061 if code = 0 1062 then do; 1063 cdt_list.count = cdt_list.count + 1; 1064 cdt_list.cdte_ptr (cdt_list.count) = p; 1065 end; 1066 end; 1067 1068 if cdt_list.count > 1 1069 then call sort_items_$general (addr (cdt_list), chan_name_compare); 1070 1071 segname = "as_" || rtrim (mpx_types (mpx_type)) || "_mpx_"; 1072 entryname = rtrim (mpx_types (mpx_type)) || "_cv_cmf"; 1073 call hcs_$make_entry (null (), segname, entryname, entvar, code); 1074 if code ^= 0 1075 then call semant_error (54, rtrim (segname) || "$" || rtrim (entryname), mpx_name); 1076 else do; 1077 mpx_type_value = mpx_type; 1078 call entvar (cdtp, cdt_entryp, mpx_name, addr (cdt_list), mpx_error); 1079 end; 1080 1081 end process_subchans; 1082 1083 1084 1085 1086 chan_name_compare: 1087 proc (p, q) returns (fixed bin (1)); 1088 1089 dcl (p, q) ptr unal; 1090 1091 if p -> cdte.name < q -> cdte.name 1092 then return (-1); 1093 if p -> cdte.name > q -> cdte.name 1094 then return (+1); 1095 return (0); 1096 1097 end chan_name_compare; 1098 1099 open_fnp: 1100 proc; 1101 1102 if length (token_value) > 1 1103 then call ERROR (23); 1104 fnpno = index ("ABCDEFGH", token_value); 1105 if fnpno = 0 1106 then fnpno = index ("abcdefgh", token_value); 1107 if fnpno = 0 1108 then do; 1109 call ERROR (23); 1110 fnpno = 1; /* to avoid blowing up later */ 1111 end; 1112 1113 fnpep = addr (cdt.fnp_entry (fnpno)); 1114 if fnpe.state > 0 1115 then call ERROR (24); 1116 1117 fnpe.state = FNP_DOWN; /* configured, not loaded */ 1118 fnpe.service_type = ACTIVE; /* defaults */ 1119 fnpe.mpx_type = MCS_MPX; 1120 return; 1121 1122 end open_fnp; 1123 1124 1125 1126 1127 close_fnp: 1128 proc; 1129 1130 return; 1131 1132 end close_fnp; 1133 1134 1135 1136 1137 check_terminal_type: 1138 proc; 1139 1140 terminal_type_value = translate (token_value, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz"); 1141 if terminal_type_value = "NONE" 1142 then terminal_type_value = ""; 1143 1144 else do; 1145 call ttt_info_$terminal_data (terminal_type_value, -1, 0, null, code); 1146 if code ^= 0 1147 then call statement_error (46, token_value, ""); 1148 /* warn them about this */ 1149 end; 1150 1151 end check_terminal_type; 1152 1153 semant_error: 1154 proc (error_num, parm1, parm2); 1155 1156 dcl error_num fixed bin, 1157 (parm1, parm2) char (*); 1158 dcl (stmt_ptr, token_ptr) ptr init (null); 1159 1160 goto call_error; 1161 1162 statement_error: 1163 entry (error_num, parm1, parm2); 1164 1165 stmt_ptr = token.Pstmt; /* print the source statement */ 1166 token_ptr = Pthis_token; 1167 1168 call_error: 1169 if error_control_table (error_num).severity >= MIN_PRINT_SEVERITY 1170 then call lex_error_ (error_num, SERROR_PRINTED (error_num), (error_control_table.severity (error_num)), 1171 MERROR_SEVERITY, stmt_ptr, token_ptr, SERROR_CONTROL, (error_control_table.message (error_num)), 1172 (error_control_table.brief_message (error_num)), parm1, parm2); 1173 else do; 1174 MERROR_SEVERITY = max (MERROR_SEVERITY, error_control_table (error_num).severity); 1175 SERROR_PRINTED (error_num) = "1"b; 1176 end; 1177 return; 1178 1179 end; 1180 1181 1182 1183 1184 /* this error routine is the interface to rdc errors for multiplexer parsers */ 1185 1186 mpx_error: 1187 proc (error_num, severity, long_text, short_text, parm1, parm2); 1188 1189 dcl error_num fixed bin; 1190 dcl severity fixed bin; 1191 dcl (long_text, short_text) 1192 char (*); 1193 dcl (parm1, parm2) char (*); 1194 1195 dcl (i, j) fixed bin; 1196 1197 i = error_num; 1198 if i < 1 | i > 99 1199 then i = 99; 1200 j = 100 * mpx_type_value + i; 1201 if severity >= MIN_PRINT_SEVERITY 1202 then call lex_error_ (j, mpx_error_printed (mpx_type_value, i), severity, MERROR_SEVERITY, null (), null (), 1203 SERROR_CONTROL, long_text, short_text, parm1, parm2); 1204 else do; 1205 MERROR_SEVERITY = max (MERROR_SEVERITY, severity); 1206 mpx_error_printed (mpx_type_value, i) = "1"b; 1207 end; 1208 return; 1209 1210 end mpx_error; 1211 1212 dcl 1 error_control_table (55) aligned int static, 1213 2 severity fixed bin (17) unal init ((5) 3, 1214 /* 1-5 */ 1215 1, /* 6 */ 1216 (2) 3, /* 7 - 8 */ 1217 3, /* 9 */ 1218 (7) 3, /* 10-16 */ 1219 (2) 1, /* 17-18 */ 1220 (6) 3, /* 19-24 */ 1221 3, /* 25 */ 1222 (20) 3, /* 26-45 */ 1223 1, /* 46 */ 1224 (7) 3, /* 47-53 */ 1225 1, /* 54 */ 1226 3), /* 55 */ 1227 2 Soutput_stmt bit (1) unaligned initial ("1"b, 1228 /* 1 */ 1229 "0"b, /* 2 */ 1230 (2) (1)"1"b, /* 3-4 */ 1231 "0"b, /* 5 */ 1232 "0"b, /* 6 */ 1233 "0"b, /* 7 */ 1234 (9) (1)"1"b, /* 8-16 */ 1235 (2) (1)"0"b, /* 17-18 */ 1236 (6) (1)"1"b, /* 19-24 */ 1237 "0"b, /* 25 */ 1238 "0"b, /* 26 */ 1239 "1"b, /* 27 */ 1240 (2) (1)"1"b, /* 28-29 */ 1241 (8) (1)"0"b, /* 30-37 */ 1242 "1"b, /* 38 */ 1243 "0"b, /* 39 */ 1244 (2) (1)"1"b, /* 40-41 */ 1245 (2) (1)"0"b, /* 42-43 */ 1246 (2) (1)"1"b, /* 44-45 */ 1247 "0"b, /* 46 */ 1248 "1"b, /* 47 */ 1249 (3) (1)"0"b, /* 48-50 */ 1250 "1"b, /* 51 */ 1251 (4) (1)"0"b), /* 52-55 */ 1252 2 message char (100) var init ("", 1253 /* 1 */ 1254 "CMF is empty.", /* 2 */ 1255 "Unrecognizable statement.", 1256 /* 3 */ 1257 "Syntax error.", /* 4 */ 1258 "Premature end of CMF encountered. Check for a missing end statement.", 1259 /* 5 */ 1260 "^a ^a", /* MSG is from cdt_mgr_ */ 1261 /* 6 */ 1262 "Premature end of CMF during attribute statement.", 1263 /* 7 */ 1264 "Invalid terminal type ""^a"".", 1265 /* 8 */ 1266 "Too many channels declared in CMF. Maximum is ^a.", 1267 /* 9 */ 1268 "Invalid access class ""^a"".", 1269 /* 10 */ 1270 "Invalid line type ""^a"".", 1271 /* 11 */ 1272 "Invalid charge ""^a""", 1273 /* 12 */ 1274 "Channel ^a is specified more than once in the CMF.", 1275 /* 13 */ 1276 "Invalid attribute ""^a"".", 1277 /* 14 */ 1278 "Syntax error. The ""none"" attribute must be followed by a semi-colon.", 1279 /* 15 */ 1280 "Invalid service type ""^a"".", 1281 /* 16 */ 1282 """^a"" appears to have the wrong line type. ARPANET channels must specify 'line_type: ^a;'", 1283 /* 17 */ 1284 "The comment for ""^a"" contains non-printing ASCII characters.", 1285 /* 18 */ 1286 "Invalid FNP type ""^a"".", 1287 /* 19 */ 1288 "Invalid FNP memory size ""^a"".", 1289 /* 20 */ 1290 """^a"" is not a valid lsla/hsla count.", 1291 /* 21 */ 1292 "Syntax error. No image specified.", 1293 /* 22 */ 1294 "Invalid FNP identifier ""^a"".", 1295 /* 23 */ 1296 "FNP ^a is specified more than once.", 1297 /* 24 */ 1298 "Fatal error while threading CDT tree. ^a ^a.", 1299 /* 25 */ 1300 "Premature of CMF while in check_acs statement.", 1301 /* 26 */ 1302 "Unrecognized check acs flag ""^a"".", 1303 /* 27 */ 1304 """^a"" is not a valid channel name.", 1305 /* 28 */ 1306 """^a"" is not a valid baud rate.", 1307 /* 29 */ 1308 "NOT USED", /* 30 */ 1309 "NOT USED", /* 31 */ 1310 "NOT USED", /* 32 */ 1311 "NOT USED", /* 33 */ 1312 "NOT USED", /* 34 */ 1313 "NOT USED", /* 35 */ 1314 "NOT USED", /* 36 */ 1315 "NOT USED", /* 37 */ 1316 "Invalid dataset type ""^a"".", 1317 /* 38 */ 1318 "NOT USED", /* 39 */ 1319 "Unrecognized dataset option. ""^a""", 1320 /* 40 */ 1321 "Unrecognized line_type option. ""^a""", 1322 /* 41 */ 1323 "NOT USED", /* 42 */ 1324 "NOT USED", /* 43 */ 1325 "Invalid FNP required up time ""^a"".", 1326 /* 44 */ 1327 "Invalid channel name pair ""^a"".", 1328 /* 45 */ 1329 "Terminal type ""^a"" not found in TTT.", 1330 /* 46 */ 1331 "Invalid spare channel count ""^a"".", 1332 /* 47 */ 1333 "Multiplexer type not specified for multiplexer ""^a"".", 1334 /* 48 */ 1335 "Neither initial command nor generic destination can be specified for multiplexer: ""^a"".", 1336 /* 49 */ 1337 "Multiplexer type specified for non-multiplexer channel ""^a"".", 1338 /* 50 */ 1339 "Illegal multiplexer type: ""^a"".", 1340 /* 51 */ 1341 "Channel ""^a"" configured, but its parent, ""^a"", is not configured as a multiplexer.", 1342 /* 52 */ 1343 "Channel ""^a"" configured, but its parent, ""^a"", is not.", 1344 /* 53 */ 1345 "Cannot find ""^a"" to check configuration of ""^a"".", 1346 /* 54 */ 1347 "Only one of initial command and generic destination may be specified: ""^a""."), 1348 /* 55 */ 1349 2 brief_message char (20) var init ((7) (1)"", 1350 /* 1-7 */ 1351 "^a", /* 8 */ 1352 "", /* 9 */ 1353 (5) (1)"^a", /* 10-14 */ 1354 "", /* 15 */ 1355 (6) (1)"^a", /* 16-21 */ 1356 "", /* 22 */ 1357 (3) (1)"^a", /* 23-25 */ 1358 (2) (1)"FNP ^a ^a",/* 26-27 */ 1359 (24) (1)"^a", /* 28-51 */ 1360 (2) (1)"^a on ^a", /* 52-53 */ 1361 "^a for ^a", /* 54 */ 1362 "^a"); /* 55 */ 1363 1364 /* ======================================================== */ 1365 1366 1367 dcl TRACING bit(1) aligned int static init("0"b); 1368 1369 15 1 /* START OF: rdc_start_.incl.pl1 * * * * * * */ 15 2 15 3 /* * * * * * * * * * * * * * * * * * * * * * * */ 15 4 /* */ 15 5 /* N__a_m_e: rdc_start_.incl.pl1 */ 15 6 /* */ 15 7 /* This include segment is used by compilers generated by the */ 15 8 /* reduction_compiler. Such compilers include a SEMANTIC_ANALYSIS */ 15 9 /* subroutine generated by the reduction_compiler. This subroutine */ 15 10 /* compares a chain of input tokens with token requirements */ 15 11 /* specified in reductions. This include segment declares the */ 15 12 /* structure of the input tokens (which are generated by lex_string_),*/ 15 13 /* defines the beginning of the SEMANTIC_ANALYSIS procedure, and */ 15 14 /* declares Pthis_token, a global pointer variable which points to */ 15 15 /* the "current" token being referenced by SEMANTIC_ANALYSIS. */ 15 16 /* */ 15 17 /* S__t_a_t_u_s */ 15 18 /* */ 15 19 /* 0) Created: April, 1974 by G. C. Dixon */ 15 20 /* */ 15 21 /* * * * * * * * * * * * * * * * * * * * * * * */ 15 22 15 23 dcl Pthis_token ptr; /* ptr to the "current" token being acted upon. */ 15 24 16 1 /* START OF: lex_descriptors_.incl.pl1 * * * * * * */ 16 2 16 3 /* * * * * * * * * * * * * * * * * * * * * * * */ 16 4 /* */ 16 5 /* Name: lex_descriptors_.incl.pl1 */ 16 6 /* */ 16 7 /* This include segment defines the structure of the token */ 16 8 /* descriptor, statement descriptor, and comment descriptor created */ 16 9 /* by the lex_string_ program. */ 16 10 /* */ 16 11 /* Status: */ 16 12 /* */ 16 13 /* 0) Created: Dec, 1973 by G. C. Dixon */ 16 14 /* */ 16 15 /* * * * * * * * * * * * * * * * * * * * * * * */ 16 16 16 17 16 18 16 19 16 20 dcl 16 21 1 comment aligned based (Pcomment), 16 22 /* descriptor for a comment. */ 16 23 2 group1 unaligned, 16 24 3 version fixed bin(17), /* comment descriptor version. */ 16 25 3 size fixed bin(17), /* comment descriptor size (in words). */ 16 26 2 Pnext ptr unal, /* ptr to next comment descriptor. */ 16 27 2 Plast ptr unal, /* ptr to last comment descriptor. */ 16 28 2 Pvalue ptr unal, /* ptr to comment. */ 16 29 2 Lvalue fixed bin(18), /* length of comment. */ 16 30 2 group2 unaligned, 16 31 3 line_no fixed bin(17), /* line no of line containing comment. */ 16 32 3 S, /* switches: */ 16 33 4 before_stmt bit(1), /* comment is before 1st token of stmt. */ 16 34 4 contiguous bit(1), /* no tokens between this and last comment. */ 16 35 4 pad bit(16), 16 36 comment_value char(comment.Lvalue) based (comment.Pvalue), 16 37 /* body of comment. */ 16 38 Pcomment ptr; /* ptr to comment descriptor. */ 16 39 16 40 dcl 16 41 1 stmt aligned based (Pstmt), 16 42 /* descriptor for a statement. */ 16 43 2 group1 unaligned, 16 44 3 version fixed bin(17), /* statement descriptor version. */ 16 45 3 size fixed bin(17), /* statement descriptor size (in words). */ 16 46 2 Pnext ptr unal, /* ptr to next statement descriptor. */ 16 47 2 Plast ptr unal, /* ptr to last statement descriptor. */ 16 48 2 Pvalue ptr unal, /* ptr to statement. */ 16 49 2 Lvalue fixed bin(18), /* length of statement. */ 16 50 2 Pfirst_token ptr unal, /* ptr to 1st token of statement. */ 16 51 2 Plast_token ptr unal, /* ptr to last token of statement. */ 16 52 2 Pcomments ptr unal, /* ptr to comments in statement. */ 16 53 2 Puser ptr unal, /* user-defined ptr. */ 16 54 2 group2 unaligned, 16 55 3 Ntokens fixed bin(17), /* number of tokens in statement. */ 16 56 3 line_no fixed bin(17), /* line no of line on which statement begins. */ 16 57 3 Istmt_in_line fixed bin(17), /* number of stmts in line containing this stmt. */ 16 58 /* (the number includes this stmt.) */ 16 59 3 semant_type fixed bin(17), /* semantic type of the statement. */ 16 60 3 S, /* switches: */ 16 61 4 error_in_stmt bit(1), /* stmt contains a syntactic error. */ 16 62 4 output_in_err_msg bit(1), /* stmt has been output in previous error message.*/ 16 63 4 pad bit(34), 16 64 stmt_value char(stmt.Lvalue) based (stmt.Pvalue), 16 65 /* text of the statement. */ 16 66 Pstmt ptr; /* ptr to a stmt descriptor. */ 16 67 16 68 dcl 16 69 1 token aligned based (Ptoken), 16 70 /* descriptor for a token. */ 16 71 2 group1 unaligned, 16 72 3 version fixed bin(17), /* token descriptor version. */ 16 73 3 size fixed bin(17), /* token descriptor size (in words). */ 16 74 2 Pnext ptr unal, /* ptr to next token descriptor. */ 16 75 2 Plast ptr unal, /* ptr to last token descriptor. */ 16 76 2 Pvalue ptr unal, /* ptr to token. */ 16 77 2 Lvalue fixed bin(18), /* length of token. */ 16 78 2 Pstmt ptr unal, /* ptr to descriptor of stmt containing token. */ 16 79 2 Psemant ptr unal, /* ptr to descriptor(s) of token's semantic value.*/ 16 80 2 group2 unaligned, 16 81 3 Itoken_in_stmt fixed bin(17), /* position of token within its statement. */ 16 82 3 line_no fixed bin(17), /* line number of the line containing the token. */ 16 83 3 Nvalue fixed bin(35), /* numeric value of decimal-integer tokens. */ 16 84 3 S, /* switches: */ 16 85 4 end_of_stmt bit(1), /* token is an end-of-stmt token. */ 16 86 4 quoted_string bit(1), /* token is a quoted string. */ 16 87 4 quotes_in_string bit(1), /* on if quote-close delimiters appear in quoted */ 16 88 /* string (as doubled quotes on input.) */ 16 89 4 quotes_doubled bit(1), /* on if quotes in the string are doubled after */ 16 90 /* string has been lexed into a token. */ 16 91 4 pad2 bit(32), 16 92 token_value char(token.Lvalue) based (token.Pvalue), 16 93 /* value of the token. */ 16 94 Ptoken ptr; /* ptr to a token descriptor. */ 16 95 16 96 /* END OF: lex_descriptors_.incl.pl1 * * * * * * */ 15 25 15 26 15 27 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 15 28 15 29 15 30 SEMANTIC_ANALYSIS: procedure; /* procedure which analyzes the syntax and */ 15 31 /* semantics of the tokens in the input list. */ 15 32 15 33 dcl /* automatic variables */ 15 34 LTOKEN_REQD_VALUE fixed bin(18), /* length of a token requirement. */ 15 35 NRED fixed bin, /* number of the reduction tokens are being */ 15 36 /* compared to. */ 15 37 PRED ptr, /* ptr to the reduction tokens are being */ 15 38 /* compared to. */ 15 39 PTOKEN_REQD ptr, /* ptr to token requirement descriptor associated */ 15 40 /* with reduction tokens are being compared to. */ 15 41 PTOKEN_REQD_VALUE ptr, /* ptr to a token requirement. */ 15 42 STOKEN_FCN bit(1) aligned, /* return value from a relative syntax function. */ 15 43 CODE fixed bin(35), /* an error code. */ 15 44 I fixed bin, /* a do-group index. */ 15 45 NUMBER fixed bin(35); /* fixed binary representation of a decimal */ 15 46 /* number character string. */ 15 47 15 48 dcl /* based variables */ 15 49 1 RED aligned based (PRED), 15 50 /* descriptor for reduction tokens are being */ 15 51 /* compared to. */ 15 52 2 TOKEN_REQD unaligned, 15 53 3 IFIRST fixed bin(17) unal, /* index of first token requirement. */ 15 54 3 ILAST fixed bin(17) unal, /* index of last token requirement associated */ 15 55 /* with this reduction. */ 15 56 1 TOKEN_REQD aligned based (PTOKEN_REQD), 15 57 /* a token requirement descriptor. */ 15 58 2 FORM fixed bin(17) unal, /* form of the token requirement: */ 15 59 /* -1 = relative token requirement function; */ 15 60 /* TYPE = index of the particular token */ 15 61 /* function in the token_fcn array. */ 15 62 /* 0 = built-in token requirement function; */ 15 63 /* TYPE = as defined below. */ 15 64 /* >0 = absolute token requirement: */ 15 65 /* FORM = index(TOKEN_STRINGS,TOKEN_REQD); */ 15 66 /* TYPE = length(TOKEN_REQD); */ 15 67 2 TYPE fixed bin(17) unal, /* TYPE of built-in token requirement function: */ 15 68 /* 1 = compile test to see if input token */ 15 69 /* chain is exhausted (). */ 15 70 /* 2 = compile test for any token value */ 15 71 /* (). */ 15 72 /* 3 = compile test for a PL/I identifier */ 15 73 /* () of 32 or fewer characters. */ 15 74 /* 4 = compile test for token which is a */ 15 75 /* . */ 15 76 /* 5 = compile test for token which is a single */ 15 77 /* backspace character (). */ 15 78 /* 6 = compile test for a token which is a */ 15 79 /* . */ 15 80 15 81 1 TOKEN_REQD_STRING aligned based (PTOKEN_REQD), 15 82 /* overlay for an absolute token requirement */ 15 83 /* descriptor. */ 15 84 2 I fixed bin(17) unal, /* index into list of token strings of the */ 15 85 /* absolute token string assoc w/ descriptor. */ 15 86 2 L fixed bin(17) unal, /* length of the absolute token string. */ 15 87 TOKEN_REQD_VALUE char(LTOKEN_REQD_VALUE) based (PTOKEN_REQD_VALUE); 15 88 /* absolute token string which token is reqd */ 15 89 /* to match in order for tokens which are */ 15 90 /* "current" on the list to match the reduction. */ 15 91 15 92 dcl /* builtin functions */ 15 93 (addr, max, null, search, substr, verify) 15 94 builtin; 15 95 15 96 dcl /* entries */ 15 97 cv_dec_check_ entry (char(*), fixed bin(35)) returns (fixed bin(35)); 15 98 15 99 dcl /* static variables */ 15 100 BACKSPACE char(1) aligned int static init (""); 15 101 15 102 /* END OF: rdc_start_.incl.pl1 * * * * * * */ 1370 1371 1372 dcl DIRECTION fixed bin init(+1); /* direction in which tokens compared. */ 1373 dcl STACK (10) fixed bin, /* reduction label stack. */ 1374 STACK_DEPTH fixed bin init (0); /* index into STACK. */ 1375 1376 1377 dcl 1 REDUCTION (128) unaligned based (addr (REDUCTIONS)), 1378 /* object reductions. */ 1379 2 TOKEN_REQD, 1380 3 IFIRST fixed bin(17), /* index of first required token. */ 1381 3 ILAST fixed bin(17), /* index of last required token. */ 1382 1383 REDUCTIONS (256) fixed bin(17) unaligned internal static options(constant) initial ( 1384 1, 1, /* 1/ */ 1385 2, 5, /* 2/ FNP : ; */ 1386 6, 9, /* 3/ name : ; */ 1387 10, 13, /* 4/ Access_class : ; */ 1388 10, 11, /* 5/ Access_class : */ 1389 14, 15, /* 6/ Check_acs : */ 1390 16, 17, /* 7/ Attributes : */ 1391 18, 21, /* 8/ Baud : ; */ 1392 22, 25, /* 9/ Baud : auto ; */ 1393 26, 29, /* 10/ Baud : none ; */ 1394 18, 19, /* 11/ Baud : */ 1395 30, 33, /* 12/ Line_type : ; */ 1396 30, 31, /* 13/ Line_type : */ 1397 34, 37, /* 14/ Terminal_type : ; */ 1398 34, 35, /* 15/ Terminal_type : */ 1399 38, 41, /* 16/ Comment : ; */ 1400 42, 45, /* 17/ Initial_command : ; */ 1401 46, 49, /* 18/ Generic_destination : ; */ 1402 50, 53, /* 19/ Charge : ; */ 1403 50, 51, /* 20/ Charge : */ 1404 54, 57, /* 21/ Service : ; */ 1405 54, 55, /* 22/ Service : */ 1406 58, 61, /* 23/ FNP_required_up_time : ; */ 1407 58, 59, /* 24/ FNP_required_up_time : */ 1408 62, 65, /* 25/ Spare_channel_count : ; */ 1409 62, 63, /* 26/ Spare_channel_count : */ 1410 66, 67, /* 27/ end ; */ 1411 68, 69, /* 28/ : */ 1412 4, 4, /* 29/ */ 1413 1, 1, /* 30/ */ 1414 70, 73, /* 31/ access_class : ; */ 1415 70, 71, /* 32/ access_class : */ 1416 74, 77, /* 33/ baud : auto ; */ 1417 78, 81, /* 34/ baud : none ; */ 1418 82, 85, /* 35/ baud : ; */ 1419 74, 75, /* 36/ baud : */ 1420 86, 87, /* 37/ check_acs : */ 1421 88, 89, /* 38/ attributes : */ 1422 90, 93, /* 39/ answerback : ; */ 1423 94, 96, /* 40/ line_type : */ 1424 94, 95, /* 41/ line_type : */ 1425 97, 99, /* 42/ dataset : */ 1426 97, 98, /* 43/ dataset : */ 1427 100, 103, /* 44/ terminal_type : ; */ 1428 100, 101, /* 45/ terminal_type : */ 1429 104, 107, /* 46/ comment : ; */ 1430 108, 111, /* 47/ initial_command : ; */ 1431 112, 115, /* 48/ generic_destination : ; */ 1432 116, 119, /* 49/ charge : ; */ 1433 116, 117, /* 50/ charge : */ 1434 120, 123, /* 51/ service : ; */ 1435 120, 121, /* 52/ service : */ 1436 124, 129, /* 53/ multiplexer_type : , ; */ 1437 124, 127, /* 54/ multiplexer_type : , */ 1438 130, 133, /* 55/ multiplexer_type : ; */ 1439 124, 125, /* 56/ multiplexer_type : */ 1440 4, 4, /* 57/ */ 1441 1, 1, /* 58/ */ 1442 127, 127, /* 59/ , */ 1443 5, 5, /* 60/ ; */ 1444 4, 4, /* 61/ */ 1445 1, 1, /* 62/ */ 1446 134, 134, /* 63/ private_line */ 1447 4, 4, /* 64/ */ 1448 1, 1, /* 65/ */ 1449 127, 127, /* 66/ , */ 1450 5, 5, /* 67/ ; */ 1451 4, 4, /* 68/ */ 1452 1, 1, /* 69/ */ 1453 135, 135, /* 70/ ebcdic */ 1454 136, 136, /* 71/ ascii */ 1455 137, 137, /* 72/ transparent */ 1456 138, 138, /* 73/ nontransparent */ 1457 4, 4, /* 74/ */ 1458 1, 1, /* 75/ */ 1459 139, 142, /* 76/ type : ; */ 1460 139, 140, /* 77/ type : */ 1461 143, 146, /* 78/ memory : ; */ 1462 143, 144, /* 79/ memory : */ 1463 147, 150, /* 80/ lsla : ; */ 1464 147, 148, /* 81/ lsla : */ 1465 151, 154, /* 82/ hsla : ; */ 1466 151, 152, /* 83/ hsla : */ 1467 155, 158, /* 84/ image : ; */ 1468 155, 156, /* 85/ image : */ 1469 159, 162, /* 86/ additional_info : ; */ 1470 159, 160, /* 87/ additional_info : */ 1471 163, 166, /* 88/ service : ; */ 1472 120, 121, /* 89/ service : */ 1473 130, 133, /* 90/ multiplexer_type : ; */ 1474 124, 125, /* 91/ multiplexer_type : */ 1475 4, 4, /* 92/ */ 1476 1, 1, /* 93/ */ 1477 167, 166, /* 94/ */ 1478 5, 5, /* 95/ ; */ 1479 28, 28, /* 96/ none */ 1480 167, 167, /* 97/ ^ */ 1481 168, 168, /* 98/ set_modes */ 1482 169, 169, /* 99/ audit */ 1483 170, 170, /* 100/ hardwired */ 1484 171, 171, /* 101/ check_answerback */ 1485 172, 172, /* 102/ dont_read_answerback */ 1486 4, 4, /* 103/ */ 1487 1, 1, /* 104/ */ 1488 127, 127, /* 105/ , */ 1489 5, 5, /* 106/ ; */ 1490 4, 4, /* 107/ */ 1491 1, 1, /* 108/ */ 1492 173, 172, /* 109/ */ 1493 173, 172, /* 110/ */ 1494 173, 172, /* 111/ */ 1495 5, 5, /* 112/ ; */ 1496 28, 28, /* 113/ none */ 1497 173, 173, /* 114/ all */ 1498 167, 167, /* 115/ ^ */ 1499 174, 174, /* 116/ login */ 1500 175, 175, /* 117/ slave_dial */ 1501 176, 176, /* 118/ dial_server */ 1502 177, 177, /* 119/ dial_out */ 1503 178, 178, /* 120/ priv_attach */ 1504 4, 4, /* 121/ */ 1505 1, 1, /* 122/ */ 1506 127, 127, /* 123/ , */ 1507 5, 5, /* 124/ ; */ 1508 4, 4, /* 125/ */ 1509 1, 1, /* 126/ */ 1510 179, 178, /* 127/ */ 1511 179, 178); /* 128/ */ 1512 1513 dcl 1 TOKEN_REQUIREMENT (178) unaligned based (addr (TOKEN_REQUIREMENTS)), 1514 /* object token requirements. */ 1515 2 FORM fixed bin(17), /* form of the token requirement: */ 1516 /* -1 = relative token requirement function; */ 1517 /* TYPE = index of the particular token */ 1518 /* function in the token_fcn array. */ 1519 /* 0 = built-in token requirement function; */ 1520 /* TYPE = as defined below. */ 1521 /* >0 = absolute token requirement: */ 1522 /* FORM = index(TOKEN_STRINGS,TOKEN_REQD); */ 1523 /* TYPE = length(TOKEN_REQD); */ 1524 2 TYPE fixed bin(17) unal, /* type of the built-in token requirement */ 1525 /* function: */ 1526 /* 1 = compile test to see if input token */ 1527 /* chain is exhausted (). */ 1528 /* 2 = compile test for any token value */ 1529 /* (). */ 1530 /* 3 = compile test for a PL/I identifier */ 1531 /* () of 32 or fewer characters. */ 1532 /* 4 = compile test for token which is a */ 1533 /* . */ 1534 /* 5 = compile test for token which is a single */ 1535 /* backspace character (). */ 1536 /* 6 = compile test for a token which is a */ 1537 /* . */ 1538 1539 TOKEN_REQUIREMENTS (356) fixed bin(17) unaligned internal static options(constant) initial ( 1540 0, 1, 1, 3, 4, 1, 0, 2, 5, 1, 6, 4, 4, 1, 1541 0, 2, 5, 1, 10, 12, 4, 1, -1, 1, 5, 1, 22, 9, 1542 4, 1, 31, 10, 4, 1, 41, 4, 4, 1, -1, 2, 5, 1, 1543 41, 4, 4, 1, 45, 4, 5, 1, 41, 4, 4, 1, 49, 4, 1544 5, 1, 53, 9, 4, 1, -1, 3, 5, 1, 62, 13, 4, 1, 1545 0, 2, 5, 1, 75, 7, 4, 1, 0, 2, 5, 1, 82, 15, 1546 4, 1, 0, 2, 5, 1, 97, 19, 4, 1, 0, 2, 5, 1, 1547 116, 6, 4, 1, -1, 4, 5, 1, 122, 7, 4, 1, -1, 5, 1548 5, 1, 129, 20, 4, 1, 0, 4, 5, 1, 149, 19, 4, 1, 1549 0, 4, 5, 1, 168, 3, 5, 1, 0, 2, 4, 1, 171, 12, 1550 4, 1, -1, 1, 5, 1, 183, 4, 4, 1, 45, 4, 5, 1, 1551 183, 4, 4, 1, 49, 4, 5, 1, 183, 4, 4, 1, -1, 2, 1552 5, 1, 187, 9, 4, 1, 196, 10, 4, 1, 206, 10, 4, 1, 1553 0, 2, 5, 1, 216, 9, 4, 1, -1, 3, 225, 7, 4, 1, 1554 -1, 6, 232, 13, 4, 1, 0, 2, 5, 1, 245, 7, 4, 1, 1555 0, 2, 5, 1, 252, 15, 4, 1, 0, 2, 5, 1, 267, 19, 1556 4, 1, 0, 2, 5, 1, 286, 6, 4, 1, -1, 4, 5, 1, 1557 292, 7, 4, 1, -1, 5, 5, 1, 299, 16, 4, 1, -1, 7, 1558 315, 1, -1, 8, 5, 1, 299, 16, 4, 1, -1, 7, 5, 1, 1559 316, 12, 328, 6, 334, 5, 339, 11, 350, 14, 58, 4, 4, 1, 1560 -1, 9, 5, 1, 364, 6, 4, 1, 0, 4, 5, 1, 370, 4, 1561 4, 1, 0, 4, 5, 1, 374, 4, 4, 1, 0, 4, 5, 1, 1562 378, 5, 4, 1, 0, 2, 5, 1, 383, 15, 4, 1, 0, 2, 1563 5, 1, 292, 7, 4, 1, -1, 8, 5, 1, 398, 1, 399, 9, 1564 408, 5, 413, 9, 422, 16, 438, 20, 458, 3, 461, 5, 466, 10, 1565 476, 11, 487, 8, 495, 11); 1566 1567 1568 dcl TOKEN_STRINGS char(505) aligned based (addr (TOKEN_STRING_ARRAYS)), 1569 /* object token values. */ 1570 TOKEN_STRING_ARRAYS (6) char(100) aligned internal static options(constant) initial ( 1571 "FNP:;nameAccess_classCheck_acsAttributesBaudautononeLine_typeTerminal_typeCommentInitial_commandGene", 1572 "ric_destinationChargeServiceFNP_required_up_timeSpare_channel_countendaccess_classbaudcheck_acsattri", 1573 "butesanswerbackline_typedatasetterminal_typecommentinitial_commandgeneric_destinationchargeservicemu", 1574 "ltiplexer_type,private_lineebcdicasciitransparentnontransparentmemorylslahslaimageadditional_info^se", 1575 "t_modesaudithardwiredcheck_answerbackdont_read_answerbackallloginslave_dialdial_serverdial_outpriv_a", 1576 "ttach"); 1577 1578 /* START OF: rdc_end_.incl.pl1 * * * * * * * * * * * * * * * * */ 17 2 17 3 17 4 /****^ HISTORY COMMENTS: 17 5* 1) change(86-02-14,GWMay), approve(), audit(), install(): 17 6* old history comments: 17 7* 0) Created: April, 1974 by G. C. Dixon 17 8* 1) Modified: Feb, 1975 by G. C. Dixon 17 9* a) support for Version 2.0 of reduction_compiler. 17 10* 2) Modified: Feb, 1981 by G. C. Dixon 17 11* a) support for Version 2.2 of reduction_compiler 17 12* 3) Modified: Aug, 1983 by G. C. Dixon - support for Version 2.3 of 17 13* reductions command. 17 14* 2) change(86-03-04,GDixon), approve(86-03-04,MCR7362), audit(86-03-17,GWMay), 17 15* install(86-03-17,MR12.0-1032): 17 16* Changed how the PUSH DOWN LANGUAGE (SPDL) definition of is 17 17* implemented to avoid references through a null pointer. The two 17 18* accepted uses are: 17 19* 17 20* / / ... / ... \ 17 21* A 17 22* | 17 23* Pthis_token (points to top of push down stack) 17 24* 17 25* which checks to see if the push down stack is totally exhausted (ie, 17 26* Ptoken = null); and: 17 27* 17 28* / SPEC1 ... SPECN / ... / ... \ 17 29* A 17 30* | 17 31* Pthis_token (points to top of push down stack) 17 32* 17 33* which checks to see whether SPECN is topmost on the push down stack 17 34* AND is the final token in the input list. 17 35* END HISTORY COMMENTS */ 17 36 17 37 17 38 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 39 /* */ 17 40 /* NAME: rdc_end_.incl.pl1 */ 17 41 /* */ 17 42 /* This include segment is used by compilers generated by the reduction_compiler. */ 17 43 /* Such compilers include a SEMANTIC_ANALYSIS subroutine generated by the */ 17 44 /* reduction_compiler. This subroutine compares a chain of input tokens with token */ 17 45 /* requirements specified in reductions. The code in this include segment performs the */ 17 46 /* actual comparisons. This code is the middle part of the SEMANTIC_ANALYSIS procedure. */ 17 47 /* */ 17 48 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 49 17 50 TRACING = TRACING; /* Kludge to prevent pl1 from making TRACING */ 17 51 /* options(constant) because it is never set. */ 17 52 NRED = 1; 17 53 go to RD_TEST_REDUCTION; 17 54 17 55 RD_NEXT_REDUCTION: 17 56 NRED = NRED + 1; 17 57 17 58 RD_TEST_REDUCTION: 17 59 PRED = addr(REDUCTION(NRED)); 17 60 Ptoken = Pthis_token; 17 61 17 62 do I = RED.TOKEN_REQD.IFIRST to RED.TOKEN_REQD.ILAST by DIRECTION; 17 63 PTOKEN_REQD = addr(TOKEN_REQUIREMENT(I)); 17 64 if Ptoken = null then do; 17 65 if TOKEN_REQD.FORM = 0 then /* No more tokens. Only matches spec. */ 17 66 if TOKEN_REQD.TYPE = 1 then 17 67 go to RD_TEST_TOKEN(1); 17 68 go to RD_NEXT_REDUCTION; 17 69 end; 17 70 if TOKEN_REQD.FORM = 0 then do; /* built-in syntax function. */ 17 71 go to RD_TEST_TOKEN(TOKEN_REQD.TYPE); 17 72 17 73 RD_TEST_TOKEN(1): if SPDL then /* */ 17 74 /* In push-down-language, there are 2 */ 17 75 /* interpretations of . */ 17 76 if RED.TOKEN_REQD.IFIRST = RED.TOKEN_REQD.ILAST & 17 77 Ptoken = null then /* When is only spec, the spec asks */ 17 78 go to RD_MATCH_NO_TOKEN; /* "Is push down stack empty (all input gone)?" */ 17 79 else if RED.TOKEN_REQD.IFIRST^= RED.TOKEN_REQD.ILAST & 17 80 RED.TOKEN_REQD.IFIRST = I & 17 81 token.Pnext = null then /* For SPEC1 ... SPECN , the spec asks */ 17 82 go to RD_MATCH_NO_TOKEN; /* "Are the topmost tokens on stack SPEC1 - SPECN,*/ 17 83 /* and is SPECN the final input token?" */ 17 84 else go to RD_NEXT_REDUCTION; /* Those are the only two defs allowed in push */ 17 85 /* down language mode for . */ 17 86 else if Ptoken = null then 17 87 go to RD_MATCH_NO_TOKEN; 17 88 go to RD_NEXT_REDUCTION; 17 89 17 90 RD_TEST_TOKEN(2): go to RD_MATCH; /* */ 17 91 17 92 RD_TEST_TOKEN(3): if token.Lvalue > 0 & /* */ 17 93 token.Lvalue <= 32 & ^token.S.quoted_string then 17 94 if search(substr(token_value,1,1),"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") 17 95 > 0 then 17 96 if verify(token_value,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_$") 17 97 = 0 then 17 98 go to RD_MATCH; 17 99 go to RD_NEXT_REDUCTION; 17 100 17 101 RD_TEST_TOKEN(4): /* */ 17 102 if token.Nvalue ^= 0 then /* token already determined to be a number. */ 17 103 go to RD_MATCH; 17 104 if token.S.quoted_string then 17 105 go to RD_NEXT_REDUCTION; 17 106 NUMBER = cv_dec_check_ (token_value, CODE); 17 107 if CODE = 0 then do; 17 108 token.Nvalue = NUMBER; 17 109 go to RD_MATCH; 17 110 end; 17 111 go to RD_NEXT_REDUCTION; 17 112 17 113 RD_TEST_TOKEN(5): if token.Lvalue = 1 then /* */ 17 114 if token_value = BACKSPACE & ^token.S.quoted_string then 17 115 go to RD_MATCH; 17 116 go to RD_NEXT_REDUCTION; 17 117 17 118 RD_TEST_TOKEN(6): if token.S.quoted_string then /* */ 17 119 go to RD_MATCH; 17 120 go to RD_NEXT_REDUCTION; 17 121 end; 17 122 17 123 else if TOKEN_REQD.FORM > 0 then do; /* absolute syntax specification. */ 17 124 if token.S.quoted_string then 17 125 go to RD_NEXT_REDUCTION; 17 126 PTOKEN_REQD_VALUE = addr(substr(TOKEN_STRINGS,TOKEN_REQD_STRING.I)); 17 127 LTOKEN_REQD_VALUE = TOKEN_REQD_STRING.L; 17 128 if token_value = TOKEN_REQD_VALUE then 17 129 go to RD_MATCH; 17 130 go to RD_NEXT_REDUCTION; 17 131 end; 17 132 17 133 /* END OF: rdc_end_.incl.pl1 * * * * * * * * * * * * * * * * */ 1578 1579 1580 else do; /* relative syntax function. */ 1581 go to RD_TOKEN_FCN(TOKEN_REQD.TYPE); 1582 1583 RD_TOKEN_FCN(1): STOKEN_FCN = access_class(); 1584 go to RD_TEST_RESULT; 1585 RD_TOKEN_FCN(2): STOKEN_FCN = legal_baud(); 1586 go to RD_TEST_RESULT; 1587 RD_TOKEN_FCN(3): STOKEN_FCN = legal_line_type(); 1588 go to RD_TEST_RESULT; 1589 RD_TOKEN_FCN(4): STOKEN_FCN = legal_charge(); 1590 go to RD_TEST_RESULT; 1591 RD_TOKEN_FCN(5): STOKEN_FCN = legal_service(); 1592 go to RD_TEST_RESULT; 1593 RD_TOKEN_FCN(6): STOKEN_FCN = legal_dataset(); 1594 go to RD_TEST_RESULT; 1595 RD_TOKEN_FCN(7): STOKEN_FCN = legal_mpx_type(); 1596 go to RD_TEST_RESULT; 1597 RD_TOKEN_FCN(8): STOKEN_FCN = legal_fnp_service(); 1598 go to RD_TEST_RESULT; 1599 RD_TOKEN_FCN(9): STOKEN_FCN = legal_fnp_type(); 1600 go to RD_TEST_RESULT; 1601 1602 RD_TEST_RESULT: if STOKEN_FCN then go to RD_MATCH; 1603 else go to RD_NEXT_REDUCTION; 1604 end; 1605 1606 RD_MATCH: Ptoken = token.Pnext; 1607 RD_MATCH_NO_TOKEN: 1608 end; 1609 Ptoken = Pthis_token; 1610 go to RD_ACTION(NRED); 1611 1612 /* START OF: rdc_stack_fcns_.incl.pl1 * * * * * * */ 18 2 18 3 /* * * * * * * * * * * * * * * * * * * * * * * */ 18 4 /* */ 18 5 /* N__a_m_e: rdc_stack_fcns_.incl.pl1 */ 18 6 /* */ 18 7 /* This include segment is used by compilers generated by the */ 18 8 /* reduction_compiler. It includes code for manipulating the */ 18 9 /* reduction label stack. */ 18 10 /* */ 18 11 /* S__t_a_t_u_s */ 18 12 /* */ 18 13 /* 0) Created: April, 1974 by G. C. Dixon */ 18 14 /* */ 18 15 /* * * * * * * * * * * * * * * * * * * * * * * */ 18 16 18 17 RD_STACK: if STACK_DEPTH > 0 then do; 18 18 NRED = STACK (STACK_DEPTH); 18 19 go to RD_TEST_REDUCTION; 18 20 end; 18 21 else 18 22 go to RD_NEXT_REDUCTION; 18 23 18 24 RD_STACK_POP: 18 25 if STACK_DEPTH > 0 then do; 18 26 NRED = STACK (STACK_DEPTH); 18 27 STACK_DEPTH = max (STACK_DEPTH-1, 0); 18 28 go to RD_TEST_REDUCTION; 18 29 end; 18 30 else 18 31 go to RD_NEXT_REDUCTION; 18 32 18 33 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 18 34 18 35 18 36 PUSH: procedure (N); /* invoked to push reduction number 'N' onto */ 18 37 /* the reduction stack. */ 18 38 dcl N fixed bin; 18 39 18 40 dcl (addr, dimension, length, null) 18 41 builtin; 18 42 18 43 dcl cu_$cl entry, 18 44 iox_$put_chars entry (ptr, ptr, fixed bin, fixed bin(35)), 18 45 iox_$error_output ptr ext static, 18 46 lex_error_ entry options(variable); 18 47 18 48 dcl brief_error char(4) varying initial ("") int static, 18 49 long_error char(234) varying int static init( 18 50 "An internal stack (the reduction stack) has overflowed. 18 51 The translation has failed. Contact translator maintenance 18 52 personnel for assistance. 18 53 Processing reduction: ^d 18 54 Reduction being stacked: ^d 18 55 Maximum stack depth: ^d"), 18 56 non_restart_error char(33) int static init ("Translation cannot be restarted. 18 57 "); 18 58 18 59 if STACK_DEPTH >= dimension (STACK, 1) then do; 18 60 call lex_error_ (0, "0"b, 4, 0, null, null, "11"b, long_error, brief_error, NRED, N, 18 61 dimension(STACK,1)); 18 62 get_to_cl: call cu_$cl(); 18 63 call iox_$put_chars (iox_$error_output, addr(non_restart_error), length(non_restart_error), 0); 18 64 go to get_to_cl; 18 65 end; /* stack overflow is a non-recoverable error. */ 18 66 else 18 67 STACK_DEPTH = STACK_DEPTH + 1; 18 68 STACK (STACK_DEPTH) = N; 18 69 18 70 end PUSH; 18 71 18 72 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 18 73 18 74 /* END OF: rdc_stack_fcns_.incl.pl1 * * * * * * */ 1612 1613 1614 1615 RD_ACTION(1): /* / */ 1616 call ERROR ( 2 ); 1617 return; /* / RETURN \ */ 1618 1619 RD_ACTION(2): /* / */ 1620 call LEX ( 2 ); 1621 call open_fnp(); 1622 call LEX ( 2 ); 1623 call PUSH(2); /* PUSH(mainloop) */ 1624 NRED = 76; 1625 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 1626 1627 RD_ACTION(3): /* / */ 1628 call LEX ( 2 ); 1629 call open_chn(); 1630 call LEX ( 2 ); 1631 call PUSH(2); /* PUSH(mainloop) */ 1632 NRED = 31; 1633 go to RD_TEST_REDUCTION; /* / do_name \ */ 1634 1635 RD_ACTION(4): /* / */ 1636 call LEX ( 4 ); 1637 dft.access_class = access_class_value; 1638 NRED = 2; 1639 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1640 1641 RD_ACTION(5): /* / */ 1642 call LEX ( 2 ); 1643 call ERROR ( 10 ); 1644 call NEXT_STMT(); 1645 NRED = 2; 1646 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1647 1648 RD_ACTION(6): /* / */ 1649 call LEX ( 2 ); 1650 call PUSH(2); /* PUSH(mainloop) */ 1651 call PUSH(127); /* PUSH(assign_dft_access) */ 1652 NRED = 111; 1653 go to RD_TEST_REDUCTION; /* / checksub \ */ 1654 1655 RD_ACTION(7): /* / */ 1656 call LEX ( 2 ); 1657 call PUSH(2); /* PUSH(mainloop) */ 1658 call PUSH(110); /* PUSH(assign_dft) */ 1659 NRED = 94; 1660 go to RD_TEST_REDUCTION; /* / attsub \ */ 1661 1662 RD_ACTION(8): /* / */ 1663 call LEX ( 2 ); 1664 dft.baud_rate = baud_rate_value; 1665 dft.flags.autobaud = ""b; 1666 call LEX ( 2 ); 1667 NRED = 2; 1668 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1669 1670 RD_ACTION(9): /* / */ 1671 call LEX ( 2 ); 1672 dft.baud_rate = 0; 1673 dft.flags.autobaud = "1"b; 1674 call LEX ( 2 ); 1675 NRED = 2; 1676 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1677 1678 RD_ACTION(10): /* / */ 1679 call LEX ( 2 ); 1680 dft.baud_rate = 0; 1681 dft.flags.autobaud = ""b; 1682 call LEX ( 2 ); 1683 NRED = 2; 1684 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1685 1686 RD_ACTION(11): /* / */ 1687 call LEX ( 2 ); 1688 call ERROR ( 29 ); 1689 call NEXT_STMT(); 1690 NRED = 2; 1691 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1692 1693 RD_ACTION(12): /* / */ 1694 call LEX ( 2 ); 1695 dft.line_type = line_type_value; 1696 call LEX ( 2 ); 1697 NRED = 2; 1698 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1699 1700 RD_ACTION(13): /* / */ 1701 call LEX ( 2 ); 1702 call ERROR ( 11 ); 1703 call NEXT_STMT(); 1704 NRED = 2; 1705 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1706 1707 RD_ACTION(14): /* / */ 1708 call LEX ( 2 ); 1709 call check_terminal_type(); 1710 dft.initial_terminal_type = terminal_type_value; 1711 call LEX ( 2 ); 1712 NRED = 2; 1713 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1714 1715 RD_ACTION(15): /* / */ 1716 call LEX ( 2 ); 1717 call ERROR ( 8 ); 1718 call NEXT_STMT(); 1719 NRED = 2; 1720 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1721 1722 RD_ACTION(16): /* / */ 1723 call LEX ( 2 ); 1724 dft.comment = token_value; 1725 call LEX ( 2 ); 1726 NRED = 2; 1727 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1728 1729 RD_ACTION(17): /* / */ 1730 call LEX ( 2 ); 1731 dft.initial_command = token_value; 1732 dft.execute_initial_command = token_value ^= ""; 1733 call LEX ( 2 ); 1734 NRED = 2; 1735 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1736 1737 RD_ACTION(18): /* / */ 1738 call LEX ( 2 ); 1739 addr ( dft.initial_command ) -> generic_destination = token_value; 1740 dft.generic_destination_present = token_value ^= ""; 1741 call LEX ( 2 ); 1742 NRED = 2; 1743 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1744 1745 RD_ACTION(19): /* / */ 1746 call LEX ( 2 ); 1747 dft.charge_type = charge_value; 1748 call LEX ( 2 ); 1749 NRED = 2; 1750 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1751 1752 RD_ACTION(20): /* / */ 1753 call LEX ( 2 ); 1754 call ERROR ( 12 ); 1755 call NEXT_STMT(); 1756 NRED = 2; 1757 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1758 1759 RD_ACTION(21): /* / */ 1760 call LEX ( 2 ); 1761 dft.service_type = service_value; 1762 call LEX ( 2 ); 1763 NRED = 2; 1764 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1765 1766 RD_ACTION(22): /* / */ 1767 call LEX ( 2 ); 1768 call ERROR ( 16 ); 1769 call NEXT_STMT(); 1770 NRED = 2; 1771 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1772 1773 RD_ACTION(23): /* / */ 1774 call LEX ( 2 ); 1775 cdt.acceptable_fnp_tbf = token.Nvalue; 1776 call LEX ( 2 ); 1777 NRED = 2; 1778 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1779 1780 RD_ACTION(24): /* / */ 1781 call LEX ( 2 ); 1782 call ERROR ( 44 ); 1783 call NEXT_STMT(); 1784 NRED = 2; 1785 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1786 1787 RD_ACTION(25): /* / */ 1788 call LEX ( 2 ); 1789 cdt.spare_channel_count = token.Nvalue; 1790 call LEX ( 2 ); 1791 NRED = 2; 1792 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1793 1794 RD_ACTION(26): /* / */ 1795 call LEX ( 2 ); 1796 call ERROR ( 47 ); 1797 call NEXT_STMT(); 1798 NRED = 2; 1799 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1800 1801 RD_ACTION(27): /* / */ 1802 return; /* / RETURN \ */ 1803 1804 RD_ACTION(28): /* / */ 1805 call ERROR ( 3 ); 1806 call NEXT_STMT(); 1807 NRED = 2; 1808 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1809 1810 RD_ACTION(29): /* / */ 1811 call ERROR ( 4 ); 1812 call NEXT_STMT(); 1813 NRED = 2; 1814 go to RD_TEST_REDUCTION; /* / mainloop \ */ 1815 1816 RD_ACTION(30): /* / */ 1817 call ERROR ( 5 ); 1818 return; /* / RETURN \ */ 1819 1820 RD_ACTION(31): /* / */ 1821 call LEX ( 4 ); 1822 cdte.access_class = access_class_value; 1823 NRED = 31; 1824 go to RD_TEST_REDUCTION; /* / do_name \ */ 1825 1826 RD_ACTION(32): /* / */ 1827 call LEX ( 2 ); 1828 call ERROR ( 10 ); 1829 call NEXT_STMT(); 1830 NRED = 31; 1831 go to RD_TEST_REDUCTION; /* / do_name \ */ 1832 1833 RD_ACTION(33): /* / */ 1834 call LEX ( 2 ); 1835 cdte.flags.autobaud = "1"b; 1836 cdte.baud_rate = 0; 1837 call LEX ( 2 ); 1838 NRED = 31; 1839 go to RD_TEST_REDUCTION; /* / do_name \ */ 1840 1841 RD_ACTION(34): /* / */ 1842 call LEX ( 2 ); 1843 cdte.flags.autobaud = "0"b; 1844 cdte.baud_rate = 0; 1845 call LEX ( 2 ); 1846 NRED = 31; 1847 go to RD_TEST_REDUCTION; /* / do_name \ */ 1848 1849 RD_ACTION(35): /* / */ 1850 call LEX ( 2 ); 1851 cdte.baud_rate = baud_rate_value; 1852 call LEX ( 2 ); 1853 NRED = 31; 1854 go to RD_TEST_REDUCTION; /* / do_name \ */ 1855 1856 RD_ACTION(36): /* / */ 1857 call LEX ( 2 ); 1858 call ERROR ( 29 ); 1859 call NEXT_STMT(); 1860 NRED = 31; 1861 go to RD_TEST_REDUCTION; /* / do_name \ */ 1862 1863 RD_ACTION(37): /* / */ 1864 call LEX ( 2 ); 1865 call PUSH(31); /* PUSH(do_name) */ 1866 call PUSH(128); /* PUSH(assign_access) */ 1867 NRED = 111; 1868 go to RD_TEST_REDUCTION; /* / checksub \ */ 1869 1870 RD_ACTION(38): /* / */ 1871 call LEX ( 2 ); 1872 call PUSH(31); /* PUSH(do_name) */ 1873 call PUSH(109); /* PUSH(assign_attr) */ 1874 NRED = 94; 1875 go to RD_TEST_REDUCTION; /* / attsub \ */ 1876 1877 RD_ACTION(39): /* / */ 1878 call LEX ( 2 ); 1879 cdte.answerback = token_value; 1880 call LEX ( 2 ); 1881 NRED = 31; 1882 go to RD_TEST_REDUCTION; /* / do_name \ */ 1883 1884 RD_ACTION(40): /* / */ 1885 call LEX ( 2 ); 1886 cdte.line_type = line_type_value; 1887 call LEX ( 1 ); 1888 NRED = 66; 1889 go to RD_TEST_REDUCTION; /* / line_type \ */ 1890 1891 RD_ACTION(41): /* / */ 1892 call LEX ( 2 ); 1893 call ERROR ( 11 ); 1894 call NEXT_STMT(); 1895 NRED = 31; 1896 go to RD_TEST_REDUCTION; /* / do_name \ */ 1897 1898 RD_ACTION(42): /* / */ 1899 call LEX ( 2 ); 1900 cdte.modem_type = dataset_value; 1901 call LEX ( 1 ); 1902 NRED = 59; 1903 go to RD_TEST_REDUCTION; /* / dataset \ */ 1904 1905 RD_ACTION(43): /* / */ 1906 call LEX ( 2 ); 1907 call ERROR ( 38 ); 1908 call NEXT_STMT(); 1909 NRED = 31; 1910 go to RD_TEST_REDUCTION; /* / do_name \ */ 1911 1912 RD_ACTION(44): /* / */ 1913 call LEX ( 2 ); 1914 call check_terminal_type(); 1915 cdte.initial_terminal_type = terminal_type_value; 1916 call LEX ( 2 ); 1917 NRED = 31; 1918 go to RD_TEST_REDUCTION; /* / do_name \ */ 1919 1920 RD_ACTION(45): /* / */ 1921 call LEX ( 2 ); 1922 call ERROR ( 8 ); 1923 call NEXT_STMT(); 1924 NRED = 31; 1925 go to RD_TEST_REDUCTION; /* / do_name \ */ 1926 1927 RD_ACTION(46): /* / */ 1928 call LEX ( 2 ); 1929 cdte.comment = token_value; 1930 call LEX ( 2 ); 1931 NRED = 31; 1932 go to RD_TEST_REDUCTION; /* / do_name \ */ 1933 1934 RD_ACTION(47): /* / */ 1935 call LEX ( 2 ); 1936 cdte.initial_command = token_value; 1937 cdte.execute_initial_command = token_value ^= ""; 1938 call LEX ( 2 ); 1939 NRED = 31; 1940 go to RD_TEST_REDUCTION; /* / do_name \ */ 1941 1942 RD_ACTION(48): /* / */ 1943 call LEX ( 2 ); 1944 addr ( cdte.initial_command ) -> generic_destination = token_value; 1945 cdte.generic_destination_present = token_value ^= ""; 1946 call LEX ( 2 ); 1947 NRED = 31; 1948 go to RD_TEST_REDUCTION; /* / do_name \ */ 1949 1950 RD_ACTION(49): /* / */ 1951 call LEX ( 2 ); 1952 cdte.charge_type = charge_value; 1953 call LEX ( 2 ); 1954 NRED = 31; 1955 go to RD_TEST_REDUCTION; /* / do_name \ */ 1956 1957 RD_ACTION(50): /* / */ 1958 call LEX ( 2 ); 1959 call ERROR ( 12 ); 1960 call NEXT_STMT(); 1961 NRED = 31; 1962 go to RD_TEST_REDUCTION; /* / do_name \ */ 1963 1964 RD_ACTION(51): /* / */ 1965 call LEX ( 2 ); 1966 cdte.service_type = service_value; 1967 call LEX ( 2 ); 1968 NRED = 31; 1969 go to RD_TEST_REDUCTION; /* / do_name \ */ 1970 1971 RD_ACTION(52): /* / */ 1972 call LEX ( 2 ); 1973 call ERROR ( 16 ); 1974 call NEXT_STMT(); 1975 NRED = 31; 1976 go to RD_TEST_REDUCTION; /* / do_name \ */ 1977 1978 RD_ACTION(53): /* / */ 1979 call LEX ( 2 ); 1980 cdte.mpx_type = mpx_type_value; 1981 call LEX ( 2 ); 1982 cdte.mpx_service = service_value; 1983 call LEX ( 2 ); 1984 NRED = 31; 1985 go to RD_TEST_REDUCTION; /* / do_name \ */ 1986 1987 RD_ACTION(54): /* / */ 1988 call LEX ( 4 ); 1989 call ERROR ( 16 ); 1990 call NEXT_STMT(); 1991 NRED = 31; 1992 go to RD_TEST_REDUCTION; /* / do_name \ */ 1993 1994 RD_ACTION(55): /* / */ 1995 call LEX ( 2 ); 1996 cdte.mpx_type = mpx_type_value; 1997 call LEX ( 2 ); 1998 NRED = 31; 1999 go to RD_TEST_REDUCTION; /* / do_name \ */ 2000 2001 RD_ACTION(56): /* / */ 2002 call LEX ( 2 ); 2003 call ERROR ( 51 ); 2004 call NEXT_STMT(); 2005 NRED = 31; 2006 go to RD_TEST_REDUCTION; /* / do_name \ */ 2007 2008 RD_ACTION(57): /* / */ 2009 call close_chn(); 2010 go to RD_STACK_POP; /* / STACK_POP \ */ 2011 2012 RD_ACTION(58): /* / */ 2013 call close_chn(); 2014 go to RD_STACK_POP; /* / STACK_POP \ */ 2015 2016 RD_ACTION(59): /* / */ 2017 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2018 NRED = 63; 2019 go to RD_TEST_REDUCTION; /* / ds_opt \ */ 2020 2021 RD_ACTION(60): /* / */ 2022 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2023 NRED = 31; 2024 go to RD_TEST_REDUCTION; /* / do_name \ */ 2025 2026 RD_ACTION(61): /* / */ 2027 call ERROR ( 4 ); 2028 call NEXT_STMT(); 2029 NRED = 31; 2030 go to RD_TEST_REDUCTION; /* / do_name \ */ 2031 2032 RD_ACTION(62): /* / */ 2033 call ERROR ( 5 ); 2034 return; /* / RETURN \ */ 2035 2036 RD_ACTION(63): /* / */ 2037 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2038 cdte.flags.private_line = "1"b; 2039 NRED = 59; 2040 go to RD_TEST_REDUCTION; /* / dataset \ */ 2041 2042 RD_ACTION(64): /* / */ 2043 call ERROR ( 40 ); 2044 call NEXT_STMT(); 2045 NRED = 31; 2046 go to RD_TEST_REDUCTION; /* / do_name \ */ 2047 2048 RD_ACTION(65): /* / */ 2049 call ERROR ( 5 ); 2050 return; /* / RETURN \ */ 2051 2052 RD_ACTION(66): /* / */ 2053 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2054 NRED = 70; 2055 go to RD_TEST_REDUCTION; /* / lt_opt \ */ 2056 2057 RD_ACTION(67): /* / */ 2058 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2059 NRED = 31; 2060 go to RD_TEST_REDUCTION; /* / do_name \ */ 2061 2062 RD_ACTION(68): /* / */ 2063 call ERROR ( 4 ); 2064 call NEXT_STMT(); 2065 NRED = 31; 2066 go to RD_TEST_REDUCTION; /* / do_name \ */ 2067 2068 RD_ACTION(69): /* / */ 2069 call ERROR ( 5 ); 2070 return; /* / RETURN \ */ 2071 2072 RD_ACTION(70): /* / */ 2073 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2074 cdte.flags.bsc_ebcdic = "1"b; 2075 NRED = 66; 2076 go to RD_TEST_REDUCTION; /* / line_type \ */ 2077 2078 RD_ACTION(71): /* / */ 2079 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2080 cdte.flags.bsc_ebcdic = "0"b; 2081 NRED = 66; 2082 go to RD_TEST_REDUCTION; /* / line_type \ */ 2083 2084 RD_ACTION(72): /* / */ 2085 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2086 cdte.flags.bsc_transparent = "1"b; 2087 NRED = 66; 2088 go to RD_TEST_REDUCTION; /* / line_type \ */ 2089 2090 RD_ACTION(73): /* / */ 2091 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2092 cdte.flags.bsc_transparent = "0"b; 2093 NRED = 66; 2094 go to RD_TEST_REDUCTION; /* / line_type \ */ 2095 2096 RD_ACTION(74): /* / */ 2097 call ERROR ( 41 ); 2098 call NEXT_STMT(); 2099 NRED = 31; 2100 go to RD_TEST_REDUCTION; /* / do_name \ */ 2101 2102 RD_ACTION(75): /* / */ 2103 call ERROR ( 5 ); 2104 return; /* / RETURN \ */ 2105 2106 RD_ACTION(76): /* / */ 2107 call LEX ( 2 ); 2108 fnpe.type = fnp_type_value; 2109 call LEX ( 2 ); 2110 NRED = 76; 2111 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 2112 2113 RD_ACTION(77): /* / */ 2114 call LEX ( 2 ); 2115 call ERROR ( 19 ); 2116 call NEXT_STMT(); 2117 NRED = 76; 2118 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 2119 2120 RD_ACTION(78): /* / */ 2121 call LEX ( 2 ); 2122 fnpe.memory = token.Nvalue; 2123 call LEX ( 2 ); 2124 NRED = 76; 2125 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 2126 2127 RD_ACTION(79): /* / */ 2128 call LEX ( 2 ); 2129 call ERROR ( 20 ); 2130 call NEXT_STMT(); 2131 NRED = 76; 2132 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 2133 2134 RD_ACTION(80): /* / */ 2135 call LEX ( 2 ); 2136 fnpe.nlslas = token.Nvalue; 2137 call LEX ( 2 ); 2138 NRED = 76; 2139 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 2140 2141 RD_ACTION(81): /* / */ 2142 call LEX ( 2 ); 2143 call ERROR ( 21 ); 2144 call NEXT_STMT(); 2145 NRED = 76; 2146 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 2147 2148 RD_ACTION(82): /* / */ 2149 call LEX ( 2 ); 2150 fnpe.nhslas = token.Nvalue; 2151 call LEX ( 2 ); 2152 NRED = 76; 2153 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 2154 2155 RD_ACTION(83): /* / */ 2156 call LEX ( 2 ); 2157 call ERROR ( 21 ); 2158 call NEXT_STMT(); 2159 NRED = 76; 2160 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 2161 2162 RD_ACTION(84): /* / */ 2163 call LEX ( 2 ); 2164 fnpe.coreimage = token_value; 2165 call LEX ( 2 ); 2166 NRED = 76; 2167 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 2168 2169 RD_ACTION(85): /* / */ 2170 call LEX ( 2 ); 2171 call ERROR ( 22 ); 2172 call NEXT_STMT(); 2173 NRED = 76; 2174 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 2175 2176 RD_ACTION(86): /* / */ 2177 call LEX ( 2 ); 2178 fnpe.coreimage = token_value; 2179 call LEX ( 2 ); 2180 NRED = 76; 2181 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 2182 2183 RD_ACTION(87): /* / */ 2184 fnpe.coreimage = ""; 2185 call NEXT_STMT(); 2186 NRED = 76; 2187 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 2188 2189 RD_ACTION(88): /* / */ 2190 call LEX ( 2 ); 2191 fnpe.service_type = service_value; 2192 call LEX ( 2 ); 2193 NRED = 76; 2194 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 2195 2196 RD_ACTION(89): /* / */ 2197 call LEX ( 2 ); 2198 call ERROR ( 16 ); 2199 call NEXT_STMT(); 2200 NRED = 76; 2201 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 2202 2203 RD_ACTION(90): /* / */ 2204 call LEX ( 2 ); 2205 fnpe.mpx_type = mpx_type_value; 2206 call LEX ( 2 ); 2207 NRED = 76; 2208 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 2209 2210 RD_ACTION(91): /* / */ 2211 call LEX ( 2 ); 2212 call ERROR ( 51 ); 2213 call NEXT_STMT(); 2214 NRED = 76; 2215 go to RD_TEST_REDUCTION; /* / do_fnp \ */ 2216 2217 RD_ACTION(92): /* / */ 2218 call close_fnp(); 2219 go to RD_STACK_POP; /* / STACK_POP \ */ 2220 2221 RD_ACTION(93): /* / */ 2222 call close_fnp(); 2223 go to RD_STACK_POP; /* / STACK_POP \ */ 2224 2225 RD_ACTION(94): /* / */ 2226 sx = ON; 2227 ats = dft.attributes; 2228 go to RD_NEXT_REDUCTION; /* / \ */ 2229 2230 RD_ACTION(95): /* / */ 2231 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2232 go to RD_STACK_POP; /* / STACK_POP \ */ 2233 2234 RD_ACTION(96): /* / */ 2235 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2236 string ( ats ) = ""b; 2237 NRED = 105; 2238 go to RD_TEST_REDUCTION; /* / atts \ */ 2239 2240 RD_ACTION(97): /* / */ 2241 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2242 sx = OFF; 2243 go to RD_NEXT_REDUCTION; /* / \ */ 2244 2245 RD_ACTION(98): /* / */ 2246 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2247 ats.set_modes = sx; 2248 NRED = 105; 2249 go to RD_TEST_REDUCTION; /* / atts \ */ 2250 2251 RD_ACTION(99): /* / */ 2252 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2253 ats.audit_access_error = sx; 2254 NRED = 105; 2255 go to RD_TEST_REDUCTION; /* / atts \ */ 2256 2257 RD_ACTION(100): /* / */ 2258 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2259 ats.hardwired = sx; 2260 NRED = 105; 2261 go to RD_TEST_REDUCTION; /* / atts \ */ 2262 2263 RD_ACTION(101): /* / */ 2264 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2265 ats.ck_answerback = sx; 2266 NRED = 105; 2267 go to RD_TEST_REDUCTION; /* / atts \ */ 2268 2269 RD_ACTION(102): /* / */ 2270 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2271 ats.dont_read_answerback = sx; 2272 NRED = 105; 2273 go to RD_TEST_REDUCTION; /* / atts \ */ 2274 2275 RD_ACTION(103): /* / */ 2276 call ERROR ( 14 ); 2277 call NEXT_STMT(); 2278 go to RD_STACK_POP; /* / STACK_POP \ */ 2279 2280 RD_ACTION(104): /* / */ 2281 call ERROR ( 7 ); 2282 return; /* / RETURN \ */ 2283 2284 RD_ACTION(105): /* / */ 2285 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2286 sx = ON; 2287 NRED = 95; 2288 go to RD_TEST_REDUCTION; /* / attloop \ */ 2289 2290 RD_ACTION(106): /* / */ 2291 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2292 go to RD_STACK_POP; /* / STACK_POP \ */ 2293 2294 RD_ACTION(107): /* / */ 2295 call ERROR ( 15 ); 2296 call NEXT_STMT(); 2297 go to RD_STACK_POP; /* / STACK_POP \ */ 2298 2299 RD_ACTION(108): /* / */ 2300 call ERROR ( 7 ); 2301 return; /* / RETURN \ */ 2302 2303 RD_ACTION(109): /* / */ 2304 cdte.attributes = ats; 2305 go to RD_STACK_POP; /* / STACK_POP \ */ 2306 2307 RD_ACTION(110): /* / */ 2308 dft.attributes = ats; 2309 go to RD_STACK_POP; /* / STACK_POP \ */ 2310 2311 RD_ACTION(111): /* / */ 2312 sx = ON; 2313 access = dft.access_control; 2314 go to RD_NEXT_REDUCTION; /* / \ */ 2315 2316 RD_ACTION(112): /* / */ 2317 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2318 go to RD_STACK_POP; /* / STACK_POP \ */ 2319 2320 RD_ACTION(113): /* / */ 2321 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2322 string ( access ) = ""b; 2323 NRED = 123; 2324 go to RD_TEST_REDUCTION; /* / checks \ */ 2325 2326 RD_ACTION(114): /* / */ 2327 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2328 string ( access ) = ALL_ACCESS_CHECKS; 2329 NRED = 123; 2330 go to RD_TEST_REDUCTION; /* / checks \ */ 2331 2332 RD_ACTION(115): /* / */ 2333 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2334 sx = OFF; 2335 go to RD_NEXT_REDUCTION; /* / \ */ 2336 2337 RD_ACTION(116): /* / */ 2338 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2339 access.login = sx; 2340 NRED = 123; 2341 go to RD_TEST_REDUCTION; /* / checks \ */ 2342 2343 RD_ACTION(117): /* / */ 2344 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2345 access.slave_dial = sx; 2346 NRED = 123; 2347 go to RD_TEST_REDUCTION; /* / checks \ */ 2348 2349 RD_ACTION(118): /* / */ 2350 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2351 access.dial_server = sx; 2352 NRED = 123; 2353 go to RD_TEST_REDUCTION; /* / checks \ */ 2354 2355 RD_ACTION(119): /* / */ 2356 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2357 access.dial_out = sx; 2358 NRED = 123; 2359 go to RD_TEST_REDUCTION; /* / checks \ */ 2360 2361 RD_ACTION(120): /* / */ 2362 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2363 access.priv_attach = sx; 2364 NRED = 123; 2365 go to RD_TEST_REDUCTION; /* / checks \ */ 2366 2367 RD_ACTION(121): /* / */ 2368 call ERROR ( 27 ); 2369 call NEXT_STMT(); 2370 go to RD_STACK_POP; /* / STACK_POP \ */ 2371 2372 RD_ACTION(122): /* / */ 2373 call ERROR ( 26 ); 2374 return; /* / RETURN \ */ 2375 2376 RD_ACTION(123): /* / */ 2377 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2378 sx = ON; 2379 NRED = 112; 2380 go to RD_TEST_REDUCTION; /* / checkloop \ */ 2381 2382 RD_ACTION(124): /* / */ 2383 Ptoken, Pthis_token = Pthis_token -> token.Pnext; /* LEX */ 2384 go to RD_STACK_POP; /* / STACK_POP \ */ 2385 2386 RD_ACTION(125): /* / */ 2387 call ERROR ( 27 ); 2388 call NEXT_STMT(); 2389 go to RD_STACK_POP; /* / STACK_POP \ */ 2390 2391 RD_ACTION(126): /* / */ 2392 call ERROR ( 26 ); 2393 return; /* / RETURN \ */ 2394 2395 RD_ACTION(127): /* / */ 2396 dft.access_control = access; 2397 go to RD_STACK_POP; /* / STACK_POP \ */ 2398 2399 RD_ACTION(128): /* / */ 2400 cdte.access_control = access; 2401 go to RD_STACK_POP; /* / STACK_POP \ */ 2402 2403 2404 end SEMANTIC_ANALYSIS; 2405 2406 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 2407 2408 dcl SPDL bit(1) aligned init ("0"b); 2409 /* off: This compiler parses a non-PUSH DOWN */ 2410 /* LANGUAGE. */ 2411 /* START OF: rdc_lex_.incl.pl1 * * * * * * * * * * * * * * * * */ 19 2 19 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 19 4 /* */ 19 5 /* N__a_m_e: rdc_lex_.incl.pl1 */ 19 6 /* */ 19 7 /* This include segment is used by compilers generated by the reduction_compiler. */ 19 8 /* It contains the LEX subroutine which is used to manipulate the pointer to the */ 19 9 /* "current" token, Pthis_token. */ 19 10 /* */ 19 11 /* E__n_t_r_y: LEX */ 19 12 /* */ 19 13 /* This entry makes the |_nth|-next (or -preceding) token the "current" token, where */ 19 14 /* _n is its positive (or negative) input argument. */ 19 15 /* */ 19 16 /* U__s_a_g_e */ 19 17 /* */ 19 18 /* call LEX(n); */ 19 19 /* */ 19 20 /* 1) n is the number of the token to be made the "current" token, relative to the */ 19 21 /* token identified by Pthis_token (the present "current" token). If n is */ 19 22 /* positive, the nth token following the "current" token made "current". If n */ 19 23 /* is negative, the nth token preceding the "current" token is made "current". */ 19 24 /* */ 19 25 /* S__t_a_t_u_s */ 19 26 /* */ 19 27 /* 0) Created by: G. C. Dixon in February, 1975 */ 19 28 /* */ 19 29 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 19 30 19 31 LEX: procedure (n); 19 32 19 33 dcl n fixed bin, 19 34 i fixed bin; 19 35 19 36 Ptoken = Pthis_token; /* do everything relative to "current" token. */ 19 37 if Ptoken = null then return; /* can't lex if token list exhausted. */ 19 38 if n >= 0 then do; /* new "current" token will follow present one. */ 19 39 do i = 1 to n while (token.Pnext ^= null); /* find new "current" token, taking care not to */ 19 40 Ptoken = token.Pnext; /* run off end of token list. */ 19 41 end; 19 42 if ^SPDL then if i <= n then Ptoken = null; /* if not in 'PUSH DOWN LANGUAGE' mode, allow */ 19 43 /* running off end of token list. */ 19 44 end; 19 45 else /* new "current" token precedes present one. */ 19 46 do i = -1 to n by -1 while (token.Plast ^= null); 19 47 Ptoken = token.Plast; 19 48 end; 19 49 Pthis_token = Ptoken; /* simple wasn't it. */ 19 50 19 51 end LEX; 19 52 19 53 /* END OF: rdc_lex_.incl.pl1 * * * * * * * * * * * * * * * * */ 2411 2412 2413 /* START OF: rdc_error_.incl.pl1 * * * * * * * * * * * * * * * * */ 20 2 20 3 dcl MERROR_SEVERITY fixed bin init (0), /* Severity of highest-severity error. */ 20 4 SERROR_CONTROL bit(2) init ("00"b),/* Global switches control error message format. */ 20 5 SERROR_PRINTED (dimension (error_control_table,1)) 20 6 bit(1) unaligned init ((dimension (error_control_table,1))(1)"0"b), 20 7 /* Array bit is on if corresponding error message */ 20 8 /* in error_control_table has already been printed*/ 20 9 MIN_PRINT_SEVERITY fixed bin init (0), /* Mimimum severity message that will be printed */ 20 10 PRINT_SEVERITY_CONTROL bit(2) init ("11"b);/* Action if severity < MIN_PRINT_SEVERITY */ 20 11 20 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 20 13 /* */ 20 14 /* N__a_m_e: rdc_error_.incl.pl1 */ 20 15 /* */ 20 16 /* This include segment is used by compilers generated by the reduction_compiler. */ 20 17 /* It defines a procedure which the compilers can use to print error messages. */ 20 18 /* */ 20 19 /* E__n_t_r_y: ERROR */ 20 20 /* */ 20 21 /* Given an error number, this procedure prints a corresponding error message. */ 20 22 /* The message is stored in a compiler-defined error_control_table, along with an integer */ 20 23 /* which specifies the severity level of the error, and a switch which specifies whether */ 20 24 /* the source statement in which the error occurred (if any) should be printed after the */ 20 25 /* error message. The printing of the error message may be supressed for all messages */ 20 26 /* having a severity less than a specified (MIN_PRINT_SEVERITY) value. The ERROR */ 20 27 /* procedure calls the lex_error_ subroutine to perform the formatting and printing of */ 20 28 /* the error message. */ 20 29 /* */ 20 30 /* U__s_a_g_e */ 20 31 /* */ 20 32 /* call ERROR (error_number); */ 20 33 /* */ 20 34 /* 1) error_number is the index of one of the structures in the error_control_table */ 20 35 /* which defines the error message to be printed. */ 20 36 /* */ 20 37 /* N__o_t_e_s */ 20 38 /* */ 20 39 /* The format of the error_control_table is shown below. */ 20 40 /* */ 20 41 /* dcl 1 error_control_table (2) aligned internal static, */ 20 42 /* 2 severity fixed bin(17) unaligned init (2,3), */ 20 43 /* 2 Soutput_stmt bit(1) unaligned initial ("0"b,"1"b), */ 20 44 /* 2 message char(252) varying initial ( */ 20 45 /* "The reduction source segment does not contain any reductions.", */ 20 46 /* "Reduction label '^a' is invalid."), */ 20 47 /* 2 brief_message char(100) varying initial ( */ 20 48 /* "", "'^a'"); */ 20 49 /* */ 20 50 /* error_control_table is an array of structures, with one array element per error. */ 20 51 /* Each structure contains: a severity level for the error; a switch which specifies */ 20 52 /* whether the source statement being processed should be output after the error message; */ 20 53 /* the long form of the error message text; and the brief form of the error message text.*/ 20 54 /* The dimension of the error_control_table array of structures, and the lengths of */ 20 55 /* message (long message) and brief_message (brief message), are compiler-defined. */ 20 56 /* structures and the lengths of the message and brief_message are compiler-defined. */ 20 57 /* The only requirement is that the messages be 256 characters or less in length. */ 20 58 /* (Remember that the longest character string which can be used in an initial attribute */ 20 59 /* is 254 characters in length.) */ 20 60 /* */ 20 61 /* The severity number causes the error message to be preceded by a herald which */ 20 62 /* includes one of the following prefixes: */ 20 63 /* */ 20 64 /* _s_e_v _p_r_e_f_i_x _e_x_p_l_a_n_a_t_i_o_n */ 20 65 /* 0 = COMMENT - this is a comment. */ 20 66 /* 1 = WARNING - a possible error has been detected. The */ 20 67 /* compiler will still generate an object segment. */ 20 68 /* 2 = ERROR - a probable error has been detected. The */ 20 69 /* compiler will still generate an object segment. */ 20 70 /* 3 = FATAL ERROR - an error has been detected which is so severe */ 20 71 /* that no object segment will be generated. */ 20 72 /* 4 = TRANSLATOR ERROR - an error has been detected in the operation of */ 20 73 /* the compiler or translator. No object segment */ 20 74 /* will be generated. */ 20 75 /* */ 20 76 /* Full error messages are of the form: */ 20 77 /* */ 20 78 /* _p_r_e_f_i_x _e_r_r_o_r__n_u_m_b_e_r, SEVERITY _s_e_v_e_r_i_t_y IN STATEMENT _n OF LINE _m */ 20 79 /* _t_e_x_t__o_f__e_r_r_o_r__m_e_s_s_a_g_e */ 20 80 /* SOURCE: */ 20 81 /* _s_o_u_r_c_e__s_t_a_t_e_m_e_n_t */ 20 82 /* */ 20 83 /* If only one statement appears in line _m, then "STATEMENT _n OF" is omitted. */ 20 84 /* If the source statement has been printed in a previous error message, it is omitted. */ 20 85 /* */ 20 86 /* The reduction compiler declares a bit string, SERROR_CONTROL, which controls the */ 20 87 /* text of an error message. The compiler may set this bit string, as shown below. */ 20 88 /* */ 20 89 /* SERROR_CONTROL _m_e_a_n_i_n_g */ 20 90 /* "00"b the first time a particular error occurs, the long message */ 20 91 /* is printed; the brief message is used in subsequent */ 20 92 /* occurrences of that error. */ 20 93 /* "10"b or "11"b the long error message is always used. */ 20 94 /* "01"b the brief error message is always used. */ 20 95 /* The initial value of SERROR_CONTROL is "00"b. */ 20 96 /* */ 20 97 /* The reduction_compiler creates a declaration for SERROR_PRINTED, an array */ 20 98 /* of switches (one per error). The switch corresponding to a particular error is */ 20 99 /* turned on whenever the error message is printed. This allows lex_error_ to detect */ 20 100 /* subsequent occurrences of that same error. */ 20 101 /* */ 20 102 /* The reduction_compiler creates MERROR_SEVERITY, a fixed bin(17) integer */ 20 103 /* in which the severity of the highest-severity error encountered is maintained. */ 20 104 /* The compiler may reference this integer. */ 20 105 /* */ 20 106 /* The reduction_compiler creates MIN_PRINT_SEVERITY, a fixed bin (17) integer */ 20 107 /* which controls the printing of error messages by the ERROR procedure. */ 20 108 /* Errors having a severity less than MIN_PRINT_SEVERITY will not cause lex_error_ to be */ 20 109 /* and no error will be printed. The behaviour of the ERROR procedure for such errors */ 20 110 /* is controlled by the value of PRINT_SEVERITY_CONTROL, described below. */ 20 111 /* The compiler may set the value of MIN_PRINT_SEVERITY; its initial value is 0. */ 20 112 20 113 /* */ 20 114 /* The reduction_compiler declares a bit string, PRINT_SEVERITY_CONTROL, which */ 20 115 /* controls the updating of MERROR_SEVERITY and SERROR_PRINTED when the severity of an */ 20 116 /* error is less than MIN_PRINT_SEVERITY. In such cases, the lex_error_ procedure is not */ 20 117 /* invoked, and the ERROR procedure must update these values as though lex_error_ were */ 20 118 /* called. The compiler may set this bit string, as shown below. */ 20 119 /* */ 20 120 /* PRINT_SEVERITY_CONTROL _m_e_a_n_i_n_g */ 20 121 /* "00"b update neither SERROR_PRINTED nor MERROR_SEVERITY. */ 20 122 /* "01"b update SERROR_PRINTED to reflect the error. */ 20 123 /* "10"b update MERROR_SEVERITY to reflect the error severity. */ 20 124 /* "11"b update SERROR_PRINTED and MERROR_SEVERITY appropriately. */ 20 125 /*The initial value of PRINT_SEVERITY_CONTROL is "11"b. */ 20 126 /* */ 20 127 /* The ERROR procedure is simple to use, but it does limit the flexibility of the */ 20 128 /* error message. A compiler action routine can output more flexible error messages */ 20 129 /* by calling lex_error_ directly. See lex_error_ documentation for more details. */ 20 130 /* */ 20 131 /* S__t_a_t_u_s */ 20 132 /* */ 20 133 /* 0) Created: April, 1974 by G. C. Dixon */ 20 134 /* 1) Modified: April, 1982 by E. N. Kittlitz. Added MIN_PRINT_SEVERITY, */ 20 135 /* PRINT_SEVERITY_CONTROL. */ 20 136 /* */ 20 137 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 20 138 20 139 ERROR: procedure (Nerror); 20 140 20 141 dcl Nerror fixed bin; /* Number of the error which was detected. (In) */ 20 142 20 143 dcl Pstmt ptr, 20 144 1 erring_token aligned based (Perring_token) like token, 20 145 Perring_token ptr, 20 146 erring_token_value char(erring_token.Lvalue) based (erring_token.Pvalue); 20 147 20 148 dcl (max, null) builtin; 20 149 20 150 dcl lex_error_ entry options (variable); 20 151 20 152 20 153 if error_control_table.severity(Nerror) < MIN_PRINT_SEVERITY then do; /* don't print */ 20 154 if PRINT_SEVERITY_CONTROL & "1"b then /* update MERROR_SEVERITY */ 20 155 MERROR_SEVERITY = max (MERROR_SEVERITY, error_control_table.severity(Nerror)); 20 156 if PRINT_SEVERITY_CONTROL & "01"b then /* update SERROR_PRINTED */ 20 157 SERROR_PRINTED(Nerror) = "1"b; 20 158 return; 20 159 end; 20 160 Perring_token = Pthis_token; /* address the current erring_token. */ 20 161 if error_control_table.Soutput_stmt(Nerror) then 20 162 if Perring_token = null then 20 163 Pstmt = null; 20 164 else 20 165 Pstmt = erring_token.Pstmt; /* address the statement descriptor. */ 20 166 else 20 167 Pstmt = null; 20 168 if Perring_token = null then 20 169 call lex_error_ (Nerror, SERROR_PRINTED(Nerror), (error_control_table.severity(Nerror)), 20 170 MERROR_SEVERITY, Pstmt, Perring_token, SERROR_CONTROL, (error_control_table.message(Nerror)), 20 171 (error_control_table.brief_message(Nerror))); 20 172 else 20 173 call lex_error_ (Nerror, SERROR_PRINTED(Nerror), (error_control_table.severity(Nerror)), 20 174 MERROR_SEVERITY, Pstmt, Perring_token, SERROR_CONTROL, (error_control_table.message(Nerror)), 20 175 (error_control_table.brief_message(Nerror)), erring_token_value, erring_token_value, erring_token_value); 20 176 20 177 end ERROR; 20 178 20 179 /* END OF: rdc_error_.incl.pl1 * * * * * * * * * * * * * * * * */ 2413 2414 2415 /* START OF: rdc_next_stmt_.incl.pl1 * * * * * * */ 21 2 21 3 /* * * * * * * * * * * * * * * * * * * * * * * */ 21 4 /* */ 21 5 /* N__a_m_e: rdc_next_stmt_.incl.pl1 */ 21 6 /* */ 21 7 /* This include segment is used by compilers generated by the */ 21 8 /* reduction_compiler. It includes a procedure which shifts the */ 21 9 /* compilation process to the next source statement. */ 21 10 /* */ 21 11 /* S__t_a_t_u_s */ 21 12 /* */ 21 13 /* 0) Created: April, 1974 by G. C. Dixon */ 21 14 /* */ 21 15 /* * * * * * * * * * * * * * * * * * * * * * * */ 21 16 21 17 21 18 NEXT_STMT: procedure; /* invoked to begin parsing the next statement of */ 21 19 /* the input tokens. */ 21 20 21 21 dcl null builtin, 21 22 Ssearching bit(1) aligned; 21 23 21 24 Ptoken = Pthis_token; /* make sure these pointers are the same. */ 21 25 Pstmt = token.Pstmt; /* address "current" statement's descriptor. */ 21 26 Ssearching = "1"b; /* start scanning forward for next statement. */ 21 27 do while (Ssearching & token.Pnext ^= null); 21 28 Ptoken = token.Pnext; 21 29 if token.Pstmt = Pstmt then; 21 30 else Ssearching = "0"b; 21 31 end; 21 32 if token.Pstmt = Pstmt then /* if there is no next statement, and */ 21 33 if SPDL then /* in PUSH DOWN LANGUAGE mode, can't run off */ 21 34 Ptoken = Ptoken; /* end of input list. */ 21 35 else Ptoken, Pthis_token = null; /* otherwise, input list exhausted. */ 21 36 else Pthis_token = Ptoken; /* normally, next statement exists and Ptoken */ 21 37 /* points to its 1st _n_o_n-__d_e_l_e_t_e_d token. */ 21 38 21 39 end NEXT_STMT; 21 40 21 41 /* END OF: rdc_next_stmt_.incl.pl1 * * * * * * */ 2415 2416 2417 end cv_cmf; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/01/89 1000.0 cv_cmf.pl1 >spec>install>1123>cv_cmf.pl1 396 1 08/06/87 0913.0 cdt.incl.pl1 >ldd>include>cdt.incl.pl1 1-314 2 07/21/88 2036.0 fnp_types.incl.pl1 >ldd>include>fnp_types.incl.pl1 397 3 09/09/75 2007.3 author_dcl.incl.pl1 >ldd>include>author_dcl.incl.pl1 3-10 4 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 398 5 08/06/87 0913.4 line_types.incl.pl1 >ldd>include>line_types.incl.pl1 399 6 05/28/82 1334.9 baud_rates.incl.pl1 >ldd>include>baud_rates.incl.pl1 400 7 11/04/76 1639.9 dataset_names.incl.pl1 >ldd>include>dataset_names.incl.pl1 401 8 10/26/89 2011.9 multiplexer_types.incl.pl1 >ldd>include>multiplexer_types.incl.pl1 402 9 08/06/87 0913.4 dialup_values.incl.pl1 >ldd>include>dialup_values.incl.pl1 403 10 07/18/81 1100.0 sub_error_info.incl.pl1 >ldd>include>sub_error_info.incl.pl1 404 11 03/24/82 1347.2 condition_info_header.incl.pl1 >ldd>include>condition_info_header.incl.pl1 405 12 06/28/79 1204.8 condition_info.incl.pl1 >ldd>include>condition_info.incl.pl1 407 13 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 408 14 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 1370 15 04/18/75 1242.4 rdc_start_.incl.pl1 >ldd>include>rdc_start_.incl.pl1 15-25 16 04/18/75 1242.4 lex_descriptors_.incl.pl1 >ldd>include>lex_descriptors_.incl.pl1 1578 17 03/17/86 1534.3 rdc_end_.incl.pl1 >ldd>include>rdc_end_.incl.pl1 1612 18 04/18/75 1242.4 rdc_stack_fcns_.incl.pl1 >ldd>include>rdc_stack_fcns_.incl.pl1 2411 19 04/18/75 1242.4 rdc_lex_.incl.pl1 >ldd>include>rdc_lex_.incl.pl1 2413 20 08/15/83 1511.7 rdc_error_.incl.pl1 >ldd>include>rdc_error_.incl.pl1 2415 21 04/18/75 1242.4 rdc_next_stmt_.incl.pl1 >ldd>include>rdc_next_stmt_.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ACTIVE constant fixed bin(17,0) initial dcl 1-272 ref 800 948 1118 ALL_ACCESS_CHECKS constant bit(5) initial packed unaligned dcl 263 ref 2328 ANS_SERVICE constant fixed bin(17,0) initial dcl 1-259 ref 567 APstmt 000100 automatic pointer dcl 257 set ref 588* APtoken 000102 automatic pointer dcl 257 set ref 588* 591 BACKSPACE 021271 constant char(1) initial dcl 15-99 ref 17-113 BREAKS 000113 internal static varying char(128) dcl 364 set ref 581* 583* 588* CDT_version constant fixed bin(17,0) initial dcl 1-39 ref 549 CODE 001261 automatic fixed bin(35,0) dcl 15-33 set ref 17-106* 17-107 DIRECTION 001264 automatic fixed bin(17,0) initial dcl 1372 set ref 17-62 1372* FNP_DOWN constant fixed bin(17,0) initial dcl 1-298 ref 1117 FNP_FREE constant fixed bin(17,0) initial dcl 1-298 ref 602 FORM based fixed bin(17,0) level 2 packed packed unaligned dcl 15-48 ref 17-65 17-70 17-123 I 001262 automatic fixed bin(17,0) dcl 15-33 in procedure "SEMANTIC_ANALYSIS" set ref 17-62* 17-63 17-79* I based fixed bin(17,0) level 2 in structure "TOKEN_REQD_STRING" packed packed unaligned dcl 15-48 in procedure "SEMANTIC_ANALYSIS" ref 17-126 IFIRST based fixed bin(17,0) level 3 packed packed unaligned dcl 15-48 ref 17-62 17-73 17-79 17-79 IGBREAKS 000154 internal static varying char(128) dcl 364 set ref 582* 583* 588* ILAST 0(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 15-48 ref 17-62 17-73 17-79 INACTIVE constant fixed bin(17,0) initial dcl 1-272 ref 802 L 0(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 15-48 ref 17-127 LEXCTL 000052 internal static varying char(128) dcl 364 set ref 583* 588* LEXDLM 000011 internal static varying char(128) dcl 364 set ref 583* 588* LINE_1050 constant fixed bin(17,0) initial dcl 5-22 ref 709 LINE_2741 constant fixed bin(17,0) initial dcl 5-22 ref 709 LINE_ARDS constant fixed bin(17,0) initial dcl 5-22 ref 709 LINE_ETX constant fixed bin(17,0) initial dcl 5-22 ref 709 LINE_UNKNOWN constant fixed bin(17,0) initial dcl 5-22 ref 559 LTOKEN_REQD_VALUE 001250 automatic fixed bin(18,0) dcl 15-33 set ref 17-127* 17-128 Lvalue 4 based fixed bin(18,0) level 2 in structure "token" dcl 16-68 in procedure "cv_cmf" ref 686 686 699 722 728 741 763 767 781 781 800 802 815 829 856 859 863 871 872 1102 1104 1105 1140 1146 1146 17-92 17-92 17-92 17-92 17-106 17-106 17-113 17-113 17-128 1724 1731 1732 1739 1740 1879 1929 1936 1937 1944 1945 2164 2178 Lvalue 4 based fixed bin(18,0) level 2 in structure "erring_token" dcl 20-143 in procedure "ERROR" ref 20-172 20-172 20-172 20-172 20-172 20-172 MCS_MPX constant fixed bin(17,0) initial dcl 8-16 ref 1119 MERROR_SEVERITY 000763 automatic fixed bin(17,0) initial dcl 20-3 set ref 632 653 20-3* 1168* 1174* 1174 1201* 1205* 1205 20-154* 20-154 20-168* 20-172* MIN_PRINT_SEVERITY 000765 automatic fixed bin(17,0) initial dcl 20-3 set ref 490* 20-3* 1168 1201 20-153 MPX_SERVICE constant fixed bin(17,0) initial dcl 1-259 ref 608 938 N parameter fixed bin(17,0) dcl 18-38 set ref 18-36 18-60* 18-68 NOW_HUNG_UP constant fixed bin(17,0) initial dcl 9-76 ref 902 NRED 001251 automatic fixed bin(17,0) dcl 15-33 set ref 17-52* 17-55* 17-55 17-58 1610 18-18* 18-26* 1624* 1632* 1638* 1645* 1652* 1659* 1667* 1675* 1683* 1690* 1697* 1704* 1712* 1719* 1726* 1734* 1742* 1749* 1756* 1763* 1770* 1777* 1784* 1791* 1798* 1807* 1813* 1823* 1830* 1838* 1846* 1853* 1860* 1867* 1874* 1881* 1888* 1895* 1902* 1909* 1917* 1924* 1931* 1939* 1947* 1954* 1961* 1968* 1975* 1984* 1991* 1998* 2005* 2018* 2023* 2029* 2039* 2045* 2054* 2059* 2065* 2075* 2081* 2087* 2093* 2099* 2110* 2117* 2124* 2131* 2138* 2145* 2152* 2159* 2166* 2173* 2180* 2186* 2193* 2200* 2207* 2214* 2237* 2248* 2254* 2260* 2266* 2272* 2287* 2323* 2329* 2340* 2346* 2352* 2358* 2364* 2379* 18-60* NUMBER 001263 automatic fixed bin(35,0) dcl 15-33 set ref 17-106* 17-108 Nerror parameter fixed bin(17,0) dcl 20-141 set ref 20-139 20-153 20-154 20-156 20-161 20-168* 20-168 20-168 20-168 20-168 20-172* 20-172 20-172 20-172 20-172 Nvalue 10 based fixed bin(35,0) level 3 packed packed unaligned dcl 16-68 set ref 17-101 17-108* 1775 1789 2122 2136 2150 OFF constant bit(1) initial packed unaligned dcl 364 ref 2242 2334 ON constant bit(1) initial packed unaligned dcl 364 ref 2225 2286 2311 2378 PRED 001252 automatic pointer dcl 15-33 set ref 17-58* 17-62 17-62 17-73 17-73 17-79 17-79 17-79 PRINT_SEVERITY_CONTROL 000766 automatic bit(2) initial packed unaligned dcl 20-3 set ref 20-3* 20-154 20-156 PTOKEN_REQD 001254 automatic pointer dcl 15-33 set ref 17-63* 17-65 17-65 17-70 17-71 17-123 17-126 17-127 1581 PTOKEN_REQD_VALUE 001256 automatic pointer dcl 15-33 set ref 17-126* 17-128 Perring_token 001354 automatic pointer dcl 20-143 set ref 20-160* 20-161 20-164 20-168 20-168* 20-172* 20-172 20-172 20-172 20-172 20-172 20-172 20-172 20-172 20-172 Plast 2 based pointer level 2 packed packed unaligned dcl 16-68 ref 19-45 19-47 Pnext 1 based pointer level 2 packed packed unaligned dcl 16-68 ref 17-79 1606 2016 2021 2036 2052 2057 2072 2078 2084 2090 2230 2234 2240 2245 2251 2257 2263 2269 2284 2290 2316 2320 2326 2332 2337 2343 2349 2355 2361 2376 2382 19-39 19-40 21-27 21-28 Pstmt 5 based pointer level 2 in structure "erring_token" packed packed unaligned dcl 20-143 in procedure "ERROR" ref 20-164 Pstmt 5 based pointer level 2 in structure "token" packed packed unaligned dcl 16-68 in procedure "cv_cmf" ref 1165 21-25 21-29 21-32 Pstmt 001352 automatic pointer dcl 20-143 in procedure "ERROR" set ref 20-161* 20-164* 20-166* 20-168* 20-172* Pstmt 000756 automatic pointer dcl 16-40 in procedure "cv_cmf" set ref 21-25* 21-29 21-32 Pthis_token 000754 automatic pointer dcl 15-23 set ref 591* 1166 17-60 1609 2016 2016* 2021 2021* 2036 2036* 2052 2052* 2057 2057* 2072 2072* 2078 2078* 2084 2084* 2090 2090* 2230 2230* 2234 2234* 2240 2240* 2245 2245* 2251 2251* 2257 2257* 2263 2263* 2269 2269* 2284 2284* 2290 2290* 2316 2316* 2320 2320* 2326 2326* 2332 2332* 2337 2337* 2343 2343* 2349 2349* 2355 2355* 2361 2361* 2376 2376* 2382 2382* 19-36 19-49* 20-160 21-24 21-35* 21-36* Ptoken 000760 automatic pointer dcl 16-68 set ref 686 686 686 699 699 722 722 728 728 741 741 763 763 767 767 781 781 781 800 800 802 802 815 815 829 829 856 856 859 859 863 871 871 872 872 1102 1102 1104 1104 1105 1105 1140 1140 1146 1146 1146 1165 17-60* 17-64 17-73 17-79 17-86 17-92 17-92 17-92 17-92 17-92 17-92 17-92 17-101 17-104 17-106 17-106 17-106 17-108 17-113 17-113 17-113 17-113 17-118 17-124 17-128 17-128 1606* 1606 1609* 1724 1724 1731 1731 1732 1732 1739 1739 1740 1740 1775 1789 1879 1879 1929 1929 1936 1936 1937 1937 1944 1944 1945 1945 2016* 2021* 2036* 2052* 2057* 2072* 2078* 2084* 2090* 2122 2136 2150 2164 2164 2178 2178 2230* 2234* 2240* 2245* 2251* 2257* 2263* 2269* 2284* 2290* 2316* 2320* 2326* 2332* 2337* 2343* 2349* 2355* 2361* 2376* 2382* 19-36* 19-37 19-39 19-40* 19-40 19-42* 19-45 19-47* 19-47 19-49 21-24* 21-25 21-27 21-28* 21-28 21-29 21-32 21-32* 21-32 21-35* 21-36 Pvalue 3 based pointer level 2 in structure "token" packed packed unaligned dcl 16-68 in procedure "cv_cmf" ref 686 699 722 728 741 763 767 781 800 802 815 829 856 859 871 872 1102 1104 1105 1140 1146 17-92 17-92 17-106 17-113 17-128 1724 1731 1732 1739 1740 1879 1929 1936 1937 1944 1945 2164 2178 Pvalue 3 based pointer level 2 in structure "erring_token" packed packed unaligned dcl 20-143 in procedure "ERROR" ref 20-172 20-172 20-172 RED based structure level 1 dcl 15-48 REDUCTION based structure array level 1 packed packed unaligned dcl 1377 set ref 17-58 REDUCTIONS 004356 constant fixed bin(17,0) initial array packed unaligned dcl 1377 set ref 17-58 R_ACCESS 005274 constant bit(3) initial packed unaligned dcl 14-11 set ref 502* 506* S 11 based structure level 3 packed packed unaligned dcl 16-68 SERROR_CONTROL 000764 automatic bit(2) initial packed unaligned dcl 20-3 set ref 468* 470* 472* 20-3* 1168* 1201* 20-168* 20-172* SERROR_PRINTED 000765 automatic bit(1) initial array packed unaligned dcl 20-3 set ref 20-3* 1168* 1175* 20-156* 20-168* 20-172* SPDL 000762 automatic bit(1) initial dcl 2408 set ref 2408* 17-73 19-42 21-32 STACK 001265 automatic fixed bin(17,0) array dcl 1373 set ref 18-18 18-26 18-59 18-60 18-60 18-68* STACK_DEPTH 001277 automatic fixed bin(17,0) initial dcl 1373 set ref 18-17 18-18 18-24 18-26 18-27* 18-27 1373* 18-59 18-66* 18-66 18-68 STOKEN_FCN 001260 automatic bit(1) dcl 15-33 set ref 1583* 1585* 1587* 1589* 1591* 1593* 1595* 1597* 1599* 1602 Soutput_stmt 0(18) 000000 constant bit(1) initial array level 2 packed packed unaligned dcl 1212 ref 20-161 Ssearching 001364 automatic bit(1) dcl 21-21 set ref 21-26* 21-27 21-30* TERM_FILE_DELETE 004556 constant bit(5) initial packed unaligned dcl 13-17 set ref 671* TERM_FILE_TERM 004560 constant bit(3) initial packed unaligned dcl 13-14 set ref 665* TERM_FILE_TRUNC_BC_TERM 004557 constant bit(3) initial packed unaligned dcl 13-15 set ref 643* 674* TOKEN_REQD based structure level 1 dcl 15-48 in procedure "SEMANTIC_ANALYSIS" TOKEN_REQD based structure level 2 in structure "RED" packed packed unaligned dcl 15-48 in procedure "SEMANTIC_ANALYSIS" TOKEN_REQD_STRING based structure level 1 dcl 15-48 TOKEN_REQD_VALUE based char packed unaligned dcl 15-48 ref 17-128 TOKEN_REQUIREMENT based structure array level 1 packed packed unaligned dcl 1513 set ref 17-63 TOKEN_REQUIREMENTS 004074 constant fixed bin(17,0) initial array packed unaligned dcl 1513 set ref 17-63 TOKEN_STRINGS based char(505) dcl 1568 set ref 17-126 TOKEN_STRING_ARRAYS 003646 constant char(100) initial array dcl 1568 set ref 17-126 TRACING 000215 internal static bit(1) initial dcl 1367 set ref 17-50* 17-50 TYPE 0(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 15-48 ref 17-65 17-71 1581 acceptable_fnp_tbf 54 based fixed bin(17,0) level 2 dcl 1-44 set ref 551* 1775* access 000261 automatic structure level 1 dcl 262 set ref 2313* 2322* 2328* 2395 2399 access_class 12 000110 automatic bit(72) array level 2 in structure "dft" dcl 260 in procedure "cv_cmf" set ref 570* 1637* access_class 12 based bit(72) array level 2 in structure "cdte" dcl 1-72 in procedure "cv_cmf" set ref 1822* access_class_value 000262 automatic bit(72) array dcl 265 set ref 686* 1637 1822 access_control 50(09) 000110 automatic structure level 3 in structure "dft" packed packed unaligned dcl 260 in procedure "cv_cmf" set ref 2313 2395* access_control 1570(09) based structure array level 4 in structure "cdt" packed packed unaligned dcl 1-44 in procedure "cv_cmf" access_control 50(09) based structure level 3 in structure "cdte" packed packed unaligned dcl 1-72 in procedure "cv_cmf" set ref 2399* action_flags 2 based structure level 3 dcl 10-7 addr builtin function dcl 306 in procedure "cv_cmf" ref 500 500 542 555 601 607 617 617 640 900 971 1028 1059 1068 1068 1078 1078 1113 addr builtin function dcl 15-92 in procedure "SEMANTIC_ANALYSIS" ref 17-58 17-58 17-63 17-63 17-126 17-126 1739 1944 addr builtin function dcl 18-40 in procedure "PUSH" ref 18-63 18-63 al 000426 automatic fixed bin(21,0) dcl 287 set ref 440* 441 445 445 450 450 453 453 457 457 468 470 472 472 474 474 478 478 482* 483 483 486 486 493 493 almsg 000100 automatic char(100) dcl 616 set ref 619* 622 625 answerback 35 000110 automatic char(8) level 2 in structure "dft" dcl 260 in procedure "cv_cmf" set ref 568* answerback 35 based char(8) level 2 in structure "cdte" dcl 1-72 in procedure "cv_cmf" set ref 926 1879* ap 000424 automatic pointer dcl 286 set ref 440* 441 445 450 453 457 468 470 472 472 474 474 478 482* 483 486 493 areap 000104 automatic pointer dcl 257 set ref 415* 572* 573 588* 676 676* argc 000421 automatic fixed bin(17,0) dcl 285 set ref 425* 432 439 476 argx 000422 automatic fixed bin(17,0) dcl 285 set ref 439* 440* 476 481* 481 482* ats 000260 automatic structure level 1 dcl 261 set ref 2227* 2236* 2303 2307 attributes 1570 based structure array level 4 in structure "cdt" packed packed unaligned dcl 1-44 in procedure "cv_cmf" attributes 50 based structure level 3 in structure "cdte" packed packed unaligned dcl 1-72 in procedure "cv_cmf" set ref 2303* attributes 50 000110 automatic structure level 3 in structure "dft" packed packed unaligned dcl 260 in procedure "cv_cmf" set ref 2227 2307* audit_access_error 0(01) 000260 automatic bit(1) level 2 packed packed unaligned dcl 261 set ref 2253* author based structure level 2 in structure "author_dcl" dcl 3-9 in procedure "cv_cmf" author based structure level 2 in structure "cdt" dcl 1-44 in procedure "cv_cmf" author_dcl based structure level 1 dcl 3-9 auto_condition_info 000720 automatic structure level 1 dcl 406 set ref 617 617 autobaud 50(23) 000110 automatic bit(1) level 4 in structure "dft" packed packed unaligned dcl 260 in procedure "cv_cmf" set ref 1665* 1673* 1681* autobaud 50(23) based bit(1) level 4 in structure "cdte" packed packed unaligned dcl 1-72 in procedure "cv_cmf" set ref 1835* 1843* baud_rate 33(18) 000110 automatic fixed bin(17,0) level 2 in structure "dft" packed packed unaligned dcl 260 in procedure "cv_cmf" set ref 564* 1664* 1672* 1680* baud_rate 33(18) based fixed bin(17,0) level 2 in structure "cdte" packed packed unaligned dcl 1-72 in procedure "cv_cmf" set ref 1836* 1844* 1851* baud_rate_value 000303 automatic fixed bin(17,0) dcl 272 set ref 781* 785 787 789 1664 1851 baud_table 005011 constant fixed bin(17,0) initial array dcl 6-8 ref 789 789 791 bchr based char packed unaligned dcl 300 set ref 441 445* 450* 453* 457* 468 470 472 472 474 474 478* 483* 486* 493* bin builtin function dcl 306 ref 550 884 885 964 bitc 000420 automatic fixed bin(24,0) dcl 284 set ref 502* 506* 521 636* 638* 640* 641 643* 646* brief_error 000216 internal static varying char(4) initial dcl 18-48 set ref 18-60* brief_message 33 000000 constant varying char(20) initial array level 2 dcl 1212 ref 1168 20-168 20-172 bsc_ebcdic 50(20) based bit(1) level 4 packed packed unaligned dcl 1-72 set ref 2074* 2080* bsc_transparent 50(21) based bit(1) level 4 packed packed unaligned dcl 1-72 set ref 2086* 2092* cdt based structure level 1 dcl 1-44 cdt_en 000404 automatic char(32) packed unaligned dcl 279 set ref 461* 529* 533* 533* 646* 646* cdt_entry 1520 based structure array level 2 dcl 1-44 set ref 542 607 640 900 971 1028 1059 cdt_entryp parameter pointer dcl 1042 set ref 1039 1078* cdt_list 000140 automatic structure level 1 dcl 1052 set ref 1068 1068 1078 1078 cdt_mgr_$thread 000336 constant entry external dcl 322 ref 629 cdte based structure level 1 dcl 1-72 set ref 550 640 901* 972* 972 cdte_ptr 1 000140 automatic pointer array level 2 packed packed unaligned dcl 1052 set ref 1064* cdtep 000712 automatic pointer dcl 1-41 set ref 542* 550 550 555* 607* 608 608* 608 608 640 900* 901 902 903 926 926 929 929 932 932 934 935 935 938 940 940 943 943 943 946 947 947 948 948 951 951 963 972 973* 974 1002 1822 1835 1836 1843 1844 1851 1879 1886 1900 1915 1929 1936 1937 1944 1945 1952 1966 1980 1982 1996 2038 2074 2080 2086 2092 2303 2399 cdtp 000710 automatic pointer dcl 1-41 set ref 414* 529* 531 538* 542 544 545 547 547 548 549 550 551 552 600 601 606 607 629* 640 640 643* 668 671* 672* 674* 848 848 850 898 898 898 900 900 924 957 957 959 969 969 969 971 971 1027 1028 1052 1058 1059 1078* 1113 1775 1789 chan1 001154 automatic fixed bin(17,0) dcl 845 set ref 884* 886 888 chan2 001155 automatic fixed bin(17,0) dcl 845 set ref 885* 886 888 channel_digits 000753 automatic fixed bin(17,0) dcl 910 set ref 879* 964 965 965 channel_threads based structure level 1 dcl 1-249 channels_open 000752 automatic fixed bin(17,0) dcl 909 set ref 855* 860* 868* 888* 895* 956 character builtin function dcl 306 ref 441 charge_type 32 000110 automatic fixed bin(17,0) level 2 in structure "dft" packed packed unaligned dcl 260 in procedure "cv_cmf" set ref 558* 1747* charge_type 32 based fixed bin(17,0) level 2 in structure "cdte" packed packed unaligned dcl 1-72 in procedure "cv_cmf" set ref 1952* charge_value 000266 automatic fixed bin(17,0) dcl 266 set ref 724* 728* 728* 730 1747 1952 ck_answerback 000260 automatic bit(1) level 2 in structure "ats" packed packed unaligned dcl 261 in procedure "cv_cmf" set ref 2265* ck_answerback 50 based bit(1) level 4 in structure "cdte" packed packed unaligned dcl 1-72 in procedure "cv_cmf" set ref 926* cleanup 000674 stack reference condition dcl 312 ref 419 cmf_en 000374 automatic char(32) packed unaligned dcl 279 set ref 457* 502* 503 509* 511* 516* 516* 635* cmfp 000106 automatic pointer dcl 257 set ref 413* 502* 506* 588* 665 665* code 000430 automatic fixed bin(35,0) dcl 289 in procedure "cv_cmf" set ref 570* 572* 575* 686* 687 781* 782 891* 892 967* 1060* 1061 1073* 1074 1145* 1146 code parameter fixed bin(35,0) dcl 993 in procedure "check_chan_name" set ref 988 1001* 1006* collate builtin function dcl 306 ref 581 581 582 582 602 602 929 929 com_err_ 000360 constant entry external dcl 332 ref 428 445 453 478 486 493 509 516 533 575 635 646 com_err_$suppress_name 000376 constant entry external dcl 347 ref 434 comment 16 based char(48) level 2 in structure "cdte" dcl 1-72 in procedure "cv_cmf" set ref 929 1929* comment 16 000110 automatic char(48) level 2 in structure "dft" dcl 260 in procedure "cv_cmf" set ref 557* 1724* condition_info based structure level 1 dcl 12-14 condition_info_header based structure level 1 dcl 11-6 convert_authorization_$from_string_range 000326 constant entry external dcl 317 ref 570 686 convert_status_code_ 000330 constant entry external dcl 319 ref 619 coreimage 6 based char(168) level 2 dcl 1-200 set ref 2164* 2178* 2183* count 000140 automatic fixed bin(17,0) level 2 dcl 1052 set ref 1057* 1063* 1063 1064 1068 created_table_segment 000431 automatic bit(1) dcl 290 set ref 417* 530* 636 668 cu_$arg_count 000332 constant entry external dcl 320 ref 425 cu_$arg_ptr 000334 constant entry external dcl 321 ref 440 482 cu_$cl 000452 constant entry external dcl 18-43 ref 18-62 current_size 36 based fixed bin(17,0) level 2 dcl 1-44 set ref 606 640 848 898* 924 957 969 969* 1027 1052 1058 current_terminal_type 101 000110 automatic char(32) level 2 packed packed unaligned dcl 260 set ref 561* cv_cmf_severity_ 000446 external static fixed bin(35,0) initial dcl 392 set ref 422* 653* 658* cv_dec_check_ 000340 constant entry external dcl 323 in procedure "cv_cmf" ref 483 781 cv_dec_check_ 000450 constant entry external dcl 15-96 in procedure "SEMANTIC_ANALYSIS" ref 17-106 dataset_names 004771 constant char(8) initial array packed unaligned dcl 7-5 ref 815 815 817 dataset_value 000302 automatic fixed bin(17,0) dcl 271 set ref 815* 815* 817 1900 default_restart 2(01) based bit(1) level 4 packed packed unaligned dcl 10-7 ref 620 device_id 000434 automatic char(8) array level 2 dcl 294 set ref 728 dft 000110 automatic structure level 1 dcl 260 set ref 554* 555 901 dial_out 000261 automatic bit(1) level 2 packed packed unaligned dcl 262 set ref 2357* dial_server 0(02) 000261 automatic bit(1) level 2 packed packed unaligned dcl 262 set ref 2351* dimension builtin function dcl 18-40 in procedure "PUSH" ref 18-59 18-60 18-60 dimension builtin function dcl 306 in procedure "cv_cmf" ref 20-3 20-3 divide builtin function dcl 306 ref 521 550 dn 000312 automatic char(168) packed unaligned dcl 278 set ref 416* 450* 457* 502* 506* 509* 509* 516* 516* 528* 529* 533* 533* 546* 546* 547 646* 646* dont_read_answerback 0(04) 000260 automatic bit(1) level 2 packed packed unaligned dcl 261 set ref 2271* dvt 000434 automatic structure array level 1 dcl 294 set ref 500 500 ec 000427 automatic fixed bin(35,0) dcl 288 set ref 425* 426 428* 450* 451 453* 457* 458 461* 463 482* 483* 484 502* 503 506* 507 514 516* 524* 529* 530 533* 538* 539 588* 643* 644 646* entryname 000120 automatic char(32) packed unaligned dcl 1046 set ref 1072* 1073* 1074 entvar 000134 automatic entry variable dcl 1050 set ref 1073* 1078 erring_token based structure level 1 dcl 20-143 erring_token_value based char packed unaligned dcl 20-143 set ref 20-172* 20-172* 20-172* error_control_table 000000 constant structure array level 1 dcl 1212 ref 20-3 20-3 error_num parameter fixed bin(17,0) dcl 1189 in procedure "mpx_error" ref 1186 1197 error_num parameter fixed bin(17,0) dcl 1156 in procedure "semant_error" set ref 1153 1162 1168 1168* 1168 1168 1168 1168 1174 1175 error_table_$bad_conversion 000442 external static fixed bin(35,0) dcl 381 set ref 486* error_table_$badopt 000434 external static fixed bin(35,0) dcl 381 set ref 493* error_table_$noarg 000440 external static fixed bin(35,0) dcl 381 set ref 478* error_table_$noentry 000430 external static fixed bin(35,0) dcl 381 ref 503 error_table_$too_many_args 000432 external static fixed bin(35,0) dcl 381 set ref 445* error_table_$translation_failed 000426 external static fixed bin(35,0) dcl 381 set ref 635* error_table_$zero_length_seg 000436 external static fixed bin(35,0) dcl 381 ref 524 execute_initial_command 50(17) based bit(1) level 4 in structure "cdte" packed packed unaligned dcl 1-72 in procedure "cv_cmf" set ref 932 935* 943 947* 1937* execute_initial_command 50(17) 000110 automatic bit(1) level 4 in structure "dft" packed packed unaligned dcl 260 in procedure "cv_cmf" set ref 1732* expand_pathname_ 000354 constant entry external dcl 329 ref 450 expand_pathname_$add_suffix 000356 constant entry external dcl 330 ref 457 fb35 000433 automatic fixed bin(35,0) dcl 292 set ref 483* 484 484 490 find_condition_info_ 000342 constant entry external dcl 324 ref 617 first 000010 internal static bit(1) initial packed unaligned dcl 364 set ref 579 585* flags 50 000110 automatic structure level 2 in structure "dft" dcl 260 in procedure "cv_cmf" set ref 566* flags 1570 based structure array level 3 in structure "cdt" dcl 1-44 in procedure "cv_cmf" flags 50 based structure level 2 in structure "cdte" dcl 1-72 in procedure "cv_cmf" fnp_entry 120 based structure array level 2 dcl 1-44 set ref 600 601 1113 fnp_no parameter fixed bin(17,0) dcl 992 in procedure "check_chan_name" set ref 988 1000* 1015* 1016 1016* fnp_no 001216 automatic fixed bin(17,0) dcl 922 in procedure "close_chn" set ref 967* fnp_no 001111 automatic fixed bin(17,0) dcl 843 in procedure "open_chn" set ref 891* fnp_type_value 000301 automatic fixed bin(17,0) dcl 270 set ref 763* 763* 765 769* 2108 fnp_types 005170 constant char(8) initial array packed unaligned dcl 2-25 ref 763 763 765 fnpe based structure level 1 dcl 1-200 fnpep 000714 automatic pointer dcl 1-41 set ref 601* 602 602* 602 1113* 1114 1117 1118 1119 2108 2122 2136 2150 2164 2178 2183 2191 2205 fnpno 000416 automatic fixed bin(17,0) dcl 282 set ref 1104* 1105 1105* 1107 1110* 1113 generic_destination based char(32) packed unaligned dcl 1-195 set ref 1739* 1944* generic_destination_present 50(24) based bit(1) level 4 in structure "cdte" packed packed unaligned dcl 1-72 in procedure "cv_cmf" set ref 932 935* 943 947* 1945* generic_destination_present 50(24) 000110 automatic bit(1) level 4 in structure "dft" packed packed unaligned dcl 260 in procedure "cv_cmf" set ref 1740* get_group_id_ 000346 constant entry external dcl 326 ref 544 get_shortest_path_ 000350 constant entry external dcl 327 ref 546 get_system_free_area_ 000352 constant entry external dcl 328 ref 596 get_wdir_ 000344 constant entry external dcl 325 ref 528 group2 7 based structure level 2 packed packed unaligned dcl 16-68 hardwired 0(02) 000260 automatic bit(1) level 2 packed packed unaligned dcl 261 set ref 2259* hbound builtin function dcl 306 ref 597 598 600 704 707 748 751 763 765 789 791 815 817 829 831 hcs_$make_entry 000414 constant entry external dcl 355 ref 1073 hcs_$make_seg 000402 constant entry external dcl 349 ref 529 hcs_$truncate_seg 000404 constant entry external dcl 350 ref 538 header based structure level 2 dcl 10-7 hsla 000104 automatic bit(1) packed unaligned dcl 996 set ref 1015* i 000100 automatic fixed bin(17,0) dcl 994 in procedure "check_chan_name" set ref 1027* 1028* i 001340 automatic fixed bin(17,0) dcl 19-33 in procedure "LEX" set ref 19-39* 19-42 19-45* i 000100 automatic fixed bin(17,0) dcl 1195 in procedure "mpx_error" set ref 1197* 1198 1198 1198* 1200 1201 1206 i 000130 automatic fixed bin(17,0) dcl 1048 in procedure "process_subchans" set ref 1058* 1059* i 001213 automatic fixed bin(17,0) dcl 920 in procedure "close_chn" set ref 956* i 000414 automatic fixed bin(17,0) dcl 281 in procedure "cv_cmf" set ref 600* 601 602 602* 606* 607* 789* 789* 791 i 001110 automatic fixed bin(17,0) dcl 842 in procedure "open_chn" set ref 856* 857 863 863 871 872 877* 877 877* 879 880 882 884 885 in_use based fixed bin(17,0) level 2 dcl 1-72 set ref 902* index builtin function dcl 306 ref 856 1019 1104 1105 info_ptr 14 000720 automatic pointer level 2 dcl 406 set ref 618 info_string 3 based varying char(256) level 3 dcl 10-7 ref 622 625 initial_command 51 000110 automatic char(64) level 2 in structure "dft" dcl 260 in procedure "cv_cmf" set ref 569* 1731* 1739 initial_command 51 based char(64) level 2 in structure "cdte" dcl 1-72 in procedure "cv_cmf" set ref 946* 1936* 1944 initial_terminal_type 37 000110 automatic char(32) level 2 in structure "dft" packed packed unaligned dcl 260 in procedure "cv_cmf" set ref 560* 1710* initial_terminal_type 37 based char(32) level 2 in structure "cdte" packed packed unaligned dcl 1-72 in procedure "cv_cmf" set ref 1915* initiate_file_ 000400 constant entry external dcl 348 ref 502 506 iox_$error_output 000456 external static pointer dcl 18-43 set ref 18-63* iox_$put_chars 000454 constant entry external dcl 18-43 ref 18-63 j 000101 automatic fixed bin(17,0) dcl 1195 set ref 1200* 1201* la_no 000105 automatic fixed bin(17,0) dcl 997 set ref 1015* last_install_time 12 based fixed bin(71,0) level 3 dcl 1-44 set ref 548* lbound builtin function dcl 306 ref 704 748 length builtin function dcl 306 in procedure "cv_cmf" ref 547 873 873 877 879 964 965 965 1002 1002 1009 1021 1102 length builtin function dcl 18-40 in procedure "PUSH" ref 18-63 18-63 lex_error_ 000462 constant entry external dcl 20-150 in procedure "ERROR" ref 20-168 20-172 lex_error_ 000460 constant entry external dcl 18-43 in procedure "PUSH" ref 18-60 lex_error_ 000364 constant entry external dcl 335 in procedure "cv_cmf" ref 1168 1201 lex_string_$init_lex_delims 000366 constant entry external dcl 336 ref 583 lex_string_$lex 000370 constant entry external dcl 339 ref 588 line_type 33 based fixed bin(17,0) level 2 in structure "cdte" packed packed unaligned dcl 1-72 in procedure "cv_cmf" set ref 1886* line_type 33 000110 automatic fixed bin(17,0) level 2 in structure "dft" packed packed unaligned dcl 260 in procedure "cv_cmf" set ref 559* 1695* line_type_value 000270 automatic fixed bin(17,0) dcl 268 set ref 704* 704* 707 709 709 709 709 1695 1886 line_types 005030 constant char(16) initial array packed unaligned dcl 5-54 ref 704 704 704 707 login 0(03) 000261 automatic bit(1) level 2 packed packed unaligned dcl 262 set ref 2339* long_error 000220 internal static varying char(234) initial dcl 18-48 set ref 18-60* long_text parameter char packed unaligned dcl 1191 set ref 1186 1201* ltrim builtin function dcl 306 ref 851 851 960 960 match_star_name_ 000410 constant entry external dcl 353 ref 1060 max builtin function dcl 306 in procedure "cv_cmf" ref 1174 1205 max builtin function dcl 20-148 in procedure "ERROR" ref 20-154 max builtin function dcl 15-92 in procedure "SEMANTIC_ANALYSIS" ref 18-27 max_size 35 based fixed bin(17,0) level 2 dcl 1-44 set ref 550* 848 850 957 959 memory 1 based fixed bin(17,0) level 2 dcl 1-200 set ref 2122* message 1 000000 constant varying char(100) initial array level 2 dcl 1212 ref 1168 20-168 20-172 modem_type 34 based fixed bin(17,0) level 2 in structure "cdte" packed packed unaligned dcl 1-72 in procedure "cv_cmf" set ref 1900* modem_type 34 000110 automatic fixed bin(17,0) level 2 in structure "dft" packed packed unaligned dcl 260 in procedure "cv_cmf" set ref 565* mpx_data 47 based structure level 2 packed packed unaligned dcl 1-72 mpx_error_printed based bit(1) array packed unaligned dcl 302 set ref 597 598* 1201* 1206* mpx_error_printedp 000306 automatic pointer initial dcl 275 set ref 275* 597* 598 1201 1206 mpx_name parameter char packed unaligned dcl 1043 set ref 1039 1056 1074* 1078* mpx_service 47(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 1-72 set ref 948 948* 1982* mpx_type 47 based fixed bin(17,0) level 3 in structure "cdte" packed packed unaligned dcl 1-72 in procedure "cv_cmf" set ref 608 940 951 1980* 1996* mpx_type parameter fixed bin(17,0) dcl 1044 in procedure "process_subchans" ref 1039 1071 1072 1077 mpx_type 5 based fixed bin(17,0) level 2 in structure "fnpe" dcl 1-200 in procedure "cv_cmf" set ref 602* 1119* 2205* mpx_type_value 000304 automatic fixed bin(17,0) dcl 273 set ref 829* 829* 831 1077* 1200 1201 1206 1980 1996 2205 mpx_types 004561 constant char(32) initial array packed unaligned dcl 8-35 ref 597 598 829 829 831 1071 1072 mpxe 64 based structure level 2 in structure "fnpe" dcl 1-200 in procedure "cv_cmf" mpxe based structure level 1 dcl 1-221 in procedure "cv_cmf" my_name 005230 constant char(6) initial packed unaligned dcl 364 set ref 428* 434* 445* 453* 478* 486* 493* 509* 516* 533* 572* 575* 635* 646* n 000415 automatic fixed bin(17,0) dcl 281 in procedure "cv_cmf" set ref 521* 522 588* n parameter fixed bin(17,0) dcl 19-33 in procedure "LEX" ref 19-31 19-38 19-39 19-42 19-45 n_cdtes 41 based fixed bin(17,0) level 2 dcl 1-44 set ref 898 898* 900 969* 971 name 2 000110 automatic char(32) level 2 in structure "dft" dcl 260 in procedure "cv_cmf" set ref 556* name 2 based char(32) level 2 in structure "cdte" dcl 1-72 in procedure "cv_cmf" set ref 608 903* 929 934 940 943 951 963 974* 1002 1029 1060 1091 1091 1093 1093 name parameter char packed unaligned dcl 991 in procedure "check_chan_name" set ref 988 1002 1002 1004* 1009 1009 1009 1009 1013 1015* 1019 1021 1021 1023 1029 1029* name1 001112 automatic varying char(64) dcl 844 set ref 859* 867* 871* 873 875 877 877 879 880 884 891 894* 903 name2 001133 automatic varying char(64) dcl 844 set ref 872* 873 875 877 882 885 ndev 000417 automatic fixed bin(17,0) dcl 283 set ref 500* 728 730 new_name 001172 automatic varying char(64) dcl 919 set ref 963* 964 964 965 965* 967 974 nhslas 3 based fixed bin(17,0) level 2 dcl 1-200 set ref 2150* nlslas 2 based fixed bin(17,0) level 2 dcl 1-200 set ref 2136* non_restart_error 000314 internal static char(33) initial packed unaligned dcl 18-48 set ref 18-63 18-63 18-63 18-63 null builtin function dcl 21-21 in procedure "NEXT_STMT" ref 21-27 21-35 null builtin function dcl 18-40 in procedure "PUSH" ref 18-60 18-60 18-60 18-60 null builtin function dcl 15-92 in procedure "SEMANTIC_ANALYSIS" ref 17-64 17-73 17-79 17-86 null builtin function dcl 20-148 in procedure "ERROR" ref 20-161 20-161 20-166 20-168 null builtin function dcl 306 in procedure "cv_cmf" ref 275 413 414 415 531 573 617 617 665 668 672 676 1073 1073 1145 1145 1158 1158 1201 1201 1201 1201 19-37 19-39 19-42 19-45 options 50(17) 000110 automatic structure level 3 in structure "dft" packed packed unaligned dcl 260 in procedure "cv_cmf" options 50(17) based structure level 3 in structure "cdte" packed packed unaligned dcl 1-72 in procedure "cv_cmf" p 001170 automatic pointer dcl 918 in procedure "close_chn" set ref 971* 972 973 p parameter pointer packed unaligned dcl 1089 in procedure "chan_name_compare" ref 1086 1091 1093 p 000132 automatic pointer dcl 1049 in procedure "process_subchans" set ref 1059* 1060 1064 p 000102 automatic pointer dcl 995 in procedure "check_chan_name" set ref 1028* 1029 parm1 parameter char packed unaligned dcl 1156 in procedure "semant_error" set ref 1153 1162 1168* parm1 parameter char packed unaligned dcl 1193 in procedure "mpx_error" set ref 1186 1201* parm2 parameter char packed unaligned dcl 1156 in procedure "semant_error" set ref 1153 1162 1168* parm2 parameter char packed unaligned dcl 1193 in procedure "mpx_error" set ref 1186 1201* parse_tty_name_ 000416 constant entry external dcl 356 ref 1015 pathname_ 000420 constant entry external dcl 357 ref 509 509 516 516 533 533 646 646 pic9 001156 automatic picture(6) packed unaligned dcl 846 in procedure "open_chn" set ref 850* 851 851 pic9 001214 automatic picture(8) packed unaligned dcl 921 in procedure "close_chn" set ref 959* 960 960 964* 965 965 priv_attach 0(01) 000261 automatic bit(1) level 2 packed packed unaligned dcl 262 set ref 2363* private_line 50(19) based bit(1) level 4 packed packed unaligned dcl 1-72 set ref 2038* proc_group_id based char(32) level 3 dcl 1-44 set ref 544* q parameter pointer packed unaligned dcl 1089 ref 1086 1091 1093 quoted_string 11(01) based bit(1) level 4 packed packed unaligned dcl 16-68 ref 17-92 17-104 17-113 17-118 17-124 rank builtin function dcl 306 ref 602 602 rel builtin function dcl 306 ref 550 rtrim builtin function dcl 306 ref 963 1056 1071 1072 1074 1074 search builtin function dcl 15-92 ref 17-92 segname 000110 automatic char(32) packed unaligned dcl 1046 set ref 1071* 1073* 1074 service_type 32(18) 000110 automatic fixed bin(17,0) level 2 in structure "dft" packed packed unaligned dcl 260 in procedure "cv_cmf" set ref 567* 1761* service_type 4 based fixed bin(17,0) level 2 in structure "fnpe" dcl 1-200 in procedure "cv_cmf" set ref 1118* 2191* service_type 32(18) based fixed bin(17,0) level 2 in structure "cdte" packed packed unaligned dcl 1-72 in procedure "cv_cmf" set ref 608 938 1966* service_value 000267 automatic fixed bin(17,0) dcl 267 set ref 748* 748* 751 800* 802* 1761 1966 1982 2191 services 005200 constant char(12) initial array packed unaligned dcl 376 ref 748 748 748 751 set_modes 0(03) 000260 automatic bit(1) level 2 packed packed unaligned dcl 261 set ref 2247* severity 000000 constant fixed bin(17,0) initial array level 2 in structure "error_control_table" packed packed unaligned dcl 1212 in procedure "cv_cmf" ref 1168 1168 1174 20-153 20-154 20-168 20-172 severity parameter fixed bin(17,0) dcl 1190 in procedure "mpx_error" set ref 1186 1201 1201* 1205 short_text parameter char packed unaligned dcl 1191 set ref 1186 1201* size builtin function dcl 306 ref 550 640 slave_dial 0(04) 000261 automatic bit(1) level 2 packed packed unaligned dcl 262 set ref 2345* sort_items_$general 000412 constant entry external dcl 354 ref 1068 spare_channel_count 55 based fixed bin(17,0) level 2 dcl 1-44 set ref 552* 1789* star_name 000100 automatic char(32) packed unaligned dcl 1046 set ref 1056* 1060* state 64 based fixed bin(17,0) level 3 dcl 1-200 set ref 602 1114 1117* status_code 104 based fixed bin(35,0) level 3 dcl 10-7 set ref 619* stmt_ptr 000100 automatic pointer initial dcl 1158 set ref 1158* 1165* 1168* string builtin function dcl 306 set ref 563* 566* 598* 2236* 2322* 2328* sub_error_ 000702 stack reference condition dcl 313 ref 614 630 sub_error_info based structure level 1 dcl 10-7 sub_error_info_ptr 000716 automatic pointer dcl 10-6 set ref 618* 619 620 622 625 subchan 000106 automatic fixed bin(17,0) dcl 998 set ref 1015* substr builtin function dcl 15-92 in procedure "SEMANTIC_ANALYSIS" ref 17-92 17-126 substr builtin function dcl 306 in procedure "cv_cmf" set ref 547 581 581 582 582 602 602 871 872 877 877 880 882 884 885 929 929 964 965* 965 1009 1009 1009 1013 1021 1023 suffixed_name_$new_suffix 000422 constant entry external dcl 358 ref 461 supplied_en 000364 automatic char(32) packed unaligned dcl 279 set ref 416* 443 450* 461* 498 503 506* 509* 509* 511 sx 000432 automatic bit(1) dcl 291 set ref 2225* 2242* 2247 2253 2259 2265 2271 2286* 2311* 2334* 2339 2345 2351 2357 2363 2378* sys_info$max_seg_size 000444 external static fixed bin(18,0) dcl 390 ref 550 system_area based area(1024) dcl 301 ref 597 system_areap 000310 automatic pointer dcl 276 set ref 596* 597 system_info_$device_prices 000362 constant entry external dcl 333 ref 500 table 14 based char(4) level 3 dcl 1-44 set ref 545* temp_line_type 001016 automatic char(16) packed unaligned dcl 697 set ref 699* 701 701* 704 temp_service_type 001040 automatic char(12) packed unaligned dcl 739 set ref 741* 743 743* 745 745* 748 terminal_type_value 000271 automatic char(32) packed unaligned dcl 269 set ref 1140* 1141 1141* 1145* 1710 1915 terminate_file_ 000424 constant entry external dcl 360 ref 643 665 671 674 token based structure level 1 dcl 16-68 token_ptr 000102 automatic pointer initial dcl 1158 set ref 1158* 1166* 1168* token_value based char packed unaligned dcl 16-68 set ref 686* 699 722 728 741 763 767 781* 800 802 815 829 856 859 871 872 1102 1104 1105 1140 1146* 17-92 17-92 17-106* 17-113 17-128 1724 1731 1732 1739 1740 1879 1929 1936 1937 1944 1945 2164 2178 translate builtin function dcl 306 ref 1140 translator_temp_$get_segment 000372 constant entry external dcl 342 ref 572 translator_temp_$release_all_segments 000374 constant entry external dcl 344 ref 676 ttt_info_$terminal_data 000406 constant entry external dcl 351 ref 1145 tty_id_code 100 000110 automatic char(4) level 2 dcl 260 set ref 562* type based fixed bin(17,0) level 2 dcl 1-200 set ref 2108* unspec builtin function dcl 306 set ref 554* 946* user_name 137 000110 automatic structure level 2 packed packed unaligned dcl 260 set ref 563* verify builtin function dcl 306 in procedure "cv_cmf" ref 880 882 929 1009 verify builtin function dcl 15-92 in procedure "SEMANTIC_ANALYSIS" ref 17-92 version 37 based fixed bin(17,0) level 2 dcl 1-44 set ref 549* w_dir 15 based char(64) level 3 dcl 1-44 set ref 547* 547 wordno builtin function dcl 306 ref 640 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTIVE_VALUES internal static char(18) initial array dcl 9-86 A_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 CDT_version_5 internal static fixed bin(17,0) initial dcl 1-38 CHANNEL_DELETED internal static fixed bin(17,0) initial dcl 1-288 DIAL_OUT_SERVICE internal static fixed bin(17,0) initial dcl 1-259 DIAL_SERVICE internal static fixed bin(17,0) initial dcl 1-259 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 14-33 DN355 internal static fixed bin(17,0) initial dcl 2-19 DN6600 internal static fixed bin(17,0) initial dcl 2-19 DN6670 internal static fixed bin(17,0) initial dcl 2-19 DN7100 internal static fixed bin(17,0) initial dcl 2-19 E_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 FNP_BOOT internal static fixed bin(17,0) initial dcl 1-298 FNP_UNKNOWN internal static fixed bin(17,0) initial dcl 1-298 FNP_UP internal static fixed bin(17,0) initial dcl 1-298 FTP_SERVICE internal static fixed bin(17,0) initial dcl 1-259 HASP_MPX internal static fixed bin(17,0) initial dcl 8-16 IBM3270_MPX internal static fixed bin(17,0) initial dcl 8-16 LAP_MPX internal static fixed bin(17,0) initial dcl 8-16 LINE_ASCII internal static fixed bin(17,0) initial dcl 5-22 LINE_ASYNC1 internal static fixed bin(17,0) initial dcl 5-22 LINE_ASYNC2 internal static fixed bin(17,0) initial dcl 5-22 LINE_ASYNC3 internal static fixed bin(17,0) initial dcl 5-22 LINE_BSC internal static fixed bin(17,0) initial dcl 5-22 LINE_COLTS internal static fixed bin(17,0) initial dcl 5-22 LINE_DSA internal static fixed bin(17,0) initial dcl 5-22 LINE_G115 internal static fixed bin(17,0) initial dcl 5-22 LINE_HASP_OPR internal static fixed bin(17,0) initial dcl 5-22 LINE_HDLC internal static fixed bin(17,0) initial dcl 5-22 LINE_MC internal static fixed bin(17,0) initial dcl 5-22 LINE_POLLED_VIP internal static fixed bin(17,0) initial dcl 5-22 LINE_SYNC1 internal static fixed bin(17,0) initial dcl 5-22 LINE_SYNC2 internal static fixed bin(17,0) initial dcl 5-22 LINE_SYNC3 internal static fixed bin(17,0) initial dcl 5-22 LINE_SYNCH internal static fixed bin(17,0) initial dcl 5-22 LINE_TELNET internal static fixed bin(17,0) initial dcl 5-22 LINE_VIP internal static fixed bin(17,0) initial dcl 5-22 LINE_X25LAP internal static fixed bin(17,0) initial dcl 5-22 MC_SERVICE internal static fixed bin(17,0) initial dcl 1-259 MPX_BOOT internal static fixed bin(17,0) initial dcl 1-306 MPX_DOWN internal static fixed bin(17,0) initial dcl 1-306 MPX_FREE internal static fixed bin(17,0) initial dcl 1-306 MPX_UNKNOWN internal static fixed bin(17,0) initial dcl 1-306 MPX_UP internal static fixed bin(17,0) initial dcl 1-306 M_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 NOT_CONFIGURED internal static fixed bin(17,0) initial dcl 1-280 NOW_DIALED internal static fixed bin(17,0) initial dcl 9-76 NOW_DIALED_OUT internal static fixed bin(17,0) initial dcl 9-76 NOW_DIALING internal static fixed bin(17,0) initial dcl 9-76 NOW_FREE internal static fixed bin(17,0) initial dcl 9-76 NOW_HAS_PROCESS internal static fixed bin(17,0) initial dcl 9-76 NOW_LISTENING internal static fixed bin(17,0) initial dcl 9-76 NOW_LOGGED_IN internal static fixed bin(17,0) initial dcl 9-76 N_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 PREEMPT_BUMPED internal static fixed bin(17,0) initial dcl 9-132 PREEMPT_BUMPED_NO_TERM internal static fixed bin(17,0) initial dcl 9-132 PREEMPT_LOAD_CTL internal static fixed bin(17,0) initial dcl 9-132 PREEMPT_TERMSGNL_RECEIVED internal static fixed bin(17,0) initial dcl 9-132 PREEMPT_TERM_SENT internal static fixed bin(17,0) initial dcl 9-132 PREEMPT_UNBUMP internal static fixed bin(17,0) initial dcl 9-132 PREEMPT_UNBUMP_IGNORE_ALARM internal static fixed bin(17,0) initial dcl 9-132 PREEMPT_VALUES internal static varying char(28) initial array dcl 9-142 PROTOCOL_MPX internal static fixed bin(17,0) initial dcl 8-16 PT_ALARM internal static fixed bin(17,0) initial dcl 9-106 PT_BUMP internal static fixed bin(17,0) initial dcl 9-106 PT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 9-106 PT_DETACH internal static fixed bin(17,0) initial dcl 9-106 PT_FPE internal static fixed bin(17,0) initial dcl 9-106 PT_HANGUP internal static fixed bin(17,0) initial dcl 9-106 PT_LOGOUT internal static fixed bin(17,0) initial dcl 9-106 PT_NEW_PROC_AUTH internal static fixed bin(17,0) initial dcl 9-106 PT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 9-106 PT_OPERATOR_TERMINATE internal static fixed bin(17,0) initial dcl 9-106 PT_SHUTDOWN internal static fixed bin(17,0) initial dcl 9-106 PT_UNBUMP internal static fixed bin(17,0) initial dcl 9-106 Pcomment automatic pointer dcl 16-20 REW_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 RW_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 14-30 SLAVE_SERVICE internal static fixed bin(17,0) initial dcl 1-259 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 STATE_VALUES internal static char(15) initial array dcl 9-70 STY_MPX internal static fixed bin(17,0) initial dcl 8-16 SYSTEM1_MPX internal static fixed bin(17,0) initial dcl 8-16 SYSTEM2_MPX internal static fixed bin(17,0) initial dcl 8-16 S_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 TAG_ABSENTEE internal static char(1) initial packed unaligned dcl 9-93 TAG_DAEMON internal static char(1) initial packed unaligned dcl 9-93 TAG_INTERACTIVE internal static char(1) initial packed unaligned dcl 9-93 TAG_PROXY internal static char(1) initial packed unaligned dcl 9-93 TAG_UFT internal static char(1) initial packed unaligned dcl 9-93 TANDD_SERVICE internal static fixed bin(17,0) initial dcl 1-259 TERM_FILE_BC internal static bit(2) initial packed unaligned dcl 13-12 TERM_FILE_FORCE_WRITE internal static bit(4) initial packed unaligned dcl 13-16 TERM_FILE_TRUNC internal static bit(1) initial packed unaligned dcl 13-11 TERM_FILE_TRUNC_BC internal static bit(2) initial packed unaligned dcl 13-13 TRA_VEC_VALUES internal static char(32) initial array dcl 9-54 TTY_DIALED internal static fixed bin(17,0) initial dcl 9-64 TTY_HUNG internal static fixed bin(17,0) initial dcl 9-64 TTY_KNOWN internal static fixed bin(17,0) initial dcl 9-64 TTY_MASKED internal static fixed bin(17,0) initial dcl 9-64 TTY_MPX internal static fixed bin(17,0) initial dcl 8-16 UNCP_MPX internal static fixed bin(17,0) initial dcl 8-16 USER1_MPX internal static fixed bin(17,0) initial dcl 8-16 USER2_MPX internal static fixed bin(17,0) initial dcl 8-16 USER3_MPX internal static fixed bin(17,0) initial dcl 8-16 USER4_MPX internal static fixed bin(17,0) initial dcl 8-16 USER5_MPX internal static fixed bin(17,0) initial dcl 8-16 VIP7760_MPX internal static fixed bin(17,0) initial dcl 8-16 WAIT_ANSWERBACK internal static fixed bin(17,0) initial dcl 9-25 WAIT_BEFORE_HANGUP internal static fixed bin(17,0) initial dcl 9-25 WAIT_CONNECT_REQUEST internal static fixed bin(17,0) initial dcl 9-25 WAIT_DELETE_CHANNEL internal static fixed bin(17,0) initial dcl 9-25 WAIT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 9-25 WAIT_DETACH internal static fixed bin(17,0) initial dcl 9-25 WAIT_DIALUP internal static fixed bin(17,0) initial dcl 9-25 WAIT_DIAL_OUT internal static fixed bin(17,0) initial dcl 9-25 WAIT_DIAL_RELEASE internal static fixed bin(17,0) initial dcl 9-25 WAIT_DISCARD_WAKEUPS internal static fixed bin(17,0) initial dcl 9-25 WAIT_FIN_PRIV_ATTACH internal static fixed bin(17,0) initial dcl 9-25 WAIT_FIN_TANDD_ATTACH internal static fixed bin(17,0) initial dcl 9-25 WAIT_GREETING_MSG internal static fixed bin(17,0) initial dcl 9-25 WAIT_HANGUP internal static fixed bin(17,0) initial dcl 9-25 WAIT_LOGIN_ARGS internal static fixed bin(17,0) initial dcl 9-25 WAIT_LOGIN_LINE internal static fixed bin(17,0) initial dcl 9-25 WAIT_LOGOUT internal static fixed bin(17,0) initial dcl 9-25 WAIT_LOGOUT_HOLD internal static fixed bin(17,0) initial dcl 9-25 WAIT_LOGOUT_SIG internal static fixed bin(17,0) initial dcl 9-25 WAIT_NEW_PASSWORD internal static fixed bin(17,0) initial dcl 9-25 WAIT_NEW_PROC internal static fixed bin(17,0) initial dcl 9-25 WAIT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 9-25 WAIT_OLD_PASSWORD internal static fixed bin(17,0) initial dcl 9-25 WAIT_PASSWORD internal static fixed bin(17,0) initial dcl 9-25 WAIT_REMOVE internal static fixed bin(17,0) initial dcl 9-25 WAIT_SLAVE_REQUEST internal static fixed bin(17,0) initial dcl 9-25 WAIT_TANDD_HANGUP internal static fixed bin(17,0) initial dcl 9-25 W_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 X25_MPX internal static fixed bin(17,0) initial dcl 8-16 comment based structure level 1 dcl 16-20 comment_value based char packed unaligned dcl 16-20 condition_info_header_ptr automatic pointer dcl 11-4 condition_info_ptr automatic pointer dcl 12-10 condition_info_version_1 internal static fixed bin(17,0) initial dcl 12-30 fnp_models internal static fixed bin(17,0) initial array dcl 2-28 max_line_type internal static fixed bin(17,0) initial dcl 5-48 mpx_special_lock internal static bit(1) initial array packed unaligned dcl 8-40 mpxep automatic pointer dcl 1-41 n_sync_line_types internal static fixed bin(17,0) initial dcl 5-50 stmt based structure level 1 dcl 16-40 stmt_value based char packed unaligned dcl 16-40 sub_error_info_version_1 internal static fixed bin(17,0) initial dcl 10-13 supported_fnp internal static bit(1) initial array packed unaligned dcl 2-31 sync_line_type internal static fixed bin(17,0) initial array dcl 5-52 terminate_file_switches based structure level 1 packed packed unaligned dcl 13-4 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR 020053 constant entry internal dcl 20-139 ref 865 1102 1109 1114 1615 1643 1688 1702 1717 1754 1768 1782 1796 1804 1810 1816 1828 1858 1893 1907 1922 1959 1973 1989 2003 2026 2032 2042 2048 2062 2068 2096 2102 2115 2129 2143 2157 2171 2198 2212 2275 2280 2294 2299 2367 2372 2386 2391 LEX 017765 constant entry internal dcl 19-31 ref 1619 1622 1627 1630 1635 1641 1648 1655 1662 1666 1670 1674 1678 1682 1686 1693 1696 1700 1707 1711 1715 1722 1725 1729 1733 1737 1741 1745 1748 1752 1759 1762 1766 1773 1776 1780 1787 1790 1794 1820 1826 1833 1837 1841 1845 1849 1852 1856 1863 1870 1877 1880 1884 1887 1891 1898 1901 1905 1912 1916 1920 1927 1930 1934 1938 1942 1946 1950 1953 1957 1964 1967 1971 1978 1981 1983 1987 1994 1997 2001 2106 2109 2113 2120 2123 2127 2134 2137 2141 2148 2151 2155 2162 2165 2169 2176 2179 2189 2192 2196 2203 2206 2210 NEXT_STMT 020364 constant entry internal dcl 21-18 ref 1644 1689 1703 1718 1755 1769 1783 1797 1806 1812 1829 1859 1894 1908 1923 1960 1974 1990 2004 2028 2044 2064 2098 2116 2130 2144 2158 2172 2185 2199 2213 2277 2296 2369 2388 PUSH 017624 constant entry internal dcl 18-36 ref 1623 1631 1650 1651 1657 1658 1865 1866 1872 1873 RD_ACTION 003446 constant label array(128) dcl 1615 ref 1610 RD_MATCH 014574 constant label dcl 1606 ref 17-90 17-92 17-101 17-109 17-113 17-118 17-128 1602 RD_MATCH_NO_TOKEN 014577 constant label dcl 1607 ref 17-73 17-79 17-86 RD_NEXT_REDUCTION 014245 constant label dcl 17-55 ref 17-68 17-84 17-88 17-99 17-104 17-111 17-116 17-120 17-124 17-130 1603 18-17 18-24 2228 2243 2314 2335 RD_STACK 014606 constant label dcl 18-17 RD_STACK_POP 014613 constant label dcl 18-24 ref 2010 2014 2219 2223 2232 2278 2292 2297 2305 2309 2318 2370 2384 2389 2397 2401 RD_TEST_REDUCTION 014246 constant label dcl 17-58 ref 17-53 18-19 18-28 1625 1633 1639 1646 1653 1660 1668 1676 1684 1691 1698 1705 1713 1720 1727 1735 1743 1750 1757 1764 1771 1778 1785 1792 1799 1808 1814 1824 1831 1839 1847 1854 1861 1868 1875 1882 1889 1896 1903 1910 1918 1925 1932 1940 1948 1955 1962 1969 1976 1985 1992 1999 2006 2019 2024 2030 2040 2046 2055 2060 2066 2076 2082 2088 2094 2100 2111 2118 2125 2132 2139 2146 2153 2160 2167 2174 2181 2187 2194 2201 2208 2215 2238 2249 2255 2261 2267 2273 2288 2324 2330 2341 2347 2353 2359 2365 2380 RD_TEST_RESULT 014570 constant label dcl 1602 ref 1584 1586 1588 1590 1592 1594 1596 1598 1600 RD_TEST_TOKEN 003427 constant label array(6) dcl 17-73 ref 17-65 17-71 RD_TOKEN_FCN 003435 constant label array(9) dcl 1583 ref 1581 SEMANTIC_ANALYSIS 014234 constant entry internal dcl 15-30 ref 592 abort 010226 constant label dcl 632 ref 623 852 961 access_class 010600 constant entry internal dcl 683 ref 1583 bad_chan_name 012504 constant label dcl 1004 ref 1019 1021 1023 bad_pair 011500 constant label dcl 865 ref 873 875 880 882 886 call_error 013713 constant label dcl 1168 ref 1160 cdt_error 007121 constant label dcl 533 ref 539 chan_name_compare 013365 constant entry internal dcl 1086 ref 1068 1068 check_chan_name 012457 constant entry internal dcl 988 ref 891 967 check_terminal_type 013514 constant entry internal dcl 1137 ref 1709 1914 clean_up 010427 constant entry internal dcl 662 ref 421 652 656 close_chn 011751 constant entry internal dcl 915 ref 2008 2012 close_fnp 013512 constant entry internal dcl 1127 ref 2217 2221 cmf_error 006763 constant label dcl 516 ref 525 cv_cmf 005635 constant entry external dcl 252 get_to_cl 017730 constant label dcl 18-62 ref 18-64 give_usage 005774 constant label dcl 434 ref 498 legal_baud 011136 constant entry internal dcl 778 ref 1585 legal_charge 010730 constant entry internal dcl 719 ref 1589 legal_dataset 011264 constant entry internal dcl 812 ref 1593 legal_fnp_service 011232 constant entry internal dcl 797 ref 1597 legal_fnp_type 011065 constant entry internal dcl 760 ref 1599 legal_line_type 010635 constant entry internal dcl 694 ref 1587 legal_mpx_type 011321 constant entry internal dcl 826 ref 1595 legal_service 011005 constant entry internal dcl 736 ref 1591 make_cdt_entry 011727 constant label dcl 898 ref 869 mpx_error 014052 constant entry internal dcl 1186 ref 1078 1078 open_chn 011357 constant entry internal dcl 839 ref 1629 open_fnp 013425 constant entry internal dcl 1099 ref 1621 path_error 006152 constant label dcl 453 ref 458 463 process_subchans 012723 constant entry internal dcl 1039 ref 602 608 semant_error 013640 constant entry internal dcl 1153 ref 622 625 851 929 934 940 943 951 960 1004 1029 1074 severity_5_failure 010416 constant label dcl 656 ref 429 436 447 455 479 488 494 518 535 576 648 statement_error 013663 constant entry internal dcl 1162 ref 1146 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 22154 22640 21277 22164 Length 23612 21277 464 735 655 316 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cv_cmf 1634 external procedure is an external procedure. on unit on line 419 64 on unit on unit on line 614 146 on unit clean_up 84 internal procedure is called by several nonquick procedures. access_class internal procedure shares stack frame of external procedure cv_cmf. legal_line_type internal procedure shares stack frame of external procedure cv_cmf. legal_charge internal procedure shares stack frame of external procedure cv_cmf. legal_service internal procedure shares stack frame of external procedure cv_cmf. legal_fnp_type internal procedure shares stack frame of external procedure cv_cmf. legal_baud internal procedure shares stack frame of external procedure cv_cmf. legal_fnp_service internal procedure shares stack frame of external procedure cv_cmf. legal_dataset internal procedure shares stack frame of external procedure cv_cmf. legal_mpx_type internal procedure shares stack frame of external procedure cv_cmf. open_chn internal procedure shares stack frame of external procedure cv_cmf. close_chn internal procedure shares stack frame of external procedure cv_cmf. check_chan_name 114 internal procedure is called during a stack extension. process_subchans 176 internal procedure uses auto adjustable storage. chan_name_compare 70 internal procedure is assigned to an entry variable. open_fnp internal procedure shares stack frame of external procedure cv_cmf. close_fnp internal procedure shares stack frame of external procedure cv_cmf. check_terminal_type internal procedure shares stack frame of external procedure cv_cmf. semant_error 144 internal procedure is called during a stack extension. mpx_error 122 internal procedure is assigned to an entry variable. SEMANTIC_ANALYSIS internal procedure shares stack frame of external procedure cv_cmf. PUSH internal procedure shares stack frame of external procedure cv_cmf. LEX internal procedure shares stack frame of external procedure cv_cmf. ERROR internal procedure shares stack frame of external procedure cv_cmf. NEXT_STMT internal procedure shares stack frame of external procedure cv_cmf. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 first cv_cmf 000011 LEXDLM cv_cmf 000052 LEXCTL cv_cmf 000113 BREAKS cv_cmf 000154 IGBREAKS cv_cmf 000215 TRACING cv_cmf 000216 brief_error PUSH 000220 long_error PUSH 000314 non_restart_error PUSH STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME check_chan_name 000100 i check_chan_name 000102 p check_chan_name 000104 hsla check_chan_name 000105 la_no check_chan_name 000106 subchan check_chan_name cv_cmf 000100 APstmt cv_cmf 000102 APtoken cv_cmf 000104 areap cv_cmf 000106 cmfp cv_cmf 000110 dft cv_cmf 000260 ats cv_cmf 000261 access cv_cmf 000262 access_class_value cv_cmf 000266 charge_value cv_cmf 000267 service_value cv_cmf 000270 line_type_value cv_cmf 000271 terminal_type_value cv_cmf 000301 fnp_type_value cv_cmf 000302 dataset_value cv_cmf 000303 baud_rate_value cv_cmf 000304 mpx_type_value cv_cmf 000306 mpx_error_printedp cv_cmf 000310 system_areap cv_cmf 000312 dn cv_cmf 000364 supplied_en cv_cmf 000374 cmf_en cv_cmf 000404 cdt_en cv_cmf 000414 i cv_cmf 000415 n cv_cmf 000416 fnpno cv_cmf 000417 ndev cv_cmf 000420 bitc cv_cmf 000421 argc cv_cmf 000422 argx cv_cmf 000424 ap cv_cmf 000426 al cv_cmf 000427 ec cv_cmf 000430 code cv_cmf 000431 created_table_segment cv_cmf 000432 sx cv_cmf 000433 fb35 cv_cmf 000434 dvt cv_cmf 000710 cdtp cv_cmf 000712 cdtep cv_cmf 000714 fnpep cv_cmf 000716 sub_error_info_ptr cv_cmf 000720 auto_condition_info cv_cmf 000752 channels_open cv_cmf 000753 channel_digits cv_cmf 000754 Pthis_token cv_cmf 000756 Pstmt cv_cmf 000760 Ptoken cv_cmf 000762 SPDL cv_cmf 000763 MERROR_SEVERITY cv_cmf 000764 SERROR_CONTROL cv_cmf 000765 SERROR_PRINTED cv_cmf 000765 MIN_PRINT_SEVERITY cv_cmf 000766 PRINT_SEVERITY_CONTROL cv_cmf 001016 temp_line_type legal_line_type 001040 temp_service_type legal_service 001110 i open_chn 001111 fnp_no open_chn 001112 name1 open_chn 001133 name2 open_chn 001154 chan1 open_chn 001155 chan2 open_chn 001156 pic9 open_chn 001170 p close_chn 001172 new_name close_chn 001213 i close_chn 001214 pic9 close_chn 001216 fnp_no close_chn 001250 LTOKEN_REQD_VALUE SEMANTIC_ANALYSIS 001251 NRED SEMANTIC_ANALYSIS 001252 PRED SEMANTIC_ANALYSIS 001254 PTOKEN_REQD SEMANTIC_ANALYSIS 001256 PTOKEN_REQD_VALUE SEMANTIC_ANALYSIS 001260 STOKEN_FCN SEMANTIC_ANALYSIS 001261 CODE SEMANTIC_ANALYSIS 001262 I SEMANTIC_ANALYSIS 001263 NUMBER SEMANTIC_ANALYSIS 001264 DIRECTION SEMANTIC_ANALYSIS 001265 STACK SEMANTIC_ANALYSIS 001277 STACK_DEPTH SEMANTIC_ANALYSIS 001340 i LEX 001352 Pstmt ERROR 001354 Perring_token ERROR 001364 Ssearching NEXT_STMT mpx_error 000100 i mpx_error 000101 j mpx_error on unit on line 614 000100 almsg on unit on line 614 process_subchans 000100 star_name process_subchans 000110 segname process_subchans 000120 entryname process_subchans 000130 i process_subchans 000132 p process_subchans 000134 entvar process_subchans 000140 cdt_list process_subchans semant_error 000100 stmt_ptr semant_error 000102 token_ptr semant_error THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as alloc_char_temp unpk_to_pk cat_realloc_chars call_ent_var_desc call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return_mac move_label_var make_label_var tra_ext_1 alloc_auto_adj mpfx2 enable_op shorten_stack ext_entry int_entry int_entry_desc set_chars_eis index_chars_eis verify_eis any_to_any_truncate_op_alloc_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cdt_mgr_$thread com_err_ com_err_$suppress_name convert_authorization_$from_string_range convert_status_code_ cu_$arg_count cu_$arg_ptr cu_$cl cv_dec_check_ cv_dec_check_ expand_pathname_ expand_pathname_$add_suffix find_condition_info_ get_group_id_ get_shortest_path_ get_system_free_area_ get_wdir_ hcs_$make_entry hcs_$make_seg hcs_$truncate_seg initiate_file_ iox_$put_chars lex_error_ lex_error_ lex_error_ lex_string_$init_lex_delims lex_string_$lex match_star_name_ parse_tty_name_ pathname_ sort_items_$general suffixed_name_$new_suffix system_info_$device_prices terminate_file_ translator_temp_$get_segment translator_temp_$release_all_segments ttt_info_$terminal_data THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cv_cmf_severity_ error_table_$bad_conversion error_table_$badopt error_table_$noarg error_table_$noentry error_table_$too_many_args error_table_$translation_failed error_table_$zero_length_seg iox_$error_output sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 252 005634 275 005642 2408 005644 20 3 005645 1168 005677 413 005701 414 005703 415 005704 416 005705 417 005713 419 005714 421 005730 422 005735 423 005740 425 005741 426 005752 428 005754 429 005771 432 005772 434 005774 436 006021 439 006022 440 006031 441 006047 443 006060 445 006064 447 006117 450 006120 451 006150 453 006152 455 006204 457 006205 458 006243 461 006245 463 006300 466 006302 468 006303 470 006315 472 006326 474 006343 476 006353 478 006356 479 006412 481 006413 482 006414 483 006431 484 006457 486 006465 488 006520 490 006521 491 006522 493 006523 494 006554 496 006555 498 006557 500 006563 502 006576 503 006633 506 006643 507 006677 509 006701 511 006756 514 006761 516 006763 518 007032 521 007033 522 007037 524 007040 525 007043 528 007044 529 007053 530 007112 531 007115 533 007121 535 007170 538 007171 539 007205 542 007207 544 007212 545 007221 546 007224 547 007237 548 007243 549 007245 550 007247 551 007257 552 007261 554 007263 555 007266 556 007270 557 007273 558 007276 559 007300 560 007302 561 007305 562 007310 563 007312 564 007315 565 007317 566 007321 567 007322 568 007324 569 007327 570 007332 572 007357 573 007400 575 007404 576 007430 579 007431 581 007434 582 007456 583 007464 585 007545 588 007547 591 007661 592 007663 596 007664 597 007673 598 007703 600 007707 601 007715 602 007721 604 007752 606 007754 607 007765 608 007771 610 010024 614 010026 617 010042 618 010062 619 010066 620 010104 622 010111 623 010147 625 010153 627 010211 629 010213 630 010225 632 010226 635 010231 636 010252 638 010257 639 010260 640 010261 641 010300 643 010302 644 010327 646 010331 648 010405 652 010406 653 010412 654 010415 656 010416 658 010422 659 010425 662 010426 665 010434 668 010467 671 010476 672 010525 673 010530 674 010531 676 010560 679 010577 683 010600 686 010602 687 010630 694 010635 699 010637 701 010646 704 010655 706 010671 707 010673 709 010704 712 010722 719 010730 722 010732 724 010743 725 010744 728 010747 729 010771 730 010773 732 011001 736 011005 741 011007 743 011016 745 011026 748 011035 750 011051 751 011053 753 011061 760 011065 763 011067 764 011107 765 011111 767 011114 769 011130 771 011132 778 011136 781 011140 782 011166 785 011173 787 011201 789 011206 790 011216 791 011220 793 011226 797 011232 800 011234 802 011250 804 011257 805 011261 812 011264 815 011266 816 011305 817 011307 819 011315 826 011321 829 011323 830 011343 831 011345 833 011353 839 011357 848 011360 850 011364 851 011374 852 011437 855 011441 856 011442 857 011457 859 011461 860 011471 861 011473 863 011474 865 011500 867 011504 868 011511 869 011513 871 011514 872 011524 873 011536 875 011541 877 011547 878 011563 879 011565 880 011571 882 011612 884 011627 885 011643 886 011660 888 011662 891 011665 892 011715 894 011720 895 011725 898 011727 900 011734 901 011737 902 011742 903 011744 905 011750 915 011751 924 011752 926 011756 929 011767 932 012030 934 012035 935 012062 938 012067 940 012074 943 012124 946 012155 947 012161 948 012165 950 012173 951 012174 956 012224 957 012233 959 012237 960 012246 961 012311 963 012313 964 012334 965 012365 967 012400 969 012430 971 012436 972 012441 973 012445 974 012446 976 012453 979 012455 988 012456 1000 012472 1001 012474 1002 012475 1004 012504 1006 012531 1007 012534 1009 012535 1013 012563 1015 012567 1016 012615 1019 012621 1021 012635 1023 012641 1027 012645 1028 012657 1029 012664 1031 012717 1033 012721 1039 012722 1052 012736 1056 012744 1057 012775 1058 012777 1059 013007 1060 013014 1061 013041 1063 013044 1064 013045 1066 013050 1068 013052 1071 013075 1072 013145 1073 013163 1074 013217 1076 013321 1077 013322 1078 013325 1081 013363 1086 013364 1091 013372 1093 013416 1095 013423 1099 013425 1102 013426 1104 013436 1105 013450 1107 013461 1109 013462 1110 013466 1113 013470 1114 013474 1117 013502 1118 013505 1119 013507 1120 013511 1127 013512 1130 013513 1137 013514 1140 013515 1141 013531 1145 013542 1146 013577 1151 013630 1158 013632 1153 013637 1160 013661 1162 013662 1165 013704 1166 013710 1168 013713 1173 014036 1174 014037 1175 014043 1177 014050 1186 014051 1197 014104 1198 014107 1200 014115 1201 014122 1205 014220 1206 014224 1208 014233 15 30 014234 1372 014235 1373 014237 17 50 014240 17 52 014243 17 53 014244 17 55 014245 17 58 014246 17 60 014251 17 62 014253 17 63 014276 17 64 014301 17 65 014305 17 68 014315 17 70 014316 17 71 014322 17 73 014324 17 79 014343 17 84 014354 17 86 014355 17 88 014361 17 90 014362 17 92 014363 17 99 014417 17 101 014420 17 104 014423 17 106 014426 17 107 014452 17 108 014454 17 109 014457 17 111 014460 17 113 014461 17 116 014475 17 118 014476 17 120 014502 17 123 014503 17 124 014504 17 126 014510 17 127 014515 17 128 014521 17 130 014527 1581 014530 1583 014532 1584 014534 1585 014535 1586 014537 1587 014540 1588 014545 1589 014546 1590 014550 1591 014551 1592 014553 1593 014554 1594 014556 1595 014557 1596 014561 1597 014562 1598 014564 1599 014565 1600 014567 1602 014570 1603 014573 1606 014574 1607 014577 1609 014602 1610 014604 18 17 014606 18 18 014610 18 19 014612 18 24 014613 18 26 014615 18 27 014617 18 28 014625 1615 014626 1617 014632 1619 014633 1621 014637 1622 014640 1623 014644 1624 014650 1625 014652 1627 014653 1629 014657 1630 014660 1631 014664 1632 014670 1633 014672 1635 014673 1637 014677 1638 014703 1639 014705 1641 014706 1643 014712 1644 014716 1645 014717 1646 014721 1648 014722 1650 014726 1651 014732 1652 014736 1653 014740 1655 014741 1657 014745 1658 014751 1659 014755 1660 014757 1662 014760 1664 014764 1665 014766 1666 014770 1667 014774 1668 014776 1670 014777 1672 015003 1673 015005 1674 015007 1675 015013 1676 015015 1678 015016 1680 015022 1681 015024 1682 015026 1683 015032 1684 015034 1686 015035 1688 015041 1689 015045 1690 015046 1691 015050 1693 015051 1695 015055 1696 015060 1697 015064 1698 015066 1700 015067 1702 015073 1703 015077 1704 015100 1705 015102 1707 015103 1709 015107 1710 015110 1711 015113 1712 015117 1713 015121 1715 015122 1717 015126 1718 015132 1719 015133 1720 015135 1722 015136 1724 015142 1725 015151 1726 015155 1727 015157 1729 015160 1731 015164 1732 015173 1733 015203 1734 015207 1735 015211 1737 015212 1739 015216 1740 015225 1741 015235 1742 015241 1743 015243 1745 015244 1747 015250 1748 015253 1749 015257 1750 015261 1752 015262 1754 015266 1755 015272 1756 015273 1757 015275 1759 015276 1761 015302 1762 015304 1763 015310 1764 015312 1766 015313 1768 015317 1769 015323 1770 015324 1771 015326 1773 015327 1775 015333 1776 015337 1777 015343 1778 015345 1780 015346 1782 015352 1783 015356 1784 015357 1785 015361 1787 015362 1789 015366 1790 015372 1791 015376 1792 015400 1794 015401 1796 015405 1797 015411 1798 015412 1799 015414 1801 015415 1804 015416 1806 015422 1807 015423 1808 015425 1810 015426 1812 015432 1813 015433 1814 015435 1816 015436 1818 015442 1820 015443 1822 015447 1823 015456 1824 015460 1826 015461 1828 015465 1829 015471 1830 015472 1831 015474 1833 015475 1835 015501 1836 015504 1837 015506 1838 015512 1839 015514 1841 015515 1843 015521 1844 015524 1845 015526 1846 015532 1847 015534 1849 015535 1851 015541 1852 015544 1853 015550 1854 015552 1856 015553 1858 015557 1859 015563 1860 015564 1861 015566 1863 015567 1865 015573 1866 015577 1867 015603 1868 015605 1870 015606 1872 015612 1873 015616 1874 015622 1875 015624 1877 015625 1879 015631 1880 015641 1881 015645 1882 015647 1884 015650 1886 015654 1887 015660 1888 015664 1889 015666 1891 015667 1893 015673 1894 015677 1895 015700 1896 015702 1898 015703 1900 015707 1901 015713 1902 015717 1903 015721 1905 015722 1907 015726 1908 015732 1909 015733 1910 015735 1912 015736 1914 015742 1915 015743 1916 015747 1917 015753 1918 015755 1920 015756 1922 015762 1923 015766 1924 015767 1925 015771 1927 015772 1929 015776 1930 016006 1931 016012 1932 016014 1934 016015 1936 016021 1937 016031 1938 016041 1939 016045 1940 016047 1942 016050 1944 016054 1945 016064 1946 016074 1947 016100 1948 016102 1950 016103 1952 016107 1953 016113 1954 016117 1955 016121 1957 016122 1959 016126 1960 016132 1961 016133 1962 016135 1964 016136 1966 016142 1967 016145 1968 016151 1969 016153 1971 016154 1973 016160 1974 016164 1975 016165 1976 016167 1978 016170 1980 016174 1981 016200 1982 016204 1983 016207 1984 016213 1985 016215 1987 016216 1989 016222 1990 016226 1991 016227 1992 016231 1994 016232 1996 016236 1997 016242 1998 016246 1999 016250 2001 016251 2003 016255 2004 016261 2005 016262 2006 016264 2008 016265 2010 016266 2012 016267 2014 016270 2016 016271 2018 016274 2019 016276 2021 016277 2023 016302 2024 016304 2026 016305 2028 016311 2029 016312 2030 016314 2032 016315 2034 016321 2036 016322 2038 016325 2039 016330 2040 016332 2042 016333 2044 016337 2045 016340 2046 016342 2048 016343 2050 016347 2052 016350 2054 016353 2055 016355 2057 016356 2059 016361 2060 016363 2062 016364 2064 016370 2065 016371 2066 016373 2068 016374 2070 016400 2072 016401 2074 016404 2075 016407 2076 016411 2078 016412 2080 016415 2081 016420 2082 016422 2084 016423 2086 016426 2087 016431 2088 016433 2090 016434 2092 016437 2093 016442 2094 016444 2096 016445 2098 016451 2099 016452 2100 016454 2102 016455 2104 016461 2106 016462 2108 016466 2109 016470 2110 016474 2111 016476 2113 016477 2115 016503 2116 016507 2117 016510 2118 016512 2120 016513 2122 016517 2123 016523 2124 016527 2125 016531 2127 016532 2129 016536 2130 016542 2131 016543 2132 016545 2134 016546 2136 016552 2137 016556 2138 016562 2139 016564 2141 016565 2143 016571 2144 016575 2145 016576 2146 016600 2148 016601 2150 016605 2151 016611 2152 016615 2153 016617 2155 016620 2157 016624 2158 016630 2159 016631 2160 016633 2162 016634 2164 016640 2165 016650 2166 016654 2167 016656 2169 016657 2171 016663 2172 016667 2173 016670 2174 016672 2176 016673 2178 016677 2179 016707 2180 016713 2181 016715 2183 016716 2185 016722 2186 016723 2187 016725 2189 016726 2191 016732 2192 016735 2193 016741 2194 016743 2196 016744 2198 016750 2199 016754 2200 016755 2201 016757 2203 016760 2205 016764 2206 016767 2207 016773 2208 016775 2210 016776 2212 017002 2213 017006 2214 017007 2215 017011 2217 017012 2219 017013 2221 017014 2223 017015 2225 017016 2227 017020 2228 017050 2230 017051 2232 017054 2234 017055 2236 017060 2237 017061 2238 017063 2240 017064 2242 017067 2243 017070 2245 017071 2247 017074 2248 017101 2249 017103 2251 017104 2253 017107 2254 017114 2255 017116 2257 017117 2259 017122 2260 017127 2261 017131 2263 017132 2265 017135 2266 017141 2267 017143 2269 017144 2271 017147 2272 017154 2273 017156 2275 017157 2277 017163 2278 017164 2280 017165 2282 017171 2284 017172 2286 017175 2287 017177 2288 017201 2290 017202 2292 017205 2294 017206 2296 017212 2297 017213 2299 017214 2301 017220 2303 017221 2305 017252 2307 017253 2309 017303 2311 017304 2313 017306 2314 017344 2316 017345 2318 017350 2320 017351 2322 017354 2323 017355 2324 017357 2326 017360 2328 017363 2329 017365 2330 017367 2332 017370 2334 017373 2335 017374 2337 017375 2339 017400 2340 017405 2341 017407 2343 017410 2345 017413 2346 017420 2347 017422 2349 017423 2351 017426 2352 017433 2353 017435 2355 017436 2357 017441 2358 017445 2359 017447 2361 017450 2363 017453 2364 017460 2365 017462 2367 017463 2369 017467 2370 017470 2372 017471 2374 017475 2376 017476 2378 017501 2379 017503 2380 017505 2382 017506 2384 017511 2386 017512 2388 017516 2389 017517 2391 017520 2393 017524 2395 017525 2397 017563 2399 017564 2401 017623 18 36 017624 18 59 017626 18 60 017631 18 62 017730 18 63 017735 18 64 017757 18 66 017760 18 68 017761 18 70 017764 19 31 017765 19 36 017767 19 37 017771 19 38 017776 19 39 020000 19 40 020013 19 41 020015 19 42 020017 19 44 020027 19 45 020030 19 47 020043 19 48 020045 19 49 020050 19 51 020052 20 139 020053 20 153 020055 20 154 020065 20 156 020074 20 158 020103 20 160 020104 20 161 020106 20 164 020121 20 166 020125 20 168 020127 20 172 020233 20 177 020362 21 18 020364 21 24 020365 21 25 020367 21 26 020372 21 27 020374 21 28 020402 21 29 020404 21 30 020411 21 31 020412 21 32 020413 21 35 020424 21 36 020430 21 39 020431 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved