--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<link href="styles.css" rel="stylesheet" type="text/css"/>
+<script src="scripts.js" type="text/javascript"></script>
+<title>GbE Registers</title>
+</head>
+<body>
+
+
+<h2>GbE Registers</h2>
+<form acion="">
+<table class="form"><tr class="head"><th colspan=2>Configuration
+<tr><td>Board<td><input onChange="setValues()" type="text" id="form_board" name="board" maxlength="4" value="ffff">
+<tr><td>Update Interval (ms)<td><input onChange="setValues()" type="text" id="form_rate" name="rate" maxlength="5" value="1000">
+<tr><td><td><input type="button" onClick="setValues()" value="OK">
+</table>
+</form>
+
+<div style="float:left"><table id="contentregs"><tr><th>Register<th>Values</table></div>
+
+
+<script language="javascript">
+var updaterate = document.getElementById("form_rate").value;
+var board = document.getElementById("form_board").value;
+var channels = document.getElementById("form_channels").value;
+var oldvalues = {};
+
+var regnames = new Array("debug<br>channels<br>ref input","window bef.<br>window aft.",
+ "valid trg","valid tmg trg","valid notmg","invalid trg","multi trg",
+ "spurious trg","wrong rdo","spikes","idle time","wait time",
+ "releases","rdo time","basic ctrl","act chan 1","act chan 2");
+
+var updateRegsTask;
+
+
+function update(data) {
+ if(!document.getElementById("content").innerHTML) return;
+ var b = data.split("&");
+ var c = {};
+ o = "<tr class=\"head\"><th>Reg<th>Channel";
+
+ for(j=0;j<b.length-1;j++) {
+ c[j] = b[j].split(" ");
+ if(!oldvalues[j]) oldvalues[j] = c[j];
+ o += "<th>"+c[j][0];
+ }
+
+ for(i = 1; i <= channels; i++) {
+ o += "<tr class=\""+(i%2?"odd":"even")+"\"><th>"+(i-1+0xc000).toString(16)+"<th>"+(i-1);
+ for(j=0;j<b.length-1;j++) {
+ if(differences) {
+ val = (c[j][i] & 0xFFFFFF)- ((oldvalues[j][i]||0) & 0xFFFFFF);
+ if (val < 0) {
+ val += 0x1000000;
+ }
+ }
+ else {
+ val = c[j][i] & 0xFFFFFF;
+ }
+ if(showstatus)
+ o += "<td class=\""+((c[j][i] &0x80000000)?"over":"under")+"\">"+(val);
+ else
+ o += "<td>"+(val);
+ }
+ }
+ oldvalues = c;
+ document.getElementById("content").innerHTML = o;
+ }
+
+function setValues() {
+ updaterate = document.getElementById("form_rate").value;
+ board = document.getElementById("form_board").value;
+ split = document.getElementById("form_split").checked?"-2":"";
+ differences= document.getElementById("form_diff").checked;
+ showstatus = document.getElementById("form_status").checked;
+ channels = document.getElementById("form_channels").value;
+ clearInterval(updateTask);
+ updateTask = setInterval("getdata('get.pl?"+board+"-c000-"+channels+split+"',update)",updaterate);
+ clearInterval(updateRegsTask);
+ updateRegsTask = setInterval("getdata('getmultreg.pl?"+board+"-"+reglist+"',updateregs)",updaterate);
+
+ }
+
+function updateregs(data) {
+ if(!document.getElementById("contentregs").innerHTML) return;
+ var b = data.split("&");
+ var c = {};
+ o = "<tr class=\"head\"><th>Reg<th>Content";
+
+ for(j=0;j<b.length-1;j++) {
+ c[j] = b[j].split(" ");
+ o += "<th>"+c[j][0];
+ }
+
+ for(i = 0; i < 17; i++) {
+ if(i==0 || i==1 || i==
+ o += "<tr class=\""+(i%2?"odd":"even")+"\"><th>"+((regs[i]+0x83E0).toString(16)+"<td>"+regnames[i];
+
+
+ for(j=0;j<b.length-1;j++) {
+ val = c[j][i+1];
+ o += "<td>";
+ o += val;
+ }
+ }
+ document.getElementById("contentregs").innerHTML = o;
+ }
+
+
+
+updateRegsTask = setInterval("getdata('getmultreg.pl?"+board+"-"+reglist+"',updateregs)",updaterate);
+
+
+
+</script>
+</body></html>