home *** CD-ROM | disk | FTP | other *** search
/ Share Gallery 1 / share_gal_1.zip / share_gal_1 / BF / BF015.ZIP / CPACFA.BAS < prev    next >
BASIC Source File  |  1987-12-18  |  14KB  |  672 lines

  1.      REM **** CPACFA ****
  2.      common cpafile$
  3.  
  4.  UpperCase:
  5.    def fnucase$(cpafile$)
  6.       length=len(cpafile$)
  7.  
  8.       if length =0 then
  9.          exit def
  10.       end if
  11.  
  12.       for I=1 to length
  13.          ch=asc(mid$(cpafile$,I,1))
  14.  
  15.             if ch > 96 and ch < 127 then
  16.             mid$(cpafile$,I,1)=chr$(ch-32)
  17.          end if
  18.  
  19.         next
  20.  
  21.         fnucase$=cpafile$
  22.  
  23.    end def
  24.  
  25.     cls
  26.     CLOSE
  27.     DEFSNG A-Z:DEFINT C,F,S,I,J
  28.  
  29.      REM  **** NOTE! CHANGE THE DIMENSIONS TO SUIT YOUR PROJECT
  30.     REM  **** 300 = NUMBER OF ACTIVITIES
  31.     REM  ****  24 = NUMBER OF MONTHS  2=NY= NUMBER OF YEARS
  32.     REM  ****  MAXIMUM ACTIVITY COST IS $32766 UNLESS YOU DEFSNG C
  33.     REM  **** IF YOU HAVE 200 ACTIVITIES AND 4 YEARS, CHANGE ALL THE 300s TO
  34.     REM  **** 200s and the 24 to 48 (DIM C2(200,48),A(1500),S2(200)...etc.
  35.     REM  **** THE VARIABLE A IS DIMENSIONED TO FIVE YEARS (1827 DAYS) ****
  36.  
  37.     DIM C2(300,24),A(1827),S2(300),F2(300),Z(300),C(300)
  38.     DIM X$(24),ZQ(24),ZH(24),D$(300),A3(100)
  39.     P6=2:NY=2
  40.     X$(1)=" JANUARY "
  41.     X$(2)="FEBRUARY "
  42.     X$(3)="  MARCH  "
  43.     X$(4)="  APRIL  "
  44.     X$(5)="   MAY   "
  45.     X$(6)="  JUNE   "
  46.     X$(7)="  JULY   "
  47.     X$(8)=" AUGUST  "
  48.     X$(9)="SEPTEMBER"
  49.     X$(10)=" OCTOBER "
  50.     X$(11)="NOVEMBER "
  51.     X$(12)="DECEMBER "
  52.     B4=VAL(MID$(DATE$,1,2))
  53.     B5=VAL(MID$(DATE$,4,2))
  54.     B6=VAL(MID$(DATE$,9,2))
  55.  
  56.      GOSUB GetFile                 '1940 READ INPUT FILE FOR COSTS AND P$
  57.  
  58.      INPUT "Want Early or Late Projection (E/L)  ",Q$
  59.  
  60.      IF Q$="L" OR Q$="l" THEN
  61.         F6=0
  62.         ELSE F6=1
  63.      end if
  64.  
  65.      GOSUB ReadLGS            '2520 READ LGS FILE FOR OTHER INFO
  66.  
  67.      GOSUB ReadHolidays       '2420 READ HOLIDAYS
  68.  
  69.      ON ERROR GOTO errors     '3000
  70.  
  71.      PRINT "**** NOW FIGURING DAYS ****"
  72.  
  73.      GOSUB DateArray          '2150
  74.  
  75.      PRINT "**** DAYS FIGURED - DISTRIBUTING COSTS AMONG MONTHS ****"
  76.     M=INT(A(L+1)/10000)                'LOWEST MONTH IN PRINTOUT
  77.     Y=A(L+1)-(INT(A(L+1)/100)*100)     'LOWEST YEAR
  78.     D=INT((A(L+1)-(M*10000)-Y)/100)    'LOWEST DAY
  79.     M1=INT(A(H+1)/10000)                'HIGHEST MONTH IN PRINTOUT
  80.     Y1=A(H+1)-(INT(A(H+1)/100)*100)     'HIGHEST YEAR
  81.      D1=INT((A(H+1)-(M1*10000)-Y1)/100)    'HIGHEST DAY
  82.  
  83.     FOR J=1 TO NY
  84.       FOR I=1 TO 12
  85.        X$((12*(J-1))+I)=X$(I)
  86.       NEXT
  87.     NEXT
  88.  
  89.     M4=(Y1-Y)*12+(M1-M)+1+1         '# OF MONTHS FROM BEGINNING TO END
  90.     MPP=6                             '# OF MONTHS PER PRINTOUT SHEET
  91.     X1=INT(M4/MPP)                       '# OF SEGMENTS 6=WIDTH-MONTHS
  92.      X2=INT((M4/MPP-X1)*MPP+.1)              '# OF EXTRA MONTHS
  93.  
  94.     FOR I=1 TO N
  95.         IF F2(I)<=S2(I) THEN
  96.           C(I)=C(I)
  97.         ELSE
  98.           C(I)=C(I)/(F2(I)-S2(I))     'get unit cost
  99.         end if
  100.  
  101.       J=S2(I)
  102.  
  103. 550   K=1
  104.       M3=INT(A(J+1)/10000)              'MONTH
  105.       Y3=A(J+1)-INT(A(J+1)/100)*100          'YEAR
  106.       Y2=(Y3-Y)*12+(M3-M)+1             '# OF MONTH FROM BEGINNING
  107.  
  108. 590   J=J+1
  109.         K=K+1      'get number of days
  110.  
  111.         IF J>=F2(I) THEN
  112.             goto 630
  113.         end if
  114.  
  115.         IF INT(A(J+1)/10000)=M3 THEN
  116.             goto 590
  117.         end if
  118.  
  119. 630   C2(I,Y2)=C(I)*(K-1)     'monthly cost = unit cost times number of days
  120.  
  121.         IF J>=F2(I) THEN
  122.             goto 660
  123.         end if
  124.  
  125.       GOTO 550
  126.  
  127. 660 NEXT
  128.  
  129.      FOR I=1 TO N
  130.  
  131.         IF F2(I)<=S2(I) THEN
  132.           C2(I,M4)=C(I)
  133.         ELSE
  134.           C2(I,M4)=C(I)*(F2(I)-S2(I))
  135.         end if
  136.  
  137.      NEXT
  138.  
  139.     FOR I=1 TO M4
  140.         ZH(I)=0
  141.  
  142.       FOR J=1 TO N
  143.         ZH(I)=ZH(I)+C2(J,I)         'SUM MONTH TOTALS
  144.         NEXT
  145.  
  146.         IF I=1 THEN
  147.             ZQ(I)=ZH(I)
  148.             ELSE ZQ(I)=ZQ(I-1)+ZH(I)
  149.         end if
  150.  
  151.         IF I=M4 THEN
  152.             ZQ(I)=ZQ(I-1)
  153.         end if
  154.  
  155.      NEXT
  156.  
  157. GetOutput:
  158. close
  159.      input "Output to <F>ile, <S>creen, or <P>rinter (F/S/P)";O$
  160.  
  161.      if O$="F" or O$="f" then
  162.         goto OutFile
  163.       elseif O$="S" or O$="s" then
  164.         goto OutScreen
  165.       elseif O$="P" or O$="p" then
  166.         goto OutPrint
  167.       elseif O$<>"F" or O$<>"f" or O$<>"S" or O$<>"s" or O$<>"P"or O$<>"p" then
  168.         goto GetOutput
  169.      end if
  170.  
  171.     OutFile:
  172.     PRINT "Name of output file is ";F$;".CFA";:INPUT " O.K. (Y/N) ";Q$
  173.  
  174. 790 IF Q$="N" OR Q$="n" THEN
  175.          INPUT "Enter new output filename [.CFA] ";F$
  176.      end if
  177.  
  178.      IF INSTR(1,F$,".")<>0 THEN
  179.         BEEP
  180.         PRINT "**** NO EXTENSIONS PLEASE ****"
  181.         GOTO 790
  182.      end if
  183.  
  184.      OPEN F$+".CFA" FOR OUTPUT AS #1
  185.      goto SendOut
  186.  
  187.   OutScreen:
  188.      open "SCRN:" for output as #1
  189.      goto SendOut
  190.  
  191.   OutPrint:
  192.      open "lpt1" for output as #1
  193.  
  194.   SendOut:
  195.     PRINT "Want to suppress zero-cost activities  (Y/N) ";
  196.      INPUT Q$
  197.  
  198.      IF Q$="N" OR Q$="n" THEN
  199.         S8=0
  200.         ELSE S8=1
  201.      end if
  202.  
  203.      GOSUB PrtUsages                   '1810 SETUP USAGES
  204.  
  205.     PRINT "**** THINKING ";
  206.     PRINT #1,G8$  'FORM FEED
  207.     PRINT #1,"                        CASH FLOW ANALYSIS - PROJECTED CASH REQUIREMENTS BY MONTH AND ACTIVITY"
  208.     PRINT #1,G9$
  209.     T4=INT((116-LEN(P$))/2)
  210.      PRINT #1,TAB(T4);P$
  211.  
  212.      IF FCTR<>0 THEN
  213.         PRINT #1,TAB(36);"ALL COSTS ARE SCALED DOWN BY A FACTOR OF";10^FCTR
  214.       ELSE PRINT #1,G9$
  215.      end if
  216.  
  217.      IF F6=1 THEN
  218.         P1$="EARLY START - EARLY"
  219.         ELSE P1$="LATE START - LATE"
  220.      end if
  221.  
  222.      P1$=P1$+" FINISH PROJECTION"
  223.     T5=INT((116-LEN(P1$))/2)
  224.     PRINT #1,TAB(T5);P1$
  225.     PRINT #1,G9$
  226.     PRINT #1,G9$
  227.      PRINT #1, USING "                                              RUN DATE: \       \ ## 19## ";X$(B4),B5,B6
  228.     PRINT #1, USING "                                         PROJECT START: \       \ ## 19## ";X$(M),D6,Y6
  229.      PRINT #1, USING "                                            COMPLETION: \       \ ## 19## ";X$(M1),D1,Y1
  230.      PRINT #1,G9$
  231.      L=1-MPP
  232.       M=M-MPP
  233.  
  234.       IF X1=0 THEN
  235.         goto 1240
  236.       end if
  237.  
  238.      FOR I=1 TO X1                     '# OF FULL SEGMENTS
  239.         PRINT ".";
  240.         IF I>1 THEN
  241.             GOSUB PageHeaderNew
  242.         end if
  243.  
  244.         M=M+MPP
  245.  
  246.         IF X2=0 AND I=X1 THEN
  247.             X$(M+5)=S$    'IN CASE OF LAST MONTH
  248.         end if
  249.  
  250.         PRINT #1, USING T$;X$(M),X$(M+1),X$(M+2),X$(M+3),X$(M+4),X$(M+5)
  251.         L=L+MPP
  252.         PRINT #1,G9$
  253.  
  254.         FOR J=1 TO N
  255.  
  256.             IF S8=1 AND C2(J,M4)=0 THEN
  257.                 goto 1180
  258.             end if
  259.  
  260.             PRINT #1, USING U$;D$(J),C2(J,L),C2(J,L+1),C2(J,L+2),C2(J,L+3),C2(J,L+4),C2(J,L+5)
  261.  
  262. 1180  NEXT J
  263.  
  264.         PRINT #1,G9$
  265.         PRINT #1, USING W$;ZH(L),ZH(L+1),ZH(L+2),ZH(L+3),ZH(L+4),ZH(L+5)
  266.         PRINT #1,G9$
  267.         PRINT #1, USING W1$;ZQ(L),ZQ(L+1),ZQ(L+2),ZQ(L+3),ZQ(L+4),ZQ(L+5)
  268.       if O$="S" or O$="s" then
  269.          input "Press the ENTER key to continue....",junk$
  270.       end if
  271.  
  272.  
  273.       NEXT I
  274.  
  275. 1240 IF X2=0 THEN
  276.  
  277.          PRINT " FINISHING ****"
  278.          GOTO 1760
  279.       end if
  280.  
  281.       I=I+1
  282.  
  283.       IF X1<>0 THEN
  284.          GOSUB PageHeaderNew          '1880
  285.       end if
  286.  
  287.      M=M+MPP
  288.      L=L+MPP
  289.      ON X2 GOTO 1300,1320,1340,1360,1380
  290.  
  291. 1300 PRINT #1, USING T$;S$
  292.       GOTO Finishing                 '1390
  293.  
  294. 1320 PRINT #1, USING T$;X$(M),S$
  295.       GOTO Finishing                 '1390
  296.  
  297. 1340 PRINT #1, USING T$;X$(M),X$(M+1),S$
  298.       GOTO Finishing                 '1390
  299.  
  300. 1360 PRINT #1, USING T$;X$(M),X$(M+1),X$(M+2),S$
  301.       GOTO Finishing                 '1390
  302.  
  303. 1380 PRINT #1, USING T$;X$(M),X$(M+1),X$(M+2),X$(M+3),S$
  304.  
  305. Finishing:
  306. 1390 PRINT #1,G9$
  307.  
  308.       PRINT " FINISHING ****"
  309.  
  310.      FOR J=1 TO N
  311.          IF S8=1 AND C2(J,M4)=0 THEN
  312.             goto 1530
  313.          end if
  314.  
  315.          ON X2 GOTO 1440,1460,1480,1500,1520
  316.  
  317. 1440   PRINT #1, USING U$;D$(J),C2(J,L)
  318.          GOTO 1530
  319.  
  320. 1460   PRINT #1, USING U$;D$(J),C2(J,L),C2(J,L+1)
  321.          GOTO 1530
  322.  
  323. 1480   PRINT #1, USING U$;D$(J),C2(J,L),C2(J,L+1),C2(J,L+2)
  324.          GOTO 1530
  325.  
  326. 1500   PRINT #1, USING U$;D$(J),C2(J,L),C2(J,L+1),C2(J,L+2),C2(J,L+3)
  327.          GOTO 1530
  328.  
  329. 1520   PRINT #1, USING U$;D$(J),C2(J,L),C2(J,L+1),C2(J,L+2),C2(J,L+3),C2(J,L+4)
  330.  
  331. 1530 NEXT J
  332.  
  333.      PRINT #1,G9$
  334.      ON X2 GOTO 1560,1580,1600,1620,1640
  335.  
  336. 1560 PRINT #1, USING W$;ZH(L)
  337.      GOTO 1650
  338.  
  339. 1580 PRINT #1, USING W$;ZH(L),ZH(L+1)
  340.      GOTO 1650
  341.  
  342. 1600 PRINT #1, USING W$;ZH(L),ZH(L+1),ZH(L+2)
  343.      GOTO 1650
  344.  
  345. 1620 PRINT #1, USING W$;ZH(L),ZH(L+1),ZH(L+2),ZH(L+3)
  346.      GOTO 1650
  347.  
  348. 1640 PRINT #1, USING W$;ZH(L),ZH(L+1),ZH(L+2),ZH(L+3),ZH(L+4)
  349.  
  350. 1650 PRINT #1,G9$
  351.      ON X2 GOTO 1670,1690,1710,1730,1750
  352.  
  353. 1670 PRINT #1, USING W1$;ZQ(L)
  354.      GOTO 1760
  355.  
  356. 1690 PRINT #1, USING W1$;ZQ(L),ZQ(L+1)
  357.      GOTO 1760
  358.  
  359. 1710 PRINT #1, USING W1$;ZQ(L),ZQ(L+1),ZQ(L+2)
  360.      GOTO 1760
  361.  
  362. 1730 PRINT #1, USING W1$;ZQ(L),ZQ(L+1),ZQ(L+2),ZQ(L+3)
  363.      GOTO 1760
  364.  
  365. 1750 PRINT #1, USING W1$;ZQ(L),ZQ(L+1),ZQ(L+2),ZQ(L+3),ZQ(L+4)
  366.  
  367. 1760 IF S8=1 THEN
  368.          PRINT #1,G9$
  369.       end if
  370.       nt$="Numbers may be off due to rounding."
  371.  
  372.       IF S8=1 THEN
  373.         PRINT #1,"  NOTES: (1) Zero-cost activities are suppressed."
  374.         print #1,"         (2) "+nt$
  375.       else
  376.         print #1,"  NOTE: "+nt$
  377.       end if
  378.  
  379.       input "Would you like to run another Cost Sheet (N/Y)";O1$
  380.       if O1$="N" or O1$="n" or O1$="" then
  381.          goto DoneOut
  382.         elseif  O1$<>"N" or O1$<>"n" or O1$<>"" then
  383.          close #1
  384.          goto GetOutput
  385.         end if
  386.  
  387. DoneOut:
  388.  
  389.       CLOSE #1
  390.  
  391.       if O$="F" or O$="f" then
  392.          junk$=""
  393.          while len(junk$)=0
  394.             junk$=inkey$
  395.             color 0,15,0
  396.             locate 25,2
  397.             PRINT "**** ";F$;".CFA CREATED ****       Press any key to continue.";
  398.          wend
  399.          color 15,0,0
  400.         end if
  401.  
  402. Done1:
  403.      close    
  404. 1800 chain "CPAMENU"
  405.  
  406. PrtUsages:
  407. 1810 REM **** USAGES FOR PRINTOUT ****
  408.      S$="  TOTAL  "
  409.      T$="                                     \       \    \       \    \       \    \       \    \       \    \       \"
  410.      U$=" \                               \ ###########  ###########  ###########  ###########  ###########  ###########"
  411.      W$="        TOTAL MONTHLY PROJECTION = ###########  ###########  ###########  ###########  ###########  ###########"
  412.      W1$="           CUMULATIVE PROJECTION = ###########  ###########  ###########  ###########  ###########  ###########"
  413.      RETURN
  414.  
  415.  
  416. PageHeaderNew:
  417. 1880 REM **** PAGE HEADER FOR NEW SECTION ****
  418.      PRINT #1,G8$ 'FORM FEED
  419.      PRINT #1,TAB(T4);P$;TAB(116);"SECTION";P6
  420.      P6=P6+1
  421.      PRINT #1,G9$
  422.      RETURN
  423.  
  424. GetFile:
  425. 1940 REM **** READING IN ALREADY CREATED INPUT FILE ******************
  426.  
  427.       if len(cpafile$) > 0 then
  428.             G$=cpafile$
  429.             goto commndfile
  430.       end if
  431.  
  432. GetFile1:
  433. 1950 INPUT "Enter the name of the input file [.CPM] ";G$
  434.  
  435.       IF G$="Q" OR G$="q" or G$="QUIT" THEN
  436.          close
  437.          chain "CPAMENU"
  438.       end if
  439.  
  440.   commndfile:
  441.       P=INSTR(1,G$,".")
  442.  
  443.       IF P<>0 THEN
  444.          F$=LEFT$(G$,INSTR(1,G$,".")-1)
  445.          ELSE F$=G$
  446.       end if
  447.  
  448.       IF LEN(F$)>8 THEN
  449.          PRINT "**** NOT A VALID PCPM FILE ****"
  450.          BEEP
  451.          GOTO GetFile1                    '1950
  452.       end if
  453.  
  454.       ON ERROR GOTO 2140
  455.  
  456.      cpafile$=F$
  457.      cpafile$=fnucase$(cpafile$)
  458.      F$=cpafile$    
  459.      G$=F$+".CPM"
  460.      OPEN G$ FOR INPUT AS #3
  461.      INPUT #3,P$,T6$,DA$
  462.      I=0:ZCMAX=0
  463.  
  464. 2040 I=I+1
  465.  
  466.       IF EOF(3) THEN
  467.          goto 2090
  468.       end if
  469.  
  470.       INPUT #3,D$,S,F,O2,D,A6,P,B,Z(I)
  471.  
  472.       IF Z(I)>ZCMAX THEN
  473.          ZCMAX=Z(I)  'find max cost/act
  474.       end if
  475.  
  476.       IF I/10=INT(I/10) THEN
  477.          PRINT I;
  478.       end if
  479.  
  480.      GOTO 2040
  481.  
  482. 2090 N=I-1
  483.      M6=VAL(LEFT$(DA$,2)):D6=VAL(MID$(DA$,3,2)):Y6=VAL(RIGHT$(DA$,2))
  484.      CLOSE #3
  485.      PRINT " **** INPUT FILE READ ****":FCTR=0
  486.  
  487. 2122 IF ZCMAX<32767 THEN
  488.          goto 2130
  489.       end if  'NO MORE SCALING
  490.  
  491.      FCTR=FCTR+1   'POWER TO SCALE
  492.       ZCMAX=ZCMAX/10
  493.       GOTO 2122
  494.  
  495. 2130 IF FCTR=0 THEN
  496.          PRINT "NO COST SCALING"
  497.          ELSE PRINT "ALL COSTS ARE SCALED DOWN BY";10^FCTR
  498.       end if
  499.  
  500.      FOR I=1 TO N
  501.       C(I)=Z(I)/(10^FCTR)
  502.       NEXT
  503.  
  504.       RETURN
  505.  
  506. 2140 IF ERR=6 THEN
  507.          PRINT "Each activity cost must be < $32767 see lines 130-140."
  508.          PRINT
  509.          INPUT "Press ENTER to continue....",Q$
  510.          close
  511.          chain "CPAMENU"
  512.       end if
  513.  
  514.       IF ERR<>53 THEN
  515.          goto 3000
  516.       end if
  517.  
  518.       PRINT "**** FILE DOES NOT EXIST - TRY AGAIN ****"
  519.       BEEP
  520.       RESUME GetFile                   '1940
  521.  
  522. DateArray:
  523. 2150 REM ** CREATE ARRAY OF MMDDYYS ******************************
  524.  
  525. 2160 D1=D1+1
  526.  
  527.       IF D1>C3+1 THEN
  528.          RETURN
  529.       end if
  530.  
  531. 2180 A8=A8+1
  532.       GOSUB Cvt2MoDaYr                  '2270
  533.  
  534.       IF LEFT$(T6$,3)="CAL" THEN
  535.          goto 2210
  536.         ELSEIF D4=6 OR D4=7 THEN
  537.          goto 2180
  538.       end if
  539.  
  540. 2210 O8=0
  541.       GOSUB HolidayOrNot                '2380
  542.  
  543.       IF O8=1 THEN
  544.          goto 2180
  545.       end if
  546.  
  547.      A(D1)=M5*10000+D5*100+Y5
  548.  
  549.       GOTO DateArray                    '2160
  550.  
  551.  
  552.       REM ** CONVERT CENTURY DAY TO MM, DD, YY **************************
  553.  
  554. Cvt2MoDaYr:
  555. 2270 T9=INT(A8/1461)
  556.      Y5=INT((A8-T9+364)/365)
  557.      Y4=A8-INT((Y5-1)*1461/4)
  558.       L8=2
  559.  
  560.       IF Y5/4=INT(Y5/4) THEN
  561.          L8=1
  562.       end if
  563.  
  564.       T9=Y4
  565.  
  566.       IF T9>61-L8 THEN
  567.          T9=T9+L8
  568.       end if
  569.  
  570.      M5=INT((T9*9+269)/275)
  571.      D5=T9-INT(M5*275/9)+30
  572.      D4=A8-INT(A8/7)*7+1
  573.      RETURN
  574.  
  575. HolidayOrNot:
  576. 2380 FOR J=1 TO H9   '**** HOLIDAY OR NOT ***********************************
  577.          IF A8=A3(J) THEN
  578.             O8=1
  579.          end if
  580.  
  581.       NEXT J
  582.  
  583.      RETURN
  584.  
  585. ReadHolidays:
  586. 2420 ON ERROR GOTO 2510
  587.      OPEN F$+".HOL" FOR INPUT AS #1
  588.      J=0
  589.  
  590. 2450 J=J+1
  591.  
  592.       IF EOF(1) THEN
  593.          goto 2490
  594.       end if
  595.  
  596.      INPUT #1,A3(J)
  597.      GOTO 2450
  598.  
  599. 2490 H9=J-1  'NUMBER OF HOLIDAYS
  600.  
  601. 2500 CLOSE #1:RETURN
  602.  
  603. 2510 PRINT "**** NO HOLIDAY FILE - CONTINUING ****":RESUME 2500
  604.  
  605. ReadLGS:
  606. 2520 REM READING IN SORT FILE
  607.      ON ERROR GOTO 2720    'NO SORT FILE
  608.      OPEN F$+".LGS" FOR INPUT AS #1
  609.      INPUT #1,A8,A(1),C3
  610.      I=0
  611.      L=5000:H=0
  612.  
  613. 2580 I=I+1
  614.  
  615.       IF EOF(1) THEN
  616.          goto 2680
  617.       end if
  618.  
  619.       IF I MOD 10=0 THEN
  620.          PRINT I;
  621.       end if
  622.  
  623.       IF F6=1 THEN
  624.          goto 2640
  625.       end if
  626.  
  627.       INPUT #1,D$(I),S,F,O2,D,ES,S2(I),EF,F2(I),RF,P,B
  628.  
  629.      GOTO 2650
  630.  
  631. 2640 INPUT #1,D$(I),S,F,O2,D,S2(I),LS,F2(I),LF,RF,P,B
  632.  
  633. 2650 IF S2(I)<L THEN
  634.          L=S2(I)
  635.       end if
  636.  
  637.       IF F2(I)>H THEN
  638.          H=F2(I)
  639.       end if
  640.  
  641.      GOTO 2580
  642.  
  643. 2680 NACT=I-1
  644.  
  645.       IF NACT<>N THEN
  646.          BEEP
  647.          PRINT "**** NUMBER OF ACTIVITIES IN FILES DOESNT MATCH";NACT;N;"****"
  648.          GOTO Done1                '1800
  649.       end if
  650.  
  651.      PRINT "**** LGS FILE READ ****"
  652.      CLOSE #1
  653.       RETURN
  654.  
  655. 2720 PRINT "FILE ";F$;".LGS MUST BE CREATED BY OPTION 5 FIRST AND EXIST ON DISK****"
  656.       BEEP
  657.       CLOSE #1
  658.       chain "CPAMENU"
  659.  
  660. errors:
  661. 3000 'errors
  662.      PRINT "PC error number";ERR;"at line";ERL;"- please check your BASIC manual"
  663.      PRINT "Please, if you don't think you caused the error (by wierd input), drop me"
  664.      PRINT "a note. I will be happy to clean it up and update PCPM.  Len"
  665.      PRINT :INPUT "Press ENTER to return to the main menu....",Q$
  666.  
  667.       RESUME 3060
  668.  
  669. Done:
  670. 3060 goto Done1   'RUN "CPAMENU"
  671. 
  672.