Category : BBS Programs+Doors
Archive   : GIFGAT11.ZIP
Filename : GIFGATE.DOC

Output of file : GIFGATE.DOC contained in archive : GIFGAT11.ZIP

Ý *>>> GIFGATE <<<* Þ
Ý GIF Picture Tester for BBS Systems Þ
Ý By Dan Drinnon Þ
Ý Ver. 1.1 Þ
Ý Copyright (c) 1993 Daniel T. Drinnon Þ
Ý All Right Reserved Þ

What is GIFGATE?
GIFGATE provides testing of GIF pictures for BBS uploads. It uses command
line options which allow it to only test a GIF picture for desired properties.
GIFGATE is also capable of wildcard support and can be used offline to test
a group of GIFs as well. It is written entirely in 'C' and is quite fast.

You are FREE to TEST GIFGATE for a period of 1 month. After which you must
either REGISTER it or cease using it.

The cost for registration is very CHEAP - $10.00 and well worth it.

GIFGATE is NOT crippled in it's unregistered form. All features are enabled,
with the exception of 'quiet' mode. 'Quiet' mode is always disabled to
remind you that you have to register. There is no size limit or any other
limitations which will make GIFGATE not test a GIF.

GIFGATE is Tamper Protected. If you attempt to change or alter GIFGATE's
code, GIFGATE will not test a GIF and complain to you that it has been

GIFGATE DOC - This Documentation
TGIF BAT - Sample BBS Batch File
RELAX BAT - Sample BBS Batch File
GIFGATE EXE - Generic GIFGATE program
GIFGATE 286 - 286+ GIFGATE program

(rename GIFGATE.286 to GIFGATE.EXE to use GIFGATE on a 286 or higher)

PROECHO COM - Or any BBS utility which will echo a message out the COM
port during GIF testing.

There is no config file for GIFGATE. All options are specified on the
command line. GIFGATE's command line syntax is:

GIFGATE filename [option] [option]...

ex: GIFGATE PICTURE.GIF /w800 /h600 /c256 /t /g /lGIFGATE.LOG

By typing GIFGATE by itself at the DOS prompt, you can review all of GIFGATE's

The filename may be any valid DOS file name with path if needed. Wildcards
are ok, however, with wildcard testing of GIFs, no ERRORLEVEL exit of GIFGATE
will occur as more than one GIF is being tested.

There are several OPTIONS available. Options may be in any order and must
always be prefixed with a "/", then the option letter, and finally the option
value to test for (if required). An option must be separated from another
option by a space. (see example above)

GIFGATE's Options Are:

/wxxx - minimum WIDTH to Pass ex: /w800
/hxxx - minimum HEIGHT to Pass ex: /h600
/cxxx - minimum COLORS to Pass ex: /c256
/yxxxx - earliest YEAR to Pass ex: /y1993 -or- /y93
/sxxx - minimum BYTES to Pass ex: /s100000
/g - Do not Pass GIFLite'd GIFS

All the above options are 'limiting' options. If you do not want to test a
GIF for any of the above, do not include the option in the command line.

/t - Trim off excess bytes from padded protocols transfers
/lNAME - Log all activity to filename ex: /lGIFGATE.LOG
/q - Quiet mode - display only program/input errors
/r - Relaxed Errorlevel Exits
/m - mono mode - turns off the color display while GifGate runs

Indepth Description of GIFGATE's Options:
/w Minimum Width - This is the minimum width to allow GIFGATE to Pass.
For clarity, if you specify /w800, that means do NOT pass a GIF that
is 799 pixels wide, but DO pass a GIF that is 800 pixels wide.

/h Minimum Height - This is the minimum height to allow GIFGATE to Pass.
For clarity, if you specify /h600, that means do NOT pass a GIF that
is 599 pixels in height, but DO pass a GIF that is 600 pixels wide.

