
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.cocopedia.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Undercolor%2F850103%2FFind</id>
	<title>Undercolor/850103/Find - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.cocopedia.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Undercolor%2F850103%2FFind"/>
	<link rel="alternate" type="text/html" href="https://www.cocopedia.com/wiki/index.php?title=Undercolor/850103/Find&amp;action=history"/>
	<updated>2026-04-25T17:37:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://www.cocopedia.com/wiki/index.php?title=Undercolor/850103/Find&amp;diff=4176&amp;oldid=prev</id>
		<title>Cocomag at 19:53, 15 February 2009</title>
		<link rel="alternate" type="text/html" href="https://www.cocopedia.com/wiki/index.php?title=Undercolor/850103/Find&amp;diff=4176&amp;oldid=prev"/>
		<updated>2009-02-15T19:53:25Z</updated>

		<summary type="html">&lt;p&gt;&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 15:53, 15 February 2009&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;&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;{{NavTop}}&amp;lt;br /&amp;gt;&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;{{NavTop}}&amp;lt;br /&amp;gt;&lt;/div&gt;&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;UnderColor, Volume 1, Number 3, January 11, 1985&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;&#039;&#039;&#039;&lt;/ins&gt;UnderColor, Volume 1, Number 3, January 11, 1985&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&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;div&gt;* Title: Find&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;* Title: Find&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;* Author: Stephen Allen&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;* Author: Stephen Allen&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Cocomag</name></author>
	</entry>
	<entry>
		<id>https://www.cocopedia.com/wiki/index.php?title=Undercolor/850103/Find&amp;diff=4160&amp;oldid=prev</id>
		<title>Cocomag at 18:38, 15 February 2009</title>
		<link rel="alternate" type="text/html" href="https://www.cocopedia.com/wiki/index.php?title=Undercolor/850103/Find&amp;diff=4160&amp;oldid=prev"/>
		<updated>2009-02-15T18:38:17Z</updated>

		<summary type="html">&lt;p&gt;&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 14:38, 15 February 2009&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-l34&quot;&gt;Line 34:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 34:&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;&amp;lt;/p&amp;gt;&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;&amp;lt;/p&amp;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;div&gt;&amp;lt;p&amp;gt;&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;&amp;lt;p&amp;gt;&lt;/div&gt;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;p&amp;gt;&lt;/del&gt;Details&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;Details&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;&amp;lt;/p&amp;gt;&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;&amp;lt;/p&amp;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;div&gt;&amp;lt;p&amp;gt;  Note: from here on, if there&amp;amp;rsquo;s something you don&amp;amp;#39;t understand, please refer back to &amp;amp;quot;Exploring System Horizons&amp;amp;quot;&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;&amp;lt;p&amp;gt;  Note: from here on, if there&amp;amp;rsquo;s something you don&amp;amp;#39;t understand, please refer back to &amp;amp;quot;Exploring System Horizons&amp;amp;quot;&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-l84&quot;&gt;Line 84:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 84:&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;&amp;lt;/p&amp;gt;&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;&amp;lt;/p&amp;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;div&gt;&amp;lt;p&amp;gt;&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;&amp;lt;p&amp;gt;&lt;/div&gt;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;p&amp;gt;&amp;lt;p&amp;gt;&lt;/del&gt;&amp;lt;/p&amp;gt;&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;&amp;lt;/p&amp;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;div&gt;==Listings==&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;==Listings==&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;&amp;lt;pre&amp;gt;&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;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Cocomag</name></author>
	</entry>
	<entry>
		<id>https://www.cocopedia.com/wiki/index.php?title=Undercolor/850103/Find&amp;diff=4153&amp;oldid=prev</id>
		<title>Cocomag at 18:32, 15 February 2009</title>
		<link rel="alternate" type="text/html" href="https://www.cocopedia.com/wiki/index.php?title=Undercolor/850103/Find&amp;diff=4153&amp;oldid=prev"/>
		<updated>2009-02-15T18:32:00Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://www.cocopedia.com/wiki/index.php?title=Undercolor/850103/Find&amp;amp;diff=4153&amp;amp;oldid=4146&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Cocomag</name></author>
	</entry>
	<entry>
		<id>https://www.cocopedia.com/wiki/index.php?title=Undercolor/850103/Find&amp;diff=4146&amp;oldid=prev</id>
		<title>Cocomag at 18:29, 15 February 2009</title>
		<link rel="alternate" type="text/html" href="https://www.cocopedia.com/wiki/index.php?title=Undercolor/850103/Find&amp;diff=4146&amp;oldid=prev"/>
		<updated>2009-02-15T18:29:01Z</updated>

		<summary type="html">&lt;p&gt;&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 14:29, 15 February 2009&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-l6&quot;&gt;Line 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&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;* Page Scans: [[Undercolor/850103/Find/Pages|Link]]&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;* Page Scans: [[Undercolor/850103/Find/Pages|Link]]&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;==Article==&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;==Article==&lt;/div&gt;&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;Remember &amp;amp;quot;System Horizons&amp;amp;quot; (TCCM, July &amp;amp;rsquo;84)? &amp;amp;quot;Find&amp;amp;quot; is a follow-up to that article, and it has finally found a home!&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;&amp;lt;p&amp;gt; &lt;/ins&gt;Remember &amp;amp;quot;System Horizons&amp;amp;quot; (TCCM, July &amp;amp;rsquo;84)? &amp;amp;quot;Find&amp;amp;quot; is a follow-up to that article, and it has finally found a home!&lt;/div&gt;&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;To disassemble Basic ROMs; to be an &amp;amp;quot;insider&amp;amp;quot; on the real processes taking place in your computer; these impart fun and satisfaction, but more satisfying is taking Basic&amp;amp;rsquo;s own subroutines and using them to create your own programs. You&amp;amp;rsquo;ll get a great deal of power from a very small piece of code.&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;&amp;lt;\p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&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;What does Find do?&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;&amp;lt;p&amp;gt; &lt;/ins&gt;To disassemble Basic ROMs; to be an &amp;amp;quot;insider&amp;amp;quot; on the real processes taking place in your computer; these impart fun and satisfaction, but more satisfying is taking Basic&amp;amp;rsquo;s own subroutines and using them to create your own programs. You&amp;amp;rsquo;ll get a great deal of power from a very small piece of code.&lt;/div&gt;&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;Say you&amp;amp;rsquo;ve been working on a long Basic program and you keep getting ?FC ERROR in a line you know is legal. Suddenly you realize you need to change a single occurrence&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;&amp;lt;\p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&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;of N$(A) to N$(B). You can do nothing but List the program, hitting Shift @ &amp;amp;rsquo;til you find it (if you find it; oops! Try again . . .), then Break and Edit the correct line. A drag, right&amp;amp;#39;?&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;&amp;lt;p&amp;gt; &lt;/ins&gt;What does Find do?&lt;/div&gt;&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;The Find utility lets you type FINDN$(A) and enter. A listing instantly appears and scrolls furiously by, just as in List. When a line containing the target string is listed, however, the display freezes and a gentle blue cursor marks (in this case) N$(A)&amp;amp;#39;s position in the line.&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;&amp;lt;\p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&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;At this point you have three options. You can hit Break and break out of Find, or you can hit Enter and continue the listing and search. Or (and this is the best part), you can&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;&amp;lt;p&amp;gt; &lt;/ins&gt;Say you&amp;amp;rsquo;ve been working on a long Basic program and you keep getting ?FC ERROR in a line you know is legal. Suddenly you realize you need to change a single occurrence&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;\p&amp;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;&amp;lt;p&amp;gt;&lt;/ins&gt;of N$(A) to N$(B). You can do nothing but List the program, hitting Shift @ &amp;amp;rsquo;til you find it (if you find it; oops! Try again . . .), then Break and Edit the correct line. A drag, right&amp;amp;#39;?&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;\p&amp;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;&amp;lt;p&amp;gt; &lt;/ins&gt;The Find utility lets you type FINDN$(A) and enter. A listing instantly appears and scrolls furiously by, just as in List. When a line containing the target string is listed, however, the display freezes and a gentle blue cursor marks (in this case) N$(A)&amp;amp;#39;s position in the line.&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;\p&amp;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;&amp;lt;p&amp;gt; &lt;/ins&gt;At this point you have three options. You can hit Break and break out of Find, or you can hit Enter and continue the listing and search. Or (and this is the best part), you can&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;\p&amp;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;&amp;lt;p&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;div&gt;hit E and go immediately to Extended Color Basic&amp;amp;rsquo;s Edit routine.&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;hit E and go immediately to Extended Color Basic&amp;amp;rsquo;s Edit routine.&lt;/div&gt;&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;Want to search for the same string a second time? Just type FIND and enter. Find has its own 10-character buffer, so that&amp;amp;rsquo;s your maximum target string length.&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;&amp;lt;\p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&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;How about wild card searches? Sure! The symbol is #. Searching for PR##T will locate PRINT, PRESTO, PR$(T), etc.&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;&amp;lt;p&amp;gt;&lt;/ins&gt;Want to search for the same string a second time? Just type FIND and enter. Find has its own 10-character buffer, so that&amp;amp;rsquo;s your maximum target string length.&lt;/div&gt;&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;If you&amp;amp;#39;re searching for a string containing a Basic word, use a single quotation mark before the word. For example: FIND&amp;amp;quot;&amp;amp;#39;PUT. The quotation mark keeps Basic from turning the string into a token, and is good practice generally, since (for example) NONE; without the mark is tokenized into N/ token for ON/E. Find understands the quotation mark and skips it when it&amp;amp;rsquo;s the first character.&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;&amp;lt;\p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&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;If your Basic program is already in memory and you need to load Find, don&amp;amp;rsquo;t worry. Find has two parts: the guts, which contain the routine, and the Pretty Smart Loader, used only once, which sets up operation of the routine. Together, they load into low graphics memory. Even if you&amp;amp;#39;ve executed PCLEAR1 you&amp;amp;#39;re OK. Just (C)LOADM and Execute to set it up, and you&amp;amp;#39;re in business.&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;&amp;lt;p&amp;gt;&lt;/ins&gt;How about wild card searches? Sure! The symbol is #. Searching for PR##T will locate PRINT, PRESTO, PR$(T), etc.&lt;/div&gt;&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;All this power takes only 250 bytes!&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;&amp;lt;\p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&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;Details&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;&amp;lt;p&amp;gt;&lt;/ins&gt;If you&amp;amp;#39;re searching for a string containing a Basic word, use a single quotation mark before the word. For example: FIND&amp;amp;quot;&amp;amp;#39;PUT. The quotation mark keeps Basic from turning the string into a token, and is good practice generally, since (for example) NONE; without the mark is tokenized into N/ token for ON/E. Find understands the quotation mark and skips it when it&amp;amp;rsquo;s the first character.&lt;/div&gt;&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;Note: from here on, if there&amp;amp;rsquo;s something you don&amp;amp;#39;t understand, please refer back to &amp;amp;quot;Exploring System Horizons&amp;amp;quot;&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;&amp;lt;\p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&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;(TCCM, July &amp;amp;rsquo;84).&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;&amp;lt;p&amp;gt;&lt;/ins&gt;If your Basic program is already in memory and you need to load Find, don&amp;amp;rsquo;t worry. Find has two parts: the guts, which contain the routine, and the Pretty Smart Loader, used only once, which sets up operation of the routine. Together, they load into low graphics memory. Even if you&amp;amp;#39;ve executed PCLEAR1 you&amp;amp;#39;re OK. Just (C)LOADM and Execute to set it up, and you&amp;amp;#39;re in business.&lt;/div&gt;&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;Here&amp;amp;#39;s the sequence of operations for The Pretty Smart Loader:&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;&amp;lt;\p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&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;1. Get the highest RAM address from Basic&amp;amp;#39;s Pointer.  Subtract the length of the &amp;amp;quot;guts.&amp;amp;quot;  Give the new value back to Basic.&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;&amp;lt;p&amp;gt;&lt;/ins&gt;All this power takes only 250 bytes!&lt;/div&gt;&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;2. Copy the &amp;amp;quot;guts&amp;amp;quot; up to that high RAM space.&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;&amp;lt;\p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&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;3. Use the existing RAM token tables to compute a new token for Find, then create a new table for Find.  POKE the calculated token value into the guts, to be used as a validation check.&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;&amp;lt;p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&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;4. Since we don&amp;amp;#39;t want this loader executed more than once, change the EXEC address to 41175.  If you Execute again, you&amp;amp;rsquo;ll get Color Basic&amp;amp;#39;s sign-on message.&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;&amp;lt;p&amp;gt;&lt;/ins&gt;Details&lt;/div&gt;&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;5. If you`re running Extended Color Basic, there&amp;amp;#39;ll be a conflict between the new token table and the USR address table.  Disk Basic also has this problem, but resolves it by&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;&amp;lt;\p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&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;moving the USR table up into Disk RAM.  My solution is to move the USR table up two bytes, keeping USR0 and 1, but taking away USR9, whose address becomes part of the keyboard roll-over table!  (When is the last you saw DEFUSR9?)  It&amp;amp;rsquo;s the best trade-off I could think of.  &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;&amp;lt;p&amp;gt;  &lt;/ins&gt;Note: from here on, if there&amp;amp;rsquo;s something you don&amp;amp;#39;t understand, please refer back to &amp;amp;quot;Exploring System Horizons&amp;amp;quot;&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;\p&amp;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;&amp;lt;p&amp;gt;&lt;/ins&gt;(TCCM, July &amp;amp;rsquo;84).&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;\p&amp;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;&amp;lt;p&amp;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;&amp;lt;\p&amp;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;&amp;lt;p&amp;gt;  &lt;/ins&gt;Here&amp;amp;#39;s the sequence of operations for The Pretty Smart Loader:&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;\p&amp;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;&amp;lt;p&amp;gt;  &lt;/ins&gt;1. Get the highest RAM address from Basic&amp;amp;#39;s Pointer.  Subtract the length of the &amp;amp;quot;guts.&amp;amp;quot;  Give the new value back to Basic.&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;\p&amp;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;&amp;lt;p&amp;gt;  &lt;/ins&gt;2. Copy the &amp;amp;quot;guts&amp;amp;quot; up to that high RAM space.&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;\p&amp;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;&amp;lt;p&amp;gt;  &lt;/ins&gt;3. Use the existing RAM token tables to compute a new token for Find, then create a new table for Find.  POKE the calculated token value into the guts, to be used as a validation check.&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;\p&amp;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;&amp;lt;p&amp;gt;  &lt;/ins&gt;4. Since we don&amp;amp;#39;t want this loader executed more than once, change the EXEC address to 41175.  If you Execute again, you&amp;amp;rsquo;ll get Color Basic&amp;amp;#39;s sign-on message.&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;\p&amp;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;&amp;lt;p&amp;gt;  &lt;/ins&gt;5. If you`re running Extended Color Basic, there&amp;amp;#39;ll be a conflict between the new token table and the USR address table.  Disk Basic also has this problem, but resolves it by&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;\p&amp;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;&amp;lt;p&amp;gt;&lt;/ins&gt;moving the USR table up into Disk RAM.  My solution is to move the USR table up two bytes, keeping USR0 and 1, but taking away USR9, whose address becomes part of the keyboard roll-over table!  (When is the last you saw DEFUSR9?)  It&amp;amp;rsquo;s the best trade-off I could think of.  &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;\p&amp;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;&amp;lt;p&amp;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;&amp;lt;\p&amp;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;&amp;lt;p&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;div&gt;The Guts: Find is always entered with its token in the A register.  A quick check is done to see if Basic got there by mistake.  If everything&amp;amp;#39;s OK (always is), then proceed.&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;The Guts: Find is always entered with its token in the A register.  A quick check is done to see if Basic got there by mistake.  If everything&amp;amp;#39;s OK (always is), then proceed.&lt;/div&gt;&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;1. Evaluate and store the target string.  This is the string which Find will try to match.  If no string is specified, use the&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;&amp;lt;\p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&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;last string.&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;&amp;lt;p&amp;gt;  &lt;/ins&gt;1. Evaluate and store the target string.  This is the string which Find will try to match.  If no string is specified, use the&lt;/div&gt;&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;2. Use a ROM call to de&amp;amp;mdash;tokenize the next line into a buffer at $2DD.&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;&amp;lt;\p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&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;3. Print a character from the buffer, testing for a match.  If there is no match, keep printing and checking.&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;&amp;lt;p&amp;gt;&lt;/ins&gt;last string.&lt;/div&gt;&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;4. If the character matches, suspend printing and compare the rest of the target string.  If the rest of the match fails, resume printing. If the match is successful, set a flag and&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;&amp;lt;\p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&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;pay attention to the match&amp;amp;rsquo;s position in the line (Line 2100, CLRB).  Resume printing and checking.&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;&amp;lt;p&amp;gt;  &lt;/ins&gt;2. Use a ROM call to de&amp;amp;mdash;tokenize the next line into a buffer at $2DD.&lt;/div&gt;&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;5. At the end of the line test the flag.  If there is no match, do another line.&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;&amp;lt;\p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&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;6. There&amp;amp;#39;s a match.  Get the screen position of the end of the line, move back to the point of the match, and set a cursor there.  Wait for a key press.  The instruction INCB in Line 2300 adjusts for the fact that the cursor points one byte ahead of the last printed character.&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;&amp;lt;p&amp;gt;  &lt;/ins&gt;3. Print a character from the buffer, testing for a match.  If there is no match, keep printing and checking.&lt;/div&gt;&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;7. Key Press: If the key was Enter, do another line.  If Break, exit Find and jump to Basic&amp;amp;rsquo;s Break routine.  If E, then exit&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;&amp;lt;\p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&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;Find and jump to Edit in ROM.  If none of the above, go back and wait.  (end)&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;&amp;lt;p&amp;gt;  &lt;/ins&gt;4. If the character matches, suspend printing and compare the rest of the target string.  If the rest of the match fails, resume printing. If the match is successful, set a flag and&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;\p&amp;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;&amp;lt;p&amp;gt;&lt;/ins&gt;pay attention to the match&amp;amp;rsquo;s position in the line (Line 2100, CLRB).  Resume printing and checking.&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;\p&amp;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;&amp;lt;p&amp;gt;  &lt;/ins&gt;5. At the end of the line test the flag.  If there is no match, do another line.&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;\p&amp;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;&amp;lt;p&amp;gt;  &lt;/ins&gt;6. There&amp;amp;#39;s a match.  Get the screen position of the end of the line, move back to the point of the match, and set a cursor there.  Wait for a key press.  The instruction INCB in Line 2300 adjusts for the fact that the cursor points one byte ahead of the last printed character.&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;\p&amp;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;&amp;lt;p&amp;gt;  &lt;/ins&gt;7. Key Press: If the key was Enter, do another line.  If Break, exit Find and jump to Basic&amp;amp;rsquo;s Break routine.  If E, then exit&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;\p&amp;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;&amp;lt;p&amp;gt;&lt;/ins&gt;Find and jump to Edit in ROM.  If none of the above, go back and wait.  (end)&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;\p&amp;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;&amp;lt;p&amp;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;&amp;lt;\p&amp;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;&amp;lt;p&amp;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;&amp;lt;p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;\p&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;div&gt;==Listings==&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;==Listings==&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;&amp;lt;pre&amp;gt;&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;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Cocomag</name></author>
	</entry>
	<entry>
		<id>https://www.cocopedia.com/wiki/index.php?title=Undercolor/850103/Find&amp;diff=4124&amp;oldid=prev</id>
		<title>Cocomag: New page: {{NavTop}}&lt;br /&gt; UnderColor, Volume 1, Number 3, January 11, 1985 * Title: Find * Author: Stephen Allen * Synopsis: A new word in Basic. * Page Scans: Link...</title>
		<link rel="alternate" type="text/html" href="https://www.cocopedia.com/wiki/index.php?title=Undercolor/850103/Find&amp;diff=4124&amp;oldid=prev"/>
		<updated>2009-02-15T18:07:16Z</updated>

		<summary type="html">&lt;p&gt;New page: {{NavTop}}&amp;lt;br /&amp;gt; UnderColor, Volume 1, Number 3, January 11, 1985 * Title: Find * Author: Stephen Allen * Synopsis: A new word in Basic. * Page Scans: &lt;a href=&quot;/wiki/Undercolor/850103/Find/Pages&quot; title=&quot;Undercolor/850103/Find/Pages&quot;&gt;Link&lt;/a&gt;...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{NavTop}}&amp;lt;br /&amp;gt;&lt;br /&gt;
