*******************************************************************
                  GEMVIEW Lademodul 'ESC/P Emulator'
                   von Christian 'Chrisker' Krger
*******************************************************************

bersicht:
----------

1. Allgemeines 'Bla Bla' und Status (unbedingt lesen !!!
				     Was ist Featureware ?)
2. Wozu ein 'ESC/P Emulator' ?

3. Bedienung und untersttzte Kommandos

4. History

5. Featureware Wunschliste und Kontaktadresse

-------------------------------------------------------------------

                  1. Allgemeines 'Bla Bla' und Status
                  -----------------------------------

(sorry fr evt. Tippfhler - es ist gerade 3.45 Uhr in der Frh und ich
 hab keine Lust irgendetwas zu korrigieren. (Nur ein schneller Hack -
 darum nachfolgend auch alles klein geschrieben - ich habe wichtigeres
 zu tun als die 'shift'-taste zu bettigen... (sorry - no time).
 wer lust hat sich diesem text 'anzunehmen', (korrektur, formatierung,
 bersetzung etc.) mge das bitte tun und mir ein exemplar zukommen/
 absegnen lassen) 
 
--BLA BLA: 
 
Das programm wurde mit groer sorgfalt entwickelt. fr vorhandene fehler
im programm oder defekte gerte die durch verwendung dieses programms
entstehen bernehme ich aber keine haftung !
wer also seine 'Medusa' mit 20"-monitor und angeschlossendem 1200DPI
farblaser in die luft jagt ist selber schuld (wre auch zu bezeifeln,
ob das mit dem modul berhaupt mglich ist... ;-) ).

--STATUS (wer noch nicht 'featureware' kennt bitte lesen !!!):

Dieses lade-modul hat 'featureware' status. Nun, was ist 'feature-
ware' ?
Grundlegend ist zu sagen das dieses modul FREEWARE ist !
Das heit es kann (und soll) kostenlos weitergegeben und verbreitet
werden (aber nicht ber PD-versender oder hnliches - ich mchte
dieses modul nicht ohne meine genehmigung auf irgendeiner PD-liste
oder CD-ROM wiederentdecken !).

Um den status dieses moduls aber noch etwas 'interessanter' zu machen,
habe ich mir ein neues system einfallen lassen (eben featureware).
Dieses lademodul gengt voll und ganz _meinen_ ansprchen. Das heit
aber nicht, da die erwartungen oder ansprche anderer benutzer mit
diesem modul befriedigt werden. Ich knnte jetzt einfach schreiben das
dies hier 'nervt mich berhaupt nicht'-ware ist (gre an Mr. McLoud ;-) ),
habe mir aber ein anderes konzept einfallen lassen (ja - ganz neu) welches
dem programmierer (also mir) und dem rest der menschheit zu gute kommt
(knnte auch user-fairware heien... ).

Aaaaallllsooo:
am ende dieser 'dokumentation'  befindet sich eine liste von mglichen
programmerweiterungen die noch nicht vorgenommen wurden. diese kann ich
aber gerne gegen entgeld vornehmen(folglich: nervt mich nur gegen
bares-ware). dabei handelt es sich frmlich um eine preisliste: welches
feature kostet wieviel geld ? wurde ein feature durch bezahlung im modul
integriert, wird das modul wieder der ffentlichkeit zugnglich gemacht !
(man zahlt also eigentlich nicht nur fr sich sondern auch fr andere...).
die vorteile liegen auf der hand:
der programmierer arbeitet nicht ganz umsonst und es entsteht ein
komplexeres programm welches wieder von allen genutzt werden kann.
damit kommt ein bezahler in eine aehnliche 'wohltaeter' position wie
der freeware-programmierer. dieser leistet ja auch 'selbstlos' anderen
dienste...
damit noch ein kleiner anreiz fr diese 'wohltter' da ist (abgesehen davon
das die das bezahlte, ins programm integrierte feature dann auf diskette
zugeschickt bekommen), befindet sich dann in der programmbeschreibung
das kapitel: 'Mzene und edele Spender', in dem sie namentlich (mit der
funktion die sie 'gespendet' haben) erwhnt werden (wer nicht erwhnt
werden will - auch kein problem...).

