-- file: TimeDefs.Mesa -- last edited by Sandman, June 30, 1980 5:08 PM -- Copyright Xerox Corporation 1979, 1980 DIRECTORY InlineDefs USING [BcplLongNumber], MiscAlpha USING [aRCLK], Mopcodes USING [zMISC]; TimeDefs: DEFINITIONS = BEGIN StartWeekDay: PRIVATE INTEGER = 1; -- Jan. 1, 1901 was a Tuesday BaseYear: PRIVATE INTEGER = 1901; DaysInFourYears: PRIVATE INTEGER = 4*365 + 1; WestEast: TYPE = {west, east}; LocalTimeParameters: TYPE = MACHINE DEPENDENT RECORD [ direction: WestEast, -- Pacific is west zone: [0..12], -- Pacific = 8 unused1: [0..3B], beginDST: [0..366], -- 121 = April 30 unused2: [0..1B], zoneminutes: [0..59], endDST: [0..366]]; -- 305 = October 31 currentParameters: POINTER TO LocalTimeParameters = LOOPHOLE[570B]; currentTime: POINTER TO InlineDefs.BcplLongNumber = LOOPHOLE[572B]; PackedTime: TYPE = LONG CARDINAL; DefaultTime: PackedTime = 0; UnpackedTime: TYPE = RECORD [ year: [0..2050], -- base year is 1901 month: [0..12), -- January = 0 day: [0..31], -- first day of month = 1 hour: [0..24), minute: [0..60), second: [0..60), weekday: [0..6], -- Monday = 0 zone: [-12..12], dst: BOOLEAN]; CurrentDayTime: PROCEDURE RETURNS [time: PackedTime]; UnpackDT: PROCEDURE [p: PackedTime ← DefaultTime] RETURNS [time: UnpackedTime]; InvalidTime: ERROR; PackDT: PROCEDURE [unp: UnpackedTime, computeDST: BOOLEAN ← TRUE] RETURNS [time: PackedTime]; AppendDayTime: PROCEDURE [s: STRING, unp: UnpackedTime, zone: BOOLEAN ← FALSE]; -- 12-JAN-77 12:34:56 AppendFullDayTime: PROCEDURE [s: STRING, unp: UnpackedTime] = INLINE BEGIN AppendDayTime[s, unp, TRUE]; END; -- 12-JAN-77 12:34:56 PST RealTimeClock: POINTER TO CARDINAL = LOOPHOLE[430B]; ReadClock: PROCEDURE RETURNS [LONG UNSPECIFIED] = MACHINE CODE BEGIN Mopcodes.zMISC, MiscAlpha.aRCLK END; END...