*COMDECK FA=DEFS                                                         FA=DEFS
**        I/O MACRO CODING CONVENTIONS.                                  FA=DEFS
*                                                                        FA=DEFS
*         1.  MACRO DEFINITIONS THAT ACCEPT NULL CALLING PARAMETERS      FA=DEFS
*         SHOULD BE AVOIDED, PARTICULARLY WHEN A NULL PARAMETER IMPLIES  FA=DEFS
*         THAT A REGISTER IS ALREADY PROPERLY LOADED.  THE ASSUMPTIONS   FA=DEFS
*         OR REGISTERS MAY HAVE TO BE CHANGED IN THE FUTURE, WHICH COULD FA=DEFS
*         COMPEL RECODING OF ALL CALLS TO THE MACRO IF NULL PARAMETERS   FA=DEFS
*         HAVE SPECIFIC MEANINGS.                                        FA=DEFS
*             THE PREFERRED TECHNIQUE IS TO REQUIRE EXPLICIT CALL        FA=DEFS
*         PARAMETERS, AND THEN SQUEEZE OUT REDUNDANT CODE WITH THE       FA=DEFS
*         (R=) PSEUDO-OP OR OTHER METHOD.                                FA=DEFS
*                                                                        FA=DEFS
*         2.  *USES* LISTS ONLY THE REGISTERS DESTROYED BY THE MACRO     FA=DEFS
*         CALL EXPANSION.  REGISTERS DESTROYED BY INNER MACRO OR         FA=DEFS
*         SUBROUTINE CALLS ARE LISTED IN THE DESCRIPTION OF THE CALLED   FA=DEFS
*         ITEM.                                                          FA=DEFS
*             THE ONLY EXCEPTION TO THIS IS THAT REGISTERS DESTROYED BY  FA=DEFS
*         THE (R=) PSEUDO-OP SHOULD BE LISTED IN THE *USES* BLOCK OF     FA=DEFS
*         THE CALLER.                                                    FA=DEFS
*                                                                        FA=DEFS
*         3.  BOTH MACRO AND SUBROUTINE CALLS ARE LISTED IN *CALLS*.     FA=DEFS
*                                                                        FA=DEFS
*         4.  CONDITIONAL ASSEMBLY PSEUDO-OPS (IF.., ELSE, SKIP, ENDIF)  FA=DEFS
*         ARE ALWAYS EITHER COUNT-CONTROLLED OR LABELED, TO AVOID MACRO  FA=DEFS
*         NESTING PROBLEMS.                                              FA=DEFS
*             COUNT CONTROL IS PREFERRED WHERE THE LINE COUNTS ARE       FA=DEFS
*         SMALL (.LE. 9), TO REDUCE ASSEMBLY TIME.                       FA=DEFS
*             LABELING IS PREFERRED FOR LARGER LINE COUNTS, TO REDUCE    FA=DEFS
*         THE CHANCE OF COUNT ERRORS AND TO ENHANCE CODE READABILITY.    FA=DEFS
*                                                                        FA=DEFS
*         5.  ADDRESS TERMINOLOGY.                                       FA=DEFS
*                THE FOLLOWING CONVENTIONS ARE ADOPTED FOR REFERRING     FA=DEFS
*         TO A GROUP OF CONTIGUOUS STORAGE LOCATIONS.                    FA=DEFS
*             A.  *FWA* OR FIRST WORD ADDRESS IS THE SMALLEST STORAGE    FA=DEFS
*             ADDRESS FOR THE GROUP.                                     FA=DEFS
*             B.  *LWA* OR LAST WORD ADDRESS IS THE LARGEST STORAGE      FA=DEFS
*             ADDRESS FOR THE GROUP.                                     FA=DEFS
*             C.  *ADDRESS*, IF NOT OTHERWISE QUALIFIED, IS THE FIRST    FA=DEFS
*             WORD ADDRESS.                                              FA=DEFS
*             D. *FWA* IS PREFERRED WHEN BOTH *FWA* AND *LWA* ARE        FA=DEFS
*             BEING MENTIONED, TO AVOID CONFUSION.  OTHERWISE,           FA=DEFS
*             *ADDRESS* IS PREFERRED.                                    FA=DEFS
*             E.  *LWA+1* IS NEVER, NEVER ABBREVIATED AS *LWA*.          FA=DEFS
          TITLE  I/O SYSTEM SYMBOLS                                      FA=DEFS
          SPACE  4                                                       FA=DEFS
 #RM      IFEQ   CP#RM,0                                                 FA=DEFS
          SPACE  4,8                                                     FA=DEFS
