main.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/env node
  2. "use strict";
  3. import('./js/InstanceManager.mjs').then(module => {
  4. const InstanceManager = module.default;
  5. process.stdin.setRawMode(true);
  6. process.stdin.resume();
  7. process.stdin.setEncoding("utf8");
  8. console.log("Now booting, please stand by ...");
  9. const manager = new InstanceManager({ screen: false, term: false, spawnRoot: undefined });
  10. manager.getInstanceByinstName("Host").then(result => {
  11. const hostvm = result.vm;
  12. hostvm.add_listener("emulator-started", () => {
  13. process.stdout.write("Welcome to psl!");
  14. hostvm.serial0_send("\n");
  15. });
  16. hostvm.add_listener("serial0-output-byte", (byte) => {
  17. var chr = String.fromCharCode(byte);
  18. if (chr <= "~") {
  19. process.stdout.write(chr);
  20. }
  21. });
  22. process.stdin.on("data", (c) => {
  23. if (c === "\u0004") {
  24. hostvm.stop();
  25. process.stdin.pause();
  26. }
  27. else {
  28. hostvm.serial0_send(c);
  29. }
  30. });
  31. }).catch(error => {
  32. console.error(error);
  33. throw Error("Error in getting host inastance, quitting");
  34. });
  35. }).catch(error => {
  36. console.error('Error loading InstanceManager:', error);
  37. });