1 REM +++++++++++++++++++++++++++++++++
2 REM ! Program .... MONSTER.BAS
3 REM ! Utg}va 1983
4 REM ! av (c) Krister Hessling <1505>
7 REM ! ABC80 i grundutf|rande
9 REM +++++++++++++++++++++++++++++++++
10 REM
11 REM Fly fr}n monstret ut ur rummet !
12 REM Grafik/aktion med BRA ljud .
13 REM
14 IF PEEK(590)<>40 THEN ; INP(3)
70 REM ** START & UPPRITNINGS RUTIN **
80 P1=0
90 H1=0
100 ; CHR$(12)
110 RANDOMIZE
120 DEFFNA%(I%)=INT(19%*RND)+1%
130 DEFFNB%(O%)=INT(21%*RND)
140 ; CHR$(12)
150 FOR T=1 TO 500 : NEXT T
160 ; CUR(0,10);"********************"
170 ; CUR(1,10);"* THE MONSTER ROOM *"
180 ; CUR(2,10);"********************"
190 A%=20
200 T%=105
210 GOSUB 1130
220 ; CUR(5,13);"\ MONSTRET"
230 A%=16
240 T%=115
250 GOSUB 1130
260 ; CUR(7,13);"o SPELAREN"
270 A%=23
280 T%=96
290 GOSUB 1130
300 ; CUR(9,13);"X KATAPULLT BOMB"
310 A%=55
320 T%=57
330 GOSUB 1130
340 ; CUR(11,13);"* DEN MAGISKA SKATTEN"
350 A%=34
360 T%=153
370 GOSUB 1130
380 ; CUR(15,7);"VILL DU HA INSTRUKTIONER ? (J/N)"
390 FOR T=1 TO 1000
400 K=INP(56)
410 IF K=202 OR K=234 THEN 450
420 IF K=206 OR K=238 THEN 890
430 NEXT T
440 GOTO 110
450 ; CHR$(12)
460 FOR T=1 TO 300 : NEXT T
470 ; CUR(0,12);"INSTRUKTIONER"
480 FOR ]=1 TO 3
490 A%=30
500 T%=50
510 GOSUB 1130
520 NEXT ]
530 A%=38
540 T%=100
550 GOSUB 1130
560 ;
570 ; "Du befinner dig i ett rum som bebos av ett monster. Rummets v{ggar {r str|mf|rande ";
575 ; "och golvet {r fullt"
580 ; "av katapullt-bomber. Du d|r om du g}r imot v{ggen och"
590 ; "kastas iv{g om du g}r p} en bomb."
600 ; "Om du lyckas att ta dig ut ur rummet utan att bli upp {ten, s} f}r du ett nytt rum."
610 ; "I rummet finns ocks} en magisk skatt. Om du tar den s} kan du d|da monstret."
620 ; "Du f}r 1000 po{ng f|r varje rum och monster."
630 ; : ; "TRYCK P] RETURN N[R DU L[ST KLART"
640 IF INP(56)=141 THEN 660
650 GOTO 640
660 ; CHR$(12)
670 OUT 6,13
680 FOR ]=1 TO 100 : NEXT ]
690 OUT 6,0
700 ; CUR(2,0);"DU STYR MED DESSA TECKEN: ========================="
710 ;
720 ; "U : UPP"
730 ; "N : NER"
740 ; "H : H\GER"
750 ; "V : V[NSTER"
760 ; "UH : UPP-H\GER"
770 ; "UV : UPP-V[NSTER"
780 ; "NH : NER-H\GHER"
790 ; "NV : NER-V[NSTER"
800 ;
810 ; "ANV[ND BARA STORA BOKST[VER OCH TRYCK P] RETURN EFTER VARE INMATNING!!"
820 FOR T=1 TO 500 : NEXT T
830 ;
840 ; "TRYCK P] RETURN F\R START"
850 ;
860 ; " L Y C K A T I L L !"
870 IF INP(56)=141 THEN 890
880 GOTO 870
890 REM
900 DATA 50,50,40,50,30,50,20,50,20,50,30,50,40,50,50,50
910 RESTORE 900
920 FOR M=1 TO 8
930 READ A%,T%
940 GOSUB 1130
950 NEXT M
960 ; CHR$(12)
970 FOR V%=0% TO 20%
980 ; CUR(0%,V%);"";CUR(V%,0%);"";CUR(20%,V%);"";CUR(V%,20%);""
990 NEXT V%
1000 ; CUR(0,22);"U : UPP"
1010 ; CUR(1,22);"N : NER"
1020 ; CUR(2,22);"H : H\GER"
1030 ; CUR(3,22);"V : V[NSTER"
1040 ; CUR(4,22);"UH : UPP-H\GER"
1050 ; CUR(5,22);"UV : UPP-V[NSTER"
1060 ; CUR(6,22);"NH : NER-H\GER"
1070 ; CUR(7,22);"NV : NER-V[NSTER"
1080 ; CUR(9,22);"\ : MONSTRET"
1090 ; CUR(10,22);"o : SPELAREN"
1100 ; CUR(11,22);"X : BOMB"
1110 ; CUR(12,22);"* : MAGISK SKATT"
1120 GOTO 1180
1130 REM ** MUSIK RUTIN **
1140 FOR Z%=1% TO T%
1150 OUT 6%,121% : FOR B%=0% TO A% : NEXT B%
1160 OUT 6%,0% : NEXT Z%
1170 RETURN
1180 REM ** SPEL RUTIN**
1190 DIM X%(20%)
1200 G$="o"
1210 DIM Y%(20%)
1220 FOR F%=1% TO 20%
1230 X%(F%)=FNA%(I%)
1240 Y%(F%)=FNA%(I%)
1250 ; CUR(X%(F%),Y%(F%));"X"
1260 NEXT F%
1270 ; CUR(0,10);" "
1280 M1%=FNA%(I%)
1290 M2%=FNA%(I%)
1300 FOR F%=1% TO 20%
1310 IF X%(F%)=M1% AND Y%(F%)=M2% THEN 1280
1320 NEXT F%
1330 ; CUR(M1%,M2%);"\"
1340 G1%=FNA%(I%)
1350 G2%=FNA%(I%)
1360 IF M1%=G1% AND M2%=G2% THEN 1340
1370 FOR F%=1% TO 20%
1380 IF X%(F%)=G1% AND Y%(F%)=G2% THEN 1340
1390 NEXT F%
1400 ; CUR(G1%,G2%);G$
1410 S1%=FNA%(I%)
1420 S2%=FNA%(I%)
1430 IF S1%=G1% AND S2%=G2% OR S1%=M1% AND S2%=M2% THEN 1410
1440 FOR F%=1% TO 20%
1450 IF X%(F%)=S1% AND Y%(F%)=S2% THEN 1410
1460 NEXT F%
1470 ; CUR(S1%,S2%);"*"
1480 M3%=M1%
1490 M4%=M2%
1500 G3%=G1%
1510 G4%=G2%
1520 ; CUR(15,22);"HI-SCORE:";H1
1530 ; CUR(17,22);"PO[NG:";P1;" "
1540 REM ** FLYTTNINGS RUTIN **
1550 ; CUR(22,0);CHR$(7);" ";CUR(22,0);"MOVE "; : INPUT M$
1560 IF M$="U" THEN 1650
1570 IF M$="N" THEN 1670
1580 IF M$="H" THEN 1690
1590 IF M$="V" THEN 1710
1600 IF M$="UH" THEN 1730
1610 IF M$="UV" THEN 1760
1620 IF M$="NH" THEN 1790
1630 IF M$="NV" THEN 1820
1640 GOTO 1550
1650 G1%=G1%-1%
1660 GOTO 1840
1670 G1%=G1%+1%
1680 GOTO 1840
1690 G2%=G2%+1%
1700 GOTO 1840
1710 G2%=G2%-1%
1720 GOTO 1840
1730 G1%=G1%-1%
1740 G2%=G2%+1%
1750 GOTO 1840
1760 G1%=G1%-1%
1770 G2%=G2%-1%
1780 GOTO 1840
1790 G1%=G1%+1%
1800 G2%=G2%+1%
1810 GOTO 1840
1820 G1%=G1%+1%
1830 G2%=G2%-1%
1840 ; CUR(G3%,G4%);" ";CUR(G1%,G2%);G$
1850 OUT 6%,7% : FOR T%=0% TO 400% : NEXT T% : OUT 6%,0%
1860 FOR F%=1% TO 20%
1870 IF X%(F%)=G1% AND Y%(F%)=G2% THEN 2160
1880 NEXT F%
1890 IF G1%=0% AND G2%=10% THEN 2420
1900 IF G1%<=0% OR G1%>=20 THEN 2320
1910 IF G2%<=0% OR G2%>=20 THEN 2320
1920 IF G1%=S1% AND G2%=S2% THEN G$="O"
1930 IF G$="O" AND G1%=M1% AND G2%=M2% THEN 2420
1940 IF G1%=M1% AND G2%=M2% THEN 2530
1950 REM ** MONSTER RUTIN **
1960 IF G$="O" THEN 2020
1970 IF G1%