From 9391cafac682ed58ec1d9aefaf65e74be38e2579 Mon Sep 17 00:00:00 2001 From: Steven Hugg Date: Tue, 3 Jan 2017 15:52:38 -0500 Subject: [PATCH] moved to new presets/ prefix; js/ dir --- doc/notes.txt | 1 - dasm.js => js/dasm.js | 0 presets/{ => vcs}/examples/adventure.a | 0 presets/{ => vcs}/examples/bankswitching.a | 0 presets/{ => vcs}/examples/bigsprite.a | 0 presets/{ => vcs}/examples/bitmap.a | 0 presets/{ => vcs}/examples/brickgame.a | 0 presets/{ => vcs}/examples/collisions.a | 0 presets/{ => vcs}/examples/complexscene.a | 0 presets/{ => vcs}/examples/complexscene2.a | 0 presets/{ => vcs}/examples/fullgame.a | 0 presets/{ => vcs}/examples/hello.a | 0 presets/{ => vcs}/examples/lines.a | 0 presets/{ => vcs}/examples/missiles.a | 0 presets/{ => vcs}/examples/multisprite1.a | 0 presets/{ => vcs}/examples/multisprite2.a | 0 presets/{ => vcs}/examples/multisprite3.a | 0 presets/{ => vcs}/examples/musicplayer.a | 0 presets/{ => vcs}/examples/piatable.a | 0 presets/{ => vcs}/examples/playfield.a | 0 presets/{ => vcs}/examples/procgen1.a | 0 presets/{ => vcs}/examples/retrigger.a | 0 presets/{ => vcs}/examples/road.a | 0 presets/{ => vcs}/examples/score6.a | 0 presets/{ => vcs}/examples/scoreboard.a | 0 presets/{ => vcs}/examples/sprite.a | 0 presets/{ => vcs}/examples/timing1.a | 0 presets/{ => vcs}/examples/timing2.a | 0 presets/{ => vcs}/examples/tinyfonts.a | 0 presets/{ => vcs}/examples/tinyfonts2.a | 0 presets/{ => vcs}/examples/vsync.a | 0 presets/{ => vcs}/examples/wavetable.a | 0 presets/{ => vcs}/skeleton.a | 0 src/ui.js | 42 +++++++++++----------- src/worker/workermain.js | 2 +- 35 files changed, 23 insertions(+), 22 deletions(-) rename dasm.js => js/dasm.js (100%) rename presets/{ => vcs}/examples/adventure.a (100%) rename presets/{ => vcs}/examples/bankswitching.a (100%) rename presets/{ => vcs}/examples/bigsprite.a (100%) rename presets/{ => vcs}/examples/bitmap.a (100%) rename presets/{ => vcs}/examples/brickgame.a (100%) rename presets/{ => vcs}/examples/collisions.a (100%) rename presets/{ => vcs}/examples/complexscene.a (100%) rename presets/{ => vcs}/examples/complexscene2.a (100%) rename presets/{ => vcs}/examples/fullgame.a (100%) rename presets/{ => vcs}/examples/hello.a (100%) rename presets/{ => vcs}/examples/lines.a (100%) rename presets/{ => vcs}/examples/missiles.a (100%) rename presets/{ => vcs}/examples/multisprite1.a (100%) rename presets/{ => vcs}/examples/multisprite2.a (100%) rename presets/{ => vcs}/examples/multisprite3.a (100%) rename presets/{ => vcs}/examples/musicplayer.a (100%) rename presets/{ => vcs}/examples/piatable.a (100%) rename presets/{ => vcs}/examples/playfield.a (100%) rename presets/{ => vcs}/examples/procgen1.a (100%) rename presets/{ => vcs}/examples/retrigger.a (100%) rename presets/{ => vcs}/examples/road.a (100%) rename presets/{ => vcs}/examples/score6.a (100%) rename presets/{ => vcs}/examples/scoreboard.a (100%) rename presets/{ => vcs}/examples/sprite.a (100%) rename presets/{ => vcs}/examples/timing1.a (100%) rename presets/{ => vcs}/examples/timing2.a (100%) rename presets/{ => vcs}/examples/tinyfonts.a (100%) rename presets/{ => vcs}/examples/tinyfonts2.a (100%) rename presets/{ => vcs}/examples/vsync.a (100%) rename presets/{ => vcs}/examples/wavetable.a (100%) rename presets/{ => vcs}/skeleton.a (100%) diff --git a/doc/notes.txt b/doc/notes.txt index 26651923..411cee67 100644 --- a/doc/notes.txt +++ b/doc/notes.txt @@ -22,4 +22,3 @@ TODO: - break on BRK/illegal opcode? - start analysis from vector address -cat ~/Downloads/appleiigo.rom | hexdump -v -e '"\n" 32/1 "%u,"' ; echo diff --git a/dasm.js b/js/dasm.js similarity index 100% rename from dasm.js rename to js/dasm.js diff --git a/presets/examples/adventure.a b/presets/vcs/examples/adventure.a similarity index 100% rename from presets/examples/adventure.a rename to presets/vcs/examples/adventure.a diff --git a/presets/examples/bankswitching.a b/presets/vcs/examples/bankswitching.a similarity index 100% rename from presets/examples/bankswitching.a rename to presets/vcs/examples/bankswitching.a diff --git a/presets/examples/bigsprite.a b/presets/vcs/examples/bigsprite.a similarity index 100% rename from presets/examples/bigsprite.a rename to presets/vcs/examples/bigsprite.a diff --git a/presets/examples/bitmap.a b/presets/vcs/examples/bitmap.a similarity index 100% rename from presets/examples/bitmap.a rename to presets/vcs/examples/bitmap.a diff --git a/presets/examples/brickgame.a b/presets/vcs/examples/brickgame.a similarity index 100% rename from presets/examples/brickgame.a rename to presets/vcs/examples/brickgame.a diff --git a/presets/examples/collisions.a b/presets/vcs/examples/collisions.a similarity index 100% rename from presets/examples/collisions.a rename to presets/vcs/examples/collisions.a diff --git a/presets/examples/complexscene.a b/presets/vcs/examples/complexscene.a similarity index 100% rename from presets/examples/complexscene.a rename to presets/vcs/examples/complexscene.a diff --git a/presets/examples/complexscene2.a b/presets/vcs/examples/complexscene2.a similarity index 100% rename from presets/examples/complexscene2.a rename to presets/vcs/examples/complexscene2.a diff --git a/presets/examples/fullgame.a b/presets/vcs/examples/fullgame.a similarity index 100% rename from presets/examples/fullgame.a rename to presets/vcs/examples/fullgame.a diff --git a/presets/examples/hello.a b/presets/vcs/examples/hello.a similarity index 100% rename from presets/examples/hello.a rename to presets/vcs/examples/hello.a diff --git a/presets/examples/lines.a b/presets/vcs/examples/lines.a similarity index 100% rename from presets/examples/lines.a rename to presets/vcs/examples/lines.a diff --git a/presets/examples/missiles.a b/presets/vcs/examples/missiles.a similarity index 100% rename from presets/examples/missiles.a rename to presets/vcs/examples/missiles.a diff --git a/presets/examples/multisprite1.a b/presets/vcs/examples/multisprite1.a similarity index 100% rename from presets/examples/multisprite1.a rename to presets/vcs/examples/multisprite1.a diff --git a/presets/examples/multisprite2.a b/presets/vcs/examples/multisprite2.a similarity index 100% rename from presets/examples/multisprite2.a rename to presets/vcs/examples/multisprite2.a diff --git a/presets/examples/multisprite3.a b/presets/vcs/examples/multisprite3.a similarity index 100% rename from presets/examples/multisprite3.a rename to presets/vcs/examples/multisprite3.a diff --git a/presets/examples/musicplayer.a b/presets/vcs/examples/musicplayer.a similarity index 100% rename from presets/examples/musicplayer.a rename to presets/vcs/examples/musicplayer.a diff --git a/presets/examples/piatable.a b/presets/vcs/examples/piatable.a similarity index 100% rename from presets/examples/piatable.a rename to presets/vcs/examples/piatable.a diff --git a/presets/examples/playfield.a b/presets/vcs/examples/playfield.a similarity index 100% rename from presets/examples/playfield.a rename to presets/vcs/examples/playfield.a diff --git a/presets/examples/procgen1.a b/presets/vcs/examples/procgen1.a similarity index 100% rename from presets/examples/procgen1.a rename to presets/vcs/examples/procgen1.a diff --git a/presets/examples/retrigger.a b/presets/vcs/examples/retrigger.a similarity index 100% rename from presets/examples/retrigger.a rename to presets/vcs/examples/retrigger.a diff --git a/presets/examples/road.a b/presets/vcs/examples/road.a similarity index 100% rename from presets/examples/road.a rename to presets/vcs/examples/road.a diff --git a/presets/examples/score6.a b/presets/vcs/examples/score6.a similarity index 100% rename from presets/examples/score6.a rename to presets/vcs/examples/score6.a diff --git a/presets/examples/scoreboard.a b/presets/vcs/examples/scoreboard.a similarity index 100% rename from presets/examples/scoreboard.a rename to presets/vcs/examples/scoreboard.a diff --git a/presets/examples/sprite.a b/presets/vcs/examples/sprite.a similarity index 100% rename from presets/examples/sprite.a rename to presets/vcs/examples/sprite.a diff --git a/presets/examples/timing1.a b/presets/vcs/examples/timing1.a similarity index 100% rename from presets/examples/timing1.a rename to presets/vcs/examples/timing1.a diff --git a/presets/examples/timing2.a b/presets/vcs/examples/timing2.a similarity index 100% rename from presets/examples/timing2.a rename to presets/vcs/examples/timing2.a diff --git a/presets/examples/tinyfonts.a b/presets/vcs/examples/tinyfonts.a similarity index 100% rename from presets/examples/tinyfonts.a rename to presets/vcs/examples/tinyfonts.a diff --git a/presets/examples/tinyfonts2.a b/presets/vcs/examples/tinyfonts2.a similarity index 100% rename from presets/examples/tinyfonts2.a rename to presets/vcs/examples/tinyfonts2.a diff --git a/presets/examples/vsync.a b/presets/vcs/examples/vsync.a similarity index 100% rename from presets/examples/vsync.a rename to presets/vcs/examples/vsync.a diff --git a/presets/examples/wavetable.a b/presets/vcs/examples/wavetable.a similarity index 100% rename from presets/examples/wavetable.a rename to presets/vcs/examples/wavetable.a diff --git a/presets/skeleton.a b/presets/vcs/skeleton.a similarity index 100% rename from presets/skeleton.a rename to presets/vcs/skeleton.a diff --git a/src/ui.js b/src/ui.js index 3d9b651f..4c1667c1 100644 --- a/src/ui.js +++ b/src/ui.js @@ -4,13 +4,13 @@ var worker = new Worker("./src/worker/workermain.js"); var current_output = null; -var current_preset_idx = -1; // TODO: use URL +var current_preset_index = -1; // TODO: use URL var current_preset_id = null; var offset2line = null; var line2offset = null; var trace_pending_at_pc; -var PRESETS, platform; +var PRESETS, platform, platform_id; var CODE = 'code1'; var editor = CodeMirror(document.getElementById('editor'), { @@ -27,14 +27,15 @@ editor.on('changes', function(ed, changeobj) { }); function getCurrentPresetTitle() { - if (current_preset_idx < 0) + if (current_preset_index < 0) return "ROM"; else - return PRESETS[current_preset_idx].title || PRESETS[current_preset_idx].name || "ROM"; + return PRESETS[current_preset_index].title || PRESETS[current_preset_index].name || "ROM"; } function setLastPreset(id) { localStorage.setItem("__lastid", id); + localStorage.setItem("__lastplatform", platform_id); } function updatePreset(current_preset_id, text) { @@ -51,8 +52,8 @@ function loadCode(text) { function loadFile(fileid, filename, index) { current_preset_id = fileid; - current_preset_idx = index; - var text = (localStorage.getItem(fileid) || ""); + current_preset_index = index; + var text = localStorage.getItem(fileid) || localStorage.getItem(fileid.replace(platform_id+"/","")) || ""; if (text) { loadCode(text); setLastPreset(fileid); @@ -68,7 +69,7 @@ function loadFile(fileid, filename, index) { }, 'text'); } } else { - $.get( "presets/skeleton.a", function( text ) { + $.get( "presets/"+platform_id+"/skeleton.a", function( text ) { loadCode(text); setLastPreset(fileid); updatePreset(fileid, text); @@ -85,10 +86,10 @@ function loadPreset(preset_id) { index = (index + PRESETS.length) % PRESETS.length; if (index >= 0) { // load the preset - loadFile(preset_id, "presets/" + PRESETS[index].id, index); + loadFile(preset_id, "presets/" + platform_id + "/" + PRESETS[index].id, index); } else { // no preset found? load local - loadFile(preset_id, "local/" + preset_id, -1); + loadFile(preset_id, "local/" + platform_id + "/" + preset_id, -1); } } @@ -117,7 +118,7 @@ function _createNewFile(e) { if (filename.indexOf(".") < 0) { filename += ".a"; } - qs['file'] = "local/" + filename; + qs['file'] = "local/" + platform_id + "/" + filename; window.location = "?" + $.param(qs); } return true; @@ -151,9 +152,9 @@ function _shareFile(e) { } function _resetPreset(e) { - if (current_preset_idx < 0) { + if (current_preset_index < 0) { alert("Can only reset built-in file examples.") - } else if (confirm("Reset '" + PRESETS[current_preset_idx].name + "' to default?")) { + } else if (confirm("Reset '" + PRESETS[current_preset_index].name + "' to default?")) { qs['reset'] = '1'; window.location = "?" + $.param(qs); } @@ -201,10 +202,10 @@ function updateSelector() { gotoPresetNamed($(this).val()); }); $("#preset_prev").off('click').click(function() { - gotoPresetAt(current_preset_idx - 1); + gotoPresetAt(current_preset_index - 1); }); $("#preset_next").off('click').click(function() { - gotoPresetAt(current_preset_idx + 1); + gotoPresetAt(current_preset_index + 1); }); } @@ -730,18 +731,19 @@ try { }, 'text'); } else { // add default platform? - if (!qs['platform']) { - qs['platform'] = 'vcs'; + platform_id = qs['platform'] || localStorage.getItem("__lastplatform"); + if (!platform_id) { + platform_id = qs['platform'] = "vcs"; } // load and start platform object - if (qs['platform'] == 'vcs') { + if (platform_id == 'vcs') { platform = new VCSPlatform(); - } else if (qs['platform'] == 'apple2') { + } else if (platform_id == 'apple2') { platform = new Apple2Platform($("#emulator")[0]); - } else if (qs['platform'] == 'atarivec') { + } else if (platform_id == 'atarivec') { platform = new AtariVectorPlatform($("#emulator")[0]); } else { - alert("Platform " + qs['platform'] + " not recognized"); + alert("Platform " + platform_id + " not recognized"); } PRESETS = platform.getPresets(); platform.start(); diff --git a/src/worker/workermain.js b/src/worker/workermain.js index 40f0b7b3..c23e6aa0 100644 --- a/src/worker/workermain.js +++ b/src/worker/workermain.js @@ -1,7 +1,7 @@ "use strict"; // set up require.js for worker -importScripts("../../dasm.js"); +importScripts("../../js/dasm.js"); // shim out window and document objects // https://github.com/mbostock/d3/issues/1053