CISAM

Added March 2013

xcall CISAM, opcode, ch, idx, recno {,status}

CISAM.SBR is an internal interface to the ISAMPLUS file system, generally only used by system-level utilities and thus not previously documented. In A-Shell 6.1.1140 of March 2013, the routine was "made public" because new functions expose a capability that is not yet available in regular BASIC/ISAMPLUS syntax. The limitation with the old ISAM'PUSH and ISAM'POP was that it is single-level, i.e. supports only one level of ISAM'PUSH for any given channel at a time. The subroutine functions documented here allow you to "push" an arbitrary number of file positions/states and "pop" them in an arbitrary order.

Opcode 33 is equivalent to ISAM'PUSH #CH, except that it returns to you the current IDX and RECNO.

Opcode 34 is equivalent to ISAM'GOTO #CH, IDX, RECNO (which does not yet exist). This is similar to ISAM'POP, except repositions the internal state and position according to the specified IDX and RECNO, rather than the previously pushed one.

Note that the IDX numbering starts from 1 here, contrary to the IDX numbering in Basic, which starts at zero.

Both functions return 0 in STATUS for success, else error.