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]