[Coco] Desired RESET behavior

RETRO Innovations go4retro at go4retro.com
Fri Jan 29 23:02:12 EST 2016


On 1/28/2016 11:22 PM, Mark McDougall wrote:
> On 29/01/2016 3:05 PM, RETRO Innovations wrote:
>
>> I am inclined to do 8kB.
>> Working on it it.  Looks like it is just a few macrocells, (10-15), so
>> should be OK
>
> Awesome!!! ETA on finish date? ;P
Well, the board is done and working.  I am *almost" done on the SPI 
piece you needed, but trying to determine where to put it in the memory map.

Thinking about register layout now.

Right now, I have:

$ff58: WXXX10AL - W=write FLASH, XXX=reserved, 1=switch 1 status, 0 = 
switch 0 status, A = autostart, L = LED
$ff59: lo byte of 11 bit bank register
$ff5a: hi 3 bits of bank register
$ff5b: ID( $11) (Manufacturer = 1, Device = 1)

For the moment I have replaced $ff5b wth the SPI R/W, but I really want 
to keep the ID (and put a version on there as well.  I have 3 options:

1): Cloud-9 emulation:

$ff58 --- nothing, just like Cloud-9 SuperIDE and Cloud-9 Flash
$ff59: WNXXXXBB: SuperIDE Flash Bank register - W = write ROM, N= Native 
registers, BB = 2 bit bank value.  Only the bank register values are 
returned on READ

I *think* the write to ROM flasg is in bit 7.  I seem to have read that 
somewhere, but can't find it now.

And if N is high:

$ff5a: WXXX10AL - W=write FLASH, XXX=reserved, 1=switch 1 status, 0 = 
switch 0 status, A = autostart, L = LED
$ff5b: lo byte of 11 bit bank register
$ff5c: hi 3 bits of bank register
$ff5d: SPI
$ff5e: ID( $11) (Manufacturer = 1, Device = 1)
$ff5f: VERSION( $10) 1.0

Incomplete emulation:

$ff58: WXXX10AL - W=write FLASH, XXX=reserved, 1=switch 1 status, 0 = 
switch 0 status, A = autostart, L = LED
$ff59: lo byte of 11 bit bank register
$ff5a: hi 3 bits of bank register
$ff5b: SPI
$ff5c: ID( $11) (Manufacturer = 1, Device = 1)
$ff5d: VERSION( $10) 1.0

Or, a 4 register version complete emulation:

$ff58: Part of the IDE registers on SuperIDE, I assume nothing on the 
Cloud-9 flash cart.
$ff59: WNXXXXBB: SuperIDE Flash Bank register - W = write ROM, N= Native 
registers, BB = 2 bit bank value

And if N is high:

$ff58: WEIX10AL - W=write FLASH, E = go back to emulation, I = ID, 
X=reserved, 1=switch 1 status, 0 = switch 0 status, A = autostart, L = LED
$ff59: lo byte of 11 bit bank register on read and write
$ff5a: hi 3 bits of bank register on read and write
$ff5b: SPI

If I = 1:

$ff58: WEIX10AL - W=write FLASH, E = go back to emulation, E = ID, 
X=reserved, 1=switch 1 status, 0 = switch 0 status, A = autostart, L = LED
$ff59: lo byte of 11 bit bank register on write, ID on read.
$ff5a: hi 3 bits of bank register on write, VERSION on read
$ff5b: SPI

I rather like the first one, but I know the $ffxx space is very crowded.

I also need to see how the CocoSDC does it's FLASH, so see how 
compatible I can be.




Jim


More information about the Coco mailing list