DIRECTORY BasicTime, OSOps, Commander, IO, RealFns, UnsafeStorage; OSCedarImpl: CEDAR PROGRAM IMPORTS BasicTime, Commander, IO, RealFns, UnsafeStorage EXPORTS OSOps = BEGIN PutChar: PUBLIC PROCEDURE [ch: CHAR] = { IF ch = '\l THEN out.PutChar[IO.CR] ELSE out.PutChar[ch]; }; GetSystemUZone: PUBLIC PROC RETURNS [UNCOUNTED ZONE] = TRUSTED { RETURN [UnsafeStorage.GetSystemUZone[]]; }; microSecondsPerMilSec: CARD = 1000; CurrentTime: PUBLIC PROCEDURE RETURNS [currentTime: LONG CARDINAL] ~ { currentTime _ BasicTime.PulsesToMicroseconds[ BasicTime.GetClockPulses[]]/microSecondsPerMilSec; }; PutReal: PUBLIC PROCEDURE [r: REAL] = { IO.PutF[out, "%4.1f", [real[r]]];}; AlmostEqual: PUBLIC PROCEDURE [y, x: REAL, distance: INTEGER [-126..0]] RETURNS [BOOLEAN] = { RETURN[RealFns.AlmostEqual[y, x, distance]]; }; out: IO.STREAM; Main: Commander.CommandProc --PROC [cmd: Handle] RETURNS [result: REF _ NIL, msg: ROPE _ NIL] -- = { out _ cmd.out; }; Init: PROCEDURE = { Commander.Register["OSCedar", Main]; }; Init[]; END. : OSCedarImpl.mesa JKF March 22, 1988 4:28:42 pm PST ÊÖ•NewlineDelimiter ™J™J™!J˜šÏk ˜ J˜ J˜J˜ Jšœ˜J˜J˜J˜—šÏn œœœ˜Jšœœ˜9Jšœ œ˜J˜šžœœ œœ˜(Jš œ œ œœœ˜9J˜J˜—šžœœœœ œœœ˜@Jšœ"˜(J˜J˜—Jšœœ˜#J˜š ž œœ œœœœ˜G˜-J˜2—J˜J˜—šžœœ œœ˜'Jšœ!˜#J˜—š ž œœ œœ œ ˜HJšœœ˜Jšœ&˜,J˜J˜—Jšœœœ˜J˜šžœ˜JšÏcDœ˜HJ˜J˜J˜—šžœ œ˜J˜$J˜J˜—J˜J˜—Jšœ˜—…—