[rescue] AT&T 3b1 Starlan software
James Lockwood
james at foonly.com
Thu Feb 13 15:00:53 CST 2003
On Thu, 13 Feb 2003, Jonathan C. Patschke wrote:
> On Thu, 13 Feb 2003, Scott Newell wrote:
>
> > Does each slot have X amount of memory space allocated to it? Seems to me
> > the simple backplane has an advantage if you've got cards that require
> > almost no memory space, and some cards that require a large chunk.
>
> I'm not really clear on how the Apple ][ handled that. But, yeah, that
> could be a problem.
>From memory, so it's a bit fuzzy.
256 bytes from Cx00 to CxFF dedicated to each device where x was the slot
number (1-7). This usually held bootstrap and core code. C000-C0FF was
for onboard hardware control.
2KB from C800 to CFFF that any card could map in at a time. When a card
that needed this space got control it would map itself in, do its
operations, and then map back out. Overhead was only a couple of cycles.
2KB doesn't sound like a lot but with a 64KB address space, it was plenty
for hardware control. The entire low level primary boot loader and low
level I/O routines (including 6&2 decoding) fit with a pile of room to
spare.
Low level I/O to a 5.25" floppy disk on the Apple ][ was about as low
level as it's possible to get. All timing, framing and decode was driven
through software with precisely timed loops. The boot loader was a work
of demented genius.
As far as locating devices in different slots was concerned, there wasn't
really a problem. Just about any program that needed to muck with
expansion cards at a low level asked you for a slot number to operate on.
Certain choices were defaults (such as 5.25" drives on slot 6, a mouse on
slot 4, etc) but I can't remember any drivers that actually hardcoded the
slot except for really weird cards that dug deeply into how memory was
addressed.
The IBM PC approach of user-specifying the address ranges is the worst of
all possible worlds. The only thing that can settle out reasonable
defaults is convention, and convention takes a long ugly period to settle
down from initial release.
Nubus was another bus that got it right. Not surprising, since it has VME
heritage. The VME BGxx/IACK lines are another interesting way to
implement flexible interrupt handling, though I wish they could have
solved the empty slot problem better.
-James
More information about the rescue
mailing list