* SEQUENTIAL I/O OPEN                                   HEADER  C:OPSQ  0001.000
************************************************************************0002.000
*                                                                      *0003.000
*                    PROPRIETARY INFORMATION                           *0004.000
*                    -----------------------                           *0005.000
*   THE INFORMATION CONTAINED HEREIN IS PROPRIETARY TO ENCORE          *0006.000
*   COMPUTER CORPORATION AND/OR ITS VENDORS, AND ITS USE, DISCLOSURE,  *0007.000
*   OR DUPLICATION IS SUBJECT TO THE RESTRICTIONS STATED IN THE        *0008.000
*   STANDARD ENCORE COMPUTER CORPORATION LICENSE TERMS AND CONDITIONS  *0009.000
*   OR THE APPROPRIATE THIRD-PARTY SUBLICENSE AGREEMENT.               *0010.000
*                                                                      *0011.000
*                       RESTRICTED RIGHTS                              *0012.000
*                       -----------------                              *0013.000
*   USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT       *0014.000
*   TO RESTRICTIONS AS SET FOURTH IN SUBDIVISION (c) (1) (ii) OF       *0015.000
*   THE RIGHTS IN TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT       *0016.000
*   252.227.7013                                                       *0017.000
************************************************************************0018.000
* (C) COPYRIGHT 1989 ENCORE COMPUTER CORPORATION                       *0019.000
*     ALL RIGHTS RESERVED                                              *0020.000
************************************************************************0021.000
*                                                                       0022.000
         M.PGM     C:OPSQ,MPX-32,3.6.1,00                               0023.000
*                                                                       0024.000
************************************************************************0025.000
*                                                                       0026.000
*        MPX-32 REVISION 3 RELEASE 3.5U02 CHANGE HISTORY                0027.000
*                                                                       0028.000
************************************************************************0029.000
*        VERSION 3.5U02A.01 BL4                                         0030.000
*                                                                       0031.000
*        E3RMS35   06/09/92 11464 ADDED CODE TO SUPPORT SORTING E3RMS35 0032.000
*                  OF REMOTE FILES                              E3RMS35 0033.000
*                                                                       0034.000
************************************************************************0035.000
*                                                                       0036.000
*                                                                       0037.000
         LIST      NODATA,NOMAC                                         0038.000
         DEF       C:OPSQ         ENTRY POINT                           0039.000
         DEF       C:ORTN         LINAGE SETUP RTN                      0040.000
         EXT       EOFBLOCK       EOF BLOCK # FROM FAT ***GLS***        0041.000
         EXT       C:LNGX         LINAGE EXIT                           0042.000
         EXT       C:LDST                                               0043.000
         EXT       C:IOER                                               0044.000
         EXT       BUILDRR3                                             0045.000
         SPACE                                                          0046.000
         M.REQS                                                         0047.000
         M.TBLS                                                 E3RMS35 0048.000
         SPACE                                                          0049.000
*                                                                       0050.000
*  SPECIFY COMMON AREA USED                                             0051.000
*                                                                       0052.000
COBCOM   COMMON    COBDAT(4)                                            0053.000
         ORG       COBDAT                                               0054.000
PRECEDE  RES       1W                                                   0055.000
FITLOC   RES       1W                                                   0056.000
ATTRLOC  RES       1W                                                   0057.000
SUBRTN   RES       1W                                                   0058.000
         REL                                                            0059.000
