310 VTAB 16: HTAB 3 *B: PRINT N$(B);" ";: IF PEEK(49249) >120 THEN 290
320 HOME : VTAB 8: HTAB 15: PRINT "PREPARING YOUR DECK: ";
330 RX = INT( RND(1) *150 +1): FOR T = 1 TO RX:N = INT( RND(1) *52 +1):M = INT( RND(1) *52 +1):S = PEEK(SS):A$ = P$(N):P$(N) = P$(M):P$(M) = A$: PRINT ".";: NEXT
340 FOR N = 1 TO 4:T$(N) = "": NEXT : FOR N = 1 TO 25:R$(N) = "": NEXT : FOR H = 1 TO 7: FOR V = 1 TO 20:D$(H,V) = "": NEXT : NEXT : REM * CLEAR ARRAYS **
350 PRINT " ";: FLASH : PRINT "****";: NORMAL
360 VTAB 23: HTAB 5: IF JS = 0 THEN PRINT "<SPACE BAR TO DEAL>";: GET A$: HOME
370 IF JS THEN VTAB 23: HTAB 5: PRINT "<PULL STICK TO DEAL>";: IF PDL(1) <150 THEN 370
380 HOME
390 P = 0: FOR V = 1 TO 7: FOR H = V TO 7:P = P +1:D$(H,V) = P$(P):ST$(H) = P$(P):SB$(H) = P$(P):VT(H) = V:VB(H) = V: VTAB V +4: HTAB 5 *H -4: INVERSE : PRINT "****": NORMAL :S = PEEK(SS)
400 IF H = V THEN A$ = RIGHT$(P$(P),1): IF A$ = "H" OR A$ = "D" THEN INVERSE
410 IF H = V THEN VTAB V +4: HTAB 5 *H -4: PRINT D$(H,V);: NORMAL : PRINT " "
420 NEXT : NEXT
430 FOR N = 1 TO 24:P = P +1:S = PEEK(SS):R$(N) = P$(P): VTAB 23: HTAB 10: INVERSE : PRINT "****": NORMAL : NEXT
440 RT = 24:Q = 3: REM ** RT=# IN REMAINDER PILE, Q=PLACE IN PILE **
450 VTAB 1: HTAB 3: PRINT "ACES=0:": FOR H = 1 TO 7: VTAB 3: HTAB 5 *H -2: PRINT H: VTAB 4: HTAB 5 *H -4: PRINT "----": NEXT : VTAB 23: HTAB 3: PRINT "8:"
460 IF JS THEN VTAB 24: HTAB 32: PRINT "QUIT";
470 VTAB 23: HTAB 15:A$ = RIGHT$(R$(3),1): IF A$ = "H" OR A$ = "D" THEN INVERSE
480 PRINT R$(3): NORMAL
490 REM **********************
500 REM ** MAIN PROGRAM **
510 IF A$ = "Q" THEN 860
520 IF A$ = "H" THEN PRINT : PRINT : PRINT : GOSUB 650: GOSUB 690: VTAB 23: PRINT "-I SUGGEST "A" TO "B" AS "T" MOVE: -RETURN- ";: GET B$:BZ = PEEK(49200) + PEEK(49200)
2290 VTAB 23: HTAB 15: PRINT " ":SB$(T) = R$(Q):D$(T,VB(T) +1) = R$(Q):VB(T) = VB(T) +1:A$ = RIGHT$(R$(Q),1): IF A$ = "D" OR A$ = "H" THEN INVERSE
2300 IF VT(T) = 0 THEN VT(T) = 1:ST$(T) = D$(T,1)
2310 VTAB 4 +VB(T): HTAB 5 *T -4: PRINT R$(Q):RT = RT -1: FOR N = Q TO (RT):R$(N) = R$(N +1): NEXT :R$(RT +1) = "":Q = Q -1: IF Q = 0 THEN Q = 3
2320 IF Q >RT THEN Q = RT
2330 NORMAL : IF Q = RT THEN VTAB 23: HTAB 10: PRINT " "
2340 A$ = RIGHT$(R$(Q),1): IF A$ = "D" OR A$ = "H" THEN INVERSE
2350 VTAB 23: HTAB 15: PRINT R$(Q): NORMAL : RETURN
2360 REM ***************************************
2999 REM #3000 **** SUB DEAL REMAINDER *******
3000 VTAB 23: HTAB 10: PRINT " ": FOR N = 1 TO 100: NEXT
3010 IF Q = RT THEN Q = 0
3020 Q = Q +3: IF Q >RT THEN Q = RT
3030 VTAB 23: HTAB 15:A$ = RIGHT$(R$(Q),1): IF A$ = "D" OR A$ = "H" THEN INVERSE
3040 PRINT R$(Q): FOR N = Q TO (RT): VTAB 23: HTAB 10: INVERSE : PRINT "****":S = PEEK(SS): FOR P = 1 TO 20: NEXT : VTAB 23: HTAB 10: NORMAL : PRINT " ": NEXT
3050 IF RT >1 THEN VTAB 23: HTAB 10: INVERSE : PRINT "****": NORMAL
3060 IF Q = RT THEN VTAB 23: HTAB 10: INVERSE : PRINT " ": NORMAL
3070 RETURN
3080 REM **************************************
3999 REM #4000 **** SUB TO QUIT GAME ********
4000 Z = 0: FOR H = 1 TO 7: IF VT(H) >1 THEN Z = 1:H = 7: REM ** LOSE **
4010 NEXT : IF RT >1 THEN Z = 1: REM **LOSE **
4020 GP = GP +1: IF Z = 0 THEN FOR N = 1 TO 3: CALL -1052: NEXT :GW = GW +1: REM **WIN **
4030 IF Z = 1 THEN FOR N = 1 TO 200:S = PEEK(SS) + PEEK(SS): NEXT : REM **LOSE **
4040 TEXT : HOME : VTAB 10: HTAB 20: IF Z = 0 THEN PRINT "Y O U W I N !!!"
4050 IF Z = 1 THEN PRINT "Y O U L O S E !!!"
4060 VTAB 15: HTAB 10: PRINT GW" WON / "GP" PLAYED = " INT((GW/GP) *100 +.5)" %": RETURN
4999 REM #5000 ****** SUB TO FIX ERROR ******
5000 FOR N = 1 TO 200:S = PEEK(SS) + PEEK(SS): NEXT : VTAB 23: HTAB 20: PRINT " ": RETURN
6010 IF CS THEN V = VAL(F$): IF V >0 AND V <8 THEN A$ = LEFT$(ST$(V),1)
6020 IF CS THEN IF V = 0 THEN A$ = "?"
6030 IF CS THEN IF V = 8 THEN A$ = LEFT$(R$(Q),1)
6040 IF CS THEN IF F$ = "Q" THEN A$ = F$
6050 VTAB Y: HTAB H: PRINT "-";:X1 = X:Y1 = Y: IF CS THEN HTAB H: PRINT A$
6060 REM *** ADJUST JOY HERE ****
6070 FOR PP = 0 TO 1 STEP 0
6080 PX = PDL(0): IF PEEK(49249) >140 THEN JJ = 1:SQ = 300:PP = 1
6090 PY = PDL(1): IF (PX >140 OR PX <114) OR (PY >150 OR PY <104) THEN PP = 1
6100 M = RND(1)
6110 NEXT PP: REM ** LOOPS TILL CHANGED **
6120 X = X +(PX >140) -(PX <114):SQ = 1 + ABS(PX -127)/10:Y = Y +20 *(PY >150) -20 *(PY <104)
6130 IF X <1 THEN X = 1
6140 IF X >7 THEN X = 7
6150 IF Y <3 THEN Y = 1
6160 IF Y = 21 THEN Y = 3
6170 IF Y >3 THEN Y = 23
6180 BZ = PEEK(SS) + PEEK(SS): NORMAL : VTAB Y1: HTAB H: PRINT " ": FOR P = 1 TO 200/SQ: NEXT
6190 NEXT JJ
6200 W = X1 *(Y1 = 3) +8 *(Y1 = 23)
6210 TT$ = STR$(W): IF X1 = 7 AND Y1 = 23 THEN TT$ = "Q"
6220 RETURN : REM ** TO PLAYER SEQUENCE **
6230 REM *********************************
6999 REM #7000 *** SUB INSTRUCTIONS ******
7000 HOME : SPEED= 100: IF JS THEN 7030
7010 PRINT "PICK UP AND PLACE CARDS BY": PRINT : PRINT "TYPING THE NUMBER OF A PILE.": PRINT : PRINT : PRINT "HIT <ANY KEY> TWICE": PRINT : PRINT "TO SORT PILE BY THREE'S."