home *** CD-ROM | disk | FTP | other *** search
/ Generous Efforts of Many / gemcd.zip / GEM.CD.B.po / GAMES:BASIC.4 / SOL.bas < prev    next >
BASIC Source File  |  2010-05-14  |  14KB  |  205 lines

  1. 2  REM  *** SOL.TXT
  2. 99  REM  #100 START
  3. 100  REM  **  SOLITAIRE   ** 
  4. 110  REM  ** BY  J.H.G   **
  5. 120  REM  **   3/23/85   **
  6. 130  REM  ** SET DECK AS P$(P)=#+SUIT
  7. 140  REM  ** ACES ARRAYS T$   **
  8. 150  REM  ** BOARD ARRAYS D$(H,V)
  9. 160  REM  ** REMAINDER ARRAY R$ 
  10. 170  DIM P$(52),N$(13),S$(4),R$(25),D$(7,20),T$(4)
  11. 180  PRINT  CHR$(17):SS = 49200
  12. 190  FOR N = 1 TO 13: READ N$(N): NEXT : FOR N = 1 TO 4: READ S$(N): NEXT 
  13. 200  DATA   A,2,3,4,5,6,7,8,9,10,J,Q,K,C,D,S,H
  14. 210 P = 0: FOR S = 1 TO 4: FOR N = 1 TO 13:P = P +1:P$(P) = N$(N) +"-" +S$(S): NEXT : NEXT 
  15. 220  TEXT : HOME 
  16. 230  IF GP = 0  THEN  VTAB 10: HTAB 15: INVERSE : PRINT "S O L I T A I R E": NORMAL : VTAB 20: HTAB 20: PRINT "<<<BY  J.H.G>>>"
  17. 240  CALL  -1052
  18. 250  IF JS = 0  THEN  VTAB 23: HTAB 6: PRINT "< USING  JOYSTICK ? (Y/N) >";: GET A$: IF A$ = "Y"  THEN JS = 1:Y = 3:X = 5:Y1 = Y:X1 = X
  19. 260  IF GP = 0  THEN  VTAB 23: HTAB 6: PRINT "< NEED INSTRUCTIONS ? (Y/N) >";: GET I$: IF I$ = "Y"  THEN  GOSUB 7000
  20. 270  VTAB 23: HTAB 6: PRINT "<HOLD OPEN APPLE TO SHUFFLE>";:R =  RND(1): IF  PEEK(49249) <140  THEN 270
  21. 280  FOR N = 1 TO 100:S =  PEEK(SS): NEXT 
  22. 290 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$
  23. 300 B = B +1: IF B >13  THEN B = 1
  24. 310  VTAB 16: HTAB 3 *B: PRINT N$(B);"         ";: IF  PEEK(49249) >120  THEN 290
  25. 320  HOME : VTAB 8: HTAB 15: PRINT "PREPARING YOUR DECK: ";
  26. 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 
  27. 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 **
  28. 350  PRINT " ";: FLASH : PRINT "****";: NORMAL 
  29. 360  VTAB 23: HTAB 5: IF JS = 0  THEN  PRINT "<SPACE BAR TO DEAL>";: GET A$: HOME 
  30. 370  IF JS  THEN  VTAB 23: HTAB 5: PRINT "<PULL STICK TO DEAL>";: IF  PDL(1) <150  THEN 370
  31. 380  HOME 
  32. 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)
  33. 400  IF H = V  THEN A$ =  RIGHT$(P$(P),1): IF A$ = "H"  OR A$ = "D"  THEN  INVERSE 
  34. 410  IF H = V  THEN  VTAB V +4: HTAB 5 *H -4: PRINT D$(H,V);: NORMAL : PRINT " "
  35. 420  NEXT : NEXT 
  36. 430  FOR N = 1 TO 24:P = P +1:S =  PEEK(SS):R$(N) = P$(P): VTAB 23: HTAB 10: INVERSE : PRINT "****": NORMAL : NEXT 
  37. 440 RT = 24:Q = 3: REM  ** RT=# IN REMAINDER PILE, Q=PLACE IN PILE **
  38. 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:"
  39. 460  IF JS  THEN  VTAB 24: HTAB 32: PRINT "QUIT";
  40. 470  VTAB 23: HTAB 15:A$ =  RIGHT$(R$(3),1): IF A$ = "H"  OR A$ = "D"  THEN  INVERSE 
  41. 480  PRINT R$(3): NORMAL 
  42. 490  REM  **********************
  43. 500  REM  **  MAIN PROGRAM    **
  44. 510  IF A$ = "Q"  THEN 860
  45. 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)
  46. 530  PRINT : PRINT : PRINT : VTAB 21: HTAB 1: PRINT  TAB( 11)"1" TAB( 21)"2" TAB( 31)"3        "
  47. 540  IF A <1  OR A >3  OR B <1  OR B >3  THEN 600: REM  --ILLEGAL MOVE--
  48. 550 Q = 0: FOR N = 1 TO RG:Q = Q +P(B,N): IF P(A,N) = 0  OR Q >0  THEN  NEXT N: GOTO 600
  49. 560  REM   *** CLEAR JUMP TO 315             FOR MOVE.  ***
  50. 570  COLOR= 0: HLIN 10 *A -9,10 *A +9 AT L *P(A,N): COLOR= C: PLOT 10 *A,L *P(A,N): COLOR= N: IF N = 16  OR N = 32  THEN  COLOR= N +1
  51. 580 D = P(A,N): IF D >9  THEN D = 9
  52. 590  HLIN 10 *B -WD *D,10 *B +WD *D AT L *P(A,N):P(B,N) = P(A,N):P(A,N) = 0: GOTO 400
  53. 599  REM   #600 ******
  54. 600  FOR J = 0 TO 1:J = 0: REM  **PLAY LOOP **
  55. 610  IF JS  THEN  CALL  -1052:CS = 0: GOSUB 6000:F$ = TT$:CS = 1: GOSUB 6000:T$ = TT$
  56. 620  IF JS = 0  THEN  CALL  -1052: VTAB 23: HTAB 20: PRINT "FROM ? ";: GET F$: PRINT F$" TO ? ";: GET T$: PRINT T$;
  57. 630 F =  VAL(F$):T =  VAL(T$)
  58. 640 C = 0: IF T = 0  THEN C = 1: REM  :**PLAY ON ACES **
  59. 650  IF T >0  THEN C = 2: REM  :**PLAY ON BOARD **
  60. 660  IF (F <1  OR F >8)  OR (T <0  OR T >7)  THEN C = 5: REM  **ERROR FIX **
  61. 670  IF F$ = T$  THEN C = 3: REM  :**DEAL 3 **
  62. 680  IF F$ = "Q"  AND T$ = "Q"  THEN C = 4: REM   **TO QUIT ** 
  63. 690  ON C GOSUB 1000,2000,3000,4000,5000: REM  **ACES,BOARD,DEAL,QUIT,ERROR
  64. 700  IF C = 4  THEN J = 1
  65. 710  IF JS = 0  THEN  VTAB 23: FOR N = 20 TO 34: HTAB N: PRINT " ";: NEXT 
  66. 720  NEXT J: REM  **PLAY LOOP **
  67. 730  IF JS = 0  THEN  VTAB 23: HTAB 2: PRINT "<SPACE BAR TO PLAY>  ...<Q> TO QUIT";: CALL  -1052: GET A$: ON A$ < >"Q" GOTO 220
  68. 740  IF JS  THEN  VTAB 23: HTAB 2: PRINT "<PULL STICK TO PLAY>....<PUSH TO QUIT>";:BZ =  PEEK(SS):PD =  PDL(1): IF PD <150  AND PD >100  THEN 740
  69. 750  IF JS  THEN  ON PD >150 GOTO 220: REM  ** NEXT GAME ***
  70. 760  PRINT : PRINT : PRINT ,"GOODBYE...": END : REM  ******************
  71. 770  FOR R = 1 TO 3
  72. 780  IF S(R) = 1  THEN UP = R
  73. 790  IF S(R) >Q  THEN Q = S(R):LO = R
  74. 800  NEXT 
  75. 810 MI = 6 -UP -LO
  76. 820  IF T/2 =  INT(T/2)  THEN A = MI:B = LO: RETURN 
  77. 830  IF (S(MI) -S(UP))/2 =  INT((S(MI) -S(UP))/2)  THEN A = UP:B = LO: RETURN 
  78. 840 A = UP:B = MI: RETURN 
  79. 850  REM  ***********TO MAIN.*****
  80. 860  PRINT : PRINT : PRINT : IF W = 1  THEN  GOTO 880
  81. 870  PRINT "YOU MOVED "T -1,;: FLASH : PRINT " AND FAILED !": NORMAL :S = 49200: FOR BT = 1 TO 50:BZ =  PEEK(S) + PEEK(S) + PEEK(S) + PEEK(S): NEXT BT: GOTO 900: REM   BUZZ SOUND
  82. 880  INVERSE : PRINT "YOU SOLVED PUZZLE IN "T -1" MOVES!": NORMAL 
  83. 890  FOR BL = 1 TO RG: CALL  -1052: NEXT BL: REM   BELL SOUND
  84. 900 X = 2 ^RG -1
  85. 910  PRINT "-BEST SO FAR FOR "RG" RINGS IS "X" MOVES."
  86. 920  INPUT "WANT TO PLAY AGAIN? (Y/N) ";C$
  87. 930  IF C$ >"NO"  THEN  GOTO 160
  88. 940  TEXT : HOME : PRINT "E N D .": END 
  89. 999  REM  #1000 *** SUB TO PLAY ON ACES ************
  90. 1000  IF F <8  THEN FS$ =  RIGHT$(SB$(F),1):FRN$ =  LEFT$(SB$(F),1)
  91. 1010  REM  ** FS$=FROM-SUIT/FRN$=FROM-NUMBER
  92. 1020  IF F = 8  THEN FS$ =  RIGHT$(R$(Q),1):FRN$ =  LEFT$(R$(Q),1)
  93. 1030 W = VB(F) -VT(F) +1
  94. 1040  FOR N = 1 TO 4: IF S$(N) = FS$  THEN FS = N
  95. 1050  NEXT : REM  ** PICKS SUIT PILE=FS
  96. 1060 TN$ =  LEFT$(T$(FS),1): REM   ** TOP NUMBER OF THE ACES PILE **
  97. 1070 TR = 0: FOR N = 1 TO 13: IF  LEFT$(N$(N),1) = FRN$  THEN FR = N
  98. 1080  IF  LEFT$(N$(N),1) = TN$  THEN TR = N
  99. 1090  NEXT : IF FR < >TR +1  THEN  FOR N = 1 TO 200:S =  PEEK(SS) + PEEK(SS): NEXT : RETURN : REM  ** ERROR **
  100. 1100  REM  ** IF HERE->LEGAL MOVE TO ACES PILE **
  101. 1110  IF F = 8  THEN 1190: REM  ** FROM REMAINDER PILE TO ACE STACK **
  102. 1120  VTAB 4 +VB(F): HTAB 5 *F -4: PRINT "    ": IF FS$ = "D"  OR FS$ = "H"  THEN  INVERSE 
  103. 1130  VTAB 1: HTAB 14 +FS *5: PRINT "    "
  104. 1140  VTAB 1: HTAB 14 +FS *5: PRINT SB$(F): NORMAL :T$(FS) = SB$(F):D$(F,VB(F)) = "":VB(F) = VB(F) -1:SB$(F) = D$(F,VB(F)): IF W = 1  THEN ST$(F) = SB$(F):VT(F) = VB(F)
  105. 1150 A$ =  RIGHT$(SB$(F),1): IF A$ = "D"  OR A$ = "H"  THEN  INVERSE 
  106. 1160  IF VB(F) >0  THEN  VTAB 4 +VB(F): HTAB 5 *F -4: PRINT "    ": FOR P = 1 TO 200: NEXT : VTAB 4 +VB(F): HTAB 5 *F -4: PRINT SB$(F): NORMAL 
  107. 1170  RETURN 
  108. 1180  REM  ** NOW FROM REMAINDER PILE TO ACES: **
  109. 1190  VTAB 23: HTAB 15: PRINT "                       ":T$(FS) = R$(Q):A$ =  RIGHT$(R$(Q),1): IF A$ = "D"  OR A$ = "H"  THEN  INVERSE 
  110. 1200  VTAB 1: HTAB 14 +FS *5: PRINT "    ": VTAB 1: HTAB 14 +FS *5: 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
  111. 1210  IF Q >RT  THEN Q = RT
  112. 1220  NORMAL : IF Q = RT  THEN  VTAB 23: HTAB 10: PRINT "    "
  113. 1230 A$ =  RIGHT$(R$(Q),1): IF A$ = "D"  OR A$ = "H"  THEN  INVERSE 
  114. 1240  VTAB 23: HTAB 15: PRINT R$(Q): NORMAL : RETURN 
  115. 1250  REM  ******************************
  116. 1999  REM  #2000 **** SUB BOARD PLAY ****
  117. 2000  IF F <8  THEN FS$ =  RIGHT$(ST$(F),1):FRN$ =  LEFT$(ST$(F),1)
  118. 2010  REM  ** FS$=FROM-SUIT/FRN$=FROM-NUMBER
  119. 2020  IF F = 8  THEN FS$ =  RIGHT$(R$(Q),1):FRN$ =  LEFT$(R$(Q),1)
  120. 2030  IF FRN$ = ""  THEN  FOR N = 1 TO 50:S =  PEEK(SS) + PEEK(SS): NEXT : RETURN : REM  ** ERROR **
  121. 2040  REM  **TS$=TO-SUIT/TN$=TO-NUMBER
  122. 2050 TS$ =  RIGHT$(SB$(T),1):TN$ =  LEFT$(SB$(T),1)
  123. 2060  REM  ** NOW CHECK KINGS **
  124. 2070  IF FRN$ = "K"  AND VB(T) = 0  THEN  VTAB 23: HTAB 35: PRINT "K";: FOR P = 1 TO 10:ZZ =  PEEK(SS): NEXT : VTAB 23: HTAB 35: PRINT " ";: GOTO 2190
  125. 2080  IF VB(T) = 0  THEN K = 0: VTAB 23: HTAB 35: FOR N = 1 TO 7: IF  LEFT$(ST$(N),1) = "K"  AND VT(N) = 1  THEN K = K +1: PRINT "K";:ZZ =  PEEK(SS)
  126. 2090  IF VB(T) = 0  THEN  NEXT : FOR N = 1 TO 4: IF  LEFT$(T$(N),1) = "K"  THEN K = K +1: PRINT "K";:ZZ =  PEEK(SS)
  127. 2100  IF VB(T) = 0  THEN  NEXT : VTAB 23: HTAB 35: PRINT "    ": IF K = 4  THEN 2190: REM  ** ALL KINGS OUT **
  128. 2110  REM  ** FC/TC=FROM COLOR/TO COLOR:  FR/TR=FROM RANK/TO RANK:**
  129. 2120 FC = 0: IF FS$ = "D"  OR FS$ = "H"  THEN FC = 1: REM  ** RED/INVERSE **
  130. 2130 TC = 0: IF TS$ = "D"  OR TS$ = "H"  THEN TC = 1: REM  ** RED/INVERSE **
  131. 2140  IF FC = TC  THEN  FOR N = 1 TO 200:S =  PEEK(SS) + PEEK(SS): NEXT : RETURN : REM  ** ERROR **
  132. 2150 TR = 0: FOR N = 1 TO 13: IF  LEFT$(N$(N),1) = FRN$  THEN FR = N
  133. 2160  IF  LEFT$(N$(N),1) = TN$  THEN TR = N
  134. 2170  NEXT : IF TR < >FR +1  THEN  FOR N = 1 TO 200:S =  PEEK(SS) + PEEK(SS): NEXT : RETURN : REM  ** ERROR **
  135. 2180  REM  ** IF HERE: LEGAL MOVE **
  136. 2190  IF F = 8  THEN S =  PEEK(SS): GOTO 2290: REM  ** FROM REMAINDER PILE TO BOARD-1 CARD ONLY **
  137. 2200 W = VB(F) -VT(F) +1: REM  ** # OF CARDS TO MOVE **
  138. 2210  FOR N = 1 TO W: VTAB 3 +VT(F) +N: HTAB 5 *F -4: PRINT "    ":D$(T,VB(T) +N) = D$(F,VT(F) +N -1):D$(F,V
  139. 2220  PRINT D$(T,VB(T) +N): NORMAL :S =  PEEK(SS): NEXT 
  140. 2230 SB$(T) = D$(T,VB(T) +W):VB(T) = VB(T) +W:VT(F) = VT(F) -1:VB(F) = VT(F):ST$(F) = D$(F,VT(F)):SB$(F) = ST$(F):A$ =  RIGHT$(ST$(F),1): IF A$ = "D"  OR A$ = "H"  THEN  INVERSE 
  141. 2240  IF VT(T) = 0  THEN VT(T) = 1:ST$(T) = D$(T,1)
  142. 2250  FOR N = 1 TO 200: NEXT : REM  ** PAUSE **
  143. 2260  IF VT(F) >0  THEN  VTAB 4 +VT(F): HTAB 5 *F -4: PRINT "    ": VTAB 4 +VT(F): HTAB 5 *F -4: PRINT ST$(F)
  144. 2270  NORMAL : RETURN 
  145. 2280  REM  ** NOW FROM REMAINDER PILE: **
  146. 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 
  147. 2300  IF VT(T) = 0  THEN VT(T) = 1:ST$(T) = D$(T,1)
  148. 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
  149. 2320  IF Q >RT  THEN Q = RT
  150. 2330  NORMAL : IF Q = RT  THEN  VTAB 23: HTAB 10: PRINT "    "
  151. 2340 A$ =  RIGHT$(R$(Q),1): IF A$ = "D"  OR A$ = "H"  THEN  INVERSE 
  152. 2350  VTAB 23: HTAB 15: PRINT R$(Q): NORMAL : RETURN 
  153. 2360  REM  ***************************************
  154. 2999  REM  #3000 ****  SUB DEAL REMAINDER  *******
  155. 3000  VTAB 23: HTAB 10: PRINT "                         ": FOR N = 1 TO 100: NEXT 
  156. 3010  IF Q = RT  THEN Q = 0
  157. 3020 Q = Q +3: IF Q >RT  THEN Q = RT
  158. 3030  VTAB 23: HTAB 15:A$ =  RIGHT$(R$(Q),1): IF A$ = "D"  OR A$ = "H"  THEN  INVERSE 
  159. 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 
  160. 3050  IF RT >1  THEN  VTAB 23: HTAB 10: INVERSE : PRINT "****": NORMAL 
  161. 3060  IF Q = RT  THEN  VTAB 23: HTAB 10: INVERSE : PRINT "    ": NORMAL 
  162. 3070  RETURN 
  163. 3080  REM  **************************************
  164. 3999  REM  #4000 ****  SUB TO QUIT GAME  ********
  165. 4000 Z = 0: FOR H = 1 TO 7: IF VT(H) >1  THEN Z = 1:H = 7: REM  ** LOSE **
  166. 4010  NEXT : IF RT >1  THEN Z = 1: REM  **LOSE **
  167. 4020 GP = GP +1: IF Z = 0  THEN  FOR N = 1 TO 3: CALL  -1052: NEXT :GW = GW +1: REM  **WIN **
  168. 4030  IF Z = 1  THEN  FOR N = 1 TO 200:S =  PEEK(SS) + PEEK(SS): NEXT : REM  **LOSE **
  169. 4040  TEXT : HOME : VTAB 10: HTAB 20: IF Z = 0  THEN  PRINT "Y O U    W I N !!!"
  170. 4050  IF Z = 1  THEN  PRINT "Y O U     L O S E !!!"
  171. 4060  VTAB 15: HTAB 10: PRINT GW" WON / "GP" PLAYED = " INT((GW/GP) *100 +.5)" %": RETURN 
  172. 4999  REM  #5000 ******  SUB TO FIX ERROR  ******
  173. 5000  FOR N = 1 TO 200:S =  PEEK(SS) + PEEK(SS): NEXT : VTAB 23: HTAB 20: PRINT "                 ": RETURN 
  174. 5999  REM  #6000 ****  JOYSTICK SUB  ********
  175. 6000  FOR JJ = 0 TO 1  STEP 0: INVERSE :H = (5 *X -3) *(Y = 3) +2 *(Y = 1) +(20 +13 *(X = 7)) *(Y = 23)
  176. 6010  IF CS  THEN V =  VAL(F$): IF V >0  AND V <8  THEN A$ =  LEFT$(ST$(V),1)
  177. 6020  IF CS  THEN  IF V = 0  THEN A$ = "?"
  178. 6030  IF CS  THEN  IF V = 8  THEN A$ =  LEFT$(R$(Q),1)
  179. 6040  IF CS  THEN  IF F$ = "Q"  THEN A$ = F$
  180. 6050  VTAB Y: HTAB H: PRINT "-";:X1 = X:Y1 = Y: IF CS  THEN  HTAB H: PRINT A$
  181. 6060  REM  *** ADJUST JOY HERE ****
  182. 6070  FOR PP = 0 TO 1  STEP 0
  183. 6080 PX =  PDL(0): IF  PEEK(49249) >140  THEN JJ = 1:SQ = 300:PP = 1
  184. 6090 PY =  PDL(1): IF (PX >140  OR PX <114)  OR (PY >150  OR PY <104)  THEN PP = 1
  185. 6100 M =  RND(1)
  186. 6110  NEXT PP: REM  ** LOOPS TILL CHANGED **
  187. 6120 X = X +(PX >140) -(PX <114):SQ = 1 + ABS(PX -127)/10:Y = Y +20 *(PY >150) -20 *(PY <104)
  188. 6130  IF X <1  THEN X = 1
  189. 6140  IF X >7  THEN X = 7
  190. 6150  IF Y <3  THEN Y = 1
  191. 6160  IF Y = 21  THEN Y = 3
  192. 6170  IF Y >3  THEN Y = 23
  193. 6180 BZ =  PEEK(SS) + PEEK(SS): NORMAL : VTAB Y1: HTAB H: PRINT " ": FOR P = 1 TO 200/SQ: NEXT 
  194. 6190  NEXT JJ
  195. 6200 W = X1 *(Y1 = 3) +8 *(Y1 = 23)
  196. 6210 TT$ =  STR$(W): IF X1 = 7  AND Y1 = 23  THEN TT$ = "Q"
  197. 6220  RETURN : REM  ** TO PLAYER SEQUENCE **
  198. 6230  REM  *********************************
  199. 6999  REM  #7000 *** SUB INSTRUCTIONS ******
  200. 7000  HOME : SPEED= 100: IF JS  THEN 7030
  201. 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."
  202. 7020  PRINT : PRINT : PRINT "HIT   <Q>   TWICE   TO  QUIT.": GOTO 7050
  203. 7030  PRINT : PRINT : PRINT "USE JOYSTICK TO POSITION CURSOR": PRINT : PRINT "TO DESIRED PILE,  THEN": PRINT : PRINT "PRESS FIRE BUTTON TO PICK UP": PRINT : PRINT "OR PLACE CARDS.": PRINT : PRINT : PRINT 
  204. 7040  PRINT "<FIRE BUTTON> TWICE TO SORT BY THREE'S.": PRINT : PRINT : PRINT "POSITION CURSOR BY 'QUIT' AND PRESS": PRINT : PRINT "TWICE TO QUIT."
  205. 7050  SPEED= 255: VTAB 23: HTAB 2: PRINT "<SPACE BAR>  TO  BEGIN  SOLITAIRE...";: GET A$: HOME : CALL  -1052: RETURN