Path: utzoo!news-server.csri.toronto.edu!cs.utexas.edu!usc!elroy.jpl.nasa.gov!decwrl!pa.dec.com!shlump.nac.dec.com!pinbot.enet.dec.com!ervin From: ervin@pinbot.enet.dec.com (Joseph Ervin) Newsgroups: comp.sys.handhelds Subject: New HP48SX Screen Dissolver Message-ID: <20721@shlump.nac.dec.com> Date: 5 Mar 91 00:57:16 GMT Sender: newsdaemon@shlump.nac.dec.com Organization: Digital Equipment Corporation Lines: 76 Hello all, 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. 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 a directory object in level 1. Just store this using any name you like. Then you'll probably want to go down into the directory you just created and copy the DISS program up into the home directory, so you can use it from any directory. 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 *************************CUT HERE*************************************** %%HP: T(3)A(D)F(.); "D9D20D4881D8A812BF8170140D9D208813026AC130A503223030A50322301192 004000A3D36D9D2044230C2A207200094E66716C69646027425F424024416471 6933A1B21301192038000A3D36D9D2044230C2A207200094E66716C696460274 25F4240244164716933A1B2130F7815322301192004000A3D36D9D2044230C2A 207200094E66716C696460205943445023596A756933A1B21301192038000A3D 36D9D2044230C2A207200094E66716C696460205943445023596A756933A1B21 3032230AEC8111920F780032230CCD20851008F14660AF38A850B478F14660AF 2DE109143818F09818F0981AF02174E78FB97601F56507147818F29818F2981A F08AF234FFF3094B9034FFF00D7AF0103104AF2311194B6031F0AE581AF13777 011CC6C6114C2818F220EF781AF0C81AF0B94F92819F2819F281AF0B81961AE4 80863A080857AE881AF1181AF1B8B280DE721081AF148AC298D3415081AF1AC2 135AF014B0E6011B13381AF10C213313514FBED0E650E6ABED15D001B2130B21 309C7D"