noch eine anmerkung: gehen 'zeitgleich' bis zu drei zahlungen fr das
gleiche feature bei mir ein, werden alle spender erwhnt und ich kann mich
ber das zustzliche geld freuen :-) (das mu man mir schon gnnen...).
sind es noch mehr, wird das 'berstehende' geld fr ein anderes feature
(auswahl treffe ich) verwendet. 
schaden tut das den bezahlern nicht - sie erhalten die funktion fr
die sie bezahlt haben auf jeden fall... (und tun noch ein gutes werk)
natrlich kann man auch im freundeskreis rumgehen und sich als gruppe 
ein feature bestellen - geteilte last ist halbe last... (gibt aber
trotzdem nur _eine_ diskette zurck und man sollte sich einen namen
fr die gruppe ausdenken mit der sie in der liste erscheint).
wer mir geld zukommen lassen will ohne sich ein feature zu wnschen -
ok - habe auch da nix gegen.
Ergibt sich ein nderung im programm (bestellte fhigkeiten sind hin-
zugekommen) wird das programm jeden monat 'refreshed' und verbreitet.

soviel zum feature-ware konzept - die 'preisliste' folgt am ende des
textes.

  
                  2. Wozu ein 'ESC/P Emulator' ?
                  ------------------------------
                  
Zunchst mal was ESC/P berhaupt ist:
soweit ich wei ist ESC/P ein standart der von EPSON ausging. es sind
kommandos zu ansteuerung von (9)-nadeldruckern. diese werden von den
sogenannten 'epson-kompatibelen' nadeldruckern verstanden. 

Wozu nun ein lademodul welches diese kommandos interpretiert ???

9-nadeldrucker sind heutzutage nicht mehr ganz zeitgem - sie sind
laut, langsam und liefern oft eine unbefriedigende druckqualitt.
oft steht man aber vor dem problem (so wie ich ;-) ), da man programme
hat, die etwas lter sind und z.B. nur das ansteuern von diesen druckern
vorsehen. normalerweise knnte man diese mit einem moderneren drucker nicht
verwenden und mte auf das programm verzichten. wenn man aber in der lage
ist, die druckerausgabe in eine datei zu lenken ist man schon (zusammen
mit dem ESC/P Emulator) auf der 'gewinnerseite'. (wird die druckumlenkung
in eine datei nicht direkt von programm untersttzt, besteht immernoch
die mglichkeit dieses mit einem der zahlreichen 'utility-programme'
(wie z.B. SPOOL) zu erreichen.)

die vorhandene druckdatei wird von dem ESC/P Emulator ausgewertet und es
wird ein Bild erzeugt welches der Druckerausgabe entspricht. Dieses
kann nun beliebig weiterverarbeitet werden. Z.B. kann man das Bild mit
Gemview direkt auf seinem laser-, tintenstrahl-, thermodrucker ausgeben.
Oder man modifiziert die ausgabe mit grafikprogrammen oder bindet das
'bild' in ein anderes dokument einer textverarbeitung ein etc.......

konkret wurde dieses modul fr das zusammenspiel mit dem '800XL-DJ' 
entwickelt. dieses progamm ermglicht einem es, auf den 16/32 bit atari's
die laufwerke und drucker der 8-bit rechner zu simmulieren. so kann z.B.
auch hier die druckausgabe des 800XL in eine datei auf dem ST/TT/Falcon 
etc. umgelenkt werden.
diese kann man nun mit gemview und dem ESC/P Emulator laden.
daher auch die emulation von 'ESC/P'. Diese druckeransteuerung ist in
99% der XL-programme zu finden. modernere drucker werden so gut wie
gar nicht untersttzt (wenn man viel glck hat: 24-nadler...).
mit hilfe des emulators kann man nun z.B. Print-Shop in zusammenhang mit
seinem tintenstahler weiterverwenden !!!

