10 ! Bilspel IIII av Magnus <8042> juni 1991 11 GOTO 500 15 INTEGER : EXTEND 20 POKE 56000,62,23,187,250,229,218,1,80,0,6,8,33,0,120,203,57 25 POKE 56016,48,1,25,203,35,203,18,16,245,205,233,218,22,0,25,126 30 POKE 56032,33,0,0,111,201,33,0,0,201,58,238,218,95,201,0 35 Bx=40 : By=15 : T=-20 : Cx=38 : Cy=15 : Ct=-20 40 FGCTL WHT : FGPOINT 0,0,0 : FGFILL 511,239 : ; CHR$(12) 45 ATTRIBUTE 1 50 POKE 55000,33,127,127,17,207,127,126,18,43,27,62,255,189,194,222,214 55 POKE 55016,62,119,188,194,222,214,33,0,120,6,0,62,32,119,35,4 60 POKE 55032,62,79,184,194,243,214,201 65 REM Startadress = 55000 70 A=0 : Vx=30 75 FGCTL BLK : OUT 7,3 80 Z=CALL(55000) 85 GOSUB 180 90 GOSUB 160 95 GOSUB 110 100 GOSUB 260 105 GOTO 75 110 IF A=0 THEN 140 115 IF A=2 THEN 130 120 IF A=3 THEN 135 125 ; CUR(0,X);GGRN;CHR$(122);"";CHR$(117) : A=2 : GOTO 155 130 ; CUR(0,X+1);GGRN;CHR$(122);"";CHR$(117) : A=3 : GOTO 155 135 ; CUR(0,X+2);GGRN;"" : A=0 : GOTO 155 140 X=INT(RND*45) : IF X>(Vx-5) THEN X=X+30 145 ; CUR(0,X+2);GRED;"" 150 A=1 155 RETURN 160 V=INT(RND*3) : IF V=0 THEN Vx=Vx+1 : IF Vx>60 THEN Vx=60 165 IF V=2 THEN Vx=Vx-1 : IF Vx<1 THEN Vx=1 170 ; CUR(0,Vx);WHT NWBG GBLK;"  " BLBG;" " 175 RETURN 180 IF SYS(5)=0 THEN 225 185 GET A$ 190 IF A$="2" THEN By=By-1 : Cy=Cy+1 : OUT 34,10 : IF Cy>18 THEN By=2 : Cy=18 195 IF A$=" " THEN Cy=Cy-1 : By=By+1 : OUT 34,10 : IF By>18 THEN Cy=2 : By=18 200 IF A$="z" THEN Bx=Bx-1 : IF Bx<1 THEN Bx=1 205 IF A$="4" THEN Cx=Cx-1 : IF Cx<1 THEN Cx=1 210 IF A$="x" THEN Bx=Bx+1 : IF Bx>79 THEN Bx=79 215 IF A$="6" THEN Cx=Cx+1 : IF Cx>79 THEN Cx=79 220 GOSUB 305 225 POKE 56046,Bx : Z=CALL(56000,By-1) 230 IF Z<>32 THEN 275 235 POKE 56046,Cx : Z=CALL(56000,Cy-1) 240 IF Z<>32 THEN 285 245 ; CUR(By,Bx);GRED;"" 250 ; CUR(Cy,Cx);GBLU;"" 255 RETURN 260 ; CUR(By,Bx);WHT NWBG GBLK "" 265 ; CUR(Cy,Cx);WHT NWBG GBLK "" 270 RETURN 275 IF Z=159 THEN 235 280 ; CUR(10,15);BLK NWBG RED;EL "Game over r|d" : GOTO 295 285 IF Z=159 THEN 245 290 ; CUR(10,15);BLK NWBG BLU;EL "Game over bl}" : GOTO 295 295 OUT 7,0 300 IF SYS(5)=0 THEN 300 ELSE GET A$ : GOTO 500 305 IF Bx=Cx THEN 310 ELSE 340 310 IF Cy=By THEN 315 ELSE 340 315 IF A$="4" THEN Bx=Bx-1 320 OUT 34,9 325 IF A$="6" THEN Bx=Bx+1 330 IF A$="x" THEN Cx=Cx+1 335 IF A$="z" THEN Cx=Cx-1 340 RETURN 500 FGCTL BLK+GBLK : FGPOINT 0,0,0 : FGFILL 511,239 : GOTO 570 505 FGPOINT 0,0,1 : FGFILL 35,239 : FGPOINT 470,0,1 : FGFILL 511,239 510 DIM A$=300. : Y.=20. 515 ; CUR(10,30);GRN EL ULN;"Bilspel";NULN;" " 520 A$=SPACE$(39.)+"Det h{r {r ett bilspel av Magnus 1991. bl} spelare styr med (4) v{nster (6) h|ger (2) bromsa" 525 A$=A$+" r|d spelare styr med (z) v{nster (x) h|ger (space) bromsa."+SPACE$(39.) 530 FOR P.=1. TO LEN(A$)-38. 535 T$=MID$(A$,P.,38.) 540 FGCTL BLK+GBLK 545 ; CUR(Y.,1.);DBLE RED;T$ 550 FGCTL BLK+GBLK 555 ; CUR(Y.,0.);DBLE RED;T$ 556 IF SYS(5)<>0 THEN GET A$ : A$="" : GOTO 15 560 NEXT P. 565 GOTO 530 570 ; CHR$(12.) 575 ATTRIBUTE 1. 580 X.=20. : Y.=16. : F.=148. : GOSUB 595 585 X.=20. : Y.=2. : F.=145. : GOSUB 595 590 GOTO 505 595 ; CUR(Y.,0.);GRN NWBG " " : ; CUR(Y.+1.,0.);GRN NWBG " " : ; CUR(Y.+2.,0.);GRN NWBG " " : ; CUR(Y.+3.,0.);GRN NWBG " " 600 ; CUR(Y.,X.+8.);GRN NWBG EL;CHR$(F.);CHR$(96.);CHR$(112.);CHR$(112.);CHR$(112.);CHR$(112.);CHR$(48.) 605 ; CUR(Y.+1.,X.+7.);GRN NWBG EL;GWHT;CHR$(120.);"";WHT NWBG CHR$(F.);CHR$(106.);BLBG;CHR$(127.);GRN NWBG CHR$(F.) CHR$(124.) CHR$(112.) 610 ; CUR(Y.+2.,X.);GRN NWBG EL;CHR$(F.);CHR$(124.);BLK NWBG CHR$(F.);CHR$(63.);CHR$(43.);"";CHR$(63.);CHR$(43.);CHR$(127.) GRN NWBG CHR$(F.);CHR$(37.) 615 ; CUR(Y.+3.,X.+4.);EL GRN NWBG GBLK;CHR$(33.);SPACE$(7.);CHR$(33.) 620 ; CUR(20.,0.);" " 625 RETURN