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