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$(n):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]

