Node pdp11 utility can now switch to raw tty input (important for passing console data to/from the virtual serial port)
This commit is contained in:
parent
1543583c01
commit
530c24cbb8
1 changed files with 39 additions and 6 deletions
|
|
@ -38,6 +38,7 @@ var Defines = require("../../shared/es6/defines");
|
||||||
var Str = require("../../shared/es6/strlib");
|
var Str = require("../../shared/es6/strlib");
|
||||||
var Proc = require("../../shared/es6/proclib");
|
var Proc = require("../../shared/es6/proclib");
|
||||||
|
|
||||||
|
var replServer = null;
|
||||||
var idAttrs = '@';
|
var idAttrs = '@';
|
||||||
var fConsole = false;
|
var fConsole = false;
|
||||||
var fDebug = false;
|
var fDebug = false;
|
||||||
|
|
@ -410,9 +411,41 @@ if (argv['cmd'] !== undefined) {
|
||||||
sCmdPrev = "";
|
sCmdPrev = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
repl.start({
|
/**
|
||||||
prompt: "PDP11> ",
|
* startInput()
|
||||||
input: process.stdin,
|
*/
|
||||||
output: process.stdout,
|
function startInput()
|
||||||
eval: onCommand
|
{
|
||||||
});
|
var stdin = process.stdin;
|
||||||
|
console.log("switching to raw input (alt-r to return to REPL, alt-x to exit)");
|
||||||
|
stdin.setRawMode(true);
|
||||||
|
stdin.resume();
|
||||||
|
stdin.on('data', function(buf){
|
||||||
|
if (buf[0] == 0x1b && (buf[1] == 0x72 || buf[1] == 0x78)) {
|
||||||
|
stdin.removeAllListeners('data');
|
||||||
|
stdin.setRawMode(false);
|
||||||
|
stdin.pause();
|
||||||
|
if (buf[1] == 0x72) startREPL();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// process.stdout.write(buf);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* startREPL()
|
||||||
|
*/
|
||||||
|
function startREPL()
|
||||||
|
{
|
||||||
|
replServer = repl.start({
|
||||||
|
prompt: "PDP11> ",
|
||||||
|
input: process.stdin,
|
||||||
|
output: process.stdout,
|
||||||
|
eval: onCommand
|
||||||
|
});
|
||||||
|
replServer.on('exit', () => {
|
||||||
|
startInput();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
startREPL();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue