diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 00000000..0ee3708e Binary files /dev/null and b/favicon.ico differ diff --git a/src/emu.js b/src/emu.js index 812d7c05..f1d09664 100644 --- a/src/emu.js +++ b/src/emu.js @@ -597,6 +597,7 @@ var BaseZ80Platform = function() { this.getToolForFilename = function(fn) { if (fn.endsWith(".c")) return "sdcc"; if (fn.endsWith(".s")) return "sdasz80"; + if (fn.endsWith(".ns")) return "naken"; return "z80asm"; } this.getDefaultExtension = function() { return ".c"; }; diff --git a/src/ui.js b/src/ui.js index 60d0e94c..12e5ccae 100644 --- a/src/ui.js +++ b/src/ui.js @@ -1025,7 +1025,10 @@ function setupDebugControls(){ } function showWelcomeMessage() { - if (!localStorage.getItem("8bitworkshop.splash")) { + if (qs['sharekey']) { + localStorage.setItem('8bitworkshop.splash', true); + } + else if (!localStorage.getItem("8bitworkshop.splash")) { // OH BOOTSTRAP YOU ARE SO AWESOME A+++++ // https://stackoverflow.com/questions/28270333/how-do-i-know-which-button-is-click-when-bootstrap-modal-closes // https://github.com/jschr/bootstrap-modal/issues/224 diff --git a/src/worker/workermain.js b/src/worker/workermain.js index d9457f69..47705b23 100644 --- a/src/worker/workermain.js +++ b/src/worker/workermain.js @@ -887,6 +887,37 @@ function preprocessMCPP(code, platform) { return {code:iout}; } +function assembleNAKEN(code, platform) { + load("naken_asm"); + var errors = []; + var match_fn = makeErrorMatcher(errors, /Error: (.+) at (.+):(\d+)/, 3, 1); + var Module = naken_asm({ + noInitialRun:true, + //logReadFiles:true, + print:match_fn, + printErr:print_fn + }); + var FS = Module['FS']; + //setupFS(FS); + FS.writeFile("main.asm", code); + Module.callMain(["-l", "-b", "main.asm"]); + try { + var aout = FS.readFile("out.bin", {encoding:'binary'}); + var alst = FS.readFile("out.lst", {encoding:'utf8'}); + //console.log(alst); + // 0x0000: 77 ld (hl),a cycles: 4 + var asmlines = parseListing(alst, /^0x([0-9a-f]+):\s+([0-9a-f]+)\s+(.+)cycles: (\d+)/i, 0, 1, 2, 3); + return { + output:aout, + errors:errors, + lines:asmlines, + intermediate:{listing:alst}, + }; + } catch(e) { + return {errors:errors}; + } +} + var TOOLS = { 'dasm': assembleDASM, 'acme': assembleACME, @@ -897,7 +928,7 @@ var TOOLS = { 'sdasz80': assemblelinkSDASZ80, 'sdcc': compileSDCC, 'xasm6809': assembleXASM6809, - //'nakenz80': assembleNAKEN_Z80, + 'naken': assembleNAKEN, } var TOOL_PRELOADFS = {