diff --git a/Plugin Cubot/Plugin Cubot.iml b/Plugin Cubot/Plugin Cubot.iml
index 1f0dd37..16c112e 100644
--- a/Plugin Cubot/Plugin Cubot.iml
+++ b/Plugin Cubot/Plugin Cubot.iml
@@ -15,6 +15,9 @@
+
+
+
diff --git a/Plugin Misc HW/Plugin Misc HW.iml b/Plugin Misc HW/Plugin Misc HW.iml
index f044428..f79e042 100644
--- a/Plugin Misc HW/Plugin Misc HW.iml
+++ b/Plugin Misc HW/Plugin Misc HW.iml
@@ -14,6 +14,9 @@
+
+
+
diff --git a/Plugin NPC/Plugin NPC.iml b/Plugin NPC/Plugin NPC.iml
index 0fda0f5..436be4c 100644
--- a/Plugin NPC/Plugin NPC.iml
+++ b/Plugin NPC/Plugin NPC.iml
@@ -17,5 +17,8 @@
+
+
+
\ No newline at end of file
diff --git a/Plugin Plant/Plugin Plant.iml b/Plugin Plant/Plugin Plant.iml
index 0fda0f5..436be4c 100644
--- a/Plugin Plant/Plugin Plant.iml
+++ b/Plugin Plant/Plugin Plant.iml
@@ -17,5 +17,8 @@
+
+
+
\ No newline at end of file
diff --git a/Server/Server.iml b/Server/Server.iml
index 52af955..bdbaa5b 100644
--- a/Server/Server.iml
+++ b/Server/Server.iml
@@ -18,5 +18,6 @@
+
-
+
\ No newline at end of file
diff --git a/Server/src/main/java/net/simon987/server/assembly/Assembler.java b/Server/src/main/java/net/simon987/server/assembly/Assembler.java
index cf10070..7173110 100755
--- a/Server/src/main/java/net/simon987/server/assembly/Assembler.java
+++ b/Server/src/main/java/net/simon987/server/assembly/Assembler.java
@@ -175,7 +175,18 @@ public class Assembler {
out.writeChar(0);
} else {
- throw new InvalidOperandException("Invalid operand \"" + value + '"', currentLine);
+
+ //Integer.decode failed, try binary
+ if (value.startsWith("0b")) {
+ try {
+ out.writeChar(Integer.parseInt(value.substring(2), 2));
+ } catch (NumberFormatException e2) {
+ throw new InvalidOperandException("Invalid operand \"" + value + '"', currentLine);
+ }
+ } else {
+ throw new InvalidOperandException("Invalid operand \"" + value + '"', currentLine);
+
+ }
}
}
}
diff --git a/Server/src/main/java/net/simon987/server/assembly/Operand.java b/Server/src/main/java/net/simon987/server/assembly/Operand.java
index e3ce51e..9da8ce9 100755
--- a/Server/src/main/java/net/simon987/server/assembly/Operand.java
+++ b/Server/src/main/java/net/simon987/server/assembly/Operand.java
@@ -224,11 +224,30 @@ public class Operand {
}
//label is invalid
-
data = Integer.decode(expr);
value += registerSet.size() * 2; //refers to memory with disp
return true;
} catch (NumberFormatException e) {
+
+ //Integer.decode failed, try binary
+ if (expr.startsWith("+0b")) {
+ try {
+ data = Integer.parseInt(expr.substring(3), 2);
+ value += registerSet.size() * 2; //refers to memory with disp
+ return true;
+ } catch (NumberFormatException e2) {
+ return false;
+ }
+ } else if (expr.startsWith("-0b")) {
+ try {
+ data = -Integer.parseInt(expr.substring(3), 2);
+ value += registerSet.size() * 2; //refers to memory with disp
+ return true;
+ } catch (NumberFormatException e2) {
+ return false;
+ }
+ }
+
return false;
}
}
diff --git a/Server/src/main/java/net/simon987/server/webserver/MessageEventDispatcher.java b/Server/src/main/java/net/simon987/server/webserver/MessageEventDispatcher.java
index 8a95409..5e52539 100644
--- a/Server/src/main/java/net/simon987/server/webserver/MessageEventDispatcher.java
+++ b/Server/src/main/java/net/simon987/server/webserver/MessageEventDispatcher.java
@@ -35,6 +35,9 @@ public class MessageEventDispatcher {
handler.handle(user, json);
} catch (WebsocketNotConnectedException e) {
LogManager.LOGGER.fine("Catched WebsocketNotConnectedException");
+ } catch (Exception e1) {
+ LogManager.LOGGER.severe(e1.getMessage());
+ e1.printStackTrace();
}
}
} else {