Click Here To Go To The Database Publications Archive


Cover Art


HAUNTED HOUSE Haunted House is a fast and challenging arcade-style game for the Electron and BBC Model B written by Peter Scott.

If your nerves are reactions are up to it, you take the part of a man trapped in a haunted room being constantly harassed by spooks, spectres and - don't ask why! - aliens.

To get out of the room the man must collect all the keys lying scattered around the screen. At the same time he has to get rid of all the nasties by shooting them with a laser.

He can then escape by running to the door at the top left of the screen. On the way he can gather various objects left around the room - and collect bonus points - but avoid the ghosts and cans.

You have a slight disadvantage in that the little man can only fire if you are facing sideways and, no matter what you do, the man keeps on moving.

The reward for all this is that you move onto a harder room with more obstacles, more treasure and up to twelve aliens.

The game features a high score table, sound on and off functions, a pause facility and, if you reach the fifth room, a bonus life so that you can face more of the dead.

It's weird and it's wonderful. Dare you play HAUNTED HOUSE?

Speed-Up Hints

  • Use integer variables
  • Use increments of one for line numbers
  • Avoid lots of IF...THEN comparisons
  • Use as few spaces as possible
  • Avoid the use of VDU5 wherever necessary
  • Use VDU codes instead of COLOUR, GCOL and PRINT TAB commands wherever feasible
  • Use GOTO and GOSUB variables instead of IF ... THENs
  • Place subroutines at the beginning of the program to avoid searching through lines
x%, y% Horizontal and vertical position of the man
man$(4,2) Various shapes of men for each direction
d% Direction of movement, selected for man$()
man% The particular position of the man's feet
key%(139) ASCII values for the key pressed containing subroutine location
screen%(159) ASCII values of characters read on the screen, containing line numbers
dx%(3), dy%(3) If x% and y% are decremented, value held in this
dx%, dy% Values for incrementing or decrementing x% and y%
sc% Score
li% Number of lives you have left
lev% The current level you are on
bo% Amount of bonus you have left
inc% Increment bonus is reduced by
doory% Vertical position of exit door
mekey% Number of keys you have collected
hit% Number of aliens you have hit
need% Number of aliens on the screen for this level
scr1%, scr2% C of character read on the screen
hi%(10) Hiscores
hi$(10) Names of highest scorers
loop% General loop variable
Variables for Machine Code
xp% Located at &70-&7F, the x positions of the aliens
yp% Located at &80-&8F, the y positions of the aliens
di% Located at &90-&9F, the direction number of the alien
dead% Located at &A0-&AF, is the indexed alien dead or not
scr% Screen code located at &B0
rnd% Random number for use in changing directions, located at &B1
number% Number of aliens on the screen, located at &B2
xc% The X register is stored in here when testing the screen, held in &B3
mhit% If you are hit, it holds a 1 else it holds a 0; located in &B4
OS Operating System call &FFEE
code_space Space needed for machine code
p% Program counter, set to code_space to provide space for m/c
PROCinit Initialise user-defined graphics, the main variables and arrays
PROCassemble Assemble machine code for moving the aliens
PROCinstruct Print the instructions in Mode 4, play a tune and continue
PROCdrawscreen Draw the screen, reset variables and start the game
PROCnewscreen Move onto the next screen - check for bonus life
PROCstartgame Clear keyboard buffer and check the keybaord for starting game
PROCman Move the man, check for collisions, etc
PROCgame Play the game, call the m/c, decrement the bonus and check status
PROCdead You have hit an obstacle or an alien - lose a life
PROCtimeup Your bonus has ran out - lose a life
PROCfire Fire your laser if you are facing sideways, check for hits
PROCleftfire Draw the laser if you are facing left
PROCrightfire Draw the laser if your are facing right
PROChit You've hit an alien - increment score and kill it suitably
PROCalldead All your lives have run out
PROCaliens Place the aliens on the screen
PROCobjects A general procedure to place objects on the screen
PROCw Wait for a while
PROCscore Print the score in the form '00750'
PROClives Print the number of lives on the screen
PROClevel Print the level in the form '01'
PROCtune Play a tune on a defined channel for a defined duration
PROCinputname Input your name for the high score table in a certain place
PROCswap Swap variables for the high score table


MATHS TEST Try to beat the clock in this mental arithmetic program by Alan McLachlan

It seems the Electron is never satisfied. After all, it is the one that's supposed to have the mathematical brain - but in MATHS TEST, it asks you all the questions.

Still, it is fun trying to guess - I mean calculate - the answer before you run out of time.

And you can make the test as easy as you like.

A, B Random number for maths
C Result of maths
D Your answer
HI Highscore
DF Delay factor to make 1 sec.
SF Length of time factor is on screen
R Right answer
W Wrong answer
T% Time variable
time% A flag - TRUE if out of time
SPEED Speed rate of input
NUMBER Maximum range of input
BONUS Bonus based on NUMBER
final$ Number input in string form
TIMENOW Temporary storage for actual time while setting TIME to 0
PROCinst Instructions
PROCspeed Sets time question on screen
PROCnumbers Sets highest number in your range
PROCmenu Menu of mathematical operations
PROCadd Addition
PROCsub Subtraction
PROCtimes Multiplication
PROCscore Prints scoreboard
PROCans Tests right or wrong
PROCdelay (sec%) Variable delay
PROCsoundright Sound for right answer
PROCsoundwrong Sound for wrong answer
PROCsoundnoans Sounds for no answer (out of time)
FNget_number (DL%,TL%) Checks that the only inputs are numbers and waits for (DL%, TL%) secs


SPLASH SPLASH by Rog Frost is a two-player game of mathematical strategy that will entertain and intrigue both adults and children.

The idea is that a little man moves across a promenade towards the sea. He can only take a certain number of steps - chosen by the Electron - before he falls into the water.

Each time it is your turn, you must choose how many steps he takes by selecting a number from nought to nine.

Players take turns to pick a number and once that number has been chosen, it can't be used again. Meanwhile, the little man gets nearer and nearer the edge.

The idea is to force your opponent to pick a number that will make him fall into the sea.

As you can imagine, it's all good, clean fun. The target figure, running total and the numbers available are all displayed on screen, allowing the players to concentrate on strategy.

The controls are simple. You just type in the number that you want and press RETURN. The rest is up to you. Don't get wet!

PROCinit Sets up the variables, text and graphics windows, and draws the starting screen
PROCtext Sorts out whose go it is and receives a valid input number
PROCgraphics Updates the position of the man and keeps a record of the running total
PROCsplash Makes the man fall in the water if the target number is exceeded. It informs the loser and invites you to play again

Cover Art Language(s): English
Compatibility: Acorn Electron
Release: Magazine available via High Street/Mail Order
Original Release Date: 1st Sep 1984
Links: Everygamegoing,

Cover Art