RTAP 1.0 A Real Time Anim Player © 1991 Sebastiano Vigna RTAP is a very simple ANIM 5 player. It should work with any animation file, as long as it is a correct ANIM 5 FORM (what can "correct" mean for a mess like the ANIM specs, I leave you to imagine). It has some very simple parameters, like the relative timing of the frames and the number of times a "loopable" animation should be played. RTAP works under both AmigaDOS 1.3 and 2.0. Why "Real Time"? Well, the main property of RTAP (and its reason of existence) is that it doesn't need the animation to be in RAM in order to play it. It simply needs two buffer as large as the largest BODY/DLTA chunk in the ANIM, and that's all. The animation will be loaded while playing it. Don't expect to see perfectly smooth 16-colors hi-res overscan filled-with- moving-stuff anims to go smoothly at 30 fps, but on a A3000 25/100 you could be pleasantly surprised. RTAP does its best in order to use all the concurrency of the Amiga system, i.e., the Copper, the blitter, the 68000 and possibly the DMA of the device which contains the ANIM file work together to put the ANIM on the screen. Some compromises had to be done. For instance, RTAP will (gently and intelligently) poke into copperlists. The overhead for a LoadRGB4() each frame is absolutely unacceptable. I hope my implementation will survive to future versions of the OS. The syntax of the command is: RTAP [BUFFER ] [TIMES ] [RELTIME ] [PRIORITY ] The anim file is of course the file you want to see. BUFFER lets you choose a size for the buffer used while loading the ANIM. If you choose a buffer big enough to load the entire animation, you get something like a normal ANIM player (the "like" is due to the fact that the animation will be anyway probably loaded in two steps, and during the second one the first part of the animation will be displayed). TIMES lets you see an ANIM many times. Note that not all ANIMs are loopable---the two last frames have to be equal to the first two ones. RELTIME sets the number of video frames which has to pass between each ANIM frame (if RTAP can keep up, of course). Consider that PAL is 50Hz, NTSC is 60Hz. So RELTIME 5 is 10fps (frames per second) in PAL but it's 12fps in NTSC. If no RELTIME is specified (or if you specify RELTIME 0) the timing data contained in the ANIM will be used. Note that the reltime field of the AnimHeader struct is specified in 1/60s, so on a PAL machine an animation will be slower (5/6 of the original speed). PRIORITY sets the priority of the tasks spawned by RTAP (one for the decompression and one for I/O). Usually they are at priority 10 and 9, respectively. This value should be carefully chosen depending on the device you are using. The decompression task will get the priority you specify, the I/O task will get the same priority minus one. Usually the best thing is a number equal (±1) to the priority of the task which manages the device. For instance, I find 4 is good for floppies (5 causes *horrible* noises). Also, if you're reading from floppies you should always use FFS and something like 30 RAM buffers. The code for the ANIM 5 decompression is the public domain code by Jim Kent, slightly modified in order to make it work with the SAS Assembler. This work has been partially supported by DigiMail s.r.l., Milano, Italy. This software is provided "AS IS" without warranty of any kind, either expressed or implied. By using RTAP, you agree to accept the entire risk as to the quality and performance of the program. RTAP is © 1991 Sebastiano Vigna and it's freely distributable as long as all of its files are included in their original form without additions, deletions, or modifications of any kind, and only a nominal fee is charged for its distribution. Sebastiano Vigna BIX: svigna UUCP:...{uunet|piramid|rutgers}!cbmvax!cbmehq!cbmita!sebamiga!seba Via Valparaiso 18 I-20144 Milano MI