10  PRINT
20  PRINT "=== HAMURABI ===  ADAPTED FOR 8KW"
30  PRINT "ENTER RANDOM SEED NUMBER ";
31  INPUT Z
32  FOR Y=1 TO Z
33  LET X=RND(0)
34  NEXT Y
40  PRINT
41  PRINT
42  PRINT
43  PRINT
300  REM ** INITIALIZATION
310  PRINT "HAMURABI - ";
320  PRINT "WHERE YOU GOVERN THE ANCIENT KINGDOM OF SUMERIA."
330  PRINT "THE OBJECT IS TO FIGURE OUT HOW THE GAME WORKS!!"
340  PRINT "(IF YOU WANT TO QUIT, SELL ALL YOUR LAND.)"
350  PRINT
400  LET A1=100
410  LET A2=5
420  LET A3=0
430  LET B1=2800
440  LET B2=200
450  LET B3=3
460  LET B4=3000
470  LET C1=1000
480  LET J=1
1000  REM ** REPORT TO HAMURABI
1010  PRINT
1020  PRINT "HAMURABI, I BEG TO REPORT THAT LAST YEAR"
1030  PRINT
1041  LET Z9=A3
1042  GOSUB 9400
1043  GOSUB 9100
1044  PRINT " STARVED AND ";
1045  LET Z9=A2
1046  GOSUB 9400
1047  GOSUB 9100
1048  PRINT " CAME TO THE CITY."
1050  IF J>0 THEN 1100
1060  LET A1=A1-INT(A1/2)
1070  PRINT "THE PLAGUE KILLED HALF THE PEOPLE."
1100  PRINT "THE POPULATION IS NOW ";
1102  LET Z9=A1
1103  GOSUB 9400
1104  PRINT "."
1110  PRINT
1120  PRINT "WE HARVESTED ";
1122  LET Z9=B4
1123  GOSUB 9400
1124  GOSUB 9200
1125  PRINT " AT ";
1126  LET Z9=B3
1127  GOSUB 9400
1128  GOSUB 9200
1129  PRINT " PER ACRE."
1130  PRINT "RATS DESTROYED ";
1132  LET Z9=B2
1133  GOSUB 9400
1134  GOSUB 9200
1135  PRINT " LEAVING ";
1136  LET Z9=B1
1137  GOSUB 9400
1140  GOSUB 9200
1142  PRINT " IN THE STOREHOUSES."
1150  PRINT
1160  PRINT "THE CITY OWNS ";
1162  LET Z9=C1
1163  GOSUB 9400
1164  GOSUB 9300
1165  PRINT " OF LAND."
1170  LET C2=17+INT(6*RND(0))
1180  PRINT "LAND IS WORTH ";
1182  LET Z9=C2
1183  GOSUB 9400
1184  GOSUB 9200
1185  PRINT " PER ACRE."
1190  PRINT
1200  PRINT
1210  PRINT "HAMURABI . . ."
1300  REM ** BUY LAND?
1310  PRINT
1320  PRINT "BUY HOW MANY ACRES";
1330  INPUT I
1340  LET I=INT(ABS(I))
1350  IF I=0 THEN 1500
1360  LET J=I*C2
1370  IF J <= B1 THEN 1400
1380  GOSUB 9000
1390  GOTO 1310
1400  LET B1=B1-J
1410  LET C1=C1+I
1500  REM ** SELL LAND?
1510  PRINT "SELL HOW MANY ACRES";
1520  INPUT I
1530  LET I=INT(ABS(I))
1540  IF I=0 THEN 1700
1550  IF I<C1 THEN 1600
1560  IF I=C1 THEN 9999
1570  GOSUB 9000
1580  GOTO 1510
1600  LET C1=C1-I
1610  LET B1=B1+C2*I
1700  REM ** DISTRIBUTE FOOD
1710  PRINT "HOW MANY BUSHELS SHALL WE DISTRIBUTE AS FOOD";
1720  INPUT I
1730  LET I=INT(ABS(I))
1740  IF I <= B1 THEN 1770
1750  GOSUB 9000
1760  GOTO 1710
1770  LET B1=B1-I
1780  LET A3=A1-INT(I/20)
1790  LET A2=0
1800  IF A3 >= 0 THEN 1900
1810  LET A2=-A3/2
1820  LET A3=0
1900  REM ** PLANT LAND
1910  PRINT "HOW MANY ACRES SHALL WE PLANT";
1920  INPUT I
1930  LET I=INT(ABS(I))
1935  IF I>C1 THEN 1960
1940  LET J=INT(I/2)
1950  IF J <= B1 THEN 1980
1960  GOSUB 9000
1970  GOTO 1910
1980  IF I>10*A1 THEN 1960
1990  LET B1=B1-J
2000  REM ** HARVEST, RATS, AND CHANGES IN POPULATION
2010  LET B3=INT(5*RND(0))+1
2020  LET B4=B3*I
2030  LET B2=INT((B1+B4)*7.00000E-02*RND(0))
2040  LET B1=B1-B2+B4
2050  LET J=INT(10*RND(0))
2060  LET A2=INT(A2+(5-B3)*B1/600+1)
2070  IF A2 <= 50 THEN 2100
2080  LET A2=50
2100  LET A1=A1+A2-A3
2110  GOTO 1010
9000  REM ** ERROR SUBROUTINE
9005  PRINT
9010  PRINT "HAMURABI, THINK AGAIN - YOU ONLY HAVE"
9020  LET Z9=A1
9022  GOSUB 9400
9023  GOSUB 9100
9024  PRINT ", ";
9025  LET Z9=C1
9026  GOSUB 9400
9027  GOSUB 9300
9028  PRINT ", AND ";
9030  LET Z9=B1
9032  GOSUB 9400
9033  GOSUB 9200
9034  PRINT " IN STOREHOUSES."
9040  PRINT
9050  RETURN
9099  REM *** PLURALITY CONTROL ***
9100  IF Z9=1 THEN 9130
9110  PRINT " PEOPLE";
9120  RETURN
9130  PRINT " PERSON";
9140  RETURN
9200  PRINT " BUSHEL";
9210  IF Z9=1 THEN 9240
9230  PRINT "S";
9240  RETURN
9300  PRINT " ACRE";
9310  GOTO 9210
9395  REM *** INTEGER PRINT SUBROUTINE ***
9396  REM UP TO 6 DIGITS -999999 TO 999999, NO SPACES PRINTED
9397  REM NUMBER TO PRINT IN Z9, Z8 AND Z7 USED FOR TEMPS
9398  REM IF OUT OF RANGE JUST PRINTS
9400  IF ABS(Z9) <= 999999. THEN 9405
9402  PRINT Z9
9403  RETURN
9405  IF Z9 >= 0 THEN 9420
9410  PRINT "-";
9420  LET Z8=ABS(Z9)
9430  LET Z8=INT(Z8)
9440  IF Z8<10 THEN 9560
9450  IF Z8<100 THEN 9530
9460  IF Z8<1000 THEN 9500
9461  IF Z8<10000 THEN 9470
9462  IF Z8<100000. THEN 9466
9463  LET Z7=INT(Z8/100000.)
9464  LET Z8=Z8-Z7*100000.
9465  GOSUB 9700
9466  LET Z7=INT(Z8/10000)
9467  LET Z8=Z8-Z7*10000
9468  GOSUB 9700
9470  LET Z7=INT(Z8/1000)
9480  LET Z8=Z8-Z7*1000
9490  GOSUB 9700
9500  LET Z7=INT(Z8/100)
9510  LET Z8=Z8-Z7*100
9520  GOSUB 9700
9530  LET Z7=INT(Z8/10)
9540  LET Z8=Z8-Z7*10
9550  GOSUB 9700
9560  LET Z7=Z8
9570  GOSUB 9700
9580  RETURN
9695  REM DIGIT PRINT SUBROUTINE, DIGIT IN Z7
9700  IF Z7=1 THEN 9810
9710  IF Z7=2 THEN 9830
9720  IF Z7=3 THEN 9850
9730  IF Z7=4 THEN 9870
9740  IF Z7=5 THEN 9890
9750  IF Z7=6 THEN 9910
9760  IF Z7=7 THEN 9930
9770  IF Z7=8 THEN 9950
9780  IF Z7=9 THEN 9970
9790  PRINT "0";
9800  RETURN
9810  PRINT "1";
9820  RETURN
9830  PRINT "2";
9840  RETURN
9850  PRINT "3";
9860  RETURN
9870  PRINT "4";
9880  RETURN
9890  PRINT "5";
9900  RETURN
9910  PRINT "6";
9920  RETURN
9930  PRINT "7";
9940  RETURN
9950  PRINT "8";
9960  RETURN
9970  PRINT "9";
9980  RETURN
9999  END
