G I F S P C The GIF to Atari Spectrum 512 Picture Converter by Steve Belczyk, SysOp of the Genesis BBS, (508) 664-0149 (Four lines, fifty megs) Permission is granted to distribute this program freely, provided that this documentation file accompanies it, unaltered. Commercial use of this product is prohibited without permission of the author. Introduction: For over a year I've been converting GIF pictures into Spectrum 512 format for the Atari ST using two kludgy programs I wrote a long time ago. After receiving several requests, I finally munged them together and cleaned up the result. Here it is, at last! Operation: Those of you who are familiar with my IFFSPC program should feel quite comfortable using GIFSPC. If you haven't been using IFFSPC, however, here's how to use GIFSPC: GIFSPC must be run in low resolution. It also requires a few big buffers, so, if you're using a 520, get rid of that ramdisk and those greedy desk accessories. After the tacky title page, you will be presented with the usual file selector dialog box. Select the GIF file you wish to convert. After selecting the victim, you will be tersely asked if you would like dithering. Pictures almost always look better dithered, so YES is most likely your best bet. It's also the default. More on dithering below. The screen will clear, the input file will be read, and then decompression will begin. This can take a while, especially for big files. When decompression is completed, row after row of ghastly colors will be plotted. DON'T PANIC! These colors bear little resemblance to the ultimate appearance of the picture. Nevertheless, I love to try and guess what the picture will look like by scrutinizing these pseudo-colors. Once the screen has been entirely painted, the disk drive will come on again. GIFSPC is now trying to write name.SPC (assuming you chose name.GIF as the input file). ANY EXISTING name.SPC WILL BE CLOBBERED! If all goes well, a message indicating success will appear. At this point you'll rush off to try the pic with SPSLIDE or SPECTRUM. I hope it turned out well. Error messages: "Can't open input file." This one's pretty straightforward. Either you specified a file that doesn't exist or it is badly damaged. "Premature EOF." The GIF file is too short. Most likely cause of this error is an incomplete file transfer at some point. "Not a GIF pic." The 6-byte header of the so-called GIF file indicates that this is not an GIF file. I get this if I forget to de-ARC the file. "Bad GIF file." At some point during decompression, the GIF file violated the rules of the compression algorithm. "Can't open output file." The Fcreate failed on the output SPC file. Either the disk is full, damaged, or write-protected. "Write error (disk full?)" GIFSPC couldn't write the entire SPC file. The disk is either full or damaged. Theory of operation (or, Why they don't always turn out great): Each horizontal scan line of a GIF picture can contain as many as 256 different colors. Spectrum, on the other hand, permits a maximum of 42 colors per scan line (plus black). So, GIFSPC's main task is to take a line of as many as 256 colors and somehow "dissolve" it into a line of no more than 42 colors, while preserving as much of the quality of the original pic as possible. To make matters worse, Spectrum does not allow any pixel on the line to have any of the 42 colors. Each pixel has only 14 colors to choose from. This can make life pretty miserable for GIFSPC. Generally speaking, the way GIFSPC handles this is to sort the pixels on the scan line by how popular each desired color is on that particular line. In this way, popular colors get the most attention. The remaining, less popular colors are simply assigned the popular color that is the closest fit. It is unavoidable that what GIFSPC thinks is an unimportant color may turn out to be a color that we humans think is very important. This seems to happen most often in pictures with faces; the bridge of the nose occupies very few pixels, but it is exactly where we tend to focus on a face. GIFSPC thinks these pixels are unimportant, hence you may wind up with an unsightly blemish on the nose. (To those of you who have used IFFSPC: This effect is much less likely when converting GIF files since GIF files have a maximum of 256 colors per scan line, versus the Amiga's 640 colors.) More on dithering: Even the magic of Spectrum could not improve on the fact that the ST is limited, in hardware, to a total of 512 colors, three bits for each of the primary colors red, green, and blue. The Amiga sports FOUR bits for each primary, giving it 4096 colors. This is a significant difference. GIFSPC (and Spectrum) use a technique called "dithering" to increase the number of available colors. To render an Amiga color that the ST can't produce, every other pixel is assigned one of the two closest ST colors. This works much better than it may sound. I find that the patterns introduced by dithering actually contribute to the overall quality of the picture. Here's the rub: Dithering can nearly double the number of colors that GIFSPC has to deal with on each scan line. That's why you are given the option to dither or not to dither. If a picture does not turn out too well dithered, cross your fingers and try it without dithering. Good luck with the program! Steve Belczyk P.S. You can reach me electronically any of these ways: CompuServe: [75126,515] Genie: sbelczyk UUCP: {harvard,vaxine}!bunny!seb3 CSNet: seb3@gte.COM BBS: (508) 664-0149 (1200 baud) SteveNet: GENESIS:Steve1 (508) 664-2214 (2400 baud) 1/1:Steve1 ----- Attention Bulletin Board SysOps! ----- The most powerful BBS software ever written is available now for your Atari ST or IBM compatible. Announcing... S t e v e N e t ! The three Steves have combined their efforts and developed the BBS program the world has been waiting for. Here are some of SteveNet's unique features: o Multi-tasking: SteveNet supports multiple modems. In addition, the system console is always available for your use. You may log in, read messages, and perform system maintenance while other callers are using your system. o Networking: More than just the ability for one BBS to connect to another, SteveNet brings advanced computer networking concepts, hitherto available only on mainframe computers, to the micro- computer community. Network message bases, network games, network chat, and network Email are all possible. o Forth: SteveNet includes a complete, no-holds-barred, multi- user Forth program development language. You and your callers can write games, utilities, and even programs that communicate with one another over the network, using Forth. o User Interface: SteveNet offers two extremely powerful user interfaces: a command language and a menu system. You can create your own hot-keyed menus, with each key assigned to any sequence of shell commands. The command shell supports batch files, command aliasing, variable substitution, and background execution. o And much more: Real-time chat (including network chat with an unlimited number of other SteveNet nodes), unlimited zero- maintenance message bases, Email, Xmodem and Ymodem transfers, FidoNet compatibility, a dumb terminal mode to allow outgoing calls (and file transfers!) on unused lines, full file and user security functions, and lots more. SteveNet is currently running on both IBM compatible and Atari ST machines. Macintosh and Amiga ports are planned. In the hacker spirit, SteveNet is very reasonably priced. For less than you might spend on a single game, your BBS can join the SteveNet! SteveNet authors: Steve1 (Steve Belczyk) Steve2 (Steve Gerakines) Steve3 (Stephen Agneta) For more information on SteveNet, please contact me at one of the electronic addresses given above. Steve1 --------------------------------- 8< ---------------------------------------