COMPILATION LISTING OF SEGMENT display_time_info Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 09/16/86 1115.8 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /**** format: ind3,ll80,initcol6,indattr,^inddcls,dclind4,idind16 */ 8 /**** format: struclvlind2,^ifthenstmt,^ifthendo,^ifthen,^indnoniterdo */ 9 /**** format: ^inditerdo,^indnoniterend,^indthenelse,case,^indproc,^indend */ 10 /**** format: ^delnl,^insnl,comcol41,^indcom,^indblkcom,linecom,^indcomtxt */ 11 12 dsti: display_time_info: proc; 13 14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 /* */ 16 /* Names: display_time_info, dsti */ 17 /* */ 18 /* SYNTAX AS A COMMAND: */ 19 /* dsti -control_args */ 20 /* */ 21 /* FUNCTION: */ 22 /* This command displays information selected from time_info_. */ 23 /* */ 24 /* CONTROL ARGUMENTS: */ 25 /* -all, -a */ 26 /* specifies all data are to be printed. */ 27 /* -day */ 28 /* asks for a list of all the day names. */ 29 /* -format, -fmt */ 30 /* asks for a list of all the named formats known on the site. */ 31 /* These are names which may be given to date_time_$format in */ 32 /* place of an explicit format string. This list does not */ 33 /* include "date", "date_time", and "time" as they are not */ 34 /* contained in time_info_. Use print_time_defaults to see them. */ 35 /* -language, -lang */ 36 /* asks for a list of all the time languages available, showing */ 37 /* the name of each language IN each language. This form would */ 38 /* usually be used alone to enable a person to see what languages */ 39 /* she can refer to. */ 40 /* -language X, -lang X */ 41 /* asks for the output to be given in language X. The default is */ 42 /* to show requested data in the process default language. */ 43 /* -map */ 44 /* asks for a time zone map of the world, with all the defined */ 45 /* time zones and their offsets. Each zone is at its proper */ 46 /* place on this map. The map is horizontally broken according */ 47 /* to the linelength currently in effect. */ 48 /* -month */ 49 /* asks for a list of all the month names. */ 50 /* -offset */ 51 /* asks for all the offset words to be printed. */ 52 /* -table X, -tb X */ 53 /* Specifies the pathname of the table to be displayed. The */ 54 /* default is the reference name "time_info_". */ 55 /* -token {X} */ 56 /* Displays the structure used for binary searching the tokens */ 57 /* declared in the table. The display shows all words, with */ 58 /* their meanings, in all languages, grouped by token. A token */ 59 /* is a word converted to lowercase. If X is given, then only */ 60 /* the data for that token is shown. Since X represents a token */ 61 /* and not a word, it must be entered in lowercase. */ 62 /* -word */ 63 /* asks for all of the miscellaneous words to be printed. */ 64 /* -zone */ 65 /* asks for a list of all the zones available. */ 66 /* */ 67 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 68 /* Status: */ 69 /* 1) 83-02-01 JFalksen Created */ 70 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *-* */ 71 72 73 /****^ HISTORY COMMENTS: 74* 1) change(86-08-15,GDixon), approve(86-09-04,MCR7532), 75* audit(86-09-05,Martinson), install(86-09-16,MR12.0-1159): 76* Add support for zone GMT+13 (New Zealand Daylight Time) to dsti -map. 77* (phx18881) 78* END HISTORY COMMENTS */ 79 80 81 82 string (sw) = ""b; 83 time_info, code_ext, lang_token, token_token, zone_token = ""; 84 litem_p, zitem_p = null(); 85 token_index = 0; 86 87 /**** Assume we were called as an active function. Get ptr to/length of our */ 88 /**** return argument, and count of our input arguments. */ 89 call cu_$af_return_arg (arg_ct, ret_p, ret_l, code); 90 if code = 0 /* if called as an active function, */ 91 then do; 92 command = "0"b; 93 err = active_fnc_err_; 94 get_arg = cu_$af_arg_ptr; 95 end; 96 else if code = error_table_$not_act_fnc /* if called as a command, */ 97 then do; 98 command = "1"b; /* indicate so */ 99 get_arg = cu_$arg_ptr; 100 err = com_err_; 101 end; 102 else do; /* if some unknown error occurs, */ 103 command = "0"b; /* ..report it to user as if we were */ 104 err = active_fnc_err_; /* ..called as an active fnc */ 105 goto bad_call; 106 end; 107 if (arg_ct = 0) 108 then do; 109 code = error_table_$noarg; 110 code_ext = " 111 Usage: dsti -control_args"; 112 goto bad_call; 113 end; 114 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 115 /* Process all the args given. */ 116 117 do arg_no = 1 to arg_ct; 118 call get_arg (arg_no, arg_p, arg_l, code); 119 if (arg = "-all") | (arg = "-a") 120 then sw.all = "1"b; 121 else if (arg = "-day") 122 | (arg = "-da") | (arg = "-days") /* (just to be friendly) */ 123 then sw.day = "1"b; 124 else if (arg = "-format") | (arg = "-fmt") 125 then sw.format = "1"b; 126 else if (arg = "-language") | (arg = "-lang") 127 then do; 128 if (arg_no < arg_ct) 129 then do; 130 call get_arg (arg_no + 1, arg_p, arg_l, code); 131 if (index (arg, "-") ^= 1) 132 then do; 133 lang_token = arg; 134 arg_no = arg_no + 1; 135 end; 136 else sw.lang = "1"b; 137 end; 138 else sw.lang = "1"b; 139 end; 140 else if (arg = "-map") 141 then sw.map = "1"b; 142 else if (arg = "-month") 143 then sw.month = "1"b; 144 else if (arg = "-offset") 145 then sw.offset = "1"b; 146 else if (arg = "-table") | (arg = "-tb") 147 then do; 148 if (arg_no < arg_ct) 149 then do; 150 call get_arg (arg_no + 1, arg_p, arg_l, code); 151 if (index (arg, "-") ^= 1) 152 then do; 153 time_info = arg || "|"; 154 arg_no = arg_no + 1; 155 end; 156 else goto no_table; 157 end; 158 if (time_info = "|") 159 then do; 160 no_table: 161 call com_err_ (0, me, "Missing value for -table argument."); 162 sw.err = "1"b; 163 end; 164 end; 165 else if (arg = "-token") 166 then do; 167 sw.token = "1"b; 168 if (arg_no < arg_ct) 169 then do; 170 call get_arg (arg_no + 1, arg_p, arg_l, code); 171 if (index (arg, "-") ^= 1) 172 then do; 173 token_token = arg; 174 arg_no = arg_no + 1; 175 end; 176 end; 177 end; 178 else if (arg = "-word") | (arg = "-words") 179 then sw.word = "1"b; 180 else if (arg = "-zone") | (arg = "-zones") 181 then do; 182 sw.zone = "1"b; 183 if (arg_no < arg_ct) 184 then do; 185 call get_arg (arg_no + 1, arg_p, arg_l, code); 186 if (index (arg, "-") ^= 1) 187 then do; 188 zone_token = arg; 189 arg_no = arg_no + 1; 190 end; 191 end; 192 end; 193 else do; 194 if (index (arg, "-") ^= 1) 195 then code = error_table_$bad_arg; 196 else code = error_table_$badopt; 197 call com_err_ (code, me, "^a", arg); 198 sw.err = "1"b; 199 end; 200 end; 201 if sw.token 202 then if (substr (string (sw), 3) ^= ""b) 203 then do; 204 call com_err_ (0, me, "No other control args allowed with -token."); 205 return; 206 end; 207 if sw.err 208 then return; 209 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 210 /* Get pointers to all the things we need. */ 211 if (time_info = "") 212 then do; /* supply table default */ 213 time_info = "time_info_$"; 214 end; 215 216 v_e = cv_entry_ (time_info || "version", null(), code); 217 if (code ^= 0) 218 then do; 219 call com_err_ (code, me, "^aversion", time_info); 220 return; 221 end; 222 v_p = codeptr (v_e); 223 if (v_p -> ch8 ^= Vtime_info_2) 224 then do; 225 code = error_table_$unimplemented_version; 226 code_ext = time_info || "version"; 227 goto bad_call; 228 end; 229 v_e = cv_entry_ (time_info || "default_language_index", null (), code); 230 if (code ^= 0) 231 then do; 232 code_ext = time_info || "default_language_index"; 233 goto bad_call; 234 end; 235 dl_p = codeptr (v_e); 236 default_lang = dl_p -> fb; 237 v_e = cv_entry_ (time_info || "date_time_keywords", null (), code); 238 if (code ^= 0) 239 then do; 240 call com_err_ (code, me, "^adate_time_keywords", time_info); 241 sw.err = "1"b; 242 end; 243 dtk_p = codeptr (v_e); 244 v_e = cv_entry_ (time_info || "language_names", null (), code); 245 if (code ^= 0) 246 then do; 247 call com_err_ (code, me, "^alanguage_names", time_info); 248 sw.err = "1"b; 249 end; 250 l_p = codeptr (v_e); 251 v_e = cv_entry_ (time_info || "zone_names", null (), code); 252 if (code ^= 0) 253 then do; 254 call com_err_ (code, me, "^azone_names", time_info); 255 sw.err = "1"b; 256 end; 257 zn_p = codeptr (v_e); 258 lang_ct = zn_p -> ti_zone.number_lang; 259 zone_ct = zn_p -> ti_zone.number_zone; 260 v_e = cv_entry_ (time_info || "month_names", null (), code); 261 if (code ^= 0) 262 then do; 263 call com_err_ (code, me, "^amonth_names", time_info); 264 sw.err = "1"b; 265 end; 266 m_p = codeptr (v_e); 267 v_e = cv_entry_ (time_info || "day_names", null (), code); 268 if (code ^= 0) 269 then do; 270 call com_err_ (code, me, "^aday_names", time_info); 271 sw.err = "1"b; 272 end; 273 d_p = codeptr (v_e); 274 v_e = cv_entry_ (time_info || "offset_names", null (), code); 275 if (code ^= 0) 276 then do; 277 call com_err_ (code, me, "^aoffset_names", time_info); 278 sw.err = "1"b; 279 end; 280 o_p = codeptr (v_e); 281 v_e = cv_entry_ (time_info || "word_names", null (), code); 282 if (code ^= 0) 283 then do; 284 call com_err_ (code, me, "^aword_names", time_info); 285 sw.err = "1"b; 286 end; 287 w_p = codeptr (v_e); 288 v_e = cv_entry_ (time_info || "tokens", null (), code); 289 if (code ^= 0) 290 then do; 291 call com_err_ (code, me, "^atokens", time_info); 292 sw.err = "1"b; 293 end; 294 ti_token_p = codeptr (v_e); 295 if (token_token ^= "") 296 then do; 297 call search (token_token); /* look for token */ 298 token_index = cur_token; 299 end; 300 if (lang_token = "") 301 then lang_token = time_defaults_$language; 302 call search (lang_token); /* look for language name */ 303 item_p = addrel (v_p, ti_token.list_r (cur_token)); 304 if (item.table (1) ^= Language_table) 305 then do; 306 call com_err_ (0, me, "^a is not a language in time_info_.", 307 lang_token); 308 sw.err = "1"b; 309 end; 310 litem_p = item_p; 311 if (zone_token ^= "") 312 then do; 313 call search (zone_token); /* look for zone name */ 314 item_p = addrel (v_p, ti_token.list_r (cur_token)); 315 if (item.table (1) ^= Zone_table) 316 then do; 317 call com_err_ (0, me, "^a is not a zone in time_info_.", 318 zone_token); 319 sw.err = "1"b; 320 end; 321 zitem_p = item_p; 322 end; 323 if sw.err 324 then return; 325 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 326 main: 327 begin; 328 329 if ^sw.token 330 then do; /* not doing the token option. */ 331 if (litem_p ^= null()) /* A language name was given */ 332 then lb, hb = litem_p -> item.element (1); 333 else do; 334 lb = 1; /* process 'em all */ 335 hb = lang_ct; 336 end; 337 display: 338 do lang = lb to hb; 339 call ioa_ ("^a-----", l_p -> ti_language.name (lang, lang)); 340 if sw.format | sw.all 341 then do; 342 call ioa_ (" Named format strings"); 343 do element = 1 to dtk_p -> ti_keyword.number_kwd; 344 call ioa_ ("^24a ""^va""^[^/^]", 345 dtk_p -> ti_keyword.e.name (element), 346 length (dtk_p -> ti_keyword.e.str (element)), 347 dtk_p -> ti_keyword.e.str (element), (element=3)); 348 end; 349 end; 350 if sw.lang | sw.all 351 then do; 352 call ioa_ (" Language name"); 353 do element = 1 to lang_ct; 354 call ioa_ ("^6i: ^a", element, 355 fetch (Language_table, lang, element, 0)); 356 end; 357 end; 358 if sw.month | sw.all 359 then do; 360 call ioa_ (" Month name (long, short)"); 361 do element = 1 to 12; 362 call ioa_ ("^6i: ^a", element, 363 fetch (Month_table, lang, element, 0)); 364 end; 365 end; 366 if sw.day | sw.all 367 then do; 368 call ioa_ (" Day name (long, short)"); 369 do element = 1 to 7; 370 call ioa_ ("^6i: ^a", element, 371 fetch (Day_table, lang, element, 0)); 372 end; 373 end; 374 if sw.offset | sw.all 375 then do; 376 call ioa_ (" Offset(""this"",singular,plural,short)"); 377 do element = 1 to hbound (o_p -> ti_offset.e, 2); 378 call ioa_ ("^6i: ^a", element, 379 fetch (Offset_table, lang, element, 0)); 380 end; 381 end; 382 if sw.word | sw.all 383 then do; 384 call ioa_ (" Other words"); 385 do element = 1 to hbound (w_p -> ti_word.word, 2); 386 call ioa_ ("^6i: ^a", element, 387 fetch (Word_table, lang, element, 0)); 388 end; 389 end; 390 if sw.map 391 then call print_time_zones; 392 if sw.zone | sw.all 393 then do; 394 if (zitem_p ^= null())/* A zone name was given, process it */ 395 then lb, hb = zitem_p -> item.element (1); /* ..only */ 396 else do; 397 lb = 1; /* process all the zones */ 398 hb = zone_ct; 399 end; 400 call ioa_ (" Zone info(short,offset,long)"); 401 do element = lb to hb; 402 call ioa_ ("^6i: ^a", element, 403 fetch (Zone_table, lang, element, 0)); 404 end; 405 end; 406 end display; 407 end; 408 else do; /* -token option */ 409 if (litem_p ^= null()) /* A language name was given */ 410 then lang = litem_p -> item.element (1); 411 else lang = default_lang; /* use process default */ 412 413 if (token_index > 0) 414 then lb, hb = token_index; /* one was singled out */ 415 else do; 416 lb = 1; /* do 'em all */ 417 hb = ti_token.count; 418 end; 419 show_token: 420 do cur_token = lb to hb; 421 item_p = addrel (v_p, ti_token.list_r (cur_token)); 422 call ioa_ ("Token(^3i): ""^a""^[ (ambiguous)^]", cur_token, 423 ti_token.symbol (cur_token), (item.count > 1)); 424 /**** Go thru all items (usually only one). */ 425 do it = 1 to item.count; 426 /**** Get the number of items */ 427 itn = item.element (it); 428 /**** Get the kind of table the item is for */ 429 tabl = item.table (it); 430 if (tabl = Day_table) 431 then tname = d_p -> ti_day.long (lang, itn); 432 else if (tabl = Language_table) 433 then tname = l_p -> ti_language.name (lang, itn); 434 else if (tabl = Month_table) 435 then tname = m_p -> ti_month.long (lang, itn); 436 else if (tabl = Offset_table) 437 then tname = o_p -> ti_offset.singular (lang, itn); 438 else if (tabl = Word_table) 439 then tname = w_p -> ti_word.word (lang, itn); 440 else if (tabl = Zone_table) 441 then tname = zn_p -> ti_zone.short (lang, itn); 442 else if (tabl = This_table) 443 then tname = o_p -> ti_offset.this (lang, itn) || " [" 444 || o_p -> ti_offset.singular (lang, itn) || "]"; 445 else call com_err_ (0, me, 446 "item.table(^i) =^b", it, tabl); 447 448 first_sw = "1"b; 449 do li = 1 to lang_ct; 450 if (substr (item.in_lang (it), li, 1)) 451 then do; 452 call ioa_ ("^[^s ^a:^; ^vx ^s^] ^a", 453 first_sw, length (tname), tname, 454 fetch (tabl, li, itn, lang)); 455 first_sw = ""b; 456 end; 457 end; 458 end; 459 end show_token; 460 end; 461 end main; 462 return; 463 464 bad_call: 465 call err (code, me, "^a", code_ext); 466 exit: 467 return; 468 /* * * * * * * * * * * * * * * * * * *+* * * * * * * * * * * * * * * * * * * */ 469 /* Given a table, language, element, and display-language, this proc returns */ 470 /* a representation of the words which the combination represents, i.e. */ 471 /* (Day_table, german, Tue, french) gives */ 472 /* Dienstag, Dns, aliases (allemand) */ 473 /* (Month_table, french, Nov, 0) gives */ 474 /* novembre, nov, aliases */ 475 /* In either case, aliases (NYA) are present if any exist */ 476 /* * * * * * * * * * * * * * * * * * *+* * * * * * * * * * * * * * * * * * * */ 477 fetch: proc (table, lang, element, show_lang) returns (char (1024)var); 478 479 dcl (table fixed bin, /* which table to reference */ 480 lang fixed bin, /* which language to show */ 481 element fixed bin, /* which element in table */ 482 show_lang fixed bin /* what language we're speaking */ 483 ) parm; 484 485 dcl result char(1024)var; 486 487 result = ""; 488 goto type (table); 489 490 type (1): /* Day_table */ 491 result = result || d_p -> ti_day.long (lang, element); 492 result = result || ", "; 493 result = result || d_p -> ti_day.short (lang, element); 494 /**** Aliases handled here */ 495 goto finished; 496 497 type (2): /* Language_table */ 498 result = result || l_p -> ti_language.name (lang, element); 499 /**** Aliases handled here */ 500 goto finished; 501 502 type (3): /* Month_table */ 503 result = result || m_p -> ti_month.long (lang, element); 504 result = result || ", "; 505 result = result || m_p -> ti_month.short (lang, element); 506 /**** Aliases handled here */ 507 goto finished; 508 509 type (4): /* Offset_table */ 510 result = result || o_p -> ti_offset.this (lang, element); 511 result = result || " "; 512 result = result || o_p -> ti_offset.singular (lang, element); 513 result = result || ", "; 514 result = result || o_p -> ti_offset.plural (lang, element); 515 result = result || ", "; 516 result = result || o_p -> ti_offset.short (lang, element); 517 /**** Aliases handled here */ 518 goto finished; 519 520 type (5): /* Word_table */ 521 result = result || w_p -> ti_word.word (lang, element); 522 /**** Aliases handled here */ 523 if (w_p -> ti_word.short (lang, element) ^= "") 524 & (w_p -> ti_word.short (lang, element) ^= "?") 525 then do; 526 result = result || ", "; 527 result = result || w_p -> ti_word.short (lang, element); 528 end; 529 goto finished; 530 531 type (6): /* Zone_table */ 532 /* convert Usec to hr */ 533 534 /* value stored is the opposite of */ 535 /* ..that displayed, so negate it */ 536 result = result || char (zn_p -> ti_zone.short (lang, element), 5); 537 result = result || " "; 538 result = result || zone_dif (zn_p -> ti_zone.delta (lang, element)); 539 result = result || " "; 540 result = result || zn_p -> ti_zone.long (lang, element); 541 /**** Aliases handled here */ 542 goto finished; 543 544 zone_dif: proc (td) returns (char (5)); 545 dcl td fixed bin (71); 546 547 dcl time fixed bin (71); 548 dcl 1 result, 549 2 s char (1), 550 2 (HH,MM) pic "99"; 551 552 time = td; 553 s = "-"; /* values stored in table have */ 554 if (time < 0) /* ..opposite sign from the way it */ 555 then do; /* ..is displayed. */ 556 s = "+"; 557 time = -time; 558 end; 559 HH, i = divide (time, 3600000000, 17, 0); 560 time = time - i*3600000000; 561 MM = divide (time, 60000000, 17, 0); 562 return (string (result)); 563 end zone_dif; 564 565 type (7): /* This_table (part of offset table) */ 566 result = result || o_p -> ti_offset.this (lang, element); 567 result = result || " ["; 568 result = result || o_p -> ti_offset.singular (lang, element); 569 result = result || "]"; 570 /**** Aliases handled here */ 571 goto finished; 572 573 finished: 574 if (show_lang > 0) 575 then do; 576 result = result || " ("; 577 result = result || l_p -> ti_language.name (show_lang, lang); 578 result = result || ")"; 579 end; 580 581 return (result); 582 583 end fetch; 584 search: proc (symbol); 585 586 dcl symbol char (*); 587 588 dcl sym char (32); 589 dcl (az init ("abcdefghijklmnopqrstuvwxyz"), 590 AZ init ("ABCDEFGHIJKLMNOPQRSTUVWXYZ")) 591 char (26) int static options (constant); 592 593 sym = translate (symbol, az, AZ); /* get to normal form */ 594 595 lb = 1; /* binary search for it */ 596 hb = ti_token.count; 597 do while (lb <= hb); 598 cur_token = divide (lb + hb, 2, 17, 0); 599 if (ti_token.symbol (cur_token) = sym) 600 then return; /* SUCCESS */ 601 if (ti_token.symbol (cur_token) < sym) 602 then lb = cur_token + 1; 603 else hb = cur_token - 1; 604 end; 605 call com_err_ (0, me, "Token not found in ^a. ^a", 606 rtrim (time_info, "$|"), sym); 607 goto exit; 608 end search; 609 print_time_zones: proc; /* zn_p -> ti_zone (lang,*) */ 610 611 dcl first_hour pic "ss9"; 612 dcl first_minute pic "99"; 613 dcl get_line_length_$switch entry (ptr, fixed bin (35)) returns (fixed bin); 614 dcl hour pic "ss9"; 615 dcl j fixed bin; 616 dcl l fixed bin; 617 dcl last_hour pic "ss9"; 618 dcl line char (132); 619 dcl Lline fixed bin; 620 dcl minute pic "99"; 621 dcl MLline fixed bin; 622 dcl Nzones_per_line fixed bin; 623 dcl Saligned_left bit (1) aligned; 624 dcl template_line char (133) int static options (constant) init ((19)"| "); 625 dcl temp_hour pic "ss9"; 626 dcl zone_str char (48) var; 627 628 call ioa_ ("^/known time zones:"); 629 630 MLline = get_line_length_$switch (null (), code); 631 Nzones_per_line = divide (MLline - 1, 7, 35, 0); 632 Lline = 1 + 7 * Nzones_per_line; 633 element = 1; 634 do while (element <= zone_ct); 635 Saligned_left = "1"b; 636 call hhmm (zn_p -> ti_zone.delta (lang, element), 637 first_hour, first_minute); 638 last_hour = first_hour + Nzones_per_line - 1; 639 if last_hour > 13 640 then do; 641 Nzones_per_line = 13 - first_hour + 1; 642 Lline = 1 + 7 * Nzones_per_line; 643 last_hour = 13; 644 end; 645 hour = first_hour; 646 minute = first_minute; 647 do while (hour <= last_hour); 648 line = substr (template_line, 1, Lline); 649 i = (hour - first_hour) * 7 + 2; 650 j = divide (minute, 10, 1, 0); 651 if hour < 0 652 then if j = 0 653 then ; 654 else i = i - (j + 1); 655 else i = i + j; 656 l = 9 + length (zn_p -> ti_zone.short (lang, element)) 657 + length (zn_p -> ti_zone.long (lang, element)); 658 if Saligned_left 659 then if (i - 1) + l > MLline 660 then if hour > first_hour 661 then do; 662 Saligned_left = "0"b; 663 temp_hour = first_hour; 664 call ioa_ ("^a", line); 665 do j = 2 to Lline by 7 while (temp_hour <= 13); 666 substr (line, j, 6) = temp_hour || ":00"; 667 temp_hour = temp_hour + 1; 668 end; 669 call ioa_ ("^a", line); 670 line = substr (template_line, 1, Lline); 671 if i - l + 4 >= 0 672 then call ioa_ ("^a", line); 673 end; 674 if Saligned_left 675 then do; 676 zone_str = hour; 677 zone_str = zone_str || ":"; 678 zone_str = zone_str || minute; 679 zone_str = zone_str || " "; 680 zone_str = zone_str || zn_p -> ti_zone.short (lang, element); 681 zone_str = zone_str || " "; 682 zone_str = zone_str || zn_p -> ti_zone.long (lang, element); 683 substr (line, i) = zone_str; 684 end; 685 else if i - l + 4 < 0 686 then goto END_LOOP; 687 else do; 688 zone_str = " "; 689 zone_str = zone_str || zn_p -> ti_zone.long (lang, element); 690 zone_str = zone_str || " "; 691 zone_str = zone_str || zn_p -> ti_zone.short (lang, element); 692 zone_str = zone_str || " "; 693 zone_str = zone_str || hour; 694 zone_str = zone_str || ":"; 695 zone_str = zone_str || minute; 696 substr (line, 1, i - l + 4) = ""; 697 substr (line, i - l + 5, l + 1) = zone_str; 698 end; 699 call ioa_ ("^a", line); 700 element = element + 1; 701 if element <= zn_p -> ti_zone.number_zone 702 then call hhmm (zn_p -> ti_zone.delta (lang, element), hour, minute); 703 else hour = 99; 704 end; 705 END_LOOP: 706 if Saligned_left 707 then do; 708 temp_hour = first_hour; 709 line = substr (template_line, 1, Lline); 710 call ioa_ ("^a", line); 711 do j = 2 to Lline by 7 while (temp_hour <= 13); 712 substr (line, j, 6) = temp_hour || ":00"; 713 temp_hour = temp_hour + 1; 714 end; 715 call ioa_ ("^a^/", line); 716 end; 717 else call ioa_ (""); 718 end; 719 return; 720 721 hhmm: proc (delta, hour, minute); 722 723 dcl delta fixed bin (71), 724 hour pic "ss9", 725 minute pic "99"; 726 727 dcl time fixed dec (12), 728 minutes fixed dec (11), 729 hours fixed dec (2); 730 731 time = delta * -1; 732 hours = divide (time, 3600000000, 2, 0); 733 minutes = time - hours * 3600000000; 734 minute = divide (minutes, 60000000, 2, 0); 735 hour = hours; 736 737 end hhmm; 738 end print_time_zones; 739 dcl (v_p, dl_p, dtk_p, l_p, zn_p, m_p, d_p, o_p, w_p) 740 ptr; 741 dcl active_fnc_err_ entry options (variable); 742 dcl arg char (arg_l) based (arg_p); 743 dcl arg_ct fixed bin; 744 dcl arg_l fixed bin (21); 745 dcl arg_no fixed bin; 746 dcl arg_p ptr; 747 dcl ch8 char (8) based; 748 dcl code fixed bin (35); 749 dcl code_ext char (100) var; 750 dcl com_err_ entry () options (variable); 751 dcl command bit (1); 752 dcl cur_token fixed bin; 753 dcl cu_$af_arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 754 dcl cu_$af_return_arg entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 755 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 756 dcl cv_entry_ entry (char(*), ptr, fixed bin(35)) returns(entry); 757 dcl default_lang fixed bin; 758 dcl element fixed bin; 759 dcl err entry () options (variable) automatic; 760 dcl error_table_$bad_arg fixed bin (35) ext static; 761 dcl error_table_$badopt fixed bin (35) ext static; 762 dcl error_table_$noarg fixed bin (35) ext static; 763 dcl error_table_$not_act_fnc fixed bin (35) ext static; 764 dcl error_table_$unimplemented_version fixed bin (35) ext static; 765 dcl fb fixed bin based; 766 dcl first_sw bit (1); 767 dcl get_arg entry (fixed bin, ptr, fixed bin (21), fixed bin (35)) 768 automatic; 769 dcl hb fixed bin; 770 dcl i fixed bin; 771 dcl ioa_ entry () options (variable); 772 dcl it fixed bin; 773 dcl itn fixed bin; 774 dcl lang fixed bin; 775 dcl lang_ct fixed bin; 776 dcl lang_token char (32); 777 dcl lb fixed bin; 778 dcl li fixed bin; 779 dcl litem_p ptr; /* -> item assoc with -lang arg */ 780 dcl me char (17) int static options (constant) 781 init ("display_time_info"); 782 dcl ret_l fixed bin (21); 783 dcl ret_p ptr; 784 dcl tabl fixed bin; 785 dcl time_info char (170) var; 786 dcl tname char (64)var; 787 dcl token_index fixed bin; 788 dcl token_token char (32); 789 dcl v_e entry automatic; 790 dcl zitem_p ptr; /* -> item assoc with -zone arg */ 791 dcl zone_ct fixed bin; 792 dcl zone_token char (32); 793 794 dcl (addr, addrel, char, codeptr, divide, hbound, index, length, null, rtrim, 795 string, substr, translate 796 ) builtin; 797 798 799 dcl 1 sw, 800 2 err bit (1), /* *** ERROR has occurred *** */ 801 2 token bit (1), /* break out all token data (2 ways) */ 802 2 all bit (1), /* show everything */ 803 2 format bit (1), /* named format strings */ 804 2 day bit (1), /* day data */ 805 2 month bit (1), /* month data */ 806 2 offset bit (1), /* offset data */ 807 2 word bit (1), /* word data */ 808 2 zone bit (1), /* zone list (2 ways) */ 809 2 map bit (1), /* world zone map */ 810 2 lang bit (1); /* language data (2 ways) */ 811 1 1 /* BEGIN INCLUDE FILE .... time_info_search.incl.pl1 .... 03/16/83 J Falksen */ 1 2 1 3 /* This include file describes an internal interface mainly used by */ 1 4 /* convert_date_to_binary_ to rapidly search the words in time_info_. */ 1 5 /* ** USER PROGRAMS ARE NOT TO USE THIS TABLE. ** */ 1 6 1 7 dcl time_info_$tokens fixed bin ext static; 1 8 /* reference point for token table */ 1 9 1 10 dcl 1 ti_token based (ti_token_p), 1 11 2 count fixed bin, 1 12 2 ambig bit (1)aligned, /* 1- str does not have same */ 1 13 /* ..meaning in all languages */ 1 14 2 item (0 refer (ti_token.count)), 1 15 3 symbol char (32),/* canonical lowercase form */ 1 16 3 list_r bit (18)aligned; 1 17 /**** list_r is the offset of the item list which goes with symbol. To */ 1 18 /**** build a pointer to the list, use: */ 1 19 /**** addrel (addr (time_info_$version), ti_token.list_r (cur_token)) */ 1 20 1 21 1 22 dcl ti_token_p ptr; /* = addr (time_info_$tokens) */ 1 23 1 24 dcl item_p ptr, 1 25 1 item based (item_p)unal, 1 26 2 count fixed bin aligned, /* >1 => diff mean/diff lang */ 1 27 2 e (0 refer (item.count)), 1 28 3 ambig bit (1), /* 1-same mean/diff lang */ 1 29 3 table fixed bin (7) unsigned, /* what table is this */ 1 30 3 element fixed bin (10) unsigned, /* which element in table */ 1 31 3 in_lang bit (18); /* languages using it */ 1 32 1 33 1 34 /**** Note that this last element places a limit of 18 on the */ 1 35 /**** number of languages which may be defined in the table. */ 1 36 1 37 /* The table name values assigned here are as needed by CDTB */ 1 38 dcl (Day_table init (1), 1 39 Language_table init (2), 1 40 Month_table init (3), 1 41 Offset_table init (4), 1 42 Word_table init (5), 1 43 Zone_table init (6), 1 44 This_table init (7) /* resides in offset table */ 1 45 ) fixed bin int static options (constant); 1 46 1 47 dcl mo_name (12) char (3) int static options (constant) init ( 1 48 "Jan", "Feb", "Mar", "Apr", "May", "Jun", 1 49 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); 1 50 dcl da_name (7) char (3) int static options (constant) init ( 1 51 "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"); 1 52 1 53 dcl the_offset_count fixed bin int static options (constant) init (8); 1 54 dcl of_name (8) char (12) int static options (constant) init ( 1 55 "year", "month", "week", "day", 1 56 "Hour", "Minute", "Second", "Microsecond"); 1 57 1 58 dcl the_word_count fixed bin int static options (constant) init (13); 1 59 dcl wo_name (13) char (12) int static options (constant) init ( 1 60 "Before", "Or", "After", "On", "Noon", "Midnight", "Now", 1 61 "Yesterday", "Today", "Tomorrow", "FiscalWeek", 1 62 "AM", "PM"); 1 63 1 64 1 65 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 66 /* NOTE TO MAINTAINER: Before changing this file, see the comments in */ 1 67 /* time_info_cds.incl.pl1 */ 1 68 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 69 1 70 /* END INCLUDE FILE ..... time_info_search.incl.pl1 ..... */ 812 2 1 /* START OF: time_names_.incl.pl1 * * * * * * * * * * * * * * * * */ 2 2 2 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 4 /* */ 2 5 /* Name: time_names_.incl.pl1 */ 2 6 /* */ 2 7 /* This include file defines the structure of values in the time_table_. The table */ 2 8 /* includes a list of time zones known to the system, as well as lists of month names */ 2 9 /* and names of days of the week. All names are expressed in several different languages */ 2 10 /* to facilitate transliteration of dates into these languages. The table includes */ 2 11 /* the list of languages in which dates may be expressed. */ 2 12 /* */ 2 13 /* Status */ 2 14 /* */ 2 15 /* 0) Created 06/07/78: J. Falksen */ 2 16 /* 1) Modified 07/04/78: G. Dixon */ 2 17 /* */ 2 18 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 19 2 20 2 21 dcl time_info_$version char (8) ext static; /* Version number of all structures in the */ 2 22 /* time_info_. Currently = 1. */ 2 23 dcl Vtime_info_2 char (8) int static options(constant) init("tinfo002"); 2 24 2 25 dcl time_info_$gmt_zone_index fixed bin (17) ext static; 2 26 dcl time_info_$default_language_index fixed bin (17) ext static; 2 27 2 28 dcl time_info_$date_time_keywords fixed bin ext static; /* Table of named date/time format strings */ 2 29 dcl 1 ti_keyword based (addr (time_info_$date_time_keywords)), 2 30 2 number_kwd fixed bin, /* number of keywords present */ 2 31 2 pad fixed bin, 2 32 2 e (0 refer (ti_keyword.number_kwd)), 2 33 3 name char (32), 2 34 3 str char (128)var; 2 35 dcl (site_date init (1), 2 36 site_date_time init (2), 2 37 site_time init (3) 2 38 ) fixed bin int static options (constant); 2 39 2 40 dcl time_info_$language_names fixed bin ext static; /* Table of language names, in various languages */ 2 41 2 42 dcl 1 ti_language based (addr (time_info_$language_names)), 2 43 2 number_lang fixed bin, /* number of language names present */ 2 44 2 pad fixed bin, 2 45 2 name (0 refer (ti_language.number_lang), 0 refer (ti_language.number_lang)) 2 46 char(32) varying; /* Name of the language. */ 2 47 /* All language names are expressed in all languages. name(i,j) gives the */ 2 48 /* jth language name in language i. name(i,i) gives a language name in its */ 2 49 /* own language. */ 2 50 dcl time_info_$month_names fixed bin ext static; /* Table of month names in various languages. */ 2 51 2 52 dcl 1 ti_month based (addr (time_info_$month_names)), 2 53 2 number_lang fixed bin, /* number of languages in the table. */ 2 54 2 pad fixed bin, 2 55 2 e (0 refer (ti_month.number_lang), 12), 2 56 3 short char(8) var, /* short form of a month name, i.e., Nov */ 2 57 3 long char(32) var; /* long form of a month name, i.e. November */ 2 58 dcl time_info_$day_names fixed bin ext static; /* Table of day names in various languages. */ 2 59 2 60 dcl 1 ti_day based (addr (time_info_$day_names)), 2 61 2 number_lang fixed bin, /* number of languages in the table. */ 2 62 2 pad fixed bin, 2 63 2 e (0 refer (ti_day.number_lang), 7), 2 64 3 short char(8) var, /* short for of a day name, i.e. Sat */ 2 65 3 long char(32) var; /* long form of a day name, i.e. Saturday */ 2 66 dcl time_info_$offset_names fixed bin ext static; /* Table of offset names in various languages. */ 2 67 2 68 dcl 1 ti_offset based (addr (time_info_$offset_names)), 2 69 2 number_lang fixed bin, /* number of languages in the table. */ 2 70 2 number_offset fixed bin, 2 71 2 e (0 refer (ti_offset.number_lang), 0 refer (ti_offset.number_offset)), 2 72 3 short char(32) var, /* short form of an offset name, i.e. min */ 2 73 3 plural char(32) var, /* plural form of an offset name, i.e. minutes */ 2 74 3 singular char(32) var, /* singular for of an offset name, i.e. minute */ 2 75 3 this char(32) var; /* "this" which goes with singular */ 2 76 dcl time_info_$word_names fixed bin ext static; /* Table of word names in various languages. */ 2 77 2 78 dcl 1 ti_word based (addr (time_info_$word_names)), 2 79 2 number_lang fixed bin, /* number of languages in the table. */ 2 80 2 number_word fixed bin, 2 81 2 short (0 refer (ti_word.number_lang), 0 refer (ti_word.number_word)) 2 82 char (8) var, 2 83 2 word (0 refer (ti_word.number_lang), 0 refer (ti_word.number_word)) 2 84 char(32) var; /* a "word", i.e. Midnight */ 2 85 2 86 dcl time_info_$zone_names fixed bin ext static; /* Table of known time zones. */ 2 87 2 88 dcl 1 ti_zone based (addr (time_info_$zone_names)), 2 89 2 number_lang fixed bin, /* number of languages in which zone names */ 2 90 /* are defined. */ 2 91 2 number_zone fixed bin, /* number of zone names in the table. */ 2 92 2 e (0 refer (ti_zone.number_lang), 0 refer (ti_zone.number_zone)), 2 93 3 short char(4) var, /* short form of the zone name. */ 2 94 3 long char(64) var, /* long form of the zone name */ 2 95 3 pad fixed bin, 2 96 3 delta fixed bin(71); /* offset, in microseconds, of this time zone */ 2 97 /* from GMT (Greenwich mean time). This value */ 2 98 /* should be subtracted from a clock value */ 2 99 /* (which is expressed in GMT by definition). */ 2 100 /* to obtain a date/time expressed in the */ 2 101 /* named time zone. */ 2 102 /* NOTE: zones are listed in order of descending */ 2 103 /* delta, from +11 to -12. print_time_zones */ 2 104 /* requires this. */ 2 105 2 106 2 107 dcl (tiw_FiscalIndicator init (11) 2 108 ) fixed bin int static options (constant); 2 109 2 110 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 111 /* NOTE TO MAINTAINER: Before changing this file, see the comments in */ 2 112 /* time_info_cds.incl.pl1 */ 2 113 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 114 2 115 /* END OF: time_names_.incl.pl1 * * * * * * * * * * * * * * * * */ 813 3 1 /* BEGIN INCLUDE FILE ..... time_defaults_.incl.pl1 ..... 03/29/83 J Falksen */ 3 2 3 3 3 4 /****^ HISTORY COMMENTS: 3 5* 1) change(86-07-18,GDixon), approve(86-07-25,MCR7495), 3 6* audit(86-07-25,Martinson), install(86-08-19,MR12.0-1120): 3 7* Add declaration for time_defaults_$debug. 3 8* END HISTORY COMMENTS */ 3 9 3 10 3 11 /* This include file defines the values in the time_default_ table. This */ 3 12 /* table declares the name and index (in time_info_) of the user-specified, */ 3 13 /* per-process default time language. Also, the full name, acronym, index */ 3 14 /* and time delta (difference from GMT) of the default time zone. The */ 3 15 /* per-process date_time, date, and time format string are here also. */ 3 16 3 17 /**** date_time_$format control strings */ 3 18 dcl time_defaults_$date_time char (64)var ext static; 3 19 dcl time_defaults_$date char (64)var ext static; 3 20 dcl time_defaults_$time char (64)var ext static; 3 21 3 22 /**** Name of default language in which dates are expressed. */ 3 23 dcl time_defaults_$language char(32) ext static; 3 24 3 25 /**** Value of ti_language_names.index for the default language. */ 3 26 dcl time_defaults_$language_index fixed bin ext static; 3 27 3 28 /**** full name of the default time zone. */ 3 29 dcl time_defaults_$zone_long char(64) var ext static; 3 30 3 31 /**** acronym for default time zone. */ 3 32 dcl time_defaults_$zone_short char(4) var ext static; 3 33 3 34 /**** offset, in microseconds, of default time zone from GMT */ 3 35 dcl time_defaults_$zone_delta fixed bin(71) ext static; 3 36 3 37 /**** index, in time_info_$zone_names, of the default time zone. */ 3 38 dcl time_defaults_$zone_index fixed bin ext static; 3 39 3 40 /**** debug switch controlling debugging within the date/time software. 3 41* Mainly of use in convert_date_to_binary_. */ 3 42 dcl time_defaults_$debug bit(1) aligned ext static; 3 43 3 44 /* END INCLUDE FILE ..... time_defaults_.incl.pl1 ..... */ 814 815 816 end display_time_info; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/16/86 0959.8 display_time_info.pl1 >special_ldd>install>MR12.0-1159>display_time_info.pl1 812 1 09/06/84 0850.2 time_info_search.incl.pl1 >ldd>include>time_info_search.incl.pl1 813 2 09/06/84 0850.2 time_names.incl.pl1 >ldd>include>time_names.incl.pl1 814 3 09/02/86 1552.9 time_defaults_.incl.pl1 >ldd>include>time_defaults_.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. AZ 000051 constant char(26) initial unaligned dcl 589 ref 593 Day_table constant fixed bin(17,0) initial dcl 1-38 set ref 370* 430 HH 0(09) 001016 automatic picture(2) level 2 packed unaligned dcl 548 set ref 559* Language_table constant fixed bin(17,0) initial dcl 1-38 set ref 304 354* 432 Lline 001113 automatic fixed bin(17,0) dcl 619 set ref 632* 642* 648 665 670 709 711 MLline 001115 automatic fixed bin(17,0) dcl 621 set ref 630* 631 658 MM 0(27) 001016 automatic picture(2) level 2 packed unaligned dcl 548 set ref 561* Month_table constant fixed bin(17,0) initial dcl 1-38 set ref 362* 434 Nzones_per_line 001116 automatic fixed bin(17,0) dcl 622 set ref 631* 632 638 641* 642 Offset_table constant fixed bin(17,0) initial dcl 1-38 set ref 378* 436 Saligned_left 001117 automatic bit(1) dcl 623 set ref 635* 658 662* 674 705 This_table constant fixed bin(17,0) initial dcl 1-38 ref 442 Vtime_info_2 000070 constant char(8) initial unaligned dcl 2-23 ref 223 Word_table constant fixed bin(17,0) initial dcl 1-38 set ref 386* 438 Zone_table constant fixed bin(17,0) initial dcl 1-38 set ref 315 402* 440 active_fnc_err_ 000010 constant entry external dcl 741 ref 93 104 addrel builtin function dcl 794 ref 303 314 421 all 0(02) 000357 automatic bit(1) level 2 packed unaligned dcl 799 set ref 119* 340 350 358 366 374 382 392 arg based char unaligned dcl 742 set ref 119 119 121 121 121 124 124 126 126 131 133 140 142 144 146 146 151 153 165 171 173 178 178 180 180 186 188 194 197* arg_ct 000122 automatic fixed bin(17,0) dcl 743 set ref 89* 107 117 128 148 168 183 arg_l 000123 automatic fixed bin(21,0) dcl 744 set ref 118* 119 119 121 121 121 124 124 126 126 130* 131 133 140 142 144 146 146 150* 151 153 165 170* 171 173 178 178 180 180 185* 186 188 194 197 197 arg_no 000124 automatic fixed bin(17,0) dcl 745 set ref 117* 118* 128 130 134* 134 148 150 154* 154 168 170 174* 174 183 185 189* 189* arg_p 000126 automatic pointer dcl 746 set ref 118* 119 119 121 121 121 124 124 126 126 130* 131 133 140 142 144 146 146 150* 151 153 165 170* 171 173 178 178 180 180 185* 186 188 194 197 az 000060 constant char(26) initial unaligned dcl 589 ref 593 ch8 based char(8) unaligned dcl 747 ref 223 char builtin function dcl 794 ref 531 code 000130 automatic fixed bin(35,0) dcl 748 set ref 89* 90 96 109* 118* 130* 150* 170* 185* 194* 196* 197* 216* 217 219* 225* 229* 230 237* 238 240* 244* 245 247* 251* 252 254* 260* 261 263* 267* 268 270* 274* 275 277* 281* 282 284* 288* 289 291* 464* 630* code_ext 000131 automatic varying char(100) dcl 749 set ref 83* 110* 226* 232* 464* codeptr builtin function dcl 794 ref 222 235 243 250 257 266 273 280 287 294 com_err_ 000012 constant entry external dcl 750 ref 100 160 197 204 219 240 247 254 263 270 277 284 291 306 317 445 605 command 000163 automatic bit(1) unaligned dcl 751 set ref 92* 98* 103* count based fixed bin(17,0) level 2 in structure "item" dcl 1-24 in procedure "display_time_info" ref 422 425 count based fixed bin(17,0) level 2 in structure "ti_token" dcl 1-10 in procedure "display_time_info" ref 417 596 cu_$af_arg_ptr 000014 constant entry external dcl 753 ref 94 cu_$af_return_arg 000016 constant entry external dcl 754 ref 89 cu_$arg_ptr 000020 constant entry external dcl 755 ref 99 cur_token 000164 automatic fixed bin(17,0) dcl 752 set ref 298 303 314 419* 421 422* 422* 598* 599 601 601 603 cv_entry_ 000022 constant entry external dcl 756 ref 216 229 237 244 251 260 267 274 281 288 d_p 000114 automatic pointer dcl 739 set ref 273* 430 490 493 day 0(04) 000357 automatic bit(1) level 2 packed unaligned dcl 799 set ref 121* 366 default_lang 000165 automatic fixed bin(17,0) dcl 757 set ref 236* 411 delta parameter fixed bin(71,0) dcl 723 in procedure "hhmm" ref 721 731 delta 26 based fixed bin(71,0) array level 3 in structure "ti_zone" dcl 2-88 in procedure "display_time_info" set ref 538* 636* 701* divide builtin function dcl 794 ref 559 561 598 631 650 732 734 dl_p 000102 automatic pointer dcl 739 set ref 235* 236 dtk_p 000104 automatic pointer dcl 739 set ref 243* 343 344 344 344 344 e 2 based structure array level 2 in structure "ti_month" unaligned dcl 2-52 in procedure "display_time_info" e 2 based structure array level 2 in structure "ti_offset" unaligned dcl 2-68 in procedure "display_time_info" ref 377 e 2 based structure array level 2 in structure "ti_day" unaligned dcl 2-60 in procedure "display_time_info" e 2 based structure array level 2 in structure "ti_keyword" unaligned dcl 2-29 in procedure "display_time_info" e 1 based structure array level 2 in structure "item" packed unaligned dcl 1-24 in procedure "display_time_info" e 2 based structure array level 2 in structure "ti_zone" unaligned dcl 2-88 in procedure "display_time_info" element 000166 automatic fixed bin(17,0) dcl 758 in procedure "display_time_info" set ref 343* 344 344 344 344 344* 353* 354* 354* 361* 362* 362* 369* 370* 370* 377* 378* 378* 385* 386* 386* 401* 402* 402* 633* 634 636 656 656 680 682 689 691 700* 700 701 701 element 1(08) based fixed bin(10,0) array level 3 in structure "item" packed unsigned unaligned dcl 1-24 in procedure "display_time_info" ref 331 394 409 427 element parameter fixed bin(17,0) dcl 479 in procedure "fetch" ref 477 490 493 497 502 505 509 512 514 516 520 523 523 527 531 538 540 565 568 err 000357 automatic bit(1) level 2 in structure "sw" packed unaligned dcl 799 in procedure "display_time_info" set ref 162* 198* 207 241* 248* 255* 264* 271* 278* 285* 292* 308* 319* 323 err 000170 automatic entry variable dcl 759 in procedure "display_time_info" set ref 93* 100* 104* 464 error_table_$bad_arg 000024 external static fixed bin(35,0) dcl 760 ref 194 error_table_$badopt 000026 external static fixed bin(35,0) dcl 761 ref 196 error_table_$noarg 000030 external static fixed bin(35,0) dcl 762 ref 109 error_table_$not_act_fnc 000032 external static fixed bin(35,0) dcl 763 ref 96 error_table_$unimplemented_version 000034 external static fixed bin(35,0) dcl 764 ref 225 fb based fixed bin(17,0) dcl 765 ref 236 first_hour 001044 automatic picture(3) unaligned dcl 611 set ref 636* 638 641 645 649 658 663 708 first_minute 001045 automatic picture(2) unaligned dcl 612 set ref 636* 646 first_sw 000174 automatic bit(1) unaligned dcl 766 set ref 448* 452* 455* format 0(03) 000357 automatic bit(1) level 2 packed unaligned dcl 799 set ref 124* 340 get_arg 000176 automatic entry variable dcl 767 set ref 94* 99* 118 130 150 170 185 get_line_length_$switch 000042 constant entry external dcl 613 ref 630 hb 000202 automatic fixed bin(17,0) dcl 769 set ref 331* 335* 337 394* 398* 401 413* 417* 419 596* 597 598 603* hbound builtin function dcl 794 ref 377 385 hour parameter picture(3) unaligned dcl 723 in procedure "hhmm" set ref 721 735* hour 001046 automatic picture(3) unaligned dcl 614 in procedure "print_time_zones" set ref 645* 647 649 651 658 676 693 701* 703* hours 001155 automatic fixed dec(2,0) dcl 727 set ref 732* 733 735 i 000203 automatic fixed bin(17,0) dcl 770 set ref 559* 560 649* 654* 654 655* 655 658 671 683 685 696 697 in_lang 1(18) based bit(18) array level 3 packed unaligned dcl 1-24 ref 450 index builtin function dcl 794 ref 131 151 171 186 194 ioa_ 000036 constant entry external dcl 771 ref 339 342 344 352 354 360 362 368 370 376 378 384 386 400 402 422 452 628 664 669 671 699 710 715 717 it 000204 automatic fixed bin(17,0) dcl 772 set ref 425* 427 429 445* 450* item based structure level 1 unaligned dcl 1-24 in procedure "display_time_info" item 2 based structure array level 2 in structure "ti_token" unaligned dcl 1-10 in procedure "display_time_info" item_p 000362 automatic pointer dcl 1-24 set ref 303* 304 310 314* 315 321 421* 422 425 427 429 450 itn 000205 automatic fixed bin(17,0) dcl 773 set ref 427* 430 432 434 436 438 440 442 442 452* j 001047 automatic fixed bin(17,0) dcl 615 set ref 650* 651 654 655 665* 666* 711* 712* l 001050 automatic fixed bin(17,0) dcl 616 set ref 656* 658 671 685 696 697 697 l_p 000106 automatic pointer dcl 739 set ref 250* 339 432 497 577 lang 000206 automatic fixed bin(17,0) dcl 774 in procedure "display_time_info" set ref 337* 339 339 354* 362* 370* 378* 386* 402* 409* 411* 430 432 434 436 438 440 442 442 452* 636 656 656 680 682 689 691 701 lang parameter fixed bin(17,0) dcl 479 in procedure "fetch" ref 477 490 493 497 502 505 509 512 514 516 520 523 523 527 531 538 540 565 568 577 lang 0(10) 000357 automatic bit(1) level 2 in structure "sw" packed unaligned dcl 799 in procedure "display_time_info" set ref 136* 138* 350 lang_ct 000207 automatic fixed bin(17,0) dcl 775 set ref 258* 335 353 449 lang_token 000210 automatic char(32) unaligned dcl 776 set ref 83* 133* 300 300* 302* 306* last_hour 001051 automatic picture(3) unaligned dcl 617 set ref 638* 639 643* 647 lb 000220 automatic fixed bin(17,0) dcl 777 set ref 331* 334* 337 394* 397* 401 413* 416* 419 595* 597 598 601* length builtin function dcl 794 ref 344 344 452 452 656 656 li 000221 automatic fixed bin(17,0) dcl 778 set ref 449* 450 452* line 001052 automatic char(132) unaligned dcl 618 set ref 648* 664* 666* 669* 670* 671* 683* 696* 697* 699* 709* 710* 712* 715* list_r 12 based bit(18) array level 3 dcl 1-10 ref 303 314 421 litem_p 000222 automatic pointer dcl 779 set ref 84* 310* 331 331 409 409 long 4 based varying char(64) array level 3 in structure "ti_zone" dcl 2-88 in procedure "display_time_info" ref 540 656 682 689 long 5 based varying char(32) array level 3 in structure "ti_month" dcl 2-52 in procedure "display_time_info" ref 434 502 long 5 based varying char(32) array level 3 in structure "ti_day" dcl 2-60 in procedure "display_time_info" ref 430 490 m_p 000112 automatic pointer dcl 739 set ref 266* 434 502 505 map 0(09) 000357 automatic bit(1) level 2 packed unaligned dcl 799 set ref 140* 390 me 000072 constant char(17) initial unaligned dcl 780 set ref 160* 197* 204* 219* 240* 247* 254* 263* 270* 277* 284* 291* 306* 317* 445* 464* 605* minute parameter picture(2) unaligned dcl 723 in procedure "hhmm" set ref 721 734* minute 001114 automatic picture(2) unaligned dcl 620 in procedure "print_time_zones" set ref 646* 650 678 695 701* minutes 001152 automatic fixed dec(11,0) dcl 727 set ref 733* 734 month 0(05) 000357 automatic bit(1) level 2 packed unaligned dcl 799 set ref 142* 358 name 2 based varying char(32) array level 2 in structure "ti_language" dcl 2-42 in procedure "display_time_info" set ref 339* 432 497 577 name 2 based char(32) array level 3 in structure "ti_keyword" packed unaligned dcl 2-29 in procedure "display_time_info" set ref 344* null builtin function dcl 794 ref 84 216 216 229 229 237 237 244 244 251 251 260 260 267 267 274 274 281 281 288 288 331 394 409 630 630 number_kwd based fixed bin(17,0) level 2 dcl 2-29 ref 343 number_lang based fixed bin(17,0) level 2 in structure "ti_zone" dcl 2-88 in procedure "display_time_info" ref 258 number_lang based fixed bin(17,0) level 2 in structure "ti_language" dcl 2-42 in procedure "display_time_info" ref 339 339 432 432 497 497 577 577 number_lang based fixed bin(17,0) level 2 in structure "ti_word" dcl 2-78 in procedure "display_time_info" ref 385 438 520 number_offset 1 based fixed bin(17,0) level 2 dcl 2-68 ref 377 436 436 442 442 442 442 509 509 512 512 514 514 516 516 565 565 568 568 number_word 1 based fixed bin(17,0) level 2 dcl 2-78 ref 385 385 438 438 438 520 520 520 523 523 523 523 527 527 number_zone 1 based fixed bin(17,0) level 2 dcl 2-88 ref 259 440 440 531 531 538 538 540 540 636 636 656 656 656 656 680 680 682 682 689 689 691 691 701 701 701 o_p 000116 automatic pointer dcl 739 set ref 280* 377 436 442 442 509 512 514 516 565 568 offset 0(06) 000357 automatic bit(1) level 2 packed unaligned dcl 799 set ref 144* 374 plural 13 based varying char(32) array level 3 dcl 2-68 ref 514 result 001016 automatic structure level 1 packed unaligned dcl 548 in procedure "zone_dif" set ref 562 result 000404 automatic varying char(1024) dcl 485 in procedure "fetch" set ref 487* 490* 490 492* 492 493* 493 497* 497 502* 502 504* 504 505* 505 509* 509 511* 511 512* 512 513* 513 514* 514 515* 515 516* 516 520* 520 526* 526 527* 527 531* 531 537* 537 538* 538 539* 539 540* 540 565* 565 567* 567 568* 568 569* 569 576* 576 577* 577 578* 578 581 ret_l 000224 automatic fixed bin(21,0) dcl 782 set ref 89* ret_p 000226 automatic pointer dcl 783 set ref 89* rtrim builtin function dcl 794 ref 605 605 s 001016 automatic char(1) level 2 packed unaligned dcl 548 set ref 553* 556* short 2 based varying char(8) array level 3 in structure "ti_month" dcl 2-52 in procedure "display_time_info" ref 505 short 2 based varying char(4) array level 3 in structure "ti_zone" dcl 2-88 in procedure "display_time_info" ref 440 531 656 680 691 short 2 based varying char(8) array level 2 in structure "ti_word" dcl 2-78 in procedure "display_time_info" ref 523 523 527 short 2 based varying char(32) array level 3 in structure "ti_offset" dcl 2-68 in procedure "display_time_info" ref 516 short 2 based varying char(8) array level 3 in structure "ti_day" dcl 2-60 in procedure "display_time_info" ref 493 show_lang parameter fixed bin(17,0) dcl 479 ref 477 573 577 singular 24 based varying char(32) array level 3 dcl 2-68 ref 436 442 512 568 str 12 based varying char(128) array level 3 dcl 2-29 set ref 344 344 344* string builtin function dcl 794 set ref 82* 201 562 substr builtin function dcl 794 set ref 201 450 648 666* 670 683* 696* 697* 709 712* sw 000357 automatic structure level 1 packed unaligned dcl 799 set ref 82* 201 sym 001026 automatic char(32) unaligned dcl 588 set ref 593* 599 601 605* symbol 2 based char(32) array level 3 in structure "ti_token" packed unaligned dcl 1-10 in procedure "display_time_info" set ref 422* 599 601 symbol parameter char unaligned dcl 586 in procedure "search" ref 584 593 tabl 000230 automatic fixed bin(17,0) dcl 784 set ref 429* 430 432 434 436 438 440 442 445* 452* table 1(01) based fixed bin(7,0) array level 3 in structure "item" packed unsigned unaligned dcl 1-24 in procedure "display_time_info" ref 304 315 429 table parameter fixed bin(17,0) dcl 479 in procedure "fetch" ref 477 488 td parameter fixed bin(71,0) dcl 545 ref 544 552 temp_hour 001120 automatic picture(3) unaligned dcl 625 set ref 663* 665 666 667* 667 708* 711 712 713* 713 template_line 000007 constant char(133) initial unaligned dcl 624 ref 648 670 709 this 35 based varying char(32) array level 3 dcl 2-68 ref 442 509 565 ti_day based structure level 1 unaligned dcl 2-60 ti_keyword based structure level 1 unaligned dcl 2-29 ti_language based structure level 1 unaligned dcl 2-42 ti_month based structure level 1 unaligned dcl 2-52 ti_offset based structure level 1 unaligned dcl 2-68 ti_token based structure level 1 unaligned dcl 1-10 ti_token_p 000360 automatic pointer dcl 1-22 set ref 294* 303 314 417 421 422 596 599 601 ti_word based structure level 1 unaligned dcl 2-78 ti_zone based structure level 1 unaligned dcl 2-88 time 001146 automatic fixed dec(12,0) dcl 727 in procedure "hhmm" set ref 731* 732 733 time 001014 automatic fixed bin(71,0) dcl 547 in procedure "zone_dif" set ref 552* 554 557* 557 559 560* 560 561 time_defaults_$language 000040 external static char(32) unaligned dcl 3-23 ref 300 time_info 000231 automatic varying char(170) dcl 785 set ref 83* 153* 158 211 213* 216 219* 226 229 232 237 240* 244 247* 251 254* 260 263* 267 270* 274 277* 281 284* 288 291* 605 605 tname 000305 automatic varying char(64) dcl 786 set ref 430* 432* 434* 436* 438* 440* 442* 452 452 452* token 0(01) 000357 automatic bit(1) level 2 packed unaligned dcl 799 set ref 167* 201 329 token_index 000326 automatic fixed bin(17,0) dcl 787 set ref 85* 298* 413 413 token_token 000327 automatic char(32) unaligned dcl 788 set ref 83* 173* 295 297* translate builtin function dcl 794 ref 593 v_e 000340 automatic entry variable dcl 789 set ref 216* 222 229* 235 237* 243 244* 250 251* 257 260* 266 267* 273 274* 280 281* 287 288* 294 v_p 000100 automatic pointer dcl 739 set ref 222* 223 303 314 421 w_p 000120 automatic pointer dcl 739 set ref 287* 385 438 520 523 523 527 word based varying char(32) array level 2 in structure "ti_word" dcl 2-78 in procedure "display_time_info" ref 385 438 520 word 0(07) 000357 automatic bit(1) level 2 in structure "sw" packed unaligned dcl 799 in procedure "display_time_info" set ref 178* 382 zitem_p 000344 automatic pointer dcl 790 set ref 84* 321* 394 394 zn_p 000110 automatic pointer dcl 739 set ref 257* 258 259 440 531 538 540 636 656 656 680 682 689 691 701 701 zone 0(08) 000357 automatic bit(1) level 2 packed unaligned dcl 799 set ref 182* 392 zone_ct 000346 automatic fixed bin(17,0) dcl 791 set ref 259* 398 634 zone_str 001121 automatic varying char(48) dcl 626 set ref 676* 677* 677 678* 678 679* 679 680* 680 681* 681 682* 682 683 688* 689* 689 690* 690 691* 691 692* 692 693* 693 694* 694 695* 695 697 zone_token 000347 automatic char(32) unaligned dcl 792 set ref 83* 188* 311 313* 317* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. addr builtin function dcl 794 da_name internal static char(3) initial array unaligned dcl 1-50 mo_name internal static char(3) initial array unaligned dcl 1-47 of_name internal static char(12) initial array unaligned dcl 1-54 site_date internal static fixed bin(17,0) initial dcl 2-35 site_date_time internal static fixed bin(17,0) initial dcl 2-35 site_time internal static fixed bin(17,0) initial dcl 2-35 the_offset_count internal static fixed bin(17,0) initial dcl 1-53 the_word_count internal static fixed bin(17,0) initial dcl 1-58 time_defaults_$date external static varying char(64) dcl 3-19 time_defaults_$date_time external static varying char(64) dcl 3-18 time_defaults_$debug external static bit(1) dcl 3-42 time_defaults_$language_index external static fixed bin(17,0) dcl 3-26 time_defaults_$time external static varying char(64) dcl 3-20 time_defaults_$zone_delta external static fixed bin(71,0) dcl 3-35 time_defaults_$zone_index external static fixed bin(17,0) dcl 3-38 time_defaults_$zone_long external static varying char(64) dcl 3-29 time_defaults_$zone_short external static varying char(4) dcl 3-32 time_info_$date_time_keywords external static fixed bin(17,0) dcl 2-28 time_info_$day_names external static fixed bin(17,0) dcl 2-58 time_info_$default_language_index external static fixed bin(17,0) dcl 2-26 time_info_$gmt_zone_index external static fixed bin(17,0) dcl 2-25 time_info_$language_names external static fixed bin(17,0) dcl 2-40 time_info_$month_names external static fixed bin(17,0) dcl 2-50 time_info_$offset_names external static fixed bin(17,0) dcl 2-66 time_info_$tokens external static fixed bin(17,0) dcl 1-7 time_info_$version external static char(8) unaligned dcl 2-21 time_info_$word_names external static fixed bin(17,0) dcl 2-76 time_info_$zone_names external static fixed bin(17,0) dcl 2-86 tiw_FiscalIndicator internal static fixed bin(17,0) initial dcl 2-107 wo_name internal static char(12) initial array unaligned dcl 1-59 NAMES DECLARED BY EXPLICIT CONTEXT. END_LOOP 006770 constant label dcl 705 ref 685 bad_call 004601 constant label dcl 464 ref 105 112 227 233 display 003221 constant label dcl 337 display_time_info 000547 constant entry external dcl 12 dsti 000556 constant entry external dcl 12 exit 004627 constant label dcl 466 ref 607 fetch 004630 constant entry internal dcl 477 ref 354 362 370 378 386 402 452 finished 005452 constant label dcl 573 ref 495 500 507 518 529 542 571 hhmm 007122 constant entry internal dcl 721 ref 636 701 main 003177 constant label dcl 326 no_table 001164 constant label dcl 160 ref 151 print_time_zones 005750 constant entry internal dcl 609 ref 390 search 005610 constant entry internal dcl 584 ref 297 302 313 show_token 004077 constant label dcl 419 type 000000 constant label array(7) dcl 490 ref 488 zone_dif 005533 constant entry internal dcl 544 ref 538 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 10164 10230 7770 10174 Length 10536 7770 44 271 174 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME display_time_info 1099 external procedure is an external procedure. begin block on line 326 begin block shares stack frame of external procedure display_time_info. fetch internal procedure shares stack frame of external procedure display_time_info. zone_dif internal procedure shares stack frame of external procedure display_time_info. search internal procedure shares stack frame of external procedure display_time_info. print_time_zones internal procedure shares stack frame of external procedure display_time_info. hhmm internal procedure shares stack frame of external procedure display_time_info. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME display_time_info 000100 v_p display_time_info 000102 dl_p display_time_info 000104 dtk_p display_time_info 000106 l_p display_time_info 000110 zn_p display_time_info 000112 m_p display_time_info 000114 d_p display_time_info 000116 o_p display_time_info 000120 w_p display_time_info 000122 arg_ct display_time_info 000123 arg_l display_time_info 000124 arg_no display_time_info 000126 arg_p display_time_info 000130 code display_time_info 000131 code_ext display_time_info 000163 command display_time_info 000164 cur_token display_time_info 000165 default_lang display_time_info 000166 element display_time_info 000170 err display_time_info 000174 first_sw display_time_info 000176 get_arg display_time_info 000202 hb display_time_info 000203 i display_time_info 000204 it display_time_info 000205 itn display_time_info 000206 lang display_time_info 000207 lang_ct display_time_info 000210 lang_token display_time_info 000220 lb display_time_info 000221 li display_time_info 000222 litem_p display_time_info 000224 ret_l display_time_info 000226 ret_p display_time_info 000230 tabl display_time_info 000231 time_info display_time_info 000305 tname display_time_info 000326 token_index display_time_info 000327 token_token display_time_info 000340 v_e display_time_info 000344 zitem_p display_time_info 000346 zone_ct display_time_info 000347 zone_token display_time_info 000357 sw display_time_info 000360 ti_token_p display_time_info 000362 item_p display_time_info 000404 result fetch 001014 time zone_dif 001016 result zone_dif 001026 sym search 001044 first_hour print_time_zones 001045 first_minute print_time_zones 001046 hour print_time_zones 001047 j print_time_zones 001050 l print_time_zones 001051 last_hour print_time_zones 001052 line print_time_zones 001113 Lline print_time_zones 001114 minute print_time_zones 001115 MLline print_time_zones 001116 Nzones_per_line print_time_zones 001117 Saligned_left print_time_zones 001120 temp_hour print_time_zones 001121 zone_str print_time_zones 001146 time hhmm 001152 minutes hhmm 001155 hours hhmm THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_e_as alloc_char_temp cat_realloc_chars call_ent_var_desc call_ent_var call_ext_out_desc call_ext_out return_mac mpfx2 shorten_stack ext_entry unpack_picture divide_fx3 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ com_err_ cu_$af_arg_ptr cu_$af_return_arg cu_$arg_ptr cv_entry_ get_line_length_$switch ioa_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$badopt error_table_$noarg error_table_$not_act_fnc error_table_$unimplemented_version time_defaults_$language LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 12 000546 82 000563 83 000565 84 000600 85 000603 89 000604 90 000620 92 000622 93 000623 94 000630 95 000633 96 000634 98 000637 99 000641 100 000645 101 000650 103 000651 104 000652 105 000656 107 000657 109 000661 110 000663 112 000670 117 000671 118 000677 119 000713 121 000730 124 000747 126 000762 128 000772 130 000775 131 001013 133 001027 134 001032 135 001033 136 001034 137 001036 138 001037 139 001041 140 001042 142 001051 144 001060 146 001067 148 001077 150 001102 151 001120 153 001134 154 001155 158 001157 160 001164 162 001211 164 001213 165 001214 167 001220 168 001222 170 001225 171 001243 173 001257 174 001262 177 001263 178 001264 180 001277 182 001307 183 001311 185 001314 186 001332 188 001346 189 001351 192 001352 194 001353 196 001371 197 001374 198 001425 200 001427 201 001431 204 001437 205 001464 207 001465 211 001470 213 001475 216 001502 217 001547 219 001552 220 001604 222 001605 223 001607 225 001613 226 001616 227 001637 229 001641 230 001706 232 001711 233 001732 235 001734 236 001736 237 001740 238 002005 240 002010 241 002043 243 002045 244 002047 245 002114 247 002117 248 002150 250 002152 251 002154 252 002221 254 002224 255 002256 257 002260 258 002262 259 002264 260 002266 261 002333 263 002336 264 002367 266 002371 267 002373 268 002440 270 002443 271 002474 273 002476 274 002500 275 002545 277 002550 278 002601 280 002603 281 002605 282 002652 284 002655 285 002707 287 002711 288 002713 289 002760 291 002763 292 003012 294 003014 295 003016 297 003022 298 003025 300 003027 302 003040 303 003043 304 003052 306 003057 308 003110 310 003112 311 003114 313 003120 314 003123 315 003132 317 003137 319 003170 321 003172 323 003174 329 003177 331 003202 334 003215 335 003217 337 003221 339 003227 340 003262 342 003265 343 003304 344 003313 348 003364 350 003366 352 003374 353 003411 354 003421 356 003447 358 003451 360 003454 361 003470 362 003475 364 003523 366 003525 368 003530 369 003547 370 003555 372 003603 374 003605 376 003610 377 003624 378 003635 380 003663 382 003665 384 003670 385 003705 386 003715 388 003743 390 003745 392 003751 394 003754 397 003767 398 003771 400 003773 401 004007 402 004017 404 004045 406 004047 407 004051 409 004052 411 004064 413 004066 416 004073 417 004075 419 004077 421 004105 422 004113 425 004152 427 004161 429 004165 430 004172 432 004213 434 004237 436 004260 438 004304 440 004336 442 004362 445 004446 448 004503 449 004505 450 004515 452 004527 455 004570 457 004572 458 004574 459 004576 462 004600 464 004601 466 004627 477 004630 487 004632 488 004633 490 004635 492 004660 493 004672 495 004706 497 004707 500 004735 502 004736 504 004761 505 004773 507 005007 509 005010 511 005036 512 005045 513 005060 514 005072 515 005105 516 005117 518 005132 520 005133 523 005170 526 005212 527 005225 529 005237 531 005240 537 005273 538 005302 539 005325 540 005337 542 005366 565 005367 567 005415 568 005427 569 005442 571 005451 573 005452 576 005455 577 005467 578 005515 581 005524 544 005533 552 005535 553 005537 554 005541 556 005543 557 005545 559 005547 560 005563 561 005567 562 005602 584 005610 593 005621 595 005633 596 005636 597 005640 598 005643 599 005646 601 005657 603 005664 604 005667 605 005670 607 005746 609 005750 628 005751 630 005770 631 006005 632 006011 633 006014 634 006016 635 006021 636 006023 638 006047 639 006072 641 006102 642 006115 643 006121 645 006126 646 006131 647 006134 648 006150 649 006154 650 006177 651 006212 654 006221 655 006226 656 006230 658 006247 662 006262 663 006263 664 006266 665 006305 666 006325 667 006336 668 006352 669 006355 670 006374 671 006400 674 006423 676 006425 677 006432 678 006441 679 006453 680 006465 681 006513 682 006522 683 006535 684 006547 685 006550 688 006554 689 006560 690 006606 691 006615 692 006630 693 006642 694 006654 695 006663 696 006675 697 006704 699 006713 700 006732 701 006733 703 006763 704 006767 705 006770 708 006772 709 006775 710 007001 711 007020 712 007037 713 007050 714 007064 715 007067 716 007106 717 007107 718 007120 719 007121 721 007122 731 007124 732 007133 733 007137 734 007147 735 007161 737 007166 ----------------------------------------------------------- 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