drafts, minor updates
This commit is contained in:
parent
6d243a2be1
commit
37db634a23
8 changed files with 1168 additions and 56 deletions
|
@ -29,7 +29,7 @@ public class AppPreferences {
|
||||||
|
|
||||||
private final Preferences preferences;
|
private final Preferences preferences;
|
||||||
private final Locale locale;
|
private final Locale locale;
|
||||||
public static final String[] GOLDLEAF_SUPPORTED_VERSIONS = {"v0.5", "v0.7.x", "v0.8-0.9", "v0.10+"};
|
public static final String[] GOLDLEAF_SUPPORTED_VERSIONS = {"v0.5", "v0.7.x", "v0.8-0.9", "v0.10-1.1.0", "v1.1.1+"};
|
||||||
private static final Font DEFAULT_FONT = Font.getDefault();
|
private static final Font DEFAULT_FONT = Font.getDefault();
|
||||||
|
|
||||||
private AppPreferences(){
|
private AppPreferences(){
|
||||||
|
|
|
@ -352,8 +352,8 @@ public class BinToAsmPrinter {
|
||||||
int conditionalJumpLocation = ((instructionExpression >> 5 & 0x7FFFF) * 4 + offset) & 0xfffff;
|
int conditionalJumpLocation = ((instructionExpression >> 5 & 0x7FFFF) * 4 + offset) & 0xfffff;
|
||||||
|
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " CBZ " + ANSI_GREEN + "%s%d " + ANSI_BLUE + "#0x%x" + ANSI_RESET + " (" + ANSI_BLUE + "#0x%x" + ANSI_RESET + ")\n",
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " CBZ " + ANSI_GREEN + "%s%d " + ANSI_BLUE + "#0x%x" + ANSI_RESET + " (" + ANSI_BLUE + "#0x%x" + ANSI_RESET + ")\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression,
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression,
|
||||||
(instructionExpression >> 31 == 0) ? "w" : "x", (instructionExpression & 0b11111),
|
(instructionExpression >> 31 == 0) ? "w" : "x", (instructionExpression & 0b11111),
|
||||||
conditionalJumpLocation, (conditionalJumpLocation + 0x100));
|
conditionalJumpLocation, (conditionalJumpLocation + 0x100));
|
||||||
}
|
}
|
||||||
|
@ -362,8 +362,8 @@ public class BinToAsmPrinter {
|
||||||
int conditionalJumpLocation = ((instructionExpression >> 5 & 0x7FFFF) * 4 + offset) & 0xfffff;
|
int conditionalJumpLocation = ((instructionExpression >> 5 & 0x7FFFF) * 4 + offset) & 0xfffff;
|
||||||
|
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " CBNZ " + ANSI_GREEN + "%s%d " + ANSI_BLUE + "#0x%x" + ANSI_RESET + " (" + ANSI_BLUE + "#0x%x" + ANSI_RESET + ")\n",
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " CBNZ " + ANSI_GREEN + "%s%d " + ANSI_BLUE + "#0x%x" + ANSI_RESET + " (" + ANSI_BLUE + "#0x%x" + ANSI_RESET + ")\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression,
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression,
|
||||||
(instructionExpression >> 31 == 0) ? "w" : "x", (instructionExpression & 0b11111),
|
(instructionExpression >> 31 == 0) ? "w" : "x", (instructionExpression & 0b11111),
|
||||||
conditionalJumpLocation, (conditionalJumpLocation + 0x100));
|
conditionalJumpLocation, (conditionalJumpLocation + 0x100));
|
||||||
}
|
}
|
||||||
|
@ -372,8 +372,8 @@ public class BinToAsmPrinter {
|
||||||
int conditionalJumpLocationPatch = ((instructionExpression & 0x3ffffff) * 4 + offset) & 0xfffff;
|
int conditionalJumpLocationPatch = ((instructionExpression & 0x3ffffff) * 4 + offset) & 0xfffff;
|
||||||
|
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " B " + ANSI_BLUE + "#0x%x" + ANSI_RESET + " (Real: " + ANSI_BLUE + "#0x%x" + ANSI_RESET + ")\n",
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " B " + ANSI_BLUE + "#0x%x" + ANSI_RESET + " (Real: " + ANSI_BLUE + "#0x%x" + ANSI_RESET + ")\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression,
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression,
|
||||||
conditionalJumpLocationPatch, (conditionalJumpLocationPatch + 0x100));
|
conditionalJumpLocationPatch, (conditionalJumpLocationPatch + 0x100));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -382,8 +382,8 @@ public class BinToAsmPrinter {
|
||||||
int conditionalJumpLocationPatch = ((instructionExpression & 0x3ffffff) * 4 + offset) & 0xfffff;
|
int conditionalJumpLocationPatch = ((instructionExpression & 0x3ffffff) * 4 + offset) & 0xfffff;
|
||||||
|
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " BL " + ANSI_BLUE + "#0x%x" + ANSI_RESET + " (Real: " + ANSI_BLUE + "#0x%x" + ANSI_RESET + ")\n",
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " BL " + ANSI_BLUE + "#0x%x" + ANSI_RESET + " (Real: " + ANSI_BLUE + "#0x%x" + ANSI_RESET + ")\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression,
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression,
|
||||||
conditionalJumpLocationPatch, (conditionalJumpLocationPatch + 0x100));
|
conditionalJumpLocationPatch, (conditionalJumpLocationPatch + 0x100));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -392,15 +392,15 @@ public class BinToAsmPrinter {
|
||||||
int sfHw = (instructionExpression >> 22 & 1);
|
int sfHw = (instructionExpression >> 22 & 1);
|
||||||
|
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " MOV " + ANSI_GREEN + "%s%d " + ANSI_BLUE + "#0x%x" + ANSI_RESET + "\n",
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " MOV " + ANSI_GREEN + "%s%d " + ANSI_BLUE + "#0x%x" + ANSI_RESET + "\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression,
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression,
|
||||||
(sfHw == 0) ? "w" : "x", (instructionExpression & 0b11111), imm16);
|
(sfHw == 0) ? "w" : "x", (instructionExpression & 0b11111), imm16);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String printNOPSimplified(int instructionExpression, int offset){
|
private static String printNOPSimplified(int instructionExpression, int offset){
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " NOP " + ANSI_RESET + "\n",
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " NOP " + ANSI_RESET + "\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression);
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String printTBZSimplified(int instructionExpression, int offset){
|
private static String printTBZSimplified(int instructionExpression, int offset){
|
||||||
|
@ -410,8 +410,8 @@ public class BinToAsmPrinter {
|
||||||
int label = offset + (instructionExpression >> 5 & 0x3fff) * 4;
|
int label = offset + (instructionExpression >> 5 & 0x3fff) * 4;
|
||||||
|
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " TBZ " + ANSI_GREEN + "%s%d " + ANSI_BLUE + "#0x%x" + ANSI_RESET + ", " + ANSI_PURPLE + "%x" + ANSI_RESET + "\n",
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " TBZ " + ANSI_GREEN + "%s%d " + ANSI_BLUE + "#0x%x" + ANSI_RESET + ", " + ANSI_PURPLE + "%x" + ANSI_RESET + "\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression,
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression,
|
||||||
(xwSelector == 0) ? "w" : "x", Rt, imm, label);
|
(xwSelector == 0) ? "w" : "x", Rt, imm, label);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -419,15 +419,15 @@ public class BinToAsmPrinter {
|
||||||
int conditionalJumpLocation = ((instructionExpression >> 4 & 0b1111111111111111111) * 4 + offset) & 0xfffff;
|
int conditionalJumpLocation = ((instructionExpression >> 4 & 0b1111111111111111111) * 4 + offset) & 0xfffff;
|
||||||
|
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " B.%s " + ANSI_BLUE + "#0x%x" + ANSI_RESET + " (Real: " + ANSI_BLUE + "#0x%x" + ANSI_RESET + ")\n",
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " B.%s " + ANSI_BLUE + "#0x%x" + ANSI_RESET + " (Real: " + ANSI_BLUE + "#0x%x" + ANSI_RESET + ")\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression,
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression,
|
||||||
getBConditionalMarker(instructionExpression & 0xf),
|
getBConditionalMarker(instructionExpression & 0xf),
|
||||||
conditionalJumpLocation, (conditionalJumpLocation + 0x100));
|
conditionalJumpLocation, (conditionalJumpLocation + 0x100));
|
||||||
}
|
}
|
||||||
private static String printImTooLazy(String name, int instructionExpression, int offset){
|
private static String printImTooLazy(String name, int instructionExpression, int offset){
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " "+name+" . . . \n"+ ANSI_RESET,
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " "+name+" . . . \n"+ ANSI_RESET,
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression);
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String printSUBSimplified(int instructionExpression, int offset){
|
private static String printSUBSimplified(int instructionExpression, int offset){
|
||||||
|
@ -437,8 +437,8 @@ public class BinToAsmPrinter {
|
||||||
int imm12 = instructionExpression >> 10 & 0xFFF; // unsigned only
|
int imm12 = instructionExpression >> 10 & 0xFFF; // unsigned only
|
||||||
|
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " SUB (imm) " + ANSI_GREEN + "%s%d, " + ANSI_BLUE + "%s%d, #0x%x" + ANSI_RESET + "\n",
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " SUB (imm) " + ANSI_GREEN + "%s%d, " + ANSI_BLUE + "%s%d, #0x%x" + ANSI_RESET + "\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression,
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression,
|
||||||
wx, Rt, wx, Rn, imm12);
|
wx, Rt, wx, Rn, imm12);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -448,8 +448,8 @@ public class BinToAsmPrinter {
|
||||||
int Rd = instructionExpression & 0x1F;
|
int Rd = instructionExpression & 0x1F;
|
||||||
|
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " MOV (reg) " + ANSI_GREEN + "%s%d " + ANSI_BLUE + "%s%d" + ANSI_RESET + "\n",
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " MOV (reg) " + ANSI_GREEN + "%s%d " + ANSI_BLUE + "%s%d" + ANSI_RESET + "\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression,
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression,
|
||||||
sfHw, Rm, sfHw, Rd);
|
sfHw, Rm, sfHw, Rd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -458,8 +458,8 @@ public class BinToAsmPrinter {
|
||||||
int imm = instructionExpression >> 10 & 0xFFF;
|
int imm = instructionExpression >> 10 & 0xFFF;
|
||||||
|
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " CMN " + ANSI_GREEN + "%s%d " + ANSI_BLUE + "#0x%x" + ANSI_RESET + "\n",
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " CMN " + ANSI_GREEN + "%s%d " + ANSI_BLUE + "#0x%x" + ANSI_RESET + "\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression,
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression,
|
||||||
(instructionExpression >> 31 == 0) ? "w" : "x", Rn, imm);
|
(instructionExpression >> 31 == 0) ? "w" : "x", Rn, imm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -471,8 +471,8 @@ public class BinToAsmPrinter {
|
||||||
|
|
||||||
|
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " LDR(imm) " + ANSI_GREEN + "%s%d " + ANSI_BLUE + "[%s%d, #0x%x]" + ANSI_RESET + " (note: unsigned offset)\n",
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " LDR(imm) " + ANSI_GREEN + "%s%d " + ANSI_BLUE + "[%s%d, #0x%x]" + ANSI_RESET + " (note: unsigned offset)\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression,
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression,
|
||||||
wx, Rt, wx, Rn, imm12);
|
wx, Rt, wx, Rn, imm12);
|
||||||
}
|
}
|
||||||
private static String printLRDBImmUnsignSimplified(int instructionExpression, int offset){
|
private static String printLRDBImmUnsignSimplified(int instructionExpression, int offset){
|
||||||
|
@ -482,8 +482,8 @@ public class BinToAsmPrinter {
|
||||||
int imm12 = (instructionExpression >> 10 & 0xFFF) * 8; // unsigned only
|
int imm12 = (instructionExpression >> 10 & 0xFFF) * 8; // unsigned only
|
||||||
|
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " LDRB(imm) " + ANSI_GREEN + "%s%d " + ANSI_BLUE + "[%s%d, #0x%x]" + ANSI_RESET + " (note: unsigned offset)\n",
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " LDRB(imm) " + ANSI_GREEN + "%s%d " + ANSI_BLUE + "[%s%d, #0x%x]" + ANSI_RESET + " (note: unsigned offset)\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression,
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression,
|
||||||
wx, Rt, wx, Rn, imm12);
|
wx, Rt, wx, Rn, imm12);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -494,9 +494,9 @@ public class BinToAsmPrinter {
|
||||||
int LSL = (instructionExpression >> 22 & 0b1) == 1 ? 12 : 0;
|
int LSL = (instructionExpression >> 22 & 0b1) == 1 ? 12 : 0;
|
||||||
|
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " CMP " + ANSI_GREEN + sf + "%d," +
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " CMP " + ANSI_GREEN + sf + "%d," +
|
||||||
ANSI_BLUE + "0x%x" + ANSI_RESET + " (Real: " + ANSI_BLUE + "#0x%x" + ANSI_RESET + ") " + ANSI_PURPLE + "LSL #%d" + ANSI_RESET + "\n",
|
ANSI_BLUE + "0x%x" + ANSI_RESET + " (Real: " + ANSI_BLUE + "#0x%x" + ANSI_RESET + ") " + ANSI_PURPLE + "LSL #%d" + ANSI_RESET + "\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression,
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression,
|
||||||
Rn,
|
Rn,
|
||||||
conditionalJumpLocation, (conditionalJumpLocation + 0x100),
|
conditionalJumpLocation, (conditionalJumpLocation + 0x100),
|
||||||
LSL);
|
LSL);
|
||||||
|
@ -527,9 +527,9 @@ public class BinToAsmPrinter {
|
||||||
}
|
}
|
||||||
|
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " CMP (sr) " + ANSI_GREEN + sf + "%d," +
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " CMP (sr) " + ANSI_GREEN + sf + "%d," +
|
||||||
ANSI_BLUE + sf + "%d " + ANSI_BLUE + LSLStr + ANSI_PURPLE + " %d" + ANSI_RESET + "\n",
|
ANSI_BLUE + sf + "%d " + ANSI_BLUE + LSLStr + ANSI_PURPLE + " %d" + ANSI_RESET + "\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression,
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression,
|
||||||
Rn, Rm, imm6);
|
Rn, Rm, imm6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -544,23 +544,23 @@ public class BinToAsmPrinter {
|
||||||
imm = instructionExpression >> 10 & 0x1fff;
|
imm = instructionExpression >> 10 & 0x1fff;
|
||||||
|
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " AND " + ANSI_GREEN + sf + "%d, " + ANSI_BLUE +
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " AND " + ANSI_GREEN + sf + "%d, " + ANSI_BLUE +
|
||||||
sf + "%d" + ANSI_PURPLE + " # ??? 0b%s " + ANSI_RESET + "\n",
|
sf + "%d" + ANSI_PURPLE + " # ??? 0b%s " + ANSI_RESET + "\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression, Rn, Rd, Converter.intToBinaryString(imm));
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression, Rn, Rd, Converter.intToBinaryString(imm));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String printRetSimplified(int instructionExpression, int offset){
|
private static String printRetSimplified(int instructionExpression, int offset){
|
||||||
int Xn = (instructionExpression >> 5) & 0x1F;
|
int Xn = (instructionExpression >> 5) & 0x1F;
|
||||||
|
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " RET " + ANSI_GREEN + " X%d" + ANSI_RESET + "\n",
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " RET " + ANSI_GREEN + " X%d" + ANSI_RESET + "\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression, Xn == 0 ? 30 : Xn);
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression, Xn == 0 ? 30 : Xn);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String printUnknownSimplified(int instructionExpression, int offset){
|
private static String printUnknownSimplified(int instructionExpression, int offset){
|
||||||
return String.format(
|
return String.format(
|
||||||
"%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " ??? 0b"+ANSI_RESET+ Converter.intToBinaryString(instructionExpression) +"\n",
|
"%06x 7100%06x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " ??? 0b"+ANSI_RESET+ Converter.intToBinaryString(instructionExpression) +"\n",
|
||||||
offset, Integer.reverseBytes(instructionExpression), instructionExpression);
|
offset+0x100, offset,Integer.reverseBytes(instructionExpression), instructionExpression);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String intAsBinString(int number) {
|
private static String intAsBinString(int number) {
|
||||||
|
|
|
@ -148,7 +148,7 @@ public class FsPatch {
|
||||||
private void findAllOffsets() throws Exception{
|
private void findAllOffsets() throws Exception{
|
||||||
this.wizard = new HeuristicFsWizard(_textSection);
|
this.wizard = new HeuristicFsWizard(_textSection);
|
||||||
String errorsAndNotes = wizard.getErrorsAndNotes();
|
String errorsAndNotes = wizard.getErrorsAndNotes();
|
||||||
if (errorsAndNotes.length() > 0)
|
if (! errorsAndNotes.isEmpty())
|
||||||
logPrinter.print(errorsAndNotes, EMsgType.WARNING);
|
logPrinter.print(errorsAndNotes, EMsgType.WARNING);
|
||||||
}
|
}
|
||||||
private void mkDirs(){
|
private void mkDirs(){
|
||||||
|
|
1110
src/main/java/nsusbloader/com/usb/GoldLeaf_111.java
Normal file
1110
src/main/java/nsusbloader/com/usb/GoldLeaf_111.java
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2019-2020 Dmitry Isaenko
|
Copyright 2019-2025 Dmitry Isaenko
|
||||||
|
|
||||||
This file is part of NS-USBloader.
|
This file is part of NS-USBloader.
|
||||||
|
|
||||||
|
@ -66,7 +66,10 @@ public class UsbCommunications extends CancellableRunnable {
|
||||||
case "TinFoil":
|
case "TinFoil":
|
||||||
module = new TinFoil(handler, nspMap, this, logPrinter);
|
module = new TinFoil(handler, nspMap, this, logPrinter);
|
||||||
break;
|
break;
|
||||||
case "GoldLeafv0.10+":
|
case "GoldLeafv1.1.1+":
|
||||||
|
module = new GoldLeaf_111(handler, nspMap, this, logPrinter, nspFilterForGl);
|
||||||
|
break;
|
||||||
|
case "GoldLeafv0.10-1.1.0":
|
||||||
module = new GoldLeaf_010(handler, nspMap, this, logPrinter, nspFilterForGl);
|
module = new GoldLeaf_010(handler, nspMap, this, logPrinter, nspFilterForGl);
|
||||||
break;
|
break;
|
||||||
case "GoldLeafv0.8-0.9":
|
case "GoldLeafv0.8-0.9":
|
||||||
|
|
|
@ -8,7 +8,7 @@ import org.junit.jupiter.api.*;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
@Disabled
|
//@Disabled
|
||||||
public class EsIntegrationTest {
|
public class EsIntegrationTest {
|
||||||
static String pathToFirmware;
|
static String pathToFirmware;
|
||||||
static String pathToFirmwares;
|
static String pathToFirmwares;
|
||||||
|
@ -22,18 +22,17 @@ public class EsIntegrationTest {
|
||||||
pathToKeysFile = environment.getProdkeysLocation();
|
pathToKeysFile = environment.getProdkeysLocation();
|
||||||
saveTo = environment.getSaveToLocation() + File.separator + "ES_LPR";
|
saveTo = environment.getSaveToLocation() + File.separator + "ES_LPR";
|
||||||
pathToFirmwares = environment.getFirmwaresLocation();
|
pathToFirmwares = environment.getFirmwaresLocation();
|
||||||
pathToFirmware = environment.getFirmwaresLocation() + File.separator + "Firmware 17.0.0";
|
pathToFirmware = environment.getFirmwaresLocation() + File.separator + "Firmware 19.0.1";
|
||||||
}
|
}
|
||||||
|
|
||||||
@DisplayName("ES Integration validation - everything")
|
@DisplayName("ES Integration validation - everything")
|
||||||
@Test
|
@Test
|
||||||
void makeEss() throws Exception{
|
void makeEss() throws Exception{
|
||||||
File[] fwDirs = new File(pathToFirmwares).listFiles((file, s) -> {
|
File[] fwDirs = new File(pathToFirmwares).listFiles((file, s) ->
|
||||||
return s.matches("^Firmware (9\\.|[0-9][0-9]\\.).*");
|
s.matches("^Firmware (9\\.|[0-9][0-9]\\.).*"));
|
||||||
//return s.matches("^Firmware 10.0.1.*");
|
|
||||||
});
|
|
||||||
assert fwDirs != null;
|
assert fwDirs != null;
|
||||||
Arrays.sort(fwDirs);
|
Arrays.sort(fwDirs);
|
||||||
|
Arrays.stream(fwDirs).forEach(System.out::println);
|
||||||
for (File dir : fwDirs){
|
for (File dir : fwDirs){
|
||||||
EsPatchMaker esPatchMaker = new EsPatchMaker(dir.getAbsolutePath(), pathToKeysFile, saveTo);
|
EsPatchMaker esPatchMaker = new EsPatchMaker(dir.getAbsolutePath(), pathToKeysFile, saveTo);
|
||||||
Thread workThread = new Thread(esPatchMaker);
|
Thread workThread = new Thread(esPatchMaker);
|
||||||
|
@ -42,6 +41,7 @@ public class EsIntegrationTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Disabled
|
||||||
@DisplayName("ES Integration validation - one particular firmware")
|
@DisplayName("ES Integration validation - one particular firmware")
|
||||||
@Test
|
@Test
|
||||||
void makeEs() throws Exception{
|
void makeEs() throws Exception{
|
||||||
|
|
|
@ -11,7 +11,7 @@ import org.junit.jupiter.api.Test;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
@Disabled
|
//@Disabled
|
||||||
public class FsIntegrationTest {
|
public class FsIntegrationTest {
|
||||||
static String pathToFirmware;
|
static String pathToFirmware;
|
||||||
static String pathToFirmwares;
|
static String pathToFirmwares;
|
||||||
|
@ -25,19 +25,17 @@ public class FsIntegrationTest {
|
||||||
pathToKeysFile = environment.getProdkeysLocation();
|
pathToKeysFile = environment.getProdkeysLocation();
|
||||||
saveTo = environment.getSaveToLocation() + File.separator + "FS_LPR";
|
saveTo = environment.getSaveToLocation() + File.separator + "FS_LPR";
|
||||||
pathToFirmwares = environment.getFirmwaresLocation();
|
pathToFirmwares = environment.getFirmwaresLocation();
|
||||||
pathToFirmware = environment.getFirmwaresLocation() + File.separator + "Firmware 17.0.0";
|
pathToFirmware = environment.getFirmwaresLocation() + File.separator + "Firmware 15.0.0";
|
||||||
}
|
}
|
||||||
|
|
||||||
@DisplayName("FS Integration validation - everything")
|
@DisplayName("FS Integration validation - everything")
|
||||||
@Test
|
@Test
|
||||||
void makeFss() throws Exception{
|
void makeFss() throws Exception{
|
||||||
File[] fwDirs = new File(pathToFirmwares).listFiles((file, s) -> {
|
File[] fwDirs = new File(pathToFirmwares).listFiles((file, s) ->
|
||||||
return (s.matches("^Firmware (9\\.|[0-9][0-9]\\.).*") && ! s.endsWith(".zip"));
|
s.matches("^Firmware (9\\.|[0-9][0-9]\\.).*") && ! s.endsWith(".zip"));
|
||||||
//return s.matches("^Firmware 10.0.1.*");
|
|
||||||
});
|
|
||||||
assert fwDirs != null;
|
assert fwDirs != null;
|
||||||
Arrays.sort(fwDirs);
|
Arrays.sort(fwDirs);
|
||||||
|
Arrays.stream(fwDirs).forEach(System.out::println);
|
||||||
for (File dir : fwDirs){
|
for (File dir : fwDirs){
|
||||||
System.out.println("\n\t\t\t"+dir.getName());
|
System.out.println("\n\t\t\t"+dir.getName());
|
||||||
FsPatchMaker fsPatchMaker = new FsPatchMaker(dir.getAbsolutePath(), pathToKeysFile, saveTo);
|
FsPatchMaker fsPatchMaker = new FsPatchMaker(dir.getAbsolutePath(), pathToKeysFile, saveTo);
|
||||||
|
@ -47,6 +45,7 @@ public class FsIntegrationTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Disabled
|
||||||
@DisplayName("FS Integration validation - one particular firmware")
|
@DisplayName("FS Integration validation - one particular firmware")
|
||||||
@Test
|
@Test
|
||||||
void makeFs() throws Exception{
|
void makeFs() throws Exception{
|
||||||
|
|
|
@ -10,7 +10,7 @@ import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
@Disabled
|
//@Disabled
|
||||||
public class LoaderIntegrationTest {
|
public class LoaderIntegrationTest {
|
||||||
static String pathToAtmo;
|
static String pathToAtmo;
|
||||||
static String saveTo;
|
static String saveTo;
|
||||||
|
|
Loading…
Reference in a new issue