RE: Article PC-card

From: Ethan Dicks (ethan_dicks_at_yahoo.com)
Date: 2001-04-09 17:17:08

--- g.baltissen@hccnet.nl wrote:
> Hallo Ethan,
> 
> > but there are drivers for IDE, network cards of various flavors (NE2000, 
> > 3c503, 3c509 and 80x3, primarily), serial ports, printer ports and a few 
> > odd devices under AmigaDOS and UNIX.
> 
> Are the sources of the drivers available?

For UNIX, yes.  For AmigaDOS, not on the open net.  I am not the author,
so I have not put the source on the GG2 Bus+ web page.  Holger Kruse wrote
the newer drivers for Miami.  I don't have the author's name for the older
SANA2 drivers, but I haven't heard from him in years.
 

> I'm not familiar enough with the Amiga to understand this "64Kb AUTOCONFIG".

Machines like the C-64 have blocks of memory space, typically defined by
having a ready-made select line on an I/O port.  They tend to be sizes like
128 bytes or 256 bytes and you hook the select line up to one of the chip
select lines on your I/O chip and off you go.  If you need more than one
chip, you can decode extra lines and fit as many I/O chips in that space
as there are address bits (minus the ones needed for on-chip register
selection).

The Amiga takes the approach of dedicating several 64Kbyte segements of
memory space and one 8Mb segment (out of the 24-bit address space of
the 68000) and, at startup, using the AUTOCONFIG protocol to query
each expansion board for what kind of resources it needs.  A detailed
breakdown of this is probably too much for this group, but essentially,
the CPU teases a table out of the expansion card, 4-bits at a time, that
tells the OS what the vendor and model are for the board (so it can match
it up with a driver later), and how much I/O or memory space the board
needs.  A simple card, like a SCSI interface, would request a single 64Kb
block for all of its I/O registers (like for a Z5380 chip).  A more
complex card might ask for 1Mb of memory space and two 64Kb I/O spaces.
The ROM parcels out the requests to each board (starting with the one
closest to the CPU) until they either there are no more boards, or there
is no more free space to give up.  Any remaining boards are told to shut
up.  This way, you can stick an 8Mb board in a machine and if you later
stuff a 2Mb board in, there is a defined way that the machine should
handle it.  There are no address conflicts like you can get in a PC, but,
neither can you assume you know exactly what address your hardware is
sitting at - you must ask the OS.  If the user adds, removes, or re-arranges
the cards, it will change where your card lives.

> > If this discussion ever results in any hardware being designed, I'd love 
> > to build one. 
> 
> I don't know if you have the original mail starting this discussion. This 
> article is based on a real card build in 1988. Unfortunally it was lost 
> during a moving.

Ah... I missed that part.  Were there any refereces to any articles on the
web, or just in print?
 
> The Amiga supports 16 bit, the C64 and almost all other C='s don't :( 

True.

> Writing the above lines, I got the idea to use a 6522 for the upper 8 
> databits. This is it has this feature being able to latch data. This 
> feature is used in the 1541 (and maybe other drives as well).

There are other ways to do this for a simple data latch.  A company I
used to work for built a VAX-BI card that was 68010-based (because we
had ancient engineering debugging tools, not because it was the best
chip for the job).  The VAX-BI has a 32-bit data path.  We rigged up
this scheme whereby a 16-bit read would instigate a 32-bit bus read, and
latch the other 16 bits for the next 68000 read.  A write was also done
in two stages - one to load the upper 16 bits and one to load the lower
16 bits and trigger a bus write.  Programming was trivial; the strange
stuff was confined to one module (since we were porting the code from
an older product that sat on a 16-bit bus).

The 6522 might be the easy way to go, but since they aren't making
any more of them, perhaps a renewable resource might be a better
choice.  Alternatively, some 16-bit network cards _can_ be used
in an 8-bit machine.  We had this problem with the 3c509 on the GG2 Bus+.
Neither Holger Kruse nor myself were able to research how the 3c509
did its automatic bus sizing, and it was coming up in 8-bit mode, limiting
its transfer rate.   3Com tech support could only tell us "it's a driver
problem - contact your driver vendor".  The explaination that we _were_ the
driver vendor only confused them.

-ethan


=====
Even though my old e-mail address is no longer going to
vanish, please note my new public address: erd@iname.com

The original webpage address is still going away.  The 
permanent home is: http://penguincentral.com/

See http://ohio.voyager.net/ for details.

__________________________________________________
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail. 
http://personal.mail.yahoo.com/
-
This message was sent through the cbm-hackers mailing list.
To unsubscribe: echo unsubscribe | mail cbm-hackers-request@dot.tml.hut.fi.

Archive generated by hypermail 2.1.1.