
~B~U3Anleitung zu ~IHackFax~I0 Version 1.30~N


~UWas ist ~IHackFax~I0?~N


~IHackFax~I0 ist ein Programmpaket fr die Atari/TOS Computer und ein 
ZyXEL Fax-Modem. Mit Hilfe dieses Programmpaketes ist es mglich,
Fax Seiten zu Senden, zu Pollen, zu Empfangen, Anzuschauen, zu
Drucken und Weiterzuverarbeiten.

~IHackFax~I0 ist Freeware. D.h. man darf das Programmpaket unentgeltlich
bentzen und beliebig oft kopieren und weitergeben. Die Weitergabe 
ist nur gestattet, wenn dafr keine Gebhren oder sonstige Zahlungen
verlangt werden. Eine Verbreitung ber Mailboxen ist erwnscht.
Freeware bedeutet in diesem Fall aber auch, dass man die Hhe des
Anerkennungsbeitrages an die Autoren frei whlen kann. Die Adresse fr
Ueberweisungen o.ae. befindet sich am Ende dieses Textes.



~IHackFax~I0 wurde von Helmut E. Neumann und Markus Bubendorf entwickelt.
Bei Problemen, Fragen, Fehlermeldungen und Verbesserungsvorschlgen
wende man sich an Markus Bubendorf. Fehlermeldungen bitte immer mit
einer genauen Beschreibung des Fehlers und der Umgebung (Version von 
~IHackFax~I0, TOS-Version, ROM-Version des Modems, AUTO-Programme, 
Accesories, Konfigurationsdateien, Kommandozeile, Startprogramm etc.)


~P3
~UWas gehrt zu ~IHackFax~I0?~N

Dieses Paket enthlt nur die ausfhrbaren Programme mit den dazu
gehrenden Dateien. Auf Wunsch kann jeder Interessierte den 
Sourcecode bei Markus beziehen. Dazu muss man lediglich eine 
formatierte Diskette und das Geld fr das Rckporto (Bitte 
Schweizer Franken!) an Ihn schicken.

Dieses Paket enthlt ~IHackFax~I0 in der Version 1.10. Dazu gehren die
folgenden Dateien. Sollte eine oder mehrere der Dateien fehlen, so
melde Dich bei Markus mit der Angabe, wo Du das Paket bezogen hast.

Datei                 Bemerkung
-------------------------------------------------------------------
FAXVIEW.PRG           Anzeige-, Druck- und Konvertierprogramm
FAXVIEW.RSC           Resource-File zu FaxView
FAXVIEW.INF           Gespeichertes Setup von FaxView
RCVFAX.TTP            Programm, um Fax-Seiten zu Empfangen
SENDFAX.TTP           Programm, um Fax-Seiten zu Senden
POLLFAX.TTP           Programm, um Fax-Seiten zu Pollen
ASC2G3.TTP            Konverter ASCII-->Fax-Seiten
QFAX2G3.TTP           Konverter fr Fax-Seiten vom QFax-Format 
                      ins ~IHackFax~I0 Format
HACKFAX.CFG           Konfigurationsdatei fr die *.TTP Programme
FAX1628.FON           Zeichensatz (16*28) fr ASC2G3
FAX0816.FON           Zeichensatz ( 8*16) fr ASC2G3
FAX0814.FON           Zeichensatz ( 8*14) fr ASC2G3
FAX0812.FON           Zeichensatz ( 8*12) fr ASC2G3
FAX0716.FON           Zeichensatz ( 7*16) fr ASC2G3
TELEFAX.SCN           Graphik mit dem Schriftzug 'Telefax'
HALLO.IMG             Graphik fr BEISPIEL.TXT
TIGER.IMG             Graphik fr BEISPIEL.TXT
READ_ME.TXT           'Startup' Informationen
ANLEIT.TXT            Dieser Text hier
BEISPIEL.TXT          Beispieltext fr ASC2G3
UPDATE.TXT            Text mit Neuerungen gegenber lteren Versionen
FEHLER.TXT            Bekannte Fehler
DOTO.TXT              Ideen fr weitere Versionen

