home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Graphics 16,000
/
graphics-16000.iso
/
msdos
/
viewers
/
shwgif51
/
showgif.doc
< prev
next >
Wrap
Text File
|
1990-11-25
|
33KB
|
1,057 lines
//////// // ///// //// //////
// // // // //
/////// ///// //// // // // // // /////
// // // // // // // // // // // //
/////// // // //// ////// /////// //// //
Version 5.1
Written By
Bill Parquet
and
Dave Sharpless
Copyright July, 1990
Introduction
-------------------------------------------------------------
How often have you downloaded a GIF file from your
favorite BBS only to discover you wasted maybe 15 minutes and
50,000 bytes of download credits on an array of dots that
doesn't deserve to be called a picture, or had a "bad code in
file" after the first 10 lines? Wouldn't it be better to see
the picture as you are getting it? Just abort the transfer,
saving your time and credits for something more worthwhile if
you don't like it? If so, SHOWGIF is just the program for
you! It is a TSR that quietly waits for the system to begin
writing a GIF file. Once writing begins, SHOWGIF switches to
the appropriate VGA or EGA video mode, and shows the picture
as it is coming over. Unlike other view it while you get it
setups, it works with nearly ALL protocols available.
System Requirements
-------------------------------------------------------------
For SHOWGIF to operate properly, your system must be
equipped with an EGA, VGA, or Super-VGA video card. It also
requires about 32k of memory (mostly for GIF decoding).
Configuring ShowGIF
-------------------------------------------------------------
The first step in operating ShowGIF is the setup.
Configuring ShowGIF is a simple process. The first thing to
do in this process is to select a setup file which best
matches your card. Each of these files has the extension
CNF. The first line of each of these files contains the name
of card that it corresponds to. Pick out the one which best
matches your video setup.
Once you have selected the setup file for your system,
run CSHOWGIF followed by the name of the name of the file
that you have selected. For example "CSHOWGIF VGA.CFG"
CSHOWGIF will print out the current setup and load in the new
setup. It will inform you if you are using an unsupported
bank switching method or if a resolution is unlikely.
The final phase of the setup involves series of
questions relating to how the operation of ShowGIF. Most of
these options can be altered with the use of command line
options, but are also available here for convenience. The
first question refers to the message delay. It is the amount
of time (in 0.054 second clock cycles) that the result of the
view remains on the screen before returning to the original
display. Normally it is 36, or about 2 seconds. You MUST
enter a number here (the original setting given for
reference). Next you're asked if you want to enable or
disable stream and extension detection methods. If you hit
enter for either of these, than the existing setting will be
used. The implications of each will be discussed later.
(NOTE: CSHOWGIF will not let you turn both methods off
because ShowGIF would not have any way to detect a GIF file).
Finally it asks if you wish ShowGIF to pause after the
display. This is probably best left off. If enabled,
ShowGIF will wait for a key before removing the picture.
Like before, enter will keep the existing setting.
The next changes are optional. CSHOWGIF will ask you if
you wish to redefine the keys. Enter or 'N' will skip this
phase. If you do wish to change the ShowGIF keys, hit 'Y'.
It will then ask you that key to hit for aborting the view
(normally BACKSPACE). Press the key that you wish to use.
Next, it will ask you the key to use for blanking the screen
(normally TAB). Press the key that you wish to use. Shift
key sequences aren't recognized by either prompt, meaning
CTRL C will be the same as SHIFT C, ALT C and C by itself.
CSHOWGIF will not stop you from setting both functions to the
same key, but you setting it as such will disable the screen
blanker. NOTE: If you do reconfigure the keys, make sure
they aren't keys that your protocol uses. These may included
keys such as ESC, CTRL-C, CTRL-X. ShowGIF will trap these
keys and prevent you from aborting your transfer. When you
have finished, a reconfigured copy of ShowGIF will be written
to disk.
Operation Instructions
-------------------------------------------------------------
Once you have ShowGIF configured, all you need do is
type "SHOWGIF" before you load your favorite terminal program
and it will be ready to use. Once you begin downloading a
GIF file, or an archive that contains GIF files, ShowGIF will
start, and begin displaying the data as it goes to disk.
ShowGIF may not start immediately, as it must wait until it
has collected enough information about the picture to begin
drawing. It will usually "kick in" after the second
Ymodem/Zmodem block. If anything goes wrong during the
transfer, ShowGIF will abort and give you a message
explaining what happened. If the transfer goes successfully,
ShowGIF will finish with a "view successful" message. After
you finishing your session in the terminal program and return
to DOS, type "SHOWGIF /u" to remove ShowGIF from memory.
Batch Files
-------------------------------------------------------------
We recommend that you create that (if you haven't
already) you create a batch file that loads ShowGIF, loads
your terminal program, then unloads ShowGIF. This prevents
ShowGIF from occupying memory any longer than it has to, and
it helps to prevent the side effects mentioned later. If you
plan to use ShowGIF in immediate mode, another batch file
should be created. It should enact the setup for immediate
viewing and pass the file you wish to view. There will be
much less hassle with command-line switches and accidental
installations.
Here are a few sample batch files:
@echo off
showgif
e:\modem\qmodem.42\qmodem
showgif /u
@echo off
showgif /p:+ /d:1 %1
The first one installs ShowGIF, runs a terminal program,
then uninstalls. The second uses ShowGIF's immediate mode to
view a given GIF file with pausing on, then exits.
ShowGIF function keys
-------------------------------------------------------------
When active, ShowGIF allows you to perform two
functions. (This includes both immediate mode and during
file transfers) The first function is "Abort-View" It aborts
the ShowGIF file viewer, but not the transfer itself. I
don't see any practical use for this other than in immediate
mode when you've "seen enough of the picture." During a
download, you can just abort the transfer itself and ShowGIF
will abort with it.
The second function is an "on-demand" screen blanker.
Its there to prevent those particularly embarrassing moments
when your spouse walks into the room and happens to notice
that you are downloading that new X-Rated picture. Despite
that there is nothing on the screen, the download and view
will progress normally. Any subsequent keypress will unblank
the screen. The screen will automatically un-blank when
ShowGif finishes (ie at end of transfer or if an error
occurs).
The default settings are backspace for abort view and
tab for blank screen. You may change these with CSHOWGIF.
Note that, Shift/Ctrl/Alt shift key combinations are NOT
recognized! (ie Shift-X, Alt-X, Ctrl-X, and X are all the
same). ALSO NOTE: do not choose combinations that your
protocol uses for its functions. For example, if you're
protocol uses Ctrl-C to abort the transfer, don't set blank-
screen to C.
How ShowGIF Works
-------------------------------------------------------------
*** General Description ***
DOS contains several services for opening, closing,
writing to files. ShowGIF positions itself between the
application program (usually your terminal program or
external protocol) and the DOS. In this position it
intercepts calls to DOS, checks to see if they are of any
importance, then passes them along to DOS unaltered. This
sounds dangerous and destructive but, in this situation, it
is beneficial.
ShowGIF can be in one of two states when it intercepts
these DOS calls. The first state is where it monitors all
the open and write calls. If one of these calls implies that
a GIF file is going to disk, ShowGIF makes note of this file
and switches to the second state. In the second state,
ShowGIF monitors write and close calls. If the write is to
go to aforementioned file, ShowGIF intercepts the data and
decodes it to the screen. If it sees that the application is
going to close the file one of two things happens. It will
either print "View Successful" or "Transfer Aborted or File
Incomplete" depending on whether the decoder finished and
switched back to the monitoring state.
All this happens unbeknownst to the file transfer
software. The software assumes that it is performing normal
opens, writes, and closes. The upshot of this is that
downloads with ShowGIF and downloads without ShowGIF are
identical, or nearly so.
*** Modes of Detection ***
In ShowGIF 5.1, unlike previous versions, there are two
ways in which a GIF file can be detected. They are:
- Detection by Filename-Extension -
This is the original method of detecting GIF files. If
a file opens with the GIF extension, ShowGIF will start and
begin decoding. The advantages to this method are that it is
very simple and quick. The disadvantages to it are that it
will not detect a GIF file when the picture in circumstances
such as when the protocol uses a temporary name than does not
have the GIF extension (as in Procomm Plus and SeaLink) or
when the GIF file is in an archive (a common practice among
misinformed people).
- Detection by File Streams -
Detection by file streams works by monitoring the output
to all the open files, and checking this output for the
presence of the keyword "GIF87a." This will detect a GIF
file with any name and even if its part of another file (such
as stored in a ZIP file). Unfortunately, this method may
slow down drive access (although not noticeably) and may
cause it to start unnecessarily. (For instance, it would
believe this text file is a GIF because of the header string
listed above).
Command Line Options
-------------------------------------------------------------
/u : Uninstalls ShowGIF. This returns all the memory
used by ShowGIF and restores the system vectors
tapped by ShowGIF. The Uninstall routine was
repaired somewhat, but if it still causes
trouble, MARK & RELEASE can be used
successfully. A word of warning to the wise:
If you install ShowGIF and install another TSR,
then uninstall ShowGIF, memory will become
fragmented (not unlike fragmentation on your
hard drive) and your computer will probably lock
up the next time you load a program.
/e+
/e- : Enables or Disables detection of GIF files by
the extension of their filename. These switches
can override the setting made during
setup.
/s+
/s- : Enables or Disables detection of GIF files by
the contents of the file output streams. These
switches can override the setting made during
setup.
/p+
/p- : Forces or prevents ShowGIF from waiting for a
keystroke after displaying the picture. This
allows you to admire the picture for a little
bit after drawing is complete. This will
override any setting made in setup. You may
want to enable this feature for viewing GIFs in
immediate mode: "SHOWGIF /p:+ KYM256.GIF" or if
you use ShowGIF for viewing GIF files.
/d:xx: Sets a delay for the result to remain on the
screen after viewing is complete. xx may range
from 1 to 255, and is proportional to the number
of seconds (divide by 18.2)
/b : Disable BIOS video trapping. I put BIOS
trapping in on a bit of a whim and I'm not
absolutely sure of the consequences of what I've
done. Nothing should go wrong, BUT if something
does I've included this switch.
'File': Displays a certain file then exits. (Immediate
mode). You may wish to use the /p:+ switch
with this command. An example would be "SHOWGIF
BALLONS.GIF" [sic] in which showgif would
merely display that picture then exit.
/h : Displays a help screen listing all the commands
(except /b)
ShowGIF messages
-------------------------------------------------------------
*** Run-Time messages ***
"Bad Code In File" Usually means that the picture data is in
some way garbled. For those interested, it means that
ShowGIF encountered a Zev-Lempel code that exceeded the
acceptable range.
"Damaged parameter block" ShowGIF found that the screen
resolution request was unreasonable (ie 320 ≤ x-resoution ≤
1280 and 200 ≤ y-resolution ≤ 1024) or the local picture size
is larger than the requested resolution. This usually
indicates that the text 'GIF87a' was encountered in a text
file.
"Not a GIF file" A file with the GIF extension was created,
but the first 6 characters don't match the GIF header I.D.
Its possible that somebody renamed a file of a different type
to GIF just to annoy you!
"Incomplete picture" This message usually occurs when you
abort the transfer, but it also might occur because the
person who uploaded the picture aborted and the BBS didn't
delete the file. The worst part is there is no way to detect
these until they happen.
"Transfer aborted or GIF incomplete" The defined abort key
was pressed and ShowGIF has returned to protocol's text
screen.
"View Successful" The picture passed through ShowGIF without
any flaws.
*** Installation Messages ***
"ShowGIF: Already Installed" ShowGIF is already ready to
use and won't let you install it twice.
"ShowGIF: /u requires that ShowGIF be installed" ShowGIF
cannot find its resident portion.
"ShowGIF: Cannot open immediate file" You've started
ShowGIF with an immediate filename that it cannot locate.
"ShowGIF: Both detection methods are disabled, aborting
installation" You've attempted to run ShowGIF with no way to
detect a GIF file, so it would just sit in memory uselessly.
You must use /e:+ and/or /s:+ to provide a means for
detection.
"ShowGIF: Invalid switch" Use ShowGIF /h to list the valid
switches.
"ShowGIF: Uninstalled" This just informs you that ShowGIF
has been successfully Uninstalled and memory freed.
Quirks
-------------------------------------------------------------
Most quirks are due to ShowGIF's sensitivity to the
creation of a GIF file alone and not its origin. For
instance, COPYing a GIF file around also will kick in the
viewer.
Answers to common questions
-------------------------------------------------------------
I'm using showgif in immediate mode. The picture comes up
quickly then disappears. Is there any way to make it pause
at the end?
Yes: Use the command line /p:+ or turn pausing on in the
setup. Note that if you turn it on in the setup, you may
want it off in regular use, or else the screen will pause at
the end of a download!
------------------------------------------------------------
Why won't ShowGIF sense when I'm downloading a GIF file?
**Procomm Plus users will experience the problem.
Fortunately, ShowGIF 5.1 addresses this issue with stream
detection. To use stream detection give /s:+ command line or
the change the setup. What usually happens is that the
terminal (or protocol driver) makes a temporary file of some
sort to be renamed after the transfer. This file usually
doesn't have the GIF extension. Stream detection looks at
the file contents instead of the extension.
-------------------------------------------------------------
Why does showgif wait a very long period of time before
starting, and operate in widely spaced bursts?
Users of **Telix's built in Zmodem may experience this
problem. Telix's sending its output to disk in large bursts
causes this problem. Since ShowGIF operates off these disk-
writes (not modem accesses), your problem occurs. The best
solution to this problem is to disable buffering. If you're
using a hard drive to download, the write time for each block
is negligible. If you cannot disable buffering, your other
options are to use a different protocol or an external
protocol driver, or just not let it get to you.
------------------------------------------------------------
Why does ShowGIF activate then deactivate with an incomplete
message, then reactivate?
**Qmodem users have this problem, as Qmodem opens then
closes the file, then reopens it. Either disable extension
detection (and enable stream detection) /e:-/s:+ or just
ignore it. It is harmless.
Why does a lockup often follow uninstallation of ShowGIF?
The most probable cause of this is installing something on
top of ShowGIF. Here is what happens, you install ShowGIF,
then you (mistakenly) install another TSR. After you
finish, you uninstall ShowGIF with the /u switch. Now there
is a 32k unused 'hole' in your used memory. Next thing you
know, a different program tries to fit 200k of data into that
32k hole. Since this data doesn't fit, it over-writes your
TSR in memory. Nothing seems wrong until you try to activate
this now nonexistent TSR...
------------------------------------------------------------
I have a few unusually sized pictures . . .
. . .And ShowGIF won't view them because it looks at the GIF
header and checks to see if the information is feasible.
Horizontal resolution must be between 320 and 1024. Vertical
resolution must be between 200 and 1024, among other things.
I implemented this extended checking to protect the stream
detection against text files that mention 'GIF87a' or the
like. There is no solution to this problem.
-------------------------------------------------------------
Why won't ShowGIF use the whole screen on my Video 7
Fastwrite?
Try issuing the /b command line switch to disable Video Bios
interception. This is the only case I can think of where
this switch may become necessary.
------------------------------------------------------------
ShowGIF wraps the picture around several times in the middle
of the screen or Showgif gets past the first quarter of the
screen and locks up.
Recheck which configuration file you are using. The plane
switching method probably isn't correct, or you are using an
unsupported plane switching technique. Valid techniques are
"NONE" "TSENG" "VIDEO7" "TRIDENT" "PARADISE" "CHIPSNTECH"
and "ATI."
-------------------------------------------------------------
My monitor goes nuts when viewing certain large pictures.
Your monitor may not handle the resolution that your card is
using. Remove the highest resolution from your current
configure file, and try again.
What can I do about ShowGIF significantly slowing down my
file transfer?
Use a different protocol or a different driver. The one
that you are currently using depends on completion of drive
accesses before proceeding with the transfer. Since ShowGIF
"slows down" these transfers, poorly constructed protocols
may suffer.
------------------------------------------------------------
I'm concerned that ShowGIF will interfere with the transfer
itself.
There is no reason to worry about ShowGIF interfering with
the transfers themselves. ShowGIF operates transparently
with most protocols. The only noticeable effect (for the
protocol) is that drive access will be noticeably slower (as
ShowGIF is both "un-GIFfing" the data and writing it to the
drive). If the protocol uses interrupt driven I/O properly,
no loss of speed will occur. Because ShowGIF operates with
the streams of data going to the disk, NOT the streams of
data coming from the modem, protocol reliability is not
affected.
Update Information
-------------------------------------------------------------
1.0 α: First version of SHOWGIF <Not released>
* Converted from a standalone gif decoder into a
decoder/viewer then into a TSR.
1.0 ß: Several features added: <Not released>
* Status report at the end of viewing (Not a gif, bad
code, etc.)
* Support for ATI, TSENG chipsets, separate versions of
the program
* Switch back normal video if d/l is aborted before
viewer is aborted.
* Squeezing pictures to fit 320x200 (MCGA version)
2.0 : Several problems fixed: <Beta Test>
* Code parsing routine completely re-written for speed
* Rest of the main loop translated into machine language
* Lockup after "Picture is not a GIF" message resolved
* Picture information put up while drawing
* Stack frame is normalized after each picture -- no
more lockup's after viewing 'too many' pictures
* 500% overall increase in speed! (benchmark 20 seconds
in 1.0 to 4 seconds in 2.0)
3.0 : Improvements made <Beta Test>
* Support for EGA
* X axis scaling for pictures larger than 320 MCGA,EGA
3.5 : Improvements made <First release>
* One program can handle various video cards
* Internal configuration for video hardware
* Support for 10 more video cards
3.7 : Improvements made <Beta Test>
* 16 color (EGA) modes supported in standard VGA
configuration (640x350 and 640x480)
* Offset picture difficulties corrected.
4.1 : Improvements made <Rare Second release>
* User definable resolutions (compatible with VPIC)
* Better judgement is used when choosing video modes.
4.1B : Cosmetic changes <Preferred second release>
* Mistake in "VGA.CFG" corrected (oops!)
* Thought I fixed the "text at the bottom of the screen
problem" but it still didn't work.
5.0 : A hack
Version 5.0 is NOT a valid release. If you have a
version 5.0 it <MAY> have a virus and should be deleted
IMMEDIATELY
5.1 : Many Improvements made <Third release>
* Opening screen
* EGA routines GREATLY improved -- 3x's improvement in
speed
* Initialization translated into ml (except EGA color
selection) for compactness & control
* Various sections carefully optimized for a 50%
increase in speed for VGA.
* EGA screen output GREATLY improved for about 250%
improvement in speed overall.
* Bug with viewing certain pictures which are
interlaced/smashed in EGA mode corrected
* File stream detection added.
* Checks the GIF header for information feasibility.
* Immediate mode GIF viewing.
* Control over the delay after viewing.
* Optional press a key pause after picture display.
* Bios video functions disabled during view.
(Note: if this causes problems, it can be disabled
with the /b switch)
* More extensive command line options.
* Bug with uninstall corrected (I think!)
* Problems with memory allocation fixed (Doesn't take
any more memory then it really needs -- only about
30k)
* Abort-view key made more responsive (though I don't
really see a need for using it)
* On-demand screen blanker added.
* Ability to redefine the control keys.
Shareware notice
-------------------------------------------------------------
The registration fee for ShowGIF is $30. For this we
will give you:
1) A registered ShowGIF on 5 1/4 floppy (unless
otherwise specified) with Super-VGA support, and the
lengthy title screen removed.
2) A lovely printed version of the documentation.
3) Notice of future updates.
If you wish to contact me, Call The Henrietta Outhouse
(216/965-5463) or my board (419/531-2693 9p-9a weekdays only)
BILL PARQUET
30231 BATES RD.
PERRYSBURG, OHIO 43551-3827
Software Credits
-------------------------------------------------------------
I will give credit for all the software that I have
mentioned throughout this document.
**VPIC is a first rate picture file viewer (if you ignore all
the bugs). 2.9 is the newest version at the time of this
writing. VPIC may be obtained from:
BOB MONTGOMERY
132 PARSONS RD
LONGWOOD FL 32779
**GIF is a trademark of Compuserve, an H&R Block company.
**Qmodem may be the best communications program in existence.
4.2 is the newest version at the time of this writing.
Qmodem can be obtained from:
THE FORBIN PROJECT, INC.
POST OFFICE BOX 702
CEDAR FALLS, IA 50613
**Procomm Plus is a terminal package made by:
DATASTORM TECHNOLOGIES, INC
POST OFFICE BOX 1471
COLUMBIA, MO 65205
**Telix is terminal package made by:
EXIS, INC
POST OFFICE BOX 130
WEST HILL, ONTARIO
M1E R4
**Mark & Release are TSR management programs and are
copyrighted by Turbo-Power software:
TURBO-POWER SOFTWARE
POST OFFICE BOX 66747
SCOTTS VALLEY, CA 95066-0757
Kudos
-------------------------------------------------------------
I'd like to think a few people, without which, ShowGIF
would be far less complete.
Dave Sharpless: For programming the plane switching
routines, entering the large amount of card information in
the first release. Writing the intro for release 4.1 and the
intro for future release 5.5 or 6.0 (the intro is done, now
all I have to do is write the program!) and urging that I
charge a fee for this.
John Sharpless: Sysop of the Henrietta Outhouse III, For
bringing ShowGIF's success & distribution. ShowGIF would
probably only be used by the three of us and a couple people
in Toledo if it weren't for him.
Thank you for using ShowGIF!