Skip to content

Commit

Permalink
UI - added overWrite / append for picklist -> to input find box
Browse files Browse the repository at this point in the history
---------------------------------------------------------------
Chip Gui "Isolation" (Issue #4)
 - exploring best way to isolate areas of interest on diagram
 - added 'Black Box', 'Clear Black Box', Raphael Box buttons

 - Black Box uses canvas 'fillrects' .. now trying to figure out how to
   restore the original canvas ... tried ctx.save(), ctx.restore() .. not
   working at the moment.

- Second option, experimenting with Raphael.js library
 - issue with creating a transparent 'raphael canvas' .. not sure if possible
   yet
 - issue with conflicts in mouse click with Raphael and existing (dynamic switching on window / object focus somehow ?

 - Last zoom still not implemented

----------------------------------------------------

Plugin / hooks - reduce 'intrusion' to one call in expertWires.js :
   setup_part4: mikeCallUserPlugins (defined in plugins.js)

  - added plugins.js as a central dispatch point for user scripts
  • Loading branch information
mstram committed Aug 12, 2011
1 parent 3058599 commit f40307f
Show file tree
Hide file tree
Showing 16 changed files with 16,007 additions and 124 deletions.
3 changes: 3 additions & 0 deletions bar.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
function t1() {
var bar = 456;
}
12 changes: 5 additions & 7 deletions custom_finds.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

//document.write("<table>")res: 159, // pads: reset
var customFind =[
'res',
Expand All @@ -18,11 +17,10 @@ var customFind =[
'pipephi2Reset0x', // a second copy of the same latch
'fetch', // internal signal
'irline3', // internal signal: PLA input - ir0 AND ir1
'ir0,ir1,ir2,ir3,ir4,ir5,ir6,ir7 // instruction register

a0,a1,a2,a3,a4,a5,a6,a7
'ir0,ir1,ir2,ir3,ir4,ir5,ir6,ir7', // instruction register
'a0,a1,a2,a3,a4,a5,a6,a7',
'ir0,ir1,ir2,ir3,ir4,ir5,ir6,ir7,a0,a1,a2,a3,a4,a5,a6,a7',
'ir0,ir1,ir2,ir3,ir4,ir5,ir6,ir7,x0,x1,x2,x3,x4,x5,x6,x7'
'x0,x1,x2,x3,x4,x5,x6,x7',

ir0,ir1,ir2,ir3,ir4,ir5,ir6,ir7,a0,a1,a2,a3,a4,a5,a6,a7

ir0,ir1,ir2,ir3,ir4,ir5,ir6,ir7,x0,x1,x2,x3,x4,x5,x6,x7
x0,x1,x2,x3,x4,x5,x6,x7
3 changes: 1 addition & 2 deletions expert.css
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,7 @@
/* class */
.mikeSortButtons {
/* margin-left: 24em; */
margin-left: 10em;

margin-left: 1em;
}


Expand Down
200 changes: 200 additions & 0 deletions expert10.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,200 @@
<!DOCTYPE html>

<head>
<title>Visual 6502 in JavaScript</title>

<!-- <style type="text/css">@import "expert.css";</style> -->

<link rel="stylesheet" href="expert.css" >

<!-- <script src="mike_expert-allinone.js"></script> -->

<!--<script src="expert-allinone_debug.js"></script> -->

<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>
<script src="3rdparty/jquery-1.3.2.min.js"> </script>
<script src="3rdparty/jquery.cookie.js"> </script>
<script src="3rdparty/splitter.js"> </script>

<script src="mike2.js"></script>
<script type="text/javascript" src="raphael.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);
mikeinit();
}
};

// 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,
});
});
</script>

</head>

<body onload="handleOnload();">
<span id="plain">
<a href="http://www.visual6502.org/faq.html">FAQ</a>&nbsp;
<a href="http://blog.visual6502.org">Blog</a>&nbsp;
<a href="http://www.visual6502.org/links.html">Links</a>&nbsp;
<a href="http://github.com/trebonian/visual6502">Source</a>&nbsp;
<a href="http://www.6502asm.com/">6502asm assembler</a>&nbsp;
<a href="http://www.e-tradition.net/bytes/6502/disassembler.html">e-tradition disassembler</a>&nbsp;
</span>

