COMPILATION LISTING OF SEGMENT !BBBJZjXlHWNpZB Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 1033.9 mst Sat Options: table map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 6* * * 7* *********************************************************** */ 8 9 /**** format: ind3,ll80,initcol6,indattr,^inddcls,dclind4,idind16 */ 10 /**** format: struclvlind2,^ifthenstmt,^ifthendo,^ifthen,^indnoniterdo */ 11 /**** format: ^inditerdo,^indnoniterend,^indthenelse,case,^indproc,^indend */ 12 /**** format: ^delnl,^insnl,comcol41,^indcom,^indblkcom,linecom,^indcomtxt */ 13 14 /* * * * * * * * * * * * * * * * * * * */ 15 /* */ 16 /* Name: time_info_ */ 17 /* */ 18 /* Table of values used in converting date/time character strings to or */ 19 /* from Multics standard clock values. Use time_names.incl.pl1 to */ 20 /* reference data values. */ 21 /* */ 22 /* */ 23 /* Entry: time_info_$version */ 24 /* */ 25 /* Version number of the structures in the time_info_. */ 26 /* */ 27 /* */ 28 /* Entry: time_info_$language_names */ 29 /* */ 30 /* Names of languages in which day names, month names and time zones can be */ 31 /* expressed. Each language is present in each language. */ 32 /* */ 33 /* */ 34 /* Entry: time_info_$zone_names */ 35 /* */ 36 /* Table of time zones in each of the languages. */ 37 /* */ 38 /* */ 39 /* Entry: time_info_$month_names */ 40 /* */ 41 /* Table of month names in each of the languages. */ 42 /* */ 43 /* */ 44 /* Entry: time_info_$day_names */ 45 /* */ 46 /* Table of day names in each of the languages. */ 47 /* */ 48 /* */ 49 /* Note */ 50 /* */ 51 /* A Multics standard clock value is a number of microseconds relative */ 52 /* to January 1, 1901 0000.0 GMT. */ 53 54 /* Status */ 55 /* 0) Created: 1983-02-09 JFalksen- */ 56 /* 1) Updated: 1984-11-18 jaf */ 57 /* Added Australian zones, filled in Spanish. */ 58 59 60 /* HISTORY COMMENTS: 61* 1) change(86-08-14,GDixon), approve(86-09-04,MCR7532), 62* audit(86-09-05,Martinson), install(86-09-16,MR12.0-1159): 63* Rename zone AHST (Alaska-Hawaii Standard Time) to HST (Hawaiian Standard 64* Time, GMT-10), according to ANSI Standard X3.51-1975. Add HDT 65* (Hawaiian Daylight Time, GMT-9) and YDT (Yukon Daylight Time, GMT-8) 66* according to this standard. (phx18898) 67* Add NDT (Newfoundland Daylight Time, GMT-2.5). (phx19658) 68* Correct spelling, capitalization and accents (by removing them) in French 69* language words. (Compliments of Bruno Mannoni, phx20440) 70* Replace zone NZT by NZST (New Zealand Standard Time, GMT+12) and add 71* zone NZDT (New Zealand Daylight Time, GMT+13). (phx18881) 72* 2) change(87-04-09,Lippard), approve(86-11-24,MCR7576), 73* audit(87-05-18,Dickson), install(87-07-17,MR12.1-1043): 74* Delete inclusion of time_zones_. 75* END HISTORY COMMENTS */ 76 77 78 79 /* Modified 07/09/86 by Bruno Mannoni to correct the French names */ 80 /* ************************************************************************* */ 81 /* ************************************************************************* */ 82 /* ** ** */ 83 /* ** Debugging trace: While working on a table, it may be helpful to see ** */ 84 /* ** what is going on. For this purpose there is a debugging switch ** */ 85 /* ** to be set before running a COMPILED version of this procedure, ** */ 86 /* ** i.e. execution via cds doesn't hack it. ** */ 87 /* ** execute like this: time_info_$dbn;time_info_;time_info_$dbf ** */ 88 /* ** ** */ 89 /* ************************************************************************* */ 90 /* ************************************************************************* */ 91 time_info_: ti_: proc; 92 93 dcl (the_language_count init (4), /* how many languages in the table */ 94 the_zone_count init (48), /* how many zones in the table */ 95 the_keyword_count init (16), /* how many keywords in the table */ 96 /* includes 3 generated in setup */ 97 98 english init (1), /* define a set of named languages, */ 99 french init (2), /* ..beginning at 1 */ 100 german init (3), 101 spanish init (4), 102 103 Default_Language init (1), /* site default language */ 104 105 Fill_From init (1) /* which language supplies defaults */ 106 /* for unspecified zones. */ 107 ) int static options (constant); 108 109 call setup; 110 111 /**** The 3 keywords "date_time", "date", and "time" cannot be specified */ 112 /**** here. They are dynamic quantities, while the ones here are static. */ 113 /**** These end up in read-only memory. */ 114 115 call set_format ( /* everything but the kitchen sink */ 116 "all", "^9999yc-^my-^dm ^Hd:^MH:^99.(6)9UM^zd ^za ^da ^fi" 117 || "^(6)9fw ^ma dy^dy dc^dc Uc^Uc"); 118 call set_format ( 119 "calendar_clock", "^9999yc-^my-^dm__^Hd:^MH:^99.(6)9UM_^za_^da"); 120 call set_format ( 121 "clock", "^9999yc-^my-^dm ^Hd:^MH:^99.(6)9UM ^za ^da"); 122 call set_format ( 123 "iso_date", "^9999yc-^my-^dm"); 124 call set_format ( 125 "iso_date_time", "^9999yc-^my-^dm ^Hd:^MH:^SM ^za"); 126 call set_format ( 127 "iso_long_date", "^9999yc-^my-^dm ^da"); 128 call set_format ( 129 "iso_long_date_time", "^9999yc-^my-^dm ^Hd:^MH:^99.(6)9UM ^za"); 130 call set_format ( 131 "iso_long_time", "^Hd:^MH:^99.(6)9UM"); 132 call set_format ( 133 "iso_time", "^Hd:^MH:^SM"); 134 call set_format ( 135 "system_date", "^my/^dm/^yc"); 136 call set_format ( 137 "system_date_time", "^my/^dm/^yc ^Hd^99v.9MH ^xxxxza^xxxda"); 138 call set_format ( 139 "system_time", "^Hd:^MH"); 140 call set_format ( 141 "request_id", "^yc^my^dm^Hd^MH^99.(6)9UM"); 142 143 /* +-+ +-+ +-+ +-+ +-+ +-+ english language values +-+ +-+ +-+ +-+ +-+ +-+ */ 144 145 call set_language (english, english, "english"); 146 call set_language (english, french, "french"); 147 call set_language (english, german, "german"); 148 call set_language (english, spanish, "spanish"); 149 150 151 call set_month_name (english, Jan, "Jan", "January"); 152 call set_month_name (english, Feb, "Feb", "February"); 153 call set_month_name (english, Mar, "Mar", "March"); 154 call set_month_name (english, Apr, "Apr", "April"); 155 call set_month_name (english, May, "May", "May"); 156 call set_month_name (english, Jun, "Jun", "June"); 157 call set_month_name (english, Jul, "Jul", "July"); 158 call set_month_name (english, Aug, "Aug", "August"); 159 call set_month_name (english, Sep, "Sep", "September"); 160 call set_month_name (english, Oct, "Oct", "October"); 161 call set_month_name (english, Nov, "Nov", "November"); 162 call set_month_name (english, Dec, "Dec", "December"); 163 164 call set_day_name (english, Mon, "Mon", "Monday"); 165 call set_day_name (english, Tue, "Tue", "Tuesday"); 166 call set_day_name (english, Wed, "Wed", "Wednesday"); 167 call set_day_name (english, Thu, "Thu", "Thursday"); 168 call set_day_name (english, Fri, "Fri", "Friday"); 169 call set_day_name (english, Sat, "Sat", "Saturday"); 170 call set_day_name (english, Sun, "Sun", "Sunday"); 171 172 call set_offset (english, Year, "yr", "years", "year", "this"); 173 call set_offset (english, Month, "mo", "months", "month", "this"); 174 call set_offset (english, Week, "wk", "weeks", "week", "this"); 175 call set_offset (english, Day, "da", "days", "day", "this"); 176 call set_offset (english, Hour, "hr", "hours", "hour", "this"); 177 call set_offset (english, Minute, "min", "minutes", "minute", "this"); 178 call set_offset (english, Second, "sec", "seconds", "second", "this"); 179 call set_offset (english, Microsecond, "usec", "microseconds", 180 "microsecond", "this"); 181 182 call set_word (english, Before, "before", "?"); 183 call set_word (english, On, "on", "?"); 184 call set_word (english, After, "after", "?"); 185 call set_word (english, Or, "or", "?"); 186 call set_word (english, Noon, "noon", "n"); 187 call set_word (english, Midnight, "midnight", "m"); 188 call set_word (english, Now, "now", "?"); 189 call set_word (english, Today, "today", "?"); 190 call set_word (english, Yesterday, "yesterday", "?"); 191 call set_word (english, Tomorrow, "tomorrow", "?"); 192 call set_word (english, FiscalWeek, "FW", "?"); 193 194 call set_zone (english, "ut ", "ut ", 0, "Universal Time"); 195 call set_zone (english, "z ", "z ", 0, "Universal Time"); 196 call set_zone (english, "gmt ", "gmt ", 0, "Greenwich Mean Time"); 197 call set_zone (english, "wat ", "wat ", -1, "West Africa Time"); 198 call set_zone (english, "at ", "at ", -2, "Azores Time"); 199 call set_zone (english, "gst ", "gst ", -3, "Greenland Standard Time"); 200 call set_zone (english, "adt ", "adt ", -3, "Atlantic Daylight Time"); 201 call set_zone (english, "nst ", "nst ", -3.5, 202 "Newfoundland Standard Time"); 203 call set_zone (english, "ndt ", "ndt ", -2.5, 204 "Newfoundland Daylight Time"); 205 call set_zone (english, "ast ", "ast ", -4, "Atlantic Standard Time"); 206 call set_zone (english, "edt ", "edt ", -4, "Eastern Daylight Time"); 207 call set_zone (english, "est ", "est ", -5, "Eastern Standard Time"); 208 call set_zone (english, "cdt ", "cdt ", -5, "Central Daylight Time"); 209 call set_zone (english, "cst ", "cst ", -6, "Central Standard Time"); 210 call set_zone (english, "mdt ", "mdt ", -6, "Mountain Daylight Time"); 211 call set_zone (english, "mst ", "mst ", -7, "Mountain Standard Time"); 212 call set_zone (english, "pdt ", "pdt ", -7, "Pacific Daylight Time"); 213 call set_zone (english, "pst ", "pst ", -8, "Pacific Standard Time"); 214 call set_zone (english, "ydt ", "ydt ", -8, "Yukon Daylight Time"); 215 call set_zone (english, "yst ", "yst ", -9, "Yukon Standard Time"); 216 call set_zone (english, "hdt ", "hdt ", -9, "Hawaiian Daylight Time"); 217 call set_zone (english, "hst ", "hst ",-10, "Hawaiian Standard Time"); 218 /**** l set_zone (english, "bst ", "bst ",-11, "Bering Standard Time"); */ 219 call set_zone (english, "nt ", "nt ",-11, "Nome Time"); 220 call set_zone (english, "cet ", "cet ", +1, "Central European Time"); 221 call set_zone (english, "met ", "met ", +1, "Middle Europe Time"); 222 call set_zone (english, "mewt", "mewt", +1, "Middle Europe Winter Time"); 223 call set_zone (english, "bst ", "bst ", +1, "British Summer Time"); 224 call set_zone (english, "swt ", "swt ", +1, "Swedish Winter Time"); 225 call set_zone (english, "fwt ", "fwt ", +1, "French Winter Time"); 226 call set_zone (english, "mest", "mest", +2, "Middle Europe Summer Time"); 227 call set_zone (english, "eet ", "eet ", +2, "Eastern European Time"); 228 call set_zone (english, "sst ", "sst ", +2, "Swedish Summer Time"); 229 call set_zone (english, "fst ", "fst ", +2, "French Summer Time"); 230 call set_zone (english, "bt ", "bt ", +3, "Baghdad Time"); 231 call set_zone (english, "ist ", "ist ", +5.5, "Indian Standard Time"); 232 /**** l set_zone (english, "sst ", "sst ", +7, "South Sumatra Time"); */ 233 call set_zone (english, "wast", "wast", +7, 234 "West Australian Standard Time"); 235 call set_zone (english, "jt ", "jt ", +7.5, "Java Time"); 236 call set_zone (english, "wadt", "wadt", +8, 237 "West Australian Daylight Time"); 238 call set_zone (english, "cct ", "cct ", +8, "China Coast Time"); 239 call set_zone (english, "jst ", "jst ", +9, "Japan Standard Time"); 240 call set_zone (english, "cast", "cast", +9.5, 241 "Central Australian Standard Time"); 242 call set_zone (english, "sast", "sast", +9.5, 243 "South Australian Standard Time"); 244 call set_zone (english, "cadt", "cadt", +10.5, 245 "Central Australian Daylight Time"); 246 call set_zone (english, "sadt", "sadt", +10.5, 247 "South Australian Daylight Time"); 248 call set_zone (english, "east", "east", +10, 249 "East Australian Standard Time"); 250 call set_zone (english, "eadt", "eadt", +11, 251 "East Australian Daylight Time"); 252 call set_zone (english, "nzst", "nzst", +12, "New Zealand Standard Time"); 253 call set_zone (english, "nzdt", "nzdt", +13, "New Zealand Daylight Time"); 254 255 /* +-+ +-+ +-+ +-+ +-+ +-+ french language values +-+ +-+ +-+ +-+ +-+ +-+ */ 256 /* */ 257 /* The national character usage from here on down is taken from */ 258 /* REFERENCE CHART ISO CODE AND ASSOCIATED RELATIONSHIPS */ 259 /* The Honeywell Computer Journal, 1971, Vol. 5, No. 3 */ 260 261 call set_language (french, english, "anglais"); 262 call set_language (french, french, "francais"); 263 call set_language (french, german, "allemand"); 264 call set_language (french, spanish, "espagnol"); 265 266 call set_month_name (french, Jan, "jan", "Janvier"); 267 call set_month_name (french, Feb, "fev", "Fevrier"); 268 call set_month_name (french, Mar, "mars", "Mars"); 269 call set_month_name (french, Apr, "avr", "Avril"); 270 call set_month_name (french, May, "mai", "Mai"); 271 call set_month_name (french, Jun, "juin", "Juin"); 272 call set_month_name (french, Jul, "jul", "Juillet"); 273 call set_month_name (french, Aug, "aout", "Aout"); 274 call set_month_name (french, Sep, "sep", "Septembre"); 275 call set_month_name (french, Oct, "oct", "Octobre"); 276 call set_month_name (french, Nov, "nov", "Novembre"); 277 call set_month_name (french, Dec, "dec", "Decembre"); 278 279 call set_day_name (french, Mon, "lun", "Lundi"); 280 call set_day_name (french, Tue, "mar", "Mardi"); 281 call set_day_name (french, Wed, "mer", "Mercredi"); 282 call set_day_name (french, Thu, "jeu", "Jeudi"); 283 call set_day_name (french, Fri, "ven", "Vendredi"); 284 call set_day_name (french, Sat, "sam", "Samedi"); 285 call set_day_name (french, Sun, "dim", "Dimanche"); 286 287 call set_offset (french, Year, "an", "annees", "annee", "cette"); 288 call set_offset (french, Month, "m", "mois", "mois", "ce"); 289 call set_offset (french, Week, "sem", "semaines", "semaine", "cette"); 290 call set_offset (french, Day, "j", "jours", "jour", "ce"); 291 call set_offset (french, Hour, "hr", "heures", "heure", "cette"); 292 call set_offset (french, Minute, "min", "minutes", "minute", "cette"); 293 call set_offset (french, Second, "sec", "secondes", "seconde", "cette"); 294 call set_offset (french, Microsecond, "usec", "microsecondes", 295 "microseconde", "cette"); 296 297 call set_word (french, Before, "avant", "?"); 298 call set_word (french, On, "sur", "?"); 299 call set_word (french, After, "apres", "?"); 300 call set_word (french, Or, "ou", "?"); 301 call set_word (french, Noon, "midi", "?"); 302 call set_word (french, Midnight, "minuit", "?"); 303 call set_word (french, Now, "maintenant", "?"); 304 call set_word (french, Today, "aujourd'hui", "?"); 305 call set_word (french, Yesterday, "hier", "?"); 306 call set_word (french, Tomorrow, "demain", "?"); 307 call set_word (french, FiscalWeek, "SF", "?"); 308 309 call set_zone (french, "ut ", "tu ", 0, "Temps Universel"); 310 call set_zone (french, "fwt ", "hfh ", +1, "Heure Francaise d'Hiver"); 311 call set_zone (french, "fst ", "hfe ", +2, "Heure Francaise d'Ete"); 312 313 314 /* +-+ +-+ +-+ +-+ +-+ +-+ german language values +-+ +-+ +-+ +-+ +-+ +-+ */ 315 316 call set_language (german, english, "englisch"); 317 call set_language (german, french, "franzosisch"); 318 call set_language (german, german, "deutsch"); 319 call set_language (german, spanish, "spanisch"); 320 321 322 call set_month_name (german, Jan, "Jan", "Januar"); 323 call set_month_name (german, Feb, "Feb", "Februar"); 324 call set_month_name (german, Mar, "Mrz", "M{rz"); 325 call set_month_name (german, Apr, "Apr", "April"); 326 call set_month_name (german, May, "Mai", "Mai"); 327 call set_month_name (german, Jun, "Jun", "Juni"); 328 call set_month_name (german, Jul, "Jul", "Juli"); 329 call set_month_name (german, Aug, "Aug", "August"); 330 call set_month_name (german, Sep, "Sep", "September"); 331 call set_month_name (german, Oct, "Okt", "Oktober"); 332 call set_month_name (german, Nov, "Nov", "November"); 333 call set_month_name (german, Dec, "Dez", "Dezember"); 334 335 call set_day_name (german, Mon, "Mo", "Montag"); 336 call set_day_name (german, Tue, "Di", "Dienstag"); 337 call set_day_name (german, Wed, "Mi", "Mittwoch"); 338 call set_day_name (german, Thu, "Do", "Donnerstag"); 339 call set_day_name (german, Fri, "Fr", "Freitag"); 340 call set_day_name (german, Sat, "Sa", "Samstag"); 341 call set_day_name (german, Sun, "So", "Sonntag"); 342 343 call set_offset (german, Year, "J", "Jahre", "Jahr", "dieses"); 344 call set_offset (german, Month, "Mt", "Monaten", "Monat", "dieser"); 345 call set_offset (german, Week, "Wo", "Wochen", "Woche", "diese"); 346 call set_offset (german, Day, "T", "Tage", "Tag", "dieser"); 347 call set_offset (german, Hour, "St", "Stunden", "Stunde", "diese"); 348 call set_offset (german, Minute,"Min", "Minuten", "Minute", "diese"); 349 call set_offset (german, Second,"Sek", "Sekunden","Sekunde","diese"); 350 call set_offset (german, Microsecond, "Usek", "Mikrosekunden", 351 "Mikrosekunde", "diese"); 352 353 call set_word (german, Before, "vor", "?"); 354 call set_word (german, Or, "oder", "?"); 355 call set_word (german, After, "nach", "?"); 356 call set_word (german, On, "am", "?"); 357 call set_word (german, Noon, "mittag", "?"); 358 call set_word (german, Midnight, "mitternacht", "?"); 359 call set_word (german, Now, "jetzt", "?"); 360 call set_word (german, Today, "heute", "?"); 361 call set_word (german, Yesterday, "gestern", "?"); 362 call set_word (german, Tomorrow, "morgen", "?"); 363 call set_word (german, FiscalWeek, "FW", "?"); 364 365 call set_zone (german, "nst ", "nst ", -3.5, "Neufundlandzeit"); 366 call set_zone (german, "gst ", "gst ", -3, "Groenlandzeit"); 367 call set_zone (german, "cet ", "cet ", +1, "Central European Time"); 368 call set_zone (german, "met ", "mez ", +1, "Mitteleuropaeische Zeit"); 369 call set_zone (german, "mewt", "mewz", +1, "Mitteleuropaeische Winterzeit"); 370 call set_zone (german, "swt ", "swt ", +1, "Schwedische Winterzeit"); 371 call set_zone (german, "fwt ", "fwt ", +1, "Franzoesische Winterzeit"); 372 call set_zone (german, "mest", "mesz", +2, "Mitteleuropaeische Sommerzeit"); 373 call set_zone (german, "eet ", "eet ", +2, "Osteuropaeische Zeit"); 374 call set_zone (german, "sst ", "sst ", +2, "Schwedische Sommerzeit"); 375 call set_zone (german, "fst ", "fst ", +2, "Franzoesische Sommerzeit"); 376 call set_zone (german, "ist ", "ist ",+5.5, "Indische Standardzeit"); 377 call set_zone (german, "jt ", "jt ",+7.5,"Javazeit"); 378 call set_zone (german, "cct ", "cct ", +8, "Chinsische Kuerstenzeit"); 379 call set_zone (german, "jst ", "jst ", +9, "Japanische Standardzeit"); 380 call set_zone (german, "sast", "sast", +9.5, 381 "Suedaustralische Standardzeit"); 382 call set_zone (german, "nzst", "nzst", +12,"Neuzeeland Standardzeit"); 383 384 385 /* +-+ +-+ +-+ +-+ +-+ +-+ spanish language values +-+ +-+ +-+ +-+ +-+ +-+ */ 386 387 call set_language (spanish, english, "ingles"); 388 call set_language (spanish, french, "frances"); 389 call set_language (spanish, german, "aleman"); 390 call set_language (spanish, spanish, "espa|ol"); 391 392 393 call set_month_name (spanish, Jan, "Ene", "Enero"); 394 call set_month_name (spanish, Feb, "Feb", "Febrero"); 395 call set_month_name (spanish, Mar, "Marzo", "Marzo"); 396 call set_month_name (spanish, Apr, "Abr", "Abril"); 397 call set_month_name (spanish, May, "May", "Mayo"); 398 call set_month_name (spanish, Jun, "Jun", "Junio"); 399 call set_month_name (spanish, Jul, "Jul", "Julio"); 400 call set_month_name (spanish, Aug, "Ago", "Agosto"); 401 call set_month_name (spanish, Sep, "Sep", "Septiembre"); 402 call set_month_name (spanish, Oct, "Oct", "Octubre"); 403 call set_month_name (spanish, Nov, "Nov", "Noviembre"); 404 call set_month_name (spanish, Dec, "Dic", "Diciembre"); 405 406 call set_day_name (spanish, Mon, "Lun", "Lunes"); 407 call set_day_name (spanish, Tue, "Mar", "Martes"); 408 call set_day_name (spanish, Wed, "Mie", "Mi{rcoles"); 409 call set_day_name (spanish, Thu, "Jue", "Jueves"); 410 call set_day_name (spanish, Fri, "Vie", "Viernes"); 411 call set_day_name (spanish, Sat, "Sab", "Sabado"); 412 call set_day_name (spanish, Sun, "Dom", "Domingo"); 413 414 call set_offset (spanish, Year, "a}o", "a}oa", "a}o", "este"); 415 call set_offset (spanish, Month, "mes", "meses", "mes", "este"); 416 call set_offset (spanish, Week, "semana", "semanas", "sem", "esta"); 417 call set_offset (spanish, Day, "dia", "dias", "dia", "este"); 418 call set_offset (spanish, Hour, "hora", "horas", "hr", "esta"); 419 call set_offset (spanish, Minute, "minuto", "minutos", "min", "este"); 420 call set_offset (spanish, Second, "segundo", "segundos", "seg", "este"); 421 call set_offset (spanish, Microsecond, "microsegundo", 422 "microsegundos", "useg", "este"); 423 424 call set_word (spanish, Before, "antes", "?"); 425 call set_word (spanish, On, "en", "?"); 426 call set_word (spanish, After, "despues", "?"); 427 call set_word (spanish, Or, "oh", "?"); 428 call set_word (spanish, Noon, "mediodia", "?"); 429 call set_word (spanish, Midnight, "medianoche", "?"); 430 call set_word (spanish, Now, "ahorta", "?"); 431 call set_word (spanish, Today, "hoy", "?"); 432 call set_word (spanish, Yesterday, "ayer", "?"); 433 call set_word (spanish, Tomorrow, "ma}ana", "?"); 434 call set_word (spanish, FiscalWeek,"SF", "?"); 435 436 call build; 437 return; 438 439 setup_error: 440 call com_err_ (0, me, """call setup()"" must be done first."); 441 exit: 442 return; 443 /***** Internal Support Procedures ****/ 444 445 setup: proc; 446 447 448 /* compose: off */ 449 dcl get_temp_segments_ entry (char(*), (*) ptr, fixed bin(35)); 450 dcl hcs_$make_entry entry (ptr, char(*), char(*), entry, fixed bin(35)); 451 dcl i fixed bin; 452 453 if db_sw 454 then call ioa_ ("setup:"); 455 call hcs_$make_entry (null(), "date_time_", "valid_format", 456 valid_format, code); 457 if (code ^= 0) 458 then call hcs_$make_entry (null(), "new_date_time_", "valid_format", 459 valid_format, code); 460 if (code ^= 0) 461 then do; 462 call com_err_ (code, me, " 463 The known version of date_time_ does not contain the entrypoint 464 $valid_format. The new version of date_time_ being installed 465 must exist in the working directory with the added name of 466 new_date_time_ before time_info_ can be generated. 467 "); 468 goto exit; 469 end; 470 call get_temp_segments_ (me, temp_p, code); 471 if (code ^= 0) 472 then do; 473 call com_err_ (code, me, "getting tempsegs"); 474 goto exit; 475 end; 476 seg_p = temp_p (1); 477 ZONE_p = addr (HOLD.z); 478 string (zone_def) = ""b; 479 HOLD.next_list_p = addr (HOLD.begin_list); 480 /**** Make room for a few entries which may need to be generated. */ 481 zones_filled = the_zone_count + 12; 482 ZONE.zone_id (*) = ""; 483 zones_filled = 0; 484 token_ct = 0; 485 keywords_filled = 3; 486 487 /**** Begin building the table image */ 488 time_info.version = Vtime_info_2; 489 time_info.gmt_zone_index = -1; /* set undefined */ 490 time_info.default_language_index = Default_Language; 491 492 time_info.date_time_keywords.number_kwd = the_keyword_count; 493 time_info.date_time_keywords.pad = 0; 494 time_info.date_time_keywords.name (site_date) = ""; 495 time_info.date_time_keywords.name (site_date_time) = ""; 496 time_info.date_time_keywords.name (site_time) = ""; 497 498 time_info.language_names.number_lang = the_language_count; 499 time_info.language_names.pad = 0; 500 501 time_info.month_names.number_lang = the_language_count; 502 time_info.month_names.pad = 0; 503 504 time_info.day_names.number_lang = the_language_count; 505 time_info.day_names.pad = 0; 506 507 time_info.offset_names.number_lang = the_language_count; 508 time_info.offset_names.number_offset = the_offset_count; 509 510 time_info.word_names.number_lang = the_language_count; 511 time_info.word_names.number_word = the_word_count; 512 513 call set_format ("multics_date", "^my/^dm/^yc"); 514 call set_format ("multics_date_time", "^my/^dm/^yc ^Hd^99v.9MH ^xxxxza^xxxda"); 515 call set_format ("multics_time", "^Hd:^MH"); 516 517 do i = 1 to the_language_count; 518 call set_word (i, AM, "AM", "A"); 519 call set_word (i, PM, "PM", "P"); 520 end; 521 /* compose: on */ 522 end setup; 523 /**** This variable is set by setup for use by set_format. */ 524 dcl valid_format automatic 525 entry (char(*), fixed bin, fixed bin(35)); 526 527 528 set_format: proc (kwd, fmt); 529 530 dcl kwd char (*), /* keyword to set */ 531 fmt char (*); /* format to associate with it */ 532 533 if (kwd = "date") | (kwd = "time") | (kwd = "date_time") 534 then do; 535 call ioa_ ("ERROR: Process default keyword may not be defined. ^a", 536 kwd); 537 goto err_return; 538 end; 539 if (length (fmt) > 128) 540 then do; 541 call ioa_ ("ERROR: format string >128 characters. ^a", fmt); 542 goto err_return; 543 end; 544 errloc = 0; 545 if (index (fmt, "^") = 0) /* You must ask for SOMETHING! */ 546 then code = error_table_$dt_no_format_selector; 547 else call valid_format ((fmt), errloc, code); 548 if (code ^= 0) 549 then do; 550 call com_err_ (code, me, "set_format ^a^[ 551 Format is: ""^va"" 552 ERROR at: ^vx^^^]", kwd, 553 (errloc > 0), length (fmt), fmt, errloc); 554 return; 555 end; 556 if (kwd = "system_date") 557 then do; 558 time_info.date_time_keywords.name (site_date) = kwd; 559 time_info.date_time_keywords.str (site_date) = fmt; 560 return; 561 end; 562 if (kwd = "system_date_time") 563 then do; 564 time_info.date_time_keywords.name (site_date_time) = kwd; 565 time_info.date_time_keywords.str (site_date_time) = fmt; 566 return; 567 end; 568 if (kwd = "system_time") 569 then do; 570 time_info.date_time_keywords.name (site_time) = kwd; 571 time_info.date_time_keywords.str (site_time) = fmt; 572 return; 573 end; 574 if (keywords_filled = the_keyword_count) 575 then do; 576 call ioa_ ("Too many keywords supplied, the_keyword_count is only = ^i", 577 the_keyword_count); 578 goto err_return; 579 end; 580 /**** if (keywords_filled = 3) then key_pos = 4; else */ 581 key_pos = 3; 582 if (keywords_filled > 3) 583 then 584 do key_pos = keywords_filled to 4 by -1; 585 if (time_info.date_time_keywords.name (key_pos) = kwd) 586 then do; 587 call ioa_ ("ERROR: Duplicate keyword. ^a", kwd); 588 goto err_return; 589 end; 590 if (time_info.date_time_keywords.name (key_pos) < kwd) 591 then goto insert; 592 time_info.date_time_keywords.name (key_pos+1) = time_info.date_time_keywords.name (key_pos); 593 time_info.date_time_keywords.str (key_pos+1) = time_info.date_time_keywords.str (key_pos); 594 end; 595 insert: 596 keywords_filled = keywords_filled + 1; 597 time_info.date_time_keywords.name (key_pos+1) = kwd; 598 time_info.date_time_keywords.str (key_pos+1) = fmt; 599 return; 600 601 err_return: 602 err_sw = "1"b; 603 return; 604 605 dcl errloc fixed bin; 606 dcl error_table_$dt_no_format_selector fixed bin(35) ext static; 607 dcl key_pos fixed bin; 608 609 end set_format; 610 set_language: proc (lang, element, value); 611 612 dcl lang fixed bin, /* which language to set */ 613 element fixed bin, /* which element to set */ 614 value char (*); /* value to put there */ 615 616 if db_sw 617 then call ioa_ ("lang(^i,^i) '^a'", lang, element, value); 618 /* compose: off */ 619 if (seg_p = null ()) 620 then goto setup_error; 621 622 if (value = "") 623 then call no_value_msg ("language", lang, char (element)); 624 if (length (time_info.language_names.name (lang, element)) ^= 0) 625 then call reset_msg ("Language", lang, ltrim (char (element)), 626 time_info.language_names.name (lang, element), value); 627 time_info.language_names.name (lang, element) = value; 628 /* compose: on */ 629 return; 630 631 end set_language; 632 set_month_name: proc (lang, element, short, long); 633 634 dcl lang fixed bin, /* which language to set */ 635 element fixed bin, /* which element to set */ 636 (short, long) char (*); /* values to put there */ 637 638 if db_sw 639 then call ioa_ ("month(^i,^i) '^a' '^a'", lang, element, short, long); 640 /* compose: off */ 641 if (seg_p = null ()) 642 then goto setup_error; 643 644 if (short = "") 645 then call no_value_msg ("short month", lang, mo_name (element)); 646 if (length (time_info.month_names.short (lang, element)) ^= 0) 647 then call reset_msg ("Short month", lang, mo_name (element), 648 time_info.month_names.short (lang, element), short); 649 time_info.month_names.short (lang, element) = short; 650 651 if (long = "") 652 then call no_value_msg ("long month", lang, mo_name (element)); 653 if (length (time_info.month_names.long (lang, element)) ^= 0) 654 then call reset_msg ("Long month", lang, mo_name (element), 655 time_info.month_names.long (lang, element), long); 656 time_info.month_names.long (lang, element) = long; 657 /* compose: on */ 658 659 return; 660 661 end set_month_name; 662 set_day_name: proc (lang, element, short, long); 663 664 dcl lang fixed bin, /* which language to set */ 665 element fixed bin, /* which element to set */ 666 (short, long) char (*); /* values to put there */ 667 668 if db_sw 669 then call ioa_ ("day(^i,^i) '^a' '^a'", lang, element, short, long); 670 /* compose: off */ 671 if (seg_p = null ()) 672 then goto setup_error; 673 674 if (short = "") 675 then call no_value_msg ("short day", lang, da_name (element)); 676 if (length (time_info.day_names.short (lang, element)) ^= 0) 677 then call reset_msg ("Short day", lang, da_name (element), 678 time_info.day_names.short (lang, element), short); 679 time_info.day_names.short (lang, element) = short; 680 681 if (long = "") 682 then call no_value_msg ("Long day", lang, da_name (element)); 683 if (length (time_info.day_names.long (lang, element)) ^= 0) 684 then call reset_msg ("Long day", lang, da_name (element), 685 time_info.day_names.long (lang, element), long); 686 time_info.day_names.long (lang, element) = long; 687 /* compose: on */ 688 689 return; 690 691 end set_day_name; 692 set_offset: proc (lang, element, short, plural, singular, this); 693 694 dcl lang fixed bin, /* which language< to set */ 695 element fixed bin, /* which element to set */ 696 (short, plural, singular, this) 697 char (*); /* values to put there */ 698 699 if db_sw 700 then call ioa_ ("offset(^i,^i) '^a' '^a' '^a'", 701 lang, element, short, plural, singular); 702 /* compose: off */ 703 if (seg_p = null ()) 704 then goto setup_error; 705 706 if (short = "") 707 then call no_value_msg ("Short offset", lang, of_name (element)); 708 if (length (time_info.offset_names.short (lang, element)) ^= 0) 709 then call reset_msg ("Short offset", lang, of_name (element), 710 time_info.offset_names.short (lang, element), (short)); 711 time_info.offset_names.short (lang, element) = short; 712 713 if (plural = "") 714 then call no_value_msg ("Plural offset", lang, of_name (element)); 715 if (length (time_info.offset_names.plural (lang, element)) ^= 0) 716 then call reset_msg ("Plural offset", lang, of_name (element), 717 time_info.offset_names.plural (lang, element), plural); 718 time_info.offset_names.plural (lang, element) = plural; 719 720 if (singular = "") 721 then call no_value_msg ("singular offset", lang, of_name (element)); 722 if (length (time_info.offset_names.singular (lang, element)) ^= 0) 723 then call reset_msg ("Singular offset", lang, of_name (element), 724 time_info.offset_names.singular (lang, element), singular); 725 time_info.offset_names.singular (lang, element) = singular; 726 727 if (this = "") 728 then call no_value_msg ("This-word", lang, of_name (element)); 729 if (length (time_info.offset_names.this (lang, element)) ^= 0) 730 then call reset_msg ("This-word", lang, of_name (element), 731 time_info.offset_names.this (lang, element), (this)); 732 time_info.offset_names.this (lang, element) = this; 733 /* compose: on */ 734 return; 735 736 end set_offset; 737 set_word: proc (lang, element, value, v); 738 739 dcl lang fixed bin, /* which language to set */ 740 element fixed bin, /* which element to set */ 741 (value, v) char (*); /* long&short value to put there */ 742 743 if db_sw 744 then call ioa_ ("word(^i,^i) '^a'^a'", lang, element, value, v); 745 /* compose: off */ 746 if (seg_p = null ()) 747 then goto setup_error; 748 749 if (value = "") 750 then call no_value_msg ("word", lang, wo_name (element)); 751 if (length (time_info.word_names.word (lang, element)) ^= 0) 752 then call reset_msg ("Word", lang, wo_name (element), 753 time_info.word_names.word (lang, element), value); 754 time_info.word_names.word (lang, element) = value; 755 756 if (v = "") 757 then call no_value_msg ("word", lang, wo_name (element)); 758 if (length (time_info.word_names.short (lang, element)) ^= 0) 759 then call reset_msg ("Word", lang, wo_name (element), 760 time_info.word_names.short (lang, element), v); 761 time_info.word_names.short (lang, element) = v; 762 return; 763 /* compose: on */ 764 765 end set_word; 766 set_zone: proc (lang, id, brief, interval, long); 767 768 dcl lang fixed bin, /* which language to set */ 769 id char (*), /* which element to set */ 770 (brief, long) char (*), /* values to put there */ 771 interval fixed dec (12, 8); /* hour_value+GMT gives this zone */ 772 773 dcl element fixed bin; 774 dcl range_check bit (1) init (""b); 775 dcl ferr_sw bit (1) init ("1"b); 776 /* compose: off */ 777 if db_sw 778 then call ioa_ ("zone(^2i,^4a) ^7f '^a' '^a'", 779 lang, id, interval, brief, long); 780 781 if (seg_p = null ()) 782 then goto setup_error; 783 784 if (id = "") 785 then call no_value_msg ("zone id", lang, brief); 786 range_check = "1"b; 787 788 add_zone: entry (lang, id, brief, interval, long); 789 790 if (zones_filled = 0) 791 then zones_filled = 1; 792 else do; 793 do element = 1 to zones_filled; 794 if (ZONE.zone_id (element) = id) 795 then goto found_id; 796 end; 797 if (zones_filled >= the_zone_count) & range_check 798 then do; 799 if ferr_sw 800 then do; 801 ferr_sw = ""b; 802 call ioa_ ("ERROR: at ^a (^a,^a)", id, brief, interval); 803 end; 804 call ioa_ ("Too many zones supplied, the_zone_count is only = ^i", 805 the_zone_count); 806 err_sw = "1"b; 807 return; 808 end; 809 zones_filled = zones_filled + 1; 810 end; 811 element = zones_filled; 812 ZONE.zone_id (element) = id; 813 found_id: 814 if (length (ZONE.zone.short (element, lang)) ^= 0) 815 then call reset_msg ("Brief zone", lang, ZONE.zone_id (element), 816 ZONE.zone.short (element, lang), brief); 817 ZONE.zone.short (element, lang) = rtrim (brief); 818 819 if (length (ZONE.zone.long (element, lang)) ^= 0) 820 then call reset_msg ("Long zone", lang, ZONE.zone_id (element), 821 ZONE.zone.long (element, lang), long); 822 ZONE.zone.long (element, lang) = long; 823 824 if (interval < -11) | (interval > 13) 825 then do; 826 if ferr_sw 827 then do; 828 ferr_sw = ""b; 829 call ioa_ ("ERROR: at ^a (^a,^a)", id, brief, interval); 830 end; 831 call ioa_ ("zone interval(^f) must be in the range -11 0) 897 then do; 898 done = ""b; 899 element = element - 12; 900 /**** Some of this may look strange, but historically the Multics offsets */ 901 /**** are of the opposite sign from those mentioned in the standards. So */ 902 /**** we have to be sure to change sign when going from ext->int or int->ext */ 903 ch4 = ltrim (char (abs (element))); 904 ch15 = "GMT +00 hours."; 905 substr (ch15, 6, 2) = ch4; 906 if (element < 0) 907 then do; 908 ch4 = "zm" || ch4; 909 substr (ch15, 5, 1) = "-"; 910 end; 911 else ch4 = "zp" || ch4; 912 call add_zone (Fill_From, (ch4), (ch4), (element), (ch15)); 913 if first_sw 914 then do; 915 first_sw = ""b; 916 call ioa_ (" 917 This procedure checks for the presence of at least 1 name for 918 each hourly time zone. If any zone has no names, a name is 919 generated for that slot. This is not an error."); 920 end; 921 call ioa_ (" Generated zone: ^a", ch4); 922 end; 923 end; 924 925 /**** check for missing values in Fill_From language */ 926 do element = 1 to zones_filled; 927 if (length (ZONE.zone.short (element, Fill_From)) = 0) 928 then do; 929 call ioa_ ( 930 "ERROR: Zone ^a in the Fill_From language (^a) isn't set.", 931 ZONE.zone_id (element), get_lang (Fill_From)); 932 err_sw = "1"b; 933 end; 934 end; 935 936 /* fill in values from Fill_From language */ 937 do lang = 1 to the_language_count; 938 do element = 1 to zones_filled; 939 if (length (ZONE.zone.short (element, lang)) = 0) 940 then do; 941 ZONE.zone.short (element, lang) 942 = ZONE.zone.short (element, Fill_From); 943 ZONE.zone.long (element, lang) 944 = ZONE.zone.long (element, Fill_From); 945 ZONE.zone.delta (element, lang) 946 = ZONE.zone.delta (element, Fill_From); 947 end; 948 end; 949 end; 950 951 /**** Build the token/item tables, checking for missing values. */ 952 do lang = 1 to the_language_count; 953 do element = 1 to the_language_count; 954 if (length (time_info.language_names.name (lang, element)) = 0) 955 then do; 956 call ioa_ ("ERROR: Language (^a, ^a) has not been specified.", 957 get_lang (lang), get_lang (element)); 958 err_sw = "1"b; 959 end; 960 if ^err_sw 961 then do; 962 call add_token (time_info.language_names.name (lang, element), 963 Language_table, lang, element); 964 end; 965 end; 966 967 do element = 1 to zones_filled; 968 if (length (ZONE.zone.short (element, lang)) = 0) 969 then do; 970 call ioa_ ("ERROR: Zone ""^a"" is not specified in ^a.", 971 ZONE.zone_id (element), get_lang (lang)); 972 err_sw = "1"b; 973 end; 974 end; 975 976 do element = 1 to 12; 977 if (length (time_info.month_names.short (lang, element)) = 0) 978 then do; 979 call ioa_ ("ERROR: Month ""^a"" is not specified in ^a.", 980 mo_name (element), get_lang (lang)); 981 err_sw = "1"b; 982 end; 983 if ^err_sw 984 then do; 985 call add_token (time_info.month_names.short (lang, element), 986 Month_table, lang, element); 987 call add_token (time_info.month_names.long (lang, element), 988 Month_table, lang, element); 989 end; 990 end; 991 992 do element = 1 to 7; 993 if (length (time_info.day_names.short (lang, element)) = 0) 994 then do; 995 call ioa_ ("ERROR: Day ""^a"" is not specified in ^a.", 996 da_name (element), get_lang (lang)); 997 err_sw = "1"b; 998 end; 999 if ^err_sw 1000 then do; 1001 call add_token (time_info.day_names.short (lang, element), 1002 Day_table, lang, element); 1003 call add_token (time_info.day_names.long (lang, element), 1004 Day_table, lang, element); 1005 end; 1006 end; 1007 1008 do element = 1 to the_offset_count; 1009 if (length (time_info.offset_names.short (lang, element)) = 0) 1010 then do; 1011 call ioa_ ("ERROR: Offset ""^a"" is not specified in ^a.", 1012 of_name (element), get_lang (lang)); 1013 err_sw = "1"b; 1014 end; 1015 if ^err_sw 1016 then do; 1017 call add_token (time_info.offset_names.short (lang, element), 1018 Offset_table, lang, element); 1019 call add_token (time_info.offset_names.plural (lang, element), 1020 Offset_table, lang, element); 1021 call add_token (time_info.offset_names.singular (lang, element), 1022 Offset_table, lang, element); 1023 call add_token (time_info.offset_names.this (lang, element), 1024 This_table, lang, element); 1025 end; 1026 end; 1027 1028 do element = 1 to the_word_count; 1029 if (length (time_info.word (lang, element)) = 0) 1030 then do; 1031 call ioa_ ("ERROR: Word ""^a"" is not specified in ^a.", 1032 wo_name (element), get_lang (lang)); 1033 err_sw = "1"b; 1034 end; 1035 if ^err_sw 1036 then do; 1037 call add_token (time_info.word_names.word (lang, element), 1038 Word_table, lang, element); 1039 call add_token (time_info.word_names.short (lang, element), 1040 Word_table, lang, element); 1041 end; 1042 end; 1043 end; 1044 1045 /* check for zone ids having different values in different languages */ 1046 do element = 1 to zones_filled; 1047 do lang = 1 to Fill_From - 1, Fill_From + 1 to the_language_count; 1048 if (ZONE.zone.delta (element, Fill_From)) 1049 ^= (ZONE.zone.delta (element, lang)) 1050 then do; 1051 call ioa_ ( 1052 "ERROR: Zone offset ""^a"" is not the same in ^a and ^a.", 1053 ZONE.zone_id (element), get_lang (lang), 1054 get_lang (Fill_From)); 1055 err_sw = "1"b; 1056 end; 1057 end; 1058 end; 1059 1060 /* sort zones into order by interval */ 1061 do i = 1 to zones_filled; /* The methodology used here is very */ 1062 ZONE.zone_order (i) = i; /* simple instead of being fast. */ 1063 end; /* This procedure will seldom be */ 1064 /* used, thus it is not worth */ 1065 done = ""b; /* wringing CPU time out of it. */ 1066 do while (^done); 1067 done = "1"b; 1068 do i = 2 to zones_filled; 1069 t1 = ZONE.zone_order (i - 1); 1070 t2 = ZONE.zone_order (i); 1071 if (ZONE.zone.delta (t1, 1) < ZONE.zone.delta (t2, 1)) 1072 then do; 1073 done = ""b; 1074 ZONE.zone_order (i - 1) = t2; 1075 ZONE.zone_order (i) = t1; 1076 end; 1077 end; 1078 end; 1079 time_info.gmt_zone_index = ZONE.zone_order (time_info.gmt_zone_index); 1080 1081 /* fill in the ordered zone table */ 1082 time_info.zone_names.number_lang = the_language_count; 1083 time_info.zone_names.number_zone = zones_filled; 1084 1085 do t1 = 1 to zones_filled; 1086 element = ZONE.zone_order (t1); 1087 do lang = 1 to the_language_count; 1088 time_info.zone_names (lang, t1).delta 1089 = ZONE.zone (element, lang).delta * microseconds_per_hour; 1090 time_info.zone_names (lang, t1).long 1091 = ZONE.zone (element, lang).long; 1092 time_info.zone_names (lang, t1).short 1093 = ZONE.zone (element, lang).short; 1094 call add_token (time_info.zone_names.short (lang, t1), 1095 Zone_table, lang, t1); 1096 end; 1097 end; 1098 1099 /* prepare binary search list for CDTB to use */ 1100 time_info.tokens.count = token_ct; 1101 time_info.tokens.ambig = ""b; 1102 item_p = addr (time_info.tokens.item_space); 1103 item_size = 0; 1104 first_sw, msg_sw = "1"b; 1105 do element = 1 to token_ct; 1106 if db_sw 1107 then call ioa_ ("token(^i)=""^a""", element, HOLD.symbol (element)); 1108 time_info.tokens.symbol (element) = HOLD.symbol (element); 1109 time_info.tokens.list_r (element) = rel (item_p); 1110 item.count = 0; 1111 do an_item_p = HOLD.list_p (element) repeat (an_item.next) 1112 while (an_item_p ^= null ()); 1113 do ii = 1 to item.count; 1114 if (item.table (ii) = (an_item.table)) 1115 & (item.element (ii) = an_item.elem) 1116 then do; 1117 item.ambig (ii) = item.ambig (ii) | an_item.ambig; 1118 item.in_lang (ii) 1119 = item.in_lang (ii) | an_item.lang; 1120 goto end_an_item; 1121 end; 1122 end; 1123 item.count = item.count + 1; 1124 item.ambig (item.count) = an_item.ambig; 1125 item.table (item.count) = an_item.table; 1126 item.element (item.count) = an_item.elem; 1127 item.in_lang (item.count) = an_item.lang; 1128 end_an_item: 1129 end; 1130 if (item.count > 1) 1131 then do; 1132 lang_check, lang_use = ""b; 1133 do ii = 1 to item.count; 1134 if (item.table (ii) = This_table) 1135 then; /* The "this" is used on all offsets */ 1136 /* ..and may have the same token */ 1137 /* ..on several of them. This is */ 1138 /* ..not a ambiguity. Forget it. */ 1139 else do; 1140 lang_check = item.in_lang (ii) & lang_use; 1141 lang_use = item.in_lang (ii) | lang_use; 1142 end; 1143 end; 1144 if (lang_check ^= ""b) 1145 then do; 1146 if msg_sw 1147 then do; 1148 call ioa_ (" 1149 When a token is not unique within a language, some date/time 1150 strings which use this token may be ambiguous and therefore 1151 unparsable. The date/time software is prepared to handle 1152 such ambiguities. This is not an error."); 1153 msg_sw = ""b; 1154 end; 1155 call ioa_ (" Non-unique token ""^a""", HOLD.symbol (element)); 1156 end; 1157 1158 if (item.table (1) ^= This_table) 1159 then do; 1160 if first_sw 1161 then do; 1162 call ioa_ (" 1163 When a token does not have the same meaning in all languages, 1164 some date/time strings which use this token may be ambiguous 1165 and therefore unparsable. The date/time software is prepared 1166 to handle such ambiguities. This is not an error."); 1167 first_sw = ""b; 1168 end; 1169 call ioa_ (" Ambiguous token: ^a", HOLD.symbol (element)); 1170 end; 1171 end; 1172 item_size = item_size + (item.count + 2); 1173 item_p = addrel (item_p, (item.count + 2)); 1174 end; 1175 1176 /**** Fill in arg struc for create_data_segment_. */ 1177 1178 if err_sw 1179 then do; 1180 call com_err_ (0, "time_info_", 1181 "An error has occurred. No new table generated."); 1182 return; 1183 end; 1184 cdsa.sections (1).p = seg_p; 1185 cdsa.sections (1).len = size (time_info); 1186 cdsa.sections (1).struct_name = "time_info"; 1187 1188 cdsa.sections (2).p = null(); 1189 cdsa.sections (2).len = 0; 1190 cdsa.sections (2).struct_name = ""; 1191 1192 cdsa.seg_name = "time_info_"; 1193 1194 cdsa.num_exclude_names = 0; 1195 cdsa.exclude_array_ptr = null(); 1196 cdsa.defs_in_link = ""b; 1197 cdsa.separate_static = ""b; 1198 cdsa.have_text = "1"b; 1199 cdsa.have_static = ""b; 1200 cdsa.pad = ""b; 1201 1202 call create_data_segment_ (addr (cdsa), code); 1203 if code ^= 0 1204 then call com_err_ (code, "time_info_"); 1205 1206 call release_temp_segments_ (me, temp_p, code); 1207 if (code ^= 0) 1208 then do; 1209 call com_err_ (code, me, "releasing tempsegs"); 1210 goto exit; 1211 end; 1212 1213 dcl release_temp_segments_ entry (char(*), (*) ptr, fixed bin(35)); 1214 dcl lang_check bit (18)aligned; 1215 dcl lang_use bit (18)aligned; 1216 dcl lang fixed bin; 1217 dcl element fixed bin; 1218 dcl done bit (1); 1219 dcl i fixed bin; 1220 dcl ii fixed bin; 1221 dcl msg_sw bit (1); 1222 dcl first_sw bit (1); 1223 dcl ch4 char (4)var; 1224 dcl ch15 char (16); 1225 dcl (t1, t2) fixed bin; 1226 /* compose: on */ 1227 1228 end build; 1229 1230 /* compose: off */ 1231 add_token: proc (tok, tab_id, lang_id, elem_id); 1232 dcl (tok char (*) var, 1233 tab_id fixed bin, /* which table is it in */ 1234 lang_id fixed bin, /* which language is it in */ 1235 elem_id fixed bin /* which element in table is it */ 1236 ) parm; 1237 1238 dcl symb char (32) var; 1239 1240 if (tok = "?") 1241 then return; 1242 symb = translate (tok, 1243 "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 1244 if (token_ct = 0) 1245 then cur_token = 1; 1246 else do; 1247 lb = 1; 1248 hb = token_ct; 1249 do while (lb <= hb); 1250 cur_token = divide (lb + hb, 2, 17, 0); 1251 if (HOLD.symbol (cur_token) = symb) 1252 then goto found_token; 1253 if (HOLD.symbol (cur_token) < symb) 1254 then do; 1255 lb = cur_token + 1; 1256 insert_point = cur_token + 1; 1257 end; 1258 else do; 1259 hb = cur_token - 1; 1260 insert_point = cur_token; 1261 end; 1262 end; 1263 do cur_token = token_ct to insert_point by -1; 1264 HOLD.token_list (cur_token + 1) = HOLD.token_list (cur_token); 1265 end; 1266 cur_token = insert_point; 1267 end; 1268 1269 if db_sw 1270 then call ioa_ ("----new ^a|^a", symb, tok); 1271 token_ct = token_ct + 1; /* insert a new token entry */ 1272 HOLD.item_ct (cur_token) = 0; 1273 HOLD.symbol (cur_token) = symb; 1274 HOLD.list_p (cur_token) = null (); 1275 goto new_item; 1276 1277 found_token: 1278 if db_sw 1279 then call ioa_ ("--found ^a|^a", symb, tok); 1280 do an_item_p = HOLD.list_p (cur_token) 1281 repeat (an_item.next) 1282 while (an_item_p ^= null ()); 1283 if (an_item.table = tab_id) & (an_item.elem = elem_id) 1284 then goto more_lang; 1285 end; 1286 1287 new_item: 1288 if db_sw 1289 then call ioa_ ("==item ^i(^i)", 1290 tab_id, elem_id); 1291 HOLD.item_ct (cur_token) = HOLD.item_ct (cur_token) + 1; 1292 an_item_p = HOLD.next_list_p; 1293 HOLD.next_list_p = addrel (HOLD.next_list_p, size (an_item)); 1294 an_item.next = HOLD.list_p (cur_token); 1295 HOLD.list_p (cur_token) = an_item_p; 1296 an_item.ambig, an_item.lang = ""b; 1297 an_item.table = tab_id; 1298 an_item.elem = elem_id; 1299 more_lang: 1300 if (an_item.lang ^= ""b) & (substr (an_item.lang, lang_id, 1) = "1"b) 1301 then an_item.ambig = "1"b; 1302 substr (an_item.lang, lang_id, 1) = "1"b; 1303 if db_sw 1304 then call ioa_ ("lang-^.3b", an_item.lang); 1305 return; 1306 1307 dcl (lb, hb) fixed bin; 1308 dcl cur_token fixed bin; 1309 dcl insert_point fixed bin; 1310 1311 end add_token; 1312 1313 get_lang: proc (lang) returns (char (32) var); 1314 1315 dcl lang fixed bin; 1316 1317 dcl result char (32) var; 1318 1319 if (time_info.language_names.name (lang, Fill_From) ^= "") 1320 then result = time_info.language_names.name (lang, Fill_From); 1321 else result = ltrim (char (lang)); 1322 return (result); 1323 1324 end get_lang; 1325 1326 no_value_msg: proc (v1, v2, v3); 1327 1328 dcl v2 fixed bin, 1329 (v1, v3) char (*); 1330 1331 call ioa_ ("ERROR: Value not supplied when setting ^a (^a, ^a).", 1332 v1, get_lang (v2), v3); 1333 err_sw = "1"b; 1334 1335 end no_value_msg; 1336 1337 reset_msg: proc (v1, v2, v3, v4, v5); 1338 1339 dcl v1 char (*), /* what is being set */ 1340 v2 fixed bin, /* which language it's in */ 1341 v3 char (*), /* which element of table */ 1342 v4 char (*) var, /* prior value */ 1343 v5 char (*); /* new value */ 1344 1345 call ioa_ ( 1346 "ERROR: ^a(^a,^a), with the value ""^a"", is being reset to ""^a"".", 1347 v1, get_lang (v2), v3, v4, v5); 1348 err_sw = "1"b; 1349 1350 end reset_msg; 1351 1352 /**** +-+ +-+automatic variables+-+ +-+ ****/ 1353 1354 dcl me char (15) int static options (constant) 1355 init ("time_info_.cds"); 1356 dcl err_sw bit (1) init ("0"b); 1357 dcl sys_date_sw bit (1) init ("0"b); 1358 dcl sys_time_sw bit (1) init ("0"b); 1359 dcl sys_date_time_sw bit (1) init ("0"b); 1360 dcl temp_p (2)ptr; 1361 1362 /**** in this hold area, all uninitialized fields will be recognized by */ 1363 /**** having a length of zero (this is what the temp_seg initially */ 1364 /**** contains). */ 1365 dcl ZONE_p ptr; 1366 dcl 1 ZONE (zones_filled) like HOLD.z based (ZONE_p); 1367 dcl 1 HOLD based (temp_p(2)), 1368 2 token_list (512), 1369 3 symbol char (32) var, /* lower-case form of token */ 1370 3 item_ct fixed bin, /* # items for this token */ 1371 3 list_p ptr unal, /* -> list of items for token */ 1372 2 z (the_zone_count), 1373 3 zone_id char (16), 1374 3 zone_order fixed bin, 1375 3 zone (the_language_count), 1376 4 long char (64) var, 1377 4 short char (4) var, 1378 4 delta fixed dec (12, 8), 1379 2 zz (12) like HOLD.z, /* place for any generated zones */ 1380 2 next_list_p ptr, /* -> next place to put an item */ 1381 2 begin_list ptr; /* 1st item based here */ 1382 1383 dcl an_item_p ptr; 1384 dcl 1 an_item based (an_item_p), 1385 2 next ptr, 1386 2 table fixed bin, /* which table this item for */ 1387 2 elem fixed bin, /* which element in table */ 1388 2 lang bit (18) aligned, /* languages involved */ 1389 2 ambig bit (1) aligned; 1390 1391 1392 1393 /**** automatic arg struc for create_data_segment_. */ 1394 dcl 1 cdsa aligned like cds_args; 1395 1396 dcl code fixed bin (35); /* status code. */ 1397 dcl zone_def (-11:12) bit(1) unal; 1398 1399 dcl (abs, addr, addrel, char, divide, floor, index, length, ltrim, null, rel, 1400 rtrim, substr, size, string, translate 1401 ) builtin; 1402 1403 dcl com_err_ entry options (variable); 1404 dcl ioa_ entry () options (variable); 1405 /* compose: on */ 1406 dcl create_data_segment_ 1407 entry (ptr, fixed bin (35)); 1408 1409 dcl microseconds_per_hour init (3600000000) 1410 fixed bin (71) int static options (constant); 1411 1412 /* format: off */ 1413 dcl (Jan init (1), Mon init (1), 1414 Feb init (2), Tue init (2), 1415 Mar init (3), Wed init (3), 1416 Apr init (4), Thu init (4), 1417 May init (5), Fri init (5), 1418 Jun init (6), Sat init (6), 1419 Jul init (7), Sun init (7), 1420 Aug init (8), 1421 Sep init (9), Before init (1), 1422 Oct init (10), Or init (2), 1423 Nov init (11), After init (3), 1424 Dec init (12), On init (4), 1425 Noon init (5), 1426 Year init (1), Midnight init (6), 1427 Month init (2), Now init (7), 1428 Week init (3), Yesterday init (8), 1429 Day init (4), Today init (9), 1430 Hour init (5), Tomorrow init (10), 1431 Minute init (6), FiscalWeek init (11), 1432 Second init (7), AM init (12), 1433 Microsecond init (8), PM init (13) 1434 ) fixed bin int static options (constant); 1435 /* format: on */ 1 1 /* BEGIN INCLUDE FILE cds_args.incl.pl1 */ 1 2 1 3 dcl 1 cds_args based aligned, 1 4 2 sections (2), 1 5 3 p ptr, /* pointer to data for text/static section */ 1 6 3 len fixed bin (18), /* size of text/static section */ 1 7 3 struct_name char (32), /* name of declared structure for this section */ 1 8 2 seg_name char (32), /* name to create segment by */ 1 9 2 num_exclude_names fixed bin, /* number of names in exclude array */ 1 10 2 exclude_array_ptr ptr, /* pointer to array of exclude names */ 1 11 2 switches, /* control switches */ 1 12 3 defs_in_link bit (1) unal, /* says put defs in linkage */ 1 13 3 separate_static bit (1) unal, /* says separate static section is wanted */ 1 14 3 have_text bit (1) unal, /* ON if text section given */ 1 15 3 have_static bit (1) unal, /* ON if static section given */ 1 16 3 pad bit (32) unal; 1 17 1 18 dcl exclude_names (1) char (32) based; /* pointed to be cds_args.exclude_array_ptr */ 1 19 1 20 /* END INCLUDE FILE cds_args.incl.pl1 */ 1436 1437 2 1 /* BEGIN INCLUDE FILE ..... time_info_cds.incl.pl1 ..... */ 2 2 2 3 /* Generated by means of time_info_cds.ted on 04/05/84 1612.7 mst Thu */ 2 4 /* From time_names.incl.pl1 (dtcm= 04/03/84 1334.7 mst Tue) */ 2 5 /* and time_info_search.incl.pl1 (dtcm= 04/03/84 1105.6 mst Tue) */ 2 6 2 7 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 8 /* NOTE TO MAINTAINER: This set of things must always be synchronized: */ 2 9 /* 1- time_info_.cds */ 2 10 /* 2- time_info_cds.incl.pl1 */ 2 11 /* 3- time_names.incl.pl1 */ 2 12 /* 4- time_info_search.incl.pl1 */ 2 13 /* Any changes to either #3 or #4 must be reflected into #2 and then proper */ 2 14 /* changes made to #1. */ 2 15 /* */ 2 16 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 17 2 18 dcl token_ct fixed bin; 2 19 dcl item_size fixed bin; 2 20 dcl seg_p ptr init (null ()); 2 21 2 22 dcl 1 time_info based (seg_p), 2 23 2 version char (8), 2 24 2 gmt_zone_index fixed bin (17), 2 25 2 default_language_index fixed bin (17), 2 26 2 date_time_keywords, 2 27 3 number_kwd fixed bin, 2 28 3 pad fixed bin, 2 29 3 e (the_keyword_count), 2 30 4 name char (32), 2 31 4 str char (128) var, 2 32 2 language_names, 2 33 3 number_lang fixed bin, 2 34 3 pad fixed bin, 2 35 3 name (the_language_count, the_language_count) char (32) varying, 2 36 2 month_names, 2 37 3 number_lang fixed bin, 2 38 3 pad fixed bin, 2 39 3 e (the_language_count, 12), 2 40 4 short char (8) var, 2 41 4 long char (32) var, 2 42 2 day_names, 2 43 3 number_lang fixed bin, 2 44 3 pad fixed bin, 2 45 3 e (the_language_count, 7), 2 46 4 short char (8) var, 2 47 4 long char (32) var, 2 48 2 offset_names, 2 49 3 number_lang fixed bin, 2 50 3 number_offset fixed bin, 2 51 3 e (the_language_count, the_offset_count), 2 52 4 short char (32) var, 2 53 4 plural char (32) var, 2 54 4 singular char (32) var, 2 55 4 this char (32) var, 2 56 2 word_names, 2 57 3 number_lang fixed bin, 2 58 3 number_word fixed bin, 2 59 3 short (the_language_count, the_word_count) char (8) var, 2 60 3 word (the_language_count, the_word_count) char (32) var, 2 61 2 zone_names, 2 62 3 number_lang fixed bin, 2 63 3 number_zone fixed bin, 2 64 3 e (the_language_count, zones_filled), 2 65 4 short char (4) var, 2 66 4 long char (64) var, 2 67 4 pad fixed bin, 2 68 4 delta fixed bin (71), 2 69 2 tokens, 2 70 3 count fixed bin, 2 71 3 ambig bit (1) aligned, 2 72 3 item (token_ct), 2 73 4 symbol char (32), 2 74 4 list_r bit (18) aligned, 2 75 3 item_space (item_size) bit (36); 2 76 2 77 /* END INCLUDE FILE ..... time_info_cds.incl.pl1 ..... */ 1438 1439 dcl keywords_filled fixed bin; 1440 dcl zones_filled fixed bin; 1441 3 1 /* BEGIN INCLUDE FILE .... time_info_search.incl.pl1 .... 03/16/83 J Falksen */ 3 2 3 3 /* This include file describes an internal interface mainly used by */ 3 4 /* convert_date_to_binary_ to rapidly search the words in time_info_. */ 3 5 /* ** USER PROGRAMS ARE NOT TO USE THIS TABLE. ** */ 3 6 3 7 dcl time_info_$tokens fixed bin ext static; 3 8 /* reference point for token table */ 3 9 3 10 dcl 1 ti_token based (ti_token_p), 3 11 2 count fixed bin, 3 12 2 ambig bit (1)aligned, /* 1- str does not have same */ 3 13 /* ..meaning in all languages */ 3 14 2 item (0 refer (ti_token.count)), 3 15 3 symbol char (32),/* canonical lowercase form */ 3 16 3 list_r bit (18)aligned; 3 17 /**** list_r is the offset of the item list which goes with symbol. To */ 3 18 /**** build a pointer to the list, use: */ 3 19 /**** addrel (addr (time_info_$version), ti_token.list_r (cur_token)) */ 3 20 3 21 3 22 dcl ti_token_p ptr; /* = addr (time_info_$tokens) */ 3 23 3 24 dcl item_p ptr, 3 25 1 item based (item_p)unal, 3 26 2 count fixed bin aligned, /* >1 => diff mean/diff lang */ 3 27 2 e (0 refer (item.count)), 3 28 3 ambig bit (1), /* 1-same mean/diff lang */ 3 29 3 table fixed bin (7) unsigned, /* what table is this */ 3 30 3 element fixed bin (10) unsigned, /* which element in table */ 3 31 3 in_lang bit (18); /* languages using it */ 3 32 3 33 3 34 /**** Note that this last element places a limit of 18 on the */ 3 35 /**** number of languages which may be defined in the table. */ 3 36 3 37 /* The table name values assigned here are as needed by CDTB */ 3 38 dcl (Day_table init (1), 3 39 Language_table init (2), 3 40 Month_table init (3), 3 41 Offset_table init (4), 3 42 Word_table init (5), 3 43 Zone_table init (6), 3 44 This_table init (7) /* resides in offset table */ 3 45 ) fixed bin int static options (constant); 3 46 3 47 dcl mo_name (12) char (3) int static options (constant) init ( 3 48 "Jan", "Feb", "Mar", "Apr", "May", "Jun", 3 49 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); 3 50 dcl da_name (7) char (3) int static options (constant) init ( 3 51 "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"); 3 52 3 53 dcl the_offset_count fixed bin int static options (constant) init (8); 3 54 dcl of_name (8) char (12) int static options (constant) init ( 3 55 "year", "month", "week", "day", 3 56 "Hour", "Minute", "Second", "Microsecond"); 3 57 3 58 dcl the_word_count fixed bin int static options (constant) init (13); 3 59 dcl wo_name (13) char (12) int static options (constant) init ( 3 60 "Before", "Or", "After", "On", "Noon", "Midnight", "Now", 3 61 "Yesterday", "Today", "Tomorrow", "FiscalWeek", 3 62 "AM", "PM"); 3 63 3 64 3 65 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 66 /* NOTE TO MAINTAINER: Before changing this file, see the comments in */ 3 67 /* time_info_cds.incl.pl1 */ 3 68 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 69 3 70 /* END INCLUDE FILE ..... time_info_search.incl.pl1 ..... */ 1442 4 1 /* START OF: time_names_.incl.pl1 * * * * * * * * * * * * * * * * */ 4 2 4 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 4 /* */ 4 5 /* Name: time_names_.incl.pl1 */ 4 6 /* */ 4 7 /* This include file defines the structure of values in the time_table_. The table */ 4 8 /* includes a list of time zones known to the system, as well as lists of month names */ 4 9 /* and names of days of the week. All names are expressed in several different languages */ 4 10 /* to facilitate transliteration of dates into these languages. The table includes */ 4 11 /* the list of languages in which dates may be expressed. */ 4 12 /* */ 4 13 /* Status */ 4 14 /* */ 4 15 /* 0) Created 06/07/78: J. Falksen */ 4 16 /* 1) Modified 07/04/78: G. Dixon */ 4 17 /* */ 4 18 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 19 4 20 4 21 dcl time_info_$version char (8) ext static; /* Version number of all structures in the */ 4 22 /* time_info_. Currently = 1. */ 4 23 dcl Vtime_info_2 char (8) int static options(constant) init("tinfo002"); 4 24 4 25 dcl time_info_$gmt_zone_index fixed bin (17) ext static; 4 26 dcl time_info_$default_language_index fixed bin (17) ext static; 4 27 4 28 dcl time_info_$date_time_keywords fixed bin ext static; /* Table of named date/time format strings */ 4 29 dcl 1 ti_keyword based (addr (time_info_$date_time_keywords)), 4 30 2 number_kwd fixed bin, /* number of keywords present */ 4 31 2 pad fixed bin, 4 32 2 e (0 refer (ti_keyword.number_kwd)), 4 33 3 name char (32), 4 34 3 str char (128)var; 4 35 dcl (site_date init (1), 4 36 site_date_time init (2), 4 37 site_time init (3) 4 38 ) fixed bin int static options (constant); 4 39 4 40 dcl time_info_$language_names fixed bin ext static; /* Table of language names, in various languages */ 4 41 4 42 dcl 1 ti_language based (addr (time_info_$language_names)), 4 43 2 number_lang fixed bin, /* number of language names present */ 4 44 2 pad fixed bin, 4 45 2 name (0 refer (ti_language.number_lang), 0 refer (ti_language.number_lang)) 4 46 char(32) varying; /* Name of the language. */ 4 47 /* All language names are expressed in all languages. name(i,j) gives the */ 4 48 /* jth language name in language i. name(i,i) gives a language name in its */ 4 49 /* own language. */ 4 50 dcl time_info_$month_names fixed bin ext static; /* Table of month names in various languages. */ 4 51 4 52 dcl 1 ti_month based (addr (time_info_$month_names)), 4 53 2 number_lang fixed bin, /* number of languages in the table. */ 4 54 2 pad fixed bin, 4 55 2 e (0 refer (ti_month.number_lang), 12), 4 56 3 short char(8) var, /* short form of a month name, i.e., Nov */ 4 57 3 long char(32) var; /* long form of a month name, i.e. November */ 4 58 dcl time_info_$day_names fixed bin ext static; /* Table of day names in various languages. */ 4 59 4 60 dcl 1 ti_day based (addr (time_info_$day_names)), 4 61 2 number_lang fixed bin, /* number of languages in the table. */ 4 62 2 pad fixed bin, 4 63 2 e (0 refer (ti_day.number_lang), 7), 4 64 3 short char(8) var, /* short for of a day name, i.e. Sat */ 4 65 3 long char(32) var; /* long form of a day name, i.e. Saturday */ 4 66 dcl time_info_$offset_names fixed bin ext static; /* Table of offset names in various languages. */ 4 67 4 68 dcl 1 ti_offset based (addr (time_info_$offset_names)), 4 69 2 number_lang fixed bin, /* number of languages in the table. */ 4 70 2 number_offset fixed bin, 4 71 2 e (0 refer (ti_offset.number_lang), 0 refer (ti_offset.number_offset)), 4 72 3 short char(32) var, /* short form of an offset name, i.e. min */ 4 73 3 plural char(32) var, /* plural form of an offset name, i.e. minutes */ 4 74 3 singular char(32) var, /* singular for of an offset name, i.e. minute */ 4 75 3 this char(32) var; /* "this" which goes with singular */ 4 76 dcl time_info_$word_names fixed bin ext static; /* Table of word names in various languages. */ 4 77 4 78 dcl 1 ti_word based (addr (time_info_$word_names)), 4 79 2 number_lang fixed bin, /* number of languages in the table. */ 4 80 2 number_word fixed bin, 4 81 2 short (0 refer (ti_word.number_lang), 0 refer (ti_word.number_word)) 4 82 char (8) var, 4 83 2 word (0 refer (ti_word.number_lang), 0 refer (ti_word.number_word)) 4 84 char(32) var; /* a "word", i.e. Midnight */ 4 85 4 86 dcl time_info_$zone_names fixed bin ext static; /* Table of known time zones. */ 4 87 4 88 dcl 1 ti_zone based (addr (time_info_$zone_names)), 4 89 2 number_lang fixed bin, /* number of languages in which zone names */ 4 90 /* are defined. */ 4 91 2 number_zone fixed bin, /* number of zone names in the table. */ 4 92 2 e (0 refer (ti_zone.number_lang), 0 refer (ti_zone.number_zone)), 4 93 3 short char(4) var, /* short form of the zone name. */ 4 94 3 long char(64) var, /* long form of the zone name */ 4 95 3 pad fixed bin, 4 96 3 delta fixed bin(71); /* offset, in microseconds, of this time zone */ 4 97 /* from GMT (Greenwich mean time). This value */ 4 98 /* should be subtracted from a clock value */ 4 99 /* (which is expressed in GMT by definition). */ 4 100 /* to obtain a date/time expressed in the */ 4 101 /* named time zone. */ 4 102 /* NOTE: zones are listed in order of descending */ 4 103 /* delta, from +11 to -12. print_time_zones */ 4 104 /* requires this. */ 4 105 4 106 4 107 dcl (tiw_FiscalIndicator init (11) 4 108 ) fixed bin int static options (constant); 4 109 4 110 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 111 /* NOTE TO MAINTAINER: Before changing this file, see the comments in */ 4 112 /* time_info_cds.incl.pl1 */ 4 113 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 114 4 115 /* END OF: time_names_.incl.pl1 * * * * * * * * * * * * * * * * */ 1443 1444 dcl db_sw bit (1) int static init (""b); 1445 dbn: entry; db_sw = "1"b; return; 1446 dbf: entry; db_sw = "0"b; return; 1447 1448 end time_info_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0830.0 !BBBJZjXlHWNpZB.pl1 >special_ldd>install>MR12.3-1114>time_info_.cds 1436 1 04/01/76 2209.5 cds_args.incl.pl1 >ldd>include>cds_args.incl.pl1 1438 2 09/06/84 0850.2 time_info_cds.incl.pl1 >ldd>include>time_info_cds.incl.pl1 1442 3 09/06/84 0850.2 time_info_search.incl.pl1 >ldd>include>time_info_search.incl.pl1 1443 4 09/06/84 0850.2 time_names.incl.pl1 >ldd>include>time_names.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. AM 000515 constant fixed bin(17,0) initial dcl 1413 set ref 518* After 000513 constant fixed bin(17,0) initial dcl 1413 set ref 184* 299* 355* 426* Apr 000512 constant fixed bin(17,0) initial dcl 1413 set ref 154* 269* 325* 396* Aug 000514 constant fixed bin(17,0) initial dcl 1413 set ref 158* 273* 329* 400* Before 000521 constant fixed bin(17,0) initial dcl 1413 set ref 182* 297* 353* 424* Day 000512 constant fixed bin(17,0) initial dcl 1413 set ref 175* 290* 346* 417* Day_table 000521 constant fixed bin(17,0) initial dcl 3-38 set ref 1001* 1003* Dec 000515 constant fixed bin(17,0) initial dcl 1413 set ref 162* 277* 333* 404* Default_Language 000521 constant fixed bin(17,0) initial dcl 93 ref 490 Feb 000517 constant fixed bin(17,0) initial dcl 1413 set ref 152* 267* 323* 394* Fill_From 000521 constant fixed bin(17,0) initial dcl 93 set ref 912* 927 929* 941 943 945 1047 1047 1048 1051* 1319 1319 FiscalWeek 000516 constant fixed bin(17,0) initial dcl 1413 set ref 192* 307* 363* 434* Fri 000161 constant fixed bin(17,0) initial dcl 1413 set ref 168* 283* 339* 410* HOLD based structure level 1 unaligned dcl 1367 Hour 000161 constant fixed bin(17,0) initial dcl 1413 set ref 176* 291* 347* 418* Jan 000521 constant fixed bin(17,0) initial dcl 1413 set ref 151* 266* 322* 393* Jul 000142 constant fixed bin(17,0) initial dcl 1413 set ref 157* 272* 328* 399* Jun 000160 constant fixed bin(17,0) initial dcl 1413 set ref 156* 271* 327* 398* Language_table 000517 constant fixed bin(17,0) initial dcl 3-38 set ref 962* Mar 000513 constant fixed bin(17,0) initial dcl 1413 set ref 153* 268* 324* 395* May 000161 constant fixed bin(17,0) initial dcl 1413 set ref 155* 270* 326* 397* Microsecond 000514 constant fixed bin(17,0) initial dcl 1413 set ref 179* 294* 350* 421* Midnight 000160 constant fixed bin(17,0) initial dcl 1413 set ref 187* 302* 358* 429* Minute 000160 constant fixed bin(17,0) initial dcl 1413 set ref 177* 292* 348* 419* Mon 000521 constant fixed bin(17,0) initial dcl 1413 set ref 164* 279* 335* 406* Month 000517 constant fixed bin(17,0) initial dcl 1413 set ref 173* 288* 344* 415* Month_table 000513 constant fixed bin(17,0) initial dcl 3-38 set ref 985* 987* Noon 000161 constant fixed bin(17,0) initial dcl 1413 set ref 186* 301* 357* 428* Nov 000516 constant fixed bin(17,0) initial dcl 1413 set ref 161* 276* 332* 403* Now 000142 constant fixed bin(17,0) initial dcl 1413 set ref 188* 303* 359* 430* Oct 000164 constant fixed bin(17,0) initial dcl 1413 set ref 160* 275* 331* 402* Offset_table 000512 constant fixed bin(17,0) initial dcl 3-38 set ref 1017* 1019* 1021* On 000512 constant fixed bin(17,0) initial dcl 1413 set ref 183* 298* 356* 425* Or 000517 constant fixed bin(17,0) initial dcl 1413 set ref 185* 300* 354* 427* PM 000120 constant fixed bin(17,0) initial dcl 1413 set ref 519* Sat 000160 constant fixed bin(17,0) initial dcl 1413 set ref 169* 284* 340* 411* Second 000142 constant fixed bin(17,0) initial dcl 1413 set ref 178* 293* 349* 420* Sep 000522 constant fixed bin(17,0) initial dcl 1413 set ref 159* 274* 330* 401* Sun 000142 constant fixed bin(17,0) initial dcl 1413 set ref 170* 285* 341* 412* This_table 000142 constant fixed bin(17,0) initial dcl 3-38 set ref 1023* 1134 1158 Thu 000512 constant fixed bin(17,0) initial dcl 1413 set ref 167* 282* 338* 409* Today 000522 constant fixed bin(17,0) initial dcl 1413 set ref 189* 304* 360* 431* Tomorrow 000164 constant fixed bin(17,0) initial dcl 1413 set ref 191* 306* 362* 433* Tue 000517 constant fixed bin(17,0) initial dcl 1413 set ref 165* 280* 336* 407* Vtime_info_2 000000 constant char(8) initial packed unaligned dcl 4-23 ref 488 Wed 000513 constant fixed bin(17,0) initial dcl 1413 set ref 166* 281* 337* 408* Week 000513 constant fixed bin(17,0) initial dcl 1413 set ref 174* 289* 345* 416* Word_table 000161 constant fixed bin(17,0) initial dcl 3-38 set ref 1037* 1039* Year 000521 constant fixed bin(17,0) initial dcl 1413 set ref 172* 287* 343* 414* Yesterday 000514 constant fixed bin(17,0) initial dcl 1413 set ref 190* 305* 361* 432* ZONE based structure array level 1 unaligned dcl 1366 ZONE_p 000114 automatic pointer dcl 1365 set ref 477* 482 794 812 813 813 813 817 819 819 819 822 836 927 929 939 941 941 943 943 945 945 968 970 1048 1048 1051 1062 1069 1070 1071 1071 1074 1075 1079 1086 1088 1090 1092 1366 1366 1366 1366 1366 1366 1366 Zone_table 000160 constant fixed bin(17,0) initial dcl 3-38 set ref 1094* abs builtin function dcl 1399 ref 903 addr builtin function dcl 1399 ref 477 479 1102 1202 1202 addrel builtin function dcl 1399 ref 1173 1293 ambig 5 based bit(1) level 2 in structure "an_item" dcl 1384 in procedure "ti_" set ref 1117 1124 1296* 1299* ambig based bit(1) level 3 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 1101* ambig 1 based bit(1) array level 3 in structure "item" packed packed unaligned dcl 3-24 in procedure "ti_" set ref 1117* 1117 1124* an_item based structure level 1 unaligned dcl 1384 set ref 1293 an_item_p 000116 automatic pointer dcl 1383 set ref 1111* 1111* 1114 1114 1117 1118 1124 1125 1126 1127* 1128 1280* 1280* 1283 1283* 1285 1292* 1293 1294 1295 1296 1296 1297 1298 1299 1299 1299 1302 1303 1384 1384 1384 1384 1384 1384 begin_list 26276 based pointer level 2 dcl 1367 set ref 479 brief parameter char packed unaligned dcl 768 set ref 766 777* 784* 788 802* 813* 817 829* cds_args based structure level 1 dcl 1-3 cdsa 000120 automatic structure level 1 dcl 1394 set ref 1202 1202 ch15 000304 automatic char(16) packed unaligned dcl 1224 set ref 904* 905* 909* 912 ch4 000302 automatic varying char(4) dcl 1223 set ref 903* 905 908* 908 911* 911 912 912 921* char builtin function dcl 1399 ref 622 622 624 624 903 1321 code 000165 automatic fixed bin(35,0) dcl 1396 set ref 455* 457 457* 460 462* 470* 471 473* 545* 547* 548 550* 1202* 1203 1203* 1206* 1207 1209* com_err_ 000014 constant entry external dcl 1403 ref 439 462 473 550 1180 1203 1209 count based fixed bin(17,0) level 3 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 1100* count based fixed bin(17,0) level 2 in structure "item" dcl 3-24 in procedure "ti_" set ref 1110* 1113 1123* 1123 1124 1125 1126 1127 1130 1133 1172 1173 3-24 3-24 3-24 3-24 3-24 create_data_segment_ 000020 constant entry external dcl 1406 ref 1202 cur_token 000361 automatic fixed bin(17,0) dcl 1308 set ref 1244* 1250* 1251 1253 1255 1256 1259 1260 1263* 1264 1264* 1266* 1272 1273 1274 1280 1291 1291 1294 1295 da_name 000101 constant char(3) initial array packed unaligned dcl 3-50 set ref 674* 676* 681* 683* 995* date_time_keywords 4 based structure level 2 unaligned dcl 2-22 day_names 2552 based structure level 2 unaligned dcl 2-22 db_sw 000010 internal static bit(1) initial packed unaligned dcl 1444 set ref 453 616 638 668 699 743 777 1106 1269 1277 1287 1303 1445* 1446* default_language_index 3 based fixed bin(17,0) level 2 dcl 2-22 set ref 490* defs_in_link 44 000120 automatic bit(1) level 3 packed packed unaligned dcl 1394 set ref 1196* delta based fixed bin(71,0) array level 4 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 1088* delta 30 based fixed dec(12,8) array level 3 in structure "ZONE" dcl 1366 in procedure "ti_" set ref 836* 945* 945 1048 1048 1071 1071 1088 divide builtin function dcl 1399 ref 1250 done 000274 automatic bit(1) packed unaligned dcl 1218 set ref 892* 893 894* 898* 1065* 1066 1067* 1073* e 1 based structure array level 2 in structure "item" packed packed unaligned dcl 3-24 in procedure "ti_" e based structure array level 3 in structure "time_info" unaligned dcl 2-22 in procedure "ti_" e 2554 based structure array level 3 in structure "time_info" unaligned dcl 2-22 in procedure "ti_" e 6 based structure array level 3 in structure "time_info" unaligned dcl 2-22 in procedure "ti_" e 3276 based structure array level 3 in structure "time_info" unaligned dcl 2-22 in procedure "ti_" e 1452 based structure array level 3 in structure "time_info" unaligned dcl 2-22 in procedure "ti_" elem 3 based fixed bin(17,0) level 2 dcl 1384 set ref 1114 1126 1283 1298* elem_id parameter fixed bin(17,0) dcl 1232 set ref 1231 1283 1287* 1298 element 000273 automatic fixed bin(17,0) dcl 1217 in procedure "build" set ref 895* 896 899* 899 903 906 912 926* 927 929* 938* 939 941 941 943 943 945 945* 953* 954 956* 962 962* 967* 968 970* 976* 977 979 985 985* 987 987* 992* 993 995 1001 1001* 1003 1003* 1008* 1009 1011 1017 1017* 1019 1019* 1021 1021* 1023 1023* 1028* 1029 1031 1037 1037* 1039 1039* 1046* 1048 1048 1051* 1086* 1088 1090 1092 1105* 1106* 1106 1108 1108 1109 1111 1155 1169* element parameter fixed bin(17,0) dcl 664 in procedure "set_day_name" set ref 662 668* 674 676 676 676 679 681 683 683 683 686 element parameter fixed bin(17,0) dcl 739 in procedure "set_word" set ref 737 743* 749 751 751 751 754 756 758 758 758 761 element 000100 automatic fixed bin(17,0) dcl 773 in procedure "set_zone" set ref 793* 794* 811* 812 813 813 813 817 819 819 819 822 836 840 element parameter fixed bin(17,0) dcl 612 in procedure "set_language" set ref 610 616* 622 622 624 624 624 624 627 element parameter fixed bin(17,0) dcl 634 in procedure "set_month_name" set ref 632 638* 644 646 646 646 649 651 653 653 653 656 element parameter fixed bin(17,0) dcl 694 in procedure "set_offset" set ref 692 699* 706 708 708 708 711 713 715 715 715 718 720 722 722 722 725 727 729 729 729 732 element 1(08) based fixed bin(10,0) array level 3 in structure "item" packed packed unsigned unaligned dcl 3-24 in procedure "ti_" set ref 1114 1126* english 000521 constant fixed bin(17,0) initial dcl 93 set ref 145* 145* 146* 147* 148* 151* 152* 153* 154* 155* 156* 157* 158* 159* 160* 161* 162* 164* 165* 166* 167* 168* 169* 170* 172* 173* 174* 175* 176* 177* 178* 179* 182* 183* 184* 185* 186* 187* 188* 189* 190* 191* 192* 194* 195* 196* 197* 198* 199* 200* 201* 203* 205* 206* 207* 208* 209* 210* 211* 212* 213* 214* 215* 216* 217* 219* 220* 221* 222* 223* 224* 225* 226* 227* 228* 229* 230* 231* 233* 235* 236* 238* 239* 240* 242* 244* 246* 248* 250* 252* 253* 261* 316* 387* err_sw 000104 automatic bit(1) initial packed unaligned dcl 1356 set ref 601* 806* 833* 872* 880* 887* 932* 958* 960 972* 981* 983 997* 999 1013* 1015 1033* 1035 1055* 1178 1333* 1348* 1356* errloc 000222 automatic fixed bin(17,0) dcl 605 set ref 544* 547* 550 550* error_table_$dt_no_format_selector 000054 external static fixed bin(35,0) dcl 606 ref 545 exclude_array_ptr 42 000120 automatic pointer level 2 dcl 1394 set ref 1195* ferr_sw 000102 automatic bit(1) initial packed unaligned dcl 775 set ref 775* 799 801* 826 828* first_sw 000300 automatic bit(1) packed unaligned dcl 1222 set ref 891* 913 915* 1104* 1160 1167* floor builtin function dcl 1399 ref 837 fmt parameter char packed unaligned dcl 530 set ref 528 539 541* 545 547 550 550 550* 559 565 571 598 french 000517 constant fixed bin(17,0) initial dcl 93 set ref 146* 261* 262* 262* 263* 264* 266* 267* 268* 269* 270* 271* 272* 273* 274* 275* 276* 277* 279* 280* 281* 282* 283* 284* 285* 287* 288* 289* 290* 291* 292* 293* 294* 297* 298* 299* 300* 301* 302* 303* 304* 305* 306* 307* 309* 310* 311* 317* 388* german 000513 constant fixed bin(17,0) initial dcl 93 set ref 147* 263* 316* 317* 318* 318* 319* 322* 323* 324* 325* 326* 327* 328* 329* 330* 331* 332* 333* 335* 336* 337* 338* 339* 340* 341* 343* 344* 345* 346* 347* 348* 349* 350* 353* 354* 355* 356* 357* 358* 359* 360* 361* 362* 363* 365* 366* 367* 368* 369* 370* 371* 372* 373* 374* 375* 376* 377* 378* 379* 380* 382* 389* get_temp_segments_ 000050 constant entry external dcl 449 ref 470 gmt_zone_index 2 based fixed bin(17,0) level 2 dcl 2-22 set ref 489* 840 840* 884 1079* 1079 have_static 44(03) 000120 automatic bit(1) level 3 packed packed unaligned dcl 1394 set ref 1199* have_text 44(02) 000120 automatic bit(1) level 3 packed packed unaligned dcl 1394 set ref 1198* hb 000360 automatic fixed bin(17,0) dcl 1307 set ref 1248* 1249 1250 1259* hcs_$make_entry 000052 constant entry external dcl 450 ref 455 457 i 000210 automatic fixed bin(17,0) dcl 451 in procedure "setup" set ref 517* 518* 519* i 000275 automatic fixed bin(17,0) dcl 1219 in procedure "build" set ref 1061* 1062 1062* 1068* 1069 1070 1074 1075* id parameter char packed unaligned dcl 768 set ref 766 777* 784 788 794 802* 812 829* ii 000276 automatic fixed bin(17,0) dcl 1220 set ref 1113* 1114 1114 1117 1117 1118 1118* 1133* 1134 1140 1141* in_lang 1(18) based bit(18) array level 3 packed packed unaligned dcl 3-24 set ref 1118* 1118 1127* 1140 1141 index builtin function dcl 1399 ref 545 895 insert_point 000362 automatic fixed bin(17,0) dcl 1309 set ref 1256* 1260* 1263 1266 interval parameter fixed dec(12,8) dcl 768 set ref 766 777* 788 802* 824 824 829* 831* 836 837 837 837 840 ioa_ 000016 constant entry external dcl 1404 ref 453 535 541 576 587 616 638 668 699 743 777 802 804 829 831 870 878 886 916 921 929 956 970 979 995 1011 1031 1051 1106 1148 1155 1162 1169 1269 1277 1287 1303 1331 1345 item based structure level 1 unaligned dcl 3-24 in procedure "ti_" item based structure array level 3 in structure "time_info" unaligned dcl 2-22 in procedure "ti_" item_ct 11 based fixed bin(17,0) array level 3 dcl 1367 set ref 1272* 1291* 1291 item_p 000200 automatic pointer dcl 3-24 set ref 1102* 1109 1110 1113 1114 1114 1117 1117 1118 1118 1123 1123 1124 1124 1125 1125 1126 1126 1127 1127 1130 1133 1134 1140 1141 1158 1172 1173* 1173 1173 3-24 3-24 3-24 3-24 3-24 3-24 3-24 item_size 000170 automatic fixed bin(17,0) dcl 2-19 set ref 1103* 1172* 1172 1185 2-22 item_space based bit(36) array level 3 packed packed unaligned dcl 2-22 set ref 1102 key_pos 000223 automatic fixed bin(17,0) dcl 607 set ref 581* 582* 585 590 592 592 593 593* 597 598 keywords_filled 000174 automatic fixed bin(17,0) dcl 1439 set ref 485* 574 582 582 595* 595 868 870* kwd parameter char packed unaligned dcl 530 set ref 528 533 533 533 535* 550* 556 558 562 564 568 570 585 587* 590 597 lang parameter fixed bin(17,0) dcl 739 in procedure "set_word" set ref 737 743* 749* 751 751* 751 754 756* 758 758* 758 761 lang parameter fixed bin(17,0) dcl 768 in procedure "set_zone" set ref 766 777* 784* 788 813 813* 813 817 819 819* 819 822 836 lang parameter fixed bin(17,0) dcl 664 in procedure "set_day_name" set ref 662 668* 674* 676 676* 676 679 681* 683 683* 683 686 lang parameter fixed bin(17,0) dcl 694 in procedure "set_offset" set ref 692 699* 706* 708 708* 708 711 713* 715 715* 715 718 720* 722 722* 722 725 727* 729 729* 729 732 lang parameter fixed bin(17,0) dcl 612 in procedure "set_language" set ref 610 616* 622* 624 624* 624 627 lang 4 based bit(18) level 2 in structure "an_item" dcl 1384 in procedure "ti_" set ref 1118 1127 1296* 1299 1299 1302* 1303* lang 000272 automatic fixed bin(17,0) dcl 1216 in procedure "build" set ref 937* 939 941 943 945* 952* 954 956* 962 962* 968 970* 977 979* 985 985* 987 987* 993 995* 1001 1001* 1003 1003* 1009 1011* 1017 1017* 1019 1019* 1021 1021* 1023 1023* 1029 1031* 1037 1037* 1039 1039* 1047* 1048 1051* 1087* 1088 1088 1090 1090 1092 1092 1094 1094* lang parameter fixed bin(17,0) dcl 1315 in procedure "get_lang" ref 1313 1319 1319 1321 lang parameter fixed bin(17,0) dcl 634 in procedure "set_month_name" set ref 632 638* 644* 646 646* 646 649 651* 653 653* 653 656 lang_check 000270 automatic bit(18) dcl 1214 set ref 1132* 1140* 1144 lang_id parameter fixed bin(17,0) dcl 1232 ref 1231 1299 1302 lang_use 000271 automatic bit(18) dcl 1215 set ref 1132* 1140 1141* 1141 language_names 1226 based structure level 2 unaligned dcl 2-22 lb 000357 automatic fixed bin(17,0) dcl 1307 set ref 1247* 1249 1250 1255* len 2 000120 automatic fixed bin(18,0) array level 3 dcl 1394 set ref 1185* 1189* length builtin function dcl 1399 ref 539 550 550 624 646 653 676 683 708 715 722 729 751 758 813 819 927 939 954 968 977 993 1009 1029 list_p 12 based pointer array level 3 packed packed unaligned dcl 1367 set ref 1111 1274* 1280 1294 1295* list_r based bit(18) array level 4 dcl 2-22 set ref 1109* long 5 based varying char(64) array level 3 in structure "ZONE" dcl 1366 in procedure "ti_" set ref 819 819* 822* 943* 943 1090 long parameter char packed unaligned dcl 634 in procedure "set_month_name" set ref 632 638* 651 653* 656 long 1455 based varying char(32) array level 4 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 653 653* 656* 987* long based varying char(64) array level 4 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 1090* long parameter char packed unaligned dcl 768 in procedure "set_zone" set ref 766 777* 788 819* 822 long parameter char packed unaligned dcl 664 in procedure "set_day_name" set ref 662 668* 681 683* 686 long 2557 based varying char(32) array level 4 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 683 683* 686* 1003* ltrim builtin function dcl 1399 ref 624 624 903 1321 me 000124 constant char(15) initial packed unaligned dcl 1354 set ref 439* 462* 470* 473* 550* 1206* 1209* microseconds_per_hour 000122 constant fixed bin(71,0) initial dcl 1409 ref 1088 mo_name 000107 constant char(3) initial array packed unaligned dcl 3-47 set ref 644* 646* 651* 653* 979* month_names 1450 based structure level 2 unaligned dcl 2-22 msg_sw 000277 automatic bit(1) packed unaligned dcl 1221 set ref 1104* 1146 1153* name 1230 based varying char(32) array level 3 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 624 624* 627* 954 962* 1319 1319 name 6 based char(32) array level 4 in structure "time_info" packed packed unaligned dcl 2-22 in procedure "ti_" set ref 494* 495* 496* 558* 564* 570* 585 590 592* 592 597* next based pointer level 2 dcl 1384 set ref 1128 1285 1294* next_list_p 26274 based pointer level 2 dcl 1367 set ref 479* 1292 1293* 1293 null builtin function dcl 1399 ref 2-20 455 455 457 457 619 641 671 703 746 781 864 1111 1188 1195 1274 1280 num_exclude_names 40 000120 automatic fixed bin(17,0) level 2 dcl 1394 set ref 1194* number_kwd 4 based fixed bin(17,0) level 3 dcl 2-22 set ref 492* number_lang 3274 based fixed bin(17,0) level 3 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 507* number_lang 1450 based fixed bin(17,0) level 3 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 501* number_lang 2552 based fixed bin(17,0) level 3 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 504* number_lang based fixed bin(17,0) level 3 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 1082* number_lang based fixed bin(17,0) level 3 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 510* number_lang 1226 based fixed bin(17,0) level 3 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 498* number_offset 3275 based fixed bin(17,0) level 3 dcl 2-22 set ref 508* number_word based fixed bin(17,0) level 3 dcl 2-22 set ref 511* number_zone based fixed bin(17,0) level 3 dcl 2-22 set ref 1083* of_name 000051 constant char(12) initial array packed unaligned dcl 3-54 set ref 706* 708* 713* 715* 720* 722* 727* 729* 1011* offset_names 3274 based structure level 2 unaligned dcl 2-22 p 000120 automatic pointer array level 3 dcl 1394 set ref 1184* 1188* pad 1227 based fixed bin(17,0) level 3 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 499* pad 2553 based fixed bin(17,0) level 3 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 505* pad 44(04) 000120 automatic bit(32) level 3 in structure "cdsa" packed packed unaligned dcl 1394 in procedure "ti_" set ref 1200* pad 1451 based fixed bin(17,0) level 3 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 502* pad 5 based fixed bin(17,0) level 3 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 493* plural parameter char packed unaligned dcl 694 in procedure "set_offset" set ref 692 699* 713 715* 718 plural 3307 based varying char(32) array level 4 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 715 715* 718* 1019* range_check 000101 automatic bit(1) initial packed unaligned dcl 774 set ref 774* 786* 797 rel builtin function dcl 1399 ref 1109 release_temp_segments_ 000056 constant entry external dcl 1213 ref 1206 result 000100 automatic varying char(32) dcl 1317 set ref 1319* 1321* 1322 rtrim builtin function dcl 1399 ref 817 sections 000120 automatic structure array level 2 dcl 1394 seg_name 30 000120 automatic char(32) level 2 dcl 1394 set ref 1192* seg_p 000172 automatic pointer initial dcl 2-20 set ref 2-20* 476* 488 489 490 492 493 494 495 496 498 499 501 502 504 505 507 508 510 511 558 559 564 565 570 571 585 590 592 592 593 593 597 598 619 624 624 627 641 646 646 649 653 653 656 671 676 676 679 683 683 686 703 708 708 711 715 715 718 722 722 725 729 729 732 746 751 751 754 758 758 761 781 840 840 864 884 954 962 977 985 987 993 1001 1003 1009 1017 1019 1021 1023 1029 1037 1039 1079 1079 1082 1083 1088 1090 1092 1094 1100 1101 1102 1108 1109 1184 1185 1319 1319 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 separate_static 44(01) 000120 automatic bit(1) level 3 packed packed unaligned dcl 1394 set ref 1197* short based varying char(8) array level 3 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 758 758* 761* 1039* short parameter char packed unaligned dcl 664 in procedure "set_day_name" set ref 662 668* 674 676* 679 short 26 based varying char(4) array level 3 in structure "ZONE" dcl 1366 in procedure "ti_" set ref 813 813* 817* 927 939 941* 941 968 1092 short 2554 based varying char(8) array level 4 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 676 676* 679* 993 1001* short based varying char(4) array level 4 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 1092* 1094* short parameter char packed unaligned dcl 634 in procedure "set_month_name" set ref 632 638* 644 646* 649 short 1452 based varying char(8) array level 4 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 646 646* 649* 977 985* short 3276 based varying char(32) array level 4 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 708 708* 711* 1009 1017* short parameter char packed unaligned dcl 694 in procedure "set_offset" set ref 692 699* 706 708 711 singular 3320 based varying char(32) array level 4 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 722 722* 725* 1021* singular parameter char packed unaligned dcl 694 in procedure "set_offset" set ref 692 699* 720 722* 725 site_date 000521 constant fixed bin(17,0) initial dcl 4-35 ref 494 558 559 site_date_time 000517 constant fixed bin(17,0) initial dcl 4-35 ref 495 564 565 site_time 000513 constant fixed bin(17,0) initial dcl 4-35 ref 496 570 571 size builtin function dcl 1399 ref 1185 1293 spanish 000512 constant fixed bin(17,0) initial dcl 93 set ref 148* 264* 319* 387* 388* 389* 390* 390* 393* 394* 395* 396* 397* 398* 399* 400* 401* 402* 403* 404* 406* 407* 408* 409* 410* 411* 412* 414* 415* 416* 417* 418* 419* 420* 421* 424* 425* 426* 427* 428* 429* 430* 431* 432* 433* 434* str 16 based varying char(128) array level 4 dcl 2-22 set ref 559* 565* 571* 593* 593 598* string builtin function dcl 1399 set ref 478* 895 struct_name 3 000120 automatic char(32) array level 3 dcl 1394 set ref 1186* 1190* substr builtin function dcl 1399 set ref 905* 909* 1299 1302* switches 44 000120 automatic structure level 2 dcl 1394 symb 000346 automatic varying char(32) dcl 1238 set ref 1242* 1251 1253 1269* 1273 1277* symbol based char(32) array level 4 in structure "time_info" packed packed unaligned dcl 2-22 in procedure "ti_" set ref 1108* symbol based varying char(32) array level 3 in structure "HOLD" dcl 1367 in procedure "ti_" set ref 1106* 1108 1155* 1169* 1251 1253 1273* sys_date_sw 000105 automatic bit(1) initial packed unaligned dcl 1357 set ref 1357* sys_date_time_sw 000107 automatic bit(1) initial packed unaligned dcl 1359 set ref 1359* sys_time_sw 000106 automatic bit(1) initial packed unaligned dcl 1358 set ref 1358* t1 000310 automatic fixed bin(17,0) dcl 1225 set ref 1069* 1071 1075 1085* 1086 1088 1090 1092 1094 1094* t2 000311 automatic fixed bin(17,0) dcl 1225 set ref 1070* 1071 1074 tab_id parameter fixed bin(17,0) dcl 1232 set ref 1231 1283 1287* 1297 table 2 based fixed bin(17,0) level 2 in structure "an_item" dcl 1384 in procedure "ti_" set ref 1114 1125 1283 1297* table 1(01) based fixed bin(7,0) array level 3 in structure "item" packed packed unsigned unaligned dcl 3-24 in procedure "ti_" set ref 1114 1125* 1134 1158 temp_p 000110 automatic pointer array dcl 1360 set ref 470* 476 477 479 479 1106 1108 1111 1155 1169 1206* 1251 1253 1264 1264 1272 1273 1274 1280 1291 1291 1292 1293 1293 1294 1295 1367 1367 1367 1367 1367 1367 1367 1367 1367 1367 1367 1367 1367 1367 1367 1367 1367 1367 1367 1367 1367 the_keyword_count 000130 constant fixed bin(17,0) initial dcl 93 set ref 2-22 492 574 576* 868 870* the_language_count 000512 constant fixed bin(17,0) initial dcl 93 ref 1367 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 498 501 504 507 510 517 937 952 953 1047 1082 1087 the_offset_count 000514 constant fixed bin(17,0) initial dcl 3-53 ref 508 510 511 708 708 708 708 711 711 715 715 715 715 718 718 722 722 722 722 725 725 729 729 729 729 732 732 751 751 754 758 758 761 1008 1009 1009 1017 1017 1019 1019 1021 1021 1023 1023 1029 1037 1039 1082 1083 1088 1090 1092 1094 1100 1101 1102 1108 1109 1185 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 the_word_count 000120 constant fixed bin(17,0) initial dcl 3-58 ref 511 751 751 751 751 751 751 754 754 754 758 758 758 758 761 761 1028 1029 1029 1029 1037 1037 1037 1039 1039 1082 1082 1083 1083 1088 1088 1090 1090 1092 1092 1094 1094 1100 1100 1101 1101 1102 1102 1108 1108 1109 1109 1185 1185 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 the_zone_count 000131 constant fixed bin(17,0) initial dcl 93 set ref 481 797 804* 876 878* 1367 this parameter char packed unaligned dcl 694 in procedure "set_offset" ref 692 727 729 732 this 3331 based varying char(32) array level 4 in structure "time_info" dcl 2-22 in procedure "ti_" set ref 729 729* 732* 1023* time_info based structure level 1 unaligned dcl 2-22 set ref 1185 tok parameter varying char dcl 1232 set ref 1231 1240 1242 1269* 1277* token_ct 000167 automatic fixed bin(17,0) dcl 2-18 set ref 484* 1100 1102 1105 1185 1244 1248 1263 1271* 1271 2-22 2-22 2-22 2-22 token_list based structure array level 2 unaligned dcl 1367 set ref 1264* 1264 tokens based structure level 2 unaligned dcl 2-22 translate builtin function dcl 1399 ref 1242 v parameter char packed unaligned dcl 739 set ref 737 743* 756 758* 761 v1 parameter char packed unaligned dcl 1328 in procedure "no_value_msg" set ref 1326 1331* v1 parameter char packed unaligned dcl 1339 in procedure "reset_msg" set ref 1337 1345* v2 parameter fixed bin(17,0) dcl 1328 in procedure "no_value_msg" set ref 1326 1331* v2 parameter fixed bin(17,0) dcl 1339 in procedure "reset_msg" set ref 1337 1345* v3 parameter char packed unaligned dcl 1339 in procedure "reset_msg" set ref 1337 1345* v3 parameter char packed unaligned dcl 1328 in procedure "no_value_msg" set ref 1326 1331* v4 parameter varying char dcl 1339 set ref 1337 1345* v5 parameter char packed unaligned dcl 1339 set ref 1337 1345* valid_format 000100 automatic entry variable dcl 524 set ref 455* 457* 547 value parameter char packed unaligned dcl 612 in procedure "set_language" set ref 610 616* 622 624* 627 value parameter char packed unaligned dcl 739 in procedure "set_word" set ref 737 743* 749 751* 754 version based char(8) level 2 packed packed unaligned dcl 2-22 set ref 488* wo_name 000002 constant char(12) initial array packed unaligned dcl 3-59 set ref 749* 751* 756* 758* 1031* word based varying char(32) array level 3 dcl 2-22 set ref 751 751* 754* 1029 1037* word_names based structure level 2 unaligned dcl 2-22 z 13000 based structure array level 2 unaligned dcl 1367 set ref 477 zone 5 based structure array level 2 unaligned dcl 1366 zone_def 000166 automatic bit(1) array packed unaligned dcl 1397 set ref 478* 837* 895 zone_id based char(16) array level 2 packed packed unaligned dcl 1366 set ref 482* 794 812* 813* 819* 929* 970* 1051* zone_names based structure level 2 unaligned dcl 2-22 zone_order 4 based fixed bin(17,0) array level 2 dcl 1366 set ref 1062* 1069 1070 1074* 1075* 1079 1086 zones_filled 000175 automatic fixed bin(17,0) dcl 1440 set ref 481* 482 483* 790 790* 793 797 809* 809 811 876 878* 926 938 967 1046 1061 1068 1083 1085 1088 1088 1090 1090 1092 1092 1094 1094 1100 1101 1102 1108 1109 1185 1366 1366 1366 1366 1366 1366 1366 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 2-22 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. exclude_names based char(32) array packed unaligned dcl 1-18 ti_day based structure level 1 unaligned dcl 4-60 ti_keyword based structure level 1 unaligned dcl 4-29 ti_language based structure level 1 unaligned dcl 4-42 ti_month based structure level 1 unaligned dcl 4-52 ti_offset based structure level 1 unaligned dcl 4-68 ti_token based structure level 1 unaligned dcl 3-10 ti_token_p 000176 automatic pointer dcl 3-22 ti_word based structure level 1 unaligned dcl 4-78 ti_zone based structure level 1 unaligned dcl 4-88 time_info_$date_time_keywords 000032 external static fixed bin(17,0) dcl 4-28 time_info_$day_names 000040 external static fixed bin(17,0) dcl 4-58 time_info_$default_language_index 000030 external static fixed bin(17,0) dcl 4-26 time_info_$gmt_zone_index 000026 external static fixed bin(17,0) dcl 4-25 time_info_$language_names 000034 external static fixed bin(17,0) dcl 4-40 time_info_$month_names 000036 external static fixed bin(17,0) dcl 4-50 time_info_$offset_names 000042 external static fixed bin(17,0) dcl 4-66 time_info_$tokens 000022 external static fixed bin(17,0) dcl 3-7 time_info_$version 000024 external static char(8) packed unaligned dcl 4-21 time_info_$word_names 000044 external static fixed bin(17,0) dcl 4-76 time_info_$zone_names 000046 external static fixed bin(17,0) dcl 4-86 tiw_FiscalIndicator constant fixed bin(17,0) initial dcl 4-107 NAMES DECLARED BY EXPLICIT CONTEXT. add_token 024335 constant entry internal dcl 1231 ref 962 985 987 1001 1003 1017 1019 1021 1023 1037 1039 1094 add_zone 017726 constant entry internal dcl 788 ref 912 build 020530 constant entry internal dcl 847 ref 436 dbf 013452 constant entry external dcl 1446 dbn 013437 constant entry external dcl 1445 end_an_item 023722 constant label dcl 1128 ref 1120 err_return 014664 constant label dcl 601 ref 537 542 578 588 exit 013435 constant label dcl 441 ref 468 474 1210 found_id 020115 constant label dcl 813 ref 794 found_token 024563 constant label dcl 1277 ref 1251 get_lang 025000 constant entry internal dcl 1313 ref 929 956 956 970 979 995 1011 1031 1051 1051 1331 1345 insert 014632 constant label dcl 595 ref 590 more_lang 024730 constant label dcl 1299 ref 1283 new_item 024645 constant label dcl 1287 ref 1275 no_value_msg 025101 constant entry internal dcl 1326 ref 622 644 651 674 681 706 713 720 727 749 756 784 reset_msg 025172 constant entry internal dcl 1337 ref 624 646 653 676 683 708 715 722 729 751 758 813 819 set_day_name 015531 constant entry internal dcl 662 ref 164 165 166 167 168 169 170 279 280 281 282 283 284 285 335 336 337 338 339 340 341 406 407 408 409 410 411 412 set_format 014114 constant entry internal dcl 528 ref 115 118 120 122 124 126 128 130 132 134 136 138 140 513 514 515 set_language 014667 constant entry internal dcl 610 ref 145 146 147 148 261 262 263 264 316 317 318 319 387 388 389 390 set_month_name 015133 constant entry internal dcl 632 ref 151 152 153 154 155 156 157 158 159 160 161 162 266 267 268 269 270 271 272 273 274 275 276 277 322 323 324 325 326 327 328 329 330 331 332 333 393 394 395 396 397 398 399 400 401 402 403 404 set_offset 016125 constant entry internal dcl 692 ref 172 173 174 175 176 177 178 179 287 288 289 290 291 292 293 294 343 344 345 346 347 348 349 350 414 415 416 417 418 419 420 421 set_word 017123 constant entry internal dcl 737 ref 182 183 184 185 186 187 188 189 190 191 192 297 298 299 300 301 302 303 304 305 306 307 353 354 355 356 357 358 359 360 361 362 363 424 425 426 427 428 429 430 431 432 433 434 518 519 set_zone 017565 constant entry internal dcl 766 ref 194 195 196 197 198 199 200 201 203 205 206 207 208 209 210 211 212 213 214 215 216 217 219 220 221 222 223 224 225 226 227 228 229 230 231 233 235 236 238 239 240 242 244 246 248 250 252 253 309 310 311 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 382 setup 013463 constant entry internal dcl 445 ref 109 setup_error 013410 constant label dcl 439 ref 619 641 671 703 746 781 864 ti_ 004245 constant entry external dcl 91 time_info_ 004255 constant entry external dcl 91 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 34600 34660 34270 34610 Length 46540 34270 60 11644 310 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ti_ 996 external procedure is an external procedure. setup internal procedure shares stack frame of external procedure ti_. set_format internal procedure shares stack frame of external procedure ti_. set_language internal procedure shares stack frame of external procedure ti_. set_month_name internal procedure shares stack frame of external procedure ti_. set_day_name internal procedure shares stack frame of external procedure ti_. set_offset internal procedure shares stack frame of external procedure ti_. set_word internal procedure shares stack frame of external procedure ti_. set_zone 121 internal procedure is called during a stack extension. build internal procedure shares stack frame of external procedure ti_. add_token internal procedure shares stack frame of external procedure ti_. get_lang 80 internal procedure is called by several nonquick procedures. no_value_msg 116 internal procedure is called by several nonquick procedures. reset_msg 128 internal procedure is called during a stack extension. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 db_sw ti_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME get_lang 000100 result get_lang set_zone 000100 element set_zone 000101 range_check set_zone 000102 ferr_sw set_zone ti_ 000100 valid_format ti_ 000104 err_sw ti_ 000105 sys_date_sw ti_ 000106 sys_time_sw ti_ 000107 sys_date_time_sw ti_ 000110 temp_p ti_ 000114 ZONE_p ti_ 000116 an_item_p ti_ 000120 cdsa ti_ 000165 code ti_ 000166 zone_def ti_ 000167 token_ct ti_ 000170 item_size ti_ 000172 seg_p ti_ 000174 keywords_filled ti_ 000175 zones_filled ti_ 000176 ti_token_p ti_ 000200 item_p ti_ 000210 i setup 000222 errloc set_format 000223 key_pos set_format 000270 lang_check build 000271 lang_use build 000272 lang build 000273 element build 000274 done build 000275 i build 000276 ii build 000277 msg_sw build 000300 first_sw build 000302 ch4 build 000304 ch15 build 000310 t1 build 000311 t2 build 000346 symb add_token 000357 lb add_token 000360 hb add_token 000361 cur_token add_token 000362 insert_point add_token THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_l_a r_g_a r_e_as r_ne_as r_ge_a alloc_char_temp call_ent_var_desc call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return_mac tra_ext_1 mpfx3 shorten_stack ext_entry int_entry int_entry_desc trunc_fx2 index_bs_1_eis real_to_real_truncatfloor THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ create_data_segment_ get_temp_segments_ hcs_$make_entry ioa_ release_temp_segments_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$dt_no_format_selector LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 1356 004234 1357 004235 1358 004236 1359 004237 2 20 004240 91 004244 109 004263 115 004264 118 004274 120 004306 122 004316 124 004327 126 004341 128 004356 130 004367 132 004404 134 004416 136 004432 138 004444 140 004455 145 004470 146 004475 147 004502 148 004507 151 004514 152 004523 153 004532 154 004541 155 004550 156 004556 157 004565 158 004574 159 004603 160 004614 161 004623 162 004632 164 004641 165 004650 166 004657 167 004671 168 004700 169 004707 170 004716 172 004725 173 004740 174 004753 175 004766 176 005001 177 005014 178 005027 179 005042 182 005062 183 005071 184 005100 185 005107 186 005116 187 005125 188 005134 189 005143 190 005152 191 005163 192 005172 194 005201 195 005242 196 005303 197 005343 198 005404 199 005446 200 005506 201 005546 203 005606 205 005646 206 005706 207 005746 208 006006 209 006046 210 006106 211 006146 212 006206 213 006246 214 006306 215 006351 216 006411 217 006451 219 006511 220 006552 221 006612 222 006655 223 006715 224 006755 225 007020 226 007060 227 007120 228 007160 229 007223 230 007263 231 007325 233 007370 235 007430 236 007471 238 007531 239 007572 240 007632 242 007672 244 007732 246 007772 248 010032 250 010072 252 010132 253 010172 261 010232 262 010237 263 010244 264 010251 266 010256 267 010265 268 010274 269 010303 270 010312 271 010321 272 010330 273 010337 274 010346 275 010360 276 010367 277 010376 279 010405 280 010414 281 010423 282 010432 283 010441 284 010450 285 010457 287 010466 288 010501 289 010513 290 010526 291 010541 292 010554 293 010567 294 010602 297 010621 298 010630 299 010637 300 010646 301 010655 302 010664 303 010673 304 010704 305 010716 306 010725 307 010734 309 010743 310 011005 311 011046 316 011107 317 011114 318 011123 319 011130 322 011135 323 011144 324 011153 325 011162 326 011171 327 011177 328 011206 329 011215 330 011224 331 011235 332 011244 333 011253 335 011262 336 011271 337 011300 338 011307 339 011321 340 011330 341 011337 343 011346 344 011361 345 011374 346 011407 347 011422 348 011435 349 011450 350 011463 353 011502 354 011511 355 011520 356 011527 357 011536 358 011545 359 011556 360 011565 361 011574 362 011603 363 011612 365 011621 366 011662 367 011723 368 011763 369 012024 370 012065 371 012125 372 012165 373 012226 374 012271 375 012331 376 012371 377 012431 378 012470 379 012530 380 012570 382 012630 387 012670 388 012675 389 012702 390 012707 393 012714 394 012723 395 012732 396 012740 397 012747 398 012756 399 012765 400 012774 401 013003 402 013015 403 013024 404 013035 406 013047 407 013056 408 013065 409 013076 410 013105 411 013114 412 013123 414 013132 415 013145 416 013160 417 013173 418 013206 419 013221 420 013234 421 013247 424 013267 425 013276 426 013305 427 013314 428 013323 429 013332 430 013343 431 013352 432 013361 433 013370 434 013377 436 013406 437 013407 439 013410 441 013435 1445 013436 1445 013445 1445 013450 1446 013451 1446 013460 1446 013462 445 013463 453 013464 455 013501 457 013545 460 013612 462 013614 468 013640 470 013641 471 013662 473 013664 474 013711 476 013712 477 013714 478 013717 479 013721 481 013725 482 013727 483 013745 484 013746 485 013747 488 013751 489 013755 490 013757 492 013761 493 013763 494 013764 495 013771 496 013776 498 014003 499 014005 501 014006 502 014007 504 014010 505 014011 507 014012 508 014013 510 014015 511 014021 513 014025 514 014042 515 014053 517 014064 518 014073 519 014102 520 014111 522 014113 528 014114 533 014132 535 014157 537 014200 539 014201 541 014204 542 014225 544 014226 545 014227 547 014245 548 014274 550 014277 554 014354 556 014355 558 014364 559 014373 560 014410 562 014411 564 014415 565 014424 566 014441 568 014442 570 014446 571 014455 572 014472 574 014473 576 014476 578 014516 581 014517 582 014521 585 014531 587 014543 588 014564 590 014565 592 014577 593 014612 594 014627 595 014632 597 014633 598 014645 599 014663 601 014664 603 014666 610 014667 616 014700 619 014734 622 014741 624 015002 627 015106 629 015132 632 015133 638 015151 641 015210 644 015215 646 015254 649 015340 651 015363 653 015421 656 015505 659 015530 662 015531 668 015547 671 015611 674 015616 676 015655 679 015741 681 015764 683 016020 686 016101 689 016124 692 016125 699 016155 703 016220 706 016225 708 016262 711 016362 713 016411 715 016445 718 016535 720 016563 722 016617 725 016707 727 016735 729 016772 732 017073 734 017122 737 017123 743 017141 746 017200 749 017205 751 017240 754 017342 756 017376 758 017430 761 017524 762 017555 774 017557 775 017560 766 017564 777 017613 781 017657 784 017667 786 017722 788 017724 790 017754 793 017762 794 017771 796 020005 797 020007 799 020015 801 020017 802 020020 804 020055 806 020075 807 020100 809 020101 811 020102 812 020104 813 020115 817 020202 819 020240 822 020325 824 020351 826 020365 828 020367 829 020370 831 020424 833 020445 834 020450 836 020451 837 020465 840 020510 843 020527 847 020530 864 020531 868 020536 870 020541 872 020564 876 020566 878 020571 880 020614 884 020616 886 020621 887 020635 891 020637 892 020641 893 020642 894 020644 895 020646 896 020653 898 020654 899 020655 903 020657 904 020714 905 020717 906 020723 908 020725 909 020746 910 020751 911 020752 912 020773 913 021056 915 021061 916 021062 921 021076 923 021116 926 021117 927 021127 929 021136 932 021201 934 021203 937 021205 938 021215 939 021225 941 021235 943 021261 945 021305 948 021327 949 021331 952 021333 953 021343 954 021353 956 021364 958 021427 960 021431 962 021433 965 021464 967 021466 968 021475 970 021505 972 021550 974 021552 976 021554 977 021561 979 021572 981 021634 983 021636 985 021640 987 021671 990 021722 992 021724 993 021731 995 021742 997 022004 999 022006 1001 022010 1003 022041 1006 022072 1008 022074 1009 022103 1011 022117 1013 022157 1015 022161 1017 022163 1019 022221 1021 022257 1023 022315 1026 022353 1028 022355 1029 022365 1031 022407 1033 022447 1035 022451 1037 022453 1039 022517 1042 022560 1043 022562 1046 022564 1047 022573 1048 022605 1051 022631 1055 022707 1057 022711 1058 022730 1061 022732 1062 022741 1063 022746 1065 022750 1066 022751 1067 022754 1068 022756 1069 022765 1070 022771 1071 022775 1073 023010 1074 023011 1075 023016 1077 023023 1078 023025 1079 023026 1082 023034 1083 023050 1085 023064 1086 023073 1087 023077 1088 023107 1090 023166 1092 023235 1094 023303 1096 023356 1097 023360 1100 023362 1101 023404 1102 023425 1103 023453 1104 023454 1105 023457 1106 023467 1108 023521 1109 023560 1110 023607 1111 023610 1113 023622 1114 023631 1117 023650 1118 023656 1120 023667 1122 023670 1123 023672 1124 023673 1125 023701 1126 023707 1127 023715 1128 023722 1130 023725 1132 023730 1133 023732 1134 023741 1140 023747 1141 023754 1143 023757 1144 023761 1146 023763 1148 023765 1153 024001 1155 024002 1158 024025 1160 024033 1162 024035 1167 024051 1169 024052 1172 024075 1173 024100 1174 024105 1178 024107 1180 024111 1182 024142 1184 024143 1185 024145 1186 024173 1188 024176 1189 024200 1190 024201 1192 024204 1194 024207 1195 024210 1196 024211 1197 024213 1198 024215 1199 024217 1200 024221 1202 024223 1203 024236 1206 024261 1207 024302 1209 024304 1210 024333 1228 024334 1231 024335 1240 024346 1242 024356 1244 024374 1247 024402 1248 024404 1249 024406 1250 024411 1251 024414 1253 024426 1255 024440 1256 024443 1257 024446 1259 024447 1260 024452 1262 024454 1263 024455 1264 024465 1265 024477 1266 024502 1269 024504 1271 024535 1272 024536 1273 024542 1274 024554 1275 024562 1277 024563 1280 024614 1283 024626 1285 024642 1287 024645 1291 024674 1292 024700 1293 024703 1294 024710 1295 024715 1296 024721 1297 024723 1298 024726 1299 024730 1302 024747 1303 024753 1305 024776 1313 024777 1319 025005 1321 025040 1322 025071 1326 025100 1331 025121 1333 025165 1335 025170 1337 025171 1345 025224 1348 025300 1350 025303 Object Segment >special_ldd>install>MR12.3-1114>time_info_ Created on 11/11/89 1034.9 mst Sat by Hirneisen.SysMaint.a using create_data_segment_, Version II of Thursday, November 20, 1986 Object Text Defs Link Symb Static Start 0 0 27162 27312 27322 27322 Length 31043 27162 130 10 1505 0 13 Definitions: segname: time_info_ text|4 date_time_keywords text|2552 day_names text|3 default_language_index text|2 gmt_zone_index text|1226 language_names text|1450 month_names text|3274 offset_names symb|0 symbol_table text|17472 tokens text|0 version text|5476 word_names text|6660 zone_names No Links. ----------------------------------------------------------- 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