home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ST-Computer Leser 1998 October
/
STC_CD_10_1998.iso
/
ONLINE
/
DFUE
/
STARFAX
/
FDDKIT_FTQ
/
GFA
/
FDDKIT.LST
< prev
next >
Wrap
File List
|
1998-09-26
|
3KB
|
136 lines
' Fax-driver for making a fax file
' Load the inline file in procedure fax_create before use!!!!
'
' Fax-Treiber zum erstennen von Faxen.
' WICHTIG: in Procedure fax_create das Inline einladen!!!
'
' ========= v TEST and Demo Program =======
RESERVE 256000
test
END
'
> PROCEDURE sicher_seite(faxpage%,lines&)
LOCAL y&
'
' Beispielaufruf zum Sichern einer ganzen Seite:
'
' Rastergrafik aus Adresse faxpage% mit lines& Zeilen und
' 256 Bytes/Zeile wird in 64 Zeilen gro₧e Stücke zerlegt und gesichert.
'
' Save a bitmap stored at Address faxpage% with lines& and 256 bytes/line
' It is devided into parts of 64 lines to animate a mouse cursor.
'
fax_create("BILD_")
fax_merge("FAX_LOGO.FAH")
'
FOR y&=0 TO lines&-1 STEP 64
maus&=(maus&+1) AND 3
maus_form(maus&)
fax_bitmap(faxpage%+y&*256,256,MIN(lines&-y&,64))
NEXT y&
'
fax_close
RETURN
> PROCEDURE test
bitmap%=MALLOC(256*16+4)
FOR x&=0 TO 256*16-1 ! Make a simple bitmap of horizontal lines
BYTE{bitmap%+x&}=15
NEXT x&
'
sicher_seite(bitmap%,16)
~MFREE(bitmap%)
'
set_cookie("FAX!",1) !Starten
DELAY 1
RETURN
> PROCEDURE set_cookie(a$,r%)
$F%
LOCAL found!
found!=FALSE
a%=LPEEK(&H5A0)
IF a%>0
WHILE {a%}>0
IF {a%}=CVL(a$)
{a%+4}=r%
found!=TRUE
ENDIF
ADD a%,8
WEND
IF found!=FALSE
{a%}=CVL(a$)
{a%+4}=r%
{a%+8}=0
ENDIF
ENDIF
RETURN
' ======== ^ End of DEMO ================
'
' GFA-Basic FAX-Driver
> PROCEDURE fax_create(filename$)
' Erstellt ein neues FAX im sendeverezeichnis.
' filebname ohne Pfad und ohne extension.
' Diese Funktion immer zuerst aufrufen!
'
' ******* Hier mit HELP den FAXDRIVE.INL einladen *******
' ******* load FAXDRIVE.INL (HELP-Key) here! *******
INLINE faxdrive%,2732
'
~C:faxdrive%(1,L:V:filename$) !FAX create
RETURN
> PROCEDURE fax_bitmap(adr%,offset&,lines&)
' Schreibe Bitmapdaten
' adr%: Adresse der Bitmap
' offset: Länge einer Pixelzeile in Byte
' (üblich: 216 byte=1728 pixel, links und recht 64 Pixel rand)
' lines: Anzahl Zeilen
'
~C:faxdrive%(2,L:adr%,offset&,lines&)
RETURN
> PROCEDURE fax_pixelline(adr%)
' Schreibe eine Pixelzeile von 1728 Pixel.
'
~C:faxdrive%(2,L:adr%,216,1)
RETURN
> PROCEDURE fax_merge(filename$)
' Einfügen einer bestehenden Fax-datei
' Filename DARF mit Pfad sein, sonst Sendepfad
'
filename$=filename$+CHR$(0)
~C:faxdrive%(3,L:V:filename$,3,0)
RETURN
> PROCEDURE fax_close
' Schliesse die mit Fax create erstellte Datei.
'
~C:faxdrive%(4)
RETURN
> PROCEDURE fax_reopen
' Öffnet Datei nach Close, um weitere Daten anzuhängen
'
~C:faxdrive%(5)
RETURN
> PROCEDURE fax_nextpage
' Erstellt wie Fax-Create eine neue Datei.
' Die Datei-Extension wird um 1 erhöht, z.B. für mehrseitige Dokumente,
' um eine neue Datei anzufangen.
' Die alte Datei mu₧ vorher mit fax_close geschlossen werden.
'
~C:faxdrive%(6)
RETURN
'
> PROCEDURE maus_form(y&)
' etwas Mausspielrerei, kann auch weggelassen werden
' in die INLINES MAUS1.INL ... MAUS4.INL einbinden.
LOCAL maus%
SELECT y&
CASE 0
INLINE maus%,74
CASE 1
INLINE maus%,74
CASE 2
INLINE maus%,74
DEFAULT
INLINE maus%,74
ENDSELECT
~GRAF_MOUSE(255,maus%)
RETURN