*DECK DMLIO                                                             000130
          IDENT  DMLIO                                                  000140
 DMLIO    TITLE  DML I/O ROUTINES 
          LIST   F                                                      000150
          ENTRY  NAMEID                                                 000160
          ENTRY  DMLABT                                                 000170
          ENTRY  DMLOPEN                                                000180
          ENTRY  WDMLOUT                                                000190
          ENTRY  TRACOUT                                                000360
          ENTRY  WSSOUT1                                                000200
          ENTRY  WSSOUT2                                                000210
          ENTRY  ABORTFL                                                000220
          ENTRY  ADDFTN                                                 000230
          ENTRY  FWAS1S2                                                001240
          ENTRY  DDLOPEN                                                000240
          ENTRY  DDLREAD                                                000250
          ENTRY  CKEOF                                                  000260
          ENTRY  CLSEIN                                                 000270
          ENTRY  CLSEOUT                                                000280
          ENTRY DDLIWSA                                                 000290
          ENTRY DDLPRNT                                                 000300
          ENTRY  INPUT                                                  000310
          ENTRY  NBRLIN                                                 006090
          ENTRY  DDLABT                                                 000330
          ENTRY  DDLIRL                                                 000340
          ENTRY  LINECTR                                                000350
          ENTRY  LINELIM                                                000360
          ENTRY  LINNBR                                                 006110
          ENTRY  DDLMEM                                                 000380
          ENTRY  DDLSU                                                  000390
          ENTRY  MAXFL                                                  000400
          ENTRY HDR2                                                    000420
          ENTRY  HDR3                                                   000430
          ENTRY  HDR4                                                   000440
          ENTRY  HDR5                                                   000450
          ENTRY  HDR6                                                   000460
          ENTRY  ABRT1                                                  000470
          ENTRY  ABRT3                                                  000480
          ENTRY  ABRT4                                                  000490
          ENTRY   ABRT5                                                 000500
          ENTRY  ABRT7                                                  000510
          ENTRY  ORDNUM                                                 000520
          ENTRY  ORDFLAG                                                000530
          ENTRY  NOLIST                                                 000540
          ENTRY  BLKLIN                                                 006130
          ENTRY  JULDAT                                                 000560
          ENTRY  CRMLEV                                                 000570
          ENTRY  HDR3A                                                  000580
          ENTRY  ERRCNTR                                                000590
          SST                                                           000600
************************************************************************000610
*                                                                       000620
*      FOLLOWING MACROS TO CAUSE STATIC LOAD OF CRM SQ AND WA           000630
*         MODULES IN (0,0) OVERLAY FOR DML INTERNAL I/O                 000640
*                                                                       000650
************************************************************************000660
*                                                                       000670
 SQ       STLD.RM  USERT=(S,Z),USEBT=(C),USE=(OPENM,CLOSEM,GET,GETP,PUT,000680
,PUTP,FETCH,STORE,SKIPFL,REWINDM,WEOR,TGET,TPUT),OMIT=(CMM)             000690
 WA       STLD.RM USERT=(U),USE=(OPENM,CLOSEM,GET,PUT,FETCH,STORE),OMIT=000700
,CMM                                                                    000710
*                                                                       000720
 PSR      MICRO  1,3,*871*
                                                                        000740
          IFC    EQ,*"MODLEVEL"*"JDATE"*,3                              000750
 MODLEVEL MICRO  3,3,*"JDATE"*                                          000760
          IF     MIC,PSR,1                                              000770
 MODLEVEL MICRO  1,3,*"PSR"*                                            000780
                                                                        000790
 VER      MICRO  1,3,*1.3*
 LEV      MICRO  1,3,*"MODLEVEL"*  MODIFICATION LEVEL                   000810
                                                                        000820
 LINP     EQU    60                LINES PER PAGE                       000830
                                                                        000840
************************************************************************000850
*                *  D M L O P E N  *                                   *000860
*         DMLOPEN OPENS THE INPUT FILE, AND OUTPUT (DMLOUT) IF NEEDED. *000870
*                                                                      *000880
************************************************************************000890
 DDLOPEN  DATA   0                                                      000900
