Hell’s Angels

Date: 1984
Type: Article
Platform(s): TS 2068

by Akram Malik from ZX Computing Dec ’83/Jan ’84.

Can you save the Earth from impending doom in this program?

In this program, it is your unenviable task to once again defend the Earth from the alien hordes – this time in the shape of angels from Hell and then by a number of demons. The first wave of aliens are called Hell’s Angels and are capable of great destruction should they be allowed to pass through your defences. Indeed, should you let more than five of the angels past, you will find that your mission has failed and Earth will be destroyed. You must shoot 20 of these angelic upstarts before you get through to the next stage of the game where you will meet the fully fledged demons.

Demonic danger

The demons are, of course, much more powerful than the Hell’s angels and your task is once again to stop them piercing your defenses. However, this time, if you only let two through then Earth will be considered destroyed. Still, if you’ve managed to get through to this stage of the game you will no doubt have your alien-shooting eye targeted in on the aliens. If you manage to shoot 20 of the demons out of the sky, you can congratulate yourself on having saved the Earth. Care must be taken to make sure your aim is true before you shoot at the aliens as you have 100 laser points to destroy the invasion force. Obviously, if the Earth is destroyed the game ends with a message informing you of the sad fate of human-kind.

The controls used in the game are keys, ‘1’ to ‘5’ to move left, keys ‘6’ to ‘0’ to move right and any key on the bottom row to fire your laser.

This version uses the joystick and fire button.

Appears on

Capital Area Timex Sinclair User Group’s Library Tape.

