The VIC-20 emulation wasn't letting me enter in the * character to the VIC-20. There seems to be two issues: the first is that the * appears in both the shifted and unshifted tables (systems/vic20.h), but chips/kbd.h:kbd_register_key() only permits one mask per key if I'm understanding the code correctly. However, once the additional * is removed from the shifted table by replacing it with a space, I could generate a * and ) but not ( any more (for my keyboard, * ( ) are shift+8 9 0 respectively). A real VIC-20 keyboard has its parens over 8 and 9, and I was able to fix both these issues here by changing:
https://github.com/floooh/chips/blob/bd1ecff58337574bb46eba5e7e16937899360e56/systems/vic20.h#L589C9-L590C19
to
The VIC-20 emulation wasn't letting me enter in the
*character to the VIC-20. There seems to be two issues: the first is that the*appears in both the shifted and unshifted tables (systems/vic20.h), but chips/kbd.h:kbd_register_key() only permits one mask per key if I'm understanding the code correctly. However, once the additional*is removed from the shifted table by replacing it with a space, I could generate a*and)but not(any more (for my keyboard,* ( )are shift+8 9 0 respectively). A real VIC-20 keyboard has its parens over 8 and 9, and I was able to fix both these issues here by changing:https://github.com/floooh/chips/blob/bd1ecff58337574bb46eba5e7e16937899360e56/systems/vic20.h#L589C9-L590C19
to