mirror of https://github.com/geohot/qira
reg colors work in haddrline and hexdump
This commit is contained in:
parent
5096a04ca2
commit
96a0385623
|
@ -307,6 +307,7 @@ def getregisters(forknum, clnum):
|
|||
rret['regactions'] = "regreadwrite"
|
||||
else:
|
||||
rret['regactions'] = "regwrite"
|
||||
rret['num'] = i
|
||||
ret.append(rret)
|
||||
|
||||
emit('registers', ret)
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
import random
|
||||
|
||||
c = []
|
||||
for i in range(40):
|
||||
r = random.randint(40, 192)
|
||||
g = random.randint(40, 192)
|
||||
b = random.randint(40, 192)
|
||||
c.append("#%02X%02X%02X" % (r,g,b))
|
||||
|
||||
print c
|
||||
|
|
@ -131,7 +131,7 @@ var baseevents = {
|
|||
return false;
|
||||
},
|
||||
'click .data': function(e) {
|
||||
var daddr = e.target.getAttribute('daddr');
|
||||
var daddr = e.target.getAttribute('id').split("_")[1];
|
||||
Session.set('daddr', daddr);
|
||||
},
|
||||
'click .register': function(e) {
|
||||
|
@ -163,7 +163,7 @@ var basedblevents = {
|
|||
return false;
|
||||
},
|
||||
'click .data': function(e) {
|
||||
var daddr = e.target.getAttribute('daddr');
|
||||
var daddr = e.target.getAttribute('id').split("_")[1];
|
||||
Session.set('daddr', daddr);
|
||||
},
|
||||
};
|
||||
|
|
|
@ -35,30 +35,30 @@ Deps.autorun(function() {
|
|||
}
|
||||
});
|
||||
|
||||
function draw_hflag(addr, name, color) {
|
||||
draw_hflag = function(addr, name, color, alwaysontop) {
|
||||
$("#hflag_"+name).remove();
|
||||
var t = $("#pchunk_"+string_round(addr, 3));
|
||||
if (t.length == 1) {
|
||||
p("drawing hflag");
|
||||
//p("drawing hflag");
|
||||
var hflag = $('<div class="hflag" id="hflag_'+name+'"></div>');
|
||||
if (alwaysontop) hflag.css("z-index", 2);
|
||||
hflag.css("background-color", color);
|
||||
var off = ((((fhex(addr)%PAGE_SIZE)*1.0)/PAGE_SIZE) * t.width()) - (hflag.width()/2.0);
|
||||
p(off);
|
||||
hflag.css("margin-left", off+"px");
|
||||
t.append(hflag);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Deps.autorun(function() {
|
||||
var addr = Session.get('iaddr');
|
||||
if (addr === undefined) return;
|
||||
draw_hflag(addr, 'iaddr', '#AA0000');
|
||||
draw_hflag(addr, 'iaddr', '#AA0000', true);
|
||||
});
|
||||
|
||||
Deps.autorun(function() {
|
||||
var addr = Session.get('daddr');
|
||||
if (addr === undefined) return;
|
||||
draw_hflag(addr, 'daddr', 'yellow');
|
||||
draw_hflag(addr, 'daddr', 'yellow', true);
|
||||
});
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
stream = io.connect(STREAM_URL);
|
||||
|
||||
var regcolors = ['#59AE3F', '#723160', '#2A80A2', '#9E66BD', '#BC8D6B', '#3F3EAC', '#BC48B8', '#6B7C76', '#5FAC7F', '#A69B71', '#874535', '#AD49BF', '#73356F', '#55A4AC', '#988590', '#505C62', '#404088', '#56726B', '#BAAC62', '#454066', '#BCAEAA', '#4E7F6A', '#3960B5', '#295231', '#3B37A5', '#6A9191', '#976394', '#7F957D', '#B7AFBD', '#BD4A70', '#A35169', '#2F2D95', '#8879A8', '#8D3A8E', '#636E7C', '#82688D', '#9FA893', '#2A6885', '#812C87', '#568E71'];
|
||||
|
||||
var current_regs = undefined;
|
||||
|
||||
stream.on('maxclnum', function(msg) {
|
||||
update_maxclnum(msg);
|
||||
});
|
||||
|
@ -8,6 +12,21 @@ stream.on('pmaps', function(msg) {
|
|||
Session.set('pmaps', msg)
|
||||
});
|
||||
|
||||
function redraw_reg_flags() {
|
||||
$(".rflag").remove();
|
||||
if (current_regs !== undefined) {
|
||||
for (r in current_regs) {
|
||||
var th = current_regs[r];
|
||||
var t = $('#data_'+th.value);
|
||||
if (t.length == 1) {
|
||||
var rr = $('<div class="rflag"></div>');
|
||||
rr.css("background-color", regcolors[th.num]);
|
||||
t.prepend(rr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Meteor.startup(function() {
|
||||
$("#hexdump")[0].addEventListener("mousewheel", function(e) {
|
||||
if (e.wheelDelta < 0) {
|
||||
|
@ -59,7 +78,7 @@ stream.on('memory', function(msg) {
|
|||
me = "0x"+me;
|
||||
var exclass = "";
|
||||
if (addr+i == daddr) { exclass = "highlight"; }
|
||||
html += '<td colspan="'+PTRSIZE+'" class="data '+a+' '+exclass+'" daddr='+hex(addr+i)+">"+me+"</td>";
|
||||
html += '<td colspan="'+PTRSIZE+'" class="data '+a+' '+exclass+'" id=data_'+hex(addr+i)+">"+me+"</td>";
|
||||
} else {
|
||||
for (var j = 0; j < PTRSIZE; j++) {
|
||||
var ii = msg['dat'][addr+i+j];
|
||||
|
@ -71,7 +90,7 @@ stream.on('memory', function(msg) {
|
|||
}
|
||||
var exclass = "";
|
||||
if (addr+i+j == daddr) { exclass = "highlight"; }
|
||||
html += '<td class="data '+exclass+'" daddr='+hex(addr+i+j)+">"+me+"</td>";
|
||||
html += '<td class="data '+exclass+'" id=data_'+hex(addr+i+j)+">"+me+"</td>";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -94,12 +113,14 @@ stream.on('memory', function(msg) {
|
|||
}
|
||||
html += "</tr></table>";
|
||||
$("#hexdump")[0].innerHTML = html;
|
||||
redraw_reg_flags();
|
||||
});
|
||||
|
||||
|
||||
|
||||
Template.regviewer.hexvalue = function() {
|
||||
return this.value;
|
||||
Template.regviewer.regcolor = function() {
|
||||
// draw the hflags here
|
||||
draw_hflag(this.value, this.name, regcolors[this.num]);
|
||||
return regcolors[this.num];
|
||||
};
|
||||
|
||||
Template.regviewer.datatype = function() {
|
||||
|
@ -130,6 +151,8 @@ Deps.autorun(function() {
|
|||
});
|
||||
|
||||
stream.on('registers', function(msg) {
|
||||
current_regs = msg;
|
||||
redraw_reg_flags();
|
||||
$('#regviewer')[0].innerHTML = "";
|
||||
var tsize = msg[0]['size'];
|
||||
if (tsize > 0) PTRSIZE = tsize;
|
||||
|
|
12
web/qira.css
12
web/qira.css
|
@ -231,7 +231,9 @@ body {
|
|||
|
||||
.data {
|
||||
text-align: right;
|
||||
/*padding-left: 2px;*/
|
||||
min-width: 18px;
|
||||
padding-top: 0px;
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
|
||||
.datachange {
|
||||
|
@ -240,10 +242,12 @@ body {
|
|||
|
||||
.datainstruction {
|
||||
color: #CC0000;
|
||||
min-width: 84px;
|
||||
}
|
||||
|
||||
.datamemory {
|
||||
color: #888800;
|
||||
min-width: 84px;
|
||||
}
|
||||
|
||||
.hdatainstruction {
|
||||
|
@ -260,6 +264,12 @@ body {
|
|||
font-family: monospace;
|
||||
}
|
||||
|
||||
.rflag {
|
||||
width: 3px;
|
||||
height: 12px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.regread {
|
||||
background-color: #666644;
|
||||
}
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
<template name="regviewer">
|
||||
{{#each regs}}
|
||||
<div class="reg {{regactions}}">
|
||||
<span class="register">{{name}}: </span><span class="{{datatype}} {{isselected}}">{{hexvalue}}</span>
|
||||
<span class="register" style="color:{{regcolor}}">{{name}}: </span><span class="{{datatype}} {{isselected}}">{{value}}</span>
|
||||
</div>
|
||||
{{/each}}
|
||||
</template>
|
||||
|
|
Loading…
Reference in New Issue