--- freem/doc/freem.texi 2025/05/05 12:51:46 1.46 +++ freem/doc/freem.texi 2025/05/05 13:13:39 1.48 @@ -271,12 +271,14 @@ Refers to an M intrinsic special variabl Indicates a @emph{list} of the following item, e.g., @emph{L gvn} means @emph{list of global variable names}. @item @emph{lvn} Refers to the name of an M local variable. +@item @emph{postcondition} +A @emph{tvexpr} immediately following a command verb affecting that command's execution. @item @emph{strlit} Refers to an M string literal. @item @emph{ssvn} Refers to the name of an M structured system variable. @item @emph{tvexpr} -Refers to a truth-valued expression. +Refers to a truth-valued expression, i.e., an expression interpreted as a truth value. @end table @node A Note on Standards @@ -2043,9 +2045,9 @@ Identical to @ref{$TRANSLATE()}, except * WRITE:: Write output to current input/output device. * XECUTE:: Interpret string as M code. * ZASSERT:: Raise error when a conditional expression evaluates @emph{false}. -* ZBREAK:: Unknown. +* ZBREAK:: Enable/disable ZBREAK mode. * ZCONST:: Define a constant that cannot be altered after initial definition. -* ZGO:: Unknown. +* ZGOTO:: @code{GOTO} with @code{BREAK} control. * ZHALT:: Unknown. * ZINSERT:: Insert code into routine buffer. * ZJOB:: Invokes a job, ignoring any timeouts. @@ -3363,6 +3365,14 @@ DEFAULT.USER> ZASSERT:DEBUG 1=0 @cindex commands, non-standard @emph{FreeM Extension} +Sets or clears the @code{ZBREAK} flag@footnote{NOTE: FreeM team needs to investigate how @code{zbreakon} and @code{zbflag} affect program execution.}, based on the result of evaluating @emph{tvexpr}. + +@emph{Syntax} + +@example +ZBREAK @emph{tvexpr} +@end example + @node ZCONST @section ZCONST @cindex ZCONST @@ -3380,14 +3390,30 @@ Constants must only be locals, and globa @code{ZCONST@emph{:postcondition} @emph{mref1}=@emph{initial-value1},...,@emph{mrefN}=@emph{initial-valueN}} @end example -@node ZGO -@section ZGO -@cindex ZGO -@cindex commands, ZGO +@node ZGOTO +@section ZGOTO +@cindex ZGOTO +@cindex commands, ZGOTO @cindex commands, implementation-specific @cindex commands, non-standard @emph{FreeM Extension} +In its argumented form, enables @code{BREAK} mode and branches unconditionally to @emph{entryref}. + +@emph{Syntax} + +@example +ZGOTO @emph{entryref} +@end example + +In its argumented form, resumes execution after a @code{BREAK}. + +@emph{Syntax} + +@example +ZGOTO +@end example + @node ZHALT @section ZHALT @cindex ZHALT @@ -3396,6 +3422,22 @@ Constants must only be locals, and globa @cindex commands, non-standard @emph{FreeM Extension} +In its single-argumented form, @code{ZHALT} command is used to exit the FreeM process with a specific return value @emph{intexpr}. + +@emph{Syntax} + +@example +ZHALT @emph{intexpr} +@end example + +In its argumentless form, @code{ZHALT} is synonymous with @code{HALT}. + +@emph{Syntax} + +@example +ZHALT +@end example + @node ZINSERT @section ZINSERT @cindex ZINSERT