1 REM Ins{nd av Thomas Andersson <3917> 1985-04-30 18.17.41 100 REM +-----------------------------+ 110 REM ! V I R R E ! 120 REM ! ========= ! 130 REM ! (c) 1980-01-15 Per Lindberg ! 135 REM ! *** The mad programmer *** ! 140 REM ! Modifierat f|r ABC 806 ! 150 REM ! 1985-04-28 Thomas Andersson ! 170 REM ! ! 180 REM +-----------------------------+ 181 ! Programmet {r inte fullst{ndigt konverterat f|r ABC806. Vad jag kan se 182 ! s} ligger OUT:ar kvar i programmet. Dvs s}dana instruktioner som ger 183 ! ljud i ABC80. De verkar dock inte ge n}gon skadlig effekt vad jag kan se. 185 ! Programmet fungerar p} ABC806, ABC802. Man kan dock enkelt {ndra det 186 ! s} att det funkar p} ABC800 C. Ta d} bort bara WIDTH instruktionen. 187 ! Det kommer dock alldrig att fungera p} ABC800 M. 188 ! Bo Kullmar 1985-05-01 189 WIDTH 40. : INTEGER : NO EXTEND 190 ; CHR$(12) RED CUR(10,10) 'F|r hj{lp skriv "?"'; 200 DATA " " 210 DATA " hwg} `w5 z{ `w5 z{" 220 DATA " o{% o5 * o5 *" 230 DATA " |~|4 ~} h4 ~} h4" 240 DATA " ??5  j5  j5" 250 DATA " 555  j5  j5" 260 DATA " 555  j5  j5" 270 DATA " 555  j5  j5" 280 DATA " !oo%! ?o *% o? jo%" 290 DATA " jj 5j `&j j5 jj" 300 DATA " jj j j )z ji j""4" 310 DATA " jj z j ""j j`5 j 5" 320 DATA " .*$ . . . .(%" 330 DATA " " 340 DATA " j{0 wu j{0 wu" 350 DATA " j? % j? %" 360 DATA " ~} h4 ~} h4" 370 DATA "  j5  j5" 380 DATA "  j5  j5" 390 DATA "  j5  j5" 400 DATA "  j5  j5" 410 DATA " oo *% o? j/5" 420 DATA " jj  j""d j 5" 430 DATA " 6j hk j8! j j" 440 DATA " 5j uj j"" j j0" 450 DATA " -*$ *$ *$ *$" 460 DATA " " 470 DATA " hwg} `<0. THEN R=0 : GOTO 1530 1490 A1=INSTR(1,"ADWX",A$) : IF A1 IF RND>.3 GOTO 1540 1500 A$=MID$("ADXW12345 ",1+9*RND,1) 1510 GOTO 1540 1520 REM ** NORMAL ! ** 1530 ; CYA CUR(0,0); : GET A$ : IF ASCII(A$)>63 A$=CHR$(ASCII(A$) AND 95) 1540 A=1+INSTR(1,"$H?RADXWS4 1253",A$) 1550 ON A GOTO 1480,5000,2010,2010,1990,1570,1590,1610,1630,1650,1670,1730,1770,1790,1810,1840 1560 REM +----- LOOP-STYRNING -----+ 1570 IF X<4 GOSUB 1940 : GOTO 1480 ELSE IF S=2 GOSUB 1950 1580 X=X-2 : FOR N=1 TO 4 : A=N-N/4*4 : GOSUB 1890 : NEXT N : S=1 : GOTO 1480 1590 IF X>29 GOSUB 1940 : GOTO 1480 ELSE IF S=1 GOSUB 1950 1600 X=X+2 : FOR N=1 TO 4 : A=4+N-N/4*4 : GOSUB 1890 : NEXT N : S=2 : GOTO 1480 1610 IF Y>9 GOTO 1480 ELSE IF S GOSUB 1940 1620 FOR N=1 TO 3 : A=8+N+3*(N=3) : Y=Y-(N=3) : GOSUB 1890 : NEXT N : GOTO 1460 1630 IF Y<1 GOTO 1480 ELSE IF S=0 GOSUB 1970 1640 Y=Y-1 : FOR N=0 TO 2 : A=11+N : GOSUB 1890 : NEXT N : S=-1 : GOTO 1460 1650 IF S GOSUB 1940 1660 GOTO 1480 1670 IF S GOSUB 1940 1680 FOR N=0 TO 3+3*RND : I=1+6*RND : ON I GOTO 1710,1710,1690,1690,1690,1690,1690 1690 I=11+25*RND : FOR M=0 TO (37-I)/5 1700 FOR J=0 TO I : P1=INP(5.) : NEXT J : OUT 6,0 : NEXT M : GOTO 1720 1710 FOR J=0 TO 110 : OUT 6,-1+4*I : NEXT J : OUT 6,0 1720 FOR J=0 TO 200 : NEXT J : NEXT N : GOTO 1480 1730 IF S GOSUB 1940 1740 FOR A=14 TO 16 : IF A=15 A=16 1750 GOSUB 1890 : NEXT A 1760 OUT 6,0 : OUT 6,137 : A=8 : GOSUB 1890 : GOTO 1480 1770 IF S GOSUB 1940 1780 A=17 : GOSUB 1890 : A=8 : GOSUB 1890 : GOTO 1480 1790 IF S GOSUB 1940 1800 A=18 : GOSUB 1890 : A=8 : GOSUB 1890 : GOTO 1480 1810 IF S GOSUB 1940 1820 FOR N=0 TO 1 : A=19 : GOSUB 1890 : A=20 : GOSUB 1890 : NEXT N 1830 A=19 : GOSUB 1890 : A=8 : GOSUB 1890 : GOTO 1480 1840 IF S GOSUB 1940 1850 A=14 : GOSUB 1890 : A=8 : GOSUB 1890 : GOTO 1480 1860 REM +-------------------------+ 1870 REM ! END OF MAIN LOOP ! 1880 REM +-------------------------+ 1890 FOR I=0 TO 13 1900 ; GGRN CUR(Y+I,X) " " G$(A,I) " "; 1910 NEXT I 1920 FOR ].=0. TO 200. : NEXT ]. 1930 RETURN 1940 IF S=-1 A=-4*(RND>.5) : GOSUB 1890 1950 IF S A=8 : GOSUB 1890 : S=0 1960 RETURN 1970 IF S=0 A=-4*(RND>.5) : GOSUB 1890 1980 A=13 : GOSUB 1890 : S=-1 : RETURN 1990 IF SYS(5.)>0 THEN 1990 ELSE R=-1 : GOTO 1480 2000 REM +------HJ[LP------------+ 2010 ; CHR$(12); 2020 ; GRN CUR(0,0) "V I R R E" TAB(27) "PL-80" 2030 ; GRN CUR(1,0) '==========' 2040 ; YEL CUR(0,22) "The mad programmer"; 2050 ; YEL CUR(1,22) "strikes again!!" 2060 ; 2070 ; YEL 'Du kan styra gubben upp}t, ned}t,' 2080 ; YEL '}t v{nster och }t h|ger med knapparna:' 2090 ; 2100 ; RED ' W' 2110 ; RED ' A S D' 2120 ; RED ' X' 2130 ; YEL ' opp' 2140 ; YEL 'Om du vill f} honom att h a,' 2150 ; YEL 'tryck p} . Tangenten "S"' 2160 ; YEL 'st{ller honom rakt fram.' 2170 ; GRN 'Tangenterna "1" t.o.m. "5" inneh}ller' : ; GRN 'n}gra olika |verraskningar.' 2180 ; YEL 'Kommandot "R" f}r honom att sk|ta sig' 2190 ; YEL 'sj{lv, tills du trycker p} n}gon annan' 2200 ; YEL 'tangent.' 2210 ; RED 'Kommandot "$" avslutar' 2220 ; GRN '"?" och "H" ger denna hj{lpsida.' 2230 ; 2240 ; YEL 'Tryck p} , s} forts{tter vi.' CHR$(151,8); 2250 INPUT LINE A$ 2260 ; CHR$(12); : FOR I=0 TO 23 : ; YEL CUR(I,0) CHR$(151); : NEXT I 2270 GOTO 1420 5000 WIDTH 80 5010 CHAIN 'NUL:'