~P3
~UWie bedient man ~IHackFax~I0?~N


Als allererstes ist die Datei HackFax.CFG an die eigenen Bedrfnisse
und Gegebenheiten anzupassen. HackFax.CFG ist eine einfache Textdatei,
die mit jedem Editor editiert werden kann. Der Aufbau der Datei ist
in ihr selbst erklrt.

~P3
~UAllgemeines~N

Allen .TTP Programmen kann bzw. muss man Parameter in der Kommandozeile
bergeben. Was erlaubt bzw. notwendig ist, ist bei den einzelnen 
Programmen aufgefhrt. Angaben ohne Klammern sind zwingend notwendig. 
Angaben in eckigen Klammern ([ und ]) sind optional; d.h. knnen 
verwendet werden, mssen aber nicht.
Die folgenden Parameter sind bei allen .TTP Programmen mglich:

-v:   Zeigt die Versionsnummer und das Compilationsdatum an. Das Programm
      wird anschliessend gleich wieder beendet.

-h:   Es wird eine kleine Hilfe zum Programm ausgegeben. Das Programm
      wird anschliessend gleich wieder beendet.

config_modfier: Alle Angaben aus der Konfigurationsdatei knnen auch in
      der Kommandozeile angegeben werden. Die Kommandozeile hat dabei
      Vorrang vor der Konfigurationsdatei. Wenn man Leerzeichen verwenden
      will, so muss das ganze Statement in Anfhrungszeichen (") bergeben
      werden. Beispiel "RMODE = WAIT"


Die .TTP Programme liefern bestimmte Return-Codes. Diese knnen von Shell-
Scripts o.. ausgewertet werden. Die Return-Codes sind in drei Gruppen aufgeteilt:
1. Programm wurde erfolgreich beendet.
2. Programm konnte seinen Auftrag im Moment nicht erfolgreich ausfhren.
3. Es trat ein nicht behebbarer Fehler auf.

Folgende Return-Codes sind definiert:

0: Alles i.O.
1: Programm wurde mit -v gestartet
2: Programm wurde mit -h gestartet

50: Gegenseite ist besetzt (BUSY)
51: Es kam aus irgend einem Grunde kein CONNECT zustande
52: Das Modem hat festgestellt, das der Dialtone fehlt
53: Abbruch durch Benutzer

100: Modem gibt keine Antwort
101: Zu wenig Speicher vorhanden
102: Datei nicht gefunden
103: Fehler in der Konfiguration
104: Fehlerhafter Parameter in der Kommandozeile
105: Angegebene 'Nummer' ist gar keine
-1 : Programm ist abgestrzt


~P3
~UASC2G3.TTP~N

Aufruf: asc2g3 [-v][-h] textfile [config_modifier]

ASC2G3 konvertiert ein ASCII-Textfile in ein Fax-File. Dieses Fax-File
kann anschliessend mit SENDFAX.TTP verschickt oder mit FaxView angeschaut
werden. Die Konvertierung geschieht gemss den Angaben in HackFax.CFG.
Der Filename des Fax-Files besteht aus dem Grundnamen des Textfiles plus
der Endung FAX.

Innerhalb des Textfiles sind gewisse Steuermglichkeiten mit Hilfe von
Kommandos mglich. Alle Kommandos bestehen aus dem Zeichen '~~' dem
direkt ein Kommandobuchstabe folgen muss. Hinter dem Kommandobuchstaben
folgen direkt die Parameter (falls vorhanden). Die Parameter knnen in vielen
Fllen (z.B. bei ~~O, ~~P oder ~~B) weggelassen werden. In diesen Fllen werden
sinnvolle Standardwerte eingesetzt.

Folgende Kommandos sind mglich:

~~Ln,m : Zeilenabstand neu setzen. n gibt die Anzahl der Zeilen vor den
        Buchstaben an. m gibt die Anzahl der Zeilen nach den Buchstaben an.

~~Pn   : Neue Seite beginnen. Der Parameter n (0..9) gibt an, wie stark 
        der Befehl wirken soll. Ohne eine Angabe wird auf jeden Fall 
        eine neue Seite begonnen. Mit n gibt man an, ab welchem Fllungsgrad
        der Seite eine neue Seiten begonnen werden soll. n=1 ==> Wenn die
        Seite mehr als 10% voll ist, ..., n=9 ==> neue Seite, falls diese
        mehr als 90% voll ist.

~~Efile: Textfile 'file' an der aktuellen Position einsetzen. Nachdem 
        file abgearbeitet wurde, wird mit der aktuellen Textdatei
        weitergefahren. Es knnen max. 8 Texte ineinander verschachtelt
        werden.

~~Cfile: Die Bearbeitung des aktuellen Textfiles wird beendet und es 
        wird mit file weitergemacht.

~~Ofile, offset, magnification, anz_zeilen, from: Graphikdatei 'file' an der
        momentanten Position einfgen.
        Die Graphik wird ber den Text (wie Folien) gelegt.
        offset gibt den Offset vom linken Rand in Pixel an. Der Wert wird
        auf den nchsten durch 8 teilbaren Wert gerundet. Bei einer 
        Angabe von 0 wird die Graphik an der momentanen horizontalen 
        Position eingefgt. Eine Angabe von -1 zentriert die Graphik.
        magnification gibt die vertikale Vergrsserung an. Zulssige Werte
        liegen zwischen 1 und 9. 
        anz_zeilen gibt an, wie viele Zeilen der Graphik max. eingelesen
        werden sollen.
        from gibt die Startzeile innherhalb der Graphik an.
        Unterstzte Graphikformate: DOODLE 400*640, IMG

~~Sfile, offset, magnification, anz_zeilen, from: Wie ~~O; die Graphik wird
        aber nicht ber den Text gelegt, sondern zwischen den Text eingefgt!

~~;    : Kommentarzeile

~~:    : Kommentarzeile, die aber auf den Bildschirm und in das LogFile
        ausgegeben wird.

~~Bn   : Auf Fettschrift umschalten. Der Parameter n ist optional. Wird
        er angegeben, so gibt er den Grad der 'Fettheit' an. Zulssige
        Werte sind die Ziffern von 0 bis 9. ~B0 schaltet die Fettschrift
        aus. Wird n weggelassen, wird ein sinnvoller Defaultwert genommen.

~~In   : Auf Schrgschrift umschalten. Der Parameter n ist optional. Wird
        er angegeben, so gibt er den Neigungsgrad der Buchstaben an.
        Grssere Werte ergeben eine grssere Neigung. Negative Wert
        ergeben eine Neigung nach links. Zulssige Wert liegen zwischen
        -9 und 9. ~I0 schaltet die Schrgschrift aus. Wird n weggelassen,
        so wird ein Wert von 5 eingesetzt.

~~Un   : Buchstaben unterstreichen. Fr den Parameter n gilt das gleiche
        wie bei der Fettschrift. n gibt die Dicke des Striches bei 200lpi
        an.

~~Xn   : Zeichenabstand auf n Pixel ndern. Auch hier ist n optional. Mgliche
        Werte liegen zwischen -5 und 99.


~~N    : Die Textattribute 'Fett', 'Schrg' und 'Unterstrichen' werden
        zurck gesetzt.

~~DY   : Die aktuelle Jahreszahl wird eingefgt.

~~DT   : Der Monat wird als Text eingefgt.

~~DO   . Der Monat wird als Zahl eingefgt.

~~DW   : Der Wochentag wird eingefgt.

~~DD   : Der Tag wird eingefgt.

~~DH   : Einfgen der Stunde.

~~DM   : Einfgen der Minute.

~~DS   : Einfgen der Sekunde.

~~DI   : Die eigene ID aus der Konfiguration wird eingesetzt.

~~DP   : Die aktuelle Seite wird eingesetzt.

~~DE   : Die Monate und Wochentage werden englisch ausgegeben.

~~DG   : Die Monate und Wochentage werden nun deutsch ausgegeben.

~~     : Das Zeichen ~~ wird eingesetzt.


~P3
~UQFAX2G3.TTP~N

Aufruf: qfax2g3 [-v][-h] qfaxfile [qfaxfile...] hackfaxfile

Die angegebenen QFax Dateien werden zu einer Datei zusammengefasst und
in der Datei hackfaxfile im ~IHackFax~I0 Format gespeichert. Die Endung
dieser Datei lautet immer auf .FAX. Sollte die Datei hackfaxfile 
bereits existiert, so werden die QFax-Files an diese Datei angehngt.
Die Konvertierung ist nur dann mglich, wenn die Auflsung und die
Kodierungsart in allen Dateien gleich ist.

Rckgabewerte: 0: Konvertierung verlief ohne Fehler
               1: Fehler beim Konvertieren


~P3
~URCVFAX.TTP~N

Aufruf: rcvfax [-v][-h][config_modifier][RMODE=betriebsart]


Es werden ein oder mehrere Faxe empfangen. Wird keine Betriebsart in der
Kommandozeile angegeben, so wird die Standardbetriebsart gemss der
Konfigurationsdatei HackFax.CFG genommen. Ist beim Start von RCVFAX.TTP
die Leitung CD (Carrier Detect) aktiv, so wird unabhngig von den Angaben
immer die Betriebsart MAILER eingenommen. Die Betriebsart hat folgende
Auswirkungen auf das Verhalten des Programmes:

MAILER : Das Modem befindet sich bereits im Fax-Connect Zustand. Es kann
         sofort mit dem Empfangen der Faxseiten begonnen werden. Weder
         der INIT noch der RCVINIT String wird ans Modem geschickt. Die
         serielle Schnittstelle und das Modem muss vom aufrufenden Programm
         korrekt initialisiert worden sein. Die Parameter des Fax-Connects
         mssen noch im Puffer der seriellen Schnittstelle sein. Nach
         Empfang der Fax-Seiten wird das Programm beendet.

IMMED  : Das Modem und die serielle Schnittstelle wird initialisiert.
         Gleich anschliessend wird versucht, ein Connect zu erreichen. Bei
         einem Fax-Connect werden die Fax-Seiten empfangen. Bei einem
         sonstigen Connect wird das MAILER-Programm aus HackFax.CFG
         gestartet. Kommt kein Connect zustande, so wird das Programm
         beendet. Ebenso wird das Programm beendet, wenn die Fax-Seiten
         empfangen wurden und wenn das MAILER-Programm beendet wurde.

WAIT   : Es wird auf einen Anruf gewartet und nach der unter RING
         eingestellten Anzahl von RINGs entgegengenommen. Je nach Connect
         wird das MAILER-Programm gestartet oder die Fax-Seiten empfangen.
         Anschliessend geht das Programm wieder in die Warteschleife.

WAITONE: In dieser Betriebsart wartet RCVFAX.TTP ebenfalls auf einen Anruf.
         Nachdem dieser beantwortet wurde, wird das Programm allerdings
         beendet.

~BAchtung: Das Aufrufen des MAILER-Programmes ist im Moment noch nicht
         implementiert!~N
~P3
RcvFax kann mit neueren Versionen von Binkley Term (neuer als Version
3.03) zusammen arbeiten. Sobald Binkley Term einen Fax Connect
festgestellt hat, wird RcvFax aufgerufen, welches die Seiten empfngt.
RcvFax erkennt selbststndig, dass bereits ein Connect vorliegt und beginnt
unmittelbar mit dem Empfang.
Damit die Zusammenarbeit klappt, muss man wie folgt vorgehen.
- RcvFax muss beim Programmstart die Datei HackFax.CFG finden. Am Besten
  man kopiert RCVFAX.TTP und HackFax.CFG in das gleiche Verzeichniss wie
  Binkley Term.
- Der RCVPATH aus der Konfigurationsdatei HackFax.CFG muss vorhanden sein.
- In BINKLEY.CFG ist die Zeile 'FAX   rcvfax.ttp' einzugeben.
- Der INIT-String von Binkley Term muss um '#B1+FCLASS=6' erweitert
  werden. Zyxel empfiehlt, diesen Teil ganz am Schluss des INIT-Strings
  anzugeben. Zudem muss das Modem so konfiguriert werden, dass es automatisch
  abnimmt (S0=1).
- Irgendwo (Aber wo am Besten? Ich mache es im PREINIT-String) muss die Local-ID
  angegeben werden. Dazu ist #P mit nachfolgender Local-ID ans Modem zu senden.
  Achtung! Alles nach #P wird vom Modem als ID interpretiert!

~P3
Um RcvFax zusammen mit Connect zu betreiben, ist in den Anrufbeantworteroptionen
bei Fax-Epmfang ein Script zu starten, welches in den Pfad von RcvFax wechselt und
dieses mit "RcvFax RMODE=IMMED" started. Das Script sollte keine Zeichen ans Modem
senden.

~P3
~USENDFAX.TTP~N

Aufruf: sendfax [-v][-h] nummer faxfile [config_modifier]


Die Datei faxfile wird an das Fax-Gert unter der Nummer 'nummer'
geschickt. Unabhngig davon, ob die Datei fehlerfrei verschickt werden
konnte oder nicht, wird das Programm nach einem Anruf beendet.
Wenn innerhalb der Nummer Leerzeichen verwendet werden (z.B. 123 89 05),
so muss die ganze Nummer in Anfhrungszeichen " gesetzt werden. Innerhalb
der Nummer knnen auch andere Zeichen als nur Ziffern verwendet werden.

Anstatt einer Nummer kann man auch einen Namen es dem Telephonbuch angeben.
Das Telephonbuch hat den Namen HACKFAX.NUM und muss sich irgendwo befinden, wo
es von HackFax gefunden wird. Der Aufbau ist in der Beispielsdatei beschrieben.

~P3
~UPOLLFAX.TTP~N

Aufruf: pollfax [-v][-h] nummer [config_modifier]


Es wird versucht ein Fax vom Fax-Gert unter der Nummer nummer zu empfangen.
Wie bei sendfax wird nach einem Anruf das Programm beendet. Ebenfalls wie bei
sendfax muss die Nummer eventuell in Anfhrungszeichen gesetzt werden!


~P3
~UFAXVIEW.PRG~N

Mit FaxView kann man erstellt Fax-Dateien vor dem Versenden kontrollieren
und empfangene Fax-Seiten anschauen. Das Programm kann zustzlich zu den
~IHackFax~I0 Dateien auch die Fax-Dateien von ZFAX (MS-DOS Programm) und QFax
verarbeiten.

Die einzelnen Menueintrge haben folgende Bedeutung:

Open: Es kann eine neue Datei angewhlt werden, die dann angezeigt wird.
Info: Zeigt Informationen zur aktuellen Seite an.
Copy: Die aktuelle Seite wird in der aktuellen Darstellung ins Clipboard
      kopiert. Das Clipboard muss vorhanden und eingerichtet sein!
Save: Speichert die Seite in der 1:2 Darstellung
Save/2: Speichert die Seite in der 1:1 Darstellung.
Print Page: Die aktuelle Seite wird ausgedruckt.
Quit: FaxView wird beendet.

Next Page: Anzeige der nchsten Seite.
Previous Page: Anzeige der vorhergehenden Seite.
Go to Page: Direktes Eingeben einer Seitenzahl.
Show 1:1: Seite normal darstellen.
Show 1:2: Seite vergrssert darstellen.
Flip Page: Seite kehren.

Config: Diverse Einstellungen vornehmen.
Save Config: Gemachte Einstellungen in der Datei FAXVIEW.INF speichern.

Die einzelnen Seiten kann man zustzlichen zu den Schiebern an den 
Fenstern auch noch mit den Cursortasten verschieben. Normalerweise werden
dabei kleine Schritte gemacht. Zusammen mit der Shift- bzw. mit der Control-
Taste kann man grssere Sprnge machen.
Die nchste Seite kann man auch dadurch darstellen lassen, dass man <Return>
oder <Enter> drckt.
Wenn man eine Zifferntaste 0...9 drckt, so gelangt man direkt in die 
'Go to Page' Dialogbox in der die entsprechende Ziffer bereits eingetragen
ist. Wenn man ein paar Seiten berspringt, so mssen die dazwischenliegenden
Seiten trotzdem dekodiert und angezeigt werden.

~P3
~U~BWas, wenn etwas nicht wie gewnscht luft?~N

Kein Programm ist fehlerfrei. Wer einen Fehler gefunden hat, soll mir 
diesen bitte melden, damit ich ihn beheben kann. Bei Fehlermeldungen
bitte IMMER die folgenden Informationen mitliefern:
- Konfigurationsdatei (HACKFAX.CFG)
- Computer-Modell, TOS Version, AUTO-Programme, Accesories
- ROM-Version des ZyXEL (ATI, ATI1)
- Erzeugtes Logfile mit LOGLEVEL=5
Der Fehler muss von mir reproduzierbar sein. Dazu bentige ich die
verwendeten Dateien. Ausserdem ist das Programm danach zu untersuchen,
ob es ev. nur zusammen mit einem AUTO-Programm bzw. einem Accessory
Probleme macht.


~P3
~U~BAusblick~N

Fr zuknftige Versionen von HackFax sind die folgenden Aenderungen und
Erweiterungen geplant. Bitte teilt mir mit, welche Aenderung ich mit
Vorrang realisieren soll und welche Aenderungen weniger wichtig sind. Bitte
bedenkt aber auch, dass HackFax Freeware ist und ich nicht unendlich viel
Zeit zur Verfgung habe. Gewisse Aenderungen (z.B. komfortable Shell, aus
der man alles einfach bedienen und konfigurieren kann) erfordern einfach
sehr viel Zeit.
Nun also die geplanten Aenderungen:

- Die schon erwhnte Shell.
- Unterstzung des Drag & Drop Protokolls von MultiTOS.
- Zusammenfassen von PollFax, SendFax und RcvFax zu einem Programm.
- ACC-Betrieb dieser Programme. Damit ist der Empfang im Hintergrund mglich.
- Zeitversetztes Senden oder Pollen von Faxen.
- MultiTOS Version, die Faxe im Hintergrund empfngt, sendet oder pollt.
- Dynamische Speicherverwaltung von FaxView. Dadurch verbraucht es nur noch
  den wirklich bentigten Speicher. Zudem kann man 'beliebig' lange Faxe
  anzeigen und einen Seitencache realisieren.
- Bei ASC2G3 knnen alle vier Rnder individuell eingestellt werden.
- Kopf- und Fusszeilen bei ASC2G3.
- Ansteuerung des Modems ber die Fax Class 2 Befehle.


~P3
Adressen (Fehlermeldungen bitte nur an Markus):


Autor des Originalpaketes:

Helmut E. Neumann
Im Appensee 4
W6100 Darmstadt 23
BR Deutschland


Weiterentwicklungen:

Markus Bubendorf
Kirchgasse 3
4124 Schnenbuch
Schweiz

E-Mail: Markus Bubendorf on 2:301/212.25 @ FidoNet




