*DECK C$ACDSC 
          IDENT  C$ACDSC
          SST 
          TITLE  C$ACDSC - ACCEPT DISPLAY COMMON PROCESS
* 
          COMMENT  ACCEPT DISPLAY COMMON PROCESS
**        CBACDSC - ACCEPT DISPLAY COMMON PROCESS 
* 
*         CALLING SEQUENCE
  
*                X1  FILE NAME
*                SB2  ADDR OF PLACE FOR LINE NUMBER 
*                SA4  ENTRY POINT OF CALLING ROUTINE
*                SX7  ADDR OF OPEN ROUTINE
*                RJ  =XC.ACDSC
* 
*         DOES   CALLS OPEN IF NECESSARY
*                SETS DSPO FLAG IF OPENED 
*                PUTS LINE NUMBER IN I-O INSTRUCTION
* 
*         CHANGES 
*                ALL REGISTERS IF AN OPEN IS DONE 
* 
*CALL IODEFSC 
*CALL IOMICROS
* 
*         DEFAULT LINE LENGTHS
* 
          SPACE  2
          ENTRY  C.ACDSC
 C.ACDSC  DATA   0
          AX4    30          POSITION RETURN
          SA5    X4-1        GET LINE NUMBER WORD 
          SX6    X5          ISOLATE LINE NBR 
          SA6    B2          PUT LINE IN I-O CALL PLACE 
          SA6    OPNLINE     PUT IN OPEN PLACE
          SA7    =SOPNCALL   SAVE ADDRESS OF OPEN CALL
          MX3    42 
          BX6    X3*X1
          SA6    =SOLFN      SAVE ORIGINAL LFN
          SA6    FILENAM     STORE IN LOCAL FIT 
          SA0    A6          POINT TO LOCAL FIT 
          SA5    =XC.ADFTB   ACCEPT/DISPLAY FILE TABLE
          ZR     X5,CHKEQV   JP IF NO BLOCK ASSIGNED
          MX7    42 
          SB2    B0 
 SRCHLST  BSS    0           LOOK FOR THIS FILE IN TABLE
          SA4    X5+B2
          ZR     X4,CHKEQV   JP IF NOT HERE 
          BX3    X7*X4
          SB2    B2+B1
          IX3    X6-X3
          NZ     X3,SRCHLST 
          SA0    X4          FOUND IT - POINT TO FIT
          EQ     FND1 
 CHKEQV   BSS    0
          RJ     =XC.SFEQ    SET ANY FILE EQUIVALENCE 
          RJ     =XC.GETRT   DELETE LAST ENTRY FROM STACK 
          SA4    =XC.ADFTB   ACC DISP FILE TABLE
          NZ     X4,ISTBL    JP IF ONE EXISTS 
