diff --git a/examples/lua.html b/examples/lua.html
index 922d7524..a08dc590 100644
--- a/examples/lua.html
+++ b/examples/lua.html
@@ -26,9 +26,11 @@ window.onload = function()
},
autostart: true,
disable_keyboard: true,
+ disable_mouse: true,
});
var data = "";
+ var do_output = false;
emulator.add_listener("serial0-output-char", function(char)
{
@@ -37,24 +39,17 @@ window.onload = function()
data += char;
}
+ if(do_output)
+ {
+ document.getElementById("result").textContent += char;
+ }
+
if(data.endsWith("~% "))
{
console.log("Now ready");
document.getElementById("status").textContent = "Ready.\n";
document.getElementById("run").disabled = false;
- }
- });
-
- emulator.add_listener("serial0-output-line", function(line)
- {
- // filter noise
- if(!line.startsWith("/root% lua -e") &&
- !line.startsWith("> ") &&
- line.indexOf("Welcome to Buildroot") === -1 &&
- line.indexOf("login:") === -1 &&
- line.trim() !== "")
- {
- document.getElementById("result").textContent += line;
+ do_output = false;
}
});
@@ -75,6 +70,8 @@ window.onload = function()
document.getElementById("result").textContent = "";
document.getElementById("status").textContent = "Running ...\n";
this.disabled = true;
+
+ do_output = true;
};
};
diff --git a/src/uart.js b/src/uart.js
index 47f87a50..b7b52c41 100644
--- a/src/uart.js
+++ b/src/uart.js
@@ -67,7 +67,7 @@ function UART(cpu, port, bus)
this.input = new ByteQueue(4096);
- this.current_line = [];
+ this.current_line = "";
switch(port)
{
@@ -350,13 +350,15 @@ UART.prototype.write_data = function(out_byte)
this.bus.send("serial" + this.com + "-output-char", char);
- this.current_line.push(out_byte);
-
- if(char === "\n")
+ if(DEBUG)
{
- const line = String.fromCharCode.apply("", this.current_line).trimRight().replace(/[\x00-\x08\x0b-\x1f\x7f\x80-\xff]/g, "");
- dbg_log("SERIAL: " + line);
- this.bus.send("serial" + this.com + "-output-line", String.fromCharCode.apply("", this.current_line));
- this.current_line = [];
+ this.current_line += char;
+
+ if(char === "\n")
+ {
+ const line = this.current_line.trimRight().replace(/[\x00-\x08\x0b-\x1f\x7f\x80-\xff]/g, "");
+ dbg_log("SERIAL: " + line);
+ this.current_line = "";
+ }
}
};