DMLOPEN   EQU    DDLOPEN                                                000910
          JDATE  JULDAT                                                 000920
          DATE   HDR5                                                   000940
          CLOCK  HDR6                                                   000950
          TIME   CPTIME                                                 000960
 CONT5    SA1    =XINFILE    GET INPUT LFN.                             000980
          SA2    =XOUTFILE   GET OUTPUT LFN.                            000990
          SA3    =XERRFILE   GET ERROR LFN.                             001000
          SA4    =XSBLFN     GET SUBSCHEMA LFN                          001010
          BX6    X3-X2             IF ERROR LFN AND OUTPUT LFN DIFFER   000500
          SA6    EODIFF            THEN EODIFF " 0. IF SAME, EODIFF = 0.000510
          NZ     X2,CONT2    IF NO DMLOUT FILE (PARAM O=0),             001010
          SX6    1
          SA6    NOLIST      SET FLAG FOR NO LIST (NO DMLOUT FILE)      001040
          EQ     CONT3                                                  001050
 CONT2    BX6    X2                                                     001060
          SA6    OUTPUT      OVERLAY THE LFN IN THE OUTPUT FIT.         001070
 CONT3    BX6    X1                                                     001080
          SA6    INPUT                                                  001090
          BX6    X3          OVERLAY OTHER LFN-S IN THEIR FIT-S         001100
          SA6    ERRS                                                   001110
          BX6    X4                                                     001030
          SA6    SSOUT       LFN OF SSOUT IS LFN OF SUB-SCHEMA          001040
          MEMORY CM,DDLMEM,R         GET CURRENT FIELD LENGTH           001120
          MEMORY CM,MAXFL,R          AND MAXIMUM ALLOWED                001130
          SA1    MAXFL                                                  001140
          AX1    30                  RIGHT JUSTIFY                      001150
          SX6    X1                                                     001160
          SA6    A1                                                     001170
          OPENM  INPUT,INPUT,N                                          001180
          SA2    =XOUTFILE   IF OUTPUT (DMLOUT) LFN = 0,                001190
          ZR     X2,DDLOPEN  RETURN WITHOUT OPENING                     001200
 SKIPINP  OPENM  OUTPUT,OUTPUT,N   OPEN DMLOUT FILE                     001210
          SA0    OUTPUT                                                 001220
          FETCH  A0,LFN,X1   GET OUTPUT FILE NAME                       001230
          FETCH  A0,FET,X6   AND ITS FET ADDRESS                        001240
          IX6    X1+X6                                                  001250
          MX7    0           STORE INTO RA+2, FOR BUFFER                001260
          SA6    B1+B1       FLUSHING IN CASE OF ABORT                  001270
          SA7    A6+B1                                                  001280
          EQ     DDLOPEN                                                001290
************************************************************************001300
*                *  D M L R E A D  *                                   *001310
*         DMLREAD READS IN A LINE, AND CALCULATES LINE NO.(FOR ERRORS).*002750
*                                                                      *001340
************************************************************************001350
 DDLREAD  DATA   0                                                      001360
          SA3    FSTTIME                                                001370
          NZ     X3,CONT6                                               001380
          MX7    1                                                      001390
          LX7    1                                                      001400
          SA7    A3                                                     001410
          EQ     DDLRD2                                                 001420
CONT6     SA3    PRTIRL                                                 001430
          SA2    ORDFLAG                                                001440
          ZR     X2,CONT7                                               001450
          SX6    140                                                    001460
          MX7    0                                                      001470
          SA7    ORDFLAG                                                001480
          EQ     CONT8                                                  001490
