DIRECTORY
Process USING [EnableAborts],
PrincOps USING [FrameHandle, returnOffset, zBLTL, zLLB];
CommUtilDefs:
DEFINITIONS IMPORTS Process =
BEGIN
for finding out where we really are
thisIsAnAlto: BOOLEAN = FALSE;
Buffer/IOCB Allocation
AllocateBuffers: PROC [nwords: CARDINAL] RETURNS [base: LONG POINTER];
FreeBuffers: PROC [base: LONG POINTER, nwords: CARDINAL];
AllocateIocb: PROC [CARDINAL] RETURNS [LONG POINTER];
FreeIocb: PROC [LONG POINTER];
Lock Interrupt routines
LockCode: PROC [UNSPECIFIED] = INLINE {}; -- useful in Alto world
UnlockCode: PROC [UNSPECIFIED] = INLINE {}; -- useful in Alto world
This is needed because of Process/ProcessDefs LONG/Short complications
Shortens in the Alto world, noop in Pilot world
MaybeShorten:
PROC [p:
LONG
POINTER]
RETURNS [
LONG
POINTER] =
INLINE {
RETURN[p]};
GetEthernetHostNumber: PROC RETURNS [CARDINAL];
Debugging things
FrameHandle: TYPE = PrincOps.FrameHandle;
GetReturnFrame:
PROC
RETURNS [FrameHandle] =
MACHINE
CODE
BEGIN PrincOps.zLLB, PrincOps.returnOffset END;
Other goodies
EnableAborts:
PROC [condPtr:
LONG
POINTER
TO
CONDITION] =
INLINE
{Process.EnableAborts[condPtr]};
Zero: PROC [POINTER, CARDINAL];
CopyLong:
PROC [from:
LONG
POINTER, nwords:
CARDINAL, to:
LONG
POINTER] =
MACHINE CODE BEGIN PrincOps.zBLTL END;
FriendOfCopyLong: PROC [from: LONG POINTER, nwords: CARDINAL, to: LONG POINTER];
This is a hack for debugging
SetDebuggingPointer: PROC [LONG POINTER] = INLINE {}; -- useful in Alto world
END......