*COMDECK     COMCAPIO 
          LIST   F,X
          TITLE  CAPIO - CAPSULE SCRATCH FILE I/O FOR *CBSSLIB*.
          COMMENT   CAPSULE SCRATCH FILE I/O FOR *CBSSLIB*. 
 CAPIO    SPACE  4,8
**        CAPIO  -  CAPSULE SCRATCH FILE I/O FOR *CBSSLIB*. 
* 
*         R. H. GOODELL.     77/05/27.
* 
*         *CAPIO* PROVIDES ROUTINES FOR *CBSSLIB* TO USE FOR READING
*         CODE CAPSULES FROM THE SCRATCH FILE WHERE THEY ARE STORED 
*         WHEN MEMORY OVERFLOW OCCURS DURING CODE GENERATION. 
 CSCR     SPACE  4,8
**        CSCR  -  CAPSULE SCRATCH FILE.
  
  
 CSCR     FILE   LFN=ZZZZZCS,BT=C,RT=S,FWB=BUF,BFS=BUFL,MRL=37777777B 
  
 BUFL     EQU    66          BUFFER LENGTH
 BUF      BSS    BUFL        BUFFER AREA
 CLOSECS  SPACE  4,8
**        CLOSECS - CLOSE/UNLOAD CAPSULE SCRATCH FILE.
  
  
 CLOSECS  SUBR   =           ENTRY/EXIT 
          CLOSEM CSCR,U 
          JP     EXIT.
 OPENCS   SPACE  4,8
**        OPENCS - OPEN/REWIND CAPSULE SCRATCH FILE.
  
  
 OPENCS   SUBR   =           ENTRY/EXIT 
          OPENM  CSCR,INPUT,R 
          JP     EXIT.
 READCS   SPACE  4,8
**        READCS - READ CAPSULE SCRATCH FILE. 
* 
*         PROC READCS (B, S, N).
* 
*         ARRAY  B           BUFFER TO READ INTO. 
*         ITEM   S           BUFFER SIZE IN WORDS.
*         ITEM   N           NUMBER OF WORDS READ INTO B. 
  
  
 READCS   SUBR   =           ENTRY/EXIT 
          SA2    A1+1        LOC OF S 
          SA3    A1+2        LOC OF N 
          SA2    X2          VALUE OF S 
          SX6    X3          SAVE LOC OF N
          SA6    LOCN 
          IX3    X2+X2       S * 10 
          LX2    3
          IX2    X2+X3
          GETP   CSCR,X1,X2  READ S WORDS INTO B
          FETCH  CSCR,PTL,X6
          SX1    1S20/10+1
          IX6    X6*X1       PARTIAL TRANSFER LENGTH / 10 
          SA1    LOCN 
          AX6    20 
          SA6    X1          STORE N
          JP     EXIT.       RETURN 
  
 LOCN     DATA   0           LOC OF N 
  
  
          END 
