2010-09-18 16:56:48 +00:00
|
|
|
<!DOCTYPE html>
|
|
|
|
|
|
|
|
<head>
|
2010-09-18 23:59:41 +00:00
|
|
|
<title>Visual 6502 in JavaScript</title>
|
2010-10-30 18:59:00 +00:00
|
|
|
|
2010-11-01 17:00:27 +00:00
|
|
|
<!-- by default, index.html will run in kiosk mode -->
|
|
|
|
<style type="text/css">@import "kiosk.css";</style>
|
|
|
|
<script src="segdefs.js"></script>
|
|
|
|
<script src="transdefs.js"></script>
|
|
|
|
<script src="nodenames.js"></script>
|
|
|
|
<script src="kioskWires.js"></script>
|
|
|
|
<script src="wires.js"></script>
|
|
|
|
<script src="chipsim.js"></script>
|
|
|
|
<script src="memtable.js"></script>
|
|
|
|
<script src="macros.js"></script>
|
2010-11-08 22:29:08 +00:00
|
|
|
<script src="testprogram.js"></script>
|
2010-11-01 17:00:27 +00:00
|
|
|
|
2010-10-30 18:59:00 +00:00
|
|
|
<script type="text/javascript">
|
|
|
|
function handleOnload() {
|
2010-11-01 17:00:27 +00:00
|
|
|
// two checks and fixes here:
|
|
|
|
// - replace the dynamic content with an image if running older versions of IE
|
|
|
|
// - redirect to the expert page if we find any query parameters
|
|
|
|
//
|
|
|
|
/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{
|
|
|
|
var suffix=location.search;
|
|
|
|
var path=location.pathname;
|
|
|
|
// ensure we always have a trailing slash
|
|
|
|
path=path.replace("index.html","").replace(/\/?$/,"/");
|
|
|
|
|
|
|
|
if (suffix != "") {
|
|
|
|
// redirect to the expert page
|
|
|
|
var prefix=location.protocol+"//"+location.host+path;
|
2010-10-30 18:59:00 +00:00
|
|
|
window.location.replace(prefix+"expert.html"+suffix);
|
|
|
|
return;
|
2010-11-01 17:00:27 +00:00
|
|
|
} else {
|
|
|
|
// normal case: start the simulator
|
|
|
|
setTimeout(setup,200);
|
2010-10-30 18:59:00 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
2010-09-18 16:56:48 +00:00
|
|
|
</head>
|
|
|
|
|
2010-10-30 18:59:00 +00:00
|
|
|
<body onload="handleOnload();">
|
2010-11-01 17:00:27 +00:00
|
|
|
<br />
|
|
|
|
<span id="title"><a href="http://visual6502.org">The Visual 6502</a></span>
|
|
|
|
<span id="plain">
|
|
|
|
<br />
|
|
|
|
<a href="http://www.visual6502.org/faq.html">FAQ</a>
|
|
|
|
<a href="http://blog.visual6502.org">Blog</a>
|
|
|
|
<a href="http://www.visual6502.org/links.html">Links</a> 
|
|
|
|
<br /><br />
|
|
|
|
This simulator uses HTML5 features only found on the latest versions of browsers and needs
|
|
|
|
lots of RAM. If you have trouble, please <a href="browsertrouble.html">check compatibility.</a>
|
|
|
|
<br />
|
|
|
|
<span id="browsertrouble"></span>
|
|
|
|
<br />
|
|
|
|
Hit '>' to zoom in, '<' to zoom out
|
|
|
|
<br />
|
|
|
|
Left-click and drag to scroll around
|
|
|
|
<br />
|
|
|
|
Enter your own program into the array of RAM
|
|
|
|
<br />
|
|
|
|
<br />
|
|
|
|
</span>
|
|
|
|
<div class="frame" id="frame">
|
|
|
|
<div class="chip" id="chip">
|
|
|
|
<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 class = "buttons">
|
|
|
|
<div style="position:relative; float:left;">
|
|
|
|
<a href ="javascript:stopChip()"id="stop"><img class="navstop" src="images/stop.png"></a>
|
|
|
|
<a href ="javascript:runChip()" id="start"><img class="navplay" src="images/play.png"></a>
|
|
|
|
</div>
|
|
|
|
<div style="float:left;">
|
|
|
|
<a href ="javascript:resetChip()"><img class="navbutton" src="images/up.png"></a>
|
|
|
|
<a href ="javascript:stepBack()"><img class="navbutton" src="images/prev.png"></a>
|
|
|
|
<a href ="javascript:stepForward()"><img class="navbutton" src="images/next.png"></a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<p class="status" id="status">x: 0<br>y: 0</p>
|
|
|
|
<table class="memtable" id="memtable"></table>
|
|
|
|
</div>
|
|
|
|
<div id="updateShow">
|
|
|
|
</div>
|
|
|
|
<br />
|
|
|
|
<br />
|
|
|
|
Source code is available on <a href="http://github.com/trebonian/visual6502">github visual6502</a>.
|
|
|
|
Use the online <a href="http://www.6502asm.com/">emulator and assembler</a> from 6502asm.com
|
|
|
|
and <a href="http://www.e-tradition.net/bytes/6502/disassembler.html">disassembler</a> from e-tradition.net
|
|
|
|
<br />
|
|
|
|
For in-depth 6502 investigation and some more advanced features, try our <a href="/JSSim/expert.html">Experimenter's (Beta) version</a>.
|
|
|
|
<br />
|
|
|
|
<br />
|
|
|
|
|
|
|
|
<script type="text/javascript"><!--
|
|
|
|
google_ad_client = "pub-9008420149077488";
|
|
|
|
/* 728x90, created 9/22/10 */
|
|
|
|
google_ad_slot = "4303982675";
|
|
|
|
google_ad_width = 728;
|
|
|
|
google_ad_height = 90;
|
|
|
|
//-->
|
|
|
|
</script>
|
|
|
|
<script type="text/javascript"
|
|
|
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
|
|
|
</script>
|
|
|
|
|
2010-09-18 16:56:48 +00:00
|
|
|
</body>
|
|
|
|
</html>
|