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,229 +1,236 @@
var Module = typeof Module !== 'undefined' ? Module : {}; var Module = typeof Module !== 'undefined' ? Module : {};
if (!Module.expectedDataFileDownloads) {
Module.expectedDataFileDownloads = 0;
Module.finishedDataFileDownloads = 0;
}
Module.expectedDataFileDownloads++;
(function() {
var loadPackage = function(metadata) {
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
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 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)');
}
var REMOTE_PACKAGE_NAME = typeof Module['locateFile'] === 'function' ?
Module['locateFile'](REMOTE_PACKAGE_BASE) :
((Module['filePackagePrefixURL'] || '') + REMOTE_PACKAGE_BASE);
var REMOTE_PACKAGE_SIZE = metadata.remote_package_size; if (!Module.expectedDataFileDownloads) {
var PACKAGE_UUID = metadata.package_uuid; Module.expectedDataFileDownloads = 0;
}
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) {
function fetchRemotePackage(packageName, packageSize, callback, errback) { var PACKAGE_PATH = '';
var xhr = new XMLHttpRequest(); if (typeof window === 'object') {
xhr.open('GET', packageName, true); PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/');
xhr.responseType = 'arraybuffer'; } else if (typeof process === 'undefined' && typeof location !== 'undefined') {
xhr.onprogress = function(event) { // web worker
var url = packageName; PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
var size = packageSize;
if (event.total) size = event.total;
if (event.loaded) {
if (!xhr.addedTotal) {
xhr.addedTotal = true;
if (!Module.dataFileDownloads) Module.dataFileDownloads = {};
Module.dataFileDownloads[url] = {
loaded: event.loaded,
total: size
};
} else {
Module.dataFileDownloads[url].loaded = event.loaded;
}
var total = 0;
var loaded = 0;
var num = 0;
for (var download in Module.dataFileDownloads) {
var data = Module.dataFileDownloads[download];
total += data.total;
loaded += data.loaded;
num++;
}
total = Math.ceil(total * Module.expectedDataFileDownloads/num);
if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')');
} else if (!Module.dataFileDownloads) {
if (Module['setStatus']) Module['setStatus']('Downloading data...');
}
};
xhr.onerror = function(event) {
throw new Error("NetworkError for: " + packageName);
} }
xhr.onload = function(event) { var PACKAGE_NAME = '/home/pzp/8bitworkshop-compilers/output/fs/fs65-apple2.data';
if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 var REMOTE_PACKAGE_BASE = 'fs65-apple2.data';
var packageData = xhr.response; if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) {
callback(packageData); Module['locateFile'] = Module['locateFilePackage'];
} else { err('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)');
throw new Error(xhr.statusText + " : " + xhr.responseURL); }
} var REMOTE_PACKAGE_NAME = Module['locateFile'] ? Module['locateFile'](REMOTE_PACKAGE_BASE, '') : REMOTE_PACKAGE_BASE;
};
xhr.send(null);
};
function handleError(error) {
console.error('package error:', error);
};
var fetchedCallback = null;
var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) {
if (fetchedCallback) {
fetchedCallback(data);
fetchedCallback = null;
} else {
fetched = data;
}
}, handleError);
function runWithFS() { var REMOTE_PACKAGE_SIZE = metadata['remote_package_size'];
var PACKAGE_UUID = metadata['package_uuid'];
function assert(check, msg) {
if (!check) throw msg + new Error().stack; function fetchRemotePackage(packageName, packageSize, callback, errback) {
}
Module['FS_createPath']('/', 'include', true, true); if (typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string') {
Module['FS_createPath']('/include', 'em', true, true); require('fs').readFile(packageName, function(err, contents) {
Module['FS_createPath']('/include', 'mouse', true, true); if (err) {
Module['FS_createPath']('/include', 'tgi', true, true); errback(err);
Module['FS_createPath']('/include', 'geos', true, true); } else {
Module['FS_createPath']('/include', 'sys', true, true); callback(contents.buffer);
Module['FS_createPath']('/include', 'joystick', true, true); }
Module['FS_createPath']('/', 'asminc', true, true); });
Module['FS_createPath']('/', 'cfg', true, true); return;
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);
function DataRequest(start, end, crunched, audio) {
this.start = start;
this.end = end;
this.crunched = crunched;
this.audio = audio;
}
DataRequest.prototype = {
requests: {},
open: function(mode, name) {
this.name = name;
this.requests[name] = this;
Module['addRunDependency']('fp ' + this.name);
},
send: function() {},
onload: function() {
var byteArray = this.byteArray.subarray(this.start, this.end);
this.finish(byteArray);
},
finish: function(byteArray) {
var that = this;
Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change
Module['removeRunDependency']('fp ' + that.name);
this.requests[this.name] = null;
}
};
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);
} }
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 var xhr = new XMLHttpRequest();
// (we may be allocating before malloc is ready, during startup). xhr.open('GET', packageName, true);
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'); xhr.responseType = 'arraybuffer';
var ptr = Module['getMemory'](byteArray.length); xhr.onprogress = function(event) {
Module['HEAPU8'].set(byteArray, ptr); var url = packageName;
DataRequest.prototype.byteArray = Module['HEAPU8'].subarray(ptr, ptr+byteArray.length); var size = packageSize;
if (event.total) size = event.total;
var files = metadata.files; if (event.loaded) {
for (var i = 0; i < files.length; ++i) { if (!xhr.addedTotal) {
DataRequest.prototype.requests[files[i].filename].onload(); xhr.addedTotal = true;
if (!Module.dataFileDownloads) Module.dataFileDownloads = {};
Module.dataFileDownloads[url] = {
loaded: event.loaded,
total: size
};
} else {
Module.dataFileDownloads[url].loaded = event.loaded;
}
var total = 0;
var loaded = 0;
var num = 0;
for (var download in Module.dataFileDownloads) {
var data = Module.dataFileDownloads[download];
total += data.total;
loaded += data.loaded;
num++;
}
total = Math.ceil(total * Module.expectedDataFileDownloads/num);
if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')');
} else if (!Module.dataFileDownloads) {
if (Module['setStatus']) Module['setStatus']('Downloading data...');
} }
Module['removeRunDependency']('datafile_fs65-apple2.data'); };
xhr.onerror = function(event) {
throw new Error("NetworkError for: " + packageName);
}
xhr.onload = function(event) {
if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
var packageData = xhr.response;
callback(packageData);
} else {
throw new Error(xhr.statusText + " : " + xhr.responseURL);
}
};
xhr.send(null);
};
}; function handleError(error) {
Module['addRunDependency']('datafile_fs65-apple2.data'); console.error('package error:', error);
};
if (!Module.preloadResults) Module.preloadResults = {};
Module.preloadResults[PACKAGE_NAME] = {fromCache: false};
if (fetched) {
processPackageData(fetched);
fetched = null;
} else {
fetchedCallback = processPackageData;
}
} var fetchedCallback = null;
if (Module['calledRun']) { var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
runWithFS();
} else { if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) {
if (fetchedCallback) {
fetchedCallback(data);
fetchedCallback = null;
} else {
fetched = data;
}
}, handleError);
function runWithFS() {
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", "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);
/** @constructor */
function DataRequest(start, end, audio) {
this.start = start;
this.end = end;
this.audio = audio;
}
DataRequest.prototype = {
requests: {},
open: function(mode, name) {
this.name = name;
this.requests[name] = this;
Module['addRunDependency']('fp ' + this.name);
},
send: function() {},
onload: function() {
var byteArray = this.byteArray.subarray(this.start, this.end);
this.finish(byteArray);
},
finish: function(byteArray) {
var that = this;
Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change
Module['removeRunDependency']('fp ' + that.name);
this.requests[this.name] = null;
}
};
var files = metadata['files'];
for (var i = 0; i < files.length; ++i) {
new DataRequest(files[i]['start'], files[i]['end'], files[i]['audio'] || 0).open('GET', files[i]['filename']);
}
function processPackageData(arrayBuffer) {
assert(arrayBuffer, 'Loading data file failed.');
assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData');
var byteArray = new Uint8Array(arrayBuffer);
var curr;
// Reuse the bytearray from the XHR as the source for file reads.
DataRequest.prototype.byteArray = byteArray;
var files = metadata['files'];
for (var i = 0; i < files.length; ++i) {
DataRequest.prototype.requests[files[i].filename].onload();
}
Module['removeRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-apple2.data');
};
Module['addRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-apple2.data');
if (!Module.preloadResults) Module.preloadResults = {};
Module.preloadResults[PACKAGE_NAME] = {fromCache: false};
if (fetched) {
processPackageData(fetched);
fetched = null;
} else {
fetchedCallback = processPackageData;
}
}
if (Module['calledRun']) {
runWithFS();
} else {
if (!Module['preRun']) Module['preRun'] = [];
Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it
}
Module['removeRunDependency']('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) {
loadPackage(JSON.parse(xhr.responseText));
}
}
xhr.open('GET', REMOTE_METADATA_NAME, true);
xhr.overrideMimeType('application/json');
xhr.send(null);
}
if (Module['calledRun']) {
runMetaWithFS();
} else {
if (!Module['preRun']) Module['preRun'] = []; if (!Module['preRun']) Module['preRun'] = [];
Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it Module["preRun"].push(runMetaWithFS);
} }
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');
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
loadPackage(JSON.parse(xhr.responseText));
}
}
xhr.open('GET', REMOTE_METADATA_NAME, true);
xhr.overrideMimeType('application/json');
xhr.send(null);
if (!Module['preRun']) Module['preRun'] = [];
Module["preRun"].push(function() {
Module['addRunDependency']('fs65-apple2.js.metadata');
});
})();

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,217 +1,227 @@
var Module = typeof Module !== 'undefined' ? Module : {}; var Module = typeof Module !== 'undefined' ? Module : {};
if (!Module.expectedDataFileDownloads) {
Module.expectedDataFileDownloads = 0;
Module.finishedDataFileDownloads = 0;
}
Module.expectedDataFileDownloads++;
(function() {
var loadPackage = function(metadata) {
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
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 REMOTE_PACKAGE_BASE = 'fs65-c64.data';
if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) {
Module['locateFile'] = Module['locateFilePackage'];
err('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)');
}
var REMOTE_PACKAGE_NAME = Module['locateFile'] ? Module['locateFile'](REMOTE_PACKAGE_BASE, '') : REMOTE_PACKAGE_BASE;
var REMOTE_PACKAGE_SIZE = metadata.remote_package_size; if (!Module.expectedDataFileDownloads) {
var PACKAGE_UUID = metadata.package_uuid; Module.expectedDataFileDownloads = 0;
}
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) {
function fetchRemotePackage(packageName, packageSize, callback, errback) { var PACKAGE_PATH = '';
var xhr = new XMLHttpRequest(); if (typeof window === 'object') {
xhr.open('GET', packageName, true); PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/');
xhr.responseType = 'arraybuffer'; } else if (typeof process === 'undefined' && typeof location !== 'undefined') {
xhr.onprogress = function(event) { // web worker
var url = packageName; PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
var size = packageSize;
if (event.total) size = event.total;
if (event.loaded) {
if (!xhr.addedTotal) {
xhr.addedTotal = true;
if (!Module.dataFileDownloads) Module.dataFileDownloads = {};
Module.dataFileDownloads[url] = {
loaded: event.loaded,
total: size
};
} else {
Module.dataFileDownloads[url].loaded = event.loaded;
}
var total = 0;
var loaded = 0;
var num = 0;
for (var download in Module.dataFileDownloads) {
var data = Module.dataFileDownloads[download];
total += data.total;
loaded += data.loaded;
num++;
}
total = Math.ceil(total * Module.expectedDataFileDownloads/num);
if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')');
} else if (!Module.dataFileDownloads) {
if (Module['setStatus']) Module['setStatus']('Downloading data...');
}
};
xhr.onerror = function(event) {
throw new Error("NetworkError for: " + packageName);
} }
xhr.onload = function(event) { var PACKAGE_NAME = '/home/pzp/8bitworkshop-compilers/output/fs/fs65-c64.data';
if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 var REMOTE_PACKAGE_BASE = 'fs65-c64.data';
var packageData = xhr.response; if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) {
callback(packageData); Module['locateFile'] = Module['locateFilePackage'];
} else { err('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)');
throw new Error(xhr.statusText + " : " + xhr.responseURL); }
} var REMOTE_PACKAGE_NAME = Module['locateFile'] ? Module['locateFile'](REMOTE_PACKAGE_BASE, '') : REMOTE_PACKAGE_BASE;
};
xhr.send(null);
};
function handleError(error) {
console.error('package error:', error);
};
var fetchedCallback = null;
var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) {
if (fetchedCallback) {
fetchedCallback(data);
fetchedCallback = null;
} else {
fetched = data;
}
}, handleError);
function runWithFS() { var REMOTE_PACKAGE_SIZE = metadata['remote_package_size'];
var PACKAGE_UUID = metadata['package_uuid'];
function assert(check, msg) {
if (!check) throw msg + new Error().stack; function fetchRemotePackage(packageName, packageSize, callback, errback) {
}
Module['FS_createPath']('/', 'include', true, true); if (typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string') {
Module['FS_createPath']('/include', 'em', true, true); require('fs').readFile(packageName, function(err, contents) {
Module['FS_createPath']('/include', 'geos', true, true); if (err) {
Module['FS_createPath']('/include', 'tgi', true, true); errback(err);
Module['FS_createPath']('/include', 'mouse', true, true); } else {
Module['FS_createPath']('/include', 'joystick', true, true); callback(contents.buffer);
Module['FS_createPath']('/include', 'sys', true, true); }
Module['FS_createPath']('/', 'asminc', true, true); });
Module['FS_createPath']('/', 'cfg', true, true); return;
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);
function DataRequest(start, end, audio) {
this.start = start;
this.end = end;
this.audio = audio;
}
DataRequest.prototype = {
requests: {},
open: function(mode, name) {
this.name = name;
this.requests[name] = this;
Module['addRunDependency']('fp ' + this.name);
},
send: function() {},
onload: function() {
var byteArray = this.byteArray.subarray(this.start, this.end);
this.finish(byteArray);
},
finish: function(byteArray) {
var that = this;
Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change
Module['removeRunDependency']('fp ' + that.name);
this.requests[this.name] = null;
}
};
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);
} }
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 var xhr = new XMLHttpRequest();
// (we may be allocating before malloc is ready, during startup). xhr.open('GET', packageName, true);
var ptr = Module['getMemory'](byteArray.length); xhr.responseType = 'arraybuffer';
Module['HEAPU8'].set(byteArray, ptr); xhr.onprogress = function(event) {
DataRequest.prototype.byteArray = Module['HEAPU8'].subarray(ptr, ptr+byteArray.length); var url = packageName;
var size = packageSize;
var files = metadata.files; if (event.total) size = event.total;
for (var i = 0; i < files.length; ++i) { if (event.loaded) {
DataRequest.prototype.requests[files[i].filename].onload(); if (!xhr.addedTotal) {
xhr.addedTotal = true;
if (!Module.dataFileDownloads) Module.dataFileDownloads = {};
Module.dataFileDownloads[url] = {
loaded: event.loaded,
total: size
};
} else {
Module.dataFileDownloads[url].loaded = event.loaded;
}
var total = 0;
var loaded = 0;
var num = 0;
for (var download in Module.dataFileDownloads) {
var data = Module.dataFileDownloads[download];
total += data.total;
loaded += data.loaded;
num++;
}
total = Math.ceil(total * Module.expectedDataFileDownloads/num);
if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')');
} else if (!Module.dataFileDownloads) {
if (Module['setStatus']) Module['setStatus']('Downloading data...');
} }
Module['removeRunDependency']('datafile_fs65-c64.data'); };
xhr.onerror = function(event) {
throw new Error("NetworkError for: " + packageName);
}
xhr.onload = function(event) {
if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
var packageData = xhr.response;
callback(packageData);
} else {
throw new Error(xhr.statusText + " : " + xhr.responseURL);
}
};
xhr.send(null);
};
}; function handleError(error) {
Module['addRunDependency']('datafile_fs65-c64.data'); console.error('package error:', error);
};
if (!Module.preloadResults) Module.preloadResults = {};
Module.preloadResults[PACKAGE_NAME] = {fromCache: false};
if (fetched) {
processPackageData(fetched);
fetched = null;
} else {
fetchedCallback = processPackageData;
}
} var fetchedCallback = null;
if (Module['calledRun']) { var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
runWithFS();
} else {
if (!Module['preRun']) Module['preRun'] = [];
Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it
}
Module['removeRunDependency']('fs65-c64.js.metadata'); if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) {
} if (fetchedCallback) {
fetchedCallback(data);
fetchedCallback = null;
} else {
fetched = data;
}
}, handleError);
function runWithFS() {
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);
function runMetaWithFS() { /** @constructor */
Module['addRunDependency']('fs65-c64.js.metadata'); function DataRequest(start, end, audio) {
var REMOTE_METADATA_NAME = Module['locateFile'] ? Module['locateFile']('fs65-c64.js.metadata', '') : 'fs65-c64.js.metadata'; this.start = start;
var xhr = new XMLHttpRequest(); this.end = end;
xhr.onreadystatechange = function() { this.audio = audio;
if (xhr.readyState === 4 && xhr.status === 200) { }
loadPackage(JSON.parse(xhr.responseText)); DataRequest.prototype = {
requests: {},
open: function(mode, name) {
this.name = name;
this.requests[name] = this;
Module['addRunDependency']('fp ' + this.name);
},
send: function() {},
onload: function() {
var byteArray = this.byteArray.subarray(this.start, this.end);
this.finish(byteArray);
},
finish: function(byteArray) {
var that = this;
Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change
Module['removeRunDependency']('fp ' + that.name);
this.requests[this.name] = null;
}
};
var files = metadata['files'];
for (var i = 0; i < files.length; ++i) {
new DataRequest(files[i]['start'], files[i]['end'], files[i]['audio'] || 0).open('GET', files[i]['filename']);
}
function processPackageData(arrayBuffer) {
assert(arrayBuffer, 'Loading data file failed.');
assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData');
var byteArray = new Uint8Array(arrayBuffer);
var curr;
// Reuse the bytearray from the XHR as the source for file reads.
DataRequest.prototype.byteArray = byteArray;
var files = metadata['files'];
for (var i = 0; i < files.length; ++i) {
DataRequest.prototype.requests[files[i].filename].onload();
}
Module['removeRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-c64.data');
};
Module['addRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-c64.data');
if (!Module.preloadResults) Module.preloadResults = {};
Module.preloadResults[PACKAGE_NAME] = {fromCache: false};
if (fetched) {
processPackageData(fetched);
fetched = null;
} else {
fetchedCallback = processPackageData;
}
}
if (Module['calledRun']) {
runWithFS();
} else {
if (!Module['preRun']) Module['preRun'] = [];
Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it
}
Module['removeRunDependency']('fs65-c64.js.metadata');
} }
}
xhr.open('GET', REMOTE_METADATA_NAME, true);
xhr.overrideMimeType('application/json');
xhr.send(null);
}
if (Module['calledRun']) { function runMetaWithFS() {
runMetaWithFS(); Module['addRunDependency']('fs65-c64.js.metadata');
} else { var REMOTE_METADATA_NAME = Module['locateFile'] ? Module['locateFile']('fs65-c64.js.metadata', '') : 'fs65-c64.js.metadata';
if (!Module['preRun']) Module['preRun'] = []; var xhr = new XMLHttpRequest();
Module["preRun"].push(runMetaWithFS); xhr.onreadystatechange = function() {
} if (xhr.readyState === 4 && xhr.status === 200) {
loadPackage(JSON.parse(xhr.responseText));
}
}
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(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,217 +1,224 @@
var Module = typeof Module !== 'undefined' ? Module : {}; var Module = typeof Module !== 'undefined' ? Module : {};
if (!Module.expectedDataFileDownloads) {
Module.expectedDataFileDownloads = 0;
Module.finishedDataFileDownloads = 0;
}
Module.expectedDataFileDownloads++;
(function() {
var loadPackage = function(metadata) {
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
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 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)');
}
var REMOTE_PACKAGE_NAME = typeof Module['locateFile'] === 'function' ?
Module['locateFile'](REMOTE_PACKAGE_BASE) :
((Module['filePackagePrefixURL'] || '') + REMOTE_PACKAGE_BASE);
var REMOTE_PACKAGE_SIZE = metadata.remote_package_size; if (!Module.expectedDataFileDownloads) {
var PACKAGE_UUID = metadata.package_uuid; Module.expectedDataFileDownloads = 0;
}
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) {
function fetchRemotePackage(packageName, packageSize, callback, errback) { var PACKAGE_PATH = '';
var xhr = new XMLHttpRequest(); if (typeof window === 'object') {
xhr.open('GET', packageName, true); PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/');
xhr.responseType = 'arraybuffer'; } else if (typeof process === 'undefined' && typeof location !== 'undefined') {
xhr.onprogress = function(event) { // web worker
var url = packageName; PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
var size = packageSize;
if (event.total) size = event.total;
if (event.loaded) {
if (!xhr.addedTotal) {
xhr.addedTotal = true;
if (!Module.dataFileDownloads) Module.dataFileDownloads = {};
Module.dataFileDownloads[url] = {
loaded: event.loaded,
total: size
};
} else {
Module.dataFileDownloads[url].loaded = event.loaded;
}
var total = 0;
var loaded = 0;
var num = 0;
for (var download in Module.dataFileDownloads) {
var data = Module.dataFileDownloads[download];
total += data.total;
loaded += data.loaded;
num++;
}
total = Math.ceil(total * Module.expectedDataFileDownloads/num);
if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')');
} else if (!Module.dataFileDownloads) {
if (Module['setStatus']) Module['setStatus']('Downloading data...');
}
};
xhr.onerror = function(event) {
throw new Error("NetworkError for: " + packageName);
} }
xhr.onload = function(event) { var PACKAGE_NAME = '/home/pzp/8bitworkshop-compilers/output/fs/fs65-nes.data';
if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 var REMOTE_PACKAGE_BASE = 'fs65-nes.data';
var packageData = xhr.response; if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) {
callback(packageData); Module['locateFile'] = Module['locateFilePackage'];
} else { err('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)');
throw new Error(xhr.statusText + " : " + xhr.responseURL); }
} var REMOTE_PACKAGE_NAME = Module['locateFile'] ? Module['locateFile'](REMOTE_PACKAGE_BASE, '') : REMOTE_PACKAGE_BASE;
};
xhr.send(null);
};
function handleError(error) {
console.error('package error:', error);
};
var fetchedCallback = null;
var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) {
if (fetchedCallback) {
fetchedCallback(data);
fetchedCallback = null;
} else {
fetched = data;
}
}, handleError);
function runWithFS() { var REMOTE_PACKAGE_SIZE = metadata['remote_package_size'];
var PACKAGE_UUID = metadata['package_uuid'];
function assert(check, msg) {
if (!check) throw msg + new Error().stack; function fetchRemotePackage(packageName, packageSize, callback, errback) {
}
Module['FS_createPath']('/', 'include', true, true); if (typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string') {
Module['FS_createPath']('/include', 'em', true, true); require('fs').readFile(packageName, function(err, contents) {
Module['FS_createPath']('/include', 'mouse', true, true); if (err) {
Module['FS_createPath']('/include', 'tgi', true, true); errback(err);
Module['FS_createPath']('/include', 'geos', true, true); } else {
Module['FS_createPath']('/include', 'sys', true, true); callback(contents.buffer);
Module['FS_createPath']('/include', 'joystick', true, true); }
Module['FS_createPath']('/', 'asminc', true, true); });
Module['FS_createPath']('/', 'cfg', true, true); return;
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);
function DataRequest(start, end, crunched, audio) {
this.start = start;
this.end = end;
this.crunched = crunched;
this.audio = audio;
}
DataRequest.prototype = {
requests: {},
open: function(mode, name) {
this.name = name;
this.requests[name] = this;
Module['addRunDependency']('fp ' + this.name);
},
send: function() {},
onload: function() {
var byteArray = this.byteArray.subarray(this.start, this.end);
this.finish(byteArray);
},
finish: function(byteArray) {
var that = this;
Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change
Module['removeRunDependency']('fp ' + that.name);
this.requests[this.name] = null;
}
};
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);
} }
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 var xhr = new XMLHttpRequest();
// (we may be allocating before malloc is ready, during startup). xhr.open('GET', packageName, true);
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'); xhr.responseType = 'arraybuffer';
var ptr = Module['getMemory'](byteArray.length); xhr.onprogress = function(event) {
Module['HEAPU8'].set(byteArray, ptr); var url = packageName;
DataRequest.prototype.byteArray = Module['HEAPU8'].subarray(ptr, ptr+byteArray.length); var size = packageSize;
if (event.total) size = event.total;
var files = metadata.files; if (event.loaded) {
for (var i = 0; i < files.length; ++i) { if (!xhr.addedTotal) {
DataRequest.prototype.requests[files[i].filename].onload(); xhr.addedTotal = true;
if (!Module.dataFileDownloads) Module.dataFileDownloads = {};
Module.dataFileDownloads[url] = {
loaded: event.loaded,
total: size
};
} else {
Module.dataFileDownloads[url].loaded = event.loaded;
}
var total = 0;
var loaded = 0;
var num = 0;
for (var download in Module.dataFileDownloads) {
var data = Module.dataFileDownloads[download];
total += data.total;
loaded += data.loaded;
num++;
}
total = Math.ceil(total * Module.expectedDataFileDownloads/num);
if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')');
} else if (!Module.dataFileDownloads) {
if (Module['setStatus']) Module['setStatus']('Downloading data...');
} }
Module['removeRunDependency']('datafile_fs65-nes.data'); };
xhr.onerror = function(event) {
throw new Error("NetworkError for: " + packageName);
}
xhr.onload = function(event) {
if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
var packageData = xhr.response;
callback(packageData);
} else {
throw new Error(xhr.statusText + " : " + xhr.responseURL);
}
};
xhr.send(null);
};
}; function handleError(error) {
Module['addRunDependency']('datafile_fs65-nes.data'); console.error('package error:', error);
};
if (!Module.preloadResults) Module.preloadResults = {};
Module.preloadResults[PACKAGE_NAME] = {fromCache: false};
if (fetched) {
processPackageData(fetched);
fetched = null;
} else {
fetchedCallback = processPackageData;
}
} var fetchedCallback = null;
if (Module['calledRun']) { var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
runWithFS();
} else { if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) {
if (fetchedCallback) {
fetchedCallback(data);
fetchedCallback = null;
} else {
fetched = data;
}
}, handleError);
function runWithFS() {
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", "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);
/** @constructor */
function DataRequest(start, end, audio) {
this.start = start;
this.end = end;
this.audio = audio;
}
DataRequest.prototype = {
requests: {},
open: function(mode, name) {
this.name = name;
this.requests[name] = this;
Module['addRunDependency']('fp ' + this.name);
},
send: function() {},
onload: function() {
var byteArray = this.byteArray.subarray(this.start, this.end);
this.finish(byteArray);
},
finish: function(byteArray) {
var that = this;
Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change
Module['removeRunDependency']('fp ' + that.name);
this.requests[this.name] = null;
}
};
var files = metadata['files'];
for (var i = 0; i < files.length; ++i) {
new DataRequest(files[i]['start'], files[i]['end'], files[i]['audio'] || 0).open('GET', files[i]['filename']);
}
function processPackageData(arrayBuffer) {
assert(arrayBuffer, 'Loading data file failed.');
assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData');
var byteArray = new Uint8Array(arrayBuffer);
var curr;
// Reuse the bytearray from the XHR as the source for file reads.
DataRequest.prototype.byteArray = byteArray;
var files = metadata['files'];
for (var i = 0; i < files.length; ++i) {
DataRequest.prototype.requests[files[i].filename].onload();
}
Module['removeRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-nes.data');
};
Module['addRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-nes.data');
if (!Module.preloadResults) Module.preloadResults = {};
Module.preloadResults[PACKAGE_NAME] = {fromCache: false};
if (fetched) {
processPackageData(fetched);
fetched = null;
} else {
fetchedCallback = processPackageData;
}
}
if (Module['calledRun']) {
runWithFS();
} else {
if (!Module['preRun']) Module['preRun'] = [];
Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it
}
Module['removeRunDependency']('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) {
loadPackage(JSON.parse(xhr.responseText));
}
}
xhr.open('GET', REMOTE_METADATA_NAME, true);
xhr.overrideMimeType('application/json');
xhr.send(null);
}
if (Module['calledRun']) {
runMetaWithFS();
} else {
if (!Module['preRun']) Module['preRun'] = []; if (!Module['preRun']) Module['preRun'] = [];
Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it Module["preRun"].push(runMetaWithFS);
} }
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');
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
loadPackage(JSON.parse(xhr.responseText));
}
}
xhr.open('GET', REMOTE_METADATA_NAME, true);
xhr.overrideMimeType('application/json');
xhr.send(null);
if (!Module['preRun']) Module['preRun'] = [];
Module["preRun"].push(function() {
Module['addRunDependency']('fs65-nes.js.metadata');
});
})();

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': { 'apple2': {
arch: '6502', arch: '6502',
define: ['__APPLE2__'], define: ['__APPLE2__'],
cfgfile: 'apple2-hgr.cfg', cfgfile: 'apple2.cfg',
libargs: [ '--lib-path', '/share/target/apple2/drv', '-D', '__EXEHDR__=0', 'apple2.lib'], libargs: [ '--lib-path', '/share/target/apple2/drv', '-D', '__EXEHDR__=0', 'apple2.lib'],
__CODE_RUN__: 16384, __CODE_RUN__: 16384,
code_start: 0x803, 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); 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) { 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) { it('should NOT compile CC65 (preproc error)', function(done) {
compile('cc65', '#include "NOSUCH.file"\n', 'nes', done, 0, 0, 1, {ignoreErrorPath:true}); 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) { it('should compile apple2 skeleton with CC65', function(done) {
var csource = ab2str(fs.readFileSync('presets/apple2/skeleton.cc65')); 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: test if compile, errors, then compile same file
// TODO: params persist because of fixParamsWithDefines() // TODO: params persist because of fixParamsWithDefines()
@ -242,7 +242,7 @@ describe('Worker', function() {
}); });
it('should compile C64 cc65 skeleton', function(done) { it('should compile C64 cc65 skeleton', function(done) {
var csource = ab2str(fs.readFileSync('presets/c64/skeleton.cc65')); 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) { it('should compile zmachine inform6 skeleton', function(done) {
var csource = ab2str(fs.readFileSync('presets/zmachine/skeleton.inform6')); var csource = ab2str(fs.readFileSync('presets/zmachine/skeleton.inform6'));
@ -260,7 +260,7 @@ describe('Worker', function() {
doBuild(msgs, done2, 205, 0, 0); doBuild(msgs, done2, 205, 0, 0);
}); });
it('should compile CC65 flags', function(done) { 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);
}); });
}); });