Screen Saver

By Robert Sprowson

Originally published in EUG #35

This file describes the program SSAVER which is an event-driven screen saver for the 8 bit BBC micros using a 6845 cathode ray tube controller.


If not accessing the utility via the Utilities Menu, type *RUN U.SSAVER at the BASIC prompt.

The program will at first not appear to have done anything. This is because the screen saver is simply loaded, and not configured yet!

You can configure the screen saver to restore the screen on the occurrence of any event (see your User Guide under *FX14 and *FX13 for details of event numbers).

Next, at the prompt, type CHAIN"U.SSTEST"

This will run a really simple program demonstrating the use of a new OSWord call which sets up the screen saver to your requirements. In this particular case, it sets a delay of about ten seconds, restoring the screen with a keypress.

The technical details of the OSWord have been defined as follows:

Entry A = &E0
X and Y point to a 12 byte parameter block in memory
XY+00 = 10
XY+01 = 0
XY+02 = Two byte delay in 50ths of a second
XY+04 = 1st event number to unblank the screen
XY+0B = 8th event number that will unblank the screen
Exit Parameter block unchanged

A delay of 0 at XY+02 effectively turns off the screensaver.

Note that if you don't want eight different events to restore the screen, simply pad the other values with a duplicate of one you've used already:

  XY+00 = 10
XY+01 = 0
XY+02 = 5000 (about 100 seconds)
XY+04 = 2 (screen comes back when a key is pressed)
XY+05 = 7 (screen comes back when a serial port error occurs)
XY+05 = 7 (padding)
XY+05 = 7 (padding)
XY+05 = 7 (padding)
XY+05 = 7 (padding)
XY+05 = 7 (padding)
XY+05 = 7 (padding)

You may reconfigure the screen saver as many times as you want without having to *RUN the SSAVER program again, simply by calling the OSWORD.

Known Problems/Future Enhancements

No known problems


v0.90   Original development version
v1.00 Released to EUG, having fixed a problem with frame synch on proper computer monitors. (It was previously only tried on a domestic TV)
v1.15 Screen blanking does not interfere with the VDU queue, which could cause problems if the screen saver kicked in halfway through.
PRINTing text. Adjusted OSWORD block to ensure it is passed across the Tube correctly.

Manual And Software (C) 1997 SPROW
First published EUG #35