DIRECTORY Basics, IO, Rope, RoseWireClasses, RoseWireTypes, VFonts; RoseDriveImpl: CEDAR PROGRAM IMPORTS EXPORTS RoseWireClasses = BEGIN OPEN RoseWireTypes; GetDrive: PUBLIC PROC RETURNS [RoseWireClass] = {RETURN[driveClass]}; driveSuperClass: RoseWireSuperClass _ NEW[RoseWireSuperClassRec _ [ GetType: DriveGetType, ListFormats: NIL, GetFormat: NIL, Bits: DriveBits, MesaRepresentation: DriveMesaRepresentation, MesaRepAux: DriveMesaRepAux, flavor: drive ]]; driveClass: RoseWireClass _ NEW[RoseWireClassRec _ [ structure: atom, dereference: FALSE, addressContaining: FALSE, classData: NIL, super: driveSuperClass]]; DriveGetType: PROC [rwc: RoseWireClass, wire: Wire] RETURNS [rwt: RoseWireType] = { RETURN[driveType]; }; driveType: PUBLIC RoseWireType _ NEW[RoseWireTypeRec _ [ class: driveClass, typeData: NIL, length: 0, other: NIL]]; BitsPerDrive: NAT = SIZE[PACKED ARRAY [0 .. 32) OF Drive] / SIZE[PACKED ARRAY [0 .. 32) OF BOOL]; DriveBits: PROC [rwc: RoseWireClass] RETURNS [n: INT] = {RETURN[BitsPerDrive]}; DriveMesaRepresentation: PROC [rwc: RoseWireClass] RETURNS [mesa: Mesa] = { mesa _ [mesa: "Drive"]}; DriveMesaRepAux: PROC [rwc: RoseWireClass] RETURNS [mesa: Mesa] = { mesa _ [ mesa: "Drive: TYPE = RoseBehavior.Drive", directory: LIST["RoseBehavior"] ]; }; END. ΞRoseDriveImpl.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Barth, September 5, 1985 6:37:22 pm PDT Spreitzer, October 22, 1985 4:42:42 pm PDT IF wire.structure # atom THEN ERROR; Κ\– "cedar" style˜codešœ™Kšœ Οmœ1™