0 REM PYRAMID * V3.92 * ROBERT B. COOK 100 GOSUB332:GOSUB294:GOSUB244 102 SC=0:PK=1:MX=83:MY=236:XC=0:YC=6:Y1=6:SYSSP,0,MX,MY:POKESO,1 104 JS=PEEK(56320)AND31:IFJS=31THEN104 106 IFJS=15ANDXC=-2ANDYC=0THEN210 108 IFJS=15THENGOSUB122:IFLO=0THEN210 110 IFJS=27THENMX=MX-16-(MX=51)*16 112 IFJS=23THENMX=MX+16+(MX=307)*16 114 IFJS=30THENMY=MY-24-(MY=92)*24 116 IFJS=29THENMY=MY+24+(MY=236)*24 118 SYSSP,0,MX,MY:GOTO104 120 :: CARD :: 122 XC=(MX-83)/16:YC=(MY-92)/24 124 IFXC<0ORXC>12THEN172 126 IFLO(XC,YC)=-1THENRETURN 128 IFYC=6THEN134 130 T1=LO(XC-1,YC+1):T2=LO(XC+1,YC+1) 132 IF(T1>-1ORT2>-1)ANDPK=1THEN228 134 IFGM=1THEN158 136 IFPK=2THEN142 138 T=VA(LO(XC,YC)):SYSSP,1,MX-32,MY-8:X1=XC:Y1=YC:POKESO,3:GOSUB236 140 PK=2:GOTO168 142 IFXC=X1ANDYC=Y1THENPOKESO,1:PK=1:GOTO168 144 IFYC=6THEN148 146 IF(T1>-1ANDT2>-1)OR((T1>-1ORT2>-1)AND(YC+1>Y1ORABS(XC-X1)<>1))THEN228 148 IFT+VA(LO(XC,YC))<>9THEN228 150 C1=ASC(CC$(LO(X1,Y1))):C2=ASC(CC$(LO(XC,YC))) 152 LO(X1,Y1)=-1:LO(XC,YC)=-1:POKESO,1 154 SYSPA,X1*2+6,Y1*3+4,EC$:SYSPA,XC*2+6,YC*3+4,EC$ 156 LO=LO-2:PK=1:GOSUB200:GOTO168 158 T=ABS(VA(LO(XC,YC))-VA(DS(DS))):IFT<>1ANDT<>9THEN228 160 C1=ASC(CC$(LO(XC,YC))):C2=ASC(CC$(DS(DS))) 162 SYSPA,34,10,CC$(LO(XC,YC))TH$CD$(LO(XC,YC))BH$ 164 SYSPA,XC*2+6,YC*3+4,EC$ 166 LO=LO-1:DS=DS+1:DS(DS)=LO(XC,YC):LO(XC,YC)=-1:GOSUB200 168 WAIT56320,31,15:RETURN 170 :: DECK/DISCARD :: 172 ON-(XC=-2ANDYC=2)-(XC=14ANDYC=2ANDGM=2)*2GOTO174,182:RETURN 174 IFDK<0THEN228 176 SYSPA,34,10,CC$(DK(DK))TH$CD$(DK(DK))BH$ 178 SYSPA,4,13,""DK"[157] ":DS=DS+1:DS(DS)=DK(DK):DK=DK-1 180 PK=1:POKESO,1:GOTO168 182 IFDS<0THEN228 184 IFPK=1ORT+VA(DS(DS))<>9THEN228 186 C1=ASC(CC$(LO(X1,Y1))):C2=ASC(CC$(DS(DS))) 188 LO(X1,Y1)=-1:POKESO,1:DS=DS-1:PK=1 190 SYSPA,X1*2+6,Y1*3+4,EC$ 192 IFDS<0THENSYSPA,34,10,"[158]"TH$" [146]"BH$:GOTO196 194 SYSPA,34,10,CC$(DS(DS))TH$CD$(DS(DS))BH$ 196 LO=LO-1:GOSUB200:GOTO168 198 :: SCORE :: 200 GOSUB222:T=-(C1=C2)*25 202 SC=SC+(7-Y1)*(75+T):SC=SC+(7-YC)*(75+T)*-(XC<14)-(XC=14)*225 204 SYSPA,34,5,""SC:IFTTHENGOSUB240:FORL=0TO1:GOSUB234:GOSUB236:NEXT 206 RETURN 208 :: QUIT :: 210 POKESO,0:IFLO=0THENSC=SC+1500:GOSUB204:FORL=0TO999:NEXT 212 GOSUB280:SYSPA,15,10,"[158]SCORE"SC 214 IFSC>HS(GM)THENHS(GM)=SC:FORL=0TO5:GOSUB234:GOSUB236:NEXT 216 SYSPA,12,14,"[158]HIGH SCORE "HS(GM) 218 GOSUB318:GOSUB244:GOTO102 220 :: BING :: 222 POKEAT,10:POKESR,73:POKEWV,17:POKEHF,50:POKELF,0 224 FORI=0TO333:NEXT:POKEWV,16:RETURN 226 :: BUZZ :: 228 POKEHF,5:POKEAT,0:POKESR,240:POKEWV,33 230 FORI=0TO249:NEXT:POKEWV,32:RETURN 232 :: BEEP :: 234 POKESR,240:POKEHF,50:POKELF,35:GOTO238 236 POKESR,225:POKEHF,33:POKELF,33 238 POKEAT,0:POKEWV,17 240 FORI=0TO99:NEXT:POKEWV,16:RETURN 242 :: SHUFFLE/DEAL :: 244 R=RND(-TI):GOSUB280 246 SYSPA,11,6,"[158]SHUFFLING THE CARDS":GOSUB236 248 FORL=0TO99 250 R1=INT(RND(1)*49):R2=INT(RND(1)*49) 252 T=DK(R1):DK(R1)=DK(R2):DK(R2)=T 254 NEXT 256 FORL=0TO6:FORK=0TO12:LO(K,L)=-1:NEXT:NEXT 258 LO=28:DK=49:POKE781,6:SYS59903 260 FORL=0TO6:PRINT"":FORK=0TOL 262 SYSPA,18-L*2+K*4,L*3+4,CC$(DK(DK))TH$CD$(DK(DK))BH$ 264 LO(6-L+K*2,L)=DK(DK):DK=DK-1 266 NEXT:NEXT 268 SYSPA,2,4,""TH$""BH$"[157] [146][145]UIT":SYSPA,29,5,"[158]SCORE 000" 270 SYSPA,2,10,"[158]"TH$" [146]"BH$TAB(34)CC$(DK(DK))TH$CD$(DK(DK))BH$ 272 DS=0:DS(DS)=DK(DK):DK=DK-1 274 PRINT"DECK"DK+1TAB(32)"DISCARD" 276 RETURN 278 :: SCREEN :: 280 POKE53280,0:POKE53281,0 282 T$=MID$("[193][194]+",GM,1) 284 PRINT"[147]"TAB(8)"[155][@\[@\[@\[@\[@\[@\[@\[149][@\" 286 PRINTTAB(8)"[155]=<>=,>=/>=->=:>=.>=;>[149]="T$">" 288 PRINTTAB(8)"[155]]*^]*^]*^]*^]*^]*^]*^[149]]*^" 290 RETURN 292 :: OPTIONS :: 294 GM=3:GOSUB280 296 SYSPA,3,5,"[158]PYRAMID1 [159][192] PLAY CARDS FROM THE FIELD" 298 PRINT"TO THE DISCARD PILE? FIELD CARD MUST BE" 300 PRINT"ONE NUMBER HIGHER OR LOWER THAN DISCARD?"; 302 PRINT"A 0 OR 9 MAY BE PLAYED ON EACH OTHER?" 304 SYSPA,3,10,"[158]PYRAMID9 [159][192] CHOOSE 2 FIELD CARDS OR A" 306 PRINT"DISCARD AND FIELD CARD THAT TOTAL NINE?" 308 PRINT"CHOOSEN CARD MUST HAVE NO CARD BELOW IT" 310 PRINT"UNLESS FIRST CARD UNCOVERS SECOND CARD?" 312 PRINT" DRAW FROM DECK WHEN OUT OF MOVES?" 314 PRINT"[156] MATCH COLORS FOR BONUS POINTS?" 316 PRINT"[158] USE JOYSTICK PORT2?" 318 SYSPA,5,23,"[159]PYRAMID1[159][192][192][192]PYRAMID9[159][192][192][192]Q[159]UIT" 320 POKE198,0:WAIT198,1:GETG$:FORL=1TO3:IFG$<>MID$("19Q[209]",L,1)THENNEXT:GOTO320 322 GM=L:IFGM<3THENRETURN 324 PRINT"[147]":POKE53270,200:POKE53272,23:POKE1,119:POKE781,0:POKE782,0 326 POKE88,221:POKE89,28:POKE90,187:POKE91,28 328 END:GAME 330 :: INIT :: 332 PRINT"[147]" 334 POKE56334,0:POKE1,51 336 POKE781,9:POKE782,1:POKE88,0:POKE89,64:POKE90,0:POKE91,216 338 SYS41964:POKE1,55:POKE56334,1:POKE53272,30 340 POKE53272,(PEEK(53272)AND240)OR14 342 POKE53270,PEEK(53270)OR16 344 POKE2040,13:POKE2041,14:POKE53287,1:POKE53288,1 346 POKE53276,1:POKE53283,9:POKE53285,10:POKE53277,2:POKE53271,2 348 DIM CD$(49),CC$(49),VA(49),DK(49),DS(49),LO(12,6),HS(2) 350 LF=54272:HF=54273:WV=54276:AT=54277:SR=54278:VL=54296:POKEVL,15 352 SP=49152:PA=49234:SO=53269:POKESO,0 354 FORL=0TO49:DK(L)=L:NEXT 356 FORL=0TO9 358 READT$:CD$(L)=T$:CD$(L+10)=T$:CD$(L+20)=T$:CD$(L+30)=T$:CD$(L+40)=T$ 360 NEXT 362 FORL=0TO40STEP10:READT$:FORK=0TO9:CC$(L+K)=T$:VA(L+K)=K:NEXT:NEXT 364 TH$="[@\[157][157][157]=":BH$=">[157][157][157]]*^[145][145]":EC$="[146] [157][157][157] [157][157][157] " 366 FORL=14336TO14871:READK:POKEL,K:NEXT 368 FORL=832TO959:READK:POKEL,K:NEXT 370 FORL=49152TO49267:READK:POKEL,K:NEXT 372 RETURN 374 :: CARDS :: 376 DATA +,!,_,#,$,%,&,',(,) 378 DATA "[150]","[154]","[153]","[152]","[151]" 380 :: CHARACTERS :: 382 DATA 0,255,255,255,255,255,255,255,0,124,230,254,230,230,230,0 384 DATA 0,252,230,252,230,230,252,0,0,124,230,224,224,230,124,0 386 DATA 0,248,236,230,230,236,248,0,0,254,224,248,224,224,254,0 388 DATA 0,254,224,248,224,224,224,0,0,124,224,238,230,230,124,0 390 DATA 0,230,230,254,230,230,230,0,0,124,56,56,56,56,124,0 392 DATA 0,62,28,28,28,220,120,0,0,236,248,240,248,236,230,0 394 DATA 0,224,224,224,224,224,254,0,0,227,247,255,235,227,227,0 396 DATA 0,230,246,254,238,230,230,0,0,124,230,230,230,230,124,0 398 DATA 0,252,230,230,252,224,224,0,0,124,230,230,230,124,14,0 400 DATA 0,252,230,230,252,238,230,0,0,126,224,124,14,238,124,0 402 DATA 0,254,56,56,56,56,56,0,0,230,230,230,230,230,124,0 404 DATA 0,230,230,230,230,124,56,0,0,227,227,235,255,247,227,0 406 DATA 0,198,238,124,124,238,198,0,0,230,230,124,56,56,56,0 408 DATA 0,254,28,56,112,224,254,0,0,15,63,63,63,63,63,63 410 DATA 0,240,252,252,252,252,252,252,63,63,63,63,63,63,15,0 412 DATA 252,252,252,252,252,252,240,0,215,125,253,245,215,95,127,85 414 DATA 0,0,0,0,0,0,0,0,247,215,247,247,247,247,247,213 416 DATA 102,102,102,0,0,0,0,0,215,125,253,215,253,253,125,215 418 DATA 245,221,125,125,85,253,253,253,85,127,127,87,253,253,125,215 420 DATA 215,125,127,87,125,125,125,215,85,125,253,247,223,223,223,223 422 DATA 215,125,125,215,125,125,125,215,215,125,125,125,213,253,125,215 424 DATA 255,255,255,255,255,255,255,0,215,125,125,117,93,125,125,215 426 DATA 190,190,190,170,235,235,235,235,235,170,174,174,170,174,174,174 428 DATA 170,235,235,235,235,235,235,170,171,170,174,174,171,174,174,174 430 DATA 0,124,230,238,246,230,124,0,0,56,248,56,56,56,254,0 432 DATA 0,124,206,28,112,224,254,0,0,124,206,28,14,206,124,0 434 DATA 0,30,62,110,255,14,14,0,0,254,224,252,14,206,124,0 436 DATA 0,124,224,252,230,230,124,0,0,254,206,28,56,56,56,0 438 DATA 0,124,230,124,230,230,124,0,0,124,206,206,126,14,124,0 440 DATA 190,170,170,170,170,190,190,190,171,170,174,174,174,174,170,171 442 DATA 171,174,174,174,171,175,175,175,63,63,63,63,63,63,63,63 444 DATA 252,252,252,252,252,252,252,252,0,0,0,0,0,28,28,0 446 DATA 0,0,0,126,126,0,0,0,235,171,235,235,235,235,235,170 448 DATA 235,186,186,186,234,250,186,235 450 :: SPRITES :: 452 DATA 170,170,128,149,85,128,149,106,128,149,106,128,149,90,0,149 454 DATA 86,128,153,85,160,154,85,104,154,149,90,170,165,90,168,169 456 DATA 106,0,42,168,0,10,160,0,2,128,0,0,0,0,0,0 458 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 460 DATA 0,7,240,0,12,24,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8 462 DATA 0,8,8,0,12,24,0,7,240,0,0,0,0,0,0,0,0,0,0,0,0 464 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 466 :: ML ROUTINES :: 468 DATA 32,253,174,32,158,183,224,8,176,67,138,10,133,250,56,169 470 DATA 0,42,202,16,252,133,251,32,253,174,32,138,173,32,247,183 472 DATA 201,1,240,14,176,39,169,255,69,251,45,16,208,141,16,208 474 DATA 144,8,173,16,208,5,251,141,16,208,166,250,152,157,0,208 476 DATA 32,253,174,32,158,183,138,166,250,157,1,208,96,162,14,76,58,164 478 DATA 32,253,174,32,158,183,134,2,224,40,176,239,32,253,174,32 480 DATA 158,183,224,25,176,229,164,2,24,32,240,255,32,253,174,76,164,170