10 ! SPACEII.BAC 20 ! Ett Spelprogram f|r ABC806+DOTOPT 30 ! Program av Magnus <8042> 1991 40 ! 50 ! "Instruktioner" inlagda i starten <7759> 60 ! 70 INTEGER : EXTEND 75 ATTRIBUTE 1 80 ; CHR$(12) : RANDOMIZE 90 ; '** SPACE II **' 100 ; 'Du styr med "z" och "x"' CHR$(10,10,10) 110 ; 'Tryck tangent f|r att starta '; : GET Z$ 120 ; CHR$(12) 130 Sx=70 140 POKE 56000,62,23,187,250,229,218,1,80,0,6,8,33,0,120,203,57 150 POKE 56016,48,1,25,203,35,203,18,16,245,205,233,218,22,0,25,126 160 POKE 56032,33,0,0,111,201,33,0,0,201,58,238,218,95,201,0 170 POKE 55000,33,127,127,17,207,127,126,18,43,27,62,255,189,194,222,214 180 POKE 55016,62,119,188,194,222,214,33,0,120,6,0,62,32,119,35,4 190 POKE 55032,62,79,184,194,243,214,201 200 REM Startadress = 55000 210 X=INT(150*RND) 220 FGCTL BLK : Z=FNClrskepp(Gx) : Z=CALL(55000) 230 IF FNKrock(Sx)<>0 THEN 300 ELSE Z=FNSkepp(Sx) : Gx=Sx 240 FGCTL BLK : Z=FNHinder1(X) 250 IF SYS(5)=0 THEN 210 260 GET A$ 270 IF A$="z" THEN Sx=Sx-2 : IF Sx<1 THEN Sx=1 280 IF A$="x" THEN Sx=Sx+2 : IF Sx>150 THEN Sx=150 290 GOTO 210 300 ; CHR$(7) 310 ; CUR(10,20);RED DBLE "G A M E O V E R" 320 END 330 DEF FNHinder1(X) 340 ; CUR(0,0);RED;"";WHT : ; CUR(0,79);RED;"" 350 SET DOT 0,X+1 : SET DOT 0,X+2 : SET DOT 0,X+3 : SET DOT 0,X+4 360 SET DOT 1,X : SET DOT 1,X+1 : SET DOT 1,X+2 : SET DOT 1,X+3 : SET DOT 1,X+4 : SET DOT 1,X+5 370 SET DOT 2,X : SET DOT 2,X+1 : SET DOT 2,X+2 : SET DOT 2,X+3 : SET DOT 2,X+4 : SET DOT 2,X+5 380 SET DOT 3,X : SET DOT 3,X+1 : SET DOT 3,X+2 : SET DOT 3,X+3 : SET DOT 3,X+4 : SET DOT 3,X+5 390 SET DOT 4,X+1 : SET DOT 4,X+2 : SET DOT 4,X+3 : SET DOT 4,X+4 400 RETURN 0 410 FNEND 420 DEF FNSkepp(X) 430 SET DOT 65,X+4 : SET DOT 66,X+3 : SET DOT 66,X+4 : SET DOT 66,X+5 : SET DOT 67,X+3 : SET DOT 67,X+5 440 SET DOT 68,X+2 : SET DOT 68,X+3 : SET DOT 68,X+4 : SET DOT 68,X+5 : SET DOT 68,X+6 450 SET DOT 69,X+1 : SET DOT 69,X+2 : SET DOT 69,X+3 : SET DOT 69,X+4 : SET DOT 69,X+5 : SET DOT 69,X+6 : SET DOT 69,X+7 460 SET DOT 70,X : SET DOT 70,X+1 : SET DOT 70,X+2 : SET DOT 70,X+3 : SET DOT 70,X+4 : SET DOT 70,X+5 : SET DOT 70,X+6 : SET DOT 70,X+7 : SET DOT 70,X+8 470 SET DOT 71,X+3 : SET DOT 71,X+4 : SET DOT 71,X+5 480 RETURN 0 490 FNEND 500 DEF FNClrskepp(X) 510 CLR DOT 65,X+4 : CLR DOT 66,X+3 : CLR DOT 66,X+4 : CLR DOT 66,X+5 : CLR DOT 67,X+3 : CLR DOT 67,X+5 520 CLR DOT 68,X+2 : CLR DOT 68,X+3 : CLR DOT 68,X+4 : CLR DOT 68,X+5 : CLR DOT 68,X+6 530 CLR DOT 69,X+1 : CLR DOT 69,X+2 : CLR DOT 69,X+3 : CLR DOT 69,X+4 : CLR DOT 69,X+5 : CLR DOT 69,X+6 : CLR DOT 69,X+7 540 CLR DOT 70,X : CLR DOT 70,X+1 : CLR DOT 70,X+2 : CLR DOT 70,X+3 : CLR DOT 70,X+4 : CLR DOT 70,X+5 : CLR DOT 70,X+6 : CLR DOT 70,X+7 : CLR DOT 70,X+8 550 CLR DOT 71,X+3 : CLR DOT 71,X+4 : CLR DOT 71,X+5 560 RETURN 0 570 FNEND 580 DEF FNKrock(X) 590 IF DOT(65,X+4)<>0 THEN 650 600 IF DOT(66,X+3)<>0 THEN 650 610 IF DOT(66,X+5)<>0 THEN 650 620 IF DOT(70,X)<>0 THEN 650 630 IF DOT(70,X+8)<>0 THEN 650 640 RETURN 0 650 RETURN 1 660 FNEND