[comp.sys.mac.programmer] Printing Example Code

trebor@biar.UUCP (Robert J Woodhead) (04/12/89)

-----------------------------------------------------------------------
THIS IS NOT A FLAME ABOUT APPLE - UNFORTUNATELY, I'M TOO NICE FOR THAT.
-----------------------------------------------------------------------

Of all the mainfold agonies of Macintosh programming, IMHO the absolute
worst is getting your application to print.  The documentation in Inside
Macintosh is _abysmal_ in this regard.  If you put together all the
stuff in IM1-V, plus the technotes, plus trial and error, then you still
in most cases get something that works on alternate tuesdays during Lent.

Well, I'm sick of screwing around with the printer drivers.  And since
Apple has, in 4 or 5 years, yet to publish some decent example code
that has the minor virtue of working (to their everlasting shame!),
I will bestow 1lb of Mrs. Fields Chocolate Chip Cookies upon the first
person who posts to the net source code in MPW Pascal that handles printing
properly.

This is to say, code that:

	* Prints on all Apple supported printers
	* Prints in all selectable resolution modes
	* Lets the user abort
	* Prints under Finder & Multifinder on ALL machines
	* is in the form of "it's all set up, insert your code to
	  image into this bitmap here".

In case you are wondering, 1lb of Mrs. Fields is the ISO standard bribe to
elicit example code.  As for why I'm offering it, my most recent stab at
printing code, which worked fine a few months ago and hasn't been changed,
now seems to get pissed off when it's asked to print to an Imagewriter in
other than draft mode.

Hoping that you are hungry, I remain:




-- 
* Robert J Woodhead * ``Spring Forward, Fall Back''.  Another one of the  *
* uunet!biar!trebor * 23 reasons why taking a flying leap at a brick wall *
* Biar Games, Inc.  * is not a very good idea.                            *

han@Apple.COM (Byron Han, wyl E. coyote ) (04/13/89)

In article <451@biar.UUCP> trebor@biar.UUCP (Robert J Woodhead) writes:
>
>Of all the mainfold agonies of Macintosh programming, IMHO the absolute
>worst is getting your application to print.  The documentation in Inside
>Macintosh is _abysmal_ in this regard.  If you put together all the
>stuff in IM1-V, plus the technotes, plus trial and error, then you still
>in most cases get something that works on alternate tuesdays during Lent.
>
>* Robert J Woodhead * ``Spring Forward, Fall Back''.  Another one of the  *
>* uunet!biar!trebor * 23 reasons why taking a flying leap at a brick wall *
>* Biar Games, Inc.  * is not a very good idea.                            *

The latest volume of Macintosh (R) Revealed (Volume 3 - Mastering the Toolbox)
has a big section on printing.

Hope this helps.
+-----------------------------------------------------------------------------+
| Disclaimer: Apple has no connection with my postings.                       |
+-----------------------------------------------------------------------------+ 
Byron Han, Communications Architect   At Apple, we change the world everyday.
Apple Computer, Inc.                  -----------------------------------------
20525 Mariani Ave, MS27Y              Internet: han@apple.COM
Cupertino, CA 95014                   UUCP:{sun,voder,nsc,decwrl}!apple!han
------------------------------------  GENIE:BYRONHAN   CompuServe:72167,1664
ATTnet: 408-974-6450                  Applelink:HAN1   HAN1@applelink.apple.COM
-------------------------------------------------------------------------------

austing@Apple.COM (Glenn L. Austin) (04/13/89)

In article <451@biar.UUCP> trebor@biar.UUCP (Robert J Woodhead) writes:
>Well, I'm sick of screwing around with the printer drivers.  And since
>Apple has, in 4 or 5 years, yet to publish some decent example code
>that has the minor virtue of working (to their everlasting shame!),
>I will bestow 1lb of Mrs. Fields Chocolate Chip Cookies upon the first
>person who posts to the net source code in MPW Pascal that handles printing
>properly.

If you realize that "drawing" to the printer is basically the same as dealing
with off-screen bitmaps, you should have no major problems.

The documentation on page 155 of IM2 is what I've used often for printing.
It covers all the basics of printing -- and deals with printing only certain
pages of the document.

IMHO, the print manager seems more difficult than it actually is.  I think
that the main problem is that you don't really get to see the output until
the printing loop is finished, which is the same as dealing with off-screen
bitmaps.


-----------------------------------------------------------------------------
| Glenn L. Austin             | The nice thing about standards is that      | 
| Apple Computer, Inc.        | there are so many of them to choose from.   | 
| Internet: austing@apple.com |       -Andrew S. Tanenbaum                  |
-----------------------------------------------------------------------------
| All opinions stated above are mine -- who else would want them?           |
-----------------------------------------------------------------------------

