[comp.sys.apple] FPE/GS

brianw@microsoft.UUCP (Brian Willoughby) (11/11/89)

In article <8910281058.AA26023@trout.nosc.mil> philip@pro-generic.cts.com (Philip McDunnough) writes:
>Could we have a definitive answer to the following:Is the data path between
>something called a FPE and the cpu of a GS 8 OR 16 bits? While we're at it,
>does the GS qualify as a 16 bit processor in the sense of fetching data
>from memory 16 bits at a time? Thanks.
>
>   Philip McDunnough

There is no 16 bit data bus 65C8xx processor (WDC, I'm waiting...)
No comment on the FPE.  BUT, there is a difference between 8 bit and 16
bit peripherals on the GS, even though it is true that the bus is
physically 8 bits wide.  I began pondering this when I read AE's claim
that their Vulcan drive is a 16 bit peripheral.  While that is not true
from one viewpoint, there are ways to arrange the I/O so that higher
speed is realized during 16 bit accesses.  The important fact is that the
software is running faster if the hardware is correctly designed for 16
bits.

An example:

The old Disk ][ is an 8 bit peripheral.  Data comes in 8 bit groups - and
the 65x02 executes an 8 bit read.  You cannot execute a 16 bit read with
the Disk ][ (even if you put a 16 bit 65C802 in a non-GS II), because
what would actually occur is TWO 8 bit accesses where the second access
is one address higher than the first.  If a hardware designer (like AE)
were to place two 8 bit ports at sequential addresses in the card's I/O,
then a 16 bit access would see the lower 8 bits of the value at, say,
$C080, and the upper 8 at $C081.  On an eight bit peripheral, the
following code is necessary to fetch a 16 bit value (this is just one
possible instruction sequence):

LDA $C080 ;upper 8 bits
XBA
LDA $C080 ;lower 8 bits

This takes 10 to 12 cycles (look it up, if you're picky).
On a peripheral designed to take advantage of 16 bit 65C8xx processors,
the following code will suffice:

LDA $C080

This takes 5 or 6 cycles (look this up, too, if you want).
I am assuming that the M bit is set to 8 or 16 bit transfers before the
code is run, so I didn't count the cycles for setup.

IF the FPE is 16 bit, then it will be faster than any standard 8 bit
design, but not as fast as a yet-to-be-designed full 16 bit Apple would
be (if anyone ever tries to build such a thing, they'll need a 16 bit
bus version of the 65C816, and WDC doesn't make one [yet])..

Brian Willoughby
UUCP:           ...!{tikal, sun, uunet, elwood}!microsoft!brianw
InterNet:       microsoft!brianw@uunet.UU.NET
  or:           microsoft!brianw@Sun.COM
Bitnet          brianw@microsoft.UUCP