<<>> <> <> <> <> DIRECTORY XMesaCmplr21DefsA, XMesaCmplr21DefsB; XMesaCmplr21: PROGRAM IMPORTS XMesaCmplr21DefsA, XMesaCmplr21DefsB = { <> allocHead: POINTER _ XMesaCmplr21DefsA.ScratchMap[1].pointer; <> XMesa16e: PROCEDURE = { -- from AR 417 CStringType: TYPE = POINTER TO CStringBodyType; CStringBodyType: TYPE = RECORD[PACKED SEQUENCE COMPUTED CARDINAL OF CHAR]; CProcType: TYPE = WORD; ProcDescritorPtrType: TYPE = POINTER TO ProcDescritorBodyType; ProcDescritorBodyType: TYPE = RECORD [proc: CProcType, data: WORD _ 0]; CStartWindow: PROC[ InitProc: CProcType, mailTransportPostProc: CProcType, rNameClearRNameProc: CProcType, mailFormatDecodeProc: CProcType, mailTransportAbortRetrievalProc: CProcType, rNameClearRNameRecordProc: CProcType, mailFormatEncodeProc: CProcType, mailTransportLogoffProc: CProcType, rNameCompareRNamesProc: CProcType, mailFormatFreeAttributesProc: CProcType, mailTransportLogonProc: CProcType, rNameCopyXNameProc: CProcType, mailTransportMailPollProc: CProcType, rNameCopyRNameProc: CProcType, mailTransportRetrieveContentProc: CProcType, copyRNameRecordProc: CProcType, mailTransportRetrieveEnvelopeProc: CProcType, rNameFreeGWSpecificInfoProc: CProcType, inbasketChangeBodyPartsStatusProc: CProcType, mailTransportClearEnvelopeProc: CProcType, rNameFreeOrgUnitsProc: CProcType, inbasketChangeMessageStatusProc: CProcType, mailTransportClearInvalidNameListProc: CProcType, rNameFreePersonalRecordProc: CProcType, inbasketDeleteProc: CProcType, mailTransportFreeLocationsProc: CProcType, rNameFreeRNameProc: CProcType, inbasketFreeInbasketEnvelopeProc: CProcType, mailTransportFreeRecipientListProc: CProcType, rNameFreeRNameListProc: CProcType, inbasketGetSizeProc: CProcType, mailTransportGetLocationsProc: CProcType, rNameFreeRNameListDescProc: CProcType, inbasketLogoffProc: CProcType, rNameFreeRNameRecordProc: CProcType, inbasketLogonProc: CProcType, rNameGetRNameTypeProc: CProcType, inbasketMailCheckProc: CProcType, rNamemakeGWSpecificInfoProc: CProcType, inbasketMailPollProc: CProcType, rNameMakeOrgUnitsProc: CProcType, inbasketRetrieveBodyPartsProc: CProcType, rNameMakePersonalRecordProc: CProcType, inbasketRetrieveEnvelopeProc: CProcType, rNameMakeRNameProc: CProcType, rNameMakeRNameListProc: CProcType, rNameMakeRNameListDescProc: CProcType, rNamemakeRNameRecordProc: CProcType, rNameXNameFromRNameProc: CProcType, rNameRNameFromXNameProc: CProcType] = MACHINE CODE {"StartWindow"}; StartTool: PROC[] = BEGIN CStartWindow[ MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc], MesaProcToCProc[SomeProc]]; END; SomeProc: PROC = {}; MesaProcToCProc: PROC [proc: PROC ANY RETURNS ANY] RETURNS [CProcType] = TRUSTED BEGIN ptr: ProcDescritorPtrType = LOOPHOLE[proc]; RETURN [ptr.proc]; END; }; Proc429: PROC = { p: POINTER _ XMesaCmplr21DefsB.ScratchMap[2].pointer; }; }.