<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.ccarh.org/index.php?action=history&amp;feed=atom&amp;title=Zbex_special_variables_and_labels</id>
	<title>Zbex special variables and labels - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ccarh.org/index.php?action=history&amp;feed=atom&amp;title=Zbex_special_variables_and_labels"/>
	<link rel="alternate" type="text/html" href="https://wiki.ccarh.org/index.php?title=Zbex_special_variables_and_labels&amp;action=history"/>
	<updated>2026-04-30T08:13:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.ccarh.org/index.php?title=Zbex_special_variables_and_labels&amp;diff=795&amp;oldid=prev</id>
		<title>Craig: added chapter navigator at top and bottom of page</title>
		<link rel="alternate" type="text/html" href="https://wiki.ccarh.org/index.php?title=Zbex_special_variables_and_labels&amp;diff=795&amp;oldid=prev"/>
		<updated>2010-10-20T05:18:53Z</updated>

		<summary type="html">&lt;p&gt;added chapter navigator at top and bottom of page&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 05:18, 20 October 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;__TOC__&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{ZbexChap&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   | before =  [[Zbex directory handling|Handling directories]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   | after = [[Zbex debugging instructions|Instructions for debugging]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&amp;lt;center&amp;gt;&lt;/ins&gt;__TOC__&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/center&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Some of the material covered in this section has also been presented in other sections.  This is because all special variables and special labels are related to some aspect of the operation of Zbex.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Some of the material covered in this section has also been presented in other sections.  This is because all special variables and special labels are related to some aspect of the operation of Zbex.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l241&quot;&gt;Line 241:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 244:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;           eof1:  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;           eof1:  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;               return&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;               return&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{ZbexChap&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   | before =  [[Zbex directory handling|Handling directories]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   | after = [[Zbex debugging instructions|Instructions for debugging]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Craig</name></author>
	</entry>
	<entry>
		<id>https://wiki.ccarh.org/index.php?title=Zbex_special_variables_and_labels&amp;diff=555&amp;oldid=prev</id>
		<title>Craig: created page</title>
		<link rel="alternate" type="text/html" href="https://wiki.ccarh.org/index.php?title=Zbex_special_variables_and_labels&amp;diff=555&amp;oldid=prev"/>
		<updated>2010-10-14T14:44:21Z</updated>

		<summary type="html">&lt;p&gt;created page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
Some of the material covered in this section has also been presented in other sections.  This is because all special variables and special labels are related to some aspect of the operation of Zbex.  &lt;br /&gt;
&lt;br /&gt;
There are six special variables: err, rem, mpt, sub, sze, and trp.  These variables are integer type and are automatically included in your program (with declaration). &lt;br /&gt;
&lt;br /&gt;
== err ==&lt;br /&gt;
&lt;br /&gt;
This variable takes on meaning only when bit 12 of the zoperation flag is set.  (see Section 18.3 on how to do this using the setflag instruction).  &lt;br /&gt;
&lt;br /&gt;
Under default operation (bit 12 of zoperation flag is clear = 0), when a Zbex open instruction fails for any reason, Zbex sends a prompt to the user asking for a new (different) file name.  The program is suspended until this supplied.  Sometimes, however, the user does not welcome this interruption; if the file or directory can&amp;#039;t be opened, the user wants the program to ignor the open request and move on.  This will happen if bit 12 of the zoperation flag is set = 1..  &lt;br /&gt;
&lt;br /&gt;
In this case, how does the user&amp;#039;s program know that open has failed, and why?  Answer, Zbex sets the special variable err to one of the following values: &lt;br /&gt;
&lt;br /&gt;
                 0  =  open was successful &lt;br /&gt;
                 1  =  cannot expand to full file name &lt;br /&gt;
                 2  =  file already open somewhere else &lt;br /&gt;
                 3  =  cannot open the file at all &lt;br /&gt;
                 4  =  not a file or a directory &lt;br /&gt;
                 5  =  unable to read directory &lt;br /&gt;
                 6  =  read access on file is denied &lt;br /&gt;
                 7  =  cannot open file for writing &lt;br /&gt;
                 3  =  cannot open the file at all &lt;br /&gt;
                 8  =  writing allowed only on regular files &lt;br /&gt;
                 9  =  read/write access on file is denied &lt;br /&gt;
                 10 =  write access on file is denied &lt;br /&gt;
                 11 =  cannot create new file &lt;br /&gt;
&lt;br /&gt;
Program control moves on to the next Zbex instruction, which almost certainly would be to test the value of err.  &lt;br /&gt;
&lt;br /&gt;
== rem ==&lt;br /&gt;
&lt;br /&gt;
This variable is assigned a value every time an integer divide is performed.  If more than one integer divide is performed in a statement, the value of rem will be set by last integer divide to be performed by the statement.  The sign of rem is always the sign of the dividend.  Example: &lt;br /&gt;
 &lt;br /&gt;
               Program &lt;br /&gt;
         --------------------- &lt;br /&gt;
         int q &lt;br /&gt;
      &lt;br /&gt;
         q = 13 / 9 &lt;br /&gt;
         putc for 13 / 9,   quotient = ~q     rem = ~rem &lt;br /&gt;
         q = -13 / 9 &lt;br /&gt;
         putc for -13 / 9,  quotient = ~q     rem = ~rem &lt;br /&gt;
         q = 13 / -9 &lt;br /&gt;
         putc for 13 / -9,  quotient = ~q     rem = ~rem &lt;br /&gt;
         q = -13 / -9 &lt;br /&gt;
         putc for -13 / -9, quotient = ~q     rem = ~rem &lt;br /&gt;
         run &lt;br /&gt;
&lt;br /&gt;
                      Execution &lt;br /&gt;
         ------------------------------------- &lt;br /&gt;
         ** S=11, P=98, L=237, M=410 ** &lt;br /&gt;
         for 13 / 9,   quotient = 1     rem = 4 &lt;br /&gt;
         for -13 / 9,  quotient = -1    rem = -4 &lt;br /&gt;
         for 13 / -9,  quotient = -1    rem = 4 &lt;br /&gt;
         for -13 / -9, quotient = 1     rem = -4 &lt;br /&gt;
         Ready for program &lt;br /&gt;
&lt;br /&gt;
== mpt ==&lt;br /&gt;
&lt;br /&gt;
This variable is affected by two types of statements.  &lt;br /&gt;
# If the &amp;quot;con&amp;quot; operator in a relation is successful, mpt is assigned the number which is the position in the left hand string where the &amp;quot;con&amp;quot; operate found a match.&lt;br /&gt;
# When the txt function appears with only two of its three required variables, mpt is assumed to be the third variable.  If the txt function is successful in parsing a sub-string from the source string, mpt will be set to the subscript of the parsing byte (see section on functions).  &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
               Program &lt;br /&gt;
         --------------------- &lt;br /&gt;
         str a.10,b.10 &lt;br /&gt;
      &lt;br /&gt;
         putc Testing mpt with con &lt;br /&gt;
         putc -------------------- &lt;br /&gt;
         a = &amp;quot;Elmer Fudd&amp;quot; &lt;br /&gt;
         if a{3..5} con &amp;quot;er&amp;quot; &lt;br /&gt;
           putc &amp;quot;er&amp;quot; occurs at position ~mpt  in &amp;quot;~a{3..5} &amp;quot; &lt;br /&gt;
         end &lt;br /&gt;
         putc &lt;br /&gt;
         putc Testing mpt in txt &lt;br /&gt;
         putc ------------------ &lt;br /&gt;
         mpt = 1 &lt;br /&gt;
         putc mpt = ~mpt &lt;br /&gt;
         b = txt(a,[32]) &lt;br /&gt;
         putc First word = ~b &lt;br /&gt;
         putc mpt = ~mpt &lt;br /&gt;
         run &lt;br /&gt;
&lt;br /&gt;
                      Execution &lt;br /&gt;
         ------------------------------------- &lt;br /&gt;
         ** S=11, P=66, L=255, M=418 ** &lt;br /&gt;
         Testing mpt with con &lt;br /&gt;
         -------------------- &lt;br /&gt;
         &amp;quot;er&amp;quot; occurs at position 2 in &amp;quot;mer&amp;quot; &lt;br /&gt;
      &lt;br /&gt;
         Testing mpt in txt &lt;br /&gt;
         ------------------ &lt;br /&gt;
         mpt = 1 &lt;br /&gt;
         First word = Elmer &lt;br /&gt;
         mpt = 6 &lt;br /&gt;
         Ready for program &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== sub == &lt;br /&gt;
&lt;br /&gt;
This variable is affected by two types of statements.  &lt;br /&gt;
&lt;br /&gt;
# If the &amp;quot;con&amp;quot; operator in a relation is successful, sub is assigned the subscript in the left hand (string) variable where the &amp;quot;con&amp;quot; operate found a match.  match.&lt;br /&gt;
# The int(str) and flt(str) functions assign to sub the subscript of the first byte which is not part of the integer format (or real number format).  Examnple:&lt;br /&gt;
 &lt;br /&gt;
               Program &lt;br /&gt;
         --------------------- &lt;br /&gt;
         str a.20 &lt;br /&gt;
         int i &lt;br /&gt;
         real x &lt;br /&gt;
      &lt;br /&gt;
         putc Testing sub with con &lt;br /&gt;
         putc -------------------- &lt;br /&gt;
         a = &amp;quot;Elmer Fudd&amp;quot; &lt;br /&gt;
         if a{3..5} con &amp;quot;er&amp;quot; &lt;br /&gt;
           putc &amp;quot;er&amp;quot; occurs at subscript ~sub  in &amp;quot;~a &amp;quot; &lt;br /&gt;
         end &lt;br /&gt;
         putc &lt;br /&gt;
         putc Testing sub with int(str) and flt(str) &lt;br /&gt;
         putc -------------------------------------- &lt;br /&gt;
         putc a = &amp;quot;  234.890;  &amp;quot; &lt;br /&gt;
         a = &amp;quot;  234.890;  &amp;quot; &lt;br /&gt;
         sub = 1 &lt;br /&gt;
         putc sub = ~sub &lt;br /&gt;
         i = int(a)&lt;br /&gt;
         putc Integer value = ~i &lt;br /&gt;
         putc sub = ~sub &lt;br /&gt;
         putc &lt;br /&gt;
         sub = 1 &lt;br /&gt;
         putc sub = ~sub &lt;br /&gt;
         x = flt(a)&lt;br /&gt;
         putc Real value = ~x &lt;br /&gt;
         putc sub = ~sub &lt;br /&gt;
         run &lt;br /&gt;
&lt;br /&gt;
                      Execution &lt;br /&gt;
         ------------------------------------- &lt;br /&gt;
         ** S=26, P=152, L=255, M=416 ** &lt;br /&gt;
         Testing sub with con &lt;br /&gt;
         -------------------- &lt;br /&gt;
         &amp;quot;er&amp;quot; occurs at subscript 4 in &amp;quot;Elmer Fudd&amp;quot; &lt;br /&gt;
    &lt;br /&gt;
         Testing sub with int(str) and flt(str) &lt;br /&gt;
         -------------------------------------- &lt;br /&gt;
         a = &amp;quot;  234.890;  &amp;quot; &lt;br /&gt;
         sub = 1 &lt;br /&gt;
         Integer value = 234 &lt;br /&gt;
         sub = 6 &lt;br /&gt;
     &lt;br /&gt;
         sub = 1 &lt;br /&gt;
         Real value = 234.89 &lt;br /&gt;
         sub = 10 &lt;br /&gt;
         Ready for program &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== sze == &lt;br /&gt;
&lt;br /&gt;
This variable is assigned a value when you open a file for type 5 access (random read/write).  The value is the number of bytes in the file being opened.  You will need this number in order to avoid reading beyond the end of the file.  &lt;br /&gt;
&lt;br /&gt;
== trp == &lt;br /&gt;
&lt;br /&gt;
This variable is assigned a value when a return statement with a literal integer is encountered.  The value is the value of the integer.&lt;br /&gt;
&lt;br /&gt;
== Special labels ==&lt;br /&gt;
&lt;br /&gt;
There are eleven special labels; trap, brk, and eof1 to eof9.  The trap and brk labels should be used only in the main part of your program, i.e., not in procedures.  &lt;br /&gt;
&lt;br /&gt;
=== trap ===&lt;br /&gt;
&lt;br /&gt;
The trap label, if used, marks the location in the main program where control is transferred when an abnormal return is encountered in a procedure.  An abnormal return from a procedure clears the entire procedure return stack and assigns a value to the special integer variable trp.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== brk ===&lt;br /&gt;
&lt;br /&gt;
The brk label, if used, marks the location in the main program where control is transferred when the break key is pressed.  If the break procedure is present, this will override the transfer to brk.   If neither the brk lable nor the break procedure is present, pressing the break key will terminate the program.  Examples: &lt;br /&gt;
 &lt;br /&gt;
(1) with brk only.  &lt;br /&gt;
     &lt;br /&gt;
                Program &lt;br /&gt;
          --------------------- &lt;br /&gt;
                loop &lt;br /&gt;
                repeat &lt;br /&gt;
          brk: &lt;br /&gt;
                putc Break pressed &lt;br /&gt;
                run &lt;br /&gt;
&lt;br /&gt;
                       Execution &lt;br /&gt;
          ------------------------------------- &lt;br /&gt;
          ** S=5, P=11, L=231, M=410 ** &lt;br /&gt;
          Break pressed &lt;br /&gt;
          Ready for program &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
(2) with brk and the break procedure &lt;br /&gt;
      &lt;br /&gt;
                Program &lt;br /&gt;
          --------------------- &lt;br /&gt;
                loop &lt;br /&gt;
                repeat &lt;br /&gt;
          brk: &lt;br /&gt;
                putc Break pressed &lt;br /&gt;
                stop &lt;br /&gt;
     &lt;br /&gt;
                procedure break &lt;br /&gt;
                  putc Break pressed, what now?  &lt;br /&gt;
                  getc &lt;br /&gt;
                return &lt;br /&gt;
                run &lt;br /&gt;
&lt;br /&gt;
                       Execution &lt;br /&gt;
          ------------------------------------- &lt;br /&gt;
          ** S=10, P=23, L=231, M=410 ** &lt;br /&gt;
          Break pressed, what now?  &lt;br /&gt;
                                       (blank line entered) &lt;br /&gt;
          Break pressed, what now?  &lt;br /&gt;
          !!  &lt;br /&gt;
          Ready for program &lt;br /&gt;
&lt;br /&gt;
=== eof1 ===&lt;br /&gt;
&lt;br /&gt;
The eof1 label, if used, may appear anywhere in a program, including inside a procedure.  The eof1 location is the entry point for program control following an attempt to getf a record sequencially beyond the last record in a file opened with a tag of [1].   The special labels, eof2 to eof9 work in a similar fashion.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hline noshade&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Clearly, some caution must be exercised in the use of the special labels.  Since these labels may be placed inside loops with counters, it is possible to jump into such a loop without having set up the counter variable or its limits.  This could lead to unpredictable run time results.  More seriously, the eof labels can be placed in procedures which may not be properly called at run time.   The following program will bomb the the interpreter, because the return from the procedure &amp;quot;death&amp;quot; cannot be properly executed.  &lt;br /&gt;
&lt;br /&gt;
                Program &lt;br /&gt;
          --------------------- &lt;br /&gt;
              open [1,1] &amp;quot;&amp;lt;an existing file&amp;gt;&amp;quot; &lt;br /&gt;
              loop &lt;br /&gt;
                getf [1] &lt;br /&gt;
              repeat &lt;br /&gt;
              putc Congratulations!  You&amp;#039;ve done the impossible.  &lt;br /&gt;
              stop &lt;br /&gt;
          * &lt;br /&gt;
              procedure death &lt;br /&gt;
          eof1: &lt;br /&gt;
              return&lt;/div&gt;</summary>
		<author><name>Craig</name></author>
	</entry>
</feed>