home *** CD-ROM | disk | FTP | other *** search
- "Fighting with Lasers"
- by Bryce Nesbitt
-
- * Copyright 1988 Commodore-Amiga, Inc.
- *
- * Executables based on this information may be used in software
- * for Commodore Amiga computers. All other rights reserved.
- * This information is provided "as is"; no warranties are made. All
- * use is at your own risk. No liability or responsibility is assumed.
-
-
- This article goes over some of the common problems you may
- encounter when hooking an Amiga computer up to a PostScript(R)
- compatible laser printer. As a bonus I'll show you how to
- significantly speed up printer communication. The article is
- based on laser printers made by Apple, NEC and A.S.T., but the
- instructions apply to most PostScript printers.
-
- We recommend the use of a serial (RS-232 compatible) interface
- for use with PostScript. PostScript is bi-directional; the
- printer can send error messages and other information back to the
- host. While the Amiga's parallel port is also bi-directional,
- the parallel port on a typical laser printer will not be. With
- the use of the techniques presented in this article, the serial
- interface can be set to speeds matching those of the parallel
- interface.
-
- The required cable is quite simple. Wire the two serial
- interface connectors as follows:
-
-
- computer printer
- 2 3
- 3 2
- 7 7
-
- The preferences serial port parameters should be set to 8 data
- bits, 1 stop bit, Xon/Xoff handshake, no parity and either 1200
- or 9600 baud (depending on the setup of your printer). On most
- printers the 1200 baud setting is non-adjustable, while the 9600
- baud setting is fully programmable. Set the printer and Amiga to
- 1200 baud if you are having communication difficulties.
-
- One very common problem is the inability to print complex
- documents to the printer. When a simple document is printed, it
- works fine. When a complex document is printed, the printer
- produces no output. Chances are this is due to a handshaking
- problem and can be corrected by matching handshake between the
- Amiga and the printer.
-
-
- Talking to the printer
-
- Once you have the cable ready, it is time to check the
- handshaking. Using a text editor such as "ed" or "notepad",
- prepare the following PostScript program:
-
-
- /Helvetica findfont 20 scalefont setfont
-
- 40 200 moveto
-
- statusdict begin
- 25 sccbatch
- (The Options number is ) show
- 10 string cvs show
- (. The baud rate is ) show
- 10 string cvs show
- (.) show
- end
- showpage
-
-
- From the CLI, copy the resulting text file to the serial port
- with a command such as "copy textfile ser:". The printer should
- print a sheet of paper. If nothing seems to happen after 30
- seconds, cycle the power to the printer, wait, and try again.
- The output should look like this:
-
-
- The Options number is 0. The baud rate is 9600.
-
-
- If your Options number is in the range of 0-3, you probably are
- ok. If it is in the range of 4-7, you definitely have a problem,
- and must make a change for reliable operation with the Amiga.
- The Options can be interpreted as follows:
-
- 0 or 4 Ignore parity
- 1 or 5 Check for Odd parity
- 2 or 6 Check for Even parity
- 3 or 7 No parity
-
- Codes 0-3 specify Xon/Xoff handshake. Codes from 4-7 indicate
- "DTR" handshake (DTR goes low when the printer's buffer is full).
- For use with the Amiga, you should specify mode = 0. Higher
- numbers may be used by some printers, but 0 should be the correct
- setting for the Amiga.
-
-
- Setting the numbers
-
- Some printers have switches or front panel controls for the
- options and baud rate, in this case consult the manual for the
- printer. Other printers require a PostScript program
- like the one given below. Replace BAUD and OPTIONS with the
- numbers you wish to set.
-
-
- serverdict begin 0000 exitserver
- statusdict begin
- 25 BAUD OPTIONS setsccbatch
- end
-
-
- WARNING: The EEPROM device that stores baud and options settings
- will wear out after about 10,000 settings. Do NOT change the
- settings more often than necessary! The settings made by this
- program are permanent, even if power to the printer is turned
- off.
-
- After sending the program, either send a CTRL-D to the printer,
- or wait 30 seconds for the changes to take effect.
-
-
-
- Approaching the speed of light
-
- The 9600 baud default of most laser printers is not very fast.
- Printers with PostScript 38.0 and above can be set to higher baud
- rates. See your printer manual for the exact list of baud rates
- supported. Typical legal values are: 1200, 9600, 10473, 11520,
- 12800, 14400, 16457, 19200, 23040, 38400 and 56700.
-
- 19,200 baud is the recommended speed for use with the Amiga.
- This speed can be set with the same PostScript program that sets
- the Options number.
-
-
- Going interactive
-
- Copying files to SER: is a limited and primitive way of talking
- to the printer. If you wish to experiment with PostScript, it is
- much better to use PostScript's interactive mode. Any terminal
- emulator or modem program should work for this application. Set
- the baud rate, parity and stop bit settings to match those of the
- printer, then follow the instructions:
-
- Type one CTRL-D to the printer (hold "CTRL" and press "D"). This
- will end any current job the printer is working on. If the
- printer is an Apple LaserWriter, the flashing activity light
- should stop.
-
- Next type the word "executive" followed by a return. If all
- works well you will be in PostScript's interactive mode, and
- should see an appropriate copyright message. To read out the
- current settings, type the following (What you type is rendered
- in boldface, what postscript types back is in courier):
-
- ^D
- executive
- PostScript(r) Version 47.0
- Copyright (c) 1984, '85, '86, '87 Adobe Systems Inc.
- Copyright (c) 1981 Linotype All Rights Reserved.
- PS>
- PS>statusdict begin
- PS>
- PS>25 sccbatch
- PS>=
- 0 ;<- mode byte
- PS>=
- 9600 ;<- baud rate
- PS>
- PS>end
- PS>quit
- ^D
-
- This sequence prints out the Options and baud rate just like the
- previous program.
-
- Description of the code: The "statusdict begin" informs
- Postscript you wish to access functions from the special status
- dictionary. The "25 sccbatch" line first pushes the number 25 on
- the stack, then executes "sccbatch" (25 is a parameter to
- sccbatch, indicating you want information about the 25 pin RS-232
- port). sccbatch will leave two numbers on the stack. The topmost
- will be the serial mode byte, the next will be the baud rate.
- The "=" command reads the top number from the stack and prints it
- to your terminal. In this case, the printer was configured for
- mode 0 and a baud rate of 9600.
-
-
- You can multitask "your favorite editor" with the terminal
- program. Prepare the PostScript file in the editor. To test,
- send the file to the printer with the "send ASCII" option of the
- terminal program.
-
- Typing CTRL-T at any time will produce a status report from the
- printer. CTRL-C will abort any currently executing job.
-
-
-
- Fun With Postscript
-
- No article about PostScript is complete without a gratuitous
- typesetting example. Here's mine:
-
-
- /showit %stack: (string)
- {0 0 moveto show} def
- /oshowit %stack: (string)
- {true charpath stroke} def
-
- /Helvetica findfont 100 scalefont setfont
- 150 150 translate
-
- .90 -.10 0 {setgray (Amiga) showit 10 rotate} for
-
- 1 setgray (Amiga) showit
- 0 setgray 0 0 moveto (Amiga!) oshowit
-
-
- References
-
- Adobe Systems, Inc. PostScript Language Reference Manual.
- Addison-Wesley, Reading, Mass., 1985.
- Adobe Systems, Inc. PostScript Language Tutorial and Cookbook.
- Addison-Wesley, Reading, Mass., 1985.
- PostScript is a registered trademark of Adobe Systems, Inc.
-