Trailing-Edge
-
PDP-10 Archives
-
decuslib10-01
-
43,50210/yahtze.bas
There are no other files named yahtze.bas in the archive.
1000 A(0)=5
1010 FOR U=1 TO 5
1020 A(U)=7
1030 NEXT U
1040 CHANGE A TO C$
1060DIMA(15,15),T(15,15),F(15,15),S(15,15),L(15,15),K(15,15),H(15,15)
1070 FOR I=1 TO 5
1080 B(I)=0
1090 Q(I)=0
1100 A(I)=0
1110 NEXT I
1120 RANDOM
1130 PRINT "HOW MANY PLAYERS [TYPE: '0' FOR INSTRUCTIONS]";
1140 INPUT P
1150 IF P>15 THEN 1180
1160 IF P=0 THEN 4980
1170 GO TO 1200
1180 GOSUB 5710
1190 GO TO 1130
1200 IF P=.01 THEN 1220
1210 GO TO 1240
1220 GOSUB 5730
1230 GO TO 1140
1240 FOR I=1 TO P
1250 A(1,I)=-5
1260 T(1,I)=-5
1270 T(2,I)=-5
1280 F(1,I)=-5
1290 F(2,I)=-5
1300 S(1,I)=-5
1310 T(3,I)=-5
1320 F(3,I)=-5
1330 F(4,I)=-5
1340 S(2,I)=-5
1350 L(1,I)=-5
1360 Y(I)=-5
1370 C(I)=-5
1380 K(1,I)=0
1390 K(I)=0
1400 M(I)=0
1410 PRINT "NAME";
1420 INPUT N$(I)
1430 IF N$(I)="WHAT?" THEN 1450
1440 GO TO 1470
1450 GOSUB 5580
1460 GO TO 1410
1470 NEXT I
1480 R=0
1490 R=R+1
1495 IF R>13 THEN 6470
1500 PRINT
1510 PRINT
1520 PRINT "ROUND";R
1530 PRINT
1540 FOR I=1 TO P
1550 PRINT
1560 PRINT
1570 PRINT N$(I);"'S TURN"
1580 FOR L=1 TO 5
1590 A(L)=INT(6*RND(-1)+1)
1600 NEXT L
1605 GOSUB 1610
1607 GO TO 1700
1610 G=0
1620 FOR X=1 TO 5
1630 IF A(X)>=A(X+1) THEN 1680
1640 H=A(X)
1650 A(X)=A(X+1)
1660 A(X+1)=H
1670 G=1
1680 NEXT X
1685 IF G=1 THEN 1610
1690 RETURN
1700 PRINT "YOU HAVE A ";A(1);A(2);A(3);A(4);A(5)
1710 PRINT "THIS IS YOUR 2ND OF 3 ROLLS,"
1720 PRINT "HOW MANY DO YOU WANT TO CHANGE";
1730 INPUT Z
1740 IF Z=.01 THEN 1760
1750 GO TO 1780
1760 GOSUB 5600
1770 GO TO 1730
1780 IF Z=0 THEN 2620
1790 IF Z=5 THEN 1890
1800 FOR S=1 TO Z
1810 PRINT "WHICH";
1820 INPUT B(S)
1830 IF B(S)=.01 THEN 1850
1840 GO TO 1870
1850 GOSUB 5620
1860 GO TO 1810
1870 NEXT S
1880 GO TO 1930
1890 FOR S=1 TO 5
1900 A(S)=INT(6*RND(-1)+1)
1910 NEXT S
1920 GO TO 2050
1930 FOR L=1 TO 5
1940 FOR L1=1 TO 5
1950 IF B(L)=L1 THEN 1970
1960 GO TO 1980
1970 A(L1)=Q(L1)
1980 NEXT L1
1990 NEXT L
2000 FOR S=1 TO 5
2010 IF A(S)=0 THEN 2030
2020 GO TO 2040
2030 A(S)=INT(6*RND(-1)+1)
2040 NEXT S
2050 GOSUB 1610
2140 PRINT "YOU HAVE A ";A(1);A(2);A(3);A(4);A(5)
2150 PRINT "THIS IS YOUR LAST ROLL,"
2160 PRINT "HOW MANY DO YOU WANT TO CHANGE";
2170 INPUT Z
2180 IF Z=.01 THEN 2200
2190 GO TO 2220
2200 GOSUB 5600
2210 GO TO 2170
2220 IF Z=0 THEN 2620
2230 IF Z=5 THEN 2360
2240 FOR E=1 TO 5
2250 B(E)=0
2260 NEXT E
2270 FOR S=1 TO Z
2280 PRINT "WHICH";
2290 INPUT B(S)
2300 IF B(S)=.01 THEN 2320
2310 GO TO 2340
2320 GOSUB 5620
2330 GO TO 2280
2340 NEXT S
2350 GO TO 2400
2360 FOR S=1 TO 5
2370 A(S)=INT(6*RND(-1)+1)
2380 NEXT S
2390 GO TO 2520
2400 FOR L=1 TO 5
2410 FOR L1=1 TO 5
2420 IF B(L)=L1 THEN 2440
2430 GO TO 2450
2440 A(L1)=Q(L)
2450 NEXT L1
2460 NEXT L
2470 FOR S=1 TO 5
2480 IF A(S)=0 THEN 2500
2490 GO TO 2510
2500 A(S)=INT(6*RND(-1)+1)
2510 NEXT S
2520 GOSUB 1610
2610 PRINT "YOU HAVE A ";A(1);A(2);A(3);A(4);A(5)
2620 PRINT "HOW DO YOU WANT THIS ROUND SCORED";
2630 INPUT Z$
2640 IF Z$="WHAT?" THEN 2680
2650 IF Z$="SUMMARY" THEN 2670
2660 GO TO 2700
2670 GOSUB 6140
2675 GO TO 2620
2680 GOSUB 5650
2690 GO TO 2630
2700 IF Z$="ACES" THEN 2850
2710 IF Z$="TWOS" THEN 2940
2720 IF Z$="THREES" THEN 3030
2730 IF Z$="FOURS" THEN 3120
2740 IF Z$="FIVES" THEN 3210
2750 IF Z$="SIXES" THEN 3300
2760 IF Z$="THREE OF A KIND" THEN 3390
2770 IF Z$="FOUR OF A KIND" THEN 3440
2780 IF Z$="FULL HOUSE" THEN 3520
2790 IF Z$="SM. STRAIGHT" THEN 3620
2800 IF Z$="LG. STRAIGHT" THEN 3660
2810 IF Z$="YAHTZEE" THEN 3730
2820 IF Z$="CHANCE" THEN 3820
2830 IF Z$="ZERO" THEN 3890
2840 GO TO 2620
2850 IF A(1,I)<>-5 THEN 3870
2860 A(1,I)=0
2870 FOR S=1 TO 5
2880 IF A(S)=1 THEN 2900
2890 GO TO 2910
2900 A(1,I)=A(1,I)+1
2910 NEXT S
2920 M(I)=A(1,I)
2930 GO TO 4690
2940 IF T(1,I)<>-5 THEN 3870
2950 T(1,I)=0
2960 FOR S=1 TO 5
2970 IF A(S)=2 THEN 2990
2980 GO TO 3000
2990 T(1,I)=T(1,I)+2
3000 NEXT S
3010 M(I)=T(1,I)
3020 GO TO 4690
3030 IF T(2,I)<>-5 THEN 3870
3040 T(2,I)=0
3050 FOR S=1 TO 5
3060 IF A(S)=3 THEN 3080
3070 GO TO 3090
3080 T(2,I)=T(2,I)+3
3090 NEXT S
3100 M(I)=T(2,I)
3110 GO TO 4690
3120 IF F(1,I)<>-5 THEN 3870
3130 F(1,I)=0
3140 FOR S=1 TO 5
3150 IF A(S)=4 THEN 3170
3160 GO TO 3180
3170 F(1,I)=F(1,I)+4
3180 NEXT S
3185 M(I)=F(1,I)
3190 GO TO 4690
3210 IF F(2,I)<>-5 THEN 3870
3220 F(2,I)=0
3230 FOR S=1 TO 5
3240 IF A(S)=5 THEN 3260
3250 GO TO 3270
3260 F(2,I)=F(2,I)+5
3270 NEXT S
3280 M(I)=F(2,I)
3290 GO TO 4690
3300 IF S(1,I)<>-5 THEN 3870
3310 S(1,I)=0
3320 FOR S=1 TO 5
3330 IF A(S)=6 THEN 3350
3340 GO TO 3360
3350 S(1,I)=S(1,I)+6
3360 NEXT S
3370 M(I)=S(1,I)
3380 GO TO 4690
3390 IF T(3,I)<>-5 THEN 3870
3400 T(3,I)=0
3410 T(3,I)=A(1)+A(2)+A(3)+A(4)+A(5)
3420 M(I)=T(3,I)
3430 GO TO 4690
3440 IF F(3,I)<>-5 THEN 3870
3450 IF A(1)<>A(4) THEN 4960
3460 IF A(2)<>A(3) THEN 4960
3470 F(3,I)=0
3480 F(3,I)=A(1)+A(2)+A(3)+A(4)+A(5)
3490 M(I)=F(3,I)
3500 F(3,I)=0
3510 GO TO 4690
3520 IF F(4,I)<>-5 THEN 3870
3530 IF A(1)<>A(2) THEN 4960
3540 IF A(4)<>A(5) THEN 4960
3550 IF A(3)<>A(2) THEN 3570
3560 GO TO 3590
3570 IF A(3)<>A(4) THEN 4960
3580 GO TO 3590
3590 F(4,I)=25
3600 M(I)=F(4,I)
3610 GO TO 4690
3620 IF S(2,I)<>-5 THEN 3870
3630 S(2,I)=30
3640 M(I)=S(2,I)
3650 GO TO 4690
3660 IF L(1,I)<>-5 THEN 3870
3670 IF A(1)<>A(5)+4 THEN 4960
3680 IF A(2)<>A(4)+2 THEN 4960
3690 IF A(3)<>A(5)+2 THEN 4960
3700 L(1,I)=40
3710 M(I)=L(1,I)
3720 GO TO 4690
3730 IF Y(I)<>-5 THEN 3870
3740 FOR O=1 TO 5
3750 FOR O1=1 TO 5
3760 IF A(O)<>A(O1) THEN 4960
3770 NEXT O1
3780 NEXT O
3790 Y(I)=50
3800 M(I)=Y(I)
3810 GO TO 4690
3820 IF C(I)<>-5 THEN 3870
3830 C(I)=A(1)+A(2)+A(3)+A(4)+A(5)
3840
3850 M(I)=C(I)
3860 GO TO 4690
3870 GOSUB 4650
3880 GO TO 2620
3890 PRINT "WHAT DO YOU WANT TO ZERO";
3900 INPUT Z$
3920 IF Z$="SUMMARY" THEN 3940
3930 GO TO 3970
3940 GOSUB 6140
3945 GO TO 2620
3950 GOSUB 5680
3960 GO TO 3900
3970 IF Z$="ACES" THEN 4110
3980 IF Z$="TWOS" THEN 4150
3990 IF Z$="THREES" THEN 4190
4000 IF Z$="FOURS" THEN 4230
4010 IF Z$="FIVES" THEN 4270
4020 IF Z$="SIXES" THEN 4310
4030 IF Z$="THREE OF A KIND" THEN 4350
4040 IF Z$="FOUR OF A KIND" THEN 4390
4050 IF Z$="FULL HOUSE" THEN 4430
4060 IF Z$="SM. STRAIGHT" THEN 4470
4070 IF Z$="LG. STRAIGHT" THEN 4510
4080 IF Z$="YAHTZEE" THEN 4550
4090 IF Z$="CHANCE" THEN 4590
4100 GO TO 3890
4110 IF A(1,I)<>-5 THEN 4630
4120 A(1,I)=0
4130 M(I)=A(1,I)
4140 GO TO 4690
4150 IF T(1,I)<>-5 THEN 4630
4160 T(1,I)=0
4170 M(I)=T(1,I)
4180 GO TO 4690
4190 IF T(2,I)<>-5 THEN 4630
4200 T(2,I)=0
4210 M(I)=T(2,I)
4220 GO TO 4690
4230 IF F(1,I)<>-5 THEN 4630
4240 F(1,I)=0
4250 M(I)=F(1,I)
4260 GO TO 4690
4270 IF F(2,I)<>-5 THEN 4630
4280 F(2,I)=0
4290 M(I)=F(2,I)
4300 GO TO 4690
4310 IF S(1,I)<>-5 THEN 4630
4320 S(1,I)=0
4330 M(I)=S(1,I)
4340 GO TO 4690
4350 IF T(3,I)<>-5 THEN 4630
4360 T(3,I)=0
4370 M(I)=T(3,I)
4380 GO TO 4690
4390 IF F(3,I)<>-5 THEN 4630
4400 F(3,I)=0
4410 M(I)=F(3,I)
4420 GO TO 4690
4430 IF F(4,I)<>-5 THEN 4630
4440 F(4,I)=0
4450 M(I)=F(4,I)
4460 GO TO 4690
4470 IF S(2,I)<>-5 THEN 4630
4480 S(2,I)=0
4490 M(I)=S(2,I)
4500 GO TO 4690
4510 IF L(1,I)<>-5 THEN 4630
4520 L(1,I)=0
4530 M(I)=L(1,I)
4540 GO TO 4690
4550 IF Y(I)<>-5 THEN 4630
4560 Y(I)=0
4570 M(I)=Y(I)
4580 GO TO 4690
4590 IF C(I)<>-5 THEN 4630
4600 C(I)=0
4610 M(I)=C(I)
4620 GO TO 4690
4630 GOSUB 4650
4640 GOTO 2620
4650 PRINT "YOU HAVE ALREADY USED ";Z$;" AS A CATEGORY";C$
4660 PRINT
4670 RETURN
4680 GOTO 2620
4690 PRINT N$(I);" YOU GET A SCORE OF ";M(I);" FOR THIS ROUND"
4700 GO TO 5750
4710 NEXT I
4720 PRINT
4730 FOR J=1 TO P
4740 IF M(J)=A(1,J) THEN 4810
4750 IF M(J)=T(1,J) THEN 4810
4760 IF M(J)=T(2,J) THEN 4810
4770 IF M(J)=F(1,J) THEN 4810
4780 IF M(J)=F(2,J) THEN 4810
4790 IF M(J)=S(1,J) THEN 4810
4800 GO TO 4920
4810 K(1,J)=K(1,J)+M(J)
4820 GO TO 4830
4830 IF K(1,J)>=63 THEN 4860
4840 K(J)=K(J)+M(J)
4850 GO TO 4930
4860 K(1,J)=K(1,J)+35
4870 PRINT C$;N$(J);" HAS ACCUMULATED AT LEAST 63 POINTS"
4880 PRINT "IN THE FIRST SIX CATEGORIES."
4890 PRINT "HE SCORES A BONUS OF 35 POINTS!";C$
4900 K(J)=K(J)+M(J)
4910 GO TO 4930
4920 K(J)=K(J)+M(J)
4930 PRINT N$(J);" HAS ";K(J);" POINTS"
4940 NEXT J
4950 GO TO 1490
4960 PRINT "IT IS ILLEGAL TO USE ";Z$;" THIS ROUND";C$
4970 GO TO 2620
4980 PRINT
4990 PRINT
5000 PRINT
5010 PRINT "INSTRUCTIONS FOR PLAYING YAHTZEE";C$
5020 PRINT
5030 PRINT "YAHTZEE MAY BE PLAYED BY UP TO 15 PEOPLE."
5040 PRINT "THE OBJECT OF THE GAME IS TO GET THE HIGHEST SCORE"
5050 PRINT "EACH PLAYER ON HIS TURN RECEIVES FROM THE COMPUTER"
5060 PRINT "THE VALUES OF THE 5 PSEUDO-DICE. HE MAY THEN ROLL"
5070 PRINT "AS MANY OF THEM AS HE WANTS TO AGAIN. HOWEVER,"
5080 PRINT "HE IS ENTITLED UP TO BUT NO MORE THAN THREE ROLLS"
5090 PRINT "OF THE DICE."
5100 PRINT " YOU TELL THE COMPUTER MANY DICE YOU"
5110 PRINT "WANT TO CHANGE, THEN TELL IT WHICH ONES IN THE FOL-"
5120 PRINT "LOWING MANNER:"
5130 PRINT
5140 PRINT " TYPE: '1' FOR THE 1ST DIE, '2' FOR THE 2ND, ETC"
5150 PRINT " AFTER THE THIRD ROLL THE PLAYER MUST DECIDE HOW"
5160 PRINT "HE WANTS TO SCORE HIS FIVE DICE."
5170 PRINT "TYPING 'SUMMARY' WILLL SHOW WHAT CATEGORIES"
5180 PRINT "HAVE BEEN USED. OTHERWISE,"
5190 PRINT "YOU HAVE 13 CHOICES, TYPE 1 OF THE FOLLOWING"
5200 PRINT "DEPENDING ON HOW YOU WANT YOUR DICE SCORED."
5210 PRINT "THE CHOICES ARE:"
5220 PRINT "ACES,TWOS,THREES,FOURS,FIVES,SIXES"
5230 PRINT "THREE OF A KIND,FOUR OF A KIND,FULL HOUSE, SM. STRAIGHT,"
5240 PRINT "LG. STRAIGHT, YAHTZEE,CHANCE."
5250 PRINT "WHAT THE COMPUTER WILL DO:"
5260 PRINT "FOR ACES IT WILL COUNT AND ADD ALL OF YOUR ONES."
5270 PRINT "FOR TWOS IT WILL COUNT AND ADD ALL OF YOUR TWOS."
5280 PRINT "THE SAME IS TRUE THROUGH THE SIXES"
5290 PRINT "THREE OF A KIND WILL TOTAL ALL OF THE DICE PRO-"
5300 PRINT "VIDED THAT YOU HAVE THREE OF A KIND"
5310 PRINT "FOUR OF A KIND IS THE SAME AS THREE OF A KIND EXCEPT"
5320 PRINT "THAT YOU MUST HAVE FOUR OF A KIND"
5330 PRINT "FULL HOUSE [3 OF ONE NO. AND 2 OF ANOTHER] WILL YIELD"
5340 PRINT "25 POINTS. SM. STRAIGHT WILL GIVE YOU 30 POINTS BUT"
5350 PRINT "YOU MUST HAVE A SEQUENCE OF FOUR."
5360 PRINT "LG.STRAIGHT WILL YIELD 40 POINTS BUT YOU MUST HAVE A SE-"
5370 PRINT "QUENCE OF FIVE."
5380 PRINT "YAHTZEE WILLL GIVE 50 POINTS IF YOU HAVE FIVE OF A KIND."
5390 PRINT "CHANCE WILL TOTAL ALL OF YOUR DICE AND USE THAT AS YOUR SCORE."
5400 PRINT "CHANCE IS USEFUL WHEN YOU DON'T HAVE ANYTHING WORTH SCORING."
5410 PRINT "ANOTHER CATEGORY, 'ZERO' WILL ZERO OUT A CATEGORY"
5420 PRINT "IF YOU DON'T HAVE ANYTHING WORTH SCORING"
5430 PRINT "BUT HAVE PERHAPS ALREADY USED YOUR CHANCE."
5440 PRINT
5450 PRINT "IF YOUR ACCUMULATED SCORE OF THE FIRST SIX CATEGORIES"
5460 PRINT "EVER REACHES AT LEAST 63 POINTS YOU WILL RECEIVE"
5470 PRINT "A BONUS OF 35 POINTS!";C$
5480 PRINT
5490 PRINT "FOR INSTRUCTIONS DURING THE RUNNING OF THE PROGRAM"
5500 PRINT "TYPE 'WHAT?' WHEN THE COMPUTER ASKS FOR A WORD, OR,"
5510 PRINT"'.01' WHEN IT WANTS A NUMBER, AND YOU WILL RECEIVE"
5520 PRINT "FURTHER NOTES RELATED TO WHAT THE COMPUTER ASKED FOR."
5530 PRINT
5540 PRINT
5550 PRINT
5560 PRINT "GOOD LUCK!!!!!";C$
5570 GO TO 1070
5580 PRINT "WHAT DO YOU WANT ONE OF THE PLAYERS CALLED BY"
5600 PRINT "HOW MANY DICE DO YOU WANT TO ROLL AGAIN";
5610 RETURN
5620 PRINT "WHICH DIE DO YOU WANT TO CHANGE"
5630 PRINT "TYPE: '1' FOR THE 1ST DIE, '2' FOR THE 2ND DIE, ETC."
5640 RETURN
5650 PRINT "IN WHICH CATEGORY DO YOU WANT THIS ROUND SCORED"
5660 PRINT "TYPING: 'SUMMARY' WILL TELL YOU WHICH CATEGORIES YOU HAVE USED";
5670 RETURN
5680 PRINT "WHICH CATEGORY DO YOU WANT ZEROED"
5690 GO TO 5660
5710 PRINT "A MAXIMUM OF 15 PLAYERS IS ALLOWED"
5720 RETURN
5730 PRINT "HOW MANY PEOPLE WISH TO PLAY";
5740 RETURN
5750 IF Z$="ACES" THEN 5880
5760 IF Z$="TWOS" THEN 5900
5770 IF Z$="THREES" THEN 5920
5780 IF Z$="FOURS" THEN 5940
5790 IF Z$="FIVES" THEN 5960
5800 IF Z$="SIXES" THEN 5980
5810 IF Z$="THREE OF A KIND" THEN 6000
5820 IF Z$="FOUR OF A KIND" THEN 6020
5830 IF Z$="FULL HOUSE" THEN 6040
5840 IF Z$="SM. STRAIGHT" THEN 6060
5850 IF Z$="LG. STRAIGHT" THEN 6080
5860 IF Z$="YAHTZEE" THEN 6100
5870 IF Z$="CHANCE" THEN 6120
5880 H(I,R)=1
5890 GO TO 4710
5900 H(I,R)=2
5910 GO TO 4710
5920 H(I,R)=3
5930 GO TO 4710
5940 H(I,R)=4
5950 GO TO 4710
5960 H(I,R)=5
5970 GO TO 4710
5980 H(I,R)=6
5990 GO TO 4710
6000 H(I,R)=7
6010 GO TO 4710
6020 H(I,R)=8
6030 GO TO 4710
6040 H(I,R)=9
6050 GO TO 4710
6060 H(I,R)=10
6070 GO TO 4710
6080 H(I,R)=11
6090 GO TO 4710
6100 H(I,R)=12
6110 GO TO 4710
6120 H(I,R)=13
6130 GO TO 4710
6140 PRINT N$(I);" HAS USED THE FOLLOWING CATEGORIES:"
6150 FOR S=1 TO (R-1)
6160 IF H(I,S)>7 THEN 6180
6170 ON H(I,S) GO TO 6190,6210,6230,6250,6270,6290,6310
6180 ON H(I,S)-7 GO TO 6330,6350,6370,6390,6410,6430
6190 PRINT "ACES, ";
6200 GO TO 6440
6210 PRINT "TWOS, ";
6220 GO TO 6440
6230 PRINT "THREES, ";
6240 GO TO 6440
6250 PRINT "FOURS, ";
6260 GO TO 6440
6270 PRINT "FIVES, ";
6280 GO TO 6440
6290 PRINT "SIXES, ";
6300 GO TO 6440
6310 PRINT "THREE OF A KIND, ";
6320 GO TO 6440
6330 PRINT "FOUR OF A KIND, ";
6340 GO TO 6440
6350 PRINT "FULL HOUSE, ";
6360 GO TO 6440
6370 PRINT "SM. STRAIGHT, ";
6380 GO TO 6440
6390 PRINT "LG. STRAIGHT, ";
6400 GO TO 6440
6410 PRINT "YAHTZEE, ";
6420 GO TO 6440
6430 PRINT "CHANCE, ";
6440 NEXT S
6445 PRINT
6446 PRINT "HE HAS ";K(I);" POINTS,"
6447 PRINT "AND ";K(1,I);" OF THE 65 POINTS NEEDED FOR THE BONUS";
6450 PRINT "."
6460 RETURN
6470 G=0
6480 FOR X=1 TO P
6490 IF S(X)>=S(X+1) THEN 6540
6500 H=S(X)
6510 S(X)=S(X+1)
6520 S(X+1)=H
6530 G=1
6540 NEXT X
6550 IF G=1 THEN 6470
6560 PRINT "THE GAME IS OVER."
6570 PRINT
6571 FOR X=1 TO P
6572 IF K(X)=S(X) THEN 6580
6573 NEXT X
6580 PRINT "THE WINNER IS ";N$(1);" WITH ";K(1);" POINTS."
6585 IF P=1 THEN 9999
6586 PRINT "OTHER FINAL SCORES ARE:"
6590 FOR Y=1 TO P
6600 IF K(Y)=S(X) THEN 6620
6610 PRINT N$(Y);" FINISHES WITH ";K(Y);" POINTS."
6620 NEXT Y
9999 END