[comp.sys.apple] hardware interfacing to the Apple ][e

spark@pro-newfrontier.UUCP (Dan Marks) (04/01/89)

I am currently working on an interface device to connect 16
TTL inputs and 16 TTL outputs to the annunciator/game input
connector on my Apple //e. It is enhanced, and I am using
the Apple's power supply to partially power this project.

The problem with the circuit is the strobe (which is strobed
by a read to location $c040 I think). The input portion
of the circuit is working fine. I use the 4 annunciators to
select a certain input and then read PB1 to get the logic
state of that input. I do this by using a 74151, connect
AN0-AN3 to output A-D and then connect the inputs to the
Q0-Q15 inputs and connect the enables all to ground (except
for the enable that must be held high) and also connect
the data selector output Y to the PB1 on the joystick port.

The output section is what I am having the problem with.
I am using a 74151 demultiplexer which I also have
outputs AN0-AN3 connected to. When I do a read to Strobe,
the $c040 strobe drops low for about 3 ms, which is sufficient
enough to cause the 74154 to select one of the outputs. Each
output is then connected to half of a 7476 J/K flip flop
which toggles every time you select that half with the
demultiplexer and strobe it. In case you are wondering,
I have connected a button from ground to all of the clear
lines on the 8 7476's so that when the circuit starts up
I can reset it.

The problem is this: for some reason my circuit will register
the strobe and sometimes it wont. I have checked it out using
an inverter and or-gate latch (7432)  as a pulse catcher. Sometimes
the circuit will catch the pulse, sometimes it won't. How
can I make my circuit reliably register a strobe?

In case you are wondering, the fan out on AN0-AN3 is 3 TTL/LS
loads while the strobe is only one TTL/LS load, which is all
I have connected to my circuit. I have tried using pull up and
pull down resistors to the signal, I have tried using a 555
to create a longer pulse from the shorter pulse, and I've tried
using a latch to detect the pulse, but nothing seems to work.
Could this be the fault of a faulty IOU or MMU?

Off the subject: I accidentally posted a program to info-apple,
next time I'll post it to apple2-l, sorry about this.

------------------------------------------------------------------
Dan Marks        |   spark@pro-newfrontier
                 |   "When the ship lifts all bills are paid.
                 |       No regrets."- Lazarus Long
                 |   Disclaimer: No one has a right to take credit
                 |      for something I flubbed up all by myself!
------------------------------------------------------------------