Selaa lähdekoodia

added console application linker (for command line compiler)

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@6467 8c9fc860-2736-0410-a75d-ab315db34111
felixf 9 vuotta sitten
vanhempi
commit
5171c01345
1 muutettua tiedostoa jossa 13 lisäystä ja 1 poistoa
  1. 13 1
      source/StaticLinker.Mod

+ 13 - 1
source/StaticLinker.Mod

@@ -1,6 +1,6 @@
 MODULE StaticLinker;	(* AUTHOR "negelef"; PURPOSE "Static Object File Linker"; *)
 
-IMPORT Commands, Options, Diagnostics, Files, GenericLinker, ObjectFile, BitSets, Strings, Streams, D:=Debugging;
+IMPORT Commands, Options, Diagnostics, Files, GenericLinker, ObjectFile, BitSets, Strings, Streams;
 
 TYPE
 	ExportName = ARRAY 128 OF CHAR;
@@ -235,9 +235,11 @@ BEGIN
 	
 	end := (size-1) DIV bitsPerLine + 1;
 	
+	(*
 	D.String("bits per line: ");D.Int(bitsPerLine,0);
 	D.String("  number of bits: ");D.Int(size,0);
 	D.String("  number of words: ");D.Int(end,0);D.Ln;
+	*)
 	
 	nonZeroInLeadingNibble:=bitsPerLine MOD 4;
 	FOR i := 0 TO end-1 DO
@@ -623,6 +625,14 @@ PROCEDURE WritePE64File (linker: GenericLinker.Linker; arrangement: Arrangement;
 BEGIN WritePEFile (linker, arrangement, writer, 64, 2, FALSE);
 END WritePE64File;
 
+PROCEDURE WritePE32CUIFile (linker: GenericLinker.Linker; arrangement: Arrangement; writer: Files.Writer);
+BEGIN WritePEFile (linker, arrangement, writer, 32, 3, FALSE);
+END WritePE32CUIFile;
+
+PROCEDURE WritePE64CUIFile (linker: GenericLinker.Linker; arrangement: Arrangement; writer: Files.Writer);
+BEGIN WritePEFile (linker, arrangement, writer, 64, 3, FALSE);
+END WritePE64CUIFile;
+
 PROCEDURE WriteEFI32File (linker: GenericLinker.Linker; arrangement: Arrangement; writer: Files.Writer);
 BEGIN WritePEFile (linker, arrangement, writer, 32, 10, FALSE);
 END WriteEFI32File;
@@ -797,6 +807,8 @@ BEGIN
 	ELSIF format = "TRMData" THEN RETURN WriteTRMDataFile;
 	ELSIF format = "PE32" THEN RETURN WritePE32File;
 	ELSIF format = "PE64" THEN RETURN WritePE64File;
+	ELSIF format = "PE32CUI" THEN RETURN WritePE32CUIFile;
+	ELSIF format = "PE64CUI" THEN RETURN WritePE64CUIFile;
 	ELSIF format = "EFI32" THEN RETURN WriteEFI32File;
 	ELSIF format = "EFI64" THEN RETURN WriteEFI64File;
 	ELSIF format = "ELF" THEN RETURN WriteELFFile;