*RD.EOFBL EQU       68W                                         E3RMS25 0060.000
*                                                                       0061.000
*  OPEN SEQUENTIAL ATTRIBUTE WORD FLAGS                                 0062.000
OPENJET  EQU       23                                                   0063.000
ATTRINP  EQU       24             OPEN FOR INPUT                        0064.000
ATTROUT  EQU       25             OPEN FOR OUTPUT                       0065.000
ATTRIO   EQU       26             OPEN FOR INPUT-OUTPUT                 0066.000
ATTREXT  EQU       27             OPEN TO EXTEND                        0067.000
ATTRREV  EQU       28             OPEN REVERSED                         0068.000
ATTRNOR  EQU       29             NO REWIND ON OPEN                     0069.000
*  FIT MAP                                                              0070.000
INSEQTBL EQU       -32            INPUT COLLATING SEQUENCE TABLE        0071.000
OUTSQTBL EQU       -28            OUTPUT COLLATING SEQUENCE TABLE       0072.000
ERRORETN EQU       -24            ERROR RETURN JET                      0073.000
LINESUBR EQU       -16            LINAGE SETUP SUBROUTINE ADDRESS       0074.000
DDRELKEY EQU       -12            DDA OF RELATIVE KEY                   0075.000
LINETABL EQU       -12            LINAGE TABLE ADDRESS                  0076.000
STATFLD  EQU       -8             DDA STATUS FIELD                      0077.000
LOGFILCD EQU       0              LOGICAL FILE CODE                     0078.000
TCW      EQU       4              ADDRESS OF RECORD AREA                0079.000
CONTSPEC EQU       8              CONTROL SPECIFICATIONS                0080.000
IOSTAT   EQU       12             CURRENT SYSTEM STATUS                 0081.000
RECSIZE  EQU       16             RECORD SIZE IN BYTES                  0082.000
BUFFADDR EQU       20             ADDRESS OF BLOCKING BUFFER            0083.000
ERRORADR EQU       24             IOCS ERROR RETURN ADDRESS             0084.000
FILSTAT  EQU       32             CURRENT FILE STATUS                   0085.000
DIVTYPE0 EQU       33             TYPE OF PHYSICAL DEVICE               0086.000
BITSTAT  EQU       34             BIT STATUS                            0087.000
STATERR0 EQU       35             CURRENT ERROR STATUS                  0088.000
RECLOC   EQU       36             ACTUAL DATA RECORD LOCATION           0089.000
BLOKSIZE EQU       40             BUFFER BLOCK SIZE                     0090.000
PBUFADDR EQU       44             PRIMARY BUFFER ADDRESS                0091.000
ABUFADDR EQU       48             ALTERNATE BUFFER ADDRESS              0092.000
BUFFPTR  EQU       52             BUFFER RECORD POINTER                 0093.000
RECPER   EQU       56             RECORDS PER BUFFER                    0094.000
RECTHIS  EQU       58             RECORDS THIS BUFFER                   0095.000
CUREOF   EQU       60             CURRENT END-OF-FILE                   0096.000
EOFEXT   EQU       64             END-OF-FILE EXTENT                    0097.000
CURRECNO EQU       68             CURRENT RECORD NUMBER                 0098.000
RTNADDR0 EQU       72             RETURN ADDRESS FOR I/O CALL           0099.000
DIVSTAT0 EQU       76             DEVICE STATUS FROM R5                 0100.000
DIVSTAT1 EQU       80             DEVICE STATUS FROM R6                 0101.000
DIVSTAT2 EQU       84             DEVICE STATUS FROM R7                 0102.000
SYSFILCD EQU       86             SYSTEM FILE CODE                      0103.000
ADVANCE  EQU       88             LINES FOR PRINTER ADVANCE             0104.000
VOLUME   EQU       88             ORIGINAL TAPE VOLUME NUMBER           0105.000
SIZE     EQU       92             RECORD SIZE FOR VARIABLE LENGTH       0106.000
MAXSIZE  EQU       94             SIZE OF AN I/O TRANSFER RECORD        0107.000
ADDRHOLD EQU       96             RECORD ADDRESS TEMPORARY HOLD AREA    0108.000
*  FILE STATUS FLAGS                                                    0109.000
STATOR0  EQU       1              FILE ORGANIZATION LOW ORDER BIT       0110.000
STATOR1  EQU       0              FILE ORGANIZATION HIGH ORDER BIT      0111.000
STATAC0  EQU       3              ACCESS MODE LOW ORDER BIT             0112.000
STATAC1  EQU       2              ACCESS MODE HIGH ORDER BIT            0113.000
STATOPT  EQU       4              OPTIONAL FILE                         0114.000
STATVAR  EQU       5              VARIABLE RECORDS IN FILE              0115.000
STATIO   EQU       6              FILE IS INPUT-OUTPUT                  0116.000
STATFLSH EQU       7              FLUSH RQR'D FLAG                      0117.000
STATRWT  EQU       8              REWRITE FLUSH FLAG                    0118.000
DEVCC    EQU       9              DEVICE IS CARRIAGE CONTROL            0119.000
DEVOUT   EQU       10             DEVICE AVAILABLE FOR OUTPUT           0120.000
DEVINP   EQU       11             DEVICE AVAILABLE FOR INPUT            0121.000
STATDEV  EQU       12             DEVICE TYPE                           0122.000
STATLOK  EQU       16             LOCKED FILE                           0123.000
STATEOF  EQU       17             FILE AT END-OF-FILE                   0124.000
STATOPN  EQU       18             FILE IS OPEN                          0125.000
STATREV  EQU       19             FILE IS REVERSED                      0126.000
STATINP  EQU       20             FILE IS INPUT                         0127.000
STATOUT  EQU       21             FILE IS OUTPUT                        0128.000
STATALT  EQU       22             ALTERNATE BUFFER AVAILABLE            0129.000
STATRED  EQU       23             OPERATION IS READ                     0130.000
STATNOR  EQU       24             NO REWIND                             0131.000
STATEXT  EQU       25             EXTEND OPERATION                      0132.000
STATDALC EQU       26             DEVICE DEALLOCATED FLAG               0133.000
STATFRST EQU       24             FIRST PRINTER WRITE (IN ADVANCE)      0134.000
BLOKIO   EQU       5              BLOCKED I/O FLAG (IN CONTSPEC)        0135.000
*  STATUS MASKS                                                         0136.000
STATLOKM EQU       X'8000'                                              0137.000
STATEOFM EQU       X'4000'                                              0138.000
STATOPNM EQU       X'2000'                                              0139.000
STATREVM EQU       X'1000'                                              0140.000
STATINPM EQU       X'800'                                               0141.000
STATOUTM EQU       X'400'                                               0142.000
STATALTM EQU       X'200'                                               0143.000
STATREDM EQU       X'100'                                               0144.000
STATEXTM EQU       X'40'                                                0145.000
STATDLCM EQU       X'20'                                                0146.000
DISKBLOK EQU       768            SIZE OF DISK BLOCK IN BYTES           0147.000
NOWAIT   EQU       0              NO WAIT I/O                           0148.000
*                                                                       0149.000
LINCTR   EQU       0                                                    0150.000
SYC      EQU       1                                                    0151.000
SGO      EQU       2                                                    0152.000
SLO      EQU       3                                                    0153.000
SBO      EQU       4                                                    0154.000
*                                                                       0155.000
*                                                                       0156.000
* PICKUP PARAMETERS FROM CALL STATEMENT AND PUT THEM INTO THE           0157.000
* FILE INFORMATION TABLE                                                0158.000
*                                                                       0159.000
*                                                                       0160.000
C:OPSQ   EQU       $              ENTRY POINT                           0161.000
         TRR       0,3                                                  0162.000
         LW        5,0,3          OPEN ATTRIBUTES                       0163.000
         LW        1,1W,3         FILE INFORMATION TABLE ADDRESS        0164.000
         TBR       5,OPENJET                                            0165.000
         BCF       1,OPN010                                             0166.000
         LW        6,2W,3         JUMP EXIT TABLE ADDRESS               0167.000
         STW       6,ERRORETN,1                                         0168.000
         LW        6,3W,3                                               0169.000
         STW       6,ERRORETN+1W,1                                      0170.000
         ADI       0,4W           INCREMENT RETURN ADDRESS              0171.000
         BU        OPN015                                               0172.000
OPN010   EQU       $                                                    0173.000
         ZMW       ERRORETN,1                                           0174.000
         ZMW       ERRORETN+1W,1                                        0175.000
         ADI       0,2W           INCREMENT RETURN ADDRESS              0176.000
OPN015   EQU       $                                                    0177.000
         STW       0,RTNADDR0,1   SAVE RETURN ADDRESS                   0178.000
         LI        3,STATLOKM+STATEOFM+STATOPNM+STATDLCM                0179.000
         ANMH      3,BITSTAT,1                                          0180.000
         STH       3,BITSTAT,1    PRESERVE ONLY LOCK,EOF,DEALLOC,OPEN   0181.000
         ZBM       STATINP,FILSTAT,1                                    0182.000
         ZBM       STATOUT,FILSTAT,1                                    0183.000
         ZBM       STATIO,FILSTAT,1                                     0184.000
         TBR       5,ATTRINP      SET INPUT STATUS                      0185.000
         BCF       1,OPN020                                             0186.000
         SBM       STATINP,FILSTAT,1                                    0187.000
