[comp.sys.apple] Expansion Box

ASTVKBPA@UIAMVS.BITNET (Val Bluestein) (12/03/87)

Ray,
 I've never done anything like the slot switcher but...
What I would try is switching the I/O select, Device Select, and
I/O Strobe (1,41,20).  These are the signals that tell the cards
if it is being accessed,  If these are kept low (I think, take a look
at them with a scope or look in a manual to see if they are active high
or low), the card will never respond.  The power lines probibly don't
need to be switched (unless you are haveing power problems). You might
want to filter them through a AND gate (OR gate if they are active low)
                    |
                    <
                    >   pull down resistor
                    <
                    >
                    |
                    |   +-
                    +---| \
                    |   |  |-----   IOSTB
       IOSTB------- | --| /
                    |   +-
                    |
                    |   +-
                    +---| \
                    |   |  |---- DEVSEL
       DEVSEL------ | --| /
                    |   +-
                   etc

This will keep the lines low unless you pull the control input high
Hope you have luck, keep us posted.
                             Val Bluestein

Disclaimer: I think this is right, but if your machine goes poof!
            you never heard of me!

neighbor@csd4.milw.wisc.edu.UUCP (12/04/87)

Ray,

  Your expansion box will cause more problems than you realize.
Each line coming out of the connector has loading limits.  This means
that you can only hook up so many TTL gates to each line.

For example.  I think the Address lines can only handle 2 TTL loads each.
    (I don't quite remember, don't have the reference manual in front of
     me.)
     If you have cards in each of your 4 slots that you made on your
     expansion box,  assuming only 1 load per slot per address line,
     you will have 4 loads on each address line.  That is twice the
     limit.

There are other lines that I think can only handle 1 TTL load.

If you overload these lines your computer will malfuntion and not operate
correctly.  I have experience with this problem.

You should also have these lines buffered.  They all should be
buffered.  Also if the cable going from your expansion box to the computer
it too long you will also develop timing problems.

The only way to get around this problem is to switch every line with
elctronic gates.  This is probably the only way that your expansion
box will work trouble free and reliably.

neighbor@csd4.milw.wisc.edu

kamath@reed.UUCP (Sean Kamath) (12/15/87)

In article <3781@uwmcsd1.UUCP> neighbor@csd4.milw.wisc.edu.UUCP (Jeffrey Alan Ding) writes:
>
>Ray,
>
>  Your expansion box will cause more problems than you realize.
>Each line coming out of the connector has loading limits.  This means
>that you can only hook up so many TTL gates to each line.

True, true.

>For example.  I think the Address lines can only handle 2 TTL loads each.
> (example of load limit)
>
>There are other lines that I think can only handle 1 TTL load.
>
>If you overload these lines your computer will malfuntion and not operate
>correctly.  I have experience with this problem.

See below for how to handle loads

>You should also have these lines buffered.  They all should be
>buffered.  Also if the cable going from your expansion box to the computer
>it too long you will also develop timing problems.

This is a serious problem, esp. if the ribbon goes around 60 Hz power lines.

>The only way to get around this problem is to switch every line with
>elctronic gates.  This is probably the only way that your expansion
>box will work trouble free and reliably.

Sort of.

>neighbor@csd4.milw.wisc.edu

Sorry that this seems so delayed.  I have spent some time looking into how
to do this right.  In "The Custom Apple and Other Mysteries" (I forgot the
authors and publisher, but they also make one for the trs-80 and commodore
-- email me if you want a complete list of books) they build a
"slot-repeater" which acts as a slot expansion box, and brings out four
slots.  However, there is no methode of switching them.  

Ao, how do you do it right?

Well, first off, one really should use a separate power supply for the
cards.  I really haven't gotten into how to design nice power supply to use,
but I know that Radio-Shack was selling a regulated power supply with +/-5V,
+12V and GND, and only cost $5.95.

Second, one should switch on Device_Select and I/O_Select.  Both are inverse
logic.  To do it cleanly, you really ought to di it with gate array logic,
but you can do it stricly mechanicly.

To isolate the data and address bus, I suggest using 74LS245's.  These have
been known to fail on //es because the use low quality chips made in
Singapore.  My //e gave me a bunch of randown '?'s on the 80 column screen
when it was on for more than 12 hours.  Changing the '245's on the
motherboard and the 80 column card fixed it right as rain.  In anycase, use
TI chips.  The '245 is a tri-state logic buffer.  If you hook the enable to
the _Select line, then it holds the bus at high-Z so that no load in placed
on it.  When the _Select goes low, it is enabled, and depending on the way
DIR is set, either buffers to or from the bus.  If there is sufficient
interest in the subject, I will go into much more detail, short of designing
the board. (I'm currently working on a homebrew 6502 box. . .)

Sean Kamath

-- 
UUCP:  {decvax allegra ucbcad ucbvax hplabs ihnp4}!tektronix!reed!kamath
CSNET: reed!kamath@Tektronix.CSNET  ||  BITNET:  reed!kamath@Berkeley.BITNET
ARPA:  tektronix!reed!kamath@Berkeley <or> reed!kamath@hplabs
US Snail: 3934 SE Boise, Portland, OR  97202 (I hate 4 line .sigs!)