****      FET STRUCTURE AND WORD OFFSETS.                                FA=DEFS
*                                                                        FA=DEFS
*                                                                        FA=DEFS
*              OFFSET        CONTENTS                                    FA=DEFS
*              ------        --------                                    FA=DEFS
                                                                         FA=DEFS
 I.FET    =      0           42/EXTERNAL LFN, 18/CIO CODE AND STATUS     FA=DEFS
 I.FIRST  =      1           36/0, 6/FET LEN - 5, 18/FIRST               FA=DEFS
 I.DT     =      1           12/DEVICE TYPE,48/0                         FA=DEFS
 I.IN     =      2           60/IN                                       FA=DEFS
 I.OUT    =      3           60/OUT                                      FA=DEFS
 I.LIMIT  =      4           42/0,18/LIMIT                               FA=DEFS
 I.PRU    =      4           26/0,16/PRU SIZE,18/0                       FA=DEFS
 I.CBSET  =      5           24/0, 18/PASS 1 LEN, 18/PASS 1 FWA          FA=DEFS
 I.RAN1   =      6           RANDOM FILE INFORMATION                     FA=DEFS
 I.RAN2   =      7           RANDOM FILE INFORMATION                     FA=DEFS
****                                                                     FA=DEFS
          SPACE  4                                                       FA=DEFS
 #RM      ELSE                                                           FA=DEFS
          SPACE  4                                                       FA=DEFS
****      PSEUDO-FET STRUCTURE AND WORD OFFSETS.                         FA=DEFS
*                                                                        FA=DEFS
*                                                                        FA=DEFS
*              OFFSET        CONTENTS                                    FA=DEFS
*              ------        --------                                    FA=DEFS
                                                                         FA=DEFS
 I.CBSET  =      -1          CIO BUFFER PASS 1 PARAMS - 42/LEN, 18/FWA   FA=DEFS
 I.FIT    =      0           1/HOLD BUF FLAG, 1/SPILL FLAG, 58/FIT ADDR  FA=DEFS
 I.FIRST  =      1           60/FIRST                                    FA=DEFS
 I.IN     =      2           60/IN                                       FA=DEFS
 I.OUT    =      3           60/OUT                                      FA=DEFS
 I.LIMIT  =      4           60/LIMIT                                    FA=DEFS
 I.HBSET  =      5           HOLDING BUF PASS 1 PARAMS - 42/LEN, 18/FWA  FA=DEFS
****                                                                     FA=DEFS
          SPACE  4                                                       FA=DEFS
 #RM      ENDIF                                                          FA=DEFS
          TITLE  I/O GENERAL MACROS                                      FA=DEFS
 SETFIL   SPACE  4,8                                                     FA=DEFS
**        SETFIL - SET PARAMS IN FILE MANAGEMENT TABLES.                 FA=DEFS
*                                                                        FA=DEFS
*                                                                        FA=DEFS
*         TO SET INITIAL PARAMETER VALUES IN FILE TABLES,                FA=DEFS
*         SETFIL    FILE=FNAM,MODE=INIT,FWA=ADDR                         FA=DEFS
*          OR                                                            FA=DEFS
*         SETFIL    FILE=FNAM,MODE=INIT,LWA1=ADDR                        FA=DEFS
*                                                                        FA=DEFS
*         TO RESTORE FILE TABLES TO INITIAL (PASS 1) CONDITIONS,         FA=DEFS
*         SETFIL    FILE=FNAM,MODE=RESET                                 FA=DEFS
*                                                                        FA=DEFS
*         ENTRY  *FNAM* = FILE NAME                                      FA=DEFS
*                 MODE  = *INIT* OR *RESET*                              FA=DEFS
*                *ADDR* = BUFFER FWA OR LWA+1, TO MATCH EQUIV PARAM      FA=DEFS
*                                                                        FA=DEFS
*         USES   X - 1, 2                                                FA=DEFS
*                B - 2, 3                                                FA=DEFS
*                                                                        FA=DEFS
*         CALLS  FA=SET                                                  FA=DEFS
                                                                         FA=DEFS
                                                                         FA=DEFS
          PURGMAC   SETFIL                                               FA=DEFS
                                                                         FA=DEFS
 SETFIL   MACROE FILE,MODE,FWA,LWA1                                      FA=DEFS
          LOCAL  CHECK                                                   FA=DEFS
 CHECK    SET    0                                                       FA=DEFS
          IFC    NE, LWA1  ,1                                            FA=DEFS
 CHECK    SET    CHECK+1                                                 FA=DEFS
          IFC    NE, FWA  ,1                                             FA=DEFS
 CHECK    SET    CHECK+2                                                 FA=DEFS
