SqueakVM help for OLPC

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

SqueakVM help for OLPC

Chris Petsos
 
Ok... this is the point i am now...
 
in file sqWin32Window.c there is...
 
/* The following is a mapping to Mac Roman glyphs.
   It is not entirely correct since a number of glyphs are
   different but should be good enough for Squeak.
   More significantly, we can now map in both directions. */
static unsigned char keymap[256] =
{
  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
173,176,226,196,227,201,160,224,246,228,178,220,206,179,182,183,
184,212,213,210,211,165,208,209,247,170,185,221,207,186,189,217,
202,193,162,163,219,180,195,164,172,169,187,199,194,197,168,248,
161,177,198,215,171,181,166,225,252,218,188,200,222,223,240,192,
203,231,229,204,128,129,174,130,233,131,230,232,237,234,235,236,
245,132,241,238,239,205,133,249,175,244,242,243,134,250,251,167,
136,135,137,139,138,140,190,141,143,142,144,145,147,146,148,149,
253,150,152,151,153,155,154,214,191,157,156,158,159,254,255,216
};
 
which is then used by
 
int recordKeyboardEvent(MSG *msg) {
...
  ctrl = GetKeyState(VK_CONTROL) & 0x8000;
  /* now the key code */
  virtCode = mapVirtualKey(msg->wParam);
  keyCode = keymap[msg->wParam];    // HERE
  /* press code must differentiate */
  switch(msg->message) {
    case WM_KEYDOWN:
...
}
 
The thing is that
    msg->wParam
looks like it sends 8-bit CP1253 charcodes in the range [0...255].
(Did i mention that i am trying to make it work in a Windows system?...well i am...)
 
What can i do to retrieve Unicode charcodes?
 
Christos
Reply | Threaded
Open this post in threaded view
|

Re: SqueakVM help for OLPC

Bert Freudenberg
 
On May 17, 2007, at 10:39 , Chris Petsos wrote:

> The thing is that
>     msg->wParam
> looks like it sends 8-bit CP1253 charcodes in the range [0...255].
> (Did i mention that i am trying to make it work in a Windows  
> system?...well i am...)
>
> What can i do to retrieve Unicode charcodes?

Dig through Microsoft's documentation or ask some Windows programmers  
- this is not actually a Squeak problem. Once you figure that out it  
should be fairly simple to add to the Squeak VM (though it might  
break stuff, but for your own development it should be fine).

Still - why do you bother with the Windows VM when you want to  
develop for OLPC? Install Linux, either as dual-boot or in an  
emulator (Qemu is free and works nicely), and concentrate on the  
actual problems rather than fictive ones. That way you can also  
experience and test the Sugar integration we are working on.

- Bert -


Reply | Threaded
Open this post in threaded view
|

Re: SqueakVM help for OLPC

Chris Petsos
 
On Thu, 2007-05-17 at 12:51 +0200, Bert Freudenberg wrote:

>  On May 17, 2007, at 10:39 , Chris Petsos wrote:
>
> > The thing is that
> >     msg->wParam
> > looks like it sends 8-bit CP1253 charcodes in the range [0...255].
> > (Did i mention that i am trying to make it work in a Windows  
> > system?...well i am...)
> >
> > What can i do to retrieve Unicode charcodes?
>
> Dig through Microsoft's documentation or ask some Windows programmers  
> - this is not actually a Squeak problem. Once you figure that out it  
> should be fairly simple to add to the Squeak VM (though it might  
> break stuff, but for your own development it should be fine).

OK, i'll do that...

> Still - why do you bother with the Windows VM when you want to  
> develop for OLPC? Install Linux, either as dual-boot or in an  
> emulator (Qemu is free and works nicely), and concentrate on the  
> actual problems rather than fictive ones. That way you can also  
> experience and test the Sugar integration we are working on.

The localisation of the Unix VM is assigned to someone else...
As i told you before, the Windows VM needs to support Unicode too cause
educational material for eToys is going to be written by people
(teachers) that do not have Unix boxes nor they want to be familiar with
Unix so they will be using their Windows platforms to write Etoys.
If we fix around things in Windows in a non-Unicode way, and make the
Unix VM Unicode we will have compatibility problems in font using,
character encoding and other things.
That is why Windows VM needs to be hacked in order to suppport
Unicode...

Whatsoever...thanks for everything!

Christos

Reply | Threaded
Open this post in threaded view
|

Re: SqueakVM help for OLPC

Andreas.Raab
In reply to this post by Chris Petsos
 
Chris Petsos wrote:
> The thing is that
>     msg->wParam
> looks like it sends 8-bit CP1253 charcodes in the range [0...255].
> (Did i mention that i am trying to make it work in a Windows
> system?...well i am...)
>  
> What can i do to retrieve Unicode charcodes?

Handle WM_UNICHAR (http://msdn2.microsoft.com/en-us/library/ms646288.aspx).

Cheers,
   - Andreas
Reply | Threaded
Open this post in threaded view
|

Re: SqueakVM help for OLPC

johnmci
 
Just to remind folks, having it work like the mac vm would be a good  
thing.

utf32Code  is the field that is used to contain the unicode value in  
the sqKeyboardEvent structure.

This value is 0, unless the event type is EventKeyChar then utf32Code  
is the unicode value.

Also in the mac vm we generate synthetic cursor up/down/left/right  
keystrokes for scroll wheel mice.
So at that point we pass the ascii value of the cursor movement value  
as the EventKeyChar  based utf32Code.


There was if you all recall discussion about

>> Subject: sq.h changes, grabbed reserved field in sqKeyboardEvent
>> Date: March 29, 2006 1:59:49 PM PST (CA)
>>
>> key down
>> charCode:   a magic number mapping to a key on the keyboard,  
>> different between mac/windows
>> pressCode the utf-32 value of the key pressed
>> additionalData the macroman value of the key pressed
>>
>> key char
>> charCode the macroman value of the key pressed
>> pressCode the utf-32 value of the key pressed
>> additionalData a magic number mapping to a key on the keyboard,  
>> different between mac/windows
>>
>>
>> key up
>> charCode:   a magic number mapping to a key on the keyboard,  
>> different between mac/windows
>> pressCode the utf-32 value of the key pressed
>> additionalData the macroman value of the key pressed


So if we are going to provide unicode values in the windows vm, do we  
want to revisit the issues with
key up/down/char again? I believe Bert was the one struggling with  
Sophie at the time and trying to
resolve keys pressed versus what ends up in Tweak?

On May 17, 2007, at 8:28 AM, Andreas Raab wrote:

> Chris Petsos wrote:
>> The thing is that
>>     msg->wParam
>> looks like it sends 8-bit CP1253 charcodes in the range [0...255].
>> (Did i mention that i am trying to make it work in a Windows  
>> system?...well i am...)
>>  What can i do to retrieve Unicode charcodes?
>
> Handle WM_UNICHAR (http://msdn2.microsoft.com/en-us/library/ 
> ms646288.aspx).
>
> Cheers,
>   - Andreas

--
========================================================================
===
John M. McIntosh <[hidden email]>
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
========================================================================
===


Reply | Threaded
Open this post in threaded view
|

Re: SqueakVM help for OLPC

Andreas.Raab
 
Hi John -

Sorry but I have no time to revisit these issues right now. The original
thread is still somewhere on the web if anyone is interested and I
welcome patches.

Cheers,
   - Andreas

John M McIntosh wrote:

>
> Just to remind folks, having it work like the mac vm would be a good thing.
>
> utf32Code  is the field that is used to contain the unicode value in the
> sqKeyboardEvent structure.
>
> This value is 0, unless the event type is EventKeyChar then utf32Code is
> the unicode value.
>
> Also in the mac vm we generate synthetic cursor up/down/left/right  
> keystrokes for scroll wheel mice.
> So at that point we pass the ascii value of the cursor movement value as
> the EventKeyChar  based utf32Code.
>
>
> There was if you all recall discussion about
>
>>> Subject:     sq.h changes, grabbed reserved field in sqKeyboardEvent
>>>     Date:     March 29, 2006 1:59:49 PM PST (CA)
>>>
>>> key down
>>> charCode:      a magic number mapping to a key on the keyboard,
>>> different between mac/windows
>>> pressCode    the utf-32 value of the key pressed
>>> additionalData    the macroman value of the key pressed
>>>
>>> key char
>>> charCode    the macroman value of the key pressed
>>> pressCode    the utf-32 value of the key pressed
>>> additionalData    a magic number mapping to a key on the keyboard,
>>> different between mac/windows
>>>
>>>
>>> key up
>>> charCode:      a magic number mapping to a key on the keyboard,
>>> different between mac/windows
>>> pressCode    the utf-32 value of the key pressed
>>> additionalData    the macroman value of the key pressed
>
>
> So if we are going to provide unicode values in the windows vm, do we
> want to revisit the issues with
> key up/down/char again? I believe Bert was the one struggling with
> Sophie at the time and trying to
> resolve keys pressed versus what ends up in Tweak?
>
> On May 17, 2007, at 8:28 AM, Andreas Raab wrote:
>
>> Chris Petsos wrote:
>>> The thing is that
>>>     msg->wParam
>>> looks like it sends 8-bit CP1253 charcodes in the range [0...255].
>>> (Did i mention that i am trying to make it work in a Windows
>>> system?...well i am...)
>>>  What can i do to retrieve Unicode charcodes?
>>
>> Handle WM_UNICHAR
>> (http://msdn2.microsoft.com/en-us/library/ms646288.aspx).
>>
>> Cheers,
>>   - Andreas
>
> --
> ===========================================================================
> John M. McIntosh <[hidden email]>
> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
> ===========================================================================
>
>