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