TimeConvert.mesa_Mar78.pdf | | TimeConvert.mesa 30-MAR-78 14:47:33 Page 1
-- TimeConvert.Mesa Edited by Johnsson on March 21, 1978 8:38 AM
DIRECTORY
InlineDefs: FROM "inlinedefs",
StringDefs: FROM "stringdefs",
TimeDefs: FROM "timedefs";
DEFINITIONS FROM TimeDefs;
TimeConvert: PROGRAM IMPORTS StringDefs EXPORTS TimeDefs SHARES TimeDefs
BEGIN
--This should be a constant in TimeDefs, but ...
DefaultTime: PackedTime = PackedTime[O,O];
UP: TYPE = POINTER TO UnpackedTime;
DivideTime: PROCEDURE [num: PackedTime, den: CARDINAL]
RETURNS [quotient: PackedTime, remainder: CARDINAL] =
BEGIN OPEN InlineDefs;
t: CARDINAL;
[quotient.highbits, t] ~ LDIVMOD[num.highbits,O,den];
[quotient.lowbits, remainder] ~ LDIVMOD[num.lowbits,t,den];
RETURN
END;
MultiplyTime: PROCEDURE [multiplicand: PackedTime, multiplier: CARDINAL]
RETURNS [result: PackedTime] =
BEGIN OPEN InlineDefs;
t: CARDINAL;
result.highbits ~ multiplicand.highbits * multiplier;
[result. |