Da die man files immer noch nicht fertig sind, lasse ich mal diese Datei von
Holger, mit geringen nderungen beiliegen.

Kurzbeschreibung des SOZOBON-Paketes

Bei SOZOBON-C handelt es sich um ein vollstndiges  C-System  be-
stehend aus Compiler (hcc), Optimizer (top), Assembler (jas),
Linker (ld) und compiler driver (cc).

Zustzlich befinden sich make und folegende Programme im  Lieferumfang,
um die Entwicklung so einfach  wie  mglich  zu gestalten.

Als Hilfsprogramme werden mitgeliefert:
* ipc
    Hierbei handelt es sich um  einen  Precompiler  fr  Include-
    files, zu dem eine ausfhrliche Dokumentation beiliegt;

* tagfile
    Tagfile erstellt eine Tabelle mit allen zu einem Projekt  ge-
    hrigen Funktionen inklusive Prototyp. Auch hierzu liegt eine
    Dokumentation bei;

* debug
    Dieses Programm versucht, die Funktion in einem  abgestrzten
    Programm ausfindig zu machen, in der der Fehler auftrat;
    Dokumentation liegt bei;

* clint
    Bie clint handelt es sich um ein Programm zum  Auffinden  von
    logischen  Fehlern  in  C-Quelltexten.  Es  knnen   auerdem
    diverse Statistiken,  Funktionen-  und  Variablenlisten  etc.
    erstellt werden.
    Eine ausfhrliche Dokumentation liegt bei.



SOZOBON-C Compiler
------------------
Der hcc ist eigentlich ein traditioneller  K&R  Compiler,  jedoch
wurden mittlerweile einige ANSI- und C++ Features  implementiert,
so da der hcc in der Lage ist, die meisten "modernen" Quelltexte
zu bersetzen, ohne das hierfr groe nderungen am  Text  vorge-
nommen werden mten.

Folgende Optionen beeinflussen sein Verhalten:
    -V: Info zeigen
        Der Compiler gibt Information ber  Version  und  Autoren
        aus, bevor er mit seiner Arbeit beginnt;

    -v  verbose mode (zeigt z.B. welches Includefile gerade gelesen wird)

    -S: String merging aus
        Defaultmig fat der Compiler mehrere identische String-
        konstanten automatisch zu einer zusammen; falls dies  aus
        irgendwelchen Grnden nicht  erwnscht  sein  sollte,  so
        kann es durch Angabe von -S unterbunden werden;

    -N: geschachtelte Kommentare ein
        Sollten  geschachtelte  Kommentare  bentigt  werden,  so
        knnen sie mit dieser Option ermglicht werden; da  diese
        Form von Kommentaren fehlertrchtig und im  K&R  Standard
        nicht vorgesehen ist, wird  sie  ohne  diese  Option  vom
        Compiler mit einer Fehlermeldung bedacht;

    -P: Profiling ein
        Mit dieser Option  kann  eine  Statistik  ber  die  Aus-
        fhrungszeiten aller Funktionen eines Programmes erstellt
        werden;
        Siehe dazu hcc.chg

    -Dsymbol: wie '#define'
        Mit dieser Option knnen Symbole  definiert  werden,  als
        ob sie in der ersten bersetzten  Zeile  des  Quelltextes
        stehen wrden;

    -Usymbol: wie '#undef'
        Mit dieser Option  knnen  vordefinierte  Symbole  (siehe
        hcc.chg und sozobon.doc) gelscht werden;

    -T: keine 'trap' Generierung
        Normalerweise generiert der Compiler 'trap'  Befehle  aus
        im Quelltext gefundenen GEMDOS, BIOS und XBIOS  Aufrufen;
        falls die von SOZOBON ursprnglich verwendete  Vorgehens-
        weise eines Funktionsaufrufes  bevorzugt  wird,  so  kann
        dies mit der Option -T eingestellt werden, die  erzeugten
        Programme werden dann jedoch lnger und langsamer...
        Siehe auch hcc.chg

    -Q: schnell vor kurz
        Weist den Compiler an, lngeren Code  zu  erzeugen,  wenn
        das erzeugte Programm dadurch schneller wird;
        Siehe auch hcc.chg

    -Mn: n = max. Anzahl Meldungen
        Hiermit kann die maximale Anzahl von Fehlermeldungen  und
        Warnungen festgelegt werden, die  der  Compiler  ausgibt,
        bevor er den bersetzungsvorgang abbricht und terminert;
        Siehe auch hcc.chg

    -Iincpath: Include-Ordner angeben
        Mit dieser Option lt sich angeben, in  welchen  Ordnern
        der Compiler nach Includedateien suchen soll;
        Siehe auch sozobon.doc

    -L: int hat 32 Bits
        Normalerweise verwendet der Compiler 16 Bit  lange  Werte
        fr den Datentyp int; durch diese Option  ist  es  jedoch
        auch mglich, 32 Bit int's zu verwenden, z.B.  um  Quell-
        texte zu portieren, welche von UNIX- oder  AMIGA-Systemen
        kommen; solange es fr SOZOBON jedoch keine  Bibliotheken
        fr lange int't gibt, raten die Autoren von  der  Verwen-
        dung dieser Option ab;
        Siehe auch hcc.chg

    -Xnxxx:
        Code fr Online-Debugger erzeugen;
        Fr Einzelheiten siehe Datei hcc.chg


