The MatriQx - another useless Screen Saver

V0.01. Only for high colour SMSQ/E systems.

                 This is a useless toy! Use at own risk!

One exceptionally dreary Sunday afternoon this winter, recently re-inspired
by the Matrix movies, this little program emerged:

The MatriQx is a screen-saver type thingy. Of course it is nothing like
the real Matrix display, only a nod in that direction. For starters there
are no QL kana founts.. But I think it looks cool, and it can have a calming,
even hypnotic, effect..

It can be used as a module under CueDark.

Simply unzip into your screen saver directory or wherever. The
unzip program should create a sub-directory under that called fnt_, where the
included founts will be copied.

If you run it as a stand-alone program, eg with EX or off a hotkey, you can
interact with it while it is running by pressing certain keys, as follows:

        1       => Selects the Green colour scheme
        2       => Selects the Blue colour scheme
        3       => Selects the Red colour scheme
        4       => Selects the Orange colour scheme
        5       => Selects the Grey scheme
        6       => Selects the Monochrome scheme

        B       => Selects the Binary character scheme
        M       => Selects the Multiple fount and character scheme
        S       => Selects the Single (other) fount scheme

        F1      => displays help and statistics
        DO      => (mouse) cycles through various schemes
        ALT     => (on its own) as above, without disturbing CueDark *
        SPACE   => and any other key pauses
        ESC     => exits the program

* In QPC2 this ideally requires the Windows keyboard driver, not the
SMSQ/E one, to be set in the configuration panel, else the keypress is
registered outside the emulator too!

Repeated presses cycle through side options. Selecting M 1, will get you as
close to the Matrix theme as it gets with this program.

To put The MatriQx on a hotkey, you could do worse than:

        ERT HOT_THING1("[",'SBASIC';'LRUN"<path>MatriQx_bas"','MatriQx')


        ERT HOT_LOAD1("[", "<path>MatriQx_obj"','MatriQx')

substituting your local details for <path>.

Note: As it stands, the fnt sub directory always has to be located in the
Home directory, ie in the same directory MatriQx was called from.

There are a few easily acessible items that can be configured directly in
the source code, such as the speed, spacing, character size, etc.
Instructions included in situ; or RTFC!

The default configuration is set to cycle through various schemes at
random intervalls. It shouldnt be too difficult to change the code to
circumvent the default and display only your favourite theme(s).

Randomness, or the appearance of it, within the constraints of the
conceptual framework, was a central design goal. Most of the functions of
this program have randomness built in, and these can be fiddled with to
your hearts content.

Finally, you could try different founts and the like, or write your own
code to add various effects. To produce a more Matrix(r)-like appearance
shouldnt be too hard..

Finally, finally, you could write your own screen saver, or go mow the
lawn or something - or like me, just sit and stare at the MatriQx.

Now for a reality check. The MatriQx will probably not save your screen,
but will almost certainly waste your electricity! (And with any luck, your
time). On QPC2, not to mention SMSQmulator, it greedily uses a whole CPU
core to the full. Presumably, a massive amount of translation between PC
and QL screen memory is going on in the background. I guess native hardware
may fare a little better. So all its good for, really, is to fiddle with
it and to watch it, for those who are thus inclinded. This is a toy! It has
no purpose, no meaning and proves nothing! However, it was fun to make ;)

The program can be made to compile with both Qlib and Turbo.

The founts where lifted from Dilwyn's super site at - and
there are plenty more to be had! They were unattributed other than that,
of the four founts included, the UPSIDEDOWN and ALIEN founts came with the
Page Designer packages.

Enjoy your flight!

          ©pjwitte 2oi5