Home of the original IBM PC emulator for browsers.
[PCjs Machine "ibm5170"]
Waiting for machine "ibm5170" to load....
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.
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...
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.
╔═════════════════════════════════════════════════════════════════════════╗ ║ <<<< 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 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...
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.
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
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.
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
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...
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