SOZOBON-C Optimizer
-------------------
Da der Compiler einen relativ einfachen Codeerzeuger  beinhaltet,
welcher dafr sehr sicher und schnell luft, wurde ein Assembler-
Quelltext-Optimizer erforderlich, damit die  erzeugten  Programme
kurz werden und extrem  schnell  arbeiten.  Der  Optimizer  liest
dazu die vom Compiler erzeugte Assemblerdatei  ein  und  versucht
die darin  enthaltenen  Instruktionen  so  umzuwandeln,  da  die
Semantik erhalten bleibt, der Code jedoch schneller  abluft  und
krzer ist.

Mit folgenden Optionen kann das Verhalten des  Optimizers  beein-
flusst werden:

-V: Der Optimizer zeigt Information  ber  Version  und  Autoren,

-v: es wird  jeweils  der  Name  der  Funktion  ausgegeben,
    welche gerade optimiert wird;

-q: Der Optimizer erzeugt im Zweifelsfall schnelleren Code,  auch
    wenn das erzeugte Programm dadurch lnger wird;

-j: BlockOpt. aus
-r: Registerizing aus
-p: PeepholeChanges aus
-b: branch reversals aus
-l: loop rotations aus
-g: stack fixups aus
-f: Funktionen umsortieren aus
-a: PC-relative Aufrufe aus
-u: keine link/unlk lschen
-c: RegisterParameter aus
-m: Register-Merging aus
    Diese Optionen  genauer  zu  erlutern  wre  zu  technischer
    Natur, wichtig ist eigentlich nur zu  wissen,  da  normaler-
    weise keiner dieser Schalter bentigt  wird,  denn  sie  sind
    primr fr Debugzwecke gedacht.

Fr weitere Einzelheiten siehe Datei top.chg


SOZOBON-C Assembler
-------------------
Der Assembler hat primr die  Aufgabe,  aus  einer  vom  Compiler
oder vom Optimizer erzeugten Datei einen Objektcode zu  erzeugen,
welcher vom Linker  zu  einem  Lauffhigen  Programm  verarbeitet
werden kann. Natrlich kann er auch selbstgeschriebene Assembler-
texte bersetzen, wofr er  jedoch  eigentlich  ncht  konstruiert
ist, weshalb er solche Dinge wie Macros etc. nicht bietet.

Das Verhalten des Assemblers kann mit folgenden Optionen  modifi-
ziert werden:

-V: Info zeigen
    jas zeigt Information zu Version und Autoren,  bevor  er  mit
    seiner Arbeit beginnt;

-L: auch statische Identifier in die Symboltabelle aufnehmen
    Siehe dazu auch jas.chg

-N: keine short branches erzeugen
    Siehe dazu auch jas.chg

-o OUTFILE : Ausgabedatei festlegen
    Normalerweise erzeugt der Assembler als Ausgabe eine Datei im
    gleichen Verzeichnis mit dem Namen der Eingabe und der Endung
    '.O'; soll die Datei anders heien oder in einem anderen Ver-
    zeichnis (z.B. auf einer Ramdisk) abgelegt  werden,  so  kann
    dies durch -O angegeben werden;

-e ERRFILE: Fehlermeldungen --> Screen & ERRFILE
    Normalerweise werden alle Fehlermeldungen des Assemblers  auf
    dem  Bildschirm  ausgegeben;  (wenn  die   Eingabedatei   vom
    Compiler oder Optimizer erzeugt wurde, enthlt sie  natrlich
    keine Fehler); durch die Option -E knnen alle Meldungen  zu-
    stzlich in eine Datei geschrieben werden;

Fr weitere Einzelheiten siehe Datei jas.chg


SOZOBON-C Linker
----------------
Der Linker hat die Aufgabe, aus  Objektdateien  und  Bibliotheken
ein Lauffhiges Programm zu generieren.

Mit folgenden Optionen kann sein Verhalten variiert werden:

-V: Info zeigen
    ld zeigt Information zu Version und Autoren;

-v: gelinkte Objekte zeigen
    ld zeigt die Namen aller Objekte, die  zum  Programm  dazuge-
    linkt werden;
-p: Lib's mehrfach durchsuchen
    ld liest jede Bibliothek solange immer wieder von vorne  ein,
    bis keine Objekte mehr aus  ihr  dazugelinkt  werden  mssen;
    diese Option ist fr  alle  beiliegenden  Bibliotheken  nicht
    notwendig, da  diese  so  sortiert  sind,  da  alle  ntigen
    Objekte beim ersten Einlesen gefunden werden;

-m: Load map anzeigen
    Bldsinn, war bereits im Original enthalten;

-f LINKFILE: Linkfile festlegen
    Falls die Anzahl der Objekte zu gro wird,  um  alle  in  der
    Kommandozeile unterbringen zu knnen,  besteht  die  Mglich-
    keit, alle bentigten Dateinamen  in  eine  Datei  (ein  sog.
    Linkfile) zu schreiben, woraus der ld sie  dann  wieder  ein-
    liest; aufgrund der in der Praxis vllig unzureichenden Maxi-
    mallnge von 124 Zeichen in  einer  Kommandozeile  ist  diese
    Option sehr wichtig;

-t: Symboltab. erzeugen
    der ld hngt eine Tabelle mit Namen und Information ber alle
    im benutzen Funktionen und globalen Variablen an das erzeugte
    Programm  an;  diese  Symboltabellen  werden  von   Debuggern
    benutzt;

-b: wenig Hauptspeicher benutzen
    der ld behlt nur wenige Daten im Hauptspeicher und liest den
    Rest erst bei Bedarf noch einmal ein;

-o OUTFILE: Ausgabedatei festlegen

-u SYMBOL: Linken von <SYMBOL> erzwingen
    ("__printf" fr 'printf(FLOAT)')
    ("__scanf" fr 'scanf(FLOAT)')

Fr mehr Information siehe Datei ld.chg.

*eof*
