IDENTIFICATION DIVISION.
PROGRAM-ID. PNPSOLVE.
*---------------------------------------------------------------*
* PNPSOLVE - Beta version developed October 2011 *
* - Final version completed December 2013 *
*---------------------------------------------------------------*
* Author - William T. Voris *
*---------------------------------------------------------------*
* This computer program is the main driver and display *
* module for the P NP solution. It displays a screen and *
* requests someone to enter from 2 to 25 positive and *
* negative integers. It then determines how many integers *
* are in the sequence and sets up progressive logic to *
* find all equations that sum to a value. It works *
* differently from the check module with highly efficient *
* algorithms that find every equation in the sequence. *
* It first does a call to check module to see if there is *
* at least one equation to validate the sequence of *
* integers having a subset that when summed equals a value. *
* The sub module is limited in the amount of integers that *
* it evaluates for a possible solution. The assumption *
* being that an equation that contains more than 7 to 14 *
* integers that sum to a value is not an "easy to arrive at" *
* solution. However, both the check and the solve computer *
* programming modules use a common polynomial clock. The *
* clock is set up to present a consistent technique for *
* timing, such that it is possible to determine how many *
* equations are evaluated in the process of both a check *
* for one solution and a process for all solutions. *
*---------------------------------------------------------------*
* Log of changes: Looping logic rewritten Sep 2013 *
* (major overhaul and rewrite of program) *
* : Added algorithm F5 logic Oct 2013 *
* : Added report logic Nov 2013 *
* : Added elapsed time display Dec 2013 *
* : Fixed set 18 and 20 logic Dec 2013 *
* : Added screen color schemes Dec 2013 *
* : Added text viewer for output Jan 2014 *
* : Cosmetic clean up Jan 2014 *
* : Make files drive independent Mar 2017 *
*pending : Add Null Value May 2017 *
*---------------------------------------------------------------*
* Log of errors : Minutes display at 12:00 midnight *
* : Pressing invalid Funtion keys adversely *
* effects reports. (not important) *
* : Full screen mode and screen savers *
* show some incompatibilities (no solution) *
* : Built-in error messages overlap programming*
* messages (compiler error) *
* : When zero keyed in sequence and integers *
* follow, they are still displayed, but are *
* not part of the evaluation. *
* : Several in line messages, should be *
* in working storage (cosmetic) *
* : Negative conditionals with file access *
* (cosmetic) *
* : R or r - displayed in message area when *
* roll mode selected (cosmetic) *
*---------------------------------------------------------------*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
CONSOLE IS CRT
CURSOR IS CURSOR-POSITION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT OUTPUT-FILE
ASSIGN WS-OUTPUT-FILE
ORGANIZATION IS LINE SEQUENTIAL
FILE STATUS IS FILE-STATUS-CODE.
SELECT STATS-FILE
ASSIGN WS-STATS-FILE
ORGANIZATION IS LINE SEQUENTIAL
FILE STATUS IS FILE-STATS-CODE.
SELECT SUMMARY-FILE
ASSIGN WS-SUMMARY-FILE
ORGANIZATION IS LINE SEQUENTIAL
FILE STATUS IS FILE-SUMMARY-CODE.
SELECT DETAILS-FILE
ASSIGN WS-DETAILS-FILE
ORGANIZATION IS LINE SEQUENTIAL
FILE STATUS IS FILE-DETAILS-CODE.
DATA DIVISION.
FILE SECTION.
FD OUTPUT-FILE
LABEL RECORDS ARE STANDARD
BLOCK CONTAINS 0 RECORDS
DATA RECORD IS OUTPUT-RECORD.
01 OUTPUT-RECORD PIC X(80).
FD STATS-FILE
LABEL RECORDS ARE STANDARD
BLOCK CONTAINS 0 RECORDS
DATA RECORD IS STATS-RECORD.
01 STATS-RECORD PIC X(80).
FD SUMMARY-FILE
LABEL RECORDS ARE STANDARD
BLOCK CONTAINS 0 RECORDS
DATA RECORD IS SUMMARY-RECORD.
01 SUMMARY-RECORD PIC X(80).
FD DETAILS-FILE
LABEL RECORDS ARE STANDARD
BLOCK CONTAINS 0 RECORDS
DATA RECORD IS DETAILS-RECORD.
01 DETAILS-RECORD.
05 DETAILS-COUNTER PIC ZZZZZZZ.
05 DETAILS-FIELDS.
10 DETAIL-PERIOD PIC X(2).
10 DETAIL-AREAS PIC X(71).
*---------------------------------------------------------------*
* WORKING STORAGE SECTION *
*---------------------------------------------------------------*
* This area of the program is used for the storage and *
* manipulation of numerous variables. This includes *
* switches, data display fields, subscripts, etc. *
*---------------------------------------------------------------*
WORKING-STORAGE SECTION.
01 WS-OUTPUT-FILE PIC X(14) VALUE "ALGORITH.TXT".
01 WS-STATS-FILE PIC X(14) VALUE "PNPSTATS.TXT".
01 WS-SUMMARY-FILE PIC X(14) VALUE "SUMMARY.DOC".
01 WS-DETAILS-FILE PIC X(14) VALUE "DETAILS.DOC".
01 WORK-PERIOD PIC X(02) VALUE ". ".
01 DETAILS-CTR PIC 9(07) VALUE ZERO.
01 FILE-STATUS-CODE PIC X(02) VALUE "00".
88 FILE-STATUS-OK VALUE "00".
01 FILE-SUMMARY-CODE PIC X(02) VALUE "00".
88 FILE-SUMMARY-OK VALUE "00".
01 FILE-DETAILS-CODE PIC X(02) VALUE "00".
88 FILE-DETAILS-OK VALUE "00".
01 FILE-STATS-CODE PIC X(02) VALUE "00".
88 FILE-STATS-OK VALUE "00".
01 CLOCK-NOTE PIC X(9) VALUE "Minutes =".
01 CLOCK-SW PIC X(1) VALUE "N".
88 CLOCK-ON VALUE "Y".
88 CLOCK-OFF VALUE "N".
01 DETAILS-SW PIC X(1) VALUE "Y".
88 DETAILS-ON VALUE "Y".
88 DETAILS-OFF VALUE "N".
01 ELAP-TIME PIC 999999.
01 ELAP-TIME-HMS REDEFINES ELAP-TIME.
05 ELAPTIME-HH PIC 99.
05 ELAPTIME-MM PIC 99.
05 ELAPTIME-SS PIC 99.
01 WORK-ELAP.
05 ELAP-MINUTES PIC ZZZ9.
05 ELAP-HH-MM PIC 9999.
01 ELAPSED PIC X(6) VALUE 'Mins ='.
01 CLOCK-TIME PIC 999999.
01 WORK-TIME REDEFINES CLOCK-TIME.
05 WORKTIME-HH PIC 99.
05 WORKTIME-MM PIC 99.
05 WORKTIME-SS PIC 99.
01 CACULATE-TIME.
05 WORK-MIN-B PIC 9999.
05 WORK-MIN-E PIC 9999.
05 WORK-MIN PIC 9999.
05 WORK-SEC-B PIC 99.
05 WORK-SEC-E PIC 99.
01 WORK-SECONDS PIC 99.
01 DETAILS-HEADING.
05 DETAIL-HEADING-1 PIC X(30) VALUE
"Equation Results ".
05 DETAIL-HEADING-2 PIC X(31) VALUE
" List of subsets ".
05 DETAIL-HEADING-3 PIC X(19) VALUE
" Poly Time".
01 STATS-DETAIL.
05 DETAIL-HEADING-1 PIC X(32) VALUE
" List of subsets that sum to ".
05 DETAIL-SUM-VALUE PIC ----9.
05 FILLER PIC X(24) VALUE SPACES.
05 STATS-TOTAL PIC X(09) VALUE "Total = ".
05 TOTAL-SOLVE-D PIC ZZ,ZZZ,ZZ9.
01 STATS-SEPARATE.
05 FILLER PIC X(10) VALUE SPACES.
05 DASH-LINE PIC X(70) VALUE
"________________________________________________________".
01 STATS-HEADING.
05 STATS-HEADING-1 PIC X(53) VALUE
" Statistical Analysis # Eq. Evaluated".
05 STATS-HEADING-2 PIC X(30) VALUE
" Sum Value Subsets ".
01 STATS-ALL-TOTALS.
05 MIN-OR-SEC PIC X(16) VALUE " Minutes = ".
05 DISPLAY-TIME PIC ZZZ9.
05 FILLER PIC X(08) VALUE SPACES.
05 STATS-TOT PIC X(09) VALUE "Tot = ".
05 TOTAL-SOLVE PIC ZZ,ZZZ,ZZ9.
05 FILLER PIC X(06) VALUE SPACES.
05 FILLER PIC X(10) VALUE " Tot = ".
05 SETS-ALL-TOTAL PIC Z,ZZZ,ZZ9.
01 STATS-LINE.
05 FILLER PIC X(05).
05 SET-MSG PIC X(21).
05 FILLER PIC X(10).
05 SET-CLOCK-P PIC ZZZ,ZZZ,ZZ9.
05 FILLER PIC X(08).
05 SET-VALUE PIC ----9.
05 SET-EQUAL PIC X(03) VALUE " ".
05 SET-TOTAL PIC Z,ZZZ,ZZ9.
01 STATS-PNP.
05 POLY-EXP PIC X(10) VALUE
" P = ".
05 CLOCK-CHECK PIC ZZ,ZZZ,ZZ9.
05 FILLER PIC X(17) VALUE
" E = ".
05 EXPON-SOLVE PIC ZZ,ZZZ,ZZ9.
05 FILLER PIC X(15) VALUE
" NP = ".
05 CLOCK-SOLVE PIC ZZ,ZZZ,ZZ9.
01 STATS-TOTALS.
05 SET-SUB-TOTAL PIC 9999999.
05 SET-SUB-TOTAL-2 PIC 9999999.
05 SET-CLOCK PIC 999999999 VALUE ZEROS.
01 STATS-HELP PIC X(50) VALUE
" Home for Top - Esc to Return - F1 Help ".
01 STATS-ERROR.
05 FILLER PIC X(14) VALUE SPACES.
05 STATS-ERROR-MSG PIC X(46) VALUE
"Process cancelled - Unable to determine totals".
01 STATS-TRUNCATE.
05 FILLER PIC X(14) VALUE SPACES.
05 STATS-TRUNC-MSG PIC X(46) VALUE
"Process truncated - Unable to list all subsets".
01 TRUNCATE-SW PIC X(01) VALUE 'Y'.
01 STATS-INTEGERS-VALUES.
03 O1 PIC S99.
03 O2 PIC S99.
03 O3 PIC S99.
03 O4 PIC S99.
03 O5 PIC S99.
03 O6 PIC S99.
03 O7 PIC S99.
03 O8 PIC S99.
03 O9 PIC S99.
03 O10 PIC S99.
03 O11 PIC S99.
03 O12 PIC S99.
03 O13 PIC S99.
03 O14 PIC S99.
03 O15 PIC S99.
03 O16 PIC S99.
03 O17 PIC S99.
03 O18 PIC S99.
03 O19 PIC S99.
03 O20 PIC S99.
03 O21 PIC S99.
03 O22 PIC S99.
03 O23 PIC S99.
03 O24 PIC S99.
03 O25 PIC S99.
01 STATS-INTEGERS.
03 FILLER PIC X(5).
03 D1 PIC -ZZ.
03 D2 PIC -ZZ.
03 D3 PIC -ZZ.
03 D4 PIC -ZZ.
03 D5 PIC -ZZ.
03 D6 PIC -ZZ.
03 D7 PIC -ZZ.
03 D8 PIC -ZZ.
03 D9 PIC -ZZ.
03 D10 PIC -ZZ.
03 D11 PIC -ZZ.
03 D12 PIC -ZZ.
03 D13 PIC -ZZ.
03 D14 PIC -ZZ.
03 D15 PIC -ZZ.
03 D16 PIC -ZZ.
03 D17 PIC -ZZ.
03 D18 PIC -ZZ.
03 D19 PIC -ZZ.
03 D20 PIC -ZZ.
03 D21 PIC -ZZ.
03 D22 PIC -ZZ.
03 D23 PIC -ZZ.
03 D24 PIC -ZZ.
03 D25 PIC -ZZ.
01 SOLVE-SAVE-1 PIC 9999999999.
01 SOLVE-SAVE-2 PIC 9999999999.
01 SAVE-OUT-LINE PIC X(73).
01 FIRST-OUT-LINE PIC X(73).
01 SAVE-OUTPUT-RECORD PIC X(80).
01 NUMBER-IN-EQUATION PIC 9(03) VALUE 000.
01 TOTAL-ZERO-S PIC ZZ,ZZZ,ZZ9.
01 SPACE-LINE PIC X(73) VALUE SPACES.
01 PNPCHECK-PGM PIC X(8) VALUE "PNPCHECK".
01 PNPLISTS-PGM PIC X(8) VALUE "PNPLISTS".
01 HELP-PROGRAM PIC X(8) VALUE "PNPVIEW ".
01 RESPONSE PIC X(01).
88 AFFIRMATIVE VALUE "y" "Y".
88 NEGATED VALUE "N" "n".
01 PAGE-SW PIC X(01) VALUE "?".
01 ON-1-SW PIC X(01) VALUE "Y".
01 ON-2-SW PIC X(01) VALUE "N".
01 DUP-SW PIC X(01) VALUE "N".
01 COLOR-1ST-SW PIC X(01) VALUE "Y".
01 COLOR-VARY-SW PIC 9(01) VALUE 1.
88 COLOR-VARY-1 VALUE 1.
88 COLOR-VARY-2 VALUE 2.
88 COLOR-VARY-3 VALUE 3.
88 COLOR-VARY-4 VALUE 4.
88 COLOR-VARY-5 VALUE 5.
88 COLOR-VARY-6 VALUE 6.
01 YORN-1 PIC X VALUE "°".
88 AFFIRM-1 VALUE "y" "Y".
01 YORN PIC X VALUE "°".
88 AFFIRM VALUE "y" "Y".
01 BYTE-READY PIC 99 VALUE 0 COMP.
01 TEMP-RESULT PIC 99 VALUE 0 COMP.
01 ERROR-TYPE PIC 9 VALUE 0.
01 SUBSCRIPTS.
05 MAX-SUB PIC 9(3) VALUE ZERO.
05 MAX-SUB-1 PIC 9(3) VALUE ZERO.
05 MAX-SUB-2 PIC 9(3) VALUE ZERO.
05 MAX-SUB-3 PIC 9(3) VALUE ZERO.
05 MAX-SUB-4 PIC 9(3) VALUE ZERO.
05 MAX-SUB-5 PIC 9(3) VALUE ZERO.
05 MAX-SUB-6 PIC 9(3) VALUE ZERO.
05 MAX-SUB-7 PIC 9(3) VALUE ZERO.
05 MAX-SUB-8 PIC 9(3) VALUE ZERO.
05 MAX-SUB-9 PIC 9(3) VALUE ZERO.
05 MAX-SUB-10 PIC 9(3) VALUE ZERO.
05 MAX-SUB-11 PIC 9(3) VALUE ZERO.
05 MAX-SUB-12 PIC 9(3) VALUE ZERO.
05 MAX-SUB-13 PIC 9(3) VALUE ZERO.
05 MAX-SUB-14 PIC 9(3) VALUE ZERO.
05 MAX-SUB-15 PIC 9(3) VALUE ZERO.
05 MAX-SUB-16 PIC 9(3) VALUE ZERO.
05 MAX-SUB-17 PIC 9(3) VALUE ZERO.
05 MAX-SUB-18 PIC 9(3) VALUE ZERO.
05 MAX-SUB-19 PIC 9(3) VALUE ZERO.
05 MAX-SUB-20 PIC 9(3) VALUE ZERO.
05 MAX-SUB-21 PIC 9(3) VALUE ZERO.
05 MAX-SUB-22 PIC 9(3) VALUE ZERO.
05 MAX-SUB-23 PIC 9(3) VALUE ZERO.
05 MAX-SUB-24 PIC 9(3) VALUE ZERO.
05 SUB-BASE-2 PIC 9(3) VALUE ZERO.
05 SUB-1 PIC 9(3) VALUE ZERO.
05 SUB-2 PIC 9(3) VALUE ZERO.
05 SUB-3 PIC 9(3) VALUE ZERO.
05 SUB-4 PIC 9(3) VALUE ZERO.
05 SUB-5 PIC 9(3) VALUE 001.
05 SUB-6 PIC 9(3) VALUE 001.
05 SUB-7 PIC 9(3) VALUE 001.
05 SUB-8 PIC 9(3) VALUE 001.
05 SUB-9 PIC 9(3) VALUE 001.
05 SUB-10 PIC 9(3) VALUE 001.
05 SUB-11 PIC 9(3) VALUE 001.
05 SUB-12 PIC 9(3) VALUE 001.
05 SUB-13 PIC 9(3) VALUE 001.
05 SUB-14 PIC 9(3) VALUE 001.
05 SUB-15 PIC 9(3) VALUE 001.
05 SUB-16 PIC 9(3) VALUE 001.
05 SUB-17 PIC 9(3) VALUE 001.
05 SUB-18 PIC 9(3) VALUE 001.
05 SUB-19 PIC 9(3) VALUE 001.
05 SUB-20 PIC 9(3) VALUE 001.
05 SUB-21 PIC 9(3) VALUE 001.
05 SUB-22 PIC 9(3) VALUE 001.
05 SUB-23 PIC 9(3) VALUE 001.
05 SUB-24 PIC 9(3) VALUE 001.
05 SUB-D PIC 9(3) VALUE 001.
05 SUB-L PIC 9(3) VALUE 001.
05 SUB-L2 PIC 9(3) VALUE 001.
05 SUBC-O PIC 9(3) VALUE 001.
05 SUBC-L PIC 9(3) VALUE 001.
05 SUB-O PIC 9(3) VALUE 001.
*---------------------------------------------------------------*
* *
* DOS Function key and display screen interrupt values *
* *
*---------------------------------------------------------------*
01 FUNCTION-TABLE.
03 FUNCTION-NUMBER PIC 9(2) COMP.
88 F1-KEY VALUE 1.
88 F2-KEY VALUE 2.
88 F3-KEY VALUE 3.
88 F4-KEY VALUE 4.
88 F5-KEY VALUE 5.
88 F6-KEY VALUE 6.
88 F7-KEY VALUE 7.
88 F8-KEY VALUE 8.
88 F9-KEY VALUE 9.
88 F10-KEY VALUE 10.
88 ESCAPE-KEY VALUE 11.
88 ENTER-KEY VALUE 12.
88 HOME-KEY VALUE 15.
03 FILLER PIC X(3) VALUE X"02003B".
03 FILLER PIC X(3) VALUE X"02003C".
03 FILLER PIC X(3) VALUE X"02003D".
03 FILLER PIC X(3) VALUE X"02003E".
03 FILLER PIC X(3) VALUE X"02003F".
03 FILLER PIC X(3) VALUE X"020040".
03 FILLER PIC X(3) VALUE X"020041".
03 FILLER PIC X(3) VALUE X"020042".
03 FILLER PIC X(3) VALUE X"020043".
03 FILLER PIC X(3) VALUE X"020044".
03 FILLER PIC X(2) VALUE X"011B".
03 FILLER PIC X(2) VALUE X"010D".
03 FILLER PIC X(3) VALUE X"020045".
03 FILLER PIC X(3) VALUE X"020046".
03 FILLER PIC X(3) VALUE X"020047".
03 FILLER PIC X(3) VALUE X"020049".
03 FILLER PIC X(3) VALUE X"020051".
03 FILLER PIC X(3) VALUE X"020052".
03 FILLER PIC X(3) VALUE X"020053".
03 FILLER PIC X(1) VALUE X"00".
01 FUNCTION-CONTROL PIC X(1) VALUE X"B0".
01 SCREEN-IO PIC X(1) VALUE X"B7".
01 ENABLE-FUNCTIONS PIC 9(2) VALUE 0 COMP.
01 CURSOR-POSITION PIC 9(4).
01 WRITE-ATTR PIC 9(2) VALUE 3 COMP.
01 WRITE-CHAR PIC 9(2) VALUE 1 COMP.
01 FORM-PARAMS.
03 IO-LENGTH PIC 9(4) VALUE 2000 COMP.
03 SCREEN-OFFSET PIC 9(4) VALUE 1 COMP.
03 BUFFER-OFFSET PIC 9(4) VALUE 1 COMP.
01 IO-LNK.
05 FILE-NAME PIC X(12).
05 PCA-COLOR-SW PIC 9(02).
05 IO-RESTRICTED PIC X(01).
05 LNK-MSG-SW PIC X(01).
*---------------------------------------------------------------*
* *
* The copy members for the screens are below. *
* The REDEFINES is for editing purposes. *
* *
*---------------------------------------------------------------*
COPY "PNPSOLVE.DDS".
01 PNPSOLVE-02 REDEFINES PNPSOLVE-00.
03 FILLER PIC X(267).
03 I1 PIC -ZZ.
03 FILLER PIC X(3).
03 I2 PIC -ZZ.
03 FILLER PIC X(3).
03 I3 PIC -ZZ.
03 FILLER PIC X(3).
03 I4 PIC -ZZ.
03 FILLER PIC X(3).
03 I5 PIC -ZZ.
03 FILLER PIC X(3).
03 I6 PIC -ZZ.
03 FILLER PIC X(3).
03 I7 PIC -ZZ.
03 FILLER PIC X(3).
03 I8 PIC -ZZ.
03 FILLER PIC X(35).
03 I9 PIC -ZZ.
03 FILLER PIC X(3).
03 I10 PIC -ZZ.
03 FILLER PIC X(3).
03 I11 PIC -ZZ.
03 FILLER PIC X(3).
03 I12 PIC -ZZ.
03 FILLER PIC X(3).
03 I13 PIC -ZZ.
03 FILLER PIC X(3).
03 I14 PIC -ZZ.
03 FILLER PIC X(3).
03 I15 PIC -ZZ.
03 FILLER PIC X(3).
03 I16 PIC -ZZ.
03 FILLER PIC X(35).
03 I17 PIC -ZZ.
03 FILLER PIC X(3).
03 I18 PIC -ZZ.
03 FILLER PIC X(3).
03 I19 PIC -ZZ.
03 FILLER PIC X(3).
03 I20 PIC -ZZ.
03 FILLER PIC X(3).
03 I21 PIC -ZZ.
03 FILLER PIC X(3).
03 I22 PIC -ZZ.
03 FILLER PIC X(3).
03 I23 PIC -ZZ.
03 FILLER PIC X(3).
03 I24 PIC -ZZ.
03 FILLER PIC X(2).
03 I25 PIC -ZZ.
01 PNPSOLVE-SAVE.
03 FILLER PIC X(495).
COPY "PNPSOLV2.DDS".
COPY "PNPSOLV3.DDS".
COPY "PNPSOLV4.DDS".
COPY "PNPSOLV5.DDS".
COPY "PNPSOLV6.DDS".
01 OUT-DISPLAY-TABLE.
05 OUT-LINE OCCURS 14 TIMES.
10 FILLER PIC X(2).
10 INTEGER-LIST OCCURS 15 TIMES.
15 INT-DIS PIC --9.
15 COM-DIS PIC X(1).
10 PRINT-TICK PIC ZZZ,ZZZ,ZZ9.
01 OUT-DISPLAY-TABLE2.
05 OUT-LINE2 OCCURS 14 TIMES.
10 FILLER PIC X(2).
10 INTEGER-LIST2 OCCURS 15 TIMES.
15 INT-DIS2 PIC --9.
15 COM-DIS2 PIC X(1).
10 FILLER PIC X(11).
01 WS-OUTPUT-RECORD.
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-1 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-2 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-3 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-4 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-5 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-6 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-7 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-8 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-9 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-10 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-11 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-12 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-13 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-14 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-15 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-16 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-17 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-18 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-19 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-20 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-21 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-22 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-23 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-24 PIC 9(2).
05 FILLER PIC X(1) VALUE SPACE.
05 WS-SUB-25 PIC 9(2).
05 FILLER PIC X(5).
01 EOF-MESSAGE.
05 MSG-AREA PIC X(31) VALUE
"Number of equations summing to ".
05 SUM-VALUE-P PIC ----9.
05 EQUAL-SIGN PIC X(3) VALUE " = ".
05 TOTAL-ZERO-P PIC ZZ,ZZZ,ZZ9.
05 EOF-RESET PIC X(30)
VALUE ' "Y" then Enter resets'.
01 STATS-MSG PIC X(23) VALUE
"Press F7 for statistics".
01 RESULTS-FIELDS.
05 RESULT-2 PIC S9999 VALUE ZERO.
05 RESULT-3 PIC S9999 VALUE ZERO.
05 RESULT-4 PIC S9999 VALUE ZERO.
05 RESULT-5 PIC S9999 VALUE ZERO.
05 RESULT-6 PIC S9999 VALUE ZERO.
05 RESULT-7 PIC S9999 VALUE ZERO.
05 RESULT-8 PIC S9999 VALUE ZERO.
05 RESULT-9 PIC S9999 VALUE ZERO.
05 RESULT-10 PIC S9999 VALUE ZERO.
05 RESULT-11 PIC S9999 VALUE ZERO.
05 RESULT-12 PIC S9999 VALUE ZERO.
05 RESULT-13 PIC S9999 VALUE ZERO.
05 RESULT-14 PIC S9999 VALUE ZERO.
05 RESULT-15 PIC S9999 VALUE ZERO.
05 RESULT-16 PIC S9999 VALUE ZERO.
05 RESULT-17 PIC S9999 VALUE ZERO.
05 RESULT-18 PIC S9999 VALUE ZERO.
05 RESULT-19 PIC S9999 VALUE ZERO.
05 RESULT-20 PIC S9999 VALUE ZERO.
05 RESULT-21 PIC S9999 VALUE ZERO.
05 RESULT-22 PIC S9999 VALUE ZERO.
05 RESULT-23 PIC S9999 VALUE ZERO.
05 RESULT-24 PIC S9999 VALUE ZERO.
05 RESULT-25 PIC S9999 VALUE ZERO.
05 RESULT-ST PIC S9999 VALUE ZERO.
05 TOTAL-ZERO PIC 99999999 VALUE ZERO.
01 SUM-VALUES.
05 SUM-VALUE PIC S9999 VALUE ZERO.
05 SUM-VALUE-I PIC ----9 VALUE ZERO.
*---------------------------------------------------------------*
* LINKAGE SECTION *
*---------------------------------------------------------------*
* This is the common section between the main program *
* (PNPSOLVE) and the subroutine (PNPCHECK). This *
* contains the polynomial and exponential clock tick *
* accumulators, the sum value amount, the output result *
* line, the polynomial/exponential switch, the process *
* level from 07 through 14 and the set of integers. *
*---------------------------------------------------------------*
01 IO-LINK.
05 POLYNOMIAL-CLOCK.
10 CHECK-TICK PIC 9999999999.
10 SOLVE-TICK PIC 9999999999.
05 EXPON-TICK PIC 9999999999.
05 SUM-VALUE-CK PIC S9999.
05 IO-OUT-LINE PIC X(73).
05 POLY-EXP-SW PIC X.
05 PROCESS-LEVEL PIC 99.
88 PROCESS-LEVEL-OK VALUES 07 08 09 10 11 12 13 14.
05 TABLE-OF-INTEGERS.
10 INT PIC S99 OCCURS 25 TIMES.
PROCEDURE DIVISION.
INITIAL-SETUP.
OPEN OUTPUT STATS-FILE
IF NOT FILE-STATS-OK
MOVE "Y" TO IO-RESTRICTED.
OPEN OUTPUT SUMMARY-FILE
OUTPUT DETAILS-FILE
WRITE STATS-RECORD FROM SPACE-LINE.
WRITE STATS-RECORD FROM STATS-HEADING.
WRITE STATS-RECORD FROM SPACE-LINE.
WRITE SUMMARY-RECORD FROM SPACE-LINE.
WRITE SUMMARY-RECORD FROM STATS-HEADING.
WRITE SUMMARY-RECORD FROM SPACE-LINE.
WRITE DETAILS-RECORD FROM DETAILS-HEADING.
WRITE DETAILS-RECORD FROM SPACE-LINE.
OPEN OUTPUT OUTPUT-FILE
IF NOT FILE-STATUS-OK
NEXT SENTENCE.
MOVE TIME-OF-DAY TO CLOCK-TIME.
IF WORKTIME-SS < 20
MOVE 1 TO COLOR-VARY-SW
ELSE
IF WORKTIME-SS < 30
MOVE 2 TO COLOR-VARY-SW
ELSE
MOVE 5 TO COLOR-VARY-SW.
CALL FUNCTION-CONTROL USING ENABLE-FUNCTIONS
FUNCTION-TABLE.
DISPLAY SPACES.
MOVE 07 TO PROCESS-LEVEL.
MOVE "P" TO POLY-EXP-SW.
MOVE ZERO TO SUM-VALUE-CK.
MOVE ZERO TO DETAILS-CTR.
DISPLAY "Key integers then Enter, help F1" AT 2503.
*---------------------------------------------------------------*
* MAIN-LOOP SECTION *
*---------------------------------------------------------------*
* This section of the program accepts the input of keyed *
* integers and then determines navigation based on the key *
* pressed on the keyboard. It then executes the processing *
* of input routines. Finally it repeats the cycle until *
* the Esc key is pressed and confirmed. *
*---------------------------------------------------------------*
MAIN-LOOP.
PERFORM DATA-INPUT-RTN THRU DATA-INPUT-RTN-X.
IF ESCAPE-KEY
IF NOT AFFIRM-1
DISPLAY " Are you sure ? Y / N " AT 2503
PERFORM YORN-RTN THRU YORN-RTN-X
DISPLAY " " AT 2503
PERFORM RESET-RTN THRU RESET-RTN-X
DISPLAY SPACES
DISPLAY " Press F1 for help! " AT 2503
MOVE " " TO RESPONSE
GO TO MAIN-LOOP.
IF F8-KEY
ADD 1 TO COLOR-VARY-SW
IF COLOR-VARY-SW = 7
MOVE 1 TO COLOR-VARY-SW
MOVE "Y" TO COLOR-1ST-SW
ELSE
MOVE "Y" TO COLOR-1ST-SW.
IF F1-KEY
MOVE "PNPSOLVE.HLP" TO FILE-NAME
PERFORM CALL-HELP THRU CALL-HELP-X
MOVE SPACES TO
I1, I2, I3, I4 , I5, I6, I7 , I8,
I9, I10, I11, I12, I13, I14, I15, I16,
I17, I18, I19, I20, I21, I22, I23, I24, I25
DISPLAY SPACES.
IF F2-KEY
IF PNPSOLVE-SAVE > SPACES
MOVE PNPSOLVE-SAVE TO PNPSOLVE-02
DISPLAY PNPSOLVE-02
GO TO MAIN-LOOP.
IF F3-KEY
PERFORM DEPTH-RTN THRU DEPTH-RTN-X
GO TO MAIN-LOOP.
IF F4-KEY
PERFORM CLOCK-RTN THRU CLOCK-RTN-X
GO TO MAIN-LOOP.
IF F5-KEY
IF NOT FILE-STATUS-OK
DISPLAY 'Algorithms not available, Press Enter'
AT 2503
ACCEPT RESPONSE AT 2578
ELSE
CLOSE OUTPUT-FILE
PERFORM ALGORITHM-RTN THRU ALGORITHM-RTN-X
OPEN OUTPUT OUTPUT-FILE
DISPLAY SPACES
GO TO MAIN-LOOP.
IF F6-KEY
PERFORM SUM-VALUE-RTN THRU SUM-VALUE-RTN-X
GO TO MAIN-LOOP.
IF F7-KEY
IF IO-RESTRICTED = "Y"
DISPLAY
"Statistics not available, press Enter"
AT 2503
ACCEPT RESPONSE AT 2578
DISPLAY
" "
AT 2503
GO TO MAIN-LOOP
ELSE
WRITE STATS-RECORD FROM STATS-HELP
CLOSE STATS-FILE
MOVE "PNPSTATS.TXT" TO FILE-NAME
PERFORM CALL-HELP THRU CALL-HELP-X
OPEN OUTPUT STATS-FILE
WRITE STATS-RECORD FROM SPACE-LINE
WRITE STATS-RECORD FROM STATS-HEADING
WRITE STATS-RECORD FROM SPACE-LINE
WRITE SUMMARY-RECORD FROM SPACE-LINE
GO TO MAIN-LOOP.
IF F9-KEY
IF CLOCK-OFF
MOVE "Y" TO CLOCK-SW
DISPLAY "The minutes display clock is on " at 2503
GO TO MAIN-LOOP
ELSE
IF CLOCK-ON
MOVE "N" TO CLOCK-SW
DISPLAY "The minutes display clock is off " at 2503
GO TO MAIN-LOOP.
IF F10-KEY
IF DETAILS-ON
MOVE "N" TO DETAILS-SW
CLOSE DETAILS-FILE
DISPLAY "The details file is inactive " at 2503
GO TO MAIN-LOOP
ELSE
IF DETAILS-OFF
MOVE "Y" TO DETAILS-SW
OPEN OUTPUT DETAILS-FILE
WRITE DETAILS-RECORD FROM DETAILS-HEADING
WRITE DETAILS-RECORD FROM SPACE-LINE
DISPLAY "The details file is active " at 2503
GO TO MAIN-LOOP.
IF HOME-KEY
IF DETAILS-OFF
MOVE "Y" TO LNK-MSG-SW
MOVE "DETAILS.DOC" TO FILE-NAME
PERFORM CALL-HELP THRU CALL-HELP-X
MOVE "N" TO LNK-MSG-SW
GO TO MAIN-LOOP.
IF FILE-STATUS-OK
CLOSE OUTPUT-FILE
OPEN OUTPUT OUTPUT-FILE.
IF I1 GREATER THAN SPACES AND I2 GREATER THAN SPACES
DISPLAY
" " AT 2503
MOVE PNPSOLVE-02 TO PNPSOLVE-SAVE
ELSE
DISPLAY
"Please enter at least two integers " AT 2503
GO TO MAIN-LOOP.
IF POLY-EXP-SW = "E"
DISPLAY "E" AT 0979
ELSE
DISPLAY " " AT 0979.
PERFORM PROCESS-BIG-DATA THRU PROCESS-BIG-DATA-X.
PERFORM WIPE-BIG-DATA THRU WIPE-BIG-DATA-X.
PERFORM END-REPORTS THRU END-REPORTS-X.
PERFORM END-BIG-DATA THRU END-BIG-DATA-X.
PERFORM RESET-RTN THRU RESET-RTN-X
DISPLAY SPACES
DISPLAY STATS-MSG AT 2503.
MOVE SPACE TO RESPONSE
GO TO MAIN-LOOP.
MAIN-LOOP-X. EXIT.
PROCESS-BIG-DATA.
MOVE TIME-OF-DAY TO CLOCK-TIME.
MOVE CLOCK-TIME TO WORK-TIME.
MULTIPLY WORKTIME-HH BY 60 GIVING WORK-MIN-B
ADD WORKTIME-MM TO WORK-MIN-B.
MOVE WORKTIME-SS TO WORK-SEC-B.
PERFORM P-CHECK-RTN THRU P-CHECK-RTN-X
IF IO-OUT-LINE EQUAL SPACES
DISPLAY
"No equations found for depth of processing level"
AT 0908
DISPLAY PROCESS-LEVEL AT 0957
DISPLAY 'º' AT 0978
MOVE ZERO TO CHECK-TICK
EXPON-TICK
ELSE
DISPLAY IO-OUT-LINE AT 0904
DISPLAY 'º' AT 0978.
PERFORM SET-SUBSCRIPTS THRU SET-SUBSCRIPTS-X.
PERFORM REPORT-RTN THRU REPORT-RTN-X.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-BASE-2
PERFORM SET-TWOS THRU SET-TWOS-X.
MOVE " 2 integer sets" TO SET-MSG.
MOVE SUM-VALUE TO SET-VALUE.
MOVE TOTAL-ZERO TO SET-TOTAL.
MOVE TOTAL-ZERO TO SET-SUB-TOTAL.
MOVE SOLVE-TICK TO SET-CLOCK-P.
MOVE STATS-LINE TO STATS-RECORD,
SUMMARY-RECORD.
WRITE STATS-RECORD.
WRITE SUMMARY-RECORD.
MOVE SOLVE-TICK TO SOLVE-SAVE-1.
MOVE ZEROS TO SOLVE-SAVE-2.
MOVE 1 TO SUB-1
SUBTRACT 1 FROM MAX-SUB GIVING MAX-SUB-1
SUBTRACT 2 FROM MAX-SUB GIVING MAX-SUB-2
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-3) NOT EQUAL ZEROS
PERFORM SET-THREES THRU SET-THREES-X
MOVE " 3 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
DISPLAY "Seeking, please wait... "
AT 2505.
MOVE 1 TO SUB-1
SUBTRACT 1 FROM MAX-SUB GIVING MAX-SUB-1
SUBTRACT 2 FROM MAX-SUB GIVING MAX-SUB-2
SUBTRACT 3 FROM MAX-SUB GIVING MAX-SUB-3
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-4) NOT EQUAL ZEROS
PERFORM SET-FOURS THRU SET-FOURS-X
MOVE " 4 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-5) NOT EQUAL ZEROS
PERFORM SET-FIVES THRU SET-FIVES-X
MOVE " 5 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF MAX-SUB > 8
DISPLAY 'At 6 integers' AT 2552.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-6) NOT EQUAL ZEROS
PERFORM SET-SIXES THRU SET-SIXES-X
MOVE " 6 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF MAX-SUB > 8
DISPLAY 'At 7 integers' AT 2552.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-7) NOT EQUAL ZEROS
PERFORM SET-SEVENS THRU SET-SEVENS-X
MOVE " 7 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF MAX-SUB > 8
DISPLAY 'At 8 integers' AT 2552.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-8) NOT EQUAL ZEROS
PERFORM SET-EIGHTS THRU SET-EIGHTS-X
MOVE " 8 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF MAX-SUB > 8
DISPLAY 'At 9 integers' AT 2552.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-9) NOT EQUAL ZEROS
PERFORM SET-NINES THRU SET-NINES-X
MOVE " 9 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF MAX-SUB > 8
DISPLAY 'At 10 integers' AT 2552.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-10) NOT EQUAL ZEROS
PERFORM SET-TENS THRU SET-TENS-X
MOVE "10 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
IF MAX-SUB > 8
DISPLAY 'At 11 integers' AT 2552.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-11) NOT EQUAL ZEROS
PERFORM SET-ELEVENS THRU SET-ELEVENS-X
MOVE "11 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
IF MAX-SUB > 8
DISPLAY 'At 12 integers' AT 2552.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-12) NOT EQUAL ZEROS
PERFORM SET-TWELVES THRU SET-TWELVES-X
MOVE "12 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
IF MAX-SUB > 8
DISPLAY 'At 13 integers' AT 2552.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-13) NOT EQUAL ZEROS
PERFORM SET-THIRTEENS THRU SET-THIRTEENS-X
MOVE "13 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
IF MAX-SUB > 8
DISPLAY 'At 14 integers' AT 2552.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-14) NOT EQUAL ZEROS
PERFORM SET-FOURTEENS THRU SET-FOURTEENS-X
MOVE "14 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
IF MAX-SUB > 8
DISPLAY 'At 15 integers' AT 2552.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-15) NOT EQUAL ZEROS
PERFORM SET-FIFTEENS THRU SET-FIFTEENS-X
MOVE "15 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
IF MAX-SUB > 8
DISPLAY 'At 16 integers' AT 2552.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-16) NOT EQUAL ZEROS
PERFORM SET-SIXTEENS THRU SET-SIXTEENS-X
MOVE "16 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
IF MAX-SUB > 8
DISPLAY 'At 17 integers' AT 2552.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-17) NOT EQUAL ZEROS
PERFORM SET-SEVENTEENS THRU SET-SEVENTEENS-X
MOVE "17 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
IF MAX-SUB > 8
DISPLAY 'At 18 integers' AT 2552.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-18) NOT EQUAL ZEROS
PERFORM SET-EIGHTEENS THRU SET-EIGHTEENS-X
MOVE "18 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
IF MAX-SUB > 8
DISPLAY 'At 19 integers' AT 2552.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-19) NOT EQUAL ZEROS
PERFORM SET-NINETEENS THRU SET-NINETEENS-X
MOVE "19 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
IF MAX-SUB > 8
DISPLAY 'At 20 integers' AT 2552.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-20) NOT EQUAL ZEROS
PERFORM SET-TWENTY THRU SET-TWENTY-X
MOVE "20 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
DISPLAY "Final sets " AT 2552.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-21) NOT EQUAL ZEROS
PERFORM SET-TWENTY-ONE THRU SET-TWENTY-ONE-X
MOVE "21 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-22) NOT EQUAL ZEROS
PERFORM SET-TWENTY-TWO THRU SET-TWENTY-TWO-X
MOVE "22 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-23) NOT EQUAL ZEROS
PERFORM SET-TWENTY-THREE THRU SET-TWENTY-THREE-X
MOVE "23 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
PERFORM PROCESS-SETUP THRU PROCESS-SETUP-X.
IF INT(SUB-1) NOT EQUAL ZEROS AND
INT(SUB-24) NOT EQUAL ZEROS
PERFORM SET-TWENTY-FOUR THRU SET-TWENTY-FOUR-X
MOVE "24 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
IF I1 NOT EQUAL ZEROS
IF I25 EQUAL ZEROS OR SPACES
NEXT SENTENCE
ELSE
PERFORM TWENTY-FIVE-RTN THRU TWENTY-FIVE-RTN-X
MOVE "25 integer sets" TO SET-MSG
PERFORM SET-RTN THRU SET-RTN-X.
WRITE SUMMARY-RECORD FROM SPACE-LINE.
PROCESS-BIG-DATA-X. EXIT.
SET-SUBSCRIPTS.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3.
MOVE 4 TO SUB-4.
MOVE 5 TO SUB-5.
MOVE 6 TO SUB-6.
MOVE 7 TO SUB-7.
MOVE 8 TO SUB-8.
MOVE 9 TO SUB-9.
MOVE 10 TO SUB-10.
MOVE 11 TO SUB-11.
MOVE 12 TO SUB-12.
MOVE 13 TO SUB-13.
MOVE 14 TO SUB-14.
MOVE 15 TO SUB-15.
MOVE 16 TO SUB-16.
MOVE 17 TO SUB-17.
MOVE 18 TO SUB-18.
MOVE 19 TO SUB-19.
MOVE 20 TO SUB-20.
MOVE 21 TO SUB-21.
MOVE 22 TO SUB-22.
MOVE 23 TO SUB-23.
MOVE 24 TO SUB-24.
SET-SUBSCRIPTS-X. EXIT.
REPORT-RTN.
MOVE O1 TO D1
MOVE O2 TO D2
MOVE O3 TO D3
MOVE O4 TO D4
MOVE O5 TO D5
MOVE O6 TO D6
MOVE O7 TO D7
MOVE O8 TO D8
MOVE O9 TO D9
MOVE O10 TO D10
MOVE O11 TO D11
MOVE O12 TO D12
MOVE O13 TO D13
MOVE O14 TO D14
MOVE O15 TO D15
MOVE O16 TO D16
MOVE O17 TO D17
MOVE O18 TO D18
MOVE O19 TO D19
MOVE O20 TO D20
MOVE O21 TO D21
MOVE O22 TO D22
MOVE O23 TO D23
MOVE O24 TO D24
MOVE O25 TO D25
WRITE STATS-RECORD FROM STATS-INTEGERS.
WRITE STATS-RECORD FROM SPACE-LINE.
WRITE SUMMARY-RECORD FROM STATS-INTEGERS.
WRITE SUMMARY-RECORD FROM SPACE-LINE.
WRITE DETAILS-RECORD FROM STATS-INTEGERS.
WRITE DETAILS-RECORD FROM SPACE-LINE.
REPORT-RTN-X. EXIT.
END-REPORTS.
MOVE TIME-OF-DAY TO CLOCK-TIME.
MOVE CLOCK-TIME TO WORK-TIME.
MULTIPLY WORKTIME-HH BY 60 GIVING WORK-MIN-E
ADD WORKTIME-MM TO WORK-MIN-E
SUBTRACT WORK-MIN-E FROM WORK-MIN-B
GIVING WORK-MIN.
MOVE WORK-MIN TO DISPLAY-TIME.
MOVE " Minutes = " TO MIN-OR-SEC.
IF WORK-MIN = ZERO
MOVE WORKTIME-SS TO WORK-SEC-E
SUBTRACT WORK-SEC-B FROM WORK-SEC-E
GIVING WORK-SECONDS
MOVE " Seconds = " TO MIN-OR-SEC
IF WORK-SECONDS = ZERO
MOVE 1 TO DISPLAY-TIME
ELSE
MOVE WORK-SECONDS TO DISPLAY-TIME.
MOVE TOTAL-ZERO TO SETS-ALL-TOTAL
TOTAL-SOLVE-D.
IF TOTAL-ZERO = ZERO
MOVE ZERO TO CLOCK-CHECK
MOVE ZERO TO CLOCK-SOLVE
MOVE ZERO TO EXPON-SOLVE
MOVE SOLVE-TICK TO TOTAL-SOLVE
MOVE ZERO TO TOTAL-SOLVE-D
ELSE
MOVE SOLVE-TICK TO TOTAL-SOLVE
MOVE CHECK-TICK TO CLOCK-CHECK
MOVE EXPON-TICK TO EXPON-SOLVE.
WRITE STATS-RECORD FROM STATS-ALL-TOTALS.
WRITE STATS-RECORD FROM SPACE-LINE.
WRITE STATS-RECORD FROM STATS-PNP.
WRITE STATS-RECORD FROM SPACE-LINE.
WRITE SUMMARY-RECORD FROM STATS-ALL-TOTALS.
WRITE SUMMARY-RECORD FROM SPACE-LINE.
WRITE SUMMARY-RECORD FROM STATS-PNP.
WRITE SUMMARY-RECORD FROM SPACE-LINE.
WRITE DETAILS-RECORD FROM SPACE-LINE.
WRITE DETAILS-RECORD FROM STATS-DETAIL.
WRITE DETAILS-RECORD FROM STATS-SEPARATE.
WRITE DETAILS-RECORD FROM SPACE-LINE.
END-REPORTS-X. EXIT.
END-BIG-DATA.
DISPLAY SPACE-LINE AT 2503.
MOVE TOTAL-ZERO TO TOTAL-ZERO-P.
MOVE SUM-VALUE TO SUM-VALUE-P.
DISPLAY EOF-MESSAGE AT 2503.
MOVE '?' TO RESPONSE
ACCEPT RESPONSE AT 2578.
IF NEGATED
EXIT PROGRAM
STOP RUN.
IF NOT AFFIRMATIVE
GO TO END-BIG-DATA.
END-BIG-DATA-X. EXIT.
PROCESS-SETUP.
MOVE SPACES TO OUT-LINE (14).
MOVE 1 TO SUB-1
SUBTRACT 1 FROM MAX-SUB GIVING MAX-SUB-1
SUBTRACT 2 FROM MAX-SUB GIVING MAX-SUB-2
SUBTRACT 3 FROM MAX-SUB GIVING MAX-SUB-3
SUBTRACT 4 FROM MAX-SUB GIVING MAX-SUB-4
SUBTRACT 5 FROM MAX-SUB GIVING MAX-SUB-5
SUBTRACT 6 FROM MAX-SUB GIVING MAX-SUB-6
SUBTRACT 7 FROM MAX-SUB GIVING MAX-SUB-7
SUBTRACT 8 FROM MAX-SUB GIVING MAX-SUB-8
SUBTRACT 9 FROM MAX-SUB GIVING MAX-SUB-9
SUBTRACT 10 FROM MAX-SUB GIVING MAX-SUB-10
SUBTRACT 11 FROM MAX-SUB GIVING MAX-SUB-11
SUBTRACT 12 FROM MAX-SUB GIVING MAX-SUB-12
SUBTRACT 13 FROM MAX-SUB GIVING MAX-SUB-13
SUBTRACT 14 FROM MAX-SUB GIVING MAX-SUB-14
SUBTRACT 15 FROM MAX-SUB GIVING MAX-SUB-15
SUBTRACT 16 FROM MAX-SUB GIVING MAX-SUB-16
SUBTRACT 17 FROM MAX-SUB GIVING MAX-SUB-17
SUBTRACT 18 FROM MAX-SUB GIVING MAX-SUB-18
SUBTRACT 19 FROM MAX-SUB GIVING MAX-SUB-19
SUBTRACT 20 FROM MAX-SUB GIVING MAX-SUB-20
SUBTRACT 21 FROM MAX-SUB GIVING MAX-SUB-21
SUBTRACT 22 FROM MAX-SUB GIVING MAX-SUB-22
SUBTRACT 23 FROM MAX-SUB GIVING MAX-SUB-23.
PROCESS-SETUP-X. EXIT.
SET-TWOS.
IF SUB-1 LESS THAN MAX-SUB
PERFORM TWOS-RTN THRU TWOS-RTN-X
VARYING SUB-2 FROM SUB-BASE-2 BY 1
UNTIL SUB-2 GREATER THAN MAX-SUB
ADD 1 TO SUB-1
ADD 1 TO SUB-BASE-2
GO TO SET-TWOS.
SET-TWOS-X. EXIT.
TWOS-RTN.
ADD INT(SUB-1)
INT(SUB-2)
GIVING RESULT-2
ADD 1 TO SOLVE-TICK.
IF RESULT-2 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-RTN THRU DISPLAY-RTN-X.
MOVE SUB-1 TO WS-SUB-1
MOVE SUB-2 TO WS-SUB-2
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
TWOS-RTN-X. EXIT.
DISPLAY-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
IF SOLVE-TICK EQUAL ZEROS
MOVE 1 TO SOLVE-TICK.
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-RTN-X. EXIT.
SET-THREES.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
IF MAX-SUB EQUAL 3
PERFORM THREES-SUB-RTN THRU THREES-SUB-RTN-X
GO TO SET-THREES-X
ELSE
PERFORM THREES-SUB-RTN THRU THREES-SUB-RTN-X.
SET-THREES-A.
ADD 1 TO SUB-3.
IF SUB-3 NOT GREATER THAN MAX-SUB
PERFORM THREES-SUB-RTN THRU THREES-SUB-RTN-X
GO TO SET-THREES-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
ADD 1 TO SUB-3.
SET-THREES-B.
IF SUB-3 NOT GREATER THAN MAX-SUB
PERFORM THREES-SUB-RTN THRU THREES-SUB-RTN-X
GO TO SET-THREES-A.
IF SUB-2 NOT GREATER THAN MAX-SUB-1
PERFORM THREES-SUB-RTN THRU THREES-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-THREES-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
ADD 1 TO SUB-2
ADD 2 TO SUB-3
PERFORM THREES-SUB-RTN THRU THREES-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-2
GO TO SET-THREES-A.
SET-THREES-X. EXIT.
THREES-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
IF SUB-3 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
MOVE ZERO TO RESULT-3.
IF DUP-SW = 'N'
IF SUB-3 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3)
GIVING RESULT-3
ADD 1 TO SOLVE-TICK
IF RESULT-3 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-3-RTN THRU DISPLAY-3-RTN-X.
THREES-SUB-RTN-X. EXIT.
DISPLAY-3-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-3-RTN-X. EXIT.
SET-FOURS.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
IF MAX-SUB EQUAL 4
PERFORM FOURS-SUB-RTN THRU FOURS-SUB-RTN-X
GO TO SET-FOURS-X
ELSE
PERFORM FOURS-SUB-RTN THRU FOURS-SUB-RTN-X.
SET-FOURS-A.
ADD 1 TO SUB-4.
IF SUB-4 NOT GREATER THAN MAX-SUB
PERFORM FOURS-SUB-RTN THRU FOURS-SUB-RTN-X
GO TO SET-FOURS-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
ADD 1 TO SUB-4.
SET-FOURS-B.
IF SUB-4 NOT GREATER THAN MAX-SUB
PERFORM FOURS-SUB-RTN THRU FOURS-SUB-RTN-X
GO TO SET-FOURS-A.
IF SUB-3 NOT GREATER THAN MAX-SUB-1
PERFORM FOURS-SUB-RTN THRU FOURS-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-FOURS-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
SUB-4
ADD 1 TO SUB-3
ADD 2 TO SUB-4.
SET-FOURS-C.
IF SUB-3 NOT GREATER THAN MAX-SUB-1
PERFORM FOURS-SUB-RTN THRU FOURS-SUB-RTN-X
GO TO SET-FOURS-B.
IF SUB-2 NOT GREATER THAN MAX-SUB-2
PERFORM FOURS-SUB-RTN THRU FOURS-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-FOURS-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4.
PERFORM FOURS-SUB-RTN THRU FOURS-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-3
GO TO SET-FOURS-A.
SET-FOURS-X. EXIT.
FOURS-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
IF SUB-4 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-4 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4)
GIVING RESULT-4
ADD 1 TO SOLVE-TICK
IF RESULT-4 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-4-RTN THRU DISPLAY-4-RTN-X.
FOURS-SUB-RTN-X. EXIT.
DISPLAY-4-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-4-RTN-X. EXIT.
SET-FIVES.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
IF MAX-SUB EQUAL 5
PERFORM FIVES-SUB-RTN THRU FIVES-SUB-RTN-X
GO TO SET-FIVES-X
ELSE
PERFORM FIVES-SUB-RTN THRU FIVES-SUB-RTN-X.
SET-FIVES-A.
ADD 1 TO SUB-5.
IF SUB-5 NOT GREATER THAN MAX-SUB
PERFORM FIVES-SUB-RTN THRU FIVES-SUB-RTN-X
GO TO SET-FIVES-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
ADD 1 TO SUB-5.
SET-FIVES-B.
IF SUB-5 NOT GREATER THAN MAX-SUB
PERFORM FIVES-SUB-RTN THRU FIVES-SUB-RTN-X
GO TO SET-FIVES-A.
IF SUB-4 NOT GREATER THAN MAX-SUB-1
PERFORM FIVES-SUB-RTN THRU FIVES-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-FIVES-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
ADD 1 TO SUB-4
ADD 2 TO SUB-5.
SET-FIVES-C.
IF SUB-4 NOT GREATER THAN MAX-SUB-1
PERFORM FIVES-SUB-RTN THRU FIVES-SUB-RTN-X
GO TO SET-FIVES-B.
IF SUB-3 NOT GREATER THAN MAX-SUB-2
PERFORM FIVES-SUB-RTN THRU FIVES-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-FIVES-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
SUB-4
SUB-5
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5.
SET-FIVES-D.
IF SUB-3 NOT GREATER THAN MAX-SUB-2
PERFORM FIVES-SUB-RTN THRU FIVES-SUB-RTN-X
GO TO SET-FIVES-C.
IF SUB-2 NOT GREATER THAN MAX-SUB-3
PERFORM FIVES-SUB-RTN THRU FIVES-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-FIVES-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
PERFORM FIVES-SUB-RTN THRU FIVES-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-4
GO TO SET-FIVES-A.
SET-FIVES-X. EXIT.
FIVES-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
IF SUB-5 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-5 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5)
GIVING RESULT-5
ADD 1 TO SOLVE-TICK
IF RESULT-5 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-5-RTN THRU DISPLAY-5-RTN-X.
FIVES-SUB-RTN-X. EXIT.
DISPLAY-5-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-5-RTN-X. EXIT.
SET-SIXES.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
IF MAX-SUB EQUAL 6
PERFORM SIXES-SUB-RTN THRU SIXES-SUB-RTN-X
GO TO SET-SIXES-X
ELSE
PERFORM SIXES-SUB-RTN THRU SIXES-SUB-RTN-X.
SET-SIXES-A.
ADD 1 TO SUB-6.
IF SUB-6 NOT GREATER THAN MAX-SUB
PERFORM SIXES-SUB-RTN THRU SIXES-SUB-RTN-X
GO TO SET-SIXES-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
ADD 1 TO SUB-6.
SET-SIXES-B.
IF SUB-6 NOT GREATER THAN MAX-SUB
PERFORM SIXES-SUB-RTN THRU SIXES-SUB-RTN-X
GO TO SET-SIXES-A.
IF SUB-5 NOT GREATER THAN MAX-SUB-1
PERFORM SIXES-SUB-RTN THRU SIXES-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-SIXES-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
ADD 1 TO SUB-5
ADD 2 TO SUB-6.
SET-SIXES-C.
IF SUB-5 NOT GREATER THAN MAX-SUB-1
PERFORM SIXES-SUB-RTN THRU SIXES-SUB-RTN-X
GO TO SET-SIXES-B.
IF SUB-4 NOT GREATER THAN MAX-SUB-2
PERFORM SIXES-SUB-RTN THRU SIXES-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-SIXES-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6.
SET-SIXES-D.
IF SUB-4 NOT GREATER THAN MAX-SUB-2
PERFORM SIXES-SUB-RTN THRU SIXES-SUB-RTN-X
GO TO SET-SIXES-C.
IF SUB-3 NOT GREATER THAN MAX-SUB-3
PERFORM SIXES-SUB-RTN THRU SIXES-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-SIXES-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
SUB-4
SUB-5
SUB-6
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6.
SET-SIXES-E.
IF SUB-3 NOT GREATER THAN MAX-SUB-3
PERFORM SIXES-SUB-RTN THRU SIXES-SUB-RTN-X
GO TO SET-SIXES-D.
IF SUB-2 NOT GREATER THAN MAX-SUB-4
PERFORM SIXES-SUB-RTN THRU SIXES-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-SIXES-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
PERFORM SIXES-SUB-RTN THRU SIXES-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-5
GO TO SET-SIXES-A.
SET-SIXES-X. EXIT.
SIXES-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
IF SUB-6 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-6 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6)
GIVING RESULT-6
ADD 1 TO SOLVE-TICK
IF RESULT-6 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-6-RTN THRU DISPLAY-6-RTN-X.
SIXES-SUB-RTN-X. EXIT.
DISPLAY-6-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-6-RTN-X. EXIT.
SET-SEVENS.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
IF MAX-SUB EQUAL 7
PERFORM SEVENS-SUB-RTN THRU SEVENS-SUB-RTN-X
GO TO SET-SEVENS-X
ELSE
PERFORM SEVENS-SUB-RTN THRU SEVENS-SUB-RTN-X.
SET-SEVENS-A.
ADD 1 TO SUB-7.
IF SUB-7 NOT GREATER THAN MAX-SUB
PERFORM SEVENS-SUB-RTN THRU SEVENS-SUB-RTN-X
GO TO SET-SEVENS-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
ADD 1 TO SUB-7.
SET-SEVENS-B.
IF SUB-7 NOT GREATER THAN MAX-SUB
PERFORM SEVENS-SUB-RTN THRU SEVENS-SUB-RTN-X
GO TO SET-SEVENS-A.
IF SUB-6 NOT GREATER THAN MAX-SUB-1
PERFORM SEVENS-SUB-RTN THRU SEVENS-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-SEVENS-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
ADD 1 TO SUB-6
ADD 2 TO SUB-7.
SET-SEVENS-C.
IF SUB-6 NOT GREATER THAN MAX-SUB-1
PERFORM SEVENS-SUB-RTN THRU SEVENS-SUB-RTN-X
GO TO SET-SEVENS-B.
IF SUB-5 NOT GREATER THAN MAX-SUB-2
PERFORM SEVENS-SUB-RTN THRU SEVENS-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-SEVENS-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7.
SET-SEVENS-D.
IF SUB-5 NOT GREATER THAN MAX-SUB-2
PERFORM SEVENS-SUB-RTN THRU SEVENS-SUB-RTN-X
GO TO SET-SEVENS-C.
IF SUB-4 NOT GREATER THAN MAX-SUB-3
PERFORM SEVENS-SUB-RTN THRU SEVENS-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-SEVENS-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7.
SET-SEVENS-E.
IF SUB-4 NOT GREATER THAN MAX-SUB-3
PERFORM SEVENS-SUB-RTN THRU SEVENS-SUB-RTN-X
GO TO SET-SEVENS-D.
IF SUB-3 NOT GREATER THAN MAX-SUB-4
PERFORM SEVENS-SUB-RTN THRU SEVENS-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-SEVENS-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7.
SET-SEVENS-F.
IF SUB-3 NOT GREATER THAN MAX-SUB-4
PERFORM SEVENS-SUB-RTN THRU SEVENS-SUB-RTN-X
GO TO SET-SEVENS-E.
IF SUB-2 NOT GREATER THAN MAX-SUB-5
PERFORM SEVENS-SUB-RTN THRU SEVENS-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-SEVENS-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
PERFORM SEVENS-SUB-RTN THRU SEVENS-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-6
GO TO SET-SEVENS-A.
SET-SEVENS-X. EXIT.
SEVENS-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
IF SUB-7 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-7 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7)
GIVING RESULT-7
ADD 1 TO SOLVE-TICK
IF RESULT-7 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-7-RTN THRU DISPLAY-7-RTN-X.
SEVENS-SUB-RTN-X. EXIT.
DISPLAY-7-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-7-RTN-X. EXIT.
SET-EIGHTS.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
IF MAX-SUB EQUAL 8
PERFORM EIGHTS-SUB-RTN THRU EIGHTS-SUB-RTN-X
GO TO SET-EIGHTS-X
ELSE
PERFORM EIGHTS-SUB-RTN THRU EIGHTS-SUB-RTN-X.
SET-EIGHTS-A.
ADD 1 TO SUB-8.
IF SUB-8 NOT GREATER THAN MAX-SUB
PERFORM EIGHTS-SUB-RTN THRU EIGHTS-SUB-RTN-X
GO TO SET-EIGHTS-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
ADD 1 TO SUB-8.
SET-EIGHTS-B.
IF SUB-8 NOT GREATER THAN MAX-SUB
PERFORM EIGHTS-SUB-RTN THRU EIGHTS-SUB-RTN-X
GO TO SET-EIGHTS-A.
IF SUB-7 NOT GREATER THAN MAX-SUB-1
PERFORM EIGHTS-SUB-RTN THRU EIGHTS-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-EIGHTS-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
ADD 1 TO SUB-7
ADD 2 TO SUB-8.
SET-EIGHTS-C.
IF SUB-7 NOT GREATER THAN MAX-SUB-1
PERFORM EIGHTS-SUB-RTN THRU EIGHTS-SUB-RTN-X
GO TO SET-EIGHTS-B.
IF SUB-6 NOT GREATER THAN MAX-SUB-2
PERFORM EIGHTS-SUB-RTN THRU EIGHTS-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-EIGHTS-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8.
SET-EIGHTS-D.
IF SUB-6 NOT GREATER THAN MAX-SUB-2
PERFORM EIGHTS-SUB-RTN THRU EIGHTS-SUB-RTN-X
GO TO SET-EIGHTS-C.
IF SUB-5 NOT GREATER THAN MAX-SUB-3
PERFORM EIGHTS-SUB-RTN THRU EIGHTS-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-EIGHTS-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8.
SET-EIGHTS-E.
IF SUB-5 NOT GREATER THAN MAX-SUB-3
PERFORM EIGHTS-SUB-RTN THRU EIGHTS-SUB-RTN-X
GO TO SET-EIGHTS-D.
IF SUB-4 NOT GREATER THAN MAX-SUB-4
PERFORM EIGHTS-SUB-RTN THRU EIGHTS-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-EIGHTS-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8.
SET-EIGHTS-F.
IF SUB-4 NOT GREATER THAN MAX-SUB-4
PERFORM EIGHTS-SUB-RTN THRU EIGHTS-SUB-RTN-X
GO TO SET-EIGHTS-E.
IF SUB-3 NOT GREATER THAN MAX-SUB-5
PERFORM EIGHTS-SUB-RTN THRU EIGHTS-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-EIGHTS-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8.
SET-EIGHTS-G.
IF SUB-3 NOT GREATER THAN MAX-SUB-5
PERFORM EIGHTS-SUB-RTN THRU EIGHTS-SUB-RTN-X
GO TO SET-EIGHTS-F.
IF SUB-2 NOT GREATER THAN MAX-SUB-6
PERFORM EIGHTS-SUB-RTN THRU EIGHTS-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-EIGHTS-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
PERFORM EIGHTS-SUB-RTN THRU EIGHTS-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-7
GO TO SET-EIGHTS-A.
SET-EIGHTS-X. EXIT.
EIGHTS-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
IF SUB-8 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-8 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8)
GIVING RESULT-8
ADD 1 TO SOLVE-TICK
IF RESULT-8 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-8-RTN THRU DISPLAY-8-RTN-X.
EIGHTS-SUB-RTN-X. EXIT.
DISPLAY-8-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-8-RTN-X. EXIT.
SET-NINES.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
MOVE 9 TO SUB-9
IF MAX-SUB EQUAL 9
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X
GO TO SET-NINES-X
ELSE
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X.
SET-NINES-A.
ADD 1 TO SUB-9.
IF SUB-9 NOT GREATER THAN MAX-SUB
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X
GO TO SET-NINES-A
ELSE
ADD 1 TO SUB-8
MOVE SUB-8 TO SUB-9
ADD 1 TO SUB-9.
SET-NINES-B.
IF SUB-9 NOT GREATER THAN MAX-SUB
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X
GO TO SET-NINES-A.
IF SUB-8 NOT GREATER THAN MAX-SUB-1
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X
ADD 1 TO SUB-8
GO TO SET-NINES-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
SUB-9
ADD 1 TO SUB-8
ADD 2 TO SUB-9.
SET-NINES-C.
IF SUB-8 NOT GREATER THAN MAX-SUB-1
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X
GO TO SET-NINES-B.
IF SUB-7 NOT GREATER THAN MAX-SUB-2
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-NINES-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
SUB-9
ADD 1 TO SUB-7
ADD 2 TO SUB-8
ADD 3 TO SUB-9.
SET-NINES-D.
IF SUB-7 NOT GREATER THAN MAX-SUB-2
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X
GO TO SET-NINES-C.
IF SUB-6 NOT GREATER THAN MAX-SUB-3
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-NINES-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
SUB-9
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8
ADD 4 TO SUB-9.
SET-NINES-E.
IF SUB-6 NOT GREATER THAN MAX-SUB-3
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X
GO TO SET-NINES-D.
IF SUB-5 NOT GREATER THAN MAX-SUB-4
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-NINES-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8
ADD 5 TO SUB-9.
SET-NINES-F.
IF SUB-5 NOT GREATER THAN MAX-SUB-4
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X
GO TO SET-NINES-E.
IF SUB-4 NOT GREATER THAN MAX-SUB-5
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-NINES-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8
ADD 6 TO SUB-9.
SET-NINES-G.
IF SUB-4 NOT GREATER THAN MAX-SUB-5
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X
GO TO SET-NINES-F.
IF SUB-3 NOT GREATER THAN MAX-SUB-6
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-NINES-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8
ADD 7 TO SUB-9.
SET-NINES-H.
IF SUB-3 NOT GREATER THAN MAX-SUB-6
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X
GO TO SET-NINES-G.
IF SUB-2 NOT GREATER THAN MAX-SUB-7
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-NINES-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
ADD 8 TO SUB-9
PERFORM NINES-SUB-RTN THRU NINES-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-8
GO TO SET-NINES-A.
SET-NINES-X. EXIT.
NINES-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
MOVE SUB-9 TO WS-SUB-9.
IF SUB-9 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-9 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8),
INT(SUB-9)
GIVING RESULT-9
ADD 1 TO SOLVE-TICK
IF RESULT-9 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-9-RTN THRU DISPLAY-9-RTN-X.
NINES-SUB-RTN-X. EXIT.
DISPLAY-9-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-9) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-9-RTN-X. EXIT.
SET-TENS.
IF TOTAL-ZERO EQUAL ZERO
PERFORM ELAPSED-TIME THRU ELAPSED-TIME-X.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
MOVE 9 TO SUB-9
MOVE 10 TO SUB-10
IF MAX-SUB EQUAL 10
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
GO TO SET-TENS-X
ELSE
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X.
SET-TENS-A.
ADD 1 TO SUB-10.
IF SUB-10 NOT GREATER THAN MAX-SUB
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
GO TO SET-TENS-A
ELSE
ADD 1 TO SUB-9
MOVE SUB-9 TO SUB-10
ADD 1 TO SUB-10.
SET-TENS-B.
IF SUB-10 NOT GREATER THAN MAX-SUB
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
GO TO SET-TENS-A.
IF SUB-9 NOT GREATER THAN MAX-SUB-1
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
ADD 1 TO SUB-9
GO TO SET-TENS-A
ELSE
ADD 1 TO SUB-8
MOVE SUB-8 TO SUB-9
SUB-10
ADD 1 TO SUB-9
ADD 2 TO SUB-10.
SET-TENS-C.
IF SUB-9 NOT GREATER THAN MAX-SUB-1
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
GO TO SET-TENS-B.
IF SUB-8 NOT GREATER THAN MAX-SUB-2
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
ADD 1 TO SUB-8
GO TO SET-TENS-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
SUB-9
SUB-10
ADD 1 TO SUB-8
ADD 2 TO SUB-9
ADD 3 TO SUB-10.
SET-TENS-D.
IF SUB-8 NOT GREATER THAN MAX-SUB-2
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
GO TO SET-TENS-C.
IF SUB-7 NOT GREATER THAN MAX-SUB-3
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-TENS-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
SUB-9
SUB-10
ADD 1 TO SUB-7
ADD 2 TO SUB-8
ADD 3 TO SUB-9
ADD 4 TO SUB-10.
SET-TENS-E.
IF SUB-7 NOT GREATER THAN MAX-SUB-3
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
GO TO SET-TENS-D.
IF SUB-6 NOT GREATER THAN MAX-SUB-4
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-TENS-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8
ADD 4 TO SUB-9
ADD 5 TO SUB-10.
SET-TENS-F.
IF SUB-6 NOT GREATER THAN MAX-SUB-4
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
GO TO SET-TENS-E.
IF SUB-5 NOT GREATER THAN MAX-SUB-5
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-TENS-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8
ADD 5 TO SUB-9
ADD 6 TO SUB-10.
SET-TENS-G.
IF SUB-5 NOT GREATER THAN MAX-SUB-5
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
GO TO SET-TENS-F.
IF SUB-4 NOT GREATER THAN MAX-SUB-6
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-TENS-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8
ADD 6 TO SUB-9
ADD 7 TO SUB-10.
SET-TENS-H.
IF SUB-4 NOT GREATER THAN MAX-SUB-6
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
GO TO SET-TENS-G.
IF SUB-3 NOT GREATER THAN MAX-SUB-7
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-TENS-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8
ADD 7 TO SUB-9
ADD 8 TO SUB-10.
SET-TENS-I.
IF SUB-3 NOT GREATER THAN MAX-SUB-7
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
GO TO SET-TENS-H.
IF SUB-2 NOT GREATER THAN MAX-SUB-8
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-TENS-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
ADD 8 TO SUB-9
ADD 9 TO SUB-10
PERFORM TENS-SUB-RTN THRU TENS-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-9
GO TO SET-TENS-A.
SET-TENS-X. EXIT.
TENS-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
MOVE SUB-9 TO WS-SUB-9.
MOVE SUB-10 TO WS-SUB-10.
IF SUB-10 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-10 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8),
INT(SUB-9),
INT(SUB-10)
GIVING RESULT-10
ADD 1 TO SOLVE-TICK
IF RESULT-10 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-10-RTN THRU DISPLAY-10-RTN-X.
TENS-SUB-RTN-X. EXIT.
DISPLAY-10-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-9) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-10) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-10-RTN-X. EXIT.
SET-ELEVENS.
IF TOTAL-ZERO EQUAL ZERO
PERFORM ELAPSED-TIME THRU ELAPSED-TIME-X.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
MOVE 9 TO SUB-9
MOVE 10 TO SUB-10
MOVE 11 TO SUB-11
IF MAX-SUB EQUAL 11
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
GO TO SET-ELEVENS-X
ELSE
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X.
SET-ELEVENS-A.
ADD 1 TO SUB-11.
IF SUB-11 NOT GREATER THAN MAX-SUB
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
GO TO SET-ELEVENS-A
ELSE
ADD 1 TO SUB-10
MOVE SUB-10 TO SUB-11
ADD 1 TO SUB-11.
SET-ELEVENS-B.
IF SUB-11 NOT GREATER THAN MAX-SUB
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
GO TO SET-ELEVENS-A.
IF SUB-10 NOT GREATER THAN MAX-SUB-1
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
ADD 1 TO SUB-10
GO TO SET-ELEVENS-A
ELSE
ADD 1 TO SUB-9
MOVE SUB-9 TO SUB-10
SUB-11
ADD 1 TO SUB-10
ADD 2 TO SUB-11.
SET-ELEVENS-C.
IF SUB-10 NOT GREATER THAN MAX-SUB-1
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
GO TO SET-ELEVENS-B.
IF SUB-9 NOT GREATER THAN MAX-SUB-2
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
ADD 1 TO SUB-9
GO TO SET-ELEVENS-A
ELSE
ADD 1 TO SUB-8
MOVE SUB-8 TO SUB-9
SUB-10
SUB-11
ADD 1 TO SUB-9
ADD 2 TO SUB-10
ADD 3 TO SUB-11.
SET-ELEVENS-D.
IF SUB-9 NOT GREATER THAN MAX-SUB-2
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
GO TO SET-ELEVENS-C.
IF SUB-8 NOT GREATER THAN MAX-SUB-3
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
ADD 1 TO SUB-8
GO TO SET-ELEVENS-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
SUB-9
SUB-10
SUB-11
ADD 1 TO SUB-8
ADD 2 TO SUB-9
ADD 3 TO SUB-10
ADD 4 TO SUB-11.
SET-ELEVENS-E.
IF SUB-8 NOT GREATER THAN MAX-SUB-3
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
GO TO SET-ELEVENS-D.
IF SUB-7 NOT GREATER THAN MAX-SUB-4
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-ELEVENS-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
ADD 1 TO SUB-7
ADD 2 TO SUB-8
ADD 3 TO SUB-9
ADD 4 TO SUB-10
ADD 5 TO SUB-11.
SET-ELEVENS-F.
IF SUB-7 NOT GREATER THAN MAX-SUB-4
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
GO TO SET-ELEVENS-E.
IF SUB-6 NOT GREATER THAN MAX-SUB-5
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-ELEVENS-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8
ADD 4 TO SUB-9
ADD 5 TO SUB-10
ADD 6 TO SUB-11.
SET-ELEVENS-G.
IF SUB-6 NOT GREATER THAN MAX-SUB-5
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
GO TO SET-ELEVENS-F.
IF SUB-5 NOT GREATER THAN MAX-SUB-6
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-ELEVENS-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8
ADD 5 TO SUB-9
ADD 6 TO SUB-10
ADD 7 TO SUB-11.
SET-ELEVENS-H.
IF SUB-5 NOT GREATER THAN MAX-SUB-6
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
GO TO SET-ELEVENS-G.
IF SUB-4 NOT GREATER THAN MAX-SUB-7
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-ELEVENS-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8
ADD 6 TO SUB-9
ADD 7 TO SUB-10
ADD 8 TO SUB-11.
SET-ELEVENS-I.
IF SUB-4 NOT GREATER THAN MAX-SUB-7
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
GO TO SET-ELEVENS-H.
IF SUB-3 NOT GREATER THAN MAX-SUB-8
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-ELEVENS-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8
ADD 7 TO SUB-9
ADD 8 TO SUB-10
ADD 9 TO SUB-11.
SET-ELEVENS-J.
IF SUB-3 NOT GREATER THAN MAX-SUB-8
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
GO TO SET-ELEVENS-I.
IF SUB-2 NOT GREATER THAN MAX-SUB-9
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-ELEVENS-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
ADD 8 TO SUB-9
ADD 9 TO SUB-10
ADD 10 TO SUB-11
PERFORM ELEVENS-SUB-RTN THRU ELEVENS-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-10
GO TO SET-ELEVENS-A.
SET-ELEVENS-X. EXIT.
ELEVENS-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
MOVE SUB-9 TO WS-SUB-9.
MOVE SUB-10 TO WS-SUB-10.
MOVE SUB-11 TO WS-SUB-11.
IF SUB-11 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-11 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8),
INT(SUB-9),
INT(SUB-10),
INT(SUB-11)
GIVING RESULT-11
ADD 1 TO SOLVE-TICK
IF RESULT-11 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-11-RTN THRU DISPLAY-11-RTN-X.
ELEVENS-SUB-RTN-X. EXIT.
DISPLAY-11-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-9) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-10) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-11) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-11-RTN-X. EXIT.
SET-TWELVES.
IF TOTAL-ZERO EQUAL ZERO
PERFORM ELAPSED-TIME THRU ELAPSED-TIME-X.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
MOVE 9 TO SUB-9
MOVE 10 TO SUB-10
MOVE 11 TO SUB-11
MOVE 12 TO SUB-12
IF MAX-SUB EQUAL 12
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
GO TO SET-TWELVES-X
ELSE
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X.
SET-TWELVES-A.
ADD 1 TO SUB-12.
IF SUB-12 NOT GREATER THAN MAX-SUB
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
GO TO SET-TWELVES-A
ELSE
ADD 1 TO SUB-11
MOVE SUB-11 TO SUB-12
ADD 1 TO SUB-12.
SET-TWELVES-B.
IF SUB-12 NOT GREATER THAN MAX-SUB
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
GO TO SET-TWELVES-A.
IF SUB-11 NOT GREATER THAN MAX-SUB-1
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
ADD 1 TO SUB-11
GO TO SET-TWELVES-A
ELSE
ADD 1 TO SUB-10
MOVE SUB-10 TO SUB-11
SUB-12
ADD 1 TO SUB-11
ADD 2 TO SUB-12.
SET-TWELVES-C.
IF SUB-11 NOT GREATER THAN MAX-SUB-1
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
GO TO SET-TWELVES-B.
IF SUB-10 NOT GREATER THAN MAX-SUB-2
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
ADD 1 TO SUB-10
GO TO SET-TWELVES-A
ELSE
ADD 1 TO SUB-9
MOVE SUB-9 TO SUB-10
SUB-11
SUB-12
ADD 1 TO SUB-10
ADD 2 TO SUB-11
ADD 3 TO SUB-12.
SET-TWELVES-D.
IF SUB-10 NOT GREATER THAN MAX-SUB-2
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
GO TO SET-TWELVES-C.
IF SUB-9 NOT GREATER THAN MAX-SUB-3
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
ADD 1 TO SUB-9
GO TO SET-TWELVES-A
ELSE
ADD 1 TO SUB-8
MOVE SUB-8 TO SUB-9
SUB-10
SUB-11
SUB-12
ADD 1 TO SUB-9
ADD 2 TO SUB-10
ADD 3 TO SUB-11
ADD 4 TO SUB-12.
SET-TWELVES-E.
IF SUB-9 NOT GREATER THAN MAX-SUB-3
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
GO TO SET-TWELVES-D.
IF SUB-8 NOT GREATER THAN MAX-SUB-4
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
ADD 1 TO SUB-8
GO TO SET-TWELVES-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
ADD 1 TO SUB-8
ADD 2 TO SUB-9
ADD 3 TO SUB-10
ADD 4 TO SUB-11
ADD 5 TO SUB-12.
SET-TWELVES-F.
IF SUB-8 NOT GREATER THAN MAX-SUB-4
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
GO TO SET-TWELVES-E.
IF SUB-7 NOT GREATER THAN MAX-SUB-5
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-TWELVES-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
ADD 1 TO SUB-7
ADD 2 TO SUB-8
ADD 3 TO SUB-9
ADD 4 TO SUB-10
ADD 5 TO SUB-11
ADD 6 TO SUB-12.
SET-TWELVES-G.
IF SUB-7 NOT GREATER THAN MAX-SUB-5
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
GO TO SET-TWELVES-F.
IF SUB-6 NOT GREATER THAN MAX-SUB-6
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-TWELVES-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8
ADD 4 TO SUB-9
ADD 5 TO SUB-10
ADD 6 TO SUB-11
ADD 7 TO SUB-12.
SET-TWELVES-H.
IF SUB-6 NOT GREATER THAN MAX-SUB-6
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
GO TO SET-TWELVES-G.
IF SUB-5 NOT GREATER THAN MAX-SUB-7
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-TWELVES-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8
ADD 5 TO SUB-9
ADD 6 TO SUB-10
ADD 7 TO SUB-11
ADD 8 TO SUB-12.
SET-TWELVES-I.
IF SUB-5 NOT GREATER THAN MAX-SUB-7
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
GO TO SET-TWELVES-H.
IF SUB-4 NOT GREATER THAN MAX-SUB-8
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-TWELVES-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8
ADD 6 TO SUB-9
ADD 7 TO SUB-10
ADD 8 TO SUB-11
ADD 9 TO SUB-12.
SET-TWELVES-J.
IF SUB-4 NOT GREATER THAN MAX-SUB-8
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
GO TO SET-TWELVES-I.
IF SUB-3 NOT GREATER THAN MAX-SUB-9
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-TWELVES-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
MOVE SUB-2 TO SUB-4
MOVE SUB-2 TO SUB-5
MOVE SUB-2 TO SUB-6
MOVE SUB-2 TO SUB-7
MOVE SUB-2 TO SUB-8
MOVE SUB-2 TO SUB-9
MOVE SUB-2 TO SUB-10
MOVE SUB-2 TO SUB-11
MOVE SUB-2 TO SUB-12
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8
ADD 7 TO SUB-9
ADD 8 TO SUB-10
ADD 9 TO SUB-11
ADD 10 TO SUB-12.
SET-TWELVES-K.
IF SUB-3 NOT GREATER THAN MAX-SUB-9
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
GO TO SET-TWELVES-J.
IF SUB-2 NOT GREATER THAN MAX-SUB-10
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-TWELVES-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
ADD 8 TO SUB-9
ADD 9 TO SUB-10
ADD 10 TO SUB-11
ADD 11 TO SUB-12
PERFORM TWELVES-SUB-RTN THRU TWELVES-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-11
GO TO SET-TWELVES-A.
SET-TWELVES-X. EXIT.
TWELVES-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
MOVE SUB-9 TO WS-SUB-9.
MOVE SUB-10 TO WS-SUB-10.
MOVE SUB-11 TO WS-SUB-11.
MOVE SUB-12 TO WS-SUB-12.
IF SUB-12 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-12 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8),
INT(SUB-9),
INT(SUB-10),
INT(SUB-11),
INT(SUB-12)
GIVING RESULT-12
ADD 1 TO SOLVE-TICK
IF RESULT-12 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-12-RTN THRU DISPLAY-12-RTN-X.
TWELVES-SUB-RTN-X. EXIT.
DISPLAY-12-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-9) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-10) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-11) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-12) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-12-RTN-X. EXIT.
SET-THIRTEENS.
IF TOTAL-ZERO EQUAL ZERO
PERFORM ELAPSED-TIME THRU ELAPSED-TIME-X.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
MOVE 9 TO SUB-9
MOVE 10 TO SUB-10
MOVE 11 TO SUB-11
MOVE 12 TO SUB-12
MOVE 13 TO SUB-13
IF MAX-SUB EQUAL 13
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
GO TO SET-THIRTEENS-X
ELSE
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X.
SET-THIRTEENS-A.
ADD 1 TO SUB-13.
IF SUB-13 NOT GREATER THAN MAX-SUB
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
GO TO SET-THIRTEENS-A
ELSE
ADD 1 TO SUB-12
MOVE SUB-12 TO SUB-13
ADD 1 TO SUB-13.
SET-THIRTEENS-B.
IF SUB-13 NOT GREATER THAN MAX-SUB
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
GO TO SET-THIRTEENS-A.
IF SUB-12 NOT GREATER THAN MAX-SUB-1
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
ADD 1 TO SUB-12
GO TO SET-THIRTEENS-A
ELSE
ADD 1 TO SUB-11
MOVE SUB-11 TO SUB-12
SUB-13
ADD 1 TO SUB-12
ADD 2 TO SUB-13.
SET-THIRTEENS-C.
IF SUB-12 NOT GREATER THAN MAX-SUB-1
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
GO TO SET-THIRTEENS-B.
IF SUB-11 NOT GREATER THAN MAX-SUB-2
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
ADD 1 TO SUB-11
GO TO SET-THIRTEENS-A
ELSE
ADD 1 TO SUB-10
MOVE SUB-10 TO SUB-11
SUB-12
SUB-13
ADD 1 TO SUB-11
ADD 2 TO SUB-12
ADD 3 TO SUB-13.
SET-THIRTEENS-D.
IF SUB-11 NOT GREATER THAN MAX-SUB-2
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
GO TO SET-THIRTEENS-C.
IF SUB-10 NOT GREATER THAN MAX-SUB-3
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
ADD 1 TO SUB-10
GO TO SET-THIRTEENS-A
ELSE
ADD 1 TO SUB-9
MOVE SUB-9 TO SUB-10
SUB-11
SUB-12
SUB-13
ADD 1 TO SUB-10
ADD 2 TO SUB-11
ADD 3 TO SUB-12
ADD 4 TO SUB-13.
SET-THIRTEENS-E.
IF SUB-10 NOT GREATER THAN MAX-SUB-3
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
GO TO SET-THIRTEENS-D.
IF SUB-9 NOT GREATER THAN MAX-SUB-4
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
ADD 1 TO SUB-9
GO TO SET-THIRTEENS-A
ELSE
ADD 1 TO SUB-8
MOVE SUB-8 TO SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
ADD 1 TO SUB-9
ADD 2 TO SUB-10
ADD 3 TO SUB-11
ADD 4 TO SUB-12
ADD 5 TO SUB-13.
SET-THIRTEENS-F.
IF SUB-9 NOT GREATER THAN MAX-SUB-4
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
GO TO SET-THIRTEENS-E.
IF SUB-8 NOT GREATER THAN MAX-SUB-5
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
ADD 1 TO SUB-8
GO TO SET-THIRTEENS-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
ADD 1 TO SUB-8
ADD 2 TO SUB-9
ADD 3 TO SUB-10
ADD 4 TO SUB-11
ADD 5 TO SUB-12
ADD 6 TO SUB-13.
SET-THIRTEENS-G.
IF SUB-8 NOT GREATER THAN MAX-SUB-5
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
GO TO SET-THIRTEENS-F.
IF SUB-7 NOT GREATER THAN MAX-SUB-6
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-THIRTEENS-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
ADD 1 TO SUB-7
ADD 2 TO SUB-8
ADD 3 TO SUB-9
ADD 4 TO SUB-10
ADD 5 TO SUB-11
ADD 6 TO SUB-12
ADD 7 TO SUB-13.
SET-THIRTEENS-H.
IF SUB-7 NOT GREATER THAN MAX-SUB-6
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
GO TO SET-THIRTEENS-G.
IF SUB-6 NOT GREATER THAN MAX-SUB-7
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-THIRTEENS-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8
ADD 4 TO SUB-9
ADD 5 TO SUB-10
ADD 6 TO SUB-11
ADD 7 TO SUB-12
ADD 8 TO SUB-13.
SET-THIRTEENS-I.
IF SUB-6 NOT GREATER THAN MAX-SUB-7
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
GO TO SET-THIRTEENS-H.
IF SUB-5 NOT GREATER THAN MAX-SUB-8
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-THIRTEENS-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8
ADD 5 TO SUB-9
ADD 6 TO SUB-10
ADD 7 TO SUB-11
ADD 8 TO SUB-12
ADD 9 TO SUB-13.
SET-THIRTEENS-J.
IF SUB-5 NOT GREATER THAN MAX-SUB-8
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
GO TO SET-THIRTEENS-I.
IF SUB-4 NOT GREATER THAN MAX-SUB-9
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-THIRTEENS-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8
ADD 6 TO SUB-9
ADD 7 TO SUB-10
ADD 8 TO SUB-11
ADD 9 TO SUB-12
ADD 10 TO SUB-13.
SET-THIRTEENS-K.
IF SUB-4 NOT GREATER THAN MAX-SUB-9
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
GO TO SET-THIRTEENS-J.
IF SUB-3 NOT GREATER THAN MAX-SUB-10
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-THIRTEENS-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
MOVE SUB-2 TO SUB-4
MOVE SUB-2 TO SUB-5
MOVE SUB-2 TO SUB-6
MOVE SUB-2 TO SUB-7
MOVE SUB-2 TO SUB-8
MOVE SUB-2 TO SUB-9
MOVE SUB-2 TO SUB-10
MOVE SUB-2 TO SUB-11
MOVE SUB-2 TO SUB-12
MOVE SUB-2 TO SUB-13
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8
ADD 7 TO SUB-9
ADD 8 TO SUB-10
ADD 9 TO SUB-11
ADD 10 TO SUB-12
ADD 11 TO SUB-13.
SET-THIRTEENS-L.
IF SUB-3 NOT GREATER THAN MAX-SUB-10
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
GO TO SET-THIRTEENS-K.
IF SUB-2 NOT GREATER THAN MAX-SUB-11
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-THIRTEENS-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
ADD 8 TO SUB-9
ADD 9 TO SUB-10
ADD 10 TO SUB-11
ADD 11 TO SUB-12
ADD 12 TO SUB-13
PERFORM THIRTEENS-SUB-RTN THRU THIRTEENS-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-12
GO TO SET-THIRTEENS-A.
SET-THIRTEENS-X. EXIT.
THIRTEENS-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
MOVE SUB-9 TO WS-SUB-9.
MOVE SUB-10 TO WS-SUB-10.
MOVE SUB-11 TO WS-SUB-11.
MOVE SUB-12 TO WS-SUB-12.
MOVE SUB-13 TO WS-SUB-13.
IF SUB-13 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-13 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8),
INT(SUB-9),
INT(SUB-10),
INT(SUB-11),
INT(SUB-12),
INT(SUB-13)
GIVING RESULT-13
ADD 1 TO SOLVE-TICK
IF RESULT-13 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-13-RTN THRU DISPLAY-13-RTN-X.
THIRTEENS-SUB-RTN-X. EXIT.
DISPLAY-13-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-9) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-10) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-11) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-12) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-13) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-13-RTN-X. EXIT.
SET-FOURTEENS.
IF TOTAL-ZERO EQUAL ZERO
PERFORM ELAPSED-TIME THRU ELAPSED-TIME-X.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
MOVE 9 TO SUB-9
MOVE 10 TO SUB-10
MOVE 11 TO SUB-11
MOVE 12 TO SUB-12
MOVE 13 TO SUB-13
MOVE 14 TO SUB-14
IF MAX-SUB EQUAL 14
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
GO TO SET-FOURTEENS-X
ELSE
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X.
SET-FOURTEENS-A.
ADD 1 TO SUB-14.
IF SUB-14 NOT GREATER THAN MAX-SUB
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
GO TO SET-FOURTEENS-A
ELSE
ADD 1 TO SUB-13
MOVE SUB-13 TO SUB-14
ADD 1 TO SUB-14.
SET-FOURTEENS-B.
IF SUB-14 NOT GREATER THAN MAX-SUB
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
GO TO SET-FOURTEENS-A.
IF SUB-13 NOT GREATER THAN MAX-SUB-1
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
ADD 1 TO SUB-13
GO TO SET-FOURTEENS-A
ELSE
ADD 1 TO SUB-12
MOVE SUB-12 TO SUB-13
SUB-14
ADD 1 TO SUB-13
ADD 2 TO SUB-14.
SET-FOURTEENS-C.
IF SUB-13 NOT GREATER THAN MAX-SUB-1
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
GO TO SET-FOURTEENS-B.
IF SUB-12 NOT GREATER THAN MAX-SUB-2
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
ADD 1 TO SUB-12
GO TO SET-FOURTEENS-A
ELSE
ADD 1 TO SUB-11
MOVE SUB-11 TO SUB-12
SUB-13
SUB-14
ADD 1 TO SUB-12
ADD 2 TO SUB-13
ADD 3 TO SUB-14.
SET-FOURTEENS-D.
IF SUB-12 NOT GREATER THAN MAX-SUB-2
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
GO TO SET-FOURTEENS-C.
IF SUB-11 NOT GREATER THAN MAX-SUB-3
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
ADD 1 TO SUB-11
GO TO SET-FOURTEENS-A
ELSE
ADD 1 TO SUB-10
MOVE SUB-10 TO SUB-11
SUB-12
SUB-13
SUB-14
ADD 1 TO SUB-11
ADD 2 TO SUB-12
ADD 3 TO SUB-13
ADD 4 TO SUB-14.
SET-FOURTEENS-E.
IF SUB-11 NOT GREATER THAN MAX-SUB-3
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
GO TO SET-FOURTEENS-D.
IF SUB-10 NOT GREATER THAN MAX-SUB-4
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
ADD 1 TO SUB-10
GO TO SET-FOURTEENS-A
ELSE
ADD 1 TO SUB-9
MOVE SUB-9 TO SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
ADD 1 TO SUB-10
ADD 2 TO SUB-11
ADD 3 TO SUB-12
ADD 4 TO SUB-13
ADD 5 TO SUB-14.
SET-FOURTEENS-F.
IF SUB-10 NOT GREATER THAN MAX-SUB-4
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
GO TO SET-FOURTEENS-E.
IF SUB-9 NOT GREATER THAN MAX-SUB-5
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
ADD 1 TO SUB-9
GO TO SET-FOURTEENS-A
ELSE
ADD 1 TO SUB-8
MOVE SUB-8 TO SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
ADD 1 TO SUB-9
ADD 2 TO SUB-10
ADD 3 TO SUB-11
ADD 4 TO SUB-12
ADD 5 TO SUB-13
ADD 6 TO SUB-14.
SET-FOURTEENS-G.
IF SUB-9 NOT GREATER THAN MAX-SUB-5
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
GO TO SET-FOURTEENS-F.
IF SUB-8 NOT GREATER THAN MAX-SUB-6
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
ADD 1 TO SUB-8
GO TO SET-FOURTEENS-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
ADD 1 TO SUB-8
ADD 2 TO SUB-9
ADD 3 TO SUB-10
ADD 4 TO SUB-11
ADD 5 TO SUB-12
ADD 6 TO SUB-13
ADD 7 TO SUB-14.
SET-FOURTEENS-H.
IF SUB-8 NOT GREATER THAN MAX-SUB-6
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
GO TO SET-FOURTEENS-G.
IF SUB-7 NOT GREATER THAN MAX-SUB-7
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-FOURTEENS-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
ADD 1 TO SUB-7
ADD 2 TO SUB-8
ADD 3 TO SUB-9
ADD 4 TO SUB-10
ADD 5 TO SUB-11
ADD 6 TO SUB-12
ADD 7 TO SUB-13
ADD 8 TO SUB-14.
SET-FOURTEENS-I.
IF SUB-7 NOT GREATER THAN MAX-SUB-7
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
GO TO SET-FOURTEENS-H.
IF SUB-6 NOT GREATER THAN MAX-SUB-8
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-FOURTEENS-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8
ADD 4 TO SUB-9
ADD 5 TO SUB-10
ADD 6 TO SUB-11
ADD 7 TO SUB-12
ADD 8 TO SUB-13
ADD 9 TO SUB-14.
SET-FOURTEENS-J.
IF SUB-6 NOT GREATER THAN MAX-SUB-8
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
GO TO SET-FOURTEENS-I.
IF SUB-5 NOT GREATER THAN MAX-SUB-9
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-FOURTEENS-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8
ADD 5 TO SUB-9
ADD 6 TO SUB-10
ADD 7 TO SUB-11
ADD 8 TO SUB-12
ADD 9 TO SUB-13
ADD 10 TO SUB-14.
SET-FOURTEENS-K.
IF SUB-5 NOT GREATER THAN MAX-SUB-9
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
GO TO SET-FOURTEENS-J.
IF SUB-4 NOT GREATER THAN MAX-SUB-10
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-FOURTEENS-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8
ADD 6 TO SUB-9
ADD 7 TO SUB-10
ADD 8 TO SUB-11
ADD 9 TO SUB-12
ADD 10 TO SUB-13
ADD 11 TO SUB-14.
SET-FOURTEENS-L.
IF SUB-4 NOT GREATER THAN MAX-SUB-10
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
GO TO SET-FOURTEENS-K.
IF SUB-3 NOT GREATER THAN MAX-SUB-11
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-FOURTEENS-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
MOVE SUB-2 TO SUB-4
MOVE SUB-2 TO SUB-5
MOVE SUB-2 TO SUB-6
MOVE SUB-2 TO SUB-7
MOVE SUB-2 TO SUB-8
MOVE SUB-2 TO SUB-9
MOVE SUB-2 TO SUB-10
MOVE SUB-2 TO SUB-11
MOVE SUB-2 TO SUB-12
MOVE SUB-2 TO SUB-13
MOVE SUB-2 TO SUB-14
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8
ADD 7 TO SUB-9
ADD 8 TO SUB-10
ADD 9 TO SUB-11
ADD 10 TO SUB-12
ADD 11 TO SUB-13
ADD 12 TO SUB-14.
SET-FOURTEENS-M.
IF SUB-3 NOT GREATER THAN MAX-SUB-11
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
GO TO SET-FOURTEENS-K.
IF SUB-2 NOT GREATER THAN MAX-SUB-12
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-FOURTEENS-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
ADD 8 TO SUB-9
ADD 9 TO SUB-10
ADD 10 TO SUB-11
ADD 11 TO SUB-12
ADD 12 TO SUB-13
ADD 13 TO SUB-14
PERFORM FOURTEENS-SUB-RTN THRU FOURTEENS-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-13
GO TO SET-FOURTEENS-A.
SET-FOURTEENS-X. EXIT.
FOURTEENS-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
MOVE SUB-9 TO WS-SUB-9.
MOVE SUB-10 TO WS-SUB-10.
MOVE SUB-11 TO WS-SUB-11.
MOVE SUB-12 TO WS-SUB-12.
MOVE SUB-13 TO WS-SUB-13.
MOVE SUB-14 TO WS-SUB-14.
IF SUB-14 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-14 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8),
INT(SUB-9),
INT(SUB-10),
INT(SUB-11),
INT(SUB-12),
INT(SUB-13),
INT(SUB-14)
GIVING RESULT-14
ADD 1 TO SOLVE-TICK
IF RESULT-14 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-14-RTN THRU DISPLAY-14-RTN-X.
FOURTEENS-SUB-RTN-X. EXIT.
DISPLAY-14-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-9) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-10) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-11) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-12) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-13) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-14) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-14-RTN-X. EXIT.
SET-FIFTEENS.
IF TOTAL-ZERO EQUAL ZERO
PERFORM ELAPSED-TIME THRU ELAPSED-TIME-X.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
MOVE 9 TO SUB-9
MOVE 10 TO SUB-10
MOVE 11 TO SUB-11
MOVE 12 TO SUB-12
MOVE 13 TO SUB-13
MOVE 14 TO SUB-14
MOVE 15 TO SUB-15
IF MAX-SUB EQUAL 15
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
GO TO SET-FIFTEENS-X
ELSE
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X.
SET-FIFTEENS-A.
ADD 1 TO SUB-15.
IF SUB-15 NOT GREATER THAN MAX-SUB
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
GO TO SET-FIFTEENS-A
ELSE
ADD 1 TO SUB-14
MOVE SUB-14 TO SUB-15
ADD 1 TO SUB-15.
SET-FIFTEENS-B.
IF SUB-15 NOT GREATER THAN MAX-SUB
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
GO TO SET-FIFTEENS-A.
IF SUB-14 NOT GREATER THAN MAX-SUB-1
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
ADD 1 TO SUB-14
GO TO SET-FIFTEENS-A
ELSE
ADD 1 TO SUB-13
MOVE SUB-13 TO SUB-14
MOVE SUB-13 TO SUB-15
ADD 1 TO SUB-14
ADD 2 TO SUB-15.
SET-FIFTEENS-C.
IF SUB-14 NOT GREATER THAN MAX-SUB-1
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
GO TO SET-FIFTEENS-B.
IF SUB-13 NOT GREATER THAN MAX-SUB-2
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
ADD 1 TO SUB-13
GO TO SET-FIFTEENS-A
ELSE
ADD 1 TO SUB-12
MOVE SUB-12 TO SUB-13
SUB-14
SUB-15
ADD 1 TO SUB-13
ADD 2 TO SUB-14
ADD 3 TO SUB-15.
SET-FIFTEENS-D.
IF SUB-13 NOT GREATER THAN MAX-SUB-2
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
GO TO SET-FIFTEENS-C.
IF SUB-12 NOT GREATER THAN MAX-SUB-3
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
ADD 1 TO SUB-12
GO TO SET-FIFTEENS-A
ELSE
ADD 1 TO SUB-11
MOVE SUB-11 TO SUB-12
SUB-13
SUB-14
SUB-15
ADD 1 TO SUB-12
ADD 2 TO SUB-13
ADD 3 TO SUB-14
ADD 4 TO SUB-15.
SET-FIFTEENS-E.
IF SUB-12 NOT GREATER THAN MAX-SUB-3
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
GO TO SET-FIFTEENS-D.
IF SUB-11 NOT GREATER THAN MAX-SUB-4
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
ADD 1 TO SUB-11
GO TO SET-FIFTEENS-A
ELSE
ADD 1 TO SUB-10
MOVE SUB-10 TO SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
ADD 1 TO SUB-11
ADD 2 TO SUB-12
ADD 3 TO SUB-13
ADD 4 TO SUB-14
ADD 5 TO SUB-15.
SET-FIFTEENS-F.
IF SUB-11 NOT GREATER THAN MAX-SUB-4
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
GO TO SET-FIFTEENS-E.
IF SUB-10 NOT GREATER THAN MAX-SUB-5
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
ADD 1 TO SUB-10
GO TO SET-FIFTEENS-A
ELSE
ADD 1 TO SUB-9
MOVE SUB-9 TO SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
ADD 1 TO SUB-10
ADD 2 TO SUB-11
ADD 3 TO SUB-12
ADD 4 TO SUB-13
ADD 5 TO SUB-14
ADD 6 TO SUB-15.
SET-FIFTEENS-G.
IF SUB-10 NOT GREATER THAN MAX-SUB-5
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
GO TO SET-FIFTEENS-F.
IF SUB-9 NOT GREATER THAN MAX-SUB-6
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
ADD 1 TO SUB-9
GO TO SET-FIFTEENS-A
ELSE
ADD 1 TO SUB-8
MOVE SUB-8 TO SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
ADD 1 TO SUB-9
ADD 2 TO SUB-10
ADD 3 TO SUB-11
ADD 4 TO SUB-12
ADD 5 TO SUB-13
ADD 6 TO SUB-14
ADD 7 TO SUB-15.
SET-FIFTEENS-H.
IF SUB-9 NOT GREATER THAN MAX-SUB-6
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
GO TO SET-FIFTEENS-G.
IF SUB-8 NOT GREATER THAN MAX-SUB-7
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
ADD 1 TO SUB-8
GO TO SET-FIFTEENS-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
ADD 1 TO SUB-8
ADD 2 TO SUB-9
ADD 3 TO SUB-10
ADD 4 TO SUB-11
ADD 5 TO SUB-12
ADD 6 TO SUB-13
ADD 7 TO SUB-14
ADD 8 TO SUB-15.
SET-FIFTEENS-I.
IF SUB-8 NOT GREATER THAN MAX-SUB-7
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
GO TO SET-FIFTEENS-H.
IF SUB-7 NOT GREATER THAN MAX-SUB-8
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-FIFTEENS-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
ADD 1 TO SUB-7
ADD 2 TO SUB-8
ADD 3 TO SUB-9
ADD 4 TO SUB-10
ADD 5 TO SUB-11
ADD 6 TO SUB-12
ADD 7 TO SUB-13
ADD 8 TO SUB-14
ADD 9 TO SUB-15.
SET-FIFTEENS-J.
IF SUB-7 NOT GREATER THAN MAX-SUB-8
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
GO TO SET-FIFTEENS-I.
IF SUB-6 NOT GREATER THAN MAX-SUB-9
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-FIFTEENS-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8
ADD 4 TO SUB-9
ADD 5 TO SUB-10
ADD 6 TO SUB-11
ADD 7 TO SUB-12
ADD 8 TO SUB-13
ADD 9 TO SUB-14
ADD 10 TO SUB-15.
SET-FIFTEENS-K.
IF SUB-6 NOT GREATER THAN MAX-SUB-9
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
GO TO SET-FIFTEENS-J.
IF SUB-5 NOT GREATER THAN MAX-SUB-10
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-FIFTEENS-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8
ADD 5 TO SUB-9
ADD 6 TO SUB-10
ADD 7 TO SUB-11
ADD 8 TO SUB-12
ADD 9 TO SUB-13
ADD 10 TO SUB-14
ADD 11 TO SUB-15.
SET-FIFTEENS-L.
IF SUB-5 NOT GREATER THAN MAX-SUB-10
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
GO TO SET-FIFTEENS-K.
IF SUB-4 NOT GREATER THAN MAX-SUB-11
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-FIFTEENS-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8
ADD 6 TO SUB-9
ADD 7 TO SUB-10
ADD 8 TO SUB-11
ADD 9 TO SUB-12
ADD 10 TO SUB-13
ADD 11 TO SUB-14
ADD 12 TO SUB-15.
SET-FIFTEENS-M.
IF SUB-4 NOT GREATER THAN MAX-SUB-11
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
GO TO SET-FIFTEENS-L.
IF SUB-3 NOT GREATER THAN MAX-SUB-12
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-FIFTEENS-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
MOVE SUB-2 TO SUB-4
MOVE SUB-2 TO SUB-5
MOVE SUB-2 TO SUB-6
MOVE SUB-2 TO SUB-7
MOVE SUB-2 TO SUB-8
MOVE SUB-2 TO SUB-9
MOVE SUB-2 TO SUB-10
MOVE SUB-2 TO SUB-11
MOVE SUB-2 TO SUB-12
MOVE SUB-2 TO SUB-13
MOVE SUB-2 TO SUB-14
MOVE SUB-2 TO SUB-15
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8
ADD 7 TO SUB-9
ADD 8 TO SUB-10
ADD 9 TO SUB-11
ADD 10 TO SUB-12
ADD 11 TO SUB-13
ADD 12 TO SUB-14
ADD 13 TO SUB-15.
SET-FIFTEENS-N.
IF SUB-3 NOT GREATER THAN MAX-SUB-12
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
GO TO SET-FIFTEENS-M.
IF SUB-2 NOT GREATER THAN MAX-SUB-13
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-FIFTEENS-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
ADD 8 TO SUB-9
ADD 9 TO SUB-10
ADD 10 TO SUB-11
ADD 11 TO SUB-12
ADD 12 TO SUB-13
ADD 13 TO SUB-14
ADD 14 TO SUB-15
PERFORM FIFTEENS-SUB-RTN THRU FIFTEENS-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-14
GO TO SET-FIFTEENS-A.
SET-FIFTEENS-X. EXIT.
FIFTEENS-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
MOVE SUB-9 TO WS-SUB-9.
MOVE SUB-10 TO WS-SUB-10.
MOVE SUB-11 TO WS-SUB-11.
MOVE SUB-12 TO WS-SUB-12.
MOVE SUB-13 TO WS-SUB-13.
MOVE SUB-14 TO WS-SUB-14.
MOVE SUB-15 TO WS-SUB-15.
IF SUB-15 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-15 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8),
INT(SUB-9),
INT(SUB-10),
INT(SUB-11),
INT(SUB-12),
INT(SUB-13),
INT(SUB-14),
INT(SUB-15)
GIVING RESULT-15
ADD 1 TO SOLVE-TICK
IF RESULT-15 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-15-RTN THRU DISPLAY-15-RTN-X.
FIFTEENS-SUB-RTN-X. EXIT.
DISPLAY-15-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-9) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-10) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-11) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-12) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-13) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-14) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
MOVE 1 TO SUB-L2
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-15) TO INT-DIS2(SUB-O, SUB-L2).
MOVE OUT-LINE2 (SUB-O) TO OUT-LINE (SUB-O).
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-15-RTN-X. EXIT.
SET-SIXTEENS.
IF TOTAL-ZERO EQUAL ZERO
PERFORM ELAPSED-TIME THRU ELAPSED-TIME-X.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
MOVE 9 TO SUB-9
MOVE 10 TO SUB-10
MOVE 11 TO SUB-11
MOVE 12 TO SUB-12
MOVE 13 TO SUB-13
MOVE 14 TO SUB-14
MOVE 15 TO SUB-15
MOVE 16 TO SUB-16
IF MAX-SUB EQUAL 16
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
GO TO SET-SIXTEENS-X
ELSE
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X.
SET-SIXTEENS-A.
ADD 1 TO SUB-16.
IF SUB-16 NOT GREATER THAN MAX-SUB
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
GO TO SET-SIXTEENS-A
ELSE
ADD 1 TO SUB-15
MOVE SUB-15 TO SUB-16
ADD 1 TO SUB-16.
SET-SIXTEENS-B.
IF SUB-16 NOT GREATER THAN MAX-SUB
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
GO TO SET-SIXTEENS-A.
IF SUB-15 NOT GREATER THAN MAX-SUB-1
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
ADD 1 TO SUB-15
GO TO SET-SIXTEENS-A
ELSE
ADD 1 TO SUB-14
MOVE SUB-14 TO SUB-15
MOVE SUB-14 TO SUB-16
ADD 1 TO SUB-15
ADD 2 TO SUB-16.
SET-SIXTEENS-C.
IF SUB-15 NOT GREATER THAN MAX-SUB-1
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
GO TO SET-SIXTEENS-B.
IF SUB-14 NOT GREATER THAN MAX-SUB-2
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
ADD 1 TO SUB-14
GO TO SET-SIXTEENS-A
ELSE
ADD 1 TO SUB-13
MOVE SUB-13 TO SUB-14
MOVE SUB-13 TO SUB-15
MOVE SUB-13 TO SUB-16
ADD 1 TO SUB-14
ADD 2 TO SUB-15
ADD 3 TO SUB-16.
SET-SIXTEENS-D.
IF SUB-14 NOT GREATER THAN MAX-SUB-2
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
GO TO SET-SIXTEENS-C.
IF SUB-13 NOT GREATER THAN MAX-SUB-3
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
ADD 1 TO SUB-13
GO TO SET-SIXTEENS-A
ELSE
ADD 1 TO SUB-12
MOVE SUB-12 TO SUB-13
SUB-14
SUB-15
SUB-16
ADD 1 TO SUB-13
ADD 2 TO SUB-14
ADD 3 TO SUB-15
ADD 4 TO SUB-16.
SET-SIXTEENS-E.
IF SUB-13 NOT GREATER THAN MAX-SUB-3
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
GO TO SET-SIXTEENS-D.
IF SUB-12 NOT GREATER THAN MAX-SUB-4
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
ADD 1 TO SUB-12
GO TO SET-SIXTEENS-A
ELSE
ADD 1 TO SUB-11
MOVE SUB-11 TO SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
ADD 1 TO SUB-12
ADD 2 TO SUB-13
ADD 3 TO SUB-14
ADD 4 TO SUB-15
ADD 5 TO SUB-16.
SET-SIXTEENS-F.
IF SUB-12 NOT GREATER THAN MAX-SUB-4
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
GO TO SET-SIXTEENS-E.
IF SUB-11 NOT GREATER THAN MAX-SUB-5
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
ADD 1 TO SUB-11
GO TO SET-SIXTEENS-A
ELSE
ADD 1 TO SUB-10
MOVE SUB-10 TO SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
ADD 1 TO SUB-11
ADD 2 TO SUB-12
ADD 3 TO SUB-13
ADD 4 TO SUB-14
ADD 5 TO SUB-15
ADD 6 TO SUB-16.
SET-SIXTEENS-G.
IF SUB-11 NOT GREATER THAN MAX-SUB-5
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
GO TO SET-SIXTEENS-F.
IF SUB-10 NOT GREATER THAN MAX-SUB-6
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
ADD 1 TO SUB-10
GO TO SET-SIXTEENS-A
ELSE
ADD 1 TO SUB-9
MOVE SUB-9 TO SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
ADD 1 TO SUB-10
ADD 2 TO SUB-11
ADD 3 TO SUB-12
ADD 4 TO SUB-13
ADD 5 TO SUB-14
ADD 6 TO SUB-15
ADD 7 TO SUB-16.
SET-SIXTEENS-H.
IF SUB-10 NOT GREATER THAN MAX-SUB-6
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
GO TO SET-SIXTEENS-G.
IF SUB-9 NOT GREATER THAN MAX-SUB-7
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
ADD 1 TO SUB-9
GO TO SET-SIXTEENS-A
ELSE
ADD 1 TO SUB-8
MOVE SUB-8 TO SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
ADD 1 TO SUB-9
ADD 2 TO SUB-10
ADD 3 TO SUB-11
ADD 4 TO SUB-12
ADD 5 TO SUB-13
ADD 6 TO SUB-14
ADD 7 TO SUB-15
ADD 8 TO SUB-16.
SET-SIXTEENS-I.
IF SUB-9 NOT GREATER THAN MAX-SUB-7
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
GO TO SET-SIXTEENS-H.
IF SUB-8 NOT GREATER THAN MAX-SUB-8
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
ADD 1 TO SUB-8
GO TO SET-SIXTEENS-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
ADD 1 TO SUB-8
ADD 2 TO SUB-9
ADD 3 TO SUB-10
ADD 4 TO SUB-11
ADD 5 TO SUB-12
ADD 6 TO SUB-13
ADD 7 TO SUB-14
ADD 8 TO SUB-15
ADD 9 TO SUB-16.
SET-SIXTEENS-J.
IF SUB-8 NOT GREATER THAN MAX-SUB-8
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
GO TO SET-SIXTEENS-I.
IF SUB-7 NOT GREATER THAN MAX-SUB-9
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-SIXTEENS-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
ADD 1 TO SUB-7
ADD 2 TO SUB-8
ADD 3 TO SUB-9
ADD 4 TO SUB-10
ADD 5 TO SUB-11
ADD 6 TO SUB-12
ADD 7 TO SUB-13
ADD 8 TO SUB-14
ADD 9 TO SUB-15
ADD 10 TO SUB-16.
SET-SIXTEENS-K.
IF SUB-7 NOT GREATER THAN MAX-SUB-9
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
GO TO SET-SIXTEENS-J.
IF SUB-6 NOT GREATER THAN MAX-SUB-10
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-SIXTEENS-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8
ADD 4 TO SUB-9
ADD 5 TO SUB-10
ADD 6 TO SUB-11
ADD 7 TO SUB-12
ADD 8 TO SUB-14
ADD 9 TO SUB-15
ADD 10 TO SUB-15
ADD 11 TO SUB-16.
SET-SIXTEENS-L.
IF SUB-6 NOT GREATER THAN MAX-SUB-10
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
GO TO SET-SIXTEENS-K.
IF SUB-5 NOT GREATER THAN MAX-SUB-11
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-SIXTEENS-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8
ADD 5 TO SUB-9
ADD 6 TO SUB-10
ADD 7 TO SUB-11
ADD 8 TO SUB-12
ADD 9 TO SUB-13
ADD 10 TO SUB-14
ADD 11 TO SUB-15
ADD 12 TO SUB-16.
SET-SIXTEENS-M.
IF SUB-5 NOT GREATER THAN MAX-SUB-11
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
GO TO SET-SIXTEENS-L.
IF SUB-4 NOT GREATER THAN MAX-SUB-12
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-SIXTEENS-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8
ADD 6 TO SUB-9
ADD 7 TO SUB-10
ADD 8 TO SUB-11
ADD 9 TO SUB-12
ADD 10 TO SUB-13
ADD 11 TO SUB-14
ADD 12 TO SUB-15
ADD 13 TO SUB-16.
SET-SIXTEENS-N.
IF SUB-4 NOT GREATER THAN MAX-SUB-12
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
GO TO SET-SIXTEENS-M.
IF SUB-3 NOT GREATER THAN MAX-SUB-13
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-SIXTEENS-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
MOVE SUB-2 TO SUB-4
MOVE SUB-2 TO SUB-5
MOVE SUB-2 TO SUB-6
MOVE SUB-2 TO SUB-7
MOVE SUB-2 TO SUB-8
MOVE SUB-2 TO SUB-9
MOVE SUB-2 TO SUB-10
MOVE SUB-2 TO SUB-11
MOVE SUB-2 TO SUB-12
MOVE SUB-2 TO SUB-13
MOVE SUB-2 TO SUB-14
MOVE SUB-2 TO SUB-15
MOVE SUB-2 TO SUB-16
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8
ADD 7 TO SUB-9
ADD 8 TO SUB-10
ADD 9 TO SUB-11
ADD 10 TO SUB-12
ADD 11 TO SUB-13
ADD 12 TO SUB-14
ADD 13 TO SUB-15
ADD 14 TO SUB-16.
SET-SIXTEENS-O.
IF SUB-3 NOT GREATER THAN MAX-SUB-13
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
GO TO SET-SIXTEENS-M.
IF SUB-2 NOT GREATER THAN MAX-SUB-14
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-SIXTEENS-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
ADD 8 TO SUB-9
ADD 9 TO SUB-10
ADD 10 TO SUB-11
ADD 11 TO SUB-12
ADD 12 TO SUB-13
ADD 13 TO SUB-14
ADD 14 TO SUB-15
ADD 15 TO SUB-16
PERFORM SIXTEENS-SUB-RTN THRU SIXTEENS-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-15
GO TO SET-SIXTEENS-A.
SET-SIXTEENS-X. EXIT.
SIXTEENS-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
MOVE SUB-9 TO WS-SUB-9.
MOVE SUB-10 TO WS-SUB-10.
MOVE SUB-11 TO WS-SUB-11.
MOVE SUB-12 TO WS-SUB-12.
MOVE SUB-13 TO WS-SUB-13.
MOVE SUB-14 TO WS-SUB-14.
MOVE SUB-15 TO WS-SUB-15.
MOVE SUB-16 TO WS-SUB-16.
IF SUB-16 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-16 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8),
INT(SUB-9),
INT(SUB-10),
INT(SUB-11),
INT(SUB-12),
INT(SUB-13),
INT(SUB-14),
INT(SUB-15),
INT(SUB-16)
GIVING RESULT-16
ADD 1 TO SOLVE-TICK
IF RESULT-16 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-16-RTN THRU DISPLAY-16-RTN-X.
SIXTEENS-SUB-RTN-X. EXIT.
DISPLAY-16-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-9) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-10) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-11) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-12) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-13) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-14) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
MOVE 1 TO SUB-L2
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-15) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-16) TO INT-DIS2(SUB-O, SUB-L2).
MOVE OUT-LINE2 (SUB-O) TO OUT-LINE (SUB-O).
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-16-RTN-X. EXIT.
SET-SEVENTEENS.
IF TOTAL-ZERO EQUAL ZERO
PERFORM ELAPSED-TIME THRU ELAPSED-TIME-X.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
MOVE 9 TO SUB-9
MOVE 10 TO SUB-10
MOVE 11 TO SUB-11
MOVE 12 TO SUB-12
MOVE 13 TO SUB-13
MOVE 14 TO SUB-14
MOVE 15 TO SUB-15
MOVE 16 TO SUB-16
MOVE 17 TO SUB-17
IF MAX-SUB EQUAL 17
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-X
ELSE
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X.
SET-SEVENTEENS-A.
ADD 1 TO SUB-17.
IF SUB-17 NOT GREATER THAN MAX-SUB
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-A
ELSE
ADD 1 TO SUB-16
MOVE SUB-16 TO SUB-17
ADD 1 TO SUB-17.
SET-SEVENTEENS-B.
IF SUB-17 NOT GREATER THAN MAX-SUB
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-A.
IF SUB-16 NOT GREATER THAN MAX-SUB-1
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
ADD 1 TO SUB-16
GO TO SET-SEVENTEENS-A
ELSE
ADD 1 TO SUB-15
MOVE SUB-15 TO SUB-16
MOVE SUB-15 TO SUB-17
ADD 1 TO SUB-16
ADD 2 TO SUB-17.
SET-SEVENTEENS-C.
IF SUB-16 NOT GREATER THAN MAX-SUB-1
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-B.
IF SUB-15 NOT GREATER THAN MAX-SUB-2
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
ADD 1 TO SUB-15
GO TO SET-SEVENTEENS-A
ELSE
ADD 1 TO SUB-14
MOVE SUB-14 TO SUB-15
MOVE SUB-14 TO SUB-16
MOVE SUB-14 TO SUB-17
ADD 1 TO SUB-15
ADD 2 TO SUB-16
ADD 3 TO SUB-17.
SET-SEVENTEENS-D.
IF SUB-15 NOT GREATER THAN MAX-SUB-2
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-C.
IF SUB-14 NOT GREATER THAN MAX-SUB-3
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
ADD 1 TO SUB-14
GO TO SET-SEVENTEENS-A
ELSE
ADD 1 TO SUB-13
MOVE SUB-13 TO SUB-14
MOVE SUB-13 TO SUB-15
MOVE SUB-13 TO SUB-16
MOVE SUB-13 TO SUB-17
ADD 1 TO SUB-14
ADD 2 TO SUB-15
ADD 3 TO SUB-16
ADD 4 TO SUB-17.
SET-SEVENTEENS-E.
IF SUB-14 NOT GREATER THAN MAX-SUB-3
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-D.
IF SUB-13 NOT GREATER THAN MAX-SUB-4
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
ADD 1 TO SUB-13
GO TO SET-SEVENTEENS-A
ELSE
ADD 1 TO SUB-12
MOVE SUB-12 TO SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
ADD 1 TO SUB-13
ADD 2 TO SUB-14
ADD 3 TO SUB-15
ADD 4 TO SUB-16
ADD 5 TO SUB-17.
SET-SEVENTEENS-F.
IF SUB-13 NOT GREATER THAN MAX-SUB-4
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-E.
IF SUB-12 NOT GREATER THAN MAX-SUB-5
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
ADD 1 TO SUB-12
GO TO SET-SEVENTEENS-A
ELSE
ADD 1 TO SUB-11
MOVE SUB-11 TO SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
ADD 1 TO SUB-12
ADD 2 TO SUB-13
ADD 3 TO SUB-14
ADD 4 TO SUB-15
ADD 5 TO SUB-16
ADD 6 TO SUB-17.
SET-SEVENTEENS-G.
IF SUB-12 NOT GREATER THAN MAX-SUB-5
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-F.
IF SUB-11 NOT GREATER THAN MAX-SUB-6
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
ADD 1 TO SUB-11
GO TO SET-SEVENTEENS-A
ELSE
ADD 1 TO SUB-10
MOVE SUB-10 TO SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
ADD 1 TO SUB-11
ADD 2 TO SUB-12
ADD 3 TO SUB-13
ADD 4 TO SUB-14
ADD 5 TO SUB-15
ADD 6 TO SUB-16
ADD 7 TO SUB-17.
SET-SEVENTEENS-H.
IF SUB-11 NOT GREATER THAN MAX-SUB-6
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-G.
IF SUB-10 NOT GREATER THAN MAX-SUB-7
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
ADD 1 TO SUB-10
GO TO SET-SEVENTEENS-A
ELSE
ADD 1 TO SUB-9
MOVE SUB-9 TO SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
ADD 1 TO SUB-10
ADD 2 TO SUB-11
ADD 3 TO SUB-12
ADD 4 TO SUB-13
ADD 5 TO SUB-14
ADD 6 TO SUB-15
ADD 7 TO SUB-16
ADD 8 TO SUB-17.
SET-SEVENTEENS-I.
IF SUB-10 NOT GREATER THAN MAX-SUB-7
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-H.
IF SUB-9 NOT GREATER THAN MAX-SUB-8
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
ADD 1 TO SUB-9
GO TO SET-SEVENTEENS-A
ELSE
ADD 1 TO SUB-8
MOVE SUB-8 TO SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
ADD 1 TO SUB-9
ADD 2 TO SUB-10
ADD 3 TO SUB-11
ADD 4 TO SUB-12
ADD 5 TO SUB-13
ADD 6 TO SUB-14
ADD 7 TO SUB-15
ADD 8 TO SUB-16
ADD 9 TO SUB-17.
SET-SEVENTEENS-J.
IF SUB-9 NOT GREATER THAN MAX-SUB-8
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-I.
IF SUB-8 NOT GREATER THAN MAX-SUB-9
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
ADD 1 TO SUB-8
GO TO SET-SEVENTEENS-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
ADD 1 TO SUB-8
ADD 2 TO SUB-9
ADD 3 TO SUB-10
ADD 4 TO SUB-11
ADD 5 TO SUB-12
ADD 6 TO SUB-13
ADD 7 TO SUB-14
ADD 8 TO SUB-15
ADD 9 TO SUB-16
ADD 10 TO SUB-17.
SET-SEVENTEENS-K.
IF SUB-8 NOT GREATER THAN MAX-SUB-9
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-J.
IF SUB-7 NOT GREATER THAN MAX-SUB-10
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-SEVENTEENS-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
ADD 1 TO SUB-7
ADD 2 TO SUB-8
ADD 3 TO SUB-9
ADD 4 TO SUB-10
ADD 5 TO SUB-11
ADD 6 TO SUB-12
ADD 7 TO SUB-13
ADD 8 TO SUB-14
ADD 9 TO SUB-15
ADD 10 TO SUB-16
ADD 11 TO SUB-17.
SET-SEVENTEENS-L.
IF SUB-7 NOT GREATER THAN MAX-SUB-10
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-K.
IF SUB-6 NOT GREATER THAN MAX-SUB-11
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-SEVENTEENS-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8
ADD 4 TO SUB-9
ADD 5 TO SUB-10
ADD 6 TO SUB-11
ADD 7 TO SUB-12
ADD 8 TO SUB-13
ADD 9 TO SUB-14
ADD 10 TO SUB-15
ADD 11 TO SUB-16
ADD 12 TO SUB-17.
SET-SEVENTEENS-M.
IF SUB-6 NOT GREATER THAN MAX-SUB-11
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-L.
IF SUB-5 NOT GREATER THAN MAX-SUB-12
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-SEVENTEENS-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8
ADD 5 TO SUB-9
ADD 6 TO SUB-10
ADD 7 TO SUB-11
ADD 8 TO SUB-12
ADD 9 TO SUB-13
ADD 10 TO SUB-14
ADD 11 TO SUB-15
ADD 12 TO SUB-16
ADD 13 TO SUB-17.
SET-SEVENTEENS-N.
IF SUB-5 NOT GREATER THAN MAX-SUB-12
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-M.
IF SUB-4 NOT GREATER THAN MAX-SUB-13
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-SEVENTEENS-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8
ADD 6 TO SUB-9
ADD 7 TO SUB-10
ADD 8 TO SUB-11
ADD 9 TO SUB-12
ADD 10 TO SUB-13
ADD 11 TO SUB-14
ADD 12 TO SUB-15
ADD 13 TO SUB-16
ADD 14 TO SUB-17.
SET-SEVENTEENS-O.
IF SUB-4 NOT GREATER THAN MAX-SUB-13
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-N.
IF SUB-3 NOT GREATER THAN MAX-SUB-14
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-SEVENTEENS-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
MOVE SUB-2 TO SUB-4
MOVE SUB-2 TO SUB-5
MOVE SUB-2 TO SUB-6
MOVE SUB-2 TO SUB-7
MOVE SUB-2 TO SUB-8
MOVE SUB-2 TO SUB-9
MOVE SUB-2 TO SUB-10
MOVE SUB-2 TO SUB-11
MOVE SUB-2 TO SUB-12
MOVE SUB-2 TO SUB-13
MOVE SUB-2 TO SUB-14
MOVE SUB-2 TO SUB-15
MOVE SUB-2 TO SUB-16
MOVE SUB-2 TO SUB-17
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8
ADD 7 TO SUB-9
ADD 8 TO SUB-10
ADD 9 TO SUB-11
ADD 10 TO SUB-12
ADD 11 TO SUB-13
ADD 12 TO SUB-14
ADD 13 TO SUB-15
ADD 14 TO SUB-16
ADD 15 TO SUB-17.
SET-SEVENTEENS-P.
IF SUB-3 NOT GREATER THAN MAX-SUB-14
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
GO TO SET-SEVENTEENS-O.
IF SUB-2 NOT GREATER THAN MAX-SUB-15
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-SEVENTEENS-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
ADD 8 TO SUB-9
ADD 9 TO SUB-10
ADD 10 TO SUB-11
ADD 11 TO SUB-12
ADD 12 TO SUB-13
ADD 13 TO SUB-14
ADD 14 TO SUB-15
ADD 15 TO SUB-16
ADD 16 TO SUB-17
PERFORM SEVENTEENS-SUB-RTN THRU SEVENTEENS-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-16
GO TO SET-SEVENTEENS-A.
SET-SEVENTEENS-X. EXIT.
SEVENTEENS-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
MOVE SUB-9 TO WS-SUB-9.
MOVE SUB-10 TO WS-SUB-10.
MOVE SUB-11 TO WS-SUB-11.
MOVE SUB-12 TO WS-SUB-12.
MOVE SUB-13 TO WS-SUB-13.
MOVE SUB-14 TO WS-SUB-14.
MOVE SUB-15 TO WS-SUB-15.
MOVE SUB-16 TO WS-SUB-16.
MOVE SUB-17 TO WS-SUB-17.
IF SUB-17 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16 AND
SUB-16 < SUB-17
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-17 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16 AND
SUB-16 < SUB-17)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8),
INT(SUB-9),
INT(SUB-10),
INT(SUB-11),
INT(SUB-12),
INT(SUB-13),
INT(SUB-14),
INT(SUB-15),
INT(SUB-16),
INT(SUB-17)
GIVING RESULT-17
ADD 1 TO SOLVE-TICK
IF RESULT-17 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-17-RTN THRU DISPLAY-17-RTN-X.
SEVENTEENS-SUB-RTN-X. EXIT.
DISPLAY-17-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-9) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-10) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-11) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-12) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-13) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-14) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
MOVE 1 TO SUB-L2
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-15) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-16) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-17) TO INT-DIS2(SUB-O, SUB-L2).
MOVE OUT-LINE2 (SUB-O) TO OUT-LINE (SUB-O).
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-17-RTN-X. EXIT.
SET-EIGHTEENS.
IF TOTAL-ZERO EQUAL ZERO
PERFORM ELAPSED-TIME THRU ELAPSED-TIME-X.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
MOVE 9 TO SUB-9
MOVE 10 TO SUB-10
MOVE 11 TO SUB-11
MOVE 12 TO SUB-12
MOVE 13 TO SUB-13
MOVE 14 TO SUB-14
MOVE 15 TO SUB-15
MOVE 16 TO SUB-16
MOVE 17 TO SUB-17
MOVE 18 TO SUB-18
IF MAX-SUB EQUAL 18
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-X
ELSE
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X.
SET-EIGHTEENS-A.
ADD 1 TO SUB-18.
IF SUB-18 NOT GREATER THAN MAX-SUB
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-17
MOVE SUB-17 TO SUB-18
ADD 1 TO SUB-18.
SET-EIGHTEENS-B.
IF SUB-18 NOT GREATER THAN MAX-SUB
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-A.
IF SUB-17 NOT GREATER THAN MAX-SUB-1
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
ADD 1 TO SUB-17
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-16
MOVE SUB-16 TO SUB-17
MOVE SUB-16 TO SUB-18
ADD 1 TO SUB-17
ADD 2 TO SUB-18.
SET-EIGHTEENS-C.
IF SUB-17 NOT GREATER THAN MAX-SUB-1
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-B.
IF SUB-16 NOT GREATER THAN MAX-SUB-2
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
ADD 1 TO SUB-16
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-15
MOVE SUB-15 TO SUB-16
MOVE SUB-15 TO SUB-17
MOVE SUB-15 TO SUB-18
ADD 1 TO SUB-16
ADD 2 TO SUB-17
ADD 3 TO SUB-18.
SET-EIGHTEENS-D.
IF SUB-16 NOT GREATER THAN MAX-SUB-2
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-C.
IF SUB-15 NOT GREATER THAN MAX-SUB-3
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
ADD 1 TO SUB-15
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-14
MOVE SUB-14 TO SUB-15
MOVE SUB-14 TO SUB-16
MOVE SUB-14 TO SUB-17
MOVE SUB-14 TO SUB-18
ADD 1 TO SUB-15
ADD 2 TO SUB-16
ADD 3 TO SUB-17
ADD 4 TO SUB-18.
SET-EIGHTEENS-E.
IF SUB-15 NOT GREATER THAN MAX-SUB-3
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-D.
IF SUB-14 NOT GREATER THAN MAX-SUB-4
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
ADD 1 TO SUB-14
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-13
MOVE SUB-13 TO SUB-14
MOVE SUB-13 TO SUB-15
MOVE SUB-13 TO SUB-16
MOVE SUB-13 TO SUB-17
MOVE SUB-13 TO SUB-18
ADD 1 TO SUB-14
ADD 2 TO SUB-15
ADD 3 TO SUB-16
ADD 4 TO SUB-17
ADD 5 TO SUB-18.
SET-EIGHTEENS-F.
IF SUB-14 NOT GREATER THAN MAX-SUB-4
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-E.
IF SUB-13 NOT GREATER THAN MAX-SUB-5
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
ADD 1 TO SUB-13
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-12
MOVE SUB-12 TO SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
ADD 1 TO SUB-13
ADD 2 TO SUB-14
ADD 3 TO SUB-15
ADD 4 TO SUB-16
ADD 5 TO SUB-17
ADD 6 TO SUB-18.
SET-EIGHTEENS-G.
IF SUB-13 NOT GREATER THAN MAX-SUB-5
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-F.
IF SUB-12 NOT GREATER THAN MAX-SUB-6
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
ADD 1 TO SUB-12
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-11
MOVE SUB-11 TO SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
ADD 1 TO SUB-12
ADD 2 TO SUB-13
ADD 3 TO SUB-14
ADD 4 TO SUB-15
ADD 5 TO SUB-16
ADD 6 TO SUB-17
ADD 7 TO SUB-18.
SET-EIGHTEENS-H.
IF SUB-12 NOT GREATER THAN MAX-SUB-6
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-G.
IF SUB-11 NOT GREATER THAN MAX-SUB-7
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
ADD 1 TO SUB-11
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-10
MOVE SUB-10 TO SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
ADD 1 TO SUB-11
ADD 2 TO SUB-12
ADD 3 TO SUB-13
ADD 4 TO SUB-14
ADD 5 TO SUB-15
ADD 6 TO SUB-16
ADD 7 TO SUB-17
ADD 8 TO SUB-18.
SET-EIGHTEENS-I.
IF SUB-11 NOT GREATER THAN MAX-SUB-7
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-H.
IF SUB-10 NOT GREATER THAN MAX-SUB-8
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
ADD 1 TO SUB-10
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-9
MOVE SUB-9 TO SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
ADD 1 TO SUB-10
ADD 2 TO SUB-11
ADD 3 TO SUB-12
ADD 4 TO SUB-13
ADD 5 TO SUB-14
ADD 6 TO SUB-15
ADD 7 TO SUB-16
ADD 8 TO SUB-17
ADD 9 TO SUB-18.
SET-EIGHTEENS-J.
IF SUB-10 NOT GREATER THAN MAX-SUB-8
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-I.
IF SUB-9 NOT GREATER THAN MAX-SUB-9
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
ADD 1 TO SUB-9
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-8
MOVE SUB-8 TO SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
ADD 1 TO SUB-9
ADD 2 TO SUB-10
ADD 3 TO SUB-11
ADD 4 TO SUB-12
ADD 5 TO SUB-13
ADD 6 TO SUB-14
ADD 7 TO SUB-15
ADD 8 TO SUB-16
ADD 9 TO SUB-17
ADD 10 TO SUB-18.
SET-EIGHTEENS-K.
IF SUB-9 NOT GREATER THAN MAX-SUB-9
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-J.
IF SUB-8 NOT GREATER THAN MAX-SUB-10
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
ADD 1 TO SUB-8
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
ADD 1 TO SUB-8
ADD 2 TO SUB-9
ADD 3 TO SUB-10
ADD 4 TO SUB-11
ADD 5 TO SUB-12
ADD 6 TO SUB-13
ADD 7 TO SUB-14
ADD 8 TO SUB-15
ADD 9 TO SUB-16
ADD 10 TO SUB-17
ADD 11 TO SUB-18.
SET-EIGHTEENS-L.
IF SUB-8 NOT GREATER THAN MAX-SUB-10
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-K.
IF SUB-7 NOT GREATER THAN MAX-SUB-11
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
ADD 1 TO SUB-7
ADD 2 TO SUB-8
ADD 3 TO SUB-9
ADD 4 TO SUB-10
ADD 5 TO SUB-11
ADD 6 TO SUB-12
ADD 7 TO SUB-13
ADD 8 TO SUB-14
ADD 9 TO SUB-15
ADD 10 TO SUB-16
ADD 11 TO SUB-17
ADD 12 TO SUB-18.
SET-EIGHTEENS-M.
IF SUB-7 NOT GREATER THAN MAX-SUB-11
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-L.
IF SUB-6 NOT GREATER THAN MAX-SUB-12
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8
ADD 4 TO SUB-9
ADD 5 TO SUB-10
ADD 6 TO SUB-11
ADD 7 TO SUB-12
ADD 8 TO SUB-13
ADD 9 TO SUB-14
ADD 10 TO SUB-15
ADD 11 TO SUB-16
ADD 12 TO SUB-17
ADD 13 TO SUB-18.
SET-EIGHTEENS-N.
IF SUB-6 NOT GREATER THAN MAX-SUB-12
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-M.
IF SUB-5 NOT GREATER THAN MAX-SUB-13
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8
ADD 5 TO SUB-9
ADD 6 TO SUB-10
ADD 7 TO SUB-11
ADD 8 TO SUB-12
ADD 9 TO SUB-13
ADD 10 TO SUB-14
ADD 11 TO SUB-15
ADD 12 TO SUB-16
ADD 13 TO SUB-17
ADD 14 TO SUB-18.
SET-EIGHTEENS-O.
IF SUB-5 NOT GREATER THAN MAX-SUB-13
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-N.
IF SUB-4 NOT GREATER THAN MAX-SUB-14
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8
ADD 6 TO SUB-9
ADD 7 TO SUB-10
ADD 8 TO SUB-11
ADD 9 TO SUB-12
ADD 10 TO SUB-13
ADD 11 TO SUB-14
ADD 12 TO SUB-15
ADD 13 TO SUB-16
ADD 14 TO SUB-17
ADD 15 TO SUB-18.
SET-EIGHTEENS-P.
IF SUB-4 NOT GREATER THAN MAX-SUB-14
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-O.
IF SUB-3 NOT GREATER THAN MAX-SUB-15
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
MOVE SUB-2 TO SUB-4
MOVE SUB-2 TO SUB-5
MOVE SUB-2 TO SUB-6
MOVE SUB-2 TO SUB-7
MOVE SUB-2 TO SUB-8
MOVE SUB-2 TO SUB-9
MOVE SUB-2 TO SUB-10
MOVE SUB-2 TO SUB-11
MOVE SUB-2 TO SUB-12
MOVE SUB-2 TO SUB-13
MOVE SUB-2 TO SUB-14
MOVE SUB-2 TO SUB-15
MOVE SUB-2 TO SUB-16
MOVE SUB-2 TO SUB-17
MOVE SUB-2 TO SUB-18
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8
ADD 7 TO SUB-9
ADD 8 TO SUB-10
ADD 9 TO SUB-11
ADD 10 TO SUB-12
ADD 11 TO SUB-13
ADD 12 TO SUB-14
ADD 13 TO SUB-15
ADD 14 TO SUB-16
ADD 15 TO SUB-17
ADD 16 TO SUB-18.
SET-EIGHTEENS-Q.
IF SUB-3 NOT GREATER THAN MAX-SUB-15
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
GO TO SET-EIGHTEENS-P.
IF SUB-2 NOT GREATER THAN MAX-SUB-16
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-EIGHTEENS-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
ADD 8 TO SUB-9
ADD 9 TO SUB-10
ADD 10 TO SUB-11
ADD 11 TO SUB-12
ADD 12 TO SUB-13
ADD 13 TO SUB-14
ADD 14 TO SUB-15
ADD 15 TO SUB-16
ADD 16 TO SUB-17
ADD 17 TO SUB-18
PERFORM EIGHTEENS-SUB-RTN THRU EIGHTEENS-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-17
GO TO SET-EIGHTEENS-A.
SET-EIGHTEENS-X. EXIT.
EIGHTEENS-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
MOVE SUB-9 TO WS-SUB-9.
MOVE SUB-10 TO WS-SUB-10.
MOVE SUB-11 TO WS-SUB-11.
MOVE SUB-12 TO WS-SUB-12.
MOVE SUB-13 TO WS-SUB-13.
MOVE SUB-14 TO WS-SUB-14.
MOVE SUB-15 TO WS-SUB-15.
MOVE SUB-16 TO WS-SUB-16.
MOVE SUB-17 TO WS-SUB-17.
MOVE SUB-18 TO WS-SUB-18.
IF SUB-18 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16 AND
SUB-16 < SUB-17 AND
SUB-17 < SUB-18
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-18 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16 AND
SUB-16 < SUB-17 AND
SUB-17 < SUB-18)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8),
INT(SUB-9),
INT(SUB-10),
INT(SUB-11),
INT(SUB-12),
INT(SUB-13),
INT(SUB-14),
INT(SUB-15),
INT(SUB-16),
INT(SUB-17),
INT(SUB-18)
GIVING RESULT-18
ADD 1 TO SOLVE-TICK
IF RESULT-18 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-18-RTN THRU DISPLAY-18-RTN-X.
EIGHTEENS-SUB-RTN-X. EXIT.
DISPLAY-18-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-9) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-10) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-11) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-12) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-13) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-14) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
MOVE 1 TO SUB-L2
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-15) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-16) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-17) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-18) TO INT-DIS2(SUB-O, SUB-L2).
MOVE OUT-LINE2 (SUB-O) TO OUT-LINE (SUB-O).
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-18-RTN-X. EXIT.
SET-NINETEENS.
IF TOTAL-ZERO EQUAL ZERO
PERFORM ELAPSED-TIME THRU ELAPSED-TIME-X.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
MOVE 9 TO SUB-9
MOVE 10 TO SUB-10
MOVE 11 TO SUB-11
MOVE 12 TO SUB-12
MOVE 13 TO SUB-13
MOVE 14 TO SUB-14
MOVE 15 TO SUB-15
MOVE 16 TO SUB-16
MOVE 17 TO SUB-17
MOVE 18 TO SUB-18
MOVE 19 TO SUB-19
IF MAX-SUB EQUAL 19
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-X
ELSE
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X.
SET-NINETEENS-A.
ADD 1 TO SUB-19.
IF SUB-19 NOT GREATER THAN MAX-SUB
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-18
MOVE SUB-18 TO SUB-19
ADD 1 TO SUB-19.
SET-NINETEENS-B.
IF SUB-19 NOT GREATER THAN MAX-SUB
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-A.
IF SUB-18 NOT GREATER THAN MAX-SUB-1
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-18
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-17
MOVE SUB-17 TO SUB-18
MOVE SUB-17 TO SUB-19
ADD 1 TO SUB-18
ADD 2 TO SUB-19.
SET-NINETEENS-C.
IF SUB-18 NOT GREATER THAN MAX-SUB-1
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-B.
IF SUB-17 NOT GREATER THAN MAX-SUB-2
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-17
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-16
MOVE SUB-16 TO SUB-17
MOVE SUB-16 TO SUB-18
MOVE SUB-16 TO SUB-19
ADD 1 TO SUB-17
ADD 2 TO SUB-18
ADD 3 TO SUB-19.
SET-NINETEENS-D.
IF SUB-17 NOT GREATER THAN MAX-SUB-2
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-C.
IF SUB-16 NOT GREATER THAN MAX-SUB-3
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-16
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-15
MOVE SUB-15 TO SUB-16
MOVE SUB-15 TO SUB-17
MOVE SUB-15 TO SUB-18
MOVE SUB-15 TO SUB-19
ADD 1 TO SUB-16
ADD 2 TO SUB-17
ADD 3 TO SUB-18
ADD 4 TO SUB-19.
SET-NINETEENS-E.
IF SUB-16 NOT GREATER THAN MAX-SUB-3
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-D.
IF SUB-15 NOT GREATER THAN MAX-SUB-4
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-15
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-14
MOVE SUB-14 TO SUB-15
MOVE SUB-14 TO SUB-16
MOVE SUB-14 TO SUB-17
MOVE SUB-14 TO SUB-18
MOVE SUB-14 TO SUB-19
ADD 1 TO SUB-15
ADD 2 TO SUB-16
ADD 3 TO SUB-17
ADD 4 TO SUB-18
ADD 5 TO SUB-19.
SET-NINETEENS-F.
IF SUB-15 NOT GREATER THAN MAX-SUB-4
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-E.
IF SUB-14 NOT GREATER THAN MAX-SUB-5
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-14
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-13
MOVE SUB-13 TO SUB-14
MOVE SUB-13 TO SUB-15
MOVE SUB-13 TO SUB-16
MOVE SUB-13 TO SUB-17
MOVE SUB-13 TO SUB-18
MOVE SUB-13 TO SUB-19
ADD 1 TO SUB-14
ADD 2 TO SUB-15
ADD 3 TO SUB-16
ADD 4 TO SUB-17
ADD 5 TO SUB-18
ADD 6 TO SUB-19.
SET-NINETEENS-G.
IF SUB-14 NOT GREATER THAN MAX-SUB-5
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-F.
IF SUB-13 NOT GREATER THAN MAX-SUB-6
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-13
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-12
MOVE SUB-12 TO SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
ADD 1 TO SUB-13
ADD 2 TO SUB-14
ADD 3 TO SUB-15
ADD 4 TO SUB-16
ADD 5 TO SUB-17
ADD 6 TO SUB-18
ADD 7 TO SUB-19.
SET-NINETEENS-H.
IF SUB-13 NOT GREATER THAN MAX-SUB-6
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-G.
IF SUB-12 NOT GREATER THAN MAX-SUB-7
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-12
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-11
MOVE SUB-11 TO SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
ADD 1 TO SUB-12
ADD 2 TO SUB-13
ADD 3 TO SUB-14
ADD 4 TO SUB-15
ADD 5 TO SUB-16
ADD 6 TO SUB-17
ADD 7 TO SUB-18
ADD 8 TO SUB-19.
SET-NINETEENS-I.
IF SUB-12 NOT GREATER THAN MAX-SUB-7
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-H.
IF SUB-11 NOT GREATER THAN MAX-SUB-8
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-11
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-10
MOVE SUB-10 TO SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
ADD 1 TO SUB-11
ADD 2 TO SUB-12
ADD 3 TO SUB-13
ADD 4 TO SUB-14
ADD 5 TO SUB-15
ADD 6 TO SUB-16
ADD 7 TO SUB-17
ADD 8 TO SUB-18
ADD 9 TO SUB-19.
SET-NINETEENS-J.
IF SUB-11 NOT GREATER THAN MAX-SUB-8
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-I.
IF SUB-10 NOT GREATER THAN MAX-SUB-9
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-10
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-9
MOVE SUB-9 TO SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
ADD 1 TO SUB-10
ADD 2 TO SUB-11
ADD 3 TO SUB-12
ADD 4 TO SUB-13
ADD 5 TO SUB-14
ADD 6 TO SUB-15
ADD 7 TO SUB-16
ADD 8 TO SUB-17
ADD 9 TO SUB-18
ADD 10 TO SUB-19.
SET-NINETEENS-K.
IF SUB-10 NOT GREATER THAN MAX-SUB-9
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-J.
IF SUB-9 NOT GREATER THAN MAX-SUB-10
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-9
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-8
MOVE SUB-8 TO SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
ADD 1 TO SUB-9
ADD 2 TO SUB-10
ADD 3 TO SUB-11
ADD 4 TO SUB-12
ADD 5 TO SUB-13
ADD 6 TO SUB-14
ADD 7 TO SUB-15
ADD 8 TO SUB-16
ADD 9 TO SUB-17
ADD 10 TO SUB-18
ADD 11 TO SUB-19.
SET-NINETEENS-L.
IF SUB-9 NOT GREATER THAN MAX-SUB-10
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-K.
IF SUB-8 NOT GREATER THAN MAX-SUB-11
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-8
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
ADD 1 TO SUB-8
ADD 2 TO SUB-9
ADD 3 TO SUB-10
ADD 4 TO SUB-11
ADD 5 TO SUB-12
ADD 6 TO SUB-13
ADD 7 TO SUB-14
ADD 8 TO SUB-15
ADD 9 TO SUB-16
ADD 10 TO SUB-17
ADD 11 TO SUB-18
ADD 12 TO SUB-19.
SET-NINETEENS-M.
IF SUB-8 NOT GREATER THAN MAX-SUB-11
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-L.
IF SUB-7 NOT GREATER THAN MAX-SUB-12
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
ADD 1 TO SUB-7
ADD 2 TO SUB-8
ADD 3 TO SUB-9
ADD 4 TO SUB-10
ADD 5 TO SUB-11
ADD 6 TO SUB-12
ADD 7 TO SUB-13
ADD 8 TO SUB-14
ADD 9 TO SUB-15
ADD 10 TO SUB-16
ADD 11 TO SUB-17
ADD 12 TO SUB-18
ADD 13 TO SUB-19.
SET-NINETEENS-N.
IF SUB-7 NOT GREATER THAN MAX-SUB-12
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-M.
IF SUB-6 NOT GREATER THAN MAX-SUB-13
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8
ADD 4 TO SUB-9
ADD 5 TO SUB-10
ADD 6 TO SUB-11
ADD 7 TO SUB-12
ADD 8 TO SUB-13
ADD 9 TO SUB-14
ADD 10 TO SUB-15
ADD 11 TO SUB-16
ADD 12 TO SUB-17
ADD 13 TO SUB-18
ADD 14 TO SUB-19.
SET-NINETEENS-O.
IF SUB-6 NOT GREATER THAN MAX-SUB-13
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-N.
IF SUB-5 NOT GREATER THAN MAX-SUB-14
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8
ADD 5 TO SUB-9
ADD 6 TO SUB-10
ADD 7 TO SUB-11
ADD 8 TO SUB-12
ADD 9 TO SUB-13
ADD 10 TO SUB-14
ADD 11 TO SUB-15
ADD 12 TO SUB-16
ADD 13 TO SUB-17
ADD 14 TO SUB-18
ADD 15 TO SUB-19.
SET-NINETEENS-P.
IF SUB-5 NOT GREATER THAN MAX-SUB-14
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-O.
IF SUB-4 NOT GREATER THAN MAX-SUB-15
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8
ADD 6 TO SUB-9
ADD 7 TO SUB-10
ADD 8 TO SUB-11
ADD 9 TO SUB-12
ADD 10 TO SUB-13
ADD 11 TO SUB-14
ADD 12 TO SUB-15
ADD 13 TO SUB-16
ADD 14 TO SUB-17
ADD 15 TO SUB-18
ADD 16 TO SUB-19.
SET-NINETEENS-Q.
IF SUB-4 NOT GREATER THAN MAX-SUB-15
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-P.
IF SUB-3 NOT GREATER THAN MAX-SUB-16
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
MOVE SUB-2 TO SUB-4
MOVE SUB-2 TO SUB-5
MOVE SUB-2 TO SUB-6
MOVE SUB-2 TO SUB-7
MOVE SUB-2 TO SUB-8
MOVE SUB-2 TO SUB-9
MOVE SUB-2 TO SUB-10
MOVE SUB-2 TO SUB-11
MOVE SUB-2 TO SUB-12
MOVE SUB-2 TO SUB-13
MOVE SUB-2 TO SUB-14
MOVE SUB-2 TO SUB-15
MOVE SUB-2 TO SUB-16
MOVE SUB-2 TO SUB-17
MOVE SUB-2 TO SUB-18
MOVE SUB-2 TO SUB-19
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8
ADD 7 TO SUB-9
ADD 8 TO SUB-10
ADD 9 TO SUB-11
ADD 10 TO SUB-12
ADD 11 TO SUB-13
ADD 12 TO SUB-14
ADD 13 TO SUB-15
ADD 14 TO SUB-16
ADD 15 TO SUB-17
ADD 16 TO SUB-18
ADD 17 TO SUB-19.
SET-NINETEENS-R.
IF SUB-3 NOT GREATER THAN MAX-SUB-16
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
GO TO SET-NINETEENS-Q.
IF SUB-2 NOT GREATER THAN MAX-SUB-17
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-NINETEENS-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
ADD 8 TO SUB-9
ADD 9 TO SUB-10
ADD 10 TO SUB-11
ADD 11 TO SUB-12
ADD 12 TO SUB-13
ADD 13 TO SUB-14
ADD 14 TO SUB-15
ADD 15 TO SUB-16
ADD 16 TO SUB-17
ADD 17 TO SUB-18
ADD 18 TO SUB-19
PERFORM NINETEENS-SUB-RTN THRU NINETEENS-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-18
GO TO SET-NINETEENS-A.
SET-NINETEENS-X. EXIT.
NINETEENS-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
MOVE SUB-9 TO WS-SUB-9.
MOVE SUB-10 TO WS-SUB-10.
MOVE SUB-11 TO WS-SUB-11.
MOVE SUB-12 TO WS-SUB-12.
MOVE SUB-13 TO WS-SUB-13.
MOVE SUB-14 TO WS-SUB-14.
MOVE SUB-15 TO WS-SUB-15.
MOVE SUB-16 TO WS-SUB-16.
MOVE SUB-17 TO WS-SUB-17.
MOVE SUB-18 TO WS-SUB-18.
MOVE SUB-19 TO WS-SUB-19.
IF SUB-19 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16 AND
SUB-16 < SUB-17 AND
SUB-17 < SUB-18 AND
SUB-18 < SUB-19
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-19 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16 AND
SUB-16 < SUB-17 AND
SUB-17 < SUB-18 AND
SUB-18 < SUB-19)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8),
INT(SUB-9),
INT(SUB-10),
INT(SUB-11),
INT(SUB-12),
INT(SUB-13),
INT(SUB-14),
INT(SUB-15),
INT(SUB-16),
INT(SUB-17),
INT(SUB-18),
INT(SUB-19)
GIVING RESULT-19
ADD 1 TO SOLVE-TICK
IF RESULT-19 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-19-RTN THRU DISPLAY-19-RTN-X.
NINETEENS-SUB-RTN-X. EXIT.
DISPLAY-19-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-9) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-10) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-11) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-12) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-13) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-14) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
MOVE 1 TO SUB-L2
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-15) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-16) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-17) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-18) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-19) TO INT-DIS2(SUB-O, SUB-L2).
MOVE OUT-LINE2 (SUB-O) TO OUT-LINE (SUB-O).
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-19-RTN-X. EXIT.
SET-TWENTY.
IF TOTAL-ZERO EQUAL ZERO
PERFORM ELAPSED-TIME THRU ELAPSED-TIME-X.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
MOVE 9 TO SUB-9
MOVE 10 TO SUB-10
MOVE 11 TO SUB-11
MOVE 12 TO SUB-12
MOVE 13 TO SUB-13
MOVE 14 TO SUB-14
MOVE 15 TO SUB-15
MOVE 16 TO SUB-16
MOVE 17 TO SUB-17
MOVE 18 TO SUB-18
MOVE 19 TO SUB-19
MOVE 20 TO SUB-20
IF MAX-SUB EQUAL 20
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-X
ELSE
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X.
SET-TWENTY-A.
ADD 1 TO SUB-20.
IF SUB-20 NOT GREATER THAN MAX-SUB
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-19
MOVE SUB-19 TO SUB-20
ADD 1 TO SUB-20.
SET-TWENTY-B.
IF SUB-20 NOT GREATER THAN MAX-SUB
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-A.
IF SUB-19 NOT GREATER THAN MAX-SUB-1
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-19
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-18
MOVE SUB-18 TO SUB-19
MOVE SUB-18 TO SUB-20
ADD 1 TO SUB-19
ADD 2 TO SUB-20.
SET-TWENTY-C.
IF SUB-19 NOT GREATER THAN MAX-SUB-1
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-B.
IF SUB-18 NOT GREATER THAN MAX-SUB-2
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-18
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-17
MOVE SUB-17 TO SUB-18
MOVE SUB-17 TO SUB-19
MOVE SUB-17 TO SUB-20
ADD 1 TO SUB-18
ADD 2 TO SUB-19
ADD 3 TO SUB-20.
SET-TWENTY-D.
IF SUB-18 NOT GREATER THAN MAX-SUB-2
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-C.
IF SUB-17 NOT GREATER THAN MAX-SUB-3
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-17
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-16
MOVE SUB-16 TO SUB-17
MOVE SUB-16 TO SUB-18
MOVE SUB-16 TO SUB-19
MOVE SUB-16 TO SUB-20
ADD 1 TO SUB-17
ADD 2 TO SUB-18
ADD 3 TO SUB-19
ADD 4 TO SUB-20.
SET-TWENTY-E.
IF SUB-17 NOT GREATER THAN MAX-SUB-3
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-D.
IF SUB-16 NOT GREATER THAN MAX-SUB-4
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-16
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-15
MOVE SUB-15 TO SUB-16
MOVE SUB-15 TO SUB-17
MOVE SUB-15 TO SUB-18
MOVE SUB-15 TO SUB-19
MOVE SUB-15 TO SUB-20
ADD 1 TO SUB-16
ADD 2 TO SUB-17
ADD 3 TO SUB-18
ADD 4 TO SUB-19
ADD 5 TO SUB-20.
SET-TWENTY-F.
IF SUB-16 NOT GREATER THAN MAX-SUB-4
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-E.
IF SUB-15 NOT GREATER THAN MAX-SUB-5
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-15
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-14
MOVE SUB-14 TO SUB-15
MOVE SUB-14 TO SUB-16
MOVE SUB-14 TO SUB-17
MOVE SUB-14 TO SUB-18
MOVE SUB-14 TO SUB-19
MOVE SUB-14 TO SUB-20
ADD 1 TO SUB-15
ADD 2 TO SUB-16
ADD 3 TO SUB-17
ADD 4 TO SUB-18
ADD 5 TO SUB-19
ADD 6 TO SUB-20.
SET-TWENTY-G.
IF SUB-15 NOT GREATER THAN MAX-SUB-5
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-F.
IF SUB-14 NOT GREATER THAN MAX-SUB-6
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-14
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-13
MOVE SUB-13 TO SUB-14
MOVE SUB-13 TO SUB-15
MOVE SUB-13 TO SUB-16
MOVE SUB-13 TO SUB-17
MOVE SUB-13 TO SUB-18
MOVE SUB-13 TO SUB-19
MOVE SUB-13 TO SUB-20
ADD 1 TO SUB-14
ADD 2 TO SUB-15
ADD 3 TO SUB-16
ADD 4 TO SUB-17
ADD 5 TO SUB-18
ADD 6 TO SUB-19
ADD 7 TO SUB-20.
SET-TWENTY-H.
IF SUB-14 NOT GREATER THAN MAX-SUB-6
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-G.
IF SUB-13 NOT GREATER THAN MAX-SUB-7
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-13
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-12
MOVE SUB-12 TO SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
ADD 1 TO SUB-13
ADD 2 TO SUB-14
ADD 3 TO SUB-15
ADD 4 TO SUB-16
ADD 5 TO SUB-17
ADD 6 TO SUB-18
ADD 7 TO SUB-19
ADD 8 TO SUB-20.
SET-TWENTY-I.
IF SUB-13 NOT GREATER THAN MAX-SUB-7
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-H.
IF SUB-12 NOT GREATER THAN MAX-SUB-8
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-12
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-11
MOVE SUB-11 TO SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
ADD 1 TO SUB-12
ADD 2 TO SUB-13
ADD 3 TO SUB-14
ADD 4 TO SUB-15
ADD 5 TO SUB-16
ADD 6 TO SUB-17
ADD 7 TO SUB-18
ADD 8 TO SUB-19
ADD 9 TO SUB-20.
SET-TWENTY-J.
IF SUB-12 NOT GREATER THAN MAX-SUB-8
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-I.
IF SUB-11 NOT GREATER THAN MAX-SUB-9
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-11
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-10
MOVE SUB-10 TO SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
ADD 1 TO SUB-11
ADD 2 TO SUB-12
ADD 3 TO SUB-13
ADD 4 TO SUB-14
ADD 5 TO SUB-15
ADD 6 TO SUB-16
ADD 7 TO SUB-17
ADD 8 TO SUB-18
ADD 9 TO SUB-19
ADD 10 TO SUB-20.
SET-TWENTY-K.
IF SUB-11 NOT GREATER THAN MAX-SUB-9
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-J.
IF SUB-10 NOT GREATER THAN MAX-SUB-10
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-10
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-9
MOVE SUB-9 TO SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
ADD 1 TO SUB-10
ADD 2 TO SUB-11
ADD 3 TO SUB-12
ADD 4 TO SUB-13
ADD 5 TO SUB-14
ADD 6 TO SUB-15
ADD 7 TO SUB-16
ADD 8 TO SUB-17
ADD 9 TO SUB-18
ADD 10 TO SUB-19
ADD 11 TO SUB-20.
SET-TWENTY-L.
IF SUB-10 NOT GREATER THAN MAX-SUB-10
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-K.
IF SUB-9 NOT GREATER THAN MAX-SUB-11
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-9
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-8
MOVE SUB-8 TO SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
ADD 1 TO SUB-9
ADD 2 TO SUB-10
ADD 3 TO SUB-11
ADD 4 TO SUB-12
ADD 5 TO SUB-13
ADD 6 TO SUB-14
ADD 7 TO SUB-15
ADD 8 TO SUB-16
ADD 9 TO SUB-17
ADD 10 TO SUB-18
ADD 11 TO SUB-19
ADD 12 TO SUB-20.
SET-TWENTY-M.
IF SUB-9 NOT GREATER THAN MAX-SUB-11
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-L.
IF SUB-8 NOT GREATER THAN MAX-SUB-12
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-8
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
ADD 1 TO SUB-8
ADD 2 TO SUB-9
ADD 3 TO SUB-10
ADD 4 TO SUB-11
ADD 5 TO SUB-12
ADD 6 TO SUB-13
ADD 7 TO SUB-14
ADD 8 TO SUB-15
ADD 9 TO SUB-16
ADD 10 TO SUB-17
ADD 11 TO SUB-18
ADD 12 TO SUB-19
ADD 13 TO SUB-20.
SET-TWENTY-N.
IF SUB-8 NOT GREATER THAN MAX-SUB-12
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-M.
IF SUB-7 NOT GREATER THAN MAX-SUB-13
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
ADD 1 TO SUB-7
ADD 2 TO SUB-8
ADD 3 TO SUB-9
ADD 4 TO SUB-10
ADD 5 TO SUB-11
ADD 6 TO SUB-12
ADD 7 TO SUB-13
ADD 8 TO SUB-14
ADD 9 TO SUB-15
ADD 10 TO SUB-16
ADD 11 TO SUB-17
ADD 12 TO SUB-18
ADD 13 TO SUB-19
ADD 14 TO SUB-20.
SET-TWENTY-O.
IF SUB-7 NOT GREATER THAN MAX-SUB-13
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-N.
IF SUB-6 NOT GREATER THAN MAX-SUB-14
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8
ADD 4 TO SUB-9
ADD 5 TO SUB-10
ADD 6 TO SUB-11
ADD 7 TO SUB-12
ADD 8 TO SUB-13
ADD 9 TO SUB-14
ADD 10 TO SUB-15
ADD 11 TO SUB-16
ADD 12 TO SUB-17
ADD 13 TO SUB-18
ADD 14 TO SUB-19
ADD 15 TO SUB-20.
SET-TWENTY-P.
IF SUB-6 NOT GREATER THAN MAX-SUB-14
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-O.
IF SUB-5 NOT GREATER THAN MAX-SUB-15
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8
ADD 5 TO SUB-9
ADD 6 TO SUB-10
ADD 7 TO SUB-11
ADD 8 TO SUB-12
ADD 9 TO SUB-13
ADD 10 TO SUB-14
ADD 11 TO SUB-15
ADD 12 TO SUB-16
ADD 13 TO SUB-17
ADD 14 TO SUB-18
ADD 15 TO SUB-19
ADD 16 TO SUB-20.
SET-TWENTY-Q.
IF SUB-5 NOT GREATER THAN MAX-SUB-15
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-P.
IF SUB-4 NOT GREATER THAN MAX-SUB-16
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8
ADD 6 TO SUB-9
ADD 7 TO SUB-10
ADD 8 TO SUB-11
ADD 9 TO SUB-12
ADD 10 TO SUB-13
ADD 11 TO SUB-14
ADD 12 TO SUB-15
ADD 13 TO SUB-16
ADD 14 TO SUB-17
ADD 15 TO SUB-18
ADD 16 TO SUB-19
ADD 17 TO SUB-20.
SET-TWENTY-R.
IF SUB-4 NOT GREATER THAN MAX-SUB-16
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-Q.
IF SUB-3 NOT GREATER THAN MAX-SUB-17
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8
ADD 7 TO SUB-9
ADD 8 TO SUB-10
ADD 9 TO SUB-11
ADD 10 TO SUB-12
ADD 11 TO SUB-13
ADD 12 TO SUB-14
ADD 13 TO SUB-15
ADD 14 TO SUB-16
ADD 15 TO SUB-17
ADD 16 TO SUB-18
ADD 17 TO SUB-19
ADD 18 TO SUB-20.
SET-TWENTY-S.
IF SUB-3 NOT GREATER THAN MAX-SUB-17
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
GO TO SET-TWENTY-R.
IF SUB-2 NOT GREATER THAN MAX-SUB-18
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-TWENTY-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
ADD 8 TO SUB-9
ADD 9 TO SUB-10
ADD 10 TO SUB-11
ADD 11 TO SUB-12
ADD 12 TO SUB-13
ADD 13 TO SUB-14
ADD 14 TO SUB-15
ADD 15 TO SUB-16
ADD 16 TO SUB-17
ADD 17 TO SUB-18
ADD 18 TO SUB-19
ADD 19 TO SUB-20
PERFORM TWENTY-SUB-RTN THRU TWENTY-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-19
GO TO SET-TWENTY-A.
SET-TWENTY-X. EXIT.
TWENTY-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
MOVE SUB-9 TO WS-SUB-9.
MOVE SUB-10 TO WS-SUB-10.
MOVE SUB-11 TO WS-SUB-11.
MOVE SUB-12 TO WS-SUB-12.
MOVE SUB-13 TO WS-SUB-13.
MOVE SUB-14 TO WS-SUB-14.
MOVE SUB-15 TO WS-SUB-15.
MOVE SUB-16 TO WS-SUB-16.
MOVE SUB-17 TO WS-SUB-17.
MOVE SUB-18 TO WS-SUB-18.
MOVE SUB-19 TO WS-SUB-19.
MOVE SUB-20 TO WS-SUB-20.
IF SUB-20 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16 AND
SUB-16 < SUB-17 AND
SUB-17 < SUB-18 AND
SUB-18 < SUB-19 AND
SUB-19 < SUB-20
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-20 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16 AND
SUB-16 < SUB-17 AND
SUB-17 < SUB-18 AND
SUB-18 < SUB-19 AND
SUB-19 < SUB-20)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8),
INT(SUB-9),
INT(SUB-10),
INT(SUB-11),
INT(SUB-12),
INT(SUB-13),
INT(SUB-14),
INT(SUB-15),
INT(SUB-16),
INT(SUB-17),
INT(SUB-18),
INT(SUB-19)
GIVING RESULT-ST
ADD INT(SUB-20)
RESULT-ST
GIVING RESULT-20
ADD 1 TO SOLVE-TICK
IF RESULT-20 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-20-RTN THRU DISPLAY-20-RTN-X.
TWENTY-SUB-RTN-X. EXIT.
DISPLAY-20-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-9) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-10) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-11) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-12) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-13) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-14) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
MOVE 1 TO SUB-L2
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-15) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-16) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-17) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-18) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-19) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-20) TO INT-DIS2(SUB-O, SUB-L2).
MOVE OUT-LINE2 (SUB-O) TO OUT-LINE (SUB-O).
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-20-RTN-X. EXIT.
SET-TWENTY-ONE.
IF TOTAL-ZERO EQUAL ZERO
PERFORM ELAPSED-TIME THRU ELAPSED-TIME-X.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
MOVE 9 TO SUB-9
MOVE 10 TO SUB-10
MOVE 11 TO SUB-11
MOVE 12 TO SUB-12
MOVE 13 TO SUB-13
MOVE 14 TO SUB-14
MOVE 15 TO SUB-15
MOVE 16 TO SUB-16
MOVE 17 TO SUB-17
MOVE 18 TO SUB-18
MOVE 19 TO SUB-19
MOVE 20 TO SUB-20
MOVE 21 TO SUB-21
IF MAX-SUB EQUAL 21
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-X
ELSE
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X.
SET-TWENTY-ONE-A.
ADD 1 TO SUB-21.
IF SUB-21 NOT GREATER THAN MAX-SUB
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-20
MOVE SUB-20 TO SUB-21
ADD 1 TO SUB-21.
SET-TWENTY-ONE-B.
IF SUB-21 NOT GREATER THAN MAX-SUB
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-A.
IF SUB-20 NOT GREATER THAN MAX-SUB-1
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-20
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-19
MOVE SUB-19 TO SUB-20
MOVE SUB-19 TO SUB-21
ADD 1 TO SUB-20
ADD 2 TO SUB-21.
SET-TWENTY-ONE-C.
IF SUB-20 NOT GREATER THAN MAX-SUB-1
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-B.
IF SUB-19 NOT GREATER THAN MAX-SUB-2
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-19
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-18
MOVE SUB-18 TO SUB-19
MOVE SUB-18 TO SUB-20
MOVE SUB-18 TO SUB-21
ADD 1 TO SUB-19
ADD 2 TO SUB-20
ADD 3 TO SUB-21.
SET-TWENTY-ONE-D.
IF SUB-19 NOT GREATER THAN MAX-SUB-2
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-C.
IF SUB-18 NOT GREATER THAN MAX-SUB-3
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-18
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-17
MOVE SUB-17 TO SUB-18
MOVE SUB-17 TO SUB-19
MOVE SUB-17 TO SUB-20
MOVE SUB-17 TO SUB-21
ADD 1 TO SUB-18
ADD 2 TO SUB-19
ADD 3 TO SUB-20
ADD 4 TO SUB-21.
SET-TWENTY-ONE-E.
IF SUB-18 NOT GREATER THAN MAX-SUB-3
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-D.
IF SUB-17 NOT GREATER THAN MAX-SUB-4
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-17
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-16
MOVE SUB-16 TO SUB-17
MOVE SUB-16 TO SUB-18
MOVE SUB-16 TO SUB-19
MOVE SUB-16 TO SUB-20
MOVE SUB-16 TO SUB-21
ADD 1 TO SUB-17
ADD 2 TO SUB-18
ADD 3 TO SUB-19
ADD 4 TO SUB-20
ADD 5 TO SUB-21.
SET-TWENTY-ONE-F.
IF SUB-17 NOT GREATER THAN MAX-SUB-4
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-E.
IF SUB-16 NOT GREATER THAN MAX-SUB-5
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-16
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-15
MOVE SUB-15 TO SUB-16
MOVE SUB-15 TO SUB-17
MOVE SUB-15 TO SUB-18
MOVE SUB-15 TO SUB-19
MOVE SUB-15 TO SUB-20
MOVE SUB-15 TO SUB-21
ADD 1 TO SUB-16
ADD 2 TO SUB-17
ADD 3 TO SUB-18
ADD 4 TO SUB-19
ADD 5 TO SUB-20
ADD 6 TO SUB-21.
SET-TWENTY-ONE-G.
IF SUB-16 NOT GREATER THAN MAX-SUB-5
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-F.
IF SUB-15 NOT GREATER THAN MAX-SUB-6
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-15
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-14
MOVE SUB-14 TO SUB-15
MOVE SUB-14 TO SUB-16
MOVE SUB-14 TO SUB-17
MOVE SUB-14 TO SUB-18
MOVE SUB-14 TO SUB-19
MOVE SUB-14 TO SUB-20
MOVE SUB-14 TO SUB-21
ADD 1 TO SUB-15
ADD 2 TO SUB-16
ADD 3 TO SUB-17
ADD 4 TO SUB-18
ADD 5 TO SUB-19
ADD 6 TO SUB-20
ADD 7 TO SUB-21.
SET-TWENTY-ONE-H.
IF SUB-15 NOT GREATER THAN MAX-SUB-6
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-G.
IF SUB-14 NOT GREATER THAN MAX-SUB-7
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-14
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-13
MOVE SUB-13 TO SUB-14
MOVE SUB-13 TO SUB-15
MOVE SUB-13 TO SUB-16
MOVE SUB-13 TO SUB-17
MOVE SUB-13 TO SUB-18
MOVE SUB-13 TO SUB-19
MOVE SUB-13 TO SUB-20
MOVE SUB-13 TO SUB-21
ADD 1 TO SUB-14
ADD 2 TO SUB-15
ADD 3 TO SUB-16
ADD 4 TO SUB-17
ADD 5 TO SUB-18
ADD 6 TO SUB-19
ADD 7 TO SUB-20
ADD 8 TO SUB-21.
SET-TWENTY-ONE-I.
IF SUB-14 NOT GREATER THAN MAX-SUB-7
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-H.
IF SUB-13 NOT GREATER THAN MAX-SUB-8
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-13
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-12
MOVE SUB-12 TO SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
ADD 1 TO SUB-13
ADD 2 TO SUB-14
ADD 3 TO SUB-15
ADD 4 TO SUB-16
ADD 5 TO SUB-17
ADD 6 TO SUB-18
ADD 7 TO SUB-19
ADD 8 TO SUB-20
ADD 9 TO SUB-21.
SET-TWENTY-ONE-J.
IF SUB-13 NOT GREATER THAN MAX-SUB-8
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-I.
IF SUB-12 NOT GREATER THAN MAX-SUB-9
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-12
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-11
MOVE SUB-11 TO SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
ADD 1 TO SUB-12
ADD 2 TO SUB-13
ADD 3 TO SUB-14
ADD 4 TO SUB-15
ADD 5 TO SUB-16
ADD 6 TO SUB-17
ADD 7 TO SUB-18
ADD 8 TO SUB-19
ADD 9 TO SUB-20
ADD 10 TO SUB-21.
SET-TWENTY-ONE-K.
IF SUB-12 NOT GREATER THAN MAX-SUB-9
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-J.
IF SUB-11 NOT GREATER THAN MAX-SUB-10
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-11
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-10
MOVE SUB-10 TO SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
ADD 1 TO SUB-11
ADD 2 TO SUB-12
ADD 3 TO SUB-13
ADD 4 TO SUB-14
ADD 5 TO SUB-15
ADD 6 TO SUB-16
ADD 7 TO SUB-17
ADD 8 TO SUB-18
ADD 9 TO SUB-19
ADD 10 TO SUB-20
ADD 11 TO SUB-21.
SET-TWENTY-ONE-L.
IF SUB-11 NOT GREATER THAN MAX-SUB-10
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-K.
IF SUB-10 NOT GREATER THAN MAX-SUB-11
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-10
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-9
MOVE SUB-9 TO SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
ADD 1 TO SUB-10
ADD 2 TO SUB-11
ADD 3 TO SUB-12
ADD 4 TO SUB-13
ADD 5 TO SUB-14
ADD 6 TO SUB-15
ADD 7 TO SUB-16
ADD 8 TO SUB-17
ADD 9 TO SUB-18
ADD 10 TO SUB-19
ADD 11 TO SUB-20
ADD 12 TO SUB-21.
SET-TWENTY-ONE-M.
IF SUB-10 NOT GREATER THAN MAX-SUB-11
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-L.
IF SUB-9 NOT GREATER THAN MAX-SUB-12
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-9
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-8
MOVE SUB-8 TO SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
ADD 1 TO SUB-9
ADD 2 TO SUB-10
ADD 3 TO SUB-11
ADD 4 TO SUB-12
ADD 5 TO SUB-13
ADD 6 TO SUB-14
ADD 7 TO SUB-15
ADD 8 TO SUB-16
ADD 9 TO SUB-17
ADD 10 TO SUB-18
ADD 11 TO SUB-19
ADD 12 TO SUB-20
ADD 13 TO SUB-21.
SET-TWENTY-ONE-N.
IF SUB-9 NOT GREATER THAN MAX-SUB-12
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-M.
IF SUB-8 NOT GREATER THAN MAX-SUB-13
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-8
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
ADD 1 TO SUB-8
ADD 2 TO SUB-9
ADD 3 TO SUB-10
ADD 4 TO SUB-11
ADD 5 TO SUB-12
ADD 6 TO SUB-13
ADD 7 TO SUB-14
ADD 8 TO SUB-15
ADD 9 TO SUB-16
ADD 10 TO SUB-17
ADD 11 TO SUB-18
ADD 12 TO SUB-19
ADD 13 TO SUB-20
ADD 14 TO SUB-21.
SET-TWENTY-ONE-O.
IF SUB-8 NOT GREATER THAN MAX-SUB-13
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-N.
IF SUB-7 NOT GREATER THAN MAX-SUB-14
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
ADD 1 TO SUB-7
ADD 2 TO SUB-8
ADD 3 TO SUB-9
ADD 4 TO SUB-10
ADD 5 TO SUB-11
ADD 6 TO SUB-12
ADD 7 TO SUB-13
ADD 8 TO SUB-14
ADD 9 TO SUB-15
ADD 10 TO SUB-16
ADD 11 TO SUB-17
ADD 12 TO SUB-18
ADD 13 TO SUB-19
ADD 14 TO SUB-20
ADD 15 TO SUB-21.
SET-TWENTY-ONE-P.
IF SUB-7 NOT GREATER THAN MAX-SUB-14
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-O.
IF SUB-6 NOT GREATER THAN MAX-SUB-15
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8
ADD 4 TO SUB-9
ADD 5 TO SUB-10
ADD 6 TO SUB-11
ADD 7 TO SUB-12
ADD 8 TO SUB-13
ADD 9 TO SUB-14
ADD 10 TO SUB-15
ADD 11 TO SUB-16
ADD 12 TO SUB-17
ADD 13 TO SUB-18
ADD 14 TO SUB-19
ADD 15 TO SUB-20
ADD 16 TO SUB-21.
SET-TWENTY-ONE-Q.
IF SUB-6 NOT GREATER THAN MAX-SUB-15
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-P.
IF SUB-5 NOT GREATER THAN MAX-SUB-16
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8
ADD 5 TO SUB-9
ADD 6 TO SUB-10
ADD 7 TO SUB-11
ADD 8 TO SUB-12
ADD 9 TO SUB-13
ADD 10 TO SUB-14
ADD 11 TO SUB-15
ADD 12 TO SUB-16
ADD 13 TO SUB-17
ADD 14 TO SUB-18
ADD 15 TO SUB-19
ADD 16 TO SUB-20
ADD 17 TO SUB-21.
SET-TWENTY-ONE-R.
IF SUB-5 NOT GREATER THAN MAX-SUB-16
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-Q.
IF SUB-4 NOT GREATER THAN MAX-SUB-17
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8
ADD 6 TO SUB-9
ADD 7 TO SUB-10
ADD 8 TO SUB-11
ADD 9 TO SUB-12
ADD 10 TO SUB-13
ADD 11 TO SUB-14
ADD 12 TO SUB-15
ADD 13 TO SUB-16
ADD 14 TO SUB-17
ADD 15 TO SUB-18
ADD 16 TO SUB-19
ADD 17 TO SUB-20
ADD 18 TO SUB-21.
SET-TWENTY-ONE-S.
IF SUB-4 NOT GREATER THAN MAX-SUB-17
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-R.
IF SUB-3 NOT GREATER THAN MAX-SUB-18
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
MOVE SUB-2 TO SUB-4
MOVE SUB-2 TO SUB-5
MOVE SUB-2 TO SUB-6
MOVE SUB-2 TO SUB-7
MOVE SUB-2 TO SUB-8
MOVE SUB-2 TO SUB-9
MOVE SUB-2 TO SUB-10
MOVE SUB-2 TO SUB-11
MOVE SUB-2 TO SUB-12
MOVE SUB-2 TO SUB-13
MOVE SUB-2 TO SUB-14
MOVE SUB-2 TO SUB-15
MOVE SUB-2 TO SUB-16
MOVE SUB-2 TO SUB-17
MOVE SUB-2 TO SUB-18
MOVE SUB-2 TO SUB-19
MOVE SUB-2 TO SUB-20
MOVE SUB-2 TO SUB-21
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8
ADD 7 TO SUB-9
ADD 8 TO SUB-10
ADD 9 TO SUB-11
ADD 10 TO SUB-12
ADD 11 TO SUB-13
ADD 12 TO SUB-14
ADD 13 TO SUB-15
ADD 14 TO SUB-16
ADD 15 TO SUB-17
ADD 16 TO SUB-18
ADD 17 TO SUB-19
ADD 18 TO SUB-20
ADD 19 TO SUB-21.
SET-TWENTY-ONE-T.
IF SUB-3 NOT GREATER THAN MAX-SUB-18
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
GO TO SET-TWENTY-ONE-S.
IF SUB-2 NOT GREATER THAN MAX-SUB-19
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-TWENTY-ONE-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
ADD 8 TO SUB-9
ADD 9 TO SUB-10
ADD 10 TO SUB-11
ADD 11 TO SUB-12
ADD 12 TO SUB-13
ADD 13 TO SUB-14
ADD 14 TO SUB-15
ADD 15 TO SUB-16
ADD 16 TO SUB-17
ADD 17 TO SUB-18
ADD 18 TO SUB-19
ADD 19 TO SUB-20
ADD 20 TO SUB-21
PERFORM TWENTY-ONE-SUB-RTN THRU TWENTY-ONE-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-20
GO TO SET-TWENTY-ONE-A.
SET-TWENTY-ONE-X. EXIT.
TWENTY-ONE-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
MOVE SUB-9 TO WS-SUB-9.
MOVE SUB-10 TO WS-SUB-10.
MOVE SUB-11 TO WS-SUB-11.
MOVE SUB-12 TO WS-SUB-12.
MOVE SUB-13 TO WS-SUB-13.
MOVE SUB-14 TO WS-SUB-14.
MOVE SUB-15 TO WS-SUB-15.
MOVE SUB-16 TO WS-SUB-16.
MOVE SUB-17 TO WS-SUB-17.
MOVE SUB-18 TO WS-SUB-18.
MOVE SUB-19 TO WS-SUB-19.
MOVE SUB-20 TO WS-SUB-20.
MOVE SUB-21 TO WS-SUB-21.
IF SUB-21 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16 AND
SUB-16 < SUB-17 AND
SUB-17 < SUB-18 AND
SUB-18 < SUB-19 AND
SUB-19 < SUB-20 AND
SUB-20 < SUB-21
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-21 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16 AND
SUB-16 < SUB-17 AND
SUB-17 < SUB-18 AND
SUB-18 < SUB-19 AND
SUB-19 < SUB-20 AND
SUB-20 < SUB-21)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8),
INT(SUB-9),
INT(SUB-10),
INT(SUB-11),
INT(SUB-12),
INT(SUB-13),
INT(SUB-14),
INT(SUB-15),
INT(SUB-16),
INT(SUB-17),
INT(SUB-18),
INT(SUB-19)
GIVING RESULT-ST
ADD INT(SUB-20),
INT(SUB-21),
RESULT-ST
GIVING RESULT-21
ADD 1 TO SOLVE-TICK
IF RESULT-21 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-21-RTN THRU DISPLAY-21-RTN-X.
TWENTY-ONE-SUB-RTN-X. EXIT.
DISPLAY-21-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-9) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-10) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-11) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-12) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-13) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-14) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
MOVE 1 TO SUB-L2
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-15) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-16) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-17) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-18) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-19) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-20) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-21) TO INT-DIS2(SUB-O, SUB-L2).
MOVE OUT-LINE2 (SUB-O) TO OUT-LINE (SUB-O).
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-21-RTN-X. EXIT.
SET-TWENTY-TWO.
IF TOTAL-ZERO EQUAL ZERO
PERFORM ELAPSED-TIME THRU ELAPSED-TIME-X.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
MOVE 9 TO SUB-9
MOVE 10 TO SUB-10
MOVE 11 TO SUB-11
MOVE 12 TO SUB-12
MOVE 13 TO SUB-13
MOVE 14 TO SUB-14
MOVE 15 TO SUB-15
MOVE 16 TO SUB-16
MOVE 17 TO SUB-17
MOVE 18 TO SUB-18
MOVE 19 TO SUB-19
MOVE 20 TO SUB-20
MOVE 21 TO SUB-21
MOVE 22 TO SUB-22
IF MAX-SUB EQUAL 22
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-X
ELSE
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X.
SET-TWENTY-TWO-A.
ADD 1 TO SUB-22.
IF SUB-22 NOT GREATER THAN MAX-SUB
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-21
MOVE SUB-21 TO SUB-22
ADD 1 TO SUB-22.
SET-TWENTY-TWO-B.
IF SUB-22 NOT GREATER THAN MAX-SUB
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-A.
IF SUB-21 NOT GREATER THAN MAX-SUB-1
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-21
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-20
MOVE SUB-20 TO SUB-21
MOVE SUB-20 TO SUB-22
ADD 1 TO SUB-21
ADD 2 TO SUB-22.
SET-TWENTY-TWO-C.
IF SUB-21 NOT GREATER THAN MAX-SUB-1
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-B.
IF SUB-20 NOT GREATER THAN MAX-SUB-2
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-20
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-19
MOVE SUB-19 TO SUB-20
MOVE SUB-19 TO SUB-21
MOVE SUB-19 TO SUB-22
ADD 1 TO SUB-20
ADD 2 TO SUB-21
ADD 3 TO SUB-22.
SET-TWENTY-TWO-D.
IF SUB-20 NOT GREATER THAN MAX-SUB-2
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-C.
IF SUB-19 NOT GREATER THAN MAX-SUB-3
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-19
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-18
MOVE SUB-18 TO SUB-19
MOVE SUB-18 TO SUB-20
MOVE SUB-18 TO SUB-21
MOVE SUB-18 TO SUB-22
ADD 1 TO SUB-19
ADD 2 TO SUB-20
ADD 3 TO SUB-21
ADD 4 TO SUB-22.
SET-TWENTY-TWO-E.
IF SUB-19 NOT GREATER THAN MAX-SUB-3
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-D.
IF SUB-18 NOT GREATER THAN MAX-SUB-4
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-18
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-17
MOVE SUB-17 TO SUB-18
MOVE SUB-17 TO SUB-19
MOVE SUB-17 TO SUB-20
MOVE SUB-17 TO SUB-21
MOVE SUB-17 TO SUB-22
ADD 1 TO SUB-18
ADD 2 TO SUB-19
ADD 3 TO SUB-20
ADD 4 TO SUB-21
ADD 5 TO SUB-22.
SET-TWENTY-TWO-F.
IF SUB-18 NOT GREATER THAN MAX-SUB-4
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-E.
IF SUB-17 NOT GREATER THAN MAX-SUB-5
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-17
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-16
MOVE SUB-16 TO SUB-17
MOVE SUB-16 TO SUB-18
MOVE SUB-16 TO SUB-19
MOVE SUB-16 TO SUB-20
MOVE SUB-16 TO SUB-21
MOVE SUB-16 TO SUB-22
ADD 1 TO SUB-17
ADD 2 TO SUB-18
ADD 3 TO SUB-19
ADD 4 TO SUB-20
ADD 5 TO SUB-21
ADD 6 TO SUB-22.
SET-TWENTY-TWO-G.
IF SUB-17 NOT GREATER THAN MAX-SUB-5
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-F.
IF SUB-16 NOT GREATER THAN MAX-SUB-6
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-16
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-15
MOVE SUB-15 TO SUB-16
MOVE SUB-15 TO SUB-17
MOVE SUB-15 TO SUB-18
MOVE SUB-15 TO SUB-19
MOVE SUB-15 TO SUB-20
MOVE SUB-15 TO SUB-21
MOVE SUB-15 TO SUB-22
ADD 1 TO SUB-16
ADD 2 TO SUB-17
ADD 3 TO SUB-18
ADD 4 TO SUB-19
ADD 5 TO SUB-20
ADD 6 TO SUB-21
ADD 7 TO SUB-22.
SET-TWENTY-TWO-H.
IF SUB-16 NOT GREATER THAN MAX-SUB-6
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-G.
IF SUB-15 NOT GREATER THAN MAX-SUB-7
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-15
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-14
MOVE SUB-14 TO SUB-15
MOVE SUB-14 TO SUB-16
MOVE SUB-14 TO SUB-17
MOVE SUB-14 TO SUB-18
MOVE SUB-14 TO SUB-19
MOVE SUB-14 TO SUB-20
MOVE SUB-14 TO SUB-21
MOVE SUB-14 TO SUB-22
ADD 1 TO SUB-15
ADD 2 TO SUB-16
ADD 3 TO SUB-17
ADD 4 TO SUB-18
ADD 5 TO SUB-19
ADD 6 TO SUB-20
ADD 7 TO SUB-21
ADD 8 TO SUB-22.
SET-TWENTY-TWO-I.
IF SUB-15 NOT GREATER THAN MAX-SUB-7
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-H.
IF SUB-14 NOT GREATER THAN MAX-SUB-8
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-14
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-13
MOVE SUB-13 TO SUB-14
MOVE SUB-13 TO SUB-15
MOVE SUB-13 TO SUB-16
MOVE SUB-13 TO SUB-17
MOVE SUB-13 TO SUB-18
MOVE SUB-13 TO SUB-19
MOVE SUB-13 TO SUB-20
MOVE SUB-13 TO SUB-21
MOVE SUB-13 TO SUB-22
ADD 1 TO SUB-14
ADD 2 TO SUB-15
ADD 3 TO SUB-16
ADD 4 TO SUB-17
ADD 5 TO SUB-18
ADD 6 TO SUB-19
ADD 7 TO SUB-20
ADD 8 TO SUB-21
ADD 9 TO SUB-22.
SET-TWENTY-TWO-J.
IF SUB-14 NOT GREATER THAN MAX-SUB-8
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-I.
IF SUB-13 NOT GREATER THAN MAX-SUB-9
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-13
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-12
MOVE SUB-12 TO SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
ADD 1 TO SUB-13
ADD 2 TO SUB-14
ADD 3 TO SUB-15
ADD 4 TO SUB-16
ADD 5 TO SUB-17
ADD 6 TO SUB-18
ADD 7 TO SUB-19
ADD 8 TO SUB-20
ADD 9 TO SUB-21
ADD 10 TO SUB-22.
SET-TWENTY-TWO-K.
IF SUB-13 NOT GREATER THAN MAX-SUB-9
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-J.
IF SUB-12 NOT GREATER THAN MAX-SUB-10
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-12
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-11
MOVE SUB-11 TO SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
ADD 1 TO SUB-12
ADD 2 TO SUB-13
ADD 3 TO SUB-14
ADD 4 TO SUB-15
ADD 5 TO SUB-16
ADD 6 TO SUB-17
ADD 7 TO SUB-18
ADD 8 TO SUB-19
ADD 9 TO SUB-20
ADD 10 TO SUB-21
ADD 11 TO SUB-22.
SET-TWENTY-TWO-L.
IF SUB-12 NOT GREATER THAN MAX-SUB-10
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-K.
IF SUB-11 NOT GREATER THAN MAX-SUB-11
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-11
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-10
MOVE SUB-10 TO SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
ADD 1 TO SUB-11
ADD 2 TO SUB-12
ADD 3 TO SUB-13
ADD 4 TO SUB-14
ADD 5 TO SUB-15
ADD 6 TO SUB-16
ADD 7 TO SUB-17
ADD 8 TO SUB-18
ADD 9 TO SUB-19
ADD 10 TO SUB-20
ADD 11 TO SUB-21
ADD 12 TO SUB-22.
SET-TWENTY-TWO-M.
IF SUB-11 NOT GREATER THAN MAX-SUB-11
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-L.
IF SUB-10 NOT GREATER THAN MAX-SUB-12
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-10
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-9
MOVE SUB-9 TO SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
ADD 1 TO SUB-10
ADD 2 TO SUB-11
ADD 3 TO SUB-12
ADD 4 TO SUB-13
ADD 5 TO SUB-14
ADD 6 TO SUB-15
ADD 7 TO SUB-16
ADD 8 TO SUB-17
ADD 9 TO SUB-18
ADD 10 TO SUB-19
ADD 11 TO SUB-20
ADD 12 TO SUB-21
ADD 13 TO SUB-22.
SET-TWENTY-TWO-N.
IF SUB-10 NOT GREATER THAN MAX-SUB-12
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-M.
IF SUB-9 NOT GREATER THAN MAX-SUB-13
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-9
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-8
MOVE SUB-8 TO SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
ADD 1 TO SUB-9
ADD 2 TO SUB-10
ADD 3 TO SUB-11
ADD 4 TO SUB-12
ADD 5 TO SUB-13
ADD 6 TO SUB-14
ADD 7 TO SUB-15
ADD 8 TO SUB-16
ADD 9 TO SUB-17
ADD 10 TO SUB-18
ADD 11 TO SUB-19
ADD 12 TO SUB-20
ADD 13 TO SUB-21
ADD 14 TO SUB-22.
SET-TWENTY-TWO-O.
IF SUB-9 NOT GREATER THAN MAX-SUB-13
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-N.
IF SUB-8 NOT GREATER THAN MAX-SUB-14
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-8
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
ADD 1 TO SUB-8
ADD 2 TO SUB-9
ADD 3 TO SUB-10
ADD 4 TO SUB-11
ADD 5 TO SUB-12
ADD 6 TO SUB-13
ADD 7 TO SUB-14
ADD 8 TO SUB-15
ADD 9 TO SUB-16
ADD 10 TO SUB-17
ADD 11 TO SUB-18
ADD 12 TO SUB-19
ADD 13 TO SUB-20
ADD 14 TO SUB-21
ADD 15 TO SUB-22.
SET-TWENTY-TWO-P.
IF SUB-8 NOT GREATER THAN MAX-SUB-14
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-O.
IF SUB-7 NOT GREATER THAN MAX-SUB-15
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
ADD 1 TO SUB-7
ADD 2 TO SUB-8
ADD 3 TO SUB-9
ADD 4 TO SUB-10
ADD 5 TO SUB-11
ADD 6 TO SUB-12
ADD 7 TO SUB-13
ADD 8 TO SUB-14
ADD 9 TO SUB-15
ADD 10 TO SUB-16
ADD 11 TO SUB-17
ADD 12 TO SUB-18
ADD 13 TO SUB-19
ADD 14 TO SUB-20
ADD 15 TO SUB-21
ADD 16 TO SUB-22.
SET-TWENTY-TWO-Q.
IF SUB-7 NOT GREATER THAN MAX-SUB-15
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-P.
IF SUB-6 NOT GREATER THAN MAX-SUB-16
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8
ADD 4 TO SUB-9
ADD 5 TO SUB-10
ADD 6 TO SUB-11
ADD 7 TO SUB-12
ADD 8 TO SUB-13
ADD 9 TO SUB-14
ADD 10 TO SUB-15
ADD 11 TO SUB-16
ADD 12 TO SUB-17
ADD 13 TO SUB-18
ADD 14 TO SUB-19
ADD 15 TO SUB-20
ADD 16 TO SUB-21
ADD 17 TO SUB-22.
SET-TWENTY-TWO-R.
IF SUB-6 NOT GREATER THAN MAX-SUB-16
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-Q.
IF SUB-5 NOT GREATER THAN MAX-SUB-17
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8
ADD 5 TO SUB-9
ADD 6 TO SUB-10
ADD 7 TO SUB-11
ADD 8 TO SUB-12
ADD 9 TO SUB-13
ADD 10 TO SUB-14
ADD 11 TO SUB-15
ADD 12 TO SUB-16
ADD 13 TO SUB-17
ADD 14 TO SUB-18
ADD 15 TO SUB-19
ADD 16 TO SUB-20
ADD 17 TO SUB-21
ADD 18 TO SUB-22.
SET-TWENTY-TWO-S.
IF SUB-5 NOT GREATER THAN MAX-SUB-17
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-R.
IF SUB-4 NOT GREATER THAN MAX-SUB-18
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8
ADD 6 TO SUB-9
ADD 7 TO SUB-10
ADD 8 TO SUB-11
ADD 9 TO SUB-12
ADD 10 TO SUB-13
ADD 11 TO SUB-14
ADD 12 TO SUB-15
ADD 13 TO SUB-16
ADD 14 TO SUB-17
ADD 15 TO SUB-18
ADD 16 TO SUB-19
ADD 17 TO SUB-20
ADD 18 TO SUB-21
ADD 19 TO SUB-22.
SET-TWENTY-TWO-T.
IF SUB-4 NOT GREATER THAN MAX-SUB-18
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-S.
IF SUB-3 NOT GREATER THAN MAX-SUB-19
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
MOVE SUB-2 TO SUB-4
MOVE SUB-2 TO SUB-5
MOVE SUB-2 TO SUB-6
MOVE SUB-2 TO SUB-7
MOVE SUB-2 TO SUB-8
MOVE SUB-2 TO SUB-9
MOVE SUB-2 TO SUB-10
MOVE SUB-2 TO SUB-11
MOVE SUB-2 TO SUB-12
MOVE SUB-2 TO SUB-13
MOVE SUB-2 TO SUB-14
MOVE SUB-2 TO SUB-15
MOVE SUB-2 TO SUB-16
MOVE SUB-2 TO SUB-17
MOVE SUB-2 TO SUB-18
MOVE SUB-2 TO SUB-19
MOVE SUB-2 TO SUB-20
MOVE SUB-2 TO SUB-21
MOVE SUB-2 TO SUB-22
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8
ADD 7 TO SUB-9
ADD 8 TO SUB-10
ADD 9 TO SUB-11
ADD 10 TO SUB-12
ADD 11 TO SUB-13
ADD 12 TO SUB-14
ADD 13 TO SUB-15
ADD 14 TO SUB-16
ADD 15 TO SUB-17
ADD 16 TO SUB-18
ADD 17 TO SUB-19
ADD 18 TO SUB-20
ADD 19 TO SUB-21
ADD 20 TO SUB-22.
SET-TWENTY-TWO-U.
IF SUB-3 NOT GREATER THAN MAX-SUB-19
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
GO TO SET-TWENTY-TWO-T.
IF SUB-2 NOT GREATER THAN MAX-SUB-20
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-TWENTY-TWO-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
ADD 8 TO SUB-9
ADD 9 TO SUB-10
ADD 10 TO SUB-11
ADD 11 TO SUB-12
ADD 12 TO SUB-13
ADD 13 TO SUB-14
ADD 14 TO SUB-15
ADD 15 TO SUB-16
ADD 16 TO SUB-17
ADD 17 TO SUB-18
ADD 18 TO SUB-19
ADD 19 TO SUB-20
ADD 20 TO SUB-21
ADD 21 TO SUB-22
PERFORM TWENTY-TWO-SUB-RTN THRU TWENTY-TWO-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-21
GO TO SET-TWENTY-TWO-A.
SET-TWENTY-TWO-X. EXIT.
TWENTY-TWO-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
MOVE SUB-9 TO WS-SUB-9.
MOVE SUB-10 TO WS-SUB-10.
MOVE SUB-11 TO WS-SUB-11.
MOVE SUB-12 TO WS-SUB-12.
MOVE SUB-13 TO WS-SUB-13.
MOVE SUB-14 TO WS-SUB-14.
MOVE SUB-15 TO WS-SUB-15.
MOVE SUB-16 TO WS-SUB-16.
MOVE SUB-17 TO WS-SUB-17.
MOVE SUB-18 TO WS-SUB-18.
MOVE SUB-19 TO WS-SUB-19.
MOVE SUB-20 TO WS-SUB-20.
MOVE SUB-21 TO WS-SUB-21.
MOVE SUB-22 TO WS-SUB-22.
IF SUB-22 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16 AND
SUB-16 < SUB-17 AND
SUB-17 < SUB-18 AND
SUB-18 < SUB-19 AND
SUB-19 < SUB-20 AND
SUB-20 < SUB-21 AND
SUB-21 < SUB-22
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-22 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16 AND
SUB-16 < SUB-17 AND
SUB-17 < SUB-18 AND
SUB-18 < SUB-19 AND
SUB-19 < SUB-20 AND
SUB-20 < SUB-21 AND
SUB-21 < SUB-22)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8),
INT(SUB-9),
INT(SUB-10),
INT(SUB-11),
INT(SUB-12),
INT(SUB-13),
INT(SUB-14),
INT(SUB-15),
INT(SUB-16),
INT(SUB-17),
INT(SUB-18),
INT(SUB-19), GIVING RESULT-ST
ADD INT(SUB-20),
INT(SUB-21),
INT(SUB-22)
RESULT-ST
GIVING RESULT-22
ADD 1 TO SOLVE-TICK
IF RESULT-22 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-22-RTN THRU DISPLAY-22-RTN-X.
TWENTY-TWO-SUB-RTN-X. EXIT.
DISPLAY-22-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-9) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-10) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-11) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-12) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-13) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-14) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
MOVE 1 TO SUB-L2
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-15) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-16) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-17) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-18) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-19) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-20) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-21) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-22) TO INT-DIS2(SUB-O, SUB-L2).
MOVE OUT-LINE2 (SUB-O) TO OUT-LINE (SUB-O).
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-22-RTN-X. EXIT.
SET-TWENTY-THREE.
IF TOTAL-ZERO EQUAL ZERO
PERFORM ELAPSED-TIME THRU ELAPSED-TIME-X.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
MOVE 9 TO SUB-9
MOVE 10 TO SUB-10
MOVE 11 TO SUB-11
MOVE 12 TO SUB-12
MOVE 13 TO SUB-13
MOVE 14 TO SUB-14
MOVE 15 TO SUB-15
MOVE 16 TO SUB-16
MOVE 17 TO SUB-17
MOVE 18 TO SUB-18
MOVE 19 TO SUB-19
MOVE 20 TO SUB-20
MOVE 21 TO SUB-21
MOVE 22 TO SUB-22
MOVE 23 TO SUB-23
IF MAX-SUB EQUAL 23
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-X
ELSE
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X.
SET-TWENTY-THREE-A.
ADD 1 TO SUB-23.
IF SUB-23 NOT GREATER THAN MAX-SUB
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-22
MOVE SUB-22 TO SUB-23
ADD 1 TO SUB-23.
SET-TWENTY-THREE-B.
IF SUB-23 NOT GREATER THAN MAX-SUB
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-A.
IF SUB-22 NOT GREATER THAN MAX-SUB-1
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-22
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-21
MOVE SUB-21 TO SUB-22
MOVE SUB-21 TO SUB-23
ADD 1 TO SUB-22
ADD 2 TO SUB-23.
SET-TWENTY-THREE-C.
IF SUB-22 NOT GREATER THAN MAX-SUB-1
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-B.
IF SUB-21 NOT GREATER THAN MAX-SUB-2
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-21
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-20
MOVE SUB-20 TO SUB-21
MOVE SUB-20 TO SUB-22
MOVE SUB-20 TO SUB-23
ADD 1 TO SUB-21
ADD 2 TO SUB-22
ADD 3 TO SUB-23.
SET-TWENTY-THREE-D.
IF SUB-21 NOT GREATER THAN MAX-SUB-2
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-C.
IF SUB-20 NOT GREATER THAN MAX-SUB-3
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-20
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-19
MOVE SUB-19 TO SUB-20
MOVE SUB-19 TO SUB-21
MOVE SUB-19 TO SUB-22
MOVE SUB-19 TO SUB-23
ADD 1 TO SUB-20
ADD 2 TO SUB-21
ADD 3 TO SUB-22
ADD 4 TO SUB-23.
SET-TWENTY-THREE-E.
IF SUB-20 NOT GREATER THAN MAX-SUB-3
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-D.
IF SUB-19 NOT GREATER THAN MAX-SUB-4
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-19
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-18
MOVE SUB-18 TO SUB-19
MOVE SUB-18 TO SUB-20
MOVE SUB-18 TO SUB-21
MOVE SUB-18 TO SUB-22
MOVE SUB-18 TO SUB-23
ADD 1 TO SUB-19
ADD 2 TO SUB-20
ADD 3 TO SUB-21
ADD 4 TO SUB-22
ADD 5 TO SUB-23.
SET-TWENTY-THREE-F.
IF SUB-19 NOT GREATER THAN MAX-SUB-4
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-E.
IF SUB-18 NOT GREATER THAN MAX-SUB-5
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-18
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-17
MOVE SUB-17 TO SUB-18
MOVE SUB-17 TO SUB-19
MOVE SUB-17 TO SUB-20
MOVE SUB-17 TO SUB-21
MOVE SUB-17 TO SUB-22
MOVE SUB-17 TO SUB-23
ADD 1 TO SUB-18
ADD 2 TO SUB-19
ADD 3 TO SUB-20
ADD 4 TO SUB-21
ADD 5 TO SUB-22
ADD 6 TO SUB-23.
SET-TWENTY-THREE-G.
IF SUB-18 NOT GREATER THAN MAX-SUB-5
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-F.
IF SUB-17 NOT GREATER THAN MAX-SUB-6
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-17
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-16
MOVE SUB-16 TO SUB-17
MOVE SUB-16 TO SUB-18
MOVE SUB-16 TO SUB-19
MOVE SUB-16 TO SUB-20
MOVE SUB-16 TO SUB-21
MOVE SUB-16 TO SUB-22
MOVE SUB-16 TO SUB-23
ADD 1 TO SUB-17
ADD 2 TO SUB-18
ADD 3 TO SUB-19
ADD 4 TO SUB-20
ADD 5 TO SUB-21
ADD 6 TO SUB-22
ADD 7 TO SUB-23.
SET-TWENTY-THREE-H.
IF SUB-17 NOT GREATER THAN MAX-SUB-6
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-G.
IF SUB-16 NOT GREATER THAN MAX-SUB-7
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-16
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-15
MOVE SUB-15 TO SUB-16
MOVE SUB-15 TO SUB-17
MOVE SUB-15 TO SUB-18
MOVE SUB-15 TO SUB-19
MOVE SUB-15 TO SUB-20
MOVE SUB-15 TO SUB-21
MOVE SUB-15 TO SUB-22
MOVE SUB-15 TO SUB-23
ADD 1 TO SUB-16
ADD 2 TO SUB-17
ADD 3 TO SUB-18
ADD 4 TO SUB-19
ADD 5 TO SUB-20
ADD 6 TO SUB-21
ADD 7 TO SUB-22
ADD 8 TO SUB-23.
SET-TWENTY-THREE-I.
IF SUB-16 NOT GREATER THAN MAX-SUB-7
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-H.
IF SUB-15 NOT GREATER THAN MAX-SUB-8
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-15
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-14
MOVE SUB-14 TO SUB-15
MOVE SUB-14 TO SUB-16
MOVE SUB-14 TO SUB-17
MOVE SUB-14 TO SUB-18
MOVE SUB-14 TO SUB-19
MOVE SUB-14 TO SUB-20
MOVE SUB-14 TO SUB-21
MOVE SUB-14 TO SUB-22
MOVE SUB-14 TO SUB-23
ADD 1 TO SUB-15
ADD 2 TO SUB-16
ADD 3 TO SUB-17
ADD 4 TO SUB-18
ADD 5 TO SUB-19
ADD 6 TO SUB-20
ADD 7 TO SUB-21
ADD 8 TO SUB-22
ADD 9 TO SUB-23.
SET-TWENTY-THREE-J.
IF SUB-15 NOT GREATER THAN MAX-SUB-8
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-I.
IF SUB-14 NOT GREATER THAN MAX-SUB-9
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-14
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-13
MOVE SUB-13 TO SUB-14
MOVE SUB-13 TO SUB-15
MOVE SUB-13 TO SUB-16
MOVE SUB-13 TO SUB-17
MOVE SUB-13 TO SUB-18
MOVE SUB-13 TO SUB-19
MOVE SUB-13 TO SUB-20
MOVE SUB-13 TO SUB-21
MOVE SUB-13 TO SUB-22
MOVE SUB-13 TO SUB-23
ADD 1 TO SUB-14
ADD 2 TO SUB-15
ADD 3 TO SUB-16
ADD 4 TO SUB-17
ADD 5 TO SUB-18
ADD 6 TO SUB-19
ADD 7 TO SUB-20
ADD 8 TO SUB-21
ADD 9 TO SUB-22
ADD 10 TO SUB-23.
SET-TWENTY-THREE-K.
IF SUB-14 NOT GREATER THAN MAX-SUB-9
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-J.
IF SUB-13 NOT GREATER THAN MAX-SUB-10
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-13
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-12
MOVE SUB-12 TO SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
ADD 1 TO SUB-13
ADD 2 TO SUB-14
ADD 3 TO SUB-15
ADD 4 TO SUB-16
ADD 5 TO SUB-17
ADD 6 TO SUB-18
ADD 7 TO SUB-19
ADD 8 TO SUB-20
ADD 9 TO SUB-21
ADD 10 TO SUB-22
ADD 11 TO SUB-23.
SET-TWENTY-THREE-L.
IF SUB-13 NOT GREATER THAN MAX-SUB-10
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-K.
IF SUB-12 NOT GREATER THAN MAX-SUB-11
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-12
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-11
MOVE SUB-11 TO SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
ADD 1 TO SUB-12
ADD 2 TO SUB-13
ADD 3 TO SUB-14
ADD 4 TO SUB-15
ADD 5 TO SUB-16
ADD 6 TO SUB-17
ADD 7 TO SUB-18
ADD 8 TO SUB-19
ADD 9 TO SUB-20
ADD 10 TO SUB-21
ADD 11 TO SUB-22
ADD 12 TO SUB-23.
SET-TWENTY-THREE-M.
IF SUB-12 NOT GREATER THAN MAX-SUB-11
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-L.
IF SUB-11 NOT GREATER THAN MAX-SUB-12
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-11
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-10
MOVE SUB-10 TO SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
ADD 1 TO SUB-11
ADD 2 TO SUB-12
ADD 3 TO SUB-13
ADD 4 TO SUB-14
ADD 5 TO SUB-15
ADD 6 TO SUB-16
ADD 7 TO SUB-17
ADD 8 TO SUB-18
ADD 9 TO SUB-19
ADD 10 TO SUB-20
ADD 11 TO SUB-21
ADD 12 TO SUB-22
ADD 13 TO SUB-23.
SET-TWENTY-THREE-N.
IF SUB-11 NOT GREATER THAN MAX-SUB-12
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-M.
IF SUB-10 NOT GREATER THAN MAX-SUB-13
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-10
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-9
MOVE SUB-9 TO SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
ADD 1 TO SUB-10
ADD 2 TO SUB-11
ADD 3 TO SUB-12
ADD 4 TO SUB-13
ADD 5 TO SUB-14
ADD 6 TO SUB-15
ADD 7 TO SUB-16
ADD 8 TO SUB-17
ADD 9 TO SUB-18
ADD 10 TO SUB-19
ADD 11 TO SUB-20
ADD 12 TO SUB-21
ADD 13 TO SUB-22
ADD 14 TO SUB-23.
SET-TWENTY-THREE-O.
IF SUB-10 NOT GREATER THAN MAX-SUB-13
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-N.
IF SUB-9 NOT GREATER THAN MAX-SUB-14
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-9
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-8
MOVE SUB-8 TO SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
ADD 1 TO SUB-9
ADD 2 TO SUB-10
ADD 3 TO SUB-11
ADD 4 TO SUB-12
ADD 5 TO SUB-13
ADD 6 TO SUB-14
ADD 7 TO SUB-15
ADD 8 TO SUB-16
ADD 9 TO SUB-17
ADD 10 TO SUB-18
ADD 11 TO SUB-19
ADD 12 TO SUB-20
ADD 13 TO SUB-21
ADD 14 TO SUB-22
ADD 15 TO SUB-23.
SET-TWENTY-THREE-P.
IF SUB-9 NOT GREATER THAN MAX-SUB-14
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-O.
IF SUB-8 NOT GREATER THAN MAX-SUB-15
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-8
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
ADD 1 TO SUB-8
ADD 2 TO SUB-9
ADD 3 TO SUB-10
ADD 4 TO SUB-11
ADD 5 TO SUB-12
ADD 6 TO SUB-13
ADD 7 TO SUB-14
ADD 8 TO SUB-15
ADD 9 TO SUB-16
ADD 10 TO SUB-17
ADD 11 TO SUB-18
ADD 12 TO SUB-19
ADD 13 TO SUB-20
ADD 14 TO SUB-21
ADD 15 TO SUB-22
ADD 16 TO SUB-23.
SET-TWENTY-THREE-Q.
IF SUB-8 NOT GREATER THAN MAX-SUB-15
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-P.
IF SUB-7 NOT GREATER THAN MAX-SUB-16
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
ADD 1 TO SUB-7
ADD 2 TO SUB-8
ADD 3 TO SUB-9
ADD 4 TO SUB-10
ADD 5 TO SUB-11
ADD 6 TO SUB-12
ADD 7 TO SUB-13
ADD 8 TO SUB-14
ADD 9 TO SUB-15
ADD 10 TO SUB-16
ADD 11 TO SUB-17
ADD 12 TO SUB-18
ADD 13 TO SUB-19
ADD 14 TO SUB-20
ADD 15 TO SUB-21
ADD 16 TO SUB-22
ADD 17 TO SUB-23.
SET-TWENTY-THREE-R.
IF SUB-7 NOT GREATER THAN MAX-SUB-16
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-Q.
IF SUB-6 NOT GREATER THAN MAX-SUB-17
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8
ADD 4 TO SUB-9
ADD 5 TO SUB-10
ADD 6 TO SUB-11
ADD 7 TO SUB-12
ADD 8 TO SUB-13
ADD 9 TO SUB-14
ADD 10 TO SUB-15
ADD 11 TO SUB-16
ADD 12 TO SUB-17
ADD 13 TO SUB-18
ADD 14 TO SUB-19
ADD 15 TO SUB-20
ADD 16 TO SUB-21
ADD 17 TO SUB-22
ADD 18 TO SUB-23.
SET-TWENTY-THREE-S.
IF SUB-6 NOT GREATER THAN MAX-SUB-17
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-R.
IF SUB-5 NOT GREATER THAN MAX-SUB-18
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8
ADD 5 TO SUB-9
ADD 6 TO SUB-10
ADD 7 TO SUB-11
ADD 8 TO SUB-12
ADD 9 TO SUB-13
ADD 10 TO SUB-14
ADD 11 TO SUB-15
ADD 12 TO SUB-16
ADD 13 TO SUB-17
ADD 14 TO SUB-18
ADD 15 TO SUB-19
ADD 16 TO SUB-20
ADD 17 TO SUB-21
ADD 18 TO SUB-22
ADD 19 TO SUB-23.
SET-TWENTY-THREE-T.
IF SUB-5 NOT GREATER THAN MAX-SUB-18
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-S.
IF SUB-4 NOT GREATER THAN MAX-SUB-19
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8
ADD 6 TO SUB-9
ADD 7 TO SUB-10
ADD 8 TO SUB-11
ADD 9 TO SUB-12
ADD 10 TO SUB-13
ADD 11 TO SUB-14
ADD 12 TO SUB-15
ADD 13 TO SUB-16
ADD 14 TO SUB-17
ADD 15 TO SUB-18
ADD 16 TO SUB-19
ADD 17 TO SUB-20
ADD 18 TO SUB-21
ADD 19 TO SUB-22
ADD 20 TO SUB-23.
SET-TWENTY-THREE-U.
IF SUB-4 NOT GREATER THAN MAX-SUB-19
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-T.
IF SUB-3 NOT GREATER THAN MAX-SUB-20
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
MOVE SUB-2 TO SUB-4
MOVE SUB-2 TO SUB-5
MOVE SUB-2 TO SUB-6
MOVE SUB-2 TO SUB-7
MOVE SUB-2 TO SUB-8
MOVE SUB-2 TO SUB-9
MOVE SUB-2 TO SUB-10
MOVE SUB-2 TO SUB-11
MOVE SUB-2 TO SUB-12
MOVE SUB-2 TO SUB-13
MOVE SUB-2 TO SUB-14
MOVE SUB-2 TO SUB-15
MOVE SUB-2 TO SUB-16
MOVE SUB-2 TO SUB-17
MOVE SUB-2 TO SUB-18
MOVE SUB-2 TO SUB-19
MOVE SUB-2 TO SUB-20
MOVE SUB-2 TO SUB-21
MOVE SUB-2 TO SUB-22
MOVE SUB-2 TO SUB-23
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8
ADD 7 TO SUB-9
ADD 8 TO SUB-10
ADD 9 TO SUB-11
ADD 10 TO SUB-12
ADD 11 TO SUB-13
ADD 12 TO SUB-14
ADD 13 TO SUB-15
ADD 14 TO SUB-16
ADD 15 TO SUB-17
ADD 16 TO SUB-18
ADD 17 TO SUB-19
ADD 18 TO SUB-20
ADD 19 TO SUB-21
ADD 20 TO SUB-22
ADD 21 TO SUB-23.
SET-TWENTY-THREE-V.
IF SUB-3 NOT GREATER THAN MAX-SUB-20
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
GO TO SET-TWENTY-THREE-U.
IF SUB-2 NOT GREATER THAN MAX-SUB-21
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-TWENTY-THREE-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
MOVE SUB-1 TO SUB-23
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
ADD 8 TO SUB-9
ADD 9 TO SUB-10
ADD 10 TO SUB-11
ADD 11 TO SUB-12
ADD 12 TO SUB-13
ADD 13 TO SUB-14
ADD 14 TO SUB-15
ADD 15 TO SUB-16
ADD 16 TO SUB-17
ADD 17 TO SUB-18
ADD 18 TO SUB-19
ADD 19 TO SUB-20
ADD 20 TO SUB-21
ADD 21 TO SUB-22
ADD 22 TO SUB-23
PERFORM TWENTY-THREE-SUB-RTN THRU TWENTY-THREE-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-22
GO TO SET-TWENTY-THREE-A.
SET-TWENTY-THREE-X. EXIT.
TWENTY-THREE-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
MOVE SUB-9 TO WS-SUB-9.
MOVE SUB-10 TO WS-SUB-10.
MOVE SUB-11 TO WS-SUB-11.
MOVE SUB-12 TO WS-SUB-12.
MOVE SUB-13 TO WS-SUB-13.
MOVE SUB-14 TO WS-SUB-14.
MOVE SUB-15 TO WS-SUB-15.
MOVE SUB-16 TO WS-SUB-16.
MOVE SUB-17 TO WS-SUB-17.
MOVE SUB-18 TO WS-SUB-18.
MOVE SUB-19 TO WS-SUB-19.
MOVE SUB-20 TO WS-SUB-20.
MOVE SUB-21 TO WS-SUB-21.
MOVE SUB-22 TO WS-SUB-22.
MOVE SUB-23 TO WS-SUB-23.
IF SUB-23 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16 AND
SUB-16 < SUB-17 AND
SUB-17 < SUB-18 AND
SUB-18 < SUB-19 AND
SUB-19 < SUB-20 AND
SUB-20 < SUB-21 AND
SUB-21 < SUB-22 AND
SUB-22 < SUB-23
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-23 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16 AND
SUB-16 < SUB-17 AND
SUB-17 < SUB-18 AND
SUB-18 < SUB-19 AND
SUB-19 < SUB-20 AND
SUB-20 < SUB-21 AND
SUB-21 < SUB-22 AND
SUB-22 < SUB-23)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8),
INT(SUB-9),
INT(SUB-10),
INT(SUB-11),
INT(SUB-12),
INT(SUB-13),
INT(SUB-14),
INT(SUB-15),
INT(SUB-16),
INT(SUB-17),
INT(SUB-18),
INT(SUB-19),
INT(SUB-20) GIVING RESULT-ST
ADD INT(SUB-21),
INT(SUB-22)
INT(SUB-23)
RESULT-ST
GIVING RESULT-23
ADD 1 TO SOLVE-TICK
IF RESULT-23 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-23-RTN THRU DISPLAY-23-RTN-X.
TWENTY-THREE-SUB-RTN-X. EXIT.
DISPLAY-23-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-9) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-10) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-11) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-12) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-13) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-14) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
MOVE 1 TO SUB-L2
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-15) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-16) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-17) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-18) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-19) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-20) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-21) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-22) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-23) TO INT-DIS2(SUB-O, SUB-L2).
MOVE OUT-LINE2 (SUB-O) TO OUT-LINE (SUB-O).
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-23-RTN-X. EXIT.
SET-TWENTY-FOUR.
MOVE 1 TO SUB-1
MOVE 2 TO SUB-2
MOVE 3 TO SUB-3
MOVE 4 TO SUB-4
MOVE 5 TO SUB-5
MOVE 6 TO SUB-6
MOVE 7 TO SUB-7
MOVE 8 TO SUB-8
MOVE 9 TO SUB-9
MOVE 10 TO SUB-10
MOVE 11 TO SUB-11
MOVE 12 TO SUB-12
MOVE 13 TO SUB-13
MOVE 14 TO SUB-14
MOVE 15 TO SUB-15
MOVE 16 TO SUB-16
MOVE 17 TO SUB-17
MOVE 18 TO SUB-18
MOVE 19 TO SUB-19
MOVE 20 TO SUB-20
MOVE 21 TO SUB-21
MOVE 22 TO SUB-22
MOVE 23 TO SUB-23
MOVE 24 TO SUB-24
IF MAX-SUB EQUAL 24
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-X
ELSE
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X.
SET-TWENTY-FOUR-A.
ADD 1 TO SUB-24.
IF SUB-24 NOT GREATER THAN MAX-SUB
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-23
MOVE SUB-23 TO SUB-24
ADD 1 TO SUB-24.
SET-TWENTY-FOUR-B.
IF SUB-24 NOT GREATER THAN MAX-SUB
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-A.
IF SUB-23 NOT GREATER THAN MAX-SUB-1
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-23
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-22
MOVE SUB-22 TO SUB-23
MOVE SUB-22 TO SUB-24
ADD 1 TO SUB-23
ADD 2 TO SUB-24.
SET-TWENTY-FOUR-C.
IF SUB-23 NOT GREATER THAN MAX-SUB-1
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-B.
IF SUB-22 NOT GREATER THAN MAX-SUB-2
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-22
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-21
MOVE SUB-21 TO SUB-22
MOVE SUB-21 TO SUB-23
MOVE SUB-21 TO SUB-24
ADD 1 TO SUB-22
ADD 2 TO SUB-23
ADD 3 TO SUB-24.
SET-TWENTY-FOUR-D.
IF SUB-22 NOT GREATER THAN MAX-SUB-2
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-C.
IF SUB-21 NOT GREATER THAN MAX-SUB-3
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-21
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-20
MOVE SUB-20 TO SUB-21
MOVE SUB-20 TO SUB-22
MOVE SUB-20 TO SUB-23
MOVE SUB-20 TO SUB-24
ADD 1 TO SUB-21
ADD 2 TO SUB-22
ADD 3 TO SUB-23
ADD 4 TO SUB-24.
SET-TWENTY-FOUR-E.
IF SUB-21 NOT GREATER THAN MAX-SUB-3
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-D.
IF SUB-20 NOT GREATER THAN MAX-SUB-4
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-20
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-19
MOVE SUB-19 TO SUB-20
MOVE SUB-19 TO SUB-21
MOVE SUB-19 TO SUB-22
MOVE SUB-19 TO SUB-23
MOVE SUB-19 TO SUB-24
ADD 1 TO SUB-20
ADD 2 TO SUB-21
ADD 3 TO SUB-22
ADD 4 TO SUB-23
ADD 5 TO SUB-24.
SET-TWENTY-FOUR-F.
IF SUB-20 NOT GREATER THAN MAX-SUB-4
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-E.
IF SUB-19 NOT GREATER THAN MAX-SUB-5
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-19
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-18
MOVE SUB-18 TO SUB-19
MOVE SUB-18 TO SUB-20
MOVE SUB-18 TO SUB-21
MOVE SUB-18 TO SUB-22
MOVE SUB-18 TO SUB-23
MOVE SUB-18 TO SUB-24
ADD 1 TO SUB-19
ADD 2 TO SUB-20
ADD 3 TO SUB-21
ADD 4 TO SUB-22
ADD 5 TO SUB-23
ADD 6 TO SUB-24.
SET-TWENTY-FOUR-G.
IF SUB-19 NOT GREATER THAN MAX-SUB-5
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-F.
IF SUB-18 NOT GREATER THAN MAX-SUB-6
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-18
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-17
MOVE SUB-17 TO SUB-18
MOVE SUB-17 TO SUB-19
MOVE SUB-17 TO SUB-20
MOVE SUB-17 TO SUB-21
MOVE SUB-17 TO SUB-22
MOVE SUB-17 TO SUB-23
MOVE SUB-17 TO SUB-24
ADD 1 TO SUB-18
ADD 2 TO SUB-19
ADD 3 TO SUB-20
ADD 4 TO SUB-21
ADD 5 TO SUB-22
ADD 6 TO SUB-23
ADD 7 TO SUB-24.
SET-TWENTY-FOUR-H.
IF SUB-18 NOT GREATER THAN MAX-SUB-6
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-G.
IF SUB-17 NOT GREATER THAN MAX-SUB-7
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-17
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-16
MOVE SUB-16 TO SUB-17
MOVE SUB-16 TO SUB-18
MOVE SUB-16 TO SUB-19
MOVE SUB-16 TO SUB-20
MOVE SUB-16 TO SUB-21
MOVE SUB-16 TO SUB-22
MOVE SUB-16 TO SUB-23
MOVE SUB-16 TO SUB-24
ADD 1 TO SUB-17
ADD 2 TO SUB-18
ADD 3 TO SUB-19
ADD 4 TO SUB-20
ADD 5 TO SUB-21
ADD 6 TO SUB-22
ADD 7 TO SUB-23
ADD 8 TO SUB-24.
SET-TWENTY-FOUR-I.
IF SUB-17 NOT GREATER THAN MAX-SUB-7
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-H.
IF SUB-16 NOT GREATER THAN MAX-SUB-8
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-16
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-15
MOVE SUB-15 TO SUB-16
MOVE SUB-15 TO SUB-17
MOVE SUB-15 TO SUB-18
MOVE SUB-15 TO SUB-19
MOVE SUB-15 TO SUB-20
MOVE SUB-15 TO SUB-21
MOVE SUB-15 TO SUB-22
MOVE SUB-15 TO SUB-23
MOVE SUB-15 TO SUB-24
ADD 1 TO SUB-16
ADD 2 TO SUB-17
ADD 3 TO SUB-18
ADD 4 TO SUB-19
ADD 5 TO SUB-20
ADD 6 TO SUB-21
ADD 7 TO SUB-22
ADD 8 TO SUB-23
ADD 9 TO SUB-24.
SET-TWENTY-FOUR-J.
IF SUB-16 NOT GREATER THAN MAX-SUB-8
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-I.
IF SUB-15 NOT GREATER THAN MAX-SUB-9
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-15
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-14
MOVE SUB-14 TO SUB-15
MOVE SUB-14 TO SUB-16
MOVE SUB-14 TO SUB-17
MOVE SUB-14 TO SUB-18
MOVE SUB-14 TO SUB-19
MOVE SUB-14 TO SUB-20
MOVE SUB-14 TO SUB-21
MOVE SUB-14 TO SUB-22
MOVE SUB-14 TO SUB-23
MOVE SUB-14 TO SUB-24
ADD 1 TO SUB-15
ADD 2 TO SUB-16
ADD 3 TO SUB-17
ADD 4 TO SUB-18
ADD 5 TO SUB-19
ADD 6 TO SUB-20
ADD 7 TO SUB-21
ADD 8 TO SUB-22
ADD 9 TO SUB-23
ADD 10 TO SUB-24.
SET-TWENTY-FOUR-K.
IF SUB-15 NOT GREATER THAN MAX-SUB-9
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-J.
IF SUB-14 NOT GREATER THAN MAX-SUB-10
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-14
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-13
MOVE SUB-13 TO SUB-14
MOVE SUB-13 TO SUB-15
MOVE SUB-13 TO SUB-16
MOVE SUB-13 TO SUB-17
MOVE SUB-13 TO SUB-18
MOVE SUB-13 TO SUB-19
MOVE SUB-13 TO SUB-20
MOVE SUB-13 TO SUB-21
MOVE SUB-13 TO SUB-22
MOVE SUB-13 TO SUB-23
MOVE SUB-13 TO SUB-24
ADD 1 TO SUB-14
ADD 2 TO SUB-15
ADD 3 TO SUB-16
ADD 4 TO SUB-17
ADD 5 TO SUB-18
ADD 6 TO SUB-19
ADD 7 TO SUB-20
ADD 8 TO SUB-21
ADD 9 TO SUB-22
ADD 10 TO SUB-23
ADD 11 TO SUB-24.
SET-TWENTY-FOUR-L.
IF SUB-14 NOT GREATER THAN MAX-SUB-10
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-K.
IF SUB-13 NOT GREATER THAN MAX-SUB-11
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-13
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-12
MOVE SUB-12 TO SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
SUB-24
ADD 1 TO SUB-13
ADD 2 TO SUB-14
ADD 3 TO SUB-15
ADD 4 TO SUB-16
ADD 5 TO SUB-17
ADD 6 TO SUB-18
ADD 7 TO SUB-19
ADD 8 TO SUB-20
ADD 9 TO SUB-21
ADD 10 TO SUB-22
ADD 11 TO SUB-23
ADD 12 TO SUB-24.
SET-TWENTY-FOUR-M.
IF SUB-13 NOT GREATER THAN MAX-SUB-11
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-L.
IF SUB-12 NOT GREATER THAN MAX-SUB-12
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-12
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-11
MOVE SUB-11 TO SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
SUB-24
ADD 1 TO SUB-12
ADD 2 TO SUB-13
ADD 3 TO SUB-14
ADD 4 TO SUB-15
ADD 5 TO SUB-16
ADD 6 TO SUB-17
ADD 7 TO SUB-18
ADD 8 TO SUB-19
ADD 9 TO SUB-20
ADD 10 TO SUB-21
ADD 11 TO SUB-22
ADD 12 TO SUB-23
ADD 13 TO SUB-24.
SET-TWENTY-FOUR-N.
IF SUB-12 NOT GREATER THAN MAX-SUB-12
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-M.
IF SUB-11 NOT GREATER THAN MAX-SUB-13
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-11
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-10
MOVE SUB-10 TO SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
SUB-24
ADD 1 TO SUB-11
ADD 2 TO SUB-12
ADD 3 TO SUB-13
ADD 4 TO SUB-14
ADD 5 TO SUB-15
ADD 6 TO SUB-16
ADD 7 TO SUB-17
ADD 8 TO SUB-18
ADD 9 TO SUB-19
ADD 10 TO SUB-20
ADD 11 TO SUB-21
ADD 12 TO SUB-22
ADD 13 TO SUB-23
ADD 14 TO SUB-24.
SET-TWENTY-FOUR-O.
IF SUB-11 NOT GREATER THAN MAX-SUB-13
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-N.
IF SUB-10 NOT GREATER THAN MAX-SUB-14
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-10
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-9
MOVE SUB-9 TO SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
SUB-24
ADD 1 TO SUB-10
ADD 2 TO SUB-11
ADD 3 TO SUB-12
ADD 4 TO SUB-13
ADD 5 TO SUB-14
ADD 6 TO SUB-15
ADD 7 TO SUB-16
ADD 8 TO SUB-17
ADD 9 TO SUB-18
ADD 10 TO SUB-19
ADD 11 TO SUB-20
ADD 12 TO SUB-21
ADD 13 TO SUB-22
ADD 14 TO SUB-23
ADD 15 TO SUB-24.
SET-TWENTY-FOUR-P.
IF SUB-10 NOT GREATER THAN MAX-SUB-14
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-O.
IF SUB-9 NOT GREATER THAN MAX-SUB-15
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-9
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-8
MOVE SUB-8 TO SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
SUB-24
ADD 1 TO SUB-9
ADD 2 TO SUB-10
ADD 3 TO SUB-11
ADD 4 TO SUB-12
ADD 5 TO SUB-13
ADD 6 TO SUB-14
ADD 7 TO SUB-15
ADD 8 TO SUB-16
ADD 9 TO SUB-17
ADD 10 TO SUB-18
ADD 11 TO SUB-19
ADD 12 TO SUB-20
ADD 13 TO SUB-21
ADD 14 TO SUB-22
ADD 15 TO SUB-23
ADD 16 TO SUB-24.
SET-TWENTY-FOUR-Q.
IF SUB-9 NOT GREATER THAN MAX-SUB-15
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-P.
IF SUB-8 NOT GREATER THAN MAX-SUB-16
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-8
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-7
MOVE SUB-7 TO SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
SUB-24
ADD 1 TO SUB-8
ADD 2 TO SUB-9
ADD 3 TO SUB-10
ADD 4 TO SUB-11
ADD 5 TO SUB-12
ADD 6 TO SUB-13
ADD 7 TO SUB-14
ADD 8 TO SUB-15
ADD 9 TO SUB-16
ADD 10 TO SUB-17
ADD 11 TO SUB-18
ADD 12 TO SUB-19
ADD 13 TO SUB-20
ADD 14 TO SUB-21
ADD 15 TO SUB-22
ADD 16 TO SUB-23
ADD 17 TO SUB-24.
SET-TWENTY-FOUR-R.
IF SUB-8 NOT GREATER THAN MAX-SUB-16
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-Q.
IF SUB-7 NOT GREATER THAN MAX-SUB-17
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-7
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-6
MOVE SUB-6 TO SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
SUB-24
ADD 1 TO SUB-7
ADD 2 TO SUB-8
ADD 3 TO SUB-9
ADD 4 TO SUB-10
ADD 5 TO SUB-11
ADD 6 TO SUB-12
ADD 7 TO SUB-13
ADD 8 TO SUB-14
ADD 9 TO SUB-15
ADD 10 TO SUB-16
ADD 11 TO SUB-17
ADD 12 TO SUB-18
ADD 13 TO SUB-19
ADD 14 TO SUB-20
ADD 15 TO SUB-21
ADD 16 TO SUB-22
ADD 17 TO SUB-23
ADD 18 TO SUB-24.
SET-TWENTY-FOUR-S.
IF SUB-7 NOT GREATER THAN MAX-SUB-17
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-R.
IF SUB-6 NOT GREATER THAN MAX-SUB-18
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-6
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-5
MOVE SUB-5 TO SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
SUB-24
ADD 1 TO SUB-6
ADD 2 TO SUB-7
ADD 3 TO SUB-8
ADD 4 TO SUB-9
ADD 5 TO SUB-10
ADD 6 TO SUB-11
ADD 7 TO SUB-12
ADD 8 TO SUB-13
ADD 9 TO SUB-14
ADD 10 TO SUB-15
ADD 11 TO SUB-16
ADD 12 TO SUB-17
ADD 13 TO SUB-18
ADD 14 TO SUB-19
ADD 15 TO SUB-20
ADD 16 TO SUB-21
ADD 17 TO SUB-22
ADD 18 TO SUB-23
ADD 19 TO SUB-24.
SET-TWENTY-FOUR-T.
IF SUB-6 NOT GREATER THAN MAX-SUB-18
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-S.
IF SUB-5 NOT GREATER THAN MAX-SUB-19
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-5
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-4
MOVE SUB-4 TO SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
SUB-24
ADD 1 TO SUB-5
ADD 2 TO SUB-6
ADD 3 TO SUB-7
ADD 4 TO SUB-8
ADD 5 TO SUB-9
ADD 6 TO SUB-10
ADD 7 TO SUB-11
ADD 8 TO SUB-12
ADD 9 TO SUB-13
ADD 10 TO SUB-14
ADD 11 TO SUB-15
ADD 12 TO SUB-16
ADD 13 TO SUB-17
ADD 14 TO SUB-18
ADD 15 TO SUB-19
ADD 16 TO SUB-20
ADD 17 TO SUB-21
ADD 18 TO SUB-22
ADD 19 TO SUB-23
ADD 20 TO SUB-24.
SET-TWENTY-FOUR-U.
IF SUB-5 NOT GREATER THAN MAX-SUB-19
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-T.
IF SUB-4 NOT GREATER THAN MAX-SUB-20
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-4
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-3
MOVE SUB-3 TO SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
SUB-24
ADD 1 TO SUB-4
ADD 2 TO SUB-5
ADD 3 TO SUB-6
ADD 4 TO SUB-7
ADD 5 TO SUB-8
ADD 6 TO SUB-9
ADD 7 TO SUB-10
ADD 8 TO SUB-11
ADD 9 TO SUB-12
ADD 10 TO SUB-13
ADD 11 TO SUB-14
ADD 12 TO SUB-15
ADD 13 TO SUB-16
ADD 14 TO SUB-17
ADD 15 TO SUB-18
ADD 16 TO SUB-19
ADD 17 TO SUB-20
ADD 18 TO SUB-21
ADD 19 TO SUB-22
ADD 20 TO SUB-23
ADD 21 TO SUB-24.
SET-TWENTY-FOUR-V.
IF SUB-4 NOT GREATER THAN MAX-SUB-20
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-U.
IF SUB-3 NOT GREATER THAN MAX-SUB-21
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-3
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-2
MOVE SUB-2 TO SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
SUB-24
ADD 1 TO SUB-3
ADD 2 TO SUB-4
ADD 3 TO SUB-5
ADD 4 TO SUB-6
ADD 5 TO SUB-7
ADD 6 TO SUB-8
ADD 7 TO SUB-9
ADD 8 TO SUB-10
ADD 9 TO SUB-11
ADD 10 TO SUB-12
ADD 11 TO SUB-13
ADD 12 TO SUB-14
ADD 13 TO SUB-15
ADD 14 TO SUB-16
ADD 15 TO SUB-17
ADD 16 TO SUB-18
ADD 17 TO SUB-19
ADD 18 TO SUB-20
ADD 19 TO SUB-21
ADD 20 TO SUB-22
ADD 21 TO SUB-23
ADD 22 TO SUB-24.
SET-TWENTY-FOUR-W.
IF SUB-3 NOT GREATER THAN MAX-SUB-21
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
GO TO SET-TWENTY-FOUR-V.
IF SUB-2 NOT GREATER THAN MAX-SUB-22
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X
ADD 1 TO SUB-2
GO TO SET-TWENTY-FOUR-A
ELSE
ADD 1 TO SUB-1
MOVE SUB-1 TO SUB-2
SUB-3
SUB-4
SUB-5
SUB-6
SUB-7
SUB-8
SUB-9
SUB-10
SUB-11
SUB-12
SUB-13
SUB-14
SUB-15
SUB-16
SUB-17
SUB-18
SUB-19
SUB-20
SUB-21
SUB-22
SUB-23
SUB-24
ADD 1 TO SUB-2
ADD 2 TO SUB-3
ADD 3 TO SUB-4
ADD 4 TO SUB-5
ADD 5 TO SUB-6
ADD 6 TO SUB-7
ADD 7 TO SUB-8
ADD 8 TO SUB-9
ADD 9 TO SUB-10
ADD 10 TO SUB-11
ADD 11 TO SUB-12
ADD 12 TO SUB-13
ADD 13 TO SUB-14
ADD 14 TO SUB-15
ADD 15 TO SUB-16
ADD 16 TO SUB-17
ADD 17 TO SUB-18
ADD 18 TO SUB-19
ADD 19 TO SUB-20
ADD 20 TO SUB-21
ADD 21 TO SUB-22
ADD 22 TO SUB-23
ADD 23 TO SUB-24
PERFORM TWENTY-FOUR-SUB-RTN THRU TWENTY-FOUR-SUB-RTN-X.
IF SUB-1 NOT GREATER THAN MAX-SUB-23
GO TO SET-TWENTY-FOUR-A.
SET-TWENTY-FOUR-X. EXIT.
TWENTY-FOUR-SUB-RTN.
MOVE SUB-1 TO WS-SUB-1.
MOVE SUB-2 TO WS-SUB-2.
MOVE SUB-3 TO WS-SUB-3.
MOVE SUB-4 TO WS-SUB-4.
MOVE SUB-5 TO WS-SUB-5.
MOVE SUB-6 TO WS-SUB-6.
MOVE SUB-7 TO WS-SUB-7.
MOVE SUB-8 TO WS-SUB-8.
MOVE SUB-9 TO WS-SUB-9.
MOVE SUB-10 TO WS-SUB-10.
MOVE SUB-11 TO WS-SUB-11.
MOVE SUB-12 TO WS-SUB-12.
MOVE SUB-13 TO WS-SUB-13.
MOVE SUB-14 TO WS-SUB-14.
MOVE SUB-15 TO WS-SUB-15.
MOVE SUB-16 TO WS-SUB-16.
MOVE SUB-17 TO WS-SUB-17.
MOVE SUB-18 TO WS-SUB-18.
MOVE SUB-19 TO WS-SUB-19.
MOVE SUB-20 TO WS-SUB-20.
MOVE SUB-21 TO WS-SUB-21.
MOVE SUB-22 TO WS-SUB-22.
MOVE SUB-23 TO WS-SUB-23.
MOVE SUB-24 TO WS-SUB-24.
IF SUB-24 NOT GREATER THAN MAX-SUB
IF SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16 AND
SUB-16 < SUB-17 AND
SUB-17 < SUB-18 AND
SUB-18 < SUB-19 AND
SUB-19 < SUB-20 AND
SUB-20 < SUB-21 AND
SUB-21 < SUB-22 AND
SUB-22 < SUB-23 AND
SUB-23 < SUB-24
PERFORM OUTPUT-SUBSCIPTS THRU OUTPUT-SUBSCIPTS-X.
IF DUP-SW = 'N'
IF SUB-24 NOT GREATER THAN MAX-SUB
IF (SUB-1 < SUB-2 AND
SUB-2 < SUB-3 AND
SUB-3 < SUB-4 AND
SUB-4 < SUB-5 AND
SUB-5 < SUB-6 AND
SUB-6 < SUB-7 AND
SUB-7 < SUB-8 AND
SUB-8 < SUB-9 AND
SUB-9 < SUB-10 AND
SUB-10 < SUB-11 AND
SUB-11 < SUB-12 AND
SUB-12 < SUB-13 AND
SUB-13 < SUB-14 AND
SUB-14 < SUB-15 AND
SUB-15 < SUB-16 AND
SUB-16 < SUB-17 AND
SUB-17 < SUB-18 AND
SUB-18 < SUB-19 AND
SUB-19 < SUB-20 AND
SUB-20 < SUB-21 AND
SUB-21 < SUB-22 AND
SUB-22 < SUB-23 AND
SUB-23 < SUB-24)
ADD INT(SUB-1),
INT(SUB-2),
INT(SUB-3),
INT(SUB-4),
INT(SUB-5),
INT(SUB-6),
INT(SUB-7),
INT(SUB-8),
INT(SUB-9),
INT(SUB-10),
INT(SUB-11),
INT(SUB-12),
INT(SUB-13),
INT(SUB-14),
INT(SUB-15),
INT(SUB-16),
INT(SUB-17),
INT(SUB-18),
INT(SUB-19),
INT(SUB-20) GIVING RESULT-ST
ADD INT(SUB-21),
INT(SUB-22)
INT(SUB-23)
INT(SUB-24)
RESULT-ST
GIVING RESULT-24
ADD 1 TO SOLVE-TICK
IF RESULT-24 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-24-RTN THRU DISPLAY-24-RTN-X.
TWENTY-FOUR-SUB-RTN-X. EXIT.
DISPLAY-24-RTN.
MOVE INT(SUB-1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-9) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-10) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-11) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-12) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-13) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(SUB-14) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
MOVE 1 TO SUB-L2
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-15) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-16) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-17) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-18) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-19) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-20) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-21) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-22) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-23) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(SUB-24) TO INT-DIS2(SUB-O, SUB-L2).
MOVE OUT-LINE2 (SUB-O) TO OUT-LINE (SUB-O).
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
DISPLAY-24-RTN-X. EXIT.
TWENTY-FIVE-RTN.
ADD INT(1), INT(2), INT(3), INT(4), INT(5),
INT(6), INT(7), INT(8), INT(9), INT(10),
INT(11), INT(12), INT(13), INT(14)
GIVING RESULT-ST.
ADD INT(15), INT(16), INT(17), INT(18), INT(19),
INT(20), INT(21), INT(22), INT(23), INT(24)
INT(25), RESULT-ST
GIVING RESULT-25.
ADD 1 TO SOLVE-TICK.
IF RESULT-25 = SUM-VALUE
ADD 1 TO TOTAL-ZERO
DETAILS-CTR
PERFORM DISPLAY-25-RTN THRU DISPLAY-25-RTN-X.
TWENTY-FIVE-RTN-X. EXIT.
DISPLAY-25-RTN.
MOVE INT(1) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(2) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(3) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(4) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(5) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(6) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(7) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(8) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(9) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(10) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(11) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(12) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(13) TO INT-DIS(SUB-O, SUB-L).
MOVE "+" TO COM-DIS(SUB-O, SUB-L).
ADD 1 TO SUB-L
MOVE INT(14) TO INT-DIS(SUB-O, SUB-L).
MOVE SOLVE-TICK TO PRINT-TICK(SUB-O), CLOCK-SOLVE
SET-CLOCK.
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
MOVE 1 TO SUB-L2
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(15) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(16) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(17) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(18) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(19) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(20) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(21) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(22) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(23) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(24) TO INT-DIS2(SUB-O, SUB-L2).
MOVE "+" TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
MOVE INT(25) TO INT-DIS2(SUB-O, SUB-L2).
MOVE " " TO COM-DIS2(SUB-O, SUB-L2).
ADD 1 TO SUB-L2
IF OUT-LINE2 (SUB-O) EQUAL OUT-LINE (SUB-O)
GO TO DISPLAY-25-RTN-X.
MOVE OUT-LINE2 (SUB-O) TO OUT-LINE (SUB-O).
PERFORM SCREEN-RTN THRU SCREEN-RTN-X.
MOVE 01 TO WS-SUB-1.
MOVE 02 TO WS-SUB-2.
MOVE 03 TO WS-SUB-3.
MOVE 04 TO WS-SUB-4.
MOVE 05 TO WS-SUB-5.
MOVE 06 TO WS-SUB-6.
MOVE 07 TO WS-SUB-7.
MOVE 08 TO WS-SUB-8.
MOVE 09 TO WS-SUB-9.
MOVE 10 TO WS-SUB-10.
MOVE 11 TO WS-SUB-11.
MOVE 12 TO WS-SUB-12.
MOVE 13 TO WS-SUB-13.
MOVE 14 TO WS-SUB-14.
MOVE 15 TO WS-SUB-15.
MOVE 16 TO WS-SUB-16.
MOVE 17 TO WS-SUB-17.
MOVE 18 TO WS-SUB-18.
MOVE 19 TO WS-SUB-19.
MOVE 20 TO WS-SUB-20.
MOVE 21 TO WS-SUB-21.
MOVE 22 TO WS-SUB-22.
MOVE 23 TO WS-SUB-23.
MOVE 24 TO WS-SUB-24.
MOVE 25 TO WS-SUB-25.
MOVE WS-OUTPUT-RECORD TO OUTPUT-RECORD
PERFORM WRITE-RTN THRU WRITE-RTN-X.
DISPLAY-25-RTN-X. EXIT.
*---------------------------------------------------------------*
* This logic routine branches and passes control to *
* another program called PNPCHECK. This program provides *
* the P portion of the P NP solution. It passes values *
* that are referenced in the IO-LINK area in working *
* storage. *
*---------------------------------------------------------------*
P-CHECK-RTN.
MOVE SPACES TO IO-OUT-LINE.
CALL PNPCHECK-PGM USING IO-LINK
ON OVERFLOW
DISPLAY "Memory resources exhausted" AT 2504
STOP " PRESS ENTER ".
CANCEL PNPCHECK-PGM.
DISPLAY " " AT 2504.
PERFORM DATA-MOVE-RTN THRU DATA-MOVE-RTN-X.
P-CHECK-RTN-X. EXIT.
RESET-RTN.
MOVE 1 TO SUB-O, SUB-L
MOVE 1 TO SUB-5
MOVE "N" TO DUP-SW.
MOVE "?" TO PAGE-SW.
MOVE "Y" TO ON-1-SW.
MOVE "N" TO ON-2-SW.
MOVE "Y" TO TRUNCATE-SW.
MOVE SOLVE-TICK TO SOLVE-SAVE-1
MOVE SPACES TO STATS-INTEGERS.
MOVE SPACES TO STATS-INTEGERS-VALUES.
MOVE SPACES TO OUT-DISPLAY-TABLE.
MOVE SPACES TO OUT-DISPLAY-TABLE2.
MOVE SPACES TO SAVE-OUTPUT-RECORD.
MOVE ZERO TO DETAILS-CTR.
MOVE ZERO TO TABLE-OF-INTEGERS.
MOVE ZERO TO RESULTS-FIELDS.
MOVE ZERO TO CHECK-TICK.
MOVE ZERO TO SOLVE-TICK.
WRITE STATS-RECORD FROM SPACE-LINE.
MOVE SPACES TO
I1, I2, I3, I4, I5, I6, I7, I8,
I9, I10, I11, I12, I13, I14, I15, I16,
I17, I18, I19, I20, I21, I22, I23, I24, I25.
RESET-RTN-X. EXIT.
SCREEN-RTN.
IF PAGE-SW = 'T' OR 't'
GO TO SCREEN-SKIP.
IF ON-1-SW = 'Y'
MOVE 'N' TO ON-1-SW
MOVE OUT-LINE (SUB-O) TO FIRST-OUT-LINE.
IF SUB-O = 1
MOVE DETAILS-CTR TO DETAILS-COUNTER
MOVE OUT-LINE (SUB-O) TO DETAILS-FIELDS
MOVE WORK-PERIOD TO DETAIL-PERIOD
WRITE DETAILS-RECORD
DISPLAY OUT-LINE (SUB-O) AT 1104.
IF SUB-O = 2
MOVE DETAILS-CTR TO DETAILS-COUNTER
MOVE OUT-LINE (SUB-O) TO DETAILS-FIELDS
MOVE WORK-PERIOD TO DETAIL-PERIOD
WRITE DETAILS-RECORD
DISPLAY OUT-LINE (SUB-O) AT 1204.
IF SUB-O = 3
MOVE DETAILS-CTR TO DETAILS-COUNTER
MOVE OUT-LINE (SUB-O) TO DETAILS-FIELDS
MOVE WORK-PERIOD TO DETAIL-PERIOD
WRITE DETAILS-RECORD
DISPLAY OUT-LINE (SUB-O) AT 1304.
IF SUB-O = 4
MOVE DETAILS-CTR TO DETAILS-COUNTER
MOVE OUT-LINE (SUB-O) TO DETAILS-FIELDS
MOVE WORK-PERIOD TO DETAIL-PERIOD
WRITE DETAILS-RECORD
DISPLAY OUT-LINE (SUB-O) AT 1404.
IF SUB-O = 5
MOVE DETAILS-CTR TO DETAILS-COUNTER
MOVE OUT-LINE (SUB-O) TO DETAILS-FIELDS
MOVE WORK-PERIOD TO DETAIL-PERIOD
WRITE DETAILS-RECORD
DISPLAY OUT-LINE (SUB-O) AT 1504.
IF SUB-O = 6
MOVE DETAILS-CTR TO DETAILS-COUNTER
MOVE OUT-LINE (SUB-O) TO DETAILS-FIELDS
MOVE WORK-PERIOD TO DETAIL-PERIOD
WRITE DETAILS-RECORD
DISPLAY OUT-LINE (SUB-O) AT 1604.
IF SUB-O = 7
MOVE DETAILS-CTR TO DETAILS-COUNTER
MOVE OUT-LINE (SUB-O) TO DETAILS-FIELDS
MOVE WORK-PERIOD TO DETAIL-PERIOD
WRITE DETAILS-RECORD
DISPLAY OUT-LINE (SUB-O) AT 1704.
IF SUB-O = 8
MOVE DETAILS-CTR TO DETAILS-COUNTER
MOVE OUT-LINE (SUB-O) TO DETAILS-FIELDS
MOVE WORK-PERIOD TO DETAIL-PERIOD
WRITE DETAILS-RECORD
DISPLAY OUT-LINE (SUB-O) AT 1804.
IF SUB-O = 9
MOVE DETAILS-CTR TO DETAILS-COUNTER
MOVE OUT-LINE (SUB-O) TO DETAILS-FIELDS
MOVE WORK-PERIOD TO DETAIL-PERIOD
WRITE DETAILS-RECORD
DISPLAY OUT-LINE (SUB-O) AT 1904.
IF SUB-O = 10
MOVE DETAILS-CTR TO DETAILS-COUNTER
MOVE OUT-LINE (SUB-O) TO DETAILS-FIELDS
MOVE WORK-PERIOD TO DETAIL-PERIOD
WRITE DETAILS-RECORD
DISPLAY OUT-LINE (SUB-O) AT 2004.
IF SUB-O = 11
MOVE DETAILS-CTR TO DETAILS-COUNTER
MOVE OUT-LINE (SUB-O) TO DETAILS-FIELDS
MOVE WORK-PERIOD TO DETAIL-PERIOD
WRITE DETAILS-RECORD
DISPLAY OUT-LINE (SUB-O) AT 2104.
IF SUB-O = 12
MOVE DETAILS-CTR TO DETAILS-COUNTER
MOVE OUT-LINE (SUB-O) TO DETAILS-FIELDS
MOVE WORK-PERIOD TO DETAIL-PERIOD
WRITE DETAILS-RECORD
DISPLAY OUT-LINE (SUB-O) AT 2204.
IF SUB-O = 13
MOVE DETAILS-CTR TO DETAILS-COUNTER
MOVE OUT-LINE (SUB-O) TO DETAILS-FIELDS
MOVE WORK-PERIOD TO DETAIL-PERIOD
WRITE DETAILS-RECORD
DISPLAY OUT-LINE (SUB-O) AT 2304.
SCREEN-SKIP.
IF OUT-LINE (14) GREATER THAN SPACES
PERFORM PAGING-RTN THRU PAGING-RTN-X.
IF SUB-O = 14
IF OUT-LINE (14) EQUAL SPACES
PERFORM SPACE-OUT THRU SPACE-OUT-X
MOVE 0 TO SUB-O.
ADD 1 TO SUB-O.
ADD 1 TO SUB-D.
MOVE 1 TO SUB-L.
SCREEN-RTN-X. EXIT.
PAGING-RTN.
MOVE OUT-LINE (14) TO SAVE-OUT-LINE
MOVE SPACES TO OUT-LINE (14)
MOVE 0 TO SUB-O
IF PAGE-SW = "r" OR "R" OR "t" OR "T"
DISPLAY " " AT 2575
ELSE
DISPLAY " " AT 2567
DISPLAY
'Enter pages, "R"+Enter rolls, "X"+Enter reset.'
AT 2505.
IF PAGE-SW = "t" OR "T" OR "r" OR "R"
MOVE TOTAL-ZERO TO TOTAL-ZERO-S
DISPLAY TOTAL-ZERO-S AT 2567
ELSE
ACCEPT PAGE-SW AT 2575.
DISPLAY
"Seeking, please wait... "
AT 2505.
IF PAGE-SW = "t" OR "T" OR "r" OR "R"
IF CLOCK-ON
PERFORM ELAPSED-TIME THRU ELAPSED-TIME-X.
ADD 1 TO SUB-O.
IF PAGE-SW = "t" OR "T"
DISPLAY FIRST-OUT-LINE AT 1104
DISPLAY SPACE-LINE AT 1204
DISPLAY SPACE-LINE AT 1304
DISPLAY SPACE-LINE AT 1404
DISPLAY SPACE-LINE AT 1504
DISPLAY SPACE-LINE AT 1604
DISPLAY SPACE-LINE AT 1704
DISPLAY SPACE-LINE AT 1804
DISPLAY SPACE-LINE AT 1904
DISPLAY SPACE-LINE AT 2004
DISPLAY SPACE-LINE AT 2104
DISPLAY SPACE-LINE AT 2204
DISPLAY SPACE-LINE AT 2304
MOVE "Y" TO ON-2-SW
ELSE
MOVE DETAILS-CTR TO DETAILS-COUNTER
MOVE SAVE-OUT-LINE TO DETAILS-FIELDS
MOVE WORK-PERIOD TO DETAIL-PERIOD
WRITE DETAILS-RECORD
DISPLAY SAVE-OUT-LINE AT 1104.
IF ON-2-SW = "N"
DISPLAY SPACE-LINE AT 1204
DISPLAY SPACE-LINE AT 1304
DISPLAY SPACE-LINE AT 1404
DISPLAY SPACE-LINE AT 1504
DISPLAY SPACE-LINE AT 1604
DISPLAY SPACE-LINE AT 1704
DISPLAY SPACE-LINE AT 1804
DISPLAY SPACE-LINE AT 1904
DISPLAY SPACE-LINE AT 2004
DISPLAY SPACE-LINE AT 2104
DISPLAY SPACE-LINE AT 2204
DISPLAY SPACE-LINE AT 2304.
IF PAGE-SW = "x" OR "X"
PERFORM RESET-RTN THRU RESET-RTN-X
DISPLAY SPACES
MOVE SPACE TO RESPONSE
WRITE DETAILS-RECORD FROM SPACE-LINE
WRITE DETAILS-RECORD FROM STATS-ERROR
WRITE DETAILS-RECORD FROM STATS-SEPARATE
WRITE DETAILS-RECORD FROM SPACE-LINE
WRITE STATS-RECORD FROM STATS-ERROR
WRITE STATS-RECORD FROM STATS-SEPARATE
WRITE STATS-RECORD FROM SPACE-LINE
GO TO MAIN-LOOP.
IF PAGE-SW = "t" OR "T"
IF TRUNCATE-SW = "Y"
MOVE "N" TO TRUNCATE-SW
WRITE DETAILS-RECORD FROM SPACE-LINE
WRITE DETAILS-RECORD FROM STATS-TRUNCATE
WRITE STATS-RECORD FROM SPACE-LINE
WRITE STATS-RECORD FROM STATS-TRUNCATE.
PAGING-RTN-X. EXIT.
SPACE-OUT.
IF SUB-O = 2
ADD 1 TO SUB-O
DISPLAY SPACE-LINE AT 1204.
IF SUB-O = 3
ADD 1 TO SUB-O
DISPLAY SPACE-LINE AT 1304.
IF SUB-O = 4
ADD 1 TO SUB-O
DISPLAY SPACE-LINE AT 1404.
IF SUB-O = 5
ADD 1 TO SUB-O
DISPLAY SPACE-LINE AT 1504.
IF SUB-O = 6
ADD 1 TO SUB-O
DISPLAY SPACE-LINE AT 1604.
IF SUB-O = 7
ADD 1 TO SUB-O
DISPLAY SPACE-LINE AT 1704.
IF SUB-O = 8
ADD 1 TO SUB-O
DISPLAY SPACE-LINE AT 1804.
IF SUB-O = 9
ADD 1 TO SUB-O
DISPLAY SPACE-LINE AT 1904.
IF SUB-O = 10
ADD 1 TO SUB-O
DISPLAY SPACE-LINE AT 2004.
IF SUB-O = 11
ADD 1 TO SUB-O
DISPLAY SPACE-LINE AT 2104.
IF SUB-O = 12
ADD 1 TO SUB-O
DISPLAY SPACE-LINE AT 2204.
IF SUB-O = 13
ADD 1 TO SUB-O
DISPLAY SPACE-LINE AT 2304.
SPACE-OUT-X. EXIT.
CALL-HELP.
IF COLOR-1ST-SW = 'Y'
MOVE 'N' TO COLOR-1ST-SW
IF COLOR-VARY-1
MOVE 0 TO PCA-COLOR-SW
ELSE
IF COLOR-VARY-2
MOVE 2 TO PCA-COLOR-SW
ELSE
IF COLOR-VARY-3
MOVE 8 TO PCA-COLOR-SW
ELSE
IF COLOR-VARY-4
MOVE 6 TO PCA-COLOR-SW
ELSE
IF COLOR-VARY-5
MOVE 4 TO PCA-COLOR-SW
ELSE
IF COLOR-VARY-6
MOVE 10 TO PCA-COLOR-SW.
CALL HELP-PROGRAM USING IO-LNK
ON OVERFLOW
DISPLAY "Memory resources exhausted" AT 2501
STOP " PRESS ENTER ".
CANCEL HELP-PROGRAM.
CALL-HELP-X. EXIT.
OUTPUT-SUBSCIPTS.
IF WS-OUTPUT-RECORD NOT EQUAL SAVE-OUTPUT-RECORD
MOVE "N" TO DUP-SW
MOVE WS-OUTPUT-RECORD TO OUTPUT-RECORD
PERFORM WRITE-RTN THRU WRITE-RTN-X
MOVE WS-OUTPUT-RECORD TO SAVE-OUTPUT-RECORD
MOVE SPACES TO WS-OUTPUT-RECORD
ELSE
MOVE "Y" TO DUP-SW.
OUTPUT-SUBSCIPTS-X. EXIT.
WRITE-RTN.
IF NOT FILE-STATUS-OK
NEXT SENTENCE
ELSE
WRITE OUTPUT-RECORD.
WRITE-RTN-X. EXIT.
DATA-INPUT-RTN.
IF COLOR-VARY-1
CALL SCREEN-IO USING WRITE-ATTR
FORM-PARAMS
PNPSOLVE-00-ATTR
DISPLAY PNPSOLVE-00.
IF COLOR-VARY-2
CALL SCREEN-IO USING WRITE-ATTR
FORM-PARAMS
PNPSOLV2-00-ATTR
DISPLAY PNPSOLV2-00.
IF COLOR-VARY-3
CALL SCREEN-IO USING WRITE-ATTR
FORM-PARAMS
PNPSOLV3-00-ATTR
DISPLAY PNPSOLV3-00.
IF COLOR-VARY-4
CALL SCREEN-IO USING WRITE-ATTR
FORM-PARAMS
PNPSOLV4-00-ATTR
DISPLAY PNPSOLV4-00.
IF COLOR-VARY-5
CALL SCREEN-IO USING WRITE-ATTR
FORM-PARAMS
PNPSOLV5-00-ATTR
DISPLAY PNPSOLV5-00.
IF COLOR-VARY-6
CALL SCREEN-IO USING WRITE-ATTR
FORM-PARAMS
PNPSOLV6-00-ATTR
DISPLAY PNPSOLV6-00.
ACCEPT PNPSOLVE-01.
PERFORM DATA-MOVE-RTN THRU DATA-MOVE-RTN-X.
DATA-INPUT-RTN-X. EXIT.
DATA-MOVE-RTN.
MOVE ZERO TO MAX-SUB.
IF I1 GREATER THAN SPACES
MOVE I1 TO INT (1) O1
ADD 1 TO MAX-SUB
IF I2 GREATER THAN SPACES
MOVE I2 TO INT (2) O2
ADD 1 TO MAX-SUB
IF I3 GREATER THAN SPACES
MOVE I3 TO INT (3) O3
ADD 1 TO MAX-SUB
IF I4 GREATER THAN SPACES
MOVE I4 TO INT (4) O4
ADD 1 TO MAX-SUB
IF I5 GREATER THAN SPACES
MOVE I5 TO INT (5) O5
ADD 1 TO MAX-SUB
IF I6 GREATER THAN SPACES
MOVE I6 TO INT (6) O6
ADD 1 TO MAX-SUB
IF I7 GREATER THAN SPACES
MOVE I7 TO INT (7) O7
ADD 1 TO MAX-SUB
IF I8 GREATER THAN SPACES
MOVE I8 TO INT (8) O8
ADD 1 TO MAX-SUB
IF I9 GREATER THAN SPACES
MOVE I9 TO INT (9) O9
ADD 1 TO MAX-SUB
IF I10 GREATER THAN SPACES
MOVE I10 TO INT (10) O10
ADD 1 TO MAX-SUB
IF I11 GREATER THAN SPACES
MOVE I11 TO INT (11) O11
ADD 1 TO MAX-SUB
IF I12 GREATER THAN SPACES
MOVE I12 TO INT (12) O12
ADD 1 TO MAX-SUB
IF I13 GREATER THAN SPACES
MOVE I13 TO INT (13) O13
ADD 1 TO MAX-SUB
IF I14 GREATER THAN SPACES
MOVE I14 TO INT (14) O14
ADD 1 TO MAX-SUB
IF I15 GREATER THAN SPACES
MOVE I15 TO INT (15) O15
ADD 1 TO MAX-SUB
IF I16 GREATER THAN SPACES
MOVE I16 TO INT (16) O16
ADD 1 TO MAX-SUB
IF I17 GREATER THAN SPACES
MOVE I17 TO INT (17) O17
ADD 1 TO MAX-SUB
IF I18 GREATER THAN SPACES
MOVE I18 TO INT (18) O18
ADD 1 TO MAX-SUB
IF I19 GREATER THAN SPACES
MOVE I19 TO INT (19) O19
ADD 1 TO MAX-SUB
IF I20 GREATER THAN SPACES
MOVE I20 TO INT (20) O20
ADD 1 TO MAX-SUB
IF I21 GREATER THAN SPACES
MOVE I21 TO INT (21) O21
ADD 1 TO MAX-SUB
IF I22 GREATER THAN SPACES
MOVE I22 TO INT (22) O22
ADD 1 TO MAX-SUB
IF I23 GREATER THAN SPACES
MOVE I23 TO INT (23) O23
ADD 1 TO MAX-SUB
IF I24 GREATER THAN SPACES
MOVE I24 TO INT (24) O24
ADD 1 TO MAX-SUB
IF I25 GREATER THAN SPACES
MOVE I25 TO INT (25) O25
ADD 1 TO MAX-SUB.
DATA-MOVE-RTN-X. EXIT.
DEPTH-RTN.
DISPLAY " Depth of Processing "
AT 1212.
DISPLAY " This value determines how many integers "
AT 1412.
DISPLAY " are evaluated in a subset to check for an "
AT 1512.
DISPLAY " equation that sums to a value. The higher "
AT 1612.
DISPLAY " the number the longer the processing time."
AT 1712.
DISPLAY " Choose 7 through 14 for the process level "
AT 1812.
DISPLAY "Key in the integer process level here ---> "
AT 2012.
DISPLAY " or press enter for default value. "
AT 2112.
DISPLAY " "
AT 2502.
ACCEPT PROCESS-LEVEL AT 2056.
IF PROCESS-LEVEL-OK
DISPLAY SPACES
ELSE
MOVE 7 TO PROCESS-LEVEL
GO TO DEPTH-RTN.
DEPTH-RTN-X. EXIT.
CLOCK-RTN.
DISPLAY " Timing Variations "
AT 1212.
DISPLAY " For the check module you may select to "
AT 1412.
DISPLAY " display the amount of time to find an "
AT 1512.
DISPLAY " equation that sums to a value in either "
AT 1612.
DISPLAY " polynomial time or exponential time. "
AT 1712.
DISPLAY " Choose P for polynomial (the default) "
AT 1812.
DISPLAY " or E for exponential time. Change it ---> "
AT 1912.
DISPLAY " or press enter for default value. "
AT 2012.
DISPLAY " "
AT 2502.
ACCEPT POLY-EXP-SW AT 1956.
IF POLY-EXP-SW = "p"
MOVE "P" TO POLY-EXP-SW.
IF POLY-EXP-SW = "e"
MOVE "E" TO POLY-EXP-SW.
IF POLY-EXP-SW = "P" OR "E"
DISPLAY SPACES
ELSE
MOVE "P" TO POLY-EXP-SW
GO TO CLOCK-RTN.
CLOCK-RTN-X. EXIT.
ELAPSED-TIME.
IF CLOCK-ON
MOVE TIME-OF-DAY TO ELAP-TIME
MULTIPLY ELAPTIME-HH BY 60
GIVING ELAP-HH-MM
ADD ELAPTIME-MM TO ELAP-HH-MM
SUBTRACT WORK-MIN-B FROM ELAP-HH-MM
GIVING ELAP-HH-MM
MOVE ELAP-HH-MM TO ELAP-MINUTES
IF ELAP-HH-MM GREATER THAN ZERO
DISPLAY CLOCK-NOTE AT 2538
DISPLAY ELAP-MINUTES AT 2547
GO TO ELAPSED-TIME-X
ELSE
GO TO ELAPSED-TIME-X.
IF MAX-SUB > 16
MOVE TIME-OF-DAY TO ELAP-TIME
MULTIPLY ELAPTIME-HH BY 60
GIVING ELAP-HH-MM
ADD ELAPTIME-MM TO ELAP-HH-MM
SUBTRACT WORK-MIN-B FROM ELAP-HH-MM
GIVING ELAP-HH-MM
MOVE ELAP-HH-MM TO ELAP-MINUTES
DISPLAY ELAPSED AT 2567
DISPLAY ELAP-MINUTES AT 2573.
ELAPSED-TIME-X. EXIT.
SUM-VALUE-RTN.
DISPLAY SPACE-LINE AT 2503.
DISPLAY " Sum Value Variation "
AT 1309.
DISPLAY " ___________________ "
AT 1409.
DISPLAY " To change the summation value from zero "
AT 1609.
DISPLAY " to another positive or negative integer "
AT 1709.
DISPLAY " overkey with a value then press Enter -->"
AT 1809.
ACCEPT SUM-VALUE-I AT 1854.
MOVE SUM-VALUE-I TO SUM-VALUE
SUM-VALUE-CK.
IF SUM-VALUE > 2475 OR SUM-VALUE < -2475
DISPLAY " Value out of range. "
AT 2009
GO TO SUM-VALUE-RTN
ELSE
DISPLAY " "
AT 2009.
DISPLAY SPACES.
SUM-VALUE-RTN-X. EXIT.
ALGORITHM-RTN.
CALL PNPLISTS-PGM
ON OVERFLOW
DISPLAY "Memory resources exhausted" AT 2504
STOP " PRESS ENTER ".
CANCEL PNPLISTS-PGM.
ALGORITHM-RTN-X. EXIT.
SET-RTN.
SUBTRACT SOLVE-SAVE-1 FROM SOLVE-TICK
GIVING SOLVE-SAVE-2.
MOVE SOLVE-SAVE-2 TO SET-CLOCK-P
MOVE SOLVE-TICK TO SOLVE-SAVE-1.
MOVE SUM-VALUE TO SET-VALUE
DETAIL-SUM-VALUE.
SUBTRACT SET-SUB-TOTAL FROM TOTAL-ZERO GIVING
SET-SUB-TOTAL-2
MOVE SET-SUB-TOTAL-2 TO SET-TOTAL.
MOVE TOTAL-ZERO TO SET-SUB-TOTAL.
MOVE STATS-LINE TO STATS-RECORD
SUMMARY-RECORD.
WRITE STATS-RECORD.
WRITE SUMMARY-RECORD.
SET-RTN-X. EXIT.
WIPE-BIG-DATA.
IF SUB-O = 2
DISPLAY SPACE-LINE AT 1204
ADD 1 TO SUB-O.
IF SUB-O = 3
DISPLAY SPACE-LINE AT 1304
ADD 1 TO SUB-O.
IF SUB-O = 4
DISPLAY SPACE-LINE AT 1404
ADD 1 TO SUB-O.
IF SUB-O = 5
DISPLAY SPACE-LINE AT 1504
ADD 1 TO SUB-O.
IF SUB-O = 6
DISPLAY SPACE-LINE AT 1604
ADD 1 TO SUB-O.
IF SUB-O = 7
DISPLAY SPACE-LINE AT 1704
ADD 1 TO SUB-O.
IF SUB-O = 8
DISPLAY SPACE-LINE AT 1804
ADD 1 TO SUB-O.
IF SUB-O = 9
DISPLAY SPACE-LINE AT 1904
ADD 1 TO SUB-O.
IF SUB-O = 10
DISPLAY SPACE-LINE AT 2004
ADD 1 TO SUB-O.
IF SUB-O = 11
DISPLAY SPACE-LINE AT 2104
ADD 1 TO SUB-O.
IF SUB-O = 12
DISPLAY SPACE-LINE AT 2204
ADD 1 TO SUB-O.
IF SUB-O = 13
DISPLAY SPACE-LINE AT 2304
ADD 1 TO SUB-O.
WIPE-BIG-DATA-X. EXIT.
YORN-RTN.
MOVE ZERO TO BYTE-READY.
PERFORM READ-AND-WAIT THRU READ-AND-WAIT-X
UNTIL BYTE-READY NOT = ZERO.
CALL X"83" USING YORN.
IF AFFIRM
IF NOT FILE-STATUS-OK
EXIT PROGRAM
STOP RUN
ELSE
CLOSE DETAILS-FILE
CLOSE SUMMARY-FILE
CLOSE OUTPUT-FILE
OPEN OUTPUT OUTPUT-FILE
CLOSE OUTPUT-FILE
EXIT PROGRAM
STOP RUN.
YORN-RTN-X. EXIT.
READ-AND-WAIT.
MOVE 2371 TO CURSOR-POSITION.
CALL X"E6" USING TEMP-RESULT, CURSOR-POSITION.
CALL X"D9" USING BYTE-READY.
IF ESCAPE-KEY
MOVE 1 TO BYTE-READY.
READ-AND-WAIT-X. EXIT.
*---------------------------------------------------------------*
* END OF PROGRAM *
*---------------------------------------------------------------*
0