Автор: Matthew Probert
Год: 1985
Издатели: ZX Computing
Языки:
Английский
Формат:
TZX лента
Требования:
ZX Spectrum 48K
Ссылки:
Страница на ZXArt
Страница на World Of Spectrum
Страница на Spectrum Computing
Скриншоты:
Год: 1985
Издатели: ZX Computing
Языки:
Формат:
Требования:
Ссылки:
Скриншоты:
Screen master
For those of you wary of attempting
our machine code graphics series,
Matthew Probert presents a powerful
screen artist program in BASIC.
Screen master is a graphics design system for the 48K
Spectrum or Spectrum+. It enables the user to quickly and
simply design and save screens which may be used as title
pages for programs during loading, or used within programs
themselves by extracting the short machine code routine
used by Screen Master to display a screen instantaneouly.
Terminology
Within these instructions certain terms will be used which
should be understood. These are as follows:
'Display' refers to the design on the TV screen.
'Editor or Block cursor' a two character square block which
may be moved around the display under user control.
'Menu' refers to the 'Select Option' state with the display
showing the design being worked upon and the program wait-
ing for the user to press a key.
'Pixel cursor' refers to a single pixel cursor which may be
moved around the display under user control.
'Prompt' refers to a message displayed indicating that the
user should press a key, ie 'Select option' is a prompt.
'Request' like 'prompt' but indicates that some data should
be entered by the user.
'Screen refers to a section of Ram holding the data of the
design being worked upon.
'Text' refers to characters which may be displayed in
'Print' fashion.
Functions
Screen Master provides the user with eight different types
of function for the display and manipulation of screen
data. These functions are:
'Pixel functions' which operate basically upon single
pixels.
'Block functions' which operate upon a block of data and
tend to use the 'Editor cursor'.
'Screen functions' which operate upon screens of data.
'Tape functions' which use the cassette recorder.
'Attr functions' which change attributes.
'Text functions' which manipulate text.
'Brush functions' which provide various shading effects.
'Status functions' which alter or display the current
status of the system.
Pixel functions
There are seven pixel functions; 'Freehand', 'Circle',
'Ellipse', 'Box', 'Move', and two others 'Move' and 'Erase'
which are only accessed from 'Freehand'.
There are then three functions relating to 'Freehand',
these plot points, move the pixel cursor and erase points
respectively. From one function to another within Freehand
the user may select either one of the other Freehand func-
tions by pressing keys P, M and E respectively or exit back
to the Menu by pressing Enter. The Freehand function is
selected from the Menu by key F.
When in Freehand mode, the pixel cursor, like all other
cursors may be moved around the display by the cursor keys
or keys 5 to 8. During Freehand in all of its functions the
coordinates of the pixel cursor, X,Y are displayed at the
bottom of the display to aid the user.
The next three pixel functions, Circle, Ellipse and Box
are selected by keys C, E and X respectively from the Menu.
Each function requests an input from the user, for Circle
this input is the radius of the circle in pixels to be
drawn with the coordinate X,Y as the centre of the circle.
If 0 is entered as the radius the system will return to the
Menu. Ellipse requests both the radius in the X and Y axis
of the ellipse to be drawn. Entering 0 for the X radius
will again return the user to the Menu, otherwise an el-
lipse will be drawn with the coordinates X,Y of the pixel
cursors as its centre. Box works in a similar fashion, but
draws a rectangle to the right and down from the pixel
cursor, so that the coordinates X,Y form the top left
corner of the shape. Entering a negative value in response
to 'Length' will result in the rectangle being drawn to the
left, and a negative value for height will result in it
being drawn up.
Pixel function 'Move' as selected from the Menu by key L
allows the user to move two cross lines around the screen
at a rate of eight pixels per move. Upon exiting from this
function the pixel cursor will be set to the coordinates at
which the cross lines intersect.
Block functions
There are eight block functions, two of which use a special
designer grid and these will be considered first.
'Sprite', selected by key S allows the user to design a
two by two character block on a large grid a bit like a UDG
generator. The cursor on the grid may be moved in three
ways, with the cursor keys or keys 5 to 8 as usual, and
also with symbol shift and keys 5 to 8 together, in which
case it will leave a trail of filled in squares behind it.
Single squares may be filled with key 9 and deleted with
key 0.
'Alter', selected by key A, is similar to Sprite, but
picks up a two character square block of the screen,
removes it from the display and transfers it to the grid
ready for alterations to take place.
'Reflect' switches the data on either side of the Editor
cursor either from top to bottom or left to right depending
upon whether X or Y was entered in response to the request
respectively. Reflect is selected by key R.
'Delete', selected by key DEL erases the data below the
Editor cursor from the display and screen.
'Copy' is the same as Alter, but merely allows a copy of
the data to be reproduced elsewhere without erasing the
original. Copy is selected by key U.
'Switch', selected by key H, changes the attributes
under the Editor cursor to the current values.
'Fill', selected by key N, fills in the area under the
cursor as a solid block.
'Zap', selected by key Z changes the data under the
cursor in a random way so as to give the impression that
the data has been 'zapped'.
In all cases Enter should be used to exit from the move
cursor routine, and Y or N pressed in response to the Okay?
message. Pressing N reverst the display and screen back to
how it was before the operation took place.
Screen functions
There are three screen functions, the first 'Cls' selected
by pressing EDIT clears the display having first trans-
ferred the display into the current screen, thus pressing
EDIT twice consecutively will also clear the current screen
as well as the display.
The second function, 'Down' selected by key W copies the
screen to the display.
The last function 'Merge' selected by key M requests a
screen number to be pressed and then overlays this screen
on top of the display in such a way that the new screen
takes preference over the old, but leaves the attributes
alone.
Tape functions
There are just two tape functions, 'Save' and 'Load', both
of which operate using SCREEN$ and either save the display
or load in the display and current screen. They are selec-
ted by Symbol Shift and either S or J respectively.
Attr functions
There are four Attr functions, the first, 'Ink' selected
by key I changes the current ink colour, 'Paper' selected
by key P changes the paper colour and 'Bright' selected by
key B switches the brightness from on to off and from off
to on automatically. All three of these work in 'temporary'
fashion.
The last function, 'Chg' is selected by key O and chan-
ges the entire display and screen to the attribute value
entered, it does not clear the display.
Text functions
There is one text function, selected by pressing key " it
allows up to thirty two characters at a time to be dis-
played anywhere on the display and screen. The text may be
graphics, selected by pressing the graphics key followed by
entry of the required text, or ordinary characters.
The text may be displayed in inverse by pressing the INV
Video key, or made to flash by pressing extend followed by
CAPS shift and key 9 together. If you wish to exit the
routine, pressing Q whilst in the Move cursor stage will
return you to the Menu.
Brush functions
Six different brushes are provided, selected by keys 1
to 6 from the Menu. The brush function works like a cross
between the text and Freehand functions described earlier.
Status functions
There are two status functions, 'Status' which is selected
by pressing key K and displays the current ink, paper,
bright, screen number and pixel cursor coordinate values,
and 'Addr' which is selected by key T and allows the user
to change screens between 1 and 4.
Technical details
The four screens are each 6848 bytes long and stored at
addresses 58519, 51671, 44823, and 37975 respectively. The
routine to copy the display into screen 'n' is at address
23296 with the screen address held in bytes 23300 and
23301. The routine is relocatable.
The routine to copy a screen to the display is at address
23308 with the screen address held in bytes 23309 and
23310. This routine is also relocatable.
The program uses seven UDG's, from O to U respectively.
Ramtop is automatically reset to below screen 4 so that NEW
does not affect the screens, in this way screens may be
saved as Data, by: Pressing BREAK to break into Screen
Master. Typing NEW to lose Screen Master, and either load-
ing in your own program or saving the screen(s) as data.
For those of you wary of attempting
our machine code graphics series,
Matthew Probert presents a powerful
screen artist program in BASIC.
Screen master is a graphics design system for the 48K
Spectrum or Spectrum+. It enables the user to quickly and
simply design and save screens which may be used as title
pages for programs during loading, or used within programs
themselves by extracting the short machine code routine
used by Screen Master to display a screen instantaneouly.
Terminology
Within these instructions certain terms will be used which
should be understood. These are as follows:
'Display' refers to the design on the TV screen.
'Editor or Block cursor' a two character square block which
may be moved around the display under user control.
'Menu' refers to the 'Select Option' state with the display
showing the design being worked upon and the program wait-
ing for the user to press a key.
'Pixel cursor' refers to a single pixel cursor which may be
moved around the display under user control.
'Prompt' refers to a message displayed indicating that the
user should press a key, ie 'Select option' is a prompt.
'Request' like 'prompt' but indicates that some data should
be entered by the user.
'Screen refers to a section of Ram holding the data of the
design being worked upon.
'Text' refers to characters which may be displayed in
'Print' fashion.
Functions
Screen Master provides the user with eight different types
of function for the display and manipulation of screen
data. These functions are:
'Pixel functions' which operate basically upon single
pixels.
'Block functions' which operate upon a block of data and
tend to use the 'Editor cursor'.
'Screen functions' which operate upon screens of data.
'Tape functions' which use the cassette recorder.
'Attr functions' which change attributes.
'Text functions' which manipulate text.
'Brush functions' which provide various shading effects.
'Status functions' which alter or display the current
status of the system.
Pixel functions
There are seven pixel functions; 'Freehand', 'Circle',
'Ellipse', 'Box', 'Move', and two others 'Move' and 'Erase'
which are only accessed from 'Freehand'.
There are then three functions relating to 'Freehand',
these plot points, move the pixel cursor and erase points
respectively. From one function to another within Freehand
the user may select either one of the other Freehand func-
tions by pressing keys P, M and E respectively or exit back
to the Menu by pressing Enter. The Freehand function is
selected from the Menu by key F.
When in Freehand mode, the pixel cursor, like all other
cursors may be moved around the display by the cursor keys
or keys 5 to 8. During Freehand in all of its functions the
coordinates of the pixel cursor, X,Y are displayed at the
bottom of the display to aid the user.
The next three pixel functions, Circle, Ellipse and Box
are selected by keys C, E and X respectively from the Menu.
Each function requests an input from the user, for Circle
this input is the radius of the circle in pixels to be
drawn with the coordinate X,Y as the centre of the circle.
If 0 is entered as the radius the system will return to the
Menu. Ellipse requests both the radius in the X and Y axis
of the ellipse to be drawn. Entering 0 for the X radius
will again return the user to the Menu, otherwise an el-
lipse will be drawn with the coordinates X,Y of the pixel
cursors as its centre. Box works in a similar fashion, but
draws a rectangle to the right and down from the pixel
cursor, so that the coordinates X,Y form the top left
corner of the shape. Entering a negative value in response
to 'Length' will result in the rectangle being drawn to the
left, and a negative value for height will result in it
being drawn up.
Pixel function 'Move' as selected from the Menu by key L
allows the user to move two cross lines around the screen
at a rate of eight pixels per move. Upon exiting from this
function the pixel cursor will be set to the coordinates at
which the cross lines intersect.
Block functions
There are eight block functions, two of which use a special
designer grid and these will be considered first.
'Sprite', selected by key S allows the user to design a
two by two character block on a large grid a bit like a UDG
generator. The cursor on the grid may be moved in three
ways, with the cursor keys or keys 5 to 8 as usual, and
also with symbol shift and keys 5 to 8 together, in which
case it will leave a trail of filled in squares behind it.
Single squares may be filled with key 9 and deleted with
key 0.
'Alter', selected by key A, is similar to Sprite, but
picks up a two character square block of the screen,
removes it from the display and transfers it to the grid
ready for alterations to take place.
'Reflect' switches the data on either side of the Editor
cursor either from top to bottom or left to right depending
upon whether X or Y was entered in response to the request
respectively. Reflect is selected by key R.
'Delete', selected by key DEL erases the data below the
Editor cursor from the display and screen.
'Copy' is the same as Alter, but merely allows a copy of
the data to be reproduced elsewhere without erasing the
original. Copy is selected by key U.
'Switch', selected by key H, changes the attributes
under the Editor cursor to the current values.
'Fill', selected by key N, fills in the area under the
cursor as a solid block.
'Zap', selected by key Z changes the data under the
cursor in a random way so as to give the impression that
the data has been 'zapped'.
In all cases Enter should be used to exit from the move
cursor routine, and Y or N pressed in response to the Okay?
message. Pressing N reverst the display and screen back to
how it was before the operation took place.
Screen functions
There are three screen functions, the first 'Cls' selected
by pressing EDIT clears the display having first trans-
ferred the display into the current screen, thus pressing
EDIT twice consecutively will also clear the current screen
as well as the display.
The second function, 'Down' selected by key W copies the
screen to the display.
The last function 'Merge' selected by key M requests a
screen number to be pressed and then overlays this screen
on top of the display in such a way that the new screen
takes preference over the old, but leaves the attributes
alone.
Tape functions
There are just two tape functions, 'Save' and 'Load', both
of which operate using SCREEN$ and either save the display
or load in the display and current screen. They are selec-
ted by Symbol Shift and either S or J respectively.
Attr functions
There are four Attr functions, the first, 'Ink' selected
by key I changes the current ink colour, 'Paper' selected
by key P changes the paper colour and 'Bright' selected by
key B switches the brightness from on to off and from off
to on automatically. All three of these work in 'temporary'
fashion.
The last function, 'Chg' is selected by key O and chan-
ges the entire display and screen to the attribute value
entered, it does not clear the display.
Text functions
There is one text function, selected by pressing key " it
allows up to thirty two characters at a time to be dis-
played anywhere on the display and screen. The text may be
graphics, selected by pressing the graphics key followed by
entry of the required text, or ordinary characters.
The text may be displayed in inverse by pressing the INV
Video key, or made to flash by pressing extend followed by
CAPS shift and key 9 together. If you wish to exit the
routine, pressing Q whilst in the Move cursor stage will
return you to the Menu.
Brush functions
Six different brushes are provided, selected by keys 1
to 6 from the Menu. The brush function works like a cross
between the text and Freehand functions described earlier.
Status functions
There are two status functions, 'Status' which is selected
by pressing key K and displays the current ink, paper,
bright, screen number and pixel cursor coordinate values,
and 'Addr' which is selected by key T and allows the user
to change screens between 1 and 4.
Technical details
The four screens are each 6848 bytes long and stored at
addresses 58519, 51671, 44823, and 37975 respectively. The
routine to copy the display into screen 'n' is at address
23296 with the screen address held in bytes 23300 and
23301. The routine is relocatable.
The routine to copy a screen to the display is at address
23308 with the screen address held in bytes 23309 and
23310. This routine is also relocatable.
The program uses seven UDG's, from O to U respectively.
Ramtop is automatically reset to below screen 4 so that NEW
does not affect the screens, in this way screens may be
saved as Data, by: Pressing BREAK to break into Screen
Master. Typing NEW to lose Screen Master, and either load-
ing in your own program or saving the screen(s) as data.