Text preview for : InternalNub.mesa_Sep78.pdf part of xerox InternalNub.mesa Sep78 xerox mesa 4.0_1978 listing Mesa_4_Debug InternalNub.mesa_Sep78.pdf



Back to : InternalNub.mesa_Sep78.pd | Home

InternalNub.mesa 2-Sep-78 15:32:14 Page 1



InternalNub.mesa;
Edited by:
Sandman on May 22, 1978 11:55 AM
Barbara on July 18, 1978 3:22 PM
Johnsson on July 18, 1978 2:47 PM
DIRECTORY
AltoDefs: FROM "altodefs" USING [BYTE, BytesPerPage, PageNumber],
AltoFileDefs: FROM "altofiledefs" USING [CFP, eofDA, fillinDA, vDA],
BFSDefs: FROM "bfsdefs" USING [ActOnPages, GetNextOA, MakeCFP],
BootDefs: fROM "bootdefs" USING [GetSystemTable],
ControlDefs: FROM "controldefs" USING [
Controllink, FieldDescriptor, Framellandle, GetReturnFrame, GetReturnlink,
GlobalFrameHandle, Greg, lreg, NullFrame, SetReturnFrame, SetReturnlink,
StateVector],
CoreSwapDefs: FROM "coreswapdefs" USING [
BBHandle, callDP, DebugParameter, ExternalStateVector, Puntlnfo,
PuntTable, startDP, SVPointer, SwapReason, UBBPointer, UserBreakBlock],
DebugData: FROM "debugdata" USING [
DebuggeeFH, DebuggeeFP, DebuggerFP, SelfFP, userwindow],
DebugMiscDefs: FROM "debugmiscdefs" USING [
DebugAbort, Debuglnit, InitializeDebuggerFiles],
DiskDefs: FROM "diskdefs" USING [DiskRequest, RealDA],
FrameDefs: FROM "framedafs" USING [lockCode, UnlockCode, UnNew],
ImageDefs: FROM "imagedefs" USING [
AbortMesa, AddFileRaquest, FileRequest, StopMesa, UserCleanupProc],
InternalNubDefs: FROM "internalnubdefs" USING [InternalDebugCommand],
IODefs: FROM "iodefs" USING [
CR, Newline, WriteChar, Writeline, WriteOctal, WriteString],
KeyDefs: FROM "keydefs" USING [Keys],
loadStateDefs: FROM "loadstatedefs" USING [GetLoadState, SetLoadState],
MiscDefs: FROM "miscdefs" USING [SetBlock],
Mopcodes: FROM "mopcodes" USING [zRFS],
NovaOps: FROM "novaops" USING [NovaJSR],
NucleusDefs: FROM "nucleusdefs" USING [Wart],
ProcessDefs: FROM "processdefs" USING [
Aborted, Disablelnterrupts, EnableInterrupts],
SDDefs: FROM "sddefs" USING [
sBreakBlock, sBreakBlockSize, sCallDebugger, sCoreSwap, SO, sFirstFree,
sInterrupt, sProcessBreakpoint, sUncaughtSignal],
SegmentDefs: FROM "segmentdefs" USING [
Append, CopyDataToFileSegment, CopyFileToDataSegment, DataSegmentAddress,
DataSegmentHandle, DefaultBase, DefaultVersion, DeleteDataSegment,
DeleteFileSegment, EnumerateFileSegments, FileHandle, FileSegmentHandle,
GetEndOfFile, GetFileSegmentDA, LockFile, NewDataSegment, NewFile,
NewFileSegment, Read, ReleaseFile, SetEndOfFile, SetFileAccess,
SetFileSegmentDA, UnlockFile, Write],
SystemDefs: FROM "systemdefs" USING [PagesForWords],
TrapDefs: FROM "trapdefs" USING [ParityError, PhantomParityError],
WindowDefs: FROM "windowdefs" USING [
GetCurrentDisplayWindow, SetCurrentDisplayWindow, SetFileForWindow,
Windowllandle];
bEFINITIONS FROM CoreSwapDefs;
InternalNub: PROGRAM [user: PROGRAM]
IMPORTS BFSDefs, BootDefs, DDptr: DebugOata, DebligMiscDefs, DiskDefs,
FrameDefs, ImageDefs, InternalNubDefs, IODefs, LoadStateDefs, MiscDefs,
NucleusDefs, ProcessDefs, SegmentDefs, SystemDefs, frapDefs, WindowDefs
EXPORTS CoreSwapDefs, InternalNubDefs
SHARES BootDefs, SegmentDefs, ControlDefs =
BEGIN
FileHandle: TYPE = SegmentDefs.FileHandle;
ProcessBreakpoint: PROCEDURE [s: CoreSwapDefs.SVPointer] ~
BEGIN -- called by BRK trap handler in resident code
inst: AltoDefs.BYTE;
swap: BOOLEAN;
[inst, swap] ~ DoBreakpoint[s];
IF swap THEN
BEGIN
FrameOeFs.LockCode[s.dest];
CoreSwap[breakpoint, s];
frameDefs.UnlockCode[s.dest];
InternalNub.mesa 2-Sep-78 15:32:14 Page 2


END
ELSE s.instbyte ~ inst; --replant the instruction and go on
RETURN
END;
DoBreakpoint: PROCEDURE [s: CoreSwapDefs.SVPointerJ
RETURNS [AltoDefs.BYTE, BOOLEANJ