Jump to content
Opry99er

SuperCart Construction

Recommended Posts

marc.hull suggested I build one of these, and I've been wanting one for quite a while. I had an old one (probably made out of a Zero Zap cart or something) but for the life of me, I can't remember what I did with it. I gave a bunch of stuff away years ago, traded for some items, sold some items... All I know is that I don't have one now, and I'd like to have one again.

 

 

I've found the link for the component BOM for the SuperCart...

 

  • EA GROM (you will need to remove one from a TI Editor Assembler cart)
  • 43256-12LP 32K CMOS RAM (or equivalent)
  • 2 - 1N914 Diodes
  • 3 - 1K Resistors 1/4 watt
  • 68 ohm Resistor 1/4 watt
  • 1 - 4.7K Resistors 1/4 watt
  • 2.2 uF Tantalum Capacitor
  • .1 uF Tantalum Capacitor
  • LED
  • Lithium Cell 2032
  • 2 - SPST Mini Switches
  • Cell holder for above

now I need a PCB. Looks like Ksarul designed one and had some produced... I can't find any available currently... Anyone have a spare they'd be willing to sell?

 

 

 

252063056.jpg

Share this post


Link to post
Share on other sites

BTW, could the on-board RAM on the SuperCart be used to run compiled XB games in place of the standard 32k from the expansion port?

Share this post


Link to post
Share on other sites

I may have an extra PCB for Ksarul's board. I may even have an extra one built, you would just need to supply the EA GROM if it does not have one already. i'll have to check. I remember building a few of these when the PCB came out. i'm staring at one of them right now, but need to check for the others.

Share this post


Link to post
Share on other sites

marc.hull suggested I build one of these, and I've been wanting one for quite a while. I had an old one (probably made out of a Zero Zap cart or something) but for the life of me, I can't remember what I did with it. I gave a bunch of stuff away years ago, traded for some items, sold some items... All I know is that I don't have one now, and I'd like to have one again.

 

 

I've found the link for the component BOM for the SuperCart...

 

  • EA GROM (you will need to remove one from a TI Editor Assembler cart)
  • 43256-12LP 32K CMOS RAM (or equivalent)
  • 2 - 1N914 Diodes
  • 3 - 1K Resistors 1/4 watt
  • 68 ohm Resistor 1/4 watt
  • 1 - 4.7K Resistors 1/4 watt
  • 2.2 uF Tantalum Capacitor
  • .1 uF Tantalum Capacitor
  • LED
  • Lithium Cell 2032
  • 2 - SPST Mini Switches
  • Cell holder for above

now I need a PCB. Looks like Ksarul designed one and had some produced... I can't find any available currently... Anyone have a spare they'd be willing to sell?

 

 

 

 

 

I have checked my stash. I do not have any of the blank PCB's. I built them all. However, I do have an older 8k Supercartridge (without the EA GROM) and I have one of the new ones that Ksural designed that is built without the EA grom. I would need to pull my EA grom out of my current SuperCart (Ksural version) and plug it in to test. I know they worked when I built them.

Share this post


Link to post
Share on other sites

i have a question to this old project. im not sure if it is answered somewhere else, but im wondering this:

i understand the >6000->8000 adress limit for the cart port. i also understand that you have to divide up the 43256 32k sram into 4 chunks of addressable space. But how are you breaking that down with the switches, are you incrementing the address? but i dont understand how you wouldnt overwrite that >6000 space from the beginning if that was the case.

Share this post


Link to post
Share on other sites

There will be better answers soon, but the switches change which 8 KiB block of the 32 KiB SRAM answers to >6000 – >7FFF addresses, changing none of the (essentially) swapped-out blocks of SRAM.

 

...lee

  • Like 1

Share this post


Link to post
Share on other sites

I don't know if this is a better answer, but the 2 switches correspond directly to the two most significant bits of the RAM address.

 

32K is addressed with 15 bits. 8K is addressed with 13 bits. 15-13=2, and those 2 bits decide which 8K region to address. 

  • Like 1

Share this post


Link to post
Share on other sites
Posted (edited)

oh.ok. i think i understand that.

i think could then stack two chips and toggle with a switch chip select between the two.?? just thinking out loud...but thx for that info

Edited by GDMike

Share this post


Link to post
Share on other sites
4 hours ago, GDMike said:

