*COMDECK  CPSYS              CPU INPUT/OUTPUT MACROS USING *CPC*. 
 CPSYS    CTEXT  CPU INPUT/OUTPUT MACROS USING *CPC*. 
  
  
***              THE CPU INPUT/OUTPUT MACROS PROVIDE THE USER 
*         WITH PREDEFINED CALLS TO THE CPU PROGRAM COMMUNICATION
*         ROUTINE (CPC) TO PERFORM ACTIONS INVOLIVNG FILES. 
 CPSYS    SPACE  4
OPEN      MACRO    LFN,X,R
SCP=90    SET      0
          SCP=01 X,READ,140B
          SCP=01 X,WRITE,144B 
          SCP=01 X,ALTER,160B 
          SCP=01 X,READNR,100B
          SCP=01 X,WRITENR,104B 
          SCP=01   X,REEL,340B
          SCP=01   X,REELNR,300B
  SCP=01 X,ALTERNR,120B 
   SCP=01 X,NR,120B 
   SCP=01 X,,160B 
          IFEQ     SCP=90,0,1 
          ERR OPEN PARAMETER ERROR
          SCP=00   LFN,SCP=90,R,4,,0
          ENDM
POSMF MACRO LFN,R 
   SCP=00 LFN,110B,R,3,,0 
   ENDM 
CLOSE     MACRO    LFN,X,R
SCP=90    SET      0
          SCP=01   X,,150B
          SCP=01   X,NR,130B
          SCP=01   X,UNLOAD,170B
   SCP=01 X,RETURN,174B 
          IFEQ     SCP=90,0,1 
          ERR CLOSE PARAMETER ERROR 
          SCP=00   LFN,SCP=90,R,7,,0
          ENDM
CLOSER    MACRO    LFN,X,R
SCP=90    SET      0
          SCP=01   X,,350B
          SCP=01   X,NR,330B
          SCP=01   X,UNLOAD,370B
          SCP=01   X,RETURN,374B                                         SC45362
          IFEQ     SCP=90,0,1 
          ERR CLOSER PARAMETER ERROR
          SCP=00   LFN,SCP=90,R,7,,0
          ENDM
EVICT     MACRO    LFN,R
          SCP=00   LFN,114B,R,3,,0
          ENDM
READ      MACRO    LFN,R
          SCP=00   LFN,10B,R,2,,0 
          ENDM
READN     MACRO  LFN,R
          SCP=00  LFN,260B,R,2,,0 
          ENDM
READNS    MACRO    LFN,R
          SCP=00   LFN,250B,R,2,,0
          ENDM
READSKP   MACRO    LFN,L,R
          SCP=00   LFN,20B,R,3,L,0
          ENDM
RPHR      MACRO    LFN,R
          SCP=00   LFN,0,R,3,,0 
          ENDM
WRITE     MACRO    LFN,R
          SCP=00   LFN,14B,R,2,,0 
          ENDM
WRITEN    MACRO  LFN,R
          SCP=00  LFN,264B,R,2,,0 
          ENDM
WRITER    MACRO    LFN,L,R
          SCP=00   LFN,24B,R,3,L,0
          ENDM
WRITEF    MACRO    LFN,R
          SCP=00   LFN,34B,R,3,,0 
          ENDM
REWRITE   MACRO    LFN,R
          SCP=00   LFN,214B,R,2,,0
          ENDM
REWRITER  MACRO    LFN,L,R
          SCP=00   LFN,224B,R,3,L,0 
          ENDM
REWRITEF  MACRO    LFN,R
          SCP=00   LFN,234B,R,3,,0
          ENDM
WPHR      MACRO    LFN,R
          SCP=00   LFN,4,R,3,,0 
          ENDM
SKIPF     MACRO    LFN,N,L,R
          SCP=00   LFN,240B,R,3,L,N 
          ENDM
BKSP      MACRO    LFN,R
          SCP=00   LFN,40B,R,3,,0 
          ENDM
BKSPRU    MACRO    LFN,N,R
          SCP=00   LFN,44B,R,3,,N 
          ENDM
SKIPB     MACRO    LFN,N,L,R
          SCP=00   LFN,640B,R,3,L,N 
          ENDM
REWIND    MACRO    LFN,R
          SCP=00   LFN,50B,R,3,,0 
          ENDM
UNLOAD    MACRO    LFN,R
          SCP=00   LFN,60B,R,3,,0 
          ENDM
READC     MACRO  LFN,R
          SCP=00 LFN,200B,R,3,,0
          ENDM   ,
READIN    MACRO    LFN,Y
  IFC EQ,*Y**,3 
  RJ =XIOREAD 
+         VFD      60D/=X_LFN 
  IFNE ,,2
  RJ =XIORR 
          SCP=02   Y,LFN
          ENDM
WRITEC    MACRO  LFN,R
          SCP=00 LFN,204B,R,3,,0
          ENDM   ,
WRITOUT   MACRO    LFN,Y
  IFC EQ,$Y$$,3 
  RJ =XIOWRITE
+         VFD      60D/=X_LFN 
  IFNE ,,2
  RJ =XIORW 
          SCP=02   Y,LFN
          ENDM
WRITIN    MACRO    LFN,Y
  IFC EQ,*Y**,3 
  RJ =XIOREWRT
+         VFD      60D/=X_LFN 
  IFNE ,,2
  RJ =XIORRW
          SCP=02   Y,LFN
          ENDM
SCP=00    MACRO    LFN,CODE,R,P,L,N 
+         SA1      =X_LFN 
  RJ =XCPC
SCP=9RCL  SET      0
          IFC      NE,$R$$,1
SCP=9RCL  SET      1
SCP=2N    SET      N
          IFC      EQ,*N**,1
SCP=2N    SET      1
          VFD      18D/P,2/SCP=9RCL,22D/SCP=2N,4/L,14D/CODE 
          ENDM
SCP=01    MACRO    X,N,C
          IFC      EQ,$X$N$,1 
SCP=90    SET      C
          ENDM
SCP=02    MACRO    X,LFN
          VFD      60D/LFN
SCP=M1    MICRO    1,1,$X$
          IFC      EQ,$/$"SCP=M1"$,6
SCP=M2    MICRO    1,,X 
A         MICRO    8,1,$"SCP=M2"$ 
          IFC      NE,$$"A"$,1
          ERR      *RECORD NAME EXCEEDS 7 CHARACTERS* 
          VFD      60D/0L"SCP=M2"                                       13211  4
          IFEQ     0,1,1
          VFD      60D/X
          ENDM
  
  
 CPSYS    ENDX
