*DECK CBMAIN                                                            004288
OVERLAY(DDL,4,0);                                                       004289
                                                                        004290
      PRGM DL30400;                # THIS IS 4,0 OVERLAY               #004291
                                                                        004292
      BEGIN                                                             004293
                                                                        004294
 #                                                                      004295
* *   DL30400 - SUBSCHEMA MAIN OVERLAY           PAGE  1                004296
* *   J G SERPA                                  DATE  01/18/79         004297
*                                                                       004298
* DC  PURPOSE                                                           004299
*                                                                       004300
*     TO CONTROL EXECUTION OF THE SUB-SCHEMA COMPILER.                  004301
*                                                                       004302
* DC  CONTAINED ROUTINES                                                004303
*                                                                       004304
*         PROC CBOVLP2               LOAD OVERLAY 4,2                   004305
*         PROC CBOVLP3               LOAD OVERLAY 4,3                   004306
*         PROC CBOVLP4               LOAD OVERLAY 4,4                   004307
*                                                                       004308
* DC  GLOBAL VARIABLES                                                  004309
*                                                                       004310
*         ARRAY DITSC                ARRAY THAT CONTAINS THE CONTROL    004311
*                                    WORDS AND THE VARIOUS EXIT CELLS   004312
*                                    RETURNED FROM THE DIRECTORY ACCESS 004313
*                                    ROUTINES                           004314
*                                                                       004315
*         ARRAY ENDMSG1              CONTAINS OUTPUT MESSAGE            004316
*                                                                       004317
*         ARRAY SCBUF                CRM BUFFER FOR SCHEMA DIRECTORY    004318
*                                    ACCESS ROUTINES                    004319
*                                                                       004320
*         ARRAY SYMBUF               SYMBOL/HASH TABLE BUFFER           004321
*                                                                       004322
*                                                                       004323
*         ITEM MAXSELENG             MAXIMUM SUB-ENTRY LENGTH           004324
*         ITEM REALMSZ               SIZE OF BUFFER FOR REALM LIST      004325
*         ITEM RELFLAG               TRUE - RELATION DIVISION SPECIFIED 004326
*                                                                       004327
* DC  CALLED ROUTINES                                                   004328
*                                                                       004329
*         PROC  LOADOVL              LOAD REQUESTED OVERLAY             004330
*                                                                       004331
* DC  NON-LOCAL VARIABLES                                               004332
*                                                                       004333
*         ITEM ABORTFLAG             NON ZERO IF FATAL ERRORS           004334
*         ITEM OLD65                 LWA+1 OF CURRENT OVERLAY           004337
*                                                                       004338
* DC  DESCRIPTION                                                       004339
*                                                                       004340
*     BASE4X IS SET TO LWA+1 OF THE 4,0 OVERLAY.
*     THIS VALUE IS USED AS FWA WHEN LOADING OVERLAYS 4,1 THROUGH 4,4.
*     THEN OVERLAY 4,1 IS LOADED AND GIVEN CONTROL. 
*                                                                       004345
 #                                                                      004346
                                                                        004347
      XDEF PROC CBOVLP2;           # LOAD OVERLAY 4,2                  #004348
      XDEF PROC CBOVLP3;           # LOAD OVERLAY 4,3                  #004349
      XDEF PROC CBOVLP4;           # LOAD OVERLAY 4,4                  #004350
                                                                        004351
      XDEF ARRAY DITSC [24];;      # ARRAY THAT CONTAINS THE CONTROL   #004352
                                   # WORDS AND THE VARIOUS EXIT CELLS  #004353
                                   # RETURNED FROM THE DIRECTORY ACCESS#004354
                                   # ROUTINES                          #004355
                                                                        004356
      XDEF ARRAY ENDMSG1 [5];      # CONTAINS OUTPUT MESSAGE           #004357
        BEGIN                                                           004358
        ITEM EM1         C (00,00,10) = ["0         ",                  004359
                                         "     *****",                  004360
                                         "       END",                  004361
                                         " OF SUB-SC",                  004362
                                         "HEMA SOURC",                  004363
                                         "E INPUT   "];                 004364
        END                                                             004365
                                                                        004366
      XDEF ARRAY SCBUF [195];;     # CRM BUFFER FOR SCHEMA DIRECTORY   #004367
                                   # ACCESS ROUTINES                   #004368
                                                                        004369
      XDEF ARRAY SYMBUF [512];;    # SYMBOL/HASH TABLE BUFFER          #004370
                                                                        004371
      XDEF ITEM MAXSELENG   I;     # MAXIMUM SUB-ENTRY LENGTH          #004372
      XDEF ITEM REALMSZ     I = 120;  # INITIAL SIZE OF REALM LIST BUF #
      XDEF ITEM RELFLAG     B;     # TRUE - RELATION DIVISION PRESENT  #004374
                                                                        004375
                                                                        004376
      XREF PROC CBABRT;            # ABORT CURRENT COMPILATION         #004377
      XREF PROC DDLPRNT;           # WRITE MESSAGES TO OUTPUT FILE     #004378
      XREF PROC DE$CLSC;           # CLOSE SCHEMA DIRECTORY FILE       #004379
      XREF PROC LOADOVL;           # LOAD REQUESTED OVERLAY            #004380
                                                                        004381
      XREF ITEM ABORTFLAG  I;      # NON ZERO IF FATAL ERRORS          #004382
      XREF ITEM OLD65      I;      # LWA+1 OF CURRENT OVERLAY          #004385
                                                                        004386
                                                                        004387
      ITEM BASE4X          I;      # LWA+1 OF OVERLAY 4,0              #004388
  
  
