mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2024-11-28 23:49:20 +00:00
took maxCycles out of advanceFrame()
This commit is contained in:
parent
69f4eed8a7
commit
f6cc973cdd
@ -1042,7 +1042,7 @@ export abstract class BaseMachinePlatform<T extends Machine> extends BaseDebugPl
|
||||
}
|
||||
|
||||
advance(novideo:boolean) {
|
||||
this.machine.advanceFrame(999999, this.getDebugCallback());
|
||||
this.machine.advanceFrame(this.getDebugCallback());
|
||||
if (!novideo && this.video) this.video.updateFrame();
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@ export interface InstructionBased {
|
||||
export type TrapCondition = () => boolean;
|
||||
|
||||
export interface FrameBased {
|
||||
advanceFrame(maxClocks:number, trap:TrapCondition) : number;
|
||||
advanceFrame(trap:TrapCondition) : number;
|
||||
}
|
||||
|
||||
export interface VideoSource {
|
||||
@ -363,7 +363,7 @@ export abstract class BasicScanlineMachine extends BasicMachine implements Raste
|
||||
|
||||
frameCycles : number;
|
||||
|
||||
advanceFrame(maxClocks:number, trap) : number {
|
||||
advanceFrame(trap: TrapCondition) : number {
|
||||
this.preFrame();
|
||||
var clock = 0;
|
||||
var endLineClock = 0;
|
||||
|
@ -218,8 +218,8 @@ export class AppleII extends BasicScanlineMachine {
|
||||
drawScanline() {
|
||||
// TODO: draw scanline via ap2disp
|
||||
}
|
||||
advanceFrame(maxClocks:number, trap) : number {
|
||||
var clocks = super.advanceFrame(maxClocks, trap);
|
||||
advanceFrame(trap) : number {
|
||||
var clocks = super.advanceFrame(trap);
|
||||
this.ap2disp && this.ap2disp.updateScreen();
|
||||
return clocks;
|
||||
}
|
||||
|
@ -374,7 +374,7 @@ export class Atari7800 extends BasicMachine implements RasterFrameBased {
|
||||
return clk;
|
||||
}
|
||||
|
||||
advanceFrame(maxClocks, trap) : number {
|
||||
advanceFrame(trap) : number {
|
||||
var idata = this.pixels;
|
||||
var iofs = 0;
|
||||
var rgb;
|
||||
|
@ -349,7 +349,7 @@ export class C64 extends BasicMachine implements RasterFrameBased {
|
||||
else return this.ram[a];
|
||||
}
|
||||
|
||||
advanceFrame(maxClocks, trap) : number {
|
||||
advanceFrame(trap) : number {
|
||||
var idata = this.pixels;
|
||||
var iofs = 0;
|
||||
var vicClocks = cpuClocksPreDMA;
|
||||
@ -362,7 +362,7 @@ export class C64 extends BasicMachine implements RasterFrameBased {
|
||||
// TODO: https://www.c64-wiki.com/wiki/Raster_interrupt
|
||||
if (this.vic.regs[0x19] & 0x1) {
|
||||
this.vic.regs[0x19] &= 0x7e;
|
||||
this.cpu.IRQ();
|
||||
//TODO: this.cpu.IRQ();
|
||||
//this.profiler && this.profiler.logInterrupt(0x1);
|
||||
}
|
||||
// is this scanline visible?
|
||||
@ -472,7 +472,7 @@ export class C64 extends BasicMachine implements RasterFrameBased {
|
||||
}
|
||||
|
||||
getDebugCategories() {
|
||||
return ['VIC-II'];
|
||||
return ['CPU','Stack','VIC-II'];
|
||||
}
|
||||
getDebugInfo(category, state) {
|
||||
switch (category) {
|
||||
|
@ -133,9 +133,9 @@ export class KIM1 extends BasicHeadlessMachine {
|
||||
}
|
||||
}
|
||||
|
||||
advanceFrame(maxClocks:number, trap) : number {
|
||||
advanceFrame(trap) : number {
|
||||
var clock = 0;
|
||||
while (clock < maxClocks) {
|
||||
while (clock < this.cpuFrequency/60) {
|
||||
if (trap && trap()) break;
|
||||
clock += this.advanceCPU();
|
||||
}
|
||||
|
@ -123,12 +123,12 @@ export class Midway8080 extends BasicScanlineMachine {
|
||||
this.cpu.interrupt(data);
|
||||
}
|
||||
|
||||
advanceFrame(maxCycles, trap) : number {
|
||||
advanceFrame(trap) : number {
|
||||
if (this.watchdog_counter-- <= 0) {
|
||||
console.log("WATCHDOG FIRED"); // TODO: alert on video
|
||||
this.reset();
|
||||
}
|
||||
return super.advanceFrame(maxCycles, trap);
|
||||
return super.advanceFrame(trap);
|
||||
}
|
||||
|
||||
loadState(state) {
|
||||
|
@ -14,7 +14,7 @@ class C64Platform extends Base6502MachinePlatform<C64> implements Platform {
|
||||
getDefaultExtension() { return ".c"; };
|
||||
readAddress(a) { return this.machine.readConst(a); }
|
||||
loadBios(bios) { this.machine.loadBIOS(bios); }
|
||||
getMemoryMap = function() { return { main:[
|
||||
getMemoryMap() { return { main:[
|
||||
{name:'6510 Registers',start:0x0, size:0x2,type:'io'},
|
||||
{name:'RAM', start:0x2, size:0x7ffe,type:'ram'},
|
||||
{name:'Cartridge ROM',start:0x8000,size:0x2000,type:'rom'},
|
||||
|
@ -77,9 +77,9 @@ class WilliamsSound extends BasicMachine {
|
||||
});
|
||||
}
|
||||
|
||||
advanceFrame(maxCycles, trap) : number {
|
||||
advanceFrame(trap) : number {
|
||||
this.pixels && this.pixels.fill(0); // clear waveform
|
||||
maxCycles = Math.min(this.cpuCyclesPerFrame, maxCycles);
|
||||
let maxCycles = this.cpuCyclesPerFrame;
|
||||
var n = 0;
|
||||
while (n < maxCycles) {
|
||||
if (trap && trap()) {
|
||||
|
Loading…
Reference in New Issue
Block a user