Автор: Paul Rhodes
Год: 1985
Издатели: Your Computer
Языки:
Английский
Формат:
TZX лента
Требования:
ZX Spectrum 48K
Ссылки:
Страница на ZXArt
Страница на World Of Spectrum
Страница на Spectrum Computing
Скриншоты:
Год: 1985
Издатели: Your Computer
Языки:
Формат:
Требования:
Ссылки:
Скриншоты:
Drawer
Paul Rhodes and an advanced draw program.
This is a complex draw program for the ZX Spectrum with
many advanced facilities usually found only on expensive
commercial packages. These include a fill routine that can
handle even the most complicated shapes, patterned fill,
filled-in and empty circles, solid and dotted lines,
variable cursor speed, screen magnify - magnifications -
and two screen stores.
To enter the program, you should first type in the con-
trol program - listing 1 - and save it to tape or Micro-
drive with auto-run Line 500. You should make no changes to
the program, except to the Load command in line 500 if you
wish to use the program on Microdrive, as memory is tight
and line numbers are important. If you do not have Micro-
drives, then you will be unable to enter the Microdrive
Save/Load lines, so type in lines 200 and 201 again in
place of lines 202 and 203.
[This would be the best point to mention that the ver-
sion on the TZX does include Microdrive support (which
crashes when used without Interface 1 or emulation thereof.
Use RUN to restart the program; you will find that your
screen has been preserved). I've also provided the special
hexloader mentioned below, though it's unlikely you need it
for anything. And there's a sample screen showing all the
fill patterns.]
Next:
CLEAR 24999
and type in the hexloader. If you are going to use your own
hexloader, then you will have to enter the Pokes and Save
command at the end of the program - line 80 - yourself
after you have typed the hex in. Enter the hex from the
listing, eight bytes at a time with no separating spaces,
entering the checksums when prompted.
When you have finished the program will automatically
save the code to tape. If you want to save it to Micro-
drive, you must New the hexloader first, as otherwise there
will not be enough memory for the "m" channel. It is best
to start off by saving everything to tape, then transfer to
Microdrive later.
To test the program, first type:
PRINT USR 0
to clear the computer, then Load the control program. This
will automatically Load the code and print up a menu on
screen. If this does not happen, press 0 then r. If you get
a menu now, then you must have forgotten to enter the Pokes
at the end of the hexloader. If you do not, then you have
made an error in typing in the code. [Rest assured, dearest
reader. Of course the program on the TZX has been tested
and provides the menu as expected.]
The menu has six options, numbered 0-5. Option 0 allows
you to use the drawing program, option 5 will quit the
program and return to Basic, and the others bring up a sub-
menu asking what you want to save or load.
When you press 0 you should be presented with a blank
screen, except for a small information window in one cor-
ner. Assuming that there was nothing in memory before you
loaded the program, the screen attributes will be set to 0,
so you will be unable to see your cursor. Press Caps Shift
V, then select option 3 from the Clear Screen menu.
How to use the program
I will now explain how to use the program. The first
thing you will need to know is how to move the cursor. The
keys Q, W, E, A, D, Z, X and C are the cursor control keys
- these will be familiar to users of Melbourne Draw. When
used in conjunction with Symbol Shift, these keys will
scroll the screen, and with Caps Shift they can be used to
move the magnification window - more of which later.
The cursor can be used in any of the four plot modes, Set
- plots point, Res - resets point-equivalent to Inverse 1,
XOR - inverts pixels-equivalent to Over 1 and Skip - allows
you to move the cursor without plotting. These modes are
selected by the keys P, O, I and U respectively.
To change the colours on the screen you must change from
the pixel cursor - indicated by SCRN in the information
window - to the attributes cursor - ATTR. The L key will
switch between the two cursors. The attribute cursor
behaves exactly like the pixel cursor, except that it is
character-sized. In Set mode, it will draw the ink, paper,
bright and flash values indicated at the bottom of the
information window. These can be altered using the number
keys. Keys 0-7 will change the ink - unshifted - or paper -
with Caps Shift - colour, keys 8 and 9 will change the
bright - unshifted - and flash - with Caps Shift - values.
Note also that, when using the attribute cursor, Symbol
Shift with the movement keys will scroll the attributes. It
is important to remember, with both pixel and attribute
cursors, that the point underneath the cursor is not plot-
ted until you move the cursor from it. If you wish to plot/
change the attributes at the cursor positions, press Enter
- this will plot in the current mode, so obviously will
have no effect in Skip mode. Finally, on this subject, if
you wish to speed up or slow down the cursor, you can use
Symbol Shift together with the number keys to select a
speed. There are nine speeds (1-9) and also a special "no
repeat" mode (0).
For the line and circle drawing routines, you have to
specify two points - these will be the two ends of the
line, or of a radius of the circle. To set one end of the
line, or the centre of the circle, press Caps Shift and
Enter. This defines the cursor position as the "last
point". Next, move the cursor to the other end of the line,
or a point on the circumference of the circle.
See "last point" flashing
If you press Symbol Shift and Enter together, and hold
them down, you will see the "last point" flashing. This can
be useful when you wish to remind yourself of its position.
To draw a line - select the appropriate mode first - it is
pointless drawing a line in Skip mode! - press Caps Shift
and J. To draw a circle, press Caps Shift and H. Symbol
Shift and H will draw a filled circle, Symbol Shift and J
gives a dotted line. To change the mask for the dotted
line, press Caps Shift and K - the mask is initially set
to 10101010.
It is important when drawing a picture in colour to
be able to see the positions of the edges of character
squares, so as to avoid "attribute clashes". To help you do
so, the program can superimpose one of two grids over the
screen. Press G for a black-on-white grid, or Caps Shift G
for a grid which retains the ink and paper colours already
on the screen. As the grid is a pattern of Bright and
normal squares, it will not show up on an RGB monitor.
Now on to the Fill routine. This will fill in any shape
bounded by a solid line or the edge of the screen. Move the
cursor within the shape and press Caps Shift F. To fill a
shape in with one of the 20 fill patterns, proceed as for
a normal fill but press Symbol Shift F. You will be prompt-
ed for a pattern number. Select the pattern using keys 0-9
for the first 10 patterns or Caps Shift plus 0-9 for the
other 10.
If you want to make up your own pattern, any of the 20
can be redefined. The patterns consist of an 8 by 8 charac-
ter square, like a UDG. Draw your pattern in a character
square - use the grid - and, with the cursor still in the
square containing the pattern, press Caps Shift P. Select
the pattern as for Fill. Pressing Symbol Shift with the
number will abort the fill or pattern define command if you
have selected it by mistake.
Similar to the "define pattern" command is "define UDG" -
selected with Caps Shift and O. In answer to the "UDG?"
prompt you should press the key corresponding to the
graphic you want to define, which must be in the range A-U.
Any other letter key or Break will abort the command.
There are two memory-stores for pictures, so that you can
save a picture at any stage in development, then recall it
if you have messed something up. To save a screen, press
Caps Shift and I. To recall it later, press Caps Shift and
U. The long-term store will retain the picture until you
store something else over it, but Fill, Line and Circle all
copy the screen into the temporary store so that you can
undo their operation if need be.
This can be especially important with Fill as you might
find that you have left a gap in the shape to be filled,
and fill in more than you want to; or you may decide you
have chosen the wrong pattern.
There is a text mode
For putting text and UDGs on the screen, there is a Text
mode, selected by pressing T. Type in text as normal,
except that capital letters are unshifted and lower case
shifted, using Caps Shift with the keys 5-8 to move the
cursor around the screen. Graphics mode is selected with
Caps Shift 9, which will change the appearance of the
cursor and display "GRPH" under "Text" in the information
window. [To exit this mode, press Break.]
The information window now needs some explanation. The
two numbers at the top are, of course, the cursor coordi-
nates. They follow the normal practice of defining (0,0) as
the bottom left corner of the part of the screen normally
available to Basic. The bottom two lines are assigned nega-
tive y-coordinates. The second line of the window will
display the mode - Set, Res, XOR, Skip or Text - and "Fo"
which signifies that "Follow mode" is in operation - this
will be explained later.
The third line displays the cursor mode - SCRN or ATTR
for the normal cursor, GRPH or nothing for the text cursor
- and the magnification - so far, always 1. Along the
bottom are the paper and ink colours and bright and flash
settings - a bright B appears for Bright 1, a flashing F
for Flash 1. The window can be turned off and on with Caps
Shift N, and it can be moved by pressing N. This is nor-
mally unnecessary as it moves automatically if you move the
cursor over it. So as to be noticable at all times when
switched on, the window selects black or white paper to
contrast with the paper colour underneath it.
One of the most important and useful features of the
program is the magnifier. This allows you to magnify part
of the screen by a factor of either two or four in each
direction - i.e., magnifying the area by four or 16. The
area to be magnified is called the "magnification window"
and can be seen by pressing Caps Shift and M - press them
again to turn it off. It can be moved around the screen by
pressing Caps Shift along with the cursor movement keys.
Symbol Shift M will select the magnification and hence the
size of the window - with a greater magnification, the area
to be magnified is smaller.
To magnify the area in the window, press M. There is a
special feature of the magnifier which causes the window
to automatically centre itself on the cursor if it is not
within the magnification window. This means that when draw-
ing in magnified mode, the window will automatically follow
the cursor when it goes off the edge of the screen and is
therefore called "Follow Mode".
You can turn it off - and back on again - by pressing
Symbol Shift and S. To centre the window press S, and to
move the cursor to the centre of the window, press Caps
Shift and S. You can still change the magnification and
move the window around when in magnified mode, but remem-
ber that in follow mode you cannot move the window away
from the cursor.
To clear the screen, press Caps Shift and V, then select
either screen which will leave the attributes alone, attri-
butes which will clear the colour details only or both - a
normal CLS.
Symbol Shift and V will select the Invert command, which
has the same options available. This can be useful for many
things. For example, for inverted text you should invert
the screen, then put the text on the screen normally, then
invert the screen again.
You can also clear parts of the screen by inverting the
screen, drawing round them and filling them in, and then
inverting the screen again. Note that the option to invert
both screen and attributes will have no visible effect,
unless you turn the grid on. One other command which can be
used in conjunction with Clear is Border - press B - which
can be used to set the border colour. This does not affect
the picture itself, it is purely for convenience of the
user.
The only other key which you will need to use is R.
Regardless of any shifts, this will return you to the main
Save/Load menu.
[ And to finish it all off, here's a summary of the keys:
QWE move cursor
A D ^ scroll screen
ZXC @ move magnify window
P select Set mode
O select Res mode
I select XOR mode
U select Skip mode
L switch pixel/attr cursor
0-7 change ink
@ change paper
8-9 change bright
@ change flash
1-9 ^ select speed
0 ^ no repeat speed
Enter plot point/set attributes
@ set last point
^ show last point
@J draw line
@H draw circle
^H draw filled circle
^J draw dotted line
@K change dot mask
G b/w grid
@G bright grid
@F fill solid
^F fill with pattern
@P define fill pattern
0-9 select pattern 0-9
@ select pattern 10-19
^ abort fill/define
@O define UDG
@I save screen
@U recall screen
T select text mode
normal text upper case
@ lower case
@5-8 move cursor
@9 graphics mode
@N switch info window
N move info window
@M switch magnify window
^M select magnification
M magnify area
^S switch follow mode
S centre mag window on cursor
@S centre cursor on mag window
@V clear screen
^V invert screen
B change border colour
R return to save/load menu
Richard Bos, April 2012 ]
Paul Rhodes and an advanced draw program.
This is a complex draw program for the ZX Spectrum with
many advanced facilities usually found only on expensive
commercial packages. These include a fill routine that can
handle even the most complicated shapes, patterned fill,
filled-in and empty circles, solid and dotted lines,
variable cursor speed, screen magnify - magnifications -
and two screen stores.
To enter the program, you should first type in the con-
trol program - listing 1 - and save it to tape or Micro-
drive with auto-run Line 500. You should make no changes to
the program, except to the Load command in line 500 if you
wish to use the program on Microdrive, as memory is tight
and line numbers are important. If you do not have Micro-
drives, then you will be unable to enter the Microdrive
Save/Load lines, so type in lines 200 and 201 again in
place of lines 202 and 203.
[This would be the best point to mention that the ver-
sion on the TZX does include Microdrive support (which
crashes when used without Interface 1 or emulation thereof.
Use RUN to restart the program; you will find that your
screen has been preserved). I've also provided the special
hexloader mentioned below, though it's unlikely you need it
for anything. And there's a sample screen showing all the
fill patterns.]
Next:
CLEAR 24999
and type in the hexloader. If you are going to use your own
hexloader, then you will have to enter the Pokes and Save
command at the end of the program - line 80 - yourself
after you have typed the hex in. Enter the hex from the
listing, eight bytes at a time with no separating spaces,
entering the checksums when prompted.
When you have finished the program will automatically
save the code to tape. If you want to save it to Micro-
drive, you must New the hexloader first, as otherwise there
will not be enough memory for the "m" channel. It is best
to start off by saving everything to tape, then transfer to
Microdrive later.
To test the program, first type:
PRINT USR 0
to clear the computer, then Load the control program. This
will automatically Load the code and print up a menu on
screen. If this does not happen, press 0 then r. If you get
a menu now, then you must have forgotten to enter the Pokes
at the end of the hexloader. If you do not, then you have
made an error in typing in the code. [Rest assured, dearest
reader. Of course the program on the TZX has been tested
and provides the menu as expected.]
The menu has six options, numbered 0-5. Option 0 allows
you to use the drawing program, option 5 will quit the
program and return to Basic, and the others bring up a sub-
menu asking what you want to save or load.
When you press 0 you should be presented with a blank
screen, except for a small information window in one cor-
ner. Assuming that there was nothing in memory before you
loaded the program, the screen attributes will be set to 0,
so you will be unable to see your cursor. Press Caps Shift
V, then select option 3 from the Clear Screen menu.
How to use the program
I will now explain how to use the program. The first
thing you will need to know is how to move the cursor. The
keys Q, W, E, A, D, Z, X and C are the cursor control keys
- these will be familiar to users of Melbourne Draw. When
used in conjunction with Symbol Shift, these keys will
scroll the screen, and with Caps Shift they can be used to
move the magnification window - more of which later.
The cursor can be used in any of the four plot modes, Set
- plots point, Res - resets point-equivalent to Inverse 1,
XOR - inverts pixels-equivalent to Over 1 and Skip - allows
you to move the cursor without plotting. These modes are
selected by the keys P, O, I and U respectively.
To change the colours on the screen you must change from
the pixel cursor - indicated by SCRN in the information
window - to the attributes cursor - ATTR. The L key will
switch between the two cursors. The attribute cursor
behaves exactly like the pixel cursor, except that it is
character-sized. In Set mode, it will draw the ink, paper,
bright and flash values indicated at the bottom of the
information window. These can be altered using the number
keys. Keys 0-7 will change the ink - unshifted - or paper -
with Caps Shift - colour, keys 8 and 9 will change the
bright - unshifted - and flash - with Caps Shift - values.
Note also that, when using the attribute cursor, Symbol
Shift with the movement keys will scroll the attributes. It
is important to remember, with both pixel and attribute
cursors, that the point underneath the cursor is not plot-
ted until you move the cursor from it. If you wish to plot/
change the attributes at the cursor positions, press Enter
- this will plot in the current mode, so obviously will
have no effect in Skip mode. Finally, on this subject, if
you wish to speed up or slow down the cursor, you can use
Symbol Shift together with the number keys to select a
speed. There are nine speeds (1-9) and also a special "no
repeat" mode (0).
For the line and circle drawing routines, you have to
specify two points - these will be the two ends of the
line, or of a radius of the circle. To set one end of the
line, or the centre of the circle, press Caps Shift and
Enter. This defines the cursor position as the "last
point". Next, move the cursor to the other end of the line,
or a point on the circumference of the circle.
See "last point" flashing
If you press Symbol Shift and Enter together, and hold
them down, you will see the "last point" flashing. This can
be useful when you wish to remind yourself of its position.
To draw a line - select the appropriate mode first - it is
pointless drawing a line in Skip mode! - press Caps Shift
and J. To draw a circle, press Caps Shift and H. Symbol
Shift and H will draw a filled circle, Symbol Shift and J
gives a dotted line. To change the mask for the dotted
line, press Caps Shift and K - the mask is initially set
to 10101010.
It is important when drawing a picture in colour to
be able to see the positions of the edges of character
squares, so as to avoid "attribute clashes". To help you do
so, the program can superimpose one of two grids over the
screen. Press G for a black-on-white grid, or Caps Shift G
for a grid which retains the ink and paper colours already
on the screen. As the grid is a pattern of Bright and
normal squares, it will not show up on an RGB monitor.
Now on to the Fill routine. This will fill in any shape
bounded by a solid line or the edge of the screen. Move the
cursor within the shape and press Caps Shift F. To fill a
shape in with one of the 20 fill patterns, proceed as for
a normal fill but press Symbol Shift F. You will be prompt-
ed for a pattern number. Select the pattern using keys 0-9
for the first 10 patterns or Caps Shift plus 0-9 for the
other 10.
If you want to make up your own pattern, any of the 20
can be redefined. The patterns consist of an 8 by 8 charac-
ter square, like a UDG. Draw your pattern in a character
square - use the grid - and, with the cursor still in the
square containing the pattern, press Caps Shift P. Select
the pattern as for Fill. Pressing Symbol Shift with the
number will abort the fill or pattern define command if you
have selected it by mistake.
Similar to the "define pattern" command is "define UDG" -
selected with Caps Shift and O. In answer to the "UDG?"
prompt you should press the key corresponding to the
graphic you want to define, which must be in the range A-U.
Any other letter key or Break will abort the command.
There are two memory-stores for pictures, so that you can
save a picture at any stage in development, then recall it
if you have messed something up. To save a screen, press
Caps Shift and I. To recall it later, press Caps Shift and
U. The long-term store will retain the picture until you
store something else over it, but Fill, Line and Circle all
copy the screen into the temporary store so that you can
undo their operation if need be.
This can be especially important with Fill as you might
find that you have left a gap in the shape to be filled,
and fill in more than you want to; or you may decide you
have chosen the wrong pattern.
There is a text mode
For putting text and UDGs on the screen, there is a Text
mode, selected by pressing T. Type in text as normal,
except that capital letters are unshifted and lower case
shifted, using Caps Shift with the keys 5-8 to move the
cursor around the screen. Graphics mode is selected with
Caps Shift 9, which will change the appearance of the
cursor and display "GRPH" under "Text" in the information
window. [To exit this mode, press Break.]
The information window now needs some explanation. The
two numbers at the top are, of course, the cursor coordi-
nates. They follow the normal practice of defining (0,0) as
the bottom left corner of the part of the screen normally
available to Basic. The bottom two lines are assigned nega-
tive y-coordinates. The second line of the window will
display the mode - Set, Res, XOR, Skip or Text - and "Fo"
which signifies that "Follow mode" is in operation - this
will be explained later.
The third line displays the cursor mode - SCRN or ATTR
for the normal cursor, GRPH or nothing for the text cursor
- and the magnification - so far, always 1. Along the
bottom are the paper and ink colours and bright and flash
settings - a bright B appears for Bright 1, a flashing F
for Flash 1. The window can be turned off and on with Caps
Shift N, and it can be moved by pressing N. This is nor-
mally unnecessary as it moves automatically if you move the
cursor over it. So as to be noticable at all times when
switched on, the window selects black or white paper to
contrast with the paper colour underneath it.
One of the most important and useful features of the
program is the magnifier. This allows you to magnify part
of the screen by a factor of either two or four in each
direction - i.e., magnifying the area by four or 16. The
area to be magnified is called the "magnification window"
and can be seen by pressing Caps Shift and M - press them
again to turn it off. It can be moved around the screen by
pressing Caps Shift along with the cursor movement keys.
Symbol Shift M will select the magnification and hence the
size of the window - with a greater magnification, the area
to be magnified is smaller.
To magnify the area in the window, press M. There is a
special feature of the magnifier which causes the window
to automatically centre itself on the cursor if it is not
within the magnification window. This means that when draw-
ing in magnified mode, the window will automatically follow
the cursor when it goes off the edge of the screen and is
therefore called "Follow Mode".
You can turn it off - and back on again - by pressing
Symbol Shift and S. To centre the window press S, and to
move the cursor to the centre of the window, press Caps
Shift and S. You can still change the magnification and
move the window around when in magnified mode, but remem-
ber that in follow mode you cannot move the window away
from the cursor.
To clear the screen, press Caps Shift and V, then select
either screen which will leave the attributes alone, attri-
butes which will clear the colour details only or both - a
normal CLS.
Symbol Shift and V will select the Invert command, which
has the same options available. This can be useful for many
things. For example, for inverted text you should invert
the screen, then put the text on the screen normally, then
invert the screen again.
You can also clear parts of the screen by inverting the
screen, drawing round them and filling them in, and then
inverting the screen again. Note that the option to invert
both screen and attributes will have no visible effect,
unless you turn the grid on. One other command which can be
used in conjunction with Clear is Border - press B - which
can be used to set the border colour. This does not affect
the picture itself, it is purely for convenience of the
user.
The only other key which you will need to use is R.
Regardless of any shifts, this will return you to the main
Save/Load menu.
[ And to finish it all off, here's a summary of the keys:
QWE move cursor
A D ^ scroll screen
ZXC @ move magnify window
P select Set mode
O select Res mode
I select XOR mode
U select Skip mode
L switch pixel/attr cursor
0-7 change ink
@ change paper
8-9 change bright
@ change flash
1-9 ^ select speed
0 ^ no repeat speed
Enter plot point/set attributes
@ set last point
^ show last point
@J draw line
@H draw circle
^H draw filled circle
^J draw dotted line
@K change dot mask
G b/w grid
@G bright grid
@F fill solid
^F fill with pattern
@P define fill pattern
0-9 select pattern 0-9
@ select pattern 10-19
^ abort fill/define
@O define UDG
@I save screen
@U recall screen
T select text mode
normal text upper case
@ lower case
@5-8 move cursor
@9 graphics mode
@N switch info window
N move info window
@M switch magnify window
^M select magnification
M magnify area
^S switch follow mode
S centre mag window on cursor
@S centre cursor on mag window
@V clear screen
^V invert screen
B change border colour
R return to save/load menu
Richard Bos, April 2012 ]