home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
pc
/
0400
/
CCE_0406.ZIP
/
CCE_0406.PD
/
FAX_DEV.KIT
/
FAX_OUTP.DOC
< prev
next >
Wrap
Text File
|
1992-04-04
|
5KB
|
144 lines
Dokumentation des TeleOffice Output-Cookies
===========================================
Stand 4.4.1992 Version 1.0
! Änderungen genüber der Vorversion sind durch "!" gekennzeichnet
1. Konzept:
Über den Output-Cookie von TeleOffice erhalten Applikationsprogramme
Zugriff eine Reihe von Funktionen, die eine bequeme und flexible
Ausgabe von Grafik und Text per Faxmodem erlauben.
Der Benutzer muß hierzu nur zu Beginn mit der TeleOffice Software die
Empfänger des Telefaxes angeben und kann dann mit seiner
Textverarbeitung oder einem DTP-Programm, sein Telefax erstellen. Dabei
kann ein Telefax aus dem Output beliebig vieler Programme bestehen, und
Text und Grafik gleichzeitig enthalten.
Wenn das Fax auf diese Weise fertiggestellt ist, wählt der Anwender den
Sendezeitpunkt für das Telfax aus, und der Vorgang ist abgeschlossen.
2. Output-Cookie + Output-Struktur
Cookie-Name: "FxOP"
Cookie-Value: FAX_OUTPUT *fop;
typedef struct {
int version; /* Version 1.00 -> 0x0100 */
int fax_ready;
int x_dpi; /* X-Auflösung des Faxes */
int y_dpi; /* Y-Auflösung des Faxes */
long page_height; /* in mm */
long page_width; /* in mm */
int tot_txtlines; /* Seitenhöhe in Textzeilen */
int tot_pixlines; /* Seitenhöhe in pixelzeilen */
int act_page; /* aktuelle Seitennummer */
int (*init_app)(int new_page, int xres, int yres,
int page_len);
void (*exit_app)( void );
int (*bit_out)( void *bit_map,int width,int height,
int word_width);
int (*txt_out)( char *string );
int (*lf)( void );
int (*ff)( void );
int (*page_break)( void );
! int cdecl (*Cinit_app)(int new_page, int xres, int yres,
! int page_len);
! int cdecl (*Cbit_out)( void *bit_map,int width,int height,
! int word_width);
! int cdecl (*Ctxt_out)( char *string );
! int cdecl (*Clf)( void );
! int cdecl (*Cff)( void );
! int cdecl (*Cpage_break)( void );
!
! int rsvd[20];
/*
* die folgenden Daten sind zur internen Verwendung
*/
void (*init_syns)( char *syn_file );
char file_name[128]; /* Ausgabedatei */
int fh; /* file handle */
char sig_string[128];
int page_empty;
int pix_line;
int txt_line;
int pages;
long max_bytes;
} FAX_OUTPUT;
! Die Parameterübergabe und das Funktionsergebniss der über diese Struktur
! zur Verfügung gestellten Unterprogramme geschieht über Register, wie bei
! Pure C bzw. Turbo C. ( Interger D0..D2, Pointer A0..A1,Rest Stack )
!!
!! Es sind sämliche Funktionen nun Ausserden mit Standard-C Stackübergabe
!! vorhanden.
!!
!! Die Rückgabewerte befinden sich in Register D0, bei den cdecl Funktionen
!! dagegen auf dem Stack.
3. Ausgabe als Telefax
a. wenn <fax_ready> == 0 hat der Benutzer noch keinen Empfänger
angeben. Weisen Sie ihn bitte darauf hin und brechen Sie den
Druckvorgang hier ab.
b. Entnehmen Sie aus den Elementen x_dpi und y_dpi die Auflösung des zu
erstellenden Telefaxes.
x_dpi ist bei den momentan gebräuchlichen Faxgeräten immer 196 Dpi.
! y_dpi ist entweder 196 dpi, wenn das Fax in Fein erstellt wird, oder
! 98 dpi, wenn das Fax in Normaler Auflösung erstellt wird. Denken Sie
! bitte unbedingt, bei init_app die Y-Auflösung Ihrer Bitmap korrekt
! zu übergeben, da Sie ansonsten u.U. verzerrte Telefaxe erzeugen.
c. Aufruf von init_app( ... ), wobei die Parameter folgende Bedeutung
haben:
new_page==1: Wenn die aktuelle Seite schon benutzt ist,
benutze die nächste.
new_page==0: Ausgabe auf aktueller Seite fortsetzen.
xres: Auflösung Ihrer Bitmap in x-Richtung (in dpi)
wenn xres==0 oder xres==x_dpi wird nicht
skaliert.
yres: wie xres.
page_len: hier kann die Seitenlänge eingestellt werden,
oder page_len==0 für keine Änderung.
(in Textzeilen a 32 pix_lines)
d. Aufruf von txt_out( ... )
string: wird auf nächster Textposition ausgegeben.
Bemerkung: txt_out führt keinen Papiervorschub aus, sondern
positioniert den Text auf die aktuelle
Grafikposition. Wenn nur Text ausgegeben werden
soll, muß nach jeder Textzeile ein lf( )
aufgerufen werden.
Der interne Textbuffer wird ausgegeben, wenn
(pixline % 32)==0.
e. Aufruf von bit_out( ... )
bit_map: Zeiger auf die monochrome Bitmap (Word-aligned)
width: Breite der Bitmap in Pixeln
height: Höhe der Bitmap in Pixeln
word_width: offset von Zeile <n> zu <n+1> in 16-Bit Worten.
f. lf( )
führt einen Vorschub von einer Textzeile aus.
g. ff( )
führt einen FormFeed aus. Die Seite ist damit abgeschlossen.
h. page_break( )
erzeugt einen Seitenumbruch ohne die Seite auf die angegebene
Seitenlänge aufzufüllen.
4. Return values
0: kein Fehler
<>0 Fehler aufgetreten