[Coco] Drivewire question
Darren A
mechacoco at gmail.com
Wed Mar 25 19:18:57 EDT 2009
On 3/25/09, Steven Hirsch wrote:
> On Wed, 25 Mar 2009, Darren A wrote:
>
>> On 3/25/09, Steven Hirsch wrote:
>>>
>>> I have some doubts about the 6551 being capable of 115.2k baud. Even if
>>> the chip itself can do it, the expansion bus may prove to be a
>>> bottleneck.
>>>
>> ---
>>
>> What do you mean by "expansion bus"? Are you talking about the
>> cartridge port and/or MultiPak?
>>
>> There would certainly be no bottleneck there since data can traverse
>> the bus at a rate of at least 1 byte every cycle. For 115.2k baud,
>> the CPU only needs to service the 6551 roughly once every 77 cycles
>> (not including any status polling). The double density floppy
>> controllers have to transfer data at more than twice that speed (250
>> kbps).
>
> Granted, but I'm thinking of a case where you are reading from one
> cartridge and writing to a device on the other. From an electrical point
> of view, you've just doubled the bandwidth demand. Plus, there's
> interrupt handling overhead and latency for the RS232 pack. It will be
> interesting to see if that combination can keep up with the bit-banger
> port + cartridge port (which, indeed, is an expansion bus).
>
In the case of DriveWire, interrupts are not used for the serial data
transfers. All transactions are initiated at the request of the CoCo
and interrupts are masked during these transactions. Using the same
tecnique for a 6551 version of DriveWire would not require any
increase in bandwidth over the bus since the serial port I/O is not
interleaved with I/O to any other device during a transaction.
Darren
More information about the Coco
mailing list