DIRECTORY Basics, IO, Rope, RoseTransduce, 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] = { IF wire.structure # atom THEN ERROR; 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 [rwt: RoseWireType] 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, September 22, 1985 4:36:52 pm PDT Κ\– "cedar" style˜codešœ™Kšœ Οmœ1™˜RK˜šΠbx œžœž˜Kšžœ˜Kšžœ˜—K˜Kšžœžœ˜K˜š Οnœžœžœžœžœ˜EK˜—šœ&žœ˜CKšœ˜Kšœ žœ˜Kšœ žœ˜Kšœ˜Kšœ,˜,Kšœ˜Kšœ ˜ Kšœ˜K˜—šœžœ˜4Kšœ˜Kšœ žœ˜Kšœžœ˜Kšœ žœ˜Kšœ˜K˜—š  œžœ"žœ˜SKšžœžœžœ˜$Kšžœ ˜Kšœ˜K˜—šœ žœžœ˜8Kšœ˜Kšœ žœ˜Kšœ ˜ Kšœžœ˜ K˜—Kšœžœžœžœžœ žœ žœžœžœ žœžœ˜aK˜š   œžœžœžœžœ˜NK˜—š œžœžœ˜KKšœ˜K˜—š œžœžœ˜Cšœ˜Kšœ)˜)Kšœ žœ˜Kšœ˜—Kšœ˜K˜—Kšžœ˜—…—DL