mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2025-02-16 17:30:27 +00:00
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>-->
|
||||
<!--</div>-->
|
||||
<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-body">
|
||||
Please wait...
|
||||
@ -257,7 +257,7 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
|
||||
</div>
|
||||
</div>
|
||||
<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-header">
|
||||
<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 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 class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-dialog modal-md" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 class="modal-title">Import Project from GitHub</h3>
|
||||
@ -313,7 +332,7 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
|
||||
</div>
|
||||
</div>
|
||||
<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-header">
|
||||
<h3 class="modal-title">Publish Project on GitHub</h3>
|
||||
@ -344,7 +363,7 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
|
||||
</div>
|
||||
</div>
|
||||
<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-header">
|
||||
<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() {
|
||||
console.log(platform.saveState());
|
||||
// TODO: better
|
||||
var exprs = window.prompt("Enter break expression", lastBreakExpr);
|
||||
if (exprs) {
|
||||
var fn = new Function('c', 'return (' + exprs + ');').bind(platform);
|
||||
setupBreakpoint();
|
||||
platform.runEval(fn as DebugEvalCondition);
|
||||
lastBreakExpr = exprs;
|
||||
}
|
||||
var modal = $("#debugExprModal");
|
||||
var btn = $("#debugExprSubmit");
|
||||
$("#debugExprInput").val(lastBreakExpr);
|
||||
$("#debugExprExamples").text(getDebugExprExamples());
|
||||
modal.modal('show');
|
||||
btn.off('click').on('click', () => {
|
||||
var exprs = $("#debugExprInput").val()+"";
|
||||
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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user