*COMDECK  COBIOM
          SST 
 COBIOM   CTEXT  COBOL INTERNAL I/O MACROS
 PUTSQ    SPACE  4
**        PUTSQ  FET,WSA,FL 
* 
*         WRITE ONE RECORD ON A SEQUENTIAL FILE 
*         IF FL=0 THE BUFFER IF FLUSHED 
* 
*         FET = ADDRESS OF FILE"S FET 
*         WSA = ADDRESS OF USER BUFFER
*         FL = SIZE OF RECORD IN WORDS
* 
 PUTSQ    MACRO  FET,WSA,FL 
          =X2    FET
          RJ     =XINITBUF
          =B6    WSA
          =B7    FL 
          RJ     =XC.PUTSQ
          ENDM
 GETSQ    SPACE  4
**        GETSQ  FET,WSA,FL,DX,RL 
* 
*         READ ONE RECORD FROM A SEQUENTIAL FILE
* 
*         FET = ADDRESS OF FILE"S FET 
*         WSA = ADDRESS OF USER BUFFER
*         FL = SIZE OF RECORD IN WORDS
*         DX = ADDRESS TO GO TO ON END-OF-RECORD
*         RL = ADDRESS TO STORE THE SIZE OF THE RECORD READ 
* 
 GETSQ    MACRO  FET,WSA,FL,DX,RL 
          =X2    FET
          RJ     =XINITBUF
          =B6    WSA
          =B7    FL 
          =B5    DX 
          =B4    RL 
          RJ     =XC.GETSQ
          ENDM
 RETRN    SPACE  4
**        RETRN  FET
* 
*         RETURNS A FILE VIA COBIO
* 
 RETRN    MACRO  FET
          =X2    FET
          RJ     =XC.RETRN
          ENDM
 REWND    SPACE  4
**        REWND  FET
* 
*         REWINDS A FILE VIA COBIO
* 
 REWND    MACRO  FET
          =X2    FET
          RJ     =XC.REWND
          ENDM
 '?SC=RTP SPACE  4
**        '?SC=RTP P1 
* 
*         INTERNAL MACRO USED BY THE FILEB MACRO
* 
*         THIS MACRO ALLOWS THE SPECIFICATION OF A RECORD TYPE ON THE 
*         FILEB MACRO.
*         TO DEFINE A FILE USE
*             FILNAME  FILEB BUFFER,BUFFERSIZE,(RTP=RECORD-TYPE)
*         WHERE RECORD-TYPE = Z, W, OR U FOR SEQUENTIAL FILES AND 
*         U FOR RANDOM FILES
* 
 '?SC=RTP MACRO  P1 
 '?S=LFET SET    #LENFET#-5 
 '?RT     SET    #_P1_T#
 '?M=EOIX MICRO  1,, '?RT 
          ENDM
* 
 '?SC#RTP OPSYN  '?SC=RTP 
*  TO ADD MORE SCRATCH WORDS TO A FET, CHANGE THE VALUE OF LENFET AND 
*  DEFINE THE APPORIATE MACROS. 
 #LENFET# EQU    9
* 
 MICROS   SPACE  4,4
**        INTERNAL MICRO DEFINATIONS
* 
 #EC#     MICRO  1,,/0,00,05,09,0,1/   ERROR CODE 
 #R#      MICRO  1,,/0,01,01,47,0,0/   RANDOM ACCESS
 #LEN#    MICRO  1,,/0,01,06,18,0,1/    LENGTH OF FET-5 
 #FIRST#  MICRO  1,,/0,01,18,00,0,1/   FIRST
 #IN#     MICRO  1,,/0,02,60,00,0,1/   IN 
 #OUT#    MICRO  1,,/0,03,60,00,0,1/   OUT
 #LIMIT#  MICRO  1,,/0,04,18,00,0,1/   LIMIT
 #RR#     MICRO  1,,/0,06,29,00,0,1/   RANDOM REQUEST 
 #BUFA#   MICRO  1,,/0,08,01,59,0,0/   BUFFER ASSIGNED VIA CMM
 #OPFL#   MICRO  1,,/0,08,01,58,0,0/   OPEN FLAG
 #FOWA#   MICRO  1,,/0,08,01,57,0,0/   FO IS WA 
 #CONF#   MICRO  1,,/0,08,01,56,0,0/   CONNECTED FILE 
 #NRSA#   MICRO  1,,/0,08,18,34,0,1/   NEXT RECORD SECT ADDR
 #RT#     MICRO  1,,/0,08,04,30,0,1/   RECORD TYPE
 #CWA#    MICRO  1,,/0,08,30,00,0,1/    CURRENT WORD ADLRDSS
 IN       EQU    2           IN POINTER 
 OUT      EQU    3           OUT POINTER
 BFS      SPACE  4
**        DEFINE BUFFER SIZES FOR I/O FILES 
* 
 CHKBFS   EQU    202B        CHKFILE
 FDLBFS   EQU    202B        FDLFILE
 INBFS    EQU    520B        INPUT (MUST BE IN PRUS + 1 REC)
 LGOBFS   EQU    502B        LGO
 OUTBFS   EQU    502B        OUTPUT 
 PLBFS    EQU    202B        OLDPL
 TDBFS    EQU    502B        TDFILE 
 COMPBFS  EQU    202B              OPNBIN 
 ERRBFS   EQU    202B        ERROR FILE 
 Z4QBFS   EQU    202B        ZZZZZ4Q (WAS TEXTSRC)
 Z4RBFS   EQU    202B        ZZZZZ4R (WAS COPYSRC)
 Z48BFS   EQU    502B        ZZZZZ48
 Z49BFS   EQU    1000B       ZZZZZ49
          ENDX