oh.ok. i think i understand that.

i think could then stack two chips and toggle with a switch chip select between the two.?? just thinking out loud...but thx for that info

Here is one way to do it with pullup resistors for the chip that is not in use:

 

ChipEnable.thumb.png.47df5921766a8d2fb6cc3c39114abf8e.png

Share this post


Link to post
Share on other sites

this is super! love it. i was also going to put some thought into making a debounce switch that would or possibly could auto switch on an address count. 

something that counts and would switch banks automatically?? it makes sense, but i havent researched..i remember way back 33 years ago, a friend and i were able to turn on an LED on >FFFE on the 8k supercart..but cant remember any of it..but again i havent sat down to figure it out as ive been busy writing a, should be, cool application for it. wip

Share this post


Link to post
Share on other sites
3 hours ago, GDMike said:

this is super! love it. i was also going to put some thought into making a debounce switch that would or possibly could auto switch on an address count. 

something that counts and would switch banks automatically?? it makes sense, but i havent researched..i remember way back 33 years ago, a friend and i were able to turn on an LED on >FFFE on the 8k supercart..but cant remember any of it..but again i havent sat down to figure it out as ive been busy writing a, should be, cool application for it. wip

For detecting address >7fff you might use a 74LS133 13-input NAND gate to gather all 13 address lines. It's obsolete but $0.49 at Unicorn Electronics

Except, be aware the 9900 reads 16 bits at a time, so it always reads 7fff then 7ffe. (and then maybe writes.)

 

Also if you're not already friends with the '138, or even if you are, the '138 can match 3 address inputs A,B,C and has 3 chip enables (G2A*,G2B* low, G1 high.)

(There are several of these inside the 4A.) When the enables are matched, the A,B,C inputs determine which one of the outputs=0.

 

Below, BLOCK_7E00 goes to 0 when there is a write anywhere in 7E00-7FFF. Etc.

 

You can decode memory writes to smaller blocks by cascading them:

 

 

Decoder138.thumb.PNG.c196fb869a26c5e1ea695f9ec0c2a291.PNG

 

Here, the second '138 matches on A15=0 and A7=1. 

The outputs like O7 could connect directly to an LED (base) for pulsing, or drive a flip-flop.

Writing to any address in >7FE0 to >7FFF will cause BLOCK_7FE0 to pulse low for a moment.

 

A bigger deal is interfacing a TLC5940 16-LED driver.

(all drawings made with KiCad 5)

Share this post


Link to post
Share on other sites
1 hour ago, GDMike said:

this is super! love it. i was also going to put some thought into making a debounce switch that would or possibly could auto switch on an address count. 

something that counts and would switch banks automatically?? it makes sense, but i havent researched..i remember way back 33 years ago, a friend and i were able to turn on an LED on >FFFE on the 8k supercart..but cant remember any of it..but again i havent sat down to figure it out as ive been busy writing a, should be, cool application for it. wip

 

I am not sure what you mean by “on an address count”, the only directly addressable CRAM (CPU RAM) in cartridge space  is >6000 – >7FFF. I would think you would need some kind of latching mechanism, as is used with cartridge ROMS, to manage software bank switching. I know that @Ksarul et al. have discussed this topic somewhere on this forum, where 74LS377/8/9 latch chips could be used to latch the proper 8 KiB block of cartridge RAM by writing to trigger addresses, >6000, >6002, etc. [And what @FarmerPotato said. 🙂]

 

...lee

Share this post


Link to post
Share on other sites

very cool..yup i have a few 138s and other logics and buffers..i dont throw nothin away, lol..even if a pin breaks ill just scrape away the insulator and press on..

so far even as big as those chips are they could still fit in a cartridge, even though sm would do nicely on a board..

this was just something, i think could have been done without too many manual switches..but it depends on what someone is tryin to achieve i guess.. for some reason that vent space on top of the console is telling me to build a box that sits on top of the vent with a small fan in it with lots of HW inside the enclosure and cabled to the cart port with LED lights galore and LC display....i dunno why....haha...i better go back to my little project...thanks for chiming in..

 

Share this post


Link to post
Share on other sites
3 hours ago, Lee Stewart said:

 

