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 {