barnacle wrote:
I need one NOR gate anyway so I had three left over
Are you sure that is NOR? I thought I saw OR? A 74HC32 is an OR gate. I think you are using it right, but just clarifying.
Update:
I have been working all morning on getting the keyboard to work through the VIA. And eventually I did! I was copying old code, and that was fine, but some of my newer code was just breaking everything. Eventually I sorted it out after about 5 hours, yay. Then I tested the audio and it worked within 5 minutes, yay.
My hookups:
PA0 = Video Clock
PA1 = Video Data
PA7 = Keyboard Data
CA1 = Keyboard Clock
PB7 = Audio Output (using free-run T1 Timer)
I need to clarify, this is NOT a terminal! When I am hooking a keyboard up to this thing, it is only the PS/2 Connector with some pull-up resistors. It acts more like a breakout board. The keyboard is NOT creating the characters on the screen directly. The keyboard clock is interrupting the 6502 which reads the keyboard data, and when a full byte has been sent, the 6502 then sends a character back to the monitor through a separate serial connection.
I posted all of my schematics and gerbers on GitHub (here
https://github.com/stevenchadburrow/SerialVGA), along with my example assembly code file using all of the features. I hope to eventually make a "User's Guide" for it, though it is honestly VERY simplistic to interface. The hardest part is deciding what you the user wants to do with it. But that's also the fun part
This should easily interface with an Arduino, Raspberry Pi, or any particular microcontroller. The idea was to have something easy to use for newbies, particularly those who have built Garth's "Potpourri" computer (or Ben Eater's 6502 kit, which simply copies Garth's plans). Given this module, they should immediately be able to display a ton of information on the screen, use a full keyboard, and have simple audio. Though this module lacks hardware scrolling, software scrolling is very possible because the total memory used for this module is only 8KB. If the user were to store their characters to RAM and to the module, they could easily run back through RAM to re-write the characters on the screen to a different location. Slow, but effective, and still very simple.
I have no plans on making this any better, because I think it's the best it can be for it's intended purpose. If I were to do a bitmap graphics version, it would need a different way to interface it properly. I also do not plan on making this controlled with a CPLD because the idea was to have the newbie solder this themselves, and then program the ROM's themselves. If I decide to one day make a solderless version, I'll reconsider and use SMT parts instead.
Thank you everyone. Another successful project complete! So, what's next?
Chad