M200 interfacing

From: Sellam Ismail <foo_at_siconic.com>
Date: Sun Dec 29 22:41:00 2002

On Sun, 29 Dec 2002, Tony Duell wrote:

> If oyu designed/built it, then it almost certainly used standard chips.
> In which case it would be possible to reverse-engineer it in a couple of
> hours at most. Probably less time than it would take to find the notes.

It's actually two chips: the 6522 and an 7473 that is either used to map
the addressing of the timers and registers into the Apple's memory bus or
to invert one of the Apple's clock signals to be compatible with the 6522
(I can't remember for sure...maybe it does both).

> My experience is that if you designed something you never really forget
> what you did. So you'll find all the tricks come back to you as you start
> looking at the circuitry.

I didn't design it. I just built it from plans :(

> If you've got 2 16 bit ports + a 4 bit port you must have 2 6522s (for
> the 32 data lines). The 4 bits could be some combination of the CA and CB
> lines of the VIAs (4 lines per chip).

No, two 16-bit timers/registers and two 8-bit ports, plus the CA and CB
lines (2 bits each).

> It sounds like you really need a 6522 data sheet and/or the Beeb Advanced
> User Guide (which has a fair amount of 6522 programming info in it.

I have a data sheet. I just haven't had a chance to study it yet.

> A single 6522 takes up 16 bytes. If it's wired conventionally, the
> registers are :
>
> 0 : Port B (Write : output register, Read : Input register)
> 1 : Port A
> 2 : Direction Register B
> 3 : Direction Register A
> 4 : T1 low counter byte (timer)
> 5 : T1 high counter byte
> 6 : T1 latch low byte
> 7 : T1 latch high byte
> 8 : T2 low byte
> 9 : T2 high byte
> 10 : Shift register
> 11 : Aux control register
> 12 : Peripehral control register
> 13 : Interrupt flag register
> 14 : Interrupt enable register
> 15 : Port A (but with no handshake)

That looks very close to what I know I have, and being that the board was
designed by a student of the same class a few years before I took it, I
would imagine it is probably wired "conventionally".

Thanks for that!

> Most likely you had interrupts enabled, the 6522 generated an interrupt,
> and the Apple wwnt off to never-never land because the interrupt vector
> didn't point anywhere sane.

At the time I was probing a ground pin in Slot 1 but I don't think I did
anything to reset the machine. I could swear a RESET was generated
because it spontaneously reset. Whatever.

> Err, some of those keyboard lines (I forget if it's the X or Y signals)
> are _outputs_. The keyboard encoder chip scans them -- asserts them one
> at a time -- and looks for a signal on the other set of lines. If it
> finds one, then it knows that a key has been pressed, connecting one X
> line to one Y line.

Oh.

(Shucks.)

> The keyboard also can't sent more than 128 different characters to the
> Apple (it's read in on a 7 bit port -- the 8th bit is the keyboard strobe
> line, indicating that a key has been pressed). If you really want to use
> the keyboard port for a reader input, then you're better off attacking it
> at this interface -- the cable between the keyboard assembly and the CPU
> board.

Oh, well that's what I was considering doing. At that point it's a TTL
parallel input, correct?

> It's true for 'normal' characters. It breaks for many punctuation and
> special symbols, and it breaks bigtime for binary cards (where any
> combination of holes -- including all holes -- is possible).

Yes, but for run of the mill cards it would work pretty well. The problem
with the 6522 is the kludge connector I've made up. I have to come up
with something more elegant (and permanent).

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 *
Received on Sun Dec 29 2002 - 22:41:00 GMT

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:34:42 BST