
                             -------------------
                             -- PrintGal v2.0 --
                             -------------------

                                David Steiner
                                  May, 1988



        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
        press ESC.

        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:

              Name
              Address
              Voice phone #
              GEnie or CompuServe mail ID (if applicable)
              Money

        My addresses:

              MAILING                           SHIPPING
              -------                           --------
              David Steiner                     David Steiner
              2035 J Apt. 6                     P.O. Box #30168
              Lincoln, NE  68510                Lincoln, NE  68503
              (402) 475-0601

                   GEnie: D.STEINER
              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
             bugs.

          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
             supposed to.


                              -----------------
                              -- 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
        reasonable.

        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:

             Scott Bussinger
             Professional Practice Systems
             110 South 131st Street
             Tacoma, WA  98444
             (206)531-8944
             Compuserve 72247,2671

        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
        is available.

        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
            C:
            CD \PRTMSTR
            PRINTGAL

        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
                    graphics.

          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'
                    menu selection.



                                -------------
                                -- 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.


        STATUS LINE
        -----------
        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
        files often.


        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).


        SORT GRAPHICS
        -------------
        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.


        VIEW GRAPHICS
        -------------
        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
        pressing ESC.

        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 graphics.

        The 'T','U','F9' and 'F10' keys work here also to tag or untag
        files.

        --> 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:

                  ATT.BGI
                  CGA.BGI
                  EGAVGA.BGI
                  HERC.BGI
                  PC3270.BGI

          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
             graphics again.


        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.


        PRINT GRAPHICS
        --------------
        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
        done.


        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.


        DIRECTORY SETUP
        ---------------
        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.


        GRAPHICS/PRINTER SETUP
        ----------------------
        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.


        GRAPHICS DRIVER
        ---------------
        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
        choice.


        PRINTER SETUP
        -------------
        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:

        RESET PRINTER

           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.

        COMPRESSED PITCH

           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
           account.

        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
           sent:

             GraphString <lo(N)> <hi(N)> graphics data

           where N is the number of columns of graphics data being
           sent.

        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.

        ACCEPT SPACING

           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'.

        FORMFEED

           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
        again.


                           ------------------
                           -- 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:

        CONVERTING

          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.

        MERGING

          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.

        DELETING

          You can get rid of unwanted graphics from art galleries by
          loading a file, untagging the offensive graphics and then
          saving the file.

        GREATEST HITS

          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
          continue.

