Contents of the PRINTGAL.TXT file
-- PrintGal v2.0 --
Here it is! The not-so-quick-and-dirty version of PrintGal.
Version 1.x of PrintGal was just a utility thrown together to
do something I needed at the time. I never expected other
people to find it so useful. Since it seems to have gotten
good distribution, I decided to upgrade it so people won't
get the idea that I always write programs as unfreindly as
early versions of PrintGal.
PrintGal is now entirely menu driven. Part of the reason for
this is to test the menuing library I put together for work.
If a mouse is present you may use it also. You may move
through the menus by using the arrow keys to highlight an
option and then pressing ENTER to execute it. To get out of
menus without a specific 'return to main menu' option you may
The mouse works by holding down the button (either one),
moving the highlight bar to the option you want, then letting
go. Pressing both mouse buttons together and letting go is
normally the same as pressing the ESC key.
-- Registration --
Unfortunately, since this version took a bit of time to put
together I'm going to request that you register PrintGal.
For my purposes this just means that I will keep a list of
registered users and notify them when a new version is
produced. I won't send out a disk containing the new version
to each registered user, since I'm not requesting that much
money. Instead I'll let you know the number of a BBS local to
me where you can find the update. Optionally, you could send
and additional $5 to cover costs and I'll send out a floppy.
I think PrintGal is worth $20, but I'll accept any donation
from $10 and up for registration purposes. As usual, you
don't absolutely have to send money to give me a suggestion,
but you won't be registered if you don't.
For those of you using CompuServe or GEnie, there just plain
isn't much incentive to register. New versions are always
uploaded to those networks, so you'll have access to them
whether or not you are registered. All I can do is say please
register your copy of PrintGal.
I'm willing to disregard the registration fee if you contact
me with a significant bug and help get it straightened out. An
example would be setting up PrintGal to support your printer.
In the past people have gone as far as to copy sections of
their printer manual in order for me to support their printer.
I consider this significant help. On the other hand, I don't
consider suggested improvements to be in the same category,
since suggestions create more work for me.
In case you hadn't already noticed I'm pretty flexible. I'll
notify you as to whether or not I find a given suggestion
acceptable in place of money. Also, people who have sent
donations for PrintGal v1.x will be considered registered for
version 2.0. You'll know if this means you by whether or not
I notify you of this update.
To register send me your:
Voice phone #
GEnie or CompuServe mail ID (if applicable)
David Steiner David Steiner
2035 J Apt. 6 P.O. Box #30168
Lincoln, NE 68510 Lincoln, NE 68503
CompuServe: 72561,352 (c/o Mark VanKekerix)
Packages should go to my P.O. box since they will be left in
the hallway by the mailman if you don't. The CompuServe
account belongs to my roommate, so don't worry about the fact
that the name you see when sending mail there isn't mine.
Here is a list of items that I currently would like help
with. I'll accept the first few responses to these items in
place of the registration fee:
1) Help set up PrintGal to work with any printer it
doesn't currently support.
2) Test the printing option with NewsMaster galleries that
contain large graphics. I don't have any galleries with
graphics much larger than the normal PrintMaster size, so
I don't know for certain if the print routines contain
3) Test printing with a wide carraige printer. You'll have
to change the CHARACTERS PER LINE and EXPANDED CHARS PER
LINE values to test this. I want to know whether or not
PrintGal uses the full width of the paper like it is
-- Source Code --
Due to the monstrous size of this version of PrintGal, source
code is no longer distributed with the package. The size
isn't entirely my fault, the graphics support provided by
Turbo hogs memory.
Another reason for not distributing source is that the code
includes my menu drivers, which are significant. For this
reason the source is not free either. To get source code you
will have to send $25 in addition to the registration fee, or
a total of $35 or more. This price is non-negotiable, unless
you desire to increase the amount, since I consider it very
For those of you on GEnie who may have noticed a couple of
messages I left in the Borland RT, I got the printer problems
sorted out. My thanks to:
Professional Practice Systems
110 South 131st Street
Tacoma, WA 98444
Scott wrote the replacement printer unit, PRINTR, that takes
care of the problems I was having. I downloaded this unit
from CompuServe's Borland forum, and I will upload it to
GEnie's Borland RT if it is not already there to make sure it
I didn't run across any notices in the PRINTR documentation
that says I can't give credit or include the unit with
PrintGal's source code, so it will be included if you
purchase a copy of the source for PrintGal.
-- Overview --
Unlike previous versions, PrintGal now reads all information
for an art gallery into memory at once. The absolute maximum
number of graphics it can hold at one time is 1,000. The
practical limit seems to be about 800 on a machine with 640K
of memory. Although PrintGal is now much more advanced, it is
far from perfect. If you are loading a file and PrintGal runs
out of memory, the program will simply abort. This isn't
serious since you probably won't want a gallery to contain
that many graphics anyway.
Disk access is much faster than before. In prior versions
of PrintGal the conversion process took a lot of time simply
because Turbo reads files slowly. I accessed DOS directly
for reading and writing graphics shapes and was shocked by
the speed difference. This version is about ten times faster
than the old.
PrintGal is capable of reading, writing, converting, or
printing galleries from NewsMaster, PrintMaster or PrintShop.
PrintMaster and PrintShop graphics are identical, so there is
no problem converting between them. However, NewsMaster
graphics may be of variable sizes so the graphics must be
converted to be used by PrintMaster or PrintShop.
Files may be merged by loading more than one into memory at a
time. When files are merged, PrintGal only remembers the
name of the last one loaded.
-- Installation --
Installing PrintGal is as simple as copying the PRINTGAL.EXE
and *.BGI files to the art gallery directory, changing to that
directory and running PrintGal. You may put PrintGal in a
separate directory, but you will then have to set the
directories used for data and graphics drivers as per the
DIRECTORIES menu option discussed below.
Example of installing PrintGal, assuming PrintMaster is
installed in the directory C:\PRTMSTR and PrintGal is
currently on a disk in drive A:
COPY A:\PRINTGAL.EXE C:\PRTMSTR
COPY A:\*.BGI C:\PRTMSTR
After the first time PrintGal is run the file PRINTGAL.CFG
will be created to keep track of changes you may have made to
the configuration. For this reason you should always run
PrintGal from the same directory.
-- Terminology --
For the purposes of this program the following terms are used:
PM : PrintMaster.
NM : NewsMaster.
PS : PrintShop.
Graphic : A single picture.
Gallery : A collection of graphics. These collections are
stored on disk in two files. One file contains
the names and the other contains the actual
Tag : PrintGal allows you to edit the contents of a
gallery. This is done by loading the gallery and
then choosing which files are to remain in the
gallery or be thrown out. This is done by
'tagging' the ones you wish to keep. Tags are
discussed in more detail under the 'View Graphics'
-- Details --
This section covers each of the main menu options in depth.
Before starting here are a few notes about the menu system.
You select an option by using the cursor keys to move the
highlight bar and pressing ENTER on the option you want.
Note that if there are no graphics in memory, many of the main
menu options do not work, no window is popped up.
In an effort to be helpful, I included a status line at the
bottom of the text screen. The currently loaded art gallery
is shown on the left side of the line, and the rest is used
to show help information. This line is used to remind you of
what keys are for what, or to explain a bit more about what
a menu option does.
If I couldn't think of something to put on the status line,
the program name is displayed along with my name. Hey, I
know that's egotistical, but be glad I didn't add in a
request for money to boot.
LOAD PM/NM GALLERY
Selecting this option will pop up a window showing all
PrintMaster or NewsMaster files in the current directory.
Graphics are contained in two disk files, having the
extensions .SDR and .SHP. The files hold the graphic names,
and actual pictures, respectively. Use the cursor keys to
select the art gallery you wish to load and press ENTER.
Initially, there is no art gallery in memory so PrintGal just
loads the file you selected. However, subsequent loads from
disk will first ask if you wish to merge the graphics in
memory with the new gallery. If you answer yes to the merge
option the graphics in the selected file will be appended to
those in memory. The default answer for this question is no,
since it has been assumed that you will not want to merge
LOAD PS GALLERY
This option is identical to loading PrintMaster galleries,
except that it loads a PrintShop file. PS files are only
slightly different than PM galleries, and the extensions used
for file names are .NAM and .DAT. Another requirement for PS
gallery names is that the first two characters of the file
name be 'GR'.
Note that all graphics in memory are stored in the same
format, so you may freely merge PS,PM and NM files in memory.
WRITE TO PM/NM GALLERY
This option writes the graphics in memory to PM or NM files.
PrintGal only writes those graphics that you have tagged.
When a file is loaded all graphics are tagged automatically,
so if you don't wish to mess with tagging you may safely
forget about it.
Before writing, PrintGal checks whether or not all of the
graphics in memory are tagged. If not, a warning message is
displayed to make sure you really wish to leave some of the
graphics out of the new disk file.
Next you are prompted for a file name. You are only allowed
to enter eight characters since the extensions are defined by
PM and NM. The default file name is the name of the file
last loaded, but any valid DOS name may be entered instead.
If you enter a name that is unacceptable to DOS you recieve
an error message and will have to try again.
Finally, PrintGal checks to see if the output file name you
entered is already present. If it is, PrintGal asks to make
sure you wish to replace the old file.
Note that these two options are the only ones that actually
write anything to disk. All other PrintGal operations are
performed on the data in memory.
WRITE TO PS GALLERY
This option functions the same as WRITE TO PM/NM, except that
it outputs to a PS compatible gallery. The default file name
is the name of the last file loaded, unless that name didn't
start with the required two characters 'GR'. In that case
PrintGal inserts them automatically and chops two characters
of the end of the old file name if neccessary.
Note that you don't have to start the file name with GR, but
if you don't PrintShop won't recognize it as a valid file, and
neither will PrintGal (it will not appear in the LOAD PS
GALLERY file list).
Selecting this option will sort all of the graphics currently
loaded into memory. A window pops up to let you know
PrintGal is working, though sorts on normal sized galleries
(100 graphics) take little time.
The name for this menu option not entirely accurate, since
viewing is not the only thing allowed here. After selecting
this option, a window pops up showing the names of all
graphics currently in memory. Graphics that have been tagged
are shown highlighted. While you are in this menu several
keys are active:
T,F9 : Tag the currently highlighted graphic.
U,F10 : Untag the graphic.
ENTER : View picture in graphics mode.
ESC : Return to Main Menu.
The main use for tagging is to delete files. The graphics
are not actually deleted from memory, but when one of the
WRITE TO GALLERY options is chosen, untagged graphics will be
left out of the output gallery.
Pressing ENTER puts PrintGal into graphics mode. The chosen
graphic is displayed on the screen, along with a bit of
information about it. You may return to text mode by
While in graphics mode you may step throught the graphics in
memory by using the SPACE and BS keys to step forward and
backward. The cursor keypad may also be used to move through
The 'T','U','F9' and 'F10' keys work here also to tag or untag
--> A graphic that is tagged will have a frame around it. <--
Note that if PrintGal cannot initialize graphics mode, when it
should be able to, there are three possible causes:
1) PrintGal is not autodetecting the proper graphics
adapter. Go to Setup and explicitly tell PrintGal which
driver to use.
2) PrintGal could not find the graphics driver files (.BGI
files). Go to the Directories option and make sure the
graphics driver directory is set correctly. If that is
not the problem then make sure that the following files
are in the directory you specified:
3) PrintGal does not have enough free memory to start
graphics mode. This is possible when a larger number of
graphics are currently in memory. To determine if this
is the problem, load a smaller file and try viewing the
CONVERT NM TO PM/PS
This menu option allows you to convert NewsMaster files to PM
of PS format. This is neccessary since NewsMaster allows
variable sized graphics, while the other two programs do not.
The standard graphic size for PM and PS is 88 by 52 pixels.
When this option is selected PrintGal pops up a window showing
a bit of information about the graphics currently in memory.
It tells you how many of the graphics are already compatible,
how many are too small for PM/PS, and how many are too large.
In order to let you look at this information and give you a
chance to abort the conversion PrintGal then asks whether or
not you really want to perform the conversion.
Graphics that are too small will be filled in with whitespace
and centered. Graphics that are too large will simply be
deleted from memory.
Well, there isn't much to say about this one as there isn't a
whole lot that isn't obvious. However, you should note that
you can configure how the output is printed by changing the
margins and such from the Setup menu.
Also, for those of you printing NewsMaster files, take notice
that the graphic spacing is based on the largest graphic in
memory. This could potentially create a printout with a lot
of space around some graphics. I don't know exactly how well
this method will work so let me know if something needs to be
TAG ALL GRAPHICS
This selection marks all graphics in memory for output to
disk. You will not normally need to use this since all
graphics are tagged by default when loaded from disk.
UNTAG ALL GRAPHICS
This option is supplied to give you the option for how you
like to think of tagging. Since all graphics are tagged by
default, the default method of tagging is to look throught
the graphics and decide which are to be left out (untagged).
By first clearing all tags first, you may instead look
through the graphics and decide which ones you want to keep.
This menu option is useful for hard disk owners. Its main
use is for setting where the graphics galleries are found.
You may elect to keep PrintGal in its own directory rather
than in the art gallery directory. Also if you use more that
one of the programs, PM, NM, or PS then you may change to the
graphics directory of each program without exiting PrintGal.
The graphics driver directory is provided mostly for my own
use. I prefer not to have to keep a copy of the .BGI files
everywhere they are used. Instead I just leave them in the
same place as the Turbo compiler and tell PrintGal where to
find them. You may have use for this option also if you use
other programs that require .BGI files.
This option allows access to most of the remaining PrintGal
variables. Selecting it pops up a submenus that allow you to
set the graphics driver, configure the printer, or change the
screen colors used.
By default PrintGal takes a guess at what video mode to use.
It determines what type of graphics adapter you have and then
selects the video mode that will provide the highest
resolution. I recommend that you leave the graphics driver as
DETECT, unless you encounter specific problems or prefer a
video mode other than the default.
After selecting a graphics driver a submenu will appear
listing available video modes for that driver, if applicable.
Some of the graphics drivers only have one mode, so the
submenu only displays one option and you don't really have a
Selecting this option allows about as much control over the
printer driver as I could manage. The first set of prompts
are for strings that are sent to the printer to perform the
stated action. These strings are entered as the decimal
character values, separated by spaces. There is room for
quite long entries for these, but normally no more than two
or three codes are required.
The default codes used by PrintGal are set for Epson
compatible printers. I believe they will also work for IBM
printers, but haven't been notified one way or the other.
Here is a summary of what each string is used for:
This is the string required by your printer to reset it to
the power-up defaults. The string is sent before each
gallery is printed to make sure the printout is not
affected by printer settings from programs previously
using the printer. It is also sent after each printout to
restore the line spacing and pitch settings that were
changed by PrintGal.
This string will cause all text to be output at 17
character per inch. For normal PrintMaster galleries the
maximum graphic name length of 16 characters is long
enough to make each name print wider than the actual
picture. If compressed pitch were not used the names
would be nearly twice as wide as the graphics.
Among the many assumptions made about printer output, is
the one that the dots per inch of the text pitch chosen is
the same as that in graphics mode. For Epson printers
this is true for double-density graphics and compressed
pitch and these are the default modes. If you try to
change the text pitch you will need to take this into
EXPANDED (SINGLE LINE)
Epson printers allow the text pitch to be chaged for just
one line. This code select expanded pitch in this manner
for printing the page headers and footers.
START GRAPHICS MODE
For each line of graphics information sent to the printer
this code is sent. Assumptions are that graphics
information is sent to the printer in eight dot tall
columns and that the first two character sent afer this
graphics mode string is the number of such columns being
where N is the number of columns of graphics data being
LINE SPACING (8/72 IN.)
Graphics printing normally requires that the lines not be
spaced as far apart as when printing text. If the line
spacing is not shortened thin white lines will appear in
the graphics when they are printed. For Epson printers
the line spacing that needs to be used is 8/72 per inch.
Some printers require that after you send the new line
spacing you wish to use, you then send another code to
activate it. This strikes me as redundant, but it is
neccessary. One printer that this is required (the only
one I know of) for is the Okidata MICROLINE. For the
Okidata this string needs to be set to '27 50'.
For Epson printers, just leave this string blank.
CR + LF
I decided to keep a seperate string for sending linefeeds
to the printer. I believe that a common problem with
printing programs is that some printers require a CR/LF
pair, while others only need the CR. When a printer is of
the second type, sending the LF inserts an extra space and
printouts are then double spaced. If this problem occurs
with your printer then set this string to '13'.
I beleive the form feed code is pretty standardized, but
you can configure it anyway. I couldn't see any reason to
leave it out when I allowed access to all the other codes.
PRINTER SETUP (cont)
The remaining configuration prompts have to do with items
such as characters per line, or margins:
CHARACTERS PER LINE
This number indicates how many characters will fit on one
line. The main use for it is to set the carraige width.
If you have a wide carraige printer you can change this
variable to take full advantage of it. The secondary use
is if you change the printer pitch above you will need to
adjust this also.
EXPANDED CHARS PER LINE
Same as characters per line, but for expanded pitch.
LEFT MARGIN (CHARS)
Minimum space to leave as the left margin. This value is
given in characters, so pay attention to the printer
pitch. The lines will be right justified, so the actual
margin used may be wider.
LINES PER PAGE
This is the total number of lines per page. This should
take into account the modified line spacing.
BOTTOM MARGIN (lines)
This is the minimum number of lines to reserve for a
bottom margin. By starting printouts a few lines down
from the top, this also covers the top margin.
CHARS BETWEEN GRAPHICS
This is the number of characters to insert between each
row of graphics. The width of each graphic is determined
by the wider of the graphic itself or the maximum name
length (16 characters). For PM and PS files the name is
always the wider of the two. Since the names seldom reach
the maximum length, no space between graphics is
sufficient for PM and PS files.
DOTS PER CHARACTER
This is the number of dots across each printed character.
It is used to determine how many columns of graphics can
be printed on a page.
MENU COLORS & STATUS COLORS
Selecting this option allows you to change the colors used by
PrintGal. It doesn't need much explanation so just try it
out and see what happens. Note that to get PrintGal to use
the new colors you have to exit the program and then run it
-- Applications --
Well, before I close up shop I'll point out a couple of uses
that you may have missed if you scanned the above too quickly:
Freely move galleries from PrintShop to PrintMaster and
back. You can do the same with NewsMaster galleries, but
some files will require you to explicitly convert them
before going from NM to PM or PS.
PrintGal can take a bunch of teeny galleries and make one
nice regular sized one. Just load each file you want
lumped together, answering yes to the merge prompt and save
it back to disk when you are done.
You can get rid of unwanted graphics from art galleries by
loading a file, untagging the offensive graphics and then
saving the file.
Create a gallery of your favorite graphics by combining the
last two techniques, merging and deleting. Simply merge a
bunch of galleries, untag all of the graphics, and then view
the graphics and tag any you wish to put in the goodies
gallery. Finally, write the tagged graphics to disk.
The only problem with this is that you'll have to be careful
about how many graphics you load into memory at one time.
You should try to avoid loading more that 500 at once. When
you approach this limit, write the currently tagged graphics
to your greatest hits file and reload it. This will free up
some memory and allow you to append another file and