1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-06-06 09:29:33 +00:00

took maxCycles out of advanceFrame()

This commit is contained in:
Steven Hugg 2019-09-08 12:57:19 -05:00
parent 69f4eed8a7
commit f6cc973cdd
9 changed files with 16 additions and 16 deletions

View File

@ -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();
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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;

View File

@ -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) {

View File

@ -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();
}

View File

@ -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) {

View File

@ -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'},

View File

@ -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()) {