keyboard concerns

grommile

New Member
Nov 24, 2019
20
8
3
Northampton, UK
I was looking at the I/O and memory layout in the X16 documentation, and I noticed that the PS/2 keyboard signals are just plumbed through to a couple of pins on a VIA.

Unless I've missed something, that setup feels both CPU-intensive (0.6 to 1.1 ms per event depending on how fast a clock the keyboard is generating) and unreliable (if you miss the start bit, you lose an event).

I'm sure I've missed something, of course :)
 
May 22, 2019
662
313
63
You are probably right, on both counts. It remains to be seen how effective the PS/2 input will be without a dedicated controller.

It wouldn't be hard to implement a keyboard controller on a dedicated microcontroller, and there are some super-cheap MCPs that could do the job. We'll see what happens as the hardware nears completion.
 

BruceMcF

Active Member
May 19, 2019
208
63
28
I was looking at the I/O and memory layout in the X16 documentation, and I noticed that the PS/2 keyboard signals are just plumbed through to a couple of pins on a VIA.

Unless I've missed something, that setup feels both CPU-intensive (0.6 to 1.1 ms per event depending on how fast a clock the keyboard is generating) and unreliable (if you miss the start bit, you lose an event).

I'm sure I've missed something, of course :)
Somewhere in the firmware code will be the routines where they set up the VIA for the PS/2 keyboard and where they handle events, so how they handle detecting the start bit and if there is interrupt processing involved, that would seem to be information that could be uncovered be rummaging around on the Github.
 

vladthodo

New Member
Feb 19, 2020
2
3
3
Somewhere in the firmware code will be the routines where they set up the VIA for the PS/2 keyboard and where they handle events, so how they handle detecting the start bit and if there is interrupt processing involved, that would seem to be information that could be uncovered be rummaging around on the Github.
I think this is the file, either this or one of the other files in the driver directory. I'm not so familiar with 6502 assembly though and I'm currently on mobile at school so can't really check the code.