8-Bit Software Online Conversion
Helicopter Haulocast - Listing
10REM Helicopter Holocaust Setup Prog
ram
20REM By Steven Flintham
30MODE 7
40VDU 23;8202;0;0;0;
50*FX229,1
60*FX4,2
70ON ERROR GOTO 90
80*SHADOW 1
90PROCinstructions
100MODE 4
110VDU 23;8202;0;0;0;
120PROCget`data(&C00,75,"HELICOPTER 1
RIGHT")
130PROCget`data(&C50,75,"HELICOPTER 1
LEFT")
140PROCget`data(&CA0,75,"HELICOPTER 2
RIGHT")
150PROCget`data(&A00,75,"HELICOPTER 2
LEFT")
160PROCget`data(&A50,7,"BULLETS")
170PROCget`data(&AA0,47,"FUEL")
180PROCget`data(&5000,75,"FUEL HELICOP
TER")
190ENVELOPE 1,5,16,16,16,2,2,2,127,0,0
,-127,126,126
200PROCassemble
210CHAIN "HELI2"
220END
230DEF PROCget`data(at%,length%,char$)
240data%=at%
250FOR read%=0 TO length%
260READ data%?read%
270NEXT
280ENDPROC
290DEF PROCassemble
300start%=&70
310start2%=&72
320cols%=&74
330rows%=&76
340data%=&78
350col`loop%=&7A
360loop8%=&7C
370loop82%=&7E
380flag%=&7F
390FOR opt%=0 TO 2 STEP 2
400P%=&4F00
410[OPT opt%
420.sprite`print
430LDA start%:STA start2%
440LDA start%+1:STA start2%+1
450LDA #0:STA col`loop%
460.loop1
470LDA #0:STA loop8%:STA loop82%
480.loop2
490LDA #0
500CLC
510ADC loop82%
520LDY rows%
530.mult`loop
540ADC col`loop%
550DEY
560BNE mult`loop
570TAY
580LDA (data%),Y
590LDY loop8%
600EOR (start%),Y
610STA (start%),Y
620INC loop8%
630INC loop82%
640LDA loop8%:CMP #8:BEQ add`140:.spri
te2
650LDA loop82%:CMP rows%:BNE loop2
660CLC
670LDA start2%:ADC #8:STA start%
680LDA start2%+1:ADC #0:STA start%+1
690LDA start%:STA start2%
700LDA start%+1:STA start2%+1
710INC col`loop%
720LDA col`loop%:CMP cols%:BNE loop1
730RTS
740.add`140
750CLC
760LDA start%:ADC #64:STA start%
770LDA start%+1:ADC #1:STA start%+1
780LDA #0:STA loop8%
790JMP sprite2
800.collision
810LDA start%:STA start2%
820LDA start%+1:STA start2%+1
830LDA #0:STA col`loop%
840STA flag%
850.loop1
860LDA #0:STA loop8%:STA loop82%
870.loop2
880LDA #0
890CLC
900ADC loop82%
910LDY rows%
920.mult`loop
930ADC col`loop%
940DEY
950BNE mult`loop
960TAY
970LDA (data%),Y
980LDY loop8%
990EOR (start%),Y
1000CMP #0:BNE set`flag
1010INC loop8%
1020INC loop82%
1030LDA loop8%:CMP #8:BEQ add`140`2:.co
llision2
1040LDA loop82%:CMP rows%:BNE loop2
1050CLC
1060LDA start2%:ADC #8:STA start%
1070LDA start2%+1:ADC #0:STA start%+1
1080LDA start%:STA start2%
1090LDA start%+1:STA start2%+1
1100INC col`loop%
1110LDA col`loop%:CMP cols%:BNE loop1
1120RTS
1130.add`140`2
1140CLC
1150LDA start%:ADC #64:STA start%
1160LDA start%+1:ADC #1:STA start%+1
1170LDA #0:STA loop8%
1180JMP collision2
1190.set`flag
1200LDA #255:STA flag%
1210RTS
1220]
1230NEXT
1240ENDPROC
1250REM HELI1R
1260REM rows=19/columns=4
1270DATA 51,0,0,0,0,68,238,68,174,174
1280DATA 159,71,35,17,0,0,0,0,0,255
1290DATA 17,51,50,50,116,116,248,248
1300DATA 248,124,63,15,15,143,119,17
1310DATA 34,255,255,0,136,196,226,177
1320DATA 208,224,240,240,240,255,15
1330DATA 15,15,255,34,17,255,136,0,0
1340DATA 0,0,0,136,196,226,243,215,159
1350DATA 31,46,76,136,0,0,204
1360REM HELI1L
1370REM rows=19/columns=4
1380DATA 17,0,0,0,0,0,17,50,116,252
1390DATA 190,159,143,71,35,17,0,0,51
1400DATA 255,0,17,50,116,248,240,240
1410DATA 240,240,240,255,15,15,15,255
1420DATA 68,136,255,255,136,204,196
1430DATA 196,226,226,241,241,241,227
1440DATA 207,15,15,31,238,136,68,255
1450DATA 204,0,0,0,0,34,119,34,87,87
1460DATA 159,46,76,136,0,0,0,0,0
1470REM HELI2R
1480REM rows=19/columns=4
1490DATA 51,0,0,0,0,68,238,68,170,170
1500DATA 153,68,34,17,0,0,0,0,0,255
1510DATA 17,51,50,50,116,116,248,248
1520DATA 248,116,51,0,0,136,119,17,34
1530DATA 255,255,0,136,196,226,177,208
1540DATA 224,240,240,240,255,0,0,0,255
1550DATA 34,17,255,136,0,0,0,0,0,136
1560DATA 196,226,243,213,153,17,34,68
1570DATA 136,0,0,204
1580REM HELI2L
1590REM rows=19/columns=4
1600DATA 17,0,0,0,0,0,17,50,116,252
1610DATA 186,153,136,68,34,17,0,0,51
1620DATA 255,0,17,50,116,248,240,240
1630DATA 240,240,240,255,0,0,0,255,68
1640DATA 136,255,255,136,204,196,196
1650DATA 226,226,241,241,241,226,204
1660DATA 0,0,17,238,136,68,255,204,0
1670DATA 0,0,0,34,119,34,85,85,153,34
1680DATA 68,136,0,0,0,0,0
1690REM BULLETS
1700REM rows=2/columns=4
1710DATA 255,255,51,51,204,204,255,255
1720REM FUEL
1730REM rows=12/columns=4
1740DATA 15,12,11,11,11,12,15,15,11
1750DATA 12,15,15,15,15,7,15,15,12,7
1760DATA 7,7,15,15,15,15,14,14,14,14
1770DATA 2,14,14,14,14,15,15,15,1,15
1780DATA 15,15,3,15,15,15,15,15,15
1790REM FUELHEL
1800REM rows=19/columns=4
1810DATA 51,0,0,0,0,68,238,68,238,238
1820DATA 255,119,51,17,0,0,0,0,0,255
1830DATA 17,51,50,50,116,116,248,248
1840DATA 248,252,255,255,255,255,119
1850DATA 17,34,255,255,0,136,196,226
1860DATA 177,208,224,240,240,240,255
1870DATA 255,255,255,255,34,17,255,136
1880DATA 0,0,0,0,0,136,196,226,243,247
1890DATA 255,255,238,204,136,0,0,204
1900DATA 72,101,108,105,99,111,112,116,
101,114,32,72,111,108,111,99,97,117,115,
116,32
1910DATA 66,121,32,83,116,101,118,101,1
10,32,70,108,105,110,116,104,97,109,46
1920DEF PROCinstructions
1930PRINTTAB(7,0);CHR$132;CHR$157;TAB(3
2,0);CHR$156
1940PRINTTAB(6,1);CHR$141;CHR$132;CHR$1
57;CHR$131;"Helicopter Holocaust ";CHR$
156
1950PRINTTAB(6,2);CHR$141;CHR$132;CHR$1
57;CHR$131;"Helicopter Holocaust ";CHR$
156
1960PRINTTAB(7,3);CHR$132;CHR$157;TAB(3
2,3);CHR$156
1970PRINTTAB(8,5);CHR$132;CHR$157;CHR$1
31;"by Steven Flintham ";CHR$156
1980VDU 28,0,24,39,6
1990PRINT'" In this two player game, y
ou must try"'"to shoot down your opponen
t's"'"helicopter."
2000PRINT'" Note that you cannot fire
if some of"'"your bullets are already in
the air."
2010PRINT'" Each helicopter has a limi
ted fuel"'"supply, and if one runs out t
he other"'"player wins automatically."
2020PRINT'" Moving up and firing use m
ore fuel"'"than moving down, left and ri
ght."
2030PROCspace
2040CLS
2050PRINT'" From time to time, a suppl
y helicopterwill fly across the screen a
nd drop a"'"fuel cannister, enabling you
to increaseyour fuel level."
2060PRINT'" To pick up the fuel, simpl
y fly into"'"it before your opponent doe
s."
2070PRINT'" The controls are shown whe
n the game"'"has loaded."
2080PROCspace
2090ENDPROC
2100DEF PROCspace
2110PRINTTAB(11,17);CHR$132;CHR$157;CHR
$131;"Press SPACE ";CHR$156;
2120*FX21,0
2130REPEAT UNTIL GET=32
2140ENDPROC