COMPILATION LISTING OF SEGMENT print_iod_tables Compiled by: Multics PL/I Compiler, Release 32e, of September 22, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 10/03/89 0952.9 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /* format: style4 */ 13 14 print_iod_tables: piodt: proc; 15 16 17 /* This command decodes and prints the contents of an object 18* segment produced by the iod_tables_compiler. The format 19* of the printed output corresponds exactly to the source 20* language accepted by iod_tables_compiler. Thus, if output 21* is directed to a file, the resulting file can be compiled. 22**/ 23 24 /* Written by J. Stern, 1/31/75 */ 25 /* Modified by J. Stern, 12/9/75 */ 26 /* Modified by J. C. Whitmore, April 1978, for new iodt version and keywords. */ 27 /* Modified by J. C. Whitmore, 10/78, for version 3 and line tables */ 28 /* Modified by E. N. Kittlitz 6/81, for rate-structures */ 29 30 31 /****^ HISTORY COMMENTS: 32* 1) change(88-06-03,Brunelle), approve(88-06-03,MCR7911), 33* audit(88-10-25,Wallman), install(88-10-28,MR12.2-1199): 34* Upgraded to handle version 5 I/O daemon tables. This includes the 35* addition of the forms table entries. 36* 2) change(89-09-18,Brunelle), approve(89-09-18,MCR8129), 37* audit(89-09-29,Beattie), install(89-10-03,MR12.3-1083): 38* Correct display of line_charge and page_charge to that it is compatible 39* with the iod_tables_compiler. Also correct the following unreported 40* problems: 1) outputting forms_table instead of forms_info in each forms 41* specification in device and request type; 2) add missing size value for 42* holes type specifications. 43* END HISTORY COMMENTS */ 44 45 46 /* External Procedures & Variables */ 47 48 dcl com_err_ entry () options (variable); 49 dcl convert_authorization_$to_string_short entry (bit (72) aligned, char (*), fixed bin (35)); 50 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 51 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 52 dcl date_time_ entry (fixed bin (71), char (*)); 53 dcl error_table_$badarg fixed bin (35) ext static; 54 dcl error_table_$noarg fixed bin (35) ext static; 55 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 56 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)); 57 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 58 dcl ioa_ entry () options (variable); 59 dcl ioa_$rsnnl entry () options (variable); 60 dcl ioa_$rsnpnnl entry () options (variable); 61 dcl requote_string_ entry (char (*)) returns (char (*)); 62 dcl system_info_$access_ceiling entry (bit (72) aligned); 63 64 dcl (addr, divide, hbound, index, length, null, ptr, rank, rtrim, search, substr) builtin; 65 66 dcl cleanup condition; 67 68 /* Internal Static */ 69 70 dcl NO_ATTACH_TYPE fixed bin int static options (constant) init (-1); 71 dcl QUOTE_SPACE_HTAB char (3) int static options (constant) init (""" "); 72 dcl whoami char (16) aligned int static init ("print_iod_tables"); 73 74 /* Internal Automatic */ 75 76 dcl (i, j, k, group) fixed bin; /* loop variables */ 77 dcl arg char (arglen) based (argp); /* command argument */ 78 dcl argcount fixed bin; 79 dcl arglen fixed bin (21); /* length of arg */ 80 dcl argp ptr; /* ptr to arg */ 81 dcl brief_mode bit (1); 82 dcl code fixed bin (35); /* error code */ 83 dcl date char (24); /* the date in ascii */ 84 dcl dir char (168); /* directory pathname */ 85 dcl ent char (32); /* entry name */ 86 dcl keyword char (20); /* holds a keyword */ 87 dcl string char (128) var; 88 dcl text_strings_array (text_strings.length) char (1) unaligned based (text_strings_array_ptr); 89 dcl text_strings_array_ptr ptr; 90 91 92 brief_mode = "1"b; /* start in brief mode */ 93 call cu_$arg_count (argcount, code); 94 call cu_$arg_ptr (1, argp, arglen, code); /* get pathname arg */ 95 if code ^= 0 then do; 96 call com_err_ (error_table_$noarg, whoami); 97 return; 98 end; 99 100 call expand_pathname_ (arg, dir, ent, code); 101 if code ^= 0 then do; 102 call com_err_ (code, whoami, arg); 103 return; 104 end; 105 106 ithp = null; 107 on cleanup go to finish; 108 109 call hcs_$initiate (dir, ent, "", 0, 0, ithp, code); /* get segment ptr */ 110 if ithp = null then do; 111 call com_err_ (code, whoami, "^a>^a", dir, ent); 112 return; 113 end; 114 115 if iod_tables_hdr.version ^= IODT_VERSION_5 then do; 116 call com_err_ (0, whoami, "Wrong version number for ^a.", ent); 117 go to finish; 118 end; 119 120 call date_time_ (date_time_compiled, date); /* keep compilation date handy */ 121 122 do i = 2 to argcount; 123 call cu_$arg_ptr (i, argp, arglen, code); 124 if arg = "-brief" | arg = "-bf" then 125 brief_mode = "1"b; 126 else if arg = "-long" | arg = "-lg" then 127 brief_mode = "0"b; 128 else do; 129 call com_err_ (error_table_$badarg, whoami, "Argument (^a).", arg); 130 go to finish; 131 end; 132 end; 133 134 /* start with a little background information */ 135 call ioa_ ("^//* Listing of segment ^a>^a */ 136 /* compiled on: ^a */ 137 /* object segment version number: ^a */", 138 dir, ent, date, iod_tables_hdr.version); 139 140 /* Global parameters are next */ 141 142 call ioa_ ("^2//* Global parameters */"); 143 call ioa_ ("^/Time:^-^-^d;", divide (grace_time, 60000000, 35, 0)); 144 call ioa_ ("^/Max_queues:^-^d;", iod_tables_hdr.max_queues); 145 146 /* get ptrs to the various tables */ 147 148 ltp = ptr (ithp, iod_tables_hdr.line_tab_offset); 149 idtp = ptr (ithp, iod_tables_hdr.device_tab_offset); 150 mdtp = ptr (ithp, iod_tables_hdr.minor_device_tab_offset); 151 qgtp = ptr (ithp, iod_tables_hdr.q_group_tab_offset); 152 dctp = ptr (ithp, iod_tables_hdr.dev_class_tab_offset); 153 ifitp = ptr (ithp, iod_tables_hdr.forms_info_tab_offset); 154 text_strings_ptr = ptr (ithp, iod_tables_hdr.text_strings_offset); 155 text_strings_array_ptr = addr (text_strings.chars); 156 157 158 if line_tab.n_lines > 0 then /* if we have line descriptions */ 159 call print_line_table_entries; /* then print them */ 160 161 call print_device_entries; /* print the device descriptions */ 162 163 call print_request_type_entries; /* print the request type descriptions */ 164 165 if iod_forms_info_tab.n_groups > 0 then /* if we have forms data */ 166 call print_forms_info; /* then print it */ 167 168 call ioa_ ("^2/End;"); 169 170 finish: if ithp ^= null then 171 call hcs_$terminate_noname (ithp, code); 172 return; 173 174 print_line_table_entries: proc; 175 176 call ioa_ ("^2//* Lines */"); 177 178 do i = 1 to line_tab.n_lines; 179 ltep = addr (line_tab.entries (i)); 180 call ioa_ ("^/Line:^2-^a;", lte.line_id); 181 if lte.comment.total_chars > 0 then 182 call ioa_ (" comment:^-^a;", display_string (lte.comment, "0"b, "0"b)); 183 call ioa_ (" channel:^-^a;", lte.chan_id); /* ZZZ */ 184 call ioa_ (" att_desc:^-^a;", requote_string_ (extract_string (lte.att_desc))); 185 do k = 1 to iod_device_tab.n_devices; 186 if substr (lte.maj_dev_list, k, 1) then do; 187 idtep = addr (iod_device_tab.entries (k)); 188 call ioa_ (" device:^2-^a;", idte.dev_id); 189 end; 190 end; 191 end; 192 193 end print_line_table_entries; 194 195 print_device_entries: proc; 196 197 call ioa_ ("^2//* Devices */"); 198 199 do i = 1 to iod_device_tab.n_devices; 200 idtep = addr (iod_device_tab.entries (i)); 201 call ioa_ ("^/Device:^-^-^a;", idte.dev_id); 202 if idte.comment.total_chars > 0 then 203 call ioa_ (" comment:^-^a;", display_string (idte.comment, "0"b, "0"b)); 204 call ioa_ (" driver_module:^-^a;", display_string (idte.driver_module, "0"b, "0"b)); /* ZZZ */ 205 if idte.args.total_chars ^= 0 then 206 call ioa_ (" args:^-^-^a;", display_string (idte.args, "0"b, "1"b)); 207 208 if idte.attach_type ^= NO_ATTACH_TYPE then do; 209 if idte.attach_type = ATTACH_TYPE_IOM then 210 keyword = "prph"; 211 else if idte.attach_type = ATTACH_TYPE_TTY then 212 keyword = "line"; 213 else if idte.attach_type = ATTACH_TYPE_DIAL then 214 keyword = "dial_id"; 215 else if idte.attach_type = ATTACH_TYPE_VARIABLE_LINE then 216 keyword = "line"; 217 call ioa_ (" ^a:^2-^a;", keyword, idte.attach_name); 218 end; 219 220 if idte.ctl_attach_type ^= NO_ATTACH_TYPE then do; 221 if idte.ctl_attach_type = CTL_ATTACH_TYPE_TTY then 222 keyword = "ctl_line"; 223 else if idte.ctl_attach_type = CTL_ATTACH_TYPE_DIAL then 224 keyword = "ctl_dial_id"; 225 else if idte.ctl_attach_type = CTL_ATTACH_TYPE_MC then 226 keyword = "ctl_source"; 227 call ioa_ (" ^a:^-^a;", keyword, idte.ctl_attach_name); 228 end; 229 230 if idte.head_sheet.total_chars ^= 0 then 231 call ioa_ (" head_sheet:^-^a;", display_string (idte.head_sheet, "0"b, "0"b)); 232 if idte.tail_sheet.total_chars ^= 0 then 233 call ioa_ (" tail_sheet:^-^a;", display_string (idte.tail_sheet, "0"b, "0"b)); 234 if idte.paper_type > 0 then do; 235 if idte.paper_type = PAPER_TYPE_SINGLE then 236 keyword = "single"; 237 else keyword = "continuous"; 238 call ioa_ (" paper_type:^-^a;", keyword); 239 end; 240 if idte.forms_table.total_chars ^= 0 then 241 call ioa_ (" forms_info:^-^a;", extract_string (idte.forms_table)); 242 if idte.forms_validation.total_chars ^= 0 then 243 call ioa_ (" forms_validation:^-^a;", extract_string (idte.forms_validation)); 244 if idte.font_dir.total_chars ^= 0 then 245 call ioa_ (" font_dir:^-^a;", extract_string (idte.font_dir)); 246 do j = idte.first_minor to idte.last_minor; 247 mdtep = addr (minor_device_tab.entries (j)); 248 if idte.last_minor > idte.first_minor 249 | mdte.dev_id ^= idte.dev_id then 250 call ioa_ ("^/ minor_device:^-^a;", mdte.dev_id); 251 if mdte.comment.total_chars > 0 then 252 call ioa_ (" comment:^-^a;", display_string (mdte.comment, "0"b, "0"b)); 253 if mdte.args.total_chars ^= 0 then 254 call ioa_ (" minor_args:^-^a;", display_string (mdte.args, "0"b, "1"b)); 255 if mdte.default_form.total_chars ^= 0 then 256 call ioa_ (" default_form:^-^a;", display_string (mdte.default_form, "0"b, "0"b)); 257 if mdte.default_dev_class ^= 0 then do; 258 dctep = addr (dev_class_tab.entries (mdte.default_dev_class)); 259 qgtep = addr (q_group_tab.entries (dcte.qgte_index)); 260 if qgte.last_dev_class > qgte.first_dev_class 261 | dcte.id ^= qgte.name 262 | dcte.min_banner ^= ""b then 263 call ioa_ (" default_type:^-^a;", rtrim (qgte.name) || "." || rtrim (dcte.id)); 264 else call ioa_ (" default_type:^-^a;", qgte.name); 265 end; 266 end; 267 end; 268 end print_device_entries; 269 270 print_request_type_entries: proc; 271 272 call ioa_ ("^2//* Request types */"); 273 274 do i = 1 to q_group_tab.n_q_groups; 275 qgtep = addr (q_group_tab.entries (i)); 276 call ioa_ ("^/Request_type:^-^a;", qgte.name); 277 if qgte.comment.total_chars > 0 then 278 call ioa_ (" comment:^-^a;", display_string (qgte.comment, "0"b, "0"b)); 279 call ioa_ (" generic_type:^-^a;", qgte.generic_type); /* ZZZ */ 280 j = length (rtrim (qgte.driver_id)) - 2; /* drop the ".*" put there by iodtc */ 281 call ioa_ (" driver_userid:^-^a;", substr (qgte.driver_id, 1, j)); 282 call ioa_ (" accounting:^-^a;", display_string (qgte.accounting, "0"b, "0"b)); 283 284 if qgte.rqti_seg_name ^= "" then 285 call ioa_ (" rqti_seg:^-^a;", qgte.rqti_seg_name); 286 287 if qgte.forms_validation.total_chars ^= 0 then 288 call ioa_ (" forms_validation:^-^a;", display_string (qgte.forms_validation, "0"b, "0"b)); 289 290 if qgte.font_dir.total_chars ^= 0 then 291 call ioa_ (" font_dir:^-^a;", display_string (qgte.font_dir, "0"b, "0"b)); 292 293 if qgte.forms_table.total_chars ^= 0 then 294 call ioa_ (" forms_info:^-^a;", display_string (qgte.forms_table, "0"b, "0"b)); 295 296 if qgte.default_form.total_chars ^= 0 then 297 call ioa_ (" default_form:^-^a;", display_string (qgte.default_form, "0"b, "0"b)); 298 299 if qgte.max_queues ^= iod_tables_hdr.max_queues then 300 call ioa_ (" max_queues:^-^d;", qgte.max_queues); 301 302 call ioa_ (" default_queue:^-^d;", qgte.default_queue); 303 304 if qgte.line_charge.queue (1) ^= "" then do; /* if not default charges, print price names */ 305 string = ""; 306 do k = 1 to qgte.max_queues; 307 string = string || rtrim (qgte.line_charge.queue (k)) || ","; 308 end; 309 k = length (string) - 1; /* omit the last comma-space */ 310 call ioa_ (" line_charge:^-^a;", substr (string, 1, k)); 311 end; 312 if qgte.page_charge.queue (1) ^= "" then do; /* if not default charges, print price names */ 313 string = ""; 314 do k = 1 to qgte.max_queues; 315 string = string || rtrim (qgte.page_charge.queue (k)) || ","; 316 end; 317 k = length (string) - 1; 318 call ioa_ (" page_charge:^-^a;", substr (string, 1, k)); 319 end; 320 321 do j = qgte.first_dev_class to qgte.last_dev_class; 322 dctep = addr (dev_class_tab.entries (j)); 323 if qgte.last_dev_class > qgte.first_dev_class 324 | dcte.id ^= qgte.name then 325 call ioa_ (" device_class:^-^a;", dcte.id); 326 if dcte.max_access | dcte.min_access | dcte.min_banner then do; /* don't bother if all zero */ 327 call ioa_ (" min_access_class:^-^a;", get_access_class_string (dcte.min_access)); 328 call ioa_ (" max_access_class:^-^a;", get_access_class_string (dcte.max_access)); 329 call ioa_ (" min_banner:^-^a;", get_access_class_string (dcte.min_banner)); 330 end; 331 332 do k = 1 to minor_device_tab.n_minor; 333 if substr (dcte.device_list, k, 1) then do; 334 mdtep = addr (minor_device_tab.entries (k)); 335 idtep = addr (iod_device_tab.entries (mdte.major_index)); 336 if idte.last_minor > idte.first_minor 337 | mdte.dev_id ^= idte.dev_id then 338 call ioa_ (" device:^-^-^a;", rtrim (idte.dev_id) || "." || rtrim (mdte.dev_id)); 339 else call ioa_ (" device:^-^-^a;", idte.dev_id); 340 end; 341 end; 342 end; 343 end; 344 end print_request_type_entries; 345 346 print_forms_info: proc; 347 348 call ioa_ ("^2//* Forms Information */"); 349 350 /* process one group at a time */ 351 do group = 1 to iod_forms_info_tab.n_groups; 352 call ioa_ ("^/Forms_table:^-^a;", iod_forms_info_tab (group).name); 353 if iod_forms_info_tab (group).comment.total_chars ^= 0 then 354 call ioa_ (" comment:^-^a;", display_string (iod_forms_info_tab (group).comment, "0"b, "1"b)); 355 356 /* set up ptr to 1st element for this group */ 357 fep = addr (iod_forms_info_tab.element_data_block (iod_forms_info_tab (group).first_element_index)); 358 359 element_display_loop: 360 string = extract_string (element_common.names (1)); 361 if element_common.n_names > 1 then do; 362 do j = 2 to element_common.n_names; 363 string = string || ","; 364 string = string || extract_string (element_common.names (j)); 365 end; 366 end; 367 call ioa_ ("^/ name:^2-^a;", output_the_string ((string))); 368 369 if element_common.comment.total_chars ^= 0 then 370 call ioa_ (" comment:^-^a;", display_string (element_common.comment, "0"b, "1"b)); 371 372 if element_common.type = TYPE_USES then do; /* uses */ 373 string = ""; 374 do j = 1 to uses_element.n_indices; 375 if j ^= 1 then 376 string = string || ","; 377 string = string || extract_string (uses_element.name (j)); 378 end; 379 call ioa_ (" uses:^2-^a;", string); 380 end; 381 else do; 382 call ioa_ (" type:^2-^a;", 383 FORMS_TYPE_STRINGS (element_common.type)); 384 if element_common.type = TYPE_SPECIAL then do; 385 call ioa_ (" string:^2-^a;", display_string (special_element.special_string, "0"b, "0"b)); 386 end; 387 else if element_common.type = TYPE_FONT_NAME 388 | element_common.type = TYPE_PREAMBLE 389 | element_common.type = TYPE_POSTAMBLE then do; 390 if orientation_element.escape_string.total_chars ^= 0 then 391 call ioa_ (" string:^2-^a;", display_string (orientation_element.escape_string, "1"b, "0"b)); 392 end; 393 else if element_common.type = TYPE_ORIENTATION 394 | element_common.type = TYPE_HOLES 395 | element_common.type = TYPE_FONT_DESC 396 | element_common.type = TYPE_LINE_DESC then do; 397 if element_common.type = TYPE_ORIENTATION 398 | element_common.type = TYPE_HOLES then do; 399 call display_forms_size (orientation_element.height, "page_height", 400 orientation_element.factors (1)); 401 call display_forms_size (orientation_element.width, "page_width", 402 orientation_element.factors (2)); 403 end; 404 else if element_common.type = TYPE_FONT_DESC then do; 405 call display_forms_size (orientation_element.height, "char_height", 406 orientation_element.factors (1)); 407 call display_forms_size (orientation_element.width, "char_width", 408 orientation_element.factors (2)); 409 end; 410 else if element_common.type = TYPE_LINE_DESC then do; 411 call display_forms_size (orientation_element.height, "line_height", 412 orientation_element.factors (1)); 413 call display_forms_size (orientation_element.width, "line_width", 414 orientation_element.factors (2)); 415 end; 416 if orientation_element.escape_string.total_chars ^= 0 then 417 call ioa_ (" string:^2-^a;", display_string (orientation_element.escape_string, "1"b, "0"b)); 418 end; 419 end; 420 if element_common.next_element_index ^= -1 then do; 421 fep = addr (iod_forms_info_tab.element_data_block (element_common.next_element_index)); 422 go to element_display_loop; 423 end; 424 end; 425 end print_forms_info; 426 427 428 extract_string: proc (target_offset) returns (char (*)); 429 430 dcl 1 target_offset like text_offset; 431 432 if target_offset.total_chars = 0 then 433 return (""); 434 else return (substr (text_strings.chars, target_offset.first_char, target_offset.total_chars)); 435 436 end extract_string; 437 438 439 get_access_class_string: proc (access_class) returns (char (200) aligned); 440 441 /* procedure which takes a binary access class and returns an ascii access class string. */ 442 443 dcl access_class bit (72) aligned; /* binary access class */ 444 dcl ac_string char (200); /* string representation of above */ 445 dcl system_high bit (72) aligned; /* access class for system_high */ 446 dcl 1 dblword aligned based (addr (access_class)), /* for error message */ 447 2 word1 fixed bin (35), 448 2 word2 fixed bin (35); 449 450 call convert_authorization_$to_string_short (access_class, ac_string, code); 451 if code ^= 0 then 452 call com_err_ (code, whoami, "Access class = ^w ^w", word1, word2); 453 else if ac_string = "" then 454 ac_string = "system_low"; 455 456 if length (rtrim (ac_string)) > 30 then do; /* if long, check for system_high */ 457 call system_info_$access_ceiling (system_high); /* get binary ceiling */ 458 if access_class = system_high then 459 ac_string = "system_high"; /* this is cleaner */ 460 end; 461 462 return (ac_string); 463 464 end get_access_class_string; 465 466 467 display_forms_size: proc (item, item_title, factor); 468 469 dcl item float bin unaligned; 470 dcl item_title char (*); 471 dcl factor fixed bin unaligned; 472 dcl temp_string char (10) varying; 473 474 if item = -1 then return; 475 if item = 0 then return; 476 if factor ^= FACTOR_LPI then 477 call ioa_$rsnpnnl ("^.2f", temp_string, (0), item / SIZE_FACTORS (factor)); 478 else call ioa_$rsnpnnl ("^.2f", temp_string, (0), SIZE_FACTORS (factor) / item); 479 480 temp_string = rtrim (temp_string, "0"); 481 temp_string = rtrim (temp_string, "."); 482 call ioa_ (" ^a:^-^a^[in^;cm^;pt^;lpi^];", 483 item_title, temp_string, factor); 484 485 end display_forms_size; 486 487 output_the_string: proc (string_to_check) returns (char (*)); 488 489 dcl string_to_check char (*); 490 if index (rtrim (string_to_check), " ") = 0 then 491 return (rtrim (string_to_check)); 492 else return (requote_string_ (rtrim (string_to_check))); 493 end output_the_string; 494 495 display_string: proc (string_data, special_process, force_requote) returns (char (*)); 496 497 dcl special_process bit (1); 498 dcl force_requote bit (1); 499 dcl 1 string_data unaligned like text_offset; 500 501 dcl input_string char (input_string_len) based (input_string_ptr); 502 dcl input_string_len fixed bin; 503 dcl input_string_ptr ptr; 504 505 dcl return_string char (1024) varying; 506 507 dcl (i, j) fixed bin; 508 509 return_string = ""; 510 input_string_ptr = addr (text_strings_array (string_data.first_char)); 511 input_string_len = string_data.total_chars; 512 if ^special_process then do; 513 if search (input_string, QUOTE_SPACE_HTAB) ^= 0 | force_requote then 514 return_string = requote_string_ (input_string); 515 else return_string = input_string; 516 end; 517 else do i = 1 to input_string_len; 518 call count_text; 519 if j > 1 then do; 520 return_string = return_string 521 || requote_string_ (substr (input_string, i, j)); 522 i = i + j - 1; 523 end; 524 else return_string = return_string || tchar (substr (input_string, i, 1)); 525 return_string = return_string || " "; 526 end; 527 528 return (return_string); 529 530 count_text: proc; 531 532 do j = i to input_string_len 533 while (rank (substr (input_string, j, 1)) >= 32 534 & rank (substr (input_string, j, 1)) <= 126); 535 end; 536 j = j - i; 537 end count_text; 538 539 end display_string; 540 541 /* return prettyest representation of a character */ 542 543 tchar: proc (c) returns (char (4) var); 544 545 dcl c char (1); 546 dcl i fixed bin; 547 dcl temp char (4); 548 549 dcl asc_value (0:32) char (3) static options (constant) init 550 ("NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL", 551 "BS ", "TAB", "LF ", "VT ", "FF ", "CR ", "SO ", "SI ", 552 "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB", 553 "CAN", "EM ", "SUB", "ESC", "FS ", "GS ", "RS ", "US ", "SP "); 554 555 i = rank (c); 556 if i <= hbound (asc_value, 1) then return (rtrim (asc_value (i))); 557 if i > 126 then do; 558 if i = 127 then 559 return ("DEL"); 560 call ioa_$rsnnl ("^o", temp, (0), i); 561 return (temp); 562 end; 563 if index ("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", c) > 0 then return (c); 564 if c = """" then return (""""""""""); 565 else return ("""" || c || """"); 566 567 end tchar; 568 /* BEGIN INCLUDE FILE...device_class.incl.pl1 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(88-01-27,Brunelle), approve(), audit(), install(): 1 7* Ancient History 1 8* Coded by R.S.Coren August 1973 1 9* Modified by J. Stern, 1/8/75 1 10* Modified by J. C. Whitmore, 5/78, to extent the size of the device list 1 11* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 1 12* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 1 13* Added comment field in dcte. 1 14* END HISTORY COMMENTS */ 1 15 1 16 1 17 /* format: style4 */ 1 18 1 19 dcl dctp ptr; /* ptr to device class table */ 1 20 dcl 1 dev_class_tab aligned based (dctp), /* the device class table */ 1 21 2 n_classes fixed bin, /* number of device classes */ 1 22 2 pad fixed bin, 1 23 2 entries (1 refer (dev_class_tab.n_classes)) like dcte; 1 24 1 25 dcl dctep ptr; /* device class table entry ptr */ 1 26 1 27 dcl 1 dcte aligned based (dctep), /* device class table entry */ 1 28 1 29 /* following items are initialized before daemon is run */ 1 30 1 31 2 id char (32), /* device class name for this entry */ 1 32 2 comment unaligned like text_offset, /* comment to apply to the device class */ 1 33 2 qgte_index fixed bin, /* index of queue group table entry */ 1 34 2 pad1 fixed bin, 1 35 2 max_access bit (72), /* max request access class */ 1 36 2 min_access bit (72), /* min request access class */ 1 37 2 min_banner bit (72), /* min access class to be placed on output banner */ 1 38 2 device_list bit (360), /* bit _i ON => minor device _i is valid for device class */ 1 39 1 40 /* remaining info is dynamic */ 1 41 1 42 2 pending_request fixed bin (18), /* descriptor offset for allocated but unassigned request */ 1 43 2 restart_req fixed bin (18), /* offset of next (or last) descriptor to be restarted */ 1 44 2 pad2 (3) fixed bin, 1 45 2 n_waiting fixed bin, /* number of waiting requests for device class */ 1 46 2 per_queue_info (4), /* one copy of this for each queue */ 1 47 3 first_waiting fixed bin, /* index of first waiting list entry */ 1 48 3 last_waiting fixed bin; /* index of last waiting list entry */ 1 49 1 50 1 51 /* END INCLUDE FILE...device_class.incl.pl1 */ 568 569 /* BEGIN INCLUDE FILE ... iod_forms_info_tab.incl.pl1 */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 2 5* audit(88-10-12,Wallman), install(88-10-28,MR12.2-1199): 2 6* Created. 2 7* END HISTORY COMMENTS */ 2 8 2 9 /* format: style4 */ 2 10 2 11 dcl ifitp ptr; 2 12 dcl 1 iod_forms_info_tab aligned based (ifitp), 2 13 2 n_groups fixed bin (17) unaligned, /* number of forms_info groups defined */ 2 14 2 n_words fixed bin (17) unaligned, /* number of words in forms element data area */ 2 15 2 element_data_block (1 refer (iod_forms_info_tab.n_words)) fixed bin (35), 2 16 2 groups (1 refer (iod_forms_info_tab.n_groups)), 2 17 3 name char (32) unaligned, /* forms info group name */ 2 18 3 comment unaligned like text_offset, /* offset to comment string in text_strings */ 2 19 3 first_element_index fixed bin (17) unaligned; /* index in element_data_block of 1st element in group */ 2 20 2 21 dcl fep ptr; /* forms element ptr */ 2 22 dcl 1 element_common aligned based (fep), 2 23 2 type fixed bin (8) unaligned, /* type of element */ 2 24 2 n_names fixed bin (8) unaligned, /* number of names on element */ 2 25 2 next_element_index fixed bin (17) unaligned, /* index in element_data_block of next element in group */ 2 26 2 comment unaligned like text_offset, /* comment for element */ 2 27 2 names (1 refer (element_common.n_names)) unaligned like text_offset; /* names assigned to the element */ 2 28 2 29 dcl 1 orientation_element aligned based (fep), 2 30 2 common like element_common, 2 31 2 escape_string unaligned like text_offset, /* escape string for the element */ 2 32 2 factors (2) fixed bin (17) unaligned, /* 1=in, 2=cm, 3=pt, 4=lpi */ 2 33 2 height float bin unaligned, /* height in points (1/72s inch) */ 2 34 2 width float bin unaligned; /* width in points (1/72s inch) */ 2 35 2 36 dcl 1 font_element aligned like orientation_element based (fep); 2 37 2 38 dcl 1 font_size_element aligned like orientation_element based (fep); 2 39 2 40 dcl 1 line_element aligned like orientation_element based (fep); 2 41 2 42 dcl 1 holes_element aligned like orientation_element based (fep); 2 43 2 44 dcl 1 font_name_element aligned based (fep), 2 45 2 common like element_common, 2 46 2 escape_string unaligned like text_offset; 2 47 2 48 dcl 1 preamble_element aligned like font_name_element based (fep); 2 49 2 50 dcl 1 postamble_element aligned like font_name_element based (fep); 2 51 2 52 dcl 1 uses_element aligned based (fep), 2 53 2 common like element_common, 2 54 2 n_indices fixed bin (35) unaligned, 2 55 2 index_blocks (1 refer (uses_element.n_indices)) unaligned, 2 56 3 name unaligned like text_offset, 2 57 3 index fixed bin (35) unaligned; 2 58 2 59 dcl 1 special_element aligned based (fep), 2 60 2 common like element_common, 2 61 2 special_string unaligned like text_offset; 2 62 2 63 /* strings for use with element_common.type in forms_info_tab and 2 64* forms_info.types in forms_info */ 2 65 dcl FORMS_TYPE_STRINGS (10) char (11) int static options (constant) init ( 2 66 "uses", "font", "font_name", "font_size", "orientation", 2 67 "line_height", "preamble", "postamble", "holes", "special"); 2 68 2 69 /* strings for each of these types are found in FORMS_TYPE_STRINGS */ 2 70 dcl (TYPE_USES init (1), 2 71 TYPE_FONT_DESC init (2), 2 72 TYPE_FONT_NAME init (3), 2 73 TYPE_FONT_SIZE init (4), 2 74 TYPE_ORIENTATION init (5), 2 75 TYPE_LINE_DESC init (6), 2 76 TYPE_PREAMBLE init (7), 2 77 TYPE_POSTAMBLE init (8), 2 78 TYPE_HOLES init (9), 2 79 TYPE_SPECIAL init (10) 2 80 ) fixed bin int static options (constant); 2 81 2 82 /* factors for computing points (1/72 inch) 2 83* 1 = inches, 2 = centimeters, 3 = points, 4 = lines/inch */ 2 84 dcl SIZE_FACTORS (4) float bin (27) int static options (constant) 2 85 init (72, 28.34646, 1, 72); 2 86 2 87 dcl (FACTOR_INCHES init (1), 2 88 FACTOR_CENTIMETERS init (2), 2 89 FACTOR_POINTS init (3), 2 90 FACTOR_LPI init (4)) fixed bin int static options (constant); 2 91 2 92 dcl ORIENTATION_STRINGS (2) char (9) int static options (constant) init ("portrait", "landscape"); 2 93 2 94 dcl (PORTRAIT_ORIENTATION init (1), 2 95 LANDSCAPE_ORIENTATION init (2)) fixed bin int static options (constant); 2 96 2 97 /* END INCLUDE FILE ... iod_forms_info_tab.incl.pl1 */ 569 570 /* BEGIN INCLUDE FILE ... iod_constants.incl.pl1 */ 3 2 3 3 3 4 /****^ HISTORY COMMENTS: 3 5* 1) change(88-08-31,Brunelle), approve(88-08-31,MCR7911), 3 6* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 3 7* Created. 3 8* END HISTORY COMMENTS */ 3 9 3 10 /* This file contains constants used by the I/O Daemon software in various tables */ 3 11 3 12 /* format: style4 */ 3 13 3 14 /* literals for use with idte.attach_type & iodd_static.attach_type */ 3 15 dcl (ATTACH_TYPE_IOM init (1), 3 16 ATTACH_TYPE_TTY init (2), 3 17 ATTACH_TYPE_DIAL init (3), 3 18 ATTACH_TYPE_VARIABLE_LINE init (4)) fixed bin int static options (constant); 3 19 3 20 /* literals for use with idte.ctl_attach_type & iodd_static.ctl_attach_type */ 3 21 dcl (CTL_ATTACH_TYPE_TTY init (1), 3 22 CTL_ATTACH_TYPE_DIAL init (2), 3 23 CTL_ATTACH_TYPE_MC init (3)) fixed bin int static options (constant); 3 24 3 25 /* literals for use with idte.paper_type & iodd_static.paper_type */ 3 26 dcl (PAPER_TYPE_DEFAULT init (-1), 3 27 PAPER_TYPE_SINGLE init (1), 3 28 PAPER_TYPE_CONTINUOUS init (2)) fixed bin int static options (constant); 3 29 3 30 /* END INCLUDE FILE ... iod_constants.incl.pl1 */ 570 571 /* BEGIN INCLUDE FILE...iod_device_tab.incl.pl1 */ 4 2 4 3 4 4 4 5 /****^ HISTORY COMMENTS: 4 6* 1) change(88-01-27,Brunelle), approve(), audit(), install(): 4 7* Ancient History 4 8* Created by J. Stern, January 1975 4 9* Modified by J. C. Whitmore April 1978 4 10* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 4 11* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 4 12* Added comment, head_sheet, tail_sheet, paper_type, forms_table, 4 13* forms_validation, font_dir variables to device entries in support of laser 4 14* printers. Changed driver_module, args to text_offset instead of strings. 4 15* Added comment, default_form to minor device entries. Changed args in 4 16* minor device entry to text_offset instead of string. 4 17* END HISTORY COMMENTS */ 4 18 4 19 4 20 /* format: style4 */ 4 21 4 22 dcl idtp ptr; /* ptr to device table */ 4 23 dcl 1 iod_device_tab aligned based (idtp), /* IO daemon device table */ 4 24 2 n_devices fixed bin, /* number of major devices */ 4 25 2 pad fixed bin, 4 26 2 entries (1 refer (iod_device_tab.n_devices)) like idte; /* entries for major devices */ 4 27 4 28 dcl idtep ptr; /* major device entry pointer */ 4 29 dcl 1 idte aligned based (idtep), /* major device entry */ 4 30 4 31 /* static info associated with device from the parms file */ 4 32 4 33 2 dev_id char (24), /* major device name */ 4 34 2 comment unaligned like text_offset, /* comment to apply to the major device */ 4 35 2 attach_name char (32), /* channel name or dial id for device attachment */ 4 36 2 attach_type fixed bin, /* indicates meaning of attach_name */ 4 37 /* see ATTACH_TYPE_XX in iod_constants.incl.pl1 */ 4 38 2 ctl_attach_name char (32), /* channel, dial id, or source for control terminal attachment */ 4 39 2 ctl_attach_type fixed bin, /* indicates meaning of ctl_attach_name */ 4 40 /* see CTL_ATTACH_TYPE_XX in iod_constants.incl.pl1 */ 4 41 2 driver_module unaligned like text_offset, /* offset to pathname of program to drive device */ 4 42 2 head_sheet unaligned like text_offset, /* offset to name of head_sheet program to use */ 4 43 2 tail_sheet unaligned like text_offset, /* offset to name of tail_sheet program to use */ 4 44 2 paper_type fixed bin, /* -1=default , 1=continuous form, 2=single sheet */ 4 45 2 forms_table unaligned like text_offset, /* offset to forms table to apply to this queue group */ 4 46 2 forms_validation unaligned like text_offset, /* offset to name of routine for forms validation */ 4 47 2 font_dir unaligned like text_offset, /* offset to location of downloadable fonts */ 4 48 2 args unaligned like text_offset, /* offset to arguments to driver program */ 4 49 2 first_minor fixed bin, /* index of first minor device for this major device */ 4 50 2 last_minor fixed bin, /* index of last minor device for this major device */ 4 51 4 52 /* dynamic info associated with driver of this device */ 4 53 4 54 2 lock bit (36), /* lock id of current driver */ 4 55 2 process_id bit (36); /* process id of current driver */ 4 56 4 57 dcl mdtp ptr; 4 58 dcl 1 minor_device_tab aligned based (mdtp), 4 59 2 n_minor fixed bin, /* number of minor devices */ 4 60 2 pad fixed bin, 4 61 2 entries (1 refer (minor_device_tab.n_minor)) like mdte; 4 62 4 63 dcl mdtep ptr; /* minor device entry pointer */ 4 64 dcl 1 mdte aligned based (mdtep), /* minor device entry */ 4 65 4 66 /* static info associated with device from the parms file */ 4 67 4 68 2 dev_id char (24), /* minor device name */ 4 69 2 comment unaligned like text_offset, /* comment to apply to the minor device */ 4 70 2 default_form unaligned like text_offset, /* offset to default -form string for minor device */ 4 71 2 default_dev_class fixed bin, /* default device class index */ 4 72 2 major_index fixed bin, /* subscript of corresponding major device entry */ 4 73 2 args unaligned like text_offset, /* offset to arguments to driver program */ 4 74 4 75 /* dynamic info associated with driver of this device */ 4 76 4 77 2 dev_class_index fixed bin, /* index of device class table entry */ 4 78 2 current_request fixed bin (18), /* offset of current request descriptor */ 4 79 2 driver_ptr ptr, /* ptr to driver status segment */ 4 80 2 active fixed bin, /* 1 if active, 0 if not active */ 4 81 2 seq_id fixed bin (35); /* sequence number of last request */ 4 82 4 83 /* named constants for attach_type, ctl_attach_type and paper_type are found 4 84* in iod_constants.incl.pl1 */ 4 85 4 86 /* END INCLUDE FILE...iod_device_tab.incl.pl1 */ 571 572 /* BEGIN INCLUDE FILE iod_line_tab.incl.pl1 */ 5 2 5 3 5 4 5 5 /****^ HISTORY COMMENTS: 5 6* 1) change(88-01-27,Brunelle), approve(), audit(), install(): 5 7* Ancient History 5 8* Created by J. C. Whitmore Oct 1978 5 9* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 5 10* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 5 11* Upgraded to version 5. Added comment field and changed att_desc from 5 12* string to text_offset. 5 13* END HISTORY COMMENTS */ 5 14 5 15 5 16 /* format: style4 */ 5 17 5 18 dcl ltp ptr; 5 19 dcl 1 line_tab aligned based (ltp), /* the line id table */ 5 20 2 n_lines fixed bin, /* number of line id entries */ 5 21 2 pad fixed bin, /* for the future */ 5 22 2 entries (1 refer (line_tab.n_lines)) like lte; 5 23 5 24 dcl ltep ptr; /* line table entry pointer */ 5 25 dcl 1 lte aligned based (ltep), /* line table entry */ 5 26 2 line_id char (24), /* logical id for a tty line */ 5 27 2 comment unaligned like text_offset, /* comment to apply to the line */ 5 28 2 chan_id char (32), /* the physical channel name for attachment */ 5 29 2 att_desc unaligned like text_offset, /* the attach description to use */ 5 30 2 maj_dev_list bit (360); /* bit i ON => major device i is valid for this line id */ 5 31 5 32 5 33 /* END INCLUDE FILE iod_line_tab.incl.pl1 */ 572 573 /* BEGIN INCLUDE FILE ... iod_tables_hdr.incl.pl1 */ 6 2 6 3 6 4 6 5 /****^ HISTORY COMMENTS: 6 6* 1) change(88-01-27,Brunelle), approve(), audit(), install(): 6 7* Ancient History 6 8* Created by J. Stern, 1/20/75 6 9* Modified by J. C. Whitmore April 1978 for enhancements 6 10* Modified by J. C. Whitmore, 10/78, for version 3 iod_tables format. 6 11* Modified by E. N. Kittlitz, 6/81, for version 4 iod_tables with expanded 6 12* q_group_tab 6 13* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 6 14* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 6 15* Change version number to reflect changes in q_group_tab and 6 16* iod_device_tab for laser printer support. Added font tables. 6 17* END HISTORY COMMENTS */ 6 18 6 19 6 20 /* format: style4 */ 6 21 6 22 dcl ithp ptr; /* ptr to io daemon dables and it's header */ 6 23 dcl 1 iod_tables_hdr aligned based (ithp), /* header of data segment compiled by iod_table_compiler */ 6 24 2 version char (8), /* version of this structure */ 6 25 2 date_time_compiled fixed bin (71), 6 26 2 grace_time fixed bin (71), /* grace time before deleting finished segment */ 6 27 2 max_queues fixed bin (17), /* default number of priority queues per queue group */ 6 28 2 line_tab_offset fixed bin (18), /* offset of line id table */ 6 29 2 device_tab_offset fixed bin (18), /* offset of device table */ 6 30 2 minor_device_tab_offset fixed bin (18), /* offset of minor device table */ 6 31 2 dev_class_tab_offset fixed bin (18), /* offset of device class table */ 6 32 2 q_group_tab_offset fixed bin (18), /* offset of queue group table */ 6 33 2 forms_info_tab_offset fixed bin (18), /* offset of forms info tables */ 6 34 2 text_strings_offset fixed bin (18), 6 35 2 start_of_tables fixed bin; /* beginning of above tables, MUST start on even word boundry */ 6 36 6 37 /* Defines common text block to store virtually all text in the I/O daemon tables */ 6 38 dcl text_strings_ptr ptr; 6 39 dcl 1 text_strings aligned based (text_strings_ptr), 6 40 2 length fixed bin, 6 41 2 chars char (1 refer (text_strings.length)) unaligned; 6 42 6 43 /* this defines text offsets used to locate i/o daemon tables strings in 6 44* the text_strings structure */ 6 45 dcl 1 text_offset based, 6 46 2 first_char fixed bin (18) unsigned unaligned, 6 47 2 total_chars fixed bin (18) unsigned unaligned; 6 48 6 49 dcl IODT_VERSION_5 char (8) int static options (constant) init ("IODT0005"); /* current version number */ 6 50 6 51 6 52 /* END INCLUDE FILE ... iod_tables_hdr.incl.pl1 */ 573 574 /* BEGIN INCLUDE FILE...q_group_tab.incl.pl1 */ 7 2 7 3 7 4 7 5 /****^ HISTORY COMMENTS: 7 6* 1) change(88-01-27,Brunelle), approve(), audit(), install(): 7 7* Ancient History 7 8* Created by J. Stern, December 1974 7 9* Modified by J. Whitmore April 1978 7 10* Modified by R. McDonald May 1980 to include page charges (UNCA) 7 11* Modified by E. N. Kittlitz June 1981 for UNCA changes 7 12* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 7 13* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 7 14* Add forms_validation, default_form and font_dir variables for laser 7 15* printer support. 7 16* END HISTORY COMMENTS */ 7 17 7 18 7 19 /* format: style4 */ 7 20 7 21 dcl qgtp ptr; /* ptr to queue group table */ 7 22 dcl 1 q_group_tab aligned based (qgtp), 7 23 2 n_q_groups fixed bin, /* number of queue groups */ 7 24 2 pad fixed bin, 7 25 2 entries (1 refer (q_group_tab.n_q_groups)) like qgte; /* entries of queue group table */ 7 26 7 27 dcl qgtep ptr; /* queue group table entry pointer */ 7 28 dcl 1 qgte aligned based (qgtep), /* queue group table entry */ 7 29 7 30 /* static info from the parms file */ 7 31 7 32 2 name char (24), /* queue group name */ 7 33 2 comment unaligned like text_offset, /* comment to apply to the request_type */ 7 34 2 driver_id char (32), /* person.project name of drivers for this q group */ 7 35 2 accounting unaligned like text_offset, /* offset to accounting routine pathname, "system" => charge_user_ */ 7 36 2 generic_type char (32), /* generic type of requests in this queue */ 7 37 2 default_generic_queue fixed bin (1), /* 1 if this is default queue for above generic type, else 0 */ 7 38 2 rqti_seg_name char (32), /* name of rqti seg, if required, else blank */ 7 39 2 max_queues fixed bin, /* number of queues for this request type */ 7 40 2 default_queue fixed bin, /* number of the default queue */ 7 41 2 line_charge, /* price names for line charges */ 7 42 3 queue (4) char (32), /* one name for each queue */ 7 43 2 page_charge, /* price names for page charges */ 7 44 3 queue (4) char (32), /* one name for each queue */ 7 45 2 forms_table unaligned like text_offset, /* offset to forms table to apply to this queue group */ 7 46 2 forms_validation unaligned like text_offset, /* offset to name of routine for forms validation */ 7 47 2 default_form unaligned like text_offset, /* offset to default -form string if none given */ 7 48 2 font_dir unaligned like text_offset, /* offset to location of downloadable fonts */ 7 49 2 first_dev_class fixed bin, /* index of first device class entry of queue group */ 7 50 2 last_dev_class fixed bin, /* index of last device class entry of queue group */ 7 51 7 52 /* dynamic info reflecting current status of queues */ 7 53 7 54 2 open fixed bin, /* 1 if queues have been opened, else 0 */ 7 55 2 per_queue_info (4), 7 56 3 last_read bit (72), /* ID of last message read */ 7 57 3 mseg_index fixed bin, /* message segment index */ 7 58 3 pad fixed bin; /* pad to even word boundary */ 7 59 7 60 /* END INCLUDE FILE...q_group_tab.incl.pl1 */ 574 575 576 end print_iod_tables; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/03/89 0952.9 print_iod_tables.pl1 >spec>install>1083>print_iod_tables.pl1 568 1 11/09/88 0759.7 device_class.incl.pl1 >ldd>include>device_class.incl.pl1 569 2 11/09/88 0759.7 iod_forms_info_tab.incl.pl1 >ldd>include>iod_forms_info_tab.incl.pl1 570 3 11/09/88 0759.7 iod_constants.incl.pl1 >ldd>include>iod_constants.incl.pl1 571 4 11/09/88 0759.7 iod_device_tab.incl.pl1 >ldd>include>iod_device_tab.incl.pl1 572 5 11/09/88 0759.7 iod_line_tab.incl.pl1 >ldd>include>iod_line_tab.incl.pl1 573 6 11/09/88 0759.7 iod_tables_hdr.incl.pl1 >ldd>include>iod_tables_hdr.incl.pl1 574 7 11/09/88 0759.7 q_group_tab.incl.pl1 >ldd>include>q_group_tab.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. ATTACH_TYPE_DIAL constant fixed bin(17,0) initial dcl 3-15 ref 213 ATTACH_TYPE_IOM constant fixed bin(17,0) initial dcl 3-15 ref 209 ATTACH_TYPE_TTY constant fixed bin(17,0) initial dcl 3-15 ref 211 ATTACH_TYPE_VARIABLE_LINE constant fixed bin(17,0) initial dcl 3-15 ref 215 CTL_ATTACH_TYPE_DIAL constant fixed bin(17,0) initial dcl 3-21 ref 223 CTL_ATTACH_TYPE_MC constant fixed bin(17,0) initial dcl 3-21 ref 225 CTL_ATTACH_TYPE_TTY constant fixed bin(17,0) initial dcl 3-21 ref 221 FACTOR_LPI constant fixed bin(17,0) initial dcl 2-87 ref 476 FORMS_TYPE_STRINGS 000040 constant char(11) initial array packed unaligned dcl 2-65 set ref 382* IODT_VERSION_5 000032 constant char(8) initial packed unaligned dcl 6-49 ref 115 NO_ATTACH_TYPE 010260 constant fixed bin(17,0) initial dcl 70 ref 208 220 PAPER_TYPE_SINGLE constant fixed bin(17,0) initial dcl 3-26 ref 235 QUOTE_SPACE_HTAB 000074 constant char(3) initial packed unaligned dcl 71 ref 513 SIZE_FACTORS 000034 constant float bin(27) initial array dcl 2-84 ref 476 478 TYPE_FONT_DESC constant fixed bin(17,0) initial dcl 2-70 ref 393 404 TYPE_FONT_NAME constant fixed bin(17,0) initial dcl 2-70 ref 387 TYPE_HOLES constant fixed bin(17,0) initial dcl 2-70 ref 393 397 TYPE_LINE_DESC constant fixed bin(17,0) initial dcl 2-70 ref 393 410 TYPE_ORIENTATION constant fixed bin(17,0) initial dcl 2-70 ref 393 397 TYPE_POSTAMBLE constant fixed bin(17,0) initial dcl 2-70 ref 387 TYPE_PREAMBLE constant fixed bin(17,0) initial dcl 2-70 ref 387 TYPE_SPECIAL constant fixed bin(17,0) initial dcl 2-70 ref 384 TYPE_USES constant fixed bin(17,0) initial dcl 2-70 ref 372 ac_string 000422 automatic char(200) packed unaligned dcl 444 set ref 450* 453 453* 456 458* 462 access_class parameter bit(72) dcl 443 set ref 439 450* 451 451 458 accounting 17 based structure level 2 packed packed unaligned dcl 7-28 set ref 282* addr builtin function dcl 64 ref 155 179 187 200 247 258 259 275 322 334 335 357 421 451 451 510 arg based char packed unaligned dcl 77 set ref 100* 102* 124 124 126 126 129* argcount 000112 automatic fixed bin(17,0) dcl 78 set ref 93* 122 arglen 000113 automatic fixed bin(21,0) dcl 79 set ref 94* 100 100 102 102 123* 124 124 126 126 129 129 argp 000114 automatic pointer dcl 80 set ref 94* 100 102 123* 124 124 126 126 129 args 40 based structure level 2 in structure "idte" packed packed unaligned dcl 4-29 in procedure "piodt" set ref 205* args 12 based structure level 2 in structure "mdte" packed packed unaligned dcl 4-64 in procedure "piodt" set ref 253* asc_value 000000 constant char(3) initial array packed unaligned dcl 549 ref 556 556 att_desc 17 based structure level 2 packed packed unaligned dcl 5-25 set ref 184* attach_name 7 based char(32) level 2 dcl 4-29 set ref 217* attach_type 17 based fixed bin(17,0) level 2 dcl 4-29 ref 208 209 211 213 215 brief_mode 000116 automatic bit(1) packed unaligned dcl 81 set ref 92* 124* 126* c parameter char(1) packed unaligned dcl 545 ref 543 555 563 563 564 565 chan_id 7 based char(32) level 2 dcl 5-25 set ref 183* chars 1 based char level 2 packed packed unaligned dcl 6-39 set ref 155 434 cleanup 000100 stack reference condition dcl 66 ref 107 code 000117 automatic fixed bin(35,0) dcl 82 set ref 93* 94* 95 100* 101 102* 109* 111* 123* 170* 450* 451 451* com_err_ 000014 constant entry external dcl 48 ref 96 102 111 116 129 451 comment 6 based structure level 2 in structure "lte" packed packed unaligned dcl 5-25 in procedure "piodt" set ref 181* comment 6 based structure level 2 in structure "qgte" packed packed unaligned dcl 7-28 in procedure "piodt" set ref 277* comment 1 based structure level 2 in structure "element_common" packed packed unaligned dcl 2-22 in procedure "piodt" set ref 369* comment 6 based structure level 2 in structure "idte" packed packed unaligned dcl 4-29 in procedure "piodt" set ref 202* comment 6 based structure level 2 in structure "mdte" packed packed unaligned dcl 4-64 in procedure "piodt" set ref 251* comment based structure array level 3 in structure "iod_forms_info_tab" packed packed unaligned dcl 2-12 in procedure "piodt" set ref 353* convert_authorization_$to_string_short 000016 constant entry external dcl 49 ref 450 ctl_attach_name 20 based char(32) level 2 dcl 4-29 set ref 227* ctl_attach_type 30 based fixed bin(17,0) level 2 dcl 4-29 ref 220 221 223 225 cu_$arg_count 000020 constant entry external dcl 50 ref 93 cu_$arg_ptr 000022 constant entry external dcl 51 ref 94 123 date 000120 automatic char(24) packed unaligned dcl 83 set ref 120* 135* date_time_ 000024 constant entry external dcl 52 ref 120 date_time_compiled 2 based fixed bin(71,0) level 2 dcl 6-23 set ref 120* dblword based structure level 1 dcl 446 dcte based structure level 1 dcl 1-27 dctep 000262 automatic pointer dcl 1-25 set ref 258* 259 260 260 260 322* 323 323 326 326 326 327 327 328 328 329 329 333 dctp 000260 automatic pointer dcl 1-19 set ref 152* 258 322 default_dev_class 10 based fixed bin(17,0) level 2 dcl 4-64 ref 257 258 default_form 7 based structure level 2 in structure "mdte" packed packed unaligned dcl 4-64 in procedure "piodt" set ref 255* default_form 145 based structure level 2 in structure "qgte" packed packed unaligned dcl 7-28 in procedure "piodt" set ref 296* default_queue 42 based fixed bin(17,0) level 2 dcl 7-28 set ref 302* dev_class_tab based structure level 1 dcl 1-20 dev_class_tab_offset 12 based fixed bin(18,0) level 2 dcl 6-23 ref 152 dev_id based char(24) level 2 in structure "mdte" dcl 4-64 in procedure "piodt" set ref 248 248* 336 336 dev_id based char(24) level 2 in structure "idte" dcl 4-29 in procedure "piodt" set ref 188* 201* 248 336 336 339* device_list 21 based bit(360) level 2 dcl 1-27 ref 333 device_tab_offset 10 based fixed bin(18,0) level 2 dcl 6-23 ref 149 dir 000126 automatic char(168) packed unaligned dcl 84 set ref 100* 109* 111* 135* divide builtin function dcl 64 ref 143 143 driver_id 7 based char(32) level 2 dcl 7-28 ref 280 281 281 driver_module 31 based structure level 2 packed packed unaligned dcl 4-29 set ref 204* element_common based structure level 1 dcl 2-22 element_data_block 1 based fixed bin(35,0) array level 2 dcl 2-12 set ref 357 421 ent 000200 automatic char(32) packed unaligned dcl 85 set ref 100* 109* 111* 116* 135* entries 2 based structure array level 2 in structure "minor_device_tab" dcl 4-58 in procedure "piodt" set ref 247 334 entries 2 based structure array level 2 in structure "dev_class_tab" dcl 1-20 in procedure "piodt" set ref 258 322 entries 2 based structure array level 2 in structure "line_tab" dcl 5-19 in procedure "piodt" set ref 179 entries 2 based structure array level 2 in structure "iod_device_tab" dcl 4-23 in procedure "piodt" set ref 187 200 335 entries 2 based structure array level 2 in structure "q_group_tab" dcl 7-22 in procedure "piodt" set ref 259 275 error_table_$badarg 000026 external static fixed bin(35,0) dcl 53 set ref 129* error_table_$noarg 000030 external static fixed bin(35,0) dcl 54 set ref 96* escape_string based structure level 2 packed packed unaligned dcl 2-29 set ref 390* 416* expand_pathname_ 000032 constant entry external dcl 55 ref 100 factor parameter fixed bin(17,0) packed unaligned dcl 471 set ref 467 476 476 478 482* factors based fixed bin(17,0) array level 2 packed packed unaligned dcl 2-29 set ref 399* 401* 405* 407* 411* 413* fep 000266 automatic pointer dcl 2-21 set ref 357* 359 361 362 364 369 369 372 374 377 382 384 385 387 387 387 390 390 393 393 393 393 397 397 399 399 401 401 404 405 405 407 407 410 411 411 413 413 416 416 420 421* 421 first_char parameter fixed bin(18,0) level 2 in structure "string_data" packed packed unsigned unaligned dcl 499 in procedure "display_string" ref 510 first_char parameter fixed bin(18,0) level 2 in structure "target_offset" packed packed unsigned unaligned dcl 430 in procedure "extract_string" ref 434 first_dev_class 147 based fixed bin(17,0) level 2 dcl 7-28 ref 260 321 323 first_element_index based fixed bin(17,0) array level 3 packed packed unaligned dcl 2-12 ref 357 first_minor 41 based fixed bin(17,0) level 2 dcl 4-29 ref 246 248 336 font_dir 146 based structure level 2 in structure "qgte" packed packed unaligned dcl 7-28 in procedure "piodt" set ref 290* font_dir 37 based structure level 2 in structure "idte" packed packed unaligned dcl 4-29 in procedure "piodt" set ref 244* font_name_element based structure level 1 dcl 2-44 force_requote parameter bit(1) packed unaligned dcl 498 ref 495 513 forms_info_tab_offset 14 based fixed bin(18,0) level 2 dcl 6-23 ref 153 forms_table 35 based structure level 2 in structure "idte" packed packed unaligned dcl 4-29 in procedure "piodt" set ref 240* forms_table 143 based structure level 2 in structure "qgte" packed packed unaligned dcl 7-28 in procedure "piodt" set ref 293* forms_validation 144 based structure level 2 in structure "qgte" packed packed unaligned dcl 7-28 in procedure "piodt" set ref 287* forms_validation 36 based structure level 2 in structure "idte" packed packed unaligned dcl 4-29 in procedure "piodt" set ref 242* generic_type 20 based char(32) level 2 dcl 7-28 set ref 279* grace_time 4 based fixed bin(71,0) level 2 dcl 6-23 ref 143 143 group 000111 automatic fixed bin(17,0) dcl 76 set ref 351* 352 353 353 357* groups based structure array level 2 dcl 2-12 hbound builtin function dcl 64 ref 556 hcs_$initiate 000034 constant entry external dcl 56 ref 109 hcs_$terminate_noname 000036 constant entry external dcl 57 ref 170 head_sheet 32 based structure level 2 packed packed unaligned dcl 4-29 set ref 230* height based float bin(27) level 2 packed packed unaligned dcl 2-29 set ref 399* 405* 411* i 000505 automatic fixed bin(17,0) dcl 507 in procedure "display_string" set ref 517* 520 520 522* 522 524 524* 532 536 i 000106 automatic fixed bin(17,0) dcl 76 in procedure "piodt" set ref 122* 123* 178* 179* 199* 200* 274* 275* i 000526 automatic fixed bin(17,0) dcl 546 in procedure "tchar" set ref 555* 556 556 557 558 560* id based char(32) level 2 dcl 1-27 set ref 260 260 323 323* idte based structure level 1 dcl 4-29 idtep 000272 automatic pointer dcl 4-28 set ref 187* 188 200* 201 202 202 204 205 205 208 209 211 213 215 217 220 221 223 225 227 230 230 232 232 234 235 240 240 242 242 244 244 246 246 248 248 248 335* 336 336 336 336 339 idtp 000270 automatic pointer dcl 4-22 set ref 149* 185 187 199 200 335 ifitp 000264 automatic pointer dcl 2-11 set ref 153* 165 351 352 353 353 357 357 421 index builtin function dcl 64 ref 490 563 index_blocks based structure array level 2 packed packed unaligned dcl 2-52 input_string based char packed unaligned dcl 501 set ref 513 513* 515 520 520 524 524 532 532 input_string_len 000100 automatic fixed bin(17,0) dcl 502 set ref 511* 513 513 513 515 517 520 520 524 524 532 532 532 input_string_ptr 000102 automatic pointer dcl 503 set ref 510* 513 513 515 520 520 524 524 532 532 ioa_ 000040 constant entry external dcl 58 ref 135 142 143 144 168 176 180 181 183 184 188 197 201 202 204 205 217 227 230 232 238 240 242 244 248 251 253 255 260 264 272 276 277 279 281 282 284 287 290 293 296 299 302 310 318 323 327 328 329 336 339 348 352 353 367 369 379 382 385 390 416 482 ioa_$rsnnl 000042 constant entry external dcl 59 ref 560 ioa_$rsnpnnl 000044 constant entry external dcl 60 ref 476 478 iod_device_tab based structure level 1 dcl 4-23 iod_forms_info_tab based structure level 1 dcl 2-12 iod_tables_hdr based structure level 1 dcl 6-23 item parameter float bin(27) packed unaligned dcl 469 ref 467 474 475 476 478 item_title parameter char packed unaligned dcl 470 set ref 467 482* ithp 000304 automatic pointer dcl 6-22 set ref 106* 109* 110 115 120 135 143 143 144 148 148 149 149 150 150 151 151 152 152 153 153 154 154 170 170* 299 j 000506 automatic fixed bin(17,0) dcl 507 in procedure "display_string" set ref 519 520 520 522 532* 532 532* 536* 536 j 000107 automatic fixed bin(17,0) dcl 76 in procedure "piodt" set ref 246* 247* 280* 281 281 321* 322* 362* 364* 374* 375 377* k 000110 automatic fixed bin(17,0) dcl 76 set ref 185* 186 187* 306* 307* 309* 310 310 314* 315* 317* 318 318 332* 333 334* keyword 000210 automatic char(20) packed unaligned dcl 86 set ref 209* 211* 213* 215* 217* 221* 223* 225* 227* 235* 237* 238* last_dev_class 150 based fixed bin(17,0) level 2 dcl 7-28 ref 260 321 323 last_minor 42 based fixed bin(17,0) level 2 dcl 4-29 ref 246 248 336 length builtin function dcl 64 in procedure "piodt" ref 280 309 317 456 length based fixed bin(17,0) level 2 in structure "text_strings" dcl 6-39 in procedure "piodt" ref 155 434 line_charge 43 based structure level 2 dcl 7-28 line_id based char(24) level 2 dcl 5-25 set ref 180* line_tab based structure level 1 dcl 5-19 line_tab_offset 7 based fixed bin(18,0) level 2 dcl 6-23 ref 148 lte based structure level 1 dcl 5-25 ltep 000302 automatic pointer dcl 5-24 set ref 179* 180 181 181 183 184 186 ltp 000300 automatic pointer dcl 5-18 set ref 148* 158 178 179 maj_dev_list 20 based bit(360) level 2 dcl 5-25 ref 186 major_index 11 based fixed bin(17,0) level 2 dcl 4-64 ref 335 max_access 13 based bit(72) level 2 dcl 1-27 set ref 326 328* 328* max_queues 6 based fixed bin(17,0) level 2 in structure "iod_tables_hdr" dcl 6-23 in procedure "piodt" set ref 144* 299 max_queues 41 based fixed bin(17,0) level 2 in structure "qgte" dcl 7-28 in procedure "piodt" set ref 299 299* 306 314 mdte based structure level 1 dcl 4-64 mdtep 000276 automatic pointer dcl 4-63 set ref 247* 248 248 251 251 253 253 255 255 257 258 334* 335 336 336 mdtp 000274 automatic pointer dcl 4-57 set ref 150* 247 332 334 min_access 15 based bit(72) level 2 dcl 1-27 set ref 326 327* 327* min_banner 17 based bit(72) level 2 dcl 1-27 set ref 260 326 329* 329* minor_device_tab based structure level 1 dcl 4-58 minor_device_tab_offset 11 based fixed bin(18,0) level 2 dcl 6-23 ref 150 n_devices based fixed bin(17,0) level 2 dcl 4-23 ref 185 199 n_groups based fixed bin(17,0) level 2 packed packed unaligned dcl 2-12 ref 165 351 n_indices based fixed bin(35,0) level 2 packed packed unaligned dcl 2-52 ref 374 n_lines based fixed bin(17,0) level 2 dcl 5-19 ref 158 178 n_minor based fixed bin(17,0) level 2 dcl 4-58 ref 332 n_names 0(09) based fixed bin(8,0) level 2 packed packed unaligned dcl 2-22 ref 361 362 374 377 385 390 390 399 399 401 401 405 405 407 407 411 411 413 413 416 416 n_q_groups based fixed bin(17,0) level 2 dcl 7-22 ref 274 n_words 0(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 2-12 ref 352 353 353 357 name based char(24) level 2 in structure "qgte" dcl 7-28 in procedure "piodt" set ref 260 260 264* 276* 323 name based structure array level 3 in structure "uses_element" packed packed unaligned dcl 2-52 in procedure "piodt" set ref 377* name based char(32) array level 3 in structure "iod_forms_info_tab" packed packed unaligned dcl 2-12 in procedure "piodt" set ref 352* names 2 based structure array level 2 packed packed unaligned dcl 2-22 set ref 359* 364* next_element_index 0(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 2-22 ref 420 421 null builtin function dcl 64 ref 106 110 170 orientation_element based structure level 1 dcl 2-29 page_charge 103 based structure level 2 dcl 7-28 paper_type 34 based fixed bin(17,0) level 2 dcl 4-29 ref 234 235 ptr builtin function dcl 64 ref 148 149 150 151 152 153 154 q_group_tab based structure level 1 dcl 7-22 q_group_tab_offset 13 based fixed bin(18,0) level 2 dcl 6-23 ref 151 qgte based structure level 1 dcl 7-28 qgte_index 11 based fixed bin(17,0) level 2 dcl 1-27 ref 259 qgtep 000312 automatic pointer dcl 7-27 set ref 259* 260 260 260 260 264 275* 276 277 277 279 280 281 281 282 284 284 287 287 290 290 293 293 296 296 299 299 302 304 306 307 312 314 315 321 321 323 323 323 qgtp 000310 automatic pointer dcl 7-21 set ref 151* 259 274 275 queue 43 based char(32) array level 3 in structure "qgte" dcl 7-28 in procedure "piodt" ref 304 307 queue 103 based char(32) array level 3 in structure "qgte" dcl 7-28 in procedure "piodt" ref 312 315 rank builtin function dcl 64 ref 532 532 555 requote_string_ 000046 constant entry external dcl 61 ref 184 492 513 520 return_string 000104 automatic varying char(1024) dcl 505 set ref 509* 513* 515* 520* 520 524* 524 525* 525 528 rqti_seg_name 31 based char(32) level 2 dcl 7-28 set ref 284 284* rtrim builtin function dcl 64 ref 260 260 280 307 315 336 336 456 480 481 490 490 492 492 556 search builtin function dcl 64 ref 513 special_element based structure level 1 dcl 2-59 special_process parameter bit(1) packed unaligned dcl 497 ref 495 512 special_string based structure level 2 packed packed unaligned dcl 2-59 set ref 385* string 000215 automatic varying char(128) dcl 87 set ref 305* 307* 307 309 310 310 313* 315* 315 317 318 318 359* 363* 363 364* 364 367 373* 375* 375 377* 377 379* string_data parameter structure level 1 packed packed unaligned dcl 499 ref 495 string_to_check parameter char packed unaligned dcl 489 ref 487 490 490 492 492 substr builtin function dcl 64 ref 186 281 281 310 310 318 318 333 434 520 520 524 524 532 532 system_high 000504 automatic bit(72) dcl 445 set ref 457* 458 system_info_$access_ceiling 000050 constant entry external dcl 62 ref 457 tail_sheet 33 based structure level 2 packed packed unaligned dcl 4-29 set ref 232* target_offset parameter structure level 1 packed packed unaligned dcl 430 ref 428 temp 000527 automatic char(4) packed unaligned dcl 547 set ref 560* 561 temp_string 000514 automatic varying char(10) dcl 472 set ref 476* 478* 480* 480 481* 481 482* text_offset based structure level 1 packed packed unaligned dcl 6-45 text_strings based structure level 1 dcl 6-39 text_strings_array based char(1) array packed unaligned dcl 88 set ref 510 text_strings_array_ptr 000256 automatic pointer dcl 89 set ref 155* 510 text_strings_offset 15 based fixed bin(18,0) level 2 dcl 6-23 ref 154 text_strings_ptr 000306 automatic pointer dcl 6-38 set ref 154* 155 434 total_chars 37(18) based fixed bin(18,0) level 3 in structure "idte" packed packed unsigned unaligned dcl 4-29 in procedure "piodt" set ref 244 total_chars 6(18) based fixed bin(18,0) level 3 in structure "idte" packed packed unsigned unaligned dcl 4-29 in procedure "piodt" set ref 202 total_chars 36(18) based fixed bin(18,0) level 3 in structure "idte" packed packed unsigned unaligned dcl 4-29 in procedure "piodt" set ref 242 total_chars based fixed bin(18,0) array level 4 in structure "iod_forms_info_tab" packed packed unsigned unaligned dcl 2-12 in procedure "piodt" set ref 353 total_chars 145(18) based fixed bin(18,0) level 3 in structure "qgte" packed packed unsigned unaligned dcl 7-28 in procedure "piodt" set ref 296 total_chars 32(18) based fixed bin(18,0) level 3 in structure "idte" packed packed unsigned unaligned dcl 4-29 in procedure "piodt" set ref 230 total_chars 0(18) parameter fixed bin(18,0) level 2 in structure "target_offset" packed packed unsigned unaligned dcl 430 in procedure "extract_string" ref 432 434 total_chars 33(18) based fixed bin(18,0) level 3 in structure "idte" packed packed unsigned unaligned dcl 4-29 in procedure "piodt" set ref 232 total_chars 1(18) based fixed bin(18,0) level 3 in structure "element_common" packed packed unsigned unaligned dcl 2-22 in procedure "piodt" set ref 369 total_chars 35(18) based fixed bin(18,0) level 3 in structure "idte" packed packed unsigned unaligned dcl 4-29 in procedure "piodt" set ref 240 total_chars 143(18) based fixed bin(18,0) level 3 in structure "qgte" packed packed unsigned unaligned dcl 7-28 in procedure "piodt" set ref 293 total_chars 6(18) based fixed bin(18,0) level 3 in structure "qgte" packed packed unsigned unaligned dcl 7-28 in procedure "piodt" set ref 277 total_chars 40(18) based fixed bin(18,0) level 3 in structure "idte" packed packed unsigned unaligned dcl 4-29 in procedure "piodt" set ref 205 total_chars 7(18) based fixed bin(18,0) level 3 in structure "mdte" packed packed unsigned unaligned dcl 4-64 in procedure "piodt" set ref 255 total_chars 12(18) based fixed bin(18,0) level 3 in structure "mdte" packed packed unsigned unaligned dcl 4-64 in procedure "piodt" set ref 253 total_chars based fixed bin(18,0) level 3 in structure "orientation_element" packed packed unsigned unaligned dcl 2-29 in procedure "piodt" set ref 390 416 total_chars 6(18) based fixed bin(18,0) level 3 in structure "lte" packed packed unsigned unaligned dcl 5-25 in procedure "piodt" set ref 181 total_chars 6(18) based fixed bin(18,0) level 3 in structure "mdte" packed packed unsigned unaligned dcl 4-64 in procedure "piodt" set ref 251 total_chars 144(18) based fixed bin(18,0) level 3 in structure "qgte" packed packed unsigned unaligned dcl 7-28 in procedure "piodt" set ref 287 total_chars 0(18) parameter fixed bin(18,0) level 2 in structure "string_data" packed packed unsigned unaligned dcl 499 in procedure "display_string" ref 511 total_chars 146(18) based fixed bin(18,0) level 3 in structure "qgte" packed packed unsigned unaligned dcl 7-28 in procedure "piodt" set ref 290 type based fixed bin(8,0) level 2 packed packed unaligned dcl 2-22 ref 372 382 384 387 387 387 393 393 393 393 397 397 404 410 uses_element based structure level 1 dcl 2-52 version based char(8) level 2 dcl 6-23 set ref 115 135* whoami 000010 internal static char(16) initial dcl 72 set ref 96* 102* 111* 116* 129* 451* width based float bin(27) level 2 packed packed unaligned dcl 2-29 set ref 401* 407* 413* word1 based fixed bin(35,0) level 2 dcl 446 set ref 451* word2 1 based fixed bin(35,0) level 2 dcl 446 set ref 451* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. FACTOR_CENTIMETERS internal static fixed bin(17,0) initial dcl 2-87 FACTOR_INCHES internal static fixed bin(17,0) initial dcl 2-87 FACTOR_POINTS internal static fixed bin(17,0) initial dcl 2-87 LANDSCAPE_ORIENTATION internal static fixed bin(17,0) initial dcl 2-94 ORIENTATION_STRINGS internal static char(9) initial array packed unaligned dcl 2-92 PAPER_TYPE_CONTINUOUS internal static fixed bin(17,0) initial dcl 3-26 PAPER_TYPE_DEFAULT internal static fixed bin(17,0) initial dcl 3-26 PORTRAIT_ORIENTATION internal static fixed bin(17,0) initial dcl 2-94 TYPE_FONT_SIZE internal static fixed bin(17,0) initial dcl 2-70 font_element based structure level 1 dcl 2-36 font_size_element based structure level 1 dcl 2-38 holes_element based structure level 1 dcl 2-42 line_element based structure level 1 dcl 2-40 postamble_element based structure level 1 dcl 2-50 preamble_element based structure level 1 dcl 2-48 NAMES DECLARED BY EXPLICIT CONTEXT. count_text 007647 constant entry internal dcl 530 ref 518 display_forms_size 007046 constant entry internal dcl 467 ref 399 401 405 407 411 413 display_string 007374 constant entry internal dcl 495 ref 181 202 204 205 230 232 251 253 255 277 282 287 290 293 296 353 369 385 390 416 element_display_loop 005436 constant label dcl 359 ref 422 extract_string 006641 constant entry internal dcl 428 ref 184 240 242 244 359 364 377 finish 001575 constant label dcl 170 ref 107 117 130 get_access_class_string 006711 constant entry internal dcl 439 ref 327 327 328 328 329 329 output_the_string 007265 constant entry internal dcl 487 ref 367 piodt 000714 constant entry external dcl 14 print_device_entries 002106 constant entry internal dcl 195 ref 161 print_forms_info 005232 constant entry internal dcl 346 ref 165 print_iod_tables 000723 constant entry external dcl 14 print_line_table_entries 001613 constant entry internal dcl 174 ref 158 print_request_type_entries 003511 constant entry internal dcl 270 ref 163 tchar 007675 constant entry internal dcl 543 ref 524 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 10530 10602 10264 10540 Length 11216 10264 52 377 243 4 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME piodt 752 external procedure is an external procedure. on unit on line 107 64 on unit print_line_table_entries internal procedure shares stack frame of external procedure piodt. print_device_entries internal procedure shares stack frame of external procedure piodt. print_request_type_entries internal procedure shares stack frame of external procedure piodt. print_forms_info internal procedure shares stack frame of external procedure piodt. extract_string 66 internal procedure uses returns(char(*)) or returns(bit(*)). get_access_class_string internal procedure shares stack frame of external procedure piodt. display_forms_size internal procedure shares stack frame of external procedure piodt. output_the_string 82 internal procedure uses returns(char(*)) or returns(bit(*)), and is called during a stack extension. display_string 384 internal procedure uses returns(char(*)) or returns(bit(*)). count_text internal procedure shares stack frame of internal procedure display_string. tchar internal procedure shares stack frame of internal procedure display_string. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 whoami piodt STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME display_string 000100 input_string_len display_string 000102 input_string_ptr display_string 000104 return_string display_string 000505 i display_string 000506 j display_string 000526 i tchar 000527 temp tchar piodt 000106 i piodt 000107 j piodt 000110 k piodt 000111 group piodt 000112 argcount piodt 000113 arglen piodt 000114 argp piodt 000116 brief_mode piodt 000117 code piodt 000120 date piodt 000126 dir piodt 000200 ent piodt 000210 keyword piodt 000215 string piodt 000256 text_strings_array_ptr piodt 000260 dctp piodt 000262 dctep piodt 000264 ifitp piodt 000266 fep piodt 000270 idtp piodt 000272 idtep piodt 000274 mdtp piodt 000276 mdtep piodt 000300 ltp piodt 000302 ltep piodt 000304 ithp piodt 000306 text_strings_ptr piodt 000310 qgtp piodt 000312 qgtep piodt 000422 ac_string get_access_class_string 000504 system_high get_access_class_string 000514 temp_string display_forms_size THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this_desc return_mac tra_ext_1 enable_op shorten_stack ext_entry int_entry int_entry_desc return_chars_eis divide_fx3 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ convert_authorization_$to_string_short cu_$arg_count cu_$arg_ptr date_time_ expand_pathname_ hcs_$initiate hcs_$terminate_noname ioa_ ioa_$rsnnl ioa_$rsnpnnl requote_string_ system_info_$access_ceiling THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badarg error_table_$noarg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 14 000713 92 000730 93 000732 94 000742 95 000761 96 000763 97 001000 100 001001 101 001031 102 001033 103 001057 106 001060 107 001062 109 001101 110 001144 111 001150 112 001203 115 001204 116 001211 117 001242 120 001243 122 001260 123 001267 124 001304 126 001321 129 001333 130 001367 132 001370 135 001372 142 001426 143 001442 144 001471 148 001512 149 001517 150 001523 151 001527 152 001533 153 001537 154 001543 155 001547 158 001551 161 001554 163 001555 165 001556 168 001562 170 001575 172 001612 174 001613 176 001614 178 001631 179 001641 180 001645 181 001666 183 001741 184 001764 185 002037 186 002047 187 002054 188 002060 190 002101 191 002103 193 002105 195 002106 197 002107 199 002124 200 002133 201 002137 202 002160 204 002233 205 002306 208 002363 209 002370 211 002376 213 002404 215 002412 217 002417 220 002444 221 002450 223 002456 225 002464 227 002471 230 002517 232 002574 234 002647 235 002653 237 002661 238 002664 240 002707 242 002747 244 003013 246 003055 247 003067 248 003073 251 003126 253 003201 255 003260 257 003333 258 003337 259 003343 260 003350 264 003460 266 003504 267 003506 268 003510 270 003511 272 003512 274 003531 275 003541 276 003545 277 003565 279 003640 280 003665 281 003701 282 003732 284 004002 287 004031 290 004106 293 004162 296 004235 299 004310 302 004341 304 004365 305 004372 306 004373 307 004403 308 004461 309 004464 310 004467 311 004515 312 004516 313 004523 314 004524 315 004533 316 004611 317 004614 318 004617 319 004650 321 004651 322 004661 323 004665 326 004715 327 004726 328 004761 329 005015 332 005051 333 005061 334 005066 335 005072 336 005077 339 005201 341 005223 342 005225 343 005227 344 005231 346 005232 348 005233 351 005247 352 005257 353 005312 357 005421 359 005436 361 005474 362 005502 363 005511 364 005520 365 005563 367 005566 369 005633 372 005710 373 005716 374 005717 375 005733 377 005744 378 006016 379 006021 380 006042 382 006043 384 006070 385 006075 386 006150 387 006152 390 006160 392 006242 393 006244 397 006260 399 006262 401 006314 403 006352 404 006353 405 006355 407 006407 409 006445 410 006446 411 006450 413 006502 416 006540 418 006622 420 006623 421 006631 422 006634 424 006635 425 006637 428 006640 432 006646 434 006667 439 006711 450 006713 451 006734 453 006776 456 007005 457 007020 458 007027 462 007040 467 007046 474 007057 475 007070 476 007073 478 007141 480 007175 481 007213 482 007231 485 007263 487 007264 490 007300 492 007334 495 007373 509 007401 510 007402 511 007420 512 007426 513 007433 515 007505 516 007516 517 007517 518 007525 519 007526 520 007531 522 007576 523 007603 524 007604 525 007626 526 007635 528 007637 530 007647 532 007650 535 007670 536 007672 537 007674 543 007675 555 007677 556 007705 557 007736 558 007740 560 007750 561 010000 563 010007 564 010026 565 010037 ----------------------------------------------------------- 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