jnh@ece-csc.UUCP (Joseph Nathan Hall) (04/13/89)

In article <28839@apple.Apple.COM> han@Apple.COM (Byron Han, wyl E. coyote ) writes:
>In article <451@biar.UUCP> trebor@biar.UUCP (Robert J Woodhead) writes:
>>
>>Of all the mainfold agonies of Macintosh programming, IMHO the absolute
>>worst is getting your application to print.  The documentation in Inside
>>Mac...

Actually, I never thought printing was all that bad, especially if you go
to the trouble of keeping your displays in pictures ...  I dunno, this isn't
nearly as difficult as dealing with the low-level File Manager routines.
For example, if you want to read a text file, using the newline flag
(reported to exist and occasionally mentioned in the documentation)...


-- 
v   v sssss|| joseph hall                      || 201-1D Hampton Lee Court
 v v s   s || jnh@ece-csc.ncsu.edu (Internet)  || Cary, NC  27511
  v   sss  || joseph@ece007.ncsu.edu (Try this one first)
-----------|| Standard disclaimers and all that . . . . . . . . . . . . . .

omh@brunix (Owen M. Hartnett) (04/13/89)

The print code only looks bad.  If you type in verbatim the code in 
TechNote #161, call your printing code from the middle of the page
calls, it will print fine.

(Of course this doesn't apply if you're trying to do anything tricky,
but regular quickdraw calls will get done fine.)

-Owen
Owen Hartnett
Brown University Computer Science

omh@cs.brown.edu.CSNET 

keith@Apple.COM (Keith Rollin) (04/13/89)

In article <451@biar.UUCP> trebor@biar.UUCP (Robert J Woodhead) writes:
>
>Well, I'm sick of screwing around with the printer drivers.  And since
>
>This is to say, code that:
>
>	* Prints on all Apple supported printers
>	* Prints in all selectable resolution modes
>	* Lets the user abort
>	* Prints under Finder & Multifinder on ALL machines
>	* is in the form of "it's all set up, insert your code to
>	  image into this bitmap here".
>

One thing that satisfies all of these conditions is the TStdPrintHandler that
comes with MacApp. With MacApp, you don't even have to THINK about printing;
it comes virtually automatically. If you just want to print out exactly what
you see on the screen, then all you have to do is add four lines of source
code to your program. Automagically, the print items in your file menu (Page
setup, Print One, and Print...) are enabled and work. The user can abort at
any time, and you don't even have to supply the items you mentioned in bullet
#5, as your main drawing code is autumatically re-used.

If your printing needs are little more extravagent, MacApp can accomodate that
as well.

------------------------------------------------------------------------------
Keith Rollin  ---  Apple Computer, Inc.  ---  Developer Technical Support
INTERNET: keith@apple.com
    UUCP: {decwrl, hoptoad, nsc, sun, amdahl}!apple!keith
"Argue for your Apple, and sure enough, it's yours" - Keith Rollin, Contusions

trebor@biar.UUCP (Robert J Woodhead) (04/13/89)

In article <28850@apple.Apple.COM> austing@Apple.COM (Glenn L. Austin) writes:
>If you realize that "drawing" to the printer is basically the same as dealing
>with off-screen bitmaps, you should have no major problems.

Of course I realize this.  What I am _bitching_ about is that the doco in IM
is abysmal.  And there are few examples, and none of them current with the
many changes and patches.  I had a _prerelease_ Mac and programmed the
sucker on a Lisa; I thought printing was a pain in the a** then and I still
do.

Several people have sent me nice shells that pointed out a couple of
gotchas to me that 1) don't matter 99% of the time, but do kill you
every so often and 2) a set of basic sample sources from Apple would
have alleviated.  Sigh.

pem@cadnetix.COM (Paul Meyer) (04/13/89)

[]
	Yes, please!  After reading all the stuff in IM 1-5, I wrote
some code to print.  After I fixed a typo (passing struct instead of
handle for print record--boom! (Thanks, Mike Kahl)) it worked fine on
the Imagewriter, all modes.  I tried it on a Laserwriter, and it bombs
100%.  It bombs at work with a PS-800.  It bombs at work using
cmd-{f,k}.  It bombs at home using cmd-{f,k}.  Blah!

	I'll add the eternal gratitude of countless machackers (and
maybe anything else it takes) to RJW's (hi Cant!) pound of cookies.

pem (Korath)

Paul Meyer                      pem@cadnetix.COM
Cadnetix Corp.			{uunet,boulder}!cadnetix!pem
5775 Flatirons Pkwy.            GEnie P.MEYER
Boulder, CO 80301               (303)444-8075x277

tim@hoptoad.uucp (Tim Maroney) (04/14/89)

