5  FILES BFILE
10  DIM N[50]
15  READ #1,1
20  DIM L$[7]
30  DIM B[22,7]
40  DIM J[20],I[29]
50  DIM L[15]
70  DIM A[9,6]
71  PRINT '10'10'10'10'10
72  PRINT "                          HEWLETT-PACKARD"
73  PRINT "                     DEPARTMENTAL BUDGET PROGRAM"
74  PRINT '10'10
80  FOR I=1 TO 9
90  FOR J=1 TO 6
100  LET A[I,J]=0
110  NEXT J
120  NEXT I
130  PRINT "TODAY'S DATE";
140  DIM C$[20]
150  INPUT C$
160  PRINT "LOCATION CODE";
170  INPUT L$
180  PRINT "TYPE PERSONNEL COUNT BY MONTH"
190  FOR J=1 TO 6
200  INPUT A[9,J]
210  NEXT J
220  PRINT "TYPE";A[9,1];"SALARIES FOR MAY"
230  FOR J=1 TO A[9,1]
240  INPUT N[J]
250  NEXT J
260  LET K=1
270  IF K=6 THEN 600
280  IF A[9,K]#A[9,K+1] THEN 320
290  IF A[9,K]=A[9,K+1] THEN 300
300  LET K=K+1
310  GOTO 270
320  PRINT "TYPE";A[9,K+1]-A[9,K];"SALARIES FOr MONTH";K+1;"'S HIRES (MINUS FOR LOSSES)"
330  IF K+1=2 THEN 380
340  IF K+1=3 THEN 420
350  IF K+1=4 THEN 460
360  IF K+1=5 THEN 500
370  IF K+1=6 THEN 540
380  FOR J=1 TO ABS(A[9,K]-A[9,K+1])
390  INPUT D[J]
400  NEXT J
410  GOTO 580
420  FOR J=1 TO ABS(A[9,K]-A[9,K+1])
430  INPUT R[J]
440  NEXT J
450  GOTO 580
460  FOR J=1 TO ABS(A[9,K]-A[9,K+1])
470  INPUT F[J]
480  NEXT J
490  GOTO 580
500  FOR J=1 TO ABS(A[9,K]-A[9,K+1])
510  INPUT M[J]
520  NEXT J
530  GOTO 580
540  FOR J=1 TO ABS(A[9,K]-A[9,K+1])
550  INPUT P[J]
560  NEXT J
570  GOTO 580
580  LET K=K+1
590  GOTO 270
600  PRINT "WHAT % SALARY INCREASE IN JULY (NORMAL IS 5.0)";
610  INPUT S1
620  PRINT "WHAT % SALARY INCREASE IN OCTOBER (NORMAL IS 2.0)";
630  INPUT S2
640  FOR J=1 TO A[9,1]
650  LET A[1,1]=A[1,1]+N[J]
660  NEXT J
670  LET A[1,2]=A[1,1]
680  FOR J=1 TO ABS(A[9,1]-A[9,2])
690  LET A[1,2]=A[1,2]+D[J]
700  NEXT J
710  LET A[1,3]=A[1,2]+INT(.01*S1*A[1,1])
720  FOR J=1 TO ABS(A[9,2]-A[9,3])
730  LET A[1,3]=A[1,3]+R[J]
740  NEXT J
750  LET A[1,4]=A[1,3]
760  FOR J=1 TO ABS(A[9,3]-A[9,4])
770  LET A[1,4]=A[1,4]+F[J]
780  NEXT J
790  LET A[1,5]=A[1,4]
800  FOR J=1 TO ABS(A[9,4]-A[9,5])
810  LET A[1,5]=A[1,5]+M[J]
820  NEXT J
830  LET A[1,6]=A[1,5]+INT(.01*S2*A[1,2])
840  FOR J=1 TO ABS(A[9,5]-A[9,6])
850  LET A[1,6]=A[1,6]+P[J]
860  NEXT J
870  FOR L=1 TO 6
880  LET B[1,L]=A[1,L]
890  NEXT L
900  FOR L=1 TO 6
910  LET B[22,L]=A[9,L]
920  NEXT L
930  PRINT "TRANSFERS IN"
940  FOR L=1 TO 6
950  INPUT B[2,L]
960  NEXT L
970  PRINT "TRANSFERS OUT"
980  FOR L=1 TO 6
990  INPUT B[3,L]
1000  LET B[3,L]=-1*B[3,L]
1010  NEXT L
1020  FOR L=1 TO 6
1030  LET B[4,L]=B[1,L]+B[2,L]+B[3,L]
1040  NEXT L
1050  PRINT "PRINTING & REPRODUCTION"
1060  FOR L=1 TO 6
1070  INPUT B[5,L]
1080  NEXT L
1090  PRINT "OPERATING SUPPLIES"
1100  FOR L=1 TO 6
1110  INPUT B[6,L]
1120  NEXT L
1130  PRINT "EQUIPMENT COSTS"
1140  FOR L=1 TO 6
1150  INPUT B[7,L]
1160  NEXT L
1170  PRINT "DEMO & LOAN EXPENSE"
1180  FOR L=1 TO 6
1190  INPUT B[8,L]
1200  NEXT L
1210  PRINT "TRAVEL EXPENSE"
1220  FOR L=1 TO 6
1230  INPUT B[9,L]
1240  NEXT L
1250  PRINT "MEALS & LODGING"
1260  FOR L=1 TO 6
1270  INPUT B[10,L]
1280  NEXT L
1290  PRINT "OTHER EXPENSE"
1300  FOR L=1 TO 6
1310  INPUT B[11,L]
1320  NEXT L
1330  FOR L=1 TO 6
1340  LET B[12,L]=B[4,L]+B[5,L]+B[6,L]+B[7,L]+B[8,L]+B[9,L]+B[10,L]+B[11,L]
1350  NEXT L
1360  PRINT "ADVERTISING & PROMOTION"
1370  FOR L=1 TO 6
1380  INPUT B[13,L]
1390  NEXT L
1400  FOR L=1 TO 6
1410  LET B[14,L]=B[12,L]+B[13,L]
1420  NEXT L
1430  D[1]=.082
1440  D[2]=.053
1450  D[3]=.047
1460  D[4]=.034
1470  D[5]=.027
1480  D[6]=.023
1490  FOR L=1 TO 6
1500  LET B[15,L]=INT(B[1,L]*D[L])+B[22,L]*23
1510  NEXT L
1520  FOR L=1 TO 6
1530  LET B[16,L]=0
1540  LET B[18,L]=0
1550  LET B[20,L]=0
1560  NEXT L
1570  FOR L=1 TO 6
1580  LET B[17,L]=80*B[22,L]
1590  NEXT L
1600  FOR L=1 TO 6
1610  LET B[19,L]=INT(.5*(B[2,L]+B[3,L]))
1620  NEXT L
1630  FOR L=1 TO 6
1640  LET B[21,L]=B[14,L]+B[15,L]+B[16,L]+B[17,L]+B[18,L]+B[19,L]+B[20,L]
1650  NEXT L
1660  PRINT "------------------------------------------------------------------------"
1670  PRINT 
1680  PRINT C$
1690  PRINT 
1700  PRINT 
1710  PRINT L$
1720  PRINT 
1730  PRINT 
1740  LET A$="LOCATION        TARGET"
1750  GOSUB 2990
1760  FOR L=1 TO 22
1770  LET B[L,7]=B[L,1]+B[L,2]+B[L,3]+B[L,4]+B[L,5]+B[L,6]
1780  NEXT L
1790  PRINT 
1795  MAT  PRINT #1;B
1800  PRINT 
1810  PRINT 
1820  DIM A$[50]
1830  PRINT 
1840  PRINT 
1850  LET J=0
1860  LET A$="SALARIES"
1870  GOSUB 2860
1880  PRINT 
1890  PRINT 
1900  LET A$="PLUS TRANSFERS IN"
1910  GOSUB 2860
1920  PRINT 
1930  PRINT 
1940  LET A$="LESS TRANSFERS OUT"
1950  GOSUB 2860
1960  PRINT 
1970  PRINT 
1980  PRINT 
1990  LET A$="NET SALARIES"
2000  GOSUB 2860
2010  PRINT 
2020  PRINT 
2030  PRINT 
2040  LET A$="PRINTING & REPRO"
2050  GOSUB 2860
2060  PRINT 
2070  PRINT 
2080  LET A$="OPERATING SUPPLIES"
2090  GOSUB 2860
2100  PRINT 
2110  PRINT 
2120  LET A$="EQUIPMENT COSTS"
2130  GOSUB 2860
2140  PRINT 
2150  PRINT 
2160  LET A$="DEMO & LOAN COSTS"
2170  GOSUB 2860
2180  PRINT 
2190  PRINT 
2200  LET A$="TRAVEL EXPENSE"
2210  GOSUB 2860
2220  PRINT 
2230  PRINT 
2240  LET A$="MEALS & LODGING"
2250  GOSUB 2860
2260  PRINT 
2270  PRINT 
2280  LET A$="OTHER EXPENSE"
2290  GOSUB 2860
2300  PRINT 
2310  PRINT 
2320  PRINT 
2330  LET A$="TOTAL OPERATING EXPENSE"
2340  GOSUB 2860
2350  PRINT 
2360  PRINT 
2370  PRINT 
2380  LET A$="ADVERTISING & PROMOTION"
2390  GOSUB 2860
2400  PRINT 
2410  PRINT 
2420  PRINT 
2430  LET A$="TOTAL CONTROLLABLE EXP"
2440  GOSUB 2860
2450  PRINT 
2460  PRINT 
2470  PRINT 
2480  LET A$="PAYROLL TAXES"
2490  GOSUB 2860
2500  PRINT 
2510  PRINT 
2520  LET A$="DEPRECIATION"
2530  GOSUB 2860
2540  PRINT 
2550  PRINT 
2560  LET A$="OCCUPANCY COSTS"
2570  GOSUB 2860
2580  PRINT 
2590  PRINT 
2600  LET A$="FREIGHT OUT"
2610  GOSUB 2860
2620  PRINT 
2630  PRINT 
2640  LET A$="OVERHEAD CHARGES"
2650  GOSUB 2860
2660  PRINT 
2670  PRINT 
2680  LET A$="TRAINING SOLD"
2690  GOSUB 2860
2700  PRINT 
2710  PRINT 
2720  PRINT 
2730  LET A$="TOTAL LOCATION EXPENSE"
2740  GOSUB 2860
2750  PRINT 
2760  PRINT 
2770  PRINT 
2780  PRINT 
2790  LET A$="PERSONNEL COUNT"
2800  GOSUB 2860
2810  PRINT 
2820  PRINT 
2830  PRINT "------------------------------------------------------------------"
2850  STOP 
2860  LET J=J+1
2870  LET I=1
2880  PRINT A$;TAB(23);
2890  LET Z[1]=B[J,I]
2900  LET Z[2]=B[J,I+1]
2910  LET Z[3]=B[J,I+2]
2920  LET Z[4]=B[J,I+3]
2930  LET Z[5]=B[J,I+4]
2940  LET Z[6]=B[J,I+5]
2950  LET Z[7]=B[J,I+6]
2960  LET Z$="+######+######+######+######+######+######+######"
2970  GOSUB 3030
2980  RETURN 
2990  PRINT A$;TAB(23);
3000  LET Z$="    MAY  JUN    JUL    AUG    SEP    OCT  TOTAL"
3010  GOSUB 3030
3020  RETURN 
3030  REM  *****  FORMAT  *****  UTILITY SUBROUTINE  *****
3040  REM  *****  VERSION 1  *****  7/31/69  *****
3050  REM  SUBROUTINE TO FORMAT A PROGRAM'S DATA
3060  LET Z2=Z3=Z4=Z5=Z7=Z8=Z9=1
3070  DIM Y$[10],Z$[72]
3080  LET Y$="0123456789"
3090  LET Z0=Z9-1
3100  LET Z0=Z0+1
3110  IF Z0=LEN(Z$)+1 THEN 3620
3120  IF Z$[Z0,Z0]="#" THEN 3190
3130  IF Z$[Z0,Z0+1]=".#" THEN 3190
3140  IF Z$[Z0,Z0+1]="+#" THEN 3170
3150  PRINT Z$[Z0,Z0];
3160  GOTO 3100
3170  LET Z4=0
3180  GOTO 3100
3190  LET Z=100
3200  LET Z6=Z[Z2]
3210  LET Z9=Z0-1
3220  LET Z9=Z9+1
3230  IF Z$[Z9,Z9]="." THEN 3260
3240  IF Z$[Z9,Z9]="#" THEN 3220
3250  GOTO 3300
3260  IF Z5#1 THEN 3300
3270  LET Z5=0
3280  LET Z=Z9
3290  GOTO 3220
3300  IF Z#100 THEN 3320
3310  LET Z=Z9
3320  IF Z4=1 THEN 3370
3330  IF Z6 >= 0 THEN 3360
3340  PRINT "-";
3350  GOTO 3370
3360  PRINT " ";
3370  LET Z6=ABS(Z6)+10^(Z-Z9-1)
3380  FOR Z1=Z-Z0 TO Z+1-Z9 STEP -1
3390  IF Z$[Z-Z1,Z-Z1]#"." THEN 3440
3400  PRINT ".";
3410  LET Z3=0
3420  LET Z7=2
3430  GOTO 3580
3440  LET Z8=INT(Z6/(10^(Z1+Z7-2)))
3450  IF Z6<10^(Z-Z0) THEN 3480
3460  PRINT "#";
3470  GOTO 3580
3480  LET Z6=Z6-Z8*10^(Z1+Z7-2)
3490  IF Y$[Z8+1,Z8+1]="0" THEN 3510
3500  LET Z3=0
3510  IF Z3=0 THEN 3570
3520  IF Z1#1 THEN 3550
3530  PRINT "0";
3540  GOTO 3580
3550  PRINT " ";
3560  GOTO 3580
3570  PRINT Y$[Z8+1,Z8+1];
3580  NEXT Z1
3590  LET Z3=Z4=Z5=Z7=1
3600  LET Z2=Z2+1
3610  GOTO 3090
3620  RETURN 
3630  LET T=T+1
3640  IF T=3 OR 4 OR 8 OR 9 OR 13 OR 14 OR 15 THEN 3660
3650  GOTO 3670
3660  PRINT 
3670  RETURN 
3680  MAT  PRINT #1;B
3690  END 
