VIC 20 adaptive expansion cartridge up to +123K

Vic 20 Item Exchange

Moderator: Moderators

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

VIC 20 adaptive expansion cartridge up to +123K

Postby MCes » Wed Nov 04, 2015 12:58 pm

I propose a very flexible and powerful tool for your VIC 20,
it's a cartridge for memory expansion that is configurable via an internal 4bit PIO.
PIO is located in each address from 39936 to 40959 (for simplicity '40000') and it's Writable and Readable,
so the cartridge could be also DYNAMICALLY reconfigured by a running software.

At VIC20 startup you type "POKE40000,N" with 'N' that means:
0) unexpanded configuration (default at powering up)
1) +3K (RAM1+RAM2+RAM3) {+3k(Basic)}
2) like '1' and more: +16K (BLK1+BLK2) {+3k,+16k(Basic)}
3) like '2' and more: +16K WRITE PROTECTED (BLK3+BLK5)
4) like '3' but without the write protection of BLK3,5 {+3k,+24k(basic),+8k}
5..15) like '4' but BLK5 is re-addressed in another of 12 "RAM expansion segments".

So cartridge could become every expansion that you need and/or the memory support of a software that can dynamically chose a 8k page in BLK5 from a 12*8K=96K memory space .

After "POKE40000,N" you can type SYS64802 to restart the operative system of VIC20 for recognize the new memory asset.

PIO is readble with "PEEK(40000) AND 15"

REU.JPG


Price is 44€ +shipping (PayPall gift)
Last edited by MCes on Mon Jun 20, 2016 5:28 am, edited 1 time in total.
“Don’t argue with idiots because they will drag you down to their level and then beat you with experience” (Mark Twain ?)

User avatar
orion70
Meteo VIC
Posts: 3298
Joined: Thu Feb 02, 2006 4:45 am
Location: Piacenza, Italy
Occupation: Biologist

Re: VIC 20 adaptive expansion cartridge up to +123K

Postby orion70 » Wed Nov 04, 2015 3:29 pm

Impressive indeed :shock: . Like the label very much, too.
Just asking: what real use for it? Is there any existing software for VIC dynamically using more than 24 (+- 3) kilobytes of RAM?
Great techie stuff anyway!

dragos
Vic 20 Afficionado
Posts: 458
Joined: Mon Nov 21, 2005 6:41 pm

Re: VIC 20 adaptive expansion cartridge up to +123K

Postby dragos » Wed Nov 04, 2015 7:23 pm

I'll buy one, can you post more pics? and maybe a video of it in action? or is it more of an idea you are looking for input on, the posting isn't clear.

Thanks!
0110 0110 0110 The number of the beast...

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

Re: VIC 20 adaptive expansion cartridge up to +123K

Postby MCes » Thu Nov 05, 2015 9:59 am

The cartridge into the pic is the real object and it work like described.
This cartridge is a my project: now don't exists a SW that use this paging but this feature is available for a owner program.

Do you want to load a game that don't work on normal RAM in BLK5?
Put the cartridge and switch-on your VIC20, type POKE40000,4 then load the game: LOAD"dumped game",8,1 then type POKE40000,3:SYS64802 and the game will auto-start correctly.....
“Don’t argue with idiots because they will drag you down to their level and then beat you with experience” (Mark Twain ?)

dragos
Vic 20 Afficionado
Posts: 458
Joined: Mon Nov 21, 2005 6:41 pm

Re: VIC 20 adaptive expansion cartridge up to +123K

Postby dragos » Thu Nov 05, 2015 10:57 am

ok, i'm in. anyway we can get some pics of the board? let me know how to purchase this!
0110 0110 0110 The number of the beast...

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

Re: VIC 20 adaptive expansion cartridge up to +123K

Postby MCes » Thu Nov 05, 2015 12:03 pm

This cartridge is composed by 2 chips:
the first is a 128K SRAM,
the second is a Programmable-Logic-Device that implement a 4 bit PIO and a Memory-Manager-Unit.

Tomorrow evening I'll try to make a video
“Don’t argue with idiots because they will drag you down to their level and then beat you with experience” (Mark Twain ?)