In article <4012@ece-csc.UUCP> jnh@ece-csc.UUCP (Joseph Nathan Hall) writes:
>Actually, I never thought printing was all that bad, especially if you go
>to the trouble of keeping your displays in pictures ...

Ever tried to print a large PICT file?  You can't use the approach from
the Tech Note, because installing your own QuickDraw bottleneck for
GetPICTData will interfere with the Printing manager's bottlenecks.
You have to draw into an offscreen bitmap and then draw that into the
page port.  What a pain.  You can't even allocate a bitmap big enough
in many cases, so you have to break the bitmap into bands and draw
repeatedly into each band.

And yes, the Print Manager is a mess overall.  Fortunately, Apple does
seem to realize this and will probably improve it some day.  That's why
they won't document what print drivers are supposed to do (and why Joel
West's Palomar Software is doing such a good business in providing
developers with print drivers....)

>I dunno, this isn't
>nearly as difficult as dealing with the low-level File Manager routines.
>For example, if you want to read a text file, using the newline flag
>(reported to exist and occasionally mentioned in the documentation)...

Why would you want to do that?  Can you say "slow"?  Surely reading a
text file in a block-by-block way is not beyond the skills of a
professional programmer!  Remember, the key to speed is to read in
as much as possible into the largest buffer possible.  If you follow
this rule, the actual code calling the File Manager is nearly trivial.
-- 
Tim Maroney, Consultant, Eclectic Software, sun!hoptoad!tim
"There are no Famous People on the net.  Only some of us with bigger mouths
 than others."  -- Dan'l Danehy-Oakes, The Roach

jnh@ece-csc.UUCP (Joseph Nathan Hall) (04/14/89)

In article <6987@hoptoad.uucp> tim@hoptoad.UUCP (Tim Maroney) writes:
>In article <4012@ece-csc.UUCP> jnh@ece-csc.UUCP (Joseph Nathan Hall) writes:
>
>>I dunno, this isn't
>>nearly as difficult as dealing with the low-level File Manager routines.
>>For example, if you want to read a text file, using the newline flag
>>(reported to exist and occasionally mentioned in the documentation)...
>
>Why would you want to do that?  Can you say "slow"?  Surely reading a
>text file in a block-by-block way is not beyond the skills of a
>professional programmer!  Remember, the key to speed is to read in
>as much as possible into the largest buffer possible.  If you follow
>this rule, the actual code calling the File Manager is nearly trivial.

Your comments about printing (deleted from above) are well taken.  But
so far as reading in "newline" mode goes:

	1) Virtually all programming environments on all major operating
	   systems support this (C, Pascal, FORTRAN, etc., on UNIX, VMS,
	   MS-DOS, etc.) at a reasonably low level in a reasonably
	   versatile manner.

	2) Why would it have to be slow?  The most common mid- to high-level
	   UNIX I/O is streamed and it's not a problem.  I just want to
	   read mid-sized text files (xx-xxxK); I don't want to sector-
	   copy volumes...

	3) Most programming tasks handled by the Toolbox and other system
	   software aren't beyond the skills of professional programmers.
	   That's not the point.  Fast character I/O (buffered by the
	   system or language run-time routines) and line-at-a-time I/O are
	   SIMPLE and USEFUL tools.  During development, who CARES if I/O
	   performance is -25% of optimum?

	4) Anyway, I disagree with the simple assertion that the "key to speed"
	   is reading as much as possible at a time from disk.  This is just
	   not true.  You can't hope for much improvement in I/O performance
	   once your buffer size exceeds the controller's buffer size.
	   You may even suffer a speed *penalty* if you do random I/O on a
	   fragmented file with a buffer size > sector size.  Furthermore,
	   in situations where it is necessary to scan the file being read
	   character-by-character anyway (when reading a text file, or
	   parsing a source that must be kept on disk, or whatever) the
	   overhead of a system-based character I/O routine can be 
	   negligible.  In systems that provide fast character I/O, it can
	   be SLOWER to do the "raw" block reads yourself if you have to
	   write the supporting code in a HLL.

The lack of explicit Toolbox support for non-block-oriented file I/O is, at
best, a weird omission.  Sure, it's there, but >hiss< >boo< it's buried in
the low-level routines and it's not well documented.  Are we just not
SUPPOSED to read text files on the Mac the same way we read them on any
machine?  Sheesh.

-- 
v   v sssss|| joseph hall                      || 201-1D Hampton Lee Court
 v v s   s || jnh@ece-csc.ncsu.edu (Internet)  || Cary, NC  27511
  v   sss  || joseph@ece007.ncsu.edu (Try this one first)
-----------|| Standard disclaimers and all that . . . . . . . . . . . . . .

stores@unix.SRI.COM (Matt Mora) (04/21/89)

