2010-10-07 16:21:06 +00:00
|
|
|
<!DOCTYPE html>
|
|
|
|
|
|
|
|
<head>
|
|
|
|
<title>Visual 6502 in JavaScript</title>
|
|
|
|
<style type="text/css">@import "expert.css";</style>
|
|
|
|
<script src="segdefs.js"></script>
|
|
|
|
<script src="transdefs.js"></script>
|
|
|
|
<script src="nodenames.js"></script>
|
|
|
|
<script src="wires.js"></script>
|
|
|
|
<script src="expertWires.js"></script>
|
|
|
|
<script src="chipsim.js"></script>
|
|
|
|
<script src="memtable.js"></script>
|
|
|
|
<script src="macros.js"></script>
|
|
|
|
<script src="testprogram.js"></script>
|
2010-10-31 13:39:31 +00:00
|
|
|
<script src="3rdparty/jquery-1.3.2.min.js"></script>
|
|
|
|
<script src="3rdparty/jquery.cookie.js"></script>
|
|
|
|
<script src="3rdparty/splitter.js"></script>
|
2010-10-07 16:21:06 +00:00
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
function handleOnload() {
|
|
|
|
/MSIE (\d+\.\d+);/.test(navigator.appVersion);
|
|
|
|
IEVersion=Number(RegExp.$1);
|
|
|
|
if((navigator.appName == 'Microsoft Internet Explorer') && (IEVersion<9)){
|
|
|
|
document.getElementById('browsertrouble').innerHTML=
|
|
|
|
'<p>Sorry, '+navigator.appName+' not supported - showing you a picture instead!</p>';
|
|
|
|
document.getElementById('frame').innerHTML='<a href="browsertrouble.html"><img src="images/jssim2.png" style="border:10px"></a>';
|
|
|
|
}else{
|
|
|
|
setTimeout(setup,200);
|
|
|
|
}
|
2010-10-31 13:39:31 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
// initialise splitter (built on jquery)
|
|
|
|
$().ready(function(){
|
|
|
|
$("#frame").splitter({
|
|
|
|
type: "v",
|
|
|
|
outline: true,
|
|
|
|
minLeft: 20,
|
|
|
|
sizeLeft: 810,
|
|
|
|
resizeToWidth: true,
|
|
|
|
anchorToWindow: true,
|
|
|
|
});
|
|
|
|
$("#rightcolumn").splitter({
|
|
|
|
type: "h",
|
|
|
|
outline: true,
|
|
|
|
sizeBottom: 180,
|
|
|
|
minTop: 100,
|
|
|
|
});
|
|
|
|
});
|
2010-10-07 16:21:06 +00:00
|
|
|
</script>
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
<body onload="handleOnload();">
|
|
|
|
<span id="plain">
|
|
|
|
<a href="http://www.visual6502.org/faq.html">FAQ</a>
|
|
|
|
<a href="http://blog.visual6502.org">Blog</a>
|
2010-10-31 10:17:53 +00:00
|
|
|
<a href="http://www.visual6502.org/links.html">Links</a>
|
2010-10-31 10:22:30 +00:00
|
|
|
<a href="http://github.com/trebonian/visual6502">Source</a>
|
|
|
|
<a href="http://www.6502asm.com/">6502asm assembler</a>
|
|
|
|
<a href="http://www.e-tradition.net/bytes/6502/disassembler.html">e-tradition disassembler</a>
|
2010-10-07 16:21:06 +00:00
|
|
|
</span>
|
|
|
|
<div class="frame" id="frame">
|
2010-11-05 17:38:47 +00:00
|
|
|
<div class="leftcolumn" id="leftcolumn">
|
|
|
|
<div id="chipsurround" tabindex="1">
|
2010-10-07 16:21:06 +00:00
|
|
|
<div class="chip" id="chip">
|
|
|
|
<span id="waiting">Please wait, graphics initialising...</span>
|
|
|
|
<canvas class="chip" id="chipbg"></canvas>
|
|
|
|
<canvas class="chip" id="overlay"></canvas>
|
|
|
|
<canvas class="chip" id="hilite"></canvas>
|
|
|
|
<canvas class="chip" id="hitbuffer"></canvas>
|
|
|
|
</div>
|
|
|
|
</div> <!-- chipsurround -->
|
|
|
|
<div class="nochip" id="nochip">
|
|
|
|
<form>
|
|
|
|
<input type="button" value="Show chip layout" onclick="updateChipLayoutVisibility(true)" />
|
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
<div id="layoutControlPanel">
|
2010-10-31 10:17:53 +00:00
|
|
|
Use '>' to zoom in, '<' to zoom out, click to probe signals and drag to pan.
|
2010-10-07 16:21:06 +00:00
|
|
|
<form id="updateShow"> Show:
|
|
|
|
<input type="checkbox" name="1" id="updateShow1" onchange="updateShow(this.name,this.checked)" />(diffusion)
|
|
|
|
<input type="checkbox" name="3" id="updateShow3" onchange="updateShow(this.name,this.checked)" />(grounded diffusion)
|
|
|
|
<input type="checkbox" name="4" id="updateShow4" onchange="updateShow(this.name,this.checked)" />(powered diffusion)
|
|
|
|
<input type="checkbox" name="5" id="updateShow5" onchange="updateShow(this.name,this.checked)" />(polysilicon)
|
|
|
|
<input type="checkbox" name="0" id="updateShow0" onchange="updateShow(this.name,this.checked)" />(metal)
|
|
|
|
<input type="checkbox" name="2" id="updateShow2" onchange="updateShow(this.name,this.checked)" />(protection)
|
|
|
|
</form>
|
2010-11-08 16:36:45 +00:00
|
|
|
<form action="javascript:hiliteNodeList();">
|
2010-11-05 21:21:06 +00:00
|
|
|
<input type="button" value="Highlight:" onclick="hiliteNodeList();" />
|
|
|
|
<input type="text" id="HighlightThese" name="HighlightThese" value="" />
|
|
|
|
<input type="button" value="Clear Highlighting" onclick="clearHighlight();" />
|
2010-10-07 16:21:06 +00:00
|
|
|
<span class="animatebox">
|
|
|
|
Animate during simulation:
|
|
|
|
<input type="checkbox" id="animateModeCheckbox" onchange="updateChipLayoutAnimation(this.checked)"
|
|
|
|
/></span>
|
2010-11-05 21:21:06 +00:00
|
|
|
</form>
|
|
|
|
<form>
|
|
|
|
<input type="button" value="Hide Chip Layout" onclick="updateChipLayoutVisibility(false)" />
|
2010-10-07 16:21:06 +00:00
|
|
|
<a href="" id="linkHere" >Link to this location</a>
|
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
</div> <!-- closing leftcolumn -->
|
2010-10-31 13:39:31 +00:00
|
|
|
<div class="rightcolumn" id="rightcolumn">
|
|
|
|
<div id="righttopdiv">
|
2010-10-07 16:21:06 +00:00
|
|
|
<div class = "buttons">
|
|
|
|
<div class="twobuttons">
|
|
|
|
<a href ="javascript:stopChip()" id="stop"><img class="navstop" src="images/stop.png" title="stop"></a>
|
|
|
|
<a href ="javascript:runChip()" id="start"><img class="navplay" src="images/play.png" title="run"></a>
|
|
|
|
</div>
|
2010-11-01 18:30:22 +00:00
|
|
|
<div class="morebuttons">
|
2010-10-07 16:21:06 +00:00
|
|
|
<a href ="javascript:resetChip()"><img class="navbutton" src="images/up.png" title="reset"></a>
|
|
|
|
<a href ="javascript:stepBack()"><img class="navbutton" src="images/prev.png" title="back"></a>
|
2010-11-01 18:03:30 +00:00
|
|
|
<a href ="javascript:stepForward()"><img class="navbutton" src="images/next.png" title="forward"></a>
|
|
|
|
<a href ="javascript:goUntilSyncOrWrite()"><img class="navbutton" src="images/singlestep.png" title="step"></a>
|
|
|
|
<a href ="javascript:goFor()"><img class="navbutton" src="images/fastforward.png" title="fastforward"></a>
|
2010-10-07 16:21:06 +00:00
|
|
|
</div>
|
2010-10-31 13:39:31 +00:00
|
|
|
</div> <!-- buttons -->
|
2010-10-07 16:21:06 +00:00
|
|
|
<div class="status" id="status"><p>x: 0<br>y: 0</p>
|
2010-10-31 13:39:31 +00:00
|
|
|
</div> <!-- status -->
|
|
|
|
|
|
|
|
<div id="memtablediv">
|
2010-11-05 17:38:47 +00:00
|
|
|
<table class="memtable" id="memtable" tabindex="2"></table>
|
2010-10-31 13:39:31 +00:00
|
|
|
</div>
|
|
|
|
</div> <!-- righttopdiv -->
|
|
|
|
|
|
|
|
<div id="tracingdiv">
|
2010-11-08 22:03:47 +00:00
|
|
|
<textarea id="consolebox">
|
|
|
|
click here and type if your program handles input
|
|
|
|
</textarea>
|
|
|
|
<div id="expertControlPanel" tabindex="3">
|
2010-11-01 19:36:52 +00:00
|
|
|
<form action="javascript:updateLogList()">
|
2010-10-31 13:39:31 +00:00
|
|
|
<input type="button" value="Trace more" onclick="updateLoglevel(++loglevel)" />
|
|
|
|
<input type="button" value="Trace less" onclick="updateLoglevel(--loglevel)" />
|
2010-11-01 19:36:52 +00:00
|
|
|
<input type="button" value="Trace these too:" onclick="updateLogList()" />
|
|
|
|
<input type="text" id="LogThese" name="LogThese" value="" />
|
2010-11-05 19:53:22 +00:00
|
|
|
<input type="button" value="Log Up/Down" onclick="updateLogDirection();" />
|
2010-11-01 19:36:52 +00:00
|
|
|
<input type="button" value="Clear Log" onclick="updateLoglevel(loglevel)" />
|
2010-10-31 13:39:31 +00:00
|
|
|
</form>
|
|
|
|
<br />
|
|
|
|
</div>
|
|
|
|
<div id="logstreamscroller">
|
|
|
|
<table class="logstream" id="logstream"></table>
|
|
|
|
</div>
|
|
|
|
</div>
|
2010-10-07 16:21:06 +00:00
|
|
|
</div> <!-- closing rightcolumn -->
|
|
|
|
</div> <!-- closing 'frame' div -->
|
|
|
|
</body>
|
|
|
|
</html>
|