JOV      APROG                                                          00001000
0300     TITLE 0300  J O V    JOVIAL COMPILER COORDINATER               00002000
JOV      START X'D000'                                                  00003000
         SPACE 3                                                        00004000
* COMPILER   COORDINATOR                                                00005000
*THE COMPILER COORDINATOR IS A GROUP OF LOOSELY KNIT SUBROUTINES        00006000
*WHICH PERFORM THE FOLLOWING FUNCTIONS                                  00007000
*        1. INITIALIZE THE SYSTEM PRIOR TO START OF COMPILATION         00008000
*        2. BETWEEN EACH PHASE WRAPS UP PRIOR PHASE AND BRINGS IN NEXT  00009000
*        3. BLOCKS OUTPUT RECORDS GOING TO .WORK2 OR .WORK3             00010000
*        4. UNBLOCKS INPUT RECORDS COMING FROM .WORK2 OR .WORK3         00011000
*        5. AFTER PHASE 3, DETERMINES IF ASSEMBLY IS TO BE PERFORMED.   00012000
*           IF SO, RETURNS TO JOB CONTROL INDICATING COMPILATION SUCC-  00013000
*           ESSFUL.  IF NOT, PRODUCES DIAGNOSTIC LISTING ON .OUTPUT     00014000
         SPACE 3                                                        00015000
*THE FOLLOWING LIST OF EQUATES DEFINES LOCATION OF FIELDS USED IN THE   00016000
*COMMUNICATION AREA                                                     00017000
*        1. CRFLAG - COMPILATION SUCCESSFUL OR UNSUCCESSFUL             00018000
*        2. CRMSIZ - MACHINE SIZE                                       00019000
*        3. CRPHAS - NAME OF PROGRAM FOR SYSTEM LOADER TO READ IN       00020000
*        4. CRSWS3 - PUNCH SYMBOLIC DECK SWITCH                         00021000
*        5. CRSWA  - COMPOOL ATTACHED SWITCH                            00022000
         SPACE 1                                                        00023000
CRFLAG   EQU   X'4F0'                                                   00024000
CRMSIZ   EQU   X'5F0'                                                   00025000
CRSYAS   EQU   X'5F4'                                                   00026000
CRPHAS   EQU   X'4F6'                                                   00027000
CRSWS3   EQU   X'4F3'                                                   00028000
CRSWA    EQU   X'68B'                                                   00029000
CRASS    EQU   X'5FC'                                             11232 00030000
LIFLC    EQU   64                                                  CMS  00031000
         SPACE 3                                                        00032000
*THE FOLLOWING LIST OF EQUATES DEFINES THE LOGICAL UNITS ASSIGNED TO    00033000
*THE SYSTEM TAPES                                                       00034000
         SPACE 1                                                        00035000
IOD01    EQU   04                                                       00036000
IOD02    EQU   5                                                   CMS  00037000
IOD03    EQU   06                                                       00038000
IOD04    EQU   09                                                       00039000
IOD05    EQU   10                                                       00040000
IOD06    EQU   11                                                       00041000
IOD07    EQU   07                                                       00042000
         SPACE JK                                                       00043000
         EJECT                                                          00044000
*COMPILER COORDINATOR COMMUNICATIONS REGION                             00045000
*CONTAINING INTERPHASE ADCONS AND SWITCHES                              00046000
*AND TABLE CONTROL WORDS                                                00047000
*                                                                       00048000
*THIS REGION IS PERMANENTLY COVERED                                     00049000
*BY REGISTER 15 WHICH CONTAINS THE ADDRESS OF ZCON.  THIS REGISTER      00050000
*IS LOADED DURING BEGIN COMPILATION AND REMAINS LOADED TO END OF JOB.   00051000
         SPACE 3                                                        00052000
         DS    0F                                                       00053000
