INVASION OF THE BODY SNATCHAS! At last! A version as fast and furious and as frustratingly addictive as the arcade original. Landers, Mutants, Bombers, Pods, Swarmers and much much more combine to produce the ultimate space game! ZX SPECTRUM 48K LOADING AND RUNNING INSTRUCTIONS 1. Set up the Spectrum as detailed in the instruction manual and load with LOAD"". N.B. This program uses its own special loader so DO NOT STOP THE TAPE until it has fully loaded. 2. When the program has loaded you will be asked if you have a Fuller Box connected. If you have, press Y. The Fuller Box is used to produce spectacular arcade sound effects. 3. The Hall of Fame will be displayed, if you wish to use the keyboard or AGF/Protek joystick press 'K'. The controls are as follows: N - MOVE UP M - MOVE DOWN X - MOVE RIGHT Z - MOVE LEFT A S, D, F or G - FIRE H, J, K, L or ENTER - SMART BOMB There are also 4 'function' keys: 1. FULLER SOUND OFF 2. FULLER SOUND ON 3. QUIT PRESENT GAME 4. RESET PROGRAM If you wish to use the Kempston or Fuller joysticks press *J', any key except 1, 2, 3, 4 can then be used for smart bomb. N.B. If you are using a Fuller Box you must use its joystick port. Good Luck! Invasion of the Body Snatchas 11/18/1996 ----------------------------- This is Crystal's Defender clone and it doesn't seem to be too bad. I've included two versions here: one for the TS2068 and one for the 128K Spectrum. The original was written to work with the Fuller box and its built in joystick and AY chip. I just modified it a bit to use the correct joystick and sound chip port addresses for each machine. Thanks to Rob for suggesting the conversion. See below for details of the changes made to the original snap. Alvin PS. It doesn't matter whether you answer yes or no when the game asks if you have a Fuller box connected - it's been modified to have the same result. ******************************************************************* After some snooping around in the snap, I gathered that the Fuller box has a single joystick port and a built in AY-3-8912 sound chip responding to the following port addresses: AY SOUND CHIP Fuller 128K Spectrum TS2068 register #3F #FFFD #F5 data #5F #BFFD #F6 FULLER JOYSTICK port #7F, byte read looks like F ? ? ? R L D U, active low ******************************************************************** TS2068 VERSION - Fuller sound chip addresses changed to ts2068 chip addresses - Fuller joystick changed to either ts2068 joystick ORG 40497 JP Z,40502 ; Ignore Fuller box question at start of game ORG 44941 DEFM /TS2068 Version Selected/ ; Change message after answering question DEFS 20*space,0,40*space ORG 40700 ; Change Fuller joystick read LD A,4 ; to bit mask, then jump to ts2068 JP 40656 ; joystick read LD A,8 JP 40656 LD A,1 JP 40656 LD A,2 JP 40656 LD A,128 JP 40656 ORG 40656 PUSH BC LD B,A ; Save bit mask LD A,7 ; Prepare to read ts2068 joysticks OUT (#F5),A IN A,(#F6) AND #BF OUT (#F6),A LD A,14 OUT (#F5),A LD A,3 ; Read both joysticks at once IN A,(#F6) AND B ; Bit mask POP BC RET ; Replace all instances of OUT (#3F),A with OUT (#F5),A and ; all instances of OUT (#5f),A with OUT (#f6),A ************************************************************************ SPECTRUM 128K VERSION - Fuller sound chip addresses changed to 128K chip addresses - Fuller joystick changed to Kempston joystick ORG 40497 JP Z,40502 ; Ignore Fuller question ORG 44941 DEFM /Spectrum 128 Version Selected/ ; Change message after question DEFS 14*space,0,40*space ORG 40700 ; Change Fuller joystick read LD A,2 ; to mask and jump to Kempston read JP 40656 LD A,1 JP 40656 LD A,8 JP 40656 LD A,4 JP 40656 LD A,16 JP 40656 ORG 40656 ; Kempston joystick read PUSH BC LD B,A ; Save bit mask IN A,(31) ; Read Kempston CPL ; Change to active low AND B ; Do mask POP BC RET ORG 40664 ; AY chip output subroutine PUSH BC ; D=AY register, E=AY data LD BC,#FFFD OUT (C),D LD B,#BF OUT (C),E POP BC RET ORG 40676 ; See comments following PUSH DE LD D,A LD E,(HL) CALL 40664 POP DE RET ; The instruction sequence 'OUT (#3F),A; LD A,(HL); OUT (#5F),A' is ; found at 43188,43232,43240,43259,43267,43307,43315 and is replaced ; with 'CALL 40676; NOP; NOP' ; The following replace some simple sound register writes ORG 43297 PUSH DE LD DE,#0501 CALL 40664 POP DE ORG 43326 ; Replaces a command setting AY NOP ; register to 15 (not present on NOP ; AY-3-8912 chip - probably used to ; protect contents of other AY ; registers???) ORG 43338 PUSH DE LD DE,#0800 CALL 40664 INC D CALL 40664 INC D CALL 40664 POP DE RET ORG 43379 PUSH DE LD DE,#0D09 CALL 40664 LD DE,#07E1 CALL 40664 POP DE RET ORG 43361 PUSH DE LD DE,#0D09 CALL 40664 LD DE,#07E0 CALL 40664 POP DE RET ********************************************************************** the end :-)