(Comp.sys.handhelds) Item: 2308 by ervin at pinbot.enet.dec.com Author: [Joseph Ervin] Subj: New HP48SX Screen Dissolver Date: Mon Mar 04 1991 22:54 [NOTE: For a cute demo of DISS in action, see DISSDEMO. Also, the CLK program by Dave Marsh uses DISS within a library. -jkh-] Sorry for reposting this program so soon, but I found a potential bug and I wanted to kill it before it bit anyone. While I was at it, I shortened the program by around 50 bytes, and improved the speed of the bit-wise dissolve from 5 seconds down to around 4.2 seconds. Enjoy! >>>Joe ************************************************************** 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. 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). :-) It is written in a combination of system RPL and machine language (like Bill Wickes' ASC routines themselves). 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 nice effect. Enjoy! >>>Joe Ervin