1 REM COPYRIGHT 1991 BY MAURICE JONES 4 DIMI,X,Y,T2,FR,A$,BK$,BL$,CA,CH$,DO,F,FC,FS,FV,J,JJ,J%,K,K1,M,RE,S$,S1,S2,S3 5 DIMT,TC,TE,TS,TV,V,VA,Z7,Z9,S4,SU,VA$,VB$:NS=13:NC=52 6 DEFFNS(X)=INT(X/13):DEFFNV(X)=X-13*INT(X/13) 8 JJ=-1:DIMS(NC),X(12),Y(12):FORI=0TONC-1:S(I)=I:NEXT:PRINTCHR$(142) 9 POKE53272,31:POKE198,0 10 GOTO500 19 REM CHOICE 20 GOSUB62 21 FORI=1TOLEN(CH$):IFA$=MID$(CH$,I,1)THENRETURN 22 NEXT: GOTO20 25 REM CHARGE 26 A$="251331421502421502" 27 T=87:POKEF+6,96:POKEF+24,15 28 FORI=1TO18STEP3 29 POKEF+1,VAL(MID$(A$,I,2)):POKEF+4,33 30 FORJ=1TOT*VAL(MID$(A$,I+2,1)):NEXT 31 POKEF+4,0:NEXT:RETURN 34 REM PICK UP 35 IFFR=1THEN52 36 X=X(FR):Y=24:GOSUB66:FORI=1TO17:PRINT" [145][157][157][157][157]";:NEXT 38 IFFR=2ORC(FR+10)=0THEN42 40 X=X(FR):Y=Y(FR):GOSUB66:PRINT"[145]";BK$ 42 RETURN 44 REM TURN DOWN CARD 45 DO=10+FR:IFC(DO)=0ORFR=2ORFR=1THEN52 47 IFC(DO)<>1 THEN49 48 X=X(FR):Y=Y(FR):GOSUB66:PRINT"[145] "; 49 B(FR,1)=B(DO,C(DO)):C(FR)=1:C(DO)=C(DO)-1:I=FR:GOSUB200 52 RETURN 58 X=10:Y=24:GOSUB66:PRINT"[151] PLEASE PRESS A KEY [145][145][145]" 62 GETA$:IFA$=""THEN70:RETURN 66 POKE211,X:POKE214,Y:SYS58732:RETURN 69 REM MULTITASK 70 IFJJ=NC-2THENJJ=-1 71 JJ=JJ+1:J%=JJ+INT(RND(0)*(NC-JJ)):TEMP=S(JJ):S(JJ)=S(J%):S(J%)=TEMP:GOTO62 79 REM PLAY TO TAB 80 X=X(T2):Y=24:GOSUB66:FORI=1TO17:PRINT" [145][157][157][157][157]";:NEXT 81 K=1: IF C(T2)>7THEN90 82 K1=C(T2):I=T2:C(T2)=1:GOSUB200 84 IFK=K1THEN98 86 K=K+1:I=(T2):C(T2)=K:PRINT"";:GOSUB202 88 GOTO84 90 GOSUB35 91 K1=C(T2):I=T2:C(T2)=1:GOSUB200:K=K1-6 92 IFK=K1THENRETURN 94 K=K+1:C(T2)=K:PRINT"";:GOSUB202 96 GOTO92 98 RETURN 110 REM START UP 111 DIMVA$(13),C(18),B(18,24),VB$(13),D(24):F=54272:FORI=FTOF+78:POKEI,0:NEXT 112 CR$="[216][203][202][201][200][199][198][197][196]&[195][194][217]":CS$="[204][215][214][213][212][211][210][209][208]'[207][206][205]" 115 S$(0)="[162]":S$(1)="[173]":S$(2)="[192]":S$(3)="[193]":CO$(0)="[144]":CO$(1)="":CO$(2)="" 116 CO$(3)="[144]":S1$(0)="[161]":S1$(1)="[218]":S1$(2)="[223]":S1$(3)="[176]" 119 FORI=0TO12:VA$(I)=MID$(CR$,I+1,1):VB$(I)=MID$(CS$,I+1,1):NEXT 120 CH$="12345678 FQSCHNB" 121 X=5:FORI=2TO8:X(I)=X:Y(I)=8:X=X+5:NEXT:X=16:FORI=9TO12:X(I)=X:Y(I)=0:X=X+6 122 NEXT:X(0)=0:Y(0)=12:X(1)=0:Y(1)=19 124 BK$="!##$[157][157][157][157]@[170][171]%[157][157][157][157]@[170][171]%[157][157][157][157]@[170][171]%[157][157][157][157]\++*[157][157][157][157][145][145][145][145][145]" 125 BL$=" [157][157][157][157] [157][157][157][157] [157][157][157][157] [157][157][157][157] [157][157][157][157][145][145][145][145][145]" 129 RETURN 130 REM SHUFFLE 131 IFJJ=NC-2THENRETURN 132 JJ=JJ+1:J%=JJ+INT(RND(0)*(NC-JJ)):TEMP=S(JJ):S(JJ)=S(J%):S(J%)=TEMP 133 IFJJ<>NC-2THEN131 134 RETURN 179 REM REPRINT FROM PILE 180 K=1: IF C(FR)>7THEN190 182 K1=C(FR):I=FR:C(FR)=1:GOSUB200 184 IFK=K1THEN198 186 K=K+1:I=(FR):C(FR)=K:PRINT"";:GOSUB202 188 GOTO184 190 GOSUB35 191 K1=C(FR):I=FR:C(FR)=1:GOSUB200:K=K1-6 192 IFK=K1THENRETURN 194 K=K+1:C(FR)=K:PRINT"";:GOSUB202 196 GOTO192 198 RETURN 199 REM PRINT CARD OR ERASE 200 X=X(I):Y=Y(I):GOSUB66 202 CA=B(I,C(I)):SU=FNS(CA):VA=FNV(CA) 204 POKEF+24,6:POKEF+5,128:POKEF+4,129:FORT=1TO50:NEXT:POKEF+4,128:POKEF+5,0 206 POKEF+24,0:POKEF+24,15:POKEF+4,129:POKEF+4,128 208 IFC(I)<>0THEN220 214 REM ERASE CARD 216 PRINTBL$;:RETURN 220 PRINTCO$(SU);VA$(VA);"[179][179][177][157][157][157][157]";S$(SU);"[166][167][174][157][157][157][157][163][170][171][174][157][157][157][157][163][168][169]";S1$(SU); 222 PRINT"[157][157][157][157][180][178][178]";VB$(VA);"[145][145][145][145][145][157][157][157][157]";:RETURN 249 REM PRINT BACK 250 X=X(I):Y=Y(I):GOSUB66 251 IFZ8=1THEN258 252 POKEF+24,6:POKEF+5,128:POKEF+4,129:FORT=1TO50:NEXT:POKEF+4,128:POKEF+5,0 254 POKEF+24,0:POKEF+24,15:POKEF+4,129:POKEF+4,128:IFZ9=1THEN RETURN 258 PRINTBK$:RETURN 500 BG=1:POKE53280,BG:POKE53281,BG:PRINT"[147]" 501 FORI=0TO4:PRINT"[144]  ":NEXT 502 PRINT"[145][145][145][145][176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]" 503 PRINT"[221] K L O N D I K E 1 9 9 2 [255]" 504 PRINT"[173][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][189]" 505 PRINT"[151] A MAURICE JONES SOLITAIRE":GOSUB111:GOSUB131:GOSUB26 506 PRINT"[147]":FORI=1TO18:C(I)=0:NEXT:RE=1 507 PRINT"[144]KLONDIKE 1992":PRINT:PRINT" H-HELP F F F F" 508 PRINT" DEAL 1[157]2 3 4 5 6 7 8" 510 PRINT" 1" 514 K=0:FORI=2TO8:B(I,1)=S(K):K=K+1:C(I)=1: NEXT:FORI=2TO8:GOSUB200 516 FORM=I+1TO8:Y=7:X=X(M):GOSUB66:GOSUB252:NEXT:Z9=1:NEXT 517 FORI=3TO8:FORJ=1TOI-2:C(I+10)=J:B(I+10,J)=S(K):K=K+1:NEXT:NEXT 518 FORI=1TO24:D(I)=S(K):K=K+1:NEXT:C(0)=24 520 I=0:Z9=0:GOSUB250:X=0:Y=10:GOSUB66 522 X=0:Y=10:GOSUB66:PRINT"[156]FROM[157][157][157][157]";:GOSUB20 529 ONIGOTO660,700,700,700,700,700,700,700,600,522,900,1100,1200,1300,870,1400 537 REM TO PILE 538 X=0:Y=10:GOSUB66:PRINT"[156] TO [157][157][157][157]";:GOSUB20 545 ONIGOTO522,710,710,710,710,710,710,710,600,780,900,1100,1200,1300,870 599 REM TURN CARD 600 IFC(0)=0ANDC(1)=0THEN522 601 IFC(0)=0THEN640 602 C(1)=C(1)+1:B(1,C(1))=D(C(0)):C(0)=C(0)-1:I=1:IFC(0)=0THEN 610 604 I=1:GOSUB200:GOTO522 610 I=0:GOSUB200:GOTO604 640 RE=RE+1:X=5:Y=4:GOSUB66:PRINT"[156]";RE 650 X=C(1):FORI=1TOX:D(X)=B(1,I):X=X-1:NEXT:C(0)=C(1):C(1)=0:I=1:GOSUB200 652 Z8=1:I=0:GOSUB250:Z8=0:GOTO522 660 IFC(I)=0THEN522 662 IFFNV(B(I,C(I)))<>0THEN700 664 FC=B(1,C(1)):C(1)=C(1)-1:GOSUB200:I=12-FNS(FC):C(I)=1:B(I,1)=FC:GOSUB200 668 GOTO522 699 REM FROM PILE 700 IFC(I)=0THEN522 702 FR=I:IFFNV(B(I,C(I)))<>0THEN708 704 FC=B(I,C(I)):GOSUB35:I=12-FNS(FC):C(I)=1:C(FR)=C(FR)-1:B(I,1)=FC:GOSUB200 706 GOSUB45:GOTO522 708 FR=I:FC=B(I,1):FS=FNS(FC):FV=FNV(FC):GOTO538 709 REM PLAY TO TAB 710 T2=I:TC=B(I,C(I)):TS=FNS(TC):TV=FNV(TC):IFFR<>1THEN740 712 FC=B(FR,C(FR)):FV=FNV(FC):FS=FNS(FC):IFC(T2)<>0THEN722 716 IFFV<>12THEN522 718 C(1)=C(1)-1:I=1:GOSUB200:C(T2)=1:B(T2,1)=FC:I=T2:GOSUB200:GOTO522 722 IFCO$(FS)=CO$(TS)ORFV+1<>TVTHEN522 724 C(1)=C(1)-1:I=1:GOSUB200:C(T2)=C(T2)+1:B(T2,C(T2))=FC:GOSUB80:GOTO522 739 REM TAB TO TAB 740 IFC(T2)<>0THEN754 744 IFFV<>12THEN522 746 IFC(T2)>7THEN756 748 GOSUB35:FORI=1TOC(FR):C(T2)=C(T2)+1:B(T2,C(T2))=B(FR,I):NEXT:C(FR)=0 750 GOSUB80:GOSUB45:GOTO522 751 IFC(T2)>7THENGOSUB35:GOSUB90:GOSUB45:GOTO522 752 GOSUB80:GOSUB45:GOTO522 754 IFCO$(FS)=CO$(TS)ORFV+1<>TVTHEN522 756 GOSUB35:GOTO748 779 REM PLAY TO F 780 FC=B(FR,C(FR)):FV=FNV(FC):FS=FNS(FC):IFC(12-FS)=0THEN522 781 IFFNV(B(12-FS,C(12-FS)))+1<>FVTHEN522 782 IFFR=1THEN840 790 GOSUB35:I=12-FS:C(I)=C(I)+1:B(I,C(I))=FC:GOSUB200:C(FR)=C(FR)-1 800 IFC(FR)>0THEN830 810 GOSUB45 820 IFC(FR)=0THEN850 830 GOSUB180:GOTO850 840 C(1)=C(1)-1:I=1:GOSUB200:I=12-FS:C(I)=C(I)+1:B(I,C(I))=FC:GOSUB200 850 K=0:FORI=9TO12:K=K+C(I):NEXT:IFK<>52THEN522 860 GOSUB58:GOTO900 870 SYS886:FORI=3TO8:X=X(I):Y=Y(I):GOSUB66 874 IFC(I+10)=0THEN880 876 PRINT"[145][145]";C(I+10) 880 NEXT:GOSUB58:SYS907:GOTO522 899 REM QUIT 900 SYS886:PRINT"[147][159]":POKE53280,0:POKE53281,0 :IFZ7=1THEN903 902 X=10:Y=5:S1=0:GOSUB66:FORI=9TO12:S1=S1+5*C(I):NEXT:S1=S1-50 903 S2=S2+1:S3=S3+S1 904 S4=INT(S3/S2+.5):Z7=0 905 PRINT"[147]": POKE53280,0:POKE53281,0:IFS1<>210THEN910 906 PRINTTAB(6) "[158][213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]" 907 PRINT TAB(6)"[221] PERFECT GAME [221]" 908 PRINT TAB(6)"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203]" 910 PRINTTAB(08)"[156]KLONDIKE SCOREBOARD ":PRINT 912 PRINTTAB(08)"[159] GAME SCORE "S1" ":PRINT 914 PRINTTAB(08)" SESSION SCORE "S3" ":PRINT 916 PRINTTAB(08)" AVERAGE SCORE "S4" " 1002 X=18:Y=16:GOSUB66:PRINT"[158][213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]" 1006 X=18:Y=17:GOSUB66:PRINT"[158][221] 1.NEW GAME [221]" 1008 X=18:Y=18:GOSUB66:PRINT"[158][221] 2.INSPECT TABLEAU [221]" 1010 X=18:Y=19:GOSUB66:PRINT"[158][221] 3.TO LOADSTAR [221]" 1012 X=18:Y=20:GOSUB66:PRINT"[158][202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203]" 1022 GOSUB62:IF A$<"1"ORA$>"3"THEN1022 1023 POKE53280,BG:POKE53281,BG 1024 ONVAL(A$)GOTO506,1050,6000 1049 REM INSPECT 1050 POKE53280,BG:POKE53281,BG:SYS907:FORJ=2TO8:FR=J:GOSUB35:NEXT 1054 FORJ=3TO8:IFC(J+10)=0THEN1060 1056 X=X(J):Y=Y(J):GOSUB66:PRINT"[145]"; 1058 FORM=1TOC(J+10):I=(J+10):C(I)=M:GOSUB202:PRINT"";:NEXT 1060 NEXT 1070 GOSUB58:PRINT"[147]":GOTO905 1099 REM SPREAD 1100 SYS886:X=18:Y=2:GOSUB66:PRINT"[156][213][192][192][192][192][192][192][192][201]" 1101 X=18:Y=3:GOSUB66:PRINT"[156][221] WHICH [221]" 1102 X=18:Y=4:GOSUB66:PRINT"[156][221] PILE? [221]" 1103 X=18:Y=5:GOSUB66:PRINT"[156][202][192][192][192][192][192][192][192][203]" 1104 GOSUB62:IFA$<"2"ORA$>"8"THEN1104 1105 IFC(VAL(A$))=0THENSYS907:GOTO522 1106 FR=VAL(A$):GOSUB35 1108 Y=0:X=(39-C(VAL(A$)))/2-4:GOSUB66 1110 FORJ=1TOC(VAL(A$)):PRINT"";:I=VAL(A$):C(I)=J:GOSUB202:NEXT 1114 GOSUB58:SYS907:GOTO522 1199 REM CLAIM 1200 SYS886 1204 K=0:FORI=13TO18:K=K+C(I):NEXT:IFK=0THEN Z7=1:S1=210:GOTO900 1210 X=13:Y=12:GOSUB66:PRINT"[156][213][192][192][192][192][192][192][192][192][192][192][201]" 1212 X=13:Y=13:GOSUB66:PRINT"[156][221] CARDS IN [221]" 1213 X=13:Y=14:GOSUB66:PRINT"[156][221] TABLEAU [221]" 1214 X=13:Y=15:GOSUB66:PRINT"[156][202][192][192][192][192][192][192][192][192][192][192][203]" 1215 GOSUB58:SYS907:GOTO522 1299 REM HELP 1300 SYS886:Z7=0:PRINT"[147]" 1304 PRINT"[144] K L O N D I K E 1 9 9 2" 1308 PRINT"[151]SPACE BAR [156]TURNS CARDS FROM DECK. WHEN" 1312 PRINT" DECK HAS BEEN EXHAUSTED, [151]SPACE[156] GIVES" 1316 PRINT" REDEAL. 1320 [153] "AT "[199](34)"FROM"[199](34)" PROMPT ENTER NUMBER OF PILE 1324 PRINT" FROM WHICH CARD IS TO BE PLAYED. " 1328 PRINT" ACES WILL BE PLAYED IMMEDIATELY. 1332 [153]"AT "[199](34)"TO"[199](34)" PROMPT ENTER NUMBER OF PILE TO" 1336 [153]" BE PLAYED TO. USE POKEFCLR FOR FOUNDATION." 1340 [153]"AT ANY PROMPT:" 1344 [153]" POKESCLR - SPREAD ANY TABLEAU PILE. 1348 PRINT" [151]C[156] - CLAIM GAME WHEN ALL TABLEAU CARDS" 1352 PRINT" HAVE BEEN UNCOVERED. 1356 [153]" POKEQCLR - END GAME AND DISPLAY SCORE. 1360 PRINT" [151]H[156] - DISPLAY THIS SCREEN. 1364 [153]" POKENCLR - DISPLAY NUMBER OF TABLEAU CARDS. 1366 PRINT" [151]B[156] - CYCLE THROUGH BACKGROUND COLORS. 1380 [141]58:[158]907:[137]522 1400 BG[178]BG[170]1:[139]BG[178]0[176]BG[178]2[176]BG[178]4[176]BG[178]6[176]BG[178]11[167]1400 1410 [139]BG[177]15[167]BG[178]1 1420 [151]53281,BG:[151]53280,BG 1430 [137]522 5999 [143] RECONNECT 6000 [151]V[170]21,0:[151]56,160:[156] 6015 [153]"LOAD":[151]53272,23:[151]53281,0:[151]53280,0 6020 [159]15,8,15,"R0:HELLO CONNECT=HELLO CONNECT":[132]15,ER%:[160]15 6025 [139]ER%[179][177]63[167][128] 6030 [151]646,[194](53281):[153]"LOADLOAD"[199](34)"HELLO CONNECT"[199](34)",8" 6035 [153]"RUN" 6040 [151]631,13:[151]632,13:[151]198,2:[128] 10000 [159]15,8,15,"S0:KLONDIKE":[160]15:[148]"KLONDIKE",8:[128]