--- Breaking News ---
Willkommen in meiner Algebra FX Section

<< Zurück zur Homepage

--- Achtung: ---

Wer sich vielleicht über das "etwas spartanische" Design wundert: ich bin noch nicht ganz soweit, da ich den AFX selbst erst kruze Zeit habe. Demnächst wird hier aber ein größeres Portal zu diesem Rechner entstehen.

Diese Vorabversion der Section soll "Eingeweihten" (denn sie ist mit dem Rest meiner HP überhaupt noch nicht verlinkt) zunächst bloß einen groben Überblick verschaffen über die Projekte für den AFX, an denen ich zur Zeit so arbeite.

Später wird sich hier dann eine Reihe meiner Add Ins für denn AFX finden (und NEIN: es wird keine Basic Programme für den AFX von mir geben!!!) sowie jede Menge Tools und natürlich Tips und Infos.

--- Der AFX ---

Seit kurzem Kurzem kann ich mich nun also stolzer Eigentümer eines Casio Algebra FX 2.0 Plus (kurz AFX 2.0+) nennen :)

Dieser Rechner ist für ein Studium ziemlich unerlässlich, welches ich am 1.10. nun aufnehmen werde :) (naja, ein WENIG hängtīs schon davon ab, WAS man studiert - für Musik wäre man mit ner Geige vielleicht besser beraten ...), denn er hat gegenüber einem CFX (welcher immerhin auch "nicht ganz schlecht" ist; man beachte die umfangreiche CFX Section meiner Homepage!) zahlreiche Vorteile: Der Fairness halber muss man auch einen Nachteil des AFX erwähnen: Er ist zwar auf Kompatibilität mit dem CFX konzipiert, CFX Basicprogramme sind tatsächlich aber nur bedingt kompatibel. Denn: Leider funktioniert (bis auf Asteroid) daher KEIN EINZIGES Spiel, was ich in der Vergangenheit für den CFX geschrieben habe (und NEIN, es werden KEINE neuen dazukommen) auch auf dem AFX (jedoch läuft MathMatX einwandfrei :) ).

Aber was sollīs, denn den AFX kann man ja schließlich in Assembler programmieren und es grenzt sowieso an ein VERBRECHEN, in so einem Fall dann für einen Basicinterpreter zu schreiben!!!

--- Meine AFX Projekte ---

Zwar hab ich den AFX noch nicht lange, war in der kurzen Zeit aber nicht faul. Zu meinen Werken für den AFX (bis jetzt) zählen: Die einzelnen Projekte werden weiter unten noch erläutert, z.T. auch mit Screenshots und Downloads von Demo - und Betaversionen. Zur Zeit schreibe ich an einer AFX Version von Commander Keen herum

--- Commander Keen ---

Vielleicht kennt ja noch der eine oder andere das alte DOS Jumpīn Run Spiel "Commander Keen"?? Meiner Meinung nach das Beste Jumpīn Run aller Zeiten (v.a. Episode 4) und mit ca. 500KB Gesamtgröße und 16 Farben der Beweis dafür, dass hoher Spielspaßfaktor nicht durch die Menge der benötigten Ressourcen bestimmt wird (Heute: je mehr Ressourcen, desto besser - Ergebnis: 2GB Spiele, die nur auf 3GHz Prozessoren laufen, aber Keen meist nicht das Wasser reichen können), sondern durch gut durchdachtes und einfaches, aber geniales Konzept.

So habe ich beschlossen, von Commander Keen, das auf meiner Festplatte nen ehrenplatz einnimmt, eine Version für den AFX zu machen. Die nötige Performance bietet der alle mal. Vorab schon mal 2 Screenshots:



Die Grafik des Spiels soll an "Keen IV - Good Bye Galaxy" angelehnt sein und dieser so nah wie nur möglich kommen - und beim Commander selbst wie auch beim Untergrund ist mir das denke ich auch ganz gut gelungen, nur die Palmen sind noch überholungsbedürftig. Das sind leider alle grafischen Elemente die ich bis jetzt habe, aber natürlich nicht alle, die dann im fertigen Spiel auftauchen. Und deshalb möchte ich hier nen Aufruf starten:

Helft mir bei der Grafik von Commander Keen für den AFX!
Ich suche so 1 bis 2 Leute, die sich um Grafik - und Leveldesign kümmern, ich übernehme die Programmierung!!!

Denn der AFX hat zwar nur 3 Farben (schwarz, grau, weiß), aber RICHTIG GUTE Grafik für den Rechner hinzukriegen ist (wahrscheinlich GRADE deshalb) ziemlich schwierig. Für die Grafik des Bewegungsablaufs von Commander Keen, die aus 5 Tiles besteht, habe ich - man solltes nicht glauben - insgesamt fast 3 Stunden gebraucht!

