Ok, so far so good. I've got my wire harness all wired up (I basically
used a good quality 40-pin DIP socket: the signal lines going into one
side and the returns on the other). Nothing fancy required. The reader
is putting out TTL signals so all is good.
One oddity: before hooking anything up, I measured the voltage between the
Apple's ground and the reader's ground. It would start off at a very low
amount of microvolts, climb slowly, then all of a sudden it would shoot
to +5 and then go back down to 0, where the cycle would repeat. The cycle
period was about 5-6 seconds. What the heck is going on?
I tested it out with the indicator signals, i.e. BSY (Busy), HCK (Hopper
Check), MOCK (Motion Check), Error, etc., and the VIA is getting the
signals. I wrote a little program to print out the status bits of the
port that is accepting the signal and ran a batch of cards through and
everything is as expected.
The next step is to wire in the data signals and start to read data. The
VIA gives me two 16-bit ports and an additional 4-bit port. The 4-bit
port is special in that it can generate interrupts, so it will work quite
well for error signals. The problem is I don't know how to access that
port through the card I have. It's a custom 6522 card that I built for a
class on microcomputer interfacing I took a lifetime ago and I can't find
my class notes.
Anyway, I'm in the process of figuring it out. Everything on the card is
accessed through it's I/O addresses, being C080 + (slot * 16). So I have
it in slot 4 which makes all it's I/O available at C0C0-C0CF. I've found
the timer locations and some 16-bit registers. I also found by accident a
timer that generates a RESET interrupt when it elapses--at least that's
the theory I'm going under since the Apple reset itself after I was
playing with the registers. I also believe I remember there being this
feature on the 6522, but I haven't had a chance to read that part of the
docs yet.
One thing I'd like to investigate after I'm done with this is to see if
there are enough inputs on the Apple itself to forgo the necessity of the
6522. The Game I/O port has 7 inputs, if you count the 4 joystick inputs
that can be used as simple TTL inputs, plus the 3 push-button inputs. The
other inputs would be the keyboard. It has 10 Y-inputs and 6 X-inputs,
plus SHIFT and CONTROL. I'm wondering if there would be a way to hook up
the data signals from the reader in a way that the character data from a
card column triggers a key input, which can then be cross-referenced to
determine what data was actually sent from the reader.
Whether this will work depends on how punch card encoding works. From
what I can tell so far, there will only ever be one of the 1-9 numbered
rows punched per column, but there can be any combination of the 0, 11,
and 12 rows. Is this correct?
If so, then there should be enough combinations of inputs on the keyboard
port to allow the data signals to go through that, and then the GAME I/O
has just enough inputs to cover all the status signals (HOPPER CHECK,
MOTION CHECK, ERROR, BUSY, INDEX MARK, and READY).
Sellam Ismail Vintage Computer Festival
------------------------------------------------------------------------------
International Man of Intrigue and Danger
http://www.vintage.org
* Old computing resources for business and academia at
www.VintageTech.com *