<div class="frame" id="frame">
<div class="leftcolumn" id="leftcolumn">

<div id="chipsurround" tabindex="1">
<!-- mike -->
<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">
Use 'z' or '>' to zoom in, 'x' or '<' to zoom out, click to probe signals and drag to pan.

<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 action="javascript:hiliteNodeList();">
<input type="button" value="Find:" onclick="hiliteNodeList();" />

<!-- mike -->
<input type="button" value="Add to List" onclick="mikeAddToList();" />

<input type="text" id="HighlightThese" name="HighlightThese" value="" />

<!-- mike -->
<select id="selMikeHighlightList" onchange="doMikeSelect1()">
<option value=" " selected="selected">blank</option>
</select>

<span id="mikeOptions2">
<input type="button" id="mikeButLastZoom" value="Last Zoom" onclick="mikeLastZoom()" />
<input type="button" id="mikebutresetZoom" value="Reset Zoom" onclick="mikeresetZoom()" />
</span>

<div id="mikeSortButtons">
<input type="checkbox" name="zoomOnFind" id="zoomOnFindid" onchange="mikeSetNoZoomOnFind(this)" />(No Zoom:Find)</input>
<input type="checkbox" name="sortAlpha" id="sortbyAlph" class="mikeSortButtons" onchange="mikeAlphaSort()" />(Sort by Alpha)
<input type="checkbox" name="sortSyms" id="sortBySyms" class="mikeSortButtons" onchange="mikeSymSort()" />(Sort by Symbols)
<input type="checkbox" name="appendOrOverWrite" id="appendOrOverWriteId" class="mikeSortButtons" onchange="mikeSetNodeListAppendOrReplace(this)" />(OverWrite/Append)
</div>

<!-- </form> -->
<!-- <form> -->
<!-- mike -->

<input type="button" value="Clear Highlighting" onclick="clearHighlight();" />
<span class="animatebox">
Animate during simulation:
<input type="checkbox" id="animateModeCheckbox" onchange="updateChipLayoutAnimation(this.checked)"
/></span>

<input type="button" value="Hide Chip Layout" onclick="updateChipLayoutVisibility(false)" />
<a href="" id="linkHere" >Link to this location</a>

<input type="button" value="Show Boxes" onclick="mikeShowBoxes()" />

</form>

</div>
</div> <!-- closing leftcolumn -->
<div class="rightcolumn" id="rightcolumn">
<div id="righttopdiv">
<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>
<div class="morebuttons">
<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="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>
</div>
<div style="float:right;">
<a href="http://visual6502.org/wiki/index.php?title=JssimUserHelp" target="_blank">User Guide</a>
&nbsp;
</div>
</div> <!-- buttons -->
<div class="status" id="status"><p>x: 0<br>y: 0</p>
</div> <!-- status -->

<div id="memtablediv">
<table class="memtable" id="memtable" tabindex="2"></table>
</div>
</div> <!-- righttopdiv -->

<div id="tracingdiv">
<textarea id="consolebox">
click here and type if your program handles input
</textarea>
<div id="expertControlPanel" tabindex="3">
<form action="javascript:updateLogList()">
<input type="button" value="Trace more" onclick="updateLoglevel(++loglevel)" />
<input type="button" value="Trace less" onclick="updateLoglevel(--loglevel)" />
<input type="button" value="Trace these too:" onclick="updateLogList()" />
<input type="text" id="LogThese" name="LogThese" value="" />
<input type="button" value="Log Up/Down" onclick="updateLogDirection();" />
<input type="button" value="Clear Log" onclick="updateLoglevel(loglevel)" />
</form>
<br />
</div>
<div id="logstreamscroller">
<table class="logstream" id="logstream"></table>
</div>
</div>
</div> <!-- closing rightcolumn -->
</div> <!-- closing 'frame' div -->
</body>
</html>
Loading

0 comments on commit f40307f

Please sign in to comment.