+*+*+*+*+*¢ YOUR OTHER COMPUTER¢ by John Picken GCACE¢ from PSAN April 1990¢ (Reprinted with permission and with¢ THANKS by the OL'HACKERS ATARI¢ U.G.Inc., Oceanside, NY¢¢ Do you neglect your other computer --¢ the one at the end of the printer¢ cable? Today's low cost, dot matrix¢ printers contain at least one¢ microprocessor, a ROM with multiple¢ character sets, and sufficient RAM¢ for buffers and user designed¢ characters. This makes them computers¢ -- in fact it makes them pretty¢ powerful text processors. The¢ majority of owners, however, rarely¢ do anything with their printers that¢ can't be done as part of some pre-¢ packaged software.¢¢ A few years ago, you couldn't gain¢ much by learning to talk directly to¢ your printer -- you could get¢ commercial or PD software to exploit¢ nearly all of its features. But¢ improvements in printer ROM's have¢ given the latest models capabilities¢ that were unknown when programs such¢ as "The PrintShop" and even some of¢ the most recently released word¢ processors were authored. If you want¢ to access these features, there's no¢ way around the necessity of learning¢ how to talk to your printer.¢¢ Talking to your printer is not a¢ terribly complex task. Unfortunately,¢ however, many printer manuals appear¢ to have been written by the same¢ people who wrote the "manuals"¢ packaged with the 800XL. While it is¢ possible to puzzle through them,¢ assuming you have some knowledge of¢ BASIC (MicroSoft variety), it isn't¢ easy. To make matters worse, I'm not¢ sure that the authors of some of¢ these manuals have much knowledge of¢ BASIC (ANY variety).¢¢ Assuming you want to learn to control¢ your printer, what can you do about¢ it?¢ First, read all/anything you can lay¢ hands on concerning printers. My¢ printer is a Roland but I have picked¢ up tips from manuals for both Apple¢ and Star printers. The "Epson Printer¢ User's Handbook", published by¢ Ballantine Books with a cover price¢ of $9.95 (US) is a good place to¢ start, but it's only a start: the¢ Raven (and its Panasonic equivalent,¢ the KX-P1180) has many features not¢ mentionned in the book and lacks a¢ few that are.¢¢ Don't forget computer magazines. It¢ doesn't imply disloyalty to your¢ favourite brand to read magazines¢ written for other makes of computer.¢ Regardless of computer brand, the¢ odds are that the printers referred¢ to can be and are used with Atari¢ systems.¢¢ There are two other important ways to¢ learn how to talk to your printer.¢ The first is to ask questions --¢ that's what user groups are for! The¢ other method, one you will have to¢ use at some point, is¢ experimentation. Flash up the¢ printer, sit down with your printer¢ manual and start trying out ideas.¢¢ Here's a few hints to get you started¢ or to stimulate more ideas. All are¢ based on my experience with various¢ Roland and Panasonic printers. They¢ should work on most Epson compatible¢ units depending on the printer¢ features included.¢¢ HINT #1: Read and re-read the manual¢ to ensure you know all the¢ implications of each command you wish¢ to use: Some commands cause loss of¢ the data in the print buffer (eg. a¢ margin change); others effect a¢ carriage return; some change page¢ formatting settings (tabs, etc.); and¢ some may even be ignored depending on¢ previous commands. The only way to¢ learn to make effective use of the¢ various commands is to try them out¢ in different combinations and¢ sequences.¢¢ HINT #2: None of the sample programs¢ in the Roland manual work with 8-bit¢ machines -- even after you change the¢ string definitions to Atari format.¢ But, if you OPEN a channel and¢ replace the LPRINT's with PRINT #,¢ the samples work correctly. The¢ lesson here is: learn enough BASIC to¢ be able to send output to the printer¢ without use of LPRINT. Depending on¢ the computer and the BASIC used,¢ LPRINT produces results ranging¢ anywhere from what you want to the¢ totally unpredictable. From what I've¢ read, it appears this is more¢ important with 8-bit's than it is¢ with ST's and up.¢¢ HINT #3: Leave your printer's DIP¢ switches in the "as shipped"¢ condition and leave the exterior¢ switches in the "Standard" or¢ "Program" mode -- you get better and¢ more precise control through¢ software. With 8-bit computers, this¢ advice also applies to any switches¢ on the printer interface (another¢ manual to read -- groan).¢¢ HINT #4: If you're using a word¢ processor and not getting the results¢ you want, check the program¢ documentation to ensure it's capable¢ of doing what you're asking and that¢ you're asking correctly. (Proper¢ commands and a proper printer¢ "driver" or "CNF" file.) Then try the¢ "Print to disk" option. This allows¢ you to examine the actual output¢ going to the printer using a sector¢ editor, a screen dump of the file,¢ etc. On the 8-bit, a good way to use¢ this technique is with TextPro: you¢ "print" to a disk or RAMdisk file and¢ then load the new file back into¢ TextPro.¢¢ HINT #5: Experimenting can take a lot¢ of paper, especially if you're¢ playing with page formatting. Cheap¢ paper is not necessarily a bargain¢ here. Lightweight paper is less¢ expensive, but you can normally only¢ use one side. The extra few dollars¢ spent on 20 lb. paper are worth it¢ when you consider that you can¢ usually use both sides, if not for¢ printing, then at least, as "scratch"¢ paper. Also, you can save a lot of¢ paper (or a lot of rewinding) by¢ ending a file with an "Off Line" or¢ "Remote Deselect" command (19). This¢ causes the printer to quit¢ immediately -- before a word¢ processor can issue a "Form Feed".¢ You'll then have to issue an "On¢ Line" (17) command or re-boot the¢ printer before its next use.¢¢ GRAPHICS: Without getting into "Bit¢ Image Graphics", it is possible, with¢ Roland and Panasonic printers, to use¢ character graphics. The Raven allows¢ you to switch between Italic and¢ Graphic character sets on the fly. In¢ fact, it is possible to use both at¢ once: you enable the Graphic set and¢ get your graphics by sending bytes¢ greater than 127 while you can still¢ obtain italics using the ESC 4¢ sequence. With older models, you¢ might have to set the DIP switches¢ and put the printer into "IBM" mode.¢ This entails writing a new printer¢ driver for your word processor and¢ sacrificing the use of italics, but¢ the graphics can really dress up the¢ output.¢¢ This is an area where you have to be¢ familiar with documentation. For¢ example, PaperClip will not allow you¢ to enter inverse (greater than 127)¢ bytes, so how do you include¢ graphics? Simple, the printer has¢ commands to force the most¢ signifigant bit (msb) either high or¢ low and another to tell it to receive¢ all bytes as sent. With PaperClip,¢ set one of the four "user definable"¢ commands in the CNF to enable¢ graphics and set the MSB high. From¢ then on, all normal bytes will print¢ as graphics until you use a second¢ "user definable" command to receive¢ the bytes as sent.¢¢ TEXT PROCESSING: Ever dump a text¢ file to the printer direct from DOS¢ or from a terminal program? If you¢ did, you probably weren't overly¢ ecstatic with the output: margins¢ only 1/4" wide, words broken at the¢ end of lines, etc. If you want better¢ results, you usually end up loading¢ the file into a word processor and¢ formatting it. How would you like to¢ be able to dump files directly to the¢ printer and have the results come out¢ already formatted with word wrap and¢ proper margins on all four sides?¢¢ It's easy if your printer includes¢ commands for perforation skip and¢ auto justification. The following¢ program produces a short file that¢ can be sent to the printer prior to a¢ dump. RUN it once and save the file¢ it produces. To use it, set the print¢ head at the perforation, then COPY¢ PRINTER.DAT to the printer before you¢ send it a text file. Your printer¢ will output right justified text with¢ 1" margins all around (the printer¢ handles the pagination), with word¢ wrap, and in highly readable,¢ proportional text. The program is in¢ Atari BASIC, but the DATA statements¢ can be just as easily used with any¢ variety of BASIC, 8-bit or ST.¢¢ 10 OPEN #1,8,0,"D1:PRINTER.DAT"¢ 20 TRAP 60 Just loop 'til¢ 30 READ BYTE out of data¢ 40 PUT #1,BYTE error occurs¢ 50 GOTO 30¢ 60 END¢ 70 REM ---------------------------¢ 100 DATA 17,13,13,13,13¢ 110 DATA 27,64,27,77¢ 120 DATA 27,108,9,27,81,87¢ 130 DATA 27,112,1¢ 140 DATA 27,97,3¢ 150 DATA 27,67,66¢ 160 DATA 27,78,12¢ 170 DATA 27,107,0¢ 180 DATA 27,120,0¢¢ Here's the explanation for the bytes¢ in the DATA lines:¢ 100 We start with an "On Line"¢ command (just in case) and four¢ carriage returns (if the 13's don't¢ work with your 8-bit interface,¢ change them to 155's).¢ 110 Next we issue a "Reset" just to¢ clear any previous settings and¢ select "Elite" or 12 cpi. (Makes it¢ easier to calculate the 3/4" needed¢ below).¢ 120 Now, set left and right margins¢ at 3/4" each. With standard paper,¢ this produces actual margins of 1".¢ 130 We enable Proportional print¢ (this overrides Elite but doesn't¢ change the margins).¢ 140 Now we select right-justified¢ output which ensures word wrap and¢ microspacing. Note that this command¢ always produces a carriage return.¢ 150 Designate page length of 66¢ lines. This is not done for length¢ since 66 is the default, but it is¢ needed to reset the printer's top of¢ page indicator. Reset would also do¢ this but would cancel our previous¢ commands.¢ 160 Here we enable a 12 line (2")¢ skip perforation which produces the¢ 1" vertical margins.¢ 170 This command selects one of four¢ NLQ fonts. The final byte in this¢ line can be 0 (default), 1, 3, or 6.¢ If your printer only has a single NLQ¢ font, just omit this line. (The TRAP¢ technique ensures we don't have to¢ count bytes).¢ 180 The final command selects NLQ.¢ The last byte can be 0 for "OFF" or 1¢ to enable it. Optionally just skip¢ the line.¢¢ It's easy to modify the left and¢ right margins -- just remember that,¢ with standard paper, you always have¢ 1/4" on either side to start no¢ matter what you do. But what about¢ the top and bottom margins? The trick¢ is to get the print head down to the¢ first line we want to print on. Then¢ RESET THE TOP OF PAGE INDICATOR¢ BEFORE DESIGNATING A SKIP PERFORATION¢ VALUE. The skip value must be equal¢ to twice the vertical margins. So for¢ 2" margins, we'd have to add six¢ carriage returns and designate a skip¢ perforation value of 24 lines (4").¢ It's easier than it sounds; play with¢ it.¢¢ CONCLUSION: Since I've begun¢ experimenting with the various¢ printer features, I've found I get¢ better output than I can with any¢ word processor. The techniques¢ outlined above can be most¢ effectively used with a program such¢ as TextPro which allows you to insert¢ and edit printer commands directly in¢ the text. This means you can't use a¢ word processor to "Print" since it¢ would confuse the commands with¢ printable characters; instead you¢ "Save" to a file and then "Copy" it¢ to the printer or even "Save"¢ directly to the printer. I think if¢ you try some of the ideas here you'll¢ be pleasantly surprised -- the¢ operative word is "try".¢¢ +*+*+ end +*+*+*¢