file: XMesaCmplr21.mesa - created by PJ 8/9/89
to check if it will compile with the -u switch
and to test AR359 + AR 417+ AR 429
from AR 344
DIRECTORY
XMesaCmplr21DefsA,
XMesaCmplr21DefsB;
XMesaCmplr21: PROGRAM
IMPORTS XMesaCmplr21DefsA, XMesaCmplr21DefsB = {
AR 359
allocHead: POINTER ← XMesaCmplr21DefsA.ScratchMap[1].pointer;
AR 417
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;
};
}.