The geoRAM is a 512KB memory expansion for the Commodore 64 and 128 designed by Berkeley Softworks for use with GEOS. While not as fast as the Commodore REU due to its lack of DMA capabilities, it still provides a significant performance boost. GRAM/1D is a 1MB geoRAM compatible cartridge based on a two 1Mx4 DRAM devices.
The geoRAM is a banked system. The registers at $dfff and $dffe select which 256 bytes page is visible in the $de00-$deff range. The $dfff register selects a 16KB block out of the total memory, the register at $dffe selects the actual 256 bytes page within the selected block. Valid values for a standard geoRAM are 0-31 for the block register and 0-63 for the window register. It is possible to extend the block register to 8-bit to create a 4MB geoRAM.
This version is a bugfix of the previous GRAM/1D-C00. It corrects the timing issues and replaces the LS378 with LS174 for easier sourcing of the components.
The design uses two 74LS174 6-bit D-FlipFlop ICs for the block (U4) and window registers (U5). A 16V8 PLD is used to generate the control signals for the two registers and the control signals for the DRAM. The 74LS157 multiplexers (U6-U8) multiplex the address into rows and columns required by the DRAM chips. Two set of DRAMs (DIP and ZIP) are wired in parallel so the user can use either one based on availability.
Testing
Testing has been performed using the geo/neo RAM memory test and running GEOS. It is important to note that GEOS 2.0r (which was originally shipped with the geoRAM) is required to take advantage of the memory expansion.
Previous versions of GEOS only support the Commodore REU.
We were not able to locate an original GEOS 2.0r image on the internet. Our solution was to download a D81 image of GEOS 2.0 and replace GEOBOOT and CONFIGURE with the correct geoRAM version.
All the required files can be downloaded from http://cbmfiles.com/geos/index.php
A pre-made D81 image is also attached at the end of the post.
Attachment | Size |
---|---|
GEOS 2.0r D81 image | 309.48 KB |
geoRam 2.0r.
I can't get any traction with 2.0r for 64 or 128 CBMFILES.com uses convert and any 1541 boots I get can't different drives types. I am working through this I have Ultimate 2+ from Feb 2018. I believe 2.0r is needed for it! I want geoRam clone to work very much so. Anyone can give a direction please do so. I want the 4 NB one as well as I like power using GEOS 64 and 128. Thanks
GEOS 2.0r D81 image
I attached the GEOS 2.0r D81 image that I use with my uIEC. Let me know if it works for you.
Kernal 2.0r
Thomas from COREi64 Shop has kindly made a set of original geoRAM disks and manuals (https://corei64.com/shop/index.php?route=product/category&path=65_89). I'm almost finished with making an EPROM image with it for installing in the C128's internal socket, which may be of interest to those using GRAM/1D.
C128 Standard Cartridge
Fits The Device into a translucent blue standard cartridge shells? Or need some other shell?
Cartidge shell compatibility
The board is designed to fit into standard cartridge shells with the center screw.
The plastic on some cheap shells however is slightly too thick making it hard to get a perfect fit.
Access to the memory
There is a way to use it without using Geos?. From a c128 mode program for example?
Code Examples
I will add a code snippet in the future. For the time being you can take a look at the source of the GMT geoRAM test software.
The file lpeekpoke.c has two small routines to read/write to any location in the memory expansion.
The same code works on both C64 and C128 mode.