by Mark Price
16K cassette or 24K Disk

Unnaturally heavy rainfall has caused a landslide in the area of Boulder, Colorado. The debris has created an effective earth dam which is keeping the water from the storm from flowing away ... thereby threatening to flood the town.

Boulder has hired your demolition company to clear away the rubble. Because of the unsure footing on the pile, it has been decided to clear away the rocks with bombs dropped from aircraft flying above.

Typing it in.

Before typing anything, look at the listings accompanying this article.

Listing 1 is the BASIC data and data checking routine. This listing is used to create both cassette and disk versions of Boulder Bombers. The data statements are listed in hexadecimal (base 16), so that the program will fit in 16K cassette systems.
Listing 2 is the assembly language source code for the game of Boulder Bombers. created with the OSS MAC/65 assembler. You don't have to type this listing to play the game! It is included for readers interested in assembly language.

Follow the instructions below to make either a cassette or disk version of Boulder Bombers.

Cassette instructions.
1. Type Listing 1 into your computer using the BASIC cartridge and verify your typing with Unicheck (See CCheck, DCheck or UniCheck).
2. Type RUN and press RETURN. The program will begin and ask:
MAKE CASSETTE (0) OR DISK (1)?
Type 0 and press RETURN. The program will begin checking the DATA statements, printing the line number of each as it goes. It will alert you if it finds any problems. Fix any incorrect lines and re-RUN the program, if necessary, until all errors are eliminated.
3. When all of your DATA lines are correct, the computer will beep twice and prompt you to READY CASSETTE AND PRESS RETURN. Now, insert a blank cassette in your recorder, press the RECORD and PLAY buttons simultaneously and hit RETURN. The message WRITING FILE will appear, and the program will create a machine language boot tape version of Boulder Bombers, printing each DATA line number as it goes. When the READY prompt appears, the game is recorded and ready to play. CSAVE the BASIC program onto a separate tape before continuing.
4. To play, rewind the tape created by the BASIC program to the beginning. Turn your computer OFF and remove all cartridges. Press the PLAY button on your recorder and turn ON your computer while holding down the START key. If you have a 600 or 800XL computer, you must hold the START and OPTION keys when you turn on the power. The computer will "beep" once. Hit the RETURN key, and Boulder Bombers will load and run automatically.
Disk instructions.
1. Type Listing 1 into your computer using the BASIC cartridge and verify your typing with Unicheck (See CCheck, DCheck or UniCheck).
2. Type RUN and press RETURN. The program will begin and ask:
MAKE CASSETTE (0) OR DISK (1)?
Type 1 and press RETURN. The program will begin checking the DATA lines, printing the line number of each statement as it goes. It will alert you if it finds any problems. Fix incorrect lines and re-RUN the program, if necessary, until all errors are eliminated.
3. When all the DATA lines are correct, you will be prompted to INSERT DISK WITH DOS AND PRESS RETURN. Put a disk containing DOS 2.0S into drive #1, and press RETURN. The message WRITING FILE will appear, and the program will create an AUTORUN.SYS file on the disk, displaying each DATA line number as it goes. When the READY prompt appears, the game is ready to play. Be sure the BASIC program is SAVEd before continuing.
4. To play the game, insert the disk containing the AUTORUN.SYS file into drive #1. Turn your computer OFF, remove all cartridges and turn your computer back ON. Boulder Bombers will load and run automatically.

Playing Boulder Bombers.

Boulder Bombers is a cooperative/competitive game for one or two players. The number of players is chosen using the SELECT key.

Screen shot
Boulder Bombers.

You start the game in a hot air balloon, flying high above the rock-filled canyon. Bombs are dropped by pressing the joystick trigger buttons. When half of the rocks we gone, you will automatically switch to quicker planes. When the entire canyon is cleared of rocks, you advance to the next level, where everything goes faster.

At the start of Boulder Bombers, you are allotted three bombs, shown next to your score at the bottom of the screen. You are penalized bombs whenever you make a miss or fail to attempt a drop on a pass over the canyon.

