[Coco] POKE 65495,0
Phill Harvey-Smith
afra at aurigae.demon.co.uk
Mon Jan 29 15:10:56 EST 2007
Darren A. wrote:
>> From: Diego Barizo <diegoba at adinet.com.uy>
[snip]
> *When the SAM control register bits "R1" and "R0" are programmed to
> "0" and "1" respectively, the Address Dependent Rate Mode is
> selected. In this mode, the 'crystal divided by 16' MPU rate is
> automatically used when addressing within $0000 to $7FFF, or $FF00 to
> $FF1F ranges. Otherwise the 'crystal divided by 8' MPU rate is used.
> This mode often nearly doubles the MPU throughput while still
> providing transparent VDG and dynamic RAM refresh functions. For
> example, since much of the MPU's time may be spent performing
> internal MPU functions, accesing ROM ($8000 to $FFEF) or accessing
> I/O ($FF20 to $FF5F), the faster 'crystal divided by 8' MPU rate may
> be used much of the time.
This I always found confusing, as even when running code from ROM,
surely whilst display is active the VDG will still be accessing the RAM
($0000-$7FFF), so as far as I can see one of two things must be happening :-
1) The faster mode is only active during /HS and /VS periods, when the
VDG is not accessing RAM, though even then the SAM is issuing refresh
accesses to the RAM.
2) The system is running at double speed all the time, and the VDG
accesses are only every other cycle (as they are latched anyways).
I suspect the former though. As if the latter where true, assuming
sufficiently good RAM, then there is no reason why the SAM could not run
the CPU at double speed all the time and just do a RAM access every
other cycle, as this is an exact 2:1 ratio.
Cheers.
Phill.
--
Phill Harvey-Smith, Programmer, Hardware hacker, and general eccentric !
"You can twist perceptions, but reality won't budge" -- Rush.
More information about the Coco
mailing list