[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