file upload

This commit is contained in:
Steven Hugg 2018-06-26 17:57:03 -06:00
parent beea5c3774
commit 80cc39ec4a
3 changed files with 40 additions and 3 deletions

View File

@ -18,10 +18,7 @@ TODO:
- can't step after reset (or when funky frame; TIA frame is out of sync)
- break on BRK/illegal opcode?
- multiple breakpoints, expression breakpoints
- use localForage (https://github.com/localForage/localForage)
- run apple CPU until boot
- cc65 listing file parsing
- better disasm/listing selection
- disasm for z80
- projects w/ include files
@ -32,6 +29,7 @@ TODO:
- step over
- slowdown beam for all platforms?
- kbd shortcuts
- PC x86 support
WEB WORKER FORMAT

View File

@ -34,6 +34,9 @@ ga('send', 'pageview');
</head>
<body>
<!-- for file upload -->
<input type="file" id="uploadFileElem" multiple accept="*" style="display:none" onchange="handleFileUpload(this.files)">
<div id="controls_top">
<span class="dropdown">
<a class="btn btn-secondary dropdown-toggle" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@ -41,6 +44,7 @@ ga('send', 'pageview');
</a>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<li><a class="dropdown-item" href="#" id="item_new_file">New File...</a></li>
<li><a class="dropdown-item" href="#" id="item_upload_file">Upload File...</a></li>
<li><a class="dropdown-item" href="#" id="item_share_file">Share File as GitHub Gist...</a></li>
<li><a class="dropdown-item" href="#" id="item_reset_file">Revert to Original...</a></li>
<li><a class="dropdown-item" href="#" id="item_download_file">Download Source File</a></li>

View File

@ -261,6 +261,40 @@ function _createNewFile(e) {
return true;
}
function _uploadNewFile(e) {
$("#uploadFileElem").click();
}
function handleFileUpload(files) {
console.log(files);
var index = 0;
function uploadNextFile() {
var f = files[index++];
if (!f) {
console.log("Done uploading");
gotoNewLocation();
} else {
var path = "local/" + f.name;
var reader = new FileReader();
reader.onload = function(e) {
var data = e.target.result;
store.setItem(path, data, function(err, result) {
if (err)
console.log(err);
else {
console.log("Uploaded " + path + " " + data.length + " bytes");
if (index == 1)
qs['file'] = path;
uploadNextFile();
}
});
}
reader.readAsText(f);
}
}
if (files) uploadNextFile();
}
function getCurrentFilename() {
var toks = current_preset_id.split("/");
return toks[toks.length-1];
@ -1303,6 +1337,7 @@ function setupDebugControls(){
$("#dbg_bitmap").click(openBitmapEditorAtCursor);
$(".dropdown-menu").collapse({toggle: false});
$("#item_new_file").click(_createNewFile);
$("#item_upload_file").click(_uploadNewFile);
$("#item_share_file").click(_shareFile);
$("#item_reset_file").click(_resetPreset);
if (platform.runEval)