diff --git a/apple2js.html b/apple2js.html index b9b4420..fe57aca 100644 --- a/apple2js.html +++ b/apple2js.html @@ -243,6 +243,30 @@ function openManage() { $("#manage").dialog("open"); } +function loadHTTP(url, cb) { + loading = true; + $("#loading").dialog("open"); + + var req = new XMLHttpRequest(); + req.open("GET", url, true); + req.responseType = "arraybuffer"; + + req.onload = function(event) { + var parts = url.split(/[\/\.]/); + var name = decodeURIComponent(parts[parts.length - 2]); + var ext = parts[parts.length - 1].toLowerCase(); + if (disk2.setBinary(_saveDrive, name, ext, req.response)) { + $("#disklabel" + _saveDrive).text(name); + $("#loading").dialog("close"); + loading = false; + if (cb) { + cb(); + } + } + } + req.send(null); +} + var prefs = new Prefs(); var runTimer = null; var cpu = new CPU6502(); @@ -488,7 +512,11 @@ function run(pc) { hashtag = document.location.hash; filename = hup() if (filename) { - loadAjax("json/disks/" + filename + ".json"); + if (filename.indexOf("://") > 0) { + loadHTTP(disk); + } else { + loadAjax("json/disks/" + filename + ".json"); + } } } if (!loading) { @@ -914,12 +942,12 @@ $(function() { // Check for disks in hashtag - var disk = gup("disk") || hup(); - if (disk) { - if (disk.indexOf("://") > 0) { - loadAjax(disk); + var filename = gup("disk") || hup(); + if (filename) { + if (filename.indexOf("://") > 0) { + loadHTTP(filename); } else { - loadAjax("json/disks/" + disk + ".json"); + loadAjax("json/disks/" + filename + ".json"); } } @@ -932,9 +960,6 @@ $(function() {
- HTML5 Powered diff --git a/apple2jse.html b/apple2jse.html index 6bc5ff0..6695151 100644 --- a/apple2jse.html +++ b/apple2jse.html @@ -486,7 +486,11 @@ function run(pc) { hashtag = document.location.hash; filename = hup() if (filename) { - loadAjax("json/disks/" + filename + ".json"); + if (filename.indexOf("://") > 0) { + loadHTTP(disk); + } else { + loadAjax("json/disks/" + filename + ".json"); + } } } if (!loading) { @@ -925,12 +929,12 @@ $(function() { // Check for disks in hashtag - var disk = gup("disk") || hup(); - if (disk) { - if (disk.indexOf("://") > 0) { - loadAjax(disk); + var filename = gup("disk") || hup(); + if (filename) { + if (filename.indexOf("://") > 0) { + loadHTTP(filename); } else { - loadAjax("json/disks/" + disk + ".json"); + loadAjax("json/disks/" + filename + ".json"); } }