1 COLOR 15,0,0 100 ' ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» 110 ' º CRIBBAGE º 120 ' ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 130 ' 140 DEFINT C-Z:GOSUB 3490:RANDOMIZE VAL(RIGHT$(TIME$,2)):GOSUB 3640 150 GOSUB 2590:GOSUB 2650:' --- LOW CARD DEALS FIRST --- 160 GOSUB 2590:GOSUB 2760:' --- SUFFLE DECK AND DEAL --- 170 GOSUB 1530:' --- FIND THE FOUR BEST CARDS AND DISCARD OTHERS - 180 ' --- DISCARD --- 190 I1=V(B9,5):I2=V(B9,6) 200 E=7:GOSUB 3280:GOSUB 3080:I3=RR:CL=RR*8+9:RW=7:GOSUB 3180 210 GOSUB 3100:I4=RR:IF I3=I4 THEN E=10:GOSUB 3280:GOTO 210 220 ' --- CRIB --- 230 RW=7:CL=RR*8+9:GOSUB 3180 240 FOR J=1 TO 4:C(1,J)=M(I1,J):C(2,J)=M(I2,J):C(3,J)=Y(I3,J):C(4,J)=Y(I4,J) 250 NEXT J 260 GOSUB 1910:' --- GENERATE THE UP CARD --- 270 ' --- PLAY OF THE HAND --- 280 GOSUB 590:LOCATE 5,1:IF M<>0 THEN 300 290 COLOR 10:PRINT "I SCORE FIRST":X1=2:GOTO 490 300 COLOR 10:PRINT "YOU SCORE FIRST":X1=1:GOTO 370 310 LOCATE 22,14:PRINT "CRIB:" 320 RW=20:FOR I=1 TO 4:CL=I*8+25:CC$=C$(C(I,1)):GOSUB 3010:NEXT I 330 FOR I=1 TO 4:FOR J=1 TO 4:W(I,J)=C(I,J):NEXT J:NEXT I:C=1 340 W(5,4)=T9:GOSUB 2020:IF X1=2 THEN X1=3:GOTO 400 350 LOCATE 22,20:PRINT USING "## PTS";P:S1=S1+P:IF S1>121 THEN 560 360 GOSUB 540:GOTO 160 370 K=1:FOR I=1 TO 6:IF I=I3 OR I=I4 THEN 390 380 FOR J=1 TO 4:W(K,J)=Y(I,J):NEXT J:K=K+1 390 NEXT I:W(5,4)=T9:C=0:GOSUB 2020:E=13:GOSUB 3280 400 COLOR 11:LOCATE 12,1:PRINT "POINTS ":PRINT " " 410 LOCATE 12,8 420 INPUT P9:D=P-P9:IF D>=0 THEN 440 430 COLOR 12:LOCATE 13,1:PRINT "TRY AGAIN";:GOTO 420 440 S2=S2+P9:IF S2>=121 THEN 570 450 IF D=0 THEN 480 460 COLOR 14:S1=S1+D:LOCATE 13,1:PRINT USING "MUGGINS ## ";D 470 IF S1>=121 THEN 560 480 ON X1 GOTO 490,310,530 490 FOR K=1 TO 4:L=V(B9,K):FOR J=1 TO 4:W(K,J)=M(L,J):NEXT J,K 500 COLOR 13:LOCATE 17,10:PRINT "MY CARDS:"; 510 W(5,4)=T9:C=0:GOSUB 2020:S1=S1+P:IF S1>=121 THEN 560 520 COLOR 14:PRINT USING " ## PTS";P:ON X1 GOTO 310,370 530 GOSUB 540:GOTO 160 540 COLOR 11:LOCATE 1,42:PRINT USING "SCORE: YOU ### PTS";S2 550 LOCATE 2,50:PRINT USING "IBM ### PTS";S1:RETURN 560 E=14:GOSUB 3280:GOTO 3270 570 E=15:GOSUB 3280:GOTO 3270 580 ' 590 ' --- PLAY OF THE HAND --- 600 ' 610 E=8:GOSUB 3280:Y5=0:M5=0:C=0:S9=0:G=0 620 IF M=0 THEN 830 630 IF Y5<>4 THEN 660 640 IF M5=4 THEN 1090 650 GOTO 830 660 GOSUB 3240 670 IF C$="GO" THEN 830 680 FOR C6=1 TO 6:IF C$=D$(C6) THEN 710 690 NEXT C6 700 E=9:GOSUB 3280:GOTO 660 710 IF C6=I3 OR C6=I4 THEN E=1:GOSUB 3280:GOTO 660 720 IF Y5=0 THEN 750 730 FOR J=1 TO Y5:IF I(J+10)=C6 THEN E=6:GOSUB 3280:C$="GO"::GOTO 830 740 NEXT J 750 IF S9+Y(C6,2)>31 THEN E=3:GOSUB 3280:GOTO 660 760 S9=S9+Y(C6,2):Y5=Y5+1:I(10+Y5)=C6:C=C+1:J(C)=Y(C6,4) 770 GOSUB 1310:CC$=C$(Y(C6,1)):CL=RR*8+9 780 COLOR 14:LOCATE 3,1:PRINT USING "YOU PLAY A \ \ ## SUM ## PTS";CC$,S9,P 790 RW=7:GOSUB 3180:RW=10:GOSUB 3010 800 F=1:S2=S2+P:IF S2>=121 THEN 570 810 IF S9<>31 THEN 830 820 F=0:C=0:S9=0:G=0:GOTO 830 830 E=13:GOSUB 3280:PRINT:IF M5<>4 THEN 900 840 IF Y5=4 THEN 1090 850 IF C$<>"GO" THEN 630 860 IF F=2 THEN 880 870 E=4:GOSUB 3280:S2=S2+1:IF S2>=121 THEN 570 ELSE 890 880 E=5:GOSUB 3280:S1=S1+1:IF S1>=121 THEN 560 890 F=0:C=0:S9=0:GOTO 630 900 K9=0:P9=0:C9=C:C=C+1:H9=S9:I9=0 910 I9=I9+1:IF I9>6 THEN 990 920 I(I9)=0:IF I9=I1 OR I9=I2 THEN 910 930 IF M5=0 THEN 960 940 FOR J9=1 TO M5:IF I9=I(20+J9) THEN 910 950 NEXT J9 960 IF H9+M(I9,2)>31 THEN 910 970 K9=K9+1:S9=H9+M(I9,2):J(C)=M(I9,4):GOSUB 1310:IF P9

