YOUR SINCLAIR, October 1989
Program Pitstop


= = = = = = = = = = = = = = = = = = = = = = = = = = = = 


FRACTAL TRIANGLES
by Miles Kinloch

Do you remember my request for fractal programs a few issues ago? How
utterly lethargic. Well, Miles Kinloch did, and he's sent in this wee
proggy which was inspired by something he saw on telly.

Fractals can take many forms, but essentially they are all pretty
patterns created by repeating a simple rule loads of times. They have
the property that no matter how closely you look at them there will
always be further levels of complexity for you to zoom in on. They
also tend to be self repeating, so any given chunk of fractal will be
made up of smaller versions of itself. Something like that anyway.

Miles's program generates one of the simplest and better- known
patterns. The listing is mostly made up of REMs to let you know what's
going on, which means it's shorter than it looks and I don't need to
explain it all. Type it in, run it and watch as the pattern slowly
appears.

Now who's written a Machine Code Mandelbrot generator?


= = = = = = = = = = = = = = = = = = = = = = = = = = = = 


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]

