mirror of
https://github.com/AppleCommander/bastools.git
synced 2024-05-28 19:41:31 +00:00
Some additional AppleSoft samples.
This commit is contained in:
parent
411748ad52
commit
97df5fc69d
92
src/test/resources/alien-drizzle.bas
Normal file
92
src/test/resources/alien-drizzle.bas
Normal file
|
@ -0,0 +1,92 @@
|
|||
1 REM From Beagle Bros. Beagle Compiler
|
||||
20 GOSUB 32000: HOME : INVERSE
|
||||
30 PRINT CHR$(21)
|
||||
50 Q = -16384:BUZZ = Q +48:BEEP$ = CHR$(7)
|
||||
70 GR
|
||||
80 VTAB 23: HTAB 1: PRINT ":SAUCERS:";: HTAB 11: PRINT "::SHOTS::";: HTAB 21: PRINT "::HITS:::";: HTAB 31: PRINT ":PERCENT:"
|
||||
85 VTAB 24: HTAB 1: PRINT ":::::::::";: HTAB 11: PRINT ":::::::::";: HTAB 21: PRINT ":::::::::";: HTAB 31: PRINT ":::00%:::";
|
||||
88 GOSUB 370:SLUGHT = 35:XFALL = 1:YY = 0:HRZ = 0:SCRCLR = INT( RND(1) *14) +1: GOSUB 800
|
||||
90 VTAB 21: HTAB 1
|
||||
95 PRINT " SPACE TO FIRE, ANY KEY TO STOP BULLET "
|
||||
97 GOSUB 800
|
||||
100 REM <CTRL-J><CTRL-J>GUN<CTRL-J>
|
||||
110 GUNCLR = INT( RND(1) *14) +1: IF GUNCLR = SCRCLR THEN 110
|
||||
115 COLOR= GUNCLR: HLIN 22,26 AT 39: HLIN 23,25 AT 38: VLIN 36,37 AT 24
|
||||
120 K = PEEK(Q): IF K < >160 AND K < >155 THEN 220
|
||||
125 IF K = 155 THEN NORMAL : VTAB 21: END
|
||||
130 IF SLUGHT < >35 THEN 140
|
||||
132 SHOT = SHOT +1: GOSUB 610
|
||||
135 GOSUB 670
|
||||
140 COLOR= 15
|
||||
150 IF SCRN( 24,SLUGHT -1) = 0 THEN 200
|
||||
151 REM <CTRL-J><CTRL-J>HIT!<CTRL-J>
|
||||
152 PLOT 24,SLUGHT -1: COLOR= 0: PLOT 24,SLUGHT
|
||||
161 COLOR= 9
|
||||
162 PLOT 22,SLUGHT -3: PLOT 23,SLUGHT -2: PLOT 23,SLUGHT: PLOT 24,SLUGHT -1: PLOT 25,SLUGHT: PLOT 27,SLUGHT -2: VLIN SLUGHT -3,SLUGHT -2 AT 25
|
||||
166 FOR I = 1 TO 9: GOSUB 620: NEXT :KILL = 1
|
||||
170 COLOR= 0: FOR I = 22 TO 27: VLIN SLUGHT -3,SLUGHT AT I: NEXT
|
||||
180 HIT = HIT +1: GOSUB 670
|
||||
190 YY = 1:XFALL = 0
|
||||
195 POKE Q +16,0: GOSUB 240
|
||||
200 PLOT 24,SLUGHT -1: COLOR= 0: PLOT 24,SLUGHT
|
||||
210 SLUGHT = SLUGHT -1: IF SLUGHT >YFALL -3 THEN 220
|
||||
211 COLOR= 0: VLIN 0,35 AT 24:SLUGHT = 35: POKE Q +16,0
|
||||
220 GOSUB 240
|
||||
230 GOTO 120
|
||||
240 REM <CTRL-J><CTRL-J>SAUCER<CTRL-J>
|
||||
250 COLOR= SCRCLR
|
||||
270 HLIN HRZ +2,HRZ +3 AT YFALL: HLIN HRZ +1,HRZ +4 AT YFALL +1
|
||||
280 COLOR= 0
|
||||
290 PLOT HRZ +1,YFALL: PLOT HRZ,YFALL +1
|
||||
300 IF KILL THEN PLOT HRZ +4,YFALL: HLIN HRZ,HRZ +5 AT YFALL -1: HLIN HRZ,HRZ +5 AT YFALL -2
|
||||
305 IF YY = 0 THEN 310
|
||||
306 N = 41 -YFALL: GOSUB 900
|
||||
307 XFALL = XFALL + INT( RND(1) *3) -1: IF HRZ +XFALL <19 THEN XFALL = 1
|
||||
308 IF HRZ +XFALL >25 THEN XFALL = -1
|
||||
310 HRZ = HRZ +XFALL:YFALL = YFALL +YY: IF HRZ >35 THEN 340
|
||||
320 IF YFALL >38 THEN GOSUB 390
|
||||
330 RETURN
|
||||
340 HLIN 36,39 AT YFALL +1: HLIN 37,38 AT YFALL
|
||||
360 GOSUB 800:SCRCLR = INT( RND(1) *14) +1: IF SCRCLR = GUNCLR THEN 360
|
||||
370 SAUCER = SAUCER +1: GOSUB 670
|
||||
380 HRZ = 0: RETURN
|
||||
390 REM <CTRL-J><CTRL-J>EXPLOSION<CTRL-J>
|
||||
400 VTAB 21: HTAB HRZ: PRINT SWEAR$:KILL = 0
|
||||
420 COLOR= 15
|
||||
422 PLOT HRZ,37: PLOT HRZ +1,38: VLIN 35,37 AT HRZ +2: PLOT HRZ +2,39: VLIN 38,39 AT HRZ +3: VLIN 36,37 AT HRZ +4: PLOT HRZ +5,37
|
||||
425 POP : PRINT BEEP$;BEEP$;BEEP$;BEEP$;
|
||||
427 COLOR= SCRCLR
|
||||
430 FOR I = 39 TO 6 STEP -2
|
||||
450 HLIN 19,29 AT I -1
|
||||
460 HLIN 19,29 AT I: GOSUB 640
|
||||
470 NEXT
|
||||
480 HLIN 29,33 AT 2: HLIN 20,23 AT 3: HLIN 28,34 AT 3: HLIN 18,24 AT 4: HLIN 27,35 AT 4: HLIN 17,35 AT 5: HLIN 16,35 AT 6: HLIN 15,35 AT 7
|
||||
490 HLIN 16,36 AT 8: HLIN 13,37 AT 9: HLIN 12,38 AT 10: HLIN 11,38 AT 11: HLIN 11,38 AT 12: HLIN 10,38 AT 13: HLIN 10,38 AT 14: HLIN 10,37 AT 15
|
||||
500 HLIN 10,37 AT 16: HLIN 10,37 AT 17: HLIN 11,14 AT 18: HLIN 16,36 AT 18: HLIN 12,13 AT 19: HLIN 16,34 AT 19: HLIN 16,34 AT 20: HLIN 17,34 AT 21
|
||||
510 HLIN 31,33 AT 22
|
||||
540 FOR I = 1 TO 22
|
||||
545 IF I - INT(I/2) *2 = 0 THEN COLOR= SCRCLR
|
||||
546 IF I - INT(I/2) *2 = 1 THEN COLOR= GUNCLR
|
||||
550 FOR J = 1 TO 2 *I: NEXT
|
||||
560 HRZ = INT( RND(1) *40):YFALL = INT( RND(1) *20) +20: GOSUB 640: PLOT HRZ,YFALL: NEXT
|
||||
566 COLOR= 0
|
||||
570 FOR I = 0 TO 39: HLIN 0,39 AT I: FOR J = 1 TO 9: NEXT : NEXT : FOR J = 1 TO 222: NEXT
|
||||
580 POP : GOTO 88
|
||||
590 FOR I = 1 TO 500: NEXT
|
||||
600 REM <CTRL-J><CTRL-J>NOISE<CTRL-J>
|
||||
610 COLOR= 9: HLIN 23,25 AT 35: HLIN 22,23 AT 34: HLIN 25,26 AT 34
|
||||
620 FOR J = 1 TO 10:S = PEEK(BUZZ) - PEEK(BUZZ) - PEEK(BUZZ): NEXT
|
||||
630 COLOR= 0: HLIN 23,25 AT 35: HLIN 22,26 AT 34: RETURN
|
||||
640 FOR J = 1 TO 2
|
||||
650 S = PEEK(BUZZ) - PEEK(BUZZ) - PEEK(BUZZ) - PEEK(BUZZ) - PEEK(BUZZ) - PEEK(BUZZ) - PEEK(BUZZ): NEXT : RETURN
|
||||
660 REM <CTRL-J><CTRL-J>SCOREBOARD<CTRL-J>
|
||||
670 VTAB 24: HTAB 4: PRINT SAUCER;: HTAB 14: PRINT SHOT;
|
||||
680 HTAB 24: PRINT HIT;: IF NOT HIT THEN RETURN
|
||||
690 HTAB 34: PRINT INT((100 *HIT)/SAUCER);"%:";
|
||||
700 RETURN
|
||||
800 YFALL = Y1:Y1 = INT( RND(1) *25) +3: RETURN
|
||||
900 POKE 0, ABS(100 -(3 *N)): POKE 1,5
|
||||
902 CALL 771
|
||||
904 RETURN
|
||||
32000 FOR I = 771 TO 789: READ A: POKE I,A: NEXT : RETURN
|
||||
33333 DATA 173,48,192,136,208,4,198,1,240,8,202,208,246,166,0,76,3,3,96
|
403
src/test/resources/escape-from-monster-caverns.bas
Normal file
403
src/test/resources/escape-from-monster-caverns.bas
Normal file
|
@ -0,0 +1,403 @@
|
|||
1 GOTO 10
|
||||
2 HOME : RETURN
|
||||
10 REM ESCAPE FROM MONSTER CAVERNS
|
||||
100 PRINT "YOU CAN PLAY THIS GAME IN 3 VERSIONS:"
|
||||
110 PRINT
|
||||
120 PRINT TAB( 5);"1-HARD"
|
||||
130 PRINT TAB( 5);"2-MEDIUM"
|
||||
140 PRINT TAB( 5);"3-EASY"
|
||||
150 PRINT
|
||||
160 PRINT "WHICH ONE DO YOU WANT";
|
||||
170 INPUT DI
|
||||
180 IF DI <1 THEN 160
|
||||
190 IF DI >3 THEN 160
|
||||
200 GOSUB 2
|
||||
210 PRINT "YOU ARE A FAMOUS EXPLORER WHO HAS"
|
||||
220 PRINT "SPENT YEARS PREPARING FOR A GREAT"
|
||||
230 PRINT "EXPEDITION TO THE ISLAND OF PIHC,"
|
||||
240 PRINT "AN UNCHARTED DOT OF LAND THOUSANDS"
|
||||
250 PRINT "OF MILES PRON CIVILIZATION. YOUR"
|
||||
260 PRINT "RESEARCH HAS LED TO A DUSTY OLD"
|
||||
270 PRINT "BOOK WITH A SECRET MAP SEWN INSIDE"
|
||||
280 PRINT "THE BINDING. YOU'VE FOLLOWED THE"
|
||||
290 PRINT "MAP AND HAVE TRAVELED THROUGH THE"
|
||||
300 PRINT "THICK JUNGLE OF PIHC. NOW YOU"
|
||||
310 PRINT "ARE DEEP INSIDE THE HAZE OF"
|
||||
320 PRINT "TUNNELS BENEATH ITS SURFACE."
|
||||
330 PRINT
|
||||
340 PRINT "YOUR NATIVE GUIDES REFUSED TO GO"
|
||||
350 PRINT "THIS FAR, BECAUSE THEY HAD HEARD"
|
||||
360 PRINT "THE CAVE CONTAINED TERRIBLE SCARY"
|
||||
370 PRINT "MONSTERS. THEY SAID THERE WAS"
|
||||
380 PRINT "ONLY ONE WAY TO ESCAPE FROM"
|
||||
390 PRINT "THOSE HORRIBLE CREATURES AND"
|
||||
400 PRINT "THAT WAS TO FIND THE GIANT RUBY"
|
||||
410 PRINT "IDOL'S EYE HIDDEN IN THE DARKEST"
|
||||
420 PRINT "CHAMBER OE THE CAVE."
|
||||
430 PRINT
|
||||
440 PRINT "(HIT THE ENTER KEY FOR MORE)";
|
||||
450 INPUT X$
|
||||
460 GOSUB 2
|
||||
470 PRINT "THE GUIDES TOLD YOU THAT THE"
|
||||
480 PRINT "GIANT RUBY WAS JUST PART OF A"
|
||||
490 PRINT "VAST TREASURE. SEVERAL OTHERS"
|
||||
500 PRINT "HAD FOUND THE CAVE, AND ONE HAD"
|
||||
510 PRINT "EVEN LOCATED THE TREASURE. BUT"
|
||||
520 PRINT "THE MONSTERS DID NOT LET THEM"
|
||||
530 PRINT "ESCAPE. THE EXPLORERS WERE NOT"
|
||||
540 PRINT "ABLE TO FIND THE GIANT RUBY"
|
||||
550 PRINT "THAT WOULD SAVE THEM."
|
||||
560 PRINT
|
||||
570 PRINT "ONE MORE THING: SOMEWHERE IN"
|
||||
580 PRINT "THE MAZE OF TUNNELS IS A MAGIC"
|
||||
590 PRINT "WORD WRITTEN BY AN OLD VICTIM."
|
||||
600 PRINT "(HE DIED HORRIBLY BECAUSE HE"
|
||||
610 PRINT "FORGOT IT.) THE WORD CHANGES"
|
||||
620 PRINT "FROM TIME TO TIME, SO BE CAREFUL!"
|
||||
630 PRINT "THE MONSTER THAT PROWLS THE CAVE"
|
||||
640 PRINT "WILL SMOTHER YOU IN SLIME UNLESS"
|
||||
650 PRINT "YOU REMEMBER IT!! FINALLY, AT"
|
||||
660 PRINT "THE END, YOU MUST GET TO ROOM 1"
|
||||
670 PRINT "TO LEAVE THE CAVE. GOOD LUCK!"
|
||||
680 PRINT
|
||||
690 Q$ = CHR$(34)
|
||||
700 PRINT "HOW MANY GUIDES DID YOU HAVE";
|
||||
710 INPUT LOST
|
||||
720 IF LOST <1 THEN 700
|
||||
730 REM RANDOMIZE(LOST)
|
||||
731 LOST = INT(LOST): IF LOST >100 THEN LOST = 100
|
||||
732 FOR I = 1 TO LOST:R = RND(1): NEXT
|
||||
740 GOSUB 2
|
||||
750 GOSUB 3240
|
||||
760 PRINT
|
||||
770 FIND = 0
|
||||
780 TR = INT( RND(1) *15) +3
|
||||
790 MG = INT( RND(1) *15) +3
|
||||
800 IF MG = TR THEN 790
|
||||
810 REM --------------------------------
|
||||
820 ROOM = 1
|
||||
830 GOSUB 3870
|
||||
840 GOSUB 2840
|
||||
850 IF I$ = "E" THEN 920
|
||||
860 IF I$ = "W" THEN 1370
|
||||
870 IF I$ = "N" THEN GOSUB 2360
|
||||
880 IF I$ = "S" THEN GOSUB 2360
|
||||
890 GOSUB 3120
|
||||
900 GOTO 840
|
||||
910 REM --------------------------------
|
||||
920 ROOM = 2
|
||||
930 GOSUB 2840
|
||||
940 IF I$ = "E" THEN 1010
|
||||
950 IF I$ = "W" THEN 820
|
||||
960 IF I$ = "N" THEN 2270
|
||||
970 IF I$ = "S" THEN GOSUB 2360
|
||||
980 GOSUB 3120
|
||||
990 GOTO 930
|
||||
1000 REM --------------------------------
|
||||
1010 ROOM = 3
|
||||
1020 GOSUB 2840
|
||||
1030 IF I$ = "E" THEN GOSUB 2360
|
||||
1040 IF I$ = "W" THEN 920
|
||||
1050 IF I$ = "N" THEN GOSUB 2360
|
||||
1060 IF I$ = "S" THEN 1280
|
||||
1070 GOSUB 3120
|
||||
1080 GOTO 1020
|
||||
1090 REM --------------------------------
|
||||
1100 ROOM = 4
|
||||
1110 GOSUB 2840
|
||||
1120 IF I$ = "E" THEN 1190
|
||||
1130 IF I$ = "W" THEN GOSUB 2360
|
||||
1140 IF I$ = "N" THEN GOSUB 2360
|
||||
1150 IF I$ = "S" THEN GOSUB 2360
|
||||
1160 GOSUB 3120
|
||||
1170 GOTO 1110
|
||||
1180 REM --------------------------------
|
||||
1190 ROOM = 5
|
||||
1200 GOSUB 2840
|
||||
1210 IF I$ = "E" THEN 1280
|
||||
1220 IF I$ = "W" THEN 1100
|
||||
1230 IF I$ = "N" THEN GOSUB 2360
|
||||
1240 IF I$ = "S" THEN GOSUB 2360
|
||||
1250 GOSUB 3120
|
||||
1260 GOTO 1200
|
||||
1270 REM --------------------------------
|
||||
1280 ROOM = 6
|
||||
1290 GOSUB 2840
|
||||
1300 IF I$ = "E" THEN GOSUB 2360
|
||||
1310 IF I$ = "W" THEN 1190
|
||||
1320 IF I$ = "N" THEN 1010
|
||||
1330 IF I$ = "S" THEN 1550
|
||||
1340 GOSUB 3120
|
||||
1350 GOTO 1290
|
||||
1360 REM --------------------------------
|
||||
1370 ROOM = 7
|
||||
1380 GOSUB 2840
|
||||
1390 IF I$ = "E" THEN 1460
|
||||
1400 IF I$ = "W" THEN 820
|
||||
1410 IF I$ = "N" THEN GOSUB 2360
|
||||
1420 IF I$ = "S" THEN GOSUB 2360
|
||||
1430 GOSUB 3120
|
||||
1440 GOTO 1380
|
||||
1450 REM --------------------------------
|
||||
1460 ROOM = 8
|
||||
1470 GOSUB 2840
|
||||
1480 IF I$ = "E" THEN GOSUB 2360
|
||||
1490 IF I$ = "W" THEN 1370
|
||||
1500 IF I$ = "N" THEN GOSUB 2360
|
||||
1510 IF I$ = "S" THEN 1730
|
||||
1520 GOSUB 3120
|
||||
1530 GOTO 1470
|
||||
1540 REM --------------------------------
|
||||
1550 ROOM = 9
|
||||
1560 GOSUB 2840
|
||||
1570 IF I$ = "E" THEN GOSUB 2360
|
||||
1580 IF I$ = "W" THEN GOSUB 2360
|
||||
1590 IF I$ = "N" THEN 1280
|
||||
1600 IF I$ = "S" THEN 1820
|
||||
1610 GOSUB 3120
|
||||
1620 GOTO 1560
|
||||
1630 REM --------------------------------
|
||||
1640 ROOM = 10
|
||||
1650 GOSUB 2840
|
||||
1660 IF I$ = "E" THEN 1730
|
||||
1670 IF I$ = "W" THEN GOSUB 2360
|
||||
1680 IF I$ = "N" THEN GOSUB 2360
|
||||
1690 IF I$ = "S" THEN 1910
|
||||
1700 GOSUB 3120
|
||||
1710 GOTO 1650
|
||||
1720 REM --------------------------------
|
||||
1730 ROOM = 11
|
||||
1740 GOSUB 2840
|
||||
1750 IF I$ = "E" THEN GOSUB 2360
|
||||
1760 IF I$ = "W" THEN 1640
|
||||
1770 IF I$ = "N" THEN 1460
|
||||
1780 IF I$ = "S" THEN GOSUB 2360
|
||||
1790 GOSUB 3120
|
||||
1800 GOTO 1740
|
||||
1810 REM --------------------------------
|
||||
1820 ROOM = 12
|
||||
1830 GOSUB 2840
|
||||
1840 IF I$ = "E" THEN 2090
|
||||
1850 IF I$ = "W" THEN GOSUB 2360
|
||||
1860 IF I$ = "N" THEN 1550
|
||||
1870 IF I$ = "S" THEN 2000
|
||||
1880 GOSUB 3120
|
||||
1890 GOTO 1830
|
||||
1900 REM --------------------------------
|
||||
1910 ROOM = 13
|
||||
1920 GOSUB 2840
|
||||
1930 IF I$ = "E" THEN GOSUB 2360
|
||||
1940 IF I$ = "W" THEN GOSUB 2360
|
||||
1950 IF I$ = "N" THEN 1640
|
||||
1960 IF I$ = "S" THEN 2090
|
||||
1970 GOSUB 3120
|
||||
1980 GOTO 1920
|
||||
1990 REM --------------------------------
|
||||
2000 ROOM = 14
|
||||
2010 GOSUB 2840
|
||||
2020 IF I$ = "E" THEN GOSUB 2360
|
||||
2030 IF I$ = "W" THEN GOSUB 2360
|
||||
2040 IF I$ = "N" THEN 1820
|
||||
2050 IF I$ = "S" THEN GOSUB 2360
|
||||
2060 GOSUB 3120
|
||||
2070 GOTO 2010
|
||||
2080 REM --------------------------------
|
||||
2090 ROOM = 15
|
||||
2100 GOSUB 2840
|
||||
2110 IF I$ = "E" THEN 1910
|
||||
2120 IF I$ = "W" THEN 1820
|
||||
2130 IF I$ = "N" THEN 2180
|
||||
2140 IF I$ = "S" THEN GOSUB 2360
|
||||
2150 GOSUB 3120
|
||||
2160 GOTO 2100
|
||||
2170 REM --------------------------------
|
||||
2180 ROOM = 16
|
||||
2190 GOSUB 2840
|
||||
2200 IF I$ = "E" THEN 2270
|
||||
2210 IF I$ = "W" THEN GOSUB 2360
|
||||
2220 IF I$ = "N" THEN GOSUB 2360
|
||||
2230 IF I$ = "S" THEN 2090
|
||||
2240 GOSUB 3120
|
||||
2250 GOTO 2190
|
||||
2260 REM --------------------------------
|
||||
2270 ROOM = 17
|
||||
2280 GOSUB 2840
|
||||
2290 IF I$ = "E" THEN GOSUB 2360
|
||||
2300 IF I$ = "W" THEN 2180
|
||||
2310 IF I$ = "N" THEN 920
|
||||
2320 IF I$ = "S" THEN GOSUB 2360
|
||||
2330 GOSUB 3120
|
||||
2340 GOTO 2280
|
||||
2350 REM ---------------- DEAD END SUBROUTINE ----------------
|
||||
2360 ON DI GOTO 2370,2380,2390
|
||||
2370 ON INT( RND(1) *5) +1 GOTO 2400,2430,2520,2550,2580
|
||||
2380 ON INT( RND(1) *6) +1 GOTO 2400,2460,2490,2520,2550,2580
|
||||
2390 ON INT( RND(1) *7) +1 GOTO 2400,2430,2460,2490,2520,2550,2580
|
||||
2400 PRINT "SORRY, THERE IS NO DOOR HERE."
|
||||
2410 PRINT "YOU CAN'T GO THIS WAY."
|
||||
2420 RETURN
|
||||
2430 PRINT "THIS WHOLE WALL IS OOZING ACID."
|
||||
2440 PRINT "YOU CAN'T GO THIS WAY."
|
||||
2450 RETURN
|
||||
2460 PRINT "THIS DOOR HAS SUDDENLY CLOSED."
|
||||
2470 PRINT "YOU CAN'T GO THIS WAY."
|
||||
2480 RETURN
|
||||
2490 PRINT "FEROCIOUS GILA MONSTERS BAR THE WAY."
|
||||
2500 PRINT "YOU CAN'T GO THIS WAY."
|
||||
2510 RETURN
|
||||
2520 PRINT "AHEAD ARE SHEETS OF UNPASSABLE FLAME."
|
||||
2530 PRINT "YOU CAN'T GO THIS WAY."
|
||||
2540 RETURN
|
||||
2550 PRINT "YOU ALMOST WALK INTO A CLOUD OF POISON."
|
||||
2560 PRINT "YOU CAN'T GO THIS WAY."
|
||||
2570 RETURN
|
||||
2580 ON INT( RND(1) *4) +1 GOTO 2590,2650,2710,2770
|
||||
2590 PRINT "THE WALLS START TO CRUNBLE AROUND YOU,"
|
||||
2600 ON INT( RND(1) *6) +1 GOTO 2610,2610,2610,2610,2610,2630
|
||||
2610 PRINT "BUT YOU NARROWLY ESCAPE."
|
||||
2620 RETURN
|
||||
2630 PRINT "AND CRUSH YOU INTO DUST. THE END."
|
||||
2640 END
|
||||
2650 PRINT "YOU FALL INTO THE SCUM BUGS' PIT"
|
||||
2660 ON INT( RND(1) *6) +1 GOTO 2670,2670,2670,2670,2670,2690
|
||||
2670 PRINT "BUT MANAGE TO PULL YOURSELF TO SAFETY."
|
||||
2680 RETURN
|
||||
2690 PRINT "AND ARE SAVAGELY BITTEN. THE END."
|
||||
2700 END
|
||||
2710 PRINT "HISSING SLIME CREATURES BLOCK THE WAY,"
|
||||
2720 ON INT( RND(1) *6) +1 GOTO 2730,2730,2730,2730,2730,2750
|
||||
2730 PRINT "BUT YOU FREEZE AND THEY IGNORE YOU."
|
||||
2740 RETURN
|
||||
2750 PRINT "AND TURN YOU INTO JELLY. THE END."
|
||||
2760 END
|
||||
2770 PRINT "A TORNADO OF SAWFLIES BUZZES AT YOU,"
|
||||
2780 ON INT( RND(1) *6) +1 GOTO 2790,2790,2790,2790,2790,2810
|
||||
2790 PRINT "BUT YOU DUCK SAEFLY BEHIND FALLEN ROCK."
|
||||
2800 RETURN
|
||||
2810 PRINT "AND SLASHES YOU TO SHREDS. THE END."
|
||||
2820 END
|
||||
2830 REM ---------------- TREASURE AND RUBY SUBROUTINE ----------------
|
||||
2840 PRINT
|
||||
2850 GOSUB 3480
|
||||
2860 PRINT " ------> YOU ARE IN ROOM ";ROOM;" <------"
|
||||
2870 IF ROOM < >TR THEN 2950
|
||||
2880 IF F1 = 1 THEN 3030
|
||||
2890 PRINT "** YOU'VE FOUND ALL THE TREASURE!!! **"
|
||||
2900 GOSUB 3410
|
||||
2910 F1 = 1
|
||||
2920 IF F2 = 1 THEN 3060
|
||||
2930 PRINT "(NOW TRY TO FIND THE RUBY TO ESCAPE)"
|
||||
2940 PRINT
|
||||
2950 IF ROOM < >MG THEN 3030
|
||||
2960 IF F2 = 1 THEN 3030
|
||||
2970 PRINT "* YOU'VE FOUND THE RUBY TO ESCAPE!! *"
|
||||
2980 GOSUB 3410
|
||||
2990 F2 = 1
|
||||
3000 IF F1 = 1 THEN 3060
|
||||
3010 PRINT "(NOW TRY TO LOCATE THE VAST TREASURE)"
|
||||
3020 PRINT
|
||||
3030 PRINT "WHICH WAY DO YOU WANT TO GO?"
|
||||
3040 INPUT I$
|
||||
3050 RETURN
|
||||
3060 PRINT "*********** YOU DID IT!!! ***********"
|
||||
3070 PRINT "YOU FOUND THE TREASURE--AND ALSO FOUND"
|
||||
3080 PRINT "THE GIANT RUBY TO LET YOU ESCAPE !!!!!"
|
||||
3090 PRINT "NOW JUST RETURN TO ROOM 1 TO GET BACK!"
|
||||
3100 GOTO 3020
|
||||
3110 REM ---------------- DIRECTION SUBROUTINE ----------------
|
||||
3120 IF I$ = "N" OR I$ = "E" OR I$ = "W" OR I$ = "S" THEN 3390
|
||||
3130 PRINT CHR$(7)
|
||||
3140 K = K +1
|
||||
3150 IF K <5 THEN 3220
|
||||
3160 PRINT "YOU DIDN'T LISTEN, DID YOU?"
|
||||
3170 PRINT "A DOZEN DEADLY PURPLE CAVE CREATURES"
|
||||
3180 PRINT "PULL YOU DOWN INTO THE MUCK. THEY"
|
||||
3190 PRINT "HAVEN'T HAD A MEAL SINCE THE LAST"
|
||||
3200 PRINT "FOOLISH EXPLORER DROPPED IN. BYE-BYE!"
|
||||
3210 END
|
||||
3220 PRINT "YOU JUST WALKED INTO A CORNER AND"
|
||||
3230 PRINT "BANGED YOUR HEAD ON A SLIMY ROCK."
|
||||
3239 REM ---- SHOW DIRECTIONS AT START OF GAME, AND WHEN YOU ENTER AN INVALID ONE
|
||||
3240 PRINT
|
||||
3250 PRINT "*";
|
||||
3260 FOR L = 1 TO 34
|
||||
3270 PRINT "=";
|
||||
3280 NEXT L
|
||||
3290 PRINT "*"
|
||||
3300 PRINT ": THE ONLY DIRECTIONS YOU CAN GIVE :"
|
||||
3310 PRINT ": ARE: ";Q$;"N";Q$;", ";Q$;"E";Q$;", ";Q$;"S";
|
||||
3320 PRINT Q$;", OR ";Q$;"W";Q$; TAB( 36);":"
|
||||
3330 PRINT "*";
|
||||
3340 FOR L = 1 TO 34
|
||||
3350 PRINT "=";
|
||||
3360 NEXT L
|
||||
3370 PRINT "*"
|
||||
3390 RETURN
|
||||
3400 REM ---------------- BEEP SUBROUTINE ----------------
|
||||
3410 FOR B = 1 TO 5
|
||||
3420 PRINT CHR$(7);
|
||||
3430 FOR LAG = 1 TO 600
|
||||
3440 NEXT LAG
|
||||
3450 NEXT B
|
||||
3460 RETURN
|
||||
3470 REM ---------------- SLIME MONSTER SUBROUTINE ----------------
|
||||
3480 IF SLIME = 1 THEN 3610
|
||||
3490 IF ROOM <7 THEN 3760
|
||||
3500 MAGIC$ = ""
|
||||
3510 FOR S = 1 TO 7
|
||||
3520 MAGIC$ = MAGIC$ + CHR$( INT( RND(1) *26) +65)
|
||||
3530 NEXT S
|
||||
3540 GOSUB 3780
|
||||
3550 PRINT "YOU SEE A WORD WRITTEN IN BLOOD ON THE"
|
||||
3560 PRINT "WALL: ";MAGIC$;" REMEMBER THIS WORD--"
|
||||
3570 PRINT "IT MAY JUST SAVE YOUR LIFE!!!"
|
||||
3580 GOSUB 3780
|
||||
3590 SLIME = 1
|
||||
3600 GOTO 3760
|
||||
3610 IF INT( RND(1) *7) < >1 THEN 3760
|
||||
3620 GOSUB 3780
|
||||
3630 PRINT "THE HORRIBLE GREEN MUCK MONSTER IS"
|
||||
3640 PRINT "IN THE ROOM WITH YOU. YOU HAVE ONE"
|
||||
3650 PRINT "CHANCE TO USE THE MAGIC WORD TO SAVE"
|
||||
3660 PRINT "YOUR LIFE--OTHERWISE YOU'LL BE DEAD"
|
||||
3670 PRINT "IN TWO SECONDS! QUICK! WHAT IS IT";
|
||||
3680 INPUT TRY$
|
||||
3690 IF TRY$ = MAGIC$ THEN 3730
|
||||
3700 PRINT "NO!! YOU'RE WRONG! THE MAGIC WORD"
|
||||
3710 PRINT "WAS ";MAGIC$;". AARRRRGGGHHHH!!!!"
|
||||
3720 END
|
||||
3730 PRINT "THIS TIME YOU REMEMBERED. LUCKY YOU!"
|
||||
3740 SLIME = 0
|
||||
3750 GOSUB 3780
|
||||
3760 RETURN
|
||||
3770 REM ---------------- LINE DRAWING SUBROUTINE ----------------
|
||||
3780 PRINT
|
||||
3790 N = ( RND(1) *26) +64
|
||||
3800 FOR E = 1 TO 38
|
||||
3810 PRINT CHR$(N);
|
||||
3820 NEXT E
|
||||
3830 PRINT
|
||||
3840 PRINT
|
||||
3850 RETURN
|
||||
3860 REM ---------------- CHECK FOR WIN SUBROUTINE ----------------
|
||||
3870 IF F1 < >1 OR F2 < >1 THEN 3980
|
||||
3880 PRINT
|
||||
3890 PRINT "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
3900 PRINT
|
||||
3910 PRINT "YOU DID IT!!!! YOU FOUND THE TREASURE"
|
||||
3920 PRINT "AND THE GIANT RUBY--AND YOU MADE IT"
|
||||
3930 PRINT "BACK TO ROOM 1 TO GET OUT OF THE MAZE!"
|
||||
3940 PRINT
|
||||
3950 PRINT "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
3960 GOSUB 3410
|
||||
3970 END
|
||||
3980 PRINT
|
||||
3990 PRINT "$$$$$$$$$$$$ INVENTORY $$$$$$$$$$$$"
|
||||
4000 PRINT
|
||||
4010 IF F2 = 1 THEN PRINT TAB( 9);"-- GIANT RUBY --"
|
||||
4020 IF F1 = 1 THEN PRINT TAB( 7);"-- FABULOUS TREASURE --"
|
||||
4030 IF F1 = 0 AND F2 = 0 THEN PRINT TAB( 5);"-- NOTHING BUT YOUR WITS --"
|
||||
4040 PRINT
|
||||
4050 PRINT "$$$$$$$$$$$$ INVENTORY $$$$$$$$$$$$"
|
||||
4060 PRINT
|
||||
4070 RETURN
|
8
src/test/resources/rem-renumber.bas
Normal file
8
src/test/resources/rem-renumber.bas
Normal file
|
@ -0,0 +1,8 @@
|
|||
10 text:home
|
||||
20 for a = 1 to 100
|
||||
30 gosub 100
|
||||
40 next a
|
||||
50 end
|
||||
100 rem a subroutine
|
||||
110 print a
|
||||
120 return
|
10
src/test/resources/route6502.bas
Normal file
10
src/test/resources/route6502.bas
Normal file
|
@ -0,0 +1,10 @@
|
|||
1 REM From Beagle Bros. Beagle Compiler disk.
|
||||
5 PRINT CHR$(21)
|
||||
10 GR : HOME : NORMAL :A = 1:B = 21:D = 22:L = 20:R = 39:S = 40:U = 3:V = 15:A = 1:M = 10000:Z = 0:E = 36:F = 37
|
||||
20 COLOR= 2: FOR Y = 28 TO 34: HLIN 23,27 AT Y: NEXT : COLOR= V: HLIN D,28 AT 35: COLOR= 5: PLOT 25,33: REM DRAW.CAR
|
||||
30 FOR C = Z TO V STEP U: IF C = Z OR C = 6 THEN COLOR= V *(C = Z): FOR I = 23 TO 26: HLIN L,I AT I +A: NEXT I: HLIN 24,26 AT 30: HLIN 24,26 AT 29: HLIN B,D AT 28: PLOT D,29: REM HEADLIGHTS.ON/OFF
|
||||
40 FOR X = L TO R STEP A +(C >U): COLOR= C: HLIN S -X,X AT R -X: VLIN S -X,X AT X: VLIN R -X,X AT S -X: REM BKGRD
|
||||
50 COLOR= U:M = M +A: HTAB 24: PRINT M;: PLOT 27,41: REM MILEAGE
|
||||
60 COLOR= X: VLIN E,F AT 23: VLIN E,F AT 27: REM TIRES
|
||||
70 COLOR= V: VLIN D,R AT L: COLOR= Z: FOR J = B +X - INT(X/U) *U TO R STEP U: PLOT L,J: REM WHITE.LINE
|
||||
80 NEXT : NEXT : NEXT : GOTO 30
|
Loading…
Reference in New Issue
Block a user