A-Shell ISAM-A vs. AMOS ISAMPLUS

Although A-Shell's ISAM-A is mostly upward compatible (at a programming level) with AMOS ISAMPLUS, there are a couple of considerations that require attention in your code.

File names:  ISAMPLUS files contain a single data file and a single index file (which contains all of the individual logical indexes). Under AMOS (ISAMPLUS), the data file extension is IDA, whereas under A-Shell (ISAM-A) it is DAT. This is a minor inconvenience for programs which look for the IDA file, but this can be alleviated for the most part by means of the MAPIDA setting in miame.ini. In ISAM-A, files also contain a third physical file with an LCK extension which is used for locking (and which can generally be ignored by your application).

Data file layout:  Although the IDX files are completely different in format between AMOS and A-Shell, the data file layouts are quite similar, except for one important difference: the A-Shell version has an extra control byte on the end of each record which indicates whether the record is deleted or not. (Binary zero indicates deleted.) Thus, if your declared record size is 512, the actual physical record on disk will be 513. Records are stacked end to end with no consideration for "blocking". Under A-Shell, if you use the compressed data feature, only the fixed header portion of the data record will be stored in the DAT file; the compressed portion of the data record is actually stored in the IDX file.