Subject: Re: Re: [TI994A] I: Multicart info....

From: [email-masked]
Date: Sun, 18 Apr 2010 08:21:25 -0500 (CDT)

That's really strange. You would think the manufacturers would have gotten together and said "lets make all 379s this way". What if the 245s worked according to manufacturer? Say for instance you were using hitachi 245s but because sales were down they decided to stop making the chip? What are you supposed to do with your board?

Apr 18, 2010 12:52:15 AM, [email-masked] wrote:

> Funny how devices that are supposedly built to a "standard" don't always
> work like you expect.

There's no standard.. the power up state of a 379 is undefined. We went over
this many, many times during the design, but there's no simple way to
provide a startup hardware reset. We went over a few different ideas but
always came back to easy to find cases that wouldn't do the trick, and the
ones that covered them need too much hardware to be worth it. A CPLD is the
best way forward if you really need that level of control.

It's better done in software - but that software needs to get control. The
current method of building the multicarts doesn't modify any of the programs
copied into it, so the Multicart software needs to manually be located in
the power-up bank.

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

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/

---

From: "Tursi" <[email-masked]>
Date: Sun, 18 Apr 2010 12:39:37 -0700

> That's really strange. You would think the manufacturers would have gotten 
> together and said "lets make all 379s this way". What if the 245s worked 
> according to manufacturer? Say for instance you were using hitachi 245s 
> but because sales were down they decided to stop making the chip? What are 
> you supposed to do with your board?
>

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.