Subject: Here's something for your server.
Status: OR

Wayne,

In case you didn't have the opportunity to get this from C.S.H, I'm forwarding 
a copy of my screen dissolver directly to you, so you can add it to your 
archives.  This is the most recent version, and I don't anticipate releasing 
another one in the immediate future.

>>>Joe Ervin

**************************************************************************

Hello all,

The following is a new version of my screen dissolver.  This version (0.2) is
slightly faster than the original version posted recently, and is roughly 50
bytes smaller.  The ASC encoded program appears at the bottom of this message. 
A future release may allow dissolving into the menu area when viewing the
stack, if people think that would be useful (let's hear some feedback :-).

The program takes two arguments:

2: real number (zero or one)
1: GROB (131x64)

The program will do different things with the GROB depending on whether a 1 or
a 0 is in level 2.  If level 2 contains a 0, then the program will do a
bit-wise dissolve of the GROB on level 1 into PICT.  The idea here is that you
would use DISS in a program  after previously displaying some graphic image via 
PVIEW.  When you execute DISS, the new graphic on level 1 will replace the
graphic currently on the display 1 pixel at a time, in a random fashion.  The
program currently requires both the GROB on level 1 and PICT to be 131x64.  Any
other dimensions will generate an error message.  

If a 1 is on level 2 when DISS is executed, then instead of doing a bit-wise
dissolve, it will do what I call "tiling".  In this mode of operation, the
program will move random _nibbles_ from the level 1 GROB into PICT, rather than 
doing one bit at a time.  The effect is slightly different, and it runs around 
5 times as fast as the bit-wise dissolve (4.2 seconds for a bit-wise dissolve, 
and around .9 seconds for tiling).  I think both modes look pretty cool (of 
course). :-)

Well, below is the code in ASC format.  It is written in a combination of
system RPL and machine language (like Bill Wickes ASC routines themselves). 
When you ASC-> the code, you'll have the program in level 1.  Just store this
as DISS, preferably in your home directory so you can access it from anywhere
in your directory structure. 

I thank Jan Brittenson for his assistance during this endeavor.  I could not 
have finished this project without his wonderful STAR assembler and his 
expert advice on writing machine language and system RPL code.  Also to be
credited are Alonzo Gariepy, who did much of the pioneering work on the saturn
processor, and Derek Nickel, who has provided a wealth of information regarding
system RPL programming on the 48SX.

I will be watching the conference dilligently for feedback, and ideas for
improvement. I found it a simple matter to include this function into TETRIS so
that the startup screen dissolves into view, producing a neat effect.

Enjoy!

>>>Joe Ervin