#**********************************************************************#
#                                                                      #
#     I N T E R N A L   P R O C E D U R E   -   C B O V L P 2          #
#                                                                      #
#**********************************************************************#
  
      PROC CBOVLP2;                                                     004390
                                                                        004391
      BEGIN                                                             004392
                                                                        004393
 #                                                                      004394
* *   DL30400                                    PAGE  1                004395
* *   CBOVLP2 - LOAD OVERLAY 4,2                                        004396
* *   J G SERPA                                  DATE  01/18/79         004397
*                                                                       004398
* DC  PURPOSE                                                           004399
*                                                                       004400
*     TO LOAD THE 4,2 OVERLAY                                           004401
*                                                                       004402
* DC  ENTRY CONDITIONS                                                  004403
*                                                                       004404
*     BASE4X HAS BEEN SET TO LWA+1 OF OVERLAY 4,0                       004405
*                                                                       004406
* DC  EXIT CONDITIONS                                                   004407
*                                                                       004408
*     IF ABORTFLAG IS NON ZERO, COMPILATION IS ABORTED, OTHERWISE       004409
*     OVERLAY 4,2 IS LOADED AND GIVEN CONTROL.                          004410
*                                                                       004411
* DC  CALLED ROUTINES                                                   004412
*                                                                       004413
*          PROC CBABRT              ABORT CURRENT COMPILATION           004414
*          PROC DDLPRNT             WRITE MESSAGES TO OUTPUT FILE       004415
*          PROC LOADOVL             LOAD REQUESTED OVERLAY              004416
*                                                                       004417
* DC  DESCRIPTION                                                       004418
*                                                                       004419
*     IF ABORTFLAG IS NON ZERO, THE RUN IS ABORTED, OTHERWISE           004420
*     RELFLAG IS CHECKED. IF IT IS NOT SET, THE MESSAGE " END OF        004421
*     SUB-SCHEMA SOURCE INPUT " IS WRITTEN TO THE OUTPUT FILE,          004422
*     AND OVERLAY 4,2 IS LOADED AND GIVEN CONTROL.                      004423
*                                                                       004424
 #                                                                      004425
                                                                        004426
#     E X E C U T A B L E  C O D E  F O R  C B O V L P 2               #004427
                                                                        004428
      IF ABORTFLAG GR 0            # IF ABORT FLAG IS SET              #004429
      THEN                                                              004430
        BEGIN                                                           004431
        DDLPRNT (ENDMSG1, 60);     # ISSUE MESSAGE TO OUTPUT, AND      #004432
                                                                        004433
        CBABRT;                    # ABORT CURRENT COMPILATION         #004434
                                                                        004435
        END                                                             004436
      IF NOT RELFLAG               # IF RELATION DIVISION NOT PRESENT  #004437
      THEN                                                              004438
        DDLPRNT (ENDMSG1, 60);     # ISSUE MESSAGE TO OUTPUT           #004439
                                                                        004440
      LOADOVL (BASE4X, 4, 2);      # LOAD OVERLAY 4,2                  #004441
                                                                        004442
      END  # CBOVLP2 #                                                  004443
  
  
#**********************************************************************#
#                                                                      #
#     I N T E R N A L   P R O C E D U R E   -   C B O V L P 3          #
#                                                                      #
#**********************************************************************#
  
  
      PROC CBOVLP3;                                                     004445
                                                                        004446
      BEGIN                                                             004447
                                                                        004448
 #                                                                      004449
* *   DL30400                                    PAGE  1                004450
* *   CBOVLP3 - LOAD OVERLAY 4,3                                        004451
* *   J G SERPA                                  DATE  01/18/79         004452
*                                                                       004453
* DC  PURPOSE                                                           004454
*                                                                       004455
*     TO LOAD OVERLAY 4,3                                               004456
*                                                                       004457
* DC  ENTRY CONDITIONS                                                  004458
*                                                                       004459
*     BASE4X HAS BEEN SET TO LWA+1 OF OVERLAY 4,0                       004460
*                                                                       004461
* DC  EXIT CONDITIONS                                                   004462
*                                                                       004463
*     IF RELATIONS ARE PRESENT, OVERLAY 4,3 IS LOADED TO PROCESS THEM,  004464
*     OTHERWISE OVERLAY 4,4 IS LOADED AND GIVEN CONTROL.                004465
*                                                                       004466
* DC  CALLED ROUTINES                                                   004467
*                                                                       004468
*          PROC LOADOVL              LOAD REQUESTED OVERLAY             004469
*          PROC CBOVLP4              LOAD OVERLAY 4,4                   004470
*                                                                       004471
* DC  DESCRIPTION                                                       004472
*                                                                       004473
*     IF THE RELATION FLAG IS SET, OVERLAY 4,3 IS LOADED TO PROCESS     004474
*     RELATIONS, OTHERWISE PROC CBOVLP4 IS CALLED.                      004475
*                                                                       004476
 #                                                                      004477
                                                                        004478
