ISMOD (Indexed Sequential I/O Module Definition) Macro

The macro defines a logic module for an ISAM file.

If you do not provide a name for the module, IOCS generates a standard module name.
Note: If an ISMOD module precedes an assembler language USING statement or follows your program, registers 2 through 12 remain unrestricted even during assembly. However, if the module lies within your program, issue the same USING statement (as that which was issued before the ISMOD module) directly following the module. This is necessary because the ISMOD module uses registers 1 through 3 as base registers. It uses register 5 in addition if your ISMOD macro includes CORDATA=YES. Each time the module is assembled, these registers are dropped.

Format

Read syntax diagramSkip visual syntax diagramnameISMOD IOROUT=LOADADDRETRVEADDRTR,CORDATA=YES,CORINDX=YES,ERREXT=YES,HOLD=YES,IOAREA2=YES,RDONLY=YES,RECFORM=FIXUNBFIXBLKBOTH,RPS=SVA,SEPASMB=YES,TYPEFLE=RANDOMSEQNTLRANSEQ

Requirements for the caller

AMODE:
24
RMODE:
24
ASC Mode:
Primary

Parameters

CORDATA=YES
Include this operand if the module is to add records to files with the IOSIZE DTFIS operand. If this operand is included, the IOSIZE operand is required in the DTF. If you omit the CORDATA=YES operand, you do not have an increase in throughput when adding records to a file.
CORINDX=YES
Include this operand to generate a module that can process DTFIS files (add or random retrieve functions) with or without the cylinder index entries resident in virtual storage. If the operand is omitted, the generated module cannot process the resident cylinder index entries.

If an irrecoverable I/O error occurs while reading indexes into virtual storage, the program does not use the resident cylinder index entries.

ERREXT=YES
Include this operand if the ERET macro is to be used with this module or if non-data-transfer error conditions are returned in filenameC. If HOLD=YES and ERREXT=YES, your program must issue the ERET macro to return to the ISAM module to free any held tracks. See also the DTF ERREXT and HOLD operands.
HOLD=YES
This operand provides for the track hold option for both data and index records. If the HOLD operand is omitted, the track hold function is not performed.

Because track hold cannot be performed on a LOAD file, HOLD=YES cannot be specified when IOROUT=LOAD.

If HOLD=YES and ERREXT=YES, your program must issue the ERET macro to return to the ISAM module to free any held tracks.

IOAREA2=YES
Include this operand if a second I/O area is to be used, that is, if IOAREA2 is specified in any of the DTFs linked to the logic module. The operand is only valid for load or sequential retrieval functions. The module can process DTFs with one or two I/O areas specified. This operand must not be specified if TYPEFLE=RANSEQ is specified.
IOROUT=LOAD | ADD | RETRVE | ADDRTR
This operand specifies the type of module that is required to perform a given function:
IOROUT=LOAD
Generates a module for creating or extending a file.
IOROUT=ADD
Generates a module for adding new records to an existing file.
IOROUT=RETRVE
Generates a module to retrieve, either randomly or sequentially, records from a file.
IOROUT=ADDRTR
Generates a module that combines the features of the ADD and RETRVE modules. This module also processes any file in which only ADD or RETRVE is specified in the IOROUT operand of the DTF, and in which the TYPEFLE operand contains the corresponding specification (or a subset of it).
RDONLY=YES
This operand causes a read-only module to be generated. Whenever this operand is specified, any DTF used with the module must have the same operand.
RECFORM=FIXUNB | FIXBLK | BOTH
This operand generates a module that creates, adds to, or processes an unblocked (FIXUNB) or blocked (FIXBLK) file. If BOTH is specified, a module is generated to process both unblocked and blocked files, and the DTF can specify either FIXUNB or FIXBLK in the RECFORM operand. The RECFORM operand is required only when IOROUT specifies ADD or ADDRTR. If IOROUT specifies LOAD or RETRVE, a module that handles fixed-length blocked and unblocked files is generated, and the operand is not required.
RPS=SVA
This operand causes the RPS logic modules to be assembled.
SEPASMB=YES
Include this operand only if the module is to be assembled separately. This produces an object module ready to be cataloged into a suitable sublibrary either by the standard name or by the user-specified name. The name is used as the module 's transfer address. If you omit the operand, the assembler assumes that the ISMOD macro is assembled with the DTF in your program.
TYPEFLE=RANDOM | SEQNTL | RANSEQ
This operand is required when IOROUT specifies RETRVE or ADDRTR. RANDOM generates a module that includes only random retrieval capabilities. SEQNTL generates a module that includes only sequential retrieval capabilities. RANSEQ generates a module that includes random and sequential capabilities. It also processes any file in which the TYPEFLE operand specifies either RANDOM or SEQNTL. If TYPEFLE=RANSEQ, IOAREA2=YES must not be specified.

When all operands are omitted, the ISMOD module can only process files where IOROUT=RETRVE, TYPEFLE=RANSEQ, CORINDX, CORDATA, HOLD, and RDONLY are not specified. The name of that module is IJHZRBZZ.