CONT7     SX6    X3+31                                                  001500
CONT8     SA6    P2                                                     001510
          SX6    X3                                                     001520
          SA6    INLENG      SAVE LENGTH OF INPUT LINE                  001530
          EQ     DDLRD2                                                 001560
 INCRLN   DATA   0                                                      000210
          SA1    DSPLNBR                                                001580
          SA2    INCRMNT                                                001590
          SA4    SIXES                                                  001600
          IX3    X2+X1                                                  001610
          BX2    -X3*X4                                                 001620
          SA5    THREES                                                 001630
          IX6    X3+X2                                                  001640
          AX2    3                                                      001650
          IX6    X6-X5                                                  001660
          SA3    BLNKEQV                                                001670
          IX6    X6+X2                                                  001680
          IX7    X6+X3                                                  001690
          SA7    NBRLIN                                                 006150
          SA6    DSPLNBR                                                001710
          SA3    DDLIRL                                                 001720
          SX6    X3+30                                                  001730
          SA6    P2                                                     001740
          SA1    P                                                      001750
          MX5    1                                                      001760
          SA4    LINNBR                                                 006170
          LX5    1                                                      001780
          IX7    X5+X4                                                  001790
          SA7    A4                                                     001800
          EQ     INCRLN                                                 000230
 DDLRD2   GET    INPUT,DDLIWSA,90 MOVE INPUT RECORD INTO WSA.           001820
          SX1    INPUT                                                  001830
          RJ     CKERR
  
          RJ     CKEOF             CHECK IF EOR OR EOI                  001840
          NZ    X7,DDLEND                                               001850
          FETCH  INPUT,RL,X7 GET THE RECORD LENGTH FROM THE FIT.        001860
          SA7    DDLIRL   STORE RECORD LENGTH.                          001870
          SA7    PRTIRL                                                 001880
          RJ INCRLN          INCREMENT LINE NO. RIGHT AFTER READ        000180
          EQ     DDLREAD                                                001890
          SPACE  1                                                      001900
DDLEND    BSS    0             END DML PROCESSING                       001910
          MX6    1                                                      001920
          LX6    1                                                      001930
          SA6    =XDDLEOF                                               001940
          SA2    BLKLIN                                                 008200
          BX7    X2                                                     001960
          SA7    NBRLIN                                                 006190
          EQ     DDLREAD     RETURN TO SAME PLACE AS NORMAL READ        006200
************************************************************************001990
*                *  W D M L O U T  *                                   *002000
*         WRITE TO DMLOUT FILE. PARAMS ARE (ADDR,LENGTH)               *002010
************************************************************************002020
WDMLOUT   DATA   0                                                      002030
TRACOUT   EQU    WDMLOUT           DML TRACE OUTPUT GOES TO DMLOUT FILE 000340
WSSOUT1   EQU    WDMLOUT                                                002040
WSSOUT2   EQU    WDMLOUT                                                002050
          SA3    NOLIST            IF NO DMLOUT FILE,                   002060
          NZ     X3,WDMLOUT        RETURN                               002070
          SA2    A1+1                                                   002080
          SA2    X2                                                     002090
          ZR     X2,WDMLOUT        IF RL = 0 IGNORE LINE
          PUT    OUTPUT,X1,X2      WRITE TO DMLOUT                      002100
          EQ     WDMLOUT           RETURN TO CALLER                     002110
************************************************************************002120
*                *  D D L P R N T  *                                   *002130
*         WRITE MESSAGES TO ERROR FILE. PARAMS ARE (ADDR,LENGTH)       *002140
************************************************************************002150
          SPACE  1                                                      002160
 DDLPRNT  DATA   0                                                      002170
          SA3    EODIFF            CHECK IF ERROR,OUTPUT LFN-S DIFFER   000380
          NZ     X3,DIFF            YES, WRITE TO ERROR FILE            000390
          RJ     WDMLOUT            NO, WRITE TO DMLOUT FILE            000400
          EQ     DDLPRNT                                                000410
