[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