Commit 67fb5b3a authored by Peter's avatar Peter
Browse files

dev

parent e8d9cc3b
Loading
Loading
Loading
Loading
Loading
+11 −0
Changes for .project: 11 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -20,4 +20,15 @@
		<nature>org.eclipse.jdt.core.javanature</nature>
		<nature>org.eclipse.m2e.core.maven2Nature</nature>
	</natures>
	<filteredResources>
		<filter>
			<id>1788188535783</id>
			<name></name>
			<type>30</type>
			<matcher>
				<id>org.eclipse.core.resources.regexFilterMatcher</id>
				<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
			</matcher>
		</filter>
	</filteredResources>
</projectDescription>
+1 −1
Changes for pom.xml: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -126,7 +126,7 @@
		<dependency>
			<groupId>hk.quantr</groupId>
			<artifactId>quantr-java-library</artifactId>
			<version>1.0</version>
			<version>2.0</version>
			<type>jar</type>
		</dependency>
		<dependency>
+36 −3
Changes for src/main/java/hk/quantr/assembler/Assembler.java: 36 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -250,18 +250,40 @@ public class Assembler {
								File listingFile = new File(cmd.getOptionValue("l"));
								try ( FileWriter fw = new FileWriter(listingFile)) {
									int lineNo = 1;
									int lastLine = -1;
									File sourceFile = new File(arguments.get(0));
									List<String> sourceLines = Files.readAllLines(sourceFile.toPath());
									int sourceWidth = 24;
									for (Line listingLine : parser.encoder.listing.lines) {
										if (listingLine.bytes != null) {
											sourceWidth = Math.max(sourceWidth, listingSource(sourceLineAt(sourceLines, listingLine.lineNo)).length());
										}
									}
									for (Line l : parser.encoder.listing.lines) {
										while (lineNo < l.lineNo) {
											fw.write(String.format("%-5d\n", lineNo));
											fw.write(String.format("%-5d  %s%n", lineNo, sourceLineAt(sourceLines, lineNo)));
											lineNo++;
										}
										if (lineNo > l.lineNo) {
											lineNo--;
										}

										String sourceLine = sourceLineAt(sourceLines, l.lineNo);
										if (l.bytes != null) {
											fw.write(String.format("%-5d\t%-8s\t%08x\t%-11s\t%s\n", l.lineNo, l.section, l.address, CommonLib.arrayToHexString(l.bytes).replaceAll("0x", ""), l.code));
											String shownSource = lastLine != l.lineNo ? listingSource(sourceLine) : "";
											lastLine = l.lineNo;
											fw.write(String.format("%-5d  %-" + sourceWidth + "s  %-8s  %08x  %-11s  %s%n",
													l.lineNo,
													shownSource,
													l.section == null ? "" : l.section,
													l.address,
													CommonLib.arrayToHexString(l.bytes).replaceAll("0x", ""),
													l.code == null ? "" : l.code.replace('\t', ' ')));
										} else if (l.code != null) { //section or labels
											fw.write(String.format("%-28d\t%s\n", l.lineNo, l.code));
											fw.write(String.format("%-5d  %-" + sourceWidth + "s  %s%n",
													l.lineNo,
													listingSource(sourceLine),
													l.code.replace('\t', ' ')));
										}
										lineNo++;
									}
@@ -285,4 +307,15 @@ public class Assembler {
		}
		MessageHandler.flushXML();
	}

	private static String sourceLineAt(List<String> sourceLines, int lineNo) {
		if (lineNo < 1 || lineNo > sourceLines.size()) {
			return "";
		}
		return sourceLines.get(lineNo - 1).replace('\t', ' ');
	}

	private static String listingSource(String sourceLine) {
		return sourceLine == null ? "" : sourceLine.trim();
	}
}
+1 −1

File changed.

Preview size limit exceeded, changes collapsed.

+8060 −5071

File changed.

Preview size limit exceeded, changes collapsed.

Loading