home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d8xx
/
d802
/
fd2asminc.lha
/
Fd2AsmInc
/
fd2AsmInc.dok
< prev
next >
Wrap
Text File
|
1993-01-24
|
7KB
|
124 lines
42m ## # ### ### ### 0m
42m # # # # # # # 0m
42m ##### #### # # # ### ### ## # #### ### 0m (Version 1.0a)
42m # # # ### ##### # # # # # # # # # 0m
42m # # # # # # ### # # # # # # # 0m
42m # # # # # # # # # # # # # # # 0m
42m # #### ##### # # #### # # # ### # # ### 0m
1mfd2AsmInc0m, ein 1mTropicDesign0m Produkt, dient dem Konvertieren von .fd-Files in
Assembler-Includefiles, OS2.0 wird benötigt!
42m-- Inhaltsverzeichnis ---------------------------------------------------- 1 --0m
Abschnitt 1..................Inhaltsverzeichnis
2..................Copyright
3..................Über das Programm
4..................Technisches
5..................Schlußworte
42m-- Copyright ------------------------------------------------------------- 2 --0m
Die Copyrights an diesem Freeware-Programm und dem Sourcecode liegen beim Autor
Hanns Holger Rutz (mir...), für den Vertrieb gelten folgende Bedingungen:
- für's Kopieren dürfen keine Preise über 3 DM (inklusive Disk, exklusive Porto
+Verpackung) erhoben werden.
- folgende Files müssen zusammen in einem Directory kopiert werden:
3m fd2AsmInc 0m(das Executable)
3m fd2AsmInc.doc 0m(englisches Doc-File)
oder3m fd2AsmInc.dok 0m(deutsches Doc-File)
3m fd2AsmInc.asm 0m(der Assembler-Source)
Dabei sind die Files unverändert zu kopieren; unter die Einschränkung fallen
die Filenotes, die Datumsangaben und die Protect-Bits nicht. Schön wär's
auch, wenn die Icons mitkopiert werden würden...
Für jegliche eventuell durch die oben aufgelisteten Files entstandene Datenver-
luste oder Schäden 4mhaftet allein der User0m (wobei ich natürlich offen für Bug-
reports, Verbesserungsvorschläge etc. bin!). Der Sourcecode darf nur für per-
sönliche Lernzwecke verwendet werden!
42m-- Über das Programm ----------------------------------------------------- 3 --0m
Die Idee für dieses Programm hatte ich, als ich die Assembler-Includes für
OS2.0 entpackt habe - denn seit der Includeversion 36 gibt es keine Include-
files für die Libraries mehr. Die _LVO-Definitionen sind jetzt alle in den
doofen Link-Libraries drin. Da ich zum einen diese Libraries mit BLink nicht
an meinen Objectcode linken konnte (BLink stürzte immer ab) und ich zum anderen
keinen Bock habe, nach jedem Assemblieren einen Linker zu starten (ich arbeite
mit dem AsmOne), habe ich mühsam die .fd-Files in Assemblerincludes umgebas-
telt. Damit Dir diese Bastelei erspart bleibt, habe dieses Programm entworfen.
Es übersetzt beliebige .fd-Files in Assembler-Includes mit den standardisierten
_LVO-Definitionen. Der Aufruf lautet so:
3m
fd2AsmInc <from> [<to>] [comments] [spaces] [tabs <1-65535>] [dec] [hex]
<from> 0mName des .fd-Files (kann Wildcards enthalten);3m
<to> 0mName des zu erzeugenden Includefiles bzw. des Zieldirectorys;3m
<comments> 0mist dieser Switch gesetzt, so werden eventuell im .fd-File enthal-
tenen Kommentare ins Include-File übernommen.3m
spaces 0mzur Formatierung des Include-Files werden Spaces benutzt.3m
tabs <size> 0mentspricht3m spaces0m, jedoch werden Tabulatoren der Größe3m <size> 0mbe-
nutzt;3m
dec 0mdie Offsets werden als Dezimalzahlen angegeben.3m
hex 0mdie Offsets werden als Hexdezimalzahlen angegeben.
Wird kein Zielname/-pfad angegeben, so wird das Includefile im aktuellen Direc-
tory erzeugt.
Wird weder3m spaces 0mnoch3m tabs 0mgesetzt (voreingestellt), so wird das Gleichheits-
zeichen und der Offset direkt an den Funktionsnamen gequetscht. Gibt man beide
Parameter an, so werden bevorzugt Tabs benutzt und hinter dem Gleichheitszei-
chen einer Funktion ein Space verwendet. Bei einer Formatierung werden die
Gleichheitszeichen so gesetzt, daß sie alle untereinander stehen, der Abstand
vom Rand wird so groß gewählt, daß genau ein Tab bzw. Space zwischen den läng-
sten Funktionsnamen und das Gleichheitszeichen paßt.
Gibt man als Zahlensystem für die Offsets entweder die beiden Switches3m dec 0m und3m
hex 0moder keine von ihnen an, so bevorzugt 1mfd2AsmInc0m die (je nach Offsetgröße
varierende) kürzere Form. Ist die Länge des Dezimalausdrucks äquivalent zu der
des Hexausdrucks, wird der Hexausdruck benutzt.
Während der Konvertierung werden die Filenamen in zwei Spalten ausgegeben:
links der Name der .fd-Datei und rechts der des Includefiles. Die zwei Punkte
hinter dem Namen bedeuten, daß die jeweilige Datei gerade bearbeitet wird.
Tritt ein Fehler auf, so wird er neben dem Filenamen ausgegeben (bei einem syn-
taktischen Fehler im .fd-File wird außerdem die Nummer der fehlerhaften Zeile
ausgegeben). War die Includedatei bereits geöffnet, versucht 1mfd2AsmInc0m diese zu
löschen und gibt gegebenenfalls eine Erfolgsmeldung aus. Enthielt der Parameter3m
from 0mWildcards, so fragt das Programm nach, ob es mit der Konvertierung fort-
fahren soll. Das Programm kann mit CTRL+C abgebrochen werden.
42m-- Technisches ----------------------------------------------------------- 4 --0m
Für die, die es ganz genau wissen wollen, hier ein paar technische Hintergrund-
infos:
- 1mfd2AsmInc0m ist reentrant und PC-relativ programmiert (mit dem AsmOne V1.02);
- die Länge eines Funktionsnamens (inkl.3m _LVO0m) darf3m $ffff 0mnicht überschreiten;
-3m ##private, ##public 0mund3m ##base 0msowie andere3m ##xxx 0mwerden ignoriert;
-3m ##bias 0mund3m ##end 0mwerden sowohl in Groß- als auch in Kleinbuchstaben erkannt;
- das Programm boykottiert den Amiga 600 :-)
- bei aufgetretendem Fehler wird3m RETURN_FAIL0m, bei3m ***Break 0mein3m RETURN_WARN 0mzu-
rückgeliefert;
- das Programm enthält einen Versionsstring;
- die Hexoffsets werden in Kleinbuchstaben ausgegeben (sieht schöner aus);
- Powerbrei und AmigaCrypt sind die besten Diskmags, hol sie Dir!
- 1mTropicDesign0m sind Hanns Holger Rutz und Marco Brinkmann;
- die Continueabfrage prüft die Eingabe auf 'y' oder 'Y';
- Tabs werden genauso wie Spaces erkannt;
- enthält das .fd-File kein3m ##bias0m, so ist der Offset3m NULL0m;
- das Programm verarbeitet auch Files, die nicht mit3m ##end 0mabschließen;
- enthält3m from 0mWildcards und3m to 0mexistiert noch nicht, so wird (im Gegensatz zu
c:copy) kein Zieldirectory erzeugt;
- den Rest erklärt der Source;
42m-- Schlußworte ----------------------------------------------------------- 5 --0m
Das war's dann. Viel Features für die Zukunft hab' ich nicht im Kopf (ehrlich
gesagt gar keine) - man könnte eine3m ALL0m-Option und ein3m FROM/M 0meinbauen und ein
Zieldirectory erzeugen, falls from Wildcards enthielte, aber ich denke, der
Aufwand lohnt sich nicht, und außerdem braucht das sowieso kein Mensch (hoffe
ich). Für Bugreports, Verbesserungsvorschläge oder was auch immer kannst Du an
diese Adresse schreiben:
1mTropicDesign0m
c/o Hanns Holger Rutz
Auf dem Godenstedter Berg 17
2730 Zeven