Compucolor.org – Virtual Media

Listing of file='PMID.BAS;01' on disk='vmedia/solitaire-sector.ccvf'

100 REM KY 		PYRAMID SOLITAIRE
110 REM 		   V5/7/80 RHT
120 REM 	 COPYRIGHT(C) 1980 BY COMPUCOLOR
130 REM 	     WRITTEN BY D.R.MILLER

140 OUT 8,255:OUT 8,247
150 CLEAR 1000
160 PLOT 6,36,12,27,24,15
170 DIM ST(28),HA(25),TN(25)
180 DIM XX(28),YY(28)
190 XX(1)= 30:XX(2)= 26:XX(3)= 34:XX(4)= 22:XX(5)= 30:XX(6)= 38:XX(7)= 18:XX(8)= 26:XX(9)= 34:XX(10)= 42
200 XX(11)= 14:XX(12)= 22:XX(13)= 30:XX(14)= 38:XX(15)= 46:XX(16)= 10:XX(17)= 18:XX(18)= 26:XX(19)= 34
210 XX(20)= 42:XX(21)= 50:XX(22)= 6:XX(23)= 14:XX(24)= 22:XX(25)= 30:XX(26)= 38:XX(27)= 46:XX(28)= 54
220 YY(1)= 0:YY(2)= 4:YY(3)= 4:YY(4)= 8:YY(5)= 8:YY(6)= 8:YY(7)= 12:YY(8)= 12:YY(9)= 12:YY(10)= 12
230 YY(11)= 16:YY(12)= 16:YY(13)= 16:YY(14)= 16:YY(15)= 16:YY(16)= 20
240 YY(17)= 20:YY(18)= 20:YY(19)= 20:YY(20)= 20:YY(21)= 20:YY(22)= 24:YY(23)= 24:YY(24)= 24:YY(25)= 24
250 YY(26)= 24:YY(27)= 24:YY(28)= 24
260 X9= 0:GOSUB 560
270 X9= 51:GOSUB 650
280 PLOT 6,33,3,13,1,14:PRINT "P Y R A M I D"
290 PLOT 3,35,1:PRINT "S O L I T A I R E"
300 OUT 8,255:PLOT 6,97,3,27,19:PRINT "HIT RETURN"
310 POKE 33278,0
320 PLOT 3,64,0:I= RND (1)
330 IF PEEK (33278)= 0THEN 320
340 OUT 8,247
350 PLOT 3,15,17:PRINT SPC( 33)""
360 PLOT 6,102,3,27,19:PRINT "SHUFFLING "
370 PLOT 3,64,0
380 REM  HOUSEKEEPING
390 GOSUB 4380:REM  SHUFFLE CARDS
400 PLOT 6,36,3,27,19:PRINT SPC( 10)""
410 PLOT 3,15,17:PRINT SPC( 34)""
420 PLOT 15
430 FOR A= 1TO 28:ST(A)= DK(A):NEXT A
440 FOR A= 29TO 52:HA(A- 28)= DK(A):NEXT A
450 FOR I= 1TO 28
460 X= ST(I):X9= XX(I):Y9= YY(I):GOSUB 3790
470 NEXT I
480 PLOT 6,38
490 FOR I= 1TO 28
500 PLOT 3,XX(I)+ 1,YY(I)+ 7
510 IF I= 27THEN PRINT " 3 ":GOTO 540
520 IF I= 28THEN PRINT " 4 ":GOTO 540
530 PRINT " ";CHR$ (I+ 64);" "
540 NEXT I
550 GOTO 740
560 PLOT 6,38
570 PLOT 3,X9,0:PRINT "      P"
580 PLOT 3,X9,1:PRINT "     P Y"
590 PLOT 3,X9,2:PRINT "    P Y R"
600 PLOT 3,X9,3:PRINT "   P Y R A"
610 PLOT 3,X9,4:PRINT "  P Y R A M"
620 PLOT 3,X9,5:PRINT " P Y R A M I"
630 PLOT 3,X9,6:PRINT "P Y R A M I D"
640 RETURN
650 PLOT 6,38
660 PLOT 3,X9,0:PRINT "      A"
670 PLOT 3,X9,1:PRINT "     B C"
680 PLOT 3,X9,2:PRINT "    D E F"
690 PLOT 3,X9,3:PRINT "   G H I J"
700 PLOT 3,X9,4:PRINT "  K L M N O"
710 PLOT 3,X9,5:PRINT " P Q R S T U"
720 PLOT 3,X9,6:PRINT "V W X Y Z 3 4"
730 RETURN
740 PLOT 27,10,6,35
750 PLOT 3,0,9:PRINT "H A N D  BONEYARD"
760 PLOT 27,24
770 PLOT 6,37,3,59,21:PRINT "ENTER"
780 PLOT 3,60,22:PRINT "5&5"
790 PLOT 3,61,23:PRINT "TO"
800 PLOT 3,60,24:PRINT "QUIT"
810 PLOT 3,15,3:PRINT "HAND TO"
820 PLOT 3,15,4:PRINT "BONEYARD"
830 PLOT 3,15,5:PRINT "ENTER 1&2"
840 PLOT 3,15,6:PRINT "&VICEVERSA"
850 BC$= "`":PLOT 6,33:X9= 1:Y9= 9:GOSUB 4180
860 X9= 1:Y9= 19:GOSUB 4290
870 PLOT 6,37,3,4,8:PRINT "24"
880 PLOT 3,4,18:PRINT " 0"
890 PLOT 6,38,3,3,17,14:PRINT "1"
900 PLOT 3,3,27:PRINT "2":PLOT 15
910 PLOT 6,38,3,1,29:PRINT "ON"
920 PLOT 3,0,30:PRINT "PASS"
930 PLOT 6,37,3,2,31:PRINT "1"
940 PA= 1
950 HC= 24
960 TC= 0
970 GOSUB 1060
980 PLOT 6,37,3,8,8:PRINT "SELECT TWO"
990 PLOT 3,8,9:PRINT "CARDS THAT"
1000 PLOT 3,8,10:PRINT "TOTAL 13 &"
1010 PLOT 3,8,11:PRINT "REMOVE. TO"
1020 PLOT 3,8,12:PRINT "WIN, EMPTY"
1030 PLOT 3,8,13:PRINT "PYRAMID,IN"
1040 PLOT 3,8,14:PRINT "3 PASSES !"
1050 GOTO 1200
1060 REM  BLANK OUT REMOVE AREAS AND VALUES
1070 PLOT 6,38
1080 PLOT 3,51,9:PRINT "             "
1090 PLOT 3,48,10:PRINT " "
1100 PLOT 3,48,11:PRINT "bCARD 1        a"
1110 PLOT 3,48,12:PRINT "bCARD 2        a"
1120 PLOT 3,48,13:PRINT " jjjjjjjjjjjjjj"
1130 PLOT 3,48,14:PRINT "bTOTAL         a"
1140 PLOT 3,48,15:PRINT " eeeeeeeeeeeeee"
1150 PLOT 6,37,3,60,16:PRINT "A=1"
1160 PLOT 3,60,17:PRINT "J=11"
1170 PLOT 3,60,18:PRINT "Q=12"
1180 PLOT 3,60,19:PRINT "K=13"
1190 RETURN
1200 REM
1210 REM  MAIN PROCESSING ROUTINES
1220 S1= 0:F1= 0:F2= 0:C1= 0:C2= 0
1230 FOR B= 28TO 1STEP - 1
1240 IF ST(B)< > 0THEN B= 0:GOTO 1280
1250 NEXT B
1260 REM  GAME OVER, NO MORE CARDS IN PYRAMID
1270 PLOT 14,6,38+ 64,3,28,21:PRINT "YOU WIN !":FOR A= 0TO 999:NEXT A:GOTO 3620
1280 OUT 8,255
1290 REM  PROCESS INPUT
1300 PLOT 6,33,15
1310 PLOT 3,58,9:PRINT "      "
1320 PLOT 3,49,9
1330 INPUT "REMOVE 1: ";Q1$
1340 PLOT 3,49,9:PRINT SPC( 14)""
1350 OUT 8,247:GOTO 1500
1360 PLOT 3,49,9:INPUT "REMOVE 2: ";Q2$
1370 PLOT 3,49,9:PRINT SPC( 13)""
1380 OUT 8,247
1390 Q1$= LEFT$ (Q1$,1):Q2$= LEFT$ (Q2$,1)
1395 IF Q1$= ""AND Q2$= ""THEN Q1$= "1":Q2$= "2"
1400 IF Q1$= "5"AND Q2$= "5"THEN 3620
1410 IF Q1$= "1"THEN 1940:REM  FROM HAND
1420 IF Q2$= "1"THEN 2150:REM  FROM HAND
1430 IF Q1$= "2"THEN 2180:REM  FROM BONEYARD
1440 IF Q2$= "2"THEN 2450:REM  FROM BONEYARD
1450 IF Q1$= "3"OR Q1$= "4"THEN 1670
1460 IF Q1$< "A"OR Q1$> "Z"THEN 1610
1470 IF Q2$= "3"OR Q2$= "4"THEN 1670
1480 IF Q2$< "A"OR Q2$> "Z"THEN 1610
1490 GOTO 1670:REM  INPUT OK, WAS @ THRU Z
1500 REM  CHECK FOR KING, TAKE IT W/O ASKING FOR Q2$(CARD 2)
1510 IF Q1$= "1"THEN 1600
1520 IF Q1$= "2"THEN 1590
1530 IF Q1$= "3"THEN A= 27:GOTO 1570
1540 IF Q1$= "4"THEN A= 28:GOTO 1570
1550 IF Q1$< "A"OR Q1$> "Z"THEN 1600
1560 A= ASC (Q1$)- 64
1570 IF ST(A)/ 13= INT (ST(A)/ 13)THEN Q2$= Q1$:GOTO 1380
1580 GOTO 1600
1590 IF TN(1)/ 13= INT (TN(1)/ 13)THEN Q2$= Q1$:GOTO 1380
1600 OUT 8,255:GOTO 1360
1610 REM  INPUT NG: NOT A THRU Z, 1 THRU 4
1620 PLOT 6,97,14,3,50,9
1630 PRINT "INCORRECT !"
1640 PLOT 3,64,0:FOR I= 0TO 999:NEXT I
1650 PLOT 6,33,3,50,9:PRINT SPC( 11)""
1660 GOTO 1210
1670 REM  INPUT OK
1680 GOSUB 2510
1690 C1= CD
1700 IF CD= 0THEN 1610
1710 IF Q1$= "3"THEN CE= 27:GOTO 1740
1720 IF Q1$= "4"THEN CE= 28:GOTO 1740
1730 CE= ASC (Q1$)- 64
1740 F1= CE
1750 IF CE> 21THEN 2870
1760 IF CE> 15THEN 1840
1770 IF CE> 10THEN 1860
1780 IF CE> 6THEN 1880
1790 IF CE> 3THEN 1900
1800 IF CE> 1THEN 1920
1810 IF CE< > 1THEN 1610
1820 IF ST(CE+ 1)= 0AND ST(CE+ 2)= 0THEN 2870
1830 GOTO 1610
1840 IF ST(CE+ 6)= 0AND ST(CE+ 7)= 0THEN 2870
1850 GOTO 1610
1860 IF ST(CE+ 5)= 0AND ST(CE+ 6)= 0THEN 2870
1870 GOTO 1610
1880 IF ST(CE+ 4)= 0AND ST(CE+ 5)= 0THEN 2870
1890 GOTO 1610
1900 IF ST(CE+ 3)= 0AND ST(CE+ 4)= 0THEN 2870
1910 GOTO 1610
1920 IF ST(CE+ 2)= 0AND ST(CE+ 3)= 0THEN 2870
1930 GOTO 1610
1940 REM  INPUT WAS FROM HAND FOR Q1$
1950 IF Q2$< > "2"THEN 1610
1960 IF HA(1)< > 0THEN 1980
1970 GOTO 1610
1980 GOSUB 2510
1990 FOR I= 24TO 2STEP - 1
2000 TN(I)= TN(I- 1)
2010 NEXT I
2020 TC= TC+ 1:HC= HC- 1
2030 TN(1)= HA(1)
2040 FOR I= 1TO 23
2050 HA(I)= HA(I+ 1)
2060 NEXT I
2070 HA(I)= 0
2080 X= TN(1):X9= 1:Y9= 19:GOSUB 3790
2090 PLOT 6,37,3,4,18:PRINT RIGHT$ ((STR$ (TC)),2)
2100 PLOT 6,37,3,4,8:PRINT RIGHT$ ((STR$ (HC)),2)
2110 IF HC< > 0THEN 1210
2120 BC$= " ":PLOT 6,32:X9= 1:Y9= 9:GOSUB 4180
2130 X9= 1:Y9= 9:GOSUB 4290
2140 GOTO 1210
2150 REM  INPUT WAS FROM HAND FOR Q2$
2160 IF Q1$< > "2"THEN 1610
2170 GOTO 2180
2180 REM  INPUT WAS BONEYARD ON Q1$
2190 IF Q2$= "1"THEN 2230
2200 IF TC= 0THEN 1610
2210 GOSUB 2510:C1= CD
2220 GOTO 3430:REM  PROCESS REMOVE
2230 REM  Q1$ IS BONEYARD, Q2$ IS HAND
2240 IF HC< > 0THEN 1610
2250 IF TC= 0THEN 1610
2260 PA= PA+ 1
2270 PLOT 6,37,3,2,31:PRINT RIGHT$ ((STR$ (PA)),1)
2280 IF PA> 3THEN PLOT 14,6,102,3,28,31:PRINT " YOU LOSE ":FOR A= 0TO 999:NEXT A:GOTO 3620
2290 FOR I= 1TO 24
2300 HA(I)= 0
2310 NEXT I
2320 FOR I= 1TO TC
2330 HA(I)= TN(TC- I+ 1)
2340 NEXT I
2350 HC= TC:TC= 0
2360 FOR I= 1TO 24
2370 TN(I)= 0
2380 NEXT I
2390 PLOT 6,37,3,4,18:PRINT " 0"
2400 PLOT 6,37,3,4,8:PRINT RIGHT$ ((STR$ (HC)),2)
2410 BC$= "`":PLOT 6,33:X9= 1:Y9= 9:GOSUB 4180
2420 BC$= " ":PLOT 6,36:X9= 1:Y9= 19:GOSUB 4180
2430 X9= 1:Y9= 19:GOSUB 4290
2440 GOTO 1210
2450 REM  INPUT WAS BONEYARD ON Q2$
2460 IF Q1$= "1"THEN 2500
2470 IF TC= 0THEN 1610
2480 Q3$= Q1$:Q1$= Q2$:Q2$= Q3$
2490 GOTO 2180
2500 GOTO 1940
2510 REM  FILL IN CARD 1
2520 PLOT 6,38:GOSUB 1090
2530 PLOT 6,33
2540 PLOT 3,56,11:PRINT Q1$;" ";
2550 IF Q1$= "3"THEN CD= ST(27):GOTO 2610
2560 IF Q1$= "4"THEN CD= ST(28):GOTO 2610
2570 IF Q1$= "2"THEN CD= TN(1):GOTO 2610
2580 IF Q1$= "1"THEN CD= HA(1):GOTO 2610
2590 IF Q1$< "A"OR Q1$> "Z"THEN 1610
2600 CD= ST(ASC (Q1$)- 64)
2610 IF CD> 39THEN CD$= "c":CO= 56:CD= CD- 39:GOTO 2650
2620 IF CD> 26THEN CD$= "h":CO= 57:CD= CD- 26:GOTO 2650
2630 IF CD> 13THEN CD$= "d":CO= 57:CD= CD- 13:GOTO 2650
2640 CD$= "s":CO= 56
2650 IF CD= 1THEN C$= "A":GOTO 2720
2660 IF CD= 10THEN C$= "T":GOTO 2720
2670 IF CD= 11THEN C$= "J":GOTO 2720
2680 IF CD= 12THEN C$= "Q":GOTO 2720
2690 IF CD= 13THEN C$= "K":GOTO 2720
2700 PLOT 6,CO
2710 PRINT RIGHT$ ((STR$ (CD)),1);:GOTO 2730
2720 PLOT 6,CO:PRINT C$;
2730 PRINT CD$;
2740 PLOT 6,38
2750 PRINT " ";RIGHT$ ((STR$ (CD)),2)
2760 RETURN
2770 REM  FILL IN CARD 2
2780 PLOT 6,33
2790 PLOT 3,56,12:PRINT Q2$;" ";
2800 IF Q2$= "3"THEN CD= ST(27):GOTO 2860
2810 IF Q2$= "4"THEN CD= ST(28):GOTO 2860
2820 IF Q2$= "2"THEN CD= TN(1):GOTO 2610
2830 IF Q2$= "1"THEN CD= HA(1):GOTO 2860
2840 IF Q2$< "A"OR Q2$> "Z"THEN 1610
2850 CD= ST(ASC (Q2$)- 64)
2860 GOTO 2610
2870 REM  Q1$ FROM PYRAMID AND IS CLEAR.  NOW CHECK Q2$.
2880 GOSUB 2770
2890 C2= CD
2900 IF C1= C2AND C1= 13THEN F2= F1:GOTO 3150
2910 IF CD= 0THEN 1610
2920 IF Q2$= "3"THEN CE= 27:GOTO 2950
2930 IF Q2$= "4"THEN CE= 28:GOTO 2950
2940 CE= ASC (Q2$)- 64
2950 F2= CE
2960 IF CE> 21THEN 3150
2970 IF CE> 15THEN 3050
2980 IF CE> 10THEN 3070
2990 IF CE> 6THEN 3090
3000 IF CE> 3THEN 3110
3010 IF CE> 1THEN 3130
3020 IF CE< > 1THEN 1610
3030 IF ST(CE+ 1)= 0AND ST(CE+ 2)= 0THEN 3150
3040 GOTO 1610
3050 IF ST(CE+ 6)= 0AND ST(CE+ 7)= 0THEN 3150
3060 GOTO 1610
3070 IF ST(CE+ 5)= 0AND ST(CE+ 6)= 0THEN 3150
3080 GOTO 1610
3090 IF ST(CE+ 4)= 0AND ST(CE+ 5)= 0THEN 3150
3100 GOTO 1610
3110 IF ST(CE+ 3)= 0AND ST(CE+ 4)= 0THEN 3150
3120 GOTO 1610
3130 IF ST(CE+ 2)= 0AND ST(CE+ 3)= 0THEN 3150
3140 GOTO 1610
3150 REM  Q1$ AND Q2$ ARE CLEAR. DO THEY ADD UP TO 13 ?
3160 PLOT 6,38
3170 IF C1= C2AND C1= 13THEN 3190
3180 IF (C1+ C2)< > 13THEN PLOT 3,59,14:PRINT "<>13":GOTO 3230
3190 PLOT 3,59,14:PRINT "= 13"
3200 IF S1= 0THEN 3250
3210 IF C1= C2AND C1= 13THEN 3380
3220 GOTO 3250
3230 FOR I= 0TO 999:NEXT I
3240 GOTO 1610
3250 ST(F1)= 0:ST(F2)= 0
3260 IF S1= 1AND F1= 0THEN BC$= " ":PLOT 6,36:GOTO 3290
3270 BC$= " ":PLOT 6,36:X9= XX(F1):Y9= YY(F1):GOSUB 4180
3280 BC$= " "
3290 IF S1= 1AND F2= 0THEN 3400
3300 X9= XX(F2):Y9= YY(F2):GOSUB 4180
3310 IF S1= 1THEN 3400
3320 CT= F1:IF F2< F1THEN CT= F2
3330 CT= CT- 7
3340 IF CT< 1THEN CT= 1
3350 FOR I= CTTO 28
3360 X= ST(I):X9= XX(I):Y9= YY(I):GOSUB 3790
3370 NEXT I
3380 IF S1= 1THEN 3480
3390 GOTO 1210
3400 IF F1= 0THEN CT= F2:GOTO 3330
3410 IF F2= 0THEN CT= F1
3420 GOTO 3330
3430 REM  PROCESS REMOVE FUNCTION
3440 S1= 1
3450 IF Q1$= "2"THEN F1= 0
3460 IF Q2$= "2"THEN F2= 0
3470 GOTO 2870
3480 REM  NOW REMOVE CARD FROM BONEYARD
3490 TC= TC- 1
3500 PLOT 6,37,3,4,18:PRINT RIGHT$ ((STR$ (TC)),2)
3510 FOR I= 1TO TC
3520 TN(I)= TN(I+ 1)
3530 NEXT I
3540 TN(I)= 0
3550 IF TC= 0THEN 3580
3560 X= TN(1):X9= 1:Y9= 19:GOSUB 3790
3570 GOTO 1210
3580 BC$= " ":PLOT 6,36:X9= 1:Y9= 19:GOSUB 4180
3590 BC$= " "
3600 X9= 1:Y9= 19:GOSUB 4290
3610 GOTO 1210
3620 REM  END OF GAME
3630 OUT 8,255
3640 PLOT 14,6,33,3,16,21
3650 INPUT "DO YOU WANT TO PLAY AGAIN (Y/N) ? ";Q$
3660 IF LEFT$ (Q$,1)< > "Y"THEN 3740
3670 OUT 8,247
3680 S1= 0:C1= 0:C2= 0:F1= 0:F2= 0:HC= 24:TC= 0
3690 PLOT 14,6,36,3,16,21:PRINT "                                     "
3700 FOR I= 1TO 24:HA(I)= 0:TN(I)= 0:NEXT I
3710 PLOT 6,36,12,15
3720 FOR I= 1TO 52:KD(I)= 0:DK(I)= 0:NEXT I
3730 GOTO 260
3740 PLOT 6,2,27,11,14
3750 LOAD "MENU":RUN
3760 END
3770 PLOT 6,2,27,11,15:END
3780 REM  DRAW CARD AT X9,Y9, FROM X(1-52)
3790 IF X> 39THEN Q= X- 39:P$= "c":PLOT 6,56:CO= 56:GOTO 3840
3800 IF X> 26THEN Q= X- 26:P$= "h":PLOT 6,57:CO= 57:GOTO 3840
3810 IF X> 13THEN Q= X- 13:P$= "d":PLOT 6,57:CO= 57:GOTO 3840
3820 IF X= 0THEN 4170
3830 Q= X:P$= "s":PLOT 6,56:CO= 56
3840 PLOT 27,10:FOR II= 0TO 4:PLOT 3,X9+ II,Y9:PRINT "       ":NEXT II
3850 IF Q> 9THEN 3920
3860 IF Q> 5THEN 3930
3870 IF Q> 3THEN 3940
3880 IF Q= 1OR Q= 5OR Q= 7THEN 3950
3890 IF Q= 2OR Q= 8THEN 3960
3900 IF Q= 3OR Q= 9OR Q> 10THEN 3970
3910 GOTO 3980
3920 PLOT 3,X9+ 1,Y9+ 1:PRINT P$;P$;P$;P$;P$:PLOT 3,X9+ 3,Y9+ 1:PRINT P$;P$;P$;P$;P$:GOTO 3900
3930 PLOT 3,X9+ 1,Y9+ 1:PRINT P$" "P$" "P$:PLOT 3,X9+ 3,Y9+ 1:PRINT P$" "P$" "P$:GOTO 3880
3940 PLOT 3,X9+ 1,Y9+ 1:PRINT P$"   "P$:PLOT 3,X9+ 3,Y9+ 1:PRINT P$"   "P$:GOTO 3880
3950 PLOT 3,X9+ 2,Y9+ 3:PRINT P$:GOTO 3980
3960 PLOT 3,X9+ 2,Y9+ 2:PRINT P$" "P$:GOTO 3980
3970 PLOT 3,X9+ 2,Y9+ 1:PRINT P$" "P$" "P$
3980 REM
3990 PLOT 27,24
4000 PLOT 3,X9,Y9:PRINT "neeeo"
4010 PLOT 3,X9,Y9+ 6:PRINT "lm"
4020 PLOT 27,10
4030 PLOT 3,X9,Y9+ 1:PRINT "aaaaa"
4040 PLOT 3,X9+ 4,Y9+ 1:PRINT "bbbbb"
4050 PLOT 6,CO
4060 IF Q= 1THEN PLOT 3,X9,Y9:PRINT "A":PLOT 3,X9+ 4,Y9+ 6:PRINT "A":GOTO 4170
4070 IF Q> 9THEN 4100
4080 PLOT 3,X9,Y9:PRINT RIGHT$ ((STR$ (Q)),1):PLOT 3,X9+ 4,Y9+ 6:PRINT RIGHT$ ((STR$ (Q)),1)
4090 GOTO 4170
4100 PLOT 27,24:IF Q> 10THEN 4130
4110 PLOT 3,X9,Y9:PRINT RIGHT$ ((STR$ (Q)),2):PLOT 3,X9+ 3,Y9+ 6:PRINT RIGHT$ ((STR$ (Q)),2)
4120 GOTO 4170
4130 IF Q= 11THEN CD$= "J":GOTO 4160
4140 IF Q= 12THEN CD$= "Q":GOTO 4160
4150 CD$= "K"
4160 PLOT 3,X9,Y9:PRINT CD$:PLOT 3,X9+ 4,Y9+ 6:PRINT CD$:PLOT 3,X9+ 2,Y9+ 3:PRINT CD$
4170 PLOT 27,24:RETURN
4180 REM  DRAW BACK OF CARD FROM X9,Y9,BC$(PATTERN)
4190 BC$= BC$+ BC$+ BC$+ BC$+ BC$
4200 FOR AA= 0TO 6
4210 PLOT 3,X9,Y9+ AA
4220 PRINT BC$
4230 NEXT AA
4240 IF LEFT$ (BC$,1)< > " "THEN 4270
4250 IF X9< 6THEN 4270
4260 PLOT 6,36,3,X9+ 2,Y9+ 7:PRINT " "
4270 PLOT 3,64,0
4280 RETURN
4290 REM  DRAW BLUE BORDER AROUND EMPTY CARD FROM X9,Y9
4300 PLOT 6,38
4310 Y8= Y9+ 6
4320 Y8= 31- Y8
4330 Y8= 4* Y8
4340 X8= X9* 2
4350 PLOT 2,X8,Y8,242,X8,Y8+ 27,X8+ 9,Y8+ 27,X8+ 9,Y8,X8,Y8,255
4360 PLOT 3,64,0
4370 RETURN
4380 REM  SHUFFLE DECK INTO DK(1-52), USE KD TO STOCK DUPES
4390 IF FT= 1THEN 4420
4400 FT= 1
4410 DIM DK(52),KD(52)
4420 FOR I= 1TO 52
4430 DK(I)= INT (52* RND (1)+ 1)
4440 IF KD(DK(I))= 1THEN 4430
4450 KD(DK(I))= 1
4460 NEXT I
4470 RETURN
4480 END