mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2026-10-24 08:02:27 +00:00
Deploying to gh-pages from @ sehugg/8bitworkshop@d03901a01e 🚀
This commit is contained in:
1 parent
db1fe83312
commit
768994f4fa
28 files changed
+836
-216
No files matched your search
@@ -644,7 +644,7 @@ class WASIRunner {
|
||||
const filename = this.peekUTF8(path_ptr, path_len);
|
||||
const path = filename.startsWith('/') ? filename : dir.name + '/' + filename; // TODO?
|
||||
const fd = this.fs.getFile(path);
|
||||
console.log("path_filestat_get", dir + "", filename, path, filestat_ptr, '->', fd + "");
|
||||
debug("path_filestat_get", dir + "", filename, path, filestat_ptr, '->', fd + "");
|
||||
if (!fd)
|
||||
return WASIErrors.NOENT;
|
||||
this.poke_filestat(filestat_ptr, fd);
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"wasishim.js","sourceRoot":"","sources":["../../../src/common/wasi/wasishim.ts"],"names":[],"mappings":"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 truncated
|
||||
{"version":3,"file":"wasishim.js","sourceRoot":"","sources":["../../../src/common/wasi/wasishim.ts"],"names":[],"mappings":"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 truncated
|
||||
+100
-48
@@ -23035,6 +23035,90 @@ function parseObjDump(lst) {
|
||||
return { listings, symbolmap, segments };
|
||||
}
|
||||
|
||||
// src/worker/tools/oscar64parse.ts
|
||||
function parseOscar64Map(mapout) {
|
||||
let segments = [];
|
||||
let symbolmap = {};
|
||||
let section = "";
|
||||
for (let line of mapout.split("\n")) {
|
||||
line = line.trim();
|
||||
if (line === "sections" || line === "regions" || line === "objects" || line === "objects by size") {
|
||||
section = line;
|
||||
continue;
|
||||
}
|
||||
let m = /^([0-9a-f]+) - ([0-9a-f]+) : ([^,]+), (.+)$/.exec(line);
|
||||
if (m) {
|
||||
const start = parseInt(m[1], 16);
|
||||
const end = parseInt(m[2], 16);
|
||||
const name = m[4].trim();
|
||||
if (section === "sections") {
|
||||
let type = "ram";
|
||||
if (/code/.test(m[4]) || m[4] === "startup" || /rom/.test(m[4])) {
|
||||
type = "rom";
|
||||
}
|
||||
segments.push({ name: m[4], start, size: end - start, type });
|
||||
} else if (section === "objects") {
|
||||
if (m[3] !== "*") symbolmap[m[3]] = start;
|
||||
}
|
||||
}
|
||||
}
|
||||
return { segments, symbolmap };
|
||||
}
|
||||
function parseOscar64Lbl(lblout) {
|
||||
let symbolmap = {};
|
||||
for (let line of lblout.split("\n")) {
|
||||
let toks = line.trim().split(/\s+/);
|
||||
if (toks[0] == "al" && toks.length >= 3) {
|
||||
const ofs = parseInt(toks[1], 16);
|
||||
const name = toks[2];
|
||||
const clean = name.replace(/^\./, "");
|
||||
if (!symbolmap[clean]) symbolmap[clean] = ofs;
|
||||
}
|
||||
}
|
||||
return symbolmap;
|
||||
}
|
||||
function parseOscar64Listing(asmout, asmfn) {
|
||||
let srclines = [];
|
||||
let asmlines = [];
|
||||
let c_lineno = 0;
|
||||
let c_path = "";
|
||||
let asm_lineno = 0;
|
||||
let re_src = /^;\s*(\d+), "(.+?)"/;
|
||||
let re_insn = /^([0-9a-f]+) : ([0-9a-f _]{8}) (.*)/;
|
||||
for (let line of asmout.split("\n")) {
|
||||
asm_lineno++;
|
||||
let m2 = re_src.exec(line);
|
||||
if (m2) {
|
||||
c_lineno = parseInt(m2[1]);
|
||||
c_path = m2[2].split("/").pop();
|
||||
}
|
||||
let m = re_insn.exec(line);
|
||||
if (m) {
|
||||
let offset = parseInt(m[1], 16);
|
||||
let hex = m[2];
|
||||
let asm = m[3];
|
||||
let insns = (hex + " " + asm).trim();
|
||||
asmlines.push({
|
||||
line: asm_lineno,
|
||||
path: asmfn,
|
||||
offset,
|
||||
insns,
|
||||
iscode: true
|
||||
});
|
||||
if (c_path) {
|
||||
srclines.push({
|
||||
line: c_lineno,
|
||||
path: c_path,
|
||||
offset,
|
||||
iscode: true
|
||||
});
|
||||
c_path = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
return { srclines, asmlines };
|
||||
}
|
||||
|
||||
// src/worker/listingutils.ts
|
||||
function makeErrorMatcher(errors, regex, iline, imsg, mainpath, ifilename) {
|
||||
return function(s) {
|
||||
@@ -23142,58 +23226,26 @@ async function oscar64ProcessOutput(step, outpath) {
|
||||
let segments = [];
|
||||
{
|
||||
let txt = await import_fs.default.promises.readFile(prefix_path + ".map", { encoding: "utf-8" });
|
||||
for (let line of txt.split("\n")) {
|
||||
const m1 = line.match(/([0-9a-f]+) - ([0-9a-f]+) : ([A-Z_]+), (.+)/);
|
||||
if (m1) {
|
||||
const name = m1[4];
|
||||
const start = parseInt(m1[1], 16);
|
||||
const end = parseInt(m1[2], 16);
|
||||
segments.push({
|
||||
name,
|
||||
start,
|
||||
size: end - start
|
||||
});
|
||||
}
|
||||
const m2 = line.match(/([0-9a-f]+) \(([0-9a-f]+)\) : ([^,]+), (.+)/);
|
||||
if (m2) {
|
||||
const addr = parseInt(m2[1], 16);
|
||||
const name = m2[3];
|
||||
symbolmap[name] = addr;
|
||||
}
|
||||
let parsed = parseOscar64Map(txt);
|
||||
segments = parsed.segments;
|
||||
symbolmap = parsed.symbolmap;
|
||||
}
|
||||
{
|
||||
try {
|
||||
let txt = await import_fs.default.promises.readFile(prefix_path + ".lbl", { encoding: "utf-8" });
|
||||
symbolmap = Object.assign(parseOscar64Lbl(txt), symbolmap);
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
{
|
||||
let txt = await import_fs.default.promises.readFile(prefix_path + ".asm", { encoding: "utf-8" });
|
||||
let lst = { lines: [], text: txt };
|
||||
let asm_lineno = 0;
|
||||
let c_lineno = 0;
|
||||
let c_path = "";
|
||||
const path4 = step.path;
|
||||
for (let line of txt.split("\n")) {
|
||||
asm_lineno++;
|
||||
let m2 = line.match(/;\s*(\d+), "(.+?)"/);
|
||||
if (m2) {
|
||||
c_lineno = parseInt(m2[1]);
|
||||
c_path = m2[2].split("/").pop();
|
||||
}
|
||||
let m = line.match(/([0-9a-f]+) : ([0-9a-f _]{8}) (.+)/);
|
||||
if (m) {
|
||||
let offset = parseInt(m[1], 16);
|
||||
let hex = m[2];
|
||||
let asm = m[3];
|
||||
if (c_path) {
|
||||
lst.lines.push({
|
||||
line: c_lineno,
|
||||
path: c_path,
|
||||
offset,
|
||||
iscode: true
|
||||
});
|
||||
c_path = "";
|
||||
c_lineno = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
listings[getFilenamePrefix(step.path) + ".lst"] = lst;
|
||||
let { srclines, asmlines } = parseOscar64Listing(txt, step.path);
|
||||
let lstfn = getFilenamePrefix(step.path) + ".lst";
|
||||
listings[lstfn] = {
|
||||
lines: srclines,
|
||||
asmlines,
|
||||
text: txt
|
||||
};
|
||||
}
|
||||
return { output, listings, symbolmap, segments, debuginfo };
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../../node_modules/depd/index.js", "../../node_modules/bytes/index.js", "../../node_modules/content-type/index.js", "../../node_modules/setprototypeof/index.js", "../../node_modules/statuses/codes.json", "../../node_modules/statuses/index.js", "../../node_modules/inherits/inherits_browser.js", "../../node_modules/inherits/inherits.js", "../../node_modules/toidentifier/index.js", "../../node_modules/http-errors/index.js", "../../node_modules/ms/index.js", "../../node_modules/debug/src/debug.js", "../../node_modules/debug/src/browser.js", "../../node_modules/debug/src/node.js", "../../node_modules/debug/src/index.js", "../../node_modules/destroy/index.js", "../../node_modules/safer-buffer/safer.js", "../../node_modules/iconv-lite/lib/bom-handling.js", "../../node_modules/iconv-lite/encodings/internal.js", "../../node_modules/iconv-lite/encodings/utf16.js", "../../node_modules/iconv-lite/encodings/utf7.js", "../../node_modules/iconv-lite/encodings/sbcs-codec.js", "../../node_modules/iconv-lite/encodings/sbcs-data.js", "../../node_modules/iconv-lite/encodings/sbcs-data-generated.js", "../../node_modules/iconv-lite/encodings/dbcs-codec.js", "../../node_modules/iconv-lite/encodings/tables/shiftjis.json", "../../node_modules/iconv-lite/encodings/tables/eucjp.json", "../../node_modules/iconv-lite/encodings/tables/cp936.json", "../../node_modules/iconv-lite/encodings/tables/gbk-added.json", "../../node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", "../../node_modules/iconv-lite/encodings/tables/cp949.json", "../../node_modules/iconv-lite/encodings/tables/cp950.json", "../../node_modules/iconv-lite/encodings/tables/big5-added.json", "../../node_modules/iconv-lite/encodings/dbcs-data.js", "../../node_modules/iconv-lite/encodings/index.js", "../../node_modules/iconv-lite/lib/streams.js", "../../node_modules/iconv-lite/lib/extend-node.js", "../../node_modules/iconv-lite/lib/index.js", "../../node_modules/unpipe/index.js", "../../node_modules/raw-body/index.js", "../../node_modules/ee-first/index.js", "../../node_modules/on-finished/index.js", "../../node_modules/body-parser/lib/read.js", "../../node_modules/media-typer/index.js", "../../node_modules/mime-db/db.json", "../../node_modules/mime-db/index.js", "../../node_modules/mime-types/index.js", "../../node_modules/type-is/index.js", "../../node_modules/body-parser/lib/types/json.js", "../../node_modules/body-parser/lib/types/raw.js", "../../node_modules/body-parser/lib/types/text.js", "../../node_modules/es-errors/type.js", "../../node_modules/object-inspect/util.inspect.js", "../../node_modules/object-inspect/index.js", "../../node_modules/side-channel-list/index.js", "../../node_modules/es-object-atoms/index.js", "../../node_modules/es-errors/index.js", "../../node_modules/es-errors/eval.js", "../../node_modules/es-errors/range.js", "../../node_modules/es-errors/ref.js", "../../node_modules/es-errors/syntax.js", "../../node_modules/es-errors/uri.js", "../../node_modules/math-intrinsics/abs.js", "../../node_modules/math-intrinsics/floor.js", "../../node_modules/math-intrinsics/max.js", "../../node_modules/math-intrinsics/min.js", "../../node_modules/math-intrinsics/pow.js", "../../node_modules/math-intrinsics/round.js", "../../node_modules/math-intrinsics/isNaN.js", "../../node_modules/math-intrinsics/sign.js", "../../node_modules/gopd/gOPD.js", "../../node_modules/gopd/index.js", "../../node_modules/es-define-property/index.js", "../../node_modules/has-symbols/shams.js", "../../node_modules/has-symbols/index.js", "../../node_modules/get-proto/Reflect.getPrototypeOf.js", "../../node_modules/get-proto/Object.getPrototypeOf.js", "../../node_modules/function-bind/implementation.js", "../../node_modules/function-bind/index.js", "../../node_modules/call-bind-apply-helpers/functionCall.js", "../../node_modules/call-bind-apply-helpers/functionApply.js", "../../node_modules/call-bind-apply-helpers/reflectApply.js", "../../node_modules/call-bind-apply-helpers/actualApply.js", "../../node_modules/call-bind-apply-helpers/index.js", "../../node_modules/dunder-proto/get.js", "../../node_modules/get-proto/index.js", "../../node_modules/hasown/index.js", "../../node_modules/get-intrinsic/index.js", "../../node_modules/call-bound/index.js", "../../node_modules/side-channel-map/index.js", "../../node_modules/side-channel-weakmap/index.js", "../../node_modules/side-channel/index.js", "../../node_modules/qs/lib/formats.js", "../../node_modules/qs/lib/utils.js", "../../node_modules/qs/lib/stringify.js", "../../node_modules/qs/lib/parse.js", "../../node_modules/qs/lib/index.js", "../../node_modules/body-parser/lib/types/urlencoded.js", "../../node_modules/body-parser/index.js", "../../node_modules/merge-descriptors/index.js", "../../node_modules/encodeurl/index.js", "../../node_modules/escape-html/index.js", "../../node_modules/parseurl/index.js", "../../node_modules/finalhandler/index.js", "../../node_modules/array-flatten/array-flatten.js", "../../node_modulLine truncated
|
||||
"sourcesContent": ["/*!\n * depd\n * Copyright(c) 2014-2018 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar relative = require('path').relative\n\n/**\n * Module exports.\n */\n\nmodule.exports = depd\n\n/**\n * Get the path to base files on.\n */\n\nvar basePath = process.cwd()\n\n/**\n * Determine if namespace is contained in the string.\n */\n\nfunction containsNamespace (str, namespace) {\n var vals = str.split(/[ ,]+/)\n var ns = String(namespace).toLowerCase()\n\n for (var i = 0; i < vals.length; i++) {\n var val = vals[i]\n\n // namespace contained\n if (val && (val === '*' || val.toLowerCase() === ns)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Convert a data descriptor to accessor descriptor.\n */\n\nfunction convertDataDescriptorToAccessor (obj, prop, message) {\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n var value = descriptor.value\n\n descriptor.get = function getter () { return value }\n\n if (descriptor.writable) {\n descriptor.set = function setter (val) { return (value = val) }\n }\n\n delete descriptor.value\n delete descriptor.writable\n\n Object.defineProperty(obj, prop, descriptor)\n\n return descriptor\n}\n\n/**\n * Create arguments string to keep arity.\n */\n\nfunction createArgumentsString (arity) {\n var str = ''\n\n for (var i = 0; i < arity; i++) {\n str += ', arg' + i\n }\n\n return str.substr(2)\n}\n\n/**\n * Create stack string from stack.\n */\n\nfunction createStackString (stack) {\n var str = this.name + ': ' + this.namespace\n\n if (this.message) {\n str += ' deprecated ' + this.message\n }\n\n for (var i = 0; i < stack.length; i++) {\n str += '\\n at ' + stack[i].toString()\n }\n\n return str\n}\n\n/**\n * Create deprecate for namespace in caller.\n */\n\nfunction depd (namespace) {\n if (!namespace) {\n throw new TypeError('argument namespace is required')\n }\n\n var stack = getStack()\n var site = callSiteLocation(stack[1])\n var file = site[0]\n\n function deprecate (message) {\n // call to self as log\n log.call(deprecate, message)\n }\n\n deprecate._file = file\n deprecate._ignored = isignored(namespace)\n deprecate._namespace = namespace\n deprecate._traced = istraced(namespace)\n deprecate._warned = Object.create(null)\n\n deprecate.function = wrapfunction\n deprecate.property = wrapproperty\n\n return deprecate\n}\n\n/**\n * Determine if event emitter has listeners of a given type.\n *\n * The way to do this check is done three different ways in Node.js >= 0.8\n * so this consolidates them into a minimal set using instance methods.\n *\n * @param {EventEmitter} emitter\n * @param {string} type\n * @returns {boolean}\n * @private\n */\n\nfunction eehaslisteners (emitter, type) {\n var count = typeof emitter.listenerCount !== 'function'\n ? emitter.listeners(type).length\n : emitter.listenerCount(type)\n\n return count > 0\n}\n\n/**\n * Determine if namespace is ignored.\n */\n\nfunction isignored (namespace) {\n if (process.noDeprecation) {\n // --no-deprecation support\n return true\n }\n\n var str = process.env.NO_DEPRECATION || ''\n\n // namespace ignored\n return containsNamespace(str, namespace)\n}\n\n/**\n * Determine if namespace is traced.\n */\n\nfunction istraced (namespace) {\n if (process.traceDeprecation) {\n // --trace-deprecation support\n return true\n }\n\n var str = process.env.TRACE_DEPRECATION || ''\n\n // namespace traced\n return containsNamespace(str, namespace)\n}\n\n/**\n * Display deprecation message.\n */\n\nfunction log (message, site) {\n var haslisteners = eehaslisteners(process, 'deprecation')\n\n // abort early if no destination\n if (!haslisteners && this._ignored) {\n return\n }\n\n var caller\n var callFile\n var callSite\n var depSite\n var i = 0\n var seen = false\n var stack = getStack()\n var file = this._file\n\n if (site) {\n // provided site\n depSite = site\n callSite = callSiteLocation(stack[1])\n callSite.name = depSite.name\n file = callSite[0]\n } else {\n // get call site\n i = 2\n depSite = callSiteLocation(stack[i])\n callSite = depSite\n }\n\n // get caller of deprecated thing in relation to file\n for (; i < stack.length; i++) {\n caller = callSiteLocation(stack[i])\n callFile = caller[0]\n\n if (callFile === file) {\n seen = true\n } else if (callFile === this._file) {\n file = this._file\n } else if (seen) {\n break\n }\n }\n\n var key = caller\n ? depSite.join(':') + '__' + caller.join(':')\n : undefined\n\n if (key !== undefined && key in this._warned) {\n // already warned\n return\n }\n\n this._warned[key] = true\n\n // generate automatic message from call site\n var msg = message\n if (!msg) {\n msg = callSite === depSite || !callSite.name\n ? defaultMessage(depSite)\n : defaultMessage(callSite)\n }\n\n // Line truncated
|
||||
"mappings": "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 truncated
|
||||
"sources": ["../../node_modules/depd/index.js", "../../node_modules/bytes/index.js", "../../node_modules/content-type/index.js", "../../node_modules/setprototypeof/index.js", "../../node_modules/statuses/codes.json", "../../node_modules/statuses/index.js", "../../node_modules/inherits/inherits_browser.js", "../../node_modules/inherits/inherits.js", "../../node_modules/toidentifier/index.js", "../../node_modules/http-errors/index.js", "../../node_modules/ms/index.js", "../../node_modules/debug/src/debug.js", "../../node_modules/debug/src/browser.js", "../../node_modules/debug/src/node.js", "../../node_modules/debug/src/index.js", "../../node_modules/destroy/index.js", "../../node_modules/safer-buffer/safer.js", "../../node_modules/iconv-lite/lib/bom-handling.js", "../../node_modules/iconv-lite/encodings/internal.js", "../../node_modules/iconv-lite/encodings/utf16.js", "../../node_modules/iconv-lite/encodings/utf7.js", "../../node_modules/iconv-lite/encodings/sbcs-codec.js", "../../node_modules/iconv-lite/encodings/sbcs-data.js", "../../node_modules/iconv-lite/encodings/sbcs-data-generated.js", "../../node_modules/iconv-lite/encodings/dbcs-codec.js", "../../node_modules/iconv-lite/encodings/tables/shiftjis.json", "../../node_modules/iconv-lite/encodings/tables/eucjp.json", "../../node_modules/iconv-lite/encodings/tables/cp936.json", "../../node_modules/iconv-lite/encodings/tables/gbk-added.json", "../../node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", "../../node_modules/iconv-lite/encodings/tables/cp949.json", "../../node_modules/iconv-lite/encodings/tables/cp950.json", "../../node_modules/iconv-lite/encodings/tables/big5-added.json", "../../node_modules/iconv-lite/encodings/dbcs-data.js", "../../node_modules/iconv-lite/encodings/index.js", "../../node_modules/iconv-lite/lib/streams.js", "../../node_modules/iconv-lite/lib/extend-node.js", "../../node_modules/iconv-lite/lib/index.js", "../../node_modules/unpipe/index.js", "../../node_modules/raw-body/index.js", "../../node_modules/ee-first/index.js", "../../node_modules/on-finished/index.js", "../../node_modules/body-parser/lib/read.js", "../../node_modules/media-typer/index.js", "../../node_modules/mime-db/db.json", "../../node_modules/mime-db/index.js", "../../node_modules/mime-types/index.js", "../../node_modules/type-is/index.js", "../../node_modules/body-parser/lib/types/json.js", "../../node_modules/body-parser/lib/types/raw.js", "../../node_modules/body-parser/lib/types/text.js", "../../node_modules/es-errors/type.js", "../../node_modules/object-inspect/util.inspect.js", "../../node_modules/object-inspect/index.js", "../../node_modules/side-channel-list/index.js", "../../node_modules/es-object-atoms/index.js", "../../node_modules/es-errors/index.js", "../../node_modules/es-errors/eval.js", "../../node_modules/es-errors/range.js", "../../node_modules/es-errors/ref.js", "../../node_modules/es-errors/syntax.js", "../../node_modules/es-errors/uri.js", "../../node_modules/math-intrinsics/abs.js", "../../node_modules/math-intrinsics/floor.js", "../../node_modules/math-intrinsics/max.js", "../../node_modules/math-intrinsics/min.js", "../../node_modules/math-intrinsics/pow.js", "../../node_modules/math-intrinsics/round.js", "../../node_modules/math-intrinsics/isNaN.js", "../../node_modules/math-intrinsics/sign.js", "../../node_modules/gopd/gOPD.js", "../../node_modules/gopd/index.js", "../../node_modules/es-define-property/index.js", "../../node_modules/has-symbols/shams.js", "../../node_modules/has-symbols/index.js", "../../node_modules/get-proto/Reflect.getPrototypeOf.js", "../../node_modules/get-proto/Object.getPrototypeOf.js", "../../node_modules/function-bind/implementation.js", "../../node_modules/function-bind/index.js", "../../node_modules/call-bind-apply-helpers/functionCall.js", "../../node_modules/call-bind-apply-helpers/functionApply.js", "../../node_modules/call-bind-apply-helpers/reflectApply.js", "../../node_modules/call-bind-apply-helpers/actualApply.js", "../../node_modules/call-bind-apply-helpers/index.js", "../../node_modules/dunder-proto/get.js", "../../node_modules/get-proto/index.js", "../../node_modules/hasown/index.js", "../../node_modules/get-intrinsic/index.js", "../../node_modules/call-bound/index.js", "../../node_modules/side-channel-map/index.js", "../../node_modules/side-channel-weakmap/index.js", "../../node_modules/side-channel/index.js", "../../node_modules/qs/lib/formats.js", "../../node_modules/qs/lib/utils.js", "../../node_modules/qs/lib/stringify.js", "../../node_modules/qs/lib/parse.js", "../../node_modules/qs/lib/index.js", "../../node_modules/body-parser/lib/types/urlencoded.js", "../../node_modules/body-parser/index.js", "../../node_modules/merge-descriptors/index.js", "../../node_modules/encodeurl/index.js", "../../node_modules/escape-html/index.js", "../../node_modules/parseurl/index.js", "../../node_modules/finalhandler/index.js", "../../node_modules/array-flatten/array-flatten.js", "../../node_modulLine truncated
|
||||
"sourcesContent": ["/*!\n * depd\n * Copyright(c) 2014-2018 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar relative = require('path').relative\n\n/**\n * Module exports.\n */\n\nmodule.exports = depd\n\n/**\n * Get the path to base files on.\n */\n\nvar basePath = process.cwd()\n\n/**\n * Determine if namespace is contained in the string.\n */\n\nfunction containsNamespace (str, namespace) {\n var vals = str.split(/[ ,]+/)\n var ns = String(namespace).toLowerCase()\n\n for (var i = 0; i < vals.length; i++) {\n var val = vals[i]\n\n // namespace contained\n if (val && (val === '*' || val.toLowerCase() === ns)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Convert a data descriptor to accessor descriptor.\n */\n\nfunction convertDataDescriptorToAccessor (obj, prop, message) {\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n var value = descriptor.value\n\n descriptor.get = function getter () { return value }\n\n if (descriptor.writable) {\n descriptor.set = function setter (val) { return (value = val) }\n }\n\n delete descriptor.value\n delete descriptor.writable\n\n Object.defineProperty(obj, prop, descriptor)\n\n return descriptor\n}\n\n/**\n * Create arguments string to keep arity.\n */\n\nfunction createArgumentsString (arity) {\n var str = ''\n\n for (var i = 0; i < arity; i++) {\n str += ', arg' + i\n }\n\n return str.substr(2)\n}\n\n/**\n * Create stack string from stack.\n */\n\nfunction createStackString (stack) {\n var str = this.name + ': ' + this.namespace\n\n if (this.message) {\n str += ' deprecated ' + this.message\n }\n\n for (var i = 0; i < stack.length; i++) {\n str += '\\n at ' + stack[i].toString()\n }\n\n return str\n}\n\n/**\n * Create deprecate for namespace in caller.\n */\n\nfunction depd (namespace) {\n if (!namespace) {\n throw new TypeError('argument namespace is required')\n }\n\n var stack = getStack()\n var site = callSiteLocation(stack[1])\n var file = site[0]\n\n function deprecate (message) {\n // call to self as log\n log.call(deprecate, message)\n }\n\n deprecate._file = file\n deprecate._ignored = isignored(namespace)\n deprecate._namespace = namespace\n deprecate._traced = istraced(namespace)\n deprecate._warned = Object.create(null)\n\n deprecate.function = wrapfunction\n deprecate.property = wrapproperty\n\n return deprecate\n}\n\n/**\n * Determine if event emitter has listeners of a given type.\n *\n * The way to do this check is done three different ways in Node.js >= 0.8\n * so this consolidates them into a minimal set using instance methods.\n *\n * @param {EventEmitter} emitter\n * @param {string} type\n * @returns {boolean}\n * @private\n */\n\nfunction eehaslisteners (emitter, type) {\n var count = typeof emitter.listenerCount !== 'function'\n ? emitter.listeners(type).length\n : emitter.listenerCount(type)\n\n return count > 0\n}\n\n/**\n * Determine if namespace is ignored.\n */\n\nfunction isignored (namespace) {\n if (process.noDeprecation) {\n // --no-deprecation support\n return true\n }\n\n var str = process.env.NO_DEPRECATION || ''\n\n // namespace ignored\n return containsNamespace(str, namespace)\n}\n\n/**\n * Determine if namespace is traced.\n */\n\nfunction istraced (namespace) {\n if (process.traceDeprecation) {\n // --trace-deprecation support\n return true\n }\n\n var str = process.env.TRACE_DEPRECATION || ''\n\n // namespace traced\n return containsNamespace(str, namespace)\n}\n\n/**\n * Display deprecation message.\n */\n\nfunction log (message, site) {\n var haslisteners = eehaslisteners(process, 'deprecation')\n\n // abort early if no destination\n if (!haslisteners && this._ignored) {\n return\n }\n\n var caller\n var callFile\n var callSite\n var depSite\n var i = 0\n var seen = false\n var stack = getStack()\n var file = this._file\n\n if (site) {\n // provided site\n depSite = site\n callSite = callSiteLocation(stack[1])\n callSite.name = depSite.name\n file = callSite[0]\n } else {\n // get call site\n i = 2\n depSite = callSiteLocation(stack[i])\n callSite = depSite\n }\n\n // get caller of deprecated thing in relation to file\n for (; i < stack.length; i++) {\n caller = callSiteLocation(stack[i])\n callFile = caller[0]\n\n if (callFile === file) {\n seen = true\n } else if (callFile === this._file) {\n file = this._file\n } else if (seen) {\n break\n }\n }\n\n var key = caller\n ? depSite.join(':') + '__' + caller.join(':')\n : undefined\n\n if (key !== undefined && key in this._warned) {\n // already warned\n return\n }\n\n this._warned[key] = true\n\n // generate automatic message from call site\n var msg = message\n if (!msg) {\n msg = callSite === depSite || !callSite.name\n ? defaultMessage(depSite)\n : defaultMessage(callSite)\n }\n\n // Line truncated
|
||||
"mappings": "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 truncated
|
||||
"names": ["exports", "module", "exports", "module", "exports", "exports", "module", "exports", "module", "exports", "module", "codes", "status", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "useColors", "exports", "module", "useColors", "fd", "stream", "fs", "exports", "module", "exports", "module", "exports", "module", "Buffer", "exports", "exports", "module", "Buffer", "exports", "Buffer", "exports", "Buffer", "i", "exports", "Buffer", "exports", "module", "exports", "module", "exports", "Buffer", "i", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "Buffer", "exports", "module", "Buffer", "exports", "module", "Buffer", "exports", "module", "exports", "module", "exports", "module", "i", "fn", "exports", "module", "exports", "module", "exports", "exports", "module", "exports", "module", "exports", "charset", "path", "extension", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "isNaN", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "concatty", "slicy", "Empty", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "undefined", "doEval", "stringToPath", "getBaseIntrinsic", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "markOverflow", "isOverflow", "getMaxIndex", "setMaxIndex", "compactQueue", "arrayToObject", "setProperty", "merge", "encode", "compact", "isRegExp", "isBuffer", "combine", "maybeMap", "exports", "module", "isNonNullishPrimitive", "stringify", "value", "normalizeStringifyOptions", "exports", "module", "splitKeyIntoSegments", "normalizeParseOptions", "require_lib", "exports", "module", "exports", "module", "exports", "module", "bodyParser", "exports", "module", "exports", "module", "exports", "module", "escape", "exports", "module", "url", "exports", "module", "exports", "module", "exports", "module", "path", "m", "exports", "module", "path", "match", "exports", "module", "exports", "module", "path", "methods", "exports", "module", "exports", "module", "path", "err", "route", "i", "exports", "app", "exports", "module", "query", "exports", "module", "path", "fs", "resolve", "exports", "module", "Buffer", "exports", "module", "Buffer", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "path", "fs", "require_ms", "exports", "module", "exports", "module", "exports", "module", "fs", "path", "etag", "index", "match", "send", "err", "stream", "type", "exports", "module", "exports", "module", "string", "error1", "exports", "module", "require_utils", "exports", "Buffer", "path", "exports", "module", "app", "path", "fn", "View", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "range", "subdomains", "path", "exports", "exports", "decode", "exports", "module", "exports", "module", "Buffer", "path", "send", "app", "escape", "res", "exports", "module", "serveStatic", "path", "exports", "module", "app", "req", "res", "require_express", "exports", "module", "exports", "module", "require_lib", "exports", "module", "cors", "import_fs", "import_path", "import_path", "path", "fs", "path", "express", "cors", "path", "fs"]
|
||||
}
|
||||
@@ -644,7 +644,7 @@ class WASIRunner {
|
||||
const filename = this.peekUTF8(path_ptr, path_len);
|
||||
const path = filename.startsWith('/') ? filename : dir.name + '/' + filename; // TODO?
|
||||
const fd = this.fs.getFile(path);
|
||||
console.log("path_filestat_get", dir + "", filename, path, filestat_ptr, '->', fd + "");
|
||||
debug("path_filestat_get", dir + "", filename, path, filestat_ptr, '->', fd + "");
|
||||
if (!fd)
|
||||
return WASIErrors.NOENT;
|
||||
this.poke_filestat(filestat_ptr, fd);
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"wasishim.js","sourceRoot":"","sources":["../../../../src/common/wasi/wasishim.ts"],"names":[],"mappings":"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 truncated
|
||||
{"version":3,"file":"wasishim.js","sourceRoot":"","sources":["../../../../src/common/wasi/wasishim.ts"],"names":[],"mappings":"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 truncated
|
||||
@@ -0,0 +1,137 @@
|
||||
"use strict";
|
||||
// Parser for the oscar64 compiler's auxiliary output files.
|
||||
// oscar64 writes a .map (memory map), .lbl (label file) and .asm
|
||||
// (assembly listing with C source line markers) next to the output.
|
||||
// This module is shared by the browser/WASM tool (src/worker/tools/oscar64.ts)
|
||||
// and the native server tool (src/worker/server/buildenv.ts).
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseOscar64Map = parseOscar64Map;
|
||||
exports.parseOscar64Lbl = parseOscar64Lbl;
|
||||
exports.parseOscar64Listing = parseOscar64Listing;
|
||||
/**
|
||||
* Parse an oscar64 .map file.
|
||||
* Returns segments (from the 'sections' section) and a symbol map
|
||||
* (from the 'objects' section).
|
||||
*
|
||||
* Sample:
|
||||
* sections
|
||||
* 0880 - 0889 : DATA, code
|
||||
* 0889 - 088a : DATA, data
|
||||
* ...
|
||||
* objects
|
||||
* 0801 - 0853 : startup, NATIVE_CODE:startup
|
||||
* 0880 - 0889 : main, NATIVE_CODE:code
|
||||
*/
|
||||
function parseOscar64Map(mapout) {
|
||||
let segments = [];
|
||||
let symbolmap = {};
|
||||
let section = '';
|
||||
for (let line of mapout.split('\n')) {
|
||||
line = line.trim();
|
||||
if (line === 'sections' || line === 'regions' || line === 'objects' || line === 'objects by size') {
|
||||
section = line;
|
||||
continue;
|
||||
}
|
||||
// "0880 - 0889 : DATA, code" or "0801 - 0853 : startup, NATIVE_CODE:startup"
|
||||
let m = /^([0-9a-f]+) - ([0-9a-f]+) : ([^,]+), (.+)$/.exec(line);
|
||||
if (m) {
|
||||
const start = parseInt(m[1], 16);
|
||||
const end = parseInt(m[2], 16);
|
||||
const name = m[4].trim();
|
||||
if (section === 'sections') {
|
||||
// derive rom/ram classification from the segment name
|
||||
let type = 'ram';
|
||||
if (/code/.test(m[4]) || m[4] === 'startup' || /rom/.test(m[4])) {
|
||||
type = 'rom';
|
||||
}
|
||||
segments.push({ name: m[4], start, size: end - start, type });
|
||||
}
|
||||
else if (section === 'objects') {
|
||||
if (m[3] !== '*')
|
||||
symbolmap[m[3]] = start;
|
||||
}
|
||||
}
|
||||
}
|
||||
return { segments, symbolmap };
|
||||
}
|
||||
/**
|
||||
* Parse an oscar64 .lbl file (VICE label format), e.g. "al 0880 .main".
|
||||
* Used as a fallback when the .map has no "objects" section.
|
||||
*/
|
||||
function parseOscar64Lbl(lblout) {
|
||||
let symbolmap = {};
|
||||
for (let line of lblout.split('\n')) {
|
||||
let toks = line.trim().split(/\s+/);
|
||||
if (toks[0] == 'al' && toks.length >= 3) {
|
||||
const ofs = parseInt(toks[1], 16);
|
||||
const name = toks[2];
|
||||
// prefer the un-dotted form used by the assembler listing
|
||||
const clean = name.replace(/^\./, '');
|
||||
if (!symbolmap[clean])
|
||||
symbolmap[clean] = ofs;
|
||||
}
|
||||
}
|
||||
return symbolmap;
|
||||
}
|
||||
/**
|
||||
* Parse an oscar64 .asm listing.
|
||||
* Returns source lines (each instruction offset mapped to its C source line)
|
||||
* and assembly lines (one entry per assembly line in the listing).
|
||||
*
|
||||
* Sample:
|
||||
* ; Compiled with 1.32.266
|
||||
* --------------------------------------------------------------------
|
||||
* startup: ; startup
|
||||
* 0801 : 0b __ __ INV
|
||||
* ...
|
||||
* main: ; main()->i16
|
||||
* ; 2, "/test.c"
|
||||
* .s4:
|
||||
* ; 2, "/test.c"
|
||||
* 0880 : a9 04 __ LDA #$04
|
||||
*/
|
||||
function parseOscar64Listing(asmout, asmfn) {
|
||||
let srclines = [];
|
||||
let asmlines = [];
|
||||
let c_lineno = 0;
|
||||
let c_path = '';
|
||||
let asm_lineno = 0;
|
||||
// ; 2, "/test.c"
|
||||
let re_src = /^;\s*(\d+), "(.+?)"/;
|
||||
// 0801 : 0b __ __ INV
|
||||
let re_insn = /^([0-9a-f]+) : ([0-9a-f _]{8}) (.*)/;
|
||||
for (let line of asmout.split('\n')) {
|
||||
asm_lineno++;
|
||||
let m2 = re_src.exec(line);
|
||||
if (m2) {
|
||||
c_lineno = parseInt(m2[1]);
|
||||
// path may be absolute; use basename for source line mapping
|
||||
c_path = m2[2].split('/').pop();
|
||||
}
|
||||
let m = re_insn.exec(line);
|
||||
if (m) {
|
||||
let offset = parseInt(m[1], 16);
|
||||
let hex = m[2];
|
||||
let asm = m[3];
|
||||
let insns = (hex + ' ' + asm).trim();
|
||||
asmlines.push({
|
||||
line: asm_lineno,
|
||||
path: asmfn,
|
||||
offset,
|
||||
insns,
|
||||
iscode: true,
|
||||
});
|
||||
if (c_path) {
|
||||
srclines.push({
|
||||
line: c_lineno,
|
||||
path: c_path,
|
||||
offset,
|
||||
iscode: true,
|
||||
});
|
||||
c_path = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
return { srclines, asmlines };
|
||||
}
|
||||
//# sourceMappingURL=oscar64parse.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"oscar64parse.js","sourceRoot":"","sources":["../../../../src/worker/tools/oscar64parse.ts"],"names":[],"mappings":"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"}
|
||||
@@ -16,6 +16,11 @@ function loadBlobSync(path) {
|
||||
return xhr.response;
|
||||
}
|
||||
async function unzipWASIFilesystem(zipdata, rootPath = "./") {
|
||||
// In the Node.js test env, the XMLHttpRequest shim returns a custom Blob
|
||||
// that JSZip does not recognize. Convert it to an ArrayBuffer first.
|
||||
if (zipdata && typeof zipdata.asArrayBuffer === 'function') {
|
||||
zipdata = zipdata.asArrayBuffer();
|
||||
}
|
||||
const jszip = new jszip_1.default();
|
||||
await jszip.loadAsync(zipdata);
|
||||
let fs = new wasishim_1.WASIMemoryFilesystem();
|
||||
@@ -39,7 +44,6 @@ async function loadWASIFilesystemZip(zippath, rootPath = "./") {
|
||||
const jszip = new jszip_1.default();
|
||||
const path = '../../src/worker/fs/' + zippath;
|
||||
const zipdata = loadBlobSync(path);
|
||||
console.log(zippath, zipdata);
|
||||
return unzipWASIFilesystem(zipdata, rootPath);
|
||||
}
|
||||
//# sourceMappingURL=wasiutils.js.map
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"wasiutils.js","sourceRoot":"","sources":["../../../src/worker/wasiutils.ts"],"names":[],"mappings":";;;;;AAGA,oCAMC;AAED,kDAkBC;AAED,sDAMC;AArCD,kDAA0B;AAC1B,sDAA+D;AAE/D,SAAgB,YAAY,CAAC,IAAY;IACrC,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;IAC/B,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,sBAAsB;IACrD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,GAAG,CAAC,QAAQ,CAAC;AACxB,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,OAAoB,EAAE,WAAmB,IAAI;IACnF,MAAM,KAAK,GAAG,IAAI,eAAK,EAAE,CAAC;IAC1B,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,EAAE,GAAG,IAAI,+BAAoB,EAAE,CAAC;IACpC,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE;QAC3C,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YACf,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,IAAI,IAAI,GAAG,QAAQ,GAAG,YAAY,CAAC;YACnC,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClD,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,OAAe,EAAE,WAAmB,IAAI;IAChF,MAAM,KAAK,GAAG,IAAI,eAAK,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,sBAAsB,GAAG,OAAO,CAAC;IAC9C,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC"}
|
||||
{"version":3,"file":"wasiutils.js","sourceRoot":"","sources":["../../../src/worker/wasiutils.ts"],"names":[],"mappings":";;;;;AAGA,oCAMC;AAED,kDAuBC;AAED,sDAKC;AAzCD,kDAA0B;AAC1B,sDAA+D;AAE/D,SAAgB,YAAY,CAAC,IAAY;IACrC,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;IAC/B,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,sBAAsB;IACrD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,GAAG,CAAC,QAAQ,CAAC;AACxB,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,OAAY,EAAE,WAAmB,IAAI;IAC3E,yEAAyE;IACzE,qEAAqE;IACrE,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;QACzD,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IACtC,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,eAAK,EAAE,CAAC;IAC1B,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,EAAE,GAAG,IAAI,+BAAoB,EAAE,CAAC;IACpC,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE;QAC3C,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YACf,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,IAAI,IAAI,GAAG,QAAQ,GAAG,YAAY,CAAC;YACnC,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClD,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,OAAe,EAAE,WAAmB,IAAI;IAChF,MAAM,KAAK,GAAG,IAAI,eAAK,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,sBAAsB,GAAG,OAAO,CAAC;IAC9C,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC"}
|
||||
@@ -40,6 +40,7 @@ const assert_1 = __importDefault(require("assert"));
|
||||
const wasishim_1 = require("../../src/common/wasi/wasishim");
|
||||
const fs = __importStar(require("fs"));
|
||||
const wasiutils_1 = require("../../src/worker/wasiutils");
|
||||
const oscar64parse_1 = require("../../src/worker/tools/oscar64parse");
|
||||
async function loadWASM(filename) {
|
||||
const wasmdata = fs.readFileSync(`./src/worker/wasm/${filename}.wasm`);
|
||||
let shim = new wasishim_1.WASIRunner();
|
||||
@@ -153,27 +154,41 @@ describe('test WASI dialogc', function () {
|
||||
assert_1.default.ok(stderr.indexOf('Error: Failed to open "nosuch.dg"') >= 0, stderr);
|
||||
});
|
||||
});
|
||||
/*
|
||||
describe('test WASI oscar64', function () {
|
||||
it('oscar64 compile', async function () {
|
||||
it('oscar64 compile + parse output', async function () {
|
||||
let shim = await loadOscar64();
|
||||
const zipdata = fs.readFileSync(`./src/worker/fs/oscar64-fs.zip`);
|
||||
shim.fs = await unzipWASIFilesystem(zipdata, "/root/");
|
||||
// https://github.com/WebAssembly/wasi-filesystem/issues/24
|
||||
// https://github.com/WebAssembly/wasi-libc/pull/214
|
||||
shim.addPreopenDirectory("/root");
|
||||
shim.fs.putSymbolicLink("/proc/self/exe", "/root/bin/oscar64");
|
||||
shim.fs.putFile("/root/main.c", `#include <stdio.h>\nint main() { printf("FOO"); return 0; }`);
|
||||
shim.setArgs(["oscar64", '-v', '-g', '-O', '-o=foo.prg', 'main.c']);
|
||||
let oscar64_fs = await (0, wasiutils_1.unzipWASIFilesystem)(zipdata, "./");
|
||||
shim.fs.setParent(oscar64_fs);
|
||||
shim.fs.putFile("./main.c", `#include <stdio.h>\nint main() { printf("FOO"); return 0; }`);
|
||||
shim.addPreopenDirectory("include");
|
||||
shim.addPreopenDirectory(".");
|
||||
shim.setArgs(["oscar64", '-v', '-gp', '-ii=include', '-o=./foo.prg', 'main.c']);
|
||||
let errno = shim.run();
|
||||
const stdout = shim.fds[1].getBytesAsString();
|
||||
console.log(stdout);
|
||||
const stderr = shim.fds[2].getBytesAsString();
|
||||
console.log(stderr);
|
||||
assert.strictEqual(errno, 0);
|
||||
assert.ok(stdout.indexOf('Starting oscar64') >= 0);
|
||||
console.log(shim.fs.getFile("/root/foo.asm").getBytesAsString());
|
||||
assert_1.default.strictEqual(errno, 0, stdout + '\n' + stderr);
|
||||
assert_1.default.ok(stdout.indexOf('Starting oscar64') >= 0, stdout);
|
||||
// oscar64 should have written a .map, .lbl and .asm file
|
||||
assert_1.default.ok(shim.fs.getFile("././foo.prg"), "foo.prg not written");
|
||||
assert_1.default.ok(shim.fs.getFile("././foo.map"), "foo.map not written");
|
||||
assert_1.default.ok(shim.fs.getFile("././foo.lbl"), "foo.lbl not written");
|
||||
assert_1.default.ok(shim.fs.getFile("././foo.asm"), "foo.asm not written");
|
||||
// parse the map file for segments and symbols
|
||||
let mapout = shim.fs.getFile("././foo.map").getBytesAsString();
|
||||
let parsed = (0, oscar64parse_1.parseOscar64Map)(mapout);
|
||||
assert_1.default.ok(parsed.segments.length > 0);
|
||||
assert_1.default.ok(parsed.symbolmap['main'] > 0);
|
||||
// parse the lbl file
|
||||
let lblout = shim.fs.getFile("././foo.lbl").getBytesAsString();
|
||||
let lbl = (0, oscar64parse_1.parseOscar64Lbl)(lblout);
|
||||
assert_1.default.ok(lbl['main'] === parsed.symbolmap['main']);
|
||||
// parse the asm listing
|
||||
let asmout = shim.fs.getFile("././foo.asm").getBytesAsString();
|
||||
let listing = (0, oscar64parse_1.parseOscar64Listing)(asmout, 'main.c');
|
||||
assert_1.default.ok(listing.asmlines.length > 0);
|
||||
assert_1.default.ok(listing.srclines.length > 0);
|
||||
assert_1.default.ok(listing.srclines[0].offset > 0);
|
||||
});
|
||||
});
|
||||
*/
|
||||
//# sourceMappingURL=testwasishim.js.map
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"testwasishim.js","sourceRoot":"","sources":["../../../test/unit/testwasishim.ts"],"names":[],"mappings":"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 truncated
|
||||
{"version":3,"file":"testwasishim.js","sourceRoot":"","sources":["../../../test/unit/testwasishim.ts"],"names":[],"mappings":"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 truncated
|
||||
@@ -1 +1 @@
|
||||
{"root":["../src/common/analysis.ts","../src/common/audio.ts","../src/common/baseplatform.ts","../src/common/binutils.ts","../src/common/devices.ts","../src/common/emu.ts","../src/common/gbpalette.ts","../src/common/mameplatform.ts","../src/common/probe.ts","../src/common/recorder.ts","../src/common/teletype.ts","../src/common/tokenizer.ts","../src/common/util.ts","../src/common/vlist.ts","../src/common/vtextscroller.ts","../src/common/wasmplatform.ts","../src/common/workertypes.ts","../src/common/audio/CommodoreTape.ts","../src/common/basic/compiler.ts","../src/common/basic/fuzz.ts","../src/common/basic/run.ts","../src/common/basic/runtime.ts","../src/common/cpu/6809.ts","../src/common/cpu/ARM.ts","../src/common/cpu/F8.ts","../src/common/cpu/MOS6502.ts","../src/common/cpu/SM83.ts","../src/common/cpu/ZilogZ80.ts","../src/common/cpu/disasm6502.ts","../src/common/cpu/disasmF8.ts","../src/common/cpu/disasmHuC6280.ts","../src/common/cpu/disasmSM83.ts","../src/common/cpu/disasmz80.ts","../src/common/ecs/binpack.ts","../src/common/ecs/compiler.ts","../src/common/ecs/decoder.ts","../src/common/ecs/ecs.ts","../src/common/ecs/main.ts","../src/common/hdl/fuzz.ts","../src/common/hdl/hdlruntime.ts","../src/common/hdl/hdltypes.ts","../src/common/hdl/hdlwasm.ts","../src/common/hdl/vxmlparser.ts","../src/common/hdl/vxmltest.ts","../src/common/wasi/libretro.ts","../src/common/wasi/wasishim.ts","../src/ide/dialogs.ts","../src/ide/embedui.ts","../src/ide/pixeleditor.ts","../src/ide/project.ts","../src/ide/services.ts","../src/ide/settings.ts","../src/ide/shareexport.ts","../src/ide/sync.ts","../src/ide/toolbar.ts","../src/ide/ui.ts","../src/ide/waveform.ts","../src/ide/windows.ts","../src/ide/views/assetdecorations.ts","../src/ide/views/asseteditor.ts","../src/ide/views/baseviews.ts","../src/ide/views/debug.ts","../src/ide/views/debugviews.ts","../src/ide/views/editors.ts","../src/ide/views/filters.ts","../src/ide/views/gutter.ts","../src/ide/views/tabs.ts","../src/ide/views/traceviews.ts","../src/ide/views/treeviews.ts","../src/ide/views/visuals.ts","../src/machine/apple2.ts","../src/machine/arm32.ts","../src/machine/astrocade.ts","../src/machine/atari7800.ts","../src/machine/atari8.ts","../src/machine/c64.ts","../src/machine/channelf.ts","../src/machine/coleco.ts","../src/machine/cpc.ts","../src/machine/devel.ts","../src/machine/exidy.ts","../src/machine/galaxian.ts","../src/machine/gb.ts","../src/machine/kim1.ts","../src/machine/mcr.ts","../src/machine/msx.ts","../src/machine/mw8080bw.ts","../src/machine/pacman.ts","../src/machine/sms.ts","../src/machine/vdp_z80.ts","../src/machine/vic20.ts","../src/machine/vicdual.ts","../src/machine/williams.ts","../src/machine/zx.ts","../src/machine/chips/antic.ts","../src/machine/chips/gtia.ts","../src/machine/chips/pokey.ts","../src/machine/chips/tms9918a.ts","../src/parser/lang-6502.ts","../src/parser/lang-basic.ts","../src/parser/lang-bataribasic.ts","../src/parser/lang-dialog.ts","../src/parser/lang-fastbasic.ts","../src/parser/lang-inform6.ts","../src/parser/lang-verilog.ts","../src/parser/lang-wiz.ts","../src/parser/lang-z80.ts","../src/parser/tokens-6502.ts","../src/parser/tokens-6809.ts","../src/parser/tokens-z80.ts","../src/platform/_index.ts","../src/platform/apple2.ts","../src/platform/arm32.ts","../src/platform/astrocade.ts","../src/platform/atari7800.ts","../src/platform/atari8.ts","../src/platform/basic.ts","../src/platform/c64.ts","../src/platform/channelf.ts","../src/platform/coleco.ts","../src/platform/cpc.ts","../src/platform/devel.ts","../src/platform/exidy.ts","../src/platform/galaxian.ts","../src/platform/gb.ts","../src/platform/kim1.ts","../src/platform/markdown.ts","../src/platform/mcr.ts","../src/platform/msx.ts","../src/platform/mw8080bw.ts","../src/platform/nes.ts","../src/platform/pacman.ts","../src/platform/pce.ts","../src/platform/sms.ts","../src/platform/sound_konami.ts","../src/platform/sound_williams.ts","../src/platform/vcs.ts","../src/platform/vector.ts","../src/platform/vectrex.ts","../src/platform/verilog.ts","../src/platform/vic20.ts","../src/platform/vicdual.ts","../src/platform/williams.ts","../src/platform/x86.ts","../src/platform/zmachine.ts","../src/platform/zx.ts","../src/themes/cobalt.ts","../src/themes/disassemblyTheme.ts","../src/themes/editorTheme.ts","../src/themes/mbo.ts","../src/tools/8bws.ts","../src/tools/nodemock.ts","../src/tools/runmachine.ts","../src/tools/sim6502.ts","../src/tools/termimage.ts","../src/tools/testlib.ts","../src/worker/assembler.ts","../src/worker/builder.ts","../src/worker/listingutils.ts","../src/worker/platforms.ts","../src/worker/wasiutils.ts","../src/worker/wasmutils.ts","../src/worker/workerlib.ts","../src/worker/workermain.ts","../src/worker/workertools.ts","../src/worker/server/buildenv.ts","../src/worker/server/clang.ts","../src/worker/server/server.ts","../src/worker/tools/acme.ts","../src/worker/tools/arm.ts","../src/worker/tools/bataribasic.ts","../src/worker/tools/cc2600.ts","../src/worker/tools/cc6Line truncated
|
||||
{"root":["../src/common/analysis.ts","../src/common/audio.ts","../src/common/baseplatform.ts","../src/common/binutils.ts","../src/common/devices.ts","../src/common/emu.ts","../src/common/gbpalette.ts","../src/common/mameplatform.ts","../src/common/probe.ts","../src/common/recorder.ts","../src/common/teletype.ts","../src/common/tokenizer.ts","../src/common/util.ts","../src/common/vlist.ts","../src/common/vtextscroller.ts","../src/common/wasmplatform.ts","../src/common/workertypes.ts","../src/common/audio/CommodoreTape.ts","../src/common/basic/compiler.ts","../src/common/basic/fuzz.ts","../src/common/basic/run.ts","../src/common/basic/runtime.ts","../src/common/cpu/6809.ts","../src/common/cpu/ARM.ts","../src/common/cpu/F8.ts","../src/common/cpu/MOS6502.ts","../src/common/cpu/SM83.ts","../src/common/cpu/ZilogZ80.ts","../src/common/cpu/disasm6502.ts","../src/common/cpu/disasmF8.ts","../src/common/cpu/disasmHuC6280.ts","../src/common/cpu/disasmSM83.ts","../src/common/cpu/disasmz80.ts","../src/common/ecs/binpack.ts","../src/common/ecs/compiler.ts","../src/common/ecs/decoder.ts","../src/common/ecs/ecs.ts","../src/common/ecs/main.ts","../src/common/hdl/fuzz.ts","../src/common/hdl/hdlruntime.ts","../src/common/hdl/hdltypes.ts","../src/common/hdl/hdlwasm.ts","../src/common/hdl/vxmlparser.ts","../src/common/hdl/vxmltest.ts","../src/common/wasi/libretro.ts","../src/common/wasi/wasishim.ts","../src/ide/dialogs.ts","../src/ide/embedui.ts","../src/ide/pixeleditor.ts","../src/ide/project.ts","../src/ide/services.ts","../src/ide/settings.ts","../src/ide/shareexport.ts","../src/ide/sync.ts","../src/ide/toolbar.ts","../src/ide/ui.ts","../src/ide/waveform.ts","../src/ide/windows.ts","../src/ide/views/assetdecorations.ts","../src/ide/views/asseteditor.ts","../src/ide/views/baseviews.ts","../src/ide/views/debug.ts","../src/ide/views/debugviews.ts","../src/ide/views/editors.ts","../src/ide/views/filters.ts","../src/ide/views/gutter.ts","../src/ide/views/tabs.ts","../src/ide/views/traceviews.ts","../src/ide/views/treeviews.ts","../src/ide/views/visuals.ts","../src/machine/apple2.ts","../src/machine/arm32.ts","../src/machine/astrocade.ts","../src/machine/atari7800.ts","../src/machine/atari8.ts","../src/machine/c64.ts","../src/machine/channelf.ts","../src/machine/coleco.ts","../src/machine/cpc.ts","../src/machine/devel.ts","../src/machine/exidy.ts","../src/machine/galaxian.ts","../src/machine/gb.ts","../src/machine/kim1.ts","../src/machine/mcr.ts","../src/machine/msx.ts","../src/machine/mw8080bw.ts","../src/machine/pacman.ts","../src/machine/sms.ts","../src/machine/vdp_z80.ts","../src/machine/vic20.ts","../src/machine/vicdual.ts","../src/machine/williams.ts","../src/machine/zx.ts","../src/machine/chips/antic.ts","../src/machine/chips/gtia.ts","../src/machine/chips/pokey.ts","../src/machine/chips/tms9918a.ts","../src/parser/lang-6502.ts","../src/parser/lang-basic.ts","../src/parser/lang-bataribasic.ts","../src/parser/lang-dialog.ts","../src/parser/lang-fastbasic.ts","../src/parser/lang-inform6.ts","../src/parser/lang-verilog.ts","../src/parser/lang-wiz.ts","../src/parser/lang-z80.ts","../src/parser/tokens-6502.ts","../src/parser/tokens-6809.ts","../src/parser/tokens-z80.ts","../src/platform/_index.ts","../src/platform/apple2.ts","../src/platform/arm32.ts","../src/platform/astrocade.ts","../src/platform/atari7800.ts","../src/platform/atari8.ts","../src/platform/basic.ts","../src/platform/c64.ts","../src/platform/channelf.ts","../src/platform/coleco.ts","../src/platform/cpc.ts","../src/platform/devel.ts","../src/platform/exidy.ts","../src/platform/galaxian.ts","../src/platform/gb.ts","../src/platform/kim1.ts","../src/platform/markdown.ts","../src/platform/mcr.ts","../src/platform/msx.ts","../src/platform/mw8080bw.ts","../src/platform/nes.ts","../src/platform/pacman.ts","../src/platform/pce.ts","../src/platform/sms.ts","../src/platform/sound_konami.ts","../src/platform/sound_williams.ts","../src/platform/vcs.ts","../src/platform/vector.ts","../src/platform/vectrex.ts","../src/platform/verilog.ts","../src/platform/vic20.ts","../src/platform/vicdual.ts","../src/platform/williams.ts","../src/platform/x86.ts","../src/platform/zmachine.ts","../src/platform/zx.ts","../src/themes/cobalt.ts","../src/themes/disassemblyTheme.ts","../src/themes/editorTheme.ts","../src/themes/mbo.ts","../src/tools/8bws.ts","../src/tools/nodemock.ts","../src/tools/runmachine.ts","../src/tools/sim6502.ts","../src/tools/termimage.ts","../src/tools/testlib.ts","../src/worker/assembler.ts","../src/worker/builder.ts","../src/worker/listingutils.ts","../src/worker/platforms.ts","../src/worker/wasiutils.ts","../src/worker/wasmutils.ts","../src/worker/workerlib.ts","../src/worker/workermain.ts","../src/worker/workertools.ts","../src/worker/server/buildenv.ts","../src/worker/server/clang.ts","../src/worker/server/server.ts","../src/worker/tools/acme.ts","../src/worker/tools/arm.ts","../src/worker/tools/bataribasic.ts","../src/worker/tools/cc2600.ts","../src/worker/tools/cc6Line truncated
|
||||
+127
-5
@@ -6835,7 +6835,7 @@
|
||||
const filename = this.peekUTF8(path_ptr, path_len);
|
||||
const path = filename.startsWith("/") ? filename : dir.name + "/" + filename;
|
||||
const fd = this.fs.getFile(path);
|
||||
console.log("path_filestat_get", dir + "", filename, path, filestat_ptr, "->", fd + "");
|
||||
debug("path_filestat_get", dir + "", filename, path, filestat_ptr, "->", fd + "");
|
||||
if (!fd) return 44 /* NOENT */;
|
||||
this.poke_filestat(filestat_ptr, fd);
|
||||
return 0 /* SUCCESS */;
|
||||
@@ -10358,6 +10358,9 @@
|
||||
return xhr.response;
|
||||
}
|
||||
async function unzipWASIFilesystem(zipdata, rootPath = "./") {
|
||||
if (zipdata && typeof zipdata.asArrayBuffer === "function") {
|
||||
zipdata = zipdata.asArrayBuffer();
|
||||
}
|
||||
const jszip = new import_jszip.default();
|
||||
await jszip.loadAsync(zipdata);
|
||||
let fs = new WASIMemoryFilesystem();
|
||||
@@ -10380,7 +10383,6 @@
|
||||
const jszip = new import_jszip.default();
|
||||
const path = "../../src/worker/fs/" + zippath;
|
||||
const zipdata = loadBlobSync(path);
|
||||
console.log(zippath, zipdata);
|
||||
return unzipWASIFilesystem(zipdata, rootPath);
|
||||
}
|
||||
|
||||
@@ -14073,9 +14075,101 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
|
||||
};
|
||||
}
|
||||
|
||||
// src/worker/tools/oscar64parse.ts
|
||||
function parseOscar64Map(mapout) {
|
||||
let segments = [];
|
||||
let symbolmap = {};
|
||||
let section = "";
|
||||
for (let line of mapout.split("\n")) {
|
||||
line = line.trim();
|
||||
if (line === "sections" || line === "regions" || line === "objects" || line === "objects by size") {
|
||||
section = line;
|
||||
continue;
|
||||
}
|
||||
let m = /^([0-9a-f]+) - ([0-9a-f]+) : ([^,]+), (.+)$/.exec(line);
|
||||
if (m) {
|
||||
const start = parseInt(m[1], 16);
|
||||
const end = parseInt(m[2], 16);
|
||||
const name = m[4].trim();
|
||||
if (section === "sections") {
|
||||
let type = "ram";
|
||||
if (/code/.test(m[4]) || m[4] === "startup" || /rom/.test(m[4])) {
|
||||
type = "rom";
|
||||
}
|
||||
segments.push({ name: m[4], start, size: end - start, type });
|
||||
} else if (section === "objects") {
|
||||
if (m[3] !== "*") symbolmap[m[3]] = start;
|
||||
}
|
||||
}
|
||||
}
|
||||
return { segments, symbolmap };
|
||||
}
|
||||
function parseOscar64Lbl(lblout) {
|
||||
let symbolmap = {};
|
||||
for (let line of lblout.split("\n")) {
|
||||
let toks = line.trim().split(/\s+/);
|
||||
if (toks[0] == "al" && toks.length >= 3) {
|
||||
const ofs = parseInt(toks[1], 16);
|
||||
const name = toks[2];
|
||||
const clean = name.replace(/^\./, "");
|
||||
if (!symbolmap[clean]) symbolmap[clean] = ofs;
|
||||
}
|
||||
}
|
||||
return symbolmap;
|
||||
}
|
||||
function parseOscar64Listing(asmout, asmfn) {
|
||||
let srclines = [];
|
||||
let asmlines = [];
|
||||
let c_lineno = 0;
|
||||
let c_path = "";
|
||||
let asm_lineno = 0;
|
||||
let re_src = /^;\s*(\d+), "(.+?)"/;
|
||||
let re_insn = /^([0-9a-f]+) : ([0-9a-f _]{8}) (.*)/;
|
||||
for (let line of asmout.split("\n")) {
|
||||
asm_lineno++;
|
||||
let m2 = re_src.exec(line);
|
||||
if (m2) {
|
||||
c_lineno = parseInt(m2[1]);
|
||||
c_path = m2[2].split("/").pop();
|
||||
}
|
||||
let m = re_insn.exec(line);
|
||||
if (m) {
|
||||
let offset = parseInt(m[1], 16);
|
||||
let hex3 = m[2];
|
||||
let asm = m[3];
|
||||
let insns = (hex3 + " " + asm).trim();
|
||||
asmlines.push({
|
||||
line: asm_lineno,
|
||||
path: asmfn,
|
||||
offset,
|
||||
insns,
|
||||
iscode: true
|
||||
});
|
||||
if (c_path) {
|
||||
srclines.push({
|
||||
line: c_lineno,
|
||||
path: c_path,
|
||||
offset,
|
||||
iscode: true
|
||||
});
|
||||
c_path = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
return { srclines, asmlines };
|
||||
}
|
||||
|
||||
// src/worker/tools/oscar64.ts
|
||||
var oscar64_fs = null;
|
||||
var wasiModule3 = null;
|
||||
function getWasiFileAsString(wasi, suffix) {
|
||||
for (const fd of wasi.fs.getFiles()) {
|
||||
if (fd.name.endsWith(suffix)) {
|
||||
return fd.getBytesAsString();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
async function compileOscar64(step) {
|
||||
const errors = [];
|
||||
gatherFiles(step, { mainFilePath: "main.c" });
|
||||
@@ -14116,11 +14210,39 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
|
||||
}
|
||||
const output = wasi.fs.getFile("./" + destpath).getBytes();
|
||||
putWorkFile(destpath, output);
|
||||
const prefix = destpath.replace(/\.prg$/, "");
|
||||
let mapout = getWasiFileAsString(wasi, prefix + ".map") || getWasiFileAsString(wasi, ".map");
|
||||
let lblout = getWasiFileAsString(wasi, prefix + ".lbl") || getWasiFileAsString(wasi, ".lbl");
|
||||
let asmout = getWasiFileAsString(wasi, prefix + ".asm") || getWasiFileAsString(wasi, ".asm");
|
||||
let segments = [];
|
||||
let symbolmap = {};
|
||||
if (mapout) {
|
||||
let parsed = parseOscar64Map(mapout);
|
||||
segments = parsed.segments;
|
||||
symbolmap = parsed.symbolmap;
|
||||
putWorkFile(prefix + ".map", mapout);
|
||||
}
|
||||
if (lblout) {
|
||||
symbolmap = Object.assign(parseOscar64Lbl(lblout), symbolmap);
|
||||
putWorkFile(prefix + ".lbl", lblout);
|
||||
}
|
||||
let listings = {};
|
||||
if (asmout) {
|
||||
let { srclines, asmlines } = parseOscar64Listing(asmout, step.path);
|
||||
let lstpath = prefix.replace(/^\.\//, "") + ".lst";
|
||||
putWorkFile(prefix + ".asm", asmout);
|
||||
listings[lstpath] = {
|
||||
lines: srclines,
|
||||
asmlines,
|
||||
text: asmout
|
||||
};
|
||||
}
|
||||
return {
|
||||
output,
|
||||
errors
|
||||
//listings,
|
||||
//symbolmap
|
||||
errors,
|
||||
listings,
|
||||
symbolmap,
|
||||
segments
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../../node_modules/jszip/dist/jszip.min.js", "../../src/common/util.ts", "../../src/common/basic/compiler.ts", "../../src/worker/platforms.ts", "../../src/worker/builder.ts", "../../src/worker/wasmutils.ts", "../../src/worker/listingutils.ts", "../../src/worker/tools/misc.ts", "../../src/worker/tools/cc65.ts", "../../src/common/wasi/wasishim.ts", "../../src/worker/tools/dasm.ts", "../../src/worker/tools/mcpp.ts", "../../src/worker/tools/sdcc.ts", "../../src/worker/assembler.ts", "../../src/common/hdl/hdltypes.ts", "../../src/common/hdl/vxmlparser.ts", "../../src/worker/tools/verilog.ts", "../../src/worker/tools/m6809.ts", "../../src/worker/tools/m6502.ts", "../../src/worker/tools/z80.ts", "../../src/worker/tools/x86.ts", "../../src/common/binutils.ts", "../../src/worker/wasiutils.ts", "../../src/worker/tools/arm.ts", "../../src/common/tokenizer.ts", "../../src/common/ecs/binpack.ts", "../../src/common/ecs/ecs.ts", "../../src/common/ecs/decoder.ts", "../../src/common/ecs/compiler.ts", "../../src/worker/tools/ecs.ts", "../../src/common/workertypes.ts", "../../src/worker/tools/remote.ts", "../../src/worker/tools/acme.ts", "../../src/worker/tools/cc7800.ts", "../../src/worker/tools/cc2600.ts", "../../src/worker/tools/bataribasic.ts", "../../src/worker/tools/oscar64.ts", "../../src/worker/tools/xa.ts", "../../src/worker/tools/dialog.ts", "../../src/worker/workertools.ts", "../../src/worker/workermain.ts"],
|
||||
"sourcesContent": ["/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e<h.length;e++)u(h[e]);return u}({1:[function(e,t,r){\"use strict\";var d=e(\"./utils\"),c=e(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,n,i,s,a,o,h=[],u=0,l=e.length,f=l,c=\"string\"!==d.getTypeOf(e);u<e.length;)f=l-u,n=c?(t=e[u++],r=u<l?e[u++]:0,u<l?e[u++]:0):(t=e.charCodeAt(u++),r=u<l?e.charCodeAt(u++):0,u<l?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<f?(15&r)<<2|n>>6:64,o=2<f?63&n:64,h.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(e){var t,r,n,i,s,a,o=0,h=0,u=\"data:\";if(e.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,\"\")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=c.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoActioLine truncated
|
||||
"mappings": "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 truncated
|
||||
"names": ["exports", "e", "t", "r", "c", "n", "i", "s", "a", "o", "h", "u", "l", "f", "d", "p", "m", "attrs", "s", "debug", "s", "s", "hex", "CompileError", "s", "code", "s", "re_error", "s", "m", "lst", "DwarfTag", "DwarfAttribute", "JSZip", "line", "m", "CompileError", "mergeLocs", "CompileError", "debug", "debug", "isLiteral", "isBinOp", "isUnOp", "e", "isLiteral", "OPERATORS", "getOperator", "getPrecedence", "mergeLocs", "tok", "isLiteral", "getPrecedence", "getOperator", "valtype", "CompileError", "wasiModule", "wasiModule", "wasiModule", "wasiModule", "re_error", "exports", "ENVIRONMENT_IS_WORKER", "e"]
|
||||
"sources": ["../../node_modules/jszip/dist/jszip.min.js", "../../src/common/util.ts", "../../src/common/basic/compiler.ts", "../../src/worker/platforms.ts", "../../src/worker/builder.ts", "../../src/worker/wasmutils.ts", "../../src/worker/listingutils.ts", "../../src/worker/tools/misc.ts", "../../src/worker/tools/cc65.ts", "../../src/common/wasi/wasishim.ts", "../../src/worker/tools/dasm.ts", "../../src/worker/tools/mcpp.ts", "../../src/worker/tools/sdcc.ts", "../../src/worker/assembler.ts", "../../src/common/hdl/hdltypes.ts", "../../src/common/hdl/vxmlparser.ts", "../../src/worker/tools/verilog.ts", "../../src/worker/tools/m6809.ts", "../../src/worker/tools/m6502.ts", "../../src/worker/tools/z80.ts", "../../src/worker/tools/x86.ts", "../../src/common/binutils.ts", "../../src/worker/wasiutils.ts", "../../src/worker/tools/arm.ts", "../../src/common/tokenizer.ts", "../../src/common/ecs/binpack.ts", "../../src/common/ecs/ecs.ts", "../../src/common/ecs/decoder.ts", "../../src/common/ecs/compiler.ts", "../../src/worker/tools/ecs.ts", "../../src/common/workertypes.ts", "../../src/worker/tools/remote.ts", "../../src/worker/tools/acme.ts", "../../src/worker/tools/cc7800.ts", "../../src/worker/tools/cc2600.ts", "../../src/worker/tools/bataribasic.ts", "../../src/worker/tools/oscar64parse.ts", "../../src/worker/tools/oscar64.ts", "../../src/worker/tools/xa.ts", "../../src/worker/tools/dialog.ts", "../../src/worker/workertools.ts", "../../src/worker/workermain.ts"],
|
||||
"sourcesContent": ["/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e<h.length;e++)u(h[e]);return u}({1:[function(e,t,r){\"use strict\";var d=e(\"./utils\"),c=e(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,n,i,s,a,o,h=[],u=0,l=e.length,f=l,c=\"string\"!==d.getTypeOf(e);u<e.length;)f=l-u,n=c?(t=e[u++],r=u<l?e[u++]:0,u<l?e[u++]:0):(t=e.charCodeAt(u++),r=u<l?e.charCodeAt(u++):0,u<l?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<f?(15&r)<<2|n>>6:64,o=2<f?63&n:64,h.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(e){var t,r,n,i,s,a,o=0,h=0,u=\"data:\";if(e.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,\"\")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=c.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoActioLine truncated
|
||||
"mappings": "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 truncated
|
||||
"names": ["exports", "e", "t", "r", "c", "n", "i", "s", "a", "o", "h", "u", "l", "f", "d", "p", "m", "attrs", "s", "debug", "s", "s", "hex", "CompileError", "s", "code", "s", "re_error", "s", "m", "lst", "DwarfTag", "DwarfAttribute", "JSZip", "line", "m", "CompileError", "mergeLocs", "CompileError", "debug", "debug", "isLiteral", "isBinOp", "isUnOp", "e", "isLiteral", "OPERATORS", "getOperator", "getPrecedence", "mergeLocs", "tok", "isLiteral", "getPrecedence", "getOperator", "valtype", "CompileError", "wasiModule", "hex", "wasiModule", "wasiModule", "wasiModule", "re_error", "exports", "ENVIRONMENT_IS_WORKER", "e"]
|
||||
}
|
||||
@@ -11,6 +11,7 @@ const child_process_1 = require("child_process");
|
||||
const workertypes_1 = require("../../common/workertypes");
|
||||
const util_1 = require("../../common/util");
|
||||
const clang_1 = require("./clang");
|
||||
const oscar64parse_1 = require("../tools/oscar64parse");
|
||||
const listingutils_1 = require("../listingutils");
|
||||
const LLVM_MOS_TOOL = {
|
||||
name: 'llvm-mos',
|
||||
@@ -98,72 +99,31 @@ async function oscar64ProcessOutput(step, outpath) {
|
||||
let symbolmap = {};
|
||||
let debuginfo = {};
|
||||
let segments = [];
|
||||
// read segments
|
||||
// parse .map file for segments and symbols
|
||||
{
|
||||
let txt = await fs_1.default.promises.readFile(prefix_path + '.map', { encoding: 'utf-8' });
|
||||
for (let line of txt.split("\n")) {
|
||||
// 0880 - 0887 : DATA, code
|
||||
const m1 = line.match(/([0-9a-f]+) - ([0-9a-f]+) : ([A-Z_]+), (.+)/);
|
||||
if (m1) {
|
||||
const name = m1[4];
|
||||
const start = parseInt(m1[1], 16);
|
||||
const end = parseInt(m1[2], 16);
|
||||
segments.push({
|
||||
name, start, size: end - start,
|
||||
});
|
||||
}
|
||||
// 0801 (0062) : startup, NATIVE_CODE:startup
|
||||
const m2 = line.match(/([0-9a-f]+) \(([0-9a-f]+)\) : ([^,]+), (.+)/);
|
||||
if (m2) {
|
||||
const addr = parseInt(m2[1], 16);
|
||||
const name = m2[3];
|
||||
symbolmap[name] = addr;
|
||||
}
|
||||
}
|
||||
let parsed = (0, oscar64parse_1.parseOscar64Map)(txt);
|
||||
segments = parsed.segments;
|
||||
symbolmap = parsed.symbolmap;
|
||||
}
|
||||
// read listings
|
||||
// parse .lbl file for any extra symbols
|
||||
{
|
||||
try {
|
||||
let txt = await fs_1.default.promises.readFile(prefix_path + '.lbl', { encoding: 'utf-8' });
|
||||
symbolmap = Object.assign((0, oscar64parse_1.parseOscar64Lbl)(txt), symbolmap);
|
||||
}
|
||||
catch (e) { /* .lbl file not present */ }
|
||||
}
|
||||
// parse .asm listing
|
||||
{
|
||||
let txt = await fs_1.default.promises.readFile(prefix_path + '.asm', { encoding: 'utf-8' });
|
||||
let lst = { lines: [], text: txt };
|
||||
let asm_lineno = 0;
|
||||
let c_lineno = 0;
|
||||
let c_path = '';
|
||||
const path = step.path;
|
||||
for (let line of txt.split("\n")) {
|
||||
asm_lineno++;
|
||||
//; 4, "/Users/sehugg/PuzzlingPlans/8bitworkshop/server-root/oscar64/main.c"
|
||||
let m2 = line.match(/;\s*(\d+), "(.+?)"/);
|
||||
if (m2) {
|
||||
c_lineno = parseInt(m2[1]);
|
||||
c_path = m2[2].split('/').pop(); // TODO
|
||||
}
|
||||
//0807 : 30 36 __ BMI $083f ; (startup + 62)
|
||||
let m = line.match(/([0-9a-f]+) : ([0-9a-f _]{8}) (.+)/);
|
||||
if (m) {
|
||||
let offset = parseInt(m[1], 16);
|
||||
let hex = m[2];
|
||||
let asm = m[3];
|
||||
if (c_path) {
|
||||
lst.lines.push({
|
||||
line: c_lineno,
|
||||
path: c_path,
|
||||
offset,
|
||||
iscode: true
|
||||
});
|
||||
c_path = '';
|
||||
c_lineno = 0;
|
||||
}
|
||||
/*
|
||||
lst.asmlines.push({
|
||||
line: asm_lineno,
|
||||
path,
|
||||
offset,
|
||||
insns: hex + ' ' + asm,
|
||||
iscode: true });
|
||||
*/
|
||||
}
|
||||
}
|
||||
listings[(0, util_1.getFilenamePrefix)(step.path) + '.lst'] = lst;
|
||||
let { srclines, asmlines } = (0, oscar64parse_1.parseOscar64Listing)(txt, step.path);
|
||||
let lstfn = (0, util_1.getFilenamePrefix)(step.path) + '.lst';
|
||||
listings[lstfn] = {
|
||||
lines: srclines,
|
||||
asmlines: asmlines,
|
||||
text: txt,
|
||||
};
|
||||
}
|
||||
return { output, listings, symbolmap, segments, debuginfo };
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"buildenv.js","sourceRoot":"","sources":["../../../src/worker/server/buildenv.ts"],"names":[],"mappings":"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 truncated
|
||||
{"version":3,"file":"buildenv.js","sourceRoot":"","sources":["../../../src/worker/server/buildenv.ts"],"names":[],"mappings":"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 truncated
|
||||
@@ -4,10 +4,22 @@ exports.compileOscar64 = compileOscar64;
|
||||
const wasishim_1 = require("../../common/wasi/wasishim");
|
||||
const builder_1 = require("../builder");
|
||||
const listingutils_1 = require("../listingutils");
|
||||
const oscar64parse_1 = require("./oscar64parse");
|
||||
const wasiutils_1 = require("../wasiutils");
|
||||
const wasmutils_1 = require("../wasmutils");
|
||||
let oscar64_fs = null;
|
||||
let wasiModule = null;
|
||||
// find a file in the WASI fs whose name ends with the given suffix.
|
||||
// oscar64 writes files as "./path/name.ext" (or "././name.ext" when the
|
||||
// output was specified with a "./" prefix), so match on suffix only.
|
||||
function getWasiFileAsString(wasi, suffix) {
|
||||
for (const fd of wasi.fs.getFiles()) {
|
||||
if (fd.name.endsWith(suffix)) {
|
||||
return fd.getBytesAsString();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
async function compileOscar64(step) {
|
||||
const errors = [];
|
||||
(0, builder_1.gatherFiles)(step, { mainFilePath: "main.c" });
|
||||
@@ -50,11 +62,41 @@ async function compileOscar64(step) {
|
||||
}
|
||||
const output = wasi.fs.getFile("./" + destpath).getBytes();
|
||||
(0, builder_1.putWorkFile)(destpath, output);
|
||||
// read and parse oscar64 auxiliary output files (.map, .lbl, .asm)
|
||||
const prefix = destpath.replace(/\.prg$/, '');
|
||||
let mapout = getWasiFileAsString(wasi, prefix + ".map") || getWasiFileAsString(wasi, ".map");
|
||||
let lblout = getWasiFileAsString(wasi, prefix + ".lbl") || getWasiFileAsString(wasi, ".lbl");
|
||||
let asmout = getWasiFileAsString(wasi, prefix + ".asm") || getWasiFileAsString(wasi, ".asm");
|
||||
let segments = [];
|
||||
let symbolmap = {};
|
||||
if (mapout) {
|
||||
let parsed = (0, oscar64parse_1.parseOscar64Map)(mapout);
|
||||
segments = parsed.segments;
|
||||
symbolmap = parsed.symbolmap;
|
||||
(0, builder_1.putWorkFile)(prefix + ".map", mapout);
|
||||
}
|
||||
if (lblout) {
|
||||
// merge any extra symbols from the .lbl file
|
||||
symbolmap = Object.assign((0, oscar64parse_1.parseOscar64Lbl)(lblout), symbolmap);
|
||||
(0, builder_1.putWorkFile)(prefix + ".lbl", lblout);
|
||||
}
|
||||
let listings = {};
|
||||
if (asmout) {
|
||||
let { srclines, asmlines } = (0, oscar64parse_1.parseOscar64Listing)(asmout, step.path);
|
||||
let lstpath = prefix.replace(/^\.\//, '') + '.lst';
|
||||
(0, builder_1.putWorkFile)(prefix + ".asm", asmout);
|
||||
listings[lstpath] = {
|
||||
lines: srclines,
|
||||
asmlines: asmlines,
|
||||
text: asmout,
|
||||
};
|
||||
}
|
||||
return {
|
||||
output,
|
||||
errors,
|
||||
//listings,
|
||||
//symbolmap
|
||||
listings,
|
||||
symbolmap,
|
||||
segments,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"oscar64.js","sourceRoot":"","sources":["../../../src/worker/tools/oscar64.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"oscar64.js","sourceRoot":"","sources":["../../../src/worker/tools/oscar64.ts"],"names":[],"mappings":"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"}
|
||||
@@ -0,0 +1,137 @@
|
||||
"use strict";
|
||||
// Parser for the oscar64 compiler's auxiliary output files.
|
||||
// oscar64 writes a .map (memory map), .lbl (label file) and .asm
|
||||
// (assembly listing with C source line markers) next to the output.
|
||||
// This module is shared by the browser/WASM tool (src/worker/tools/oscar64.ts)
|
||||
// and the native server tool (src/worker/server/buildenv.ts).
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseOscar64Map = parseOscar64Map;
|
||||
exports.parseOscar64Lbl = parseOscar64Lbl;
|
||||
exports.parseOscar64Listing = parseOscar64Listing;
|
||||
/**
|
||||
* Parse an oscar64 .map file.
|
||||
* Returns segments (from the 'sections' section) and a symbol map
|
||||
* (from the 'objects' section).
|
||||
*
|
||||
* Sample:
|
||||
* sections
|
||||
* 0880 - 0889 : DATA, code
|
||||
* 0889 - 088a : DATA, data
|
||||
* ...
|
||||
* objects
|
||||
* 0801 - 0853 : startup, NATIVE_CODE:startup
|
||||
* 0880 - 0889 : main, NATIVE_CODE:code
|
||||
*/
|
||||
function parseOscar64Map(mapout) {
|
||||
let segments = [];
|
||||
let symbolmap = {};
|
||||
let section = '';
|
||||
for (let line of mapout.split('\n')) {
|
||||
line = line.trim();
|
||||
if (line === 'sections' || line === 'regions' || line === 'objects' || line === 'objects by size') {
|
||||
section = line;
|
||||
continue;
|
||||
}
|
||||
// "0880 - 0889 : DATA, code" or "0801 - 0853 : startup, NATIVE_CODE:startup"
|
||||
let m = /^([0-9a-f]+) - ([0-9a-f]+) : ([^,]+), (.+)$/.exec(line);
|
||||
if (m) {
|
||||
const start = parseInt(m[1], 16);
|
||||
const end = parseInt(m[2], 16);
|
||||
const name = m[4].trim();
|
||||
if (section === 'sections') {
|
||||
// derive rom/ram classification from the segment name
|
||||
let type = 'ram';
|
||||
if (/code/.test(m[4]) || m[4] === 'startup' || /rom/.test(m[4])) {
|
||||
type = 'rom';
|
||||
}
|
||||
segments.push({ name: m[4], start, size: end - start, type });
|
||||
}
|
||||
else if (section === 'objects') {
|
||||
if (m[3] !== '*')
|
||||
symbolmap[m[3]] = start;
|
||||
}
|
||||
}
|
||||
}
|
||||
return { segments, symbolmap };
|
||||
}
|
||||
/**
|
||||
* Parse an oscar64 .lbl file (VICE label format), e.g. "al 0880 .main".
|
||||
* Used as a fallback when the .map has no "objects" section.
|
||||
*/
|
||||
function parseOscar64Lbl(lblout) {
|
||||
let symbolmap = {};
|
||||
for (let line of lblout.split('\n')) {
|
||||
let toks = line.trim().split(/\s+/);
|
||||
if (toks[0] == 'al' && toks.length >= 3) {
|
||||
const ofs = parseInt(toks[1], 16);
|
||||
const name = toks[2];
|
||||
// prefer the un-dotted form used by the assembler listing
|
||||
const clean = name.replace(/^\./, '');
|
||||
if (!symbolmap[clean])
|
||||
symbolmap[clean] = ofs;
|
||||
}
|
||||
}
|
||||
return symbolmap;
|
||||
}
|
||||
/**
|
||||
* Parse an oscar64 .asm listing.
|
||||
* Returns source lines (each instruction offset mapped to its C source line)
|
||||
* and assembly lines (one entry per assembly line in the listing).
|
||||
*
|
||||
* Sample:
|
||||
* ; Compiled with 1.32.266
|
||||
* --------------------------------------------------------------------
|
||||
* startup: ; startup
|
||||
* 0801 : 0b __ __ INV
|
||||
* ...
|
||||
* main: ; main()->i16
|
||||
* ; 2, "/test.c"
|
||||
* .s4:
|
||||
* ; 2, "/test.c"
|
||||
* 0880 : a9 04 __ LDA #$04
|
||||
*/
|
||||
function parseOscar64Listing(asmout, asmfn) {
|
||||
let srclines = [];
|
||||
let asmlines = [];
|
||||
let c_lineno = 0;
|
||||
let c_path = '';
|
||||
let asm_lineno = 0;
|
||||
// ; 2, "/test.c"
|
||||
let re_src = /^;\s*(\d+), "(.+?)"/;
|
||||
// 0801 : 0b __ __ INV
|
||||
let re_insn = /^([0-9a-f]+) : ([0-9a-f _]{8}) (.*)/;
|
||||
for (let line of asmout.split('\n')) {
|
||||
asm_lineno++;
|
||||
let m2 = re_src.exec(line);
|
||||
if (m2) {
|
||||
c_lineno = parseInt(m2[1]);
|
||||
// path may be absolute; use basename for source line mapping
|
||||
c_path = m2[2].split('/').pop();
|
||||
}
|
||||
let m = re_insn.exec(line);
|
||||
if (m) {
|
||||
let offset = parseInt(m[1], 16);
|
||||
let hex = m[2];
|
||||
let asm = m[3];
|
||||
let insns = (hex + ' ' + asm).trim();
|
||||
asmlines.push({
|
||||
line: asm_lineno,
|
||||
path: asmfn,
|
||||
offset,
|
||||
insns,
|
||||
iscode: true,
|
||||
});
|
||||
if (c_path) {
|
||||
srclines.push({
|
||||
line: c_lineno,
|
||||
path: c_path,
|
||||
offset,
|
||||
iscode: true,
|
||||
});
|
||||
c_path = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
return { srclines, asmlines };
|
||||
}
|
||||
//# sourceMappingURL=oscar64parse.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"oscar64parse.js","sourceRoot":"","sources":["../../../src/worker/tools/oscar64parse.ts"],"names":[],"mappings":"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"}
|
||||
@@ -16,6 +16,11 @@ function loadBlobSync(path) {
|
||||
return xhr.response;
|
||||
}
|
||||
async function unzipWASIFilesystem(zipdata, rootPath = "./") {
|
||||
// In the Node.js test env, the XMLHttpRequest shim returns a custom Blob
|
||||
// that JSZip does not recognize. Convert it to an ArrayBuffer first.
|
||||
if (zipdata && typeof zipdata.asArrayBuffer === 'function') {
|
||||
zipdata = zipdata.asArrayBuffer();
|
||||
}
|
||||
const jszip = new jszip_1.default();
|
||||
await jszip.loadAsync(zipdata);
|
||||
let fs = new wasishim_1.WASIMemoryFilesystem();
|
||||
@@ -39,7 +44,6 @@ async function loadWASIFilesystemZip(zippath, rootPath = "./") {
|
||||
const jszip = new jszip_1.default();
|
||||
const path = '../../src/worker/fs/' + zippath;
|
||||
const zipdata = loadBlobSync(path);
|
||||
console.log(zippath, zipdata);
|
||||
return unzipWASIFilesystem(zipdata, rootPath);
|
||||
}
|
||||
//# sourceMappingURL=wasiutils.js.map
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"wasiutils.js","sourceRoot":"","sources":["../../src/worker/wasiutils.ts"],"names":[],"mappings":";;;;;AAGA,oCAMC;AAED,kDAkBC;AAED,sDAMC;AArCD,kDAA0B;AAC1B,sDAA+D;AAE/D,SAAgB,YAAY,CAAC,IAAY;IACrC,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;IAC/B,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,sBAAsB;IACrD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,GAAG,CAAC,QAAQ,CAAC;AACxB,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,OAAoB,EAAE,WAAmB,IAAI;IACnF,MAAM,KAAK,GAAG,IAAI,eAAK,EAAE,CAAC;IAC1B,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,EAAE,GAAG,IAAI,+BAAoB,EAAE,CAAC;IACpC,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE;QAC3C,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YACf,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,IAAI,IAAI,GAAG,QAAQ,GAAG,YAAY,CAAC;YACnC,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClD,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,OAAe,EAAE,WAAmB,IAAI;IAChF,MAAM,KAAK,GAAG,IAAI,eAAK,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,sBAAsB,GAAG,OAAO,CAAC;IAC9C,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC"}
|
||||
{"version":3,"file":"wasiutils.js","sourceRoot":"","sources":["../../src/worker/wasiutils.ts"],"names":[],"mappings":";;;;;AAGA,oCAMC;AAED,kDAuBC;AAED,sDAKC;AAzCD,kDAA0B;AAC1B,sDAA+D;AAE/D,SAAgB,YAAY,CAAC,IAAY;IACrC,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;IAC/B,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,sBAAsB;IACrD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,GAAG,CAAC,QAAQ,CAAC;AACxB,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,OAAY,EAAE,WAAmB,IAAI;IAC3E,yEAAyE;IACzE,qEAAqE;IACrE,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;QACzD,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IACtC,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,eAAK,EAAE,CAAC;IAC1B,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,EAAE,GAAG,IAAI,+BAAoB,EAAE,CAAC;IACpC,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE;QAC3C,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YACf,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,IAAI,IAAI,GAAG,QAAQ,GAAG,YAAY,CAAC;YACnC,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClD,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,OAAe,EAAE,WAAmB,IAAI;IAChF,MAAM,KAAK,GAAG,IAAI,eAAK,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,sBAAsB,GAAG,OAAO,CAAC;IAC9C,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC"}
|
||||
@@ -622,7 +622,7 @@ export class WASIRunner {
|
||||
const filename = this.peekUTF8(path_ptr, path_len);
|
||||
const path = filename.startsWith('/') ? filename : dir.name + '/' + filename; // TODO?
|
||||
const fd = this.fs.getFile(path);
|
||||
console.log("path_filestat_get", dir+"", filename, path, filestat_ptr, '->', fd+"");
|
||||
debug("path_filestat_get", dir+"", filename, path, filestat_ptr, '->', fd+"");
|
||||
if (!fd) return WASIErrors.NOENT;
|
||||
this.poke_filestat(filestat_ptr, fd);
|
||||
return WASIErrors.SUCCESS;
|
||||
|
||||
@@ -5,6 +5,7 @@ import { spawn } from 'child_process';
|
||||
import { CodeListing, CodeListingMap, Segment, WorkerBuildStep, WorkerErrorResult, WorkerFileUpdate, WorkerResult, isOutputResult } from '../../common/workertypes';
|
||||
import { getFilenamePrefix, getRootBasePlatform, replaceAll } from '../../common/util';
|
||||
import { parseObjDump } from './clang';
|
||||
import { parseOscar64Listing, parseOscar64Lbl, parseOscar64Map } from '../tools/oscar64parse';
|
||||
import { BuildStep } from '../builder';
|
||||
import { makeErrorMatcher } from '../listingutils';
|
||||
|
||||
@@ -119,72 +120,30 @@ async function oscar64ProcessOutput(step: WorkerBuildStep, outpath: string): Pro
|
||||
let symbolmap: { [sym: string]: number } = {};
|
||||
let debuginfo = {};
|
||||
let segments: Segment[] = [];
|
||||
// read segments
|
||||
// parse .map file for segments and symbols
|
||||
{
|
||||
let txt = await fs.promises.readFile(prefix_path + '.map', { encoding: 'utf-8' });
|
||||
for (let line of txt.split("\n")) {
|
||||
// 0880 - 0887 : DATA, code
|
||||
const m1 = line.match(/([0-9a-f]+) - ([0-9a-f]+) : ([A-Z_]+), (.+)/);
|
||||
if (m1) {
|
||||
const name = m1[4];
|
||||
const start = parseInt(m1[1], 16);
|
||||
const end = parseInt(m1[2], 16);
|
||||
segments.push({
|
||||
name, start, size: end - start,
|
||||
});
|
||||
}
|
||||
// 0801 (0062) : startup, NATIVE_CODE:startup
|
||||
const m2 = line.match(/([0-9a-f]+) \(([0-9a-f]+)\) : ([^,]+), (.+)/);
|
||||
if (m2) {
|
||||
const addr = parseInt(m2[1], 16);
|
||||
const name = m2[3];
|
||||
symbolmap[name] = addr;
|
||||
}
|
||||
}
|
||||
let parsed = parseOscar64Map(txt);
|
||||
segments = parsed.segments;
|
||||
symbolmap = parsed.symbolmap;
|
||||
}
|
||||
// read listings
|
||||
// parse .lbl file for any extra symbols
|
||||
{
|
||||
try {
|
||||
let txt = await fs.promises.readFile(prefix_path + '.lbl', { encoding: 'utf-8' });
|
||||
symbolmap = Object.assign(parseOscar64Lbl(txt), symbolmap);
|
||||
} catch (e) { /* .lbl file not present */ }
|
||||
}
|
||||
// parse .asm listing
|
||||
{
|
||||
let txt = await fs.promises.readFile(prefix_path + '.asm', { encoding: 'utf-8' });
|
||||
let lst : CodeListing = { lines: [], text: txt };
|
||||
let asm_lineno = 0;
|
||||
let c_lineno = 0;
|
||||
let c_path = '';
|
||||
const path = step.path;
|
||||
for (let line of txt.split("\n")) {
|
||||
asm_lineno++;
|
||||
//; 4, "/Users/sehugg/PuzzlingPlans/8bitworkshop/server-root/oscar64/main.c"
|
||||
let m2 = line.match(/;\s*(\d+), "(.+?)"/);
|
||||
if (m2) {
|
||||
c_lineno = parseInt(m2[1]);
|
||||
c_path = m2[2].split('/').pop(); // TODO
|
||||
}
|
||||
//0807 : 30 36 __ BMI $083f ; (startup + 62)
|
||||
let m = line.match(/([0-9a-f]+) : ([0-9a-f _]{8}) (.+)/);
|
||||
if (m) {
|
||||
let offset = parseInt(m[1], 16);
|
||||
let hex = m[2];
|
||||
let asm = m[3];
|
||||
if (c_path) {
|
||||
lst.lines.push({
|
||||
line: c_lineno,
|
||||
path: c_path,
|
||||
offset,
|
||||
iscode: true
|
||||
});
|
||||
c_path = '';
|
||||
c_lineno = 0;
|
||||
}
|
||||
/*
|
||||
lst.asmlines.push({
|
||||
line: asm_lineno,
|
||||
path,
|
||||
offset,
|
||||
insns: hex + ' ' + asm,
|
||||
iscode: true });
|
||||
*/
|
||||
}
|
||||
}
|
||||
listings[getFilenamePrefix(step.path) + '.lst'] = lst;
|
||||
let { srclines, asmlines } = parseOscar64Listing(txt, step.path);
|
||||
let lstfn = getFilenamePrefix(step.path) + '.lst';
|
||||
listings[lstfn] = {
|
||||
lines: srclines,
|
||||
asmlines: asmlines,
|
||||
text: txt,
|
||||
};
|
||||
}
|
||||
return { output, listings, symbolmap, segments, debuginfo };
|
||||
}
|
||||
|
||||
@@ -1,12 +1,25 @@
|
||||
import { WASIFilesystem, WASIRunner } from "../../common/wasi/wasishim";
|
||||
import { BuildStep, BuildStepResult, gatherFiles, staleFiles, store, putWorkFile } from "../builder";
|
||||
import { makeErrorMatcher } from "../listingutils";
|
||||
import { parseOscar64Listing, parseOscar64Lbl, parseOscar64Map } from "./oscar64parse";
|
||||
import { loadWASIFilesystemZip } from "../wasiutils";
|
||||
import { loadWASMBinary } from "../wasmutils";
|
||||
|
||||
let oscar64_fs: WASIFilesystem | null = null;
|
||||
let wasiModule: WebAssembly.Module | null = null;
|
||||
|
||||
// find a file in the WASI fs whose name ends with the given suffix.
|
||||
// oscar64 writes files as "./path/name.ext" (or "././name.ext" when the
|
||||
// output was specified with a "./" prefix), so match on suffix only.
|
||||
function getWasiFileAsString(wasi: WASIRunner, suffix: string): string | null {
|
||||
for (const fd of wasi.fs.getFiles()) {
|
||||
if (fd.name.endsWith(suffix)) {
|
||||
return fd.getBytesAsString();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
export async function compileOscar64(step: BuildStep): Promise<BuildStepResult> {
|
||||
const errors = [];
|
||||
gatherFiles(step, { mainFilePath: "main.c" });
|
||||
@@ -48,11 +61,41 @@ export async function compileOscar64(step: BuildStep): Promise<BuildStepResult>
|
||||
}
|
||||
const output = wasi.fs.getFile("./" + destpath).getBytes();
|
||||
putWorkFile(destpath, output);
|
||||
// read and parse oscar64 auxiliary output files (.map, .lbl, .asm)
|
||||
const prefix = destpath.replace(/\.prg$/, '');
|
||||
let mapout = getWasiFileAsString(wasi, prefix + ".map") || getWasiFileAsString(wasi, ".map");
|
||||
let lblout = getWasiFileAsString(wasi, prefix + ".lbl") || getWasiFileAsString(wasi, ".lbl");
|
||||
let asmout = getWasiFileAsString(wasi, prefix + ".asm") || getWasiFileAsString(wasi, ".asm");
|
||||
let segments = [];
|
||||
let symbolmap = {};
|
||||
if (mapout) {
|
||||
let parsed = parseOscar64Map(mapout);
|
||||
segments = parsed.segments;
|
||||
symbolmap = parsed.symbolmap;
|
||||
putWorkFile(prefix + ".map", mapout);
|
||||
}
|
||||
if (lblout) {
|
||||
// merge any extra symbols from the .lbl file
|
||||
symbolmap = Object.assign(parseOscar64Lbl(lblout), symbolmap);
|
||||
putWorkFile(prefix + ".lbl", lblout);
|
||||
}
|
||||
let listings = {};
|
||||
if (asmout) {
|
||||
let { srclines, asmlines } = parseOscar64Listing(asmout, step.path);
|
||||
let lstpath = prefix.replace(/^\.\//, '') + '.lst';
|
||||
putWorkFile(prefix + ".asm", asmout);
|
||||
listings[lstpath] = {
|
||||
lines: srclines,
|
||||
asmlines: asmlines,
|
||||
text: asmout,
|
||||
};
|
||||
}
|
||||
return {
|
||||
output,
|
||||
errors,
|
||||
//listings,
|
||||
//symbolmap
|
||||
listings,
|
||||
symbolmap,
|
||||
segments,
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
// Parser for the oscar64 compiler's auxiliary output files.
|
||||
// oscar64 writes a .map (memory map), .lbl (label file) and .asm
|
||||
// (assembly listing with C source line markers) next to the output.
|
||||
// This module is shared by the browser/WASM tool (src/worker/tools/oscar64.ts)
|
||||
// and the native server tool (src/worker/server/buildenv.ts).
|
||||
|
||||
import { CodeListingMap, Segment, SourceLine } from "../../common/workertypes";
|
||||
|
||||
export interface Oscar64ParseResult {
|
||||
segments: Segment[];
|
||||
symbolmap: { [sym: string]: number };
|
||||
listings: CodeListingMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse an oscar64 .map file.
|
||||
* Returns segments (from the 'sections' section) and a symbol map
|
||||
* (from the 'objects' section).
|
||||
*
|
||||
* Sample:
|
||||
* sections
|
||||
* 0880 - 0889 : DATA, code
|
||||
* 0889 - 088a : DATA, data
|
||||
* ...
|
||||
* objects
|
||||
* 0801 - 0853 : startup, NATIVE_CODE:startup
|
||||
* 0880 - 0889 : main, NATIVE_CODE:code
|
||||
*/
|
||||
export function parseOscar64Map(mapout: string) {
|
||||
let segments: Segment[] = [];
|
||||
let symbolmap: { [sym: string]: number } = {};
|
||||
let section = '';
|
||||
for (let line of mapout.split('\n')) {
|
||||
line = line.trim();
|
||||
if (line === 'sections' || line === 'regions' || line === 'objects' || line === 'objects by size') {
|
||||
section = line;
|
||||
continue;
|
||||
}
|
||||
// "0880 - 0889 : DATA, code" or "0801 - 0853 : startup, NATIVE_CODE:startup"
|
||||
let m = /^([0-9a-f]+) - ([0-9a-f]+) : ([^,]+), (.+)$/.exec(line);
|
||||
if (m) {
|
||||
const start = parseInt(m[1], 16);
|
||||
const end = parseInt(m[2], 16);
|
||||
const name = m[4].trim();
|
||||
if (section === 'sections') {
|
||||
// derive rom/ram classification from the segment name
|
||||
let type = 'ram';
|
||||
if (/code/.test(m[4]) || m[4] === 'startup' || /rom/.test(m[4])) {
|
||||
type = 'rom';
|
||||
}
|
||||
segments.push({ name: m[4], start, size: end - start, type });
|
||||
} else if (section === 'objects') {
|
||||
if (m[3] !== '*') symbolmap[m[3]] = start;
|
||||
}
|
||||
}
|
||||
}
|
||||
return { segments, symbolmap };
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse an oscar64 .lbl file (VICE label format), e.g. "al 0880 .main".
|
||||
* Used as a fallback when the .map has no "objects" section.
|
||||
*/
|
||||
export function parseOscar64Lbl(lblout: string) {
|
||||
let symbolmap: { [sym: string]: number } = {};
|
||||
for (let line of lblout.split('\n')) {
|
||||
let toks = line.trim().split(/\s+/);
|
||||
if (toks[0] == 'al' && toks.length >= 3) {
|
||||
const ofs = parseInt(toks[1], 16);
|
||||
const name = toks[2];
|
||||
// prefer the un-dotted form used by the assembler listing
|
||||
const clean = name.replace(/^\./, '');
|
||||
if (!symbolmap[clean]) symbolmap[clean] = ofs;
|
||||
}
|
||||
}
|
||||
return symbolmap;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse an oscar64 .asm listing.
|
||||
* Returns source lines (each instruction offset mapped to its C source line)
|
||||
* and assembly lines (one entry per assembly line in the listing).
|
||||
*
|
||||
* Sample:
|
||||
* ; Compiled with 1.32.266
|
||||
* --------------------------------------------------------------------
|
||||
* startup: ; startup
|
||||
* 0801 : 0b __ __ INV
|
||||
* ...
|
||||
* main: ; main()->i16
|
||||
* ; 2, "/test.c"
|
||||
* .s4:
|
||||
* ; 2, "/test.c"
|
||||
* 0880 : a9 04 __ LDA #$04
|
||||
*/
|
||||
export function parseOscar64Listing(asmout: string, asmfn: string) {
|
||||
let srclines: SourceLine[] = [];
|
||||
let asmlines: SourceLine[] = [];
|
||||
let c_lineno = 0;
|
||||
let c_path = '';
|
||||
let asm_lineno = 0;
|
||||
// ; 2, "/test.c"
|
||||
let re_src = /^;\s*(\d+), "(.+?)"/;
|
||||
// 0801 : 0b __ __ INV
|
||||
let re_insn = /^([0-9a-f]+) : ([0-9a-f _]{8}) (.*)/;
|
||||
for (let line of asmout.split('\n')) {
|
||||
asm_lineno++;
|
||||
let m2 = re_src.exec(line);
|
||||
if (m2) {
|
||||
c_lineno = parseInt(m2[1]);
|
||||
// path may be absolute; use basename for source line mapping
|
||||
c_path = m2[2].split('/').pop();
|
||||
}
|
||||
let m = re_insn.exec(line);
|
||||
if (m) {
|
||||
let offset = parseInt(m[1], 16);
|
||||
let hex = m[2];
|
||||
let asm = m[3];
|
||||
let insns = (hex + ' ' + asm).trim();
|
||||
asmlines.push({
|
||||
line: asm_lineno,
|
||||
path: asmfn,
|
||||
offset,
|
||||
insns,
|
||||
iscode: true,
|
||||
});
|
||||
if (c_path) {
|
||||
srclines.push({
|
||||
line: c_lineno,
|
||||
path: c_path,
|
||||
offset,
|
||||
iscode: true,
|
||||
});
|
||||
c_path = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
return { srclines, asmlines };
|
||||
}
|
||||
@@ -9,7 +9,12 @@ export function loadBlobSync(path: string) {
|
||||
return xhr.response;
|
||||
}
|
||||
|
||||
export async function unzipWASIFilesystem(zipdata: ArrayBuffer, rootPath: string = "./") {
|
||||
export async function unzipWASIFilesystem(zipdata: any, rootPath: string = "./") {
|
||||
// In the Node.js test env, the XMLHttpRequest shim returns a custom Blob
|
||||
// that JSZip does not recognize. Convert it to an ArrayBuffer first.
|
||||
if (zipdata && typeof zipdata.asArrayBuffer === 'function') {
|
||||
zipdata = zipdata.asArrayBuffer();
|
||||
}
|
||||
const jszip = new JSZip();
|
||||
await jszip.loadAsync(zipdata);
|
||||
let fs = new WASIMemoryFilesystem();
|
||||
@@ -33,6 +38,5 @@ export async function loadWASIFilesystemZip(zippath: string, rootPath: string =
|
||||
const jszip = new JSZip();
|
||||
const path = '../../src/worker/fs/' + zippath;
|
||||
const zipdata = loadBlobSync(path);
|
||||
console.log(zippath, zipdata);
|
||||
return unzipWASIFilesystem(zipdata, rootPath);
|
||||
}
|
||||
Reference in new issue
Block a user