Hier finden sich verschiedene Programme, die ich in den vergangenen paar Jahren entwickelt habe.
Hierbei handelt es sich um ein einfaches Netzwerk-Pokerspiel für mehrere Spieler, die Spielregeln entsprechen dem klassischen Draw Poker. Das Spiel besteht aus einem Server, welcher die Spielregeln implementiert und den Spielern einen Chat zur Verfügung stellt, und einem einfachen Clienten auf curses-Basis mit dem man sich mit dem Server verbinden kann.
Der Monitor ist eine Art Minimalstbetriebssystem zur Unterstützung der Softwareentwicklung direkt auf der Hardware. Die Ursprüngliche Version für den VPort-50, einen Einplatinenrechner auf Basis des NEC V50 Prozessors (80186-kompatibel), ist im Sommer 2004 entstanden und wurde von mir als Studienarbeit eingereicht. Inzwischen wurde der Monitor auf die PDP-11 und die ARM-Mikrocontrollerfamilie LPC2xxx portiert.
Um den Monitor für den VPort-50 zu übersetzen wird NASM und Bruce Evans C-Compiler "bcc" benötigt. Für die PDP-11 kann man die Entwicklungstools von 2.11BSD verwenden, diese können mit Hilfe des Emulators Apout auch unter einem modernen Unix-System ausgeführt werden. Aufgrund der Verwendung dieser beiden relativ altertümlichen Compiler ist der größte Teil des Monitors in K&R-C geschrieben. Die ARM-Portierung verwendet GCC und die GNU binutils.
Grumpf ist ein sehr simples Multitasking-Betriebssystem für die PDP-11, das ich aus reiner Freude an der PDP-11 Maschinensprache entwickelt habe. Es wurde auf einer 11/03 entwickelt und getestet und verwendet daher nicht die PDP-11 MMU. Der Kern des Systems besteht aus folgenden Teilen:
Ein einfaches paketorientiertes I/O-System und Gerätetreiber für die Line Clock und KL-11 Terminalschnittstellen bestehen als separate Prozesse. Darüber hinaus bestehen ein paar primitive Programme welche die verschiedenen Systemteile in irgendeiner Form verwenden, allerdings sind die nicht direkt zu irgendetwas nützlich.
Bin2hex dient zur Umwandlung von Programmen in das Intel-Hex-Datenformat, so daß diese vom Monitor oder dem Grumpf-OS geladen werden können. Dabei werden verschiedene Binärformate direkt unterstützt:
Der Konverter kann Segment-Address-, Start-Segment-Address-, Linear-Address- und Linear-Start-Address-Records erzeugen, dabei werden eventuell vorhandene Angaben im Dateiheader verwendet.
Dies ist ein als Referenzimplementation gedachter, bitgenauer Emulator der KDJ11-A CPU mit Memory-Management und FPU. Daneben ist nur die unbedingt notwendige Peripherie, nämlich die Line Clock und die Konsolenschnittstelle, implementiert. Der Emulator kann die original CPU-Tests DEC erfolgreich ausführen, darüber hinaus laufen der Monitor und das Grumpf-OS darauf.
Mit diesem Programm kann man unter NetBSD/i386 einen PIC 16F88 Mikrocontroller programmieren. Dazu wird ein Trivial Low-Voltage Programmer am Parallelport eines PCs benötigt. Unter NetBSD 4.0 läßt sich das Programm in der Form nicht übersetzen, da die verwendeten Schnittstellen für die Erlangung der I/O-Rechte für den Parallelport aus NetBSD entfernt wurden.
Dies ist mein EtherIP-Treiber für NetBSD 4.0 in seiner ursprünglichen Form. Der Treiber wurde mit geringfügigen Modifikationen in NetBSD 4.0 aufgenommen und sei hier nur der Vollständigkeit halber aufgenommen. EtherIP ist ein sehr einfaches Protokoll zum Übertragen von Ethernet-Frames über IP (siehe RFC 3378). Der Treiber unterstützt sowohl IPv4 als auch IPv6.