upgraded cc65

This commit is contained in:
Steven Hugg 2022-01-24 13:26:11 -06:00
parent 0345834bb5
commit c42beda98f
17 changed files with 66485 additions and 52306 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,37 +1,47 @@
var Module = typeof Module !== 'undefined' ? Module : {};
var Module = typeof Module !== 'undefined' ? Module : {};
if (!Module.expectedDataFileDownloads) {
if (!Module.expectedDataFileDownloads) {
Module.expectedDataFileDownloads = 0;
Module.finishedDataFileDownloads = 0;
}
Module.expectedDataFileDownloads++;
(function() {
}
Module.expectedDataFileDownloads++;
(function() {
// When running as a pthread, FS operations are proxied to the main thread, so we don't need to
// fetch the .data bundle on the worker
if (Module['ENVIRONMENT_IS_PTHREAD']) return;
var loadPackage = function(metadata) {
var PACKAGE_PATH;
var PACKAGE_PATH = '';
if (typeof window === 'object') {
PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/');
} else if (typeof location !== 'undefined') {
// worker
} else if (typeof process === 'undefined' && typeof location !== 'undefined') {
// web worker
PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
} else {
throw 'using preloaded data can only be done on a web page or in a web worker';
}
var PACKAGE_NAME = 'fs65-apple2.data';
var PACKAGE_NAME = '/home/pzp/8bitworkshop-compilers/output/fs/fs65-apple2.data';
var REMOTE_PACKAGE_BASE = 'fs65-apple2.data';
if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) {
Module['locateFile'] = Module['locateFilePackage'];
Module.printErr('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)');
err('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)');
}
var REMOTE_PACKAGE_NAME = typeof Module['locateFile'] === 'function' ?
Module['locateFile'](REMOTE_PACKAGE_BASE) :
((Module['filePackagePrefixURL'] || '') + REMOTE_PACKAGE_BASE);
var REMOTE_PACKAGE_NAME = Module['locateFile'] ? Module['locateFile'](REMOTE_PACKAGE_BASE, '') : REMOTE_PACKAGE_BASE;
var REMOTE_PACKAGE_SIZE = metadata.remote_package_size;
var PACKAGE_UUID = metadata.package_uuid;
var REMOTE_PACKAGE_SIZE = metadata['remote_package_size'];
var PACKAGE_UUID = metadata['package_uuid'];
function fetchRemotePackage(packageName, packageSize, callback, errback) {
if (typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string') {
require('fs').readFile(packageName, function(err, contents) {
if (err) {
errback(err);
} else {
callback(contents.buffer);
}
});
return;
}
var xhr = new XMLHttpRequest();
xhr.open('GET', packageName, true);
xhr.responseType = 'arraybuffer';
@ -100,38 +110,38 @@ Module.expectedDataFileDownloads++;
function assert(check, msg) {
if (!check) throw msg + new Error().stack;
}
Module['FS_createPath']('/', 'include', true, true);
Module['FS_createPath']('/include', 'em', true, true);
Module['FS_createPath']('/include', 'mouse', true, true);
Module['FS_createPath']('/include', 'tgi', true, true);
Module['FS_createPath']('/include', 'geos', true, true);
Module['FS_createPath']('/include', 'sys', true, true);
Module['FS_createPath']('/include', 'joystick', true, true);
Module['FS_createPath']('/', 'asminc', true, true);
Module['FS_createPath']('/', 'cfg', true, true);
Module['FS_createPath']('/', 'lib', true, true);
Module['FS_createPath']('/', 'target', true, true);
Module['FS_createPath']('/target', 'apple2', true, true);
Module['FS_createPath']('/target/apple2', 'util', true, true);
Module['FS_createPath']('/target/apple2', 'drv', true, true);
Module['FS_createPath']('/target/apple2/drv', 'tgi', true, true);
Module['FS_createPath']('/target/apple2/drv', 'mou', true, true);
Module['FS_createPath']('/target/apple2/drv', 'emd', true, true);
Module['FS_createPath']('/target/apple2/drv', 'joy', true, true);
Module['FS_createPath']('/target/apple2/drv', 'ser', true, true);
Module['FS_createPath']('/target', 'apple2enh', true, true);
Module['FS_createPath']('/target/apple2enh', 'util', true, true);
Module['FS_createPath']('/target/apple2enh', 'drv', true, true);
Module['FS_createPath']('/target/apple2enh/drv', 'tgi', true, true);
Module['FS_createPath']('/target/apple2enh/drv', 'mou', true, true);
Module['FS_createPath']('/target/apple2enh/drv', 'emd', true, true);
Module['FS_createPath']('/target/apple2enh/drv', 'joy', true, true);
Module['FS_createPath']('/target/apple2enh/drv', 'ser', true, true);
Module['FS_createPath']("/", "include", true, true);
Module['FS_createPath']("/include", "em", true, true);
Module['FS_createPath']("/include", "geos", true, true);
Module['FS_createPath']("/include", "tgi", true, true);
Module['FS_createPath']("/include", "mouse", true, true);
Module['FS_createPath']("/include", "joystick", true, true);
Module['FS_createPath']("/include", "sys", true, true);
Module['FS_createPath']("/", "asminc", true, true);
Module['FS_createPath']("/", "cfg", true, true);
Module['FS_createPath']("/", "lib", true, true);
Module['FS_createPath']("/", "target", true, true);
Module['FS_createPath']("/target", "apple2", true, true);
Module['FS_createPath']("/target/apple2", "drv", true, true);
Module['FS_createPath']("/target/apple2/drv", "ser", true, true);
Module['FS_createPath']("/target/apple2/drv", "joy", true, true);
Module['FS_createPath']("/target/apple2/drv", "tgi", true, true);
Module['FS_createPath']("/target/apple2/drv", "emd", true, true);
Module['FS_createPath']("/target/apple2/drv", "mou", true, true);
Module['FS_createPath']("/target/apple2", "util", true, true);
Module['FS_createPath']("/target", "apple2enh", true, true);
Module['FS_createPath']("/target/apple2enh", "drv", true, true);
Module['FS_createPath']("/target/apple2enh/drv", "ser", true, true);
Module['FS_createPath']("/target/apple2enh/drv", "joy", true, true);
Module['FS_createPath']("/target/apple2enh/drv", "tgi", true, true);
Module['FS_createPath']("/target/apple2enh/drv", "emd", true, true);
Module['FS_createPath']("/target/apple2enh/drv", "mou", true, true);
Module['FS_createPath']("/target/apple2enh", "util", true, true);
function DataRequest(start, end, crunched, audio) {
/** @constructor */
function DataRequest(start, end, audio) {
this.start = start;
this.end = end;
this.crunched = crunched;
this.audio = audio;
}
DataRequest.prototype = {
@ -144,9 +154,7 @@ Module['FS_createPath']('/target/apple2enh/drv', 'ser', true, true);
send: function() {},
onload: function() {
var byteArray = this.byteArray.subarray(this.start, this.end);
this.finish(byteArray);
},
finish: function(byteArray) {
var that = this;
@ -158,34 +166,29 @@ Module['FS_createPath']('/target/apple2enh/drv', 'ser', true, true);
}
};
var files = metadata.files;
var files = metadata['files'];
for (var i = 0; i < files.length; ++i) {
new DataRequest(files[i].start, files[i].end, files[i].crunched, files[i].audio).open('GET', files[i].filename);
new DataRequest(files[i]['start'], files[i]['end'], files[i]['audio'] || 0).open('GET', files[i]['filename']);
}
function processPackageData(arrayBuffer) {
Module.finishedDataFileDownloads++;
assert(arrayBuffer, 'Loading data file failed.');
assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData');
var byteArray = new Uint8Array(arrayBuffer);
var curr;
// copy the entire loaded file into a spot in the heap. Files will refer to slices in that. They cannot be freed though
// (we may be allocating before malloc is ready, during startup).
if (Module['SPLIT_MEMORY']) Module.printErr('warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting');
var ptr = Module['getMemory'](byteArray.length);
Module['HEAPU8'].set(byteArray, ptr);
DataRequest.prototype.byteArray = Module['HEAPU8'].subarray(ptr, ptr+byteArray.length);
// Reuse the bytearray from the XHR as the source for file reads.
DataRequest.prototype.byteArray = byteArray;
var files = metadata.files;
var files = metadata['files'];
for (var i = 0; i < files.length; ++i) {
DataRequest.prototype.requests[files[i].filename].onload();
}
Module['removeRunDependency']('datafile_fs65-apple2.data');
Module['removeRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-apple2.data');
};
Module['addRunDependency']('datafile_fs65-apple2.data');
Module['addRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-apple2.data');
if (!Module.preloadResults) Module.preloadResults = {};
@ -208,9 +211,9 @@ Module['FS_createPath']('/target/apple2enh/drv', 'ser', true, true);
Module['removeRunDependency']('fs65-apple2.js.metadata');
}
var REMOTE_METADATA_NAME = typeof Module['locateFile'] === 'function' ?
Module['locateFile']('fs65-apple2.js.metadata') :
((Module['filePackagePrefixURL'] || '') + 'fs65-apple2.js.metadata');
function runMetaWithFS() {
Module['addRunDependency']('fs65-apple2.js.metadata');
var REMOTE_METADATA_NAME = Module['locateFile'] ? Module['locateFile']('fs65-apple2.js.metadata', '') : 'fs65-apple2.js.metadata';
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
@ -220,10 +223,14 @@ Module['FS_createPath']('/target/apple2enh/drv', 'ser', true, true);
xhr.open('GET', REMOTE_METADATA_NAME, true);
xhr.overrideMimeType('application/json');
xhr.send(null);
}
if (Module['calledRun']) {
runMetaWithFS();
} else {
if (!Module['preRun']) Module['preRun'] = [];
Module["preRun"].push(function() {
Module['addRunDependency']('fs65-apple2.js.metadata');
});
Module["preRun"].push(runMetaWithFS);
}
})();
})();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,24 +1,24 @@
var Module = typeof Module !== 'undefined' ? Module : {};
var Module = typeof Module !== 'undefined' ? Module : {};
if (!Module.expectedDataFileDownloads) {
if (!Module.expectedDataFileDownloads) {
Module.expectedDataFileDownloads = 0;
Module.finishedDataFileDownloads = 0;
}
Module.expectedDataFileDownloads++;
(function() {
}
Module.expectedDataFileDownloads++;
(function() {
// When running as a pthread, FS operations are proxied to the main thread, so we don't need to
// fetch the .data bundle on the worker
if (Module['ENVIRONMENT_IS_PTHREAD']) return;
var loadPackage = function(metadata) {
var PACKAGE_PATH;
var PACKAGE_PATH = '';
if (typeof window === 'object') {
PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/');
} else if (typeof location !== 'undefined') {
// worker
} else if (typeof process === 'undefined' && typeof location !== 'undefined') {
// web worker
PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
} else {
throw 'using preloaded data can only be done on a web page or in a web worker';
}
var PACKAGE_NAME = 'fs65-c64.data';
var PACKAGE_NAME = '/home/pzp/8bitworkshop-compilers/output/fs/fs65-c64.data';
var REMOTE_PACKAGE_BASE = 'fs65-c64.data';
if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) {
Module['locateFile'] = Module['locateFilePackage'];
@ -26,10 +26,22 @@ Module.expectedDataFileDownloads++;
}
var REMOTE_PACKAGE_NAME = Module['locateFile'] ? Module['locateFile'](REMOTE_PACKAGE_BASE, '') : REMOTE_PACKAGE_BASE;
var REMOTE_PACKAGE_SIZE = metadata.remote_package_size;
var PACKAGE_UUID = metadata.package_uuid;
var REMOTE_PACKAGE_SIZE = metadata['remote_package_size'];
var PACKAGE_UUID = metadata['package_uuid'];
function fetchRemotePackage(packageName, packageSize, callback, errback) {
if (typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string') {
require('fs').readFile(packageName, function(err, contents) {
if (err) {
errback(err);
} else {
callback(contents.buffer);
}
});
return;
}
var xhr = new XMLHttpRequest();
xhr.open('GET', packageName, true);
xhr.responseType = 'arraybuffer';
@ -98,25 +110,26 @@ Module.expectedDataFileDownloads++;
function assert(check, msg) {
if (!check) throw msg + new Error().stack;
}
Module['FS_createPath']('/', 'include', true, true);
Module['FS_createPath']('/include', 'em', true, true);
Module['FS_createPath']('/include', 'geos', true, true);
Module['FS_createPath']('/include', 'tgi', true, true);
Module['FS_createPath']('/include', 'mouse', true, true);
Module['FS_createPath']('/include', 'joystick', true, true);
Module['FS_createPath']('/include', 'sys', true, true);
Module['FS_createPath']('/', 'asminc', true, true);
Module['FS_createPath']('/', 'cfg', true, true);
Module['FS_createPath']('/', 'lib', true, true);
Module['FS_createPath']('/', 'target', true, true);
Module['FS_createPath']('/target', 'c64', true, true);
Module['FS_createPath']('/target/c64', 'drv', true, true);
Module['FS_createPath']('/target/c64/drv', 'ser', true, true);
Module['FS_createPath']('/target/c64/drv', 'joy', true, true);
Module['FS_createPath']('/target/c64/drv', 'tgi', true, true);
Module['FS_createPath']('/target/c64/drv', 'emd', true, true);
Module['FS_createPath']('/target/c64/drv', 'mou', true, true);
Module['FS_createPath']("/", "include", true, true);
Module['FS_createPath']("/include", "em", true, true);
Module['FS_createPath']("/include", "geos", true, true);
Module['FS_createPath']("/include", "tgi", true, true);
Module['FS_createPath']("/include", "mouse", true, true);
Module['FS_createPath']("/include", "joystick", true, true);
Module['FS_createPath']("/include", "sys", true, true);
Module['FS_createPath']("/", "asminc", true, true);
Module['FS_createPath']("/", "cfg", true, true);
Module['FS_createPath']("/", "lib", true, true);
Module['FS_createPath']("/", "target", true, true);
Module['FS_createPath']("/target", "c64", true, true);
Module['FS_createPath']("/target/c64", "drv", true, true);
Module['FS_createPath']("/target/c64/drv", "ser", true, true);
Module['FS_createPath']("/target/c64/drv", "joy", true, true);
Module['FS_createPath']("/target/c64/drv", "tgi", true, true);
Module['FS_createPath']("/target/c64/drv", "emd", true, true);
Module['FS_createPath']("/target/c64/drv", "mou", true, true);
/** @constructor */
function DataRequest(start, end, audio) {
this.start = start;
this.end = end;
@ -144,33 +157,29 @@ Module['FS_createPath']('/target/c64/drv', 'mou', true, true);
}
};
var files = metadata.files;
var files = metadata['files'];
for (var i = 0; i < files.length; ++i) {
new DataRequest(files[i].start, files[i].end, files[i].audio).open('GET', files[i].filename);
new DataRequest(files[i]['start'], files[i]['end'], files[i]['audio'] || 0).open('GET', files[i]['filename']);
}
function processPackageData(arrayBuffer) {
Module.finishedDataFileDownloads++;
assert(arrayBuffer, 'Loading data file failed.');
assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData');
var byteArray = new Uint8Array(arrayBuffer);
var curr;
// copy the entire loaded file into a spot in the heap. Files will refer to slices in that. They cannot be freed though
// (we may be allocating before malloc is ready, during startup).
var ptr = Module['getMemory'](byteArray.length);
Module['HEAPU8'].set(byteArray, ptr);
DataRequest.prototype.byteArray = Module['HEAPU8'].subarray(ptr, ptr+byteArray.length);
// Reuse the bytearray from the XHR as the source for file reads.
DataRequest.prototype.byteArray = byteArray;
var files = metadata.files;
var files = metadata['files'];
for (var i = 0; i < files.length; ++i) {
DataRequest.prototype.requests[files[i].filename].onload();
}
Module['removeRunDependency']('datafile_fs65-c64.data');
Module['removeRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-c64.data');
};
Module['addRunDependency']('datafile_fs65-c64.data');
Module['addRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-c64.data');
if (!Module.preloadResults) Module.preloadResults = {};
@ -214,4 +223,5 @@ Module['FS_createPath']('/target/c64/drv', 'mou', true, true);
Module["preRun"].push(runMetaWithFS);
}
})();
})();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,37 +1,47 @@
var Module = typeof Module !== 'undefined' ? Module : {};
var Module = typeof Module !== 'undefined' ? Module : {};
if (!Module.expectedDataFileDownloads) {
if (!Module.expectedDataFileDownloads) {
Module.expectedDataFileDownloads = 0;
Module.finishedDataFileDownloads = 0;
}
Module.expectedDataFileDownloads++;
(function() {
}
Module.expectedDataFileDownloads++;
(function() {
// When running as a pthread, FS operations are proxied to the main thread, so we don't need to
// fetch the .data bundle on the worker
if (Module['ENVIRONMENT_IS_PTHREAD']) return;
var loadPackage = function(metadata) {
var PACKAGE_PATH;
var PACKAGE_PATH = '';
if (typeof window === 'object') {
PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/');
} else if (typeof location !== 'undefined') {
// worker
} else if (typeof process === 'undefined' && typeof location !== 'undefined') {
// web worker
PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
} else {
throw 'using preloaded data can only be done on a web page or in a web worker';
}
var PACKAGE_NAME = 'fs65-nes.data';
var PACKAGE_NAME = '/home/pzp/8bitworkshop-compilers/output/fs/fs65-nes.data';
var REMOTE_PACKAGE_BASE = 'fs65-nes.data';
if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) {
Module['locateFile'] = Module['locateFilePackage'];
Module.printErr('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)');
err('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)');
}
var REMOTE_PACKAGE_NAME = typeof Module['locateFile'] === 'function' ?
Module['locateFile'](REMOTE_PACKAGE_BASE) :
((Module['filePackagePrefixURL'] || '') + REMOTE_PACKAGE_BASE);
var REMOTE_PACKAGE_NAME = Module['locateFile'] ? Module['locateFile'](REMOTE_PACKAGE_BASE, '') : REMOTE_PACKAGE_BASE;
var REMOTE_PACKAGE_SIZE = metadata.remote_package_size;
var PACKAGE_UUID = metadata.package_uuid;
var REMOTE_PACKAGE_SIZE = metadata['remote_package_size'];
var PACKAGE_UUID = metadata['package_uuid'];
function fetchRemotePackage(packageName, packageSize, callback, errback) {
if (typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string') {
require('fs').readFile(packageName, function(err, contents) {
if (err) {
errback(err);
} else {
callback(contents.buffer);
}
});
return;
}
var xhr = new XMLHttpRequest();
xhr.open('GET', packageName, true);
xhr.responseType = 'arraybuffer';
@ -100,26 +110,26 @@ Module.expectedDataFileDownloads++;
function assert(check, msg) {
if (!check) throw msg + new Error().stack;
}
Module['FS_createPath']('/', 'include', true, true);
Module['FS_createPath']('/include', 'em', true, true);
Module['FS_createPath']('/include', 'mouse', true, true);
Module['FS_createPath']('/include', 'tgi', true, true);
Module['FS_createPath']('/include', 'geos', true, true);
Module['FS_createPath']('/include', 'sys', true, true);
Module['FS_createPath']('/include', 'joystick', true, true);
Module['FS_createPath']('/', 'asminc', true, true);
Module['FS_createPath']('/', 'cfg', true, true);
Module['FS_createPath']('/', 'lib', true, true);
Module['FS_createPath']('/', 'target', true, true);
Module['FS_createPath']('/target', 'nes', true, true);
Module['FS_createPath']('/target/nes', 'drv', true, true);
Module['FS_createPath']('/target/nes/drv', 'tgi', true, true);
Module['FS_createPath']('/target/nes/drv', 'joy', true, true);
Module['FS_createPath']("/", "include", true, true);
Module['FS_createPath']("/include", "em", true, true);
Module['FS_createPath']("/include", "geos", true, true);
Module['FS_createPath']("/include", "tgi", true, true);
Module['FS_createPath']("/include", "mouse", true, true);
Module['FS_createPath']("/include", "joystick", true, true);
Module['FS_createPath']("/include", "sys", true, true);
Module['FS_createPath']("/", "asminc", true, true);
Module['FS_createPath']("/", "cfg", true, true);
Module['FS_createPath']("/", "lib", true, true);
Module['FS_createPath']("/", "target", true, true);
Module['FS_createPath']("/target", "nes", true, true);
Module['FS_createPath']("/target/nes", "drv", true, true);
Module['FS_createPath']("/target/nes/drv", "joy", true, true);
Module['FS_createPath']("/target/nes/drv", "tgi", true, true);
function DataRequest(start, end, crunched, audio) {
/** @constructor */
function DataRequest(start, end, audio) {
this.start = start;
this.end = end;
this.crunched = crunched;
this.audio = audio;
}
DataRequest.prototype = {
@ -132,9 +142,7 @@ Module['FS_createPath']('/target/nes/drv', 'joy', true, true);
send: function() {},
onload: function() {
var byteArray = this.byteArray.subarray(this.start, this.end);
this.finish(byteArray);
},
finish: function(byteArray) {
var that = this;
@ -146,34 +154,29 @@ Module['FS_createPath']('/target/nes/drv', 'joy', true, true);
}
};
var files = metadata.files;
var files = metadata['files'];
for (var i = 0; i < files.length; ++i) {
new DataRequest(files[i].start, files[i].end, files[i].crunched, files[i].audio).open('GET', files[i].filename);
new DataRequest(files[i]['start'], files[i]['end'], files[i]['audio'] || 0).open('GET', files[i]['filename']);
}
function processPackageData(arrayBuffer) {
Module.finishedDataFileDownloads++;
assert(arrayBuffer, 'Loading data file failed.');
assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData');
var byteArray = new Uint8Array(arrayBuffer);
var curr;
// copy the entire loaded file into a spot in the heap. Files will refer to slices in that. They cannot be freed though
// (we may be allocating before malloc is ready, during startup).
if (Module['SPLIT_MEMORY']) Module.printErr('warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting');
var ptr = Module['getMemory'](byteArray.length);
Module['HEAPU8'].set(byteArray, ptr);
DataRequest.prototype.byteArray = Module['HEAPU8'].subarray(ptr, ptr+byteArray.length);
// Reuse the bytearray from the XHR as the source for file reads.
DataRequest.prototype.byteArray = byteArray;
var files = metadata.files;
var files = metadata['files'];
for (var i = 0; i < files.length; ++i) {
DataRequest.prototype.requests[files[i].filename].onload();
}
Module['removeRunDependency']('datafile_fs65-nes.data');
Module['removeRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-nes.data');
};
Module['addRunDependency']('datafile_fs65-nes.data');
Module['addRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-nes.data');
if (!Module.preloadResults) Module.preloadResults = {};
@ -196,9 +199,9 @@ Module['FS_createPath']('/target/nes/drv', 'joy', true, true);
Module['removeRunDependency']('fs65-nes.js.metadata');
}
var REMOTE_METADATA_NAME = typeof Module['locateFile'] === 'function' ?
Module['locateFile']('fs65-nes.js.metadata') :
((Module['filePackagePrefixURL'] || '') + 'fs65-nes.js.metadata');
function runMetaWithFS() {
Module['addRunDependency']('fs65-nes.js.metadata');
var REMOTE_METADATA_NAME = Module['locateFile'] ? Module['locateFile']('fs65-nes.js.metadata', '') : 'fs65-nes.js.metadata';
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
@ -208,10 +211,14 @@ Module['FS_createPath']('/target/nes/drv', 'joy', true, true);
xhr.open('GET', REMOTE_METADATA_NAME, true);
xhr.overrideMimeType('application/json');
xhr.send(null);
}
if (Module['calledRun']) {
runMetaWithFS();
} else {
if (!Module['preRun']) Module['preRun'] = [];
Module["preRun"].push(function() {
Module['addRunDependency']('fs65-nes.js.metadata');
});
Module["preRun"].push(runMetaWithFS);
}
})();
})();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -236,7 +236,7 @@ var PLATFORM_PARAMS = {
'apple2': {
arch: '6502',
define: ['__APPLE2__'],
cfgfile: 'apple2-hgr.cfg',
cfgfile: 'apple2.cfg',
libargs: [ '--lib-path', '/share/target/apple2/drv', '-D', '__EXEHDR__=0', 'apple2.lib'],
__CODE_RUN__: 16384,
code_start: 0x803,

View File

@ -93,7 +93,7 @@ describe('Worker', function() {
compile('cc65', 'int main() {\nint x=1;\nprintf("%d",x);\nreturn x+2;\n}', 'nes', done, 0, 0, 1);
});
it('should NOT compile CC65 (link error)', function(done) {
compile('cc65', 'extern void bad();\nint main() {\nbad();\nreturn 0;\n}', 'nes', done, 0, 0, 3, {ignoreErrorPath:true});
compile('cc65', 'extern void bad();\nint main() {\nbad();\nreturn 0;\n}', 'nes', done, 0, 0, 1, {ignoreErrorPath:true});
});
it('should NOT compile CC65 (preproc error)', function(done) {
compile('cc65', '#include "NOSUCH.file"\n', 'nes', done, 0, 0, 1, {ignoreErrorPath:true});
@ -230,7 +230,7 @@ describe('Worker', function() {
});
it('should compile apple2 skeleton with CC65', function(done) {
var csource = ab2str(fs.readFileSync('presets/apple2/skeleton.cc65'));
compile('cc65', csource, 'apple2', done, 17349, 4, 0);
compile('cc65', csource, 'apple2', done, 3023, 4, 0);
});
// TODO: test if compile, errors, then compile same file
// TODO: params persist because of fixParamsWithDefines()
@ -242,7 +242,7 @@ describe('Worker', function() {
});
it('should compile C64 cc65 skeleton', function(done) {
var csource = ab2str(fs.readFileSync('presets/c64/skeleton.cc65'));
compile('cc65', csource, 'c64.wasm', done, 2753, 2, 0);
compile('cc65', csource, 'c64.wasm', done, 2663, 2, 0);
});
it('should compile zmachine inform6 skeleton', function(done) {
var csource = ab2str(fs.readFileSync('presets/zmachine/skeleton.inform6'));
@ -260,7 +260,7 @@ describe('Worker', function() {
doBuild(msgs, done2, 205, 0, 0);
});
it('should compile CC65 flags', function(done) {
compile('cc65', '#define CC65_FLAGS -O1,-j\nint main() {\nint x=1;\nreturn x+2;\n}', 'apple2', done, 14697, 5);
compile('cc65', '#define CC65_FLAGS -Or,-g,-j\nint main() {\nint x=1;\nreturn x+2;\n}', 'apple2', done, 416, 3);
});
});