OPN020   EQU       $                                                    0188.000
         TBR       5,ATTROUT      SET OUTPUT STATUS                     0189.000
         BCF       1,OPN021                                             0190.000
         SBM       STATOUT,FILSTAT,1                                    0191.000
OPN021   EQU       $                                                    0192.000
         TBR       5,ATTRIO       SET INPUT-OUPUT STATUS                0193.000
         BCF       1,OPN022                                             0194.000
         SBM       STATIO,FILSTAT,1                                     0195.000
         ZBM       STATRWT,FILSTAT,1                                    0196.000
OPN022   EQU       $                                                    0197.000
         TBR       5,ATTREXT      SET EXTEND STATUS                     0198.000
         BCF       1,OPN023                                             0199.000
         SBM       STATEXT,FILSTAT,1                                    0200.000
OPN023   EQU       $                                                    0201.000
         TBR       5,ATTRREV      SET REVERSE STATUS                    0202.000
         BCF       1,OPN024                                             0203.000
         SBM       STATREV,FILSTAT,1                                    0204.000
OPN024   EQU       $                                                    0205.000
         TBR       5,ATTRNOR      SET NO-REWIND STATUS                  0206.000
         BCF       1,OPN025                                             0207.000
         SBM       STATNOR,FILSTAT,1                                    0208.000
*                                                                       0209.000
*                                                                       0210.000
* TEST FOR PHYSICAL DEVICE PRESENT AND AVAILABLE                        0211.000
*                                                                       0212.000
*                                                                       0213.000
OPN025   EQU       $                                                    0214.000
         LW        5,LOGFILCD,1   FETCH LOGICAL FILE CODE               0215.000
         ANMW      R5,=X'00FFFFFF' MASK IOCS FUNCTION CODE ***GLS***    0216.000
*                                  16-AUG-83  ***NAS***                 0217.000
         TRR       1,2                                                  0218.000
         TRR       R5,R4                                                0219.000
         ZR        R5                                                   0220.000
         LA        R1,ARGAX                                             0221.000
         M.INQUIRY                                                      0222.000
         TRR       2,1                                                  0223.000
         LW        R2,ARGAX+1W                                          0224.000
         LW        R5,5W,X2                                             0225.000
         TBM       DFT.REMR,DFT.FLGS,X2 REMOTE RESOURCE?        E3RMS35 0226.000
         BNS       OPN25X          NO, CONTINUE LOCAL           E3RMS35 0227.000
         STW       R5,DIVSTAT0,X1  SAVE REL EOF                 E3RMS35 0228.000
         LW        R7,PBUFADDR,X1  GET PROMARY BUFFER ADDRESS   E3RMS35 0229.000
         STW       R7,BUFFPTR,X1   SAVE CURRENT BUFFER POINTER  E3RMS35 0230.000
         BU        OPN275                                       E3RMS35 0231.000
*                                                               E3RMS35 0232.000
OPN25X   CEQU      $                                            E3RMS35 0233.000
         LW        R2,ARGAX+3W     GET DTT ADDRESS                      0234.000
         LH        R6,3H,X2        GET DEVICE MNEMONIC                  0235.000
         LW        R2,ARGAX+2W     GET UDT ADDRESS                      0236.000
         LW        R7,4W,X2        GET UDT.MBX                          0237.000
         SLL       R7,16           SHIFT COUNT LEFT 16                  0238.000
         ORR       R7,R6           PUT ORR INTO R6                      0239.000
         LB        R4,6B,X2        GET CHANNEL NUMBER                   0240.000
         ADMB      R4,7B,X2        ADD IN SUB ADDRESS                   0241.000
         LB        R7,5B,X2        GET DTC                              0242.000
         SLL       R7,26                                                0243.000
         SLL       R4,16                                                0244.000
         ORMB      R7,15B,X2                                            0245.000
         ORR       R4,R7                                                0246.000
         LW        R4,=X'00070000' SYSTEM FILE MASK                     0247.000
         LW        R2,ARGAX+1W                                          0248.000
         LMW       R4,0,X2                                              0249.000
         SRL       R4,8                                                 0250.000
         ORR       R4,R7                                                0251.000
*  FILE ONLY                       ***GLS***                            0252.000
*  USE THIS NUMBER FOR FILE SIZE SINCE IT WAS USED TO CALCULATE THE     0253.000
*  INFORMATION PUT INTO SECTOR ZERO OF THE FILE                         0254.000
*                                                                       0255.000
         CI        7,0            CHECK FOR DEVICE PRESENT              0256.000
         BCF       4,OPN027                                             0257.000
         TBM       STATOPT,FILSTAT,1 IS FILE OPTIONAL                   0258.000
         BCT       1,OPN026                                             0259.000
         TBM       STATDALC,FILSTAT,1   TEST FOR DE-ALLOCATED FILE      0260.000
         BCF       1,OPN025A                                            0261.000
* IF HERE ASSUME SLO PRINTER(DISK) FILE BEING REOPENED.                 0262.000
         TRR       1,2             SAVE FIT LOC                         0263.000
         M.ASSN    RRS_LFC,CNPA                                         0264.000
         TRR       2,1                                                  0265.000
         ZBM       STATDALC,FILSTAT,1                                   0266.000
         BU        OPN025                                               0267.000
OPN025A  EQU       $                                                    0268.000
         LI        7,G'97'        DEVICE NOT PRESENT ERROR              0269.000
         BU        C:IOER                                               0270.000
OPN026   EQU       $              OPTIONAL FILE                         0271.000
         SBM       STATEOF,FILSTAT,1 TURN ON END-OF-FILE FLAG           0272.000
         BU        OPN995                                               0273.000
