DIRECTORY IO, Menus, Rope, SoftcardFSAccess, SoftcardMonitor, SoftcardTool, ViewerClasses, ViewerIO; SoftcardToolImpl: CEDAR PROGRAM IMPORTS IO, Menus, SoftcardFSAccess, SoftcardMonitor, ViewerIO EXPORTS SoftcardTool ~ BEGIN translateStreamProcs: REF IO.StreamProcs _ IO.CreateStreamProcs[ variety: $input, class: $CRToLFTranslator, getChar: MyGetChar ]; MyGetChar: PROC [self: IO.STREAM] RETURNS [ch: CHAR] = { in: IO.STREAM _ NARROW[self.streamData]; ch _ IO.GetChar[in]; IF ch='\n THEN ch _ '\l; }; CreateCmdStreams: PUBLIC PROC [name: Rope.ROPE] RETURNS [in, out, err: IO.STREAM] ~ { [in, out] _ ViewerIO.CreateViewerStreams[name: IF name=NIL THEN "Puff Console" ELSE name]; in _ IO.CreateStream[translateStreamProcs, in, in]; err _ out; }; BreakSparc: PROC [parent: REF ANY, clientData: REF ANY, mouseButton: Menus.MouseButton, shift, control: BOOL] ~ { SoftcardMonitor.Break[] }; CreateTool: PUBLIC PROC[name: Rope.ROPE _ NIL] ~ { breakEntry: Menus.MenuEntry _ Menus.CreateEntry[ name: "BREAK!", proc: BreakSparc, clientData: NIL, documentation: "Interrupts the Sparc", guarded: FALSE ]; v: ViewerClasses.Viewer; in, out: IO.STREAM; [in, out] _ ViewerIO.CreateViewerStreams[name: IF name=NIL THEN "Puff Console" ELSE name]; in _ IO.CreateStream[translateStreamProcs, in, in]; SoftcardFSAccess.RegisterConsoleStreams[in, out, out]; v _ ViewerIO.GetViewerFromStream[out]; Menus.AppendMenuEntry[menu: v.menu, entry: breakEntry]; }; CreateTool[]; END. 8SoftcardToolImpl.mesa Copyright Σ 1987 by Xerox Corporation. All rights reserved. written by Christian Le Cocq, September 21, 1988 Christian Le Cocq October 12, 1988 11:08:43 am PDT Creates a console for the Sparc Softcard on the 6085. viewer: Viewer ~ NARROW[parent]; Description of the procedure. ΚΞ˜code•Mark outsideHeaderšœ™Kšœ<™Kšœ ˜šœ˜K˜šœœœœ˜@K– "cedar" style˜K– "cedar" stylešœ˜K– "cedar" stylešœ˜K– "cedar" stylešœ˜K– "cedar" style˜—š Οn œœœœœœ˜8Kšœœœœ˜(Kšœœ ˜Kšœœ ˜K˜K˜—šŸœœœ œœœœ˜UKš œ/œœœœ˜ZKšœœ,˜3Kšœ ˜ K˜K˜—šΟb œœ œœœœ2œ˜rKšœœ ™ Kšœ˜K˜K˜—š Ÿ œœœ œœ˜2K™šœ0˜0Kšœ˜K˜Kšœ œ˜K˜&Kšœ ˜K˜—Kšœ˜Kšœ œœ˜Kš œ/œœœœ˜ZKšœœ,˜3Kšœ6˜6Kšœ&˜&Kšœ7˜7K˜K™—Kšœ ˜ —K˜Kšœ˜—…—Έ Ύ