diff --git a/main.html b/main.html
index 8a10c29..b5c8678 100644
--- a/main.html
+++ b/main.html
@@ -142,7 +142,7 @@
-
+
Download
@@ -214,7 +214,7 @@
@@ -275,7 +275,6 @@ function toSyntax(atype)
$("#syntax").html(" Syntax:Intel ");
}
syntax=atype;
- $("#result").html("");
}
function toResult(atype)
@@ -290,7 +289,7 @@ function toResult(atype)
else
$("#array").html("√");
type=atype;
- $("#result").html("");
+ dumpall(zones);
}
function newfile(){
@@ -307,31 +306,19 @@ function exportfile(){
saveTextAsFile($("#editor").val(),file);
}
-function download(){
- if ($("#result").val()=="")
- return
+function downloadnow(){
if (type=="array" || type=="string")
+ {
+ if ($("#result").html()=="")
+ return
var ext=".c";
+ download($("#result").html(), filename+ext);
+ }
else
- var ext=".bin";
- saveTextAsFile($("#result").val, file+ext);
-}
-
-function saveTextAsFile(textToWrite, fileNameToSaveAs) {
- var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'});
- var downloadLink = document.createElement("a");
- downloadLink.download = fileNameToSaveAs;
- downloadLink.innerHTML = "Download File";
- if (window.webkitURL != null) {
- downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob);
- }
- else {
- downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
- downloadLink.onclick = destroyClickedElement;
- downloadLink.style.display = "none";
- document.body.appendChild(downloadLink);
- }
- downloadLink.click();
+ {
+ arr=makebin(zones);
+ download(arr,filename+'.bin');
+ }
}
function realopen(file)
@@ -380,13 +367,21 @@ function hexByte(value) {
return str.slice(-2);
};
-function dumpall(zones)
+function makebin(allzones)
+{
+ var output = [];
+ for (const zone of allzones)
+ output.push(...zone.asm);
+ return new Uint8Array(output);
+}
+
+function dumpall(allzones)
{
if (type=="binary")
var output = '';
else
var output = '';
- for (const zone of zones)
+ for (const zone of allzones)
output+=dump(zone);
if (type=="binary")
output += '
';
@@ -417,7 +412,7 @@ function dump(zone) {
}
break;
case 'array':
- output += "const uint8_t buffer[] = {\n";
+ output += "const uint8_t "+zone.title+"[] = {\n";
for (var offset = 0; offset < mcLen; offset += 8) {
output += " ";
for (var i = offset; i < offset + 8 && i < mcLen; i++) {
@@ -427,10 +422,10 @@ function dump(zone) {
output += "\n";
}
output = output.substring(0, output.length - 2);
- output += "\n};\n";
+ output += "\n};\n";
break;
case 'string':
- output += "const char* buffer =\n";
+ output += "const char* "+zone.title+" =\n";
for (var offset = 0; offset < mcLen; offset += 16) {
output += " \"";
for (var i = offset; i < offset + 16 && i < mcLen; i++) {
@@ -439,7 +434,7 @@ function dump(zone) {
output += "\"\n";
}
output = output.substring(0, output.length - 1);
- output += ";\n";
+ output += ";\n";
break;
}
return output;
@@ -460,7 +455,6 @@ function make()
var id=0;
var org=0;
var type=32;
- var zones=[];
var status=true;
showresult('');
while (assembly.length!=0)