I tested this and the keyboard is having significant problems. For example typing R gives H, A gives @, etc. The current svn works properly.
Yes, it's a weird side-effect of the change I explain
at this post.
In MC-1000, the joystick positions & buttons are equivalent to the pressing of certain keys:
- Player one: up=I, down=Q, right=Y, left=1, button=9;
- Player two: up=H, down=P, right=X, left=0, button=@
In the current svn, these keys are defined only as IPT_JOYSTICK_... ports. When you PASTE a text to the emulation, the corresponding characters are not inserted because MESS doesn't find a corresponding IPT_KEYBOARD port for them.
(Paste
10 PRINT "HELLO WORLD" and you'll see only
RNT "ELLO WORLD"It works when a PERSON types something, though, because, in the code, the joystick lines are "wired" to the keyboard lines.
What did I do? Defined separate, proper ports for the keyboard and joystick, and then "wired" them.
It did work (now pasting a text to the emulation does work... But now MESS' own keyboard mapping of joystick is causing that weird side-effect.
MESS keyboard-to-joystick mapping is:
- Player one: up=UP, down=DOWN, right=RIGHT, left=LEFT, button=LEFT CTRL;
- Player two: up=R, down=F, right=G, left=D, button=A
What is happening is that MESS is mapping these keys to the keys above, and we have:
- UP->I, DOWN->Q, RIGHT->Y, LEFT->1, LEFT CTRL->9 (in fact, we get the equivalent to CTRL+9);
- R->H, F->P, G->X, D->0, A->@
But it is enabled by default, so the keyboard is confused.
Probably, disabling MESS' keyboard-to-joystick mapping should solve the problem, but how can we do it?
In mc1000.ini I found an option "joystick" with value "1"; I changed it to "0", but the mapping is STILL enabled.
HOW CAN WE DISABLE MESS' JOYSTICK MAPPING when the machine starts, in a way that the user can enable it only when needed (i.e., to play a game using the arrow keys)?