48K MELBOURNE DRAW
FOR THE 48K SPECTRUM
Now you can create dazzling, intricate colour graphics and pictures on your
Spectrum screen without special programming skills.
Written by Philip Mitchell, creator of all the stunning graphic effects used
in Melbourne House programs, this amazing graphics program will enable you to
design and illustrate sophisticated images yourself.
You can use Melbourne Draw to explore all artistic possibilities offered by
the exciting new creative medium of computer graphics and create any
illustration or picture you want. Melbourne Draw has hundreds of practical
and technical applications too: design circuit diagrams, create vehicle
designs, draw maps, or even do a layout of your floor plan.
In fact with Melbourne Draw the graphics potential of your Spectrum becomes
unlimited. Just look what you can do:
* Create more exciting graphics and characters in your own programs.
* Reduce or enlarge images to any size. Add special effects and depth to your
game backgrounds.
* Enlarge sections of the screen display up to sixteen times for intricate
detailing, then reduce them back to their original size. Create personalised
titles and lettering anywhere on the screen in any direction - even
backwards or upside down.
* Control and alter the colours of your Spectrum at will.
* Store all your graphics on to cassette.
* Easily create and define UDG (User Defined Graphics) characters - you can
even store your custom UDG areas on cassette.
Whether you're a computer enthusiast interested in art, or an artist
interested in computer graphics, Melbourne Draw will turn you into a
micro-chip Michelangelo.
131 Trafalgar Road, London SE10, United Kingdom
4/75 Palmerston Cres., South Melbourne, 3205, Australia
INTRODUCTION
Having written a number of graphic games for the Spectrum I have found that
the most time consuming task is that of designing and drawing the screens and
graphics needed for a game. This program is the end result of much
experimentation and frustration trying to produce something that would enable
quick and accurate entry of graphic data onto the computer.
Its single most important feature is its ability to magnify a portion of the
screen enabling easier viewing. The dot size of the standard screen is just
too small to accurately put fine detail into a picture.
This program is suitable for drawing static screens (such as the title page of
a game), for checking how a shape or object looks on the screen, or for
designing and storing User Defined Graphics. It gives you full control not
only of the screen but also of the attributes including FLASH and BRIGHT.
Pictures may be saved to, or loaded from, tape (three sample pictures are
included on the reverse side of the tape), and the program also has the
capability of working with pictures created by other programs.
A lot of effort has been put into making this program easy to use while still
being powerful enough to create top quality pictures with a minimum of work. I
hope you will find it as useful as I have.
Philip Mitchell
GETTING STARTED
The chapters in this booklet have been written to teach you how to use MELBOURNE
DRAW by having you experiment with the program while you read. So the first
thing to do is to load the program, using the command:
LOAD "M draw"
or LOAD ""
This will load the BASIC control program which, since it is auto running, will
load the machine language drawing program. The control program will now
display a command menu from which you can choose the action to perform.
All of the available commands are fairly self explanatory and they will be
described in more detail in later sections. But for now just press the "p" key
to execute the machine language drawing program and read on.
SOME PRELIMINARY CONCEPTS
This section is to explain some of the terms used throughout the booklet.
Firstly the word 'display' refers to the 24 line by 32 column area that is
used to list programs and display the results of PRINT commands in BASIC. As
you know, the display is really made up of two areas of the computer's memory,
the first (refered to as the 'screen' in MELBOURNE DRAW, BASIC calls it the
display file) is the block of memory that defines which dots are on or off on
your television screen. The second area (called the 'attributes' by both
MELBOURNE DRAW and BASIC) is what specifies the colours for the picture. A
'pixel' is just another name for any dot on the display. And lastly the
'cursor' is a visual indication on the display of where any actions you
perform on the display will take place.
You will probably remember that BASIC splits the screen into two sections, the
upper 22 lines are for your programs while the lower 2 lines are used by the
BASIC system for commands and reports and cannot normally be accessed from
BASIC programs. MELBOURNE DRAW however allows you to use the entire screen for
your pictures.
THE INFORMATION WINDOW
There are two lines on the display that normally give the current status of
the program. These two lines are usually situated at the bottom of the screen
but can be moved to the top of the screen to allow drawing on the bottom two
lines. The information presented in this window is as follows (don't worry if
some of this does not make sense as all will be made clear in later sections).
The first message tells you the MODE that the program is in, either SKIP, SET,
RESET, INVERT, SCROLL or TEXT. The next word tells you what you are editing
either the SCREEN or the ATTRibutes.
Below these are two numbers labelled X and Y. These are the co-ordinate
address of the cursor, with the numbering system being the same as that used
by the BASIC PLOT command. As you know, this numbering system puts the co-
ordinate (0,0) at the lower left corner of the display. Unfortunately, because
BASIC does not allow access to the bottom two lines on the screen, this
co-ordinate is not the true lower left hand corner. Since MELBOURNE DRAW
allows you to draw on the entire screen we need a numbering system that caters
for this lower section of the screen but still maintains compatibility with
the numbering system used by BASIC. This has been achieved by using negative
values for the Y co-ordinate on the lower two lines of the screen. This means
that the true lower left corner is actually co-ordinate (0,-16).
To the right of the messages is a square block that tells you which
magnification you are using and what section of the display is being shown in
the magnified modes. Next to this is the section that shows you the current
settings for the attribute parameters.
CLEARING THE SCREEN
If you have just loaded MELBOURNE DRAW then you will need to clear the screen.
This is necessary because the screen may contain an old picture or just
rubbish that was in the memory when you loaded the program.
The clear screen command is activated by pressing CAPS SHIFT and "R" together.
The following message will appear in the information window on the screen:
CLEAR PAPER(P), INK(I), BOTH(B)
SCREEN(S), ALL(A), OR NONE(N)
This is a reminder to you of the options that are available to you for this
command, they refer to the action taken if you press the key in the brackets.
The actions performed are:
Pressing Results in
P Clears the PAPER colour of the attributes to the
current setting also sets the FLASH and BRIGHT
of the attributes to the current settings.
I Clears the INK colour of the attributes to the
current setting but does not effect FLASH and
BRIGHT
B Performs both of the above operations
S Clears the screen area only - does not affect
the attributes.
A Performs all of P, I and S as above.
N Exit without changing the screen.
Now that you know how to clear the rubbish off the display you should try it:
Press CAPS SHIFT and R, followed by A to erase everything and leave you with a
clean white screen.
One last point about the screen. Often you may find that the BORDER colour
does not suit the picture you have drawn or that you would feel more
comfortable using the program with the border in a particular colour. You can
set the border to any of the available colours by pressing the 'B' key. The
message "BORDER ?" will appear on the information window along with a flashing
block prompting you to specify the desired colour. To tell the program which
colour to use press any of the number keys 0 - 7. This will set the border to
the colour written above the appropriate key. Pressing 'ENTER' will leave the
border unchanged.
MOVING THE CURSOR
By now you should have a blank white screen which, if you look carefully,
should have a small black flashing dot in the very center of the screen. This
is your cursor and it tells you where things are going to happen on the
screen. If you have just loaded MELBOURNE DRAW then the co-ordinate address of
the cursor should be X = 127, Y = 87, and this should be displayed in the
information window. (Don't worry if this is not the actual position of the
cursor since you may have accidentally moved it).
Now obviously we cannot do much with the picture unless we can move this
cursor around the screen. In the MELBOURNE DRAW program there are 8 directions
available for moving the cursor and they are UP, DOWN, LEFT, RIGHT and the
diagonal directions UP/LEFT, UP/RIGHT, DOWN/LEFT and DOWN/RIGHT. Each of these
directions is controlled by a single key on the keyboard and these keys have
been laid out to make remembering the directions easy.
UP/LEFT UP UP/RIGHT
'Q' 'W' 'E'
LEFT 'A' 'D' RIGHT
'Z' 'X' 'C'
DOWN/LEFT DOWN DOWN/RIGHT
All these keys (and in fact most of the keys used within this program) have an
auto repeat function built in if the key is held down for about 1 second.
If you now try using these keys to move the cursor around the screen you
should notice a number of things. Firstly the cursor stops at the edges of the
display and does not wrap around to the opposite edge. This is to make
positioning the cursor at the edge of the screen easier. You may have also
noticed that it takes a while to move the cursor from one edge to another and
you might be thinking that having the cursor wrap around would make it easier
to move the cursor from one side to another. Do not despair, there are easy
ways of moving the cursor a large distance that will be explained in the
section entitled MOVING THE CURSOR FASTER. Lastly if you remember that
MELBOURNE DRAW allows you to draw on the 'entire screen you may be wondering
why the cursor will not move onto the lower section of the screen. This is
because the information window would be overwritten if the cursor moved over
it. The information window must be first moved out of the way before the
cursor is moved down to the bot tom (see the section MOVING THE INFORMATION
WINDOW).
MAKING YOUR MARK ON THE SCREEN
By now you should be able to move the cursor so now you will learn how to use
it to draw a picture. Firstly if the screen is not blank you should clear it
as described in the CLEARING THE SCREEN section. Now, next to the word MODE in
the information window you should see the word SKIP (if another word is there
press the 'SPACE' key). This word tells you which drawing mode the cursor will
use as you move it. There are actually 6 possible modes but for the moment
only 4 of them will be described.
The first mode SKIP is the one that you should be in now. As the name suggests
the cursor skips over the screen as it is moved without changing anything.
Unless you are actually drawing something this is the mode that you will want
to be in when you move the cursor so it is usually a good idea to glance at
the information window to check the mode before you start moving the cursor.
This mode is activated by pressing the 'SPACE' key.
The next mode is SET and as the name implies, it is used to set the screen
pixels ON as the cursor is moved. You should keep in mind when drawing with
the cursor on the screen that only the screen will change, the attributes will
not be altered so if you try to change pixels on an area that has the same
PAPER and INK colours you will not see anything although the change will have
been made. The SET mode is activated by pressing the 'ENTER' key. Try drawing
some lines on the screen in this mode to see how it works.
The third mode is RESET and is the opposite of SET since it will turn all the
pixels OFF that the cursor is moved over. This mode is activated by pressing
the 'O' key.
The last mode for now is the INVERT mode which is activated by the 'I' key.
Its effect is to invert the state of the pixels that the cursor is move over.
That is if the pixel was on then it will be turned off and vice versa.
Drawing mode summary:
KEY MODE ACTION
SPACE SKIP no change to the screen
ENTER SET turn pixels on
O RESET turn pixels off
I INVERT invert the pixels
One very important fact should be kept in mind while drawing pictures on the
screen and that is that the pixel at the current cursor position will not be
changed (according to the current drawing mode) until the cursor is moved to
another position. The practical effect of this is that you should remember to
move the cursor one more position at the end of a line so that the last pixel
will be changed. The reason that the program works in this way is because, if
the pixels were changed as soon as the cursor was on them, they would also
change as soon as the drawing mode was changed. This would result in pixels
being set and reset by accident much more easily than in the system used.
As an alternative to moving the cursor one more position to change the pixel
under the cursor, the 'S' key may be used. The action of the 'S' key is to
perform the current mode on the pixel at the current cursor position.
MAKING THINGS LARGER
As mentioned earlier it is very difficult to draw accurately on the Spectrum
screen with the pixels as small as they are. If you have been playing with the
commands so far presented you may have discovered this for yourself. To make
things easier to see you can magnify a portion of the screen by either 4X or
16X. To illustrate this, first clear the screen and move the cursor to the
position (0,0) (remember to put the program in SKIP mode before moving the
cursor). Now put the program in SET mode and move the cursor up until the Y
co-ordinate is equal to 87, then move the cursor right until the X co-ordinate
is equal to 127. You should now have two lines in the lower left quarter of
the picture.
To see how the 4X magnification works press the 'M' key once. You should see a
number of changes on the screen.
1) The two lines are now along the left and top edges of the screen and
are thicker than before.
2) The block in the information window has changed from all blue to three
quarters green with the lower left quarter being blue.
Firstly the magnification indicator in the information window should be
explained. The blue section represents the section of the picture that is
currently displayed on the screen. You will remember that in normal size mode
the entire block was blue, showing you that all of the picture was on the
screen. Now only 1/4 of the picture is on the screen (since everything has
been enlarged 4 times there is only room to show 1/4 of the original) and as
indicated by the blue block it is the lower left quarter of the picture.
To see further how it works you should now move the cursor down until it bumps
into the bottom edge and then left until it is back at (0,0). You now have a
rectangle around the edge of the screen which judging by the magnification
indicator should really be a rectangle in the lower left quarter of the
picture. To check this press the 'N' key once, and sure enough it is a quarter
screen rectangle (notice that the indicator is now all blue again).
Pressing the 'M' key, once again will being the rectangle back to full screen
size. Now if you look carefully at the cursor you should see that it is bigger
than it was be fore and much easier to see. Because of this pictures are much
easier to draw and change and just as importantly the cursor is easier to find
when the screen has a lot of stuff on it.
Now if this is not enough the screen can be, magnified again by pressing the
'M' key once more (i. e. press it once from normal mode to get to 4X and twice
to get to 16X). If you do this you should see two thick lines and a huge
cursor while the indicator has changed to a much smaller blue block. If you
now move the cursor carefully to the top of the screen (until Y = 43) then
across until X = 63 then down until Y = 0, you should have a border around the
screen. To return to normal mode press the 'N' key twice (the 'N' key works
the same way as the 'M' key but reduces magnification). You should now have a
smaller rectangle inside the quarter screen rectangle drawn before.
Since we only work on a portion of the picture at a time in the magnified
modes we need some way to move to another block of the picture. Happily, this
is all done automatically by the program. To demonstrate this go back into 16X
magnification. You should have the cursor at position (63,0) which at this
size is on the right edge of the screen. Now press the 'D' key to move the
cursor right on pixel. You should now see only two lines on the screen and the
blue indicator should have moved a little to the right. So as you can see the
program automatically displays the correct picture block as you move the cursor.
MOVING A BLOCK AT A TIME
The last section described how to magnify the picture and move to different
blocks of the picture in the magnified mode by just moving the cursor. There
is an easier way to move to another block which works by moving the cursor a
full block's width in any of the 8 cursor movement directions. To move the
cursor an entire block you use the same keys that control the cursor normally
but hold down either SHIFT key at the same time (note that just like in BASIC
you should press the SHIFT key first and then the other key while holding the
SHIFT key). If you still have the display from the last section you can try
this on the two rectangles, otherwise on any picture that you currently have
on the screen. (You may like to load one of the sample pictures from the other
side of the tape and try out the magnification features on that. If so skip
forward to the section entitled THE MAIN MENU PROGRAM to see how to load a
program).
You may find at first that you quickly get lost and are not sure exactly where
on the picture you are. Don't worry, a bit of practice and you will feel at
home with these magnified displays. If you do get lost there are three things
that you can do, firstly check the magnification indicator. If you are still
not sure check the cursor X,Y address and finally as a last ditch measure
revert to normal magnification.
PLAYING WITH THE ATTRIBUTES
Now that you know all about moving the cursor around and drawing on the screen
it is a simple step to working with the attributes. Firstly you should
remember that the attributes can only be changed over a block of 8 X 8 screen
pixels and so when working with the attributes everything changes to reflect
this. The cursor is 8 times larger, when the cursor is moved it moves 8 pixels
at a time etc. All the other controls presented so far work in exactly the
same way. To change from screen editing mode (identified by the word SCREEN in
the information window) to attribute mode press the 'H' key once (note the
word ATTR replaces the word SCREEN).
You should note that the cursor is now a character in size (presuming that you
are in normal magnification) and you should experiment with moving it around
the screen. In case you are wondering the X,Y co-ordinates given are of the
bot tom left corner of the attribute cursor.
One point that should be made is that, of the four drawing modes, only SKIP
and SET are active in the attribute mode since, if you think about it, RESET
and INVERT do not really apply to the attributes. SKIP mode is the same as for
the screen i.e. the cursor skips over the attribute blocks. SET mode however
combines the current settings for PAPER, INK, FLASH and BRIGHT and sets the
current position to this (see the next section for how to change these
settings).
There is one last thing that must be mentioned about attribute mode and it
concerns only the 16X magnified screen. If you now move the attribute cursor
to position (0,32) then go into 16X magnification you will notice that the
cursor is a very large block. If you now move the cursor up one position (hit
the 'W' key) you will notice that half the cursor has disappeared. This is
because along this row of the picture the attributes overlap the screen block
boundary. If you move up once more you will notice that the other half of the
old position is now below your cursor. Any changes you make to the picture
will be performed correctly, just keep in mind that at this magnification the
cursor sometimes gets chopped off.
To get back to screen editing mode just press the 'H' key once more.
CHANGING THE ATTRIBUTE SETTINGS
By now you should know how to clear the screen and edit the attributes and you
probably want to know how to change the settings to get different colours on
the screen. It's really quite simple, so here goes.
To change the INK colour (shown by the colour of the block next to the "I" at
the bottom right of the information window) just press the number key (0-7) of
the desired colour i. e. to get blue press 1, to get white press 7.
To change the PAPER colour (shown by the colour of the block next to the "P"
at the right of the information window) press either SHIFT key and the number
key of the desired colour.
To change the state of the BRIGHT setting press either the CAPS SHIFT key or
the SYMBOL SHIFT key and while holding one of these keys press the 'B' key
(whenever you see the word SHIFT it means that you may use either the CAPS
SHIFT or the SYMBOL SHIFT keys along with any other key required by the
command). If bright was turned off it will now be on and vice versa. When
bright is on a bright white block will come on between the magnification
indicator and the PAPER setting indicator.
To change the state of the FLASH setting press either SHIFT key and the 'V'
key. If flash was turned off it will now be on and vice versa. When flash is
on a flashing black block will come on between the magnification indicator and
the INK setting indicator.
To experiment with these controls try pressing '4' to set the INK colour to
green then 'SHIFT 0' to set the PAPER colour to black. Now press 'SHIFT R'
then 'B' to clear the attributes to green ink on black paper. Your screen
should now have a black background with green lines (if there was nothing on
the screen try drawing a few lines and watch them come out in green).
To demonstrate the 'bright' feature turn the BRIGHT setting on and set the
paper and ink to white and yellow respectively. Then clear the entire screen
notice how much brighter the screen is than the border. If you now set FLASH
on and clear the screen again you should have quite an eye catching screen. To
return to a more normal display turn off BRIGHT and FLASH and set the paper
and ink colours to those that you prefer and clear the screen once more.
I should like to make a few suggestions about colours at this stage. Obviously
everyone has different tastes and eventually uses their own system when
drawing pictures. Personally I prefer to draw a picture entirely in black and
white (that is a white background with black ink) and then fill in the
attributes when the main outline is finished. While you are starting out with
this program you may like to try this until you settle upon a system that suits
you.
An important note
It, has been said before but it is worth emphasising that unlike other drawing
programs that set the screen pixels to the current colour settings as the
cursor is moved, MELBOURNE DRAW only changes the attributes of your picture
when specifically told to do so. This was done mainly because of the inability
of the Spectrum computer to individually specify the colour of every pixel on
the screen.
FILLING IT ALL IN
A feature that is very useful when drawing pictures is the ability to
automatically fill in an area on the screen. MELBOURNE DRAW lets you do this by
pressing the 'SHIFT F' keys. Filling will start from the current cursor
position and continue until either the boundary of the area or the edge of the
screen is met. The boundary is defined by the edge of the screen and any pixels
on the screen but it MUST be continuous i. e. if there are any holes in it you
may end up with more than you wanted being filled.
To illustrate these ideas first clear the screen then draw a box in the centre
of the screen. The box can be as large as you like but don't make it too small
(about 80 by 60 is about right). Once you have drawn it set the mode to SKIP
and move the cursor to the inside of the box. Before proceeding check very
carefully that all the edges of the box meet and that there are no holes. Once
you are sure that all is well press 'SHIFT F' and watch it fill up. If you see
the entire screen start to fill up then you had a hole somewhere in the edge of
the box and you really should have been more careful.
Now that you know how to fill something I should mention exactly what makes up
a continuous border for an area to be filled. Basically so long as you can
trace your way completely around the area to be filled jumping from pixel to
pixel in any of the 8 cursor movement directions or by following the edge of
the screen then the boundary is continuous.
To illustrate what happens when the boundary is not continuous (in case you
have not already seen it) clear the screen and redraw your box only this time
leave a small hole somewhere along the edge. Now fill it and watch the fill
overflow onto the rest of the screen.
You may be thinking that this fill is not really very fast especially if you
want to fill a large area and you are right, the screen can be filled much much
faster. The reason that it goes slowly is because there is a way out if you
have made a mistake. Yes if you have left a hole in your boundary and are
sitting there feeling miserable because your whole picture is being filled,
relax, hit any key and lo and behold the original picture is returned to you
intact. Remember though that once the fill has finished there is no way of
recovering the original picture. If the picture was filled as fast as possible
you would need to be pretty quick to stop a mistake.
THE MAIN MENU PROGRAM
The machine language program that does all the work in MELBOURNE DRAW is
controlled by a BASIC program that allows your pictures to be saved and loaded
from tape. It also allows blocks of UDG characters to be saved or loaded to
tape (MELBOURNE DRAW allows you to use and define the UDG characters of the
Spectrum, how to do this will be described later). When the menu is displayed,
pressing any of the keys in the brackets will perform the command described.
These commands will now be described in more detail.
KEY COMMAND
p Calls the machine language program to work on the picture
currently in memory
e Exit the BASIC program to thc normal BASIC system.
Note if this key is pressed by accident the program
can be re-entered by typing RUN 30 or GOTO 30
s Save the picture in memory to tape. The program first asks you
for the name to be used for saving the picture.
l Loads a picture from tape. The program firsts asks for the
picture's name.
v Verifies a picture that has been saved on tape. Firsts asks for
the picture's name.
S, L, V As for s, l, v but saves the UDG character area instead of the picture
When supplying a name for the tape commands the same rules apply as for BASIC
programs. That is - the name is limited to ten characters with a name being
compulsory for a save but optional for a load or verify. One feature exists in
MELBOURNE DRAW that is very useful, if the name that you type in is the word
'quit' (in lower case) then the tape operation will be aborted and you will be
returned to the main menu. This means that if you hit the wrong key
accidentally then you can return to the menu without breaking out of the
program and restarting it. If no name is given for a load or verify then the
first block of bytes found on the tape will be used. If by any chance an error
is encountered during a load or verify then the program will stop and an error
report will be displayed on the screen. In this case the program can be
restarted by typing RUN 30 or GOTO 30. If the load or verify is successful then
a message will be displayed on the screen and pressing any key will return you
to the main menu.
To return to the main menu from the machine language program simply press
'CAPS SHIFT SPACE'.
CHARACTERS
I have found that no matter which picture is being drawn somewhere on it
someone will want some text or numbers or characters of some sort. Since it
would be a laborious task to individually draw each character on the screen,
MELBOURNE DRAW enables a limited form of text entry onto your pictures. I say
it is a limited form because it lacks such nice features as inserting
characters between other characters or inserting lines. In other words it is
not, and makes no claim to be, a word processor or editor.
On the plus side the text mode does allow you to put characters on the screen
oriented in any of four directions. That is you can have them going normally
across the screen from left to right, upside down from right to left, going up
the screen from bot tom to top or coming down the screen from top to bottom.
To demonstrate the text entry mode first clear the screen then press the 'T'
key. You will notice that the word next to MODE in the information window has
changed to TEXT and that the word screen has disappeared. Secondly the flashing
cursor has changed to an arrow pointing right. This arrow is your text cursor
and is there to tell you where the characters that you will type are to go on
the screen.
There are a number of things that you will need to know and remember to use the
text mode properly.
1) The cursor movement keys are no longer the same as for normal picture
drawing. Instead the text cursor is controlled by the arrow keys on the
keyboard. This is one reason why an arrow is used as a cursor - to
remind you to use the arrow keys to move it around.
So to move the text cursor press
'CAPS SHIFT 5' to move left,
'CAPS SHIFT 6' to move down,
'CAPS SHIFT 7' to move up,
and 'CAPS SHIFT 8' to move right.
2) You can enter any of the available characters that are on the keyboard
provided that they are single characters only. You cannot type in any of
the BASIC keywords (such as LIST or <= ) using only a single key press.
Also the graphic blocks on the keys '1' - '8' are unavailable. The rest
of the symbols are obtained as follows.
To get Press
Upper case alphabetic characters Press only the desired key.
Lower case alphabetic characters Press 'CAPS SHIFT' and the desired key
Numbers Press the desired number key
Symbols in red that appear on the Press 'SYMBOL SHIFT' and the desired key
key top
Symbols in red that appear under Press 'SYMBOL SHIFT' and the desired key
the key
There is one exception to the above rules and that is the Copyright
symbol found under the 'P' key. Since the " symbol appears on the 'P'
key pressing 'SYMBOL SHIFT P' will give you a double quote ("). To get
the Copyright symbol press 'SYMBOL SHIFT I' instead. The simplest way to
learn how it works is to try it so now you should experiment with typing
in some characters (one word of warning though - at this stage do not
press 'SHIFT 9', 'CAPS SHIFT and SYMBOL SHIFT' or 'CAPS SHIFT SPACE'
these will be explained later).
3) If you have been experimenting with the text mode you may have noticed
that whenever you type a character over an old one the old one is
completely erased. This is true no matter what was under the text cursor
when a character is typed, whether it was another character or part of
your picture. Because of this you should be careful when placing text
that you do not overwrite any of your picture. Alternatively you could
put all of the text onto the screen be fore you draw the picture. Do not
worry however, if when moving the cursor around the screen it goes over
part of your picture - it will NOT erase any of your picture unless a
character is typed in.
One advantage of this is to allow you to erase a large area of your
picture with a minimum of effort, just enter text mode and put SPACEs on
the screen where you want to erase your picture.
4) Also you may have seen that the cursor wraps around at the edges of the
screen, however, it does not cause the screen to scroll if you try to
move it off the bot tom of the screen. Instead it simply wraps around
back up to the top of the screen again.
Up till now you have only been entering characters from the normal character
set. It is, however, possible to enter characters from the User Defined
Character set (the UDG area). Keep in mind however that until the UDC set has
been changed by you, either from BASIC or with MELBOURNE DRAW, that typing in
UDG characters will merely give you the letters 'A' -'U'.
Putting the program into graphics entry mode is done by pressing 'CAPS SHIFT 9'
at which time you will see the word GRAPHICS appear on the information window.
To go back to normal character mode press 'CAPS SHIFT 9' again.
Once in graphics mode the only keys that will enter any characters are the
letter keys 'A' to 'U'. Any other keys will be ignored.
The next thing you will need to know about the text entry mode, is changing the
direction of the cursor. You will remember that above I said that when a key is
pressed the corresponding symbol is put onto the screen and the cursor MOVES IN
THE DIRECTION THAT IT IS POINTING. Since you can point it in any of four
directions you can, obviously enough, type in characters in any of four
directions.
To change the direction of the cursor first press 'CAPS SHIFT' and 'SYMBOL
SHIFT' together. You will see that the arrow cursor is now filled in was a
solid arrow. This is to remind you that you are changing its direction. To set
the desired direction press one of the keys '5', '6', '7' or '8'. This will set
the direction to that of the arrow printed above the appropriate key on the
keyboard. Pressing any other key will leave the cursor direction unchanged, in
either case the cursor will go back to an open arrow. Try this now, setting the
cursor to all four directions.
Now that you know how to change the direction of the cursor try putting it in
another direction (other than right) and typing characters. Notice how the
characters come out facing in the same direction as the cursor. It's almost
like being able to turn the screen on its side or upside down. You will notice
that the cursor still wraps around from side to side and top to bottom in the
same manner as when typing from left to right.
Lastly to return to normal picture mode from text mode press the 'CAPS SHIFT
SPACE' combination. (Be careful only to press it once otherwise you may find
yourself back at the main menu instead).
GRIDS
Before describing how to set the UDC character set with MELBOURNE DRAW you will
need to know about the ability of the program to overlay a character grid onto
your picture. You will remember that the screen is divided into 24 lines by 32
characters by the BASIC system for printing characters. This is the same system
that the text entry mode uses (described in the last section). Since it is
often useful to be able to see exactly how your picture is positioned with
respect to these character positions you can lay a grid over the screen.
This grid is available in two forms both of which use the BRIGHT facility of
the attributes to achieve the desired effect. To illustrate this clear the
screen, then go into text mode and type in some characters anywhere on the
screen. Return to normal mode and press the 'G' key. Notice now the screen now
has a checkerboard pattern of white and bright white squares and that each
character that you typed is positioned exactly within one square. Each of these
squares is exactly one character space in size (8 X 8 pixels). If you press the
'G' key once more the grid will disappear and whatever attributes were
originally on the screen will return. The grid has no effect on your picture
except to show you where the character boundaries are. You may enter text and
draw lines normally with the grid in place. You may also use the program in the
magnified modes and the grid will be magnified along with everything else.
However you may not edit the attributes while the grid is displayed; this is
because you cannot see the attributes to change them.
The second form of the grid is very similar to the first except that it does
not take away the current attributes before setting bright to make the
checkerboard effect. What this means is that you will still see the picture
with the colours as you defined them except that some of the PAPER colours will
be brighter than normal. In most cases this form of the grid is not quite as
useful mainly because the bright control does not work very well on the darker
colours. In other words BRIGHT black is still black, BRIGHT blue is barely
noticeable and you need to look very hard to see BRIGHT red and BRIGHT magenta.
Because of this if you use these colours in your picture you will not see the
grid very well unless you use the first form. This second form of the grid is
placed on the screen by pressing either shift key and the 'G' key together.
SETTING UDG CHARACTERS
Now that you know all about characters and grids you are ready to learn how to
set any of the UDC characters. If you remember there are 22 of them and they
are referenced by the letter keys 'A' to 'U'. MELBOURNE DRAW refers to them in
the same way so if you change the UDG character 'A' from BASIC or MELBOURNE
DRAW the same character will be changed. The basis of changing a UDG character
is the character grid on the screen, by this I mean that any of the 760
character positions on the screen may be copied into any of the 22 UDG
characters. What you need to remember is that the UDG character is built up
from the contents of a character position: if the shape you wish to use is not
well positioned on character boundaries you will have to move it first (see the
section on SCROLLING THE SCREEN).
To actually set a UDG character position the cursor within the character that
you wish to use then press the 'U' key. The message "UDG CHARACTER ?" will
appear in the information window with two flashing blocks next to it. You
should now press the letter key of the character that you wish to change (if
you press the 'U' key by accident just press the 'SPACE' key to return without
changing any characters). Once you have pressed the correct key press the
'ENTER' key to change the character. This gives you a chance to check that you
have actually pressed the correct key since the letter of the key that you hit
will now be in the position of the first. flashing block. If it is the correct
key press 'ENTER', if however you have hit the wrong key press 'SPACE' instead
to get the two flashing blocks back again.
Once the correct key and 'ENTER' have been pressed the information window will
display eight numbers separated by commas. These values are what you would use
if you wished to define the same UDG character from a BASIC program. Pressing
any key will now return you to the program.
SCROLLING THE SCREEN
The comment was made earlier that your UDG characters must be positioned
exactly within a character. So what do you do if you have drawn up 20
characters only to find thatthey are all slightly out in terms of the character
boundaries. (Well firstly if you are going to define a set of UDG characters
then it is probably better to do it with the grid turned on). You may sometimes
have a picture a portion of which you wish to save as UDG characters. In this
case it is unlikely that what you want to save will be lined up within
characters.
To allow you to position things where you want them MELBOURNE DRAW will let you
scroll the entire screen in any of the eight cursor movement directions. The
screen wraps around in all directions so that if you scroll it to the right
then whatever falls off the right edge will come back on the left edge. You may
be familiar with the way BASIC scrolls the screen up by one character when you
print a screen full of information. MELBOURNE DRAW allows a much finer scroll
since it only scrolls by 1 pixel in all directions.
At this stage you may be wondering what is done with the attributes when the
screen is scrolled since, if we only scroll the screen by 1 pixel, then the
attributes will not fit the screen any longer and we do not have the ability to
scroll the attributes by 1 pixel - they can only be scrolled on a character
basis.
In actual fact MELBOURNE DRAW scrolling works in two modes, it only scrolls
that section of the screen that you were working on before you entered scroll
mode. That is if you were editing the SCREEN then the screen only will be
scrolled (by 1 pixel) and the attributes will not be changed. If you were
editing the ATTRibutes then only the attributes will be scrolled (by 1
character at a time) and the screen will not be changed.
Entering SCROLL mode is controlled by the 'K' key. Pressing it will change the
word next to MODE to SCROLL telling you that you are now scrolling the display.
The next word will tell you which part you are scrolling either SCREEN or
ATTRibutes. To actually scroll the display use the same cursor control keys
that are used for moving the normal cursor. Most of the other commands that are
available from the other modes are available in scroll mode (see the table at
the end for which commands apply to which modes). You can get out of scroll
mode by pressing any of the other mode control keys (SPACE, ENTER, O, P or T)
and you will then be put in the mode corresponding to the key pressed.
Remember that no matter how much you scroll the screen you can not lose any of
your picture so do not be afraid to experiment with this mode.
MOVING THE INFORMATION WINDOW
Up till now we have assumed that the information window has been on the bottom
two lines of the display. In everything we have done we have ignored these two
lines but in many cases you may wish to draw part of your picture down there.
To do so you must first move the window since while it is there you cannot
position the cursor on these two lines (note some commands such as clearing the
screen and filling an area always work on the entire screen no matter where the
window is).
To move the window press 'SHIFT 9' and the window will move up to the top two
lines of the display. There is one situation in which the window will not move
and that is if the cursor is anywhere within the area of the display where the
window wants to go. If this happens just move the cursor and try again. Lastly,
to move the window back to the bottom, press 'SHIFT 9' again.
Once you have moved the window up to the top try moving the cursor down onto
the bottom two lines and watch the Y co-ordinate value. As you can see the Y
value becomes negative as described in the introduction.
THE AMAZING SHRINKING AND EXPANDING SCREEN
You already know how to magnify a portion of your picture in order to more
easily change it. What you don't know is that you can scale the entire picture
down by 7/8ths or up to 1 1/7th. What this means is that the picture is
physically enlarged or reduced by the appropriate factor. A word of caution
though if you are going to use this feature you should save your picture first
since the results are NOT reversible.
If you are good at maths you may be curious about that last statement since the
given sealing factors are complementary, i. e. if you shrink something to
7/8ths and then enlarge it to 1 1/7th you should end up with the same thing. If
you do this in MELBOURNE DRAW you will end up with the same sized picture but
it will have a number of vertical and horizontal blank lines through the
picture. This is because when the picture is reduced some information is lost
and it is very very difficult to recover this information when the picture is
enlarged. On a similar note if you enlarge a picture to a size greater than the
screen you will lose whatever falls off the edges.
Despite all this you may still find a use for this feature (if only to impress
your friends) so why not play with it, perhaps with one of the pictures
provided on the reverse side of the tape.
ONE LAST TRICK
Just in ease you haven't had enough already there is one small trick that
MELBOURNE DRAW can do for you and that is to perform a left/right inversion of
the screen and attributes. This is controlled by the 'SHIFT L' key
combination. Try it now with whatever picture you have on the screen to see
what it does (obviously it doesn't do anything if the screen is blank).
MOVING THE CURSOR FASTER
It was mentioned in the section on moving the cursor that it takes time to move
the cursor from one side of the screen to the other. There are three ways to
increase the speed at which you move the cursor.
1) Magnify the picture and move the cursor to the approximate section that
you want with the block move commands.
2) Go into attribute editing mode and move the cursor (make sure that you
are in mode SKIP when you do or you may end up changing the colours on
the screen without meaning to),
3) Go into text mode and use the text cursor movement keys to position the
cursor where you want it then return to normal mode.
In the last two eases you are actually moving the cursor 8 times faster than
when editing the screen.
WHAT IS MELBOURNE DRAW GOOD FOR?
Basically anytime that you need to create some form of graphic image for your
Spectrum computer you can use MELBOURNE DRAW to assist you. Whether it's just
an artistic masterpiece for people to look at or a spaceship for that great new
game that you're writing. But to effectively use the results from the program
some technical information may be of assistance.
Firstly the program actually has two copies of your picture in memory at once.
The first is the display that you see on the television screen and which was
referred to throughout this booklet. Since the display can be magnified up to
16 times it does not always hold all of your picture. So we need a copy of the
entire picture somewhere else. This second copy of the picture is located in
memory starting at address 32768 and is 6912 bytes long. It is an exact
duplicate of the layout of the screen display and it is this block that is
saved to and loaded from tape.
What this means is that if you load a MELBOURNE DRAW picture from another
program with the command:
LOAD "name" CODE
then it will load at the above address.
If you are going to work with the picture from a machine language program this
may be a reasonable address to load the picture at. However most BASIC programs
would prefer to load the picture directly onto the screen display. If this is
the case you can use the command:
LOAD "name" SCREEN$
to position it correctly.
An alternative that allows you to load the picture anywhere in memory is to use
the command:
LOAD "name" CODE xxxxx
where xxxxx is the address of where you want the start of the picture to be. As
an example:
LOAD "name" CODE 16384
is equivalent to the above command
LOAD "name" SCREEN$ .
Another way that MELBOURNE DRAW can make life easier for you is in designing
UDG characters. You can draw the shape that you want to be made up with UDG's
on the screen and change it until it is right, then save it as UDG characters.
After your shape has been defined you can save your UDG characters onto tape to
be reloaded at a later stage. To reload your block of UDG characters back into
the machine, use the command:
LOAD "name" CODE USR 'a'
which will place the characters in the UDG area no matter where it has been
moved in the computer's memory.
Alternatively you can write down the values that the program displays for you
when you define a UDG and use them in your program.
As an example of this last method, suppose that you have drawn a solid circle
within a character and wish to use it as a UDG character from another program.
You define it as a UDG with MELBOURNE DRAW and the values:
0,60,126,126,126,126,60,0
are displayed.
The following short BASIC program will define the UDG character 'A' as the above
circle.
10 FOR i=0 TO 7
20 READ b: POKE USR "a"+i,b
30 NEXT i
40 DATA 0,60,126,126,126,126,60,0
MELBOURNE DRAW always takes the start address of the UDG character set from the
BASIC system variable UDG (located at address 23675 in the system variable
area). This means that if you move the UDG area before loading and running
MELBOURNE DRAW it will use and store UDG characters at the new address. In a
similar fashion MELBOURNE DRAW takes the address of the normal character set
from the system variable CHARS (located at address 23606). This means that, if
the character set has been moved elsewhere in the computer's memory, MELBOURNE
DRAW will print characters from the new address when in text entry mode. Note
this does not affect the printing in the information window since the built in
character set is always used for this section, it will however affect the main
menu program.
If you are planning on moving either character set then you should keep in mind
that MELBOURNE DRAW uses a large portion of the available memory of your
Spectrum computer.
The actual memory used is as follows.
23755 - 25596 Basic control program.
32768 - 39679 Internal copy of the picture.
40960 - 47103 Machine language MELBOURNE DRAW program
When the machine language program is run it saves the current value of the
machine stack pointer and moves the stack to memory location 40959. This means
that while the machine language is running the stack will grow downwards from
this address so that some of the memory between the internal picture and the
program is used as well. The address given for the BASIC program assumes that
you are using a standard 48K Spectrum with no Microdrives attached.
SUGGESTED USES FOR MELBOURNE DRAW
1. Title pages, such as those on THE HOBBIT and PENETRATOR
2. Creating UDG files that allow BASIC programs to save on memory by not
having lots of long data statements.
3. Creating a background for BASIC or machine language programs. By
creating a picture and loading it from tape early on in your program
your own shapes and characters can move around within a very elaborate
scenery.
4. Specialist applications such as circuit diagrams. You can set up common
items such as resistors, capacitors and transistors as UDG characters
then position and link them easily. To obtain a printout of your design
simply load it onto the screen form BASIC and do a COPY command.
e. g.
10 LOAD "" SCREEN$
20 COPY
AFTERWORD
Every effort has been made to ensure that this program is as error free and
easy to use as possible. If you have any comments, criticisms or suggestions
about MELBOURNE DRAW please feel free to write to me with your ideas.
Philip Mitchell
131 Trafalgar Road, London SE10, United Kingdom
4/75 Palmerston Cres., South Melbourne, 3205, Australia
COMMAND SUMMARY
NOTE: 'SHIFT' means either CAPS SHIFT or SYMBOL SHIFT may be used (but not
both) otherwise the required keys will be specified exactly. The columns
labelled T, Sc, S and A stand for TEXT, SCROLL, SCREEN and ATTRibutes
respectively and denote which commands are available in the relevant mode. If
an X appears in the column opposite a command then that command is available in
that mode. Lastly the letters and numbers that are in brackets are the key
options available to the relevant command.
Keys(s) Command T Sc S A
Q Move cursor up/left X X X
W Move cursor up X X X
E Move cursor up/right X X X
A Move cursor left X X X
D Move cursor right X X X
Z Move cursor down/left X X X
X Move cursor down X X X
C Move cursor down/right X X X
(when combined with either SHIFT key the above keys move the cursor block by
a block when in magnified picture mode)
SHIFT 5 Move cursor left X
SHIFT 6 Move cursor down X
SHIFT 7 Move cursor up X
SHIFT 8 Move cursor right X
S Set pixel to current mode X X
M Magnify screen X X X
N Reduce magnification X X X
B Set border colour (0-7) X X X
0-7 Set INK attribute X X X
SHIFT 0-7 Set PAPER attribute X X X
SHIFT B Toggle BRIGHT attribute X X X
SHIFT V Toggle FLASH attribute X X X
SHIFT R Clear screen (P, I, B, S, A, N) X X X
O Enable RESET mode X X X
I Enable INVERT mode X X X
ENTER Enable SET mode X X X
SPACE Enable SKIP mode X X X
H Toggle ATTR edit mode X X X
K Enter SCROLL mode X X
T Enter TEXT mode X X X
U Define a UDG character (A-U) X X X
SHIFT F Fill an area of the screen X X X
G Toggle grid form 1 on/off X X X
SHIFT G Toggle grid form 2 on/off X X X
SHIFT 9 Move information window X X X
SHIFT L Reverse screen left - right X X X
SHIFT 8 Scale picture (I, D, E) X X X
CAPS SHIFT/ Change cursor direction X
SYMBOL SHIFT (pressed together) - (5, 6, 7, 8)
CAPS SHIFT Exit text mode or program X X X X
and SPACE (must be pressed together)
Quest for the Holy Joystick is a traditional text adventure and the first satirical output from the then up-and-coming zany Delta 4 Software. It spoof...
Superman: The Game is a game of nail-biting strategy and stunning action. The game' setting in Metropolis, where Darkseid's reign of terror has begun....
En Light Corridor tu misión será conducir la bola a través de 56 corredores distintos, a la vez que evitas chocarte con un montón de obstáculos e inte...
Planetoids is an arcade shooter game developed by Psion Software Ltd and published by Sinclair Research Ltd in 1982. The game is available in English ...
This is a game intended to teach the basics of the English Highway Code circa 1984 to those learning to drive. You are presented with a quiz that will...
he object of this budget-priced graphic adventure is to "find the eight spider's legs of time to become the ultimate cool and froody being!". Oh, is t...
Robin of the Wood is a maze game published in 1985 for a few 8-bit computer formats by Odin Computer Graphics in the UK and Serma Software in Spain.[1...