I am not sure what you mean by “on an address count”, the only directly addressable CRAM (CPU RAM) in cartridge space  is >6000 – >7FFF. I would think you would need some kind of latching mechanism, as is used with cartridge ROMS, to manage software bank switching. I know that @Ksarul et al. have discussed this topic somewhere on this forum, where 74LS377/8/9 latch chips could be used to latch the proper 8 KiB block of cartridge RAM by writing to trigger addresses, >6000, >6002, etc. [And what @FarmerPotato said. 🙂]

 

...lee

yes, trigger addresses! thats what i meant. ya nailed it for me.lol

Share this post


Link to post
Share on other sites
Posted (edited)
On 6/30/2019 at 2:40 PM, GDMike said:

yes, trigger addresses! thats what i meant. ya nailed it for me.lol

Here's the LS377 latch in the usual bank switched cartridge.

 

The Q outputs hold the bits from the last address written to. (NOT the data bits.)

Usually they are connected to the upper bits of a memory. However, they can do other jobs.

BankLatch.PNG

 

CLR @>6000     * set Q latch bits to 00000000  (LSBit is not part of latch)
CLR @>6006     * set Q latch bits to 00000011  (LSBit is not part of latch)
CLR @>61FE     * set Q latch bits to 11111111  (LSBit is not part of latch)

SETO @>6000   * same result as CLR
SETO @>6006   * same result as CLR
SETO @>61FE   * same result as CLR

LWPI >6000
LI     R3,0         * sneaky way to write to >6006, Tursi pointed out that LI does not do read-before-write

 

Edited by FarmerPotato
Added code
  • Thanks 1

Share this post


Link to post
Share on other sites

If you want a cool menu system for your SuperCart, or even want to run a 4A/DOS with it, click on <<THIS-LINK>> and scroll to the bottom to find the software.

Share this post


Link to post
Share on other sites
Posted (edited)

Ok..I got all the parts to put a 2 switch 32K cart together.  I also found a couple 377 chips too. I'll update when I have a couple done.

Edited by GDMike

Share this post


Link to post
Share on other sites

I'm experimenting with the 32k ver of supercart. I wanted to Know if there's a way of write protecting the 43256 chip..

I noticed that the assy language program of creating the header was later destroyed after a couple of reboots but the data further into the memory areas, like around >7000 area were still intact all the way down to >7FFF. I tried a physical switch at pin 27 and did not get results I hoped for, write disabled..as I believe that pin is also needed to do a read in conjunction with oe.

Share this post


Link to post
Share on other sites
1 hour ago, GDMike said:

I'm experimenting with the 32k ver of supercart. I wanted to Know if there's a way of write protecting the 43256 chip..

I noticed that the assy language program of creating the header was later destroyed after a couple of reboots but the data further into the memory areas, like around >7000 area were still intact all the way down to >7FFF. I tried a physical switch at pin 27 and did not get results I hoped for, write disabled..as I believe that pin is also needed to do a read in conjunction with oe.

Pin 27 is /WE. So have a switch in-line with the connection to that pin, plus a ~1K resistor connected between that pin and pin 28 (+5V) to ensure that /WE is pulled high when the switch is in the 'off' position.

  • Like 1

Share this post


Link to post
Share on other sites

Can you shoot me a schematic..can I do this with the chip socketed, or do I need to pull 27 out of socket? 

I pulled pin 27 out of socket put a wire to a switch from it, then the other wire from the switch I ran a 1k res to pin 28..it wrote data regardless.hmmm

Maybe I need a dpdt?

Edited by GDMike

Share this post


Link to post
Share on other sites
3 hours ago, GDMike said:

Can you shoot me a schematic..can I do this with the chip socketed, or do I need to pull 27 out of socket? 

I pulled pin 27 out of socket put a wire to a switch from it, then the other wire from the switch I ran a 1k res to pin 28..it wrote data regardless.hmmm

Maybe I need a dpdt?

You'll either need to bend pin 27 so it doesn't go into the socket, or cut the trace to the IC pin 27 on the PCB. Bending the pin out of the socket might be easier then it leaves your PCB pristine.  ;-) You might find it best to only change the switch with the console powered off, then you don't get a problem with the RAM possibly being corrupted when the switch output is connected to neither input for a couple of milliseconds as the switch changes position.

 

Should be a simple schematic attached.

SuperCart.gif

Edited by Stuart

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...