fix hex parsing code in helpful scripts

This commit is contained in:
Gordon Williams 2021-05-14 11:41:34 +01:00
parent e8f7e9c1e5
commit 4b1301f8ed

View File

@ -16,16 +16,17 @@ if (process.argv.length!=3) {
var inputFile = process.argv[2];
var hex = require("fs").readFileSync(inputFile).toString().split("\n");
var addrHi = 0;
function parseLines(dataCallback) {
var addrHi = 0;
hex.forEach(function(hexline) {
var cmd = hexline.substr(1,2);
if (cmd=="02") {
var subcmd = hexline.substr(7,2);
if (subcmd=="02") addrHi = parseInt(hexline.substr(9,4),16) << 4; // Extended Segment Address
if (subcmd=="04") addrHi = parseInt(hexline.substr(9,4),16) << 16; // Extended Linear Address
} else if (cmd=="10") {
var addr = addrHi + parseInt(hexline.substr(3,4),16);
if (DEBUG) console.log(hexline);
var bytes = hexline.substr(1,2);
var addrLo = parseInt(hexline.substr(3,4),16);
var cmd = hexline.substr(7,2);
if (cmd=="02") addrHi = parseInt(hexline.substr(9,4),16) << 4; // Extended Segment Address
else if (cmd=="04") addrHi = parseInt(hexline.substr(9,4),16) << 16; // Extended Linear Address
else if (cmd=="00") {
var addr = addrHi + addrLo;
var data = [];
for (var i=0;i<16;i++) data.push(parseInt(hexline.substr(9+(i*2),2),16));
dataCallback(addr,data);