--SetBootSwitches.mesa -- by Sweet, 18-Mar-82 16:10:28 DIRECTORY Exec, File, Format, MFile, OthelloOps, SpecialMFile, System; SetBootSwitches: PROGRAM IMPORTS Exec, Format, MFile, OthelloOps, SpecialMFile = BEGIN DoIt: Exec.ExecProc = BEGIN Say: Format.StringProc = Exec.OutputProc[h]; suc: OthelloOps.SetGetSwitchesSuccess; file, switches: LONG STRING ← NIL; firstPage: File.PageNumber = SpecialMFile.LeaderPages[]; sw: System.Switches; fh: MFile.Handle ← NIL; cap: File.Capability; Cleanup: PROC = { IF fh # NIL THEN MFile.Release[fh]; file ← Exec.FreeTokenString[file]; switches ← Exec.FreeTokenString[switches]}; BEGIN -- to make variables visible in exits clause [token: file, switches: switches] ← Exec.GetToken[h]; Say["Set default switches in boot file: "L]; Say[file]; Say[" to "L]; Say[switches]; Format.CR[Say]; fh ← MFile.ReadWrite[file, [], binary ! MFile.Error => {Say["-- trouble opening file"L]; GO TO failed}]; cap ← SpecialMFile.GetCapaWithAccess[fh]; sw ← OthelloOps.DecodeSwitches[switches ! OthelloOps.BadSwitches => {Say[" -- bad switches"L]; GO TO failed}]; suc ← OthelloOps.SetSwitches[cap, firstPage, sw]; IF suc # success THEN {Say[" -- didn't succeed"L]; GO TO failed}; Cleanup[]; EXITS failed => {Cleanup[]; RETURN[error]}; END; END; Exec.AddCommand["SetBootSwitches.~", DoIt]; END.