<> <> DIRECTORY Environment USING [wordsPerPage], LongStorage: TYPE USING [Free, FreeString, FreeWords, Node, Pages, String, Words]; Spaces: DEFINITIONS IMPORTS LongStorage = { Address: TYPE = LONG POINTER; Node: PROC [nwords: CARDINAL] RETURNS [p: Address] = INLINE { RETURN [LongStorage.Node[nwords]]}; String: PROC [nchars: CARDINAL] RETURNS [s: LONG STRING] = INLINE { RETURN [LongStorage.String[nchars]]}; Pages: PROC [npages: CARDINAL] RETURNS [base: Address] = INLINE { RETURN [LongStorage.Pages[npages]]}; Words: PROC [nwords: CARDINAL] RETURNS [base: Address] = INLINE { RETURN [LongStorage.Words[nwords]]}; Free: PROC [p: Address] = INLINE {LongStorage.Free[p]}; FreeString: PROC [s: LONG STRING] = INLINE {LongStorage.FreeString[s]}; FreePages, FreeWords: PROC [base: Address] = INLINE {LongStorage.FreeWords[base]}; PagesForWords: PROC [nWords: CARDINAL] RETURNS [CARDINAL] = INLINE { RETURN[(nWords + (Environment.wordsPerPage-1))/Environment.wordsPerPage]}; }.