Browse Source

Unified diverging versions

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8072 8c9fc860-2736-0410-a75d-ab315db34111
negelef 7 years ago
parent
commit
53b6d2e4ea
2 changed files with 10 additions and 10 deletions
  1. 7 6
      source/BIOS.AMD64.Keyboard.Mod
  2. 3 4
      source/BIOS.I386.Keyboard.Mod

+ 7 - 6
source/BIOS.AMD64.Keyboard.Mod

@@ -99,10 +99,11 @@ VAR
 
 PROCEDURE TableUS(): ADDRESS;
 CODE {SYSTEM.AMD64}
-	LEA RAX, [RIP + L2 - L1];
+	CALL L1
 L1:
-	LEAVE
-	RET
+	POP RAX
+	ADD RAX, L2 - L1
+	JMP DWORD L3
 L2:
 		; alphabet
 	DB 1EH, 'a', 'A', 4H,	30H, 'b', 'B', 4H,	2EH, 'c', 'C', 4H,	20H, 'd', 'D', 4H
@@ -210,6 +211,7 @@ L2:
 	DB 57H, 0FBH, 0FFH, 0H	; F11
 	DB 58H, 0FCH, 0FFH, 0H	; F12
 	DB 0FFH
+L3:
 END TableUS;
 
 PROCEDURE TableFromFile(name: ARRAY OF CHAR): ADDRESS;
@@ -510,8 +512,7 @@ END InitKeyboard;
 PROCEDURE SetLayout*(context : Commands.Context); (** KeyboardLayoutFile ~ *)
 VAR layoutFilename : ARRAY 256 OF CHAR;
 BEGIN {EXCLUSIVE}
-	IF (keyboard # NIL) THEN
-		context.arg.GetString(layoutFilename);
+	IF (keyboard # NIL) & context.arg.GetString(layoutFilename) THEN
 		table := TableFromFile(layoutFilename);
 	ELSE
 		context.error.String("Keyboard: No keyboard found."); context.error.Ln;
@@ -543,4 +544,4 @@ Keyboard.Install ~
 Keyboard.SetLayout KeyCH.Bin ~
 Keyboard.SetLayout KeyUS.Bin ~
 
-System.Free Keyboard ~
+System.Free Keyboard ~

+ 3 - 4
source/BIOS.I386.Keyboard.Mod

@@ -102,7 +102,7 @@ CODE {SYSTEM.i386}
 	CALL L1
 L1:
 	POP EAX
-	ADD EAX, DWORD L2-L1
+	ADD EAX, L2 - L1
 	JMP DWORD L3
 L2:
 		; alphabet
@@ -512,8 +512,7 @@ END InitKeyboard;
 PROCEDURE SetLayout*(context : Commands.Context); (** KeyboardLayoutFile ~ *)
 VAR layoutFilename : ARRAY 256 OF CHAR;
 BEGIN {EXCLUSIVE}
-	IF (keyboard # NIL) THEN
-		context.arg.GetString(layoutFilename);
+	IF (keyboard # NIL) & context.arg.GetString(layoutFilename) THEN
 		table := TableFromFile(layoutFilename);
 	ELSE
 		context.error.String("Keyboard: No keyboard found."); context.error.Ln;
@@ -545,4 +544,4 @@ Keyboard.Install ~
 Keyboard.SetLayout KeyCH.Bin ~
 Keyboard.SetLayout KeyUS.Bin ~
 
-System.Free Keyboard ~
+System.Free Keyboard ~