---------------------------------------------------
-----------------------------------------------
-------------------------------------------
---------------------------------------
-----------------------------------
-------------------------------
---------------------------
-----------------------
-------------------
---------------
The Printer (tm) by Rob W. Smetana
and Pro~Formance
---------------
-------------------
-----------------------
---------------------------
-------------------------------
-----------------------------------
---------------------------------------
-------------------------------------------
-----------------------------------------------
---------------------------------------------------
The Printer (tm)
** Version 1.4 (1/94) **
Printer codes for hundreds of printers, that any programmer can use!
Includes demo code for C, Pascal, Microsoft BASICs and PowerBASIC.
=====================================================================
Copyright (C) 1989-1994, Rob W. Smetana All Rights Reserved
132 Alpine Terrace San Francisco, CA 94117 (415) 863-0530
The Printer, PDT, Pro~Formance and P~F are Trademarks of
Rob W. Smetana
=====================================================================
=====================================================================
Packing List
=====================================================================
PRINTER DOC This manual
CATALOG DOC A summary of our many programs
TO-ORDER DOC An order form
PRINTER EXE The Printer itself (database PLUS menu)
EDIT EXE For users to edit or add printer codes
AFTER they've selected a printer.
PRINTER CFG The printer codes for the printer YOU
selected. Your programs need ONLY deal
with this 1, small file!
* Created by Printer.Exe
* Read by Edit.Exe (and the demo programs)
DEMO EXE Reads Printer.Cfg and uses it's information
to format text on YOUR printer.
BE SURE to run Printer.Exe first and select
a printer that's compatible with YOUR printer.
PRINTER DAT A "structure file" used by our PDT program
to help you view and edit printer code
data files.
This file, together with The_Prn.? files
(see below) also explain the record
structure of printer code data files.
The next "pairs" of files -- for PASCAL, C
and BASIC -- provide the record structures
(The_Prn.?) and demo code.
THE_PRN PAS Structure/Type declarations
DEMO_PRN PAS Demo
THE_PRN C Structure/Type declarations
DEMO_PRN C Demo
THE_PRN BAS Structure/Type declarations
DEMO_PRN BAS Demo
=====================================================================
THE PRINTER: Eliminating a Programmer's Nightmare
=====================================================================
Our objective in developing The Printer was to help eliminate a
nightmare many programmers face: printing formatted text on dif-
ferent printers, with each printer requiring different instructions
(ie., different printer codes).
* If you want bold here, italics there, this phrase underlined,
etc., you need the printer codes to "turn on" these options.
* And if you distribute your programs, you'll often need printer
codes for the dozens (or hundreds) of different printers your
users have -- unless you want to limit your audience!
Few programmers have the time and resources to obtain appro-
priate codes for every printer. Fortunately, you don't have
to: The Printer offers you codes for hundreds of printers.
* And with The Printer, you can, in many cases, develop simple print
routines you can use REGARDLESS OF WHICH PRINTER A USER SELECTS!
* Finally, ANY programmer writing in ANY language can use The Printer.
If you can read a fixed-length record, you can use The Printer.
The Printer contains printer codes for over 720 different printers
(over 160 in user-supported versions). For each printer, we al-
located space for about 70 printer codes. Some of these are blank,
"user" codes -- so you (or your users) can customize codes for
specific needs, or we have room to expand into.
Examples: Here's how The Printer can help.
-------------------------------------------
In this package you'll find PRINTER.EXE -- a multi-purpose program
and printer database in one. You (or your users) can use Printer.Exe
to install a printer. And YOU can use it to expand the printer code
database to its fixed-length format -- which you can then view and
edit (more on this later). When used with your programs : : :
* Just run Printer.Exe and select a printer from the menu. You
can then review and edit the printer codes for that printer.
* When you're satisfied with the codes you see, press F2 and
we'll save to disk a small configuration file: PRINTER.CFG.
Your programs need only deal with PRINTER.CFG! It'll contain most
every printer code you'll need. To enable or turn on a printer
feature, just print the appropriate "field." For example:
continued . . .
Examples (continued)
Note:
* Our examples use BASIC code for its simplicity. If you program
in other languages, mentally translate these simple examples.
* Our examples assume we already read Printer.Cfg using a structure
or TYPE called "Printer." The file The_Prn.? has the complete
record format of Printer.Cfg.
* Our examples use "rtrim$," a BASIC function that trims trailing
spaces from strings. Each printer code is allocated 14 bytes
even though some codes are 1-3 bytes. Trimming the trailing
spaces ensures we don't shift text right by printing excess spaces.
To reset the printer: lprint rtrim$ (ThePrn.Initialize);
To print Text$ in bold: lprint rtrim$ (ThePrn.BoldON); Text$;
and back to normal: lprint rtrim$ (ThePrn.BoldOFF)
To Underline Text$: lprint rtrim$ (ThePrn.UnderlineON); Text$;
and back to normal: lprint rtrim$ (ThePrn.UnderlineOFF)
That's it. It's that simple! While there are many variations on
this logic (like loading codes into an array, then printing already-
trimmed array elements), the simplicity remains.
And if your user installs a different printer, your code need NOT
change. Just read Printer.Cfg, with the codes for the new printer,
and proceed as usual!
=====================================================================
Packing List
=====================================================================
If you have any questions about anything here, give us a call at
(415) 863-0530. A few minutes on the phone could save lots of time.
File Description
----------- ------------------------------------------------------
Printer.Exe. A multi-purpose program AND database that:
* You may distribute along with your programs (if you
wish) -- provided you have the registered version.
* Compresses the printer database by about 85 percent.
* Allows users to:
- Select a printer from a menu.
- Review and edit printer codes.
- Save a small configuration file (Printer.Cfg)
to disk with codes appropriate for their printer.
YOU need only deal with this small "configuration
file" to get all the information you'll need to
drive your user's printer (for the most part).
* Lets YOU expand the database to its full, fixed-
record size and format. You may then view and edit
it (using our PDT which we'll describe later?).
Edit.Exe A program you may, if you wish, distribute with your
programs. When you use Printer.Exe to select a printer,
it saves to disk a small printer "configuration file."
Should your users ever want to edit these printer codes,
Edit.Exe is a small, fast way to do it.
Printer.Dat This is a "PDT structure file" that, together with
The_Prn.?, explains the field structure of the fixed-
length files The Printer can create.
"PDT" (the Pro~Formance Data Tool), is a terrific
program that's ideally suited to viewing and editing
data files. We could not have developed The Printer
without PDT. Section III describes PDT more fully.
The_Prn.? "Include files" (or units) containing TYPEs (structures)
for both fixed-length files The Printer creates.
Demo_Prn.? Demo programs ("?" = .BAS, .PAS or .C) showing how
to read Printer.Cfg and display printer codes. Some-
thing like this could prove useful in your programs.
====================================================================
A WORK IN PROGRESS
====================================================================
We consider The Printer a "work in progress," awaiting your feedback.
If you find The Printer useful, or if you think it **could** be
useful but isn't now, PLEASE take a moment and jot down some ideas
to help shape the future of this effort. We, and other programmers
we spoke with, are convinced this effort is worthwhile. But we're
not yet sure which format to distribute printer codes in, and which
tools to offer. Please help us shape the destiny of The Printer.
Here are some issues we'd like your feedback on.
* Printer.Exe can expand its compressed database into a fixed-
length file -- so you can view and edit it, add or delete
printers, add printer codes, etc. But currently, there's
no way to re-compress the fixed-length file and re-create
Printer.Exe. How valuable would that option be?
* Printer.Exe lets users edit and add printer codes. Should it?
* Printer.Cfg is saved as a fixed-length file. In this form
one can easily use a TYPE or structure to read all codes in
one gulp. But other formats could work as well: delimited,
sequential, etc. All have advantages; which is preferable?
* Some printer codes must be sent in a specific sequence.
But a database, by itself, offers no clues as to the proper
sequence. Would "Notes From The Trenches" help? Can you
offer tips for printers you're familiar with?
* The Printer contains no graphics-oriented printer codes since,
by themselves, graphics codes without other information can
be close to useless. Would a related product would help?
* What about newly-added printers? Manufacturers release new
printers every year. How can we best keep you up to date?
* When printer codes are saved to Printer.Cfg, they're space-
padded to 14 bytes each. Is this format easily usable in
all programming languages?
* Some codes contain Null (Chr$(0)). Is this a problem?
* What tools would be useful in a "professional" package? To
make The Printer accessible to all programmers regardless of
their means, we've considered offering two registered versions:
- A "plus" version with the basics.
- A "professsional" version with optional features (like
the ability to edit codes and re-create Printer.Exe).
Reactions? Features? Options?
=================================================================
CONTENTS
=================================================================
The rest of this manual is organized into 10 short sections:
Section I: Copyrights, License, Disclaimer, Registering,
Distributing The Printer
Section II: Installing The Printer; Quick Start
Section III: Introducing PDT -- a "Must Have" for Programmers
Section IV: What You MUST KNOW to Use Printer Codes
Section V: Using Printer.Exe -- Use #1, Selecting a Printer
Section VI: Using Printer.Exe -- Use #2, Expanding the Database
Section VII: Using Printer Codes with "Placeholders"
Appendix I: The Record Structure of The Printer's Data Files
Appendix II: Using PDT to View and Edit ANY File
Appendix III: Registering and Ordering
=================================================================
=================================================================
Section I: Copyrights and Trademarks
=================================================================
For information, contact: Rob W. Smetana
Pro~Formance
132 Alpine Terrace
San Francisco, CA 94117
(415) 863-0530
The Printer is Copyright 1989-1994, Rob W. Smetana
All Rights Reserved Worldwide
The Printer, The Pro~Formance Data Tool and PDT are Trademarks
of Rob W. Smetana
LaserJet is a Trademark or Hewlett-Packard Corp.
Other trademarks belong to their respective trademark holder.
=================================================================
Disclaimer and Limited Warranty
=================================================================
We've made every effort to ensure the reliability and accuracy
of this product. If you find errors in this material, or if you
have comments, suggestions or requests, please contact us immedi-
ately. But neither Rob W. Smetana nor Pro~Formance can assume
any liability for damage that occurs because of usage of or
reliance on this product.
We warrant that any disks we send you will be free from defects
in materials or workmanship for a period of 30 days from the date
shipped.
THIS SOFTWARE AND ALL ACCOMPANYING MATERIAL(S) ARE OFFERED AS-IS.
EXCEPT FOR THE WARRANTY DESCRIBED IN THE ABOVE PARAGRAPH, THERE
ARE NO WARRANTIES EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
TO, IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PAR-
TICULAR PURPOSE, AND ALL SUCH WARRANTIES ARE EXPRESSLY AND SPECIFI-
CALLY DISCLAIMED.
IN NO EVENT SHALL Rob W. Smetana and/or Pro~Formance BE RESPONSIBLE
FOR ANY INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS,
EVEN IF Rob W. Smetana and/or Pro~Formance HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Information contained herein and in the printer database is subject
to change without notice and does not represent a commitment on the
part of Rob W. Smetana and/or Pro~Formance.
=================================================================
License and Non-Disclosure Agreement
=================================================================
Running Printer.Exe, using anything in this package, or registering
for The Printer indicates your understanding and acceptance of the
license and warranty herein.
The software and printer code database described in this document
are furnished under a license agreement. The software and database
may be used only in accordance with the terms of that agreement.
* No work derived from this material may be distributed in any
form if it substantially or in part duplicates the functionality
and/or objectives of The Printer and the printer database.
* REGISTERED USERS: This product is licensed to you alone. You
may make copies solely for the purpose of reasonable back-up of
this package. You agree not to copy or transmit this material
for any other purpose, except as provided for below, and further
agree not to make it available to others through a network
configuration.
* REGISTERED USERS may use materials included here, and distribute
Printer.Exe and Edit.Exe to clients and users of programs or code
you've written, PROVIDED THAT:
- You do NOT distribute, or allow to be distributed, the expanded,
un-encrypted printer code database, or any significant portion
thereof. By "significant" we mean 10 records or more.
- You do NOT reveal to anyone the "password" required to expand
the compressed, encrypted database.
* REGISTERED USERS: Should you distribute, to users of programs you
have written, your own version of the printer database, you agree to:
- Encrypt the database such that no other person or program,
save yours, can access it.
- Not disclose to anyone the method(s) used to encrypt or
de-encrypt the database.
- Allow users of your programs access only to that reasonable
portion of the database that serves their immediate needs.
While it would be considered reasonable for a specific user
or network to need access to printer records for 1-3 dif-
ferent printers simultaneously, it would be unreasonable
to allow simultaneous access to 10 printer records or more.
* SHAREWARE VERSIONS may be used for 90 days so you may thoroughly
evaluate how The Printer may serve your needs and those of your
users. But you may not distribute any part of The Printer in any
way except as provided for in "Distributing The Printer."
=================================================================
Distributing The Printer
=================================================================
Shareware distributors, bulletin boards and user clubs may
distribute "user-supported" (or shareware) versions of this
software provided that:
* Your company name, literature, etc. do not promote or
include the words "freeware" or "free" software -- which
terms misrepresent "user-supported" software. Expressly
prohibited from distributing any software by Pro~Formance,
Rob W. Smetana and/or Brandon S. Smetana are: American
Freeware, California Freeware and U.S. Freeware.
* You include, unmodified, all files included with this
software including:
Printer.Exe, Printer.Doc, Edit.Exe, Printer.Dat, The_Prn.?,
Demo_Prn.? and any other files mentioned in Readme.Bat or
Packing.Lst.
* You charge a "distribution fee" of no more than $8 (US).
* You clearly state that continued use of "user-supported"
software REQUIRES paying for the software.
=================================================================
The Benefits of Registering; How we "Say Thanks"
=================================================================
The Printer is NOT free software. It is neither "public domain"
software nor "freeware." It is "user-supported" shareware.
This software is Copyright 1989-1994, Rob W. Smetana. It is
protected by both United States copyright law and international
treaty provisions.
Shareware versions of The Printer work just like fully registered
versions except that:
* Shareware versions of Printer.Exe and Edit.Exe remind you that
they're unregistered and may not be freely distributed.
* Shareware versions contain printer codes for over 160 of the
most popular printers. To "say thanks" to those who register,
we send them a database with over 700 printers.
* All versions include an option to expand the database to a
fixed-length version (so you may view and edit it). Shareware
versions will write out about 50 records so you'll be able to
clearly see how the full database may be viewed and edited.
To Register Instantly:
----------------------
Call (415) 863-0530 with your VISA or MasterCard number.
* This can cut 2-3 weeks off delivery time, since we needn't
wait for your order to arrive by mail, and we don't have
to wait 10 business days for checks to clear the bank.
To Register by Mail:
--------------------
Just fill out the order form at the back of this manual.
* PLEASE NOTE that, because we offer so many programs, our
order form has 2 pages.
- Page 1 lists each program and the cost of each.
- You fill in page 2, indicating which program(s) you'd like
to order, and adding your name, address, credit card
information (if appropriate) and so forth.
* Mail your order form to:
Pro~Formance 132 Alpine Terrace San Francisco, CA 94117 USA
=================================================================
Section II: Installing The Printer; Quick Start
=================================================================
Installing The Printer
----------------------
Copy these files to any path: (only Printer.Exe is required)
Printer.Exe, Edit.Exe, The_Prn.?, Demo_Prn.?
If you plan to expand the database to it's fixed-length format, we
strongly urge you to get a copy of PDT to help view and edit it. If
you do install PDT, be sure to copy Printer.Dat to PDT's special sub-
directory: PDT.DIR. If you do, whenever you run PDT and open the
fixed-length database, PDT will be able to automatically format your
view of the database in logical rows and columns. See Appendix II.
Quick Start
-----------
We know you're anxious to begin, so try both of these. Then, BE
SURE to read this manual later -- with information you MUST KNOW!
* Select a printer:
- Run Printer.Exe. The bottom of your screen will always have
instructions on what you should do next.
- Highlight a printer and press
Return to The Skeptic Tank's main Index page.
The views and opinions stated within this web page are those of the
author or authors which wrote them and may not reflect the views and
opinions of the ISP or account user which hosts the web page. The
opinions may or may not be those of the Chairman of The Skeptic Tank.