1 REM Ins{nt av: Thomas Althoff <3493> 1985-02-14 20.37.30 10 REM * INS[NT AV Thomas Althoff <3493> 20 REM * Detta {r en supervariant av gamla hederliga masken. * 30 REM ;" MASKEN  40 REM ;" L Y S A T O R  50 REM  Link|pings Tekniska H|gskola  60 OUT 4,0 70 ; CHR$(12%)'styr }t ena h}llet med A och }t andra h}llet med [' 80 ; 'styr }t ena h}llet med A och }t andra h}llet med [' 90 ; : ; : ; : ; 'L Y C K A T I L L !' 100 ; : ; : ; : ; : ; : ; : ; 'V[LJ "M"ed eller "U"tan hinder '; : GET A$ : ; A$ 110 IF INSTR(1%,'Mm',CHR$(ASC(A$))) THEN POKE 31865%,5% ELSE POKE 31865%,0% 120 X%=26% : Y%=15% : Z9%=3% 130 DIM M1%(500%),M2%(500%),B$=30 140 DIM S%(5%),T%(1000%),D%(1000%) 150 F9%=75% 160 IF PEEK(31865%)<>0% AND PEEK(31865%)<>5% THEN POKE 31865%,0% 170 IF PEEK(31864)>=100 THEN 180 ELSE 190 180 POKE 31864%,0% : REM Nollst{ller Rekordet 190 T3%=0% : P%=0% : R%=0% 200 FOR I%=65081% TO 65085% 210 S%(I%-65081%)=PEEK(I%) : NEXT I% 220 ; CHR$(12%) 230 FOR I%=1% TO 24% : ; : ; CHR$(151); : NEXT I% 240 FOR I%=3% TO 78% : SETDOT 2%,I% : SETDOT 69%,I% : NEXT I% 250 FOR I%=2% TO 68% : SETDOT I%,3% : SETDOT I%,78% : NEXT I% 260 A%=PEEK(31865%) : IF A%=0% 360 270 IF A%=0% 360 280 ON Z9% RESTORE 1260,1400,1530 290 READ E% 300 FOR I%=1% TO E% 310 READ A%,B%,C%,D% 320 FOR J%=A% TO B% 330 IF D%=2% ; CUR(J%,C%);''; ELSE ; CUR(C%,J%);''; 340 NEXT J% 350 NEXT I% 360 ; CUR(11%,5%);"OOOO\" 370 FOR I%=1% TO 5% : M1%(I%+250)=11% : M2%(256%-I%)=4%+I% : NEXT I% 380 B%=251% : E%=255% : F%=0% 390 FOR D=-2000*R% TO 2000 : NEXT D 400 T2%=-1% : GOSUB 670 410 T3%=1%+T3% 420 IF T3%=T7% T7%=0% : R%=0% : GOSUB 1230 430 IF NOT R% THEN 470 440 IF T3%<>T%(P%) THEN 530 450 A%=D%(P%) : P%=1%+P% 460 GOTO 520 470 A%=PEEK(65013%) 480 IF A%=0% THEN 530 490 A%=INP(56%) AND 127% : POKE 65013%,0% : A%=A% AND 223% 500 IF A%=83% GOSUB 1560 510 T%(P%)=T3% : D%(P%)=A% : P%=1%+P% 520 F%=(F%+(A%=91%)-(A%=65%)) AND 3% 530 M1%(B%-1%)=M1%(B%)+(F%=1%)-(F%=3%) 540 M2%(B%-1%)=M2%(B%)+(F%=2%)-(F%=0%) 550 W%=M1%(B%-1%) : Z%=M2%(B%-1%) 560 IF (W%=Y% OR W%=Y%+1%) AND (Z%=X% OR Z%=X%+1%) THEN GOSUB 680 : GOTO 560 570 IF DOT(W%*3%,Z%*2%) 760 580 IF W%<1% OR W%>22% OR Z%<2% OR Z%>38% THEN 760 590 ; CUR(M1%(B%),M2%(B%));"O"; 600 ; CUR(M1%(B%-1%),M2%(B%-1%));"\"; 610 IF RND>.1 ; CUR(M1%(E%),M2%(E%));" " : E%=E%-1% 620 IF E%=-1% E%=499% 630 B%=B%-1% 640 IF B%=0% THEN M1%(500%)=M1%(0%) : M2%(500%)=M2%(0%) : B%=500% 650 FOR D=-F9%*R% TO F9% : NEXT D 660 GOTO 410 670 REM  TR[FF 680 OUT 6,7 : A%=0% : T2%=T2%+1% 690 ; CUR(Y%,X%)" " : ; CUR(Y%+1%,X%)" " 700 X%=RND*36+2% : Y%=RND*21+1% 710 FOR G%=X%*2% TO X%*2%+2% : FOR T%=Y%*3% TO Y%*3%+3% : IF DOT(T%,G%) 700 720 NEXT T% : NEXT G% 730 ; CUR(Y%,X%);"ff"; 740 ; CUR(Y%+1%,X%);"99"; 750 OUT 6,0 : RETURN 760 REM 770 FOR D=1 TO 1000 : OUT 6,11 : NEXT D : OUT 6,0 780 FOR D=1 TO 1000 : NEXT D 790 ; CHR$(12%) : ; : ; 800 ; "Du tr{ffade"T2%" m}l." 810 B$="URKASST..." 820 IF T2%>0% B$="Inte riktigt bra." 830 IF T2%>5% B$="Bravo..." 840 IF T2%>10% B$="Mycket bra..." 850 IF T2%>25% B$="Fenomenalt..." 860 IF T2%>50% B$="Du {r ju PROFFS..." 870 IF T2%>100% B$="*** SUPERBRA ***" 880 ; : ; B$ 890 IF T2%>30% ; "Du borde bli maskf|rare p} heltid." 900 T9%=PEEK(31864) 910 IF T2%>=T9% THEN POKE 31864,T2% : ; : ; 'Rekord !!!!!' : OUT 6,7 920 ; : ; 'Rekord :';PEEK(31864) 930 IF A8% THEN 1040 940 IF R% THEN 1070 950 ; : ; "Vill du ha repris"; : POKE 65013%,0% : GET A$ : ; 960 OUT 6,0 970 T7%=0% 980 ONERRORGOTO 1000 990 T7%=T3%-VAL(A$) 1000 ONERRORGOTO 0 1010 IF T7% 1040 1020 IF INSTR(1,"Jj",CHR$(ASC(A$))) 1040 1030 GOTO 1070 1040 FOR I%=65081% TO 65085% 1050 POKE I%,S%(I%-65081%) : NEXT I% 1060 R%=-1% : T3%=0% : P%=0% : GOTO 220 1070 ; : ; "Vill du {ndra fart"; : POKE 65013%,0% : GET A$ : ; 1080 IF INSTR(1,"Jj",CHR$(ASC(A$))) 1200 1090 ; : ; "Vill du f|rs|ka en g}ng till"; : POKE 65013%,0% : GET A$ : ; 1100 IF INSTR(1,"Nn",CHR$(ASC(A$))) END 1110 ; : ; 'Vill du ha hinder'; : POKE 65013%,0% : GET A$ : ; 1120 IF INSTR(1,"Nn",CHR$(ASC(A$))) POKE 31865,0% 1130 IF INSTR(1,"Jj",CHR$(ASC(A$))) POKE 31865,5% 1140 IF PEEK(31865%)=0% THEN 1190 1150 ; : ; 'V{lj hinderbana 1 till 3 '; : GET A$ : ; 1160 IF INSTR(1,"1",CHR$(ASC(A$))) Z9%=1% 1170 IF INSTR(1,"2",CHR$(ASC(A$))) Z9%=2% 1180 IF INSTR(1,"3",CHR$(ASC(A$))) Z9%=3% 1190 GOTO 190 1200 ; "fart 1,2,3 eller 4 "; : INPUT A9% 1210 IF A9%<5% AND A9%>0% THEN F9%=(5%-A9%)*25% : GOTO 190 1220 A8%=-1% : GOTO 1040 1230 POKE 65013%,0 1240 IF PEEK(65013%)=0% 1240 1250 RETURN 1260 DATA 13 1270 DATA 5,16,4,1 1280 DATA 22,35,4,1 1290 DATA 5,8,5,2 1300 DATA 14,20,5,2 1310 DATA 15,25,12,1 1320 DATA 5,16,20,1 1330 DATA 22,35,20,1 1340 DATA 5,8,35,2 1350 DATA 14,20,35,2 1360 DATA 9,9,7,1 1370 DATA 31,31,7,1 1380 DATA 9,9,17,1 1390 DATA 31,31,17,1 1400 DATA 12 1410 DATA 10,30,12,1 1420 DATA 10,30,3,1 1430 DATA 6,18,15,2 1440 DATA 6,18,20,2 1450 DATA 6,18,25,2 1460 DATA 5,5,5,2 1470 DATA 6,6,6,2 1480 DATA 36,36,4,1 1490 DATA 35,35,5,1 1500 DATA 34,34,6,1 1510 DATA 4,9,20,1 1520 DATA 31,36,20,1 1530 DATA 2 1540 DATA 7,33,12,1 1550 DATA 4,20,20,2 1560 ; CUR(0%,30%);CHR$(135%);'SC:';T2%;CHR$(151%) 1570 RETURN