Please enable JavaScript to view this site.

A-Shell Development History

1. (UNIX) A TVI925 driver is now embedded.  (Set TERM=tvi925 to use.)

2. Hitting ^C in an INFLD field with the "V" TYPE code now restores the original field contents before exiting (with EXITCODE=-10).

Hitting ^_ in an INFLD field will restore the original field contents (useful after making accidental changes to a field.)

3. Hitting ^C during compilation of a ++include file now longer leaves that file in a read-only state.

4. SBX subroutines now always run in "BASIC mode" (as opposed to LIT mode), even when they are invoked by a LIT.  There are various subtle differences between the two modes, the most apparent of which are that the error codes in LIT mode are different from those BASIC mode (matching the error codes for AMOS LIT commands), and that opening a file for output within a LIT will cause an error if the file already exists.  These differences are generally viewed as annoyances by most programmers, thus the change here.

5. A bug in the INPUT CSV #<channel> statement has been fixed.  Previously, if the number of data fields in an input data line exceeded the number of variables specified in the INPUT CSV statement, it was correctly discarding the remainder of the current data line, but then incorrectly skipping the next line of the input file.  Now it works as expected, which is to say that if there are more data fields on the line than variables, the excess data fields are discarded and the next INPUT CSV will start on the next line of the input file.  If there are more variables than data fields, then the excess variables will be set to null and again the next INPUT CSV will start on the next line. (This case was handled correctly prior to this bug fix.)  Note that in this last case, if the input is from the keyboard rather than a file, then the excess variables are not set to null; this is more like normal INPUT statements, but in any case is probably a rare condition since INPUT CSV would almost always be used with file input.

Note that this handling of mismatches between the number of fields in the input data file and the number of variables specified in the INPUT CSV statement is different than that for normal INPUT statements (which essentially match up fields to variables without concern for where lines end.)  This difference is particularly useful when reading CSV data created by programs such as EXCEL, which commonly do not bother to add trailing null fields to the output.

For example, if you have a spreadsheet with 10 columns, and output it to comma or tab delimited format, any row which had no data in the last N columns would have that many fewer fields in the output file. Such lines would be tricky to parse using normal INPUT, but easy to handle with INPUT CSV (even before this bug fix).

Note that INPUT CSV requires that you compile with the /X:2 option (since it is an A-Shell extension not compatible with AMOS.)

6. You are now permitted to launch up to 2 extra nodes beyond the license limit, in order to simplify dealer support and other debugging.  A warning message will be displayed initially, and then the session will operate in a mode similar to demo mode (where you get annoying nag messages periodically).  But, this will greatly simplify dealing with two situations that were previously very awkward.  One was the case where the dealer or outside support person could not log in because all of the nodes were in use (requiring that somebody be forced to log out).  The other was the case where phantom or zombie jobs were responsible for using up all of the licensed nodes, preventing a support person from getting in to clear them out (with SYSTAT/K/Z or the QUTL ZAP command.)

7. (LINUX) Install script no longer requires use of uncompress utility (which may not always be installed under Linux.)