[SCM] Lisaac compiler branch, master, updated. lisaac-0.12-538-ga0cf231

Benoit Sonntag sonntag at icps.u-strasbg.fr
Thu Nov 12 23:35:03 UTC 2009


The following commit has been merged in the master branch:
commit a0cf231a9a8ba444cd5751bdf81495a662b247e2
Author: Benoit Sonntag <sonntag at icps.u-strasbg.fr>
Date:   Fri Nov 13 00:34:56 2009 +0100

    Final v0.39 beta release

diff --git a/install_lisaac.li b/install_lisaac.li
index e2cc0de..a2ee9a3 100644
--- a/install_lisaac.li
+++ b/install_lisaac.li
@@ -33,7 +33,7 @@ Section Inherit
   
 Section Private  
   
-  - is_release:BOOLEAN := TRUE;
+  - is_release:BOOLEAN := FALSE;
   
   //
   // Independance File System 
diff --git a/lib/internal/os_support/unix/video/event_system.li b/lib/internal/os_support/unix/video/event_system.li
index b2e44fe..3d3d7a1 100644
--- a/lib/internal/os_support/unix/video/event_system.li
+++ b/lib/internal/os_support/unix/video/event_system.li
@@ -97,7 +97,7 @@ Section Public
         //
         // Event Keyboard
         //