Also: lasst mich nicht hängen, meldet euch! eMail: mailofmarco@gmx.de)!
Ich habe keine Lust, die ganze Grafik allein zu machen! - zu aufwendig.

Wer mitmachen will: einfach bei mir melden! Ihr solltet es dann aber auch richtig gut machen, denn billige 08/15 Grafik kann ich mir auch schnell selbst "zusammenklatschen". Lieber wenig, dafür aber von Qualität, das hat oberste Priorität! Die Grafik soll so gut werden wie nur möglich und der Keen 4 Grafik dabei möglichst nahe kommen.

Wer mitmacht bekommt dann natürlich auch seine Aufzählung in den Credits und ist so unvergessen für alle Zeit ;). Außerdem bekommt er von mir das Tool AFXImg zur Verfügung gestellt, das BMPs in weiß - mittelgrau - schwarz Greyscales mit 0 bis 15 Ditheringstufen verwandelt und in ein entsprechendes AFX Format konvertiert - ein äußerst praktisches Tool, die Grafik der AFX Demos und der Screenshots hab ich damit erstellt (aber nicht verleiten lassen: die Bewegungsabläufe des Commanders und seiner Gegner müssen per Hand gemalt werden; Dithering ist hier ungeeignet, da das nur bei größeren Flächen richtig zur Geltung kommt).

So weit so gut. Mit einer Demo Version von Keen AFX kann ich zwar noch nicht dienen, aber weitere Screenshots (u.a. mit ner Bewegungsanimation des Commanders) gibts bei der Beta des AFXImg Image Stub zu sehen, die ihr schon downloaden könnt. Mit Programmcode (der sich wohl um die 35 - 50K bewegen wird) sowie Grafik und Leveldaten wird das Spiel wahrscheinlich dann deutlich über 64KB liegen.

Böse Zungen behaupten zwar, dass AFX Add - Ins maximal 64KB groß sein dürften, und dass größere Dateien (eine ROM Disk ist ja 128KB groß, außerdem könnte man mehrere ROM Disks zusammenschließen) nur mit dem Entwicklerpaket von Datalight möglich wären, welches Zitat "tausende von Dollar" kostet.

--- Add Ins über 64KB ---

Aber das ist natürlich Quatsch, denn zwar kostet das Tool von Datalight tatsächlich so viel, aber wer die "AFX Programming Guide" von Oliver Coupelon mal aufmerksam gelesen, der weiß wie man den Flash auslesen kann, und wer sich dann noch gut genug mit Assembler auskennt, weiß sich bei diesem Problem durchaus zu helfen ;) :

Man verteilt sein Programm einfach auf bis zu 6 ROM Disks a 128KB. Das erste Add In enthällt einen Loader und einen Teil des Programms, die anderen weitere Programmteile und jeweils einen Stub (ein kleines Programm, das ausgibt "Programmmodul soundso, starten sie Add In 1"). Starten man das falsche Add In (also nicht Add In 1), wird der Stub aufgerufen, ansonsten der Loader gestartet, welcher die ROM Disks liest und in den RAM schreibt. Anschließend wird ein Sprung an eine gegebene Stelle des RAMs ausgeführt, oder eben gleich in den Flash, je nachdem (für den Header des Loaders, wo Informationen über zu kopierende Programmbereiche und Programmeinsprungpunkte gespeichert sind, müsste man sich zwar ein eigenes Format ausdenken, was aber kein Problem ist, da man hier ja an keinerlei Konventionen gebunden ist).

Für das Problem, dass für ein Add In eigentlich nur 103.25KB RAM reserviert sind (RAM Aufteilung: 1KB Interruptvektoren, 0.25KB BIOS Datenbereich, 103.25KB Add In, 8KB Video RAM und 143.5KB User Datenbereich = Basic programme, Listen, Matrizen, ...) gibts auch ne einfache Lösung: lasst uns den User Datenbereich doch einfach überschreiben und für unser Add In nutzen, wir bekommen so 143.5KB RAM zusätzlich (also 246.75 KB gesamt)!!! Natürlich muss der User dann fairer Weise vorher darauf hingewiesen werden, seine Daten ggf. zu sichern, da das einem Reset gleich kommt.

Wenn ich mit Keen über 64K komme (was sehr wahrscheinlich ist), werd ich mich mal an die Arbeit und ein solches Loaderformat für den AFX entwickeln. Prinzipiell ist das PROBLEMLOS möglich, nur eben mit etwas Aufwand verbunden. Aber einmal fertig hat man dann wie beim "tausende Dollar teuren" Entwicklertool von Datalight die Möglichkeiten, Add Ins schreiben, die a) bis zu 768KB groß sind, wobei man b) bis zu 246.75KB davon zugleich in den RAM laden und dort ausführen und die man b) wenn man das WILL auch gleich im Flash lassen und dort starten kann (was natürlich dann langsamer ist, weil der Flash größere Zugriffszeiten hat; außerdem müsste man dann wenigstens das Datensegment in den RAM verlagern)

