
1 RANDOMIZE
2 DIM P(5),D(5)
3 DEF SCHAR(X)=-158*(X=1)-159*(X=2)-150*(X=3)-151*(X=4)
5 DEF CCHAR(X)=(X+48)*((X>1)*(X<10))-59*(X=10)-106*(X=11)-113*(X=12)-107*(X=13)-97*(X=1)
100 CALL CLEAR
101 PRINT "MIKE WARD SOFTWARE PRESENTS"
110 PRINT "BLACKJACK...PLEASE WAIT"
120 CALL SCREEN(2)
130 FOR A=1 TO 8
140 CALL COLOR(A,16,1)
150 NEXT A
151 FOR A=9 TO 16
152 CALL COLOR(A,2,16)
153 NEXT A
155 CALL CHAR(148,"CC33CC33CC33CC33")
160 CALL CHAR(149,"8080808080808080")
170 CALL CHAR(150,"1038387CFEFE7C10")
180 CALL CHAR(151,"00103854FE541010")
190 CALL CHAR(157,"")
200 CALL CHAR(158,"6CFEFEFEFE7C3810")
210 CALL CHAR(159,"0010387CFE7C3810")
211 CALL CHAR(59,"00242A2A2A2A2A24")
212 CALL COLOR(16,7,16)
216 CALL COLOR(15,2,16)
217 CALL COLOR(3,2,16)
218 CALL COLOR(4,2,16)
220 CALL CLEAR
230 PRINT "         BLACKJACK 21"
240 PRINT
250 PRINT "THE OBJECT OF BLACKJACK IS  TO COME AS CLOSE TO 21 AS"
260 PRINT "POSSIBLE WITHOUT GOING OVER AND TO TRY TO GET A HIGHER  SCORE THAN THE DEALER."
265 PRINT "IF YOU GET 'BLACKJACK' (AN  ACE AND A PICTURE CARD [J,Q,K]), YOU WIN!"
270 PRINT "TO GET ANOTHER CARD, PRESS  'H' (HIT). TO END YOUR TURN PRESS 'S' (STAND)."
280 PRINT "THE TOP CARD IS THE DEALER'SCARD. YOU CAN ONLY SEE ONE  OF HIS CARDS."
290 PRINT "SCORING IS THE VALUE OF THE CARD WITH THE FOLLOWING     EXCEPTIONS:"
300 PRINT "  A-1 OR 11     J,Q,K-10"
315 PRINT "ALSO IF YOU GET 5 CARDS     WITHOUT BUSTING (GOING OVER)YOU AUTOMATICALLY WIN."
320 PRINT "PRESS ANY KEY TO BEGIN";
330 CALL KEY(0,K,S)
340 IF S=0 THEN 330
350 CALL CLEAR
351 PRINT "BY THE WAY, THE DECK YOU    WILL BE USING IS A COMBINA- TION OF MANY OLD DECKS WHICH"
352 PRINT "WERE LAYING AROUND THE HOUSESO YOU MIGHT SEE SOME ODD   COMBINATIONS (EX. 5 ACES)"
353 PRINT ::"PRESS ANY KEY.."
354 CALL KEY(0,K,S)
355 IF S=0 THEN 354
360 MONEY=1000
370 CALL CLEAR
375 IF MONEY=0 THEN 5000
380 PRINT "YOU HAVE $";MONEY
390 INPUT "HOW MUCH WILL YOU BET? ":BET
400 BET=INT(BET)
410 IF BET<=MONEY THEN 440
420 PRINT "NO I.O.U.'S!"
430 GOTO 380
440 MONEY=MONEY-BET
450 PRINT "I'LL HOLD THAT."
460 ODDS=INT(RND*3)+2
470 PRINT :"BEAT ME AND I'LL PAY";ODDS;":1"
480 PRINT :"PRESS ANY KEY..."
490 CALL KEY(0,K,S)
500 IF S=0 THEN 490
510 CALL CLEAR
515 PRINT "            PLAYER"
520 A$="DEALER"
530 R=1
540 C=13
550 GOSUB 1000
560 A$="$"&STR$(MONEY)&"  $"&STR$(BET)&" BET AT "&STR$(ODDS)&":1"
570 R=22
580 C=4
590 GOSUB 1000
600 R=3
610 C=4
620 V=INT(RND*13)+1
630 D(1)=V
635 S=INT(RND*4)+1
640 GOSUB 2000
650 FOR A=6 TO 10
660 CALL VCHAR(3,A,148,7)
670 NEXT A
680 D(2)=INT(RND*13)+1
690 R=11
700 C=4
710 V=INT(RND*13)+1
720 GOSUB 2000
730 P(1)=V
740 N=1
750 IF ((D(1)=1)+(D(2)=1))*(D(1)<>D(2))*((D(1)>10)+(D(2)>10))THEN 3000
760 CALL KEY(0,K,S)
770 IF S=0 THEN 760
780 IF K=83 THEN 850
790 IF K<>72 THEN 760
800 N=N+1
810 P(N)=INT(RND*13)+1
811 PN=N
815 R=11
816 C=2+2*N
820 V=P(N)
822 S=INT(RND*4)+1
826 GOSUB 2000
827 IF N=2 THEN 11000
830 T=0
832 FOR A=1 TO N
833 T=T-P(A)*(P(A)<11)-10*(P(A)>10)
834 NEXT A
836 IF T>21 THEN 4000
838 IF N=5 THEN 6000
840 GOTO 760
850 R=3
852 C=6
854 V=D(2)
856 S=INT(RND*4)+1
858 GOSUB 2000
860 N=2
861 T2=0
862 FOR A=1 TO N
864 T2=T2+-D(A)*(D(A)<11)-10*(D(A)>10)
866 NEXT A
868 IF T2>21 THEN 7000
869 IF T2>16 THEN 9000
870 N=N+1
872 IF N=6 THEN 8000
874 D(N)=INT(RND*13)+1
876 V=D(N)
878 R=3
880 C=2+2*N
882 S=INT(RND*4)+1
884 GOSUB 2000
886 GOTO 861
999 END
1000 FOR A=1 TO LEN(A$)
1010 CALL HCHAR(R,C+A-1,ASC(SEG$(A$,A,1)))
1020 NEXT A
1030 RETURN
2000 CALL VCHAR(R,C,149,7)
2010 FOR A=C+1 TO C+4
2020 CALL VCHAR(R,A,157,7)
2030 NEXT A
2040 CALL HCHAR(R+1,C+1,SCHAR(S))
2050 CALL HCHAR(R+6,C+3,SCHAR(S))
2060 CALL HCHAR(R,C+1,CCHAR(V))
2070 CALL HCHAR(R+5,C+3,CCHAR(V))
2080 RETURN
3000 R=3
3010 C=6
3020 V=D(2)
3030 S=INT(RND*4)+1
3040 GOSUB 2000
3050 A$="BLACKJACK, I WIN."
3060 R=6
3070 C=4
3080 GOSUB 1000
3090 CALL KEY(0,K,S)
3100 IF S=0 THEN 3090
3110 GOTO 370
4000 A$="YOU BUSTED. I WIN."
4010 R=14
4020 C=4
4030 GOSUB 1000
4040 GOTO 3090
5000 PRINT "THANK YOU FOR YOUR MONEY AND"
5010 PRINT "THANK YOU FOR PLAYING."
5020 CALL KEY(0,K,S)
5030 IF S=0 THEN 5020
5040 CALL CLEAR
5050 END
6000 A$="5 CARDS - YOU WIN!"
6010 R=14
6020 C=4
6030 GOSUB 1000
6040 MONEY=MONEY+BET*ODDS
6050 GOTO 3090
7000 A$="I BUSTED. YOU WIN."
7010 R=6
7020 C=4
7030 GOSUB 1000
7040 MONEY=MONEY+BET*ODDS
7060 GOTO 3090
8000 A$="FIVE CARDS. I WIN."
8010 R=6
8020 C=4
8030 GOSUB 1000
8040 GOTO 3090
9000 GOSUB 10000
9005 IF T2=T THEN 9500
9010 IF T2>T THEN 9700
9020 A$="YOU WIN."
9030 R=10
9040 C=4
9050 GOSUB 1000
9060 MONEY=MONEY+BET*ODDS
9070 GOTO 3090
9500 A$="A TIE."
9510 R=10
9520 C=4
9530 GOSUB 1000
9540 MONEY=MONEY+BET
9550 GOTO 3090
9700 A$="I WIN."
9710 R=10
9720 C=4
9730 GOSUB 1000
9740 GOTO 3090
10000 NA=0
10005 FOR A=1 TO PN
10010 IF P(A)<>1 THEN 10030
10020 NA=NA+1
10030 NEXT A
10040 FOR A=1 TO NA
10050 IF T+10>21 THEN 10070
10060 T=T+10
10070 NEXT A
10080 RETURN
11000 IF ((P(1)=1)+(P(2)=1))*((P(2)>10)+(P(1)>10))*(P(1)<>P(2))THEN 11500
11010 GOTO 830
11500 A$="BLACKJACK. YOU WIN."
11510 R=13
11520 C=4
11530 GOSUB 1000
11540 MONEY=MONEY+BET*ODDS
11550 GOTO 3090
