-- Runtime.mesa (last edited by: Levin on: August 24, 1982 5:10 pm) DIRECTORY File USING [Capability, PageCount], Mopcodes USING [zKFCB], SDDefs USING [sCallDebugger, sInterrupt, sUnNew], System USING [GreenwichMeanTime]; Runtime: DEFINITIONS = BEGIN -- Global Frame management GlobalFrame: PROC [link: UNSPECIFIED] RETURNS [PROGRAM]; LoadConfig: PROC [ file: File.Capability, offset: File.PageCount, codeLinks: BOOLEAN ← FALSE] RETURNS [PROGRAM]; NewConfig: PROC [ file: File.Capability, offset: File.PageCount, codeLinks: BOOLEAN ← FALSE]; RunConfig: PROC [ file: File.Capability, offset: File.PageCount, codeLinks: BOOLEAN ← FALSE]; UnNewConfig: PROC [link: UNSPECIFIED]; UnNew: PROC [frame: PROGRAM] = MACHINE CODE BEGIN Mopcodes.zKFCB, SDDefs.sUnNew END; SelfDestruct: PROC; NullProgram: PROGRAM = LOOPHOLE[0]; -- Frame validation ValidateGlobalFrame: PROC [frame: UNSPECIFIED]; InvalidGlobalFrame: ERROR [frame: UNSPECIFIED]; ValidateFrame: PROC [frame: UNSPECIFIED]; InvalidFrame: ERROR [frame: UNSPECIFIED]; -- Debugger interface CallDebugger: PROC [STRING] = MACHINE CODE BEGIN Mopcodes.zKFCB, SDDefs.sCallDebugger END; Interrupt: PROC = MACHINE CODE BEGIN Mopcodes.zKFCB, SDDefs.sInterrupt END; -- Version information GetBcdTime: SAFE PROC RETURNS [System.GreenwichMeanTime]; GetBuildTime: SAFE PROC RETURNS [System.GreenwichMeanTime]; -- Debugging information GetCaller: SAFE PROC RETURNS [PROGRAM]; -- Access to compiled tables, etc GetTableBase: PROC [frame: PROGRAM] RETURNS [LONG POINTER]; -- Conditional loading information IsBound: PROC [link: UNSPECIFIED] RETURNS [BOOLEAN]; -- Signals and errors generated by the Pilot Mesa System and of interest to Mesa programmers BoundsFault: ERROR; ConfigError: ERROR [type: ConfigErrorType]; ConfigErrorType: TYPE = { badCode, invalidConfig, missingCode, versionMismatch, unknown}; ControlFault: SIGNAL [source: UNSPECIFIED --ControlLink--] RETURNS [UNSPECIFIED --ControlLink--]; DivideCheck: SAFE SIGNAL; LinkageFault: ERROR; PointerFault: ERROR; PortFault: ERROR; StartFault: SIGNAL [dest: PROGRAM]; StackError: ERROR; UnboundProcedure: SIGNAL [dest: UNSPECIFIED --ControlLink--] RETURNS [UNSPECIFIED --ControlLink--]; ZeroDivisor: SAFE SIGNAL; END. LOG (For earlier log entries see Pilot 4.0 archive version.) Time: April 17, 1980 10:20 AM By: Luniewski Action: Added NullProgram. Time: July 18, 1980 6:22 PM By: Forrest Action: Added LoadConfig. Time: August 5, 1980 10:41 AM By: McJones Action: Added GetBcdTime, Interrupt. Time: September 4, 1980 4:37 PM By: Johnsson Action: Added codeLinks parameters for loading. TIme: August 24, 1982 5:10 pm By: Levin Action: Make things SAFE, make BoundsFault and PointerFault be ERRORs.