1 REM ###############################›2 REM # COMPUTER CRICKET #›3 REM # PART 4: TEXT SUBROUTINES #›4 REM # by K. J. Bricknell #›5 REM # Published by Atari Computer #›6 REM # Enthusiasts (N.S.W.) #›7 REM # February 1985 #›8 REM ###############################›10 PART$(1)=BLINE$:PART$(21)=NATION1$:PART$(LEN(PART$)+1)=" all out for ":A=VAL(TEAM1$(668,670))›20 PART$(LEN(PART$)+1)=STR$(A):PART$(LEN(PART$)+1)=" in the ":A=VAL(TEAM1$(664,665)):PART$(LEN(PART$)+1)=STR$(A)›30 IF A=21 OR A=31 OR A=41 THEN PART$(LEN(PART$)+1)="st":GOTO 60›40 IF A=22 OR A=32 OR A=42 THEN PART$(LEN(PART$)+1)="nd":GOTO 60›50 IF A=23 OR A=33 OR A=43 THEN PART$(LEN(PART$)+1)="rd":GOTO 60›55 PART$(LEN(PART$)+1)="th"›60 PART$(LEN(PART$)+1)=" over":P=1:GOTO 170›70 PART$(1)=BLINE$:PART$(21)="End of 50th over...":PART$(LEN(PART$)+1)=NATION1$:PART$(LEN(PART$)+1)=" "›80 PART$(LEN(PART$)+1)=STR$(OUT):PART$(LEN(PART$)+1)=" for ":A=VAL(TEAM1$(668,670)):PART$(LEN(PART$)+1)=STR$(A)›90 P=1:GOTO 170›100 PART$(1)=BLINE$:PART$(21)=NATION2$:PART$(LEN(PART$)+1)=" won by "›110 L=VAL(TEAM2$(668,670)):LL=VAL(TEAM1$(668,670)):A=L-LL:PART$(LEN(PART$)+1)=STR$(A):PART$(LEN(PART$)+1)=" run"›115 IF L>1 THEN PART$(LEN(PART$)+1)="s"›120 P=2:GOTO 170›130 PART$(1)=BLINE$:PART$(21)=NATION1$:PART$(LEN(PART$)+1)=" won by ":PART$(LEN(PART$)+1)=STR$(10-OUT)›140 PART$(LEN(PART$)+1)=" wicket":IF 10-OUT>1 THEN PART$(LEN(PART$)+1)="s"›150 P=2:GOTO 170›160 PART$(1)=BLINE$:PART$(21)=NATION1$:PART$(LEN(PART$)+1)=" drew with ":PART$(LEN(PART$)+1)=NATION2$:P=2›170 B=LEN(PART$):PART$(LEN(PART$)+1)=BLINE$:POSITION 0,20:IF D=123 THEN OUT=OUT+1:GOSUB 2440:OUT=OUT-1:D=0›180 ? BLINE$:FOR L=1 TO B:POSITION 20,20:? PART$(L,L+19);:SOUND 0,47,10,14:IF STRIG(0)=0 THEN POKE 559,0:GOTO 200›190 A=1^1:SOUND 0,64,10,14:A=1^1:NEXT L:GOTO 180›200 SOUND 0,0,0,0:IF P=1 THEN RETURN ›210 SOUND 0,0,0,0:IF P=2 THEN A=255:GOTO 860›3170 RESTORE 3300:GOSUB 3290:GOSUB 3350:PART$(LEN(PART$)+1)="ย":GOSUB 3370:D=LEN(PART$)›3180 PART$(LEN(PART$)+1)=" for ":GOSUB 3390:RETURN ›3190 RESTORE 3310:GOSUB 3290:GOSUB 3350:PART$(LEN(PART$)+1)="ร"›3200 FOR A=0 TO 9:IF TEAM2$(D*60-59+A,D*60-59+A)=" " THEN 3220›3210 PART$(LEN(PART$)+1)=TEAM2$(D*60-59+A,D*60-59+A):NEXT A›3220 PART$(LEN(PART$)+1)="ย":GOSUB 3370:D=LEN(PART$):PART$(LEN(PART$)+1)=" for ":GOSUB 3390:RETURN ›3230 RESTORE 3320:GOSUB 3290:GOSUB 3350:PART$(LEN(PART$)+1)="ฬยืto ":GOSUB 3370:D=LEN(PART$)›3240 PART$(LEN(PART$)+1)=" for ":GOSUB 3390:RETURN ›3250 RESTORE 3330:GOSUB 3290:GOSUB 3350:PART$(LEN(PART$)+1)="า๕๎ ๏๕๔ ":D=LEN(PART$):PART$(LEN(PART$)+1)=" for "›3260 GOSUB 3390:RETURN ›3270 RESTORE 3340:GOSUB 3290:GOSUB 3350:PART$(LEN(PART$)+1)="ำ๔๕ํ๐ๅไ ":D=LEN(PART$):PART$(LEN(PART$)+1)=" for "›3280 GOSUB 3390:RETURN ›3290 A=INT(RND(0)*6)+1:FOR B=1 TO A:READ PART$:NEXT B:? PART$:RETURN ›3300 DATA He's out!,He's gone!,He's bowled him!,That's it! Clean bowled!,There's an appeal!,He's missed it!›3310 DATA He's out!,He's gone!,It's in the air!,That's it! He's caught!,An appeal!,Well caught!›3320 DATA An appeal for LBW!,He's missed it!,He's gone...LBW!,He's out!,It's hit the pads!,And he's out LBW!›3330 DATA Runout!,There go the bails!,There's a mixup!,It's a runout!,He's gone...run out!,He'll never make it!›3340 DATA He's out of the crease!,The bails fly!,He's out!,That's it! He's stumped!,He's gone!,A loud appeal!›3350 PART$="":PART$(1)=BLINE$(1,38):FOR A=0 TO 9:IF TEAM1$(BAT*60-59+A,BAT*60-59+A)=" " THEN RETURN ›3360 PART$(LEN(PART$)+1)=TEAM1$(BAT*60-59+A,BAT*60-59+A):NEXT A:RETURN ›3370 FOR A=0 TO 9:IF TEAM2$(BOWL*60-59+A,BOWL*60-59+A)=" " THEN RETURN ›3380 PART$(LEN(PART$)+1)=TEAM2$(BOWL*60-59+A,BOWL*60-59+A):NEXT A:RETURN ›3390 IF VAL(TEAM1$(BAT*60-22,BAT*60-20))<10 THEN PART$(LEN(PART$)+1)=TEAM1$(BAT*60-20,BAT*60-20):GOTO 3420›3400 IF VAL(TEAM1$(BAT*60-22,BAT*60-20))<100 THEN PART$(LEN(PART$)+1)=TEAM1$(BAT*60-21,BAT*60-20):GOTO 3420›3410 PART$(LEN(PART$)+1)=TEAM1$(BAT*60-22,BAT*60-20)›3420 B=LEN(PART$):PART$(LEN(PART$)+1)=BLINE$:PART$(LEN(PART$)+1)=BLINE$:? CHR$(253);›3430 FOR A=1 TO B:POSITION 1,(OVERBALL*2+(OVERBALL-1)+2):? PART$(A,A+37);:IF STRIG(0)=0 THEN 3450›3440 NEXT A:GOTO 3430›3450 PART$(D+1)=BLINE$:POSITION 1,(OVERBALL*2+(OVERBALL-1)+2):? PART$(39,76);:RETURN ›3460 RESTORE 3630:D=4:GOSUB 3610:RESTORE 3670:D=6:GOSUB 3610:RETURN ›3470 RESTORE 3640:D=7:GOSUB 3610:RESTORE 3680:D=4:GOSUB 3610:RETURN ›3480 RESTORE 3640:D=11:GOSUB 3610:RESTORE 3690:D=4:GOSUB 3610:RETURN ›3490 RESTORE 3640:D=11:GOSUB 3610:RESTORE 3700:D=4:GOSUB 3610:RETURN ›3500 RESTORE 3650:D=9:GOSUB 3610:RESTORE 3710:D=4:GOSUB 3610:GOSUB 2420:FOR B=1 TO 8›3510 POSITION 1,(2*OVERBALL+(OVERBALL-1))+2:? " ":GOSUB 2420›3520 POSITION 1,(2*OVERBALL+(OVERBALL-1))+2:? PART$:GOSUB 2420:NEXT B:RETURN ›3530 RESTORE 3660:D=4:GOSUB 3610:RESTORE 3720:D=3:GOSUB 3610:GOSUB 2420:FOR B=1 TO 8›3540 POSITION 1,(2*OVERBALL+(OVERBALL-1))+2:? " ":GOSUB 2420›3550 POSITION 1,(2*OVERBALL+(OVERBALL-1))+2:? PART$;CHR$(253):GOSUB 2420:NEXT B:RETURN ›3560 A=INT(RND(0)*D)+1:FOR B=1 TO A:READ PART$:NEXT B:? PART$:RETURN ›3570 RESTORE 3730:D=4:? :GOSUB 3610:RETURN ›3580 RESTORE 3740:D=4:? :GOSUB 3610:RETURN ›3590 RESTORE 3750:D=4:? :GOSUB 3610:RETURN ›3600 RESTORE 3760:D=4:? :GOSUB 3610:RETURN ›3610 A=INT(RND(0)*D)+1:FOR B=1 TO A:READ PART$:NEXT B:? PART$:RETURN ›3620 POSITION 36,2*OVERBALL+(OVERBALL-1):? TEAM1$(BAT*60-22,BAT*60-20):GOSUB 3770:RETURN ›3630 DATA Backward defence,Forward defence›3640 DATA Forward Leg glance,Backward leg glance›3650 DATA Pull,Square cut,Late cut,Hook shot,Sweep shot›3660 DATA Straight Drive,On drive,Off Drive,Cover drive›3670 DATA No run,No score,No result,Nil runs,They play it safe...no runs,No runs in that one›3680 DATA One run,They take a single,A safe single,They take one run›3690 DATA Two runs,They take two,And that's two runs,Add two runs›3700 DATA Three runs,There's three in it,They take three,A handy three runs›3710 DATA A beautiful stroke...four runs,Umpire Dick French signals a four,A magnificent four!,That's a four!›3720 DATA A magnificent stroke! A six!,Beautifully played! A glorious six!,No doubt about that one! Six!›3730 DATA Leg bye,That's a leg bye,Umpire French signals a leg bye,A leg bye›3740 DATA Bye,That's a bye,A bye is signalled,A bye›3750 DATA That's a wide,Wide,Umpire French signals a wide,A wide›3760 DATA No-ball,A no-ball is signalled,No-ball says umpire French,That's a no-ball›3770 IF VAL(TEAM1$(BAT*60-22,BAT*60-20))<50 OR TEAM1$(BAT*60,BAT*60)="C" THEN RETURN ›3780 IF TEAM1$(BAT*60,BAT*60)="H" THEN 3800›3790 PART$="A half century for ":A=6:GOSUB 3820:TEAM1$(BAT*60,BAT*60)="H":RETURN ›3800 IF VAL(TEAM1$(BAT*60-22,BAT*60-20))<100 THEN RETURN ›3810 PART$="A century for ":A=12:GOSUB 3820:TEAM1$(BAT*60,BAT*60)="C":RETURN ›3820 FOR B=1 TO 75:NEXT B:FOR B=1 TO A:POSITION 1,(2*OVERBALL+(OVERBALL-1))+2:? BLINE$(1,38);:GOSUB 2420›3830 POSITION 1,(2*OVERBALL+(OVERBALL-1))+2:? PART$;TEAM1$(BAT*60-59,BAT*60-50);CHR$(253);:GOSUB 2420›3840 NEXT B:RETURN ›