The DIY cartridge: JOLLY CARTRIDGE!

Modding and Technical Issues

Moderator: Moderators

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

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by MCes »

Thanks for "excellent" and don't worry about my time, the test was pretty fast.
I'm happy that now you can play with new (old) cartridges,
have a good 2022!
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by chysn »

I got my Jollies today and I'm very happy with them.

The "weird" configuration that I requested works well, although I'm probably going to shift to a more conventional model for wAxpander. First of all, since its release, the Block 5 Edition of wAx has significantly outsold the Block 3 Edition. Second, I think that combining wAx with a bigger BASIC expansion area will be more useful for more people. The Jolly Cartridge allows me to try a bunch of different things, so I just have to put some thought into what I want to do.

The Jolly Cartridge is awesome work!
VIC-20 Projects: wAx Assembler, TRBo: Turtle RescueBot, Helix Colony, Sub Med, Trolley Problem, Dungeon of Dance, ZEPTOPOLIS, MIDI KERNAL, The Archivist, Ed for Prophet-5

WIP: MIDIcast BASIC extension

he/him/his
User avatar
MCes
Vic 20 Afficionado
Posts: 458
Joined: Fri Jul 24, 2015 1:19 am
Location: Italy

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by MCes »

chysn wrote: Wed Jan 12, 2022 4:08 pm The Jolly Cartridge is awesome work!
Thanks for your words...

Jollycart was born to let us play with "the hardware the software needs", I'm happy it hit the target
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by chysn »

MCes, can you please provide a bit of insight on how the 3K jumper works? When I use that jumper, I get 6655 bytes on startup (with the RAM chip in U2), but I'm not sure why. Is this just the way the VIC-20 behaves when there's contiguous memory starting at $0400? My reading of the ROM disassembly is that it would behave just like RAM was in blocks 1-3, with screen moving to $1000, etc., and you'd just have some non-BASIC RAM sitting at $400-$fff.

Don't get me wrong, I think this behavior is better. I just don't understand what's going on.
User avatar
MCes
Vic 20 Afficionado
Posts: 458
Joined: Fri Jul 24, 2015 1:19 am
Location: Italy

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by MCes »

Ok,
allocazione_di_memoria_con_le_espansioni.jpg
this is the unexpanded memory map:
http://sleepingelephant.com/denial/wiki ... Memory_Map

The few RAM on board is organized on 1k sliced areas:
RAM0 for the "operating system"
RAM4,5,6,7 principally for user use and screen area

The RAM on RAM0 is mainly due to CPU hardware constraints,
User RAM must end with RAM 7 to allow contiguity in expansion to higher blocks,
So the choice not to completely fill the BLK0 with RAM produced the RAM1,2,3 hole.
Historically the cheapest RAM expansion is the 3k "low ram" which closes the 3k hole,
the most expensive was the 8k (or multiple) that expand the BLK(s) beyond the BLK0.
For the best memory usage performance the operating system detect wich of this 3 condition are (unexp./3k/8K+) and reallocate the areas: basic, color, screen.
https://www.vic-20.it/wp-content/upload ... manual.pdf
https://www.vic-20.it/wp-content/upload ... vic_20.jpg
https://www.vic-20.it/wp-content/upload ... memory.jpg

NOTES:
IF a 8k(+) expansion is present, THEN the RAM 1,2,3 area is not contiguous with the rest of the BASIC ram (screen area separate it) so the eventual 3k ram presence is not detected by operating system (it's ignored for the BASIC free bytes)
Last edited by MCes on Tue Feb 01, 2022 9:20 am, edited 1 time in total.
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
doug_in_nc
Vic 20 Enthusiast
Posts: 160
Joined: Wed Feb 24, 2021 11:32 am
Location: NC, USA
Occupation: Engineer

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by doug_in_nc »

This is the standard behavior when you add a 3K RAM cartridge - the screen memory doesn't shift, and you add 3K to the contiguous memory below it. Customers wouldn't have been happy if they paid out for their expensive 3K RAM cartridge only to find out that they got no more usable RAM in BASIC! It's the main reason why if you try to run a game that requires 3K of extra RAM on a VIC that has 8K extra, it won't work - screen memory is in a different place.
User avatar
MCes
Vic 20 Afficionado
Posts: 458
Joined: Fri Jul 24, 2015 1:19 am
Location: Italy

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by MCes »

doug_in_nc wrote: Fri Jan 14, 2022 8:53 am It's the main reason why if you try to run a game that requires 3K of extra RAM on a VIC that has 8K extra, it won't work - screen memory is in a different place.
This is why on my "SMART RAM" expansion I made the memory configuration selectable with a three position switch in order to be able to select the operating system configuration you want ...
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by chysn »

Thank you for your responses. I realize now that I just didn't ask my question clearly enough. It's more about how the Jolly Cartridge works than how the VIC-20 works.

When the switch is in the 3K position, there's RAM at $0400, but not at $2000-$3fff, and then there's RAM again from $4000 to $7fff. How do you do that? Is it handled by those little SMD chips?
User avatar
MCes
Vic 20 Afficionado
Posts: 458
Joined: Fri Jul 24, 2015 1:19 am
Location: Italy

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by MCes »

Yes, the SMD chips work to generate:
1) memory extra-8k address lines
2) the enabling U1/U2 signals

The BLK1 enable is optional, this permit to doesn't having any jumpers for BLK2,3: BLK1 disabled "cut" the "hight" RAM expansion (there is not continuity from BLK0 to BLK2,3: BLK1= hole).
This simplifies (and reduces) the jumper options without limiting the flexibility of use
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by chysn »