*                            SET FILE ADDRESS.                           FA=DEFS
          IFEQ   CP#RM,0,2                                               FA=DEFS
          R=     X2,FILE                                                 FA=DEFS
          SKIP   1                                                       FA=DEFS
          R=     A2,FILE                                                 FA=DEFS
 .M       IFC    NE, MODE INIT                                           FA=DEFS
*                            VALIDATE MODE PARAMETER.                    FA=DEFS
          IFC    NE, MODE RESET ,1                                       FA=DEFS
          ERR    (MODE) BAD MODE# "SEQUENCE"                             FA=DEFS
*                            RESET MODE.                                 FA=DEFS
          IFNE   CHECK,0,1                                               FA=DEFS
 7        ERR    MODE#RESET, FWA#/LWA1# IGNORED "SEQUENCE"               FA=DEFS
          IFEQ   CP#RM,0,2                                               FA=DEFS
          SA1    X2+I.CBSET                                              FA=DEFS
          SKIP   1                                                       FA=DEFS
          SA1    A2+I.HBSET                                              FA=DEFS
          SB3    B0                                                      FA=DEFS
          SB2    X1                                                      FA=DEFS
 .M       ELSE                                                           FA=DEFS
*                            INITIALIZE MODE.                            FA=DEFS
          IFGE   CHECK,2,5                                               FA=DEFS
          IFGE   CHECK,3,1                                               FA=DEFS
 7        ERR    BOTH FWA# AND LWA1# SPECIFIED, LWA1# IGNORED "SEQUENCE" FA=DEFS
*                            SET FWA.                                    FA=DEFS
          R=     B2,FWA                                                  FA=DEFS
          SB3    B0                                                      FA=DEFS
          SKIP   5                                                       FA=DEFS
          IFLE   CHECK,0,2                                               FA=DEFS
          ERR    NO FWA#/LWA1# "SEQUENCE"                                FA=DEFS
          SKIP   2                                                       FA=DEFS
*                            SET LWA1.                                   FA=DEFS
          R=     B3,LWA1                                                 FA=DEFS
          SB2    B0                                                      FA=DEFS
 .M       ENDIF                                                          FA=DEFS
*                            CALL PROCESSING SUBROUTINE.                 FA=DEFS
          RJ     =XFA=SET                                                FA=DEFS
 SETFIL   ENDM                                                           FA=DEFS
          TITLE  FILE ACTION MACROS (RECORD MANAGER I/O)                 FA=DEFS
 #RM      IFNE   CP#RM,0                                                 FA=DEFS
 BKSP     SPACE  4,8                                                     FA=DEFS
**        BKSP - BACKSPACE FILE ONE RECORD.                              FA=DEFS
*                                                                        FA=DEFS
*                                                                        FA=DEFS
*         BKSP      FILE                                                 FA=DEFS
*                                                                        FA=DEFS
*         ENTRY  *FILE* = FILE NAME                                      FA=DEFS
*                                                                        FA=DEFS
*         USES   X2, A2                                                  FA=DEFS
*                                                                        FA=DEFS
*         CALLS  SKIPBL                                                  FA=DEFS
                                                                         FA=DEFS
                                                                         FA=DEFS
          PURGMAC   BKSP                                                 FA=DEFS
                                                                         FA=DEFS
 BKSP     MACRO  F                                                       FA=DEFS
          R=     A2,F                                                    FA=DEFS
          SKIPBL X2,1                                                    FA=DEFS
 BKSP     ENDM                                                           FA=DEFS
 CLOSE    SPACE  4,8                                                     FA=DEFS