DIFF      BSS    0                                                      000420
          SX7    A1                GET PARAMETER LIST ADDR FROM A1      000430
          SA7    PARMADR           SAVE ADDR                            000440
          SA3    ERRSOPN                                                002180
          NZ     X3,PRNTINP        IF ERRS FILE NOT OPEN,               002190
          OPENM  ERRS,OUTPUT,N     OPEN ERRS FILE                       002200
          SX6    1
          SA6    ERRSOPN                                                002230
          PUT    ERRS,HDR1,110
          PUT    ERRS,DOUBLE,10             DOUBLE SPACE
 PRNTINP  PUT    ERRS,=XBLKLINE,120   PRINT ERR LINE (ONE MATCHING CUR) 006220
          SA3    PARMADR           RESTORE PARAMETER LIST ADDR TO A1    000460
          SA1    X3                                                     000470
          SA2    A1+1              GET ADDRESS OF 2ND PARAMETER         000480
          SA2    X2                                                     002280
          PUT    ERRS,X1,X2  PRINT DIAG LINE                            002290
          EQ     DDLPRNT           RETURN TO CALLER                     002300
*********************************************************************** 002310
*                *  D M L A B T  *                                     *002320
*         ABORT ROUTINES.  NO ABORT IF PARAM ET=0.                     *002330
*                                                                      *002340
*         CALLING SEQUENCE - DMLABT(N,CCPARM)                          *
*                                                                      *
*         N = 0  CCPARM NOT PASSED                                     *
*                PRINT MSG2 - ABORT                                    *
*         N = 1  CCPARM = CONTROL CARD PARM IN ERROR                   *
*                PRINT MSG1 AND MSG10 - ABORT                          *
*         N = 5  CCPARM NOT PASSED                                     *
*                PRINT MSG8 - ABORT                                    *
*                                                                      *
*********************************************************************** 002350
ABORTFL   BSSZ   1                                                      002360
DDLABT    DATA   0                                                      002370
DMLABT    EQU    DDLABT                                                 002380
          SA2    A1+1              LOAD SECOND (OPTIONAL) PARAMETER 
          SA2    X2                VALID ONLY IF PARM 1 = 1 
          SA1    X1                                                     002390
          ZR     X1,ABRT2          IF PARM 1 = 0 GO TO ABRT2
  
          SX3    5                                                      002410
          IX3    X3-X1                                                  002420
          ZR     X3,ABRT6          IF PARM 1 = 5 GO TO ABRT6
*                                  ELSE, ASSUME PARM 1 = 1
          MESSAGE MSG1,,RCL        CONTROL CARD ERROR 
          BX6    X2 
          SA6    PPRNT             STORE CC PARMAMETER IN PRINT BUFFER
          MESSAGE MSG10,,RCL       PARAMETER IN ERROR 
          ABORT 
  
 ABRT1    DATA    0                                                     002460
          SA2    MSG5                                                   002470
          EQ     WRAPUP                                                 002480
 ABRT3    DATA    0                                                     002490
          SA2    MSG6                                                   002500
          EQ     WRAPUP                                                 002510
 ABRT4    DATA   0                                                      002520
          MESSAGE MSG7,,RECALL                                          002530
          SA1    PMSG7                                                  002540
          RJ     DDLPRNT                                                002550
          RJ     CLEANUP                                                002560
          RJ     CLSEOUT                                                002570
          SA1    =XETLEVEL   IF PARAM ET = 0, DO NOT ABORT              002580
          ZR     X1,ENDR                                                002590
          ABORT                                                         002600
ABRT5     DATA   0                                                      002610
          SA1    PD99                                                   002620
          RJ     DDLPRNT                                                002630
          SA3    =XDDLCOMP                                              002640
          SX4    1                                                      002650
          IX5    X3-X4                                                  002660
          ZR     X5,ABRT2                                               002670
          RJ     ABRT4                                                  002680
ABRT6     BSS    0                                                      002690
          SA2    MSG8                                                   002700
          EQ     WRAPUP                                                 002710
 ABRT7    DATA   0                 ENTRY FROM SCHEMIO - CHECKSUM ABORT  002720
          SA2    MSG9                                                   002730
          EQ     WRAPUP                                                 002740
ABRT2     BSS    0                                                      002750
          SA2    MSG2                                                   002760
WRAPUP    BSS    0                                                      002770
          MESSAGE A2,,RECALL                                            002780
          RJ     CLEANUP                                                002790
          RJ     CLSEOUT                                                002800
          SA1    =XETLEVEL   IF PARAM ET = 0, DO NOT ABORT              002810
          ZR     X1,ENDR                                                002820
          ABORT                                                         002830