In article <457@biar.UUCP> trebor@biar.UUCP (Robert J Woodhead) writes:
>
>Several people have sent me nice shells that pointed out a couple of
>gotchas to me that 1) don't matter 99% of the time, but do kill you
>every so often and 2) a set of basic sample sources from Apple would
>have alleviated.  Sigh.


I would like to see the code examples that you received,
Better yet, why not send them to John to add to the
UMPG.




-- 
___________________________________________________________
Matthew Mora
SRI International                            stores@SRI.COM
___________________________________________________________

stores@unix.SRI.COM (Matt Mora) (04/24/89)

In article <29811@sri-unix.SRI.COM> stores@unix.sri.com (Matt Mora) writes:
>In article <457@biar.UUCP> trebor@biar.UUCP (Robert J Woodhead) writes:
>>
>
>I would like to see the code examples that you received,
>Better yet, why not send them to John to add to the
                                  ^^^^
Oops, Its Joesph Hall not john .
Sorry Joe.




-- 
___________________________________________________________
Matthew Mora
SRI International                            stores@SRI.COM
___________________________________________________________

jnh@ece-csc.UUCP (Joseph Nathan Hall) (04/25/89)

In article <29811@sri-unix.SRI.COM> stores@unix.sri.com (Matt Mora) writes:
>In article <457@biar.UUCP> trebor@biar.UUCP (Robert J Woodhead) writes:
>>
>>Several people have sent me nice shells that pointed out a couple of
>>gotchas to me that 1) don't matter 99% of the time, but do kill you
>>every so often and 2) a set of basic sample sources from Apple would
>>have alleviated.  Sigh.
>
>
>I would like to see the code examples that you received,
>Better yet, why not send them to John to add to the
>UMPG.
>

That's "Joseph."  Sheesh.  Virtually everyone I've known has called me
"John" at one time or another.  I don't know what it is ...

And, yes, I'm still here.  I've received about a half dozen examples of code.
I'm working on a (sort of) simple dialog manager example, and will collect
a few snippets from my personal library, and send this stuff out, oh, say
around the end of the week.

Actually, I wrote a simple print routine that does a good job of printing
TextEdit records (for use with TransEdit and TransDisplay), and I'll send
that along, too.  It's short enough that I might even post it here. ...

And, yes, DO send me those examples ... they get filed dutifully and will
be repackaged very soon ...

(A personal thank-you to Martin Minow for the coding spec.  Maybe I'll return
the favor and send you mine ...)

-- 
v   v sssss|| joseph hall                      || 201-1D Hampton Lee Court
 v v s   s || jnh@ece-csc.ncsu.edu (Internet)  || Cary, NC  27511
  v   sss  || joseph@ece007.ncsu.edu (Try this one first)
-----------|| Standard disclaimers and all that . . . . . . . . . . . . . .

trebor@biar.UUCP (Robert J Woodhead) (04/25/89)

In article <29811@sri-unix.SRI.COM> stores@unix.sri.com (Matt Mora) writes:
>I would like to see the code examples that you received,

Here is the code shell that helped me the most.  It's in BINHEX format
of all things.  Rich, email me your address so I can send a cheque with
cookie money.

From: uunet!harvard.harvard.edu!siegel (Rich Siegel)

(This file must be converted with BinHex 4.0)