Thanks, MCes! I think I'll need to install a 3-position switch in my product so that people can decide on their own configurations. My personal configuration will be "block 1 disabled," so the VIC starts up as unexpanded. But I think most people who buy it will want contiguous expansion for big BASIC.
User avatar
MCes
Vic 20 Afficionado
Posts: 458
Joined: Fri Jul 24, 2015 1:19 am
Location: Italy

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by MCes »

In case your project will be the only cart connected (no cartridge connector extension) you can eliminate the switch:
all ram can be enabled but into the BLK5 your SW boot up asking for the BASIC ram expansion configuration...
0/+3/+24k, consequently you set the memory pointers in accordance with the choose and return to operating system.
If you need a pair of KB extra for this: remember that jollycart has always enabled the space IO2,3 on U1 ROM.

You can also know if the auto boot is derived by HW or SW source:
in the last case the peripherals register that are settled by O.S. contain datas that are not "$00" ("$00" if HW reset accour).
You can decide to start the configuration menu only if the reset is HW.....


can be made?
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by chysn »

MCes wrote: Mon Jan 17, 2022 2:24 am In case your project will be the only cart connected (no cartridge connector extension) you can eliminate the switch:
all ram can be enabled but into the BLK5 your SW boot up asking for the BASIC ram expansion configuration...
0/+3/+24k, consequently you set the memory pointers in accordance with the choose and return to operating system.
What I don't understand about this relates to the question I asked earlier.

If there's no switch, then the RAM from the HM62256 appears to be positioned in Blocks 2 and 3. There's nothing in Block 1 to allow the contiguous 24K scenario, and nothing at $0400 to allow the 3K scenario. So I'm not sure how I get by just setting pointers without a switch.
User avatar
Mike
Herr VC
Posts: 4841
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by Mike »

chysn wrote:What I don't understand about this relates to the question I asked earlier.
MCes refers to "rightsizing" a full, i.e. +35K RAM expansion to one of the three relevant options - unexpanded/+3K/+24K:
MCes wrote:[...] all ram can be enabled [...]
You limit available RAM by setting 642, 644 and 648 as appropriate and issuing a soft reset:
  • for "+24K", you're already there as +35K is equivalent from BASIC view (RAMx and BLK5 don't count into BYTES FREE here),
  • POKE642,4:POKE644,30:POKE648,30:SYS64818 sets BASIC RAM and screen memory as for +3K (until next reset or power cycle) and
  • POKE642,16:POKE644,30:POKE648,30:SYS64818 sets the unexpanded configuration.
As I wrote elsewhere not too long ago, not everything needs switches. ;)
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by chysn »

Mike wrote: Mon Jan 17, 2022 2:41 pm
chysn wrote:What I don't understand about this relates to the question I asked earlier.
MCes refers to "rightsizing" a full, i.e. +35K RAM expansion to one of the three relevant options - unexpanded/+3K/+24K:
Hmmm. I really feel like I'm not communicating my question adequately. I don't have any questions about setting up the VIC-20 pointers for various RAM configurations. I know how to do that. My question is, how is that RAM made available with the Jolly Cart? My Jolly Cart has

(1) A 2764 EPROM in U1
(2) The recommended HM62256 in U2
(3) A 0-ohm resistor across the U1B5 jumper, to make the EPROM available in Block 5
(4) Nothing across the U2B1 jumper (in other words, the "no switches" we've been talking about here)

When powered on, the VIC-20's expansion RAM looks like this:

$0400-$FFF: Nothing Here*
Block 1: Nothing Here*
Block 2: RAM
Block 3: RAM

As far as I can tell, the only way to put RAM in Block 1 is to jump U2B1 to BLK1. And the only way to put RAM at $0400 is to jump U2B1 to 3Kb. But only one of these can be jumped at a time (see below). So I don't see how I can possibly select between a +3K VIC and a +24K VIC without a physical switch.

Do I need another jumper somewhere? Things I've tried: When I jump U2B1 to both 3Kb and BLK1, it functions like I only jumped 3Kb. I also tried connecting the 3Kb pad to the center pad of J2, as shown in the original post, but that didn't enable $0400 RAM either.

* By "Nothing Here," I mean this:

Code: Select all

POKE 8192,99

READY.
PRINT PEEK(8192)
 32
User avatar
MCes
Vic 20 Afficionado
Posts: 458
Joined: Fri Jul 24, 2015 1:19 am
Location: Italy

Re: The DIY cartridge: JOLLY CARTRIDGE!

Post by MCes »

Mike wrote: Mon Jan 17, 2022 2:41 pm (....)
You limit available RAM by setting 642, 644 and 648 as appropriate and issuing a soft reset:
  • for "+24K", you're already there as +35K is equivalent from BASIC view (RAMx and BLK5 don't count into BYTES FREE here),
  • POKE642,4:POKE644,30:POKE648,30:SYS64818 sets BASIC RAM and screen memory as for +3K (until next reset or power cycle) and
  • POKE642,16:POKE644,30:POKE648,30:SYS64818 sets the unexpanded configuration.
(...)
Thanks Mike!


Chysn, try this:
U1= 8k Rom [BLK5]
U2= 27k Ram [3k RAM1,2,3]+[BLK1]+BLK2,3

RomBLK5+27kRam.JPG
Memory_Map7.GIF
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
Post Reply