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) JimReceived on 2020-05-29 22:38:13
Archive generated by hypermail 2.3.0.