java -jar c64.jar
In diesem Modus erscheint ein Menüpunkt zum Laden von c64-Programmen, wie etwa das niedliche 8-Damenproblem "8-damen.prg", das dem jar-archiv beiliegt und mit
jar xf c64.jar 8-damen.prg
extrahiert werden kann. Um das Programm laufen zu lassen, sollte man auch die rom-Files extrahieren. Hätte das Applet zwar eigentlich aus dem jar ziehen können müssen, tut es aber nicht. Ist wohl ein Bug des Originals. Der referenziert wahrscheinlich nicht die Codebase oder so. Egal.
Dieses niedliche, kleine Applet emuliert einen C64, allerdings mit stark eingeschränktem Betrieb. Ich fand den Emulator zwischen einem Haufen anderer Emulatoren und konnte den Autor nicht ausfindig machen. Naja. Der Java-Source lag bei und ich stellte schnell fest, dass Tastatureingaben nicht funktionierten. Nach Beseitigung einiger rudimentärer Bugs und Implementation von funktionierenden Tastatureingaben lief es dann doch überraschenderweise.
Die Tastatureingabe funktioniert nur, wenn der Mauszeiger im Emulator ist. Mit "+" kann man den Bildschirm vergrößern, mit "-" verkleinern, mit der Maus läßt er sich verschieben.
Der Emulator läuft mit Original-ROMs, aber ohne Soundunterstützung. Die Emulationsleistung ist eher gering, für einen kleinen Basic-Betrieb oder ein paar niedliche Programme reicht es jedoch aus. Das Applet ist ja auch mehr als Gag auf einer Homepage gedacht, als denn als richtiger Emulator. Es werden nicht alle Tasten emuliert und die Tasteneingaben werden eher grob in die virtuelle Maschine geschossen, anstatt ordentlich eingearbeitet zu werden. Ebenfalls zeigt das Basic einige Merkwürdigkeiten im Verhalten, was ich mir ad hoc nicht erklären konnte. Aber egal. Hielt ich nicht für wichtig für diese Anwendungszwecke. Naja, zumindest läuft mein gutes, altes 8-Damenproblem, das, glaube ich, damals '87 aus einer Wette heraus entstanden war. Da hatte ein Freund sich an dem Problem versucht und in Basic für die 92 Lösungen fast einen ganzen Tag gebraucht. Ein anderer Freund wollte das besser machen und kodierte den Spaß in 6502-Assembler. Dazu spielte im Hintergrund Musik. Ich sah mir das an und bekam Haarausfall. "30 Minuten?! Ich brauche für das Problem höchstens 30 Sekunden und mir selbst gebe ich 3!" So kam es zu einer kleinen Wette. Nun, je. Nachdem ich nach dem ersten Aufruf erstmal den verflixten Fehler im Programm gesucht hatte, da die knapp 2 Sekunden Ausführungszeit (im Testlauf ohne Ausgabe) ja nicht sein konnten, stellte ich fest, dass ich das schnellst mögliche 8-Damenproblem-Löseprogramm geschrieben hatte (das jemals existieren würde). Warum? Weil das Programm mit jedem Bildaufbau eine neue Lösung präsentiert und das mit 25 Hz. Das absolute Maximum, dem das menschliche Auge theoretisch folgen kann. Denn die Aufgabe lautet präzis (es war ja eine Wette): "...ein Programm, das alle 92 Lösungen findet (ohne Spiegelungsunterscheidungen) und diese sichtbar anzeigt..."
Nun, meine Schokolade hat gut geschmeckt. Auf dem Java-Emulator läuft die Routine jedoch weitaus langsamer. Zumindest auf meinem Rechner.
Das Programm darf nur zusammen mit dieser Seite kopiert werden. Eine Kopie dieser Seite liegt dem jar-Archiv bei. Die GIF-Grafiken des Originals hab' ich mal nicht angerührt, damit jeder die ursprüngliche Quelle des Files finden kann.
viel Spaß!
Email: Hanno Behrensgcc
?
Wikipedia: Was ist die Java VM?
Artikel: Die Java Falle Warum es wichtig ist, sich von proprietärer Software zu lösen.
Wikipedia: Was ist freie Software? Warum machen sich so viele Menschen die Mühe und geben ihre Programme kostenlos ab, wo sie doch statt dessen jede Menge Geld damit verdienen könnten? Oder verdienen sie damit trotzdem Geld? Oder gerade deswegen? Oder ist Geld am Ende völlig bedeutungslos bei dieser Frage?
Buch: Java ist auch eine Insel Dieses Onlinebuch von Christian Ullenboom auf Deutsch vermittelt leicht verständlich den Umgang mit Java.
Buch: Thinking in Java von Bruce Eckel
Buch: Thinking in Patterns with Java von Bruce Eckel
Optimiert programmieren unter Java Alles zum Thema, optimieren nach Geschwindigkeit, Größe oder Wartbarkeit, ebenfalls findet sich hier der Linpack Benchmark, der ein wesentlich genaueres Ergebnis erzeugt als die hier vorgestellte Routine.
Java vs C++ Eine nicht ganz neutral geschriebene Seite, die abar am Ende auf Fakten kommt und damit sehr ernst zu nehmen ist. Wie immer gilt bei Optimierungen, dass es drauf ankommt...
Does Java need Checked Exceptions? Das Fehlerabfangen in Javaprogrammen wird häufig von Programmierern aus Bequemlichkeit ignoriert. Dafür gibt es technische und menschliche Gründe. Doch hier findet sich eine überraschend einfache Lösung für das Problem.
Tutorial: Das Java Tutorial von Sun Das Standard-Tutorial von Sun ist für die meisten Java-Anfänger und auch für die Fortgeschrittenen ein immer wieder genommenes Referenzwerk, falls es zu Problemen kommt oder Änderungen im Sprachgebrauch stattgefunden haben.
Buch: Einführung in Java Ein weiteres freies Online-Buch zum Thema Java.
Viele weitere Java Ressourcen Wem die Ressourcen bisher noch nicht genügen, findet hier mit Sicherheit alles zum Thema Java, was bislang ungenannt geblieben ist.