nicer break expression dialog
This commit is contained in:
parent
070a67a917
commit
5f61521c6f
29
index.html
29
index.html
|
@ -244,7 +244,7 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
|
||||||
<!--<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>-->
|
<!--<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>-->
|
||||||
<!--</div>-->
|
<!--</div>-->
|
||||||
<div id="pleaseWaitModal" class="modal fade">
|
<div id="pleaseWaitModal" class="modal fade">
|
||||||
<div class="modal-dialog modal-lg" role="document">
|
<div class="modal-dialog modal-md" role="document">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
Please wait...
|
Please wait...
|
||||||
|
@ -257,7 +257,7 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="videoPreviewModal" class="modal fade">
|
<div id="videoPreviewModal" class="modal fade">
|
||||||
<div class="modal-dialog modal-lg" role="document">
|
<div class="modal-dialog modal-md" role="document">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h3 class="modal-title">Video Preview - Right-click to save</h3>
|
<h3 class="modal-title">Video Preview - Right-click to save</h3>
|
||||||
|
@ -294,8 +294,27 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="debugExprModal" class="modal fade">
|
||||||
|
<div class="modal-dialog modal-md" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h3 class="modal-title">Break Expression</h3>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<p>Enter a break expression:</p>
|
||||||
|
<p><input id="debugExprInput" size="60"></input></p>
|
||||||
|
<p>Examples:</p>
|
||||||
|
<pre id="debugExprExamples"></pre>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" id="debugExprSubmit">Debug</button>
|
||||||
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div id="importGithubModal" class="modal fade">
|
<div id="importGithubModal" class="modal fade">
|
||||||
<div class="modal-dialog modal-lg" role="document">
|
<div class="modal-dialog modal-md" role="document">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h3 class="modal-title">Import Project from GitHub</h3>
|
<h3 class="modal-title">Import Project from GitHub</h3>
|
||||||
|
@ -313,7 +332,7 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="publishGithubModal" class="modal fade">
|
<div id="publishGithubModal" class="modal fade">
|
||||||
<div class="modal-dialog modal-lg" role="document">
|
<div class="modal-dialog modal-md" role="document">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h3 class="modal-title">Publish Project on GitHub</h3>
|
<h3 class="modal-title">Publish Project on GitHub</h3>
|
||||||
|
@ -344,7 +363,7 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="pushGithubModal" class="modal fade">
|
<div id="pushGithubModal" class="modal fade">
|
||||||
<div class="modal-dialog modal-lg" role="document">
|
<div class="modal-dialog modal-md" role="document">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h3 class="modal-title">Push Project Changes to GitHub</h3>
|
<h3 class="modal-title">Push Project Changes to GitHub</h3>
|
||||||
|
|
39
src/ui.ts
39
src/ui.ts
|
@ -1070,15 +1070,36 @@ function resetAndDebug() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function _breakExpression() {
|
function _breakExpression() {
|
||||||
console.log(platform.saveState());
|
var modal = $("#debugExprModal");
|
||||||
// TODO: better
|
var btn = $("#debugExprSubmit");
|
||||||
var exprs = window.prompt("Enter break expression", lastBreakExpr);
|
$("#debugExprInput").val(lastBreakExpr);
|
||||||
if (exprs) {
|
$("#debugExprExamples").text(getDebugExprExamples());
|
||||||
var fn = new Function('c', 'return (' + exprs + ');').bind(platform);
|
modal.modal('show');
|
||||||
setupBreakpoint();
|
btn.off('click').on('click', () => {
|
||||||
platform.runEval(fn as DebugEvalCondition);
|
var exprs = $("#debugExprInput").val()+"";
|
||||||
lastBreakExpr = exprs;
|
modal.modal('hide');
|
||||||
}
|
breakExpression(exprs);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function getDebugExprExamples() : string {
|
||||||
|
var state = platform.saveState && platform.saveState();
|
||||||
|
var cpu = platform.getCPUState && platform.getCPUState();
|
||||||
|
console.log(cpu, state);
|
||||||
|
var s = '';
|
||||||
|
if (cpu.PC) s += "c.PC == 0x" + hex(cpu.PC) + "\n";
|
||||||
|
if (cpu.SP) s += "c.SP < 0x" + hex(cpu.SP) + "\n";
|
||||||
|
if (platform.readAddress) s += "this.readAddress(0x1234) == 0x0\n";
|
||||||
|
if (platform.readVRAMAddress) s += "this.readVRAMAddress(0x1234) != 0x80\n";
|
||||||
|
if (platform.getRasterPosition) s += "this.getRasterPosition().y > 222\n";
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
function breakExpression(exprs : string) {
|
||||||
|
var fn = new Function('c', 'return (' + exprs + ');').bind(platform);
|
||||||
|
setupBreakpoint();
|
||||||
|
platform.runEval(fn as DebugEvalCondition);
|
||||||
|
lastBreakExpr = exprs;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSymbolAtAddress(a : number) {
|
function getSymbolAtAddress(a : number) {
|
||||||
|
|
Loading…
Reference in New Issue