Arithmetic Commands .add : .add => .sub : .sub => .mul : .mul => .div : .div => Boolean and Relational Commands .true : .true => <.true> .false : .false => <.false> .eq : .eq => <.true> if n = m <.false> if n # m .gt : .gt => <.true> if n > m <.false> if n <= m .lt : .lt => <.true> if n < m <.false> if n >= m .not : .not => <~b> Stack Manipulation Commands .pop : .pop => -- .copy : ... .copy => ... ... .cntstk : | ... .cntstk => .roll : ... .roll => ... ... .dup : .dup => .clrstk : | ... .clrstk => | .exch : .exch => Dictionary Related Commands .dict : .dict => (dictionary with capacity of i entries) .def : .def => -- (associates the value v with the key k in the current dictionary) .del : .del => -- (deletes the key k from the dictionary d) .load : .load => (loads the value associated with k in the current dictionary) .store : .store => -- (finds a definition of k in the current context and replaces that definition with value v. If no definition of k exists then the definition is placed in the current dictionary.) .put : .put => -- (associates value v with key k in dictionary d.) .get : .get => (retrieves the value associated with k in dictionary d.) .known : .known => <.true> if key k is in dictionary d. <.false> if key k is not in dictionary d. .where : .where => <.true> if k is found in some dictionary d. <.false> if k is not found in any dictionary. .clrdict : .clrdict => -- (clears all entries from dictionary d.) .dictforall: .dictforall => -- (puts on the stack, and then executes . This is done for every k,v pair in dictionary d) .begin : .begin => -- (makes d the current dictionary on the dictionary stack.) .end : .end => -- (pops the current dictionary from the dictionary stack.) .sysdict : .sysdict => Execution Control Commands .exec : .exec => -- (executes object x) .if : .if => -- (if b = .true then execute x) .ifelse : .ifelse => -- (if b = .true then execute x else execute y) .rept : .rept => -- (execute x -- i times) .loop : .loop => -- (execute x until a .exit command is executed) .exit : .exit => -- (exit from the current .rept, .loop, .dictforall, .arrayforall commands) .stop : .stop => -- (clear the execution stack.) .singlestep: .singlestep => -- (put execution control into singlestep mode.) .runfree : .runfree => -- (take execution control out of singlestep mode.) .quit : .quit => -- (save virtual memory and exit to the operating system.) Array Related Commands .array : .array => (new array of length i.) .subarray : .subarray => (a' is the subarray of a starting at position i and with length j.) .aput : .aput => -- (store v in the ith position of a.) .aget : .aget => (get v from the ith position of a.) .aload : .aload => .astore : ... .astore => (store x1 ... xi into array a of length i.) .arrayforall: .dictforall => -- (puts the contents of ai on the stack, and then executes . This is done for every ai pair in array a) Input/Output and Stream Related Commands .print : .print => -- (.prints the string s on the current output stream.) .bytestream: .bytestream => (this command creates a bytestream with the access characteristics represented by . Here = 1 for read, 2 for write, 4 for append -- or the sum of any of these. The created stream type object is left on the operand stack.) .keystream : .keystream => (this command creates a keystream and leaves it on the operand stack.) .killstream: .killstream => (this command kills the given stream.) .writebytes: .writebytes => -- (write bytes in string s appended to stream t.) .loadbcd : .loadbcd => -- (load mesa bcd and start.) Attribute Related Commands .type : .type => (deliver the name of the type on top of operand stack. Current types include. .nulltype, .intergertype, .longintegertype, .realtype, .booleantype, .stringtype, .stringlittype, .streamtype, .streamlittype, .arraytype, .arraylittype, .dicttype, .commandtype, .stacktype, .frametype.) .length : .length => (length of: string (in characters); array (in elements); dictionary (in entries).) .cvs : .cvs => (convert to string equivalent.) .cvis : .cvis => (convert into given string space. This command will use s for all number and boolean conversions.) .cvlit : .cvlit => (convert into literal form -- works for strings, and arrays.) Scanner and String Manipulation Commands .token : .token => (strip first token from given stream or string. Return remainder and token on the stack. If no token, then return only a NullType Object.) (1792)\b20B114b32B273b28B33o252 1o0 3o252 1o0 8o252 1o0 16o252 1o0 3o252 1o0 8o252 1o0 3o252 1o0 3o252 1o0 8o252 1o0 16o252 1o0 3o252 1o0 8o252 1o0 27o252 1o0 3o252 1o0 8o252 1o0 19o252 11o0 8o252 1o0 3o252 1o0 6o252 7o0 42o252 1o0 3o252 1o0 8o252 1o0 47b28B1339b28B670b22B214o4 2o0 62o4 2o0 52o252 1o0 3o252 1o0 8o252 1o0 29o252 1o0 6o252 1o0 89o252 1o0 66o252 1o0 20b40B720b27B732b41B