OPN027   EQU       $                                                    0274.000
         STW       5,DIVSTAT0,1   SAVE STATUS IN FIT                    0275.000
         STW       6,DIVSTAT1,1                                         0276.000
         STW       7,DIVSTAT2,1                                         0277.000
         LB        3,SYSFILCD,1   LOAD SYSTEM FILE CODE                 0278.000
         BZ        NOTSYSFL                                             0279.000
         LB        4,SYSFLTAB-1,3  GET SYSTEM FILE ASSIGNMENT           0280.000
         BU        SAVDEV                                               0281.000
NOTSYSFL EQU       $                                                    0282.000
         TRR       7,3                                                  0283.000
         SRL       3,26                                                 0284.000
         LB        4,DIVTAB-1,3   GET DEVICE TYPE CODE                  0285.000
SAVDEV   EQU       $                                                    0286.000
         STB       4,DIVTYPE0,1   SAVE IN FIT                           0287.000
         LW        5,FILSTAT,1                                          0288.000
         TBR       5,STATINP      TEST FOR INPUT                        0289.000
         BCF       1,OPN028                                             0290.000
         TBR       5,DEVINP                                             0291.000
         BCT       1,OPN028                                             0292.000
         LI        7,G'98'        NOT AN INPUT DEVICE ERROR             0293.000
         BU        C:IOER                                               0294.000
OPN028   EQU       $                                                    0295.000
         TBR       5,STATOUT      TEST FOR OUTPUT                       0296.000
         BCF       1,OPN029                                             0297.000
         TBR       5,DEVOUT                                             0298.000
         BCT       1,OPN029                                             0299.000
         LI        7,G'99'        NOT AN OUTPUT DEVICE ERROR            0300.000
         BU        C:IOER                                               0301.000
OPN029   EQU       $                                                    0302.000
*        LH        6,DIVSTAT1,1   RECORD SIZE TEST                      0303.000
*        CAMH      6,MAXSIZE,1                                          0304.000
         LH        R6,DIVSTAT1,X1  RECORD SIZE TEST                     0305.000
         SLL       R6,16           CLEAR ANY SIGN EXTENSION             0306.000
         SRL       R6,16                                                0307.000
         LH        R7,MAXSIZE,X1                                        0308.000
         SLL       R7,16           CLEAR ANY SIGN EXTENSION             0309.000
         SRL       R7,16                                                0310.000
         CAR       R7,R6                                                0311.000
         BNN       OPN030                                               0312.000
         LI        7,G'9A'        RECORD SIZE ERROR                     0313.000
         BU        C:IOER                                               0314.000
*                                                                       0315.000
*                                                                       0316.000
* TEST FOR VALID FILE INFORMATION TABLE                                 0317.000
*                                                                       0318.000
*                                                                       0319.000
OPN030   EQU       $                                                    0320.000
         LW        6,FILSTAT,1                                          0321.000
         TBR       6,STATOR0      SEQUENTIAL ORGANIZATION TEST          0322.000
         TBR       6,STATOR1                                            0323.000
         BCT       1,OPN035                                             0324.000
         BCF       2,OPN040                                             0325.000
OPN035   EQU       $              NON-SEQUENTIAL ORGANIZATION ERROR     0326.000
         LI        7,G'91'                                              0327.000
         BU        C:IOER                                               0328.000
OPN040   EQU       $                                                    0329.000
         TBR       6,STATAC0      SEQUENTIAL ACCESS MODE TEST           0330.000
         TBR       6,STATAC1                                            0331.000
         BCT       1,OPN050                                             0332.000
         BCF       2,OPN060                                             0333.000
OPN050   EQU       $              NON-SEQUENTIAL ACCESS MODE ERROR      0334.000
         LI        7,G'92'                                              0335.000
         BU        C:IOER                                               0336.000
OPN060   EQU       $                                                    0337.000
         TBR       6,STATLOK      LOCKED FILE TEST                      0338.000
         BCF       1,OPN070                                             0339.000
         LI        7,G'96'        LOCKED FILE ERROR                     0340.000
         BU        C:IOER                                               0341.000
OPN070   EQU       $                                                    0342.000
         TBR       6,STATEOF      END-OF-FILE TEST                      0343.000
         BCF       1,OPN080                                             0344.000
         LI        7,G'94'        END-OF-FILE ERROR                     0345.000
         BU        C:IOER                                               0346.000
OPN080   EQU       $                                                    0347.000
         TBR       6,STATOPN      OPEN TEST                             0348.000
         BCF       1,OPN090                                             0349.000
         LB        7,SYSFILCD,1   LOAD SYSTEM FILE CODE                 0350.000
         BNZ       OPN095                                               0351.000
         LI        7,G'95'        OPEN ERROR                            0352.000
         BU        C:IOER                                               0353.000
*                                                                       0354.000
*                                                                       0355.000
* SET UP ADDITIONAL FCB PARAMETERS REQUIRED FOR SYSTEM OPEN             0356.000
*                                                                       0357.000
*                                                                       0358.000
OPN090   EQU       $                                                    0359.000
         LB        6,SYSFILCD,1   LOAD SYSTEM FILE CODE                 0360.000
         BZ        OPN145         IS THIS SYSTEM DEVICE                 0361.000
OPN095   EQU       $                                                    0362.000
         LW        6,PBUFADDR,1   SET UP BUFFER ADDRESS IF AVAILABLE    0363.000
         BCF       4,OPN120                                             0364.000
         LI        7,G'9E'        NO SYSTEM FILE BUFFER ERROR           0365.000
         BU        C:IOER                                               0366.000
OPN120   EQU       $                                                    0367.000
         ORMW      6,BUFFADDR,1                                         0368.000
         STW       6,BUFFADDR,1   ASSIGN SYSTEM FILE BUFFER             0369.000
         LI        7,DISKBLOK     ASSIGN SYSTEM FILE BUFFER SIZE        0370.000
         STW       7,BLOKSIZE,1                                         0371.000
OPN145   EQU       $                                                    0372.000
         LI        3,X'F'         SET UP CONTROL CODE BY DEVICE         0373.000
         ANMB      3,DIVTYPE0,1                                         0374.000
         LB        6,CONTABLE-1,3                                       0375.000
         SLL       6,24                                                 0376.000
         LW        7,CONTSPEC,1                                         0377.000
         ANMW      7,CONTMASK      MASK ADDRS & SPECIAL CNTRL BITS      0378.000
         TBM       STATEXT,FILSTAT,1                                    0379.000
         BCT       1,OPN147                                             0380.000
         ANMW      7,OPENMASK      INITIALIZE DISK ADDRESS              0381.000
