$JOB DETAB-65 $EXECUTE IBJOB $IBJOB LOGIC,MAP,FILES $IBCBC P555 FULIST 000000 IDENTIFICATION DIVISION. DETAB-65 000005 PROGRAM-ID. PREPROCESSOR FOR DETAB-65. DETAB-65 000010 AUTHOR. ANSON CHAPMAN. DETAB-65 000015 DATE-WRITTEN. 12/30/64. DETAB-65 000020 DATE-COMPILED. DETAB-65 000025 REMARKS. DETAB-65 000030 THE GENERATOR PORTION OF THE PREPROCESSOR ANALIZES A DETAB-65 000035 DECISION TABLE AND GENERATES SIMPLE CONDITIONAL STATEMENTS DETAB-65 000040 FOR Y'S, N'S AND BLANKS AND WILL GENERATE IF STATEMENTS FOR DETAB-65 000045 ONE PATH THRU THE TREE THE ACTION CORRESPONDING TO THE PATH DETAB-65 000050 IS GENERATED IN STMTS DX014 THRU DX032 THIS PATH IS DELETED DETAB-65 000055 FROM THE TREE IN DX016 THRU DX020 DX301 THRU DX061 DETAB-65 000060 REINITIALIZES THE TREE, FINDS THE LAST NODE CONNECTED TO DETAB-65 000065 THIS PATH AND COMES BACK TO DX003 FOR ANOTHER PASS THRU THE DETAB-65 000070 NEXT PATH THIS PROCESS IS REPEATED UNTIL IF STATEMENTS DETAB-65 000075 HAVE BEEN GENERATED FOR ALL PATHS THRU THE DECISION TABLE DETAB-65 000080 TREE STRUCTURE. DETAB-65 000085 ENVIRONMENT DIVISION. DETAB-65 000090 CONFIGURATION SECTION. DETAB-65 000095 SOURCE-COMPUTER. IBM-7090. DETAB-65 000100 OBJECT-COMPUTER. IBM-7090. DETAB-65 000115 INPUT-OUTPUT SECTION. DETAB-65 000120 FILE-CONTROL. DETAB-65 000125 SELECT CARD-INPUT, ASSIGN TO SYSIN1. DETAB-65 000130 SELECT CARD-OUTPUT, ASSIGN TO SYSPP1. DETAB-65 000135 SELECT LIST-OUTPUT, ASSIGN TO SYSOU1. DETAB-65 000140 DATA DIVISION. DETAB-65 000145 FILE SECTION. DETAB-65 000150 FD CARD-INPUT DETAB-65 000155 LABEL RECORDS ARE OMITTED, DETAB-65 000160 DATA RECORDS ARE TEST-CARD. DETAB-65 000165 01 TEST-CARD. DETAB-65 000170 02 FILLER PICTURE X(80). DETAB-65 000175 FD CARD-OUTPUT DETAB-65 000180 LABEL RECORDS ARE OMITTED, DETAB-65 000185 DATA RECORDS ARE CRD-OUT, DETAB-CRD, DUM-1. DETAB-65 000190 01 CRD-OUT. DETAB-65 000195 02 FILLER PICTURE X(7). DETAB-65 000200 02 BODY. DETAB-65 000205 03 FILLER PICTURE X(4). DETAB-65 000210 03 B-MARG PICTURE X(61). DETAB-65 000215 02 IDFLD PICTURE X(8). DETAB-65 000220 01 DETAB-CRD. DETAB-65 000225 02 FILLER PICTURE XXX. DETAB-65 000230 02 IDENT. DETAB-65 000235 03 ROW-NO PICTURE 999. DETAB-65 000240 03 LINE-ID PICTURE X. DETAB-65 000245 02 FILLER PICTURE X(73). DETAB-65 000250 01 DUM-1. DETAB-65 000255 02 CRD-COL PICTURE X OCCURS 80 TIMES. DETAB-65 000260 FD LIST-OUTPUT DETAB-65 000265 LABEL RECORDS ARE OMITTED, DETAB-65 000270 DATA RECORD IS TAPE-LIST. DETAB-65 000275 01 TAPE-LIST. DETAB-65 000280 02 FILLER PICTURE X(11). DETAB-65 000285 02 CARDX PICTURE 999. DETAB-65 000290 02 FILLER PICTURE X(66). DETAB-65 000295 WORKING-STORAGE SECTION. DETAB-65 000300 77 AZ PICTURE XX VALUE 'AZ'. DETAB-65 000305 77 CARDCNT PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000310 77 COLIX PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000315 77 COLUM PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000320 77 DUMIX PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000325 77 ELMCT PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000330 77 ELMCX PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000335 77 ELMRX PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000340 77 EXIX PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000345 77 KEY-1 PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000350 77 KEY-2 PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000355 77 KEY-3 PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000360 77 LABIX PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000365 77 LABNO PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000370 77 NACTS PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000375 77 NCOLS PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000380 77 NORLS PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000385 77 NOCON PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000390 77 NRLS PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000395 77 NROWS PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000400 77 ROWIX PICTURE 999 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000405 01 DUM-2. DETAB-65 000410 02 FILLER OCCURS 50 TIMES. DETAB-65 000415 03 STRTCOL PICTURE 99 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000420 03 NMCOLS PICTURE 99 COMPUTATIONAL SYNCHRONIZED RIGHT.DETAB-65 000425 01 DUM-3. DETAB-65 000430 02 COLS PICTURE X OCCURS 12 TIMES. DETAB-65 000435 01 DUM-4. DETAB-65 000440 02 EGOTO PICTURE X OCCURS 5 TIMES. DETAB-65 000445 01 DUM-5. DETAB-65 000450 02 TEMP PICTURE X OCCURS 58 TIMES. DETAB-65 000455 01 DUM-10 PICTURE X(8) VALUE 'SECTION.'. DETAB-65 000460 01 DUM-12 REDEFINES DUM-10. DETAB-65 000465 02 NMSEC PICTURE X OCCURS 8 TIMES. DETAB-65 000470 01 HEADER. DETAB-65 000475 02 FILLER PICTURE X(8). DETAB-65 000480 02 TBLNME PICTURE X(30). DETAB-65 000485 02 FORMID PICTURE XX. DETAB-65 000490 02 NCOND PICTURE 9(3). DETAB-65 000495 02 ACTNS PICTURE 9(3). DETAB-65 000500 02 NORULS PICTURE 9(3). DETAB-65 000505 02 FILLER PICTURE X(51). DETAB-65 000510 01 DPRINT. DETAB-65 000515 02 DLABEL. DETAB-65 000520 03 FILLER PICTURE X(7) VALUE SPACES. DETAB-65 000525 03 DUM-6. DETAB-65 000530 04 LABNM PICTURE XX. DETAB-65 000535 04 LABVL PICTURE 9(3). DETAB-65 000540 03 FILLER PICTURE X VALUE '.'. DETAB-65 000545 02 DGOTO. DETAB-65 000550 03 FILLER PICTURE A(7) VALUE ' GO TO '. DETAB-65 000555 03 DGOLN. DETAB-65 000560 04 DGOLB PICTURE XX. DETAB-65 000565 04 DGONO PICTURE 999. DETAB-65 000570 02 HOUSTON. DETAB-65 000575 03 CNDI PICTURE X(58) OCCURS 50 TIMES. DETAB-65 000580 03 ATBL PICTURE X(58) OCCURS 50 TIMES. DETAB-65 000585 01 LINE1. DETAB-65 000590 02 FILLER PICTURE X(14) VALUE ' IF '. DETAB-65 000595 02 COND PICTURE X(58). DETAB-65 000600 01 TEXAS. DETAB-65 000605 02 LINE2. DETAB-65 000610 03 FILLER PICTURE A(11). DETAB-65 000615 03 CDOPR PICTURE X(12). DETAB-65 000620 03 PIF PICTURE X. DETAB-65 000625 03 DELSE PICTURE X(6). DETAB-65 000630 03 ELOPR PICTURE X(12). DETAB-65 000635 03 PELSE PICTURE X. DETAB-65 000640 03 FILLER PICTURE A(29). DETAB-65 000645 02 LINE3 REDEFINES LINE2. DETAB-65 000650 03 FILLER PICTURE X(7). DETAB-65 000655 03 DNAME. DETAB-65 000660 04 TCOLS PICTURE X OCCURS 58 TIMES. DETAB-65 000665 03 FILLER PICTURE X(7). DETAB-65 000670 02 FILLER REDEFINES LINE2. DETAB-65 000675 03 FILLER PICTURE X(11). DETAB-65 000680 03 BNAME PICTURE X(58). DETAB-65 000685 03 FILLER PICTURE XXX. DETAB-65 000690 02 DECISION-TABLE. DETAB-65 000695 03 ROW OCCURS 50 TIMES. DETAB-65 000700 04 COLMN PICTURE X OCCURS 100 TIMES. DETAB-65 000705 01 ELIMT. DETAB-65 000710 02 ELIMC PICTURE 999 OCCURS 25 TIMES. DETAB-65 000715 01 MATIT. DETAB-65 000720 02 MATIX PICTURE 999 OCCURS 25 TIMES. DETAB-65 000725 01 MICDESCR. DETAB-65 000730 02 PDPUL PICTURE 999 OCCURS 128 TIMES. DETAB-65 000735 02 SAVCL PICTURE X OCCURS 25 TIMES. DETAB-65 000740 01 WRNING-PRINT. DETAB-65 000745 02 FILLER PICTURE X(17) VALUE DETAB-65 000750 ' ****** WARNING. '. DETAB-65 000755 02 WRNING-IMAGE PICTURE X(52). DETAB-65 000760 01 WARNING-MESSAGES. DETAB-65 000765 02 WRNING-1 PICTURE X(52) VALUE DETAB-65 000770 'NO ELSE RULE CARD. LAST RULE PROCESSED AS ELSE RULE.'. DETAB-65 000775 02 WRNING-2 PICTURE X(31) VALUE DETAB-65 000780 'REDUNDANCY. CHECK THESE RULES -'. DETAB-65 000785 01 ERR-PRNT. DETAB-65 000790 02 FILLER PICTURE X(30) VALUE DETAB-65 000795 ' ****** ERROR. TABLE SKIPPED. '. DETAB-65 000800 02 ERR-IMAGE PICTURE X(53). DETAB-65 000805 01 ERROR-MESSAGES. DETAB-65 000810 02 ERR-1 PICTURE X(48) VALUE DETAB-65 000815 'PRESENTLY, TABLES RESTRICTED TO LIMITED ENTRIES.'. DETAB-65 000820 02 ERR-2 PICTURE X(42) VALUE DETAB-65 000825 'TABLE-NAME MISSING FROM TABLE HEADER CARD.'. DETAB-65 000830 02 ERR-3 PICTURE X(19) VALUE DETAB-65 000835 'RULES CARD MISSING.'. DETAB-65 000840 02 ERR-4 PICTURE X(39) VALUE DETAB-65 000845 'LESS THAN THREE RULE COLUMNS SPECIFIED.'. DETAB-65 000850 02 ERR-5 PICTURE X(43) VALUE DETAB-65 000855 'PRESENTLY, CONTINUED RULES NOT IMPLEMENTED.'. DETAB-65 000860 02 ERR-6 PICTURE X(40) VALUE DETAB-65 000865 'CONDITION STUB ENTRY EXCEEDS 58 COLUMNS.'. DETAB-65 000870 02 ERR-7 PICTURE X(26) VALUE DETAB-65 000875 'MORE THAN 12 RULE COLUMNS.'. DETAB-65 000880 02 ERR-8 PICTURE X(53) VALUE DETAB-65 000885 'NUMBER OF RULES ENCOUNTERED DISAGREES WITH RULE CARD.'. DETAB-65 000890 02 ERR-9 PICTURE X(41) VALUE DETAB-65 000895 'MORE THAN 50 ACTION OR CONDITION ENTRIES.'. DETAB-65 000900 02 ERR-10 PICTURE X(46) VALUE DETAB-65 000905 'DECISION TABLE LOGIC ERROR. PROCESSING HALTED.'. DETAB-65 000910 PROCEDURE DIVISION. DETAB-65 000915 DETAB65. DETAB-65 000920 OPEN INPUT CARD-INPUT, OUTPUT CARD-OUTPUT, LIST-OUTPUT. DETAB-65 000925 DT001. DETAB-65 000930 PERFORM READ-1. DETAB-65 000935 IF '0000' = IDENT OF DETAB-CRD GO TO MONITOR. DETAB-65 000940 WRITE DETAB-CRD. DETAB-65 000945 GO TO DT001. DETAB-65 000950 MONITOR. DETAB-65 000955 MOVE DETAB-CRD TO HEADER. DETAB-65 000960 IF TBLNME = SPACES GO TO EM02. DETAB-65 000965 IF FORMID OF HEADER NOT = 'L' GO TO EM01. DETAB-65 000970 MOVE SPACES TO HOUSTON, TEXAS. DETAB-65 000975 MOVE ZEROES TO DUM-2. DETAB-65 000980 MOVE TBLNME TO DUM-5, DNAME. DETAB-65 000985 PERFORM RSCAN. DETAB-65 000990 PERFORM DT005 VARYING EXIX FROM 1 BY 1 UNTIL EXIX = 9. DETAB-65 000995 PERFORM READ-1. DETAB-65 001000 IF IDENT OF DETAB-CRD NOT = '0001' GO TO EM03. DETAB-65 001005 DETAB-65 001010 NOTE RULES CONVERSION SECTION. DETAB-65 001015 DETAB-65 001020 MOVE 0 TO CARDCNT. DETAB-65 001025 MOVE 1 TO NRLS. DETAB-65 001030 MOVE 9 TO COLUM, STRTCOL (NRLS). DETAB-65 001035 DT050. DETAB-65 001040 IF CRD-COL (COLUM) = SPACE GO TO DT053. DETAB-65 001045 IF CARDCNT IS LESS THAN 3 GO TO EM04. DETAB-65 001050 MOVE CARDCNT TO NMCOLS (NRLS). DETAB-65 001055 IF CRD-COL (COLUM) = '$' GO TO DT055. DETAB-65 001060 ADD 1 TO NRLS. DETAB-65 001065 MOVE COLUM TO STRTCOL (NRLS). DETAB-65 001070 MOVE 3 TO CARDCNT. DETAB-65 001075 ADD 3 TO COLUM. DETAB-65 001080 IF COLUM IS GREATER THAN 80 GO TO EM05. DETAB-65 001085 GO TO DT050. DETAB-65 001090 DT005. DETAB-65 001095 MOVE NMSEC (EXIX) TO TCOLS (DUMIX). DETAB-65 001100 ADD 1 TO DUMIX. DETAB-65 001105 DT053. DETAB-65 001110 ADD 1 TO CARDCNT, ADD 1 TO COLUM. DETAB-65 001115 IF CARDCNT IS NOT GREATER THAN 12 GO TO DT050. DETAB-65 001120 IF CARDCNT IS GREATER THAN 58 GO TO EM06. DETAB-65 001125 IF NRLS = 1 GO TO DT050 ELSE GO TO EM07. DETAB-65 001130 DT055. DETAB-65 001135 SUBTRACT 1 FROM NMCOLS (NRLS), SUBTRACT 1 FROM NRLS. DETAB-65 001140 IF NRLS NOT = NORULS GO TO EM08. DETAB-65 001145 DETAB-65 001150 NOTE DETAB CARD SECTION. DETAB-65 001155 DETAB-65 001160 ADD 1 TO NRLS. DETAB-65 001165 MOVE STRTCOL (NRLS) TO COLUM. DETAB-65 001170 IF CRD-COL (COLUM) = 'E' GO TO DT056. DETAB-65 001175 MOVE WRNING-1 TO WRNING-IMAGE. DETAB-65 001180 WRITE TAPE-LIST FROM WRNING-PRINT. DETAB-65 001185 DT056. DETAB-65 001190 MOVE 1 TO KEY-2, KEY-3, ROWIX. DETAB-65 001195 DT057. DETAB-65 001200 PERFORM READ-1. DETAB-65 001205 IF ROW-NO OF DETAB-CRD = 999 GO TO DT057. DETAB-65 001210 MOVE 1 TO KEY-1, COLIX. DETAB-65 001215 IF LINE-ID OF DETAB-CRD = '$' GO TO TBLPROC. DETAB-65 001220 MOVE STRTCOL (KEY-1) TO COLUM. DETAB-65 001225 DETAB-65 001230 NOTE CONDACT SECTION. DETAB-65 001235 DETAB-65 001240 MOVE SPACES TO DUM-5. DETAB-65 001245 MOVE 1 TO EXIX. DETAB-65 001250 CONDACT. DETAB-65 001255 MOVE CRD-COL (COLUM) TO TEMP (EXIX). DETAB-65 001260 IF EXIX GREATER NMCOLS (KEY-1) GO TO DT057-1. DETAB-65 001265 ADD 1 TO EXIX, ADD 1 TO COLUM, GO TO CONDACT. DETAB-65 001270 DT057-1. DETAB-65 001275 IF KEY-2 IS GREATER THAN 50 GO TO EM09. DETAB-65 001280 IF KEY-2 IS GREATER THAN NCOND GO TO DT058. DETAB-65 001285 MOVE DUM-5 TO CNDI (KEY-2). DETAB-65 001290 ADD 1 TO KEY-2. DETAB-65 001295 GO TO DT059. DETAB-65 001300 DT058. DETAB-65 001305 IF KEY-3 IS GREATER THAN 50 GO TO EM09. DETAB-65 001310 MOVE DUM-5 TO ATBL (KEY-3). DETAB-65 001315 ADD 1 TO KEY-3. DETAB-65 001320 DT059. DETAB-65 001325 PERFORM DT060 THRU DT061 VARYING KEY-1 FROM 2 BY 1 UNTIL DETAB-65 001330 KEY-1 IS GREATER THAN NRLS. DETAB-65 001335 ADD 1 TO ROWIX. DETAB-65 001340 GO TO DT057. DETAB-65 001345 DT060. DETAB-65 001350 MOVE STRTCOL (KEY-1) TO COLUM. DETAB-65 001355 DETAB-65 001360 NOTE VARAMOVE SECTION. DETAB-65 001365 DETAB-65 001370 MOVE SPACES TO DUM-3. DETAB-65 001375 MOVE 1 TO EXIX. DETAB-65 001380 VARAMVE. DETAB-65 001385 MOVE CRD-COL (COLUM) TO COLS (EXIX). DETAB-65 001390 IF EXIX GREATER NMCOLS (KEY-1) GO TO DT060-1. DETAB-65 001395 ADD 1 TO EXIX, ADD 1 TO COLUM, GO TO VARAMVE. DETAB-65 001400 DT060-1. DETAB-65 001405 EXAMINE DUM-3 REPLACING ALL '-' BY SPACES. DETAB-65 001410 IF DUM-3 = SPACES GO TO DT061. DETAB-65 001415 EXAMINE DUM-3 TALLYING UNTIL FIRST 'N'. DETAB-65 001420 IF TALLY = 12 MOVE 'Y' TO COLMN (ROWIX, COLIX) ELSE DETAB-65 001425 MOVE 'N' TO COLMN (ROWIX, COLIX). DETAB-65 001430 DT061. DETAB-65 001435 ADD 1 TO COLIX. DETAB-65 001440 TBLPROC. DETAB-65 001445 PERFORM L2OUT THRU RITAB. DETAB-65 001450 MOVE 'DX000' TO DUM-6. DETAB-65 001455 PERFORM DLOUT THRU RITAB. DETAB-65 001460 DETAB-65 001465 NOTE DECISION SECTION. DETAB-65 001470 DETAB-65 001475 MOVE ZERO TO LABIX, LABNO. DETAB-65 001480 MOVE ACTNS TO NACTS. DETAB-65 001485 COMPUTE NORLS = NORULS - 1. DETAB-65 001490 MOVE NCOND TO NOCON. DETAB-65 001495 PERFORM DX042 VARYING COLIX FROM 1 BY 1 UNTIL COLIX = NORLS. DETAB-65 001500 DX042. DETAB-65 001505 MOVE COLIX TO MATIX (COLIX). DETAB-65 001510 DX001. DETAB-65 001515 PERFORM DX002 VARYING COLIX FROM 1 BY 1 UNTIL COLIX = NORLS. DETAB-65 001520 DX002. DETAB-65 001525 MOVE COLIX TO ELIMC (COLIX). DETAB-65 001530 DX050. DETAB-65 001535 MOVE NOCON TO NROWS. DETAB-65 001540 MOVE NORLS TO NCOLS. DETAB-65 001545 MOVE 0 TO ROWIX. DETAB-65 001550 GO TO DX004. DETAB-65 001555 DX003. DETAB-65 001560 PERFORM L1OUT THRU RITAB. DETAB-65 001565 PERFORM L2OUT THRU RITAB. DETAB-65 001570 DX004. DETAB-65 001575 MOVE SPACES TO LINE2. DETAB-65 001580 DX005. DETAB-65 001585 ADD 1 TO ROWIX. DETAB-65 001590 MOVE ZERO TO DUMIX. DETAB-65 001595 IF ROWIX = NOCON GO TO DX014. DETAB-65 001600 MOVE 1 TO COLIX. DETAB-65 001605 DETAB-65 001610 NOTE ARE THERE ALL BLANKS IN THIS ROW. DETAB-65 001615 DETAB-65 001620 DX005-1. DETAB-65 001625 IF COLIX GREATER NCOLS GO TO DX005-2. DETAB-65 001630 MOVE ELIMC (COLIX) TO ELMCX. DETAB-65 001635 IF COLMN (ROWIX, ELMCX) = ' ' OR 'B' DETAB-65 001640 NEXT SENTENCE ELSE GO TO DX051. DETAB-65 001645 ADD 1 TO COLIX. DETAB-65 001650 GO TO DX005-1. DETAB-65 001655 DX005-2. DETAB-65 001660 PERFORM DX400 THRU DX402 VARYING COLIX FROM 1 BY 1 DETAB-65 001665 UNTIL COLIX IS GREATER THAN NCOLS. DETAB-65 001670 GO TO DX005. DETAB-65 001675 DX400. DETAB-65 001680 MOVE ELIMC (COLIX) TO ELMCT. DETAB-65 001685 MOVE 1 TO ELMRX. DETAB-65 001690 DX400-1. DETAB-65 001695 IF ELMRX = ROWIX GO TO DX400-2. DETAB-65 001700 IF COLMN (ELMRX, ELMCT) = ' ' DETAB-65 001705 MOVE 'B' TO COLMN (ROWIX, ELMCT) DETAB-65 001710 GO TO DX402. DETAB-65 001715 ADD 1 TO ELMRX. DETAB-65 001720 GO TO DX400-1. DETAB-65 001725 DX400-2. DETAB-65 001730 MOVE 'Y' TO COLMN (ROWIX, ELMCT). DETAB-65 001735 DX402. DETAB-65 001740 EXIT. DETAB-65 001745 DX051. DETAB-65 001750 MOVE CNDI (ROWIX) TO COND. DETAB-65 001755 DETAB-65 001760 NOTE IS THERE A Y OR N IN THIS ROW. DETAB-65 001765 DETAB-65 001770 MOVE 1 TO COLIX. DETAB-65 001775 DX051-1. DETAB-65 001780 IF COLIX GREATER NCOLS GO TO DX051-2. DETAB-65 001785 MOVE ELIMC (COLIX) TO ELMCX. DETAB-65 001790 IF COLMN (ROWIX, ELMCX) NOT = 'N' GO TO DX052. DETAB-65 001795 ADD 1 TO COLIX. DETAB-65 001800 GO TO DX051-1. DETAB-65 001805 DX051-2. DETAB-65 001810 MOVE 'EL001' TO DGOLN. DETAB-65 001815 MOVE DGOTO TO CDOPR. DETAB-65 001820 GO TO DX202. DETAB-65 001825 DX052. DETAB-65 001830 MOVE ROWIX TO ELMRX. DETAB-65 001835 DETAB-65 001840 NOTE ARE THE REST OF THE ELEMENTS IN THIS COLUMN BLANK. DETAB-65 001845 DETAB-65 001850 DX052-1. DETAB-65 001855 IF ELMRX = NOCON GO TO DX052-2. DETAB-65 001860 COMPUTE ELMCT = ELMRX + 1. DETAB-65 001865 IF COLMN (ELMCT, ELMCX) NOT = ' ' GO TO DX201. DETAB-65 001870 ADD 1 TO ELMRX. DETAB-65 001875 GO TO DX052-1. DETAB-65 001880 DX052-2. DETAB-65 001885 IF NCOLS = 1 THEN MOVE ROWIX TO NOCON GO TO DX014. DETAB-65 001890 MOVE COLIX TO DUMIX. DETAB-65 001895 GO TO DX202. DETAB-65 001900 DETAB-65 001905 NOTE PUSH LAST-IN-FIRST-OUT LIST. DETAB-65 001910 DETAB-65 001915 DX201. DETAB-65 001920 MOVE 'DX' TO DGOLB. DETAB-65 001925 ADD 1 TO LABNO, ADD 1 TO LABIX. DETAB-65 001930 MOVE LABNO TO DGONO, PDPUL (LABIX). DETAB-65 001935 MOVE DGOTO TO CDOPR. DETAB-65 001940 DX202. DETAB-65 001945 MOVE 1 TO COLIX. DETAB-65 001950 DETAB-65 001955 NOTE IS THERE A N OR A BLANK IN THIS ROW. DETAB-65 001960 DETAB-65 001965 DX202-1. DETAB-65 001970 IF COLIX GREATER NCOLS GO TO DX202-2. DETAB-65 001975 MOVE ELIMC (COLIX) TO ELMCX. DETAB-65 001980 IF COLMN (ROWIX, ELMCX) NOT = 'Y' GO TO DX053. DETAB-65 001985 ADD 1 TO COLIX. DETAB-65 001990 GO TO DX202-1. DETAB-65 001995 DX202-2. DETAB-65 002000 MOVE 'EL001' TO DGOLN. DETAB-65 002005 MOVE ' ELSE ' TO DELSE. DETAB-65 002010 MOVE DGOTO TO ELOPR. DETAB-65 002015 PERFORM DX204 THRU DX205. DETAB-65 002020 GO TO DX300. DETAB-65 002025 DX053. DETAB-65 002030 MOVE ROWIX TO ELMRX. DETAB-65 002035 DETAB-65 002040 NOTE ARE THE REST OF THE ELEMENTS IN THIS COLUMN BLANK. DETAB-65 002045 DETAB-65 002050 DX053-1. DETAB-65 002055 IF ELMRX = NOCON GO TO DX053-2. DETAB-65 002060 COMPUTE ELMCT = 1 + ELMRX. DETAB-65 002065 IF COLMN (ELMCT, ELMCX) NOT = ' ' DETAB-65 002070 MOVE '.' TO PIF, GO TO DX204. DETAB-65 002075 ADD 1 TO ELMRX. DETAB-65 002080 GO TO DX053-1. DETAB-65 002085 DX053-2. DETAB-65 002090 MOVE ROWIX TO NOCON. DETAB-65 002095 IF DUMIX NOT = ZERO OR NCOLS = 1 THEN GO TO DX014. DETAB-65 002100 MOVE COLIX TO ELMRX. DETAB-65 002105 MOVE AZ TO DGOLB. DETAB-65 002110 MOVE ELMCX TO DGONO. DETAB-65 002115 MOVE ' ELSE ' TO DELSE. DETAB-65 002120 MOVE DGOTO TO ELOPR. DETAB-65 002125 PERFORM DX016 THRU DX020. DETAB-65 002130 PERFORM DX011 THRU DX055. DETAB-65 002135 MOVE NOCON TO ROWIX. DETAB-65 002140 MOVE NROWS TO NOCON. DETAB-65 002145 DX300. DETAB-65 002150 MOVE '.' TO PELSE. DETAB-65 002155 PERFORM L1OUT THRU RITAB. DETAB-65 002160 PERFORM L2OUT THRU RITAB. DETAB-65 002165 IF NORLS = ZERO GO TO DX038. DETAB-65 002170 MOVE 'DX' TO LABNM. DETAB-65 002175 MOVE PDPUL (LABIX) TO LABVL. DETAB-65 002180 SUBTRACT 1 FROM LABIX. DETAB-65 002185 PERFORM DLOUT THRU RITAB. DETAB-65 002190 GO TO DX004. DETAB-65 002195 DX204. DETAB-65 002200 IF DUMIX = ZERO GO TO DX205. DETAB-65 002205 MOVE ROWIX TO NOCON. DETAB-65 002210 MOVE AZ TO DGOLB. DETAB-65 002215 MOVE ELIMC (DUMIX) TO DGONO. DETAB-65 002220 MOVE DGOTO TO CDOPR. DETAB-65 002225 MOVE DUMIX TO COLIX. DETAB-65 002230 PERFORM DX016 THRU DX020. DETAB-65 002235 MOVE NOCON TO ROWIX. DETAB-65 002240 MOVE NROWS TO NOCON. DETAB-65 002245 DX205. DETAB-65 002250 EXIT. DETAB-65 002255 DX009. DETAB-65 002260 PERFORM DX010 THRU DX055 VARYING ELMRX FROM 1 BY 1 UNTIL DETAB-65 002265 ELMRX IS GREATER THAN NCOLS. DETAB-65 002270 GO TO DX003. DETAB-65 002275 DETAB-65 002280 NOTE DELETE FROM PATH INDEX ALL COLUMNS THAT HAVE A Y DETAB-65 002285 IN THIS ROW. DETAB-65 002290 DETAB-65 002295 DX010. DETAB-65 002300 MOVE ELIMC (ELMRX) TO COLIX. DETAB-65 002305 IF COLMN (ROWIX, COLIX) NOT = 'Y' GO TO DX055. DETAB-65 002310 DX011. DETAB-65 002315 SUBTRACT 1 FROM NCOLS. DETAB-65 002320 PERFORM DX012 VARYING ELMCX FROM ELMRX BY 1 UNTIL ELMCX DETAB-65 002325 GREATER THAN NCOLS. DETAB-65 002330 SUBTRACT 1 FROM ELMRX, SUBTRACT 1 FROM COLIX. DETAB-65 002335 DX012. DETAB-65 002340 COMPUTE ELMCT = 1 + ELMCX. DETAB-65 002345 MOVE ELIMC (ELMCT) TO ELIMC (ELMCX). DETAB-65 002350 DX055. DETAB-65 002355 EXIT. DETAB-65 002360 DX014. DETAB-65 002365 MOVE ELIMC (1) TO COLIX. DETAB-65 002370 PERFORM DX015 VARYING ROWIX FROM 1 BY 1 UNTIL ROWIX = NROWS. DETAB-65 002375 DX015. DETAB-65 002380 MOVE COLMN (ROWIX, COLIX) TO SAVCL (ROWIX). DETAB-65 002385 DX056. DETAB-65 002390 MOVE 4 TO DUMIX. DETAB-65 002395 PERFORM DX022 THRU DX031 VARYING COLIX FROM 1 BY 1 UNTIL DETAB-65 002400 COLIX IS GREATER THAN NCOLS. DETAB-65 002405 GO TO DX032. DETAB-65 002410 DETAB-65 002415 NOTE DETERMINE ACTION LABELS AND CHECK FOR REDUNDENCY. DETAB-65 002420 DETAB-65 002425 DX022. DETAB-65 002430 MOVE ELIMC (COLIX) TO ELMCX. DETAB-65 002435 IF COLMN (NOCON, ELMCX) NOT = 'Y' GO TO DX029. DETAB-65 002440 IF DUMIX = 3 OR DUMIX = 1 THEN GO TO DX059. DETAB-65 002445 IF DUMIX = 2 MOVE 3 TO DUMIX ELSE MOVE 1 TO DUMIX. DETAB-65 002450 MOVE AZ TO DGOLB. DETAB-65 002455 MOVE ' ELSE ' TO DELSE. DETAB-65 002460 MOVE ELMCX TO DGONO. DETAB-65 002465 MOVE DGOTO TO CDOPR. DETAB-65 002470 GO TO DX031. DETAB-65 002475 DX059. DETAB-65 002480 MOVE WRNING-2 TO WRNING-IMAGE. DETAB-65 002485 WRITE TAPE-LIST FROM WRNING-PRINT. DETAB-65 002490 PERFORM DX028 VARYING ELMRX FROM 1 BY 1 UNTIL ELMRX = NCOLS. DETAB-65 002495 DX028. DETAB-65 002500 MOVE ' RULE' TO TAPE-LIST. DETAB-65 002505 MOVE ELIMC (ELMRX) TO CARDX. DETAB-65 002510 WRITE TAPE-LIST. DETAB-65 002515 DX013. DETAB-65 002520 EXIT. DETAB-65 002525 DX029. DETAB-65 002530 IF COLMN (NOCON, ELMCX) NOT = 'N' GO TO DX031. DETAB-65 002535 IF DUMIX = 3 OR DUMIX = 2 PERFORM DX059 THRU DX013, DETAB-65 002540 GO TO DX031. DETAB-65 002545 IF DUMIX = 1 MOVE 3 TO DUMIX ELSE MOVE 2 TO DUMIX. DETAB-65 002550 MOVE AZ TO DGOLB. DETAB-65 002555 MOVE ' ELSE ' TO DELSE. DETAB-65 002560 MOVE ELMCX TO DGONO. DETAB-65 002565 MOVE DGOTO TO ELOPR. DETAB-65 002570 DX031. DETAB-65 002575 EXIT. DETAB-65 002580 DX032. DETAB-65 002585 MOVE 'EL001' TO DGOLN. DETAB-65 002590 MOVE '.' TO PELSE. DETAB-65 002595 IF DUMIX = 2 MOVE DGOTO TO CDOPR ELSE DETAB-65 002600 IF DUMIX = 1 MOVE DGOTO TO ELOPR. DETAB-65 002605 MOVE CNDI (NOCON) TO COND. DETAB-65 002610 PERFORM DX016 THRU DX020 VARYING COLIX FROM 1 BY 1 UNTIL DETAB-65 002615 COLIX IS GREATER THAN NCOLS. DETAB-65 002620 GO TO DX301. DETAB-65 002625 DX016. DETAB-65 002630 MOVE ELIMC (COLIX) TO DUMIX. DETAB-65 002635 MOVE 1 TO ROWIX. DETAB-65 002640 DX016-1. DETAB-65 002645 IF ROWIX GREATER NOCON GO TO DX016-2. DETAB-65 002650 IF COLMN (ROWIX, DUMIX) = 'B' GO TO DX504. DETAB-65 002655 ADD 1 TO ROWIX. DETAB-65 002660 GO TO DX016-1. DETAB-65 002665 DX016-2. DETAB-65 002670 MOVE 0 TO ROWIX. DETAB-65 002675 DX016-3. DETAB-65 002680 IF ROWIX = NOCON GO TO DX016-4. DETAB-65 002685 COMPUTE ELMCX = NOCON - ROWIX. DETAB-65 002690 IF COLMN (ELMCX, DUMIX) = ' ' THEN DETAB-65 002695 MOVE 'B' TO COLMN (ELMCX, DUMIX), GO TO DX020. DETAB-65 002700 ADD 1 TO ROWIX. DETAB-65 002705 GO TO DX016-3. DETAB-65 002710 DX016-4. DETAB-65 002715 SUBTRACT 1 FROM NORLS. DETAB-65 002720 PERFORM DX100 VARYING ELMCX FROM 1 BY 1 DETAB-65 002725 UNTIL ELMCX IS GREATER THAN NORLS. DETAB-65 002730 GO TO DX020. DETAB-65 002735 DX100. DETAB-65 002740 COMPUTE ELMCT = ELMCX + 1 DETAB-65 002745 IF MATIX (ELMCX) IS NOT LESS THAN DUMIX DETAB-65 002750 MOVE MATIX (ELMCT) TO MATIX (ELMCX). DETAB-65 002755 DX504. DETAB-65 002760 MOVE 1 TO ELMCT. DETAB-65 002765 DX504-1. DETAB-65 002770 IF ELMCT = ROWIX GO TO DX504-2. DETAB-65 002775 COMPUTE ELMCX = ROWIX - ELMCT. DETAB-65 002780 IF COLMN (ELMCX, DUMIX) = ' ' GO TO DX507. DETAB-65 002785 ADD 1 TO ELMCT. DETAB-65 002790 GO TO DX504-1. DETAB-65 002795 DX504-2. DETAB-65 002800 MOVE 'Y' TO COLMN (ROWIX, DUMIX). DETAB-65 002805 GO TO DX016. DETAB-65 002810 DX507. DETAB-65 002815 MOVE 'B' TO COLMN (ELMCX, DUMIX). DETAB-65 002820 PERFORM DX508 VARYING ELMCX FROM ROWIX BY 1 DETAB-65 002825 UNTIL ELMCX = NOCON. DETAB-65 002830 GO TO DX020. DETAB-65 002835 DX508. DETAB-65 002840 IF COLMN (ELMCX, DUMIX) = 'B' DETAB-65 002845 MOVE ' ' TO COLMN (ELMCX, DUMIX). DETAB-65 002850 DX020. DETAB-65 002855 EXIT. DETAB-65 002860 DETAB-65 002865 NOTE POP LAST-IN-FIRST-OUT LIST. DETAB-65 002870 DETAB-65 002875 DX301. DETAB-65 002880 PERFORM L1OUT THRU RITAB. DETAB-65 002885 PERFORM L2OUT THRU RITAB. DETAB-65 002890 IF NORLS = ZEROES GO TO DX038. DETAB-65 002895 MOVE 'DX' TO LABNM. DETAB-65 002900 MOVE PDPUL (LABIX) TO LABVL. DETAB-65 002905 SUBTRACT 1 FROM LABIX. DETAB-65 002910 PERFORM DLOUT THRU RITAB. DETAB-65 002915 DETAB-65 002920 NOTE SETUP INDEXES FOR NEXT PASS. DETAB-65 002925 DETAB-65 002930 DX302. DETAB-65 002935 MOVE NORLS TO NCOLS. DETAB-65 002940 MOVE NROWS TO NOCON. DETAB-65 002945 MOVE MATIT TO ELIMT. DETAB-65 002950 MOVE 1 TO ROWIX. DETAB-65 002955 DX302-1. DETAB-65 002960 IF ROWIX = NOCON DETAB-65 002965 MOVE ERR-10 TO ERR-IMAGE DETAB-65 002970 WRITE TAPE-LIST FROM ERR-PRNT DETAB-65 002975 GO TO DT001. DETAB-65 002980 DETAB-65 002985 NOTE DELETE THAT PATH GENERATED ON THE LAST PASS AND DETAB-65 002990 FIND THE NEXT HIGHER NODE ON THE TREE. DETAB-65 002995 DETAB-65 003000 MOVE 1 TO COLIX. DETAB-65 003005 DX034-1. DETAB-65 003010 IF SAVCL (ROWIX) = ' ' MOVE 'N' TO SAVCL (ROWIX). DETAB-65 003015 IF COLIX GREATER NCOLS GO TO DX004. DETAB-65 003020 MOVE ELIMC (COLIX) TO ELMCX. DETAB-65 003025 IF COLMN (ROWIX, ELMCX) = ' ' OR COLMN (ROWIX, ELMCX) DETAB-65 003030 = SAVCL (ROWIX) GO TO DX034-2. DETAB-65 003035 ADD 1 TO COLIX. DETAB-65 003040 GO TO DX034-1. DETAB-65 003045 DX034-2. DETAB-65 003050 PERFORM DX037 VARYING COLIX FROM 1 BY 1 UNTIL COLIX = NCOLS. DETAB-65 003055 DX037. DETAB-65 003060 MOVE ELIMC (COLIX) TO ELMCX. DETAB-65 003065 MOVE COLIX TO ELMRX. DETAB-65 003070 IF COLMN (ROWIX, ELMCX) NOT = ' ' AND COLMN (ROWIX, ELMCX) DETAB-65 003075 NOT = SAVCL (ROWIX) PERFORM DX011 THRU DX055. DETAB-65 003080 DX061. DETAB-65 003085 ADD 1 TO ROWIX. DETAB-65 003090 GO TO DX302-1. DETAB-65 003095 DX038. DETAB-65 003100 MOVE SPACES TO LINE3. DETAB-65 003105 COMPUTE KEY-2 = NORULS - 1. DETAB-65 003110 PERFORM DX039 THRU DX039B VARYING COLIX FROM 1 BY 1 DETAB-65 003115 UNTIL COLIX = KEY-2. DETAB-65 003120 DX039. DETAB-65 003125 MOVE AZ TO LABNM. DETAB-65 003130 MOVE COLIX TO LABVL. DETAB-65 003135 PERFORM DLOUT THRU RITAB. DETAB-65 003140 ADD 1 NCOND GIVING KEY-1. DETAB-65 003145 PERFORM DXA01 THRU DXA04 VARYING EXIX FROM 1 BY 1 UNTIL DETAB-65 003150 EXIX IS GREATER THAN NACTS. DETAB-65 003155 MOVE SPACES TO CRD-OUT. DETAB-65 003160 EXAMINE DUM-5 TALLYING UNTIL FIRST 'G'. DETAB-65 003165 IF TALLY = 58 GO TO DX039H. DETAB-65 003170 IF TALLY NOT = ZERO, THEN DETAB-65 003175 IF TEMP (TALLY) NOT = SPACE GO TO DX039H. DETAB-65 003180 COMPUTE DUMIX = TALLY + 1. DETAB-65 003185 PERFORM DX039F VARYING TALLY FROM 1 BY 1 UNTIL TALLY = 6. DETAB-65 003190 GO TO DX039G. DETAB-65 003195 DX039F. DETAB-65 003200 MOVE TEMP (DUMIX) TO EGOTO (TALLY). DETAB-65 003205 ADD 1 TO DUMIX. DETAB-65 003210 DXA01. DETAB-65 003215 IF COLMN (KEY-1, COLIX) = ' ' GO TO DXA04. DETAB-65 003220 MOVE ATBL (EXIX) TO DUM-5, BNAME. DETAB-65 003225 PERFORM RSCAN. DETAB-65 003230 ADD 3 TO DUMIX. DETAB-65 003235 MOVE '.' TO TCOLS (DUMIX). DETAB-65 003240 PERFORM L2OUT THRU RITAB. DETAB-65 003245 DXA04. DETAB-65 003250 ADD 1 TO KEY-1. DETAB-65 003255 DX039G. DETAB-65 003260 IF DUM-4 = 'GO TO' GO TO DX039B. DETAB-65 003265 DX039H. DETAB-65 003270 MOVE 'GO TO DEXIT.' TO B-MARG OF CRD-OUT. DETAB-65 003275 MOVE CRD-OUT TO TAPE-LIST. DETAB-65 003280 PERFORM RITAB. DETAB-65 003285 DX039B. DETAB-65 003290 EXIT. DETAB-65 003295 DX040. DETAB-65 003300 MOVE SPACES TO LINE3. DETAB-65 003305 COMPUTE KEY-1 = NCOND + 1. DETAB-65 003310 MOVE NORULS TO COLIX. DETAB-65 003315 MOVE 1 TO EXIX. DETAB-65 003320 MOVE KEY-1 TO TALLY. DETAB-65 003325 MOVE 0 TO NRLS. DETAB-65 003330 DX040-2. DETAB-65 003335 IF EXIX GREATER NACTS GO TO DX040-3. DETAB-65 003340 IF COLMN (TALLY, COLIX) NOT = ' ' ADD 1 TO NRLS. DETAB-65 003345 ADD 1 TO TALLY, ADD 1 TO EXIX. DETAB-65 003350 GO TO DX040-2. DETAB-65 003355 DX040-3. DETAB-65 003360 IF NRLS = ZEROES GO TO DX040-1. DETAB-65 003365 MOVE 'EL001' TO DUM-6. DETAB-65 003370 PERFORM DLOUT THRU RITAB. DETAB-65 003375 DX040-1. DETAB-65 003380 PERFORM DXA01 THRU DXA04 VARYING EXIX FROM 1 BY 1 UNTIL DETAB-65 003385 EXIX IS GREATER THAN NACTS. DETAB-65 003390 MOVE SPACES TO CRD-OUT. DETAB-65 003395 MOVE 'DEXIT. EXIT.' TO BODY OF CRD-OUT. DETAB-65 003400 MOVE CRD-OUT TO TAPE-LIST. DETAB-65 003405 PERFORM RITAB. DETAB-65 003410 GO TO DT001. DETAB-65 003415 L1OUT. DETAB-65 003420 MOVE LINE1 TO CRD-OUT, TAPE-LIST. GO TO RITAB. DETAB-65 003425 L2OUT. DETAB-65 003430 MOVE LINE2 TO CRD-OUT, TAPE-LIST. GO TO RITAB. DETAB-65 003435 DLOUT. DETAB-65 003440 MOVE DLABEL TO CRD-OUT, TAPE-LIST. DETAB-65 003445 RITAB. DETAB-65 003450 WRITE TAPE-LIST. DETAB-65 003455 WRITE CRD-OUT. DETAB-65 003460 RSCAN. DETAB-65 003465 MOVE 58 TO DUMIX. DETAB-65 003470 PERFORM RS001 THRU RS003. DETAB-65 003475 RS001. DETAB-65 003480 IF TEMP (DUMIX) = SPACE GO TO RS002. DETAB-65 003485 ADD 2 TO DUMIX. DETAB-65 003490 GO TO RS003. DETAB-65 003495 RS002. DETAB-65 003500 IF DUMIX = 1 GO TO RS003. DETAB-65 003505 SUBTRACT 1 FROM DUMIX. DETAB-65 003510 GO TO RS001. DETAB-65 003515 RS003. DETAB-65 003520 EXIT. DETAB-65 003525 DETAB-65 003530 NOTE DIAGNOSTIC SECTION. DETAB-65 003535 DETAB-65 003540 EM01. DETAB-65 003545 MOVE ERR-1 TO ERR-IMAGE. DETAB-65 003550 GO TO EM99. DETAB-65 003555 EM02. DETAB-65 003560 MOVE ERR-2 TO ERR-IMAGE. DETAB-65 003565 GO TO EM99. DETAB-65 003570 EM03. DETAB-65 003575 MOVE ERR-3 TO ERR-IMAGE. DETAB-65 003580 GO TO EM99. DETAB-65 003585 EM04. DETAB-65 003590 MOVE ERR-4 TO ERR-IMAGE. DETAB-65 003595 GO TO EM99. DETAB-65 003600 EM05. DETAB-65 003605 MOVE ERR-5 TO ERR-IMAGE. DETAB-65 003610 GO TO EM99. DETAB-65 003615 EM06. DETAB-65 003620 MOVE ERR-6 TO ERR-IMAGE. DETAB-65 003625 GO TO EM99. DETAB-65 003630 EM07. DETAB-65 003635 MOVE ERR-7 TO ERR-IMAGE. DETAB-65 003640 GO TO EM99. DETAB-65 003645 EM08. DETAB-65 003650 MOVE ERR-8 TO ERR-IMAGE. DETAB-65 003655 GO TO EM99. DETAB-65 003660 EM09. DETAB-65 003665 MOVE ERR-9 TO ERR-IMAGE. DETAB-65 003670 EM99. DETAB-65 003675 WRITE TAPE-LIST FROM ERR-PRNT. DETAB-65 003680 READ-1. DETAB-65 003685 READ CARD-INPUT INTO DETAB-CRD, AT END GO TO EOF. DETAB-65 003695 IF IDENT OF DETAB-CRD = '0000' DETAB-65 003700 MOVE '0' TO TAPE-LIST, DETAB-65 003705 WRITE TAPE-LIST. DETAB-65 003690 MOVE SPACES TO IDFLD. DETAB-65 003710 WRITE TAPE-LIST FROM DETAB-CRD. DETAB-65 003715 IF IDENT OF DETAB-CRD = '999X' GO TO EOF. DETAB-65 003720 SKIP01. DETAB-65 003725 IF LINE-ID OF DETAB-CRD NOT = '$' GO TO READ-1. DETAB-65 003730 GO TO DT001. DETAB-65 003735 EOF. DETAB-65 003740 MOVE '0END DETAB/65 PREPROCESSOR RUN.' TO TAPE-LIST. DETAB-65 003745 WRITE TAPE-LIST. DETAB-65 003750 CLOSE CARD-INPUT WITH LOCK. DETAB-65 003755 CLOSE CARD-OUTPUT WITH LOCK, LIST-OUTPUT WITH LOCK. DETAB-65 003760 STOP RUN. DETAB-65 $CBEND ~ $BLOCK BCD,0084 1 0000 TABLEXX L 004001003 0001 001002ELS$ C1 N N C2 N C3 N C4 Y N A1 X $ 1 0000 TABLEXXX L 004001004 0001 001002003ELS$ C1 Y Y Y C2 Y N C3 N N C4 Y N N A1 X $ 1 0000 TABLEXXXX L 006001004 0001 001002003ELS$ C1 Y Y Y C2 Y N C3 N N N C4 N N C5 N N C6 N Y N A1 X X X $ 1 0000 TEST-001 L 003001004 0001 001002003ELS$ C-1 Y Y N C-2 Y Y Y C-3 Y N Y ACTION-1 X X X X $ 1 0000 TEST-002 L 002001005 0001 001002003004ELS$ C-1 Y N Y N C-2 N Y Y N ACTION-1 X X X X X $ 1 0000 TEST-003 L 003001009 0001 001002003004005006007008ELS$ C-1 Y Y Y N Y N N N C-2 Y Y N Y N N Y N C-3 Y N Y Y N Y N N ACTION-1 X X X X X X X X X $ 1 0000 TEST-004 L 004001017 0001 001002003004005006007008009010011012013014015016ELS$ C-1 Y Y Y Y N Y Y N Y N N Y N N N N C-2 Y Y Y N Y Y N N N Y Y N N N Y N C-3 Y Y N Y Y N N Y Y N Y N N Y N N C-4 Y N Y Y Y N Y Y N Y N N Y N N N ACTION-1 X X X X X X X X X X X X X X X X X $ 1 0000 TEST-005 L 004001003 0001 001002ELS$ C-1 Y Y C-2 Y Y C-3 Y Y C-4 Y N ACTION-1 X X X $ 1 0000 TEST-006 L 004001004 0001 001002003ELS$ C-1 Y Y Y C-2 Y Y Y C-3 Y Y N C-4 Y N Y ACTION-1 X X X X $ 1 0000 TEST-007 L 004001005 0001 001002003004ELS$ C-1 Y Y N - C-2 Y Y Y Y C-3 Y Y Y N C-4 Y N Y Y ACTION-1 X X X X X $ 0000 TEST-009 L 003001009 0001 001002003004005006007008ELS$ C-1 Y Y N N Y N N Y C-2 Y Y Y N N N Y N C-3 Y N Y Y Y N N N ACTION-1 X X X X X X X X X X $ 1 0000 TEST-010 L 007001009 0001 001002003004005006007008ELS$ C-1 Y Y Y Y N N N N C-2 Y Y N N Y N Y N C-3 Y N Y N N Y Y N ACTION-1 X X X X X X X X X $ 1 0000 TEST-011 L 005001005 0001 001002003003ELS$ C-1 Y Y Y N C-2 Y Y Y Y C-3 Y Y Y Y C-4 Y Y N Y C-5 Y N Y Y ACTION-1 X X X X X $ 1 0000 TEST-012 L 003001009 0001 001002003004005006007008ELS$ C-1 N N N N Y Y Y Y C-2 N N Y N Y N N Y C-3 N Y N Y N Y N Y ACTION-1 X X X X X X X X X $ 1 0000 TEST-013 L 005001005 0001 001002003004ELS$ C-1 Y Y Y Y C-2 Y Y Y N C-3 Y Y Y Y C-4 Y Y N Y C-5 Y N Y Y ACTION-1 X X X X X $ 1 0000 TEST-014 L 010001010 0001 001002003004005006007008009ELS$ C-1 Y N Y Y N Y Y N N C-2 Y Y Y Y Y - Y - N C-3 Y Y Y Y Y N Y N Y C-4 Y Y Y Y Y N Y N Y C-5 Y Y Y Y Y Y Y Y Y C-6 Y Y - Y N - N N - C-7 Y Y - Y N - - N - C-8 Y Y N Y Y Y Y N Y C-9 Y Y Y Y Y Y Y Y Y C-10 Y Y Y N Y Y Y Y Y ACTION-1 X X X X X X X X X X $ 1 0000 TEST-015 L 010001010 0001 001002003004005006007008009ELS$ C-1 Y Y Y N Y Y Y Y Y C-2 Y Y Y Y Y Y Y Y Y C-3 Y Y N Y Y Y Y N Y C-4 Y Y - Y N - - N - C-5 Y Y - Y N - N N - C-6 Y Y Y Y Y Y Y Y Y C-7 Y Y Y Y Y N Y N Y C-8 Y Y Y Y Y N Y N Y C-9 Y Y Y Y Y - Y - N C-10 Y N Y Y N Y Y N N ACTION-1 X X X X X X X X X X $ 1 0000 TEST-016 L 005001005 0001 001002003004ELS$ C-1 Y Y Y Y C-2 N Y Y Y C-3 - N Y Y C-4 - - N Y C-5 - - - N ACTION-1 X X X X X $ 1 0000 TEST-017 L 005001005 0001 001002003004ELS$ C-1 Y Y Y Y C-2 Y Y Y N C-3 Y Y N - C-4 Y N - - C-5 N - - - ACTION-1 X X X X X $ 1 0000 TEST-018 (CHOISE-PICK) L 010011010 0001 001002003004005006007008009ELS$ C1 Y Y Y N Y Y Y Y Y C2 Y Y Y Y Y Y Y Y Y C3 Y Y N Y Y Y Y N Y C4 Y Y Y N N C5 Y Y Y N N C6 Y Y Y Y Y Y Y Y Y C7 Y Y Y Y Y N Y N Y C8 Y Y Y Y Y N Y N Y C9 Y Y Y Y Y Y N C10 Y N Y Y N Y Y N N A1 X X X X X X X X X X A2 X X A3 X X A4 X X A5 X X A6 X X A7 X X A8 X X X X A9 X X X X A10 X X X X A11 X X $ 999X ~ $IBSYS $STOP