[squeak-dev] VM side EventSensor design questions

Igor Stasenko siguctua at gmail.com
Thu Jun 25 08:31:42 UTC 2009


Here the topic which completely covers all the differences of keyboard
keys mapping on 3 main OSes

http://classicteck.com/rbarticles/mackeyboard.php

if we extract the data from there, we can add this information to
events (in keyboard event record there are unused slots)
so, then at image side we can translate the key presses completely
without dependency from OS.
I mean, you can make 'A' key work as 'shift' key etc :)

P.S. Of someone of you had luck working on Yamaha PCs , especially on
Yahama 2 - with slim keyboard!!
This was a best keyboard i ever seen since late of 1980's . Only last
5 years a PC market producing a similar keyboards with touch & feel.
Concerning technical decision, how they made a keyboards:
- there was a memory region (or io ports region - don't remember
exactly), which on read, gives you a bit map, which shows what keys
are currently held down (with 1's ) and what is not (with 0's). There
was no difference how much keys you press down - all of them is
reported in this key bitfield. In contrast, on PCs there was some
defective (by design) keyboards, which can't handle more than 4 keys
pressed. This was especially annoying , when you playing a Mortal
Combat with friend in a hot seat (both have to hold multiple keys) -
if you hold down more than a 4 keys, keyboard starts beeping and
ignoring input. And one of players starts losing , because can't
control his character. Not very fun gameplay :)

In contrast, on Yamaha (years before PC's swallowed the market), all
keys, no matter how many of them is held down is reported & handled.
There also, was a different keyboard repeat handling (which i REALLY
miss on PC):
If you first press 'a', and hold it down, then press 'b' and hold it
too, after delay, it starts repeating these keys in same sequence as
you pressed them:
abababab

so, without any software , which supports text formatting/macros/other
helpers, you can format your code just using keyboard.
For instance, if you want to indent multiple lines of text, you can
quickly press and hold following keys:
- tab
- down arrow
- home

and obviously, if you repeat the keystrokes in such order, your text
will start indenting untill you think its enough.
There were many possible combinations, which you will never have a
chance to repeat on PC's , even if you have an uber-text-macro helpers
:)
Such a little difference - but such huge usability effect.

2009/6/25 Michael Rueger <m.rueger at acm.org>:
> Bert Freudenberg wrote:
>>
>> On 24.06.2009, at 05:06, John McIntosh wrote:
>>
>>> Everything you want to know is documented here
>>> http://isqueak.org/ioGetNextEvent
>>>
>>> but I might have missed something or things have changed since last fall
>>
>>
>> Yes, after a lot of tweaking, Unicode keyboard stroke events are believed
>> to work fine in the Unix VM now.
>
> Unless you have a composing keyboard, which gives you really interesting
> event sequences...
>
> Michael
>
>
>



-- 
Best regards,
Igor Stasenko AKA sig.



More information about the Squeak-dev mailing list