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

Re: Parallel Card



Bryan Parkoff wrote:

>     Thank you for the explanation.  I am very curious about the timing on
> Apple //e.  HAL16R8 chip contains 16 timing possibilities.  This chip has 8
> inputs and 8 outputs and 8 registers as inside another 8 inputs.  I only
> want to view 8 outputs.

Sorry, I don't know what a HAL16R8 is ...

>     How is it possible that game connector can be done?  I write assembly
> language to send one byte as 256 possibilites from the memory to the game
> controller.  Then HAL16R8 chip receives 8 inputs and transmits 8 outputs
> back to the game controller.  Eight outputs is stored into memory.  I view
> stored bytes in memory.
>     Do you have draft schematic that it might help me to design in my own?
> Michael Mahon said that two parallel cards are only the answer.  I think
> that game controller card might be a good idea for money saving.

Well, two parallel cards is the way to go if you don't want to design
any hardware, particularly if you have them lying around.

It's much as I explained:

Use the power from the game port to power the 74LS164.
Join the two inputs of 74LS164 together.
wire these two inputs to AN0 on the game port.
wire the clock input on chip to AN1 on the game port.
wire the reset input on the chip to AN2 on the game port.
connect an LED to each of the 8 outputs, anodes to the outputs,
cathodes connected in common, via a small resistor, back to the ground
pin on the game connector.

That's all the circuitry you need for 8 LEDs

The rest you can figure out on your own - just grab a data sheet of the
web for the IC and have a play with the soft switches that control the
annunciators. basically, after toggling reset, you can make the state
of AN0 'shift' into the register by switching AN1 high, then low,
generating a clock pulse. each clock pulse will shift the contents of
the register down input, and set input A to the value of the input,
which we've connected to AN0. 8 clock pulses will 'fill' the register.

A simple assembly language routine to load the value of a byte of
memory into the register can be written with a loop that runs 8 times.
each time through the loop you'd use the ASL instruction to set the
carry flag to the value of the high order bit within the accumulator.
then set AN0 based on the carry flag, and clock AN1. Each time through
the loop loads another bit in the byte into the register chip.

Remember that such chips are reset by pulling the reset line low. so
AN2 will have to be set during loads, and resetting the chip occurs by
turning it off, then back on.

That's about as much as I'm prepared to cover here - best of luck
giving it a go!