Keyboard interface software
🕑 Added 2021-04-03 07:32:45 +0000 UTCThanks everyone for the feedback on the last video. I appreciate the thoughts in both directions on splitting up the video. The comments that resonated most with me were that the software part felt rushed—I agree. I was trying to squeeze everything into one video, intentionally went through it quickly, and feared it would seem rushed. I got enough comments confirming that fear. So the plan is to add some more detailed explanations of what's going on and add a little more functionality (like handling the shift key).
I just edited the previous post to now link to the final version of the video. So in case you missed it, here's a link to what I cut from that video: https://youtu.be/dstWaNrNgaY
I hope to have a better version of that out in a week or so. Thanks again for your feedback and support.
-Ben
Comments
What happened to the E,RW,RS signals for the lcd and interface adapter, I don't see them being hooked up?
Michael McDonnell
can't you use PHX ( opcode DA) and PLX (opcode FA)?
mayby detect that it is an 'extended' code and not reset the release flag just yet
This RELEASE flag is a nice thing, but when we have multi byte scan codes (like home) it only ignores the first byte.
Michael Maxwell
Do you plan on covering what the internals of the keyboard are doing, like how its generating its clock and data lines and whatnot?
Amos Bannister
The pointers should automatically wrap, but an explicit explanation here might not hurt.
Mark Day
My Apple II nostalgia thanks you for putting the keyboard buffer at $0200 (even if on the Apple II the keyboard was neither interrupt driven, nor had a circular buffer).
Remco van Zuijlen
I didn't notice it in the first edit, but when you wrote the keyboard buffer pointers, around 33s in this video (around a subtle edit), the kb_rptr is changed to address $0100 . I was confused by this, because it's also the stack address. Later (around 6m50) when we see this bit of code in the video again, it is set back to $0001.
Rick Mann
One thing I meant to mention in the last video: do you handle getting to the end of the buffer? My guess is the X register is 8 bits wide so the buffer index auto-wraps, but I didn't hear you mention it (I might've just been distracted).