PUT (Put Record) Macro

PUT writes, prints, or punches logical records, which are built directly in the output area or in a specified work area.

PUT can be used for any sequential output file that is defined by a DTF macro, and for any type of record. It operates much the same as GET but in reverse. It is issued after a record is built.

Format

Read syntax diagramSkip visual syntax diagramnamePUTfilename(1), workname,(0),STLSP=controlfield( r1),STLSK=controlfield( r2)

Requirements for the caller

AMODE:
24
RMODE:
24
ASC Mode:
Primary

Parameters

filename | (1)
This operand must be the same as the name of the DTF macro for the file that is being built. The operand can be specified as a symbol or in either special or ordinary register notation. The high-order 8 bits of the register must be zero. Use register notation if your program is to be self-relocating.
workname | (0)
This operand specifies a work area name or a register (in either special or ordinary register notation) containing the address of the work area. The work area address should never be preloaded into register 1.

This operand is used if the corresponding DTF contains the WORKA=YES operand that indicates that the records are to be built in a work area, which you define yourself (for example, using a DS instruction). If the operand is specified, all PUTs for the named file must use either a register or a workname. PUT then moves each record from the work area to the output area.

Individual records for a logical file can be built in the same work area or in different work areas. Each PUT macro specifies the work area where the completed record was built. However, only one work area can be specified in any one PUT macro.

Whenever a PUT macro transfers an output data record from an output area (or work area) to an I/O device, the data remains in the area until it is either cleared or replaced by other data. IOCS does not clear the area. Therefore, if you plan to build another record whose data does not use every position of the output area or work area, clear that area before you build the record. If this is not done, the new record contains interspersed characters from the preceding record.

STLSP=controlfield | (r1)
This operand specifies a control byte that allows for spacing while using the selective tape listing feature on an IBM® 1403. To use this feature, the operand STLST=YES must be specified in the DTFPR.
Up to 8 paper tapes can be independently spaced. The control byte is set up like any other data byte in virtual storage. You can also use ordinary register notation to provide the address of the control byte. Registers 2 through 12 are available without restriction. You determine the spacing (which occurs after printing) by setting on the bits corresponding to the tapes you want to space. The correspondence between control byte bits and tapes is as follows:
  Bit     Tape Position
 
   0         8 (rightmost tape)
   1         7
   2         6
   3         5
   4         4
   5         3
   6         2
   7         1 (leftmost tape)
Note: Double-width tapes must be controlled by both bits of the control field.
STLSK=controlfield | (r2)
This operand specifies a control byte that allows for skipping while using the selective tape listing feature on the 1403 printer. To use this feature, the operand STLIST=YES must be specified in the DTFPR. Up to 8 paper tapes can be independently skipped. The control byte is set up like any other data byte in virtual storage. You can also use ordinary register notation to provide the address of the control byte. Registers 2 through 12 are available without restriction.

You determine the skipping (which occurs after printing) by setting on the bits corresponding to the tapes you want to skip. The correspondence between control byte bits and tapes is shown in the figure under "STLSP=controlfield", above.