*COMDECK OPEN 
          IDENT  OPEN 
          ENTRY  OPEN 
          SYSCOM B1 
          TITLE  OPEN - OPEN FILE FOR PROCESSING. 
          COMMENT OPEN FILE FOR PROCESSING. 
          COMMENT COPYRIGHT CONTROL DATA CORP. 1978.
 OPEN     SPACE  4,10 
***       OPEN - OPEN FILE FOR PROCESSING.
* 
*         CALL OPEN (FILE,OPTION,R) 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (OPTION) = 0, SAME AS ALTER. 
*                         = 5HALTER.
*                         = 7HALTERNR.
*                         = 2HNR. 
*                         = 4HREAD. 
*                         = 6HREADNR. 
*                         = 4HREEL. 
*                         = 6HREELNR. 
*                         = 5HWRITE.
*                         = 7HWRITENR.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         OPEN(FILE,OPTION,R);     (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                OPTION, AN ITEM CONTAINING ONE OF THE FOLLOWING
*                        CHARACTER STRINGS, LEFT JUSTIFIED, BLANK 
*                        FILL WITH BINARY 0.
*                            ALTER. 
*                            ALTERNR  (ALTER, NO REWIND). 
*                            NR  (NO REWIND). 
*                            READ.
*                            READNR  (READ, NO REWIND). 
*                            REEL.
*                            REELNR  (REEL, NO REWIND). 
*                            WRITE. 
*                            WRITENR  (WRITE, NO REWIND). 
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         EXIT   TO ARGUMENT-ERROR PROCESSOR IF OPTION IS UNRECOGNIZED. 
* 
*         USES   X - 1, 2, 3, 4, 5, 6.
*                A - 1, 2, 3, 4, 5. 
*                B - 1. 
* 
*         CALLS  MACREL.
* 
*         MACROS OPEN.
  
  
 OPEN     SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       ADDRESS OF OPTION
          SA3    A2+B1       GET ADDRESS OF RECALL PARAMETER
          SA2    X2+         OPTION 
          SA3    X3 
          BX6    X3 
          ZR     X2,OPE1     IF NO OPTION 
          SA3    =0HALTER 
          SA4    =0HALTERNR 
          SA5    =0HNR
          BX3    X2-X3
          BX4    X2-X4
          ZR     X3,OPE2     IF ALTER 
          BX5    X2-X5
          ZR     X4,OPE3     IF ALTERNR 
          ZR     X5,OPE4     IF NR
          SA3    =0HREAD
          SA4    =0HREADNR
          SA5    =0HREEL
          BX3    X2-X3
          BX4    X2-X4
          ZR     X3,OPE5     IF READ
          BX5    X2-X5
          ZR     X4,OPE6     IF READNR
          ZR     X5,OPE7     IF REEL
          SA3    =0HREELNR
          SA4    =0HWRITE 
          SA5    =0HWRITENR 
          BX3    X2-X3
          BX4    X2-X4
          ZR     X3,OPE8     IF REELNR
          BX5    X2-X5
          ZR     X4,OPE9     IF WRITE 
          ZR     X5,OPE10    IF WRITENR 
          SA1    =0LOPEN
          RJ     =XMACREL=   DIAGNOSE ILLEGAL ARGUMENT
          EQ     OPENX
  
 OPE1     NZ     X6,OPE11    IF RECALL
          OPEN   X1 
          EQ     OPENX
  
 OPE2     NZ     X6,OPE12    IF RECALL
          OPEN   X1,ALTER 
          EQ     OPENX
  
 OPE3     NZ     X6,OPE13    IF RECALL
          OPEN   X1,ALTERNR 
          EQ     OPENX
  
 OPE4     NZ     X6,OPE14    IF RECALL
          OPEN   X1,NR
          EQ     OPENX
  
 OPE5     NZ     X6,OPE15    IF RECALL
          OPEN   X1,READ
          EQ     OPENX
  
 OPE6     NZ     X6,OPE16    IF RECALL
          OPEN   X1,READNR
          EQ     OPENX
  
 OPE7     NZ     X6,OPE17    IF RECALL
          OPEN   X1,REEL
          EQ     OPENX
  
 OPE8     NZ     X6,OPE18    IF RECALL
          OPEN   X1,REELNR
          EQ     OPENX
  
 OPE9     NZ     X6,OPE19    IF RECALL
          OPEN   X1,WRITE 
          EQ     OPENX
  
 OPE10    NZ     X6,OPE20    IF RECALL
          OPEN   X1,WRITENR 
          EQ     OPENX
  
 OPE11    OPEN   X1,,R
          EQ     OPENX
  
 OPE12    OPEN   X1,ALTER,R 
          EQ     OPENX
  
 OPE13    OPEN   X1,ALTERNR,R 
          EQ     OPENX
  
 OPE14    OPEN   X1,NR,R
          EQ     OPENX
  
 OPE15    OPEN   X1,READ,R
          EQ     OPENX
  
 OPE16    OPEN   X1,READNR,R
          EQ     OPENX
  
 OPE17    OPEN   X1,REEL,R
          EQ     OPENX
  
 OPE18    OPEN   X1,REELNR,R
          EQ     OPENX
  
 OPE19    OPEN   X1,WRITE,R 
          EQ     OPENX
  
 OPE20    OPEN   X1,WRITENR,R 
          EQ     OPENX
  
          END 
