1 REM MAURICE JONES,BOX 324,LANEVILLE,TEXAS 75667 MARCH 1989 2 DEFFNS(X)=INT(X/13):DEFFNV(X)=X-13*INT(X/13):DIMI,J,SU,T:GOTO400 3 REM ========RASPBERRY======== 4 : 5 S=54272:POKES+6,240:POKES+1,4:POKES+5,0:POKES+4,33:POKES+24,15 6 FORZ=1024TO512STEP-8:POKES+1,Z/256:POKES,ZAND255:NEXT:POKES+4,0:RETURN 7 : 8 REM==========FANFARE========= 9 : 10 T=87:N$="251331421502421502" 11 S=54272:POKES+6,96:POKES+24,15 12 FORI=1TO18STEP3 13 POKES+1,VAL(MID$(N$,I,2)):POKES+4,33 14 FORJ=1TOT*VAL(MID$(N$,I+2,1)):NEXT 15 POKES+4,0:NEXT:RETURN 16 : 17 REM ======CREATES SCREEN SAVE 18 : 20 FOR I=828TO972:READA:POKEI,A:NEXT:RETURN 22 DATA169,000,133,251,133,253,141 23 DATA055,003,141,057,003,141,059 24 DATA003,162,000,160,000,177,251 25 DATA145,253,200,192,000,208,247 26 DATA230,252,230,254,232,224,004 27 DATA208,238,173,056,003,133,252 28 DATA173,058,003,133,254,238,059 29 DATA003,174,059,003,224,002,208 30 DATA214,096,169,004,133,252,169 31 DATA192,133,254,169,216,141,056 32 DATA003,169,196,141,058,003,076 33 DATA060,003,169,192,133,252,169 34 DATA004,133,254,169,196,141,056 35 DATA003,169,216,141,058,003,076 36 DATA060,003,169,004,133,252,169 37 DATA200,133,254,169,216,141,056 38 DATA003,169,204,141,058,003,076 39 DATA060,003,169,200,133,252,169 40 DATA004,133,254,169,204,141,056 41 DATA003,169,216,141,058,003,076 42 DATA060,003,000,000,000 47 : 48 REM==========AGAIN?============== 49 : 50 X=15:Y=10:W$="[144] AGAIN? [157][157][157][157][157][157][157][157] (Y/N) ":GOSUB66:GOTO62 54 : 55 REM==========ANY KEY-GET A$========= 56 : 58 X=14:Y=24:W$=" ANY KEY [145]":GOSUB66 59 : 60 REM============GET A$=========== 61 : 62 GETA$:IFA$=""THEN 62:RETURN 63 : 64 REM=======PRINT AT============= 65 : 66 POKE783,PEEK(783)AND254:POKE782,X:POKE781,Y:SYS65520:PRINTW$ 68 POKE783,PEEK(783)OR1:RETURN 106 : 107 REM===DIM,DEFINE,ONCE ONLY STUFF=== 109 : 111 NC=52:DIMS(NC),D$(14),VA$(13),C(3),B(3,52):Z9=0 112 FORI=0TO3:READS$(I):READCO$(I):NEXT 113 FORI=0TO12:READVA$(I):NEXT 114 FORI=1TO5:READCH$(I):NEXT 115 DATA"[216]","[144]","[218]","","[211]","","[193]","[144]", 2,3,4,5,6,7,8,9,10,J,Q,K,A 116 DATA"1","2","3","H","Q", 119 C$="[176][192][192][192][192][174][157][157][157][157][157][157][221] [221][157][157][157][157][157][157][221] [221][157][157][157][157][157][157][221] [221]" 120 C$=C$+ "[157][157][157][157][157][157][221] [221][157][157][157][157][157][157][221] [221][157][157][157][157][157][157][173][192][192][192][192][189]"+"[145][145][145][145][145][157][157][157][157][157]" 121 B$=C$+"[166][166][166][166][157][157][157][157][166][166][166][166][157][157][157][157][166][166][166][166][157][157][157][157][166][166][166][166][157][157][157][157][166][166][166][166]" 122 BL$=" [157][157][157][157][157][157] [157][157][157][157][157][157] [157][157][157][157][157][157] [157][157][157][157][157][157] [157][157][157][157][157][157]" 123 BL$=BL$+" [157][157][157][157][157][157] [157][157][157][157][157][157] " 125 REM========SHUFFLE & DEAL====== 126 : 127 FORJ=0TONC-1:S(J)=J:NEXT 128 FORJ=OTONC-2:J%=J+INT(RND(0)*(NC-J)):TEMP=S(J):S(J)=S(J%):S(J%)=TEMP:NEXT 129 FORI=0TO47:B(1,I+1)=S(I):NEXT:FORI=1TO4:B(2,I)=S(I+47):NEXT 130 C(1)=48:C(2)=4:C(3)=0:RETURN 137 : 138 REM ======SUITS,VALUES,GRAPHICS=== 139 : 140 W$=C$+CO$(FNS(B(I,J)))+VA$(FNV(B(I,J)))+S$(FNS(B(I,J))) 146 IF C(I)=0THENW$=BL$ 148 GOTO66 157 : 158 REM=======PRINT BOARD======= 159 : 160 Y=5:X=33:W$=BL$:FORJ=1TO9:GOSUB66:X=X-4:NEXT 162 Y=5:X=1:I=2: A=1:IFC(2)>9THENA=C(2)-8 164 FOR J=ATOC(2):GOSUB140:X=X+4:NEXT:CP=X:RETURN 167 : 168 REM ======TOP OF WASTE========= 169 : 170 Y=13:X=12:I=3:J=C(3):GOSUB140:RETURN 187 : 188 REM=====RESTORE DECK======== 189 : 190 FORI=C(3)TO1STEP-1:C(1)=C(1)+1:B(1,C(1))=B(3,I):NEXT:C(3)=0 192 GOSUB170:FORI=1TO100:NEXT:Y=13:X=3:W$=B$:GOSUB66:RETURN 207 : 208 REM======GET CHOICE ====== 209 : 210 GETA$:IF A$=""THEN210 212 FOR I=1TO5:IFA$=RIGHT$(CH$(I),1)THEN216 214 NEXT:GOTO210 216 RETURN 219 : 220 REM=====HELP SCREEN===== 222 PRINT"[147] [164][175][185][162] MARATHON SOL [162][185][175][164]" 224 PRINT:PRINT:PRINT"THE OBJECT OF THE GAME IS TO PLAY ALL " 226 PRINT"OF THE CARDS TO THE WASTE PILE. CARDS " 228 PRINT"ARE DEALT FROM THE DECK TO THE TABLE, " 230 PRINT"ONE AT A TIME." 232 PRINT:PRINT"ONLY THE TOP FOUR CARDS ON THE TABLE" 234 PRINT"ARE CONSIDERED IN PLAYING TO THE WASTE" 236 PRINT"PILE. IF THE TOP CARD AND THE FOURTH " 238 PRINT"CARD ARE OF THE SAME SUIT, THE TWO " 240 PRINT"CARDS BETWEEN THEM CAN BE PLAYED TO " 242 PRINT"THE WASTE PILE. IF THEY ARE OF THE" 244 PRINT"SAME VALUE, ALL FOUR MAY BE PLAYED TO" 246 PRINT"THE WASTE PILE. " 248 PRINT:PRINT"YOU MAY PLAY THROUGH THE DECK AS MANY" 250 PRINT"TIMES AS YOU LIKE. ONE TIME THROUGH" 252 PRINT"IS THE SHORT GAME. WHEN THE DECK IS " 254 PRINT"USED UP, THE DEAL OPTION WILL CAUSE" 256 PRINT"THE WASTE PILE TO BE TURNED OVER." 260 SYS886:Z9=1:RETURN 297 : 298 REM=====ERASE FOUR======== 299 : 300 Y=5:X=CP-12: FORI=1TO3:W$=BL$:GOSUB66:X=X+4:NEXT:RETURN 397 : 398 REM========START OF PROGRAM======= 399 : 400 Z9=0:POKE53280,1:POKE53281,1:PRINTCHR$(8);CHR$(142):PRINT"[147][144]" 401 PRINT" [164][175][185][162] MARATHON SOL [162][185][175][164]" 402 PRINT:PRINT" BY 403 [153]:[153]" MAURICE JONES 404 PRINT:PRINT: PRINT"EVEN AS WE SPEAK, THE SUBROUTINE AT" 405 PRINT"LINE 20 IS POKING IN FENDER TUCKER'S" 407 PRINT"SCREEN SWITCHING ROUTINE." 409 PRINT:PRINT"WHEN THE 'ANY KEY' PROMPT APPEARS AT" 411 PRINT"THE BOTTOM, PLEASE HIT A KEY TO PROCEED" 413 PRINT"TO THE NEXT SCREEN." 415 GOSUB20:REM==LOAD SCREEN SWITCH==== 417 GOSUB58 419 PRINT"[144][147]" 423 PRINT:PRINT"NOW THE SUBROUTINE AT 111 IS BREAKING" 425 PRINT"OUT AND SHUFFLING A NEW DECK OF CARDS." 427 PRINT:PRINT"WHEN THE GAME SCREEN APPEARS, TYPE 'H'" 429 PRINT "FOR INSTRUCTIONS." 431 PRINT:PRINT"WHEN THE 'ANY KEY' PROMPT APPEARS AT" 433 PRINT"THE BOTTOM, PLEASE HIT A KEY TO PROCEED" 435 PRINT"TO THE NEXT SCREEN." 445 : 446 GOSUB 111: REM== DEAL============ 447 : 450 GOSUB 58:GOTO460 454 PRINT"[147] A MOMENT, PLEASE . . .":GOSUB128 457 : 458 REM =====PLAYING BOARD============= 459 : 460 PRINT"[147] [164][175][185][162] MARATHON SOL [162][185][175][164]" 470 Y=13:X=3:W$=B$:GOSUB66:X=12:W$=B$:GOSUB66:Y=21:X=4:W$="[144]DECK":GOSUB66 474 X=13:W$="WASTE":GOSUB66 480 Y=15:X=25:W$="1-PLAY TWO":GOSUB66:Y=16:W$="2-PLAY FOUR":GOSUB66 484 Y=17:W$="3-DEAL CARD":GOSUB66:Y=20:W$="H-HELP":GOSUB66:Y=21:W$="Q-QUIT" 488 GOSUB66 492 Y=5:X=1:I=2: FORJ=1TO4:GOSUB140:X=X+4:NEXT:CP=X 496 GOSUB 170 500 X=14:Y=24:W$=" CHOICE? [145]":GOSUB66:GOSUB210:ONIGOTO520,560,600,990,995 517 : 518 REM=====PLAY TWO========= 519 : 520 IFC(2)<4THEN522 521 IFFNS(B(2,C(2)-3))=FNS(B(2,C(2)))THEN 524 522 GOSUB5:GOTO500 524 C(3)=C(3)+1:B(3,C(3))=B(2,C(2)-2) 526 C(3)=C(3)+1:B(3,C(3))=B(2,C(2)-1):B(2,C(2)-2)=B(2,C(2)):C(2)=C(2)-2 530 GOSUB300:X=X-12:I=2:J=C(2):GOSUB140:CP=X+4: GOSUB170:IFCP<16THENGOSUB160 534 GOTO500 557 : 558 REM =======PLAY FOUR======= 559 : 560 IFC(2)<4THEN522 566 IFFNV(B(2,C(2)))=FNV(B(2,C(2)-3))THEN572 568 GOSUB5:GOTO500 572 FORI=0TO3:C(3)=C(3)+1:B(3,C(3))=B(2,C(2)-3+I):NEXT:C(2)=C(2)-4 574 GOSUB160:GOSUB170:GOTO500 597 : 598 REM=========DEAL CARD========= 599 : 600 X=14:Y=24:W$=" [145]":GOSUB66 601 IFC(1)=1THEN610 602 IFC(1)>0THEN608 604 IFC(3)=0THEN700 606 GOSUB190 608 C(2)=C(2)+1:B(2,C(2))=B(1,C(1)):C(1)=C(1)-1:GOSUB160:GOTO500 610 Y=13:X=3:W$=BL$:GOSUB66:GOTO608 700 X=12:Y=6:W$=" SORRY, YOU [157][157][157][157][157][157][157][157][157][157][157][157][157][157] HAVE LOST [146]":GOSUB66 702 GOSUB50:GOTO995 797 : 798 REM========WIN SCREEN============ 799 : 800 W$=BL$:X=34:Y=7:GOSUB66:GOSUB10:GOSUB127:W$=" YOU WIN!!! " 802 X=3:Y=1:FORI=1TO22:GOSUB66:X=X+1:Y=Y+1:NEXT:GOTO995 987 : 988 REM========DISPLAY HELP SCREEN==== 989 : 990 SYS928:IF Z9=0THENGOSUB222 991 SYS907:GOSUB58:SYS949:GOTO500 992 : 993 REM=====PLAY AGAIN?======= 994 : 995 GOSUB50:IFA$="N"THEN60000 997 IF A$="Y"THEN454 999 GOSUB 62:GOTO995 60000 OPEN15,8,15,"R0:HELLO CONNECT=HELLO CONNECT":INPUT#15,ER:CLOSE15 60010 IF ER<>63 THEN PRINT"[147]":END 60020 A$="HELLO CONNECT":Q$=CHR$(34) 60030 PRINT"[147]LOAD"Q$A$Q$",8" 60040 PRINT"RUN":POKE631,13: POKE632,13:POKE198,2:END