[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: What do I do next?



Linards Ticmanis <ticmanis@coli.uni-sb.de> wrote:

> David Empson wrote:
> 
> 
> > The multi-bank auxiliary slot mechanism also goes against Apple's other
> > memory expansion options for the 8-bit machines, which were designed
> > around a standard slot with a narrow memory interface and address
> > register in the I/O space, i.e. the Apple II Memory Expansion Card and
> > the corresponding card for the IIc.
> 
> So Apple did make Memory Exp. cards for the 8-bit machines beyond the
> II+ Language Card and the IIe extended 80-col?

Yes.  The "Apple II Memory Expansion Card" works on all Apple II models
with slots.  It was typically supplied with 256 KB of RAM and is
expandable up to 1 MB, using 256Kx1 RAM chips in sets of eight.

It can act as a RAM disk in ProDOS or Pascal (you can even boot from
it), and applications can also use it for data storage (via the
SmartPort driver on the card); AppleWorks 1.3 is the first version which
supported using this card as desktop space, if I remember right.

I'm somewhat rusty on the other user-level details.  I'm slightly more
familiar with AE's RamFactor, which works on the same principle but has
additional functionality.  In particular, I forget whether Apple's card
supports DOS 3.3.

At the hardware level, the card uses four locations in the I/O space
allocated to the slot to implement a three-byte address register and
one-byte data register.  Applications are not supposed to use this
interface directly - the SmartPort driver on the card is the recommended
method for doing data transfers between the card and main memory.

The address registers are set to point to the desired location within
the RAM on the card, then each read or write access to the data register
will transfer a single byte between the card and the CPU, and will
automatically increment the address register.  Transferring a block of
data can therefore be done by using a simple loop with a pointer to the
main memory location and a fixed source/destination I/O address, which
is faster than a typical memory copy involving both source and
destination pointers.

Since the card only provides access to a single byte at a time (through
a single address), it isn't possible to execute code directly from the
memory on the card - it has to be copied into the computer's main (or
auxiliary) memory first.

Random access to individual or small groups of data bytes is also
ineffeficient, due to the overhead of rewriting the address register
(plus the SmartPort call, if doing things properly).  This is less of an
issue when transferring reasonably large chunks of data.

Note that since the card has a three-byte address register, it could
theoretically support as much as 16 MB of RAM.  (I don't know whether
the upper four bits are actually implemented in hardware on Apple's
card.)  The RamFactor has the same basic design (with better firmware
features), but it has an expansion connector which allows a 2 MB card to
be piggybacked, for a total of 3 MB.  In theory, the RamFactor could be
extended to the full 16 MB address space.

The Apple IIc memory expansion card (supported by the revision 3 and 4
firmware, and the last motherboard revision of the IIc) works on the
same principles, and is 100% compatible at the software level.

The Apple IIc+ memory expansion slot also works on the same basis, but I
gather that the IIc memory expansion card doesn't work in the IIc+,
possibly due to timing issues or some other hardware problem.

-- 
David Empson
dempson@actrix.gen.nz