Xerox CorporationPalo Alto Research Center3333 Coyote Hill RoadPalo Alto, California 94304(415) 494-4390XEROXMonday, October 19, 1981.Al Putoff, Technical SpecialistRamtek Corporation2211 Lawson LaneSanta Clara CA 95050Dear Mr. Putoff:As per our conversation of last Friday, I am enclosing a recent revision of my list of difficultiesI've had with interfacing the Ramtek 4100 ColorGraphic Printer. I believe this information maybe useful to your engineering staff, and I would appreciate your forwarding this letter to theresponsible engineers. I would be most appreciative of any comments or reply to any of thetechnical points raised herein. And I would certainly be happy to discuss any of these pointsfurther should your engineering staff wish to contact me directly.Sincerely,Richard C. PascoMember of Research Staff]hup]g7]e]d]c {Xq3rXH6 UM S RE P JGX EH DO B*4 A E ?W >B/9T /1/0_:0@9Ty2Last Revised: October 19, 1981 2:30 PMFiled on: [Indigo]RamtekPlotter>RamtekProblems.BravoThe following is a list of problems I've had interfacing our Ramtek 4100-01 Colorgraphic Printer,and my recommendations for changes (to the manuals, hardware, or firmware) to prevent othersfrom experiencing similar problems.Richard PascoXerox Palo Alto Research Center3333 Coyote Hill RoadPalo Alto CA 94304(415) 494-4390DocumentationI have received three documents with my 4100 printer: [1] A ``Preliminary OperatorsManual'' dated February 3, 1981, [2] A ``User Guide'', publication Number 8000037-01, Rev. A,and [3] A ``Hardware Reference Manual and Field Service Guide'', Publication Number 8000037-01, Rev. A, dated September, 1981. Of these three, I have found [1] to be the most useful,because it provides a concise set of information about electrical interfaces to the printer and howto program it. This information is absent from [2], and in [3] it is obscured by much informationabout the internal workings of the printer. As the person who is programming the computer atthe other end of the interface cable, I would most like to see a special section in currentdocumentation concentrating detailed technical information about the electrical interface, dataformats, and modes of operation. This information would include answers to questions raised inthe remainder of this document, but would not address the circuitry implementing theseoperations within the printer.Graphic modeThe statement ``Graphic mode is entered by preceeding each load of the buffer with thecommand byte 05H'' ([1], page 7, Section 4.2) is not strong enough to convey the fact that aftereach nine lines of pixels the printer exits from graphics mode to text mode, and another 05Hmust be sent in order to continue graphics printing. This imposes on the host computer thenecessity of keeping count of the lines sent to the printer. An early version of my graphicsdriver, without such a counter, sent a single 05H, then a succession of lines, each containing somenumber of graphic bytes followed by an End Line command. The first nine lines printedcorrectly, but subsequent data was ignored (as non-printing control characters) until a green pixel05H happened along, which the 4100 interpreted as an Enter Graphic Mode command. Toreduce this confusion, I would recommend changing the last sentence of the second paragraph toread, ``At the end of the ninth line the printer starts the print operation, and returns to textmode.''If it were possible without creating compatibility problems with other units in the field, Iwould recommend modifying the 4100 firmware so that after the Enter Graphic Mode commandthe printer would remain in graphic mode until an explicit Abort Graphic Mode command. Thiswould relieve the host computer the necessity of counting by nines, and would permit futureupgrades to printers with greater than nine wires per printhead, without modification to the hostcomputer software.Top-of-Forms.If a FormFeed character is sent after power-up but before top-of-form is initialized usingthe manual procedure in the User's Manual, an incredible length of paper is spit out onto thefloor. This disagrees with the in the manual's statement that such form feeds are ignored ([1],page 4, Section 3.1). This creates the situation where a naive user might power up the machine,start his printing, and walk away, unaware that the printer will waste paper. It also makes it kindof silly to have the power switch outside the lid if you still have to open the lid to set TOF.Recommendation: Modify the power-up initialization in the firmware to set Top-of-Form to``here'' (wherever the paper happens to be) at power-up.Nfr bApF' a8 ^sa ]\ [#3X 3W^3U3TV3R Ot 9MOr', K= JG/- HJ G?_ E*8 D7Z B> A.:% ?&9 >&F < 9ti 97r: 5E 4A 2:! 1/. /T .6 ,J *1# ){1- ' =u &sr9#I "PP  W H< M @ [t 9rV 9P N 1D 31 )>!  3&  9  =\2i3I have discovered that sending the character sequence to program forms length ([1], page 9,Section 4.3) effectively also sets top-of-form. That is, the sequence Escape Form-Feed 22decimal(which explicitly sets the forms length to the default 11 inches) seems to have the same effect asthe manual ``RST'' switch in the offline mode. This useful feature should be documented in theUser's Manual.The printer still has trouble keeping track of where the top-of-form is when graphicsprinting extends beyond a form boundary. We set top-of-form manually, print a line of two oftext, enter graphics mode and print 13-14" of graphics, return to text mode and send a Form-Feed. One might expect that the printer would advance to the top of the first sheet after the onewe were printing on. It does not. Instead, it moves some apparantly random amount.Wasted time and motion.Send the printer an ``Enter Graphics Mode'' command and begin sending graphics data.The print carriage immediately begins moving back and forth across the paper. It continuesmoving until until the buffer is full. If the host computer stops sending data before the buffer isfull, the carriage will move indefinitely. Even if the buffer is quickly filled, time is wastedwaiting for the carriage to return to the left edge of the page so it can begin to print.Despite the parallel interface, the printer accepts graphics data barely fast enough to allowgraphics printing of full lines at full speed.Oscilloscope measurements indicate that the printer asserts ``busy'' on a printing pass untilthe carriage reaches the right edge of the paper. Data transfer may then resume and, in order toprint on the left-to-right pass, must be completed before the carriage reaches the left edge of thepaper. Stopwatch measurements indicate that the printer carriage takes about 1.67 seconds toreturn. In order to transfer nine lines of graphics with 918 bytes per line (8262 bytes) during 1.67seconds, each byte must be transferred in about 200 ms.During data transfer, oscilloscope measurements indicate that beginning about 15 ms aftereach data strobe, the printer asserts ``busy'' for approximately 160 ms, followed immediately byabout 7 ms of ``acknowledge''. This consumes 182 ms per byte, leaving just 18 ms for the hostcomputer to supply the next byte.The driver program in our host computer takes about 40 ms to supply the next byte. (Notethat although this exceeds the 18 ms requirement derived above, it is still only one-fourth the timethe printer takes to acknowledge each byte.) This brings the transfer time to 222 ms per byte, andit takes 1.84 seconds to fill the buffer. By this time, we've just missed the beginning of the nextleft-to-right pass, and, as described above, the carriage makes a complete round trip printingnothing. As a result, the efffective printing rate is cut in half. Recommendations: Apparantly the present firmware keeps the carriage in motionwhenever the graphics buffer is non-empty. Wasted time could be saved if the firmware weremodified to put the carriage in motion only when the buffer is full and ready to print. It wouldalso seem that a simple hardware FIFO at the parallel input to the printer could greatly ease thespeed requirements on the host computer, by buffering data as it arrives from the host andreducing the time ``busy'' is asserted.There need to be more numbers on the Centronics Interface Timing Diagram ([1],Appendix A, and also [3], Figure 3-3). The following numbers were omitted entirely. We gotthem from oscilloscope measurements, but feel they should be provided in the manual:Busy Delay:15 ms, typical.Busy (for normal data):160 ms, typical.Busy (for printing):1.67 sec, minimum.Ack Delay (for busy condition): << 1 ms. [Ack seems to happen immediately at end of Busy]Ack:7ms, typical.Nfr9bJ `=` v ^rH ]KC [ 9Y)D W<! V!7% T9) S7 P4ti9MrA LF J31 I Q G"79D] Cc.9@] ?A*7 =%> <8] :] 904wr96 Fwr 50wr 3wrwrwr 2!9/h7wr  -"wr< ,_Swr *[ )WU 'D9%5xr 2 #2) "-B  a %: '99 ~H T\X $wr $wr T$%wr3L$wr