diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 00000000..99da2e51 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,104 @@ + +https://github.com/sehugg/dasm +http://sdcc.sourceforge.net/ + +GPLv2 + +--- + +https://github.com/sehugg/javatari.js + +GNU Affero General Public License v3.0 + +--- + +https://www.veripool.org/wiki/verilator + +GNU Lesser Public License Version 3 + +--- + +http://mcpp.sourceforge.net/ + +/*- + * Copyright (c) 1998, 2002-2008 Kiyoshi Matsui + * All rights reserved. + * + * This software including the files in this directory is provided under + * the following license. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +--- + +https://github.com/sehugg/cc65 + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from +the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not +claim that you wrote the original software. If you use this software in +a product, an acknowledgment in the product documentation would be +appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not +be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. + +--- + +https://github.com/datajerk/c2t/blob/master/LICENSE + +Copyright 2017 Egan Ford + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its +contributors may be used to endorse or promote products derived from this +software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/css/ui.css b/css/ui.css index e48e0fff..4cbc7f3c 100644 --- a/css/ui.css +++ b/css/ui.css @@ -229,6 +229,7 @@ div.emuoverlay { } div.emuscope { background-color: #333; + pointer-events:auto; } div.emuspacer { width:0; @@ -319,6 +320,7 @@ div.replaydiv { background-color: #555; background-repeat: no-repeat; background-position: 50%; + pointer-events:auto; } .gutter.gutter-vertical { background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFAQMAAABo7865AAAABlBMVEVHcEzMzMzyAv2sAAAAAXRSTlMAQObYZgAAABBJREFUeF5jOAMEEAIEEFwAn3kMwcB6I2AAAAAASUVORK5CYII='); diff --git a/doc/compilers.txt b/doc/compilers.txt index 46724ae1..983b910f 100644 --- a/doc/compilers.txt +++ b/doc/compilers.txt @@ -37,6 +37,9 @@ gcc6809 - need to check this out SmallerC - https://github.com/alexfru/SmallerC +vbcc - Targets 68K, patch for z-machine +http://sun.hasenbraten.de/vbcc/\ + OTHER COMPILERS diff --git a/doc/notes.txt b/doc/notes.txt index 476bbde9..18cbf6f5 100644 --- a/doc/notes.txt +++ b/doc/notes.txt @@ -68,6 +68,7 @@ TODO: - resize memory dump window - C/asm formatter - fix WebAudio (https://news.ycombinator.com/item?id=18066474) +- Safari: verilog scope doesn't work WEB WORKER FORMAT diff --git a/presets/apple2/cosmic.c b/presets/apple2/cosmic.c index 9175ff44..53c39e1b 100644 --- a/presets/apple2/cosmic.c +++ b/presets/apple2/cosmic.c @@ -8,6 +8,7 @@ #include #include #include +#include // type aliases for byte/signed byte/unsigned 16-bit typedef unsigned char byte; @@ -15,10 +16,6 @@ typedef signed char sbyte; typedef unsigned short word; // peeks, pokes, and strobes -#define POKE(addr,val) (*(unsigned char*) (addr) = (val)) -#define POKEW(addr,val) (*(unsigned*) (addr) = (val)) -#define PEEK(addr) (*(unsigned char*) (addr)) -#define PEEKW(addr) (*(unsigned*) (addr)) #define STROBE(addr) __asm__ ("sta %w", addr) // speaker click diff --git a/src/emu.ts b/src/emu.ts index 5728729c..0ad18a60 100644 --- a/src/emu.ts +++ b/src/emu.ts @@ -187,7 +187,7 @@ export var AnimationTimer = function(frequencyHz:number, callback:() => void) { var running : boolean = false; var pulsing : boolean = false; var lastts = 0; - var useReqAnimFrame = false; //window.requestAnimationFrame ? (frequencyHz>40) : false; + var useReqAnimFrame = false; //TODO window.requestAnimationFrame ? (frequencyHz>40) : false; var nframes, startts; // for FPS calc this.frameRate = frequencyHz; diff --git a/src/platform/verilog.ts b/src/platform/verilog.ts index 6bf2be76..c015c446 100644 --- a/src/platform/verilog.ts +++ b/src/platform/verilog.ts @@ -336,6 +336,12 @@ var VerilogPlatform = function(mainElement, options) { onDrag: () => { if (this.waveview) this.waveview.recreate(); }, + onDragStart: () => { + $(".emuoverlay").css("pointer-events", "auto"); // allow drag + }, + onDragEnd: () => { + $(".emuoverlay").css("pointer-events", "none"); // disallow drag + }, }); // setup mouse events video.setupMouseEvents(); diff --git a/src/project.ts b/src/project.ts index a1b15166..1feaed57 100644 --- a/src/project.ts +++ b/src/project.ts @@ -35,12 +35,13 @@ export class CodeProject { var notfinal = this.pendingWorkerMessages > 1; if (notfinal) { this.sendBuild(); + this.pendingWorkerMessages = 1; } else { if (this.callbackBuildStatus) this.callbackBuildStatus(false); if (!this.isCompiling) { console.log(this.pendingWorkerMessages); console.trace(); } // debug compile problems this.isCompiling = false; + this.pendingWorkerMessages = 0; } - this.pendingWorkerMessages = 0; if (e.data && !e.data.unchanged) { this.processBuildResult(e.data); if (this.callbackBuildResult) this.callbackBuildResult(e.data); // call with data when changed diff --git a/src/ui.ts b/src/ui.ts index 106aa6b2..1f211377 100644 --- a/src/ui.ts +++ b/src/ui.ts @@ -381,6 +381,7 @@ function _downloadCassetteFile(e) { if (audout) { var blob = new Blob([audout], {type: "audio/wav"}); saveAs(blob, audpath); + stdout += "Then connect your audio output to the cassette input, turn up the volume, and play the audio file."; alert(stdout); } });