<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ABC Software LLC</title>
	<atom:link href="http://www.abcsoftware.us/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.abcsoftware.us</link>
	<description>Simplify...</description>
	<lastBuildDate>Fri, 27 Jan 2012 02:00:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Crashing on delete?</title>
		<link>http://www.abcsoftware.us/2012/crashing-on-delete/</link>
		<comments>http://www.abcsoftware.us/2012/crashing-on-delete/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 20:05:00 +0000</pubDate>
		<dc:creator>Andrew Zimmerman</dc:creator>
				<category><![CDATA[abcdll.dll]]></category>

		<guid isPermaLink="false">http://www.abcsoftware.us/?p=694</guid>
		<description><![CDATA[The new delete confirmation routine requires at least revision 304 of the abcdll.dll file. The current version is 14.37.0.320. If you have reports of server crashing, especially if someone just deleted a record, this is likely the cause.]]></description>
			<content:encoded><![CDATA[<p>The new delete confirmation routine requires at least revision 304 of the abcdll.dll file. The current version is 14.37.0.320. If you have reports of server crashing, especially if someone just deleted a record, this is likely the cause.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abcsoftware.us/2012/crashing-on-delete/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>14.37 Change Date Reference# Format</title>
		<link>http://www.abcsoftware.us/2011/14-37-change-date-reference-format/</link>
		<comments>http://www.abcsoftware.us/2011/14-37-change-date-reference-format/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 19:36:11 +0000</pubDate>
		<dc:creator>Andrew Zimmerman</dc:creator>
				<category><![CDATA[abcdll.dll]]></category>

		<guid isPermaLink="false">http://www.abcsoftware.us/?p=673</guid>
		<description><![CDATA[The date reference# field has been enhanced to allow the full 40-bit range of negative and positive integers allowed by the accumulator. The 8 character ascii encoding has been changed to achieve correct sorting. Existing data (if any) needs converted. &#8230; <a href="http://www.abcsoftware.us/2011/14-37-change-date-reference-format/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The date reference# field has been enhanced to allow the full 40-bit range of negative and positive integers allowed by the accumulator. The 8 character ascii encoding has been changed to achieve correct sorting. Existing data (if any) needs converted.</p>
<p>Additional work needs to be done in srchfl1a if we ever use it as a primary key.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abcsoftware.us/2011/14-37-change-date-reference-format/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>14.36 Bug Fix</title>
		<link>http://www.abcsoftware.us/2011/14-36-bug-fix/</link>
		<comments>http://www.abcsoftware.us/2011/14-36-bug-fix/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 13:09:39 +0000</pubDate>
		<dc:creator>Andrew Zimmerman</dc:creator>
				<category><![CDATA[abcdll.dll]]></category>
		<category><![CDATA[fix]]></category>

		<guid isPermaLink="false">http://www.abcsoftware.us/?p=667</guid>
		<description><![CDATA[We had a bug that could crash the server if a top level cram routine exited to machine code from inside a block. A block is code inside a pair of curly braces. Fixed in 14.36. Download abcdll.dll from Version 14 &#8230; <a href="http://www.abcsoftware.us/2011/14-36-bug-fix/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>We had a bug that could crash the server if a top level cram routine exited to machine code from inside a block. A block is code inside a pair of curly braces. Fixed in 14.36. Download abcdll.dll from Version 14 Downloads.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abcsoftware.us/2011/14-36-bug-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>14.29 has F12 for save/new</title>
		<link>http://www.abcsoftware.us/2011/14-29-has-f12-for-savenew/</link>
		<comments>http://www.abcsoftware.us/2011/14-29-has-f12-for-savenew/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 16:22:00 +0000</pubDate>
		<dc:creator>Andrew Zimmerman</dc:creator>
				<category><![CDATA[This and That]]></category>

		<guid isPermaLink="false">http://www.abcsoftware.us/2011/14-29-has-f12-for-savenew/</guid>
		<description><![CDATA[Version 14.29 dispatches the F12 key for save record and clear. The functionality is identical to F9 with the additional step of clearing the saved record. The steps are:1. Call global 7 with F12 as the key.2. Call global 2 &#8230; <a href="http://www.abcsoftware.us/2011/14-29-has-f12-for-savenew/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Version 14.29 dispatches the F12 key for save record and clear. The functionality is identical to F9 with the additional step of clearing the saved record. The steps are:<br />1. Call global 7 with F12 as the key.<br />2. Call global 2 (which calls local 2).<br />3. Save the record.<br />4. Set input location to field 0.<br />5. Clear the record<br />6. Call local 5 with accumulator set to 1.<br />7. Return to input mode.</p>
<p>Note that if local 2 does a &#8216;reject&#8217; instead of a &#8216;return&#8217; the record will not be cleared.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abcsoftware.us/2011/14-29-has-f12-for-savenew/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Local and Screen Variables, 14.22</title>
		<link>http://www.abcsoftware.us/2010/local-and-screen-variables-14-22/</link>
		<comments>http://www.abcsoftware.us/2010/local-and-screen-variables-14-22/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 19:52:00 +0000</pubDate>
		<dc:creator>Andrew Zimmerman</dc:creator>
				<category><![CDATA[local screen scope variables]]></category>

		<guid isPermaLink="false">http://www.abcsoftware.us/2010/local-and-screen-variables-14-22/</guid>
		<description><![CDATA[This post describes the use of local and screen variables in raw Cram code. They will normally be used with a compiler preprocessor. The variables are allocated in the &#8217;250 file. If the &#8217;250 file is not available you&#8217;ll get &#8230; <a href="http://www.abcsoftware.us/2010/local-and-screen-variables-14-22/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This post describes the use of local and screen variables in raw Cram code. They will normally be used with a compiler preprocessor.
<div></div>
<div>The variables are allocated in the &#8217;250 file. If the &#8217;250 file is not available you&#8217;ll get an FC Error. Use <span class="Apple-style-span"  style="font-family:'courier new';">localvar</span> to allocate variables with only local scope, within a single format. Use <span class="Apple-style-span"  style="font-family:'courier new';">screenvar</span> to allocate variables that can be used in any of a screen&#8217;s formats, including formats called by <span class="Apple-style-span"  style="font-family:'courier new';">screengosub</span> and <span class="Apple-style-span"  style="font-family:'courier new';">function</span>. Two arguments follow, the number of variables to allocate, and the numeric value of the variable type.</div>
<div></div>
<div>To allocate two strings with local scope, use this command at the beginning of the format: <span class="Apple-style-span"  style="font-family:'courier new';">localvar2,128 </span>Local variables are allocated at the end of the &#8217;250 file and grow down, toward the beginning of the file.</div>
<div></div>
<div>To allocate three integers with screen scope, use this command at the beginning of format 5: <span class="Apple-style-span"  style="font-family:'courier new';">screenvar3,0 </span>Screen variables are allocated at the beginning of the &#8217;250 file and grow up, toward the end of the file.</div>
<div></div>
<div><span class="Apple-style-span"  style="font-family:arial;"><span class="Apple-style-span" style="font-family: Georgia, serif; ">To address these variables, use indirect arguments from 128 to 255. Use 255 and down to address local variables, with the odd numbers being used for indirect addressing. For </span><span class="Apple-style-span"  style="font-family:'courier new';">local.0</span><span class="Apple-style-span" style="font-family: Georgia, serif; "> you would use </span><span class="Apple-style-span"  style="font-family:'courier new';">(254)</span><span class="Apple-style-span" style="font-family: Georgia, serif; ">. For </span><span class="Apple-style-span"  style="font-family:'courier new';">(local.0)</span><span class="Apple-style-span" style="font-family: Georgia, serif; "> you would use </span><span class="Apple-style-span"  style="font-family:'courier new';">(255)</span><span class="Apple-style-span" style="font-family: Georgia, serif; ">. Use 128 and up to address screen variables. For </span><span class="Apple-style-span"  style="font-family:'courier new';">screen.0</span><span class="Apple-style-span" style="font-family: Georgia, serif; "> you would use </span><span class="Apple-style-span"  style="font-family:'courier new';">(128)</span><span class="Apple-style-span" style="font-family: Georgia, serif; ">. For </span><span class="Apple-style-span"  style="font-family:'courier new';">(screen.0)</span><span class="Apple-style-span" style="font-family: Georgia, serif; "> you would use </span><span class="Apple-style-span"  style="font-family:'courier new';">(129)</span><span class="Apple-style-span" style="font-family: Georgia, serif; ">.</span></span></div>
<div><span class="Apple-style-span"  style="font-family:arial;"><span class="Apple-style-span" style="font-family: Georgia, serif; "><br /></span></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.abcsoftware.us/2010/local-and-screen-variables-14-22/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fix for line feed opcode</title>
		<link>http://www.abcsoftware.us/2009/fix-for-line-feed-opcode/</link>
		<comments>http://www.abcsoftware.us/2009/fix-for-line-feed-opcode/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 20:47:00 +0000</pubDate>
		<dc:creator>Andrew Zimmerman</dc:creator>
				<category><![CDATA[This and That]]></category>

		<guid isPermaLink="false">http://www.abcsoftware.us/2009/fix-for-line-feed-opcode/</guid>
		<description><![CDATA[The line feed opcode added by the V14 compiler can cause problems. It is decoded as an extended command, which will zero 1020 as there are zero arguments following the opcode. Version 14.13 bypasses argument decoding on this opcode. Do &#8230; <a href="http://www.abcsoftware.us/2009/fix-for-line-feed-opcode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The line feed opcode added by the V14 compiler can cause problems. It is decoded as an extended command, which will zero 1020 as there are zero arguments following the opcode. Version 14.13 bypasses argument decoding on this opcode.
<div></div>
<div>Do not compile with version 14 unless the program will be executing on 14.13 or new abcdll.dll.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.abcsoftware.us/2009/fix-for-line-feed-opcode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Date Reference# in 14.03</title>
		<link>http://www.abcsoftware.us/2009/date-reference-in-14-03/</link>
		<comments>http://www.abcsoftware.us/2009/date-reference-in-14-03/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 19:48:00 +0000</pubDate>
		<dc:creator>Andrew Zimmerman</dc:creator>
				<category><![CDATA[This and That]]></category>

		<guid isPermaLink="false">http://www.abcsoftware.us/2009/date-reference-in-14-03/</guid>
		<description><![CDATA[Version 14.03 has a new variable type called &#8220;Date Reference Number&#8221;. This will be used for transaction reference numbers coded to the date. The numeric value of the new type is 24. The file structure compiler uses &#8216;R&#8217; for reference &#8230; <a href="http://www.abcsoftware.us/2009/date-reference-in-14-03/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Version 14.03 has a new variable type called &#8220;Date Reference Number&#8221;. This will be used for transaction reference numbers coded to the date. The numeric value of the new type is 24. The file structure compiler uses &#8216;R&#8217; for reference number. The variable in memory is a numeric type of 39 bits. In the database it is coded as an 8-byte string with base 32 characters encoded into ascii characters of numbers and upper-case letters. In the accumulator it can be an 8-byte string or a numeric integer value up to 39 bits. It works similar to dates in that loading it into the accumulator with a concatenate command &#8216;&amp;&#8217; converts it to an 8-byte encoded string. Storing a string accumulator into a date reference number variable decodes the 8-byte string into the 39-bit integer value.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abcsoftware.us/2009/date-reference-in-14-03/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nested Condition Blocks and &#8216;While&#8217; Loops in 14.02</title>
		<link>http://www.abcsoftware.us/2009/nested-condition-blocks-and-while-loops-in-14-02/</link>
		<comments>http://www.abcsoftware.us/2009/nested-condition-blocks-and-while-loops-in-14-02/#comments</comments>
		<pubDate>Mon, 25 May 2009 14:58:00 +0000</pubDate>
		<dc:creator>Andrew Zimmerman</dc:creator>
				<category><![CDATA[This and That]]></category>

		<guid isPermaLink="false">http://www.abcsoftware.us/2009/nested-condition-blocks-and-while-loops-in-14-02/</guid>
		<description><![CDATA[Version 14.02 is now available on the Version 14 page. There are two major improvements to flow control in cram programming. These will minimize the need for &#8216;branch&#8217; commands, making programming more readable. Use braces (curly brackets) to isolate conditional &#8230; <a href="http://www.abcsoftware.us/2009/nested-condition-blocks-and-while-loops-in-14-02/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span class="Apple-style-span"  style="font-size:medium;">Version 14.02 is now available on the Version 14 page. There are two major improvements to flow control in cram programming. These will minimize the need for &#8216;branch&#8217; commands, making programming more readable.</span>
<div><span class="Apple-style-span"  style="font-size:medium;"><br /></span></div>
<div><span class="Apple-style-span"  style="font-size:medium;">Use braces (curly brackets) to isolate conditional statements. Brace pairs and everything inside them do not affect the condition flag and scanning of higher level conditional statements. This is similar to C language programming where everything to be executed after an &#8216;if&#8217; statement is enclosed in braces. The power of the feature comes from conditional statements within conditional statements, or nested brace pairs. Unmatched brace pairs cause a compile error.<br /></span></div>
<div><span class="Apple-style-span"  style="font-size:medium;"><br /></span></div>
<div><tt><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">>A299</span></span></tt></div>
<div><tt><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">+"10"=1023:+"20"=1024<br />if1025eq"0"<br /></span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-size: small;"> </span></span><span class="Apple-style-span" style="font-size: small;">{label1:if1023>"0":-"1"`1023<br /></span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-size: small;">  </span></span><span class="Apple-style-span" style="font-size: small;">{&amp;"TEST"&amp;1023load"C":&amp;C.1print}<br /></span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-size: small;"> </span></span><span class="Apple-style-span" style="font-size: small;">branch1</span></span></tt></div>
<div><tt><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-size: small;"> </span></span><span class="Apple-style-span" style="font-size: small;">}<br />else<br />        {label2:if1024>"0":-1"`1024:</span></span></tt></div>
<div><tt><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-size: small;">  </span></span><span class="Apple-style-span" style="font-size: small;">{&amp;"TEST"load"N":&amp;N.1print}</span></span></tt></div>
<div><tt><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-size: small;"> </span></span><span class="Apple-style-span" style="font-size: small;">branch2</span></span></tt></div>
<div><tt><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-size: small;"> </span></span><span class="Apple-style-span" style="font-size: small;">}<br />always:&amp;1023&amp;"!"&amp;1024linput<br />></span></span></tt><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;"><br /></span></span></div>
<div><span class="Apple-style-span"  style="font-size:medium;"><br /></span></div>
<div><span class="Apple-style-span"  style="font-size:medium;">Use the &#8216;while&#8217; command to program loops without &#8216;goto&#8217; or &#8216;branch&#8217; commands. The &#8216;while&#8217; designates the beginning of the loop and replaces the &#8216;if&#8217; to check the loop condition. The code to be executed in each loop is enclosed in braces.</span></div>
<div><span class="Apple-style-span"  style="font-size:medium;"><br /></span></div>
<div><span class="Apple-style-span"  style="font-size:medium;">The following example would do a &#8216;print&#8217; 10 times and the print &#8220;Done&#8221;:</span></div>
<div><span class="Apple-style-span"  style="font-size:medium;"><br /></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">+&#8221;10&#8243;=1025</span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">while1025>&#8221;0&#8243;:{-&#8221;1&#8243;`1025:print}:&amp;&#8221;Done&#8221;print</span></span></div>
<div></div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.abcsoftware.us/2009/nested-condition-blocks-and-while-loops-in-14-02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compiler Fix in 13.56 and 14.01</title>
		<link>http://www.abcsoftware.us/2009/compiler-fix-in-13-56-and-14-01/</link>
		<comments>http://www.abcsoftware.us/2009/compiler-fix-in-13-56-and-14-01/#comments</comments>
		<pubDate>Tue, 12 May 2009 20:30:00 +0000</pubDate>
		<dc:creator>Andrew Zimmerman</dc:creator>
				<category><![CDATA[This and That]]></category>

		<guid isPermaLink="false">http://www.abcsoftware.us/2009/compiler-fix-in-13-56-and-14-01/</guid>
		<description><![CDATA[These versions correct compiling of direct arguments, broken in 13.55 and 14.00. Also, the high limit on an immediate argument on one-byte commands is again 127. This allows us to add stack arguments (temporary arguments with local scope) to application &#8230; <a href="http://www.abcsoftware.us/2009/compiler-fix-in-13-56-and-14-01/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>These versions correct compiling of direct arguments, broken in 13.55 and 14.00. Also, the high limit on an immediate argument on one-byte commands is again 127. This allows us to add stack arguments (temporary arguments with local scope) to application programming context in the future. Currently stack arguments are available only in cramcmd context.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abcsoftware.us/2009/compiler-fix-in-13-56-and-14-01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More Compiler Improvements in 13.55</title>
		<link>http://www.abcsoftware.us/2009/more-compiler-improvements-in-13-55/</link>
		<comments>http://www.abcsoftware.us/2009/more-compiler-improvements-in-13-55/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 17:26:00 +0000</pubDate>
		<dc:creator>Andrew Zimmerman</dc:creator>
				<category><![CDATA[cram compiler]]></category>

		<guid isPermaLink="false">http://www.abcsoftware.us/2009/more-compiler-improvements-in-13-55/</guid>
		<description><![CDATA[You can (should) now use quotes on immediate arguments for one-byte argument commands. The commonly used commands include goto, gosub, gotog, gosubg, tab, left$, and right$. Example: gosubg&#8221;10&#8243; Goto and gosub can use immediate arguments up to &#8220;383&#8243; and are &#8230; <a href="http://www.abcsoftware.us/2009/more-compiler-improvements-in-13-55/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>You can (should) now use quotes on immediate arguments for one-byte argument commands. The commonly used commands include goto, gosub, gotog, gosubg, tab, left$, and right$. Example: <span class="Apple-style-span" style="font-family: 'courier new';">gosubg&#8221;10&#8243;</span>
<div></div>
<div>Goto and gosub can use immediate arguments up to &#8220;383&#8243; and are automatically compiled as gotox and gosubx if required. Gotog and gosubg can use immediate arguments up to &#8220;639&#8243; and are automatically compiled with the required opcodes. Example: <span class="Apple-style-span" style="font-family: 'courier new';">gosubg&#8221;396&#8243;</span> instead of <span class="Apple-style-span" style="font-family: 'courier new';">callq12.</span></div>
<div></div>
<div>You can use immediate arguments up to &#8220;147&#8243;. Example: left$1023,<span class="Apple-style-span" style="font-family: 'courier new';">&#8220;147&#8243;</span></div>
<div></div>
<div>You can (should) now use the full 4-digit arguments for variables on these commands. You can use the range 1020 to 1127. Example: <span class="Apple-style-span" style="font-family: 'courier new';">tab1023</span></div>
<div><span class="Apple-style-span" style="font-family: 'courier new';"><br /></span></div>
<div>There is special usage in programming cramcmd&#8217;s in screen &#8217;251. In cramcmd context you are accessing variables starting at 0 instead of 1020. To force compiling variable access instead of immediate use parentheses to enclose the variable number. Example: <span class="Apple-style-span" style="font-family: 'courier new';">tab(1)</span> uses variable 1. This is not to be confused with indirect addressing which uses pointers. In cramcmd context you may use immediate arguments up to &#8220;127&#8243;.</div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.abcsoftware.us/2009/more-compiler-improvements-in-13-55/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

