100  REM ***USECON***  A MACROECONOMIC HYPOTHESIS-TESTING MODEL    
105  REM FOR SENIOR HIGH SCHOOL ECONOMICS STUDENTS.    
110  REM ***BY LOREN DUNHAM, SENIOR HIGH SCHOOL, FAIRMONT, MINNESOTA     
115  REM DEVELOPED FOR HEWLETT-PACKARD, FALL, 1973     
116  REM  HP CONTRIBUTED LIBRARY, 2/75
196  LET K=0
198  REM **********DESCRIPTION, INTRODUCTION********** 
200  PRINT TAB(10);"THE U.S. ECONOMY: ITS YOUR DECISION!"
204  PRINT 
206  PRINT "CONSULT YOUR LAB BOOK FOR DIRECTIONS.  FOR ALL RESPONSES,"
208  PRINT "YES=1 AND NO=0."
210  PRINT "DO YOU WANT TO INPUT INITIAL VALUES";
212  INPUT X
214  PRINT "IN WHAT YEAR ARE YOU STARTING";
215  INPUT A
217  IF X=0 THEN 300
218  LET K=K+1
219  PRINT 
220  PRINT TAB(15);"PERSONAL CONSUMPTION";TAB(40);
222  INPUT C
226  PRINT TAB(15);"PRIVATE INVESTMENT";TAB(40);
228  INPUT I
232  PRINT TAB(15);"GOVERNMENT SPENDING";TAB(40);
234  INPUT G
240  LET Y[2]=C+I+G
244  PRINT TAB(40);"----------"
246  PRINT TAB(15);"ACTUAL GNP";TAB(40);Y[2]
250  PRINT 
252  PRINT TAB(15);"POTENTIAL GNP";TAB(40);
254  INPUT Y[1]
256  PRINT 
300  REM **********INITIALLIZATION**********     
318  LET Q=19
320  LET U=0
321  LET V=0
322  LET W=0
341  IF X=1 THEN 405
342  LET C=(INT(RND(0)*10000))/10
344  IF 500>C THEN 342
345  IF 700<C THEN 342
348  LET I=(INT(RND(0)*10000))/10
350  IF 100>I THEN 348
351  IF 300<I THEN 348
354  LET G=(INT(RND(0)*10000))/10
356  IF 100>G THEN 354
357  IF 300<G THEN 354
360  LET Y[1]=(INT(RND(0)*10000))/10+200
362  IF Y[1]>800 THEN 364
363  GOTO 360
364  LET Y[2]=C+I+G
366  IF .98>(Y[2]/Y[1]) THEN 400
368  IF 1.02<(Y[2]/Y[1]) THEN 400
370  GOTO 342
400  REM **********C,I,G, PRINTOUT**********     
402  LET K=K+1
405  LET R=(Y[1]-Y[2])/Y[1]
407  IF X=1 THEN 470
410  PRINT 
412  PRINT TAB(27);"**********"
414  PRINT 
416  PRINT TAB(27);"YEAR:  ";A
418  PRINT 
420  PRINT TAB(15);"PERSONAL CONSUMPTION";TAB(40);
422  PRINT INT(C*10+.5)/10
424  PRINT TAB(15);"PRIVATE INVESTMENT";TAB(40);
426  PRINT INT(I*10+.5)/10
428  PRINT TAB(15);"GOVERNMENT SPENDING";TAB(40);
430  PRINT INT(G*10+.5)/10
436  PRINT TAB(40);"--------"
440  PRINT TAB(15);"ACTUAL GNP";TAB(40);
442  PRINT INT(Y[2]*10+.5)/10
444  PRINT 
450  PRINT TAB(15);"POTENTIAL GNP";TAB(40);
452  PRINT INT(Y[1]*10+.5)/10
454  PRINT 
456  PRINT TAB(27);"**********"
458  IF K=1 THEN 490
460  PRINT "DO YOU WANT TO CONTINUE";
462  INPUT Z
464  IF Z=0 THEN 1000
470  X=0
471  IF R<-.01 THEN 490
472  IF R>.01 THEN 490
473  PRINT 
474  PRINT "VERY GOOD SO FAR!  YOU MUST NOW KEEP THE ECONOMY";
476  PRINT " BALANCED."
480  GOTO 750
490  IF Y[1]>Y[2] THEN 600
492  IF Y[1]<Y[2] THEN 500
494  GOTO 473
500  REM **********INFLATION**********     
510  PRINT 
514  PRINT "           ********** INFLATION ALERT! **********"
544  GOTO 750
600  REM **********RECESSION**********     
610  PRINT 
614  PRINT "           ********** RECESSION ALERT! **********"
644  GOTO 750
750  REM **********POLICY INPUTS********** 
752  LET L=INT(RND(0)*100)/10
754  IF L<1.9 THEN 752
756  IF L>4.1 THEN 752
760  PRINT 
762  PRINT "YOU MAY ASSUME A MULTIPLIER OF ";L
764  PRINT 
800  PRINT "ENTER YOUR POLICY DECISIONS IN BILLIONS OF DOLLARS OR"
802  PRINT "PERCENTS. BE SURE TO INDICATE DIRECTION OF CHANGE BY A"
804  PRINT "+ OR -.  (FORMAT FOR PERCENTS: ENTER 2.1% AS 2.1.)"
806  PRINT 
808  PRINT "     FISCAL ACTION"
810  PRINT 
812  PRINT "GOVERNMENT SPENDING:  ";
814  INPUT S
815  IF S>30 THEN 818
816  IF S<-30 THEN 818
817  GOTO 822
818  PRINT "TOO DRASTIC!"
820  GOTO 812
822  PRINT "PERSONAL TAXES COLLECTED:  ";
824  INPUT T[1]
825  IF T[1]>20 THEN 828
826  IF T[1]<-20 THEN 828
827  GOTO 832
828  PRINT "TOO DRASTIC!"
830  GOTO 822
832  PRINT "BUSINESS TAXES COLLECTED:  ";
834  INPUT T[2]
835  IF T[2]>15 THEN 838
836  IF T[2]<-15 THEN 838
837  GOTO 842
838  PRINT "TOO DRASTIC!"
840  GOTO 832
842  PRINT 
844  PRINT "     MONETARY ACTION"
848  PRINT 
850  PRINT "RESERVE REQUIREMENT (%):  ";
851  INPUT U
852  IF U>2.1 THEN 856
853  IF U<-2.1 THEN 856
854  LET Q=Q+U
855  GOTO 860
856  PRINT "TOO DRASTIC!"
857  GOTO 850
860  PRINT "DISCOUNT RATE (%):  ";
862  INPUT V
863  IF V>1.5 THEN 866
864  IF V<-1.5 THEN 866
865  GOTO 870
866  PRINT "TOO DRASTIC!"
868  GOTO 860
870  PRINT "NET OPEN MARKET PURCHASES:  ";
872  INPUT W
873  IF W>5 THEN 876
874  IF W<-5 THEN 876
875  GOTO 880
876  PRINT "TOO DRASTIC!"
878  GOTO 870
880  GOTO 900
900  REM **********COMPUTATION**********   
910  LET G=G+S
914  LET P[1]=C/(Y[2]-G)
918  LET P[2]=I/(Y[2]-G)
922  LET P[3]=S*L-S
926  LET C=C+P[1]*P[3]
930  LET I=I+P[2]*P[3]
933  IF T[1]=0 THEN 937
934  LET C=C-(T[1]*L)
937  IF T[2]=0 THEN 941
938  LET I=I-(T[2]*L)
941  IF U=0 THEN 945
942  LET I=I-(((13.1*U)*.49)*L)
945  IF V=0 THEN 953
946  LET M=-(4*V*100/Q)
950  LET I=I+(M*.49*L)
953  IF W=0 THEN 962
954  LET C=C+P[1]*W*L
958  LET I=I+P[2]*W*L
962  LET Y[2]=C+I+G
966  LET Y[1]=Y[1]+.04*Y[1]
970  LET A=A+1
978  GOTO 400
1000  END 