--- AFXImg ---

Dieses äußerst praktische Tool für den AFX (das zur Zeit in der Betaversion vorliegt) habe ich zeitgleich mit dem Grafikreiber AFXGFX geschrieben (der ebenfalls noch beta ist). Funktionen:

Die Betaversion von AFXImg könnt HIER downloaden (doch noch nicht, muss mir erst für die "Copyright" - und die "About" - Grafik was überlegen)

--- AFXImg Image Stub ---

Das AFXImg Image Stub ist ein Add - In, dass zuvor mit AFXImg erzeugte Bilder im AFXGFX Image Format darstellen kann (auch mehrere auf einmal)



das Image Stub ist mit NAsm gebschrieben und es gibt folgende Möglichkeiten, wie man Bilder hineneinbekommen kann: a) man bindet sie direkt in den Assemblerquelltext ein (entweder als Binary Datei oder als Assemblerquellcode), oder b) man verwendet bei AFXImg die Funktion "Use Template". Die Imagedaten werden dann direkt in das fertige Add - In geschrieben, dass dann nur noch auf den AFX überspielt werden muss.

Da AFXImg in der derzeitigen Betaversion jedoch nur Binary Files unterstützt, entfällt b) vorerst.

Wer den Quelltext des Image Stubs nicht hat (und da der ebenfalls erst Beta ist werde ich den zu diesem zeitpunkt auf meiner HP auch noch nicht veröffentlichen), für den gibt es also NOCH keine Möglichkeit, Images die mit AFXImg erzeugt wurden auch auf den Rechner zu überspielen. Aber: Vorab biete ich deshalb ne Demoversion des AFXIMG Image Stubs mit ein paar (genauer gesagt 10) durch AFXImg erzeugten Bildern (3 Screnshots könnt ihr oben schon sehen) zum Download:

Download von AFXImg Image Stub (Betaversion)

Die Funktionsweise des Add Ins ist wie folgt:

--- Meine AFX Treiber ---

Unter meinen bisherigen Treibern für den AFX ist der Grafiktreiber AFXGFX der interressanteste zu erwähnende. Er soll deshalb hier mal genauer beschrieben werden, aber auch die anderen sollen kurz Erwänung finden:

AFXGFX (ist fast fertig und liegt derzeit in der Beta vor) ist vollständig in NASM geschrieben und bietet grafikmäßig so ziemlich ALLES, was auf dem AFX möglich ist:

Aber AFXGFX kann noch mehr. Es kann Bilder im AFXGFX Image Format verwalten, welches über die folgenden Eigenschaften verfügt: Und trotz allem ist AFXGFX ziemlich schnell, z.B. geschieht das Darstellen von Bildern, die den GANZEN Bildschirm bedecken, mit einer Framerate von um die 200 Fps.

In der Betaversion von AFXGFX sind folgende Funktionen noch nicht verfügbar, die der Alphaversion noch hinzugefügt werden sollen: So weit erst mal dazu, und wenn die Alphaversion von AFXGFX fertig ist, werde ich sie samt Doku und Demos dazu auf meine Seite stellen. Ihr könnt sie dann in eure eignen Add Ins einfach einbinden :)

Die anderen Treiber (AFXSYS, AFXCRT, AFXKBD), die z.T. noch Beta aber z.T auch schon fertig sind näher zu erläutern, habe ich nun doch keine Lust mehr (schreibe jetzt schon ne ganze Weile an diesem Text...), was in etwa ihre Funktion ist lässt sich ja aus ihrem Namen ja einigermaßen ableiten. Und auch hier gilt: wenn fertig, kommt die Alphaversion samt Doku und Demos auf meine HP...

--- Key! ---

Zum Schluß möchte ich noch ein kleines Demo - Add In vorstellen, das mein erstes überhaupt war: Key!



Dieses gibt euch die BIOS Scancodes und DOS Chars von gedrückten Tasten an, und ist dehalb ziemlich nützlich, weil die z.T von den PC Scancodes abweichen.

Download

--- Ganz zum Schluß ---

Und GANZ zum Schluß möchte ich euch noch mal meine eMail geben:

mailofmarco@gmx.de

Also, wenn ihr Fragen, Probleme, Anregungen, Ideen und/oder (positive) Kritiken habt ^^. Und vergesst v.a. nicht: ICH SUCHE NOCH LEUTE, DIE MIR BEI COMMANDER KEEN HELFEN !!!

06.09.2004 by Marco