Hier stelle ich meine Stringsfunctions in C und als Amiga-library
( strings.library ) als PD zur Verfuegung.
Die ganze Library (Amiga) als auch der Sourcecode koennen in PD-Programmen
als auch in kommerzieller Software Verwendung finden. Nett :-) waere es
wenn ein Hinweis ueber die Quelle der Functions bzw. Library bei den
Programmen erscheinen wuerde.
Die Verwendung der Functions geschieht natuerlich auf eigne Gefahr.
Desweiteren uebernehme ich keinerlei Garantien!

Ziel:

Foederung zur Programmierung von PD-Software durch Verwendung von einfach
zuverwendender Functionen, die sicher und moeglichst optimal in Bezug
auf Codelaenge und Ausfuehrungszeit programmiert sind.
Dabei biete ich an, bei Bedarf auf Anfrage entsprechende Functions
zu programmieren. Bitte dabei Functionsnamen, am besten als Prototyp
angeben, Verwendungszweck und in welchen Programmen die Functions vorkommen sollen.
Und wenn moeglich auch Testdaten mitliefern.
Bedingungen zur Programmierung:

Die Funktionen greifen auf keine externen Module wie Dosfunctions oder
Graphicfunctions zu. Die Parameter werden mit Hilfe von Register (Amiga)
uebergeben, deshalb keine Ellipse Funktionen wie sprintf(*cz1,*cz2,...)
Da die Functionen fuer ein Echtes :-) Multitasking Betriebssystem geschrieben
sind, finden z.B. auch keine globalen Variablen Verwendung.
Den Assemblercode habe ich von Hand optimiert. Auf diese Weise enstand
z.B. bei StrCpy ein nur aus zwei Assemblerbefehlen bestehende Funktion.
Es lohnt also seinem Compiler mal auf die Finger ( Assemblercode) zu schauen :-).
Deshalb ist die aktuelle Library gerade mal ca 6k bei ca 80 Functions gross.
Der von mir verwendete C-Compiler wuerde sicherlich den Code um das
zehnfache aufblaehen. Ein C++ Compiler noch einmal Faktor 10.
Wer einen Assembler Inline Compiler verwendet, wird sicherlich nicht
z.b. StrCpy aus der Library aufrufen,sondern stattdessen direkt den
Assemblercode verwenden.


Anmerkung:

Ich hab hier noch nicht von allen Ansi-Standart Functions den C-Source.
Einen Teil der Functions hatte ich eine Zeit lang in DEX geschrieben.
Bei Bedarf veroeffentliche auch den fehlenden Sourcecode.
Eine vollstaendige Liste aller von mir zur Zeit programmierten Functions
findet ihr in dem sogenannten .FD file. .FD files sind fuer Amigauser
wichtig, um die Interfaceroutinen fuer die Amiga-library generieren zu
koennen. Im .FD file sind einige Registerangaben rechts gerueckt. z.B.
StrpBrk(string,search ) (A0,A1)
Diese Functions kann man zwar aufrufen, ist aber noch nicht implementiert
(A0,A1) sind die Registerbezeichnungen der Motorrola CPU.

Wichtig fuer alle NICHT Amiga user:
Die Zeilen der Sourcecodedateien enden lediglich mit LF !

In einigen Dateien kommen Anweisunngen wie:
StringsBase=(struct StringsBase *)OpenLibrary("Strings.library",0);
if(StringsBase) { CloseLibrary(StringsBase); StringsBase=NULL; }
vor. Einfach loeschen und die entsprechen Functions wie z.B. StrLen includen,
oder die Standartfunction strlen, wenn moeglich, verwenden.


Bei Feedback werde ich diese Seiten weiter ausbauen.
Da ich die Programmierung von Stringfunctions nur nebenbei betreibe,
kann es schon mal etwas dauern (Wochen) bist eine neue Function fertig wird.
Bei entsprechenden Feedback werde ich mich allerdings bemuehen moeglichst
schnell zu programmieren :-).
Es wird nicht immer der optimale Code sein. Einige Funktionen sind
in dieser Hinsicht bei Gelegenheit noch stark verbesserungswuerdig :-).

Download:
strings.library Library
strings.library.fd .fd file
strings.library.lib (HCC) lib
--------- verwendete Software:

hcc: version 2.0 Copyright (c) 1988,1989,1991 by Sozobon, Limited.
Amiga Version 1.1 by Detlef Würkner.
Blink: - Version 6.7 - 15 October 1986
Copyright © 1986 The Software Distillery. All Rights Reserved.
235 Trillingham Lane, Cary NC 27511 - BBS: (919)-471-6436


Stringsfunctions in ANSI C + .fd + .asm

Home Kontakt (Emailadresse) ( Klaus - Dieter Schemionek )