ENDR      ENDRUN             NORMAL TERMINATION                         002840
                                                                        002850
CLEANUP   DATA   0           POSITION INPUT FILE TO EOR/EOI             002860
          SX1    INPUT                                                  002870
          RJ     CKEOF       CHECK IF EOR OR EOI -                      002880
          NZ     X7,CLEANUP  YES, RETURN TO ABORT PROCESSING            002890
          SKIPFP INPUT,1     NO, SKIP FORWARD 1 PHYS. RECORD            002900
          EQ     CLEANUP                                                002910
                                                                        002920
 MSG1     DATA   28LDML - CONTROL CARD ERROR
MSG2      DATA   28LFATAL SYNTAX ERRORS                                 002940
MSG6     DIS    ,*EMPTY INPUT FILE      DML ABORTED*                    002950
MSG5     DIS    ,*INSUFFICIENT FIELD LENGTH   DML ABORTED*              002960
MSG7      DIS    ,*    COMPILATION ERRORS-   DML ABORTED*               002970
                             ** PARAM LIST - DO NOT INSERT LINES **     002980
PMSG7     CON    MSG7                                                   002990
          CON    =40                                                    003000
                             ** END LIST **                             003010
MSG8      DIS    ,*SUB-SCHEMA LIBRARY ERROR---DML ABORTED*              003020
 MSG9     DIS    ,*CHECKSUM I/O ERROR - DML ABORTED*                    003030
                                   ** PARM LIST - DO NOT INSERT LINES **
 MSG10    DATA   20LPARAMETER IN ERROR- 
 PPRNT    DATA   10L
          DATA   0
                                   ** END LIST ** 
          SPACE  1                                                      003040
*************************************************************           003050
** CLOSE OUTPUT FILE, AFTER WRITING MESSAGES GIVING FIELD   *           003060
** LENGTH, NUMBER OF DIAGNOSTICS, AND CP TIME USED.         *           003070
 CLSEOUT  DATA   0                                                      003080
          SA1     =XDDLCOMP                                             003090
          SB1    1                                                      003100
          SX3    B1+B1                                                  003110
          IX5    X3-X1                                                  003120
          ZR     X5,CLSOUT1                                             003130
          SA1    ERRCNTR                                                003140
          RJ     =XCDD=      CONVERT ERROR COUNT TO DECIMAL             000200
          LX6    4*6               POSITION ERROR COUNT                 003160
          SA2    MSG4+2            AND                                  003170
          MX0    5*6               MASK                                 003180
          LX0    9*6                                                    003190
          BX2    -X0*X2            INTO                                 003200
          BX6    X0*X6                                                  003210
          BX6    X6+X2             MESSAGE                              003220
          SA6    A2                                                     003230
          SA1    DDLSU       GET STORAGE USED                           003240
          MX0    -6                                                     003250
          IX1    X1-X0       ROUND UP TO A MULTIPLE OF 100B             003260
          AX1    6                                                      003270
          LX1    6                                                      003280
          RJ     =XCOD=      CONVERT TO OCTAL                           000220
          LX6    2*6                                                    003300
          SX4    2RB -2R     APPEND *B* SUFFIX                          003310
          IX6    X6+X4                                                  003320
          SA6    MSG4A             STORE IN MESSAGE                     003330
          TIME   PARMADR                                                003340
          SA5    CPTIME      STARTING TIME                              003350
          SA1    PARMADR     CURRENT TIME                               003360
          IX2    X1-X5       TIME DIFFERENCE                            003370
          BX5    X2                                                     003380
          LX2    -12                                                    003390
          SX3    1000-1S12                                              003400
 +        MX0    -12                                                    003410
          PL     X2,*+1      IF NO BORROW                               003420
          IX5    X5+X3                                                  003430
 +        BX1    -X0*X5      MILLISECONDS                               003440
          SX1    X1+1000     FORCE LEADING ZEROS                        003450
          RJ     =XCDD=      CONVERT TO DECIMAL                         000240
          AX5    12                                                     003470
          SX1    X5          SECONDS                                    003480
          SA2    CPTMA                                                  003490
          LX6    6           CHANGE *1* TO *.*                          003500
          BX5    X6-X2                                                  003510
          RJ     =XCDD=      CONVERT TO DECIMAL                         000260
          LX6    5*6                                                    003530
          BX6    X6-X5       COMBINE RESULTS                            003540
          SA6    MSG4A+2           STORE CP TIME IN MESSAGE             003550
          MESSAGE MSG4,,RECALL                                          003560
          MESSAGE MSG4A,,RECALL                                         003570