**        CLOSE - CLOSE FILE.                                            FA=DEFS
*                                                                        FA=DEFS
*         CLOSES *FILE*, USING POSITIONING PARAMETER (CF) CURRENTLY      FA=DEFS
*         IN THE FIT.                                                    FA=DEFS
*                                                                        FA=DEFS
*                                                                        FA=DEFS
*         CLOSE     FILE                                                 FA=DEFS
*                                                                        FA=DEFS
*         ENTRY  *FILE* = FILE NAME                                      FA=DEFS
*                                                                        FA=DEFS
*         USES   X2, A2                                                  FA=DEFS
*                                                                        FA=DEFS
*         CALLS  FA=CLO                                                  FA=DEFS
                                                                         FA=DEFS
                                                                         FA=DEFS
          PURGMAC   CLOSE                                                FA=DEFS
                                                                         FA=DEFS
 CLOSE    MACRO  F                                                       FA=DEFS
          R=     A2,F                                                    FA=DEFS
          RJ     =XFA=CLO                                                FA=DEFS
 CLOSE    ENDM                                                           FA=DEFS
 OPEN     SPACE  4,8                                                     FA=DEFS
**        OPEN - OPEN FILE.                                              FA=DEFS
*                                                                        FA=DEFS
*         OPENS *FILE*, USING PROCESSING DIRECTION (PD) AND POSITIONING  FA=DEFS
*         (OF) PARAMETERS CURRENTLY IN THE FIT.                          FA=DEFS
*                                                                        FA=DEFS
*                                                                        FA=DEFS
*         OPEN      FILE                                                 FA=DEFS
*                                                                        FA=DEFS
*         ENTRY  *FILE* = FILE NAME                                      FA=DEFS
*                                                                        FA=DEFS
*         USES   X2, A2                                                  FA=DEFS
*                                                                        FA=DEFS
*         CALLS  FA=OPE                                                  FA=DEFS
                                                                         FA=DEFS
                                                                         FA=DEFS
          PURGMAC   OPEN                                                 FA=DEFS
                                                                         FA=DEFS
 OPEN     MACRO  F                                                       FA=DEFS
          R=     A2,F                                                    FA=DEFS
          RJ     =XFA=OPE                                                FA=DEFS
 OPEN     ENDM                                                           FA=DEFS
 READ     SPACE  4,8
**        READ - DO NOTHING 
* 
*         ALLOWS READ MACRO (USED FOR NON-CRM I/O) TO APPEAR IN CODE
*         WITHOUT CONDITIONALLY COMPILING IT
  
  
          PURGMAC  READ 
  
 READ     MACRO 
 READ     ENDM
 REWIND   SPACE  4,8                                                     FA=DEFS
**        REWIND- REWIND A FILE/BUFFER.                                  FA=DEFS
*                                                                        FA=DEFS
*         THIS EXTENSION OF A NORMAL *REWIND* PREVENTS UNNECESSARY I/O   FA=DEFS
*         TRANSFERS OF SMALL INTERNAL SCRATCH FILES BETWEEN CENTRAL      FA=DEFS
*         MEMORY AND MASS STORAGE.                                       FA=DEFS
*                                                                        FA=DEFS
*                                                                        FA=DEFS
*         REWIND    FILE,RECALL                                          FA=DEFS
*                                                                        FA=DEFS
*         ENTRY  *FILE*    = FILE NAME                                   FA=DEFS
*                *RECALL*  = IGNORED; INCLUDED FOR CIO COMPATIBILITY     FA=DEFS
*                                                                        FA=DEFS
*         USES   X2, A2                                                  FA=DEFS
*                                                                        FA=DEFS
*         CALLS  FA=RWX                                                  FA=DEFS
                                                                         FA=DEFS
                                                                         FA=DEFS
          PURGMAC   REWIND                                               FA=DEFS
                                                                         FA=DEFS
 REWIND   MACRO  F                                                       FA=DEFS
          R=     A2,F                                                    FA=DEFS
          RJ     =XFA=RWX                                                FA=DEFS
 REWIND   ENDM                                                           FA=DEFS
 WRITEF   SPACE  4,8                                                     FA=DEFS
