GeoRAM

Für diesen Beitrag wurde das CBM prg Studio verwendet.
weitersagen ...
Tweet about this on TwitterShare on FacebookShare on Google+Share on LinkedIn

CBM prg StudioWie nutzt man den GeoRAM Zusatzspeicher?

Was das GeoRAM eigentlich ist und ein paar allgemeine Infos dazu findet ihr unter ‚Module‚.

Da man es aber auch mit VICE und dem Turbo Chameleon 64 emulieren kann, ohne ein echtes Modul zu besitzen, versuchen wir doch einfach mal es zu verwenden.

 

GeoRAM aktivieren

VICE: Startet VICE und wählt den Menüpunkt „Einstellungen -> Erweiterungsmodul I/O Einstellungen -> GEO-RAM Einstellungen…„ aus. Setzt hier den Haken, um das GeoRAM-Modul zu aktivieren und stellt die Größe auf 512KB, abschließend bestätigt das Fenster mit OK. Für unseren Test solltet ihr die Einstellungen speichern, sonst ist beim nächsten Start von VICE das GeoRAM wieder deaktiviert.

Turbo Chameleon 64: Startet den C64-Core und geht in die „Options„, hier etwas nach unten scrollen und unter „GeoRAM size„ 512KB einstellen. Im Hauptmenü wirkt sich der Punkt [F2] Clear ALL Memory aufs GeoRAM-Modul aus, sein Speicher wird hier ebenso wie der Speicher einer REU gelöscht. Auch beim TC64 solltet ihr für unseren Test die Einstellungen evtl. speichern.

 

Das GeoRAM-Modul verfügt nicht über den DMA-Chip der REU, daher können Speicherbereiche nicht automatisch gefüllt / kopiert werden, dies muss manuell mit der CPU geschehen. Das GeoRAM blendet dazu die jeweils gewünschten 256 Bytes an den Adressen $DE00 bis $DEFF ein. Auf welchen 256 Byte-Block (welche Bank) man zugreifen möchte wird über die Speicherstelle $DFFE/$DFFF festgelegt.

Um das GeoRAM anzusprechen, benötigt man nur die zwei eben erwähnten Register:

Achtung: Diese beiden Register können nur geschrieben und nicht ausgelesen werden. Ihr könnt sie daher auch nicht mit adc  oder inc  erhöhen!

 

Setzen wir das jetzt mal in die Tat um:

 

Das Programm füllt zunächst die ersten 16KB im GeoRAM mit jeweils 256 identischen Zeichen (s. fillGeoRAM). Wir verwenden hier einfach die Zeichen 0 bis 63 aus dem Char-ROM, somit können wir, durch eine Ausgabe des jeweiligen Blocks auf den BS, direkt das Ergebnis kontrollieren.
Anschließend legen wir die Adresse des BS-Speichers ($0400) als Ziel für unsere Kopierfunktion an ZP_COPYDESC ab.
Dann legen wir über das X– und Y-Register den gewünschten Bereich im GeoRAM fest und kopieren über copyGeoRAM den gewählten 256Byte Block vom GeoRAM in den BS-Speicher. Damit wir etwas mehr sehen erhöhen wir das MSB der Adresse des BS-Speichers an ZP_COPYDESC+1 um eins und geben den nächsten Bereich aus dem GeoRAM aus. Das Ganze machen wir zum Schluß noch ein Drittesmal.

Im Java-Emulator gibt es leider kein GeoRAM, daher läßt sich dieses Programm dort nicht testen.

 

Startet ihr das Programm sollte euer BS ungefähr so aussehen:

Ausgabe des GeoRAM Beispielprogramms.
Ausgabe des GeoRAM Beispielprogramms.

