›; UPWARD by Greg Knauss››; CHECKSUM DATA›;[6A 3D EB A8 39 AC 1E D9 ›; FF 74 FC 62 C0 0B 27 6C ›; 92 E6 FF 87 E9 7E E6 9F ›; AA A6 E8 78 A7 9A 95 62 ›; 80 D9 29 79 79 70 EF 7C ›; C0 85 AA CD 1A B4 EF EB ›; B8 E1 E9 F2 DD FB 7B D0 ›; 45 29 D6 58 AB 75 E8 7E ›; 8F 16 A5 2E D9 6E 31 61 ]››BYTE› P,PLY=1780,PIC,PL=1784,PD=1772,› DRW=[1],SKX,SKY=1782,SPIC=[1],› SSP=[3],SAC=[80],SCT=[0],DAX,› DAY=1783,DART,Y,S,I,L,PM,PC=53253,› PPC=53260,SLO,SHI,LO,HI,N,V,ES,STR,› SN,LNS=[0]››BYTE ARRAY› ST="D:UPSET.A"››INT› X1,Y1,K,SX,SY,DX,DY››CARD› DRB,DL,CH,SC=[0],HSC=[0],AIR,J›››PROC DLIST()› [112 112 112 71 0 0 6 2› 0 2 128 0 101 0 0 37› 37 37 37 37 37 37 37 37› 5 65 0 0]›RETURN›››PROC DLI()› [ 72 169 0 141 10 212 141 22› 208 169 0 141 23 208 169 0› 141 24 208 169 0 141 25 208› 169 0 141 10 212 169 0 141› 26 208 169 0 141 9 212 104› 64]›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 CHSTORE()› [170 170 170 170 170 170 170 170› 85 170 170 170 170 170 170 170› 0 85 170 170 170 170 170 170› 0 0 85 170 170 170 170 170› 0 0 0 85 170 170 170 170› 0 0 0 0 85 170 170 170› 0 0 0 0 0 85 170 170› 0 0 0 0 0 0 85 170› 0 0 0 0 0 0 0 85› 168 32 0 0 0 0 0 0› 170 42 32 0 0 0 0 0› 170 42 34 0 0 0 0 0› 170 170 170 168 32 0 0 0› 170 170 170 170 168 32 0 0› 170 170 170 170 170 168 32 0› 170 170 170 170 170 170 40 32› 0 0 0 0 0 0 0 0› 85 170 170 170 170 170 170 32› 85 170 42 42 42 10 10 0› 85 170 170 168 168 160 128 128› 0 0 64 128 144 164 168 169› 0 0 0 0 0 0 0 0› 0 0 0 0 0 0 0 0› 1 2 2 6 10 26 42 106› 170 42 42 10 10 2 2 2› 170 168 160 128 128 128 0 0› 125 190 190 190 174 190 190 190› 48 60 60 60 12 60 60 60› 186 190 190 190 174 190 190 190› 255 255 255 255 255 255 255 255› 255 191 191 191 175 175 171 170› 255 254 254 250 250 234 170 170› 170 171 175 175 191 191 255 255› 170 234 234 250 250 250 254 254]›RETURN›››PROC GPIX()› [ 56 56 56 16 124 254 186 186› 186 124 56 40 40 40 40 108› 56 186 186 146 254 124 56 56› 56 56 56 40 40 40 40 108› 184 184 186 210 122 62 60 56› 56 60 60 44 40 44 32 96› 56 186 186 146 254 124 56 56› 56 56 56 40 40 40 40 108› 58 58 186 150 188 248 120 56› 56 120 120 104 40 104 8 12› 28 24 28 8 28 60 60 62› 60 30 31 17 50 34 32 48› 28 24 28 8 60 125 95 94› 28 28 28 54 98 66 67 0› 28 24 28 8 28 60 60 60› 62 28 108 60 20 4 4 6› 28 24 28 8 28 28 28 28› 28 28 30 30 28 8 8 12› 56 24 56 16 56 60 60 124› 60 120 248 136 76 68 4 12› 56 24 56 16 60 190 250 122› 56 56 56 108 70 66 194 0› 56 24 56 16 56 60 60 60› 120 56 54 60 24 16 16 48› 56 24 56 16 56 56 56 56› 56 56 120 120 56 8 8 24› 56 58 58 18 126 252 184 184› 184 120 56 40 40 40 40 108]›RETURN›››PROC SPIX()› [ 0 0 0 0 0 0 40 186› 214 124 56 16 40 56 214 124› 56 16 40 56 84 254 186 16› 40 56 84 254 56 16]›RETURN›››PROC MUS()› [ 0 0 0 0 150 0 100 100 › 0 0 75 0 100 100 0 55› 75 100 0 100 75 55 0 0]›››PROC MUS1()› [250 0 0 250 0 0 250 0› 0 250 0 0 250 0 0 250› 0 0 250 0 0 250 0 0]›››PROC SETUP()› Graphics(0)› Poke(82,0)› Poke(752,1)› PrintE(" ")› CH=(Peek(106)-40)*256› MoveBlock(CH+80,CHSTORE,272)› Zero(CH,8)› DL=PeekC(560)› SHI=Peek(106)-36› SLO=0› MoveBlock(DL,DLIST,29)› J=PeekC(88)› PokeC(DL+4,J)› PokeC(DL+13,SHI*256)› PokeC(DL+26,DL)› Zero(704,9)› Poke(DLI+2,0)› Poke(DLI+10,0)› Poke(DLI+15,0)› Poke(DLI+20,0)› Poke(DLI+25,0)› Poke(DLI+35,CH/256)› PokeC(512,DLI)› Poke(54286,192)› MoveBlock(1536,PLRVBI,160)› PM=Peek(106)-16› DRB=PM*256+1› Zero(DRB+1024,1024)› Poke(623,4)› Poke(559,62)› Poke(1788,PM+4)› Poke(53277,3)› Poke(54279,PM)› Poke(1771,PM)› PL=16› Poke(1785,3)› PD=1› Poke(1773,1)› SKY=6› SKX=0› Poke(1786,6)› Poke(1774,0)› Poke(1787,1)› Poke(1775,1)› MoveBlock(DRB,GPIX,240)› MoveBlock(DRB+511,SPIX,30)› FOR J=DRB TO DRB+2 DO› Poke(J+256,56)› Poke(J+512+255,60)› OD› POKEC(548,PLRVBI) ›RETURN›››PROC OXY()› Color=32› Plot(38,2)› DrawTo(AIR/200+5,2)›RETURN›››PROC LIFE()› Color=32› Plot(38,1)› DrawTo(STR/6-2,1)›RETURN›››PROC PLAY()› V==+2› IF V>15 THEN› N==+1 V=0 › Sound(0,0,0,0)› Sound(1,0,0,0)› FI› IF N=24 THEN› N=0› FI› J=Peek(MUS+N)› IF J>0 THEN› Sound(0,J,12,15-V)› FI› J=Peek(MUS1+N)› IF J>0 THEN› Sound(1,J,10,15-V)› FI› RETURN›››PROC MOVE()› PLY==+Y1› P==+X1› Poke(53248,P)› Poke(53249,P)› Poke(1781,PLY+15)› Poke(704,15)› IF PPC=6 THEN› STR==-1› Poke(704,70)› LIFE()› FI› IF PPC=10 OR PPC=8 THEN› STR==-25› Poke(53251,0)› DART=0› LIFE()› FI›RETURN›››PROC SRTDRT()› DART=0› Poke(53251,0)› DAX=Rand(50)+100› DAY=0›RETURN›››PROC BANG()› DAX=DAX+DX› Poke(53251,DAX)› IF DAX=2 OR DAX=252 THEN› DART=0› SRTDRT()› FI›RETURN›››PROC SKYLER()› IF SCT=SSP THEN› SCT=0› IF SKX MOD SAC=0 THEN› SX=0› SY=0› IF SKX