0 THEN 1130 1000 IF C$<>"GO" THEN 1040 1010 IF G=1 THEN 1050 1020 E=5:GOSUB 3280 1030 C=0:S9=0:S1=S1+1:IF S1>=121 THEN 560 ELSE 630 1040 IF Y5<>4 THEN 1070 1050 E=4:GOSUB 3280:S2=S2+1:IF S2>=121 THEN 570 1060 C=0:S9=0:G=0:C$="":GOTO 830 1070 IF G=1 THEN 630 1080 E=6:GOSUB 3280:G=1:GOTO 630 1090 IF F=0 THEN RETURN 1100 IF F=1 THEN 1120 1110 E=5:GOSUB 3280:S1=S1+1:IF S1>=121 THEN 560 ELSE RETURN 1120 E=4:GOSUB 3280:S2=S2+1:IF S2>=121 THEN 560 ELSE RETURN 1130 C=C+1:M5=M5+1:IF C<>1 THEN 1220 1140 FOR J9=1 TO 4:I9=V(B9,J9) 1150 ' --- DON'T PLAY A FIVE FIRST --- 1160 IF M(I9,2)=5 THEN 1200 1170 FOR II=1 TO M5-1:IF I9=I(II+20) THEN 1200 1180 NEXT II 1190 I(M5+20)=I9:J(C)=M(I9,4):P9=0:S9=M(I9,2):GOTO 1250 1200 NEXT J9 1210 L=V(B9,1):GOTO 1190 1220 FOR J9=1 TO K9:I9=I(J9+30):IF I(I9)=P9 THEN 1240 1230 NEXT J9 1240 I(M5+20)=I9:J(C)=M(I9,4):S9=S9+M(I9,2) 1250 CC$=C$(M(I9,1)):RW=15:CL=M5*8+25:GOSUB 3010 1260 LOCATE 3,1:PRINT USING " I PLAY A \ \ ## SUM ## PTS";CC$,S9,P9 1270 F=2:S1=S1+P9:IF S1>=121 THEN 560 1280 IF S9<>31 THEN 1300 1290 F=0:C=0:S9=0:GOTO 630 1300 IF C$="GO" THEN 830 ELSE 630 1310 ' --- CHECK 15 & 31 --- 1320 P=0:IF C=1 THEN RETURN 1330 IF S9=15 OR S9=31 THEN P=P+2 1340 Z=C-2:IF Z<2 THEN Z=2 1350 FOR I=C TO Z STEP -1 1360 IF J(I)<>J(I-1) THEN 1420 1370 ON C-I+1 GOTO 1380,1390,1400 1380 P=P+2:GOTO 1410 1390 P=P+4:GOTO 1410 1400 P=P+6 1410 NEXT I 1420 ' --- RUNS --- 1430 IF C=2 THEN RETURN 1440 R9=0:FOR I=3 TO C:GOSUB 1460:NEXT I:P=P+R9:RETURN 1450 ' --- RUNS CHECK ROUTINE --- 1460 FOR J=1 TO C:J(J+10)=J(C-J+1):NEXT J:K=0 1470 K=K+1:IF K>I THEN 1510 1480 FOR L=K+1 TO I:IF J(K+10)J(K+11)-1 THEN RETURN 1520 NEXT K:R9=I:RETURN 1530 ' --- FIND THE BEST FOUR CARD HAND --- 1540 P9=0:FOR Z9=1 TO 15:I1=V(Z9,1):I2=V(Z9,2):I3=V(Z9,3):I4=V(Z9,4) 1550 FOR J=1 TO 4:W(1,J)=M(I1,J):W(2,J)=M(I2,J):W(3,J)=M(I3,J):W(4,J)=M(I4,J) 1560 W(5,J)=25:NEXT J 1570 ' --- EVALUATE THE HAND --- 1580 C=0:GOSUB 2020:V(Z9,7)=P:IF P9

