The DIY cartridge: JOLLY CARTRIDGE!
Moderator: Moderators
The DIY cartridge: JOLLY CARTRIDGE!
Finally a basic DIY cartridge that can be any standard cartridge you want (and more):
the JOLLY CARTRIDGE is here!
Perfect for fiddling with all possible RAM expansion capabilities,
as a new cart for old downloaded software or as a support for your own new software even in small production batches.
The JOLLY CARTRIDGE supports up to two memory chips: U1 (ROM only) and U2 (ROM or RAM).
ROM chip(s):
64k EEPROM W27C512 (or equivalent) is recommended:
it doesn't need UV erasing, it's cheap, and it covers all possible JOLLYCART functions.
RAM chip:
32k SRAM HM62256 (or equivalent) is recommended:
it's cheap and it covers all possible JOLLYCART functions.
U1 (ROM) is mapped to I/O2 and 3, and can also be selected in BLK5.
All U1 areas can be switched between 2 banks ("L"/"H") via the J2 jumper.
U2 (ROM or RAM) is mapped to BLK2 and BLK3.
It can be selected in BLK1, and either in BLK5 or RAM1,2,3 (3k).
How to configure the JOLLY CARTRIDGE
J2:
Pin1 is not connected.
Pin2 is the A14 of U1 with a pull-up resistor (A14="H" if pin2 is not connected)
Pin3 is GND ("L").
J2 can select the desired “U1 bank” using a small 2.54mm switch, or a jumper, or a drop of solder or by leaving it not connected....
J1 is a bit more complicated.
Remember that the VIC20 decodes the memory areas enabling (in J1) the lines BLK5, 3KB, BLK1.
I/O2+3 are stably connected to U1,
BLK2+3 are stably connected to U2.
The on board memory "slices" that can be enabled by J1 are U1B5, U2B5, U2B1.
The rule is that a decoded line can only be connected to a single "memory slice" and that a "memory slice" can only be connected to a single decoded line.
The combinations of J1 and J2 cover almost all the mapping possibilities of U1 U2 chips inside a cartridge!
Some examples...
Two different 8K games in autostart BLK5:
A 16K(or more) game, any two (or more) BLKs combination,
for example into BLK 5 can be placed a launcher for the Scott Adams adventures. The previous configuration permit up to 32k of ROM, for example a multigame cart containing 9 games for unexpanded VIC20:
the chosen game will be copied to the VIC20 RAM and launched
Three games: 1x16k + 2x8k
Always (SJload or Rabbit) into I/O2,3 and
{32kram or [24kram + (Tools for BASIC or ML)]}
Ram expansion +3k or +32k (SJload on I/O2,3): A variant:
+32k expansion RAM: +24k RAM for BASIC +8k RAM into BLK5
+hidden into I/O areas: SJLOAD (7) for using your jiffydos modded disk drive (SYS40000)
+hidden into "no basic" RAM1,2,3 areas: EASYLOAD+ (7) for speed up your not jiffydos disk drive
A diagnostic cartridge PAL/NTSC
(for complete working it need also specific test harness):
This configuration is for new games that work only if loaded into RAM expansion....(two diode 1N4148 will be needed)
+24k ram expansion +13k ROM (BLK5+I/O2,3+RAM1,2,3).
At power up (or at reset) the firmware into BLK 5 will be auto started,
into the expanded ram the rom content will be copied and launched.
A 12.75k game can be performed (or a bigger game, if compressed...) The precedent configuration (+24kRAM, +13kROM) is like a "lite version" of a "DREAMCART" (+37kRAM, +64kROM): viewtopic.php?f=10&t=9950
Another information about JOLLY CARTRIDGE "naked board" version:
the PCB factory can't made the "45°fingers chamfered" because the PCB has a dimension too small,
then whoever chooses the "naked board" will have to smooth the two edges with a nail file or other tool.
The other versions (proto, games, ...) will be supplied with the edges already rounded.
the JOLLY CARTRIDGE is here!
Perfect for fiddling with all possible RAM expansion capabilities,
as a new cart for old downloaded software or as a support for your own new software even in small production batches.
The JOLLY CARTRIDGE supports up to two memory chips: U1 (ROM only) and U2 (ROM or RAM).
ROM chip(s):
64k EEPROM W27C512 (or equivalent) is recommended:
it doesn't need UV erasing, it's cheap, and it covers all possible JOLLYCART functions.
RAM chip:
32k SRAM HM62256 (or equivalent) is recommended:
it's cheap and it covers all possible JOLLYCART functions.
U1 (ROM) is mapped to I/O2 and 3, and can also be selected in BLK5.
All U1 areas can be switched between 2 banks ("L"/"H") via the J2 jumper.
U2 (ROM or RAM) is mapped to BLK2 and BLK3.
It can be selected in BLK1, and either in BLK5 or RAM1,2,3 (3k).
How to configure the JOLLY CARTRIDGE
J2:
Pin1 is not connected.
Pin2 is the A14 of U1 with a pull-up resistor (A14="H" if pin2 is not connected)
Pin3 is GND ("L").
J2 can select the desired “U1 bank” using a small 2.54mm switch, or a jumper, or a drop of solder or by leaving it not connected....
J1 is a bit more complicated.
Remember that the VIC20 decodes the memory areas enabling (in J1) the lines BLK5, 3KB, BLK1.
I/O2+3 are stably connected to U1,
BLK2+3 are stably connected to U2.
The on board memory "slices" that can be enabled by J1 are U1B5, U2B5, U2B1.
The rule is that a decoded line can only be connected to a single "memory slice" and that a "memory slice" can only be connected to a single decoded line.
The combinations of J1 and J2 cover almost all the mapping possibilities of U1 U2 chips inside a cartridge!
Some examples...
Two different 8K games in autostart BLK5:
A 16K(or more) game, any two (or more) BLKs combination,
for example into BLK 5 can be placed a launcher for the Scott Adams adventures. The previous configuration permit up to 32k of ROM, for example a multigame cart containing 9 games for unexpanded VIC20:
the chosen game will be copied to the VIC20 RAM and launched
Three games: 1x16k + 2x8k
Always (SJload or Rabbit) into I/O2,3 and
{32kram or [24kram + (Tools for BASIC or ML)]}
Ram expansion +3k or +32k (SJload on I/O2,3): A variant:
+32k expansion RAM: +24k RAM for BASIC +8k RAM into BLK5
+hidden into I/O areas: SJLOAD (7) for using your jiffydos modded disk drive (SYS40000)
+hidden into "no basic" RAM1,2,3 areas: EASYLOAD+ (7) for speed up your not jiffydos disk drive
A diagnostic cartridge PAL/NTSC
(for complete working it need also specific test harness):
This configuration is for new games that work only if loaded into RAM expansion....(two diode 1N4148 will be needed)
+24k ram expansion +13k ROM (BLK5+I/O2,3+RAM1,2,3).
At power up (or at reset) the firmware into BLK 5 will be auto started,
into the expanded ram the rom content will be copied and launched.
A 12.75k game can be performed (or a bigger game, if compressed...) The precedent configuration (+24kRAM, +13kROM) is like a "lite version" of a "DREAMCART" (+37kRAM, +64kROM): viewtopic.php?f=10&t=9950
Another information about JOLLY CARTRIDGE "naked board" version:
the PCB factory can't made the "45°fingers chamfered" because the PCB has a dimension too small,
then whoever chooses the "naked board" will have to smooth the two edges with a nail file or other tool.
The other versions (proto, games, ...) will be supplied with the edges already rounded.
Last edited by MCes on Tue Feb 01, 2022 8:54 am, edited 8 times in total.
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
-
- Vic 20 Enthusiast
- Posts: 161
- Joined: Wed Feb 24, 2021 11:32 am
- Location: NC, USA
- Occupation: Engineer
Re: The DIY cartridge: JOLLY CARTRIDGE!
That looks really nice. I like the flexibility of being able to use it for pretty much whatever you want. One question though - will you be selling these, putting them on Github etc?
- 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!
It looks cool! My ideal cartridge PCB would:
(1) Be able to accept a 28C64B and locate it as ROM at block 3
(2) Add 8KB RAM at block 5
Would this one be able to do that?
If so, my other question's the same as Doug's; how do we get them?
(1) Be able to accept a 28C64B and locate it as ROM at block 3
(2) Add 8KB RAM at block 5
Would this one be able to do that?
If so, my other question's the same as Doug's; how do we get them?
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
WIP: MIDIcast BASIC extension
he/him/his
Re: The DIY cartridge: JOLLY CARTRIDGE!
The JOLLY CARTRIDGE has been designed bearing in mind that a reduction in costs can be achieved by producing a batch that is not too small, this numbers can be motivated by using it for a lot of different application (the necessity of the flexibility).doug_in_nc wrote: ↑Mon Oct 18, 2021 7:28 am That looks really nice. I like the flexibility of being able to use it for pretty much whatever you want. One question though - will you be selling these, putting them on Github etc?
With these parameters the result is:
1) very flexible use
2) a good quality PCB (with gold plating)
3) a good quality SMD components and mounting
4) cheap price/piece
This cannot be achieved by ordering 5 or 10 pieces from the PCB/SMD factory,
so I made a bet ordering a batch to allow me to offer the JOLLY CARTRIDGE for sale at a good price.
I am thinking of a "25€ minimum order" that can be reached by purchasing my projects, for JOLLY CARTRIDGE:
5 € / pc naked JOLLY CARTRIDGE
15 € / pcs JOLLY CARTRIDGE "prototype board" + 2ROM + 1RAM
Now I want to develop a little firmware (it's not easy for me, I'm an HW-boy...)
that permit to put into an "all ROM" JOLLY CARTRIDGE 8..9 games for unexpanded VIC20:
at startup a small menu requires the choice, then the game is copied into VIC20 memory and launched....
I'm not a good games player, so I asked to ORION70 a list of good little games selected from "zimmers" page!
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
Re: The DIY cartridge: JOLLY CARTRIDGE!
Your is a strange configuration for a RAM/ROM cart: RAM is required into the auto boot area BLK5, and ROM into other(s) BLK(s)....
I think that it can be done adding a wire..... I not recommend to use for U2 an EEPROM with WRITE on pin 27 because this U2 pin is connected to VIC20 write line and attempting to write from VIC20 to EEPROM blocks a data corruption could be done (U1 hasn't this connection on pin 27)
Also for this reason I prefer something as W27C512 EEPROM
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
- 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!
Yes, it is strange. It would be a development environment with RAM in BLK5 for testing cartridge code, and development tools in BLK3. With the cartridge inserted, the VIC-20 would start up as an "unexpanded" machine, as far as BASIC is concerned. I call it the wAxpander, and I've been trying to figure out how to realize this strange configuration for a while now.
I'm probably down for the minimum order of naked JOLLY PCBs, once you get everything finalized. Do they fit OK in TFW8B cartridge cases? It looks like they should be a good fit.
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
WIP: MIDIcast BASIC extension
he/him/his
- orion70
- VICtalian
- Posts: 4343
- Joined: Thu Feb 02, 2006 4:45 am
- Location: Piacenza, Italy
- Occupation: Biologist
Re: The DIY cartridge: JOLLY CARTRIDGE!
Thanks Max, here's another incredible, flexible product of yours .
Yes, I've been asked to select some unexpanded games from the Zimmers collection - but anyone can do his own list, e.g. with Jeff's excellent games, or one dedicated to a particular genre, etc.
As for other possible applications, i was wondering if one could simply put a single game for the 16k expanded VIC, and use it as a cartridge version of your favourite, just for the fun of it, of course . Max (Mces) told me it's possible, as long as the game doesn't exceed 13k.
Many years ago, almost 15 in fact (geez, I'm so old), i had fun with an old school RPG for the expanded machine called Sorcery. It was state of the art back then, well before the whole Realms of Quest series came to light, and still is a good example of a decent role playing game. It also comes with a great manual, and in 2006 it was modified to fit in a single 12.5k file, crunched, and bug-fixed.
For more info, here's the original thread:
viewtopic.php?f=10&t=1406
And the link to the author's website:
http://www.kdef.com/geek/vic/vicbjsw.html#RPG
Now, it would be great for me to have my own Sorcery cartridge, with its box and manual! Can we do it Max?
EDIT: I was able to retrieve the map of the dungeon procedurally generated by pressing the "B" key at title screen. I elaborated it with a bit of fantasy, imagining that it was a ruined city, sunk in the depths of earth after a huge cataclysm.
Yes, I've been asked to select some unexpanded games from the Zimmers collection - but anyone can do his own list, e.g. with Jeff's excellent games, or one dedicated to a particular genre, etc.
As for other possible applications, i was wondering if one could simply put a single game for the 16k expanded VIC, and use it as a cartridge version of your favourite, just for the fun of it, of course . Max (Mces) told me it's possible, as long as the game doesn't exceed 13k.
Many years ago, almost 15 in fact (geez, I'm so old), i had fun with an old school RPG for the expanded machine called Sorcery. It was state of the art back then, well before the whole Realms of Quest series came to light, and still is a good example of a decent role playing game. It also comes with a great manual, and in 2006 it was modified to fit in a single 12.5k file, crunched, and bug-fixed.
For more info, here's the original thread:
viewtopic.php?f=10&t=1406
And the link to the author's website:
http://www.kdef.com/geek/vic/vicbjsw.html#RPG
Now, it would be great for me to have my own Sorcery cartridge, with its box and manual! Can we do it Max?
EDIT: I was able to retrieve the map of the dungeon procedurally generated by pressing the "B" key at title screen. I elaborated it with a bit of fantasy, imagining that it was a ruined city, sunk in the depths of earth after a huge cataclysm.
-
- Vic 20 Enthusiast
- Posts: 161
- Joined: Wed Feb 24, 2021 11:32 am
- Location: NC, USA
- Occupation: Engineer
Re: The DIY cartridge: JOLLY CARTRIDGE!
Now I have looked at it a bit deeper, and I understand how the jumpers behave (I think), I have one further question - how do you create the ROMs? Obviously I don't mean how do you burn them, but where in the 512Kbits of a 27C512 does what go?, ie how do I combine for example SJLoad and 2x8K ROMs into a single image for burning. I'm definitely interested in placing an order with you BTW.
Re: The DIY cartridge: JOLLY CARTRIDGE!
I try to always use the same shape of the cart because it is easy to pull out by hand,
it does not protrude from the cartridge compartment,
and it can be placed inside the shells of standard cartridges......
The "3K5 GAMES ORION70 LIST" is ready! ("Sorcery" could be the next experiment.....)
Last edited by MCes on Thu Oct 21, 2021 3:12 pm, 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)
- orion70
- VICtalian
- Posts: 4343
- Joined: Thu Feb 02, 2006 4:45 am
- Location: Piacenza, Italy
- Occupation: Biologist
Re: The DIY cartridge: JOLLY CARTRIDGE!
I'm confident you'll be able to do it, to the point that I did already prepare the cart box and label
Oh, and HERE's the manual in booklet format (print double-side and cut in the middle, or simply fold, to obtain an A5 booklet). Great to fit inside a cartridge box .
[wonder if Brendan is still lurking after all these years...]
- orion70
- VICtalian
- Posts: 4343
- Joined: Thu Feb 02, 2006 4:45 am
- Location: Piacenza, Italy
- Occupation: Biologist
Re: The DIY cartridge: JOLLY CARTRIDGE!
(Just uploaded new images)
Re: The DIY cartridge: JOLLY CARTRIDGE!
The beta cartridge is ready...(remember that I can't supply the plastic shells) I have to test the game! This configuration (+24kRAM, +13kROM) is like a "lite version" of a "DREAMCART" (+37kRAM, +64kROM): viewtopic.php?f=10&t=9950
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
- orion70
- VICtalian
- Posts: 4343
- Joined: Thu Feb 02, 2006 4:45 am
- Location: Piacenza, Italy
- Occupation: Biologist
Re: The DIY cartridge: JOLLY CARTRIDGE!
Excellent
Please, refer to the manual to thoroughly test the game.
Please, refer to the manual to thoroughly test the game.
Re: The DIY cartridge: JOLLY CARTRIDGE!
+24k RAM, +12.75k ROM self-loading on RAM.
How does it work?
The autostart launcher occupy 1 page into BLK5 (<256Bytes)
and starts copying to RAM the 31 pages present in the remaining BLK5 area: 7.75kBytes.
The launcher continuous copying to RAM 8page (2K) from I/O2,3 areas, then it end copying to RAM 12page (3K) from RAM1,2,3 areas: 31+8+12=51pages (12,75kByte),
then a BASIC "RUN" command is performed
This strategy permit to:
1)if the game is "<9,75k" the jollycart setting is simply: J1(U1B5onBLK5, U2B1onBLK1) J2(NO CONNECTIONS)
NOTE: in this case the cart can contain 2 games! (select via J2 L/H)
2) if the game is "9.75k <SW <12.75k" the jollycart setting is:
on J1 "U1B5" the anode of 2 diodes (one diodes's cathode is connected to "BLK5", the other is connected to "3kb" and also to the central pin of J2), "U2B1" connected to "BLK1"
The 2 diodes enable the "U1B5" slice if VIC20 addresses the BLK5 or RAM1,2,3 areas.
So 2 areas overlap on 1 slice,
for avoiding this the "3kb" line (RAM1,2,3) also change the U1 BANK from "H" to "L" (wire between J1 "3kb" and central pad of j2)
If the sw is bigger than 12.75k and/or more RAM is needed (35k..37k) the solution could be a DREAMCART
How does it work?
The autostart launcher occupy 1 page into BLK5 (<256Bytes)
and starts copying to RAM the 31 pages present in the remaining BLK5 area: 7.75kBytes.
The launcher continuous copying to RAM 8page (2K) from I/O2,3 areas, then it end copying to RAM 12page (3K) from RAM1,2,3 areas: 31+8+12=51pages (12,75kByte),
then a BASIC "RUN" command is performed
This strategy permit to:
1)if the game is "<9,75k" the jollycart setting is simply: J1(U1B5onBLK5, U2B1onBLK1) J2(NO CONNECTIONS)
NOTE: in this case the cart can contain 2 games! (select via J2 L/H)
2) if the game is "9.75k <SW <12.75k" the jollycart setting is:
on J1 "U1B5" the anode of 2 diodes (one diodes's cathode is connected to "BLK5", the other is connected to "3kb" and also to the central pin of J2), "U2B1" connected to "BLK1"
The 2 diodes enable the "U1B5" slice if VIC20 addresses the BLK5 or RAM1,2,3 areas.
So 2 areas overlap on 1 slice,
for avoiding this the "3kb" line (RAM1,2,3) also change the U1 BANK from "H" to "L" (wire between J1 "3kb" and central pad of j2)
If the sw is bigger than 12.75k and/or more RAM is needed (35k..37k) the solution could be a DREAMCART
Last edited by MCes on Tue Feb 01, 2022 9:03 am, edited 4 times in total.
"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
Re: The DIY cartridge: JOLLY CARTRIDGE!
The JOLLY CARTRIDGE was developed to be very flexible in HW configuration,doug_in_nc wrote: ↑Wed Oct 20, 2021 1:52 pm Now I have looked at it a bit deeper, and I understand how the jumpers behave (I think), I have one further question - how do you create the ROMs? Obviously I don't mean how do you burn them, but where in the 512Kbits of a 27C512 does what go?, ie how do I combine for example SJLoad and 2x8K ROMs into a single image for burning. I'm definitely interested in placing an order with you BTW.
this implies some compromise into ROM address determination.
Starting address (DEEPS: BLKs= 8k, I/O2,3= 2K)
Code: Select all
U1 J2:"H"/("L")
I/O2,3 $D800/($9800)
BLK5 $E000/($A000)
U2
BLK1 $E000
BLK2 $C000
BLK3 $6000
BLK5 $4000
I have prepared a couple of empty .BIN files to help insert your software into U1 or U2,
they have DATAs indicating which slice is related to that addressed area:
Last edited by MCes on Mon Oct 25, 2021 3:16 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)