
                    SELCO Source Optimizer 1.0
                   ----------------------------

Der Source Optimizer 1.0 ist Public Domain.
Keine Vernderungen, keine kommerzielle Nutzung,
kein Verkauf fr mehr als 5.- DM

Die Weitergabe ist nur komplett gestattet, d.h. englische und deutsche Dokumen-
tation sowie das Programm sourcopt.

Der SELCO Source Optimizer ist ein kleines Utility zur Optimierung von Assem-
blerprogrammen. Nun haben zwar die meisten Assembler bereits eine Optimierungs-
funktion eingebaut, aber meiner Meinung nach hat dieses Verfahren einen 
entscheidenden Nachteil. Wenn man als Programmierer sein Programm mit einem
Debugger oder Monitor zum Laufen bringen will, sieht man dort einen Code, der
sich auf Grund der (automatischen) Optimierung des Assemblers mehr oder weniger 
von dem ursprnglich geschriebenem Programm unterscheidet. Deshalb erschien es
sinnvoll ein Programm zu schreiben, das eine Optimierung im Quellfile, also vor
der Assemblierung vornimmt. Auf diese Weise erhlt man ein kurzes und schnelles
Assembler-Programm, das sich nach dem Assemblieren nur wenig vom Original unter-
scheidet.

Benutzung des SELCO Source Optimizers

Das Programm mu vom CLI oder der SHELL gestartet werden. Eine Hilfestellung
erhlt man durch Eingabe von 'sourcopt'.
Die Syntax ist dabei Folgende:   'sourcopt InputFile OutputFile / Flags'
Zwischen allen Teilen der Kommandozeile mssen Leerzeichen stehen.
Fr OutputFile ist ein anderer Name als fr InputFile zu whlen. Es ist
wenigstens ein Flag anzugeben. Zwischen den Flags mssen ebenfalls Leerzeichen
stehen.
gltige Flags sind:
a - ndert move.l #x,Dn     -> moveq #x,Dn wenn x 0...127 (x dez bin oder hex)
b - ndert move.l #Label,An -> lea Label(pc),An
c - ndert move.l Label,... -> move.l Label(pc),...
d - ndert move.l #0,An     -> suba.l An,An               (0 dez bin oder hex)

Im Falle einer fehlerhaften Eingabe wird die Hilfestellung angezeigt.

Die Arbeitsweise des SELCO Source Optimizer 1.0

Der Source Optimizer sucht zuerst alle Label im Programm. Auf diese Weise kann 
dann spter zwischen Labels und Konstanten unterschieden werden. Als Label wird
ein Text erkannt, der in der ersten Spalte beginnt und dem kein '=', 'equ' oder
'macro' folgt. Kommentare werden natrlich nicht bearbeitet. Als Kommentar 
werden Zeilen oder Teile von Zeilen gewertet, die mit ';' oder '*' beginnen.
In einer genderten Zeile wird nur das alte Kommando durch das neue ersetzt, 
Labels, Konstanten und Kommentare bleiben unberhrt. Whrend des Programm-
laufes wird die gerade bearbeitete Zeile und im Pass 1 die Anzahl der gefundenen
Labels und im Pass 2 die Anzahl der optimierten Zeilen und die dabei gesparten
Bytes angezeigt.

Der Source Optimizer nimmt keinen Syntax-Test vor sondern geht bei seiner Ar-
beit von korrekter Syntax aus. Man sollte deshalb vorher einen Probelauf mit 
seinem Assembler vornehmen.

Hinweise, Fehlerbeschreibungen usw. bitte an folgende Adresse:

                          SELCO
                          Alexander Fritsch
                          Hafenstr. 20
                          O-2355 Sanitz/Rg
                          Deutschland

P.S. Der SELCO Source Optimizer wurde mit M. Dillons DICE Compiler bersetzt.
     (Demo-Version) Ich hoffe, da die Vollversion in den nchsten Wochen bei
     mir eintrifft. Vielen Dank an M. Dillon fr dieses groartige Programm.
       
                                        Sanitz, den 9.11.92   A. Fritsch                                
 
 
 

