*
*T*      COPYRIGHT, (C) HONEYWELL INFORMATION SYSTEMS INC., 1979.
*
         SYSTEM   BPM
         DEF      OUTSWP
         REF      M:LO
         REF      M:GO
         REF      M:UI
         REF      M:SI
         REF      BATCHF
*
*   Copyright text
*
COPYRITE DSECT   0
         TEXT 'COPYRIGHT, (C) HONEYWELL INFORMATION SYSTEMS INC., 1979.'
         CSECT
*
*        FORMAT OF CALL:            CALL OUTSWP
*
         CSECT    1
OUTSWP   EQU      %
         LI,1     10                GET DCB TAB INDEX
         LW,2     *0,1              GET LINK
         LI,3     MY%INSERT
         STW,3    *0,1              MAKE MINE THE FIRST ENTRY
         STW,2    MY%FLINK          LINK UP MINE
         LI,1     0
         MTW,0    X'8C00'
         BLZ      %+2
         LI,1     1
         STW,1    BATCHF
         B        *15               RETURN
*
         CSECT    0
MY%INSERT DATA    MY%FLINK
         TEXTC    'F:106'
         DATA     M:GO
         TEXTC    'F:105'
         DATA     M:SI
         TEXTC    'F:104'
         DATA     M:UI
         TEXTC    'F:101'
         DATA     F:OPT
         TEXTC    'F:103'
         DATA     F:STD
MY%FLINK DATA     0
*
OUTKEY   DATA     0
OUTBUF   RES      60
         REF      OPNTYP,RECKEY,SCNDAT
IOBUF    EQU      SCNDAT
         REF      RECLEN
*
* WRITE RECORD THROUGH M:GO.
*
         DEF      WRTMGO
WRTMGO   EQU      %
         LW,2     RECLEN
         LW,6     =X'40404040'
         LI,7     60
         STW,6    OUTBUF-1,7
         BDR,7    %-1
TRNNXT   EQU      %
         AI,2     -1
         BLZ      CHKKEY
         LW,3     IOBUF,2
         STB,3    OUTBUF,2
         B        TRNNXT
*
CHKKEY   LW,3     OPNTYP
         CI,3     3
         BNE      WNOKEY
         LW,3     RECKEY
         SLS,3    -8
         AW,3     =X'03000000'
         STW,3    OUTKEY
         M:WRITE  M:GO,(KEY,OUTKEY),(BUF,OUTBUF),(SIZE,*RECLEN),;
                       (ONEWKEY),(WAIT)
         B        *15
*
WNOKEY   M:WRITE  M:GO,(BUF,OUTBUF),(SIZE,*RECLEN),(WAIT)
         B        *15
*
         DEF      READSI,READCI
READSI   LI,5     M:SI
         B        %+2
READCI   LI,5     M:UI
         LH,3     *5
         CI,3     X'20'             IF NOT OPEN, SET ERR AND ABN.
         BANZ     %+2
         M:SETDCB *5,(ERR,READER),(ABN,READER)
         M:READ   *5,(BUF,OUTBUF),(SIZE,240),(WAIT),(ERR,READER),;
                     (ABN,READER)
         LI,3     8
         LH,3     *5,3
         SLS,3    -1
*
         AI,3     -1                IGNORE TRAILING JUNK.
         BLZ      ALLBLNK
*
ALLBLNK  AI,3     1                 #CHARS READ.
         LI,2     -240
         LI,5     ' '
         AW,2     3                 - # BLANKS TO FILL.
         BGEZ     MVOTI
         STW,5    IOBUF+240,2
         BIR,2    %-1
*
MVOTI    AI,3     -1                MOVE CHARS TO R1 FMT.
         BLZ      RETNOW
         LB,5     OUTBUF,3
         STW,5    IOBUF,3
         BDR,3    %-2
         LB,5     OUTBUF            DO LAST (FIRST) BYTE.
         STW,5    IOBUF
*
RETNOW   AW,15    14
         B        *15
*
READER   LB,3     10
         CI,3     6
         BE       %+2               CHECK IF END OR ERROR RETURN.
         AI,15    1                 RETURN VIA ERROR ADDRESS.
         LW,5     *15
         B        0,5
*
F:STD    DSECT    1
F:STD    M:DCB    (FILE,'FMTSTD'),(CONSEC),(SEQUEN),(IN),(SAVE)
F:OPT    DSECT    1
F:OPT    M:DCB    (FILE),(ASN,DEVICE),(DEVICE,'SI'),(SEQUEN),(IN),(SAVE)
         END