-        .when `KeyPress`:INTEGER then {
+        .when `KeyPress`:INTEGER then {          
           KEYBOARD.key `ev.xkey.keycode`:UINTEGER_8 press TRUE;
         }
         .when `KeyRelease`:INTEGER then {
diff --git a/lib/internal/os_support/unix/video/keyboard.li b/lib/internal/os_support/unix/video/keyboard.li
index 48790fd..6466ff5 100644
--- a/lib/internal/os_support/unix/video/keyboard.li
+++ b/lib/internal/os_support/unix/video/keyboard.li
@@ -51,22 +51,37 @@ Section Private
   - ext_key:STRING_CONSTANT := "BUAL REDZIS  HP";
   
   - keyup cu:UINTEGER_8 :UINTEGER_8 <-
-  ( + result:UINTEGER_8;
+  ( + result,pcu:UINTEGER_8;    
+    
+    // Patch 64bits
+    ((UINTEGER_CPU.object_size = 8) && {
+        (cu = 111) || {cu = 113} || {cu = 114} || {cu = 116}
+    }).if {
+      (cu <= 113).if {
+        pcu := cu - 13;
+      } else {
+        pcu := cu - 12;
+      };
+    } else {      
+      pcu := cu;
+    };    
+    // End patch
+    
     cmd := cmd & 0F7h; // Deactivate the cmd bit    
-    //bin_code.put ((bin_code.item (cu>>3)) & ~(1<<(cu&7))) to (cu>>3);
+    //bin_code.put ((bin_code.item (pcu>>3)) & ~(1<<(pcu&7))) to (pcu>>3);
     // Analyze: for deactivate the cmd
-    ((cu = 37) || {cu = 109}).if {
+    ((pcu = 37) || {pcu = 109}).if {
       //CTRL 1 or CTRL2
       cmd := cmd & (~01h);
-    }.elseif { cu = 113 } then {
+    }.elseif { pcu = 113 } then {
       // Alt Gr
       cmd := cmd & (~02h);
-    }.elseif { cu = 64 } then {
+    }.elseif { pcu = 64 } then {
       // Alt
       cmd := cmd & (~04h);      
       result := ascii_code;
       ascii_code := 0;      
-    }.elseif { (cu = 50) || { cu = 62} } then {
+    }.elseif { (pcu = 50) || { pcu = 62} } then {
       // Shift 1 or Shift 2
       cmd := cmd & (~10h);
     };
@@ -74,88 +89,102 @@ Section Private
   );
 
   - keydown cu:UINTEGER_8 :UINTEGER_8 <-
-  ( + result:UINTEGER_8;
+  ( + result,pcu:UINTEGER_8;
+    
+    // Patch 64bits
+    ((UINTEGER_CPU.object_size = 8) && {
+        (cu = 111) || {cu = 113} || {cu = 114} || {cu = 116}
+    }).if {
+      (cu <= 113).if {
+        pcu := cu - 13;
+      } else {
+        pcu := cu - 12;
+      };
+    } else {      
+      pcu := cu;
+    };    
+    // End patch
     
-    //bin_code.put ((bin_code.item (cu>>3)) | (~(1<<(cu&7)))) to (cu>>3); // Activate key
+    //bin_code.put ((bin_code.item (pcu>>3)) | (~(1<<(pcu&7)))) to (pcu>>3); // Activate key
     // Analyze: for activate the cmd
-    ((cu = 37) || {cu = 109}).if {
+    ((pcu = 37) || {pcu = 109}).if {
       //CTRL1 or CTRL2
       cmd := cmd | 01h;
-    }.elseif { cu = 113 } then {
+    }.elseif { pcu = 113 } then {
       // Alt Gr
       cmd := cmd | 02h;
-    }.elseif { cu = 64 } then {
+    }.elseif { pcu = 64 } then {
       // Alt
       cmd := cmd | 04h;    
-    }.elseif { cu = 65 } then {
+    }.elseif { pcu = 65 } then {
       // Space
       result := ' '.to_uinteger_8;      
-    }.elseif { (cu = 50) || { cu = 62} } then {
+    }.elseif { (pcu = 50) || { pcu = 62} } then {
       // Shift 1 or Shift 2
       cmd := cmd | 10h;
       ((cmd & 20h)!=0).if {
 	cmd := cmd & (~20h);
 	//light;
       };
-    }.elseif { cu = 66 } then {
+    }.elseif { pcu = 66 } then {
       // Cap
       cmd := cmd ^ 20h;
       //light;
-    }.elseif { cu = 77 } then {
+    }.elseif { pcu = 77 } then {
       // Num Lock
       cmd := cmd ^ 40h;
-    }.elseif { cu = 78 } then {
+    }.elseif { pcu = 78 } then {
       // Scroll Lock
       cmd := cmd ^ 80h;
-    }.elseif { cu = 9 } then {
+    }.elseif { pcu = 9 } then {
       // Esc
       cmd :=  cmd | 08h;
       result := 27;
-    }.elseif {((cmd&2)!=0) && {cu.in_range 10 to 21}} then {
+    }.elseif {((cmd&2)!=0) && {pcu.in_range 10 to 21}} then {
       cmd :=  cmd & (~02h);
-      result := alt_gr.item (cu-9).to_uinteger_8;
-    }.elseif {cu.in_range 10 to 61} then {
+      result := alt_gr.item (pcu-9).to_uinteger_8;
+    }.elseif {pcu.in_range 10 to 61} then {
       ((cmd & 30h)=0).if {
-	result := lower_case.item (cu-9).to_uinteger_8;
+	result := lower_case.item (pcu-9).to_uinteger_8;
       } else {
-	result := upper_case.item (cu-9).to_uinteger_8;
+	result := upper_case.item (pcu-9).to_uinteger_8;
       };
       (result <= 13).if {
 	cmd := cmd | 08h;
       };	
-    }.elseif {cu = 63} then {
+    }.elseif {pcu = 63} then {
       result := '*'.to_uinteger_8;
-    }.elseif {cu.in_range 67 to 76} then {
+    }.elseif {pcu.in_range 67 to 76} then {
       cmd :=  cmd | 08h;      // F1 to F10 = cmd
-      result :=  cu - 67 + 'a'.to_uinteger_8;  // 'a' to 'j'
-    }.elseif {cu.in_range 79 to 91} then {  
+      result :=  pcu - 67 + 'a'.to_uinteger_8;  // 'a' to 'j'
+    }.elseif {pcu.in_range 79 to 91} then {  
       ((cmd & 40h) = 0).if {
 	// Ver num off
-	result := num_off.item (cu-78).to_uinteger_8;
+	result := num_off.item (pcu-78).to_uinteger_8;
 	(result.to_character.in_range 'A' to 'Z').if {
 	  cmd := cmd | 8h;
 	};
       } else {
 	// Verr num on
-	result := num_on.item (cu-78).to_uinteger_8;
+	result := num_on.item (pcu-78).to_uinteger_8;
 	((cmd & 4) != 0).if {
 	  ascii_code := ascii_code * 10 + (result-'0'.to_uinteger_8);
 	  result := 0;
 	};
       };
-    }.elseif {(cu = 95) || {cu = 96}} then { 
+    }.elseif {(pcu = 95) || {pcu = 96}} then { 
       cmd :=  cmd | 08h;      // F11 to F12 = cmd
-      result :=  cu - 95 + 'k'.to_uinteger_8;  // 'k' to 'l'
-    }.elseif {cu = 94} then {
+      result :=  pcu - 95 + 'k'.to_uinteger_8;  // 'k' to 'l'
+    }.elseif {pcu = 94} then {
       ((cmd & 30h)=0).if {
 	result := '<'.to_uinteger_8;
       } else {
 	result := '>'.to_uinteger_8;
       };
-    }.elseif {cu.in_range 97 to 111} then {
+    }.elseif {pcu.in_range 97 to 111} then {
       cmd := cmd | 08h;
-      result := ext_key.item (cu-96).to_uinteger_8;       
-    }.elseif {cu = 112} then {
+      result := ext_key.item (pcu-96).to_uinteger_8;       
+    }.elseif {pcu = 112} then {
       result := '/'.to_uinteger_8;
     };
     result
diff --git a/lib/internal/os_support/windows/file_system/directory_unix.li b/lib/internal/os_support/windows/file_system/directory_unix.li
index a8da82e..3bd6a15 100644
--- a/lib/internal/os_support/windows/file_system/directory_unix.li
+++ b/lib/internal/os_support/windows/file_system/directory_unix.li
@@ -46,7 +46,7 @@ Section Inherit
   
   + parent_directory:Expanded DIRECTORY;
   
-Section Private  
+Section Public
   
   //
   // Physical implementation.

-- 
Lisaac compiler



More information about the Lisaac-commits mailing list