Skip to content

Instantly share code, notes, and snippets.

@trufae
Created January 3, 2022 09:59
Show Gist options
  • Select an option

  • Save trufae/d63d863d21b6383b5483c15c73ff5078 to your computer and use it in GitHub Desktop.

Select an option

Save trufae/d63d863d21b6383b5483c15c73ff5078 to your computer and use it in GitHub Desktop.
flash hexdump for banglejs2
function loadMenu() {
var menuItems = {
"Open Flash": () => openFlash(),
"Open File": () => openFile(),
"Create File": () => createFile(),
"": {
value: ""
},
"About": {
value: "me"
},
};
var menu = E.showMenu(menuItems);
}
function createFile() {
E.showMessage("Not yet implemented", "TODO");
setTimeout(loadMenu, 1000);
}
function openFile() {
E.showMessage("Not yet implemented", "TODO");
setTimeout(loadMenu, 1000);
}
var gOffset = 0;
var gPeekByte = peek8;
function redraw() {
try {
E.showMenu();
g.clear();
g.setFont("4x6:2");
} catch (e) {
console.error(e);
}
g.setColor('#000');
var addr = Number(gOffset).toString(16);
var zeropad = "0000000000".substr(0, 4 - addr.length);
g.setColor('#fff');
g.drawString("[0x" + zeropad + addr + "] flash", 0, 0);
for (i = 0; i < 128; i += 8) {
if (16 + (i / 8) > g.getHeight()) {
break;
}
var line = "";
for (var j = i; j < i + 8; j++) {
var bv = gPeekByte(gOffset + j);
var byte = Number(bv).toString(16).substring(0, 2);
byte = bv < 17 ? "0" + byte : byte;
line += ((j % 2) ? "" : " ") + byte;
}
g.setColor('#ff0');
g.drawString(line.trim(), 0, 14 + ((i / 8) * 14));
}
}
Bangle.on('drag', function(event) {
if (Math.abs(event.dy) < 3) {
if (event.y > g.getHeight() / 2) {
event.dy = -1;
} else {
event.dy = 1;
}
}
if (event.dy < 0) {
gOffset += 8;
} else {
if (gOffset < 8) {
gOffset = 0;
} else {
gOffset -= 8;
}
}
redraw();
});
function openFlash() {
gPeekByte = peek8;
redraw();
}
loadMenu();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment