1000 REM MANAGE [HP GAME] 1010 ! MODIFIED AND TYPED IN 12/72 & 1/73 1020 ! IN HP THEY HAVE 'SETUP' AS SEPARATE PROGRAM, WE 1030 ! DON'T SAVE IT... DATA FILE IS 'SETUP.DAT' WITH DATA 1040 ! ALSO 'RITE' IS NOW 'OUTPUT' AND CHAINED IN 'MANAGE' 1050 PRINT "MANAGE - MANAGEMENT SIMULATION GAME":PRINT 1060 OPEN "SETUP.DAT" FOR INPUT AS FILE 1% 1065 OPEN "OUTPUT.DAT" AS FILE 2% 1070 DIM #2%,O(4,5),S(4,5),M(4,5),R(3,5),P(3,4),D(3,4),T(3,5), W(4,4),Q(3,6),U(3,5),I(3,5),E(13,4),G(3,2),C(3,4),A(3,3), V(3,2),F(3,4),L(3) 1080 MAT O=ZER:MAT S=ZER:MAT M=ZER:MAT R=ZER:MAT P=ZER:MAT D=ZER: MAT T=ZER:MAT W=ZER:MAT Q=ZER:MAT U=ZER:MAT I=ZER:MAT E=ZER: MAT G=ZER:MAT C=ZER:MAT A=ZER:MAT V=ZER:MAT F=ZER:MAT L=ZER 1090 INPUT #1%,M,I,N,L,K1,K2,K3,K9,I9 1100 INPUT #1%,B1,B2,B3,B4,C1,D3,D4,D5,D6,G,P1,P2 1110 INPUT #1%,T1,T2,T3,T4,X1,X2,X3,Y1,Y2,Y3,Z1,Z2 1120 INPUT #1%,E(13,4),E(12,4):FOR I=1 TO M 1130 INPUT #1%,C(I,2),R(I,5),V(I,1),L(I),Q(I,5),U(I,5) 1140 INPUT #1%,M(I,4),E(I,4),E(I+3,4),P(I,4) 1150 INPUT #1%,E(13,I),E(12,I):FOR J=1 TO N-1 1160 INPUT #1%,P(I,J),M(I,J),E(I,J),E(I+3,J) 1170 INPUT #1%,A(I,J):NEXT J:NEXT I:L=L+1 1180 FOR I=1 TO M:FOR J=1 TO N:E(I+3,J)=E(I,J):E(I,J)=M(I,J) 1190 NEXT J:NEXT I:PRINT "ENTER DATA FOR FIRMS:" 1195 FOR I=1 TO M 1200 INPUT A6,P(I,1),P(I,2),P(I,3),P(I,4),M(I,1),M(I,2),M(I,3),M(I,4) 1210 INPUT A(I,1),A(I,2),A(I,3) 1220 IF C(I,2)>=M(I,1)+M(I,2)+M(I,3)+M(I,4)+A(I,1)+A(I,2)+A(I,3) THEN 1240 1230 PRINT "YOUR EXPENDITURES EXCEED YOUR AVAILABLE CASH.":GO TO 1200 1240 NEXT I:S1=0:FOR I=1 TO M:M(I,5),O(I,5),S(I,5)=0! X= R & D 1250 L(I)=G*L(I)+A(I,2):S1=S1+L(I):NEXT I:X=B3+S1/B4! 'Y' 1260 FOR J=1 TO N:E(10,J)=0:FOR I=1 TO M:E(I+6,J)=((E(I,J)+E(I+3,J))*P1+ M(I,J))*P2 1270 E(10,J)=E(10,J)+E(I+6,J):NEXT I:M1=M:E(11,J)=E(10,J)/M1 1280 IF E(10,J)>125 THEN 1290 ELSE Y=E(10,J)/125:GO TO 1300 1290 Y=B1-E(12,J)*T3*B2/(X2*E(10,J))! 'Z' 1300 D1=.1E9:S3=0:FOR I=1 TO M:IF P(I,J)>0 THEN 1310 ELSE M1=M1-1:GO TO 1320 1310 IF P(I,J)>D1 THEN 1330 1320 D1=P(I,J) 1330 S3=S3+P(I,J):NEXT I:IF M1=0 THEN 1340 ELSE B0(J)=S3/M1 1340 Z=X1*T2/D1 1350 O(4,J)=E(13,J)*X*Y*Z*T1:NEXT J! 'ORDERS' 1360 FOR J=1 TO N:W(4,J)=0:FOR I=1 TO M:W(I,J)=0 1370 IF E(11,J)=0 OR P(I,J)=0 THEN 1390 1380 P=B0(J)/P(I,J)-Y2:W(I,J)=(E(I+6,J)/E(11,J)-Y1)*P*(C1+Y3*L(I)/R(I,5)) 1390 W(4,J)=W(4,J)+W(I,J):NEXT I:FOR I=1 TO M:O(I,J)=0 1400 IF W(I,J)=0 THEN 1420 1410 O(I,J)=W(I,J)/W(4,J)*O(4,J) 1420 NEXT I:NEXT J:T(1,1),T(2,2),T(3,3)=0 1430 T(1,2),T(1,3),T(2,1),T(2,3),T(3,1),T(3,2)=2:T(1,4),T(2,4), T(3,4)=1 1440 X4=2*Z1: X5=2*Z1: FOR I=1 TO M: Q(I,4)=V(I,1)/20: S2=D3-Z2*L(I)/D4 1450 IF S2=.93 THEN 1460 ELSE LET S2=.93 1460 I(I,2)=A(I,1):I(I,4)=T4*(S2*(Q(I,4)*X4+X5)) 1470 Q(I,2)=(A(I,1)/T4-S2*X5-Q(I,4)*X3)/(S2*X4-X3) 1480 IF Q(I,2)<=Q(I,4) THEN 1490 ELSE Q(I,2)=Q(I,4):I(I,2)=I(I,4) 1490 Q(I,3)=1.1*Q(I,2):Q(I,1)=.9*Q(I,2) 1500 I(I,3)=T4*(S2*(Q(I,3)*X4+X5)+(Q(I,4)-Q(I,3))*X3) 1510 I(I,1)=T4*(S2*(Q(I,1)*X4+X5)+(Q(I,4)-Q(I,1))*X3) 1520 FOR J=1 TO 4:U(I,J)=I(I,J)/Q(I,J):NEXT J:NEXT I 1530 FOR I=1 TO M:R(I,5)=0:T(I,5)=0:FOR J=1 TO N 1540 M(I,5)=M(I,5)+M(I,J):O(I,5)=O(I,5)+INT(O(I,J)+.5):NEXT J 1550 G(I,2)=Q(I,2)+Q(I,5):P=G(I,2)/O(I,5):IF P>=0 THEN 1560 ELSE P=-P 1560 IF P<=1 THEN 1570 ELSE P=1 1570 FOR J=1 TO N:S(I,J)=O(I,J)*P:S(I,5)=S(I,5)+INT(S(I,J)+.5): R(I,J)=INT(S(I,J)+.5)*P(I,J):R(I,5)=R(I,5)+R(I,J):NEXT J 1590 I(I,5)=Q(I,5)*U(I,5):IF S(I,5)>Q(I,5) THEN 1610 1600 G(I,1)=S(I,5)*U(I,5):GO TO 1640 1610 IF S(I,5)>G(I,2) THEN 1630 1620 G(I,1)=I(I,5)+(S(I,5)-Q(I,5))*U(I,2):GO TO 1640 1630 G(I,1)=I(I,5)+I(I,2) 1640 P=G(I,1)/S(I,5):FOR J=1 TO N:D(I,J)=P+T(I,J):T(I,5)=T(I,5)+ T(I,J)*S(I,J) 1650 NEXT J:NEXT I:FOR I=1 TO M:V(I,2)=D5*V(I,1):F(I,4)=G(I,1)+ T(I,5)+M(I,5)+A(I,2)+V(I,2) 1660 F(I,1)=R(I,5)-F(I,4):F(I,2)=D6*F(I,1):IF F(I,1)>0 THEN 1670 ELSE F(1,2)=0 1670 F(I,3)=F(I,1)-F(I,2):C(I,1)=I(I,2)+T(I,5)+M(I,5)+A(I,2)+A(I,3)+F(I,2) 1680 C(I,2)=C(I,2)+R(I,5)-C(I,1):C(I,3)=R(I,5)-C(I,1) 1690 IF O(I,5)>Q(I,5) THEN 1710 1700 I(I,5)=(Q(I,5)-O(I,5))*U(I,5)+I(I,2):GO TO 1740 1710 IF O(I,5)>G(I,2) THEN 1730 1720 I(I,5)=(G(I,2)-O(I,5))*U(I,2):GO TO 1740 1730 I(I,5)=0 1740 V(I,1)=V(I,1)-V(I,2)+A(I,3):C(I,4)=C(I,2)+I(I,5)+V(I,1) 1750 U(I,5)=0:Q(I,5)=G(I,2)-S(I,5):IF Q(I,5)=0 THEN 1760 ELSE U(I,5)=I(I,5)/Q(I,5) 1760 NEXT I:T,S,O=0:FOR J=1 TO N:S(4,J),M(4,J)=0:FOR I=1 TO M: S(4,J)=S(4,J)+S(I,J):M(4,J)=M(4,J)+M(I,J):NEXT I 1770 T=T+M(4,J):S=S+S(4,J):O=O+O(4,J):NEXT J:C9=0 1780 OPEN "OUTUP.DAT" AS FILE 3%:DIM #3%,B(4,5),H(4,5),J(3,5),K(3,2),N(3,5) 1790 PRINT:PRINT:FOR I=1 TO 3:FOR I0=1 TO 5 1800 O(I,I0)=O(I,I0)+.5:S(I,I0)=S(I,I0)+.5:R(I,I0)=R(I,I0)+.5:NEXT I0 1810 M(I,I0)=M(I,I0)+.5 FOR I0=2 TO 5:G(I,1)=G(I,1)+.5:T(I,5)=T(I,5)+.5 1820 I(I,5)=I(I,5)+.5:V(I,I0)=V(I,I0)+.5 FOR I0=1 TO 2:F(I,I0)=F(I,I0)+ .5 FOR I0=1 TO 3 1830 C(I,I0)=C(I,I0)+.5 FOR I0=1 TO 4:A(I,2)=A(I,2)+.5 1840 D(I,I0)=INT(D(I,I0)*100+.5)/100 FOR I0=1 TO 4:NEXT I:X=1 1850 FOR I=1 TO 3:IF O(I,X)>0 THEN 1860 ELSE B(I,X)=0:GO TO 1870 1860 B(I,X)=O(I,X) 1870 IF S(I,X)>0 THEN H(I,X)=S(I,X) ELSE H(I,X)=0 1880 IF R(I,X)>0 THEN J(I,X)=R(I,X) ELSE J(I,X)=0 1890 NEXT I 1900 IF X=5 THEN 1910 ELSE X=X+1:GO TO 1850 1910 FOR I=1 TO 3:IF G(I,1)>0 THEN K(I,1)=G(I,1) ELSE K(I,1)=0 1920 IF T(I,5)>0 THEN N(I,5)=T(I,5) ELSE N(I,5)=0 1930 NEXT I 1940 CLOSE 1%,2%,3%:CHAIN "OUTPUT":END