Subject: I: Multicart info....

From: Jon Guidry <[email-masked]>
Date: Sat, 17 Apr 2010 21:35:46 -0500

For those of you burning or making multicarts out of some of the newer boards...

There are a few different kind of 74LS379 chips, and they all behave slightly different from each other when it comes to what power up bank you're going to land in when the system comes up. (There is no documented power-up state, and it looks like different manufacturers do different things.)

The NTE and TI branded 74LS379's that I have seen will almost always come up in bank 7 (the highest bank on the EPROM.)  

The Motorola* and AMD branded 74LS379's seem to come up in bank 0 (the lowest bank on the EPROM.)

* Most of the Motorolas... I've seen some come up in bank 7, but very few.

So, if you're using our friend Tursi's Multicart program to make a 64K EPROM (8 x 8K), you need to have the MULTICART 8K segment in the bank 0 for Motorola and AMD 74LS379s, and bank 7 for NTE and TI 74LS379s.

If you put your multicart EPROM in and find that you have a module listed instead of MULTICART, then you have one of two choices:

1) Buy a NTE 74LS379 chip if you're currently using a Motorola or AMD 74LS379. They are here:  http://www.mouser.com/ProductDetail/NTE/NTE74LS379/?qs=xRTSnXjzBs7y56R0txmVYg%3d%3d
2) Buy a Motorola 74LS379 chip if you're currently using a NTE or TI 74LS379.  They are here:  http://unicornelectronics.com/IC/74LS.html
2) Reprogram your EPROM and put MULTICART in bank 0 or 7 (whichever it wasn't in before).  I use 0xED for OS X and it works great for cutting/pasting.
3) If you can't reprogram your EPROM, send it to someone who can (like me, or several other people on the list who have EPROMs and erasers.)

This is just one of those oddball things we have to deal with, since we're assuming a lot by the default power up state of a chip, and that power up state isn't documented!

Note that this idiosyncrasy doesn't have any effect on a properly written bank switched program (that by default switches where it needs to go), such as TI Workshop, Pitfall, Arcturus, etc.  It just affects multicarts using Tursi's program. :)

Jon

---

From: [email-masked]
Date: Sun, 18 Apr 2010 18:42:40 -0500 (CDT)

I agree, you guys did work it out in what may be the most practicle way. Now that we talk about this I'm remembering a similar problem with a chip for the P-GRAM card. I think you have to use only a TI chip or it doesn't work.

Apr 18, 2010 03:41:22 PM, [email-masked] wrote:

It's pretty normal in hardware to have defined behaviour, and undefined
behaviour. You are supposed to design around the defined behaviour.
Undefined behaviour allows parts to evolve, cost reduce, add features, etc.
In the case of the 379, if you need to come up in a known state, there is a
different variant that includes a reset line - you sacrifice some of the
outputs for that feature. This part still wasn't useful for us, because the
TI console can also soft-reset with FCTN-Equals, and this does not trigger
any hardware lines at all. So once you selected a game, you still couldn't
get back to the menu without a power-cycle (or hardware reset if you added a
switch). So it wasn't worth changing the design for.

I considered a number of tricks to take advantage of the way the console
boots up, but none were very good. The best one probably was to reset the
bank on access to >6000 (assuming that a game would not read its own powerup
header), but this takes a lot of discrete logic, so a CPLD would be a better
solution for that.

Software is the best solution to that problem.. a tiny stub inserted into
each game in the multicart could use the powerup vector to set the correct
bank on the master title screen. You'd just need to find 6 bytes somewhere
to put something like:

MOVB R0,@>6000
B *R11

Then hack the cartridge header to jump to it for powerup. The downside?
You'd probably need it at the same address in each bank, since otherwise the
B*R11 may not be executed (it's after the page change). Haven't tested this,
though... Jon's workaround works well enough.

------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/TI994A/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/TI994A/join
(Yahoo! ID required)

<*> To change settings via email:
[email-masked]
[email-masked]

<*> To unsubscribe from this group, send an email to:
[email-masked]

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/