Source Code

    1 GO SUB 8000: GO SUB 4000
    2 POKE 65000,0: LET hi=0
    5 LET sc=0
    6 LET an=20: GO SUB 1000
   10 BORDER 1: PAPER 5: INK 2: CLS 
   20 FOR g=1 TO 21: PRINT AT g,0;"\a";AT g,31;"\a": NEXT g
   30 FOR h=0 TO 7: PLOT 0,h: DRAW INK 3;255,0: NEXT h
   40 PLOT 0,167: DRAW 255,0
   50 PRINT AT 0,0; INK 3;"SC ";sc;TAB 10; INK 2;"HELLS ANGELS";TAB 24; INK 0;"HI ";(PEEK 65000)*100
   60 LET lp=100: LET at=5: LET c=16: LET a$="\b\c"
   70 LET i=2: LET q=INT (RND*17)+5
   75 IF an=0 THEN GO TO 1310
   80 PRINT INK 0;AT i,q;a$
   90 PRINT AT 20,c;" "
   95 IF i=20 THEN GO TO 270
  100 LET c=c+(STICK(1,1)=8 AND c<30)-(STICK(1,1)=4 AND c>1)
  110 PRINT AT 20,c; INK 2;"\d"
  120 PRINT OVER 1; INK 0;AT i,q;a$
  125 LET i=i+1
  130 LET q=q+INT (RND*3)-1+(3 AND q<-30)-(3 AND q>30)
  140 PRINT OVER 1; INK 0;AT i,q;a$: BEEP .01,12
  155 IF i=20 AND (q=c OR q+1=c) THEN PRINT AT i,c-1;"\e\e\e": PRINT INK 2;AT 10,3;"You "; INK 3;"have "; INK 0;"been "; INK 2; FLASH 1;"DESTROYED!": BEEP 2,5: BEEP 1,10: PAUSE 150: GO TO 300
  160 IF STICK(2,1)=1 THEN GO SUB 200: LET lp=lp-1
  165 IF lp=0 THEN GO TO 6000
  170 GO TO 80
  200 PLOT INVERSE 1;c*8+4,17: DRAW INK INT (RND*3);0,148: BEEP .06,16: PLOT INVERSE 1;c*8+4,17: DRAW OVER 1;0,148
  220 IF (i>2 AND i<20) AND (q=c OR q+1=c) THEN LET sc=sc+500: PRINT AT 0,3; INK 3;sc: BEEP .08,5: PRINT INK INT (RND*3);AT i,c-1;"\e\e\e": BEEP .02,15: PRINT AT i,c-1;"   ": LET an=an-1: GO TO 70
  250 RETURN 
  270 PRINT AT 20,q;"  ": LET sc=sc-200: IF sc<0 THEN PRINT INK 3;AT 0,2;sc
  275 IF sc>0 THEN PRINT INK 3;AT 0,0;"SC ";sc: PRINT AT 0,2;" "
  277 IF sc<1000 THEN PRINT AT 0,6;" "
  280 LET at=at-1: IF at>0 THEN GO TO 70
  285 PRINT INK 2; FLASH 1;AT 10,2;"FOOL!"; INK 1; FLASH 0;"You let "; INK 3;"5 thru!"
  290 BEEP .5,10: BEEP 1,-30: BEEP 2,20: BEEP 3,0
  305 LET hi=(PEEK 65000)*100
  310 IF sc>hi THEN LET hi=sc
  315 POKE 65000,hi/100
  320 BORDER 3: PAPER 7: INK 3: CLS 
  330 FOR h=0 TO 40 STEP 8: FOR t=40 TO 0 STEP -10: BEEP .07,h: BEEP .04,t: NEXT t: NEXT h
  340 PRINT AT 1,10; FLASH 1;"GAME OVER";AT 3,1; FLASH 0;"Earth will now be destroyed.";AT 10,5;"Your score was ";sc;AT 12,5;"High score is ";hi
  350 PAUSE 300: CLEAR : GO TO 5
 1000 BORDER 1: PAPER 1: INK 7: CLS 
 1010 PRINT AT 5,10;"HELLS ANGELS"; OVER 1;AT 5,10;"            ";AT 14,2;"Press any key to start"
 1100 PAUSE 500: RETURN 
 1310 FOR y=0 TO 20 STEP 2: BEEP .08,y: BEEP .2,5: NEXT y
 1315 BORDER 2: PAPER 1: INK 7: CLS 
 1317 PRINT AT 11,12;"STAGE 2": PAUSE 50: CLS 
 1319 FOR r=1 TO 21: PRINT AT r,0;"\f";AT r,31;"\f": NEXT r
 1320 FOR w=0 TO 7: PLOT 0,w: DRAW INK 4;255,0: NEXT w
 1324 PLOT 0,167: DRAW 255,0
 1329 PRINT AT 0,0; INK 6;"SC ";sc;TAB 10; INK 5;"HELLS ANGELS";TAB 24; INK 4;"HI ";(PEEK 65000)*100
 1330 LET at=2: LET c=16: LET al=20
 1335 LET i=2: LET q=INT (RND*17)+5
 1340 IF al=0 THEN GO TO 2000
 1380 PRINT INK 6;AT i,q;"\g"
 1390 PRINT AT 20,c;" "
 1395 IF i=20 THEN GO TO 1570
 1400 LET c=c+(STICK(1,1)=8 AND c<30)-(STICK(1,1)=4 AND c>1)
 1410 PRINT AT 20,c; INK 5; BRIGHT 1;"\h"
 1420 PRINT OVER 1; INK 6;AT i,q;"\g"
 1425 LET i=i+1
 1430 LET q=q+INT (RND*3)-1+(3 AND q<-30)-(3 AND q>30)
 1440 PRINT OVER 1; INK 6;AT i,q;"\g": BEEP .01,15
 1450 IF i=20 AND q=c THEN PRINT AT i,c; INK (RND*3)+4;"\e": PRINT INK 2;AT 10,2;"Oh dear!"; INK 3;"what a "; INK 2; FLASH 1;"MESS!": BEEP 3,5: BEEP 3,15: PAUSE 50: GO TO 1600
 1460 IF STICK(2,1)=1 THEN GO SUB 1500: LET lp=lp-1
 1465 IF lp=0 THEN GO TO 6000
 1470 GO TO 1380
 1500 PLOT INVERSE 1;c*8+4,17: DRAW OVER 1;0,148: BEEP .06,12: PLOT INVERSE 1;c*8+4,17: DRAW OVER 1;0,148
 1520 IF (i>2 AND i<20) AND q=c THEN LET sc=sc+500: PRINT AT 0,3; INK 6;sc: BEEP .04,10: PRINT INK 6;AT i,c;"\e": BEEP .08,2: PRINT AT i,c;" ": LET al=al-1: GO TO 1335
 1550 RETURN 
 1570 PRINT AT 20,q;" ": LET sc=sc-200: IF sc<0 THEN PRINT AT 0,2; INK 6;sc
 1575 IF sc>0 THEN PRINT AT 0,2;" ": LET at=at-1: IF at>0 THEN GO TO 1335
 1585 PRINT INK 4; FLASH 1;AT 10,3;"IDIOT!"; INK 5; FLASH 0;"You let "; INK 6;"2 thru!"
 1595 BEEP .8,10: BEEP 1,4: BEEP 2,-10: BEEP 1,18: BEEP 1,-20
 1600 GO TO 300
 2000 BEEP .08,19: BEEP .2,10: BEEP .15,15: BEEP .4,25: FOR w=0 TO 20 STEP 2: BEEP .1,w: BEEP .05,4: NEXT w: BEEP .4,25: BEEP .15,15: BEEP .2,10: BEEP .8,15: BEEP .1,8: BEEP 2,3
 2010 BORDER 6: PAPER 6: INK 0: CLS 
 2020 PRINT AT 10,4; FLASH 1;"You have saved Earth!";AT 14,6;"CONGRATULATIONS!"
 2030 PRINT AT 18,4; FLASH 0;"Press a key to play again"
 2040 PAUSE 500: IF INKEY$="" THEN STOP 
 2050 GO TO 2
 4000 FOR n=0 TO 7
 4100 READ A: POKE USR "A"+n,A: NEXT n
 4110 DATA 255,255,192,192,255,255,3,3
 4200 FOR n=0 TO 7: READ B: POKE USR "B"+n,B: NEXT n
 4210 DATA 68,99,50,59,31,31,13,4
 4300 FOR n=0 TO 7: READ C: POKE USR "C"+n,C: NEXT n
 4310 DATA 145,227,166,238,252,120,88,144
 4400 FOR n=0 TO 7: READ D: POKE USR "D"+n,D: NEXT n
 4410 DATA 36,60,24,60,36,102,255,153
 4500 FOR n=0 TO 7: READ E: POKE USR "E"+n,E: NEXT n
 4510 DATA 153,0,36,0,219,0,92,129
 4600 FOR n=0 TO 7: READ F: POKE USR "F"+n,F: NEXT n
 4610 DATA 219,102,219,102,219,102,219,102
 4700 FOR n=0 TO 7: READ G: POKE USR "G"+n,G: NEXT n
 4710 DATA 153,126,90,126,60,36,24,24
 4800 FOR n=0 TO 7: READ H: POKE USR "H"+n,H: NEXT n
 4810 DATA 102,36,36,60,102,231,189,231
 5000 RETURN 
 6000 PRINT INK 2;AT 10,0;"You ran out of laser power!": BEEP 5,-30: GO TO 300
 8000 PRINT "This is a space invaders-type   game.  Use your joystick to     control the laser base and the  ""fire"" button to shoot."
 8001 PRINT : PRINT : PRINT "Press any key to begin....."
 8002 IF INKEY$="" THEN GO TO 8002
 8003 CLS 
 8004 RETURN 
 9000 CLEAR 
 9005 SAVE "angels" LINE 1

People

No people associated with this content.

Scroll to Top