carl@umd5.UUCP (02/06/86)
In article<3030@vax4.fluke.UUCP>, star@fluke.UCCP (David Whitlock) raised a
question concerning the partial overlay of print lines on dot matrix
printers in graphics mode. In a followup article, David Berezowski (CBM/AMIGA)
pointed out that the fix is in a one line change to the EPSON family and
MPS-1000 drivers. That is:
" The line in error is in the epson 'render.c' function.
INCORRECT:
if (err=(*(PD->pd_PWrite)) ("\0331",2)) return(err);
/* select 7/72 inch spacing */
CORRECT:
if (err=(*(PD->pd_PWrite)) ("\0333\030",3) return(err);
/* select 24/216 (8/72) inch spacing */
Sorry for the inconvience. "
Well I'm happy to see that there is nothing wrong with my EPSON JX-80 and
that the gfx line overlay problem is associated with a simple bug in the
printer driver. David Berezowski's reply to the original printer driver
question was *terrific*. It told me everything I needed to look for, so I
took the bull by the horns and tried to patch this printer driver animal.
The HEX option on the TYPE command is a great help. Using a dump of the
driver and a 68K reference manual I was able to find the right spots to
modify. Luckily, the Lattice compiler allocated a long word for the string
constant output to the printer...plenty of room to add another byte (hurray!).
Also, the number of bytes to output was stored in its own 16 bit word and
therefore easy to bump up by one (hurray again!). No need to enlarge hunks
here...an inline patch...no muss, no fuss.
All of this now said, here are the bits you need to know to patch the
EPSON printer drivers supplied with AMIGA DOS V1.1:
Generic EPSON printer driver is in file: DEVS:PRINTERS/EPSON
Patch is: OFFSET OLD NEW (HEX)
A69 02 03 output 3 chars to printer
D0B 31 33 change ESC "1" to ESC "3"
D0C 00 18 set 24/216 spacing
EPSON JX-80 printer driver is in file: DEVS:PRINTERS/EPSON_JX-80
Patch is: OFFSET OLD NEW (HEX)
B4D 02 03
F69 31 33
F6A 00 18
This patch makes my JX-80 work great! There still is, at times, some 'play'
in the tractor feed mechanism. This can sometimes cause overlapping or
white spaces between lines. For the best print, take the tractor drive off
the printer and engage the friction feeder. Also, using a single sheet of
paper (instead of fanfold) works best.
I have provided a throwaway ABasiC program which will fix up the two
EPSON drivers. I know that this is a horrible little program and it is *NOT*
an example of how to code in basic. Just accept this at face value...I used
it and it worked for me.
110 OPEN "R",#1,"DEVS:PRINTERS/EPSON",128
120 FIELD #1, 128 AS X$
130 RGET #1,21
140 Y$ = X$
150 REPLACE$(Y$,106,1) = CHR$(3)
160 LSET X$ = Y$
170 RPUT #1,21
180 RGET #1,27
190 Y$ = X$
200 REPLACE$(Y$,12,1) = "3"
210 REPLACE$(Y$,13,1) = CHR$(24)
220 LSET X$ = Y$
230 RPUT #1,27
240 CLOSE #1
250 OPEN "R",#1,"DEVS:PRINTERS/EPSON_JX-80",128
260 FIELD #1, 128 AS X$
270 RGET #1,23
280 Y$ = X$
290 REPLACE$(Y$,78,1) = CHR$(3)
300 LSET X$ = Y$
310 RPUT #1,23
320 RGET #1,31
330 Y$ = X$
340 REPLACE$(Y$,106,1) = "3"
350 REPLACE$(Y$,107,1) = CHR$(24)
360 LSET X$ = Y$
370 RPUT #1,31
380 CLOSE #1
Many patching adventures such as this are possible. What is really needed
is a general purpose patch utility to assist in the user installation of
patches. Also, does anyone know of a good 68K disassembler available for the
AMIGA? One which will dissamble object files and executable files? It would
have come in handy here...
***** As an aside...
If you want to use this patch with DeluxePaint you are going to have to
WRITE on your DeluxePaint disk!!!! Just another reason *AGAINST* copy
protected software products such as those, like DeluxePaint, which come
bundled with a particular version of an OS and its associated bugs. One more
frustration we don't need in these pioneer Amiga days.
Regards, Carl Symborski
bruceb@amiga.UUCP (Bruce Barrett) (02/10/86)
In article <861@umd5.UUCP> carl@umd5.UUCP (Carl Symborski) writes: >... lots of good patching info for Epson printers, Thanks! ... (I haven't tried/tested the above procedures but they look OK.) >***** As an aside... >If you want to use this patch with DeluxePaint you are going to have to >WRITE on your DeluxePaint disk!!!! Just another reason *AGAINST* copy >protected software products such as those, like DeluxePaint, which come >bundled with a particular version of an OS and its associated bugs. One more >frustration we don't need in these pioneer Amiga days. > > Regards, Carl Symborski There is a potential problem with the above, but a solution too. Problem: Writing to a DeluxePaint disk (Rev A or what ever they call it) can, and eventually WILL cause disk write errors. This is because they did not fully understand the scheme for AmigaDOS sector allocation. EA tried to indicate that thier copy protect area was made unavailable to DOS but missed. Solution: Never write to youe EA disk. Boot from a different "workbench" or "cli" disk and load DeluxePaint from another. This way a) you are free to change the Epson driver, b) You don't have to write to the EA disk. (BYW, Thanks EA for a very nice paint program!) --Bruce Barrett