UnderColor, Volume 1, Number 3, January 11, 1985&lt;br /&gt;
* Title: Find&lt;br /&gt;
* Author: Stephen Allen&lt;br /&gt;
* Synopsis: A new word in Basic.&lt;br /&gt;
* Page Scans: [[Undercolor/850103/Find/Pages|Link]]&lt;br /&gt;
==Article==&lt;br /&gt;
Remember &amp;amp;quot;System Horizons&amp;amp;quot; (TCCM, July &amp;amp;rsquo;84)? &amp;amp;quot;Find&amp;amp;quot; is a follow-up to that article, and it has finally found a home!&lt;br /&gt;
To disassemble Basic ROMs; to be an &amp;amp;quot;insider&amp;amp;quot; on the real processes taking place in your computer; these impart fun and satisfaction, but more satisfying is taking Basic&amp;amp;rsquo;s own subroutines and using them to create your own programs. You&amp;amp;rsquo;ll get a great deal of power from a very small piece of code.&lt;br /&gt;
What does Find do?&lt;br /&gt;
Say you&amp;amp;rsquo;ve been working on a long Basic program and you keep getting ?FC ERROR in a line you know is legal. Suddenly you realize you need to change a single occurrence&lt;br /&gt;
of N$(A) to N$(B). You can do nothing but List the program, hitting Shift @ &amp;amp;rsquo;til you find it (if you find it; oops! Try again . . .), then Break and Edit the correct line. A drag, right&amp;amp;#39;?&lt;br /&gt;
The Find utility lets you type FINDN$(A) and enter. A listing instantly appears and scrolls furiously by, just as in List. When a line containing the target string is listed, however, the display freezes and a gentle blue cursor marks (in this case) N$(A)&amp;amp;#39;s position in the line.&lt;br /&gt;
At this point you have three options. You can hit Break and break out of Find, or you can hit Enter and continue the listing and search. Or (and this is the best part), you can&lt;br /&gt;
hit E and go immediately to Extended Color Basic&amp;amp;rsquo;s Edit routine.&lt;br /&gt;
Want to search for the same string a second time? Just type FIND and enter. Find has its own 10-character buffer, so that&amp;amp;rsquo;s your maximum target string length.&lt;br /&gt;
How about wild card searches? Sure! The symbol is #. Searching for PR##T will locate PRINT, PRESTO, PR$(T), etc.&lt;br /&gt;
If you&amp;amp;#39;re searching for a string containing a Basic word, use a single quotation mark before the word. For example: FIND&amp;amp;quot;&amp;amp;#39;PUT. The quotation mark keeps Basic from turning the string into a token, and is good practice generally, since (for example) NONE; without the mark is tokenized into N/ token for ON/E. Find understands the quotation mark and skips it when it&amp;amp;rsquo;s the first character.&lt;br /&gt;
If your Basic program is already in memory and you need to load Find, don&amp;amp;rsquo;t worry. Find has two parts: the guts, which contain the routine, and the Pretty Smart Loader, used only once, which sets up operation of the routine. Together, they load into low graphics memory. Even if you&amp;amp;#39;ve executed PCLEAR1 you&amp;amp;#39;re OK. Just (C)LOADM and Execute to set it up, and you&amp;amp;#39;re in business.&lt;br /&gt;
All this power takes only 250 bytes!&lt;br /&gt;
Details&lt;br /&gt;
Note: from here on, if there&amp;amp;rsquo;s something you don&amp;amp;#39;t understand, please refer back to &amp;amp;quot;Exploring System Horizons&amp;amp;quot;&lt;br /&gt;
(TCCM, July &amp;amp;rsquo;84).&lt;br /&gt;
Here&amp;amp;#39;s the sequence of operations for The Pretty Smart Loader:&lt;br /&gt;
1. Get the highest RAM address from Basic&amp;amp;#39;s Pointer.  Subtract the length of the &amp;amp;quot;guts.&amp;amp;quot;  Give the new value back to Basic.&lt;br /&gt;
2. Copy the &amp;amp;quot;guts&amp;amp;quot; up to that high RAM space.&lt;br /&gt;
3. Use the existing RAM token tables to compute a new token for Find, then create a new table for Find.  POKE the calculated token value into the guts, to be used as a validation check.&lt;br /&gt;
4. Since we don&amp;amp;#39;t want this loader executed more than once, change the EXEC address to 41175.  If you Execute again, you&amp;amp;rsquo;ll get Color Basic&amp;amp;#39;s sign-on message.&lt;br /&gt;
5. If you`re running Extended Color Basic, there&amp;amp;#39;ll be a conflict between the new token table and the USR address table.  Disk Basic also has this problem, but resolves it by&lt;br /&gt;
moving the USR table up into Disk RAM.  My solution is to move the USR table up two bytes, keeping USR0 and 1, but taking away USR9, whose address becomes part of the keyboard roll-over table!  (When is the last you saw DEFUSR9?)  It&amp;amp;rsquo;s the best trade-off I could think of. &lt;br /&gt;
The Guts: Find is always entered with its token in the A register.  A quick check is done to see if Basic got there by mistake.  If everything&amp;amp;#39;s OK (always is), then proceed.&lt;br /&gt;
1. Evaluate and store the target string.  This is the string which Find will try to match.  If no string is specified, use the&lt;br /&gt;
last string.&lt;br /&gt;
2. Use a ROM call to de&amp;amp;mdash;tokenize the next line into a buffer at $2DD.&lt;br /&gt;
3. Print a character from the buffer, testing for a match.  If there is no match, keep printing and checking.&lt;br /&gt;
4. If the character matches, suspend printing and compare the rest of the target string.  If the rest of the match fails, resume printing. If the match is successful, set a flag and&lt;br /&gt;
pay attention to the match&amp;amp;rsquo;s position in the line (Line 2100, CLRB).  Resume printing and checking.&lt;br /&gt;
5. At the end of the line test the flag.  If there is no match, do another line.&lt;br /&gt;
6. There&amp;amp;#39;s a match.  Get the screen position of the end of the line, move back to the point of the match, and set a cursor there.  Wait for a key press.  The instruction INCB in Line 2300 adjusts for the fact that the cursor points one byte ahead of the last printed character.&lt;br /&gt;
7. Key Press: If the key was Enter, do another line.  If Break, exit Find and jump to Basic&amp;amp;rsquo;s Break routine.  If E, then exit&lt;br /&gt;
Find and jump to Edit in ROM.  If none of the above, go back and wait.  (end)&lt;br /&gt;
==Listings==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00100 *************************&lt;br /&gt;
00110 **                     **&lt;br /&gt;
00120 ** FIND                **&lt;br /&gt;
00130 *************************&lt;br /&gt;
00140 ** A New Word For      **&lt;br /&gt;
00150 **      Basic          **&lt;br /&gt;
00160 *************************&lt;br /&gt;
00170 * by                    *&lt;br /&gt;
00180 * Stephen P. Allen      *&lt;br /&gt;
00190&lt;br /&gt;
00200&lt;br /&gt;
00210&lt;br /&gt;
00220&lt;br /&gt;
00230 * For Disk Basic use this ORG&lt;br /&gt;
0F00 00240 ORG $F00&lt;br /&gt;
00250&lt;br /&gt;
00260 * For Extended Basic use this ORG&lt;br /&gt;
00270 * ORG $700&lt;br /&gt;
00280&lt;br /&gt;
00290 *************************&lt;br /&gt;
00300 * THE                   *&lt;br /&gt;
00310 * PRETTY SMART          *&lt;br /&gt;
00320 * LOADER                *&lt;br /&gt;
00330 *************************&lt;br /&gt;
00340&lt;br /&gt;
00350&lt;br /&gt;
00360&lt;br /&gt;
00370 *** MAKE ROOM UP TOP ***&lt;br /&gt;
00380&lt;br /&gt;
00F9 00390 LENGTH EQU ZEND-TITLE&lt;br /&gt;
00400&lt;br /&gt;
0F00 DC 74 00410 START LDD &amp;amp;lt;$74 High Ram address&lt;br /&gt;
0F02 83 00F9 00420 SUBD #LENGTH &amp;amp;mdash;Find&amp;amp;#39;s length&lt;br /&gt;
0F05 DD 74 00430 STD &amp;amp;lt;$74 =New &amp;amp;quot;High Ram&amp;amp;quot; address&lt;br /&gt;
0F07 DD 27 00440 STD &amp;amp;lt;$27 and &amp;amp;quot;Top of String Space&amp;amp;quot;&lt;br /&gt;
0F09 DD 23 00450 STD &amp;amp;lt;$23 and pointer to next string&lt;br /&gt;
00460&lt;br /&gt;
0F0B 83 00C8 00470 SUBD #200 default total string space&lt;br /&gt;
0F0E DD 21 00480 STD &amp;amp;lt;$21 to &amp;amp;quot;Start of String Space&amp;amp;quot;&lt;br /&gt;
0F10 10DE 21 00490 LDS &amp;amp;lt;$21 Stack goes below strings&lt;br /&gt;
00500&lt;br /&gt;
00510 *** MOVE IT UP ***&lt;br /&gt;
00520&lt;br /&gt;
0F13 DE 74 00530 LDU &amp;amp;lt;$74 New &amp;amp;quot;Top of Ram&amp;amp;quot;&lt;br /&gt;
0F15 33 42 00540 LEAU 2,U (a little space, just in case)&lt;br /&gt;
0F17 30 8C 41 00550 LEAX &amp;amp;lt;TITLE,PCR Start of &amp;amp;quot;FIND&amp;amp;quot;&lt;br /&gt;
0F1A 108E 00F9 00560 LDY #LENGTH of &amp;amp;quot;FIND&amp;amp;quot;&lt;br /&gt;
0F1E A6 80 00570 PUTHI LDA ,X+&lt;br /&gt;
0F20 A7 C0 00580 STA ,U+&lt;br /&gt;
0F22 31 3F 00590 LEAY -1,Y&lt;br /&gt;
0F24 26 F8 00600 BNE PUTHI&lt;br /&gt;
00610&lt;br /&gt;
00620&lt;br /&gt;
00630 *** TELL BASIC WHERE TO FIND IT ***&lt;br /&gt;
00640&lt;br /&gt;
0F26 CE 0116 00650 LDU #$116 Address of (token tables-10)&lt;br /&gt;
0F29 5F 00660 CLRB Token will form here&lt;br /&gt;
00670&lt;br /&gt;
00680&lt;br /&gt;
0F2A 33 4A 00690 TABLE LEAU 10,U Move into next Token Table&lt;br /&gt;
0F2C EB C4 00700 ADDB ,U add # of entries this table&lt;br /&gt;
0F2E 6D C4 00710 TST ,U At end of tables yet?&lt;br /&gt;
0F30 26 F8 00720 BNE TABLE no, keep going&lt;br /&gt;
00730&lt;br /&gt;
0F32 CB 80 00740 ADDB #$80 Make negative, signal as token&lt;br /&gt;
0F34 6F 4A 00750 CLR 10,U Signal new &amp;amp;quot;End of Tables&amp;amp;quot;&lt;br /&gt;
0F36 86 01 00760 LDA #1 One new entry here&lt;br /&gt;
0F38 A7 C0 00770 STA ,U+ At start this new table&lt;br /&gt;
00780&lt;br /&gt;
00790 * Recalculate start of &amp;amp;quot;FIND&amp;amp;quot;&lt;br /&gt;
00800&lt;br /&gt;
0F3A 9E 74 00810 LDX &amp;amp;lt;$74 High Ram address&lt;br /&gt;
0F3C 30 02 00820 LEAX 2,X plus that two (just in case)&lt;br /&gt;
0F3E AF C1 00830 STX ,U++ Address of word into Table&lt;br /&gt;
00840&lt;br /&gt;
0F40 30 04 00850 LEAX 4,X Address of routine...&lt;br /&gt;
0F42 AF C4 00860 STX ,U into the table&lt;br /&gt;
00870&lt;br /&gt;
00880 * New token also goes directly into routine *&lt;br /&gt;
00890&lt;br /&gt;
0F44 E7 01 00900 STB 1,X&lt;br /&gt;
00910&lt;br /&gt;
00920 *Change EXEC address to disable Loader&lt;br /&gt;
00930&lt;br /&gt;
0F46 8E A0D7 00940 LDX #41175 Color Basic&amp;amp;#39;s Sign-on msg.&lt;br /&gt;
0F49 9F 9D 00950 STX &amp;amp;lt;$9D to EXEC pointer&lt;br /&gt;
00960&lt;br /&gt;
00970&lt;br /&gt;
00980 *Move DEFUSR table if necessary*&lt;br /&gt;
00990&lt;br /&gt;
0F4B DC B0 01000 LDD &amp;amp;lt;$B0 Points to DEFUSR table&lt;br /&gt;
0F4D 1083 013E 01010 CMPD #$13E Extended Basic&amp;amp;#39;s table?&lt;br /&gt;
0F51 26 04 01020 BNE JUMP if not, then Disk: OK&lt;br /&gt;
0F53 C6 40 01030 LDB #$40 Else Make new table at $140&lt;br /&gt;
0F55 DD B0 01040 STD &amp;amp;lt;$B0&lt;br /&gt;
01050&lt;br /&gt;
0F57 6E 9F FFFE 01060 JUMP JMP [$FFFE] Done! Go do a warm start.&lt;br /&gt;
01070&lt;br /&gt;
01080&lt;br /&gt;
01090 ************************&lt;br /&gt;
01100 * THE GUTS *&lt;br /&gt;
01100 *************************&lt;br /&gt;
01120&lt;br /&gt;
01130 * &amp;amp;quot;FIND&amp;amp;quot; with &amp;amp;quot;D&amp;amp;quot; made negative&lt;br /&gt;
01140&lt;br /&gt;
0F5B 46 01150 TITLE FCC /FIN/&lt;br /&gt;
49&lt;br /&gt;
4E&lt;br /&gt;
0F5E C4 01160 FCB $80+&amp;amp;#39;D&lt;br /&gt;
01170&lt;br /&gt;
01180&lt;br /&gt;
01190 * Routine starts here *&lt;br /&gt;
01200&lt;br /&gt;
0F5F 81 CE     01210 FIND   CMPA  #$CE   If disk, this will change&lt;br /&gt;
0F61 27 03     01220        BEQ   OK     yes, correct token&lt;br /&gt;
0F63 7E B277   01230        JMP   $B277  else ?SN ERROR&lt;br /&gt;
01240&lt;br /&gt;
01250&lt;br /&gt;
01260 *** GET THE PARAMETERS ***&lt;br /&gt;
01270&lt;br /&gt;
0F66 9D 9F     01280 OK     JSR   &amp;amp;lt;$9F   next character&lt;br /&gt;
0F68 27 1C     01290        BEQ   FIND2  if null, use previous string&lt;br /&gt;
01300&lt;br /&gt;
01310 * A string is specified&lt;br /&gt;
01320&lt;br /&gt;
0F6A 30 8D 00DC 01330       LEAX  TARGET,PCR Point to buffer&lt;br /&gt;
0F6E 5F        01340        CLRB       Length of string so far, 0&lt;br /&gt;
0F6F 81 22     01350        CHPA   #&amp;amp;#39;&amp;amp;quot;  String delimiter?&lt;br /&gt;
0F7l 26 04     01360        BNE    LOOP1&lt;br /&gt;
OF73 9D 9F     01370        JSR    &amp;amp;lt;$9F   if so, skip it&lt;br /&gt;
OF75 27 0F     01380        BEQ    FIND2  if nothing else specified&lt;br /&gt;
01390&lt;br /&gt;
0F77 A7 80     01400 LOOP1  STA    ,X+ character into FIND&amp;amp;#39;s buffer&lt;br /&gt;
0F79 5C        01410        INCB length=1ength+1&lt;br /&gt;
0F7A C1 0A     01420        CMPB   #10    max # of chars?&lt;br /&gt;
0F7C 24 04     01430        BHS    DONE   if yes, skip the rest&lt;br /&gt;
0F7E 9D 9F     01440        JSR    &amp;amp;lt;$9F   else get next char.&lt;br /&gt;
0F80 26 F5     01450        BNE    LOOP1  if another char, loop back&lt;br /&gt;
01460&lt;br /&gt;
0F82 E7 8D OOC3 01470 DONE  STB    LENTS,PCR Store string length&lt;br /&gt;
01480&lt;br /&gt;
0F86 32 62     01490 FIND2  LEAS   2,S   Drop return address&lt;br /&gt;
0F88 8E 0019   01500        LDX    #$19  Has address of first line&lt;br /&gt;
0F8B 9F 66     01510        STX    &amp;amp;lt;$66  Save for LIST loop&lt;br /&gt;
01520&lt;br /&gt;
01530&lt;br /&gt;
01540 *** LIST A LINE: TEST FOR MATCH ***&lt;br /&gt;
01550&lt;br /&gt;
0F8D BD B95C   01560 NXTLIN  JSR   $B95C  Do a linefeed&lt;br /&gt;
0F9O BD A549   01570         JSR   $A549  Test for (Break}, (shift @&amp;amp;gt;&lt;br /&gt;
01580&lt;br /&gt;
0F93 9E 66     01590         LDX   &amp;amp;lt;$66   get address of last line&lt;br /&gt;
0F95 AE 84     01600         LDX   ,X    Point to next line&lt;br /&gt;
0F97 EC 84     01610         LDD   ,X     End of Basic program?&lt;br /&gt;
0F99 26 03     01620         BNE   CONT  if not end of Basic program&lt;br /&gt;
0F9B 7E AC73   01630         JMP   $AC73 Exit here if End of Program&lt;br /&gt;
01640&lt;br /&gt;
0F9E 9F 66     01650 CONT    STX   &amp;amp;lt;$66 Update Low Ram Line Pointer&lt;br /&gt;
0FA0 6F 8D 00A2 01660        CLR   FFLAG,PCR No matches this line yet&lt;br /&gt;
01670&lt;br /&gt;
0FA4 EC 02     01680          LDD  2,X   Get line number&lt;br /&gt;
0FA6 BD BDCC   01690          JSR  $BDCC Print line number&lt;br /&gt;
0FA9 BD B9AC   01700          JSR  $B9AC print a space&lt;br /&gt;
01710&lt;br /&gt;
0FAC 9E 66     01720          LDX  &amp;amp;lt;$66  Point to Basic line again&lt;br /&gt;
0FAE BD B7C2   01730          JSR  $B7C2 De-Tokenize into buffer&lt;br /&gt;
0FBl CE 02DD   01740          LDU  #$2DD Point to buffer&lt;br /&gt;
0FB4 31 8D 0092 01750         LEAY TARGET,PCR Point to Target string&lt;br /&gt;
0FB8 A6 C0      01780 PRINT LDA ,U+     Next char. from buffer&lt;br /&gt;
0FBA 27 2E      01790       BEQ TEST    if End of Line&lt;br /&gt;
0FBC AD 9F A002 01800       JSR [$A002] Print the next character ]&lt;br /&gt;
0FC0 5C         01810       INCB        Keep track of match position&lt;br /&gt;
0FC1 A1 A4      01820       CMPA ,Y     Match on first letter?&lt;br /&gt;
0FC3 26 F3      01830       BNE PRINT   if not, keep going&lt;br /&gt;
01840&lt;br /&gt;
01850 * MATCH ON FIRST LETTER *&lt;br /&gt;
01860&lt;br /&gt;
0FC5 34 64      01870 MATCH1 PSHS U,Y,B Save important registers&lt;br /&gt;
0FC7 33 5F      01880        LEAU -1,U  Prepare for following loop&lt;br /&gt;
0FC9 E6 8D 007C 01890        LDB LENTS,PCR Length of Target string&lt;br /&gt;
0FCD 5A         01900 MATCH2 DECB       One less Target char to match&lt;br /&gt;
0FCE 27 12      01910        BEQ FOUND   If match on total string&lt;br /&gt;
0FD0 33 41      01920        LEAU 1,U    Else move up in buffer...&lt;br /&gt;
0FD2 31 21      01930        LEAY 1,Y    and Target buffer&lt;br /&gt;
0FD4 A6 A4      01940        LDA ,Y      Next target character&lt;br /&gt;
0FD6 81 23      01950        CMPA #&amp;amp;#39;#    Is it a &amp;amp;quot;Wildcard?&amp;amp;quot;&lt;br /&gt;
0FD8 27 F3      01960        BEQ MATCH2  if yes, automatic match&lt;br /&gt;
0FDA A1 C4      01970        CMPA ,U     else test for match&lt;br /&gt;
0FDC 27 EF      01980        BEQ MATCH2  so far so good&lt;br /&gt;
01990&lt;br /&gt;
02000 *Match fails in mid&amp;amp;mdash;string&lt;br /&gt;
02010&lt;br /&gt;
0FDE 35 64      02020        PULS B,Y,U Restore crunched registers&lt;br /&gt;
0FE0 20 D6      02030        BRA PRINT   and keep going&lt;br /&gt;
02040&lt;br /&gt;
02050&lt;br /&gt;
02060 *** FOUND A MATCH ***&lt;br /&gt;
02070&lt;br /&gt;
0FE2 6C 8C 61   02080 FOUND  INC &amp;amp;lt;FFLAG,PCR Flag a match on this line&lt;br /&gt;
0FE5 35 64      02090        PULS B,Y,U restore crunched registers&lt;br /&gt;
0FE7 5F         02100        CLRB        Print distance from this&lt;br /&gt;
02110 *                 match=0&lt;br /&gt;
0FE8 20 CE      02120        BRA PRINT   Keep listing to End of Line&lt;br /&gt;
02130&lt;br /&gt;
02140&lt;br /&gt;
02150 * END OF LINE:&lt;br /&gt;
02160 * IF THERE&amp;amp;#39;S A MATCH THEN SHOW IT,&lt;br /&gt;
02170 * ELSE DO NEXT LINE&lt;br /&gt;
02180&lt;br /&gt;
0FEA EF 8C 5A   02190 TEST   STU &amp;amp;lt;BUFEND,PCR Save in case of EDIT&lt;br /&gt;
0FED 6D 8C 56   02200        TST &amp;amp;lt;FFLAG,PCR Any matches?&lt;br /&gt;
0FF0 27 9B      02210        BEQ NXTLIN   if not, do next line&lt;br /&gt;
02220&lt;br /&gt;
02230&lt;br /&gt;
02240 * GOT A MATCH:&lt;br /&gt;
02250 * PUT CURSOR AND WAIT FOR KEYPRESS&lt;br /&gt;
02260&lt;br /&gt;
02270 * First, move cursor to start of last match&lt;br /&gt;
02280&lt;br /&gt;
0FF2 DE 88      02290 SHOWIT  LDU &amp;amp;lt;$88   Get current cursor position&lt;br /&gt;
0FF4 5C         02300         INCB       Adjust for offset&lt;br /&gt;
0FF5 33 5F      02310 FINDIT  LEAU -1,U  Move cursor pos. back...&lt;br /&gt;
0FF7 5A         02320         DECB&lt;br /&gt;
0FF8 26 FB      02330         BNE FINDIT till start of match B&lt;br /&gt;
0FFA A6 C4      0234O         LDA ,U Save for non&amp;amp;mdash;destructive...&lt;br /&gt;
0FFC A7 8C 47   02350         STA &amp;amp;lt;FFLAG,PCR cursor routine&lt;br /&gt;
02360&lt;br /&gt;
02370 * Now wait for keypress&lt;br /&gt;
0FFF 86 AF         02390 CURSOR LDA #$AF blue graphics block...&lt;br /&gt;
1001 A7 C4         02400        STA ,U to screen&lt;br /&gt;
1003 8D 21         02410        BSR CRSKEY try for keypress&lt;br /&gt;
1005 26 09         02420        BNE PRESS if keypress detected&lt;br /&gt;
02430&lt;br /&gt;
1007 A6 8C 3C      02440        LDA &amp;amp;lt;FFLAG,PCR Else get first letter&lt;br /&gt;
100A A7 C4         02450        STA ,U and store on screen&lt;br /&gt;
100C 8D 18         02460        BSR CRSKEY and try for keypress&lt;br /&gt;
100E 27 EF         02470        BEQ CURSOR Keep trying if nothing&lt;br /&gt;
02480&lt;br /&gt;
02490&lt;br /&gt;
02500 *** GOT A KEYPRESS ***&lt;br /&gt;
02510&lt;br /&gt;
1010 E6 8C 33      02520 PRESS LDB &amp;amp;lt;FFLAG,PCR Restore first letter...&lt;br /&gt;
1013 E7 C4         02530       STB ,U   to screen&lt;br /&gt;
02540&lt;br /&gt;
1015 81 0D         02550       CMPA #$0D Keypress was &amp;amp;lt;Enter&amp;amp;gt;?&lt;br /&gt;
1017 1027 FF72     02560       LBEQ NXTLIN If yes, do next lines&lt;br /&gt;
101B 81 45         02570       CMPA #&amp;amp;#39;E &amp;amp;#39;Keypress was &amp;amp;quot;EDIT?&amp;amp;quot;&lt;br /&gt;
101D 27 16         02580       BEQ EDIT if yes&lt;br /&gt;
101F 81 03         02590       CMPA #3 Keypress was &amp;amp;lt;Break&amp;amp;gt;?&lt;br /&gt;
1021 26 DC         02600       BNE CURSOR if not, keep trying for&lt;br /&gt;
02610 *                legal key&lt;br /&gt;
02620&lt;br /&gt;
1023 7E AE09       02630       JMP $AE09   Exit here on &amp;amp;lt;Break&amp;amp;gt;&lt;br /&gt;
02640&lt;br /&gt;
02650&lt;br /&gt;
1026 108E 028A     02660 CRSKEY LDY #650   Delay value&lt;br /&gt;
02670&lt;br /&gt;
102A AD 9F A000    02680 DELAY JSR [$A000] Poll keyboard&lt;br /&gt;
102E 26 04         02690 BNE KEYEND Exit if keypress&lt;br /&gt;
1030 31 3F         02700       LEAY -1,Y else delay a little&lt;br /&gt;
1032 26 F6         02710       BNE DELAY&lt;br /&gt;
1034 39            02720 KEYEND RTS      Return with or without keypress&lt;br /&gt;
02730&lt;br /&gt;
02740&lt;br /&gt;
02750 *** SET UP EDIT ROUTINE ***&lt;br /&gt;
02760&lt;br /&gt;
1035 BD B95C       02770 EDIT  JSR $B95C   Do an &amp;amp;lt;Enter&amp;amp;gt;&lt;br /&gt;
1038 9E 66         02780       LDX &amp;amp;lt;$66   Point to start of line&lt;br /&gt;
103A EC 02         02790       LDD 2,X     grab line number...&lt;br /&gt;
103C DD 2B         02800       STD &amp;amp;lt;$2B    and save for printout&lt;br /&gt;
103E 0F D8         02810       CLR &amp;amp;lt;$08    List flag: don&amp;amp;#39;t re-list&lt;br /&gt;
1040 EC 8C 04      02820       LDD &amp;amp;lt;BUFEND,PCR&lt;br /&gt;
1043 7E 8548       02830       JMP $8548   Go Edit&lt;br /&gt;
02840&lt;br /&gt;
1046               02850 FFLAG RMB 1       &amp;amp;lt;&amp;amp;gt;0 if match found,&lt;br /&gt;
02860 * also holds letter under cursor&lt;br /&gt;
1047               02870 BUFEND RMB 2      End of line in print buffer&lt;br /&gt;
1049               02880 LENTS  RMB 1       Length of target string&lt;br /&gt;
104A               02890 TARGET RMB 10     Buffer for Target string&lt;br /&gt;
1054               02900 ZEND   EQU .       End of program is here&lt;br /&gt;
02910&lt;br /&gt;
0F00               02920        END START  Exec address is at &amp;amp;quot;START&amp;amp;quot;&lt;br /&gt;
00000 TOTAL ERRORS&lt;br /&gt;
START 0F00&lt;br /&gt;
BUFEND 1047 DONE 0F82 FINDIT 0FF5 LENTS 1049 OK 0F66 TABLE 0F2A&lt;br /&gt;
CONT 0F9E EDIT 1035 FOUND 0FE2 LOOP1 0F77 PRESS 1010 TARGET 104A&lt;br /&gt;
CRSKEY 1026 FFLAG 1046 JUMP 0F57 MATCH1 0FC5 PRINT 0FB8 TEST 0FEA&lt;br /&gt;
CURSOR 0FFF FIND 0F5F KEYEND 1034 MATCH2 0FCD PUTHI 0F1E TITLE 0F5B&lt;br /&gt;
DELAY 102A FIND2 0F86 LENGTH 00F9 NXTLIN 0F8D SHOWIT 0FF2 ZEND 1054&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Publications]]&lt;br /&gt;
[[Category:Newsletters]]&lt;/div&gt;</summary>
		<author><name>Cocomag</name></author>
	</entry>
</feed>