OPN147   EQU       $                                                    0382.000
         ORR       7,6                                                  0383.000
         STW       6,CONTSPEC,1                                         0384.000
         LEA       6,OPENERR      ERROR RETURN ADDRESS                  0385.000
         STW       6,ERRORADR,1                                         0386.000
*                                                                       0387.000
*                                                                       0388.000
* SPECIAL SETUP BY DEVICE                                               0389.000
*                                                                       0390.000
*                                                                       0391.000
         CI        3,3            CHECK DEVICE TYPE                     0392.000
         BCF       3,OPN190                                             0393.000
* DEVICE IS A DISK OR TAPE                                              0394.000
         LB        7,SYSFILCD,1   CHECK SYC OR SGO FILE                 0395.000
         BZ        OPN150                                               0396.000
         SBM       BLOKIO,CONTSPEC,1  IF SO, INDICATE BLOCKED I/O       0397.000
         LW        7,BLOKSIZE,1                                         0398.000
         SLL       7,18                                                 0399.000
         STW       7,TCW,1                                              0400.000
         BU        OPN250                                               0401.000
OPN150   EQU       $                                                    0402.000
         LW        7,PBUFADDR,1   FETCH PRIMARY BUFFER ADDRESS          0403.000
         STW       7,BUFFPTR,1    SAVE CURRENT BUFFER POINTER           0404.000
***      LW        6,ABUFADDR,1   CHECK FOR ALTERNATE BUFFER            0405.000
***      BCT       4,OPN160                                             0406.000
***      SBM       STATALT,FILSTAT,1 ALTERNATE PRESENT, SET FLAG        0407.000
***      BU        OPN170                                               0408.000
OPN160   EQU       $              ALTERNATE NOT PRESENT                 0409.000
***      STW       7,ABUFADDR,1   FORCE ALTERNATE TO BE PRIMARY         0410.000
OPN170   EQU       $                                                    0411.000
         CI        3,2            CHECK FOR TAPE DEVICE                 0412.000
         BCF       4,OPN250                                             0413.000
         TBM       STATDALC,FILSTAT,1   TEST FILE DEALLOCATED           0414.000
         BCF       1,OPN250                                             0415.000
* ISSUE 'MOUNT TAPE' MESSAGE FOR MULTI-REEL TAPES                       0416.000
         LB        6,DIVSTAT2+3,1 LOAD VOLUME NUMBER                    0417.000
         BZ        OPN250         BRANCH IF SINGLE-REEL                 0418.000
         TRR       5,3            SAVE OPEN ATTR'S                      0419.000
         LW        7,LOGFILCD,1   LOAD LOGICAL FILE CODE                0420.000
*        SLL       5,8            CLEAR BYTE 0                          0421.000
*        SRL       5,8                                                  0422.000
*        ORMW      5,FCTDEVM      INDICATE DEVICE ALLOCATION            0423.000
* ASSUME MOUNT WAIT UNBLOCKED 2 TO N VOLUMES.                           0424.000
* Notice the non-compatable updates performed in this section           0425.000
*        LB        6,VOLUME,1     INDICATE ORIGINAL VOLUME              0426.000
*        SLL       6,16                                                 0427.000
*        SBR       6,0            INDICATE PREVIOUS ALLOCATION          0428.000
         LMB       6,DIVSTAT2,1   LOAD DEVICE TYPE CODE                 0429.000
*        SLL       7,6                                                  0430.000
*        ORMB      7,DIVSTAT2+1,1 INCLUDE DEVICE ADDRESS                0431.000
*        SBR       7,16           INDICATE DEVICE ADDRESS PRESENT       0432.000
*        ORR       7,6                                                  0433.000
         LW        5,DIVSTAT0,1   LOAD REEL IDENTIFIER                  0434.000
         TRR       1,4                                                  0435.000
         LEA       1,OPN025A      ERR ADDR                              0436.000
         BL        BUILDRR3                                             0437.000
         TRR       4,1           RESET INDEX REG                        0438.000
         ZBM       STATDALC,FILSTAT,1                                   0439.000
         TRR       3,5            RESTORE OPEN ATTR'S                   0440.000
         BU        OPN250                                               0441.000
OPN190   EQU       $                                                    0442.000
         CI        3,4                                                  0443.000
         BCF       4,OPN230                                             0444.000
*                                                                       0445.000
* DEVICE IS A CARD READER                                               0446.000
*                                                                       0447.000
         ZMW       CURRECNO,1     ENABLE BUFFER PRIMING                 0448.000
***      SBM       STATALT,FILSTAT,1                                    0449.000
         BU        OPN250                                               0450.000
OPN230   EQU       $                                                    0451.000
         CI        3,3                                                  0452.000
         BCF       4,OPN242                                             0453.000
*                                                                       0454.000
* DEVICE IS A PRINTER                                                   0455.000
*                                                                       0456.000
         LW        3,LINETABL,1   CHECK FOR LINAGE TABLE                0457.000
         BZ        OPN236                                               0458.000
         LW        2,LINESUBR,1   CHECK LINAGE SETUP ROUTINE            0459.000
         BZ        OPN235                                               0460.000
         STW       1,FITLOC                                             0461.000
         SBM       STATFRST,ADVANCE,1   SPECIFY CALLING ORIGIN          0462.000
         BU        0,2            INITIALIZE LINAGE                     0463.000
C:ORTN   EQU       $                                                    0464.000
         LW        3,LINETABL,1                                         0465.000
OPN235   EQU       $                                                    0466.000
         LI        5,1                                                  0467.000
         STW       5,LINCTR,3     INITIALIZE LINAGE COUNTER             0468.000
OPN236   LB        7,SYSFILCD,1   CHECK IF SLO FILE                     0469.000
         CI        7,SLO                                                0470.000
         BCF       4,OPN237                                             0471.000
         LW        7,ABUFADDR,1                                         0472.000
         BU        OPN238                                               0473.000
OPN237   EQU       $                                                    0474.000
         LW        7,PBUFADDR,1    IF NOT, DBL BUFFER                   0475.000
