Google
 

Trailing-Edge - PDP-10 Archives - iqlv30 - iqa.cbl
There are 2 other files named iqa.cbl in the archive. Click here to see a list.
000100 IDENTIFICATION DIVISION.
000120 PROGRAM-ID. IQA.
000140 DATE-WRITTEN. 1978.
000160 DATE-COMPILED.
000180 SECURITY. COPYRIGHT 1978 AZREX INC.
000200 REMARKS.  IQA CRACKS THE QUERY STATEMENTS; IT PREPARES
000220           EXECUTION TABLES WHICH ARE PASSED ON TO THE
000240           EXECUTION PHASE (IQE);
000260           THIS VERSION CONTAINS THE SUMMARY TRIPLE (PRIOR
000280           BREAK VALUE) LOGIC; IT PASSES INFORMATION ASSUMING
000300           IQE IS GOING TO PROCESS INTO/FROM A COMPOSITE
000320           WORKING STORAGE BUFFER ONLY FOR HOLD,SET ALPHA-VAR,
000340           AND PRIOR-SUMMARY VALUES--OTHERWISE, IQE IS GOING
000360           TO PROCESS INTO/FROM INDIVIDUAL I/O BUFFERS.
000380
000400 ENVIRONMENT DIVISION.
000420 CONFIGURATION SECTION.
000440 SOURCE-COMPUTER. DECSYSTEM-10.
000460 OBJECT-COMPUTER. DECSYSTEM-10.
000480 SPECIAL-NAMES. CHANNEL (1) IS TOP-OF-PAGE
000500                CONSOLE IS TTY.
000520
000540 INPUT-OUTPUT SECTION.
000560 FILE-CONTROL.
000580     SELECT QCSTMT ASSIGN TO DSK.
000600     SELECT QPDICT ASSIGN TO DSK.
000620     SELECT QTANLZ ASSIGN TO DSK.
000640 I-O-CONTROL.
000660*     SAME AREA FOR QCSTMT QPDICT QTANLZ.
000680
000700 DATA DIVISION.
000720 FILE SECTION.
000740 FD  QCSTMT
000760     VALUE OF IDENTIFICATION IS QCSTMTTMP
000780     LABEL RECORDS ARE STANDARD BLOCK CONTAINS 0 RECORDS
000800     DATA RECORD IS QCSTMT-REC.
000820 01  QCSTMT-REC USAGE IS DISPLAY-7.
000840     02  FILLER              PICTURE X(80).
000860 FD  QPDICT
000880     VALUE OF IDENTIFICATION IS 'QPDICTSEQ'
000900     LABEL RECORDS ARE STANDARD BLOCK CONTAINS 0 RECORDS
000920     DATA RECORD IS QPDICT-REC.
000940 01  QPDICT-REC USAGE IS DISPLAY-7.
000960     05  FILLER              PICTURE X(150).
000980 FD  QTANLZ
001000     VALUE OF IDENTIFICATION IS QTANLZTMP
001020     LABEL RECORDS ARE STANDARD BLOCK CONTAINS 0 RECORDS
001040     DATA RECORD IS QTANLZ-REC.
001060 01  QTANLZ-REC              PICTURE X(90).
001080 WORKING-STORAGE SECTION.
001090
001094 01  UNIVERSAL-PASSWORD      PICTURE X(6)  VALUE 'DRAGON'.
001098
001100 01  ALPHA-VAR-SPELLING      PICTURE X(01) VALUE 'A'.
001120 01  CHAR                    PICTURE X(01) VALUE SPACE.
001140 01  CURR-BUCKETDX           PICTURE S9(05) COMP VALUE ZERO.
001160 01  CURR-OPERAND            PICTURE S9(05) COMP VALUE ZERO.
001180 01  CURR-OPERATOR           PICTURE S9(05) COMP VALUE ZERO.
001200 01  CURR-PRECEDENCE         PICTURE S9(05) COMP VALUE ZERO.
001220 01  DELTA                   PICTURE S9(05) COMP.
001240 01  DEVICER                 PICTURE X(06) VALUE SPACE.
001260 01  DX-IFLEFTSIDE           PICTURE S9(05) COMP VALUE ZEROS.
001280 01  DX-LOWEST               PICTURE S9(05) COMP VALUE ZEROS.
001300 01  DX-MAX                  PICTURE S9(05) COMP VALUE 200.
001320 01  DX-SAVE                 PICTURE S9(05) COMP.
001340 01  ECHAR                   PICTURE S9(05) COMP VALUE ZEROS.
001360 01  ECODE                   PICTURE S9(03) COMP VALUE ZEROS.
001362     88  WARNING-CODE        VALUES ARE 54 55.
001380 01  EFF-PASSWORD            PICTURE X(06) VALUE SPACE.
001400 01  ELSE-X                  PICTURE S9(05) COMP VALUE ZERO.
001420 01  EOQ                     PICTURE S9(01) COMP VALUE ZERO.
001440 01  FCHAR                   PICTURE S9(05) COMP VALUE ZEROS.
001450 01  FD-BLKSIZE-L            PICTURE S9(05).
001460 01  FILENO                  PICTURE S9(05) COMP.
001480 01  FILETYPE                PICTURE S9(05) COMP VALUE ZEROS.
001500 01  FIRST-PASSWORD          PICTURE X(06) VALUE SPACES.
001520 01  FLAG-ACCUM              PICTURE S9(01) COMP VALUE ZERO.
001530 01  flag-all-blank-line     picture s9(01) comp value 1.
001540 01  FLAG-ALPHA              PICTURE S9(01) COMP VALUE ZERO.
001560 01  FLAG-BAD-CHAR           PICTURE S9(01) COMP VALUE ZERO.
001580 01  FLAG-BY                 PICTURE S9(01) COMP VALUE ZERO.
001590 01  FLAG-COMMENT            PICTURE S9(01) COMP VALUE ZERO.
001600 01  FLAG-COMPUTE            PICTURE S9(01) COMP VALUE ZERO.
001620 01  FLAG-CONTINUE           PICTURE S9(01) COMP VALUE ZERO.
001640 01  FLAG-COPY               PICTURE S9(01) COMP VALUE ZERO.
001660 01  FLAG-CREATE             PICTURE S9(01) COMP VALUE ZERO.
001680 01  FLAG-CREATE-LOOP        PICTURE S9(01) COMP VALUE ZERO.
001700 01  FLAG-DECIMAL            PICTURE S9(01) COMP VALUE ZERO.
001720 01  FLAG-DEV-LBL-PPN        PICTURE S9(01) COMP VALUE ZERO.
001740 01  FLAG-EOS                PICTURE S9(01) COMP VALUE ZERO.
001760 01  FLAG-EOS2               PICTURE S9(01) COMP VALUE ZERO.
001780 01  FLAG-ERROR              PICTURE S9(01) COMP VALUE ZERO.
001800 01  FLAG-EXIT               PICTURE S9(01) COMP VALUE ZERO.
001820 01  FLAG-FIRST-PD           PICTURE S9(01) COMP VALUE ZERO.
001840 01  FLAG-FD-FOUND           PICTURE S9(01) COMP VALUE ZERO.
001850 01  FLAG-FIND               PICTURE S9(01) COMP VALUE ZERO.
001855 01  FLAG-FINDFINI           PICTURE S9(01) COMP VALUE ZERO.
001860 01  FLAG-DD-FOUND           PICTURE S9(01) COMP VALUE ZERO.
001880 01  FLAG-IF                 PICTURE S9(01) COMP VALUE ZERO.
001890 01  flag-if-statement       picture s9(01) comp value zero.
001900 01  FLAG-IFFIRST            PICTURE S9(01) COMP VALUE ZERO.
001920 01  FLAG-GOTO               PICTURE S9(01) COMP VALUE ZERO.
001940 01  FLAG-LBL-ERROR          PICTURE S9(01) COMP VALUE ZERO.
001960 01  FLAG-LEFTLIT            PICTURE S9(01) COMP VALUE ZERO.
001970 01  FLAG-LITERAL            PICTURE S9(01) COMP VALUE ZERO.
001980 01  FLAG-LOCKED             PICTURE S9(01) COMP VALUE ZERO.
001990 01  FLAG-NON-VERB           PICTURE S9(01) COMP VALUE ZERO.
002000 01  FLAG-NOT                PICTURE S9(01) COMP VALUE ZERO.
002020 01  FLAG-OPENARGS           PICTURE S9(01) COMP VALUE ZERO.
002040 01  FLAG-PASS               PICTURE S9(01) COMP VALUE 1.
002060 01  FLAG-PEEKED             PICTURE S9(01) COMP VALUE 0.
002062 01  FLAG-PW-ITEM            PICTURE S9(01) COMP VALUE 0.
002064 01  FLAG-PW-OPEN            PICTURE S9(01) COMP VALUE 0.
002080 01  FLAG-QUERY              PICTURE S9(01) COMP VALUE ZERO.
002100 01  FLAG-QUOTE              PICTURE S9(01) COMP VALUE ZERO.
002120 01  FLAG-RANDOM-READ1       PICTURE S9(01) COMP VALUE ZERO.
002140 01  FLAG-RANDOM-READ2       PICTURE S9(01) COMP VALUE ZERO.
002160 01  FLAG-RANDOM-READ3       PICTURE S9(01) COMP VALUE ZERO.
002170 01  FLAG-SET-TO-COME        PICTURE S9(01) COMP VALUE ZERO.
002180 01  FLAG-SIGN               PICTURE S9(01) COMP VALUE ZERO.
002200 01  FLAG-SLASHES            PICTURE S9(01) COMP VALUE ZERO.
002220 01  FLAG-SORT               PICTURE S9(01) COMP VALUE ZERO.
002240 01  FLAG-STATEMENT-NO       PICTURE S9(01) COMP VALUE ZERO.
002260 01  FLAG-SUMMARY-DEF-TIME   PICTURE S9(01) COMP VALUE ZERO.
002280 01  FLAG-VERB               PICTURE S9(01) COMP VALUE ZERO.
002300 01  HX                      PICTURE S9(05) COMP VALUE ZEROS.
002320 01  I                       PICTURE S9(05) COMP VALUE ZEROS.
002340 01  LI-MAX                  PICTURE S9(05) COMP VALUE 15.
002360 01  J                       PICTURE S9(05) COMP VALUE ZEROS.
002380 01  JOB-NO                  PICTURE S9(03) COMP VALUE 001.
002400 01  K                       PICTURE S9(05) COMP VALUE ZEROS.
002420 01  L-MAX                   PICTURE S9(05) COMP VALUE 90.
002424 01  LATEST-RECTYPE          PICTURE S9(5)  COMP VALUE 0.
002440 01  LAST-PW-ENTRY           PICTURE S9(03) COMP VALUE 1.
002460 01  LAST-RD-ORIGIN          PICTURE S9(04) COMP VALUE ZEROS.
002480 01  LCHAR                   PICTURE X(01) VALUE SPACE.
002500 01  MAX-ALLOWABLE-FILES     PICTURE S9(05) COMP VALUE 001.
002520 01  MAX-FALSEGO             PICTURE S9(05) COMP VALUE 9.
002540 01  MAX-HSPACE              PICTURE S9(05) COMP VALUE 130.
002560 01  MAX-KEY-LENGTH          PICTURE S9(05) COMP VALUE 60.
002580 01  MAX-LMARGIN             PICTURE S9(05) COMP VALUE 130.
002600 01  MAX-NREPORTS            PICTURE S9(05) COMP VALUE 9.
002620 01  MAX-PROTECTS            PICTURE S9(05) COMP VALUE 10.
002640 01  MAX-TRUEGO              PICTURE S9(05) COMP VALUE 9.
002660 01  MAX-REPORTNO            PICTURE S9(05) COMP VALUE 9.
002680 01  MAX-VSPACE              PICTURE S9(05) COMP VALUE 50.
002700 01  MAXCREATEBSZ            PICTURE S9(05) COMP VALUE 640.
002720 01  MINUS-ONE               PICTURE S9(01) COMP VALUE -1.
002740 01  MINUS-ONE-DX            PICTURE S9(05) COMP VALUE 200.
002760 01  NCHAR                   PICTURE S9(05) COMP VALUE ZEROS.
002780 01  NUM-VAR-SPELLING        PICTURE X(01) VALUE 'X'.
002800 01  NUMWORD                 PICTURE S9(09)V999 VALUE ZEROS.
002820 01  NUMWORDX REDEFINES NUMWORD PICTURE X(12).
002840 01  NFILES                  PICTURE S9(05) COMP VALUE ZEROS.
002860 01  N-INPUTFILES            PICTURE S9(05) COMP VALUE ZEROS.
002880 01  N-OPENLPS               PICTURE S9(05) COMP VALUE 00.
002900 01  N-PASSWORDS             PICTURE S9(05) COMP VALUE 0.
002902 01  N-PW                    PICTURE S9(05) COMP VALUE 0.
002904 01  N-PROMPTS               PICTURE S9(05) COMP.
002920 01  N-PD                    PICTURE S9(05) COMP VALUE 0.
002940 01  N-RSE                   PICTURE S9(05) COMP VALUE ZEROS.
002960 01  OPERANDS-CNT            PICTURE S9(05) COMP VALUE ZEROS.
002980 01  ORIGIN                  PICTURE S9(05) COMP VALUE ZEROS.
003000 01  PARENCNT                PICTURE S9(05) COMP VALUE ZEROS.
003020 01  PD-POINTER              PICTURE S9(05) COMP.
003040 01  POPPED-X                PICTURE S9(05) COMP VALUE ZEROS.
003060 01  PPN                     PICTURE S9(10) COMP VALUE ZEROS.
003080 01  PPN-HALF                PICTURE S9(07) COMP VALUE ZEROS.
003100 01  PREV-BUCKETDX           PICTURE S9(05) COMP VALUE ZERO.
003120 01  PROJ10                  PICTURE S9(08) COMP VALUE ZEROS.
003140 01  PROJ8                   PICTURE S9(08) COMP VALUE ZEROS.
003142 01  PW-LIST                 PICTURE S9(05) COMP VALUE 0.
003144 01  PROMPT-PW-POINTER       PICTURE S9(05) COMP VALUE 0.
003160 01  PW-POINTER              PICTURE S9(05) COMP.
003180 01  Q-MAX                   PICTURE S9(05) COMP VALUE 72.
003200 01  QUATERNARY-ORIGIN       PICTURE S9(05) COMP VALUE ZEROS.
003220 01  SAVE30                  PICTURE X(30).
003240 01  SAVE-X                  PICTURE S9(05) COMP VALUE 01.
003260 01  SAVE-XX                 PICTURE S9(05) COMP VALUE 01.
003280 01  SCALE                   PICTURE S9(05) COMP VALUE ZEROS.
003282 01  SORT-GOTO-X             PICTURE S9(05) COMP VALUE ZEROS.
003300 01  TALLI                   PICTURE S9(05) COMP VALUE ZEROS.
003320 01  T-INSTR                 PICTURE S9(05) COMP VALUE ZEROS.
003340 01  T-NUMBN                 PICTURE S9(10) COMP VALUE ZEROS.
003360 01  TCHAR                   PICTURE S9(05) COMP VALUE ZEROS.
003380 01  TEST-PROTEXCL           PICTURE S9(01) COMP VALUE ZERO.
003400 01  TEST-QUOTE              PICTURE S9(01) COMP VALUE ZERO.
003420 01  TEST-REF-NO             PICTURE S9(05) COMP VALUE ZEROS.
003440 01  TMAX                    PICTURE S9(05) COMP VALUE 20.
003460 01  TLPARENCAP              PICTURE S9(05) COMP VALUE 10.
003480 01  TRUTH                   PICTURE S9(05) COMP VALUE ZEROS.
003500 01  TYPEV                   PICTURE S9(05) COMP VALUE ZEROS.
003520 01  TYPE-ALPHA              PICTURE S9(05) COMP VALUE 1.
003540 01  TYPE-AUTHORITY          PICTURE S9(05) COMP VALUE 30.
003560 01  TYPE-AVERAGE            PICTURE S9(05) COMP VALUE 8.
003580 01  TYPE-BINARY             PICTURE S9(05) COMP VALUE 6.
003600 01  TYPE-CONSTANT           PICTURE S9(05) COMP VALUE 9.
003620 01  TYPE-DBMS               PICTURE S9(05) COMP VALUE 8.
003640 01  TYPE-DBMS-KEY           PICTURE S9(05) COMP VALUE 18.
003660 01  TYPE-FILE               PICTURE S9(05) COMP VALUE 41.
003680 01  TYPE-FILE-ASCII         PICTURE S9(05) COMP VALUE 27.
003700 01  TYPE-FILE-SIXBIT        PICTURE S9(05) COMP VALUE 26.
003720 01  TYPE-FILE-DBMS          PICTURE S9(05) COMP VALUE 28.
003740 01  TYPE-GOTO               PICTURE S9(05) COMP VALUE 20.
003760 01  TYPE-LITERAL            PICTURE S9(05) COMP VALUE 10.
003780 01  TYPE-NUMERIC            PICTURE S9(05) COMP VALUE 2.
003800 01  TYPE-NUMERIC-VARIABLE   PICTURE S9(05) COMP VALUE 7.
003820 01  TYPE-PARTIAL-KEY        PICTURE S9(05) COMP VALUE 16.
003840 01  TYPE-PD                 PICTURE S9(05) COMP VALUE 31.
003860 01  TYPE-PRIOR-SUMMARY      PICTURE S9(05) COMP VALUE 23.
003880 01  TYPE-RECORD             PICTURE S9(05) COMP VALUE 22.
003900 01  TYPE-SINGLE-KEY         PICTURE S9(05) COMP VALUE 13.
003920 01  TYPE-THRU-KEY           PICTURE S9(05) COMP VALUE 14.
003940 01  TYPE-TO-KEY             PICTURE S9(05) COMP VALUE 15.
003960 01  TYPE-SUMMARY            PICTURE S9(05) COMP VALUE 17.
003980 01  TYPE-VARIABLE           PICTURE S9(05) COMP VALUE 12.
004020 01  USER10                  PICTURE S9(08) COMP VALUE ZEROS.
004040 01  USER8                   PICTURE S9(08) COMP VALUE ZEROS.
004060 01  V                       PICTURE S9(05) COMP VALUE ZEROS.
004080 01  VA                      PICTURE S9(05) COMP VALUE ZEROS.
004090        88 SUPPRESS-CONDITION VALUES ARE -117 -118 -119 -120.
004100 01  VAA                     PICTURE S9(05) COMP VALUE ZEROS.
004120 01  VP                      PICTURE S9(05) COMP VALUE ZEROS.
004140 01  VP-NOT                  PICTURE S9(05) COMP VALUE ZERO.
004160 01  V-ACCEPT                PICTURE S9(05) COMP VALUE 14.
004180 01  V-ACROSS                PICTURE S9(05) COMP VALUE 22.
004200 01  V-ADD                   PICTURE S9(05) COMP VALUE 01.
004220 01  V-AND                   PICTURE S9(05) COMP VALUE 83.
004240 01  V-ASCENDING             PICTURE S9(05) COMP VALUE +1.
004260 01  V-AT-END                PICTURE S9(05) COMP VALUE 13.
004280 01  V-AUTHORITY             PICTURE S9(05) COMP VALUE 77.
004300 01  V-AVERAGE               PICTURE S9(05) COMP VALUE 49.
004320 01  V-BEGINNING             PICTURE S9(05) COMP VALUE 10.
004340 01  V-BOF1                  PICTURE S9(05) COMP VALUE 55.
004360 01  V-BOF2                  PICTURE S9(05) COMP VALUE 74.
004380 01  V-BOF3                  PICTURE S9(05) COMP VALUE 75.
004400 01  V-BY                    PICTURE S9(05) COMP VALUE 00.
004420 01  V-CALL                  PICTURE S9(05) COMP VALUE 54.
004440 01  V-CLOSE                 PICTURE S9(05) COMP VALUE 2.
004460 01  V-CREATE                PICTURE S9(05) COMP VALUE 09.
004480 01  V-COMPUTE               PICTURE S9(05) COMP VALUE 43.
004500 01  V-CONCAT                PICTURE S9(05) COMP VALUE 90989.
004520 01  V-COPY                  PICTURE S9(05) COMP VALUE 08.
004522 01  V-CURRENT               PICTURE S9(05) COMP VALUE -50.
004540 01  V-DATE                  PICTURE S9(05) COMP VALUE 70.
004560 01  V-DESCENDING            PICTURE S9(05) COMP VALUE -1.
004580 01  V-DISPLAY               PICTURE S9(05) COMP VALUE 15.
004600 01  V-DISPLAYON             PICTURE S9(05) COMP VALUE 34.
004620 01  V-DISPLAYOFF            PICTURE S9(05) COMP VALUE 35.
004640 01  V-DIVIDE                PICTURE S9(05) COMP VALUE 04.
004660 01  V-ELSE                  PICTURE S9(05) COMP VALUE 59.
004680 01  V-EOF                   PICTURE S9(05) COMP VALUE 09.
004700 01  V-EOF1                  PICTURE S9(05) COMP VALUE 56.
004720 01  V-EOF2                  PICTURE S9(05) COMP VALUE 71.
004740 01  V-EOF3                  PICTURE S9(05) COMP VALUE 72.
004760 01  V-EOS                   PICTURE S9(05) COMP VALUE 90909.
004780 01  V-EQUAL                 PICTURE S9(05) COMP VALUE 01.
004840 01  V-FILLER                PICTURE S9(05) COMP VALUE 58.
004860 01  V-FIND                  PICTURE S9(05) COMP VALUE 11.
004880 01  V-FIND-DBMS             PICTURE S9(05) COMP VALUE 07.
004890 01  V-FINDUPLICATE          PICTURE S9(05) COMP VALUE -16.
004900 01  V-FINDAREA              PICTURE S9(05) COMP VALUE -18.
004920 01  V-FINDFROM              PICTURE S9(05) COMP VALUE 10.
004940 01  V-FINDFIRST             PICTURE S9(05) COMP VALUE -12.
004960 01  V-FINDKEY               PICTURE S9(05) COMP VALUE 06.
004980 01  V-FINDKEY1              PICTURE S9(05) COMP VALUE 01.
005000 01  V-FINDKEY2              PICTURE S9(05) COMP VALUE 02.
005020 01  V-FINDKEY3              PICTURE S9(05) COMP VALUE 03.
005040 01  V-FINDLAST              PICTURE S9(05) COMP VALUE -13.
005060 01  V-FINDNEXT              PICTURE S9(05) COMP VALUE -15.
005080 01  V-FINDPRIOR             PICTURE S9(05) COMP VALUE -14.
005100 01  V-FINDOWNER             PICTURE S9(05) COMP VALUE -11.
005102 01  V-FINDOWNER-RECORD      PICTURE S9(05) COMP VALUE -51.
005120 01  V-FINDRECORD            PICTURE S9(05) COMP VALUE -19.
005140 01  V-FINDSET               PICTURE S9(05) COMP VALUE -20.
005160 01  V-FINDSUPPRESS          PICTURE S9(05) COMP VALUE -117.
005180 01  V-FORM-LINES            PICTURE S9(05) COMP VALUE 45.
005200 01  V-FROM                  PICTURE S9(05) COMP VALUE 11.
005220 01  V-GOTO                  PICTURE S9(05) COMP VALUE 53.
005240 01  V-GOTONR                PICTURE S9(05) COMP VALUE 52.
005260 01  V-GOTOQT                PICTURE S9(05) COMP VALUE 50.
005280 01  V-GOTOXT                PICTURE S9(05) COMP VALUE 51.
005300 01  V-GREATER               PICTURE S9(05) COMP VALUE 04.
005320 01  V-GREATEREQUAL          PICTURE S9(05) COMP VALUE 06.
005340 01  V-GROUP                 PICTURE S9(05) COMP VALUE 58.
005360 01  V-HEADING               PICTURE S9(05) COMP VALUE 24.
005380 01  V-HEADINGON             PICTURE S9(05) COMP VALUE 28.
005400 01  V-HEADINGOFF            PICTURE S9(05) COMP VALUE 29.
005420 01  V-HOLD                  PICTURE S9(05) COMP VALUE 40.
005440 01  V-HSPACE                PICTURE S9(05) COMP VALUE 18.
005460 01  V-IF                    PICTURE S9(05) COMP VALUE 61.
005480 01  V-IFANY                 PICTURE S9(05) COMP VALUE 64.
005500 01  V-IFFIRST               PICTURE S9(05) COMP VALUE 62.
005520 01  V-IFFIRSTIME            PICTURE S9(05) COMP VALUE 55.
005540 01  V-IFLAST                PICTURE S9(05) COMP VALUE 63.
005560 01  V-IFLASTIME             PICTURE S9(05) COMP VALUE 56.
005580 01  V-IFNEWGROUP            PICTURE S9(05) COMP VALUE 58.
005600 01  V-IFNEWPAGE             PICTURE S9(05) COMP VALUE 57.
005620 01  V-IFNEXT                PICTURE S9(05) COMP VALUE 65.
005640 01  V-IFSAME                PICTURE S9(05) COMP VALUE 66.
005660 01  V-ILLEGAL               PICTURE S9(05) COMP VALUE 99.
005680 01  V-INVALID-KEY           PICTURE S9(05) COMP VALUE 17.
005700 01  V-INVOKE                PICTURE S9(05) COMP VALUE 02.
005720 01  V-LEFT                  PICTURE S9(05) COMP VALUE -3.
005740 01  V-LESS                  PICTURE S9(05) COMP VALUE 03.
005760 01  V-LESSEQUAL             PICTURE S9(05) COMP VALUE 05.
005780 01  V-LINE                  PICTURE S9(05) COMP VALUE 00.
005800 01  V-LMARGIN               PICTURE S9(05) COMP VALUE 20.
005820 01  V-LPAREN                PICTURE S9(05) COMP VALUE 07.
005840 01  V-MARGIN                PICTURE S9(05) COMP VALUE 20.
005860 01  V-MAXIMUM               PICTURE S9(05) COMP VALUE 80.
005880 01  V-MINIMUM               PICTURE S9(05) COMP VALUE 81.
005900 01  V-MULTIPLY              PICTURE S9(05) COMP VALUE 03.
005920 01  V-NARROW                PICTURE S9(05) COMP VALUE 00.
005940 01  V-NEW                   PICTURE S9(05) COMP VALUE -5.
005960 01  V-NEWPAGE               PICTURE S9(05) COMP VALUE 25.
005980 01  V-NO                    PICTURE S9(05) COMP VALUE 00.
006000 01  V-NOT                   PICTURE S9(05) COMP VALUE 00.
006020 01  V-NOTEQUAL              PICTURE S9(05) COMP VALUE 02.
006040 01  V-OF                    PICTURE S9(05) COMP VALUE 00.
006060 01  V-OFF                   PICTURE S9(05) COMP VALUE 00.
006080 01  V-ON                    PICTURE S9(05) COMP VALUE 00.
006100 01  V-OPEN                  PICTURE S9(05) COMP VALUE 02.
006120 01  V-OR                    PICTURE S9(05) COMP VALUE 84.
006140 01  V-POP                   PICTURE S9(10) COMP VALUE -1.
006160 01  V-POP2                  PICTURE S9(05) COMP VALUE -2.
006180 01  V-NEXT                  PICTURE S9(05) COMP VALUE 12.
006200 01  V-NOP                   PICTURE S9(05) COMP VALUE 00.
006220 01  V-PAGE                  PICTURE S9(05) COMP VALUE 46.
006240 01  V-PAGE-LINE             PICTURE S9(05) COMP VALUE 44.
006260 01  V-PAGE-WIDTH            PICTURE S9(05) COMP VALUE 21.
006280 01  V-PAGING                PICTURE S9(05) COMP VALUE 26.
006300 01  V-PAGINGON              PICTURE S9(05) COMP VALUE 26.
006320 01  V-PAGINGOFF             PICTURE S9(05) COMP VALUE 27.
006340 01  V-PICTURE               PICTURE S9(05) COMP VALUE 78.
006360 01  V-PRINT                 PICTURE S9(05) COMP VALUE 16.
006380 01  V-PRINTON               PICTURE S9(05) COMP VALUE 36.
006400 01  V-PRINTOFF              PICTURE S9(05) COMP VALUE 37.
006420 01  V-PRIVACY-KEY           PICTURE S9(05) COMP VALUE 00.
006440 01  V-PRIVACY-LOCK          PICTURE S9(05) COMP VALUE 00.
006460 01  V-READ                  PICTURE S9(05) COMP VALUE 5.
006470 01  V-REOPEN                PICTURE S9(05) COMP VALUE 86.
006480 01  V-REPORT                PICTURE S9(05) COMP VALUE 23.
006500 01  V-RESET                 PICTURE S9(05) COMP VALUE 41.
006520 01  V-RESULT                PICTURE S9(05) COMP VALUE 09.
006540 01  V-REWRITE               PICTURE S9(05) COMP VALUE 87.
006560 01  V-RIGHT                 PICTURE S9(05) COMP VALUE -2.
006580 01  V-RMARGIN               PICTURE S9(05) COMP VALUE 21.
006600 01  V-RPAREN                PICTURE S9(05) COMP VALUE 85.
006620 01  V-RPTDATE               PICTURE S9(05) COMP VALUE 70.
006640 01  V-RPTDATEON             PICTURE S9(05) COMP VALUE 38.
006660 01  V-RPTDATEOFF            PICTURE S9(05) COMP VALUE 39.
006680 01  V-RPTHEAD               PICTURE S9(05) COMP VALUE 24.
006700 01  V-RPTHEADON             PICTURE S9(05) COMP VALUE 28.
006720 01  V-RPTHEADOFF            PICTURE S9(05) COMP VALUE 29.
006722 01  V-RUN-UNIT              PICTURE S9(05) COMP VALUE -23.
006740 01  V-SCHEMA                PICTURE S9(05) COMP VALUE 00.
006760 01  V-SET                   PICTURE S9(05) COMP VALUE 42.
006780 01  V-SLASHES               PICTURE S9(05) COMP VALUE 90902.
006800 01  V-SORT                  PICTURE S9(05) COMP VALUE 12.
006820 01  V-STACK                 PICTURE S9(05) COMP VALUE 05.
006840 01  V-STATEMENT-NO          PICTURE S9(05) COMP VALUE 03.
006860 01  V-STITLES               PICTURE S9(05) COMP VALUE 00.
006880 01  V-STOP                  PICTURE S9(05) COMP VALUE 1.
006900 01  V-SUB-SCHEMA            PICTURE S9(05) COMP VALUE 00.
006920 01  V-SUBTRACT              PICTURE S9(05) COMP VALUE 02.
006940 01  V-SUMMARY               PICTURE S9(05) COMP VALUE 32.
006960 01  V-SUMMARYON             PICTURE S9(05) COMP VALUE 32.
006980 01  V-SUMMARYOFF            PICTURE S9(05) COMP VALUE 33.
007000 01  V-SUPPRESSALL           PICTURE S9(05) COMP VALUE -117.
007020 01  V-SUPPRESSAREA          PICTURE S9(05) COMP VALUE -118.
007040 01  V-SUPPRESSRECORD        PICTURE S9(05) COMP VALUE -119.
007060 01  V-SUPPRESSSET           PICTURE S9(05) COMP VALUE -120.
007080 01  V-TALLY                 PICTURE S9(05) COMP VALUE 47.
007100 01  V-THAN                  PICTURE S9(05) COMP VALUE 00.
007120 01  V-THEN                  PICTURE S9(05) COMP VALUE 60.
007140 01  V-THRU                  PICTURE S9(05) COMP VALUE 06.
007160 01  V-TITLES                PICTURE S9(05) COMP VALUE 79.
007180 01  V-TITLESON              PICTURE S9(05) COMP VALUE 30.
007200 01  V-TITLESOFF             PICTURE S9(05) COMP VALUE 31.
007220 01  V-TO                    PICTURE S9(05) COMP VALUE 42.
007240 01  V-TOTAL                 PICTURE S9(05) COMP VALUE 48.
007260 01  V-VERB-CONTROL          PICTURE S9(05) COMP VALUE 04.
007280 01  V-VSPACE                PICTURE S9(05) COMP VALUE 19.
007300 01  V-WIDTH                 PICTURE S9(05) COMP VALUE 21.
007320 01  WARNING-ERROR           PICTURE S9(05) COMP VALUE 170.
007340 01  X-MAX                   PICTURE S9(05) COMP VALUE 3000.
007360 01  X-START                 PICTURE S9(05) COMP VALUE 24.
007380 01  XX                      PICTURE S9(05) COMP.
007400 01  ZERO-DX                 PICTURE S9(05) COMP VALUE 00.
007420 01  CALLED-NAME             PICTURE X(06) VALUE 'IQE   '.
007440 01  QCSTMTTMP.
007460     05  QCSTMT-PREFIX       PICTURE X(02) VALUE 'QC'.
007480     05  QC-STMT-NO          PICTURE 999 VALUE 001.
007500     05  FILLER              PICTURE X(04) VALUE 'STMP'.
007520 01  QTANLZTMP.
007540     05  FILLER              PICTURE X(02) VALUE 'QT'.
007560     05  QT-ANAL-NO          PICTURE 999 VALUE 001.
007580     05  QT-ANLZ-EXT         PICTURE X(04) VALUE 'ATMP'.
007600 01  QTNNNITMP.
007620     05  QRY-NAME            PICTURE X(09) VALUE SPACE.
007640     05  FLAG-DUMP           PICTURE S9(01) VALUE 0.
007660     05  FLAG-EXECUTE        PICTURE S9(01) VALUE 1.
007680     05  FLAG-SAVE           PICTURE S9(01) VALUE 0.
007700     05  FLAG-LIST           PICTURE S9(01) VALUE 1.
007720     05  FILLER              PICTURE X(69) VALUE SPACE.
007722     05  FILLER              PICTURE X     VALUE SPACE.
007724     05  FLAG-TMP-INPUT      PICTURE S9(01) VALUE 0.
007740 01  FD-AREA.
007760     02  FD-IDNT             PICTURE XX.
007780     02  FD-NAME             PICTURE X(30).
007800     02  FD-NDICTS           PICTURE 9(03).
007820     02  FD-DBMS-INFO.
007840         04  FD-DBMS-LABEL   PICTURE X(30).
007860         04  FILLER          PICTURE X(06).
007880     02  FILLER REDEFINES FD-DBMS-INFO.
007900         04  FD-INLABEL      PICTURE X(09).
007920         04  FD-LABEL REDEFINES FD-INLABEL.
007940             06  FD-INFILE   PICTURE X(06).
007960             06  FD-INEXT    PICTURE X(03).
007980         04  FILLER          PICTURE X(08).
008000         04  FD-PPN          PICTURE X(19).
008020     02  FD-FILETYPE         PICTURE 9.
008040     02  FD-RECSIZE          PICTURE 9(04).
008060     02  FD-BLKSIZE          PICTURE S9(04).
008080     02  FD-KEYPOS           PICTURE 9(4).
008100     02  FD-KEYLEN           PICTURE 9(3).
008120     02  FD-KEYTYPE          PICTURE 9.
008140     02  FD-KEYSIGN          PICTURE 9.
008160     02  FD-PROTECT          PICTURE X(01).
008180     02  FD-READ-PROTECT     PICTURE XX.
008200     02  FD-COPY-PROTECT     PICTURE XX.
008220     02  FD-REWRITE-PROTECT  PICTURE XX.
008240     02  FILLER              PICTURE X(48).
008260     02  FD-LAST-UPDATE      PICTURE X(06).
008280 01  FE-AREA.
008300     02  FE-IDNT             PICTURE X(02).
008320     02  FE-NAME             PICTURE X(30).
008340     02  FE-FILESPEC         PICTURE X(68).
008360     02  FE-FILETYPE         PICTURE X(01).
008380     02  FE-RECSIZE          PICTURE 9(04).
008400     02  FE-BLKSIZE          PICTURE S9(04).
008420     02  FE-KEYPOS           PICTURE 9(04).
008440     02  FE-KEYLEN           PICTURE 9(03).
008460     02  FE-KEYTYPE          PICTURE 9(01).
008480     02  FE-KEYSIGN          PICTURE 9(01).
008500     02  FE-PROTECT          PICTURE X(01).
008520     02  FE-PROTECT-READ     PICTURE X(02).
008540     02  FE-PROTECT-COPY     PICTURE X(02).
008560     02  FE-PROTECT-REWRITE  PICTURE X(02).
008580     02  FILLER              PICTURE X(19).
008600     02  FE-LAST-UPDATE      PICTURE X(06).
008620 01  DD-AREA.
008640     02  DD-IDNT             PICTURE XX.
008660     02  DD-NAME.
008680         04  DD-NAMEX PICTURE X(01) OCCURS 30 INDEXED BY DD.
008700     02  DD-TITLE1           PICTURE X(10).
008720     02  DD-TITLE2             PICTURE X(10).
008740     02  DD-TCHAR            PICTURE 99.
008760     02  DD-ECHAR             PICTURE 9(4).
008780     02  DD-FCHAR              PICTURE 9(4).
008800     02  DD-NCHAR              PICTURE 9(4).
008820     02  DD-TYPEV              PICTURE 9.
008840     02  DD-SCALE              PICTURE 9.
008860     02  DD-OFFSET             PICTURE 9.
008880     02  DD-EDITX              PICTURE 99.
008900     02  DD-PICT               PICTURE X(19).
008920     02  DD-GRPLEN           PICTURE 999.
008940     02  DD-GRPNAME          PICTURE X.
008960     02  DD-NREPEATS           PICTURE S99.
008980     02  DD-STOPV            PICTURE X.
009000     02  DD-REF-NO             PICTURE 99.
009020     02  DD-PROTEXCL           PICTURE 9.
009040     02  DD-RECTYPE            PICTURE XXX.
009060     02  FILLER              PICTURE X(47).
009080 01  HOLD-FD-NAME            PICTURE X(30) VALUE SPACE.
009100 01  PD-AREA.
009120     02  PD-IDNT             PICTURE XX.
009140     02  PD-REF-NO           PICTURE 99.
009160     02  PD-DATE-FLAG        PICTURE X.
009180     02  PD-LINE             PICTURE X.
009200     02  PD-TEXT.
009220         04  PD-CHAR         PICTURE X OCCURS 12 TIMES.
009240     02  FILLER              PICTURE X(132).
009260 01  RD-AREA.
009280     02  RD-IDNT             PICTURE XX.
009300     02  RD-NAME             PICTURE X(30).
009320     02  RD-ORIGIN           PICTURE 9(4).
009340     02  RD-LENGTH           PICTURE 9(4).
009360     02  RD-RECNO               PICTURE 9(3).
009380     02  FILLER              PICTURE X(107).
009400 01  AD-AREA REDEFINES RD-AREA.
009420     02  AD-IDNT             PICTURE XX.
009440     02  AD-NAME             PICTURE X(30).
009460     02  AD-ORIGIN           PICTURE 9(4).
009480     02  AD-LENGTH           PICTURE 9(4).
009500     02  AD-AREA-NO          PICTURE 9(3).
009520     02  FILLER              PICTURE X(107).
009540 01  SD-AREA REDEFINES AD-AREA.
009560     02  SD-IDNT             PICTURE XX.
009580     02  SD-NAME             PICTURE X(30).
009600     02  SD-ORIGIN           PICTURE 9(4).
009620     02  SD-LENGTH           PICTURE 9(4).
009640     02  SD-OWNER-REC-NO     PICTURE 9(3).
009660     02  FILLER              PICTURE X(107).
009680 01  FX-AREAS.
009700     02  FX-PRIMARY          PICTURE S9(05) COMP VALUE 1.
009720     02  PRIMARY-ORIGIN      PICTURE S9(05) COMP VALUE -1.
009740     02  PRIMARY-LENGTH      PICTURE S9(05) COMP VALUE 0.
009760     02  FX-SECONDARY        PICTURE S9(05) COMP VALUE 1.
009780     02  SECONDARY-ORIGIN     PICTURE S9(05) COMP VALUE -1.
009800     02  SECONDARY-LENGTH    PICTURE S9(05) COMP VALUE 0.
009820     02  FX-TERTIARY         PICTURE S9(05) COMP VALUE 1.
009840     02  TERTIARY-ORIGIN     PICTURE S9(05) COMP VALUE -1.
009860     02  TERTIARY-LENGTH      PICTURE S9(05) COMP VALUE 0.
009880     02  COPY-FX             PICTURE S9(05) COMP VALUE 1.
009900     02  COPY-ORIGIN         PICTURE S9(05) COMP VALUE -1.
009920     02  COPY-LENGTH         PICTURE S9(05) COMP VALUE 0.
009940     02  CREATE-FX           PICTURE S9(05) COMP VALUE 1.
009960     02  CREATE-ORIGIN       PICTURE S9(05) COMP VALUE -1.
009980     02  CREATE-LENGTH       PICTURE S9(05) COMP VALUE 0.
010000 01  REPORT-R-AREA.
010020     02  TYPE-REPORT         PICTURE S9(10) COMP VALUE 19.
010040     02  R-RPT-NO            PICTURE S9(10) COMP VALUE 1.
010060     02  R-PAGE-NO           PICTURE S9(10) COMP VALUE 0.
010080     02  R-LINE-NO           PICTURE S9(10) COMP VALUE 0.
010100     02  R-ACROSS-NO         PICTURE S9(10) COMP VALUE 1.
010120     02  R-RPTDATE           PICTURE S9(10) COMP VALUE -1.
010140     02  R-LAST-PRINTX       PICTURE S9(10) COMP VALUE 0.
010160     02  R-RPTHEADX          PICTURE S9(10) COMP VALUE 3.
010180     02  R-LAST-PRINTYPE     PICTURE S9(10) COMP VALUE 0.
010200     02  FILLER              PICTURE X(36) VALUE SPACE.
010220 01  TODAY-AREA.
010240     02  TYPE-TODAY          PICTURE S9(05) COMP VALUE 16.
010260     02  TO-NCHAR            PICTURE S9(05) COMP VALUE 06.
010280     02  TO-SCALE            PICTURE S9(05) COMP VALUE 00.
010300     02  TO-ECHAR            PICTURE S9(05) COMP VALUE 08.
010320     02  TO-TCHAR            PICTURE S9(05) COMP VALUE 05.
010340     02  TO-FCHAR            PICTURE S9(05) COMP VALUE 01.
010360     02  TO-NREPEATS         PICTURE S9(05) COMP VALUE 01.
010380     02  TO-GRPLEN           PICTURE S9(10) COMP.
010400     02  TO-TITLE1           PICTURE X(10) VALUE SPACE.
010420     02  TO-TITLE2           PICTURE X(10) VALUE 'TODAY'.
010440     02  TO-PICT             PICTURE X(20) VALUE '99/99/99'.
010460     02  TO-GRPNAME          PICTURE X(01) VALUE SPACE.
010480     02  TO-STOPV            PICTURE X(01) VALUE '1'.
010482 01  ERROR-STATUS-AREA.
010484     02  TYPE-ERROR-STATUS     PIC S9(10) COMP VALUE 24.
010486     02  ER-NCHAR			PIC S9(10) COMP VALUE 10.
010488     02  ER-SCALE     PIC S9(10) COMP VALUE 0.
010490     02  ER-ECHAR			PIC S9(10) COMP VALUE 10.
010492     02  ER-TCHAR			PIC S9(10) COMP VALUE 6.
010494     02  ER-FCHAR			PIC S9(10) COMP VALUE 1.
010496     02  ER-NREPEATS		PIC S9(10) COMP VALUE 1.
010498     02  ER-GRPLEN		PIC S9(10) COMP VALUE 0.
010500     02  ER-TITLE1		PIC X(10) VALUE 'ERROR'.
010502     02  ER-TITLE2		PIC X(10) VALUE 'STATUS'.
010504     02  ER-PICT			PIC X(20) VALUE 'ZZZZZZZZZ9'.
010506     02  ER-GRPNAME		PIC X(1) VALUE SPACE.
010508     02  ER-STOPV			PIC X(1) VALUE SPACE.
010500 01  XRANDOM-AREA.
010520     02  TYPE-XRANDOM         PICTURE S9(05) COMP VALUE 11.
010540     02  XR-NCHAR            PICTURE S9(05) COMP VALUE 10.
010560     02  XR-SCALE            PICTURE S9(05) COMP VALUE 00.
010580     02  XR-ECHAR            PICTURE S9(05) COMP VALUE 10.
010600     02  XR-TCHAR            PICTURE S9(06) COMP VALUE 06.
010620     02  XR-FCHAR            PICTURE S9(05) COMP VALUE 01.
010640     02  XR-NREPEATS         PICTURE S9(05) COMP VALUE 01.
010660     02  XR-GRPLEN           PICTURE S9(05) COMP.
010680     02  XR-TITLE1           PICTURE X(10) VALUE 'RANDOM'.
010700     02  XR-TITLE2           PICTURE X(10) VALUE 'NUMBER'.
010720     02  XR-PICT             PICTURE X(20) VALUE '9999999999'.
010740     02  XR-GRPNAME          PICTURE X(01) VALUE SPACE.
010741     02  XR-STOPV            PICTURE X(01) VALUE '1'.
010742 01  AREA-IDENT-AREA.
010743     02  TYPE-AREA-IDENT      PICTURE S9(10) COMP VALUE 36.
010744     02  AI-NCHAR            PICTURE S9(10) COMP VALUE 30.
010745     02  AI-SCALE            PICTURE S9(10) COMP VALUE 0.
010746     02  AI-ECHAR            PICTURE S9(10) COMP VALUE 30.
010747     02  AI-TCHAR            PICTURE S9(10) COMP VALUE 10.
010748     02  AI-FCHAR            PICTURE S9(10) COMP VALUE 0.
010749     02  AI-REPEATS          PICTURE S9(10) COMP VALUE 1.
010750     02  AI-GRPLEN           PICTURE S9(10) COMP VALUE 0.
010751     02  AI-TITLE1           PICTURE X(10) VALUE 'AREA'.
010752     02  AI-TITLE2           PICTURE X(10) VALUE 'IDENTIFIER'.
010753     02  AI-PICT             PICTURE X(20) VALUE SPACES.
010754     02  AI-FILLER1          PICTURE X(2).
010762 01  AREA-NAME-AREA.
010763     02  TYPE-AREA-NAME      PICTURE S9(10) COMP VALUE 34.
010764     02  AN-NCHAR            PICTURE S9(10) COMP VALUE 30.
010765     02  AN-SCALE            PICTURE S9(10) COMP VALUE 0.
010766     02  AN-ECHAR            PICTURE S9(10) COMP VALUE 30.
010767     02  AN-TCHAR            PICTURE S9(10) COMP VALUE 4.
010768     02  AN-FCHAR            PICTURE S9(10) COMP VALUE 0.
010769     02  AN-REPEATS          PICTURE S9(10) COMP VALUE 1.
010770     02  AN-GRPLEN           PICTURE S9(10) COMP VALUE 0.
010771     02  AN-TITLE1           PICTURE X(10) VALUE 'AREA'.
010772     02  AN-TITLE2           PICTURE X(10) VALUE 'NAME'.
010773     02  AN-PICT             PICTURE X(20) VALUE SPACES.
010774     02  AN-FILLER1          PICTURE X(2).
010775 01  CURRENT-RECORD-KEY-AREA.
010776     02  TYPE-CURR-REC-KEY   PICTURE S9(10) COMP VALUE 32.
010777     02  CK-NCHAR            PICTURE S9(10) COMP VALUE 10.
010778     02  CK-SCALE            PICTURE S9(10) COMP VALUE 0.
010779     02  CK-ECHAR            PICTURE S9(10) COMP VALUE 10.
010780     02  CK-TCHAR            PICTURE S9(10) COMP VALUE 10.
010781     02  CK-FCHAR            PICTURE S9(10) COMP VALUE 0.
010782     02  CK-REPEATS          PICTURE S9(10) COMP VALUE 1.
010783     02  CK-GRPLEN           PICTURE S9(10) COMP VALUE 0.
010784     02  CK-TITLE1           PICTURE X(10) VALUE 'CURRENT'.
010785     02  CK-TITLE2           PICTURE X(10) VALUE 'RECORD KEY'.
010786     02  CK-PICT             PICTURE X(20) VALUE 'ZZZZZZZZZ9'.
010787     02  CK-FILLER1          PICTURE XX.
010790 01  RECORD-NAME-AREA.
010791     02  TYPE-RECORD-NAME    PICTURE S9(10) COMP VALUE 33.
010792     02  RN-NCHAR            PICTURE S9(10) COMP VALUE 30.
010793     02  RN-SCALE            PICTURE S9(10) COMP VALUE 0.
010794     02  RN-ECHAR            PICTURE S9(10) COMP VALUE 30.
010795     02  RN-TCHAR            PICTURE S9(10) COMP VALUE 6.
010796     02  RN-FCHAR            PICTURE S9(10) COMP VALUE 0.
010797     02  RN-REPEATS          PICTURE S9(10) COMP VALUE 1.
010798     02  RN-FILLER           PICTURE S9(10) COMP VALUE 0.
010799     02  RN-TITLE1           PICTURE X(10) VALUE 'RECORD'.
010800     02  RN-TITLE2           PICTURE X(10) VALUE 'NAME'.
010801     02  RN-PICT             PICTURE X(20) VALUE SPACES.
010802     02  RN-FILLER1          PICTURE XX.
010803 01  ERROR-COUNT-AREA.
010804        02  TYPE-ERROR-COUNT PIC S9(10) COMP  VALUE 35.
010805        02  EC-NCHAR         PIC S9(10) COMP  VALUE 10.
010806        02  EC-SCALE         PIC S9(10) COMP  VALUE 0.
010807        02  EC-ECHAR         PIC S9(10) COMP  VALUE 10.
010808        02  EC-TCHAR         PIC S9(10) COMP  VALUE 5.
010809        02  EC-FCHAR         PIC S9(10) COMP  VALUE 0.
010810        02  EC-REPEATS       PIC S9(10) COMP  VALUE 1.
010811        02  EC-GRPLEN        PIC S9(10) COMP  VALUE 0.
010812        02  EC-TITLE1        PIC X(10) VALUE "ERROR".
010813        02  EC-TITLE2        PIC X(10) VALUE "COUNT".
010814        02  EC-PICT          PIC X(20) VALUE "ZZZZZZZZZ9".
010815        02  EC-FILLER1       PIC X(02).
010816 01  PPN-TABLE.
010817     05  PPN-WORK            PICTURE X(19) VALUE SPACE.
010820     05  FILLER REDEFINES PPN-WORK.
010840       10  PPN-ID            PICTURE S9(10) COMP.
010860       10  FILLER            PICTURE X(13).
010880     05  PPN-CHAR REDEFINES PPN-WORK PICTURE X OCCURS 19
010900         INDEXED BY PX.
010920     05  PPN-NUM REDEFINES PPN-CHAR PICTURE 9 OCCURS 19
010940         INDEXED BY PN.
010960     05  PPN-NUMBER          PICTURE 9(6) VALUE ZEROS.
010980     05  PPN-DIGIT REDEFINES PPN-NUMBER PICTURE 9 OCCURS 6
011000         INDEXED BY PI.
011002 01  HIDDEN-ASCII       PIC S9(10) COMP VALUE 29691190.
011004 01  FILLER REDEFINES HIDDEN-ASCII DISPLAY-7.
011006     02  ASCII-NULL        PIC X.
011008     02  ASCII-BELL        PIC X.
011010     02  ASCII-LF          PIC X.
011012     02  ASCII-CR          PIC X.
011014     02  ASCII-ESC         PIC X.
011016 01  MASK1-7 DISPLAY-7.
011018     02  MASK1-6.
011020         04  MASK1         PIC X.
011022         04  FILLER        PIC XXXXX.
011024     02  MASK7             PIC X.
011026 01  RETURNED-PASSWORD       PIC XXXXXX.
011028
011030 01  PW-WORKER USAGE IS DISPLAY-6.
011040     02  PW-CHAR             PICTURE X OCCURS 12 TIMES.
011060 01  PW-WORK REDEFINES PW-WORKER.
011080     02  PW-WORK1            PICTURE S9(10) COMP.
011100     02  PW-WORK2            PICTURE S9(10) COMP.
011120 01  PW-MASK1                PICTURE S9(10) COMP VALUE 14729163.
011140 01  PW-MASK2                PICTURE S9(10) COMP VALUE -24815212.
011160 01  PW-WORKER7.
011180     02  PW7-CHAR            PICTURE X OCCURS 6 TIMES.
011200 01  FILE-PROTECT-TABLE.
011220     02 FD-PROT              PICTURE X  OCCURS 3 TIMES.
011240     02 FD-RPROT             PICTURE XX OCCURS 3 TIMES.
011260     02 FD-CPROT             PICTURE XX OCCURS 3 TIMES.
011280     02 FD-REWPROT           PICTURE XX OCCURS 3 TIMES.
011300     02 FD-NAMEPROT          PICTURE X(30) OCCURS 3 TIMES.
011320 01  LINE-TABLE.
011340     05  LINEX PICTURE X OCCURS 90 TIMES INDEXED BY L.
011360     05  LINE-WORD REDEFINES LINEX PICTURE S9(10) COMP
011380                         OCCURS 15 TIMES INDEXED BY LI.
011400 01  PARSING-STACK.
011420     02 PARSING-TABLE OCCURS 10 TIMES INDEXED BY OPX.
011440        04 OPERATOR             PICTURE S9(10) COMP.
011460        04 OPERAND              PICTURE S9(10) COMP.
011480        04 PRECEDENCE           PICTURE S9(10) COMP.
011482 01  PROMPTER-MESSAGE.
011484     02 FILLER                  PICTURE X(35)
011486        VALUE '*ADDITIONAL PASSWORD(S) NEEDED FOR '.
011488     02 ITEM-OR-FILE            PICTURE X(11).
011490     02 FILLER                  PICTURE X(26)
011492        VALUE '. ENTER SPACE TO END LIST.'.
011500 01  HELD-WORD30.
011520     02  FILLER              PICTURE X(05) VALUE 'HELD-'.
011540     02  HWORD30             PICTURE X(25) VALUE SPACE.
011560 01  WORD-TABLE.
011580     02  WORDX PICTURE X OCCURS 30 TIMES INDEXED BY W.
011600     02  WORD30 REDEFINES WORDX.
011620       04  WORD18.
011640         06  WORD12.
011660           08  WORD06.
011680             10  WORD04.
011700               12  WORD02.
011720                 14  WORD01  PICTURE X(01).
011740                 14  FILLER  PICTURE X(01).
011760               12  FILLER    PICTURE X(02).
011780             10  FILLER      PICTURE X(02).
011800           08  FILLER        PICTURE X(06).
011820         06  FILLER          PICTURE X(06).
011840       04  WORD30-STNUMB     PICTURE 99.
011860       04  FILLER            PICTURE X(10).
011864 01  filler  redefines word-table.
011866     02  filler              picture x(9).
011868     02  word30-fatal-part   picture x(21).
011880 01                          PICTURE-TABLE REDEFINES WORD-TABLE.
011900     05  PICTX PICTURE X OCCURS 30 TIMES INDEXED BY P.
011920 01  NUMBER-TABLE.
011940     05  NUMBX PICTURE X OCCURS 18 TIMES INDEXED BY N.
011960     05  NUMBN REDEFINES NUMBX PICTURE S9(18).
011980     05  NUMBREDEF REDEFINES NUMBN.
012000         10  FILLER          PICTURE X(08).
012020         10  NUMBN10         PICTURE S9(10).
012040 01  QUOTE-TABLE.
012060     05  QUOTEX PICTURE X OCCURS 72 TIMES INDEXED BY Q.
012080     05  QUOTERS REDEFINES QUOTEX.
012100         10  QUOTEN          PICTURE S9(10) COMP OCCURS 12 TIMES.
012120 01  REMAINER                PICTURE S9(04)V99 VALUE ZEROS.
012140 01  R4VR1R2 REDEFINES REMAINER.
012160     02  R4                  PICTURE 9(04).
012180     02  R1                  PICTURE 9.
012200     02  R2                  PICTURE 9.
012220 01  TITLE-TABLE.
012240     05  TITLEX PICTURE X OCCURS 24 TIMES INDEXED BY T.
012260     05  TITLES REDEFINES TITLEX.
012280         10  TITLE1X         PICTURE X(10).
012300         10  TITLE2X         PICTURE X(10).
012320         10  FILLER          PICTURE X(04).
012322 01  HINT-WORD DISPLAY-7.
012322     02 FILLER                PICTURE XX VALUE '% '.
012324     02 HINT-WORD30           PICTURE X(30).
012330 01  WARNING-MESSAGE-HINT DISPLAY-7.
012332     02  FILLER              PICTURE X(09) VALUE '*WARNING-'.
012334     02  WARNING-DATANAME1   PICTURE X(11).
012336     02  WARNING-DATANAME2   PICTURE X(10).
012340 01  IQANLZ-ERROR DISPLAY-7.
012360*    02 E1                   PICTURE X(04) VALUE '%IQA'.
012380*    02 FATAL-WARNING        PICTURE X(08) VALUE 'Deadly  '.
012400*    02 DCODE                PICTURE 999 VALUE 000.
012420     02 FILLER               PICTURE X(01) VALUE SPACE.
012440     02 E-MSG                PICTURE X(30) VALUE SPACE.
012460*    02 E2                   PICTURE X(03) VALUE '%  '.
012480 01  ERR-MSGS DISPLAY-7.
012500     05  FILLER1  PICTURE X(30) VALUE 'not defined'.
012520     05  FILLER2  PICTURE X(30) VALUE 'not numeric'.
012540     05  FILLER3  PICTURE X(30) VALUE 'not alphabetic'.
012560     05  FILLER4  PICTURE X(30) VALUE 'statement expected'.
012580     05  FILLER5  PICTURE X(30) 
012582                  VALUE 'encountered when verb expected'.
012600     05  FILLER6  PICTURE X(30) 
012602                  VALUE 'found when non-verb expected'.
012620     05  FILLER7  PICTURE X(30) VALUE 'invalid character'.
012640     05  FILLER8  PICTURE X(30) VALUE 'value beyond range'.
012660     05  FILLER9  PICTURE X(30) VALUE 'file not found'.
012680     05  FILLER10 PICTURE X(30) VALUE 'too many right paren'.
012700     05  FILLER11 PICTURE X(30) VALUE 'no ending quote'.
012720     05  FILLER12 PICTURE X(30) VALUE 'query size exceeded'.
012740     05  FILLER13 PICTURE X(30) VALUE 'invalid item type'.
012760     05  FILLER14 PICTURE X(30)
012780                  VALUE 'invalid/missing password for'.
012800     05  FILLER15 PICTURE X(30) VALUE 'literal expected'.
012820     05  FILLER16 PICTURE X(30) VALUE 'literal max exceeded'.
012840     05  FILLER17 PICTURE X(30) VALUE 'no ending paren'.
012860     05  FILLER18 PICTURE X(30) VALUE 'ISAM file required'.
012880     05  FILLER19 PICTURE X(30) VALUE 'hold buffer full'.
012900     05  FILLER20 PICTURE X(30) VALUE 'invalid operation'.
012920     05  FILLER21 PICTURE X(30) VALUE 'invalid picture'.
012940     05  FILLER22 PICTURE X(30) 
012942                  VALUE 'CORRECT ANY ERRORS AND RE-TRY'.
012960     05  FILLER23 PICTURE X(30) VALUE 'variable used once'.
012980     05  FILLER24 PICTURE X(30) VALUE 'query not terminated'.
013000     05  FILLER25 PICTURE X(30) VALUE 'operator expected'.
013020     05  FILLER26 PICTURE X(30) VALUE 'operand expected'.
013040     05  FILLER27 PICTURE X(30) VALUE '= incorrectly used'.
013060     05  FILLER28 PICTURE X(30) VALUE '= must be first operator '.
013080     05  FILLER29 PICTURE X(30)
013100                  VALUE 'invalid relational operator'.
013120     05  FILLER30 PICTURE X(30) VALUE 'verb use limit is 1'.
013140     05  FILLER31 PICTURE X(30) VALUE 'word max 30 chars'.
013160     05  FILLER32 PICTURE X(30) VALUE 'invalid DEV:FILE.EXT'.
013180     05  FILLER33 PICTURE X(30) VALUE 'invalid ( = ZZITEM )'.
013200     05  FILLER34 PICTURE X(30)
013220                  VALUE 'num var names begin with X'.
013240     05  FILLER35 PICTURE X(30)
013260                  VALUE 'undefined data name or else an'.
013280     05  FILLER36 PICTURE X(30)
013300                  VALUE 'alpha var spelled incorrectly'.
013320     05  FILLER37 PICTURE X(30)
013340                 VALUE 'dictionary not found for file'.
013360     05  FILLER38 PICTURE X(30)
013380                  VALUE 'OPEN statement duplicate names'.
013400     05  FILLER39 PICTURE X(30)
013420                  VALUE 'IF statemnt has no verb phrase'.
013440     05  FILLER40 PICTURE X(30)
013460                  VALUE 'file name incorrectly used'.
013480     05  FILLER41 PICTURE X(30)
013500                  VALUE 'no CREATE items designated or'.
013520     05  FILLER42 PICTURE X(30)
013540                  VALUE 'possibly filename not quoted.'.
013542     05  FILLER43 PICTURE X(30)
013544                  VALUE 'incorrectly used vocab word'.
013546     05  FILLER44 PICTURE X(30)
013548                  VALUE 'can take no qualification'.
013550     05  FILLER45 PICTURE X(30) VALUE 'lack detail info dm item'.
013552     05  FILLER46 PICTURE X(30)
013554                  VALUE 'NO DATA ITEM DESIGNATED'.
013555     05  FILLER47 PICTURE X(30)
013556                  VALUE 'DBMS queries need a FIND verb'.
013558     05  filler48 picture x(30) value 'incorrectly specified'.
013560     05  filler49 picture x(30) 
013562                  value 'FIND statement incomplete'.
013564     05  filler50 picture x(30)
013566                  value 'are possible missing word(s)'.
013567     05  FILLER51 PICTURE X(30) 
013568                  VALUE 'no file opened for sort'.
013570     05  FILLER52 PICTURE X(30)
013572                  VALUE '"FIND" verb on a primary file'.
013573     05  FILLER53 PICTURE X(30)
013574                  VALUE 'Nested "IF"s not allowed'.
013575     05  FILLER54 PICTURE X(30)
013576                  VALUE '-NOT A NUMERIC COMPUTE OPERAND'.
013577     05  FILLER55 PICTURE X(30) VALUE 'NOT NUMERIC OPERAND'.
013578     05  filler56 picture x(30)
013579                  value '"else" should not follow "."'.
013580     05  filler57 picture x(30) 
013581                  value 'preceed literal with space'.
013582 01  ERR-MSGR REDEFINES ERR-MSGS DISPLAY-7.
013583     05  ERR-MSG             PICTURE X(30) OCCURS 57 TIMES.
013584 01  MAX-ERR-MSG             PICTURE S9(10) COMP VALUE 57.
013600 01  TRUE-STACK.
013620     02  N-TRUEGO            PICTURE S9(05) COMP VALUE 0.
013640     02  X-TRUEGO            PICTURE S9(05) COMP
013660                             OCCURS 9 INDEXED BY TSX.
013680 01  FALSE-STACK.
013700     02  N-FALSEGO           PICTURE S9(05) COMP VALUE 0.
013720     02  X-FALSEGO           PICTURE S9(05) COMP
013740                             OCCURS 9 INDEXED BY FSX.
013760 01  NESTED-PAREN-TABLE.
013780     02 LPARENCNTR           PICTURE S9(05) COMP VALUE 00.
013800     02 RPARENCNTR           PICTURE S9(05) COMP VALUE 00.
013820     02 TLPX                 PICTURE S9(05) COMP VALUE 0.
013840     02 FLPX                 PICTURE S9(05) COMP VALUE 0.
013860     02 LPAREN-STACK.
013880        03 TRUE-LPAREN       PICTURE S9(05) COMP OCCURS 9.
013900        03 FALSE-LPAREN      PICTURE S9(05) COMP OCCURS 9.
013920 01  NOTT                    PICTURE S9 COMP OCCURS 9.
013940*****TABLES PASSED TO EXECUTION MODULE FOLLOW************
013960
013980 01  CONTROL-TABLE.
014000*   *VALUES BELOW ARE DEFAULTS WHICH SHOULD BE PASSED IF
014020*    QUERY DOES NOT AFFECT THAT QUANTITY*.
014040*   *1ST ENTRY WILL STOP RUN IF EVER GET THERE*.
014060*   *2ND & 3RD ENTRIES ARE DEFAULT RPTHEAD DX LIST.
014080     02  CONST1              PICTURE S9(10) COMP VALUE 1.
014100     02  FILLER              PICTURE S9(10) COMP VALUE 1.
014120     02  CONST0              PICTURE S9(10) COMP VALUE 0.
014140     02  DYN-JOBNO           PICTURE S9(10) COMP VALUE 1.
014160     02  EXEC-STARTX         PICTURE S9(10) COMP VALUE 24.
014180     02  EOF1-X              PICTURE S9(10) COMP VALUE 1.
014200     02  ACROSS-CONTROL      PICTURE S9(10) COMP VALUE 1.
014220     02  DISPLAY-FLAG        PICTURE S9(10) COMP VALUE 1.
014240     02  HEADING-FLAG        PICTURE S9(10) COMP VALUE 1.
014260     02  PAGING-FLAG         PICTURE S9(10) COMP VALUE 1.
014280     02  PRINT-FLAG          PICTURE S9(10) COMP VALUE 1.
014300     02  SUMPRINT-FLAG       PICTURE S9(10) COMP VALUE 1.
014320     02  TITLES-FLAG         PICTURE S9(10) COMP VALUE 1.
014340     02  PAGE-LINES          PICTURE S9(10) COMP VALUE 66.
014360     02  PRINT-LINES         PICTURE S9(10) COMP VALUE 57.
014380     02  REPORT-DX           PICTURE S9(10) COMP VALUE 1.
014400     02  NUMB-REPORTS        PICTURE S9(10) COMP VALUE 1.
014420     02  HSPACE              PICTURE S9(10) COMP VALUE 3.
014440     02  VSPACE              PICTURE S9(10) COMP VALUE 1.
014460     02  LMARGIN             PICTURE S9(10) COMP VALUE 1.
014480     02  RMARGIN             PICTURE S9(10) COMP VALUE 72.
014500     02  SUMBREAK-FLAG       PICTURE S9(10) COMP VALUE 0.
014520     02  FILLER              PICTURE S9(10) COMP OCCURS 2978.
014540
014560 01  INSTR-TABLE REDEFINES CONTROL-TABLE.
014580     02  INSTR               PICTURE S9(10) COMP
014600                             OCCURS 3000 INDEXED BY X.
014620
014640 01  FILE-TABLE REDEFINES INSTR-TABLE.
014660     02  F-ENTRY OCCURS 200 INDEXED BY FX.
014680         04  F-TYPEV         PICTURE S9(10) COMP.
014700         04  F-RECLEN        PICTURE S9(10) COMP.
014720         04  F-BLKLEN        PICTURE S9(10) COMP.
014740         04  F-ORIGIN        PICTURE S9(10) COMP.
014760         04  F-KEYLOC        PICTURE S9(10) COMP.
014780         04  F-KEYLEN        PICTURE S9(10) COMP.
014800         04  F-KEYTYPE       PICTURE S9(10) COMP.
014820         04  F-KEYSIGN       PICTURE S9(10) COMP.
014840         04  F-PPN           PICTURE S9(10) COMP.
014860         04  F-ID            PICTURE X(29).
014870         04  F-OPENIO        PICTURE X.
014880         04  F-DEVICE        PICTURE X(6).
014900 01  DATA-BASE-TABLE REDEFINES FILE-TABLE.
014920     02  DB-ENTRY OCCURS 200 TIMES INDEXED BY BX.
014940         04  B-TYPEV         PICTURE S9(10) COMP.
014960         04  FILLER          PICTURE X(18).
014980         04  B-SUBSCHEMA     PICTURE X(30).
015000         04  B-SCHEMA        PICTURE X(30).
015020         04  B-PASSWORD      PICTURE X(06).
015040 01  RD-AD-SD-TABLE REDEFINES DATA-BASE-TABLE.
015060     02  R-ENTRY OCCURS 200 TIMES INDEXED BY RX.
015080         04  R-TYPEV         PICTURE S9(10) COMP.
015100         04  R-NCHAR         PICTURE S9(10) COMP.
015120         04  R-SCALE         PICTURE S9(10) COMP.
015140         04  FILLER          PICTURE X(12).
015160         04  R-FCHAR         PICTURE S9(10) COMP.
015180         04  FILLER          PICTURE X(6).
015200         04  R-ENDKEY        PICTURE X(30).
015220         04  R-AREA-SET      PICTURE S9(10) COMP.
015240         04  R-REC-NO        PICTURE S9(10) COMP.
015260         04  FILLER          PICTURE X(6).
015280 01  DICTIONARY-TABLE REDEFINES RD-AD-SD-TABLE.
015300     02  D-ENTRY OCCURS 200 INDEXED BY DX.
015320         04  D-TYPEV         PICTURE S9(10) COMP.
015340         04  D-NCHAR         PICTURE S9(10) COMP.
015360         04  D-SCALE         PICTURE S9(10) COMP.
015380         04  D-ECHAR         PICTURE S9(10) COMP.
015400         04  D-TCHAR         PICTURE S9(10) COMP.
015420         04  D-FCHAR         PICTURE S9(10) COMP.
015440         04  D-NREPEATS      PICTURE S9(10) COMP.
015460         04  D-GRPLEN        PICTURE S9(10) COMP.
015480         04  D-TITLE1        PICTURE X(10).
015500         04  D-TITLE2        PICTURE X(10).
015520         04  D-PICT          PICTURE X(20).
015540         04  D-GRPNAME       PICTURE X.
015560         04  D-STOPV         PICTURE X.
015580
015600 01  VARIABLE-TABLE REDEFINES DICTIONARY-TABLE.
015620     02  V-ENTRY OCCURS 200 INDEXED BY VX.
015640         04  V-TYPEV         PICTURE S9(10) COMP.
015660         04  V-NCHAR         PICTURE S9(10) COMP.
015680         04  V-SCALE         PICTURE S9(10) COMP.
015700         04  V-ECHAR         PICTURE S9(10) COMP.
015720         04  V-TCHAR         PICTURE S9(10) COMP.
015740         04  V-BINARY        PICTURE S9(18) COMP.
015760         04  V-WORK          PICTURE S9(10) COMP.
015780         04  V-TITLE1        PICTURE X(10).
015800         04  V-TITLE2        PICTURE X(10).
015820         04  V-PICT          PICTURE X(20).
015840         04  FILLER          PICTURE XX.
015860
015880 01  CONSTANT-TABLE REDEFINES VARIABLE-TABLE.
015900     02  C-ENTRY OCCURS 200 INDEXED BY CX.
015920         04  C-TYPEV         PICTURE S9(10) COMP.
015940         04  C-NCHAR         PICTURE S9(10) COMP.
015960         04  C-SCALE         PICTURE S9(10) COMP.
015980         04  FILLER          PICTURE X(12).
016000         04  C-BINARY        PICTURE S9(18) COMP.
016020         04  C-NUMERIC       PICTURE S9(18).
016040         04  FILLER          PICTURE X(30).
016060
016080 01  LITERAL-TABLE REDEFINES CONSTANT-TABLE.
016100     02  L-ENTRY OCCURS 200 INDEXED BY LX.
016120         04  L-TYPEV         PICTURE S9(10) COMP.
016140         04  L-NCHAR         PICTURE S9(10) COMP.
016160         04  L-VALUE         PICTURE X(72).
016180         04 FILLER           PICTURE X(06).
016200 01  KEY-TABLE REDEFINES LITERAL-TABLE.
016220     02  K-ENTRY OCCURS 200 TIMES INDEXED BY KX.
016240         04  K-TYPEV         PICTURE S9(10) COMP.
016260         04  K-NCHAR         PICTURE S9(10) COMP.
016280         04  K-STARTKEY      PICTURE X(30).
016300         04  K-ENDKEY        PICTURE X(30).
016320         04  FILLER          PICTURE X(18).
016340 01  PROTECTION-PD-TABLE REDEFINES KEY-TABLE.
016360     02  P-ENTRY OCCURS 200 TIMES INDEXED BY FPX.
016380         04  P-TYPEV         PICTURE S9(10) COMP.
016400         04  P-DYNREFNO      PICTURE 99.
016420         04  P-DYNDATEFLAG   PICTURE X.
016440         04  P-DYNPROTLINE   PICTURE X.
016460         04  P-DYNPASSWORD   PICTURE X(06).
016480         04  FILLER          PICTURE X(74).
016500 01  AUTHORITY-TABLE REDEFINES PROTECTION-PD-TABLE.
016520     02  A-ENTRY OCCURS 200 TIMES INDEXED BY AX.
016540         04  A-TYPEV         PICTURE S9(10) COMP.
016560         04  FILLER          PICTURE X(36).
016580         04  AUTH-PASSWORD   PICTURE X(06).
016600         04  FILLER          PICTURE X(42).
016620
016622* 01  INTERRUPT-FLAG  INDEX.
016624* 01  INTERRUPT-ERROR  INDEX.
016640*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
016660*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
016680
016700*   *==WHEN READY, CAN SIMPLY REPLACE ALL
016720*   *==MOVE INSTR (X) TO INSTRX      WITH
016740*   *==ENTER MACRO IQGETX==
016760
016780*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
016800*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
016820
016840*    SOME CONVENTIONS:
016860*      FLAG-VERB: A COUNT OR INDICATOR WITHIN A 1ST PASS
016880*                 SYNTAX PROCESSOR TO INDICATE TO THAT
016900*                 PROCESSOR WHETHER THIS IS 1ST TIME HERE.
016920*      FLAG-PASS=9: SERIOUS ERROR-QUIT NOW
016940*      V=1:       END OF QUERY STATEMENTS HAS BEEN REACHED
016960*      THE FOLLOWING 4 FLAGS ARE PASSED TO IQA VIA IQL IN THE
016980*      QTNNNI.TMP INFO FILE-VALUES SHOWN ARE THE DEFAULTS
017000*      FLAG-DUMP=0:   IF = 1,IQA SHOULD WRITE OUT ANALYSIS
017020*                     FILE AS IQDUMP.TMP
017040*      FLAG-EXECUTE=1:IF = 1,IQA SHOULD WRITE OUT ANALYSIS
017060*                     FILES AS QTNNNA.TMP AND PASS CONTROL
017080*                     CONTROL TO IQE WHEN IQA IS DONE
017100*                     IF = 0,IQA SHOULD NOT WRITE A QTNNNA.TMP FILE
017120*                     AND SHOULD RETURN CONTROL TO IQL WHEN DONE.
017140*      FLAG-SAVE=0:   IF = 1,IQA SHOULD WRITE OUT ANALYSIS
017160*                     BY A NAME INDICATED BY QRY-NAME
017180*      FLAG-LIST=1:   IF = 1,IQA SHOULD LIST QUERY AS ITS ANALYZED.
017182*      FLAG-TMP-INPUT:IF = 0, IQA READS QUERY INPUT FROM "QCnnnS.TMP" FILE
017184*                     IF = 1, IQA READS QUERY INPUT FROM "QTnnnS.TMP" FILE
017200 PROCEDURE DIVISION.
017220 START-OF-QANAL.
017222*     SET INTERRUPT-FLAG TO 0.
017224*     CALL SETINT USING 5,INTERRUPT-FLAG,INTERRUPT-ERROR.
017226*     IF INTERRUPT-ERROR NOT = 0 
017228*         DISPLAY '? ERROR IN SETINT' STOP RUN.
017240     ENTER MACRO CLRTTY.
017260*    GET JOB # TO BE USED AS PART OF TEMP FILE NAMES
017280     ENTER MACRO IQGJOB USING JOB-NO.
017300     MOVE JOB-NO TO QC-STMT-NO QT-ANAL-NO DYN-JOBNO.
017320*    INITIALIZE X AND DX FOR LATER USE BY IQGETX
017340*     ENTER MACRO IQSETX USING
017360*           INSTR-TABLE X DICTIONARY-TABLE DX T-INSTR DD-AREA.
017380     SET DX TO DX-MAX.
017400     MOVE DX-MAX TO DX-LOWEST. ADD 1 TO DX-LOWEST.
017420     SET L TO L-MAX.
017440     SET X TO EXEC-STARTX. SET X DOWN BY 2.
017460     MOVE ZEROS TO PROJ8 USER8.
017480     MOVE 'ITMP' TO QT-ANLZ-EXT.
017500     MOVE QTANLZTMP TO FD-INLABEL.
017520*    PEEK TO SEE IF QTANLZ FILE IS AVAILABLE.
017540     ENTER MACRO IQLOOK USING
017560           DEVICER,FD-INLABEL,PROJ8,USER8,I.
017580     IF I NOT EQUAL TO -1 GO TO BYPASS-CONTINUE.
017600     OPEN INPUT QTANLZ.
017620*    READ FIRST(INFORMATION) RECORD PASSED FROM IQL
017640     READ QTANLZ AT END GO TO CONTINUE-START.
017660     MOVE QTANLZ-REC TO QTNNNITMP.
017662*   * SEE IF INPUT SHOULD COME FROM QTnnnT.TMP, WHICH CONTAINS
017664*   * A MACRO-EXPANDED QUERY.
017666     IF FLAG-TMP-INPUT = 1 MOVE 'QT' TO QCSTMT-PREFIX.
017680 CONTINUE-START.
017700     CLOSE QTANLZ.
017720 BYPASS-CONTINUE.
017740     MOVE 'ATMP' TO QT-ANLZ-EXT.
017760     MOVE QCSTMTTMP TO FD-INLABEL WORD30.
017780     ENTER MACRO IQLOOK USING
017800           DEVICER,FD-INLABEL,PROJ8,USER8,I.
017820     IF I NOT EQUAL TO -1 GO TO E009.
017840     OPEN INPUT QCSTMT.
017860     IF FLAG-LIST = 1
017880*       DISPLAY '  IQA 3.0 USING ' QCSTMTTMP ' ' QTANLZTMP
017900*       UPON CONSOLE.
017920        DISPLAY ' ' UPON CONSOLE.
017940 VERB-CONTROL.
017942*    *CHECK FOR AN INTERRUPT REQUEST..IF SO, SIMULATE AN ERROR EXIT
017944*     IF INTERRUPT-FLAG NOT = 0 
017946*         DISPLAY '[^E Panic interrupt detected]'
017948*         MOVE 0 TO FLAG-EXECUTE GO TO QTANLZ-DAS-ENDE.
017960     IF X > X-MAX GO TO E012.
017980     IF DX < X-START  IF N-RSE NOT = 3 GO TO E012.
018000     PERFORM GET-VERB THRU GET-VERB-EXIT.
018010     MOVE 0 TO FLAG-NON-VERB.
018020     IF FLAG-PASS = 2 AND V < 1 GO TO E022.
018040     IF V < 1  GO TO E005.
018060     GO TO QUERY1       OPEN1      STATEMENT1    VERB-CONTROL
018080           READ1        FINDKEY1   FINDDBMS1     COPY1
018100           CREATE1      FIND-FROM1 FIND1         SORT1
018120           AT-END1      ACCEPT1    DISPLAY1      PRINT1
018140           INVALID-KEY1 HSPACE1    VSPACE1       LMARGIN1
018160           RMARGIN1     ACROSS1    REPORT1       RPTHEAD1
018180           NEWPAGE1     PAGINGON1  PAGINGOFF1    HEADINGON1
018200           HEADINGOFF1  TITLESON1  TITLESOFF1    SUMMARYON1
018220           SUMMARYOFF1  DISPLAYON1 DISPLAYOFF1   PRINTON1
018240           PRINTOFF1    RPTDATEON1 RPTDATEOFF1   HOLD1
018260           RESET1       SET1       COMPUTE1      PAGE-LINES1
018280           FORM-LINES1  PAGE1      TALLY1        TOTAL1
018300           AVERAGE1     GOTOQT1    GOTOXT1       GOTONR1
018320           GOTO1        CALL1      IFFIRSTIME1   IFLASTIME1
018340           IFNEWPAGE1   IFNEWGROUP1 IFELSE1      IFTHEN1
018360           IF1          IFFIRST1   IFLAST1       IFANY1
018380           IFNEXT1      IFSAME1    E000          E000
018400           E000         RPTDATE1   IFEOF2        IFEOF3
018420           E000         IFBOF2     IFBOF3      E000
018440           AUTHORITY1   PICTURE1   TITLES1       MAXIMUM1
018460           MINIMUM1     E000       E000          E000
018465           E000         reopen1    rewrite1    
018480           DEPENDING ON V.
018500     IF FLAG-PASS = 2 GO TO E022.
018520     GO TO E005.
018540 E000.
018541     GO TO E005.
018556 e057. add 1 to ecode.
018557 e056. add 1 to ecode.
018558 E055. ADD 1 TO ECODE.
018559 E054. ADD 1 TO ECODE.
018560 E053. ADD 1 TO ECODE.
018561 E052. ADD 1 TO ECODE.
018562 E051. ADD 1 TO ECODE.
018564 e050. add 1 to ecode.
018566 e049. add 1 to ecode.
018568 e048. add 1 to ecode.
018570 E047. ADD 1 TO ECODE.
018572 E046. ADD 1 TO ECODE.
018574 E045. ADD 1 TO ECODE.
018576 E044. ADD 1 TO ECODE.
018578 EO43. ADD 1 TO ECODE.
018580 E042. ADD 1 TO ECODE.
018600 E041. ADD 1 TO ECODE.
018620 E040. ADD 1 TO ECODE.
018640 E039. ADD 1 TO ECODE.
018660 E038. ADD 1 TO ECODE.
018680 E037. ADD 1 TO ECODE.
018700 E036. ADD 1 TO ECODE.
018720 E035. ADD 1 TO ECODE.
018740 E034. ADD 1 TO ECODE.
018760 E033. ADD 1 TO ECODE.
018780 E032. ADD 1 TO ECODE.
018800 E031. ADD 1 TO ECODE.
018820 E030. ADD 1 TO ECODE.
018840 E029. ADD 1 TO ECODE.
018860 E028. ADD 1 TO ECODE.
018880 E027. ADD 1 TO ECODE.
018900 E026. ADD 1 TO ECODE.
018920 E025. ADD 1 TO ECODE.
018940 E024. ADD 1 TO ECODE.
018960 E023. ADD 1 TO ECODE.
018980 E022. ADD 1 TO ECODE.  
019000 E021. ADD 1 TO ECODE.
019020 E020. ADD 1 TO ECODE.
019040 E019. ADD 1 TO ECODE.
019060 E018. ADD 1 TO ECODE.
019080 E017. ADD 1 TO ECODE.
019100 E016. ADD 1 TO ECODE.
019120 E015. ADD 1 TO ECODE.
019140 E014. ADD 1 TO ECODE.
019160 E013. ADD 1 TO ECODE.
019180 E012. ADD 1 TO ECODE.
019200 E011. ADD 1 TO ECODE.
019220 E010. ADD 1 TO ECODE.
019240 E009. ADD 1 TO ECODE.
019260 E008. ADD 1 TO ECODE.
019280 E007. ADD 1 TO ECODE.
019300 E006. ADD 1 TO ECODE.
019320 E005. ADD 1 TO ECODE.
019340 E004. ADD 1 TO ECODE.
019360 E003. ADD 1 TO ECODE.
019380 E002. ADD 1 TO ECODE.
019400 E001. ADD 1 TO ECODE.
019420     PERFORM E-RROR THRU E-XIT.
019440     MOVE SPACES TO WORD30.
019459     IF FLAG-PASS = 9 GO TO QTANLZ-DAS-ENDE.
019460     IF FLAG-PASS = 2 GO TO VERB-RESET.
019461     move 0 to flag-if-statement.
019462     IF FLAG-EOS2 NOT = 0 GO TO VERB-RESET.
019463*    NOW READ OVER REST OF STATEMENT UNTIL HIT EOS.
019464     MOVE 99 TO ECODE.
019465 READ-OVER.
019466     PERFORM GET-WORD THRU GET-WORDX.
019467     IF V = 1 GO TO QUERY1.
019468     IF FLAG-QUOTE NOT = 0 GO TO READ-OVER-LIT.
019469     IF FLAG-EOS2 NOT = 2 GO TO READ-OVER.
019470     MOVE 1 TO FLAG-EOS.
019480     GO TO VERB-RESET.
019482 READ-OVER-LIT.
019484     MOVE FLAG-QUOTE TO TEST-QUOTE. MOVE 0 TO FLAG-QUOTE.
019485 READ-OVER-LIT-LOOP.
019486     PERFORM GET-WORD THRU GET-WORDX.
019487     IF V = 1 GO TO QUERY1.
019488     IF FLAG-QUOTE NOT = TEST-QUOTE GO TO READ-OVER-LIT-LOOP.
019490     MOVE 0 TO TEST-QUOTE, FLAG-QUOTE.
019492     GO TO READ-OVER.
019500 E-RROR.
019510     MOVE 0 TO FLAG-NON-VERB.
019520*    MOVE ECODE TO DCODE.
019540     IF ECODE = 022 OR ECODE = 037 OR ECODE = 009 OR
019560        ECODE = 038 OR ECODE = 012 MOVE 9 TO FLAG-PASS.
019580     IF NOT WARNING-CODE MOVE 1 TO FLAG-ERROR.
019600     IF FLAG-LIST = 0 AND FLAG-PASS = 1
019620        MOVE 2 TO FLAG-LIST
019640        DISPLAY LINE-TABLE UPON CONSOLE.
019660     IF ECODE < 001 OR ECODE > MAX-ERR-MSG
019680        MOVE 005 TO ECODE.
019700     IF ECODE = 36 OR ECODE = 42 MOVE SPACES TO IQANLZ-ERROR.
019720     MOVE ERR-MSG (ECODE) TO E-MSG.
019730     MOVE WORD30 TO HINT-WORD30.
019732     IF ECODE = 022
019734        MOVE '*PLS SUBMIT AN SPR-BUT FIRST, ' TO HINT-WORD30.
019740     DISPLAY HINT-WORD IQANLZ-ERROR UPON CONSOLE.
019760     IF ECODE = 36 MOVE '%IQA' TO IQANLZ-ERROR.
019780     MOVE ZEROS TO ECODE.
019800 E-XIT.    EXIT.
019802 compute-warning.
019804     move d-title1 (dx) to warning-dataname1.
019805     move d-title2 (dx) to warning-dataname2.
019806     move warning-message-hint to word30.
019808     move 054 to ecode.
019810     perform e-rror thru e-xit.
019812 compute-warningx.  exit.
019820
019840 GET-VERB.
019860     MOVE V TO VP. MOVE ZEROS TO TYPEV.
019880     IF FLAG-PASS = 2 GO TO GET-KNOWN-VERB.
019900*    DONT GET NEXT WORD IF WE ALREADY HAVE IT.
019920     IF FLAG-PEEKED = 0 PERFORM GET-WORD THRU GET-WORDX.
019940     MOVE 0 TO FLAG-PEEKED.
019960*    BUG OUT IF HIT END OF QUERY
019980     IF V = 1 GO TO GET-VERB-EXIT.
020000     MOVE 1 TO FLAG-QUERY.
020020     IF FLAG-QUOTE NOT EQUAL TO ZERO GO TO GET-LITERAL.
020040     IF FLAG-STATEMENT-NO = 1 MOVE V-STATEMENT-NO TO V
020060        GO TO GET-ONE-VERB.
020080     IF FLAG-ALPHA = ZEROS
020100*       IF (V = V-COMPUTE OR V = V-GOTO) GO TO GOT-NON-VERB1
020120        GO TO GOT-NON-VERB.
020140     IF WORD12 = 'ACCEPT ' MOVE V-ACCEPT TO V
020160        GO TO GET-NON-VERB.
020180     IF WORD12 = 'ACROSS ' MOVE V-ACROSS TO V
020200        GO TO GET-NON-VERB.
020220     IF WORD04 = 'ALL ' AND V = V-FIND-DBMS
020240        AND VA = V-FINDSUPPRESS MOVE V-SUPPRESSALL TO VA
020260        GO TO GET-VERB-EXIT.
020280     IF WORD06 = 'AND ' GO TO LEGAL-AND-OR-RPAREN.
020300     IF WORD06 = 'AREA ' AND V = V-FIND-DBMS
020320        AND VA = V-FINDSUPPRESS MOVE V-SUPPRESSAREA TO VA
020340        GO TO GET-VERB-EXIT.
020360     IF WORD06 = 'AREA ' AND V = V-FIND-DBMS
020380        MOVE V-FINDAREA TO VA MOVE 0 TO FLAG-SET-TO-COME
020382        GO TO GET-VERB-EXIT.
020400     IF WORD06 = 'AREA  ' AND V = V-INVOKE
020420        MOVE V-FINDAREA TO VA  GO TO GET-NON-VERB.
020421     IF WORD12 = 'AREA-ID ' MOVE TYPE-AREA-IDENT TO TYPEV.
020422     IF WORD12 = 'AREA-NAME ' MOVE TYPE-AREA-NAME TO TYPEV.
020440     IF WORD12 = 'ASCENDING ' MOVE V-ASCENDING TO VA
020460        GO TO GET-VERB.
020480     IF WORD06 = 'AT ' AND V = V-FINDKEY
020500        MOVE V-AT-END TO VA GO TO GET-VERB.
020520     IF WORD12 = 'AUTHORITY ' MOVE V-AUTHORITY TO V
020540        GO TO GET-NON-VERB.
020560     IF WORD12 = 'AVERAGE ' MOVE V-AVERAGE TO V
020580        GO TO GET-NON-VERB.
020600     IF WORD12 = 'BEGINNING ' AND V = V-FIND
020620        MOVE V-BEGINNING TO VA GO TO GET-VERB-EXIT.
020640     IF WORD04 = 'BY ' GO TO LEGAL-BY.
020660     IF WORD06 = 'CALL ' MOVE V-CALL TO V  MOVE 0 TO VA
020680        GO TO GET-NON-VERB.
020700     IF WORD12 = 'COMPUTE ' MOVE V-COMPUTE TO V
020720        GO TO GET-NON-VERB.
020740     IF WORD06 = 'COPY ' MOVE V-COPY TO V
020760        GO TO GET-ONE-VERB.
020780     IF WORD12 = 'CREATE ' MOVE V-CREATE TO V
020800        GO TO GET-NON-VERB.
020820     IF WORD12 = 'CURRENCY '
020840        AND V = V-FIND-DBMS GO TO GET-VERB.
020842     IF WORD12 = 'CURRENT ' AND V = V-FIND-DBMS
020844        MOVE 2 TO N-RSE MOVE 1 TO FLAG-SET-TO-COME
020846        GO TO GET-VERB.
020860     IF WORD30 = 'CURRENT-RECORD-KEY '
020880        MOVE TYPE-CURR-REC-KEY TO TYPEV.
020900     IF WORD12 = 'DESCENDING ' MOVE V-DESCENDING TO VA
020920        GO TO GET-VERB.
020940     IF WORD12 = 'DISPLAY ' MOVE V-DISPLAY TO V
020960        GO TO GET-NON-VERB.
020980     IF WORD12 = 'DISPLAYALL ' MOVE V-DISPLAYON TO V
021000        GO TO GET-ONE-VERB.
021020     IF WORD12 = 'DISPLAYON ' MOVE V-DISPLAYON TO V
021040        GO TO GET-ONE-VERB.
021060     IF WORD12 = 'DISPLAYOFF ' MOVE V-DISPLAYOFF TO V
021080        GO TO GET-ONE-VERB.
021090     IF WORD06 = 'ELSE ' AND FLAG-EOS = 1
021092        MOVE '"ELSE" IS PART OF AN "IF" AND' TO WORD30
021094        GO TO E056.
021100     IF WORD06 = 'ELSE ' MOVE V-ELSE TO V
021120        GO TO GET-ONE-VERB.
021140     IF WORD06 = 'END ' AND VA = V-AT-END
021160        MOVE V-AT-END TO VP GO TO GET-ONE-VERB.
021180     IF WORD06 = 'EOF ' AND V = V-FINDKEY
021200        MOVE V-EOF TO VP GO TO GET-VERB-EXIT.
021201     IF WORD12 = 'ERROR-COUNT ' MOVE TYPE-ERROR-COUNT TO TYPEV.
021202     IF WORD18 = 'ERROR-STATUS ' MOVE TYPE-ERROR-STATUS TO TYPEV.
021210     IF WORD06 = 'EXIT ' MOVE V-CALL TO V  MOVE 0 TO VA
012121        GO TO GET-NON-VERB.
021220     IF WORD06 = 'FILLER' AND V = V-CREATE
021240        MOVE V-FILLER TO VAA  GO TO GET-VERB.
021260     IF WORD06 = 'FIND ' MOVE V-FIND TO V
021280        MOVE ZEROS TO N-RSE VA VAA GO TO FIND-LIST.
021300     IF WORD12 = 'FORM-LINES ' MOVE V-FORM-LINES TO V
021320        GO TO GET-NON-VERB.
021340     IF WORD06 = 'FROM ' AND V = V-FIND
021360        MOVE V-FROM TO VA GO TO GET-VERB-EXIT.
021380     IF WORD06 = 'HOLD ' MOVE V-HOLD TO V
021400        GO TO GET-NON-VERB.
021420     IF WORD06 = 'GO ' MOVE V-GOTO TO V
021440        GO TO GET-VERB.
021460     IF WORD06 = 'GROUP ' MOVE V-GROUP TO V
021480        GO TO GET-ONE-VERB.
021500     IF WORD12 = 'HEADING ' MOVE V-HEADING TO V
021520        GO TO GET-NON-VERB.
021540     IF WORD12 = 'HEADINGOFF ' MOVE V-HEADINGOFF TO V
021560        GO TO GET-ONE-VERB.
021580     IF WORD12 = 'HEADINGON ' MOVE V-HEADINGON TO V
021600        GO TO GET-ONE-VERB.
021620     IF WORD12 = 'HSPACE ' MOVE V-HSPACE TO V
021640        GO TO GET-NON-VERB.
021642     IF WORD06 = 'IF '
021644        AND FLAG-IF-STATEMENT = 1 AND FLAG-EOS = 0
021646            MOVE 'change "if" to "and" ' to word30  go to E053.
021650     IF WORD06 = 'IF ' MOVE 1 to flag-if-statement.
021654     IF WORD06 = 'IF '
021656        IF V = V-FIND-DBMS  IF FLAG-FINDFINI = 0
021658        GO TO GET-VERB.
021660     IF WORD06 = 'IF '  MOVE V-IF TO V
021680        GO TO IF-LIST.
021700     IF WORD12 = 'INVALID ' AND V = V-FINDKEY
021720        MOVE V-INVALID-KEY TO VA GO TO GET-VERB.
021740     IF WORD30 = 'INVOKE '
021760        MOVE V-INVOKE TO V GO TO GET-VERB.
021780     IF WORD06 = 'KEY ' AND VA = V-INVALID-KEY
021800        MOVE V-INVALID-KEY TO VP GO TO GET-ONE-VERB.
021820     IF WORD06 = 'LEFT ' MOVE V-LEFT TO V
021840        GO TO GET-VERB.
021860*    IF WORD06 = 'LINE ' MOVE V-LINE TO V
021880*       GO TO GET-NON-VERB.
021900     IF WORD12 = 'LMARGIN ' MOVE V-LMARGIN TO V
021920        GO TO GET-NON-VERB.
021940     IF WORD12 = 'MARGIN ' AND V = V-LEFT
021960        MOVE V-LMARGIN TO V GO TO GET-NON-VERB.
021980     IF WORD12 = 'MARGIN ' AND V = V-RIGHT
022000        MOVE V-RMARGIN TO V GO TO GET-NON-VERB.
022020     IF WORD12 = 'MAXIMUM ' MOVE V-MAXIMUM TO V
022040        GO TO GET-NON-VERB.
022060     IF WORD12 = 'MINIMUM ' MOVE V-MINIMUM TO V
022080        GO TO GET-NON-VERB.
022100     IF WORD12 = 'NARROW ' MOVE V-NARROW TO V
022120        GO TO GET-NON-VERB.
022140     IF WORD18 = 'NARROW.WIDTH ' MOVE V-NARROW TO V
022160        GO TO GET-NON-VERB.
022180     IF WORD12 = 'NEW ' MOVE V-NEW TO V
022200        GO TO GET-VERB.
022220     IF WORD12 = 'NEWPAGE ' MOVE V-NEWPAGE TO V
022240        GO TO GET-ONE-VERB.
022260     IF WORD06 = 'NEXT ' AND V = V-FIND
022280        MOVE V-NEXT TO VP GO TO GET-VERB-EXIT.
022300*    IF WORD06 = 'NO ' MOVE V-NO TO V
022320*       GO TO GET-VERB.
022340     IF WORD12 = 'NODISPLAY ' MOVE V-DISPLAYOFF TO V
022360        GO TO GET-ONE-VERB.
022380     IF WORD12 = 'NOHEADING ' MOVE V-HEADINGOFF TO V
022400        GO TO GET-ONE-VERB.
022420     IF WORD12 = 'NOPAGING ' MOVE V-PAGINGOFF TO V
022440        GO TO GET-ONE-VERB.
022460     IF WORD12 = 'NOPRINT ' MOVE V-PRINTOFF TO V
022480        GO TO GET-ONE-VERB.
022500     IF WORD12 = 'NOSUMMARY ' MOVE V-SUMMARYOFF TO V
022520        GO TO GET-ONE-VERB.
022540     IF WORD12 = 'NOSUMPRINT ' MOVE V-SUMMARYOFF TO V
022560        GO TO GET-ONE-VERB.
022580     IF WORD12 = 'NOTITLES ' MOVE V-TITLESOFF TO V
022600        GO TO GET-ONE-VERB.
022620     IF WORD06 = 'NR ' AND V = V-GOTO
022640        MOVE V-GOTONR TO V GO TO GET-ONE-VERB.
022660     IF WORD06 = 'OPEN ' MOVE V-OPEN TO V
022680        GO TO GET-NON-VERB.
022700     IF WORD06 = 'OF' AND V = V-IFNEWGROUP
022701         GO TO GET-VERB.
022702     IF WORD06 = 'OF ' AND V = V-FIND-DBMS
022704        GO TO GET-VERB.
022706*    VAA ABOVE SET TO V-FINDSET INDICATES TO IQA THAT WHEN WE
022708*    SUBSEQUENTLY READ 'SET', THAT IT SHOULD BE TREATED AS THE
022710*    DBMS SET FIELD AS OPPOSED TO THE SET VERB.
022740     IF WORD06 = 'OFF ' GO TO LEGAL-OFF.
022760     IF WORD06 = 'ON ' GO TO LEGAL-ON.
022780     IF WORD06 = 'OR ' GO TO LEGAL-AND-OR-RPAREN.
022800     IF WORD06 = 'PAGE ' AND V = V-NEW
022820        MOVE V-NEWPAGE TO V GO TO GET-ONE-VERB.
022840     IF WORD06 = 'PAGE  ' MOVE V-PAGE TO V
022860        GO TO GET-NON-VERB.
022880     IF WORD12 = 'PAGING ' MOVE V-PAGING TO V
022900        GO TO GET-NON-VERB.
022920     IF WORD12 = 'PAGINGOFF ' MOVE V-PAGINGOFF TO V
022940        GO TO GET-ONE-VERB.
022960     IF WORD12 = 'PAGINGON ' MOVE V-PAGINGON TO V
022980        GO TO GET-ONE-VERB.
023000     IF WORD12 = 'PAGE-LINE ' MOVE V-PAGE-LINE TO V
023020        GO TO GET-NON-VERB.
023040     IF WORD12 = 'PAGE-LINES ' MOVE V-PAGE-LINE TO V
023060        GO TO GET-NON-VERB.
023080     IF WORD12 = 'PAGE-WIDTH ' MOVE V-PAGE-WIDTH TO V
023100        GO TO GET-NON-VERB.
023120     IF WORD12 = 'PICTURE ' MOVE V-PICTURE TO V
023140        GO TO GET-NON-VERB.
023160     IF WORD12 = 'PRINT ' MOVE V-PRINT TO V
023180        GO TO GET-NON-VERB.
023200     IF WORD30 = 'PRIVACY ' AND V = V-INVOKE
023220        MOVE V-PRIVACY-KEY TO VA GO TO GET-NON-VERB.
023240     IF WORD30 = 'PRIVACY-KEY ' AND V = V-INVOKE
023260        MOVE V-PRIVACY-KEY TO VA GO TO GET-NON-VERB.
023280     IF WORD06 = 'QT ' AND V = V-GOTO
023300        MOVE V-GOTOQT TO V GO TO GET-ONE-VERB.
023320     IF WORD12 = 'RECORD ' AND (V = V-COPY OR V = V-CREATE)
023340        MOVE 'RECORD1 ' TO WORD12.
023360     IF WORD12 = 'RECORD ' GO TO LEGAL-RECORD.
023380     IF WORD12 = 'RECORD1 ' AND (V = V-COPY OR V = V-CREATE)
023400        MOVE 1 TO VA.
023420     IF WORD12 = 'RECORD2 ' AND (V = V-COPY OR V = V-CREATE)
023440        MOVE 2 TO VA.
023460     IF WORD12 = 'RECORD3 ' AND (V = V-COPY OR V = V-CREATE)
023480        MOVE 3 TO VA.
023482     IF WORD12 = 'RECORD-NAME ' MOVE TYPE-RECORD-NAME TO TYPEV.
023485     IF WORD12 = 'REOPEN '
023486        MOVE V-REOPEN TO V  GO TO GET-ONE-VERB.
023500     IF WORD12 = 'REPORT ' MOVE V-REPORT TO V
023520        GO TO GET-NON-VERB.
023540     IF WORD12 = 'RESET ' MOVE V-RESET TO V
023560        GO TO GET-NON-VERB.
023580     IF WORD18 = 'RESUMEDISPLAY ' MOVE V-DISPLAYON TO V
023600        GO TO GET-ONE-VERB.
023620     IF WORD18 = 'RESUMEHEADING ' MOVE V-HEADINGON TO V
023640        GO TO GET-ONE-VERB.
023660     IF WORD18 = 'RESUMEPAGING ' MOVE V-PAGINGON TO V
023680        GO TO GET-ONE-VERB.
023700     IF WORD18 = 'RESUMEPRINT ' MOVE V-PRINTON TO V
023720        GO TO GET-ONE-VERB.
023740     IF WORD18 = 'RESUMESUMMARY ' MOVE V-SUMMARYON TO V
023760        GO TO GET-ONE-VERB.
023780     IF WORD18 = 'RESUMESUMPRINT ' MOVE V-SUMMARYON TO V
023800        GO TO GET-ONE-VERB.
023820     IF WORD18 = 'RESUMETITLES ' MOVE V-TITLESON TO V
023840        GO TO GET-ONE-VERB.
023860     IF WORD12 = 'REWRITE ' MOVE V-REWRITE TO V
023880        GO TO get-one-verb.
023900     IF WORD12 = 'RIGHT ' MOVE V-RIGHT TO V
023920        GO TO GET-VERB.
023940     IF WORD12 = 'RMARGIN ' MOVE V-RMARGIN TO V
023960        GO TO GET-NON-VERB.
023980     IF WORD12 = 'RPTDATE ' OR 'DATE ' MOVE V-RPTDATE TO V
024000        GO TO GET-NON-VERB.
024020     IF WORD12 = 'RPTHEAD ' MOVE V-RPTHEAD TO V
024040        GO TO GET-NON-VERB.
024042     IF WORD12 = 'RUN-UNIT' AND V = V-FIND-DBMS
024044        MOVE V-RUN-UNIT TO VAA  MOVE 0 TO FLAG-SET-TO-COME
024045        SET X UP BY 1  GO TO GET-VERB-EXIT.
024050     IF WORD30 = 'SCHEMA ' AND V = V-INVOKE
024052        MOVE V-SCHEMA TO VA GO TO GET-NON-VERB.
024060     if WORD06 = 'SET ' AND FLAG-SET-TO-COME = 0
024062        move V-SET TO V  GO TO GET-NON-VERB.
024064     if WORD06 = 'SET ' MOVE 0 TO FLAG-SET-TO-COME.
024081*    if WORD06 = 'SET ' AND V = V-FIND-DBMS
024082*       and (VA = V-FINDSET OR VA = V-SUPPRESSSET)
024088*           MOVE V-SET TO V GO TO GET-NON-VERB.
024090*    ABOVE WILL INTERPRET 'SET' AS THE NON-DBMS VERB 'SET'
024092*    SINCE THE WORDS SUPPRESS OR SET HAVE ALREADY APPEARED(AS INDICATED
024094*    BY VA) THEREFORE THIS USE OF 'SET' MUST BE THE VERB.
024100     IF WORD06 = 'SET ' AND V = V-FIND-DBMS
024120        AND VA = V-FINDSUPPRESS MOVE V-SUPPRESSSET TO VA
024122         GO TO GET-VERB-EXIT.
024122*    VAA = V-FINDSET BELOW WOULD INDICATE THAT A DBMS 'SET' SHOULD
024124*    BE EXPECTED.
024126     IF WORD06 = 'SET ' IF V = V-FIND-DBMS 
024128        MOVE V-FINDSET TO VA GO TO GET-VERB-EXIT.
024145*    EOS OR FINDFINI TEST BELOW WOULD MEAN THAT JUST PREVIOUS
024146*    TO READING 'SET' WE HIT EOS ON OUR FIND CLAUSE.
024147*    THEREFORE, WE HAVE AN INDEPENDENT 'SET' VERB, NOT A
024148*    PART OF FIND.
024150*    IF (WORD06 = 'SET ' AND V = V-FIND-DBMS AND
024151*      (FLAG-EOS = 1 OR FLAG-FINDFINI = 1))
024152*      MOVE V-SET TO V  GO TO GET-NON-VERB.
024160*     IF WORD06 = 'SET ' AND V = V-FIND-DBMS
024180*       MOVE V-FINDSET TO VA GO TO GET-VERB-EXIT.
024200*     IF WORD06 = 'SET ' MOVE V-SET TO V
024220*       GO TO GET-NON-VERB.
024240      IF WORD06 = 'SORT ' MOVE V-SORT TO V
024260        GO TO GET-NON-VERB.
024280     IF WORD12 = 'STITLES ' MOVE V-STITLES TO V
024300        GO TO GET-NON-VERB.
024320     IF WORD30 = 'SUB-SCHEMA ' AND V = V-INVOKE
024340        MOVE V-SUB-SCHEMA TO VA GO TO GET-NON-VERB.
024360     IF WORD12 = 'SUMMARY ' MOVE V-SUMMARY TO V
024380        GO TO GET-NON-VERB.
024400     IF WORD18 = 'SUMMARYPRINT ' MOVE V-SUMMARY TO V
024420        GO TO GET-NON-VERB.
024440     IF WORD12 = 'SUMMARYOFF ' MOVE V-SUMMARYOFF TO V
024460        GO TO GET-ONE-VERB.
024480     IF WORD12 = 'SUMMARYON ' MOVE V-SUMMARYON TO V
024500        GO TO GET-ONE-VERB.
024520     IF WORD12 = 'SUMPRINT ' MOVE V-SUMMARY TO V
024540        GO TO GET-NON-VERB.
024560     IF WORD12 = 'SUPPRESS ' AND V = V-FIND-DBMS
024580        MOVE V-FINDSUPPRESS TO VA MOVE 1 TO FLAG-SET-TO-COME
024582        GO TO GET-VERB.
024600     IF WORD12 = 'SUPPRESS ' MOVE V-SUMMARYOFF TO V
024620        GO TO GET-ONE-VERB.
024640     IF WORD12 = 'SUPPRESSED ' MOVE V-SUMMARYOFF TO V
024660        GO TO GET-ONE-VERB.
024680     IF WORD06 = 'TALLY ' MOVE V-TALLY TO V
024700        GO TO GET-NON-VERB.
024720     IF WORD06 = 'THAN ' MOVE V-THAN TO V
024740        GO TO GET-VERB.
024760     IF WORD06 = 'THEN ' GO TO GET-VERB.
024780     IF WORD06 = 'THRU ' AND V = V-FINDKEY
024800        MOVE V-THRU TO VA GO TO GET-VERB.
024820     IF WORD12 = 'TITLES ' MOVE V-TITLES TO V
024840        GO TO GET-NON-VERB.
024860     IF WORD12 = 'TITLESOFF ' MOVE V-TITLESOFF TO V
024880        GO TO GET-ONE-VERB.
024900     IF WORD12 = 'TITLESON ' MOVE V-TITLESON TO V
024920        GO TO GET-ONE-VERB.
024940     IF WORD06 = 'TO ' GO TO LEGAL-TO.
024960     IF WORD06 = 'TODAY ' MOVE TYPE-TODAY TO TYPEV.
024980     IF WORD06 = 'TOTAL ' MOVE V-TOTAL TO V
025000        GO TO GET-NON-VERB.
025020     IF WORD12 = 'UNSUPPRESS ' MOVE V-SUMMARYON TO V
025040        GO TO GET-ONE-VERB.
025060     IF WORD18 = 'UNSUPPRESSED ' MOVE V-SUMMARYON TO V
025080        GO TO GET-ONE-VERB.
025100     IF WORD12 = 'UPDATES ' AND V = V-FIND-DBMS
025120        GO TO GET-VERB.
025140     IF WORD12 = 'USING ' AND V = V-FIND
025160        MOVE V-FIND-DBMS TO V MOVE 1 TO N-RSE
025180        GO TO GET-VERB.
025200     IF WORD12 = 'VSPACE ' MOVE V-VSPACE TO V
025220        GO TO GET-NON-VERB.
025240     IF WORD12 = 'WIDTH ' MOVE V-WIDTH TO V
025260        GO TO GET-NON-VERB.
025280     IF WORD12 = 'XRANDOM ' MOVE TYPE-XRANDOM TO TYPEV.
025300     IF WORD04 = 'XT ' AND V = V-GOTO
025320        MOVE V-GOTOXT TO V GO TO GET-ONE-VERB.
025340     IF WORD02 = '= ' GO TO LEGAL-EQUALS.
025360     IF WORD02 = '( ' GO TO LEGAL-LPAREN.
025380     IF WORD02 = '+ ' AND V = V-COMPUTE
025400        MOVE V-ADD TO VA GO TO GET-VERB-EXIT.
025420     IF WORD02 = '- ' AND V = V-COMPUTE
025440        MOVE V-SUBTRACT TO VA GO TO GET-VERB-EXIT.
025460     IF WORD02 = '* ' AND V = V-COMPUTE
025480        MOVE V-MULTIPLY TO VA GO TO GET-VERB-EXIT.
025500     IF WORD02 = '/ ' AND V = V-COMPUTE
025520        MOVE V-DIVIDE TO VA GO TO GET-VERB-EXIT.
025540     IF WORD02 = ') ' AND V = V-COMPUTE
025560        MOVE V-RPAREN TO VA GO TO GET-VERB-EXIT.
025580     IF WORD02 = ') ' AND VA = V-LPAREN
025600        MOVE V-RPAREN TO VA GO TO GET-VERB-EXIT.
025620     IF WORD02 = ') ' GO TO LEGAL-AND-OR-RPAREN.
025640     IF V = ZERO GO TO GET-VERB-EXIT.
025660*    BUG OUT FOR --GO TO NR/XT/QT--
025680     IF V = V-GOTO GO TO GET-VERB-EXIT.
025700     IF FLAG-EOS = 1 AND FLAG-EOS2 NOT EQUAL TO 1
025720        GO TO E005.
025740 GOT-NON-VERB.
025760*    HERE TO STORE THE 1ST OBJECT OF A VERB INTO INSTR
025780*    IF VERB CAN TAKE MORE THAN 1 OBJECT(IE LIST), THEY
025800*    MOST LIKELY WILL BE READ UNDER CONTROL OF VERB ITSELFS
025820     IF V = 0 GO TO GET-VERB-EXIT.
025840     PERFORM DROP-IN-DX THRU DIDX.
025860     IF V = V-GOTO GO TO GET-ONE-VERB.
025880     SET X UP BY 1. SET INSTR (X) TO DX.
025900     GO TO GET-VERB-EXIT.
025920 EQ-LIST.
025940     PERFORM GET-WORD THRU GET-WORDX.
025960     IF WORD04 = 'NOT ' NEXT SENTENCE
025980        ELSE GO TO EQ-LIST1.
026000*    FLIP NOT FLAG FROM ITS PREVIOUS CONDITION ENABLING NOT/NOT NOT
026020     IF FLAG-NOT = 0 MOVE 1 TO FLAG-NOT ELSE MOVE 0 TO FLAG-NOT.
026040     MOVE 1 TO VP-NOT.
026060     GO TO EQ-LIST.
026080 EQ-LIST1.
026100     IF WORD06 = 'EQ ' MOVE V-EQUAL TO VA
026120        GO TO GET-VERB.
026140     IF WORD06 = '= ' MOVE V-EQUAL TO VA
026160        GO TO GET-VERB.
026180     IF WORD06 = 'EQUAL ' MOVE V-EQUAL TO VA
026200        GO TO GET-VERB.
026220     IF WORD12 = 'EQUALS ' MOVE V-EQUAL TO VA
026240        GO TO GET-VERB.
026260     IF WORD06 = 'IS ' MOVE V-EQUAL TO VA
026280         GO TO GET-VERB.
026300     IF WORD06 = 'NQ ' MOVE V-NOTEQUAL TO VA
026320        GO TO GET-VERB.
026340     IF WORD06 = '<> ' MOVE V-NOTEQUAL TO VA
026360        GO TO GET-VERB.
026380     IF WORD06 = '# ' MOVE V-NOTEQUAL TO VA
026400        GO TO GET-VERB.
026420     IF WORD06 = 'NE ' MOVE V-NOTEQUAL TO VA
026440        GO TO GET-VERB.
026460     IF WORD06 = 'NEQ ' MOVE V-NOTEQUAL TO VA
026480        GO TO GET-VERB.
026500     IF WORD06 = 'LS ' MOVE V-LESS TO VA
026520        GO TO GET-VERB.
026540     IF WORD06 = '< ' MOVE V-LESS TO VA
026560        GO TO GET-VERB.
026580     IF WORD06 = 'LT ' MOVE V-LESS TO VA
026600        GO TO GET-VERB.
026620     IF WORD06 = 'LESS ' MOVE V-LESS TO VA
026640        GO TO GET-VERB.
026660     IF WORD06 = 'GR ' MOVE V-GREATER TO VA
026680        GO TO GET-VERB.
026700     IF WORD06 = '> ' MOVE V-GREATER TO VA
026720        GO TO GET-VERB.
026740     IF WORD06 = 'GT ' MOVE V-GREATER TO VA
026760        GO TO GET-VERB.
026780     IF WORD12 = 'GREATER ' MOVE V-GREATER TO VA
026800        GO TO GET-VERB.
026820     IF WORD06 = 'GEQ ' MOVE V-GREATEREQUAL TO VA
026840        GO TO GET-VERB.
026860     IF WORD06 = '>= ' MOVE V-GREATEREQUAL TO VA
026880        GO TO GET-VERB.
026900     IF WORD06 = 'GE ' MOVE V-GREATEREQUAL TO VA
026920        GO TO GET-VERB.
026940     IF WORD06 = 'GQ ' MOVE V-GREATEREQUAL TO VA
026960        GO TO GET-VERB.
026980     IF WORD06 = 'LEQ ' MOVE V-LESSEQUAL TO VA
027000        GO TO GET-VERB.
027020     IF WORD06 = '<= ' MOVE V-LESSEQUAL TO VA
027040        GO TO GET-VERB.
027060     IF WORD06 = 'LE ' MOVE V-LESSEQUAL TO VA
027080        GO TO GET-VERB.
027100     IF WORD06 = 'LQ ' MOVE V-LESSEQUAL TO VA
027120        GO TO GET-VERB.
027140     MOVE 029 TO ECODE.
027160     PERFORM E-RROR THRU E-XIT.
027180     MOVE V-ILLEGAL TO VA.  GO TO GET-VERB.
027182 FIND-LIST0.
027184     MOVE 1 TO FLAG-SET-TO-COME.
027200 FIND-LIST.
027205     IF FLAG-NON-VERB = 1 GO TO E006.
027210     MOVE 0 TO FLAG-FINDFINI.
027220     PERFORM GET-WORD THRU GET-WORDX.
027222     IF WORD06 = 'IN ' GO TO FIND-LIST.
027224     IF WORD06 = 'OF ' GO TO FIND-LIST.
027240     IF WORD06 = 'KEY ' MOVE V-FINDKEY TO V
027260        MOVE V-FINDKEY1 TO VA GO TO GET-NON-VERB.
027280     IF WORD06 = 'KEY1 ' MOVE V-FINDKEY TO V
027300        MOVE V-FINDKEY1 TO VA GO TO GET-NON-VERB.
027320     IF WORD06 = 'KEY2 ' MOVE V-FINDKEY TO V
027340        MOVE V-FINDKEY2 TO VA GO TO GET-NON-VERB.
027360     IF WORD06 = 'KEY3 ' MOVE V-FINDKEY TO V
027380        MOVE V-FINDKEY3 TO VA GO TO GET-NON-VERB.
027382     IF WORD12 = 'CURRENT '  MOVE V-FIND-DBMS TO V
027384        MOVE 2 TO N-RSE   GO TO FIND-LIST0.
027386     IF WORD12 = 'RUN-UNIT ' MOVE V-FIND-DBMS TO V
027388        MOVE V-RUN-UNIT TO VAA PERFORM DROP-IN-VERB THRU DIVX
027390        SET X UP BY 1  GO TO GET-VERB-EXIT.
027392     IF WORD12 = 'DUPLICATE ' MOVE V-FIND-DBMS TO V
027394        MOVE V-FINDUPLICATE TO VA  MOVE 5 TO N-RSE
027396        MOVE 0 TO FLAG-SET-TO-COME  GO TO FIND-LIST.
027398     IF WORD12 = 'WITHIN ' GO TO FIND-LIST.
027400     IF WORD06 = 'FIRST ' MOVE V-FINDFIRST TO VA
027420        MOVE V-FIND-DBMS TO V
027440        MOVE 3 TO N-RSE GO TO FIND-LIST0.
027460     IF WORD06 = 'LAST ' MOVE V-FINDLAST TO VA
027480        MOVE V-FIND-DBMS TO V
027500        MOVE 3 TO N-RSE GO TO FIND-LIST0.
027520     IF WORD06 = 'NEXT ' MOVE V-FINDNEXT TO VA
027540        MOVE V-FIND-DBMS TO V
027560        MOVE 3 TO N-RSE GO TO FIND-LIST0.
027620     IF WORD06 = 'PRIOR ' MOVE V-FINDPRIOR TO VA
027640        MOVE V-FIND-DBMS TO V
027660        MOVE 3 TO N-RSE GO TO FIND-LIST0.
027680     IF WORD06 = 'OWNER ' MOVE V-FINDOWNER TO VA
027700        MOVE V-FIND-DBMS TO V
027720        MOVE 4 TO N-RSE GO TO FIND-LIST0.
027740     IF WORD12 = 'PARTIAL ' AND V = V-FIND
027760        MOVE TYPE-PARTIAL-KEY TO VA GO TO FIND-LIST.
027780     IF WORD12 = 'RECORD ' AND VA = V-FINDOWNER
027800        MOVE V-FIND-DBMS TO V MOVE V-FINDOWNER-RECORD TO VAA
027802        GO TO FIND-LIST.
027810     IF VA = V-FINDOWNER AND VAA NOT = V-FINDOWNER-RECORD
027812        MOVE 2 TO N-RSE.
027820     PERFORM DROP-IN-VERB THRU DIVX.
027830     IF N-RSE = 3 IF WORD12 = 'RECORD '
027832        MOVE 1 TO FLAG-PEEKED  SET DX TO ZERO  GO TO FIND-LIST1.
027840     PERFORM DROP-IN-DX THRU DIDX.
027842 FIND-LIST1.
027860     SET X UP BY 1. SET INSTR (X) TO DX.
027880     GO TO GET-VERB-EXIT.
027900 IF-LIST.
027910     IF FLAG-NON-VERB = 1 GO TO E006.
027920     MOVE 0 TO FLAG-IF.
027940     PERFORM GET-WORD THRU GET-WORDX.
027960     MOVE ZEROS TO VA.
027980     IF FLAG-QUOTE NOT EQUAL TO ZERO
028000        MOVE 1 TO FLAG-LEFTLIT  GO TO GET-LITERAL.
028020     IF WORD06 = 'ANY ' MOVE V-IFANY TO V
028040        GO TO IF-LIST.
028060     IF WORD06 = 'BOF1 ' MOVE V-BOF1 TO V
028080        GO TO GET-ONE-VERB.
028100     IF WORD06 = 'BOF2 ' MOVE V-BOF2 TO V
028120        GO TO GET-ONE-VERB.
028140     IF WORD06 = 'BOF3 ' MOVE V-BOF3 TO V
028160        GO TO GET-ONE-VERB.
028180     IF WORD06 = 'EOF1 ' MOVE V-EOF1 TO V
028200        GO TO GET-ONE-VERB.
028220     IF WORD06 = 'EOF2 ' MOVE V-EOF2 TO V
028240        GO TO GET-ONE-VERB.
028260     IF WORD06 = 'EOF3 ' MOVE V-EOF3 TO V
028280        GO TO GET-ONE-VERB.
028300     IF WORD06 = 'FIRST ' MOVE V-IFFIRST TO V
028320        GO TO IF-LIST.
028340     IF WORD06 = 'LAST ' MOVE V-IFLAST TO V
028360        GO TO IF-LIST.
028380     IF WORD06 = 'NEXT ' MOVE V-IFNEXT TO V
028400        GO TO IF-LIST.
028420     IF WORD06 = 'SAME ' MOVE V-IFSAME TO V
028440        GO TO IF-LIST.
028460     IF WORD06 = 'TIME ' AND V = V-IFFIRST
028480        MOVE V-IFFIRSTIME TO V GO TO GET-ONE-VERB.
028500     IF WORD06 = 'TIME ' AND V = V-IFLAST
028520        MOVE V-IFLASTIME TO V GO TO GET-ONE-VERB.
028540     IF (WORD12 = 'FIRSTIME ' OR
028550         WORD12 = 'FIRSTTIME ' OR WORD12 = 'FIRSTME ')
028560         MOVE V-IFFIRSTIME TO V  GO TO GET-ONE-VERB.
028580     IF (WORD12 = 'LASTIME ' OR
028590         WORD12 = 'LASTTIME ' OR WORD12 = 'LASTME ')
028600         MOVE V-IFLASTIME TO V  GO TO GET-ONE-VERB.
028620     IF WORD12 = 'PAGE-LINES ' MOVE V-LINE TO V
028640        GO TO EQ-LIST.
028660     IF WORD06 = 'NEW ' MOVE V-NEW TO V
028680        GO TO IF-LIST.
028700     IF WORD12 = 'NEWGROUP ' MOVE V-IFNEWGROUP TO V
028720        GO TO GET-ONE-VERB.
028740     IF WORD12 = 'NEWGRPV ' MOVE V-IFNEWGROUP TO V
028760        GO TO GET-ONE-VERB.
028780     IF WORD12 = 'NEWPAGE ' MOVE V-IFNEWPAGE TO V
028800        GO TO GET-ONE-VERB.
028820     IF WORD18 = 'PAGE ' AND V = V-NEW
028840        GO TO GET-ONE-VERB.
028980     IF WORD04 NOT = 'NOT ' GO TO IF-LIST1.
029000     IF FLAG-NOT = 0 MOVE 1 TO FLAG-NOT
029020        ELSE MOVE 0 TO FLAG-NOT.
029040     MOVE 1 TO VP-NOT.
029060     GO TO IF-LIST.
029080 IF-LIST1.
029100     IF WORD02 = '( '
029120        ADD 1 TO LPARENCNTR
029140        ADD 1 TO N-OPENLPS
029160        MOVE FLAG-NOT TO NOTT (N-OPENLPS)
029180        MOVE 0 TO VP-NOT
029200        GO TO IF-LIST.
029220*    SEE IF WE JUST READ 'IF' AFTER HAVING PREVIOUSLY
029240*    READ AND/OR--IF SO, RESET V AND READ OBJECT FOLLOWING
029260*    'IF'.
029280     IF V NOT = V-AND AND V NOT = V-OR GO TO IF-LIST2.
029300     MOVE 0 TO FLAG-IF. MOVE V-IF TO V.
029320     IF WORD04 = 'IF ' 
029322        move 'change "and/or if" to "and/or" ' to word30
029324        go to e053.
029340*    HERE WHEN HAVE AND/OR NOT FOLLOWED BY 'IF'
029360 IF-LIST2.
029380     PERFORM DROP-IN-VERB THRU DIVX.
029400*    IF LEFT OF RELATIONAL WAS A LITERAL, WE ALREADY HAVE ITS DX.
029420     IF FLAG-LEFTLIT = 1
029440        MOVE 0 TO FLAG-LEFTLIT
029460        ELSE PERFORM DROP-IN-DX THRU DIDX.
029480     SET DX-IFLEFTSIDE TO DX.
029500     GO TO EQ-LIST.
029520 LEGAL-BY.
029540*    MOST OF THESE LEAGAL ROUTINES INITIALIZE V = 0 SO THAT
029560*    IF FALL THRU ALL TESTS, WHEN CONTROL IS GIVEN TO THE
029580*    DISPATCHER IN VERB-CONTROL, IT WILL CAUSE ROUTING TO
029600*    E005 BECAUSE V = 0.
029620     MOVE ZEROS TO V.
029640     MOVE 1 TO FLAG-BY.
029660     IF VP = V-AVERAGE MOVE V-AVERAGE TO V
029680        GO TO GET-VERB.
029700     IF VP = V-MAXIMUM MOVE V-MAXIMUM TO V
029720        GO TO GET-VERB.
029740     IF VP = V-MINIMUM MOVE V-MINIMUM TO V
029760        GO TO GET-VERB.
029780     IF VP = V-SORT MOVE V-SORT TO V
029800        GO TO GET-VERB.
029820     IF VP = V-TALLY MOVE V-TALLY TO V
029840        GO TO GET-VERB.
029860     IF VP = V-TOTAL MOVE V-TOTAL TO V
029880        GO TO GET-VERB.
029900     GO TO GET-VERB-EXIT.
029920 LEGAL-EQUALS.
029940     IF VP = V-COMPUTE MOVE V-COMPUTE TO V
029960        MOVE V-RESULT TO VA GO TO GET-VERB-EXIT.
029980     IF (VP = V-TALLY OR VP = V-TOTAL OR VP = V-AVERAGE OR
030000         VP = V-MAXIMUM OR VP = V-MINIMUM)
030020        AND VA = V-LPAREN
030040        MOVE 1 TO FLAG-SUMMARY-DEF-TIME GO TO GET-VERB.
030060     IF VP = V-CREATE  IF VAA = V-FILLER
030080        MOVE V-CREATE TO V  GO TO GET-VERB.
030100     IF VP = V-CREATE MOVE V-CREATE TO V
030120        MOVE V-EQUAL TO VA GO TO GET-VERB.
030140     IF VP = V-FIND MOVE V-FIND TO V
030160        MOVE V-EQUAL TO VA GO TO GET-VERB.
030180     IF VP = V-FINDKEY MOVE V-FINDKEY TO V
030200        MOVE V-EQUAL TO VP GO TO GET-VERB-EXIT.
030220     IF VP = V-PICTURE MOVE V-PICTURE TO V
030240        MOVE V-EQUAL TO VA GO TO GET-VERB.
030260     IF VP = V-TITLES MOVE V-TITLES TO V
030280        MOVE V-EQUAL TO VA GO TO GET-VERB.
030300     IF VP = V-SET MOVE V-SET TO V MOVE V-TO TO VA
030320        GO TO GET-VERB.
030330     IF VP = V-CALL
030332        MOVE 1 TO VA  GO TO GET-VERB.
030340     MOVE ZEROS TO V.
030360     GO TO GET-VERB-EXIT.
030380 LEGAL-LPAREN.
030400     IF V = V-COMPUTE
030420        MOVE V-LPAREN TO VA GO TO GET-VERB-EXIT.
030440     IF V = V-TALLY OR V = V-TOTAL OR V = V-AVERAGE OR
030460        V = V-MAXIMUM OR V = V-MINIMUM
030480        MOVE V-LPAREN TO VA  GO TO GET-VERB-EXIT.
030500     MOVE ZEROS TO V.
030520     GO TO GET-VERB-EXIT.
030540 LEGAL-OFF.
030560     MOVE ZEROS TO V.
030580     IF VP = V-DISPLAY MOVE V-DISPLAYOFF TO V.
030600     IF VP = V-HEADING MOVE V-HEADINGOFF TO V.
030620     IF VP = V-PAGING MOVE V-PAGINGOFF TO V.
030640     IF VP = V-PRINT MOVE V-PRINTOFF TO V.
030660     IF VP = V-RPTDATE MOVE V-RPTDATEOFF TO V.
030680     IF VP = V-RPTHEAD MOVE V-RPTHEADOFF TO V.
030700     IF VP = V-SUMMARY MOVE V-SUMMARYOFF TO V.
030720     IF VP = V-TITLES MOVE V-TITLESOFF TO V.
030740     SET INSTR (X) TO V.
030760     GO TO GET-VERB-EXIT.
030780 LEGAL-ON.
030800     MOVE ZEROS TO V.
030820     IF VP = V-DISPLAY MOVE V-DISPLAYON TO V.
030840     IF VP = V-HEADING MOVE V-HEADINGON TO V.
030860     IF VP = V-PAGING MOVE V-PAGINGON TO V.
030880     IF VP = V-PRINT MOVE V-PRINTON TO V.
030900     IF VP = V-RPTDATE MOVE V-RPTDATEON TO V.
030920     IF VP = V-RPTHEAD MOVE V-RPTHEADON TO V.
030940     IF VP = V-SUMMARY MOVE V-SUMMARYON TO V.
030960     IF VP = V-TITLES MOVE V-TITLESON TO V.
030980     SET INSTR (X) TO V.
031000     GO TO GET-VERB-EXIT.
031020 LEGAL-RECORD.
031040     IF V = V-FIND
031060        MOVE V-FIND-DBMS TO V  MOVE V-FINDRECORD TO VA
031080        GO TO GET-VERB-EXIT.
031100     IF V NOT = V-FIND-DBMS GO TO E013.
031120     IF VA = V-FINDSUPPRESS MOVE V-SUPPRESSRECORD TO VA
031140        MOVE 0 TO FLAG-SET-TO-COME  GO TO GET-VERB-EXIT.
031160     MOVE V-FINDRECORD TO VA.
031180     IF N-RSE = 4 GO TO GET-VERB.
031182     IF N-RSE = 2 MOVE 0 TO FLAG-SET-TO-COME.
031190     MOVE 4 TO FLAG-VERB.
031192     GO TO GET-VERB-EXIT.
031220 LEGAL-TO.
031240     MOVE ZEROS TO V.
031260     IF VP = V-COPY MOVE V-COPY TO V
031280        MOVE V-TO TO VA GO TO GET-VERB.
031300     IF VP = V-FINDKEY MOVE V-FINDKEY TO V
031320        MOVE V-TO TO VA GO TO GET-VERB.
031340     IF VP = V-GOTO MOVE V-GOTO TO V
031360        GO TO GET-VERB.
031380     IF VP = V-SET MOVE V-SET TO V
031400        MOVE V-TO TO VA GO TO GET-VERB.
031420     GO TO GET-VERB-EXIT.
031440 LEGAL-AND-OR-RPAREN.
031460     IF VP = V-IF         OR
031480        VP = V-RPAREN     OR
031500        VP = V-IFFIRSTIME OR
031520        VP = V-IFLASTIME  OR
031540        VP = V-BOF1 OR VP = V-BOF2 OR VP = V-BOF3 OR
031560        VP = V-EOF1 OR VP = V-EOF2 OR VP = V-EOF3 OR
031580        VP = V-IFFIRST OR VP = V-IFLAST OR VP = V-IFANY OR
031600        VP = V-IFNEXT OR VP = V-IFSAME OR
031640        VP = V-IFNEWGROUP
031660        NEXT SENTENCE
031680        ELSE MOVE ZEROES TO V  GO TO GET-VERB-EXIT.
031700     IF WORD18 NOT = ') ' GO TO LEGAL-AOP2.
031720     MOVE V-RPAREN TO V.
031740*    NOW SET FLAG-NOT TO NEXT LOWER PAREN LEVEL
031760     SUBTRACT 1 FROM N-OPENLPS.
031780     IF N-OPENLPS NOT = 0
031800        MOVE NOTT (N-OPENLPS) TO FLAG-NOT
031820        ELSE
031840        MOVE 0 TO FLAG-NOT.
031860     GO TO GET-NON-VERB.
031880 LEGAL-AOP2.
031900     IF WORD18 = 'AND ' MOVE V-AND TO V
031920        ELSE MOVE V-OR TO V.
031940     PERFORM DROP-IN-VERB THRU DIVX.
031960     GO TO IF-LIST.
031980 GET-ONE-VERB.
031990     IF FLAG-NON-VERB = 1 GO TO E006.
032000     SET X UP BY 1. MOVE V-NOP TO INSTR (X).
032020     IF FLAG-EOS = 1 AND FLAG-EOS2 NOT EQUAL TO 1
032040        MOVE ZERO TO FLAG-eos flag-if flag-if-statement
032060        SET X UP BY 1 MOVE V-EOS TO INSTR (X).
032080     SET X UP BY 1. MOVE V TO INSTR (X).
032100     IF FLAG-EOS = 2 MOVE 1 TO FLAG-EOS.
032120     MOVE ZERO TO FLAG-EOS2 FLAG-BY.
032140     MOVE 1 TO FLAG-VERB.
032160     GO TO GET-VERB-EXIT.
032180 GET-NON-VERB.
032200*    HERE FOR VERBS THAT CAN BE FOLLOWED BY NON-VERBS
032220*    (IE OBJECTS)--NOW, WRAPUP(NOP) PREVIOUS VERB IN INSTR
032240*    TABLE AND INSERT CURR VERB, SET VERB-FLAG, AND GET
032260*    NEXT VERB( OR NON-VERB).
032265     IF FLAG-NON-VERB = 1 GO TO E006.
032270*    MOVE 1 TO FLAG-NON-VERB.
032280     SET X UP BY 1. MOVE V-NOP TO INSTR (X).
032300     IF FLAG-EOS = 1 MOVE ZERO TO FLAG-EOS
032320        MOVE ZERO TO FLAG-IF  MOVE ZERO TO FLAG-if-statement
032340        SET X UP BY 1 MOVE V-EOS TO INSTR (X).
032360     SET X UP BY 1. MOVE V TO INSTR (X).
032380     MOVE 1 TO FLAG-VERB.
032382     MOVE ZERO TO FLAG-BY.
032400     GO TO GET-VERB.
032420 GET-LITERAL.
032422     if word-table not = spaces  go to e057.
032440     MOVE FLAG-QUOTE TO TEST-QUOTE.
032460     MOVE ZERO TO FLAG-QUOTE.
032480     IF V = V-FINDKEY MOVE SPACE TO LCHAR.
032500*    IF LCHAR = '"' OR LCHAR = "'" GO TO GET-LITERAL2.
032520     MOVE ZERO TO FLAG-SLASHES.
032540     SET DX TO DX-LOWEST. SET LX TO DX.
032560     IF V = V-COPY OR V = V-CREATE OR V = V-OPEN
032580        GO TO GET-LITERAL1.
032590     IF V = V-CALL GO TO GET-LITERAL1.
032600     IF V = V-DISPLAY GO TO GET-LITERAL1.
032620     IF V = V-FINDKEY GO TO GET-LITERAL1.
032630     IF V = V-FIND    GO TO GET-LITERAL1.
032640     IF V = V-IF      GO TO GET-LITERAL1.
032660     IF V = V-IFFIRST GO TO GET-LITERAL1.
032680     IF V = V-IFLAST  GO TO GET-LITERAL1.
032700     IF V = V-IFANY   GO TO GET-LITERAL1.
032720     IF V = V-IFNEXT  GO TO GET-LITERAL1.
032740     IF V = V-IFSAME  GO TO GET-LITERAL1.
032800     IF V = V-PRINT   GO TO GET-LITERAL1.
032820     IF V = V-PICTURE GO TO GET-LITERAL1.
032840     IF V = V-RPTDATE GO TO GET-LITERAL1.
032860     IF V = V-RPTHEAD GO TO GET-LITERAL1.
032880     IF V = V-SET     GO TO GET-LITERAL1.
032900     IF V = V-TITLES  GO TO GET-LITERAL1.
032920     MOVE CHAR TO WORD30. MOVE 007 TO ECODE.
032940     PERFORM E-RROR THRU E-XIT.
032960     MOVE ZEROS TO TEST-QUOTE.
032980     GO TO GET-VERB.
033000 GET-LITERAL1.
033020     SET DX DOWN BY 1.
033040     SET X UP BY 1. SET INSTR (X) TO DX.
033060     SET LX DOWN BY 1. SET DX-LOWEST TO LX.
033080     MOVE TYPE-LITERAL TO L-TYPEV (LX).
033100     MOVE TYPE-LITERAL TO TYPEV.
033120     SET Q TO 1.
033140     MOVE SPACE TO QUOTE-TABLE.
033160     MOVE SPACE TO CHAR.
033180 GET-LITERAL2.
033200     MOVE CHAR TO LCHAR.
033220*    TEST-QUOTE NOT 0 CAUSES GET-WORD TO GET ONLY 1 CHAR
033240*    AT A TIME
033260     PERFORM GET-WORD THRU GET-WORDX.
033280     IF V = 1 GO TO GET-LITERALX.
033300     IF FLAG-QUOTE = TEST-QUOTE MOVE ZERO TO TEST-QUOTE
033320        SET Q DOWN BY 1
033340        GO TO GET-LITERAL3.
033360     IF CHAR = '/' AND LCHAR = '/' AND V = V-RPTHEAD
033380        GO TO GET-LITERAL4.
033400     IF CHAR = '/' AND LCHAR = '/' AND V = V-TITLES
033420        GO TO GET-LITERAL4.
033440     MOVE CHAR TO QUOTEX (Q). MOVE Q TO L-NCHAR (LX).
033460     SET Q UP BY 1.
033480     IF Q > Q-MAX    SET Q TO Q-MAX  GO TO GET-LITERAL3.
033500     GO TO GET-LITERAL2.
033520 GET-LITERAL3.
033540     MOVE CHAR TO LCHAR.
033560     MOVE QUOTE-TABLE TO L-VALUE (LX).
033580     MOVE Q TO L-NCHAR (LX).
033600     MOVE 1 TO FLAG-ALPHA.
033620     IF TEST-QUOTE = ZERO MOVE ZERO TO FLAG-QUOTE
033640        ELSE GO TO GET-LITERAL3A.
033660     IF FLAG-LEFTLIT = 1 SET X DOWN BY 1 GO TO IF-LIST2.
033680     GO TO GET-VERB-EXIT.
033700 GET-LITERAL3A.
033720     IF V = V-TITLES AND FLAG-SLASHES = 1
033740        SET Q TO 11 GO TO GET-LITERAL2.
033760     IF V NOT EQUAL TO V-RPTHEAD GO TO GET-LITERALX.
033780     SET X UP BY 1. SET INSTR (X) TO V-SLASHES.
033800     GO TO GET-LITERAL1.
033820 GET-LITERAL4.
033840     ADD 1 TO FLAG-SLASHES. SET Q DOWN BY 1.
033860     MOVE SPACE TO QUOTEX (Q).
033880     SET Q DOWN BY 1.
033900     GO TO GET-LITERAL3.
033920 GET-LITERALX.
033940     MOVE QUOTE-TABLE TO WORD30.
033960     MOVE 011 TO ECODE.
033980     PERFORM E-RROR THRU E-XIT.
034000     MOVE ZERO TO FLAG-QUOTE TEST-QUOTE FLAG-SLASHES.
034020     GO TO GET-VERB-EXIT.
034040 GET-FILLER.
034060     MOVE SPACE TO WORD06. MOVE SPACE TO WORDX (7).
034080     MOVE ZERO TO FLAG-ALPHA.
034100     PERFORM GET-WORDN THRU GET-WORDX.
034120     GO TO VERB-CONTROL.
034140 GET-KNOWN-VERB.
034160     PERFORM GET-INSTR THRU GET-INSTRX.
034180     GO TO GET-VERB-EXIT.
034200 GET-VERB-EXIT.    EXIT.
034220 DROP-IN-DX.
034240     SET DX TO DX-MAX.
034260     IF FLAG-ALPHA = 1 GO TO DID1.
034280     IF V = V-COMPUTE OR V = V-IF OR V = V-GOTO
034320        OR V = V-RPTDATE OR V = V-OR OR V = V-AND
034340        OR V = V-SET OR V = V-PAGE OR V = V-FIND
034342        OR V = V-IFANY OR V = V-IFFIRST OR V = V-IFLAST
034344        OR V = V-IFNEXT OR V = V-IFSAME OR V = V-CALL
034360        GO TO DID1.
034380     GO TO DIDX.
034400 DID1.
034420     IF DX < DX-LOWEST GO TO DID2.
034440     SET KX TO DX.
034460     IF WORD30 NOT EQUAL TO K-ENDKEY (KX)
034480        SET DX DOWN BY 1 GO TO DID1.
034500*    IF THIS PREVIOUSLY REFERENCED SUMMARY ITEM (ZZ) IS JUST
034520*    NOW BEING DEFINED BY '( = ZZ)' SYNTAX, THEN MODIFY
034540*    THE PREVIOUS ENTRY TO BE TYPE-SUMMARY AND CHANGE THE
034560*    DUPLICATE VX ENTRY POINTER THAT IS IN THE INSTR TABLE
034580*    TO BE A POINTER TO THIS OLDER ENTRY.
034600     IF FLAG-SUMMARY-DEF-TIME = 0 GO TO DID1A.
034620     IF WORD02 NOT = 'ZZ' AND WORD01 NOT = 'X'
034640        MOVE 33 TO ECODE  PERFORM E-RROR THRU E-XIT.
034642     IF D-TYPEV (DX) = TYPE-SUMMARY OR
034644        D-TYPEV (DX) = TYPE-AVERAGE
034646        MOVE 33 TO ECODE
034648        MOVE 'ZZITEM HAS BEEN DEFINED TWICE' TO WORD30
034650        PERFORM E-RROR THRU E-XIT.
034660     MOVE TYPE-SUMMARY TO D-TYPEV (DX).
034680     ADD 1 TO D-NREPEATS (DX).
034700*    CALC HOW FAR BACK IN THE INSTR TABLE WE MUST GO TO
034720*    FIND THE DUPLICATE VX POINTER=F(BY)
034740     IF FLAG-BY = 1 MOVE 4 TO DELTA ELSE MOVE 1 TO DELTA.
034760     SET X DOWN BY DELTA.
034780     SET INSTR (X) TO DX.
034800     SET X UP BY DELTA.
034820     GO TO DID3.
034840 DID1A.
034860*    IF THE ITEM FOUND IS A PRIOR-SUMMARY TYPE, CONSIDER THE
034880*    SPELLING NOT FOUND, SINCE IT IS AN INTERNAL UNIQUE ITEM
034900*    WHOSE SPELLING IS KEPT THE SAME AS ITS MATE SO THAT RDICT
034920*    CAN COPY THE CHARACTERISTICS FROM ITS MATE.
034940     IF D-TYPEV (DX) = TYPE-PRIOR-SUMMARY
034960        SET DX DOWN BY 1  GO TO DID1.
034980*    IF THE FOUND DICT ITEM IS A STATEMENT NUMBER, MAKE SURE
035000*    THAT WE ARE PROCESSING A GO TO, OTHERWISE WE HAVE NOT
035020*    FOUND WHAT WE ARE LOOKING FOR.
035040*    SIMILIARLY, IF THE FOUND DICT ITEM IS ANOTHER TYPE OF
035060*    NUMERIC VALUE, MAKE SURE WE ARE NOT HUNTING FOR A
035080*    GO TO STATEMENT NUMBER.
035100     IF V = V-GOTO AND D-TYPEV (DX) NOT EQUAL TO TYPE-GOTO
035120        SET DX DOWN BY 1  GO TO DID1.
035140     IF D-TYPEV (DX) EQUAL TYPE-GOTO
035160        AND V NOT EQUAL V-GOTO
035180        SET DX DOWN BY 1  GO TO DID1.
035200*    THE 'RECORD' ENTRY DOES NOT NEED TO BE UNIQUE-IT IS
035220*    A TEMPORARY DUMMY NAME
035240     IF WORD06 = 'RECORD' AND
035250        D-TYPEV (DX) NOT = TYPE-RECORD-NAME
035260        SET DX DOWN BY 1   GO TO DID1.
035280     IF D-TYPEV (DX) = TYPE-CONSTANT GO TO DID1B.
035282     ADD 1 TO D-NREPEATS (DX).
035284     IF D-TYPEV (DX) = TYPE-TODAY OR 
035286        D-TYPEV (DX) = TYPE-XRANDOM OR
035288        D-TYPEV (DX) = TYPE-ERROR-STATUS OR
035289        D-TYPEV (DX) = TYPE-ERROR-COUNT OR
035290        D-TYPEV (DX) = TYPE-AREA-NAME OR
035291        D-TYPEV (DX) = TYPE-AREA-IDENT OR
035292        D-TYPEV (DX) = TYPE-RECORD-NAME OR
035294        D-TYPEV (DX) = TYPE-CURR-REC-KEY
035296        GO TO DID3.
035300     IF V = V-COMPUTE
035320        MOVE TYPE-NUMERIC-VARIABLE TO D-TYPEV (DX).
035322*    ALLOW SET TO REDEFINE  TYPE IF SPELLING STARTS WITH 
035324*    X OR ZZ--THIS CASE ARISES WHEN VARIABLE IS FIRST INTRO
035326*    DUCED BY OTHER THAN SET OR COMPUTE
035328     IF V = V-SET IF (WORD01 = NUM-VAR-SPELLING OR WORD02 = 'ZZ')
035330        MOVE TYPE-NUMERIC-VARIABLE TO D-TYPEV (DX).
035340     IF (V = V-ACCEPT OR V = V-DISPLAY)
035360        AND WORD01 = NUM-VAR-SPELLING
035380        MOVE TYPE-NUMERIC-VARIABLE TO D-TYPEV (DX).
035400*    FOR ACCEPTED AND DISPLAY ALPHA VAR, SET NCHAR NON-ZERO
035420*    SO WONT GET ERROR IN DUP5 PARAGRAPH CHECK.
035440*    IF (V = V-ACCEPT OR V = V-DISPLAY)
035460*       AND WORD01 = ALPHA-VAR-SPELLING
035480*       MOVE 1 TO D-NCHAR (DX).
035520     IF D-TYPEV (DX) NOT EQUAL TO TYPE-FILE GO TO DID3.
035540     IF V = V-OPEN OR V = V-CREATE OR V = V-SORT OR
035560        V = V-COPY GO TO DID3.
035580*    CAN'T REFERENCE A FILE NAME EXCEPT FOR OPEN, SORT ETC
035600     GO TO E040.
035602 DID1B.
035604     SET CX TO DX.
035606     IF NUMBN NOT = C-BINARY (CX) OR
035608        SCALE NOT = C-SCALE (CX)
035610        SET DX DOWN BY 1  GO TO DID1.
035612     GO TO DID3.
035620 DID2.
035640     SET KX TO DX.
035660*    IF THIS NEW ITEM IS A SUMMARY ITEM THAT IS BEING
035680*    DEFINED NOW IE ( = ZZ) THEN RATHER THAN INSERTING
035700*    AN ENTIRE NEW ITEM, JUST STORE THE ZZ SPELLING
035720*    INTO THE VX BUCKET THAT HAS ALREADY BEEN RESERVED
035740*    FOR IT AND IS POINTED TO BY EITHER
035760*    PREV OR CURR-BUCKETDX
035780     IF FLAG-SUMMARY-DEF-TIME = 0 GO TO DID2A.
035800     IF WORD02 NOT = 'ZZ' AND WORD01 NOT = 'X'
035820        MOVE 33 TO ECODE  PERFORM E-RROR THRU E-XIT.
035840     IF PREV-BUCKETDX = 0 SET DX TO CURR-BUCKETDX
035860        ELSE SET DX TO PREV-BUCKETDX.
035880     SET KX TO DX.
035900     MOVE WORD30 TO K-ENDKEY (KX).
035920     GO TO DID3.
035940 DID2A.
035960     MOVE WORD30 TO K-ENDKEY (KX).
035980*    D-NREPEATS BELOW USED TO SEE HOW MANY TIMES VARIABLES
036000*    ARE REFERENCED-ONCE MEANS ERROR-MOST LIKELY A
036020*    MIS-SPELLED DATA ITEM.
036040     ADD 1 TO D-NREPEATS (DX).
036060     MOVE TYPE-VARIABLE TO D-TYPEV (DX).
036070     SET DX-LOWEST TO DX.
036072     IF V = V-COMPUTE
036074        MOVE TYPE-NUMERIC-VARIABLE TO D-TYPEV (DX).
036080     IF TYPEV = TYPE-TODAY MOVE TYPEV TO D-TYPEV (DX)
036090        GO TO DID3.
036100     IF TYPEV = TYPE-XRANDOM MOVE TYPEV TO D-TYPEV (DX)
036101        GO TO DID3.
036122     IF WORD30 = 'AREA-NAME '
036123        MOVE TYPE-AREA-NAME TO D-TYPEV (DX).
036124     IF WORD30 = 'AREA-ID '
036125        MOVE TYPE-AREA-IDENT TO D-TYPEV (DX).
036126     IF WORD30 = 'RECORD-NAME '
036128        MOVE TYPE-RECORD-NAME TO D-TYPEV (DX).
036130     IF WORD30 = 'CURRENT-RECORD-KEY'
036132        MOVE TYPE-CURR-REC-KEY TO D-TYPEV (DX).
036134     IF WORD30 = 'ERROR-COUNT ' 
036136        MOVE TYPE-ERROR-COUNT TO D-TYPEV (DX).
036137     IF WORD30 = 'ERROR-STATUS '
036138        MOVE TYPE-ERROR-STATUS TO D-TYPEV (DX).
036180*    ALLOW SET TO DEFINE NUM-VAR IF SPELLING STARTS WITH 'X'/'ZZ'.
036200     IF V = V-SET  IF (WORD01 = NUM-VAR-SPELLING OR WORD02 = 'ZZ')
036220        MOVE TYPE-NUMERIC-VARIABLE TO D-TYPEV (DX).
036240     IF (V = V-ACCEPT OR V = V-DISPLAY)
036260        AND (WORD01 = NUM-VAR-SPELLING OR WORD02 = 'ZZ')
036280        MOVE TYPE-NUMERIC-VARIABLE TO D-TYPEV (DX).
036300*    FOR ACCEPT OR DISPLAY DEFINED ALPHA VAR, SET
036320*    NCHAR NON-ZERO SO WONT GET ERROR IN DUP5 PARAGRAPH TEST.
036340*    IF (V = V-ACCEPT OR V = V-DISPLAY)
036360*       AND WORD01 = ALPHA-VAR-SPELLING
036380*       MOVE 1 TO D-NCHAR (DX).
036400     IF FLAG-ALPHA = 1 GO TO DID3.
036420*    HERE FOR NUMERICS, SET NC,SCALE VALUES AS SET BY GET-WORD
036440     IF V = V-GOTO MOVE TYPE-GOTO TO D-TYPEV (DX)
036460        GO TO DID3.
036480     SET CX TO DX.
036500     MOVE TYPE-CONSTANT TO D-TYPEV (DX).
036520*    VALUES BELOW GOTTEN BY GET-WORD.
036540     MOVE NCHAR TO C-NCHAR (CX).
036560     MOVE SCALE TO C-SCALE (CX).
036580     MOVE NUMBN TO C-BINARY (CX).
036600 DID3.
036620     MOVE D-TYPEV (DX) TO TYPEV.
036640 DIDX.    EXIT.
036660 DROP-IN-VERB.
036680     SET X UP BY 1. MOVE V-NOP TO INSTR (X).
036700     IF FLAG-EOS = 1 MOVE ZERO TO FLAG-EOS
036720        MOVE ZERO TO FLAG-IF  
036740        SET X UP BY 1 MOVE V-EOS TO INSTR (X).
036760     SET X UP BY 1. MOVE V TO INSTR (X).
036780     MOVE 1 TO FLAG-VERB.
036800 DIVX.    EXIT.
036820 GET-WORD.
036840     MOVE ZERO TO FLAG-ALPHA FLAG-SIGN FLAG-STATEMENT-NO.
036860     MOVE ZEROS TO FLAG-EOS2. MOVE ZERO TO FLAG-DECIMAL.
036880     MOVE ZEROS TO FLAG-BAD-CHAR.
036900     MOVE ZEROS TO NUMBN. MOVE ZEROS TO SCALE.
036920     SET W TO ZEROS. MOVE SPACE TO WORD-TABLE.
036940     SET L UP BY 1. IF L > 80 GO TO GET-QUERY.
036960     MOVE LINEX (L) TO CHAR.
036980     IF CHAR = "'" MOVE 1 TO FLAG-QUOTE 
036990        move 0 to flag-all-blank-line  go to get-wordx.
037000     IF CHAR = '"' MOVE 2 TO FLAG-QUOTE 
037010        move 0 to flag-all-blank-line  go to get-wordx.
037020     IF TEST-QUOTE NOT EQUAL TO ZERO GO TO GET-WORDX.
037040     IF CHAR = SPACE GO TO GET-WORD.
037042*    are we introducing a comment? if so, get next query line.
037044     if char ='*' and flag-all-blank-line = 1 go to get-query.
037046     move 0 to flag-all-blank-line.
037060     MOVE SPACE TO LCHAR.
037080     IF CHAR = ',' GO TO GET-WORD.
037100     IF CHAR = ';' MOVE V-CONCAT TO NUMBN GO TO GET-WORDX.
037120 GET-WORD1.
037140     MOVE W TO NCHAR.
037160     MOVE LINEX (L) TO CHAR.
037180     IF CHAR = "'" MOVE 1 TO FLAG-QUOTE GO TO GET-WORDX.
037200     IF CHAR = '"' MOVE 2 TO FLAG-QUOTE GO TO GET-WORDX.
037220     IF TEST-QUOTE NOT EQUAL TO ZERO GO TO GET-WORDX.
037240     IF CHAR = SPACE GO TO GET-WORDN.
037260     IF LCHAR = '*' SET L TO L-MAX GO TO GET-WORDN.
037280     IF CHAR = ',' GO TO GET-WORDN.
037300     IF CHAR = ';' SET L DOWN BY 1 GO TO GET-WORDN.
037302     IF CHAR = '$' IF ECODE NOT = 0 GO TO GET-RDOVRX.
037304     IF CHAR = '.' IF ECODE NOT = 0 GO TO GET-WORD3.
037306 GET-WORD1A.
037320     IF CHAR = '.' AND FLAG-DECIMAL = ZERO AND FLAG-ALPHA = ZERO
037340        MOVE 1 TO FLAG-DECIMAL GO TO GET-WORD2.
037360     IF CHAR = '.' AND W > ZEROS
037380        MOVE 1 TO FLAG-EOS2 GO TO GET-WORDN.
037400     IF CHAR = '$' AND W > ZEROS
037420        MOVE 1 TO FLAG-EOS2 GO TO GET-WORDN.
037440     IF CHAR = '.' MOVE 1 TO FLAG-EOS GO TO GET-WORDN.
037460     IF CHAR = '$' MOVE 1 TO FLAG-EOS GO TO GET-WORDN.
037520     IF CHAR < '0' OR CHAR > '9' MOVE 1 TO FLAG-ALPHA.
037540*    IF CHAR < '0' OR CHAR > 'Z' MOVE 1 TO FLAG-BAD-CHAR.
037560*    IF CHAR > '9' AND CHAR < 'A' MOVE 1 TO FLAG-BAD-CHAR.
037580     IF FLAG-DECIMAL = 1 AND FLAG-ALPHA = ZERO
037600        ADD 1 TO SCALE.
037620     IF L > 3 AND W = 1 AND LCHAR = '-' AND CHAR IS NUMERIC
037640        SET W TO ZEROS
037660        MOVE ZERO TO FLAG-ALPHA MOVE 1 TO FLAG-SIGN.
037680     IF L > 3 AND W = 1 AND LCHAR = '+' AND CHAR IS NUMERIC
037700        SET W TO ZERO MOVE ZERO TO FLAG-ALPHA.
037720     SET W UP BY 1. IF W > 30 MOVE 031 TO ECODE
037740                    PERFORM E-RROR THRU E-XIT SET W TO 1.
037760     MOVE CHAR TO WORDX (W).
037780     MOVE CHAR TO LCHAR.
037800     IF L = 2 AND FLAG-ALPHA = ZERO
037820        MOVE 1 TO FLAG-STATEMENT-NO GO TO GET-WORDN.
037840 GET-WORD2.
037860     SET L UP BY 1. IF L > 80 GO TO GET-WORDN.
037880     GO TO GET-WORD1.
037882 GET-WORD3.
037883*    HERE WHEN FOUND DEC/PERIOD DURING ERROR CONDITION--EXIT NOW
037884*    IF THIS IS A PERIOD(EOS), NOT WITHIN A LITERAL.
037886     IF FLAG-ALPHA = 1 GO TO GET-RDOVRX.
037887*    IF ONLY HAVE HIT NUMERICS SO FAR, BUT HAVE ALSO HIT A .
037888*    PREVIOUSLY, THEN THIS 2ND . MUST BE A PERIOD(EOS).
037890     IF FLAG-DECIMAL = 1 GO TO GET-RDOVRX.
037891     GO TO GET-PEEK.
037918 GET-QUERY.
037920     IF V = 1 GO TO GET-WORDX.
037940     READ QCSTMT AT END MOVE 1 TO V GO TO GET-WORDX.
037960     MOVE QCSTMT-REC TO LINE-TABLE.
037980     IF FLAG-LIST = 1 DISPLAY QCSTMT-REC UPON CONSOLE.
038000     IF FLAG-LIST NOT EQUAL TO 1 MOVE ZERO TO FLAG-LIST.
038020     SET L TO ZEROS.
038030     move 1 to flag-all-blank-line.
038040     GO TO GET-WORD.
038042 GET-PEEK.
038044     IF L = 80 GO TO GET-RDOVRX.
038046     SET L UP BY 1.
038048     IF LINEX (L) = SPACE SET L DOWN BY 1 GO TO GET-RDOVRX.
038050     SET L DOWN BY 1.
038052     GO TO GET-WORD1A.
038051 GET-RDOVRX.
038052     MOVE 2 TO FLAG-EOS2.
038054     GO TO GET-WORDX.
038060************************************
038080*                FLAG-EOS FLAG-EOS2
038100*    $VERB          1        0
038120*    $ VERB         1        0
038140*    VERB$          1        1
038160*    VERB $         0        0
038180*    $ VERB $       1        0
038200*    $ VERB$        1        2
038220*    $VERB$         1        2
038240************************************
038260 GET-WORDN.
038280     IF V = V-GOTO AND FLAG-IF = 1
038300        AND FLAG-DECIMAL = 1 AND SCALE = 0
038320        MOVE 1 TO FLAG-EOS  MOVE 1 TO FLAG-EOS2
038340        MOVE ZERO TO FLAG-IF
038360        GO TO GET-WORDN1.
038380*    ABOVE BUGGED OUT FOR GO TO NN. WITHIN AN IF STATEMENT
038400     IF FLAG-DECIMAL = 1 AND SCALE = ZEROS
038420        AND V NOT EQUAL TO V-IF
038440           MOVE 1 TO FLAG-EOS MOVE 1 TO FLAG-EOS2.
038460     IF FLAG-EOS = 1 AND FLAG-EOS2 = 1
038480        MOVE 2 TO FLAG-EOS2.
038500     IF FLAG-EOS2 = 1 MOVE 1 TO FLAG-EOS.
038510     IF FLAG-EOS > 0 IF V = V-FIND-DBMS MOVE 1 TO FLAG-FINDFINI.
038520 GET-WORDN1.
038540     IF FLAG-EOS2 NOT EQUAL TO ZERO MOVE ZERO TO FLAG-IF.
038560     IF WORD30 = SPACE GO TO GET-WORD.
038580     if word06 = 'HELD '
038600        move '"hold" or "held-name" ' to word30  go to e048.
038660     IF FLAG-BAD-CHAR = 1 MOVE 007 TO ECODE
038680        PERFORM E-RROR THRU E-XIT GO TO GET-WORD.
038700     IF FLAG-ALPHA = 1 GO TO GET-WORDX.
038720     SET W TO 30. SET N TO 18.
038740     MOVE ZEROS TO NUMBN.
038760 GET-SHIFT.
038780*    IF HAVE NUMERIC, COME HERE AND TRANSFER LEFT JUSTIFIED
038800*    WORD30 TO RIGHT JUSTIFIED NUMBN.
038820     IF WORDX (W) NOT EQUAL TO SPACE GO TO GET-SHIFT1.
038840     SET W DOWN BY 1.
038860     IF W < 1 GO TO GET-WORDX.
038880     GO TO GET-SHIFT.
038900 GET-SHIFT1.
038920     MOVE WORDX (W) TO NUMBX (N).
038940     SET W DOWN BY 1. IF W < 1 GO TO GET-SHIFT2.
038960     SET N DOWN BY 1. IF N < 1 GO TO GET-SHIFT2.
038980     GO TO GET-SHIFT1.
039000 GET-SHIFT2.
039020     IF FLAG-STATEMENT-NO = 1 OR V = V-GOTO GO TO GET-WORDX.
039040     IF FLAG-SIGN = 1 MULTIPLY NUMBN BY -1 GIVING NUMBN.
039060*    MOVE NUMBER-TABLE TO WORD-TABLE.
039080 GET-WORDX.   EXIT.
039100 GET-TITLE.
039120*    GET TITLE FOR SUMMARIES AND VARIABLES=DATA NAME
039140*    SPELLING DURING SECOND PASS.
039160     EXAMINE WORD30 TALLYING ALL '-'.
039180     SET W TO 1. SET T TO ZEROS. MOVE ZEROS TO TCHAR.
039200     MOVE 10 TO TMAX. MOVE SPACE TO TITLE-TABLE.
039220 GET-TITLES.
039240     IF TALLY = ZEROS GO TO GET-TITLE2.
039260     IF TALLY = 1 GO TO GET-TITLE1.
039280     SET W UP BY 1. IF W > 30 GO TO GET-TITLEX.
039300     IF WORDX (W) = '-' SET W UP BY 1 SUBTRACT 1 FROM TALLY.
039320     GO TO GET-TITLES.
039340 GET-TITLE1.
039360     SET T UP BY 1. IF T > TMAX GO TO GET-TITLE2.
039380     MOVE WORDX (W) TO TITLEX (T).
039400     SET W UP BY 1. IF W > 30 GO TO GET-TITLEX.
039420     IF WORDX (W) = SPACE GO TO GET-TITLE2.
039440     IF WORDX (W) NOT EQUAL TO '-' GO TO GET-TITLE1.
039460     SET W UP BY 1. IF W > 30 GO TO GET-TITLEX.
039480 GET-TITLE2.
039500     IF T > 10 SUBTRACT 10 FROM T.
039520     IF T > 10 MOVE 10 TO T.
039540     IF T > TCHAR MOVE T TO TCHAR.
039560     IF TMAX = 10 MOVE 20 TO TMAX SET T TO 10
039580        GO TO GET-TITLE1.
039600     IF TITLEX (2) = SPACE MOVE SPACE TO TITLEX (1).
039620 GET-TITLEX.    EXIT.
039640 CHECK-NUMERIC.
039660*    THIS ROUTINE CHECKS TO SEE IF TYPE IS NUMERIC
039680*    THIS ROUTINE IS INCOMPLETE
039700     IF D-TYPEV (DX) = TYPE-ALPHA MOVE 002 TO ECODE.  
039720 CHECK-NUMERICX.  EXIT.
039740 READ-DICT.
039760     ADD 1 TO NFILES.
039780     IF NFILES > N-INPUTFILES GO TO RDICT-XD1.
039800*    FX-PRIMARY FX-SECONDARY FX-TERTIARY SET BY OPEN1 TO
039820*    POINT TO APPROPRIATE DICT ENTRY FOR FD INFO
039840     IF NFILES = 1 SET FX TO FX-PRIMARY.
039860     IF NFILES = 2 SET FX TO FX-SECONDARY.
039880     IF NFILES = 3 SET FX TO FX-TERTIARY.
039900     IF FX = 1 GO TO RDICTX.
039920*    FX = 1 IFF NO OPEN STATEMENT
039940     MOVE ZEROS TO FLAG-FD-FOUND FLAG-DEV-LBL-PPN.
039960     SET LX TO FX. SET LX DOWN BY 1.
039980*    NCHAR(LX) POINTS TO FX WHEN LX ENTRY CONTAINS DEV LIT
040000     IF L-NCHAR (LX) = FX MOVE 1 TO FLAG-DEV-LBL-PPN.
040020     OPEN INPUT QPDICT.
040040 RDICT.
040060     READ QPDICT AT END GO TO RDICT-XD.
040080     MOVE QPDICT-REC TO FD-AREA.
040100     IF FD-IDNT = 'FD' GO TO RDICT-FD.
040120     IF FD-IDNT = 'FE' GO TO RDICT-FD.
040140     IF FLAG-FD-FOUND = ZERO GO TO RDICT.
040160     IF FD-IDNT = 'KD' GO TO RDICT-DD.
040180     IF FD-IDNT = 'DD' GO TO RDICT-DD.
040200     IF FD-IDNT = 'AD' GO TO RDICT-AD.
040220     IF FD-IDNT = 'RD' GO TO RDICT-RD.
040240     IF FD-IDNT = 'SD' GO TO RDICT-SD.
040260     IF FD-IDNT NOT = 'PD' GO TO RDICT.
040280*    NOW STORE ALL PD INFO INTO PD TABLE AND MARK WHERE
040300*    THIS BEGINS WITHIN THE INSTR TABLE.
040320     MOVE FD-AREA TO PD-AREA.
040340     SUBTRACT 1 FROM DX-LOWEST.
040360     SET FPX TO DX-LOWEST.
040380     IF FLAG-FIRST-PD = 0
040400        MOVE 1 TO FLAG-FIRST-PD  SET PD-POINTER TO FPX.
040420     PERFORM PW-UNSCRAMBLE THRU PW-UNSCRAMBLE-EXIT.
040440     MOVE PW-WORKER7 TO P-DYNPASSWORD (FPX).
040460     MOVE PD-REF-NO TO P-DYNREFNO (FPX).
040480     MOVE TYPE-PD TO P-TYPEV (FPX).
040500     ADD 1 TO N-PD.
040520     GO TO RDICT.
040540 RDICT-FD.
040560     IF FLAG-FD-FOUND = 1 GO TO RDICT-XD.
040580     MOVE FD-NAME TO WORD30 HOLD-FD-NAME.
040600     SET KX TO FX.
040620*    IS THE DICT FD THAT WE JUST READ = TO THE DICT WE ARE
040640*    LOOKING FOR, IE THE PRIMARY, SECONDARY, OR TERTIARY AS
040660*    DETERMINED BY PARA READ-DICT?
040680     IF WORD30 NOT EQUAL TO K-ENDKEY (KX) GO TO RDICT.
040700     MOVE 1 TO FLAG-FD-FOUND.
040720*    SEE IF HAVE SPECIAL FILE SPECIFICATION FORMAT.
040740     IF FD-IDNT = 'FE' GO TO RDICT-FE.
040760     IF FD-FILETYPE = TYPE-DBMS GO TO RDICT-FD2.
040780*    F-ID GETS INITIALIZED TO INFILE.EXT
040800     MOVE FD-INLABEL TO F-ID (FX).
040820*    MOVE FD-PPN     TO PPN-WORK.
040840*    PERFORM PPN-RTN THRU PPN-EXIT.
040860*    MOVE PPN        TO F-PPN (FX).
040880     MOVE ZEROES     TO F-PPN (FX).
040890     MOVE 'I' TO F-OPENIO (FX).
040900 RDICT-FD1.
040920     IF F-DEVICE (FX) = SPACE MOVE 'DSK' TO F-DEVICE (FX).
040940 RDICT-FD2.
040960*    ADD 20 TO FILE TYPE TO DISTINGUISH FROM DATA TYPE
040980     MOVE FD-FILETYPE TO TYPEV. ADD 20 TO TYPEV.
041000     MOVE TYPEV TO F-TYPEV (FX).
041020     MOVE TYPEV TO FILETYPE.
041040*    SET PRIMARY-LENGTH     = RECSIZE OF MASTER FILE
041060*        SECONDARY-LENGTH   = RECSIZE OF SECONDARY FILE
041080*        TERTIARY-LENGTH    = RECSIZE OF TERTIARY FILE.
041100*    SET PRIMARY-ORIGIN     = 1
041120*        SECONDARY-ORIGIN   = PRIMARY-LENGTH
041140*        TERTIARY-ORIGIN    = SECONDARY ORIG + SECOND LEN
041160*    SET FCHAR = MAX(PRIM,SEC,TERT ORIGIN) - 1
041180*    ADJUST RECSIZE TO BE MULTIPLE OF 6 OR 7
041200     IF FILETYPE = TYPE-FILE-SIXBIT AND FD-BLKSIZE = ZEROS
041220        PERFORM ADJUST-SIXBIT THRU ADJUST-SIXT.
041240     IF FILETYPE = TYPE-FILE-ASCII AND FD-BLKSIZE = ZEROS
041260        PERFORM ADJUST-ASCII THRU ADJUST-ASCIXT.
041280     MOVE FD-RECSIZE TO F-RECLEN (FX).
041300     IF NFILES = 1 MOVE FD-RECSIZE TO PRIMARY-LENGTH
041320        MOVE CONST1 TO PRIMARY-ORIGIN
041340        MOVE PRIMARY-ORIGIN TO FCHAR.
041360     IF NFILES = 2 MOVE FD-RECSIZE TO SECONDARY-LENGTH
041380        ADD PRIMARY-ORIGIN PRIMARY-LENGTH
041400            GIVING SECONDARY-ORIGIN
041420        MOVE SECONDARY-ORIGIN TO FCHAR.
041440     IF NFILES = 3 MOVE FD-RECSIZE TO TERTIARY-LENGTH
041460        ADD SECONDARY-ORIGIN SECONDARY-LENGTH
041480            GIVING TERTIARY-ORIGIN
041500        MOVE TERTIARY-ORIGIN TO FCHAR.
041520*    MOVE FCHAR TO F-ORIGIN (FX).
041540     MOVE 1 TO F-ORIGIN (FX).
041560     SUBTRACT 1 FROM FCHAR.
041580*    FCHAR IS NOW ALL SET FOR THE DD'S WHICH IMMEDIATELY FOLLOW
041600*    THIS FD--ONLY A SPELLING MATCH BETWEEN THE DD'S IN DICT(UP
041620*    TO THE NEXT FD IN THE DICT) AND THE DD'S IN THE DYNAMIC DICT
041640*    WILL BE ASSUMED TO BE IN THE FD(AND THEREFORE THE FCHAR) FOR
041660*    WHICH WE JUST PROCESSED.
041680     IF FD-BLKSIZE < ZEROS
041700        MULTIPLY FD-BLKSIZE BY MINUS-ONE GIVING FD-BLKSIZE
041720        MULTIPLY FD-BLKSIZE BY FD-RECSIZE GIVING FD-BLKSIZE-L
041722        DIVIDE FD-RECSIZE INTO FD-BLKSIZE-L GIVING FD-BLKSIZE
041724        ELSE
041740     IF FD-BLKSIZE NOT EQUAL TO ZEROS
041760        AND FD-BLKSIZE NOT LESS THAN FD-RECSIZE
041780        DIVIDE FD-RECSIZE INTO FD-BLKSIZE GIVING FD-BLKSIZE.
041800     MOVE FD-BLKSIZE TO F-BLKLEN (FX).
041820     IF FILETYPE = TYPE-FILE-DBMS
041840        SET BX TO FX
041860        MOVE FD-NAME TO B-SUBSCHEMA (BX)
041880        MOVE FD-DBMS-LABEL TO B-SCHEMA (BX)
041900        MOVE FIRST-PASSWORD TO B-PASSWORD (BX)
041920        GO TO RDICT-FD3.
041940     IF FLAG-DEV-LBL-PPN = 1
041960        MOVE L-VALUE (LX) TO QUOTE-TABLE
041980        PERFORM GET-DEV-LBL-PPN THRU GET-DLP-EXIT.
042000     MOVE FD-KEYPOS  TO F-KEYLOC (FX).
042020     MOVE FD-KEYLEN  TO F-KEYLEN (FX).
042040     MOVE FD-KEYTYPE TO F-KEYTYPE (FX).
042060     MOVE FD-KEYSIGN TO F-KEYSIGN (FX).
042080 RDICT-FD3.
042100*    SAVE FILE PROTECTION INFO FOR LATER TESTS WHEN PD
042120*    IS AVAILABLE.
042140     MOVE FD-PROTECT TO FD-PROT (NFILES).
042160     MOVE FD-READ-PROTECT TO FD-RPROT (NFILES).
042180     MOVE FD-COPY-PROTECT TO FD-CPROT (NFILES).
042200     MOVE FD-REWRITE-PROTECT TO FD-REWPROT (NFILES).
042220     MOVE HOLD-FD-NAME TO FD-NAMEPROT (NFILES).
042240*    NOW CONVERT PROG # AND USER # TO OCTAL
042260     ENTER MACRO IQDCOC USING PROJ10,PROJ8.
042280     ENTER MACRO IQDCOC USING USER10,USER8.
042282     IF FILETYPE = TYPE-FILE-DBMS  IF FLAG-FIND = 0
042284        MOVE 047 TO ECODE  PERFORM E-RROR THRU E-XIT.
042300     IF FILETYPE = TYPE-FILE-DBMS AND NFILES = 1
042320        MOVE 1 TO FLAG-RANDOM-READ1  GO TO RDICT.
042340     MOVE F-DEVICE (FX) TO DEVICER.
042360*    ENTER MACRO IQLOOK USING
042380*       DEVICER,FD-INLABEL,PROJ8,USER8,I.
042400*    IF I = -1 GO TO RDICT.
042420*    MOVE ZEROS TO PROJ8,USER8.
042440*    ENTER MACRO IQLOOK USING
042460*       DEVICER,FD-INLABEL,PROJ8,USER8,I.
042480*    IF I = -1 GO TO RDICT.
042500*    MOVE 009 TO ECODE.
042520*    PERFORM E-RROR THRU E-XIT.
042540*    NOW READ DD'S ASSOCIATED WITH THE FD WE JUST PROCESSED
042560*    AND SET FCHAR FOR.
042580     GO TO RDICT.
042600 RDICT-FE.
042620*    HERE FOR SPECIAL FILE-DEVICE SPECIFICATIONS
042640*    IF DEC-20: FE-FILESPEC=DEVICE:<DIR>FILE.EXT
042660*    IF DEC-10: FE-FILESPEC=DEVICE:FILE.EXT[PROJ,USER]
042680     MOVE FE-NAME            TO FD-NAME.
042700     MOVE FE-FILESPEC        TO QUOTE-TABLE.
042720     PERFORM GET-DEV-LBL-PPN THRU GET-DLP-EXIT.
042740     MOVE FE-FILETYPE        TO FD-FILETYPE.
042760     MOVE FE-RECSIZE         TO FD-RECSIZE.
042780     MOVE FE-BLKSIZE         TO FD-BLKSIZE.
042800     MOVE FE-KEYPOS          TO FD-KEYPOS.
042820     MOVE FE-KEYLEN          TO FD-KEYLEN.
042840     MOVE FE-KEYTYPE         TO FD-KEYTYPE.
042860     MOVE FE-KEYSIGN         TO FD-KEYSIGN.
042880     MOVE FE-PROTECT         TO FD-PROTECT.
042900     MOVE FE-PROTECT-READ    TO FD-READ-PROTECT.
042920     MOVE FE-PROTECT-COPY    TO FD-COPY-PROTECT.
042940     MOVE FE-PROTECT-REWRITE TO FD-REWRITE-PROTECT.
042960     GO TO RDICT-FD1.
042980 ADJUST-SIXBIT.
043000     DIVIDE FD-RECSIZE BY 6 GIVING REMAINER.
043020     IF R1 = 1 ADD 5 TO FD-RECSIZE.
043040     IF R1 = 3 ADD 4 TO FD-RECSIZE.
043060     IF R1 = 5 ADD 3 TO FD-RECSIZE.
043080     IF R1 = 6 ADD 2 TO FD-RECSIZE.
043100     IF R1 = 8 ADD 1 TO FD-RECSIZE.
043120 ADJUST-SIXT.    EXIT.
043140 ADJUST-ASCII.
043160     DIVIDE FD-RECSIZE BY 7 GIVING REMAINER.
043180     IF R1 = 1 ADD 6 TO FD-RECSIZE.
043200     IF R1 = 2 ADD 5 TO FD-RECSIZE.
043220     IF R1 = 4 ADD 4 TO FD-RECSIZE.
043240     IF R1 = 5 ADD 3 TO FD-RECSIZE.
043260     IF R1 = 7 ADD 2 TO FD-RECSIZE.
043280     IF R1 = 8 ADD 1 TO FD-RECSIZE.
043300 ADJUST-ASCIXT.    EXIT.
043320 RDICT-DD.
043340     MOVE QPDICT-REC TO DD-AREA.
043360     MOVE ZERO TO FLAG-DD-FOUND.
043380     MOVE DD-NAME TO WORD30.
043400*    SEE IF DICT ITEM IS REFERENCED BY QUERY, RATHER THAN
043420*    SEEING IF REFERENCED ITEM IS IN DICTIONARY
043440     PERFORM LOOK-IN-DX THRU LIDX.
043460     IF DX < DX-LOWEST GO TO RDICT-DD1.
043480*    HERE IF FOUND ITEM.
043500     GO TO RDICT-DD5.
043520 RDICT-DD1.
043540     MOVE 1 TO FLAG-DD-FOUND.
043560     MOVE HOLD-FD-NAME TO WORD30.
043580     SET DD TO ZEROS. SET W TO ZEROS.
043600 RDICT-DD2.
043620*    APPEND A DASH(-) AT END OF FILE NAME
043640     SET W UP BY 1. IF W > 30 GO TO RDICT.
043660     MOVE WORDX (W) TO CHAR.
043680     IF CHAR = SPACE MOVE '-' TO WORDX (W)
043700        GO TO RDICT-DD3.
043720     GO TO RDICT-DD2.
043740 RDICT-DD3.
043760*    APPEND DATA NAME TO FILENAME-(IE FILENAME-DATANAME)
043780     SET DD UP BY 1. IF DD > 30 GO TO RDICT-DD4.
043800     MOVE DD-NAMEX (DD) TO CHAR.
043820     IF CHAR = SPACE GO TO RDICT-DD4.
043840     SET W UP BY 1. IF W > 30 GO TO RDICT-DD4.
043860     MOVE CHAR TO WORDX (W).
043880     GO TO RDICT-DD3.
043900 RDICT-DD4.
043920*    SEE IF ITEM IS IN DICT AS FILENAME-DATANAME
043940     PERFORM LOOK-IN-DX THRU LIDX.
043960     IF DX < DX-LOWEST GO TO RDICT.
043980 RDICT-DD5.
044000*    CHECK TO SEE IF ITEM IS PROTECTED BY PASSWORDS
044020     MOVE DD-REF-NO TO TEST-REF-NO.
044040     MOVE DD-PROTEXCL TO TEST-PROTEXCL.
044044     MOVE PW-POINTER TO PW-LIST.
044046     MOVE N-PASSWORDS TO N-PW.
044060     PERFORM UNLOCKER THRU UNLOCKER-EXIT.
044080     IF FLAG-LOCKED NOT = 1 GO TO RDICT-DD7.
044106*    HERE IF USER DID NOT FURNISH PROPER PASSWORDS VIA AUTHORITY
044107*    GET ADDITIONAL ONES VIA PROMPTING
044108     MOVE 'DATA ITEMS' TO ITEM-OR-FILE.
044109     IF FLAG-PW-ITEM = 0
044110        MOVE 1 TO FLAG-PW-ITEM
044111        PERFORM PASSWORD-PROMPTER THRU PROMPTX.
044112     IF N-PROMPTS = 0   GO TO RDICT-DD6.
044113     MOVE PROMPT-PW-POINTER TO PW-LIST.
044114     MOVE N-PROMPTS TO N-PW.
044115     PERFORM UNLOCKER THRU UNLOCKER-EXIT.
044116     IF FLAG-LOCKED NOT = 1 GO TO RDICT-DD7.
044117 RDICT-DD6.
044118     MOVE 14 TO ECODE. PERFORM E-RROR THRU E-XIT.
044119 RDICT-DD7.
044120     MOVE DD-TITLE1  TO D-TITLE1 (DX).
044140     MOVE DD-TITLE2  TO D-TITLE2 (DX).
044160     MOVE DD-PICT    TO D-PICT (DX).
044180     MOVE DD-GRPLEN  TO D-GRPLEN (DX).
044200     MOVE DD-GRPNAME TO D-GRPNAME (DX).
044220     MOVE DD-STOPV   TO D-STOPV (DX).
044240*    IF HAVE PRIOR-SUMMARY ITEM, PRESERVE BOTH THE FACT THAT
044260*    WE HAVE A PRIOR-SUMMARY ITEM AND THE TYPE OF ITS FATHER.
044280     IF D-TYPEV (DX) = TYPE-PRIOR-SUMMARY
044300        ADD DD-TYPEV  50  GIVING D-TYPEV (DX)
044320        ELSE
044340        MOVE DD-TYPEV   TO D-TYPEV (DX).
044360     MOVE DD-NCHAR   TO D-NCHAR (DX).
044380     MOVE DD-SCALE   TO D-SCALE (DX).
044400     MOVE DD-ECHAR   TO D-ECHAR (DX).
044420     MOVE DD-TCHAR   TO D-TCHAR (DX).
044440*    FCHAR = F(PRIMARY,SECONDARY,TERTIARY)
044460*    MODIFY FCHAR DEPENDING ON WHICH FILE ITEM IS IN
044480     ADD FCHAR       TO DD-FCHAR.
044500     MOVE DD-FCHAR   TO D-FCHAR (DX).
044502     IF FILETYPE NOT = 28 GO TO RDICT-DD8.
044504*    *HERE IF PROCESSING DBMS; USE NREPEATS TO MARK
044506*    * TYPE OF LATEST RECORD
044508     IF LATEST-RECTYPE = 7 GO TO RDICT-DD8.
044510*    *USE NREPEATS < 0 TO FLAG ITEM IN SIXBIT RECORD
044512     IF DD-NREPEATS > 0
044514         SUBTRACT DD-NREPEATS FROM 0 GIVING DD-NREPEATS
044516             ELSE MOVE -1 TO DD-NREPEATS.
044518 RDICT-DD8.
044520     MOVE DD-NREPEATS TO D-NREPEATS (DX).
044540*    NOW SEE IF SAME ITEM IS THERE AGAIN-POSSIBLE FOR PRIOR
044560*    SUMMARY TYPES.
044580     MOVE 1 TO FLAG-CONTINUE.
044600     PERFORM LOOK-IN-DX THRU LIDX.
044620     IF DX < DX-LOWEST
044640        MOVE 0 TO FLAG-CONTINUE ELSE GO TO RDICT-DD5.
044660     IF FLAG-DD-FOUND = ZERO GO TO RDICT-DD1.
044680     GO TO RDICT.
044700 RDICT-AD.
044720     MOVE QPDICT-REC TO AD-AREA.
044740     MOVE AD-NAME TO WORD30.
044760     PERFORM LOOK-IN-DX THRU LIDX.
044780     IF DX < DX-LOWEST GO TO RDICT.
044800     SET RX TO DX.
044820     IF R-AREA-SET (RX) NOT EQUAL TO V-FINDAREA
044840        MOVE R-ENDKEY (RX) TO WORD30
044850        MOVE 013 TO ECODE  PERFORM E-RROR THRU E-XIT.
044860     MOVE TYPE-DBMS-KEY TO R-TYPEV (RX).
044880     MOVE AD-ORIGIN TO R-FCHAR (RX).
044900     MOVE AD-AREA-NO   TO R-SCALE (RX).
044920     MOVE AD-LENGTH TO R-NCHAR (RX).
044940     GO TO RDICT.
044960 RDICT-RD.
044980     MOVE QPDICT-REC TO RD-AREA.
045000     MOVE RD-NAME TO WORD30.
045010     MOVE RD-ORIGIN TO FCHAR. SUBTRACT 1 FROM FCHAR.
045011     MOVE RD-RECNO TO LATEST-RECTYPE.
045012     IF LATEST-RECTYPE NOT = 6 AND LATEST-RECTYPE NOT = 7
045013         DISPLAY " %RECORD TYPE IS NOT 6 OR 7; ASSUMING 7"
045014         DISPLAY "  PLEASE CORRECT REC TYPES IN DICTIONARY"
045015         MOVE 7 TO LATEST-RECTYPE.
045020     PERFORM LOOK-IN-DX THRU LIDX.
045040     IF DX < DX-LOWEST GO TO RDICT. 
045060     SET RX TO DX.
045080     MOVE RD-ORIGIN   TO FCHAR. SUBTRACT 1 FROM FCHAR.
045100     MOVE TYPE-DBMS-KEY TO R-TYPEV (RX).
045120     MOVE RD-ORIGIN TO R-FCHAR (RX).
045140     MOVE RD-RECNO   TO R-SCALE (RX).
045160     MOVE RD-RECNO TO R-REC-NO (RX).
045180     MOVE RD-LENGTH TO R-NCHAR (RX).
045200     GO TO RDICT.
045220 RDICT-SD.
045240     MOVE QPDICT-REC TO SD-AREA.
045260     MOVE SD-NAME TO WORD30.
045280     PERFORM LOOK-IN-DX THRU LIDX.
045300     IF DX < DX-LOWEST GO TO RDICT.
045320     SET RX TO DX.
045340     IF R-AREA-SET (RX) NOT EQUAL TO V-FINDSET
045360        MOVE R-ENDKEY (RX) TO WORD30
045370        MOVE 013 TO ECODE  PERFORM E-RROR THRU E-XIT.
045380     MOVE TYPE-DBMS-KEY TO R-TYPEV (RX).
045400     MOVE SD-ORIGIN TO R-FCHAR (RX).
045420     MOVE SD-OWNER-REC-NO TO R-SCALE (RX).
045440     MOVE SD-OWNER-REC-NO TO R-REC-NO (RX).
045460     MOVE SD-LENGTH TO R-NCHAR (RX).
045480     GO TO RDICT.
045500 RDICT-XD.
045520     CLOSE QPDICT.
045540*    DID WE SEARCH ENTIRE DICTIONARY WITHOUT A HIT?
045560     IF FLAG-FD-FOUND = 0
045580        MOVE K-ENDKEY (KX) TO WORD30
045600        GO TO E037.
045620     GO TO READ-DICT.
045640 RDICT-XD1.
045660*    SET FCHAR BEYOND ALL INPUT BUFFERS.
045680     ADD PRIMARY-LENGTH SECONDARY-LENGTH TERTIARY-LENGTH 1
045700         GIVING FCHAR.
045720 RDICTX.    EXIT.
045740 GET-DEV-LBL-PPN.
045760*    CALLED FROM RDICT-FE,CREATE2,OPEN2A TO PROCESS FILE-SPECS
045780     IF FX < 2 MOVE 1 TO FLAG-LBL-ERROR GO TO GET-DLP-ERR.
045800     SET Q TO ZEROS. MOVE ZERO TO FLAG-LBL-ERROR.
045820*    INITIALIZE DEVICE IN CASE IT IS NOT SPECIFIED
045840*    F-PPN(FX) AND FD-LABEL ALREADY INITIALIZED BY CALLER
045860     MOVE "DSK" TO F-DEVICE (FX).
045880 GET-DLP.
045900     SET W TO 1. MOVE SPACE TO WORD30.
045920 GET-DEV.
045940     SET Q UP BY 1.
045960     MOVE QUOTEX (Q) TO CHAR.
045980     IF CHAR = SPACE GO TO GET-DLP-EXIT.
046000     IF CHAR = ':' GO TO GET-DEV1.
046020     IF CHAR = '.' GO TO GET-LBL.
046040     IF CHAR = '>' GO TO GET-DIR.
046060     IF CHAR = '[' GO TO GET-EXT.
046080     IF CHAR = ',' MOVE 1 TO FLAG-LBL-ERROR.
046100     IF CHAR = ']' MOVE 1 TO FLAG-LBL-ERROR.
046120     IF CHAR = '*' MOVE 1 TO FLAG-LBL-ERROR.
046140     MOVE CHAR TO WORDX (W).
046160     SET W UP BY 1. IF W > 30 MOVE 1 TO FLAG-LBL-ERROR.
046180     IF FLAG-LBL-ERROR = 1 GO TO GET-DLP-ERR.
046200     GO TO GET-DEV.
046220 GET-DEV1.
046240*    GET HERE WHEN HIT :  ASSUME WE JUST READ DEVICE
046260     MOVE WORD06 TO F-DEVICE (FX).
046280     GO TO GET-DLP.
046300 GET-DIR.
046320     MOVE WORD30 TO F-ID (FX).
046340     GO TO GET-DLP.
046360 GET-LBL.
046380     MOVE WORD06 TO FD-INFILE.
046400*    NOW GET EXTENSION, IF SPECIFIED
046420     SET W TO 7.
046440 GET-LBL1.
046460     SET Q UP BY 1.
046480     MOVE QUOTEX (Q) TO CHAR.
046500     IF CHAR = SPACE
046520        MOVE WORD12 TO FD-LABEL  GO TO GET-DLP-EXIT.
046540     IF CHAR = "["
046560        MOVE WORD12 TO FD-LABEL  GO TO GET-EXT1.
046580     MOVE CHAR TO WORDX (W).
046600     IF W < 10
046620        SET W UP BY 1  GO TO GET-LBL1.
046640     GO TO GET-DLP-ERR.
046660 GET-EXT.
046680     MOVE WORD06 TO FD-INEXT.
046700     MOVE FD-LABEL TO F-ID (FX).
046720 GET-EXT1.
046740     SET PX TO 1. MOVE SPACE TO PPN-WORK.
046760 GET-PPN.
046780     MOVE QUOTEX (Q) TO CHAR.
046800     IF CHAR = SPACE GO TO GET-PPN2.
046820     MOVE CHAR TO PPN-CHAR (PX).
046840     SET Q UP BY 1. IF Q > 72 MOVE 1 TO FLAG-LBL-ERROR
046860                       GO TO GET-DLP-ERR.
046880     SET PX UP BY 1. IF PX > 19 MOVE 1 TO FLAG-LBL-ERROR
046900                       GO TO GET-DLP-ERR.
046920     GO TO GET-PPN.
046940 GET-PPN2.
046960     PERFORM PPN-RTN THRU PPN-EXIT.
046980*    MOVE PPN TO F-PPN (FX).
047000     MOVE ZERO TO F-PPN (FX).
047020     GO TO GET-DLP-EXIT.
047040 GET-DLP-ERR.
047060     MOVE CHAR TO WORDX (W).
047080     MOVE 032 TO ECODE. PERFORM E-RROR THRU E-XIT.
047100 GET-DLP-EXIT.    EXIT.
047120 PPN-RTN.
047140     IF PPN-WORK = SPACE GO TO PPN-ERR.
047160     EXAMINE PPN-WORK TALLYING ALL ','.
047180     IF TALLY NOT EQUAL TO 1 GO TO PPN-ERR.
047200     MOVE 000 TO ECODE.
047220     SET PX TO ZEROS.
047240 PPN0.
047260     MOVE ZEROS TO PPN-NUMBER PPN-HALF.
047280     SET PI TO 7.
047300 PPN1.
047320     SET PX UP BY 1. IF PX > 19 GO TO PPN-ERR.
047340     SET HX TO PX.
047360     IF PPN-CHAR (PX) = ',' GO TO PPN2.
047380     IF PPN-CHAR (PX) = ']' GO TO PPN4.
047400     IF PPN-CHAR (PX) = SPACE GO TO PPN4.
047420     GO TO PPN1.
047440 PPN2.
047460     SET PI DOWN BY 1. IF PI < 1 GO TO PPN3.
047480     SET PX DOWN BY 1. IF PX < 1 GO TO PPN3.
047500     SET PN TO PX.
047520     IF PPN-CHAR (PX) IS NUMERIC
047540        MOVE PPN-NUM (PN) TO PPN-DIGIT (PI).
047560     GO TO PPN2.
047580 PPN3.
047600     MOVE PPN-NUMBER TO PROJ10.
047620     PERFORM DEC-TO-BIN VARYING PI FROM 1 BY 1 UNTIL PI > 6.
047640     IF PPN-HALF > 32767 MOVE 001 TO ECODE.
047660     COMPUTE PPN = PPN-HALF * 262144.
047680     SET PX TO HX. GO TO PPN0.
047700 PPN4.
047720     SET PI DOWN BY 1. IF PI < 1 GO TO PPN5.
047740     SET PX DOWN BY 1. IF PX < 1 GO TO PPN5.
047760     SET PN TO PX.
047780     IF PPN-CHAR (PX) = ',' GO TO PPN5.
047800     IF PPN-CHAR (PX) IS NUMERIC
047820        MOVE PPN-NUM (PN) TO PPN-DIGIT (PI).
047840     GO TO PPN4.
047860 PPN5.
047880     MOVE PPN-NUMBER TO USER10.
047900     PERFORM DEC-TO-BIN VARYING PI FROM 1 BY 1 UNTIL PI > 6.
047920     COMPUTE PPN = PPN + PPN-HALF.
047940     IF ECODE NOT EQUAL TO 000 GO TO PPN-ERR.
047960     GO TO PPN-EXIT.
047980 DEC-TO-BIN.
048000     IF PPN-DIGIT (PI) = 8 OR 9 MOVE 001 TO ECODE.
048020     COMPUTE PPN-HALF = 8 * PPN-HALF + PPN-DIGIT (PI).
048040 PPN-ERR.
048060     MOVE 000 TO ECODE.
048080     MOVE ZEROS TO PPN PROJ10 USER10.
048100 PPN-EXIT.    EXIT.
048120
048140*****************************
048160* SUBROUTINE BELOW CHECKS ANY PROTECTED ITEMS TO SEE IF
048180* THEIR PASSWORD WAS FURNISHED IN AN AUTHORITY STATEMENT.
048200*****************************
048220 UNLOCKER.
048240     IF FLAG-LOCKED = 2 GO TO UNLOCKER-EXIT.
048260*     ABOVE BYPASSES PW CHECK IF UNIVERSAL PASSWORD
048280*          WAS FURNISHED**.
048300     MOVE ZERO TO FLAG-LOCKED.
048320     IF TEST-REF-NO = ZERO GO TO UNLOCKER-EXIT.
048340*    IF PW-LIST = 0, THEN NO PASSWORDS WERE FURNISHED.
048360     IF PW-LIST = 0
048380        MOVE 1 TO FLAG-LOCKED  GO TO UNLOCKER-EXIT.
048400*    SET INDEX FOR DYNAMIC PD INFO
048420     MOVE 1 TO J.  SET FPX TO PD-POINTER.
048440     IF TEST-PROTEXCL = '0' GO TO UNLOCKER1.
048460     GO TO UNLOCKER-EXCL.
048480 UNLOCKER1.
048500     IF P-DYNREFNO (FPX) NOT LESS THAN TEST-REF-NO
048520        MOVE 1 TO K  SET AX TO PW-LIST
048540        GO TO  UNLOCKER3.
048560 UNLOCKER2.
048580     ADD 1 TO J.  SET FPX DOWN BY 1.
048600     IF J IS NOT GREATER THAN N-PD GO TO UNLOCKER1.
048620     MOVE 1 TO FLAG-LOCKED.  GO TO UNLOCKER-EXIT.
048640 UNLOCKER3.
048660     IF AUTH-PASSWORD (AX) = P-DYNPASSWORD (FPX)
048680        GO TO UNLOCKER-EXIT.
048700     ADD 1 TO K. SET AX DOWN BY 1.
048720     IF K IS NOT GREATER THAN N-PW GO TO UNLOCKER3.
048740     GO TO UNLOCKER2.
048760 UNLOCKER-EXCL.
048780     IF P-DYNREFNO (FPX) = TEST-REF-NO
048800         MOVE P-DYNPASSWORD (FPX) TO EFF-PASSWORD
048820         MOVE 1 TO J   SET AX TO PW-LIST
048840         GO TO UNLOCKER-EXCL1.
048860     ADD 1 TO J.  SET FPX DOWN BY 1.
048880     IF J IS NOT GREATER THAN N-PD GO TO UNLOCKER-EXCL.
048900     MOVE 1 TO FLAG-LOCKED.
048920     GO TO UNLOCKER-EXIT.
048940 UNLOCKER-EXCL1.
048960     IF EFF-PASSWORD = AUTH-PASSWORD (AX) GO TO UNLOCKER-EXIT.
048980     ADD 1 TO J.  SET AX DOWN BY 1.
049000     IF J IS NOT GREATER THAN N-PW GO TO UNLOCKER-EXCL1.
049020     MOVE 1 TO FLAG-LOCKED.
049040 UNLOCKER-EXIT.
049060     EXIT.
049062 PASSWORD-PROMPTER.
049063     DISPLAY PROMPTER-MESSAGE UPON CONSOLE.
049064     MOVE 0 TO N-PROMPTS.
049066 PROMPT1.
049068     PERFORM CONFIDENTIAL-ASK.
049070     IF RETURNED-PASSWORD = SPACES GO TO PROMPTX.
049072     SUBTRACT 1 FROM DX-LOWEST.
049074     SET AX TO DX-LOWEST.
049076*    SET PROMPT-PW-POINTER TO FIRST PASSWORD IN THIS LIST.
049078     IF N-PROMPTS = 0   SET PROMPT-PW-POINTER TO AX.
049080     ADD 1 TO N-PROMPTS.
049082     MOVE RETURNED-PASSWORD TO AUTH-PASSWORD (AX).
049084     MOVE TYPE-AUTHORITY TO A-TYPEV (AX).
049086     IF RETURNED-PASSWORD = UNIVERSAL-PASSWORD
049088        MOVE 2 TO FLAG-LOCKED.
049090     GO TO PROMPT1.
049092 PROMPTX.
049094     EXIT.
049096************************
049100* SUBROUTINE BELOW UNSCRAMBLES PASSWORDS.
049120************************
049140 PW-UNSCRAMBLE.
049160     MOVE 1 TO K.
049180 PW-UNSCRAMBLE1.
049200     MOVE PD-CHAR (K) TO PW-CHAR (K).
049220     ADD 1 TO K.
049240     IF K IS NOT GREATER THAN 12 GO TO PW-UNSCRAMBLE1.
049260     SUBTRACT PW-MASK1 FROM PW-WORK1.
049280     SUBTRACT PW-MASK2 FROM PW-WORK2.
049300     MOVE PW-CHAR (10) TO PW7-CHAR (1).
049320     MOVE PW-CHAR (9) TO PW7-CHAR (2).
049340     MOVE PW-CHAR (6) TO PW7-CHAR (3).
049360     MOVE PW-CHAR (12) TO PW7-CHAR (4).
049380     MOVE PW-CHAR (3) TO PW7-CHAR (5).
049400     MOVE PW-CHAR (2) TO PW7-CHAR (6).
049420 PW-UNSCRAMBLE-EXIT.
049440     EXIT.
049460************************
049480 DX-CLEANUP.
049500*    SETS ALL NUMERIC AND SUMMARY-VAR TO S9(13)V9(5)
049520*    CLEARS ECHAR TCHAR SCALE FCHAR FOR ANY OTHER VAR
049540*    (IE ANYTHING ELSE EXCEPT SPECIALS LIKE XRANDOM)
049560     SET DX TO DX-MAX. SET DX UP BY 1.
049580 DUP1.
049600     SET DX DOWN BY 1. IF DX < DX-LOWEST GO TO DUP6.
049620     MOVE D-TYPEV (DX) TO TYPEV.
049640     IF TYPEV = TYPE-VARIABLE GO TO DUP2.
049660     IF TYPEV = TYPE-NUMERIC-VARIABLE GO TO DUP2.
049680     IF TYPEV = TYPE-SUMMARY GO TO DUP2.
049700     IF TYPEV = TYPE-AVERAGE GO TO DUP2.
049702     IF TYPEV = TYPE-PRIOR-SUMMARY GO TO DUP2.
049720     IF FLAG-PASS = 2 GO TO DUP1.
049740     IF TYPEV = TYPE-TODAY
049760        MOVE TODAY-AREA TO D-ENTRY (DX) GO TO DUP1.
049780     IF TYPEV = TYPE-XRANDOM
049800        MOVE XRANDOM-AREA TO D-ENTRY (DX) GO TO DUP1.
049802     IF TYPEV = TYPE-ERROR-STATUS
049804         MOVE ERROR-STATUS-AREA TO D-ENTRY(DX)
049806         GO TO DUP1.
049807     IF TYPEV = TYPE-AREA-IDENT
049808        MOVE AREA-IDENT-AREA TO D-ENTRY (DX)  GO TO DUP1.
049810     IF TYPEV = TYPE-RECORD-NAME
049812        MOVE RECORD-NAME-AREA TO D-ENTRY (DX)  GO TO DUP1.
049814     IF TYPEV = TYPE-AREA-NAME
049816        MOVE AREA-NAME-AREA TO D-ENTRY (DX)  GO TO DUP1.
049817     IF TYPEV = TYPE-CURR-REC-KEY
049818        MOVE CURRENT-RECORD-KEY-AREA TO D-ENTRY (DX) GO TO DUP1.
049819     IF TYPEV = TYPE-ERROR-COUNT
              MOVE ERROR-COUNT-AREA TO D-ENTRY (DX) GO TO DUP1.
049820     IF TYPEV = TYPE-CONSTANT
049840        SET CX TO DX
049860        MOVE C-BINARY (CX) TO C-NUMERIC (CX).
049880     GO TO DUP1.
049900 DUP2.
049920     SET KX TO DX. SET VX TO DX.
049940     MOVE K-ENDKEY (KX) TO WORD30.
049960     IF FLAG-PASS = 2 GO TO DUP4.
049980     IF TYPEV = TYPE-AVERAGE GO TO DUP1.
050000     MOVE ZEROS TO V-ECHAR (VX).
050020     MOVE TCHAR TO V-TCHAR (VX).
050040     MOVE ZEROS TO V-SCALE (VX).
050060     MOVE ZEROS TO D-FCHAR (DX).
050080     IF TYPEV = TYPE-NUMERIC-VARIABLE GO TO DUP3.
050082     IF TYPEV = TYPE-PRIOR-SUMMARY GO TO DUP3A.
050100     IF TYPEV NOT EQUAL TO TYPE-SUMMARY GO TO DUP1.
050120     MOVE 'SZ,ZZZ,ZZZ.99RRR' TO V-PICT (VX).
050140 DUP3.
050160     MOVE 18 TO V-NCHAR (VX). MOVE 5 TO V-SCALE (VX).
050180     MOVE 13 TO V-ECHAR (VX).
050200     GO TO DUP1.
050201 DUP3A.
050202*    HERE FOR TYPE-PRIOR-SUMMARY WHICH CAN STILL BE
050204*    IF THE BY-ITEM IS A VARIABLE
050206     IF WORD01 = ALPHA-VAR-SPELLING
050208        MOVE TYPE-VARIABLE TO DELTA
050210        ELSE
050212        MOVE TYPE-NUMERIC-VARIABLE TO DELTA.
050214     ADD 30 DELTA GIVING D-TYPEV (DX).
050216     GO TO DUP3.
050220 DUP4.
050240*    HERE FOR VAR,NUM-VAR, AND SUMMARY AFTER 2ND PASS
050260     IF TYPEV = TYPE-AVERAGE GO TO DUP5.
050280     IF TYPEV = TYPE-SUMMARY GO TO DUP5.
050300*    ZZ ITEMS WILL BE DEFINED AS NUM-VAR AND NOT TYPE-SUMMARY
050320*    IF ZZ ITEM IS NEVER DEFINED IN SUMMARY CONTEXT IE ONLY
050340*    IN A -SET ZZ- OR -COMPUTE ZZ- CONTEXT.
050360     IF TYPEV = TYPE-NUMERIC-VARIABLE AND
050380        (WORD01 NOT = NUM-VAR-SPELLING AND WORD02 NOT = 'ZZ')
050400        MOVE 034 TO ECODE
050420        PERFORM E-RROR THRU E-XIT GO TO DUP1.
050440     IF TYPEV = TYPE-VARIABLE AND
050460        WORD01 NOT = ALPHA-VAR-SPELLING
050480        MOVE 035 TO ECODE
050500        PERFORM E-RROR THRU E-XIT
050520        MOVE SPACES TO WORD30  MOVE 036 TO ECODE
050540        PERFORM E-RROR THRU E-XIT  GO TO DUP1.
050560     IF WORD01 = ALPHA-VAR-SPELLING OR WORD02 = 'ZZ' OR
050580        WORD01 = NUM-VAR-SPELLING GO TO DUP5.
050600     MOVE 001 TO ECODE.
050620     PERFORM E-RROR THRU E-XIT.  GO TO DUP1.
050640 DUP5.
050660     PERFORM GET-TITLE THRU GET-TITLEX.
050680     MOVE TITLE1X TO V-TITLE1 (VX).
050700     MOVE TITLE2X TO V-TITLE2 (VX).
050720     MOVE TCHAR TO V-TCHAR (VX).
050740     MOVE ZEROS TO V-WORK (VX).
050760*    NOW MAKE TYPE SUMMARY SAME AS NUM-VER
050780     IF TYPEV = TYPE-SUMMARY MOVE 7 TO D-TYPEV (DX)
050800        MOVE ZEROS TO D-NREPEATS (DX)
050820        GO TO DUP1.
050840     IF TYPEV = TYPE-AVERAGE
050860        MOVE ZEROES TO D-NREPEATS (DX) GO TO DUP1.
050880*    IS ITEM UNDEFINED? THIS CAN ONLY BE FOR VAR(ALPH VAR)
050900*    SINCE NUM-VAR(VIA COMPUTE) ALWAYS HAS NCHAR = 18
050920     IF D-FCHAR (DX) = ZEROS AND D-NCHAR (DX) = ZEROS
050940        NEXT SENTENCE ELSE GO TO DUP5A.
050960*    SINCE NEVER SET THIS VARIABLE(COULD HAPPEN FOR ACCEPT AND
050962*    NO USAGE OF 'SET'), THEN ALLOCATE NOW.
050964     MOVE 12 TO D-NCHAR (DX)  D-ECHAR (DX).
050966     IF FCHAR = 0 MOVE 1 TO FCHAR.
050968     MOVE FCHAR TO D-FCHAR (DX).
050970     ADD 12 TO FCHAR.
050972 DUP5A.
050980*    IF VARIABLE HAS ONLY BEEN USED ONCE, IT IS INVALID,
051000*    SINCE IT MUST BE BOTH SET AND GOT(2 REFERENCES)
051020     IF D-NREPEATS (DX) < 2
051040        MOVE 023 TO ECODE
051060        PERFORM E-RROR THRU E-XIT.
051080     IF TYPEV = TYPE-NUMERIC-VARIABLE
051100        MOVE 'SZ,ZZZ,ZZZ.99RRR' TO V-PICT (VX).
051120     IF TYPEV = TYPE-VARIABLE
051140        MOVE SPACE TO V-PICT (VX)
051160        MOVE TYPE-ALPHA TO D-TYPEV (DX).
051180     MOVE ZEROS TO D-NREPEATS (DX).
051200     GO TO DUP1.
051220 DUP6.
051240     IF FLAG-PASS = 1 GO TO DUPX.
051260*    NOW MODIFY DATA ITEM TYPES TO ALSO INCORPORATE FILE AND
051280*    RECORDING MODE INFO--MODIFY FCHAR TO ALWAYS BE REL 1, RATHER
051300*    THAN A FUNCTION OF WHICH BUFFER(PRIM,SEC, OR TERT) THE ITEM
051320*    IS IN.--FOR DYNAMICALLY ALLOCATED DATA, EG HOLD, SET ALPHA,
051340*    AND PREV SUMMARY VALUES, FCHAR REL 1 RELATIVE TO THE
051360*    DYNAMIC IQE BUFFER--ALSO FOR THE DYNAMICALLY ALLOCATED ITEMS
051380*    THE ITEM TYPE VALUE WILL NOT BE MODIFIED.
051400*
051420*    D-TYPE VALUES PASSED TO IQE WILL BE AS SHOWN BELOW
051440*    ANY TYPES NOT SHOWN PERTAIN TO ITEMS WHOSE
051460*    VALUES ARE CONTAINED WITHIN THE DICT ENTRY ITSELF AS
051480*    OPPOSED TO A BUFFER.
051500*
051520*    DATA TYPE   MEANING
051540*    ---- ----   -------
051560*
051580*       1        ALPHANUMERIC HOLD,SET, OR PRIOR SUMMARY VALUE.
051600*       2        NUMERIC      HOLD,SET, OR PRIOR SUMMARY VALUE.
051620*       6        BINARY       HOLD,SET, OR PRIOR SUMMARY VALUE.
051640*     101        ALPHANUMERIC ITEM IN A 6 BIT PRIMARY SEQ FILE.
051660*     102        NUMERIC      ITEM ...
051680*     106        BINARY       ITEM ...
051700*     201        ALPHANUMERIC ITEM IN A 7 BIT PRIMARY SEQ FILE.
051720*     202        NUMERIC      ITEM ...
051740*     206        BINARY       ITEM ...
051760*     301        ALPHANUMERIC ITEM IN A 6 BIT PRIMARY ISAM FILE.
051780*     302        NUMERIC      ITEM ...
051800*     306        BINARY       ITEM ...
051820*     401        ALPHANUMERIC ITEM IN A 7 BIT PRIMARY ISAM FILE
051840*     402        NUMERIC      ITEM ...
051860*     406        BINARY       ITEM ...
051880*     501        ALPHANUMERIC ITEM IN A PRIMARY DBMS FILE.
051900*     502        NUMERIC      ITEM ...
051920*     506        BINARY       ITEM ...
051940*     701        ALPHANUMERIC ITEM IN A 6 BIT SECONDARY SEQ FILE
051960*     702        NUMERIC      ITEM ...
051980*     706        BINARY       ITEM ...
052000*     801        ALPHANUMERIC ITEM IN A 7 BIT SECONDARY SEQ FILE
052020*     802        NUMERIC      ITEM ...
052040*     806        BINARY       ITEM ...
052060*     901        ALPHANUMERIC ITEM IN A 6 BIT SECONDARY ISAM FILE
052080*     902        NUMERIC      ITEM ...
052100*     906        BINARY       ITEM ...
052120*    1001        ALPHANUMERIC ITEM IN A 7 BIT SECONDARY ISAM FILE
052140*    1002        NUMERIC      ITEM ...
052160*    1006        BINARY       ITEM ...
052180*    1101        ALPHANUMERIC ITEM IN A SECONDARY DBMS FILE
052200*    1102        NUMERIC      ITEM ...
052220*    1106        BINARY       ITEM ...
052240*    1301        ALPHANUMERIC ITEM IN A 6 BIT TERTIARY SEQ FILE
052260*    1302        NUMERIC      ITEM ...
052280*    1306        BINARY       ITEM ...
052300*    1401        ALPHANUMERIC ITEM IN A 7 BIT TERTIARY SEQ FILE.
052320*    1402        NUMERIC      ITEM ...
052340*    1406        BINARY       ITEM ...
052360*    1501        ALPHANUMERIC ITEM IN A 6 BIT TERTIARY ISAM FILE
052380*    1502        NUMERIC      ITEM ...
052400*    1506        BINARY       ITEM ...
052420*    1601        ALPHANUMERIC ITEM IN A 7 BIT TERTIARY ISAM FILE.
052440*    1602        NUMERIC      ITEM ...
052460*    1606        BINARY       ITEM ...
052480*    1701        ALPHANUMERIC ITEM IN A TERTIARY DBMS FILE
052500*    1702        NUMERIC      ITEM ...
052520*    1706        BINARY       ITEM ...
052540*
052560*    FIRST SET UPPER BOUND ORIGIN SINCE NOT SET BY RDICT.
052580     IF N-INPUTFILES = 1     COMPUTE SECONDARY-ORIGIN
052600                           = PRIMARY-ORIGIN + PRIMARY-LENGTH.
052620     IF N-INPUTFILES = 2     COMPUTE TERTIARY-ORIGIN
052640                           = SECONDARY-ORIGIN + SECONDARY-LENGTH.
052660     IF N-INPUTFILES = 3     COMPUTE QUATERNARY-ORIGIN
052680                           = TERTIARY-ORIGIN + TERTIARY-LENGTH.
052700*    NOW CYCLE THRU DICT, MODIFYING TYPES 1,2, 6 PERTAINING TO
052720*    TYPE AND FCHAR.
052740     SET DX TO DX-MAX.
052760 DUP7.
052780     IF D-TYPEV (DX) = 1 OR D-TYPEV (DX) = 2 OR D-TYPEV (DX) = 6
052800        NEXT SENTENCE ELSE GO TO DUP10.
052820     IF D-FCHAR (DX) NOT LESS THAN SECONDARY-ORIGIN GO TO DUP11.
052840*    HERE FOR PRIMARY FILE ITEM--MODIFY ITS TYPE
052860     MOVE 1 TO DELTA.
052880     SET FX TO FX-PRIMARY.
052900 DUP8.
052920     IF F-TYPEV (FX) = 27 ADD 1 TO DELTA.
052940     IF F-TYPEV (FX) NOT = 28 GO TO DUP9.  
052942*    *LOOK AT NREPEATS TO SEE WHAT KIND OF DBMS REC WE HAVE*
052944     IF D-NREPEATS (DX) NOT < 0 MOVE 2 TO DELTA ELSE
052946         SUBTRACT D-NREPEATS (DX) FROM 0 GIVING D-NREPEATS (DX)
052948         MOVE 1 TO DELTA.
052950     GO TO DUP9A.
052960 DUP9.
052980     IF F-KEYLEN (FX) NOT = 0 ADD 2 TO DELTA.
052982 DUP9A.
053000     COMPUTE D-TYPEV (DX) = D-TYPEV (DX) + DELTA * 100.
053020 DUP10.
053040     SET DX DOWN BY 1.
053060     IF DX LESS THAN DX-LOWEST GO TO DUPX.
053080     GO TO DUP7.
053100 DUP11.
053120     IF N-INPUTFILES = 1
053140        MOVE SECONDARY-ORIGIN TO ORIGIN  GO TO DUP14.
053160     IF D-FCHAR (DX) NOT LESS THAN TERTIARY-ORIGIN GO TO DUP12.
053180*    HERE FOR SECONDARY FILE ITEM.
053200     MOVE 7 TO DELTA.
053220     SET FX TO FX-SECONDARY.
053240*    ADJUST FCHAR TO BE REL 1.
053260     COMPUTE D-FCHAR (DX) = D-FCHAR (DX) - SECONDARY-ORIGIN + 1.
053280     GO TO DUP8.
053300 DUP12.
053320     IF N-INPUTFILES = 2
053340        MOVE TERTIARY-ORIGIN TO ORIGIN  GO TO DUP14.
053360     IF D-FCHAR (DX) NOT LESS THAN QUATERNARY-ORIGIN
053380        MOVE QUATERNARY-ORIGIN TO ORIGIN  GO TO DUP14.
053400*    HERE FOR A TERTIARY FILE ITEM.
053420     SET FX TO FX-TERTIARY.
053440     MOVE 13 TO DELTA.
053460     COMPUTE D-FCHAR (DX) = D-FCHAR (DX) - TERTIARY-ORIGIN + 1.
053480     GO TO DUP8.
053500 DUP14.
053520*    HERE TO ADJUST FCHAR ONLY(IE NOT D-TYPE) FOR A HOLD OR
053540*    DYNAMIC STORAGE TYPE ITEM.
053560     COMPUTE D-FCHAR (DX) = D-FCHAR (DX) - ORIGIN + 1.
053580     GO TO DUP10.
053600 DUPX.    EXIT.
053620 LOOK-IN-DX.
053640     IF FLAG-CONTINUE = 1 GO TO LID1.
053660     SET DX TO DX-MAX. SET DX UP BY 1.
053680 LID1.
053700     SET DX DOWN BY 1. SET KX TO DX.
053720     IF DX < DX-LOWEST GO TO LIDX.
053740     MOVE K-TYPEV (KX) TO TYPEV.
053760     IF TYPEV = TYPE-AVERAGE GO TO LID1.
053780     IF TYPEV = TYPE-CONSTANT GO TO LID1.
053800     IF TYPEV = TYPE-FILE GO TO LID1.
053820     IF TYPEV = TYPE-GOTO GO TO LID1.
053840     IF TYPEV = TYPE-LITERAL GO TO LID1.
053860     IF TYPEV = TYPE-REPORT GO TO LID1.
053880     IF TYPEV = TYPE-SUMMARY GO TO LID1.
053900     IF WORD30 = K-ENDKEY (KX) GO TO LIDX.
053920     GO TO LID1.
053940 LIDX.    EXIT.
053960 LOOK-IN-FX.
053980     SET FX TO DX-MAX. SET FX UP BY 1.
054000 LIF1.
054020     SET FX DOWN BY 1. SET KX TO FX.
054040     IF FX < DX-LOWEST GO TO LIFX.
054060     IF F-TYPEV (FX) NOT EQUAL TO TYPE-FILE GO TO LIF1.
054080     IF WORD30 = K-ENDKEY (KX) GO TO LIFX.
054100     GO TO LIF1.
054120 LIFX.    EXIT.
054140 DROP-IN-FALSEGO.
054160*    STACK CURRENT VALUE OF X ONTO FALSE STACK.
054180     IF N-FALSEGO = MAX-FALSEGO
054200        MOVE 010 TO ECODE PERFORM E-RROR THRU E-XIT
054220        GO TO DIFGOX.
054240     ADD 1 TO N-FALSEGO.
054260     SET FSX TO N-FALSEGO.
054280     SET X-FALSEGO (FSX) TO X.
054300 DIFGOX.    EXIT.
054320 DROP-IN-TRUEGO.
054340*    STACK CURRENT VALUE OF X ONTO TRUE STACK.
054360     IF N-TRUEGO = MAX-TRUEGO
054380        MOVE 010 TO ECODE PERFORM E-RROR THRU E-XIT
054400        GO TO DITGOX.
054420     ADD 1 TO N-TRUEGO.
054440     SET TSX TO N-TRUEGO.
054460     SET X-TRUEGO (TSX) TO X.
054480 DITGOX.    EXIT.
054500 POP-TRUE.
054520*    POP THE TOP ENTRY IN TRUE STACK AND SET THE
054540*    INSTR ENTRY POINTED TO BY THIS POPPED ADDRESS
054560*    TO POINT TO THE CURRENT X.
054580     IF N-TRUEGO = 0 GO TO POPTX.
054600     SET TSX TO N-TRUEGO.
054620     SET SAVE-X TO X.
054640     SET X TO X-TRUEGO (TSX).
054660*    SAVE FOR OTHER USES*
054680     SET POPPED-X TO X.
054700     MOVE SAVE-X TO INSTR (X).
054720*    IF WE ARE POPPING TRUEGO FOR AN IF NEWGROUP STATEMENT
054740*    THEN SET THE TRUEGO ADDRESS TO A NEGATIVE VALUE FOR PURPOSES
054760*    OF IQE INITIALIZING.
054780     SET X DOWN BY 1.
054800     IF INSTR (X) = V-IFNEWGROUP
054820        SET X UP BY 1
054840        MULTIPLY SAVE-X BY MINUS-ONE GIVING INSTR (X).
054860     SET X TO SAVE-X.
054880     SUBTRACT 1 FROM N-TRUEGO.
054900 POPTX. EXIT.
054920 POPALL-TRUE.
054940*    POP ALL TRUE ENTRIES MAKING THEM ALL POINT TO X
054960     IF N-TRUEGO = 0 GO TO POPALLTX.
054980     PERFORM POP-TRUE THRU POPTX.
055000     GO TO POPALL-TRUE.
055020 POPALLTX.  EXIT.
055040 POP-FALSE.
055060*    POP THE TOP ENTRY IN FALSE-STACK AND SET THE INSTR
055080*    ENTRY POINTED TO BY THIS ADDRESS TO POINT TO X
055100     IF N-FALSEGO = 0
055120        MOVE 010 TO ECODE PERFORM E-RROR THRU E-XIT
055140        GO TO POPFX.
055160     SET FSX TO N-FALSEGO.
055180     SET SAVE-X TO X.
055200     SET X TO X-FALSEGO (FSX).
055220*    SAVE FOR USE ELSEWHERE
055240     SET POPPED-X TO X.
055260     MOVE SAVE-X TO INSTR (X).
055280     SET X TO SAVE-X.
055300     SUBTRACT 1 FROM N-FALSEGO.
055320 POPFX.  EXIT.
055340 POPALL-FALSE.
055360*    POP ALL FALSE ENTRIES MAKING THEM POINT TO CURRENT X
055380     IF N-FALSEGO = 0 GO TO POPALLF1.
055400     PERFORM POP-FALSE THRU POPFX.
055420     GO TO POPALL-FALSE.
055440*    IF ELSE-X IS SET, THEN A GOTO MUST BE COMPLETED NOW
055460*    TO WRAPUP IF-THEN-ELSE
055480 POPALLF1.
055500     IF ELSE-X = 0 GO TO POPALLF2.
055520     SET SAVE-X TO X. SET X TO ELSE-X.
055540     MOVE SAVE-X TO INSTR (X).
055560*    INDICATE TO GOTO3 THAT THIS IS NOT A GOTO STATEMENT NUMBER.
055580*    BUT MUST HAVE NON-ZERO VALUE HERE OR ELSE GOTO2 WILL
055600*    THINK THIS GOTO HAS BEEN UNASSIGNED AND FLAG IT AS SUCH.
055620     ADD DX-MAX TO INSTR (X).
055640     MOVE 1 TO FLAG-GOTO.
055660     SET X TO SAVE-X. MOVE 0 TO ELSE-X.
055680 POPALLF2.
055700     MOVE 0 TO LPARENCNTR. MOVE 0 TO RPARENCNTR.
055720     MOVE 0 TO TLPX.  MOVE 0 TO FLPX.
055740 POPALLFX.  EXIT.
055760************************
055780 GET-INSTR.
055800*    GET-INSTR WILL READ THE VERB AND STORE IT INTO
055820*    INSTR (X) AND SET V TO IT; NEXT, BY EXECUTING
055840*    GET-ONE-INSTR, IT WILL READ THE FOLLOWING WORD OR
055860*    OBJECT INTO INSTR (X) AND SET T-INSTR TO IT
055880*    ALSO, IT WILL POP ALL FALSE STACK IF IT FINDS $
055900     SET LI UP BY 1. IF LI > LI-MAX PERFORM GET-QT THRU GET-QTX.
055920     SET X UP BY 1. IF X > X-MAX MOVE 1 TO EOQ.
055940     IF EOQ = 1 MOVE EOQ TO V MOVE ZEROS TO T-INSTR
055960        GO TO GET-INSTRX.
055980     MOVE LINE-WORD (LI) TO INSTR (X).
056000     IF X < EXEC-STARTX GO TO GET-INSTR.
056020     MOVE INSTR (X) TO V.
056040     IF V = V-EOS
056060        PERFORM POPALL-FALSE THRU POPALLFX
056080        SET X DOWN BY 1
056100        GO TO GET-INSTR.
056120     IF V = ZEROS GO TO GET-INSTR.
056140 GET-ONE-INSTR.
056160     SET LI UP BY 1. IF LI > LI-MAX PERFORM GET-QT THRU GET-QTX.
056180     SET X UP BY 1. IF X > X-MAX MOVE 1 TO EOQ.
056200     IF EOQ = 1 MOVE EOQ TO V MOVE ZEROS TO T-INSTR
056220        GO TO GET-INSTRX.
056240     MOVE LINE-WORD (LI) TO INSTR (X).
056260     MOVE INSTR (X) TO T-INSTR.
056280     GO TO GET-INSTRX.
056300 GET-QT.
056320     READ QTANLZ AT END MOVE 1 TO EOQ GO TO GET-QTX.
056340     MOVE QTANLZ-REC TO LINE-TABLE.
056360     SET LI TO 1.
056380 GET-QTX.    EXIT.
056400 GET-INSTRX.     EXIT.
056420*********************
056440 ACCEPT1.
056460     IF FLAG-PASS = 2 GO TO ACCEPT2.
056480     IF FLAG-ALPHA = ZERO GO TO E003.
056500     SET INSTR (X) TO DX.
056520     GO TO VERB-CONTROL.
056540 ACCEPT2.
056560*    FOR CASE OF ALPHA VAR, INTRODUCED BY ACCEPT, ALLOCATE
056580*    STORAGE FOR IT NOW IN CASE THERE IS NO SET  VERB TO
056600*    ALLOCATE IT LATER.
056620*    SET DX TO T-INSTR.
056640*    IF D-TYPEV (DX) = TYPE-VARIABLE  IF D-FCHAR (DX) = 0
056660*       GO TO ACCEPT2A.
056680*    GO TO ACCEPT2B.
056700*ACCEPT2A.
056720*    IF FCHAR = 0 MOVE 1 TO FCHAR.
056740*    MOVE FCHAR TO D-FCHAR (DX). ADD D-NCHAR (DX) TO FCHAR.
056760*    MOVE D-NCHAR (DX) TO D-ECHAR (DX).
056770     IF T-INSTR = ZEROS GO TO VERB-CONTROL.
056780 ACCEPT2B.
056800     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
056820     IF T-INSTR = ZEROS GO TO VERB-CONTROL.
056840     GO TO ACCEPT2B.
056860 ACROSS1.
056880     IF FLAG-PASS = 2 GO TO VERB-CONTROL.
056900     IF FLAG-ALPHA = 1 GO TO E002.
056920     IF NUMBN < 1 GO TO E008.
056940     SET INSTR (X) TO NUMBN.
056960     GO TO VERB-RESET.
056980 AT-END1.
057000     GO TO VERB-CONTROL.
057020 AUTHORITY1.
057040     IF FLAG-PASS = 2 GO TO AUTHORITY2.
057060     IF FLAG-ALPHA = ZERO GO TO E003.
057080     SET AX TO DX.
057100     IF FLAG-VERB = 1
057120        MOVE 2 TO FLAG-VERB   SET PW-POINTER TO AX.
057140     ADD 1 TO N-PASSWORDS.
057160     IF N-PASSWORDS = 1
057180        MOVE AUTH-PASSWORD (AX) TO FIRST-PASSWORD.
057200     IF AUTH-PASSWORD (AX) = UNIVERSAL-PASSWORD
057220        MOVE 2 TO FLAG-LOCKED.
057240     SET INSTR (X) TO DX.
057260     MOVE TYPE-AUTHORITY TO D-TYPEV (DX).
057280     GO TO VERB-CONTROL.
057300 AUTHORITY2.
057320     SET X DOWN BY 2.
057340 AUTHORITY2A.
057360     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
057380     SET X DOWN BY 1.
057400     IF T-INSTR = ZEROS GO TO VERB-CONTROL.
057420     GO TO AUTHORITY2A.
057440 AVERAGE1.
057460     IF FLAG-PASS = 2
057480        MOVE '*WARNING-AVERAGE STATEMENT' TO WORD30
057500        GO TO TALLY2.
057520     GO TO TALLY1.
057540 CALL1.
057560     IF FLAG-PASS = 2 GO TO CALL2.
057580     IF FLAG-VERB = 2 GO TO CALL1A.
057600     IF FLAG-ALPHA = 1 GO TO E002.
057620     MOVE 2 TO FLAG-VERB.
057640 CALL1A.
057650*    IF VA # 0,THEN NEGATE STORED DX INDICATING A STORE ARGUMENT.
057652     IF VA NOT = 0
057654        SUBTRACT INSTR (X) FROM 0 GIVING INSTR (X)
057655        MOVE 0 TO VA
057656        ELSE
057660        SET INSTR (X) TO DX.
057680     GO TO VERB-CONTROL.
057700 CALL2.
057720     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
057740     IF T-INSTR = ZEROS GO TO VERB-RESET.
057760     GO TO CALL2.
057780 COMPUTE1.
057800     IF FLAG-PASS = 2 GO TO COMPUTE2.
057820     IF FLAG-VERB = 2 GO TO COMPUTE1A.
057840*    HERE FOR FIRST TIME FOR THIS COMPUTE--SET FLAG-VERB
057860*    TO INDICATE THAT THIS IS NOT FIRST TIME HERE
057880     MOVE 2 TO FLAG-VERB.
057900     IF FLAG-ALPHA = ZERO GO TO E003.
057920     MOVE 0 TO FLAG-COMPUTE.
057922*    TYPEV = 0 ONLY IF DID NOT  READ A DATA ITEM RIGHT AFTER COMPUTE
057924     IF TYPEV = 0
057926        MOVE 'MISSING ITEM AFTER "COMPUTE"' TO WORD30
057928        GO TO E026.
057940*    AT THIS POINT, COMPUTE VERB CODE HAS BEEN SET INTO THE
057960*    INSTR TABLE BY CONTROL AND X IS POINTING TO THE NEXT
057980*    ENTRY OF INSTR TABLE--SET THE DX VALUE INTO THIS ENTRY
058000*    THAT REPRESENTS THE LEFT SIDE OF =
058020     SET INSTR (X) TO DX.
058040*    SET CONSTANT -1 INTO DICTIONARY AND SAVE POINTER TO IT.
058060     SUBTRACT 1 FROM 0 GIVING NUMBN.
058080     PERFORM INSERT-CONSTANT THRU INSERTCX.
058100     SET MINUS-ONE-DX TO DX.
058120*    SET CONSTANT 0 INTO DICTIONARY AND SAVE POINTER
058140     MOVE 0 TO NUMBN.
058160     PERFORM INSERT-CONSTANT THRU INSERTCX.
058180     SET ZERO-DX TO DX.
058200     GO TO VERB-CONTROL.
058220 COMPUTE1A.
058240*    WILL KEEP RETURNING TO COMPUTE1 FROM VERB-CONTROL
058260*    FOR EACH OPERATOR AND OPERAND UNTIL HIT EOS-THIS
058280*    FIRST PASS SECTION WILL BASICALLY CHECK FOR CURRENT
058300*    SYNTAX AND STORE SYNTAX INTO INSTR TABLE--THE 2ND
058320*    PASS SECTION WILL PARSE THE COMPUTE SYNTAX AND DO
058340*    SOME FURTHUR ERROR CHECKING.
058360     IF VA = V-RESULT GO TO COMPUTE1F.
058370     IF FLAG-COMPUTE = 0
058372        MOVE SPACES TO WORD30
058374        GO TO E028.
058380     IF VA = V-ADD   GO TO COMPUTE1B.
058400     IF VA = V-SUBTRACT GO TO COMPUTE1G.
058420     IF VA = V-MULTIPLY GO TO COMPUTE1B.
058440     IF VA = V-DIVIDE   GO TO COMPUTE1B.
058460     IF VA = V-LPAREN   GO TO COMPUTE1E.
058480     IF VA = V-RPAREN   GO TO COMPUTE1H.
058500*    IF VA NOT = 0*GO TO E000.
058520*    HERE WHEN HAVE DX--THIS HAS ALREADY BEEN STORED
058540*    INTO THE INSTR TABLE-THIS DX MUST HAVE BEEN PRECEEDED
058560*    BY AN OPERATOR.
058580*    NOW TEST FOR OPERAND-OPERATOR SEQUENCE OUT-OF-WHACK.
058600*    WHERE FLAG-COMPUTE VALUES ARE AS FOLLOWS:
058620*    0=INITIAL VALUE; 1=OPERATOR FOUND; 2=OPERAND FOUND
058640     IF FLAG-COMPUTE NOT = 1 GO TO E025.
058660     MOVE 2 TO FLAG-COMPUTE.
058680     GO TO VERB-CONTROL.
058700 COMPUTE1B.
058720*    HERE WHEN FOUND ARITHMETIC OPERATOR-CHECK ALLOWABILITY
058740*    AND ALSO BUMPX AND DROP OPERATOR INTO INSTR TABLE.
058760     IF FLAG-COMPUTE NOT = 2 GO TO E026.
058780 COMPUTE1C.
058800     MOVE 1 TO FLAG-COMPUTE.
058820 COMPUTE1D.
058840     SET X UP BY 1.
058860     MOVE VA TO INSTR (X).
058880     MOVE ZERO TO VA.
058900*    CLEAR EOS FLAG IN CASE IT GOT SET BY '.' SINCE '.'
058920*    SHOULD NOT BE TREATED AS EOS WITHIN COMPUTE.
058940     MOVE 0 TO FLAG-EOS.
058960     GO TO VERB-CONTROL.
058980 COMPUTE1E.
059000*    HERE FOR LEFT PAREN-CAN ONLY FOLLOW ANOTHER OPERATOR
059020     IF FLAG-COMPUTE NOT = 1 GO TO E025.
059040     GO TO COMPUTE1D.
059060 COMPUTE1F.
059080*    HERE FOR = AND MUST BE THE FIRST OPERATOR
059100     IF FLAG-COMPUTE NOT = 0 GO TO E027.
059120     GO TO COMPUTE1C.
059140 COMPUTE1G.
059160*    HERE FOR - MUST FOLLOW AN OPERAND OR POSSIBLY UNARY -
059180     IF FLAG-COMPUTE = 2 GO TO COMPUTE1C.
059200     GO TO COMPUTE1C.
059220 COMPUTE1H.
059240*    HERE FOR RIGHT PAREN--CAN ONLY FOLLOW ANOTHER RIGHT
059260*    PAREN OR AN OPERAND--ALSO ) MUST BE FOLLOWED BY RIGHT
059280*    PAREN OR OPERATOR THEREFORE KEEP FLAG-COMPUTE = 2
059300     IF FLAG-COMPUTE = 2 GO TO COMPUTE1D.
059320     GO TO E026.
059340 COMPUTE2.
059360*    COMPUTE2 ENTERED DURING 2ND PASS AND WILL PARSE THE
059380*    INPUT STRING THAT RESIDES IN INSTR TABLE
059400*    'COMPUTE W' HAS ALREADY BEEN READ BY CONTROL-CHECK
059420*    THAT 'W' IS NUMERIC.
059425*    IF FIRST ARG IS 0, THEN HAVE ERROR PREVIOUSLY REPORTED
059530     IF T-INSTR = 0 GO TO VERB-CONTROL.
059440     SET DX TO T-INSTR.
059460     PERFORM CHECK-NUMERIC THRU CHECK-NUMERICX.
059480     if ecode not = 0
059482        perform compute-warning thru compute-warningx.
059500*    NEXT, READ '=' AND GET RID OF IT FOR NOW AND INITIALZE
059520     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
059530*    IF MISSING = OPERATOR, DONT REPORT IT AGAIN IN PASS2.
059540     IF T-INSTR NOT = V-RESULT GO TO VERB-RESET.
059560     SET SAVE-XX TO X.
059580     SET X DOWN BY 1.
059600*    SET FIRST ENTRY IN PARSING TABLE TO LNIL WHERE THE
059620*    OPERATOR CODE AND PRECEDENCE = 0.
059640     SET OPX TO 1.
059660     MOVE 0 TO OPERATOR (OPX) OPERAND (OPX) PRECEDENCE (OPX).
059680     MOVE 1 TO CURR-PRECEDENCE.
059700     MOVE V-RESULT TO CURR-OPERATOR.
059720     SET SAVE-X TO X.
059740*    NOW READ A SINGLE OPERATOR OR OPERAND.
059760 COMPUTE2A.
059780     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
059800     IF T-INSTR = 0           GO TO COMPUTE2AA.
059820     IF T-INSTR = V-ADD       GO TO COMPUTE2B.
059840     IF T-INSTR = V-SUBTRACT  GO TO COMPUTE2E.
059860     IF T-INSTR = V-MULTIPLY  GO TO COMPUTE2C.
059880     IF T-INSTR = V-DIVIDE    GO TO COMPUTE2C.
059900     IF T-INSTR = V-LPAREN
059920        ADD 10 TO PARENCNT    GO TO COMPUTE2A.
059940     IF T-INSTR NOT = V-RPAREN GO TO COMPUTE2F.
059960     IF PARENCNT LESS THAN 10 
059962        MOVE 010 TO ECODE  PERFORM E-RROR THRU E-XIT
059964        GO TO COMPUTE2A.
059980     SUBTRACT 10 FROM PARENCNT.
060000     GO TO COMPUTE2A.
060020 COMPUTE2AA.
060040*    SET PRECEDENCE FOR EOS SUCH THAT REST OF PARSING
060060*    STACK WILL BE POPPED.
060080     MOVE 0 TO CURR-PRECEDENCE.
060100     GO TO COMPUTE2G.
060120 COMPUTE2B.
060140*    SET PRECEDENCE FOR + -
060160     MOVE 2 TO CURR-PRECEDENCE.
060180     GO TO COMPUTE2D.
060200 COMPUTE2C.
060220*    SET PRECEDENCE FOR * /
060240     MOVE 3 TO CURR-PRECEDENCE.
060260 COMPUTE2D.
060280*    SET CURR OPERATOR AND ADJUST PRECEDENCE =F(PARENS)
060300     MOVE T-INSTR TO CURR-OPERATOR.
060320     ADD PARENCNT TO CURR-PRECEDENCE.
060340     GO TO COMPUTE2A.
060360 COMPUTE2E.
060380*    -   SEE IF UNARY -
060400     IF OPX NOT = 1 GO TO COMPUTE2B.
060420*    FOR UNARY (-), INSERT ZERO(DX) OPERAND.
060440     SET X UP BY 1.
060460     MOVE ZERO-DX TO INSTR (X) T-INSTR.
060480*    SET LI TO READ (-) OPERATOR AGAIN
060500     SET LI DOWN BY 1.
060520 COMPUTE2F.
060540*    HERE FOR ARITMETIC OPERAND
060560     MOVE T-INSTR TO CURR-OPERAND.
060562     set dx to t-instr.
060564     perform check-numeric thru check-numericx.
060566     if ecode not = 0
060568        perform compute-warning thru compute-warningx.
060580 COMPUTE2G.
060600*    COMPARE PRECEDENCE OF LAST OPERATOR STACKED WITH THE
060620*    LAST OPERATOR READ
060640     IF PRECEDENCE (OPX) NOT LESS THAN CURR-PRECEDENCE
060660        GO TO COMPUTE2H.
060680*    STACK CURRENT OPERATOR(LAST READ) SINCE GEQ STACK TOP
060700     SET OPX UP BY 1.
060720     MOVE CURR-OPERATOR TO OPERATOR (OPX).
060740     MOVE CURR-OPERAND  TO OPERAND (OPX).
060760     MOVE CURR-PRECEDENCE TO PRECEDENCE (OPX).
060780     ADD 1 TO OPERANDS-CNT.
060800     GO TO COMPUTE2A.
060820 COMPUTE2H.
060840*    HERE TO GENERATE CODE FOR TOP OF PARSING STACK
060860     SET X TO SAVE-X.
060880     SET X UP BY 1.
060900*    SAVE CURRENT ACCUMULATOR IF WE HAVE USED IT AND HAVE
060920*    STACKED MORE THAN ONE OPERAND INTO PARSING-STACK SINCE
060940*    THE ACCUM WAS LAST USED.
060960     IF OPERANDS-CNT GREATER THAN 1
060980        IF FLAG-ACCUM = 1
061000           MOVE V-STACK TO INSTR (X)
061020           SET X UP BY 1
061040           MOVE 0 TO FLAG-ACCUM.
061060     IF OPERATOR (OPX) = V-RESULT GO TO COMPUTE2T.
061080     IF OPERATOR (OPX) = V-DIVIDE GO TO COMPUTE2R.
061100     IF OPERATOR (OPX) = V-MULTIPLY GO TO COMPUTE2L.
061120     IF OPERATOR (OPX) = V-SUBTRACT GO TO COMPUTE2S.
061140     IF OPERATOR (OPX) NOT = V-ADD 
061142        MOVE 020 TO ECODE  PERFORM E-RROR THRU E-XIT.
061160*    +
061180*    IS CURRENT OPERAND IN ACCUMULATOR?
061200 COMPUTE2I.
061220     IF OPERAND (OPX) NOT = LOW-VALUES GO TO COMPUTE2K.
061240 COMPUTE2J.
061260     MOVE OPERATOR (OPX) TO INSTR (X).
061280     SET X UP BY 1.
061300     SET OPX DOWN BY 1.
061320     IF OPERAND (OPX) = LOW-VALUES
061340        MOVE V-POP TO INSTR (X)
061360        ELSE
061380        MOVE OPERAND (OPX) TO INSTR (X).
061400     GO TO COMPUTE2Q.
061420 COMPUTE2K.
061440*    SEE IF PREVIOUS OPERAND WAS ACCUMULATOR
061460     SET OPX DOWN BY 1.
061480     IF OPERAND (OPX) = LOW-VALUES GO TO COMPUTE2P.
061500     SET OPX UP BY 1.
061520     MOVE OPERAND (OPX) TO INSTR (X).
061540     SET X UP BY 1.
061560     GO TO COMPUTE2J.
061580 COMPUTE2L.
061600*    *
061620*    IF TOP OPERAND(RIGHT SIDE) IS IN ACCUM ALREADY THEN
061640*    CAN OPERATE AGAINST LEFT SIDE NOW
061660     IF OPERAND (OPX) NOT = LOW-VALUES GO TO COMPUTE2M.
061680     MOVE OPERATOR (OPX) TO INSTR (X).
061700     SET X UP BY 1.
061720     SET OPX DOWN BY 1.
061740*    IF LEFT SIDE IS ACCUM ALSO, IT HAS BEEN STACKED AND
061760*    MUST BE POPPED
061780     IF OPERAND (OPX) = LOW-VALUES
061800        MOVE V-POP TO INSTR (X)
061820        ELSE
061840        MOVE OPERAND (OPX) TO INSTR (X).
061860     GO TO COMPUTE2Q.
061880 COMPUTE2M.
061900*    SEE IF LEFT OPERAND IS IN ACCUM--IF SO, THEN ALL SET
061920*    ON LEFT OPERAND
061940     SET OPX DOWN BY 1.
061960     IF OPERAND (OPX) = LOW-VALUES GO TO COMPUTE2P.
061980 COMPUTE2N.
062000     MOVE OPERAND (OPX) TO INSTR (X).
062020 COMPUTE2NN.
062040     SET X UP BY 1.
062060 COMPUTE2P.
062080     SET OPX UP BY 1.
062100     MOVE OPERATOR (OPX) TO INSTR (X).
062120     SET X UP BY 1.
062140     MOVE OPERAND (OPX) TO INSTR (X).
062160     SET OPX DOWN BY 1.
062180 COMPUTE2Q.
062200*    CLEAR TOP OF PARSING STACK AND SET NEW TOP OPERAND
062220*    TO BE ACCUMULATOR
062240     MOVE LOW-VALUES TO OPERAND (OPX).
062260     MOVE 1 TO FLAG-ACCUM.
062280     MOVE 0 TO OPERANDS-CNT.
062300     SET SAVE-X TO X.
062320     GO TO COMPUTE2G.
062340 COMPUTE2R.
062360*    /
062380*    ARE BOTH LEFT AND RIGHT OPERANDS ACCUMULATORS?
062400     IF OPERAND (OPX) NOT EQUAL TO LOW-VALUES
062420        GO TO COMPUTE2M.
062440     SET OPX DOWN BY 1.
062500*    STACK CURRENT ACCUM
062520     MOVE V-STACK TO INSTR (X).
062540     SET X UP BY 1.
062560*    NOW, GENERATE OPERATOR TO GET 2ND ITEM FROM STACK IF LEFT
062561*    OPERATOR IS ACCUM ALSO ELSE GENERATE STACKED OPERATOR
062570     IF OPERAND (OPX)  EQUAL TO LOW-VALUES
062580        MOVE V-POP2 TO INSTR (X)
062582        ELSE
062584        MOVE OPERAND (OPX) TO INSTR (X).
062600     SET X UP BY 1.
062620     MOVE V-DIVIDE TO INSTR (X).
062640     SET X UP BY 1.
062660     MOVE V-POP TO INSTR (X).
062680     GO TO COMPUTE2Q.
062700 COMPUTE2S.
062720*    -
062740*    IF RIGHT OPERAND IS ACCUM, THEN MUST MULTIPLY IT BY -1
062760*    AND CHANGE OPERATOR IN STACK TO +
062780     IF OPERAND (OPX) NOT = LOW-VALUES
062800        GO TO COMPUTE2M.
062820     MOVE V-MULTIPLY TO INSTR (X).
062840     SET X UP BY 1.
062860     MOVE MINUS-ONE-DX TO INSTR (X).
062880     MOVE V-ADD TO OPERATOR (OPX).
062900     SET X UP BY 1.
062920     GO TO COMPUTE2I.
062940 COMPUTE2T.
062960*    HERE WHEN COMPUTE STRING IS FINISHED- STORE = INTO
062980*    FINAL COMPUTE INSTR ENTRY.
063000*    ALSO, IF HAVE NOT GENERATED ANY CODE YET THEN MUST
063020*    HAVE SINGLE OPERAND TO RIGHT OF = AND MUST GEN CODE NOW.
063040     IF X = SAVE-XX
063060        MOVE OPERAND (OPX) TO INSTR (X)
063080        SET X UP BY 1.
063100     MOVE V-NOP TO INSTR (X).
063120     MOVE 0 TO OPERANDS-CNT FLAG-ACCUM.
063140     GO TO VERB-CONTROL.
063160 INSERT-CONSTANT.
063180     MOVE NUMBER-TABLE TO WORD-TABLE.
063200     MOVE 0 TO FLAG-ALPHA  SCALE.
063220     MOVE 1 TO NCHAR.
063240     PERFORM DROP-IN-DX THRU DIDX.
063260 INSERTCX.  EXIT.
063280 COPY1.
063300     IF FLAG-PASS = 2 GO TO COPY2.
063320     IF FLAG-VERB = 2 GO TO COPY1B.
063340     IF FLAG-VERB = 3 GO TO COPY1C.
063360     MOVE 2 TO FLAG-VERB.
063380     IF FLAG-EOS = 1 GO TO COPY1A.
063400     PERFORM GET-WORD THRU GET-WORDX.
063420     IF WORD06 = "RECORD"
063440        MOVE 1 TO FLAG-PEEKED  GO TO VERB-CONTROL.
063460     MOVE 1 TO FLAG-PEEKED.
063480     MOVE WORD30 TO SAVE30.
063500*    HERE FOR COPY ANOTHER-VOCAB--TREAT AS COPY$ VOCAB
063520 COPY1A.
063540*    COPY$   SET UP FOR DEFAULT
063560     MOVE 1 TO VA.
063580     MOVE "RECORD1" TO WORD30.
063600     PERFORM DROP-IN-DX THRU DIDX.
063620     IF FLAG-PEEKED = 1 MOVE SAVE30 TO WORD30.
063640     SET X UP BY 1.
063660     SET INSTR (X) TO DX.
063680 COPY1B.
063700     MOVE 3 TO FLAG-VERB.
063720     IF VA < 1 OR VA > 3 GO TO E004.
063740     SET INSTR (X) TO DX. SET FX TO DX.
063760     MOVE TYPE-FILE TO F-TYPEV (FX).
063780     SET X UP BY 1. SET INSTR (X) TO VA.
063800     MOVE 1 TO FLAG-COPY.
063820     IF WORD04 = "TO "
063840        MOVE 0 TO FLAG-PEEKED  MOVE V-TO TO VA
063860        ELSE MOVE ZEROS TO VA.
063880     GO TO VERB-CONTROL.
063900 COPY1C.
063920     IF VA NOT EQUAL TO V-TO GO TO E004.
063940     IF TYPEV NOT EQUAL TO TYPE-LITERAL GO TO E015.
063960     SET L-NCHAR (LX) TO FX.
063980     SET INSTR (X) TO LX.
064000     GO TO VERB-RESET.
064020 COPY2.
064040     SET HX TO T-INSTR.
064060     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
064080     SET VA TO T-INSTR.
064100     SET FX TO 1.
064120     IF VA = 1 SET FX TO FX-PRIMARY.
064140     IF VA = 2 SET FX TO FX-SECONDARY.
064160     IF VA = 3 SET FX TO FX-TERTIARY.
064180*    SEE IF FILE PROTECTED AGAINST COPY
064200     MOVE FD-CPROT (VA) TO TEST-REF-NO.
064220     PERFORM UNLOCKER THRU UNLOCKER-EXIT.
064240     IF FLAG-LOCKED = 1
064260        MOVE 14 TO ECODE
064280        MOVE FD-NAMEPROT (VA) TO WORD30
064300        PERFORM E-RROR THRU E-XIT.
064320     IF FX = 1 GO TO E009.
064340     MOVE F-TYPEV (FX) TO TYPEV.
064360     IF TYPEV NOT EQUAL TO 27 MOVE 26 TO TYPEV.
064380     MOVE ZEROS TO T-INSTR.
064400     IF VA = 1 AND TYPEV = 26 MOVE 1 TO T-INSTR.
064420     IF VA = 1 AND TYPEV = 27 MOVE 2 TO T-INSTR.
064440     IF VA = 2 AND TYPEV = 26 MOVE 4 TO T-INSTR.
064460     IF VA = 2 AND TYPEV = 27 MOVE 5 TO T-INSTR.
064480     IF VA = 3 AND TYPEV = 26 MOVE 7 TO T-INSTR.
064500     IF VA = 3 AND TYPEV = 27 MOVE 8 TO T-INSTR.
064520     IF T-INSTR = ZEROS GO TO E009.
064540     SET INSTR (X) TO T-INSTR.
064560*    INITIALIZE FD-INLABEL TO INPUT FILE ID
064580     MOVE F-ID (FX) TO FD-INLABEL.
064600     MOVE F-BLKLEN (FX) TO FD-BLKSIZE.
064620     MOVE F-RECLEN (FX) TO FD-RECSIZE.
064640     MOVE F-ORIGIN (FX) TO COPY-ORIGIN.
064660*    NOW SET COPY FILE SPECS, WHOSE ENTRY PNTD TO BY HX
064680     SET FX TO HX.
064700     MOVE TYPEV TO F-TYPEV (FX).
064720     MOVE 'OUT' TO FD-INEXT. MOVE FD-INLABEL TO F-ID (FX).
064740     MOVE FD-BLKSIZE TO F-BLKLEN (FX).
064760     MOVE FD-RECSIZE TO F-RECLEN (FX).
064780     MOVE COPY-ORIGIN TO F-ORIGIN (FX).
064800     MOVE FD-RECSIZE TO COPY-LENGTH.
064820     MOVE "DSK" TO F-DEVICE (FX).
064840     MOVE ZEROS TO F-PPN (FX).
064860 COPY2A.
064880     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
064900     IF T-INSTR = ZEROS GO TO VERB-RESET.
064920*    SINCE T-INSTR NOT = 0, WE HAVE OPTIONAL COPY FILE SPECS
064940*    NOW PROCESS THESE COPY FILE SPECS
064960*    FIRST, DELETE INSTR ENTRY USED TO POINT TO LITERAL SPECS
064980     SET X DOWN BY 1.
065000     SET LX TO T-INSTR. MOVE L-VALUE (LX) TO QUOTE-TABLE.
065020     PERFORM GET-DEV-LBL-PPN THRU GET-DLP-EXIT.
065040      MOVE FD-LABEL TO F-ID (FX).
065060     GO TO VERB-RESET.
065080 CREATE1.
065100     IF FLAG-PASS = 2 GO TO CREATE2.
065120     IF FLAG-VERB = 2 GO TO CREATE1A.
065140     MOVE 2 TO FLAG-VERB.
065160     IF FLAG-EOS2 = 1
065180        MOVE 041 TO ECODE
065200        PERFORM E-RROR THRU E-XIT
065220        MOVE SPACES TO WORD30
065240        GO TO E042.
065260*    FLAG-CREATE (CLEARED BY SORT1) ALLOWS ONLY 1 CREATE/STAGE
065280*    IF FLAG-CREATE = 1 GO TO E030.
065300     IF FLAG-ALPHA = ZERO GO TO E003.
065320     SET FX TO DX. SET LX TO FX.
065340*    IF FIRST ARG AFTER VOCAB WORD -CREATE- WAS NOT
065360*    QUOTED, THEN INSERT DEFAULT FILE SPECS NOW.
065380     IF TYPEV NOT = TYPE-LITERAL
065400        SET DX TO DX-LOWEST  SET DX DOWN BY 1
065420        SET FX TO DX         SET LX TO FX
065440        MOVE TYPE-LITERAL TO L-TYPEV (LX)
065460        MOVE 'CREATE.OUT' TO L-VALUE (LX)  QUOTE-TABLE
065480        MOVE INSTR (X) TO T-INSTR.
065500     SET FX DOWN BY 1.  SET L-NCHAR (LX) TO FX.
065520     IF FX LESS THAN DX-LOWEST  SET DX-LOWEST TO FX.
065540     MOVE TYPE-FILE TO F-TYPEV (FX).
065560     MOVE QUOTE-TABLE TO F-ID (FX).
065580     SET INSTR (X) TO FX.
065600*    IF WE JUST INSERTED FILE SPECS(FOR CASE OF 1ST ARG
065620*    NOT A LITERAL), RE-INSERT THE CLOBBERED USER ARG.
065640     IF TYPEV NOT = TYPE-LITERAL
065660        SET X UP BY 1  MOVE T-INSTR TO INSTR (X).
065680     MOVE 1 TO FLAG-CREATE.
065700     GO TO VERB-CONTROL.
065720 CREATE1A.
065740     IF VAA = V-FILLER
065760        MOVE ZEROES TO VAA  GO TO CREATE1B.
065780     SET INSTR (X) TO DX.
065800     GO TO VERB-CONTROL.
065820 CREATE1B.
065840     IF FLAG-ALPHA NOT EQUAL ZEROS
065860        MOVE QUOTE-TABLE TO WORD30  GO TO E002.
065880     MULTIPLY NUMBN10 BY MINUS-ONE GIVING INSTR (X).
065900     GO TO VERB-CONTROL.
065920 CREATE2.
065940     SET FX TO FX-PRIMARY. MOVE F-TYPEV (FX) TO TYPEV.
065960     IF TYPEV NOT EQUAL TO 27 MOVE 26 TO TYPEV.
065962*    IF THIS IS NOT THE FIRST CREATE IN THIS STAGE, MAKE THE
065964*    FD POINTER POINT TO THE SAME CFREATE FD AS THE FIRST CREATE.
065966     IF FLAG-CREATE = 0
065968        MOVE 1 TO FLAG-CREATE
065970        ELSE
065972        MOVE CREATE-FX TO T-INSTR  INSTR (X).
065980     SET FX TO T-INSTR. SET CREATE-FX TO FX.
066000     SET LX TO FX. SET LX UP BY 1.
066020*    LX ENTRY POINTS TO OPTIONAL USER SPECS IF NCHAR (LX)
066040*    POINTS TO FX ENTRY.
066060     IF L-TYPEV (LX) = TYPE-LITERAL AND L-NCHAR (LX) = FX
066080        MOVE L-VALUE (LX) TO QUOTE-TABLE
066100        MOVE "CREATEOUT" TO FD-LABEL
066120        MOVE ZEROES TO F-PPN (FX)
066140        PERFORM GET-DEV-LBL-PPN THRU GET-DLP-EXIT
066160*    FD-LABEL BELOW WILL HAVE GOTTEN RESET BY GET-DEV-LBL-PPN
066180*    IF USER SPECIFIED A PROPER FILENAME(IE WITH PERIOD)
066200        MOVE FD-LABEL TO F-ID (FX).
066220*    TYPE OF CREATE FILE IS SAME AS INPUT(IE 6 OR 7 BIT)
066240     MOVE TYPEV TO F-TYPEV (FX).
066260     IF FLAG-DEV-LBL-PPN = 0 MOVE ZEROS TO F-PPN (FX).
066280     MOVE 1 TO T-INSTR.
066300     IF TYPEV = 27 MOVE 2 TO T-INSTR.
066320     SET X UP BY 1. SET INSTR (X) TO T-INSTR.
066340     MOVE ZEROS TO NCHAR.
066360*    FLAG-CREATE-LOOP SET BY OPEN1, GOTOQT1, GOTOXT1
066380*    IF FLAG-CREATE-LOOP = ZERO MOVE 2 TO FLAG-CREATE-LOOP
066400*       MOVE 024 TO ECODE PERFORM E-RROR THRU E-XIT.
066420 CREATE2A.
066440     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
066460     IF T-INSTR = ZEROS GO TO CREATE2B.
066480     IF T-INSTR LESS THAN 0
066500        MULTIPLY T-INSTR BY MINUS-ONE GIVING T-NUMBN
066520        ADD T-NUMBN TO NCHAR
066540        GO TO CREATE2A.
066560     SET DX TO T-INSTR.
066580*    SUM TOTAL LENGTH OF CREATE ITEMS FOR LATER BUFF ALLOCATION
066600     ADD D-NCHAR (DX) TO NCHAR.
066620     GO TO CREATE2A.
066640 CREATE2B.
066660*    FCHAR IS THE TOTAL STORAGE NEEDED FOR ALL BUFFERS
066680*
066700*    DISABLE CREATE FROM AFFECTING ANY PART OF DYNAMIC STORAGE
066720*    AS IT WILL NOW STORE DIRECTLY INTO ITS PRIVATE FD BUFFER.
066740*
066760*    IF FCHAR < PRIMARY-LENGTH ADD PRIMARY-LENGTH TO FCHAR.
066780*    IF FCHAR < SECONDARY-LENGTH ADD SECONDARY-LENGTH TO FCHAR.
066800*    IF FCHAR < TERTIARY-LENGTH ADD TERTIARY-LENGTH TO FCHAR.
066820*    MOVE FCHAR TO CREATE-ORIGIN.
066840     MOVE 1 TO CREATE-ORIGIN.
066860*    MOVE FCHAR TO F-ORIGIN (FX).
066880     MOVE 1 TO F-ORIGIN (FX).
066882*    USE THE LARGEST OF ANY MULTIPLE CREATE LIST(PER STAGE)
066884*    AS THE CREATE LENGTH.
066886     IF NCHAR > F-RECLEN (FX)
066900        MOVE NCHAR TO F-RECLEN (FX).
066920     MOVE ZEROS TO F-BLKLEN (FX).
066940     MOVE ZEROS TO F-KEYLOC (FX).
066960     MOVE ZEROS TO F-KEYLEN (FX).
066980     MOVE F-RECLEN (FX) TO CREATE-LENGTH.
067000*    ADD CREATE-LENGTH TO FCHAR.
067020     GO TO VERB-CONTROL.
067040 DISPLAY1.
067060     GO TO PRINT1.
067080 DISPLAYOFF1.
067100*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
067120     GO TO VERB-RESET.
067140 DISPLAYON1.
067160*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
067180     GO TO VERB-RESET.
067200 FIND1.
067220*    HERE FOR MULTIPLE INPUT FILE FIND
067240     IF FLAG-PASS = 2 GO TO FIND2.
067260     IF FLAG-VERB = 2 GO TO FIND1A.
067280     IF FLAG-VERB = 3 GO TO FIND1B.
067300 FIND10.
067320     IF FLAG-ALPHA = ZERO GO TO E003.
067340     IF TYPEV NOT EQUAL TO TYPE-VARIABLE GO TO E003.
067360     IF VA = V-FROM GO TO E004.
067380     SET INSTR (X) TO FX. SET HX TO X. SET HX DOWN BY 1.
067400     SET X UP BY 1. SET INSTR (X) TO 5.
067420     SET X UP BY 1. SET INSTR (X) TO DX.
067440     SET PI TO DX.
067460     MOVE 2 TO FLAG-VERB.
067480     GO TO VERB-CONTROL.
067500 FIND1A.
067520     IF VA NOT EQUAL TO V-EQUAL GO TO E004.
067540     MOVE 3 TO FLAG-VERB.
067560     IF VP = V-NEXT
067570        SET X UP BY 1 MOVE VP TO INSTR (X) 
067572        else
067580     SET INSTR (X) TO DX.
067600     GO TO VERB-CONTROL.
067620 FIND1B.
067640     IF VA = V-FROM GO TO VERB-CONTROL.
067660     IF VA NOT EQUAL TO V-BEGINNING GO TO FIND10.
067680     SET PX TO X. SET X TO HX.
067700     SET INSTR (X) TO V-FINDFROM.
067720     SET X TO PX.
067740     GO TO VERB-RESET.
067760 FIND2.
067780     IF T-INSTR = V-EOS GO TO VERB-CONTROL.
067800     IF T-INSTR NOT = 0 GO TO FIND2B.
067820*    HERE ONLY FOR BAD FIND SYNTAX THAT HAS ALREADY BEEN
067840*    REPORTED ON IN PASS 1--READ OVER TILL HIT EOS.
067860 FIND2A.
067880     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
067900     IF T-INSTR NOT = V-EOS GO TO FIND2A.
067920     GO TO VERB-CONTROL.
067940 FIND2B.
067960     SET PN TO X.
067980     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
068000     SET HX TO X.
068020     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
068040     SET DX TO T-INSTR.
068060     MOVE D-FCHAR (DX) TO NCHAR.
068080     IF NCHAR = ZEROS 
068082        SET KX TO DX  MOVE K-ENDKEY (KX) TO WORD30
068084        MOVE 1 TO ECODE
068086        PERFORM E-RROR THRU E-XIT
068088        GO TO FIND2A.
068100     MOVE 3 TO VA.
068120     IF NCHAR < TERTIARY-ORIGIN MOVE 2 TO VA.
068140     IF NCHAR < SECONDARY-ORIGIN MOVE 1 TO VA.
068160     IF VA = 3  IF TERTIARY-ORIGIN = -1
068180        MOVE 2 TO VA.
068200     IF N-INPUTFILES = 1 MOVE 1 TO VA.
068220     IF VA = 1
068240        MOVE 'legal only for DBMS/ISAM--' TO WORD30
068260        MOVE 52 TO ECODE  PERFORM E-RROR THRU E-XIT
068270        GO TO FIND2A.
068280     IF VA = 2
068300        MOVE 'SECONDARY ' TO WORD18
068320        SET FX TO FX-SECONDARY.
068340     IF VA = 3
068360        MOVE 'TERTIARY ' TO WORD18
068380        SET FX TO FX-TERTIARY.
068400     IF FX = 1 GO TO E009.
068420     MOVE F-TYPEV (FX) TO TYPEV.
068440     IF TYPEV NOT EQUAL TO 27 MOVE 26 TO TYPEV.
068460     MOVE ZEROS TO T-INSTR.
068480     IF VA = 1 AND TYPEV = 26 MOVE 1 TO T-INSTR.
068500     IF VA = 1 AND TYPEV = 27 MOVE 2 TO T-INSTR.
068520     IF VA = 2 AND TYPEV = 26 MOVE 7 TO T-INSTR.
068540     IF VA = 2 AND TYPEV = 27 MOVE 8 TO T-INSTR.
068560     IF VA = 3 AND TYPEV = 26 MOVE 13 TO T-INSTR.
068580     IF VA = 3 AND TYPEV = 27 MOVE 14 TO T-INSTR.
068600     IF T-INSTR = ZEROS GO TO E009.
068620     IF F-KEYLOC (FX) NOT EQUAL TO ZERO ADD 2 TO T-INSTR.
068640     SET PX TO X.
068660     SET X TO PN. SET INSTR (X) TO FX.
068680     SET X TO HX. SET INSTR (X) TO T-INSTR.
068700     SET X TO PX.
068702     perform get-one-instr thru get-instrx.
068704*    if do not have a 4th arg, then user has error.
068706     if t-instr = 0
068707        move 49 to ecode move spaces to word30
068708        perform e-rror thru e-xit
068710        move 50 to ecode
068712        move 'record-next-dataname-value' to word30
068714        perform e-rror thru e-xit    go to verb-control.
068716     if t-instr = v-next  set x down by 1.
068720 FIND2C.
068740     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
068760     IF T-INSTR = ZEROS GO TO VERB-CONTROL.
068780     GO TO FIND2C.
068800 FINDDBMS1.
068820     IF FLAG-PASS = 2 GO TO FINDDBMS2.
068840     IF FLAG-ALPHA = ZERO GO TO E003.
068850     MOVE 1 TO FLAG-FIND.
068860     IF FLAG-VERB = 2 GO TO FINDDBMS1A.
068880     IF FLAG-VERB = 3 GO TO FINDDBMS1B.
068900     IF FLAG-VERB = 4 GO TO FINDDBMS1C.
068920     IF FLAG-VERB = 5 GO TO FINDDBMS1D.
068940     SET INSTR (X) TO FX.
068960     SET X UP BY 1. SET INSTR (X) TO N-RSE.
068980     SET HX TO X.
069000     SET X UP BY 1. SET INSTR (X) TO VA.
069020     SET X UP BY 1. SET INSTR (X) TO DX.
069040     IF N-RSE = 4
069060        SET X UP BY 1 SET INSTR (X) TO DX
069070        MOVE 4 TO FLAG-VERB
069080        ELSE MOVE 3 TO FLAG-VERB.
069082     IF N-RSE = 5 MOVE 4 TO FLAG-VERB.
069084     IF N-RSE NOT = 2 GO TO VERB-CONTROL.
069086*    SET ITEM AS A SET NAME AS PER PARA FINDDBMS1C.
069088     IF VA NOT = 0
069090        SET RX TO DX    MOVE -20 TO R-AREA-SET (RX) 
069092        GO TO VERB-CONTROL.
069094     MOVE 0 TO INSTR (X).
069096     SET X UP BY 1.  SET INSTR (X) TO DX.
069098     IF VAA = V-RUN-UNIT 
069100        MOVE VAA TO INSTR (X)  GO TO VERB-CONTROL.
069102     MOVE 4 TO FLAG-VERB.
069104     GO TO VERB-CONTROL.
069120 FINDDBMS1A.
069140     MOVE 3 TO FLAG-VERB.
069160     IF N-RSE = 2 OR N-RSE = 3 OR N-RSE = 4
069180        GO TO VERB-CONTROL.
069200     IF VA = V-FINDRECORD AND N-RSE = ZEROS
069220        MOVE 5 TO N-RSE.
069240     SET X TO HX. SET INSTR (X) TO V.
069260     SET X UP BY 1. SET INSTR (X) TO FX.
069280     SET X UP BY 1. SET INSTR (X) TO N-RSE.
069300     SET X UP BY 1. SET INSTR (X) TO N-RSE.
069310     IF N-RSE = 5  MOVE 0 TO INSTR (X).
069320     SET X UP BY 1. SET INSTR (X) TO DX.
069330     IF N-RSE = 5   GO TO FINDDBMS1C.
069340     IF N-RSE = 1 SET INSTR (X) TO PI.
069360     SET X UP BY 1. SET INSTR (X) TO DX.
069380     MOVE 5 TO FLAG-VERB.
069400     GO TO VERB-CONTROL.
069420 FINDDBMS1B.
069440     SET INSTR (X) TO DX.
069442     IF N-RSE = 3
069444        SET RX TO DX  MOVE VA TO R-AREA-SET (RX).
069460     MOVE 4 TO FLAG-VERB.
069480     GO TO VERB-CONTROL.
069500 FINDDBMS1C.
069510     IF VAA = V-RUN-UNIT GO TO FINDDBMS1D.
069520     IF VA < -20 OR VA > -18 GO TO E004.
069540     SET RX TO DX.
069560     MOVE VA TO R-AREA-SET (RX).
069562     IF N-RSE = 5
069564        SET X UP BY 1  MOVE 0 TO INSTR (X).
069580     MOVE 5 TO FLAG-VERB.
069600     GO TO VERB-CONTROL.
069620 FINDDBMS1D.
069622     IF VAA = V-RUN-UNIT
069624        MOVE VAA TO INSTR (X)  MOVE 0 TO VAA  GO TO VERB-CONTROL.
069640     IF NOT SUPPRESS-CONDITION GO TO FINDDBMS1C.
069660     SET X UP BY 1. ADD 100  VA GIVING INSTR (X).
069680     GO TO VERB-CONTROL.
069700 FINDDBMS2.
069720     IF FX-PRIMARY = 1 MOVE 'DBMS ' TO WORD18 GO TO E009.
069740     SET INSTR (X) TO FX-PRIMARY.
069742     MOVE 0 TO I.
069760 FINDDBMS2A.
069780     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
069800     ADD 1 TO I.
069820     IF I < 5 GO TO FINDDBMS2A.
069822     IF T-INSTR = 0 GO TO VERB-RESET.
069824     GO TO FINDDBMS2A.
069840 FINDFIRST1.
069860     GO TO VERB-CONTROL.
069880 FIND-FROM1.
069900     IF FLAG-PASS = 2 GO TO FIND2.
069920     GO TO E005.
069940 FINDKEY1.
069960     IF FLAG-PASS = 2 GO TO FINDKEY2.
069980     IF VP = V-EOF GO TO FINDKEY1C.
070000     IF FLAG-VERB = 2 GO TO FINDKEY1A.
070020     IF FLAG-VERB = 3 GO TO FINDKEY1B.
070040     MOVE 2 TO FLAG-VERB.
070060     IF VP NOT EQUAL TO V-EQUAL GO TO E004.
070080     SET X UP BY 1. SET INSTR (X) TO FX.
070100     SET X UP BY 1. SET INSTR (X) TO X.
070120     IF VA < 1 OR VA > 3 GO TO E008.
070140     IF VA = 1 MOVE 1 TO FLAG-RANDOM-READ1.
070160     IF VA = 2 MOVE 1 TO FLAG-RANDOM-READ2.
070180     IF VA = 3 MOVE 1 TO FLAG-RANDOM-READ3.
070200     SET X UP BY 1. SET INSTR (X) TO VA.
070220     MOVE ZEROS TO VA.
070240     GO TO VERB-CONTROL.
070260 FINDKEY1A.
070280     IF VA = V-THRU OR VA = V-TO GO TO E006.
070300     SET KX TO DX. SET HX TO KX.
070320     IF TYPEV = TYPE-LITERAL
070340        MOVE TYPE-SINGLE-KEY TO K-TYPEV (KX).
070360     SET INSTR (X) TO KX.
070380     MOVE ZEROS TO VA.
070400     MOVE 3 TO FLAG-VERB.
070420     GO TO VERB-CONTROL.
070440 FINDKEY1B.
070460     IF TYPEV NOT EQUAL TO TYPE-LITERAL GO TO E005.
070480     IF VA = V-THRU OR VA = V-TO GO TO FINDKEY1B1.
070500     GO TO FINDKEY1A.
070520 FINDKEY1B1.
070540     SET KX TO LX.
070560     MOVE K-STARTKEY (KX) TO WORD30.
070580     SET KX TO HX.
070600     MOVE TYPE-THRU-KEY TO K-TYPEV (KX).
070620     IF VA = V-TO MOVE TYPE-TO-KEY TO K-TYPEV (KX).
070640     MOVE WORD30 TO K-ENDKEY (KX).
070660     SET DX-LOWEST UP BY 1. SET X DOWN BY 1.
070680     MOVE ZEROS TO VA.
070700     MOVE 2 TO FLAG-VERB.
070720     GO TO VERB-CONTROL.
070740 FINDKEY1C.
070760     IF VA NOT EQUAL TO V-THRU GO TO E004.
070780     SET KX TO HX.
070800     MOVE TYPE-THRU-KEY TO K-TYPEV (KX).
070820     MOVE HIGH-VALUES TO K-ENDKEY (KX).
070840     GO TO VERB-RESET.
070860 FINDKEY2.
070880     SET PN TO X.
070900     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
070920     SET HX TO X.
070940     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
070960     SET VA TO T-INSTR.
070980     IF VA = 1 SET FX TO FX-PRIMARY.
071000     IF VA = 2 SET FX TO FX-SECONDARY.
071020     IF VA = 3 SET FX TO FX-TERTIARY.
071040     MOVE F-TYPEV (FX) TO TYPEV.
071060     IF VA = 1 AND TYPEV = 26 MOVE 1 TO T-INSTR.
071080     IF VA = 1 AND TYPEV = 27 MOVE 2 TO T-INSTR.
071100     IF VA = 2 AND TYPEV = 26 MOVE 5 TO T-INSTR.
071120     IF VA = 2 AND TYPEV = 27 MOVE 6 TO T-INSTR.
071140     IF VA = 3 AND TYPEV = 26 MOVE 9 TO T-INSTR.
071160     IF VA = 3 AND TYPEV = 27 MOVE 10 TO T-INSTR.
071180     SET INSTR (X) TO T-INSTR.
071200 FINDKEY2A.
071220     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
071240     IF FX = 1 GO TO E018.
071260     IF F-KEYLOC (FX) = ZEROS GO TO E018.
071280     IF T-INSTR NOT EQUAL TO ZEROS GO TO FINDKEY2A.
071300     SET PX TO X.
071320     SET X TO PN. SET INSTR (X) TO FX.
071340     SET X TO HX.
071360     SET PX UP BY 1. SET INSTR (X) TO PX.
071380     SET PX DOWN BY 1. SET X TO PX.
071400     GO TO VERB-CONTROL.
071420 FINDLAST1.
071440     GO TO VERB-CONTROL.
071460 FINDNEXT1.
071480     GO TO VERB-CONTROL.
071500 FINDOWNER1.
071520     GO TO VERB-CONTROL.
071540 FINDPRIOR1.
071560     GO TO VERB-CONTROL.
071580 FORM-LINES1.
071600     IF FLAG-PASS = 2 GO TO VERB-CONTROL.
071620     IF FLAG-ALPHA = 1 GO TO E002.
071640     IF NUMBN < 1 GO TO E008.
071660     SET INSTR (X) TO NUMBN.
071680     GO TO VERB-RESET.
071700 GOTO1.
071720     IF FLAG-PASS = 2 GO TO GOTO2.
071740     IF FLAG-ALPHA = 1 GO TO E002.
071760     IF NUMBN < 00 OR NUMBN > 99 GO TO E008.
071780     SET X UP BY 1. SET INSTR (X) TO DX.
071800     MOVE TYPE-GOTO TO D-TYPEV (DX).
071820     MOVE NUMBN TO D-NCHAR (DX).
071840     MOVE 1 TO FLAG-GOTO.
071860     GO TO VERB-RESET.
071880 GOTO2.
071900     SET DX TO T-INSTR.
071920*    FOR STATEMENT #S, D-SCALE IS THE ASSIGNED ADDRESS WITHIN
071940*    THE INSTR TABLE OF THE STATEMENT NUMBER.
071960     IF D-SCALE (DX) = ZEROS
071980        MOVE 'STATEMENT NUMBER' TO WORD30
072000        MOVE D-NCHAR (DX) TO WORD30-STNUMB
072020        GO TO E001.
072022     IF X = SORT-GOTO-X + 9 MOVE V-GOTO TO INSTR(SORT-GOTO-X)
072024         MOVE T-INSTR TO INSTR(SORT-GOTO-X + 1).
072040     GO TO VERB-CONTROL.
072060 GOTO3.
072080*    GET HERE VIA PERFORM AFTER 2ND PASS IS COMPLETED.
072100     IF FLAG-GOTO = ZERO GO TO GOTO3X.
072120     SET HX TO X. SET X TO X-START. SET X DOWN BY 1.
072140 GOTO3A.
072160     IF X > HX GO TO GOTO3X.
072180     SET X UP BY 1. IF INSTR (X) = ZEROS GO TO GOTO3A.
072200     SET V TO INSTR (X).
072220     IF V NOT EQUAL TO V-GOTO GO TO GOTO3B.
072240     SET X UP BY 1.
072260*    IF GOTO PARAMETER IS > DX-MAX, THEN WE HAVE AN INTERNALLY
072280*    GENERATED GOTO(VIA ELSE2) AND WE MERELY SUBTRACT
072300*    DX-MAX FROM GOTO PARAMETER AND GET CORRECT GOTO ADDRESS
072320     IF INSTR (X) > DX-MAX
072340         SUBTRACT DX-MAX FROM INSTR (X)  GO TO GOTO3A.
072360     SET DX TO INSTR (X).
072380     SET INSTR (X) TO D-SCALE (DX).
072400     GO TO GOTO3A.
072420 GOTO3B.
072440     IF X > HX GO TO GOTO3X.
072460     SET X UP BY 1. IF INSTR (X) = ZEROS GO TO GOTO3A.
072480     GO TO GOTO3B.
072500 GOTO3X.    EXIT.
072520 GOTONR1.
072540     GO TO VERB-RESET.
072560 GOTOQT1.
072580     MOVE 1 TO FLAG-CREATE-LOOP.
072600     GO TO VERB-RESET.
072620 GOTOXT1.
072640     MOVE 1 TO FLAG-CREATE-LOOP.
072660     GO TO VERB-RESET.
072680 HEADINGOFF1.
072700*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
072720     GO TO VERB-RESET.
072740 HEADINGON1.
072760*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
072780     GO TO VERB-RESET.
072800 HOLD1.
072820     IF FLAG-PASS = 2 GO TO HOLD2.
072840     IF FLAG-ALPHA = ZERO GO TO E003.
072860     IF TYPEV = TYPE-TODAY GO TO E003.
072880     IF TYPEV = TYPE-XRANDOM GO TO E003.
072900     SET INSTR (X) TO DX.
072920     MOVE WORD30 TO HWORD30. MOVE HELD-WORD30 TO WORD30.
072940     PERFORM DROP-IN-DX THRU DIDX.
072960     SET X UP BY 1. SET INSTR (X) TO DX.
072980     GO TO VERB-CONTROL.
073000 HOLD2.
073020     SET DX TO T-INSTR.
073040     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
073060     SET VX TO T-INSTR.
073080*    MAKE THE HELD. ENTRY (VX) LOOK BASICALLY LIKE
073100*    SOURCE OR HOLD ENTRY (DX) INCLDG TYPE,NC,SCALE
073120     MOVE D-ENTRY (DX) TO V-ENTRY (VX).
073140     SET DX TO VX.
073142     MOVE D-TYPEV (DX) TO TYPEV.
073144*    FOR HELD SPECIAL ITEMS, CHANGE TYPE TO ALPHA OR NUM (BINARY?)
073146     IF TYPEV = 24 OR TYPEV = 32 OR TYPEV = 35
073148        MOVE 2 TO D-TYPEV (DX).
073150     IF TYPEV = 33 OR  34 OR  36  MOVE 1 TO D-TYPEV (DX).
073160     MOVE FCHAR TO D-FCHAR (DX).
073180     IF TYPEV = TYPE-BINARY
073200        IF D-NCHAR (DX) < 11 ADD 6 TO FCHAR ELSE ADD 12 TO FCHAR
073220           ELSE ADD D-NCHAR (DX) TO FCHAR.
073240     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
073260     IF T-INSTR = ZEROS GO TO VERB-CONTROL.
073280     GO TO HOLD2.
073300 HSPACE1.
073320     IF FLAG-PASS = 2 GO TO VERB-CONTROL.
073340     IF FLAG-ALPHA = 1 GO TO E002.
073360     IF NUMBN < 0 GO TO E008.
073380     MOVE NUMBN10 TO T-NUMBN.
073400     ADD 1 TO T-NUMBN.
073420     MULTIPLY T-NUMBN BY MINUS-ONE GIVING T-NUMBN.
073440     SET INSTR (X) TO T-NUMBN.
073460     GO TO VERB-RESET.
073480 IF1.
073500     IF FLAG-PASS = 2 GO TO IF2.
073520*    BUG OUT IF NOT THE FIRST TIME AS ARGS ARE BEING
073540*    INSERTED BY VERB-CONTROL.
073560     IF FLAG-IF = 1 GO TO VERB-CONTROL.
073580     MOVE 1 TO FLAG-IF.
073600*    IF JUST READ 'NOT' (INDICATED BY VP-NOT = 1), THEN
073620*    FLAG-NOT IS ALREADY SET, OTHERWISE SET FLAG-NOT TO
073640*    SAVED FLAG-NOT PERTINENT THE CURRENT PAREN LEVEL.
073660     IF VP-NOT = 1 OR N-OPENLPS = 0 NEXT SENTENCE
073680        ELSE MOVE NOTT (N-OPENLPS) TO FLAG-NOT.
073700     SET INSTR (X) TO X.
073720     SET X UP BY 1. SET INSTR (X) TO X.
073740*    SET ( INTO INSTR TABLE FOR EACH CONSECUTIVE ( FOUND.
073760 IF1A.
073780     IF LPARENCNTR = 0 GO TO IF1B.
073800     SUBTRACT 1 FROM LPARENCNTR.
073820     SET X UP BY 1.
073840     MOVE V-LPAREN TO INSTR (X).
073860     GO TO IF1A.
073880 IF1B.
073940     SET X UP BY 1 MOVE DX-IFLEFTSIDE TO INSTR (X).
073960     IF FLAG-NOT = 0 GO TO IF1C.
073980*    FOR RELATIONALS THAT ARE PRECEEDED BY NOT, REVERSE THE RELATIO
074000     IF VA = V-EQUAL        MOVE V-NOTEQUAL TO VA GO TO IF1C.
074020     IF VA = V-NOTEQUAL     MOVE V-EQUAL TO VA GO TO IF1C.
074040     IF VA = V-LESS         MOVE V-GREATEREQUAL TO VA GO TO IF1C.
074060     IF VA = V-GREATER      MOVE V-LESSEQUAL TO VA GO TO IF1C.
074080     IF VA = V-LESSEQUAL    MOVE V-GREATER TO VA GO TO IF1C.
074100     IF VA = V-GREATEREQUAL MOVE V-LESS TO VA GO TO IF1C.
074120     GO TO E029.
074140 IF1C.
074160     SET X UP BY 1. SET INSTR (X) TO VA.
074180     SET X UP BY 1. SET INSTR (X) TO DX.
074200*    IF JUST READ 'NOT', FLIP IT BACK TO GLOBAL PAREN STATE.
074220     IF VP-NOT = 0 GO TO VERB-CONTROL.
074240     MOVE 0 TO VP-NOT.
074260     IF FLAG-NOT = 1 MOVE 0 TO FLAG-NOT
074280        ELSE MOVE 1 TO FLAG-NOT.
074300     GO TO VERB-CONTROL.
074320 IF2.
074340*    IF VERB HAS BEEN READ AND STORED AND X IS POINTING
074360*    TO THE NEXT INSTR ENTRY (TRUEGO).
074380*    IF2 WILL STACK THE TRUE AND FALSE ADDRESS AND THEN
074400*    READ THE ENTIRE IF LIST ENDED BY 0
074420     PERFORM DROP-IN-TRUEGO THRU DITGOX.
074440     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
074460     PERFORM DROP-IN-FALSEGO THRU DIFGOX.
074480 IF2A.
074500     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
074520     IF T-INSTR = V-LPAREN
074540        PERFORM LPAREN2 THRU LPAREN2X  GO TO IF2A.
074560     IF T-INSTR NOT EQUAL TO ZEROS GO TO IF2A.
074580*    HAVE HIT END OF IF LIST--SEE IF THIS IS FOLLOWED BY
074600*    ANOTHER IF OR A VERB LIST
074620 IF2B.
074640     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
074660     IF T-INSTR = V-THEN GO TO IFTHEN2.
074680     IF T-INSTR = V-AND  GO TO IFAND2.
074700     IF T-INSTR = V-OR   GO TO IFOR2.
074720     IF T-INSTR = V-RPAREN
074740        PERFORM RPAREN2 THRU RPAREN2X  GO TO IF2B.
074760     IF T-INSTR = V-EOS  
074762        MOVE 'PERHAPS DUE TO OTHER ERRORS,AN' TO WORD30
074764        GO TO E039.
074780     IF T-INSTR = 0      GO TO E022.
074800*    HERE FOR VERB WITHOUT THEN OR IF WITHOUT AND/OR
074820*    ACT AS THOUGH 'THEN' WERE READ AND THEN BACK UP READ
074840     PERFORM POPALL-TRUE THRU POPALLTX.
074860     SET LI DOWN BY 1.
074880     SET X DOWN BY 1.
074900     GO TO VERB-CONTROL.
074920 IFTHEN1.
074940     GO TO VERB-CONTROL.
074960 IFTHEN2.
074980*    POP ALL TRUE STACK AND DELETE 'THEN' FROM INSTR
075000*    TABLE BY DECREMENTING X
075020     PERFORM POPALL-TRUE THRU POPALLTX.
075040 IFTHEN2A.
075060*    READ OVER THE NOP FOLLOWING -THEN- AND ILLIMINATE
075080*    -THEN-NOP- FROM INSTR
075100     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
075120     IF T-INSTR = 0 SET X DOWN BY 2
075140        ELSE GO TO E022.
075160     GO TO VERB-CONTROL.
075180 IFAND2.
075200*    POP TOP (IE LAST) TRUE AND DELETE 'AND' AND ITS
075220*    TRAILING V-NOP FROM INSTR TABLE BY DECREMENTING X
075240     PERFORM POP-TRUE THRU POPTX.
075260     IF RPARENCNTR = 0 GO TO IFAND3.
075280     IF N-TRUEGO = 0
075300        MOVE 0 TO RPARENCNTR  SUBTRACT 1 FROM LPARENCNTR
075320        GO TO IFAND3.
075340*    POP TRUE STACK TILL FIND SAME X-TRUEGO AS INDICATED
075360*    BY TOP OF TRUE-LPAREN STACK.
075380*    REPEAT THIS SEARCHING-POPPING RPARENCNTR TIMES.
075400     IF TRUE-LPAREN (TLPX) < POPPED-X GO TO IFAND2.
075420     IF TRUE-LPAREN (TLPX) > POPPED-X GO TO IFAND2A.
075440     SUBTRACT 1 FROM TLPX.
075460 IFAND2A.
075480     SUBTRACT 1 FROM RPARENCNTR.
075500     SUBTRACT 1 FROM LPARENCNTR.
075520     IF RPARENCNTR GREATER THAN 0 GO TO IFAND2.
075540 IFAND3.
075560     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
075580     IF T-INSTR NOT = 0 GO TO E022.
075600     SET X DOWN BY 2.
075620     GO TO VERB-CONTROL.
075640 IFOR2.
075660*    POP TOP (IE LAST) FALSE AND DELETE 'OR' FROM INSTR TABLE
075680*    BY DECREMENTING X.
075700     PERFORM POP-FALSE THRU POPFX.
075720     IF RPARENCNTR = 0 GO TO IFAND3.
075740     IF N-FALSEGO = 0
075760        MOVE 0 TO RPARENCNTR  SUBTRACT 1 FROM LPARENCNTR
075780        GO TO IFAND3.
075800*    POP FALSE STACK SIMILIAR TO 'AND' ABOVE.
075820     IF FALSE-LPAREN (FLPX) < POPPED-X GO TO IFOR2.
075840     IF FALSE-LPAREN (FLPX) > POPPED-X GO TO IFOR2A.
075860     SUBTRACT 1 FROM FLPX.
075880 IFOR2A.
075900     SUBTRACT 1 FROM RPARENCNTR.
075920     SUBTRACT 1 FROM LPARENCNTR.
075940     IF RPARENCNTR GREATER THAN 0 GO TO IFOR2.
075960     GO TO IFAND3.
075980 IFELSE1.
076000     IF FLAG-PASS = 2 GO TO IFELSE2.
076020     GO TO VERB-CONTROL.
076040 IFELSE2.
076060*    REPLACE ELSE AND V-NOP INSTR ENTRIES WITH GOTO N, WHERE
076080*    N WILL BE ASSIGNED LATER.
076100*    NEXT, POP FALSE STACK TO POINT TO NEXT INSTR ENTRY
076120*    (START OF ELSE LIST).
076140     SET X DOWN BY 1.
076160     MOVE V-GOTO TO INSTR (X).
076180*    TEMPORALLY, SET X UP 1 BEYOND GOTO/N ENTRIES TO ENABLE
076200*    POP FALSE TO SET TO POINT TO ENTRY FOLLOWING CURRENT ENTRY.
076220     SET X UP BY 2.
076240     PERFORM POPALL-FALSE THRU POPALLFX.
076260     SET X DOWN BY 1.
076280     SET ELSE-X TO X.
076300     GO TO VERB-CONTROL.
076320 IFANY1.
076340     GO TO IF1.
076360 IFFIRST1.
076380     GO TO IF1.
076400 IFLAST1.
076420     GO TO IF1.
076440 IFNEXT1.
076460     GO TO IF1.
076480 IFSAME1.
076500     GO TO IF1.
076520 IFBOF1.
076540     GO TO IFFIRSTIME1.
076560 IFBOF2.
076580     GO TO IFFIRSTIME1.
076600 IFBOF3.
076620     GO TO IFFIRSTIME1.
076720 IFEOF1.
076740     GO TO IFFIRSTIME1.
076760 IFEOF2.
076780     GO TO IFFIRSTIME1.
076800 IFEOF3.
076820     GO TO IFFIRSTIME1.
076840 IFLASTIME1.
076860     GO TO IFFIRSTIME1.
076880 IFFIRSTIME1.
076900     IF FLAG-PASS = 2 GO TO IFFIRSTIME2.
076913*    should only come here once for each use--otherwise
076914*     a verb is missing and got here because v was not
076916*    reset by a new verb
076917     if flag-verb = 2  go to e005.
076918     move 2 to flag-verb.
076919     MOVE 1 TO FLAG-IF.
076920     SET X UP BY 1.
076940     IF VP-NOT = 1 OR N-OPENLPS = 0 NEXT SENTENCE
076960        ELSE MOVE NOTT (N-OPENLPS) TO FLAG-NOT.
076980     MOVE FLAG-NOT TO INSTR (X).
077000     SET X UP BY 1.  SET INSTR (X) TO X.
077020     SET X UP BY 1.  SET INSTR (X) TO X.
077040*    SET ( INTO INSTR TABLE FOR EACH CONSECUTIVE ( FOUND.
077060 IFFIRSTIME1A.
077080     IF LPARENCNTR = 0 GO TO IFFIRSTIME1B.
077100     SUBTRACT 1 FROM LPARENCNTR.
077120     SET X UP BY 1.
077140     MOVE V-LPAREN TO INSTR (X).
077160     GO TO IFFIRSTIME1A.
077180 IFFIRSTIME1B.
077200     IF VP-NOT = 0 GO TO VERB-CONTROL.
077220     MOVE 0 TO VP-NOT.
077240     IF FLAG-NOT = 1 MOVE 0 TO FLAG-NOT
077260        ELSE MOVE 1 TO FLAG-NOT.
077280     GO TO VERB-CONTROL.
077300 IFFIRSTIME2.
077320     MOVE INSTR (X) TO FLAG-NOT.
077340     SET X DOWN BY 1.
077360     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
077380*    IF NOT CONDITION IS SET, THEN REVERSE TRUE/FALSE
077400     IF FLAG-NOT = 1
077420        PERFORM DROP-IN-FALSEGO THRU DIFGOX
077440        PERFORM GET-ONE-INSTR THRU GET-INSTRX
077460        PERFORM DROP-IN-TRUEGO THRU DITGOX
077480        GO TO IFFIRSTIME2A.
077500     PERFORM DROP-IN-TRUEGO THRU DITGOX.
077520     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
077540     PERFORM DROP-IN-FALSEGO THRU DIFGOX.
077560 IFFIRSTIME2A.
077580     IF FLAG-IFFIRST = 0 GO TO IF2A ELSE MOVE 0 TO FLAG-IFFIRST.
077600*    GET GROUP ITEM entry for if newgroup(if there is one)
077620 IFFIRSTIME2B.
077640     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
077660     IF T-INSTR = 0 GO TO IF2B.
077670     if t-instr = v-lparen
077672        perform lparen2 thru lparen2x  go to iffirstime2b.
077680*    NEXT GET PRIOR VALUE ENTRY AND MODIFY ITS ORIGIN
077700     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
077720     PERFORM ASSIGN-PRIOR-ORIGIN THRU ASSIGN-PRIORX.
077740     GO TO IFFIRSTIME2B.
077760 IFNEWGROUP1.
077780     IF FLAG-PASS = 2  MOVE 1 TO FLAG-IFFIRST GO TO IFFIRSTIME2.
077800*    INDICATE TO IQE THAT PREV RECORD MUST BE SAVED
077820     MOVE 1 TO SUMBREAK-FLAG.
077840     IF FLAG-ALPHA = ZERO GO TO E003.
077860*    BUG OUT IF NOT FIRST TIME HERE AS ARGS ARE BEING
077880*    STORED BY VERB-CONTROL.
077900     IF FLAG-IF = 1
077920        MOVE 1 TO FLAG-IFFIRST
077940        PERFORM ALLOCATE-ACCUM-BUCKETS THRU ALLOC-ACCX
077960        MOVE 0 TO FLAG-IFFIRST
077980        GO TO VERB-CONTROL.
078000     MOVE 1 TO FLAG-IF.  
078020     GO TO IFFIRSTIME1.
078040 IFNEWPAGE1.
078060     GO TO IFFIRSTIME1.
078080 INVALID-KEY1.
078100     GO TO VERB-CONTROL.
078120 INVOKE1.
078140     IF FLAG-PASS = 2 GO TO INVOKE2.
078160     IF FLAG-VERB = 2 GO TO INVOKE1A.
078180     GO TO VERB-CONTROL.
078200 INVOKE1A.
078220     GO TO VERB-RESET.
078240 INVOKE2.
078260     GO TO VERB-CONTROL.
078280 LMARGIN1.
078300     IF FLAG-PASS = 2 GO TO VERB-CONTROL.
078320     IF FLAG-ALPHA = 1 GO TO E002.
078340     IF NUMBN < 1 GO TO E008.
078360     SET INSTR (X) TO NUMBN.
078380     GO TO VERB-RESET.
078400 LPAREN2.
078420     ADD 1 TO LPARENCNTR.
078440     ADD 1 TO TLPX.
078460*    STORE CURRENT VALUE OF TOP OF TRUE STACK
078480     MOVE X-TRUEGO (TSX) TO TRUE-LPAREN (TLPX).
078500*    DO SAME FOR FALSE PARENS
078520     ADD 1 TO FLPX.
078540     MOVE X-FALSEGO (FSX) TO FALSE-LPAREN (FLPX).
078560     SET X DOWN BY 1.
078580 LPAREN2X.  EXIT.
078600 RPAREN2.
078620     ADD 1 TO RPARENCNTR.
078640     IF RPARENCNTR GREATER THAN LPARENCNTR 
078642        MOVE 010 TO ECODE  PERFORM E-RROR THRU E-XIT.
078660*    ILLIMINATE ) AND FOLLOWING V-NOP FROM INSTR TABLE
078680     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
078700     SET X DOWN BY 2.
078720 RPAREN2X.  EXIT.
078740 MAXIMUM1.
078760     IF FLAG-PASS = 2
078780        MOVE '*WARNING-MAXIMUM STATEMENT' TO WORD30
078800        GO TO TALLY2.
078820     GO TO TALLY1.
078840 MINIMUM1.
078860     IF FLAG-PASS = 2
078862        MOVE '*WARNING-MINIMUM STATEMENT' TO WORD30  GO TO TALLY2.
078864     GO TO TALLY1.
078880 NEWPAGE1.
078900*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
078920     GO TO VERB-RESET.
078940 OPEN1.
078960     IF FLAG-PASS = 2 GO TO OPEN2.
078980     IF FLAG-ALPHA = ZERO GO TO E003.
079000     IF TYPEV = TYPE-LITERAL AND FLAG-VERB = 0
079020        GO TO E001.
079040     IF TYPEV = TYPE-LITERAL AND FLAG-VERB = 1
079060        SET L-NCHAR (LX) TO FX
079080        MOVE 0 TO FLAG-VERB GO TO VERB-CONTROL.
079100     SET X DOWN BY 1.
079120     MOVE 1 TO FLAG-VERB.
079140     SET FX TO DX. MOVE TYPE-FILE TO F-TYPEV (FX).
079160     ADD 1 TO N-INPUTFILES. IF N-INPUTFILES > 3 GO TO E005.
079180*    OPEN1 SETS FX-PRIMARY,FX-SEC,FX-TERT DEPENDING ON
079200*    WHICH ENTRY WE ARE COMING INTO OPEN1 WITH
079220     IF N-INPUTFILES = 1 SET FX-PRIMARY TO FX GO TO OPEN1A.
079240     IF N-INPUTFILES = 2 SET FX-SECONDARY TO FX.
079260     IF FX-SECONDARY = FX-PRIMARY GO TO E038.
079280     IF N-INPUTFILES = 2 GO TO OPEN1A.
079300     SET FX-TERTIARY TO FX.
079320     IF FX-TERTIARY = FX-PRIMARY GO TO E038.
079340     IF FX-TERTIARY = FX-SECONDARY GO TO E038.
079360 OPEN1A.
079380     MOVE 1 TO FLAG-CREATE-LOOP.
079400     GO TO VERB-CONTROL.
079420 OPEN2.
079440*    FIRST CHECK FOR FILE READ PROTECT
079460     MOVE 0 TO FILENO.
079480 OPEN2A.
079500     ADD 1 TO FILENO.
079520     IF FILENO = 1 SET FX TO FX-PRIMARY.
079540     IF FILENO = 2 SET FX TO FX-SECONDARY.
079560     IF FILENO = 3 SET FX TO FX-TERTIARY.
079580     MOVE FD-RPROT (FILENO) TO TEST-REF-NO.
079600     PERFORM UNLOCKER THRU UNLOCKER-EXIT.
079620     IF FLAG-LOCKED NOT = 1 GO TO OPEN2A2.
079622*    HERE IF USER HAS NOT FURNISHED PROPER PASSWORDS FOR FILE
079624*    ACCESS EITHER THRU AUTHORITY OR A PREVIOUS PROMPTING
079626*    POSSIBILITY IN RDICT-DD6
079627     MOVE 'FILE ACCESS' TO ITEM-OR-FILE.
079628     IF FLAG-PW-OPEN = 0
079629        MOVE 1 TO FLAG-PW-OPEN
079630        PERFORM PASSWORD-PROMPTER THRU PROMPTX.
079631     IF N-PROMPTS = 0 GO TO OPEN2A1.
079632     MOVE PROMPT-PW-POINTER TO PW-LIST.
079634     MOVE N-PROMPTS TO N-PW.
079636     PERFORM UNLOCKER THRU UNLOCKER-EXIT.
079638     IF FLAG-LOCKED NOT = 1 GO TO OPEN2A2.
079640 OPEN2A1.
079650     MOVE FD-NAMEPROT (FILENO) TO WORD30. MOVE 14 TO ECODE.
079660     PERFORM E-RROR THRU E-XIT.
079670 OPEN2A2.
079680     IF FILENO LESS THAN N-INPUTFILES GO TO OPEN2A.
079700*    SEE IF FILE SPECS ARE TO BE MODIFIED
079720     MOVE 1 TO FLAG-OPENARGS.
079740     IF T-INSTR = 0   MOVE 0 TO FLAG-OPENARGS GO TO OPEN2B.
079760     PERFORM PROCESS-OPEN-ARGS THRU PROCESS-OPEN-ARGSX.
079780     MOVE ZERO TO INSTR (X).
079800 OPEN2B.
079820     IF FLAG-RANDOM-READ1 = 1 GO TO OPEN2C.
079840     SET X UP BY 1. SET INSTR (X) TO V-READ.
079860     MOVE V-ASCENDING TO T-INSTR.
079880     SET FX TO FX-PRIMARY.
079900     SET X UP BY 1. SET INSTR (X) TO FX.
079920     IF F-TYPEV (FX) = 27 ADD 1 TO T-INSTR.
079940*    IS THIS INDEXED SEQUENTIAL?
079960     IF F-KEYLOC (FX) NOT = 0 ADD 2 TO T-INSTR.
079980     SET X UP BY 1. SET INSTR (X) TO T-INSTR.
080000     SET X UP BY 1. SET INSTR (X) TO ZEROS.
080020 OPEN2C.
080040     IF FLAG-OPENARGS = 0  GO TO VERB-CONTROL.
080060 OPEN2D.
080080     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
080100     IF T-INSTR = 0 GO TO VERB-CONTROL.
080120     PERFORM PROCESS-OPEN-ARGS THRU PROCESS-OPEN-ARGSX.
080140     MOVE V-OPEN TO INSTR (X).
080160     IF N-INPUTFILES = 3  IF FX = FX-SECONDARY
080180        SET X UP BY 1  MOVE 0 TO INSTR (X).
080200     GO TO OPEN2D.
080220 PROCESS-OPEN-ARGS.
080240*    PROCESS THE OPEN ARGUMENT (WHICH IS A FILENAME SPECIFICATION
080260*    LITERAL--PROCESS BY MODIFYING THE F-ID ACCDG TO LITERAL.
080280     SET LX TO T-INSTR.
080300     MOVE L-VALUE (LX) TO QUOTE-TABLE.
080320     SET FX TO LX.  SET FX UP BY 1.
080340     PERFORM GET-DEV-LBL-PPN THRU GET-DLP-EXIT.
080360     MOVE FD-LABEL TO F-ID (FX).
080380 PROCESS-OPEN-ARGSX.  EXIT.
080400 PAGE1.
080420     IF FLAG-PASS = 2 GO TO VERB-CONTROL.
080440     IF FLAG-ALPHA = 0
080460        IF NUMBN < 0 GO TO E008.
080480     SET INSTR (X) TO DX.
080500     GO TO VERB-RESET.
080520 PAGINGOFF1.
080540*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
080560     GO TO VERB-RESET.
080580 PAGINGON1.
080600*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
080620     GO TO VERB-RESET.
080640 PAGE-LINES1.
080660     IF FLAG-PASS = 2 GO TO VERB-CONTROL.
080680     IF FLAG-ALPHA = 1 GO TO E002.
080700     IF NUMBN < 1 GO TO E008.
080720     SET INSTR (X) TO NUMBN.
080740     GO TO VERB-RESET.
080760 PICTURE1.
080780     IF FLAG-PASS = 2 GO TO PICTURE2.
080800     IF FLAG-VERB = 2 GO TO PICTURE1A.
080820*    FOR FLAG-VERB = 3, WE ARE ENTERING PICTURE1 VIA A MULTI
080840*    LIST DESIGNATION(IE PICTURE DN=LIT,DN1=LIT1,... AND SINCE
080860*    THERE IS ONLY 1 PICTURE VERB, AND WE ARE ON THE 2ND OR
080880*    BEYOND DN, WE MISSED PUTTING IN THE ACTUAL 2ND ETC OCCURENCE
080900*    OF PICTURE--BACK UP AND DO IT NOW.
080920     IF FLAG-VERB = 3 SET X DOWN BY 1
080940        PERFORM DROP-IN-VERB THRU DIVX SET X UP BY 1.
080960     MOVE 2 TO FLAG-VERB.
080980     IF FLAG-ALPHA = ZERO GO TO E003.
081000     SET INSTR (X) TO DX.
081020     GO TO VERB-CONTROL.
081040 PICTURE1A.
081060     MOVE 1 TO FLAG-VERB.
081080     IF VA NOT EQUAL TO V-EQUAL GO TO E004.
081100     IF TYPEV NOT EQUAL TO TYPE-LITERAL
081120        GO TO E015.
081140     IF Q > 20 GO TO E016.
081150     MOVE SPACES TO L-ENTRY (LX).
081160     SET DX-LOWEST UP BY 1.
081180     EXAMINE QUOTE-TABLE TALLYING ALL '.'.
081200     IF TALLY > 1 GO TO E021.
081220     EXAMINE QUOTE-TABLE TALLYING ALL 'S'.
081240     IF TALLY > 1 GO TO E021.
081260     SET INSTR (X) TO QUOTEN (1).
081280     SET X UP BY 1. SET INSTR (X) TO QUOTEN (2).
081300     SET X UP BY 1. SET INSTR (X) TO QUOTEN (3).
081320     SET X UP BY 1. SET INSTR (X) TO QUOTEN (4).
081340     MOVE 3 TO FLAG-VERB.
081360     GO TO VERB-CONTROL.
081380 PICTURE2.
081400     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
081420*    MAKE SURE THE DATANAME IS FOLLOWED BY A PICTURE.
081440*    IF T-INSTR = 0
081460*       MOVE 'CHECK SYNTAX FOR DN = LITERAL' TO WORD30
081480*       GO TO E021.
081500     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
081520     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
081540     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
081560     GO TO VERB-CONTROL.
081580 PRINT1.
081600     IF FLAG-PASS = 2 GO TO PRINT2.
081620     IF FLAG-VERB = 1 AND V = V-PRINT GO TO PRINT1A.
081640     IF FLAG-ALPHA = 1 SET INSTR (X) TO DX
081660        GO TO VERB-CONTROL.
081680     MOVE NUMBN10 TO T-NUMBN.
081700     IF T-NUMBN = V-CONCAT MOVE MINUS-ONE TO T-NUMBN.
081720     IF T-NUMBN < 0 MOVE ZEROS TO T-NUMBN.
081740     ADD 1 TO T-NUMBN.
081760     MULTIPLY T-NUMBN BY MINUS-ONE GIVING T-NUMBN.
081780     SET INSTR (X) TO T-NUMBN.
081800     GO TO VERB-CONTROL.
081820 PRINT1A.
081840     SET INSTR (X) TO CONST1. SET X UP BY 1.
081860     SET INSTR (X) TO CONST1. SET X UP BY 1.
081880     SET INSTR (X) TO CONST1. SET X UP BY 1.
081900     MOVE 2 TO FLAG-VERB.
081920     GO TO PRINT1.
081940 PRINT2.
081942     IF T-INSTR = 0 MOVE 'Print statement' TO WORD30 GO TO E046.
081944 PRINT2A.
081960     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
081980     IF T-INSTR = ZERO GO TO VERB-CONTROL.
082000     GO TO PRINT2A.
082020 PRINTOFF1.
082040*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
082060     GO TO VERB-RESET.
082080 PRINTON1.
082100*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
082120     GO TO VERB-RESET.
082140 DISPLAY-DICT.
082160     SET DX TO DX-MAX. SET DX UP BY 1.
082180 DISP-DICT-LOOP.
082200     SET DX DOWN BY 1. IF DX < DX-LOWEST GO TO DISPLAY-DICTX.
082220     DISPLAY '*DICT*DX=' DX ' ' D-TITLE1 (DX) ' ' D-TITLE2 (DX)
082240             ' ' D-TYPEV (DX) ' ' D-FCHAR (DX) ' '
082260             D-NCHAR (DX) UPON CONSOLE.
082280     GO TO DISP-DICT-LOOP.
082300 DISPLAY-DICTX.  EXIT.
082320 QUERY1.
082340*    HERE FROM VERB-CONTROL DISPATCH WHEN V=1=ALL
082360*    STATEMENTS READ
082380*    SET UP  -GO TO NR- AND STOP
082400     IF FLAG-QUERY = ZERO MOVE 'EMPTY QUERY' TO WORD30
082420        MOVE 9 TO FLAG-PASS GO TO E005.
082440     IF FLAG-PASS = 2 GO TO QUERY2.
082460     SET X UP BY 1. MOVE V-NOP TO INSTR (X).
082480     MOVE ZERO TO FLAG-EOS.
082500     SET X UP BY 1.  MOVE V-EOS TO INSTR (X).
082520     SET X UP BY 1. MOVE V-GOTONR TO INSTR (X).
082540     SET X UP BY 1. MOVE V-NOP TO INSTR (X).
082560     SET X UP BY 1. MOVE V-STOP TO INSTR (X).
082580*    DISPLAY 'END OF FIRST PASS' UPON CONSOLE.
082600     CLOSE QCSTMT.
082620*    IF N-INPUTFILES = 0 THEN HAVE NO OPEN STATEMENT
082640     IF N-INPUTFILES = ZERO 
082642        IF FLAG-SORT = 0  MOVE 1 TO FCHAR  GO TO QUERY1A
082644           ELSE
082646           MOVE 51 TO ECODE  PERFORM E-RROR THRU E-XIT
082648           GO TO QUERY1A.
082660     MOVE ZEROS TO PROJ8,USER8.
082680     MOVE 'QPDICTSEQ' TO FD-INLABEL WORD30.
082700*    SEE IF DICTIONARY IS AROUND
082720     ENTER MACRO IQLOOK USING
082740        DEVICER,FD-INLABEL,PROJ8,USER8,I.
082760     IF I NOT EQUAL TO -1 GO TO E009.
082780*    COMPLETE DICT SPECS FOR ALL DICT ITEMS IN DICTIONARY
082800*    COMPLETE DYN DICT WITH SUCH INFO AS:
082820*    FD--PPN,ID,DEVICE,TYPE,BUFFER,ORIGINS,LENGTHS,RL,BL
082840*    DD--ALL DICT INFO INCLDG SCALE,NC,FC,REPEATS,ETC.
082860     PERFORM READ-DICT THRU RDICTX.
082880 QUERY1A.
082900     IF REPORT-DX = 1 MOVE 1 TO NUMBN
082920        PERFORM REPORT1A THRU REPORT1X.
082940*    NOW INITIALIZE CERTAIN DICT SPECS FOR VARIABLES ETC
082960*    FOR ALPHA VAR: ECHAR=SCALE=FCHAR=0
082980*    FOR NUM VAR  : FCHAR=0; ECHAR=13,NCHAR=18,SCALE=0
083000     PERFORM DX-CLEANUP THRU DUPX.
083020     PERFORM QTANLZ-WRITE THRU QTANLZ-EXIT.
083040     MOVE QTANLZTMP TO QCSTMTTMP.
083060*    GET DUMP FILE WHEN DUMP FLAG IS ON
083080     IF FLAG-DUMP = 1 MOVE 'IQDUMPTMP' TO QTANLZTMP
083100        PERFORM QTANLZ-WRITE THRU QTANLZ-EXIT
083120        MOVE QCSTMTTMP TO QTANLZTMP.
083140     MULTIPLY DX BY LI-MAX GIVING DX.
083160     IF DX < X GO TO E012.
083180     MOVE 2 TO FLAG-PASS.  MOVE 0 TO FLAG-CREATE.
083200     SET LI TO LI-MAX.
083220     SET X TO ZEROS.
083240*    IF FLAG-ERROR NOT EQUAL TO ZEROS GO TO QTANLZ-DAS-ENDE.
083260     MOVE SPACE TO WORD30.
083280     OPEN INPUT QTANLZ.
083300     GO TO VERB-CONTROL.
083320 QUERY2.
083340     SET EOF1-X TO X. SET EOF1-X DOWN BY 1.
083360     CLOSE QTANLZ.
083380     SET HX TO 1.
083400 QUERY2A.
083420*    CLEAN OUT OLD JUNK IN INSTR TABLE LEFT OVER FROM WHEN
083440*    INSTR TABLE SHRUNK DURING PASS2.
083460     SET X UP BY 1. IF INSTR (X) NOT EQUAL TO ZEROS
083480        MOVE V-NOP TO INSTR (X) SET HX TO 1 GO TO QUERY2A.
083500     IF HX < 6 SET HX UP BY 1 GO TO QUERY2A.
083520     PERFORM DX-CLEANUP THRU DUPX.
083540     PERFORM GOTO3 THRU GOTO3X.
083560     PERFORM QTANLZ-WRITE THRU QTANLZ-EXIT.
083600*    FOR FINAL VERSION, ONLY PUT OUT A DUMP FILE
083620*    IF DUMP FLAG IS ON IE =1
083640     IF FLAG-DUMP = 1
083642        MOVE 'IQDUMPTMP' TO QTANLZTMP
083660        PERFORM QTANLZ-WRITE THRU QTANLZ-EXIT
083662        MOVE QCSTMTTMP TO QTANLZTMP.
083700     IF FLAG-SAVE = 1 AND QRY-NAME NOT EQUAL TO SPACE
083702        MOVE QRY-NAME TO QTANLZTMP
083720        PERFORM QTANLZ-WRITE THRU QTANLZ-EXIT
083722        MOVE QCSTMTTMP TO QTANLZTMP.
083740     MULTIPLY DX BY LI-MAX GIVING DX.
083760     IF DX < X GO TO E012.
083780     IF FLAG-CREATE-LOOP = 0
083800        MOVE 'NEED OPEN OR GO TO XT/QT' TO WORD30
083820        MOVE 24 TO ECODE
083840        PERFORM E-RROR THRU E-XIT.
083860     GO TO QTANLZ-DAS-ENDE.
083880 READ1.
083900     GO TO VERB-CONTROL.
083920 RESET1.
083940     IF FLAG-PASS = 2 GO TO RESET2.
083960     IF FLAG-ALPHA = ZERO GO TO E003.
083980     IF TYPEV = TYPE-TODAY GO TO E003.
084000     IF TYPEV = TYPE-XRANDOM GO TO E003.
084020     SET INSTR (X) TO DX.
084040     GO TO VERB-CONTROL.
084060 RESET2.
084080     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
084100     IF T-INSTR = ZEROS GO TO VERB-CONTROL.
084120     GO TO RESET2.
084122 REOPEN1.
084124     IF FLAG-PASS = 1 GO TO VERB-CONTROL.
084126*    NOW CHANGE INSTR TO BE V-OPEN FOLLOWED BY NOP
084128     SET X DOWN BY 1.
084130     MOVE V-OPEN TO INSTR (X).
084132     SET X UP BY 1.
084134     GO TO VERB-CONTROL.
084140 REPORT1.
084160     IF FLAG-PASS = 2 GO TO VERB-CONTROL.
084180     IF FLAG-ALPHA = 1 GO TO E002.
084200     IF NUMBN < 1 OR NUMBN > 9 GO TO E008.
084220     PERFORM REPORT1A THRU REPORT1X.
084240     SET INSTR (X) TO DX.
084260*    SET INSTR (X) TO NUMBN.
084280*    IF NUMBN > NUMB-REPORTS MOVE NUMBN TO NUMB-REPORTS.
084300     GO TO VERB-RESET.
084320 REPORT1A.
084340     SET DX-LOWEST DOWN BY 1. SET DX TO DX-LOWEST.
084360     SET REPORT-DX TO DX.
084380     MOVE REPORT-R-AREA TO D-ENTRY (DX).
084400     MOVE NUMBN       TO D-NCHAR (DX).
084420     IF NUMBN > NUMB-REPORTS MOVE NUMBN TO NUMB-REPORTS.
084440 REPORT1X.    EXIT.
084460 REWRITE1.
084480     IF FLAG-PASS = 2 GO TO rewrite2.
084482     move 1 to va.
084484     if flag-eos = 1 go to rewrite1a.
084486     perform get-word thru get-wordx.
084488     if word06 not = 'RECORD' move 1 to flag-peeked.
084490     if word12 = 'RECORD2' MOVE 4 to va.
084492     if word12 = 'RECORD3' MOVE 7 to va.
084494 rewrite1a.
084496     set x up by 1.
084498     move va to instr (x).
084500     go to verb-control.
084502 rewrite2.
084504     if T-INSTR = 1 set fx to fx-primary else if
084506        T-INSTR = 4 set fx to fx-secondary else if
084508        T-INSTR = 7 set fx to fx-tertiary.
084510     IF F-KEYLEN (FX) = 0
084512        move 018 to ecode
084514        MOVE 'FOR A REWRITE VERB' TO WORD30
084516        perform e-rror thru e-xit
084518        GO TO VERB-RESET.
084520*    NOW SAVE FIRST ARG(1,4,OR 7 INDICATING PRIMARY,2ND,TERT), MODIFY IT
084521*    TO INCLUDE 6-BIT OR 7-BIT, AND  INSERT IT AS THE SECOND ARG.
084522*    MAKE THE FIRST ARG BE  AN FX POINTER.
084523*    ALSO, SET I/O FLAG IN F-ENTRY TO INDICATE OPEN I-O
084524     MOVE 'O' TO F-OPENIO (FX).
084526     SET INSTR (X) TO FX.
084528     SET X UP BY 1.
084530     IF F-TYPEV (FX) = 27 ADD 1 TO T-INSTR.
084532     MOVE T-INSTR TO INSTR (X).
084534     GO TO VERB-RESET.
084540 RMARGIN1.
084560     IF FLAG-PASS = 2 GO TO VERB-CONTROL.
084580     IF FLAG-ALPHA = 1 GO TO E002.
084600     IF NUMBN < 1 GO TO E008.
084620     SET INSTR (X) TO NUMBN.
084640     GO TO VERB-RESET.
084660 RPTDATE1.
084680     IF FLAG-PASS = 2 GO TO VERB-CONTROL.
084700     SET INSTR (X) TO DX.
084720     GO TO VERB-RESET.
084740 RPTDATEON1.
084760*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
084780     GO TO VERB-RESET.
084800 RPTDATEOFF1.
084820*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
084840     GO TO VERB-RESET.
084860 RPTHEAD1.
084880     IF FLAG-PASS = 2 GO TO RPTHEAD2.
084900     GO TO PRINT1.
084920 RPTHEAD2.
084922     if t-instr = 0
084924        move 'heading syntax error:' to word30
084925        MOVE 15 TO ECODE
084926        perform e-rror thru e-xit
084928        go to verb-control.
084940     SET HX TO X.
084960     SET X UP BY 1. SET INSTR (X) TO T-INSTR.
084980 RPTHEAD2A.
085000     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
085020     IF T-INSTR NOT EQUAL TO ZEROS GO TO RPTHEAD2A.
085040     SET PX TO X. SET X TO HX.
085060     SET PX UP BY 1. SET INSTR (X) TO PX.
085080     SET PX DOWN BY 1. SET X TO PX.
085100     GO TO VERB-CONTROL.
085120 RPTHEADON1.
085140*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
085160     GO TO VERB-RESET.
085180 RPTHEADOFF1.
085200*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
085220     GO TO VERB-RESET.
085240 SET1.
085260     IF FLAG-PASS = 2 GO TO SET2.
085280     IF FLAG-VERB = 2 GO TO SET1A.
085300     MOVE 2 TO FLAG-VERB.
085320     IF FLAG-ALPHA = ZERO GO TO E003.
085340*    TYPEV: SET BY DROP-IN-DX AND IS TYPE OF OBJECT
085360*           CLEARED BY GET-VERB
085380*    NOW CHECK TO SEE IF TRYING TO ILLEGALLY SET VALUE OF
085400*    LITERAL-TODAY-XRANDOM--THEN SAVE SAVE LEFT SIDE
085420*    OF 'TO' TO BE SET LATER
085440     IF TYPEV = TYPE-LITERAL GO TO E007.
085500     SET T-INSTR TO DX.
085520     SET X DOWN BY 1.
085540     GO TO VERB-CONTROL.
085560 SET1A.
085580*    HERE FOR SETTING LEFT AND RIGHT SIDE OF 'TO'
085600     IF VA NOT EQUAL TO V-TO GO TO E004.
085620     SET INSTR (X) TO DX.
085640*    T-INSTR CONTAINS LEFT OF 'TO'
085660     SET X UP BY 1. SET INSTR (X) TO T-INSTR.
085680     MOVE ZEROS TO VA.
085700*    FLAG-VERB=1 ALLOWS MULTIPLE LIST FOR SET AND CAUSES
085720*    US TO DO SET1 STUFF NEXT TIME WE HIT SET
085740     MOVE 1 TO FLAG-VERB.
085760     GO TO VERB-CONTROL.
085780 SET2.
085800*   HERE DURING 2ND PASS-V-SET HAS BEEN READ INTO INSTR(X)
085820*   AS HAS ITS FIRST ARG, THE RIGHT SIDE OF 'TO' (SOURCE)
085840*   WHICH HAS ALSO BEEN STORED INTO T-INSTR
085860*   X POINTS TO 1ST ARG ENTRY OF INSTR TABLE
085880     SET VX TO T-INSTR.
085890     IF T-INSTR = 0 GO TO SET2D.
085900     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
085920     IF T-INSTR = ZEROS GO TO SET2D.
085940     SET DX TO T-INSTR.
085960     MOVE D-TYPEV (DX) TO TYPEV.
085980     IF TYPEV = TYPE-NUMERIC-VARIABLE GO TO SET2A.
086000     IF TYPEV = TYPE-VARIABLE GO TO SET2A.
086020     GO TO SET2C.
086040 SET2A.
086060*    GET HERE WHEN LEFT SIDE IS A VAR OR NUM VAR
086080*    COMPARE LENGTHS OF LEFT SIDE(DX) WITH RIGHT SIDE(VX)
086100*    NUM VAR (TYPE 7) WOULD HAVE BEEN INITIALIZED TO 18
086120*    ALP VAR (TYPE12) WOULD HAVE BEEN INITIALIZED TO 0
086140     IF D-NCHAR (DX) > V-NCHAR (VX) GO TO SET2C.
086160*    IF THE NCHAR OF THE VARIABLE ON THE LEFT HAS BEEN SET
086180*    BY A PREVIOUS SET STATEMENT AND NOW MUST BE RESET TO
086200*    A LARGER NCHAR, THEN THE FCHAR WILL ALSO BE RESET TO
086220*    BE A NEW ALLOCATION, OTHERWISE WE MIGHT OVERLAP SOME
086240*    INTERMEDIATE ALLOCATIONS.
086260     MOVE V-NCHAR (VX) TO NCHAR.
086280     MOVE NCHAR TO D-NCHAR (DX).
086300     MOVE NCHAR TO D-ECHAR (DX).
086320     IF V-TYPEV (VX) = TYPE-LITERAL GO TO SET2B.
086340*    MOVE V-TYPEV (VX) TO D-TYPEV (DX).
086360     MOVE V-SCALE (VX) TO D-SCALE (DX).
086380     MOVE V-PICT (VX) TO D-PICT (DX).
086400     MOVE V-ECHAR (VX) TO D-ECHAR (DX).
086420 SET2B.
086440     MOVE FCHAR TO D-FCHAR (DX). ADD NCHAR TO FCHAR.
086460 SET2C.
086480*    FOR VARIABLES, FCHAR = 0 IF THEY HAVENT BEEN SET YET
086500*    SET FCHAR NOW
086520     IF D-FCHAR (DX) = ZEROS
086540        MOVE D-NCHAR (DX) TO NCHAR GO TO SET2B.
086560     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
086580     IF T-INSTR = ZEROS GO TO VERB-CONTROL.
086600     GO TO SET2.
086602 SET2D.
086604     MOVE 'SET VERB' TO WORD30. MOVE 043 TO ECODE.
086606     PERFORM E-RROR THRU E-XIT.
086608     GO TO VERB-CONTROL.
086620 SORT1.
086640     IF FLAG-PASS = 2 GO TO SORT2.
086660     IF FLAG-ALPHA = ZERO GO TO E003.
086680     IF FLAG-VERB = 2 GO TO SORT1A.
086700     MOVE 2 TO FLAG-VERB.
086720*    ALLOW CREATE TO BE USED AGAIN FOR THIS NEW STAGE
086740     MOVE 0 TO FLAG-CREATE.
086760     MOVE ZEROS TO T-INSTR.
086780     IF DX = FX-PRIMARY MOVE 1 TO T-INSTR.
086800     IF DX = FX-SECONDARY MOVE 2 TO T-INSTR.
086820     IF DX = FX-TERTIARY MOVE 3 TO T-INSTR.
086840     SET INSTR (X) TO T-INSTR.
086860     IF VA NOT EQUAL TO V-DESCENDING
086880        MOVE V-ASCENDING TO VA.
086900     MOVE 1 TO FLAG-SORT.
086920     IF T-INSTR NOT EQUAL TO ZEROS GO TO VERB-CONTROL.
086940     SET INSTR (X) TO 1. SET X UP BY 1.
086960 SORT1A.
086980     MULTIPLY DX BY VA GIVING T-INSTR.
087000     SET INSTR (X) TO T-INSTR.
087020     GO TO VERB-CONTROL.
087040 SORT2.
087060     MOVE ZEROS TO NCHAR FLAG-CREATE.
087080 SORT2A.
087100     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
087120*    ARE WE AT END OF SORT KEY LIST?
087140     IF T-INSTR = ZEROS GO TO SORT2B.
087160*       MOVE NCHAR TO F-RECLEN (FX) GO TO SORT2B.
087180     SET DX TO T-INSTR.
087200     IF DX < 1 MULTIPLY DX BY V-DESCENDING GIVING DX.
087220     ADD D-NCHAR (DX) TO NCHAR.
087240     GO TO SORT2A.
087260 SORT2B.
087262     SET X UP BY 1.
087264*		SAVE X FOR THE IMPLICIT GO TO NR *
087266*		SO THAT IF WE GET A GO TO NN *
087268*		FOLLOWING IT, WE CAN NOP THE GO TO NR *
087270     SET SORT-GOTO-X TO X.
087272     MOVE V-GOTONR TO INSTR (X).
087300     PERFORM POPALL-FALSE THRU POPALLFX.
087302    SET X UP BY 1. MOVE V-NOP TO INSTR(X).
087304     SET X UP BY 1. MOVE V-NOP TO INSTR(X).
087320     SET X UP BY 1. MOVE V-STOP TO INSTR (X).
087340     SET X UP BY 1. MOVE V-READ TO INSTR (X).
087360     SET X UP BY 1. MOVE FX-PRIMARY TO INSTR (X).
087380     SET X UP BY 1. MOVE V-ASCENDING TO INSTR (X).
087400     SET X UP BY 1. MOVE V-NOP TO INSTR (X).
087420     GO TO VERB-RESET.
087440 STATEMENT1.
087460     IF FLAG-PASS = 2 GO TO STATEMENT2.
087480     SET V TO V-GOTO.
087500     PERFORM DROP-IN-DX THRU DIDX.
087520     MOVE TYPE-GOTO TO D-TYPEV (DX).
087540     MOVE NUMBN TO D-NCHAR (DX).
087560*    SCALE CONTAINS LOCATION OF STATEMENT NUMBER IN INSTR TABLE
087580     SET D-SCALE (DX) TO X.
087600     SET X UP BY 1. SET INSTR (X) TO DX.
087620     GO TO VERB-RESET.
087640 STATEMENT2.
087660     SET DX TO T-INSTR.
087680     SET X DOWN BY 1.
087700     MOVE X TO D-SCALE (DX).
087720     SET X DOWN BY 1.
087740     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
087760*    IF T-INSTR NOT EQUAL TO ZEROS GO TO E000.
087780     SET X DOWN BY 1.
087800     GO TO VERB-CONTROL.
087820 SUMMARYOFF1.
087840*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
087860     GO TO VERB-RESET.
087880 SUMMARYON1.
087900*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
087920     GO TO VERB-RESET.
087940 ASSIGN-PRIOR-ORIGIN.
087960*    MODIFY ORIGIN OF PRIOR SUMMARY BUCKET+RESTORE TYPE
087980     SET DX TO T-INSTR.
088000     MOVE FCHAR TO D-FCHAR (DX).
088020     ADD D-NCHAR (DX) TO FCHAR.
088040     SUBTRACT 50 FROM D-TYPEV (DX).
088060 ASSIGN-PRIORX.  EXIT.
088080 ALLOCATE-ACCUM-BUCKETS.
088100     IF FLAG-VERB = 2 MOVE 1 TO SUMBREAK-FLAG
088120        SUBTRACT 1 FROM DX-LOWEST  SET DX TO DX-LOWEST
088140        SET KX TO DX  MOVE WORD30 TO K-ENDKEY (KX)
088160        MOVE TYPE-PRIOR-SUMMARY TO D-TYPEV (DX)
088180        MOVE 2 TO D-NREPEATS (DX)
088200        SET X UP BY 1  SET INSTR (X) TO DX
088220        ELSE
088240        MOVE 0 TO PREV-BUCKETDX  MOVE 0 TO CURR-BUCKETDX
088260        MOVE 0 TO FLAG-BY.
088280     IF FLAG-IFFIRST = 1 GO TO ALLOC-ACCX.
088300     MOVE 2 TO FLAG-VERB.
088320     SUBTRACT 1 FROM DX-LOWEST.  SET DX TO DX-LOWEST.
088340     SET X UP BY 1.  SET INSTR (X) TO DX.
088360 ALLOC-ACCX.  EXIT.
088380 TALLY1.
088400     IF FLAG-PASS = 2
088420        MOVE '*WARNING-TALLY STATEMENT' TO WORD30   GO TO TALLY2.
088440     IF FLAG-ALPHA = ZERO GO TO E003.
088442*    CATCH CASE OF 'TALLY BY ITEM' NOW.
088443*    CASE OF 'TALLY.' CAUGHT IN 2ND PASS.
088444     IF (FLAG-VERB = 1  AND  FLAG-BY = 1)
088445        MOVE 'FOR SUMMARY VERB' TO WORD30
088446        MOVE 046 TO ECODE  PERFORM E-RROR THRU E-XIT.
088460     IF VA = V-LPAREN  IF FLAG-SUMMARY-DEF-TIME = 0
088480        SET X UP BY 1  MOVE VA TO INSTR (X)
088500        GO TO VERB-CONTROL.
088520     IF VA = V-LPAREN IF FLAG-SUMMARY-DEF-TIME = 1
088540        MOVE 0 TO FLAG-SUMMARY-DEF-TIME
088560        GO TO VERB-CONTROL.
088580     IF VA = V-RPAREN
088600        SET X UP BY 1  MOVE VA TO INSTR (X)
088620        MOVE 0 TO VA   GO TO VERB-CONTROL.
088640     PERFORM ALLOCATE-ACCUM-BUCKETS THRU ALLOC-ACCX.
088660*    SAVE BUCKET POINTERS FOR POSSIBLE SUMMARY ITEM DEF USE
088680     IF CURR-BUCKETDX NOT = 0
088700        MOVE CURR-BUCKETDX TO PREV-BUCKETDX.
088720     MOVE INSTR (X) TO CURR-BUCKETDX.
088740     IF V = V-AVERAGE
088760        MOVE TYPE-AVERAGE TO D-TYPEV (DX)
088780        ELSE
088800        MOVE TYPE-SUMMARY TO D-TYPEV (DX).
088820     MOVE 2 TO D-NREPEATS (DX).
088840     GO TO VERB-CONTROL.
088860 TALLY2.
088862******FORMAT OF SUMMARY AND MAX-MIN VERBS:
088864*     (X)   = INSTR VALUE = 47,48,49,80,81
088866*     (X+1) = DX OF SUMMARIZED ITEM
088868*     (X+2) = START OF SUB-GROUP TRIPLETS AS FOLLOWS:
088870*             VX OF SUMMARY BUCKET
088872*     (X+3) = DX OF BREAK ITEM
088874*     (X+4) = HX OF PRIOR VALUE
088880     IF T-INSTR = 0  
088882        move word30-fatal-part to word30  go to e046.
088900*    ABOVE IS ERROR IF NO DATA NAME FOLLOWING TALLY
088920     SUBTRACT T-INSTR FROM 0 GIVING INSTR (X).
088940     SET DX TO T-INSTR.
088941     IF V = V-TALLY GO TO TALLY2AA.
088942     perform check-numeric thru check-numericx.
088944     if ecode not = 0 
088946        MOVE 055 TO ECODE  PERFORM E-RROR THRU E-XIT.
088948 TALLY2AA.
088960     SET DX-SAVE TO DX.
088980     SET XX TO X.  ADD 2 TO XX.
089000 TALLY2A.
089020     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
089040     IF T-INSTR = ZEROS GO TO TALLY2C.
089060     IF T-INSTR = V-LPAREN GO TO TALLY2B.
089080     SET VX TO T-INSTR.
089100     SET KX TO VX.
089120     MOVE K-ENDKEY (KX) TO SAVE30.
089140     MOVE D-ENTRY (DX) TO V-ENTRY (VX).
089160     MOVE SAVE30 TO K-ENDKEY (KX).
089180     MOVE TYPE-SUMMARY TO V-TYPEV (VX).
089200     MOVE ZEROS TO V-BINARY (VX).
089220     IF V = V-TALLY GO TO TALLY2A1.
089240     MOVE D-PICT (DX) TO V-PICT (VX).
089260     IF D-TYPEV (DX) = TYPE-NUMERIC-VARIABLE
089280        MOVE 'SZ,ZZZ,ZZZ.99RRR' TO V-PICT (VX).
089300     IF V = V-MINIMUM OR V = V-MAXIMUM GO TO TALLY2A2.
089320     IF V = V-AVERAGE MOVE TYPE-AVERAGE TO V-TYPEV (VX).
089340     MOVE V-PICT (VX) TO TITLE-TABLE.
089360     PERFORM TOTAL-SHIFT THRU TOTAL-SHIFTX.
089380     MOVE PPN-WORK TO V-PICT (VX).
089400     GO TO TALLY2A2.
089420 TALLY2A1.
089440     MOVE ZEROS        TO V-SCALE (VX).
089460     MOVE 8            TO V-NCHAR (VX).
089480     MOVE 8            TO V-ECHAR (VX).
089500     MOVE 8            TO V-TCHAR (VX).
089520     MOVE 'ZZZZZZZ9'   TO V-PICT (VX).
089540 TALLY2A2.
089560     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
089580     IF T-INSTR = ZEROS GO TO TALLY2C.
089600     IF T-INSTR = V-LPAREN GO TO TALLY2B.
089620     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
089640     IF T-INSTR = ZEROS GO TO TALLY2C.
089660     IF T-INSTR = V-LPAREN GO TO TALLY2B.
089680*    HERE FOR TYPE-PRIOR-SUMMARY--MODIFY ITS ORIGIN
089700     PERFORM ASSIGN-PRIOR-ORIGIN THRU ASSIGN-PRIORX.
089720     SET DX TO DX-SAVE.
089740     GO TO TALLY2A.
089760 TALLY2B.
089780*    DELETE V-LPAREN,VX,V-RPAREN SEQUENCE FROM INSTR TABLE
089800     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
089820     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
089840     IF T-INSTR NOT = V-RPAREN
089860        MOVE "MISSING RIGHT PARENTHESIS" TO WORD30  GO TO E033.
089880     SET X DOWN BY 3.
089900     GO TO TALLY2A.
089920 TALLY2C.
089940*    GET RID OF EXTRANEOUS TRAILING BUCKET IF SUB-GRP
089960     IF XX = X GO TO VERB-CONTROL.
089980     SET X DOWN BY 1.
090000     MOVE V-NOP TO INSTR (X).
090020     GO TO VERB-CONTROL.
090040 TITLES1.
090060     IF FLAG-PASS = 2 GO TO TITLES2.
090080     IF FLAG-VERB = 2 GO TO TITLES1A.
090100     IF FLAG-VERB = 3 SET X DOWN BY 1
090120        PERFORM DROP-IN-VERB THRU DIVX SET X UP BY 1.
090140     MOVE 2 TO FLAG-VERB.
090160     IF FLAG-ALPHA = ZERO GO TO E003.
090180     SET INSTR (X) TO DX.
090200     GO TO VERB-CONTROL.
090220 TITLES1A.
090240     MOVE 1 TO FLAG-VERB.
090260     IF VA NOT EQUAL TO V-EQUAL GO TO E004.
090280     IF TYPEV NOT EQUAL TO TYPE-LITERAL
090300        GO TO E015.
090320     IF Q > 22 GO TO E016.
090330     MOVE SPACES TO L-ENTRY (LX).
090340     SET DX-LOWEST UP BY 1.
090360     SET INSTR (X) TO QUOTEN (1).
090380     SET X UP BY 1. SET INSTR (X) TO QUOTEN (2).
090400     SET X UP BY 1. SET INSTR (X) TO QUOTEN (3).
090420     SET X UP BY 1. SET INSTR (X) TO QUOTEN (4).
090440     MOVE 3 TO FLAG-VERB.
090460     GO TO VERB-CONTROL.
090480 TITLES2.
090500     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
090520     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
090540     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
090560     PERFORM GET-ONE-INSTR THRU GET-INSTRX.
090580     GO TO VERB-CONTROL.
090600 TOTAL1.
090620     IF FLAG-PASS = 2
090640        MOVE '*WARNING-TOTAL STATEMENT' TO WORD30
090660        GO TO TALLY2.
090680     GO TO TALLY1.
090700 TOTAL-SHIFT.
090720     MOVE V-ECHAR (VX) TO ECHAR.
090740     MOVE ZEROS TO NCHAR.
090760     IF ECHAR < 19 MOVE 1 TO NCHAR.
090780     IF ECHAR < 18 MOVE 2 TO NCHAR.
090800     IF ECHAR < 17 MOVE 3 TO NCHAR.
090820     SUBTRACT V-NCHAR (VX) FROM 18 GIVING DELTA.
090840*    DELTA IS THE NUMBER OF DIGITS LESS THAN 18
090860*    NCHAR IS THE NUMBER OF DIGITS WE WISH TO EXPAND
090880*    CAN NOT EXCEED DELTA IE GO PAST 18 TOTAL DIGITS
090900     IF DELTA < NCHAR MOVE DELTA TO NCHAR.
090920     ADD NCHAR TO V-NCHAR (VX).
090940     ADD NCHAR TO V-ECHAR (VX).
090960     IF V-ECHAR (VX) > V-TCHAR (VX)
090980        MOVE V-ECHAR (VX) TO V-TCHAR (VX).
091000     SET T TO 1. SET PX TO 1.
091020     MOVE SPACES TO PPN-TABLE.
091040 TOTAL-SHIFT1.
091060*    COPY THE LEADING EDIT CHAR(EXCEPT FOR $) NCHAR TIMES
091080     MOVE TITLEX (T) TO PPN-CHAR (PX).
091100     SET PX UP BY 1. IF PX > 19 GO TO TOTAL-SHIFTX.
091120     IF TITLEX (T) = 'S' GO TO TOTAL-SHIFT2.
091140     IF NCHAR > ZEROS
091160        SUBTRACT 1 FROM NCHAR GO TO TOTAL-SHIFT1.
091180 TOTAL-SHIFT2.
091200     SET T UP BY 1. IF T > 19 GO TO TOTAL-SHIFTX.
091220     GO TO TOTAL-SHIFT1.
091240 TOTAL-SHIFTX.    EXIT.
091260 TITLESOFF1.
091280*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
091300     GO TO VERB-RESET.
091320 TITLESON1.
091340*    IF FLAG-PASS = 2 AND T-INSTR = ZEROS SET X DOWN BY 1.
091360     GO TO VERB-RESET.
091380 VSPACE1.
091400     IF FLAG-PASS = 2 GO TO VERB-CONTROL.
091420     IF FLAG-ALPHA = 1 GO TO E002.
091440     IF NUMBN < 1 GO TO E008.
091460     SET INSTR (X) TO NUMBN.
091480     GO TO VERB-RESET.
091500 VERB-RESET.
091520     MOVE ZEROS TO ECODE.
091540     MOVE ZEROS TO V VA VP.
091560     GO TO VERB-CONTROL.
091580 QTANLZ-WRITE.
091600     OPEN OUTPUT QTANLZ.
091620     SET DX TO 1.
091640 QTANLZ-X.
091660     MOVE D-ENTRY (DX) TO QTANLZ-REC.
091680     WRITE QTANLZ-REC.
091700*    WRITE FROM BEGINNING OF INSTR TABLE TILL FIND END OF
091720*    INSTRUCTIONS INDICATED BY ALL ZEROES--AFTER FIRST ALL
091740*    ZERO RECORD IS WRITTEN AS A MARKER FOR IQE, START
091760*    WRITING OUT FROM BOTTOM IE DICTIONARY PORTION AND
091780*    THEN COMING BACK TO MIDDLE(DX-LOWEST). IQE WILL THEN
091800*    PUT BACK IN CORRECT ORDER AS IT READS THE TABLE.
091820     IF D-TYPEV (DX) = ZEROS AND D-NCHAR (DX) = ZEROS
091840        AND D-SCALE (DX) = ZEROS AND D-ECHAR (DX) = ZEROS
091860        AND D-TCHAR (DX) = ZEROS AND D-FCHAR (DX) = ZEROS
091880        AND D-NREPEATS (DX) = ZEROS
091900        SET DX TO DX-MAX GO TO QTANLZ-DX.
091920     SET DX UP BY 1. IF DX > DX-MAX GO TO QTANLZ-CLOSE.
091940     GO TO QTANLZ-X.
091960 QTANLZ-DX.
091980     IF FLAG-PASS = 1 GO TO QTANLZ-CLOSE.
092000     MOVE D-ENTRY (DX) TO QTANLZ-REC.
092020     WRITE QTANLZ-REC.
092040     SET DX DOWN BY 1. IF DX < DX-LOWEST GO TO QTANLZ-CLOSE.
092060     GO TO QTANLZ-DX.
092080 QTANLZ-CLOSE.
092100     CLOSE QTANLZ.
092120 QTANLZ-EXIT.    EXIT.
092140 QTANLZ-DAS-ENDE.
092180     IF FLAG-EXECUTE NOT = 1
092182        MOVE 'IQL   ' TO CALLED-NAME.
092200     IF FLAG-ERROR = 1
092220        OPEN OUTPUT QTANLZ CLOSE QTANLZ WITH DELETE
092240        MOVE 'IQL   ' TO CALLED-NAME.
092260     ENTER MACRO IQNEXT USING CALLED-NAME.
092280     STOP RUN.
092300
092320*********************************************************
092340* SUBROUTINE 'CONFIDENTIAL-ASK' TO ASK FOR A PASSWORD AND
092360* DELIVER IT IN WORKING STORAGE ITEM 'RETURNED-PASSWORD'.
092380*********************************************************
092400 CONFIDENTIAL-ASK.
092420     DISPLAY '*PASSWORD: ' UPON CONSOLE.
092440     MOVE ASCII-CR TO MASK7.
092460     MOVE '######' TO MASK1-6.
092480     DISPLAY MASK1-7 UPON CONSOLE WITH NO ADVANCING.
092500     MOVE 'HHHHHH' TO MASK1-6.
092520     DISPLAY MASK1-7 UPON CONSOLE WITH NO ADVANCING.
092540     MOVE 'IIIIII' TO MASK1-6.
092560     DISPLAY MASK1-7 UPON CONSOLE WITH NO ADVANCING.
092580     MOVE ASCII-CR TO MASK1.
092600     DISPLAY MASK1 UPON CONSOLE WITH NO ADVANCING.
092620     ACCEPT RETURNED-PASSWORD FROM TTY.