<> <> <> <> <> <> <> <<>> DIRECTORY IO, ProcessorFace, Rope USING [ROPE], SystemVersion, UXIO USING [CreateStandardStream]; Greet: CEDAR PROGRAM IMPORTS IO, ProcessorFace, UXIO EXPORTS SystemVersion ~ BEGIN verbose: BOOL = FALSE; MachineType: TYPE ~ SystemVersion.MachineType; dateRope: Rope.ROPE = "April 11, 1994"; release: PUBLIC SystemVersion.ReleaseNumber ¬ [major: 10, minor: 1, patch: 3]; greetRopeVerbose: Rope.ROPE ¬ IO.PutFLR[" Welcome to Cedar %g.%g.%g of %g. Copyright (c) 1991 by Xerox Corporation. All rights reserved. Copyright protection claimed includes all forms and matters of copyrightable material and information now allowed by statutory or judicial law or hereinafter granted, including without limitation, material generated from the software programs which are displayed on the screen such as icons, screen display looks, character bitmaps, etc. ", LIST[[integer[release.major]], [integer[release.minor]], [integer[release.patch]], [rope[dateRope]] ] ]; greetRope: Rope.ROPE ¬ IO.PutFLR[" Welcome to Cedar %g.%g.%g of %g. ", LIST[[integer[release.major]], [integer[release.minor]], [integer[release.patch]], [rope[dateRope]] ] ]; GetMachineType: PUBLIC PROC RETURNS [MachineType] ~ { RETURN[ProcessorFace.GetProcessorType[]] }; GetMachineTypeName: PUBLIC PROC [type: MachineType] RETURNS [ATOM] ~ { RETURN[ProcessorFace.GetProcessorTypeName[type]] }; MachineTypeFromName: PUBLIC PROC [name: ATOM] RETURNS [MachineType] ~ { RETURN[ProcessorFace.ProcessorTypeFromName[name]] }; LastMachineType: PUBLIC PROC RETURNS[MachineType] ~ { RETURN[ProcessorFace.LastProcessorType[]] }; Run: PROC ~ { greetStream: IO.STREAM ¬ UXIO.CreateStandardStream[output]; greetStream.PutRope[ greetRope ]; greetStream.Close[]; }; IF verbose THEN Run[]; END.