âJetzt schaltet er schon wieder nicht auf âProportional' um. Und der rechte Rand ist auch ganz ausgefranst. Ausserdem kann mein Drucker doch doppelt unterstrichen. Warum macht er das nicht?â âdu brauchst doch bloss mit TWDRUCK.PRG den Treiber entsprechend abzuĂ€ndern.â âAch so! Verflixt, da hatte ich doch mal irgendwo eine .DRK-Datei! Die kann sich doch nicht in luft aufgelöst haben!â
Besitzer des Textverarbeitungsprogramms TEMPUS WORD haben sicher alle so ihre Erfahrungen mit Dokumenten, die nicht im Grafikmodus gedruckt werden sollen, sondern im Textmodus. Nicht immer sieht das Ergebnis so aus, wie man es nach einem Blick auf den Bildschirm erwartet.
Oder man hat, wie im obigen Beispiel angesprochen, einen Drucker, der mehr kann, als der mitgelieferte Treiber zulĂ€Ăt. Ganz einfach: Man ergĂ€nzt die fehlenden Steuercodes oder Proportionaltabellen einfach mit TWDRUCK.PRG - sofern man das zugehörige Text-File hat!
Warum hat man bloĂ keines? DafĂŒr gibt es mehrere GrĂŒnde: 1
1 .Die Firma lieferte keine Textdatei mit, sondern nur den Treiber selbst.
2. Man hat in der Hitze des Gefechts die vielen Icons und Knöpfchen des TWDRUCK.PRG etwas oberflĂ€chlich angesehen und das Original mit einem satten âNichts' ĂŒberschrieben. Das Backup wollte man erst heute Nachmittag machen, jetzt ist gerade Vormittag!
3. Manchmal verhĂ€lt sich auch das TWDRUCK.PRG recht eigensinnig und schlĂ€gt nach dem Klick auf den âSmiley' den File-Namen der Textdatei (.DRK) als Treibernamen vor. Ein unbedachter Klick auf OK, und die Textdatei ist futsch!
Allen, denen es so ergeht wie dem Verfasser, sei nun Hilfe in Aussicht gestellt: Das folgende Programm MAKE_-DRK verwandelt eine TEMPUS WORD-Treiberdatei (.N9, .N24, .LAS, .TYP) zurĂŒck in eine edierbare Textdatei. Diese kann man dann wieder ganz normal mit dem TWDRUCK.PRG laden, bearbeiten, ĂŒbersetzen lassen und ... drucken ... drucken ... drucken.
Das Programm wurde der schnellen VerfĂŒgbarkeit halber in GFA-BASIC 3.5 abgefaĂt und fĂŒr TOS 1.4 und einen monochromen Bildschirm konzipiert. Besitzer von Farbbildschirmen brauchen allerdings nur die mit der PRINT-Funktion ausgegebenen Ăberschriften etwas zu kĂŒrzen. Auf Ă€lteren TOS-Versionen lĂ€uft das Programm, wenn man in bekannter Manier bei den beiden FILESELECT-Aufrufen die Titelzeile (#â...â) weglĂ€Ăt. Auf Schnörkel und eine ausgefeilte BenutzerfĂŒhrung wurde verzichtet, das Programm erklĂ€rt sich dem Benutzer von selbst. NatĂŒrlich sollte man darauf achten, daĂ man die richtigen Treiberdateien bearbeitet. Das Programm ĂŒberprĂŒft nĂ€mlich nicht, ob eine korrekte TW-Treiberdatei geladen wurde oder irgendein âNonsens'.
Die Bedienung ist sehr einfach. Nach dem Programmstart wĂ€hlt man die Treiberdatei an, die man zurĂŒckĂŒbersetzen möchte (wie gesagt: .N9, .N24, .LAS oder .TYP). Nach der Ăbersetzung trĂ€gt man in die Fileselector-Box den Namen der zu erzeugenden Textdatei ein (in der Regel mit der Endung .DRK). Das Programm wurde an den bei TEMPUS WORD mitgelieferten und an einigen âselbstgebastelten' Treibern erprobt. Die nochmalige Ăbersetzung durch TWDRUCK.PRG ergab jedesmal mit dem Original identische Treiberdateien. Damit dĂŒrfte das Programm wohl ausreichend praxistauglich sein. NatĂŒrlich sollte man nicht versĂ€umen, die Textdatei vor dem âSmiley-Klick' noch einmal auf VollstĂ€ndigkeit und sinnvolle Eingaben hin zu ĂŒberprĂŒfen (besonders die Proportionaltabellen!).
Zum Programm-Listing gibt es keine Besonderheiten zu erwĂ€hnen. Das Treiber-File wird zunĂ€chst in voller LĂ€nge in einen mit einem Array reservierten Speicherbereich geladen. Dann macht sich GFA-BASIC systematisch an die Analyse der Daten. Einige Programmzeilen und Unterroutinen bessern die erzeugten Strings optisch etwas auf. Mit der STORE-Funktion schlieĂlich wird ein editorgerechtes Text-File ausgegeben. Fehlerabfragen bezĂŒglich unzulĂ€nglicher Massenspeicher (Disk voll etc.) erfolgen der Einfachheit halber nicht. Wer den Programmlauf auf dem Bildschirm nĂ€her mitverfolgen will, lösche die Apostrophe vor den auskommentierten PRINT-Anweisungen.
FĂŒr diejenigen, die das Programm noch etwas detaillierter im Hinblick auf einzelne Treiberparameter gestalten wollen, hier tabellarisch eine Ăbersicht ĂŒber die Datenstruktur der TEMPUS-WORD-Treiberdatei. Die angegebenen Indizes korrespondieren direkt mit dem String-Feld p$() in BASIC. NĂ€heres ĂŒber den Aufbau der EintrĂ€ge in den Feldern kann man im TEMPUS-WORD-Handbuch nachlesen.
Noch ein wichtiger Hinweis zum SchluĂ: Einige Treiberdateien von TEMPUS WORD unterliegen dem Urheberrecht.
Wenn man schon diese Dateien rĂŒckĂŒbersetzt und seine eigene geistige Leistung dazuinvestiert, sollte man so ehrlich sein, und im Text-File die âQuelle des SchweiĂes' (sofern bekannt) erwĂ€hnen. Da gibt es doch die schöne Möglichkeit, Kommentare hinter Sternchen einzufĂŒgen. Aber schlieĂlich hat man als lizenzierter TWORD-Benutzer ja doch das Recht, einen Treiber leibgerecht auf den Drucker zuzuschneiden, mit dem man sich tagtĂ€glich herumĂ€rgern muĂ!
Index |
ErklÀrung |
0 |
Druckername, vorangestellt âTWDTâ |
1 |
Druckertyp |
2,3 |
Druckerinitialisierung |
4 |
DPI-Spacing-Tabelle |
5...106 |
Druckercodes |
68,69 |
Art der Grafikabtastung |
94...98 |
Zeilenvorschub, Blatt-Offset, Kopfpositionierung |
107...277 |
Zeichenkonversion |
278...309 |
Druckercodes fĂŒr ZeichensĂ€tze |
310...481 |
Proportionaltabellen |
' MAKE.DRK.GFA
' verwandelt .N9-, .N24- und .LAS-Dateien zurĂŒck in .DRK-Dateien
' Heinrich Emmerl (c) 1991 MAXON Computer
DIM sp%(5000),p$(500)
speich%=VARPTR(sp%(0))
CLS
PRINT
PRINT " RĂŒckverwandeln von TEMPUS WORD-Treibern (,N9 .N24 .LAS) in Textfiles (.DRK)"
PRINT SPC(19);"Bitte zuerst die Treiber-Datei auswÀhlen!"
PRINT
FILESELECT #"Treiber-Datei auswÀhlen","","",datei$
IF datei$<>"" AND RIGHT$(datei$,1)<>"\"
pfad$=MID$(datei$,1,RINSTR(datei$,"\"))
OPEN "I",#1,datei$
l%=LOF(#1)
BLOAD datei$,speich%
CLOSE #1
ELSE
END
ENDIF
PRINT "Ăbersetze Namen"
start%=speich%+1932
p$(0)=SPACE$(12)
BMOVE start%,VARPTR(p$(0)),12
p$(0)=LEFT$("TWDT"+p$(0)+SPACE$(20),20)+"*"
DO
null%=INSTR(p$(0),CHR$(0))
IF null%
MID$(p$(0),null%,1)=" "
ENDIF
LOOP UNTIL null%=0
' PRINT p$(0)
ADD start%,13
p$(1)=STR$(PEEK(start%))
' PRINT p$(1)
PRINT "Ăbersetze Codes"
i%=1
DO
fertig!=FALSE
INC i%
SELECT i%
CASE 4
wort(5)
CASE 94
INC start%
IF PEEK(start%)<>255
p$(i%)=STR$(256*PEEK(start%)+PEEK(start%+l))+" "
INC start%
fertig!=FALSE
ELSE
fertig1=TRUE
ENDIF
CASE 96
wort(2)
CASE 97,98
wort_byte
ENDSELECT
IF fertig!=FALSE
DO
INC start%
p|=PEEK(start%)
IF p|<>255
p$(i%)=p$(i%)+STR$(p|)+","
ENDIF
LOOP UNTIL p|=255
ENDIF
IF RIGHT$(p$(i%),1)=" , "
MID$(p$(i%),LEN(p$(i%)),1)=" "
trimmen
ENDIF
' PRINT p$(i%)
LOOP UNTIL i%=309
'
PRINT "Ăbersetze Prop-Tabellen"
DO
INC i%
y%=0
DO
INC start%
p|=PEEK(start%)
IF p|<>255
INC y%
IF y%<3
p$(i%)=p$(i%)+STR$(p|)+","
ELSE
p$(i%)=p$(i%)+STR$(p|)+" "
y%=0
ENDIF
ENDIF
LOOP UNTIL p|=255 OR start%>=speich%+1%
trimmen
' PRINT p$(i%)
LOOP UNTIL i%=481
'
CLS
PRINT
PRINT
PRINT SPC(15);"Bitte nun die zu erzeugende Text-Datei auswÀhlen!"
FILESELECT #"Text-Datei speichern (.DRK)",pfad$+"*.DRK","",datei$
IF datei$<>"" AND RIGHT$(datei$,1)<>"\"
OPEN "O", #1,datei$
STORE #1,p$(),482
CLOSE #1
ENDIF
ALERT 2,"|Noch eine ĂŒbersetzen?",1,"NEIN| JA ",dum%
IF dum%=1
END
ELSE
RUN
ENDIF
PROCEDURE trimmen
p$(i%)=TRIM$(p$(i%))
RETURN
PROCEDURE wort(words|)
y%=0
INC start%
IF PEEK(start%)<>255
DO
p$(i%)=p$(i%)+STR$(256*PEEK(start%)+PEEK(start%+1))+" "
ADD start%,2
INC y%
LOOP UNTIL y%=words|
trimmen
ENDIF
fertig!=TRUE
RETURN
'
PROCEDURE wort_byte
INC start%
IF PEEK (start%) 0255
p$(i%)=p$(i%)+STR$(256*PEEK(start%)+PEEK(start%+1))+" "
p$(i%)=p$(i%)+STR$(PEEK(start%+2))+","
ADD start%,2
trimmen
fertig!=FALSE
ELSE
fertig!=TRUE
ENDIF
RETURN