0 REM CASINO BLACKJACK by Tim Lockwood. NEC 8201 Conversion by Gary Weber 1 REM Requires LINE and either LAPTOP or CHR100 2 GOTO6 4 Z$=INPUT$(1):RETURN 6 DIMDK(52,3):CL$=SPACE$(13) 8 TD=52:GOSUB52::GOSUB56:PRINT:PRINT: INPUT"Start with how many quarters";QS:QU=QS:CLS 10 IP=1:ID=1:DP=1:ST=0:IFQS=0THENMENU 12 IFQU=0THENFORX=1TO500:NEXT:GOSUB52 :GOSUB82:PRINT"Play Again";:GOSUB4 :IFZ$="y"ORZ$="Y" THEN8ELSEMENU 14 LOCATE25,6:PRINT QU;"quarters";:LINE(150,0)-(150,63):IFTD>=40THENGOSUB76 16 LOCATE30,4:PRINT "0=quit":LOCATE30,3:PRINT "Bet";:INPUTBE:LOCATE30,4:PRINT " ";:LOCATE30,3:PRINT " ";:LOCATE28,5:PRINT CL$;:IFBE>QUTHENBE=QU 18 IFBE=0THENGOSUB52:GOSUB82:PRINT"Play Again";:GOSUB4:IFZ$="y"ORZ$="Y"THEN8ELSEMENU 20 C$=SPACE$(25):LOCATE0,0:PRINT C$;:LOCATE0,1:PRINT C$;:LOCATE0,2:PRINT C$;:LOCATE0,3:PRINT C$;:LOCATE0,4:PRINT C$;:LOCATE0,5:PRINT C$;:LOCATE0,6:PRINT C$;:LOCATE0,7:PRINT C$;:LOCATE19,1:PRINT "dealer";:LOCATE19,5:PRINT "player";:GOSUB88:DP=0:UP=0:GOSUB88:DP=1:UP=1:GOSUB88:DP=0:GOSUB88 22 SP=0:GOSUB96:SP=1:GOSUB96:IF(DS=21)AND(PS=21)THEN124 24 IF(DS<21)AND(PS=21)THENBE=INT(BE*1.5+.5):GOTO120 26 IFDH(2,1)=1THENGOSUB146 28 IF(DS=21)AND(PS<21)THEN116 30 IF(PS>21)THEN116 32 IFST=0THENGOSUB128:SP=1:GOSUB96:GOTO30 34 DP=0:CC=1:CR=1:CD(1)=DH(1,1):CD(2)=DH(1,2):GOSUB64:SP=0:GOSUB96 36 FORX=1TO100:NEXT:IFDS<17THENGOSUB88:GOSUB96:GOTO36 38 IF(DS=17)AND(AC>0)AND((S2=0)OR(DS=S1))THENGOSUB88:GOSUB96:GOTO36 40 IF(AC>0)AND((S2=0)OR(DS=S1))AND(DS<=PS)AND(DS<21)THENGOSUB88:GOSUB96:GOTO36 42 IFDS>21THEN120 44 IFPS>DSTHEN120 46 IFDS>PSTHEN116 48 IFDS=PSTHEN124 50 END 52 REM 54 CLS:UP=0:CC=1:CR=1:CD(1)=13:CD(2)=156:GOSUB64:UP=1:CC=3:CR=3:CD(1)=1:CD(2)=157:GOSUB64:CC=37:CR=1:CD(1)=11:CD(2)=158:GOSUB64:CC=35:CR=3:CD(1)=1:CD(2)=159:GOSUB64:LOCATE12,4:PRINT "CASINO BLACKJACK":RETURN 56 REM 58 FORSU=1TO4:FORCA=1TO13:R=(SU-1)*13+CA:DK(R,1)=CA:DK(R,2)=SU+155:IFCA>9THENDK(R,3)=10ELSEDK(R,3)=CA 60 IFCA=1THENDK(R,3)=11 62 NEXTCA:NEXTSU:RETURN 64 REM 66 P=(CC-1)+40*(CR-1):LOCATEPMOD40,P\40:PRINT CHR$(240)CHR$(241)+CHR$(241)+CHR$(242):P=P+40:LOCATEPMOD40,P\40:PRINT CHR$(245);:IFUP=0THENPRINTCHR$(255)+CHR$(255);:GOTO70 68 IFCD(1)=10THENPRINT"10";ELSEPRINTMID$("A234567890JQK",CD(1),1)+CHR$(CD(2)); 70 PRINTCHR$(245);:P=P+40:LOCATEPMOD40,P\40:PRINT CHR$(245);:IFUP=0THENPRINTCHR$(255)+CHR$(255);:GOTO74 72 IFCD(1)=10THENPRINTCHR$(CD(2))+" ";ELSEPRINT" "; 74 PRINTCHR$(245);:P=P+40:LOCATEPMOD40,P\40:PRINT CHR$(246)+CHR$(241)+CHR$(241)+CHR$(247);:RETURN 76 REM 78 SEC=VAL(RIGHT$(TIME$,2)):LOCATE29,7:PRINT "shuffling";:FORI=1TOSEC:DU=ND(1):NEXT:FORI=1TO52:R=INT(RND(1)*52)+1:T(1)=DK(R,1):T(2)=DK(R,2):T(3)=DK(R,3):DK(R,1)=DK(I,1):DK(R,2)=DK(I,2):DK(R,3)=DK(I,3):DK(I,1)=T(1):DK(I,2)=T(2):DK(I,3)=T(3):NEXT:TD=1 80 LOCATE29,7:PRINT " ";:RETURN 82 REM 84 PRINT" Game Over.":IFQS>QUTHENPRINT" You lost ";QS-QU;ELSEPRINT"You won ";QU-QS 86 PRINT" quarters.";:RETURN 88 REM 90 CD(1)=DK(TD,1):CD(2)=DK(TD,2):CD(3)=DK(TD,3):TD=TD+1:IFDP=0THENCR=1:CC=(ID1)*4+1:DH(ID,1)=CD(1):DH(ID,2)=CD(2):DH(ID,3)=CD(3):ID=ID+1 92 IFDP=1THENCR=5:CC=(IP-1)*4+1:PH(IP,1)=CD(1):PH(IP,2)=CD(2):PH(IP,3)=CD(3):IP=IP+1 94 GOSUB64:RETURN 96 REM 98 SC=0:AC=0:S1=0:S2=0:IFSP=1THENPS=0ELSEDH=0 100 IFSP=1THENI=IP-1ELSEI=ID-1 102 FORJ=1TOI:IFSP=1THENSC=SC+PH(J,3):CT=PH(J,1)ELSESC=SC+DH(J,3):CT=DH(J,1) 104 IFCT=1THENAC=AC+1 106 NEXTJ:IFSC<=21THEN112 108 IFAC=0THEN112 110 SC=SC-(AC*11):S1=SC+11+(AC-1):S2=SC+AC:IFS1<=21THENSC=S1ELSESC=S2 112 IFSP=1THENPS=SCELSEDS=SC 114 RETURN 116 REM 118 GOSUB142:LOCATE28,5:PRINT "DEALER WINS";:QU=QU-BE:GOTO10 120 REM 122 GOSUB142:LOCATE28,5:PRINT "PLAYER WINS";:QU=QU+BE:GOTO10 124 REM 126 GOSUB142:LOCATE28,5:PRINT "TIE SCORE";:GOTO10 128 REM 130 LOCATE26,1:PRINT "h=hit";:LOCATE26,2:PRINT "s=stand";:IF(PS=10)OR(PS=11)THENLOCATE26,3:PRINT "d=double down"; 132 LOCATE26,4:PRINT "Your Move";:GOSUB4:IFZ$="h"ORZ$="H"THENDP=1:GOSUB88:GOTO140 134 IFZ$="s"ORZ$="S"THENST=1:GOTO140 136 IFZ$="d"ORZ$="D"THENST=1:DP=1:GOSUB88:BE=BE*2:GOTO140 138 GOTO132 140 LOCATE26,1:PRINT CL$;:LOCATE26,2:PRINT CL$;:LOCATE26,3:PRINT CL$;:LOCATE26,4:PRINT CL$;:RETURN 142 REM 144 CR=1:CC=1:UP=1:CD(1)=DH(1,1):CD(2)=DH(1,2):GOSUB64:RETURN 146 REM 148 IN=INT(.5*BE):IFIN>QU-BETHEN156 150 LOCATE26,4:PRINT "Insurance";:GOSUB4:IFZ$<>"y"ANDZ$<>"Y"THEN154 152 IFDH(1,3)=10THENBE=0ELSEQU=QU-IN:LOCATE25,6:PRINT QU;"quarters";:LINE(150,0)-(150,63) 154 LOCATE26,4:PRINT CL$; 156 RETURN