OPN238   EQU       $                                                    0476.000
         STW       7,BUFFPTR,1                                          0477.000
         BU        OPN245                                               0478.000
*                                                                       0479.000
* DEVICE IS UNIT RECORD                                                 0480.000
*                                                                       0481.000
OPN240   EQU       $                                                    0482.000
***      LH        6,MAXSIZE,1    SET UP TCW                            0483.000
***      SLL       6,20                                                 0484.000
***      SBR       6,12***        TURN ON 'F' BIT                       0485.000
***      ADMW      6,RECLOC,1                                           0486.000
***      STW       6,TCW,1                                              0487.000
OPN242   EQU       $                                                    0488.000
         LI        7,G'91'        BAD DEVICE ERR                        0489.000
         BU        C:IOER                                               0490.000
* TEST SLO OR SBO REOPEN                                                0491.000
OPN245   EQU       $                                                    0492.000
         TBM       STATOPN,FILSTAT,1    TEST SLO REOPEN                 0493.000
         BCT       1,OPN280                                             0494.000
OPN250   EQU       $                                                    0495.000
*                                                                       0496.000
*                                                                       0497.000
* CALL SYSTEM OPEN                                                      0498.000
*                                                                       0499.000
*                                                                       0500.000
         LI        6,STATOUTM+STATEXTM                                  0501.000
         SBR       6,STATIO                                             0502.000
         ANMW      6,FILSTAT,1                                          0503.000
         BZ        OPN270                                               0504.000
         ZR        6                                                    0505.000
*        SBR       6,1                                                  0506.000
OPN270   EQU       $                                                    0507.000
         ORR       6,1                                                  0508.000
* THIS IS WERE A COMPATABILITY CHANGE IS BEING EFFECTED                 0509.000
************************************************************************0510.000
OPN275   EQU       $                                            E3RMS35 0511.000
         LA        R7,CNP_IO1                                           0512.000
         SVC       2,X'42'         CALL TO OPEN FILE                    0513.000
*                                                                       0514.000
*                                                                       0515.000
* COBOL I/O SPECIAL DISK PROCESSING                                     0516.000
*                                                                       0517.000
*                                                                       0518.000
OPN280   EQU       $                                                    0519.000
         LI        3,X'F'                                               0520.000
         ANMB      3,DIVTYPE0,1                                         0521.000
         LB        7,SYSFILCD,1   SKIP IF SYSTEM FILE                   0522.000
         BNZ       OPN600                                               0523.000
         CI        3,1                                                  0524.000
*        BCF       4,OPN800       NOT A DISK DEVICE             E3RMS35 0525.000
         LW        6,OPENTCW      SET UP TCW TO READ FIRST SECTOR       0526.000
         ADMW      6,PBUFADDR,1                                         0527.000
         STW       6,TCW,1                                              0528.000
         LI        R7,X'A8'                                     E3RMS35 0529.000
*        LW        7,CONTSPEC,1                                 E3RMS35 0530.000
         STW       7,ADDRHOLD,1                                         0531.000
         ANMW      7,OPENMASK                                           0532.000
         STW       7,CONTSPEC,1   SAVE DISK ADDRESS                     0533.000
         SVC       1,X'31'       READ FIRST SECTOR                      0534.000
OPN300   EQU       $                                                    0535.000
         SVC       1,X'3C'                                              0536.000
         LW        7,ADDRHOLD,1                                         0537.000
         STW       7,CONTSPEC,1   RESTORE DISK ADDRESS                  0538.000
OPN310   EQU       $                                                    0539.000
         LW        6,*TCW,1                                             0540.000
         BCT       4,OPN500       NEW FILE                              0541.000
         CAMW      6,CBSEQFL                                            0542.000
         BCT       4,OPN320       EXISTING SEQUENTIAL FILE              0543.000
         LI        7,G'9G'        NON-SEQUENTIAL FILE ERROR             0544.000
         BU        C:IOER                                               0545.000
*                                                                       0546.000
* EXISTING FILE                                                         0547.000
*                                                                       0548.000
OPN320   EQU       $                                                    0549.000
         LW        3,PBUFADDR,1   FETCH BUFFER ADDRESS                  0550.000
         TBM       STATOUT,FILSTAT,1    TEST OPEN OUTPUT                0551.000
         BCT       1,OPN340                                             0552.000
         LW        7,1W,3                                               0553.000
         STW       7,CUREOF,1     SET UP CURRENT END-OF-FILE            0554.000
         LW        7,3W,3                                               0555.000
         CAMH      7,MAXSIZE,1    CHECK FOR CORRECT RECORD SIZE         0556.000
         BCT       4,OPN340                                             0557.000
         LI        7,G'9J'        RECORD SIZE ERROR                     0558.000
         BU        C:IOER                                               0559.000
OPN340   EQU       $                                                    0560.000
         LW        5,5W,3                                               0561.000
         STH       5,RECPER,1     SET UP RECORDS/BLOCK                  0562.000
         LW        7,4W,3                                               0563.000
         STW       7,BLOKSIZE,1                                         0564.000
         MPI       6,DISKBLOK     TCW SETUP                             0565.000
         BU        OPN520                                               0566.000
*                                                                       0567.000
* NEW FILE                                                              0568.000
*                                                                       0569.000
OPN500   EQU       $                                                    0570.000
         LH        7,MAXSIZE,1    COMPUTE RECORDS PER BUFFER            0571.000
         CI        7,DISKBLOK                                           0572.000
         BCT       2,OPN510       GREATER THAN ONE SECTOR               0573.000
         ZR        6                                                    0574.000
         LI        7,DISKBLOK                                           0575.000
         DVMH      6,MAXSIZE,1                                          0576.000
         STH       7,RECPER,1     SET UP RECORDS-PER-BLOCK              0577.000
         LI        7,1                                                  0578.000
         STW       7,BLOKSIZE,1   FORCE BLOCK SIZE TO 1                 0579.000
         LH        7,MAXSIZE,1    SET UP TRANSFER COUNT IN TCW          0580.000
         MPMH      6,RECPER,1                                           0581.000
         BU        OPN520                                               0582.000
