SSS - Screen Saving System release 1.0 ©1988 Roundabout Software ---------------------------------------------------------------------------- Thought you had seen the end of screen save utilities on Amiga? Not by a long shot. Introducing three programs designed to help you get an IFF picture out of almost anything that can be on your screen. This archive contains the following : GrabViews 16552 (one shot screen save program ) GrabViews.info 779 (icon for the above ) TimeSave 21284 (timed screen save program ) TimeSave.info 1227 (icon for the above ) Memview2 33208 (scan memory for bitmaps ) Memview2.info 1283 (icon for the above ) Registration 2330 (the part you dont want to read ) SSS.doc 20711 (what you're gazing at now ) Accept NO substitutions. Preface ------- SSS was written to try to address some of the inadequacies of the many screen grab and snapshot programs currently available. For the technically oriented, all three programs work by starting in GfxBase and working their way through the list of active ViewPorts. A display does NOT need to be on an Intuition screen for the SSS programs to find it. Other screenshot programs that look for screens instead of ViewPorts are likely to not work properly if a program is directly manipulating the display as described in the RKM 'Graphics Primitives' chapter. Format of these documents ------------------------- The documents that follow are for the three programs that make up SSS, GrabViews, TimeSave, and Memview2. The programs are designed to each be in ascending order as to how hard it might possibly be to get at a screen. For example, if you have control of your computer while a program is running that you need a screenshot of, GrabViews will do the trick. If you can't do anything while the program is running, not even a hotkey, then TimeSave will save screens without your having to press a single key. If TimeSave will not work with the program you are trying to get a snapshot with (a desperate case indeed) then Memview2 is your last resort. Enough of the preface, onward to the instructions for each of these programs...  GrabViews 1.0 ---------------------------------------------------------------------------- GrabViews is the most basic form of these utilities. When run, the program will save all currently active displays with incremental file names. Operation is fairly simple, but the interface is different depending on whether you start from Workbench or CLI. Performance notes - CLI ----------------------- GrabViews runs from CLI with a single argument, the prefix for the filename(s) that the IFF's will be saved with. Since there can be many displays active at any given time, files are numbered incrementally in the following fashion : .VPXX The prefix is what you supply on the command line. The VP stands for ViewPort, and the XX will be a number, starting at 0. GrabViews does not check for files of the same name already existing, so use with care if you already have any similarly-named files in the same directory. If GrabViews cannot open a file with the name you requested, it will abort gracefully. Example usage would be: 1> GrabViews Picture Assuming you have two displays active (say the Workbench screen and a terminal program) you would have the following files written: Picture.VP00 Picture.VP01 These would go to the current directory. If you wanted to send them to another directory, just add the path to the prefix on the command line, for example: 1> GrabViews dh0:graphics/pictures/hello Would result in hello.VP00 and hello.VP01 being written to the directory 'dh0:graphics/pictures'. Starting GrabViews from the CLI with no argumncher, Relokit, or any similar cruncher. So what can this load-option do?? Well, it is VERY useful when putting demo's together, as you can save the Object code as Relocateable (CLI) code, and then, when you are going to crunch, you can load the code into any memory location you want. Useful for MegaDemos (I can tell...)!!. Also, you can crunch some games using this option, like Thundercats, for example, which is saved as one reloc-file. O - PLAIN: This option simply loads a file into memory, and makes no alterations to it's contents, I.E. you can load a text file, a picture, a sample or anything else into memory. Works like RI in SEKA. T - TRACKDISK: This option loads data straight from AmigaDOS sectors.It asks for OFFSET, and for LENGTH, these should be entered as even multiples of $200. The values are exactly like those put into the ExtTDIo structure when doing bootblock loaders etc. Useful when crunching games!!! You can go on loading files/sectors as many times you want. When you are finished with the loading of data, just press return, and TetraPack will start it's REAL work... When it is finished with the crunching, it will display how big the crunched file is, and how many bytes was won, press RETURN to continue. Now TP asks you to enter the JMP/JSR address, which simply is the starting address of your code (start of program). When you have entered the JMP address, you will be asked: Next TetraPack asks something like: Flash-register: etc.... Here you choose in which color register the depacker should place the flash values, $00 is background, $01 foreground 1 etc. To get rid of the flashing, simply select $10. (Not used on workbench screen). Next TetraPack asks: PRO-DECRUNCHER? (Y/N): If you want the 'pro' version of the decruncher, then answer yes, if you don't, just press return, or answer no. If you select the pro-decruncher, you will have the same decrunch-possibilities as in the MEGA version of the cruncher. If you are working in MEGACRUNCH mode, or if you answered yes on the question above, you will now get some further questions, these are described later. At this point TetraPack asks for a name, which is the name of the crunched file. If you don't want to save the crunched file, just press RETURN, or enter NIL:, to avoid saving. Next TetraPack asks if you would want to save again, answer Y or N. If you answer No, TetraPack will ask you: Want to run? (Y/N): If you answer Y here, TetraPack will run the packed program with- out reloading it. If you answer NO, TetraPack will end. MEGACRUNCH -------------- NOTE: Before using this option, you have to remove the fastmem from the SYSTEM. Note: NOT physically, use the TETRAGON NoFast program, or the C.C.S. NOFAST BOOT. No other programs will work, because they don't remove EXEC.LIBRARY etc from fastmem. This option needs 1 MegaByte of memory, otherwise it works exactly as 'mini' crunch, but for these questions after JMP-address: DMA : Simply the value to load $dff096 (DMACON) with before jumping to the start of the code. ADK : As DMA, but the address is $dff09e (ADKCON). INT : As DMA & ADK, but the address is $dff09a (INTENA) STACK : Enter the desired stack pointer. In other words, the value to load register A7 with. STATUS REG.: Enter the desired value to load SR with before jumping to start of code. DECRUNCHER LOCATION: Enter the address where the decruncher is to be located, this should be at least $40 lower than low-mem, or equal or higher than the hi-mem. The deccruncher should though not be located at a higher location than $7ff00. NOTE: At the start of the decrunching, the decruncher loads registers $dff096, $dff09a and $dff09e with $7fff, thus disabling EVERY interrupt, all DMA and clears all ADK stuff. Therefore, you will have to enable ALL interrupts, DMA, and ADK in the program, or by setting the appropriate bits in the values entered in the cruncher. Most games, however, should be entered with all this stuff disabled. NOTE II: The mega-decruncher also turns off the drive motor before starting the decrunching. RESULTS --------- How efficient is the TetraPacker compared to other packers??? Well, here's some figures aquired crunching Katakis with megacrunch on, and crunching with mega-pack in Flashpacker and also the sizes aquired when crunching with Byte-Killer. One should note that the only version that worked by just crunching it straight away, without any patches or transferrers was, yes, TETRAPACK!!! Scan-W. TP-TIME/Size RSI-Time/Size Byte-Time/Size $0080 1:00, 89252 1:10,92908 1:00, 96224 $0100 1:40, 87112 1:50,89168 1:45, 91216 $0200 3:00, 85132 3:15,86828 3:10, 88124 No time to check $0400 out!!! $0800 11:20, 84660 11:30,85216 12:05, 86704 $1000 22:00, 84812 22:10,85216 Not Available $2000 43:40, 85108 Not tested Not Available By these figures we can quite easily see that TETRAPACK is THE BEST!! Just compare TP's $0200 to ByteKiller's and RSI's $0800 - better result, but only taking one fourth of the time!!! We can also see, that $0800 is the very best ScanWidth to choose, because when a bigger value is chosen, the files also become bigger!! EXAMPLE --------- If you want to check this out by yourself, then the file 'Katakis.c0' lies on this disk, it contains all the code on the first Katakis diskette. Use the following parameters: IF YOU HAVE 1MB: Execute 'NoFast'. (Disables system use of FASTMEM) MEGACRUNCH: YES Lo-Mem: $c0 Hi-Mem: $78000 Scan-Width: $xxx Load-Type: o FileName: df0:Katakis.c0 Load-Address: $c0 JMP-Address: $c0 Flash-Register: $00 DMA: $7fff INT: $7fff ADK: $7fff Status: $2700 Stack: $7fffe Decruncher: $7f000 FileName: xxxx IF YOU HAVE 512K: ------------------ MEGACRUNCH: NO Lo-Mem: $c0 Hi-Mem: $50000 Scan-Width: $xxx Load-Type: o FileName: df0:Katakis.c0 Load-Address: $c0 JMP-Address: $c0 Flash-Address: $00 PRO-DECRUNCHER: YES DMA: $7fff INT: $7fff ADK: $7fff Status: $2700 Stack: $7fffe Decruncher: $7f000 FileName: xxxx Run it, insert Katakis datadisk in DF0:, then watch it run!! HINTS AND TIPS... ------------------- x Read this instruction through before using the packer to avoid misunderstandings. x If you only have 512K, and a program is too big to be crunched (Fails to allocate memory), try using a program like Add21K, also called RemBP. If this fails, disconnect all extra drives and when re-booting hold down CTRL and D simultaneously, when 1> appears, run Add21K, then type TetraPack and try crunching your program again.If this fails, then there's nothing more to do! x If you are working on a project and need to crunch it now and then, why not write a TetraPack SCRIPT file?? Enter a editor like TXEd (lies on this disk) or Ed on WorkBench, and type in your info like this: (separated with RETURN's) USE NO EMPTY LINES BETWEEN PARAMETERS (except when the inst- ructions tell you). Y or N (MegaPack desired??) LoMem (in hex, don't include $) HiMem (also in hex, don't include $) Scan-Width (as above) for each file/sectors: T/O/R (Track, Ordinary, or Reloc) FileName (not when doing TrackLoad) LoadAddress (in hex, no $ included) and if TrackLoad: Offset (as above) Length (as above) (Two blank lines here to end file/track loading) JMP-address (in hex, no $ included) FlashRegister (as above) If not MEGACrunch: Y or N (Use MEGA-depacker??) If MEGACrunch or MEGADepack: DMACON (DMA ENABLES) INTENA (INT ENABLES) ADKCON (ADK ENABLES) Status (SR Value) Decruncher (Decruncher location) And then: SaveFileName (save filename) Y/N (Save again? (NO!)) Y/N (Want to run when saved???) Save the file, and then, when you want to crunch using the SCRIPT file, enter: TetraPack , joystick or mouse right Dive S, joystick or mouse forward Climb X, joystick or mouse back Increase speed SPACE or hold right mouse button then forward Decrease speed / (slash) or hold right mouse button down then back one Cancel roll press on right mouse button Pitch and yaw maneuver requires bi-digital play on keyboard model (<,>,S,X) Notice the small dot moving around inside the large circle on the dials. This is your compass; the dot corresponds to the position of the space station. If the dot is small then the station is behind you. When the dot is large and in the center of the circle, you should be able to see the space station directly in front of you. Practice rotating the space station off the screen and using the compass to find it again. You might see some Cobra Class ships. These are other traders like yourself, and will not harm you unless you shoot at them. If you do this they will either attack or, alternatively, run away. Should you use them for combat practice, do not expect the space station to turn a blind eye to such unruly behavior. Nothing will attack you while you are within sight of the space station - unless you make a nuisance of yourself. - 6 - It is not possible to land on the planet, and flying into planets or space stations is fatal. The altimeter shows your height above the planet's surface, and you should not let it fall too low. (If you are a new pilot, now is your best chance to practice docking maneuvers with the space station at Lave. The Lave Orbit Space Authority permits an unlimited number of practice runs by newly appointed pilots, and does not charge. This facility is suspended during attack, or when the Coriolis station has no free docking space. CONSOLE READINGS (bars to the left of the flight grid scanner) 1. (FU) Fuel level. 2. (CT) Cabin temperature will increase and the console register this when your ship flies too close to a sun. 3. (AL) Altimeter. You altitude above your destination planet can be crucial. Flying too near its surface will be fatal. (flight grid scanner) 4. (x1 - upper left corner of scanner) Radar Magnification. 5. (S) S refers to the space station and indicates that you are on target for it and within its protective range. 6. Compass (upper right corner of scanner). This instrument first picks up a target planet while it remains out of range of the main flight-path scanner. When the planet's space station nearest to you comes within range of it, the compass picks up that instead. When the dot is small, the object is behind you; when large and in the center of the compass circle, it should be visible through your front viewfinder. 7. Flight grid scanner. This sophisticated instrument displays a three- dimensional view of space in the immediate vicinity of your ship, seen from a point behind and above it. The precise position of any ship within its range can be pinpointed. (bars to the right of the flight grid scanner) 8. (SP) Forward velocity should be maintained at maximum on planetary approach. Keep it low during space station approach, and minimal for final docking. 9. (RL and DC) Gyro orient bar indicators show right/left roll and dive/ climb status. - 7 - MAKING FOR YOUR TARGET WORLD Hyperspace and Related Controls Having left the space station you will be in low orbit above the planet Lave, moving at low velocity. Decrease your velocity to absolute minimum before coding the astrogation console for Hyperspace Jump. During space flight only, F1, F2, F3, and F4 provide access to views all around your ship. Use F5 or F6 to display a chart (galactic or local, respectively), and move the smaller cross to choose a larger planet, press F1, then hit H. After a short delay, the hyperjump motors will engage. On arrival in a new planetary system, after transit from hyperspace, you will find yourself at some distance from your target world. This conforms with GC Flight Law. Even in the safest systems there can be unseen dangers, and you will be well advised to approach orbit space, and the safety of the space station, as quickly as possible. Increase forward velocity to maximum. At this point you can take full advantage of the space-skip facility (J). Inter- space jumping does not function (because of interference patterns) if there is another ship, a planet or a sun in the immediate vicinity. Soon your ship's computer will pick up the beacon signals of the nearest orbital space station and will re-engage the compass to track that instead of the target planet. Once the Cobra is within scanning and protective range of the Coriolis station, the flight-grid scanner will begin to track it. Its own defenses are now available for your protection. The scan console will register the letter "S" as long as the space station is within range. Hyperdrive Across Galaxies The intergalactic hyperdrive is expensive and can be obtained only from planets at Tech level 10 or higher. It can only be used once, and will take you to a system in a whole new galaxy (i.e. a new F5 map). There are 8 such galaxies and making 8 jumps will return you to your starting galaxy. The Inter-Galactic Hyperdrive is engaged by pressing G then H. - 8 - DOCKING PROCEDURE Docking with a Coriolis space station is never easy, unless the ship is equipped with an automatic d