GeoRAM on the Vic20

Discuss anything related to the VIC

Moderator: Moderators

CurtisP
Vic 20 Dabbler
Posts: 74
Joined: Tue Mar 08, 2005 8:24 pm

GeoRAM on the Vic20

Postby CurtisP » Sun Nov 26, 2017 6:31 pm

Hey guys, I'm back.

Anyway, I somehow got obsessed with the idea of using GeoRAM on the Vic20 using the Masc=uerade adapter, since this configuration is supported by VICE.

Anyway, here are the relevant memory locations:

40959 - $9fff - block selection, each block is 16KB
40958 - $9ffe - select a 256-byte page within the block (0-63)

38912 - $9800 - GeoRAM page access

eslapion
ultimate expander
Posts: 4332
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

Re: GeoRAM on the Vic20

Postby eslapion » Sun Nov 26, 2017 7:15 pm

GeoRAM is a large bunch of 256 bytes pages. On the VIC-20, the IO areas are 1024 bytes which can reduce swapping.

Plugging a GeoRAM on a VIC-20 is really trivial but it's not obvious to me that's it is really useful.

On the C64, reserving a 8k area either reduces the amount of RAM available to basic or requires disabling some of the firmware ROMs. On the VIC-20, you can use BLK5 and use a very large RAM expansion based on 8k blocks instead of small 256 bytes pages.

It's easy to convert a Behr-Bonz board into a 128x8k (1024k) RAM expansion. Perhaps even a 128x32k (4MBytes) expansion if you're willing to 'window' BLK 1, 2, 3 and 5.
No one can do everything. Everyone can do something.

CurtisP
Vic 20 Dabbler
Posts: 74
Joined: Tue Mar 08, 2005 8:24 pm

Re: GeoRAM on the Vic20

Postby CurtisP » Mon Dec 04, 2017 10:10 pm

The I/O areas on the C64 are also 1KB. The GeoRAM design put the 256 byte page at the bottom of the 1k and the two control registers at the top, wasting a lot of space.

Of course it was not really meant for direct memory access, but for memory swapping.

I'm a bit dubious about the VICE implementation, since seems to be mapping three GeoRAM across both I/O slots.

User avatar
MCes
Vic 20 Hobbyist
Posts: 142
Joined: Fri Jul 24, 2015 1:19 am
Location: Italy

Re: GeoRAM on the Vic20

Postby MCes » Tue Dec 05, 2017 4:51 am

“Don’t argue with idiots because they will drag you down to their level and then beat you with experience” (Mark Twain ?)

User avatar
Mike
Herr VC
Posts: 3017
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: GeoRAM on the Vic20

Postby Mike » Tue Dec 05, 2017 5:11 am

CurtisP wrote:The I/O areas on the C64 are also 1KB.

Erm, no. The I/O address range on the C64 is partitioned as follows:

Code: Select all

$D000..$D3FF: VIC
$D400..$D7FF: SID
$D800..$DBFF: colour RAM
$DC00..$DCFF: CIA #1
$DD00..$DDFF: CIA #2
$DE00..$DEFF: I/O 1 for cartridge port, 256 bytes
$DF00..$DFFF: I/O 2 for cartridge port, 256 bytes

The address ranges for VIC, SID, CIA #1 and CIA #2 contain a lot of mirrors due to incomplete address decoding.

groepaz
Vic 20 Nerd
Posts: 597
Joined: Wed Aug 25, 2010 5:30 pm

Re: GeoRAM on the Vic20

Postby groepaz » Tue Dec 05, 2017 6:14 am

I'm a bit dubious about the VICE implementation, since seems to be mapping three GeoRAM across both I/O slots.

three? how three? *shrug*

it maps the registers into the IO2 area (dffe/ff - with mirrors across the whole page due to incomplete decoding) and the actual RAM page into IO1 (dexx). nothing dubious about it really :)

and no, the big advantage of georam over REU is that you can do direct memory access (and even run code in the mapped RAM). and most programs use it that way, just copying stuff in and out would be a waste of time.

CurtisP
Vic 20 Dabbler
Posts: 74
Joined: Tue Mar 08, 2005 8:24 pm

Re: GeoRAM on the Vic20

Postby CurtisP » Wed Dec 13, 2017 11:16 pm

So the GeoRAM basically took up both I/O blocks on the C64, then. I need to look at three memory maps again. It seems I'm not as good at mental hexadecimal as I used to be.

Also, I was fairly certain that Geos used the GeoRAM for swapping. I don't know how many other programs supported it.


Return to “General Topics”

Who is online

Users browsing this forum: Google [Bot] and 1 guest