Listing of file='PONTON.BAS;01' on disk='vmedia/dukedom-sector.ccvf'
0 REM ***************** PONTON.BAS;01 ********************** 1 PLOT 12,14 2 PRINT TAB( 24) 3 PLOT 6,8:PRINT " PONTOON " 4 PLOT 15,6,2 5 CLEAR 2000 6 PRINT 7 INPUT "HOW MANY DECKS? ";DD 8 PRINT 9 PRINT "HANG IN THERE.....JUST READING THE DECKS INTO MEMORY.":PRINT 10 S= PEEK (33209):FOR I= 1TO S:SS= RND (1):NEXT I 20 DIM P(15,12),Q(15),T(8),S(7),B(15),R(15) 25 DIM C(52* DD),D(52* DD),V(52* DD),D$(52* DD) 30 DIM U$(4),C$(13) 40 DATA "h","d","c","s":FOR I= 1TO 4:READ U$(I):NEXT I 50 DATA " A"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9","10"," J"," Q"," K" 55 FOR I= 1TO 13:READ C$(I):NEXT I 60 FOR I= 0TO DD- 1 61 FOR J= 0TO 3 62 FOR K= 1TO 13 63 D$(52* I+ 13* J+ K)= C$(K)+ " "+ U$(J+ 1) 64 V(52* I+ 13* J+ K)= K 65 IF K> 10THEN V(52* I+ 13* J+ K)= 10 70 NEXT K,J,I 90 GOTO 1500 100 REM 110 IF C< (52* DD- 1)THEN 230 120 PRINT "SHUFFLING.........":PRINT 130 FOR D= DTO 1STEP - 1 140 C= C- 1 150 C(C)= D(D) 160 NEXT D 170 FOR C1= 52* DDTO CSTEP - 1 180 C2= INT (RND (1)* (C1- C+ 1))+ C 190 C3= C(C2) 200 C(C2)= C(C1) 210 C(C1)= C3 220 NEXT C1 230 X= C(C) 240 C= C+ 1 250 RETURN 300 REM 360 Q= 0 370 FOR Q2= 1TO R(I) 380 X= P(I,Q2) 390 GOSUB 500 400 NEXT Q2 410 Q(I)= Q 420 RETURN 500 REM 510 X1= V(X) 520 Q1= Q+ X1 525 IF Q= 21AND V(P(I,1))= 7AND V(P(I,2))= 7THEN GOSUB 5000 530 IF Q> = 11THEN 590 540 IF X1> 1THEN 570 550 Q= Q+ 11 560 RETURN 570 Q= Q1- 11* (Q1> = 11) 580 RETURN 590 Q= Q1- (Q< = 21AND Q1> 21) 600 IF Q< 33THEN 620 610 Q= - 1 620 RETURN 700 REM 710 REM 720 PRINT D$(X);" "; 740 RETURN 750 REM 760 PRINT " ";D$(X);" "; 780 RETURN 800 REM 810 REM 820 H1= 5 830 GOSUB 1410 840 H1= 3 850 ON HGOTO 950,930 860 GOSUB 100 870 B(I)= B(I)* 2 880 PRINT " RECEIVED A "; 890 GOSUB 700 900 GOSUB 1100 910 IF Q> 0THEN GOSUB 1300 920 RETURN 930 GOSUB 1320 940 RETURN 950 GOSUB 100 960 PRINT " RECEIVED A "; 970 GOSUB 700 980 GOSUB 1100 990 IF Q< 0THEN 940 1000 PRINT " HIT "; 1010 GOTO 830 1100 REM 1110 R(I)= R(I)+ 1 1120 P(I,R(I))= X 1130 Q= Q(I) 1140 GOSUB 500 1150 Q(I)= Q 1160 IF Q> = 0THEN 1190 1163 IF I= D1THEN 1175 1170 PRINT TAB( 32)"HAND";I; 1175 PRINT " BUSTED" 1180 GOSUB 1200 1190 RETURN 1200 REM 1210 IF R(I)< > 0THEN 1230 1220 RETURN 1230 D= D+ 1 1240 D(D)= P(I,R(I)) 1250 R(I)= R(I)- 1 1260 GOTO 1210 1300 REM 1310 PRINT 1320 AA= Q(I):GOSUB 3400 1325 PRINT TAB( 32)"HAND";I;" TOTAL=";AA 1326 IF AA< 21AND R(I)= 5THEN 4000 1330 RETURN 1400 REM 1410 REM 1420 INPUT H$:H$= LEFT$ (H$,1) 1430 FOR H= 1TO H1STEP 2 1440 IF H$= MID$ (I$,H,1)THEN 1480 1450 NEXT H 1460 PRINT "TYPE ";MID$ (I$,1,H1- 1);" OR ";MID$ (I$,H1,2);" PLEASE"; 1470 GOTO 1420 1480 H= (H+ 1)/ 2 1490 RETURN 1500 REM 1510 REM 1520 REM 1530 I$= "H,S,D,/," 1540 FOR I= 1TO 52* DD 1550 D(I)= I 1560 NEXT I 1590 D= 52* DD 1600 C= D+ 1 1640 PRINT :PRINT 1650 PRINT "BETS MAY BE AUTOMATICALLY SET AT $10 FOR EACH PLAYER" 1660 PRINT "OR EACH PLAYER MAY NOMINATE HIS BET BEFORE EACH HAND.":PRINT 1670 PRINT "BIDS ARE:-" 1680 PRINT "D......DOUBLING DOWN (ONLY VALID WITH TWO CARDS!)" 1685 PRINT "S......STANDING" 1690 PRINT "H......HIT ME WITH ANOTHER CARD" 1695 PRINT "/......SPLIT (ONLY VALID WITH TWO CARDS!)" 1700 PRINT 1710 PRINT "HOUSE LIMIT IS $500 BETS" 1720 PRINT 1755 PRINT 1757 PRINT "TO RETURN TO MENU ENTER A LETTER WHEN ASKED TO CONTINUE." 1758 PRINT :PRINT 1760 PRINT "NUMBER OF PLAYERS (UP TO 7) "; 1770 INPUT N 1775 PRINT 1780 IF N< 1OR N> 7OR N> INT (N)THEN 1760 1785 INPUT "A UTO OR N OMINATED BETTING? ";ZZ$ 1786 IF ZZ$= "A"THEN FL= 1 1790 FOR I= 1TO 8:T(I)= 0:NEXT I 1800 D1= N+ 1 1805 PRINT :PRINT 1810 INPUT "PRESS ENTER TO CONTINUE........";EE$ 1812 IF EE$< > "0"THEN LOAD "MENU":RUN 1813 PLOT 12 1814 NN= NN+ 1:PRINT TAB( 26)"DEAL NO.";NN:PRINT 1815 IF 2* D1+ C> = 52* DDTHEN GOSUB 120 1820 IF C= 2THEN C= C- 1 1830 FOR I= 1TO N:Z(I)= 0:NEXT I 1840 FOR I= 1TO 15:B(I)= 0:NEXT I 1850 FOR I= 1TO 15:Q(I)= 0:NEXT I 1860 FOR I= 1TO 7:S(I)= 0:NEXT I 1870 FOR I= 1TO 15:R(I)= 0:NEXT I 1881 PRINT :IF FL< > 1THEN 1885 1882 FOR I= 1TO N:B(I)= 10:NEXT I:GOTO 1940 1885 PRINT :PRINT "BETS....." 1890 FOR I= 1TO N:PRINT "#";I; 1891 INPUT Z(I) 1894 NEXT I 1895 PRINT 1900 FOR I= 1TO N 1910 IF Z(I)< = 0OR Z(I)> 500THEN 1880 1920 B(I)= Z(I) 1930 NEXT I 1940 PRINT "PLAYER:"; 1950 FOR I= 1TO N 1960 PRINT I;" "; 1970 NEXT I 1980 PRINT " DEALER" 1990 FOR J= 1TO 2 2000 PRINT TAB( 5); 2010 FOR I= 1TO D1 2020 GOSUB 100 2030 P(I,J)= X 2040 IF J= 1OR I< = NTHEN GOSUB 750 2050 NEXT I 2060 PRINT 2070 NEXT J 2080 FOR I= 1TO D1 2090 R(I)= 2 2100 NEXT I 2110 REM 2120 IF V(P(D1,1))> 1THEN 2240 2125 PRINT 2129 PRINT TAB( 10+ 7* N) 2130 PRINT "ANY INSURANCE? "; 2140 INPUT H$ 2150 IF LEFT$ (H$,1)< > "Y"THEN 2240 2155 IF FL= 1THEN FOR KK= 1TO N:Z(KK)= 5:NEXT KK:GOTO 2205 2160 PRINT "INSURANCE BETS" 2170 FOR I= 1TO N:PRINT "#";I;:INPUT Z(I):NEXT I 2180 FOR I= 1TO N 2190 IF Z(I)< 0OR Z(I)> B(I)/ 2THEN 2160 2200 NEXT I 2205 REM 2210 FOR I= 1TO N 2220 S(I)= Z(I)* (3* (- (V(P(D1,2))= 10))- 1) 2230 NEXT I 2240 REM 2250 L1= 1:L2= 1 2252 IF V(P(D1,1))= 1AND V(P(D1,2))= 10THEN L1= 0:L2= 0 2253 IF V(P(D1,2))= 1AND V(P(D1,1))= 10THEN L1= 0:L2= 0 2254 IF L1< > 0OR L2< > 0THEN 2320 2255 PRINT 2260 PRINT "DEALER HAS A "D$(P(D1,2));" IN THE HOLE FOR BLACKJACK" 2275 PRINT 2280 FOR I= 1TO D1 2290 GOSUB 300 2300 NEXT I 2310 GOTO 3140 2320 REM 2330 IF V(P(D1,1))> 1AND V(P(D1,1))< 10THEN 2350 2340 PRINT TAB( 10+ 7* N) 2345 PRINT "NO DEALER BLACKJACK." 2350 PRINT "BIDS:" 2360 FOR I= 1TO N 2370 PRINT "PLAYER";I; 2380 H1= 7 2390 GOSUB 1410 2400 ON HGOTO 2550,2410,2510,2600 2410 REM 2420 GOSUB 300 2430 IF Q(I)< > 21THEN 2485 2440 PRINT TAB( 32)"HAND";I;" -BLACKJACK-" 2450 S(I)= S(I)+ 1.5* B(I) 2460 B(I)= 0 2470 GOSUB 1200 2480 GOTO 2900 2485 REM 2490 GOSUB 1320 2500 GOTO 2900 2510 REM 2520 GOSUB 300 2530 GOSUB 860 2540 GOTO 2900 2550 REM 2560 GOSUB 300 2570 H1= 3 2580 GOSUB 950 2590 GOTO 2900 2600 REM 2601 L1= P(I,1):L2= P(I,2) 2602 X$= LEFT$ (D$(L1),2):Y$= LEFT$ (D$(L2),2) 2603 IF X$< > Y$THEN PRINT "YOU CAN'T SPLIT THOSE!":GOTO 2370 2604 L1= V(L1):L2= V(L2) 2640 REM 2650 I1= I+ D1 2660 R(I1)= 2 2670 P(I1,1)= P(I,2) 2680 B(I+ D1)= B(I) 2690 GOSUB 100 2700 PRINT "FIRST HAND RECEIVES A "; 2710 GOSUB 700 2720 P(I,2)= X 2730 GOSUB 300 2740 PRINT 2750 GOSUB 100 2760 PRINT "SECOND HAND RECEIVES A "; 2770 I= I1 2780 GOSUB 700 2790 P(I,2)= X 2800 GOSUB 300 2810 PRINT 2820 I= I1- D1 2830 IF LEFT$ (D$(P(I,1)),2)= " A"THEN 2900 2840 REM 2850 PRINT "HAND"1- (I> D1); 2860 GOSUB 800 2870 I= I+ D1 2880 IF I= I1THEN 2850 2890 I= I1- D1 2900 NEXT I 2910 GOSUB 300 2920 REM 2930 FOR I= 1TO N 2940 IF R(I)> 0OR R(I+ D1)> 0THEN 3005 2950 NEXT I 2955 PRINT 2960 PRINT "DEALER HAD A "; 2970 X= P(D1,2) 2980 GOSUB 700 2990 PRINT " CONCEALED." 2995 PRINT 3000 GOTO 3140 3005 PRINT 3010 PRINT "DEALER HAS A ";D$(P(D1,2));" CONCEALED "; 3020 I= D1 3030 AA= Q(I):GOSUB 3400 3035 PRINT "FOR A TOTAL OF";AA 3040 IF AA> 16THEN 3130 3050 PRINT "DRAWS "; 3060 GOSUB 100 3070 GOSUB 750 3080 GOSUB 1100 3090 AA= Q:GOSUB 3400 3095 IF Q> 0AND AA< 17THEN 3060 3100 Q(I)= Q- (Q< 0)/ 2 3110 IF Q< 0THEN 3140 3120 AA= Q:GOSUB 3400 3125 PRINT "---TOTAL IS:";AA 3130 PRINT 3140 REM 3150 REM 3160 Z$= "LOSES PUSHESWINS " 3170 FOR I= 1TO N 3180 AA= Q(I):GOSUB 3400 3182 AB= Q(I+ D1):GOSUB 3410 3184 AC= Q(D1):GOSUB 3420 3186 S(I)= S(I)+ B(I)* SGN (AA- AC)+ B(I+ D1)* SGN (AB- AC) 3188 B(I+ D1)= 0 3200 PRINT "PLAYER";I; 3205 PRINT " "; 3210 PRINT MID$ (Z$,SGN (S(I))* 6+ 7,6);" "; 3220 IF S(I)< > 0THEN 3250 3230 PRINT " "; 3240 GOTO 3260 3250 PRINT ABS (S(I)); 3260 T(I)= T(I)+ S(I) 3270 PRINT TAB( 32)"TOTAL=";T(I) 3280 GOSUB 1200 3290 T(D1)= T(D1)- S(I) 3300 I= I+ D1 3310 GOSUB 1200 3320 I= I- D1 3330 NEXT I 3335 PRINT 3340 PRINT "DEALER'S TOTAL=";T(D1) 3345 PRINT 3350 GOSUB 1200 3360 GOTO 1810 3400 AA= AA+ 11* (AA> = 22):RETURN 3410 AB= AB+ 11* (AB> = 22):RETURN 3420 AC= AC+ 11* (AC> = 22):RETURN 3500 END 4000 REM FIVE UNDER 4010 PRINT TAB( 32) 4015 PRINT "FIVE UNDER 21!!" 4020 S(I)= S(I)+ 2* B(I) 4030 B(I)= 0 4040 RETURN 4100 END 5000 REM THREE SEVENS 5005 PRINT TAB( 32) 5010 PRINT "THREE SEVENS!!!!!" 5020 S(I)= S(I)+ 3* B(I) 5030 B(I)= 0 5040 GOSUB 1200 5050 GOTO 2900 5100 END