**        WRITEF - WRITE END-OF-FILE/PARTITION ON FILE.                  FA=DEFS
*                                                                        FA=DEFS
*         WRITES END-OF-FILE/PARTITION ON *FILE*.  THE HOLDING BUFFER,   FA=DEFS
*         IF ONE EXISTS, IS FLUSHED BEFORE WRITING THE E-O-F.            FA=DEFS
*                                                                        FA=DEFS
*                                                                        FA=DEFS
*         WRITEF    FILE                                                 FA=DEFS
*                                                                        FA=DEFS
*         ENTRY  *FILE* = FILE NAME                                      FA=DEFS
*                                                                        FA=DEFS
*         USES   X2, A2                                                  FA=DEFS
*                                                                        FA=DEFS
*         CALLS  FA=FLSH, RECORD MANAGER                                 FA=DEFS
                                                                         FA=DEFS
                                                                         FA=DEFS
          PURGMAC   WRITEF                                               FA=DEFS
                                                                         FA=DEFS
 WRITEF   MACRO  F                                                       FA=DEFS
          R=     A2,F                                                    FA=DEFS
          RJ     =XFA=EOF                                                FA=DEFS
 WRITEF   ENDM                                                           FA=DEFS
 WRITER   SPACE  4,8                                                     FA=DEFS
**        WRITER - WRITE END-OF-RECORD/SECTION ON FILE.                  FA=DEFS
*                                                                        FA=DEFS
*         WRITES LEVEL 0 END-OF-RECORD/SECTION ON *FILE*.  THE HOLDING   FA=DEFS
*         BUFFER, IF ONE EXISTS, IS FLUSHED BEFORE WRITING THE E-O-R.    FA=DEFS
*                                                                        FA=DEFS
*                                                                        FA=DEFS
*         WRITER    FILE                                                 FA=DEFS
*                                                                        FA=DEFS
*         ENTRY  *FILE* = FILE NAME                                      FA=DEFS
*                                                                        FA=DEFS
*         USES   X2, A2                                                  FA=DEFS
*                                                                        FA=DEFS
*         CALLS  FA=FLSH, RECORD MANAGER                                 FA=DEFS
                                                                         FA=DEFS
                                                                         FA=DEFS
          PURGMAC   WRITER                                               FA=DEFS
                                                                         FA=DEFS
 WRITER   MACRO  F                                                       FA=DEFS
          R=     A2,F                                                    FA=DEFS
          RJ     =XFA=EOR                                                FA=DEFS
 WRITER   ENDM                                                           FA=DEFS
 #RM      ENDIF                                                          FA=DEFS
          TITLE  I/O DATA TRANSFER MACROS (RECORD MANAGER I/O)           FA=DEFS
 #RM      IFNE   CP#RM,0                                                 FA=DEFS
 READC    SPACE  4,8                                                     FA=DEFS
**        READH - READ ONE CODED LINE IN -H- FORMAT.
*                                                                        FA=DEFS
*                                                                        FA=DEFS
*         READH     FILE,TO,WORDS 
*                                                                        FA=DEFS
*         ENTRY  *FILE*  = FILE NAME                                     FA=DEFS
*                *TO*    = WSA ADDRESS                                   FA=DEFS
*                *WORDS* = WSA LENGTH (WORDS)                            FA=DEFS
*                                                                        FA=DEFS
*         USES   X2, A2, B6, B7                                          FA=DEFS
*                                                                        FA=DEFS
*         CALLS  FA=RDH 
                                                                         FA=DEFS
                                                                         FA=DEFS
          PURGMAC   READH 
                                                                         FA=DEFS
 READH    MACRO  F,S,N
          R=     B6,S                                                    FA=DEFS
          R=     B7,N                                                    FA=DEFS
          R=     A2,F                                                    FA=DEFS
          RJ     =XFA=RDH 
 READH    ENDM
 READW    SPACE  4,8                                                     FA=DEFS
