[A83] Re: MirageOS remembering program location


[Prev][Next][Index][Thread]

[A83] Re: MirageOS remembering program location




> Van: Dan Englender <dan@calc.org>
> 
> > > ...Actually, it needs to be a bit more complicated because it's
> > > actually dependant on what page the code is actually running from,
> > > not the mapped address.  IE. if you load RAM page 0 into 4000h,
> > > and run some code there, it'll still crash.  The same applies for the
> > > Flash ROM execution protection.
> >
> > That means that the adress-bus part changes. But would cutting the
> > RFSH-pin help? That pin isn't used all (might even not be connected,
> > but then my theory isn't correct anyway), since Ti's don't have dynamic
> > RAM.
> >
> > And what is this Flash ROM execution protection?
> 
> ...I have no clue on the RFSH pin.

???

The RFSH-pin seems to me like "the" way of handling this. It's high when
the Z80 has fetched an OP-code. That way you can see if the Z80 is only
reading data (which is approved) or executing stuff (which you don't want
it to do).

That the hardware also needs to check if the adress-bus points to an
'illegal' RAM-page is only making it slightly difficult (but also [almost]
proves that it's external to the CPU).

Basicaly it means that you need to check A15 and A14 against the 4 banks
with possible illegal pages. (XX?? ???? ???? ???? => A15, A14,..., A0)

If so, then "boom!"... (plainly set the RESET-pin)

So something like this:

A15-pin  AND  ProtPageBit1 -\
				> AND  -->  RESET-pin
A14-pin  AND  ProtPageBit2 -/

> As for the Flash ROM execution protection, code can only be run from
> 00-08, and 16h-1Fh, plus the pages your apps are on.  If you've got an
> SE, you can see the particular bounds for execution of code from flash
> ROM by looking at ports 22h (lower bound), and 23h (upper bound).  If you
> try to run code from any page in between these, the calculator will
> crash.  Not to do with the execution protection, but of course you also,
> if you want to disable the flash ROM protection (so you can write, etc),
> need to have code executing from pages 1Fh, 1Dh, or 1Ch, regardless of
> where they're mapped.

So you say that pages $09 - $15 are only used for (fixed) data storage? Or
has Ti some 'backdoor' which makes it possible for the ROM to execute from
these pages?

> > > On a side note, here's a nifty quick way to "disable" the 8.8k limit
> > > on the SE:
> > > [..]
> >
> > Just put another RAM page at $CFFF-$FFFF. That definately works :-)
> 
> ...Yeah, but it depends with RAM page.  Some will still crash.

There are only 2 other RAM pages on the SE (next to the 2 normaly loaded),
if I'm informed well. So what do you mean? It's, or the '3rd', or the '4th'
RAM page that let it also crash. So "some" is a bit wierd in this context I
think.

	Henk Poley <><




Follow-Ups: