Re: C64 MMU POC

From: Jim Brain <brain_at_jbrain.com>
Date: Mon, 30 Sep 2019 23:16:34 -0500
Message-ID: <1a383148-0706-7dd7-63e5-5f8c0fded734_at_jbrain.com>
On 9/30/2019 4:21 PM, Nejat Dilek wrote:
> On Mon, Sep 30, 2019 at 11:08 PM Jim Brain <brain_at_jbrain.com> wrote:
>> Special timed writes/reads are fine to unlock the register space, but it
>> would not make sense to set all of the registers in this MMU via that
>> mechanism, due to the number of addresses to change and the frequency of
>> changing them.
>>
> You could have a state machine where you only react to command writes
> when the state machine is in unlocked state otherwise ignore them.
I intend to.
> After the unlocking, calling program may start issuing commands to the
> registers of the hardware. You could have a control register to
> provide shut off mechanism for the calling program too when in
> unlocked state.
THis is the plan.  The question was where to put the registers when 
unlocked.
>
> By the way you don't have to deal with bit transfers to use such a
> unlocking mechanism, in my case I was constrained to 1 bit input so I
> designed a bit of time taking procedure for the unlocking mechanism.
> If you can capture full byte writes then the whole process could
> complete in just 30-40 cycles too. Of course then you need a litle bit
> of memory buffer in the hardware. Say, getting 8 consecutive writes of
> specific data like "TURN ON!" to a specified address.

I doubt I'll use writes.  In some of my other projects, I use reads from 
locations in a specific 256 byte address space.  The low byte of the 
address is used as the "magic" value.  So, to unlock using 
$55,$aa,$ff,$00,$c0, for example::

lda $c055

lda $c0aa

lda $c0ff

lda $c000

lda $c0c0

THe advantage is that the operation is "safe" at least in RAM space (a 
read in IO space is not always safe, but it always safe in RAM)

Jim
Received on 2020-05-29 22:38:13

Archive generated by hypermail 2.3.0.