diff options
author | Clifford Wolf <clifford@clifford.at> | 2015-02-15 16:16:08 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2015-02-15 16:16:08 +0100 |
commit | c2cc342e1a3d223caf1059fd2f255b0985ded61c (patch) | |
tree | 48a6666bd32dc6a640930fb49beacea4013b60aa /misc | |
parent | 4d34d031f9c0b62cc4f669114c60ecdfdc555274 (diff) | |
download | yosys-c2cc342e1a3d223caf1059fd2f255b0985ded61c.tar.gz yosys-c2cc342e1a3d223caf1059fd2f255b0985ded61c.tar.bz2 yosys-c2cc342e1a3d223caf1059fd2f255b0985ded61c.zip |
Improved yosys.js example
Diffstat (limited to 'misc')
-rw-r--r-- | misc/yosys.html | 132 |
1 files changed, 72 insertions, 60 deletions
diff --git a/misc/yosys.html b/misc/yosys.html index c82bc1871..929d0dd3b 100644 --- a/misc/yosys.html +++ b/misc/yosys.html @@ -1,60 +1,72 @@ -<html> - <head> - <title>yosys.js example application</title> - </head> - <body onload="document.getElementById('command').focus()"> - <h1>yosys.js example application</h1> - <div><textarea id="output" style="width: 100%" rows="30" cols="100">Loading...</textarea></div> - <div><form onsubmit="return run_command()"><tt><span id="prompt"><br/>yosys> </span></tt><input id="command" type="text" size="100"></form></div> - <script type='text/javascript'> - var got_log_messages = false; - var Module = { - print: (function() { - var element = document.getElementById('output'); - if (element) element.value = ''; // clear browser cache - return function(text) { - got_log_messages = true; - if (element && typeof(text) != "number") { - element.value += text + "\n"; - element.scrollTop = element.scrollHeight; // focus on bottom - } - }; - })(), - printErr: (function() { - var element = document.getElementById('output'); - if (element) element.value = ''; // clear browser cache - return function(text) { - if (element && typeof(text) != "number") { - console.log(text); - if (got_log_messages) { - element.value += text + "\n"; - element.scrollTop = element.scrollHeight; // focus on bottom - } - } - }; - })(), - command: (function(cmd) { - Module.ccall('run', '', ['string'], [cmd]) - }), - prompt: (function(cmd) { - return Module.ccall('prompt', 'string', [], []) - }) - }; - function run_command() { - var cmd = document.getElementById('command').value; - document.getElementById('command').value = ''; - Module.print(Module.prompt() + cmd); - try { - Module.command(cmd); - } catch (e) { - Module.print('Caught JavaScript exception. (see JavaScript console for details.)'); - console.log(e); - } - document.getElementById('command').focus(); - document.getElementById('prompt').innerText = Module.prompt(); - return false; - } - </script> - <script async type="text/javascript" src="yosys.js"></script> - </body> -</html> +<html><head> + <title>yosys.js example application</title> +</head><body onload="document.getElementById('command').focus()"> + <h1>yosys.js example application</h1> + <div><textarea id="output" style="width: 100%" rows="30" cols="100"></textarea></div> + <div id="wait" style="display: block"><br/><b><span id="waitmsg">Loading...</span></b></div> + <div id="input" style="display: none"><form onsubmit="return run_command()"><tt><span id="prompt"><br/>yosys> </span></tt><input id="command" type="text" size="100"></form></div> + <script type='text/javascript'> + var got_log_messages = false; + var Module = { + print: (function() { + var element = document.getElementById('output'); + if (element) element.value = ''; // clear browser cache + return function(text) { + if (!got_log_messages) { + document.getElementById('wait').style.display = 'none'; + document.getElementById('input').style.display = 'block'; + document.getElementById('waitmsg').innerText = 'Waiting for yosys.js...'; + got_log_messages = true; + } + if (element && typeof(text) != "number") { + element.value += text + "\n"; + element.scrollTop = element.scrollHeight; // focus on bottom + } + }; + })(), + printErr: (function() { + var element = document.getElementById('output'); + if (element) element.value = ''; // clear browser cache + return function(text) { + if (element && typeof(text) != "number") { + console.log(text); + if (got_log_messages) { + element.value += text + "\n"; + element.scrollTop = element.scrollHeight; // focus on bottom + } + } + }; + })(), + command: (function(cmd) { + Module.ccall('run', '', ['string'], [cmd]) + }), + prompt: (function(cmd) { + return Module.ccall('prompt', 'string', [], []) + }) + }; + function run_command() { + var cmd = document.getElementById('command').value; + document.getElementById('command').value = ''; + Module.print(Module.prompt() + cmd); + document.getElementById('wait').style.display = 'block'; + document.getElementById('input').style.display = 'none'; + + function run_command_bh() { + try { + Module.command(cmd); + } catch (e) { + Module.print('Caught JavaScript exception. (see JavaScript console for details.)'); + console.log(e); + } + document.getElementById('wait').style.display = 'none'; + document.getElementById('input').style.display = 'block'; + document.getElementById('prompt').innerText = Module.prompt(); + document.getElementById('command').focus(); + } + + window.setTimeout(run_command_bh, 50); + return false; + } + </script> + <script async type="text/javascript" src="yosys.js"></script> +</body></html> |