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