P THEN› SX=-1› FI› IF SKYPLY THEN› SY=-1› FI› FI› SPIC==+1› IF SPIC=5 THEN› SPIC=1› FI› Poke(1774,SPIC*6)› SKY==+SY› SKX==+SX› Poke(53250,SKX)› FI› SCT==+1›RETURN›››PROC WAY()› X1=0› Y1=0› IF S=14 THEN› Y1=-1› LO=1› HI=4› FI› IF S=13 THEN› Y1=1› LO=1› HI=4› FI› IF S=7 THEN› X1=1› LO=5› HI=8› FI› IF S=11 THEN› X1=-1› LO=9› HI=12› FI› IF X1<>0 THEN› K=X1› FI›RETURN›››PROC LEGAL()› IF PC=0 THEN› Y1=1› X1=0› FI› IF PC=1 OR PC=9 THEN› Y1=0› FI› IF PC=2 THEN› P==-K› Y1=1› X1=0› FI› IF PC=3 THEN› Y1=-1› FI› IF PC=4 OR PC=6 THEN› X1=0› FI› IF P<48 THEN› P=48› FI› IF P>202 THEN› P=202› FI›RETURN›››PROC ANIMATE()› IF S=15 THEN› IF PC=1 OR PC=5 OR PC=9 THEN› PD=DRW› FI› IF PC=0 THEN› PD=DRW+16› FI› FI› IF PC=1 OR PC=9 THEN› IF S=13 OR S=14 THEN› PD=DRW+208› S=15› FI› FI› IF (S=7 OR S=11) AND› (PC=4 OR PC=6) THEN› S=15› FI› IF S<>15 THEN› IF (X1<>0 AND P MOD 2=0) OR› (PC<>0 AND Y1<>0 AND› PLY MOD 3=0) OR› (PC=0 AND (S=7 OR S=11)) THEN› PIC==+1› FI› IF PICHI THEN› PIC=LO› FI› PD=DRW+PIC*16› FI›RETURN›››PROC JUMP()› IF X1=1 THEN› PD=DRW+96› FI› IF X1=-1 THEN› PD=DRW+160› FI› FOR I=1 TO 40 DO› IF I>35 THEN› Y1=2› FI› IF I<19 THEN› Y1=1› FI› IF I<11 THEN› Y1=0› FI› IF I<8 THEN› Y1=-1› FI› IF I<4 THEN› Y1=-2› FI› Poke(53278,0)› FOR J=1 TO 750 DO OD› IF (PC=4 OR PC=6) AND I>10 THEN› PD=DRW+32› FI› IF PC>0 AND PC<>2 AND I>10 THEN› RETURN› FI› IF PLY=189 OR STR<54 THEN› RETURN› FI› IF P<48 OR P>202 THEN› X1=-X1› K=X1› FI› IF PC=2 THEN› X1=-X1› FI› MOVE()› SKYLER()› PLAY()› IF DART=1 THEN› BANG()› FI› OD›RETURN›››PROC DN()› SndRst()› FOR S=1 TO 6 DO› FOR I=0 TO 15 DO› Poke(54277,I)› PLY==-1› SKY==-1› DAY==-1› Poke(1781,PLY+15)› FOR J=1 TO 100 DO OD› OD› Poke(54277,0)› SLO==+40› IF SLO<40 THEN› SHI==+1› FI› Poke(DL+13,SLO)› Poke(DL+14,SHI)› OD› SRTDRT()› SC==-10›RETURN›››PROC UP()› SndRst()› FOR S=1 TO 6 DO› Poke(54277,15)› SLO==-40› IF SLO>215 THEN› SHI==-1› FI› Poke(DL+13,SLO)› Poke(DL+14,SHI)› I=15› FOR Y=1 TO 16 DO› Poke(54277,I)› I==-1› PLY==+1› SKY==+1› DAY==+1› Poke(1781,PLY+15)› FOR J=1 TO 100 DO OD› OD› OD› SRTDRT()› SC==+10›RETURN›››PROC FADEIN()› FOR I=0 TO 15 DO› Poke(704,I)› Poke(707,I)› Poke(710,I)› IF I<5 THEN› Poke(DLI+20,64+I)› FI› IF I<5 THEN› Poke(712,144+I)› FI› IF I<7 THEN› Poke(DLI+10,48+I)› Poke(709,I)› FI› IF I<9 THEN› Poke(DLI+2,48+I)› Poke(706,I)› FI› IF I<11 THEN› Poke(DLI+15,I)› FI› IF I<13 THEN› Poke(708,32+I)› FI› FOR J=1 TO 2000 DO OD› Sound(0,200,8,15-I)› OD›RETURN›››PROC PLRGO()› FOR I=0 TO 3 DO› Poke(704+I,0)› Poke(53248+I,0)› OD› DN()› PLY=200› DN()› Poke(559,0)› Poke(712,0)› UP()› PLY=50› UP()›RETURN›››PROC PAUSE()› Poke(764,255)› SndRst()› Position(27,0)› Print("PAUSED")› WHILE Peek(764)<>33 DO OD› Position(27,0)› Print(" ")› Poke(764,255)›RETURN›››PROC TITLE()› SndRst()› J=PeekC(88)› Poke(77,0)› Poke(88,SLO-40)› Poke(89,SHI-1)› Print("***> B*C ")› Print(" A******")› Print("***C 3 ")› Print(" B******")› Print("*** ")› Print(" 4B****")› Print("**C + + ++> + ")› Print("+ A+> ++> ++> 3B**")› Print("*C * * * * * ")› Print("* * * * * *B* B*")› Print("*> * * *+C * + ")› Print("* *+* *+C * * *")› Print("** *>* * *>*A")› Print("* * * *B> *A* A*")› Print("**> B*C * B***")› Print("C * * * B>**C A**")› Print("B**+++++++++++++++++")› Print("+++++++++++++++++**C")› Print(" 3456789876543456789")› Print("8987654345678987653 ")› Zero(SHI*256+400,600)› PokeC(88,J)› Print("} ŐĐ×ÁŇÄ")› Position(4,1)› Print("Copyright 1985 ")› Print("ANALOG Computing")› IF HSC=0 THEN› Position(13,2)› Print("By Greg Knauss")› FI› IF HSC>0 THEN› Position(13,2)› Print("High Score: ")› PrintC(HSC)› FI› AIR=6600› STR=246› SN=1› N=0› V=0› P=183› PLY=187› S=15› PIC=0› MOVE()› FADEIN()› FOR L=1 TO 5 DO› PLY=187› PD=DRW+208› FOR J=1 TO 10000 DO OD› PD=DRW› FOR J=1 TO 10000 DO OD› OD› SRTDRT()› S=11› WHILE Peek(53279)<>6 AND› STrig(0)<>0 DO› AIR=6600› STR=246› IF P=190 THEN› S=11› FI› IF P=58 THEN› S=7› FI› PLY=187› WAY()› MOVE()› ANIMATE()› SKYLER()› PLAY()› Poke(53278,0)› FOR J=1 TO 700 DO OD› IF Peek(53279)=5 THEN› SSP==-1› SCT=0› IF SSP=0 THEN› SSP=3› FI› SndRst()› FOR J=1 TO 250 DO› Sound(0,J,10,15-J/16)› OD› FI› IF Peek(53279)=3 THEN› SAC==-20› IF SAC=0 THEN› SAC=80› FI› SndRst()› FOR J=1 TO 250 DO› Sound(0,250-J,10,15-J/16)› OD› FI› IF P=DAX AND DART=0› AND DAY=0 THEN› DART=1› DAY=Rand(100)+75› DX=Rand(2)› IF DX=0 THEN› DX=-3› DAX=245› FI› IF DX=1 THEN› DX=3› DAX=3› FI› FI› IF DART=1 THEN› BANG()› FI› IF DART=0 THEN› SRTDRT()› FI› OD› SC=110› PLRGO()› SHI=SHI+4› Poke(DL+14,SHI)›RETURN›››PROC ERR()› Close(1)› IF SN=1 THEN› Position(0,1)› Print(" Please insert a ")› PrintE("disk with Upward sets ")› Print(" present and press")› Print(" the  ôňéççĺň . ")› Poke(712,149)› Poke(559,62)› WHILE STrig(0)=1 DO OD› SSP==+1› SAC==+20› Poke(559,0)› Poke(712,0)› FI› SN=1› SSP==-1› IF SSP=0 THEN› SSP=1› SAC==-20› IF SAC=0 THEN› SAC=20› SSP=1› FI› FI› Open(1,"D:UPSET.A",4,0)›RETURN›››PROC READSET()› IF LNS=0 THEN› Close(1)› LNS=1› Poke(ST+9,SN+64)› Error=ERR› Open(1,ST,4,0)› FOR J=0 TO 2999 DO› S=GetD(1)› Poke(SHI*256+J,S)› OD› FI› Close(1)› AIR=6600› STR=246› ES=0› Print("} ŐĐ×ÁŇÄ")› Position(2,1)› Print("Str:              ")› Print("                  ")› Position(2,2)› Print("Air:              ")› Print("                  ")› FOR J=3000 TO 3079 DO› Poke(SHI*256+J,10)› OD› Poke(559,62)› FADEIN()› FOR P=1 TO 11 DO› DN()› PLY=200› OD› PD=DRW› Poke(704,0)› P=185› PLY=187› MOVE()› FOR I=0 TO 15 DO› Poke(704,I)› FOR J=1 TO 3000 DO OD› OD›RETURN›››PROC GOGOGO()› DO› SETUP()› TITLE()› DO› READSET()› WHILE ES=0 DO› Poke(77,0)› IF PC=8 OR PC=10 OR PC=12 OR› STR<54 OR AIR<54 THEN› ES=1› FI› IF PLY<110 AND SLO=0 THEN› ES=2› FI› AIR==-1› IF AIR MOD 200=0 THEN› OXY()› FI› S=Stick(0)› WAY()› IF STrig(0)=0 AND PC<>0 AND› PC<>2 AND PC<>3 AND› PC<>8 THEN› JUMP()› FI› LEGAL()› MOVE()› SKYLER()› ANIMATE()› PLAY()› Poke(53278,0)› IF P=DAX AND DART=0 AND› DAY=0 THEN› DART=1› DAY=PLY+10› DX=Rand(2)› IF DX=0 THEN› DX=-3› DAX=245› FI› IF DX=1 THEN› DX=3› DAX=3› FI› FI› IF DART=1 THEN› BANG()› FI› IF PLY>189 THEN› DN()› FI› IF PLY<85 THEN› UP()› FI› FOR J=1 TO 700 DO OD› IF Peek(764)=33 THEN› PAUSE()› FI› OD› IF ES=2 THEN› SC==+(STR/3)+(AIR/100)› Poke(706,0)› Poke(707,0)› Position(25,0)› Print("SCORE: ")› PrintCE(SC)› Print(" ")› Print("Congratulations!")› PrintE(" ")› Print(" For next cavern ")› Print("press the  ôňéççĺň .")› WHILE STrig(0)=1 DO› PD=DRW+16› X1=0› SKY=200› JUMP()› FOR J=1 TO 800 DO OD› OD› Zero(SHI*256+400,600)› PLRGO()› SC==+110› LNS=0› SN==+1› FI› UNTIL ES=1› OD› PD=DRW+16› FOR I=0 TO 15 DO› PL==-1› PLY==+1› Poke(704,15-I)› SKYLER()› IF DART=1 THEN› BANG()› FI› PLAY()› FOR J=1 TO 1000 DO OD› OD› S=0› WHILE STrig(0)=1 DO› SKYLER()› IF DART=1 THEN› BANG()› FI› PLAY()› S==+1› IF S=1 THEN› Position(21,0)› Print(" çáíĺ ďöĺň ")› FI› IF S=100 THEN› Position(21,0)› Print(" SCORE: ")› PrintC(SC)› IF SC>HSC THEN› Print("Ş")› FI› Print(" ")› FI› FOR DL=1 TO 800 DO OD› OD› IF SC>HSC THEN› HSC=SC› FI› IF SN>1 THEN LNS=0 FI› OD›RETURN››