CLSOUT1   SA1    =XOUTFILE   IF OUTPUT (DMLOUT) LFN = 0,                003580
          ZR     X1,CLSERRS   SKIP CLOSE                                003590
          CLOSEM OUTPUT,R    CLOSE THE DMLOUT FILE                      000170
CLSERRS   SA1    ERRSOPN     IF ERRS NOT OPENED,                        003610
          ZR     X1,CLSIN     SKIP CLOSE                                003620
          CLOSEM ERRS,N      CLOSE THE ERROR FILE.                      003630
CLSIN     RJ     CLSEIN                                                 003640
          EQ     CLSEOUT                                                003650
 CLSEIN   DATA   0                                                      003660
          CLOSEM INPUT,N     CLOSE THE INPUT FILE.                      003670
          EQ     CLSEIN                                                 003680
************************************************************************003690
*                          *  C K E O F  *                             *003700
*                                                                      *003710
*  DESCRIPTION:                                                        *003720
*         CHECK FOR END-OF-FILE. IF X7 = 0 END-OF-FILE HAS NOT BEEN    *003730
*         REACHED.  IF X7 = 1  END-OF-FILE HAS OCCURRED.                003740
************************************************************************003750
 CKEOF    DATA   0                                                      003760
          FETCH  X1,FP,X2    FETCH THE STATUS OF THE FILE POSITION FLD. 003770
          SB1    X2                                                     003780
          SB1    B1-10B      CIF E.O.S.                                 003790
          EQ     B1,SETEOF                                              003800
          SB1    B1+10B-40B  CIF E.O.P.                                 003810
          EQ     B1,SETEOF                                              003820
          SB1    B1+40B-100B CIF E.O.I.                                 003830
          EQ     B1,SETEOF                                              003840
          SX7    0           X7 TO 1, ELSE 0.                           003850
          EQ     CKEOF       RETURN TO CALLER.                          003860
 SETEOF   SX7    1                                                      003870
          EQ     CKEOF       RETURN TO CALLER.                          003880
 ERRCK    DATA   0                                                      003890
          FETCH  X2,ES,X1                                               003900
          SX3    X1-99                                                  003910
          ZR     X3,ALTER                                               003920
          SX4    X1-98                                                  003930
          ZR     X4,ALTER                                               003940
          EQ     ERRCK                                                  003950
 ALTER    FETCH  X2,ECT,X1                                              003960
          SX3    X1-1                                                   003970
          STORE  X2,ECT=X3                                              003980
          EQ     ERRCK                                                  003990
 CKERR    SPACE  10,10
**        CKERR - CHECK ERROR STATUS IN FIT 
* 
*         IF ERROR IS A 721 THE RUN IS ABORTED. ANY OTHER ERROR IS
*         IGNORED 
* 
*         ENTRY - 
*                X1 FIRST WORD ADDRESS OF FIT.
* 
*         CALLS - 
*                DDLPRNT
* 
  
 CKERR    SUBR                     ENTRY/EXIT 
          FETCH  X1,ES,X2          FETCH ERROR
          SX2    X2-721B
          NZ     X2,EXIT.          IGNORE IF NOT 721
          MESSAGE ERR721,,RCL      DAYFILE MESSAGE
          SA1    ERRPARM
          RJ     DDLPRNT           OUTPUT MESSAGE 
  
          SA1    ERRCNTR           INCREMENT ERROR COUNT
          SX6    X1+1 
          SA6    A1 
          RJ     ABRT3             ABORT RUN
  
 ERR721   DIS    ,+ ***  FATAL CRM ERROR 721  *** + 
 ERRPARM  VFD    60/ERR721
          VFD    60/L721
  
 LLL      SET    ERRPARM-ERR721 
 LLL      SET    LLL*10 
 L721     CON    LLL
  
 ADDFTN   SPACE  10,10
