SINCLAIR USER, February 1986
Program Printout


= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 


Cybor
by Andrew Clark
from Sinclair User 47 (Feb.1986)


Defend the planet Cybor against Alec [sic] the Malevolent and his army of
droids in a fast moving game by Andrew Clark of Yorkey's Knob in Queensland,
Australia. Dodge the citadels which rush towards you across the flat surface
of the planet and try to shoot down as many droids as you can in the mean-
time.

Cybor runs on any Spectrum, and includes a high score feature.


Line  3          The POKE in line three changes the cursor to CAPS mode, so
                 that all further letters typed will appear in capitals. The
                 program then goes to the subroutine at line 7000 which sets
                 up the user-defined graphics.

Lines 4-20       The instructions are held in subroutine 6000, and the 
                 program prints those if you want them. Important variables
                 are set up and then subroutine 9000 is called, which draws
                 the basic screen - sky and land.

Lines 85-110     The lives are drawn in at the top of the screen, along with
                 the current score and your spacecraft at the bottom.
                 Remember to input the underlined letters in graphics mode!
                 If the score is of any size, the program goes to a series of
                 congratulation routines at line 8000 onwards.

Lines 112-150    If you press a key, the program checks to see if it's the
                 ENTER key (with code 13). If it is, it sends you to the
                 shoot routine at line 2000. Otherwise, blank spaces are
                 printed over your ship, the co-ordinates of the ship
                 changed, and the new ship printed according to which way
                 you moved. The co-ordinate is held in variable 'y'.

Lines 160-170    Regardless of what you pressed, the program checks to see
                 if it wants to put a droid on the screen. Variable 'ship' is
                 set to 0 if there's no ship and 1 if there is.
                 Line 160 is complicated. The expression "NOT ship" will be 1
                 if ship = 0 and 0 if ship = 1. "IF NOT ship" is the same as
                 "IF NOT ship = 1", so if there's a ship on the screen
                 nothing new happens, but if there isn't the program uses the
                 random number generator to see if one will appear this time.
                 At line 170 that has been decided, and "IF ship" works the
                 same way. That is, if the variable 'ship' is equal to 1,
                 then its coordinate 'x' is increased and the ship is printed
                 at a new position on the screen. The reason Andrew uses this
                 shorthand version of the normal IF statement is because it
                 works a little faster, thus speeding up the game.

Lines 800-1040   The variable 'stage' contains a number from 1000 to 1040,
                 and controls the way in which the citadels which come
                 towards you are printed. Each separate subroutine prints a
                 larger citadel on the screen - the variable 'block' fixes
                 its position. Line 805 checks to see if any part of the
                 block touches your spacecraft, and line 810 increases the
                 values of 'stage'.

Lines 2000-2999  This is really just a combination of BEEPs and lines on the
                 screen to simulate the laser. At 2035 the program checks to
                 see if an enemy ship is on-screen and if you have hit it.

Lines 3000-3099  The enemy plane is destroyed. All those commas have the
                 effect of overprinting the three lines containing the plane.
                 By using different BRIGHT and PAPER values in succession, a
                 flashing effect is achieved. This sort of thing can only be
                 done by experimentation.

Lines 4000-4030  More graphical pyrotechnics as your ship is destroyed.

Lines 4040-4199  One life is deducted, and if you have lost the lot you go
                 to the score feature. If your score is the hi-score, you
                 are asked to enter your initials. At 4130 to 4155 you are
                 asked if you want another game. RANDOMIZE USR 0 is called
                 a soft reset and has the effect of zapping out the entire
                 program from memory, plus all user-defined graphics.

Lines 6000-6070  This section prints out the instructions on the screen.

Lines 7000-7999  This routine loads in the data for the user-defined
                 graphics of spaceships, enemy planes and so on.

Lines 8000-8100  This plays a congratulatory tune and gives you a message if
                 you complete the game.

Lines 9000-9020  Sets up the background screen. Line 9999 saves the game if
                 you want to auto-run.


= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 


Tripods

[The accompanying program is the corrected version of the May'86]
[correction of the April'86 correction of the original listing. ]
[(The misplaced line printed in April was incorrect, in that it ]
[was printed as "E3A52C3A...etc." instead of "E3A52C39...etc.".)]

Defeat the evil Tripods with your new rocket launcher and save
humanity in an excellent machine-code game by Anthony Magrath of Rugby
in Warwickshire. Tripods is for the 48K Spectrum or Spectrum Plus. Use
either a Kempston joystick or keys 5 and 6 to rotate and 0 to fire.
The code makes it a very fast game indeed, and you'll need swift
reactions to get beyond the first two or three levels.


= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 


