TJaMVM.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Last edit by Bill Paxton, 30-Jan-82 8:43:16
Michael Plass, February 14, 1985 12:25:11 pm PST
DIRECTORY
TJaMBasic USING [DictBody, Object, Root, StringLength, Tuple, TuplePtr];
TJaMVM: DEFINITIONS = {
Virtual memory access
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];
copies MIN[src.length,dst.length] objects
CopyString: PROC[src,dst: string TJaMBasic.Object];
copies MIN[src.length,dst.length] characters
GetText: PROC[string: string TJaMBasic.Object, text: LONG STRING];
PutText: PROC[string: string TJaMBasic.Object, text: LONG STRING];
these transfer MIN[string.length,text.maxlength] characters
Start: PROC;
}.