/c Minimum Colors - This is the minimum amount of colors to allow
GIFGATE to pass. For clarity, if you specify /c256, that means do
NOT pass a GIF with 255 colors, but DO pass a GIF with 256 colors.

/y Minimum Year - This tells GIFGATE to pass a GIF only if it is dated
the year you specified or later. Note that a GIF upload via a
'dumb' protocol such as X-Modem will have the current date for the
year - this option is only effective when the GIF that has been
uploaded was uploaded with a protocol which keeps the file intact,
such as ZModem.

/s Minimum Size - This is the minimum size to allow GIFGATE to Pass.
For clarity, if you specify /s100000, that means do NOT pass a GIF
that is 99999 bytes in size, but DO pass a GIF that is 100000 bytes
in size. Note that the size must always be in bytes.

/g Check for GIFLite'd GIFs. If a GIFLite'd GIF is found, then GIFGATE
will not pass the GIF.

/t Trim - This option allows GIFGATE to trim off excess bytes which
usually are attached to the end of any file by an X-Modem type
protocol transfer. Note that if the GIF to test is padded and the
/t option is selected, the GIF's archive bit will be set high.
* A "trimmed" GIF will NOT cause a fail!

/q Quiet Mode - This forces GIFGATE to only print to the screen any
program or input errors. All testing activity is suppressed from
the screen. This option is disabled in the UNREGISTERED version!

/r Relaxed Mode - This tells GIFGATE to use 'relaxed' ERRORLEVEL exits.
Please see heading on ERRORLEVEL Exits for detailed information.

/m Mono Mode - GifGate defaults to using color for display of what it
is doing. If you do not want color, add /m to turn color off.

/l Log - This option enables GIFGATE to log it's test results to a
log file of your choice. If the log file does not exist, GIFGATE
will create it. If the log file does exist, GIFGATE will APPEND to

GIFGATE's Log file format is as follows:


FILENAME = name of GIF tested
SIZE = true size of GIF
DATE = date of GIF
X = width of GIF
Y = height of GIF
CLR = colors in GIF
FAIL-FLAGS = What GIF may have Failed for:
- W = failed /w
- H = failed /h
- C = failed /c
- S = failed /s
- Y = failed /y
- G = failed /g
- T = Trimmed File

GIFGATE will exit with a number of possible errorlevel exits. What you do
with the errorlevel exit is HOW you interface your GIF test BATCH file to
your BBS. Two separate BATCH files have been included for examination.
They are written for RBBS-PC systems, but can be easily modified to fit
your needs. Please refer to your BBS documentation to implement a working
batchfile using GIFGATE!

There are two levels of testing with GIFGATE. The 'relaxed' mode which
forces GIFGATE to return very simple ERRORLEVEL exit codes, and the normal
mode inwhich GIFGATE returns an 'encoded' ERRORLEVEL exit value.

Both modes of operation, normal and relaxed will return the following common
ERRORLEVEL exit values:

255 - Program or Input Error
This will happen if:
GIFGATE has been tampered with
GIFGATE could not open the file to test

254 - GIF File not found
This will happen if:
GIFGATE could not FIND the file specified to test

253 - Error Opening Log File
This will happen if:
GIFGATE could not create the log file specified
GIFGATE could not open the log file specified

250 - Invalid GIF File Format
This will happen if:
GIFGATE detected that the file to test is NOT a GIF

GIFGATE's relaxed mode of operation will return the following ERRORLEVEL exit
values after a successful test:

252 - GIF was GIFLite'd.

251 - Dimensions or Colors below minimum specified
This means that the GIF failed for /w, /h, or /c or any combination
ot these three options.

GIFGATE's normal mode of operation will return the follwing ERRORLEVEL exit
values after a successful test:

32 - GIF was GIFLite'd

16 - Year was before minimum specifed with /y option

8 - Size of GIF was less than minimum specified with /s option

4 - Colors in GIF was less than mimimum specified with /c option

2 - Height of GIF was below minimum specified with /h option

1 - Width of GIF was below minimum specified with /w option

