Alien Invasion II (Revision 1) Written by mjhayes@cs.buffalo.edu September 1, 1998 This program uses the graphics from the "World Cup Soccer" cartridge. You can use any other cartridge that has the "Intellivision Man" graphics. First you must find the location of the "Intellivision Man" sprites, then change the values of N and M two lines before the line "CALL GRAB." I should mention that, like Alien Invasion I, the original hand-drawn copy I have comes complete with instructions and hand-drawn pics. This time the original "Intellivision woman" has two friends, one female and the other male. They also have names, but I forget what they are off the top of my head. I will have to upload picture scans in the future. You and two of your friends have been abducted by aliens. To find your way out you must use the teleport beams to teleport from one room to another. Little do you know that all the rooms are torture rooms; the aliens have placed electrical tiles on the floor that will shock and kill you if you touch one that is lit. First, you are given the option to start from the beginning or to continue using a password. Use the top side buttons to move the arrow to the option of your choice, then use the bottom side buttons to enter your selection. In a room, electric tiles start to light up all over the place. Keep moving to avoid the electrical tiles, and wait for a teleport beam to appear. Teleport beams are white, and will take you to another room. Use the disk to move up, down, left, or right. Between levels, you will see a computer terminal with a series of numbers. This is your password. If you want to start at this point, then record the password for future reference. 10 FM(1)=0 ; One number will be displayed on one line, in regular notation, with 0 places to the right of the decimal point. 20 FM(4)=4 ; The text will be displayed in dark green. 30 SET A$="START->CONTINUE" 40 SET B$="PASSWORD REJECTED." 50 SET C$="BUTTON TO RETURN TO" ; Pre-define the longer text to save memory. 60 O=5 70 D=2 80 N=4 90 M=3 ; The values of O, D, N, and M are used to generate the sprite. 100 CALL GRAB ; Create the sprite. 110 CO(5)=7 ; Make the people white. 120 O=6 130 CALL GRAB ; Create a shadow. 140 YM(6)=1 ; Make it upside-down. 150 YS(6)=1 ; Make it long. 160 CALL LINK ; Link the shadow to the person. 170 YV(6)=8 ; Place the shadow at the person's feet. 180 SQ(5)=30 190 SQ(6)=30 ; Animate the sprites. 200 E=14 ; Prepare to make background "noise." RUN 10 CALL HUSH ; Silence. 20 VS(5)=-1 30 VS(6)=-1 ; Make the sprites disappear. 40 CLR ; Lines 40..130 make the text "START CONTINUE ; appear at the top of the screen and puts ; an arrow between the words. Pressing a ; top action button on the left hand ; controller reverses the arrow, and ; pressing a bottom action button enters ; the selection. 50 PRIN"START<-CONTINUE" 60 CALL HAND 70 IF(A>1)GOTO 240 80 IF(A=0)GOTO 60 90 CLR 100 PUT A$ 110 CALL HAND 120 IF(A=0)GOTO 110 130 IF(A=1)GOTO 40 140 PRIN"ENTER PASSWORD." 150 INPU I,J,Q,G,B,P,K ; The password consists of seven numbers. 160 IF(Q=B)GOTO 270 170 I=B+B 180 IF(Q=I)GOTO 270 190 J=I+B 200 IF(Q=J)GOTO 270 210 PUT B$ ; Password is invalid -- start at the beginning 220 FOR C=0 TO 99 230 NEXT C ; Time delay. 240 B=0 250 F=3 ; Initialize lives and starting level. 260 IF(B>0)F=Q/B ; Retain original lives count if password was entered. 270 FOR C=0 TO 5 280 I=RN(0) 290 J=RN(0) 300 P=I*9+J ; Randomly determine the pitches of the notes. 310 L=65535-B ; Determine the cycle length of the notes. 320 CALL ENVT ; Play the familiar six-tone ECS drone. 330 NEXT C 340 CLR 350 XP(5)=80 360 YP(5)=80 ; Put the person into position. 370 G=189 ; G contains the number of the background card in which the person is standing. 380 VS(5)=1 390 VS(6)=1 ; Make the sprites visible. 400 I=RN(0) ; Main game loop{ 410 J=RN(0) ; Lines 400..480 randomly determine position and color of the next floor tile. 420 IF(J>15)J=J-16 430 IF(J>15)K=K+1 440 IF(J>15)GOTO 420 450 IF(K>2)K=K-3 460 IF(K>2)GOTO 450 470 IF(K=1)I=I+99 480 IF(K=2)I=I+140 490 BK(I)=J ; Draw the floor tile. 500 IF(BK(G)=5)GOTO 780 ; Did the player get electrocuted? 510 IF(BK(G)=7)GOTO 600 ; Did the player enter a teleport? 520 VS(6)=-1 ; Zap!{ 530 VS(5)=-1 ; Make the sprites disappear. 540 CLR 550 F=F-1 ; Lose a life. 560 IF(F>0)GOTO 270 ; Was that the last life? 570 PRIN "GAME OVER. HIT RTN." 580 INPU A 590 GOTO 10 ; Start over.} 600 VS(6)=-1 ; End of level{ 610 VS(5)=-1 ; Make the sprites disappear. 620 CLR 630 B=B+1 ; Increment the level counter. 640 Q=B*F ; Prepare values for password. 650 PRIN "YOUR PASSWORD;",I,J,Q,G,B,P,K 660 PRIN "PRESS ANY SIDE" 670 PUT C$ 680 PRIN "THE GAME." 690 CALL HAND 700 IF(A=0)GOTO 690 ; Wait for action key to be pressed. 710 IF(L>0)GOTO 270 ; Was that the last level?} 720 CALL HUSH ; Endgame{ 730 CLR 740 PRIN "YOU WIN, BIG DEAL..." ; I should have known I'd use that text. 750 FOR A=0 TO 99 760 NEXT A ; Time delay. 770 GOTO 10 ; That's it? I hope nobody bothered to waste the time to actually finish this game! Go play Vectron instead.} 780 CALL HAND ; Poll the left hand controller. 790 H=0-H 800 IF(H=1)XP(5)=XP(5)+8 ; Did the player move right? 810 IF(H=1)G=G+1 820 IF(H=5)YP(5)=YP(5)-8 ; Did the player move up? 830 IF(H=5)G=G-20 840 IF(H=9)XP(5)=XP(5)-8 ; Did the player move left? 850 IF(H=9)G=G-1 860 IF(H=13)YP(5)=YP(5)+8 ; Did the player move right? 870 IF(H=13)G=G+20 880 GOTO 400 ; }