

                              Installing Font Pak
                          


         Introduction
         ============

         Thank you for trying Font Pak Pro.  It IS terrific!

         Font Pak is an easy-to-use, very efficient way to set your
         programs apart from the rest.  In text mode (with EGA or VGA
         monitors) you can customize screen fonts and mouse cursor
         shapes -- like you see in PC Tools, Norton's utilities, etc..
         We also supply:  1. graphics mode fonts and mouse cursor
         shapes; 2. many unique video routines; 3. icons and symbols,
         and more.

         Font Pak's main manual, FontPak.Doc, explains all FP options.
         This "Install.Doc" explains how to install Font Pak and get
         started right away.

         Because Font Pak supports so many programming languages, it's
         important that you install it properly -- by installing the
         right set of demos and OBJs for the language you use.

         So please read this Install.Doc thoroughly.  CALL if you have
         questions:  (415) 863-0530  (9 to 5 Pacific time please).




                    Copyright (C) 1991-1997, Rob W. Smetana

                         All Rights Reserved Worldwide

            Font Pak, Text Font, Pro~Formance, and P~F are Trademarks
                               of Rob W. Smetana


                                                                       


                                   First Steps
                                   ===========

         Here's a summary of files on your disk (or in your archive file).
         Notice that there are several "self-extracting" files, with each
         file including "logical groups" of files:  programs, manuals, etc.

         To install Font Pak, just log onto the drive/directory where
         you want FP, and "run" the .EXE files mentioned below.  It
         will unpack itself, saving it's files to the path you're on.

         File          Description
         ===========   ===================================================

         Readme.Bat    Introduction and installation steps


         Install.Doc   This manual.  Font Pak installation instructions.


         Programs.Exe  (Self-extracting) Run to install FP's programs.


         Manual.Exe    (Self-extracting)  "  "     "     "   manual.



         Everyone.Exe  (Self-extracting) Fonts, OBJ and support files
                                         for ALL supported languages --
                                         many of which are REQUIRED to
                                         run the demo programs.


         Pascal.Exe    (Self-extracting) Pascal demos, OBJs and demo fonts.
         C.Exe         (Self-extracting) C        "      "   "    "    "
         Basic.Exe     (Self-extracting) Demos and support files for
                                         ALL BASICS:  PowerBASIC, PDS,
                                         QuickBASIC and VB-DOS.


         Fonts.Exe     (EVALUATION versions only.  Self-extracting.)  Run
                       this to unpack Font Pak's font files.

                       In REGISTERED versions, because we include over
                       100 fonts, we include a separate FONTS disk.

         ===================================================================

                                                                       


         Follow these steps to install Font Pak.
         ===================================================================

         1. Hard Disk Users:  Create a new directory:  cd \
                                                       md fp
                                                       cd fp

            Floppy Disk Users:  You'll need one blank, 1.2m or 1.44m disk,
            or 4 blank, 360k floppy disks.

            Since FP includes several programs, an extensive manual and
            **many** font files, you need about 800k of disk space to
            install everything (300k in EVALUATION versions).


         2. MOVE TO the drive or directory where you want Font Pak
            installed.  If you use floppy disks, log onto the drive
            with the first blank, formatted disk.

            It's important that you log on to ANOTHER drive/directory.
            When you run, say, Programs.Exe, it will unpack the files
            inside it and save those files to the drive YOU'RE ON.

            For example, move to your Font Pak directory (cd \fp or
            B: <enter>), then type a:programs <enter>.


         3. Once you've moved to a different drive/directory, run
            4-5 "self extracting" files to install Font Pak.  Run:

              Programs.Exe     to unpack Font Pak's main program files

            (If installing to 360k floppies, put the 2nd blank disk in now.)

                Manual.Exe     to unpack FP's manual

            (If installing to 360k floppies, put the 3rd blank disk in now.)

              Everyone.Exe     to unpack programming support files used
                               by ALL supported languages.

                     ?.Exe     to unpack the demo programs and OBJs for
                               your programming language:

                                           C.Exe
                                      Pascal.Exe
                                       Basic.Exe

                  Note:  Each of these contains a PACKING LIST.  Review it
                         for a summary of the files you just unpacked.

            (If installing to 360k floppies, put the 4th blank disk in now.)

            Copy all files from Font Pak's FONTS disk (or, with EVALUATION
            versions, run Fonts.Exe).
                                                   continued . . .      



         4. Run DEMO.EXE to see examples of most Font Pak options.

            Then run each demo program.  Study each demo to see how
            easy each procedure is to use, and how to declare and call
            each.  Each demo is heavily commented to explain each step.

            * Note:  If you use Quick C or Microsoft Basic (Visual Basic
              for DOS, PDS 7.x or QuickBASIC), you may have to compile
              the demo programs -or- create a Quick Library in order to
              run the demos.

              See "Linking Essential OBJ Files" for information on how
              to do this.

            * Pascal and PowerBASIC demo programs will automatically
              "$L" (Link) the OBJs and units they need.

            Be sure to study (and print) the "declare" file (e.g.,
            Font_Pak.H, Font_Pak.Pas, etc.).  By doing so you'll
            see how each Font Pak routine must be declared and used.



         5. Run Try_Font.Exe and try out the many fonts we send you.


         6. Print FontPak.Doc.   NOTE:  FontPak.Doc has lines, boxes
            and shading which we use to highlight areas.

            If your printer CAN print these lines, boxes and shading,
            at the DOS prompt type:  copy fontpac.doc prn <enter>

            If your printer is on LPT2 or LPT3, type:

               copy fontpak.doc lpt#      (where # is 2 or 3)

            But some printers can't print these lines and boxes -- they
            will print italic or other characters instead.  If your
            printer has trouble with lines and boxes, use TRANSLAT.EXE
            to print your manual.  It's explained on the next page.

                                                                       

                  Printing Your Manual --  Using Translat.Exe
         =============================================================

         If your printer CAN'T print lines, boxes and shading, you can:

          * Run TRANSLAT.EXE that we included.  It will translate
            the high ASCII characters to other characters ANY printer
            can print.  For example:

                      Ŀ               +--------+
                      This Box  will become  |This Box|
                                     +--------+

            You can ask Translat.Exe to either print FontPak.Doc, or
            send it to another disk file.


          * OR, you could print it using MULTI-PRINT (MP), another of
            our programs.  This is a MUST-HAVE program!

            MP prints up to 8 pages of text on each sheet of paper.
            It includes 17 fonts to print almost all ASCII characters.
            And it works with LaserJets, Epson or DeskJet printers.

            MP prints in normal Portrait mode (in Normal or Newspaper,
            2-column mode), or in Landscape mode (sideways, in 3 dif-
            ferent ways)!  MP prints 2-8 pages of text on each sheet of
            paper -- saving up to 80% -- and prints virtually every
            ASCII character!


         Using TRANSLAT.EXE
         ==================

         For help running Translate, just type:  translat <enter>.
         Translate will display the syntax to use to run it.

         Briefly, you'd type:  translat filename newfile <enter>

         "filename" would be:  FontPak.Doc (or the name of ANY text file)

          "newfile" would be:  LPT1, LPT2 or LPT3 to print FontPak.Doc.

                          or:  a file name to ask Translate to send
                               the translated output to a file.

         If you print to a file, Translate WON'T check to see if "newfile"
         exists.  If it does exist, Translate will OVERWRITE it!


                                                                     



         ======================= Font Pak's Files =====================

         Font Pak includes many files, most of them font files.  Here's
         a list of the files you'll unpack, and the purpose of each.  An
         asterisk (*) beside the name means this is sent to registered
         users, or that we send registered users more (e.g., more fonts).

         Logically, Font Pak includes 4 groups of files:

            Program files (font editor, Try_Font, A86, manuals, etc.)

            Font Files    (e.g., Script.F16, Lines_1.F16)

            Demo programs (e.g., DemoFnt1, DemoFnt2, DemoBrit, DemoMous)

            Linkable OBJ or source code files (e.g., Fonts.Obj, OnDisk.?)

         We recommend that you keep the font and EXE files together on
         the same drive/directory.  You might want to copy demo programs
         and linkable OBJ and source files to a "programming" directory.

         And you might want to copy Reset.Com and Try_Font.Exe to a
         directory on your PATH (e.g., Tools or Utility).  Then you'll be
         able to use them regardless of the drive/directory you're on.
         BE SURE to do this with Reset.Com.  Then, if you're experi-
         imenting and render your screen unreadable, you can shell out
         of your editor, type "reset <enter>" and restore the default
         (readable) font.  You could also can type "try_font /r" or
         "mode co80" to do the same.  Mode.Com is a DOS utility.


         Program Files     Description   <R> = sent to REGISTERED users
         =============     ==============================================

           FontPak.Doc     Your manual.  Translat.Exe can help print your 
          Translat.Exe     manual.  See "Using Translat.Exe" above.

          Try_Font.Exe     To try out or load fonts from DOS.

             Reset.Com     To restore text mode and the default font.

           QuikKey.Com     Speed up AT keyboards.  V-e-r-y useful when
                           drawing -- as you might in our font editor.

                FE.Exe     Font and mouse shape editor.

           MakeCom.Exe <R> Create incredibly useful "executable" fonts!

          Font2Asm.Exe <R> Create ASM/OBJ font files you assemble and CALL.

               A86.Com <R> A trial version of the A86 assembler.  Use
            FP_A86.Doc     Font2Asm to create ASM versions of font files.
                           Then use A86 (or any MASM-compatible assembler)
                           to compile fonts to callable OBJ font.

           FontCap.Exe <R> "Capture" a font you're looking at.
                                                                       


         Font Files
         ==========

         Font files have names like "Medieval.F16."  All extensions
         begin with "F" for font.  "16" means this is a 16-point font.
         "Font Fundamentals" in FontPak.Doc explains font sizes.

         PLEASE save fonts with extensions beginning with "F."  The
         menus (in Try_Font.Exe and FE.Exe) only display files with
         extensions beginning with "F."  Use numbers (e.g., "F14") to
         describe how tall fonts are.


         Linkable Files    Description
         ==============    ==============================================

         When you run C.Exe, Pascal.Exe, etc., two types of files will
         appear on your disk:  1.  Demo programs (e.g., DemoFnt1.Pas);
         and, 2.  OBJ and source code files.  We'll discuss running the
         demo programs next.


         OBJ files contain small assembler procedures. "OnDisk_?.?"
         files, written in C, Pascal or BASIC, contain function
         LoadFontFile to help you load font files from disk.


         IMPORTANT:  Pascal and PowerBASIC require DIFFERENT approaches
         when we return values from assembler routines.  We therefore
         supply SEPARATE OBJs for Pascal and PowerBASIC:  "P" versions.

           Mouse_P.OBJ        REGISTERED versions of core mouse routines

          FontPakP.OBJ        EVALUATION versions include 1 OBJ including
                              ALL assembler routines.

         Required:         Fonts.Obj is required in most cases.  It
                           offers routines you'll need to select fonts
                           and restore default fonts.

         Optional:         Other routines are optional.  Link only those
                           that contain utilities you'll find useful.

         Sizes:            The table below shows how many bytes (approx-
                           imately) each OBJ adds to EXEs.  Note that
                           most are small (300 - 500 bytes).  Two files,
                           OnDisk_? and LdCursor, are larger.  They add
                           about 1200 - 2200 bytes to EXE sizes.


                                                                       


         The table below shows names of all OBJ files you extracted when
         REGISTERED USERS run EveryOne.Exe and/of C.Exe/Pascal.Exe/Basic.Exe.

         In EVALUATION versions, we supply ONE OBJ, Font_Pak.OBJ (FontPakP.OBJ
         for Pascal and PowerBASIC users).  It contains "trial versions" of
         ALL of the separate OBJs you see listed below.

         Beside each file name, we list the size of each OBJ, as well as
         it's contents.  REGISTERED USERS can use this information to decide
         which OBJs to link to programs, and determine how much the size of
         their EXEs may grow by doing so.

                         Size
         Linkable Files (bytes)  Description
         ============== =======  =========================================

            Fonts.Obj     300    Assembler font-related routines
                                 - rsWhichFonts   select 1 or 2 fonts
                                 - rsLoadDefault  restore default fonts
                                 - rsLoadFont     helps load on-disk fonts


            Video.Obj     900    Assembler video-related procedures.
                                 - GetMonitor      see if EGA/VGA present
                                 - DefaultPalette  display 2 fonts in same
                                                   color intensity
                                 - BrightBG        bright-background colors
                                 - SetMaxLines     set # lines on screen
                                                   based on a font's height
                                 - WriteChar       ASM routine to print
                                                   characters ANYWHERE on scrn.
                                 - SetCursorPos    locate the cursor


           OnDisk_?.?    varies  A SOURCE CODE file containing function
                                 LoadFontFile to load fonts from disk.
                                 (EVALUATION versions include "compiled"
                                 versions.)

                                 OnDisk.C       C
                                 OnDisk.Pas     Turbo Pascal
                                 OnDisk.Bas     Microsoft BASICS -and-
                                                PowerBASIC


            Mouse.Obj     400    Assembler mouse routines.
          Mouse_P.Obj            (Pascal or PowerBasic -- only)
                                 - rsThereIsAMouse   intitialize mouse
                                 - rsShowCursor      turn mouse cursor ON
                                 - rsHideCursor      turns mouse cursor OFF
                                 - rsButtonPressed   poll mouse for click
                                 - rsSetTextCursor   help select mouse shape
                                 - rsSetTextCursorC   "      "     "     "

                                                    continued . . .    

                         Size
         Linkable Files (bytes)  Description
         ============== =======  =========================================


         LdCursor.Obj    2200    Asm. library of TEXT-mode mouse cursor shapes.
                                 - rsLoadMouseCursor  8x16 shape library
                                 - rsLoadMouse8       8x8    "      "
                                 - Num16Shapes        returns # of 8x14/8x8
                                   Num8Shapes         shapes in libraries


         LdGFXCur.Obj    1600    Asm. library of GRAPHICS-mode mouse shapes.
                                 - rsLoadGFXCursor    select GFX-mode cursor
                                 - NumGFXShapes       returns # of cursors

         LdSymbol.Obj    1800    Asm. library of TEXT/GRAPHICS symbols or icons
                                 - rsLoadSymbol       select a symbol or icon
                                 - Num16Symbols       returns # of symbols

          GFXFont.Obj     300    Assembler routines to select or restore
                                 default graphics-mode fonts.
                                 - GFXFont08       select 8x8  font
                                 - GFXFont14         "    8x14  "
                                 - GFXFont16         "    8x16  "
                                                                       


                           Linking Essential OBJ Files
         ==============================================================

         To use Font Pak's many options in your programs, you must Link
         to those programs 1 or more OBJ files that we include.
         
         IMPORTANT:  All Languages
         =========

          * Numeric parameters you pass to our routines MUST be integers!
            And you'll pass most parameters by value, NOT by reference.

            We included "declare files" (e.g., Font_Pak.H, Font_Pak.Pas,
            etc.) to help you declare and use procedures correctly.

          * ALL assembler routines follow the PASCAL/BASIC/FORTRAN
            calling convention.  C users:  In EVALUATION versions, all
            OBJs are MEDIUM model.  We send REGISTERED USERS Small and
            Large model versions -- in separate .LIB files.


         Pascal Users
         ============

         Your job is simple.  Font_Dec.Pas is a unit which declares and
         links all Font Pak procedures -- using {$L Fonts.Obj}, etc.

         Just add "uses font_dec" to your programs and you're on your
         way.   Now run the Pascal demo programs.


         PowerBasic Users
         ================

         You have two options.  You can "$Link ..." each OBJ to programs
         you're working on.  Or you can use PBLib.Exe and add Font Pak's
         OBJs to a PowerBasic library (a .PBL file) then "$Link ..." the
         entire .PBL file.

         PowerBasic demo programs $Link the OBJs they need.
                                                                       


         Quick C and Microsoft Basic Users:  Creating Quick Libraries
         ============================================================

         If you use Quick C or any Microsoft BASIC and add Font Pak's
         OBJ files to a Quick Library (QLB), you'll be able to change
         fonts and cursor shapes as you develop programs.

         There are two ways to create Quick Libraries.

          1. First add OBJs to a LIB file (using LIB.Exe).  Then LINK
             the entire LIB file into a QLB.  This approach is logically
             simple and ensures you'll have a LIB file to compile and
             link EXEs. For example:

              lib  Font_Pak +fonts +video +mouse +ldcursor +gfxfont;

              link Font_Pak.Lib, ,nul, vbdosqlb;   <-- Visual Basic for DOS
                           ^^^^

             Note:  When you Link LIB files, you MUST specify ".LIB".
             That's because Link assumes files are ".OBJ" files and
             won't find LIB files them unless you include ".LIB".


          2. Or, you can build QLBs directly from OBJ files.  For
             example, users of Microsoft's PDS 7.x users might:

              link /q fonts mouse video ldcursor gfxfont, , nul, qbxqlb;

             This creates "fonts.qlb" which will include the 5 OBJ files
             listed after Link.  "/q" tells Link to create a quick
             library instead of an EXE file.


             If you need to Link more that 5-10 OBJs, use a "response
             file" to create QLBs.  That's because the Link command
             line can't exceed 128 characters.  Here's an example of a
             response file Microsoft QuickBASIC users might use.

               fonts     +   <--list OBJ or .LIB files followed by "+"
               video     +      be sure .LIB files include ".LIB"
               mouse     +
               ldcursor  +
               ...others +
               gfxfont       <--no "+" for the last OBJ/.LIB file
               fonts         <--the name of the QLB you want to create
                             <--nothing (for no MAP file)
               bqlb45;       <--list any library files you want used


             Assume this response file is called Fonts.Rsp.  To use it:

               link /q @fonts.rsp;

                                                                       


         Linking OBJs to Programs You Compile
         ====================================

         For the purposes of this discussion, assume we already compiled
         a demo program to "demofnt1.obj."  Be sure to consult your
         language manual for the specific syntax to use with Link.

         An easy way to include our routines in your programs is to add
         our OBJs to a LIB file.  When you compile and Link your pro-
         grams, simply mention this LIB file and Link will do all the
         work for you.  This approach (or using Link response files) is
         especially useful when you must Link many OBJs to your programs
         -- because of LINK's 128-character command line limitation.

         Link ONLY pulls in the routines you actually use in your
         programs.  You need NOT worry that Link will add entire LIB
         files to your programs.

         For example:

          1.  Add OBJs to a LIB file:  lib Font_Pak +fonts +mouse;

          2.  Then:  link demofnt1, , nul, [core LIBs] Font_Pak;
                                                       ^^^^^^^
                                                          |
              Include LIB with Font Pak's routines here --+


         Another way is to specify all OBJs on the Link command line.
         This option is quick and easy when you have only a few OBJs
         to include.  For example:

           link demofnt1 fonts mouse , , nul, [core LIBs];
                         ^^^^^^^^^^^
                              |
                              +---- List Font Pak's OBJs here.
                                                                       


                      Experimenting:  Having Some Fun
                      ===============================

         Trying Out Fonts:  Using Try_Font.Exe             (all users)
         =====================================

         Run Try_Font.  It will display a menu with all fonts.  Highlight
         a font name and press <enter> to try it or Alt-S to Select it.

          * Pressing <enter> loads the font temporarily.

          * To load a font and preserve it when you exit Try_Font press
            Alt-S to Select a font, then press Alt-P to Preserve your
            choice and exit Try_Font.

         Try_Font illustrates one of Font Pak's most important features:
         partial fonts.  Most Font Pak fonts are partial fonts.  Select
         one to change keyboard characters, then highlight one of the
         line-draw fonts (e.g., lines_1.F16) and select it ALSO.

         In other words, you can load 2 or more "partial fonts" to remap
         subsets of ASCII characters.  This gives you tremendous flexi-
         bility, and you can do the same type of thing in your programs.


         Create Some Executable Fonts                       (registered)
         ============================

         Run MakeCom.Exe (e.g., makecom medieval.f16 <enter>), then "run"
         your new "executable" font.  Also create an executable font
         with line-draw characters (e.g., makecom linfrazl.f16 <enter>).


         Create Some CALLable Fonts Using Font2Asm and A86  (registered)
         =================================================

         This takes 2 steps.

          * Run Font2Asm and create an ASM font file:

              font2asm roman.f16

            Answer the 5-6 questions Font2Asm asks.


          * Second, run A86 which we include (or any MASM-compatible
            assembler) and turn the ASM file into an OBJ file:

              a86 roman.asm +o    -or-    masm roman;

         You now have Roman.Obj.  Link it to your programs or Quick
         Libraries (or $L link it in Pascal or PowerBASIC), then call
         roman (blocknumber) to try it out.
                                                                       


         Edit a Font                                        (all users)
         ===========

         Run FE.Exe, your font editor.  As it starts up, it loads the
         default font:  an 8x16 font on VGAs, an 8x14 font on EGAs.

          * Notice the 5 areas of the screen.  Press TAB to move among
            them.  As you do, notice how FE highlights a different
            "command summary" at the bottom of your screen.  Press F1
            for more help.  In each area, press the cursor pad keys.

          * Press F3 and LOAD a font.  Load the 8x8 default font.
            Also load a font file.

            When you load font files, pay CLOSE ATTENTION to what
            FE tells you about:

            - How many characters are in fonts.

            - What the 1st character is.

            If the number of characters is LESS than 256, "merge" the
            font into the current one.  To do this, note what the 1st
            character is, then move the cursor in the Character Set to
            that character and press <enter>.

            For example, many fonts begin at ASCII character 32 or 176.
            To merge one of these fonts, move to cursor to ASCII 32 (the
            space) or 176 and press <enter>.