Extra bombs are awarded at 1000, 3000, 5000, 7000 and, finally, at 9000 points. Up to three bombs will be shown on the screen at a time, but extras earned will be kept in reserve. When you miss with your last bomb, the game ends.

The worth of rocks cleared varies, depending upon their original depth: red-2, yellow-4, blue-6.

Boulder Bombers may be paused by hitting the space bar. Play is resumed by moving either joystick. Commence earth-moving operations!


At twenty-one, Mark Price has been working with computers for five years. He currently attends college in Southern California, where he is working on a degree in computer science. A member of S.B.A.C.E., his interests include programming, speech synthesis and graphics development.
Listing 1.
BASIC listing.

10 REM *** BOULDER BOMBERS ***
20 TRAP 20:? "MAKE CASSETTE (0), OR DI
SK (1)";:INPUT DSK:IF DSK>1 THEN 20
30 TRAP 40000:DATA 0,1,2,3,4,5,6,7,8,9
,0,0,0,0,0,0,0,10,11,12,13,14,15
40 DIM DAT$(91),HEX(22):FOR X=0 TO 22:
READ N:HEX(X)=N:NEXT X:LINE=990:RESTOR
E 1000:TRAP 120:? "CHECKING DATA"
50 LINE=LINE+10:? "LINE:";LINE:READ DA
T$:IF LEN(DAT$)<>90 THEN 220
60 DATLIN=PEEK(183)+PEEK(184)*256:IF D
ATLIN<>LINE THEN ? "LINE ";LINE;" MISS
ING!":END 
70 FOR X=1 TO 89 STEP 2:D1=ASC(DAT$(X,
X))-48:D2=ASC(DAT$(X+1,X+1))-48:BYTE=H
EX(D1)*16+HEX(D2)
80 IF PASS=2 THEN PUT #1,BYTE:NEXT X:R
EAD CHKSUM:GOTO 50
90 TOTAL=TOTAL+BYTE:IF TOTAL>999 THEN 
TOTAL=TOTAL-1000
100 NEXT X:READ CHKSUM:IF TOTAL=CHKSUM
 THEN 50
110 GOTO 220
120 IF PEEK(195)<>6 THEN 220
130 IF PASS=0 THEN 170
140 IF  NOT DSK THEN 160
150 PUT #1,224:PUT #1,2:PUT #1,225:PUT
 #1,2:PUT #1,0:PUT #1,32:CLOSE #1:END
160 FOR X=1 TO 104:PUT #1,0:NEXT X:CLO
SE #1:END 
170 IF  NOT DSK THEN 200
180 ? "INSERT DISK WITH DOS, PRESS RET
URN";:DIM IN$(1):INPUT IN$:OPEN #1,8,0
,"D:AUTORUN.SYS"
190 PUT #1,255:PUT #1,255:PUT #1,0:PUT
 #1,32:PUT #1,111:PUT #1,40:GOTO 210
