Neu ist es gerade nicht, das Programm FX_EMU von PD88, doch nützlich ist es immer noch. Viele Besitzer von 24-Nadeldruckern kennen das Problem. Zum einen funktioniert die System-Hardcopy nicht bzw. erzeugt nur einen seltsamen Streifen, und zum anderen gibt es viele Programme, die nun mal keine 24 Nadeln direkt unterstützen. Bei teuren professionellen Programmen ist das inzwischen eher selten der Fall, doch im PD-Bereich hat eben nicht jeder Autor einen 24-Nadeldrucker, und auch kommerzielle Programme, man denke nur an Wordplus, drucken ihre Grafiken tapfer im 8 Nadel-modus. Das Ergebnis ist ein flaues und verzogenes Bild.
Besitzer eines NEC-Druckers dürfte das alles nicht weiter stören, denn es gibt ja das Programm FX_EMU. Dieses sorgt z.B. dafür, daß bei ‘Alternate+Help’ eine eigene Hardcopy-Routine ausgelöst wird, und, was viel praktischer ist, es fängt automatisch alle 8-Nadelgrafikdaten, die irgendein Programm zum Drucker schicken will, ab und rechnet sie in 24-Nadelgrafik um. Das Ergebnis ist ein sattes und in den Proportionen korrektes Druckbild.
Weniger gut arbeitet das Programm mit solchen Druckern zusammen, die nicht NEC-kompatibel sind. Die Unterschiede liegen jedoch lediglich in den Steuerkommandos, die den Zeilenvorschub in 360tel Zoll steuern:
NEC $1C$33
OKI $1B$2B
EPSON $1B$5B
Was liegt also näher, als die entsprechenden Teile des Programms zu ändern. Zunächst schaut man, welche Kommandos FX_EMU an den Drucker schickt. Dazu schaltet man diese in den HEX-Modus und ärgert sich, daß so viel Papier verbraucht wird. Eleganter geht es beispielsweise mit Harlekin. Man blockiert die Druckausgabe und schreibt diese auf Diskette. Mit dem eingebauten Filemonitor kann man sich diese nun in aller Ruhe anschauen und analysieren. Natürlich muß man hierzu die Druckersteuerkodes kennen.
Hat man die Kodes gefunden, die zum Verzweifeln von OKI-, Brother und sonstigen nicht NEC-kompatiblen Drucker führen, so sucht man diese einfach mittels eines Filemonitors im Programmkode. Nach dem diese geändert und zurückgeschrieben sind, sollte, hat man nicht die falschen Stellen gefunden, der neue EMU seine Dienste verrichten.
Da einige Drucker nicht über n/ 360”-Zeilenvorschub verfügen, hilft hier nur das Rücksetzen auf n/180” und halbieren des Zeilenvorschubes, denn sonst gibt es doch eine etwas unschöne Lücke. Leider funktioniert das nur bei der Hardcopy problemlos. Bei der 8->24-Nadelumrechnung im Hintergrund ist der Zeilenvorschub nicht einstellbar. Ist dieser im jeweiligen Programm, z.B. Wordplus, einstellbar, so halbiert man ihn eben dort.
Klingt doch ganz einfach, oder? Um Ihnen nun die Arbeit zu ersparen, haben wir das Ganze in einem kleinen Programm festgehalten. Alles was Sie brauchen, ist das Programm FX_EMU und OMIKRON.BASIC. GFA-BASIC tut’s mit ein paar Syntax-Änderungen auch. Wer lieber mit einem Filemonitor arbeitet, der kann sich die entsprechenden Stellen heraussuchen und direkt ändern.
Gerd Krämer
FX_EMU
ST-PD 88
' Patcht FX_EMU für andere 24 Nadel Drucker
'
Name_Alt$ = "FXEMU.PRG"
OPEN "I",1,Name_Alt$
L= LOF(1)
IF L<>8255 THEN PRINT "Falsche FX-EMU-Version. Siehe PD 88 ST-Computer": END
Mem= MEMORY(L)
BLOAD Name_Alt$,Mem
CLOSE 1
PRINT "Folgende Drucker können gepatcht werden:"
PRINT
PRINT "-1- Epson 24-Nadler mit 360 Vorschub"
PRINT "-1- Brother 24-Nadler mit 360 Vorschub"
PRINT "-2- OKI 24-Nadler mit 360 Vorschub"
PRINT "-3- 24-Nadler mit 180 Vorschub"
MOUSEON
FORM_ALERT (1," [2] [Druckertyp| |Bitte Nummer angeben][1|2|3]",R)
MOUSEOFF
IF R=1 THEN Code = $2B:Name_Neu$="\OKI_EMU.TOS" ' + statt E
IF R=2 THEN Code = $5B:Name_Neu$="\EPS_EMU.TOS" ' [ statt E
IF R<3 THEN
POKE Mem+$153,$1B ' statt $1C
POKE Mem+$157,Code ' statt $33
POKE Mem+$26F,$1B ' statt $1C
POKE Mem+$271,Code ' statt $33
ENDIF
IF R=3 THEN
POKE Mem+$153,$1B ' statt $1C
POKE Mem+$159,$10 ' geänderter Zeilenvorschub (evtl. auch $ 11)
POKE Mem+$26F,$1B ' statt $1C
Name_Neu$="\180_EMU.TOS" ' 180 dpi
ENDIF
BSAVE Name_Neu$,Mem,L
PRINT "Das war's"
END