PCjs Machines

Home of the original IBM PC emulator for browsers.

Logo

PC-SIG Diskette Library (Disk #2277)

[PCjs Machine "ibm5170"]

Waiting for machine "ibm5170" to load....

Information about “GRAPHIC WORKSHOP, GRAFCAT, CROPGIF”

Need to convert .GIF or .PCX files for inclusion as halftoned art in
desktop publishing, or use MACPAINT pictures for WORDPERFECT?  Then try
this program -- the last word in image programs.

It converts, prints, views, dithers, transforms and halftones:
MACPAINT, GEM/VENTURA, .IMG, .GIG, .TIFF, .WPG, .MSP, and .ESP files.
Batch processing is featured if you need to convert many files.
Extended and expanded memory are supported.  It has an intuitive user
interface and easy-to-follow menus.  With GRAPHIC WORKSHOP, you can
even convert color image files into superb black and white clip art for
desktop publishing.

Other features:

~ Rotate image files in 90  increments.

~ Flip image files horizontally and vertically.

~ Print to most laser and dot matrix printers.

~ Support for .IFF/.LBM files allows pictures which originate in Amiga
and Deluxe Paint files to be converted into more common PC formats.

Print a visual catalog of your image files, sixteen to a page.  Drive
all LaserJet and PostScript laser printers, and work with any mixture
of.GIF, .MAC, and .IMG files.

Crop smaller fragments out of your .GIF files. Use the GRAPHIC
WORKSHOP to convert other formats into .GIF files for cropping.
CROPGIF uses a simple mouse interface to make cropping image fragments
no more complicated than using a paint program.

CROPGIF.DOC

GIF FILE CROPPER 1.1
__________________________________________________________________

If you like this program, please do one of the following:

Go down to your local bookstore and buy a copy of "Coven: A 
Novel", by Steven William Rimmer, published by Ballantine Books. 
In Canada, try Coles... they usually have it. Read the book and 
tell your friends about it if you like it. Send us some comments 
about the book or a photocopy of the cover and we'll consider you 
a registered user of this program.

Alternately, send us $25.00, the normal user fee for this 
software. (The book is $3.95 or $5.50 in Canada: considerably 
cheaper than cash.) 

Registered users of this software are entitled to phone support, 
notification of upgrades and good karma. Our address can be found 
at the end of this file.
__________________________________________________________________


Thanks for checking out CROPGIF.

This program will allow you to crop fragments from existing GIF 
files. The fragments will be written to new... smaller... GIF 
files. 

Unlike other GIF cropping programs, this one doesn't involve the 
use of any tricky measurements. It works like the cut and paste 
functions of a paint program. It requires that a Microsoft 
compatible mouse driver be present before it will work, as the 
mouse does all the work.

In order to make the program work reasonably fast and in a 
decent amount of memory, the image you'll get to work with 
will not be a full colour one. Instead, CROPGIF will show you a 
dithered monochrome version of your source GIF file. However, the 
destination file will have the same colours as the source file 
did.

Because the CROPGIF display works with monochrome graphics, it 
can be used with pretty well any display card. It supports:

	- CGA (ugh!)
	- EGA
	- VGA
	- Hercules monochrome

and, of course, anything which can emulate these modes. It should 
automatically sense your display card type.

Here's how the beast works. Let's assume that you have a GIF file 
called ANGELA.GIF, from which you wish to crop a fragment to be 
called FACE.GIF. We'll allow that the fragment will probably 
contain Angela's face, although the program itself probably won't 
care.

Note that FACE.GIF, the destination file, will be created by 
CROPGIF. ANGELA.GIF, the source file, will not be modified in any 
way.

Making sure that you have previously loaded your mouse driver... 
and that, prior to doing so you have indeed remembered to buy a 
mouse... you would type the following:

CROPGIF ANGELA.GIF FACE.GIF

In fact, you can leave off the .GIF extensions, as CROPGIF 
assumes these. You will see a beg notice... please don't merely 
ignore this... with the program status below it. CROPGIF will 
begin by loading ANGELA.GIF. It will then proceed to dither 
ANGELA.GIF, that is, to create a temporary black and white 
version of it. When this is complete, your screen will pop into 
graphics mode and you'll see the dithered image.

The dithered image probably won't look too great, but don't worry 
about this. It's only used to help you decide what to crop out, 
and has no effect on the final image.

Move the mouse cursor to the upper left corner of the part of the 
image you want to crop out. Hold down the left mouse button and 
drag your mouse until the bounding rectangle encloses everything 
you want to crop into FACE.GIF. Release the mouse button.

If you discover that you've selected the wrong bit of the picture 
you can click your mouse to erase the bounding rectangle and try 
again.

When you've got the right part of the picture enclosed, hit the 
End key and your screen will return to text mode. The beg notice 
will return... once again, please don't ignore this... and you'll 
see a line at the bottom of your screen informing you that your 
fragment is being written to FACE.GIF.

When this is done, you'll return to the DOS prompt.

If you change your mind and decide you don't want to crop a 
fragment once you're in graphics mode, just hit Esc to return to 
DOS.

Note that if you attempt to crop a fragment in which either 
dimension is less than eight pixels, CROPGIF will assume you've 
made a mistake and abort.

Also note that the cropped fragment will include everything 
within the bounding rectangle and the pixels under the lines of 
the rectangle.


OTHER DETAILS
_____________

CROPGIF uses a fair bit of memory, especially for large GIF 
files. It might refuse to function on machines with restricted 
memory, or on computers which have a lot of resident stuff 
already loaded.

Some of the more voluminous GIF files around might be larger than 
your screen. This probably won't occur if you use a VGA card... 
which will show you up to 640 by 480 pixels in monochrome mode... 
but it could happen on an EGA or Herc system. In this case, you 
can make the picture scroll around by simply moving the mouse 
cursor to the edge of your screen.

If your computer refuses to go into graphics mode, chances are 
you have a multimode card which is confusing CROPGIF. In this 
case, you can manually force the screen mode by adding a third 
command line argument. For example, this would make CROPGIF use 
Hercules graphics.

CROPGIF ANGELA.GIF FACE.GIF /HER

The following are the mode switches which CROPGIF recognizes.

/CGA	- 	CGA card
/EGA	-	EGA card
/VGA	-	VGA card in 640 by 480 monochrome mode
/HER	-	Hercules card in 720 by 438 monochrome mode

Some low rent Microsoft compatible mice seem to have a problem in 
some graphics modes, in that their cursors will refuse to move 
more than about halfway down the screen, flash on and off, vanish 
and so on. The Agiler mouse, for example, is a problem. This 
doesnt happen with real Microsoft mice, or with the better 
compatibles, such as the LogiTech mice.

Some versions of the ATI EGA Wonder card refuse to go into the
Hercules graphics mode under CROPGIF. The EGA graphics mode works 
fine. We're looking into this.


ROLL YOUR OWN
_____________

This is another book plug. If you're interested in writing 
programs which use graphics, you'll find everything you need to 
know in "The Book of Bitmapped Graphics", also by Steven William 
Rimmer. It's published by TAB books, (TAB book 3558) and should 
be available in August 1990. It features code to pack and unpack 
MacPaint, IMG, PCX, GIF and TIFF files, as well as chapters on 
screen drivers, dithering and printing.


MORAL DOGMA
___________

If you like this program and find it useful, you are requested to 
support it either by buying the book mentioned at the top of this 
file or by sending us $25.00. We'd rather you bought the book. 
This will entitle you to telephone support, notification of 
updates and other good things like that. More to the point, 
though, it'll make you feel good. We've not infested the program 
with excessive beg notices, crippled it or had it verbally insult 
you after ten days. We trust you to support this program if 
you like it.
	Oh yes, should you fail to support this program and 
continue to use it, a leather winged demon of the night will tear 
itself, shrieking blood and fury, from the endless caverns of the 
nether world, hurl itself into the darkness with a thirst for 
blood on its slavering fangs and search the very threads of time 
for the throbbing of your heartbeat. Just thought you'd want to 
know that.

We are
                      Alchemy Mindworks Inc.
                          P.O. Box 500
                         Beeton, Ontario
                             L0G 1A0
                             Canada

Other programs we've done that you might like include:

Scoop    -  MacPaint, GEM/IMG and PC Paintbrush file readers, 
            with Epson FX-80, LaserJet and PostScript printer 
            support. Drives CGA, EGA, VGA and Hercules cards. 
            Source code in Turbo C and Microsoft MASM is 
            included for this program.
HP_Slash -  Make LaserJet soft fonts smaller by selectively excising
            those characters you'll never use.
Calendar -  Slick perpetual calendar that tells you when the 
            equinoxes happen, what day Michaelmas fell on in 1705 
            and so on.
gemCAP   -  Capture graphics screen in GEM/IMG paint format, 
            suitable for inhalation into Ventura.
CPM2DOS  -  Read CP/M formatted disks on your PC.
IMGCUT   -  Crop GEM/IMG paint files into smaller files.
ADDRESS  -  Memory resident envelope addresser with graphics.
VFM      -  Ventura soft font manager deluxe with a side of fries. 
            Adds new fonts and creates width tables with menu 
            driven simplicity.
MCOPY    -  Copying program which packs as many files as possible
            onto a floppy, pauses when the current floppy is
            full and asks for another one.
TCAP     -  A text screen capture program which generates GEM/IMG
            graphics that look like your text, all ready for inhalation
            into Ventura.
GRAFCAT  -  Prints a visual catalog of your image files, with 
            sixteen pictures to a page. Drives all LaserJet and 
            PostScript laser printers, and works with any mixture 
            of GIF, PCX, MAC and IMG files.
GRAPHIC
 WORKSHOP - This is the last word in image programs. It converts, 
            prints, views, dithers and halftones MacPaint, 
            GEM/Ventura IMG, PCX, GIF, TIFF and EPS files. It 
            drives CGA, Hercules, EGA, VGA, Paradise and ATI VGA 
            Wonder cards. It features batch processing, extended 
            and expanded memory support, an intuitive user 
            interface and easy to follow menus. It allows you to 
            convert colour image files into superb black and 
            white clip art for desktop publishing, among other 
            things. 

If you can't find them in the public domain, they're available 
from us for $25.00 each, except Graphic Workshop, which is 
$35.00.


REVISION HISTORY
________________


Version 1.1 - Now supports monochrome GIF files.


LEGAL DOGMA
___________

The author assumes no responsibility for any damage or loss 
caused by the use of these programs, however it comes down. If 
you can think of a way a picture program can cause you damage 
or loss you've a sneakier mind than mine.

All the trademarks used herein are registered to whoever it is 
that owns them. This notification is given in lieu of any 
specific list of trademarks and their owners, which would not be 
as inclusive and would probably take a lot longer to type. 
 
That's it...



FILE2277.TXT

Disk No: 2277                                                           
Disk Title: Graphic Workshop, Grafcat, CropGIF                          
PC-SIG Version: S1                                                      
                                                                        
Program Title: Graphic Workshop                                         
Author Version: 1.9                                                     
Author Registration: $35.00                                             
Special Requirements: None.                                             
                                                                        
If you need to convert GIF or PCX files for inclusion as halftoned art  
in desktop publishing, or use MACPAINT pictures for WORDPERFECT then try
this program -- the last word in image programs.                        
                                                                        
It converts, prints, views, dithers, transforms and halftones: MACPAINT,
GEM/VENTURA, IMG, GIG, TIFF, WPG, MSP, and ESP files.  Batch processing 
is featured if you need to convert many files.  Extended and expanded   
memory are supported.  It has an intuitive user interface, and          
easy-to-follow menus.  With GRAPHIC WORKSHOP, you can even convert      
color image files into superb black and white clip art for desktop      
publishing.                                                             
                                                                        
Other features:                                                         
                                                                        
~ Rotate image files in 90 degree increments                            
                                                                        
~ Flip image files horizontally and vertically                          
                                                                        
~ Print to most laser and dot matrix printers                           
                                                                        
~ Support for IFF/LBM files allows pictures which originate in Amiga    
and Deluxe Paint files to be converted into more common PC formats.     
Program Title: GrafCat                                                  
Author Version: 1.9                                                     
Author Registration: $20.00                                             
Special Requirements: Laser printer.                                    
                                                                        
This program prints a visual catalog of your image files, with sixteen  
to a page. Drives all LaserJet and PostScript laser printers, and works 
with any mixture of GIF, MAC, and IMG files.                            
Program Title: CROPGIF (GIF File Cropper)                               
Author Version: 1.1                                                     
Author Registration: $20.00                                             
Special Requirements: 640K RAM, and a mouse.                            
                                                                        
With this program you can crop smaller fragments out of your GIF files. 
Use the GRAPHIC WORKSHOP to convert other formats into GIF files for    
cropping.  CROPGIF uses a simple mouse interface to make cropping image 
fragments no more complicated than using a paint program.               
                                                                        
PC-SIG                                                                  
1030D East Duane Avenue                                                 
Sunnyvale  Ca. 94086                                                    
(408) 730-9291                                                          
(c) Copyright 1989 PC-SIG, Inc.                                         

GO.TXT

╔═════════════════════════════════════════════════════════════════════════╗
║    <<<<  PC-SIG Disk #2277  GRAPHIC WORKSHOP, GRAFCAT, CROPGIF  >>>>    ║
╠═════════════════════════════════════════════════════════════════════════╣
║ To view instructions on how to start all three programs, type:          ║
║     TYPE READ.ME  (press Enter)                                         ║
║                                                                         ║
║ To print out the documentation of each of the three programs after      ║
║     unzipping them, type:  COPY <respective program filename>.DOC PRN   ║
║                            (press Enter)                                ║
╚═════════════════════════════════════════════════════════════════════════╝
(c) Copyright 1990, PC-SIG Inc.

GRAFCAT.DOC

GRAFCAT 2.0

Graphics cataloging program deluxe: 
	Requires a laser printer... LaserJet Plus compatible or
	a Postcript printer... and some graphics to catalog. Works 
	with any mixture of MacPaint, GEM/IMG, PC Paintbrush PCX 
	and GIF files.
__________________________________________________________________

If you like this program, please do one of the following:

Go down to your local bookstore and buy a copy of "Coven: A 
Novel", by Steven William Rimmer, published by Ballantine Books. 
In Canada, try Coles... they usually have it. Read the book and 
tell your friends about it if you like it. Send us some comments 
about the book or a photocopy of the cover and we'll consider you 
a registered user of this program.

Alternately, send us $20.00, the normal user fee for this 
software. (The book is $3.95 or $5.50 in Canada: considerably 
cheaper than cash.) 

Registered users of this software are entitled to phone support, 
notification of upgrades and good karma. Our address can be found 
at the end of this file.
__________________________________________________________________

New features as of version 2.0
______________________________

-       Fixed a bug which caused some sixteen colour PCX files 
        (from programs which didn't really pack 'em properly) to 
        print mangled.


New features as of version 1.8
______________________________

-	Does Bayer dithering, which is faster than the 
	Floyd-Steinberg dither used in previous versions.

-	Supports PostScript as well as LaserJet printers.

-	Supports GIF files, dithering them down to black and
	white before printing. (This requires lots of memory...
	if there is not enough free memory available, this 
	feature automatically switches off and the GIF pictures
	print very contrasty.)

- 	Supports "headerless" MacPaint files of the type used
	by First Publisher. They can be intermixed with normal
	MacPaint files... GRAFCAT will figure out which is which.

-	Fixes a bug in the PostScript printing which caused some
	printers to hang after the first page.

What it Does and Why
____________________

We have seven hundred and sixteen image files in a subdirectory 
called \GEMART. They occupy almost twenty megabytes. We use 'em a 
lot... they're all public domain graphics and we can pop them 
into desktop publishing documents when we want to dress up a page 
quickly or just throw in a nude for effect.

You know, it's damn hard to remember what three hundred and 
seventy five picture files contain. In addition, I think that 
late at night after we've gone away the little mothers breed in 
there.

In order to help figure out what all those file names are, we 
wrote GRAFCAT. It creates a visual catalog of picture files which 
makes it easy to check out a whole collection of pictures and 
find the one you want. The pictures can be MacPaint files, 
GEM/IMG files like the ones Ventura uses, colour GIF files with 
up to 256 colours and PCX or PCC files from PC Paintbrush. 

The program prints sixteen files to a page. Said pages come out 
of a laser printer... you'll need one of these or GRAFCAT won't 
be much use. The pictures are printed at three hundred dots to 
the inch, so they come out readable but pretty small... which is 
how so many make it onto a page.

The printer must be connected to LPT1 on your computer. You'll 
need at least a megabyte of memory in the printer.

GRAFCAT will print pictures up to 576 by 720 pixels in their 
entirety. This is the size of a MacPaint file. Confronted with 
GIF, IMG or PCX files bigger than this, it will print the middle 
part of the image.

GRAFCAT can print a mixture of image types at once. Thus, if you 
just tell it to print *.*, it will sort out the file types it 
knows how to handle and print them, ignoring anything else. 
It assumes that the file extensions reflect the file types 
properly, that is:

	MAC for MacPaint
	IMG for GEM/IMG
	PCC or PCX for PC Paintbrush
	GIF for GIF files

GRAFCAT does not handle colour IMG files or PC Paintbrush files 
with 256 colours. PC Paintbrush files with sixteen or fewer 
colours do print, although some of the colour information will 
be ignored. Colour GIF files are dithered to black and white.


How to use GRAFCAT
__________________

Well, it's pretty heavy stuff. Type GRAFCAT followed by any wild 
card file specification that points to some image files of the 
types discussed. Examples are:

	GRAFCAT D:\*.PCX
	GRAFCAT \GEMART\*.IMG
	GRAFCAT *.MAC
	GRAFCAT *.*
	GRAFCAT A*.GIF
	GRAFCAT @LISTFILE

Make sure there's lots of paper in your printer and that you have 
some time to kill. GRAFCAT takes a while, especially on slower 
laser printers.

If you want to print selected pages of a large collection of 
images, you can use GRAFCAT's command line options, to wit,

/Sn for the page to start printing with
/En for the page to stop printing after

To print pages 10, 11 and 12 of a catalog of images, you would do 
this:

	GRAFCAT *.IMG /S10 /E12

If you want to work out which images these would be, you can do 
so as follows. First off, use a sorted directory utility to look 
at the image file names. GRAFCAT prints them in alphabetical 
order. Page 10 would start 160 files from the beginning of the 
directory, as there are sixteen images to a page.

If you create a text file with the names of all the files you 
want cataloged, to you can make GRAFCAT print those files by 
passing the name of the text file as the file parameter with an 
"@" in front of it, for example:

	GRAFCAT @LISTFILE

Where LISTFILE is the name of a plain text file with one file 
name per line. LISTFILE must be in the subdirectory where the 
files you want to print reside.

GRAFCAT normally prints GIF files by dithering them if there's 
enough memory to do so. You can disable this... to speed up 
printing slightly... by adding the /D switch to your command 
line.

If there is not enough memory to hande dithering, GRAFCAT will 
throw the /D switch for you.

Without dithering, GIF images come up pretty contrasty looking. 
The other image types are not affected.

If you attempt to print to a PostScript printer with insufficient 
memory or with the /D switch set, GRAFCAT will complain. It needs 
a big buffer to handle PostScript graphics.

GIF images are passed through a Bayer dither filter to make them 
look more recognizable in black and white. 

It's all so simple a politician could use it... probably.


PostScript Printing
___________________

GRAFCAT defaults to printing to a LaserJet Plus compatible 
printer, but you can use it with a PostScript printer by using
the /P command line switch. PostScript is much slower at printing 
bitmaps than a LaserJet is. If you have a printer which supports 
both page description languages, you should use the LaserJet 
mode.

There are reputedly some PostScript printers which hang after the 
first page of printing. Ours does not, and we're pretty sure this 
version of the program gets around this bug. However, if you 
encounter it anew please let us know.


Roll Your Own
_____________

This is another book plug. If you're interested in writing 
programs which use graphics, you'll find everything you need to 
know in "The Book of Bitmapped Graphics", also by Steven William 
Rimmer. It's published by TAB books, (TAB book 3558) and should 
be available in August 1990. It features code to pack and unpack 
MacPaint, IMG, PCX, GIF and TIFF files, as well as chapters on 
screen drivers, dithering and printing. It also includes the 
source code for a simplified version of this program.

	
Moral dogma
___________

If you like this program and find it useful, you are requested to 
support it either by buying the book mentioned at the top of this 
file or by sending us $20.00. We'd rather you bought the book. 
This will entitle you to telephone support, notification of 
updates and other good things like that. More to the point, 
though, it'll make you feel good. We've not infested the program 
with excessive beg notices, crippled it or had it verbally insult 
you after ten days. We trust you to support GRAFCAT if you like 
it.

Oh yes, and if you fail to support this program and continue to 
use it, a leather winged demon of the night will tear itself, 
shrieking blood and fury, from the endless caverns of the nether 
world, hurl itself into the darkness with a thirst for blood on 
its slavering fangs and search the very threads of time for the 
throbbing of your heartbeat. Just thought you'd want to know 
that.

We are
                      Alchemy Mindworks Inc.
                          P.O. Box 500
                         Beeton, Ontario
                             L0G 1A0
                             Canada

Other programs we've done that you might like include:

Scoop    -  MacPaint, GEM/IMG and PC Paintbrush file readers, 
            with Epson FX-80, LaserJet and PostScript printer 
            support. Drives CGA, EGA, VGA and Hercules cards.
HP_Slash -  Make LaserJet soft fonts smaller by selectively excising
            those characters you'll never use.
Calendar -  Slick perpetual calendar that tells you when the 
            equinoxes happen, what day Michaelmas fell on in 1705 
            and so on.
ADDRESS  -  Memory resident envelope addresser with graphics.
VFM      -  Ventura soft font manager deluxe with a side of fries. 
            Adds new fonts and creates width tables with menu 
            driven simplicity.
MCOPY    -  Copying program which packs as many files as possible
            onto a floppy, pauses when the current floppy is
            full and asks for another one.

CROPGIF   - allows you to crop smaller fragments out of your GIF 
            files. Use graphic Workshop, above, to convert other 
            formats into GIF files for cropping. This program 
            uses a simple mouse interface to make cropping image 
            fragments no more complicated than using a paint 
            program Requires a Microsoft compatible mouse.

GRAPHIC
 WORKSHOP - This is the last word in image programs. It converts, 
            prints, views, dithers, transforms and halftones 
            MacPaint, GEM/Ventura IMG, PCX, GIF, TIFF, WPG, MSP 
            and EPS files. It drives CGA, Hercules, EGA, VGA, 
            Paradise, Video 7 and ATI VGA Wonder cards. It 
            features batch processing, extended and expanded 
            memory support, an intuitive user interface and easy 
            to follow menus. It allows you to convert colour 
            image files into superb black and white clip art for 
            desktop publishing, among other things. 

If you can't find them in the public domain, they're available 
from us for $20.00 each. Source is available for Scoop, for $25.00.

Legal dogma
-----------
The author assumes no responsibility for any damage or loss 
caused by the use of these programs, however it comes down. If 
you can think of a way a picture program can cause you damage 
or loss you've a sneakier mind than mine.

All the trademarks used herein are registered to whoever it is 
that owns them. This notification is given in lieu of any 
specific list of trademarks and their owners, which would not be 
as inclusive and would probably take a lot longer to type. 
 
That's it...



DRIVERS.DOC

Dot matrix printer drivers for Graphic Workshop
_______________________________________________

This version of Graphic Workshop includes the following dot 
matrix printer drivers. All the supplied drivers print to LPT1. 
You can redirect this with the DOS MODE command. If you write a 
custom driver you can have it print to any port you like.

Note that while the external printer driver facility was 
implemented in Graphic Workshop to support dot matrix printers, 
you can write a driver to support pretty well any output device, 
including film recorders, FAX boards and so on.

This release of Graphic Workshop is a bit thin on specialized 
drivers... yes, two is a bit thin. We're working on borrowing 
some of the popular printers to write drivers for them.
	
EPSNFX80.PDR	This is a driver for the generic Epson FX-80 
                modes. It will work with many dot matrix 
                printers, although with far less resolution than 
                some newer printers can manage.

EPSNFX80.ASM	This is the source code for the generic Epson FX-
                80 driver, for use as a starting point in writing 
                your own custom driver. If you come up with a 
                printer driver of your own, please send us the 
                source and we'll include it in future releases of 
                Graphic Workshop with suitable credit.

GEMINI.PDR	This is a driver for the 480 dot wide mode of the 
                arcane Star Micronics Gemini 10X. The output from 
                this printer is pretty ugly. The double 
                resolution graphics mode of the Gemini 10X is a 
                bit narrow, and pictures come out with badly 
                distorted aspect ratios, so we didn't use this 
                mode.

Registered users of Graphic Workshop wishing to write their own 
drivers are welcome to whatever help we can supply. We can't 
teach you to program in assembler over the phone, but we can 
probably help you with basic questions and suggest ways around 
any problems you encounter.


Super VGA card drivers for Graphic Workshop
___________________________________________

NOTE: As of version 2.4 of Graphic Workshop, the internal 
structure of the super VGA drivers changed a bit. The old drivers 
will no longer work with GWS.EXE. New versions of all the current 
drivers are included with this release... delete your old 
drivers.

MORE NOTES: As of version 2.7, all the drivers were changed 
slightly. This involved using a slightly different technique for 
setting the VGA palette to make palette adjustments from within 
the VGA 256 colour mode look nicer. Older drivers... written after 
version 2.4 of Graphic Workshop... will still work, but you'll 
see a bit of screen trash when you adjust the VGA palette.

This version of Graphic Workshop includes the following drivers:

TRIDENT.DRV	This is a driver for the Trident VGA graphic 
                cards. It drives the card in its 640 by 400, 256 
                colour mode, and will work with cards having 256 
                kilobytes or more of onboard memory. We 
                originally found the Trident card this driver was 
                developed on in a Sun Moon Star 386SX we were 
                loaned. It turned out that the monitor provided 
                with this computer would not sync in the 640 by 
                400 256 colour mode, even though the card was 
                doing fine. If you have this system, you probably 
                won't be able to use this driver unless you 
                spring for a multisync monitor.

VIDEO7.DRV	This is a driver for the Headland Technologies 
                Video Seven VRAM and Video Seven 1024i cards. It 
                supports the 640 by 480 line 256-colour mode. It 
                uses the standard VGA and EGA 16-colour and 
                monochrome modes... we decided not to implement 
                the 1024 by 768 16-colour mode. There are very 
                few 16-colour images around which could take 
                advantage of this mode, but there are a lot of 
                monitors which cannot.

PARAPLUS.DRV	This is a full featured driver for the Western 
                Digital Paradise Plus card. This driver also 
                works with the Dell Super VGA card, which is 
                actually a Paradise 16-bit card.

DELLVGA.DRV	This is a version of PARAPLUS.DRV, above. It has 
                been modified not to use the 800 by 600 pixel EGA 
                and monochrome modes of the Paradise card, as 
                this causes the super VGA monitor on a Dell to 
                click a (loud) internal relay every time it 
                changes modes. If you don't mind the relay, or 
                you want the 800 by 600 modes, use PARAPLUS.DRV, 
                above.

                Note: rumour has it that some Dell systems have 
                been shipped with Headland Video 7 cards rather 
                than Paradise cards. If your Dell system is so 
                equipped... or if you can't get GWS to work in 
                the super VGA modes with one of the above two 
                drivers... try VIDEO7.DRV.

ATIWONDR.DRV	This is a driver for the ATI VGA Wonder and ATI 
                VGA Edge cards. It drives the 256 colour screen 
                in the 400 line mode, and will work with cards 
                having 256K on them. The upper 256K on half meg 
                cards will be ignored by this driver.

ATI512.DRV	This is a driver for ATI Wonder cards having 512K 
                of memory on board. It will display pictures in 
                up to 800 by 600 pixel resolution, selecting 
                among the three available 256 colour display 
                modes based on the dimensions of the image to be 
                viewed.
		
GRAFDRV.DRV	This is a stock VGA card driver. You might want 
                to use this if there is no super VGA card driver 
                available for your card, however, as it handles 
                the 16-colour and monochrome modes in potentially 
                more useful ways than the internal VGA driver of 
                Graphic Workshop does.

VGA400.DRV	This is a "gadget" driver for a stock VGA card 
                which reprograms the beast into an undocumented 
                320 by 400 line mode. It should work on any VGA 
                card, but being undocumented one cannot be sure. 
                In any case, while interesting, this mode has 
                such a squashed aspect ratio that it's not really 
                useful for anything. In addition, having heavily 
                interlaced memory, it's painfully slow to update.

VGA480.DRV	This is another undocumented mode. It gets still 
                more on the screen, with still more distortion.

To use one of these drivers, use GWSINSTL to select EXTERNAL for 
display type and enter the path to your driver in the path name 
field at the bottom of GWSINSTL screen. This should be the 
complete path, including the drive letter. Graphic Workshop does 
not assume that driver file names end in .DRV... you can call 'em 
anything you like.
	The name of the driver you've loaded should appear in the 
F10 "About" window when you're running GWS.EXE.
	

Writing your own driver

Also included with this version of Graphic Workshop is 
GRAFDRV.ASM, the source code for GRAFDRV.DRV. This file can be 
used as the boilerplate for writing your own super VGA card 
driver. You will need a pretty good grasp of assembly language 
and the hardware specific details of the card you want to write a 
driver for to get this together. This file should be assembled 
with Microsoft's MASM assembler, version 4.0 or better.
	The following batch file is useful in assembling 
GRAFDRV.ASM into GRAFDRV.DRV... or any other driver you happen to 
write.

MASM %1 %1 NUL NUL
IF ERRORLEVEL 1 GOTO PROBLEM
LINK %1 @AUTOLINK
EXE2BIN %1 %1.DRV
DEL %1.EXE
DEL %1.OBJ
:PROBLEM

	The file AUTOLINK must be present... it contains four 
carriage returns, that is, four blank lines.
	In future releases we hope to include a number of SVGA 
drivers with Graphic Workshop. If you write one using the 
GRAFDRV.ASM skeletal driver and care to send us the source, we'll 
be pleased to include it with future releases, with suitable credit.
	Registered users of Graphic Workshop who want to write 
their own drivers are welcome to the source code for all the 
above drivers... you might find some of the techniques used in 
them helpful in writing your driver. The only conditions are that 
you must be a registered user and we'd like to have the source 
code for the driver you write when you get it working... we'll 
include the object file in with future releases of Graphic 
Workshop.
	We'll be happy to give you whatever help we can in 
writing your driver, too.
	If you want the driver source files, please phone or 
write us and we'll send 'em off to you.


Custom drivers

We've been asked on a few occasions whether we'll write custom 
drivers for Graphic Workshop on behalf of various interested 
parties. We might be able to, depending on time and whathaveyou. 
If you really want a specific SVGA driver for Graphic Workshop... 
for example, if you want to licence it for inclusion with a 
particular card or computer... and you can't get it together 
yourself, contact us. Our address is in GRAFWORK.DOC.


EPSNFX80.ASM

		COMMENT %

	GRAPHIC WORKSHOP DOT MATRIX PRINTER DRIVER
	COPYRIGHT (C) 1990 ALCHEMY MINDWORKS INC.
	VERSION 1.0

		%

PAGEWIDE	EQU	612		;PAGE WIDTH IN PIXELS
PAGEDEEP	EQU	756		;PAGE DEPTH IN PIXELS
LINEDEEP	EQU	8		;NUMBER OF BITS (PINS) IN A LINE
COLOURS		EQU	1		;ONLY ONE COLOUR SUPPORTED AS YET

VERSION		EQU	1		;VERSION NUMBER
SUBVERSION	EQU	0		;SUBVERSION NUMBER

_AOFF		EQU	6		;STACK OFFSET

CODE		SEGMENT PARA PUBLIC 'CODE'
		ASSUME	CS:CODE

		ORG	0000H		;ORIGIN FOR LOADABLE DRIVER

		DB	'ALCHPRDR'	;SIGNATURE - DON'T CHANGE THIS

;THE FOLLOWING ARE THE POINTERS TO THE CALLABLE ROUTINES AND THE COMMON
;DATA. THE SEGMENTS ARE FILLED IN BY GRAPHIC WORKSHOP. DON'T CHANGE ANYTHING.
DISPATCH	PROC	FAR
		DW      INIT_PRINTER	;FAR POINTER TO PRINTER INITIALIZATION
		DW      ?
		DW	PRINT_LINE	;FAR POINTER TO LINE PRINT
		DW	?
		DW	DEINIT_PRINTER	;FAR POINTER TO PRINTER DEINIT
		DW	?
		DW	PRINT_TEXT	;FAR POINTER TO TEXT PRINT
		DW	?
		DW	0,0		;NULL ONE
		DW	0,0		;NULL TWO
		DW	0,0		;NULL THREE
		DW	0,0		;NULL FOUR

V_PAGEWIDE	DW	PAGEWIDE
V_PAGEDEEP	DW	PAGEDEEP
V_LINEDEEP	DW	LINEDEEP
V_COLOURS	DW	COLOURS

;THESE VERSION NUMBERS REFLECT THE DRIVER TEMPLATE VERSION AND THE
;VERSION OF THE DRIVER ITSELF. YOU CAN CHANGE THE SUBVERSION VALUE
;TO REFLECT CHANGES IN YOUR DRIVER. THE VERSION VALUE MUST REMAIN
;UNCHANGED OR GRAPHIC WORKSHOP MAY REJECT YOUR DRIVER.
		DW	VERSION
		DW	SUBVERSION

;THIS SHOULD BE THE PRINTER NAME AS IT WILL APPEAR IN THE GWS MENU.
;THE FIRST BYTE MUST BE 01H AND THE NAME MUST BE EXACTLY 19 BYTES LONG
;PLUS ONE ZERO BYTE AT THE END.

		DB      01H,'Epson FX-80        ',0
DISPATCH        ENDP

;THIS PROCEDURE SHOULD INITIALIZE THE PRINTER. IT SHOULD ALSO STORE THE
;FIRST THREE INTS ON THE STACK FOR FUTURE USE. THESE ARE IMAGE_WIDTH,
;IMAGE_DEPTH AND IMAGE_BYTES RESPECTIVELY. ALSO ON THE STACK ARE A POINTER
;TO THE GWS CONFIGURATION STRUCT AND A POINTER TO THE CURRENT FILE NAME
INIT_PRINTER	PROC	NEAR
		PUSH	BP
		MOV	BP,SP

		MOV	AX,[BP + _AOFF + 0]
		MOV	CS:[IMAGE_WIDTH],AX

		MOV	AX,[BP + _AOFF + 2]
		MOV	CS:[IMAGE_DEPTH],AX

		MOV	AX,[BP + _AOFF + 4]
		MOV	CS:[IMAGE_BYTES],AX

		MOV	DX,OFFSET INIT_SEQ
		CALL	PRINT_STRING

		POP	BP
		RETF
INIT_PRINTER	ENDP

;THIS PROCEDURE SHOULD PRINT ONE LINE. A POINTER TO THE LINE IS
;ON THE STACK.
PRINT_LINE	PROC	NEAR
		PUSH	BP
		MOV	BP,SP
		PUSH	DS

		MOV	CX,CS:[IMAGE_WIDTH]
		CMP	CX,0
		JE	PRINT_L3
		CMP	CX,CS:[V_PAGEWIDE]
		JL	PRINT_L1
		MOV	CX,CS:[V_PAGEWIDE]

PRINT_L1:	MOV	CS:[START_LO],CL
		MOV	CS:[START_HI],CH
		MOV	DX,OFFSET START_SEQ
		CALL	PRINT_STRING

		MOV	SI,[BP + _AOFF + 0]
		MOV	DS,[BP + _AOFF + 2]

		MOV	DX,0
PRINT_L2:	PUSH	CX
		CALL	GET_BYTE
		CALL	PRINT_BYTE
		INC	DX
		POP	CX
		LOOP	PRINT_L2

		MOV	DX,OFFSET END_SEQ
		CALL	PRINT_STRING

PRINT_L3:	POP	DS
		POP	BP
		RETF
PRINT_LINE	ENDP

;THIS SHOULD DO ANYTHING NECESSARY TO FINISH THE PICTURE. IT SHOULD NOT
;ISSUE A FORM FEED, THOUGH.
DEINIT_PRINTER	PROC	NEAR
		PUSH	BP
		MOV	BP,SP
		PUSH	DS

		MOV	DX,OFFSET DEINIT_SEQ
		CALL	PRINT_STRING
		POP	DS
		POP	BP
		RETF
DEINIT_PRINTER	ENDP

;THIS WILL PRINT A LINE OF TEXT TO THE PRINTER. THE STRING IS ON THE
;STACK FOLLOWED BY THE LENGTH OF THE STRING
PRINT_TEXT	PROC	NEAR
		PUSH	BP
		MOV	BP,SP
		PUSH	DS

		MOV	SI,[BP + _AOFF + 0]
		MOV	DS,[BP + _AOFF + 2]
		MOV	CX,[BP + _AOFF + 4]
		CMP	CX,0
		JE	PRINT_T2

		CLD
PRINT_T1:	LODSB
		CALL	PRINT_BYTE
		LOOP    PRINT_T1

PRINT_T2:	POP	DS
		POP	BP
		RETF
PRINT_TEXT	ENDP

;GET ONE BYTE FROM THE LINE FIELD
GET_BYTE	PROC	NEAR
		PUSH	BX
		PUSH	CX
		PUSH	DX
		PUSH	SI

		MOV	BX,DX
		SHR	BX,1
		SHR	BX,1
		SHR	BX,1

		MOV	AH,80H
		MOV	CL,DL
		AND	CL,0007H
		SHR	AH,CL

		MOV	AL,0
		MOV	CX,CS:[V_LINEDEEP]

		MOV	DH,80H
GETBYTE1:	TEST	DS:[SI + BX],AH
		JNZ	GETBYTE2
		OR	AL,DH
GETBYTE2:	ADD     SI,CS:[IMAGE_BYTES]
		SHR	DH,1
		LOOP    GETBYTE1

		POP	SI
		POP	DX
		POP	CX
		POP	BX
		RET
GET_BYTE	ENDP

;PRINT A PASCAL STYLE STRING IN CS:DX
PRINT_STRING	PROC	NEAR
		PUSH	CX
		PUSH	BX
		MOV	BX,DX
		MOV	CX,0
		MOV	CL,CS:[BX]
PRINT_S1:	INC	BX
		MOV	AL,CS:[BX]
		CALL	PRINT_BYTE
		LOOP	PRINT_S1
		POP	BX
		POP	CX
		RET
PRINT_STRING	ENDP

;PRINT ONE BYTE IN AL
PRINT_BYTE	PROC	NEAR
		PUSH	AX
		PUSH	BX
		PUSH	CX
		PUSH	DX
		PUSH	SI
		PUSH	DS
		PUSH	AX

PRINT_B1:	MOV	AH,2
		MOV	DX,0
		INT	17H
		TEST	AH,80H
		JZ	PRINT_B1

		POP	AX

		MOV	AH,0
		MOV	DX,0
		INT	17H

		POP	DS
		POP	SI
		POP	DX
		POP	CX
		POP	BX
		POP	AX
		RET
PRINT_BYTE	ENDP

IMAGE_WIDTH	DW	0
IMAGE_DEPTH	DW	0
IMAGE_BYTES	DW	0

;
;	NOTE - ALL STRINGS START WITH A LENGTH BYTE
;

;THIS IS THE STRING SENT TO THE PRINTER AT THE START OF A GRAPHIC LINE
START_SEQ	DB      5,1BH,'*',06H
START_LO	DB	0
START_HI	DB	0

;THIS IS THE STRING SENT TO THE PRINTER AT THE END OF A GRAPHIC LINE
END_SEQ		DB	4,0DH,1BH,'J',18H

;THIS IS THE STRING SENT TO THE PRINTER TO INITIALIZE THE BEAST
INIT_SEQ	DB      2,1BH,'@'

;THIS IS THE STRING SENT TO THE PRINTER TO DIINITIALIZE THE BEAST
DEINIT_SEQ	DB      4,0DH,0AH,1BH,'@'

CODE		ENDS
		END

EXAMPLES.TXT

The example files are images to try Graphic Workshop
out with. 

Example 1 -  two colour image file. This will be
             viewable on any card.

Example 2 -  sixteen colour image file. This will
             be viewable on EGA and VGA cards.

Example 3 -  256 colour image file. This will be
             viewable in its true colours on VGA 
             cards, although you'll be able to see
             it on EGA cards using colour approximation. 

To really see what dithering can do, print out
example one.

GRAFDRV.ASM

		COMMENT %

	GRAPHIC WORKSHOP VGA SCREEN DRIVER
	COPYRIGHT (C) 1990 ALCHEMY MINDWORKS INC.
	VERSION 1.1

	This is a skeletal driver for use as the
	basis for writing custom SVGA loadable drivers
	for Graphic Workshop. You will require the
	hardware specific information about your
	card to customize this driver.

	As it stands, the driver implements the code for
	a stock VGA card running in mode 13H for 256
	colour images, mode 12H for 16 colour images
	and mode 11H for monochrome images.

	To generate a driver from this file, it must
	be assembled using MASM, linked and converted
	to a binary file with EXE2BIN.

	The binary driver file must be less than 64K in size...
	not a likely problem.

	Best of cosmic luck...

		%

VERSION		EQU	1		;VERSION NUMBER
SUBVERSION	EQU	1		;SUBVERSION NUMBER

_AOFF		EQU	6		;STACK OFFSET

VGA_WIDE	EQU	320		;WIDTH OF VGA SCREEN IN PIXELS
VGA_DEEP	EQU	200		;DEPTH OF VGA SCREEN IN PIXELS
VGA_SCREENSEG	EQU	0A000H		;SEGMENT OF VGA SCREEN
EGA_WIDE	EQU	640		;WIDTH OF EGA SCREEN IN PIXELS
EGA_DEEP	EQU	480		;DEPTH OF EGA SCREEN IN PIXELS
EGA_BYTES	EQU	80		;WIDTH OF EGA SCREEN IN BYTES
EGA_SCREENSEG	EQU	0A000H		;SEGMENT OF EGA SCREEN
MONO_WIDE	EQU	640		;WIDTH OF MONO SCREEN IN PIXELS
MONO_DEEP	EQU	480		;DEPTH OF MONO SCREEN IN PIXELS
MONO_BYTES	EQU	80		;WIDTH OF MONO SCREEN IN BYTES
MONO_SCREENSEG	EQU	0A000H		;SEGMENT OF MONO SCREEN

;THIS MACRO SELECTS AN EGA PLANE
EGAPLANE        MACRO	ARG1
		MOV	AL,2
		MOV	DX,03C4H
		OUT	DX,AL
		INC	DX
		MOV	AL,ARG1
		OUT	DX,AL
		ENDM

CODE		SEGMENT PARA PUBLIC 'CODE'
		ASSUME	CS:CODE

		ORG	0000H		;ORIGIN FOR LOADABLE DRIVER

		DB	'ALCHDRV2'	;SIGNATURE - DON'T CHANGE THIS

;THE FOLLOWING ARE THE POINTERS TO THE CALLABLE ROUTINES AND THE COMMON
;DATA. THE SEGMENTS ARE FILLED IN BY GRAPHIC WORKSHOP. DON'T CHANGE ANYTHING.
DISPATCH	PROC	FAR
		DW      VGA_ON		;FAR POINTER TO VGA MODE SELECT
		DW      ?
		DW	VGA_LINE	;FAR POINTER TO VGA LINE DISPLAY
		DW	?
		DW	VGA_OFF		;FAR POINTER TO VGA MODE DESELECT
		DW	?
		DW	VGA_PALETTE	;FAR POINTER TO VGA PALETTE SET
		DW	?
		DW	VGA_OVERSCAN	;FAR POINTER TO VGA OVERSCAN SET
		DW	?
		DW      EGA_ON		;FAR POINTER TO EGA MODE SELECT
		DW      ?
		DW	EGA_LINE	;FAR POINTER TO EGA LINE DISPLAY
		DW	?
		DW	EGA_OFF		;FAR POINTER TO EGA MODE DESELECT
		DW	?
		DW	EGA_PALETTE	;FAR POINTER TO EGA PALETTE SET
		DW	?
		DW      MONO_ON		;FAR POINTER TO MONO MODE SELECT
		DW      ?
		DW	MONO_FRAME	;FAR POINTER TO MONO PAGE DISPLAY
		DW	?
		DW	MONO_LINE	;FAR POINTER TO MONO LINE DISPLAY
		DW	?
		DW	MONO_OFF	;FAR POINTER TO MONO MODE DESELECT
		DW	?
		DW	0,0		;NULL ONE
		DW	0,0		;NULL TWO
		DW	0,0		;NULL THREE
		DW	0,0		;NULL FOUR

V_VGAWIDE	DW	VGA_WIDE	;VGA SCREEN WIDTH
V_VGADEEP	DW	VGA_DEEP	;VGA SCREEN DEPTH
V_VGASCRNSEG	DW	VGA_SCREENSEG	;VGA SCREEN SEGMENT
V_EGAWIDE	DW	EGA_WIDE	;EGA SCREEN WIDTH
V_EGADEEP	DW	EGA_DEEP	;EGA SCREEN DEPTH
V_EGABYTES	DW	EGA_BYTES	;EGA SCREEN BYTES
V_EGASCRNSEG	DW	EGA_SCREENSEG	;EGA SCREEN SEGMENT
V_MONOWIDE	DW	MONO_WIDE	;MONO SCREEN WIDTH
V_MONODEEP	DW	MONO_DEEP	;MONO SCREEN DEPTH
V_MONOBYTES	DW	MONO_BYTES	;BYTE WIDTH ON MONOCHROME SCREEN
V_MONOSCRNSEG	DW	MONO_SCREENSEG	;MONOCHROME SCREEN SEGMENT

;THESE VERSION NUMBERS REFLECT THE DRIVER TEMPLATE VERSION AND THE
;VERSION OF THE DRIVER ITSELF. YOU CAN CHANGE THE SUBVERSION VALUE
;TO REFLECT CHANGES IN YOUR DRIVER. THE VERSION VALUE MUST REMAIN
;UNCHANGED OR GRAPHIC WORKSHOP MAY REJECT YOUR DRIVER.
		DW	VERSION
		DW	SUBVERSION

;THE DESCRIPTION APPEARS IN THE F10 "ABOUT" BOX IN GRAPHIC
;WORKSHOP WHEN AN EXTERNAL DRIVER IS BEING USED. IT CAN'T
;EXCEED 24 CHARACTERS AND MUST BE NULL TERMINATED
		DB      'Standard VGA 320 x 200 ',0
DISPATCH        ENDP

;THIS ROUTINE SELECTS THE VGA 256 COLOUR MODE
;THE HEIGHT AND WIDTH OF THE IMAGE ARE ON THE STACK - THESE
;MAY BE USEFUL IF YOU WANT TO PICK ONE OF SEVERAL AVAILABLE
;MODES BASED ON THE AREA OF THE PICTURE TO BE DISPLAYED
VGA_ON		PROC	NEAR
		PUSH	DS
		MOV	AX,CS
		MOV	DS,AX
		MOV	CX,VGA_DEEP		;DEPTH OF SCREEN
		SUB	DX,DX
		MOV	SI,OFFSET SCREENTABLE

VGA_ON1:	PUSH	DX
		MOV	AX,VGA_WIDE		;WIDTH OF SCREEEN
		MUL	DX
		MOV	[SI],AX
		ADD	SI,2
		POP	DX
		INC	DX
		LOOP	VGA_ON1

		MOV	AX,0013H
		INT	10H
		POP	DS
		RETF
VGA_ON		ENDP

;THIS ROUTINE DISPLAYS A VGA LINE
;THE FIRST ARGUMENT ON THE STACK (2 WORDS) IS A FAR POINTER TO
;THE LINE. THE SECOND ARGUMENT IS THE LENGTH OF THE LINE IN PIXELS
VGA_LINE	PROC	NEAR
		PUSH	BP
		MOV	BP,SP
		PUSH	DS
		PUSH	ES

		MOV	SI,[BP + _AOFF + 0]	;OFFSET OF SOURCE
		MOV	DS,[BP + _AOFF + 2]	;SEGMENT OF SOURCE

		MOV     BX,[BP + _AOFF + 6]	;GET LINE NUMBER
		CMP	BX,VGA_DEEP
		JGE	SHOWVGAX

		SHL	BX,1
		MOV	DI,CS:[SCREENTABLE+BX]

		CLD
		MOV	CX,[BP + _AOFF + 4]	;LENGTH OF MOVE IN BYTES
		CMP	CX,0
		JE	SHOWVGAX		;CHECK FOR NASTIES
		CMP	CX,VGA_WIDE
		JL      SHOWVGA1
		MOV	CX,VGA_WIDE
SHOWVGA1:	MOV	AX,VGA_SCREENSEG
		MOV	ES,AX
	REPNE	MOVSB

SHOWVGAX:	POP	ES
		POP	DS
		POP	BP
		RETF
VGA_LINE	ENDP

;THIS ROUTINE DESELECTS THE VGA 256 COLOUR MODE
VGA_OFF		PROC	NEAR
		MOV	AX,1200H
		MOV	BX,0031H
		INT	10H

		MOV	AX,0003H
		INT	10H
		RETF
VGA_OFF		ENDP

;THIS ROUTINE SETS THE VGA PALETTE
;THE FIRST ARGUMENT ON THE STACK IS A FAR POINTER TO
;THE PALETTE DATA. THE SECOND ARGUMENT IS THE NUMBER OF COLOURS.
VGA_PALETTE	PROC	NEAR
		PUSH	BP
		MOV	BP,SP
		PUSH	DS
		PUSH	ES
		MOV	AX,CS
		MOV	ES,AX

		MOV	SI,[BP + _AOFF + 0]	;OFFSET OF SOURCE
		MOV	DS,[BP + _AOFF + 2]	;SEGMENT OF SOURCE

		MOV	CX,[BP + _AOFF + 4]	;NUMBER OF COLOURS
		MOV	DI,OFFSET VGAPALETTE

                CMP	CX,0			;CHECK FOR NASTIES
		JG	GVP0
		JMP	GVPX

		;WE'LL SET THE PALLETTE USING DIRECT REGISTERS RATHER
		;THAN A BIOS CALL AS IT LOOKS NIVER

GVP0:		MOV	DX,03C6H
		MOV	AL,0FFH
		OUT	DX,AL

		MOV	BX,0

GVP1:		PUSH	CX
		MOV	DX,03C8H
		MOV	AL,BL
		INC	BX
		OUT	DX,AL

		INC	DX

		LODSB
		SHR	AL,1
		SHR	AL,1
		OUT	DX,AL

		LODSB
		SHR	AL,1
		SHR	AL,1
		OUT	DX,AL

		LODSB
		SHR	AL,1
		SHR	AL,1
		OUT	DX,AL

		POP	CX
		LOOP    GVP1


		COMMENT &

GVP0:           PUSH	CX
		LODSB
		SHR	AL,1
		SHR	AL,1
		STOSB
		LODSB
		SHR	AL,1
		SHR	AL,1
		STOSB
		LODSB
		SHR	AL,1
		SHR	AL,1
		STOSB

		POP	CX
		LOOP	GVP0

		MOV	AX,1012H                ;POINT TO THE PALETTE
		MOV	BX,0000H
		MOV	CX,256
		MOV	DX,OFFSET VGAPALETTE
		INT	10H

			&

GVPX:   	POP	ES
		POP	DS
		POP	BP
		RETF
VGA_PALETTE	ENDP

;THIS ROUTINE SETS THE VGA OVERSCAN.
;THE FIRST STACK ARGUMENT IS THE COLOUR NUMBER.
VGA_OVERSCAN	PROC	NEAR
		PUSH    BP
		MOV	BP,SP
		MOV	AX,1001H
		MOV	BX,[BP + _AOFF + 0]
		XCHG	BH,BL
		INT	10H
		POP	BP
		RETF
VGA_OVERSCAN	ENDP

;THIS ROUTINE SELECTS THE EGA 16 COLOUR MODE
;THE HEIGHT AND WIDTH OF THE IMAGE ARE ON THE STACK - THESE
;MAY BE USEFUL IF YOU WANT TO PICK ONE OF SEVERAL AVAILABLE
;MODES BASED ON THE AREA OF THE PICTURE TO BE DISPLAYED
EGA_ON		PROC	NEAR
		PUSH	DS
		MOV	AX,CS
		MOV	DS,AX
		MOV	CX,EGA_DEEP		;DEPTH OF SCREEN
		SUB	DX,DX
		MOV	SI,OFFSET SCREENTABLE

EGA_ON1:	PUSH	DX
		MOV	AX,EGA_BYTES		;WIDTH OF SCREEEN
		MUL	DX
		MOV	[SI],AX
		ADD	SI,2
		POP	DX
		INC	DX
		LOOP	EGA_ON1

		MOV	AX,0012H
		INT	10H
		POP	DS
		RETF
EGA_ON		ENDP

;THIS ROUTINE DISPLAYS AN EGA LINE
;THE FIRST ARGUMENT ON THE STACK (2 WORDS) IS A FAR POINTER TO
;THE LINE. THE SECOND ARGUMENT IS THE LENGTH OF THE LINE IN BYTES
EGA_LINE	PROC	NEAR
		PUSH	BP
		MOV	BP,SP
		PUSH	DS
		PUSH	ES

		MOV	SI,[BP + _AOFF + 0]	;OFFSET OF SOURCE
		MOV	DS,[BP + _AOFF + 2]	;SEGMENT OF SOURCE
		MOV     BX,[BP + _AOFF + 6]	;GET LINE NUMBER
		CMP	BX,EGA_DEEP
		JGE	SHOWEGAX

		SHL	BX,1
		MOV	DI,CS:[SCREENTABLE+BX]

		MOV	AX,0A000H
		MOV	ES,AX
		MOV	BX,[BP + _AOFF + 4]	;LENGTH OF MOVE IN BYTES

		MOV	CX,BX
		EGAPLANE	1
		CLD
		PUSH	DI
	REPNE	MOVSB
		POP	DI

		MOV	CX,BX
		EGAPLANE	2
		PUSH	DI
	REPNE	MOVSB
		POP	DI

		MOV	CX,BX
		EGAPLANE	4
		PUSH	DI
	REPNE	MOVSB
		POP	DI

		MOV	CX,BX
		EGAPLANE	8
		PUSH	DI
	REPNE	MOVSB
		POP	DI
		EGAPLANE	0FH

SHOWEGAX:	POP	ES
		POP	DS
		POP	BP
		RETF
EGA_LINE	ENDP

;THIS ROUTINE SETS THE EGA PALETTE
;THE FIRST ARGUMENT ON THE STACK IS A FAR POINTER TO
;THE PALETTE DATA. THE SECOND ARGUMENT IS THE NUMBER OF COLOURS.
EGA_PALETTE	PROC	NEAR
		PUSH	BP
		MOV	BP,SP
		PUSH	DS

		MOV	SI,[BP + _AOFF + 0]	;OFFSET OF SOURCE
		MOV	DS,[BP + _AOFF + 2]	;SEGMENT OF SOURCE

		MOV	CX,[BP + _AOFF + 4]	;NUMBER OF COLOURS
		SUB	BX,BX
                CMP	CX,16
		JLE	EGA_PALETTE1
		MOV	CX,16

EGA_PALETTE1:	MOV	BH,[SI]
		MOV	AX,1000H
		INT	10H
		INC	BL
		INC	SI
		LOOP	EGA_PALETTE1

		POP	DS
		POP	BP
		RETF
EGA_PALETTE	ENDP

;THIS ROUTINE DESELECTS THE EGA 16 COLOUR MODE
EGA_OFF		PROC	NEAR
		MOV	AX,0003H
		INT	10H
		RETF
EGA_OFF		ENDP

;THIS ROUTINE SELECTS THE 2 COLOUR MODE
;THE HEIGHT AND WIDTH OF THE IMAGE ARE ON THE STACK - THESE
;MAY BE USEFUL IF YOU WANT TO PICK ONE OF SEVERAL AVAILABLE
;MODES BASED ON THE AREA OF THE PICTURE TO BE DISPLAYED
MONO_ON		PROC	NEAR
		PUSH	DS
		PUSH	ES
		MOV	AX,CS
		MOV	DS,AX
		MOV	ES,AX
		MOV	AX,0011H
		INT	10H

		MOV	CX,MONO_DEEP
		SUB	DX,DX
		MOV	SI,OFFSET SCREENTABLE

MONO_ON1:	PUSH	DX
		MOV	AX,MONO_BYTES
		MUL	DX
		MOV	[SI],AX
		ADD	SI,2
		POP	DX
		INC	DX
		LOOP	MONO_ON1

		POP     ES
		POP	DS
		SUB	AX,AX
		RETF
MONO_ON		ENDP

UPDATE_MOVE	EQU	2
UPDATE_PAD	EQU	4
UPDATE_ADJUST	EQU	6

;THIS ROUTINE DISPLAYS A FULL MONOCHROME PAGE
;THE FIRST ARGUMENT ON THE STACK IS A FAR POINTER TO THE PAGE
;THE SECOND ARGUMENT IS THE WIDTH OF THE BITMAP (IN BYTES)
;THE THIRD ARGUMENT IS THE NUMBER OF LINES TO DISPLAY
;NOTE: THE SOURCE BUFFER MAY BE BIGGER THAN 64K.
MONO_FRAME	PROC	NEAR
		PUSH	BP
		MOV	BP,SP
		SUB	SP,UPDATE_ADJUST
		PUSH	DS
		PUSH	ES

		MOV	AX,MONO_SCREENSEG	;POINT TO THE SCREEN
		MOV	ES,AX
		MOV	AX,[BP + _AOFF + 4]    	;GET THE WIDTH OF MOVE
		MOV	[BP - UPDATE_MOVE],AX	;SAVE IT LOCALLY
		MOV	WORD PTR [BP - UPDATE_PAD],0	;SET ADJUSTMENT

		CMP	AX,MONO_BYTES		;IF THE MOVE IS LESS THAN
		JL	UPDATE0			;SCREEN WIDTH, GO FOR IT

		SUB	AX,MONO_BYTES		;ELSE, SET MOVE WIDTH
		MOV	[BP - UPDATE_PAD],AX	;...AND THE AMOUNT TO

		MOV	AX,MONO_BYTES		;...ADJUST THE POINTER
		MOV	[BP - UPDATE_MOVE],AX	;...AFTER EACH LINE

UPDATE0:	MOV	SI,[BP + _AOFF + 0]	;OFFSET OF BITMAP
		MOV	DS,[BP + _AOFF + 2]	;SEGMENT OF BITMAP
		MOV	CX,[BP + _AOFF + 6]	;NUMBER OF LINES

		CLD				;CLEAR DIRECTION FLAG
		SUB	BX,BX

UPDATE1:	PUSH	CX			;SAVE COUNT (LINE NUMBER)

		MOV	DI,CS:[SCREENTABLE + BX]
		ADD	BX,2			;POINT TO NEXT LINE

		MOV	CX,[BP - UPDATE_MOVE]	;GET THE MOVE SIZE
	REPNE	MOVSB				;DO THE MOVE

		ADD	SI,[BP - UPDATE_PAD]	;ADJUST THE POINTER

		CMP	SI,0F800H		;ARE WE WITHIN 2K OF TOP?
		JL      UPDATE2			;IF NOT, CARRY ON

		MOV	AX,SI			;SEE HOW MANY SEGMENTS ARE
		MOV	CL,4			;...IN SI (SI DIV 4)
		SHR	AX,CL

		MOV	CX,DS			;ADD THEM TO THE DATA SEGMENT
		ADD	CX,AX			;...(YOU CAN'T JUST ADD DS,AX)
		MOV	DS,CX
		AND	SI,000FH		;ADJUST SI (SI MOD 16)

UPDATE2:	POP	CX			;GET COUNT BACK
		LOOP	UPDATE1                	;DECREMENT AND LOOP

		POP	ES
		POP	DS

		ADD	SP,UPDATE_ADJUST
		POP	BP

		RETF
MONO_FRAME	ENDP

;THIS ROUTINE DISPLAYS A SINGLE MONOCHROME LINE
;THE FIRST ARGUMENT ON THE STACK IS A FAR POINTER TO THE LINE
;THE SECOND ARGUMENT IS THE LINE NUMBER
;THE THIRD ARGUMENT IS THE WIDTH OF THE BITMAP (IN BYTES)
MONO_LINE	PROC	NEAR
		PUSH	BP
		MOV	BP,SP

		PUSH	DS
		PUSH	ES

		MOV	AX,MONO_SCREENSEG	;POINT TO THE SCREEN
		MOV	ES,AX

		MOV	CX,[BP + _AOFF + 6]    	;GET THE WIDTH OF MOVE
		CMP	CX,0
		JE	MONO_LINE2
		CMP	CX,MONO_BYTES
		JL	MONO_LINE1
		MOV	CX,MONO_BYTES

MONO_LINE1:	MOV	SI,[BP + _AOFF + 0]	;OFFSET OF BITMAP
		MOV	DS,[BP + _AOFF + 2]	;SEGMENT OF BITMAP
		MOV	BX,[BP + _AOFF + 4]	;NUMBER OF LINE
		SHL	BX,1

		CLD				;CLEAR DIRECTION FLAG
		MOV	DI,CS:[SCREENTABLE + BX]
	REPNE	MOVSB				;DO THE MOVE

MONO_LINE2:	POP	ES
		POP	DS

		POP	BP
		RETF
MONO_LINE	ENDP

;THIS ROUTINE DESELECTS THE 2 COLOUR MODE
MONO_OFF	PROC	NEAR
		MOV	AX,0003H
		INT	10H
		SUB	AX,AX
		RETF
MONO_OFF	ENDP

;THIS IS A LINE START LOOKUP TABLE

SCREENTABLE	DW	MONO_DEEP DUP(?)	;LINE START TABLE

;THIS IS WHERE THE VGA PALETTE IS STORED
VGAPALETTE	DB	768 DUP(?)		;PALETTE
CODE		ENDS
		END

GRAFWORK.DOC

GRAPHIC WORKSHOP 3.4
__________________________________________________________________

If you like this program, please do one of the following:

Go down to your local bookstore and buy a copy of "Coven: A 
Novel", by Steven William Rimmer, published by Ballantine Books. 
In Canada, try Coles... they usually have it. Read the book and 
tell your friends about it if you like it. Send us some comments 
about the book or a photocopy of the cover and we'll consider you 
a registered user of this program.

Alternately, send us $35.00, the normal user fee for this 
software. (The book is $3.95 or $5.50 in Canada: considerably 
cheaper than cash.) 

Registered users of this software are entitled to phone support, 
notification of upgrades and good karma. Please tell us the 
version number of your copy of Graphic Workshop when you 
register... we'll send you the most recent one immediately if 
it's newer than yours. Our address can be found at the end of 
this file.
__________________________________________________________________

----> NEW: 	TIFF and LBM details
		Grey scale TIFF support.
		WordPerfect Graphic file support.
		Microsoft Paint support.
		VGA palette adjustment.
		Driver update: Please see DRIVERS.DOC.
		Dot Matrix Printer support: Also see DRIVERS.DOC.
		Image rotation and flipping.
		IFF/LBM/CE support.
		Non-dither halftoning

Welcome to Graphic Workshop...


WHAT IT IS
__________

Graphic Workshop is a program for working with computer graphic 
files. It will handle most of the popular formats:

- MacPaint files
- PC Paintbrush files with up to 256 colours
- GEM/IMG files of the sort used by Ventura Publisher
- GIF files of any size and up to 256 colours
- TIFF files (with some restrictions)
- EPS files... encapsulated PostScript... for some operations
- WordPerfect graphic files.
- Microsoft Windows Paint (MSP) files.
- IFF/LBM/CE files (from Deluxe Paint, among others)

Graphic workshop is a simple, menu driven environment which will 
let you perform the following operations on the aforementioned 
files.

- View them.
- Convert between any two formats (with a few restrictions).
- Print them to any LaserJet Plus compatible or PostScript laser   
  and many dot matrix printers.
- Dither the colour ones to black and white.
- Reverse the monochrome ones black for white.
- Rotate and flip them.

Using Graphic Workshop, you can have your image files in the formats 
that your software wants to use them in, all without keeping 
track of numerous funky utilities. In addition, using the 
halftoning and dithering facilities of Graphic Workshop, you can 
convert full colour digitized photographs... most notably GIF 
files... for use as really excellent black and white clip art, 
suitable for inclusion in your documents.

Graphic Workshop will handle image files of any size. It will use 
extended or expanded memory if you have some, and disk space if 
you don't. It has a fast and easily understood user interface. 
Hopefully, it lacks even the merest vestiges of bugs... a likely 
story, but we hope so.

Graphic Workshop will drive all of the popular display cards. At 
present, it will support the following.

- CGA card (Ugh!)
- Hercules card
- EGA card
- VGA card
- Paradise Plus card
- Dell super VGA card (which is actually a Paradise card)
- ATI VGA Wonder card or ATI VGA Edge
- Headland Video 7 

As it comes out of the box... or out of the ZIP... Graphic 
Workshop is configured like this. If you want to change some of 
these parameters, see the installation section at the end of this 
file.

- Attempts to autodetect the display card type
- Uses expanded memory
- Uses colour text
- Prints titles on its hard copy
- Uses the following file name extensions:
	- MAC: MacPaint files
	- IMG: GEM/IMG files
	- PCX: PC Paintbrush files
	- GIF: GIF files
	- TIF: TIFF files
	- EPS: EPS files
	- WPG: WordPerfect graphic files
	- MSP: Microsoft Windows Paint files.
	- LBM: IFF files (Deluxe Paint and others)

FILE FORMATS
____________

A NOTE ABOUT MEMORY AND FILE FORMATS: One of the design criteria 
of Graphic Workshop is that it should have enough memory left 
over on a 640 kilobyte PC to be able to unpack a 640 by 480 
pixel, 256 colour file without having to resort to using extra 
memory, which would slow it down. This requires a minimum of 300 
kilobytes plus a bit for various internal things. To achieve 
this, the size of the program itself has to remain at a 
reasonable degree of hugeness. This is why, for example, the 
installation functions, GWSINSTL.EXE, is separate from the main 
program.
	The lesser used functions of Graphic Workshop, dithering 
and image transformation, have been implemented for the GIF file 
format only in order to keep the code size down. This is a bit of 
an inconvenience, as you will have to convert files in other 
formats to GIF to use these facilities with them, and then 
probably convert the results back to the format your files 
started off in. However, not implementing these features for all 
the formats supported by Graphic Workshop reduced the code size 
of the program by something over a hundred kilobytes by our 
estimates. The result is a much faster program at the expense of 
a bit of inconvenience.
	A long time ago someone decided that 640 kilobytes was 
more memory than anyone could possibly want. Someone should find 
the person responsible and paint something easily recognizable 
on his bald head, such that the rest of us will know where to 
throw things.


MacPaint files
These can come in two flavours. The most common one is straight 
ported MacPaint files, that is, files having the "MacBinary" 
header. The other is "headerless" files, these being the ones 
used with PFS:First Publisher. Graphic Workshop reads both types, 
but if you convert a file to MacPaint format you can select which 
of these two variations on the format you want to use.

Files converted to the MacPaint format from other formats will be 
cropped or padded out as necessary to fit in the MacPaint 
format's 576 by 720 format. Only monochrome files can be 
converted to MacPaint files, since MacPaint in a monochrome-only 
format.

GEM/IMG files
There are actually quite a few variations on IMG files. Only the 
monochrome ones are currently supported by Graphic Workshop. 
This is the format used by Ventura for its monochrome image file 
format. Any size monochrome image can be converted to this 
format.

PCX files
These are the files used to hold images for Z-Soft's PC 
Paintbrush package. These can range from monochrome to 256-colour 
images. All the various formats are supported by Graphic 
Workshop. Note, however, that Graphic Workshop will allow you to 
create 256-colour PCX files from GIF files which may be too large 
to work with using the current version of PC-Paintbrush.

GIF files
These can range from monochrome to 256-colour images in any size 
you can find 'em.

TIFF files
Graphic workshop supports monochrome and grey scale TIFF files. 
If you convert a colour file from PCX or GIF to TIFF, the 
resulting file will be a grey scale version of the colour file. 
These import into desktop publishing packages such as Ventura for 
sharp looking PostScript halftones.
	Note that due to the wide variations among the programs 
which produce TIFF files, Graphic Workshop would be lying rather 
badly if it claimed to be able to read all TIFF files. 

EPS files
These are encapsulated PostScript files, and are not strictly 
speaking image files at all. Graphic Workshop treats them a bit 
differently.
	Many EPS files which are created with the intent of 
importing them into a desktop publishing package include 
bitmapped "preview" images to be used for positioning. If you 
attempt to view an EPS file with Graphic Workshop, you will see 
the preview image. If there is no preview image in the EPS file 
you select, Graphic Workshop will tell you so.
	Graphic Workshop will print EPS files to a PostScript 
printer. It will also convert other graphic files into EPS files, 
suitable for use with desktop publishing programs. If you convert 
a colour graphic into an EPS file, the result will be a black and 
white halftone when you print it... pretty slick, this.

WPG files
These are the native import graphic files for WordPerfect. These 
files can contain both bitmaps and line art, or vector graphics. 
Graphic Workshop can only deal with the bitmapped parts of them. 
If you view, print or convert a WPG file containing both 
bitmapped and vector elements, the vector elements will be 
discarded.
	WPG files which refuse to read with Graphic Workshop are 
usually those which contain only vector elements and no bitmaps. 
If you use the F4 function on a WPG file which does not read, the 
comments field of the file information box will say "No bitmap" 
if this is the case.
	Graphic Workshop will deal with WPG files having one, 
four or eight bits of colour information, that is, monochrome 
files, sixteen colour files and 256-colour files. It doesn't work 
with two bit files as these are exceedingly rare.

MSP files
These are the image files used by the paint program which comes 
with Microsoft Windows. Don't confuse these with PCX files... 
some versions of Windows came with a Windows implementation of PC 
Paintbrush from ZSoft as well. The two programs... and the two 
file formats... are not compatible. MSP files are monochrome 
only.

IFF files
These started out on the Amiga. The IFF file standard is 
extremely flexible, and allows all sorts of things besides images 
to be stored in IFF files. IFF files are found on the PC having 
been ported from Amiga systems. They are also created on the PC 
by several applications such as Electronic Arts' Deluxe Paint 
package and Digital Vision's Computer Eyes video scanner board. 
In the first case they are given the extension LBM. In the second 
they are given the extension CE. The basic file structure is the 
same, however.
	The IFF format allows specific programs to include 
proprietary "chunks" in a file which no one else knows how to 
deal with without imparing the usefulness of the files in 
question for other applications. For example, Deluxe Paint's LBM 
files include a chunk called TINY, which contains a small version 
of the image in the file which will appear when you're selecting 
a file to load. Electronic Arts does not seem willing to part 
with the structure of this chunk, and as it's more of an ornament 
than an essential part of the IFF file structure, Graphic 
Workshop simply ignores it. It does not read TINY chunks, nor 
does it create TINY images in the IFF files it writes. As 
such,there will be no preview image in the Deluxe Paint file load 
dialog box when you select an LBM file created by Graphic 
Workshop, but the file itself will load fine.
	There are a few caveats in using IFF files under this 
version of Graphic Workshop. First off, the IFF files created by 
Graphic Workshop are not compressed as we have yet to find a 
compression algorythm which will create files that Deluxe Paint 
will accept reliably. As such, they tend to get a tad large... 
this will be remedied by the next revision.
	Secondly, odd size files converted into IFF files may not 
load into all applications which accept IFF files. In the next 
version Graphic Workshop will pad these out to dimensions which 
IFF based software finds more edible.
	If you encounter problems with IFF/LBM files please wait 
'til the next release of Graphic Workshop... all will (most 
likely) be well. We're in the process of trying to get Commodore 
to tell us how the little beasts actually work. As of this 
writing, the only documentation we've been able to find about the 
IFF format was a five kilobyte text file on a bulletin board.


MEMORY REQUIREMENTS
___________________

Graphic Workshop will use whatever memory you have going. If you 
ask it to do something which needs a large amount of memory, it 
will try to use your normal DOS memory, which is fastest. If 
there isn't enough DOS memory, it will use extra memory.
	There are three sorts of "extra" memory which Graphic 
Workshop can use, to wit, extended, expanded and virtual. 
Extended memory is also called XMS memory, and is only available 
on AT and 386 systems. Expanded memory, also called EMS or LIM 
memory, is available if you have a LIM board and driver in your 
machine. Virtual memory means using a big disk file and making 
believe it's memory. Virtual memory is very slow compared to real 
memory.
	You must tell Graphic Workshop what to do about extra 
memory when you install it. See the section on installation.
	Graphic Workshop can run in restricted memory, such as 
that which is found in a really old PC or when running "shelled 
out" of another program. However, it can do nasty things when 
it's really starved for memory. Some virtual memory operations 
will not work in this condition, and if it's really stuck for 
RAM... if there's only a few tens of kilobytes free... it may 
manage to crash. Try not to run it when there's almost no room 
left for it to store things. The help menu will tell you how much 
memory is free.


PRINTERS
________

You can print to any sort of LaserJet Plus compatible printer 
with one megabyte of memory or more or any sort of PostScript 
printer. You can print to any dot matrix printer which is 
supported by a Graphic Workshop external printer driver. These 
are described in greater detail in DRIVERS.DOC. Note that if you 
attempt to print PostScript data to a LaserJet or a dot matrix 
printer you'll get reams of meaningless ASCII text.
	Graphic Workshop allows you to print a picture in four 
resolution modes to laser printers, ranging from 75 to 300 dots 
per inch. This will determine the resulting size of your picture.
	Each page of Graphic Workshop output can include any 
combination of data about the picture on it you like. See the 
installation section for more information about enabling this 
feature. 
	The size and resolution of dot matrix printing is 
determined by the driver being used. 
	Note that if you have a printer for which there is no 
driver available, one of the Epson FX-80 drivers will probably 
work, as most dot matrix printers support the Epson FX-80 
standard. The print might not be as good as your printer can 
manage, but it'll be better than a blank sheet of paper.


RUNNING GRAPHIC WORKSHOP
________________________

To run Graphic Workshop, type GWS at the DOS prompt. Depending on 
your installation procedure, you may also want to type some 
command line switches, as described in the installation section.
	The main file screen will appear. Graphic Workshop always 
shows you all the names of the image files it knows how to deal 
with in the current directory, along with all the visible 
subdirectory names, if any. If you are in a subdirectory, you 
will also see a subdirectory entry which is two periods.
	The cursor mover keys will move the file selector bar 
around. If you move it to a directory entry... shown in dim 
text... and hit Enter, you will move into that directory. If you 
select the two period entry, you will move back up your directory 
tree by one step.
	If there are too many files in your current directory to 
see all at once, Graphic Workshop will organize them into pages. 
The PgUp and PgDn keys will step you through the pages.
	If you place the selector bar on a file name and hit 
Enter, Graphic Workshop will attempt to show you the file. It 
will start by showing you a wait box, which has a bar graph in it 
to show you the status of what you've asked Graphic Workshop to 
do. When the picture is fully unpacked, Graphic Workshop will 
switch to your display card's graphic mode and show you the 
picture.
	You can always abort an operation when the wait box is 
visible by hitting the Esc key.
	If the picture is larger than your screen, the cursor 
keys will allow you to pan around it.
	Esc will return you to the main screen.
	Several things can go wrong here. If you have installed 
Graphic Workshop for the wrong kind of display card, you might 
see random characters rather than a picture. In this case, check 
your installation.
	If Graphic Workshop could not find enough memory to unpack 
your picture into, it will abort the process and say so.
	Finally, if your picture requires more colours than your 
card can display, Graphic Workshop will tell you this. There is a 
specific exception to this. Graphic Workshop will show you GIF 
files having more than sixteen colours on a sixteen colour EGA 
card by fudging the colours. Bear in mind that while you'll get 
to see an approximation of the actual colours in the GIF file... 
it will not be the real thing.
	This does not work for 256 colour PCX files, just GIF 
files. You must have a VGA card of some sort to see 256 colour 
PCX files.
	You can see how many colours a colour image has by using 
the Get Info key, as discussed below.
	Note that you cannot view grey scale TIFF files without a 
VGA card.
	In the VGA display mode... and in the super VGA modes 
provided by external VGA drivers... you can make small 
adjustments to the VGA colour palette while a picture is being 
displayed. The 'r' and 'R' keys will increase and decrease the 
amount of red in a picture, the 'g' and 'G' keys will adjust the 
amount of green, the 'b' and 'B' keys will adjust the amount of 
blue. The 'i' and 'I' keys will adjust the overall intensity of 
the picture. The '=' key will return the picture to its normal 
state. Note that these adjustments only affect the picture that 
you're viewing... they do not alter the palette in the file on 
your disk.
	If you hear a beep while you're playing with these keys, 
you've gone to the limit of whichever of the adjustments you're 
using. Graphic Workshop will not allow you to adjust the palette 
to the point where the picture would start looking weird.
	Because Graphic Workshop will not allow you to actually 
distort the colour balance of the palette, there will be some GIF 
files which will not be adjustable using this feature.


OTHER KEYS
__________

If you hit "?", you'll see a menu of the keys which control the 
main file screen of Graphic Workshop. This box also tells you how 
much free DOS memory is available.

The Esc key will allow you to quit Graphic Workshop and return to 
DOS.

If you hit "T", the currently selected file name will be 
"tagged". The "U" key will untag it. The batch operations 
described below will work with multiple files if you have some of 
them tagged. If you hit "C", all the tags will be cleared.

If you hit "L", Graphic Workshop will allow you to log in a new 
disk drive. Note that this version of the software does not check 
for illegal drives or open drive doors. If you select an illegal 
drive, the familiar "Abort, Retry or Ignore" message will appear, 
but it will do so below the bottom of your screen, where you 
can't see it. Close the drive door and hit "R" or hit "A" to 
abort and return to DOS.

If you hit "D", you will be prompted to delete the current file. 
Note that this is not a batch command... it only works on one 
file at a time. 

If you hit F5, Graphic Workshop will shell out to the DOS prompt 
if there's enough memory. If you do this, Graphic Workshop will 
still be in memory. Type EXIT at the DOS prompt to return to it 
right where you left off. If you change drives or subdirectories 
while you have the DOS prompt active, Graphic Workshop will 
restore the previous drive and subdirectory when you return to 
it.

The F10 key will show you some information about Graphic Workshop 
as well as your current display adapter and memory settings. 


GRAPHIC FUNCTIONS
_________________

The graphic functions of Graphic Workshop are accessed through 
the function keys. They may be used on individual files or in 
batch mode. If no files are tagged, the operation you select will 
take place using the file name the selector bar is currently on. 
If one or more files are tagged, the operation will take place
on all the tagged files.
	Hitting Esc will abort any operation.

F1 - Print

	This function will print one or more files to the printer 
of your choice. Hit it and a menu of printers and resolution 
settings will pop up. As with all menus under Graphic Workshop, 
hitting Esc will make it go away if you discover you've gotten to 
it in error.
	Colour files printed to a PostScript printer will be 
halftoned. Colour files cannot be printed to a LaserJet or a dot 
matrix printer directly... you can dither them to black and 
white, though, as described in a moment.
	Big files can take a long time to print... be patient.
	All printing to laser printers takes place through LPT1. 
If you want to drive a different printer port, use the DOS MODE 
command to redirect the output of Graphic Workshop to a different 
port. Printing to dot matrix printers takes place through 
whatever port the driver was written to work with.
	One of the options in Graphic Workshop's installation 
involves the default screen size for printing colour graphics to 
PostScript printers. This can be set to anything you like for 
special effects. However, the best results can usually be had by 
allowing the PostScript printer to choose the optimum screen 
setting.
	Note that there's a potential memory problem involved in 
printing to a dot matrix printer under Graphic Workshop. We've 
never encountered it, but it could happen. In order to print to a 
dot matrix printer through a PDR driver, Graphic Workshop has to 
create a buffer which holds anywhere from eight to twenty-four 
lines of your image, depending on how many pins your printer's 
print head has. It also has to buffer the picture you're 
printing, of course.
	Now, it could happen that there's just enough memory to 
buffer the picture but not enough to create the line buffer. 
Graphic Workshop will refuse to print the picture under these 
conditions.
	This is a pretty unlikely occurrence. If you think it has 
happened, you can easily check it. See how much free memory there 
is by hitting a question mark, then open the F4 get info box. See 
how much memory your picture needs to unpack into. Whipping out a 
calculator, see how much memory is left over. Figure out how many 
bytes a line of your picture takes to hold by dividing the 
horizontal dimension by eight, rounding this number up if the 
result isn't even. Multiply this number by the number of print 
head pins in your printer... probably either eight or twenty-
four. If the result is bigger than the amount of free memory left 
when your picture is loaded, you've encountered the 
aforementioned condition.
	Note that none of this applies if the help box tells you 
there isn't enough memory to buffer your picture all by itself. 
If this happens, Graphic Workshop will use extended, expanded or 
virtual memory for your picture, leaving the DOS memory free for 
a line buffer. We'll assume here that there's at least enough 
memory free for a line buffer all by itself. Note that if you use 
expanded memory, Graphic Workshop will need thirty-two kilobytes 
of DOS memory to manage the expanded memory.
	If you happen to encounter this condition, you can trick 
Graphic Workshop into getting around it by forcing it to use 
extended, expanded or virtual memory rather than DOS memory for 
its picture buffer, thus freeing up the DOS memory for a line 
buffer. Simply shell out to DOS and run a second copy of GWS. 
Print from that. When you're done, quit the second copy and type 
EXIT at the DOS prompt to get back to the first copy.
	All this is a very unlikely situation, and one you'll 
probably never run into.	

F2 - Convert

	You can convert a file of any format into a file of any 
other format... with a few restrictions. The new file will have 
the same name as the original but a new extension. Converting 
PICTURE.MAC into an IMG file will create PICTURE.IMG. PICTURE.MAC 
will not be touched.
	As noted above, large images converted into MacPaint 
files will be cropped to fit. Colour files cannot be converted 
directly into monochrome-only formats, that is, to MacPaint, 
Microsoft Paint or IMG. 
	Colour files converted to TIFF will be written as grey 
scale files.
	EPS files cannot be converted to any other format.
	Any file can be converted into an EPS file. If you enable 
the preview option during installation, the resulting EPS file 
will have both the original image and a dithered preview image, 
making it ideal for use with a desktop publishing package such as 
Ventura. The results are stunning.
	Note that Ventura will print an EPS file to a PostScript 
printer. If you attempt to print a chapter with an EPS file in it 
to a LaserJet, Ventura will print the preview image.
	See the Ventura section below for more information about 
using EPS files with Ventura.
	Note that you can convert monochrome image files to EPS 
files, but there's no good reason for doing so.
	EPS files are huge, far larger than a compressed image 
would be. Leave lots of disk space if you intend to use one. As 
a rule of thumb, you can figure the size of a colour image packed 
into an EPS file as being 

	width * depth * 2 plus a few hundred bytes

	The width and depth can be worked out using the Get Info 
function, below.
	EPS files created by Graphic Workshop do not have 
trailing showpage operators... ignore this remark if it doesn't 
mean anything to you.
	Note that you can batch convert any mixture of file types 
using Graphic Workshop. Any files which are inappropriate for the 
conversion you've requested will simply be ignored. The ongoing 
status will appear at the bottom of the screen.

F3 - Dither/HT (Halftone)

	Dithering is a sort of magical process by which colour 
images can be converted into pretty excellent black and white 
versions for reproduction on a monochrome screen or a black and 
white laser printer. Graphic Workshop allows you to dither GIF 
files down to monochrome IMG, PCX, MSP, WPG or TIFF files.
	Dithering often works a lot better if you scale the 
original image up. Graphic Workshop lets you dither with images 
of anywhere from "size as" up to 500 percent expansion if you 
have enough memory.
	Aside from dithering to a file, you can dither to the 
screen to see what your selection of dithering parameters will 
look like.
	Dithering is a fairly slow process, and the better the 
dithering algorithm, the slower it gets. Big files and really 
good dithering can take half an hour or more, although the 
results are usually worth it.
	At its best, dithering can look better than halftoning, 
and a dithered file can be printed on both PostScript and 
LaserJet printers.
	If you have Graphic Workshop dither a file, it will 
create a new file for you of the type selected and with "D_" 
before the name. Thus PICTURE.GIF would be dithered to 
D_PICTUR.IMG, for example. PICTURE.GIF would be left untouched.
	If you want to dither a colour PCX file, you must first 
convert it to a GIF file. Dithering only works on colour GIF 
files.
	The simplest... and fastest... form of dithering is a 
Bayer dither. This does not produce great results, but it's 
extremely quick. The EPS preview images created by Graphic 
Workshop use Bayer dithering.
	The remaining three dithering algorithms use what is 
called "error diffusion". These produce really nice looking 
dithers, but they're quite slow. The fastest... and least 
attractive... is Floyd-Steinberg. The best... and by far the 
slowest... is Stucki. The Burkes dither is somewhere in the 
middle.
	All three of these dithers come in two flavours, UD... 
unidirectional... and BD... bidirectional. These options will 
produce slightly different results.
	You should plan to experiment with the dithering options 
of Graphic Workshop a bit to see what it's capable of.
	Dithering scans an image line by line, starting in the 
upper left corner and working down to the lower right corner. For 
this reason, you will find that if you rotate an image by ninety 
degrees, dither it and then rotate the dithered version by a 
further two hundred and seventy degrees, you'll get different 
results than you would have had you dithered the original image. 
	The last two items in the dither menu are not really 
dithering functions at all, but rather true halftones
They will produce sixteen and sixty-four grey level halftones 
respectively from a colour image. They do this by approximating 
the grey levels in dot sizes, just like newspaper halftones do. 
The destination image will always have four or eight times the 
dimensions of the source image. There is absolutely no advantage 
to expanding images for halftoning, so the expansion menu will 
not appear for sixteen and sixty-four level halftoning.
	Halftones often look more realistic than dithers. The 
drawback to using halftones is that the files can get enormous, 
and even a sicty-four grey level halftone doesn't really handle 
grey levels as well as an error diffused dither... although in 
some cases it may look better.

F4 - Get Info

	This box will show you some basic information about one 
or more selected files. Among other things, it will tell you how 
much memory the file needs to unpack into. You can use this 
number to figure out whether the file in question will fit in 
your available DOS memory or whether extra memory will be 
required, as discussed previously. The amount of available DOS 
memory is available by hitting the "?" key from within the main 
screen.
	The last field in this box displays the file comments if 
there were any, or "No comments". File comments are, in fact, 
Macintosh file names if they're present or, in some cases, 
information about the internal structure of the file. You will 
find Mac comments in some GIF files and many MacPaint files.
	Some file formats actually contain a lot more information 
than can be displayed in the normal Get Info box. TIFF files, for 
example, can conatin the name of the artist responsible for them, 
the type of software used to create them and so on. You can this 
sort of optional information for formats which support it by 
using the "details" option of the F4 box when it's available. The 
arrow keys will scroll you through the detail window. Details are 
available, for example, if you get information about TIFF and IFF 
files.
	You may need some external assiatnce in fully 
interpreting the details. 

F6 - Reverse

	This function will create a reversed version of any 
monochrome image file. The new file will have the same name as 
the original file, with "R_" appended to the front of it. Thus, 
reversing PICTURE.MAC will leave you with R_PICTUR.MAC. This 
function will ignore any files which are not monochrome.

F7 - Transform

	This key will pop up a menu offering you five image 
transformations. You can rotate an image in ninety degree 
increments and you can flip it horizontally or vertically. These 
functions work on images of any number of colours, but only if 
the source images are in the GIF format. You'll have to convert 
images from other formats to GIF if you want to use the 
transformation functions on them.
	Note that the ninety and two hundred and seventy degree 
rotation functions will take a very long time if your images are 
large and require the use of virtual memory... this assumes that 
you lack extended or expanded memory. Them's the breaks.
	Transformed images will be stored in files with "T_" in front 
of the names. Thus PICTURE.GIF will become T_PICTUR.GIF after any 
of the five transformations have been wrought upon it. If you 
rotate it and then flip the rotated image, for example, it will 
become T_T_PICT.GIF, and so on, with intermediate files along the 
way.


INSTALLATION
____________

Making permanent changes to the modifiable features of Graphic 
Workshop involves using the installer, GWSINSTL.EXE. The 
configuration of Graphic Workshop is handled by a separate 
program in order to keep GWS.EXE as small as possible, leaving 
lots of memory for putting graphics in.


Using the Installer

The GWSINSTL program actually modifies GWS.EXE. In order for it 
to work, GWS.EXE and GWSINSTL.EXE must be in the same directory 
and must be so named. Both programs must be of the same version. 
Be aware that as it directly modifies GWS.EXE, there is the 
outside chance that a bug in the installer might crop up and kill 
GWS.EXE beyond repair. Make sure you have a virgin copy of 
GWS.EXE somewhere before you use the installer.
	Place GWSINSTL.EXE and GWS.EXE in the same directory and 
type GWSINSTL. The installation screen will appear. It looks 
something like this:

               Screen colours: COLOUR
                  Memory type: VIRTUAL
                 Display type: EXTERNAL
              Default printer: LASERJET - 150 DPI
       PostScript Screen size: PRINTER'S DEFAULT
   Default dither destination: IMG
          Default dither type: FLOYD BIDIRECTIONAL
      Default conversion type: IMG
     Default expansion factor: SIZE AS
           PostScript preview: ON
      MacPaint file extension: MAC
       GEM/IMG file extension: IMG
           PCX file extension: PCX
           GIF file extension: GIF
          TIFF file extension: TIF
           EPS file extension: EPS
              Print filenames: ON
                  Print dates: OFF
             Print image size: OFF
          Print image colours: OFF
      Print output resolution: OFF
             Print EPS titles: ON
         External driver path: GRAFDRV.DRV

Move the section bar to the option you want to change and hit 
Enter to step through the available options. The PgUp and PgDn 
keys will show you additional options. When you're all done, hit 
F10 to save your changes or Esc to abort and return to DOS.
	The file name extension fields allow you to type in new 
extensions. Hit enter, change the field and hit enter again to 
save the changes.
	

The Configurable Options

These are the things which you can change in Graphic Workshop. 
These parameters can be changed permanently by using the 
installer or temporarily by using the command line switches. 
Having installed GWS.EXE for a particular set of options, you 
might find it convenient to boot it up with one or more of these 
switches to override the installed configuration for particular 
circumstances, such as to use virtual memory for a particularly 
large file when you know you won't have enough extended memory, 
or to use a different PostScript screen size.

Memory: 	
Select EMS for expanded memory.
Select XMS for extended memory.
Select VIRTUAL to use a disk file if you have neither extended 
nor expanded memory. Consult your system documentation to if 
you're unsure about the memory situation of your machine. Note 
that in order to use EMS or XMS memory, you will need the 
appropriate driver installed in your machine, as provided with 
your memory board. Also note that XMS memory will not work 
properly if you have VDISK.SYS installed.

Display card:
If you have a fairly typical display adapter, select AUTODETECT. 
If this doesn't work... if your card refuses to go into the 
graphics mode you expect... select the specific card type you 
have. If you have a VGA card and there's a driver available for 
it, you can set this to EXTERNAL. See below for some additional 
discussion of drivers. Otherwise, select the straight VGA setting.
	Note that some ATI EGA Wonder cards will not go into 
their Hercules graphics modes reliably under Graphic Workshop. 
We're looking into this one.

Print options:
This controls the printing of information at the bottom of each 
page of hard copy. You can enable none, some or all of these 
items, as follows:
	- Print the image file name.
	- Print the date.
	- Print the image dimensions.
	- Print the number of colours in the original image.
	- Print the resolution mode selected.
	- Print the EPS title for EPS files only.	

Preview:
You can enable or disable the creation of a preview image when 
Graphic Workshop converts files to the EPS format.

Screen size:
You can select the screen size for printing colour images as 
halftones to a PostScript printer. This does not effect 
converting colour images to EPS files. Unless you particularly 
want to create special effects, it's recommended that you leave 
this at its default setting. Note that having printed one image 
with a fixed size screen, all subsequent ones will print at that 
size until you reset you PostScript printer or specify a new 
screen size.

Command line switches

You can always see a complete list of these by typing GWS ? at the 
DOS prompt.

/EXT - use extended memory
/EXP - use expanded memory
/VIR - use virtual memory
/CGA - use CGA card
/HER - use Hercules card
/EGA - use EGA card
/PAR - use Paradise card
/ATI - use ATI VGA Wonder card 
/PRD - disable all print options
/S80 - set screen size to 80 lines
/S60 - set screen size to 60 lines
/S40 - set screen size to 40 lines
/S30 - set screen size to 30 lines
/S20 - set screen size to 20 lines
/S10 - set screen size to 10 lines
/SDF - set screen size to printer default
/PRE - enable EPS preview creation
/NOP - disable EPS preview creation
/PFN - enable printing filenames on hard copy
/PDT - enable printing dates on hard copy
/PPS - enable printing image size on hard copy
/PCL - enable printing number of colours on hard copy
/PRS - enable printing resolution on hard copy
/PET - enable printing EPS title on hard copy
/DRV - use the named external graphics driver (defaults to GRAFDRV.DRV)
/PRX - use the named external printer driver (defaults to PRINTER.PRD)

VENTURA PUBLISHER TRICKS
________________________

Graphic Workshop is great for getting images into Ventura 
Publisher documents. Here are a few tips for getting the most out 
of it.
	Monochrome bitmapped images... anything other than EPS 
files... should be converted into IMG files for use with Ventura. 
Note that while Ventura will import colour PCX files with up to 
16 colours, the results are rarely pretty. You'll do much better 
to halftone or dither colour PCX files for use with Ventura.
	Having poured an image into a frame, use the Sizing and 
Scaling box in the Frames menu to select "By Scale Factors." Set 
the scale width to the natural size of the image... as it 
defaults to... or to some integral multiple of it. This will 
eliminate distortion or plaiding of the image.
	Using EPS files is a bit different if you want to get the 
optimum image quality. (If you aren't too fussy, just pour 'em, 
stretch 'em and see what happens.) In this case, you must load 
the EPS file as line art... it's a PostScript file... and use the 
"Fit in Frame" option of the Sizing and Scaling box. Set the 
frame size initially to the natural size of the picture. If you are 
working in inches, you can work this out by dividing the 
dimensions of the image in pixels by 300. 
	If you have forgotten the dimensions of the original GIF 
file you halftoned the picture from, use the DOS TYPE command to 
look at the first few lines of your EPS file. You should see 
something like this:

	/width 640 def
	/depth 480 def

These are the natural dimensions of the image in pixels.
	The initial frame dimensions for this picture would be 
2.13 by 1.60 inches. 
	Next, select "By Scale Factors" and "Distorted". Set the 
scale dimensions to the same values as the frame size.
	You can now change the frame size if you want to. You can 
also expand the image dimensions by some integral amount.
	EPS files used this way can be cropped just like any 
other picture.
	In addition to EPS files, you can create halftones from 
colour images by converting them to grey scale TIFF files. There 
are several advantages to producing halftones this way rather 
than using EPS files. The files will be much smaller... by about 
half... and Ventura will import them with less requisite fiddling 
in the Sizing and Scaling box. In addition, Ventura allows you a 
great deal of control over the way the grey scale and screening 
information is handled in a TIFF file.
	You might want to experiment a bit with these two types 
of files to get a feel for the results produced by them in 
Ventura chapters.
	When you convert a GIF file to a TIFF or EPS file for use 
with Ventura, it's a good idea to dither it to an IMG file at the 
same time, renaming the resulting file so it has the same name as 
your TIFF or EPS file... with an IMG extension, of course. This 
will prevent Ventura from creating its own... almost always 
cruder... IMG file, making your pictures a lot easer to see in 
your Ventura chapters.


COREL DRAW TRICKS
-----------------

If you import bitmapped images into Corel Draw, you can decide 
how they'll be handled once they get there by choosing the image 
type you use. Imported PCX files will be scaled to an arbitrary 
size upon entering Corel Draw, with the result that it's almost 
impossible to adjust them to get a one to one relationship 
between the image pixels and the printer pixels. This will make 
many PCX print badly.
	TIFF files, on the other hand, import initially with one 
to one scaling. If you use TIFF files and leave them at their 
initial size, or stretch them to integral multiples of their 
original sizes, they'll print without distortion or plaiding.
	Grey scale TIFF files imported into Corel Draw come up as 
PostScript halftones... these can look very slick as part of a 
line drawing.
	Another book plug here: you might want to check out 
"Mastering Corel Draw" by Steven William Rimmer, published by 
Sybex Books. This will be available in May of 1990.


CUSTOM SCREEN DRIVERS
_____________________

If you have a super VGA card you can use its super VGA modes by 
having Graphic Workshop drive your card through an external 
driver. External drivers are little blocks of code which know all 
about your specific VGA card, and present it to Graphic Workshop 
in a useful form.
	In order to have Graphic Workshop use an external driver, 
you must select EXTERNAL for the display type in GWSINSTL and set 
the screen driver path to reflect the name and location of your 
driver. For example, if your driver was called TATUNG.DRV and it 
lived in the directory \COMMON\DRIVERS on drive C:, you would 
enter C:\COMMON\DRIVERS\TATUNG.DRV in this field.
	The drivers included with this version of Graphic 
Workshop are discussed in a separate file called DRIVERS.DOC.
	Note that every super VGA card must have a custom 
Graphic Workshop driver if it is to work in its super VGA modes. 
The driver for one brand of card will not work for a different 
card. If there's no driver for your particular card you can still 
use Graphic Workshop in its default VGA mode, but you'll see 
fewer pixels on your screen at a time.
	In future releases we hope to include a number of SVGA 
drivers. If you write one using the GRAFDRV.ASM skeletal driver 
and care to send us the source, we'll be pleased to include it 
with future releases of Graphic Workshop, with suitable credit.


CUSTOM DOT MATRIX PRINTER DRIVERS
_________________________________

Custom dot matrix printer drivers are used to support dot matrix 
printers or other similar output devices which Graphic Workshop 
doesn't know how to deal with directly. In order to load one, you 
must enable the external printer driver option in GWSINSTL and 
fill in the path to your printer driver.
	When Graphic Workshop boots up with an external printer 
driver in place, a ninth entry will be added to the printer 
selection menu, this being the name of the printer your driver 
drives.
	Only monochrome pictures can be printed to dot matrix 
printers... even if you have a colour dot matrix printer.


BUGS
____	

There are bound to be some. If you encounter a problem with 
Graphic Workshop, please contact us. We'll also be interested in 
hearing your suggestions for future releases of this software. If 
you encounter a file which Graphic Workshop won't read, we'll be 
interested in having a look at it.


COMING NEXT VERSION
___________________

These are the features we're working on for the next major 
release of Graphic Workshop:
	- Targa support
	- BMP support
If you register your copy of Graphic Workshop, you'll be notified 
when the next release is available.	


ROLL YOUR OWN
_____________

This is yet another book plug. If you're interested in writing 
programs which use graphics, you'll find everything you need to 
know in "The Book of Bitmapped Graphics", also by Steven William 
Rimmer. It's published by TAB books, (TAB book 3558) and should 
be available in August 1990. It features code to pack and unpack 
MacPaint, IMG, PCX, GIF and TIFF files, as well as chapters on 
screen drivers, dithering and printing.


MORAL DOGMA
___________

If you like this program and find it useful, you are requested to 
support it either by buying the book mentioned at the top of this 
file or by sending us $35.00. We'd rather you bought the book. 
This will entitle you to telephone support, notification of 
updates, a free copy of the latest version of Graphic Workshop 
and other good things like that. More to the point, though, it'll 
make you feel good. We've not infested the program with excessive 
beg notices, crippled it or had it verbally insult you after ten 
days. We trust you to support Graphic Workshop if you like it.
	Oh yes, should you fail to support this program and 
continue to use it, a leather winged demon of the night will tear 
itself, shrieking blood and fury, from the endless caverns of the 
nether world, hurl itself into the darkness with a thirst for 
blood on its slavering fangs and search the very threads of time 
for the throbbing of your heartbeat. Just thought you'd want to 
know that.

We are
                      Alchemy Mindworks Inc.
                          P.O. Box 313
                        Markham, Ontario
                             L3P 3J8
                             Canada

Other programs we've done that you might like include:

Scoop    -  MacPaint, GEM/IMG and PC Paintbrush file readers, 
            with Epson FX-80, LaserJet and PostScript printer 
            support. Drives CGA, EGA, VGA and Hercules cards. 
            Source code in Turbo C and Microsoft MASM is 
            available for this program.
HP_Slash -  Make LaserJet soft fonts smaller by selectively excising
            those characters you'll never use.
Calendar -  Slick perpetual calendar that tells you when the 
            equinoxes happen, what day Michaelmas fell on in 1705 
            and so on.
gemCAP   -  Capture graphics screen in GEM/IMG paint format, 
            suitable for inhalation into Ventura.
CPM2DOS  -  Read CP/M formatted disks on your PC.
ADDRESS  -  Memory resident envelope addresser with graphics.
VFM      -  Ventura soft font manager deluxe with a side of fries. 
            Adds new fonts and creates width tables with menu 
            driven simplicity.
MCOPY    -  Copying program which packs as many files as possible
            onto a floppy, pauses when the current floppy is
            full and asks for another one.
TCAP     -  A text screen capture program which generates GEM/IMG
            graphics that look like your text, all ready for inhalation
            into Ventura.
GRAFCAT  -  Prints a visual catalog of your image files, with 
            sixteen pictures to a page. Drives all LaserJet and 
            PostScript laser printers, and works with any mixture 
            of GIF, PCX, MAC and IMG files.
CROPGIF   - allows you to crop smaller fragments out of your GIF 
            files. Use graphic Workshop, above, to convert other 
            formats into GIF files for cropping. This program 
            uses a simple mouse interface to make cropping image 
            fragments no more complicated than using a paint 
            program Requires a Microsoft compatible mouse.

If you can't find them in the public domain, they're available 
from us for $20.00 each. Source is available for Scoop, for $25.00.


REVISION HISTORY
________________

For them what cares...

Version 3.4 - Fixed a bug in the monochrome EPS previews. There 
aren't many uses for monochrome EPS files. Improved the 
monochrome IMG file reader considerably... it now loads pretty 
well any two colour IMG file, even the weird ones which Ventura 
creates when it imports EPS files.

Version 3.3 - Added halftoning to the dither... now the 
dither/halftone... functions.

Version 3.2 - Added detailed tag analysis for tag based formats. 
Also added drop shadows to the menus and such... this adds four
bytes of code to the program. Fixed a bug of sorts in the TIFF 
display code which made it a bit finicky.

Version 3.1 - Improved several of the image compression 
functions... they're a lot more effective now. Also fixed a 
cosmetic bug in the wait box which caused it to completely close 
on files onler than about 1600 lines.

Version 3.0 - Added descriptive comments to some of the F4 Get 
Info functions. Added IFF/LBM/CE support.

Version 2.9 - Fixed a potential bug in the PCX palette code, 
added file renaming in the finder. Also, one of our users pointed 
out that the compiler was adding a debug table to the final EXE 
file without being asked to do so. Eliminating this has made the 
code about twenty kilobytes smaller. Thanks, Don... things you 
learn...

Version 2.8 - Added loadable drivers for dot matrix support, 
fixed a few obscure bugs in the printing and display code. Added 
image rotation and flipping.

Version 2.7 - Added VGA colour adjustment in the view mode. Added 
Microsoft Windows Paint (MSP) file support. One might ask why... 
Microsoft Windows Paint is not one of the leading lights in 
digital artistry. It was mostly in the interest of completeness. 
We had the format details and it was a hot Saturday afternoon 
with nothing better to do.

Version 2.6 - Added WordPerfect Graphics support, fixed a bug 
which kept some EGA cards from autodetecting properly, made the 
TIFF and IMG packing code tighter still for large images. Fixed a 
bug in the grey scale TIFF printing function.

Version 2.5 - Fixed a bug in the monochrome GIF file decoder 
which caused files with horizontal dimensions not an even 
multiple of eight to display incorrectly... but only on Tuesdays.

Version 2.4 - Fixed some bugs in the external super VGA graphics 
drivers. Be sure to read DRIVERS.WS if you use and external 
driver.

Version 2.3 - Added grey scale TIFF support (at last). Removed 
the built in Paradise Plus and ATI VGA Wonder card drivers in 
favour of the external ones, which frees up a bit of memory and 
makes maintaining these drivers much simpler. Improved the TIFF 
file creation routines, such that they now conform to TIFF 5.0, 
and will import into most applications which accept TIFF, 
including Corel Draw... which is a bit particular about the sorts 
of TIFF files it want to deal with. Fixed a bug in the expanded 
memory manager which caused a few hangs on really immense files.

Version 2.2 - Fixed a bug in the dithering code. This would cause 
some machines to hang if an attempt was made to dither colour GIF 
files to the screen with an external VGA driver loaded. Nasty but 
obscure.

Version 2.1 - Added Macintosh GIF file reading. Macintosh GIF 
files ported to a PC have a 128 byte "Macbinary" header before 
the GIF file proper. Graphic Workshop now detects this, gets 
around it and reads the GIF information normally. Also added a 
comment field to the F4 file information box. This will display 
the Macintosh file names of GIF and MacPaint files with Macbinary 
headers. Fixed some very obscure bugs in the IMG and TIFF file 
compression routines. These would occasionally cause very large 
dithered files to compress incorrectly.

Version 2.0 - Fixed a fairly obscure bug in the 16 colour PCX 
file compression code. 

Version 1.9 - Added image reversal for monochrome files. The 
menus got larger.

Version 1.8 - Added monochrome GIF file packing... monochrome 
files in other formats can now be converted into GIF files. Added 
an external driver for Headland Technologies Video Seven VGA 
cards. Fixed (or rather sidestepped) a weird bug in the EPS 
preview code which very occasionally generated unreadable preview 
images.

Version 1.7 - Added loadable custom drivers for super VGA cards 
other than the ones supported by the built in drivers.

Version 1.6 - Fixed a bug in the TIFF decoder and another really 
tiny one in the file finder. Gettin' down to the aphids and fleas 
now.

Version 1.5 - Added file deletion and fixed an obscure bug in the 
dithering code. Added EGA palette reduction for GIF files.

Version 1.4 - Fixed a bug in the file finder that kept batch 
processes from working across multiple pages. Also, a cosmetic 
bug the in the wait bar graph that happened on files longer than 
about two thousand lines. 

Version 1.3 - Fixed a few persistent bugs in the ATI VGA Wonder 
card driver. ATI cards were put in this dimension to vex us.

Version 1.2 - Fixed several bugs which prohibited PCX to GIF 
conversion for 32 colour files, kept some extremely large 
monochrome PCX files from converting and so on.

Version 1.1 - Added ATI VGA Wonder card driver

Version 1.0 - Sprung GWS on an unsuspecting universe.


SOURCE CODE
___________

After considerable meditation and several bad experiences, we 
have decided not to release the source code for Graphic Workshop. 
We do licence parts of it for specific applications... if you 
want more information about using some of the functions of 
Graphic Workshop in your software, please contact us.


BUNDLING GRAPHIC WORKSHOP
_________________________

If you'd like to include Graphic Workshop with your product, 
please get in touch with us. We have several ways to help you do 
this so your users get the most out of Graphic Workshop and we 
don't have to set our leather winged demon of the night on 'em.
	

LEGAL DOGMA
___________

The author assumes no responsibility for any damage or loss 
caused by the use of these programs, however it comes down. If 
you can think of a way a picture program can cause you damage 
or loss you've a sneakier mind than mine.

All the trademarks used herein are registered to whoever it is 
that owns them. This notification is given in lieu of any 
specific list of trademarks and their owners, which would not be 
as inclusive and would probably take a lot longer to type. 
 
That's it...



Directory of PC-SIG Library Disk #2277

 Volume in drive A has no label
 Directory of A:\

GRAFCT20 ZIP     34348   5-13-90   7:03p
GRAFWK34 ZIP    221814   6-08-90  12:13p
PKZ      EXE     21440   2-14-90  11:37a
CRPGIF11 ZIP     33474   4-16-90   9:43a
READ     ME        373   6-10-90   7:46p
GO       BAT        40   1-01-80   6:00a
GO       TXT       804   1-01-80   2:21a
FILE2277 TXT      3997   7-17-90   9:54a
        8 file(s)     316290 bytes
                        3072 bytes free