ZCON     EQU   *                                                        00054000
ZTITLE   DC    CL8' '                  NAME OF SOURCE PROGRAM           00055000
ZADDR    DC    CL8'0       '   ASSEMBLY START ADDR FROM START CARD  JMH 00056000
ZGENCT   DC    F'0'                    GENERATED LABEL COUNTER          00057000
ZTRAN    DC    A(USTART)       LOAD ADDR OF PHASE OVERLAYS      J C2641 00058000
*                                                                   JMH 00059000
*                                                                   JMH 00060000
ZBKNO    DC    F'0'                    BLOCK NO. TO ASSIGN TEMPS.       00061000
ZBKLOC   DC    F'0'                    NO. OF BYTES OF DATA RESERVED    00062000
ZBKLIM   DC    F'0'                    NO. OF BYTES OF DATA IN CURRENT  00063000
*                                      BLOCK                            00064000
ZF1A     DC    CL6' '                  NAME OF TABLE THAT OVERFLOWED    00065000
*                                      IN PHASE 1A                      00066000
ZXSES    EQU   ZF1A+4          EBCDIC NBR OF SE'S FOR          JV C2601 00067000
*                              PHASE 1 PAGE HEADER             JV C2601 00068000
ZPCODE   DC    X'0000000000'           INDICATOR FOR PLACING PROCESS    00069000
*                                      ITEMS ON .WORK1 AS COMMENTS      00070000
ZFATSW   DC    XL1'0'                  SWITCH INDICATING A FATAL DIAG.  00071000
*                                      IF 0, NO FATAL.  IF 1, FATAL     00072000
ZPHASE   DC    XL1'0'                  SWITCH INDICATING PHASE IN PRO-  00073000
*                                      GRESS                            00074000
*                                      IF 1, PHASE 1.   IF 2, PHASE 1A. 00075000
*                                      IF 4, PHASE 2A.  IF 8, PHASE 2D. 00076000
*                                      IF 10, PHASE 3.                  00077000
*                              X'20' BIT - SPECIAL SUPPRESS ZPUT    JMH 00078000
ZSER     DC    XL1'0'                  SWITCH INDICATING A SERIOUS DIAG 00079000
*                                      IF 0, NO SERIOUS. IF 1, SERIOUS  00080000
ZSTART   DC    XL1'0'                  SWITCH INDICATING OPTIONS CHOSEN 00081000
*                                      ON JOVIAL START CARD.            00082000
*              80 - COMPOOL IN USE                                DYBUF 00082100
*              40 - CLOSE ON START CARD                           DYBUF 00082200
*              20 - LIBE ON START CARD                            DYBUF 00082300
*              10 - LINKABL ON START CARD                         DYBUF 00082400
*              08 - REENT ON START CARD (WITH LIBE,LINKABL)       DYBUF 00082500
*              04 - UNUSED                                        DYBUF 00082600
*              02 - UNUSED                                        DYBUF 00082700
*              01 - UNUSED                                        DYBUF 00082800
ZXSTRT   EQU   ZSTART                                             DYBUF 00082900
ZXOPTNS  DC    XL1'0'  OPTIONS ON $JOV, START, AND .CNTRL CARDS   C2806 00083000
*                              X'01' = PUNCHS ($JOV)              C2806 00084000
*                              X'02' = BLKDATA (START)            C2806 00085000
*                              X'04' = RESERVED                   C2806 00086000
*              08 - ASSEMBLE (PREV ZSTART X'10' BIT)              DYBUF 00086100
*                              X'10' - TITLE CARD PRECEDED START  06152 00086200
*                             X'04' STRUCTURED LISTING            S-054 00086300
         EJECT                                                          00087000
*                                                                       00088000
*TABLE CONTROL WORDS - PRESET FOR 256K BYTE MEMORY                      00089000
*                                                                       00090000
*EACH THREE WORD PACKET CONTAINS THE FOLLOWING INFORMATION              00091000
*        WORD 1  BEGINNING ADDRESS OF THE TABLE AREA                    00092000
*        WORD 2  CURRENT ADDRESS OF THE TABLE AREA - NEXT AVAILABLE     00093000
*        WORD 3  ENDING ADDRESS OF THE TABLE AREA - LIMIT PLUS 1        00094000
         SPACE 3                                                        00095000
ZXSEG    DC    A(SEG,SEG,STATEC-4)                                  JMH 00096000
ZSTATE   DC    A(STATEC)               STATUS CONSTANT                  00097000
         DC    A(STATEC)                                                00098000
         DC    A(ITEMEQ-8)                                              00099000
 .
 .
 .
DCON69   DC    24F'0'          READ AREA FOR COMP HEADER          0804X 03890000
         END   JOV                                                C2641 03891000