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 >
File List  |  1998-09-26  |  3KB  |  136 lines

  1. ' Fax-driver for making a fax file
  2. ' Load the inline file in procedure fax_create before use!!!!
  3. '
  4. ' Fax-Treiber zum erstennen von Faxen.
  5. ' WICHTIG: in Procedure fax_create das Inline einladen!!!
  6. '
  7. ' ========= v TEST and Demo Program =======
  8. RESERVE 256000
  9. test
  10. END
  11. '
  12. > PROCEDURE sicher_seite(faxpage%,lines&)
  13.   LOCAL y&
  14.   '
  15.   ' Beispielaufruf zum Sichern einer ganzen Seite:
  16.   '
  17.   ' Rastergrafik aus Adresse faxpage% mit lines& Zeilen und
  18.   ' 256 Bytes/Zeile wird in 64 Zeilen gro₧e Stücke zerlegt und gesichert.
  19.   '
  20.   ' Save a bitmap stored at Address faxpage% with lines& and 256 bytes/line
  21.   ' It is devided into parts of 64 lines to animate a mouse cursor.
  22.   '
  23.   fax_create("BILD_")
  24.   fax_merge("FAX_LOGO.FAH")
  25.   '
  26.   FOR y&=0 TO lines&-1 STEP 64
  27.     maus&=(maus&+1) AND 3
  28.     maus_form(maus&)
  29.     fax_bitmap(faxpage%+y&*256,256,MIN(lines&-y&,64))
  30.   NEXT y&
  31.   '
  32.   fax_close
  33. RETURN
  34. > PROCEDURE test
  35.   bitmap%=MALLOC(256*16+4)
  36.   FOR x&=0 TO 256*16-1   ! Make a simple bitmap of horizontal lines
  37.     BYTE{bitmap%+x&}=15
  38.   NEXT x&
  39.   '
  40.   sicher_seite(bitmap%,16)
  41.   ~MFREE(bitmap%)
  42.   '
  43.   set_cookie("FAX!",1)   !Starten
  44.   DELAY 1
  45. RETURN
  46. > PROCEDURE set_cookie(a$,r%)
  47.   $F%
  48.   LOCAL found!
  49.   found!=FALSE
  50.   a%=LPEEK(&H5A0)
  51.   IF a%>0
  52.     WHILE {a%}>0
  53.       IF {a%}=CVL(a$)
  54.         {a%+4}=r%
  55.         found!=TRUE
  56.       ENDIF
  57.       ADD a%,8
  58.     WEND
  59.     IF found!=FALSE
  60.       {a%}=CVL(a$)
  61.       {a%+4}=r%
  62.       {a%+8}=0
  63.     ENDIF
  64.   ENDIF
  65. RETURN
  66. ' ======== ^ End of DEMO ================
  67. '
  68. ' GFA-Basic FAX-Driver
  69. > PROCEDURE fax_create(filename$)
  70.   ' Erstellt ein neues FAX im sendeverezeichnis.
  71.   ' filebname ohne Pfad und ohne extension.
  72.   ' Diese Funktion immer zuerst aufrufen!
  73.   '
  74.   ' ******* Hier mit HELP den FAXDRIVE.INL einladen *******
  75.   ' ******* load FAXDRIVE.INL (HELP-Key) here!      *******
  76.   INLINE faxdrive%,2732
  77.   '
  78.   ~C:faxdrive%(1,L:V:filename$)  !FAX create
  79. RETURN
  80. > PROCEDURE fax_bitmap(adr%,offset&,lines&)
  81.   ' Schreibe Bitmapdaten
  82.   ' adr%: Adresse der Bitmap
  83.   ' offset: Länge einer Pixelzeile in Byte
  84.   '         (üblich: 216 byte=1728 pixel, links und recht 64 Pixel rand)
  85.   ' lines: Anzahl Zeilen
  86.   '
  87.   ~C:faxdrive%(2,L:adr%,offset&,lines&)
  88. RETURN
  89. > PROCEDURE fax_pixelline(adr%)
  90.   ' Schreibe eine Pixelzeile von 1728 Pixel.
  91.   '
  92.   ~C:faxdrive%(2,L:adr%,216,1)
  93. RETURN
  94. > PROCEDURE fax_merge(filename$)
  95.   ' Einfügen einer bestehenden Fax-datei
  96.   ' Filename DARF mit Pfad sein, sonst Sendepfad
  97.   '
  98.   filename$=filename$+CHR$(0)
  99.   ~C:faxdrive%(3,L:V:filename$,3,0)
  100. RETURN
  101. > PROCEDURE fax_close
  102.   ' Schliesse die mit Fax create erstellte Datei.
  103.   '
  104.   ~C:faxdrive%(4)
  105. RETURN
  106. > PROCEDURE fax_reopen
  107.   ' Öffnet Datei nach Close, um weitere Daten anzuhängen
  108.   '
  109.   ~C:faxdrive%(5)
  110. RETURN
  111. > PROCEDURE fax_nextpage
  112.   ' Erstellt wie Fax-Create eine neue Datei.
  113.   ' Die Datei-Extension wird um 1 erhöht, z.B. für mehrseitige Dokumente,
  114.   ' um eine neue Datei anzufangen.
  115.   ' Die alte Datei mu₧ vorher mit fax_close geschlossen werden.
  116.   '
  117.   ~C:faxdrive%(6)
  118. RETURN
  119. '
  120. > PROCEDURE maus_form(y&)
  121.   ' etwas Mausspielrerei, kann auch weggelassen werden
  122.   ' in die INLINES MAUS1.INL ... MAUS4.INL einbinden.
  123.   LOCAL maus%
  124.   SELECT y&
  125.   CASE 0
  126.     INLINE maus%,74
  127.   CASE 1
  128.     INLINE maus%,74
  129.   CASE 2
  130.     INLINE maus%,74
  131.   DEFAULT
  132.     INLINE maus%,74
  133.   ENDSELECT
  134.   ~GRAF_MOUSE(255,maus%)
  135. RETURN
  136.