:$NGPEQ9bD@03FQPZG#j`!&4&@&435Ne0!*!%&p3!N!49l(Y94f9ZCA*TBe"bD@j
d,R"p$AZT-6Ni15"5D@0SBA*N)%dZ)&0TC@GPE#`JB@aX)(*TCfKdFb"bCA0PFRC
PC(d0N!0l98GPEQ9bD@03FQPZG#"`FQpfD@4PFb"K)(0dB@jNBA*N)'PZG'9bCQ&
MC5"QEh)JF(*[Ch*KEA-JG'KKG#"hDA0S)(4[)("bD@jd)'PYB@GPFhd0Hh9cD@j
R)(4SC5"3FQPZG#"0B@jKCf9b,Rd0HdPd)(GTE'`JG'&VC5"MBA*P)'pQ)'e[Fh3
JEfBJG'KP)'G[FRNJC'9dB@PXFb"[CL"`FQPZG'PZCbjp$3el5'PcG'pbH6Tp$AY
p$AX*0#ma-Lmi13P569-*3h*PBA4TEfjp$3el6'PRD(4cF'9PC#"3BA0MB@`JFfp
eFQ0P)'p`G'P[ER-k)%0[GA*TCA)J-6!X)$3JFh"KBf9c)("PFL"TEQ4PER3X)$3
JFh"KBf9c)("PFL"dB@)ZI3d0G@jTG#"94f9ZCA*TBe"bD@jd1`eTER4PFQCKBf8
0$AY'Eh)J69"A)&"KFf0KE#`JG'KP)&9649-JE'PcG#"hD@aX)'KKGQ8JG'mJBQ8
JBfKKEQGPC#iJ3@acEb`JH@pe)'eKH5"hDA0S)(4[)(9cC5"0B@03FQPZG#"TCRd
0HhP[G5GbC5"REfPZCb"dEb"bG@iJEfiJGQ9bFfP[ER-JEfBJG'KP)&0jFh4PE5"
PBA*XD@9b)(4SB@iJ0#iaI3d*GA0PF`d*#9"bD@jd9(*KF(-l$3el4R9ZBh4TEfi
J)NGPEQ9bD@03FQPZG#)JD'&ZC'aPFb"KE'`JEfBJG'KP)("bD@jdD@jR)'4PG'&
TE(-Z)%PdFb"KFQGeE@9ZG(-*N!0p$AYKFQ8k#C!8I3el#C!9I3el#@K3FQPZG!N
k#8%J8(*TER3J6@&ZB@GPFL"SB@jNE'8Z)%PQ)'K3FQPZG#"TFb"158`X)(4SC@i
J4f9ZCA*TBe"bD@jd#C!$I3el#C!%GfPXE#"KE'a[Bf&dC5"TG(-JEhGZ)'4PCQ&
eE(3JF(*TER3JD'&ZC'aP)'&ZC#"NDA0`Eh0P)'Pd#C!$I3el#C!%BQ9QEh*P)'9
iDA4TEQFZ#C!1I3el#C!9I3el#A0dBA4eFd4TB@a[Cb!k#8%JF'pTER4PFL"dEb"
K)'4TB@a[Cb"LEhJJGfKTBfJJGfPXE#"LC5"NDA0`E'&jC@3JGfKTE'8*N!0p$AX
*N!9`FQPZG'PZCbiJ5@BJFh4KG(9c4'PKE'pR)'Pc)%j*6#`JEQmJC'PKE'pR)(G
TE'`JBQ8JC'PcF'aKH@9N,JPp$AX*N"9p$AX*N"9p$AX*9A0PFP"bCA"3FQpM)$S
J#8%JCR9ZBh4TEfiJG'KKG#"`CA*QEh*YFb"KERNJF(*P,A"bD@jdD@jR)'PZDA4
TB@aTHQ&dD@pZFb"dD'&d#Ad0H`Q3"@eKH5!JBQ8JFQ9aG@PbC@3Z)%Pd)(0SEh9
XC#"bCA4eFQiJ9&*945"TCL"TG#"MEfe`E'9dC@3*N!0p$AX*N!9cG@0MCA0cCR9
XE(NX)%C"6&0&)(4[)'&LEh*d)("bD@jdD@jR,L"2EQ8JG'KTEQFJG'KKG#"dD'8
*#Ad0H`Q3"99cCA*3FQ9`8(*[Bb"09908)%421L"TG#"TFb"TEA"PFQ&dDACP)(4
SBA3JG'KP)&9cCA*3FQ9`8(*[Bb"cCA4p$AX*N!9S8(*TER4HALj`FNT[BLjT6(0
d8'&RC5"dEb"dD'8JBfpbFQ9MG#"ZG@eLCA)JEfBJF'&RCA-JD@iJG'KP#Ad0H`Q
3"@4[Bh9YC@jd,L"*CL"KE'`JF'&RCA-JBA*P)(0`C@0TCQPPC#"TEL"dD'8JF(*
TER3JC'PKE'pR,#"dD'9Z#Ad0H`Q3"A4SDA-JCQPPE'3JEfBJG'KP)("bD@jd)'K
KEQ4XC5"hD@aX)'*P)$Q3!cXJD@BJG'KTFb"TFb"dD'8JBf&cC5ap$AX*N!9cCA3
JDA3JG'mJG'KP)'0[FR*PBh3JER9YBQ9b)'pQ)("KCf9c,JQ3"hd0H`Q3&Ad0H`P
9Ff9b8'&RC9"bEf-J1JP")'CeEQ0dD@pZ)(4SBA3JC'pPFb"dD'8JB@0dG@&X)'4
bBAGTEQFJEfiJG'KP)("KCf8Z)#"*G#"TF`N*I3el#C!&Fh9`F'aTC@3JGfPdD#"
K)("bD@jd)'KKEQ4XC5`JB5"bC@0dB@jRE'8JFQ9`FQ9cC@jdD@jR)(4SC3N*I3e
l#C!&C(*KGfPZCb"KFQ9K,#"KEQ3JB5"`B@GP)'jeE@*PFLiJ9A0PFP"KCf93FQp
M)(0SEh9XC#"bCA4eFQi*#Ad0H`Q3"945988JD@BJDA3JBfpYF'aPG'9N)(0eBf0
PFh0QG@aXH5`JEh)J4N&-8d8JD@BJH@pe)(GTFfJJG'm*#Ad0H`Q3"@&LEh*d)(4
SC5"`FQPZG'PZCb"`FQpMCA0c,L"8D'8JBh9bFQ9ZG#"RFQ&Q8'pbG#"hD@aX)'*
P)(4SC3Pp$AX*N!9`FQPZG'PZCb"RFQ&Q8'pbG#`JFfmJD@BJH@peFL"bEh9dD@j
P)'0SB@jRCA-JDA3X)'*P)(0eFQ8JG'm*I3el#C!&FQ9cG'pbC5"TG#i*N!jp$AX
*N"9p$AX*4f9ZCA*TBe"bD@jd)(GTE'`JFQ9dGA*Z)'j[4A*b)'PQ)("bD@jdD@j
R)(GKFb"MEfe`E'9dC@3JFh9MBf9cFfCeE'aj,!Q3!hd0H`PKEQ3JB5"ZC@GKG'P
fC5"28b"bCA0eE(3JBfpNC5"[G'KPFRGTFf8Z#C!+I3d0#@CeEQ0dD@pZ)%GPEQ9
bD@03FQPZG#!SD&"bD@jd1L"85&"bD@jd1`d*N!PcG'&dGA0%D@&XEfFk)%4TB@a
[Ce"dFMX0#C!*CR9ZBh4TEfiJ9A0PFP"bCA"3FQpM)#KS8(*TER3k)&4)8(*TER3
T1L"#EfpXC@&Z1`d*N!PQG@jMG'P[EL"9Ff9b8'&RC9"bEf-J+'K3FQPZG$SJ9%K
3FQPZG$X0#C!4F'&RC9*PBh3k)&*PBh3l$3Q3%A"KCf91G@dk)%PZG'9RCA)T1L"
#EfpXC@&Z+6SJ6e0&FR)l$3eTEA"XC@ePER4KG'P[EJd*CR9ZBh4TEfiJ4f9ZCA*
TBe"bD@jd)#KS8(*TER3k)&4)8(*TER3l$3Q3#A0dBA4eFd4TB@a[CcSJ4'PKE'p
R8(4b1`d*N!PQG@jMG'P[EL"9Ff9b8(*PF&"bEf-J+'K3FQPZG$SJ9%K3FQPZG#N
k)%*[EfaPB@il$3Q3#@CeEQ0dD@pZ)&9cCA*3B@GP8(*[Bb!SD&"bD@jd1L"85&"
bD@jd1`d*N"&`B@GP8Q9MG$SJ8Q9MG$X0#C!4F'&RC8jeE6SJ5@jdC@GPFLNk)%*
[EfaPB@iT1L"28d9bFMX0#3PdHA"P$3Q3!e43FN4PGQPMC5!p)#K0B@06Bh*PC@i
X)%PYB@GP9h*TG'9b,#"9EQYZEhGZ,#"-BA0PFPGbDA4PFLNl$3d*#ACKFJd*N!0
cBh*KG'0S1L"#EfpXC@&Z1`d0#C!$Gf&c6NP-1L"#EfpXC@&Z1`N*He45988JD@B
JGf8JEQ9PC'9N)(4[)'&XE'pMBA4P)'K3FQPZG(d0$3Q3!f0eFP"b4A*bEh)k)%p
64A*b1`N*He4SC5"XBA0d)("bD@jdD@jR)'9bFQpbI3d*N!03FNPc6h"PEMSJ3Qp
[E'9KEMX*#AY88P9&)'PQ)(GP*h*P)'PZ)(4SC5"YD@4NE'8JEfBJB5"3FNp`C@i
[8(*$E'pcC5"`B@PbI3d*N!0%Ef0*Fdp`C@ik)%*[EfaPB@il#3Pl9&*945"TCL"
hC5GbC5"TEL"K)&"b6h"PEN4[Bbp3FN0XEh0P4'pM)("KDA*p$3Q3!e"KCf9*Fdp
`C@ik)%*[EfaPB@il#AY88P9&)'PQ)(GP*h*P)'PZ)'%J8(*2F'9Z8'&RC5p3FN0
XEh0P8'&RC5"`B@PbI3d0#C!$EN0[F'PPFcSJ5@jdC@GPFMX*#AY1G@eLCA)JEfB
JBfp`D@9c)(4[)'*P)("bD@jdC@3ZI3d*N!0`FN4PGQPMC6SJ9&"b4'9fD@0P1`P
l9'KP)'YTEQ3JEfBJF(*TER4PFL"hC5GbC5"`FQPZG'PZCb"[ERd0#C!$C(*KCR4
0Ef4P1L"#EfpXC@&Z1`N*Hd4bB@Cd)'pb)(0`EfpX2hd0$3Q3!h"b8'pbG$SJ9&"
3FP"[FR3l$3Q3!h"b8h4KG(9c1L"88(*6G'&dGA-l$3d*N!0cBACP8'pbG$SJ4h*
KCP"dFMX0$3Q3!fNX)(!k)%PZG'9RCA)l$3d*#A"bEf0PC(9bC5"$E'9KEP9`1b"
l9'KTFb"`FQpMC@4eFQ8JBfaPB@jc)(9`)'&QG'9b)(4SC5"bEh9dD@jP)'&ZC#"
PH'PdFbjp$3N*BQ9RD@i0#C!$D@BJGf&c6QPX)'&ZC#!SD&"bD@jd)$`q)'jTE#N
JG'KPEJd*N!4%DA0`Eh0)B@jNE'8S5'&ZC'aP+'K3FQPZG#NT1`d0#C!$D@BJ8'&
RC8Pc6h"PEL"dD'9Z$3Q3"&"b3fa[Ff93B@GP+("b8'pbG#Nl$3d*N!0TCL"%Ef0
*Fdp`C@iJG'KPEJd*N!43FN0XEh0P4'pM+("b8'pbG#Nl$3d*N!0TCL"3FNPc6h"
PEL"dD'9Z$3Q3"&"b3fa[Ff8l$3d*N!06CA43Eh*d+(0KGQ93Eh*d+6X0$3Q3!dG
PEQ9bD@03FQPZG#!k25"MGA*3FN9bFQpb1`d*N!0&H'Pd+%GPEQ9bD@03FQPZG#N
l$3N*C@jN1`d0#3P`FQpMC@4eFQ8J3fKPBfY3FN9bFQpb1`d*#@*PCfPZ$3Q3!fP
Q)'0eFP"b4A*bEh)J2$iJEQp&FR)JG'KPEJd*N!4$E'9KEP9`1`d*#@9ZC$X0$3P
LC@GTEJd*#8GPEQ9bD@03FQPZG#!k25"ZEd9bFMX0#3P3FNPc6h"PEL!k25"'B@a
cC6X0#3P%Ef0*Fdp`C@iJ1MdJ4Q&XFf8l$3N*8'&RC8Pc6h"PEL!k25"'B@acC6X
0$3N*4f9d8'pbG#KcBACP8'pbG#Nl$3d*#AGKFdjTE#!k25!SD&"bD@jd)$dJEQP
X+6X0$3N*8(*2F'9Z1`d*#@0eFP"b4A*bEh)J1MdJ8(*&FR*[FMX0#3P$D'9MDe"
b4A*bEh)l$3d*#9"b5A02F'9Z)$Sp)&4bG@8l$3el5@BJGf8JEQ9PC#"dEb`JB@a
XEf0KG'8JG'KP)("bD@jd)'KKEQ4XC5iJ)%PQ)(4SC5"KE'a[Bf&dC5"QB@PXC@3
X)'9iDA3JEh9dI3elGfPdD#"K)'ePE8CeE%9bFL"bCA0eE(3ZI3d*#@PQ)(GKFdj
TE#"dD'9Z$3Q3!f*PCfPZ$3Q3"'K3FQPZG#!k25"85&"bD@jd+%jPGdKKEQ4XC5K
6DATP6fBS9&"bD@jd+C!$1`d*N!4TCL"S8(*TER3J25"ZD@`JG'KPEJd*N!9LC@G
TEJd*N!CMGA*3FN9bFQpb)$Sp)'ePE8CeE'a&FR)l$3Q3"N0XC@&Z9A!l$3Q3"@9
ZC$X0#C!$HdPZDA4TB@aTHQ8JG'KP)("bD@jd)'KKEQ4XCAd0#C!%8(*TER4%C@C
KG@ad+'K3FQPZG#Nl$3Q3!f9ZC$X0$AY@B@aTC'&dC5"dD'8JF(*TER3JD'&ZC'a
P,Rd0#3PcBh*KG'0S)$Sp)&"b9Q&XD@4KG'8SD&"bD@jd+6X0$3N*D@BJEQpd)&"
b5QpL4'PKE'pR+'K3FQPZG#NJG'KPEJd*N!0$E'9KEP9`1`d0Hd0KE'`JG'KP)(9
cCA)RFb"`FQ9`)("bEf-X)'&ZC#"PH'Pd)'PQ)'Pd)(*PG(9bER-JCQ&XFf8ZI3d
*#@PQ)'j[G#"9Ff9b8(*PF&"bEf-SD&"bD@jd+5"dD'9Z$3Q3!d0XC@&Z9A!l$3e
l9f8JEQ9PC#"dEb"NCA4PFQeTEQ8JFfpYC5"`BA*KE@9dCA*c)(4[)("bD@jd)'0
[FR*PBh4XH5jp$3d*#AY'D@GeFQ8JEh9d)(GSD@0S)("bD@jdCA)JGf8RFQ8JGA0
TEQGp$3N*F(*%CACTBf8J1MdJ9&"b4'9fD@0P+%*68LKS8(*TER4HALj`FP0dE#j
h4'9f,#!i+5Nl$3d*#AY%CA4PFQeTEQ8JGfKPG'KPFL"hC5GbC5"TEL"NFQ&QG#"
YEf4P)'pb)'j[G#jp$3N*C(*KCR40Ef4P)$Sp)'j[G#"2C'3SD&"bD@jdAPiZF(*
+Ef)ZBNT%Ef0-Efp`+6X0$3N*HdPQ)(GP*h*P)'PZ)'4bB@Cd)'e[C'8JEfiJB@i
J5@eKCf9AFQPdCA)X)(GP)'KKGQ8JG'mJD'pZEh)JG'KP)'jeE@*PFL"[CRd0#3P
lBfp`D@9c1b"[G'KPFRGTFf8X)(4SC5"`FQPZG'9b)'4bDACPFL"dB@YPFb"MBA*
P)'pQ)'Pd)'C[FL"eFbjp$3N*D@BJC(*KCR40Ef4P)'&ZC#!SF(*%CACTBf8J25"
*E@&RC9GbDA4PFLNJG'KPEJd*N!0Z3fp`D@9c)$Sp)'K3FQPZG&jH,R"b5QpL,QP
$Eh"TCA-0#3PPE(0P$3Q3!fj$Eh"TCA-J1MdJ-6X0$AY1EhFJGf8RFQ8JFQ9KC(N
JG'mJBQ9RD@iJG'KP)("bD@jdD@jR)'a[Eh!ZI3d0#3Pl6h"PEL"dD'8JF(*TER3
JC'pMG@ePER3Z)%PQ)'Pd)'CKD@ac,#"XC@&fC5jp$3N*F(*3Eh*d)$Sp)&"b6h"
PEN4[BbKS8(*TER3X)'jTE#`JEQPX+6X0#3PNEf0*Fdp`C@iJ1MdJ9(*eC6X0#3P
MGA*3FN9bFQpb)$Sp)&"b4A*bEh)l$3N*3fKPBfY3FN9bFQpb1`d0#3P6CA43Eh*
d+%"`FP"[FR4H,QG3Eh*d+6X0#3PQEh)JD5!k25!a)(4[)'j$Eh"TCA-JC'm0#C!
$BQ9RD@i0#C!%CQpb)(!J1MdJD&"bD@jdAPiZF(*+Ef)ZD8CcG&"KCf8JG'mJD&"
bD@jdAPiZF(*+Ef)ZD8acG&"KCf8JC'm0#C!&BQ9RD@i0#C!'8(*2F'9Z8'&RC5K
`FP"[FR3X)'jTE#Nl$3Q3"P"KCf9*Fdp`C@iJ1MdJ9(*eC6X0#C!'Ff0bBA4MD#!
k25"9Ff9b8'&RC9"bEf-SD&"bD@jd,#"S8(*TER4HALj`FNPZCQmZFP"KCf8X)(!
T1`d*N!C3FN0XEh0P8'&RC5K`FP"[FR3T1`d*N!CTCL"ZEh3JFf0bBA4MD#"dD'9
Z$3Q3"f*PCfPZ$3Q3#'0eFP"b4A*bEh)J1MdJD9"b3@*[FR3l$3Q3#%0XC@&Z9A!
l$3Q3"f9ZC$X0#C!&C@jN1`d*N!0PEQ3l$3d*#9"b3fa[Ff9%Ef-SF(*3Eh*d+6X
0#3P%Ef0*Fdp`C@iJ1MdJ4Q&XFf8l$3N*Bh9b8(*&FR*[FL!k25"3FN9bFQpb1`d
0#3PTCL!SEQpd)%4bB@Cd6@pNC5NJB@jN)#KMGA*3FN9bFQpb)$`q)'j[4A*b+5"
dD'9Z$3Q3!e"b8'PM4QPXC5KS8(*TER3X)'jTE#`JEQPX,#"ZD@`X)("b8h4KG(9
c+6X0#3PMGA*3FN9bFQpb)$Sp)&"b4A*bEh)l$3PPEQ3l$@9ZC#iCr!!!!:
-- 
Robert J Woodhead, Biar Games, Inc.  ...!uunet!biar!trebor | trebor@biar.UUCP
"The NY Times is read by the people who run the country.  The Washington Post
is read by the people who think they run the country.   The National Enquirer
is read by the people who think Elvis is alive and running the country..."