-- File: XFSP.mesa -- Last Updated: October 15, 1980 4:26 PM DIRECTORY AltoDefs: FROM "AltoDefs" USING[PageSize], SegmentDefs: FROM "SegmentDefs" USING[DataSegmentHandle, NewDataSegment, DefaultXMBase, LongDataSegmentAddress], XFSPDefs: FROM "XFSPDefs"; XFSP: PROGRAM IMPORTS SegmentDefs EXPORTS XFSPDefs = BEGIN OPEN AltoDefs, SegmentDefs; Count: CARDINAL; CurrentSegmentPointer: LONG POINTER _ NIL; XAllocateHeapNode: PUBLIC PROCEDURE[size: CARDINAL] RETURNS[ptr: LONG POINTER] = BEGIN IF CurrentSegmentPointer=NIL OR Count+size>PageSize THEN BEGIN IF size>PageSize THEN ERROR; CurrentSegmentPointer _ LongDataSegmentAddress[NewDataSegment[DefaultXMBase,1]]; Count _ 0; END; ptr _ CurrentSegmentPointer + Count; Count _ Count + size; END; END. (635)\9f1 4f0 51b9B158f1 8f0 8f1 8f0 8f1b4f0B40f1 8f0