The Little Coders

Resources for Programmers

last update: 21.11.1999 by Michael Neumann

in English auf Deutsch

Site-Map || What's New || Search

For Programmers | Algorithms and Sourcecodes

Programs | Demos | Links

 

Ruby Programmierer Mailingliste

 


Prgmail - Mailinglist

Become a member of this free mailing-list.

We discuss about everything about programming, about Java, Delphi, Assembler, C++ and much more...

email:

more about Prgmail

 

 


 

 

For Programmers [back]

 

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:

 

 

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)

Größter gemeinsamer Teiler C/C++

 

 

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

 

 

Other Sourcecodes:

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

 

 


 

 

Programs [back]

 

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 (html)

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

 

 


 

 

Demos [back]

 

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

 

 


 

 

Links [back]

 

Programming language Ruby:

Ruby Ruby-Homepage

 

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:

Cincom (Object Studio)

 

Programming language Python:

Python-Homepage

 

Cryptography:

SSH - Cryptography A-Z

 

Anti-Virus-Programs:

Datafellows (F-PROT) sehr gut (schneller Datei-Download!!!)

McAffee

 

Sound-Programming (MOD / XM / S3M):

MIDAS Digital Audio System - Download page

 

3D / 2D-Programming and much more:

Remal Entertainment Software

 

General - Programming:

Professional Programmers Pages

Programmers Heaven

 

Assembler, Hardware, DOS and Operating Systems:

PC-NewOS

Assembler-Page

Assembler-Programmierung

80x86 Assembler-Page

Assembler-Links-Page

Dr. Dobbs Journal

Intel-Secrets

Ralf Brown's Files

 

Buying Books from the Internet:

Buecher.de Lieferung kostenlos, garantiert am günstigsten! (sehr gut)

Addison-Wesley Longman

Amazon.de

Buch.de

 

Federal Informatic Competition:

Sourcecodes und Aufgaben

Homepage von BWInf

 

 


eMail: neumann@s-direktnet.de

last update: 21.11.1999 by Michael Neumann