OPN510   EQU       $                                                    0583.000
         LW        5,BLOKSIZE,1    CALCULATE RECORDS PER BLOCK          0584.000
         ZR        4                                                    0585.000
         DVMH      4,MAXSIZE,1                                          0586.000
         STH       5,RECPER,1                                           0587.000
         LW        7,BLOKSIZE,1   BLOCKSIZE <- NUMBR OF DISK SECTORS    0588.000
         ADI       7,DISKBLOK-1                                         0589.000
         ZR        6                                                    0590.000
         DVI       6,DISKBLOK                                           0591.000
         STW       7,BLOKSIZE,1                                         0592.000
         MPI       6,DISKBLOK     SET UP TRANSFER COUNT IN TCW          0593.000
OPN520   EQU       $                                                    0594.000
         ADI       7,3                                                  0595.000
         SLL       7,18                                                 0596.000
         STW       7,TCW,1                                              0597.000
***      ZMW       CUREOF,1       ZERO CURRENT END-OF-FILE              0598.000
         LW        7,DIVSTAT0,1   SET UP END-OF-FILE EXTENT             0599.000
         SUI       7,1            MINUS SECTOR 0                        0600.000
         MPMH      6,RECPER,1                                           0601.000
         STW       7,EOFEXT,1                                           0602.000
         LI        7,STATREVM+STATEXTM                                  0603.000
         ANMW      7,FILSTAT,1    CHECK FOR REVERSED OR EXTEND          0604.000
         BCF       4,OPN540       YES, GO POSITION AT CURRENT EOF       0605.000
         ZMW       CURRECNO,1     NO, ZERO CURRENT RECORD NUMBER        0606.000
         BU        OPN550                                               0607.000
*                                                                       0608.000
*                                                                       0609.000
* INITIALIZE BUFFER AND POINTERS FOR REVERSED OR EXTENDED               0610.000
*                                                                       0611.000
*                                                                       0612.000
OPN540   EQU       $                                                    0613.000
         LW        7,CUREOF,1     FETCH CURRENT END-OF-FILE             0614.000
         STW       7,CURRECNO,1   FORCE AS CURRENT RECORD NUMBER        0615.000
         ZR        6                                                    0616.000
         DVMH      6,RECPER,1     CHECK FOR READ REQUIRED               0617.000
         CI        6,0                                                  0618.000
         BCT       4,OPN550       READ NOT REQUIRED, BYPASS             0619.000
         TRR       6,5            SAVE NUMBER OF RECORDS ALREADY IN BUFF0620.000
         MPMW      6,BLOKSIZE,1   COMPUTE SECTOR NUMBER TO READ         0621.000
         ADI       7,1                                                  0622.000
         LW        4,CONTSPEC,1                                         0623.000
         ANMW      4,OPENMASK                                           0624.000
         ADR       4,7                                                  0625.000
         STW       7,CONTSPEC,1                                         0626.000
         STH       5,RECTHIS,1    SETUP NUMBER OF THIS RECORD           0627.000
         LW        7,TCW,1        RESET TCW                             0628.000
         ANMW      7,OPENMASK                                           0629.000
         ORMW      7,BUFFPTR,1                                          0630.000
         STW       7,TCW,1                                              0631.000
         SVC       1,X'31'       READ THE PARTIAL SECTOR                0632.000
         SVC       1,X'3C'       WAIT FOR I/O COMPLETE                  0633.000
         MPMH      4,MAXSIZE,1    * R5 = RECTHIS                        0634.000
         ARMW      5,BUFFPTR,1                                          0635.000
         LNW       7,BLOKSIZE,1   RESET DISK ADDRESS FOR CURRENT SECTOR 0636.000
         ARMW      7,CONTSPEC,1                                         0637.000
         BU        OPN600                                               0638.000
OPN550   EQU       $                                                    0639.000
         ZMH       RECTHIS,1      ZERO RECORDS-THIS-BLOCK               0640.000
*                                                                       0641.000
*                                                                       0642.000
* IF AN INPUT FILE, PRIME THE BUFFER                                    0643.000
*                                                                       0644.000
*                                                                       0645.000
OPN600   EQU       $                                                    0646.000
         TBM       STATINP,FILSTAT,1                                    0647.000
         BCT       1,OPN602        INPUT FILE, PRIME                    0648.000
         TBM       STATIO,FILSTAT,1                                     0649.000
         BCF       1,OPN990        NOT INPUT, BYPASS PRIMING            0650.000
OPN602   EQU       $                                                    0651.000
         LB        7,SYSFILCD,1                                         0652.000
         BNZ       OPN607                                               0653.000
***      TBM       STATREV,FILSTAT,1                                    0654.000
***      BCF       1,OPN605       NOT A REVERSED FILE                   0655.000
***      LH        6,RECPER,1     COMPLEMENT NUMBER OF RECORDS IN BUFFER0656.000
***      SUMH      6,RECTHIS,1                                          0657.000
***      STH       6,RECTHIS,1                                          0658.000
***      LNW       6,BLOKSIZE,1   COMPLEMENT SECTOR INCREMENT VALUE     0659.000
***      STW       6,BLOKSIZE,1                                         0660.000
***      BU        OPN607                                               0661.000
OPN605   EQU       $                                                    0662.000
         LW        7,CONTSPEC,1   SET UP DISK READ ADDRESS              0663.000
         ANMW      7,OPENMASK                                           0664.000
         ADI       7,1                                                  0665.000
         STW       7,CONTSPEC,1                                         0666.000
OPN607   EQU       $                                                    0667.000
         LW        7,TCW,1        SET UP TCW                            0668.000
         ANMW      7,OPENMASK                                           0669.000
         ORMW      7,ABUFADDR,1                                         0670.000
         STW       7,TCW,1                                              0671.000
         SVC       1,X'31'       READ A BUFFER FULL                     0672.000
OPN610   EQU       $                                                    0673.000
         SVC       1,X'3C'                                              0674.000
***      TBM       STATREV,FILSTAT,1                                    0675.000
***      BCT       1,OPN990       FILE IS REVERSED                      0676.000
         LH        7,RECPER,1     FORCE END OF BUFFER                   0677.000
         STH       7,RECTHIS,1                                          0678.000
