Ask the Guru

Don Lancaster’s Ask the Guru

Selected reprints — volume II Computer Shopper series (November 1987 - December 1989)

Copyright c. 1989 by Don Lancaster and Synergetics Box 809, Thatcher, AZ 85552 (520) 428-4073

Book-on-Demand self-published using the Apple IIe computer and the LaserWriter NTX. All graphics were done in their entirety by ProDOS AppleWriter 2.1.

i Ask the Guru

ii Ask the Guru

Introduction

Hmmm It seems that we somehow made it to Volume II. Anyway, welcome back to our ongoing series of reprints from my Ask the Guru column originally found in Computer Shopper magazine. This volume will begin with column #32 which first appeared in December of 1987 . What is this all about? Darned if I know. Be sure to let me know if ever find out. In theory, we are supposed to deal with stuff like Apple IIe computing, laser printing, PostScript programming, and the insider desktop publishing secrets. But most anything at all can and will come up. As before, I go on the assumption that if I am interested enough in something to get involved with it, then others like yourself may also be. These volumes are also an ongoing experiment in book on demand PostScript laser printing. What you have here was literally beat out on a brick in my back yard. All of the figures, all of the artwork, and all of the text was done by using the AppleWriter word processor on an Apple IIe, and on-demand printed, one self-collating custom copy at a time, on an Apple LaserWriter. Thanks to some ultra-sneaky programming and comm tricks, this all happens at the "wide open" LaserWriter print speed. The page makeready time is zero for most pages, a trick that is trivially easy on the Apple IIe, yet quite difficult on a Mac II or a 386 clone. Because of all the toner reloading tricks you will read about here, my LaserWriter per-page toner costs are one-fifteenth of the going rate. Which helps make my laser printing economics more than cost competitive with jiffy printing. Binding is via a Unibind toaster, and shearing by way of "borrowed" time on a thirty party shear that I keep sharp for them. My ongoing thanks to Computer Shopper editor Stan Veit for letting me say what I want to say when and how I want to say it. Should you want to subscribe to Computer Shopper , do give them at call at (407) 269-3211 . ✦

iii Ask the Guru

About the Author

As he said in his classicIncredible Secret Money Machine , Don Lancaster writes books. And queststinajas . Microcomputer pioneer and guru Don Lancaster is now the author of23 books and countless articles. He is considered by some to be the father of the personal computer, for his early ground-breaking work with hacker digital electronics and low cost video terminal displays. He is considered by others to be the patron saint of the Walter Mitties of the world. And, he is considered by yet others to be the . . . er, better skip that one. His monthly columns include both theAsk the Guru and LaserWriter Corner over in Computer Shopper , and his Hardware Hacker column in Radio Electronics magazine. Some of his other titles include hisCMOS and million-seller TTLCookbooks, Micro Cookbooks volumes I and II , Enhancing your AppleII, volumes I and II , the AppleWriter Cookbook , the Active Filter Cookbook, Apple Assembly Cookbook , his Hardware Hacker reprints, Don Lancaster’s PostScript Secrets , and his Intro to PostScript video. Don’s current software offerings include his PostScript Show and Tell, and PostScript Work in Progress , plus a few companion disks for his various books. Don is the head honcho ofSynergetics , a new-age design and consulting firm that specializes in Apple computing, laser printing,PostScript program utilities, electronic prototyping, book-on-demand publishing, technical writing, and innovative software design. His avocations include firefighting, cave exploration, bicycling, and, of course,tinaja questing.

Don maintains a no charge voice helpline at(520) 428-4073 . He welcomes your calls and letters. Best calling times are 8-5 weekdays,Mountain Standard Time . ✦

iv Ask the Guru

Table of Contents

The paper cutters The LAN of the eighties Patching programs IIgs numeric tool listing 33 Rubbergrid utilities 41 Restoring ProDOS disks New LaserWriter ROM Corner rounding punches PostScript fundamentals Laser "personal map" cards

Postscript dipdraw IIgs numeric toolkit listing Reading Apple keys An exact IIgs video locking 34 Black -vs- white write 42 Post-justification edit ideas Printing onto anything Handicapped tech resources An AppleTalk schematic Postscript input text scanner

Postscript boxifier Sight reading an eexec file Laser printing papers Bad SX cartridge problems 35 New BASIC for the IIgs 43 Omnicrom and Kroy Kolor AppleTalk cable substitutes Direct input from/to Apple Monochrome HIRES graphics Cheap new fusion machine

New LaserWriters Duplex color tricks Postscript point grid Gonzo Justify Stuff 36 Printing onto aluminum 44 Color proofing systems Understanding IIgs modes Anti-Scratch Pixie Dust IIgs programming resources New IIgs System Software

Perspective drawing Several hot stamping ideas Help on the Apple III My computer workstations 37 Self-publishing secrets 45 Old and new game paddles Alternate IIgs monitors Using snoop and superexec INH problems on the IIgs PostScript nuisance routine

A new high-tech toy Apple game paddle circuits Perspective transforms LaserJet to LaserWriter mod 38 New LaserWriter details 46 Book publishing on demand IIgs AppleWriter patches PostScript intelligent directory Toner cartridge reloading The GOCCO silk screen process

PostScript border builder PC Transporter first look IIgs toolset dependencies PostScript intelligent tabs 39 Getting started with APW 47 LaserWriter NTX defects list Transparent laser printing Simple white noise generator Stock market price records Printer and printing resources

A Numeric IIgs tool list The tearing method Using padding compound SX cartridge refilling 40 PostScript printed circuits 48 PostScript font bitmaps IIgs old disk drive adaptor Some thick paper ploys Selecting your laser printer Colorease and Identicolor

more . . .

v Ask the Guru

Secret non-putrid grays Toner-to-litho plates Sources of ticket blanks NTX hard disk secrets 49 Gonzo justify templates 54 PostScript rope-a-dope Those $1300 LaserWriters Returning font bitmaps WPL font selection routine Rebuilding crashed disks

The great Pellon ploy Those IIgs mentor programs Developer Resources PostScript charts and graphs 50 LaserTalk on the Mac 55 Book-on-demand publishing PostScript spirograph Avoiding NTX disk blowups A 57600 baud interface Unusual graphic arts goodies

Secret toner refill tools Foreign power supplies PostScript error trapper LaserWriter networking 51 A serious AppleTalk bug 56 Profits from Post-It notes Mini-DIN 8 serial cabling Working with Bezier curves Beginners two-up notepads PostScript avuncular sleezoids

A low cost jogger A PostScript fractal fern Die cut laser forms Transfer toner for T-shirts 52 Ultra-fast PostScript 57 BASIC.SYSTEM 1.3 flaws Several GS/OS bugs More on that NTX hard disk Apple-authored books Simple template for newsletters

Video overlay card 300 DPI print secrets Pad printing secrets Apple user resources 53 The safety pin method 58 Pixel line remapping PostScript curvetracing High resolution hassles PC Clone LaserWriter use Binding systems review

vi Don Lancaster's The paper cutters Patching programs Rubbergrid utilities ASK THE GURU New LaserWriter ROM November, 1987 PostScript fundamentals

pple Computer desktop free posters on typography, and the to let PostScript become the de-facto publishing introductions so free sets of the PostScript Developer screen description language as well far this fall have seemed Guidelines from them. as the upcoming industry standard A rather low key, at least to But their really big news is that page description language. PostScript this writing. In mid-September, they Adobe has finally dropped all their is ridiculously richer and far more quietly announced a new LaserWriter insane copy protection on their line powerful than eitherQuickDraw or upgrade to those Version47 ROM' s of downloadable fonts! GemDraw could ever hope to be. By and adjusted their list price so it no All fonts shipped after September adding a graphics chip, PostScript longer is an outright joke. are fully deprotected and will now can become much faster as well. TheV47 ROM 's will execute most run on any number of machines. There's all sorts of exciting laser routines33 percent faster. They also More important, they will not per- printer rumors this month. A method eliminate some (but not all) of the manantly self-destruct whenever your apparently exists to modulate the dot nasty bugs in the older Version38 . LaserWriter password blows up. size on those Canon laser printers, A list of all the major LaserWriter Let's give them a full17 credits letting you dramatically improve the Version38 bugs appears in figure and at least six Attaboys for this. quality of all your photographs and one, along with some of the work- Now, if we can only get Adobe to most other halftones. arounds. Note thatall of the recent drop the font lockout onpathforall , Some new third party accelerator LaserWriter's had Version38 ROM' s we would be all set. The double clip boards may shortly be shipping for in them; the only difference with the trick doesn't work anymore onV47 . the LaserWriter that will dramatically Plus was a few extra resident fonts. Win one, lose one. speed up PostScript processing. Apple has also quietly shown a Adobe is also making a strong bid Facsimile machines are also about new godzilla-style laser printer to a few selected parties in hotel rooms 1. If you forget your password or if flakey software trashes it, you are out across the country. Presumably this is $1000 and lots of time. Eased but not eliminated in v47. a300/600 DPI machine using a 68030 , does some20 copies per minute and 2. Program errors can trip a framedevice blowup that can do subtle to comes with a built in hard disk. Up to bizarre things to later programs. Eliminated in v47. 11 x 17 inch paper. Possibly a super 3. Copypage will trash subsequent data, making copypage totally useless. secret newCanon JX or ZX engine. Eliminated in v47. PostScript, of course. 4. Arcto blows up with too wide a linewidth or wildly wrong data; also is Apple also has come out with a position sensitive with a zero radius. Not yet corrected. $1400 dot matrix printer that seems totally unusable for most serious 5. Stuck-in-the-snow wheel spinning caused by the prefeed anticipator on desktop publishing. Actually, that large grids can simulate a major paper path failure, besides stressing $1400 is a lowball price. When you the mechanism. Reduced, but not eliminated in v47. add in all the needed accessories, it 6. Diablo emulation has nasty page creep. This is eliminated on v47. really becomes a$2000 printer. Other more subtle Diablo problems remain. Ribbons are a steal at$30 each, but at this bargain basement price, you 7. Multiple copies cannot be aborted on a toner or paper problem. Fixed have to buy six of them at once. for tray feeding on v47. A lesser manual feed problem remains. The intended market for this seems 8. An obscure "seam" problem was cured by slightly shifting the halftone to be for Fortune500 facsimile use. It masks on v47. Some high quality gray grids created on Version 38 does have a color capability and can may not image right on v47. Call me for the fix. handle envelopes and labels well. 9. The stringwidth command took a ludicrously long 12 milliseconds to There is no truth to the rumor that execute. Shortened to a still inexcusable 2 milliseconds in v47. a Model 28 teletype emulator will soon be available for this machine. 10. The font protection in pathforall could easily be defeated by a double Meanwhile, back on the peninsula, clip. Unfortunately and stupidly, this was "corrected" in v47. Adobe, the PostScript people, are up 11. Slight glitches are present in some enormous Palatino font characters. to all sorts of neat stuff. First, they This is not yet fixed in v47. have moved a few blocks. Be sure to 12. The miter machinery operates in a slightly different manner in v47. get their correct new address and Some of the v38 code may not miter in exactly the same way. phone number from the Names and Numbers section. You can still get Fig. 1 ± Bugs in LaserWriter ROM Version 38. free subscriptions toColophon , some 33.1 ASK THE GURU to be shot out of the saddle with a different from the original author's fying the patch after it is installed. newdual-mode machine that is able personal intensions. And, here is an important warning to send either PostScriptor standard Patches can be both very good and that most beginning patchees often fax. The new machine might handle very bad. Any patch, no matter how miss ± if any portion of any patch is 2540 DPI, compared to the crude 216 carefully done or how extensively wrong or mislocated, youMUST reset DPI of the fax standard. thought out, can destroy the integrity to zero and start all over again with a Stay tuned for more details. of a program. And multiple patches fresh backup copy. Turning to shoptalk, I have moved can easily interfere with each other in Rule number five is to test your myHardware Hacker column over to wierd and infuriatingly subtle ways. patchesONLY with scrap or expen- Radio Electronics magazine, and do As practically all of the better dable files, until you are absolutely hope to see you over there. Emphasis selling programs available today run sure your code is well behaved. there is on the traditional electronic in machine language, the patches also From time to time I have published circuits and hardware. most often have to be made as ma- patches for all of the various Apple- A reminder that we have this great chine language changes in the final Writer programs, as has Don Thomp- PostScriptBBS going great guns at object code used at run time. son in his nicely done AppleWriter (409) 244-4704. There are now several Rule number one in making any enhancement kits. hundred free downloads available, program patch is to patchONLY a Now this may sound obvious, but plus a bunch of new services. Some newly made backup copy of your you cannot normally make a patch to are free; while many of the others are program.NEVER patch the original a program from within that program real bargains. Sponsors are more than factory disk! itself. Instead, you can boot up your welcome. Rule number two is to make sure system master disk and get into Let us start off with some real the patch is intended for the par- BASIC under DOS 3.3 , or else select fundamental stuff for any and all of ticular version of the code you are BASIC. SYSTEM from ProDOS. you newcomers . . . currently using. Then, you get into the monitor by Rule number three is to verify the doing aCALL -151 . You are in the What is a Patch? previous code before you install the monitor when there is an asterisk in Apatch is some alteration that patch. This is most often done by the lower left hand screen corner. somebody has decided to make in a reading the first few bytes of your To verify the current contents of computer program for one reason or target code in the patch area. an address in machine language, you another. The patch might cure an Rule number four is to make sure enter that address, followed by the obvious and major problem, or it can that any patches you made were in carriage return. For instance, if you add a new feature, or it may simply fact made the way you intended and type a <1BF4 return>, the machine do something that is philosophically in the correct place. Do this by veri- should respond with1BF4± A9 , or whatever other hex byte was in this particular location. Should you hit WARNING Ð If you try ANY shortcuts, you may end up totally another carriage return, successive trashing your SCSI hard disk! hex bytes appear on the screen. 1. Save the exact IIgs machine state. Get into the emulation mode with But, note that you can only have the emulation flag set to 1, a data bank register of 0 and a direct page one hex byte for each address. If register of 0. eight bytes are presented in a row on 2. Verify that a Smartport controller is in the selected slot by checking for the screen, these will correspond to Cn01± $20, Cn03± $00, Cn05± $03, and Cn07± $00. Here "n" is the eightsequential addresses in a row. slot number. Abort the eject if no smart port controller card is present. Ferinstance, a 4F98- A9 03 CF F4 29 51 8D 44 means that you have a 3. Calculate the Smartport controller entry address by adding the offset hex$51 in hex address 4F9D . value in CnFF to $Cn03. To change a single byte, you type 4. Make a Smartport STATUS $00 call with STATCODE $03 for the correct the address, followed by a colon, a drive unit number to return the DIB Device Information Block. Read space, the new hex data value, and a the returned Device Type Byte and the Device Subtype Byte and verify carriage return. As an example, a Type $01, Subtype $00 for a Unidisk 3.5 or Type $01, and Subtype $C0 2D34: EA will put the hex for an AppleDisk 3.5. Abort the eject if you do not have an Apple 3.5 value$EA in address location $2D34 . drive with removable media. You can also enter multiple or 5. Issue a Smartport CONTROL command $04 with CONTROL CODE $04 sequential values at one time, up to to eject the disk. several dozen or more, by doing a 2D34: EA 12 34 FC F5 77 . . . 6. Restore the original machine state. The quickest and best summary of dealing with machine language does For more information, see the Apple IIgs Firmware Reference Manual. appear in chapter seven of the old Once again, do NOT skip any steps or hard disks will be trashed! user manual for the Apple II+. This Fig. 2 ± How to eject a 3.5 inch disk. topic is also covered in the IIe and IIc technical manuals and in the IIgs 33.2 November, 1987 Firmware Reference Manual. These non-PostScript printer is a tad extra Important advantages of PostScript are available fromA.P.D.A . memory and a small license fee. In include its ability to handle entire Or, for more background, check this day and age, it is absolutely page scaleable, translateable, and ro- into myMicro Cookbook , volumes I inexcusable to not provide PostScript tatable mixed text and graphics in and II, or my Apple Assembly Cook- onany stock laser printer, regardless any combination, providing you with book. For more specific AppleWriter of the list price. thousands of different fonts that are patches, check the ATG reprints or After having worked extensively instantly scaleable in all sizes from 3 myAppleWriter Cookbook . with PostScript for several years points to75,000 points. now, I firmly believe that there is at PostScript includes a sophisticated What is PostScript? least a50:1 performance advantage of way of drawing smooth and contin- I can not believe the number of any PostScript speaking printer over uous curves. These are called cubic phone calls I got over my Show and anything else available. splines, and are much more powerful Tell stuff starting on page399 of the Thus, for a non-PostScript printer than the usual smoothing algorithms. SeptemberCS , asking some really to offer the same value as the Apple And, most important of all, Post- fundamental questions onPostScript . LaserWriter with its current $3525 Script is largelydevice independent . I thought I had long ago beat all street price, you would have to be Device independence means you can these questions to death right here in able to buy that printer for$70.50 . use any computer from aZX80 to a thisATG column. So, all of you regularATG junkies, please bear with me one more time while we go over the obvious... THATCHER FIRE DEPARTMENT PostScript is a general purpose Fire Incident Response Record for 1987, sheet two computer language from the Adobe Systems people that excels at doing 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 combined graphics and text page descriptions for laser printers and high resolution phototypesetters. You normally do not have to go out and = present buy PostScript. Instead it is built into and included free with such laser = absent printers as the Apple LaserWriter

Plus, theQMS PC-800 , and the new Incident Date high endAST machines. PostScript is also available at extra cost on the 1. Jerry Robinson Allied Linotron version100 and 300 2. Frank Langley phototypesetters. 3. Jay Layton But note particularly that none of 4. Steve Allen the currentHewlett Packard Laser- 5. Mike Payne Jets can speak PostScript until after a 6. Rue Mattice 7. Brooks Bryce quite expensive third-party lid is 8. Kendall Curtis attached to it. Now,H-P may say they 9. Ron Sparks aggresively support PostScript, but 10.Jim Palmer their current crop of laser printers 11.Phil Martin most certainly do not. 12.Wyatt Palmer Youmust have a PostScript speak- 13.Don Lancaster ing printer to be able to make use of 14.Chris Allen PostScript! As far as I know, nobody 15.Brent Herbert 16.Darrell Robinson has yet written a good PostScript 17.Jeff Martin interpreter for a daisywheel or a dot 18.Walter Stradling matrix printer, although it certainly 19.Jesse Smith would be possible. 20.Mike Nelson While PostScript has been placed 21.Russell Call in the public domain, the actual 22. implementation for any particular 23. printer definitely is not. Thus, while 24. you are free to write all your own 25. PostScript code clone, the interpreter Total Response source code for any existing machine is highly proprietary. To a manufacturer, the only real Fig. 3 ± A typical rubbergrid form. difference between a PostScript and a 33.3 ASK THE GURU Cray-1 as the host. More importantly, Those canned applications can be wrong. Fair enough? the very same file that drives a 300 easier to learn and do give you a The usual way to get started in DPI laser printer can be instantly crude and typically very innacurate PostScript is with Adobe's PostScript upgraded to2540 DPI phototypeset- screen approximation to the printed Cookbook and my new Introduction ting, simply by moving one cable. page. On the other hand, these pro- to PostScript video, plus the reprints You most assuredly do not need grams are all quite expensive. A page to thisATG column. From there, you either a Macintosh or the Appletalk making program at best can only can rent some hands-on time at your network to speak PostScript. In fact, handle less than15 percent of the local school or quick-copy center. Appletalk just costs you money, will total possible PostScript uses. Worse severely limit your choice of hard- yet, you have to do everything "their Any IIgs Rumors? ware, and is often very slow. way" rather than the way you really All sorts of them. Some facts even. PostScript is easily run on any want to. Apple should have sent you a letter Apple, Mac, Atari,IBM , or Commo- I personally feel that I can get by now telling you to go to your dore machine by using standard serial consistently higher quality, infinitely dealer and pick up the newROM and communication. Often, all you will more flexibility, faster printing, and the new video graphics controller need is your favorite word processor ridiculously more control by working chip for your IIgs. TheVGC chip is or comm program. These speak directly in the PostScript language. I only needed if you have a pink stripe PostScript beautifully. do so using ProDOS AppleWriter 2.0 in your IIgs display. While you can There are two major ways of using or2.1 on a IIe or a IIgs for all of my replace theROM yourself, a special PostScript. You might either work text andall of my graphics, including tool is needed for theVGC chip. directly with the language yourself, schematics, isometrics, perspective, The new systemROM demands the or else go to a canned applications and even my printed circuits. revised System2.0 software disk. program. Working with the language To prove my point, just tell me There are no reports so far of incom- yourself does require some front end which canned applications program patibility problems, but, naturally, learning effort and does demand that you are using, and I will send you they are certain to occur. Just to be you look at the printed page to see something great looking and very sure,save your old ROM . Do not let the final image. easy to do in PostScript that you can your dealer steal it. But, the results you'll get will be not directlycreate with your pro- Please keep me posted on any unbeatably superb. gram. A free book if you prove me compatibility problems. Meanwhile, there are some really bizarre IIgs bugs newly surfacing. By % Copyright c 1987 by Don Lancaster and Synergetics, Box 809, now, nearly everybody knows that % Thatcher, AZ 85552. (602) 428-4073. All rights reserved. the "it won't print" bug can often be % Personal use permitted so long as this header remains intact. temporarily cured by using a Super /setgrid {gsave /size exch def translate size dup scale} def Serial Card and making sure you /drawlines {72 300 div lw mul size div setlinewidth /hpos 0 def #hlines select it on the control panel. Later gs div 1 add cvi {hpos 0 moveto 0 #vlines rlineto stroke /hpos hpos on, patches can be made to your gs add def} repeat /vpos 0 def #vlines gs div 1 add cvi { 0 vpos moveto software to let you use the internal #hlines 0 rlineto stroke /vpos vpos gs add def} repeat} def IIgs serial code. There is also a glaringly stupid /showgrid {gsave /#vlines exch def /#hlines exch def 100 45 {eq {1}{0} omission over on the IIgs memory ifelse} setscreen 0.9 setgray /gs 1 def /lw 1 def drawlines /gs 5 expansion connector that prevents def /lw 3 def drawlines /gs 10 def /lw 5 def drawlines grestore 133 40 you from usingDMA on most any {dup mul exch dup mul add 1.0 exch sub} setscreen} def third party memory card that has /line1 {.06 setlinewidth} def more than1 Meg of 256K RAM chips /line2 {.12 setlinewidth} def or4 Megs of 1 Meg RAM chips. /line3 {.18 setlinewidth} def There is no obvious solution to this /m {moveto} def problem, so you can expect really /x {rlineto currentpoint stroke moveto} def bizarre hassles with any larger third party expansion card. /r {0 x} def Meanwhile, there's a really cute /l {neg 0 x} def bug in the System 2.0 software disk. /u {0 exch x} def It seems that if you use the launcher /d {0 exch neg x} def (otherwise known as theluncher , as /xrpt {gsave aload pop /trips exch def /dist exch def /rproc exch def you may want to get a sandwich trips { gsave rproc grestore dist 0 translate } repeat grestore} def while it is playing its games), and /yrpt {gsave aload pop /trips exch def /dist exch def /rproc exch def pick aProDOS 8 application, and then trips { gsave rproc grestore 0 dist translate } repeat grestore} def return toProDOS 16 , not all of Pro- DOS 16 will get properly reloaded. Fig. 4 ± Some sample PostScript rubbergrid utilities. If your application does trash a certain obscure memory area, then 33.4 November, 1987 certain obscureProDOS 16 features that$800 pricing was purposely made what we'll focus on here is some are not any longer available. Calling just predatory enough to try and step simple support utilities. Figure three them will bomb the machine. Need- you up to a motorized unit. shows you a typical form you might less to say,Appleworks trashes these Well, there's one fairly low priced like to build up, while figure four locations. Ho Hum. clamping cutter that I have found. gives you several rubbergrid utilities Now for that really funny bug. It This is theDahle model115 . I got that will greatly simplify creating the seems that theSmartport command one at our localPrice Club for under form. Finally, figure five gives you to eject a3.5 inch disk is exactly the $40. But there are two major pro- the actual PostScript code to print the same as theSCSI command to chew blems with this turkey. First, there is non-text portions of figure three. up the media and spit out the seeds. zero mechanical advantage to the Note how short, quick, and easy A lot of programmers have been clamp. You have to push down on it, the code is. Those-xrpt- and -yrpt- doing quick and dirty eject routines and what you push is what you get in commands are incredibly flexible and and ± surprise ± will end up totally the way of holding power. extremely powerful. trashing theirSCSI hard disks. Second, the Dahle people proudly The keys to the rubbergrid utilities A summary of a safe and correct proclaim that their cutter "never will are to use simple commands to draw way to eject a3.5 inch disk appears need sharpening". What they really lines, and to include two powerful in figure two. It is absolutely es- mean is that their cutter is categor- repeat routines that will create any sential that you make sure that a 3.5 ically impossible to sharpen because selected number of lines of most any inch drive is in fact in use before you the blade is welded in place! After a length and spacing. Once on the grid, try and eject the disk. few months of use, the two blades your images can be scaled to any size Many thanks to Tom Vier for his end up chewing great gaping holes in you like. comments on this. each other. The only cure I have The rubbergrid itself is most often found for this is to add a new back- turned on while you are creating your How can I Cut a stop that is three inches down from form or whatever and then turned off Sheet of Paper? the original one. for your final image. It is apparently utterly and totally Actually, what you really want is a One trick that beginners to rubber- impossible. I had hoped to be able to guilotine style cutter with a cam-type gridding will often miss ± your font give you a rundown on the clamping clamp that is good for a ton or more sizes and linewidths are usually much paper cutters this month. of holding pressure. smaller than before. It is often a good Clamping cutters are needed while So, for this month's contest, either idea to make the basic line spacing desktop publishing to professionally tell me about a reasonable source for on a form "one" unit high. A suitable trim books or booklets and to accu- clamping paper cutters or else find font to fit in a one unit high form line rately cut thick stacks of paper. me a paper cutter salesperson that is would have a size of0.75 points. But the salespeople in the paper not suffering from an acute case of Any additional rubbergrid utilities cutter industry are totally unreal. One recto-cranial inversion. and icons are easily added for such screamed at me over the phone "You applications as invoices, order pads, can't afford one!" and hung up on What is this Month's electronic schematics, ad layouts, me. Another one,five times in a row , PostScript Utility? organizational and flow charts, per- sent me the same poorly cut sheet of A sampling of some of my rubber- spective sketches, printed circuit lay- paper that says they sell paper cut- grid utilities, that are particularly outs, and isometric drawings. ters, but absolutely refused to send handy for forms. We did talk about Give me a call if you need more me pricing or data on any of them. A the rubbergrid a few issues back, so info on any of these. dozen more never returned calls. Naturally, the manufacturers tell % fire response grid me to "see my dealer". "My dealer" is usually1500 miles away and does not % ...... answer his phone. I do not think he even knows how. Or else his mother won't let him. % requires rubbergrid utilities of figure four Now, here's what we need for the new desktop publishing revolution: A manual, fourteen inch, self-clamping paper cutter with a backstop that can 90 90 13 setgrid handle half an inch of paper at a time. Is that too much to ask? I can 41 50 showgrid % delete to turn off grid even see paying several hundred dollars for this, but I most certainly cannot see paying$800 , particularly line1 when a totally worthless epsilon mi- nus of a salesperson is going to rip [{2Fig. 3 5m ± 37.5 Rubbergrid r} 1.25 25] form yrpt [{14code 1 form 48 figure u} 1.5 three. 18] xrpt off$320 of that. And especially since 33.5 line3

2 3 m 31.25 u 12 r 14.75 u 25.5 r 48 d 25.5 l 2 u 12 l

143m3325u143425m255r143m255r

Don Lancaster's Postscript dipdraw Reading Apple keys Black -vs- white write ASK THE GURU Printing onto anything December, 1987 An AppleTalk schematic

his signal indicates that the in some manner either useful or even They also have a new Beginner's referee has just swallowed desirable when you're doing desktop Luck video with an optional$7 price his whistle.Apple recently publishing. tag. There are coupons for this tape T has been doing everything In the real world, the Macintosh in many major magazines. from100 yard punt returns to giving and AppleTalk route to laser printing There's a third party outfit named all of their opposition automatic two is both slow and expensive. There MENU that has a pair of fine free point safeties. can be very compelling advantages to directories called the Apple II Guide Their newHypercard for the Mac using other host machines making a and theMAC Guide . Their intent is to is really something. Then again, just direct serial LaserWriter connection. direct mail sell you any and all of the maybe it is something else. Trouble Particularly if you already happen listed software. is that nobody inside or outside the to own the host. Or you simply feel While quite useful, there are two company has the slightest idea what strongly about using another brand of grevious flaws here ± they do not list the product is or what it can really personal computer. the names, addresses, or helplines of do. Meanwhile, there is a rather ugly Reports are also streaming in that all the original software houses, and I and major compatibility bug between some older software will not run on suspect they list only what they feel theHypercard and the Multifinder . the newROM chips for the IIgs. I'll like stocking. All of the unrealized potential here keep you posted once we get a more I'm getting these wierd calls lately seems to be on the awesome side of complete list.Hacker II and Bard's over people who are afraid to use an horendous, though. Tale and are two problem programs. A-B switching box on a LaserWriter, One thing that really galls me is On the positive side, Apple does so they can run faster and cheaper that Apple has been witholding the now have a new and a free Vertical than AppleTalk and still use several Send-PS routine for the IIgs, while at Markets Business Directory out. This host computers. the same time being downright rude one lists all the software of interest to The problem here is rather bizarre. to people using their LaserWriters on weavers, cotton farmers, for church Certain models of the Hewlett Pac- aPC or anAtari , let alone on a IIe or congregations, video rental stores, kard LaserJet seem to have a highly IIgs. Apparently, they are still labor- law offices, etc. While a tad heavy on flakey serial interface circuit that ing under the grave delusion that a the real estate and accounting entries, blows up and self destructs if you so Macintosh that's using AppleTalk is this is a "must have" book. much as think about looking at it sideways. Rather than admit they do have a very bad problem,H-P has The transformer is wound on a Siemens B65651-K000-R030 with a simply blamed it all on people using B65652 triple bobbin and a B65653 retaining clip. There are two A-B switching boxes. primary windings of 35 turns each, and a single secondary winding To the best of my knowledge and of 70 turns. All windings are #32 wire. belief, therenever has been any time The transformer must have a magnetizing inductance of 20 milli- thatanyone using an A-B box has henries minimum. Leakage inductance is 15 microhenries maximum. hurt anApple LaserWriter in any The 100 ohm terminating resistor is switched into the circuit if way. Dealers and salesmen may lie to either of the AppleTalk jacks are unconnected. you on this, because they want you to buy a Mac with AppleTalk instead. DB9 AppleTalk Several readers asked if they were male jacks 1K welcome to come visit me or even RXD+ 8 35 T quest atinaja . Wail, shore nuff. Except that I need a week or two's TXD+ 4 70 T advance notice. I also live a totally TXD- 5 ridiculous distance from anywhere. 35 T Thatcher, Arizona is a sixpack away RXD- 9 from Tucson and even further from 1K Phoenix. (seven hours round trip by GND 1 0.1µ F stagecoach, assuming you don't get eaten by a Gila Monster.) The local Upper Sonoran lifezone and my off- Ω 1K 1 Megohm 100 the-wall attitude both tend to be a tad of a cultural shock for easterners. Fig. 1 ± Schematic of a stock AppleTalk connector. But, hail yaess. Come on an visit fer a spell. 34.1 December, 1987

Yes, I do speak to user groups. But ohms. The37.5 ohms comes about The equivalent machine language on your nickel, and not on mine. My since you are often driving apair of locations are hexadecimal$C061 for Introduction to Postscript video is far 75 ohm cables in parallel. the open-apple key and$C062 for the cheaper and makes for an interesting A100 ohm terminating resistor closed-apple key. show all by itself. will get automatically switched in if Which is as good a way as any to this node is at theend of the cable. How can I Print sneak us into the usual advetorials. 100 Ohms is used instead of 75 since Directly Onto Fabric? The bound sets of my Ask the Guru it is "close enough", but will load the You would do this the same way reprints remain available. Also, to drivers a lot less. you would print on a box, on the side find out how I make money, so is my The transformer shield is connec- of a wall, or onto your ex-girlfriend. classicIncredible Secret Money Ma - ted to ground by way of anR-C high Naturally, you can start out by using chine how-to book. frequency bypass network so that Applewriter on a IIe or IIgs driving a Plus the usual reminders that my hum and low frequency noise cannot LaserWriter to create your original hardware column is found over in common-mode modulate the shield. 1:1 art. Then what? Radio Electronics (be sure and catch The specs for the genuine trans- I have found yet another astonish- all the hacker superconductor stuff!), former are also shown in figure one, ingly magical material that has been and that we have this great Postscript but I suspect most any old small 1:1 scunging away for many years on the BBS going at (409) 244-4704 . matching transformer may work o.k. back shelf of some rather obscure Onward and upward . . . We will see some details on some distributors. The whole product line sneaky AppleTalk substitutes in next is calledMerigraph , and it is made in What is so Special About month's column. bulk byHercules and is stocked in An AppleTalk Cable? small quantities byR.A. Stewart . I have sort of been wondering that How do I Read the Apple The basic product is an ultra-violet myself. Inside that funny little box is Keys from BASIC? curing liquid resin. It is ideal for a fifty cent transformer, a penny re- I was suprised to get this helpline making all your own printing plates sistor and a few cents worth of wire. call, because just about "everybody" and rubber stamps. With the Laser- And little more. knows the answer to this one. It also Writer, of course, you are no longer Figure one shows you the schem- appears in just about any Apple book, limited to text-only stamps, nor is atic an AppleTalk cable drop. particularly in the IIe Technical Ref- there any reasonable upper size limit. At either end, AppleTalk will plug erence Manual and the IIc Technical What you do is pour out a thin into a standardRS422 serial connec- Reference Manual. These are both layer of this glop and then expose it tor. This can be either an older DB9 available throughAPDA or at better to ultra-violet light through a trans- connector or else a newer mini-DIN bookstores. parency negative that has previously 8. All that goes over the interface is a But, here we go one more time ± been printed on your LaserWriter. train of pulses at a base frequency of Theopen-apple key is the very same While some special exposure light 230.4 kilobaud. The pulse period is as game paddle or joystick button#1 . boxes are normally used, you might 4.34 microseconds. Theclosed-apple key is the same as instead use a contact printer and a As we've seen in previous issues, game paddle or joystick button#2 . few minutes of strong sunlight. your basic "bare metal" AppleTalk To read the open-apple key, you The ultra violet light will harden communication rate is, at least in do aOAKEY = PEEK (-16287) . the front of the sheet where the text theory, around25 times faster than To read the closed-apple key, you or images are to appear, down to a using9600 baud. might instead perform a CAKEY = reasonable depth. Next, you flip the But, much of the AppleTalk soft- PEEK (-16286). If either result ends whole works over and then expose ware is so slow and so cumbersome up greater than128 , that key is down. the entire back to harden it. You end that it sometimes may gobble up all of this potential25:1 speed advantage and then some. A digital one is defined as one transition per each 4.34 microsec- onds, while a digital zero is defined as two changes in 4.34 microseconds. Each one of all theRS422 inputs and outputs of all of the parties on the line are literally tied together all of the time. Only one talker is allow- ed to be active at any given time, as determined by the AppleTalk firm- ware and software at each machine. black write white write The circuit is fundamentally a 1:1 isolation transformer which has an Fig. 2 ± Differences in laser printing engines. operating impedance around 37.5 34.2 ASK THE GURU up with a giant rubber stamp that has machine, all of the black fills are a flat, rubbery back, and super sharp What is the "Black Write" totally solid most of the time. The characters and images on it. Versus "White Write" problem here is that any small typo- Finally, of course, you can mount Laser Printing graphy, particularly anything less the resin on a backing and a handle. Controversy? than seven point, will totally wash You then use it like any other rubber There sure seems to be bunches of out and become nearly illegible. stamp, selecting your ink chemistry misinformation on this topic, not to You'll also find a tendency to and color to suit whatever it is you mention all of the outright lies. Let white out the lightest shades of gray are printing on. us try to set the record straight. with a white write system. A similar material is also being It turns out there are two different There are two other big differences used for the hot new Santa Claus methods of designing a laser printer between the black write and white machines that will give you nearly engine. In ablack write engine such write engines. A black write laser instant three dimensionalCAD model as theCanon CX or SX , any spot the engine will normally have a much prototypes directly off the disk of laser beam hits on the drum becomes longer laser diode life, since most your Apple or other workstation. ablack spot on the paper. In a white parts of most documents are white Needless to say, keep me informed write engine such as the Riccoh , any rather than black. on what you are up to with this fan- spot the beam hits becomes a white A second problem common to both tastic glop. The potential here would spot on the paper. So far so good. methods, is that linear gray shading seem to exceed theOmnicolor and The problem comes in when you is not possible, particularly with the Kroy Kolor materials that we looked try to put a round laser light spot into denser screens. The black write sys- at in earlier columns. a square hole on the paper. The spot tems tend towardsdarker grays than I am firmly convinced there are all usually has to be somewhat larger you would expect, while those white kinds of other "neat stuff" chemicals, than the square. But if it gets too write systems produce much lighter materials, and processes that are now large, very ugly things will happen. grays than you would expect. lurking "out there" just waiting for Figure two shows you what will Canon seems to have eased the one of youComputer Shopper read- typically occur. In the case of the black write hassles with its second ers to discover and suitably misapply black write machines, it is difficult to generationSX engine as used in the them in unintended ways. get very solid blacks over the larger new LaserJets. This most likely was So, for this month's contest, just fill areas. This happens because some accomplished through a squarer spot, tell me about anything at all in the corner cutting would seem inevitable. special modulation techniques, and a way of obscure neat stuff. Something But this difficulty gets eased bunches high energy toner formula. that a veterinarian, a sign painter, a by selecting the correct paper and by The bottom line here? My personal blacksmith, a weaver, a stained glass using a toner cartridge that is at its opinion is that most of the existing artisan, or a potter might use every maximum blacknessafter its second black write systems are far and away day, but that is totally unknown else- refill with a good third party product. the better choice for most users most where in the real world. Contrary to some tales that are of the time. As the improved engines As per usual, an Incredible Secret circulating, solid black fills can most become available that use squarer Money Machine to the best twenty definitely be obtained with a black spots, the differences between the entries, and an all expense paid (FOB write engine. I do it all the time. It two should eventually vanish. Thatcher,AZ) tinaja quest to the best does take some care and attention to entry of all. We will share all of the detail to accomplish this, though. What is this Month's results with you in later columns. Now, in the case of a white write Postscript Utility? Hmmmm. Stan Veit does keep on threatening to throw several of his piezo speaker 20µ F +12 V DC alligators into one of my tinajas if I + don't start getting this column out on LED AC time. I have got bunches of not- quite-prime-time Postscript stuff just 0.1µ F 1K ON = air sitting here in the wings. 0.1µ F OFF = water Stuff like a full perspective (that

14 13 12 11 10 9 8 even includes the lettering!), printed OUT +12V DC C2 C2 DIN OSR circuit layouts, compiling tricks that ULN2429 dramatically speed up Postscript, and OUT NC GND GND C1 OSC C1 a brand new set of utilities for most 1 2 3 4 5 6 7 any host computer. nc nc The trouble is they are all "pretty nigh but not plumb". Let me know if 0.01µ F you are personally interested in any zeta testing. Fig. 3 ± A typical use for my dipdraw routine. Instead, this month we'll go back to one of my old favorites. This is my 34.3 December, 1987 automaticDIP pictorial drawing rou- tine. Figure three shows you a typical integrated circuit, as is used in an % dipdraw - draws a dip integrated circuit. electronic schematic. The dipdraw % Copyright c 1987 by Don Lancaster & Synergetics, Box 809, Thatcher routine accepts two position values, a % AZ, 85552, (602) 428-4073. All rights reserved. Personal and non- size numeric, a title string, a top % commercial use permitted so long as this header remains intact. callouts string, and a bottom callouts % Enter with currentpoint set to pin 1 and scale set so that 1.0 = distance string. Dipdraw will then automatic- % between pins. Then do a numpins-(name)-(hipins)-(lopins) dipdraw. Pin ally draw the correct dip of the cor- % callouts preceeded by a "/" will get complemented. rect size in your chosen location. ThePostscript dipdraw coding is % main dipdraw entry: shown you in figure four. A zillion /dipdraw { save /snap exch def /hipins exch def /lopins exch def /chipname previous examples appear in all of exch def /numpins exch def /howlong {numpins 2 div cvi 1 add} def /howhigh myHardware Hacker columns that {4 numpins 36 ge {1 add} if} def /stub {howhigh 1.4 sub 2 div} def appear inRadio Electronics . % internal service subs start here: Complement bars on the callouts are all automatically handled with a /pinproc {numpins 2 div cvi{newpath 0 cpos 0.37 0 360 arc gsave 1 setgray leading slash. A maximum of three fill grestore 0.067 setlinewidth stroke pin# 5 string cvs dup stringwidth characters per callout is typical. Four pop 2 div neg cpos 0.2 sub moveto show 1 0 translate /pin# pin# dir add def} can sometimes be used if the adjacent repeat } def callouts are thin enough. /stretchprint { dup stringwidth pop 2 div neg exch length 1 sub stretch mul If the integrated circuit has36 or 2 div sub 0 moveto callout (/) anchorsearch true eq {currentpoint exch more pins, it is drawn one unit higher stretch add exch moveto pop dup /callout exch def stringwidth pop callout than are all the packages with fewer length 1 sub stretch mul add /barwide exch def 0.033 setlinewidth gsave pins. This preserves a good shape currentpoint 0.55 add moveto barwide 0 rlineto stroke grestore} if stretch factor forLSI chips. 0 callout ashow} def The width of the device number /pincallouts{0 vpos translate {workstring ( ) search true eq {/callout exch font can be changed if you need to def pop /workstring exch def callout stretchprint 1 0 translate}{dup /callout force extra characters into a smaller exch def stretchprint exit } ifelse} loop} def package outline. The drawing is normally scaled so % actual dipdraw process starts here: that one unit represents the spacing % . . . . the outline: between two pins. The position is al- gsave 1 setlinecap 1 setlinejoin currentpoint translate newpath -.55 .45 ways referred to pin number one. If 0.15 0 360 arc fill newpath -1 howhigh 2 div 0.7 -90 90 arc 0 stub rlineto you are drawing many different inte- howlong 0 rlineto 0 howhigh neg rlineto howlong neg 0 rlineto closepath grated circuits, you can use a special 0.36 setlinewidth stroke dictionary so that calling, perhaps % . . . . pin circles and numbers: dip27256, will automatically get the /Helvetica-Bold findfont [0.4 0 0 0.55 0 0] makefont setfont gsave /pin# 1 correct values and drop them in place def /dir 1 def /cpos 0 def pinproc grestore gsave /pin# numpins def /dir with only a few keystrokes. -1 def /cpos howhigh def pinproc grestore The dipdraw pictorial is opaque. Normally, you will place your wiring % . . . . pin callouts: early in your textfile and your dip- /Helvetica findfont [0.35 0 0 0.6 0 0] makefont setfont /stretch 0.033 draw routineslater . This way, the dip def gsave /workstring hipins def /vpos 0.6 def pincallouts grestore pictorial will overlay the wiring, and gsave /workstring lopins def /vpos howhigh 1.05 sub def pincallouts grestore each wire will exactly stop at its own % . . . . device number: respective pin circle. /Helvetica-Bold findfont [1.2 0 0 1 0 0] makefont setfont /stretch 0 def Special overlays might later be gsave numpins 2 div 1 sub 2 div howhigh 2 div 0.33 sub translate chipname added, such as individual inverter, dup /callout exch def stretchprint grestore gate, or op-amp symbols. The device % . . . end cleanup: number must, of course, be moved grestore grestore clear snap restore} def outside the package if you do this. These can also be dictionary based. % ...... Note that the final print quality and the convenience of this routine will % Dipdraw demo - remove before use 150 200 translate 25 dup scale 0 0 moveto dramatically exceed what you can us- 14 (ULN 2429) ually do with any screen oriented (OUT +12V DC C2 C2 DIN OSR) drawing program, and that you can (OUT NC GND GND C1 OSC C1) dipdraw showpage use this on any make and any model of personal computer. Fig. 4 ± My Postscript dipdraw routine. Write or call for more info. 34.4 Don Lancaster's Postscript boxifier Laser printing papers New BASIC for the IIgs ASK THE GURU AppleTalk cable substitutes January, 1988 Monochrome HIRES graphics

pple has just released a very Applesloth programs, the inability to LaserWriter, or that up to$150 worth powerful newBASIC that run under olderP ro DOS or DOS 3.3 , of custom cables are required to use you can use on your IIgs. rather slow booting, and the lack of AppleTalk at all. AYes, it does access all of any downward compatibility as need- Neither of these myths are true. the resources of theII gs, including ed to run on anything but the IIgs. The LaserWriter can easily by driven the full memory and all of the new Apple has now announced version byany serial port from any computer. toolbox. Yes, it includes aprintusing . 47 LaserWriter upgrade kits. These Under certain circumstances, serial Yes, it allows long variable names speed you up by one-third and will communication can take place as and labeledgoto and gosub calls. eliminate some bad habits. At a much as seven timesfaster than with No, it is not aMicrosoft product. It suggested list of$320 , they are defin- AppleTalk. As we will see below, if seems to be a latter day "channeled" itely cost effective if you are using you really do want to use AppleTalk, reincarnation of that Apple Business your machine two hours per day. there are all sorts of free to $5 Basic long ago used on the AppleIII . There is a new and free Apple user alternatives to those$150 cables. Cost is$50 and it is now available group publication that's called Tech TheTidbits purportedly have a list directly fromA.P.D.A . Tidbits. But the issues I have seen to of Apple II publications, but they do Seperate licensing of a runtime date are so full of errors, omissions, omitOpen-Apple , which is far and module is available, so that users of and outright misinformation that they away the best and most important your custom software do not have to could only be a secretIBM plant. resource of them all. Both Apple buy the program themselves. Their most heineous crimes so far Assembly Line and Call A.P.P.L.E Some negative points include total lie in perpetuating the outright myths are also incredibly omitted. So is the incompatibility with all the existing that AppleTalk is needed to drive the InCider magazine. Then, they have the utter arro- gance to suggest thatAppleWriter is IWEM begins with a series of comments and a revision history. not useful on the IIgs, when in fact it A test is made to see if the IWEM dictionary is already installed. If not is far and away the finest word pro- and if a valid password, a persistent download is begun. Otherwise, the cessor available for use on the IIgs download is aborted. today. We have seen the simple three The main emulation code is defined as /_WDJ_. When called, this begins byte patch needed right here in our the emulation for the rest of the job. earlierATG columns. Over the past year, this patch has beeen widely dis- The IWEmdict is defined and begun. Countries are defined and a default tributed, as have many other Apple- country is selected. Twenty mouse font characters are then defined, Writer improvements. followed by a grafFont character set. Finally, the only useful Postscript The Courier font is then modified to print four extra characters, the resources they cover are the red and combined AE in upper and lower case, regular and bold. blue books. Our free PostScript BBS and free help line is not mentioned, International character remapping code is then defined, as needed for the various languages. nor are any of several others. TheTech Tidbits idea does seem The printfile routine is defined as the main job loop. This reads and prints sound, if only they can get their act characters until a control-D end of file. cleaned up. Time will tell. Routines are defined for InitVariables, ResetPrinter, Reset_Tabs, initjob, TheLetraset people have recently initpage, hexout, and doCmd. introduced some great new desktop publishing tools and materials. Un- Character swap routines follow, as needed for each language. fortunately, their "sales" department Various interpreting and control definitions are next, in turn followed by was so snotty to me that I have com- formfeed, carriage return, backspace, tabs, and character width stuff. pletely forgotten what these products A tab dictionary is defined to remember tab positions. This includes a sort are or where to get them. routine to put the tabs in order. PostScript is rapidly going for all of the marbles. Besides its use as a An escape dictionary is defined to handle all of the escape sequences standard page description language being emulated and their service routines. and as a newly emerging standard All dictionaries are closed and the program is terminated. screen description language, look for PostScript facsimile replacements, Fig. 1 ± A summary of the IWEM imagewriter emulator text file. theBBS graphics exchange formats, all the PostScript engraving and sign 35.1 January, 1988 making machines, and even some the LaserWriter actually useful. straight adaption of Adobe's generic new PostScript software you can use To use your stock driver as an daisywheel driver, customized for the for printed circuit layouts. emulator, you simply send your first Imagewriter. That mysterious _WDJ_ I will throw in the usual reminders character to$C700 and then route all initializing command is used to turn that my hardware hacker column has succeeding characters to$C707 . Just on a dictionary and start the actual recently been moved over to Radio- like a plain old serial port. The dri- emulation for each job. Very handily, Electronics magazine and that we vers are built in and ready to go in the emulation does end with each file have this great PostScriptBBS going AppleWorks2.0 and higher. From printing and returns on back to native on at(409) 244-4074 . Meanwhile, you Applesloth, you can do aPR#7 and PostScript. can write or call for a new brochure you are home free. So, to get sneaky, all you have to or two that I have put together. To print fromAppleWriter in the do is rearrangeIWEM to suit your- This month, I've cracked some but AppleTalk Imagewriter emulation self. Make a backup copy of your not all of the IIgs AppleTalk secrets, mode, install AppleTalk and use the system disk and plainly label it as so let's have at it . . . Chooser II. Then click into BASIC. modified. Then, renameIWEM as SYSTEM. Follow this with a PREFIX, IWEM.ORIG. Grab IWEM.ORIG with How Does AppleTalk D2 command and a -AW.SYSTEM . AppleWriter, fix it, and save it back Work on a IIgs? Which will now switch you into asIWEM . Then label the change. There has long been a dearth of AppleWriter without disconnecting You can do anything you like here, information on the AppleTalk drivers the AppleTalk network. Finally, do a but remember that the first command for the IIgs. Some resources I have PD7 before you actually print. that will be sent to the LaserWriter found useful are the original Inside It is a real bear to design your own willalways be named_WDJ_ . Any AppleTalk notebook, chapter six of a AppleTalk driver. But it is a fairly newIWEM routine absolutely must very obscure document known as the easy process to modify portions of do a persistent download of some- Cortland Preliminary Notes, and the the existing LaserWriter driver so thing that is named_WDJ_ . AppleTalk PEEK Mac program. you can make it do anything you like. Figure two does show you how to You can checkA.P.D.A. for all the No, you do not need anything special convertIWEM into a workable clone latest IIgs and AppleTalk tech info. in the way of machine language or ofSEND.PS . All that I have done ThePEEK program uses a second IIgs expertise for this. here is renamed the old_WBJ_ proc computer to sit on the line and sniff The two facts that let us get sneaky asimagewriter , and then defined a the fumes on ther way by. It is most are these:(1) The initializing routine new dummy_WBJ_ procedure that handy as a debugging tool and to find sent to the printer is all contained in does nothing at all. out what is really going on. an unprotected, stock and standard With your newly modifiedIWEM , Three AppleTalk drivers are now PostScript text file namedIWEM ; and everything sent to the LaserWriter is supplied with release2.0 of the IIgs (2) Each time that you begin printing assumed to be PostScript and gets system software. These three drivers a new document, a single PostScript handled as PostScript. Should you are for the Imagewriter under Apple- command_WDJ_ isalways sent out ever actually want to get a printed Talk, for a non-existent file server, as thefirst printer instruction. listing of your PostScript code, just and for the LaserWriter. The drivers A summary ofIWEM does appear temporarily add the command image- are installed by using the IIgs Apple- in figure one. This is an absolutely Writer to the start of your file. TalkChooser II accessory I guess I was most interested in the LaserWriter driver. I much prefer To convert the stock IWEM AppleTalk imagewriter emulator into a using straight serial connections with program that will send PostScript code to the Laserwriter . . . the LaserWriter, since this is simpler, 1. Make a backup copy of your IIgs system master v2.0 disk. cheaper, more flexible, and often Label this disk as modified for direct PostScript use. faster than using AppleTalk. But you 2. Rename APPLETALK / IWEM as APPLETALK / IWEM.ORIG. might want to go the AppleTalk route if a IIgs or two and a Mac or two are 3. Load APPLETALK / IWEM.ORIG into AppleWriter. going to share the same printer. 4. Rename the PostScript procedure "/_WDJ_" as "/imagewriter". In its unaltered form, this stock LaserWriter driverforces you to use 5. Immediately following the above routine, define an "empty" an Imagewriter emulation mode, and procedure as "/_WDJ_ { } def". prohibits you from sending any raw 6. Save the file as APPLETALK / IWEM. PostScript. Which is handy for rank beginners and for use with several When the modified emulator is installed, PostScript code can be programs that do not know anything directly sent over AppleTalk via the usual PR#7 or PD7 methods. about PostScript, but is otherwise To print the PostScript file rather than executing it, simply prefix nearly totally useless. the entire file with the "imagewriter" command. Fortunately, there's some simple yet sneaky tricks we might play to Fig. 2 ± Converting IWEM to a SEND.PS clone . make the IIgs AppleTalk driver for 35.2 ASK THE GURU doorbell wire. Figure four shows you an AppleTalk "cheater cord" that will RXD+ 8 8 RXD+ 8 8 RXD+ 8 8 work with three or more drops. This TXD+ 4 4 TXD+ 6 4 TXD+ 6 6 canonly be used if any and all of the GND 1 1 GND 4 1 GND 4 4 computers and printers to be used are always plugged into the very same TXD- 5 5 TXD- 3 5 TXD- 3 3 groundedAC outlet strip. RXD- 9 9 RXD- 5 9 RXD- 5 5 What is the New IIgs DB9 DB9 MiniDIN 8 DB9 MiniDIN 8 MiniDin 8 Monochrome HIRES mode? male male male male male male At long last, they have figured out how to get rid of the green and purple Fig. 3 ± NULL modem cables for use as AppleTalk substitutes. color fringes on theHIRES screen. This beauty is in the latest release Instead of executing the code, it will must use existing telephone cables; (#29) of theApple II Technical Notes . simply get printed in the emulation anything else will automatically price The notes are available directly from mode. Sneaky, huh? itself out of its market. Apple, from your local user group, or At any rate, there's an outfit called from manyBBS systems. What are the Options to Farallon Computing that will be very All you do is select monochrome Stock AppleTalk Cables? happy to sell you alternatives to the and40 column from the control panel If you are going to believe Apple, stock AppleTalk that use ordinary and get into graphics andHIRES . cabling that lists for$150 must be phone line or other twisted pair and Then do a read or a write to hex bought to use AppleTalk at all, and that cost far less than the original. location$C05E , otherwise known as you absolutely must use AppleTalk If you only have one computer a.PEEK (49246) in order to use the LaserWriter. Both connected to one printer that both To get the color back, just read or of these concepts are outright myths. share the same groundedAC power write to location$C05F , or else do a There are at least five different outlet, then you do not need anything PEEK (49247). ways of beating the$150 AppleTalk fancy at all in the way of an Or, to get more technical, to get access tab. The first and cheapest, is AppleTalk connector. All you'll into this mode, whap soft switches to not use AppleTalk at all, since it really need is a stockNULL modem $C050, $C057 , $C00C , and $C05E . can slow you down and can very cable that sells for as little as $5.50 Then set bit 5 in$C029 by loading severely limit your choice of host from such outfits as Microcomputer $C029, then OR ing it immediate with machines and output devices. Cable. #$20 and then resaving it to $C029 . In the case of a LaserWriter, a Figure three does show you three There's a similar80 column color serialA-B box often works just fine different cables that differ only in fringeless mode you can get into by and is far more flexible. their chosen connectors. So, our whapping the80 column soft switch. Your second option is to build fourth alternate is to use a plain old This has to be done inside a program, your own cables, following the easy NULL modem cable. But remember rather than directly from the monitor. schematic we looked at last month. that this will only work as an Apple- The result can be a most dramatic The folks over atRedmond Cable can Talk substitute if there are two and improvement in monochrome HIRES supply you with the connectors. only two nodes present on your net- displays. You still cannot have a full Your third option is to substitute work, and if both arealways plugged colorHIRES image with black and unused telephone lines for all the into the same grounded AC outlet. white mixed text below, though. expensive cables. In the long run, the Fifth, and finally, all you really only successful local area networks need to work with AppleTalk is some Show Me An Integer Square Root Routine 1K 1K twist I get lots of calls for fancy math RXD+ 8 8 tightly 8 routines usable from Apple machine together TXD+ 6 4 4 language. Probably the best way to handle most of this today is with the GND 4 1 1 SANE numerics (Standard Apple Nu- meric Environment), which give you TXD- 3 5 5 eight foot nearly all of the high precision math RXD- 5 9 maximum length 9 and trig functions. 1K 1K You'll findSANE all ready to go MiniDIN 8 DB9 DB9 in both the IIgs and the Mac tool male male male boxes. You can also get disk-based additional drops SANE assembly language routines for older Apples fromA.P.D.A. These Fig. 4 ± A multi-station AppleTalk "cheater cord" . routines are not particularly fast, but they do the job and do it well. 35.3 January, 1988

16-bit integer square root code. An This paper is not the whitest and and finishes. The price is around $8 accurate and astonishingly fast (only has a slightly greasy look about it. It per hundred sheets. 38 microseconds on a IIe; 16 for the also is not really opaque enough for There are also several specialty IIgs!) integer square root appeared in high quality two-sided printing. I use papers intended specifically for laser the September1987 issue of the plain old offset paper (Such as Husky printing that can give you outstan- Apple Assembly Lines. 60# at $3.00 or so per ream) for my ding results. At, of course, outlandish This jewel uses table lookup and self-publishedAsk the Guru reprints prices. These prices should start to some off-the-wall thinking to come and all of the other books we custom drop as these papers become more in up with a fast, elegant, and not overly publish here. Offset is a thicker and demand and wider known. long (less than1K ) solution. whiter paper with a better feel and Examples of very high quality In general, the algorithm for many has negligible print-through. laser printing papers include Ham- square root routines is based on your I get paper from a new-age outfit mermill Laser Plus, Gilbert Nu-Tech, taking the root series(1 4 9 16 25 ...) , calledPaper Plus , a nationwide self- andProTech Laser Bond. Those Pro- and then taking the first difference service walk-in chain that offers a Tech people also have laser printable between each root(3 5 7 9 11 ...) , and wide variety of quality papers cheap overhead transparency materials. finally noting that the second differ- and in very small quantities. I also Speaking of which, self-stick clear ence is always exactly two. Reverse get specialty papers from them for acetate or mylar materials can us- and iterate the process to calculate the laser printing of fluorescent bum- ually be manually fed. Mylar is the the needed root. perstickers, letterhead and stationary better choice since it is more stable materials, the blank certificate forms, and melts at a higher temperature. Tell Me All About parchment stocks, invitation blanks, One source isDick Blick . Laser Printing Papers astrobrights, covers, and label stock. Donot attempt to feed an acetate Practically any uncoated or non- If you know of any other chains sheet that does not have a thick paper meltable paper can be used with a similar toPaper Plus , please let me backing, or it is certain to melt and laser printer, although a very careful know so that we can pass this on to glop up the works. selection and testing is often needed interested readers. As usual, there Another "paper" that you definitely to get the best possible results. will be books and/or tinaja quests to do not want to run through your laser Let's start off with Hornsnaggle's the providers of the best info. printer is thattyvec polypropylene two laws of paper buying:(1) Any of The best sources I have found for paper as used for some floppy disk the old-line printing paper supply pressure sensitives are those Wausau holders. One minor problem is that wholesalers will eat you alive with Print-Paks. These are available both the toner falls right off it. But that's outlandish prices, totally ridiculous coated and uncoated, in fluorescents, completely academic, since the heat minimum orders, the indecipherable whites, and in some special colors fusion rollers will convert this paper pricing, oddball substitutions, and inexcusable delays. These outfits do, however, have excellent and free sample kits that are definitely worth ripping off. And, Hornsnaggle also tells us that (2) thebasis weight of a paper is a totally meaningless concept invented by a consortium of paper salesmen and specifically designed to confuse and confound you. The weight of a paper has nothing whatsoever to do with how thick it is, how rigid it is, how it feels, its opacity, or even how much a ream of it will weighs. Your first goal should be to find a cheap source of plain old Xerox copy paper, which will work just fine for everyday uses. Out here in Arizona, there are "warehouse" style grocery stores calledPrice Clubs that will sell you ten reams of excellent copy paper (Such asSimpson or Westland ) for$17 a case, or $1.70 per ream. How they can do this is a tad of a mystery, for their retail price is far below anyone else's large quantity Fig. 5 ± Some uses for my PostScript boxdraw stuff. wholesale price. 35.4 ASK THE GURU into a black lagoon style of gloppy corners of any size or weight, with or is particularly handy for centering syrup. Real yummy. without a double hairline header. additional graphics or text inside of Two of the many trade journals You can also do radiused, filletted, your drawn box. that have lots of free paper and paper or cusped corners for special effects. One handy thing about the boxifier selection information in them are Figure five shows you some of the is that you can most lock any text or Printing Impressions and Electronic sample boxifier output, while figure graphics to your box and it can then Publishing. As usual, see the Names six gives you the PostScript code. automatically track for you. and Numbers section for all of the The -bl- (boxleft) gets measured To do this, you use the -bl- needed addresses. from the left edge of the paper, while (boxleft) and the -bb- (boxbottom) -bw- (boxwidth) is the width of the variables to translate the position of What is this Month's box between its left and right sides. whatever is to go inside. Postscript Utility? The -bt- (boxtop) is measured from A sneaky additional trick is to This month, we'll pick up a very the bottom of the page, while the -bh- predefine the box but defer drawing simple and useful set of my boxdraw(boxheight) is the height of the box it until after all its contents are com- routines. These will automatically between its top and bottom. plete. You can then redefine -bb- so put a box around anything you want. An additional -bc- (boxcenter) var- it will automatically use up exactly The box can have square or rounded iable is defined for your later use. It the right amount of space that all its contents may currently demand. This gives you "perfect" text % boxdraw box and border drawing utilities fitting without knowning ahead of % ...... time just how many lines you are % Copyright c 1988 by Don Lancaster & Synergetics, Box 809, Thatcher going to put into the box. The bottom % AZ, 85552, (602) 428-4073. All rights reserved. Personal and of the box will automatically move % non-commercial uses permitted so long as this header remains both down with the text, provided that you % present and intact. include a redefinition of the -bb- % To use, enter -bl- -bw -bt- -bh- -brad- -blw- boxdraw. (boxbottom) variable that changes % For a hairline, use -hd- hairdraw after drawing the box. with the last line text position. On the other hand, if you do not % Large positive -brad- values give you rounded boxes. need any deferred operation, you can % A -brad- value equal to -blw- / 2 gives you a radiused box. simply input all the numeric values % A zero -brad- value gives you square corners. before calling -boxdraw-, rather than % A negative -brad- equal to -blw- / 2 gives you a corner fillet. pre-defining all of your variables. % Larger negative -brad- values give you cusp style corners. This is faster and easier for plain old /boxpath {/blw exch def dup 0 eq {pop 0.001} if /brad exch def /bh fixed height boxes. exch def /bt exch def /bw exch def /bl exch def /br bl bw add def /bc The -brad- box radius variable lets bl bw 2 div add def /bb bt bh sub def /strt br bl add 2 div def newpath you perform all sorts of very sneaky strt bt moveto br bt br bb brad arcto br bb bl bb brad arcto bl bb bl tricks. If you do use a large positive bt brad arcto bl bt strt bt brad arcto closepath blw setlinewidth} def value for -brad-, then you will get a box with the usual rounded corners. /boxdraw {boxpath stroke} def If you do use a -brad- value that is /boxfill {boxpath fill} def exactly one-half of the box linewidth, /hairdraw {gsave /hd exch def 0.5 setlinewidth bl bt hd sub moveto bw 0 then you will get a radiused box with rlineto 0 2.5 rmoveto bw neg 0 rlineto stroke} def square inside corners and round /bc {bl bw 2 div add} def outside ones. This looks best with fairly fat borders. % //// DEMO - REMOVE BEFORE USE ///// If you use a zero -brad- value, then /bl 200 def you get perfectly square corners. /bw 175 def Finally, you can use negative values /bt 500 def for -brad-. These will give you fancy /bh 240 def inverse cusps as shown you in the /brad 7 def middle of figure five. /blw 2 def Your boxes can be repeated inside /hd 25 def boxes. Make the outside one black bl bw bt bh brad blw boxdraw hd hairdraw and the inside one white, and you have a fancy double border, similar gsave bl 10 add bb 15 add translate to the ones that I usually use on my % {any stuff to be locked inside the box goes here} Synergetics ads. The boxifier can also be repeated grestore showpage for such things as fancy continuous Fig. 6 ± Some of my Postscript boxdraw routines. borders. Let me know what else you can come up with on this. 35.5

Don Lancaster's New LaserWriters Postscript point grid Printing onto aluminum ASK THE GURU Understanding IIgs modes February, 1988 IIgs programming resources

arring any further delays, Writers. While I haven't yet received page; and(6) Run some of the 200+ Apple is about to announce a one for testing to date (hint... hint... ), free downloads on the machine you pair of fresh PostScript this beast apparently uses a liquid can get off our free PostScriptBBS at Bspeaking laser printers. The crystal shutter instead of a scanning (409) 244-4704. currentLaserWriter Plus is being laser, and seems to use an in-house If you do not already have access upgraded to use the new Canon SX engine design. to a PostScript speaking printer, the engine. This new engine is far and I'd tend to wonder what the long best way to get started on all this is away the best choice available today term reliability and pixel uniformity with Adobe's PostScript Cookbook for low end laser printing. of the new liquid crystal shutter will and with my own An Introduction to TheSX has been designed from the be. My prediction here is that the PostScript video. The latter also will ground up as an actual laser printer, shutter will have its own set of rather show you how to do cartridge refills rather than being thrown together unique problems. Time will tell. and will pay for itself three times from recycled copier parts. The new Meanwhile, watch out for the hype over on your first refill. I have both SX is smaller, more rugged, and costs from others. Several reviewers have of these in stock here, along with lots less than the oldCX . It holds more recently been unfairly comparing the of other PostScript goodies. toner per cartridge and gives much other new laser printers against non- Oh, the utter shame and horror of more solid blacks, particularly over upgraded and slow old LaserWriters it all. Apple has stupidly dropped any larger fill areas. The paper path that still use those obsolete version AppleWriter from their developer is simpler and less jam prone. The 38 firmware ROM s. price lists. Why this is so is a real trays hold more paper. The manual So, before you believe any of all mystery, since AppleWriter is still feeding is far easier. It collates. the hype and certainly before you the only genuinely useful word pro- Envelopes are less of a hassle to buy any laser printer, here are some cessor that is currently available for print and come out better looking. essential guidelines:(1) Make absol- the IIgs, besides being an outstanding I have not taken one apart yet, but utely certain the machine and all its desktop publishing choice. presumably there has been a com- electronics has been designed from Yes, I will admit that there are new puter board redesign to pick up more the ground up tointernally speak IIgs word processors that can freely modern components, an easing of the PostScript as its native language; (2) intermix totally illegible mauve and password blowup travesty, additional Get sample printouts of both 6 and fuscia text on an orange background. memory for downloadable fonts, and 600 point text; (3) Do check out the But all of these new programs are so modestly faster speed. The Version filling in of large black areas; (4) stupendously slow that they're only 47 PostScript ROM firmware is also Perform tests of your actual required useful when you are writing a term presumably still being used. output on the target machine, (5) paper on glaciers, snail geriatrics, or Yes, theSX cartridges can still be Make certain that a third-party toner political reform. refilled for under$10 . But some early refilling process is available to keep Besides, of course, lacking those rumors report that theSX cartridge your toner costs under0.7 cents per powerful self-prompting glossaries, drums are now ridiculously easier to scratch than they were before on the olderCX . Apple Assembly Cookbook (Lancaster) TheApple high end machine is Apple Assembly Lines (S-C) still a bit of a mystery at this writing. Apple IIgs Firmware Reference (APDA) Apple IIgs Hardware Reference (APDA) It is presumably very pricey, with a Apple IIgs ProDOS 16 Reference (APDA) faster and larger PostScript engine intended for shared group use, with a Apple IIgs Toolbox References I and II (APDA) 68020 main processor, a hard disk Apple Programmer's Workshop (APDA) provision, and lots of fonts. Plus a Apple Programmer's Workshop Reference (APDA) few other bells and whistles. EDASM Assembler Tools (APDA) We'll see lots more details on both Exploring the Apple IIgs (Little) of these new machines after I have a Micro Cookbooks I and II (Lancaster) chance to do some further snooping ORCA/M Assembler (Byte Works) and user testing. Stay tuned. Programmers Introduction to the Apple IIgs (APDA) Meanwhile, several of you helpline Programming the 65816 (Eyes and Litchey) callers have had some very positive S-C Assembler (S-C) comments on the new NEC LC-890 PostScript printer that is intended to Fig. 1 ± Some Apple IIgs programming resources. compete one-on-one with the Laser- 36.1 ASK THE GURU the full macros, and the magic of the It also seems that there is a glut on calls. And, the highest level is to go WPL executive supervisory language. the market for used, old fashioned and use the ultimate weapons along No way can they even hold a candle guillotine cutters. Apparently, what with the full blown IIgs development to good old AppleWriter. Sigh. you have to do to get one is ask any environment with its fully relocatable Let's move on to a question of specialty paper wholesaler, since all code.APW is good for this. great import . . . of the specialty mills have gone to The irony of all this is that it is not newer and more expensive cutters. at all clear which level will give you Do People Actually Enter Those My own solution was to approach the best final results. To play the IIgs Stupid Contests of Yours? a local school and offer to sharpen game "their way" using the ultimate Sure thing. In droves, even. In fact, and rebuild a broken old cutter of weapons involves a lot of learning, a its gotten so bad that even some of theirs, in exchange for its free use. ridiculous amount of time, plus an the industrial strength tinajas might This cost was all of$20 , and the final awful lot of frustration. Worse yet, have to go on allocation. appearance of all my self-published many of the toolbox routines are in- Our latest tinaja quest winner is books has now gone up sharply. excusably and intolerably slow, and Bob Smith from up in Colorado. He A cut above, you might say. can in no way compare to the hand has a paper jogger you can build up The entries in our "neat stuff" con- crafting of fixed position traditional from a cheap sander. More details on test are still pouring in. Tellyawhat. IIe-style code. this in a future issue. Bob also does To turn all of this into an ongoing Examples of this sort of thing are advise us that theXerox thermal adventure for you, I'll just give you the serial interface circuitry, parts of transfer material for T-shirts is being the answers here. Write or call all which are thirty times slower than on phased out, but that the new Sharp these people and see what you get ± I a IIe; AppleTalk firmware and proto- color copiers do offer a similar pro- guarantee you will be absolutely cols that slow down what should be cess and material. amazed:Bizarro Inc. , C and H Sales , a240K baud rate to much less than He, along with some other readers, Hank Lee,,, Jerryco Kelsey Lindsay plain old9600 baud; and the text and feel that theSublicolor T-shirt stuff, Publications,, Meredith Instruments screen tools that are just plain too while workable, is based on a very Small Parts, Synergetics (sneaky, eh slow or too marginal for serious word ancient duplicator technology and is what?) and, of course, the good old processing uses. insanely overpriced, particularly for Whole Earth Review. At any rate, let us look at some the ongoing materials and supplies. useful tools and resources. Figure Several contest entrants put me How do I get Started one gives you a partial listing. onto what appears to be the best buy Programming a IIgs? I have always felt you should hand in a clamping guillotine style paper Good question. There are at least code a few hundred lines of machine cutter. This is theMartin Yale Model three different levels that you can use language before you even think about 7000E, which lists for $499 , but is when writing machine and assembly going to an assembler or any more dealer priced at$299 in lots of two. language code for the IIgs. powerful tools. This is the only way A sturdier and much more rugged The simplest level is to use the to fully and totally understand such machine is shown in the unusual tools and resources you already did things as addressing modes on their Kelsey Company catalog, while some when you were back IIc and IIe pro- most fundamental level. of highly overpriced also-rans appear gramming. The intermediate level is Some of the traditional and older in theWolf Camera and the Clark to improve and upgrade these tools to programming tools include Apple's Associates catalogs, as well as in the include such things as the new 65816 ownEDASM assembler, which can Printing Impressions trade journal. instructions and all the IIgs toolbox be helped along bunches by using AppleWriter for "new way" power editing. I like to think that my own From Inside a machine or assembly language program . . . Micro Cookbooks, volumes I and II, CLC XCE ± To get into the native mode and my own Apple Assembly Cook- SEC XCE ± To get into the emulation mode book are also both very useful and REP #$10 ± For an 8-bit accumulator and memory solid on fundamentals. SEP #$10 ± For a 16-bit accumulator and memory As additional resources, the S-C Software people have an interesting REP #$20 ± For 8-bix X and Y registers and useful assembler. They also do SEP #$20 ± For 16-bit X and Y registers stock many of the popular third party assembly books and utility routines. From the monitor Lister . . . TheirApple Assembly Line pub- 1=m ± For 8-bit accumulator and memory lication has secret insider IIgs info in 0=m ± For 16-bit accumulator and memory it that's not to be found elsewhere. Two IIgs specific books that are in 1=x ± For 8-bit X and Y registers 0=x ± For 16-bit X and Y registers the "must have" category are Gary Little's new Exploring the Apple IIgs Fig. 2 ± How to change the IIgs operating modes. and Eyes and Lichty's Programming the 65816. A.P.D.A. has them. 36.2 February, 1988

The current Apple thinking is to the6502 emulation mode. most likely slow you down and cer- recommend doing all of your high In the emulation mode, all memory tainly would double the length of all level programming in the"C" lang- references, all accumulator loads, and of your word processor text files. uage and to use an assembler called all index registers are supposed to be Since you now have a choice of ORCA/M for all of your tightly linked 8-bits wide. In addition, many of the memory and accumulator size and a machine language modules. fancier65816 instructions might be separate choice of index register One very big advantage of the "C" meaningless or else might do bizarre widths, a semi-intelligent lister (such language is that it links beautifully to things. This8- bit emulation mode is as the"L" command in the monitor) custom machine language code. primarily intended for running older gets confused if it does not know The foremost source for most IIgs software as written originally for the what you had in mind when it starts programming books and software are 6502 or 65C02 . doing its listing. theA.P.D.A. people. They offer a pro- In the native mode, you have your Thus, and again per figure two, gramming system calledAPW. , and choice of8- bit or 16- bit memory ref- you use the monitor0=m or 1=m short forApple Programming Work - erences and separately of8- bit or 16- commands tell your lister whether it shop. This is a series of shells, as- bit sizes for thoseXY and registers. is to expect any8- bit or 16- bit mem- semblers, linkers, debuggers, and as- As figure two shows us, these selec- ory and accumulator references. You sorted goodies that give you a total tions are pretty much independent. separately use the0=x and 1=x com- IIgs programming environment. TheSEP and REP commands are used mands to tell your lister whether it is We will be seeing lots more on to set the"m" and the "x" flags. to expect either8- bit or 16- bit widths APW. in future columns. Two other Note that for most uses most of the for yourXY and index registers. essential books for IIgs programming time, a16- bit microprocessor usually Note that both the"m" and the "x" include the IIgs Firmware Reference makes mostly8- bit commands and heremust always be in lower case. Manual and the Apple IIgs Toolbox primarily carries out8- bit operations. For instance, a code sequence of Reference. To not do so is often a waste of pro- $A9 $06 $EA will be listed as LDA cessor time and of memory space. It #$06 and a NOP if you are in the 8- bit What are the IIgs is only when you specifically do need mode(1=m) and will be listed as LDA Operating Modes? "wider" words that you will switch #$EA06 if you are instead listing in One of the real surprises when you into full16- bit operation. the16- bit mode (0=m) . try to list a IIgs file or program is For instance, oneASCII character Depending on where you are in that you might get some very strange in a word processor often only has to your program, one and only one of garbage instead. Other times, you be78 or at most bits wide. There is these will be correct, and if you do might get a listing that is correct for a no point whatsoever in using a full select the wrong one, you will get while and then suddenly gets trashed. 16-bit word here; to do so would meaningless garbage. What is going on here? First, note that many on-disk IIgs % drawapples - draws open and closed apple symbols. files are special self-relocating load files of system types$B3 or $B5 . The difference is that the$B3 files will usually stand alone, while the $B5 % These symbols are registered trademarks of Apple Computer. types are intended to run under a shell program of some sort. Full % Consult them directly for legal use restrictions. details on both of these file types appear in the Apple IIgs Program- mer's Workshop Manual. /openapple {gsave /fontsize exch def /Symbol findfont [fontsize Second, and even more fundam- ental, there are several new operating 0 0 fontsize 0 0] makefont setfont moveto (\360) false charpath modes that are involved in the IIgs. Figure two summarizes these. clip fontsize 12 div setlinewidth stroke grestore} def There is anative mode in which the65816 acts as a full blown 16- bit microprocessor, and an emulation mode in which the chip thinks it is a /closedapple{gsave /fontsize exch def /Symbol findfont [fontsize

6502 65C02 plain old or . 0 0 fontsize 0 0] makefont setfont moveto (\360) show grestore} def You switch between the emulation mode and the native mode by flip- ping a special flag that is "hidden" behind the carry flag. As figure two % demos - remove before use . . . shows us, theXCE command will automatically exchange the carry and the emulation flags. On reset, the Fig. 3 ± Postscript code for open and closed apples. 65816 always will power itself up in /xposition 200 def

/yposition 300 def 36.3

/fontsize 60 def

ASK THE GURU Finally, remember that any lister ing process and have then gotten a negative image, you will get color- will lie like a rug unless it begins its suitably photosensitized. You expose ed lettering over a black background. listing process at a valid point in and then develop the sheets to create The uses are obvious: signs, logos, legal and legitimate code. In the IIe, a real photographic image. Finally, nameplates, dials, etc... The Metal- you had a hint in the way of lots of you finish off the annodizing process photo salesmen even use aluminum question marks when something was by boiling the plates in special glop. business cards with their own per- wrong with your listing entry point. The glop seals up the formerly open sonal halftone photo on them. The On the IIgs, since each and every or "sponge" surface of the aluminum museums and exhibit, park and mon- op-code is used for something and and creates a smooth, sapphire hard, ument people all like Metalphoto lists as such, it takes a little more and quite transparent aluminum ox- because it is reasonably vandal and practice and experience to separate ide overcoat that will protect and weather resistant. valid listings from files, wrong start- "lock in" the photo image. The image Back in the golden age of hacker ing points, or outright trash. gets actually locked "inside" of the electronics (check out Popular Elec- aluminum, rather than on its surface. tronics in1967 to 1970 ), I did use How can I Print While you can in fact damage a Metalphoto for dozens of different Directly Onto Metal? Metalphoto dialplate by physically project dialplates and even had a As usual, you start out withApple - gouging it out, it is almost totally custom panel service going. writer and then create your original resistant to heavy wear, handling or A competing and apparently less artwork on aLaserWriter , ending up weathering, most industrial solvents, popular process is calledFotofoil . with a negative transparency. Then vandals, and many chemicals. Tellyawhat. For this month's con- you go to yet another little known Metalphoto is available in several test, just dream up an off-the-wall, and magic material that has been sizes, thicknesses and colors, ranging new, or obscure use for Metalphoto scunging around for dozens of years. from foils to plate. One single 3 x 5 or Fotofoil. We will have the usual This one is calledMetalphoto . inch dialplate may cost you around books and tinaja quests as prizes. The Metalphoto products are a $5 using this process. series of aluminum sheets that have With a normal exposure, you'll get Tell me More About IWEM. gone halfway through an annodiz- black over color. If, instead, you use The IIgs disk file /SYSTEM.MAS- TER/APPLETALK/IWEM on the IIgs system master disk is an ordinary textfile that contains an excellent 300 300 300 imagewriter emulator for your Laser- Writer or for pretty near any other PostScript speaking printer. You can easily move this file over to a IIe or over to most any personal 100 200 300 computer just by grabbing it. When transmitted as PostScript code, IWEM first tests for its own presence inside your printer and then downloads a 200 200 200 persistent clone of itself that remains so long as power is applied. To switch into your imagewriter emulation mode on a IIe or an IBM clone, you enter the code"_WBJ_" .

100 200 300 The rest of that particular job will be done as if you had a high resolution version of an ImageWriter printer. The code is very easily modified to 100 100 100 change it back into an emulator of most any daisywheel or dot matrix printer you care to. You might also select proportional type fonts, but note that this works best with a left

100 200 300 justified text and can cause all sorts of serious hassles with spreadsheets or columnar data. As we found out last month, the present LaserWriter Appletalk driver automatically activates your IWEM Fig. 4 ± A typical PostScript standard point layout grid. code whenever port seven gets init- ialized and then trys to force you to 36.4 February, 1988 send all your code in the emulation entire sheet. I've only shown you the maintained. The black grid does not mode. Thus, you will get PostScript lower left corner of the grid in figure share this problem. The gray letters listings rather than postScript code four. By the way, it usually will pay are also inherently less sharp than are printed out, unless you make some to offset your grid into the printable the black ones. changes real quick like. area of the sheet, putting the grid Or at least I don't know how to To beat this, you simply replace origin at30, 30 and then doing a 30 correct either of these two "features". IWEM with any code variation you 30 translate before you start your Sorry about that. If you have a fix, like while obeying two rules:(1) The PostScript work. This will both look please let me know. Possibly a very final code must be namedIWEM ; and better and give you fewer suprises. special spot function can help here. (2) there MUST be a procedure some- You can also xerox onto sheets A centered point grid is simiarly where near the start ofIWEM that is with preprinted layout grids on them. possible, and is handy where layout defined with the name_WBJ_ . That can greatly simplify such things symmetry is important. We'll pick up To review what happens in the as curve tracing, digitized signatures, code on this some other time. IIgs, with an AppleTalk installation, custom logos, and stuff like this. As per usual, this is your column IWEM is persistently downloaded to While the rubbergrid we looked at and you can get technical help per your PostScript speaking laser prin- previously can give you "perfect" and the end box. Yes, we do have reprints ter, if it is not already there. Later on, single pixel dot crossings, this true of all previous columns available. PR#7 or another AppleTalk initial standard point gray grid apparently Call or write for further info and for activation, a single"_WBJ_ command can not, since an exact size has to be a copy of the new free stuff list. is sent out. This turns on the image- writer emulation mode and locks you % regpointgrid - Full sheet gray point grid with lower left origin. out of PostScript. Unless, of course, % ...... you properly rearrange the scenery to suit yourself. % Copyright c 1988 by Don Lancaster & Synergetics, Box 809, IWEM apparentlydemands low % Thatcher AZ, 85552, (602) 428-4073. All rights reserved. ASCII input, with bit 7 always a zero. % Personal, non-commercial use permitted so long as this Thus, ProDOS AppleWriter2.0 will % header remains both present and intact. work, but2.1 may not. Similarly, a /setgrid { save /rubbersnap exch def /size exch def translate size simple "force lowASCII " machine dup scale} def language driver should be used /drawlines {72 300 div lw mul size div setlinewidth /hposs 0 def between Applesloth andIWEM . This #hlines gs div 1 add cvi { hposs 0 moveto 0 #vlines rlineto stroke can be done from insideBASIC with /hposs hposs gs add def} repeat /vposs 0 def #vlines gs div 1 add a fewPOKE commands, and is left as cvi {0 vposs moveto #hlines 0 rlineto stroke /vposs vposs gs add an exercise for all of you more ser- def} repeat} def ious students. So there. /showgrid{ seegrid {gsave /#vlines exch def /#hlines exch def 106 What is this Month's 45 {pop pop 0} setscreen 0.9 setgray PostScript Utility? /gs 1 def /lw 1 def drawlines fat5 {/gs 5 def /lw 3 def drawlines} if How about a pair of them? Figure fatter10 {/gs 10 def /lw 5 def drawlines} if grestore}if} def three shows you all of the sneaky /fat5 true def /fatter10 true def /seegrid true def 0 0 10 setgrid 60 tricks needed to print the open and 78 showgrid clear rubbersnap restore closed apple symbols as you might need for an Apple book or software 135 25 {dup mul exch dup mul add 1.0 exch sub} setscreen manual or whatever. 0.99 setgray While theSymbol \360 character /erasebox {gsave currentpoint /yc exch 1.5 sub def /xc exch 1 sub prints as a solid apple on all Laser- def xc yc moveto 0 9 rlineto 15 0 rlineto 0 -9 rlineto closepath Writer versions, it may or may not on 1 setgray fill grestore}def /Helvetica-Bold findfont 8 scalefont competing brands of PostScript prin- setfont /numberow {/numnum exch def /numpos exch def /xrun ters. So, this just might end up as 43 def 9{xrun numpos moveto erasebox numnum show /xrun xrun machine-specific code. 100 add def} repeat} def Figure four is a standard point grid 97 (100) numberow 197 (200) numberow 297 (300) numberow 397 that is most handy for layout work. (400) numberow 497 (500) numberow 597 (600) numberow 697 One possible listing of PostScript (700) numberow 90 rotate -103 (100) numberow -203 (200) code for this appears in figure five. numberow -303 (300) numberow -403 (400) numberow -503 (500) The grid can be shown either in a numberow -90 rotate 406 725 moveto 20 setlinewidth 180 0 black or in a light gray. I've shown rlineto stroke 1 setgray /Helvetica-Bold findfont 13 scalefont you the gray version here. The ob- setfont 410 721 moveto (Normal Grid { 0 0 translate }) show vious advantage of gray is that you can overwrite it with all of your final showpage real PostScript images. Fig. 5 ± Postscript code for the standard point grid. The code of figure five can fill an 36.5

Don Lancaster's Perspective drawing Help on the Apple III Self-publishing secrets ASK THE GURU Alternate IIgs monitors March, 1988 INH problems on the IIgs

pparently the powers that should also get rid of all of that as the AppleIII was being flushed, a be atApple Computer have ridiculous AppleTalk software over- few bootleg copies were released to belatedly discovered that head that makes plain old honest user groups by Apple. Aby far the most absurdly 9600 baud serial communications sig- Chances are you can get a copy if ludicrous words ever to be uttered by nificantly faster for many users much you do ask the rightIII hacker. To mankind are "See your local Apple of the time. snoop, start from ProDOS, insert the dealer for technical assistance." At Rumors are surfacing of an Apple SOS disk and then you do a BLOAD long last, Apple is now making a developed genlock video board that SOS.INTERP, A$57F2, T$0C. really major commitment to improv- plugs into a IIe or a IIgs, and pro- At any rate, it turns out this code ing and upgrading their end-user vides an overlay of IIgs graphics onto was older and less powerful than Ap- technical services. Expect a direct an external trueNTSC video signal. pleWriter 2.0 or 2.1, except for that tech help hotline soon, along with Apparently, the board is powerful larger workfile and the new spelling much wider and easier AppleLink enough that it can provide full IIgs checker. The memory was handled in BBS access, plus several new user graphics even when plugged into a banks of32K each, and you could group services. IIe that has not been upgraded! select as many as you needed. The Now, if we could only get them to More on this as the drama unfolds. bank switching was apparently hand- loosen up on their repair and service I have felt for years that the first led by theIII operating system. information, we might actually end and foremost decision that should be Today, though, it is probably far up with something workable. made when designing a new personal better to choose a standard spelling Apple also provides a new and free computer is when and how all of the checker. It would also be faster and Connections guide, a handy resource NTSC frame grabbing and genlocking better to rewrite the2.0 or 2.1 mem- directory for disabled children and will be done. After that gets decided, ory access code to use all the more adults. This is available through their then, and only then, should you pick powerful IIgs commands. special education office. aCPU , ROM , RAM , and all the other I guess it would be heresy to leave At the same time, Apple has now frivolous addons that surround your the advertorial out of this space. So, "improved" their AppleTalk connec- fundamental video interface. do not forget you can now get bound tors so they do not fall apart quite so There have long been rumors of a reprints of all of my Ask The Guru easily. Naturally, they substantially "super" version of AppleWriter that columns. And, I do have lots of great upped the price when they did this. handles a256K work file, includes a PostScript stuff for you when you What they really need to do with spelling checker, and provides other call or write. AppleTalk, of course, is make it so it assorted goodies. Well, I have finally The insanely stupendous miracle inherently works with either doorbell tracked this dude down. It was first fantasmagorical breakthrough for this wire or telephone twisted pair. They known asSuper Applewriter III . Just month involves doing true perspec- tive drawing out of AppleWriter that IIgs Multisync includes accurate circles and arcs, and ± believe it or not ± genuine per- video out analog video in spective lettering. ( DB15 male ) ( DB9 male ) More on this shortly. But first ... ground 1 6 Which Monitors Work red video With the Apple IIgs? 2 1 We saw way back in the May 87 composite sync column just how to use that Sony 3 4 KV1311CR receiver/monitor with a green video 5 2 IIgs. This is still my favorite and the one I use. Besides ending up $100 ground 6 7 cheaper than the Apple color linear RGB monitor, this one also is a 196 blue video 9 3 channel tv set with a remote control, and has lots of other neat features. ground 13 8 Two other linearRGB monitors that are useful with the IIgs are the NEC Multisync, and that Magnivox Fig. 1 ± IIgs video cable for the NEC Multisync monitor. RGB-80. Figures one and two will show you the cable connections to 37.1 March, 1988 use either one of these alternate mon- many copies you will actually sell. collating or binding. itors. And, if you do have a favorite Other major advantages of laser Printing is done on a high bulk 5 monitor of your own, be sure to send self-publishing are that you can make milHusky offset paper that is very your circuit in so we can share it with additions or corrections at any time, attractive and resists print-through the otherComputer Shopper readers. you can send out your review copies better than copier paper. Eventually, within minutes after the manuscript when the price comes down, I will What is the INH Problem gets in its final form, that you can switch to an ultra-white custom laser On the Apple IIgs? instantly and electronically transmit paper. Toner cartridges are refilled Basically, there is a really major copies anywhere in the world, and up to seven times at a cost of less screwup in the Apple IIgs hardware that you can print each customer's than$7.50 per refill, which drops the that makes use of theINH inhibit line name in gold on each copy. toner cost under0.4 cents a page. by a plug-in card difficult and some- But the biggest advantage of all to The covers are printed on heavy times impossible. laser self-publishing is that every- Skytone parchment and then are run What happens is thatINH will only thing you do is wid your own widdle through aKroy Kolor fusion machine work in certain memory ranges, and hatchet. There's no way that others to improve the toner's durability by will cause a memory contention fight are able to screw up the works for Bakerizing. A wrap-around Unibind in others. Specifically, some real bad you through any incompetence or clear plastic thermal binding is used memory contention (and a system delays, sloppy work, lack of attention as an outer cover, completely protec- blowup and possible damage) might to detail, misinterpretion, outright ting the cover toner from scuffing or happen if you do lowerINH while lies, committeespeak, missed deliv- wear. A special homemade jig is used addressing$6000-9FFF in main mem- ery schedules, or overpricing. to guarantee the covers are square. ory, or if you address$0000-5FFF or You instead get to do all of these An alternate cover process that I $A000-FFF in auxiliary memory. things all by yourself. use on my smaller booklets is to laser It is possible to destroy the MEGA For nearly a year now, I have been print and thenKroy Kolor onto an II chip if you try this. More details on self-publishing my Ask The Guru attractive cover stock. This is follow- this in the IIgs Technical Note#32 , reprints, and I thought I would bring ed up by a protective lamination of from your local user group orBBS . you up to date on how this is being clearKroy Laminating Film . done. The bottom line is that the After the jogging, collating and a Where can I get Apple III Help? process works and works very well, thermal binding, the books are given Outside of it being obscenely over- and that I intend to be publishing a trim with a guillotine paper cutter. priced, monumentally mismarketed, many other titles by this method. This gives a professional final edge. poorly assembled at first, and woe- At present, the180 page ( 90 sheet) Naturally, I'd be most happy to fully underdocumented, the Apple III books are produced chapter by chap- send you a sample copy of all this at wasn't all that bad a machine. The III ter in lots of twenty. This limit is set the going rate. Do write or call if you was to be that great IIe killer, along by the LaserWriter's paper tray cap- are at all interested. with Lisa and a few other machines acity. The AppleWriter textfiles all whose names I don't recall. reside on four3-1/2 inch IIgs disks. So, What is Next? In fact, theIII still does see lots of TheWPL supervisory language is The next really big step in the use in community college admin- used to automatically print a single self-publishing process is publishing istrative work, and every once in a chapter at a time, with a high school on demand. At the press of a button, while, one will show up at a bargain freshman keeping an eye on the more out should pop one complete and price. Their3 Easy Pieces , a fore- or less automatic process while she is personally customized book copy. runner ofAppleWorks does remain a useful integrated word processor, spreadsheet, and data base. IIgs RGB 80 I get a suprisingly high number of video out analog video in helpline calls on the AppleIII . It ( DB15 male ) ( DIN-6 male ) turns out there is a gang called On red video Three that publishes a newsletter, and 2 4 offers a number of support and net- composite sync working products. If you are using or 3 6 going to use one of these machines, green video be sure to check them out. 5 1 ground Tell Me All About 6 3 Self-Publishing Books blue video As we found out in our previous 9 5 ATG columns, custom laser book printing is more than cost compet- itive with jiffy printing, escpecially Fig. 2 ± IIgs video cable for the Magnivox RGB 80. when you do not know exactly how 37.2 ASK THE GURU All collated and ready for binding. IIgs, of course. How else could you how far in front of the picture plane Fully unattended, except possibly for possibly do a first quality perspective the observer is sitting. Finally, the a page flipover halfway through. drawing? ZO value will be the height of the To do this will require a dramatic The PostScript language and a observer's eyes above or below the speedup in the PostScript processing laser printer does help out a tad along "ground" plane. and communicating time. By use of the way. Check out figures three and Now, it is important to remember all my compiling utilities, I can now four. What you have here is a fast, that two-point perspective, like any print a three column, ten font, two simple, and disgustingly powerful attempt whatsoever in showing a 3-D illustration plus header sheet using a means of creating your own custom world on a2-D sheet of paper, is an mere14 seconds of pre-print proces- two-point perspective drawings. illusion and an approximation. sing time. Note particularly that each and Artists usually recommend a5:1 to By going out the IIgs game paddle every object in the perspective grid 15:1 ratio for YO , or the illusion may port at57600 baud, I should be able can be individually rotated; that very fail. Put another way, you usually to communicate well over7 times accurate perspective circles and arcs want to be five or more times the faster than AppleTalk can. A hard are trivially included; and, above all, distance away as the object is wide. disk can further speed up the WPL thatfull perspective lettering is very Architects will prefer fifteen times. access of all the individual page files. simply and easily done, using most Thus, fairly large values ofYO will And I should have a new LaserWriter any font of your choosing. often give you the most realistic final accellerator on hand "real soon now". And, this is by no means a "static" results. An intermediate objective of 12 display system. You can easily do a Similarly, an architect will almost seconds per printed page should be zoom, a reposition, or even a sequen- always use an "eye level" for hisZO , reachable. This would translate to tial animated flyby with only a very and very high or very low views will around2160 seconds per book, which few extra keystrokes. Not too shabby be unrealistic. Thus, you will most is roughly one book produced every for AppleWriter, eh what? often use a fairly low value forZO . 35 minutes. Note particularly that any Figure five shows you some of the Remember that all the vertical lines and all of those minutes could be PostScript code involved. The actual will remain vertical in any two-point done during lunch breaks or at night. two-point perspective math is not all perspective drawing. If you project what a laser printer that hairy, and we may get into it in a Your fourth control parameter is will be capable of doing a few years future column. All you really have to calledOBJROT . This one lets you from now, this is obviously the time do is "ray trace" a pair of similar tri- rotate any individual object on the to be getting into and debugging your angles to locate the end points on a ground plane. Think of the ground self-publishing act in a big way. picture plane that lies between the plane as a giant sidewalk. Any of the Opporknockity tunes but once. subject and the observer. individual objects on the sidewalk Three global parameters are under can be rotated towards or away from How can I Make a your control. TheXO value is how you, creating all the more interesting Perspective Drawing? far to the right or left of center the angle views. Why, with AppleWriter on a IIe or observer is sitting. TheYO value is You can move the observer around simply by changing theXO , YO , and ZO parameters. The subjects can be made more or less interesting by a change ofOBJROT . A custom proc that is similar to the stock PostScript rotation matrix is used to accomplish these rotations. As figure five shows us, there are both absolute and relative moves and draws. All of the relative moves will include any requested rotation; those absolute ones will not. You should thus use only absolute moves and draws to position an object, and then use relative moves and draws for all the rotatable details of that object. Curves and arcs are handled by using my curvetrace utilities. To do a circle, the correct locations of 13 intermediate points are calculated, one for each30 degrees of arc. Each of these intermediate points is then Fig. 3 ± AppleWriter strikes again . . . converted into apair of coordinates that are a very small anglebefore and 37.3 March, 1988 beyond the desired point on your selected curve. The four resulting data values are then converted into anX position, a Y position, and a direction vector. These are then used as part of a continuous curvetracing process to generate your desired circle or arc. The results are much better and much more accurate than the phony elliptical approximations that were previously used by draftsmen, except for the most severely squashed of circles. The really squashed stuff can be easily handled by adding a few more intermediate points. The lettering is done with my pixel line remapping routines. The mes- sage gets scanned exactly one line of vertical pixels at a time. Each pixel line is then perspective transformed and height scaled so it drops into the proper place at the proper size in the Fig. 4 ± . . . And, two keystrokes later, once again. final image. Yes, as the image rotates, zooms, or expands, the lettering will auto- % Copyright c 1988 by Don Lancaster & Synergetics, Box 809, Thatcher AZ, 85552. matically adjust itself to give the % (602) 428-4073. All rights reserved. Personal, non-commercial use permitted so long as correct result. There's no limit to % this header remains both present and intact. your choice of fonts. In fact, any- % perspective transform - converts x,y,z into X and Y on stack: thing that you can show "flat" on any /px {/zz exch def /yy exch def /xx exch def yo dup yy add div xx xo sub mul yo dup yy add div PostScript page can be "pasted" onto zz zo sub mul} def any side of any perspective object in % save and restore previous x,y,z position: your image. Anywhere. /psave {/zh zz def /yh yy def /xh xx def} def /prestore {/zz zh def /yy yh def /xx xh def} def The PostScript processing speed is /pm {px psave moveto} def % perspective absolute move x,y,z and hold amazingly fast for most perspective /pd {px psave lineto} def % pd perspective absolute draw x,y,z and hold: drawing, although things will slow % prm perspective relative x,y,z move with objrot rotation: down on an irregular clipping boun- /prm {/zi exch def /yi exch def /xi exch def objrot cos xi mul objrot sin yi mul sub xh add objrot sin xi mul objrot cos yi mul add yh add zi zh add px moveto psave} def dary. These already fast times can be % prd perspective relative x,y,z draw with objrot rotation: much further sped up by compiling /prd {/zi exch def /yi exch def /xi exch def objrot cos xi mul objrot sin yi mul sub xh add or pseudo-compiling, done with my objrot sin xi mul objrot cos yi mul add yh add zi zh add px lineto psave} def PostScript utilities. % default distances from observer to picture plane: That pixel line remapping involved /xo 20 def % left and right in the perspective lettering might /yo 80 def % into picture; avoid small values /zo 40 def % up and down; avoid large values become excruciatingly slow for large /objrot 30 def % relative xy object rotation letters or long messages. But, as per % --- demo.remove before use --- usual, there's that good old "Uh, 300 400 translate 5 dup scale % this is the center horizon and the scale compared to what?" factor. % perspective grid The perspective techniques shown 0 setlinewidth /startat 0 def 0 setlinewidth 2 setlinecap 19 {-30 startat 0 px moveto 30 here, can, of course, be ported over startat 0 px lineto stroke /startat startat 10 add def} repeat /startat -30 def to most any personal computer. All 7 {startat 0 0 px moveto 0 100000 0 px lineto stroke /startat startat 10 add def} repeat you will really need is your favorite 106 35 {dup mul exch dup mul add 1.0 exch sub} setscreen % a non-putrid gray word processor or comm program. % a shaded perspective cube These routines can all be extended 2 setlinecap 2 setlinejoin -10 10 0 pm 0 0 30 prd 30 0 0 prd 0 0 -30 prd closepath gsave just for you on a custom basis. Write 1 setgray fill grestore 0.2 setlinewidth stroke newpath -10 10 0 pm 0 0 30 prd 0 30 0 prd 0 0 -30 prd closepath gsave 0.6 setgray fill or call if you are interested in this or grestore 0.2 setlinewidth stroke any of my other PostScript goodies. I newpath -10 10 0 pm currentpoint newpath moveto 0 0 30 prm 30 0 0 prd 0 30 0 prd -30 0 have got neat stuff not available 0 prd closepath gsave 0.99 setgray fill grestore 0.2 setlinewidth stroke elsewhere for everyone from a bare showpage novice to the most gonzo of you advanced Postscript developers. Let's Fig. 5 ± Some of my Postscript perspective routines. hear from you. 37.4 Don Lancaster's A new high-tech toy Perspective transforms New LaserWriter details ASK THE GURU IIgs AppleWriter patches April, 1988 Toner cartridge reloading

ell, I still don't have my cards. There is now a several hundred hard disk, there's aSCSI port that lets newLaserWriter yet. dollar "penalty" to do so. you mix and match four external hard Word has it that there The low end machine is known as disk orCD ROM devices. Ware some minor teething theLaserWriter II SC . In my opinion, The pricing is enigmatic at the problems with the new production this gutless wonder is a totally use- present time. The dealer margins are facility that is intended to churn these less joke, since it does not speak the insanely high, which either means new machines out. industry standard PostScript page that(A) Apple has now been struck Just as soon as I do, I'll give you description language. The-SC is with a corporate wide fit of gen- the full lowdown on printing speeds beneath further comment. erosititus excessus, or else(B) Their and whatever. Naturally, there will The mid-range machine is called suggested list prices are meaningless. be fatal errors and other serious bugs theLaserWriter II NT . This one is If a seer wanted to dust off their on all of these new printers, so my essentially an improved upgrade of crystal ball, though, they just might Computer Shopper columns might the LaserWriter Plus, with pretty make the following predictions for serve as a clearing house and forum much all of the same features. You the "low street" prices, once all the to let you know what these bugs are now have a more durable, smaller, dust has settled:$3795 for the high and how to get around them. lighter, and generally upgraded en- end-NTX , $2650 for the -NT , and no There are really three brand new gine that holds more paper and feeds market whatsoever for the-SC . LaserWriters, all of which share the it more efficiently, handles envelopes At this writing, the best and by far sameCanon SX engine. This engine better, and offers more solid blacks. the easiest-to-get service and repair is just about the best available today You also get slightly more memory manual for theSX engine is available for low end laser printing. On the and modestly faster speed. fromHewlett-Packard for$49 as other hand, the per-page toner costs The high-range machine is named their fine LaserJet II Service Manual are still substantially higher than on theLaserWriter II NTX . This adds part number33440-90904 . They offer theCX (more on this below), and the more memory, a faster68020 main overnight delivery, along with VISA latest third-partyCX toner refills are processor, and a LaserJet emulator to and an800 number. almost as solidly black as those you theNT . The main benefits are faster This manual is essential for any can get from theSX . operation and more memory to hold intelligent use of anySX- based laser You can upgrade between any of more downloaded fonts at once. printer. It will be interesting to see the new machines by exchanging Instead of providing an internal how long Apple will continue to pay H-P a $49 rebate for each new Laser- Writer they manage to sell. This patch is for ProDOS Applewriter 2.0 version AWD.SYS. Apple has also introduced a new The patch allows printing on a IIgs by defeating any attempts MIDI musicial interface for both the at setting serial data values to a non existant 6551 port chip. IIgs and the Mac. The list price, in- It works by trashing the i.d. bytes for the super serial card cluding the needed cables, is$99 . and by aborting any [O]-J. The AppleTalk network has been 1. Make a third or higher backup copy of ProDOS Applewriter renamedLocalTalk and the price of version 2.0. Plainly label this disk FOR IIGS ONLY! the cables and connectors has been raised. After all, the name change did 2. Get into /BASICS.SYS. Then CALL -151 to reach the monitor. have to be funded somehow. 3. BLOAD AWD.SYS, A$2000, E$6020, TSYS, D2 Word has it that the International Apple Core is in very deep trouble. 4. Verify 4DB0- A0 At least that's what several help line Change 4DB0: 60 callers seem to think who have re- 5. Verify 4F67- 01 ceived neither product nor refund for Change 4F67: 10 their numerous and repeated efforts. 6. Verify 4F6E- 31 What started out as an outstanding Change 4F6E: 13 idea ± a club supergroup with a fine magazine, superb public domain disk 7. UNLOCK AWD.SYS releases, and great insider tech info ± 8. BSAVE AWD.SYS, A$2000, E$6020, TSYS. long ago got mismanaged by total incompetents that ended up woefully 9. LOCK AWD.SYS overpricing themselves right out of Fig. 1 ± IIgs patch for ProDOS Applewriter 2.0. their market. Here's a quick reminder about my 38.1 April, 1988 Hardware Hacker sister column to this one that you will find running in This patch is for ProDOS Applewriter 2.1 version AWD.SYS. Radio-Electronics magazine. And, yes folks, its advetorial time. The patch allows printing on a IIgs by defeating any attempts CompleteAsk the Guru reprints of most back issues are available, as are at setting serial data values to a non existant 6551 port chip. my brand new PostScript Language Perspective Drawing Utilites, and my good old Incredible Secret Money It works by trashing the i.d. bytes for the super serial card Machine book. And now, just as soon as we can get thatMS-DOS user and by aborting any [O]-J. untangled from our stage curtain . . . Is this 1984 or 1988? Funny you should ask that. Way 1. Make a third or higher backup copy of ProDOS Applewriter back in1984 , when ProDOS was first released, it was completely obvious version 2.1. Plainly label this disk FOR IIGS ONLY! the IIe was a dead machine, about to be blasted out of the water by the Apple III. And, of course, if that did 2. Get into /BASICS.SYS. Then CALL -151 to reach the monitor. not do it, Lisa would stomp any of the remaining IIe dregs into absolute nothingness. 3. BLOAD AWD.SYS, A$2000, E$6020, T$0C, D2 So, in a fit of stupendous gener- osity, ProDOS was designed to last Fig. 2 ± IIgs patch for ProDOS Applewriter 2.1. for an ridiculously long four years. 4. Verify 4DC7- A0 Enough room was set aside to hold Change 4DC7: 60 the years1984 through 1987 inside Nor do they admit that the insanely sure to select "your card" from your the code. So, on midnight, December expensive 5.LocalTalk Verify 4F7E-cables 01can often control panel. This also will bypass Change 4F7E: 10 31st, 1987 , everybody's ProDOS sys- be replaced by a $4 null modem cable many of the IIgs print buffering has- tem backed itself up by four years or even by6. three Verify pieces 4F85- of 31doorbell sles and incompatibilities. and started repeating. wire twisted Changetogether. 4F85: 13 Outside of these many grevious Which isn't quite as bad as some And they7. UNLOCKcontinue AWD.SYS to refuse to problems,Tech Tidbits does seem to Tandy machines that literally self- admit that AppleWriter runs just fine be very slowly cleaning up their act. destructed on that date, but still . . . on the IIgs, once those three byte Someday, eventually, they just might The cure is either very simple or patches are made that I've once again even become a useful resourse. Here insanely difficult. Just make backup rerun here8. as BSAVE figures AWD.SYS, one and two.A$2000, E$6020,are some T$0C. excerpts from them . . . copies of all affected software, and Or, better yet, go back to using a The quickest way to identify the then replace the backup ProDOS file Super Serial Card. That IIgs serial new IIc or new IIeROM upgrade is to with a copy of the P-8 file on the IIgs firmware 9.creates LOCK far AWD.SYS more problems type aCALL -151 followed by a (!) system master disk that has been re- than it solves. Many other programs exclamation point. If the(*) prompt named ProDOS. will also work just fine with a Super changes to(!) , then you have dropped Be sure to have lots of fun doing Serial Card but will hang with the into the mini-assembler and have this on any locked and protected IIgs internal serial firmware. Just be your new chips installed. disks from now defunct companies. There are some subtle differences between P-8 and the older versions of ProDOS, but the chances are these will not be a big problem for you. If you are using a clock card that links to ProDOS, you might want to contact the manufacturer or your user group for more details. What is the the latest on the Tech Tidbits? Well, they still refuse to admit that LocalTalk is not at all needed for the LaserWriter, and that it often slows you down bunches and will severely Fig. 3 ± Adding an emptying hole to a CX toner cartridge. limit your choice of host computer. 38.2 ASK THE GURU nothing but some air, some colored picture water, and two shaded sands of dif- LEFT plane endpoint in space fering densities. But it will slowly and stunningly create an incredibly xx - xo observer realistic Arizona high desert land- X yo(xx - xo) X = scape. Complete with all the mesas, yo + yy buttes, cattle tanks, dry washes, and xoxo xo canyons. Even the block faulting and yo yy thebajadas of the basin and range center of picture plane geological province. The effect is greatly enhanced when viewed along with some new picture age music and a suitable selection of UP plane endpoint in choice herbal cupcakes. space Out here, they are available just zz - zo about everywhere. A typical model is observer Y yo(zz - zo) theWhispering Sands model#AXP - Y = yo + yy 234992-B, available through Chris- topher Paul atAlpha Centari . zozo zo The physics that's involved gets yo yy ground level suprisingly complex. When initially turned over, bunches of the two sands will drop and create an undulating foreground. After a while, a nearly complete Fig. 5 ± The 2-point perspective X and Y transforms. but crucially imperfect row of air bubbles will form, supporting almost One additional source for those withCAS before RAS refresh and a all of the remaining sand. All the LocalTalk connectors are the AESP speed of150 nanoseconds. individual bubbles then "modulate" people.MDIdeas has some true stereo If you must use LocalTalk with the the falling sand into extremely fine sound add-ons for the IIgs. LaserWriter on the IIgs (it is ridicu- and slowly moving streams, creating SCRG sells adaptors that let you lously faster not to), be sure to use all the random mesas and buttes. use an Apple Joystick with a II+, the launcher after the chooser, and be The only thing wrong with the along with similar goodies. sure you can print to slot seven. Any beast is that there is no simple way to Color laser toner is available from reset or power down will disconnect save an image once it is created. So, eitherMichelin or Toner Technology . the LocalTalk firmware. what I would like to do is find some But I have been most disappointed Two of the many products that way to use AppleWriter to do the with any and all color toners that I convertPFS files to Appleworks are same thing. Possibly helped along by have tried to date. They look awful available fromJim Luther and from making full use of PostScript. and the pricing is outrageous. Kroy Sun Microsystems. So, for this month's first contest, Kolor is often a better choice. just show me any old way at all to The recommendedRAM expansion Any New Hi-tech Toys? computer model what is going on chips for the IIgs are the256K bit It is a cross between an ant farm here. If you can work AppleWriter dynamic parts organized as256K x 1 , and an hourglass, and consists of in, then so much the better. There'll be an Incredible Secret Money Ma- chine for the top twenty entries, and an all expense paid(FOB Thatcher, AZ) tinaja quest to the very best. Give me an Update On Toner Cartridge Refilling As we've seen many times before, those toner cartridges used on the Canon CX and SX laser printers are easily refillable. And the latest of third-party toner refills are now both super black and super cheap. Which completely turns around both laser printing economics and appearance. Fig. 4 ± Adding a filling hole to a CX toner cartridge. For instance, a stockCX cartridge refill currently costs as much as $125 38.3 April, 1988 and is only good for2500 copies. supply tank. Seal this hole. Add a Now, not even the most die hard of That is a nickel per page, just for label to your cartridge that keeps cynics would conclude that a com- toner. On the other hand, if you buy track of its history. Be sure to use the pany would purposely implant some an empty but not previously refilled little green tool to clean the corona abrasive into their toner to grind up cartridge out of your sunday paper, it wire in the cartridge. Then run off their own drums, just to deprive their will cost you$5 in large towns and fifty copies to make sure everything own end users of the highest possible $10 in a smaller one. is working properly. image quality at the lowest cost. With care, you can refill this used Finally, you also have to replace On the other hand, it is painfully cartridge five times with toner refills the wiper pad over on the fusion obvious that several rather simple priced as little as$7.50 each. Which roller assembly. Carve the old white changes in toner chemistry can be costs out to only1/3 rd of a cent per pad out of its black holder with a made that could dramatically reduce page. That's less than jiffy printing, screwdriver and drop a new one in theSX drum scratching. and only1/15 th the cost of always place. Secure it with white glue. So, for right now, theSX cartridge doing things "their way". Yes, you can also refill the copier per-page toner costs are substantially In fact, there is no point in ever cartridges, but this takes a different higher thanCX toner costs. They also buying a newCX cartridge, since the toner using a slightly different tech- are likely to stay that way, at least for cartridge does not even start to get nique. But, under no circumstances a while. More on this as the drama properly conditioned until3000 cop- should you try to use laser printer unfolds. ies or so, and since you might as well toner in a copier or vice versa. The have somebody else use up all that two toners are totally different. Tell me all About grayish original toner for you. The newSX cartridges can also be Perspective Transformations The best source for refill supplies refilled, but there are problems at As you found out last month, I've that I have found is Arlin Shepard present. The drum here is much been having a lot of fun lately with over atLazer Products in Colorado. smaller and much less scratch re- all of my new perspective drawing And an independent toner testing and sistant. Very often, theSX drum will routines. These can let a PostScript evaluation service is now available scratch even before a first refill is language printer and AppleWriter by way ofThompson and Thompson . even possible. produce some absolutely stunning There are lots of other suppliers, so However; if you take a brand new graphic images. Unlike all of the far call me if you want to know more SX cartridge and remove all of the more expensive routes to perspective about any of them. factory toner from it, and then add a drawing, my routines will automat- There are two stages to the toner suitable drum lubricant and a third ically handle any true perspective refilling. You first have to modify the party refill toner, you can easily get lettering (!) of any style in any font, cartridge once. After modifying, you several refills without any scratches. along with precise perspective circles can easily refill as many times as the drum condition lets you. Figures three and four show you % drawapple - draws a "street legal" apple. Enter with the currentpoint how to prepare yourCX cartridge for % set and apple size on stack reloading. You first melt a1/4 inch hole in the spent toner holding tank as shown, by using a small soldering iron. Then you melt a1/2 inch hole in /apple1 {/Symbol findfont [1 0 0 1 0 0] makefont setfont} def the fresh toner supply tank. The fresh tank is reached by snapping the large /apple1- {/Symbol findfont [-1 0 0 1 0 0] makefont setfont} def cardboard label off from the ends. A very aggressive tape is then used to seal these holes. The metallized /drawapple {gsave 1.32 mul dup scale gsave 0.04 setlinewidth 1 setlinecap tape sometimes used for write protect tabs works fine. It is super important currentpoint .28 add translate 0 0 moveto 0 .05 -.05 .12 -.10 .16 rcurveto to get a permanant seal, for any toner dumped wholesale into your printer stroke grestore currentpoint -.36 -.36 rmoveto .72 0 rlineto 0 .665 rlineto can cause permanant damage. To refill your modified cartridge, -.18 0 rlineto -.18 -.06 rlineto -.18 +.06 rlineto -.18 0 rlineto closepath remove the bottom tape and dump the spent toner out. Do this outside, pre- clip 0.35 sub exch .41 sub exch moveto apple1 (\360) show currentpoint ferably in a slight breeze. Tap the "notches" along the tank as you do exch 0.03 add exch moveto apple1- (\360) show grestore} def this to release any caked toner. Re- seal this hole after emptying. Next, remove the fresh supply tank % demo - remove before use . . . filling hole, and use a plastic funnel Fig. 6 ± PostScript code for a "street legal" apple. to dump a bottle of toner into the 133 25 {dup mul exch dup mul add 1.0 exch sub} setscreen 320 45038.4

moveto 0.99 setgray 470 drawapple 0 setgray 475 175 moveto 100

drawapple gsave 150 80 translate 10{0 0 moveto 30 drawapple 40 0 ASK THE GURU

Fig. 7 ± Another (yawn) AppleWriter text file. and arcs. You can now even do an representation on a sheet of paper or and your picture plane, and capital Y animated flyby, changing both your your computer's display screen. the up and down distance on the position and viewpoint with a very Let's assume you had a giant plane paper and the plane. As figures six few keystrokes. Individual objects of glass lying between you and your and seven show us, two simple and can also all beseperately rotated. subject. We'll call this pane of glass similar traingles are all that is needed What I would like to do here is ourpicture plane . We will start an to transform your perspective image share with you all of the fundamental origin at the center bottom of the to the final page. perspective transformations. Chances picture plane. We'll usexx for the All that my routines or your new are you can apply all these to most back and forth distance with right computer programs have to do is any old graphics program on most positive. We'll then makeyy the solve these similar triangles for each any computer, even using plain old distance into the picture, with the and every endpoint of each and every HIRES out of Applesloth. And it sure farther from you being more positive. line to be drawn. While rather painful is fascinating to fly over a building And, we will usezz for up and down for a people, this is totally and utterly with nothing but a couple of key- with positive up. trivial for a computer. strokes. Only simple high school Next, we will assume you will be Give me a call if you do need any math is involved. standing pretty far out in front of the more input on this. The perspective most people use picture plane. We can callxo , yo , and most often is known as two point zo the distance from the plane to your What is this month's perspective in which all vertical lines eyeball. In general, for the two point PostScript utility? stay that way. The simpler one point perspective to work, you will want to We will have a pair of them this perspective that you would get while stand fairly far back, using a rather month. The first, over in figure six, looking down a long hallway is just a largeyo . Otherwise, your perspective shows you how you might draw a special and centered case of this two illusion might distort and fail. Many "street legal" apple that a student of point perspective. times, you might want yourzo to mine needed for some of the shipping At any rate, figures four and five match a standard eyeball height, par- crates in her orchard. show you both of the transformations ticularly on architectural drawings. This is a good example of how you as needed to convert a three dimen- We'll call capitalX the back and can modify existing characters and sional object into a two dimensional forth distance on both the final paper symbols to create new ones. In this 38.5 April, 1988 case, we "unbit" the apple by printing it backwards on top of itself, and % Copyright c 1988 by Don Lancaster & Synergetics, Box 809, Thatcher used a clipping boundary to get rid of % AZ, 85552, (602) 428-4073. All rights reserved. Personal use the leaf. A new stem was then added % permitted so long as this header remains present and intact. by using a single cubic spline. % This illustration requires my two-point perspective utilities. While this should be a totally and completely legal image, I would still -90 rotate -792 0 translate 250 550 translate 0 setlinewidth /xo 00 hesitate to use it for any purpose that def /yo 700 def /zo 400 def /objrot 25 def was even vaguely related to comput- /brickhi 2.5 def /brickwide 8 def /numbricksx 67.5 def /numbricksy 34.5 ers in any manner. def /numbricksz 108 def This reverse printing stunt is also useful to turn other images around, /bldz numbricksz brickhi mul def /bldx numbricksx brickwide mul def /bldy especially the pointing hands of the numbricksy brickwide mul def Zapf Dingbat font. Details are left as % main building outline an excercise for the student. 0 0 0 pm bldx bldy bldz pbox One gotcha: The "bitten" apple is % sunken roof available asSymbol code \ 360 on the /insetbaseshade 0.9 def /insetwallshade 1 def /pptwide 10 def /ppthigh 10 LaserWriters, but may not be present def pptwide dup bldz prm bldx pptwide 2 mul sub bldy pptwide 2 mul sub in non-Apple firmware. So much for ppthigh xyinset device independence. Figure seven is a little something I % add bricks to the walls quickly threw together out of Apple- save /brickhold exch def 0 0 0 pm numbricksx numbricksz 4 sub xzbrickwall Writer. This particular building was 0 0 0 pm numbricksy numbricksz 4 sub yzbrickwall clear brickhold restore chosen because it gets fiendishly % the floor slab difficult to nearly impossible to draw 0 0 0 pm 14 brickhi mul zrm bldx 2 brickhi mul xzrect 0 0 0 pm 14 brickhi when you use eitherIllustrator or mul zrm bldy 2 brickhi mul yzrect Cricket Draw, yet it is almost trivial % columns when done using a suprisingly short 0 0 0 pm 16 brickwide mul 0.5 brickwide neg mul 0 prm 4 {2.5 brickwide mul AppleWriter text file. Yes, this will 0.5 brickwide mul bldz pbox 16.5 brickwide mul xrm} repeat 0 0 0 pm 0.5 translate to other systems. brickwide neg mul 16 brickwide mul 0 prm 2 {0.5 brickwide mul 2.5 brickwide Some of the key code involved is mul bldz pbox 16.5 brickwide mul yrm} repeat 0 0 0 pm 0.5 brickwide mul shown in figure eight. Write or call neg dup 0 prm 2.5 brickwide mul bldz xzrect 0 0 0 pm 0.5 brickwide mul for a printed listing of all the core neg dup 0 prm 2.5 brickwide mul bldz yzrect routines. You can also get this code ready-to-run in either my PostScript % topwall /aa {brickwide 0.5 mul} def /bb {brickwide 2.5 mul} def /cc {brickwide 14 Show and Tell or my PostScript Per- mul} def newpath 0 0 0 pm gsave bldz zrm bldx xrd bldy yrd bldx neg xrd spective Drawing packages. closepath 1 setgray stroke grestore 0 0 0 pm aa neg aa neg bldz prm 4{bb Note particularly that each and xrd aa yrd cc xrd aa neg yrd} repeat bb xrd 2{bb yrd aa neg xrd cc yrd aa every brick is shown individually in xrd} repeat bb yrd 4{bb neg xrd aa neg yrd cc neg xrd aa yrd} repeat bb neg its true perspective, that all of the xrd 2{bb neg yrd aa xrd cc neg yrd aa neg xrd} repeat closepath stroke lettering is also correctly shown in full and true perspective, and that the % windows entire building can be rotated over a 4 25 10 25 4 68 10 68 20.5 68 26.5 68 37 68 43 68 37 25 43 25 53.5 very wide range just by changing a 68 59.5 68 11 {xzdhwindow} repeat 26.5 25 20.5 25 10 25 4 25 26.5 68 few keystrokes. 20.5 68 10 68 4 68 8 {yzdhwindow} repeat Yes, as the building rotates, all of % shipping door the "insets" and "outsets" will auto- 20.5 16 xzshippingdoor 54 16 xzshippingdoor matically take care of showing only % chimney those parts that will be seen correctly 50 26 bldz ppthigh sub brickchimney for that view. And, yes, I do have lots more per- % some lettering spective images like this one. Also a /Helvetica-Bold findfont [9.5 0 0 7 0 0] makefont setfont few that include circles, arches, and /pixelproc {0 3.6 moveto 0.4 0 (SHIPPING) ashow} def /pixelprocwidth 50 even arcs in true perspective. Even def /pixelprocheight 10 def 0 0 0 pm 21.6 brickwide mul 0.2 41.2 brickhi some fireplace logs. Write or call if mul prm pixellineremap you need more info. /pixelproc {0 3.6 moveto 0.4 0 (RECEIVING) ashow} def /pixelprocwidth 70 As a second contest that pretty def 0 0 0 pm 54.8 brickwide mul 0.2 41.2 brickhi mul prm pixellineremap near anyone can enter, just count the showpage bricks used in the building. We'll Fig. 8 ± PostScript Language code for the old building. have all the usual stuff as prizes. Don't forget to put the cat out. 38.6 Don Lancaster's PostScript border builder IIgs toolset dependencies Getting started with APW ASK THE GURU Transparent laser printing May, 1988 Stock market price records

erry Cline and his great crew and the12 th. Cost for the two-day for a long time over a very slow fire. at theAZ Apple user group are show and for all the seminars and Indian style. now putting together a super courses, is around$25 . For more de- Yes, a post-showtinaja quest or J whiz bang regional computing tails, give Jim Ransom a call at (602) two could be arranged. Call me for show and seminar. I will be there 276-9332. more info on this. hosting a PostScript mini-course or In fact, virtually every Apple IIc, Apple has a new video out. You two for you, while Bee will be show- IIe and IIgs machine and assembly can borrow a free copy from your ing and telling with lots of hands-on language programming author of note local user group if you do faithfully stuff for all of you beginning desktop just may be there, since Randy Hyde promise to never ever return it. publishers. is now coordinating that Western De- Unlike most of Apple's previously Other galaxy-famous dignitaries sign Center "Orca roast" for the very outstanding videos, this one is right will include both Roger Wagener and same weekend. The object here is to down there with They Saved Hitler's Randy Hyde on machine language, replace ORCA/M with a logical, Brain and Godzilla versus the Night and Greg Schaeffer on telecommun- useful, and non-quirky development Nurses. The high point here is where ications, and possibly even several system for the IIc, IIe, IIgs, and the you stare at a sign that says "New name brand Apple Computer employ- upcoming-censored- . For more England Life" for half an hour. I'd ees of note. details on this, give Randy a call at guess speeches in Boston are all sup- You are specifically invited to (714) 735-7714. posed to be dull. Oh well . . . attend. It will be at the Safari Hotel All of them New Mexico orcas is I'd say "nice try", only it isn't. in Scottsdale, Arizona on June11 th really tough, unless you cook them Apple has also introduced a new version ofUNIX for the Mac called to use these tools must ✔ = required A/UX. The language is a mere 50 this tool already be installed ● = recommended megabytes in length and easily fits on seventy3-1/2 inch disk sides. The pocket reference card that goes with ($01) ($02) ($03) ($04) ($05) ($06) ($07) ($08) ($09) ($10) ($11) ($12) ($13) ($14) ($15) ($17) ($18) ($19) ($0F) ($0A) ($0B) ($0E) ($1B) ($0C) ($1C) it costs$650 , and is tersely crammed into fourteen oversize volumes of a mere6000 total pages. Apple has just announced a new CD/ROM drive, that is priced at 1. Tool locator 2. Memory manager 3. Misc. Tools 4. QuickDraw II 5. Desk Manager 6. Event Manager 7. Scheduler 8. Sound Manager 9. Desktop Bus 10. SANE Toolset 11. Integer Math 12. Text Tools 13. 14. Window Mgr. 15. Menu Manager 16. Control Manager 17. System Loader 18. Quickdraw Aux 19. Print Manager 20. Line Edit 21. Dialog Manager 22. Scrap Manager 23. Standard Files 24. 25. Note Synthesizer 26. 27. Font Manager 28. List Manager $1200. Probably the first disks you 1. Tool locator ($01) might expect will be PostScript fonts 2. Memory manager($02) ✔ from Adobe, the writer's tools from 3. Misc. Tools ($03) ✔✔ ✔ 4. QuickDraw II ($04) ✔✔✔ Microsoft, a few major library refer- 5. Desk Manager ($05) ✔✔✔✔ ✔✔ ✔ ✔✔✔ ence works includingBooks in Print , 6. Event Manager ($06) ✔✔✔✔✔ ✔ clip art for desktop publishing, some 7. Scheduler ($07) ✔✔✔ 8. Sound Manager ($08) ✔✔✔ outstanding utilities supplied by the 9. Desktop Bus ($09) ✔ BMUG user group, and perhaps a 10. SANE Toolset ($0A) ✔✔ 11. Integer Math ($0B) ✔ motley collection or two of the worst 12. Text Tools ($0C) ✔ and poorest of the burgeoning Hyper- 13. card stackware. 14. Window Mgr. ($0E) ✔✔✔✔ ✔● ✔ 15. Menu Manager ($0F) ✔✔✔✔ ✔ ●● I am not sure just yet, but this 16. Control Manager ($10) ✔✔✔✔ ✔ ✔ ● should work on a IIe or IIgs having a 17. System Loader ($11) ✔✔✔ SCSI interface card installed. Stay 18. Quickdraw Aux ($12) ✔✔✔✔ 19. Print Manager ($13) ✔✔✔✔✔✔✔✔✔✔✔ ✔ ✔ tuned for more details. 20. Line Edit ($14) ✔✔✔✔ ✔ ✔ It will require some time before 21. Dialog Manager ($15) ✔✔✔✔ ✔ ✔✔✔ ✔ any genuinely usefulCD/ROM disks 22. Scrap Manager ($17) ✔✔ 23. Standard Files ($18) ✔✔✔✔ ✔ ✔✔✔✔ ✔ become widely distributed at sane 24. prices. A national phone directory 25. Note Synthesizer ($19) ✔✔ ✔ would sure be nice, as would a com- 26. 27. Font Manager ($1B) ✔✔●●● ✔ ●●● ●●● plete history of all stock prices. What 28. List Manager ($1C) ✔✔✔✔ ✔ ✔● ✔ I am ultimately waiting for, though, are theUSGS topo maps on disk. This Fig. 1 ± Apple IIgs toolbox interdependencies. one may take a while. So will the printer. Sigh. 39.1 May, 1988

Expect some sort of a super-secret Writer II per-page toner costs could NEC machine toner costs around 1.2 IIgs upgrade "real soon now" with a kill the new machines in their tracks. cents per page, and this can be cut in higher clock speed and possibly an A knowledgeable LaserWriter Plus half or less by the usual third-party in- creased vertical screen resolution. owner can do his own toner refills for techniques. This compares with a I still haven't yet received my new as little as0.32 cents per page. The nickel per page "their way" toner LaserWriterNTX . But, based upon some quickie tests on a dealer demo, ; CS.DEMO.1 An APW example of how to start up various I do have some predictions on the ; toolsets, get quickdraw in gear, clear the ; 640 super HIRES screen to a selected color ultimate outcome: First and foremost, ; and hang the machine for viewing. this is a great machine that, except KEEP CSD.1 : save final copies for some serious problems, just might MAIN START ; set a new standard for low end laser CASE ON ; be case sensitive printers for several years to come. MLOAD /libraries/ainclude/m16.locator The apparent new LaserWriter II MLOAD /libraries/ainclude/m16.memory problems are these: MLOAD /libraries/ainclude/m16.misctool MLOAD /libraries/ainclude/m16.event (1) Per page toner costs can be as _TLStartUP ; start the tool locator much asfifteen times higher than on pla ; the older LaserWriters, and all the sta MYID ; and save the user i.d. images are not all that much blacker _MMStartUp ; start the memory manager than those you get from the latest of _MTStartUp ; start the misc. tools third-party toner refills for the older lda #$23 ; begin memory manager CX machines; pha ; (2) You still will have to go to lda #$00 ; initializes event pha ; Hewlett-Packard for manuals, for lda #$00 ; queue parts and for service info. Apple ap- pha ; pears to be payingH-P a $50 rebate lda #$00 ; mouseclamp pha ; for each LaserWriter sold, since the lda #$00 ; machine is much more useful when pha ; you have the outstandingH-P manual lda #$00 ; pha ; #33440-90904 on hand. lda MYID ; user i.d. again (3) The LocalTalk network will pha ; horrendously slow theNTX "click to _EMStartup ; clunk" time for many jobs down so MDROP /libraries/ainclude/m16.locator badly that theNT without LocalTalk MLOAD /libraries/ainclude/m16.quickdraw is often ridiculously faster than the lda #$20 ; start quickdraw NTX with LocalTalk. This is espec- pha ; lda #$80 ; master SCB ially a problem on the IIgs; pha ; (4) The suggested list prices are an lda #$00 ; use full screen outright joke that nobody could pos- pha ; lda MYID ; and current i.d. sibly treat seriously; and finally . . . pha ; (5) The hard disk usage and its _QDStartUp ; and make the call support is both very poorly done and lda #$00 ; set the color table to zero excessively restrictive. At the very pha ; least, the disk should double as a pea ctab0|-16 ; high address of color table pea ctab0 ; low address of color table network server, and as a job printer _SetColorTable ; that is possibly even as powerful as lda #$80 ; set screen control bytes AppleWriter'sWPL . A "snapshot" pha ; ability for final bitmaps would be _SetAllSCBs ; for all 640 resolution even handier. -GrafOn ; turn on super HIRES screen Meanwhile,NEC has come out lda #$5555 ; clear the screen to red with a newLC-790 PostScript "laser- pha ; less" laser printer using aLED strip _ClearScreen ; array that seems to be garnering an Hang JML Hang ; hang for viewing awful lot of user helpline support. MYID DC I’0’ ; user ID goes in here Eveyone who has gotten even re- ctab0 dc I2’$0000,$000f,$0ff0,$0fff’ ;standard color table motely near this machine has been dc I2’$0000,$0f00,$00f0,$0fff’ ; dc I2’$0000,$000f,$0ff0,$0fff’ ; wildly enthuasastic. And, yes, those dc I2’$0000,$0f00,$00f0,$0fff’ ; NEC toner cartridges are both re- fillable and reconditionable. Either END factory or third-party. Fig. 2 ± APW example shows how to start up toolsets. Actually, those very high Laser- 39.2 ASK THE GURU costs for the LaserWriter II. Which is % Copyright c 1988 by Don Lancaster & Synergetics, Box 809, Thatcher AZ, 85552, over a15:1 cost penalty. % (602) 428-4073. All rights reserved. Personal, non-commercial use permitted so long as It is absolutely, totally, and utterly % this header remains both present and intact. Work in Progress disk costs $39.50. inexcusable to not offer any refillable % predefine the following, with or without a dictionary: mainbproc, cornerbproc, auxbproc, LaserWriterSX cartridges as factory % maindeltax maindeltay auxdeltax, auxdeltay, cornerdeltax, cornerdeltay, breductionfactor or third-party options. Needless to % enter with -bordleft- -bordwidth- -bordtop- -bordheight- -bordthick- drawsymmetricborder say, stay tuned for more on all this. /drawsymmetricborder { /approxscale exch def /bordheight exch def /bordtop exch def Steve Ciarcia has started up a new /bordwidth exch def /bordleft exch def /bordwidth bordwidth breductionfactor 2 mul approxscale mul sub def /bordheight bordheight breductionfactor 2 mul approxscale mul sub def /bordtop hacker's magazine known as Circuit bordtop breductionfactor approxscale mul sub def /bordleft bordleft breductionfactor Cellar Ink that does look like a real approxscale mul add def winner. And, as a reminder, if you % this calculates the approximate width needed are into electronic hardware at all, be bordwidth approxscale div cornerdeltax sub cornerdeltay sub maindeltax sub maindeltax sure to check into my Hardware auxdeltax add div /trialfitx exch def Hacker sister column to this one that % this adjusts the scale for an almost exact fit is going great guns over in Radio trialfitx ceiling cvi /numx exch def trialfitx dup ceiling div approxscale mul /exactxscale exch def Electronics magazine. % this adjusts the xscale for a main more exacter fit Let's see. Which advetorial should bordwidth cornerdeltax cornerdeltay add maindeltax numx 1 add mul add auxdeltax numx I get you to ignore this month? How mul add exactxscale mul div exactxscale mul /exactxscale exch def about my newPostScript language % this calculates the approximate height needed bordheight perspective drawing package, and my approxscale div cornerdeltay sub cornerdeltax sub maindeltax sub maindeltay auxdeltay add PostScript Show & Tell, or my com- div /trialfity exch def plete set ofAsk the Guru reprints? % this adjusts the scale for an almost exact fit Write or call if you need more info trialfity ceiling cvi /numy exch def trialfity dup ceiling div approxscale mul /exactyscale exch def on these or any others. % this adjusts the yscale for an main more exacter fit The big stupendous breakthrough bordheight cornerdeltay cornerdeltax add maindeltay numy 1 add mul add auxdeltay numy deal this month is an automatic and mul add exactyscale mul div exactyscale mul /exactyscale exch def insanely intelligent PostScript border % do the mainproc and auxproc all the way around machine. But first . . . gsave bordleft cornerdeltax maindeltax 2 div add exactxscale mul add bordtop translate gsave numx 1 add {0 0 gsave exactxscale exactyscale scale mainbproc grestore maindeltax What is the IIgs auxdeltax add exactxscale mul 0 translate} repeat grestore maindeltax 2 div auxdeltax 2 div programmer's dilemma? add exactxscale mul 0 translate gsave numx {0 0 gsave exactxscale exactyscale scale auxbproc Here is something that I've been grestore maindeltax auxdeltax add exactxscale mul 0 translate} repeat grestore grestore % top kicking around with my students and with some user groups. I would also gsave bordleft bordwidth add bordtop cornerdeltay maindeltay 2 div add exactyscale mul sub translate gsave numy 1 add {0 0 gsave exactyscale exactxscale scale -90 rotate mainbproc like some input from you on this. grestore 0 maindeltay auxdeltay add exactyscale mul neg translate} repeat grestore 0 The IIgs may have thrown out the maindeltay 2 div auxdeltay 2 div add neg exactyscale mul translate gsave numy {0 0 gsave baby with the washwater. exactyscale exactxscale scale -90 rotate auxbproc grestore 0 maindeltay auxdeltay add exactyscale mul neg translate} repeat grestore grestore % right On the Apple II and II+, any old seventh grader could hack around gsave bordleft cornerdeltax maindeltax 2 div add exactxscale mul add bordtop bordheight sub translate gsave numx 1 add {0 0 gsave exactxscale exactyscale scale 180 rotate mainbproc long enough till they got a something grestore maindeltax auxdeltax add exactxscale mul 0 translate} repeat grestore maindeltax 2 that actually seemed to work. He div auxdeltax 2 div add exactxscale mul 0 translate gsave numx {0 0 gsave exactxscale could jot it down on a napkin and exactyscale scale 180 rotate auxbproc grestore maindeltax auxdeltax add exactxscale mul 0 translate} repeat grestore grestore % bottom share it with others. This would go on building and bootstraping his way gsave bordleft bordtop cornerdeltay maindeltay 2 div add exactyscale mul sub translate gsave numy 1 add {0 0 gsave exactyscale exactxscale scale 90 rotate mainbproc grestore along, until he was a millionare CEO 0 maindeltay auxdeltay add exactyscale mul neg translate} repeat grestore 0 maindeltay 2 head of his own software firm. div auxdeltay 2 div add neg exactyscale mul translate gsave numy {0 0 gsave exactyscale The IIgs did offer us "new" and exactxscale scale 90 rotate auxbproc grestore 0 maindeltay auxdeltay add exactyscale mul neg translate} repeat grestore grestore % left "more powerful" ways of doing some % and the corners all go on last ... things. Included was an incredibly gsave bordleft bordtop translate exactxscale exactyscale scale 0 0 cornerbproc complex toolbox and the ability to grestore % upper left use "icons". We can now do the "big gsave bordleft bordwidth add bordtop translate exactxscale exactyscale scale -90 rotate machine" things that we were never 0 0 cornerbproc grestore % upper right able to do before. With outstanding gsave bordleft bordwidth add bordtop bordheight sub translate exactxscale exactyscale sound and superb graphics. scale 180 rotate 0 0 cornerbproc grestore % lower right But only at a heinous price. First, gsave bordleft bordtop bordheight sub translate exactxscale exactyscale scale 90 rotate 0 0 it seems that the IIgs usually ends up cornerbproc grestore % lower left muchslower than the IIe, because of % report squashticity to host the layer-upon-layer "onion effect" of ( The current squashticity factor is ) print exactyscale exactxscale div == flush} def all the complex relocatable software Fig. 3 ± The bountifully bodacious better border builder. involved. We have such absurdities as taking130 microseconds in the 39.3 May, 1988 fast mode on a IIgs to find out if a outstanding machine language code and sound states, and usually retur- port character is available to be read on the II+ or IIe. On the IIgs, two of ning a bunch of goodies to you via ± compared to only6 on the IIe. And my best students ever were unable to the stack. none of the new gee-whiz IIgs word produce a green hexagon on the IIgs The stuff shoved onto or off of the processors can even think of holding screen in an entire semester's work. stack can be values, data, or pointers a candle to good old AppleWriter on Very simply,APW sucks and has to tables or needed address locations. a IIe, when it comes to no-nonsense to go if the IIgs is to survive. We ab- The rules are different for each and operating speed and raw power. solutely must have some new, very every of the hundreds of tools. The But worst of all is the "us versus simple and highly intuitive ways for full details appear in the two volume them" effect. To use the IIgs "their beginners to generate code that is Apple IIgs Toolbox Reference Man- way", you first have to run out and both useful and rewarding. uals, which is now at long last avail- buy several hundred dollars worth of Are you an us or a them? Has able in its final form fromAPDA . APW Apple Programmer's Workshop Apple gilded the goose, and killed it APW does include some powerful software and those thirteen volumes in the process? Please let me know macros that can simplify making a needed to support it. And you have to all your thoughts on this. The world toolbox call. But you still will have spend well over a year in time and an awaits your comments. to carefully set up the stack before incredible amount of discipline and making this call, following the rules frustration to be able to master the Tell me About the IIgs for that tool. APW environment. Toolset Interdependencies What gets real messy fast is that Sadly, your final results cannot be The key to all of the "big machine" some tools need other tools already passed on to just anyone. You can capabilities of the IIgs are the various present or they will not work. These only talk to people who know, use, tools as contained in the three dozen are calledtoolbox interdependencies , and understandAPW . All seven of or so toolkits. Several of these are and many of them are listed in figure them. There are no machine language ROM based, while others are loaded one. Before a tool or toolbox can be listings for any relocatable "big ma- off disk only when and as needed. used, all of the precursor tools must chine" code. Only a highly complex A tool is used by making a toolbox already be in place and ready to use. file structure is present. A structure call. Basically what you do is shove Thus, you have to be very careful that is quite hard to either list or some stuff onto your stack, load the about when and how you select a tool understand, unless worked with from wideX register with the tool number or a toobox, or some highly ungood insideAPW itself. and the toolkit number, and then do a things will happen. What in effect has happened is that long subroutine call by asking for a Very interestingly, tool14 requires a IIgs fence has been built, with users JSL E1 0000. The tool then does its tool16 to be installed first. And ± on one side, and the programmers on thing, often changing the graphics you guessed it ± tool16 requires tool the other. And that fence is very hard to climb. Impossible for some. This, of course, is the exact anti- thesis of what made the Apple II and II+ so great ± anyone could stumble into anything. And they did. That is precisely what made the Apple such % requires border machine of figure three a stupendously innovative product in the first place. Now, I will freely admit that the IIgs "us versus them" fence is not /mainbproc {gsave translate -.500 0 moveto 0 setlinecap nearly as horrendous as the one on the Mac. On the Mac, their fence is 0.533 setlinewidth 0 setgray 1 0 rlineto stroke grestore} def now electrified, strafed, and contin- uously patrolled byAIDS -infected pit bulls. Mean mothers. /auxbproc {gsave translate -0.5 dup moveto 1 0 rlineto 0 1 It appears that far and away the best IIgs code will be written the "old rlineto -1 0 rlineto closepath gsave 0.99 setgray fill way" with custom and hand-crafted fixed position, listable, code modules grestore 0.1 setlinewidth stroke grestore} def that either will completely ignore the toolbox, or else use only the genuine- ly useful parts of acceptable speeds. /cornerbproc {gsave translate 0.5 -0.5 moveto -1.2 0 rlineto The centralmost fatal flaw in the IIgs is the monumental amount of 0 1.2 rlineto 1.2 0 rlineto closepath gsave 0.99 setgray fill Fig. 4 ± A repeating box border. frustration that is involved in serious program development. I have seen grestore 0.1 setlinewidth stroke grestore} def rank beginners generate absolutely 39.4 /auxdeltax 1 def

/auxdeltay 1 def

/maindeltax06def ASK THE GURU

14 to be installed first. The rule is additional tech info on most Apple up onAdobe stock. As we've seen in this: The window(14) , control (16) and third party products. Note that previous columns, nearly any idiot and menu manager(15) should be this is a seperate and independent could have quintupled his money on considered as one unit and should be organization that anyone can join, this in the last two years, while a started in the order just shown. and is not related in any way to the knowledgeable (and admittedly very These dependencies are apparently Apple registered developer and the lucky) investor could have gotten a a "moving target", since newer firm- certified developer programs. 3000 percent return. ware versions and changes in APW My current recommendation on are continually being made. Where can I Get Stock Adobe is to buy at24 and sell at 37 . Price Histories? At this writing, several of the OTC Show me a Simple APW Obviously from the daily quotes in stocks that have not recovered from And Toolset Example The Wall Street Journal or else the last October's lateral arabesque do You've got to be kidding. There weekly ones inBarrons . In fact, out includeCircle Express , Carver , and are no simpleAPW toolset examples. of the387 plus magazines and other Siliconix. Check them out. At any rate, figure two shows you stuff that I subscribe to, the Wall Just be sure to remember that this how to use theAPW macros to start Street Journal is my third favorite. is free advice, and worth every cent up a bunch of the various toolsets, Right after theWhole Earth Review , of it. After all, look at me. I started get quickdraw in gear, next clear the and, of course, good old numero uno out with nothing, and I still have screen to a favorite color, and then MAD magazine. most of it left. hang up the machine so that you can Stock histories are also available view your handiwork. onCompuserve , as well as through Can you Laser Print Onto This can be the starting point for a all the various software packages Transparent Materials? program that really does something offered by leading brokers. You might want to laser print onto useful. Hint: the next step is to open But far and away my most useful transparent material for an overhead some windows. sources of stock price histories are transparency, for a printed circuit or I am personally getting into APW those super cheap, ultra scungy, and dialplate art master, for any "repair" in a big sort of way, so let me know downright obscureQuote NY , Quote stick-on patches, for a store or auto what you want to see in the way of American, and Quote OTC . These are window decal, or simply to get a high additional toolbox secrets. available fromHarry Lankford for gloss final result. Once againAPDA , short for the around$7 or so each. There are two popular transparent Apple Programmers and Developer's About the only complaint I have graphics art materials, acetate and Association, is where you go to get onQuote OTC is that it never picked polyester. Polyester sometimes gets called by its DuPont "mylar" trade name. These are the same. Available thicknesses vary all over the lot, but25 mils (for self-stick) or % requires border machine of figure three mils (for stand-alone) are often a /mainbproc {gsave translate 0.37 dup scale 0 0 moveto good choice. Both clear and matte -1 3 1 3 0 0 curveto stroke grestore} def finishes are available In general, toner sticks beautifully /auxbproc {gsave translate 0.37 dup scale -0.5 0 moveto 0.3 -0.6 0.7 -0.6 1 0 rcurveto stroke grestore} def to either material, giving very dense and very solid blacks. /cornerbproc {gsave translate 0.37 dup scale 0 -0.8 moveto Acetate is cheap but has very poor 0.4 0.15 0.1 0.6 0 0.8 rcurveto -3.8 1.8 -1.8 3.8 0 0 rcurveto dimensional stability and melts well 0.2 -0.1 0.65 -0.4 0.8 0 rcurveto stroke grestore} def below the fusion roller temperature. /maindeltax 0.37 def You shouldnever feed unsupported /maindeltay 0.37 def acetate to a laser printer as it will /auxdeltax 0 def certainly glop up the works. Some /auxdeltay 0 def self-stick acetates can be run through /cornerdeltax 0.11 def a laser printer if the support backing /cornerdeltay 0.11 def is thick enough and stable enough. /breductionfactor 0.84 def Ex- treme caution is required here. 0 setlinewidth Polyester does cost more, but it 50 400 500 400 70 drawsymmetricborder has excellent dimensional stability. It showpage will safely withstand the fusion roller temperatures, even when it isn't pro- Fig. 5 ± Scroll border for certificates and awards. perly supported. Thus, the polyester films will almost always be your far better choice. A few sources. Those James River people now have free sample packets 39.5 May, 1988 of their newProTech polyester over- it, and then use this to transfer the shown is particularly useful for any head transparency material available toner directly to a printed circuit certificates and awards. After you for you.Xerox has the same stuff at board for etching. The toner would have defined a few borderprocs of insane prices, but this is sometimes serve as the actual etch resist. your own, you might want to place offered as a loss leader byQuill . This would greatly simplify the them into a PostScript dictionary, That greatPaper Plus chain of printed circuit production process, where they can called out by a single discount paper stores also has a wide especially for students and hackers. literal name. variety of transparent laser materials So far, some of the materials I have Some intelligent adjustments have available. Be sure to check them out. tried have failed miserably, while to be made internally by the magic Dick Blick does carry both clear there have been a few near misses. border machine. On some borders, acetate and polyester in both regular A properly fused toner image does particularly those with only a few and in self-stick styles. Be sure to ask make an excellent etch resist. The elements on each side, the border- for their sign painting and silk screen problem is to get the toner from the procs might end up slightly squashed catalog, as well as for their regular laser printer drum onto the solid or stretched out. The border machine art supplies catalog. printed circuit board material reliably reports asquashticity factor back to Pretty near any old blueprint or and without any distortion. the host. The optimum squashticity is drafting materials supply house will Let me know if you have a good 1.0. In rare instances, it might be stock polyester in both regular and solution to this, for there is a very necessary to slightly adjust the over- self-stick, but not at reasonable immediate and very large market for all border height or width in order to prices.Stanpat is one major brand the direct toner-based printed circuit get an acceptable squashticity. name; some others advertise in the etching. Particularly for prototypes Squashticity problems are utterly Design News and the Plan and Print and short runs. Virtually all printed negligible for most popular border trade journals. circuit production products to date designs, especially if there are lots of Finally, there's a converter house are either "high end" or useless trash. elements on each side. The squash- calledCatalina Plastics Inc. that will This one would solve a lot of big ticity factor is strictly a "fine tuning" custom cut you most any size and problems for a lot of people. tool for perfectionists. thickness of most any plastic with or This border routine is intended for without permanent or removable What is This Month's symmetric borders that "rotate" as self-stick adhesive at very low prices PostScript Utility? you go around them. Another related ± provided you are interested in a Just an automatic and intelligent routine is available forplain borders bare minimum of5000 sheets or so. border machine, that's all. Unlike whose elements all point in the same Their pricing is usually one-third to any other way of doing borders, you direction. For instance, valentine one-fifth of any retail source. simply tell the routine where you hearts look kinda stupid when shown Here are two tips involving trans- want the border and how high and sideways or upside down; These will parent materials: If you place a sheet how wide to make it. You also tell it demand a plain border. of one mil mylar in contact with a approximately howthick you want For this month's contest, just send paper and toner image, and then run the border to be. The routine does the me a new border that works well with it back through the printer while hand rest, automatically figuring out how my stupendous new border routines. feeding a blank copy, that toner im- many "lumps" are needed vertically There will be all my usual Incredible age willBakerize , and convert the and horizontally and then automatic- Secret Money Machine book prizes, toner into a much more durable, ally giving you perfect corners and along with an all expense paid (FOB blacker, and glossy image. This is alignment for each and every lump. Thatcher,AZ.) tinaja quest for two particularly useful for business cards, Figure three does show you all the for the best border of all. but gets overwhelming in any larger PostScript code involved. You first If you don't yet have access to a text blocks. define three PostScript procedures PostScript speaking laser printer, just It is utterly trivial to print back- for amainproc , an auxproc , and for a send along any old sketch of any wards on a PostScript printer. Just cornerproc, along with their sizes. symmetric border that you would like use the 612 0translate -1 1 scale The only major restriction is that to see automatically adjust itself to fit command. This lets you put all your mainproc is supposed to be exactly any image size and do so with perfect self-stick transparent decals on the "one" unit wide. corner joints and perfect spacing. inside of a window or a glass door, The border elements are laid down Yes, I am now putting together a where they will be considerably more in an unusual sequence that sim- new PostScript language super bor- weather and vandal resistant. plifies your artwork tremendously. der machine package for use with By the way, I would very much First, theauxproc elements go down. most personal computers. The goal is like to find a transparent material that These are overwritten by the main- to have more than a thousand non- has all of the following "magic" proc elements, which in turn will get trivial borders ready-to-go as well as properties: It would be dimensionally themselves overwritten by the four being extendable any manner you stable at high temperatures. It would cornerproc elements. like, however fancy. also reliably, but only "loosely" hold Figures four and five give you two Do call or write me if you are at all toner. What you would do with it is ready-to-run examples for some interested in this or most anything copy a1:1 printed circuit pattern onto typical borders. The scroll border else, PostScript, or whatever. 39.6 Don Lancaster's The Numeric IIgs tool list Using padding compound PostScript printed circuits ASK THE GURU IIgs old disk drive adaptor June, 1988 Selecting your laser printer

heFCC has dropped their dead in its tracks. Uh huh. chains that includeComputerland or plan for their proposed $6 Apple IIgs sales have been going Businessland, or from a dealer that per hour hacker telecomm through the roof and breaking all has a "lock" on a regional market. T tax, thanks in no small part sorts of records. Apple has responded The trick is to ask around at your to the cage rattling done by all of you to this deplorable and despicable local user group to find out who the Computer Shopper readers. situation in the predictable manner ± good guys and the bad guys are in And, the foes of computer backup by slashing the price of the Mac so it your particular area. DAT digital audio tape have been now lists for less than that of a You can get a list of all your local dealt two severe blows.NBS first loaded IIgs system. Apple user groups by calling (800) laughed them clear out of congress Recently, a secret survey revealed 538-9696, Extension 500 . when they showed that their innane that Apple had erred by a factor of If you are at all involved with any hardwareDAT protection scheme just four on their estimate of the average sort of a school, be sure to check into plain does not work, destroys the age of a IIgs buyer. Their planned some of Apple's great educational program integrity, and is trivially "free skateboard with each IIgs pur- discounts. There's also a very lively easy to cheaply bypass. chased" promo has been cancelled. used Apple market. I have been Meanwhile,DAT champion Sony Unfortunately, the thinking behind particularly impressed with the many put their money where their mouth it does still remain in place. Bubble offerings fromShreve Systems . was and boughtCBS records out- gum cards, anyone? Let's see. I just got word on a low right. In the process, they told all the Actually, you might expect across- cost replacement for the Kroy Kolor anti-DAT s left over at CBS to sit the-board price cuts this summer on machine that is based on the widely down and shut up. the IIgs and most everything Apple. discountedCanon fuser unit. More Naturally, all the anti-DAT s have The Apple "suggested list prices" details in a future column. vowed to continue cutting off their are totally meaningless anyway so Adobe Systems has finally released nose to spite their face. After all, long as you do shop around for a the "green book". Which is volume look at how thoseVCR 's completely reasonable dealer. You will get the three in their PostScript program- stopped the entire movie industry worst prices from the larger yuppie ming series. Yes, I do have copies on hand here if you cannot find them DB19 male connector from last IIGS 3.5 inch drive locally. This volume is on PostScript 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 program design and has plenty of hands-on detailed examples in it. And, yes, my new LaserWriter DR1 +5 V GND GND GND

-12 V NTX finally showed up. But not in PHI 0 PHI 1 PHI 2 PHI 3 +12 V +12 V EN 3.5 HD SEL EXT INT WR REQ RD DATA WR DATA WR PROT time for a thorough test and review 1 GND GND 1 this month. 2 PHI 0 PHI 0 2 Some quick answers . . . 3 GND GND 3 PHI 1 PHI 1 Yes, this is an absolutely outstan- 4 4 ding machine that should define what 5 GND GND 5 6 PHI 2 PHI 2 6 laser printing should and will be for 7 GND GND 7 the next several years. 8 PHI 3 PHI 3 8 Yes, each of those predicted major 9 -12 V -12 V 9 problems we looked at last month 10 WR REQ WR REQ 10 exist and are for real. 11 +5 V +5 V 11 +5 V +5 V Yes, there is at least a2:1 speedup, 12 12 provided you do not let AppleTalk or 13 +12 +12 13 14 ENBL ENBL 14 your application program get in the 15 +12 V +12 V 15 way. In some cases, the speedup can 16 RD DATA RD DATA 16 and will end up negligible. 17 +12 V +12 V 17 Yes, theNTX works beautifully 18 WR DATA WR DATA 18 +12 V +12 V with theIBM clones, and every other 19 19 host computer under the sun. Various 20 WR PROT WR PROT 20 20 pin male header to 5.25 inch Drive #1 20 Pin male header to 5.25 inch Drive #2 4.7 K hand-shaking options are now both switch and software selectable. No, the AppleTalk network is most Fig. 1 - Apple IIgs old disk drive adaptor. definitelyNOT needed to use this great machine. In fact, it often will 40.1 June, 1988

------TOOL #01 - TOOL LOCATOR ------$0101- TLBootInit $0601- TLStatus $0D01- SetWAP $1201- TLTextMountVolume $0201- TLStartup $0901- GetTSPtr $0E01- LoadTools $1301- SaveTextState $0301- TLShutDown $0A01- SetTSPtr $0F01- LoadOneTool $1401- RestoreTextState $0401- TLVersion $0B01- GetFuncPtr $1001- UnloadOneTool $1501- MessageCenter $0501- TLReset $0C01- GetWAP $1101- TLMountVolume ------TOOL #02 - MEMORY MANAGER ------$0102- MMBootInit $0B02- RestoreHandle $1B02- FreeMem $2302- HunlockAll $0202- MMStartUp $1002- DisposeHandle $1C02- MaxBlock $2402- SetPurge $0302- MMShutDown $1102- DisposeAll $1D02- TotalMem $2502- SetPurgeAll $0402- MMVersion $1202- PurgeHandle $1E02- CheckHandle $2802- PtrToHand $0502- MMReset $1302- PurgeAll $1F02- CompactMem $2902- HandToPtr $0602- MMStatus $1802- GetHandleSize $2002- HLock $2A02- HandToHand $0902- NewHandle $1902- SetHandleSize $2102- HLockAll $2B02- BlockMove $0A02- ReallocHandle $1A02- FindHandle $2202- Hunlock ------TOOL #03 - MISCELLANEOUS TOOLS ------$0103- MTBootInit $0E03- WriteTimeHex $1903- SetMouse $2403- FWEntry $0203- MTStartUp $0F03- ReadAsciiTime $1A03- HomeMouse $2503- GetTick $0303- MTShutDown $1003- SetVector $1B03- ClearMouse $2603- PackBytes $0403- MTVersion $1103- GetVector $1C03- ClampMouse $2703- UnPackBytes $0503- MTReset $1203- SetHeartBeat $1D03- GetMouseClamp $2803- Munger $0603- MTStatus $1303- DelHeartBeat $1E03- PosMouse $2903- GetIRQEnable $0903- WriteBBRam $1403- ClearHeartBeat $1F03- ServeMouse $2A03- SetAbsClamp $0A03- ReadBRam $1503- SysFailMgr $2003- GetNewID $2B03- GetAbsClamp $0B03- WriteBBParam $1603- GetAddr $2103- DeleteID $2C03- SysBeep $0C03- ReadBParam $1703- ReadMouse $2203- StatusID $0D03- ReadTimeHex $1803- InitMouse $2303- InitSource ------TOOL #04 - QUICKDRAW ------$0104- QDBootInit $3804- SetSolidBackPat $6D04- OpenRgn $A504- DrawString $0204- QDStartUp $3904- SolidPattern $6E04- CloseRgn $A604- DrawCString $0304- QDShutDown $3A04- MoveTo $6F04- OffsetRgn $A704- DrawText $0404- QDVersion $3B04- Move $7004- InsetRgn $A804- CharWidth $0504- QDReset $3C04- LineTo $7104- SectRgn $A904- StringWidth $0604- QDStatus $3D04- Line $7204- UnionRgn $AA04- CStringWidth $0804- AddPt $3E04- SetPicSave $7304- DiffRgn $AB04- TextWidth $0904- GetAddress $3F04- GetPicSave $7404- XorRgn $AC04- CharBounds $0A04- GrafOn $4004- SetRgnSave $7504- PtInRgn $AD04- StringBounds $0B04- GrafOff $4104- GetRgnSave $7604- RectInRgn $AE04- CStringBounds $0C04- GetStandardSCB $4204- SetPolySave $7704- EqualRgn $AF04- TextBounds $0D04- InitColorTable $4304- GetPolySave $7804- EmptyRgn $B004- SetArcRot $0E04- SetColorTable $4404- SetGrafProcs $7904- FrameRgn $B104- GetArcRot $0F04- GetColorTable $4504- GetGrafProcs $7A04- PaintRgn $B204- SetSysFont $1004- SetColorEntry $4604- SetUserField $7B04- EraseRgn $B304- GetSysFont $1104- GetColorEntry $4704- GetUserField $7C04- InvertRgn $B404- SetVisRgn $1204- SetSCB $4804- SetSysField $7D04- FillRgn $B504- GetVisRgn $1304- GetSCB $4904- GetSysField $7E04- ScrollRect $B604- SetIntUse $1404- SetAllSCBs $4A04- SetRect $7F04- PaintPixels $B704- OpenPicture $1504- ClearScreen $4B04- OffsetRect $8104- SubPt $B804- PicComment $1604- SetMasterSCB $4C04- InsetRect $8204- SetPt $B904- ClosePicture $1704- GetMasterSCB $4D04- SectRect $8304- EqualPt $BA04- DrawPicture $1804- OpenPort $4E04- UnionRect $8404- LocalToGlobal $BB04- KillPicture $1904- InitPort $4F04- PtInRect $8504- GlobalToLocal $BC04- FramePoly $1A04- ClosePort $5004- Pt2Rect $8604- Random $BD04- PaintPoly $1B04- SetPort $5104- EqualRect $8704- SetRandSeed $BE04- ErasePoly $1C04- GetPort $5204- EmptyRect $8804- GetPixel $BF04- InvertPoly $1D04- SetPortLoc $5204- NotEmptyRect $8904- ScalePt $C004- FillPoly $1E04- GetPortLoc $5304- FrameRect $8A04- MapPoint $C104- OpenPoly $1F04- SetPortRect $5404- PaintRect $8B04- MapRect $C204- ClosePoly $2004- GetPortRect $5504- EraseRect $8C04- MapRgn $C304- KillPoly $2104- SetPortSize $5604- InvertRect $8D04- SetStdProcs $C404- OffsetPoly $2204- MovePortTo $5704- FillRect $8E04- SetCursor $C504- MapPoly $2304- SetOrigin $5804- FrameOval $8F04- GetCursorAdr $C604- SetClipHandle $2404- SetClip $5904- PaintOval $9004- HideCursor $C704- GetClipHandle $2504- GetClip $5A04- EraseOval $9104- ShowCursor $C804- SetVisHandle $2604- ClipRect $5B04- InvertOval $9204- ObscureCursor $C904- GetVisHandle $2704- HidePen $5C04- FillOval $9404- SetFont $CA04- InitCursor $2804- ShowPen $5D04- FrameRRect $9504- GetFont $CB04- SetBufDims $2904- GetPen $5E04- PaintRRect $9604- GetFontInfo $CC04- ForceBufDims $2A04- SetPenState $5F04- EraseRRect $9704- GetFontGlobals $CD04- SaveBufDims $2B04- GetPenState $6004- InvertRRect $9804- SetFontFlags $CE04- RestoreBufDims $2C04- SetPenSize $6104- FillRRect $9904- GetFontFlags $CF04- GetFGSize $2D04- GetPenSize $6204- FrameArc $9A04- SetTextFace $D004- SetFontID $2E04- SetPenMode $6304- PaintArc $9B04- GetTextFace $D104- GetFontID $2F04- GetPenMode $6404- EraseArc $9C04- SetTextMode $D204- SetTextSize $3004- SetPenPat $6504- InvertArc $9D04- GetTextMode $D304- GetTextSize $3104- GetPenPat $6604- FillArc $9E04- SetSpaceExtra $D404- SetCharExtra $3204- SetPenMask $6704- NewRgn $9F04- GetSpaceExtra $D504- GetCharExtra $3304- GetPenMask $6804- DisposeRgn $A004- SetForeColor $D604- PPToPort $3404- SetBackPat $6904- CopyRgn $A104- GetForeColor $D704- InflateTextBuffer $3504- GetBackPat $6A04- SetEmptyRgn $A204- SetBackColor $D804- GetROMFont $3604- PenNormal $6B04- SetRectRgn $A304- GetBackColor $D904- GetFontLore $3704- SetSolidPenPat $6C04- RectRgn $A404- DrawChar Fig. 2 ± Numeric order list of IIgs tools (part 1) . . .

40.2 ASK THE GURU slow you down and might severely Remember finally that there is a limit your choice of your host com- How can I Use the Old 20 "rundown" time on your IIgs power puter, besides costing you lots of Pin Drives On a IIgs? supply. Always wait a minimum of extra money. We have had a lot of calls on this 40 seconds after turning the power A reminder that yours truly and a recently, so let's do a rerun. Figure off before you even think about bunch of other Apple incindiaries ± one shows you how to build a dual changing any card or cable. uh, better make that luminaries ± will "old drive" adaptor that lets you One commercial source of these be talking and seminaring and show- daisy chain the original20 -pin 5-1/4 adaptors isRedmond Cable . ing and telling at the stupendous inch Apple drives onto the IIgs 3-1/2 AzApple Fiesta at the Safari Hotel in drive19 pin output connectors. Show me a List of The Scottsdale Arizona, on June 11th and Note particularly that pin4 must Main IIgs Tools 12th. For more details, you might be grounded, and a pullup resistor is One of the best ways to learn to contact Jerry Cline over at AzApple recommended as shown. Also be use the tools in the IIgs toolkit is to via(602) 264-3800 . very careful to use shrouded or other- tear apart the working code of others And it looks like its time to try and wise restrained connectors. If you to see just how it is done. keepCanis Lupus away from the wrongly plug a5-1/4 drive in so it is A toolbox call is made by shoving door again. So, the usual reminders offset by one pin or by one pin row, things onto the stack, loading the X that we have bound sets of my Ask you can instantly destroy several register with a two hex digit high the Guru reprints available, along drives and the IIgs motherboard. value for the tool and a two hex digit with my Introduction to PostScript Note also that, yes, you can freely low value for the toolset. A JSL video and my new PostScript Show plug printer cables in and out any $E10000 is then done to activate the and Tell, which is available for most time you like. But if you ever try tool. The tool, in turn does its thing, popular personal computers. connecting or disconnecting a disk makes some changes, and returns Also some brand new PostScript drive on a IIgs with the power on, some pointers and results back to the language packages one for printed you are virtuallycertain to destroy stack for future use. circuit layout and another for two either or both the drive or the IIgs I have never found a really good point perspective drawing. Write or motherboard. "backwards" list of all the IIgs tools call if you are interested. DoNOT ever add or remove any arranged in numeric order by call, so Let's start with a summer rerun . . . drive when IIgs power is applied! figure two gives you the start of a more or less complete list. More details on each individual tool do appear in the IIgs Toolbox Reference Manauls, volumesIII and , available through theAPDA people. And for a super-secret, ultra fast, and extremely simple method of tearing apart most any machine language program, check into my Enhancing your Apple IIe, volume I. Which Laser Printer Should I Buy ? That is a very good question that comes up at least a dozen times a day on the helpline. Here are what the helpline callers seem to be thinking at present. First and foremost, genuine Adobe Post- Script is an absolute must, since there is between a50:1 and 100:1 perform- ance advantage over all of the out- dated imitators and hanger-ons. Secondly, you might want to avoid theRiccoh engine, since helpline callers do report serious problems imaging smaller text, cite the slow speed, note the lack of a manual feed, and complain about the long term print reliability. Fig. 3 ± A typical PostScript 1:1 printed circuit layout. It seems to me that this leaves you with five reasonably viable options 40.3 June, 1988 options towards genuinely useful dents atEAC sure are getting off on cutter and a jogger are also handy laser printing today . . . the stuff. For some reason, the per- production tools. (1) The Laserwriter NT or the NTX , scription pads seem to be popular. Note that many "jiffy" printing which should be the "center of the An ordinary paintbrush works just centers will do thick paper cutting for universe" of PostScript laser printing fine, and you can clean up with water 50 cents a cut or so. for the next several years. before the padding compound sets. For minimum labor, it is often best (2) The older Laserwriter plus is You should carefully align and trim to pad the two opposite edges of an now being discounted for as low as all the pages first, and should apply entire stack of full size sheets at $1800, with the latest of third-party some clamping pressure while your once; you then chop these up into toner refills now being almost as padding compound sets. four or six pads as needed. By al- black as the newer machines. The stuff takes half an hour to dry, ternating stacks of paper and the (3) The brand new "laserless" NEC and two thin coats are usually better backing cardboard, you can work LC-890 PostScript printer, which you than one thick one. One jar is enough several pads thick. helpline callers can't seem to say for a zillion and a half pads. Tellyawhat. For the contest this enough good things about. While nothing at all is needed in month, just dream up a brand new (4) Any of the PostScript speaking the way of special tools for just a few but non-obscene use for padding laser printers fromQMS . hand-crafted pads, to handle the job compound. There'll be an Incredible (5) The Hewlett-Packard Laserjet professionally, you might want to Secret Money Machine for the best II. But beware that this turkey pro- build a padding press, which looks twenty entries, and an all expense vides PostScript only in a rather sort of like a Fred Flintstone style paid(FOB Thatcher, AZ) tinaja quest expensive and very bizarre manner enlarger. The use of a clamping paper for two for the very best entry. thatdemands use of anIBM clone. But you definitely should not buy % Copyright c 1988 by Don Lancaster & Synergetics, Box 809, Thatcher AZ, 85552. any of these, until such time as you % (602) 428-4073. All rights reserved. Personal, non-commercial use permitted so long as have had some hands-on experience % this header remains both present and intact. Work in Progress disk costs $39.50. with them running your material your /quadpixel {transform 4 div round 4 mul itransform} def way through your local user group. /setgrid {save /rubbersnap exch def /size exch def quadpixel exch quadpixel exch translate I personally own a pair of Laser- size dup scale } def Writer pluses, one with over 300,000 /drawlines {72 300 div lw mul size div setlinewidth /hposs 0 def #hlines gs div 1 add cvi {hposs 0 moveto 0 #vlines rlineto stroke /hposs hposs gs add def} repeat /vposs 0 def copies on it and now have a brand #vlines gs div 1 add cvi {0 vposs moveto #hlines 0 rlineto stroke /vposs vposs gs add newNTX . I just can't believe I was def} repeat} def able to squeak by so long with only /showgrid{gsave /#vlines exch def /#hlines exch def 106 45 {pop pop 0} setscreen 0.9 two PostScript speaking printers in setgray /gs 1 def /lw 1 def drawlines grestore} def my home. On the other hand, the /2X {60 72 mul 300 div setgrid} def light in the pantrystill is not fixed. /trace20 {6 30 div setlinewidth} def /trace50 {16 30 div setlinewidth} def /trace80 {24 I guess its all in the priorities. 30 div setlinewidth} def Does anyone know an electrician that /am {newpath moveto} def needs some typesetting done? /tdraw {rlineto currentpoint stroke moveto} def /u {0 exch tdraw} def /r+ {dup tdraw} def What is Padding Compound? /r {0 tdraw} def /r- {dup neg tdraw} def Well, it comes in a large jar the /d {0 exch neg tdraw} def /l- {neg dup tdraw} def /l {neg 0 tdraw} def /l+ {dup neg exch tdraw} def same size and shape as the library paste you used to eat with Cecilia /black {0 setgray} def /white {1 setgray} def Winterhalter back in Mrs. Lockhart's /xrpt{gsave aload pop /trips exch def /dist exch def /rproc exch def trips { gsave rproc grestore dist 0 translate } repeat grestore} def second grade art class. It does cost /yrpt{gsave aload pop /trips exch def /dist exch def /rproc exch def trips { gsave around$5.50 a jar, and is available rproc grestore 0 dist translate } repeat grestore} def fromPaper Plus or most any other printer supply house. /hole {gsave 150 div /dia exch def newpath dia 2 div 0 360 arc white fill grestore} def It does look sort of like Elmer's /icpad1v {save /psnap exch def trace50 2 copy gsave exch 0.2 sub exch am 0.4 r grestore 20 hole psnap restore} def glue-all. You paint this glop onto the /edgeconu {gsave translate 0.4 0 moveto 0 -2 0.4 0 180 arcn 0 2 rlineto closepath fill edge of a stack of paper, and end up grestore} def with an instant notepad, fully pro- /feedpad {save /fpsnap exch def newpath 2 copy black 0.25 0 360 arc fill 18 hole clear fessional prescription pads, a "while fpsnap restore } def you were out" form, or even several /circpad2 {save /fpsnap exch def newpath 2 copy black 0.30 0 360 arc fill 22 hole clear custom calanders. fpsnap restore } def While not at all a replacement for /dip8v{gsave translate [{0 0 icpad1v} 1 4] yrpt [{3 0 icpad1v} 1 4] yrpt grestore} def any "real" binding system, padding /dip16v{gsave translate [{0 0 icpad1v} 1 8] yrpt [{3 0 icpad1v} 1 8] yrpt grestore} def compound is a quick and fun way of at least temporarily holding paper 1 setlinejoin 1 setlinecap stacks together. At any rate, all of my Fig. 4 ± A sampler of my PostScript printed circuit routines. beginning desktop publishing stu- 40.4 ASK THE GURU computer to do the job.AppleWriter , for the right product. Once again, the What is This Month's of course, is an especially good material must be transparent, dimen- PostScript utility? choice. No special graphics tools or sionally stable at high temperatures, For years, I have been searching techniques are required, and the and has to "loosely" but reliably for a practical and economical way ordinary text files can then be freely accept toner. The toner must then be for hackers and engineers to do passed over to any other computer. able to be reliably transferred di- low-end printed circuit layouts. The utilities are particularly good rectly to a printed circuit board for Obvious goals here are very high for such "mixed media" job tasks as use as an etch resist. Help! quality, low cost, use of nearly any an instruction book or a manual that Figure three shows you a typical computer at all, avoiding any and all needs "phantom" layouts for servic- working layout. Here, viewed from outrageously expensive supplies, and ing or drilling guides. Best of all, the the top of the board are an overlay an absolute minimum need for any- routines return "hand crafting" back grid, the component side traces in thing at all photographic. to the world of printed circuit layout gray, and finally the foil side done in I've been putting together a set of art. This is especially handy for high black. As you can see, arbitrarily PostScript language printed circuit frequency analog or video circuits. complex layouts are simple and easy utilities that does this and a lot more. It should even be possible to now to do. This one is a$50 control You can do1X , 2X , and 4X layouts, transfer toner directly to the copper computer using theM50734 . frontwards or backwards, negative or pc board material for an immediate What I would like to do here is positive artwork, with or without an etching, and thus eliminating some share several of the more funda- overlay grid in ten or more layers in intermediate photo steps. Sadly, the mental PostScript language pc layout any size from one square inch up to techniques I've looked at so far "just codes with you. Figure four is a several acres. Very nicely, you will barely miss" on this additional goal, "sampler" listing that can get you always work "top side" and let your but do stay tuned. started, while figure five shows you a printer handle any trace reversals or And, of course, I would certainly portion of the layout of a simple and inversions for you. welcome any and all input on a sensitive 10-bitA/D converter that As per usual with "raw" Post- suitable transfer material that was plugs directly into your Apple IIe or Script, you can use any old word stable, cheap, and reliable. There is a IIgs game paddle port. More details processor on any old personal humongous market just waiting here on this gem appear in my Hardware Hacker column that appears over in % requires printed circuit sampler code of figure four Radio-Electronics magazine. The full blown utilities consist of 100 100 2X 11 11 showgrid trace20 10 2 am 1 l 0.75 l- 4.5 l 0.75 l+ three parts. Aprolog contains the 2 l 6 u 10 5 am 0.75 l 1.5 l- 1.25 l 0.5 l- 2 l 0.5 l+ 0.75 u 1.25 l+ 7 4 am hundreds of available custom Post- 0.75 l 0.5 l- 0.75 l 5 5.5 am 1 l+ 1.5 u 5 4.5 am 2 l+ 2 u 2 6.5 am 1.5 Script layout commands. A print u 7 3 am 0.5 l- 2.75 l 0.75 l+ 0.5 u 0.75 l+ 2 3.5 am 1 l 10 9 am 0.75 l+ instructions header then selects the 2.75 l 0.5 l- 2.75 d 1 l 6 6.5 am 2.15 d 0.35 l- 1.15 l 2 l+ 1 l 5 6.5 am scale, the reversals, the page position 1.5 u 7 2 dip16v 2 3.5 dip8v [{1 10 edgeconu} 1 5] xrpt 3 2 circpad2 for larger printouts, and so on. And 4 2 circpad2 3 5.5 feedpad showpage finally, your ownscript contains a listing of the pads and traces. There is a limit to the total path length used in any PostScript routine. So, rather than defining a single seperate path for the grid, component side, foil side, and overlay callouts, these are allowed to be arbitrarily long and complex. In the complete utilities package, the print instruc- tions header then picks either the page or thenulldevice for each layer. Anything printed to the nulldevice ends up intentionally missing on the chosen final artwork copies. Ordinary polyester (mylar) over- head transparency material seems to work just fine for most hacker and low-end circuit layouts. Let me know if you have any further interest in pc layout stuff. It sure is fun to play with, and it does Fig. 5 ± A simple 2X printed circuit layout example. outperform several very costly soft- ware packages. 40.5

Don Lancaster's The LAN of the eighties IIgs numeric tool listing Restoring ProDOS disks ASK THE GURU Corner rounding punches July, 1988 Laser "personal map" cards

f all computer programs were ScriptROM chips "real soon now". developer programs ofApple and drugs, thenHypercard would Which should give you yet another Microsoft. Also, as figure one shows undoubtedly be the software dramatic speed up. Their experience us, they now have an extensive new I equivalent of crack. Cheaply with their new display PostScript did techncal literature catalog. Some of available on any street corner, it is show them several profound new their available free publications do insanely addictive. It gives the junkie tricks they could pull to reduce both appear in figure one. user a brief and extremely intense the number and the intensity of the Meanwhile, lots is happening on euphoria, followed by the usual interpretive trips through the code. the toner cartridge reloading front. hollow promises, and finally ending Presumably, upgrade kits will soon Several third-party people are now up with withdrawl symptoms that be made available, similar to all of intensely attacking the high costs and become crushingly devastating. the previous ones. More details on the limited refillability of those SX Hypercard also forces continual this as they evolve. cartridges, as demanded by the new dosage increases on the user, all the PostScript has continuously been LaserWriters. while shortening the tolerable time speeding up at roughly thirty percent Both the newNT and NTX Laser- between fixes. And finally, near the per year. These days, most of that Writers still have an insanely higher very end, extremely grave delusions slowness still blamed on PostScript is per-page toner cost for most users of adequacy set in. really caused by such things as the than do the older LaserWriters. At any rate, like it or not, Hyper- ridiculous communications overhead The latest refilling secret is to find card and its imitators are coming (especially AppleTalk), the poor pro- a beastie called a#3 Unibit , made by soon to a IIc, IIe, or a IIgs near you. gramming, stupid host protocols, and Vise Grip, and available from Jensen Since forewarned is forearmed, you other dumb stuff like this. Tools, as well as most larger hard- may want to have a long talk with Adobe has also formed a new third ware stores. This dude lets you drill, your children, as well as starting up party developers group, modeled rather than melt the refilling holes in your neighborhood action group to along the lines of all those certified either theSX or CX cartridges. try and somehow cope with this societal menance. Remember, just one single dose, Tips on Writing PostScript Language Drivers (POST01) and you are hooked for life. With no An Optimization Case Study (POST02) hope of a cure. And, no, Hypercard How to Avoid Device Specific PostScript Programs (POST03) Simple Text Setting Calculations for PostScript Output (POST04) does not only strike those "bad" ad- PostScript Language Supplement (POST05) dict programmers across the tracks. Hypercard relentlessly strikes any- Screen Fonts Licensing (FONT01) where and everywhere without any AFM Interchange Format for PostScript Font Metrics (FONT02) warning at all, cutting across all Supporting Downloadable PostScript Fonts (FONT03) walks of life. ABF Files: Binary Format for PostScript Screen Fonts (FONT04) Meanwhile, Apple has reduced the Macintosh FONT Resources (FONT 05) price of the IIgs. Well, sort of, any- Document Structuring Conventions 2.0 (FORM01) way. What they really did was bundle Encapsulated PostScript File Format (FORM02) up the expansionRAM card in with PostScript Printer Description File Specification (FORM03) the IIgs, since the new operating Adobe Illustrator Document Specifications (FORM04) system pretty much demands 512K PostScript LaserWriter Plus Update (SUPP01) just for itself. The part number for PostScript Linotron 100 v42 Update (SUPP02) the new IIgs system is#A2P6024 . PostScript QMS PS800 Update (SUPP03) Oh, yeah. Some epsilon minus left PostScript DEC, VAX, SUN, and UNIX Update (SUPP04) thestrobe line off the IIgs game PostScript Agfa P400PS Update (SUPP05) paddle port. Contrary to the manuals, PostScript TI OmniLaser 2115 Update (SUPP06) it is just plain not there. Which will PostScript NEC LC-890 Update (SUPP07) severely limit some of the neat hard- ware expansion tricks that were easy Note on Flow Control and Serial Communication (COMM01) LaserWriter Serial I/O Patch (COMM02) to pull on the II+ and IIe. Developer Tools Diskette (DEV01) On the other hand, if nobody LaserWriter Plus AFM Files (DATA 01) noticed it for two years . . . PPD Printer Description Files (PPDF01) The good folks at Adobe Systems are up to all sorts of neat stuff. First, Fig. 1 ± Adobe Systems tech literature on PostScript. expect a total reworking of the Post- 41.1 ASK THE GURU You'll want to work upside down performing, insanely expensive, or measures the network's signal to to keep chips out of the toner filling grossly limiting in one way or an- noise ratio. Should any communi- tank, but that Unibit will instantly other. But oneLAN is clearly head cations problems develop, then an give you a clean hole. Use a slow and shoulders above all of the others. alternate signalling route is automat- drilling speed. So much so, that I like to call it the ically selected. And you can now plug up the hole LAN of the eighties. Each node is extremely rugged and with a plain old nickelCaplug that is TheLAN of the eighties is a simple requires very little maintenence. The available from theCaplug people, or token ring loop. It requires only one nodes use zero electrical input power, theirAlliance Plastics competitors. single wire between stations. That instead substituting an ingeneous kin- You might want to press your fast wire need not be shielded or twisted etic energy transfer mechanism. forward button, because it is now ± pair, and evenbare wire has been Supporting theLAN of the eighties bleep ± advertorial time! Complete used in several of the tens of thous- is a streaming tape drive using very sets of theAsk the Guru reprints do ands of world-wide installations. low cost media that continuously and remain available, as do my various TheLAN loop can be ten or more permanantly will record any and all PostScript products, including that miles long. While only a few dozen traffic. Thus, any message can be Introduction to Postscript Video, the servers is the norm, many hundreds replayed at any time. PostScript Show and Tell, and the can be installed. In turn, each server On theLAN of the eighties, the pre-release on my brand new Don node normally is able to handle as operator training is extremely fast Lancaster's PostScript Secrets book many as several hundred users. and ridiculously simple. Even a user and disk combo. Yes, we also stock With theLAN of the eighties, each in a very high stress environment can the new Adobe green book on Post- node uses a unique i.d. in a collision master the entireLAN workings in Script program design. avoidance, token passing protocol. approximately five seconds, since the Let us start off with an obscure The node first checks to see if other entire system is hardware based. Yes, history lesson . . . traffic is present. If not, its very own even the boss can learn to use it. uniquely coded packet will get trans- TheLAN of the eighties has been Tell me all About The mitted. Each packet is then repeated thoroughly tested and debugged. So LAN of The Eighties several times to get the best possible much so, that the total number of There sure is a lot of interest these error detection and correction. user hours to date exceeds that of all days inLAN 's, or local area net- EachLAN node is also sophis- other networking schemes combined. works. Many of these are poorly ticated enough that it continuously Yes, this network is so good that it is clearly theLAN of the eighties. Theeighteen eighties! The ProDOS catalog entries begin on block $02 and continue from there. I am, of course, talking about the The simplest way to locate successive catalog entries is by their ASCII Gamewell fire alarm telegraph, other- filename character strings. wise known as that mangy red box BYTE +$00 - holds the storage type in its upper four bits and the scunging away on the pole down the length of the filename as the lower four bits. Common street. Patented over a century ago. storage types include $00 for deleted; $01 for a single The call boxes form an amazing data block file; $02 for a 2-256 data block file; and $0D electromechanical network that both for a subdirectory. addressed and solved today's LAN BYTES +$01-0F - holds the filename in low ASCII, up to 15 characters. networking problems a century ahead of their time. Deja Vu, anyone? BYTE +$10 - holds the file type. The file types include $04 for text, $06 for binary; $0F for directory; $19 for Appleworks data How can I Reconstruct base; $1B for Appleworks word processing; $1B for A Blown ProDos Disk? Appleworks spreadsheet; $FC for Applesloth Basic, and $FF for a ProDOS system file. The best way of all, of course, is to never let the disk blow up in the first BYTES +$11-12 - hold the block number of the key block for the file. place. Didn't anyone ever tell you This is arranged low byte first. about backup copies? Ornever using BYTES +$13-14 - hold the total number of blocks used. This is also arranged an original disk for anything ever? Or low byte first. keeping all your drives clean and at the correct speed? BYTES +$15-17 - hold the total length of the file, arranged in low byte - mid Or that car dashboards get warm in byte - high byte order. the summertime? Ornever putting a BYTE +$1E - holds the access bits for the file. Bit $01 allows reading of diskanywhere except into a drive or the file. Bit $02 allows writing to the file. Bit $40 alows immediately back into its own pro- renaming, and Bit $80 permits destruction. tective envelope? Ornever allowing (lock = 0; unlock = 1) smokers in the same bulding as your disks, let alone in the same room? Fig. 2 ± Important Bytes in a ProDOS catalog entry. Anyway, sooner or later you may have to try and revive a sick or dead 41.2 July, 1988

------TOOL #05 - DESK MANAGER ------$0105- DeskBootInit $0A05- RestScrn $1405- GetDAStrPtr $1B05- GetDAStrPtr $0205- DeskStartUp $0B05- SaveAll $1505- OpenNDA $1C05- CloseNDAByWinPtr $0305- DeskShutDown $0C05- RestAll $1605- CloseNDA $1D05- CloseAllNDAs $0405- DeskVersion $0E05- InstallNDA $1705- SystemClick $1E05- FixAppleMenu $0505- DeskReset $0F05- InstallCDA $1805- System Edit $0605- DeskStatus $1105- ChooseCDA $1905- System Task $0905- SaveScrn $1305- SetDAStrPtr $1A05- SystemEvent ------TOOL #06 - EVENT MANAGER ------$0106- EMBootInit $0906- DoWindows $0F06- WaitMouseUp $1506- FlushEvents $0206- EMStartUp $0A06- GetNextEvent $1006- TickCount $1606- GetOSEvent $0306- EMShutDown $0B06- EventAvail $1106- GetOblTime $1706- OSEventAvail $0406- EMVersion $0C06- GetMouse $1206- GetCaretTime $1806- SetEventMask $0506- EMReset $0D06- Button $1306- SetSwith $1906- FakeMouse $0606- EMStatus $0E06- StillDown $1406- PostEvent ------TOOL #07 - SCHEDULER ------$0107- SchBootInit $0307- SchShutDown $0507- SchReset $0907- SchAddTask $0207- SchStartUp $0407- SchVersion $0607- SchStatus $0A07- SchFlush ------TOOL #08 - SOUND MANAGER ------$0108- SoundBootInit $0608- SoundToolStatus $0D08- SetSoundVolume $1208- SetSoundMIRQV $0208- SoundStartUp $0908- WriteRamBlock $0E08- FFStartSound $1308- SetUserSoundIRQV $0308- SoundShutDown $0A08- ReadRamBlock $0F08- FFStopSound $1408- FFSoundDoneStatus $0408- SoundVersion $0B08- GetTableAddress $1008- FFSoundStatus $0508- SoundReset $0C08- GetSoundVolume $1108- FFGeneratorStatus ------TOOL #09 - DESKTOP BUS ------$0109- ADBBootInit $0609- ADBStatus $0E09- SyncADNReceive $1309- SetAbsScale $0209- ADBStartUp $0909- SendInfo $0F09- AbsOn $1409- SRQPoll $0309- ADBShutDown $0A09- ReadKeyMicroData $1009- AdsOff $1509- SRQRemove $0409- ADBVersion $0B09- ReadKeyMicroMem $1109- ReadAbs $1609- ClearSRQTable $0509- ADBReset $0D09- AsyncaADBReceive $1209- GetAbsScale ------TOOL #0A - SANE TOOLSET ------$010A- SANEBootInit $040A- SANEVersion $060A- SANEStatus $0A0A- SANEDecStr816 $020A- SANEStartup $050A- SANEReset $090A- SANEFP816 $0B0A- SANEElems816 $030A- SANEShutDown ------TOOL #0B - INTEGER MATH TOOLS ------$010B- IMBootInit $0E0B- FixRatio $190B- LoWord $240B- Hex2Int $020B- IMStartUp $0F0B- FixMul $1A0B- Long2Fix $250B- Hex2Long $030B- IMShutDown $100B- FracMul $1B0B- Fix2Long $260B- Int2Dec $040B- IMVersion $110B- FixDiv $1C0B- Fix2Frac $270B- Long2Dec $050B- IMReset $120B- FracDiv $1D0B- Frac2Fix $280B- Dec2Int $060B- IMStatus $130B- FixRound $1E0B- Fix2X $290B- Dec2Long $090B- Multilply $140B- FracSqrt $1F0B- Frac2X $2A0B- HexIt $0A0B- SDivide $150B- FracCos $200B- X2Fix $0B0B- UDivide $160B- FracSin $210B- X2Frac $0C0B- LongMul $170B- FixATan2 $220B- Int2Hex $0D0B- LongDivide $180B- HiWord $230B- Long2Hex ------TOOL #0C - TEXT TOOLS ------$010C- TextBootInit $0C0C- GetInGlobals $150C- InitTextDev $1E0C- TextWriteBlock $020C- TextStartUp $0D0C- GetOutGlobals $160C- CtlTextDev $1F0C- ErrWriteBlock $030C- TextShutDown $0E0C- GetErrGlobals $170C- StatusTextDev $200C- WriteCString $040C- TextVersion $0F0C- SetInputDevice $180C- WriteChar $210C- ErrWriteCSrting $050C- TextReset $100C- SetOutputDevice $190C- ErrWriteChar $220C- ReadChar $060C- TextStatus $110C- SetErrorDevice $1A0C- WriteLine $230C- TextReadBlock $090C- SetInGlobals $120C- GetInputDevice $1B0C- ErrWriteLine $240C- ReadLine $0A0C- SetOutGlobals $130C- GetOutputDevice $1C0C- WriteString $0B0C- SetErrGlobals $140C- GetErrorDevice $1D0C- ErrWriteString ------TOOL #0E - WINDOW MANAGER ------$010E- WindBootInit $180E- TrackGoAway $2D0E- SetWFrame $410E- SetDataSize $020E- WindStartUp $190E- MoveWindow $2E0E- GetStruckRgn $420E- GetMaxGrow 0030E- WindShutDown $1A0E- DragWindow $2F0E- GetContentRgn $430E- SetMaxgrow $040E- WindVersion $1B0E- GrowWindow $300E- GetUpdateRgn $440E- GetScroll $050E- WindReset $1C0E- SizeWindow $310E- GetDefProc $450E- SetScroll $060E- WindStatus $1D0E- TaskMaster $320E- SetDefProc $460E- GetPage $090E- NewWindow $1F0E- EndUpdate $330E- GetWControls $470E- SetPage $0A0E- CheckUpdate $1E0E- BeginUpdate $340E- SetOriginMask $480E- GetContentDraw $0B0E- CloseWindow $200E- GetWMgrPort $350E- GetInfoRefCon $490E- SetContentDraw $0C0E- Desktop $210E- PinRect $360E- SetInfoRefCon $4A0E- GetInfoDraw $0D0E- SetWTitle $220E- HiLiteWindow $370E- GetZoomRect $4B0E- SetSysWindow $0E0E- GetWTitle $230E- ShowWide $380E- SetZoomrect $4C0E- GetSysWFlag $0F0E- SetFrameColor $240E- BringToFront $390E- RefreshDesktop $4D0E- StartDrawing $100E- GetFrameColor $250E- WindNewRes $3A0E- InvalRect $4E0E- SetWindowIcons $110E- SelectWindow $260E- Trackzoom $3B0E- InvalRgn $4F0E- GetRectInfo $120E- HideWindow $270E- ZoomWindow $3C0E- ValidRect $500E- StartInfoDrawing $130E- ShowWindow $280E- SetWRefCon $3D0E- ValidRgn $510E- EndInfoDrawing $140E- SendBehind $290E- GetWRefCon $3E0E- GetContentOrigin $520E- GetFirstWindow $150E- FrontWindow $2A0E- GetNextWindow $3F0E- SetContentOrigin $530E- WinddragRect $160E- SetInfoDraw $2B0E- GetWKind $400E- GetDataSize $560E- WindowGlobal $170E- FindWindow $2C0E- GetWFrame Fig. 3 ± Numeric order list of IIgs tools (part 2) . . .

41.3 ASK THE GURU

ProDOS disk. The better you get at window on a3-1/2 is also unsafe. then the file is no longer used. this, the bigger a hero you'll become. You should now make the best bit The object of all this should be a Two important books include the copy backup you can of the original list of the files you want to recover. ProDOS Techncal Reference Man- disk. Don'tEVER attempt to recon- Should one block be blown up in the ual by Addison Wesley , and Beneath struct the actual bad disk. Instead, middle of a file, replace that block Apple ProDOS by Quality Software . always work on a bit copied backup. number in the key block with the Reconstruction software includes Then, try using a disk recovery previous block number. This way, theCopy II Plus from Central Point utility, such asFixcat from Bag of you will get512 good but repeat Software, and Bag Of Tricks II , again Tricks. Since catalog tracks are the bytes replacing any bad block. fromQuality Software . ones most often written to, they tend If the catalog fixer did not work, The first thing to try is a fresh to blow up the most often. you'll have to manually patch a new reboot of your machine, followed by If all else fails, a partial manual re- catalog to link what you have with several repeated attempts to read the covery may be all that's left to try. what you want. So, init a new disk, disk. Then try the other drive. If that To get started, load up aZap utility and create dummy filesAAA through doesn't hack it, try a different com- or some other program that lets you ZZZ on it. Then very carefully copy puter. A disk may get flakey before it read and write valid ProDOS blocks. track zero andonly track zero from gets bad. Obviously, you will want to Then carefully go through the entire this new disk to the backup. transfer the data any way you can. backup disk by hand, reading each Reread block two of the backup. The very next thing to check for is and every block by hand, and taking Your new catalog should be there. obvious physical damage. If the disk lots of notes on everything you find. Then, consulting figure two, or one got tricycled by a three year old or First, find out the bad blocks that of the ProDOS books, manually run over by an office chair, it can will not even read. List each of these. patch each catalog entry as needed. often be repaired by cutting the top You will have to patch your way In general, you will have to patch off the disk and inserting it in a new around these, and you can probably byte+$00 of a directory entry with disk carrier, preferably of the same write off any data present, unless you the storage type, and byte+$10 with brand and style. Don't touch the my- go to some very exotic tools. the file type to be recovered. lar media when you do this. Next, be on the lookout for key Bytes+$11 and +$12 get filled with If a disk has been re-initialized, blocks. A key block will have mostly the block number of the recovery key then all is lost. You can run over a zeros. Most often, it will start out block. Values go in place low byte disk with a truck and then boil both with a sequence such as: 34 36 37 38 first, as is typical with6502 code. the disk and the truck in peanut 39 3A 00 00 00 . . . These are the You will also have to patch +$13 butter and jelly, and the chances are blocks where the file will reside. and+$14 with the total number of you can recover some of the data. The high block number byte is 256 blocks used in the recovery file. But Init kills! So, do notever init a locations further along. The high byte For the next step, you'll have to disk without first removing it from will often be00 . calculate the exact file length of the the drive, holding it by the write Once you have a key block, try to file to be recovered and put it in +$15 protect tab, and spelling the name out figure out what type of file it is and (low)+$16 (mid) and +$17 (high). backwards and out loud. With all how important it is that you recover Finally, attempt to read your AAA other drive doors open.Never copy a it. In general, you only want to try entry and see if it actually loads your disk without write protect tabs. and recover what is essential. Some recovered file. If it does, immediately Remember that5-1/4 inch disks early files may later get overwritten. transfer this recovered file to a clean protectbackwards from the 3-1/2 If the block data takes a "right angle disk. Then rename the file. inch ones. Anopen notch on a 5-1/4 turn" in the middle, or if later key This process really sounds hairy, disk can be written, while a closed blocks usurp the same data blocks, but if you pick up the needed books and tools and practice it bunches ahead of time, disk recovery can be made into a non-gruesome process. Tim & Linda Boyd Show me More of The Main IIgs Tool List tinajas quested As we found out last month, a Quacker complete listing of the IIgs tools in

Woodchuck Highway numeric order is quite hard to find, Hillside yet is extremely useful for analyzing 629 Quacker Way other people's IIgs code. Our second Alkalai, VT 02999 installment appears in figure three. (121) 842-9989 Milton Road Please Help me Cut Some Corners Sure thing. As we learned before, Fig. 4 ± A typical "personal map" business card. there is a never ending assortment of 41.4 July, 1988 overpriced and hard-to-get, tools that offer is a very low total price, say $5 You can also spray your cards with can make desktop publishing and its for48 cards. The third thing you can artists fixative, but Bakerizing does a laser printing ridiculously more offer is virtually any graphic image better job and costs less. Kroy Color powerful and more useful. Stuff like at all on their custom card. itself will slightly increase the dur- joggers, folders, laminators, drilling For instance, how many printers ability. The ultimate trip, though, is machines, padding presses, fusers, can sell you custom business cards to use the Kroy Laminating Film to guillotine cutters binders, and so on. that have maps on them? Yet there create a virtually unscuffable card. At any rate, the chances are you are literally millions of people who'd Normally, you would use plain old might like to round off the corners of like to buy a few dozen "Here's how cover stock in various colors as the such things as bumperstickers, ship- to get to our house" cards for their business card base. Typically, you ping labels, punched card coupons, own personal or family use. Most any can get a dozen cards per sheet. The VHS cassette labels, peel-and-stick swap meet or fair should be full of Paper Plus chain is a low cost source stuff, point-of-purchase signs, menus, them. Figure four does show you a for cover stock. or just about whatever. typical example. The PostScript code for a typical So, there is now a beastie called And a fourth thing you can offer is step-and-repeat personal map card is theLassco Corner Rounder , that is unusual finishes and styles. You shown you in figure five. You'll also manufactured byLassco Products . might use a fancy mother-of-pearl need my step-and-repeat routine, my This will round a stack of sheets at card stock,Kroy Kolor it a bright curve tracing routine, and rubbergrid. once, and accepts various dies, with metallic blue, and seal it in plastic, You can get these from back issues 1/8 inch and 1/4 inch being the most for around a dime a card.Coburn is ofComputer Shopper , from the Ask popular. The list price is$120, but one source of unusual materials. The Guru reprints, or from my new these sometimes get discounted down The durability of the toner can be Don Lancaster's PostScript Secrets into the$85 to $95 range. improved in several ways. First, it is book and disk combo, or else I'll be As with virtually all of the other probably good enough by itself for happy to send you a free printed copy accessory salesmen for the printer those quick and dirty "throwaway" of each needed routine. trade, you'll find most of the Lassco cards that are distributed in larger We'll have both a technical and a dealers grossly incompetent, ridicu- quantities. But a toner business card non-technical contest for this month. lously overpriced, and unbelievably will self-destruct if it is carried in a There will be the usual Incredible rude. Lassco, of course, will tell you wallet or is otherwise scuffed. Secret Money Machine prizes, with with a perfectly straight face to "see The simpliest way to improve the an all expense paid(FOB Thatcher, your dealer". durability of toner is to run it back AZ) tinaja quest for two for the best. By the way, if you're only inter- through the printer a second time, You can either send me an unusual ested in printing Beta orVHS box, iron it, or send it through a Kroy card design that uses my PostScript spline, and face video labels, several Kolor machine. If you do this while code, or else show me a practical cheap and attractive blanks are now in contact with a thin sheet of mylar way to combine both the toner and available from thePolyline Corp . (such as an "empty" Kroy Kolor the thermographic ("raised ink") And if you need great heaping carier), the image willBakerize , and technologies together into one single bunches of custom labels or label both darken and pick up a high gloss. product. Let's hear from you. blanks of most any size, you might try my neighbor down the street, % "personal map" 12-up business card PostScript example Hy-Tech Identification Products. % ...... What is this month's % requires Don Lancaster's step-and-repeat, rubbergrid, and curvetracing PostScript utility? % modules, listed elsewhere in these reprints Well, this month I thought I would /font1 {/Helvetica-BoldOblique findfont [1.5 0 0 1.5 0 0] makefont setfont} def bring you up to date on the pitfalls /font2 {/Helvetica-BoldOblique findfont [1.1 0 0 1.1 0 0] makefont setfont} def and opportunities of laser printed /font3 {/Helvetica-Oblique findfont [1 0 0 1 0 0] makefont setfont} def business cards and similiar items. /font4 {/Helvetica findfont [0.8 0 0 0.8 0 0] makefont setfont} def Firstoff, there is no way you can /bakercard {0 0 10 setgrid 25 14 showgrid font1 2 10 (Tim & Linda Baker) compete one-on-one with the existing cl font2 1.8 8 ( tinajas quested ) cl gsave 2 9.3 m 0.35 setlinewidth 1 standard layout card sources. Several setlinecap 13 r gsave font3 2 3.5 (629 Quacker Way) cl 2 2.5 loss-leader ads in the Wall Street (Alkalai, VT 02999 ) cl 2 1 ((121) 842-9989) cl line2 12 1 m 23 13 lineto Journal will give you one thousand stroke 16 1 m 4.35 u gsave 21.5 8.2 m 40 rotate 0.7 0 rlineto 0 0.7 rlineto raised-print cards for around$8 . And -0.7 0 rlineto closepath fill grestore line1 [18 7.6 -20 22 4 -70] curvetrace there is also no way that toner can be stroke [20.1 6.5 45 24 9.5 50 22.5 12.4 130] curvetrace stroke font4 16.5 1 made as durable as regular ink, let (Milton Road) cl 21.3 4 (Hillside) cr 22 7 (Quacker) cl gsave 15 5 translate alone raised print thermography. 48 rotate 0 0 (Woodchuck Highway) cl grestore grestore} def The first unique thing you might offer is immediate service on totally /repeatproc {bakercard} def (businesscard) stepandrepeat custom business cards, delivered here Fig. 5 ± PostScript code for the "personal map" cards. and now. The second thing you can 41.5

Don Lancaster's IIgs numeric toolkit listing An exact IIgs video locking Post-justification edit ideas ASK THE GURU Handicapped tech resources August, 1988 Postscript input text scanner

ell, as that zookeeper The speedup mainly lies in the third party should soon have display said, we have got lots of difference between self-compiling PostScript available for the Mac and gnus this month. Apple hardware versus interpreting soft- the IIgs, possibly including a hard- Wis finally at the kicking ware. A dedicated hardware engine is ware speedup engine. More on this and screaming stage of putting the almost always much faster than using whenever and wherever. final touches on their new Personal general purpose interpreted soft- Details on writing your own IIgs AppleLink network, which should ware. But, obviously, not nearly as port and print drivers now appear in now provide direct end-user support flexible.Weitek apparently chose a the Apple IIgs Technical Notes #36 at the corporate level. middle ground here, in having such and37 . These should be available This will add to and supplement goodies as BitBlt transfers and cubic through the usualBBS and your user the already existingAppleLink net- spline generation done rapidly in group library sources. As always, you work that is now available to the user hardware, while they still software can now get a listing of your local groups, developers, and the dealers. interpret other PostScript commands. Apple and other user groups right Apple end user support, of course, is So far, the beast is neither fish nor here inComputer Shopper , or else long overdue. fowl, since it does not have the en- call(800) 538-9696 , Extension 500. Meanwhile, in a totally unrelated dorsement of eitherAdobe or Apple . There is also a special new users development,IBM has already intro- Those "also-rans" are sure glomping supergroup for club ambassadors. It duced a new stunningly spectacular onto this jewel, though. is calledAAIN , and is short for Apple end-user corporate level resource Apple continues to keep their head Ambassador's Information Network. that's namedIBM Link . They are to in the sand on this, laboring under Meanwhile, there's an outfit called be congratulated on all of their pro- the delusion thatQuickDraw is in K-12 MicroMedia that has bunches of gressive thinking and their ground some manner remotely useable, while AppleWorks programs and accessor- breaking innovation here. completely ignoring all of the over- ies available. You might like to give Especially in their uniquely orig- whelming advantages of standard them a call for more info. inal name choice. display PostScript. Nobody bothered There is absolutely no truth to the TheWeitek people have now just to tell them that QuickDraw never rumor that the super-secret new IIgs completely updumped the PostScript had been, is not now, and is highly upgrade is so fast that it can execute applecart by coming out with a new unlikely to ever become, a viable an infinite loop in one minute and hardware basedRISC microcomputer page description language. seventeen seconds flat. that directly is able to execute all its The laser printers that use Quick- And the winnar is . . . Dale Rice PostScript commands ten to thirty Draw instead of PostScript are all an of Lansing, Michigan does win the times faster than theLaserWriter NT . outright joke. Not to mention, in my all expense paid(FOB , Thatcher AZ) And do so at lower cost. That's ten to humble opinion, being a total ripoff. tinaja quest for two in our padding thirtytimes , not ten to thirty percent. Hopefully, though, at least one compound contest. To quote Dale "First, go to the bank and request40 or 50 brand new uncirculated one dollar bills. It is $C019 VBL------super important to get them in se- quence to insure they are crisp and 1 = vertical blanking; 0 = active scan uncirculated. Next, use the padding compound and some cardboard to create a note pad of the bills. Be sure $C02F VA- H5H4H3H2H1H0 to include a "now is the time to re- order" slip near the stack bottom. vertical lsb Now, take your pad along to your horizontal position counter favorite bar or restaurant, and when it is time to pay, peel off the bills from $C02E V5 V4 V3 V2 V1 V0 VC VB your George Washington notepad. It is better than candid camera!" Other entrants did suggest using vertical even line counter padding compound to bulletproof Easter eggs and other fragile craft items, and pointed out that ordinary Fig. 1 ± Those secret IIgs screen locking locations. food dye can be used to get other colors besides the stock red or white. 42.1 August, 1988

Did I ever tell you the one about Machine language location $C02E $C04E by itself will only read even myAsk the Guru reprints, or my will let you directly read the vertical vertical lines. Postscript Show and Tell, or my new line counting hardware. By changing Finally, that secret machine lan- Don Lancaster's PostScript Secrets the top of the screen while scanning guage location at$C02F lets you book and disk combo for all major the bottom, and vice versa, you can directly read the horizontal line coun- personal computers? Or all about my now do glitchless animation. By the ter. Since the horizontal counts do Hardware Hacker column that you way, the cause of many glitches is change at a one microsecond clip, might find over in Radio-Electronics giving the viewer a simultaneous mix you have to be super tricky to be able magazine? of the "old" and "new" information to use these horizontal counts for As per usual, this is your column during a field. anything at all useful. and you can get tech help and off- Note that there arenine vertical On the other hand, an exact screen the-wall networking per the end box. counter bits. The least significant of video lock can be done by repeatedly Our feature distraction this month these appears in$C02F , along with reading the horizontal line count with is an exitable PostScript text scanner. the horizontal counter bits. Thus, sneaky enough software. Which is But first, let's find out . . .

How can I do a IIgs Screen Lock? Apple Special Education National Braille Press On the original Apple II, there was 20525 Mariani Avenue 36-M 88 Saint Stephen Street no immediate or obvious way to tell Cupertino, CA 95014 Boston, MA 02115 where the video circuitry happened to (408) 996-1010 (617) 266-6160 be scanning at any particular instant. Children's Resource Center Pacer Center This produced badly torn animation, 1056 E 19th Avenue 4826 Chicago Ave South screen glitches, and other unpleas- Denver, CO 80218 Minneapolis, MN 55417 antries that usually gave you a less (303) 861-6633 (612) 827-2966 than optimum video display. Closing the Gap, Inc. SpecialLink Eventually, some sneaky hardware PO Box 68 2512 Canterbury Avenue and software tricks were discovered Henderson, MN 56044 Cincinnati, OH 45212 by Bob Bishop, by myself, and by (612) 248-3294 (513) 531-9233 others that let you do an effective screen lock with your software. This, Communication Resources Special Technical Center in turn led you to smoother screen 3201 Marshall Road Route 4, 433 East Lafayette Kettering, OH 45429 Jackson, TN 38301 changes, to glitchless animation, and (513) 298-0803 (901) 423-9058 the ability to mix text,HIRES , and LORES graphics in any combination Computer Access Center Special Technology Center anywhere on the screen, real-time 2425 16th Street Room 23 535 Race St, Suite 220 windowing, improved color killing, Santa Monica, CA 90405 San Jose, CA 95126 gentle scrolling, video wipes and (213) 450-8827 (408) 288-5010 fades, and, in general, all-around Computer CITE SuperGroup Evaluation more professional video results. 215 East New Hampshire 4129 Beaujolais Much of this is now ancient his- Orlando, FL 32084 Kenner, LA 70065 tory. Full details do appear in my (305) 299-5000 (504) 561-8713 Enhancing your Apple II and IIe, Children's Computer Group Technical Access Center volumesIII and . 2095 Rose Street 183 Lake Avenue The IIgs has three new resources Berkeley, CA 94709 Newton, MA 02159 that make doing screen locks of most (415) 841-3224 (617) 969-4279 any complexity much easier and far more powerful. Figure one bares all. Disabled Children's Group Technical Assistance Machine language location $C019 1146 South Third Street 1950 West Roosevelt Road has a simple vertical blanking flag in Louisville, KY 40203 Chicago, IL 60608 its most significant bit location. If (502) 584-1239 (312) 421-3373 this bit is a"1" , then the vertical re- Disabled Technical Center Technology Resources trace is taking place and anything 5759 Hedgehaven Court 3023 Canterbury you do to the screen will currently Las Vegas, NV 89120 Salina, KS 67401 remain invisible. (702) 382-3358 (913) 827-0301 If you do wait until the vertical Handi-Ham System Trace Development Center blanking interval before changing 3915 Golden Valley Road 1500 Highland Avenue any video mode, you might get a Golden Valley, MN 55422 Madison, WI 53705 glitchless change without any screen (612) 588-0811 (608) 262-6966 tearing or flashing. Note that the sense of$C019 is theopposite of that Fig. 2 ± Some technical resources for the handicapped. on the IIe. Watch this detail. 42.2 ASK THE GURU

------TOOL #0F - MENU MANAGER ------$010F- MenuBootInit $110F- GetSysBar $1F0F- SetMenuFlag $2D0F- NewMenu $020F- MenuStartUp $120F- SetSysBar $210F- SetMenuTitle $2E0F- DisposeMenu $030F- MenuShutDown $130F- FixMenuMItem $200F- GetMenuFlag $2F0F- InitPalette $040F- MenuVersion $140F- CountMItems $220F- GetMenuTitle $300F- EnableMItme $050F- MenuReset $150F- NewMenuBar $230F- MenuGlobal $320F- CheckMItem $060F- MenuStatus $160F- GetMHandle $240F- SetMItem $330F- SetMItemMark $090F- MenuKey $170F- SetBarColor $250F- GetMItem $340F- GetItemMark $0A0F- GetMenuBar $180F- GetBarColors $260F- SetMItemFlag 4350F- SetMItemStyle $0B0F- MenuRefresh $190F- SetMTitleStart $270F- GetMItemFlag $360F- GetMItemStyle $0C0F- FlashMenuBar $1A0F- GetMTitleStart $280F- SetMItemBlink $370F- SetMenuID $0D0F- InsertMenu $1B0F- GetMenuMgrPort $290F- MenuNewRes $380F- SetMItemID $0E0F- DeleteMenu $1C0F- CalcMenuSize $2A0F- DrawMenuBar $390F- SetMenuBar $0F0F- InsertMItem $1D0F- SetMTitleWidth $2B0F- MenuSelect $3A0F- SetMItemName $100F- DeleteMItem $1E0F- GetMTitleWidth $2C0F- HiliteMenu 4310F- DisaleMItem

------TOOL #10 - CONTROL MANAGER ------$0110- Ct1BootInit $0C10- SetCt1Title $1510- TrackControl $1E10- GrowSize $0210- Ct1StartUp $0D10- GetCt1Title $1610- MoveControl $1F10- GetCt1DPage $0310- Ct1ShutDown $0E10- GrowSize $1710- DragControl $2010- SetCt1Action $0410- Ct1Version $0F10- ShowControl $1810- SetCt1Icons $2110- GetCt1Action $0510- Ct1Reset $1010- DrawControls $1910- SetCt1Value $2210- SetCt1RefCon $0610- Ct1Status $1110- HiLiteControl $1A10- GetCt1Value $2310- GetCt1RefCon $0910- NewControl $1210- Ct1NewRes $1B10- SetCt1Params $2410- EraseControl $0A10- DisposeControl $1310- FindControl $1C10- GetCt1Params $2510- DrawOneCtl $0B10- KillControl $1410- TestControl $1D10- DragRect

------TOOL #11 - SYSTEM LOADER ------$0111- LoaderInit $0511- LoaderReset $0B11- LoadSegNum $0F11- GetLoadSegInfo $0211- LoaderStartUp $0611- LoaderStatus $0C11- UnloadSegNum $1111- LGetPathName $0311- LoaderShutDown $0911- InitialLoad $0D11- LoadSegName $1211- UserShutDown $0411- LoaderVersion $0A11- Restart $0E11- UnloadSeg

------TOOL #12 - QUICKDRAW AUXILIARY ------$0112- QDAuxBootInit $0312- QDAuxShutDown $0512- QDAuxReset $0912- CopyPixels $0212- QDAuxStartUp $0412- QDAuxVersion $0612- QDAuxStatus $0A12- WaitCursor

------TOOL #13 - PRINT MANAGER ------$0113- PMBootInit $0A13- PrValidate $1113- PrClosePage $1B13- LLDControl $0213- PMStartUp $0B13- PrStlDialog $1213- PrPicFile $1C13- LLDControl $0313- PMShutDown $0C13- PrJobDialog $1413- PrError $1D13- LLDText $0413- PMVersion $0D13- PrPixelMap $1513- PrSetError $2313- PrDriverVer $0513- PMReset $0E13- PrOpenDoc $1613- PrChoosePrinter $2413- PrPortVer $0613- PMStatus $0F13- PrCloseDoc $1913- LLDStartUp $0913- PrDefault $1013- PrOpenPage $1A13- LLDShutDown

------TOOL #14 - LINE EDITOR ------$0114- LEBootInit $0B14- LESetText $1314- LECopy $1B14- LEScrapHandle $0214- LEStartUp $0C14- LEIdle $1414- LEPaste $1C14- LEGetScrapLen $0314- LEShutDown $0D14- LEClick $1514- LEDelete $1D14- LEScrapLen $0414- LEVersion $0E14- LESetSelect $1614- LEInsert $1E14- LESetHilite $0514- LEReset $0F14- LEActivate $1714- LEUpdate $1F14- LESetCarat $0614- LEStatus $1014- LEDeactivate $1814- LETextBox $0914- LENew $1114- LEKey $1914- LEFromScrap $0A14- LEDispose $1214- LECut $1A14- LEToScrap

------TOOL #15 - DIALOG MANAGER ------$0115- DialogBootInit $1015- IsDialogEvent $1E15- GetControlDItem $2B15- DetNextDItem $0215- DialogStartUp $1115- DialogSelect $1F15- GetItext $2C15- ModalDialog2 $0315- DialogShutDown $1215- DlgCut $2015- SetIText $2E15- GetDItemValue $0415- DialogVersion $1315- DlgCopy $2115- SelectIText $2F15- SetDItemValue $0515- DialogReset $1415- DlgPaste $2215- HideDIItem $3215- GetNewModalDialog $0615- DialogStatus $1515- DlgDelete $2315- ShowDItem $3315- GetNewDItem $0915- ErrorSound $1615- DrawDialog $2415- FindDItem $3415- GetAlertStage $0A15- NewModalDialog $1715- Alert $2515- UpdateDialog $3515- ResetAlertStage $0B15- NewModelessDlog $1815- StopAlert $2615- GetDIItemType $3615- DefaultFilter $0C15- CloseDialog $1915- NoteAlert $2715- SetDItemType $3715- GetDefButton $0D15- NewDItem $1A15- CautionAlert $2815- GetDItemBox $3815- SetDefButton $0E15- RemoveDItem $1B15- ParamText $2915- SetDItemBox $3915- DisableDItem $0F15- ModalDialog $1C15- SetDAFont $2A15- GetFirstDItem $3A15- EnableDItem

Fig. 3 ± Numeric order list of IIgs tools (part 3) . . .

42.3 August, 1988 similar to theVaporlock that did appear in myEnhance II . An exact screen lock opens up all sorts of new % Copyright c 1988 by Don Lancaster and Synergetics, Box 809, Thatcher, video possibilities. % AZ, 85552. (602) 428-4073 All commercial rights reserved. Personal use What kinds of new possibilities? % permitted so long as this header remains intact. Demo disk costs $39.50. Why don't you show me? For this % Scans "raw" input text, converting to line-by-line strings for further month's contest, just tell me about % PostScript processing. Can be used for emulators that you can switch some new, sneaky, or mind-blowing % into and out of under software command, for "\" character substitution, thing you can do with an exact or a % to redefine the -escape- character or other special characters. partial software video lock. We'll % To begin scanning raw text, use the -startscan- command or an [esc]-g have all of those usual Incredible % alias. To stop scanning raw text, use an escape followed by your Secret Money Machine book prizes % -exitchar character. Scanning also automatically stops on end of file. for the best two dozen entries, and an % For the maximum possible speed, code similar to this should be included all expense paid[FOB , Thatcher, AZ] tinaja quest for two for the very best % inside your actual justification routines. Otherwise, speed will be lost % if you end up scanning any particular character more than once. The entry of all. % -stringwidth- command in PostScript is extremely slow. One tip: be certain to defeat any and all interrupts during the time an 6000 string /scanstr exch def exact screen lock is set up, or some /exitchar 120 def % use esc-x to exit scanner very wierd results may happen. /escsubchar 33 def % use escape as is What Technical Resources are /startscan {{ clear /more false def -1 { 1 add dup currentfile read not {pop Available for the Handicapped? exit} if dup 92 eq {rslashproc}if dup 10 eq {pop /more true def exit} if The personal computer has been % if you are not substituting escape, bypass the next line as a comment . . . the great equalizer for the handi- % dup escsubchar eq {pop 27} if capped, and we sure get lots of help line calls on this topic. Figure two dup 27 eq {exitproc} if scanstr 3 1 roll put } loop scanstr exch 0 exch lists many of the organizations and getinterval resources involving special education % replace the following line with whatever proc is going to use the newly and therapy. % created PostScript strings . . . BothApple and Tandy have quite excellent special education contacts myjustproc and resources available, as do many pop more not { exit} if} loop} bind def local ham radio clubs. As with just about any other field, % The rslashproc routine does reverse slash substitutions to the raw % input text as if it was a PostScript string. Replace with /rslashproc the resources are there; all you have % { } def if you do not want to use reverse slash substitutions. to do is dig into them on your own. All it takes is some time and effort. /rslashproc {pop currentfile read not {pop /more false def exit} if dup 41 eq { 1000 } if % replicate right paren Show me More of the dup 40 eq { 1000 } if % replicate left paren Main IIgs Tool List dup 92 eq { 1000 } if % replicate reverse slash As we have seen over the past two dup 98 eq { pop 8 1000 } if % substitute bs months, a complete listing of all of dup 102 eq { pop 12 1000} if % substitute formfeed the IIgs tools in numeric order is very dup 116 eq { pop 9 1000} if % substitute tab hard to find. Yet, it is extremely dup 110 eq { pop /more true def exit} if % end string on linefeed dup 114 eq { pop /more true def exit} if % end string on return useful for analyzing other people's dup 48 ge { dup 55 le {dooctal} if} if working IIgs code. Our third install- 1000 eq { } {pop 1 sub dup 1 add 0 } ifelse % substitute or replicate} def ment appears in figure three. Thetearing method that lets you /dooctal {48 sub 64 mul /oct exch def currentfile read not {pop /more false tear apart and analyze virtually any def exit} if dup 48 ge { dup 55 le {dothird} {1000} ifelse} if} def machine language code suprisingly /dothird {48 sub 8 mul oct add /oct exch def currentfile read not {pop /more fast and amazingly easy (I've even false def exit} if dup 48 ge { dup 55 le {48 sub oct add} if 1000} if} def taught this to seventh graders.) does appear in my Enhancing Your Apple /exitproc { pop currentfile read not {pop /more false def exit} if dup II, volume I. See you there. exitchar eq {pop exit}{exch scanstr exch 27 put exch 1 add dup 3 -1 roll} ifelse} def Any New and Off-the-Wall /[esc]g {startscan} def % an alias for startscan Graphic Arts Resources? /[esc]x { } def % reserve [esc]-x to exit Well, I do have a few loose ends that have been kicking around here Fig. 4 ± PostScript code for an input text scanner. for a while. Ferinstance . . . 42.4 ASK THE GURU There is an outfit called Photo- by connecting them across the ac possible aesthetics. labels that makes photographic prints power line. Sure enough, they got hot Paragraph five of corollary three directly onto thin and self-stick photo when you tried this. Totally inedible, of Swampfelder's seventh law of paper, with prices starting at twenty but hot. They also both burned your printing legibility states that any cents each in small quantities. tongue and left a bad taste in your "pretty" text is much more readable This can be one sneaky way to add mouth. and much more retainable than any full color to all your present desktop "correct" text. publishing capabilities. You just peel What is "Post-Justification By purposely making all your text and stick these onto whatever it is Editing?" slightly wordy and purposely chosing you are already printing. Several It is probably the simpliest and less than the perfect word in each different sizes are available, ranging most elegant way of dramatically position in each sentence, you might from "postage stamp" up to "post- upping the print quality of virtually dramatically improve both the reader card" formats. any and all desktop publishing work. enjoyment and comprehension ± pro- Calendars are one obvious possi- Post-justification editing is also ex- vided you do improve the "black bility, as are realtor listings. What tremely controversial since it kicks balance" and minimize any "space- others can you think of? sand in the face of just about all of ticity" of the layout in the process, Actually, "real" color printing need "them" at once. aiming for the smoothest and densest not be all that expensive. The Mod- Its only little advantage is that it visual result. ern Litho people will do all of the does work like a champ. But nobody So how do you go about doing photography, typesetting, mechanical believes it until they try it. After that, post-justification editing? art, color seps, stripping and printing they cannot live without it. Obviously, you start with a decent on a one-side, four color glossy sheet Anything you can possibly do to hyphenation routine. And then, you for a tad over seven cents each. In up the quality of any low resolution manually override that routine any quantities of a few thousand or so. printing can help dramatically. And, time it doesn't do the best possible Longer runs are even cheaper. conversely, anything that you do not job. Many auto-hyphen routines will As we've seen in previous col- do is sure to return to haunt you. only break at the first possible place umns, on-demand laser printing can We've seen in the past how nearly in a word, rather than at an optimum. be more than cost competitive with everybody always insists on using the Next, you add or remove connec- jiffy printing for smaller press runs, seventeenth lousiest gray with Post- tives. Nobody pays any attention at particularly if you do not know pre- Script, and how this can be fixed all to words like "a", "an", "the", cisely how many copies you are with a few keystrokes. Hint: 106 45 "do", and/or "all". So, add or remove going to sell, and especially if there {dup mul exch dup mul add 1.0 exch these to get the most uniform and the are to be revisions and updates. Full sub} setscreen. Or try a"135 25" . Or densest line. details on this have appeared in "95 25". Or even "85 35" . But never Another ploy is to either use or not previousAsk The Guru reprints, and that putrid stock"53 45" . Urp. use contractions. Use of a "let's" you'll be hearing much more on book We have also seen how you can takes up less space than does "let us"; on demand printing in the future. dramatically improve the legibility and "aren't" will use less space than On the other hand, if you need a and appearance of typography as "are not", and so on. known quantity of modest quality small as3 points at 300 DPI , through A subtle way of improving the line user manuals or any other technical a individual pixel by pixel "step and aesthetics that most publishers do publications at a very low price, do lock" technique. overlook is to use a slightly smaller check into thoseOmnipress folks. In our upcoming October column, type font for numbers or any capital These people use paper plates and we will be seeing just how you can strings. Fractional font sizes are a "shoot and go" litho techniques to go to an upgraded and very sop- must for this sort of thing. hold down production costs. Their histicated, three-stage progressive It also pays to stash a list of your final quality is not all that awful, gonzo fill justify including such favorite "alike but different some- especially for tech manuals. The features as a minimum auto-kerning, how" words whose meanings are all turnaround for fully bound books or hanging punctuation, drop caps, and more or less the same, but which will manuals can be less than a week. lots of similar goodies. take up different amounts of space. TheGBC people have announced a But, let's assume that you are still "Some", "a few", and "several" are new thermal binding scheme that using Ragemaker or something sim- obvious examples. resistance heats the actual glue in the ilar that has, at its best, some sadly Adjusting each paragraph so it binder, rather than needing a fancy mediocre fill justify routines. What ends in the middle of a line, rather "toaster" like the previous methods can you do to improve your final text than at the extreme end or beginning, do. Most of their current binding appearance? can also greatly improve readability tools and products are priced out- Just this:After all of your final fill and appearance. Adding or removing rageously high, though, so don't get justified text is in its final form on words is the obvious way to handle your hopes up on this one. the final page, you go back and let this task. This one sounds sort of like those the original author individually and You also want to avoid widows old hot dog cookers that directly by hand adjust each and every one of andorphans , which are single words electrocuted several hot dogs at once the printed lines for the very best of or very short lines at the top or 42.5 August, 1988 bottom of any column. These are mands on "raw" input text files? The characters get tested per the rules in especially bad at the beginning or reverse slash commands normally figure five, and all the needed com- end of any page. The same tricks you will work onlywithin internally mands or characters are substituted used to lengthen or shorten your defined strings. into the line string. Finally, if an paragraphs will also work here. Or, perhaps you want to handle end-of-scan command, the scanner Using the widest feasable columns such printing tasks as using several will kick out and drop you back into will also help. Columns less than "an embedded "escape" sequences on a PostScript. alphabet and a half" wide will intro- host that can only output printable Scanning also ends automatically duce all sorts of visual problems that lowASCII characters, or has other at the end of the file. are inordinately hard to overcome, restrictions to non-printing codes. Two loops are involved. The inner even with many trips through your Or access all of the192 Zapf ding- loop builds a single text line on a postjustification editing process. That bats? Or do some sort of automatic character by character basis. The really drove me up the wall back in character substitution? outer loop keeps building text lines volume one, before Computer Shop- Or maybe you want to read any old so long as any additional characters per went to their wider, and far more data base, and convert it into some remain, or until an end-of-scan com- readable, columns. proportionally spaced yet perfectly mand gets received. Sometimes, working upside down aligned columns in a mixture of fonts Our upcoming new gonzo justify can help you bunches, particularly and different justify modes. routines will make extensive use of when it comes to picking out shading This new text scanner works by this input scanner, so we'll be seeing problems, or flowing "rivers" caused grabbing one input character at a lots more on this code. by improper alignment of spaces on time. Those characters are tested to Any input text scanner will, of several successive text lines. Again, see whether they are an end-of-line course, slow you down. This par- add, remove, lengthen, shorten, ab- linefeed character, the substitution ticular one has been optimized for breviate, debreviate, or change the character, a reverse slash sequence, speed in several ways, but still stands tense to eliminate any and all of this or an end-of-scan command. some improvement. Ideally, when type of problem. If an end of line character, then the you finalize all of your PostScript Another obvious use for all your newly created PostScript line string code, you should combine input text post-justification editing is for fitting is passed on to whatever it was that scanning with some other tasks. In text to the available space. you wanted the string for in the first particular, it is unforgivable to have And that is what post-justification place. It is then further processed. to scan each and every character two editing is all about. With practice, it If a substitution character, then the or more times. can be fast and simple, and will most needed code substitution is made. For Many more details on all this text often dramatically improve the ap- instance, you might like to use a "!" scanning code, as well as ready-to- pearance of your final images. in your host, instead of embedding run versions of the latest updates on escape commands, if your host does many of my previous PostScript What is This Month's prohibit you from embedding any goodies now appears in my new Don PostScript Utility? control commands into a PostScript Lancaster's PostScript Secrets, av- We will have a heavy duty routine or other textfile. ailable for most popular computers. for advanced PostScript hackers this If a reverse slash, the next few Write or call for more info. month that can solve a bunch of very sticky problems for you. The figure four code is for an input text scanner. \b ± substitute backspace A text scanner can take a plain old \f ± substitute formfeed text stream from any old source and \n ± substitute linefeed \r ± substitute carriage return convert it into strings, one for each \t ± substitute tab line of text encountered. Many of the \( ± substitute opening parenthesis PostScript routines expect strings as \) ± substitute closing parenthesis input, and manually putting paren- \\ ± substitute reverse slash thesis around each text line can get old very fast. \nnn ± substitute ASCII character of octal code So far, text scanning is no biggie. #nnn For instance, \320 is an em dash. PostScript'sgetline command works Any other character following a reverse slash just fine for this. And, most of those gets ignored. This is one convenient way of stock emulators are nothing but fancy supressing any unwanted carriage returns forced text scanners in disguise. by the formatting code in some word processors. But, suppose you want to write an With the input text scanner of figure four, all emulator that you can switch into or of these reverse slash commands may be modified out of at any time under your own or extended in any manner. full software control. Or, suppose you want to make use Fig. 5 ± PostScript "reverse slash" string substitution commands. of PostScript's "reverse slash" com- 42.6 Don Lancaster's Sight reading an eexec file Bad SX cartridge problems Omnicrom and Kroy Kolor ASK THE GURU Direct input from/to Apple September, 1988 Cheap new fusion machine

just got back from theAZ Apple 65832 chips and some other unmen- various bulletin boards. It's only a Fiesta and assembly language tionable goodies in the works, WDC matter of time before someone adapts developers conference. One big has a brand new in-circuit 65XXX a display PostScript system like this Ithing that struck me right off emulator(ICE) board product that can one to one or more low end print- the top was how the style and flavor leap tall buildings in a single bound. ers. Two products in the works are of all the leading Apple IIc, IIe and While emphatically and positively GoScript and Freedom of the Press . IIgs assembly tools exactly reflects not promoted as such, thisICE is the I am in the process of chasing all the personalities and mind-sets of Apple software pirate's dream tool. It these down. Stay tuned. their creators. flat out defeats100 percent of all Let's see. Yes, we do continuously While lots of useful results and known forms of all program software stock Adobe's red, blue, and green otherwise good vibes came from the protection to date. books here atSynergetics . These are conference, the key problem of the Few people realize that derivatives absolutely essential to any intelligent totally unacceptable frustration level of the original6502 chip are far and use of PostScript. Start with the blue of the current IIgs programming en- away the best selling microcomputers cookbook. While I have bunches of vironment never did seem to get it- in the world today. The big players my own PostScript products avail- self properly addressed. areSony , who uses zillions of these able, myShow and Tell is usually One most interesting sidelight of in all theirVCR 's and whatever, the your best starting point if you already the conference was the tour of Bill Mitsubishi folks with an extensive have a PostScript printer, or my Mensch'sWestern Design Center . line of semi-custom devices (check Introduction to PostScript video if Some of the finest and the most out their super whiz bangM50734) , you do not. Go for it. innovative new microprocessor de- theWestern Design Center , with all I've also got a brochure or two for signs in the world come from this their65816 and newer products, NCR you that provides all sorts of insider family operation all done out of a andMOS Technology , who are two of sources for great free stuff. Write or remodeled home. the commodity production houses, call if you are interested. The dozen or so employees have andCommodore , who now have a As per always, this is your column time and again outperformed all of brand new6502 in the works that and you can get tech help and off- Motorola and Intel combined. does a40 percent speedup by use of the-wall networking by calling or This is the home of the Apple IIgs fewer machine cycles on such things writing me per the end box. CPU. Unlike some other companies I as conditional branches. This month, we'll have a special better not mention,WDC actually Lots of helpline callers have asked one-time "double whammy" for all of uses the products they design for all when PostScript will be available for you desktop publising fanatics ± first of their day-to-day operations. All their Imagewriters and similar dot details on a low cost machine to fuse theCalma development stations and matrix printers. Well, it turns out Omnicolor or Kroy Kolor, and then theVersatec plotters are ultimately there is aUNIX based and public info on how to "sight read" most any controlled by Apple IIgs computers. domain British version of display PostScripteexec file. Besides having some new32- bit PostScript now kicking around on the But first . . . Does Anyone at Apple Ever Listen? Heat and pressure fuses ink to re-melted toner The Apple II Marketing Manager Omnicrom ink Omnicrom ink over atApple Computer is Peter and carrier opaque negative Sandys. Peter most definitely does welcome any of your courteous and well thought out letters on future Apple II directions; on any problems you have found with any existing products and systems; or on any sug- gestions for improvements of most Toner original Ink coated any reasonable sort. I believe he is toner original serious and will act on user input. But, please, please do not overload him with personal tirades or ask him to referee a local dealer squabble. Fig. 1 ± How the Omnicrom / Kroy Kolor process works. Peter's AppleLink mail address is SANDYS. 43.1 September, 1988

What is the Canon SX Cartridge Debacle? 1 ± Canon F21680 Fusion machine using a FH1-0576-01 temperature pc card. The LaserWriterNT and NTX are both absolutely outstanding laser 1 ± 25K linear volume control printers, but unlessCanon immed- 1 ± 150K, 1/2 watt resistor 1 ± Dialplate decal iately cleans up their act on the SX 1 ± Dialplate decal overlay cartridges that go into them, both the 1 ± Push-on knob with pointer NT and the NTX are history. Dead meat. Color them gone. Misc: 12 inches of red solid #22 hookup At present, there is as much as a wire; 12 inches of similar green 15:1 per-page toner cost penalty for wire; 12 inches of similar black using the newer LaserWriters, when wire; 8 inches of solder; two 3/8 compared to the original LaserWriter inch volume control nuts; 1 flat and the LaserWriter Plus. And, yes, volume control washer; 1 internal all those older machines are just as tooth volume control lockwasher. black when they are on their second Note: One source of the Canon fusion or third refill using a good third party machines, parts kits, and modified toner source. and tested units is Arlin Shepard Which means that theNT and NTX at Lazer Products, 12741 E. Caley are currently totally useless for any Avenue, Suite #130, Englewood serious production work. I have been CO, 80111. (303) 792 5277. forced to go back to my older Laser- Fig. 2 ± Parts list for a cheap Omnicrom fusion machine. Writers for all my book-on-demand printing, and for most of my other production work. Others seem to be Canon is currently batting.000 , at remove all of the toner from a factory doing the same. least in this inning. A trade to Balti- fresh cartridge and replace it with a As we've seen in several previous more is imminent. suitable third-party toner. They often columns, you can get LaserWriter or I have asked around, and I am will pass on the original toner on to LaserWriter Plus toner costs down shocked to report that I have found their local diesel mechanic for use as into the0.3 cents per page range. The no one using these cartridges that did valve grinding compound. NT and the NTX currently will often not have their own equally bad horror O.K., here's what has to be done cost out at a nickel per page or even stories to relate. and done now: TheSX cartridges substantially higher. I would dearly love to show you must be dramatically reduced in price More to the point, there is a5:1 per how to refill these cartridges. But I and then absolutelymust be made page toner cost penalty compared to have yet to receive one that was not refillable by the end user. A toner the competingNEC LC890 user refill- so badly scratched that there was no that is far less abrasivemust be used. able PostScript laser printer that is point in refilling it. Others report a 33 A drum that is far more scratch currently running away with all of percent one-timeSX refillability rate. resistantmust be used. A good drum the marbles and then some. Some refillers do report excellent conditioner and/or lubricantmust be Forgetting temporarily about the refilling success if they immediately added. The poor engineering on the CanonSX cartridges being obscenely overpriced, my own experiences with these cartridges do reflect the many valid complaints I've been receiving. Here's what is happening . . . TEMPERATURE I bought five brand new Canon SX cartridges directly from Apple. The normal first cartridge ran out of toner after 1700 pages. The second cartridge de- veloped two really awful scratches, long before it ran out of toner. The third cartridge had a total mechanical jam when received and deliveredzero copies. That fourth cartridge developed more serious scratches, again long before running cool hot out of toner. For some very strange reason, I am hesistant to so much as remove the fifth cartridge from its Fig. 3 ± Full size temperature dial decal artwork. shipping box. 43.2 ASK THE GURU drum wipers that cause scratching simply are not acceptable. through a magic machine where real must be completely redone. Please continue to send along all ink would somehow stick only where I sure would like to employ my yourSX horror stories. More on this the toner already existed. fast and shiny newNTX for my as the drama unfolds. Obvious uses would be to get truly production work here atSynergetics . dense blacks, to be able to provide But, I am instead forced into still Tell me About Omnicrom "litho" quality images for my printed using my300,000 copy long-in-the- and Kroy Kolor circuits, overheads, or for electronic tooth LaserWriter Plus. For years, I've had a back-burner artwork, to gain total color options, The obscene per-page toner costs project going. The idea was to take and to provide a durable raised ink and the scratchy images on the NTX an ordinary Xerox copy and run it thermography process, for letter- heads, for custom business cards and even for use when printing in Braille. ( ) Verify that the unit to be modified is in fact a Canon F21680 machine and then unplug the line cord from the AC outlet. It turned out that an English outfit ( ) Remove the center lid by raising the green handle and removing the two black screws by the name ofOmnicrom beat me to at the rear and the two silver screws on the inside. Be gentle! the punch. As figure one now shows ( ) Remove the right cover by removing the two silver screws at the rear, the black screw at us, Omnicrom reasoned that toner the right bottom, and the black screw at the front bottom. Again, be gentle! was really a mixture of black stuff ( ) Cover the temperature decal with a similar sized clear self-stick overlay. Neatly trim the and hot glue. You could think of a decal to just outside the black border. copy as a piece of paper that had hot ( ) Clean the front of the right cover and apply the temperature decal so it is 3/8 of an inch glue selectively placed only where in in and 3/8 of an inch up from the lower lefthand corner. (See Figure five) you really wanted it. ( ) Drill a 13/32 inch hole at the crosshairs on the temperature decal. This is easiest to do By putting a dry ink based carrier with a Vise Grip UNIBIT, but a pilot hole and reamer can be used instead. Deburr the in contact with the Xerox copy and hole. applying heat and pressure, the toner ( ) Mount the volume control in the hole. Use a nut and a lockwasher behind the panel and a nut and flat washer in front of the panel, adjusting for a flush mounting. would remelt and grab the dry ink off the carrier sheet. ( ) Solder the 150K resistor to the center lug of the volume control, keeping the lead both reasonably short and mechanically strong. (See Figure six) Presto. The near instant conversion of a copier or a laser printed output ( ) Form a loop in the free end of the resistor and trim the lead. Strip 1/4 inch off of both ends of the green wire and solder one end to this resistor loop. (See Figure six) into brilliant metallics, bright mattes, ( ) Strip 1/4 inch off both ends of the black wire and solder it to the leftmost lug of the a solid black, silvers, golds, and even volume control when viewed from the rear bottom. (See Figure six) some pearl effects. ( ) Strip 1/4 inch off both ends of the red wire and solder it to the rightmost lug of the Along with a unique shiny high volume control when viewed from the rear bottom. (See Figure six) gloss varnish or even a true plastic ( ) Twist all three wires tightly together for all but the last inch of their length. laminating for scuff-resistant menus ( ) Unplug the black and white motor connector from the innermost circuit board. Unplug or book covers. the two heavy red wires from the motor speed sensing power resistor. As a bonus, the carrier sheet can ( ) Remove the three large Phillips screws that hold the circuit boards in place. You may also become an "instant negative", have to restrain the white circuit board spacers to keep them from turning when you do useful for such things as overhead this. transparencies. If you wanted to, you ( ) Slide the two circuit boards out where you can work on them. You may have to work could even reuse any remaining part some slack in the yellow thermistor wires. Unplug the five pin black and blue connector. of any carrier as often as you liked. But there were serious problems. ( ) Verify that the yellow thermistor wires go to a FH1-0576-01 printed circuit board. The Omnicrom people were Brits and ( ) Route the twisted black, red, and green wire between the motor starting capacitor and thus predictably and monumentally the motor control power triac. Then route it along the yellow wire, through the small hole, and to the FH1-0576-01 printed circuit board. mismanaged all of their marketing ( ) Loop and solder the black wire to the inside end of diode D303. (See Figure six) efforts in the colonies. Their early materials were not all that reliable. ( ) Loop and solder the green wire to the outside end of resistor R307. Worst of all, they saw nothing uncon- ( ) Loop and solder the red wire to the outside end of diode D304. scionable about the charging of over ( ) Replace both circuit boards, the three large Phillips screws, the black and white motor $1400 for a fusion machine that was connector, the two red power resistor wires, and the blue 5 pin connector. Redress the yellow thermistor leads back the way they were. nothing but a pair of heated rollers that would turn for you. ( ) Verify that the right cover can go back on without pinching any wires and that there are no wires anywhere near the large gear or other moving parts. A few years ago, the Kroy Kolor ( ) Verify that all connectors and wires are now secure. people did become an Omnicrom licensee and then dramatically im- ( ) Replace the right cover and the lid using the original screws. proved all the materials, added more ( ) Press the knob onto the volume control shaft, being certain that the pointer points straight up to NORMAL when at the center of its rotation range. colors and options, and made them much easier to get. They also did ( ) Refer to the text for the checkout procedure. improve and modestly lower the cost Fig. 4 ± How to make the fusion machine modifications. of all their fusion machines. You can get several free evaluation 43.3 September, 1988 samples by calling Randy Bailey at Kroy. They also now have lots of on-off switch sign-building accessory kits and some heavier gloss printing stocks. But, judging from thePerrier in TEMPERATURE all of their corporate birdbaths, Kroy normal does appear to be a company of, by, and for Yuppies. "Low end user cost" is not presently in their vocabulary. 3/8" If you do not own aBMW , they do cool hot not appear to want you as a customer. So, it might still take a long while before some genuine competition can drive the end user costs down to the 3/8" nickel per sheet mass market range where they rightfully belong. Fig. 5 ± Location of the new fusion dial decal. Kroy Kolor is a fantastically great product wherever its sixty cents or so per sheet cost can be justified. This Rumor has it the machines were works especially well with the SX product totally revolutionizes what somehow involved in creating color toner cartridges, such as those used you can do with a copier or a laser overhead transparencies. in a LaserWriterNT or NTX . printer. The sad thing is that it could At any rate, The only difference The only little problem I have do so much more if only it were between a genuine Omnicrom fusion found with the modified unit is that sanely priced for the end user. machine and a Canon fuser unit is you have to trim your laminating film around5:1 in cost and the fact that to a maximum width of8-1/2 inches. Show me how to Build a the stock Canon fuser machine was Kroy'sColor Plus machine shares Cheap Omnicrom Fuser preset to a fixed lower temperature. the same problem, at least at present. You do not need$1400 to use Fortunately, for sixty cents worth Figure two shows you a parts list either Omnicrom or Kroy Kolor. All of parts and twenty minutes work, for this mod. Figure three is a full you need is heat and pressure. you can convert the Canon unit into a size replica of the new dial decal. For instance, a plain old iron and a beast that actually will outperform Figure four gives you the detailed muslin pressing cloth will do the job the Omnicrom machine and do so at instructions, while figure five shows just fine. You can also use those a tiny fraction of the going cost. you where to position the decal on existing fusion rollers inside your That super rugged Canon unit does the front of the machine. Finally, laser printer or copier, by making a give better results both because of a figure six is a pictorial for the mod. second pass while hand feeding a slower feeding speed and several The fusion unit does its thing by blank page. The process works best self-cleaning roller wiper pads. It comparing a thermistor's resistance with the metallic colors. But, you might occassionally get a misfeed, wrinkles, or dropouts. yellow wires from thermistor A few of the newest copiers are set FH 0576 01 up to directly use Kroy Kolor. fusion board 25K linear One trick that works well and can potentiometer dramatically drop the price is to use spot color. Ferinstance, on a letter- head, you tape a small piece of Kroy D303 D304 Kolor applied only to the logo and then run it back through the printer. R308

Be sure to use a very low tack tape, FG - 1 4274 such as the Scotch Post-It Cover Up R307 Tape, from your local office supply. But there is a better way. It turns black red out there is a wondrously bizarre ma- R301 chine that is available today on the surplus market known as a F21680 150K, 1/2 watt Canon Fuser Unit. resistor Nobody (and especially all of the green (brown-green-yellow) Canon dealers!) had even the slight- twist wires tightly together est idea what these machines were for or how to use them, so they were Fig. 6 ± Pictorial of the Canon Fuser Machine Modification. all dumped at fire sale prices. 43.4 ASK THE GURU against a fixed voltage reference. The colors, and a slightly lower setting of the eexec files. modification lets you raise or lower for the laminating film. With some patience, eexec files that internal reference by sourcing or Some users report better feeding can be directly "sight read", without sinking extra current. with the exit rollers depowered. Try needing anything fancy in the way of The temperature range is set by a both powered and unpowered and see insider knowledge or exotic tools. new150K resistor. A higher valuere - which you like better. Everything you need is right there in stricts the range, while a lower value Here's another tip: If you run a the red and blue and green books. willextend it. A half-watt resistor is toner copy through the machine in There are compelling and over- chosen here because it is physically contact with a thin sheet of polyester whelming advantages to converting stronger than a quarter watt one. "mylar" film or by using an "empty" all of your downloadable fonts into The checkout procedure is fairly Kroy Kolor carrier, your copy will ordinary textfiles. Once converted, simple. Center your new temperature Bakerize, giving you a more durable, they often will store in less than half control and then apply the power. blacker, and a semi-gloss finish. This the space and download in less than The panelLED should start blinking is handy for such things as quick and half the time. You can now create a dim green and the internal fusion dirty business cards, and is a zero "short fonts" where you only need a lamp should come on. After one cost process. few special characters for an often minute, the fusion lamp should go Among many other sources, these used logo or label. out and theLED should change to a surplus Canon fuser units are now You can also now add or modify continuous green. available by way of Arlin Shepard at any character anywhere in the font Advance the temperature control Lazer Products. while rearranging the scenery to suit clockwise by one quarter of a turn. Modification kits and some fully yourself. Or extract character shapes The fusion lamp should come on for modified and tested units are also for special uses. Such things as the three or four seconds. available, all at a tiny fraction of the complement bars needed for elec- Retard the temperature control current cost of the real Omnicrom tronic text are now easily done. You fully counterclockwise and then wait fusion machines. can also now do the true perspective, a few minutes. Eventually the fusion "3-D" and other specialized font lamp should come back on for a few What is This Month's transformations much faster than you seconds. When the lamp goes back PostScript Utility? could by using the slow pixel line off, then advance the control by one Many downloadable fonts and lots remapping that was demanded by quarter turn. The fusion lamp should of other PostScript utility programs eexec format files. go back on again for a few seconds. are stored in aneexec data format. As At any rate, figure seven shows If all of these tests are passed, you might expect, far and away the you how to sight read an eexec file. center the temperature control and try number one PostScript user demand What you do is get into a two-way a metallic Kroy Kolor sheet. Use the on both the helpline and on our communicating environment using an "normal" setting for metallic foils, a PostScriptBBS is for a simple and error trapper that can dump the stack somewhat higher setting for the matte easy way to read and understand all dump. You then use either achopper tool that downloads the file up to a cursed First, set up the following . . . character, followed by a [d] end- (1) A two-way communications environment that lets you receive and record error messages. of-file; or else aninserter tool that adds an extraFF or an AA into the (2) A method of transmitting a PostScript file up to a cursed character, followed by a [d]. eexec file hex pair data stream. (3) An error trapper that dumps the stack, such as on page 205 of the green book. With either tool, the error trapper's Then, try these two tools . . . error message and stack dump will (4) The CHOPPER works by truncating the eexec file and seeing what kind of error return enough information that most messages you get back. From the stack dump, the eexec file can be reconstructed. portions of most eexec files can now (5) The INSERTER works by adding an extra FF or AA into the eexec file and seeing readily be reconstructed. what kind of error messages you get back. From the stack dump, the eexec file There are advantages and limita- can be reconstructed. tions to both the chopper and the Here's a practice file to get you started . . . inserter. There are also advantages currentfile eexec and limitations to working forward or 3a6407b312f073e1f86dc6433724cca95ce3654946cebf2cf38791da40c2cc45 backward through the eexec file. I 1d47ce34c2f6c0f1f6a2032c50a968def6c962731e815302344a7c3919d99ce1 will let you check out and explore all 14b84aab08fbed4e7a0a2af900f9e86efd82231015e6ea6a219d87e863cb56e2 153618cf3544d1a1217acba9d90343d8da484f02fa5b59365c94b678044f9098 of these on your own. Figure seven also does give you a -----userdict/RD{string currentf ile exch readstring pop executeo sample fragment of an eexec file and nly}put userdict/ND{noaccess def its standard text equivalent. Use this executeonly}put dup/Private 8 d for practice before you begin. More powerful tools can easily be Fig. 7 ± How to "sight read" a PostScript eexec file. added to speed up and automate the eexec sight reading process. 43.5

Don Lancaster's Duplex color tricks Gonzo Justify Stuff Color proofing systems ASK THE GURU Anti-Scratch Pixie Dust October, 1988 New IIgs System Software

oy, a whole flock of them Meanwhile,Adobe Systems has a driver is now faster on images and flew over that time. Apple freeFont and Function typography supports vertical condensed printing. has at long last officially catalog out that includes some useful A new and totally useless Image- Bflushed Pascal. Pascal was design and layout ideas. Writer LQ AppleTalk driver will now basically a laboratory animal that had Turning to all my own products, recognize the machine but will not escaped. Unfortunately, it did do an besides theAsk the Guru reprints, we support any of its features. incredible and incalculable amount of now also have the Hardware Hacker While there are substantial new damage to both academia and general reprints from the sister column to this improvements in those LaserWriter computer literacy well before its long one over inRadio-Electronics . drivers for the applications willing to overdue extermination. There's a new disk for the gonzo play Apple games in Apple's way, a The heir apparent would seem to justify stuff we'll feature here, and, plain oldSend PS is still conspic- be the"C" language, helped along by as usual, our PostScript Show and uously absent. You can, however, some closely linked and tightly writ- Tell, available for most computers. still rearrangeIWEM to make it into ten assembly language modules. The gonzo biggie this month is just an acceptable no-nonsense PostScript TheAPW development system on that ± the gonzo justify I have been driver for custom uses. the IIgs and theMPW development working on for several years now. Also still missing are the crucially system on the Mac are good places to But first . . . needed drivers for Epson and other start using"C" . Both of these are now dot matrix printers, for LaserJets, and available throughAPDA . What is in the new IIgs for ink jet printers. What aboutUNIX or A/UX ? While v3.2 System Master Disk? There are several new tool sets, in- UNIX is written in "C" , I personally Well, let's see. First, it boots faster cluding one for audio compression feel that (a) It is insanely bloated, (b) and is better organized, and literally and expansion. These can reduce file It is already hopelessly obsolete, and hundreds of bugs have newly been sizes by fixed factors of2:1 or 8:3 . (c) anything thatAT&T is in favor of corrected. Or at least changed. The window manager has been has got to be suspect. ProDOS16 can now boot over greatly improved and includes a new Let's see. There is a new version AppleTalk, and the bugs in handling ap-note with details on defining your 3.2 system master disk for the IIgs. very large and single byte files have own windows. More on this shortly. The bottom line been corrected. The random memory There is also an inch thick bunch is that their printer driver improve- trashing has also been fixed, along of new documentation, including full ments are far too little done far too with an easing of all theSCSI hard specs for the Sound Tools, the Note late, but that there's lots of other neat disk format problems. Synthesizer, Audio expander, MIDI stuff included in the upgrade. The printer drivers have been im- tools, and the Note Sequencer. Quite a few of you helpline callers proved somewhat in a too little and For details on the upgrade, see have been asking for methods to run too late manner. The ImageWriter your local Apple dealer or your user PostScript on the low-end dot matrix printers. Well, to do so would be the equivalent of putting a new Porsche engine onto a skateboard. Nonetheless, theLaserGo people are the first ones out with such a Make from the toe of product. Right now, it is mainly for a child's athletic sock, IBM use, but Apple versions are cer- a rubber band, and two tain to follow. heaping teaspoons Apple Computer does have a few of pixie dust. special interest publications that you might want to be aware of. For you developers, there is their Viewpoints newsletter and their Outside Apple quarterly magazine. For all of you bureaucrats, check intoInnovations . For librarians, there is theApple Library User's Group , and, among their many educational publications,Wheels for the Mind is Fig. 1 ± A pixie dust duster. just about the best. 44.1 ASK THE GURU group. Or check on AppleLink. As a % GONZO JUSTIFY MODULES gonzo.dl.2 version 100.4 July 28,1988 reminder, a free list of all your local % Copyright c 1988 by Don Lancaster and SYNERGETICS, Box 809, Thatcher, AZ, 85552 user groups is available by calling up % (602) 428-4073. All commercial rights reserved. Personal use permitted so long as this % header remains present and intact. $39.95 Disks are available for all major computers. (800) 538-9696, extension 500 . /persist true def persist {serverdict begin 0 exitserver} if /sfix 0 def /cfix 0 def What are Color /justx (justF) def % justification l = left f = full, etc. /endtheline { closeline lastparline {pop pop}{startnewline}ifelse} def /closeline {/fontsave fontn 4 Proofing Systems? get def printsubstrings fontsave changefont /ypos ypos yinc sub def colcheck} def Acolor proofing system is any % swallowandhang removes any trailing spaces from the line where they would interfere with way of creating an accurate mockup % fill and right justify. It then optionally hangs the punctuation as needed. or a prototype before an expensive /hangflag true def /str ( ) def /hanglist (-.,:;"')\261\320) def /hangfract 0.67 def /reallyhang { hanglist { hangchar eq {str 0 hangchar put str stringwidth pop hangfract mul sparechange exch and high volume color printing job is add /sparechange exch def exit }if } forall} def /hangpunct {dup dup /hangchar exch def 97 lt begun. There are dozens of different exch 122 gt or {reallyhang} if exit} def color proofing systems available. /swallowandhang {lastchar 1 sub -1 0 {linestring exch get dup 32 eq {pop /#spaces #spaces 1 At least in theory, some of these sub def /#chars #chars 1 sub def /sparechange sparechange spacewidth add def}{hangpunct} ifelse} for} def should be ideal for newer desktop publishing and LaserWriter uses. /justF {swallowandhang #spaces dup 0 gt {lastparline {sparechange txtwide 0.10 mul ge {/sfix maxsstretch 0.40 mul def}{/sfix 0 def} ifelse /cfix 0 def}{sparechange exch div /scfix exch def Unfortunately, it is extremely dif- xpos1 scfix dup maxsstretch lt {/sfix exch def /cfix 0 def}{pop maxsstretch /sfix exch def scfix ficult to getany information on any maxsstretch sub #spaces mul #chars 1 sub div dup maxcstretch lt {/cfix exch def}{maxcstretch dup /cfix exch def sub #chars 1 sub mul #spaces div sfix add /sfix exch def} ifelse of these, so I'll let you tell me, rather }ifelse}ifelse}{pop /sfix 0 def /cfix 0 def} ifelse endtheline} def than vice versa. /justL {/sfix 0 def /cfix 0 def endtheline} def We already know about the Kroy /justR {/sfix 0 def /cfix 0 def swallowandhang gsave sparechange 0 translate endtheline Kolor process that uses a carrier to grestore} def convert black toner images into most /justC {/sfix 0 def /cfix 0 def swallowandhang gsave sparechange 2 div 0 translate endtheline any metallic or matte color. grestore} def And, we have briefly looked at the /changefont {dup fontn 4 get ne {fontn exch 4 exch put fontn cvx exec /spacewidth ( ) Color-Key and the Scotchcal Label stringwidth pop spacestretch add charstretch add def}{pop} ifelse} def processes from3-M . These use a /changejust {dup justx 4 get ne {justx exch 4 exch put}{pop} ifelse} def simple photographic chemistry to /escapeproc {pop linestring 1 index /sparechange exch def 2 index 1 add dup 1 sub /oktohere give you clear and colored areas on a exch def get /cmnd# exch def createss /ssok false def polyester sheet or label stock. % cmnd# TheLetraSet people have some ( ) dup 0 cmnd# put cvn gonzolink exch get exec exch 1 add dup 1 add /ssstart exch def stuff calledLetraChrome proofing /oktohere {ssstart} def exch exit} def materials, but these turkeys were so /otherproc {{dup (\033) eq {escapeproc} if dup (\n) eq {pop dup /sparechange exch def 1 index snotty to me that I hesitate to even /oktohere exch def createss justx cvx exec exit}{pop exit} ifelse}loop } def mention their products at all. /spaceproc {/#spaces #spaces 1 add def pop dup /sparechange exch def 1 index /oktohere exch def /ssok true def spacewidth sub dup 0 lt {createss justx cvx exec}{dup /sparechange Then there isIdentiColor , who exch def 1 index 1 add /oktohere exch def}ifelse} def does seem to be at the center of the /commandscan {dup ( ) eq {spaceproc}{otherproc} ifelse} def /fontn (font?) def color proofing universe. They also % during scan, the running line sum is on the stack above the running character counter. can do decals and metal foils. What they do when you write or call is /firstuseflag true def % removes PostScript stringsave bug send you a big packet of absolutely /gonzojustify {firstuseflag {fontn 4 50 put 49 changefont /firstuseflag false def} if dup length 1 lt {pop ( )} if dup /linestring exch def length 1 sub /lslen exch def /lastparline false beautiful and mind-blowing samples, def/sparechange 0 def startfirstline {linestring 2 index 1 getinterval dup ( ) gt {stringwidth pop along with some utterly confusing sub charstretch sub dup 0 lt {#spaces 0 eq {1 index /oktohere exch def /ssok true def} if ssok and totally undecipherable ads. {createss} if justx cvx exec} if} {dup ( ) eq {spaceproc} {otherproc} ifelse} ifelse exch 1 add dup lslen gt {exit} {exch} ifelse} loop /lastparline true def /ssok true def dup /oktohere exch def exch Then, for a mere$5000 extra, they dup /sparechange exch def ssok {createss} if justx cvx exec /ypos ypos yparendadj sub def} def offer to send you a salesman who /yparendadj 0 def will explain the incredibly confusing % fillsubstrings - routines to create and fill the ssarray ad materials to you. /ssarray 25 array bind def % creates the array at load time There are also at least two mystery /colcheck {} def % default bottom of page check processes calledChromatec and Mat- /startnewline { /#ssa 0 def /xpos1 xpos indentcount 0 gt {pm add} if def /shiftproc {[xpos1 ypos roColor that I now know absolutely (moveto)] true} def /ssok true def /#spaces 0 def /#chars 0 def {linestring oktohere get dup 10 eq {pop 32} if 32 eq {/oktohere oktohere 1 add dup lslen ge {1 sub } if def}{exit} ifelse} loop nothing about. And I suspect there /ssstart oktohere def pop pop ssstart 1 sub txtwide indentcount 0 gt {pm sub /indentcount are at least a dozen more. indentcount 1 sub def} if} def And, in the weaving stores, of all /startfirstline {/#ssa 0 def /xpos1 xpos pm add def /ssstart 0 def /ssok true def /shiftproc places, are shelves of little colored {[xpos1 ypos (moveto)] true} def /#spaces 0 def /#chars 0 def ssstart txtwide pm sub} bind def /newshiftproc {/shiftproc false def} def /indentcount 0 def photo-emulsion bottles that you can /createss { oktohere dup /lastchar exch def ssstart sub dup /#chars exch #chars add def /sslen use to stick LaserWriter images onto exch def ssarray #ssa mark spacestretch charstretch ssstart sslen shiftproc fontn 4 get] put nearly anything. /#ssa #ssa 1 add def newshiftproc} def ( more . . . ) Obviously, there are great heaping Fig. 2A ± My PostScript gonzo justify routines . . . bunches of off-the-wall opportunities here that are going begging. 44.2 October, 1988 So, let's make a contest out of it. Tell me everything you know about % printsubstrings - prints or compiles a previously created ssarray array of form [[string1] % [string2]...[stringn]] and length #ssa. Each substring array is in the form [-spacestretch- any color proofing system. There will % -charstretch- -wstringstartpointer- -wstringlengthpointer- -[moveproc]- -mproctrue- -font-]. be several Incredible Secret Money % If compile is true, a compile returns values to the host. If compile is false, the array Machine books for just about any % is imaged in the normal manner. entry at all, and an all-expense paid % logic and format for currentpoint shift: -false- use existing currentpoint; % [6 3 (rmoveto)] -true- execute currentpoint proc; [1 2 (moveto)] -true- execute currentpoint (FOBThatcher, AZ) tinaja quest for proc two for the very best. /compile false def /stalltime 20 def % compile time delay for host (optional) /stall {stalltime {37 sin pop} repeat} def How can I Fake Duplex Color? % warning: compile not yet fully debugged -- needs to recognize shifts for rj and cj Duplex Color is a sneaky way of /printsubstrings{ compile {0 1 #ssa 1 sub {ssarray exch get aload pop dup 0 ne {fontn exch 4 brightening up a printed page without exch put (\r) print flush stall fontn print flush stall (\r) print flush stall }{pop} ifelse {{40 string cvs going to expensive and registration- print ( ) print flush stall} forall (\r) print flush stall} if linestring 3 1 roll getinterval /schold exch def exch 8 string cvs print flush stall ( 0 32 ) print flush stall 8 string cvs print flush stall ( 0 () critical full process color. What you print flush stall schold print flush stall () awidthshow\r) print flush stall} for (\r) print flush} do is make two passes through the {0 1 #ssa 1 sub {ssarray exch get aload pop dup 0 ne {dup fontn 4 get ne {fontn exch 4 exch press. The first time, you put down put fontn cvx exec }{pop} ifelse}{pop} ifelse {aload pop cvx exec} if linestring 3 1 roll getinterval large squares or highlight blocks of 3 1 roll cfix add 3 1 roll sfix add 3 1 roll color. On the second pass, you put 0 exch 0 4 1 roll 32 4 1 roll awidthshow} for } ifelse} bind def % The gonzolink dictionary links the one-character escape commands to their gonzoprocs. down your black text and graphics. % While this is completely flexible, I recommend using numerics for font selections, If you quickly flip through your % capital numerics for tabs; uppercase for mode and justify selections; lowercase for Computer Shopper, you'll find lots of % immediately executed PostScript utilities and value changes; and high ASCII for anything examples of duplex color use. % that is special for one specific or unusual job. I have found a good way to fake /gonzolink 255 dict def gonzolink begin duplex color on the LaserWriter or /0 {48 changefont} def /1 {49 changefont} def /2 {50 changefont} def /3 {51 changefont} def /4 {52 changefont} def /5 {53 changefont} def /6 {54 changefont} def /7 {55 changefont} def on any other laser printer or Xerox /8 {56 changefont} def /9 {57 changefont} def /- {45 changefont} def /= {61 changefont} def copier. While it is not cheap and is /C {67 changejust} def % center justify not suited to high volume uses, the /F {70 changejust} def % fill justify results can be quite spectacular. /L {76 changejust} def % left justify Here's what you do: Say you want /R {82 changejust} def % right justify black words inside a blue box. First, /a {amacro} def /b {bmacro} def /c {cmacro} def /d {dmacro} def /e {emacro} def /f {fmacro} def you make a black toner copy of all /g {} def % to prevent reentry /h {/ypos ypos yinc 2 div add def} def the words. Next, make yourself a /i {initialcap} def % initialcap black toner copy of the box. /l {/oktohere oktohere 1 add def endtheline} def % force new line Now,Kroy Kolor or Omnicolor the /n {nobreak} % conditional formfeed /p {/pm pmnorm def} def % normal pmargin words. Then you throw this printed /s {showpage} def % showpage sheet away and save the carrier. /x {} % exit should be trapped by scanner Now, look carefully at your color /y {/ypos ypos yinc add def} def % negative linefeed /z {/pm 0 def} def % zero pmargin carrier. You'll now have clear where end the words were and blue elsewhere /nobreak {ypos yinc 6 mul sub ybot lt {/ypos ybot def} if} def on the carrier. /initialcap {/ypos ypos yinc add yparendadj add def /pm dropindent def /indentcount dropcount Finally, you reuse this "negative" def} def carrier sheet over the black box. The % stringmacro lets you do a series of gonzolink commands with a single macro keystroke. For % instance, /amacro {(z3c) stringmacro} def picks a centered font3 with no paragraph for blue goes everywhere the words were % an embedded [esc]-a. not, and the black shows through. /smac ( ) def /stringmacro {{smac exch 0 exch put smac cvn gonzolink exch get cvx exec} Instead of that usual printer's route forall} def () cvn {startgonzo} def of putting the color down first and % callout justify routines then overlaying the black text, you % These are used for "quick and dirty" layouts and for illustration callouts. No scanner put the coloron top , letting the black % is used. cc and cr align themselves on xpos, independent of txwide. show throughonly where you want % -xpos- -ypos- (String message) cl --> left justify words or border art. % -xpos- -ypos- (String message) cf --> fill justify Sneaky, Huh? % -xpos- -ypos- (String message) cc --> center justify Here's two additional Kroy Kolor % -xpos- -ypos- (String message) cr --> right justify /cl {save /snapcl exch def /msg exch def /ypos exch def /xpos exch def /justx (justL) def msg tips. In case you missed it, last month gonzojustify snapcl restore} def we showed you several very cheap /cf {save /snapcf exch def /msg exch def /ypos exch def /xpos exch def /justx (justF) def msg alternatives to those overpriced Kroy gonzojustify snapcf restore} def Kolor fusion machines. /cc {save /snapcc exch def /msg exch def /ypos exch def 2500 sub /xpos exch def /txtwide 5000 Also, if you take an "empty" Kroy def /justx (justC) def msg gonzojustify snapcc restore} def Kolor carrier, or else just a plain old /cr {save /snapcr exch def /msg exch def /ypos exch def 5000 sub /xpos exch def /txtwide 5000 half mil sheet of overlay clear mylar def /justx (justR) def msg gonzojustify snapcr restore} def ( more . . . ) or polyester, and then run it and a Fig. 2A ± My PostScript gonzo justify routines . . . black toner copy through an iron, a 44.3 ASK THE GURU fusion machine, or even run it back /cr {save /snapcr exch def /msg exch def /ypos exch def 5000 sub /xpos exch def /txtwide 5000 through your LaserWriter, your toner def /justx (justR) def msg gonzojustify snapcr restore} def image willBakerize , turning into a % end of gonzo justify. begin scan converter glossy and dense black that is quite % The gonzo justify routines expect input as () delimited % strings and use the -escape- character for commands. durable. Surprisingly so. Try it for business cards ± you'll % An input scan converter can be used for " character substitution, to redefine the % -escape- character or to solve system problems. be amazed at the results for a "zero 6000 string /scanstr exch def /exitchar 120 def % for esc-x loop exit cost" quick-and-dirty process. /escsubchar 33 def % for use escape as is What is Pixie Dust? /startgonzo {{ clear /more false def -1 { 1 add dup currentfile read not {pop exit} if dup 92 eq {rslashproc}if dup 10 eq {pop /more true def exit} if I have found one partial solution % dup escsubchar eq {pop 27} if % bypass as comment if not used dup 27 eq {exitproc} if scanstr 3 1 roll put } loop scanstr exch 0 exch getinterval gonzojustify for the intolerably abysmal scratch pop more not { exit} if} loop} bind def resistance of theCanon typeSX laser /rslashproc {pop currentfile read not {pop /more false def exit} if printer cartridges. The method seems dup 41 eq { 1000 } if % replicate right paren to work a lot better than sticking pins dup 40 eq { 1000 } if % replicate left paren intoCanon advertisements. dup 92 eq { 1000 } if % replicate reverse slash dup 98 eq { pop 8 1000 } if % substitute bs The larger and older xerography dup 102 eq { pop 12 1000} if % substitute formfeed machines will use a standard powder dup 116 eq { pop 9 1000} if % substitute tab dup 110 eq { pop /more true def exit} if % end string on linefeed calleddrum conditioner that acts as a dup 114 eq { pop /more true def exit} if % end string on return lubricant and noticably reduces, but dup 48 ge { dup 55 le {dooctal} if} if does not outright eliminate all of the 1000 eq { } {pop 1 sub dup 1 add 0 } ifelse % substitute or replicate} def scratch problems. /dooctal {48 sub 64 mul /oct exch def currentfile read not {pop /more false def exit} if dup 48 ge Unfortunately, drum conditioner is { dup 55 le {dothird} {1000} ifelse} if} def normally available only in railroad /dothird {48 sub 8 mul oct add /oct exch def currentfile read not {pop /more false def exit} if dup 48 ge { dup 55 le {48 sub oct add } if 1000} if} def tank car lots, and then only to a few /exitproc { pop currentfile read not {pop /more false def exit} if dup exitchar eq {pop exit}{exch approved insiders. scanstr exch 27 put exch 1 add dup 3 -1 roll} ifelse} def Arlin Shepard of Laser Products % default font and variable list has repackaged the drum conditioner % for drop caps into a$3 packet ofPixie Dust that is /font0 {/Helvetica-Bold findfont [40 0 0 40 0 0] makefont setfont} def enough for a dozen or more Laser- % regular text Writer cartridges or their reloads. /font1 {/Helvetica findfont [9 0 0 9 0 0] makefont setfont} def Figure one shows you how to take /font2 {/Helvetica-BoldOblique findfont [9 0 0 9 0 0] makefont setfont} def a childs athletic sock and convert it /font3 {/Helvetica-Bold findfont [9 0 0 9 0 0] makefont setfont} def into a pixie dust duster. What you do % slightly smaller for numbers and caps in text /font4 {/Helvetica findfont [8 0 0 8 0 0] makefont setfont} def isvery lightly dust the drum when /font5 {/Helvetica-BoldOblique findfont [8 0 0 8 0 0] makefont setfont} def you first install or later reload the /font6 {/Helvetica-Bold findfont [8 0 0 8 0 0] makefont setfont} def cartridge. Be careful to not rotate or % lowered title line get any thumbprints on the drum /font7 {/Helvetica-Bold findfont [9 0 0 9 0 4] makefont setfont} def when you do this. % superscript and subscript After a few copies, most of the /font8 {/Helvetica-Bold findfont [6 0 0 6 0 0] makefont setfont} def /font9 {/Helvetica-Bold findfont [6 0 0 6 0 4] makefont setfont} def pixie dust will collect on the wiper % specialty fonts and doctor blades and will continue /font- {/ZapfDingbats findfont [9 0 0 9 0 4] makefont setfont} def to work from there. /font= {/Symbol findfont [9 0 0 9 0 4] makefont setfont} def Meanwhile, working on the theory % default constants - redefine for each application that every little bit helps, do continue /justx (justL) def % left justify to stick the pins into all the Canon /txtwide 400 def % width of column ads you see. Somebody, somehow /yinc 11 def % line spacing /charstretch 0.2 def % minimum character kerning just has got to the the attention of /spacestretch 0 def % minimum space kerning these epsilon minuses. /maxsstretch 2.5 def % space fill stretch before character stretch /maxcstretch 1 def % maximum allowable fill character stretch Tell me all About Your /dropcount 3 def % lines indented for drop cap /dropindent 40 def % width reserved for drop cap Gonzo Justify Routines /pm 0 def % paragraph margin /pmnorm 10 def % normal paragraph indent For several years now, I have been /xpos 50 def % horizontal start of text trying to push the limits of 300 DPI /ypos 600 def % vertical start of text LaserWriter desktop publishing. We /colcheck { } def % link to page or column maker have seen in previous issues how % here is a simple "just dump the text" pagebuilder. Preceed your text by -startgonzo- or [esc]-g % and end it with [esc]-s or [esc]-x -showpage- [d]. everybody positively insists on using the seventeenth most putrid Laser- /ytop 600 def /ypos ytop def /ybot 50 def /colcheck { ypos ybot le {showpage /ypos ytop def} if} def Writer gray, and how that might be Fig. 2C ± Gonzo justify routines, concluded. cured with a very few keystrokes. We have also found out how you can set 44.4 October, 1988 legible type as small as three points dividual character. This is extremely acceptable and attractive limit. On through a "pixel locking" technique. important for300 DPI printing in the stage three, I want to further spread We have already seen how pixel line 912 to point range, yet nobody seems the individual characters out, again to remapping can paint practically any to offer it. a visually acceptable limit. Finally, if image onto most any surface. On stage two, I want to spread the the first three stages will not hack it, But the centermost key to nearly spaces out some, only to a visually I want to spread out the spaces as far everything, of course, lies in a decent justification routine that is able to attractively place mixed font column ---- commands ---- lines in order onto a page. I have been continuously devel- oping and debugging some gonzo cc justify routines that do what I want Callout center justify. Use as xpos ypos (message) cc the way I want them to. So, let me tell you what I think is when not scanning. The centering is done on xpos, important in a decent justify routine. Firstoff, I couldn't care less about and txtwide is ignored. WYSIWYG. At the present state of the art, allWYSIWYG does is slow you down and crap up all your final on-page images. This will, of course, cf Callout fill justify. Use as xpos ypos (message) cf dramatically change when everybody has and uses display PostScript. when not scanning. Uses xpos left margin, txwide width. I want a device independent gonzo justify routine that will run unmodi- fied withany make and model of personal computer usingany desired cl editor, word processor, or comm pro- Callout left justify. Use as xpos ypos (message) cc gram. I want those same routines to be importable into nearly any Post- when not scanning. Uses xpos left margin, txwide width. Script applications program. Above all, I do want to be able to import the fullAppleWriter quality cr mixed font, fill justified typography Callout right justify. Use as xpos ypos (message) cc intoIllustrator . I want a gonzo justify routine that when not scanning. The right margin is set by xpos, is fully programmable. I want to be able to define or redefine any com- and txwide is ignored. mand and even the entire set at any time for any reason, instantly switch- ing into or out of full PostScript. I startgonzo also want a full macro capability that Begins gonzo scanning of text that follows. [esc]-g lets me use a single keystroke or a single embedded character to do such may also be used. Terminates on end of file or [esc]-x. things as change from a centered, bold, lowered, non-indented title into a fill justified, a standard, and para- [esc]-? graph indented main text. User defined embeddable escape commands and macro Naturally, I want to be able to use any mix of any size fonts on any commands. See figure four for the current list. particular line, including, of course, the ability to have fonts fatter than they are wide, and vice versa. I want stringmacro fonts on, above, and below the base- A shorthand way of building macros. For instance, line, and I want to lean them any amount in either direction. /amacro {(Cyz3) stringmacro} def does an [esc]-C Fractional font sizes are a must. I want a four stage progressive fill [esc]-y [esc]-z [esc]-3 all on a single [esc]-a embedded microjustification. First, I want to add a definable minimum amount of Fig. 3 ± Somecommand. important gonzo commands and variables. kerning between each and every in-

---- variables ---- 44.5

ytop ASK THE GURU as I have to. Later on, some post- commands. With the added ability to ThisAsk The Guru reprint is done justification editing can be used to instantly switch between emulation using the gonzo justify. You might return all the spacing back down to and full PostScript at any time for like to try using one of those heavy acceptable values. any reason. "name brand" layout applications I want the speed to not signif- I want to be able to add bells and packages to see if you can come up icantly slow down the LaserWriter whistles such as tabs, French spaces, with results that are even remotely NTX for simplier page layouts, and I custom character kerning, extra end- this good at300 DPI . want the ability to compile all the of-paragraph ledding, soft hyphens, We will be seeing lots more use PostScript code back to the host for conditional formfeeds, hard spaces, examples in future columns. But for the fastest possible book-on-demand superbold print, the works. now, figure five gives you a simple printing applications. Finally, of course, I would want it column maker that produces your I want an automatic initial drop fully open, totally unlocked, unpro- choice of1:1 or oversize 1.33:1 col- cap, plus the ability to use hanging tected, very easily customized, and umns. The latter can be photoreduced punctuation. While rarely seen in widely available at a very low cost. for "real" printing applications and anything but the finest of books and will dramatically improve the over- magazines, hanging punctuation can So Where is it? all smoothness of the characters. noticeably improve just about any In figure two, of course. Figure Figure six gives you some of the 300 DPI fill justified text. two gives you a complete listing of text actually used in this column. I want to be able to handle single all my current gonzo justify routines. Since some more primitive word "callout" messages as easily as I can Figure three lists all of the more processors do not let you embed any large blocks of text. And I want the important PostScript variables, while escape commands, I have replaced same routine to emulate just about Figure four gives you a summary of each and every escape command with anything that uses embedded printing the currently embeddable commands. its\033 octal equivalent. This listing also does assume your word processor can handle up to a [esc] - 0Change to font0 . Preferred use = initial drop cap. 240 character line without forcing [esc] - 1Change to font1 . Preferred use = normal body text. extra carriage returns or linefeeds. [esc] - 2Change to font2 . Preferred use = italic body text. Additional reverse slash "ignore [esc] - 3Change to font3 . Preferred use = bold body text. the following carriage return or line- [esc] - 4Change to font4 . Preferred use = all caps normal body text. feed" can be added if needed. [esc] - 5Change to font5 . Preferred use = all caps italic body text. Note that carriage returns in figure [esc] - 6Change to font6 . Preferred use = all caps bold body text. seven are used only after an end-of- line reverse slash or following each [esc] - 7Change to font7 . Preferred use = bold and dropped headers. paragraph. Extra white vertical space [esc] - 8Change to font8 . Preferred use = subscripts. has been added in this figure to help [esc] - 9Change to font9 . Preferred use = superscripts. you identify paragraph endings. [esc] - -Change to font- . Preferred use = Zapf Dingbats. In general, the gonzo routines can [esc] - =Change to font= . Preferred use = Symbol in body text size. either be tacked onto each individual [esc] - CChange to center justification on xpos+txtwide/2 . application or else persistently down- [esc] - FChange to fill justification between xpos and xpos+txtwide . loaded when you first apply your [esc] - LChange to left justification starting at xpos . power. Typically, you will need your [esc] - RChange to right justification ending at xpos+txtwide . gonzo justify, a template, and a text file. Your template will hold your [esc] - aPerform user defined Macro amacro . page and column building routines as [esc] - bPerform user defined Macro bmacro . well as the font and style selections [esc] - cPerform user defined Macro cmacro . for your final copy. [esc] - dPerform user defined Macro dmacro . A singlecolcheck command is used [esc] - ePerform user defined Macro emacro . to link your gonzo justify routines [esc] - fPerform user defined Macro fmacro . back to your page- or column-making [esc] - gStart gonzo justification. A PostScript alias for startgonzo . template. [esc] - h Do a half of a negative linefeed. For long blocks of text, there is a [esc] - i Do an initial drop capital. scanner built into the gonzo justify [esc] - l Do a full linefeed. routines. This is activated through a [esc] - nNobreak - conditional formfeed if within six lines of ybot . startgonzo or an [esc]-g and can be [esc] - p Switch to normal paragraph margin, starting with next line. exited at any point with an[esc]-x . [esc] - sDo a showpage for end of scanned file only. An endingshowpage will often be [esc] - x Exit gonzo justify and switch to native PostScript. needed after escaping, or you might [esc] - yDo a yinc up full negative linefeed. miss the last page. [esc] - z Switch to zero paragraph margin, starting with next line. Macros are currently defined as Fig. 4 ± Currently embeddable gonzo escape commands. [esc]-a through [esc]-f . These can do any PostScript function at all. There 44.6 October, 1988 is also a supermacro command. For To prepare the text you will want gonzojustify routine, along with the instance, the /amacro {(z3C) string- justified, you isolate it as a string position information, the choice of macro} def command will switch you variable, and then present it to the present font and your choice for the to a center justified, lowered and bold text with no paragraph indents, all on an[esc]-a . % name of textfile: guru.temp.1 (Ask the Guru template) The supermacro strings will work % ...... with anything already defined in the % requires gonzo.dl.2 gonzolink dictionary. They may also /persist true def be intermixed with the ordinary Post- /makeitbig false def Script commands, but only gonzolink stuff is allowed inside the string. persist {serverdict begin 0 exitserver} if If you just route plenty of text in /setscale {makeitbig{/scalefactor 4 3 div def 50 -300 translate scalefactor without any template, a default page dup scale /ybotcorrect 200 def} {/scalefactor 1 def 0 0 translate breaking text dumper will take over. scalefactor dup scale /ybotcorrect 0 def } ifelse } def This is handy for first proofs. Alternately, you can now instantly /colcheck {ypos ybot ybotcorrect add le {showpage setscale header /ypos position short messages by using a ytop def /ystart ytop def } if} def xpos ypos (This is a test) cc format. /header {/fontsave fontn 4 get def save /hdrsnap exch def /pm 0 This will center your message onto def/yparendadj 0 def /xpos headerx def /xpos1 xpos def /ypos0 headery your selectedxy and positions. The def /ypos ypos0 def /txtwide headerwide def headertitle gonzojustify /ypos options here includecl , cf , and cr for ypos yinc add def pagenum 20 string cvs dup /num exch def left, fill, and right justification. stringwidth pop /numwide exch def (page ) dup stringwidth pop The rule is to use plain text with numwide add xpos txtwide add sub neg ypos moveto show num show the scanner and text delimited with hdrsnap restore fontsave changefont /pagenum pagenum 1 add def} def parenthesis for callout commands. /font0 {/Times-Bold findfont [54 0 0 54 0 -32] makefont setfont} def With left or fill justification, the /font1 {/Times-Roman findfont [9.75 0 0 9.75 0 0] makefont setfont} def text is automatically broken up by /font2 {/Times-Italic findfont [9.75 0 0 9.75 0 0] makefont setfont} def words to fit between a left limit of /font3 {/Times-Bold findfont [9.75 0 0 9.75 0 -6] makefont setfont} def xpos and a right margin limit set by /font4 {/Times-Roman findfont [9 0 0 9 0 0] makefont setfont} def xpos+txtwide. /font5 {/Times-Italic findfont [9 0 0 9 0 0] makefont setfont} def There are two center justification /font6 {/Times-Bold findfont [9 0 0 9 0 0] makefont setfont} def and two right justification routines. /font7 {/Helvetica-Bold findfont [6 0 0 6 0 0] makefont setfont} def If you call for a center justify by /font8 {/Helvetica findfont [8 0 0 8 0 0] makefont setfont} def using the[esc]-C command, then /font9 {/Helvetica-Bold findfont [9 0 0 9 0 4] makefont setfont} def justification will take place between /font- {/ZapfDingbats findfont [9 0 0 9 0 4] makefont setfont} def /font= {/Symbol findfont [9 0 0 9 0 4] makefont setfont} def a left margin ofxpos and a right margin set byxpos+txtwide , just like /txtwide 155 def the usual left and fill justify. This is /yinc 10.5 def handy for centered headers. /charstretch 0.2 def If you call for a center justify by /spacestretch 0 def usingxpos ypos (string) cc , then each /maxsstretch 2.5 def line will end upcentered onxpos , /maxcstretch 1 def andtxtwide will get ignored. This is /dropcount 3 def useful for all of your ad copy /dropindent 18 def headlines or anywhere else that you /pm 0 def simply want to center on a position, /ytop 720 def independent of any column widths. /ypos ytop def /xpos 100 def Similarly, an[esc]-R will print /headerx 80 def flush right up againstxpos+txtwide , /headery 760 def with no text ever to the left ofxpos . /headerwide 240 def And anxpos ypos (string) cc will /ybot 80 def simply align flush right againstxpos . /yparendadj 0 def The right blurb on the Ask The Guru /pmnorm 10 def header does this. /amacro {(zy0) stringmacro} def % start drop cap How does it work? /bmacro {(iFy1) stringmacro} def % finish drop cap There are four steps to gonzo text /cmacro {(zyC3) stringmacro} def % centered title /dmacro {(pF1) stringmacro} def % normal text justification. These include prepar- ation,, length analysis justification Fig. 5 ± A gonzo column-builder "Guru" template. calculations, and finally imaging . 44.7 ASK THE GURU present or previous justification style input string is taken a character at a A minimum kerning that is set by that you have requested. time, and all the individual character charstretch and spacestretch is in- The analysis always assumes you widths for the presently selected font cluded in each width calculation. are going to want a fill justify. The are then added up as a running total. The width addition continues until such time as(a) the next word will no % requires gonzo.dl.2 and guru.temp.1 NOTE: \033 = embedded [escape] longer fit on the line, or(b) you do /makeitbig true def setscale /headertitle (\0338Lancaster, Ask the Guru, Column 46) def /pagenum 2 def /dropindent 36 def change the font, or(c) you force a % ///// ACTUAL TEXT STARTS HERE ////// linefeed, or(d) you embed an escape header startgonzo command that does something fancy. \033a The end product of the analysis is B anarray of substrings that contains \033b everything that will fit on the line. oy, a whole flock of them flew over that time. Apple has finally and officially flushed Pascal. Each substring is in a single font. Pascal was basically a laboratory animal that escaped. Unfortunately, it did do an incredible \ The number of substrings needed per and incalculable amount of damage to both academia and general computer literacy well before its long overdue extermination.\033p line depends on how fancy you get. If The heir apparent would seem to be the \0334"C"\0331 language, helped along with closely you make no font changes and embed linked and tightly writ- ten assembly language modules. no escape commands, then only a The \0334APW\0331 development system on the IIgs and the \0334MPW\0331 development single substring is produced per line. system on the Mac are good places to start using \0334"C"\0331. Both of these are \now The justification calculations will available through \0334APDA\0331. depend on the selected justify mode. What about \0334UNIX\0331 or \0334A/UX\0331? While \0334UNIX\0331 is written in On a left justify, the substrings are \0334"C"\0331, I personally feel that (a) It is insanely bloated, (b) It is already hopelessly \ simply printed as is. On a center or a obsolete, and (c) anything that \0334AT&T\0331 is in favor of has got to be suspect. right justify, the position is suitably Let's see. There is a new version \03343.2\0331 system master disk for the IIgs. More on this shortly. The bottom line is that the printer driver improve- ments are far too little done far too \ shifted per the alignment you want. late, but that there's lots of other neat stuff included in the upgrade. On a fill justify, a four step calcu- Quite a few of you helpline callers have been asking for ways to run PostScript on the low-end lation is made that decides exactly dot matrix printers. Well, to do so would be the equivalent of putting a new \0332Porsche\0331 how much to stretch each space and engine onto a skateboard. each character to give you a true fill Nonetheless, the \0332LaserGo\0331 people are the first ones out with such a product. Right justify. Should hanging punctuation now, it is mainly for \0334IBM\0331 use, but Apple versions are cer- tain to follow. be needed, a "little extra" is added to \0332Apple Computer\0331 does have a few special interest publications that you might want put the punctuation out into the mar- to be aware of. For you developers, there is the \0332Viewpoints\0331 newsletter and the \ \0332Outside Apple\0331 magazine. gin "just enough" that it looks good. As a subtle touch, the last line in For all of you bureaucrats, check into \0332Innovations\0331. For librarians, there is the \0332Apple Library User's Group\0331, and, among the many educational pub- lications, \ each paragraph is also stretched out \0332Wheels for the Mind\0331 is just about the best. slightly so it does not look cramped Meanwhile, \0332Adobe Systems\0331 has a free \0332Font and Function\0331 typography when compared against the previous catalog out that includes useful design and layout ideas. lines. This stretching is defeated if Turning to my own products, besides the \0332Ask the Guru\0331 reprints, we now also have you already are using more than 90 the \0332Hardware Hacker\0331 reprints from the sister column to this one over in percent of the available linewidth. \0332Radio-Electronics\0331. Everything, of course, is fully pro- There's a new disk for the gonzo justify stuff we'll feature here, and, as usual, our grammable and changeable. \0332PostScript Show and Tell\0331, available for most computers. During imaging, acompile flag The gonzo biggie this month is just that \261 the gonzo justify I have been working on for several years now. But first . . . decides whether to print to paper or to return the minimum possible Post- \033c What is in the new IIgs Script imaging commands back to the v3.2 System Master Disk? host for recording. Compiled code \033d can be astonishingly fast. Well, let's see. First, it boots faster and is better organized, and literally hundreds of bugs have We will see lots more on all this in newly been corrected. Or at least changed. future columns. Please note that the ProDOS \033416\0331 can now boot over AppleTalk, and the bugs in handling very large and gonzo stuff is copyrighted code on single byte files have been corrected. Random memory trashing has also been fixed, along \ with an easing of all the \0334SCSI\0331 format problems. which any and all commercial rights are fully and completely reserved. The printer drivers have been im- proved somewhat in a too little and too late manner. The \0332ImageWriter\0331 driver is now faster on images and supports vertical condensed \ You may copy it for your personal printing. A new and totally useless \0332ImageWriter LQ\0331 driver will recognize the machine use provided the header remains but not support any of its features. intact and provided it is not included While there are substantial new improvements in the LaserWriter drivers for applications willing in any commercial software product to play Apple games in Apple's way, a plain old \0332Send PS\0331 is still conspicuously \ or listing of any sort. absent. You can, however, still rearrange \0334IWEM\0331 to make it into an acceptable no-nonsense PostScript driver.\033x showpage Yes, the ready-to-run gonzo justify disks are available in most formats Fig. 6 ± Gonzo justify text example. for most personal computers. Write or call if you are interested. 44.8 Don Lancaster’s Several hot stamping ideas My computer workstations Old and new game paddles ASK THE GURU Using snoop and superexec November, 1989 PostScript nuisance routine

o good deed shall ever go in a major city with a new number, a For this month’s lukewarm stock unpunished. At least in the larger hard disk, multiple lines, and tip,Seagate Technology had recently computer publishing world. bothTelenet and Tymenet access. overexpanded a tad and the institu- NMacintosh Today recently While you are waiting, you might tions have all pressed their collective went belly up because of a corporate want to check out a brand new Post- panic buttons. An instutitional invest- bean counter who was upset with the Script board at(707) 882-2390 . or would now rather carryAIDS than rate of increase of ad revenue. U.S. Patent #4740443 shows you SGAT. Buy at $8 ; sell at $18 . Worse still, Bob Sander-Cedarlof how to implant carbide teeth onto There have been a dozen minor has ceased publishing his great Apple your toner particles so you can now corrections to the gonzo justify we Assembly Lines, which was one of scratch and grind up all of your laser looked at last month. I’ve also now the finest Apple magazines anywhere printer cartridge drums. Guess which added custom kerning, tabs, and an ever. It seems that Bob finally let a company it was issued to? improved compile to the routines. few frivolous matters of food, cloth- ing, and shelter get in his way. Bob does have a bunch of back issues and 13 ANNOUNCIATOR #2 ANNOUNCIATOR #3 12 whatever available. Once gone, they A TTL or CMOS digital logic A TTL or CMOS digital logic output settable or resettable output settable or resettable are gone forever. You might contact by bit testing. Can be used by bit testing. Can be used him directly for more information. for custom control outputs. for custom control outputs. Steve Ciarcia is leavingBYTE to go 14 ANNOUNCIATOR #1 GAME PADDLE #3 11 whole hog on his own already great A TTL or CMOS digital logic Expects a 10K to 150K Circuit Cellar Ink magazine. His output settable or resettable variable resistor to +5vdc final November and December BYTE by bit testing. Can be used for paddle or joystick columns are absolute mind-blowers for custom control outputs. operation. Second user. that involve a parallel processor that 15 ANNOUNCIATOR #0 GAME PADDLE #1 10 producesMandlebrot fractal images A TTL or CMOS digital logic Expects a 10K to 150K in near real time! output settable or resettable variable resistor to +5vdc by bit testing. Can be used for paddle or joystick Which means it passes a Cray-1 for custom control outputs. operation. First user. like it was sitting up on blocks. Apple has finally addressed the 16 NO CONNECTION NO CONNECTION 9 (Do not use.) (Do not use.) disk drive blowup problems on the 16 15 14 13 12 11 10 9 IIgs. If you ever do experience any NC AN0 AN1 AN2 AN3 PD3 PD1 NC shown as female difficulties with both drives coming GAME I/O DIP socket on on at once or have similar hangups, +5V SW0 SW1 SW2 STB PD0 PD2 GND motherboard see your dealer for a free change of 1 2 3 4 5 6 7 8 your disk drive internalI/O board. Let’s see.Apple now has two new 1 +5 VDC SUPPLY GROUND 8 videos out, a user group one on Woz A limited amount of +5vdc pushbutton, announciator, talking about me, and one on desktop supply current is available and strobe return path. Any here. Shorts or glitches can noise or glitches here can publishing and communication solu- cause damage. cause damage. tions. There is also a new Desktop 2 BUTTON INPUT #0 GAME PADDLE #2 7 Solutions portfolio that goes with the The pushbutton #0 input is Expects a 10K to 150K second video. See your user group shared with the open apple variable resistor to +5vdc for more details. key. No connection = logic for paddle or joystick Two publications included here are zero; +5 vdc = logic one. operation. Second user. the fat Apple Desktop Communica- 3 BUTTON INPUT #1 GAME PADDLE #0 6 tions Solutions Reference Guide and This pushbutton #1 input is Expects a 10K to 150K theirDeskTopics newsletter. Be sure shared with the closed apple variable resistor to +5vdc key. No connection = logic for paddle or joystick to check these out. zero; +5 vdc = logic one. operation. First user. As usual, you can get a list of all of your local user groups by calling 4 BUTTON INPUT #2 OUTPUT STROBE 5 (800) 538-9696, Extension 500. No connection = logic zero; Outputs a brief active low +5 vdc = logic one. pulse when bit tested. Not The PostScript bulletin board that present on the IIgs. was previously at(409) 244-4704 is going through some reorganization Fig. 1 – Connections to the "old" Apple Game Socket. difficulties. It should shortly reopen 45.1 ASK THE GURU

VolumeII ofAsk The Guru is now and some weaving goodies. Yes we have a Mac. It is used once shipping. This is a complete rewrite Our book-on-demand production a month to handle our PostScript disk including lots of new material, a big setup is a IIgs once again driving a production and translations. Other- masterNames and Numbers section, LaserWriter Plus. Sadly, that 15:1 wise, it serves as a handy doorstop, and a full index. Besides all of the per-page toner cost penalty on the and Orville the cat sure does like to Apple and PostScript stuff, the text is NTX prohibits us from using it here. sleep on it. also a tour-de-force of personal book Instead, I am still stuck with one of Kathy, who runs a service bureau self-publishing. my ancient400,000 copy LaserWriter down the street, uses a IIgs and a II+ As per usual, this is your column Plus machines. to do our order processing, shipping and you can get tech help and some At first glance, some of this may label printing, and all our mailing list off-the-wall networking per the Need seem a tad on the wimpy side. But maintenence. Clone translations and Help? end box. And now . . . note that I can run portions of my production are done across town, and PostScript book production routines theAtari stuff is handled by a Tucson What Computers Do as much asone hundred times faster caver via modem. You Actually Use? than can a novice user running their I also still do use six of the KIM-1 About a dozen of them, I’d guess. canned application programs on a computers, one of which does have a But my main machine is now a cross Macintosh II. full video andEPROM burning capa- between a IIe and a IIgs running a For instance, a very fancy three bility. To this day, there is no finer fast ProDOS 8 and driving a Laser- column gonzo-justified page having computer to teach the fundamentals Writer NTX. AppleWriter and WPL two figures, a header, and a footer, of machine language programming. I are run on this machine virtually all needs a merezero to four seconds of personally feel that theKIM-1 was of the time. extra page composition time above the last decent computer that Com- Bee has a IIc (she actually likes theNTX "full tilt" printing speed. modore ever built, and sure would that insidious keyboard) driving a I very much prefer a computer in like to see it reissued. LaserWriter Plus with a modem for which I can understand and freely Finally, since my personal com- her personal workstation. Software modify each and every level of hard- puter collection is so skimpy, I am here includesAppleWriter , produc- ware and software in the machine to building up some of my own. These tion copy utilities, accounting stuff, suit myself. do include a little battery powered $50 control computer using that great Mitsibushi M50734. The M50734 is a 3 GROUND latter-day6502 that does include such Pushbutton, announciator, built-in goodies as40 I/O lines, 257 and strobe return path. Any noise or glitches here can accumulators, fourA/D converters, cause damage. two stepper motor drivers, a watch- 4 GAME PADDLE #2 +5 VDC SUPPLY 2 dog circuit, four timers, aUART , a pulse position modulator, and a soft Expects a 10K to 150K A limited amount of +5vdc variable resistor to +5vdc supply current is available ice cream dispenser. for paddle or joystick here. Shorts or glitches can operation. Second user. cause damage. What’s the Difference Between the old and new IIe and IIgs 5 GAME PADDLE #0 BUTTON INPUT #1 1 Game Paddle Connectors? Expects a 10K to 150K This pushbutton #1 input is variable resistor to +5vdc shared with the closed apple The original Apple II and II+ had a for paddle or joystick key. No connection = logic operation. First user. zero; +5 vdc = logic one. game paddle connector that consisted of an ordinary16 pin DIP socket on the motherboard. Which had the dual shown as female disadvantages of the game paddle or DB-9 socket on rear panel joystick pins that were really easy to break, and that you had to remove the lid of your Apple every time that you 9 GAME PADDLE #3 BUTTON INPUT #2 6 wanted to plug or unplug your pad- Expects a 10K to 150K A third and rarely used dles or joystick. variable resistor to +5vdc auxiliary pushbutton input. The full sixteen pins did give you for paddle or joystick No connection = logic zero; four game paddles or two joystick operation. Second user. +5 vdc = logic one. inputs, three pushbutton inputs, four 8 GAME PADDLE #1 BUTTON INPUT #0 7 announciator outputs and a strobe Expects a 10K to 150K The pushbutton #0 input is output signal. A secret fourth push- variable resistor to +5vdc shared with the open apple for paddle or joystick key. No connection = logic button input was available if you did operation. First user. zero; +5 vdc = logic one. look around for it hard enough. Hint: override the casssette input at the Fig. 2 – Connections to the "new" Apple Game Connector. output of its op-amp. Figure one shows you this "old" 45.2 November, 1989 game socket and its connections. finally led us around to hot stamping. product calledAll Purpose Roll Leaf . With the IIc, a "new"9 pin DB-9 While you can useOmnicolor or Some of their competitors include back panel connector was introduced. Kroy Kolor to fake a hot stamping, Maple Roll Leaf,,, Coburn Lamart This let you use much more rugged the real thing is far more durable and Identicolor and Hoechst/Hostaphan . connectors on your paddles and joy- far more impressive. Finally, thoseBind-It people have a sticks, and now did let you plug or Hot stamped foil consists of a thin desktopFoil-It system that does seem unplug without taking the machine and brightly colored film or foil to obscenely overpriced at$800 , but is apart. On the other hand, it dropped which a thin layer of high temper- otherwise interesting. the four annunciator outputs and the ature adhesive has been attached. We saw in a previous column how strobe, and all of those really neat You press a stick of type or else a thatMerigraph ultraviolet curing "quick and dirty"I/O tricks you could steel or silicon rubber die against the photopolymer process will let you do with them. foil and quickly heat it. The heat and convert a laser printed image into a Figure two shows you this "new" pressure then transfers the foil to the rubber stamp or other printing die. game socket and its connections. paper or other substrate. The cost is The chances are you would have to The Apple IIe did give you both around a dime a square foot. make a silicon rubber die off the connectors and let you have the best Obvious uses do include business Merigraph die in order to get proper of both possible worlds. In theory, so cards, book covers, announcements, high temperature operation. But the did the IIgs. Only early versions of ad displays, and greeting cards. Or potential opportunities here boggle the IIgs left off the strobe output for anywhere else you want to impart a the mind. Neat stuff. some inexplicable reason. Strobe just high quality image. I have this strange feeling that I plain is not there. Hopefully, this will Hot stamping is sometimes com- am only scratching the surface some- someday be restored. bined with embossing or debossing, where way out in left field. So, why At any rate, you might like to use often with spectacular results. don’t you tell me about sources and old paddles on a new machine or vice Here’s what I have found out so supplies of foil stamping, or of the versa. Figure three shows you the far: Sources of foil and hot stamping many brand new things that you can two adapters you will need to either machines advertise regularly in both do with them that does involve laser get from the old paddles to a new Paper, Film, and Foil Converter and printing? We’ll have another one of connector, or from new paddles to an in Package Printing and Converting our stupid contests. An Incredible old connector. magazines. A house newsletter with Secret Money Machine for the best Since the "old" IIgs game paddle one incredible title is Foiled Again twenty entries, and an all expense connector is far and away the fastest and is published by Transfer Print paid(FOB Thatcher, AZ) tinaja quest way of doing your57600 baud serial Foils; these people also supply a new for two for the best response of all. LaserWriter communications (this is insanely faster than is use of Apple- Talk), there seems to be a bunch of renewed interest in what you can 16 15 14 13 12 11 10 9 shown as female NC AN0 AN1 AN2 AN3 PD3 PD1 NC really do with that internal game con- DIP socket on nector. More on this whenever. GAME I/O motherboard One tip: If you are still using the +5V SW0 SW1 SW2 STB PD0 PD2 GND "old" paddles or joysticks, add a 16 1 2 3 4 5 6 7 8 pinmachined pin contact DIP socket to the pins. This can then safely be plugged into the motherboard. Now, when (not if) the pins bend or break off, all you have to do is snap on anotherDIP socket, rather than taking the paddle or joystick apart and try- ing to fix it. 54321 Another tip: If you are reading a shown as female pair of paddles or a joystick from DB-9 socket on rear panel machine language, be sure to wait 9876 several milliseconds between your successive paddle or joystick reads; otherwise, you can get some strange Use a female 24 pin DIP socket Use a male 24 pin DIP plug and a interaction between the two paddles and a male DB-9 plug to adapt an female DB-9 plug to adapt a new or the joystick"X" and "Y" axes. old game paddle or joystick to the game paddle or joystick to the Tell Me about Hot Stamping rear panel connector. internal motherboard socket. Our never ending quest for wierder and more bizarrely wonderous "neat Fig. 3 – Two old/new game paddle adapters. stuff" goodies for laser printers has 45.3 ASK THE GURU threaded and extensible . This means by using combinations of previously What is This Month’s you can add any new commands you defined ones. PostScript Utility? want to the language any time you So, what I have come up with is a Two of the real beauties of the wish. The only rule is that you have newnuisance dictionary that makes PostScript language are that it is both to define any of your new commands doing great heaping bunches of tricky things (such as turning off that test acosTrig arccosine. call with xside hypotenuse acos . See also asin . page) easily done with a single com- mand. What you do is persistently asinTrig arcsine. call with yside hypotenuse acos . See also acos . download this dictionary or else tack backwards Print backwards from right to left. For transparent window decals. it onto anything else you are persis- baud.57600.x.25 Set the baud rate to 57600 baud, XON/XOFF handshaking, on the DB25 tently downloading on power up. connector. The others are similar. This is device dependent. From that point forward, you can bestgray A 106 line, 45 degree screen. A good general, all purpose fine gray. activate all of these new commands blackSwitch to black. Same as 0 setgray . with a simplenuisance begin . blackflash Eject totally black page. Use twice for highest possible print quality. Figure four shows you a detailed copiesSelect the number of copies, as in 6 copies . list and explanation of what all the dobaudA service routine used by baud.57600.x.25 and company. nuisance commands do, while figure feetfirst Eject the page rightside up or feet first. five will give you all of the working code ready to download. inchChange size to inches, as in 3 inch for a 3 inch line. Included are new trig commands indiagray A very fine 133 line, 25 degree gray with 6 gray levels. Requires care. for the tangent, arccosin and arcsin; landscape Switch to landscape mode, printing wider than high. one-word choices for backwards, feet lightgray Select the lightest available gray. first, frontwards, and landscape prin- listfonts Send a list of all resident fonts back to the host. ting; excellent gray selections; easier longjob Lengthen the wait timeout to 3 minutes. Gives the host extra disk time. baud rate and handshaking set com- manual Select manual, rather than tray feed. For thick or oddball paper stock. mands; simpler choice of the number of copies and job length; a persistent negative Print white as black and black as white. Useful for reversals. downloading; instant listing of cur- notestpage Cancel the test page that is printed on startup. rently resident fonts to host or page; outline Find the outline path of the current character. a sublime sneaky secret snooper that persist Do a persistent download of the code that follows. activatessuperexec ; a few repeatable pi The math constant 3.1415926. timers and stopwatches; a quite easy pixel Scale to 300 DPI pixels, rather than points. random number generator; and a one positiveRestore normal printing after using negative . word stopping of the test page. Some of these new commands are printfonts Print a list of all resident fonts onto the page. specific to theLaserWriter , while a putridgray Restore the default 53 DPI, 45 degree gray screen. few others are intended primarily for randomGenerate a random number. 6 random returns 0-5. 300 DPI printing. All the rest can be report Return top of stack to host and stall briefly. used pretty near anywhere. reprogray A good 85 DPI, 35 degree gray for reduced prepress output. Theblackflash command ejects a resetttimerInitialize multiple time interval measurement. See starttimer , stoptimer , totally black page. For the highest andreporttimer . Use stopwatchon and stopwatchoff for single shots. possible print quality, you eject two For instance, two time intervals would be measured byresettimer , fully black pages before you do print starttimer, {do something} stoptimer , {spin wheels} starttimer {do something}stoptimer reporttimer . your final copy. This gives you some excellent black fills and light grays reporttimerReturn measured time to host. See resettimer . that are all highly uniform. snoopActivate superexec . A {forall} superexec overrides readonly . Speaking of which, there are now stallTime delay, as in 1500 stall . Gives host time to respond or record. four commands to pick useful grays, starttimerBegin part of multiple time measurement. See resettimer . instead of the seventeenth lousiest stoptimerEnd part of multiple time measurement. See resettimer . one that most PostScript applications stopwatchoffEnd single time measurement and report to host. See resettimer . seem to have their heart set on. The stopwatchonReset and begin single time measurement. See resettimer . bestgray is the all around best choice here; a denserindiagray is available tanTrig tangent. Use yside xside tan . Inaccurate very close to 90 degrees. but requires care in use, along with a tray Return to normal tray feed. reprogray that is ideal for reduced whiteSwitch to white. Same as 1 setgray . prepress. If you ever want to return widthA (string) width finds only the x width of the string. to the default gray, just use the new yestestpage Restore the test page that is printed on startup. putridgray command. There are now six different timer Fig. 4 – Some new PostScript nuisance commands. commands, depending on what you want to do. If you are only interested 45.4 November, 1989 in making one single time measure- ment, you can usestopwatchon and % Copyright c 1988 by Don Lancaster and Synergetics, Box 809, Thatcher, AZ 85552. stopwatchoff. If instead, you wantto % (602) 428-4073. All rights reserved. Personal, non-commercial use permitted so long as find out the accumulated time that % this header remains present and intact. Latest disk costs $24.50. gets spent inside certain PostScript % nuisancedict is persistently downloaded as a dictionary. Activate with nuisance begin procs, you start off with aresettimer . 0 exitserver serverdict begin 200 dict /nuisance exch def nuisance begin. 1000 dict /nuisance Then you do astarttimer every time exch def nuisance begin you enter the proc, followed by a /acos {2 copy dup mul exch dup mul sub sqrt exch pop exch atan} def % xside hypot acos stoptimer on each exit. Finally, you /asin {2 copy dup mul exch dup mul sub sqrt exch pop atan} def % yside hypot asin report the time back to the host with /backwards { 612 0 translate -1 1 scale} % print backwards areporttimer command. /baud.1200.d.25 {1200 25 4 dobaud} def /baud.1200.x.25 {1200 25 0 dobaud} def Thesnoop command will activate /baud.9600.d.25 {9600 25 4 dobaud} def /baud.9600.x.25 {9600 25 0 dobaud} def superexec for your use. For instance, /baud.19200.d.25 {19200 25 4 dobaud} def /baud.19200.x.25 {19200 25 0 dobaud} def /baud.38400.d.25 {38400 25 4 dobaud} def /baud.38400.x.25 {38400 25 0 dobaud} def if aforall gives you an invalidaccess /baud.57600.d.25 {57600 25 4 dobaud} def /baud.57600.x.25 {57600 25 0 dobaud} def error, a{forall} superexec often will /bestgray {106 45 {dup mul exch dup mul add 1.0 exch sub} setscreen} def % 106 line not. The same trick will often work for{get} superexec . /black {0 setgray} def /lightgray {0.99 setgray} def /white {1 setgray} def Callingsnoop also does open up /blackflash {0 0 moveto 1000 0 rlineto 0 1000 rlineto -1000 0 rlineto closepath fill showpage } def % black pre-page for highest print quality internaldict along with all its many strange and wondrous denizens. Very /copies { /#copies exch def} def % as in 6 copies handy. And most interesting. /dobaud {serverdict begin 0 exitserver statusdict begin 3 copy setsccbatch setsccinteractive One of the extremely interesting end quit} def % used by baud commands routines ininternaldict is FlxProc . /feetfirst {180 rotate 612 792 translate} def % eject print feet first This takes a pair of cubic splines and /inch {72 mul} def /pixel {72 mul 300 div} def % 300 dpi only using a highly unique erosion algo- /indiagray {135 35 {dup mul exch dup mul add 1.0 exch sub} setscreen} def %133 screen rithm, converts any curved lines to /landscape {-90 rotate -792 0 translate} def % pick landscape printing straight or "less bent" ones as their /listfonts {FontDirectory {pop == flush 200 {37 sin pop} repeat } forall} def % fonts to host size diminishes below a crucial /longjob {statusdict waittimeout 180 put} def % lengthen job timeout value. This is one key to PostScript’s ability to attractively show any very /manual {statusdict /manualfeed true put} def % start manual feed small typography. Andsnoop lets /negative {{1 sub abs} settransfer} def /positive {{ } settransfer} def you view it anytime you like. /notestpage {serverdict begin 0 exitserver statusdict begin false setdostartpage end end quit} A6 random command will return def % cancel test page to you a random number in the range /outline {false charpath} def % finds character outline path of zero to five. Should you in fact /persist {serverdict begin 0 exitserver} def % starts persistent download really want a one to six result, just /pi 3.1415926 def % you wanted rhubarb instead? tack on a1 add after calling random . /printfonts {/Helvetica findfont [10 0 0 10 0 0] makefont setfont /xpos 150 def /ypos 600 def Two listers of resident fonts are /yinc 12 def xpos 20 sub ypos 20 add moveto (CURRENTLY INSTALLED FONTS:) show provided. Thelistfonts command will FontDirectory {pop 100 string cvs xpos ypos moveto (/) show show /ypos ypos 12 sub def} forall showpage} def % fonts to page return a list of all the currently resi- dent PostScript fonts (these may be /putridgray {53 45 {dup mul exch dup mul add 1.0 exch sub} setscreen} def % stock screen internal, custom created, or down- /random {rand 65536 div 32768 div mul cvi} def % as in6 random for 0-5 result loaded) back to the host. The /report {== flush 100 {37 sin pop} repeat } def % top of stack to host printfonts will in- stead print a list /reprogray {85 35 {dup mul exch dup mul add 1.0 exch sub} setscreen} def % 85 line directly onto paper for you. /reportimer {mytime 1000 div (\rElapsed time: ) print 20 string cvs print ( seconds.\r) print The testpage can be defeated with flush} def % to host notestpage and later restarted by ac- /resettimer {/mytime 0 def} def % reset timer tivating myyestestpage command. /snoop {1183615869 internaldict begin} def % activates superexec These several dozen brand new /stall {{37 sin pop} repeat} def % delay as in 1500 stall commands are my choice of what I presently think I would like for me. /starttimer {usertime /mytimenow exch def} % add to time so far More of these goodies will almost /stoptimer {usertime mytimenow sub /mytime exch mytime add def} def % for multiple timing certainly be along later. Obviously, /stopwatchoff {stoptimer reporttimer} def /stopwatchon {resettimer starttimer} def you can easily and permanently /tan {dup sin exch cos dup 0 eq {pop 0.000001} if div} def % tangent rearrange the scenery to suit yourself. /tray {statusdict /manualfeed false put} def % stop manual feed So, why don’t you? As yet another /width {stringwidth pop} def % finds x width of string stupid contest this month, just show /yestestpage {serverdict begin 0 exitserver statusdict begin true setdostartpage end end quit} me how to improve upon any of the def % restore test page existing nuisance commands or add end some new ones that others might find Fig. 5 – A PostScript nuisance dictionary. useful. Let’s hear from you. 45.5

Don Lancaster’s Apple game paddle circuits Book publishing on demand PostScript intelligent directory ASK THE GURU The GOCCO silk screen process December, 1989 LaserJet to LaserWriter conversion

pple has just introduced a lously can let you flush QuickDraw of theirDOS manual and then charg- new version of the IIc. It and replace it with a third party ing users$125 for the upgrade? includes an internal power Display PostScript. Whoopee! Or that theFCC is demanding that Asupply and built-in3.5 inch There are two new Apple related all future high definition video dis- drive and runs up to3.3 times faster. publications out. One isREBOOT . It plays in this country be strictly and The price was also lowered slightly. certainly gets the record for the absolutely compatible with the obso- The memory expension connector northernmost Apple newsletter, since lete,30 year old NTSC (Never The has been changed. Third-party mem- any further north from Unalakleet Same Color) broadcast video? ory expansions to one megabyte and would be south. This is very read- This is exactly the same as asking beyond byApplied Engineering and able, particularly for novice users. a consortium of trolley car manufac- the "usual suspects" are expected. II Technical is a new magazine for turers to dictate manditory rules and They also further upgraded the IIgs all of you intermediate to advanced regulations for all personal vehicles operating system to version4.0 . This Appleholics. Free samples are now of the nineties. Run a stick over the is the first time a true and full 16-Bit available. Contact Brian Fitzgerald or cage bars of these epsilon minuses if IIgs operating system was provided. Greg Autry for your personal copy. you are as appalled over this blatant Outside of it running considerably Adobe Systems is having a big sale atrocity as I am. faster and fixing several bugs, there on their high quality downloadable Let’s see. We gotAsk the Guru , are not too many changes over the PostScript fonts. Buy a font for only volume I and II in print now, along recently released version3.2 system $32 and get a 45 Megabyte hard disk with aHardware Hacker volume II, master. An upgrade kit is available thrown in free. Its called the Adobe both published on demand. Stuff you from your dealer for$39 . Plans are Type Folio, and the only tiny gotcha just plain will not find elsewhere. afoot to make the manuals and the is that you have to buy all300 fonts Along with all the usual PostScript documentation available through the at the same time. It still is a real stuff. Write or call for info. usualBBS and user group sources. bargain for high endNTX owners As per usual, this is your column Prices of most memory-intensive that want a complete set of the finest and you can get tech help and off- Apple products were also sharply available typography. the-wall networking per the number raised, now that theRAM chip prices Adobe also has a free Font and in the end box. Also per usual, all of are dropping dramatically and the Function printed listing and a free the names and numbers are gathered RAM shortage is ending. They also Adobe Type Stack Mac Hypercard together at the end of the column. introduced a pricey Mac IIx with – disk available. Back to some basics . . . wonder of wonders – firmware in a Did you hear the one about IBM SIMM plug in module. This miracu- making a minor change to one page How do the Apple Game Paddles Work? Figure one shows you both the schematic and connections used for 16 15 14 13 12 11 10 9 NC AN0 AN1 AN2 AN3 PD3 PD1 NC shown as female the "old"16- pin Apple game paddles, GAME I/O DIP socket on while figure two shows you the same motherboard for the "new"9- pin paddles. +5V SW0 SW1 SW2 STB PD0 PD2 GND 1 2 3 4 5 6 7 8 Joysticks are similar, with the ex- ception that a pair of potentiometers are mechanically linked together into one assembly. ΩΩ 470 470 The pushbuttons work by bringing their respective button lines high to +5 volts when they are activated. Note thatPB0 gets shared with the open-apple key andPB1 gets shared left right button button with theclosed-apple key on all the 150K 150K newer machines. Note also that a "Y" axis "X" axis defective game paddle, joystick, or graphics tablet can simulate a per- manant holding down of one of the apple keys, doing some wildly wrong Fig. 1 – Circuit for the "old" Apple Game Paddles or Joystick. things toAppleWorks , to AppleWriter or to several other programs. 46.1 December, 1989

Pushbutton#0 or the open-apple inputs as plain old logic or push- series of LaserJets and LaserWriters. key is read by doing a PEEK (-16287) button inputs that are compatible But note that you can not and must from Basic or else aBIT $C061 from with any model Apple. This is a tad not attempt swapping a laser printer machine language. A result greater on the slow side since you have a cartridge with a personal copier one. than127 or a set N flag means the high capacitance input and need a The toner chemistry, light sensitivity, button or key is currently pressed. delay to verify your input, but it and interlocks are totally different. Similarly, either Pushbutton#1 or certainly will work. Yes the cartridges, particularly on the closed-apple key is read by doing those olderCX machines, are easily aPEEK (-16286) from Basic or a BIT Can I convert a LaserJet refillable several times for as little as $C062 from machine language. Into a LaserWriter? $7.50 per refill, as we have seen in The paddle or joystick potentio- P.T. Barnum was right. past columns and in both volumes of meters must be150K units that will The only two little fatal flaws in Ask The Guru. actually change from0 to 150K over theHewlett-Packard LaserJet series HP’s attitude towards service and their mechanically active range. Note of printers are that they are totally repair parts are light years ahead of that other resistance values and other brain dead and, as factory stock, are the black hole policy at Apple, and standards are used on other personal incapable of speaking PostScript. In the more knowledgeable LaserWriter computers; as a general rule, the pad- my opinion, these fatal flaws make users end up using LaserJet manuals dles or joystick must be matched to all of the LaserJets totally useless for andHP repair parts, available via the computer they are run on. any serious desktop publishing. VISA and an 800 number overnight to The potentiometers form the varia- Many LaserJet users apparently anyone anytime. The applicable older ble charging resistor in a quad timer agree, for they are finally realizing CX manual goes by HP part number circuit that is in the555 chip family. how bad they have been had and are #02686-90904, while their newer SX At the start of a timing interval, a flooding our helpline with pleas for manual is#33440-90904 . timing capacitor is allowed to start help salvaging their investment. There are half a dozen reasonable charging. The timing interval ends Let’s start off with some positive routes to salvaging your LaserJet when the capacitor reaches a preset comments: The LaserJets and the investment that would seem more value. By measuring the charging LaserWriters both use nearly iden- productive than staking your nearest time, you can relate the paddle or tical and very well performing Canon HP salesman to an anthill. joystick position to a number in the CX or the newer SX printing engines. One is to snap on an intelligent range of0-255 . Sadly, these engines represent only and genuine PostScript speaking lid. Automatic paddle measurement is around15 percent of a laser printer; it TheQMS people offer several PS-Jet done from Basic with an X = PDL (0) is the PostScript raster image pro- lids that give you full PostScript orY = PDL (1) . From machine langu- cessor that does all of the important capabilities. Unfortunately, these lids age, aJSR $FB1E will read the pad- work and ends up getting nearly all can cost considerably more than your dle number whose value is in the X of the useful results. LaserJet, and the combined price can register at the time of the subroutine The slide-in toner cartridges are end up rather on the high side. call. An$00 to $FF value is returned fully interchangeable between similar Weitek now provides some super in the accumulator. ground One gotcha: if you do try to read successive paddles too close together +5V in machine language you will get 5 3 2 1 some interaction. Always be sure to shown as female wait several milliseconds before any DB-9 socket on successive paddle reads. Applesloth rear panel Basic is so slow that it automatically 8 7 does this for you. Yes, you can modify your game paddles. The II+, IIe, and IIgs give Ω Ω you a third and fourth paddle input 470 470 and a third pushbutton input. You can also fake a fourth pushbutton input with an extra wire on the II+ or IIe by jumpering to the output of the left right cassette read comparator. button button To write your own routines for, 150K 150K say, anA/D converter or for extra "X" axis "Y" axis resolution, you can useBIT $C070 to reset the paddle circuitry and a BIT $C064 to sense paddle zero, or else a BIT $CO65 to sense paddle one. Fig. 2 – Circuit for the "new" Apple Game Paddles or Joystick. It is also possible to use the paddle 46.2 ASK THE GURU duper customRISC computer chips to this route. The main LaserWriter The apparent problems with host- several manufacturers who are now computer boards are very difficult to based software solutions are that they offering all sorts of new LaserJet lid find at reasonable prices, while the are very slow and that the PostScript options, as well as "real" PostScript much smaller and also required in- emulation is partial at best. Many of raster image processors that will plug terface connector card is just about these also do not support the down- directly into various personal com- impossible to pin down. loadable genuine Adobe PostScript puters. ContactWeitek directly for a There are also some interesting fonts that are crucial to serious high current list of retail suppliers. Some and low cost software-only solutions end desktop publishing uses. of the Weitek implementations run as to the LaserJet problem. One of these Finally, rumor has it thatHP is much as five times faster than the is theFreedom of the Press , while a shortly coming out with a brand new high end Apple LaserWriterNTX and second isGoScript from LaserGo . duplex (double sided) laser printer do so at a potentially lower cost. All you helpline callers have been that uses the super secret advanced It’s also possible to install a new especially enthusiastic overGoScript . Canon NX engine.HP would have to LaserWriter computer directly into a Besides driving a LaserJet, this can be absolute idiots to not offer factory HP LaserJet. A $10 set of easy plans even give anEpson dot matrix printer stock PostScript in this machine. is available from Custom Technol- some limited PostScript capabilities, Time will tell. Meanwhile, I have ogy, while the LaserWriter boards are and the cost is under$200 . got this anthill if you need it for any- sometimes available through Shreve Yes, most of my PostScript Show thing. Anything at all. Systems. There’s two problems with and Tell will run under GoScript . Tell me all About A New Franchising Opportunity It is called Book Publishing on Demand and it goes like this: Picture a machine in your video rental store or convenience market, a four foot cube. In it areCD ROM PostScript Benton Goar 16453 N. Hwy 72 Las Cruces NM 80580 (550) 532-6802 Linda Kay Goodnight 2046 E. Hampton Tucson AZ 87153 (621) 729-0332 Larry Gose 440 W. Hillcrest Las Cruces NM 80580 (550) 542-6263 Donald & Betty Graf 2264 N. Oak Street Phoenix AZ 80650 (621) 235-4848 Hulapai Librarian P.O. Box 1290 Hulapai AZ 28603 Marvin Graham 234 1/2 W. Extension Tucson AZ 81574 (621) 249-3478 Michelle Greenway 17245 S. Horsham Phoenix AZ 84504 (621) 469-9519 Jenifer Gregory 337 W. Arapahoe Lane Phoenix AZ 82507 (621) 528-5854 Phil & Sandra Gruss 1486 S. Ventana Pl. Tucson AZ 83570 (621) 709-6927 Edward Gunn 290 E. 48th St. Tucson AZ 87159 (621) 249-3487 data bases for75 thousand popular books. The phone line that goes into the wall is connectable to75 million more titles. Make a keyboard entry,

page 3 and out pops a custom bound book, $6 for a paperback or $9 for hard- Ed and Kathy Fette 2310 W. Delaware Mesa AZ 80252 (621) 84-7330 Sherry Fiedler 251 W. Palo Verde Drive Tucson AZ 84578 (621) 712-2823 Arthur Flores 11293 E. Marina Del Rey Tucson AZ 87549 Howard Francisco 3720 N. Bonita Tucson AZ 84157 (621) 474-3296 Hector Garcia, Jr. Box 8146 Flagstaff AZ 80602 Yvonne Garifine 6322 N. Burney Blvd Tucson AZ 81576 (621) 352-4219 Ron and Hopi Gates 7466 W. 19th St. Tucson AZ 80573 (621) 709-4518 Eric Gatlin 6257 E College Avenue Scottsdale AZ 85151 (621) 964-3302 Judy Gibson 7340 Vista Dr. Reno NV 83950 (720) 794-3186 Ron Gibson 8763 W. Hidden Canyon Rd. Tucson AZ 81575 (621) 794-3186 bound. With, of course, the buyer’s

BSB Fall 1988 Directory name in gold on the cover. The advantages and economics to creating only books that are needed and wanted are overwhelming. There

Thomas Eady 102 Wintergreen Trail Bisbee AZ 80563 (621) 423-5326 Janice Earle 81218 S. Elm Street Phoeniz AZ 80544 Chris Ellington 496 S. Ohio Drive Tucson AZ 83570 (621) 722-1893 Edward Erwin 3932 W. Ginger Phoenix AZ 80529 (621) 989-1317 Escadora Grottinsky P.O. Box 3634 Tucson AZ 82572 (621) 975-9691 Henry Evans P.O. Box 80235 Tempe AZ 88522 (621) 849-7051 Janet Ey 4260 N Gabriel Ave. Tucson AZ 81579 (621) 719-7181 Jay Farmer 7022 N. Christopher Payson AZ 84551 (621) 447-2802 Ray Faulkner 5345 E. Rambo Tucson AZ 81571 (621) 759-8584 Russ Feser 1334 West Laird Street Tempe AZ 88521 are no shipping charges, no distrib- utors or multi-tier distribution, no shopworn or dog-eared volumes, no returns, no stocking decisions, no fighting for shelf space or visibility, and no remainders. And no more of theIRS paying publishers to shred books like it now

Steve Rosenberg 7323 South La Penta Tempe AZ 82852 (621) 892-7616 Frank Rothermel 1354 Church Ave. Apt 18 Las Vegas NV 80291 Dwayne Runyon 346 East Susan Tucson AZ 87505 (621) 622-4493 Bretn Ryan 1204 N. Ocotilla Tucson AZ 87512 Steve Saucedo 3414 North 168 St Scottsdale AZ 82551 (621) 994-7701 Wyett Scheibner 8612 Pleasantcove NW Albuquerque NM 78017 Darrell & Louise Schneiker 8223 E. Unita Place P.O.Box 46277 Tucson AZ 87533 Ronald Schultz 7311 East Glenrosa #17 Phoenix AZ 81505 (621) 242-5069 W. Roland Sears 314 Despucci Dr. Sierra Vista AZ 86553 (621) 495-7528 Rachael Sharp 8590 West 53rd Street Tucson AZ 87584 (621) 721-4736 insists on doing. No inventory means no backlist tax. All titles now instantly available. Anyplace, anytime. There’s no such thing as an out-of-print book. Ever. page 6 Because of the superb economics,

Rick Rackley 1052 North 48 Place Scottsdale AZ 82557 (621) 804-2413 Luke Rademacher 7055 North Knorr Tucson AZ 87158 (621) 292-6833 Timothy Rasmussen 659 E. Bell Tucson AZ 87519 Velma Ray RR7 Box 7811 Sierra Vista AZ 86535 (621) 387-0545 Resource Management Paul Bernard 3419 Cerro Alvarez Santa Fe NM 85701 Bill & Diane Rhodes Box 3347 Albuquerque NM 81795 (551) 837-1551 William Ringler 2142 Monongahela St. Tucson AZ 87055 Jerry Rodgers 204 N. Cortez Apt 31 Prescott AZ 83601 (621) 767-9324 Brooks Rorbach Box 6199 Cave Creek AZ 83531 (621) 494-1421 Director Avonics International P.O. Box 1270 Portal AZ 86532 authors could now actually be paid a living wage. Say20 percent of the BSB Fall 1988 Directory final selling price of all copies sold for a beginning author,25 percent for a proven writer, and as much as 33 percent for a gonzo best seller. And Horace & Doris Palmer Box 1567 Mesa AZ 81521 (621) 948L-0876 Rob & Gail Pape 9650 E. Maryanne Dr. Tucson AZ 87530 (621) 754-0126 Sameul A. Paul P.O. Box 556 Rimrock AZ 83635 (621) 576-4161 Roger K. Peachey 5092 N. Exeter #12 Tucson AZ 87159 (621) 352-0170 Paul & Elaine Peerman 1577 Pascal Rd. Las Cruces NM 80801 (550) 532-2617 Bill Peterson Box 2718 Thatcher AZ 82565 (612) 482-1375 George Plante 1611 N. Hillside Ave. Tucson AZ 81579 (621) 729-3738 Henry Porter 1207 Buena Dr. Sierra Vista AZ 86535 Henrietta Pound Rural Route Rago KS 61278 (163) 523-2299 Joe & Sue Press 2411 E. Silverton Rd. Tucson AZ 84579 (621) 794-4146 payment could be an instant banking credit for the better selling authors. Fig. 3 – A PostScript intelligent directory page pair. With returns and all those similar ripoffs virtually unheard of. 46.3 December, 1989 The quaint and arcane concept of toner parts get hot, melt, and pick up since black on the print makes holes "getting a manuscript accepted" now the wax, opening holes in the screen. in the screen which puts ink onto the would cease to be meaningful, as the The white parts stay cool and leave final page or whatever it is you are process would end up as complicated the wax on the screen. printing on. Each screen is good for as qualifying yourself to buy a quart You have a positive acting system, hundreds of impressions. of milk. Any submission would be quickly scanned for legality, read- % Copyright c 1989 by Don Lancaster and Synergetics, Box 809, Thatcher, AZ 85552. ability, and sanity. A small format- % (602) 428-4073. All rights reserved. Personal, non-commercial use permitted so long as ting fee would then be paid. Presto. % this header remains present and intact. Latest work-in-progress disk costs $39.50. You are in print. Forever. % Requires my gonzo justify and my ps.util.1 Free printed copies on request. No more publisher’s committees ps.util.1 begin printerror nuisance begin landscape sitting on your manuscript for four- /font0 {/NewCenturySchlbk-Bold findfont [1.2 0 0 1.4 0 0] makefont setfont} def teen months and then rejecting it /font1 {/Helvetica-Bold findfont [0.7 0 0 0.7 0 0] makefont setfont} def because it was "not timely". First /font2 {/Helvetica findfont [0.8 0 0 0.8 0 0] makefont setfont} def review copies could now be available /namesperpage 30 def /colcheck {} def within minutes. Or even less if the /sheet81 {/leftpagenum (page 8) def /rightpagenum (page 1) def /leftstartingname 7 reviewers have their own machines. namesperpage mul def /rightstartingname 0 namesperpage mul def} def Many pieces of book publishing on /sheet27 {/leftpagenum (page 2) def /rightpagenum (page 7) def /leftstartingname 1 demand are rapidly falling in place. I namesperpage mul def /rightstartingname 6 namesperpage mul def} def am actually profitably doing a lot of /sheet63 {/leftpagenum (page 6) def /rightpagenum (page 3) def /leftstartingname 5 this on my own, albeit on a manual, namesperpage mul def /rightstartingname 2 namesperpage mul def} def rather than an automated basis. All /sheet45 {/leftpagenum (page 4) def /rightpagenum (page 5) def /leftstartingname 3 gets done "low end" with outstanding namesperpage mul def /rightstartingname 4 namesperpage mul def} def economics. And those helpline calls /printnames {/startwith exch def /xpos 1 def /ytop 55.2 def /ypos0 ytop def /ypos ypos0 def /yinc 0.9 def /yshift 56 10 div def 0 0 (\0332)cc 3 {10 {xpos ypos brbarray startwith have created a network of associates get cl /ypos0 ypos0 yshift sub def /ypos ypos0 def /startwith startwith 1 add def} repeat /ypos0 that also have a very heavy interest in ytop def /ypos ypos0 def /xpos xpos 35 3 div add def} repeat} def this exciting new opportunity. /background {25 21 10 setgrid bestgray lightgray 0.7 setgray 0 35 57 57 1.2 0.4 quickboxdraw Write or call if you want to join white 9 57 mt 17 r 15 0 mt 5 r black 35 2 div 56.6 (\0330BSB Fall 1988 Directory) cc gsave the team or get in on the network. No bestgray 0.7 setgray black 1 setlinecap 0.2 setlinewidth [{35 3 div 0.7 mt 55 u} 35 3 div 2 ] xrpt [{0.7 56 10 div 0.5 add mt 33.6 r} 56 10 div 9 ] yrpt grestore } def charge and no obligation, of course. /generatethepage {createarray save /leftsnap exch def background 35 2 div -0.3 leftpagenum What is GOCCO? cc leftstartingname printnames clear leftsnap restore save /rightsnap exch def 11 72 mul 2 div 0 translate background 35 2 div -0.3 rightpagenum cc rightstartingname printnames clear Every month, I feel I just have to rightsnap restore} def be getting to the bottom of the barrel /delimiter ( of unique new LaserWriter and Post- %%%%% Script materials and opportunities. ) def And every month, at the last possible /createarray { 1000 array /brbarray exch def /pointer 0 def 0 1 999 {brbarray exch ( ) put} for brblist {delimiter search {brbarray exch pointer exch put /pointer pointer 1 add def pop} instant, along comes some old pro- {exit} ifelse} loop} def duct scunging away somewhere on a /brblist forgotten dusty shelf that, one more (Aaron A. Aardvark time, opens up great heaping gobs of 1 First Avenue Alton, AL 32768 incredibly mind-blowing new desk- (101) 111-1101 top and laser printing worlds. . AM82 M84 Exp 1/1/90 This month, the product is called %%%%% GOCCO. This system will let you Byron B. Benson 2 Boyd Boulevard instantly convert any laser printed Bismark CA, 22021 image into a silk screen off of which (202) 222-2202 you can do high quality "real" print- . M87 88 Dues not paid ing with "real" ink onto just about %%%%% any surface imaginable. Even several (This continues for up to 240 names) colors at once if you want to. %%%%% Zack Zimmerman The system, materials, and how-to 99999 Zoraster Trail books are available either from Think Zion, UT 99909 Ink or Polycor . (999) 999-9909 .FM86 M88 Exp 1/1/94 The system is similar to those old %%%%% thermal transfer masters. Your silk %%%%%) def screen is pre-coated with a thin and % selections here are sheet81, sheet27, sheet63, or sheet45 meltable wax. Light from several sheet63 320 copies generatethepage showpage flashbulbs or an old thermal master machine shines through the screen Fig. 4 – PostScript code for the intelligent directory. and onto your laser print. The black 46.4 ASK THE GURU Mucho thanks to that absolutely wax, some more permanant thermo- outstandingWhole Earth Review for graphic material that might produce How Do I get Started putting me onto this great product, as "raised print" on your laser output? Using PostScript? they do dozens of other times each Perhaps two components that, when As should be ridiculously obvious issue. And thanks to Don Harbolt, a melted together, can create a durable by now, PostScript isthe best way of winner in our color proofing contest, varnish or raised epoxy. That would combining text and graphics into for his valuable input on this. really be potent. useful page descriptions for laser An afterthought: CouldGOCCO be In fact, any way of handling laser printers and phototypesetters. modified so that, instead of using a thermography would be real handy. Back to all of the fundamentals. PostScript is a universal and general % Copyright c 1989 by Don Lancaster and Synergetics, Box 809, Thatcher, AZ 85552. purpose computer language that is % (602) 428-4073. All rights reserved. Personal, non-commercial use permitted so long as distantly related toForth . It excels at % this header remains present and intact. Latest work-in-progress disk costs $39.50. graphics and text page image buildup % Requires my gonzo justify and my ps.util.1 Free printed copies on request. through its device independence; its ps.util.1 begin printerror nuisance begin landscape outstanding curve drawing abilities; /font0 {/NewCenturySchlbk-Bold findfont [1.5 0 0 1.5 0 0] makefont setfont} def its powerful techniques for trans- /font1 {/Helvetica-Bold findfont [0.7 0 0 0.7 0 0] makefont setfont} def lation, rotation, scaling, and for other /font2 {/Helvetica findfont [0.8 0 0 0.8 0 0] makefont setfont} def transformations; and for its extensive /colcheck {} def /startwith 0 def /showthegrids false def font machinery. /printnames { /yinc 1.8 def 0 0 (\0330)cc gsave 20 22 translate 90 rotate #ofnamestoprint {0 Unlike several lower level printer 0 brbarray startwith get cl copypage newpath -2 -10 mt 15 pu 30 pr 15 pd closepath gsave 1 setgray fill grestore /startwith startwith 1 add def} repeat grestore } def languages, a single PostScript font can be shown in any size from 2 /logo { % your return address or return logo proc goes here } def points to60,000 points in quarter /background {25 21 10 setgrid showthegrids {35 57 showgrid} if bestgray lightgray 0.7 point increments, and shown in any setgray 0 35 57 57 1.2 0.4 quickboxdraw black newpath logo} def direction on the page, or along a /generatethepage {/yinc 2 def save /rightsnap exch def 11 2 div 72 mul 8.5 72 mul translate circular or even totally arbitrary path. 180 rotate 25 21 10 setgrid showthegrids {35 57 showgrid} if bestgray lightgray 0.7 setgray Powerful post-path techniques also 4.5 26 40 11 1.2 0.4 quickboxdraw black /yinc 2 def 17.5 36 blurbtext cc clear rightsnap give you a virtually infinite number restore createarray save /leftsnap exch def 11 72 mul 2 div 0 translate background printnames clear leftsnap restore} def of variations upon any of the many thousands of PostScript fonts that are /delimiter ( %%%%% available today. ) def To use PostScript, your printer or /createarray { 1000 array /brbarray exch def /pointer 0 def 0 1 999 {brbarray exch ( ) put} for output devicemust have a built-in brblist { delimiter search {brbarray exch pointer exch put /pointer pointer 1 add def pop}{exit} PostScript interpreter. As a user, you ifelse} loop} def can crete your PostScript programs /blurbtext using nothing but words and numbers (\0330Your Fall 1988 B.R.B. Directory, Meeting Notice, in any old word processor. Or, you And Call For Papers) def can use any of dozens of popular /brblist PostScript speaking canned applic- (Aaron A. Aardvark ations programs. Or any of a number 1 First Avenue of powerful emulators that temp- Alton, AL 32768 (101) 111-1101 orarily downgrade PostScript so as to . AM82 M84 Exp 1/1/90 get it to behave like older printer and %%%%% plotter languages. Byron B. Benson 2 Boyd Boulevard Because of its nearly total device Bismark CA, 22021 independence, PostScript will work (202) 222-2202 with virtually any computer, although . M87 88 Dues not paid %%%%% many of the more powerful canned applications programs tend to be (This continues for up to 240 names) mostly Mac andIBM oriented. On the %%%%% other hand, I have yet to find any Zack Zimmerman 99999 Zoraster Trail program onany computer that is Zion, UT 99909 remotely as good as AppleWriter on (999) 999-9909 a IIe when it comes to quickly and .FM86 M88 Exp 1/1/94 %%%%% conveniently developing custom or %%%%%) def unique PostScript code. % add handfeed here if wanted PostScript today is aimed mostly at /#ofnamestoprint 300 def generatethepage laser printers and phototypesetters. Software is now becoming available Fig. 5 – Intelligent Directory Auto-Addressing Cover. that lets you run PostScript on low end printers, for plotters, engraving 46.5 December, 1989 machines, and even fax systems. And effective step-and-repeat procs. Figure three shows you a typical it is only a matter of time that display And, fourth, using raw PostScript directory page before folding, while PostScript will become a de-facto lets you do things in your own way, the PostScript code for the internal graphics standard, owing both to its rather than by using stuff that some- pages is shown in figure four. device independence and raw power. one else decided just absolutely had Most of the self-addressing and If you think about it for a while, it to be good for you. auto-mailing Post-Script cover code sure seems downright stupid to have But far and away the most compel- appears in figure five. Note that the one screen graphics standard, and a ling reason to learn and use raw addressing gets done at the same time second printer standard. As the Mac PostScript is that it often lets you the rest of the cover is printed. people have found out the hard way, easily and quickly do things that This does require my gonzo justify QuickDraw simply cannot hold a would seem impossible or extremely stuff we looked at in the October candle to display PostScript when it difficult to do with those canned ap- 1988 Computer Shopper. Write or comes to rich and powerful page plications programs. call for a free printed listing. This is descriptions. Let’s look at printing an intelligent also available ready to run on my So how do you get started using directory as an example. But, before Work in Progress disk and in Ask The and learning PostScript on your own? we do, and to put my money where Guru, volume II. If you do not already have access my mouth is, let’s have another one Each sub-page uses a gray border, to a PostScript speaking printer, start of our stupid contests. with the organization name at the top with myIntro to PostScript video, Just show meany way at all to use and the page number at the bottom. theseAsk the Guru reprints, or that a canned pagemaking or illustration The input list is scanned between blue PostScript Tutorial and Cook- applications package to do what fol- selected markers, which can let you book from Adobe Systems. lows that is even remotely as fast and have three, four, or even five lines in Later on, when you get your own as convenient as using raw PostScript the address without any hassles. In printer, pick up my PostScript Show and AppleWriter on a IIe, and you’ll this example, five percent signs are and Tell disks, available for most win an Incredible Secret Money Ma- used as the delimiting marker. You popular personal computer brands, chine. In addition, the best entry of can substitute any delimiter you like. and purchase Adobe’s red PostScript all will win an all expense paid (FOB It is up to your word processor or Reference Manual and their green Thatcher,AZ) tinaja quest for two. whatever to select the printing versus PostScript Program Design books. I Back to the program. Our goal non-printing lines. In the case of do try to stock all these. here is to quickly and conveniently AppleWriter, any data line that starts Or write and call me for more publish a directory for a club or a with a period gets ignored. This lets specific suggestions. We now get 30 medium sized organization of100 to you put hidden lines into each entry. to50 PostScript helpline questions 1200 members. The directory is to be To drop out the phone number on the per day. Best calling times are 8-5 a folded booklet, and all the directory actual addressing, you can either pre- weekdays, mountain standard time. entries are to be in an "open" form fix your number with a period, or that is easy to use and easy to read. It else search and replace the list and What is This Month’s should also be possible to chop up a eliminate any line that starts with an PostScript Utility? directory and use it as quick response opening parenthesis. Helpline callers often ask me why mailing labels. The initial list then gets converted they should bother learning and using The directory must accept input to an array of addresses. This greatly "raw" PostScript when there are all from any word processor or data base simplifies finding the initial address of those canned page making and in the world, and all directory entries for each sub-page. illustration applications programs should fully support some "hidden" A sneaky trick is used to do the that are just sitting out there. and non-printing information such as self-addressing. Instead of creating Well, first, PostScript is lots of fun their membership class, when they your entire mailing cover art over and is insanely addictive. That should joined, their membership numbers, and over again, you simply will erase be enough of an answer right there. etc. The directory should also be able each old name and put a new one At least for you new age types. to internally self-address and self- down. This is insanely faster and runs Second, your own PostScript code mail to its own list, doing so at the at the full speed of just about any can often run ridiculously faster than full "wide open" printer speed. PostScript printer. all the canned stuff. A three column, Above all, the directory has to be As shown, the code is specific for 6000 character gonzo justified layout smart enough that it will automatic- an eight page directory of up to 240 with two figures, a header, and a ally put, say, page eight to the left of names. It can be easily customized footer should only take three seconds page one on the same landscape for other lengths, or even fully auto- or so above the normal paper feeding sheet, and automatically put the right mated to produce whatever number speed when you use your own code. names in the right order on each and of pages the list demands. Third, you can often get a higher every page. As names get added or To also give you a chance at a quality final printed result, especially removed anywhere in the list, all the winnable contest, just show me any when it comes to such things as text others will automatically get shoved variation at all on the theme of intel- justification, a decent looking gray, around each page or between pages ligent and self-mailing directories. smooth curves, unusual borders, or or columns as needed. Let me hear from you. 46.6 Don Lancaster’s PC Transporter first look PostScript intelligent tabs LaserWriter NTX defects list ASK THE GURU Simple white noise generator January, 1989 Printer and printing resources

hat is the future of the inexcusable frustration levels that are glance, it appears as if there is no Apple IIgs? Stan Veit involved in thatAPW development support whatsoever for5-1/4 inch and I have been kicking environment. If you have to go to all disk drives in this new operating W this around, and we are that innane nonsense, then you might system. Actually, the needed 5-1/4 getting a few different answers from as well be doing it all on a Mac. At drivers are buried in a subdirectory several different sources. present, any serious IIgs commercial named/TOOL.DIRECTORY . A copy At present, the unit sales of the software development appears to be a of the drivers have to be moved up IIgs are pretty near the same as those sucker bet because of the sheer frus- into/SYSTEM/SYSTEM.DRIVER/ . of theIBM XT , at four percent of the tration problems involvingAPW . Full tech details onGS/OS are now total computer market. These figures The long term handwriting is on available fromAPDA . are fromComputer Reseller , a pretty the wall. Apple now has a secret new Meanwhile,Hewlett-Packard has much pro-IBM trade journal that is a machine in the works known as the finally gotten around to paying their great way to keep score of just who is Brooklyn Bridge that runs both Mac PostScript license fees. No sense in doing what to whom. and IIgs software side by side. rushing these things. Another very Apple is sending you conflicting Actually, if you think about it for a few years, and it should actually be signals. They have just upgraded the while, the day of the custom operat- possible to do useful desktop pub- IIgs operating system and are now ing system is nearing an end. Instead, lishing from a new factory stock H-P agressively hiring a big bunch of new you just take lots ofRAM and a RISC LaserJet printer. top-quality Apple II people. Apple chip that’s running like a bat out of My views on what’s-his-name’s IIc, IIe, and IIgs end user and devel- Cupertino, and then provide suitable NeXT machine? Thought you would oper support is far and away the best firmware microcode that temporarily never ask. It does clearly show its it has ever been. The same goes for downgrades it into your choice of a Lisa and AppleIII heritage. And it Apple’s own publications and tech 80386, a 65832 , or a 68030 . And then definitely sews up the "CD audio info. Those new "big machine" prod- runs anything by anybody. Real time pirate who is also a Shakespeare lov- ucts from third parties, such as the or even faster. ing university professor" market. improvedAppleWorks , PC Transpor- Similarly, disk drives are getting There’s a lot of similarities here ter and the great newGEOS graphics smarter and more flexible. A "multi- with the Amiga, which also was a environment are coming on-line and sync" drive that can accept any past machine that introduced some new making a big splash. or present media shouldn’t be all that innovations a few weeks ahead of On the other hand, Apple has been far away. Interestingly enough, the their time that all the others promptly witholding the IIgs upgrade, and they newGS/OS operating system does stole and ran with. This time, the key purposely crippled that recent IIc include aFST , or File System Trans- developments include display Post- upgrade by keeping AppleTalk and a lator code that, in theory, will let you Script, fully professional audio, and real time clock off it. And the intro- read from or to any disk file in any an erasable and removable CD-ROM duction of a MacK-12 is imminent. format, crossing any boundary. disk system. Fatal flaws currently As I see it, there is only one fatal Oh yeah. There is a stupidity on include the lack of ordinary floppy flaw in the IIgs. And that lies in all of the new IIgs version4.0 GS/OS oper- disk drives, lack of color, and the the monumental costs, the incredible ating system that is driving all you market focus that is far too narrow. time delays, rude surprises, and the newcomers up the wall. At a first Apple has now released their new LaserWriter Reference Manual. In- cluded are complete lists of all the (1) On an Apple II+, IIc, IIe, or IIgs, get intoBASIC.SYSTEM and Diablo and the LaserJet commands, do aCALL -151 to get into the monitor. secrets of hard disk access, interface (2) Then, enter the following code: details, the works. I do have a few 0300: 4C 07 03 27 0C A1 C9 AD copies in stock here atSynergetics if 0308: 06 03 0A 0A 0A 4D 06 03 you need one. 0310: 0A 0A 90 03 2C 30 C0 2E Speaking of which, we do have 0318: 03 03 2E 04 03 2E 05 03 autographed copies of volume I and 0320: 2E 06 03 4C 07 03 11 11 volume II ofAsk the Guru in stock now, as well as volume II of all my (3) Finally, do a BSAVE KFC.VIRUS, A$0300, L$28, D2 Hardware Hacker stuff. And, if you (4) To test, use, or abuse your code, do a BRUN KFC.VIRUS need the very latest and the very best of all my PostScript goodies, do look Fig. 1 – A simple "white noise" generator. into myWork in Progress disks. As per usual, this is your column 47.1 January, 1989 and you can get technical help and school of marketing theory, all of my rescue. They have a nifty product off-the-wall networking per the end software is initially developed on an called thePC Transporter , which is a box that follows the usual Names and Apple IIe or IIgs and then translated plug in card for a IIe or IIgs that is an Numbers section. and sold to unsuspectingIBM , Mac, entire American made Hong Kong Let us start off by giving you a and Atari folks. clone on a card, except that it runs bunch of static . . . As you can imagine, it has been a three times faster than the real thing. real problem to translate and then There is now aMS/DOS drive on Show me a Simple duplicate disks. In particular, all of my Apple, and you simply use a copy White Noise Generator theMS/DOS translations did involve command to translate PostScript files Few people realize how easy it is hauling Bee’s IIc across town and or whatever else you care to between to generate white noise sound effects connecting it to a Hong Kong clone, the two disk standards. on most any Apple. Figure one gives sending the files over with Apple- I’ve only had the beast for a few you a short machine language code Writer and receiving them with PC days, but the high quality engineering routine you might like to try. Talk. But Kate moved, and so did her that went into it is obvious. It is even This is based on a31 stage pseudo Hong Kong machine. What to do? priced less than a stand-alone clone random sequence generator. It is just It wasApplied Engineering to the would be. And the PC Transporter a long shift register with feedback from stages28 and 31 being EOR’ed together to form the next input. After 1. The per-page toner costs are currently as much as 15 times higher each shift, out comes an apparently than on the earlier LaserWriter printers, making the NTX totally random10 or . While the ones and useless for serious production work. zeros are apparently random and do 2. The factory toner is excessively abrasive and the cartridge drums are in fact obey most of the rules of ran- far too scratch prone. Edge shading effects are also unacceptable. dom numbers, that same sequence 3. The lack of user toner refillability on factory stock cartridges is an will repeat over and over again, once outright and intolerable atrocity. each2,147,483,647 counts. If you get a one out, you whap the 4. Current Apple "black hole" service policies demand that you must speaker, while if you get a zero out, use Hewlett Packard repair manuals and H-P repair parts. you do nothing. The results sound 5. Any custom serial interface settings get totally trashed if any use at like your Apple is frying itself in its all is ever made of AppleTalk through switch changes. own grease, and it is a pretty good (although slightly pinkish) approx- 6. The mode changing switches are far too flimsy. imation to a white noise source. 7. The lack of any handles makes the NTX extremely easy to drop. This The code might be extended for is an acute problem for demos, lectures, and school use. various sound effects. It can also be- 8. The backwards numbering on the print density dial is just plain come the basis for a highly useful wrong. It should also be outside adjustable. random number generator that is far better than the fatally flawed one that 9. The paper tray is still far too shallow. One ream plus a hundred is used in AppleSloth. pages is the absolute minimum. More details on all this, with full 10. Envelope print quality, while greatly improved, is still marginal. working source and object code, do appear in my Assembly Cookbook 11. The PostScriptframetofile command is conspicuously absent. For The Apple II and IIe. Write or 12. Many PostScript functions, notablyeexec , cexec , superexec , and call if you need an autographed copy. FlxProc, among others, are improperly documented. What is The 13. The font lockout onpathforall is a second inexcusable atrocity. PC Transporter? 14. There is no video output, nor any way of accessing final bitmaps. I am not a great fan ofMS/DOS . I 15. Hard disk usage is unnecessarily restrictive. feel it is insipid, stilted, and grossly uninspiring. Totally lacking in vibes 16. AppleTalk is often ridiculously slower than standard serial access. of any nature. The sort of thing you 17. Recent speedup techniques, including the 68030, the Weitek RISC would expect a middle management chip, and new firmware leave the NTX as a rather slow machine. insurance actuary to be using while 18. The $150 so-called "required AppleTalk" cables can be replaced with working on the fifteenth floor of a an ordinary $5 printer cable for many users much of the time. Milwaukee office building. Nonetheless, there sure are a lot of 19. AppleTalk is not device independent; it treats newline characters people laboring under the delusion different than does the serial comm channels. that they are willing to actually pay 20. The NTX costs too much. for disks that sayMS/DOS on them. So, since I am a card carrying and Fig. 2 – Defects in the LaserWriter NTX. graduate member of the P.T.Barnum 47.2 ASK THE GURU certainly does a lot more than the suppose it is time to tell you what is to date if you ignore all the costs. limited demands I’ve asked of it. wrong with it. I have now thoroughly So,if you have access to an Apple So, I’ll hold off on giving you a tested it out on a twelve hour per day educational or developer discount, or thorough review just yet. The beast basis, doing all my columns, walk-in if you are spending someone else’s works and works well and solves a typesetting, ad materials, my internal money, then theNTX is far and away lot of problems for me. Nuff said. forms, and even attempting book-on- the one to buy. Otherwise, that NEC Don’t miss the egress. This way to demand publishing with it. LC-890 represents a very good, and the egress . . . First and foremost, the Canon SX very economical choice. engine is far and away the finest and Incidentally, the NeXT hype about What’s Wrong With the NTX? most popular "low end" laser printing their$2000 PostScript printer is just Well, I have had my LaserWriter engine. And theNTX is the finest SX that. To build a NeXT printer, you NTX for eight months now, and I do PostScript implementation available just take an already brain dead $1400 street price LaserJet and then remove some electronic components from it. American Printer Graphic International Print Equipment News When you have display PostScript in 300 West Adams PO Box 4639 Box 5540 Chicago, IL 60606 Pompano Beach, FL 33063 Glendale, CA 91201 your host, you can get away with use (312) 726-2802 (305) 971-4360 (818) 954-9495 of a brain dead engine. So long as Business Forms & Systems High Volume Printing The Printers Shopper you don’t mind tying up your host. 401 North Broad Street Box 368 PO Drawer 1056 Anyway, on to the bigNTX roast. Philadelphia, PA 19108 Northbrook IL, 60062 Chula Vista, CA 92012 Figure two shows you some of the (215) 238-5300 (312) 564-5940 (800) 854-2911 main defects in this machine that I Canadian Printer & Publisher Image World RIT Printing Impressions 777 Bay Street One Lomb Memorial Drive 401 North Broad Street have run across. You can judge how Toronto, ONT M5W 1A7 Rochester, NY 14623 Philadelphia, PA 19108 important these are to yourself. (416) 596-5781 (716) 475-2549 (215) 238-5300 I feel that the realNTX killer is the Colophon In-Plant Printer Printing Journal 15:1 difference in the per-page toner 1585 Charleston Road Box 368 Box 5515 costs between it and all the earlier Mountain View, CA 94039 Northbrook, IL 60062 Pasadena, CA 91107 (800) 833-6687 (312) 564-5940 (818) 793-7901 LaserWriters. This effectively locks out theNTX from virtually all pro- Direct Image Corp In Plant Reproductions Printing News 1350 S Monterey Pass Road 401 North Broad Street 468 Park Avenue South duction uses, and has forced me to Monterey Park, CA 91754 Philadelphia, PA 19108 , NY 10016 drop back to using my400,000 copy (213) 264-2000 (215) 238-5300 (212) 689-9690 LaserWriter Plus for my book-on- Federal Graphics Instant Printer Publishing Technology demand production printing. 120 Willow Stret Box 368 401 North Broad Street North Andover, MA 01845 Northbrook, IL 60062 Philadelphia, PA 19108 How does this15:1 cost penalty (508) 681-8578 (312) 564-5940 (215) 238-5300 come about? On the LaserWriter Font & Function Modern Office Technology Quick Printing Plus, you can buy used cartridges for PO Box 7900 1100 Superior Avenue 1680 SW Bayshore Blvd as low as$5 , and then refill them up Mountain View, CA 94039 Cleveland, OH 44114 Port St Lucie, FL 34984 to seven times with third-party toner (800) 833-6687 (216) 696-7000 (407) 879-6666 for as little as$7.50 per shot. This Form NAPL Screen Printing can give you per-page toner costs in 433 East Monroe Avenue 780 Palisade Avenue 407 Gilbert Avenue Alexandria, VA 22301 Teaneck, NJ 07666 Cincinatti, OH 45202 the0.33 cents per page range. And, (703) 836-6232 (201) 342-0700 (513) 421-2050 yes, those images are nearly as black Forms Professional Office Systems Southern Graphics when you do use a good third-party 401 North Broad Street 941 Danbury Road 410 Verona Street toner source. The cartridges get up Philadelphia, PA 19108 Georgetown, CT 06829 Kissimmee, FL 32742 to their blackest after their second or (215) 238-5300 (203) 544-9526 (305) 846-2880 third toner refill. Graphic Arts Abstracts Package Printing Systemdict 4615 Forbes Avenue 401 North Broad Street PO Box 7900 On the LaserWriterNTX , it is hard Pittsburgh, PA 15213 Philadelphia, PA 19108 Mountain View, CA 94039 to find any cartridges under$115 , and (412) 621-6941 (215) 238-5300 (800) 833-6687 they usually will scratch before you Graphic Art Lit. Abstracts Paper, Film & Foil Converter Target Marketing can even refill them once. This gives One Lomb Memorial Drive 29 North Wacker Drive 401 North Broad Street you a nickel per page or higher toner Rochester, NY 14623 Chicago, IL 60606 Philadelphia, PA 19108 (716) 475-2549 (312) 726-2802 (215) 238-5300 cost, and the resultant15:1 penalty. Interestingly, if you immediately Graphic Arts Monthly Plan & Print Type World 875 Third Avenue 9931 Franklin Avenue 15 Oakridge Circle remove that highly abrasive Canon New York City, NY 10022 Franklin Park, IL 60131 Wilmington, MA 01887 factory toner from a new cartridge (212) 605-9400 (312) 671-5356 (617) 658-6876 and refill it with a good third party Graphic Arts Product News Print U&lc toner, then you can get several refills. 29 North Wacker Drive 355 Lexington Avenue 2 Hammarskjold Plaza Chicago, IL 60606 New York City, NY 10017 New York, NY 10017 Give the factory toner to your neigh- (312) 726-2802 (212) 682-0830 (212) 371-0699 borhood diesel mechanic for use as valve grinding compound. Fig. 3 – Some printing and printshop resources. If theNTX if to survive at all, the factory cartridges simplymust get 47.3 January, 1989 lowered in price;must be made far There are an incredible number of The key problem is that most older more scratch resistant;must intern- you out there that want to take data data bases assume that you are using ally provide non-abrasive toner; and from any old data base off any old fixed pitch printer fonts. As soon as absolutely, positively, and emphati- computer and attractively convert it you go to a second column, you get a callymust be made easier to refill by into PostScript tables that use pro- ragged column alignment and other the end user. portional spacing and mixed fonts, nasty problems. seperately being able to selectively Well, figure four shows you my Show Me Some Print use left, center, right, or fill justifi- new PostScriptctab (callout tabular) Shop Resources cation on each individual column. routine. It will semi-automatically All those of you that are already All bounded with fancy PostScript accept input from any data base and following myHardware Hacker col- line art. And, of course, all done with convert it into any number of col- umn over inRadio-Electronics are perfect column alignment. And all umns, each column of which can be painfully aware that I am a great fan done with a minimum of new typing. independently positionable, in any of trade journals. I personally sub- scribe to nearly500 of these. Trade journals are the controlled % Copyright c 1989 by Don Lancaster and Synergetics, Box 809, % Thatcher, AZ 85552. (602) 428-4073. All rights reserved. Personal circulation "insider" magazines that % non-commercial use permitted so long as this header remains present do let you zero in on products and % and intact. The Latest work-in-progress disk costs $39.50. secrets of most any field of endevor. You normally get a free subscrip- % This is intended as an add-on for version 6.0 or higher of my gonzo tion to a trade journal by filling out a % justify code but it can be adapted to other layout or formatting code. qualification card that will tell them % ...... what they want to hear. It is also possible to gain a free subscription % ctab justify - will take most any input file and convert it into a just by asking for an advertising rate % proportionally spaced table. The only current rule is that double spaces card and requesting a sample copy. % are prohibited in any entry and that at least two spaces are needed % between successive columns of the input file. Additional ploys are included in my Incredible Secret Money Machine. % tab list dictionary entries are -xoffset- -{justification}- -(fontnumber)- The reference shelf at your local % -txtwide-. The width is always required but is normally only used with library should hold both Uhlricht’s % fill justify. It must be larger than any left justified string, unless you Periodicals Dictionary and that % purposely want multiple line entries. International Standard Periodicals Dictionary. Together, they list some /tablist 100 dict def tablist begin 45,000 or so trade journals and other /0 [ 0 {cl} (1) 1000] def magazines available today. Of these /1 [ 70 {cc} (1) 1000] def two, I prefer Uhlricht’s. /2 [150 {cf} (1) 80] def At any rate, if you are going to get /3 [250 {cr} (1) 1000] def at all serious about desktop publish- /4 [250 {cl} (1) 1000] def ing, sooner or later you’ll be won- /5 [300 {cl} (1) 1000] def dering what the "big boys" are up to. /6 [350 {cl} (1) 1000] def Figure three lists some traditional /7 [400 {cl} (1) 1000] def print shop and printing resources that /8 [450 {cl} (1) 1000] def you might find of more than passing /9 [500 {cl} (1) 1000] def interest. While most of these are free end trade journals, a few supply houses, /tabstring ( ) def % this is the searching tab marker (two spaces) product catalogs, trade associations, /settabstring {save /snapct exch def /justifylastparline true def tablist and fee-based mags are included. tabnum ( ) cvs get aload pop /txtwide exch def 0 get changefont exch xleft Many thanks go to John Henry of add ypos 4 2 roll cvx exec clear snapct restore unrestorefont} def Mitchell Printing for his help on this. John was also thetinaja quest winner /gottatab {exch pop exch /smsg exch def settabstring {smsg ( ) in our color proofing contest. anchorsearch {pop /smsg exch def}{ exit} ifelse } loop /tmsg exch def } def Please let me know of anything /tabscan {/tmsg exch def tmsg (\033h) search {/halfline true def}{/halfline else you feel should be included in false def} ifelse /tabnum 0 def {tmsg tabstring search {gottatab /tabnum this list. We’ll even make a response tabnum 1 add def}{settabstring exit} ifelse} loop /ypos ypos yinc halfline one way to win this month’s contest. {0.5 mul} if sub def} def What is This Month’s /ctab {/ttmsg exch def /ypos exch def /xleft exch def /tabnum 0 def {ttmsg PostScript Utility? (\n) search {exch pop exch /ttmsg exch def tabscan} {tabscan exit} ifelse} loop clear} def I’ve been doing a lot of custom PostScript programming lately that Fig. 4 – PostScript code for intelligent data base tabbing. seems to share one common thread. 47.4 ASK THE GURU number of fonts you like, and in any to have at least one extra entry in this You also have to select a rule that justification mode of any width. array, just in case there might be tells you when to go from column to The code is intended for use with some extra trailing spaces present in column. While the embedded tab all my gonzo justify routines that we your data base code. could be used, I prefer using this pair did see back in the October issue, but Note that this is a mixed array. The of rules: "Any time you reach two or you can adapt it for any code. A ctab -x- offset is a decimal value. The more sequential spaces, then a col- example appears in figure five. justification mode is a proc, brack- umn change should take place." And: You first set up an array that gives eted by curly braces. The initial font "Any two or more spaces in sequence you the offset, the justification mode, selection is a string numeric, while are prohibited inside any single col- the initial font, and the total allow- the maximum column width is once umn entry." able width for each column. It pays again a decimal value. The ctab code initially will isolate everything up to the first carriage % input gonzo.6, ctab, and this code . . . return, and assumes this is one line of data. It then takes this line and will /font0 {/Times-Roman findfont [12 0 0 12 0 0] makefont setfont} def search for the first rule that shows /font1 {/Times-Bold findfont [12 0 0 12 0 0] makefont setfont} def the end of the first column. /font2 {/Times-Italic findfont [12 0 0 12 0 0] makefont setfont} def /font3 {/Helvetica findfont [12 0 0 12 0 0] makefont setfont} def The first column entry will then be properlyand independently set with tablist begin the correct offset, justification, font, /0 [ 0 {cl} (1) 1000] def % first column bold left justify and width. The process continues on /1 [ 67 {cf} (0) 39] def % second column normal fill justify a column by column basis until the /2 [152 {cc} (2) 1000] def % third column italic center justify end of the line. It then repeats for /3 [250 {cr} (0) 1000] def % fourth column normal right justify each needed line of the entire table. /4 [999 {cl} (0) 1000] def % spare to swallow any trailing zeros As an optional "gee whiz" feature, end a half vertical line space can also be /yinc 13 def % vertical spacing provided by including an [esc]-h or /maxsstretch 0 def % a sneaky trick to stretch characters \033h in any column of any line. This /maxcstretch 100 def % and not spaces for this fill justify lets you attractively show your data. 85 90 moveto 0 128 rlineto 278 0 rlineto 0 -128 rlineto closepath stroke If you are not using my gonzo justify routines, then replace {cl} % . . . and this data base info . . . {cc} {cr}, or {cf} with procs that do 100 200 a suitable left, center, right, or fill ( justify. Thetxtwide command has to aardvark sulphur eggplant $12,345.06 be replaced with whatever is setting giraffe oxygen artichoke $1297.55 your max column width. changefont gnu silicon okra $3.22 also has to be replaced with whatever javelina krypton brocolli $345.96 is setting your initial font selection \033h for any column. Note that most any elephant sodium rhubarb $36,834.71 number of fonts can be mixed in any wallaby carbon celery $1.23 particular column you like. ostrich helium potato $223.41 Sincectab is in raw PostScript kangaroo gallium cucumber $1254.33 code, you might easily rearrange the ) ctab scenery to suit yourself. showpage Whilectab is intended for single % . . . to get this result . . . . line entries, any left or fill justified column entry is able to automatically break itself up into as many vertical lines as needed. aardvark sulphur eggplant $12,345.06 At present, you do have to bracket giraffe oxygen artichoke $1297.55 each entire data table with the xpos gnu silicon okra $3.22 horizontal position, aypos vertical javelina krypton brocolli $345.96 position, an opening parenthesis, the data, a closing parenthesis, and a elephant sodium rhubarb $36,834.71 ctab. Which is no big deal. But, you wallaby carbon celery $1.23 can automate this by going to input ostrich helium potato $223.41 file reading code, such as we saw kangaroo gallium cucumber $1254.33 back in August. Note that some extensions on this new generalctab technique will let Fig. 5 – Data base tabbing use example. you custom fill in such things as tax or insurance forms. 47.5

Don Lancaster’s The tearing method SX cartridge refilling Some thick paper ploys ASK THE GURU PostScript font bitmaps February, 1989 Colorease and Identicolor

or several years now, spunky for you, at an unbelievable price of IID is totally brain dead and does not and independentAPDA was only$15 each. speak PostScript. In my opinion, this the place anybody could go And there are only three rather renders it utterly useless for any ser- F to get Apple "insider" tech small gotchas: You do have to buy ious desktop publishing. literatature. Besides stocking nearly 100 identical disks at once. You are It would be reasonable to expect a all of the Apple publications (prelim- limited to a paltry80 megabytes max duplex Apple LaserWriter using this inary or otherwise) they also offered per disk. And this is a "one shot" engine. Hopefully coupled with those deep discounts on third party books promo deal aimed at getting you newer and faster versions of Post- and software. hooked onCD ROM . Script that have already obsoleted the Apple Computer has apparently Good old ProDOS AppleWriter is NTX. AWeitek or other RISC engine taken over at least part ofAPDA , and once again available through the Sun would also be nice, as would refill- is now once again directly distrib- Remarketing folks at a cost of only able toner cartridges and removal of uting much of its own tech literature. $29. Several third parties are working the insidious font lockout that is now While this should, in theory, improve on a IIgs upgrade. Stay tuned. present onpathforall . service and speed up delivery, there Tom Weishaar’s great Open Apple There are also some third party are already rumors of sharply high- magazine has changed its name to A2 schemes underfoot to dramatically er prices, particularly involving the Central. They also are now stocking improve halftone imaging on all the IIgs(APW) and Mac (MPW) software the best of the hard-to-get Apple Canon laser engines. This is done by development systems. software and publications. His Open intensity modulating the laser dot This new Apple service is called Apple, of course, has been far and size, rather than using the fixed dot theDeveloper Tools Direct program. away the very finest Apple publi- size as is done in the stock Apple and The twin spectres of limited stock- cation anywhere ever. H-P machnes. TheVisual Edge en- ing of third party products and the Hewlett-Packard seems to be the hancer byIntel is one example of this limited availability to non-developers first one to market with the newest type of product. It does require some do seem to be rearing both of their Canon RX duplex laser printer. This hardware printer mods. ugly heads. Time will tell us whether jewel prints on both sides of the page Meanwhile, the PostScript jugger- this move is for better or for worse. and is only slightly slower than the naut rolls on.Tektronix now has a There is now an unbelievably vile usualSX engines as used in both the new full color PostScript laser printer atrocity included "free" with the new LaserJet II and LaserWriter II. out that uses theSharp thermal wax GS/OS operating system that renders Duplex printing is essential for any engine. AndLinotronic has come out it utterly and totally useless. You can book printing on demand and for lots with a new el-cheapo Linotron 200-P not reset into an application, not even of other production uses. It greatly PostScript phototypesetter. The max intoAPW . As a sadistic side effect, a simplified collating and dramatically resolution is1700 DPI , and the cost is reset can trash open files. reduces binding errors. down in the$29K range. This is far Such arrogance and stupidity has Unfortunately, that new LaserJet less than their older machines. no place whatsoever in the Apple II universe. Whichever epsilon minus Drill 5/8 inch hole using dreamed this one up should be staked a #3 Vise Grip Unibit; to an anthill. Real soon like. When carefully clear all chips will they ever learn? DoNOT under any circumstances useGS/OS for anything ever, until such time as an absolute and totally unconditional to-the-program reset is permanantly and acceptably restored. Be sure to rush me any temporary fixes on this. The IIgs is now dead in the water, and likely to stay that way, unless something gets done fast. Meanwhile, Apple does have one all around good deal involving the CD-ROM optical disks. They will now line you up with several third parties who will custom master your Fig. 1 – Adding a fresh toner filling hole to a SX cartridge. own personal opticalCD-ROM disks 48.1 ASK THE GURU Adobe Systems is finally releasing You then create two disassembled details on all their great new Display What is the listings and two hex dumps of your Postscript systems. They have both a "Tearing Method"? code, and then heavily reinforce them freeDisplay PostScript Overview for It is an astonishingly fast and very with Scotch tape or whatever. anyone and a $30 Display PostScript simple way of taking apart and then Go through the listing and lightly Technical Reference package for all analyzing virtually any machine lan- and quickly scan it, seperating those of you serious developers. guage or assembly language code. main working code areas from the Two of the active PostScript BBS While full details do appear in my associated files. Important file clues systems now include (707) 882-2290 Enhancing your Apple, volume I, I’ll are lots of question marks, plenty of and(713) 688-1779 . give you a quick summary here. BRK zeros, and oddball code used in Shoptalk.Radio-Electronics has The keys to the tearing method are strange ways. bought the old Popular Electronics to use page hilighters to color code a Next, go through only the working name fromZiff-Davis and now fully printed listing, and letting that listing code areas and paint eachRTS green. intends to aggressively revive both self-reveal its structure, purpose, and TheRTS command forms both the the intent and spirit of the original function. Most of the method can be Achille’s Heel and the Rosetta Stone magazine. Carl and Jerry might even done by rote (I’ve even taught this to to cracking anything. Then you paint return. I suspect I might eventually seventh graders), and the results will these subroutine calls orange, noting end up involved with this. often happen ten times faster and ten that there are in-code calls, out-of- TheSPCA is after me over that times easier than any other method code calls, and finally and most im- scrawny and underfed wolf family that I know about. A second secret is portantly, calls to monitor locations that’s trying to eek out a marginal letting your subconcious work on the and other fixed and known Apple re- subsistence on my doorstep. Those analysis for you, while you are doing sources. Create a cross reference list pups sure are looking rather pitiful. simple and rote tasks. as you go along. Scurvy and all. The tearing method is also lots of Your branches next go down in So, now’s a good time to remind fun. In fact, all of my microprocessor blue, using vertical and horizontal for you about ourAsk The Guru volume students freshly exposed to tearing upward going loops and diagonals for I and II, along with the Hardware last night refused to leave the lab, downward going breakouts and any Hacker II books. For those of you and I simply locked them in at 1 AM bypasses. Your jumps and indirect into PostScript, we do have my Post- this morning. jumps are then done in pink. Script Show and Tell, the Intro to Bet you can’t tear just one. At this point, you temporarily set PostScript video, and the PostScript Anyhoo, first be sure that you do aside the working code and see what Work in Progress disks. And we now totally and thoroughly understand you can find out about the related do stock all of the usualApple and exactly what the program does and files. First seperate the files by their Adobe books on PostScript. how to use it. Then, you will load the vibes, seperating stuff that looks like At the very least, send along some program into a known location in it belongs together from any "right Purina Wolf Chow and some Vitamin your Apple. One simple way to do angle turns" in the bytes that seem to C. The real biggie this month does this is to fill the availableRAM with be popping up. involve retreiving the actual bitmaps "11" elevens and see exactly where You then try to identify what a file and/or scanmaps of any previously the elevens arenot after loading. My is and what it contains. First and imaged PostScript fonts. absolute reset or a similar utility may foremost are theASCII text listings, But first . . . be needed for some protected code. which will have lots of"20" spaces with plenty of"4X" and "5X charac- ters between them. You will note all similar patterns for lower case and high ASCII as well. Other types of files that are easy to Drill 3/8 inch hole using Be certain that the new identify include the lists of addresses, a #3 Vise Grip Unibit; hole is centered between shape tables,DOS and ProDOS com- carefully clear all chips the die sink marks! mand tables, and similar goodies. You then go back into your most popular subroutines and see which of them are actually printing something to the screen or doing disk access. Once you crack a sub, you will use your cross reference list and the ava- lanche effect to begin cracking all the routines that called this sub. As you understand the purpose of each instruction, you make the usual Fig. 2 – Adding a spent toner emptying hole to a SX cartridge. loads and transfers green, the stack pushes or pulls yellow, and the stores 48.2 February, 1989 pink. As each portion of the code is thePunch and Go and the Total $7.50 and three minutes time. understood, a stripe is painted down Teardown. I very much prefer punch TheSX cartridge needs modified the right side of the page, wide green and go, since this delivers far and before you can refill it. Using a Vise for fully understood code and wide away the lowest per-page toner cost Grip#3 Unibit and a very slow drill- yellow for fully cracked files. This to the end user. We charge$22 for ing speed, you drill the two holes lets you keep score and mark your localSX refills. Since this is a remote shown in figures one and two. Drill progress. Write down everything you rural area, I can get away with such upside down and be very careful to learn next to each instruction. an outrageously high price. You can remove the single chip that the unibit The innermost secret to the tearing do the job yourself for as little as provides. These two holes are then method is to avoid ever doing any thinking or any analysis until the last %vlinemap scans an imageproc by vertical pixel lines, and transforms it by mapproc . possible instant. Just keep coloring % Inputpixelswide pixelshigh {imageproc} . For perspective, 3-D, and isometric cylinders. with the hilighters and they will do /vlinemap {save /plrsnap exch def /imageproc exch def 300 mul 72 div cvi /pixelshigh exch def nearly all of the work for you. 300 mul 72 div cvi /pixelswide exch def 0 1 pixelswide {/slinenum exch def save /plrsnap1 exch Well, that is sort of a thumbnail def gsave mapproc newpath slinenum 72 mul 300 div 0 moveto 0 pixelshigh rlineto 0 0.2 rlineto sketch of what tearing is all about. 0 pixelshigh neg rlineto closepath clip newpath imageproc grestore clear plrsnap1 restore} for clear plrsnap restore }def And, yes, tearing will work on any %hlinemap scans an imageproc by horizontal pixel lines, and transforms it by mapproc . make and model of microcomputer. % Inputpixelswide pixelshigh {imageproc} . For "star wars" lettering, etc. Full details appear inEnhance I . /hlinemap {save /plrsnap exch def /imageproc exch def 300 mul 72 div cvi /pixelshigh exch def Have fun with this incredibly pow- 300 mul 72 div cvi /pixelswide exch def 0 1 pixelshigh {/slinenum exch def save /plrsnap1 exch erful analysis and study tool. def gsave mapproc newpath 0 slinenum 72 mul 300 div moveto pixelswide 0 rlineto 0.2 0 rlineto pixelswide 0 neg rlineto closepath clip newpath imageproc grestore clear plrsnap1 restore} for How do I Refill a Canon clear plrsnap restore }def SX Toner Cartridge? %reportvlinemap compiles vlinemap into an array of form [ xpos0 ypos0 yheight0 ] . . . % [ xposN yposN yheightN ] , and returns it to the host. This output may then be defined As we have seen in past columns, % as a single array, get run length encoded, or else converted to a bitmap. there is now as much as a15:1 cost % To use, includereportvlinemap as the last command in your imageproc . penalty in per-page toner costs when % WARNING:reportvlinemap is specific for version 38.0 and older LaserWriters. using those newerCanon SX laser /stall {50 {37 sin pop} repeat} def % extra delay needed by some hosts. printers over the olderCX engines. /reportvlinemap {false charpath clip newpath -100 dup moveto 1000 0 rlineto 0 1000 rlineto On the olderCX cartridges, you were -1000 0 rlineto closepath clip clippath mark {{moveto}} {{lineto}} {{curveto}} {{closepath}} able to buy cartridges for five bucks pathforall ] dup /stripe exch def length 1 sub /stripelength exch def mark 0 13 stripelength out of your Sunday paper and refill {/sposn exch def stripe sposn get stripe sposn 1 add get transform round cvi exch xshift sub round cvi 75 add exch dup 3268 exch sub exch stripe sposn 6 add get stripe sposn 7 add get them up to seven times, bringing all transform exch pop round cvi sub neg exch 1 index sub yshift sub exch} for] == flush stall} def your toner costs down into the 0.33 /xshift 0 def /yshift 0 def % defaults cents a page range that is cost com- %drawvlinemap converts an array of form [ X0 Y0 DY0 X1 Y1 DY1 . . . XN YN DYN ] into petitive with jiffy offset printing. % the actual image, drawing one piece of one scan line at a time. Unfortunately, thoseSX cartridges /drawvlinemap {/vlinearray exch def gsave 0 setlinewidth 0 setlinecap 72 300 div dup scale 0 3 do use a highly abrasive toner, com- vlinearray length 1 sub cvi {/vlp exch def vlinearray vlp get vlinearray vlp 1 add get moveto 0 bined with drums that are intolerably vlinearray vlp 2 add get rlineto stroke} for grestore } def scratch sensitive. %drawhlinemap converts an array of form [ X0 Y0 DX0 X1 Y1 DX1 . . . XN YN DXN ] into So, while you can in fact reload SX % the actual image, drawing one piece of one scan line at a time. cartridges, at present, you can not /drawhlinemap {/hlinearray exch def gsave 0 setlinewidth 0 setlinecap 72 300 div dup scale 0 3 even remotely approach those CX hlinearray length 1 sub cvi {/vlp exch def hlinearray vlp get hlinearray vlp 1 add get moveto cartridge economics. So, do consider hlinearray vlp 2 add get 0 rlineto stroke} for grestore } def this a progress report where I’ll bring %createbitmap creates an "empty" bitmap of all zeros to be later filled from a vlinemap % orhlinemap array. Predefine pixellines and pixelsperline. Then call createbitmap . you up to date on what can and can- /createbitmap { /pixelsperline exch def /pixellines exch def /bitmap pixellines pixelsperline mul 8 not be done at the present. div cvi array def 0 1 bitmap length 1 sub {bitmap exch 0 cvi put} for} def While it is difficult to even get a %setpixel sets a single bit in a bitmap. Enter with bitposition setpixel . secondSX reload, you can sometimes /setpixel {cvi dup 8 div floor cvi exch 8 cvi mod 1 index bitmap exch get exch 128 exch neg do so with the following tricks and bitshift or bitmap 3 1 roll put} def techniques. Firstoff, you immediately %vlinetobitmap adds a vlinemap array of form [ X0 Y0 DY0 . . . X1 Y1 DY1 . . . XN YN DYN] remove the factory toner and give it % into an already exiting bitmap. to your friendly neighborhood diesel /vlinetobitmap {/blist exch def 0 1 blist length 3 div cvi 1 sub {/ptr exch def blist ptr 3 mul get mechanic for use as valve grinding xshift sub pixelsperline mul blist ptr 3 mul 1 add get yshift sub add /strt exch def strt 1 blist ptr 3 compound. Replace it with a good mul 2 add get strt add 1 sub cvi {setpixel} for } for } def quality third-party refill toner. %bitmaptohost returns an existing bitmap to the host computer for capture and further use. Second, use a good quality drum /bstall {60 {37 sin pop} repeat } def % lengthens host recording time lubricant, such asPixie Dust or its /bitmaptohost {bitmap{16( )cvrs dup length 1 eq {(0) print flush} if print flush bstall} forall} def equivalent. Do a very light dusting on every refill. Fig. 3 – PostScript scanmap and bitmap utilities. There are two refilling methods, 48.3 ASK THE GURU capped with a nickelCaplug or else have a profound effect in the user some very agressive tape. How does the Thick acceptability of any desktop publis- There are three major steps to the Paper Ploy Work? hed product, especially if it is bound. refilling process. You first open the Way back in college, I tended to If a book or bound whatever looks holding tank hole and carefully shake get very high grades on all of my lab a tad on the skimpy side, it will not out the excess toner. Do this outside reports. In fact, that’s what got me "feel" right. Upgrading a weight or and avoid breathing any of the toner. started of into much of this current two on the paper might dramatically You then reseal the holding tank silliness. Since the statue of limita- improve user acceptance. hole, open the fresh toner tank hole, tions is long since over, I will here On the other hand, if you do reach and pour in a bottle of refill toner. reveal the secret to getting very high the thickness limits of your binding Finally, you remove the old fusion grades on lab reports. You simply system, or if things get too fat, then wiper wand and peel and stick a new hand in a report that is thicker than using a lower bulk or a thinner paper wiper pad in place. any of the others. will once again get you back into the Another tip: keep the green toner Now, there are all sorts of ways of acceptable range. dial advanced all the way to nine for creating a thick lab report, but far There are obvious limits of course. any and all rough drafts and for all and away the most cost effective Too thick a paper and the costs go up internal use documents. Note that the method is to use thick paper. I found and the feeding becomes a problem. higher the number, the less toner you this very high bulk and quite white Too thin a paper and you’ll get print- will use. Cartridge life can easily be paper calledbiology filler over in the through and an overall skimpiness. doubled with this simple technique. bookstore. And that was the key I currently recommend using Lazer secret to running away with all the Tell Me all about The Products to supply toner, pixie dust, marbles. Nobody ever caught on. Colorease Process wiper pads, and drum recoating. Seriously, the paper thickness can Colorease is a new way to convert any toner image into instant trans- Using the utilities of figure three, here is how to convert a PostScript font Palatino "R" into a fers of multiple color real ink that vertical scanmap . . . can end up on most any surface. /Palatino-Bold findfont [30 0 0 30 0 0] makefont setfont The process gets messy and labor /mapproc {100 100 translate 1 dup scale} def intensive, but it can give you some /imageproc {newpath {2 2 moveto (R) reportvlinemap}} def /xshift 431 def /yshift 425 def 30 20 imageproc vlinemap outstanding results. It is not nearly as expensive as some competing color . . . returns this scan list to the host . . . proofing schemes. [] [] [0 80 5 0 0 5 ] [1 80 5 1 0 5 ] . . . [81 0 6 ] [82 0 5 ] [] Here is how it works: You start . . . which is easily edited into . . . with a special coated paper or else an instant transfer release liner. You then apply a thin layer of your first ink color, using special stainless steel grooved rollers. You harden the ink /Rscanmap [ with a hair dryer, and then apply a 0 80 5 0 0 5 1 80 5 1 0 5 2 80 5 2 0 5 3 80 5 3 0 5 4 80 5 4 0 5 5 80 5 5 0 5 6 79 6 6 0 5 7 79 6 7 0 6 8 79 6 8 0 6 9 76 9 9 0 8 10 0 85 11 0 photoemulsion overcoat. Then, you 85 12 0 85 13 0 85 14 0 85 15 0 85 16 0 85 17 0 85 18 0 85 19 0 85 20 0 expose the ink through your laser 85 21 0 85 22 0 85 23 0 85 24 0 85 25 0 85 26 0 85 27 0 85 28 78 7 28 0 created transparency, either with an 8 29 78 7 29 0 6 30 78 7 30 0 6 31 78 7 31 0 5 32 78 7 32 42 3 32 0 5 33 78 7 33 41 4 33 0 5 34 78 7 34 39 6 34 0 5 35 79 6 35 37 9 35 0 5 36 78 u-v contact printer or by exposing it 7 36 36 10 36 0 5 37 78 7 37 34 12 37 0 5 38 78 7 38 33 13 39 78 7 39 31 to the sun for a few minutes. 15 40 78 7 40 30 16 41 78 7 41 28 18 42 78 7 42 27 20 43 77 8 43 25 23 Developer is then wiped on, which 44 77 8 44 24 24 45 76 9 45 22 27 46 76 9 46 21 28 47 75 10 47 19 31 48 74 11 48 17 34 49 73 12 49 16 37 50 71 14 50 14 40 51 70 15 51 13 43 52 removes the photo resist and all ink 65 20 52 45 16 52 11 33 53 45 40 53 10 32 54 46 39 54 8 33 55 46 38 55 7 that is in unwanted places. You can 32 56 47 37 56 5 33 57 47 37 57 4 32 58 48 35 58 2 33 59 48 35 59 1 32 60 repeat the process for as many colors 49 34 60 0 32 61 50 32 61 0 30 62 51 31 62 0 29 63 51 30 63 0 27 64 52 28 64 0 26 65 53 27 65 0 24 66 55 24 66 0 23 67 56 21 67 0 21 68 58 18 68 0 as you like. Related materials are 20 69 61 13 69 0 18 70 66 3 70 0 17 71 0 15 72 0 14 73 0 12 74 0 11 75 0 available for raised print thermogra- 10 76 0 9 77 0 8 78 0 7 79 0 6 80 0 6 81 0 6 82 0 5 phy and for glass etching. ] def A more expensive and competing process isIdentiColor , while a much simpler and cheaper system is Kwik Print, available through the folks at Here’s one way to show a vertical scanmap . . . Light Impressions. 100 200 translate 10 dup scale Rscanmap drawvlinemap What is This Month’s Both normal and greatly magnified results are shown above. Note that there is a 512 element array limit when using the stack to create the array. Use several arrays or elseput to create PostScript Utility? arrays of 65530 elements or less. Scanmaps are usually more compact than bitmaps. The one question most asked on Fig. 4 – Converting a PostScript font to a scanmap. our no-charge PostScript helpline is "How can I get a font bitmap into a 48.4 February, 1989 storable or useable form?" This topic I prefer the scanmaps. What these reportvlinemap routine will not work is less than adequately covered in the do is give you a list of where along on certain newer PostScript printers. red, blue, and green books, yet the each scan line to start and end an in- It is intended specifically for use user demand is very high. dividual line of pixels. These can be with the "old" LaserWriter and Las- Normally, it is not a good idea to related to a compression technique erWriter Plus having version38 or work with font scanmaps or font known asrun length encoding that earlier software. A bug seems to have bitmaps in PostScript, since these can often end up considerably more worked its way into the newer printer both might violate device indepen- compact than "real" bitmaps. firmware that makes reportvlinemap dence. Bitmaps will not scale upward There are two possible scanmap rather tricky to use. without that "Hershey bar" effect directions. Avertical scan map will You can also use similar ideas on setting in, and can also be extremely give you vertical pixel bars. These any system that has Display Post- slow memory hogs. But, there are are useful for perspective and 3-D Script or onUNIX based PostScript times and places when you might lettering. Ahorizontal scanmap will printers that include theframetofile . literally leap tall buildings in a single give you horizontal pixel bars, handy Note that the "old" LaserWriter is bound when you have scanmap or for "star wars" images. only needed for one post-processing bitmap tools available. Figure three does show you several pass. Once you have captured your For instance, I have long been utilities that create the vertical and scanmap or bitmap, any PostScript interested innon-linear font transfor- horizontal scan maps, image these printer can be used for reprintings. mations. All of the usual linear font scan maps, convert them over into Figure four shows how to get a matrices only let you shift, rotate, or bitmaps, and return the bitmaps or single PostScript letter into a scan- scaleentire font characters. I am far scanmaps to your host for further map, while figure five shows how to more interested in those non-linear capture and processing. convert the same letter from a scan- transformations that reach in and There is one very big gotcha. The map over to a bitmap. individually change the position and size of each and every pixel scan line Start with theRscanmap array of figure four. The bitmap is then created this way . . . in the character. 96 96 createbitmap Rscanmap vlinetobitmap bitmaptohost Uses? Perspective lettering. True . . . Which returns this bitmap to your host . . . three dimensional lettering. Fonts /Rbitmap < forced to an exact outline. Salvadore F8000000000000000000F800F8000000000000000000F800F8000000000000000000F800 Dali-like fonts that can lean or droop. F8000000000000000000F800F8000000000000000000F800F8000000000000000000F800 Lettering on an isometric cylinder. F8000000000000000001F800FC000000000000000001F800FC000000000000000001F800 FF00000000000000000FF800FFFFFFFFFFFFFFFFFFFFF800FFFFFFFFFFFFFFFFFFFFF800 Calligraphy on a parchment scroll. FFFFFFFFFFFFFFFFFFFFF800FFFFFFFFFFFFFFFFFFFFF800FFFFFFFFFFFFFFFFFFFFF800 Twisted fonts. And, of course, nearly FFFFFFFFFFFFFFFFFFFFF800FFFFFFFFFFFFFFFFFFFFF800FFFFFFFFFFFFFFFFFFFFF800 everyone wants those good old lean- FFFFFFFFFFFFFFFFFFFFF800FFFFFFFFFFFFFFFFFFFFF800FFFFFFFFFFFFFFFFFFFFF800 FFFFFFFFFFFFFFFFFFFFF800FFFFFFFFFFFFFFFFFFFFF800FFFFFFFFFFFFFFFFFFFFF800 ing "star wars" messages. FFFFFFFFFFFFFFFFFFFFF800FFFFFFFFFFFFFFFFFFFFF800FFFFFFFFFFFFFFFFFFFFF800 A ferinstance. As you know, I am FFFFFFFFFFFFFFFFFFFFF800FF000000000000000003F800FC000000000000000003F800 very big on doing book-on-demand FC000000000000000003F800F8000000000000000003F800F8000000003800000003F800 printing. In three illustrations in Ask F8000000007800000003F800F800000001F800000003F800F800000007FC00000001F800 F80000000FFC00000003F800F80000003FFC00000003F800000000007FFC00000003F800 the Guru volume II, there was some 00000001FFFC00000003F80000000003FFFC00000003F8000000000FFFFC00000003F800 perspective lettering that used my old 0000001FFFFE00000003F8000000007FFFFF00000007F800000000FFFFFF00000007F800 pixel line remapping techniques. The 000003FFFFFF8000000FF800000007FFFFFF8000000FF80000001FFFFFFFC000001FF800 00007FFFFFFFE000003FF8000000FFFFFFFFF800007FF8000003FFFFFFFFFC0001FFF800 total imaging time for the lettering 0007FFFFFFFFFF0003FFF800001FFFFFFFF7FFF87FFFF800003FFFFFFFC7FFFFFFFFF800 was over ninety minutes. This rather 00FFFFFFFF83FFFFFFFFF80001FFFFFFFE03FFFFFFFFF00007FFFFFFFC01FFFFFFFFF000 cramps your style when you intend 0FFFFFFFF001FFFFFFFFF0003FFFFFFFE000FFFFFFFFE0007FFFFFFF8000FFFFFFFFE000 FFFFFFFF00007FFFFFFFE000FFFFFFFC00003FFFFFFFC000FFFFFFF800001FFFFFFFC000 printing the entire book one copy at a FFFFFFE000001FFFFFFF8000FFFFFFC000000FFFFFFF0000FFFFFF00000007FFFFFF0000 time in less than half an hour. Worse FFFFFE00000001FFFFFE0000FFFFF800000000FFFFF80000FFFFF0000000003FFFF00000 yet, that pixel remapping required FFFFC00000000007FFC00000FFFF80000000000038000000FFFE00000000000000000000 FFFC00000000000000000000FFF000000000000000000000FFE000000000000000000000 many thousands of font creations that FFC000000000000000000000FF8000000000000000000000FF0000000000000000000000 totally trashed over the font cache. FE0000000000000000000000FC0000000000000000000000FC0000000000000000000000 This slowed down the next several FC0000000000000000000000F80000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 pages, until the cache can recover. 000000000000000000000000000000000000000000000000000000000000000000000000 By going to some post-processing 000000000000000000000000000000000000000000000000000000000000000000000000 scanmap and bitmap techniques, the 000000000000000000000000000000000000000000000000000000000000000000000000 imaging time was changed from over > def ninety minutes to under two seconds, Here’s one way to show the bitmap . . . a speedup of2700:1 , with a zero need gsave 200 300 translate 96 72 mul 300 div dup scale 90 for any actual font imaging. rotate true [96 0 0 -96 0 0] Rbitmap imagemask grestore At any rate, figure three shows you Both normal and greatly magnified results are shown above. The magnification is ratty looking some PostScript utilities that get you since you are viewing all of the individual pixels magnified by a factor of 10X. from a string or other proc to either a Fig. 5 – Converting a scanmap to a bitmap. scanmap or a bitmap. 48.5

Don Lancaster’s The $1300 LaserWriters Secret non-putrid grays Sources of ticket blanks ASK THE GURU WPL font selection code March, 1989 Gonzo justify templates

ust for kicks, try to calculate

the effective baud rate of a pnd fontload.w single half-gigabyte CD-ROM ppr [L] disk that will get mailed once ppr Font Picker: J ppr ...... a month. Figure around ten of your ppr baud "bits" per byte. ppr Inserts font into current textfile position. ppr The answer is rather scary and has ppr13 Avant 0 Courier 29 Palatino profound implications for the entire ppr14 Avant b 1 Courier b 30 Palatino b ppr15 Avant i 2 Courier i 31 Palatino i future of data communications. ppr16 Avant bi 3 Courier bi 32 Palatino bi Speaking of communications, be ppr ppr17 Bookman 8 Helvetica 4 Times sure to get yourself a copy ofSignal , ppr18 Bookman b 9 Helvetica b 5 Times b from theWhole Earth Review . This ppr19 Bookman i 10 Helvetica i 6 Times i ppr20 Bookman bi 11 Helvetica bi 7 Times bi $17 volume in the style and flavor of ppr the originalWhole Earth Catalog has ppr25 Century 21 N Helvetica 12 Symbol ppr26 Century b 22 N Helvetica b 33 Zapf Italic a wide variety of comm resources in ppr27 Century i 23 N Helvetica i 34 Zapf DIngbats it, ranging the gamut from desktop ppr28 Century bi 24 N helvetica bi 99 Custom font publishing to interspecies communi- ppr pinWhich Font? --> =$A 11 pas-$C=$D cation. This one is in the "must have" pasX$A=$B pgo8 category. Try your local bookstore. pcs/$B/X/ 22 pas-Bold=$D pqt 21 pasHelvetica-Narrow$D=$D TheInfocom folks have lowered pcs/$B/X / pgox prices on many of their classic text- pqt 24 pasBold$C=$C p 23 pas-$C=$D only adventures, down into the $14 pasItalic=$B pgo21 range. They also have a free and full pasOblique=$C 25 pasRoman=$D pas=$D % pasNewCenturySchlbk-$D=$D colorEscape magazine that has now pgo$A pgox replaced their olderStatus Line . 13 pasBook$D=$D 26 pasBold=$D ! pasAvantGarde-$D=$D pgo% Uh, I hate to ask this, but I can’t pgox 28 pasBold$B=$B get past zapping the green emerald in 14 pasDemi$D=$D 27 pas$B=$D pgo! pgo% Trinity, and New Mexico is nowhere 15 pas$C=$D 17 pasLight=$D in sight. For a free Incredible Secret pgo13 ^ pasBookman-$D=$D Money Machine book, how about you 16 pas$C=$D pgox pgo14 18 pasDemi=$D giving me a hint or two? 29 pasRoman=$D pgo^ There’s lots of exciting laser stuff @ pasPalatino-$D=$D 20 pasDemi$B=$D pgox pgo^ happening.Intel has improved the 30 pasBold=$D 19 pasLight$B=$D process of modulating the size of pgo@ pgo^ 32 pasBold$B=$B 12 pasSymbol=$D laser printing dots, and their visual 31 pas$B=$D pgox edge products can now dramatically pgo@ 34 pasZapfDingbats=$D 4 pasRoman=$D pgox improve the halftoning process. You # pasTimes-$D=$D 33 pasZapfChancery-MediumItalic=$D can now do a100 line halftone on a pgox pgox 5 pasBold=$D 99 pinCustom font name --> =$D 300 DPI printer and still have 37 gray pgo# x p set d levels! This means that you can now 7 pasBold$B=$B f//*&^%/ attractively reproduce a real photo. 6 pas$B=$D y? pgo# p And, yes it does work on the Canon 1 pas-Bold=$D b SX engine. Three big limitations at 0 pasCourier$D=$D f/*&^%// pgox y? present are that thevisual edge is 2 pasBold$C=$C p usuallyIBM pc based, that it isn’t yet 1 pas-$C=$D pinHorizontal points -> =$A pgo0 pinVertical points ---> =$B PostScript compatible, and that it is a 9 pas-Bold=$D p voracious memory hog, needing as 8 pasHelvetica$D=$D pas/$D=$D pgox f<<>>$D< much as four additional megabytes. 10 pasBold$C=$C y? Meanwhile,Weitek has a free new p data booklet on their XL-8200 Hyper- f<< findfont [$A 0 0 $B 0 0] makefont setfont>< Script processor. This beauty does y? some PostScript operations as much p pqt as100 times faster than a LaserWriter Plus. On the other hand, it is only Fig. 1 – WPL routine to insert PostScript fonts. marginally faster than a LaserWriter 49.1 March, 1989

NTX with its "any day now" expected But first, these topics . . . is sort of similar to anEXEC file or ROM and processor upgrades. some type of"C" shell supervisor that Over in the toner wars department, What Good is WPL? you would find in the other personal several firms are now offering the SX WPL is that unusual supervisory computers. As a rudimentary lan- drum recoating at low cost. One good Word Processing Language built into guage, it does support labels, strings, source isLazer Products . What has AppleWriter. With fresh new copies comments, numeric variables, math Canon accomplished so far with their of ProDos Applewriter2.1 and both operations, subroutines, loops, gotos, intentionally softSX drums, all their manuals now once again available for and simple testing decisions. "carbide tipped" toner, their grossly only$29 fromSun Remarketing , now WithWPL , you can easily create overpriced cartridges, and their "no might be a good time to reviewWPL . help screens, produce form letters, reload" policy? Well, I feel they ... WhatWPL does is automate most get user inputs, do auto-formatting, (1) Have hacked off 90 percent of any list of word processing tasks. It do any automated search-and-replace their existing users and just about 100 percent of their more knowledgeable perspective buyers; (2) Have created the entire new 50 37 39* 42*35 42* toner refilling industry, where there are hundreds of sources of cartridge 55 27 30 33 refilling services that in turn dramat- ically reduce the cartridges actually 60 26 26 purchased fromCanon ; 65 21 (3) Have handed the entire low end desktop laser printer business over to 70 19 NEC and their LC-890 with its much lower per-page toner costs; and, last 75 17 18 but not least ... 80 (4) Have cut off their nose to spite their face. 85 14 What really galls me about all this are thoseCanon ads proudly pro- 90 claiming their super-hard longer life 95 11 coating process they use on their high end copier drums. 100 10 I say again: Toner should cost the same as ink.0.25 cents per page. No 105 9 more. When it does, the true desktop 110 revolution will at long last begin. Till then, you just ain’t seen nuthin. 115 Alan Kalka has gotten his original PostScriptBBS back on line, along 120 number of gray with several brand new sponsors and Screen density in dots per inch 125 levels, including lots of new equipment. Try dialing up black and white, (713) 688-1779. There is also a West 130 for each region CoastBBS at (707) 882-2390 . I finally found out what Matro- 135 6 Color is. It apparently is the leading color proofing and instant transfer 140 process that will give you full color 145 images that you can stick onto any surface. It is similar to the others we 150 5 looked at in recent columns. Let’s see. I do haveAsk the Guru , 175 volumes I and II, and the Hardware 210 3 Hacker volume II currently shipping, along with my PostScript Show and 300 2 Tell for all major personal computers. Write or call per theNeed Help? box 0 5 10 15 20 25 30 35 40 45 if you need more info. Screen angle in degrees Our biggie this month is a three column gonzo layout template having Fig. 2 – The top secret map to those hidden LaserWriter grays. auto left/right and built-in figures. 49.2 ASK THE GURU operations, or do any of dozens of sides in reverse order. Then it will best. The astounding thing is that the other unique "higher level" tasks that ring a bell, let you reload the pages, code for the entireWPL language is involve word processing. It is main- and then print all of the front page only several hundred of the tightest ly because ofWPL that I still make sides in reverse order, thus delivering written bytes you have ever seen. exclusive use ofAppleWriter for all to you a ready-to-bind book. For additionalWPL use ideas, see of my desktop publishing andall of As a different example, figure one theWPL Expansion Kit from Thom- my book-on-demand printing. I have shows you a newWPL program that pson and Thompson, or the various yet to find anything anywhere else solves a sticky problem of mine. Any WPL programs in my AppleWriter that even comes remotely close. time you are writing your own Post- Cookbook. The latter also contains a AWPL instruction file is up to 2K Script code, you have to enter a long complete disassembly script that does characters long, and can be made definition to create a font. Something reveal the innermostWPL workings. longer using theWPL Expansion Kit . like /Bookman-DemiItalic findfont [9 To run a WPL program, you simply 0 0 9.25 0 0] makefont setfont, or Where are all Those $1200 do a[P] DO MYCOMMANDS.WPL , whatever. It is super important to PostScript LaserWriters? or whatever. TheWPL program gets both remember and get all of those All over the place actually. But it interpreted a line at a time, and then wierd font name spellings correct. does take some patience and some carries out various word processing On an[open-apple]-f , command risk to put one together. It also does tasks for you. thisWPL program creates a screen take an awful lot of being in the right Each instruction line starts either that will give you a list of all those place at the right time. with a label or a space. Your next available fonts. It then asks you to Here’s how this scam works: The character is interpreted as a control make a font selection, followed by a engines used on an Apple Laser- character. For instance, to go to the font width and font height in points. Writer Plus and a Hewlett-Packard beginning of your file, yourWPL line Finally, it will insert that correctly LaserJet I are nearly identical, and would be(space) b . The lines will get spelled definition into your current you can simply plug a LaserWriter done in order, unless you have a text file, and automatically return Plus board directly into a LasserJet I repeat loop, or unless a zero value or you to your word processing. Canon CX engine. Some additional an "unfound" search bypasses a com- Around seven easy and intuitive I/O circuitry consisting of a switch mand line. It is amazing how much keystrokes can replace several dozen and a connector or two is quite easy WPL does with how little. very hard-to-remember ones. to throw together out of Radio-Shack One exampleWPL program would You will have to predefine your component parts. do book on demand printing, by first [open-apple]-f as the glossary entry There are just enough trade-in and clearing and loading the page files that executes thisWPL routine. repair LaserWriter Plus boards "out needed to print all of the rear page WPL was Paul Lutus at his very there" to make this a viable route to a low cost PostScript printer. The cur- rent street price is typically$450 for gonzo begin /workdict 100 dict def workdict begin a trade-in board. /ytop 550 def There is a glut on the market for /ypos ytop def used LaserJet I’s, because they are /ybot 50 def both brain dead and incapable of /xpos 125 def even speaking PostScript without a /txtwide 450 def very costly add-on. The current street /pagenum 1 def price is around$700 . /pnxpos txtwide 2 div xpos add def There’s also an untrue myth that /pnypos ytop 19 add def implies that olderCX engines aren’t as black as the newerSX engines. In /showpagenumber {/pagenum pagenum 1 add def pnxpos pnypos pagenum fact, the latest of the third-party toner ( ) cvs cc} def refills for thoseCX machines are just /colcheck { ypos ybot le {showpage showpagenumber /ypos ytop def} if} def about as black, and they can give you /font1 {/Bookman-Light findfont [9 0 0 9 0 0] makefont setfont} def per-page toner costs as low as one- /font2 {/Bookman-DemiItalic findfont [9 0 0 9 0 0] makefont setfont} def fifteenth that of the currentSX costs. /font3 {/Bookman-Demi findfont [9 0 0 9 0 0] makefont setfont} def Thus, the older machines are actually better suited to serious production startgonzo work. And, as far as service life goes, Your textfile starts here . . . . you can keep boltingH-P parts onto . . . . continues \0333here\0331 . . . these forever. One of mine is rapidly . . . . and ends here. approaching400,000 copies. \033x There are three versions of Laser- showpage Writer boards available. These now include versions23.0 , 38.1 , and 43.2 , Fig. 3 – A simple "just dump the textfile" guru template. the latter often erronously referred to as a "version47" ROM . 49.3 March, 1989 You can find the version by giving aversion == flush command, or else % Copyright c 1989 by Don Lancaster and Synergetics, 746 First Street, Thatcher, (3.0) % AZ, 85552 (602) 428-4073. All rights reserved. Personal use permitted so long by looking at the test page. A is % as this header remains present and intact. Work in Progress disk costs $39.50. version"47" , while the lower num- bers will be the older versions. % This template intended for use with gonzo.dl.6 and ps.util.1 or later. For most people most of the time, /persistent true def persistent {serverdict begin 0 exitserver } if the latest version "47 " ROM’s are far /hack.II.temp.1 1000 dict def hack.II.temp.1 begin and away the best choice, since this /font0 {/Times-Bold findfont [54 0 0 54 0 -32] makefont setfont} def /font1 {/Times-Roman findfont [9.75 0 0 9.75 0 0] makefont setfont} def is the fastest code having the fewest /font2 {/Times-Italic findfont [9.75 0 0 9.75 0 0] makefont setfont} def major bugs in it. On the other hand, /font3 {/Times-Bold findfont [9.75 0 0 9.75 0 -6] makefont setfont} def the version38.1 chips let you bypass /font4 {/Times-Roman findfont [9 0 0 9 0 0] makefont setfont} def /font5 {/Times-Italic findfont [9 0 0 9 0 0] makefont setfont} def the font lockout onpathforall . This is /font6 {/Times-Bold findfont [9 0 0 9 0 0] makefont setfont} def an incredibly powerful tool that is /font7 {/Helvetica findfont [9 0 0 9 0 0] makefont setfont} def conspicuously absent from the newer /font8 {/Helvetica findfont [8 0 0 8 0 0] makefont setfont} def /font9 {/Helvetica-Bold findfont [9 0 0 9 0 4] makefont setfont} def ROM chip sets. /font- {/ZapfDingbats findfont [9 0 0 9 0 4] makefont setfont} def For any given version, you can /font= {/Symbol findfont [9 0 0 9 0 0] makefont setfont} def either obtain "one-half" of your ROM /txtwide 155 def /yinc 10.5 def /charstretch 0.2 def /spacestretch 0 def /maxsstretch 2.5 def set, which gives you a11 font Laser- /maxcstretch 1 def /dropcount 3 def /dropindent 38 def /lastlinestretch 0.4 def /pm 0 def /ytop Writer, or else the "entire"ROM set, 720 200 sub def /ypos ytop def /ybot 80 def /yparendadj 0 def /pmnorm 10 def % paraindent 35 /amacro {(zy0) stringmacro} def % start drop cap which instead will give you a font /bmacro {(iFy1) stringmacro} def % finish drop cap LaserWriter Plus. /cmacro {(zyC3) stringmacro} def % centered title One very important gotcha: The /dmacro {(pF1) stringmacro} def % normal text keying on their main connectors is /rightpage true def /leftmargin {rightpage {60}{60} ifelse} def /xpos leftmargin def /colspace 170 different, and the Apple board plugs def /colbot 60 def /coltop {700 colbot sub yinc div floor yinc mul 0.1 add colbot add}def /totalcolumns 3 def /#column 1 def in "upside down" compared to the HP /collimits [coltop colbot coltop colbot coltop colbot] def /starttext {/#column 1 def /ytop {collimits board. Make sure you do thoroughly 0 get} def /ybot {collimits 1 get} def /ypos {ytop} def /xpos {leftmargin} def /justx (justL) def understand what you are doing before totalcolumns {colcheck} repeat /firstuseflag true def} def you make your final connections. /header {titlepage {gsave leftmargin coltop 50 sub translate /colcheck {} def /txtwide 1000 def Here are some resources to get you /indent 4 def indent 33 (\0330Hardware Hacker\0331) cl indent 7 date cl indent 62 (\0332\0331Don Lancaster’s\0332) cl 6 setlinewidth 1 setlinecap 3 23 moveto widthhold 6 sub 0 started on all this: Used LaserJets are rlineto gsave stroke grestore nuisance begin 4.5 setlinewidth bestgray lightgray stroke black available from your Sunday paper or end /boxwide 160 def widthhold boxwide sub 15 sub boxwide 80 80 4 1.5 grabbox /bb {bt bh any of dozens of Computer Shopper sub} def boxpath gsave 1 setgray fill grestore gsave 4 setlinewidth stroke grestore gsave 2.5 setlinewidth nuisance begin lightgray end stroke grestore newpath gsave bl 23 moveto 0.99 advertisers, as are several brand new setgray 4.5 setlinewidth 0 setlinecap -5 0 rlineto stroke br 23 moveto 0.99 setgray 4.5 CX engines of dubious origin. Two setlinewidth 0 setlinecap 5 0 rlineto stroke grestore /yinc 12 def bw 2 div bl add 61 blurb sources of the LaserWriter boards are keystoneshow {cck}{cc} ifelse grestore} {leftmargin coltop 15 add moveto widthhold 0 rlineto 1 setlinewidth stroke leftmargin coltop 15 add 16 add moveto widthhold 0 rlineto 0.5 setlinewidth Pre-Owned Electronics and Richard stroke rightpage {0 0 (\0332\0331) cc leftmargin widthhold add coltop 15 add 4 add date Harold atShreve Systems . cr}{leftmargin coltop 15 add 4 add (\0332\0331Hardware Hacker) cl} ifelse} ifelse} def A complete set of quite simple /footer {leftmargin colbot 12 sub moveto widthhold 0 rlineto 0.5 setlinewidth stroke gsave conversion plans is available for $10 leftmargin rightpage {widthhold 35 sub add} {35 add} ifelse colbot 12 sub translate newpath -17 34 7 14 3 0.5 grabbox /bb {bt bh sub} def boxpath gsave 1 setgray fill grestore stroke 0 0 fromCustom Technology , while the (\0332\0331 ) cc 0 -3.5 pagenum cc grestore} def thorough repair and maintenence /boilerplate {/widthhold colspace 2 mul txtwide add def save /bsnap exch def /font0 manuals are available directly from {/Palatino-Bold findfont [30 0 0 30 0 0] makefont setfont} def /font1 {/Palatino-Bold findfont [12 0 Hewlett-Packard. Their manual part 0 12 0 0] makefont setfont} def /font2 {/Palatino-Bold findfont [10 0 0 10 0 0] makefont setfont} number for theCX engine is #02686- def header footer clear bsnap restore titlepage {/tadj {50 yinc div floor yinc mul yinc 2 mul add} def} {/tadj 0 def} ifelse collimits dup dup dup dup dup 0 get tadj sub 0 exch put 2 get tadj sub 2 90904, while the newer SX manual is exch put 4 get tadj sub 4 exch put} def numbered#33440-90904 . /startpage {boilerplate /#column 1 def /ybot -99999 def} def Already converted, pretested, and /colcheck {ypos ybot le {/#column #column 1 add def totalcolumns #column lt {showpage quit} if ready-to-run units are available from {/ytop {collimits #column 1 sub 2 mul get} def /ybot {collimits #column 1 sub 2 mul 1 add get} eitherThompson and Thompson or def /xpos xpos colspace add def ytop ybot sub yinc gt {exit} if /#column #column 1 add def totalcolumns #column lt {showpage quit} if} loop /ypos ytop def} if} def /fullheight {coltop colbot fromCustom Technology , while the sub yinc add} def toner refilling materials and supply /keystonewide 300 def /keystonedelta 5 def /keystoneshow false def /gotarline {save /ksnap kits are now available through Arlin exch def /justifylastparline true def /txtwide keystonewide def xpos exch ypos exch cf clear Shepard atLazer Products . ksnap restore /keystonewide keystonewide keystonedelta add def /xpos xpos keystonedelta sub def /ypos ypos yinc sub def} def Tell me Once Again About /crk { /msg exch def /ypos exch def keystonewide sub /xpos exch def {msg ( ) search {exch pop exch /msg exch def gotarline }{gotarline exit} ifelse} loop} def /gotacline Those Non-Putrid Grays {save /ksnap exch def /justifylastparline true def /txtwide keystonewide def xpos exch ypos exch cf clear ksnap restore /keystonewide keystonewide keystonedelta add def /xpos xpos I sure have been getting a lot of keystonedelta 2 div sub def /ypos ypos yinc sub def} def /cck { /msg exch def /ypos exch def calls on this lately, so let’s us do a keystonewide 2 div sub /xpos exch def {msg ( spring rerun here. The overwhelming ) search {exch pop exch /msg exch def gotacline } {gotacline exit} ifelse} loop} def majority of LaserWriter applications Fig. 4a – A fancy three column gonzo auto-layout template . . . software and most users all seem to 49.4 ASK THE GURU have their collective hearts set on all of the vastly better grays. get one of the default ones shown in using the seventeenth lousiest gray Any gray will trade off the number the map instead. that is available from their machines. of gray levels shown inside the map Your command for the overall best Now, that may be their trip and against the coarseness or the screen gray is 106 45 {dup mul exch dup more power to them, but all this non- density. Screens are only provided mul add 1.0 exch sub} setscreen. sense is giving300 DPI printing a bad for certain angles of tilt, as shown For the densest useful gray, try a name. In reality, any LaserWriter can along the bottom of the map. Since 135 25 before your setscreen proc. give you grays so fine that they look integer arithmetic gets involved and This does take careful paper selection like an india ink wash. since everything has to "tile" itself and attention to detail. Figure two once again shows you correctly, these are the only available For a useful "repro" gray that will the LaserWriter secret gray map that grays. Should you request a different get reduced somewhat before you do reveals to you all of the hidden and screen density or angle, you’ll always your final printing, try a85 35 before yoursetscreen proc. /denselisting{/bc br bl sub 2 div bl add def /txtwide bw 10 sub def /ybot -99999 def The stock putrid gray#17 can be /font0{/Helvetica-Bold findfont [10 0 0 10 0 0] makefont setfont} def restored with a53 45 prefix. To get /font1{/Helvetica findfont [7 0 0 7 0 0] makefont setfont} def /font2{/Helvetica-Oblique findfont [7 0 0 7 0 0] makefont setfont} def the utmost prepress quality off of any /font3{/Helvetica-Bold findfont [7 0 0 7 0 0] makefont setfont} def gray image, first print up two totally /font4{/Courier findfont [7 0 0 7 0 0] makefont setfont} def black pages. /ypos bt 10 sub def /xpos bl 6 add def /yinc 8 def /amacro {(hy) stringmacro} def /emacro {/yparendadj yinc 2 div def} def} def The complete details on where and /normallisting {/bc br bl sub 2 div bl add def /txtwide bw 10 sub def /ybot -99999 def why all these numbers come from did /font0{/Helvetica-Bold findfont [12 0 0 12 0 0] makefont setfont} def appear in the March1987 issue of /font1{/Helvetica findfont [8.5 0 0 8.5 0 0] makefont setfont} def Computer Shopper, or else are found /font2{/Helvetica-Oblique findfont [8.5 0 0 8.5 0 0] makefont setfont} def /font3{/Helvetica-Bold findfont [8.5 0 0 8.5 0 0] makefont setfont} def in myAsk the Guru , volumeI . /font4{/Courier findfont [8.5 0 0 8.5 0 0] makefont setfont} def /ypos bt 20 sub def /xpos bl 20 add def /yinc 10 def /pmnorm 60 def Where is the Winning Ticket? /amacro {(Lhy) stringmacro} def /bmacro {(1py) stringmacro} def /cmacro {(3z) stringmacro} def} def Right inside your PostScript laser /showfigborder true def /showfigtitle true def /yfigadj 0 def printer, of course. Those custom and sequentially numbered tickets for raf- /figparams {/blw 0.5 def /brad 0.01 def /bh {figheight yfigadj cvi yinc cvi mod add yinc div floor yinc mul} def {/bt bb bh add yinc 0.2 mul sub def } {/bb bt bh sub 5 sub def} ifelse boxpath fles, plays, civic events, or whatever showfigborder {stroke} if showfigtitle { save /tsnap4 exch def /txtwide bw def 55 changefont bl can be a very hot seller. These are all bb yinc 1.25 mul sub title cf clear tsnap4 restore} if } def /uppershift {bh yfigadj add yinc div quickly done on your LaserWriter. ceiling yinc mul sub yinc sub} def We saw my sequential numbering /figure1ll {/bl {leftmargin 1 add} def /bw {txtwide} def /bb collimits 1 get yfigadj add def true figparams collimits dup 1 get bh add yfigadj add 1 exch put /yfigadj 0 def} def step-and-repeat routines back in the /figure1lc {/bl {leftmargin txtwide add 1 add} def /bb collimits 3 get yfigadj add def /bw {txtwide} July87 issue of Computer Shopper, def true figparams collimits dup 3 get bh add yfigadj add 3 exch put /yfigadj 0 def} def also available in volume one of Ask /figure1lr {/bl {leftmargin colspace 2 mul add 1 add} def /bb collimits 5 get yfigadj add def /bw The Guru. {txtwide} def true figparamscollimits dup 5 get bh add yfigadj add 5 exch put /yfigadj 0 def} def One reader suggested perforating /figure1ul {/bl {leftmargin 0 add 1 add} def/bt collimits 0 get 6 add def /bw {txtwide} def false the tear-off tab of your own tickets figparams collimits dup 0 get uppershift 0 exch put /yfigadj 0 def} def by using a threadless and bobbinless /figure1ur {/bl {leftmargin colspace 2 mul add 1 add} def /bt collimits 0 get 6 add def /bw sewing machine. Note that this is an {txtwide} def false figparams collimits dup 4 get uppershift 4 exch put /yfigadj 0 def} def extremely dangerous process, owing /figure2lr {/bl {leftmargin colspace add 1 add} def /bb collimits 3 get yfigadj add def /bw to the enormous hostility it evokes in {colspace txtwide add} def true figparams collimits dup 3 get bh add yfigadj add 3 exch put collimits dup 5 get bh add yfigadj add 5 exch put /yfigadj 0 def} def the female of the species. /figure2ul {/bl {leftmargin 0 add 1 add} def/bt collimits 0 get 6 add def /bw {colspace txtwide Otherwise, you can get various add} def false figparams collimits dup 0 get uppershift 0 exch put collimits dup 2 get uppershift sized ticket blanks through your local 2 exch put /yfigadj 0 def} def Paper Plus store, or from any of a /figure2ur {/bl {leftmargin colspace add 1 add} def /bt collimits 0 get 6 add def /bw {colspace number of wholesale suppliers. For txtwide add} def false figparams collimits dup 2 get uppershift 2 exch put collimits dup 4 get instance,Blanks USA will send you uppershift 4 exch put /yfigadj 0 def} def 300 free and prenumbered large sam- /figure2ll {/bl {leftmargin 0 add 1 add} def /bb collimits 1 get yfigadj add def /bw {colspace txtwide add} def true figparams collimits dup 1 get bh add yfigadj add 1 exch put collimits dup 3 ple tickets. Two of their competitors get bh add yfigadj add 3 exch put /yfigadj 0 def} def includeTicket Express and the folks /figure3ll {/bl {leftmargin 0 add 1 add} def /bb collimits 1 get yfigadj add def /bw {colspace 2 mul over atQuick Tickets . txtwide add} def true figparams collimits dup 1 get bh add yfigadj add 1 exch put collimits dup 3 Please let me know all your laser get bh add yfigadj add 3 exch put collimits dup 5 get bh add yfigadj add 4 exch put /yfigadj 0 def} def ticket printing experiences, so I can pass them on to the others. /figure3ul {/bl {leftmargin 0 add 1 add} def /bt collimits 0 get 6 add def /bw {colspace 2 mul txtwide add} def false figparams collimits dup 0 get bh sub yfigadj sub yinc sub 0 exch put collimits dup 2 get bh sub yfigadj sub yinc sub 2 exch put collimits dup 4 get bh What is This Month’s sub yfigadj sub yinc sub 4 exch put /yfigadj 0 def} def PostScript Utility? end Back in October of1988 , I showed Fig. 4b – Three column gonzo template, concluded . . . you my gonzo justify routines that could give you exceptional quality 49.5 March, 1989

typesetting, especially at300 DPI . Some readers have asked for more gonzo begin hack.II.temp.1 begin printerror /rightpage true def /titlepage true def /date (March, 1989) def /pagenum (15.1) def /posfig1 {figure2lr} def /showthegrid false def /dropindent 31 def detailed examples on how you gonzo /keystonewide 103 def /keystonedelta 8 def /keystoneshow true def justify real world output. A key here /blurb is to use one or moretemplates , and (A new "disco" circuit we will shortly look at both a very Zero crossing detection simple and a very detailed one. AC power load interface Phase controlled dimming But first, let us review what the Dialog information services advantages and disadvantages of the ) def "gonzo method" are. The disadvan- % ///// BORDERS AND TITLES //// tages are simple: startpage (1) You have to think while you % ///// INCLUDED FIGURE STARTS HERE ///// are using them and need at least a /figheight 200 def /yfigadj 4.5 yinc mul def smattering of PostScript knowhow or /title (\0337Fig. 1 – This ac power output interface will let you directly control 100 watt lamps programming ability, and ... and other high power loads from your microcontroller or your personal computer. The special (2) You will not get the final page phototriac optocoupler provides safety isolation. Note that a low logic input will light the lamp.) image on your screen, unless you are def already using Display PostScript. posfig1 save /figsnap exch def Here are the main advantages: bl 19 add bb -8 add 11 setgrid clear line1 13 10 mt 2 u 2 l 2 d 15 14 mt dot 15 14 mt 6 l 4 d 11.5 (1) 14 hresistor 9 6 mt 1 d 6 l 6 5 hresistor 10 6 mt 3 d 7 l 4.5 5 mt rarrow 4.5 3 mt rarrow 24 14 mt Its cheap, because all you need gsave 1.5 dup scale rarrow grestore 24 12 mt gsave 1.5 dup scale rarrow grestore 9 6 mt 6 ( is your favorite word processor; )(+OUT NC -OUT)(+IN -IN NC) dipdraw line2 23 14 mt 8 l 6 d 6 r 4 u 2 r 18 14 mt incadlamp 15 (2) You have device independence, 11 mt triac since any computer at all works fine. font1 18 16.3 (\0331100 watt) cc 18 15.5 (\0331light bulb) cc 24 12.8 (110 VAC) cc 17.5 9.8 The author, editor, printer, and proof- (2N6154) cc 17.5 9 (TRIAC) cc 11.6 14.7 (220\0333W\0331) cc 6.1 5.7 (330\0333W\0331) cc 5 9 (MOC 3010)cc 5 8.2 (phototriac) cc 5 reader, could all be using wildly dif- 7.4 (optocoupler) cc 2.7 4.7 (+5V) cr 2.7 2.7 (PORT) cr ferent brands of computers and word font2 /yinc 0.8 def 15.5 5.0 processors anywhere in the world on (\0332WARNING: virtually any network; Extreme shock hazard on right half of this circuit!) cl (3) Your files are very compact, typically10K for a three column page clear figsnap restore layout with two figures; % ///// INCLUDED FIGURE ENDS HERE //// (4) Production print speeds can be % ///// ACTUAL TEXT STARTS HERE ////// insanely faster, typically two extra starttext seconds per three column, dual figure startgonzo \033a page after a simple pseudocompile is S completed; \033b (5) everal helpline callers have now asked me what the main differences are between that Text, artwork, and graphics can \0334BSEET\0331 supertech degree and the \0334BSEE\0331 engineering degrees. The quick all be done integrated within one sin- answer is "around one million dollars or so".\033p gle word processing program; That is roughly how much extra lifetime income the \0334BSEE\0331 degree will garner on the average, including the benefits, perks, retirement plans, any investments, the other amenities, (6) Justification quality at 300 DPI and also allowing for inflation.\033p is exceptionally high, including the It is no secret that the technicians and supertechs will often do all the work and the engineers automatic drop caps, hanging punct- get all of the credit, all of the pay, and all of the promotions. Not to mention both an office and a real desk. uation, a five stage progressive fill Many of the larger and "old line" electronics outfits tend to treat their techs and supertechs as justification, the full kerning and tab- second class citizens, severely limiting all of their advancement and salary opportun- ities. bing, largely unlimited font choices These problems are especially acute in aerospace and defense. So, \0332if\0331 you can handle all the need- ed math and can pass all the required including fractional sizes; and ... non-engineering courses, then that \0334BSEE\0331 will offer something around a (7) You can drop down into "raw" \033426.5\0331 decibel better cost/ benefit ratio over the \0334BSEET\0331 degree. PostScript, at any place, any time, for The helpline response over that fluxgate magnetometer compass we looked at back in the December \0334RE\0331 has been utterly astounding, and I do thank you. Another source for any reason, rearranging all of your the fluxgate magnetometer compass kits is \0332Rusty Circuits\0331. scenery to suit yourself. There are no \0332Radio Shack\0331 also now has a low cost solid state fluxgate automotive compass. This "WhaddayameanIcant’s" ever. does appear to be a two-piece unit that has the fluxgate sensor windshield mounted by way of a short length of five conductor cable. The display itself is a servo- like pair of coils that can At any rate, atemplate is the key activate a magnetized compass rose disk. The accuracy does seem very limited, but it costs to using any page layout application, only \0334$49.95\0331. This should hack beautifully. More on this whenever. Radio Shack also has a new and "intelligent" power strip that turns on all of your computer gonzo or otherwise. A template is peripherals or home video accessories whenever a main load is switched on or off. A few simply a set of rules that set the style helpline callers have been asking for circuits to do this. and the "vibes" of the document you Several of you Canadian readers have been wondering why very few of those smaller electronics outfits will even give them the time of day. The response is that there are more than are going to produce. The important enough hassles involved that it is almost always a net loss of energy and time and money to do values in a template will include the so. margins, the number of columns and their widths, all your font selections, Fig. 5a – A sample three column gonzo textfile . . . handling of left versus right pages, 49.6 ASK THE GURU all the rules for inserting figures or Figure four does show you the block. Similar techniques can be used artwork, and any command macros template that I am now using for all for wedging left, wedging right, or to that can make life easier. the book on demand published Hard- flow around any form. You can either persistently down- ware Hacker reprints, volume II. Figure five does show you some load all of your templates whenever This gives you a three column, fill sample text that illustrates how to use printer power is first applied, or else justified page layout that includes the fancy gonzo template of figure tow them along as a prolog to each seperate treatments of title pages, left four. While this particular example is and every file. If you go the persis- pages, and the right pages. That text from myHardware Hacker reprint tent download route, your files will automatically "flows" around figures series, it is essentially the same (but a be shorter, will download faster, and that can be inserted in any of twelve tad fancier) than what you are look- a person much less knowledgeable in locations and three widths. ing at here. A free printed listing of PostScript can use them in an office The figures themselves can be in theAsk The Guru II is available on environment. On the other hand, the one of three standard forms intended phone or letter request. prolog templates at the start of each for the electronic schematics, normal Figure five has substituted the \033 document are easier to change and listings, and compact listings. Other- for any embedded escape commands, customize on the fly. wise, any old PostScript code can be just in case your word processor can Let’s look at two new examples of used for the figures. not handle this detail. templates. One is quite simple, and Any extra text at the end will get Your print file is around10K long, the other rather complex. automatically lopped off without any and the page makeup time is around Figure three will show you a "just errors getting produced. thirty seconds using the Apple IIe dump the text" template that simply The main text makes use of a driving a LaserWriterNTX . This can sets margins and fonts, and gives you dozen different fonts. There is that get reduced to a two second makeup a centered top page number on all but drop cap font, regular sized text in time by doing a pseudocompile that the first page. By adding a suitable plain, italic and a bold, a slightly we will get into in a future column. letterhead procedure plus a curve- reduced text for all caps, again in With a compiling pass, the book on traced signature, you can convert this plain, italic, and a bold, a special demand publication can be done at into any custom business letter tem- drop-centered and bold font for titles, essentially the "wide open" printing plate of your choosing. andSymbol and Zapf for special speed of theLaserWriter . To use this template, set it up as a effects. Additional and seperate font I invite you to try printing this any prolog to your text. Then insert the selections are used for your header, other way by using any other page- gonzo begin startgonzo command, in footers, and for each of the three making package. If you can even turn followed by your text. The text illustration styles. The border and the remotely approach the final print can be from most any program on title of each illustration can also be speed, flexibility, or quality at 300 any computer. To break out of your selectively turned off and on. DPI, I will give you a free copy of gonzojustify, use an[escape]-X or an A uniquekeystone justify is used my Incredible Secret Money Machine \033X, followed by a showpage . to "wedge out" the topics in the title book. Extra points if you are able to do it without using either the Apple- Writer program or an Apple IIe. My personal horror stories here include your Canadian post office re- fusing to accept my first class mail, and waiting three hours in a bank for them to decide to use the Canadian exchange My gonzo justification routines are rate for any bank in Nova Scotia. Honest. They couldn’t find any country that was named Nova continually being improved. Recent Scotia, so they had to call up the head office seven times in a row. These epsilon minuses were additions have included an individual about as sharp as five pounds of raw liver. character kerning, improved tabbing, Finally, they ended up giving me \0334$7.65\0331 for a \0334$24.50\0331 check. Life is too short for this sort of thing. and changes that make compiling run Our focus this month is on the electronic lighting controls for rock concerts, discos, theater time code available. lighting, for color organs, and whatever. But first, let’s get up to date on . . . A free printed listing of the latest \033c Library Research gonzo version is now available by \033d writing or calling me per the need Several exciting things have been happening at the library lately. First and foremost, lots of help? box you’ll find at the end of libraries are now putting their card catalogs and public serials lists onto new on-line electronic \0334BBS\0331 bulletin boards. So, you can now find out what’s avail- able without leaving this volume. home. The ready-to-run code is also now One example of this would be the \0332Arizona State University\0331 library \0334BBS\0331 available for most popular brands of reachable at \0334(602) 965-7003\0331. The second really big news item for all of you hackers is that many libraries are now offering personal computers on my current the great \0332Dialog Information Service\0331. Dialog is a new "supergroup" electronic search Work-in-Progress disk. We also do service covering many hundreds of electronic data bases. If the topic that you are reserching is custom versions of gonzo that solve even remotely popular or scholarly, you will defin- itely find it on Dialog. While those \0334$2\0331 per minute typical \0332Dialog\0331 charges would seem a tad on specific user problems. Previous ex- the steep side at first glance, \0334(A)\0331 this is ridiculously and insanely cheaper than amples have included Iowa weather getting the information by any other means; \0334(B)\0331 the searches are far more thorough forecasts, exitable and landscapable and more complete than you could possibly hope to do on your own.\033x legalDiablo emulators, and for the showpage automatic printing of waranty cards. Fig. 5b – Three column gonzo textfile, concluded Give me a call for lots more info on any and all of this. 49.7

Don Lancaster’s Developer resources The great Pellon ploy LaserTalk on the Mac ASK THE GURU PostScript spirograph April, 1989 A 57600 baud interface

erry Cline and all of the usual DOS 3.3 AppleWriter with Xeroxed AppleWriter2.1 and a IIe, while the suspects over at AZApple are info sheets instead of real manuals. sophisticated power users had their now putting together the third Why do I continue to make such a choice ofany software at all that ran JannualApple Fiesta , to get fuss over an older word processor? on their choice of Mac,IBM , or even held in theSafari Resort in Scotts- Because I strongly feel that Apple- VAX workstations. dale, Arizona on June2-4 . This is a Writer, with suitable mods, is far and The results? All of the no-nothing combined AppleII , Macintosh, and away the finest program available to- AppleWriter beginners consistently Desktop Publishing gathering, and day anywhere for any serious desktop got faster results and far better results one of the best ones anywhere. publishing use. On any computer. than all the finest Mac,VAX , and 386 This year’s show should be longer An unintentional experiment did power users which our entire Gila and larger than before. Seminars, tend to dramatically support all my Valley had to offer. And they did so demos, and hands-on sessions will be views on this. Seems I started up this having far more fun and with far given by Guy Kawasaki and Peter beginner’s PostScript and desktop fewer hassles. Sandys of Apple, Tom Weishaar of publishing course here atEAC . The Here is what you need for a decent A2 Central, Roger Wagner of Roger focus of the course was to have the PostScript word processor: (a) a very Wagner Publishing, Bill Mensch of walk-in students quickly and simply powerful and friendly word processor Western Design Center and bunches grind out such things as letterheads, or editor that will work directly with of similar name-brand people. business cards, invoices, note paper, ordinary and unformatted text files; I will have a booth there and will advertisements, badges, newsletters, (b) the ability to send and receive all be holding several hands-on seminars logos, bumperstickers, reports, draw- those files as PostScript data from on PostScript fundamentals and on ings, resume’s, and such. All real within the same program, all the desktop publishing. Bee will also be world, all here and now. And all done while receiving the error messages giving a seminar or two on book-on- on "bare metal" and host independent and recording any long code modules demand publishing and on high tech word processed PostScript, helped sent back from the LaserWriter; (c) opportunities for you working artists. along with a few of my power tools. the ability to freely and visibly em- Yes, a pre or post-show tinaja quest The no-nothing and off-the-street bed font-changing escape commands or two could also be arranged. beginners were all given a ProDOS and other control characters directly Plans are also underfoot for a new supergroup regional user group meet- NOTE: Outputs are "unbalanced" at 0 and +3 volts. The max recomended ing and for several special assembly length is five feet. For longer runs and true bipolar "balanced" RS-232, add language conferences. There will also a single chip and single +5v supply driver such as a Maxim MAX-232. be aMicroSoft night, and several pups fromBeagle Brothers will also data be on hand. The cost of all of the seminars and 16 15 14 13 12 11 10 9 the exhibits will be around$20 for NC AN0 AN1 AN2 AN3 PD3 PD1 NC shown as female the whole show. There will be all the GAME I/O DIP socket on usual freebies, prizes, and giveaways +5V SW0 SW1 SW2 STB PD0 PD2 GND motherboard as well. Rooms are now available at 1 2 3 4 5 6 7 8 the special and lower Safari summer busy SG use a 4-wire rates. Since there is a major car race (black) telephone cable on the same weekend, early arrange- 22K ments are a good idea. 470Ω 470Ω 470Ω TheSun Remarketing people have apparently lied to me twice over the phone, causing some serious mis- DSR (red) RXD (green) information to appear in this column. DCD 8 7 6 3 Because of this, they have acheived shown as female the covetedSynergetics ZZZ- rating, DB-25 socket on cable end even bottoming theZZZ rating now 20 uniquely held byBell Electronics . DTR (yellow) Sun assured me that they stocked ProDos AppleWriter2.1 along with all the original manuals. In reality, Fig. 1 – A game paddle to RS-232 serial adaptor cable. they have the old and largely useless 50.1 ASK THE GURU into a document; (d) a powerful and ----- NEXT OBJECT FILE NAME IS BAUD.57600 flexible key glossary system; (e) a 0300: 0300 3 ORG $0300 ;usual place supervisory language that gives you 0300: 5 ; 0300: 6 ; *********************************** auto help screens, accepts multiple 0300: 7 ; * * user inputs, and automatically writes 0300: 8 ; * 57600 Baud Print Driver * 0300: 9 ; * for Apple IIe and IIgs * PostScript code for you, especially 0300: 10 ; * * font selections with user selectable 0300: 11 ; * Version 1.0 ($0300-03AE) * 0300: 12 ; * * height and width; (f) the same or a 0300: 13 ; * 1-20-89 * similar supervisor that lets you print 0300: 14 ; *...... * 0300: 15 ; * * any left or right pages in any desired 0300: 16 ; * Copyright c 1989 by * order, and otherwise control the auto- 0300: 17 ; * * 0300: 18 ; * Don Lancaster and Synergetics * matic font, dictionary, and prolog 0300: 19 ; * Box 809, Thatcher, AZ 85552 * 0300: 20 ; * (602) 428-4073 * downloads and otherwise handle job 0300: 21 ; * * management; (g) everything open, 0300: 22 ; * All commercial rights reserved. * 0300: 23 ; * * unlocked, understood, and freely 0300: 24 ; *********************************** modifiable on any and all levels; (h) 0300: 26 ; *** WHAT IT DOES *** forces no unwanted carriage returns, 0300: 28 ; This module outputs serial data to the game line feeds, or any format commands 0300: 29 ; paddle ports at an honest 57600 baud. DTR ever; and finally (i) a total freedom 0300: 30 ; handshaking in a simplex mode (transmit only) 0300: 31 ; is used. At present, a tone is provided to from being forced into unnatural acts 0300: 32 ; trace handshaking activity. An external driver 0300: 33 ; is needed for "true" bipolar RS-232. with small furry rodents. I will admit that one of the editor 0300: 35 ; *** HOW TO USE IT *** programs over on theVAX did seem 0300: 37 ; To use, store the character to be output at 0300: 38 ; $0303 and JSR $0300. From BASIC, POKE char to remotely approach AppleWriter. 0300: 39 ; to 771 and then CALL 768. Until, of course, you usedWPL for 0300: 40 ; auto-downloads, for anamorphic font 0300: 42 ; *** GOTCHAS *** selections, and for total print man- 0300: 44 ; Three game paddle port pins are needed: 0300: 45 ; agement. Then it was all over but the 0300: 46 ; Ground on game paddle pin #8 shouting. No contest. 0300: 47 ; which becomes RS232-25 pin 7 0300: 48 ; If you can think of any way at all 0300: 49 ; Data out on game paddle pin #15 to meet these needs on a Mac or a 0300: 50 ; which becomes RS232-25 pin 3 0300: 51 ; 386 that is as fast, as powerful, and as 0300: 52 ; DTR Busy in on game paddle pin #4 convenient as is ProDos AppleWriter 0300: 53 ; which comes from RS232-25 pin 20. 0300: 54 ; on a IIe, please be certain to let me 0300: 55 ; DTR and CD Out from +5 paddle pin #1 know. A free Incredible Secret Mon- 0300: 56 ; to RS232-25 pins 6 and 8. 0300: 57 ; ey Machine for your trouble. 0300: 58 ; Data format is 7 data bits and one stop bit. Apple Computer is up to all sorts of neat new stuff. First and foremost, 0300: 60 ; **** MAGIC NUMBERS **** they have now at long last come out 0300: 62 ; One data bit at 57600 baud equals 17.3611 0300: 63 ; microseconds. The IIe or slow IIgs has a solidly and unequivocally against any 0300: 64 ; clock of (3.579545/3.5)*(65/65.1428)=1.020485 and all forms of copy protection. 0300: 65 ; Mhz, corresponding to a period of 0.9799 0300: 66 ; microseconds. There are 17.3611/0.9799=17.71 InApple Direct for January 1989 0300: 67 ; clock cycles per baud bit. they flat out state that not only will 0300: 69 ; start bit (18 cycles) end error = +0.29 0300: 70 ; bit #1 (17 cycles) end error = -0.42 they not in any way, shape, or form 0300: 71 ; bit #2 (18 cycles) end error = -0.13 help out with the development or the 0300: 72 ; bit #3 (18 cycles) end error = +0.16 0300: 73 ; bit #4 (18 cycles) end error = +0.45 debugging of your copy protection 0300: 74 ; bit #5 (17 cycles) end error = -0.26 scheme, but that they also most def- 0300: 75 ; bit #6 (18 cycles) end error = +0.03 0300: 76 ; bit #7 (18 cycles) end error - +0.32 initely don’t want any copy protected program toever be run on any Apple 0300: 78 ; **** HOOKS **** machine atany time for any purpose. 0300: C036 80 SPEED EQU $C036 ;Speed setting byte 0300: C059 81 SETBIT EQU $C059 ;Make output high They also have a free new Just 0300: C058 82 CLRBIT EQU $C058 ;Make output low 0300: C063 83 BUSY EQU $C063 ;Handshaking input Add Water book to help you form or 0300: C030 84 NOISE EQU $C030 ;Click speaker improve your own Apple user group.

0300: 86 ; *** MAIN 57600 CODE *** The premier issue ofAPDAlog is also 0300:4C 04 03 88 LINK JMP B57600 ;Bridge over BASIC now newly available. 0303:FF 89 CHAR DFB $FF ;Character stash Apple has recently shuffled all of 0304:08 90 B57600 PHP ;Save status 0305:78 91 SEI ;No interrupts their developer programs. The brand 0306:2C 58 C0 92 BIT CLRBIT ;affirm low output newPartners program gives you all 0309:2C 63 C0 93 HS BIT BUSY ;Check handshaking the bells and whistles for$750 for the Fig. 2a – EDASM source code for a 57600 baud serial driver . . . first year. This includes a program and development library, and the 50.2 April, 1989 ability to buy most products at half off. To be a partner, you must end up 030C:10 FB 0309 94 BPL HS ; Hang till handshake free actually marketing Apple-compatible 030E:2C 30 C0 95 BIT NOISE ; Whap speaker once 0311:AD 36 C0 96 LDA SPEED ; IIgs speed and save products and have a genuine business 0314:48 97 PHA ; 0315:29 7F 98 AND #$7F ; plan. Existing developers will trans- 0317:8D 36 C0 99 STA SPEED ; Force slow speed fer over when they once again come 031A:AD 03 03 100 LDA CHAR ; get character 031D:2C 59 C0 102 BIT SETBIT ; generate start bit up for recertification. 0320:48 103 PHA ; stall for 18 - 11 = 7 Their newAssociates program is cycles open to anyone but has fewer bene- 0321:68 104 PLA ; since 11 are used before 0322:6A 106 AX ROR A ; Get First Data Bit fits. First year cost is$500 with the 0323:90 09 032E 107 BCC AL ; and pick high/low 0325:B0 00 0327 108 BCS AH ; stall for 3 library and$350 without. 0327:2C 58 C0 109 AH BIT CLRBIT ; Low if a one Individual software and book bits 032A:B0 00 032C 110 BCS AH1 ; stall for 17-14 = 3 032C:B0 08 0336 111 AH1 BCS BX ; and exit and pieces are also now available to 032E:EA 112 AL NOP ; stall 2 032F:2C 59 C0 113 BIT SETBIT ; High if a zero anyone directly through their APDA 0332:90 00 0334 114 BCC AL2 ; stall for 17-14 = 3 service. This one is a mere$20 per 0334:90 00 0336 115 AL2 BCC BX ; and exit year and a real bargain. 0336:6A 117 BX ROR A ; Get Second Data Bit 0337:90 07 0340 118 BCC BL ; and pick high/low Finally, there is a brand new Apple 0339:B0 00 033B 119 BCS BH ; 033B:2C 58 C0 120 BH BIT CLRBIT ; Low if a one Consultant program that is open to 033E:B0 06 0346 121 BH1 BCS BY ; and continue professionals in this field. Contact 0340:EA 122 BL NOP ; stall 2 0341:2C 59 C0 123 BIT SETBIT ; High if a zero them directly for more info. 0344:90 00 0346 124 BL2 BCC BY ; 0346:EA 125 BY NOP ; stall for 18-14 = 4 After several recent "My IIgs blew 0347:EA 126 NOP ; up!" calls, I thought I’d better repeat 0348:6A 128 CX ROR A ; Get Third Data Bit this warning once again: DoNOT , 0349:90 07 0352 129 BCC CL ; and pick high/low 034B:B0 00 034D 130 BCS CH ; under any circumstances, attach or 034D:2C 58 C0 131 CH BIT CLRBIT ; Low if a one 0350:B0 06 0358 132 CH1 BCS CY ; and continue remove a disk drive from or to a 0352:EA 133 CL NOP ; stall 2 powered IIgs. This is almost certainly 0353:2C 59 C0 134 BIT SETBIT ; High if a zero 0356:90 00 0358 135 CL2 BCC CY ; guaranteed to blow up both the drive 0358:EA 136 CY NOP ; stall for 18-14 = 4 and the motherboard. Remember also 0359:EA 137 NOP ; 035A:6A 139 DX ROR A ; Get Fourth Data Bit that the IIgs has a half minute run- 035B:90 07 0364 140 BCC DL ; and pick high/low down time. Leave the power off for 035D:B0 00 035F 141 BCS DH ; 035F:2C 58 C0 142 DH BIT CLRBIT ; Low if a one at least one minute before attaching 0362:B0 06 036A 143 DH1 BCS DY ; and continue 0364:EA 144 DL NOP ; or removing a drive. 0365:2C 59 C0 145 BIT SETBIT ; High if a zero Note that the printer connections 0368:90 00 036A 146 DL2 BCC DY ; 036A:EA 147 DY NOP ; stall for 18-14 = 4 usually can be removed or remade at 036B:EA 148 NOP ; any time, and you probably can get 036C:6A 150 EX ROR A ; Get Fifth Data Bit 036D:90 09 0378 151 BCC EL ; and pick high/low away with removing or replacing a 036F:B0 00 0371 152 BCS EH ; video or monitor cable under power. 0371:2C 58 C0 153 EH BIT CLRBIT ; Low if a one 0374:B0 00 0376 154 BCS EH1 ; stall for 17-14 = 3 But disk drives are a no-no. 0376:B0 08 0380 155 EH1 BCS FX ; and exit 0378:EA 156 EL NOP ; stall 2 This month’s horror story involves 0379:2C 59 C0 157 BIT SETBIT ; High if a zero several epsilon minuses who are now 037C:90 00 037E 158 BCC EL2 ; stall for 17-14 = 3 buying up the old LaserWriter boards 037E:90 00 0380 159 EL2 BCC FX ; and exit 0380:6A 161 FX ROR A ; Get Sixth Data Bit and destroying them just to get the 0381:90 07 038A 162 BCC FL ; and pick high/low 0383:B0 00 0385 163 BCS FH ; valuable dynamicRAM chips out of 0385:2C 58 C0 164 FH BIT CLRBIT ; Low if a one them. This is sort of like all those 0388:B0 06 0390 165 FH1 BCS FY ; and continue 038A:EA 166 FL NOP ; stall 2 kids that were stealing accounts re- 038B:2C 59 C0 167 BIT SETBIT ; High if a zero 038E:90 00 0390 168 FL2 BCC FY ; ceivable disks from businesses and 0390:EA 169 FY NOP ; stall for 18-14 = 4 reselling them at a buck apiece. Once 0391:EA 170 NOP ; again, an old LaserWriter board will 0392:6A 172 GX ROR A ; Get Seventh Data Bit 0393:90 07 039C 173 BCC GL ; and pick high/low drop into an old Laserjet machine, 0395:B0 00 0397 174 BCS GH ; 0397:2C 58 C0 175 GH BIT CLRBIT ; Low if a one giving you a full PostScript printer 039A:B0 06 03A2 176 GH1 BCS GY ; and continue for under$1300 . See last month’s 039C:EA 177 GL NOP ; 039D:2C 59 C0 178 BIT SETBIT ; High if a zero column for details. 03A0:90 00 03A2 179 GL2 BCC GY ; 03A2:48 180 GY PHA ; stall for 18-7 = 11 Addison-Wesley came out with a 03A3:68 181 PLA ; new "orange" book called Real World 03A4:EA 182 NOP ; 03A5:EA 183 NOP ; PostScript. This one includes font 03A6:2C 58 C0 184 BIT CLRBIT ; Begin stop bits modifications, program design, half- 03A9:68 185 PLA ; get old speed back 03AA:8D 36 C0 186 STA SPEED ; and restore toning, layout tips, color seperations, 03AD:28 187 PLP ; get old flags back and several other topics. While it is 03AE:60 188 RTS ; and exit as subroutine interesting and useful, it is simply SUCCESSFUL ASSEMBLY: NO ERRORS not even remotely in the same league Fig. 2b – A 57600 baud serial driver, concluded. as the red and blue books. It is also a 50.3 ASK THE GURU tad disjointed and uneven, due to the third, we still are lacking essential The process works just fine on a multiple authors. print drivers for plain old Send-PS II+, IIe, or IIgs. You use the game Yes, I do have these in stock if you and even a properly working Epson paddle output as aRS-232 or RS-423 want one. Speaking of which, I do try driver. This is inexcusable. driver. One possible cable schematic to keep Adobe’s red, blue, and green So, step number one is to flush all appears in figure one. The maximum books, and this orange book in stock, of your internal IIgs serial firmware, recommended cable length is five along with Apple’s new white Laser- and substitute a Super Serial Card. feet, unless you add suitable drivers. Writer Reference. I have also got This at least will get you up to a Plans are underfoot to offer this cable autographed copies of my own Ask compatible19200 baud, and your or cable kits through the folks at the Guru, volumesIII and , my de-facto baud rates can end up in the Redmound Cable. Give them a call Hardware Hacker, volume II, and my 16000 range, at least when you are for more details. Incredible Secret Money Machine using AppleWriter. Source code for a suitable software book available. But, I wanted and needed much driver appears in figure two. Annunc- As per usual, this is your column more than this. Just how fast can an iatorAN0 is used for data out, since and you can get tech help and some unassisted IIe or IIgs output serial reset of a IIe or IIgs drivesAN0 and off-the-wall networking per the end data? The suprising answer to this is AN1 low and AN2 and AN3 high. The box. Best calling times are8-5 week- 14 Megabaud. Yeah. Mega, not kilo. switch input atAN3 is used to avoid days,Mountain Standard Time . You do this by putting your data on any conflicts with the open-apple and Also as per usual, we’ve gathered the superHIRES screen and using the closed-apple keys. all of thoseNames and Numbers to- video connector for the serial output. You also do have the option of gether at the end of this volume. To do so, though, would be socially hearing the data as it is output. This Let’s speed things up a tad . . . irresponsible, because of the extreme can be handy for debug and speed chagrin and stress this would cause in testing. Details on this are different Show me an honest 57600 the Mac and386 communities. between the IIe and IIgs. In general, Baud Serial Interface. Instead, let’s just be content to omitting the speaker whapping will I have long been disappointed with plod along at a leisurely but honest turn the soundon on a IIe and off on the dismal IIgs serial interface firm- 57600 baud. That will still end up a IIgs. Andincluding that speaker ware and its software support. First, ridiculously faster than AppleTalk whapping will turn the soundoff on a the IIgs communicates much slower with its heavy software overhead, IIe andon on a IIgs. This has to do than the IIe. For instance, a IIe takes and much faster than most anything with the IIgs speed byte at$C036 un- only6 microseconds to find out if a else available on the Mac or a 386 intentionally whapping the speaker character is ready to be read. That machine. And it opens up some of on a IIe. Arrghhh. IIgs takes136 microseconds or so to the really exciting speedup tricks that I chose to use brute force code so do the same task in its fast mode. we will look at next month. that two of the data bits could be a Second, that IIgs interface is in- For now, we will use a transmit- microsecond shorter than the others. compatible with pretty near all of the onlysimplex mode using hard wire This was needed for the most precise important earlier IIe software, so you DTR handshaking. You can drop on possible baud rate timing. The code have to substitute a Super Serial Card down to19200 baud with your super is fully equalized and will produce instead if you are to reuse many of serial card anytime you really need a negligible jitter. Note that the IIgs is your older but gooder routines. And, full two-way comm channel. forced into its slow mode during any character output times. To use your driver, you connect 1. Get intoBASIC.SYSTEM and then CALL -151 to enter the monitor. your cable and install the machine 2. Enter the following code . . . language code, usually byBLOAD ing $0300: 4C 04 03 FF 08 78 2C 58 C0 2C 53 C0 10 FB 2C 30 it. From machine language, you store $0310: C0 AD 36 C0 48 29 7F 8D 36 C0 AD 03 03 2C 59 C0 the character to be output in $0303 $0320: 48 68 6A 90 09 B0 00 2C 58 C0 B0 00 B0 08 EA 2C and then do aJSR $0300 . Your new $0330: 59 C0 90 00 90 00 6A 90 07 B0 00 2C 58 C0 B0 06 character will get output so long as $0340: EA 2C 59 C0 90 00 EA EA 6A 90 07 B0 00 2C 58 C0 theDTR busy line is not low. If the $0350: B0 06 EA 2C 59 C0 90 00 EA EA 6A 90 07 B0 00 2C busy line is low, the driver will wait $0360: 58 C0 B0 06 EA 2C 59 C0 90 00 EA EA 6A 90 09 B0 tillDTR goes high before continuing. $0370: 00 2C 58 C0 B0 00 B0 08 EA 2C 59 C0 90 00 90 00 Note that a permanantly low DTR $0380: 6A 90 07 B0 00 2C 58 C0 B0 06 EA 2C 59 C0 90 00 will hang your machine. $0390: EA EA 6A 90 07 B0 00 2C 58 C0 B0 06 EA 2C 59 C0 FromBASIC , you just POKE your $03A0: 90 00 48 68 EA EA 2C 58 C0 68 8D 36 C0 28 60 11 character to be sent to771 and then 3. Do a300LLLL and compare the listing against figure two. do aCALL 768 . Naturally, there is a 4. Do aBSAVE BAUD.57600, A$0300, L$AF to save the code to disk. horrendous speed mismatch if you 5. To install at run time, do aBLOAD BAUD.57600 . pairBASIC with 57600 baud, but this mode is very useful for preliminary Fig. 3 – Hand loading your 57600 baud object code driver. testing and debugging. Figure three does give you the 50.4 April, 1989 manual hex dump for your final not already able to conveniently and materials and processes that greatly driver, if you are not now using an routinely do using AppleWriter and extend the possibilities and oppor- assembly system. WPL on my IIe. I always prefer to tunities of laser printing. The figure one circuit only works work with "bare metal" on a machine Among others, we have looked at with modifiedRS-232 receivers that where everything is open, fully un- printing on aluminum, creating giant can accept0+5 and logic states as derstood, and freely modifiable. rubber stamps, doing self-numbering well as the usual-3 and +3 . You can LaserTalk would be just one more tickets, specialty papers, glow-in-the- also directly driveRS-423 with a con- locked layer getting between me and dark bumperstickers, the Kroy Kolor nector change. For a "true" RS-232 what I am trying to accomplish. process, transparent materials, those interface, you may want to add on a Third, and by far the worst, the magicCoburn materials, the instant Maxim MAX232 driver chip. LaserTalk software licensing agree- transfer decals, and even replicating We’ll see some examples of these ment is so laughingly and ludicrously three dimensional objects in ultra- alternatives in future issues. We will absurd to the point where no sane violet curable plastics. also see a much fancier and far more individual would ever purchase this Full details appeared in the back powerful internal AppleWriter 57600 program. The agreement would not issues and in myAsk the Guru I and baud interface next month. fit on the disk envelope, so they had Ask the Guru II. to enlarge to envelope to hold it. At any rate,Pellon is a non-woven What is LaserTalk? The thinking behind this software fabric you will find at your cloth or I rarely review Mac programs, but licensing agreement obviously came notions store. It costs a dollar a yard, for those of you using a Macintosh from spending many long hours in and sometimes goes by its generic for desktop publishing, the LaserTalk the outhouse alone. name ofnon-woven interfacing . You code fromEmerald City Software is Very interestingly, though, there is will find several weights available. certainly worth a close look. a hidden two-word subliminal mess- Believe it or not, the Pellon can be What this does is set you up in an age buried in the software licensing safely run through your LaserWriter interactive PostScript environment agreement. Most potential users can or other laser printer. You do have to that lets you work with and debug clearly receive this message from ten manually feed it and carefully pre-cut any portion of any program at any feet away in two seconds flat. your Pellon to exactly8-1/2 by 11 time. A specialpreview mode gives before you attempt this. The medium you the equivalent of display Post- What is the Pellon Ploy? thickness work best. Using an SX Script, and returns the actual Laser- Hmmm. Whaddaya know. If you engine is recommended over the CX Writer bitmap image to your screen scrape the bottom of the barrel long one because of its straight paper path. for later study. enough, you will find a secret hidden While the final toner image is not Additional screens are available compartment chock full of goodies. outstanding, it is certainly clear and that let you read dictionaries, view As most of you are aware, we’ve quite legible. the stack, and snoop around. looked at dozens of different "magic" Why bother? Well simply because Another feature that you might find handy is that entire "red book" command set on-line in full detail. This particular feature requires a Mac with hierarchial directories. Several of my students and quite a few PostScript developers seem most enthuastic over this program. But I guess I do have three major problems with this LaserTalk code. First, while that preview bitmap is really returned to your screen, you are prevented from doing anything useful with it. As we saw two months ago, captured bitmaps can give you as much as a3000:1 speedup in some PostScript routines, especially those involved with perspective,3-D , or star wars lettering. Thus, the bitmap preview feature does not go nearly far enough, and thus ends up as a serious disservice to potential users. Second, I do have to ask myself whether I would personally use this program. The answer is "probably Fig. 4 – The ultimate bagel. not", since it does nothing that I am 50.5 ASK THE GURU simply because Pellon makes a very Obviously, Bee wrote the previous (or on-the-wall, if you prefer) use for good universal pattern and transfer paragraph. Undecipherable technical PostScript laser printed Pellon. material. It’s much more durable than gibberish. But both Lexie and Cassie There will be the usual Incredible paper. You can also dye it, color it, really seem to like their pillows. Secret Money Machine book prizes wrap it in cloth, embroider it, dip it, You might just want to build up for the top twenty or so entries, with or paint it. some favorite Pellon alphabets and an all expense paid (FOB Thatcher, In a few minutes, my beginning number sets all ready for future use. AZ) tinaja quest for two awarded to PostScript class came up with over a Thanks to your laser printing, lots of the very best of all. hundred off-the-wall uses for Pellon different sizes and styles are easily transfers. Included were such things done. Any way you like. What is This Month’s as the storyboard objects for child or Use a bigger point size than you PostScript Utility? church show-and-tell sessions, stick- think you will need. Remember that Well, actually, it is not ready yet. I ons, quilt patterns, a giant stencil, points are measured from thetop of a was hoping to give to you another enlargedZapf dingbats, display signs, capital "W" down to thebottom of major and secret blockbuster for this art teaching aides, big pillows with the lower case "g" descender. month. Namely some sneaky tricks names on them, interior decorating Oh yeah. Oneextremely important that will blindingly speed up all your gee gaws, and bunches more. point: There are two different types PostScript print times to the point Ferinstance . . . Say you wanted of Pellon. There’s the plain, or "sew where most jobs will print at the full some big pillows having the words in" type, and the bondable or "heat page-feeding speed of your printer, "LEXIE" or "CASSIE" on them. You fusable" type that is intended to be with, believe it or don’t,zero make- could start start off with400 point ironed in place. Obviously, you want ready or pre-processing time. Sadly, Helvetica bold and print all of the to use the plain or "sew in" type. The this one has to wait till next month individual letters onto Pellon. Those heat fusable Pellon ends up a total because one or two final details are Pellon letters are then cut out and disaster if it ever hits the heat fusion not yet fully in place. traced onto a somewhat puffy foam- rollers on your laser printer. Instead, lets back way off and have backed felt material of the type that One more time: Be sure to use the some quick and easy fun by using a does not have to be turned under or plain Pellon. Donot ever use the heat simple new PostScript routine. hemmed. This unusual material, in a fusable or iron on type. Remember those Super Spirograph contrasting color to the main pillow But why don’t you tell me instead? toys? Figure four shows you some of material, then gets zig-zag sewn (or For the first of our two contests this the interesting things you can do with appliqued) in place. month, just dream up an off-the-wall spirograph code as written directly in PostScript, while figure five shows you the rather simple code routines % Copyright c 1989 by Don Lancaster and Synergetics, Box 809 Thatcher, that are involved. % AZ 85552. (602) 428-4073. All commercial rights reserved. Personal use All we really have here is a wheel % is permitted so long as this header remains both present and intact. rotating around a second wheel, with % A work in progress disk for Apple, Mac, or IBM is available for $39.50. some integer ratio set between those % Spirograph routines. Emulates epicycloids and hypoclycoids that have a two wheel diameters. % variable length pen arm, similar to "super spirograph" toys. If the outside wheel is smaller in % To use, translate to desired position. Then define stator teeth/a , rotor diameter than the inside, you will get % teeth/b , the number of total revolutions /maxang , resolution in degrees curley circles;if the outside wheel is %/res , and the ratio of the pen arm length to the rotor teeth /penarm . much larger than the inside, you get % Then do adrawspiro . those cusps. The ratios of the wheel diameters % Use positive (b) values for "inside" hypocycloids and negativeb values decide the number of the repeats per % for "outside" epicycloids.penarm normaly ranges from 0 to 1. revolution of the inside wheel. Make /cposn {/ang exch def a b sub ang cos mul a b sub b div ang mul cos b mul a zillion trips around, and you get a penarm mul add a b sub ang sin mul a b sub b div ang mul sin b mul penarm negative image with those chords in mul sub} def them. Unlike real spirograph toys, your pen hole location can easily /drawspiro {newpath a b 1 penarm sub mul sub 0 moveto 0 res maxang 360 exceed the diameter of your outside mul cvi {cposn lineto currentpoint stroke moveto} for} def wheel for special effects. With several simple modifications, % ///// demo - remove before use. ///// you can do spirals or work along an 200 300 translate 1 setlinewidth arbitrary path. Thus, this simple Post- Script code is a major improvement /a 96 def /b 75 def /maxang 32 def /res 10 def /penarm 0.8 def drawspiro /a 96 def /b -15 def /maxang 32 def /res 1 def /penarm 1 def drawspiro over the original spirograph toys. So, for our second big contest this showpage month, just show me some variation Fig. 5 – PostScript code for the ultimate bagel. on the spirograph theme. Preferably printed onto Pellon. 50.6 Don Lancaster’s Secret toner refill tools PostScript error trapper A serious AppleTalk bug ASK THE GURU Mini-DIN 8 serial cabling May, 1989 Beginners two-up notepads

e sure and stop in and say hi are getting much better. See "The of ATF’s font machinery is that you at theApple Fiesta regional Making of Pencilman" in particular. can intercept it for non-linear trans- show that’s being presented Apple also has a pair of fat new formations. This means you can now BFriday through Sunday June developer packages out. These now do true perspective and "star wars" 2-4 in the Safari Hotel Convention include the Information Exchange lettering as much as3000 times faster Center in Scottsdale, Arizona. This Marketing Guidebook, along with the than when using Adobe fonts with combined Apple, Macintosh, desktop new Information Exhcange Technical their forced pixel line remapping. publishing, user supergroup, plus Guidebook. Get in touch with Peg Their first offerings are mostly an assembly language programming Bailey at Apple for more info. calligraphic, intended for awards and conference will feature great heaping Lots of brand new LaserWriter announcements. CallATF ’s Limell bunches of name brand Apple people font sources are now coming out of Schneiker for more details. and should have a lot to offer for just the woodwork. Some of these have What will the next generation of about everybody. fully cracked Adobe’s encryptation LaserWriter’s look like? Well, there As in previous years, I’ll be doing and sizing hints and thus are offering already is aNTX-J out which has some PostScript showing and telling, outstanding typographic quality. improved handling of dual characters while Bee will have a seminar or two Actually, the "secret" process isn’t and is intended for use in Japan. on book-on-demand publishing and nearly as bulletproof as Adobe thinks Beyond that, look for a new 400 DPI one on high tech opportunities for the it is. Any patient seventh grader can engine sped up by semi-interpreted working artist. sight read theeexec files, by using PostScript firmware and an AMD Give Jerry Cline a call at AZApple nothing but Adobe supplied tools. 29000 RISC engine that does such for more details. Or else just stop in. Key portions of the hint machinery things as BitBlts and cubic spline For those of you in the midwest, are sitting pretty much out in the calculations directly in hardware. Tom Weishaar ofA2 Central is also open inFlxProc in internaldict . Blue Look for a special400 x 800 mode putting together a really heavy-duty values anyone? We have seen the full that dramatically improves photo- developer conference in Kansas City, details on this in back columns and in graphic halftone quality. Possibly a scheduled for July21-22 . Ask The Guru volumeII . "B" sized version, good for 11 by 17 Apple has now finally reworked One source of new fonts is ATF and possibly a duplex (double sided) and rereleased all of the Apple II Kingsley. One very major advantage printing option. Possibly better hard series tech notes in ProDOS format. Do see your local user group or BBS IIgs printer system for copies. They’re also avail- able on disk fromA2-Central . RS423 RS232 The high points here include the ( mini-DIN 8 male ) ( DB25 male ) AppleWorks file formats and details on the IIe production changes that DTR 1 20 DTR did trash out the game paddle con- nector for some uses. The low points include totally ignoring AppleWriter, DSR 2 6 DSR especially the IIgs patches. In retrospect, Apple’s unconscion- TXD- 3 2 TXD- able treatment of far and away their best desktop publishing word pro- RXD- 5 3 RXD- cessor could only have been caused by Lutus really hacking someone off on his way out the door. That much DCD 7 8 DCD world class stupidity on Apple’s part could only have come about through SG 4 7 SG malice aforethought. A three disk upgrade of the IIgs RXD+ 8 Source Code Sampler is also now available, and is just about essential TXD+ 6 n.c. to coping with the incredible morass involved in any serious IIgs program- ming. ContactAPDA for details. Fig. 1 – A IIgs serial cable for PRINTER use. The free Apple user group videos 51.1 ASK THE GURU hard disk support. Possibly more II bound books. Book-on-demand lower noise, distance, and speed per- fonts, perhapsGaramond and Optima printed with an Apple IIe, of course. formance. To convert fromRS422 to for starters, along with some more Our biggie this month is a new RS423, you use the TXD+ output and Helvetica weights. hard coating process that promises to leave theTXD- output unconnected. On the dark side, expect continued greatly extend the service life of the You then use theRXD+ input and outrageously high list prices. Expect Canon SX cartridge drums. But, let’s connect theRXD- input to a reference the Quickdraw Mafia to continue to first do a summer rerun of "the attack level that is halfway between the one try and shove all their non-PostScript of the killer cables" . . . and zero levels. non-solutions down your throat. For instance, if you are running on How do I Convert from Expect Adobe to continue to refuse a single +5 volt supply, the TXD+ Mini-DIN 8 to DB25? to remove the useless and highly andTXD- lines will swing between 0 demeaning lock onpathforall , and There are three popular serial com- and+5 volts, so your RXD- input still refuse to properly document all munications standards in use today. should get connected to a well by- of the most useful "hidden" Post- These areRS232 , RS422 , and RS423 . passed+2.5 volt reference. On the Script commands. And expect Canon Each is different in their signal levels other hand, if all your input signals to try draconian anti-refill measures, and in their choice of connectors. swing from+5 to -5 volts, then you perhaps by going to a pin-free totally The olderRS232 standard normally should ground theRXD- input. welded package. uses aDB25 connector and normally It is super important to remember For all those of you heavily into has bipolar signal levels of-5 volts thatRXD+ will do absolutely nothing electronics, be sure and check my for a logic one and+5 volts for the ifRXD- is not connected, since the Hardware Hacker column over in logic zero. serial receiver works on the current Radio-Electronics this month. It TheRS422 standard often may use difference present between these two features an easy-to-use full 16-bit theDB9 or a Mini- DIN 8 connector. pins. For a logic one, the current digital audio front end for your per- This standard provides for balanced must go in theRXD+ line and out the sonal computer or whatever. inputs and outputs. As an example, RXD- line. The opposite is true for a Several of my classic hardware there is aTXD+ output and a TXD- logic zero condition. books that I do stock autographed output. These are complementary, so Most Apple products, including copies of here atSynergetics include one goes high as the other goes low. the IIc, IIe, IIgs, the Macs and all of myCMOS and TTL Cookbooks , my There is also aRXD+ and RXD- input the various LaserWriters have unique Micro Cookbooks I andII , and my pair. Logic is sensed as the differ- serial hardware drivers which can Active Filter Cookbook, and my In- ential currentbetween these pins. handle any of these three standards. credible Secret Money Machine. TheRS423 standard is a "single They do this by employing a pair of As per usual, we also stock Ask the ended" version ofRS422 that lets you outputs that swing from+5 to -5 and Guru I andII and Hardware Hacker get by with fewer wires at somewhat by using differential input pairs. Figure one once again shows you IIgs modem how to get from a Mini-DIN 8 to RS-232 and vice versa, by using what RS423 RS232 Apple calls amodem cable, and what ( mini-DIN 8 male ) ( DB25 male ) the others call a straight through cable. On the transmitter end, RXD+ is left unconnected, andRXD- is used DTR 1 20 DTR as a driver. This handles the negative logic needed byRS232 . Over on the DSR 2 6 DSR receiver end,RXD+ is grounded, whileRXD- senses the RS232 levels. TXD- 3 2 TXD- Figure two shows you the "crossed over" connections needed for what the Apple folks call aprinter cable, RXD- 5 3 RXD- and what others call a null modem cable. This is by far the more popular DCD 7 8 DCD of the two connections, as one trans- mitter will look at the other receiver SG 4 7 SG and vice versa. On either of these cables, the usual RXD+ 8 mistakes that everyone will make is forgetting to float theTXD+ output or forgetting to ground thatRXD+ input. TXD+ 6 n.c. Once again, it is the differ- ential current betweenRXD+ and RXD- that Fig. 2 – A IIgs serial cable for MODEM use. gets sensed. Additional cable variations appear 51.2 May, 1989 appear inAsk the Guru , volume I. their model AXP43-007.09R Glompen- and repair manuals on theCX and SX Complete cable assemblies are ready Stractor. This one neatly and cleanly engines isHewlett Packard . In fact, to go at much lower than Apple pulls the pins with zero damage. The it is pretty near impossible to intel- prices from eitherRedmond Cable or older techniques used here included ligently use any Apple LaserWriter else from the Microcomputer Cable traverse cutting pliers, screw extrac- without owning the related HP man- Company. tors, woodworker screw starters, or ual that will cover it. The older CX an obscure craftsman tool known as a engine (LaserJet, LaserWriter, Laser- Why Does AppleTalk Badly #8 gimlet. Writer Plus) manual is#02686-90904 , Foul up the LaserWriter? The really big news, though, is that while the newerSX engine (LaserJet Darned if I know. Ask Apple. At it looks likeSX drum hard recoating II, LaserWriter NT and NTX ) manual any rate, there is an extremely bizarre is now a reality. In theory, this can is part number #33440-90904. bug in AppleTalk that can blatently greatly extend theSX cartridge life HP has traditionally been a great violate PostScript’s device indepen- and might eventually reduce or even source for repair and replacement dence. And it can drive you up the eliminate the15:1 per page toner cost parts for the Apple machines, but wall if you do not understand it. penalty of the LaserJetII or either the lately they have been going to selling We found it when the Apple,VAX , LaserWriterNT or NTX . the major assemblies only. If the part and theIBM people in my begining One source of recoating drums and you want is not individually available PostScript class all were grinding out services is Arlin Shepard of Lazer fromHP , tryCustom Technology or outstanding typography, while the Products. Projected recoating costs Thompson and Thompson. Mac people were totally trashing all are in the$8 range. It will be very As I’ve mentioned a time or two their output. And they all were using interesting to see how effective drum before, there are two reloading meth- absolutely identical work files. recoating eventually becomes. ods, thepunch and go and the total What happens is that the same file Let’s go back to the old stuff. The teardown. I overwhelmingly prefer sent serially gets treated differently best source for detailed maintenence punch and go since it delivers far and when sent by AppleTalk. That stan- dard and thoroughly documented /persist true def persist {serverdict begin 0 exitserver} if PostScript serial interface will auto- matically convert all carriage returns /printerror {/$brkpage 64 dict def $brkpage begin /prnt {dup type/stringtype into$10 newline characters, while ne{=string cvs}if dup length 6 mul /tx exch def/ty 10 def currentpoint/toy exch AppleTalk does not. def/tox exch def 1 setgray newpath tox toy 2 sub moveto 0 ty rlineto tx 0 Which means that custom input rlineto 0 ty neg rlineto closepath fill tox toy moveto 0 setgray show}bind def scanners will behave differently if /nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def /=={/cp 0 the file is sent over AppleTalk rather def typeprint nl}def /typeprint{dup type dup currentdict exch known {exec}{unknowntype}ifelse}readonly def /lmargin 72 def /rmargin 72 def than over stock serial. Certain older /tprint {dup length cp add rmargin gt{nl/cp 0 def}if dup length cp add/cp exch version LaserWriter firmware will def prnt}readonly def /cvsprint{=string cvs tprint( )tprint }readonly also cause thereadline command to def/unknowntype{exch pop cvlit(??)tprint cvsprint}readonly work just fine serially but fail when def/integertype{cvsprint}readonly def/realtype{cvsprint}readonly def used over AppleTalk. /booleantype{cvsprint}readonly def/operatortype{(//)tprint cvsprint} readonly The sledgehammer workarounds to def/marktype{pop(-mark- )tprint}readonly def/dicttype{pop (-dictionary- this involve never using the readline )tprint}readonly def/nulltype{pop(-null- )tprint}readonly command, or else writing your own def/filetype{pop(-filestream- )tprint}readonly def/savetype{pop (-savelevel- input scanner that will automatically )tprint}readonly def/fonttype{pop(-fontid- )tprint}readonly def/nametype{dup convert carriage returns into newline xcheck not{(/)tprint}if cvsprint}readonly def/stringtype {dup rcheck{(()tprint linefeeds. This introduces a modest tprint())tprint}{pop(-string- )tprint}ifelse }readonly def/arraytype{dup speed penalty into the worst possible rcheck{dup xcheck{({)tprint{typeprint} place in your code. forall(})tprint}{([)tprint{typeprint}forall(])tprint}ifelse}{pop (-array- The fix to the older copies of my )tprint}ifelse}readonly def/packedarraytype{dup rcheck{dup gonzo input scanner is dup 13 eq {3 xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint} sub} if just before all of the linefeed forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse}readonly def processing takes place. /courier/Courier findfont 10 scalefont def/OLDhandleerror errordict /handleerror get def end errordict /handleerror {systemdict begin $error begin Where are all the Secret $brkpage begin newerror{/newerror false store $error /errorname get Toner Reloading Tools? (ioerror) ne $error /command get (exec) ne or {vmstatus pop pop 0 ne{grestoreall}if initgraphics courier setfont lmargin 720 moveto (ERROR: Since there’s two brand new toner )prnt errorname prnt nl(OFFENDING COMMAND: )prnt/command load prnt cartridge reloading tools available $error/ostack known {nl nl(STACK:)prnt nl nl $error/ostack get aload this month, I thought it might be a length{==}repeat}if systemdict/showpage get exec /newerror true good time to review all of the secret store/OLDhandleerror load end end end exec}{end end end} ifelse} {end end reloading tools and insider sources. end}ifelse} dup 0 systemdict put dup 4 $brkpage put bind readonly put} def But first, the new stuff. A great SX cartridge pin puller is now available Fig. 3 – Adobe’s printing and stack dumping error trapper. fromThompson and Thompson as 51.3 ASK THE GURU delivers far and away the lowest per- cluded free with each bottle of their Tell Me All About page toner costs to the end user. We reload toner. A plain old5/16 inch Copy Fitting charge$24 for our local CX and SX wood chisel is often the best way to reloads. I can still get away with such remove the old wiper pad. Both the form and the content of an outrageously high price since I do Note that washing and reusing any page layout can be equally im- live in a rather remote rural area. wiper pads is a no-no. Their purpose portant.Copy fitting is the arcane art At any rate, if you do insist on a total is to deliver a very precisely metered of getting your entire layout to come teardown of aCX cartridge, that amount of silicon fusion oil. Improp- out even, so it will exactly fit all the magicT-10 tamperproofTorx bit erly redone wiper pads can rather space provided. you’ll need is manufactured by Evco dramatically shorten the life of the You are worst off when you are as their945B700 set, and can be got- expensive fuser assemblies. fitting poetry, biblical quotations, or ten throughJensen Tools . A good drum lubricant is essential anything else that absolutely has to For punch and go, the best way to to a proper reload. You can get drum be word-for-word accurate. You are produce smooth and truely round lubricant in bulk from those larger best off when you’re doing your own reloading and draining holes is to use copier repair houses, while small layout of your own text. In general, a#3 Unibit from Vice Grip, or one of quantities are available asPixie Dust , though, most average text can be ad- their imitators. These are once again once again fromLazer Products . justed by adding or removing a few available fromJensen Tools or most Several plastic strips are useful as words without hurting the content. any of the large electrical contracting well. A twelve mil thick piece of the On a five page column layout like supply houses. One rather good way clear butyrate plastic is useful as a this one, at worst you could end up to replug the holes is with a tapered feeler gauge for regapping cartridges with a ten percent shortfall or excess. plastic closure from either Caplugs that have heavy streaking problems. And the typical will be more like five orNiagara Plastics . Similar plastic strips can be used for percent. And that is only one word in Fusion roller wiper pads should be sealing the fresh toner in reloads that twenty. No big deal. replaced each time you reload. One have to be shipped somewhere else We have already seen how post source of the custom manufactured or stored for long periods of time. justification editing can be used on a peel-and-stick and silicon pressure Do let me know if there are any micro scale to give the most ascetic lubricated Nomex felt strips is Lazer favorite reloading tools of yours that text lines. Pretty much the same ideas Products. These are normally in- I may have missed. can be used on a macro scale to fit the entire text to the available space. ✏ Text can obviously be made more or less wordy to fit. More often than a note from: not, there will be some rather minor or even redundant stuff that can be dropped while actually sharpening Yodar Kritch the on-page message. Or there will be some important point that might be further amplified or detailed. So, the very first step is usually to stretch or shrink the text as best you can, trying to sharpen your message while not hurting the content, style, or, above all, the author’s intent. Beyond increasing or decreasing the number of words and all their lengths, PostScript does make it very easy to change the total number of lines per column or lines per page. So one simple ploy is to simply stretch Fig. 4 – Half of a two-up personal notepad. or squash the ledding between lines. A one point difference either way can give you as much as200 points of adjustment on a three column layout. A little bit of this will usually be unnoticable. But it is far and away the best to keep the stretch or squash the same for columns on any given page or across any two page spread. (602) 428-4073 And you always want to return to whatever "normal" is just as quickly as you possibly can. 51.4 May, 1989 The size and the amount of white compiling routines; automatic file Figure four shows you a two-up space in all your figures can give you and system translators; PostScript notepad that you might easily put the greatest control. Text in figures analog emulations of state variable together. This demonstrates how can be made larger or smaller as filters; and great heaping bunches of trivially easy "bare metal" PostScript needed. You might also stretch or simple beginner stuff. is. The original is in black and a crowd the borders a tad. Anyhoo, figure three is a listing of superb high quality gray. Another obvious ploy is to stretch the stock Adobe error trapper that My step-and-repeat utilities can or squash any title or subhead white prints the page up to the point where automate the two-up layout process. space. I do this in my LaserWriter the error is made and then dumps the After printing several dozen pages, Corner column which absolutely has stack. This is also widely available you clamp them and run two coats of to be oneComputer Shopper page on the various bulletin boards and padding compound along the top high. The bullets between each topic directly from Adobe. Apparently the edge. A final shearing, and you have have programmable white space that code is "not quite" public domain, in a pair of your own high quality and automatically stretches or squashes that Adobe has copyrighted it yet easily customized note pads. for an exactly fit. does seek out the widest possible free Figure five shows you the trivially Two useful tricks that can eat up dissemenation. A free copy has also simple code involved. Note that my lots of white space are the sidebar been added to my PostScript Work in GONZO DL.6, and PS.UTIL.6 must be and theexcerpt . The sidebar is any Progress disk as a user service. persistently downloaded before this words-in-a-box trick that covers an Just what can a beginner do with code can be run. "alike but different somehow" topic PostScript? My desktop publishing Several custom mods that all the that amplifies your main theme or course has given me some suprising desktop students did make last night gives some tutorial background. answers. What the students get is a included breaking the pencil line for The excerpt is a two-rule box with word processor and a couple of my names with descending characters; a key phrase from the main text in- invisible "magic" files that have been substituting hearts, airplanes, and side it in big type. Any excerpts are persistently downloaded. T-squares for the pencil; creating intended to slow down the browsing One of these is my gonzo justify. obscene variations; alternate printing reader and draw him into stopping The second is my PostScript utilities. using all of the available astrobright and actually reading the entire text. And the final one is a nuisance dic- colors; and putting a giant light gray Many of the popular page making tionary inside the utilities that adds Zapf Calligraphic"R" smack in the programs make excerpts very easy to all sorts of easy-to-use commands. middle of the writing area. do. Sadly, excerpts end up grossly You can get a free printed listing Please send me your best Post- overused. Excerpts are also a copout, of these when you phone or write. Script variations on a notepad theme. since the real artwork that should go The listings also have appeared in the There will be all the usual Incredible there takes more skill to produce. back issues ofComputer Shopper and Secret Money Machine prizes and If all else fails, you can throw in are all available ready to run on my all-expense-paid(FOB Thatcher, AZ) some innane block of text with a PostScript Work in Progress disk. tinaja quests for your best entries. "Tell Me All About Copy Fitting" ti- tle or something equally stupid. % Copyright c 1989 by Don Lancaster and Synergetics, Box 809 Thatcher, What is This Month’s % AZ 85552. (602) 428-4073. All commercial rights reserved. Personal use % is permitted so long as this header remains both present and intact. A PostScript Utility? % work in progress disk for Apple, Mac, or IBM is available for $39.50. February sure was a short month. % Requires persistent download of GONZO.DL.6 and PS.UTIL.6 or later. Which means I didn’t quite finish the % Free printed copies on request. Note: \033 = embedded escape. dramatic PostScript speedup stuff I promised you. So, I thought I would gonzo begin ps.util.1 begin nuisance begin printerror stepnrptparams begin ease off and throw in a couple of lighter topics here. We’ll get back to /twonote [1 2 1 395 0 20 20 true 10 false false] def end the heavy stuff next month. /repeatproc {0 0 10 setgrid % 35 57 showgrid By the way, some of the goodies 0 35.5 57 57 1.75 0.8 quickboxpath gsave stroke grestore gsave bestgray currently stuck in the pipe include lightgray 0.65 setlinewidth stroke grestore newpath /font1 that dramatic PostScript speedup that {/NewCenturySchlbk-BoldItalic findfont [2.0 0 0 2.0 0 0] makefont setfont} def completely eliminates page makeup /font2 {/NewCenturySchlbk-BoldItalic findfont [1.6 0 0 1.6 0 0] makefont time; improved curve tracing for such setfont} def /font3 {/NewCenturySchlbk-BoldItalic findfont [1.0 0 0 1.0 0 0] things as engineering graphs and makefont setfont} def /font4 {/ZapfDingbats findfont [7 0 0 5 0 0] makefont charts; auto form-fillers and auto- setfont} def gsave bestgray 0.8 setgray 1 setlinecap 7.6 50.1 mt line2 17 3.8 invoicers that include spreadsheet 55.4 translate -70 rotate 0 0 (\0334/) cl grestore 3 53 (\0332a note from:) cl capabilities; a powerful badge and 10 50.5 (\0331Yodar Kritch) cl 17.7 1.5 (\0333(602) 428-4073) cc} def bumpersticker generator; an exitable (twonote) stepandrepeat and reenterable Diablo letter/legal portrait/landscape emulator; some Fig. 5 – PostScript code for the two-up notepad. improved multiple border procs; new 51.5

Don Lancaster’s A low cost jogger Die cut laser forms Ultra-fast PostScript ASK THE GURU Several GS/OS bugs June, 1989 Apple-authored books

pple has corrected many of combined resources, should shortly a copy of this and many of his other the really bad bugs in their be able to become the seventh best fine programs, but I just haven’t had ImageWriter LQ printer. Apple magazine. a chance to properly review them yet. AEspecially those involving My very favorite Apple magazine, In general, Roger does do first rate the poor printing at the top and the of course, is Tom Weishaar’s great work, although he and I differ very bottom of the page and some of the A2 Central, which recently changed strongly on whether people who use severe noise problems. They are even its name fromOpen-Apple . Number a mouse to process words are or are offering a free exchange for any of two remainsCALL A.P.P.L.E. Even not a few chips shy of a full board. you that previously bought the older though he ceased publication, back At least one of the newSX drum model. This is as close to a total pro- issues and reprints from Bob Sander- recoating techniques actually does duct recall as Apple has ever come. Cedarlof’sApple Assembly Lines still seem to work. A few early reports are Word has it that the long delayed remain available and contain lots of showing eight and even nine usable IIgs upgrade is due "real soon now". goodies not available elsewhere. reloads. ContactLazer Products for More on this when and where I can Two smaller newsletters that are more details. And competition is at tell you all about it. now coming on rather strong are long last driving down the cost of A+ and inCider magazines seem to Ross Lambert’sReboot for beginning newCanon SX and CX cartridges. have merged, with continuity ending Apple users, and his new Sourceror’s Toners Plus does sell brand new SX up on theinCider side. What this Apprentice for all you users of Roger cartridges for a mere$79 . This is the means is that the third best Apple Wagner’sMerlin assembler. best price I have seen so far. magazine and the fourth best Apple By the way, Merlin is now finally I just can not believe that Hewlett- magazine, through synergy and their available for the IIgs. Roger sent me Packard’s lawyers are letting them get away with all their blatant mis- Apple IIe Technical Reference I (hardbound, 408 pages, $24.95) statements of fact in all of their high- Apple IIc Technical Reference I (hardbound, 576 pages, $24.95) ly misleading "Thou shall not refill" diatribes. Besides being ridiculously Apple IIgs Toolbox Reference I (hardbound, 776 pages, $28.95) cheaper, properly refilledCX and SX Apple IIgs Toolbox Reference II (hardbound, 700 pages, $28.95) Apple IIgs Hardware Reference I (hardbound, 312 pages, $24.95) toner cartridges can also be consid- Apple IIgs Firmware Reference I (hardbound, 352 pages, $24.95) erably blacker, far denser, and much Technical Into to the Apple IIgs (paperback, 160 pages, $9.95) more uniform than the originals. I have revised all my gonzo justify Inside Macintosh Volume I (paperback, 550 pages, $24.95) routines once again. We are now up Inside Macintosh Volume II (paperback, 428 pages, $24.95) toGONZO.DL.7 and PS.UTIL.7 . The Inside Macintosh Volume III (paperback, 280 pages, $24.95) latest features now include improved Inside Macintosh Volume IV (paperback, 326 pages, $24.95) simple tabbing, individual character Inside Macintosh Volume V (paperback, 640 pages, $26.95) kerning, a few bug stomps, and the Inside Macintosh Volumes I-III (hardbound, 1240 pages, $79.95) changes that can give us all of the Inside Macintosh X-Reference (paperback, 128 pages, $9.95) PostScript compiling tricks we will Tech Intro to the Macintosh (paperback, 320 pages, $19.95) look at shortly. I’ve also rewritten Programmer’s Into to Macintosh (hardbound, 224 pages, $22.95) the brick wall texture stuff in my per- Designing Drivdrs for Mac II & SE (hardbound, 288 pages $24.95) spective utilities to run ridiculously Macintosh Hardware Reference (hardbound, 380 pages $26.95) faster than before. Write or call for ProDos 8 Technical Reference I (hardbound, 208 pages, $29.95) free printed listings. Apple IIgs ProDOS 16 Reference I (hardbound, 360 pages, $29.95) Let’s see. We gotta cleverly sneak in the usual advertorial here. If you LaserWriter Reference Manual (hardbound, 180 pages, $19.95) are into any traditional IIc and IIe ImageWriter LQ Reference Manual (hardbound, 272 pages, $22.95) programming, check into my Micro ImageWriter II Reference Manual (hardbound, 232 pages, $19.95) Cookbooks, volumes I and II, my HyperCard Script Language Guide (hardbound, 320 pages, $22.95) Enhancing your Apple IIe, volumes I Human Interface Guidelines (paperback, 160 pages, $14.95) and II, theAppleWriter Cookbook , Apple Numerics Manual (hardbound, 320 pages, $29.95) and myApple Assembly Cookbook . I BASIC ProDOS Programming (hardbound, 296 pages, $29.95) do have lots of autographed copies Applesoft Tutorial (hardbound, 304 pages, $29.95) on hand here atSynergetics . And for Applesoft Reference Manual (hardbound, 368 pages, $22.95) PostScript anything, including cus- Fig. 1 – Some Apple Computer authored books. tom work, just give me a call. As always, this is your column and 52.1 June, 1989 you can get tech help and off-the- disk trashing on arbitrary resets. jogging will eliminate most if not all wall networking per the end box. Another bug involves a misprint in unglued pages, and can even elim- Also as usual, all of the names and the originalGS/OS documentation. It inate the need for an edge trim on numbers are gathered together at the turns out that the page zero memory some jobs. Jogging is just about es- end of this volume. locations$5A through $5F are very sential when you are padding your Our really stupendous biggie this much reserved for internal GS/OS perscription forms, notepads, or a month is that I’ve finally gotten my use. These are most definitely not calendar. And machine jogging is far PostScript speedup stuff up to where available for any printer driver use, more fun than forever whapping the I can tell you about it. Later on, I’ll despite the early documentation. page edges with a spoon. show you how your MacII or even a The really bad GS/OS bug of the Uh, it seems I was in K-Mart the lowly386 might now print PostScript month, though, is that Apple requires other day, and they are selling Black almost as fast as you can by using you to sign the papers that you are and Decker Model#7448 finishing AppleWriter on a IIe. certifiably insane before you do use sanders for$24 or so. Lest you scoff at this, please note GS/OS to copy a 5-1/4 inch disk to a Now, just ask any printing equip- that I now am doing book-on-demand 3-1/2 inch one. The GS/OS system, ment salesperson, and they’ll gladly printing of the typical three column, believe it or not,demands that you tell you that one way you can build a 6000 character gonzo justified pages always use anunlocked source disk. $24 sander is to take their $600 jogger including two figures, a header and Otherwise, it will refuse to make the and remove their paper tray and re- footer, with an apparentlyzero page copy and returns an error message place it with a piece of sandpaper. makeready time. The successive self- back to you. On the other hand . . . collating pages pour out of my NTX Outside of the obvious solution of Any More Desktop printer at the full tilt8 PPM rate for avoidingGS/OS like the plague, the the entire book. only sane workaround I can think of Publishing Loose Ends? But first . . . is to initally copy your5-1/4 locked Lots of em this month.Xerox has a original on to a new5-1/4 unlocked new high end copier called the Model What Apple Books intermediate. Then, use this unlocked 50 which has an interesting binding Are Available? intermediate disk to do the actual system built in. It is apparently based Figure one can give you a quick copy to your 3-1/2 inch disk. on those old Cheshire heat tape sys- rundown of the more popular and tems, and their supplies and method easier to find of the Apple Computer Is Jogging Really should be rather easy to adapt to low authored books. Many are published An Aerobic Exercise? end binding needs. byAddison-Wesley . While I do stock Not really, especially if you can The only little problem is that the the white LaserWriter Reference here avoid it. Ajogger is a beastie that highly touted Xerox customer sales atSynergetics , you will find most of some epsilon minus of a printing and service simply does not work. I the others at most larger bookstores. equipment salesperson will charge have sent them over a dozen calls and For newer and more specialized you$300 to $800 for. Jogging is used letters and all I get back are bunches Apple software and books, check out to shake pages down so they can go of the cute little cards asking me to A.P.D.A for a complete listing. into a binder or can otherwise end up please tell them how impressed I was Two other interesting new Apple with smooth edges. Properly done, with their previous non-responses. publications are their free Vertical Markets Directory and their ongoing Community Affairs News. = perforated for response Are There Any = scored for folding More GS/OS Bugs? Lots of them. In fact, it is getting so bad that I have totally run out of adjectives which might adequately describe this ongoing travesty. So, for our first of the three contests this month, please send me a fresh supply of suitableGS/OS adjectives. Please obey all postal obscenity regulations. There will be all the usual Incredible Secret Money Machine books for the top twenty, along with an all expense paid(FOB Thatcher, AZ) tinaja quest (A) Response Mailer (B) Coupon Mailer for two for the very best of all. We have already seen how GS/OS prevents you from ever resetting into Fig. 2 – Two laser-printable Die-O-Perf products. an application and even encourages 52.2 ASK THE GURU As before, the free Kroy Kolor as die cut vinyl letters. More on this that great, but they are definitely samples are available through Randy when I get a chance to test it out. better than some. Bailey at Kroy, while those low cost Meanwhile, for any of you that Die cutting on a laser printer? Why substitutes for the pricey Kroy fusion want to get in ahead of the hoarders, not? We’ll have a complete roundup machines are available from Arlin their#2100900 starter kit does list for on this interesting topic someday. For Shepard over atLazer Products . around$79.95 . here and now, though, check out the Kroy also has another unique new There is a free catalog cleverly Die-O-Perf people who sell all sorts product calledTouchDown . This one disguised as a shopper’s newsletter of pre-cut blanks that are suitable for starts out with your own laser printed calledThe Printer’s Shopper which laser printing. transparency and then creates instant lists an incredible variety of printer Two of my favorites are shown to transfers in black, red, blue, or green. and printshop accessories, especially you in figure two. The unique return These are tougher than the old 3-M stuff of interest to beginning desktop postcard mailers are prescored for a INT materials, but not quite as good publishers. Their prices are not all triple fold and pre-perforated for a return card. And the coupon mailers (outstanding for any local business 1. Let the laser printer run continuously. Every time you power down, the promos) do include eight tear-off font cache and any persistent downloads will get trashed. coupons. The cost is around a nickle 2. Use the latest version PostScript engine and firmware. Each newer each in smaller quantities. version has averaged 30 percent faster than the previous one. How About That Blinding 3. Use the fastest possible comm channel. The fastest is the SCSI hard PostScript Speedup? disk on the NTX. Second fastest is an honest and unburdened 57600 baud serial channel. Note that Appletalk, with its heavy software As all you regular readers know, I overhead, can often end up significantly slower than 9600 baud. am very big on PostScript book-on- demand printing, where individual 4. Persistently download all common templates, justification routines, book copies are produced on a when drawing utilities, font calls, and whatever. Avoid ever carrying anything and as needed basis. I am currently inside a file that can be shared with previous or following files. doing this on three current volumes, 5. Bind all procedures when and where appropriate. This can result in a includingAsk The Guru I , Ask the free ten to fifteen percent speedup of much of your PostScript code. Guru II and Hardware Hacker II , and 6. Use a two-step process where you first get your images printing exactly do have a dozen more books in the the way you want them. Then, use the following steps to speed up reruns works that will be soon produced this for later book-on-demand or other repeat printing . . . way. Naturally, I’ll be happy to send you autographed samples of these at 7. Carefully measure your communications and execution times to find the the going rate. bottlenecks. Use the stopwatch features of my nuisance dictionary At least for me, the new book-on- shown in Ask The Guru II. Note that the balance between execution and demand concept works and works comm time is a continuously moving target that changes with your well. Profitably. Here and now. programming style and your choice of baud rate and engine. For self-collating book-on-demand 8. Eliminate all, or nearly all unneeded comments, spaces, or pretty printing publishing to really be cost effective, from your runtime files. Use the shortest possible variable names. you(1) have to reduce your per-page 9. Try to become just barely baud rate limited. Typically, most of your code toner costs to well under a quarter of will be execution-time limited and should get compiled or else pseudo- a cent per page,(2) you really should compiled for a speedup. Should some code actually baud rate limit, go use a duplex printing engine, and (3) the other way and let the printer use fancier (and slower) PostScript must totally eliminate any and all ex- sequences to shorten your transmitted files. cessive page makeready time. We’ve seen in the past how doing 10. Compile slow portions of your PostScript code by eliminating any your own toner cartridge reloading calculations. For instance, the positioning and justification of fancy text can get you within shouting distance needs only be done once during a compiling step. Return the compiled results to your host for recording. During runtime, use only fixed of(1) and how the latest of Post- constants for positioning and stretching of text. Script engines now offer(2) . The duplex printing can be faked today 11. Rearrange your print-time files so that the all of the main text is printed simply by making a back and a front first, followed by all italic text, followed by all bold text, and so on, so that pass through the machine. So, the each needed font only gets selected once and only once. what really needs attacked is(3) . 12. Use other compiling tricks when and where appropriate, such as the The popular pagemaking programs converting of pixel line remapped images into scanmap files. can take an intolerably long three to five minutes to make up a page. And 13. Avoid compiling anything that makes your runtime textfile so long that the even my gonzo justify routines will transmission time significantly exceeds the execution time. take a half minute or so per page. Fig. 3 – PostScript runtime speedup secrets. The obvious question is "What tricks can we pull to speed up any later 52.3 June, 1989

printing of PostScript jobs? month or two. We saw one57600 baud driver two I have looked into all this rather I’m currently using a57600 baud months ago, and I’ll show you some thoroughly lately and have come up serial communications channel that internal AppleWriter drivers just as with a few surprising results. The goes out the game paddle port of my soon as I’ve completely tested them. bottom line is that PostScript itself is IIe. Because this uses "bare metal" What about AppleTalk? The older very much faster than most people machine language code, the overhead versions of AppleTalk often end up suspect. The apparent slowness is of getting and sending the characters considerablyslower than plain old caused by poor communications, by is essentially zero. Thus, your real honest9600 baud when transferring poorer programming, and by forcing baud rate is a true57600 , including short PostScript files. Especially on PostScript to do things over and over the character grabbing times and all the IIgs, but also on those earlier again that really only need done once overhead and formatting. Macintosh machines. Again, this is or don’t even need done at all. At present, I can reprint a typical % Copyright c 1989 by Don Lancaster and Synergetics, Box 809 Thatcher, AZ 85552. 6000 character, three column gonzo % (602) 428-4073. All commercial rights reserved. Personal use is permitted so long as justified text with headers, footers, % this header remains both present and intact. A work in progress disk for Apple, Mac, and two fairly complex figures at the % Atari, or IBM is available for $39.50. "full tilt"8 PPM printing time of the % Intended for use with my GONZO.DL.7. Free printed copies available on request. LaserWriterNTX . Page after new % May easily be adapted to any justification program using an unbound awidthshow page after new page. Forever. % operator and font names of form font0, font1 font2, etc . . . It still does require two or three % Gonzo compile routines version 7.0 (7 March 89) seconds to make up a complete page. % To use, do a persistent download. On file to be compiled, use a But this can be the same two or three % startgcompile - where compiling is to first begin. seconds of the feeding time available % endgcompile - if compiling is to be stopped (optional) % reportgcompile - where returned code is to be reported to host for recording during a normal print cycle. So you % This program works by opening up a new string dictionary for each font used. The can get a virtually zero page make- % awidthshow operator is intercepted and each single font string is then written to the up time for many typical pages. And % appropriate dictionary. When finished, the full dictionaries are returned to the host those that are not typical can still be % for recording, using a modest compaction that rounds everything to four decimal places printed surprisingly fast. % and eliminates leading or trailing zeros. The 0 yshift and 32 space are suppressed. I’ve summarized some of the key % The output is in the form of n1 n2 n3 n4 (text string) z, where n1 is the horizontal % position in points, n2 is the vertical position in points, n3 is the space stretch, n4 speedup secrets in figure three. The % is the character stretch, (text string) is the message, and z is the decompact proc call. first five tricks might apply to any % The compiled textfile will typically lengthen from 20 to 40 percent, while the run time PostScript file, at any time, on any % will typically be less than 1/20th that of the uncompiled code. machine. The rest of the list applies specifically to pages or files that you /startgcompile {/fontsused (0123456789-=) def /dfontname (dfontx) def /glinenumber 1 def /dictsize 500 def /stall {100 {37 sin pop}repeat} def /createfontdicts {fontsused know you will want to be reprinting a {dfontname exch 5 exch put dfontname cvn dictsize dict def} forall} def /divertawidthshow number of times in the future. {/awidthshow {dup length 0 gt {dfontname 1 fontn putinterval dfontname cvx exec The centermost secret is to get all glinenumber ( ) cvs cvn mark currentpoint 10 index 8 index 7 index mark exch {} forall {dup 32 eq {pop}{exit} ifelse} loop ] dup length 0 gt {] put /glinenumber your communications under control. glinenumber 1 add def}{8 {pop} repeat} ifelse} if systemdict /awidthshow get cvx exec} Most communications on most com- def} def createfontdicts divertawidthshow } def puters take place far slower than you /endgcompile {/awidthshow{ systemdict awidthshow get cvx}def} def think they do, owing to the vastly ex- /reportgcompile{/cropzeros {dup length /tslen exch def tslen 1 gt {/tstring exch def tstring cessive "onion effect" of layer upon 0 get 48 eq {/sst 1 def}{/sst 0 def} ifelse tstring tslen 2 sub get 46 eq tstring tslen 1 sub layer of controlling software. get 48 eq and {/tslen tslen 2 sub def} if tstring sst tslen sst sub getinterval} if} def /trunc {/inum exch def inum dup abs eq {/minus false def}{/minus true def} ifelse /inum inum abs The key rule here is to think "two def inum 0.000001 lt { /inum 0 cvi def}{inum 1000 ge inum 10000 lt and {/inum inum cvi tin cans and a string" for your comm def}{truncprocs} ifelse} ifelse inum minus {neg} if} def /less1K { /mult 1 def 8 {inum mult channel. Anything else will slow you mul 1000 gt {exit}{/mult mult 10 mul def} ifelse} repeat inum mult mul 0.1 add round mult down and will severely penalize you div /inum exch def} def /more10K {/mult 1 def 8 {inum mult mul 10000 lt {exit}{/mult mult 0.1 mul def} ifelse} repeat inum mult mul round mult div 0.01 add cvi /inum exch def} when you are doing book on demand def /truncprocs {inum 1000 lt {less1K}if inum 10000 ge {more10K}if}def /xstrxx ( ) def publishing. Remember that it all has /printchar {xstrxx exch 0 exch put xstrxx print flush stall} def /stall {20 {37 sin pop} repeat to get inside the printer before most } def /stall1 {6 {37 sin pop} repeat} def /dumpstring {(\() print stall flush {dup 92 eq {(\\13) print pop 52} if dup 40 eq {(\\) print} if dup 41 eq {(\\) print} if dup 127 gt {8 (000) of it can be used. cvrs (\\) print} {xstrxx exch 0 exch put xstrxx} ifelse print stall1 flush} forall (\)z\r) print If you can afford one, the add-on flush stall} def /dumparray {/tarr exch def tarr 0 get trunc 10 string cvs cropzeros print ( ) SCSI hard drive for the NTX should print flush stall tarr 1 get trunc 10 string cvs cropzeros print ( ) print flush stall tarr 2 get trunc 10 string cvs cropzeros print ( ) print flush stall tarr 3 get trunc 10 string cvs give you the fastest possible comm cropzeros print flush stall tarr 4 get dumpstring stall} def /printfontname {dinuse cvx exec times. What you do is download all length 0 gt {(\r) print flush stall stall dinuse 1 5 getinterval print flush stall (\r) print of your files onto the hard disk and flush stall} if} def /dinuse (dfontx) def /printgdicts {fontsused {/fxx exch def dinuse 5 fxx put dinuse cvx exec printfontname length 0 gt {0 1 glinenumber {/dn exch def dinuse cvx then transfer them as needed with a exec dn ( ) cvs cvn known {dinuse cvx exec dn ( )cvs cvn get dumparray} { }ifelse} for} suitable supervisor routine. I have yet if} forall } def printgdicts} def to do this, though, and I do suspect things won’t end up quite as fast as Fig. 4 – PostScript gonzo justified text compiler. they really should. More on this in a 52.4 ASK THE GURU because of the onion effect with its % These lines usually go into a persistently downloaded template instead of a header . . . "Hi – How are the wife and your /font0 {/Times-Bold findfont [54 0 0 54 0 -32] makefont setfont} bind def kids?" handshaking overhead. Before /font1 {/Times-Roman findfont [9.75 0 0 9.75 0 0] makefont setfont} bind def you blindly use AppleTalk, be sure /font2 {/Times-Italic findfont [9.75 0 0 9.75 0 0] makefont setfont} bind def and compare it against an honest /font4 {/Times-Roman findfont [9 0 0 9 0 0] makefont setfont} bind def 57600 baud comm direct channel to /z {5 -2 roll moveto 0 32 4 2 roll 0 exch awidthshow} bind def % compile decompacter find out how severe your AppleTalk % Here is the actual compiled text. Run it four times back-to-back for a fair test. Your speed penalty will be. % second, third and fourth passes should run at the "wide open" NTX engine speed, Regardless of how you communi- % provided your computer can communicate as fast an as Apple IIe . . . cate, be sure to measure the de-facto font0 "click to clunk" transmission times. 60 627.1 0 .2(W)z You are certain to find bunches of font1 rude surprises along the way. 116 627.1 1.672 .2(hat is the future of the)z 116 616.6 2.5 .3272(Apple IIgs? Stan Veit)z Once you have gotten the fastest 116 606.1 .2517 .2(and I have been kicking)z possible transmission times, the next 116 595.6 .924 .2(this around, and we are)z obvious rule is to never send any- 60 585.1 1.131 .2(getting a few different answers from)z 60 574.6 1.25 .2(several different sources.)z thing over the channel that does not 70 564.1 2.5 .2736(At present, the unit sales of the)z need to be sent. Persistent downloads 60 553.6 .4415 .2(IIgs are pretty near the same as those)z of such things as justification and 60 543.1 .6003 .2(of the)z drawing routines, templates, and so 120.6 543.1 .6003 .2(, at four percent of the)z 60 532.6 1.004 .2(total computer market. These figures)z on, are usually a very good idea. It is 60 522.1 .858 .2(are from)z usually far better to "fill" your printer 176.9 522.1 .858 .2(, a pretty)z with needed routines once in the 60 511.6 .7134 .2(much pro-IBM trade journal that is a)z 60 501.1 .01079 .2(great way to keep score of just who is)z morning, rather than towing along 60 490.6 1.25 .2(doing what to whom.)z individual and identical routines with 70 480.1 2.5 .2424(Apple is sending you conflicting)z each textfile. 60 469.6 1.073 .2(signals. They have just upgraded the)z 60 459.1 2.5 .2583(IIgs operating system and are now)z If you definitely know that you 60 448.6 .1191 .2(agressively hiring a big bunch of new)z will want to reprint your file three or 60 438.1 2.5 .2932(top-quality Apple II people. Apple)z more times in the future, then you 60 427.6 1.141 .2(IIc, IIe, and IIgs end user and devel-)z 60 417.1 .6233 .2(oper support is far and away the best)z can take some additional compiling, 60 406.6 1.494 .2(it has ever been. The same goes for)z calculating and formatting steps that 60 396.1 2.5 .2938(Apple’s own publications and tech)z will further reduce all your actual run 60 385.6 1.041 .2(info. Those new "big machine" prod-)z 60 375.1 2.293 .2(ucts from third parties, such as the)z times. The theory is that a little time 60 364.6 .9473 .2(improved)z spent now can save you bunches in 152.2 364.6 .9473 .2(,)z the future. 71.43 354.1 .7139 .2( and the great new)z Before you try this, you should be 177 354.1 .7139 .2( graphics)z 60 343.6 1.577 .2(environment are coming on-line and)z certain that you do have the exact 60 333.1 1.25 .2(making a big splash.)z images you really are after. As with 70 322.6 .5474 .2(On the other hand, Apple has been)z any compiler, you must do all of your 60 312.1 .2283 .2(witholding the IIgs upgrade, and they)z 60 301.6 2.5 .466(purposely crippled that recent IIc)z editingbefore you compile and not 60 291.1 .7761 .2(upgrade by keeping AppleTalk and a)z after. Get it right first. 60 280.6 1.407 .2(real time clock off it. And the intro-)z In general, you can compile into 60 270.1 0 .2(duction of a Mac)z 151.5 270.1 0 .2( is imminent.)z runtime textfiles by running all your 70 259.6 1.147 .2(As I see it, there is only one fatal)z files and then suitably modifying all 60 249.1 .002357 .2(flaw in the IIgs. And that lies in all of)z them with PostScript intercepting and 60 238.6 1.136 .2(the monumental costs, the incredible)z 60 228.1 2.102 .2(time delays, rude surprises, and the)z compiling procs, and then returning 230 627.1 .3051 .2(inexcusable frustration levels that are)z the modified files back to your host 230 616.6 2.5 .2693(involved in that)z for recording as a new runtime text 326.5 616.6 2.5 .2693( development)z 230 606.1 .6595 .2(environment. If you have to go to all)z file. The compiling process can be 230 595.6 .5284 .2(that innane nonsense, then you might)z partially or totally automated. This 230 585.1 1.197 .2(as well be doing it all on a Mac. At)z depends on your programming style 230 574.6 1.141 .2(present, any serious IIgs commercial)z and the type of documents you wish 230 564.1 .13 .2(software development appears to be a)z 230 553.6 1.319 .2(sucker bet because of the sheer frus-)z to book-on-demand produce. 230 543.1 1.25 .2(tration problems involving)z Several guidelines here. Eliminate 366.2 543.1 1.25 .2(.)z all or nearly all of the comments and 240 532.6 2.5 .2123(The long term handwriting is on)z 230 522.1 .3816 .2(the wall. Apple now has a secret new)z pretty printing in your run-time files. 230 511.6 1.806 .2(machine in the works known as the)z And let your runtime files work with 299.3 501.1 1.531 .2( that runs both Mac)z answers, rather than by doing actual 230 490.6 1.25 .2(and IIgs software side by side.)z calculations. There is no point what- Fig. 5a – Incredibly fast compiled PostScript text example . . . soever in making your justification calculations each and every time you 52.5 June, 1989 time you print. Instead, you do it once during your compiling step. 240 480.1 .1388 .2(Actually, if you think about it for a)z In a runtime file, you should be able to print anything in any order. 230 469.6 1.573 .2(while, the day of the custom operat-)z

So, it makes sense to only select each 230 459.1 .4004 .2(ing system is nearing an end. Instead,)z font once. You first print all of your regular text, then all of your italic 230 448.6 .2462 .2(you just take lots of)z text, then all the bold text, and so on. 336.1 448.6 .2462 .2( and a)z Let us look at an example of com- piling some fancy justified text for a 230 438.1 1.472 .2(chip that’s running like a bat out of)z dramatic speedup. Figure four shows 230 427.6 1.407 .2(Cupertino, and then provide suitable)z you that PostScript code I use to compile my gonzo justification rou- 230 417.1 1.227 .2(firmware microcode that temporarily)z tines. You can easily adapt this to 230 406.6 1.619 .2(downgrades it into your choice of a)z any open justification scheme whose awidthshow operators can be temp- 253.5 396.1 .7952 .2(, a)z orarily unbound. 291 396.1 .7952 .2(, or a)z There are three newer operators here, known asstartgcompile , end- 340.5 396.1 .7952 .2(. And then)z gcompile, and reportgcompile . Let us 230 385.6 .7849 .2(runs anything by anybody. Real time)z look at each one in turn . . . Thestartgcompile gets used to 230 375.1 1.25 .2(or even faster.)z identify where in your textfile you 240 364.6 2.5 .2194(Similarly, disk drives are getting)z want to begin compiling. What it does is first create a new dictionary 230 354.1 1.471 .2(smarter and more flexible. A "multi-)z for each font to be used. We do this 230 343.6 1.407 .2(sync" drive that can accept any past)z because we want to sort the all font selections into dictionaries, so that all 230 333.1 .3217 .2(or present media shouldn’t be all that)z the bold text can be done at once and 230 322.6 2.5 .2611(far away. Interestingly enough, the)z so on. Another reason to do this is so that we can report everything at once, 230 312.1 2.5 .3839(new)z rather than having to do so on the fly. 280.2 312.1 2.5 .3839( operating system does)z Theawidthshow operator then gets diverted. Each time the awidthshow 230 301.6 1.244 .2(include a)z comes up, we grab the needed par- ameters of the horiontal position, the 288.5 301.6 1.244 .2(, or)z vertical position, the char stretch, the 250 291.1 .1279 .2( code that, in theory, will let you)z space stretch, and the string to be printed and dump them to the correct 230 280.6 1.483 .2(read from or to any disk file in any)z dictionary for the current font in use. 230 270.1 1.25 .2(format, crossing any boundary.)z Then the "real"awidthshow is used to continue with the original imaging 240 259.6 2.294 .2(Oh yeah. There is a stupidity on)z and printing process. 230 249.1 .9998 .2(the new IIgs version)z The actual text messages are saved asASCII character numeric arrays, 362 249.1 .9998 .2( oper-)z rather than as strings. This eliminates 230 238.6 2.153 .2(ating system that is driving all you)z the tendency of PostScript strings to arbitrarily change as their defined 230 228.1 2.5 .3155(newcomers up the wall. At a first)z linkings change. 400 627.1 2.5 .2095(glance, it appears as if there is no)z The optionalendgcompile operator is used if you want to stop compiling 400 616.6 2.5 .4451(support whatsoever for)z at some point in your text. In general, 531.3 616.6 2.5 .4451( inch)z some things should be compiled and some should not. For instance, the 400 606.1 2.5 .4777(disk drives in this new operating)z present code does not keep track of 400 595.6 2.5 .3329(system. Actually, the needed)z saves or translates or any wholesale font changes. 400 585.1 2.213 .2(drivers are buried in a subdirectory)z When all compiling is completed, 400 574.6 2.406 .2(named)z and usually at the exit point of your document, you activate reportgcom- 515.3 Fig.574.6 5b 2.406 – Compiled.2(. A copy)z PostScript text example, continued . . . pile. This reads the font dictionaries 400 564.1 1.791 .2(of the drivers have to be moved up)z 52.6 400 553.6 1.25 .2(into)z

538.5 553.6 1.25 .2(.)z

410 543.1 .3153 .2(Full tech details on)z ASK THE GURU in sequential order, and returns only the actual compiled text returned to the space, the0 for the y character the absolute minimum of information the host for recording. The code gets stretch, and the0 for the y space needed to put each message exactly slightly compacted by dropping any stretch. As shown at the beginning of where it belongs on the final page. trailing spaces, by rounding to four figure five, all of the needed decom- Your host must be able to record decimal places (which is more than pacting can be quickly done with a all this returned information into a enough for fixed text positioning), by few simple and extremely efficient suitable textfile. AppleWriter’s [Q]-I dropping any unneeded leading and stack manipulations. [esc]-R modem works well here. trailing zeros and by omitting the Yes, your compiled text will get Figure five shows you a sample of always-repeating constants of32 for longer by twenty to forty percent, compared to the original. But since 400 249.1 2.5 .2889(disk drives, lack of color, and the)z you gain20:1 or more in processing 400 238.6 0 .2(market focus that is far too narrow.)z time with your compiling step, the 410 228.1 1.348 .2(Apple has now released their new)z final page will print much faster. A 536.8 217.6 2.5 .3555(. In-)z 400 207.1 2.338 .2(cluded are complete lists of all the)z lot of textfile overhead also tends to 428.3 196.6 2.235 .2( and the)z disappear during compiling, partially 505.3 196.6 2.235 .2( commands,)z 400 186.1 1.108 .2(secrets of hard disk access, interface)z offsetting the longer results. 400 175.6 2.073 .2(details, the works. I do have a few)z As a general rule, you should try 400 165.1 .8286 .2(copies in stock here at)z and end up just barely baud rate 545.2 165.1 .8286 .2( if)z 400 154.6 1.25 .2(you need one.)z limited. If you are still processing- 410 144.1 2.5 .3539(Speaking of which, we do have)z time limited, then you should try ad- 400 133.6 1.642 .2(autographed copies of volume I and)z ditional compiling tricks. If, on the 400 123.1 1.79 .2(volume II of)z 516.6 123.1 1.79 .2( in stock)z other hand, your textfiles ever do in 400 112.6 1.271 .2(now, as well as volume II of all my)z fact end up badly baud rate limiting 475.6 102.1 1.424 .2( stuff. And, if you)z 400 91.6 .4401 .2(need the very latest and the very best)z you, then you go back and let your 400 81.1 .4493 .2(of all my PostScript goodies, do look)z runtime PostScript do more work in 400 70.6 1.25 .2(into my)z exchange for a somewhat shorter file. 511.1 70.6 1.25 .2( disks.)z 410 60.1 1.627 .2(As per usual, this is your column)z Yes, it is a delicate balance. One font2 that depends on you, on your comm 99.25 522.1 .858 .2(Computer Reseller)z speed, the engine, and the version of 102.6 364.6 .9473 .2(AppleWorks)z PostScript you are using. But know- 158.4 364.6 .9473 .2(PC Transpor-)z 60 354.1 .7139 .2(ter)z ing and keeping that balance can 230 501.1 1.531 .2(Brooklyn Bridge)z dramatically speed up all your book- 307.4 301.6 1.244 .2(File System Trans-)z 230 291.1 .1279 .2(lator)z on-demand printing jobs. 464.5 532.6 1.25 .2(APDA)z You might like to use figure five 464.7 522.1 2.5 .3108(Hewlett-Packard)z as a timing standard for comparison. 400 217.6 2.5 .3555(LaserWriter Reference Manual)z 400 196.6 2.235 .2(Diablo)z To demo this properly, create four 470.1 196.6 2.235 .2(LaserJet)z repeating copies into a single textfile. 498 165.1 .8286 .2(Synergetics)z Then measure the execution time of 459.2 123.1 1.79 .2(Ask the Guru)z 400 102.1 1.424 .2(Hardware Hacker)z the second, third, and fourth pages. 436.6 70.6 1.25 .2(Work in Progress)z Note that each page is being built up font4 from scratch. 87.51 543.1 .6003 .2(IBM XT)z If you return to your host before 152.7 354.1 .7139 .2(GEOS)z 132.2 270.1 0 .2(K-12)z the last page prints, then you will be 305.7 616.6 2.5 .2693(APW)z either PostScript speed limited or are 345.6 543.1 1.25 .2(APW)z 315 448.6 .2462 .2(RAM)z at the "wide open" engine speed. If, 364 448.6 .2462 .2(RISC)z instead, you do not return to the host 230 396.1 .7952 .2(80386)z untilafter the last page starts feed- 267.5 396.1 .7952 .2(65832)z 317 396.1 .7952 .2(68030)z ing, then you are baud rate limited. 252.7 312.1 2.5 .3839(GS/OS)z To tell whether you are running at 272.4 301.6 1.244 .2(FST)z NTX 320 249.1 .9998 .2(4.0)z full speed on a , set up a repeat 335.5 249.1 .9998 .2(GS/OS)z printing of blank pages by using a 510.1 616.6 2.5 .4451(5-1/4)z /#copies 6 def showpage, open your 534.5 595.6 2.5 .3329(5-1/4)z 432 574.6 2.406 .2(/TOOL.DIRECTORY)z lower exit tray and make a mark at 419.9 553.6 1.25 .2(/SYSTEM/SYSTEM.DRIVER/)z the previous page edge position at the 492.4 543.1 .3153 .2(GS/OS)z instant the next page starts its feed. 539.9 459.1 .7343 .2(H-P)z 471.8 406.6 2.272 .2(III)z On the Apple IIe using modified 512.6 396.1 2.5 .4509(CD)z AppleWriter with an internal 57600 517.8 280.6 1.618 .2(CD-ROM)z baud serial driver, this compiled test showpage file does in fact print at the full speed Fig. 5c – Compiled PostScript text example, concluded. with zero apparent page makeready. How well does your computer do? 52.7