#     E X E C U T A B L E  C O D E  F O R  C B O V L P 3               #004479
                                                                        004480
      IF RELFLAG                   # IF RELATION DIVISION PRESENT      #004481
      THEN                                                              004482
        LOADOVL (BASE4X, 4, 3);    # LOAD OVERLAY 4,3                  #004483
                                                                        004484
      ELSE                                                              004485
        CBOVLP4;                   # LOAD OVERLAY 4,4                  #004486
                                                                        004487
      END  # CBOVLP3 #                                                  004488
  
  
#**********************************************************************#
#                                                                      #
#     I N T E R N A L   P R O C E D U R E   -   C B O V L P 4          #
#                                                                      #
#**********************************************************************#
  
  
      PROC CBOVLP4;                                                     004490
                                                                        004491
      BEGIN                                                             004492
 #                                                                      004493
* *   DL30400                                    PAGE  1                004494
* *   CBOVLP4 - LOAD OVERLAY 4,4                                        004495
* *   J G SERPA                                  DATE  01/18/79         004496
*                                                                       004497
* DC  PURPOSE                                                           004498
*                                                                       004499
*     TO LOAD OVERLAY 4,4                                               004500
*                                                                       004501
* DC  ENTRY CONDITIONS                                                  004502
*                                                                       004503
*     BASE4X HAS BEEN SET TO LWA+1 OF OVERLAY 4,0                       004504
*                                                                       004505
* DC  EXIT CONDITIONS                                                   004506
*                                                                       004507
*     IF THE RELATION FLAG IS SET, THE SCHEMA DIRECTORY FILE IS         004508
*     CLOSED. IF ABORTFLAG IS NON ZERO, THE COMPILATION IS ABORTED      004509
*     OTHERWISE OVERLAY 4,4 IS LOADED.                                  004510
*                                                                       004511
* DC  CALLED ROUTINES                                                   004512
*                                                                       004513
*          PROC CBABRT               ABORT CURRENT COMPILATION          004514
*          PROC DDLPRNT              WRITE MESSAGES TO OUTPUT FILE      004515
*          PROC DE$CLSC              CLOSE SCHEMA DIRECTORY FILE        004516
*          PROC LOADOVL              LOAD REQUESTED OVERLAY             004517
*                                                                       004518
* DC  DESCRIPTION                                                       004519
*                                                                       004520
*     IF THE RELATION FLAG IS SET, THE MESSAGE " END OF SUB-SCHEMA      004521
*     SOURCE INPUT " IS WRITTEN TO THE OUTPUT FILE.                     004522
*     THE SCHEMA DIRECTORY FILE IS CLOSED.                              004523
*     IF ABORTFLAG IS NON ZERO, THE COMPILATION IS ABORTED, OTHERWISE   004524
*     OVERLAY 4,4 IS LOADED.                                            004525
*                                                                       004526
 #                                                                      004527
                                                                        004528
#     E X E C U T A B L E  C O D E  F O R  C B O V L P 4               #004529
                                                                        004530
      IF RELFLAG                   # IF RELATION DIVISION IS PRESENT   #004531
      THEN                                                              004532
        DDLPRNT (ENDMSG1, 60);     # WRITE MESSAGE TO OUTPUT FILE      #004533
                                                                        004534
      DE$CLSC;                     # CLOSE SCHEMA DIRECTORY FILE       #004535
                                                                        004536
      IF ABORTFLAG GR 0            # IF ABORT FLAG IS SET              #004537
      THEN                                                              004538
        CBABRT;                    # ABORT CURRENT COMPILATION         #004539
                                                                        004540
      LOADOVL (BASE4X, 4, 4);      # LOAD OVERLAY 4,4                  #004541
                                                                        004542
      END  # CBOVLP4 #                                                  004543
  
#**********************************************************************#
#     E N D   O F   I N T E R N A L   P R O C E D U R E S .            #
#**********************************************************************#
  
  
  
                                                                        004545
#     E X E C U T A B L E  C O D E  F O R  D L 3 0 4 0 0               #004546
                                                                        004547
      BASE4X = OLD65;              # LWA+1 OF OVERLAY 4,0              #004549
      LOADOVL (BASE4X, 4, 1);      # LOAD OVERLAY 4,1                  #004550
                                                                        004551
      END                                                               004552
      TERM                                                              004553