Note that normal ERRORLEVEL exits have the values 1,2,4,8,16 and 32. These
values must be ADDED together to determine exactly what failed in the GIFGATE
test. The easiest way to explain how this works is to show an example.

Suppose the GIF to be tested is 640x480 with 16 colors.

And the GIFGATE command line is:

GIFGATE TEST.GIF /w800 /h600 /c256

GIFGATE will exit with ERRORLEVEL 7. Where does the 7 come from? By ADDING
the values of the ERRORLEVEL exits together, 1 + 2 + 4, we get 7. The 1 is
because the WIDTH failed, the 2 because the HEIGHT failed, and the 4 because
the COLORS failed.

Suppose the GIF to be tested is 640x480, 16 colors, GIFLite'd and the
GIFGATE command line is:

GIFGATE TEST.GIF /w640 /h480 /c256 /g

GIFGATE will exit with: 4 - COLORS
+32 - GIFLITE'd

One Final Example, if the GIF to be tested is 320x200, 16 colors, 1600 bytes,
dated 1989, and GIFLite'd and the GIFGATE command line is:

GIFGATE TEST.GIF /w640 /h480 /c256 /s50000 /y92 /g

GIFGATE will exit with: 1 - WIDTH
8 - SIZE
16 - YEAR
+32 - GIFLITE'd

By examining the mere size of TGIF.BAT, which handles all possible ERRORLEVEL
exits in normal operation, you can see the purpose of having the less
complicated 'relaxed' (/r) mode - DOS takes a while to go through a large batch
file looking for a label. However, the normal operation does allows greater
flexibility for you as a BBS operator to tell your uploaders why a GIF may have

It is highly reccomended that you modify TGIF.BAT to your needs if you choose to
use the normal mode of operation, but it is suggested to leave the ERRORLEVEL
GOTO labels alone!

GIFGATE currently does NO GIF integrity checking. Integrity checking means
here that a GIF could pass if the upload was incomplete, or the number of
blocks in the GIF are incomplete. If GIFGATE becomes accepted, then intergrity
checking will be added in as a command line option.

If you are running DOS SHARE, you MUST change the file attribute of GIFGATE.EXE
to READ ONLY to prevent a SHARE VIOLATION! A SHARE VIOLATION will occur if you
do not do this when running SHARE because GIFGATE.EXE opens itself up for
INTEGRITY CHECKING when DOS has already OPENED GIFGATE.EXE and because there is
some internal overlay operations with GIFGATE as well.

You are FREE to TEST GIFGATE for a period of 1 month. After which you must
either REGISTER it or cease using it.

Programmers are not documentation writers. I hope I have made the documentation
here clear enough to understand and get you on your way. If you need help,
check your BBS software help. I will ONLY offer assistance to RBBS-PC sysops!
Other sysops must find their own way for support on how to implement external
upload testers. If you paid for your BBS package, consult the company or
person you gave the money to.

Registered owners of GIFGATE WILL receive as much support as I can give them.
See Reaching the Author, below.

You are responsible for any use or misuse of GIFGATE. I (DAN DRINNON) have
no liabilty for GIFGATE's operation on your system, for any damage or loss
GIFGATE may cause on your system or anywhere else. GIFGATE has internal
integrity checking for itself, however that does not disclaim that GIFGATE
may have been tampered with. YOU USE GIFGATE at your OWN RISK!


To reach the author, enter a message in the RBBSNet RBBS-PC echomail
conference or log onto the Cellar Door and leave a message there. Paging
hours are from 5:30pm - 11:30pm Mountain Time. I can try to help you out
if you have any problems. The BBS number is at the bottom of this document.


1.00 - 05-01-93 Initial Release
1.10 - 05-06-93 Added Color, Turned on CTRL-C Handling, Spelling Corrections

GIFGATE Copyright (c) 1993 All Rights Reserved
(505) 763-1795 RBBSNet 8:903/2 FidoNet 1:313/6