mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2025-02-26 22:29:56 +00:00
runEval
This commit is contained in:
parent
1ad74168d6
commit
1e2b489b07
@ -50,7 +50,7 @@ body {
|
||||
}
|
||||
#controls_top {
|
||||
padding: 0.5em;
|
||||
width:100vh;
|
||||
width:100%;
|
||||
height:3em;
|
||||
}
|
||||
div.editor {
|
||||
@ -190,9 +190,10 @@ a.dropdown-toggle {
|
||||
<span id="debug_bar">
|
||||
<button id="dbg_pause" type="button" title="Pause"><img src="images/pause.png"></button>
|
||||
<button id="dbg_go" type="button" title="Run"><img src="images/play.png"></button>
|
||||
<button id="dbg_toline" type="submit" title="Run To Line"><img src="images/runtoline.png"></button>
|
||||
<button id="dbg_step" type="submit" title="Step"><img src="images/singlestep.png"></button>
|
||||
<button id="dbg_toline" type="submit" title="Run To Line"><img src="images/runtoline.png"></button>
|
||||
<button id="dbg_reset" type="submit" title="Reset and Run To Line"><img src="images/resetandrun.png"></button>
|
||||
<!-- <button id="dbg_stepout" type="submit" title="Step Out of Subroutine">O</button>-->
|
||||
<button id="dbg_timing" type="submit" title="See Timing" style="display:none"><img src="images/timing.png"></button>
|
||||
<button id="dbg_disasm" type="submit" title="Toggle Disassembly">#</button>
|
||||
</span>
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 46d2ca39cc016a0ec826ec1bf0fd8c422985209c
|
||||
Subproject commit 97052f9149bf756ce69591e005762dadea8527a6
|
@ -342,12 +342,13 @@ var Apple2Platform = function(mainElement) {
|
||||
return false;
|
||||
});
|
||||
}
|
||||
this.runToPC = function(targetPC) {
|
||||
this.runEval = function(evalfunc) {
|
||||
var self = this;
|
||||
self.setDebugCondition(function() {
|
||||
if (debugClock++ >= debugTargetClock) {
|
||||
var thisPC = cpu.saveState().PC;
|
||||
if (thisPC == targetPC) {
|
||||
if (debugClock++ > debugTargetClock) {
|
||||
var cpuState = cpu.saveState();
|
||||
cpuState.PC = (cpuState.PC-1)&0xffff;
|
||||
if (evalfunc(cpuState)) {
|
||||
self.breakpointHit();
|
||||
debugTargetClock = debugClock;
|
||||
return true;
|
||||
|
@ -201,12 +201,13 @@ var AtariVectorPlatform = function(mainElement) {
|
||||
return false;
|
||||
});
|
||||
}
|
||||
this.runToPC = function(targetPC) {
|
||||
this.runEval = function(evalfunc) {
|
||||
var self = this;
|
||||
self.setDebugCondition(function() {
|
||||
if (debugClock++ >= debugTargetClock) {
|
||||
var thisPC = cpu.saveState().PC;
|
||||
if (thisPC == targetPC) {
|
||||
if (debugClock++ > debugTargetClock) {
|
||||
var cpuState = cpu.saveState();
|
||||
cpuState.PC = (cpuState.PC-1)&0xffff;
|
||||
if (evalfunc(cpuState)) {
|
||||
self.breakpointHit();
|
||||
debugTargetClock = debugClock;
|
||||
return true;
|
||||
|
@ -69,7 +69,7 @@ var VCSPlatform = function() {
|
||||
this.pause = function() { Javatari.room.console.pause(); }
|
||||
this.resume = function() { Javatari.room.console.go(); }
|
||||
this.step = function() { Javatari.room.console.debugSingleStepCPUClock(); }
|
||||
this.runToPC = function(pc) { Javatari.room.console.debugToPC(pc); }
|
||||
this.runEval = function(evalfunc) { Javatari.room.console.debugEval(evalfunc); }
|
||||
|
||||
this.setupDebug = function(callback) {
|
||||
Javatari.room.console.onBreakpointHit = callback;
|
||||
|
@ -481,7 +481,9 @@ function runToCursor() {
|
||||
var pc = line2offset[line];
|
||||
if (pc) {
|
||||
console.log("Run to", line, pc.toString(16));
|
||||
platform.runToPC(pc);
|
||||
platform.runEval(function(c) {
|
||||
return c.PC == pc;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -703,10 +705,11 @@ function toggleDisassembly() {
|
||||
}
|
||||
|
||||
function resetAndDebug() {
|
||||
clearBreakpoint();
|
||||
platform.reset();
|
||||
runToCursor();
|
||||
|
||||
}
|
||||
|
||||
function setupDebugControls(){
|
||||
$("#dbg_reset").click(resetAndDebug);
|
||||
$("#dbg_pause").click(pause);
|
||||
|
@ -259,7 +259,7 @@ function compileCC65(code, platform) {
|
||||
var FS = CC65['FS'];
|
||||
setupFS(FS);
|
||||
FS.writeFile("main.c", code, {encoding:'utf8'});
|
||||
CC65.callMain(['-v', '-T', '-g', '-I', '/share/include', '-t', platform, "main.c"]);
|
||||
CC65.callMain(['-v', '-T', '-g', '-Oirs', '-I', '/share/include', '-t', platform, "main.c"]);
|
||||
var asmout = FS.readFile("main.s", {encoding:'utf8'});
|
||||
return assemblelinkCA65(asmout, platform);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user