浏览代码

removed special handling of bootconsole -- objective: unification of efi machine and machine

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@6592 8c9fc860-2736-0410-a75d-ab315db34111
felixf 9 年之前
父节点
当前提交
3c4121fe9e
共有 3 个文件被更改,包括 8 次插入5 次删除
  1. 3 3
      source/EFI.AMD64.Machine.Mod
  2. 1 1
      source/EFI.Tool
  3. 4 1
      source/EFIGraphicalConsole.Mod

+ 3 - 3
source/EFI.AMD64.Machine.Mod

@@ -1904,19 +1904,19 @@ heapEndAdr := 0;
 	freeStackIndex := 0;
 	(* mappings *)
 	mapTop := MapAreaAdr;
-	IF fbadr + 1024 * PS * 10 > mapTop THEN mapTop := fbadr + 1024 * PS * 10 END; (* frame buffer ! *)
+(*	IF fbadr + 1024 * PS * 10 > mapTop THEN mapTop := fbadr + 1024 * PS * 10 END; (* frame buffer ! *)*)
 
 	(* create the address space *)
 	NewPage(kernelPML4); ASSERT(kernelPML4 # NilAdr);
 	Fill32(kernelPML4, TPS, PageNotPresent);
 	IF ~MapDirect(LowAdr, memTop-LowAdr, LowAdr + UserPage) THEN HALT(99) END;	(* map heap direct *)
 	
-	IF ~MapDirect(fbadr, PS*1024*1, fbadr + UserPage) THEN  (* map frame buffer  direct *)
+(*	IF ~MapDirect(fbadr, PS*1024*1, fbadr + UserPage) THEN  (* map frame buffer  direct *)
 		Trace.String("map direct failed at fbadr"); Trace.Address(fbadr); Trace.Ln;
 	ELSE
 		Trace.String("fbuffer mapped"); Trace.Address(fbadr); Trace.Ln;
 	END; 
-
+*)
 END InitPages;
 
 (* Generate a memory segment descriptor. type IN {0..7} & dpl IN {0..3}.

+ 1 - 1
source/EFI.Tool

@@ -60,7 +60,7 @@ StaticLinker.Link --fileName=E:/felix.svn/qemu/disk/A2Loader.efi --fileFormat=EF
 	Runtime Trace EFI EFIMachine EFITrace EFISimpleFS  EFIFileProtocol EFILoadedImage EFIGraphicsOutput EFILib 
 	 EFIGraphicalConsole EFIA2Loader
 ~
-
+~
 
 ** Kernel Image **
 	

+ 4 - 1
source/EFIGraphicalConsole.Mod

@@ -50,7 +50,7 @@ TYPE
 		PROCEDURE Put1(ch: CHAR); BEGIN buffer[pos] := ch; INC(pos) END Put1;
 		PROCEDURE Dimensions(VAR char: Char; dx,x,y,w,h: INTEGER); BEGIN char.dx := dx; char.x := x; char.y := y; char.w := w; char.h := h END Dimensions;
 	BEGIN
-		font.height := 14;
+		font.height := 15;
 		font.minX := 0;
 		font.maxX := 13;
 		font.minY := -4;
@@ -357,10 +357,13 @@ TYPE
 			FOR y0 := font.height TO y+font.height-1 DO
 				sadr := adr + y0*w*depth DIV 8;
 				dadr := adr + (y0-font.height)*w*depth DIV 8;
+				SYSTEM.MOVE(sadr, dadr, w*depth DIV 8 -1);
+				(*
 				FOR x0 := 0 TO w*depth DIV 8-1 DO
 					SYSTEM.GET(sadr+x0,val);
 					SYSTEM.PUT(dadr+x0,val);
 				END;
+				*)
 			END;
 			FOR y0 := y+1 TO h-1 DO
 				dadr := adr + y0*w*depth DIV 8;