Woz Monitor Display Logic

1 post / 0 new
Offline
Last seen: 4 months 1 week ago
Joined: Jun 22 2020 - 10:18
Posts: 1
Woz Monitor Display Logic

Hi all - early Apple fan here, been lurking for years around this great site. Hoping someone who knows more about the Apple I could shed some light on a little problem I've run into.

 

I have a Replica I TE and a print copy of Tom's book. It's been a bucket list project of mine to build a 6502 SBC for a while now, and I decided to finally give it a shot this week. It will be Apple I / Replica I compatible for "simplicity."

I've bult the computer out on a breadboard using the Replica 1 TE schematics as a guide. I'm using the Replica 1, Krusader and Vince's EEPROM burner to get code on the machine. I started free running NOPs, then graduated to putting a pattern on a 6522's ports. All worked well and as expected. I copied the Woz monitor to a ROM, and replaced the VIA with a 6821. Probing its portB pins I saw it was trying to output 0x5c - a backslash. Very cool. 

I figured I was mostly out of the woods and tried to build a serial interface using an Arduino to translate. Based on Tom's description of expected behavior in the "Understanding the Apple I" section, I have the Arduino: wait for DA to be asserted, then write RDA high, read the port, transmit the character via serial, then set DBA low again. I don't understand the purpose of the inverter in that circuit, or the capacitor placement difference in the book vs. TE schematics. For the input, it checks to see if a character has arrived on the serial port, then writes it to the portA pins and asserts STROBE for a few miliseconds. The serial - ASCII code works in my Replica I's ASCII port.

On reset the little computer sends a backslash, then nothing. It won't send the CR or accept any input. I've played around with the timing of DA and DBA quite a bit, but I just can't figure out what is wrong. It doesn't seem like the 6821 is ever clearing the display data control bit.

Is it possible my 6821 is fried? Does anyone know if my understanding is wrong? I've found this section of the book to be the most confusing so far.

 

Thanks for any pointers!