====== INVASION ======
{{:tandy_color_computer:invasio0.png }}
The future of your planet is in your hands.
Yours is the last alpha base left; everything else has been destroyed by the Astro Fleet.
You can still defeat the warring aliens, but it will take skill and cunning on your part.
Only one multi-directional laser is still operational, but due to a computer malfunction, you cannot move the laser and fire it at the same time.
Z moves your base left, X moves it right; , moves your turret left and . moves it right.
Fire your laser with the space bar.
Remember, existence as you know it depends on you.
Good luck!
| |
===== SCREENSHOTS =====
Instructions 1: \\
{{:tandy_color_computer:invasion1.png}}
Instructions 2: \\
{{:tandy_color_computer:invasion2.png}}
Instructions 3: \\
{{:tandy_color_computer:invasion3.png}}
Playing: \\
{{:tandy_color_computer:invasion4.png}}
===== SOURCE =====
A type-in BASIC program by Alex Kiernan and Peter Lear converted for Tandy Color Computers with 16K RAM and Extended Color BASIC by Derek Simonson, published in TRS-80 Colour Computer Space Adventures.
Please note - this played through without crashing but there may still be typoes in this code.
10 DIM S2(5),S1(5),S3(5),AL(5),EB(6),NN(5)
20 CLS:PRINT:PRINT
30 FORMC=0TO9
40 READCH
50 FORGP=22TO12STEP-1
60 DATA33,73,78,86,65,83,73,79,78,33
70 POKEGP+1054+MC,CH
80 IFMC=9THENPOKEGP+1055+MC,96
90 NEXT:NEXT
100 PRINT:PRINTTAB(8)"BY ALEX KIERNAN"
110 PRINT" CONVERSION BY DEREK SIMONSON"
120 PRINT:PRINT"ENTER: 1-->FOR KEYBOARD 2-->FOR RIGHT JOYSTICK"
130 GOSUB910:JK=VAL(A$):IFJK<1ORJK>2THEN130
140 PRINT:PRINT"INSTRUCTIONS(Y/N)"
150 GOSUB910:IFA$="Y"THEN160ELSE300
160 CLS:PRINTTAB(12)"!INVASION!"
170 PRINT:PRINT"YOU ARE IN CONTROL OF THE SOLE REMAINING ALPHA BASE ON THE TERRAN PLANET EARTH IT IS YOUR JOB TO PREVENT THE WARRING BATTLE FLEET FROM INVADING THE PLANET"
180 PRINT" DUE TO PREVIOUS ATTACKS THE COMPUTER HAS MALFUNCTIONED DISABLING MOVEMENT OF THE BASE AND GUN AT THE SAME TIME *HIT ENTER TO SEE CONTROLS*"
190 GOSUB 910
200 CLS
210 ON JK GOTO220,250
220 PRINTTAB(7)"<<<<>>>>"
230 PRINTTAB(6)"BASE TURRET LEFT RIGHT LEFT RIGHT Z X , . SPACE-FIRES"
240 GOTO300
250 PRINT@43,"JOYSTICK"
260 PRINT:PRINTTAB(l2)"TURRET"
270 PRINTTAB(44)" LEFT"
280 PRINT"MOVE LEFT MIDDLE RIGHT"
290 PRINTTAB(12)" RIGHT"
300 PRINT:PRINT" DIFFICULTY 1:HARD - 9:EASY"
310 GOSUB910
320 V=VAL(A$):IFV<1 OR V>9THEN310
330 PRINT"WHAT'S YOUR MARKSMANSHIP RATING 1:EXCELLENT - 5:POOR"
340 GOSUB910
350 X=VAL(A$):IFX<1ORX>5THEN340
360 IX=RND(230)+10:IY=11:LX=IX:LY=IY:PB=RND(230)+10:LB=PB:NN=9:TP=2
370 PMODE3,1:PCLS5
380 SX=21:SY=20
390 DRAW"BM20,20E5R3U5D5R2F5"
400 GET(SX,SY)-(SX+14,SY-10),S2,G
410 PCLS:DRAW"BM20,20E5R3H5F5R2F5"
420 GET(SX,SY)-(SX+14,SY-10),S1,G
430 PCLS:DRAW"BM20,20E5R2E5G5R3F5":GET(SX,SY)-(SX+14,SY-10),S3,G:PCLS
440 PCLS:DRAW"BM20,20C6E2R9L9E3R5F5"
450 PAINT(26,16),6,6:GET(SX,SY)-(SX+15,SY-10),AL,G
460 PCLS:GET(SX,SY)-(SX+15,SY-10),EB
470 PCLS:SCREEN1,1
480 FORA=1TO255STEP9
490 CIRCLE(A,192),15,8
500 NEXT
510 FORA=120TO1+(V*X)STEP-1:PSET(RND(240)+10,RND(165),7):NEXT
520 IX=IX+RND(20)-10
530 IY=IY+RND(9)-INT(V/2)
540 IFIX<10THENIX=15ELSEIFIX>240THENIX=238
550 IFIY<10THENIY=10
560 PUT(LX,LY)-(LX+15,LY+10),EB,PSET
570 PUT(IX,IY)-(IX+15,IY+10),AL,PSET
580 LX=IX:LY=IY
590 IFIY>162THEN870
600 ON JK GOTO610,650
610 A$=INKEY$
620 IFA$="" THEN 520
630 IF A$="Z"THENPB=PB-V ELSEIFA$="X"THENPB=PB+V ELSEIFA$=","THENTP=TP-1ELSEIFA$="."THENTP=TP+1ELSEIFA$=CHR$(32)THENLB=PB:GOSUB750
640 GOTO680
650 I=PEEK(65280):IFI=126ORI=254THENLB=PB:GOSUB750
660 LE=JOYSTK(0):VO=JOYSTK(1):IFLE<22 THEN PB=PB-V ELSE IF LE>41 THENPB=PB+V
670 IF VO<22THENTP=1ELSEIFVO<44THENTP=2ELSETP=3
680 IFTP=4THENTP=3ELSEIFTP=0THENTP=1
690 IFPB<10THENPB=10ELSEIFPB>240THENPB=240
700 PUT(LB,165)-(LB+14,175),EB,PSET
710 ON TP GOSUB820,830,840
720 LB=PB
730 IF NN=0THEN850
740 GOTO520
750 IFTP=1THENMX=PB+2ELSEIFTP=2THENMX=PB+8ELSEMX=PB+12
760 MY=165
770 IFMX<1ORMY<1ORMX>255THENRETURN
780 IF MYIY THENA=PPOINT(MX-(TP*4-8),MY+4):MC=PPOINT(MX-(TP*2-4),MY+2):E=PPOINT(MX,MY):IFE=7ORMC=7ORA=7THENRETURNELSEIFE=6ORMC=6ORA=6THEN810
800 PSET(MX,MY,8):PSET(BX,BY,5):BX=MX:BY=MY:MX=MX+(TP*6-12):MY=MY-6:GOTO770
810 NN=NN-1:IX=RND(230)+10:IY=15:SCREEN1,0:PLAY"T30V10BV20CV30D":SCREEN1,1:RETURN
820 PUT(PB,165)-(PB+14,175),S1,PSET:RETURN
830 PUT(PB,165)-(PB+14,175),S2,PSET:RETURN
840 PUT(PB,165)-(PB+14,175),S3,PSET:RETURN
850 PLAY"ABCDEF"
860 CLS:PRINT" YOU HAVE DESTROYED ALL THE ALIENS AND HAVE SAVED EARTH":GOTO890
870 FORA=1TO10:SCREEN1,RND(2)-1:PLAY"T50ABCDEFG":NEXT
880 CLS:PRINTTAB(7);"!!!!YOU'RE DEAD!!!! -NUMBER OF INVADERS DESTROYED-":PRINTTAB(14)9-NN
890 PRINT" ------>PLAY AGAIN<------"
900 GOSUB910: IFA$="Y"THEN300ELSEEND
910 A$=INKEY$:IFA$=""THEN910ELSERETURN
===== SPEEDING UP =====
Add the following lines at the top to disable BREAK key checking and switch the SAM into high-speed mode:
1 IF PEEK(&H3EB9)<>&H32 THEN CLEAR200,&H3EB0:FOR I=&H82B9 TO &H831E:POKE I-&H4400,PEEK(I):NEXT ELSE 6
2 FORI=0TO2:POKE &H3EBD+I,18:NEXT:I=&H3F1E
3 POKE I,&H26:POKE I+1,3:POKE I+2,&H7E:POKE I+3,&H83:POKE I+4,&H22:POKE I+5,&H7E
4 POKE I+6,&HA4:POKE I+7,&H4C
5 POKE &H019A,&H39:POKE &H019B,&H3E:POKE &H019C,&HB9:POKE &H019A,&H7E
6 POKE 65495,0
And add the following to the end of line 900 to restore normal speed before exit:
... :POKE65494,0:END
===== RUNNING IN EMULATORS =====
You can type-in and run the BASIC directly from command line with XRoar:
$ xroar -machine cocous INVASION.BAS
You can create a virtual floppy disk to load and run from in MAME:
$ decb dskini INVASION.DSK
$ decb copy INVASION.BAS INVASION.DSK,INVASION.BAS -t
$ mame cocoe -ramsize 16K -window -resolution 1920x1080 -skip_gameinfo -flop1 INVASION.DSK
RUN"INVASION
Requires a cocoe.zip ROM pack in ${HOME}/mame/roms and the [[https://sourceforge.net/p/toolshed/wiki/Documentation/|Toolshed]] utilities to build the DECB disk image.
===== RTS =====
Return to [[:Tandy Color Computer:TRS-80 Colour Computer Space Adventures]] :: [[:Tandy Color Computer:]]