mirror of
https://github.com/trebonian/visual6502.git
synced 2024-12-21 21:29:16 +00:00
137 lines
5.4 KiB
HTML
137 lines
5.4 KiB
HTML
<!DOCTYPE html>
|
|
|
|
<head>
|
|
<title>Visual 6502 in JavaScript</title>
|
|
<style type="text/css">@import "wires.css";</style>
|
|
<script src="segdefs.js"></script>
|
|
<script src="transdefs.js"></script>
|
|
<script src="nodenames.js"></script>
|
|
<script src="wires.js"></script>
|
|
<script src="chipsim.js"></script>
|
|
<script src="memtable.js"></script>
|
|
<script src="macros.js"></script>
|
|
|
|
<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);
|
|
}
|
|
}
|
|
</script>
|
|
|
|
</head>
|
|
|
|
<body onload="handleOnload();">
|
|
<div id="basicModeText1">
|
|
<br />
|
|
<span id="title"><a href="http://visual6502.org">The Visual 6502</a></span>
|
|
<br />
|
|
</div>
|
|
<span id="plain">
|
|
<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> 
|
|
<div id="basicModeText2">
|
|
<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 />
|
|
</div>
|
|
</span>
|
|
<div class="frame" id="frame">
|
|
<div class="chip" id="chip">
|
|
<span id="waiting">Please wait while graphics is 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 class="nochip" id="nochip" style="display:none">
|
|
<form>
|
|
<input type="button" value="Show chip layout" onclick="updateChipLayoutVisibility(true)" />
|
|
</form>
|
|
</div>
|
|
<div class = "buttons">
|
|
<div style="position:relative; float:left;">
|
|
<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>
|
|
<div style="float:left;">
|
|
<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>
|
|
<a href ="javascript:stepForward()"><img class="navbutton" src="images/next.png" title="step"></a>
|
|
<span>Expert:
|
|
<input type="checkbox" id="expertModeCheckbox" name="0" onchange="updateExpertMode(this.checked)" />
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<p class="status" id="status">x: 0<br>y: 0</p>
|
|
<table class="memtable" id="memtable"></table>
|
|
</div>
|
|
<div id="layoutControlPanel" style="display:none">
|
|
<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>
|
|
<form>
|
|
<input type="button" value="Hide Chip Layout" onclick="updateChipLayoutVisibility(false)" />
|
|
<input type="button" value="Clear Highlighting" onclick="clearHighlight()" />
|
|
<span style="border:thin solid;padding:2px;border-color:gray">
|
|
Animate during simulation:
|
|
<input type="checkbox" id="animateModeCheckbox" onchange="updateChipLayoutAnimation(this.checked)"
|
|
/></span>
|
|
|
|
<a href="" style="padding:2px;" id="linkHere" >Link to this location</a>
|
|
</form>
|
|
</div>
|
|
<div id="expertControlPanel" style="display:none">
|
|
<form>
|
|
<input type="button" value="Trace more" onclick="updateLoglevel(++loglevel)" />
|
|
<input type="button" value="Trace less" onclick="updateLoglevel(--loglevel)" />
|
|
</form>
|
|
<br />
|
|
<table class="logstream" id="logstream"></table>
|
|
</div>
|
|
<br />
|
|
Source code is available on <a href="http://github.com/trebonian/visual6502">github visual6502</a>.
|
|
Online 6502 <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 />
|
|
In addition to this JavaScript project, see our <a href="../python6502.html">Python-based simulator</a> which may be easier to customize, verify, and apply to the study of long programs.<br />
|
|
<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>
|
|
|
|
</body>
|
|
</html>
|