DIRECTORY Booting USING[ Switches ], Disk USING[ Channel, PageCount, PageNumber ], File USING[ RC, Volume, VolumeFile, VolumeID ], IO USING[ STREAM ], PhysicalVolume USING[ Physical ], Rope USING[ ROPE ]; IagoOps: CEDAR DEFINITIONS = BEGIN OPEN IO, Rope; --File.--VolumeID: TYPE = MACHINE DEPENDENT RECORD[ a,b,c: CARDINAL, t: LONG CARDINAL ]; Rubout: ERROR; GetID: PROC [in, out: STREAM, default: ROPE, init: ROPE _ NIL, echo: BOOL _ TRUE] RETURNS [id: ROPE, c: CHAR]; CommandList: TYPE = LIST OF CommandInfo; CommandProc: TYPE = PROC [in,out: STREAM]; CommandInfo: TYPE = RECORD [ commandProc: CommandProc, fullName: ROPE _ NIL, okWhenNoDisk: BOOL _ FALSE]; RegisterCommand: PROC [info: CommandInfo]; GetCommandList: PROC RETURNS [CommandList]; GetCommand: PROC[in, out: STREAM, diskReadable: BOOL] RETURNS [found: CommandInfo]; GetArg: PROC[in, out: STREAM, prompt, default: ROPE, help: PROC] RETURNS [value: ROPE _ NIL]; Confirm: PROC[in, out: STREAM] RETURNS[BOOL]; ConfirmDestruction: PROC[in, out: STREAM, which: ROPE] RETURNS[BOOL]; GetNumber: PROC [in, out: STREAM, default: INT, max: INT _ LAST[INT], prompt, help: ROPE] RETURNS[size: INT _ 0]; GetSize: PROC[in, out: STREAM, default: INT, max: INT _ LAST[INT]] RETURNS[size: INT _ 0]; GetFile: PROC[ in, out: STREAM, prompt: ROPE _ NIL, extension: ROPE _ NIL, default: ROPE _ NIL, wDir: ROPE _ NIL, check: BOOL _ FALSE, pattern: BOOL _ FALSE] RETURNS[name: ROPE]; GetSwitches: PROC[in, out: STREAM] RETURNS[switches: Booting.Switches]; clientVolName: ROPE; GetLogical: PROC[in, out: STREAM, direction: ROPE _ NIL] RETURNS[v: File.Volume]; GetPhysical: PROC[in, out: STREAM] RETURNS[p: PhysicalVolume.Physical]; GetDrive: PROC[in, out: STREAM] RETURNS[d: Disk.Channel]; FileError: PROC[why: File.RC] RETURNS[ROPE]; ReservePages: PROC[in, out: STREAM, p: PhysicalVolume.Physical]; CheckAltoRegions: PROC[in, out: STREAM] RETURNS[BOOL]; ReserveAltoRegions: PROC[in, out: STREAM]; NextRun: PROC[d: Disk.Channel, origin: Disk.PageNumber] RETURNS[firstPage: Disk.PageNumber, pageCount: Disk.PageCount-- -1 at end of disk --]; NewID: PROC RETURNS[new: File.VolumeID]; PutID: PROC[out: STREAM, id: File.VolumeID]; InitialMicrocodeFileName: PROC RETURNS[ROPE]; RemoteRootFileName: PROC[which: File.VolumeFile[checkpoint..bootFile]] RETURNS[ROPE]; LocalRootFileName: PROC[which: File.VolumeFile] RETURNS[ROPE]; WriteRemoteNames: PROC [volume: ROPE, out: STREAM] RETURNS [success: BOOL]; ReadRemoteNames: PROC [volume: ROPE] RETURNS [success: BOOL]; ext: PUBLIC ARRAY File.VolumeFile[checkpoint..bootFile] OF ROPE; END. ζIagoOps.mesa - Iago internal interface Copyright c 1984, 1985 by Xerox Corporation. All rights reserved. Andrew Birrell December 7, 1983 10:42 am Willie-Sue, March 8, 1984 5:37:01 pm PST Russ Atkinson, April 1, 1985 3:58:05 pm PST Registers a new command with Iago. This registry is NOT protected against concurrent access. Writes the remote names available through DefaultRemoteNames to the named volume as []RemoteNames.DontDeleteMe. Errors or success are reported through the out stream (if any). volume = NIL => use system volume. Reads the remote names (and affects DefaultRemoteNames.Get[]) from []RemoteNames.DontDeleteMe. Errors are ignored, but cause success = FALSE. volume = NIL => use system volume. Κα˜codešœ&™&Kšœ Οmœ7™BKšœ)™)K™(K™+—K˜šΟk ˜ Kšœžœ ˜Kšœžœ#˜-Kšœžœžœ!˜/Kšžœžœžœ˜Kšœžœ ˜!Kšœžœžœ˜—K˜Kš œ žœž œžœžœžœ˜1K˜š Οc œ žœžœž œžœ˜3Kšœžœ˜Kšœžœž˜K˜—K˜Kšœžœ˜K˜KšΟnœžœ žœ žœžœžœžœžœžœžœžœ˜nK˜Kšœ žœžœžœ ˜(Kš  œžœžœ žœ˜*Kš œ žœžœ'žœžœžœžœ˜iK˜š œžœ˜*Kšœ]™]K˜—Kš œžœžœ˜+K˜Kš   œžœ žœžœžœ˜SK˜Kš œžœ žœžœžœžœžœžœ˜]K˜Kš  œžœ žœžœžœ˜-K˜Kš  œžœ žœ žœžœžœ˜EK˜Kš  œžœ žœ žœžœžœžœžœžœžœ˜qK˜Kš œžœ žœ žœžœžœžœžœžœ˜ZK˜š œžœ˜Kšœ žœ˜Kšœžœžœ˜Kšœ žœžœ˜Kšœ žœžœ˜Kšœžœžœ˜Kšœžœžœ˜Kšœ žœžœ˜Kšžœžœ˜—K˜Kš  œžœ žœžœ˜GK˜Kšœžœ˜K˜Kš   œžœ žœ žœžœžœ˜QK˜Kš  œžœ žœžœ˜GK˜Kš œžœ žœžœ˜9K˜Kš   œžœ žœžœžœ˜,K˜Kš  œžœ žœ˜@K˜Kš  œžœ žœžœžœ˜6K˜Kš œžœ žœ˜*K˜Kš œžœ+žœ6Ÿœ˜ŽK˜Kš œžœžœ˜(K˜Kš œžœžœ˜,K˜Kš  œžœžœžœž˜-K˜Kš œžœ/žœžœ˜UK˜Kš œžœžœžœ˜>K˜š  œžœ žœžœžœ žœ˜KKšœά™άK™—š  œžœ žœžœ žœ˜=KšœΊ™Ί—K˜Kš œžœžœ'žœžœ˜@K˜Kšžœ˜—…— ,σ