-- MDMain.Mesa -- last edit by Schmidt, January 6, 1983 1:53 pm -- last edit by Satterthwaite, January 31, 1983 2:58 pm -- Pilot 6.0/ Mesa 7.0 -- definitions file for the main procedures of the modeller DIRECTORY IO: TYPE USING [Handle], Rope: TYPE USING [Text], Subr: TYPE USING [TTYProcs], TypeScript: TYPE USING [TS]; MDMain: DEFINITIONS = { -- each one of these procedures acquires the MONITOR LOCK -- so only one of them can be in the MONITOR at a time Transaction: TYPE = RECORD [ filename: Rope.Text, noninteractive: BOOL, ttyprintwindow: Subr.TTYProcs, ttyTypeScript: TypeScript.TS, ttyin, ttyout: IO.Handle, msgout, debugout: IO.Handle]; -- attach modeller to Tioga Editor AttachSymbiote: PROC[msgout: IO.Handle]; -- Begin compile, load, and start Begin: PROC[action: REF Transaction, confirm: REF BOOL]; -- useful for debugging, just generates a config Bind: PROC; -- take the model and compile and bind it if necessary -- if uniquename is TRUE then the binder will generate a bcd name -- that is different from others on the local disk -- if dontconfirm is TRUE, then don't ask the user -- to confirm compiles and binds Compile: PROC[ action: REF Transaction, uniquename, tryreplacement: BOOL, confirm: REF BOOL]; -- compile with repl, load with repl Continue: PROC[confirm: REF BOOL]; -- call this procedure to either write a character in the debugging messages -- subwindow, if it exists, or throw the character away DebugWP: PROC[ch: CHAR]; -- detach modeller from Tioga Editor DetachSymbiote: PROC[msgout: IO.Handle]; -- makes the modeller look like a loader, loads the bcds Loader: PROC[tryreplacement: BOOL]; -- just make the model "filename" -- ttyprintwindow is the window to print on MakeModel: PROC[action: REF Transaction]; -- notice "filename" Notice: PROC[filename: Rope.Text]; -- look thru the model, do a notice on all the files NoticeAll: PROC; -- transfer back any files that have been changed, write new model Permanent: PROC; -- will print the line between the commands PrintSeparatorLine: PROC; -- just like StartModelling but does a StopModelling first ReStartModelling: PROC[action: REF Transaction]; -- set nested model to search from SetWorkingModel: PROC[modelname: Rope.Text]; -- having loaded the bcds with Loader, this will start the bcds Start: PROC; -- Start modelling on "filename" -- ttyprintwindow is the window to print on -- msgwindow is for compiler and binder status messages StartModelling: PROC[action: REF Transaction]; -- stop modelling on this model StopModelling: PROC; -- write out model if its been changed, to local disk Temporary: PROC; -- print out model on screen Type: PROC[modelname: Rope.Text, default: BOOL]; -- unloads what Loader loads UnLoader: PROC; -- VARIABLES modellerIsIdle: VAR BOOL; -- PROGRAMs MDMainImpl: PROGRAM; }.