home *** CD-ROM | disk | FTP | other *** search
/ A.N.A.L.O.G. Magazine 1987 May / 88_may.atr / cloudhop.act < prev    next >
Text File  |  2023-02-26  |  10KB  |  1 lines

  1. ; CLOUDHOPPER¢; by Greg Knauss¢; Copyright 1988 by ANALOG Computing¢;¢;      CHECKSUM DATA¢;[18 D4 B3 2E 68 04 47 59 ¢; 71 18 1B 42 6A 87 2F A5 ¢; 43 14 66 25 C6 F3 5E 4D ¢; B6 7D 89 AC 89 8E D3 91 ¢; EE 91 06 0F 15 B6 73 E9 ¢; 1B 3C D3 B4 01 7B 6E 54 ¢; 97 68 B8 C0 93 69 93 C7 ¢; 31 ]¢¢BYTE ST=[0],PM,Y,UP,X,S,P,OONS,ES,¢ LIVES,CHX=[10],CHY=[40],FG¢BYTE ARRAY CSPD(4),CX(4),CCNT(4)¢INT X1,CX1=[1]¢INT ARRAY CDIR(4)¢CARD SC,J,I,CH,DRB,SCN,SCR=[0]¢¢PROC DLIST()¢[112 112 68 0 0 4 4 4 68 0 0 68 0 0¢4 4 68 0 0 68 0 0 4 4 68 0 0 68 0 0¢4 4 68 0 0 68 0 0 4 4 68 0 0 4¢69 0 0 70 0 0 2 2 7 7 65 DLIST]¢RETURN¢¢PROC PLRVBI()¢[162 3 189 244 6 240 89 56 221 240 6¢240 83 141 254 6 106 141 255 6 142¢253 6 24 169 0 109 253 6 24 109 252¢6 133 204 133 206 189 240 6 133 203¢173 254 6 133 205 189 248 6 170 232¢46 255 6 144 16 168 177 203 145 205¢169 0 145 203 136 202 208 244 76 87¢6 160 0 177 203 145 205 169 0 145¢203 200 202 208 244 174 253 6 173¢254 6 157 240 6 189 236 6 240 48 133¢203 24 138 141 253 6 109 235 6 133¢204 24 173 253 6 109 252 6 133 206¢189 240 6 133 205 189 248 6 170 160¢0 177 203 145 205 200 202 208 248 ¢174 253 6 169 0 157 236 6 202 48 3¢76 2 6 76 98 228 0 0]¢RETURN¢¢PROC VBINIT()¢[169 7 162 6 160 0 32 92 228 96]¢RETURN¢¢PROC CHSTORE()¢[0 0 0 0 0 0 0 0¢0 0 1 21 170 0 0 0¢0 1 85 85 169 10 0 0¢5 85 85 85 106 170 0 0¢85 85 85 85 149 169 10 0¢85 85 85 89 85 170 170 0¢0 85 85 85 106 170 168 0¢0 0 85 85 149 170 0 0¢0 0 0 90 168 128 0 0¢3 3 15 15 15 63 252 255¢0 192 195 207 243 243 243 255¢0 0 3 207 243 243 255 255¢48 240 240 252 252 252 255 255¢15 63 255 255 255 255 63 15¢192 240 252 252 252 252 240 192¢1 1 1 1 15 15 15 0¢255 195 185 181 173 157 195 255¢255 247 247 247 247 247 247 255¢255 195 253 195 191 191 195 255¢255 195 253 227 253 253 195 255¢255 187 187 193 251 251 251 255¢255 195 191 195 253 253 195 255¢255 195 191 131 189 189 195 255¢255 129 253 251 247 247 247 255¢255 195 189 195 189 189 195 255¢255 195 189 193 253 253 195 255¢0 0 0 0 192 192 192 0¢255 255 255 255 255 255 255 255¢0 240 204 240 204 204 240 0¢0 204 204 204 48 48 48 0¢0 60 192 192 204 204 60 0¢0 252 204 252 240 204 204 0¢0 252 192 240 192 192 252 0¢0 204 204 240 204 204 204 0¢0 204 252 252 252 252 204 0¢0 48 204 252 204 204 204 0¢0 204 204 204 204 204 252 0¢0 252 192 252 12 12 252 0¢255 193 191 195 253 253 131 255¢255 193 191 191 191 191 193 255¢255 195 189 189 189 189 195 255¢255 131 189 189 131 167 185 255¢255 129 191 143 191 191 129 255¢255 255 231 231 255 231 231 255¢255 255 255 255 255 255 255 85¢253 253 253 253 253 253 253 253¢253 253 253 253 253 253 253 85¢253 253 253 253 253 244 208 64¢64 208 244 253 253 253 253 253¢255 255 255 255 127 31 7 1¢3 15 63 255 255 255 255 255¢253 255 255 255 127 31 7 1¢0 64 208 244 253 255 255 85¢0 0 0 0 0 64 208 80]¢RETURN¢¢PROC GUYCLOTHES()¢[56 60 0 0 36 126 255 90 126 60 60 60¢126 126 24 0 ¢28 60 0 0 36 126 255 90 126 60 60 60¢126 126 24 0]¢RETURN¢¢PROC GUYFACE()¢[0 0 40 60 24 0 0 129 126 24 24 24 24¢126 24 0¢0 0 20 60 24 0 0 129 126 24 24 24 24¢126 24 0]¢RETURN¢¢PROC COPTER() ¢[240 16 56 77 143 222 124 48¢30 16 56 77 143 222 124 48¢15 8 28 178 241 123 62 12¢120 8 28 178 241 123 62 12]¢RETURN¢¢PROC CLOUDS()¢[5 6 7 6 7 6 5 4 5 6 7 8 0 0 0 1 2 3¢ 4 5 6 5 6 7 8 0 0 0 0 1 2 3 4 5 6 7¢ 6 7 8 0 0 1 2 3 4 5 4 5 6 7 6 7 2 8¢ 1 2 3 7 8 0 0 0 1 2 3 2 3 4 5 6 7 6¢ 7 8 1 8 0 0 0 0 1 2 3 7 8 0 0 1 2 3¢ 4 5 4 3 4 5 6 7 6 7 8 0 0 0 0 1 2 3¢ 4 5 6 7 8 0 0 0 1 2 3 4 5¢¢ 0 0 1 2 3 4 5 6 5 6 7 8 0 0 0 0 1 2¢ 3 4 5 7 8 0 0 0 0 1 2 3 4 5 4 5 6 7¢ 8 0 0 0 0 0 1 2 8 0 0 0 1 2 3 4 5 4¢ 6 7 8 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7¢ 8 1 8 0 0 0 0 0 0 1 8 1 2 3 7 8 0 0¢ 0 0 0 0 0 1 2 3 4 5 6 5 4 5 6 7 8 0¢ 0 0 0 0 0 1 2 3 4 5 6 5¢¢ 0 0 0 0 0 1 2 3 4 6 7 8 0 0 0 0 0 1 ¢ 2 7 8 0 0 0 0 0 0 1 2 3 6 7 8 0 0 0¢ 1 2 3 4 5 4 5 6 5 6 7 8 0 0 0 0 0 1¢ 2 3 7 8 0 0 1 2 3 4 5 4 7 8 0 0 0 0¢ 0 1 8 0 0 0 0 1 2 3 4 6 7 8 1 8 1 2¢ 3 5 7 8 0 0 0 0 0 1 2 3 6 7 8 0 1 8¢ 0 0 0 1 2 3 4 5 6 5 6 7¢¢ 0 0 0 0 1 2 7 8 0 0 0 0 0 0 0 0 0 0¢ 1 8 0 0 0 0 0 0 0 0 0 1 7 8 0 0 0 0¢ 0 0 0 1 2 3 4 6 7 2 8 0 0 0 0 0 0 0¢ 1 2 3 6 7 8 1 2 7 8 0 0 0 0 0 0 1 2¢ 8 1 8 0 0 0 0 0 0 1 2 3 5 6 7 8 0 0¢ 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6¢ 5 6 7 8 0 0 1 2 8 0 0 0¢¢ 5 6 7 8 0 0 0 0 0 0 0 0 0 0 0 0 0 1¢ 2 7 8 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3¢ 4 5 6 5 4 5 6 7 8 0 0 0 0 0 0 0 0 0¢ 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 4 5¢ 6 7 8 1 2 7 8 0 0 0 0 0 0 0 0 0 0 0¢ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0¢ 1 2 3 4 5 4 5 6 7 8 0 0¢¢ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0¢ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0¢ 0 0 0 0 0 0 0 0 1 2 3 4 3 4 5 6 7 6¢ 7 6 5 4 5 6 7 8 0 0 0 0 0 0 0 0 0 0¢ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0¢ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0¢ 0 0 0 0 0 0 0 0 0 0 0 0]¢¢PROC SETCLOUDS()¢FOR J=1 TO 120 DO¢S=PEEK(CLOUDS+J+ST*120)¢ POKE(J+SC+160,S)¢ POKE(J+SC+640,S) OD¢FOR J=1 TO 120 DO¢S=PEEK(CLOUDS+J+(ST+1)*120)¢ POKE(J+SC+400,S)¢ POKE(J+SC+880,S) OD¢¢FOR J=1 TO 40 DO¢ S=PEEK(CLOUDS+J+ST*120)¢ POKE(SC+1120+J,S)¢ I=RAND(4)+9 POKE(SC+1320+J,I)¢ IF I=9 THEN I=13 FI¢ POKE(SC+1280+J,I-1) OD¢RETURN¢¢PROC RNDCLD()¢CSPD(I)=RAND(3)+9-ST*2¢RETURN¢¢PROC MOVECLDS()¢FOR I=0 TO 3 DO¢CCNT(I)==+1¢WHILE CCNT(I)>CSPD(I) DO¢IF CX(I)=77 THEN CDIR(I)=-1 RNDCLD()¢ FI¢IF CX(I)=0 THEN CDIR(I)=1 RNDCLD() FI¢CX(I)==+CDIR(I)¢POKEC(DLIST+I*8+9,SC+CX(I)+I*240+160)¢CCNT(I)=1¢OD OD¢RETURN¢¢PROC BALLOONS()¢P=0¢FOR I=5 TO 35 DO¢P=RAND(4)¢IF P=0 THEN J=1 FI¢IF P=1 THEN J=7 FI¢IF P=2 THEN J=13 FI¢IF P=3 THEN J=19 FI¢POSITION(I,J) PRINT("-.»´")¢I==+5 OD¢RETURN¢¢PROC PAUSE()¢SNDRST() POKE(764,255) ¢WHILE PEEK(764)<>33 DO OD¢POKE(764,255)¢RETURN¢¢PROC PRNTSCR()¢POKEC(88,SCN)¢POSITION(12,0) PRINTC(SCR)¢POKEC(88,SC)¢RETURN¢¢PROC BURN()¢POKE(DLIST+45,SC+32*40+1)¢P=1 IF CX1=1 THEN P=17 FI¢POKE(1775,P)¢FOR I=1 TO 300 DO OD¢POKE(DLIST+45,SC+33*40+1)¢P=9 IF CX1=1 THEN P=25 FI¢POKE(1775,P)¢FOR I=1 TO 300 DO OD¢RETURN¢¢PROC CHMOVE()¢CHX==+CX1*((ST/2)+1)¢IF CHX<3 OR CHX>252 THEN CX1=-CX1¢CHY=RAND(5)*32+40 FI¢POKE(53251,CHX) POKE(1783,CHY)¢IF CHX<X THEN SOUND(1,190+(CHX MOD 4)¢ *20,14,(CHX-X)/17-3) FI¢IF CHX>X THEN SOUND(1,190+(CHX MOD 4)¢ *20,14,(X-CHX)/17-3) FI¢RETURN¢¢PROC BLOOGA()¢SOUND(0,0,0,0)¢I=3 J=(X-50)/4-1¢DO¢P=LOCATE(J,I)¢I==+1 IF I=24 THEN I=0 J==+1 FI¢UNTIL P=45 OD¢SOUND(0,50,10,10)¢POSITION(J,I-1) PRINT("      ")¢OONS==+1 IF OONS=6 THEN ES=1 FI¢SCR==+10+I*(ST+1) PRNTSCR()¢UP=16 SOUND(0,0,0,0)¢RETURN¢¢PROC POS()¢POKE(53248,X) POKE(53249,X)¢ POKE(53250,X)¢POKE(1780,Y) POKE(1781,Y)¢ POKE(1782,Y+16)¢RETURN¢¢PROC SETUP()¢GRAPHICS(0) POKE(559,0) POKE(82,0)¢ POKE(752,1) POKE(82,0)¢SCN=PEEKC(88) SC=(PEEK(106)-16)*256¢POKEC(DLIST+3,SC)¢POKEC(DLIST+9,SC+4*40+1)¢POKEC(DLIST+12,SC+7*40+1)¢POKEC(DLIST+17,SC+10*40+1)¢POKEC(DLIST+20,SC+13*40+1)¢POKEC(DLIST+25,SC+16*40+1)¢POKEC(DLIST+28,SC+19*40+1)¢POKEC(DLIST+33,SC+22*40+1)¢POKEC(DLIST+36,SC+25*40+1)¢POKEC(DLIST+41,SC+28*40+1)¢POKEC(DLIST+45,SC+32*40+1)¢J=PEEKC(88) POKEC(DLIST+48,J)¢POKEC(560,DLIST)¢MOVEBLOCK(1536,PLRVBI,160)¢PM=PEEK(106)-32 DRB=PM*256+1¢ZERO(DRB+1024,1024) POKE(623,36)¢POKE(1788,PM+4)¢POKE(53277,3) POKE(54279,PM)¢POKE(1771,PM)¢POKE(1784,16) POKE(1785,16)¢ POKE(1786,1) POKE(1787,8)¢POKE(1772,17) POKE(1773,17)¢ POKE(1774,1) POKE(1775,1)¢POKE(53259,3)¢MOVEBLOCK(DRB,GUYFACE,32)¢MOVEBLOCK(DRB+256,GUYCLOTHES,32)¢FOR I=0 TO 256 DO POKE(DRB+I+512,24)¢ OD¢MOVEBLOCK(DRB+256*3,COPTER,32)¢VBINIT()       ¢POKE(704,30) POKE(705,84) POKE(706,15)¢POKE(707,2) POKE(708,15) POKE(709,8)¢POKE(710,52) POKE(711,42)¢POKE(712,7*16)¢POSITION(0,0)¢PRINTE("†††††הוזחטי†††††††††")¢PRINT("††††††††††††††††††††")¢CH=(PEEK(106)-24)*256¢MOVEBLOCK(CH,CHSTORE,512)¢POKE(756,CH/256)¢ST=0¢FOR I=0 TO 4 DO¢ CDIR(I)=1¢ CSPD(I)=RAND(3)+10-ST*2¢ CX(I)=RAND(70)+1¢ CCNT(I)=1 OD¢ZERO(SC,2000) SETCLOUDS()¢RETURN¢¢PROC TITLE()¢POKE(53278,0) POKE(77,0) POKEC(88,SC)¢POSITION(0,7)¢PRINTE¢ ("           RLN M   RLP M M ;LP")¢PRINTE¢ ("           M   M   M M M M M M")¢PRINTE¢ ("           QLN LLN QLO QLO LLO")¢POSITION(0,13)¢PRINTE¢ ("         M M RLP ;;P ;;P ;LN ;;P")¢PRINTE¢ ("         ;LM M M ;LO ;LO ;N  ;;O")¢PRINTE¢ ("         N N QLO N   N   LLN NSTU")¢POSITION(14,20)¢PRINT("¶©á®™ij®áIJאבגדד")¢PRNTSCR() SETCLOUDS() MOVECLDS()¢POKE(559,62) X=120 Y=169 POS()¢DO¢MOVECLDS() BURN() CHMOVE()¢IF PEEK(53279)=5 THEN ST==+1¢ IF ST=5 THEN ST=0 FI SETCLOUDS()¢ FOR I=0 TO 3 DO RNDCLD() OD FI¢UNTIL PEEK(53279)=6 OR STRIG(0)=0 OD¢POKE(764,255)¢ZERO(SC+7*40,120)¢ZERO(SC+13*40,120)¢ZERO(SC+20*40,40)¢SCR=0 LIVES=3 UP=0 X1=0 OONS=0 FG=0¢POKEC(88,SCN)¢POSITION(12,0) PRINT("0††††")¢POKEC(88,SC)¢RETURN¢¢PROC MAIN()¢DO¢SETUP() TITLE()¢BALLOONS()¢WHILE LIVES>0 DO     ¢X1=0 X=120¢DO¢ES=0¢WHILE ES=0 DO¢POKE(77,0) MOVECLDS()¢S=STICK(0)¢P=PEEK(53254)¢IF S=7 THEN POKE(1772,1) POKE(1773,1)¢ FI¢IF S=11 THEN POKE(1772,17)¢ POKE(1773,17) FI¢IF P=1 OR P=2 THEN ¢ IF S=7 THEN X1=1 FI               ¢ IF S=11 THEN X1=-1 FI FI¢IF PEEK(53263)=3 THEN X1=CX1 FI¢IF X>200 THEN X1=-1 X==-1 FI¢IF X<50 THEN X1=1 X==+1 FI¢X==+X1¢IF UP=0 THEN SOUND(0,0,0,0) FI¢Y==+1¢IF UP=0 AND (P=1 OR P=2) THEN UP=5¢ X1=0¢ IF S=14 OR S=10 OR S=6 OR STRIG(0)=0¢  THEN UP=25 FI¢ IF S=10 OR S=11 THEN X1=-1 FI¢ IF S=6 OR S=7 THEN X1=1 FI FI¢IF Y<5 THEN UP=0 FI ¢IF UP=0 AND (P=1 OR P=2) THEN¢ UP=5 FI¢IF UP>0 THEN UP==-1 Y==-2¢ SOUND(0,UP*5+50,10,4) FI¢IF UP>5 THEN Y==-1 FI¢POS()¢IF PEEK(53252)=4 AND Y<180¢ THEN BLOOGA() FI¢POKE(53278,0)¢IF Y=180 AND UP=0 THEN ES=2¢ FOR J=181 TO 240 DO MOVECLDS() Y==+1¢ X==+X1 POS() CHMOVE() BURN() OD FI¢BURN() CHMOVE()¢IF PEEK(764)=33 THEN PAUSE() FI¢IF SCR>999 AND FG=0 THEN FG=PEEK(705)¢ POKE(705,2) LIVES==+1 FI¢OD¢IF OONS=6 THEN FOR J=4 TO Y/3 DO Y==-3¢ POS() BURN() CHMOVE() MOVECLDS()¢ SOUND(0,Y+50,10,4) OD¢ SNDRST() X=120 Y=1 UP=0 X1=0 POS()¢ ST==+1 IF ST=5 THEN ST=3 FI¢ SETCLOUDS() BALLOONS() OONS=0 FI¢UNTIL ES=2 OD  ¢P=PEEK(705)¢IF P=84 THEN S=118 FI¢IF P=118 THEN S=184 FI¢POKE(705,S)¢IF FG>1 THEN POKE(705,FG) FG=1 FI¢LIVES==-1¢Y=240 UP=40¢WHILE STRIG(0)=1 DO MOVECLDS() BURN()¢CHMOVE()¢POKE(764,255)¢OD¢X=0 POS()¢OD¢OD¢¢