************************************************************************004000
*                *  A D D F T N  *                                     *004010
*         ADD FORTRAN SOURCE STATEMENTS FROM END OF SUBSCHEMA TO DMLOUT*004020
************************************************************************004030
          EXT    DE$ERR                                                 004040
SSOUT     FILE   LFN=SBFILE,LT=UL,RT=W,FO=WA,MRL=32000,EX=DE$ERR,BFS=66,004050
,FWB=SSOBUF                                                             004060
SSOBUF    BSS    66                                                     004070
SSOWSA    BSS    9                                                      004080
ADDFTN    DATA   0                                                      004090
          CLOSEM SSOUT,DET                                              001570
          SA3    NOLIST      IF NO DMLOUT FILE, RETURN                  001060
          NZ     X3,ADDFTN                                              001070
          OPENM  SSOUT,INPUT,N     REOPEN IN SSOUT FORMAT               004110
          SA3    FWAS1S2           GET FWA OF SSOUT PORTION OF SUBSCHEMA001290
          STORE  SSOUT,WA=X3       STORE INTO FIT                       001300
GETSSO    GET    SSOUT,SSOWSA,90   READ SOURCE LINE                     004120
          FETCH  SSOUT,RL,X4      GET RECORD LENGTH                     000130
          SA1    SSOWSA            X1=1ST WORD OF LINE                  000710
          SA2    ENDS2             X2=END OF SSOUT MARKER               000720
          BX3    X1-X2             X3=BOOLEAN DIFFERENCE                000730
          ZR     X3,DONE     IF X3=0, EQUAL SO DONE                     001090
          ZR     X4,GETSSO         IF RL = 0 IGNORE LINE
          PUT    OUTPUT,SSOWSA,X4  WRITE LINE TO DMLOUT                 000150
          EQ     GETSSO            REPEAT                               004160
                                                                        001110
DONE      CLOSEM SSOUT,DET   CLOSE SUBSCHEMA TO CLEAR FIT               001120
          EQ     ADDFTN                                                 001130
                                                                        004170
FWAS1S2   DATA   0                 FWA OF SSOUT PORTION OF SUB-SCHEMA   001260
ENDS2     DATA   10HENDOFSSOUT                                          000760
                                                                        001270
************************************************************************004180
*                          *  M E M O R Y  *                           *004190
*                                                                      *004200
*         ARGUMENT IS AMOUNT OF FIELD LENGTH TO REQUEST.               *004210
*         RETURNS WITH B<0,30> DDLMEM = NEW FIELD LENGTH.              *004220
************************************************************************004230
 MEMORY   SUBR   =           ENTRY/EXIT                                 004240
          SA1    X1                                                     004250
          LX1    30                                                     004260
          BX6    X1                                                     004270
          SA6    DDLMEM                                                 004280
          MEMORY CM,DDLMEM,R                                            004290
          JP     EXIT.                                                  004300
                                                                        004310
                                                                        004320
          FILE   LFN=OUTPUT,BFS=260,FWB=OUTBUF,MBL=2560,WSA=DDLOWSA,LT=U004330
,L,RT=Z,BT=C,MRL=137,EFC=3,ERL=10                                       004340
          FILE   LFN=INPUT,BFS=260,FWB=INBUF,MBL=2560,WSA=DDLIWSA,LT=UL,004350
,RT=Z,BT=C,MRL=90,EFC=3,ERL=10                                          004360
          FILE   LFN=ERRS,BFS=65,FWB=ERRBUF,MBL=137,WSA=DDLEWSA,LT=UL,RT002860
,=Z,BT=C,MRL=137,EFC=3,ERL=10                                           000420
 P2       BSSZ   1                                                      004390
