Page 1
User’s Manual MX-70 Printer David A. Lien ® C O M P U S O F T PUBLISHING A Division of CompuSoft, Inc. P.O. Box 19669 San Diego, California 92119 U.S.A.
FCC Compliance Statement This equipment generates and uses radio frequency energy. If not installed and used properly, that is, in strict accordance with the manufacturer’s instructions, it may cause interference to radio and television reception. It has been type tested and found to comply with the limits for a Class B computing device in accordance with the specifications in Subpart J of Part 15 of FCC Rules, which are designed to provide reasonable protection against such interference in a residential installation.
Trademark Acknowledgements TRS-80 is a Trade Mark of Radio Shack. Centronics is a Trade Mark of Centronics, Inc. Apple is a Trade Mark of Apple Computers, Inc. Microsoft is a Trade Mark of Microsoft, Inc.
Most are not fully utilized because the instructions are too vague and confus- ing. We’re doing our best to eliminate that problem with the Epson MX-series. Z encourage you to learn all about your new MX-70. You paid for it. Put it to work.
They probably far exceed what you expected from a printer inexpensive enough to call your own. The MX-70 printer works with virtually any computer properly interfaced to it. This “Learner’s Manual” uses the popular Apple II Plus as its “driver” since the Apple’s high resolution graphics features so closely parallel the printers.
MX series. Setting it up Let’s first remove the printer lid so we can work without breaking something. Lay the MX-70 flat on a firm surface and raise its lid to the full vertical position (Figure l-l). Figure l-l...
Page 13
MX-70 from damage during shipping. Shipping Screws Turn the printer over and lay it on a soft surface. Using a Phillips type screw- driver, remove the shipping screws and save them in case you decide later to lend the printer to Aunt Bernice in Ohio. These screws are in place during ship- ping to protect the printer from damage and are located as shown in Figure l-3.
Installing the Ribbon Position the printer with the Epson label (front) facing you. Locate the paper bail (the moveable metal bar with numbers l-80 on it - see Figure l-3) and push it toward the back of the printer, against the metal platen.
Page 15
CR (Carriage Return) is accompanied by an LF (Line Feed). Other computers, like the TRS-80, rely on the printer to know enough to insert its own LF when it receives a CR. Either way is just fine with the MX-70 since it can be wired either way.
Remove the roller knob by pulling straight out, with firm but steady pressure (Figure l-5). Turn the printer upside down on a soft surface. With a Phillips-head screwdriv- er, completely loosen (but don’t remove) all 4 corner screws as shown in Figure l-6.
Page 17
. . . ” well, anyway. Wonder how they sell it as cheap a they do? (Hope it prints as good as it looks.) The Epson Connection Figure l-7 shows the location of the moveable wire. It is between the 2 “pull top”...
Page 18
-not to the computer! It plugs into the only jack on the back only of the MX-70 case. Epson dealers can supply cables to match different computers. Check with your Epson dealer to be sure you have the computer frequently do work.
To install the rack, simply spring the wires a bit so they pop into the holes in the printer frame, as shown in Figure l-8. Feeding the Paper The MX-70 accepts pin-feed paper between 4” and 10” wide. Both the left and right hand are adjustable to match the spacing between the drive holes.
Page 20
Push the bail back up against the paper. Roll the paper forward with the roller knob. The printer moves paper forward the roller back manually, the power should be OFF; it helps to pull lightly on the paper.
Chapter 1 Adjusting for Paper Thickness The MX-70 can print on all types of pre-printed multiple copy forms and carbons, as well as ordinary printer paper. The 7 position thickness control lever (Figures l-10 and l-11) moves the print head closer to or farther from the paper, changing the print quality somewhat.
Page 22
The final part of this checkout takes about 3½ minutes. It’s important that we do it; plus it shows us what print characters are available. Load the printer with plenty of paper. Turn the printer OFF. Hold the FEED button down and turn the printer back ON - WOW! Look at that son-of-a-gun go.
Besides letters and numbers, we can also send “special” codes to make the MX-70 print wide letters, or enter a special graphics mode that permits us to control where each individual dot is printed. To take advantage of these fea-...
Page 24
(The Epson MX-80 printer manual was written around the TRS-80 for similar obvious reasons.) Most other computers can also print HI-RES graphics on the MX-70, even if they can’t print those same graphics on their video screen. (Think about...
Page 25
- which isn’t a bad idea. The Apple Stem Apple users verify that the power is OFF, then place the Epson Parallel Interface card in slot 1 (not 0) of the computer’s mother board. Connect the printer cable as shown in Figure 2-l.
Page 26
We will soon find out if we hooked the “auto” wire to the correct terminal, mentioned in the last chapter. Turn on the MX-70 first, then the computer. Type in the following software: PR#l FOR P = 1 TO 24...
Page 27
P R I N T C H R $ ( 2 ^ I N T ( 3 . 4 * ( S I N ( I ) + l ) ) ) ; 60 NEXT I : PRINT 70 PRINTTAB (20) CHR$ (98) CHR$ (121) CHR$ (14)’ EPSON’ Time Out For Emergency Training...
Page 28
The first PRINT statement TAB the print head over 22 spaces, the second sends one of those special CHR$ (character string) codes we mentioned earlier, and the third prints “MX-70.” CHR$ (14) stands for: Appendix B contains all the special codes, often called CONTROL CODES.
Page 29
CAPE,” which forces us to GOSUB to another topic. The Great Escape The MX-70 recognizes a few so called “Escape Codes.” They are similar to (and really part of) the control codes under discussion. Escape codes should not be confused with the escape KEY which may be on your keyboard, though they are shirttail relatives.
Page 30
CHR$ (0) tell that tale: CHR$ (60) means “expect 60 characters.” Any additional ones will be printed as text. If less than 60 are sent, the printer will just sit and wait until that quota is satisfied. CHR$ (0) tells the printer that we decline to send another 256 charac- ters.
Page 31
We’ve already used CHR$ (14) and seen that it puts the printer in double width mode. Add line 70: 70 PRINTTAB (20) CHR$ (98) CHR$ (l2l) CHR$ (l4)" EPSON" and RUN. Very nice. This has been a feature-packed chapter, but it gave us a good introduction to some varied and powerful capabilities we can put to work.
Page 32
Chapter 2 Special ‘Escape’ Codes CHR$ (27) - The BASIC ASCII combination for “Escape.” (Special code used with letter codes) “K” - The letter “K.” (Kicks ON graphics mode when preceded by Escape.) Example: PRINT CHR$ (27) “K”...
That last chapter was a heavy one, but it gave us a good overview of many MX-70 features. In this chapter we’ll explore a few of them in more detail. As before, CHR$ is the magic wand. Continue to refer to Appendix B as needed to help maintain perspective on what we’re doing and where we’re going.
Page 34
“standards,” customizing them for our needs. So Much for Tradition Load the printer with plenty of paper as we are going to use a pile of it. Chalk the cost up as tuition. First, let’s see what is really meant by page length. Turn OFF the printer and adjust the paper so the perforation between two sheets is near the scribe mark on the metal impact platen.
Page 35
Practice will make perfect. Matchmark Once the paper is in position, cycle the printer OFF, then on again. This electronically sets the top of form memory (known in the biz as TOF) at the current paper position, Despite what follows, the printer always remembers where the top of the next sheet of paper is, even if WE don’t.
Page 36
Hmmmm? (Knit 1, Pearl 2.) That’s right! Every PRINT statement automatically sends a Line Feed to the printer. We forgot to include a trailing semicolon in Line 45 to surpress it. Sounds simple enough. Let’s change Line 45 to: 4 5 P R I N T C H R $ ( 1 2 ) ;...
Page 37
Let’s all read the following “Philosophy” carefully. It is absolutely vital that we understand the concept of the “endless loop” to use any printer for serious business type applications. A Little Homespun Philosophy Having discovered the problem, and it is a very real and vital one, let’s analyze the needs of the average user of the Form Feed (FF) command.
Chapter 3 Now we are all on the same channel, and the printer hasn’t forgotten where the Top Of Form belongs. When the floor is strewn with paper and the point has been made, you may hit CTRL-C, (or BREAK) and let a silent smile creep across your ugly puss.
A nicer way, (not available on the Apple II) is to use STRING$. See The BASIC Handbook for details. The point of this program was to show that the MX-70 will accept horizontal from BASIC, and help us determine our own computer’s capability to...
Epson’s Apple parallel interface card is in this category since Apple BASIC does not control the eighth bit. It is quite possible to drive the MX-70 nicely with only code numbers from 0 to 127, but certain things are more difficult.
Page 41
Each pin is driven by a “gun,” or electromagnet, which “fires” when told to do so by the electronics inside the printer. The printer electronics responds to those ASCII code instructions we send from the computer in the form of “ASCII numbers.”...
Page 42
For a complete listing of all the standard MX-70 characters, look at the self-test printout from Chapter 1. It’s right there, hanging on your wall, isn’t it? How it all Lays out on Paper We have seen that all the characters are a uniform 7 dots high. What Appendix C doesn’t show is that the spacing...
Page 43
So what does all this higher mathematics have to do with graphics? Just this. If we are to create high-resolution graphics on the MX-70, we have to eliminate the “dead space” between letters by changing the automatic line spacing to some value less than l/6 inch.
Page 44
Whatever new line spacing we specify is in effect as soon as line 10 is received by the printer. To dramatically illustrate the possibilities this feature opens up: DELETE lines 30 and 40, and change the following lines:...
Page 45
Now look at 24 dot spacing. Aha! It’s double spacing. By sending the high- powered command in line 10, we can plug in our own value of S and make the printer give us just about any spacing we want between lines (up to 85). And, we inside can do it either a program or at the command level.
Page 46
Many computers do not have the capability of sending an ASCII character to temporarily suppress the Line Feed when a Carriage Return is sent. An Apple running BASIC with the Epson printer card falls in this category. We cannot do underlining by simply sending CHR$ (13), a simple CR, then sending underlin- ing dashes in the right places.
Page 47
50 PRINT "WORKS" 59 PR #0 and RUN. Oops, too close for comfort. We forgot that the MX-70 doesn’t have lower case descenders, and the underline character is in that category. We’d better drop the underline down one dot. Change line 10 to: 10 PRINT CHR$ (27) "A"...
Page 48
Line 40 returns line spacing to the normal 12 DOTS Line 50 PRINT more text to show that all is normal and that’s plenty to think about in this chapter. Code Summary CHR$ (27) “A” CHR$ (##) - SETS LINE SPACING TO ## DOTS CHR$ (27) “2”...
Graphtrax II Caution - Entering High Resolution Space To create graphics on the MX-70, we must enter a completely new mode: the GRAPHICS MODE. In this mode, pre-defined characters do not exist - only dots. We create our own characters or images by arranging the dots however we wish.
Page 50
How many columns is line 10 reserving, 50 or 306? Answer=50. Don’t RUN yet. Firing the Pins There are 9 pins in the MX-70 print head. In graphics mode, we have control of the top 8 (the middle 7 for 7 bit computers). for 100 columns...
Page 51
We’ll label these top 8 pins as follows: 128 - 0 64 - o 32 - o 16 - o 8 - O 4 - o 2 - o BOTTOM l - o (Ninth pin not used) From now on we will refer to the second pin (pin 1 above) as the “bottom” pin when using graphics.
Page 52
Oh - winning is so much fun! Don’t be too concerned about what movie is playing on your video screen. It may not know how to handle these codes. It’s what’s happening on the printer that counts. The Grand Scheme This is starting to make sense.
Page 53
Sigh! Once again the printer can out perform a computer. In the Apple’s case, the Epson Parallel Interface card deactivates the eighth bit so Apple users can control only 7 pins. If it didn’t, bit 8 from the Apple would be on firing pin 8 every time.
Page 54
Line 50 of the “welcome program” should now make sense. We see that to fire a single pin, we must send a power of 2 down the line to the printer. Line 50 of the “welcome program” does just that.
Page 55
Line 40 kicks the printer into graphics mode - 14 columns per line. Lines 50-70 read each code from the DATA lines and send it to the printer. The NEXT R in line 70 sends control back to line 20 to start the next line.
Advanced Graphics Firing Pins at Seven Paces The MX-70 allows any computer to control the firing of its 8 active pins by simply sending ASCII code numbers between O-255. Conversely, these 256 code numbers are sufficient to control all 8 pins. Multi-line graphics programs will therefore usually be done with a top-of-line to top-of-line spacing of 8 dots (8/72”).
Page 57
Chapter 6 Line 10 sets the top-to-top line spacing at 7 dots. Lines 20 and 30 KICK the printer into graphics mode. N specifies the number of graphic columns. By making it a variable, we can easily change it later, right within a program, to print graphic lines of different lengths.
Page 58
5 5 , 0 , 3 , 7 , 1 5 , 3 1 , 6 3 , 6 3 , - 4 2 , 1 2 7 , 6 3 , 6 3 , 3 1 , 1 5 , 7 , 3 Recheck the numbers carefully to be sure they are copied correctly. The first number tells the MX-70 to expect 55 bytes of graphic information. The rest of the numbers specify the pin combinations to be fired in each column, except for that suspicious number pair in the center: -42,127.
Page 59
Chapter 6 40 FOR G=l TO N 50 READ X 120 NEXT G 130 PRINT The numbers READ into X are the actual pin firing instructions. If X falls in the range 0 - 127, we print it in line 60 below. It also includes a “filter” to snag any negative numbers: 60 IF X>=0 THEN PRINT CHR$ (X);...
Page 60
List and recheck the completed program to make sure everything is correct: 9 PR #1 10 PRINT CHR$ (27) "A" CHR$ (7) 20 READ N : PRINT TAB (10); 30 PRINT CHR$ (27) "K" CHR$ (N) CHR$ (0); 40 FOR G=l TO N 50 READ X 60 IF X>=0 THEN PRINT CHR$ (X);...
Page 61
Line 15 gives the program a smooth ENDing when the DATA is all READ. When there is no more DATA, an OUT-OF-DATA error message appears, and the program is cleanly ended, even resetting the printer line spacing back to its “power-up” default.
Page 62
Code 8 can also cause trouble since it means “delete the previous character sent to the printer and stored in its print buffer. ” In line 1070 we tried to send a whole sequence of them, and on some computers the program blew up!
Page 63
1 2 4 , 1 2 0 , 1 1 2 , 6 4 and RUN. Ah SO! Is it a picture of the MX-70 design engineer? Turned up-side down it looks like a flying saucer. To see the final picture we have to type a few more lines. (Think of it as the price of greatness.)
Page 64
We now have all the tools needed to design and print our own graphics. Be sure to save the finished program as we will use it in the next chapter. Code Summary 49296 - POKE LOCATION FOR APPLE TO SEND INFO TO PRINTER 14312 - POKE LOCATION FOR TRS-80 MODEL I Figure 6-6...
DELETE LINES 1000-1080. Mix and Match We are obviously amazed at the MX-70’s graphics ability. Our thoughts logi- cally lead to thinking about mixing graphics and text on the same line. Can it be done? Sure, nothing to it. Just be sure to hang trailing semicolons on the ends of lines as needed to keep the printer from doing unwanted Line Feeds.
Page 66
Chapter 7 No, it’s not another demon. It is a “broken signboard” that needs a text type LABEL in the middle. The finished graphics/text display will be printed in these three parts: 15 columns of graphics 30 columns of text (5 characters) 15 columns of graphics Now we have to mix and match graphics and text on the same line.
Page 67
None of our examples so far have used the full 480 columns available to the MX-70. In fact, we’ve always used less than 100 columns since the printer will be used by computers with different capabilities. As we expand the widths of our displays, these differences quickly become more obvious.
Page 68
Chapter 7 If we really understand what we’re doing, the 7-bit limitation can be overcome. Apple users try: GOSUB 20 : GOSUB 20 : PRINT 150 DATA 23,-23,127,127,-127,127 and RUN. Now we are getting somewhere. Instead of trying to print the entire line in one shot, we hooked two print routines together with a semicolon.
150. Apple Pie BUT fear not! We couldn’t end this happy tale on a sour note. Epson has provided a far superior way for Apple users to create high resoluton graphics in BASIC. A “screen dump” program for use with Apple disk systems completely eliminates the need for wrestling with the above problems.
Page 70
Chapter 7 Pictogram Let’s see if we can parlay strings of graphic characters into a useful format. Enter this NEW program. 9 PR #1 30 FOR I=1 TO 5 : READ A ( 1 ) 40 DATA 8,107,92,107,8 60 FOR R=l TO 5 80 READ N 90 FOR I=1 TO N : GOSUB 300 100 N E X T...
Page 71
The DATA for the population figure is READ into array A in line 30. Each figure is printed in SUBroutine 300. DATA line 130 determines how many figures are printed on each row. We have the makings of a horizontal bar graph, but it needs some trimmings. Let’s add a few labels and move the whole works over a bit.
Page 72
Chapter 7 PRINT TAB(23)CHR$(14)"POPULATION 140 PRINT : PRINT TAB(37); : GOSUB 300 150 PRINT "( = 1,000" and RUN. That’s plenty for this chapter. Code Summary PRINT CHR$ (9) “255H” - Allows Apple users to print past column 255 PROJECTION" Figure 7-10 without heartburn.
Epson dealers can supply a machine language “screen dump” diskette for Apple users with 48K disk systems. It permits creation of exotic HI-RES graphics on the Apple screen, then dumping them, dot for dot to the MX-70 printer. Since the MX-70 graphics are related to the Apple (as the MX-80 graphics replicate the TRS-80’s), this particular software is of interest only to Apple...
Page 74
The HIRES INSTRUCTIONS program gives hints on how to use the screen dump. The EPSON.HIRES.OBJ program is the actual screen dump routine written in machine code. It can be accessed with the USR command from BASIC. The rest of the tiles are HI-RES demonstration pictures, and at this writing...
Page 75
THIS PAGE HAS BEEN AMENDED DISNEY CHAR SCHEMATIC PORTRAIT CHESS Follow the Yellow Brick Road The HELLO program guides us through the pictures. It’s completely self-explanatory (as every confusing technical book says), but here’s some step-by-step guidance. WHAT IS THE FILENAME OF THE PICTURE The program is asking for the NAME of the picture we want to print.
Page 76
Double check to see that the printer is ON and loaded with paper. Our printer card is in slot I, so: <RETURN> Now we just sit back and relax while the MX-70 does its thing. No fair peeking until it finishes. All together now-PEEK!
Page 77
BASIC and type: PR #l RUN HIRES INSTRUCTIONS (Don’t worry if the screen says Epson TX-80 HIRES GRAPHIC ROUTINE - it’s been modified for the MX-70.) Abort the program, then enter: PR #0 Tear off this list of instructions so we can refer to them as we scurry along.
Page 78
Chapter 8 Not too shabby for rank amateurs. Here’s what happens: Line 10 clears the screen. Line 20 selects the “low memory” HIRES page. This part of memory is used for high-resolution graphics, while text is stored on a different ‘page’ of memory.
Page 79
When you see one you like, add this screen dump “linking routine” to hook the BASIC program to the HIRES program: 80 POKE 10,76 : POKE 11,00 90 PRINT “BLOAD EPSON.HIRES.OBJ” 100 PRINT USR(0001) and RUN. 40 FOR A=0 TO 26 STEP .01)
Page 80
Lines 80 and 90 are straight out of the HIRES INSTRUCTIONS program listing. They load the screen dump routine without leaving the BASIC program. As indicated in the HIRES instructions, we use the machine language routine named EPSON.HIRES.OBJ (Line 90), and where: A = PAGE (O=PG.l, l=PG.2) B = SIZE (O=SMALL, l=LARGE) C = PICTURE (O=REG., l=INVERSE)
Page 81
Using the HIRES Screen Dump Program “...Never give up!” Commencement Address Now that we’ve learned everything there is to know about the MX-70 and HIRES graphics, our education is ready to begin. I’d enjoy hearing from you and seeing some of your artistic creations.
Page 83
Appendix A This is the standard ASCII character set. The codes that are highlighted are understood by the MX-70 printer. The rest are for your information only, and serve no function on the MX-70 printer.
Page 84
ASCII FUNCTION Returns line spacing to 1/6”. Cancels last character entered in text mode. Line Feed (LF). Empties printer buffer. Form Feed (FF). Advances paper to the next top of form. Empties printer buffer. Carriage Return (CR). Empties printer buffer.
Chapter 2. Fortunately, TRS-80 users can use it successfully by following the notes and suggestions in this appendix and throughout the text. In fact, using the MX-70 with the TRS-80 is quite easy: with no ports to initialize, no control codes needed to permit 80 column listings, and straightforward LPRINT com- mands.
Page 88
0 is also used to enter the graphics mode. For example: 10 LPRINT CHR$(27) “K” CHR$(50) CHR$(0); Since the MX-70 interprets all even numbers as 0, we can change the last part of the above line to The POKE alternate is 10 LPRINT CHR$(27) “K”...
Page 89
Z, to “black out” material, etc. If you have no need to separate CR and LF and already have a Radio Shack printer cable, it should work fine. If purchasing a new cable, buy an Epson to keep all the options open.
The Atari 8.50 interface has a 4 second time-out. If it does not receive an acknowledge signal from the printer within 4 seconds of sending it a command, the computer will send a “Device Nak,” Error Code #139 message. The program can catch this error using the BASIC “TRAP”...
Appendix F Use with Apple Apple Integer Basic The MX-70 is activated by ASCII code numbers from O-255. The easiest way to send these codes in BASIC is via the CHR$ function, a feature not supported by Apple Integer Basic.
Page 92
To avoid such complications, the POKE should always be followed by a test of the printer to see if it is ready for more DATA. On the Apple, this is done with a PEEK statement. Example:...
Page 93
<CTRL I> I In the process, the printer width defaults back to 40 columns. Apple Mush But how do we send control characters to the printer? The most obvious way is with the CTRL key on the keyboard. Let’s try it. FIRST: activate the printer by typing PR#l <return>.
Special Notes on Other Computers/Languages/Interfaces Interfacing The MX-70 is designed to interface directly with parallel printer computers like the Apple II and the TRS-80 Models I, II, and III. RS-232, IEEE 448, and other interfaces are not factory supported. There is no provision for installing inter- face boards inside the case.
Appendix H Technical Specifications 1.4.1 Printer Printing Method....Impact dot matrix Character set....ASCII 96 (5X 7 dot matrix) C h a r a c t e r f o r m a t i o n .
Control Circuit Board and Initialization Control circuit board With the MX-70. such functions as head carriage control, paper feed control. etc., are performed by the one-chip microprocessor 8049 located on the con- trol circurt board. The microprocessor has a 2K-byte ROM and a 128-byte RAM.
Page 97
Printer initialization Printer initialization is accomplished in either of the two ways described below. (1) Initialization takes place automatically each time the primary AC power source is interrupted and reapplied (i.e., by turning the Power Switch off and on).
Appendix J Pinout Chart The MX-70 includes a parallel interface as the standard equipment, and this paragraph describes the parallel interface. (1) Specifications (a) Data transfer rate: 1000 CPS (max.) (b) Synchronization: (cl Handshaking: (d) Logic level: (2) Connector Plug: 57-30360 (AMPHENOL)
Page 99
0.2µs. 4. Data transfer must not be carried out by ignoring the ACKNLG or BUSY signal. (Data transfer to this printer can be carried out only after con- firming the ACKNLG signal or when the level of the BUSY srgnal “LOW”.)
DATA 1 through DATA 8 and the STROBE signal is generated by an external device, the MX-70 sets the BUSY signal to “HIGH” level to inhibit the next data transfer from the external device. The logical state of each data must be held as is until the BUSY signal becomes “LOW”...
Page 101
FEED function. By the above operating steps, the operations including the interface can be checked. MX-70 Unlike the self-test (self-diagnostic) function by the built-in program, this method permits the Printer operations to be checked along with the parallel interface operation.
(and its operator). Find it a Nice Home Your Epson printer is designed to take a lot of punishment, but there is no reason to become careless. In fact, it will last a lot longer if you pamper it. Treat it at least as good as your pet rock.
Page 103
Grasp the ribbon cable (not the head connector block!) and pull gently but firmly to your right. You have just removed your first Epson print head. (Shades of the French Revolution.) To install a new print head assembly, push the new ribbon cable into the head connector, lay the print head on its mount and turn the head lock lever coun- terclockwise.
NOTICE Please send your comments, suggestions, and any errors you might find to: THE EDITOR MX-70 Manual 60x 19669 San Diego California 92119 U.S.A. Thank You.
This Warranty applies only should the product fail to function properly under normal use. During the warranty period, Epson will repair (or, at its option, replace), at no charge, components that prove to be defective, provided the product is re- turned (shipping prepaid and properly packed) to the nearest authorized Epson Service Center or to the Dealer from whom the product was purchased.
Need help?
Do you have a question about the MX-70 and is the answer not in the manual?
Questions and answers