10 ;*************************************** 20 ; SOURCE PRINT0 30 ;*************************************** 40 ; 50 ;GENERATE TOP-OF-FORM ROUTINE 60 ; 70 PUTOF, CALL PUTBL 80 J=1 90 PRGLIN='XXTOF, FORMS (2,0)' 100 PLSIZ=19 110 CALL PUTPL 120 PRGSTM='INCR XXPAGE' 130 CALL PUTPL 140 PRGSTM='XXHPAG=XXPAGE' 150 PLSIZ=21 160 CALL PUTPL 170 PRGSTM=XMIT2(1) 180 PLSIZ=23 190 CALL PUTPL 200 IF (HEAD1S.NE.0) GOTO PUTOF2 210 IF (HEAD2S.EQ.0) GOTO PUTOF5 220 GOTO PUTOF3 230 PUTOF2, PRGSTM=XMIT2(2) 240 PLSIZ=23 250 CALL PUTPL 260 INCR J 270 IF (HEAD2S.EQ.0) GOTO PUTOF4 280 PUTOF3, PRGSTM=XMIT2(3) 290 PLSIZ=23 300 CALL PUTPL 310 INCR J 320 PUTOF4, PRGSTM=FORM21 330 PLSIZ=19 340 CALL PUTPL 350 INCR J 360 PUTOF5, IF (NUMHDR.EQ.0) GOTO PUTOF7 370 J=J+1+NUMHDR 380 I=1 390 PUTOF6, PRGSTM=XMIT2(4) 400 CALL BLDESD 410 PRGLIN(21,22)=DESCRP 420 PLSIZ=23 430 CALL PUTPL 440 INCR I 450 IF (I.LE.NUMHDR) GOTO PUTOF6 460 PRGSTM=FORM21 470 PLSIZ=19 480 CALL PUTPL 490 500 PUTOF7, J=60-J 510 PRGSTM='XXLINE=' 520 CALL BLDESA 530 PRGSTM(8,10)=DESCRP 540 PLSIZ=18 550 CALL PUTPL 560 IF (TOPLEV.LE.1) GOTO PUTRET 570 PRGLIN='XXTOF2,' 580 I=1 590 PUTOF8, LISTE=LISTER(I) 600 DATANE=DATANT(LISTID) 610 IF (DATALV.EQ.0) GOTO PUTOF9 620 PRGSTM='XXPF00=XX' 630 PRGLIN(18,18)=DATALV 640 DESCRP=LISTID 650 CALL BLDESC 660 PRGLIN(19,21)=DESCRP 670 CALL PUTMV0 680 PUTOF9, INCR I 690 IF (I.LE.LISTI) GOTO PUTOF8 700 GOTO PUTRET 710 ; 720 ;GENERATE COMMON TOTALER 730 ; 740 PUTOTL, IF (ACNUM.LE.0) GOTO PUTO11 750 CALL PUTBL 760 IF (TOPLEV.LE.1) GOTO PTOT8A 770 PRGLIN='XXSUM,' 780 IF (SUMARY.NE.SPACE) GOTO PUTOT4 790 PRGLIN='XXTOTX,' 800 ; 810 PUTOT4, I=1 820 PUTOT5, LISTE=LISTER(I) 830 IF (LISTAC.LE.0) GOTO PUTOT8 840 PRGSTM='XXAC00(XXLEVL+1)=XXAC00(XXLEVL+1)+XXAC00(XXLEVL)' 850 CALL BLDESB 860 PRGLIN(13,14)=DESCRP 870 PRGLIN(30,31)=DESCRP 880 PRGLIN(47,48)=DESCRP 890 PLSIZ=56 900 CALL PUTPL 910 PUTOT8, INCR I 920 IF (I.LE.LISTI) GOTO PUTOT5 930 ; 940 IF (SUMARY.EQ.SPACE) GOTO PTOT8A 950 CALL PUTRET 960 CALL PUTBL 970 PRGLIN='XXTOTX, CALL XXSUM' 980 PLSIZ=18 990 CALL PUTPL 1000 1010 PTOT8A, PRGLIN='XXTOTY,' 1020 CALL CALTOF 1030 PRGSTM='XXPLIN=' 1040 PLSIZ=15 1050 CALL PUTPL 1060 1070 I=1 1080 PUTOT9, LISTE=LISTER(I) 1090 IF (LISTAC.LE.0) GOTO PUTO10 1100 PRGSTM='XXPF00=XXAC00(XXLEVL),XXMF00' 1110 CALL BLDESB 1120 PRGLIN(20,21)=DESCRP 1130 CALL BLDESD 1140 PRGLIN(13,14)=DESCRP 1150 PRGLIN(35,36)=DESCRP 1160 PLSIZ=36 1170 CALL PUTPL 1180 PUTO10, INCR I 1190 IF (I.LE.LISTI) GOTO PUTOT9 1200 ; 1210 IF (BIGHS.LE.0) GOTO PUTO11 1220 PRGSTM='XXTOTM=XXTITL(XXLEVL)' 1230 PLSIZ=29 1240 CALL PUTPL 1250 PUTO11, PRGLIN='XXTOTZ,' 1260 PRGSTM=XMIT2(5) 1270 PLSIZ=23 1280 CALL PUTPL 1290 CALL DECLIN 1300 PRGSTM='XXPLIN=' 1310 PLSIZ=15 1320 CALL PUTPL 1330 GOTO PUTRET 1340 ; 1350 ;GENERATE COMMON RESET ROUTINE 1360 ; 1370 PUTRES, IF (ACNUM.LE.0) RETURN 1380 CALL PUTBL 1390 PRGLIN='XXRESX,' 1400 I=1 1410 PTRES1, LISTE=LISTER(I) 1420 IF (LISTAC.LE.0) GOTO PTRES4 1430 PRGSTM='XXAC00(XXLEVL)=' 1440 CALL BLDESB 1450 PRGLIN(13,14)=DESCRP 1460 PLSIZ=23 1470 CALL LIN(PL 3789 PLSIZ)=SQUOTE^X9W CALL PUTPL^]:! ^]:+ ^W:5PTMSK9, INCR I^P:? IF (I.LE.LISTI) GOTO PTMSK1^Z:I RETURN^]:S;^N:];GENERATE USER'S HEADER RECORDS^];';^N;1PUTUHD, IF (NUMHDR.EQ.0) RETURN^X;; CALL PUTBL^ ;E I=1^O;OPTUHD1, PRGLIN='RECORD XXHD'^X;Y CALL BLDESD^S<# PRGLIN(13,14)=DESCRP^Y<- PLSIZ=14^X<7 CALL PUTPL^[% IF (LISTIT(J,J).NE.'*') GOTO PTUHD3^R>/PTUHD5, HOLDHS=J-LISTWN^O>9 IF (HOLDHS.EQ.0) GOTO PTUHD8^Y>C J=LISTIS^S>M DATANE=DATANT(LISTID)^O>W IF (DATAM.NE.'D') GOTO PTUHD6^G?! IF (LISTPC(LISTIS,LISTIS).NE.'-') GOTO PTUH5A^[?+ J=J-1^W?5PTUH5A, INCR J^N??PTUHD6, J=J/2-HOLDHS/2+OCOL-HCOL^R?I IF (J.LE.0) GOTO PTUHD7^X?S HCOL=HCOL+J^X?] CALL PUTFIL^U@'PTUHD7, PRGLIN=','^Y@1 J=HOLDHS^X@; CALL BLDESE^@@E PRGLIN(PLSIZ-HOLDHS,PLSIZ-1)=LISTIT(LISTWN,LISTWN+HOLDHS-1)^X@O CALL PUTPL^U@Y HCOL=HCOL+HOLDHS^OA#PTUHD8, LISTWN=LISTWN+HOLDHS+1^RA-PTUHD9, OCOL=OCOL+LISTIS^VA7 LISTER(K)=LISTE^ZAA INCR K^PAK IF (K.LE.LISTI) GOTO PTUHD2^]AU ^ZB INCR I^OB) IF (I.LE.NUMHDR) GOTO PTUHD1^ZB3 RETURN^]B=;^KBG;ASSIGN ASCENDING VALUES TO THE LEVELS^]BQ;^XB[SETLEV, I=1^ C% J=1^HC/SETLV1, IF (LEVELS(I).EQ.SPACE) GOTO SETLV2^VC9 HIBRK=LEVELS(I)^XCC LEVELN(I)=J^ZCM INCR J^RCW IF (J.NE.2) GOTO SETLV2^VD! LOBRK=LEVELS(I)^WD+SETLV2, 2355 I^RD5 IF (I.LE.9) GOTO SETLV1^YD? TOPLEV=J^VDI LEVELS(10)='A'^UDS LEVELN(10)=TOPLEV^SD] TOPFLG=LEVELN(TOPFLG)^ZE' RETURN^]E1;^SE;;PUT OUT A BLANK LINE^]EE;^WEOPUTBL, PLSIZ=1^XEY PRGLIN=';'^]F#;^RF-;PUT OUT A PROGRAM LINE^]F7;^MFAPUTPL, XMIT (4,PRGREC(1,PLSIZ+2))^NFK IF (LPTSW.EQ.SPACE) GOTO PUTPL1^WFU ERRLIN=PRGLIN^PG IF (LINES.LE.0) CALL LSTOP^VG) ERRLNM=ERRLNM+5^PG3 XMIT (2,ERRECD(1,PLSIZ+7))^WG= LINES=LINES-1^VGGPUTPL1, PRGLIN=^ZGQ RETURN^]G[;^MH%;BUILD DESCRIPTOR - LEFT JUSTIFIED^]H/;^VH9BLDESA, DESCRP=^RHC IF (J.LE.9) GOTO BLDES2^QHM IF (J.LE.99) GOTO BPUTPL^W6'PTRES4, INCR I^P61 IF (I.LE.LISTI) GOTO PTRES1^X6; GOTO PUTRET^]6E;^M6O;GENERATE MASKS FOR DECIMAL ITEMS^]6Y;^X7#PUTMSK, I=1^Z7- FINDSW=^R77PTMSK1, LISTE=LISTER(I)^S7A DATANE=DATANT(LISTID)^O7K IF (DATAM.NE.'D') GOTO PTMSK9^J7UPTMSK6, IF (FINDSW.NE.SPACE) GOTO PTMSK8^X8 FINDSW='X'^X8) CALL PUTBL^U83 PRGLIN=GENREC(7)^Y8= PLSIZ=25^X8G CALL PUTPL^R8QPTMSK8, PRGLIN='XXMF00,'^X8[ CALL BLDESD^T9% PRGLIN(5,6)=DESCRP^Y9/ J=LISTIS^X99 CALL BLDESE^L9C PRGLIN(PLSIZ-LISTIS,PLSIZ-1)=LISTPC^P9M PRGP(2,2)='0'^MLG IF (DESCRP(3,3).NE.SPACE) RETURN^VLQ DESCRP(3,3)='0'^ZL[ RETURN^]M%;^RM/;GENERATE 'A' DESCRIPTOR^]M9;^TMCBLDESE, CALL BLDESA^YMM PLSIZ=12^QMW IF (J.GT.99) GOTO BLESE2^RN! IF (J.GT.9) GOTO BLESE1^XN+ INCR PLSIZ^UN5BLESE1, INCR PLSIZ^UN?BLESE2, PRGSTM='A'^KNI PRGLIN(10,PLSIZ-2)=DESCRP(1,PLSIZ-11)^PNS PRGLIN(PLSIZ-1,PLSIZ-1)=','^PN] PRGLIN(PLSIZ,PLSIZ)=SQUOTE^VO' PLSIZ=PLSIZ+J+1^PO1 PRGLIN(PLSIZ,PLSIZ)=SQUOTE^ZO; RETURN^]OE;^OOO; GENERATE MOVE OF DETAIL ITEM^]OY;^RP#PUTMOV, PRGSTM='XXPF00='^SP- PRGLIN(16,21)=DATANM^TP7PUTMV0, CALL BLDESD^SPA PRGLIN(13,14)=DESCRP^YPK PLSIZ=21^DPUPUTMV1, IF(PRGLIN(PLSIZ,PLSIZ).NE.SPACE) GOTO PUTMV2^WQ PLSIZ=PLSIZ-1^XQ) GOTO PUTMV1^KQ3PUTMV2, IF (DATAM.NE.'D') GOTO PUTMV3^NQ= PRGLIN(PLSIZ+1,PLSIZ+5)=',XXMF'^KQG PRGLIN(PLSIZ+6,PLSIZ+7)=PRGLIN(13,14)^WQQ PLSIZ=PLSIZ+7^UQ[PUTMV3, GOTO PUTPL^]R%;^QR/;GENERATE DATA DESCRIPTOR^]R9;^SRCPUTDAT, PRGLIN=DATANM^ RM J=6^GRWPUTDT2, IF (PRGLIN(J,J).NE.SPACE) GOTO PUTDT3^[S! J=J-1^RS+ IF (J.GT.0) GOTO PUTDT2^WS5PUTDT3, INCR J^VS? PRGLIN(J,J)=','^USI PRGLIN(9,9)=DATAM^ZSS J=DATAS^XS] CALL BLDESA^ST' PRGLIN(10,12)=DESCRP^YT1 PLSIZ=12^XT; GOTO PUTPL^]TE;^OTO;GENERATE TEST FOR END OF PAGE^]TY;^HU#CALTOF, PRGSTM='IF (XXLINE.LE.0) CALL XXTOF'^YU- PLSIZ=35^XU7 GOTO PUTPL^]UA;^SUK;GENERATE 'FORMS(2,1)'^]UU;^OVBLANKL, IF (ACNUM.EQ.0) RETURN^WV) PRGSTM=FORM21^YV3 PLSIZ=19^XV= CALL PUTPL^]VG;^OVQ;GENERATE DECREMENT TO XXLINE^]V[;^NW%DECLIN, PRGSTM='XXLINE=XXLINE-1'^YW/ PLSIZ=23^XW9 GOTO PUTPL^]WC;^UWM;GENERATE 'RETURN'^]WW;^RX!PUTRET, PRGSTM='RETURN'^YX+ PLSIZ=14^XX5 GOTO PUTPL^]X?;^V 1832 ENERATE FILLER^]XS;^SX]PUTFIL, PRGLIN=PREC01^XY' CALL BLDESA^SY1 PRGLIN(10,12)=DESCRP^YY; PLSIZ=12^XYE GOTO PUTPL^]YO;^QYY;PUT OUT FIRST TOP-OF-FORM^]Z#;^JZ-STARTL, IF (LPTOPN.NE.SPACE) GOTO LSTOP1^]Z7;^TZA;PUT OUT TOP-OF-FORM^]ZK;^UZULSTOP, FORMS (2,0)^U[LSTOP1, INCR PAGES^W[) SHPAGE=PAGES^W[3 XMIT (2,SHDR)^X[= FORMS (2,1)^Y[G LINES=58^Z[Q RETURN^ [[ENDN^[WTEND/NNERATE HEAD1&HEAD2 RECORDS^L"5 CLDES1^YHW DESCRP=J^ZI! RETURN^QI+BLDES1, DESCRP(1,2)=J(2,3)^ZI5 RETURN^QI?BLDES2, DESCRP(1,1)=J(3,3)^ZII RETURN^]IS;^MI];GET AC NUMBER AS TWO-DIGIT FIELD^]J';^QJ1BLDESB, DESCRP(1,2)=LISTAC^QJ; IF (LISTAC.GE.10) RETURN^VJE DESCRP(1,1)='0'^ZJO RETURN^]JY;^NK#;CONVERT 'I' TO TWO-DIGIT ALPHA^]K-;^QK7BLDESD, DESCRP(1,2)=I(2,3)^]KA;^FKK;GET A RIGHT-JUSTIFIED 3-DIGIT FIELD INTO AL 2176 ^]KU;^JLBLDESC, IF (DESCRP(1,1).NE.SPACE) RETURN^VL) DESCRP(1,1)='0'^ML3 IF (DESCRP(2,2).NE.SPACE) RETURN^VL= DESCR