INLENG    BSSZ   1                                                      004400
BLKLIN    DATA   10H           BLKLIN IS ENTRY HERE(BLKLINE IS SCAN ENT)008220
 NBRLIN   DATA   10H     00000                                          006260
 BLINE    DATA   10H                                                    004430
 DDLIWSA  BSS    8           INPUT WORKING STORAGE AREA.                004440
          DATA   10H                                                    004450
          DATA   10H** ORDINAL                                          004460
ORDNUM    DATA   10H                                                    004470
 DDLOWSA  EQU    *+1S17      OUTPUT (DMLOUT) WORKING STORAGE AREA       004480
 DDLEWSA  BSS    14          ERRS WORKING STORAGE AREA                  004490
 INBUF    BSSZ   260                                                    004500
 OUTBUF   BSSZ   260                                                    004510
 ERRBUF   BSSZ   65                                                     002880
DDLIRL    DATA   0                                                      004530
PRTIRL    DATA   0                                                      004540
 JULDAT   BSS    1                 JULIAN DATE                          004550
EODIFF    BSS    1                 " 0 IF E,O PARAMS DIFFER. =0 IF SAME.000530
 PARMADR  BSS    1           CONTAINS THE ADDRESS OF THE PARAMETER LIST 004560
 NOLIST   BSSZ   1           LISTING (DMLOUT) FLAG. 0= LIST, 1= NO LIST 004570
ERRSOPN   BSSZ   1           ERRS OPEN FLAG-  0 = NOT OPEN, 1 = OPEN    004580
 LINECTR  CON    LINP        COUNT OF LINES ON CURRENT PAGE             004590
 LINELIM  CON    LINP-3                                                 004600
ORDFLAG   BSSZ   1                                                      004610
 DDLMEM   BSSZ   1                                                      004620
 DDLSU    BSSZ   1                                                      004630
 MAXFL    VFD    30/-1,30/0                                             004640
NAMEID    DATA   30H                                                    004650
 LINNBR   DATA   0                                                      006280
 HDR1     DATA   10H1                                                   004670
 HDR2     DATA   30H                                                    004680
 HDR3     DATA   20H  * ERROR SUMMARY * 
 HDR3A    DATA   10H   ("JDATE")                                        004700
 HDR4     DATA   20H  DML  "VER"+"LEV".                                 002920
 HDR5     DATA   10H                                                    004720
 HDR6     DATA   10H                                                    004730
 HDR7     DIS    ,*        *                                            004740
 SPACER   DATA   0                                                      004750
 FSTTIME  BSSZ   1                                                      004760
 PAGCNT   DATA   0                                                      004770
 DSPLNBR  DATA   10H0000000000                                          004780
 SIXES    DATA   10H##########                                          004790
 THREES   DATA   10H0000000000                                          004800
 BLNKEQV  DATA   5LRRRRR                                                004810
 INCRMNT  DATA   10H0000000001                                          004820
 DOUBLE   DATA   10H0 
                             ** PARAM LIST - DO NOT INSERT LINES **     004830
 P        CON    BLKLIN                                                 008240
          CON    P2                                                     004850
                             ** END LIST **                             004860
 ERRCNTR  DATA   0                                                      004910
 MSG4     DATA   C* DML COMPLETE.       NNNNN DIAGNOSTICS. *            002940
 MSG4A    DATA   C*  NNNNNNB CM USED.     000.000 CP SECS. *            004930
 CPTIME   BSSZ   1
 CPTMA    VFD    36/6R      &1R1&1R.,24/4R                              004950
D99       DATA   50H  ***99 ***                SOURCE WORD LONGER THAN  004960
          DATA   50H 255 CHARACTERS, UNABLE TO CONTINUE COMPILATION  -  004970
          DATA   15H DML ABORTED  -                                     004980
                             ** PARAM LIST - DO NOT INSERT LINES **     004990
PD99      CON    D99                                                    005000
          CON    =115                                                   005010
                             ** END LIST **                             005020
 CRMLEV   DATA   10H1.5                                                 005030
          END                                                           005040
