diff --git a/src/common/baseplatform.ts b/src/common/baseplatform.ts index e7af32e6..9c8190d7 100644 --- a/src/common/baseplatform.ts +++ b/src/common/baseplatform.ts @@ -13,6 +13,7 @@ import { SampledAudio } from "./audio"; import { ProbeRecorder } from "./recorder"; import { BaseWASMMachine } from "./wasmplatform"; import { CPU6809 } from "./cpu/6809"; +import { _MOS6502 } from "./cpu/MOS6502"; /// @@ -448,7 +449,7 @@ export abstract class Base6502Platform extends BaseDebugPlatform { abstract readAddress(addr:number) : number; newCPU(membus : MemoryBus) { - var cpu = new jt.M6502(); + var cpu = new _MOS6502(); cpu.connectBus(membus); return cpu; } diff --git a/src/common/cpu/MOS6502.ts b/src/common/cpu/MOS6502.ts index 33362d8e..2f516999 100644 --- a/src/common/cpu/MOS6502.ts +++ b/src/common/cpu/MOS6502.ts @@ -3,7 +3,7 @@ import { CPU, Bus, ClockBased, SavesState, Interruptable } from "../devices"; // Copyright 2015 by Paulo Augusto Peccin. See license.txt distributed with this file. -var _MOS6502 = function() { +export var _MOS6502 = function() { var self = this; this.powerOn = function() { diff --git a/src/ide/ui.ts b/src/ide/ui.ts index 289c49b1..4551dfe9 100644 --- a/src/ide/ui.ts +++ b/src/ide/ui.ts @@ -30,6 +30,7 @@ declare var $ : JQueryStatic; // use browser jquery interface UIQueryString { platform? : string; + options?: string; repo? : string; file? : string; electron? : string; @@ -2213,7 +2214,9 @@ function installGAHooks() { async function startPlatform() { if (!PLATFORMS[platform_id]) throw Error("Invalid platform '" + platform_id + "'."); - platform = new PLATFORMS[platform_id]($("#emuscreen")[0]); + let emudiv = $("#emuscreen")[0]; + let options = decodeQueryString(qs.options || ''); + platform = new PLATFORMS[platform_id](emudiv, options); setPlatformUI(); stateRecorder = new StateRecorderImpl(platform); PRESETS = platform.getPresets ? platform.getPresets() : []; diff --git a/src/platform/vector.ts b/src/platform/vector.ts index ba2c5ed0..2df13cc2 100644 --- a/src/platform/vector.ts +++ b/src/platform/vector.ts @@ -270,7 +270,7 @@ var AtariColorVectorPlatform = function(mainElement) { clock++; if (--nmicount == 0) { //console.log("NMI", cpu.saveState()); - var n = cpu.setIRQAndWait(); // TODO: only if I flag set + var n = cpu.setIRQ(); // TODO: only if I flag set clock += n; nmicount = cpuCyclesPerNMI - n; //console.log(n, clock, nmicount); diff --git a/src/platform/williams.ts b/src/platform/williams.ts index 7c2275ca..777e9cb1 100644 --- a/src/platform/williams.ts +++ b/src/platform/williams.ts @@ -432,6 +432,10 @@ var WilliamsPlatform = function(mainElement, proto, isDefender) { ] } }; } +var Williams6809Platform = function(mainElement) { + this.__proto__ = new WilliamsPlatform(mainElement, null, false); +} + var WilliamsZ80Platform = function(mainElement) { this.__proto__ = new WilliamsPlatform(mainElement, BaseZ80Platform, false); @@ -462,7 +466,7 @@ var WilliamsDefenderPlatform = function(mainElement) { ] } }; } -PLATFORMS['williams'] = WilliamsPlatform; +PLATFORMS['williams'] = Williams6809Platform; PLATFORMS['williams-defender'] = WilliamsDefenderPlatform; PLATFORMS['williams-z80'] = WilliamsZ80Platform; diff --git a/src/worker/lib/vector-ataricolor/crt0.o b/src/worker/lib/vector-ataricolor/crt0.o index 26a68713..a904d800 100644 Binary files a/src/worker/lib/vector-ataricolor/crt0.o and b/src/worker/lib/vector-ataricolor/crt0.o differ diff --git a/src/worker/lib/vector-ataricolor/crt0.s b/src/worker/lib/vector-ataricolor/crt0.s index 9dc585df..6ebaa318 100644 --- a/src/worker/lib/vector-ataricolor/crt0.s +++ b/src/worker/lib/vector-ataricolor/crt0.s @@ -8,7 +8,6 @@ .export __STARTUP__ : absolute = 1 ; Mark as startup .import zerobss, callmain .import initlib, donelib, copydata - .import exit .import __PRGRAM_START__, __PRGRAM_SIZE__ ; Linker generated ; .import __STACKSIZE__ ; Linker generated @@ -30,7 +29,7 @@ start: _exit: pha jsr donelib pla - jmp exit + jmp start nmi: inc $0