diff --git a/src/main/java/li/cil/circuity/Main.java b/src/main/java/li/cil/circuity/Main.java index ee91f943..c6fa61b3 100644 --- a/src/main/java/li/cil/circuity/Main.java +++ b/src/main/java/li/cil/circuity/Main.java @@ -65,10 +65,8 @@ public final class Main { System.out.print((char) value); } - while (br.ready()) { - if (!board.putValue((byte) br.read())) { - break; - } + while (br.ready() && board.canPutValue()) { + board.putValue((byte) br.read()); } } diff --git a/src/main/java/li/cil/circuity/vm/riscv/R5Board.java b/src/main/java/li/cil/circuity/vm/riscv/R5Board.java index 532d16f8..ea863a22 100644 --- a/src/main/java/li/cil/circuity/vm/riscv/R5Board.java +++ b/src/main/java/li/cil/circuity/vm/riscv/R5Board.java @@ -184,18 +184,17 @@ public final class R5Board { return uart.getByte(); } - public boolean putValue(final byte b) { - if (!uart.canReceive()) { - return false; - } + public boolean canPutValue() { + return uart.canReceive(); + } + public void putValue(final byte b) { uart.putByte(b); if ((char) b == '\n') { while (uart.canReceive()) { uart.putByte((byte) 0); // HACK? Ensure we reach FIFO trigger level. } } - return true; } private DeviceTree buildDeviceTree() {