P9 THEN 1630 1620 J=J+1:I(J)=I 1630 NEXT I:IF J>I THEN 1660 1640 ' --- THIS IS THE SINGLE BEST HAND --- 1650 B9=I(1):RETURN 1660 ' --- NO SINGLE BEST HAND - FIND KEYS CARDS --- 1670 ' --- CHECK FOR FIVES --- 1680 C9=5:Z=1:GOTO 1790 1690 ' --- CHECK FOR EIGHTS --- 1700 C9=8:Z=2:GOTO 1790 1710 ' --- CHECK FOR SEVENS --- 1720 C9=7:Z=3:GOTO 1790 1730 ' --- CHECK FOR JACKS --- 1740 C9=11:Z=4:GOTO 1790 1750 ' --- CHECK FOR ACES --- 1760 C9=1:Z=5:GOTO 1790 1770 ' --- RANDOMLY CHOOSES BEST HAND --- 1780 B9=INT(J*RND(1))+1:B9=I(B9):RETURN 1790 ' --- BEST HAND HAS MOST OF CARDS "C9" --- 1800 P9=0:FOR I=1 TO 15:J(I)=0:NEXT I 1810 FOR I= 1 TO J:FOR K=1 TO 4:L=V(I(I),K):IF M(L,4)<>C9 THEN 1830 1820 J(I)=J(I)+1 1830 NEXT K 1840 IF P9P9 THEN 1880 1870 K=K+1:B9=I(I) 1880 NEXT I 1890 IF K<>1 THEN 1900 ELSE RETURN 1900 ON Z GOTO 1690,1710,1730,1750,1770 1910 ' --- GENERATES THE UP CARD --- 1920 U=INT(38*RND)+14:RW=20:CL=1:CC$=C$(D(U,1)):GOSUB 3010 1930 LOCATE 19,3:PRINT "UP" 1940 FOR I=1 TO 4:W(5,I)=D(U,I):NEXT I:T9=W(5,4) 1950 IF W(5,4)<>11 THEN RETURN 1960 IF M=0 THEN S2=S2+2:GOTO 1980 1970 S1=S1+2 1980 LOCATE 4,1:PRINT "2 PTS FOR JACK" 1990 IF S1>=121 THEN 560 2000 IF S2>=121 THEN 570 2010 RETURN 2020 ' --- SCORE THE FIVE CARD HAND --- 2030 REM 2040 REM - CHECK FOR JACK OF SAME SUIT AS UP CARD 2050 P=0:IF C=1 THEN 2100 2060 FOR I=1 TO 4:IF W(I,4)<>11 THEN 2090 2070 IF W(I,3)<>W(5,3) THEN 2090 2080 P=P+1:GOTO 2100 2090 NEXT I 2100 ' --- CHECK FOR A 4 OR 5 CARD FLUSH --- 2110 FOR I=1 TO 3:IF W(I,3)<>W(I+1,3) THEN 2190 2120 NEXT I 2130 ' --- CRIB SCORES ONLY FOR A 5 CARD FLUSH --- 2140 IF C<>0 THEN 2170 2150 P=P+4:IF W(4,3)<>W(5,3) THEN 2190 2160 P=P+1:GOTO 2190 2170 IF W(4,3)<>W(5,3) THEN 2190 2180 P=P+5 2190 ' --- CHECK 2 CARD SUM OF 15 --- 2200 FOR I=1 TO 4:FOR J=I+1 TO 5:IF W(I,2)+W(J,2)=15 THEN P=P+2 2210 NEXT J,I 2220 ' --- CHECK 3 CARD SUM OF 15 --- 2230 FOR I=1 TO 3:FOR J=I+1 TO 4:FOR K=J+1 TO 5 2240 IF W(I,2)+W(J,2)+W(K,2)=15 THEN P=P+2 2250 NEXT K,J,I 2260 ' --- CHECK FOR 4 CARD SUM OF 15 -- 2270 FOR I=1 TO 2:FOR J=I+1 TO 3:FOR K=J+1 TO 4:FOR L=K+1 TO 5 2280 IF W(I,2)+W(J,2)+W(K,2)+W(L,2)=15 THEN P=P+2 2290 NEXT L,K,J,I 2300 ' --- CHECK 5 CARD SUM OF 15 --- 2310 J=0:FOR I=1 TO 5:J=J+W(I,2):NEXT I:IF J=15 THEN P=P+2 2320 ' --- CHECK FOR PAIRS 2, 3 AND 4 OF A KIND --- 2330 FOR I=1 TO 13:J(I)=0:NEXT I 2340 FOR I=1 TO 5:J=W(I,4):J(J)=J(J)+1:NEXT I 2350 FOR I=1 TO 13:ON J(I)+1 GOTO 2390,2390,2380,2370,2360 2360 P=P+6 2370 P=P+4 2380 P=P+2 2390 NEXT I 2400 ' --- SORT HAND TO ASCENDING SEQ --- 2410 FOR I=1 TO 4:FOR J=I+1 TO 5:IF W(I,4)Q(I,J) THEN 2480 2470 NEXT J:P=P+Q(I,6):RETURN 2480 NEXT I 2490 ' --- CHECK FOR A 4 CARD RUN --- 2500 FOR L=1 TO 2:D=W(L,4)-R(1,1):FOR I=1 TO 4:FOR J=1 TO 4:R(I,J)=R(I,J)+D 2510 NEXT J,I:FOR I=1 TO 4:FOR K=1 TO 4:IF W(K+L-1,4)<>R(I,K) THEN 2530 2520 NEXT K:P=P+R(I,5):RETURN 2530 NEXT I,L 2540 ' --- CHECK FOR 3 CARD RUN --- 2550 FOR L=1 TO 3:D=W(L,4)-S(1):FOR I=1 TO 3:S(I)=S(I)+D:NEXT I 2560 FOR I=1 TO 3:IF W(L+I-1,4)<>S(I) THEN 2580 2570 NEXT I:P=P+S(4):RETURN 2580 NEXT L:RETURN 2590 ' --- SHUFFLE THE DECK --- 2600 FOR I=1 TO 52:I(I)=0:NEXT I:FOR I=1 TO 52 2610 J=INT(52*RND)+1:IF I(J)<>0 THEN 2610 2620 D(I,1)=J:D(I,3)=(J-1)\13+1:D(I,4)=J-D(I,3)*13+13 2630 Z=D(I,4):IF Z>10 THEN Z=10 2640 D(I,2)=Z:I(J)=1:NEXT I:RETURN 2650 ' --- CUT FOR DEAL --- 2660 COLOR 14:LOCATE 23,28:PRINT "PLEASE CUT FOR DEAL";:INPUT I 2670 IF I<1 OR I>52 THEN E=12:GOSUB 3280:GOTO 2660 2680 COLOR 11:I1=D(I,1):LOCATE 6,1:PRINT "YOUR CARD" 2690 CC$=C$(I1):RW=7:CL=2:GOSUB 3010 2700 J=INT(52*RND)+1:IF J=I THEN 2700 2710 COLOR 11:J1=D(J,1):LOCATE 13,2:PRINT "MY CARD" 2720 CC$=C$(J1):RW=14:CL=2:GOSUB 3010 2730 IF D(I,4)"" THEN IF ASC(C$)=27 THEN CHAIN "MENU" 3120 IF C$="6" AND RR<6 THEN RR=RR+1:GOTO 3160 3130 IF C$="4" AND RR>1 THEN RR=RR-1:GOTO 3160 3140 IF C$="5" THEN RETURN 3150 IF LEN(C$)=1 AND C$<>"6" AND C$<>"4" THEN E=17:GOSUB 3280 3160 LOCATE 9,RR*8+12 3170 COLOR 15:PRINT "þ":FOR J=1 TO 10:NEXT J:LOCATE 9,RR*8+12:COLOR 7:PRINT " ":GOTO 3100 3180 ' --- REMOVE DISCARDS --- 3190 LOCATE RW,CL:PRINT " " 3200 LOCATE ,CL:PRINT " " 3210 LOCATE ,CL:PRINT " " 3220 LOCATE ,CL:PRINT " " 3230 LOCATE ,CL:PRINT " ":RETURN 3240 ' --- PLAY HAND --- 3250 GOSUB 3100:IF RR=I4 OR RR=I3 THEN E=6:GOSUB 3280:C$="GO":RETURN 3260 C$=MID$(STR$(RR),2):RETURN 3270 A$=INKEY$:IF A$="" THEN 3270 ELSE CHAIN"MENU" 3280 LOCATE 1:PRINT:IF E=13 THEN FOR I=1 TO 1200:NEXT I 3290 COLOR 10:LOCATE 25:PRINT SPACE$(79);:LOCATE 25,20 3300 ON E GOTO 3310,3320,3330,3340,3350,3360,3370,3380,3390,3400,3410,3420,3480,3430,3440,3450,3460,3470 3310 PRINT " YOU DISCARDED THAT CARD ";:GOTO 3480 3320 PRINT " ALREADY PLAYED ";:GOTO 3480 3330 PRINT " THAT TOTALS MORE THAN 31 ";:GOTO 3480 3340 PRINT " YOU GET ONE POINT FOR LAST CARD ";:GOTO 3480 3350 PRINT " I GET ONE POINT FOR LAST CARD ";:GOTO 3480 3360 PRINT " - GO - ";:GOTO 3480 3370 PRINT " YOUR DISCARDS ";:GOTO 3480 3380 PRINT " PLAY THE HAND TO THE BOARD ";:GOTO 3480 3390 PRINT " INVALID PLAY ";:GOTO 3480 3400 PRINT " REALLY NOW ";:GOTO 3480 3410 PRINT " PRESS ANY KEY FOR THE NEXT DEAL ";:GOTO 3480 3420 PRINT " ENTER A NUMBER FROM 1 TO 52 ";:GOTO 3480 3430 PRINT USING " I WIN ### TO ###";S1,S2;:GOTO 3480 3440 PRINT USING " YOU WIN ### TO ###";S2,S1;:GOTO 3480 3450 PRINT " PLEASE PRESS THE NUM LOCK KEY ";:GOTO 3480 3460 PRINT "NUMERIC PAD: 4=LEFT 5=SELECT 6=RIGHT";:GOTO 3480 3470 PRINT "EXAMINE YOUR HAND, WHILE I LOOK AT MINE."; 3480 LOCATE 1:PRINT:COLOR 7:RETURN 3490 KEY OFF:WIDTH 80:LOCATE 6,1,0:COLOR 15 3500 PRINT " ÉÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍ»" 3510 PRINT " ÌÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎ͹" 3520 PRINT " º º º º" 3530 PRINT " º º ";:COLOR 11:PRINT " CRIBBAGE ";:COLOR 15:PRINT " º º" 3540 PRINT " º º º º" 3550 PRINT " º º COPYRIGHT (C) 1982 BY ENSIGN SOFTWARE º º" 3560 PRINT " º º º º" 3570 PRINT " º º";:COLOR 12:PRINT " 2312 N. COLE RD, SUITE E ";:COLOR 15:PRINT " º º" 3580 PRINT " º º";:COLOR 12:PRINT " BOISE, ID 83704 U.S.A. ";:COLOR 15:PRINT " º º" 3590 PRINT " º º";:COLOR 11:PRINT " DAY (208) 378-8086 EVE (208) 377-1938";:COLOR 15:PRINT " º º" 3600 PRINT " º º º º" 3610 PRINT " ÌÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎ͹" 3620 PRINT " ÈÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊͼ" 3625 DEF SEG=0:POKE &H417,PEEK(&H417) OR &H60 3630 SCREEN 0,0,0,0:RETURN 3640 DIM D(54,4),C$(52),I(52),W(5,4),M(6,4),Y(6,4),C(4,4) 3650 DIM D$(6),V(15,7),Q(11,6),R(4,5),S(4),J(52) 3660 FOR I=1 TO 15:FOR C=1 TO 7:READ V(I,C):NEXT C,I 3670 FOR I=1 TO 11:FOR C=1 TO 6:READ Q(I,C):NEXT C,I 3680 FOR I=1 TO 4:FOR C=1 TO 5:READ R(I,C):NEXT C,I 3690 FOR I=1 TO 4:READ S(I):NEXT I 3700 FOR I=1 TO 6:READ D$(I):NEXT I 3710 FOR I=1 TO 13:READ C$:C$(I)=C$+CHR$(6) 3720 C$(I+13)=C$+CHR$(4):C$(I+26)=C$+CHR$(3):C$(I+39)=C$+CHR$(5):NEXT I 3730 S1=0:S2=0:RETURN