17 PROC ;INSTANT DIBOL - GENERATION 27 ;*************************************** 37 ; SOURCE PRINT7 47 ;*************************************** 57 ; 67 ;MAIN GENERATING ROUTINE 77 ; 87 GENRAT, LPTSW= 97 IF (SWITCH(2,2).NE.'L') GOTO GNRAT1 107 LPTSW='X' 117 INIT (2,LPT) 127 CALL STARTL 137 GNRAT1, WORKB= 147 ERRLNM= 157 PRGLIN= 167 LEVELS(10)='A' 177 CALL SETLEV 187 LEVELN(10)=TOPLEV 197 INIT (4,OUT,PROGF,PROGU) 207 PRGLIN='START ;' 217 CALL PROCI9 ;GENERATE 'START' LINE 227 CALL PUTDLR ;GENERATE LISTING RECORD 237 CALL PUTINR ;GENERATE INPUT RECORD 247 CALL PUTRHD ;GENERATE REPORT HEADING RECORD 257 CALL PUTHDS ;GENERATE HEAD1&HEAD2 RECORDS 267 CALL PUTUHD ;GENERATE USER HEADINGS 277 CALL PUTMES ;GENERATE TOTAL MESSAGES 287 CALL PUTMSK ;GENERATE MASKS 297 CALL PUTWRK ;GENERATE WORK RECORD 307 CALL PUTACS ;GENERATE ACCUMULATOR RECORD 317 CALL PUTSAV ;GENERATE 'SAVE' FIELDS 327 ; 337 IF (LPTSW.NE.SPACE) CALL LSTOP 347 CALL PROCI ;GENERATE INITIAL PROCEDURE CODE 357 CALL PUTBRC ;GENERATE BREAK COMPARES 367 CALL PUTBRP ;GENERATE BREAK PRINTING ROUTINES 377 CALL PUTRSC ;GENERATE BREAK RESETTING ROUTINES 387 CALL PUTCMP ;GENERATE COMPUTATION & DETAIL PRINT 397 CALL PUTOTL ;GENERATE COMMON TOTALER 407 CALL PUTRES ;GENERATE COMMON RESET CODE 417 CALL PUTOF ;GENERATE TOP-OF-FORM CODE 427 ; 437 CALL PUTBL 447 PRGLIN='END' 457 PLSIZ=3 467 CALL PUTPL 477 FINI (4) 487 IF (LPTSW.EQ.SPACE) STOP 497 FORMS (2,0) 507 FINI (2) 517 STOP 527 ; 537 ; GENERATE REPORT HEADING RECORD 547 ; 557 PUTRHD, CALL PUTBL 567 PRGLIN=GENREC(1) 577 PLSIZ=29 587 CALL PUTPL 597 PRGLIN=PREC01 607 PRGLIN(10,11)='6,' 617 PRGLIN(12,12)=SQUOTE 627 PRGLIN(13,18)=PROGID 637 PRGLIN(19,19)=SQUOTE 647 PLSIZ=19 657 CALL PUTPL 667 CALL PUTRH2 677 PRGLIN='XXHDAT, A8' 687 PLSIZ=10 697 CALL PUTPL 707 CALL PUTRH2 717 PRGLIN=PREC01 727 PRGLIN(10,17)='5, PAGE' 737 PRGLIN(12,12)=SQUOTE 747 PRGLIN(18,18)=SQUOTE 757 PLSIZ=18 767 CALL PUTPL 777 PRGLIN='XXHPAG, A4' 787 PLSIZ=10 797 GOTO PUTPL 807 ; 817 PUTRH2, J=(PWIDTH-23)/2 827 IF (J.GE.3) GOTO PUTFIL 837 J=3 847 GOTO PUTFIL 857 ; 867 ;GENERATE INPUT RECORD 877 ; 887 PUTINR, CALL PUTBL 897 PRGLIN=GENREC(2) 907 PLSIZ=29 917 CALL PUTPL 927 937 I=1 947 PUTIR1, DATANE=DATANT(I) 957 IF (DATAWK.NE.SPACE) RETURN 967 CALL PUTDAT 977 INCR I 987 IF (I.LE.NAMEI) GOTO PUTIR1 997 RETURN 1007 ; 1017 ;GENERATE DETAIL LISTING RECORD 1027 ; 1037 PUTDLR, CALL PUTBL 1047 PRGLIN=GENREC(3) 1057 PLSIZ=31 1067 CALL PUTPL 1077 IF (ACNUM.EQ.0) GOTO PTDR0B 1087 IF (BIGHS.GE.6) GOTO PTDR0A 1097 BIGHS=6 1107 PTDR0A, BIGHS=BIGHS+7 1117 J=FIRSTA-BIGHS 1127 IF (J.GE.0) GOTO PTDR0C 1137 IF (PWIDTH-J.GT.LINMAX) GOTO PTDR0B 1147 LISTE=LISTER(1) 1157 LISTFS=LISTFS-J 1167 LISTER(1)=LISTE 1177 PWIDTH=PWIDTH-J 1187 FIRSTA=BIGHS 1197 GOTO PTDR0C 1207 PTDR0B, BIGHS= 1217 1227 PTDR0C, I=1 1237 PTDLR1, LISTE=LISTER(I) 1247 IF (LISTFS.EQ.0) GOTO PTDLR3 1257 J=LISTFS 1267 CALL PUTFIL 1277 PTDLR3, PRGLIN='XXPF00, A' 1287 CALL BLDESD 1297 PRGLIN(5,6)=DESCRP 1307 J=LISTIS 1317 CALL BLDESA 1327 PRGLIN(10,12)=DESCRP 1337 CALL PUTPL 1347 INCR I 1357 IF (I.LE.LISTI) GOTO PTDLR1 1367 IF (BIGHS.LE.0) RETURN 1377 PRGSTM='RECORD,X' 1387 PLSIZ=16 1397 CALL PUTPL 1407 J=FIRSTA-BIGHS 1417 IF (J.LE.0) GOTO PTDLR4 1427 PRGLIN=PREC01 1437 CALL BLDESA 1447 PRGLIN(10,12)=DESCRP 1457 PLSIZ=12 1467 CALL PUTPL 1477 PTDLR4, PRGLIN='XXTOTM, A' 1487 J=BIGHS 1497 CALL BLDESA 1507 PRGLIN(10,12)=DESCRP 1517 PLSIZ=12 1527 GOTO PUTPL 1537 ; 1547 ;GENERATE HEAD1&HEAD2 RECORDS 1557 ; 1567 PUTHDS, TEMP4=HEAD1S*2-1 1577 IF (TEMP4.GT.PWIDTH) GOTO PUTHD2 1587 I=HEAD1S 1597 PUTHD1, HEAD1T(TEMP4,TEMP4)=HEAD1T(I,I) 1607 TEMP4=TEMP4-1 1617 HEAD1T(TEMP4,TEMP4)= 1627 TEMP4=TEMP4-1 1637 I=I-1 1647 IF (I.GT.1) GOTO PUTHD1 1657 HEAD1S=HEAD1S*2-1 1667 ; 1677 PUTHD2, IF (HEAD1S.NE.0) GOTO PUTHD3 1687 IF (HEAD2S.EQ.0) RETURN 1697 PUTHD3, CALL PUTBL 1707 PRGLIN=GENREC(4) 1717 CALL PUTHD4 1727 PRGLIN=GENREC(5) 1737 HEAD1T=HEAD2T 1747 K=HEAD1S 1757 HEAD1S=HEAD2S 1767 CALL PUTHD4 1777 HEAD1S=K 1787 RETURN 1797 1807 PUTHD4, IF (HEAD1S.EQ.0) RETURN 1817 PLSIZ=26 1827 CALL PUTPL 1837 J=(PWIDTH-HEAD1S)/2 1847 IF (J.GT.0) CALL PUTFIL 1857 PUTHD5, I=1 1867 PTHD5A, PRGLIN=PREC01 1877 IF (HEAD1S.LE.60) GOTO PUTHD6 1887 PRGLIN(10,12)='60,' 1897 PRGLIN(13,13)=SQUOTE 1907 PRGLIN(14,73)=HEAD1T(I,I+59) 1917 PRGLIN(74,74)=SQUOTE 1927 PLSIZ=74 1937 CALL PUTPL 1947 HEAD1S=HEAD1S-60 1957 I=I+60 1967 GOTO PTHD5A 1977 PUTHD6, IF (HEAD1S.GT.9) GOTO PUTHD7 1987 PRGLIN(10,10)=HEAD1S(3,3) 1997 PRGLIN(11,11)=',' 2007 GOTO PUTHD8 2017 PUTHD7, PRGLIN(10,11)=HEAD1S(2,3) 2027 PRGLIN(12,12)=',' 2037 PUTHD8, PRGLIN(13,13)=SQUOTE 2047 PRGLIN(14,HEAD1S+13)=HEAD1T(I,I+HEAD1S-1) 2057 PLSIZ=HEAD1S+14 2067 PRGLIN(PLSIZ,PLSIZ)=SQUOTE 2077 GOTO PUTPL 2087 ; 2097 ;GENERATE WORK RECORD 2107 ; 2117 PUTWRK, CALL PUTBL 2127 PRGLIN=GENREC(6) 2137 PLSIZ=31 2147 CALL PUTPL 2157 I=1 2167 PTWRK1, PRGLIN=WRKSV(I) 2177 PLSIZ=12 2187 CALL PUTPL 2197 INCR I 2207 IF (I.LE.WRKSC) GOTO PTWRK1 2217 PRGLIN='XXFILE, A6' 2227 PLSIZ=10 2237 IF (FILNAM.EQ.SPACE6) GOTO PTWRK2 2247 PRGLIN(11,11)=',' 2257 PRGLIN(12,12)=SQUOTE 2267 PRGLIN(19,19)=SQUOTE 2277 PRGLIN(13,18)=FILNAM 2287 PLSIZ=19 2297 PTWRK2, CALL PUTPL 2307 PRGLIN='XXUNIT, D2' 2317 PLSIZ=10 2327 IF (FILUNT.EQ.0) GOTO PTWRK3 2337 PRGLIN(11,11)=',' 2347 I=FILUNT 2357 CALL BLDESD 2367 PRGLIN(12,13)=DESCRP 2377 PLSIZ=13 2387 PTWRK3, CALL PUTPL 2397 IF (COMPI.LE.0) RETURN 2407 I=1 2417 PTWRK4, DATANE=DATANT(I) 2427 IF (DATAWK.NE.SPACE) CALL PUTDAT 2437 INCR I 2447 IF (I.LE.NAMEI) GOTO PTWRK4 2457 RETURN 2467 ; 2477 ;GENERATE ACCUMULATOR RECORD 2487 ; 2497 PUTACS, IF (ACNUM.LE.0) RETURN 2507 I=1 2517 PUTAC1, LISTE=LISTER(I) 2527 IF (LISTAC.EQ.0) GOTO PUTAC5 2537 PRGLIN='XXAC00, D' 2547 PRGLIN(9,10)=TOPLEV 2557 CALL BLDESB 2567 PRGLIN(5,6)=DESCRP 2577 DATANE=DATANT(LISTID) 2587 J=DATAS+2 2597 IF (J.LE.15) GOTO PUTAC4 2607 J=15 2617 PUTAC4, CALL BLDESA 2627 PRGLIN(12,13)=DESCRP 2637 PLSIZ=13 2647 CALL PUTPL 2657 PUTAC5, INCR I 2667 IF (I.LE.LISTI) GOTO PUTAC1 2677 RETURN 2687 ; 2697 ; GENERATE BREAK SAVE REGISTERS 2707 ; 2717 PUTSAV, I=1 2727 PUTSV1, DATANE=DATANT(I) 2737 IF (DATALV.EQ.0) GOTO PUTSV2 2747 PRGLIN='XX0000,' 2757 PRGLIN(3,3)=DATALV 2767 DESCRP=I 2777 CALL BLDESC 2787 PRGLIN(4,6)=DESCRP 2797 PRGLIN(9,9)=DATAM 2807 J=DATAS 2817 CALL BLDESA 2827 PRGLIN(10,12)=DESCRP 2837 PLSIZ=12 2847 CALL PUTPL 2857 PUTSV2, INCR I 2867 IF (I.LE.NAMEI) GOTO PUTSV1 2877 RETURN