home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 17
/
CD_ASCQ_17_101194.iso
/
vrac
/
vester_e.zip
/
TVINFO.TXT
< prev
next >
Wrap
Text File
|
1994-08-01
|
113KB
|
3,427 lines
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, so that has to be con-
sidered..
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 and RE=0 in line
3280 if you only have a 256 color board. After making the selec-
tions, 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,crystal-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 calculated
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 illustrated 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 fre-
quency 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. 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 M1, 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.
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
receive and 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.
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.[NOTE: This feature
was added in Rev A; then in Rev B we inadvertently disabled it.
While we fixed the error fairly quickly on the ARRL BBS, some early
downloads had this error. It is OK in Rev C.]
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. In the AVT headers, 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 .ARC 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 (pkxarc a:*.arc
d:) for this.
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.
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.
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.
TGACONV also has direct SAVE capability.
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/1/94