User avatar
tokra
Vic 20 Nerd
Posts: 816
Joined: Tue Apr 27, 2010 5:32 pm
Location: Germany

Re: VIC 20 adaptive expansion cartridge up to +123K

Postby tokra » Thu Nov 05, 2015 3:35 pm

Interesting design. In configuration 4 this seems to be a simple 35K-expander and the easiest solution to run the VIC-20 port of Doom right now. 128K total isn't too much though and if Jim Brain's UltiMem with 1 MB RAM and 8 MB FLASH ROM really comes out at the announced price of about $40-$50 it would blow all nearly existing expansions away.

Is the price of 44 EUR including the cartridge case? Do you sacrifice some other cartridges for these?

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

Re: VIC 20 adaptive expansion cartridge up to +123K

Postby MCes » Fri Nov 06, 2015 2:30 am

The goal of my project is to be adaptable at what you need:
do you want a +3k for the relative memory configuration of VIC20 operative system? yes!
do you want a +16k/24k for the relative memory configuration of VIC20 operative system? yes!
do you want a +35k ? yes!
do you want a RAM expansion (with possibility of "Write-Disabling") to load dumped cartridge images with presence of other RAM free for data (example: loading image of LM or BASIC tools cartridges) ? yes!
Do you want to hide a SW (or DATAs) in a pagined BLK? 12 times yes......

It could be every kind of RAM expansion do you need, it's a simple HW-TOOL for improve ( adaptively ) the configuration of your VIC20 without denaturalize it!

I had to sacrified a cartridge for this: the object into the PIC is what I'm selling, case included

NOTE:
thanks for your appreciation and sorry for my English....
“Don’t argue with idiots because they will drag you down to their level and then beat you with experience” (Mark Twain ?)

User avatar
orion70
Meteo VIC
Posts: 3298
Joined: Thu Feb 02, 2006 4:45 am
Location: Piacenza, Italy
Occupation: Biologist

Re: VIC 20 adaptive expansion cartridge up to +123K

Postby orion70 » Fri Nov 06, 2015 2:59 am

Wait wait wait... You say you're selling only THIS ONE SINGLE cart?
I bet that if you were producing some 10 or 20 of them, you'd sell them in one week :) .

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

Re: VIC 20 adaptive expansion cartridge up to +123K

Postby MCes » Fri Nov 06, 2015 3:23 am

I have now only (less or more) 10 games on cartridges that I can use to make other of this expansion, I don't know if somebody (else) want buy it... this selling 3d could tell me if I have to make other expansion cartridges or not....


EDIT,
a video: https://youtu.be/2IBQCgudtB0
“Don’t argue with idiots because they will drag you down to their level and then beat you with experience” (Mark Twain ?)

brain
Vic 20 Afficionado
Posts: 425
Joined: Sun Jul 04, 2004 10:12 pm

Re: VIC 20 adaptive expansion cartridge up to +123K

Postby brain » Fri Nov 06, 2015 6:28 pm

Since some have asked, here is how Ultimem does this:

1) +3K (RAM1+RAM2+RAM3) {+3k(Basic)}

Code: Select all

poke 39921,3

2) like '1' and more: +16K (BLK1+BLK2) {+3k,+16k(Basic)}

Code: Select all

poke 39922,15:poke 39921,3

3) like '2' and more: +16K WRITE PROTECTED (BLK3+BLK5)

Code: Select all

poke 39922,175,poke 39921,3

4) like '3' but without the write protection of BLK3,5 {+3k,+24k(basic),+8k}

Code: Select all

poke 39922,255:poke39921,3

5..15) like '4' but BLK5 is re-addressed in another of 12 "RAM expansion segments".

Code: Select all

poke 39922,255:poke39921,3:poke39934,BANK

JanD
Vic 20 Newbie
Posts: 6
Joined: Fri Feb 13, 2015 3:53 am

Re: VIC 20 adaptive expansion cartridge up to +123K

Postby JanD » Sat Nov 14, 2015 3:24 am

