10 CALL INIT :: V=16 :: READ T$,S$ :: CL(1)=10 :: CL(3)=7 :: CLF=-1 :: LEV=5 :: DIM LY(30) :: DIM LX(30) :: FOR C=1 TO 30 :: READ LY(C),LX(C)
20 NEXT C :: CALL CLEAR :: CALL SCREEN(2) :: FOR C=1 TO 31 :: READ A,A$ :: CALL CHAR(A,A$) :: NEXT C :: FOR C=1 TO 5 :: READ CH$(C) :: NEXT C
30 CALL HCHAR(2,1,136,32) :: CALL HCHAR(23,1,136,32) :: CALL VCHAR(2,1,136,22) :: CALL VCHAR(2,32,136,22)
40 DISPLAY AT(1,1):T$; :: DISPLAY AT(24,1):S$; :: HS,SC=0 :: SF=10
50 FOR C=3 TO 22 :: CALL HCHAR(C,2,32,30) :: NEXT C :: CALL COLOR(2,V,1,3,V,1,4,V,1,5,V,1,6,V,1,7,V,1,8,V,1,9,V,1,13,V,1,14,5,1)
60 ER$="                    " :: TT$="PRESS FIRE1 TO START" :: TS=1 :: PL=10
70 CALL CHAR(128,"FFFFFFFFFFFFFFFF") :: CALL SPRITE(#2,136,5,97,1,#3,136,5,97,249)
80 CALL SPRITE(#4,128,2,97,1,0,60,#5,128,2,97,255,0,-60)
90 DISPLAY AT(13,5):TT$; :: FOR D=0 TO 25 STEP 5 :: CALL KEY(1,K,S) :: IF K=18 THEN 120
100 CALL SOUND(-300,-3,D,110,D) :: NEXT D :: FOR D=20 TO 5 STEP-5 :: CALL KEY(1,K,S) :: IF K=18 THEN 120
110 CALL SOUND(-300,-3,D,110,D) :: NEXT D :: GOTO 90
120 OY,OX=0 :: DISPLAY AT(13,5):ER$; :: FOR D=D TO 30 STEP 2 :: CALL SOUND(-10,-3,D,110,D) :: NEXT D :: CALL DELSPRITE(ALL) :: FOR C=3 TO 22 :: CALL HCHAR(C,2,32,30) :: NEXT C
130 DISPLAY AT(24,14-LEN(STR$(SC))):STR$(SC); :: CALL COLOR(12,1,1) :: Z=INT(RND*30)+1 :: FOR C=1 TO LEV :: CALL HCHAR(LY(Z),LX(Z),120) :: Z=Z+1 :: IF Z=31 THEN Z=1
140 NEXT C :: CALL COLOR(12,9,1) :: YL,OYL=13 :: XL,OXL=17 :: TAR=LEV
150 GOSUB 280 :: CALL JOYST(1,Y,X) :: IF Y=O AND X=0 THEN 150 ELSE Y,X=0
160 CALL HCHAR(YL,XL,128) :: CALL JOYST(1,X,Y) :: IF(Y=0 AND X=0)OR(Y<>0 AND X<>0)THEN 180
170 IF(Y=OY AND Y<>0)OR(-X=OX AND X<>0)THEN 180 ELSE OY=-Y :: OX=X
180 YL=YL+OY/4 :: XL=XL+OX/4 :: CALL GCHAR(YL,XL,GC) :: IF GC=32 THEN 160 ELSE IF GC=120 THEN CALL SOUND(-10,-2,0) :: GOTO 230
190 CALL SCREEN(16) :: CALL SOUND(-1,-5,0) :: CALL CHAR(128,CH$(1)) :: CALL SCREEN(2) :: FOR C=2 TO 5 :: CALL CHAR(128,CH$(C)) :: CALL SOUND(-300,-5,C*2) :: NEXT C
210 FOR C=11 TO 30 STEP 3 :: CALL SOUND(-50,-5,C) :: NEXT C :: DISPLAY AT(12,10):"GAME  OVER"; :: IF SC<=HS THEN 220 ELSE HS=SC :: DISPLAY AT(24,29-LEN(STR$(HS))):STR$(HS);
215 FOR D=1 TO 3 :: FOR C=0 TO 30 STEP 4 :: CALL SOUND(-100,523,C,1047,C) :: NEXT C :: NEXT D
220 DISPLAY AT(24,7):"0000000"; :: CALL COLOR(12,1,1) :: LEV=5 :: SC=0 :: SF=10 :: FOR D=1 TO 1000 :: NEXT D :: GOTO 50
230 CALL SCREEN(16) :: CALL SOUND(-50,-2,5) :: CALL HCHAR(YL,XL,128) :: CALL SCREEN(2) :: TAR=TAR-1 :: CALL SOUND(-50,-2,10) :: CALL SOUND(-10,-2,15)
240 CALL SOUND(-100,-2,20) :: SC=SC+SF :: SF=SF+10 :: DISPLAY AT(24,14-LEN(STR$(SC))):STR$(SC); :: IF TAR>0 THEN 160
250 FOR C=30 TO 0 STEP-3 :: CALL SOUND(-100,-1,C) :: NEXT C :: CALL SOUND(-1,-7,10)
260 CALL CHAR(128,CH$(3)) :: CALL SOUND(-1,-7,4) :: CALL CHAR(128,CH$(4)) :: CALL SOUND(-1,-7,8) :: CALL CHAR(128,CH$(5)) :: CALL SOUND(-1,-7,10)
270 FOR C=12 TO 30 STEP 2 :: CALL SOUND(1,-7,C) :: DISPLAY AT(12,14):STR$(LEV-3); :: NEXT C :: LEV=LEV+1 :: DISPLAY AT(12,14):"  "; :: GOTO 120
280 CALL CHAR(128,"") :: CALL HCHAR(YL,XL,128) :: FOR C=4 TO 2 STEP-2 :: CALL CHAR(128,CH$(C)) :: CALL SOUND(-5,-7,C*5) :: NEXT C :: CALL CHAR(128,"007E424242427E") :: RETURN
290 DATA "CYBER RUN     (C)2010 DSAPSC","SCORE:0000000     HI:0000000",13,8,15,11,6,28
300 DATA 15,16,5,19,18,16,20,21,9,24,11,17,10,3,18,11,4,10,13,6,15,25,17,28,3,29,10,24,6,3,7
310 DATA 17,7,28,3,19,10,15,5,8,18,19,4,26,3,24,4,30,21,2,8,13,6,12,68,FC828282C2C2C2FC,86,8282444464646438
320 DATA 136,FFC3A59999A5C3FF,120,181824C3C3241818,67,FE828080C0C2FEFE,89,828282FE18181818,66,FC828282FCC2FEFC,69,FE8280F8C0C0FEFE
330 DATA 82,FC828282FCD8CCC6,85,82828282C2C2C2FE,73,FE101010181818FE,78,C2A2928AC6C2C2C2,83,7E808080FE0606FE
340 DATA 65,7C828282FEC2C2C2,80,FC828282FCC0C0C0,70,FE808080F0C0C0C0,84,FE10101018181818,79,7C828282C2C2C27C,72,82828282FEC2C2C2
350 DATA 71,FE828080CEC6C6FE,77,C6AA9282C2C2C2C2,48,7C828292D2C2C27C,49,103010103030307C,50,FC020202FCC0C0FE,51,FE0202023E0606FE
360 DATA 52,82828282FE060606,53,FE808080FC0C0CFC,54,80808080FEC2C2FE,55,FE04080818181818,56,7C8282827CC6C67C,57,7E8282827E060606
370 DATA "FFFFFFFFFFFFFFFF","007E42424242427E00","00003C24243C","0000001818","0"
