100 GOSUB 2050:RANDOMIZE(VAL(RIGHT$(TIME$,2))) 110 KEY 1,"C":KEY 3,"D":KEY 5,"/":KEY 7,"":KEY 9,"S" 120 KEY 2,"":KEY 4,"":KEY 6,"":KEY 8,"":KEY 10,"" 130 DEF FNA(Q)=Q+11*(Q>=22) 140 DEF FNT(Q)=(5-Q)*12+17 150 DIM P(15,12),Q(15),C(208),T(8),S(7),B(15),D(5) 160 DIM R(15),PS(15,12) 170 CD$=CHR$(6)+CHR$(3)+CHR$(5)+CHR$(4) 180 CD=0:GOTO 660 190 IF C>=CZ THEN 240 200 X=INT((C(C)/13-INT(C(C)/13))*13+.5)+1 210 XS=INT((C(C)/4-INT(C(C)/4))*4+.5)+1 220 C=C+1:IF J>2 THEN CD=CD+1 230 RETURN 240 GOSUB 1900:E=3:GOSUB 1920 250 CZ=INT(RND(1)*25)+175:C=1 260 FOR II=1 TO 208:CP=INT(RND*208)+1:CM=C(II):C(II)=C(CP):C(CP)=CM 270 NEXT II 280 GOTO 190 290 Q=0:FOR Q2=1 TO R(I):X=P(I,Q2):XS=PS(I,Q2):GOSUB 310:NEXT Q2 300 Q(I)= Q:RETURN 310 X1=X:IF X1>10 THEN X1=10 320 Q1=Q+X1:IF Q>=11 THEN 350 330 IF X>1 THEN Q=Q1-11*(Q1>=11):RETURN 340 Q=Q+11:RETURN 350 Q=Q1-(Q<=21 AND Q1>21):IF Q>=33 THEN Q=-1 360 RETURN 370 RR$=MID$(D$,X,1):TT$=MID$(CD$,XS,1):GOSUB 1820:RETURN 380 H1=5:GOSUB 520:H1=3:ON H GOTO 430, 410 390 GOSUB 190:B(I)=B(I)*2:GOSUB 370:GOSUB 440:IF Q>0 THEN GOSUB 510 400 RETURN 410 GOSUB 510:RETURN 420 RETURN 430 GOSUB 190:GOSUB 370:GOSUB 440:IF Q<0 THEN RETURN ELSE GOTO 380 440 R(I)=R(I)+1:P(I,R(I))=X:PS(I,R(I))=XS:Q=Q(I):GOSUB 310:Q(I)=Q 450 IF Q>=0 THEN 500 460 IF I<>N+1 THEN 480 470 E=4:GOSUB 1920:RETURN 480 LOCATE 16-(I>D1),FNT(I+D1*(I>D1)):COLOR 12:PRINT "BUST" 490 R(I)=0 500 RETURN 510 LOCATE 16-(I>D1),FNT(I+D1*(I>D1)):COLOR 11:PRINT "SUM";FNA(Q(I)):RETURN 520 H$=INKEY$:IF H$="" THEN 520 530 IF H$>"Z" THEN H$=CHR$(ASC(H$)-32) 540 IF ASC(H$)=27 THEN CHAIN "MENU" 550 COLOR 11:LOCATE 15,FNT(I+D1*(I>D1)) 560 IF H$="C" THEN H=1:PRINT "CARD ":RETURN 570 IF H$="S" THEN H=2:PRINT "STAND ":RETURN 580 IF H$="D" THEN H=3:PRINT "DOUBLE":RETURN 590 IF H$="/" THEN H=4:PRINT "SPLIT ":RETURN 600 GOSUB 1900 610 COLOR 11:PRINT "ENTER:" 620 COLOR 10:PRINT "'F1' C - CARD" 630 PRINT "'F3' D - DOUBLE" 640 PRINT "'F5' / - SPLIT" 650 PRINT "'F9' S - STAND":GOTO 520 660 D$="A234567890JQK" 670 I$="C,S,D,/," 680 FOR II=1 TO 208:C(II)=II:NEXT II 690 CZ=209:C=209:E=1:GOSUB 1920:GOSUB 1790 700 CLS:IF H$<>"Y" THEN 910 710 COLOR 11:PRINT "This is the game of 21. You may have up to 5 players in each game." 720 PRINT "On each deal, bets will be asked for. You should enter a bet in" 730 PRINT "multiples of $5 and not exceeding $200.":PRINT 740 PRINT "The cards will be dealt and each player plays his hand in turn." 750 PRINT 760 COLOR 10:PRINT "Your responces may be:" 770 PRINT " 'F1' OR 'C' Asking for a card" 780 PRINT " 'F3' OR 'D' Doubling {Only one card is dealt}" 790 PRINT " 'F5' OR '/' Splitting {Only pairs and face cards}" 800 PRINT " 'F9' OR 'S' Standing" 810 PRINT 820 COLOR 11:PRINT "To collect for a Blackjack the initial response should be Standing." 830 PRINT 840 PRINT "If the Dealer's card is an Ace, Insurance will be asked for and up" 850 PRINT "to 50% of each player's bet may be lodged as Insurance." 860 PRINT 870 PRINT "After splitting the other 3 responses are permitted on the two hands." 880 PRINT "The initial bet will be automatically doubled.":PRINT 890 PRINT "TO END THE GAME AND EXIT TO THE MENU, TYPE 'END' INSTEAD OF A BET." 900 E=6:GOSUB 1920:GOSUB 1790:CLS 910 E=2:GOSUB 1920:GOSUB 1790 920 N=VAL(H$):IF N<1 OR N>5 THEN 910 930 FOR I=1 TO 8:T(I)=0:NEXT 940 D1=N+1 950 FOR I=1 TO 5:Z(I)=0:S(I)=0:NEXT 960 FOR I=1 TO 11:B(I)=0:Q(I)=0:R(I)=0:NEXT :GOSUB 1900 970 FOR I=1 TO N 980 COLOR 11:LOCATE 18+I,1:PRINT USING "Bet for _##";I;:INPUT H$:Z(I)=VAL(H$) 990 IF H$="END" OR H$="end" THEN CHAIN "menu" 1000 IF Z(I)=0 THEN Z(I)=D(I):LOCATE 18+I,12:PRINT Z(I) 1010 IF Z(I)<5 OR Z(I)>200 OR Z(I)/5<>INT(Z(I)/5) THEN E=10:GOSUB 1920:GOTO 980 1020 D(I)=Z(I):B(I)=Z(I):NEXT I:CLS 1030 FOR I=1 TO N 1040 COLOR 10:LOCATE 18,FNT(I):PRINT "BET";I 1050 COLOR 14:LOCATE 19,FNT(I):PRINT "$";B(I) 1060 NEXT I 1070 FOR J=1 TO 2:CD=J:FOR I=1 TO D1:GOSUB 190:WS=FNT(I)-12:P(I,J)=X 1080 PS(I,J)=XS:IF J=1 OR I<=N THEN GOSUB 370 1090 NEXT I,J:LOCATE 1,FNT(N+1)-2:COLOR 10:PRINT "DEALER:" 1100 FOR I=1 TO D1:R(I)=2:NEXT :IF P(D1,1)>1 THEN 1180 1110 GOSUB 1900:PRINT "ANY INSURANCE? ";:GOSUB 1790:IF H$<>"Y" THEN 1180 1120 GOSUB 1900:PRINT "INSURANCE BET" 1130 FOR I=1 TO N 1140 LOCATE 18+I,1:PRINT USING "Insurance #";I;:INPUT H$:Z(I)=VAL(H$) 1150 IF Z(I)<0 OR Z(I)>B(I)/2 THEN E=9:GOSUB 1920:GOTO 1140 1160 NEXT I 1170 FOR I=1 TO N:S(I)=Z(I)*(3*(-(P(D1,2)>=10))-1):NEXT I 1180 FOR I=1 TO N:CD=J-1 1190 E=5:GOSUB 1920:COLOR 15:PRINT I; 1200 LOCATE 18,FNT(I+D1*(I>D1)):COLOR 26:PRINT "BET";I:COLOR 7 1210 WS=FNT(I)-12:FL=1:H1=7:GOSUB 520 1220 LOCATE 18,FNT(I+D1*(I>D1)):COLOR 10:PRINT "BET";I:ON H GOTO 1350,1230,1290,1360 1230 GOSUB 290 1240 IF Q(I)<>21 THEN 1280 1250 LOCATE 16-(I>D1),FNT(I+D1*(I>D1)) 1260 COLOR 15:PRINT "BLACKJACK" 1270 COLOR 7:S(I)=S(I)+1.5*B(I):B(I)=0:GOTO 1540 1280 GOSUB 510:GOTO 1540 1290 GOSUB 290 1300 IF FNA(Q(I))>8 AND FNA(Q(I))<12 THEN 1340 1310 LOCATE 18,1:PRINT "DOUBLE ONLY ON" 1320 PRINT "9, 10 or 11" 1330 GOTO 1190 1340 GOSUB 390:GOTO 1540 1350 GOSUB 290:H1=3:GOSUB 430:GOTO 1540 1360 IF P(I,1)=P(I,2) THEN 1390 1365 IF P(I,1)>10 AND P(I,2)>10 THEN 1390 1370 GOSUB 1900:LOCATE 18,1:PRINT "SPLITTING" 1380 PRINT "NOT ALLOWED.":GOTO 1190 1390 WS=(5-I)*12+2 1400 RR$=MID$(D$,P(I,2),1) 1410 TT$=MID$(CD$,PS(I,2),1) 1420 CD=1:GOSUB 1820:I1=I+D1:R(I1)=2 1430 P(I1,1)=P(I,2):PS(I1,1)=P(I,2) 1440 B(I1)=B(I):GOSUB 190:WS=(5-I)*12+5 1450 GOSUB 370:P(I,2)=X:PS(I,2)=XS:GOSUB 290:GOSUB 190 1460 CD=2:WS=(6-I1+N)*12+2:I=I1::GOSUB 370 1470 P(I,2)=X:PS(I,2)=XS:GOSUB 290:I=I1-D1 1480 GOSUB 1900:LOCATE 18,1:PRINT "Hand "1-(I>D1); 1490 IF ID1 THEN WS=(6-I1+N)*12+2 1510 CD=2:IF P(I,1)=1 THEN H$="S":GOSUB 550 1520 GOSUB 380:I=I+D1:IF I=I1 THEN 1480 1530 I=I1-D1 1540 NEXT I 1550 FL=1:GOSUB 290:FOR I=1 TO N 1560 IF R(I)>0 OR R(I+D1)>0 THEN 1590 1570 NEXT I 1580 X=P(D1,2):XS=PS(D1,2):CD=2:WS=FNT(N+1)-12:GOSUB 370:GOTO 1640 1590 WS=FNT(N+1)-12:CD=2:I=D1:GOSUB 370:IF FNA(Q(I))>16 THEN 1620 1600 GOSUB 190:GOSUB 370:GOSUB 440:IF Q>0 AND FNA(Q)<17 THEN 1600 1610 Q(I)=Q-(Q<0)/2:IF Q<0 THEN 1640 1620 IF Q=21 AND R(D1)=2 THEN E=7:GOSUB 1920:GOTO 1640 1630 E=8:GOSUB 1920:COLOR 15:PRINT FNA(Q);:LOCATE 1:COLOR 7:PRINT 1640 Z$="LOSES PUSHES WINS " 1650 SM=0:FOR I=1 TO N 1660 GOSUB 1900 1670 S(I)=S(I)+B(I)*SGN(FNA(Q(I))-FNA(Q(D1))) 1680 S(I)=S(I)+B(I+D1)*SGN(FNA(Q(I+D1))-FNA(Q(D1))) 1690 IF S(I)<0 THEN COLOR 15 1700 IF S(I)>0 THEN COLOR 31 1710 LOCATE 20,FNT(I):COLOR 14:PRINT MID$(Z$,SGN(S(I))*6+7,6):COLOR 7 1720 IF S(I)=0 THEN PRINT TAB(FNT(I))" ":GOTO 1740 1730 PRINT TAB(FNT(I))"$"ABS(S(I)) 1740 T(I)=T(I)+S(I):SM=SM+T(I) 1750 COLOR 13:PRINT TAB(FNT(I))"PROFIT" 1760 PRINT TAB(FNT(I))"$";:IF T(I)<0 THEN COLOR 12 ELSE COLOR 13 1765 PRINT T(I); 1770 NEXT I:LOCATE 1,1:PRINT "BANK $";:IF -SM<0 THEN COLOR 12 ELSE COLOR 13 1775 PRINT -SM; 1780 GOTO 950 1790 H$=INKEY$:IF H$="" THEN 1790 1800 IF H$>"Z" THEN H$=CHR$(ASC(H$)-32) 1810 PRINT H$;:LOCATE 1:RETURN 1820 CL=WS+CD*2+8:LOCATE 2*CD,CL 1830 COLOR 0,7:PRINT "ฺฤฤฤฤฤฟ" 1840 LOCATE ,CL:PRINT "ณ"; 1845 IF TT$=CHR$(3) OR TT$=CHR$(4) THEN COLOR 12,7 1846 IF RR$="0" THEN PRINT TT$;:COLOR 0,7:PRINT " 10ณ":GOTO 1860 1850 PRINT TT$;:COLOR 0,7:PRINT " "RR$"ณ" 1860 COLOR 0,7:LOCATE ,CL:PRINT "ณ ณ" 1870 LOCATE ,CL:PRINT "ณ";:IF RR$="0" THEN PRINT "10 ";:GOTO 1875 1873 PRINT RR$;" "; 1875 IF TT$=CHR$(3) OR TT$=CHR$(4) THEN COLOR 12,7 1880 PRINT TT$;:COLOR 0,7:PRINT "ณ" 1890 LOCATE ,CL:PRINT "ภฤฤฤฤฤู":COLOR ,0:RETURN 1900 LOCATE 18,1:CL=16 1910 FOR K=1 TO 6:PRINT SPACE$(CL):NEXT K:LOCATE 18,1:RETURN 1920 COLOR 15:LOCATE 25,1:PRINT SPACE$(79);:LOCATE 25,20 1930 ON E GOTO 1940,1950,1960,1970,1980,1990,2000,2010,2020,2030 1940 COLOR 10:PRINT " DO YOU WANT INSTRUCTIONS ? ";:GOTO 2040 1950 COLOR 10:PRINT " NUMBER OF PLAYERS ? ";:GOTO 2040 1960 COLOR 14:PRINT " SHUFFLING CARDS";:GOTO 2040 1970 PRINT " THE DEALER HAS BUSTED";:GOTO 2040 1980 PRINT " AND WHAT WILL YOU HAVE, PLAYER #";:GOTO 2040 1990 PRINT " PRESS ANY KEY WHEN READY ";:GOTO 2040 2000 PRINT " ! ! ! DEALER HAS BLACKJACK ! ! !";:GOTO 2040 2010 PRINT " TOTAL FOR DEALER IS";:GOTO 2040 2020 PRINT " INSURANCE LIMIT IS ONE HALF OF BET";:GOTO 2040 2030 PRINT " HOUSE BET RULES: $5 TO $200 BY $5s";:GOTO 2040 2040 COLOR 7:RETURN 2050 KEY OFF:WIDTH 80:SCREEN 0,0,1,1:CLS:SCREEN 0,0,0,1:CLS:LOCATE 6,1,0:COLOR 15 2060 PRINT " ษอหออออออออออออออออออออออออออออออออออออออออออออหอป" 2070 PRINT " ฬอฮออออออออออออออออออออออออออออออออออออออออออออฮอน" 2080 PRINT " บ บ บ บ" 2090 PRINT " บ บ ";:COLOR 11:PRINT " BLACKJACK ";:COLOR 15:PRINT " บ บ" 2100 PRINT " บ บ บ บ" 2110 PRINT " บ บ COPYRIGHT (C) 1982 BY ENSIGN SOFTWARE บ บ" 2120 PRINT " บ บ บ บ" 2130 PRINT " บ บ";:COLOR 12:PRINT" 2312 N. COLE RD, SUITE E ";:COLOR 15:PRINT " บ บ" 2140 PRINT " บ บ ";:COLOR 12:PRINT " BOISE, ID 83704 U.S.A. ";:COLOR 15:PRINT " บ บ" 2150 PRINT " บ บ";:COLOR 11:PRINT " DAY (208) 378-8086 EVE (208) 377-1938";:COLOR 15:PRINT " บ บ" 2160 PRINT " บ บ บ บ" 2170 PRINT " ฬอฮออออออออออออออออออออออออออออออออออออออออออออฮอน" 2180 PRINT " ศอสออออออออออออออออออออออออออออออออออออออออออออสอผ" 2185 DEF SEG=0:POKE &H417,PEEK(&H417) OR &H60 2190 SCREEN 0,0,0,0:RETURN