Readme zum STARFAX - 'FDDKIT' 07.06.93 Mit dem beiliegendem BASIC Source-code sollte jeder, der etwas besser programmieren kann, in der Lage sein, seine eigenen FAX-Treiber zu erstellen. Der Quellcode kann in GFA-Basic mit 'Merge' geladen werden. Beiliegend befinden sich noch ASSEMBLER-Inline-Codes, welche in die INLINE-Zeilen (auf die Zeilen gehen und dann HELP drcken!) eingeladen werden mssen. Das weitere Konzept ist eigentlich ganz einfach: Zuerst wird in einem Speicherbereich die Fax-Seite als grožes, blicherweise 1728 Pixel breites, Rasterbild aufgebaut. (Das ist eigentlich fr euch das schwierigste an der Sache.) Ich empfehle dafr 256 Bytes pro Rasterzeile zu verwenden. Nun muž man nur noch die Procedure 'Sicher_seite' aufrufen und als Parameter die Speicher-Adresse und Zeilenzahl der Seite angeben. Fertig! War doch nicht so kompliziert, oder? So, nun fr alle BASIC-Hasser, Assembler-Freaks, Neugierige und die, die nicht meinen GFA-Basic Sourcecode verwenden wollen, folgt nun noch eine Beschreibung der Parameter fr die Assembler(Inline) -Routiene: Die Routiene muž irgendwie das Listing eingebunden werden. Dies geschieht z.B: in GFABASIC ber INLINE, im TURBO-ASSEMBLER ber IBYTES 'Dateiname': INLINE faxdrive%,2100 Nun wird ein 5-stelliger String mit den ersten 5 Buchstaben fr den Dateinamen bestimmt. a$="BILD_" Nun gibt es bisher 4 Funktionen: Funktion 1: Datei anlegen ========================= Nun ruft man den Assembler-Code mit Parameter 1 (fr Datei-anlegen) und den Dateinamen-Anfang auf. Die Parameter werden auf dem STack als WORDs und LONGS bergeben. ( Die Funktionsnummer kommt _zuletzt_ auf den STack ! ) ~C:faxdrive%( 1 , L: V: a$ ) | | Funktionsnr. fr neue Datei LONG:Zeiger auf Dateiname Nach dem Aufruf der Funktion ist die Datei bereits angelegt. Man braucht sich um Dateipfade etc.. _NICHT_ zu kmmern, das geschieht anhand der Datei STARCALL.SET automatisch. Diese Funktion muž immer aufgerufen werden, bevor Daten geschrieben werden. Funktion 2: Daten schreiben =========================== Mit Parameter 2 werden Daten einer Rastergrafik aus dem Speicher in die bestehende Datei geschrieben. Die Rastergrafik sollte 1728 Pixel breit sein, mit links und rechts ca. 64 Pixel Rand. Fr den Aufbau der Seite im Speicher empfehle ich eine Breite von 256 Bytes pro Zeile (2048 Pixel). ~C:faxdrive%(2, L: faxbild% , 256, lines& ) !FAX-Daten sichern | | | | Funktionsnr.-+ | | +-- Anzahl Raster-Zeilen | | LONG: Adresse der Daten-+ +- Breite des Rasters in Bytes Trotz Assembler-Code dauert das Codieren und Sichern einer Seite noch eine ganze Zeit. Ich emfpfehle, die zu erstellenden Seite in mehre Teilstcke zu zerlegen, und die Funktion mehrmals aufzurufen, so kann z.B. eine Ausgabe der Konvertierung in % gemacht werden, oder anderes Dargestllt werden. (Ich ver„ndere gerne den Mauszeiger) Funktion 3: Titel einfgen ========================== Fgt die Datei FAX_HEAD.FAH aus dem Sende-Verzeichnis als Kopfzeile ein. Diese Funktion sollte normalerweise vor Funktion 2 ausgefhrt werden. ~C:faxdrive%(3) !Fgt einen Titel ein Funktion 4: Faxdatei abschliežen ================================ Die mit Funktion 1 ge”ffnete FAX-Datei wird abgeschlossen. ~C:faxdrive%(4) !Close File Funktion 5: Datei wiederer”ffnen ================================ ™ffnet die mit Funktion 1 zuletzt erstellte Datei erneut, wenn Sie bereits mit Funktion 4 geschlossen wurde. Fr die programmierung eigener Fax-Treiber ist das sicher uninteressant, aber weil es die Funktion gibt, habe ich Sie auch dokumentiert. Ich brauchte Sie z.B. fr den Calamus- Treiber. ~C:faxdrive%(5) !Reopen File Zum Schluss: ============ - Der Fax-treiber ist Multi-Tos-tauglich und kann Faxe im Hintergrund erstellen. Ein Warten ist dann nicht mehr n”tig. - šbrigens: ein FAX hat 1728 Pixel/Zeile bei 196 DPI, sollte 2200 Zeilen nicht berschreiten. - Fr Zeichens„tze empfehle ich eine Gr”že von ca. 16*32 Pixel, das reicht fr mehr als 100 Zeichen/Zeile und mehr als 65 Zeilen. - Programmiertip: Zum Erstellen der grožen FAX-Seiten sind die VDI-Raster- funktionen COPY_RASTER ganz hilfreich. - Fax-Seiten sind natrlich monochrome, also bitte 1 Bitplane! - Bitte sendet mir selbst erstellte Fax-Treiber zu, ich kann Sie dann auch anderen Usern zur Verfgung stellen. Gibt dann auch eine kleine Gegenleistung dafr. So, das wars. Bei Fragen ruft mich doch einfach mal an. Ingo Linkweiler (INLI)