Please enable JavaScript to view this site.

A-Shell Development History

948.0.1   Other

Random files are no longer limited to 2GB in either the WIN32 version (not the "C" version), and the UNIX/LINUX versions. The new limit is too large to worry about.

Note, however, that sequential files, as well as old ISAM files, remain limited to 2GB.

Also BASORT remains limited to 2GB. (You can, however, use the third-party Optech sort routine, which is much faster anyway; contact us for details if you have large files to sort, or complex sorting requirements not handled by BASORT.)

948.0.2   ISAM

ISAM-A (formerly known as ISAMPLUS) updated to version 6.11h across all platforms, supporting all of the features recently introduced in A-Shell/Windows:

Removal of 2GB limit; new limit is 2 billion records
Push / Pop position in index
Compressed keys
Compressed (variable length) data
Transactions

A new document, the A-Shell ISAM-A Reference, has been produced and is available with the other A-Shells docs. This will eventually become a chapter in the A-Shell Development Guide.

948.0.3   ISAM

ISMUTL.LIT 1.4(131) eliminates the 2GB limit on the dump/load file, and also adds improved life signs (for long dumps/loads). Note that this version requires A-Shell edit 948 or higher.

948.0.4   General

Implement a runtime option to allow random files to grow record by record, sort of like sequential files, or like ISAM-A files. The motivation for this was initially just to get around the 2GB limit on sequential files for ISMUTL dump/load operations, but it may be useful in a variety of situations. Notes:

Enable the mode by setting bit GOP_EXTFIO (&h02) in the first bank of options and GOP2_AUTOX_RAN (&h01000000) in the second bank, using MIAMEX,MX_GETOPTIONS and MIAMEX,MX_SETOPTIONS:

xcall MIAMEX,MX_GETOPTIONS,OPTIONS1,OPTIONS2

OPTIONS1 = OPTIONS1 or GOP_EXTFIO

OPTIONS2 = OPTIONS2 or GOP2_AUTOX_RAN

xcall MIAMEX,MX_SETOPTIONS,OPTIONS1,OPTIONS2

 

Once set, the mode is available to all random files. (You can also set EXTFIO using SET EXTFIO or OPTIONS=EXTFIO.)
Since files grow record by record, you must use span'blocks mode to open the file, i.e.:

OPEN #1, FNAME$, RANDOM, RECSIZE, RECVAR, span'blocks

 

To create the initial file, you can use CREATE.LIT or ALLOCATE (to create a 1 block file) or MAKE.LIT to create a 0 block file. Or you can open the file for sequential output, then close it (also creating a 0 block file).
To write to the file, use the normal random file WRITE statements. If you attempt to write past the current end of the file, the file will be extended as needed (on a record by record basis).
To read from the file, use the normal random file READ statements. If you attempt to read past the end of the file, you will get the normal illegal record error (#31).
To determine exactly how many records are in the file, use XCALL SIZE,FILE,BYTES and divide the size in bytes by the record size. (Using LOOKUP may be misleading since it returns the size as an integer number of blocks, although the actual size may not be an even multiple of 512 bytes.)
Since fundamentally (from the OS point of view) there is no difference between our "random" and "sequential" files, there is nothing preventing you from later accessing the file as a sequential file. However, you cannot change from random to sequential access without closing and reopening the file.
See the test program AUTOX.BP in [908,39] for an example.

948.0.5

(Windows) Fix a problem where disk full and record not locked errors were incorrectly being reported as device errors.

948.0.6

(Windows/ATE) Host initiated FTP transfers (using the ZTERM ESCAPE sequence or TAB(-10,22)) now use SFTP mode if so selected in the ATE profile. (SFTP is a secure form of FTP that uses the SSH service to encrypt the transfer.

948.0.7   MIAMEX 156

Add a new subroutine MIAMEX 156 that returns your "instance number". This is the count of how many A-Shell/Windows sessions are running on your PC.

948.0.8   MIAMEX 157

Add a new subroutine MIAMEX 157 that may be used to search for a windows with the specified window TITLE and/or CLASS and/or HANDLE.

Parameters

title

can be loaded with the window title (as shown on the title bar) of the window to search for.

class (string)

can be loaded with the window class to search for. If both class and title are both non-blank, it will only locate a window matching both.

handle (B,4 or F)

returns the window handle if the window is found (or zero if not found).

If both class and title are blank and handle is non-zero, then it searches for the window by its window handle, returning the title and class.

948.0.9   MIAMEX 99

(Windows) Fix bug in MIAMEX,99 (MX_REGISTRY) in which it was not zeroing out the returned numeric value if the item was not found.

948.0.10   ATE

(Windows/ATE) Static text and button controls now treat an "&" followed by a space as a literal character, rather than as the lead-in to underline the accelerator character. (Otherwise, causes the following character to be underlined and treated as the accelerator character.)

948.0.11   SUBMIT.LIT

(UNIX) SUBMIT/W was not waiting properly for submitted task when using SBR=SUBMIT2 switch in miame.ini. (Actually, it was always waiting 5 seconds.)