*      FIRST PASS THROUGH ACDSC - SET UP FIT FIELDS FILE MACRO WON'T
          STORE  A0,LNG=#CBL# 
          SA1    =XC.BUFFS   SIZE OF BUFFER 
          SX2    10 
          IX1    X1*X2       IN CHARS 
          STORE  A0,MRL=X1
          SB5    A4 
          SB6    B1+B1       ALLOCATE 2 WORD BLOCK
          SB7    B1+B1       MAY GROW 
          RJ     =XC.GETBK   GET BLOCK FOR EQUIVALENCES 
          SA4    =XC.ADFTB   ADDR OF BLOCK
          MX6    0
          SA6    X4          CLEAR FIRST WORD 
          EQ     CHKLOF 
 ISTBL    BSS    0           A TABLE EXISTS - MAKE ROOM FOR ANOTHER ENTR
          SB6    A4 
          SB7    B1          GROW BY 1
          RJ     =XC.GROWB
 CHKLOF   BSS    0
          SA1    A0          GET   LFN
          SA4    =XLOF$RM    GET ADDR OF LIST OF FILES
          MX2    42 
          BX1    X2*X1
          SX4    X4 
          NG     X4,NOFILE   JP IF NO LIST
          SA5    X4          GET HEADER WORD
          ZR     X5,NOFILE   JP IF LIST EMPTY 
          SB5    X5-1        LENGTH OF LOF BLOCK - 1 (FOR HEADER) 
 SRCHLP   BSS    0
          ZR     B5,NOFILE   JP IF BLOCK PROCESSED
          SA5    A5+B1
          SB5    B5-B1
          ZR     X5,NOFILE   JUMP IF AT END OF LIST 
          BX6    X2*X5       GET FILE NAME
          IX6    X6-X1
          ZR     X6,FILEFND  JUMP IF ONE FOUND IN LIST
          EQ     SRCHLP 
 NOFILE   BSS    0           FILE NOT FOUND IN LIST - MAKE ONE
          SB5    =XC.BUFF 
          SB6    EXTAREA+SQXWSZ    SIZE OF FIT AND COB FIT
          SB7    0           FIXED LENGTH BLOCK 
          RJ     =XC.GETBK   ALLOCATE SPACE FOR TABLE 
          SA2    =XC.BUFF 
          SA0    X2          ADDRESS OF FIT 
          AX2    30 
          SB5    X2          LENGTH OF BLOCK
          SB3    FITFETL     LENGTH OF FET AND FIT
          SB4    B0 
 MVLFTNF  BSS    0           MOVE LOCAL FIT TO ALLOCATED ONE
          SA5    B4+FILENAM 
          BX6    X5 
          SA6    A0+B4
          SB4    B4+B1
          NE     B4,B3,MVLFTNF
          MX6    0
 ZRFILL   BSS    0           ZERO OUT COBOL EXTENSIONS
          SA6    A0+B4
          SB4    B4+B1
          NE     B4,B5,ZRFILL 
          STORE  A0,REAR=1   RESERVE 1 ALT AREAS
          STORE  A0,DSPC=YES
          SA1    =XC.BUFFS   SIZE OF BUFFER 
          STORE  A0,RLWD=X1 
          SA1    =XC.MRLFC   MRL FROM FILE CARD 
          NZ     X1,ADDTOBK  JP IF ONE SET THERE
          STORE  A0,ACDMRL=YES     SET THAT ACC/DISP CAN SET MRL
          EQ     ADDTOBK
 FILEFND  BSS    0           FILE FOUND IN LIST 
          FETCH  X5,FTS,X4,4 FETCH FET/FIT LENGTH FIELD 
          SX4    X4-#MNF#    SUBTRACT MINIMUM 
          NG     X4,SRCHLP   JUMP, ASSUME THIS IS NOT A FIT/FET 
          FETCH  X5,LNG,X4,4 GET COMPILE LANGUAGE CODE
          SX4    X4-#CBL#    TEST FOR COBOL FIT/FET 
          NZ     X4,SRCHLP   JUMP, IF NOT A COBOL-DESCRIBED FILE
          SA0    X5          POINT TO FIT 
 ADDTOBK  BSS    0           ADD NAME TO ACC/DIS FILE TABLE 
          SA2    =XC.ADFTB
          SB2    X2          ADDR OF FILE BLOCK 
          AX2    30 
          SB3    X2-2        SIZE OF BLOCK - 2 (POINTS TO AVAIL SLOT) 
          SA1    OLFN        FILE NAME (ORIGINAL - MAY BE EQUIVED)
          SX6    A0          ADDR OF FIT
          BX6    X1+X6
          SA6    B2+B3       ADD NEW ENTRY TO TABLE 
          MX7    0
          SA7    A6+B1       ZERO OUT LAST ENTRY FOR TEST 
 FND1     BSS    0
          FETCH  A0,OC,X5    GET OPEN-CLOSE FLAG
          SX5    X5-#OPE# 
          ZR     X5,C.ACDSC  EXIT IF OPEN ALREADY 
 OPENIT   BSS    0
          SA1    A0 
          MX6    42 
          BX1    X1*X6       EXTRACT ONLY LFN FROM FIT
          SA2    =XC.SYSF-1+#TERM#
          IX2    X2-X1
          ZR     X2,TERMA    JUMP IF TERMINAL 
          FETCH  A0,LFN,X2
          RJ     =XC.FINFO   GET INFORMATION ABOUT FILE 
          LX2    59-16       CONNECTED BIT
          PL     X2,NOTTR2   JP IF NOT A CONNECTED FILE 
 TERMA    BSS    0
          SX6    =XC.OPIO    ADDRESS OF I-O OPEN
          SA6    OPNCALL     SET TO OPEN I-O
          STORE  A0,CNF=YES  SET CONNECT FLAG 
 NOTTR2   BSS    0
          SB3    #N#         NO REWIND
          SB6    OPNRTN      RETURN ADDRESS 
          SA2    OPNCALL     GET ADDRESS OF OPEN CALL 
          SB5    X2          SET CALL 
          EQ     =XC.OPSQ    TO THE SEQUENTIAL OPEN PROCESS 
 OPNLINE  DATA   0
 OPNRTN   BSS    0
          STORE  A0,DSPO=YES SET THAT DISPLAY OR ACC OPENED FILE
          EQ     C.ACDSC
          SPACE  2
 FILENAM FILE     FO=SQ,BT=C,RT=Z,CF=N,FF=YES,LT=UL,FL=137
          DATA   0,0         WORDS OF 0 FOR COBOL EXTENSION FLAGS 
          END 
