<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta content="text/html;charset=UTF-8" http-equiv="Content-Type"></head><body ><div style='font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif;'>To reverse a MorphicEvent into an primitive event I need to unmap the buttons and modifiers.<br>In a primitive event, the fifth element (buttons) can be 1,2 or 4 and the sixth element (modifiers)&nbsp; 1,2,4 or 8.<br><br>HandMorph &gt;&gt; generateMouseEvent combines them into one field as such:<br><br><br><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div>&nbsp;&nbsp;&nbsp; buttons := evtBuf fifth.<br>&nbsp;&nbsp;&nbsp; modifiers := evtBuf sixth.<br>&nbsp;&nbsp;&nbsp; buttons := buttons bitOr: (modifiers bitShift: 3).<br></div></blockquote> <br>I need to reverse that&nbsp;&nbsp; "buttons bitOr: (modifiers bitShift: 3)" back into the original values to recreate the primitive event.<br>Here are the possible values of B(uttons) and M(odifiers) under that operation:<br><br><br><u><b>B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; M&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MAP</b></u><br>1 bitOr:(1 bitShift:3 ) 9<br>1 bitOr:(2 bitShift:3 ) 17<br>1 bitOr:(4 bitShift:3 ) 33<br>1 bitOr:(8 bitShift:3 ) 65<br><br><br>2 bitOr:(1 bitShift:3 )&nbsp; 10<br>2 bitOr:(2 bitShift:3 )&nbsp; 18<br>2 bitOr:(4 bitShift:3 )&nbsp; 34<br>2 bitOr:(8 bitShift:3 )&nbsp; 66<br><br><br>4 bitOr:(1 bitShift:3 )&nbsp;&nbsp; 12<br>4 bitOr:(2 bitShift:3 )&nbsp;&nbsp; 20<br>4 bitOr:(4 bitShift:3 )&nbsp;&nbsp; 36<br>4 bitOr:(8 bitShift:3 )&nbsp;&nbsp; 68<br><br>So, given a MAP on the right, I need to derive a B and a M.<br><br>I can figure something out, but it will probably be ugly. Hence, this email to the list.<br>Any bit-fiddlers on the board who know an elegant method?<br><br>thx.<br><br>tty.<br><br></div></body></html>