Переглянути джерело

Patches for ActiveCells3

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@6541 8c9fc860-2736-0410-a75d-ab315db34111
felixf 9 роки тому
батько
коміт
320bd48c39

BIN
source/Fox.Tool


+ 0 - 1
source/FoxCompiler.Mod

@@ -311,7 +311,6 @@ TYPE
 		options.Add(0X,"singleModule",Options.Flag);
 		options.Add(0X, "symbolFile", Options.String);
 		options.Add(0X, "objectFile", Options.String);
-		options.Add(0X,"activeCells", Options.Flag);
 		options.Add("w","warnings", Options.Flag);
 		options.Add(0X,"darwinHost", Options.Flag);
 		options.Add(0X,"hardware", Options.String);

+ 4 - 4
source/FoxIntermediateLinker.Mod

@@ -1268,7 +1268,7 @@ TYPE
 		END;
 	END Link;
 	
-	PROCEDURE WriteCodeAndDataFiles*(CONST instanceName: ARRAY OF CHAR; objectFile: Formats.ObjectFileFormat; VAR instructionMemorySize, dataMemorySize: LONGINT; backend: Backend.Backend;  diagnostics: Diagnostics.Diagnostics; log:Streams.Writer): BOOLEAN;
+	PROCEDURE WriteCodeAndDataFiles*(CONST instanceName: ARRAY OF CHAR; CONST codeFileExtension, dataFileExtension: ARRAY OF CHAR; objectFile: Formats.ObjectFileFormat; VAR instructionMemorySize, dataMemorySize: LONGINT; backend: Backend.Backend;  diagnostics: Diagnostics.Diagnostics; log:Streams.Writer): BOOLEAN;
 	VAR code, data: StaticLinker.Arrangement; linker: GenericLinker.Linker; linkerLog: Files.Writer;
 			logFile: Files.File; 
 			objectFileExtension: ARRAY 32 OF CHAR;
@@ -1277,7 +1277,7 @@ TYPE
 			system: Global.System;
 			msg: ARRAY 256 OF CHAR;
 	CONST MinimalStackSize = 64;
-	CONST CodeFileExtension="code"; DataFileExtension="data";
+	(*CONST CodeFileExtension="code"; DataFileExtension="data";*)
 	BEGIN
 		error := FALSE;
 		NEW (code, 0); NEW (data, 0);
@@ -1306,8 +1306,8 @@ TYPE
 					error := TRUE;
 				END;
 
-				Files.JoinExtension(instanceName,CodeFileExtension,codeFileName);
-				Files.JoinExtension(instanceName,DataFileExtension,dataFileName);
+				Files.JoinExtension(instanceName,codeFileExtension,codeFileName);
+				Files.JoinExtension(instanceName,dataFileExtension,dataFileName);
 
 				IF ~linker.error THEN
 					StaticLinker.WriteOutputFile (code, codeFileName, linker, StaticLinker.WriteTRMCodeFile);

+ 7 - 6
source/FoxTRMTools.Mod

@@ -1,8 +1,8 @@
 MODULE FoxTRMTools;
 IMPORT Files,Commands,Options,Strings,Basic := FoxBasic, Diagnostics, BitSets,ObjectFile;
 
-	(*! check spartan 6 emission *)
-	PROCEDURE PatchSpartan6(this: ARRAY OF CHAR; VAR result: ARRAY OF CHAR; line: LONGINT);
+	(*! check spartan 6 code emission *)
+	PROCEDURE PatchSpartan6(CONST this: ARRAY OF CHAR; VAR result: ARRAY OF CHAR; line: LONGINT);
 
 	(*
 		decode 36 bits 2 instruction big endian format
@@ -85,7 +85,9 @@ IMPORT Files,Commands,Options,Strings,Basic := FoxBasic, Diagnostics, BitSets,Ob
 
 	END PatchSpartan6;
 
-	(*trm code file is split into columns. baseDiv words per line, line distributed onto numBase words.*)
+	(*trm code file is split into columns. baseDiv words per line, line distributed onto numBase words.
+		target --> target_base_<i>, horizontally running index <i>
+	*)
 	PROCEDURE SplitColumns* (CONST source,target: ARRAY OF CHAR; instructionWidth, numBase, baseDiv: LONGINT;diagnostics: Diagnostics.Diagnostics): BOOLEAN;
 	VAR
 		i,j,k,numReadNibbles,nibble,payloadInLeadingNibble,unCutWordLength:LONGINT;
@@ -95,7 +97,7 @@ IMPORT Files,Commands,Options,Strings,Basic := FoxBasic, Diagnostics, BitSets,Ob
 		base:  BitSets.BitSet;
 		word: BitSets.BitSet;
 		reader: Files.Reader;
-		inputFileName: ARRAY 50 OF CHAR;
+		inputFileName: Files.FileName;
 		inputFile: Files.File;
 		line: ARRAY 128 OF CHAR;
 
@@ -104,7 +106,7 @@ IMPORT Files,Commands,Options,Strings,Basic := FoxBasic, Diagnostics, BitSets,Ob
 		FOR i:=0 TO numBase-1 DO(*create filenames*)
 			(*copy name. add '.base i' to distinguish*)
 			COPY(target,currFileName);
-			Strings.Append(currFileName,"base");
+			(*Strings.Append(currFileName,"_base_");*)
 			Basic.AppendNumber(currFileName, i);
 			files[i]:= Files.New(currFileName);
 			Files.OpenWriter(writers[i],files[i],0);
@@ -127,7 +129,6 @@ IMPORT Files,Commands,Options,Strings,Basic := FoxBasic, Diagnostics, BitSets,Ob
 		NEW(base,numBase*36);
 		NEW(word,instructionWidth);
 		WHILE reader.Available()>0 DO (*assumes number of words is a multiple of baseDiv. make sure in static linker*)
-			
 			base.Zero;
 			(*read a BASE line*)
 			FOR k:=0 TO baseDiv-1 DO 

+ 2 - 2
source/StaticLinker.Mod

@@ -264,8 +264,8 @@ BEGIN
 		lines := (((end-1) DIV lines)+1)*lines; (* round up to next multiple of lines *)
 	END;
 	FOR i := end TO lines -1 DO
-		FOR j:=1 TO bitsPerLine DIV 4 BY 1 DO
-			writer.Char('f');
+		FOR j:=1 TO (bitsPerLine-1) DIV 4 + 1 BY 1 DO
+			writer.Char('F');
 		END;
 		
 		writer.Ln;