200 ? "READY CASSETTE AND PRESS RETURN
";:OPEN #1,8,128,"C:":RESTORE 230:FOR 
X=1 TO 40:READ N:PUT #1,N:NEXT X
210 ? :? "WRITING FILE":PASS=2:LINE=99
0:RESTORE 1000:TRAP 120:GOTO 50
220 ? "BAD DATA: LINE ";LINE:END
230 DATA 0,18,216,31,255,31,169,0,141,
47,2,169,60,141,2,211,169,0,141,231,2,
133,14,169,56,141,232,2
240 DATA 133,15,169,0,133,10,169,32,13
3,11,24,96
1000 DATA A26FBDFC279D002CCA10F7A9008D
0ED4A9348D16D0A9288D17D0A9848D18D0A9C4
8D19D0A9008D1AD0A2039D08,415
1010 DATA D0CA10FAA9288D12D0A9848D13D0
A9C88D14D0A9C88D15D0A9308D07D4A93E8D00
D4A9038D1DD0A070B900E099,358
1020 DATA 002CC8D0F7B900E199002DC8D0F7
A92C8D09D4A900A0229912008810FAA02799FC
298810FA204B25A9008D08D2,550
1030 DATA A9038D0FD2A938852DA948852EA9
2C852BA9CC852CA9008D00D48D05D285158D07
D2207925A9AE8D02D4A9258D,475
1040 DATA 03D4A9FF8513A90185148519A900
8518A93E8D00D4A9038512AD1FD02903C901D0
15AD1FD02902F0F9A51A4901,76
1050 DATA 851A1869118D2926D004C902F015
A518D00BAD0AD22901AABDAC258517201D244C
CD20AD1FD02901F0F9A90385,502
1060 DATA 13A90085198D00D4A2029D59269D
6326CA10F7A9108D5C268D6626A202A9CD9D5E
269D6826CA10F7A903852985,215
1070 DATA 2AA91185278528A51A0A0A0AA207
A8B99A259D4F26C8CA10F6A9D18D02D4A9258D
03D4A93E8D00D4204B25A903,855
1080 DATA 85178512A90185148532A92A8531
207925A90085188D06D2A92C852BA9CC852C8D
1ED0A908851BA513C9AFF005,394
1090 DATA 38E9048513A201B51FD0034C3423
BD06D0D0034CE7222907D0034CBD22A9008534
B51F38E96729F88533063306,595
1100 DATA 33263418653385339002E634B52B
38E92F4A4A18653385339002E6341869FC8533
A53469298534A000B133F004,765
1110 DATA C9049022C8B133F004C9049019A0
28B133F004C904900FC8B133D0034CE722C904
90034CE7220A8516A9009133,433
1120 DATA A53138E9018531B002C632A9FE85
15BCAA25A51618795926995926A9038516B959
26F023C91A901A38E90A9959,108
1130 DATA 2688C6163014B95926D002A91018
6901995926D0DDC8E616D0D8A9598533A92685
348AF00BA90A186533853390,898
1140 DATA 02E634A000B133D93A26F004B009
9011C8C004D0F0F00AA003B133993A268810F8
BCAA25B95626D527D014F629,78
1150 DATA B529C904B00A187DAA25A8A9CD99
5A26F627F62FB52FC51BD02A8A1869368534B5
1F8533A005A90091338810FB,985
1160 DATA 8A0AA8A9009900D29901D2951FB5
2FD04D2062254C2E238A1869368534B51F8533
A900A00591338810FBF625B5,513
1170 DATA 254A4A4A4A851618751FC9C4B0C5
951F8533A005B9602C91338810F88A0AA8A516
18752395239900D2A9A838E5,241
1180 DATA 169901D2CA30424C9C21B529F0F6
8A18E51AD01BA5143008B52BC94490E6B006B5
2BC9B8B0DEAD0AD2290FF007,561
1190 DATA D0D5BD10D0D0D0B52D186908951F
A9009525952FF621A9329523D0BB8D1ED0201D
24A515F012C615C61549F08D,794
1200 DATA 04D24A4A4A4A498F8D05D2AD1FD0
C907F0034C9420A531D007A532D0034C6321AD
FC02C921D01AA9008D01D28D,615
1210 DATA 03D28D05D2AD00D3C9FFF0F9A9FF
8DFC028DF202A512290FF0034C9A21A927851D
A908851EA96418651D8533A9,948
1220 DATA 2B69008534A000B133F01EAAA028
B133D0178A9133A000989133A53338E9288533
B002C634C61E300FA53338E9,563
1230 DATA 288533B002C634C61E10CDC61D10
B84C9A21A518D035A517C903F00CA9968D06D2
A9248D07D2D023A9008D06D2,456
1240 DATA A9028D07D2A201B52D85338A1869
348534A00FB9502C91338810F8CA10E9E612A5
122517D061A52B186514852B,918
1250 DATA 8D00D08D02D0A51449FE18652C85
2C8D01D08D03D0A517C901D03FA5122902F039
A514851CA201B52D85338A18,443
1260 DATA 69348534A51229040A8516A51C29
101865168616AAA000BD302C9133E8C8C008D0
F5A51C49FE851CA616CA10CD,915
1270 DATA A20FA41388D0FDCAD0F8A9018518
A52BC92CF004C9CCD055A9008D05D28D07D285
158518A201B51FF007B52FD0,504
1280 DATA 03206225B521D003206225CA10EB
207925A61AA5291875296519F025A51449FE85
14A62DA42E862E842DA90385,640
1290 DATA 12A532D00EA531C995B008A90185
17A904851B606868A9088516A2FFA0FFAD1FD0
C907D00A88D0F6CAD0F1C616,269
1300 DATA 10EB4C9420A000B96C2699242AC8
D0F7A091B96B2799232B88D0F760B529F012D6
29B529C903B00A187DAA25A8,578
1310 DATA A900995B2660A900A89900349900
3599003699003788D0F1851F8520852185228D
01D28D03D260B2A5B4B5B0AD,390
1320 DATA AFA39280B2A5B9A1ACB0030D0103
707070462F2670707070707070707044242A04
040404040404040447F32506,97
1330 DATA 0641AE2570707070707070707070
70707044242A040404040404040404462F2670
060641D1258080E2EFF5ECE4,37
1340 DATA E5F28080E2EFEDE2E5F2F3808000
0000627900006D61726B007072696365000000
0000000000302C2139253233,159
1350 DATA 1A00110000000000000000000028
2927281A0000000010000000000000302C2139
253200110000000000000000,690
1360 DATA 0000000000000000000000000000
00000000000000000000010101010101010101
010101010101010101010101,711
1370 DATA 0101010101010101010101010101
01010101018501010101010101010101010101
010101010101010101010101,888
1380 DATA 0101010101010101010101010185
84850101010101010101010101010101010101
010101010101010101010101,328
1390 DATA 0101010101010184858485020202
02020202020202020202020202020202020202
020202020202020202020202,933
1400 DATA 0202848584848502020202020202
02020202020202020202020202020202020202
020202020202020284848584,196
1410 DATA 8485020202020202020202020202
02020202020202020202020202020202020202
020202848485848484850303,461
1420 DATA 0303030303038503030303030303
03030303030303850303030303030303848484
858484848503030303030303,890
1430 DATA 8484850385030303030303030385
03848485030303030303038484848584848484
850303030303848484848484,998
1440 DATA 8503030303030384848484848485
03030303038484848485848484848485030303
848484848484848485030303,750
1450 DATA 0384848484848484848503030384
84848484850000000000000000545454545454
5400A8A8A8A8A8A8A800FCFC,12
1460 DATA FCFCFCFCFC00FFFFFFFFFFFFFFFF
FCFCFCFCFCFCFCFC000001033FD3FE80000001
83BFD37E00000080C0FCCB7F,550
1470 DATA 01000080C1FDCB7E003C7EFF00FF
FF7E3C1824241818000000A040E0E0E0400000
6C7C387C7C7C381000000000,427
CHECKSUM DATA.
(see CCheck, DCheck, or UniCheck)
10 DATA 883,351,496,811,423,729,200,60
3,555,573,694,613,29,205,214,7379
160 DATA 139,198,962,604,491,30,155,11
3,169,69,43,822,931,966,720,6412
1060 DATA 930,958,707,682,514,568,751,
664,875,889,595,735,987,895,757,11507
1210 DATA 972,571,686,533,643,718,955,
594,963,842,520,467,416,252,546,9678
1360 DATA 345,458,484,572,680,693,794,
42,94,468,801,605,6036


Previous | Next

Original text copyright 1984 by ANALOG Computing. Reprinted with permission by the Digital ANALOG Archive.