Adapted by Werner Kaelin from a program written by Gwyn Dewey, published in 51 Game Programs for the Timex Sinclair 1000 and 1500.
Content
Source Code
1000 GO TO 3350
1010 LET D=((INT (RND*F))*2)+1
1020 LET F=F-1: PAPER 7: LET A=2*(INT (VAL Z$(D+1)/2))
1030 FOR N=1 TO 6: LET AA=A
1035 IF (N=3 OR N=4) AND Z$(D)>"J" THEN LET AA=2-A
1040 PRINT AT Z+N,H-1;"\e";: PRINT INK AA;A$((CODE Z$(D)-64)+(VAL Z$(D+1)*13),N);: PRINT "\f"
1050 NEXT N
1055 BEEP .005,5
1060 LET E$(I)=Z$(D)
1070 LET Z$=Z$( TO D-1)+Z$(D+2 TO )
1080 PAPER 4: INK 0: RETURN
1090 IF E$(I)>="B" AND E$(I)<="I" THEN LET T=T+CODE E$(I)-64
1100 IF E$(I)>"I" THEN LET T=T+10
1110 IF E$(I)="K" THEN LET BJ=1
1120 IF E$(I)="A" THEN LET T=T+11: LET G=G+1
1130 RETURN
1150 IF E$(I)>="B" AND E$(I)<="I" THEN LET U=U+CODE E$(I)-64
1160 IF E$(I)>"I" THEN LET U=U+10
1170 IF E$(I)="K" THEN LET BJ=1
1180 IF E$(I)="A" THEN LET U=U+11: LET G=G+1
1190 RETURN
1210 OVER 1: INK 0
1220 FOR Z=3 TO 13 STEP 10
1230 FOR H=3 TO 23 STEP 5
1240 PRINT PAPER 4;AT Z-1,H;"_____";AT Z,H;"\e \f";AT Z+1,H;"\e \f";AT Z+2,H;"\e \f";AT Z+3,H;"\e \f";AT Z+4,H;"\e \f";AT Z+5,H;"\e \f";AT Z+6,H;"\g\g\g\g\g"
1250 PRINT PAPER 6;AT Z,H;" ▄ ▄ ";AT Z+1,H;" ▚▀▞ ";AT Z+2,H;" ▌▛▟ ";AT Z+3,H;" ▛▟▐ ";AT Z+4,H;" ▞▄▚ ";AT Z+5,H;" ▀ ▀ ": REM Werner Kaelin 1984/85
1260 BEEP .02,H: NEXT H: NEXT Z: OVER 0
1270 LET Z=12
1280 LET G=0
1290 LET T=0
1300 LET BJ=0
1310 IF BET<=0 THEN GO TO 2250
1320 LET H=-1
1330 FOR I=1 TO 2
1340 LET H=H+5
1350 IF I=2 THEN GO SUB 1950
1360 GO SUB 1010
1370 NEXT I
1380 FOR I=1 TO 2
1390 GO SUB 1090
1400 NEXT I
1410 IF T=22 THEN LET G=G-1: LET T=T-10
1430 IF G=1 AND BJ=1 THEN GO TO 2160
1440 IF T=21 THEN GO TO 2190
1450 LET V=2
1460 PAPER 4: INK 0: PRINT AT J,K;"<H>IT ME OR <S>TAY?";AT 11,19;"TOTAL ";T;" "
1470 PAUSE 0
1475 IF INKEY$="S" OR INKEY$="s" THEN GO TO 1620
1480 IF INKEY$="H" OR INKEY$="h" OR INKEY$=" " THEN GO TO 1500
1500 PRINT AT J,1;C$
1510 LET H=H+5: GO SUB 1010
1530 GO SUB 1090
1540 IF T>21 AND G=0 THEN GO TO 2210
1550 IF T>21 AND G>0 THEN LET G=G-1
1560 IF T>21 THEN LET T=T-10
1570 LET V=V+1
1580 IF V=5 THEN GO TO 2130
1590 IF T=21 THEN GO TO 2190
1600 LET I=I+1
1610 GO TO 1460
1620 PRINT AT 11,19;" STAY ";T
1630 PRINT AT J,K;"COMPUTER DRAWS "
1640 LET U=0
1650 LET G=0
1660 LET BJ=0
1670 LET Z=2
1680 LET H=-1
1690 FOR I=1 TO 2
1700 LET H=H+5
1710 GO SUB 1010
1720 NEXT I
1730 FOR I=1 TO 2
1740 GO SUB 1150
1750 NEXT I
1760 IF U=22 THEN LET G=G-1: LET U=U-10
1780 IF G=1 AND BJ=1 THEN GO TO 2070
1790 LET C=2
1800 IF U=21 THEN GO TO 2030
1810 IF U>=T AND V<5 THEN GO TO 2230
1820 PRINT AT 11,K;"TOTAL ";U
1825 PAUSE 50
1830 LET H=H+5
1840 LET C=C+1
1850 GO SUB 1010
1860 GO SUB 1150
1865 PRINT AT 10,1;C$
1870 IF U>21 AND G<=0 THEN GO TO 2100
1880 IF C=5 AND U<=21 THEN GO TO 2000
1890 IF V=5 AND C=5 THEN GO TO 2030
1900 LET B=U
1910 IF U>21 AND G>0 THEN LET U=U-10
1920 IF B>21 AND G>0 THEN LET G=G-1
1930 LET I=I+1
1940 GO TO 1800
1955 FOR N=0 TO 20: BEEP .03,N: NEXT N
1960 PAPER 4: INK 0: INPUT TAB 6; FLASH 1;" PLACE YOUR BET ";G$: FLASH 0: LET GO=CODE G$
1965 IF GO<48 OR GO>57 THEN GO TO 1955
1970 LET GOBET=VAL G$: IF GOBET<1 OR GOBET>BET THEN GO TO 1955
1975 PRINT AT J,1;C$;AT 11,1;C$
1980 PAPER 1: INK 6: PRINT AT 20,24-LEN G$; BRIGHT 1;" BET $";GOBET;" "
1990 PAPER 4: INK 0: RETURN
2000 PRINT AT J,K;"OOH A FIVE CARDER";AT 11,1;C$;AT 11,16;"I WIN DOUBLE"
2010 LET BET=BET-(GOBET*2)
2020 GO TO 2290
2030 PRINT AT J,K;"TWENTY-ONE "
2040 PRINT AT 11,K;" I WIN ... "
2050 LET BET=BET-GOBET
2060 GO TO 2290
2070 PRINT AT J,K;"OH DEAR BLACKJACK";AT 11,1;C$;AT 11,16;"I WIN TREBLE"
2080 LET BET=BET-(GOBET*3)
2090 GO TO 2290
2100 PRINT AT J,K;"CURSES...";AT 11,K;" I BUST >>> YOU WIN"
2110 LET BET=BET+GOBET
2120 GO TO 2290
2130 PRINT AT J,K;"CURSES...";AT 11,K;"FIVE CARDER WINS DOUBLE"
2140 LET BET=BET+(GOBET*2)
2150 GO TO 2290
2160 PRINT AT J,K;"CURSES...";AT 11,K;"BLACKJACK WINS TREBLE "
2170 LET BET=BET+(GOBET*3)
2180 GO TO 2290
2190 PRINT AT J,K;"CURSES...";AT 11,K;"TWENTY-ONE >>> YOU WIN "
2200 GO TO 2110
2210 PRINT AT J,K;"YOU BUST"
2220 GO TO 2040
2230 PRINT AT J,K;"I BEAT YOU ";U;" TO ";T;" "
2240 GO TO 2040
2250 PAPER 4: INK 0: PRINT AT J,K;"YOUR POCKETS ARE EMPTY.";AT 11,K;"MY GUARD THREW YOU OUT.": FLASH 1: PRINT AT 20,1;" TRY AGAIN ??? HIT ANY LETTER ": FLASH 0
2260 LET BET=100
2270 LET F=0
2280 PAUSE 0
2282 PRINT AT 20,1;C$;AT J,3;"ALLRIGHT, HERE WE GO AGAIN";AT 11,1;C$
2290 FOR N=-20 TO 20: BEEP .02,ABS N+15: NEXT N: PAUSE 100
2310 IF F<9 THEN LET F=52: LET Z$="A0B0C0D0E0F0G0H0I0J0K0L0M0A1B1C1D1E1F1G1H1I1J1K1L1M1A2B2C2D2E2F2G2H2I2J2K2L2M2A3B3C3D3E3F3G3H3I3J3K3L3M3"
2320 LET J=10: INK 0: PAPER 4: FOR I=1 TO J: PRINT AT I,1;C$;AT 21-I,1;C$;: NEXT I
2330 PRINT AT J,11;"BLACKJACK";AT 11,11;("NEW DECK" AND F=52)
2340 PLOT 8,16: DRAW 0,151: DRAW 239,0: DRAW 0,-151
2360 PAPER 1: INK 6: PRINT BRIGHT 1; OVER 1;AT 20,1;C$;AT 20,1;" YOU OWN $";BET
2390 GO TO 1210
2480 LET J=13*(I-1)
2490 LET F$=("\a" AND I=1)+("\b" AND I=2)+("\c" AND I=3)+("\d" AND I=4)
2500 LET G$=" "+F$+" "
2510 LET H$=F$+" "+F$
2520 LET I$=F$+F$+F$
2530 LET J$=" "
2540 LET A$(J+1,1)="A "
2550 LET A$(J+1,2)=J$
2560 LET A$(J+1,3)=G$
2570 LET A$(J+1,4)=J$
2580 LET A$(J+1,5)=J$
2590 LET A$(J+1,6)=" A"
2600 LET A$(J+2,1)="2 "
2610 LET A$(J+2,2)=G$
2620 LET A$(J+2,3)=J$
2630 LET A$(J+2,4)=J$
2640 LET A$(J+2,5)=G$
2650 LET A$(J+2,6)=" 2"
2660 LET A$(J+3,1)="3 "
2670 LET A$(J+3,2)=G$
2680 LET A$(J+3,3)=G$
2690 LET A$(J+3,4)=J$
2700 LET A$(J+3,5)=G$
2710 LET A$(J+3,6)=" 3"
2720 LET A$(J+4,1)="4 "
2730 LET A$(J+4,2)=H$
2740 LET A$(J+4,3)=J$
2750 LET A$(J+4,4)=J$
2760 LET A$(J+4,5)=H$
2770 LET A$(J+4,6)=" 4"
2780 LET A$(J+5,1)="5 "
2790 LET A$(J+5,2)=H$
2800 LET A$(J+5,3)=G$
2810 LET A$(J+5,4)=J$
2820 LET A$(J+5,5)=H$
2830 LET A$(J+5,6)=" 5"
2840 LET A$(J+6,1)="6 "
2850 LET A$(J+6,2)=H$
2860 LET A$(J+6,3)=H$
2870 LET A$(J+6,4)=J$
2880 LET A$(J+6,5)=H$
2890 LET A$(J+6,6)=" 6"
2900 LET A$(J+7,1)="7 "
2910 LET A$(J+7,2)=H$
2920 LET A$(J+7,3)=H$
2930 LET A$(J+7,4)=G$
2940 LET A$(J+7,5)=H$
2950 LET A$(J+7,6)=" 7"
2960 LET A$(J+8,1)="8 "
2970 LET A$(J+8,2)=H$
2980 LET A$(J+8,3)=H$
2990 LET A$(J+8,4)=H$
3000 LET A$(J+8,5)=H$
3010 LET A$(J+8,6)=" 8"
3020 LET A$(J+9,1)="9 "
3030 LET A$(J+9,2)=H$
3040 LET A$(J+9,3)=H$
3050 LET A$(J+9,4)=I$
3060 LET A$(J+9,5)=H$
3070 LET A$(J+9,6)=" 9"
3080 LET A$(J+10,1)="10 "
3090 LET A$(J+10,2)=H$
3100 LET A$(J+10,3)=I$
3110 LET A$(J+10,4)=I$
3120 LET A$(J+10,5)=H$
3130 LET A$(J+10,6)=" 10"
3140 LET A$(J+11,1)="J "
3150 LET A$(J+11,2)=F$+"▝█"
3160 LET A$(J+11,3)="▗▄█"
3170 LET A$(J+11,4)="█▀▘"
3180 LET A$(J+11,5)="█▖"+F$
3190 LET A$(J+11,6)=" J"
3200 LET A$(J+12,1)="Q "
3210 LET A$(J+12,2)=F$+"▝█"
3220 LET A$(J+12,3)="▜▄▛"
3230 LET A$(J+12,4)="▟▀▙"
3240 LET A$(J+12,5)="█▖"+F$
3250 LET A$(J+12,6)=" Q"
3260 LET A$(J+13,1)="K "
3270 LET A$(J+13,2)=F$+"▐▛"
3280 LET A$(J+13,3)="█▛ "
3290 LET A$(J+13,4)=" ▟█"
3300 LET A$(J+13,5)="▟▌"+F$
3310 LET A$(J+13,6)=" K"
3330 RETURN
3350 LET Z=0: LET N=Z: LET H=Z
3360 LET I=Z: LET F=Z
3370 LET J=10: LET K=4
3380 DIM E$(6): LET BET=100
3390 LET C$="\e \f"
3400 OVER 0: BRIGHT 0: BORDER 0: PAPER 4: INK 0: CLS
3460 PLOT 8,8: DRAW 239,0: DRAW 0,159: DRAW -239,0: DRAW 0,-159
3470 PLOT 39,47: DRAW 177,0: DRAW 0,89: DRAW -177,0: DRAW 0,-89
3480 LET H=5: FOR I=15 TO H STEP -1: PRINT AT I,H; BRIGHT 1; PAPER 1;" ": BEEP .01,20-I: NEXT I
3490 PRINT AT 3,4;"\f"; BRIGHT 1; INK 6; PAPER 2;" WELCOME TO BLACKJACK ";
3500 PRINT PAPER 4;"\e"; BRIGHT 1; INK 7; PAPER 1;AT 6,H;" programmed by";AT 7,H;" Gwyn Dewey in";AT 9,H;" 51 GAME PROGRAMS";AT 10,H;" FOR THE T/S 1000";AT 12,H;" adapted by";AT 13,H;" Werner Kaelin 1984";AT 14,H;" Potomac MD 20854"
3510 LET AA=1
3520 IF AA THEN DIM A$(52,6,3): GO SUB 4000
3530 GO SUB 5000: LET B$="HIT ANY KEY TO START "
3540 PRINT AT 18,4; PAPER 4; INK 0;"\f"; PAPER 2; INK 6; BRIGHT 1;" ";B$;: PRINT PAPER 4;"\e"
3550 BEEP .06,CODE B$(2)-60
3560 LET B$=B$(2 TO )+B$(1)
3570 IF INKEY$="" THEN GO TO 3540
3580 BORDER 2: BRIGHT 0
3590 INPUT "": RANDOMIZE : GO TO 2310
4000 RESTORE : FOR A=USR "A" TO USR "G"+7
4010 READ UG: POKE A,UG: NEXT A
4020 RETURN
4100 DATA 0,8,28,62,127,127,42,8
4105 DATA 0,28,28,107,127,107,8,8
4110 DATA 0,8,28,62,127,62,28,8
4120 DATA 0,54,127,127,127,62,28,8
4140 DATA 128,128,128,128,128,128,128,128
4150 DATA 1,1,1,1,1,1,1,1
4160 DATA 255,0,0,0,0,0,0,0
4190 RETURN
4200 REM A B C D E F G H I J K L
4210 REM \a \b \c \d \e \f \g \h \i \j \k \l
5000 PAPER 7
5010 FOR I=30 TO 0 STEP -2
5020 PRINT AT 0,I;" ";: GO SUB 5200
5030 NEXT I
5035 IF AA THEN LET I=1: GO SUB 2480
5040 FOR I=1 TO 20 STEP 2
5050 PRINT AT I,0;: GO SUB 5200: PRINT AT I+1,0;" "
5060 NEXT I
5065 IF AA THEN LET I=2: GO SUB 2480
5070 FOR I=0 TO 31 STEP 2
5080 PRINT AT 21,I;: GO SUB 5200: PRINT " "
5090 NEXT I
5095 IF AA THEN LET I=3: GO SUB 2480
5100 FOR I=21 TO 1 STEP -2
5110 PRINT AT I,31;" ";AT I-1,31;: GO SUB 5200
5120 NEXT I
5130 IF AA THEN LET I=4: GO SUB 2480
5140 RETURN
5200 LET H=INT (4*RND): INK 2*INT (H/2): PRINT CHR$ (144+H);
5210 BEEP .04,12+4*H: RETURN
9900 CLEAR : SAVE "BJ" LINE 3350
9910 PRINT AT 10,2;"Rewind tape and press ENTER"''TAB 9;"to VERIFY 'BJ'": PAUSE 0: VERIFY ""
9920 GO TO 3350