home *** CD-ROM | disk | FTP | other *** search
/ M.u.C.S. Disc 2000 / MUCS2000.iso / anwend / luna121 / module / develop.txt < prev   
Text File  |  1999-06-05  |  3KB  |  62 lines

  1.     
  2.  Modulspezifikation zum einfachen Filtermodul von Luna.
  3.  ------------------------------------------------------------------------------
  4.  
  5.  - Ein Luna-Filtermodul trägt die Dateiextension "FM" bzw. "fm".
  6.  - Das Modul wird von Luna direkt geladen und angesprungen (direkt ans Textsegment,
  7.    ohne pexec()-Modi, ohne Relozierung).
  8.  - Die Parameterübergabe erfolgt über den Stack.
  9.  - Das Modul ist eine normale Programmdatei mit dem 28 Byte langen Header.
  10.  
  11.  Rückgabeparameter in D0, Register d0-d7 und a0-a2 dürfen verändert werden.
  12.  Das Filtermodul bleibt wärend der Blockbearbeitung im Speicher und wird
  13.  vor Beginn der Filterung einmal zur Initialisierung, dann für jede 
  14.  Zeile des zu filternden Blockes und nach Filterung einmal zur 
  15.  Deinitialisierung aufgerufen.
  16.  
  17.  Möchte ein solches Modul die Zeilenlänge ändern (z.Bsp. durch ersetzen
  18.  einer Zeichenkette durch eine Andere), dann ist der Luna-Arbeitspuffer
  19.  zu verwenden, dessen Adresse ebenfalls übergeben wird.
  20.  
  21.  Eine Ggf. geänderte Zeichenkette (Nullterminiert) wird von Luna aus dem 
  22.  Arbeitspuffer ausgelesen und dann entsprechend der Blockmarkierungen die 
  23.  Zeile im markierten Text geändert.
  24.  Um Luna mitzuteilen, da₧ sich eine gänderte Zeichenkette im Arbeitspuffer 
  25.  befindet, ist nach Filterung eine 1 zurückzuliefern, ansonsten Null. 
  26.  
  27.  
  28.  ------------------------------------------------------------------------------
  29.   Luna ruft das Modul immer mit folgenden Grundparametern auf:
  30.  ------------------------------------------------------------------------------
  31. a:        4(sp)    word    Funktionsnummer.
  32. b:        6(sp)    long    Adresse des zu bearbeitenden Strings.
  33. c:        10(sp)    long    Adresse des Arbeitspuffers.
  34. d:        14(sp)    word    Länge des zu bearbeitenden Strings.
  35. e:        16(sp)    word    Länge des Arbeitspuffers (das ist immer die maximale
  36.                         im Text vorkommende Zeilenlänge+1).
  37.  
  38.  Die Werte 'b' und 'd' sind nur bei Funktionsnummer 0 gültig.
  39.  
  40.  ------------------------------------------------------------------------------
  41.   Die bisher möglichen Funktionsnummern:
  42.  ------------------------------------------------------------------------------
  43.         0 = Filterfunktion ausführen.
  44.         1 = Zeiger auf Infotext (siehe unten) zurückliefern.
  45.             es ist ein Zeiger auf den Infotext in D0 zurückzugeben
  46.         2 = Initialisierung des Moduls
  47.             es ist Null (OK), oder ein Errorcode zurückzuliefern
  48.           3 = Deinitialisierung des Moduls
  49.             es ist Null (OK), oder ein Errorcode zurückzuliefern
  50.  
  51.  ------------------------------------------------------------------------------
  52.   bisherige Exitcodes(long):
  53.  ------------------------------------------------------------------------------
  54.            0 : OK
  55.            1 : Neuer String im Arbeitspuffer (Nullterminiert).
  56.          -32 : ungültige Funktionsnummer
  57.           <0 : TOS-Fehlermeldungen
  58.           
  59.  
  60.  
  61.  
  62.