My compliments for making this project, however I was wondering about compatibility issues.
Because the project is a RAM expansion, so that you can load games that require more RAM.
You can have RAM all across the 64KByte area, which is great for all sorts of reasons. And switching the functionality of the cartridge via computer control makes it possible to configure the cartridge automatically (if a program or programmer wants this). Which could lead to all sorts of smart and auto-configuring loader programs. For example a loader that checks what the required memory setup of a program should be and then sets the cart. to that configuration and loads the program. This would be nice, because the VIC20 is a bitch because you do not always know the exact loading details of a vic20 game/program (so it saves you the effort of trying the many different configurations of memory before you get it to load).

However, by switching the memory configuration of the cartridge via a memory location (39936 ($9C00) to 40959 ($9FFF)) I was wondering how this could work with games/programs that use that same memory space. Because does this not interfere with program data stored at that location. Or otherwise, does the program stored at the location change the settings of the cartridge? If that would be the case then what would be the point of having that memory area available?

I'm sure I'm missing something, so can somebody explain me how this works?
Kind regards,
Jan D.

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

Re: VIC 20 adaptive expansion cartridge up to +123K

Postby Mike » Sat Nov 14, 2015 3:45 am

JanD wrote:You can have RAM all across the 64KByte area, [...]

No. The memory layout of the VIC-20 is fixed to map Character, BASIC and KERNAL ROM to $8000, $C000 and $E000 and no external expansion can do anything about that. RAM can only be mapped into "empty" places of the 64K address range, which correspond to RAM1..3 ($0400..$0FFF), BLK1..3 ($2000 .. $7FFF) and BLK5 ($A000..$BFFF).

However, by switching the memory configuration of the cartridge via a memory location (39936 ($9C00) to 40959 ($9FFF)) I was wondering how this could work with games/programs that use that same memory space.

In principle, it is also possible to map RAM into I/O 2 ($9800..$9BFF) and I/O 3 ($9C00..$9FFF) (see here), but this is not normally done. Rather - as the names of those two address ranges, and also their location within the I/O area suggest, they are intended to contain control registers of external expansions - exactly in that same spirit as done by the expansion at hand here.

And as most 3rd-party programs won't have any clue what kind of expansion might be inserted into the VIC-20, and what might be the results of any write or reads(!) to I/O 2 or I/O 3, they usually well advised to stay clear of any (stray) access to those address ranges.
Last edited by Mike on Sat Nov 14, 2015 3:57 am, edited 3 times in total.

User avatar
tokra
Vic 20 Nerd
Posts: 816
Joined: Tue Apr 27, 2010 5:32 pm
Location: Germany

Re: VIC 20 adaptive expansion cartridge up to +123K

Postby tokra » Sat Nov 14, 2015 3:54 am

The area from $9800-$9fff (IO2/IO3) is basically not used by other programs. On an unexpanded VIC you have nothing there (no RAM, no ROM). The area was basically reserved by Commodore for IO-registers that expansion carts might use. No RAM-expansion from Commodore ever used that area.

The MegaCart and FinalExpansion also set their registers into this area. You can also modify a 3K-expansion to a 2K-expansion that fills this area with RAM. Uses are limited, however. MegaCart for example places SJLOAD08 into this area, which makes for nice fast loading times from SD2IEC. Any program in that area is nearly undisturbed as only very few programs use this area.

Regarding the auto-load to the correct address. The File Browser by nbla is pretty good at guessing, never had any real problem with it. I don't know how it's implemented, but basically you just need the load-address of the file which is in the first two bytes on disk:

Load address at
- $1001 means it's for unexpanded machine
- $0401 means it's for +3K
- $1201 means it's for at least +8K

With the last option you can just set the VIC to fully expanded (35K), as programs that will need the 3K area from $0400-$0fff (like Doom) will just use it if available and other expansions over 8K also work with programs that just require +8K - if the programmer didn't deliberately program it otherwise, for which there is really no reason.

JanD
Vic 20 Newbie
Posts: 6
Joined: Fri Feb 13, 2015 3:53 am

Re: VIC 20 adaptive expansion cartridge up to +123K

Postby JanD » Sat Nov 14, 2015 6:31 am

Ahh, OK, now I understand. Thanks for making this clear.
Kind regards, Jan D.


Return to “Buy, Sell, and Trade”

Who is online

Users browsing this forum: No registered users and 1 guest