(
/nestprompt)
(Redefines prompt to append a !, opens a new keystream for execution,
and then restores prompt when stream is terminated)
( (.prompt) 2 .array
.dup 0 (.prompt).load .aput
.dup 1 ((!).print) .cvx .aput .cvx .def
.keystream .cvx .prompt .exec
(.prompt) .dup .load 0 .aget .def )
/xdef

(
.stkundflw)((**Stack Underflow - attempt to retrieve argument from empty stack.) = /stk /nestprompt ) .cvx .def
(
.undefkey)((**Undefined symbol: ).print = /stk /nestprompt) .cvx .def
(
.longname) ((**Long File Name --file name passed to .run or .bytestream is too long (256 chars). ) = /stk /nestprompt).cvx .def
(
.badname)
((**Bad File Name -- attempt to create stream with given name.) = /stk /nestprompt).cvx .def
(
.typechk)
((**Type Error -- bad arguments on stack --) = /stk /nestprompt).cvx .def
(
.dictfull)
(( **Dictionary Full --an attempt to define entry into full dictionary.) = /stk /nestprompt).cvx .def
(
.syntaxerr)
((**Syntax Error-- an isolated right paren has been found by the scanner.) = /stk /nestprompt).cvx .def
(
.overflow)
((**Numeric Overflow-- numeric overflow has occurred in scanning a number.) = /stk /nestprompt).cvx .def
(
.stkovrflw)
((**Stack Overflow-- This error may come from various parts of the JaM machine. When error occurs, all stacks are stored into arrays and put on operand stack in the order: opstack, dictstack, execstk.) = /stk /nestprompt).cvx .def
(
.rangechk)
((**Range Error -- some string or array operation is attempting to store out of bounds.) = /stk /nestprompt).cvx .def