Spaces:
Runtime error
Runtime error
| <title>Serial example</title> | |
| <script src="../build/libv86.js"></script> | |
| <script> | |
| ; | |
| window.onload = function() | |
| { | |
| var emulator = new V86({ | |
| wasm_path: "../build/v86.wasm", | |
| // Uncomment to see what's going on | |
| //screen_container: document.getElementById("screen_container"), | |
| bios: { | |
| url: "../bios/seabios.bin", | |
| }, | |
| vga_bios: { | |
| url: "../bios/vgabios.bin", | |
| }, | |
| bzimage: { | |
| url: "../images/buildroot-bzimage68.bin", | |
| async: false, | |
| }, | |
| filesystem: {}, | |
| cmdline: "tsc=reliable mitigations=off random.trust_cpu=on", | |
| autostart: true, | |
| disable_keyboard: true, | |
| }); | |
| // In this example we wait for output from the serial terminal, which | |
| // should be running busybox. We log in as soon as a prompt appears and then | |
| // retrieve a directory listing of the root directory | |
| var data = ""; | |
| var stages = [ | |
| { | |
| test: "~% ", | |
| send: "ls -1 --color=never /\n", | |
| }, | |
| { | |
| test: "~% ", | |
| send: "lua -e 'print(3+4)'\n", | |
| }, | |
| ]; | |
| var stage = 0; | |
| emulator.add_listener("serial0-output-byte", function(byte) | |
| { | |
| var char = String.fromCharCode(byte); | |
| if(char === "\r") | |
| { | |
| return; | |
| } | |
| data += char; | |
| document.getElementById("terminal").value += char; | |
| var current = stages[stage]; | |
| if(!current) | |
| { | |
| return; | |
| } | |
| if(data.endsWith(current.test)) | |
| { | |
| stage++; | |
| emulator.serial0_send(current.send); | |
| var log = "Sending: " + current.send.replace(/\n/g, "\\n") + "\n"; | |
| document.getElementById("log").value += log; | |
| } | |
| }); | |
| }; | |
| </script> | |
| <textarea readonly rows=25 cols=60 id="log">Waiting for boot ... | |
| </textarea> | |
| <textarea readonly rows=25 cols=60 id="terminal"></textarea> | |
| <div id="screen_container"> | |
| <div style="white-space: pre; font: 14px monospace; line-height: 14px"></div> | |
| <canvas style="display: none"></canvas> | |
| </div> | |