online: 2
Rekord: 57

Last update:
2005/04/20

Home
Übergeordnete Seite
Search:
Suche starten
In English, please!

Die Hardware

Viele haben sich sicherlich schon über die Langsamkeit ihrer Programme auf dem Casio CFX geärgert, aber das liegt nicht am Rechner, sondern NUR an der Unzulänglichkeit des Casio Basic: zum einen ist es eben nur eine Interpretersprache, die zum anderen auch teilweise nicht besonders gut umgesetzt ist (gerade bei der grafischen Darstellung ließe sich noch einiges an Geschwindigkeit herausholen, wenn der Interpreter nicht nach JEDEM Grafikbefehl einen Displayrefresh ausführen würde, sondern wenn man den separat aufrufen müsste). Könnte man den Casio CFX direkt in Assembler programmieren (was im Übrigen wahrscheinlich DOCH möglich ist), wäre man dagegen überrascht über die Performance, denn:

Rein hardwaremäßig könnte der Casio CFX durchaus mit einem GameBoy mithalten!

Die CPU

Im Inneren des Rechners werkelt eine Z80 ähnliche 8Bit CPU, die standardmäßig mit 4.3 MHz betrieben wird (und es gibt sogar Möglichkeiten, sie auf bis zu 8MHz zu übertakten (mehr dazu im DCF)! Vergleich: der original Gameboy arbeitet mit einem Z80 und 1MHz, der Gameboy Color mit einem Z80 und 4MHz (ergo: der Casio CFX ist doch eigentlich gar nicht so schlecht, oder?). Viel mehr ist über die CPU des Rechners allerdings nicht bekannt, speziell was den Befehlssatz angeht (möglicherweise ist er ja teilweise sogar mit dem des Z80 identisch?).

Wie alle 8 Bit CPUs hat der Prozessor des Casio CFX natürlich keine FPU, und unterstützt daher von Haus aus keine gebrochenen Zahlen (wie das beispielsweise die FPUs der x86er Reihe mit den Datenformaten single, real, double und extended tun). Das er trotzdem damit rechnen kann liegt daran, dass das Betriebssystem eine Floating Point Arithmetik für gebrochene Werte im Bereich ]-10100 .. 10100[ mit 15 Stellen Genauigkeit emuliert (ähnlich wie dass für x86er CPUs <486 ohne externe FPU der Fall ist), und zwar mit Hilfe von BCD (=Binary Coded Decimal) - Ziffern (mehr dazu im Kapitel Das FP - Format zur Speicherung von gebrochenen Werten der Memory Map), genau wie das bereits die ersten Tischrechner mit 4Bit Chips getan haben.

Operationen mit gebrochenen Werten (z.B. 3.9+5.1→A) laufen auf dem Casio CFX daher ERHEBLICH langsamer ab als ganzzahlige.

PS: es ist sogar wahrscheinlich, dass für verschiedene Rechnertypen, z.B. den CFX 9850G und den 9850GB Plus (siehe Verschiedene Firmwareversionen und das Testmenü) auch teilweise verschiedene CPUs verwendet werden.

Der physische Speicher

Der Casio CFX verfügt über einen unbeschreibbaren ROM, in dem das Betriebssystem gespeichert ist (Updates sind möglich, indem man einen neuen ROM einlötet), und einen RAM von 32KB (CFX 9850) bzw. 64KB (CFX 9950) Größe, in dem alle veränderlichen Daten (wie Displaykontrast, Casiobasic Programme, Listen, Matrizen, ..., und auch der CPU Stack) enthalten sind. Die Größe des ROMs variiert je nach Rechnertyp, so gibt z.B. das ZX933 Testmenü (Casio CFX 9850G) 4 M Byte an und das des Casio CFX 9850GB Plus (GY359) eine Größe 8Mbit = 1MB (ich glaube aber, dass das ZX933 System den Wert falsch ausgibt und dass statt 4M Byte 4MBit = 512KB gemeint sind, da GY359 das neuere System ist und zudem die ROM Chucksum doppelt so hoch, was beim GY359 auf doppelt so viel Speicher schließen lässt, wenn man von einer statistischen Gleichverteilung der gesetzten und gelöschten Bits des ROM in beiden Fällen ausgeht; siehe Casio CFX Testmenü).

PS: der RAM der CFX 9850 - Reihe lässt sich übrigens auch auf 64KB erweitern (mehr dazu auf Marcel´s Casio CFX 9850G Seite)

Der logische Speicher

Wie alle 8Bit Prozessoren adressiert die Casio CFX CPU intern mit 16Bit, d.h., der logische Adressraum ist 64KB groß und reicht von 0000 bis FFFF. Allerdings kann die CPU auf wesentlich mehr Speicher zugreifen, indem sie sich entweder Banking oder Speichersegmentierung - oder sogar beides zugleich zu Nutze macht.

Beim Banking wird jeweils ein Teil des physischen Speichers, eine Bank, in den 64KB Adressraum der CPU geschalten, so dass dieser insgesamt sich aus einer Reihe von Bänken zusammensetzt, und die logischen Adressen, die die CPU anwählt, sich jeweils von den tatsächlich angesprochenen physischen Adressen unterscheiden (das ist ähnlich wie beim Paging der 386er Prozessoren, nur dass hier die Adressräume wesentlich größer sind).

Die Größe einer solchen Bank beim Casio CFX ist nicht bekannt (wenn er denn überhaupt Banking verwendet), es ist aber wahrscheinlich, dass sie 8KB beträgt (möglich wären theoretisch noch 2, 4, 16 und 32KB), da zu kleine Bänke ineffektiv wären und zu große bei einem System mit 64KB logischem Speicher ebenfalls, weil dann nicht mehr als 4 Bänke zugleich angesprochen werden könnten.

Je nachdem, ob der Casio CFX Bänke durch 8 - oder 16 Bit Werte auswählt, könnte die Casio CFX CPU damit maximal 256*8KB = 2MB oder 64K*8MB = 512MB Speicher verwalten (Vgl: der Gameboy verwendet ebenfalls 8KB Bänke und wählt diese mit 16Bit - Werten aus, kann also auf maximal 512MB Speicher zugreifen).

Obwohl es im Innern des Rechners zwei Speichermodule (ROM + RAM) gibt, unterscheidet die CPU diese innerhalb ihres Adressraums natürlich nicht; über den selben Adressraum können sowohl ROM als auch RAM gleichermaßen angesprochen werden (je nachdem, wie die Bänke geschalten sind, z.B. 0000..7FFF: RAM, 8000..FFFF: ein Ausschnitt des ROMs, bzw. wie die Segmente eingerichtet wurden). Das ermöglicht evtl. auch die Ausführung von Assemblercode auf dem Casio CFX, ohne vorher den ROM zu manipulieren (mehr dazu HIER).

Der Grafikadapter

Hier gibt´s nicht viel zu sagen: Das Display besteht aus 128x64 Pixeln und kann drei Farben darstellen, deren Kontrast unabhängig voneinander jeweils im Bereich von weiß über orange und blau bis hin zu grün eingestellt werden kann. Eine Besonderheit ist nur:

Die Bilddaten des Grafikfensters sind im RAM gespeichert. Das sind aber nicht die gleichen Bilddaten, die der Grafikadapter auf dem Bildschirm darstellt (mit anderen Worten: es wird kein Speicherfenster des Grafikadapters in den RAM Bereich gemappt, auf den direkt zugegriffen werden kann), sondern das Betriebssystem des Casio CFX führt nach jedem grafischen Befehl einen Display Refresh aus, um den entsprechenden Bereich des RAM zum Grafikadapter zu kopieren (der Hauptgrund, warum die Grafik auf dem Casio CFX so langsam ist). Das Betriebssystem selbst dagegen scheint bei der eigenen Grafik (da es z.B. für die Darstellung des Main Menu keinen zusätzlichen RAM benötigt) auf den "echten" Grafikspeicher direkt zuzugreifen.
Copyright (C) 2004 by Marco Kaufmann