home *** CD-ROM | disk | FTP | other *** search
- 0 PG$="áS T O P ":AU$="BY RANDALL LOCKWOOD":JF=0
- 1 REM STOP -- BY RANDALL LOCKWOOD
- 2 :
- 5 REM COPYRIGHT (C) 1983 THE CODE WORKS
- 6 REM BOX 6905, SANTA BARBARA, CA 93160
- 7 :
- 10 REM AS OF 9/6/83 GF
- 90 GOTO 62000
- 100 U$="":B$=" "+CR$
- 101 DIM JD(15):FOR I=0 TO 15:READ JD(I):NEXT
- 102 DATA 0,0,0,0,0,3,9,6,0,1,7,4,0,2,8,5
- 103 DEF FNJ(X)=JD(PEEK(JS+X) AND 15):DEF FNB(X)=(PEEK(JS+X) AND 16)=0
- 104 FOR I=0 TO 28:POKE SID+I,0:NEXT:POKE SID+6,240:POKE SID+4,17
- 110 FQ=SID+1:VL=SID+24:QI=3:DI=CM-CRT:TN=15:SP=WD*2:C$=" "
- 120 DIM T(12),X1(12),P1(12),P(12),R(4),RR(6,1)
- 130 DIM PS%(2,12),GC(2),W%(12),X(12),PF(2,12),PN$(2),PS$(2)
- 140 PRINT "ôWANT TO PLAY AGAINST THE 64? ";
- 150 GOSUB 60000:PRINT:PET=(LEFT$(IN$,1)<>"N")
- 160 IF PET THEN PN$(1)="YOU":PN$(2)="I":PS$(1)="YOUR":PS$(2)="MY":GOTO 210
- 170 QI=20:FOR I=1 TO 2:PRINT "PLAYER";I;"¥'S NAME? ";:GOSUB 60000
- 180 IF IN$="" THEN IN$="PLAYER "+CHR$(I+48)
- 190 PN$(I)=LEFT$(IN$,8):PS$(I)=PN$(I)+"'S"
- 200 NEXT I:QI=3
- 210 GC(1)=81:GC(2)=90:CL(1)=10:CL(2)=14:BK=11
- 215 FOR I=2 TO 12:T(I)=12-2*ABS(7-I):NEXT
- 230 FOR I=2 TO 12:P(I)=CRT+3*I-2+(14+T(I))*WD:NEXT
- 240 Z$="ùññ £":PRINT "ô£":PRINT "æ";TAB(19);" 7"
- 250 PRINT TAB(16) " 6 " Z$ " 8"
- 260 PRINT TAB(13);" 5 " Z$Z$Z$ " 9"
- 270 PRINT TAB(10);" 4 " Z$Z$Z$Z$Z$ "10"
- 280 PRINT TAB(7);" 3 " Z$Z$Z$Z$Z$Z$Z$ "11"
- 290 PRINT " 2 " Z$Z$Z$Z$Z$Z$Z$Z$Z$ "12"
- 300 PRINT " " Z$Z$Z$Z$Z$Z$Z$Z$Z$Z$Z$ ""
- 310 PRINT " " Z$Z$Z$Z$Z$Z$Z$Z$Z$Z$Z$ ""
- 320 PRINT TAB(7);Z$Z$Z$Z$Z$Z$Z$Z$Z$ ""
- 330 PRINT TAB(10);Z$Z$Z$Z$Z$Z$Z$ ""
- 340 PRINT TAB(13)Z$Z$Z$Z$Z$ ""
- 350 PRINT TAB(16)Z$Z$Z$ ""
- 360 PRINT TAB(19);Z$ ""
- 400 FOR I=1 TO 2:FOR J=2 TO 12:PS%(I,J)=0:PF(I,J)=0:NEXT J:CW(I)=0:NEXT I
- 410 FOR J=2 TO 12:W%(J)=0:NEXT J
- 470 PL=2
- 475 PRINT "";TAB(31);"THE DICE"
- 480 C=3
- 490 PL=PL+1:IF PL>2 THEN PL=1
- 510 FOR I=2 TO 12:X(I)=0:NEXT:FR=0
- 515 PRINT "";C$
- 520 PRINT "" LEFT$("üƒ",PL);PS$(PL);" TURN ";CHR$(GC(PL)+128)
- 540 IF PL=2 AND PET THEN 1200
- 545 GOSUB 2200:IF R$="Q" THEN PRINT "ô":END
- 546 IF R$="R" THEN 870
- 580 PRINT U$;" STOP ":T=TI+300
- 590 FOR J=2 TO 12
- 600 IF X(J)=0 THEN 720
- 605 SD=135/2^(PF(PL,J)/12):GOSUB 2600
- 610 IF PF(PL,J)<=T(J) THEN 680
- 620 CW(PL)=CW(PL)+1:W%(J)=1
- 630 FOR K=1 TO T(J)+1:Z=P(J)-SP*K
- 635 POKE Z,GC(PL):POKE Z+1,GC(PL)
- 640 POKE Z+DI,CL(PL):POKE Z+DI+1,CL(PL)
- 650 NEXT K
- 670 GOTO 720
- 680 IF PS%(PL,J)>0 THEN L=P(J)-SP*PS%(PL,J)+PL-1:POKE L,100:POKE L+DI,BK
- 690 L=P(J)-SP*PF(PL,J)+PL-1:POKE L,GC(PL)
- 695 POKE L+DI,CL(PL)
- 710 PS%(PL,J)=PF(PL,J)
- 720 GOSUB 2650:NEXT J
- 723 IF TI<T THEN 723
- 725 PRINT U$;B$
- 730 IF CW(PL)>=3 THEN 1100
- 740 GOTO 480
- 870 PRINT U$;" ZAP!! ":SD=255:TN=25
- 875 GOSUB 2600:FOR Z=1 TO 750:NEXT
- 880 GOSUB 2650:FOR Z=1 TO 750:NEXT
- 890 PRINT U$;" ":FOR J=2 TO 12
- 900 IF X(J)=0 THEN 960
- 910 IF PF(PL,J)>T(J) THEN 930
- 920 L=P(J)-SP*PF(PL,J)+PL-1:POKE L,100:POKE L+DI,BK:GOTO 950
- 930 PRINT LEFT$(U$,13-T(J));TAB(3*J-2);RIGHT$(STR$(J),2)
- 950 PF(PL,J)=PS%(PL,J)
- 960 NEXT J:GOTO 480
- 1000 GOSUB 2490
- 1020 T=M(1):GOSUB 1900
- 1030 T=M(2):GOSUB 1900
- 1040 IF PL=2 AND PET THEN FOR Z=1 TO 2000:NEXT
- 1050 GOTO 540
- 1100 Z$="S":IF PET THEN Z$=""
- 1105 RESTORE:I=1:Z=18:T=TI
- 1110 PRINT "";C$:FOR K=1 TO 30
- 1115 PRINT "" CHR$(Z);PN$(PL);" WIN";Z$:T=TI+6
- 1120 IF K=I THEN READ SD,I:I=K+I:GOSUB 2650:GOSUB 2600
- 1125 IF TI<T THEN 1125
- 1130 Z=(Z+128) AND 255
- 1140 NEXT K
- 1145 GOSUB 2650
- 1150 PRINT U$;"AGAIN?":GOSUB 60000
- 1160 IF LEFT$(IN$,1)="N" THEN END
- 1170 GOTO 240
- 1180 DATA 214,4,214,2,214,6,202,2,214,2,255,2,241,2,214,0
- 1200 IF C>0 THEN 1230
- 1210 J=0:FOR I=2 TO 12:IF X(I) THEN J=J+I:IF PF(PL,I)>T(I) THEN 580
- 1215 NEXT:J=J/3
- 1217 IF RND(1)*(7-ABS(7-J))>FR THEN 1230
- 1220 GOTO 580
- 1230 GOSUB 2300:PRINT U$ "THINKING"
- 1240 TS=0:FOR I=1 TO NP
- 1250 R1=RR(I,0):R2=RR(I,1)
- 1260 GOSUB 1400
- 1290 NEXT I
- 1300 PRINT U$;B$
- 1310 IF TS=0 THEN 870
- 1330 GOTO 1000
- 1400 FOR Z=2 TO 12:X1(Z)=X(Z):P1(Z)=PS%(PL,Z):NEXT Z:C1=C
- 1410 SC=0:T=R1:GOSUB 1500:T=R2:GOSUB 1500
- 1420 IF SC>TS THEN TS=SC:M(1)=R1:M(2)=R2:M=I
- 1430 RETURN
- 1500 IF X1(T)=0 AND C1=0 THEN RETURN
- 1501 IF W%(T) OR P1(T)>T(T) THEN RETURN
- 1505 SC=SC+1
- 1520 IF X1(T) THEN SC=SC+2
- 1530 IF P1(T)=T(T) THEN SC=SC+5
- 1540 IF X1(T)=0 THEN C1=C1-1
- 1550 P1(T)=P1(T)+1:X1(T)=1:RETURN
- 1800 PRINT U$;LEFT$("ûÜ",PL);"WHICH PAIR?":QI=3:GOSUB 60000
- 1810 PRINT U$;" ":PRINT B$
- 1815 IF LEFT$(IN$,1)="Q" THEN V=0:R$="Q":RETURN
- 1820 IF IN$="" AND NP=1 THEN IN$="1"
- 1825 IF IN$="" THEN 1800
- 1830 M=VAL(IN$):IF IN$="0" THEN RETURN
- 1835 IF M<1 OR M>NP THEN 1800
- 1837 GOSUB 2490
- 1840 V=0:T=RR(M,0):GOSUB 1900
- 1850 T=RR(M,1):GOSUB 1900
- 1860 RETURN
- 1900 IF W%(T) THEN RETURN
- 1910 I=PF(PL,T):IF I<>PS%(PL,T) THEN 1950
- 1920 IF C>0 THEN GOSUB 2000:X(T)=1:C=C-1
- 1930 RETURN
- 1950 IF I<=T(T) THEN GOSUB 2000
- 1960 RETURN
- 2000 SD=255/2^(PF(PL,T)/12):GOSUB 2600
- 2005 IF PF(PL,T)=PS%(PL,T) THEN 2020
- 2010 L=P(T)-SP*PF(PL,T)+PL-1:POKE L,100:POKE L+DI,BK
- 2020 PF(PL,T)=PF(PL,T)+1
- 2030 L=P(T)-SP*PF(PL,T)+PL-1:POKE L,214:POKE L+DI,CL(PL)
- 2040 V=1:FR=FR+1:GOSUB 2650:RETURN
- 2200 IF C=3 THEN 2235
- 2205 PRINT U$;"RÆæ¥ñ OR SÆæ¥ñ? "
- 2210 QI=3:GOSUB 60000:R$=LEFT$(IN$,1)
- 2215 PRINT "æææ";B$;B$;B$;
- 2220 IF R$="S" OR R$="Q" THEN RETURN
- 2230 IF R$<>"" AND R$<>"R" THEN 2205
- 2235 R$="R":GOSUB 2300:GOSUB 2700:IF ZP THEN RETURN
- 2240 V=0:GOSUB 1800:IF V THEN 2205
- 2250 RETURN
- 2300 PRINT "":PRINT TAB(30);B$:PRINT "";TAB(30);B$
- 2305 PRINT "":FOR I=1 TO 6:PRINT B$;:NEXT
- 2310 FOR I=1 TO 4:R(I)=INT(6*RND(1)+1):NEXT
- 2320 PRINT "":PRINT TAB(33);"";CHR$(R(1)+48);"";CHR$(R(2)+48)
- 2330 PRINT "" TAB(33);"";CHR$(R(3)+48);"";CHR$(R(4)+48)
- 2340 T=R(1)+R(2)+R(3)+R(4)
- 2350 NP=0:FOR I=1 TO 3:FOR J=I+1 TO 4
- 2360 R1=R(I)+R(J):R2=T-R1
- 2370 IF NP=0 THEN 2410
- 2380 FOR M=1 TO NP
- 2390 IF RR(M,0)=R1 AND RR(M,1)=R2 THEN 2420
- 2400 NEXT M
- 2410 NP=NP+1:RR(NP,0)=R1:RR(NP,1)=R2
- 2420 NEXT J,I
- 2430 PRINT "":FOR M=1 TO NP:GOSUB 2500:NEXT M
- 2440 RETURN
- 2490 PRINT LEFT$("",M+2);"";
- 2500 PRINT MID$(STR$(M),2);":";
- 2510 PRINT RIGHT$(STR$(RR(M,0)),2);" ";
- 2520 PRINT RIGHT$(STR$(RR(M,1)),2)
- 2530 RETURN
- 2600 POKE VL,15:POKE FQ,SD:TN=15:RETURN
- 2650 POKE VL,0:RETURN
- 2700 ZP=0:IF C>0 THEN RETURN
- 2710 FOR Z=1 TO NP
- 2720 IF X(RR(Z,0)) OR X(RR(Z,1)) THEN RETURN
- 2730 NEXT Z:ZP=1:RETURN
- 2995 RETURN
- 60000 IN$=" ":ZT=TI:ZC=2:ZD$=CHR$(20)
- 60010 GET Z$:IF Z$<>"" THEN 60070
- 60020 IF ZT<=TI THEN PRINT MID$(" ª",ZC,1);"¥";:ZC=3-ZC:ZT=TI+15
- 60030 GOTO 60010
- 60070 Z=ASC(Z$):ZL=LEN(IN$):IF (Z AND 127)<32 THEN PRINT " ¥";:GOTO 60110
- 60090 IF ZL>QI THEN 60010
- 60100 IN$=IN$+Z$:PRINT Z$;ZD$;Z$;
- 60110 IF Z=13 THEN IN$=MID$(IN$,2):PRINT CR$;:RETURN
- 60120 IF Z=20 AND ZL>1 THEN IN$=LEFT$(IN$,ZL-1):PRINT "¥";:GOTO 60010
- 60130 IF Z=141 THEN Z$=CHR$(-20*(ZL>1)):FOR Z=2 TO ZL:PRINT Z$;:NEXT:GOTO 60000
- 60140 GOTO 60010
- 61000 CRT=1024:VIC=53248:WD=40:CR$=CHR$(13):SID=54272:JS=56320:CM=55296
- 61010 QL=214:QI=254:RETURN
- 62000 GOSUB 61000:POKE VIC+32,0:POKE VIC+33,0:LN=LEN(PG$):TB=(40-LN)/2
- 62010 PRINT "ô₧" TAB(TB)LEFT$(" ",LN)
- 62020 PRINT "" TAB(TB)PG$:PRINT ""TAB(TB)LEFT$(" ",LN)
- 62030 PRINT "" TAB((40-LEN(AU$))/2)AU$
- 62040 MS$="HIT RETURN TO BEGIN":IF JF THEN MS$="HIT JOYSTICK BUTTON TO BEGIN"
- 62050 TB=((40-LEN(MS$))/2)
- 62060 PRINT "ƒ" TAB(TB)MS$:PRINT "ƒ (C) 1983 THE CODE WORKS"
- 62070 GET IN$:IF IN$<>"" THEN 62120
- 62080 IF (PEEK(JS) AND 16)=0 THEN 62120
- 62090 PRINT "" TAB(TB)LEFT$("£ƒ",K+1)LEFT$(MS$,Q)
- 62100 Q=Q+1:IF Q>LEN(MS$) THEN Q=0:K=1-K
- 62110 GOTO 62070
- 62120 CLR:PRINT "ô":GOSUB 61000:GOTO 100
- 8224
-