-- Copyright (C) 1985, 1986 by Xerox Corporation. All rights reserved. -- CBasics.mesa -- NFS 18-Dec-85 15:01:02 -- BGY 11-Mar-86 14:51:55 -- MEW 14-Apr-86 13:14:45 DIRECTORY AtomVariants USING [ATRecord], CString USING [CString], Stream USING [Handle]; CBasics: DEFINITIONS = { ArraySpaceHandle: TYPE = LONG POINTER TO ArraySpace; ArraySpace: TYPE; FilePtr: TYPE = LONG POINTER TO Stream.Handle; ArgChoice: TYPE = MACHINE DEPENDENT{neither, justArgC, both}; MainProc: TYPE = MACHINE DEPENDENT RECORD [ proc(0): SELECT args(0): ArgChoice FROM neither => [main0(1): PROCEDURE RETURNS [INTEGER]], justArgC => [main1(1): PROCEDURE [argC: CARDINAL] RETURNS [INTEGER]], both => [ main2(1): PROCEDURE [ argC: CARDINAL, argV: LONG POINTER TO CString.CString] RETURNS [INTEGER]], ENDCASE]; CommonRecPtr: TYPE = LONG POINTER TO AtomVariants.ATRecord; RegisterConfig: PROCEDURE [wordsNeeded: LONG CARDINAL]; RegisterFrame: PROCEDURE [wordsNeeded: LONG CARDINAL] RETURNS [ArraySpaceHandle]; NextArray: PROCEDURE [heap: ArraySpaceHandle, nWords: LONG CARDINAL] RETURNS [next: LONG POINTER]; CallMain: PROCEDURE [main: MainProc]; GetBcdInfo: PROCEDURE RETURNS [numArgs: CARDINAL, arraySize: LONG CARDINAL, commonInfo: CommonRecPtr]; StartConfig: PROCEDURE; GetCommons: PROCEDURE [comm: CommonRecPtr, comSpace: ArraySpaceHandle]; GetCommonSize: PROCEDURE [comm: CommonRecPtr] RETURNS [totSize: LONG CARDINAL ← 0]; }.