*                                                                       0679.000
*                                                                       0680.000
* SPECIAL HANDLING FOR MAGNETIC TAPE                                    0681.000
*                                                                       0682.000
*                                                                       0683.000
OPN800   EQU       $                                                    0684.000
         CI        3,2                                                  0685.000
         BCF       4,OPN990       DEVICE IS NOT A MAG TAPE              0686.000
         LW        7,BLOKSIZE,1                                         0687.000
         TRR       7,5                                                  0688.000
         ES        4                                                    0689.000
         DVMH      4,MAXSIZE,1                                          0690.000
         STH       5,RECPER,1                                           0691.000
         LB        5,DIVSTAT2+3,1 SAVE ORIGINAL VOLUME NUMBER           0692.000
         STB       5,VOLUME,1                                           0693.000
         SLL       7,20            SET UP TCW                           0694.000
         SBR       7,12                                                 0695.000
         STW       7,TCW,1                                              0696.000
         ZMH       RECTHIS,1                                            0697.000
         ZMW       CURRECNO,1     ALLOW BUFFER PRIMING                  0698.000
         TBM       STATNOR,FILSTAT,1                                    0699.000
         BCT       1,OPN810       CHECK FOR REWIND REQUIRED             0700.000
         SVC       1,X'37'       YES, REWIND IT                         0701.000
OPN810   EQU       $                                                    0702.000
         TBM       STATEXT,FILSTAT,1                                    0703.000
         BCF       1,OPN990                                             0704.000
         SVC       1,X'34'       ADVANCE TO END OF FILE                 0705.000
         SVC       1,X'35'                                              0706.000
*                                                                       0707.000
*                                                                       0708.000
* RETURN TO USER                                                        0709.000
*                                                                       0710.000
*                                                                       0711.000
OPN990   EQU       $                                                    0712.000
         SBM       STATOPN,FILSTAT,1 SET OPEN STATUS                    0713.000
OPN995   EQU       $                                                    0714.000
         ZBM       STATRED,FILSTAT,1 RESET 'LAST OP WAS READ'           0715.000
         LI        7,G'00'        LOAD SUCCESSFUL OPERATION STATUS      0716.000
         BL        C:LDST                                               0717.000
         BU        *RTNADDR0,1    RETURN                                0718.000
ARGAX    REZ       8W                                                   0719.000
* RRS FOR THE M.ASSN AND M.OPENR                                        0720.000
RRS_LFC  DATAW     G'SLO'          DEFAULT RRSA TO SLO                  0721.000
         DATAB     4,4,0,0         TYPE 4, SIZE 4 RRS                   0722.000
         DATAW     G'SLO'          AS SLO TO SLO                        0723.000
         GEN       4/2,4/0,1/1,23/0                                     0724.000
*                                                                       0725.000
RRS_DEV  DATAW     0                                                    0726.000
         DATAB     3,5,0,0                                              0727.000
         DATAW     0,0,0                                                0728.000
*                                                                       0729.000
CNP_IO1  DATAW     0                                                    0730.000
         DATAW     0                                                    0731.000
         DATAB     4,2,0,0                                              0732.000
         REZ       3W                                                   0733.000
CNPA     DATAW     0                                                    0734.000
         ACH       OPN025A                                              0735.000
         REZ       4W                                                   0736.000
* DEVICE TABLE                                                          0737.000
DIVTAB   EQU       $                                                    0738.000
         DATAB     X'31'          DISK UNIT                             0739.000
         DATAB     X'31'          MOVING HEAD DISK                      0740.000
         DATAB     X'31'          FIXED HEAD DISK                       0741.000
         DATAB     X'32'          MAGNETIC TAPE                         0742.000
         DATAB     X'32'          9-TRACK MAGNETIC TAPE                 0743.000
         DATAB     X'32'          7-TRACK MAGNETIC TAPE                 0744.000
         DATAB     X'34'          CARD READER/PUNCH                     0745.000
         DATAB     X'14'          CARD READER                           0746.000
         DATAB     X'34'          CARD READER/PUNCH                     0747.000
         DATAB     X'63'          LINE PRINTER                          0748.000
         DATAB     X'35'          PAPER TAPE                            0749.000
         DATAB     X'76'          CRT/TTY                               0750.000
SYSFLTAB EQU       $                                                    0751.000
         DATAB     X'11'          SYC DEVICE                            0752.000
         DATAB     X'31'          SGO DEVICE                            0753.000
         DATAB     X'63'          SLO DEVICE                            0754.000
         DATAB     X'24'          SBO DEVICE                            0755.000
* CONTROL TABLE BITS ARE AS FOLLOWS:                                    0756.000
*                                                                       0757.000
* BIT 2**0 - NOT USED                                                   0758.000
*        1 - NOT USED                                                   0759.000
*        2 - FILE IS BLOCKED                                            0760.000
*        3 - RANDOM ACCESSING                                           0761.000
*        4 - NOT USED                                                   0762.000
*        5 - NO DATA FORMATTING                                         0763.000
*        6 - NO ERROR PROCESSING                                        0764.000
*        7 - NO WAIT I/O                                                0765.000
CONTABLE EQU       $                                                    0766.000
         DATAB     X'A8'          DISK                                  0767.000
         DATAB     X'A0'          MAGNETIC TAPE                         0768.000
         DATAB     X'00'          LINE PRINTER                          0769.000
         DATAB     X'00'          CARD READER                           0770.000
         DATAB     X'40'          PAPER TAPE                            0771.000
         DATAB     X'40'          CRT/TTY                               0772.000
         DATAB     X'0'           NOT USED                              0773.000
         DATAB     X'0'           NOT USED                              0774.000
OPENTCW  DATAW     X'C000000'                                           0775.000
OPENMASK DATAW     X'FFF00000'                                          0776.000
CONTMASK DATAW     X'FFFFFF'                                            0777.000
FCTDEVM  DATAW     X'E3000000'    MOUNT WAIT UNBLOCKED PERIPHERAL       0778.000
FCTSYSM  DATAW     X'2000000'                                           0779.000
CBSEQFL  DATAW     X'F0FFF0FF'                                          0780.000
*                                                                       0781.000
*                                                                       0782.000
* SYSTEM CALL ERROR RETURN POINT                                        0783.000
*                                                                       0784.000
*                                                                       0785.000
OPENERR  EQU       $                                                    0786.000
         BU        *RTNADDR0,1    RETURN                                0787.000
         END                                                            0788.000
