COMPILATION LISTING OF SEGMENT encode_clock_value_ 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 1011.6 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 6* * * 7* *********************************************************** */ 8 /**** format: ind3,ll80,initcol6,indattr,^inddcls,dclind4,idind16 */ 9 /**** format: struclvlind2,^ifthenstmt,^ifthendo,^ifthen,^indnoniterdo */ 10 /**** format: ^inditerdo,^indnoniterend,^indthenelse,case,^indproc,^indend */ 11 /**** format: ^delnl,^insnl,comcol41,^indcom,^indblkcom,linecom,^indcomtxt */ 12 13 /* UPDATE HISTORY */ 14 /* EL# date TR comments */ 15 /* ___ 83-12-15 -------- JAFalksen: created */ 16 /* --- 84-11-08 -------- jaf: always return the zone for dcv$dcv */ 17 /* --- 84-11-13 -------- jaf: adjust to new form of time_offset.dw data */ 18 /* --- 84-12-03 //////// jaf: */ 19 /* END HISTORY */ 20 21 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 22 /* This is a write-thru into the new software. */ 23 /* */ 24 /* Name: encode_clock_value_ */ 25 /* */ 26 /* This subroutine (obsolete) is a temporary replacement for correct */ 27 /* calling of the new date/time facilities. It relays data between */ 28 /* the user and the date/time system. */ 29 /* */ 30 /* ENTRY: encode_clock_value_ */ 31 /* */ 32 /* takes a given month, day of the month, year, hour of the day, */ 33 /* minute, second, microsecond, and time zone and returns a system */ 34 /* clock reading. When given a day of the week, it performs an */ 35 /* optional check on the clock reading to ensure that it falls on */ 36 /* the given day. */ 37 /* */ 38 /* A system clock reading is encoded as the number of microseconds */ 39 /* from January 1, 1901 0000.0, Greenwich mean time (GMT) to the */ 40 /* given date, time, and time zone. */ 41 /* */ 42 /* USAGE: */ 43 /* dcl encode_clock_value_ entry (fixed bin, fixed bin, fixed */ 44 /* bin, fixed bin, fixed bin, fixed bin, fixed bin(71), fixed */ 45 /* bin, char(3), fixed bin(71), fixed bin(35)); */ 46 /* call encode_clock_value_ (month, dom, year, hour, minute, sec- */ 47 /* ond, microsecond, dow, zone, clock, code); */ 48 /* */ 49 /* ENTRY: encode_clock_value_$offsets */ 50 /* */ 51 /* This entry point takes a system clock reading, a day of the week, */ 52 /* and year, month, day, hour, minute, second, and microsecond, */ 53 /* offset values. The offset values may be positive, negative, or */ 54 /* zero. It returns a clock reading that has been adjusted to fall */ 55 /* on the given day of the week, and which is then offset by the */ 56 /* given number of years, months, days, hours, minutes, seconds, and */ 57 /* microseconds. */ 58 /* */ 59 /* USAGE: */ 60 /* dcl encode_clock_value_$offsets entry (fixed bin(71), fixed */ 61 /* bin, fixed bin, fixed bin, fixed bin, fixed bin, fixed bin, */ 62 /* fixed bin(71), fixed bin, char(3), fixed bin(71), fixed */ 63 /* bin(35)); */ 64 /* call encode_clock_value_$offsets (clock_in, month_off, */ 65 /* day_off, year_off, hour_off, minute_off, second_off, */ 66 /* microsec_off, dow_offset, zone, clock_out, code); */ 67 68 encode_clock_value_: proc (month, dom, year, hour, minute, second, microsecond, 69 dow, zone, clock, code); 70 71 dcl ( 72 month fixed bin, 73 dom fixed bin, 74 year fixed bin, 75 hour fixed bin, 76 minute fixed bin, 77 second fixed bin, 78 microsecond fixed bin (71), 79 dow fixed bin, 80 zone char (3), 81 clock fixed bin (71), 82 code fixed bin (35) 83 ) parm; 84 85 tv.version = Vtime_value_3; 86 tv.yc = year; 87 tv.my = month; 88 tv.dm = dom; 89 tv.Hd = hour; 90 tv.MH = minute; 91 tv.SM = second; 92 tv.US = microsecond; 93 tv.fw = 0; 94 tv.dw = dow; 95 tv.dy = 0; 96 tv.dc = 0; 97 tv.za = zone; 98 tv.zone_index = 0; 99 call date_time_$to_clock (addr (tv), clock, code); 100 return; 101 offsets: entry (clock_in, month_off, day_off, year_off, hour_off, minute_off, 102 second_off, microsec_off, dow_offset, zone, clock_out, code); 103 104 dcl ( 105 clock_in fixed bin (71), 106 month_off fixed bin, 107 day_off fixed bin, 108 year_off fixed bin, 109 hour_off fixed bin, 110 minute_off fixed bin, 111 second_off fixed bin, 112 microsec_off fixed bin (71), 113 dow_offset fixed bin, 114 /* zone char (3), */ 115 clock_out fixed bin (71) 116 /* code fixed bin (35) */ 117 ) parm; 118 119 tof.version = Vtime_offset_2; 120 unspec (tof.flag) = "0"b; 121 if (dow_offset > 0) 122 then do; 123 tof.dw.flag = AFTER; 124 tof.dw.val = dow_offset; 125 end; 126 else tof.dw.flag = UNUSED; 127 if (year_off ^= 0) 128 then do; 129 tof.flag.yr = USED; 130 tof.val.yr = year_off; 131 end; 132 if (month_off ^= 0) 133 then do; 134 tof.flag.mo = USED; 135 tof.val.mo = month_off; 136 end; 137 if (day_off ^= 0) 138 then do; 139 tof.flag.da = USED; 140 tof.val.da = day_off; 141 end; 142 if (hour_off ^= 0) 143 then do; 144 tof.flag.hr = USED; 145 tof.val.hr = hour_off; 146 end; 147 if (minute_off ^= 0) 148 then do; 149 tof.flag.min = USED; 150 tof.val.min = minute_off; 151 end; 152 if (second_off ^= 0) 153 then do; 154 tof.flag.sec = USED; 155 tof.val.sec = second_off; 156 end; 157 if (microsec_off ^= 0) 158 then do; 159 tof.flag.Usec = USED; 160 tof.val.Usec = microsec_off; 161 end; 162 call date_time_$offset_to_clock (addr (tof), clock_in, zone, clock_out, code); 163 return; 164 /* */ 165 /* Name: decode_clock_value_ */ 166 /* */ 167 /* This subroutine (obsolete) is a temporary replacement for correct */ 168 /* calling of the new date/time facilities. It relays data between */ 169 /* the user and the date/time system. */ 170 /* */ 171 /* ENTRY: decode_clock_value_ */ 172 /* */ 173 /* takes a given system clock reading and returns the month, the day */ 174 /* of the month, the year, the time of day, the day of the week, and */ 175 /* the local time zone. */ 176 /* */ 177 /* USAGE: */ 178 /* dcl decode_clock_value_ entry (fixed bin(71), fixed bin, fixed */ 179 /* bin, fixed bin, fixed bin(71), fixed bin, char(3)); */ 180 /* call decode_clock_value_ (clock, month, dom, year, tod, dow, */ 181 /* zone); */ 182 /* */ 183 /* ARGUMENTS: */ 184 /* clock (Input) */ 185 /* is the system clock value to be decoded. */ 186 /* month (Output) */ 187 /* is the month (January = 1, ..., December = 12). */ 188 /* dom (Output) */ 189 /* is the day of the month, i.e., 1 to 31. */ 190 /* year (Output) */ 191 /* is the year, e.g., 1978. */ 192 /* tod (Output) */ 193 /* is the time of day (number of microseconds since midnight). */ 194 /* dow (Output) */ 195 /* is the day of the week (Monday = 1, ..., Sunday = 7). */ 196 /* zone (Output) */ 197 /* is a three-character lowercase abbreviation of the time zone */ 198 /* currently used by this process (for example, mst, edt). */ 199 /* */ 200 /* NOTES: */ 201 /* If the clock value does not lie within the range 0001-01-01 thru */ 202 /* 9999-12-31, then zero values are returned for month, dom, year, */ 203 /* tod, and dow. */ 204 /* */ 205 /* ENTRY: decode_clock_value_$date_time */ 206 /* */ 207 /* This entry point is given a system clock reading and returns the */ 208 /* month, the day of the month, the year, the hour, the minute, the */ 209 /* second, the microseconds within a second, the day of the week. */ 210 /* The time zone in which the decoded clock reading is expressed may */ 211 /* be given as input, or the current time zone can be used. */ 212 /* */ 213 /* USAGE: */ 214 /* dcl decode_clock_value_$date_time entry (fixed bin(71), fixed */ 215 /* bin, fixed bin, fixed bin, fixed bin, fixed bin, fixed bin, */ 216 /* fixed bin(71), fixed bin, char(3), fixed bin(35)); */ 217 /* call decode_clock_value_$date_time (clock, month, dom, year, */ 218 /* hour, minute, second, microsecond, dow, zone, code); */ 219 220 decode_clock_value_: entry (clock, month, dom, year, tod, dow, zone); 221 222 dcl tod fixed bin(71); 223 224 time_sw = "0"b; 225 all_sw = "0"b; 226 dcv_sw = "1"b; 227 out_zone = ""; 228 229 dcv_common: 230 tv.version = Vtime_value_3; 231 call date_time_$from_clock (clock, out_zone, addr (tv), lcode); 232 if ^time_sw 233 then do; 234 month = tv.my; 235 dom = tv.dm; 236 year = tv.yc; 237 dow = tv.dw; 238 end; 239 if ^dcv_sw 240 then do; 241 hour = tv.Hd; 242 minute = tv.MH; 243 second = tv.SM; 244 microsecond = tv.US; 245 code = lcode; 246 end; 247 else tod = tv.US 248 + 1e6 * (tv.SM 249 + 060 * (tv.MH 250 + 060 * (tv.Hd))); 251 if all_sw 252 then do; 253 days_in_clock = tv.dc - 693962; 254 day_of_year = tv.dy; 255 end; 256 if (zone = "") | dcv_sw 257 then zone = tv.za; 258 return; 259 date_time: entry (clock, month, dom, year, hour, minute, second, microsecond, 260 dow, zone, code); 261 time_sw = "0"b; 262 all_sw = "0"b; 263 dcv_sw = "0"b; 264 out_zone = zone; 265 goto dcv_common; 266 267 time: entry (clock, hour, minute, second, microsecond, zone, code); 268 time_sw = "1"b; 269 all_sw = "0"b; 270 dcv_sw = "0"b; 271 out_zone = zone; 272 goto dcv_common; 273 274 all: entry (clock, month, dom, year, hour, minute, second, microsecond, 275 dow, zone, days_in_clock, day_of_year, code); 276 dcl days_in_clock fixed bin; 277 dcl day_of_year fixed bin; 278 dcl lcode fixed bin (35); 279 time_sw = "0"b; 280 all_sw = "1"b; 281 dcv_sw = "0"b; 282 out_zone = zone; 283 goto dcv_common; 284 dcl time_sw bit (1); 285 dcl all_sw bit (1); 286 dcl dcv_sw bit (1); 287 dcl out_zone char (4); 288 289 dcl date_time_$to_clock entry (ptr, fixed bin(71), fixed bin(35)); 290 dcl date_time_$offset_to_clock entry (ptr, fixed bin (71), char (*), fixed bin (71), 291 fixed bin (35)); 292 dcl date_time_$from_clock entry (fixed bin(71), char(*), ptr, fixed bin(35)); 293 294 dcl 1 tv like time_value; 295 dcl 1 tof like time_offset; 296 297 dcl (addr, unspec) builtin; 298 1 1 /* START OF* time_value.incl.pl1 * * * * * * * * */ 1 2 1 3 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 1 4 /* */ 1 5 /* Name: time_value.incl.pl1 */ 1 6 /* */ 1 7 /* This structure holds output from date_time_$from_clock */ 1 8 /* and input to date_time_$to_clock */ 1 9 /* (A clock value is a combination of a day portion and a time portion. */ 1 10 /* clock_days represents one part and clock_time the other.) */ 1 11 /* to_clock accepts "day" (as opposed to "time") data only in certain */ 1 12 /* combinations. This table shows with the *'s which fields may be present */ 1 13 /* together. All others must be zero. */ 1 14 /* +-1-+-2-+-3-+-4-+--------------+ */ 1 15 /* | * | * | | | year | In cases 1, 2, & 4, if day_in_week is */ 1 16 /* | * | | | | mm | present, it is used to verify the */ 1 17 /* | * | | | | dd | value converted. */ 1 18 /* | | | * | | fiscal_week | In case 3 it actually defines a day. */ 1 19 /* | | |(*)| | day_in_week | If not present, Monday is assumed. */ 1 20 /* | | * | | | day_in_year | */ 1 21 /* | | | | * | day_in_clock | */ 1 22 /* +-v-+-v-+-v-+-v-+--------------+ */ 1 23 /* | | | +-- clock_days = day_in_calendar */ 1 24 /* | | +------ clock_days = converted (fiscal_week,day_in_week) */ 1 25 /* | +---------- clock_days = converted (year,day_in_year) */ 1 26 /* +-------------- clock_days = converted (year,mm,dd) */ 1 27 /* */ 1 28 /* clock_time = converted (HH,MM,SS,UUUUUU) */ 1 29 /* */ 1 30 /* The zone adjustment may be in one of two forms: */ 1 31 /* if zone^="" then zone_index = INDEX_IN_time_info_OF (zone); */ 1 32 /* [ERROR if not found] */ 1 33 /* if zone="" & zone_index=0 then zone_index = time_defaults_$zone_index */ 1 34 /* After these two steps, if zone_index=0, it is an ERROR. */ 1 35 /* The value in time_info_ of zone_delta (zone_index) is used to adjust */ 1 36 /* clock_time. */ 1 37 /* */ 1 38 /* If leap_year^=0 it is an ERROR. All values are range checked, e.g. */ 1 39 /* year<0 or year>9999. Out-of-range is an ERROR. */ 1 40 /* */ 1 41 /* Refer to time_offset_.incl.pl1 for the structure used to input data to */ 1 42 /* date_time_$offset_to_clock. */ 1 43 /* */ 1 44 /* Status */ 1 45 /* */ 1 46 /* 0) Created by: J. Falksen - 06/20/78 */ 1 47 /* 1) Updated: jaf - 84-11-01 US & fw enlarged to bin(20) */ 1 48 /* */ 1 49 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 1 50 1 51 /* All values in this structure are zone adjusted, not GMT. */ 1 52 1 53 dcl 1 time_value aligned based(Ptime_value), 1 54 2 version char (8), 1 55 2 yc fixed bin, /* Year part of date (eg, 1978) */ 1 56 2 my fixed bin, /* Month part of date (eg, 7= July) */ 1 57 2 dm fixed bin, /* Day of month part of date (eg, 4) */ 1 58 2 Hd fixed bin, /* Hour of the day (eg, 18) */ 1 59 2 MH fixed bin, /* Minute of the hour (eg, 35) */ 1 60 2 SM fixed bin, /* Second of the minute (eg, 59) */ 1 61 2 US fixed bin (20), /* Microseconds in excess of second */ 1 62 2 fw fixed bin (20), /* the digits are yyyyww [OUT] */ 1 63 2 dw fixed bin, /* Day of the week (1=Mon, 7=Sun). */ 1 64 2 dy fixed bin, /* Day of the year */ 1 65 /* (eg, 12/31 = 365 or 366). */ 1 66 2 dc fixed bin(22), /* Day in calendar value */ 1 67 /* (eg, 1 = Jan 1, 0001). */ 1 68 2 Uc fixed bin(71), /* Microsecond in calendar value */ 1 69 /* (eg, 0 = 0001-01-01m) */ 1 70 2 za char (5), /* Zone abbreviation */ 1 71 2 zone_index fixed bin, /* Index in time_table_$zone_names, */ 1 72 /* of zone in which time expressed */ 1 73 2 leap_year fixed bin, /* 1- this is a leap year [OUT] */ 1 74 1 75 Ptime_value ptr, 1 76 Vtime_value_3 char(8) int static options(constant) init("timeval3"); 1 77 1 78 /* END OF* time_value.incl.pl1 * * * * * * * * */ 299 2 1 /* BEGIN INCLUDE FILE ..... time_offset.incl.pl1 ..... 08/23/79 J Falksen */ 2 2 2 3 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 2 4 /* */ 2 5 /* Name: time_offset.incl.pl1 */ 2 6 /* */ 2 7 /* 1) This structure provides input to date_time_$offset_to_clock. */ 2 8 /* Both integer and real fields may be supplied. Each field containing data */ 2 9 /* must have its use bit set. All values may be positive or negative. */ 2 10 /* a) dw is applied first. */ 2 11 /* b) The size of a year is dependant upon WHICH year. The base year is */ 2 12 /* determined. The (adjusted) clock value is the reference for this. */ 2 13 /* The integral years (whether from fixed, float, or both) are added to */ 2 14 /* this base year. The new base year is used to determine what value the */ 2 15 /* fraction is applied to. */ 2 16 /* c) The size of a month is dependant upon WHICH month of WHICH year. */ 2 17 /* The base year/month is determined. The (adjusted) clock value is the */ 2 18 /* reference for this. The integral months are added to this base month, */ 2 19 /* forming a new base year/month. The new base month in used to determine */ 2 20 /* value the fraction is applied to. */ 2 21 /* d) Values smaller than a month are added "in parallel" because their */ 2 22 /* size is always constant (leap-seconds ignored). */ 2 23 /* */ 2 24 /* 2) This structure receives output from date_time_$from_clock_interval. */ 2 25 /* time_offset.dw is not used. The input values in val are ignored; they */ 2 26 /* are reset. flag specifies the units in which the output is to be */ 2 27 /* expressed and whether the fractional amount is desired. If only the */ 2 28 /* smallest unit is set to receive the fraction it leaves the structure in */ 2 29 /* a state that it may be given to $offset_to_clock without modification. */ 2 30 /* */ 2 31 /* Status */ 2 32 /* 06/07/83 jaf 0) Created */ 2 33 /* 84-11-19 jaf 1) Changed the form of the dw field, added named constants */ 2 34 /* */ 2 35 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 2 36 2 37 dcl 1 time_offset aligned based(Ptime_offset), 2 38 2 version char (8), 2 39 2 flag, 2 40 3 yr fixed bin, 2 41 3 mo fixed bin, 2 42 3 wk fixed bin, 2 43 3 da fixed bin, 2 44 3 hr fixed bin, 2 45 3 min fixed bin, 2 46 3 sec fixed bin, 2 47 3 Usec fixed bin, 2 48 2 val, 2 49 3 yr float dec (20), /* years */ 2 50 3 mo float dec (20), /* months */ 2 51 3 wk float dec (20), /* weeks */ 2 52 3 da float dec (20), /* days */ 2 53 3 hr float dec (20), /* hours */ 2 54 3 min float dec (20), /* minutes */ 2 55 3 sec float dec (20), /* seconds */ 2 56 3 Usec float dec (20), /* microseconds */ 2 57 2 dw, 2 58 3 flag fixed bin, /* how to select day, if at all */ 2 59 3 val fixed bin; /* Day of the week (1=Mon...7=Sun). */ 2 60 2 61 /**** time_offset.flag settings for $offset_to_clock */ 2 62 dcl (UNUSED init (0), /* this offset unit is unused */ 2 63 USED init (1), /* this offset unit has a value */ 2 64 /**** time_offset.flag settings for $from_clock_interval */ 2 65 /****UNUSED init (0), /* this offset unit is unused */ 2 66 INTEGER init (1), /* return interval unit as an integer */ 2 67 FRACTION init (2), /* return interval unit as integer+fraction */ 2 68 /**** offset.dw.flag settings for $offset_to_clock. Tells how to select the */ 2 69 /* day given in offset.dw.val */ 2 70 BEFORE init (-2),/* before day given in clock_in */ 2 71 ON_OR_BEFORE init (-1),/* on or before day given in clock_in */ 2 72 /****UNUSED init (0), /* don't apply day of week offset */ 2 73 ON_OR_AFTER init (1), /* on or after day given in clock_in */ 2 74 AFTER init (2) /* after day given in clock_in */ 2 75 ) fixed bin int static options (constant); 2 76 2 77 dcl Ptime_offset ptr, 2 78 Vtime_offset_2 char (8) int static options(constant) init("timeoff2"); 2 79 2 80 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 2 81 /* */ 2 82 /* Name: time_offset_array_.incl.pl1 */ 2 83 /* */ 2 84 /* This is an array form of time_offset. */ 2 85 /* */ 2 86 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 2 87 2 88 dcl 1 time_offset_array aligned based(Ptime_offset), 2 89 2 version char (8), 2 90 2 flag (8) fixed bin, 2 91 2 val (8) float dec (20), 2 92 2 dw, 2 93 3 (flag, val) fixed bin; 2 94 2 95 /* END INCLUDE FILE ..... time_offset.incl.pl1 ..... */ 300 301 302 end encode_clock_value_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0839.4 encode_clock_value_.pl1 >special_ldd>install>MR12.3-1114>encode_clock_value_.pl1 299 1 12/21/84 1239.8 time_value.incl.pl1 >ldd>include>time_value.incl.pl1 300 2 12/21/84 1239.8 time_offset.incl.pl1 >ldd>include>time_offset.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. AFTER constant fixed bin(17,0) initial dcl 2-62 ref 123 Hd 5 000106 automatic fixed bin(17,0) level 2 dcl 294 set ref 89* 241 247 MH 6 000106 automatic fixed bin(17,0) level 2 dcl 294 set ref 90* 242 247 SM 7 000106 automatic fixed bin(17,0) level 2 dcl 294 set ref 91* 243 247 UNUSED constant fixed bin(17,0) initial dcl 2-62 ref 126 US 10 000106 automatic fixed bin(20,0) level 2 dcl 294 set ref 92* 244 247 USED constant fixed bin(17,0) initial dcl 2-62 ref 129 134 139 144 149 154 159 Usec 11 000132 automatic fixed bin(17,0) level 3 in structure "tof" dcl 295 in procedure "encode_clock_value_" set ref 159* Usec 64 000132 automatic float dec(20) level 3 in structure "tof" dcl 295 in procedure "encode_clock_value_" set ref 160* Vtime_offset_2 000000 constant char(8) initial packed unaligned dcl 2-77 ref 119 Vtime_value_3 000002 constant char(8) initial packed unaligned dcl 1-53 ref 85 229 addr builtin function dcl 297 ref 99 99 162 162 231 231 all_sw 000102 automatic bit(1) packed unaligned dcl 285 set ref 225* 251 262* 269* 280* clock parameter fixed bin(71,0) dcl 71 set ref 68 99* 220 231* 259 267 274 clock_in parameter fixed bin(71,0) dcl 104 set ref 101 162* clock_out parameter fixed bin(71,0) dcl 104 set ref 101 162* code parameter fixed bin(35,0) dcl 71 set ref 68 99* 101 162* 245* 259 267 274 da 5 000132 automatic fixed bin(17,0) level 3 in structure "tof" dcl 295 in procedure "encode_clock_value_" set ref 139* da 34 000132 automatic float dec(20) level 3 in structure "tof" dcl 295 in procedure "encode_clock_value_" set ref 140* date_time_$from_clock 000014 constant entry external dcl 292 ref 231 date_time_$offset_to_clock 000012 constant entry external dcl 290 ref 162 date_time_$to_clock 000010 constant entry external dcl 289 ref 99 day_of_year parameter fixed bin(17,0) dcl 277 set ref 254* 274 day_off parameter fixed bin(17,0) dcl 104 ref 101 137 140 days_in_clock parameter fixed bin(17,0) dcl 276 set ref 253* 274 dc 14 000106 automatic fixed bin(22,0) level 2 dcl 294 set ref 96* 253 dcv_sw 000103 automatic bit(1) packed unaligned dcl 286 set ref 226* 239 256 263* 270* 281* dm 4 000106 automatic fixed bin(17,0) level 2 dcl 294 set ref 88* 235 dom parameter fixed bin(17,0) dcl 71 set ref 68 88 220 235* 259 274 dow parameter fixed bin(17,0) dcl 71 set ref 68 94 220 237* 259 274 dow_offset parameter fixed bin(17,0) dcl 104 ref 101 121 124 dw 72 000132 automatic structure level 2 in structure "tof" unaligned dcl 295 in procedure "encode_clock_value_" dw 12 000106 automatic fixed bin(17,0) level 2 in structure "tv" dcl 294 in procedure "encode_clock_value_" set ref 94* 237 dy 13 000106 automatic fixed bin(17,0) level 2 dcl 294 set ref 95* 254 flag 2 000132 automatic structure level 2 in structure "tof" unaligned dcl 295 in procedure "encode_clock_value_" set ref 120* flag 72 000132 automatic fixed bin(17,0) level 3 in structure "tof" dcl 295 in procedure "encode_clock_value_" set ref 123* 126* fw 11 000106 automatic fixed bin(20,0) level 2 dcl 294 set ref 93* hour parameter fixed bin(17,0) dcl 71 set ref 68 89 241* 259 267 274 hour_off parameter fixed bin(17,0) dcl 104 ref 101 142 145 hr 42 000132 automatic float dec(20) level 3 in structure "tof" dcl 295 in procedure "encode_clock_value_" set ref 145* hr 6 000132 automatic fixed bin(17,0) level 3 in structure "tof" dcl 295 in procedure "encode_clock_value_" set ref 144* lcode 000100 automatic fixed bin(35,0) dcl 278 set ref 231* 245 microsec_off parameter fixed bin(71,0) dcl 104 ref 101 157 160 microsecond parameter fixed bin(71,0) dcl 71 set ref 68 92 244* 259 267 274 min 50 000132 automatic float dec(20) level 3 in structure "tof" dcl 295 in procedure "encode_clock_value_" set ref 150* min 7 000132 automatic fixed bin(17,0) level 3 in structure "tof" dcl 295 in procedure "encode_clock_value_" set ref 149* minute parameter fixed bin(17,0) dcl 71 set ref 68 90 242* 259 267 274 minute_off parameter fixed bin(17,0) dcl 104 ref 101 147 150 mo 20 000132 automatic float dec(20) level 3 in structure "tof" dcl 295 in procedure "encode_clock_value_" set ref 135* mo 3 000132 automatic fixed bin(17,0) level 3 in structure "tof" dcl 295 in procedure "encode_clock_value_" set ref 134* month parameter fixed bin(17,0) dcl 71 set ref 68 87 220 234* 259 274 month_off parameter fixed bin(17,0) dcl 104 ref 101 132 135 my 3 000106 automatic fixed bin(17,0) level 2 dcl 294 set ref 87* 234 out_zone 000104 automatic char(4) packed unaligned dcl 287 set ref 227* 231* 264* 271* 282* sec 10 000132 automatic fixed bin(17,0) level 3 in structure "tof" dcl 295 in procedure "encode_clock_value_" set ref 154* sec 56 000132 automatic float dec(20) level 3 in structure "tof" dcl 295 in procedure "encode_clock_value_" set ref 155* second parameter fixed bin(17,0) dcl 71 set ref 68 91 243* 259 267 274 second_off parameter fixed bin(17,0) dcl 104 ref 101 152 155 time_offset based structure level 1 dcl 2-37 time_sw 000101 automatic bit(1) packed unaligned dcl 284 set ref 224* 232 261* 268* 279* time_value based structure level 1 dcl 1-53 tod parameter fixed bin(71,0) dcl 222 set ref 220 247* tof 000132 automatic structure level 1 unaligned dcl 295 set ref 162 162 tv 000106 automatic structure level 1 unaligned dcl 294 set ref 99 99 231 231 unspec builtin function dcl 297 set ref 120* val 12 000132 automatic structure level 2 in structure "tof" unaligned dcl 295 in procedure "encode_clock_value_" val 73 000132 automatic fixed bin(17,0) level 3 in structure "tof" dcl 295 in procedure "encode_clock_value_" set ref 124* version 000106 automatic char(8) level 2 in structure "tv" packed packed unaligned dcl 294 in procedure "encode_clock_value_" set ref 85* 229* version 000132 automatic char(8) level 2 in structure "tof" packed packed unaligned dcl 295 in procedure "encode_clock_value_" set ref 119* yc 2 000106 automatic fixed bin(17,0) level 2 dcl 294 set ref 86* 236 year parameter fixed bin(17,0) dcl 71 set ref 68 86 220 236* 259 274 year_off parameter fixed bin(17,0) dcl 104 ref 101 127 130 yr 2 000132 automatic fixed bin(17,0) level 3 in structure "tof" dcl 295 in procedure "encode_clock_value_" set ref 129* yr 12 000132 automatic float dec(20) level 3 in structure "tof" dcl 295 in procedure "encode_clock_value_" set ref 130* za 20 000106 automatic char(5) level 2 packed packed unaligned dcl 294 set ref 97* 256 zone parameter char(3) packed unaligned dcl 71 set ref 68 97 101 162* 220 256 256* 259 264 267 271 274 282 zone_index 22 000106 automatic fixed bin(17,0) level 2 dcl 294 set ref 98* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BEFORE internal static fixed bin(17,0) initial dcl 2-62 FRACTION internal static fixed bin(17,0) initial dcl 2-62 INTEGER internal static fixed bin(17,0) initial dcl 2-62 ON_OR_AFTER internal static fixed bin(17,0) initial dcl 2-62 ON_OR_BEFORE internal static fixed bin(17,0) initial dcl 2-62 Ptime_offset automatic pointer dcl 2-77 Ptime_value automatic pointer dcl 1-53 time_offset_array based structure level 1 dcl 2-88 NAMES DECLARED BY EXPLICIT CONTEXT. all 000653 constant entry external dcl 274 date_time 000533 constant entry external dcl 259 dcv_common 000400 constant label dcl 229 ref 265 272 283 decode_clock_value_ 000350 constant entry external dcl 220 encode_clock_value_ 000025 constant entry external dcl 68 offsets 000141 constant entry external dcl 101 time 000605 constant entry external dcl 267 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1030 1046 720 1040 Length 1272 720 16 210 110 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME encode_clock_value_ 204 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME encode_clock_value_ 000100 lcode encode_clock_value_ 000101 time_sw encode_clock_value_ 000102 all_sw encode_clock_value_ 000103 dcv_sw encode_clock_value_ 000104 out_zone encode_clock_value_ 000106 tv encode_clock_value_ 000132 tof encode_clock_value_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 call_ext_out_desc call_ext_out return_mac fl2_to_fx2 ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. date_time_$from_clock date_time_$offset_to_clock date_time_$to_clock NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 68 000015 85 000061 86 000063 87 000065 88 000067 89 000071 90 000073 91 000075 92 000077 93 000101 94 000102 95 000104 96 000105 97 000106 98 000112 99 000113 100 000127 101 000130 119 000153 120 000155 121 000160 123 000163 124 000165 125 000167 126 000170 127 000172 129 000174 130 000176 132 000205 134 000207 135 000211 137 000220 139 000222 140 000224 142 000233 144 000235 145 000237 147 000246 149 000250 150 000252 152 000261 154 000263 155 000265 157 000274 159 000276 160 000300 162 000307 163 000341 220 000342 224 000372 225 000373 226 000374 227 000376 229 000400 231 000402 232 000431 234 000433 235 000435 236 000437 237 000441 239 000443 241 000445 242 000447 243 000451 244 000453 245 000456 246 000460 247 000461 251 000500 253 000502 254 000506 256 000510 258 000522 259 000523 261 000567 262 000570 263 000571 264 000572 265 000576 267 000577 268 000631 269 000633 270 000634 271 000635 272 000641 274 000642 279 000707 280 000710 281 000712 282 000713 283 000717 ----------------------------------------------------------- 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