<> <> <> <> <<>> DIRECTORY TJaMBasic USING [DictBody, Object, Root, StringLength, Tuple, TuplePtr]; TJaMVM: DEFINITIONS = { <> AllocString: PROC[length: TJaMBasic.StringLength] RETURNS[string TJaMBasic.Object]; AllocArray: PROC[length: CARDINAL] RETURNS[array TJaMBasic.Object]; AllocDict: PROC[size: CARDINAL] RETURNS[dict TJaMBasic.Object]; GetRoot: PROC[root: LONG POINTER TO TJaMBasic.Root]; PutRoot: PROC[root: LONG POINTER TO TJaMBasic.Root]; GetDict: PROC[dict: dict TJaMBasic.Object] RETURNS[TJaMBasic.DictBody] = INLINE { RETURN[dict.dict^] }; PutDict: PROC[dict: dict TJaMBasic.Object, dd: TJaMBasic.DictBody] = INLINE { dict.dict^ _ dd }; GetTuple: PROC[slot: TJaMBasic.TuplePtr] RETURNS[TJaMBasic.Tuple] = INLINE { RETURN[slot^] }; PutTuple: PROC[slot: TJaMBasic.TuplePtr, tuple: TJaMBasic.Tuple] = INLINE { slot^ _ tuple }; GetElem: PROC[array: array TJaMBasic.Object, i: CARDINAL] RETURNS[TJaMBasic.Object] = INLINE { RETURN[array.base[i]] }; PutElem: PROC[array: array TJaMBasic.Object, i: CARDINAL, object: TJaMBasic.Object] = INLINE { array.base[i] _ object }; GetChar: PROC[string: string TJaMBasic.Object, i: CARDINAL] RETURNS[CHARACTER] = INLINE { RETURN[string.text[i+string.offset]] }; PutChar: PROC[string: string TJaMBasic.Object, i: CARDINAL, char: CHARACTER] = INLINE { string.text[i+string.offset] _ char }; CopyArray: PROC[src,dst: array TJaMBasic.Object]; <> CopyString: PROC[src,dst: string TJaMBasic.Object]; <> GetText: PROC[string: string TJaMBasic.Object, text: LONG STRING]; PutText: PROC[string: string TJaMBasic.Object, text: LONG STRING]; <> Start: PROC; }.