mz700-js
Version:
MZ-700 Full JavaScript Emulator
40 lines (38 loc) • 1.26 kB
JavaScript
;
var CliCommand = require("./command");
var { parseAddress } = require("../../js/lib/parse-addr");
var { HEX } = require("../../js/lib/number-util");
module.exports = new CliCommand("bp", function(mz700, args) {
var bp = mz700.getBreakPoints();
if(args.length > 0) {
var bp_cmd = args[0];
if(bp_cmd != "set" && bp_cmd != "rm" && bp_cmd != "clear") {
console.log("Error: Unrecognized", bp_cmd);
return false;
}
if(bp_cmd == "clear") {
if(args.length > 1) {
console.log("Error: No a parameter for 'clear'");
return false;
}
mz700.clearBreakPoints();
return;
}
var address_list = args.slice(1);
address_list.forEach(function(addrTok) {
var addr = parseAddress(addrTok);
if(bp_cmd == "set") {
mz700.addBreak(addr, 1, null);
} else if(bp_cmd == "rm") {
mz700.removeBreak(addr, 1, null);
}
});
}
bp.forEach(function(state, addr) {
if(state != null) {
console.log(
"ADDR:" + HEX(parseInt(addr), 4) + "H",
state);
}
});
});