Die Anzeige erklärt sich so:
Wir haben ja im GeoRAM in den ersten 16KB jeden 256 Byte-Block mit dem jeweiligen Zeichen aus dem Char-ROM gefüllt. Daher sehen wir zu erst lauter „@„ (da mit ldy #$00  der erste 256 Byte Block gewählt wurde), danach folgt „T„ ( ldy #$14  entspricht dem 21. 256er-Block) und zum Schluß „?„, das dem 40. Block entspricht ldy #$3F ). Vergesst nicht, dass die Zählung mit 0 beginnt. Schaut ihr ins Char-ROM dann findet ihr an den Stellen $00 (0), $14 (20) und $3F (63) unsere Zeichen „@„, „T„ und „?„.

Falls ihr jetzt nicht glaubt, dass wir den Speicher des GeoRAMs verwenden könnt ihr diesen ja mal entfernen / deaktivieren und das Programm erneut starten.

 

Wer VICE nutzt und kontrollieren will, ob wir tatsächlich die ersten 16KB im GeoRAM beschrieben haben, der kann im Dialog wo man das GeoRAM aktiviert den Haken fürs Speichern setzen. Gebt dann noch ein Verzeichnis und Dateinamen an und schließt den Dialog mit OK. VICE speichert beim Beenden nun den Inhalt des GeoRAMs in der angegebenen Datei und ihr könnt diese dann mit einem HEX-Editor kontrollieren.

 

In der Praxis wird das GeoRAM eher selten verwendet. Speziell darauf ausgerichtete Programme würde ich auch nicht unbedingt entwickeln. Man könnte aber z. B. prüfen ob ein GeoRAM im System steckt und wenn das der Fall ist, es zur Beschleunigung verwenden, in dem man z. B. den Inhalt der Diskette dort ablegen und somit die Nachladezeiten verringern.

 


Nachtrag vom 24.04.2013:

Da ich mittlerweile ein ‚echtes‚ GeoRAM besitze und sichergehen wollte, dass es auch funktioniert, habe ich auf Basis des eben vermittelten Wissens ein Check-Programm geschrieben.

GeoRAM-Checker V1.0
Das Programm ermittelt zunächst, ob ein GeoRAM vorhanden ist und welche Größe es hat. Da es kein eindeutiges Zeichen gibt, muss dazu in die zum GeoRAM gehörenden Adressen geschrieben werden. Dies kann zu Problemen führen, wenn eine andere Erweiterung im C64 steckt. Daher sollte das Programm nur ausgeführt werden, wenn man auch ein GeoRAM verwendet. Wurde ein GeoRAM gefunden, dann werden sämtliche BYTES im Speicher des GeoRAMs einmal beschrieben und gelesen, dabei wird geprüft, ob der Inhalt korrekt ist. Auf dem BS könnt ihr verfolgen, wo die Prüfroutine gerade ist und ob die bisherigen Blöcke funktionieren oder defekt sind. Um ein defektes GeoRAM zu simulieren, könnt ihr das Programm z. B. unter VICE mit 512KB GeoRAM starten. Habt ihr ein paar grüne ‚Kästchen‚ dann könnt ihr übers Menü das GeoRAM einfach deaktivieren und sofort erhaltet ihr Fehler. Es kann euch passieren, dass VICE beim Deaktivieren des GeoRAMs (das ja vom Check-Programm gerade verwendet wird) komplett absemmelt, probiert es dann einfach nochmal.

Der GeoRAM Checker in Aktion...
Der GeoRAM-Checker in Aktion…

Ein Erfolg oder Scheitern des Tests, wird durch eine dezente Bildschirmausgabe verdeutlicht.

Der Source ist echt gruselig, daher möchte ich den niemanden zumuten. Sollte dennoch Interresse daran bestehen, bitte ich um eine Info. Ich werde ihn dann nochmal überarbeiten, kommentieren und dann zur Verfügung stellen.

Vorerst findet ihr hier ein D64-Image mit dem fertigen Programm.


Schrott!!Naja...Geht so...Ganz gut...SUPER! (Noch nicht bewertet.)

Loading...


 

<<< zurück |

 

 

weitersagen ...
Tweet about this on TwitterShare on FacebookShare on Google+Share on LinkedIn

Schreibe einen Kommentar


Beachtet bitte, dass ich eure Kommentare erst manuell freigegeben muß, bevor sie auf der Seite erscheinen! Da ich nicht pausenlos am Rechner sitze, kann es schon mal etwas dauern, bis ein Kommentar für alle sichtbar ist.

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Protected by WP Anti Spam