**        READW - READ WORDS TO WORKING STORAGE AREA.                    FA=DEFS
*                                                                        FA=DEFS
*                                                                        FA=DEFS
*         READW     FILE,TO,WORDS                                        FA=DEFS
*                                                                        FA=DEFS
*         ENTRY  *FILE*  = FILE NAME                                     FA=DEFS
*                *TO*    = WSA ADDRESS                                   FA=DEFS
*                *WORDS* = WSA LENGTH (WORDS)                            FA=DEFS
*                                                                        FA=DEFS
*         USES   X2, A2, B6, B7                                          FA=DEFS
*                                                                        FA=DEFS
*         CALLS  FA=RDW                                                  FA=DEFS
                                                                         FA=DEFS
                                                                         FA=DEFS
          PURGMAC   READW                                                FA=DEFS
                                                                         FA=DEFS
 READW    MACRO  F,S,N                                                   FA=DEFS
          R=     B6,S                                                    FA=DEFS
          R=     B7,N                                                    FA=DEFS
          R=     A2,F                                                    FA=DEFS
          RJ     =XFA=RDW                                                FA=DEFS
 READW    ENDM                                                           FA=DEFS
 WRITEC   SPACE  4,8                                                     FA=DEFS
**        WRITEC - WRITE ONE CODED LINE IN -C- FORMAT.                   FA=DEFS
*                                                                        FA=DEFS
*                                                                        FA=DEFS
*         WRITEC    FILE,FROM,WORDS                                      FA=DEFS
*                                                                        FA=DEFS
*         ENTRY  *FILE*  = FILE NAME                                     FA=DEFS
*                *FROM*  = WSA ADDRESS                                   FA=DEFS
*                *WORDS* = LINE LENGTH (WORDS).  IF ZERO OR OMITTED,     FA=DEFS
*                            LENGTH WILL BE DETERMINED BY SCANNING TO    FA=DEFS
*                            AN END-OF-LINE MARKER -- SLOWLY.            FA=DEFS
*                                                                        FA=DEFS
*         USES   X2, A2, B6, B7                                          FA=DEFS
*                                                                        FA=DEFS
*         CALLS  FA=WTC                                                  FA=DEFS
                                                                         FA=DEFS
                                                                         FA=DEFS
          PURGMAC   WRITEC                                               FA=DEFS
                                                                         FA=DEFS
 WRITEC   MACRO  F,S,N                                                   FA=DEFS
          R=     B6,S                                                    FA=DEFS
          IFC    NE, N  ,2                                               FA=DEFS
*                            SET GIVEN LENGTH.                           FA=DEFS
          R=     B7,N                                                    FA=DEFS
          SKIP   1                                                       FA=DEFS
*                            SET LENGTH OMITTED.                         FA=DEFS
          SB7    B0                                                      FA=DEFS
          R=     A2,F                                                    FA=DEFS
          RJ     =XFA=WTC                                                FA=DEFS
 WRITEC   ENDM                                                           FA=DEFS
 WRITEW   SPACE  4,8                                                     FA=DEFS
**        WRITEW - WRITE WORDS FROM WORKING STORAGE AREA.                FA=DEFS
*                                                                        FA=DEFS
*                                                                        FA=DEFS
*         WRITEW    FILE,FROM,WORDS                                      FA=DEFS
*                                                                        FA=DEFS
*         ENTRY  *FILE*  = FILE NAME                                     FA=DEFS
*                *FROM*  = WSA ADDRESS                                   FA=DEFS
*                *WORDS* = WSA LENGTH (WORDS)                            FA=DEFS
*                                                                        FA=DEFS
*         USES   X2, A2, B6, B7                                          FA=DEFS
*                                                                        FA=DEFS
*         CALLS  FA=WTW                                                  FA=DEFS
                                                                         FA=DEFS
                                                                         FA=DEFS
          PURGMAC   WRITEW                                               FA=DEFS
                                                                         FA=DEFS
 WRITEW   MACRO  F,S,N                                                   FA=DEFS
          R=     B6,S                                                    FA=DEFS
          R=     B7,N                                                    FA=DEFS
          R=     A2,F                                                    FA=DEFS
          RJ     =XFA=WTW                                                FA=DEFS
 WRITEW   ENDM                                                           FA=DEFS
          SPACE  4                                                       FA=DEFS
 #RM      ENDIF                                                          FA=DEFS
