Автор: Antony Purvis,Purv
Год: 1989
Издатели: Your Sinclair
Языки:
Английский
Формат:
TAP лента
Требования:
ZX Spectrum 48K
Ссылки:
Страница на ZXArt
Страница на World Of Spectrum
Страница на Spectrum Computing
Скриншоты:
Год: 1989
Издатели: Your Sinclair
Языки:
Формат:
Требования:
Ссылки:
Скриншоты:
MEGASCROLL
by Antony Purvis
Do you remember Antony Purvis? The bloke who featured extensively in
the July issue. And the August issue. Oh, and the September issue.
Well, in spite of being blindfolded, placed along with his Spectrum in
a padlocked straitjacket, sealed into a small sherry cask (full) and
hurled forcibly from a light aircraft flying at 20,000 feet above the
shark-infested mid- Caribbean, here he is again.
Megascroll is probably Purv's finest effort so far, and is definitely
the best message-scroller in the whole world. What other scroller is
interrupt driven, uses letters 64 pixels high and lets you specify
colours and shadow effects as control codes from within the message?
And all this as a background task while the rest of your program runs
as normal? None.
The Set Up
Firstly, type in the Basic loader and save it with:
SAVE "MEGASCROLL" LINE 5.
Follow this with the two hex dumps, via the hex loader, which should
be named "MEGAcode" and "MEGAintcon" respectively, respectably and,
indeed, respectfully.
Loadsanumbers
All that remains now is to tell the program what you want it to
scroll. The message is defined as a string, POKEd into memory and
saved after the rest of the code.
As well as mere letters and numbers, the string can contain embedded
control codes which will affect the way the text appears. The codes
can be placed at any point in the text, and are as follows:
CHR$ 1+CHR$ x - Set foreground colour.
CHR$ 2+CHR$ x - Set background colour.
CHR$ 3+CHR$ x - Set shadow colour.
CHR$ 4+CHR$ x - Set top line of scroll.
CHR$ 5 - Enable shadow.
CHR$ 6 - Disable shadow.
CHR$ 7+CHR$ x - Pause scroll for x/50ths of a second.
CHR$ 255 - Loop back to beginning of scroll.
When specifying colours, replace the 'x' by nine times the colour
required plus 64 for bright and 128 for flash. This gives an opaque
effect, obliterating the contents of the screen for a transparent
message. Use eight times the paper colour plus the ink colour. [This
paragraph doesn't make sense. JimG]
Example
For the terminally bewildered, the following example may clarify
things a little.
LET a$=CHR$ 1+CHR$ 56+CHR$ 2+CHR$ 9+CHR$ 6+CHR$ 4+CHR$ 0+CHR$ 32
+"THIS IS A SCROLLER!"+CHR$ 255
FOR n=1 TO LEN a$: POKE 50000+n-1,CODE a$
:NEXT n
SAVE "MEGAtext" CODE 50000,LEN a$
Still puzzled? Here's what all those codes mean.
CHR$ 1+CHR$ 56 - Foreground white.
CHR$ 2+CHR$ 9 - Background blue.
CHR$ 6 - No shadow.
CHR$ 4+CHR$ 0 - Top line of scroll is zero.
CHR$ 32 - A space, which must always begin the text.
"THIS IS A SCROLLER!" - Your text.
CHR$ 255 - Start scroll again.
Once everything has been loaded in, RANDOMIZE USR 65281 will start the
scroll, and RANDOMIZE USR 65330 will stop it again. The text can be
placed at any location of your choice below 64671 - just amend line 70
of the Basic accordingly ... [... and the CLEAR at line 5. JimG]
by Antony Purvis
Do you remember Antony Purvis? The bloke who featured extensively in
the July issue. And the August issue. Oh, and the September issue.
Well, in spite of being blindfolded, placed along with his Spectrum in
a padlocked straitjacket, sealed into a small sherry cask (full) and
hurled forcibly from a light aircraft flying at 20,000 feet above the
shark-infested mid- Caribbean, here he is again.
Megascroll is probably Purv's finest effort so far, and is definitely
the best message-scroller in the whole world. What other scroller is
interrupt driven, uses letters 64 pixels high and lets you specify
colours and shadow effects as control codes from within the message?
And all this as a background task while the rest of your program runs
as normal? None.
The Set Up
Firstly, type in the Basic loader and save it with:
SAVE "MEGASCROLL" LINE 5.
Follow this with the two hex dumps, via the hex loader, which should
be named "MEGAcode" and "MEGAintcon" respectively, respectably and,
indeed, respectfully.
Loadsanumbers
All that remains now is to tell the program what you want it to
scroll. The message is defined as a string, POKEd into memory and
saved after the rest of the code.
As well as mere letters and numbers, the string can contain embedded
control codes which will affect the way the text appears. The codes
can be placed at any point in the text, and are as follows:
CHR$ 1+CHR$ x - Set foreground colour.
CHR$ 2+CHR$ x - Set background colour.
CHR$ 3+CHR$ x - Set shadow colour.
CHR$ 4+CHR$ x - Set top line of scroll.
CHR$ 5 - Enable shadow.
CHR$ 6 - Disable shadow.
CHR$ 7+CHR$ x - Pause scroll for x/50ths of a second.
CHR$ 255 - Loop back to beginning of scroll.
When specifying colours, replace the 'x' by nine times the colour
required plus 64 for bright and 128 for flash. This gives an opaque
effect, obliterating the contents of the screen for a transparent
message. Use eight times the paper colour plus the ink colour. [This
paragraph doesn't make sense. JimG]
Example
For the terminally bewildered, the following example may clarify
things a little.
LET a$=CHR$ 1+CHR$ 56+CHR$ 2+CHR$ 9+CHR$ 6+CHR$ 4+CHR$ 0+CHR$ 32
+"THIS IS A SCROLLER!"+CHR$ 255
FOR n=1 TO LEN a$: POKE 50000+n-1,CODE a$
SAVE "MEGAtext" CODE 50000,LEN a$
Still puzzled? Here's what all those codes mean.
CHR$ 1+CHR$ 56 - Foreground white.
CHR$ 2+CHR$ 9 - Background blue.
CHR$ 6 - No shadow.
CHR$ 4+CHR$ 0 - Top line of scroll is zero.
CHR$ 32 - A space, which must always begin the text.
"THIS IS A SCROLLER!" - Your text.
CHR$ 255 - Start scroll again.
Once everything has been loaded in, RANDOMIZE USR 65281 will start the
scroll, and RANDOMIZE USR 65330 will stop it again. The text can be
placed at any location of your choice below 64671 - just amend line 70
of the Basic accordingly ... [... and the CLEAR at line 5. JimG]