GeoRAM
GeoRAM | |
---|---|
Typ | Speichererweiterung |
Hersteller | Berkeley Softworks |
Neupreis | ? DM, ca. ? €, US$ 125[1] |
Erscheinungsjahr | 1990 |
Produktionsende | 1993 |
Sonstiges | Für C64/128 |
GeoRAM ist eine 512-KByte-Speichererweiterung für den C64 und C128 von Berkeley Softworks bzw. REX Datentechnik. Sie ist ein doppelt hohes Steckmodul für den Expansionsport. Im Gegensatz zur REU ist sie nicht DMA-fähig, sondern blendet jeweils 256 Bytes des erweiterten Speichers in den Adressbereich der CPU ein. Mit GeoRAM ist der Zugriff bis zu 35-mal schneller als bei Standard-GEOS-Plattenzugriffen.
Die Daten werden im ersten I/O-Bereich von $DE00-$DEFF eingeblendet.
Welche "Page" (256 Bytes) eingeblendet wird, bestimmen zwei Register im zweiten I/O-Bereich ab $DF00:
- Das Register an den geraden Speicherstellen trägt mit seinen unteren sechs Bits zur Auswahl bei.
- Das Register an den ungeraden Speicherstellen trägt mit seinen unteren fünf Bits zur Auswahl bei.
Insgesamt gibt es also 6 + 5 = 11 Adressbits, also 2 hoch 11 = 2048 einblendbare Speicherseiten. Da vier Seiten einem KByte entsprechen, ergibt das die erwähnten 512 KByte Gesamtspeicher.
Als Programmierer wünscht man sich statt "6 und 5 Bits" Registerbreite eigentlich eher "8 und 3 Bits", da für 8 Bits keine Verschiebeoperationen nötig sind. Möglicherweise wurde "6 und 5" deshalb gewählt, weil dann die Spur- und Sektorwerte einer 1541-Diskette direkt abgebildet werden können: Die Nummer der Spur passt in das 6-Bit-Register und die Nummer des Sektors in das 5-Bit-Register. Die beiden Register als "Track" und "Sector"-Register zu bezeichnen kann dann auch gleich als Eselsbrücke dienen, um sich die Reihenfolge der Register bzw. deren Breite in Bits zu merken.
Nachbauten der GeoRAM erweitern das zweite Register oft auf eine Breite von 6, 7 oder 8 signifikanten Bits und erreichen damit dann Speichergrößen von 1, 2 oder 4 MByte (siehe Tabelle):
RAM (KByte) | "Track" ($DFFE) | "Sector" ($DFFF) | ||||
---|---|---|---|---|---|---|
total | signifikante Bits | Dezimal | Hexadezimal | signifikante Bits | Dezimal | Hexadezimal |
512 | 6 | 0–63 | $00–$3F | 5 | 0–31 | $00–$1F |
1024 | 6 | 0–63 | $00–$3F | 6 | 0–63 | $00–$3F |
2048 | 6 | 0–63 | $00–$3F | 7 | 0–127 | $00–$7F |
4096 | 6 | 0–63 | $00–$3F | 8 | 0–255 | $00–$FF |
Theoretisch können über die zwei Register sogar 16 MByte adressiert werden, dafür müssten dann beide Register auf jeweils 8 signifikante Bits erweitert werden.
Nachbauten[Bearbeiten | Quelltext bearbeiten]
- BBG RAM von Performance Peripherals, GeoRAM Nachbau mit 1 MByte RAM.
- geoRAM von Shareware Plus, modern entwickelte Version von GeoRAM.
- Seit 2006 gibt es eine bis auf 2 MByte erweiterbare Weiterentwicklung von GeoRAM in Form des NeoRAM.
- Das Chameleon kann ein bis zu 4 MByte großes GeoRAM emulieren.
Quellen[Bearbeiten | Quelltext bearbeiten]
- ↑ Robert Bixby: "The GEOS Column: Closeup on GEORAM", Compute!'s Gazette, Issue 83, Vol. 8, No. 5, May 1990, p 14
Weblinks[Bearbeiten | Quelltext bearbeiten]
Wikipedia: GeoRAM |