BINSIC almost done

BINSIC, my BASIC-as-a-DSL, is almost complete now, though I am rather ashamed at the first big program I used to test it – I just grabbed it off an archive of content from the legendary Basic Computer Games and did not look too closely at what it was about.

8 PRINT "You are a pilot in a Second World War bomber."
10 PRINT "Which side -- Italy(1), Allies(2), Japan(3), Germany(4)"
12 INPUT A
20 IF A > 0 AND A < 5 THEN GOTO 25
22 PRINT "TRY AGAIN..."
24 GOTO 10
25 IF A = 1 THEN GOTO 30
26 IF A = 2 THEN GOTO 110
27 IF A = 3 THEN GOTO 200
28 IF A = 4 THEN GOTO 220
30 PRINT "YOUR TARGET -- Albania(1), Greece(2), North Africa(3)"
35 INPUT B
40 IF B>0 AND B<4 THEN GOTO 45
42 PRINT "TRY AGAIN..."
43 GOTO 30
45 PRINT ""
46 IF B = 1 THEN GOTO 50
47 IF B = 2 THEN GOTO 80
48 IF B = 3 THEN GOTO 90
50 PRINT "SHOULD BE EASY -- YOU'RE FLYING A NAZI-MADE PLANE."
60 GOTO 280
80 PRINT "BE CAREFUL!!!"
85 GOTO 280
90 PRINT "Going for the oil, eh?"
95 GOTO 280
110 PRINT "AIRCRAFT -- Liberator(1), B-29(2), B-17(3), Lancaster(4)"
115 INPUT G
120 IF G>0 AND G<5 THEN GOTO 125
122 PRINT "TRY AGAIN..."
123 GOTO 110
125 PRINT ""
126 IF G = 1 THEN GOTO 130
127 IF G = 2 THEN GOTO 150
128 IF G = 3 THEN GOTO 170
129 IF G = 4 THEN GOTO 190
130 PRINT "You have got 2 tons of bombs flying for Ploesti."
135 GOTO 280
150 PRINT "You are dumping the A-bomb on Hiroshima."
155 GOTO 280
170 PRINT "You are chasing the Bismark in the North Atlantic."
175 GOTO 280
190 PRINT "You are targeting the Ruhr."
195 GOTO 280
200 PRINT
201 PRINT "You are flying a KAMIKAZE mission over the USS Lexington."
205 PRINT "Your first Kamikaze mission? (Y OR N)"
206 INPUT F$
207 IF F$ = "N" THEN LET S = 0
208 IF F$ = "N" THEN GOTO 358
210 PRINT ""
212 IF RND > 0.65 THEN GOTO 325
215 GOTO 380
220 PRINT "A NAZI, EH?  Oh well.  Are you going for Russia(1),"
230 PRINT "England(2), or France(3)"
231 INPUT M
232 IF M>0 AND M<4 THEN GOTO 235
233 PRINT "TRY AGAIN..."
234 GOTO 220
235 PRINT ""
240 IF M = 1 THEN GOTO 250
242 IF M = 2 THEN GOTO 260
243 IF M = 3 THEN GOTO 270
250 PRINT "YOU'RE NEARING STALINGRAD."
255 GOTO 280
260 PRINT "NEARING LONDON.  BE CAREFUL, THEY'VE GOT RADAR."
265 GOTO 280
270 PRINT "NEARING VERSAILLES.  DUCK SOUP.  THEY'RE NEARLY DEFENSELESS."
280 PRINT
285 PRINT "HOW MANY MISSIONS HAVE YOU FLOWN"
287 INPUT D
290 IF D < 160 THEN GOTO 300
292 PRINT "MISSIONS, NOT MILES..."
295 PRINT "150 missions is high even for old-timers."
297 PRINT "NOW THEN, ";
298 GOTO 285
300 PRINT
302 IF D < 100 THEN GOTO 310
305 PRINT "THAT'S PUSHING THE ODDS!"
307 GOTO 320
310 IF D < 25 THEN PRINT "FRESH OUT OF TRAINING, EH?"
320 PRINT
322 IF D < 160 * RND THEN GOTO 330
325 PRINT "DIRECT HIT!!!! ", INT(100 * RND), " KILLED."
327 PRINT "MISSION SUCCESSFUL."
328 GOTO 390
330 PRINT "MISSED TARGET BY ", INT(2+30 * RND), " MILES!"
335 PRINT "Now you are REALLY in for it !!"
336 PRINT
340 PRINT "Does the enemy have GUNS(1), MISSILES(2), or BOTH(3)"
342 INPUT R
345 IF R > 0 AND R < 4 THEN GOTO 350
347 PRINT "TRY AGAIN..."
348 GOTO 340
350 PRINT
351 LET T=0
352 IF R = 2 THEN GOTO 360
355 PRINT "What's the per cent hit rate of enemy gunners (10 TO 50)?"
356 INPUT S
357 IF S < 10 THEN PRINT "YOU LIE, BUT YOU'LL PAY..."
358 IF S < 10 THEN GOTO 380
359 PRINT
360 PRINT
362 IF R > 1 THEN LET T=35
365 IF S+T > 100 * RND THEN GOTO 380
370 PRINT "You made it through tremendous FLAK!"
375 GOTO 390
380 PRINT "* * * * BOOM * * * *"
384 PRINT "YOU HAVE BEEN SHOT DOWN....."
386 PRINT "Dearly beloved, we are gathered here today to pay our"
387 PRINT "last tribute...."
390 PRINT
391 PRINT
392 PRINT "Another mission? (Y or N)"
393 INPUT U$
395 IF U$ = "Y" THEN GOTO 8
400 PRINT "CHICKEN !!!"
410 END
Advertisement
%d bloggers like this: