[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Apple II+ 15 Slots?
"Bryan Parkoff" (BParkoff@satx.rr.com) writes:
>
> Will 6502 CPU be able to manipulate 15 slots through 8 bit bus? What is
> the difference between 8080 and 6502 which 8080 support 256 I/O. It looks
> like that 8080 and later models have more I/O than 6502 does. What do you
> think?
> I know that Apple //e and Apple //c will use C800-CFFF as built-in ROM.
>
>
The 8080, and similar CPUs, have a separate I/O space, while the 6502
(and similar CPUs) can only address memory space.
I'm going to use the 8085 for this example, because the 8080 doesn't
have all the pins available, and I'm not going to look for a circuit
that shows the peripheral IC that generates the needed signals.
See the 8085 pinout here,
http://www.xs4all.nl/~ganswijk/chipdir/pin/8085.txt
(The 8085 is basically an 8080, with the peripheral IC built in)
There is a pin for read and a pin for write, which determine the
direction of the signals on the data bus. There is another signal,
io/m which determines whether this will address memory, or I/O.
In the former case, it outputs the full 16bits on the address bus.
But when addressing I/O, it only outputs 8 bits. So while it can address
64K of memory, it can only address 256bytes of I/O. With the I/O
buss, you can only do read and writes, any more complicated instructions
have to be done in the CPU and then the results sent to the I/O bus.
The 6502 has no I/O bus, so all I/O has to go into the "memory space"
and each time you use up a space, you lose the equivalent memory
capacity. But considering the times, nobody was thinking much in
terms of filling 64K with memory. You can have as much I/O as
you need, up to the 64K limit (well, you will need some memory).
I think it gives you a cleaner interface, lost memory aside. And you can
directly manipulate any I/O with any instructions that will work,
which makes things simpler.
Note that the 8080 can use I/O in memory space, just like the 6502.
You just ignore the io/m pin, find some spot where you can put
the I/O, and use regular instructions with it.
Michael