THE ADVENTURES OF PAT THE POSTMAN
by Gary Ritchie
from Games Computing, July 1984 - Page 78


If you thought that Manic Miner was good then you will think that
"The Adventures of Pat the Postman" is absolutely fantastic.

The Adventures of Pat the Postman is a twenty screen arcade game
for the 48K ZX Spectrum featuring full colour hi-res, sound and a
demo mode. You play the part of Pat who has to collect three
Game Computing post bags from the screen before progressing onto
the next.

Each screen consists of levels interlinked by ladders and lifts.
When Pat has got the three bags he must leave the top of the
screen by a ladder, not on a lift as this would be too easy.

The only points scored are for completing a screen, and this is
dependent upon the time taken. The aim, therefore, is to complete
each screen as quickly as possible.

The control keys are:
I	left
P	right
Q	up
Z	down

The lifts are the cross-shaped sections on the floor. The ladders
look like ladders, the post bags look like post bags, and if it
moves avoid it (there are exceptions to this rule in the higher
levels).



RUNdown

Line       Action
3          S$(X) is the store of the current screen. As SCREEN$
           does not work with user-defined graphics, this is
           referred to instead.
4          Set up UDGs which are used throughout the program.
5          P(6) holds the co-ordinates of the mail bags on each
           screen for the purpose of colouring them. M(8) holds
           the DATA about the moving monsters on each screen.
7          23561 controls the auto-repeat on the keys. This POKE
           means the keys will not auto-repeat until they have
           been pressed for about 20 seconds. POKE 23658,8 sets
           CAPS mode.
8-9        S(20) contains a 1 for each screen which has a special
           feature. This is in fact for every screen but the first.
10         FN P() checks for the last key pressed. FN M() was used
           during programming to check the spare memory but is not
           used during the program.
11-30      Initialise variables for pre-game screen displays and
           GOTO pre-game routine.
100-110    Initialise variables for beginning of game.
120-167    Initialise variables for beginning of screen.
410        Call screen set-up routine.
500-540    Print initial positions for monsters, Pat, post bags,
           etc.

610-690    Main loop.
610-640    Check keys and move accordingly.
650        Move monster for each screen. M(X) holds the number of
           the movement routine for that monster. There are seven
           movement routines and room for two more.
655        Call routine for special feature of each screen; there
           are 19 such routines.
660        Checks for collision with moving monster.
670        Checks to see if Pat is moving on air!
675        Checks for collision with non-moving monster.
680        Checks to see if mail bag has been collected.
690        Checks whether screen is finished.
990        Loop.

1500-1550  CRASH!
1540       If no lives left then end game.
2000-2050  Collect sack.

3000-3300  End screen routine.
3020-3270  Calculate bonus, display and calculate new score. The
           random BEEPs can be left out as they slow down the game.
3280       Next screen; if completed 20th screen then call congrats
           routine.
3295       Cancel last key pressed.
3300       Start new screen.

3500-3610  End game / Pre-game.
3505-3510  Colour the whole screen the same as the border.
3530       Pause.
3560-3610  Display screens in sequence. Done by simulating the game
           but without the postman, sacks, etc.
3577       If a key is pressed then start the game.

4000-4953  Routines for special features.
5000-5040  Postman left.
5400-5450  Up ladder.
5500-5550  Up lift routine.
5600-5650  Down ladder.
5700-5750  Down lift.

6000-6760  Move monster.
6100-6130  Left-right movement.
6200-6230  Up-down movement.
6300-6330  Random descent between limits.
6400-6430  Bouncing between limits.
6500-6570  Gradual homing in on Pat.
6600-6650  Bouncing around whole screen with decoy.
6700-6760  Following up and down ladders and lifts.

7000-7340  Draw screen routine.
7010       Chooses appropriate DATA.
7020       Sets up floor F and monster G graphics.
7025       On certain screens sets up graphics U.
7030-7040  Read border and screen attributes.
7200       Sets up S$ (screen store).
7210       Prints screen.
7220       Sets up post bag positions.
7230       Reads monster DATA.
7235       Colours screen 20.
7240       Reads initial position of Pat.
7280-7340  Obvious.

7350-7998  Congratulations!
8000-9999  DATA for screens and UDGs. The numbering of these lines is
           of utmost importance and must be stuck to. The DATA for a
           particular screen can be located by the formula:
           Line = 7900 + 100 * Screen




DRIVER
by S. Goodley
from Games Computing, July 1984 - Page 58




THE HOUSE ON MISTY HILL
by S.W. Lucas
from Games Computing, July 1984 - Page 49 


I have recently been searching through some papers belonging to my
late great-grandfather and came across a note telling me about the
"House on Misty Hill. There are reputed to be several items of
treasure to be found there and I decided to search for them
immediately. Please help me in my quest by giving me instructions
in the form of two word sentences such as "GET LAMP".


Words Understood

N,S,E,W for directions.
CLIMB, DROP, EXAMINE, GET, GIVE UP, GRAB, HELP, HIT, INVENTORY,
KILL, LEAVE, LIGHT, LOOK, PRAY, PUSH, QUIT, READ, RUB, SCORE,
SHOOT, SWIM, TAKE, THROW.


WARNING!

I suggest that you don't read these [hints] unless you are
really stuck!

1. Don't forget the light in dark areas.
2. You can find a way with a map.
3. If you get stuck ask for help.
4. The key is useful if you get locked in!
5. A rope helps you to climb all sorts of things.
6. Prayer can get you out of some tricky situations.


RUNdown

Lines      Action
50-60      set initial value of variables
70-140     dimension arrays
150        calls subroutine for titles
160-170    set variables
190-200    call routines to fill arrays
230-790    main control loop - describes locations and items,
           asks for input and jumps to routine for action
800-890    fill arrays
900-1550   data for game
1560-1820  take routine
1840-2070  drop routine
2080-3200  routines for help, pray, etc.


Variables Used

h,d,x,y    used in counting loops
p          holds current location
v$(x)      holds inventory
q$(x)      holds location descriptions
s(x,y)     holds map
g$(x)      holds descriptions of items found
m(r)       holds pointers
b(x,1)     holds pointer to locations

Other variables are used as flags.


Conversion Clues

The program is written in a very standard form of BASIC. Only
minor changes will be needed to implement this game on other
machines.

INK, PAPER and BORDER are used to select foreground and background
colours. BEEP 1,1 gives a short sound effect and can be left out
entirely if you want.

The major problem with conversion to Microsoft-type BASICs is in
string manipulations. Z$(1 TO 4) in Spectrum BASIC will need to
be converted to LET Z$=LEFT$(Z$,4).

Also the dimensions of the string arrays in Spectrum BASIC include
a second number which specifies the maximum number of characters
which the array element can hold. This number should be left out in
versions for other machines.

