Please stop right now and make a backup copy of these programs on a floppy disk. And activate the Write Protection on that disk !! SSTV/FAX480/WEFAX SYSTEM for IBM and CLONES Copyrights 1993, 1994 Ben Vester This system includes a receiving and transmitting program for Amateur Radio Color Slow-Scan TV and FAX480 and a receive only program for high resolution weatherfax. The so-called SSTV as being used today is really nothing more than color facsimile, so all of these systems are alike in that only one image is transmitted at a time and they all use 1500 hz to 2300 hz as limits for the modula- tion audio. The system is basically software-based, with the only hardware required being a very simple audio clipper interface between the receiver and the computer's serial COM port. The com- puter facsimile input and output to the amateur transceiver is transformer isolated to avoid grounding and noise problems. Details of the interface are contained in Sept. 1991 "QST" and in Jan. 1994 "QST". There was an error in the schematic in the Jan. 1994 arti- cle, however. The Transmit audio comes out of the Serial interface on the RTS pin, NOT the CTS pin. That is, the Transmit coupling capacitor connects to pin 7 on a 9-pin connector, NOT pin 8. RTS comes out on pin 4 on a 25-pin connector. An early draft of the 1994 article is contained on this disk under filename, ARTICLE.TXT and should be read for other needed information. Doing all of the fax demodulation in the computer requires a 80286 or higher class of computer with higher clock speeds helping the quality of the images being transmitted and received. All of the programs except the Wefax program could be handled in the minimal 640 Kb. of RAM but to get any reasonable speed in manipu- lating the images after reception a minimum of 1 megabyte of RAM is needed. For copying Wefax, 4 Mb. is needed for easy copying and manipulation. 2 Mb. is almost enough to copy a full pix. A RAMDISK should be created on your computer before trying to run the pro- grams. Just add a line to your CONFIG.SYS file as follows: For 1 Mb. system: device=c:\dos\ramdrive.sys 368 512 64 /e For 4 Mb. system: device=c:\dos\ramdrive.sys 3072 512 64/e If you must coexist with Windows (uses 2 mb.) 3072 is 2048. With less memory, you can use batch files (described below) to remove Windows from CONFIG.SYS and AUTOEXEC.BAT when you are using SSTV. When you reboot the system take note of what letter designation the computer assigns to the RAMDISK as you will need to tell the fax program what that is. Now if you only have 640 Kb of RAM you can use the hard disk "c" as the designated drive but it will be very slow in manipulating the color images and won't work at all on Wefax. Even a floppy drive can be designated but it will be ridicu- lously slow. High resolution color pix's with 3 bytes per pixel require a lot of memory, so the old PC's with minimal memory just won't hack it. Timing is extremely critical in decoding the fax modulation. We use the computer's TIME clock and since it is needed full-time during the actual copying, you may have to sacrifice other time- related functions while using the programs. Also, since we need both the TIME clock and most of the memory for our copying task, the program may not work properly if your system is loaded up with TSR resident programs, particularly ones that use the TIME timer or occupy any appreciable memory . This is a common problem with programs using SVGA graphics and I notice that my 8 year old grand- son has already learned how to unload the resident programs from his computer in order to get his favorite game programs to play. Some resident programs may look like small memory users but they often use the TIME clock continuosly, so they may interfere with the timing functions in the program. This depends on how fast the computer is. If it's very fast, it may accommodate both functions without interference. For example, with my 33 mhz 80386 computer, I can accommodate the excellent screen saver, "BLANK-IT", without interference. With a slower computer, that might not be possible. When I use my Computer Eyes/RT frame-grabber, however, I even have to remove the screen saver. These resident programs can be located in your AUTOEXEC.BAT file for your perusal. The easiest way to remove them and add them back is with two batch files, STARTTV.BAT and STOPTV.BAT. First, you copy the present AUTOEXEC.BAT into a AUTOEXEC.REG file. That is: c:>copy autoexec.bat autoexec.reg Then you create an AUTOEXEC.TV file that only contains the absolute minimum (ie, NO resident programs). The STARTTV.BAT will consist of one line: copy c:\autoexec.tv c:\autoexec.bat After you run STARTTV.BAT, you reboot and are ready to go. To restore the computer to normal, use STOPTV.BAT with this single line: copy c:\ autoexec.reg c:\autoexec.bat You, of course, could just type the single line each time, but using the batch file minimizes your chances of losing your present AUTOEXEC.BAT file information. If you have Windows installed and are working with limited RAM, you can add the CONFIG.SYS changes to eliminate Windows temporarily to these same START/STOP batch files. Once you have the system working, you might want to add back a screen saver for use with TV and see if it messes up your system. Another DOS resident program that is extremely useful to speed-up the continuous file manipulations in this program is SMARTDRV, so try to squeeze it in. SMARTDRV, unfortunately, does interfere with the two big memory programs that copy data directly to the RAM- DRIVE, namely, Wefax and Mode 96 ColorFAX. You can avoid that by excluding your RAMDRIVE. If, for example your RAMDRIVE is "d" then add a modifier to your AUTOEXEC.BAT as: SMARTDRV.EXE/-d: to exclude the d: drive. A new source of troublesome "TSR" programs have shown up in some of the newer 486 machines. These are actually "wired in" to the system (in ROM, I presume) and are turned ON or OFF in the selection panel for CMOS. In particular, the transmit function has been affected by some of these. While the receive program only uses the TIME clock, the precision needed for the transmit can only be obtained using the processing speed. We calibrate the processor speed against the TIME clock and then use the processing speed as the reference in the actual generation of the transmit output. This then becomes susceptible to varying processor speeds due to proc- essor cache, etc., so these functions need to be turned off. We have made a transmit program which only uses the TIME clock but it has much more jitter than the mechanization we picked. Almost every function that typically goes in as a "TSR" uses the TIME clock to trigger it's periodic status check. Even the common EMM386 has been reported as causing a problem. Once you eliminate these "jitter" sources by turning them off, however, you will have transmit stability that will match anything available. See Experimenter's Info below for further details on more obscure transmit problems. The programs were developed for use by the experimentally inclined radio amateur. It uses GWBASIC to interface with the user, so you will need a copy of GWBASIC.EXE (note:some have tried using GWBASIC that was used on Tandy machines and it did not work. I've used versions 3.22 and 3.23, both created for true IBM clones.). The guts of the program are contained in machine language programs which are called up by the BASIC program as needed. To accommodate the wide variety of modes, the system parameters are changed by inserting POKE's in the BASIC program, a different set of POKE's being used for each mode. This allows experimenters with only a modest amount of skill in BASIC to create new modes, or adapt to additional modes that others have created. Even if you have no previous experience with BASIC, I recommend you LIST out the pro- grams and study them to find how easy it is to make mods. I have even included some motivations--like getting your own call sign on the pix you transmit, instead of my call sign--to encourage you to learn a little about hexidecimal numbers, about 2 color image formation, and about changing the program. To call up the frequently used programs directly from the DOS line you can use simple batch files. For example, to LOAD in GWBAS- IC, then LOAD in VU.BAS, and then RUN the program, you can create a batch file, VU.BAT, with a single line: gwbasic.exe vu.bas Now you just type VU on the DOS line to access the program. A number of these batch programs are included on this disk. Each of the programs has a fairly good description of it's operation on the opening screen, so you should read both that data and the data below to fill out your understanding. Also each BASIC program is supported by one or several machine language files. You can identify these by looking through the BASIC listing to find the BLOAD command followed by the name of the .ASM file. These ASM files must be in the same directory as the BASIC program so it can find them. I recommend you make a separate directory (ie; c:>MD TV and then c:>CD\TV) and copy all the files into that directory. In the different programs described below, you are often asked to hit certain keys. The program assumes you are keying the lower case letter, so make sure that you don't have the CAPS LOCK on! They are capitalized in the writeup strictly for emphasis. VU.BAS You need to find out how to see pictures on the screen before you can do anything, so we'll start with the viewing program. First activate BASIC; ie, c:\tv>gwbasic.exe and then when the BASIC screen comes up LOAD"VU. You actually hit F3 and then type VU---right here is where you can go astray and why you need backup copies. If you inadvertently hit F4 instead of F3 you will SAVE"VU---which means you will save a blank sheet under the title VU.BAS, writing right over the real VU.BAS program---another reason it helps to use batch programs for normal use. Now hit F2 to RUN the program. Read the first screen and then select the mode and give the file name of the sample picture. Note that the mode suffix to the filename is added by the program. If you add it too, the computer won't be able to find a file with a double suffix, so it will just return you to BASIC (you'll get Ok on the screen when you return to BASIC) when you answer all the questions. The program is still loaded, so you only need to hit F2 again and try to follow the instructions this time. The Video Card is the next selection to be made. If your card doesn't appear in the first 6 choices, then you'll make choice 7 and go find yourself a VESA driver for your card. If it's a recent card it may even meet the VESA standard without a driver. The drivers are a product of the board manufacturer and you may already have it on a Utility disk that came with the card. I understand that BBS: (416)729-4609 has a collection of drivers if you can't get one from the manufacturer. The driver gets loaded before the program, so you can add it as a first line in the VU.BAT or RT.BAT or AUTOEXEC.TV batch file for convenient operation. Be sure to try all 7 choices before looking for a driver since card names don't always reflect the name of the SVGA microchip used in it. Also, there are different microchips in the same name boards, so there's no guarantee the most common one I used for this program will necessarily have the same software commands. Some recent SVGA programs even include a collection of drivers to select from. The card type is often shown in the first message when you boot up the computer or you can go to the DOS directory and type: C:\DOS>debug then type in a dump -dC000:0000 You may need to hit d again to dump the whole message on the right, but this will often tell you the origin of the video card. Try dumping at D000:0000 and E000:0000 if C000:0000 doesn't work. A more direct way to find out the card parameters is to call the computer manufacturer's software assist line. The card must support 640x480 with 256 colors (requires 512K video memory) al- though a limited capability is possible with 640x400x256 (see Experimenter's Info below). Pix MODES.M1 exercises the 640x480 capability while SAMPLE2.94 only needs 640x400 so you can use these to explore your card's parameters. Trident cards with 1 Mb. of video memory are available mail-order for less than $50 so you can easily upgrade. To use the full capability of the Trucolor (16.7 million colors) capability now incorporated into this system, you should go ahead and upgrade to a Trucolor. At revision D time you can get 640x480x16.7 million colors in a Diamond Speedstar PRO ($100) or Cirrus Logic ($70) boards which are fully VESA compatible and available in both VLB and ISA (to fit the older systems). A couple of people have reported trouble getting their VESA cards or drivers to paint a full picture. I ran into this problem myself with a recently acquired Diamond Speedstar Pro which used a Cirrus Logic video processor chip. We have added a Bank-Switching parameter, BS, to the SYSTEM CONFIGURATION which gives another dimension of control. If the picture paints only part way down the screen, increase BS. If it goes all the way to the bottom of the screen and starts re-painting, decrease BS. When you select the wrong video card, the program will faith- fully load the picture into the video buffer but no picture will result. After a short wait for the picture loading, hit Q (for Quit) and you should get the BASIC Ok displayed. Hit F2 to re-RUN the program and try the next video card selection. While the video cards in my two computers are well behaved and don't hang up the computer when sent the wrong choice, this may not be true for all cards. Once you get a picture, play with the scroll commands to see what happens. Moving up and/or left initially will move the file pointer outside the file and give peculiar results, so move down or right first. The arrows work for slow scroll and R and L give larger scroll increments (in the special case of the Robot 36 mode, the R stands for Reverse and will reverse the blue and red colors if you happen to start copying on the wrong line--it actually is scrolling but the scroll increment is chosen to be one line). Scroll through the color frames with R and see what an out-of-sync picture will look like. You can scroll it right back in sync. Now try the color registration keys, C and X. to see what they do. When you finish, go on to the next program, or maybe at this point you want to change the Default choice for the video card to be your card. LOAD the program and LIST 2000-3000 to see the SYSTEM CON- FIGURATION list. The first item sets the video card choice to either be automatically set to whatever you choose in the next line (2030) or you can leave it in manual so you answer the question about the card every time you view a picture. The BR brightness parameter is like the Color level control on a TV, and it and the TU tuning parameter are only applicable to the Robot modes. Setting TU to 1 will give you retune capability in 10 cps increments which allows best resolution in setting the color balance (or hue) using the F and G keys (note that the F stands for Frequency tuning and the G stands for Greener). The next item is the picture trimming parameter, PT, which you may want to change occasionally. If you have a pix with trash still showing on the right edge, you can raise PT to trim more off the edge. You can change the parameter and RUN the program without SAVEing it or you can make the change permanent by SAVEing it. The final item, EX, allows you to expand the pictures that have less bytes per line, such as Martin 2 and Scottie 2, to fill the screen. This aggravates any copying anoma- lies but gives the more correct perspective for these modes. Since these modes send only about 1/2 the bytes and use 1/2 the time of Scottie 1 and Martin 1, their fidelity is inherently worse, partic- ularly in less than optimum conditions. Note that the card parameters you have determined for VU as described above will be transferred to most of the programs de- scribed below. RT.BAS This will be the most used program, since you will spend a lot more time receiving than anything else. To view the SYSTEM CONFIGURATION for the program activate BASIC as described above and LOAD"RT. Now LIST (hit F1) 3000-3500. Move the cursor up to line 3030 where the video card selection is made and type in the VC selection you found worked in VU.BAS. Hit ENTER and then move the cursor back to the bottom of the screen. The RAMDISK designation that is stated on the screen when you boot the system will be inserted in line 3050. Most likely it will be "D", unless you have extra disk drives. The COM port you select will be noted in line 3170. Set TC=0 in line 3250 if you only have a 256 color board. After making the selections, move the cursor into the clear and LIST 3000-3500 to make sure you got what you wanted. Note that when you change anything in a line on the screen, you must hit ENTER to actually change it in the program. Also be sure to move the cursor in the clear before hitting any of the Function keys. Now SAVE the program as RT.BAS. Some of the other CONFIGURATION items may need to be changed later. You are now ready to check out the interface box with the program. Plug in the interface to the selected COM port and feed audio from the receiver into it--noise will be OK. Hit F2 to run the program and select mode 6 and ENTER. Normally the program will wait until it receives a header before it begins to copy. But if you miss the header, you can bypass that step by hitting SPACEBAR. In this case, with noise or voice audio, you'll need to bypass the header start, so hit SPACEBAR. If you get a tone with a tick super- imposed on top of it, you know that the system is copying the incoming signal. If nothing happens or you get a steady tone with- out any tick, the fax audio isn't getting into the serial port. You could have plugged into the wrong COM port (surprizing how confus- ing COM port numbering is!) or the audio may not be getting to the interface. You'll have to reboot the computer if you can't get audio in to start the copying. (A few people have gotten to this point and got a single interrupted tone and the computer hangs up. This occurs when you try to use a Tandy GWBASIC.) The tick is fairly brisk, about 2 per second. If it is very slow, you have some resident program interfering or you may be trying to run the program from Windows. Windows slows processing down drastically, so the timing-critical transmit and receive programs cannot be run from Windows. The most common problem with the interface is wiring errors. The pin numbers on the opamp seem to get mixed up with the pin numbers on the COM port plug. The Wefax choice (99) will tick away even if the interface is not connected, so don't let that fool you. If the Wefax doesn't tick but gives a constant tone, you forgot to create the RAMDRIVE and insert it's designation in line 3050. Once you get the machine ticking, let it run for 30 seconds or so and then hit H (for Halt) to stop the copying. The tone-tick should stop and after a brief delay, you should get an image on the screen---in this case it will be multi-colored noise. After looking at the image, you hit Q (for Quit) to exit the image. You can now choose to SAVE the image, retransmit the image, transmit another file, or return to BASIC where you can hit F2 to setup to copy another picture. The major keys to remember are SPACEBAR which bypasses the frame sync and starts the ticking, then H which halts the ticking and advances you to a picture, and then Q which exits the picture. You should now be ready to copy real pictures. Tune to 14230, the most used SSTV frequency and carefully tune in the voice of a transmitting SSTV station to make it sound natu- ral. If you have pass band tuning or other methods for shifting the received passband, move the passband to attenuate the lows. The lowest frequency used is 1100 hz. When the station announces it will send a certain mode, select that mode quickly and ENTER. Different modes have different header lengths---AVT and FAX480 headers are quite long before they start the picture. The picture copying should start properly synchronized. On everthing but AVT, this should be almost immediately after the fax audio begins. If no ticking starts (give it 6 full seconds for the long header on AVT pictures), you missed the header so hit SPACEBAR to bypass. Let the copying run until the machine turns itself off (or if you tuned in late you may need to Halt when the picture ends). It then will display what it copied. The pictures are intentionally offset just a little to facilitate easy scrolling to position the pix exactly if you choose to SAVE it or retransmit it. Use the right arrow to drop the trash off the left edge of the picture and then use the fine step left arrow to just bring the trash back to the left edge (look at the right edge to see what you are doing). The trash on the right will be trimmed off by the VUing program. If it is a 256 line picture (Scottie, Martin, etc.), it will have 16 lines of shades of gray display so you'll want to scroll down to see what fell off the bottom of the screen (there are only 240 lines avail- able on the screen). The transmit program adds the 16 line shades of "gray" display to whatever file it is asked to send, so if you don't scroll down before saving or retransmitting you'll transmit two such displays and less picture. (Actually, we transmit a shades of red and shades of green display since the gray looks incongruous with all the other pretty colors. This was promptly reported as a "fault" by some folks. C'est la vie !). To facilitate scrolling the shades of gray out of the picture, the key D (for Down) will scroll you down at 8 lines per hit. If the picture mode was a Robot mode the three frames are different widths (the chroma frames are 1/2 the B/W frame) so scrolling affects the color registration--you scroll to get the proper color registration. Then you use keys F and G to retune the signal in 10 hz increments to optimise the color balance. The Robot modes are critical to tuning and deteriorate more rapidly under poor conditions so on average don't expect to see equivalence to Scottie modes. When you SAVE a pix or retransmit it, DO carefully scroll it so the trash on the left edge of the picture is JUST BARELY off the left edge of the screen. The transmit program is based on you having done that. Occasionally, some one will send a pix in a mode different from what was announced. Let it go ahead and copy and after it shuts off you can go to BASIC, LOAD VU.BAS and click through the mode choices using the d:a.p default file name to find the right mode. The picture probably will be skewed slightly, but you don't lose the whole thing. Make a practice of listening to the fax signals and soon you'll be able to tell what mode it is with the tick rate being the most recognizable feature. The AVT's have a very distinctive "triple chirp" beginning (VIS code repeated 3 times) with a pro- longed count down to start and finally the pix starts with a more irregular sound. It doesn't appear justified to me for the AVT modes to spend six seconds on the header. As the number of people using color fax grows, you can expect some attrition of modes that do not use on-the-air time efficiently. The AVT's don't waste time on line sync's but then they blow it on the header. This program was in the development cycle when WB8DQT came out with his FAX480. It was easy to add this mode to the software, so I did. He only had 16 shades of gray--my 64 shades processing gives truly photographic quality to this mode. Unfortunately, he suc- cumbed to the "header syndrome" and loaded up what is a very good mode with another excessive header (based on unattended commercial fax machines). I rebelled at this and decided not to make another header decoder but to just wait until most of the 20 empty lines in the header were finished to hit SPACEBAR to start it manually, so that's how you have to manually acquire the FAX480 pictures. The empty lines are readily recognizable by ear. If he had just put a VIS header like Scottie on the front end, and called it a high resolution B/W SSTV mode, it would have worked great and would have been more welcome on 14230. The obsession with starting "in sync" every time comes from paper type fax systems. With a CRT system, the occasional out of sync condition just requires a little scroll- ing. As described below in ANOTHER MODE, we have a VIS version of this mode now. When you're finished with the picture, hit Q to go back to a selection screen. You can retransmit the picture directly from the d:a.p file where it is stored. Or you can SAVE it. You'll be very happy about now if your computer is at least as fast as mine, and it's TIME clock loses exactly as many seconds per day as mine does. If that is not the case, you will have seen some slant to the sides of the picture and maybe even some break-locks on the sync (looks like someone cut the photo and slid the bottom half to the left). The parameters which affect these things are on the SYSTEM CONFIGURATION list (LIST 3000-3500). If you have a slow computer it may have bad breakup---if that is the case, start by doubling the sync window (SW). If there aren't too many sync breaks, ignore them for now and concentrate on adjusting the line timing, LT, first. Since the Navy Wefax is on the air all the time (on USB on frequencies 3354.9, 8077.9, 10862.9 and 16407.9 Khz.), that might be a good choice to set first. Choose mode 99 and answer the questions or accept the default choices. This is the only mode that offers a choice of manual start. If you choose AUTO-SYNC in this mode as in all other modes you can bypass it by hitting SPACE- BAR if the SYNC doesn't show---which happens more often in the Wefax transmissions. Scroll the image to put some vertical line in the picture against the edge of the screen. If the top leans right, lower LT99 and vice versa. You can converge on the right value more quickly if you use a ruler to measure and record the out-of-true across the top of the screen for each value of LT you try. If your screen aspect is the same as mine, the formula for the correction is 1125 TAN X, where X is the angle off vertical. Or if you count the pixels you are off by at the bottom of the screen, the correc- tion is about 1125/240 times the pixel offset. That is, measure the pixel offset and multiply it by 4.7. The most popular mode on 14230 seems to be Scottie 1, so that will be a good SSTV mode to align first. PLEASE DON'T ask people to just transmit for your alignment use. Take whatever gets sent. Once you determine what the exact correction for one mode is you can calculate the correction for all the other modes. The correc- tions will tend to scale with line lengths (ie, the bytes/line) so you can get very close by taking the correction for one mode and adjusting it for other modes. For example, the Scottie 1 mode has 878 bytes/line. If we found that it's line timer, LT3, had to be increased by 25 counts, then the Martin 1 (915 bytes/line) timer, LT7, would be increased by 915/878 times 25 = 26 counts. For refer- ence the bytes/line for each mode is: (1)306 (2)614 (3)878 (4)568 (5)768 (6)960 (7)915 (77)465 (8)745 (9)546 (99)1024. You may need to do a little more trimming on these calculated values for LT. Reports from other users indicates the calculated corrections are usually right on target, however. PLEASE DO take the trouble to make the pictures exactly square on receive as any skew you leave in will be transmitted to the world every time you send a picture. In Revision D we have added a simple program, LINETIME.BAS, which will calculate the exact line timing numbers for all modes when it is fed the corrected timing for the Scottie 1 mode, LT3. Fortunate- ly, the exact same timing numbers are used for transmit, so you can get your transmit alignment done without even transmitting. Believe me, the people on 14230 will appreciate that courtesy. I have read a suggestion on one of the BBS that you use a tape recorder to copy a picture off the air and then play that back for alignment. While most audio recorders aren't stable enough, using the audio channel on a reasonable quality VCR is useful. While most people operating on the non-Robot modes have pretty accurate line timing, the Robot modes as mechanized on different systems vary all over depending on how many updates a particular station has. You can use the non-synchronous modes, (11) for Robot 36 and (22) for Robot 72, on receive to avoid having to align the Robot LT's but eventually you'll want to retransmit a Robot pix and it would be desirable to have determined the synchronous (ie,crys- tal-locked) alignment---on modes (1) and (2)---with an up-to-date Robot equipped station like W5ZR or N4OBQ. Note that LT1 is exactly 1/2 of LT2 so you only need to experimentally align one. The calcu- lated value for this correction on Robot will be far better than you'll get by trying to align to just any station you happen to hear. I heard a lengthy exercise on 14230 recently which illustrat- ed how NOT to do this. A station with this system asked W7--- to send him a Robot picture so he could align his LT (which is a no- no). The W7 was using a Pasokon which has different line timing from the Robot systems (on the Robot modes and the Wraase 96), so the frequency was tied up for an extended period of time aligning to the wrong standard. Remember the SSTV frequencies are like giant party-line phones with many people listening and waiting to send or copy pictures. Move your extended chit-chat to other frequencies. Since almost everyone has resigned themselves to copying Robot modes using Line-Sync due to the wide variety of timings, the benefits of crystal locked reception of the Robot will only be available to those who bother to set their timing to the Robot standard, and is communicating with a station who has done the same thing. When making these LT adjustments, note that if you pick anything but the BASIC choice when you exit the picture, you will lose any temporary changes you have made to the CONFIGURATION list. When you get perfectly square pictures, SAVE the program with the latest LT value. The program will only accept values for LT up to 65,535. You start over with 0 if you need greater numbers. After aligning LT, if you still have any sync breaks, you will need to lower the Gross Timer. The process here is identical to trying to fit tiles into a fixed size room. We've squared the room with LT. We have a few hundred tiles (pixels) to squeeze into a room which has a fixed size (LT) and if the tiles are too wide, the last tile will run into the wall and break sync. The number for GT represents the width of each tile (pixel). Decreasing it by 1 will slice one microinch (microsecond) off of every tile. You can slice several microinches off each tile (maybe decrease GT by 5) so you're sure it will fit but that may leave an ugly gap at the edge of the floor. You can cover that over with trim at the edge of the floor, but if you copy the picture out-of-sync that ugly gap moves into the middle of the floor (picture). So you want to make GT low enough to eliminate any occasional break locks but not so low as to leave an ugly gap which will show up when you miss sync on a picture. If your computer is very fast, the measurement accuracy for each pixel (tile) will be more precise, so you can stack the pixels with less gap at the edge without having the risk of running into the "wall" set by LT. If you have sync breaklocks that seem independent of the GT value, you need a larger Sync Window (SW). The SW represents the amount of time in microseconds it takes the computer to decide if it's at the LT "wall". Obvious- ly, a slower computer needs more time. You may ask why we chose to use only one pixel (tile) size, GT, to fit all these different modes (rooms) with different line timing (widths). It was just a matter of convenience. You can further optimise the system by using a different GT for each mode---in fact, with the deterioration you might get from a slower computer, this could be quite worthwhile. You will note that we did use a different GT (GT99) in the Wefax mode. Remember, the way to see this effect is to copy a picture out-of-sync and look carefully at the results at the parting line and on either side of that line look at the color registration. Since the AVT modes have no line sync period in which to hide this "gap", the effect is more notice- able there. People who have not seen SSTV pictures are usually struck by the fact that many of them are noisy--in fact, anything you hear (noise, splatter, QRM, etc.)will be painted into the picture. So high S/N ratios are needed for flawless pictures. Narrowing the BW will help some, but at some point will smear the picture bytes. Another source of noise was found by KY1S in a serial interface board (made by Data Technology Corporation) which he changed out for another board he had which was clean. I have heard of several other cases since then which were solved the same way. Opinions have been heard that this is more common on the newer, more compli- cated, boards. The effect varies from a few flecks in the pix to very noisy pix even with very strong signals. These I/O boards are very cheap ($10 to $15) but finding which ones work may take a little research on the air. NF4K reports PT-606 as being a quiet card and M10-16 and UN-1072 as being noisy. AA7GU reports UN-1072 as being noisy. He replaced it with a very clean board, D.F.I. model MIO-400 KF Rev. F. This board also got rid of a computer RFI problem he had with his mouse connected. K2HTO reports his Tandy 2100, SX25, installed I/O board had much noise. A card from a local supplier (G.C.S. tel:(800)845-6225---board is stock no. C9806) was completely clean. General indications are that the simpler I/O cards work best--cheaper is better! Signal modulation can also come from your receiver. My TS930S is completely clean while an old ICOM-720 which I use on the boat gives noticeable hum bars in the pictures even though there is no detectable hum in the audio. Clearly, the 120 cycle is frequency modulating the high frequency phase-lock loop in the IC720 but it was undetectable until I copied SSTV. With such a sensitive way of seeing it, I intend to fix it; and I won't be surprised if it improves my SSB voice signal. Both of these cases may be due to design faults or just to the particular piece of hardware. Point is, SSTV shows up shortfalls in hardware very clearly! You need at least 512 kb. of memory on the video board to copy the SSTV modes. The Wefax copying optimally will need 1 mb. But the provisions are made in the VUing program to look at Wefax pix through a 640x480 window. The program provides 1024x768 Wefax viewing on video card choices Trident, Tseng, and VESA only. The normal Wefax image has 1024 pixels per line and 1536 lines, so you only see a portion of the total image at a time. The keys S (for Shrink) and X (for eXpand) can be used to see more or less on the screen. Also, if you are using the 1024x768 screen, you can get an expanded view of a portion of the pix by switching to 640x480. Try copying maps in the Wefax mode. You'll be able to read the really small print ! If you want to print a copy of the map, position the place on the map where you'd like the printer to begin to the upper left corner of the screen and hit P to start the printer. Hitting any key will stop the printer. The Wefax images initially appear in 64 gray shades. You can choose color palettes 1 through 5 for various effects. This is useful for seeing ocean thermal currents like the Gulf stream on IR images (you can identify IR images as the black sky will be white; ie,cold). Cold is white and warm is black in IR images. Or you can take a vertical profile of the clouds by first hitting G to get Gray, then hit C to Color the top (coldest) layer. Each time you add another C, you color the next lower level. A total of 64 levels are available. This is useful to identify the more severe weather which generally boils up to higher altitudes. When you use one of the color palettes, C can also be used to step through the color palettes to highlight visibility of small temperature differences at sea level to see things like ocean currents. These currents are of particular interest to fishermen. A portion of a Wefax pix may be saved in FAX480 format. You're seldom interested in the whole image and it takes a lot of memory to save the whole thing. I use date/time/mode filenames for these. 28MY123V.FAX denotes 1230Z on May 28 in Visual mode. Scroll the Wefax image to put the portion to be saved in the upper left corner of the screen (you save 536x480 pixels--I use pencil marks on my CRT to mark these borders). When you or someone you send it to views this pix with VU, you select the Wefax mode (99) and when queried about screen size take the choice FAX480 PIX. This gives you the colorizing choices of Wefax described above for viewing IR pixes. Or just VU it as a B/W FAX480 pix. One last item on RT.BAS is the parameter, DE, on the SYSTEM CONFIG list. I made this delay DE=0 to suit my own practice. This value starts the picture copying a little early, so you'll always need to hit the right arrow first to scroll into picture left edge coincidence. You may prefer to set it to start at the picture beginning--accepting the risk that QRM will occasionally make it start late. If it starts late, you will move the "edge of floor" gap into the active picture region instead of hiding it under the SYNC period. You must set DE to numbers less than 256. Generally it will be less than 20. When you manually select the mode, the frame SYNC for the non- AVT modes is fairly simple and can be spooked by any 1200 hz tone of adequate length. This has not proved to be a problem except for a very few stations. For some reason, the Robot (?) systems have a capability to send your call sign in CW at the beginning (instead of at the end ?) of picture transmission and they chose to use keyed 1200 hz. Most people have turned off this feature (giving your call sign verbally, immediately followed by giving it in CW, followed by a picture with your call sign on it seems a tad too often) since it uses valuable on-the-air time unnecessarily. A few gentle reminders may fix this problem. With a little dexterity, you can hit the mode ENTER key on the last character of the CW and get a normal start--or just wait until start and bypass with the SPACE- BAR for any stations which continue to use this feature. Since the above paragraph was written, I have added automatic VIS recognition to the program. You need to be within 50 cps of the transmitting station's frequency for this to work well since the VIS frequencies are so close. Unfortunately, people have gotten careless about being right on frequency. When you select this option, the mode name is displayed as soon as it is recognised. You can break out of this mode by hitting any key, so if it fails to grab and start copying, you can hit the proper mode key and hit ENTER twice to start manually. This detection is made to have almost a zero chance of false alarm, and it also only works with fairly good signals. Since I wanted to use it for unattended operation to copy only fairly noise free pictures, this fits fine. It's sensitivity vs. false alarm rate can be changed by playing with the parameters in lines 2605, 2606, 2607 of the RT program. You'll probably end up about where it is now. Rock the frequency around + or -100 cps. to get a feel for where the VIS detection centers. I have made several versions of the VIS recognition machine language .ASM module; namely VISCODE.ASM, VISCODEA.ASM and VISCO- DEB.ASM. As of Revision D time, VISCODEB is the clear choice. I have precisely measured the VIS code frequencies (1200 cps, 1300 cps and 1100 cps) being transmitted by various stations and except for the Robot systems, there is considerable variation in how far above and below 1200 cps the systems transmit. One popular system goes up to 1300 cps OK but only down to 1180 cps. So if you have trouble with certain stations, record his VIS with an AVT mode, and look at the frequencies using the new TUNE program to see what he is transmitting. While absolute frequency measurement is not possi- ble due to the vagaries of whether you are on the same frequency, the differential frequency measurement is very precise. Another mode added provides Auto-recognition plus Save to give you unattended capability. It ignores weak signals. You can select any drive\path to Save the pix in. I use the RAMDISK so if I forget it's turned on I won't fill up my hard disk. When I return I use d:>ss (ie, Slidesho) to view what was received to decide what to save more permanently. You can break out of AUTO+SAVE by hitting F5 to goto Basic, then F10 to return to DOS. In revision C of RT, we have added the capability when saving pictures of doing it not only in full form but also directly in compressed format using a batch file, PK.BAT, which must be placed in the same directory as SLIDESHO, TRUSHO, etc. (ie, DOS or TOOLS). In revision D we use PKZIP so you need a copy of that. If you like some other compression program, you can change PK.BAT, PKV.BAT, and PKX.BAT to incorporate it. If you copy (or REName) a file in the RAMDISK to d:a.p you can then LOAD RT: make a temporary change to RT by typing a new line 880-----880 GOTO 890----and then RUN the program. Select the mode the picture was copied in and ENTER. The pix will appear as if it was just copied and you can rescroll it if needed and then save it permanently. Or you can hit t for the TUNE program and examine the file that way. This is another non-obvious use for RT. If you don't want the tone tick (measures the program's "heart-beat"), Rev C has added a "heart" symbol on the screen to show when the tone is ticking. This is contained in lines 775 and 776 in Rev C in case you want to remove it. The easiest way to remove a line but keep it's content for later reference is to insert an apostrophe as the first character in the line--turning the line into a Comment. Since AVT modes have both a VIS code and a complicated frame SYNC sequence, you can get hung up by passing the VIS test but missing the frame SYNC test (it's capture window is narrower than the VIS), so I just bypassed the frame SYNC and copy them out of SYNC. You can eliminate line 724 if you want to keep the frame SYNC. Don't forget to clear out the RAMDISK for future copying. You can tell when the RAMDISK gets full when you copy a pix and it only fills part of the screen. In my experience with the previous wefax programs, I have only seen one computer (a name brand laptop) which didn't have a proper- ly operating crystal-controlled clock. I have heard of one other. The sympton is the lines in the pix wander all over the place. You'll have to fix the clock to crystal-controlled stability to use these programs if you run into this. We have seen one case like this which only broke out of crystal-lock in Transmit. This was a 486 machine and K3OWX solved it by going out of the turbo mode. There is some general trend we have noted that the crystal clocks are not being held to as stringent tolerances as before. REVISION D ADDITIONS TO RT.BAS KY1S added a picture menu screen to his copy of our program using some fancy Basic programming. It seemed neat, and not expect- ing very many would want to go to that trouble, we decided to add the capability for you to add your own customized picture menu just by making a file. That is, take your own favorite picture and use PCXLABEL to add the menu items. The menu pcx files are MODELIST.PCX, FCNKEYS.PCX, K3BCSSTV.PCX, and PICKMODE.PCX. You've already seen the one I made. You'll probably want to put your own call sign at the top. The menu file name goes in line 3240 and the mode number goes in line 3245 of the RT SYSTEM CONFIGURATION. Line 3230 gives you a selection of menu choices. Try all 3 to see what the differences are. Also, to minimize the key strokes when operat- ing from the picture menu, we added a small ML program, SELECTMO.ASM, which gives single key stroke mode command (ie. no ENTER required). On modes like M2, mode 77, which require two key strokes, a 1 second delay is allowed for the second stroke. This delay can be changed in line 1352 of RT. We have included the Trucolor viewing into the RT program. There are a number of possible choices of picture size and color resolution on both the menu screen and the received pictures, so try all the combinations to see what you like; lines 3250, 3260, and 3270 contains the switches. We have used fractal techniques to take the pixellization out of the full screen Trucolor pictures, as described below in TRUSHO. REVISION E ADDITIONS TO RT.BAS We have added REAL TIME copying capability to RT for those of you with TRUCOLOR video cards and fast enough computers (386-25 mhz equivalent speed approximately). It is switched IN or OUT in line 3280 of RT. Robot modes are not covered since they take too much processing to display quickly. The real time pix is raw as received with no processing or resizing. In fact it gives you a very good illustration of the effectiveness of our poor man's digital filter- ing which replaces bytes that lie outside the 1500 to 2300 cps range. In AUTO modes you'll need to be quick to catch the mode names. Also, the six second wait for the AVT header to be received seems aggravated since you are looking at the screen just waiting. Be sure to get your Trucolor card all integrated using TRUSHO and then transfer the card's SYSTEM CONFIG parameters to RT before trying this. The Wefax mode will also copy in REAL TIME. While none of the real time screens can be scrolled while copying, the Wefax has a skip control to jump the picture to the left on the screen approxi- mately 1/7 of a screen every time you hit S (for skip). This actu- ally changes the SYNC point on the incoming data, so you'll gener- ally only use it early in the picture. You can quickly see how far out of SYNC picture is and estimate how many times to hit S. We have added a TUNE screen to facilitate getting on the other guy's frequency and to give you some insight into what the equiva- lent analog signals look like. It will give you snapshots of what the signal looks like as it comes in (at the expense of interrupt- ing the copying--the computer is strained to it's capacity while copying, so interleaving a Tune display without degrading the copying isn't practical) or after the picture is received, you can scroll the TUNE screen throughout the pix to see what's going on. The same scroll commands used when viewing the picture are used. To view the line SYNC in modes that have one, you scroll down one line and then hit the left arrow several times to bring the SYNC pulse into view. Now you can scroll down one line at the time with the down arrow and see successive SYNC's and what their average fre- quency is. Or you can scroll along a whole line using the fast scroll R key. If pix was an AVT copied in AUTO+SAVE, it has the header captured and you can look at the 1600, 1900, and 2200 cps header patterns. You can even go back to old files, copy them to d:a.p, change line 880 as described above, and view their tuning. Note that the scale on the TUNE screen is not linear. When using the TUNE screen while copying, just hit T, and the last 400 or so pixels are displayed. Hit T again for each new snapshot, We used snapshots because displaying continuously is too confusing to use. When you want to resume copying, hit G; or if you want to quit, hit Q. The snapshots cannot be scrolled. If you want to look at another stations VIS code frequencies, you can use mode 6 and SPACEBAR to start copying just before the picture starts. After copying a few lines, you can halt and go to the TUNE screen to scroll through his VIS code frequencies which should be 1900, 1200, and then switch between 1100 and 1300. This is probably the quickest way to get on frequency. Or if he sends out a tune-up tone, the T snapshot in mode 6 would work well. If you have a precision audio oscillator available, you can calibrate the TUNE screen more precisely by copying the tone from it. Calibration for the snapshot is in line 480 and for the file perusal TUNE screen is in line 2805. The same correction POKE goes in both places. REVISION F ADDITION--We have added REAL TIME copying for the 256 color video boards. TX.BAS [NOTE: The TX program has been superceded by the VT.BAS pro- gram below, so it is not being kept updated with new changes. Since there may be someone with a very slow computer who might want to still use TX instead of VT, it is still included.] The transmit program uses the same SYSTEM CONFIGURATION choices as the receive (RT.BAS) program, so the first step is to transfer those choices. LIST 1000-2000 to see the choices on TX.BAS. Be sure to put the cursor in the clear and re-LIST to check things before SAVEing the modified program. Note that if you don't put the cursor in the clear before hitting a function key, it will type the function key word right where the cursor is, over-writing the program and giving some weird results. Running TX.BAS is very simple. Put the transmitter in VOX if it isn't already there. You select the file you want to send and note what mode suffix it has. The mode suffix and file name are given when the program asks for them and after the file loads, you just hit G to start transmitting. If you give a non-existing path/filename, the program will return you to the BASIC "Ok" where you can hit F2 to try again. In this case ignore the Picture Trans- mitted message---it should be obvious that nothing has been trans- mitted. When you key G to start transmitting, the VOX will come on and the header is transmitted. The tone-tick audio cue will start when the actual picture starts being transmitted. If you want to terminate the sending before the picture is finished, key H (for Halt). Listen to the ticks to see that they are very regular. If you hear a skip, someone on frequency will probably tell you that the picture had a break-sync. Although it didn't happen on the two computers I have, it's conceivable that a different GT might be needed for TX.BAS since the overhead processing done on each line is different from the receive program. If that is the case, use the lower of the two values for GT in both programs. A better alterna- tive to lowering GT is available if the offending mode is NOT AN AVT MODE. You can LIST 240-370 in the TX.BAS program and locate the line that has the data for the offending mode (ie, 290 IF I=4 THEN LL=568 etc.etc. is the line for Mode 4). That line will have a value called out for a parameter SC, which is the number of 1/2 cycles of 1200 hz line sync that will be sent on each line. Lower- ing this value will fix your problem (equivalent to removing one "tile"). It's very unlikely you'll need to do either. Incidentally, don't try to send a picture in a mode other than the one it is formatted for. Hopefully I can find time to include a mode refor- matting program in future revisions. People seem to be using rather long sub-directory names these days, so if your PATH to the file to be transmitted is long, it may not fit in the space allocated in the program. You can copy the file to the RAMDISK as A.P and use the program default choice instead if you run into this:ie, if the program rejects a perfectly good Path/Filename. Before you actually start transmitting pictures, hook your headphones across the audio transformer output to the transmitter and listen to the signal while sending a pix. Compare it to what you hear when receiving. If the frequencies sound quite different, you'll save time by adjusting the header frequency as described in VT.BAS below before proceeding. If the frequencies are very differ- ent, you may be breaking out of SYNC on many lines and transmitting a mess. We've seen one 486DX2-66 machine where this was the case. His frequencies were quite low. In using this "headphone" test on my laptop's transmit audio output on the RTS pin, I found a 1000 cps tone there continuously. This was undoubtedly the alternator frequency on the + and -12 vdc supplies which were not adequately filtered. While not fully confirmed, I'm fairly sure this is the source of some wiggle (beat note effect) in the vertical lines in transmit with this machine. You can do the initial checking of this program without actually transmitting, of course. But as soon as you do start transmitting, BE SURE to check that the transmitter is operating at a low enough level so it won't overheat. Most transmitters will not handle a 100% duty cycle signal like this and still operate at maximum peak power. I failed to take my own advice on this and had to make a multi-transistor repair on my TS-930. If your transmitter has an AM mode, set the output power in TV mode to the same output power level as AM. This should be plenty safe. The audio level resistor, R_x in the schematic, is set so that you can leave the transmitter mike gain at the same level whether you are talking or are sending fax. A useful feature in BASIC is the ability to list all files contained in the current default directory. For example, to list all Scottie 1 files, just type: FILES"*.S1 and RETURN . TX, VU, and SLIDESHO all can use this, so I have included an insert to make key F9 type the words FILES for convenience. FILES is the BASIC equivalent of DIR in DOS format, so the use of wildcards, etc. apply. Note that keys F9 and F10 are not operative for our program specific-use until at least one program has been RUN. VT.BAS This is identical to the TX program except the file to be transmitted is put on the screen to see if it is the one desired. It stays on the screen after transmitting so you can discuss it's details. Q will exit the picture. If you call up a non-file, the screen will be blank---you'll need Q to get back to BASIC. The SYSTEM CONFIGURATION for the VUing part of this program is seen by LIST 2000-3000 and is copied from VU.BAS. The transmitting SYSTEM CONFIGURATION is seen by LIST 4000-5000 and is copied from RT.BAS. I have added a couple of features to this program as a result of inputs from KY1S. He found it convenient to have listed on the screen all of the files in the current directory which were saved in the mode being used every time he picked a mode. That is, when you pick mode 3 in the VT program, all Scottie 1 files would be instantly listed for you to select from. With the BASIC format, this is very easy to insert and is a perfect example of how you can adapt to your own operating methods. I thought others might like this capability, so I added it so you can switch it ON or OFF in line 2092 (Rev F makes a further use for this in REVISION F below). Dennis also found that his LT numbers had to be changed by about 400. Other 486 users have also reported a wider variation in the frequency of the TIME-OF-DAY clock than we had seen before. While this has a rather small effect on the color registration, the headers used for automatic recognition of modes have somewhat more stringent tolerances. If you get reports of people receiving your pictures having to manually start their reception, or you had a large change in LT or a particularly slow computer, you may want to measure and possibly trim the header frequencies. We have added a test mode in VT.BAS which is turned on by a switch, TE, in line 4173 in SYSTEM CONFIGURATION. Switch TE to a 1200 or 1900 cps position and then hook up a counter or some other method of measur- ing frequency to the output of the interface which normally feeds fax audio to the transmitter. If you use a counter you will proba- bly need to reduce the signal down by 50 or more to avoid over- driving the counter. Load in a Scottie 1 picture, and when you hit G(o), a prolonged steady tone at the selected frequency will pre- cede the picture. Parameter HF in line 4171 can be changed to center the frequency. If the frequency is 3% low, raise HF by 3%. A potentiometer to change the level into the counter is useful to avoid the erroneous results you get by overdriving the counter. After finding the best value for HF, SAVE it in VT.BAS and put the same value in line 3210 of RT.BAS and SAVE it. While this parameter is called "header" frequency, it actually recalibrates both header and picture frequencies with the pokes in line 3011 of VT.BAS (for reference in case you wanted to change only one of these, 2E9 and 2EA are the location for the header and 1FE and 1FF are for the picture data frequency). Many SSTV stations can give you a rough measurement of these frequencies over the air. In revision E we have added a TUNE screen to RT.BAS so if you have a VCR, you can record the Transmit audio output on the VCR's audio channel and play it back into RT to look at the frequencies with the TUNE screen. While the VCR will add noise and jitter (the VCR mechanical "noises" are in the audio range), you can set the value for HF with this. Or if you want to compare picture shades for different HF values, make recordings of the same pix file at several settings for HF. The received image files are labelled with the HF number and saved or copied into the RAMDISK along with the original file. Now you can use TRUSHO in it's 4-picture mode and make shade comparisons between these to get a shade match with the original over the entire image. This is amazingly accurate when the match is made on the same screen. When you get a match, Quit from TRUSHO on this pix and by keying Yes on the next question, the file name value for HF will be displayed. Another feature added to VT.BAS in revision E is a tuning reference tone. After loading a picture to be transmitted but before keying G to start transmitting, you can key T (for Tone) and a pulsing 1200 cps tone will be transmitted as long as you hold down the key. This could also be used in setting HF via the VCR technique as described above. Another problem which I and others have encountered is a radical shift in frequencies both received and transmitted--ie; overly light or overly dark pictures. This has been isolated to residual settings of computer parameters which are left in the computer after using such programs as JVFAX, HAMCOM, and others. They can be removed by re-booting the computer. In Revision B, I think we have isolated the offending parameters and modified the RT and VT programs so it won't be necessary to re-boot. Feedback will be appreciated. Another problem which a few others have experienced which is similar to the above (but only affects transmit) has been fixed by taking some of the flexibility out of VT and manually fixing the processor speed calibration number to fit a specific machine. The trouble symptom is a transmit function which intermittently works properly but then reverts to sending trash. The transmit program uses the processing speed as it's frequency determinant. This speed is calibrated each time the program is run. This makes the program work independent of whether you are using a slow 286 or a super- fast 486 and also corrects in case you turn the turbo on or off. It uses the 1/18 sec TIME clock ticks to calibrate itself. Apparently, in the computer we fixed, either these TIME clicks were being intermittently changed by some internal software, or there was a hardware intermittent. You can bypass the calibration and set to a fixed value by adding the following line to VT.BAS: 3019 poke &h165,144:poke &h166,184:poke &h167,128:poke &h168,6 The number poked into &h167 is the LSB and &h168 is the MSB for the calibration number. The numbers shown are for my 386 at 16 mhz. You can determine the correct numbers for your machine by using the TE switch and adjusting the values in &h167/&h168 to get the test tones on frequency. Or when the machine works properly, you can read the correct values by peeking into memory after you return to BASIC. The value for &h167 prints out by typing PRINT PEEK(&H5A3). The value for &h168 comes from PRINT PEEK(&H5A4). My 386 at 33 mhz gives a MSB in &h5A4 of 13, so you can scale from there to get in the ballpark. In Rev. B, we have reconfigured the headers on both the AVT modes and the FAX480 mode. Not having found anyone with a FAX480 receiving capability before the original release, it never was tested. It had an error in the software. While fixing that, I also brought out an adjustment so you can tune the initial 244 cps in the header to be precisely on frequency. This is located in line 3015 of VT.BAS. One more change was made in Rev F. In the AVT head ers, while they worked, there was some diversion in the SYNC point depending on which type of system was doing the receiving. Since all the systems seem to work well with the headers from Bert's (W5ZR) AVT pictures, I just scrapped my header generator and made a digital recording of Bert's header and included it ahead of the picture. In retrospect, this would have been a much easier way to generate all of the headers. In revision D we have added the capability to both view and transmit compressed files. You can collect compressed files into a single file, but it takes a lot of memory and extra time to extract a single one of these out. I prefer to collect mine as single compressed files on floppies or in subdirectories named after the mode used; ie, in a S1 or M1 or 90 (for AVT90), etc subdirectory. That is, the suffix for the uncompressed files is used for the subdirectory name. Since the compressed files all have the same .ZIP suffix, it is useful to collect them together by mode. The VT program can handle single compressed files; it just takes a little longer for the program to list the file name and mode so you know which mode to call up. You can use this program to view indi- vidual files, however, if you want to have a slide-show, it's more convenient to decompress a series of files into the RAMDISK. A simple batch file can be written using wild cards (pkunzip a:*.arc d:) for this. ADDITIONS TO VT.BAS IN REVISION F To save typing time, we have added the ability to select the file name directly from the list of image files using Cursor selec- tion. The same FI parameter in the SYSTEM CONFIGURATION list is used to switch this ON or OFF. The "shades of gray" part of pictures often includes call signs. It could be used for other messages. Some people properly object to messing up some really great pictures by putting words over the picture. So we decided to use the top stripe for contempo- raneous messages. You can store a default message which might be your call sign and name and in RT maybe REPLAY-BY-AB4O. When each picture is sent you have an opportunity to insert any contemporane- ous message you might want to add. If you type it in CAPS, it will be more readable. You can have a little fun with the Robot users since that system doesn't display the first 16 lines (I'm told) but it does replay them. SLIDESHO.BAS SLIDESHO works just like VU except that it has an additional capability to step through a series of pictures without knowing what the filenames are. You pick a mode, and if you want some constraints in the filenames viewed, enter that. For example, if you wanted to look at only Scottie 1 pix's starting with the letters BE, enter 3 for the mode and enter BE for the constraint. The first BE*.S1 pix in the directory will paint. To see the next BE*.S1 pix, hit N (for Next). It will exit to BASIC when it runs out of files. You can use this program to look at single files also. This program (and it's associated files, SS.BAT. PK.BAT, and 64SHO.ASM) is con figured to go into your DOS directory, so it will be accessible from any drive or any directory where you might have picture files. If you want it somewhere else, you'll need to change the PATH callout in line 30 of SLIDESHO.BAS and in SS.BAT. They should in any case be placed in a directory which is listed in your path statement in AUTOEXEC.BAT. I find it convenient to store pix files in a compressed .ARC file (using PKARC) grouped together by mode. When I want to view them, I decompress the .ARC file into the RAMDISK (using PKXARC---the format for an archived file named S1PIXES.ARC is: PKXARC S1PIXES d:). After the files load, with a quick d:>ss I can start the show. Incidentally, this program is not configured to work with the Robot modes or the Wefax mode. Another feature added since the original release is the capability to make the SLIDES advance automatically. The number of seconds you want to dwell on each slide can be set in SYSTEM CON- FIGURATION, line 2050 as DL. Instead of N(ext), you key A(utomatic) to start the show. It will go through every pix in the directory and then start over again indefinitely. Q will exit sequence. If you get large numbers of pix in the same mode in one directory, you may have to raise the "files=" reservation in CONFIG.SYS to use AUTO mode. Revision C of the software adds a new capability which is very useful if you use the AUTOMATIC + SAVE mode. Typically you store a number of pictures in the RAMDRIVE while the machine is unattended. When you return you use SS (SLIDESHO) or TSS (TRUSHO) to view the pictures in sequence. Often you see ones which you want to save, so the capability was added to both scroll, rename, and SAVE in either full or compressed formats any picture that you like. When you view one you like, use the normal scrolls, if needed, and hit Q. The program then walks you thru the steps from there. If you use the compression, it requires the presence of PK.BAT in the same direc- tory where you store SLIDESHO and TRUSHO (typically in DOS or TOOLS directory). When you're all finished remember to clear out the RAMDISK if you used it for temporary storage and you're going to return to copying pictures; particularly Wefax which uses a lot of RAMDISK memory. TRUSHO.BAS This is a version of SLIDESHO that supports TRUE COLOR (ie; 16 million color) video boards with a 640x480x16.7 million colors mode capability. The display is brighter than is possible with the 256 color video board. Also, in Automatic, you can choose between one picture at a time filling the whole screen or 4 pictures, each filling 1/4 of the screen but still at full resolution. You can S(top) the automatic sequence at any time and restart it by hitting G(o). I haven't yet found out what mode number is being used by the different card manufacturers for this mode, so you'll have to use the VESA choice unless you have the same card I have (Diamond Speedstar Pro). If you can find out the mode number, it can be poked into memory location &H113 with the card driver sequences in the BASIC program (the one with your card name on it). Interesting- ly, Diamond's instruction manual said it was mode &H72 but it actually was mode &H71. In Rev C, we have added capability to accomodate the ATI TRUCOLOR card in the VESA card choice. I thought the VESA stand- ards would actually settle on such things as bytes/line--no such luck! ATI uses the same byte storage sequence as all previous SVGA modes where the lines are stored seamlessly so there is no gap between lines. Diamond (or maybe it was Cirrus, whose chipset is used in the PRO board) decided to jump to the next 2K boundary in memory at the end of each line. I can't think of any other rational choice, so maybe future cards we see will fit in one of these two categories. The parameter BL is included in the SYSTEM CONFIG list of each program to set this. If someone comes up with some other oddball choice, just assign the value to BL. The wrong BL gives a greatly slanted picture. This program gives very high quality pictures which can com- pare favorably with any other SSTV system. The pictures themselves are captured, like the Robot 1200C, at 262,144 colors. While our basic program structure could be easily modified to send and re- ceive at the full 16.7 million colors, it's questionable whether you could tell the difference. You can tell the difference between 32,768 and 262,144, however. Be sure to read the section on the Bank-Shift parameter in VU.BAS above when setting the SYSTEM CONFIGURATION on this new program. This program, like SLIDESHO, allows you to save pictures directly. In revision D we have made a significant improvement in the full screen pictures. Using fractal techniques, we managed to get rid of the "square pixel" effect which is characteristic of lower resolution pictures which are expanded to fill the screen. Line 2080 has a 3 position switch for choices on the even lower resolu- tion Martin 2 and Scottie 2. Try all three. I like choice 2 as it has the proper perspective and the pictures are not over-expanded. In revision F, we have added a reversed TRUSHO which is called TRUS-REV.BAS. Some of the older Trucolor cards have the red and blue reversed from the current VESA standard, so this is for folks with one of these cards. It has been tested with the Speed- star 24X. TIFCONV.BAS If you want to create some picture files to transmit, this program will convert from the TIFF 640x480, 24 bit color format to the SSTV/FAX480 formats. We chose the TIFF format because it is the most common format used for transferring high color/resolution pictures between programs and is an available format from most frame grabbers. The typical frame grabber will accept images from any video source. I have tried this with both the Computer Eyes/RT and S.S.C. grabbers. For some reason, the picture information started at a different offset into the picture file in these two cases. LIST 205 in this program will show you where to make the change for this. You'll know when the offset is wrong as the re- sulting picture will have the colors scrambled. Change the offset by one and try again. Note that the TIF file must be 640x480 with 24-bit color so the file size is over 920,000 bytes. If it doesn't have that many bytes, it isn't an acceptable format. KY1S reports that he has used TIFCONV with the TEMPRA program and with PHOTO FINISH 3. WB7PAP found a Graphics Workshop 7.0 on Rimmer's BBS (tel:416-729-4609) which converts other formats very well. It is called GRAFWK70.ZIP. N9ARX reports success using Print Shop Pro for Windows. The last two are shareware. I believe all of these and other programs accept pictures in lower resolution formats which can then be converted to the highest resolution format that we use. The TIF file must be in a non-compressed format. I use the RAMDISK as temporary storage for this monster file and immediately convert it to a SSTV format for permanent storage.[See BATCH FILES below to see how you can take all the work out of conversion and go directly from from GIF, PCX, and JPG files to Transmit.] Since this program includes the VU program to show you the end result, you must transfer the SYSTEM CONFIGURATION from VU.BAS to lines 2000-3000 in this program. Revision D adds the capability to directly save any picture generated by this program in either full or compressed formats. TGACONV.BAS I found a collection of CD-ROM pictures at Dayton which were of high quality, 24-bit color, but in a TGA format. This program converts any 24-bit color TGA file of any line length equal to or greater than 640 pixels to SSTV files. Using a simple batch file, STGA.BAT, you can call up any image on the CD-ROM, convert it to any SSTV format and then transmit it in a seamless operation. The images are filed on the CD-ROM as img2018.tga kind of files. You merely type: C:\TV\>stga 2018 and the picture is transferred to the RAMDISK, the TGACONV program is activated, where you pick the mode and take the default choices. When you see the picture, you exit with Q and then F10. The batch program then moves you into the VT program where you answer the questions and transmit. I suggest you study the STGA.BAT as you can put together sequential operations using several of the programs. You could eliminate answering ques- tions even by making special versions of say TGACONV where the question lines are replaced with the answers you want for the particular sequence, and it will just run straight through. The special versions would be given different names, of course. Read the DOS book on batch files. You can do some powerful things with a few little lines.[See BATCH FILES below] TGACONV also has direct SAVE capability. BATCH FILES Peter Norton's various books on DOS give good illustrations of how batch files may be used to speed up repeated computer opera- tions and you should definitely read one of his treatises. A few ways I've used them for SSTV may be useful to you and/or suggest other uses: (1) Speed up the picture menu paint--If you have plenty of RAM, you can copy the menu pix, MODES.M1, to the RAMDRIVE during the first use of RT and then have the RT.BAS program load it from there. That is, change line 3240 of RT.BAS to read (based on RAM- DRIVE of d): 3240 MP$="d:MODES.M1" The RT batch file, RT.BAT, will then read: copy modes.m1 d: gwbasic rt Depending on how fragmented the memory segments of your hard disk have become, this can be much, much faster. (2) Chain programs or portions of programs for seamless throughput from choosing a file name on a CD-ROM (or stored else- where) to a labelled picture in the transmit buffer ready to G(o)! Examples of this are described in UPGRADED.TXT, UPGRADEE.TXT, and in the TGACONV section above. Typically you go from a batch file DOS command line into a GWBASIC program which does it's thing and returns to DOS when it reaches the BASIC command SYSTEM. Then you step to the next line in the batch and continue. Between successive programs you can store numbers or data in an unused corner of memory or use the RAMDRIVE to temporarily store images under some common name, like a.p or b.p. Or you can chain back to a batch file from within a BASIC program using the SHELL command followed by (in quotes) the batch file name and any modifiers. Examples of this is line 442 of VT.BAS and line 1524 in TRUSHO.BAS. Here you return to the BASIC program from the batch file with the command EXIT. Study batch files STGA, PK, TR, and TE for examples. Let's examine TE.BAT in detail (use C:\TV>read te.bat). This allows you to transmit GIF files directly from the DOS line. A file named GEORGE.GIF located in E:\GIF\ would only require typing on the DOS line--- C:\TV>te george --- and when asked you answer what mode you want to transmit in. TE.BAT reads: alchemy -t0 -24 -o -X640 e:\gif\%1.gif d:a.tif gwbasic alchconv del d:a.tif gwbasic alchvt This is written for GIF files contained in directory E:\GIF\ which happens to be a CD-ROM in my computer. If your GIF files are else- where, put their PATH in place of e:\gif\. The %1 in the first line is where the batch file inserts the name following the TE. This particular TE.BAT was written for RAMDRIVE d:. If yours is desig- nated h:, then replace the d in lines 1 and 3 with h. Now contrast this with TR.BAT, which is more general purpose, but requires you to type out the PATH, FILENAME, suffix, and the RAMDRIVE everytime you use it. Incidentally, ALCH.BAS must have your SYSTEM CONFIGURATION in TIFCONV.BAS transferred to it. Likewise, ALCHVT.BAS gets it's SYSTEM CONFIGURATION from VT.BAS. (3) After collecting and saving a batch of pix in the RAMDRIVE using the VIS + SAVE (F7) mode, typically you thumb through these with TSS (TRUSHO batch file) and permanently save the "keepers". To clear out the RAMDRIVE (which happens often here), you use the del *.* command. After inadvertently dumping all the files in my TV subdirectory (TWICE ! OUCH !), I created a DLD.BAT file which safely dumps d: every time. It reads: d: REM switch to d: if not already there dir REM list d: files for final look del *.* REM you still have to answer Y(es) to delete c: REM return to DOS line Very simple, but it protects against inadvertent deletions. I keep it in the TOOLS subdirectory. (4) I keep VU.BAT and it's associated files in C:\TOOLS where it can be called up from the RAMDRIVE to view Robot pix not covered by SS or TSS. (5) Another batch, PX.BAT, is kept in C:\TOOLS where it can be called up from any place to PKUNZIP a group of files on a floppy or other location and deposit them in the RAMDRIVE for viewing--or transmitting. It reads: pkunzip %1:*.* d: To unzip and place from drive A into D:, you just type C:\TV>px a . These are fairly trivial to compose but greatly improve your operating efficiency. Hopefully this will suggest others to fit your own operating preferences. TIFLABEL.BAS and PCXLABEL.BAS You may have one of the fancier software programs to take the original TIFF file and add text titles and labels to it before converting it to the SSTV format. I don't, so a LABEL program was written to give some limited capability in this area. Not having a library of fonts and of different background patterns to paint the letters with, we made the program general purpose enough to use any font and any background pattern you can take a camcorder picture of or can obtain in a TIFF file format or in a SSTV format. There are a number of interesting patterns right in the room you are sitting in which will add interest to your labels---wicker chair back, tile floor, rug, venetian blinds, etc., etc. These two program accept TIF or PCX 1 bit (ie, TWO COLOR) files which might typically come from a handscanner or one of the many PAINT programs of whatever font letters you may choose. Typically you can resize the letters to fit. The TIF or PCX file is used as a mask and where ever the file picture is black, the LABEL program inserts either a color which you can choose, or a cutout from any background file picture which you might have available. You can even use a pix you copied on the air as a background file. The effect is as if you cut the letters out of the background photograph and pasted it on your picture. You manually select where you paste it on. You can get a three dimension effect by pasting on a color mask, then going back through LABEL again, moving the mask a few pixels and pasting another color or background file on top of what's there. With multiple passes, you can get a variety of effects. You also can make a square or circular mask and place it to transfer a face or some other feature of one file to paste it over another. A mask file, K3BC.PCX which is 64 pixels wide, is included for you to try out this program on the SAMPLE.M1 pix. You can use SAMPLE2.94 as a background file. Or rename SAMPLE2 with a different mode suffix for a different background file, etc. I use the RAMDISK to store suc- cessive passes thru LABEL (under PATH/NAMES of d:a, d:b, d:c, etc.); then with SS (SLIDESHO) in drive d: you can view the pro- gressive results. Since these programs use VU for VUing, you must transfer the SYSTEM CONFIGURATION you settled on in VU.BAS to lines 2000-3000 in these programs. Some TIF 2-color files don't seem to work with these, but I have not found a PCX 2-color file source yet that doesn't work (16 color or 256 color files DO NOT work!). Put the text in the upper left corner of the PAINT screen when you generate the mask. PCXLABEL includes the direct SAVE function in both full and compressed formats. 3D.BAS This is a new program added in Rev C that creates 3-dimension picture files in our SSTV formats. It is not a synthetic 3D pro- gram, although you can get some synthetic depth of stuff pasted over the picture files with the LABEL program. It uses the original "two camera" approach for 3D. You use your video camera and frame grabber to capture two pictures of a scene, a RIGHT eye pix and after moving the camera a distance about like your eye spacing, capture a LEFT eye pix. It's hard to keep the pointing angle right, so pick some vertical feature in the scene--note where it is in the frame grabber screen w.r.t. the letters below the screen. On the second pix, adjust the camera pointing to keep the vertical feature only a few pixels from where it was on the first pix. The magnitude and direction of this offset can be estimated by closing each eye alternately and noting what the apparent shift is from Right to Left eye. The final product picture should only show a few pixels of "red shift" as seen without the 3d glasses. If the glasses color bandpass matched the phosphor colors of your C.R.T., then the "red shift" would be of no consequence, since you couldn't see it. Until color matched glasses become generally available, assume the person receiving your pix will not be color matched and limit the "red shift". I store both of these TIF files in the RAMDRIVE, then use TIFCONV to obtain two picture files in the desired mode, using RIGHT and LEFT as file names. These feed directly into the 3D.BAS program. Use your 3D glasses to see if the result is satisfactory. Slow-scanners seem enamored of synthetically derived 3D where you take a series of single images and by displacing color frames a few pixels can get discrete depths for the different images used. You can get the same effects using the LABEL programs, but it's labori- ous. When you put your call sign on these 3D pix, you can get the same effect by pasting the same label on both RIGHT and LEFT pix but displaced a few pixels from each other. You can find out more about this by playing with it. You'll get lots of advice from the synthetic enthusiasts---not all of which is applicable to the clas- sic two displaced camera approach which this program is closest to. If you're recording 3D pictures in the field with your cam- corder, be sure to voice record whether you are in a RIGHT or LEFT eye position. KB9MC has located a source for 3-D glasses in Cali- fornia; Reel 3-D Enterprises--tel:(310)837-2368. NEW MODE I considered adding the Scottie DX mode, but after studying it, decided it didn't use the extra redundant pixels as efficiently as it might. It basically sends the same pixel value three times in a row and then combines these three for a more noise free single pixel. This is great for decreasing white noise which is not corre- lated in the three samples. But you only need look at a few pic- tures to see that many of the "noises" which pollute our pixel values (QRM, QRN, multipath, carriers, etc.) are often correlated over 3 successive pixels or more. So I began looking at putting the redundancy with time separation between samples--like repeating the same line 3 times in a row. Each pixel would have 3 samples sepa- rated by one line length in time. The good stability of our crys- tal-locked receiving system would allow us to combine pixels separated in time quite precisely (a system which line SYNC's on each line using the 1200 cps sync would not combine so precisely!). This would decorrelate the samples against more than white noise and give better results. While it is generally agreed that there is more information content in the luminance (B/W) of a picture than in the Chrominance (color), that depends to some extent on a value judgement between spatial resolution and color content. The engineers would usually opt for spatial resolution while the artists would probably value color content. The more I thought about it, the more foolish it seemed to use completely redundant pixels. Four pixels grouped together in a square could be exactly the same value and give a redundancy improvement against noise in preserving that value. The same four pixels could be used to improve the spatial resolution by a factor of 2 in each axis, and if conditions were good, you would see the resolution improvement. If conditions are bad, your eye would average those same 4 pixels and get at least as much informa- tion as if they were all sent with the same value. So if you are going to send more bytes to improve poor condition reception, it is better to use the bytes for better resolution, and let your eyes do the averaging. Since the signals fade up and down, you get the better resolution when it's up. Also, since most SSTV operations have people at different skip distances, some will get extraordi- narily good high resolution pictures, while the weaker ones will get less. This whole process is illustrated quite well when you look at the differences in Martin 1 and Martin 2. Here the extra resolution is in one axis only, but the difference in results as to how fast they deteriorate under worsening conditions is quite striking. Another illustration of this is in the FAX480 where the dou- bled resolution in both axes gives very durable info content under quite bad conditions compared to SSTV modes. So we decided to make a full color mode with the doubled resolution in both axes. To avoid start-up problems with getting everybody "tuned" to the same line timing, we decided to use the same timing as the FAX480. Three successive 546 byte "lines" are used for the Red, Green, and Blue. In fact, it's nothing but a double size Scottie or Martin 1 mode--double in both axes. It's called mode 96, has a VIS code of &h6A, and uses the same LT9 already set for FAX480. In fact you can copy FAX480 pictures in this mode to align it (the picture will only fill 1/3 of the screen). Displaying the extra information in this new mode requires a full 640x480 TRUCOLOR video card---but these are down to about $70 now (Cirrus ISA boards) and hopefully you have already bought one to use TRUSHO in the previous revision. There is already a large population of hams with the TRUCOLOR cards. Some will question the length of time to send such a picture, but it's only a bit longer than the Scottie DX mode. Like the Scottie DX mode, it should only be used sparingly, and certainly not often on busy frequencies like 14230. But there are plenty of often unused frequencies on 15 and 10 meters and 75 meters is often vacant during the daylight hours. Also a number of our users are operating on VHF bands for local picture trading. When KY1S and I were evaluating it initially, we shared a frequency with a strong broadcast station on 40 meters, and got surprizingly good results. Even today we shift down to Scottie 2 and Martin 2 when the fre- quency gets busy and go back up when the conditions deteriorate. This mode is just one more step in that progression. It should be a good match with the Kodak CD-ROM photo system--and I'll make a conversion program choice for Kodak as soon as I can find out their format. ANOTHER MODE We have added a new high resolution Black and White FAX mode---well, a little bit new. It uses the exact same line timing as FAX480 and mode 96 Colorfax, and differs only from FAX480 in having a VIS code attached instead of the lengthy header. We have renamed FAX480 as mode 95, and assigned mode 9 to the B/W FAX. The VIS code assigned is &HAA (decimal 170). In RT the VIS code will be recognized and AUTO operation will be just like all the SSTV modes. You can still acquire this mode and FAX480 pictures manually in RT. In VT you can choose the VIS-coded mode 9 or use mode 95 to put a FAX480 header on the picture. Files are interchangeable between these modes and use the same .FAX suffix. When you find a pix which has the detail to justify a mode 96 Colorfax file, make a mode 9 B/W fax file so you can send it to folks without Trucolor to show what kind of detail is possible. As described before, these modes have the 64 gray shades necessary for photo-like quality. The resolution is 536x480. USER ADDED FEATURES Some users of this system have taken advantage of it's flexi- bility to customize it for their own use. The most common modifica- tion is to change the initial screen to remove all those words and use the space for a more readable list of the mode choices. Of the ones I am aware of, KY1S has the most imaginative one---including picture icons, introductory tunes, novel uses of the function keys, etc., so some of you may want to get a copy from him to use direct- ly or to give you ideas for your own creations.[At revision E time, he has chained our conversion programs and VT.BAS with a shareware format conversion program called Alchemy to go directly from pix files in the more common GIF, PCX, etc. formats to picture transmission in the SSTV format chosen.] To make these adders portable, so they can be easily put into later revisions without risking overwriting lines, it would be wise to write them with line numbers above 6000. Then you can SAVE them as a BASIC ASCII file, and use the MERGE command to add them to any future revision. Incidentally, "all those words" were an attempt to force some instructions on those who never read the instructions. They are easily relegated to a HELP screen with a few lines of BASIC. In revision D we've offered a picture menu described in RT above. REAL TIME DISPLAY Some have asked for real time paint of the pix as it is received. I personally prefer not having it as I use the receiving time to read the paper, and the incoming pix is distracting. But many others have been used to it. There are tradeoffs. When you take the time to paint a line right after it comes in, it adds to the "edge of the room" gap we described above (in RT). We have chosen to go for maximum resolution (pixels/line) so that increases the gap time over a lower resolution choice. This gap can be hidden in all but the AVT modes, but only if you copy in SYNC from the start. We went to considerable trouble to minimize this gap so you can take almost any late start or out of sync picture and scroll it into position with negligible picture degradation. To our knowl- edge, no other system offers that capability. Also, we wanted to accomodate the lower speed 286 machines, so the "Store and then Look" choice won the tradeoff. Of course, the state-of-the-art moves on, and with such a large population of 486's out there now, we plan to revisit that tradeoff. Also, the newer TRUCOLOR cards take less time to paint a pixel. So if you really want real-time, be patient. It will only be added, however, if it doesn't degrade the picture quality or the system flexibility. And it clearly will require the faster computers. Revision E adds this feature---and I just can't get my paper read anymore. Can't resist looking. I have not been able to detect any deterioration with the interleaving technique used. I would welcome someone on VHF, where there is no noise, copying the same picture (a clean, original file) with and without the REALTIME enabled, so I can make a more detailed analysis. Please state what computer processor/speed was used. My VCR is not clean enough to run a meaningful test. EXPERIMENTER'S INFO To simplify the use and modification of these programs by experimeters, some of the conventions used are detailed here. First of all, the file bytes are the raw data as received. If you sub- tract the number 138 from each of them and XOR the result with 63, you will get the actual color amplitude for that byte in 6 bit format. Conversely, you can take a picture in 3x6=18 bit format and convert each of it's bytes to the SSTV format by XORing each byte with 63 and adding 138 to the result. The symbol, LL, refers to total line length (measured in bytes/line) in a picture. This includes sync bytes, picture bytes, etc. The symbol L refers to the byte count in a single color frame line. This also is the number of pixels in the color picture. Since there are 3 colors, 3xL would equal to the line length, LL, if there were no sync bytes. In the AVT modes, there is no line sync, so there 3xL=LL. The symbol I is the mode chosen. Or in one case where two modes are used in a program, J is used for the second mode. The symbol FS is used for frame sync. If this is called out in a mode, then a routine is inserted which holds the program captive until a 1200 hz sync is received before it allows the frame to be copied. Parameter DE allows you to adjust the delay after frame sync before the picture copying begins. LT denotes line timing with LT3 being line timing for mode 3. D% represents the number of lines in the picture mode. DR$ is the letter assigned to the RAMDISK (with quotes, "d"). SW is the line sync window in TIME clock counts (approxi- mately in microseconds). EA is the number of bytes used by the line sync when it is present. In the viewing program, this same number is POKEd into memory location, &H3EA, which is where it got it's name. In the transmit program it is the bytes thrown away in each line of the file being transmitted and replaced by sync. It is identical to the above except in the non-synchronously copy modes , (11) and (22). VC is the video card choice. S% is the number of bytes a picture was scrolled to get it aligned for SAVEing. It is returned as an output when you run the VUing program. It gets converted to it's 4 byte form as S! in RT.BAS. SC is used in the transmit program and represents the number of 1/2 cycles of the sync frequency (1200 hz) transmitted on each line. LI is used as the number of picture lines in the TIFCONV program. This program also uses Z as the byte value to be inserted in blank bytes. Z=138 is white; Z=249 is black. The files as SAVEd have the picture color bytes placed in 3 successive groups of bytes, each group being L bytes long. Then the line sync bytes (if they are used in the particular mode) are tacked on to the end of each line. The DEF SEG statement in each of these programs tells the program where in memory to place the program. All of the programs are relocatable, so if you find interference between some TSR resident program and one of these programs, you may be able to move it up to keep from overwriting the TSR (typically, this shows up as a computer hang-up which can only be cleared by re-booting). You still need enough memory between DEF SEG and &HA000:0000 to accom- modate the pictures you want to copy. If you find all of your Robot pictures are initially too green or too purple, you can change the number 10 in line 1371 (in both memory locations) of RT.BAS to better center it for your particular tuning habits. If you find that you want to reset the default setting for the color registration on a mode, you can find out what the desired values are by first using C and X to get what you like with the VU.BAS program. Then when you return to BASIC, type PRINT PEEK (&H3EA). This will be the new value to poke into &H3EA for this mode. Then PRINT PEEK(&h15D) and call the value A. Then PRINT PEEK(&H15E) and call the value B. Then PRINT PT. The new value for L, the color frame width, then is L = A + 256*B + PT. These values are added back into the program and SAVE'ed. This capability is not available in the Robot modes. The color shades display at the beginning of the 256 line modes has my call sign (K3BC) superimposed over it. In order for you to change it to your call sign, you'll need to learn a bit about how two-color (or 1 bit) images are formed. If, for example, in the call sign array of bytes you wanted to make the first 8 pixels overwrite white, you would make the first byte equal to 255 or in hexidecimal, &hFF (which is 1111,1111 in binary). To paint the first 4 pixels out of 8, the first byte would be &hF0 (in binary equals 1111,0000). Look at the lines starting at 780 in the TX.BAS program, at line 3430 in VT.BAS, and at line 2400 in the RT.BAS program to see how to figure out what DATA bytes to include to get your call sign. Once you determine the DATA array for your call sign insert it in all three programs. If you have 6 characters in your call sign it'll be a bit crowded---time for an upgrade! Don't try to change the number of DATA bytes. If you're too lazy to figure this out, you can signal that to the world by changing all the DATA line bytes to 0, which removes the call sign. If you belatedly decide to save a picture and haven't yet overwritten it in D:a.p then you can recover by LOAD "RT" and then typing a temporary line---- 880 GOTO 890. Now execute the program choosing the same mode as was used to capture d:a.p. The picture will show up and you can scroll it to the proper position and SAVE it. You can move any file to d:a.p and re-scroll it this way if you don't like the initial choice you made when you saved the file. Or if you want to transfer a part of one file to another using LABEL, use this method to scroll the transfer image to where you want it, and use the new file as a background file. In the transmit program, each mode has it's VIS code poked into memory location &h3A5. The delay (in pixels) between the end of the VIS code and the beginning of the red frame is poked into memory locations &h523 (LSB) and &h510 (MSB). This delay is switched in by the poke, poke &h52B,227, and is used in S1, S2, and WR96. The pokes into &h373, &h374, and &h375 are to switch a path inside the program for modes which have the 16 line gray shade header. A few of you may have a SVGA card which only supports 640x400x256. You can still view up to 200 lines of picture, but the perspective stretches the picture vertically by a factor of 480/400 in the 240 and 256 line modes. The programs are constructed to use the 640x400 mode for the AVT94 (mode 6) only. There are a number of lines which state: IF I=6 THEN POKE &h113 or &H398 with some number. If you take these lines and eliminate the "IF I=6" con- straint you will use the 640x400 for all modes: specifically you delete the words "IF I=6 THEN" in each line and leave the POKE. In the RT.BAS program, the lines affected are 1765, 1815, 1875, 1925, 1995, and 2045. In the VU.BAS, VT.BAS, TIFCONV.BAS, and SLIDESHO.BAS programs the affected lines are 1590, 1635, 1685, 1735, 1787, and 1835. In PCXLABEL.BAS and TIFLABEL.BAS the lines affected are 1540, 1610, 1680, 1740, 1820, and 1890. Strictly speaking, you only need to eliminate the constraint for the partic- ular Video Card choice you are using. To my surprise, a few sys- tems have shown up with 640x480 but not 640x400. If you have this, just eliminate all of the above lines, and mode 6 will be painted in the 640x480 screen (the easiest way to eliminate them is to put an apostrophe before the first word in the line, leaving the words there in case you get another video card at a later date). COPYRIGHT NOTICE These programs were developed for the free use of other Radio Amateurs but since they might have other commercial use, I have registered them with the U.S. Copyright Office. Radio Amateurs are free to make copies for other amateurs provided no monetary compen- sation is involved. Any other use for commercial purposes is for- bidden without specific written permission from the author. Note that the individual core machine language files are copyrighted so they may not be copied and sold as part of any commercial venture. Shareware vendors may not reproduce these programs. Also, copies may not be made to ship with any package for which monetary compen- sation is charged. Please help me police this! Have fun, Ben Vester, K3BC 8/31/94