eine weitere (wenn wenn auch wahrscheinlich seltenere anwendung) des
emulators ist, wenn man (als besonderen effekt) die qualitt (dieses
schwache, grob gepunktete, graue aussehen) eines 9-nadlers braucht
(ja denn fall hatte ich wirklich mal neulich...). einfach den text
mit dem emulator laden... (ja - der emulator 'druckt' auch draft buch-
staben die ziemlich gut auf lasern etc. 'rberkommen'). ich habe so einen
ausdruck (vom tintenstrahler) jemanden mal gezeigt und der wollte
mit nicht glauben, das das ding nicht mit einem nadeldrucker gedruckt
worden war...
  
  
                   3. Bedienung und untersttzte Kommandos
                   ---------------------------------------
                   
Zur bedienung lt sich eigentlich nicht viel sagen - da es sich ja um 
ein Gemview-modul handelt. Wichtig ist nur, da ESC/P files nicht !!!
identifiziert werden knnen. daher hat AUTO-flag des moduls ausge-
schaltet zu bleiben ! man kann also ESC/P files nur laden, wenn man
dieses ber die funktion 'Load Type...' macht.

Dann legt der emulator los.
Grundlage ist dabei immer das erffnen einer kompletten seite der 
ausmae 8x12 zoll. Dieses format ist praktikabel, da es die breite und
etwas mehr als die hhe einer DIN A4 seite hat. viele amerikanische
programme (wir erinnern uns: atari XL druckprogramme...) brauchen aber
12" papier. Daher diese gre.
Da 9-nadler normalerweise eine max. druckdichte von 240x216 DPI haben,
wird fr diese seite ca. 660kB bentigt ! Fr benutzer von 512k ST's kommt
das modul folglich nicht in frage. Ob der speicher bei 1MB besitzern
reicht, wage ich mal zu bezeifeln... (Gemview haut ja auch ganz schn 
was weg...)
Nun haben die pixel des bildschirms 'leider' kein seitenverhltnis von
1.111111111111111..... Der emulator umgeht das problem in dem er dieses
ignoriert und einfach das verhltnis 1 benutzt. Folglich sind die 
darstellungen etwas verzerrt. Wer das nicht haben will, kann nach der
interpretation des files ja aber die grafik mit 100% x und 111% y  
skalieren (Gemview macht's mglich). Wer anschlieend seinen 600 DPI
drucker anschmeit und das ding im gleichen verhltnis wie auf dem 
nadler ausgeben will, kommt um die skalierung sowieso nicht drumrum
(wir rechnen: bild hat 240x216 DPI - drucker hat 600 -> skalierung mit
250 und 278% - fragt sich nur ob der speicher dafr reicht...).

Jeder gesetzte punkt im bild entspricht dem abdruck einer drucker-
nadel. Ich schreibe das hier nochmal explizit, da ich sonst befrchte
meldungen von fehlern zu bekommen, die keine sind !
Viele programme oder auch die draft-zeichen des druckers nutzen 
_nicht_ die 240x216 DPI aus. So haben z.B. draftzeichen normalerweise
einen vertikalen punktabstand von 72 DPI. Auf dem bild sieht das 
folglich so aus, da nur jede dritte zeile einen punkt von einem zeichen 
aufnimmt. Dies ist kein fehler des emulators ! 9-nadler haben nun mal 
so einen groen punktabstand. Ein spezielles Gemview-bearbeitungsmodul
zum anpassen der punkte an die reale auflsung kann aber als feature
'geordert' werden. ntig kann dieses zum teil werden da die 240x216 
DPI im regelfall nicht von 9-nadlern real erreicht werden. die 
druckerpunkte 'matschen' leicht zusammen und berlagern sich 
teilweise. Dieses verhalten kann selbstverstndlich nicht ohne 
weiteres nachgebildet werden. das ist der grund, warum bilder, die mit
dem esc/p emulator erzeugt wurden, auf anderen druckern ausgedruckt, 
meist etwas blasser erscheinen als ein realer 9-nadeldruck (so als 
htte man ein etwas 'ausgelutschtes' farbband).

Soweit die 'druck auf image' theorie. Nun was praktisches:

Untersttzte kommandos des ESC/P Emulators V. 1.00:
====================================================

Grafikdruck in allen arten !
Dabei wird (aus techn. grnden) der (selten benutzte) modus mit 576 und 
720 punkten pro zeile nicht korrekt verarbeitet.


smtlich zeilenvor- und rckschub-kommandos bis auf kommandos die mit
- vertikalen tabulatoren oder
- absoluten positionen (z.B. auch blattanfang etc.) arbeiten.


rechte und linke randbegrenzung


unterstzung der draft-schriftarten
PICA (80 zeichen pro zeile) und
ELITE (96 zeichen pro zeile).
im modul sind sie in der deutschen belegung enthalten !
(also statt [\]{|}~  =>  Aa !)
es wird der zeichensatzraum von 32 bis 127 untersttzt.
eine sonderstellung nimmt ASCII 155 ein. dieses wird nicht
als zeichen interpretiert (ist aber auch nicht weiter tragisch -
wer braucht schon das ''-zeichen), sondern quivalent zu LF/CR be-
handelt, da dieses zeichen auf den atari XL's 'end of line' (EOL)
bedeutet.
wichtig ist nur noch, da ein LF (zeilenvorschub) ausreicht um einen
zeilenvorschub _und_ wagenrcklauf zu erhalten - enthlt der text
trotzdem noch einen wagenrcklauf (CR/LF), so wird die funktion nicht
negativ beeintrchtigt.
              

verarbeitung von schmalschrift (condensed) und
breitschrift (enlarged)

untersteichungen


alle kommandos knnen natrlich sinnvoll kombiniert werden !
(wer es nicht wei: dazu gehrt auch breit-schmal-schrift !)
die funktionscodes sind so wie im druckerhandbuch des 'star LC-10'
beschrieben umgesetzt.

wurde die interpretation der druckdaten beendet (dateiende oder seite
voll), so wird die anzahl der nicht ausgewerteten bytes der datei bis
zum erreichen des seitenendes angezeigt. wem dieser wert zu hoch ist 
-> feature bestellen...


---------------------------------------------------------------------------

######### 4. HISTORY ########

1.00 - Erste verffentliche version - mal sehen was fr funktionen 
noch gewnscht werden...


---------------------------------------------------------------------------

		5. Featureware Wunschliste und Kontaktadresse
                ---------------------------------------------
                
Erklrung: * = 10 DM   => *** = 30 DM

Funktion:                                                    | Preis:
=======================================================================
Superscript & Subsript                                       | ***
-------------------------------------------------------------+---------
Fettdruck & Schattendruck                                    | **
-------------------------------------------------------------+---------
Zeichensatznderung (angepasstes Modul) fr USA & GB         | **
-------------------------------------------------------------+---------
         "               "         "    fr FR & ITAL        | **
-------------------------------------------------------------+---------
         "               "         "    fr ESP 1 & 2        | **
-------------------------------------------------------------+---------
         "               "         "    fr DEN 1 & 2        | **
-------------------------------------------------------------+---------
Horizontal Tabulatoren und horizontale absolut Positionierung| **
-------------------------------------------------------------+---------
Download von Draftzeichenstzen                              | ***** 
-------------------------------------------------------------+---------
Mehrseitenverwaltung, vertikale Tabulatoren etc.             | *******
-------------------------------------------------------------+---------
Kursivdruck                                                  | ****
-------------------------------------------------------------+---------
korrekte Untersttz. von 576 und 720 Grafikpunkten pro Zeile | **
-------------------------------------------------------------+---------
berstreichen						     | **
-------------------------------------------------------------+---------
Bearbeitungsmodul: Punktverdickung und Interpolation         | ***
-------------------------------------------------------------+---------

wer weitere/nicht in der liste vorkommende features umgesetzt haben
will (vorausgesetzt sie haben was mit dem modul und seiner aufgabe zu
tun), kein problem - ich ffne horizonte ;-) - reden sie darber...

garantiert umsetzen werde ich _nicht_ NLQ-zeichenstze oder farbdruck
(es sei denn jemand gibt mir jeweils dafr:
****************************************************************************
 viel spass beim zhlen...)

scheine oder schecks mit den feature-wnschen gehen an:

			Christian Krger
			Im Erpelgrund 16
			13503 Berlin

sonst (bei fragen, bug-reports o..) am besten bers internet kontaktieren:

			chrisker@cs.tu-berlin.de
			
			

viel freude beim pseudo drucken !
