The Little Coders
Resources for Programmers
last update: 21.11.1999 by Michael Neumann
Site-Map || What's New || Search
For Programmers | Algorithms and Sourcecodes
Please also look at Algorithms and Sourcecodes and Links.
By me collected links to many programming languages
Eiffel-Edge information about the programming language Eiffel
Hello World in 65 different languages
A comparison between BETA, C++, Eiffel, Java, Object Pascal, Ruby and Smalltalk
GNU-C Extensions Extensions of the ANSI-C standards of the GNU-C compiler
Programming-examples in different languages
Introductions and Tutorials:
WATCOM-Document: This, by me written Word-Document is about the programming with Watcom C++ and Watcom Assembler in protected-mode. DOS-Extender functions are listed, it is described how assembler-functions are called from C++ (parameter handling) and the possibilities of inline-pragmas are shown and much more.... (download as packed Word-Document)
Forth-Interpreter:
A Forth-Interpreter which includes the most fundamental functions, which was written by me. Soon there'll be coming a new improved version of this interpreter. Both versions are not yet full functioning, i.e. some basic functions are still missing. Also a documentation is missing. Version 1.1 is much faster!
Version 1.0: forth1_0.zip 51.637 Bytes
Version 1.1: forth1_1.zip 63.892 Bytes
PL0/E - Pascal-like programming language:
PL/0 ist eine Pascal-ähnliche Programmiersprache, die einst von Dr. Dr. h. c. Niklaus Wirth als Modell-Sprache entworfen wurde. PL0/E ist eine nicht vollständige Implementation von mir. Das Programmier-System besteht aus drei Komponenten. PL0.EXE ist der Compiler, der Assembler-Code für NASM.EXE (Netwide-Assembler) erzeugt, und EDITOR.EXE ist die IDE (Integrierte Entwicklungs Umgebung). NASM.EXE wurde nicht von mir geschrieben, Sie können es aber für nicht-kommerzielle Zwecke nutzen. Wenn Sie etwas programmieren wollen, dann starten Sie einfach EDITOR.EXE.
pl0.zip 340.877 Bytes
Mathematical parser:
With this program you can carry out mathematical calculations. There are numerous functions available. The syntax in BASIC-like.
mathparse.zip 60.114 Bytes
COLOR_Java
With this program, you can convert your Java sourcecodes into coloured HTML pages to present them in the internet.
color_java.zip 64.125 Bytes
COLOR_C++
With this program, you can convert your C/C++ sourcecodes into coloured HTML pages to present them in the internet.
color_c++.zip 62.427 Bytes
Disassembler for 8086 and 80186:
Mit diesem Programm können Sie eine COM-Datei oder eine ein-segmentige EXE-Datei in Assembler-Quellcode umwandeln.
diass86.zip 61.573 Bytes
für Quellcode siehe Quellcodes
File converting utilities for programmers:
Es sind sechs verschiedene Utilities enthalten.DAT2HEXA wandelt eine beliebige Datei in ein Assembler- Listing mit 'DB'-Deklarationen um. Das Programm DAT2HEXC ist das Pendant für C/C++-Programmierer. EXE2BIN wandelt eine ein-segmentige EXE-Datei in eine Binärdatei, was einer COM-Datei entspricht (außer dem unterschiedlichen Startoffset). EXE2HEXA tut nicht anderes als EXE2BIN gefolgt von DAT2HEXA machen würde, nämlich eine EXE-Datei in ein Assembler-Listing zu verwandeln. DAT2HEXC ist wiederum das Pendant für C/C++-Programmierer. FILECMP vergleicht zwei Dateien miteinander und gibt in einer dritten Datei alle unterschiedlichen Stellen der beiden Dateien aus.
FileUtils.zip 88.394 Bytes
PProcess:
Mit diesem Programm können Sie beliebige Dateien in Ihr selbstgeschriebenes Programm einkopieren. Wenn Sie z.B. ein RAW-Bild (im folgenden Beispiel ein 320x200 Bild) in Ihr Programm kopieren wollen, so daß Sie es nicht jedesmal laden müßen, dann können Sie in Ihrem Quelltext (C/C++ in dem folgenden Beispiel) folgendes schreiben: static char raw_picture[64000] = "#INCLUDE_FILE#C:\FLUGZEUG.RAW#"; Der angegebene Pfad und der Dateiname muß natürlich angepaßt werden. Sie können jetzt so tun als ob im Array raw_picture die Daten des Bildes stehen. Wenn Sie das Bild anzeigen wollen, so können Sie z.B. das Array in den Bildschirmspeicher kopieren. Dem Programm liegt auch der Sourcecode bei (Watcom C++).
pprocess.zip 33.609 Bytes
Algorithms and Sourcecodes [back]
Algorithmen-Page many algorithms and sourcecodes
Kryptologie-Page e.g. DES, IDEA, LOKI91, GOST, SHA, MD5, RC4...
Programmbeispiele in
verschiedenen Sprachen ![]()
Well-known standard algorithms:
Boyer-Moore Suchalgorithmus C++, benötigt Standard Template Library (STL)
Standard Hash-Algorithmus C/C++
Hash-Algorithmus von P.J.Weinberg C/C++
Quicksort von C.A.R. Hoare C++, benötigt Standard Template Library (STL)
Bucketsort:
Dieser Sortier-Algorithmus war bei meinen Tests, im Vergleich zu dem Quicksort-Algorithmus der Standard-Bibliothek von C/C++ um den Faktor 10 schneller. Dazu kommt, daß dieser Algorithmus eine lineare Laufzeit O(N) hat. Quicksort dagegen hat eine Laufzeit von bestenfalls O(N log N), was aber im schlechtesten Falle auf O(N²) anwächst. Ein Nachteil von Bucketsort ist, daß er ein zweites Array derselben Größe benötigt. Meine Implementation von Bucketsort ist in 32-Bit Assembler (WASM) geschrieben, und wurde getestet mit Watcom C++ Version 11.0 im DOS4GW- oder PMODE/W-Modell. Borland-, Microsoft- und DOS(16-Bit)-Programmierer werden diese Implementation nicht benutzen können, es sei denn sie schreiben den Assembler-Code ein wenig um. Das zu sortierende Array muß einen speziellen Aufbau haben. Es muß aus 8 Byte großen Strukturen bestehen, dessen erste 4 Byte den zu sortierenden Wert angeben (Schlüssel) und die zweiten 4 Byte kann der Benutzer frei wählen, d.h. hier werden die Daten angegeben.
bucket.asm bucket.hpp WASM, Watcom C/C++, PMODE/W oder DOS4GW
Hash-Table class:
Mit der Klasse HashTable<datatype> können Sie sehr schnell Strings in einem Array wiederfinden ohne jeden String in dem Array auf Übereinstimmung zu prüfen. Jedem String wird ein Datenelement zugeordnet, welches Informationen beliebiger Art enthalten kann. Da die Klasse als Template definiert wurde, kann man als Datenelement eine beliebige Struktur oder einen beliebigen Typ benutzen. Mit der Methode insert(string,data) wird der HashTable ein neues Element hinzugefügt, welches als Suchschlüssel den string enthält und als Datenelement data. Der Typ von data wird bei der der Definition der HashTable zwischen <> angegeben. Die Methode remove(string) löscht das Element mit dem Suchschlüssel string. find(string) sucht nach dem Suchschlüssel string in der HashTable, und gibt bei Erfolg einen Zeiger auf das entsprechende Datenelement zurück. Wenn string nicht gefunden wird, gibt die Methode NULL zurück.
C++, benötigt Standard Template Library (STL)
Implementierung: HashTable.hpp (html) oder HashTable.hpp
Beispielprogramm: Main.cpp (html) oder Main.cpp
BN - Fast Big Numbers:
Hiermit lassen sich Berechnungen mit Ganzzahlen von beliebiger Länge durchführen, wie z.B. mit Zahlen die eine Länge von 5000 Ziffern haben. Für die Verwendung dieser Quellcodes brauchen Sie Watcom C++ (ich benutze Version 11.0) sowie TASM32 (Turbo Assembler von Borland). Die Länger der Zahlen muß vor dem Compilieren angegeben werden, und zwar muß im Assembler-Module (_bn.asm) BN_LEN auf die Anzahl der zu verwendenden DWORDs gesetzt werden, ebenso wie im Header-Module (bn.hpp). Dann müßen Sie das Assembler-Module mit TASM32 assemblieren und am besten die resultierende OBJ-Datei (_bn.obj) in das Watcom-Projekt einfügen. Es liegen zwei Testprogramme bei, mit denen alle Möglichkeiten der Engine getestet werden können, eine 32-DWORD und eine 512-DWORD Version. Programm funktioniert nur unter Windows 95. Mit Windows 98 gibt es auf meinem Rechner Probleme.
benötigt Watcom C/C++ und TASM32.EXE
BN.zip 71.697 Bytes
Bei Angabe von Zip-Files ist in diesen die Ausführbare Datei u.ä. enthalten!!!
C++
Tastatur-Programmierung: Keyboard.cpp (DOS)
Maus-Programmierung: Mouse.cpp (DOS)
Grafikprogrammierung im Mode 13h: Mode13h.cpp (DOS)
Quellcode von Packit (siehe oben), Packverfahren: Packit.cpp, Packit.zip
Quellcode von DIASS86 (siehe oben), Disassembler: Diass86.cpp, diass86.zip (WATCOM, DOS4GW)
Turbo Assembler (TASM) unter DOS:
Hardware Maus-Programmierung (nicht unter Windows ausführbar!): msmaus.asm
"Hello World" im Protected-Mode (nicht unter Windows ausführbar!): pm.asm, pm.zip
Starfield Demo: Stars.asm, Stars.com
Screen-Saver: Scrsaver.asm, Scrsaver.zip
Quellcode vom Text-Betrachter (siehe oben): Show.asm, Show2com.asm, Txt2com.cpp, textshow.zip
Sonstiges:
Boot-Loader (Bootsektor-Programm): Boot.zip
FileOK:
Mit diesem Programm können Sie einen CRC-Wert berechnen. Ein CRC-Wert ist ein Zahl, die für nahezu jede Datei unterschiedlich ist. Wenn Sie einen CRC-Wert für eine Datei haben, können Sie durch Berechnen des CRC-Wertes einer zweiten Datei exakt bestimmen, ob die beiden Dateien identisch sind. Dies kann insbesondere bei Netzwerkübertragungen oder bei einem Internet-Download nützlich sein, vorausgesetzt der Vertreiber einer Datei gibt den CRC-Wert an, um festzustellen ob beim Download ein Fehler aufgetreten ist.
FileOK.zip 6.410 Bytes
cryptIT:
Mit diesem Programm können Sie Ihre Daten schnell und sicher Ver- und Entschlüsseln. Es stehen sechs verschiedene kryptologische Algorithmen zur Wahl. Die Algorithmen sind: Blowfish, DES, GOST, IDEA, Loki91 und RC4. Wenn Sie dieses Produkt kommerziell verwenden, müssen einige der Algorithmen lizensiert werden. Dies ist bei einer nicht-kommerziellen Anwendung nicht der Fall. Bitte setzten Sie sich mit uns in Verbindung, wenn Sie näheres wissen wollen.
cryptIT.zip 20.243 Bytes
cryptIDEA:
Dieses Programm ist eine abgespeckte Version von cryptIT, die nur den IDEA-Algorithmus enthält. Wenn Sie dieses Programm kommerziell nutzen, müssen Sie sich den IDEA-Algorithmus lizensieren lassen. Nähere Informationen sind bei uns erhältlich.
cryptIDEA.zip 7.437 Bytes
Commandline en- / decrypt programms:
Diese Programme verwenden diesselben Algorithmen, wie z.B. cryptIT, außer das noch TripleDES hinzugefügt wurde. Einige der Algorithmen sind patentrechlich geschützt. Wenn Sie eines dieser Programme kommerziell nutzen wollen, müssen Sie diese lizensieren lassen. Nähere Informationen können Sie bei uns erfragen.
blowfish.zip 44.869 Bytes
des.zip 51.350 Bytes
3des.zip 45.037 Bytes
gost.zip 25.609 Bytes
idea.zip 26.228 Bytes
loki91.zip 30.396 Bytes
rc4.zip 35.996 Bytes
für Quellcode siehe Kryptologie-Page
FTP_UPDATE Version 1.1
Mit diesem Programm können Sie ganz einfach Ihre komplette Homepage uploaden. Sie definieren ein Verzeichnis in dem die komplette Homepage auf Ihrem Rechner liegt und können in diesem Verzeichnis Dateien verändern, löschen, neue hinzufügen und Verzeichnisse erstellen bzw. löschen. FTP_UPDATE merkt bei einem Aufruf, was sich geändert hat und aktualisiert den FTP-Server, auf dem Ihre Homepage liegen soll. Das Programm liegt leider nur als Python-Quellcode vor, so daß Sie den Python-Interpreter erst von http://www.python.org downloaden müssen, um das Programm benutzen zu können.
ftp_update.py 12.633 Bytes
FileSplitter
Mit diesem Programm können Sie eine Datei in mehrere Dateien zerlegen, und diese später wieder zu einer zusammenzufügen. Dies ist vorallem sinnvoll, wenn eine Datei nicht vollständig auf eine Diskette passt.
FileSplitter.zip 6.013 Bytes
MD5 (Message Digest 5) Oneway Hashfunction
Mit diesem Programm können Sie die MD5-Prüfsumme einer Datei erstellen. Da jede unterschiedliche Datei eine andere MD5-Prüfsumme, läßt sich einwandfrei feststellen, ob die Datei verändert wurde.
md5.zip 26.041 Bytes
für Quellcode siehe Kryptologie-Page (Einweg-Hashfunktionen)
Caotical-Worms:
Caotical-Worms ist ein Nibbles ähnliches Spiel, indem man versuchen muß 9 Zahlen auf dem Bildschirm zu bekommen. Dabei darf man jedoch keine Wände oder Hindernisse berühren, sonst verliert man ein Leben und darf von vorne anfangen. Während dem Spiel, kann man eine MOD-Datei anhören. Caotical-Worms läuft im Textmodus. Dem Spiel liegt dazu noch ein Editor bei, mit dem man sich seine eigenen Levels erstellen kann.
kaozworm.zip 67.055 Bytes
mods.zip 228.872 Bytes
Game-Edit Professional 1.0:
Ein Programm für Windows, mit dem Sie einzelne Sprites oder Tiles entwerfen können. Aus den Tiles kann man wiederum eine Karte, bestehend aus mehreren Tiles, erstellen.
GameEdit.zip 349.024 Bytes
Text-Viewer and TXT2COM:
Das Programm SHOW.COM ist ein sehr kleiner Text-Betrachter unter DOS, der Text-Dateien bis max 64k anzeigen kann. Er hat eine Größe von ca. 1200 Bytes. TXT2COM.COM dagegen wandelt eine Text-Datei in eine ausführbare COM-Datei, die dann den Text-Betrachter und den Text enthält. Gerade für Readme-Dateien kann dies sehr geschickt sein, da man nun nicht mehr einen Editor laden muß um die Datei zu betrachten.
textshow.zip 14.790 Bytes
für Quellcode siehe Quellcodes
Periodsystem:
Dieses Windows-Programm stellt ein einfaches Periodensystem dar, mit dem man per Mausklick die wichtigsten Informationen über ein chemisches Element erhält. Der Sourcecode des Programms liegt bei (Turbo C++ für Windows).
Period.zip 116.605 Bytes
FLIC-Player (Autodesk FLI u. FLC):
Sehr schneller FLIC-Player, der mit Watcom C++ und Assembler unter PMODE/W (DOS4GW) geschrieben wurde. Unterstützt auch hochauflösende Modis bis zu 1280x1024. Um eine FLI/FLC-Datei anzusehen, übergeben Sie dem Programm FLIC.EXE einfach die FLI/FLC-Datei als Parameter. Der Quellcode ist auf Anfrage erhältlich .
flic.zip 37.387 Bytes
Um den FLIC-Player auszuprobieren können Sie zwei FLI-Dateien herunterladen. Beide wurden von Hype, Mitglied bei Zero Or One Productions (ZORO) während der Mekka '98 erstellt.
explosion.zip FLI - 69.501 Bytes
PCX-Viewer and PCX-Diashow:
Mit dem Betrachter können PCX-Dateien, die in der Auflösung 640x480 und 256 Farben abgespeichert wurden, betrachtet werden. Es wird einfach das Bild als Parameter an das Programm PCX.EXE übergeben Das Programm PCXSHOW.EXE, stellt die Diashow dar. Ihm wird als Parameter der Name der Skript-Datei übergeben. Die Datei SHOW1.SHO ist ein Beispiel-Skript das als Erklärung dienen soll.
pcx.zip 86.538 Bytes
Packit:
Ein Packprogramm, welches zwei verschiedene Algorithmen verwendet, und zwar RLE (Run Length Encoding) und das Bittable-Verfahren. Es erzielt relativ gute Packraten, manchmal bis zu 50%.
Packit.zip 13.505 Bytes
für Quellcode siehe Quellcodes
3D-Engine:
Diese Demo-Engine zeigt ZOF-3D-Files an. Es sind einige ZOF-Files beigelegt. Die 3D-Engine wurde von Sven Lepiorz und mir (Michael Neumann) in Watcom C++ und Assembler geschrieben. Bitte starten Sie start.bat oder übergeben sie dem Programm 3dengine.exe als Parameter ein ZOF-File.
3dengine.zip 297.907 Bytes
Bump-Mapping Demo:
Ein Effekt als ob auf ein Bild oder auf eine Oberfläche ein Scheinwerfer straht. Schauen Sie sich es am besten selbst an. Starten Sie dazu start.bat.
bumpmap.zip 182.863 Bytes
Fire-Sinus-Textscroller-Demo:
Ein Feuer, vor dem ein Text sinusförmig vorbeiscrollt. Bei dem einen Demo wurde der Soundplayer MIDAS für die Musikausgabe benutzt. Er wurde nicht von mir geschrieben. Mit ihm können sehr einfach MOD-, XM- und S3M-Files abgespielt werden. Um die Demo anzusehen, führen Sie am besten start.bat und start2.bat aus.
feuer.zip 192.739 Bytes
Swabble-Zoom Demo:
Es wird ein Bild sehr stark auseinander gezogen und verformt. Des weiteren wird ein Bild gezoomt und mehrmals dargestellt. Am Schluß wird während dem swabbeln gezoomt.
swabble.zip 180.420 Bytes
Programming language Ruby:
Programming language Eiffel:
ISE - Interactive Software Engineering ISE Eiffel (die Entwickler von Eiffel - Bertrand Meyer)
Halstenbach ACT iss-base
Object Tools Visual Eiffel und Display Machine (gut)
Eiffel - Application and Library Announcements-Links
Eiffel Liberty - An Online Magazine about the Eiffel Method and Language (sehr gut)
Eiffel's Design by Contract Predecessors and Original Contributions (Bertrand Meyer-12 Mar 97)
Eiffel Ecke noch mehr Informationen über Eiffel
Programming language Smalltalk:
Programming language Python:
Cryptography:
Anti-Virus-Programs:
Datafellows (F-PROT) sehr gut (schneller Datei-Download!!!)
Sound-Programming (MOD / XM / S3M):
MIDAS Digital Audio System - Download page
3D / 2D-Programming and much more:
General - Programming:
Assembler, Hardware, DOS and Operating Systems:
Buying Books from the Internet:
Buecher.de Lieferung kostenlos, garantiert am günstigsten! (sehr gut)
Federal Informatic Competition:
eMail: neumann@s-direktnet.de
last update: 21.11.1999 by Michael Neumann