Deploying to gh-pages from @ sehugg/8bitworkshop@84eff0f8ed 🚀

This commit is contained in:
sehugg committed 2026-09-28 11:59:40 +00:00
1 parent a92c38e567
commit 92fa980a38
93 files changed
+653 -337568

No files matched your search

+8 -8
View File
@@ -189,7 +189,7 @@ unless a different license is explicitly stated within the specific code sample.
* https://www.mamedev.org/ (BSD-3-Clause)
* https://github.com/floooh/chips (Zlib)
* https://github.com/DrGoldfire/Z80.js (MIT)
* http://www.twitchasylum.com/jsvecx/
* http://www.twitchasylum.com/jsvecx/ (GPL-3)
* https://github.com/curiousdannii/ifvms.js/ (MIT)
* https://github.com/6502ts/6502.ts (MIT)
* https://github.com/yhzmr442/jspce (MIT)
@@ -200,16 +200,16 @@ unless a different license is explicitly stated within the specific code sample.
* https://cc65.github.io/ (zlib)
* http://sdcc.sourceforge.net/ (GPL-2)
* https://github.com/stahta01/cmoc/ (GPL-3.0)
* https://github.com/batari-Basic/batari-Basic
* https://github.com/batari-Basic/batari-Basic (GPL-2)
* https://www.veripool.org/wiki/verilator (GNU Lesser Public License Version 3)
* http://mcpp.sourceforge.net/ (BSD-2)
* https://github.com/DavidKinder/Inform6
* https://github.com/DavidKinder/Inform6 (Inform, https://github.com/DavidKinder/Inform6/blob/master/licence.txt)
* https://github.com/dmsc/fastbasic (GPL-2.0)
* https://github.com/wiz-lang/wiz (MIT)
* https://github.com/sylefeb/Silice (GPL-3.0)
* https://github.com/steux/cc7800 (GPL-3.0)
* https://bellard.org/tcc/
* https://github.com/Dialog-IF/dialog
* https://bellard.org/tcc/ (MIT)
* https://github.com/Dialog-IF/dialog (BSD-2-Clause)
* https://github.com/alexfru/SmallerC (BSD-2-Clause)
* https://github.com/drmortalwombat/oscar64/ (GPL-3.0)
@@ -220,7 +220,7 @@ unless a different license is explicitly stated within the specific code sample.
* http://48k.ca/zmac.html (public domain)
* https://github.com/apple2accumulator/merlin32
* https://github.com/camsaul/nesasm
* https://www.floodgap.com/retrotech/xa/
* https://www.floodgap.com/retrotech/xa/ (GPL-2)
* https://github.com/mikeakohn/naken_asm (GPL-3)
* https://github.com/yasm/yasm
* https://github.com/mbitsnbites/vasm-mirror
@@ -229,11 +229,11 @@ unless a different license is explicitly stated within the specific code sample.
### Dev Kits / Libraries
* https://shiru.untergrund.net/code.shtml
* http://www.colecovision.eu/ColecoVision/development/libcv.shtml
* http://www.colecovision.eu/ColecoVision/development/libcv.shtml (LGPL-2.1)
* https://github.com/toyoshim/tss (BSD-3-Clause)
* https://github.com/lronaldo/cpctelera (LGPL-3.0)
* https://github.com/datajerk/c2t (BSD-3)
* https://github.com/sehugg/6809tools
* https://github.com/sehugg/6809tools (GPL-3)
* https://github.com/mbitsnbites/liblzg (Zlib)
* https://github.com/sehugg/makewav
* https://github.com/Kingcom/armips (MIT)
@@ -1,2 +1,2 @@
import{M as b,N as w}from"./chunk-ZTLOJICZ.js";import{d as E}from"./chunk-VSC4MAII.js";var y=E((d,v)=>{(function(l,e){typeof define=="function"&&define.amd?define([],e):typeof d!="undefined"?e():(e(),l.FileSaver={})})(d,function(){"use strict";function l(t,r){return typeof r=="undefined"?r={autoBom:!1}:typeof r!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),r={autoBom:!r}),r.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(t.type)?new Blob(["\uFEFF",t],{type:t.type}):t}function e(t,r,c){var a=new XMLHttpRequest;a.open("GET",t),a.responseType="blob",a.onload=function(){h(a.response,r,c)},a.onerror=function(){console.error("could not download file")},a.send()}function o(t){var r=new XMLHttpRequest;r.open("HEAD",t,!1);try{r.send()}catch(c){}return 200<=r.status&&299>=r.status}function i(t){try{t.dispatchEvent(new MouseEvent("click"))}catch(c){var r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(r)}}var n=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof global=="object"&&global.global===global?global:void 0,u=n.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),h=n.saveAs||(typeof window!="object"||window!==n?function(){}:"download"in HTMLAnchorElement.prototype&&!u?function(t,r,c){var a=n.URL||n.webkitURL,s=document.createElement("a");r=r||t.name||"download",s.download=r,s.rel="noopener",typeof t=="string"?(s.href=t,s.origin===location.origin?i(s):o(s.href)?e(t,r,c):i(s,s.target="_blank")):(s.href=a.createObjectURL(t),setTimeout(function(){a.revokeObjectURL(s.href)},4e4),setTimeout(function(){i(s)},0))}:"msSaveOrOpenBlob"in navigator?function(t,r,c){if(r=r||t.name||"download",typeof t!="string")navigator.msSaveOrOpenBlob(l(t,c),r);else if(o(t))e(t,r,c);else{var a=document.createElement("a");a.href=t,a.target="_blank",setTimeout(function(){i(a)})}}:function(t,r,c,a){if(a=a||open("","_blank"),a&&(a.document.title=a.document.body.innerText="downloading..."),typeof t=="string")return e(t,r,c);var s=t.type==="application/octet-stream",C=/constructor/i.test(n.HTMLElement)||n.safari,S=/CriOS\/[\d]+/.test(navigator.userAgent);if((S||s&&C||u)&&typeof FileReader!="undefined"){var p=new FileReader;p.onloadend=function(){var m=p.result;m=S?m:m.replace(/^data:[^;]*;/,"data:attachment/file;"),a?a.location.href=m:location=m,a=null},p.readAsDataURL(t)}else{var k=n.URL||n.webkitURL,f=k.createObjectURL(t);a?a.location=f:location.href=f,a=null,setTimeout(function(){k.revokeObjectURL(f)},4e4)}});n.saveAs=h.saveAs=h,typeof v!="undefined"&&(v.exports=h)})});var g=class{constructor(e){this.checkpointInterval=10;this.maxCheckpoints=300;this.reset(),this.platform=e}reset(){this.checkpoints=[],this.framerecs=[],this.frameCount=0,this.lastSeekFrame=0,this.lastSeekStep=0,this.lastStepCount=0,this.callbackStateChanged&&this.callbackStateChanged()}frameRequested(){var e={controls:this.platform.saveControlsState(),seed:b()},o=!1;return this.lastSeekFrame<this.frameCount?this.loadControls(this.lastSeekFrame):(this.platform.saveControlsState&&this.framerecs.push(e),o=this.frameCount++%this.checkpointInterval==0),this.lastSeekFrame++,this.lastSeekStep=0,this.callbackStateChanged&&this.callbackStateChanged(),o}numFrames(){return this.frameCount}currentFrame(){return this.lastSeekFrame}currentStep(){return this.lastSeekStep}recordFrame(e){this.checkpoints.push(e),this.callbackNewCheckpoint&&this.callbackNewCheckpoint(e),this.checkpoints.length>this.maxCheckpoints&&(this.checkpoints.shift(),this.framerecs=this.framerecs.slice(this.checkpointInterval),this.lastSeekFrame-=this.checkpointInterval,this.frameCount-=this.checkpointInterval,this.callbackStateChanged&&this.callbackStateChanged())}getStateAtOrBefore(e){if(e<=0&&this.checkpoints.length>0)return{frame:0,state:this.checkpoints[0]};var o=Math.floor(e/this.checkpointInterval),i=o<this.checkpoints.length?o:this.checkpoints.length-1,n=i*this.checkpointInterval;return{frame:n,state:this.checkpoints[i]}}loadFrame(e,o){if(e|=0,o|=0,e==this.lastSeekFrame&&o==this.lastSeekStep)return e;let{frame:i,state:n}=this.getStateAtOrBefore(e-1);if(n){var u=0;for(this.platform.pause(),this.platform.loadState(n);i<e;)i<this.framerecs.length&&this.loadControls(i),i++,u=this.platform.advance(i<e);return i==0&&(u=this.platform.advance(!0),this.platform.loadState(n)),o>0&&this.platform.advanceFrameClock&&(o=this.platform.advanceFrameClock(null,o)),this.lastSeekFrame=e,this.lastSeekStep=o,this.lastStepCount=u,e}else return-1}loadControls(e){this.platform.loadControlsState&&this.platform.loadControlsState(this.framerecs[e].controls),w(this.framerecs[e].seed)}getLastCheckpoint(){return this.checkpoints.length&&this.checkpoints[this.checkpoints.length-1]}};function R(l){switch(l){case"apple2":return import("./apple2-HWNTKLI6.js");case"arm32"Line truncated
//# sourceMappingURL=chunk-2I4PZDSN.js.map
import{M as b,N as w}from"./chunk-ZTLOJICZ.js";import{d as E}from"./chunk-VSC4MAII.js";var y=E((d,v)=>{(function(l,e){typeof define=="function"&&define.amd?define([],e):typeof d!="undefined"?e():(e(),l.FileSaver={})})(d,function(){"use strict";function l(t,r){return typeof r=="undefined"?r={autoBom:!1}:typeof r!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),r={autoBom:!r}),r.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(t.type)?new Blob(["\uFEFF",t],{type:t.type}):t}function e(t,r,c){var a=new XMLHttpRequest;a.open("GET",t),a.responseType="blob",a.onload=function(){h(a.response,r,c)},a.onerror=function(){console.error("could not download file")},a.send()}function o(t){var r=new XMLHttpRequest;r.open("HEAD",t,!1);try{r.send()}catch(c){}return 200<=r.status&&299>=r.status}function i(t){try{t.dispatchEvent(new MouseEvent("click"))}catch(c){var r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(r)}}var n=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof global=="object"&&global.global===global?global:void 0,u=n.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),h=n.saveAs||(typeof window!="object"||window!==n?function(){}:"download"in HTMLAnchorElement.prototype&&!u?function(t,r,c){var a=n.URL||n.webkitURL,s=document.createElement("a");r=r||t.name||"download",s.download=r,s.rel="noopener",typeof t=="string"?(s.href=t,s.origin===location.origin?i(s):o(s.href)?e(t,r,c):i(s,s.target="_blank")):(s.href=a.createObjectURL(t),setTimeout(function(){a.revokeObjectURL(s.href)},4e4),setTimeout(function(){i(s)},0))}:"msSaveOrOpenBlob"in navigator?function(t,r,c){if(r=r||t.name||"download",typeof t!="string")navigator.msSaveOrOpenBlob(l(t,c),r);else if(o(t))e(t,r,c);else{var a=document.createElement("a");a.href=t,a.target="_blank",setTimeout(function(){i(a)})}}:function(t,r,c,a){if(a=a||open("","_blank"),a&&(a.document.title=a.document.body.innerText="downloading..."),typeof t=="string")return e(t,r,c);var s=t.type==="application/octet-stream",C=/constructor/i.test(n.HTMLElement)||n.safari,S=/CriOS\/[\d]+/.test(navigator.userAgent);if((S||s&&C||u)&&typeof FileReader!="undefined"){var p=new FileReader;p.onloadend=function(){var m=p.result;m=S?m:m.replace(/^data:[^;]*;/,"data:attachment/file;"),a?a.location.href=m:location=m,a=null},p.readAsDataURL(t)}else{var k=n.URL||n.webkitURL,f=k.createObjectURL(t);a?a.location=f:location.href=f,a=null,setTimeout(function(){k.revokeObjectURL(f)},4e4)}});n.saveAs=h.saveAs=h,typeof v!="undefined"&&(v.exports=h)})});var g=class{constructor(e){this.checkpointInterval=10;this.maxCheckpoints=300;this.reset(),this.platform=e}reset(){this.checkpoints=[],this.framerecs=[],this.frameCount=0,this.lastSeekFrame=0,this.lastSeekStep=0,this.lastStepCount=0,this.callbackStateChanged&&this.callbackStateChanged()}frameRequested(){var e={controls:this.platform.saveControlsState(),seed:b()},o=!1;return this.lastSeekFrame<this.frameCount?this.loadControls(this.lastSeekFrame):(this.platform.saveControlsState&&this.framerecs.push(e),o=this.frameCount++%this.checkpointInterval==0),this.lastSeekFrame++,this.lastSeekStep=0,this.callbackStateChanged&&this.callbackStateChanged(),o}numFrames(){return this.frameCount}currentFrame(){return this.lastSeekFrame}currentStep(){return this.lastSeekStep}recordFrame(e){this.checkpoints.push(e),this.callbackNewCheckpoint&&this.callbackNewCheckpoint(e),this.checkpoints.length>this.maxCheckpoints&&(this.checkpoints.shift(),this.framerecs=this.framerecs.slice(this.checkpointInterval),this.lastSeekFrame-=this.checkpointInterval,this.frameCount-=this.checkpointInterval,this.callbackStateChanged&&this.callbackStateChanged())}getStateAtOrBefore(e){if(e<=0&&this.checkpoints.length>0)return{frame:0,state:this.checkpoints[0]};var o=Math.floor(e/this.checkpointInterval),i=o<this.checkpoints.length?o:this.checkpoints.length-1,n=i*this.checkpointInterval;return{frame:n,state:this.checkpoints[i]}}loadFrame(e,o){if(e|=0,o|=0,e==this.lastSeekFrame&&o==this.lastSeekStep)return e;let{frame:i,state:n}=this.getStateAtOrBefore(e-1);if(n){var u=0;for(this.platform.pause(),this.platform.loadState(n);i<e;)i<this.framerecs.length&&this.loadControls(i),i++,u=this.platform.advance(i<e);return i==0&&(u=this.platform.advance(!0),this.platform.loadState(n)),o>0&&this.platform.advanceFrameClock&&(o=this.platform.advanceFrameClock(null,o)),this.lastSeekFrame=e,this.lastSeekStep=o,this.lastStepCount=u,e}else return-1}loadControls(e){this.platform.loadControlsState&&this.platform.loadControlsState(this.framerecs[e].controls),w(this.framerecs[e].seed)}getLastCheckpoint(){return this.checkpoints.length&&this.checkpoints[this.checkpoints.length-1]}};function R(l){switch(l){case"apple2":return import("./apple2-HWNTKLI6.js");case"arm32"Line truncated
//# sourceMappingURL=chunk-7CYBOXJ5.js.map
File renamed without changes.
+25 -22
View File
@@ -130,18 +130,18 @@ const TOOL_PLATFORM_HELPURL = {
lynx: 'https://cc65.github.io/doc/lynx.html',
},
};
const CC65_PRELOADFS = {
'apple2': { preloadFS: '65-apple2' },
'c64': { preloadFS: '65-c64' },
'vic20': { preloadFS: '65-vic20' },
'nes': { preloadFS: '65-nes' },
'atari8': { preloadFS: '65-atari8' },
'vector': { preloadFS: '65-none' },
'atari7800': { preloadFS: '65-none' },
'devel': { preloadFS: '65-none' },
'vcs': { preloadFS: '65-atari2600' },
'pce': { preloadFS: '65-pce' },
'exidy': { preloadFS: '65-none' },
const CC65_WASIFS = {
'apple2': { wasiFSZip: 'cc65-fs-apple2.zip' },
'c64': { wasiFSZip: 'cc65-fs-c64.zip' },
'vic20': { wasiFSZip: 'cc65-fs-vic20.zip' },
'nes': { wasiFSZip: 'cc65-fs-nes.zip' },
'atari8': { wasiFSZip: 'cc65-fs-atari8.zip' },
'vector': { wasiFSZip: 'cc65-fs-none.zip' },
'atari7800': { wasiFSZip: 'cc65-fs-none.zip' },
'devel': { wasiFSZip: 'cc65-fs-none.zip' },
'vcs': { wasiFSZip: 'cc65-fs-atari2600.zip' },
'pce': { wasiFSZip: 'cc65-fs-pce.zip' },
'exidy': { wasiFSZip: 'cc65-fs-none.zip' },
};
//// tool registry
exports.TOOL_META = {
@@ -200,26 +200,26 @@ exports.TOOL_META = {
cc65: {
id: 'cc65', name: 'cc65', kind: 'compiler', arch: '6502',
extensions: ['.c', '.h'],
includeDirs: ['/include', '/asminc'],
includeDirs: ['/share/cc65/include', '/share/cc65/asminc'],
editorStyle: 'text/x-csrc',
helpURL: 'https://cc65.github.io/doc/cc65.html',
wasmModule: 'cc65',
version: '2.19',
defineFlag: '-D', defineInline: true,
platforms: CC65_PRELOADFS,
platforms: CC65_WASIFS,
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
ca65: {
id: 'ca65', name: 'ca65', kind: 'assembler', arch: '6502',
extensions: ['.s', '.ca65', '.inc'],
includeDirs: ['/include', '/asminc'],
includeDirs: ['/share/cc65/include', '/share/cc65/asminc'],
editorStyle: '6502',
helpURL: 'https://cc65.github.io/doc/ca65.html',
wasmModule: 'ca65',
version: '2.19',
defineFlag: '-D', defineInline: false,
platforms: CC65_PRELOADFS,
platforms: CC65_WASIFS,
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
@@ -439,7 +439,7 @@ exports.TOOL_META = {
helpURL: 'https://github.com/dmsc/fastbasic/blob/v4.4/manual.md',
wasmModule: 'fastbasic-int',
version: '4.4',
platforms: { default: { preloadFS: '65-atari8' } },
platforms: { default: { wasiFSZip: 'cc65-fs-atari8.zip' } },
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
@@ -489,9 +489,9 @@ exports.TOOL_META = {
extensions: ['.ecs'],
editorStyle: 'ecs',
platforms: {
vcs: { preloadFS: '65-atari2600' },
nes: { preloadFS: '65-nes' },
c64: { preloadFS: '65-c64' },
vcs: { wasiFSZip: 'cc65-fs-atari2600.zip' },
nes: { wasiFSZip: 'cc65-fs-nes.zip' },
c64: { wasiFSZip: 'cc65-fs-c64.zip' },
},
includePatterns: [...exports.SHARED_INCLUDE_PATTERNS, ...exports.ECS_INCLUDE_PATTERNS],
},
@@ -655,7 +655,7 @@ function getPreloadFSName(tool, platform) {
if (platform) {
// Try the exact id, then the root base id so suffixed platform ids
// (e.g. 'atari8-800', 'atari8-5200.xlmame') resolve to the shared
// filesystem registered under the root ('atari8' -> '65-atari8').
// filesystem registered under the root (e.g. 'atari8-800' -> 'atari8').
let p = meta.platforms[platform];
if (p && p.preloadFS)
return p.preloadFS;
@@ -773,7 +773,7 @@ function getIncludeDirs(tool, platform_id) {
}
/**
* Name of the shared filesystem to query for this tool's bundled files:
* either the emscripten preloadFS package name (e.g. '65-nes') or, for tools
* either the emscripten preloadFS package name (e.g. 'sdcc') or, for tools
* with a WASI filesystem zip (e.g. cc2600), 'wasi:<zipname>'.
* Undefined if the tool has no bundled filesystem.
*/
@@ -781,6 +781,9 @@ function getSharedFileSystemName(tool, platform) {
var fsName = getPreloadFSName(tool, platform);
if (fsName)
return fsName;
let config = getPlatformToolConfig(tool, platform);
if (config && config.wasiFSZip)
return 'wasi:' + config.wasiFSZip;
let meta = tool && getToolMeta(tool);
return (meta && meta.wasiFSZip) ? 'wasi:' + meta.wasiFSZip : undefined;
}
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"toolmeta.js","sourceRoot":"","sources":["../../src/common/toolmeta.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"toolmeta.js","sourceRoot":"","sources":["../../src/common/toolmeta.ts"],"names":[],"mappings":"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 truncated
+1 -1
View File
@@ -1,2 +1,2 @@
import{b as v,c as P}from"./chunk-2I4PZDSN.js";import{A as p,E as w,K as c,l as u,m,y as g}from"./chunk-ZTLOJICZ.js";import{e as I}from"./chunk-VSC4MAII.js";var k=I(P()),i,a,l,h=(function(e){if(!e||e.length==0)return{};for(var r={},t=0;t<e.length;++t){var o=e[t].split("=",2);o.length==1?r[o[0]]="":r[o[0]]=decodeURIComponent(o[1].replace(/\+/g," "))}return r})(window.location.search.substr(1).split("&"));function x(){typeof window.onerror=="object"&&(window.onerror=function(e,r,t,o,n){var s=e+" "+r+" "+t+":"+o+", "+n;$.get("/error?msg="+encodeURIComponent(s),"text")})}function M(){var e=!1;document.addEventListener("visibilitychange",function(r){document.visibilityState=="hidden"&&a.isRunning()?(a.pause(),e=!0):document.visibilityState=="visible"&&e&&(a.resume(),e=!1)}),$(window).on("focus",function(){e&&(a.resume(),e=!1)}),$(window).on("blur",function(){a.isRunning()&&(a.pause(),e=!0)})}async function y(e,r){if(!r){alert("No ROM found.");return}console.log(r.length+" bytes"),await a.loadROM(e,r),a.resume()}function R(){return $("#emulator").find("canvas")}function E(e,r,t){w("gif.js/dist/gif.js").then(()=>{var o=R()[0];if(!o){alert("Could not find canvas element to record video!");return}var n=0;o.style&&o.style.transform&&(o.style.transform.indexOf("rotate(-90deg)")>=0?n=-1:o.style.transform.indexOf("rotate(90deg)")>=0&&(n=1));var s=new GIF({workerScript:"gif.js/dist/gif.worker.js",workers:4,quality:10,rotate:n});s.on("finished",function(C){console.log("finished encoding GIF"),t(C)}),e=e||100+(Math.random()*256&3),r=r||100+(Math.random()*256&15);var f=0;console.log("Recording video",o);var d=()=>{f++>r?(console.log("Rendering video"),s.render()):(s.addFrame(o,{delay:e,copy:!0}),setTimeout(d,e))};d()})}async function S(e){if(!c[i])throw Error("Invalid platform '"+i+"'.");a=new c[i]($("#emuscreen")[0]),await a.start(),e.rec&&R().on("focus",()=>{a.resume()});var r=e.n||"Game",t,o=e.url,n=e.r;if(o)return console.log(o),g(o,f=>{y(r,f)},"arraybuffer"),!0;if(n){var s=m(atob(n));t=new u().decode(s)}return M(),y(r,t),!0}async function b(e){if(e.data&&(e=e.data),i=e.p,!i)throw new Error("No platform variable!");try{var r=await v(p(i));console.log("starting platform",i),await S(e)}catch(t){console.log(t),alert('Platform "'+i+'" not supported.')}}function F(){x(),h.p&&b(h)}window.addEventListener("message",O,!1);function O(e){if(e.data){var r=e.data.cmd;if(r=="start"&&!a)b(e);else if(r=="reset")a.reset(),l.reset();else if(r=="getReplay"){var t={frameCount:l.frameCount,checkpoints:l.checkpoints,framerecs:l.framerecs,checkpointInterval:l.checkpointInterval,maxCheckpoints:l.maxCheckpoints};e.source.postMessage({ack:r,replay:t},e.origin)}else if(r=="watchState"){var o=new Function("platform","state",e.data.fn);l.callbackNewCheckpoint=n=>{e.source.postMessage({ack:r,state:o(a,n)},e.origin)}}else r=="recordVideo"?E(e.data.intervalMsec,e.data.maxFrames,function(n){e.data.filename&&(0,k.saveAs)(n,e.data.filename),e.source.postMessage({ack:r,gif:n},e.origin)}):console.log("Unknown data.cmd: "+r)}}self===top&&(document.body.style.backgroundColor="#555");F();export{a as platform,i as platform_id,F as startEmbed,l as stateRecorder};
import{b as v,c as P}from"./chunk-7CYBOXJ5.js";import{A as p,E as w,K as c,l as u,m,y as g}from"./chunk-ZTLOJICZ.js";import{e as I}from"./chunk-VSC4MAII.js";var k=I(P()),i,a,l,h=(function(e){if(!e||e.length==0)return{};for(var r={},t=0;t<e.length;++t){var o=e[t].split("=",2);o.length==1?r[o[0]]="":r[o[0]]=decodeURIComponent(o[1].replace(/\+/g," "))}return r})(window.location.search.substr(1).split("&"));function x(){typeof window.onerror=="object"&&(window.onerror=function(e,r,t,o,n){var s=e+" "+r+" "+t+":"+o+", "+n;$.get("/error?msg="+encodeURIComponent(s),"text")})}function M(){var e=!1;document.addEventListener("visibilitychange",function(r){document.visibilityState=="hidden"&&a.isRunning()?(a.pause(),e=!0):document.visibilityState=="visible"&&e&&(a.resume(),e=!1)}),$(window).on("focus",function(){e&&(a.resume(),e=!1)}),$(window).on("blur",function(){a.isRunning()&&(a.pause(),e=!0)})}async function y(e,r){if(!r){alert("No ROM found.");return}console.log(r.length+" bytes"),await a.loadROM(e,r),a.resume()}function R(){return $("#emulator").find("canvas")}function E(e,r,t){w("gif.js/dist/gif.js").then(()=>{var o=R()[0];if(!o){alert("Could not find canvas element to record video!");return}var n=0;o.style&&o.style.transform&&(o.style.transform.indexOf("rotate(-90deg)")>=0?n=-1:o.style.transform.indexOf("rotate(90deg)")>=0&&(n=1));var s=new GIF({workerScript:"gif.js/dist/gif.worker.js",workers:4,quality:10,rotate:n});s.on("finished",function(C){console.log("finished encoding GIF"),t(C)}),e=e||100+(Math.random()*256&3),r=r||100+(Math.random()*256&15);var f=0;console.log("Recording video",o);var d=()=>{f++>r?(console.log("Rendering video"),s.render()):(s.addFrame(o,{delay:e,copy:!0}),setTimeout(d,e))};d()})}async function S(e){if(!c[i])throw Error("Invalid platform '"+i+"'.");a=new c[i]($("#emuscreen")[0]),await a.start(),e.rec&&R().on("focus",()=>{a.resume()});var r=e.n||"Game",t,o=e.url,n=e.r;if(o)return console.log(o),g(o,f=>{y(r,f)},"arraybuffer"),!0;if(n){var s=m(atob(n));t=new u().decode(s)}return M(),y(r,t),!0}async function b(e){if(e.data&&(e=e.data),i=e.p,!i)throw new Error("No platform variable!");try{var r=await v(p(i));console.log("starting platform",i),await S(e)}catch(t){console.log(t),alert('Platform "'+i+'" not supported.')}}function F(){x(),h.p&&b(h)}window.addEventListener("message",O,!1);function O(e){if(e.data){var r=e.data.cmd;if(r=="start"&&!a)b(e);else if(r=="reset")a.reset(),l.reset();else if(r=="getReplay"){var t={frameCount:l.frameCount,checkpoints:l.checkpoints,framerecs:l.framerecs,checkpointInterval:l.checkpointInterval,maxCheckpoints:l.maxCheckpoints};e.source.postMessage({ack:r,replay:t},e.origin)}else if(r=="watchState"){var o=new Function("platform","state",e.data.fn);l.callbackNewCheckpoint=n=>{e.source.postMessage({ack:r,state:o(a,n)},e.origin)}}else r=="recordVideo"?E(e.data.intervalMsec,e.data.maxFrames,function(n){e.data.filename&&(0,k.saveAs)(n,e.data.filename),e.source.postMessage({ack:r,gif:n},e.origin)}):console.log("Unknown data.cmd: "+r)}}self===top&&(document.body.style.backgroundColor="#555");F();export{a as platform,i as platform_id,F as startEmbed,l as stateRecorder};
//# sourceMappingURL=embedui.js.map
@@ -1,2 +1,2 @@
import{H as Q,c as z,d as X,e as L,k as j,r as J}from"./chunk-MZ43WA3W.js";import"./chunk-UACHXWHT.js";import{$ as F,K as P,L as N,T as Y,Y as s,Z as q,ba as Z,ca as _}from"./chunk-ZTLOJICZ.js";import"./chunk-VSC4MAII.js";var o0=F([[s.A,0,16],[s.LEFT,0,4],[s.RIGHT,0,8],[s.P2_A,1,16],[s.P2_LEFT,1,4],[s.P2_RIGHT,1,8],[s.SELECT,0,1],[s.START,1,1],[s.VK_2,1,2]]),h0=F([[s.UP,0,-1],[s.B,0,-2],[s.VK_7,0,-4],[s.A,0,-8],[s.RIGHT,0,-16],[s.LEFT,0,-32],[s.VK_6,0,-64],[s.SELECT,0,-128],[s.START,1,-128],[s.VK_2,1,-64],[s.DOWN,2,-64]]),u0=[33,71,151,8448,18176,38656,5308416,11403264],c0=function(n,b,t,r,f){var u=f.gfxBase||10240;this.missileWidth=f.missileWidth||4,this.missileOffset=f.missileOffset||0,this.showOffscreenObjects=!1,this.frameCounter=0,this.starsEnabled=0;for(var k=[],T=0;T<256;T++)k[T]=N();this.advanceFrame=function(){this.frameCounter=this.frameCounter+1&255},this.drawScanline=function(c,x){var l=x*264;if(!this.showOffscreenObjects&&(x<16||x>=240)){for(var e=0;e<264;e++)c[l+e]=4278190080;return}for(var a=l,C=0;C<32;C++)for(var I=C,s0=t[I*2],a0=t[I*2+1],D=x+s0&255,i0=D>>3<<5,o=D&7,n0=b[i0+I],A=(a0&7)<<2,m=u+(n0<<3)+o,d=n[m],v=n[m+2048],e=0;e<8;e++){var h=128>>e,p=A+(d&h?1:0)+(v&h?2:0);c[a]=r[p],a++}for(var w=7;w>=0;w--){var y=(w<<2)+64,f0=t[y],B=240-(f0-(w<3?1:0)),o=x-B;if(o>=0&&o<16){var O=t[y+3]+1;if(O==0&&!this.showOffscreenObjects)continue;var E=t[y+1],K=E&64;E&128&&(o=15-o),E&=63;var A=(t[y+2]&7)<<2,m=u+(E<<5)+(o<8?o:o+8);a=l+O;for(var d=n[m],v=n[m+2048],e=0;e<8;e++){var h=128>>e,p=(d&h?1:0)+(v&h?2:0);p&&(c[K?a+15-e:a+e]=r[A+p])}for(var d=n[m+8],v=n[m+2056],e=0;e<8;e++){var h=128>>e,p=(d&h?1:0)+(v&h?2:0);p&&(c[K?a+7-e:a+e+8]=r[A+p])}}}for(var G=255,W=255,i=0;i<8;i++){var B=t[96+(i<<2)+1];(B+x-(i<3?1:0)&255)==255&&(i!=7?G=i:W=i)}for(var e=0;e<2;e++)if(i=e?W:G,i!=255)for(var O=255-t[96+(i<<2)+3],a=l+O-this.missileOffset,x0=i==7?4294967040:4294967295,H=0;H<this.missileWidth;H++)c[a++]=x0;if(this.starsEnabled){var V=this.frameCounter+k[x&255]&255;if(V+x&16){var a=l+V;(c[a]&16777215)==0&&(c[a]=r[x&31])}}}},t0=18432e3,m0=264,r0=t0/6,e0=t0/3/192/2,p0=e0/132/2,y0=1/p0*(20/132),l0=r0/e0,M=8,$=2,d0=60*m0,g=class extends J{constructor(){super();this.options={};this.palBase=14336;this.keyMap=o0;this.cpuFrequency=r0;this.canvasWidth=264;this.numTotalScanlines=264;this.numVisibleScanlines=264;this.defaultROMSize=16384;this.sampleRate=d0*$;this.cpuCyclesPerLine=l0|0;this.rotate=90;this.cpu=new z;this.ram=new Uint8Array(2048);this.vram=new Uint8Array(1024);this.oram=new Uint8Array(256);this.watchdog_counter=0;this.interruptEnabled=0;this.defaultInputs=[14,8,0];this.read=_([[0,16383,0,t=>this.rom?this.rom[t]:null],[16384,18431,1023,t=>this.ram[t]],[20480,22527,1023,t=>this.vram[t]],[22528,24575,255,t=>this.oram[t]],[24576,24576,0,t=>this.inputs[0]],[26624,26624,0,t=>this.inputs[1]],[28672,28672,0,t=>this.inputs[2]],[30720,30720,0,t=>{this.watchdog_counter=M}]]);this.write=_([[16384,18431,1023,(t,r)=>{this.ram[t]=r}],[20480,22527,1023,(t,r)=>{this.vram[t]=r}],[22528,24575,255,(t,r)=>{this.oram[t]=r}],[28673,28673,0,(t,r)=>{this.interruptEnabled=r&1}],[28676,28676,0,(t,r)=>{this.gfx.starsEnabled=r&1}]]);var t=new X;this.psg1=new L(t),this.psg2=new L(t),this.audioadapter=new j([this.psg1.psg,this.psg2.psg],$,this.sampleRate),this.init()}init(){this.rom=new Uint8Array(this.defaultROMSize),this.palette=new Uint32Array(new ArrayBuffer(128)),this.gfx=new c0(this.rom,this.vram,this.oram,this.palette,this.options),this.connectCPUMemoryBus(this),this.connectCPUIOBus(this.newIOBus()),this.inputs.set(this.defaultInputs),this.handler=q(this.inputs,this.keyMap)}readConst(t){return t<28672?this.read(t):null}newIOBus(){return{read:t=>0,write:(t,r)=>{t&1&&this.psg1.selectRegister(r&15),t&2&&this.psg1.setData(r),t&4&&this.psg2.selectRegister(r&15),t&8&&this.psg2.setData(r)}}}reset(){super.reset(),this.psg1.reset(),this.psg2.reset(),this.watchdog_counter=M}startScanline(){this.audio&&this.audioadapter&&this.audioadapter.generate(this.audio)}drawScanline(){this.gfx.drawScanline(this.pixels,this.scanline)}advanceFrame(t){var r=super.advanceFrame(t);if(this.gfx.advanceFrame(),!this.gfx.showOffscreenObjects)for(var f=0;f<264;f++)this.pixels.fill(4278190080,256+f*264,264+f*264);if(this.watchdog_counter--<=0)throw new Y("WATCHDOG FIRED");return this.interruptEnabled&&this.cpu.NMI(),r}loadROM(t){this.rom.set(Z(t,this.defaultROMSize));for(var r=0;r<32;r++){var f=this.rom[this.palBase+r];this.palette[r]=4278190080;for(var u=0;u<8;u++)1<<u&f&&(this.palette[r]+=u0[u])}}loadState(t){super.loadState(t),this.vram.set(t.bv),this.oram.set(t.bo),this.watchdog_counter=t.wdc,this.interruptEnabled=t.ie,this.gfx.starsEnabled=t.se,this.gfx.frameCounter=t.fc}saveState(){var t=super.saveState();return t.bv=this.vram.slice(0),t.bo=this.oram.slice(0),t.fc=this.gfx.frameCounter,t.ie=this.interruptEnabled,t.se=this.gfx.starsEnabled,t.wdc=this.watchdog_counter,t}},S=class extends g{constructor(){super();this.defaultROMSize=20512;this.palBase=20480;this.scramble=!0Line truncated
//# sourceMappingURL=galaxian-5K5GYCNO.js.map
import{H as Q,c as z,d as X,e as L,k as j,r as J}from"./chunk-MZ43WA3W.js";import"./chunk-UACHXWHT.js";import{$ as F,K as B,L as N,T as Y,Y as s,Z as q,ba as Z,ca as _}from"./chunk-ZTLOJICZ.js";import"./chunk-VSC4MAII.js";var o0=F([[s.A,0,16],[s.LEFT,0,4],[s.RIGHT,0,8],[s.P2_A,1,16],[s.P2_LEFT,1,4],[s.P2_RIGHT,1,8],[s.SELECT,0,1],[s.START,1,1],[s.VK_2,1,2]]),h0=F([[s.UP,0,-1],[s.B,0,-2],[s.VK_7,0,-4],[s.A,0,-8],[s.RIGHT,0,-16],[s.LEFT,0,-32],[s.VK_6,0,-64],[s.SELECT,0,-128],[s.START,1,-128],[s.VK_2,1,-64],[s.DOWN,2,-64]]),u0=[33,71,151,8448,18176,38656,5308416,11403264],c0=function(n,b,t,e,f){var u=f.gfxBase||10240;this.missileWidth=f.missileWidth||4,this.missileOffset=f.missileOffset||0,this.showOffscreenObjects=!1,this.frameCounter=0,this.starsEnabled=0;for(var k=[],T=0;T<256;T++)k[T]=N();this.advanceFrame=function(){this.frameCounter=this.frameCounter+1&255},this.drawScanline=function(c,x){var l=x*264;if(!this.showOffscreenObjects&&(x<16||x>=240)){for(var r=0;r<264;r++)c[l+r]=4278190080;return}for(var a=l,C=0;C<32;C++)for(var I=C,s0=t[I*2],a0=t[I*2+1],D=x+s0&255,i0=D>>3<<5,o=D&7,n0=b[i0+I],A=(a0&7)<<2,m=u+(n0<<3)+o,d=n[m],v=n[m+2048],r=0;r<8;r++){var h=128>>r,p=A+(d&h?1:0)+(v&h?2:0);c[a]=e[p],a++}for(var w=7;w>=0;w--){var y=(w<<2)+64,f0=t[y],P=240-(f0-(w<3?1:0)),o=x-P;if(o>=0&&o<16){var O=t[y+3]+1;if(O==0&&!this.showOffscreenObjects)continue;var E=t[y+1],K=E&64;E&128&&(o=15-o),E&=63;var A=(t[y+2]&7)<<2,m=u+(E<<5)+(o<8?o:o+8);a=l+O;for(var d=n[m],v=n[m+2048],r=0;r<8;r++){var h=128>>r,p=(d&h?1:0)+(v&h?2:0);p&&(c[K?a+15-r:a+r]=e[A+p])}for(var d=n[m+8],v=n[m+2056],r=0;r<8;r++){var h=128>>r,p=(d&h?1:0)+(v&h?2:0);p&&(c[K?a+7-r:a+r+8]=e[A+p])}}}for(var G=255,W=255,i=0;i<8;i++){var P=t[96+(i<<2)+1];(P+x-(i<3?1:0)&255)==255&&(i!=7?G=i:W=i)}for(var r=0;r<2;r++)if(i=r?W:G,i!=255)for(var O=255-t[96+(i<<2)+3],a=l+O-this.missileOffset,x0=i==7?4294967040:4294967295,H=0;H<this.missileWidth;H++)c[a++]=x0;if(this.starsEnabled){var V=this.frameCounter+k[x&255]&255;if(V+x&16){var a=l+V;(c[a]&16777215)==0&&(c[a]=e[x&31])}}}},t0=18432e3,m0=264,e0=t0/6,r0=t0/3/192/2,p0=r0/132/2,O0=1/p0*(20/132),l0=e0/r0,M=8,$=2,d0=60*m0,g=class extends J{constructor(){super();this.options={};this.palBase=14336;this.keyMap=o0;this.cpuFrequency=e0;this.canvasWidth=264;this.numTotalScanlines=264;this.numVisibleScanlines=264;this.defaultROMSize=16384;this.sampleRate=d0*$;this.cpuCyclesPerLine=l0|0;this.rotate=90;this.cpu=new z;this.ram=new Uint8Array(2048);this.vram=new Uint8Array(1024);this.oram=new Uint8Array(256);this.watchdog_counter=0;this.interruptEnabled=0;this.defaultInputs=[14,8,0];this.read=_([[0,16383,0,t=>this.rom?this.rom[t]:null],[16384,18431,1023,t=>this.ram[t]],[20480,22527,1023,t=>this.vram[t]],[22528,24575,255,t=>this.oram[t]],[24576,24576,0,t=>this.inputs[0]],[26624,26624,0,t=>this.inputs[1]],[28672,28672,0,t=>this.inputs[2]],[30720,30720,0,t=>{this.watchdog_counter=M}]]);this.write=_([[16384,18431,1023,(t,e)=>{this.ram[t]=e}],[20480,22527,1023,(t,e)=>{this.vram[t]=e}],[22528,24575,255,(t,e)=>{this.oram[t]=e}],[28673,28673,0,(t,e)=>{this.interruptEnabled=e&1}],[28676,28676,0,(t,e)=>{this.gfx.starsEnabled=e&1}]]);var t=new X;this.psg1=new L(t),this.psg2=new L(t),this.audioadapter=new j([this.psg1.psg,this.psg2.psg],$,this.sampleRate),this.init()}init(){this.rom=new Uint8Array(this.defaultROMSize),this.palette=new Uint32Array(new ArrayBuffer(128)),this.gfx=new c0(this.rom,this.vram,this.oram,this.palette,this.options),this.connectCPUMemoryBus(this),this.connectCPUIOBus(this.newIOBus()),this.inputs.set(this.defaultInputs),this.handler=q(this.inputs,this.keyMap)}readConst(t){return t<28672?this.read(t):null}newIOBus(){return{read:t=>0,write:(t,e)=>{t&1&&this.psg1.selectRegister(e&15),t&2&&this.psg1.setData(e),t&4&&this.psg2.selectRegister(e&15),t&8&&this.psg2.setData(e)}}}reset(){super.reset(),this.psg1.reset(),this.psg2.reset(),this.watchdog_counter=M}startScanline(){this.audio&&this.audioadapter&&this.audioadapter.generate(this.audio)}drawScanline(){this.gfx.drawScanline(this.pixels,this.scanline)}advanceFrame(t){var e=super.advanceFrame(t);if(this.gfx.advanceFrame(),!this.gfx.showOffscreenObjects)for(var f=0;f<264;f++)this.pixels.fill(4278190080,256+f*264,264+f*264);if(this.watchdog_counter--<=0)throw new Y("WATCHDOG FIRED");return this.interruptEnabled&&this.cpu.NMI(),e}loadROM(t){this.rom.set(Z(t,this.defaultROMSize));for(var e=0;e<32;e++){var f=this.rom[this.palBase+e];this.palette[e]=4278190080;for(var u=0;u<8;u++)1<<u&f&&(this.palette[e]+=u0[u])}}loadState(t){super.loadState(t),this.vram.set(t.bv),this.oram.set(t.bo),this.watchdog_counter=t.wdc,this.interruptEnabled=t.ie,this.gfx.starsEnabled=t.se,this.gfx.frameCounter=t.fc}saveState(){var t=super.saveState();return t.bv=this.vram.slice(0),t.bo=this.oram.slice(0),t.fc=this.gfx.frameCounter,t.ie=this.interruptEnabled,t.se=this.gfx.starsEnabled,t.wdc=this.watchdog_counter,t}},S=class extends g{constructor(){super();this.defaultROMSize=20512;this.palBase=20480;this.scramble=!0Line truncated
//# sourceMappingURL=galaxian-W5PTII5G.js.map
@@ -1,7 +1,7 @@
{
"version": 3,
"sources": ["../src/machine/galaxian.ts", "../src/platform/galaxian.ts"],
"sourcesContent": ["\nimport { Z80, Z80State } from \"../common/cpu/ZilogZ80\";\nimport { BasicScanlineMachine } from \"../common/devices\";\nimport { KeyFlags, newAddressDecoder, padBytes, noise, Keys, makeKeycodeMap, newKeyboardHandler, EmuHalt } from \"../common/emu\";\nimport { TssChannelAdapter, MasterAudio, AY38910_Audio } from \"../common/audio\";\nimport { hex } from \"../common/util\";\n\nconst GALAXIAN_KEYCODE_MAP = makeKeycodeMap([\n [Keys.A, 0, 0x10], // P1\n [Keys.LEFT, 0, 0x4],\n [Keys.RIGHT, 0, 0x8],\n [Keys.P2_A, 1, 0x10], // P2\n [Keys.P2_LEFT, 1, 0x4],\n [Keys.P2_RIGHT, 1, 0x8],\n [Keys.SELECT, 0, 0x1],\n [Keys.START, 1, 0x1],\n [Keys.VK_2, 1, 0x2],\n]);\n\nconst SCRAMBLE_KEYCODE_MAP = makeKeycodeMap([\n [Keys.UP, 0, -0x1], // P1\n [Keys.B, 0, -0x2], // fire\n [Keys.VK_7, 0, -0x4], // credit\n [Keys.A, 0, -0x8], // bomb\n [Keys.RIGHT, 0, -0x10],\n [Keys.LEFT, 0, -0x20],\n [Keys.VK_6, 0, -0x40],\n [Keys.SELECT, 0, -0x80],\n [Keys.START, 1, -0x80],\n [Keys.VK_2, 1, -0x40],\n [Keys.DOWN, 2, -0x40],\n //[Keys.VK_UP, 2, -0x10],\n]);\n\nconst bitcolors = [\n 0x000021, 0x000047, 0x000097, // red\n 0x002100, 0x004700, 0x009700, // green\n 0x510000, 0xae0000 // blue\n];\n\nconst GalaxianVideo = function (rom: Uint8Array, vram: Uint8Array, oram: Uint8Array, palette: Uint32Array, options) {\n\n var gfxBase = options.gfxBase || 0x2800;\n this.missileWidth = options.missileWidth || 4;\n this.missileOffset = options.missileOffset || 0;\n this.showOffscreenObjects = false;\n this.frameCounter = 0;\n this.starsEnabled = 0;\n var stars = [];\n for (var i = 0; i < 256; i++)\n stars[i] = noise();\n\n this.advanceFrame = function () {\n this.frameCounter = (this.frameCounter + 1) & 0xff;\n }\n\n this.drawScanline = function (pixels, sl) {\n var pixofs = sl * 264;\n // hide offscreen on left + right (b/c rotated)\n if (!this.showOffscreenObjects && (sl < 16 || sl >= 240)) {\n for (var i = 0; i < 264; i++)\n pixels[pixofs + i] = 0xff000000;\n return; // offscreen\n }\n // draw tiles\n var outi = pixofs; // starting output pixel in frame buffer\n for (var xx = 0; xx < 32; xx++) {\n var xofs = xx;\n var scroll = oram[xofs * 2]; // even entries control scroll position\n var attrib = oram[xofs * 2 + 1]; // odd entries control the color base\n var sl2 = (sl + scroll) & 0xff;\n var vramofs = (sl2 >> 3) << 5; // offset in VRAM\n var yy = sl2 & 7; // y offset within tile\n var tile = vram[vramofs + xofs]; // TODO: why undefined?\n var color0 = (attrib & 7) << 2;\n var addr = gfxBase + (tile << 3) + yy;\n var data1 = rom[addr];\n var data2 = rom[addr + 0x800];\n for (var i = 0; i < 8; i++) {\n var bm = 128 >> i;\n var color = color0 + ((data1 & bm) ? 1 : 0) + ((data2 & bm) ? 2 : 0);\n pixels[outi] = palette[color];\n outi++;\n }\n }\n // draw sprites\n for (var sprnum = 7; sprnum >= 0; sprnum--) {\n var base = (sprnum << 2) + 0x40;\n var base0 = oram[base];\n var sy = 240 - (base0 - ((sprnum < 3) ? 1 : 0)); // the first three sprites match against y-1\n var yy = (sl - sy);\n if (yy >= 0 && yy < 16) {\n var sx = oram[base + 3] + 1; // +1 pixel offset from tiles\n if (sx == 0 && !this.showOffscreenObjects) {\n continue; // drawn off-buffer\n }\n var code = oram[base + 1];\n var flipx = code & 0x40; // TODO: flipx\n if (code & 0x80) // flipy\n yy = 15 - yy;\n code &= 0x3f;\n var color0 = (oram[base + 2] & 7) << 2;\n var addr = gfxBase + (code << 5) + (yy < 8 ? yy : yy + 8);\n outi = pixofs + sx; //<< 1\n var data1 = rom[addr];\n var data2 = rom[addr + 0x800];\n for (var i = 0; i < 8; i++) {\n var bm = 128 >> i;\n var color = ((data1 & bm) ? 1 : 0) + ((data2 & bm) ? 2 : 0);\n if (color)\n pixels[flipx ? (outi + 15 - i) : (outi + i)] = palette[color0 + color];\n }\n var data1 = rom[addr + 8];\n var data2 = rom[addr + 0x808];\n for (var i = 0; i < 8; i++) {\n var bm = 128 >> i;\n var color = ((data1 & bm) ? 1 : 0) + ((data2 & bm) ? 2 : 0);\n if (color)\n pixels[flipx ? (outi + 7 - i) : (outi + i + 8)] = palette[color0 + color];\n }\n }\n }\n // draw bLine truncated
"mappings": "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 truncated
"names": ["GALAXIAN_KEYCODE_MAP", "makeKeycodeMap", "Keys", "SCRAMBLE_KEYCODE_MAP", "bitcolors", "GalaxianVideo", "rom", "vram", "oram", "palette", "options", "gfxBase", "stars", "i", "noise", "pixels", "sl", "pixofs", "outi", "xx", "xofs", "scroll", "attrib", "sl2", "vramofs", "yy", "tile", "color0", "addr", "data1", "data2", "bm", "color", "sprnum", "base", "base0", "sy", "sx", "code", "flipx", "shell", "missile", "which", "col", "j", "starx", "XTAL", "scanlinesPerFrame", "cpuFrequency", "hsyncFrequency", "vsyncFrequency", "vblankDuration", "cpuCyclesPerLine", "INITIAL_WATCHDOG", "audioOversample", "audioSampleRate", "GalaxianMachine", "BasicScanlineMachine", "Z80", "newAddressDecoder", "a", "v", "audio", "MasterAudio", "AY38910_Audio", "TssChannelAdapter", "newKeyboardHandler", "val", "trap", "steps", "EmuHalt", "data", "padBytes", "b", "state", "GalaxianScrambleMachine", "bit", "GalaxianPlatform", "BaseZ80MachinePlatform", "GalaxianMachine", "a", "GalaxianScramblePlatform", "GalaxianScrambleMachine", "PLATFORMS"]
"sourcesContent": ["\nimport { Z80, Z80State } from \"../common/cpu/ZilogZ80\";\nimport { BasicScanlineMachine } from \"../common/devices\";\nimport { KeyFlags, newAddressDecoder, padBytes, noise, Keys, makeKeycodeMap, newKeyboardHandler, EmuHalt } from \"../common/emu\";\nimport { TssChannelAdapter, MasterAudio, AY38910_Audio } from \"../common/audio\";\nimport { hex } from \"../common/util\";\n\nconst GALAXIAN_KEYCODE_MAP = makeKeycodeMap([\n [Keys.A, 0, 0x10], // P1\n [Keys.LEFT, 0, 0x4],\n [Keys.RIGHT, 0, 0x8],\n [Keys.P2_A, 1, 0x10], // P2\n [Keys.P2_LEFT, 1, 0x4],\n [Keys.P2_RIGHT, 1, 0x8],\n [Keys.SELECT, 0, 0x1],\n [Keys.START, 1, 0x1],\n [Keys.VK_2, 1, 0x2],\n]);\n\nconst SCRAMBLE_KEYCODE_MAP = makeKeycodeMap([\n [Keys.UP, 0, -0x1], // P1\n [Keys.B, 0, -0x2], // fire\n [Keys.VK_7, 0, -0x4], // credit\n [Keys.A, 0, -0x8], // bomb\n [Keys.RIGHT, 0, -0x10],\n [Keys.LEFT, 0, -0x20],\n [Keys.VK_6, 0, -0x40],\n [Keys.SELECT, 0, -0x80],\n [Keys.START, 1, -0x80],\n [Keys.VK_2, 1, -0x40],\n [Keys.DOWN, 2, -0x40],\n //[Keys.VK_UP, 2, -0x10],\n]);\n\nconst bitcolors = [\n 0x000021, 0x000047, 0x000097, // red\n 0x002100, 0x004700, 0x009700, // green\n 0x510000, 0xae0000 // blue\n];\n\nconst GalaxianVideo = function (rom: Uint8Array, vram: Uint8Array, oram: Uint8Array, palette: Uint32Array, options) {\n\n var gfxBase = options.gfxBase || 0x2800;\n this.missileWidth = options.missileWidth || 4;\n this.missileOffset = options.missileOffset || 0;\n this.showOffscreenObjects = false;\n this.frameCounter = 0;\n this.starsEnabled = 0;\n var stars = [];\n for (var i = 0; i < 256; i++)\n stars[i] = noise();\n\n this.advanceFrame = function () {\n this.frameCounter = (this.frameCounter + 1) & 0xff;\n }\n\n this.drawScanline = function (pixels, sl) {\n var pixofs = sl * 264;\n // hide offscreen on left + right (b/c rotated)\n if (!this.showOffscreenObjects && (sl < 16 || sl >= 240)) {\n for (var i = 0; i < 264; i++)\n pixels[pixofs + i] = 0xff000000;\n return; // offscreen\n }\n // draw tiles\n var outi = pixofs; // starting output pixel in frame buffer\n for (var xx = 0; xx < 32; xx++) {\n var xofs = xx;\n var scroll = oram[xofs * 2]; // even entries control scroll position\n var attrib = oram[xofs * 2 + 1]; // odd entries control the color base\n var sl2 = (sl + scroll) & 0xff;\n var vramofs = (sl2 >> 3) << 5; // offset in VRAM\n var yy = sl2 & 7; // y offset within tile\n var tile = vram[vramofs + xofs]; // TODO: why undefined?\n var color0 = (attrib & 7) << 2;\n var addr = gfxBase + (tile << 3) + yy;\n var data1 = rom[addr];\n var data2 = rom[addr + 0x800];\n for (var i = 0; i < 8; i++) {\n var bm = 128 >> i;\n var color = color0 + ((data1 & bm) ? 1 : 0) + ((data2 & bm) ? 2 : 0);\n pixels[outi] = palette[color];\n outi++;\n }\n }\n // draw sprites\n for (var sprnum = 7; sprnum >= 0; sprnum--) {\n var base = (sprnum << 2) + 0x40;\n var base0 = oram[base];\n var sy = 240 - (base0 - ((sprnum < 3) ? 1 : 0)); // the first three sprites match against y-1\n var yy = (sl - sy);\n if (yy >= 0 && yy < 16) {\n var sx = oram[base + 3] + 1; // +1 pixel offset from tiles\n if (sx == 0 && !this.showOffscreenObjects) {\n continue; // drawn off-buffer\n }\n var code = oram[base + 1];\n var flipx = code & 0x40; // TODO: flipx\n if (code & 0x80) // flipy\n yy = 15 - yy;\n code &= 0x3f;\n var color0 = (oram[base + 2] & 7) << 2;\n var addr = gfxBase + (code << 5) + (yy < 8 ? yy : yy + 8);\n outi = pixofs + sx; //<< 1\n var data1 = rom[addr];\n var data2 = rom[addr + 0x800];\n for (var i = 0; i < 8; i++) {\n var bm = 128 >> i;\n var color = ((data1 & bm) ? 1 : 0) + ((data2 & bm) ? 2 : 0);\n if (color)\n pixels[flipx ? (outi + 15 - i) : (outi + i)] = palette[color0 + color];\n }\n var data1 = rom[addr + 8];\n var data2 = rom[addr + 0x808];\n for (var i = 0; i < 8; i++) {\n var bm = 128 >> i;\n var color = ((data1 & bm) ? 1 : 0) + ((data2 & bm) ? 2 : 0);\n if (color)\n pixels[flipx ? (outi + 7 - i) : (outi + i + 8)] = palette[color0 + color];\n }\n }\n }\n // draw bLine truncated
"mappings": "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 truncated
"names": ["GALAXIAN_KEYCODE_MAP", "makeKeycodeMap", "Keys", "SCRAMBLE_KEYCODE_MAP", "bitcolors", "GalaxianVideo", "rom", "vram", "oram", "palette", "options", "gfxBase", "stars", "i", "noise", "pixels", "sl", "pixofs", "outi", "xx", "xofs", "scroll", "attrib", "sl2", "vramofs", "yy", "tile", "color0", "addr", "data1", "data2", "bm", "color", "sprnum", "base", "base0", "sy", "sx", "code", "flipx", "shell", "missile", "which", "col", "j", "starx", "XTAL", "scanlinesPerFrame", "cpuFrequency", "hsyncFrequency", "vsyncFrequency", "vblankDuration", "cpuCyclesPerLine", "INITIAL_WATCHDOG", "audioOversample", "audioSampleRate", "GalaxianMachine", "BasicScanlineMachine", "Z80", "newAddressDecoder", "a", "v", "audio", "MasterAudio", "AY38910_Audio", "TssChannelAdapter", "newKeyboardHandler", "val", "trap", "steps", "EmuHalt", "data", "padBytes", "b", "state", "GalaxianScrambleMachine", "bit", "GALAXIAN_PRESETS", "GalaxianPlatform", "BaseZ80MachinePlatform", "GalaxianMachine", "a", "GalaxianScramblePlatform", "GalaxianScrambleMachine", "PLATFORMS"]
}
+1 -1
View File
@@ -2329,7 +2329,7 @@ async function startPlatform() {
// try to load last file (redirect)
var lastid = userPrefs.getLastPreset();
// load first preset file, unless we're in a repo
var defaultfile = lastid || (exports.repo_id ? null : PRESETS[0].id);
var defaultfile = lastid || (exports.repo_id ? null : (PRESETS[0] && PRESETS[0].id));
exports.qs.file = defaultfile || 'DEFAULT';
if (!defaultfile) {
(0, dialogs_1.alertError)("There is no default main file for this project. Try selecting one from the pulldown.");
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/ide/ui.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/ide/ui.ts"],"names":[],"mappings":";AACA,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiHlC,4CAEC;AACD,8CAEC;AACD,4CAEC;AACD,0CAEC;AAoLD,wCAUC;AA8cD,wDAEC;AAED,4DAEC;AAqWD,0CAGC;AAkHD,8CASC;AAsBD,0CAOC;AAwJD,wCA6BC;AA4BD,0BAgBC;AAwBD,0CAKC;AAkDD,wCAMC;AAgjBD,sCAKC;AAaD,0CASC;AA2RD,gDA8BC;AAGD,0BAwDC;AAgED,oCAEC;AAED,sCAEC;AAED,oCAEC;AAED,0CASC;AAKD,kDAMC;AAjmFD,yDAA2C;AAC3C,yDAAuI;AACvI,uCAAmE;AACnE,iDAAuD;AACvD,uCAA2C;AAC3C,iDAAuD;AACvD,yCAGwB;AACxB,iDAAqG;AACrG,mDAAsD;AAEtD,+CAAoD;AACpD,+CAAoD;AACpD,uCAA6E;AAC7E,yCAAwD;AACxD,uCAAuG;AACvG,uCAAqJ;AACrJ,yCAAsD;AACtD,+CAAwN;AACxN,iCAAsM;AACtM,uCAAoC;AACpC,+CAAuI;AACvI,oDAAuD;AACvD,sDAA6D;AAC7D,0DAA4D;AAC5D,qDAAsD;AACtD,iDAAmD;AACnD,mDAAuM;AACvM,6CAA+H;AAC/H,+CAA2E;AAC3E,6CAAwD;AACxD,iDAAoE;AACpE,uCAA2C;AAC3C,qCAAgD;AACvC,4FADA,oBAAW,OACA;AAAE,wFADA,gBAAO,OACA;AAC7B,+CAA+E;AAE/E,8DAA0F;AAC1F,uCAAwC;AA4BxC,mCAAmC;AAExB,QAAA,EAAE,GAAG,IAAA,wBAAiB,EAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAkB,CAAC;AAUlF,kBAAkB;AAElB,IAAI,UAAU,CAAC,CAAG,oCAAoC;AACtD,IAAI,aAAqB,CAAC,CAAC,sCAAsC;AACjE,IAAI,OAAO,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;AACjC,IAAI,SAAkB,CAAC;AACvB,IAAI,aAAgC,CAAC;AACrC,IAAI,UAAmB,CAAC,CAAE,6BAA6B;AACvD,IAAI,iBAAiB,GAAG,KAAK,CAAC,CAAC,yDAAyD;AACxF,IAAI,kBAA2B,CAAC,CAAC,sEAAsE;AACvG,IAAI,cAAmB,CAAC,CAAK,gCAAgC;AAC7D,IAAI,cAAsB,CAAC,CAAC,sCAAsC;AAClE,IAAI,KAAkB,CAAC,CAAG,mBAAmB;AAE7C,MAAM,UAAU,GAAG,IAAA,gBAAS,EAAC,UAAE,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,OAAO,GAAG,IAAA,gBAAS,EAAC,UAAE,CAAC,KAAK,CAAC,CAAC;AAOpC,IAAI,aAAa,CAAC,CAAE,6BAA6B;AACjD,IAAI,aAAa,CAAC,CAAE,yBAAyB;AAC7C,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,IAAI,eAAe,GAAW,IAAI,CAAC;AACnC,IAAI,gBAAgB,GAAqB,IAAI,CAAC;AAC9C,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,IAAI,aAAa,GAAG,gBAAgB,CAAC;AAErC,SAAgB,gBAAgB;IAC9B,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAgB,iBAAiB;IAC/B,OAAO,uBAAe,CAAC;AACzB,CAAC;AACD,SAAgB,gBAAgB;IAC9B,OAAO,cAAc,CAAC;AACxB,CAAC;AACD,SAAgB,eAAe;IAC7B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,iFAAiF;AAEjF,SAAS,SAAS;IAChB,mHAAmH;IACnH,OAAO,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,eAAe,GAAY;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,8CAA8C,CAAC;QAC3D,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QAC3C,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,EAAE,CAAC;AAEJ,2BAA2B;AAC3B,MAAM,SAAS;IACb,aAAa,CAAC,EAAU;QACtB,IAAI,eAAe,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,eAAO,IAAI,mBAAW,IAAI,CAAC,UAAU;gBACvC,YAAY,CAAC,OAAO,CAAC,aAAa,GAAG,mBAAW,EAAE,eAAO,CAAC,CAAC;;gBAE3D,YAAY,CAAC,UAAU,CAAC,aAAa,GAAG,mBAAW,CAAC,CAAC;YACvD,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,mBAAW,CAAC,CAAC;YACpD,YAAY,CAAC,OAAO,CAAC,WAAW,GAAG,gBAAQ,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,eAAe;QACb,IAAI,eAAe,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,OAAO,UAAE,CAAC,IAAI,CAAC;YACf,YAAY,CAAC,UAAU,CAAC,WAAW,GAAG,gBAAQ,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,aAAa;QACX,OAAO,eAAe,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,WAAW,GAAG,gBAAQ,CAAC,CAAC;IACrF,CAAC;IACD,iBAAiB;QACf,OAAO,eAAe,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/E,CAAC;IACD,aAAa,CAAC,QAAgB;QAC5B,OAAO,eAAe,IAAI,CAAC,OAAO,IAAI,QAAQ,IAAI,YAAY,CAAC,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;IACnG,CAAC;IACD,kBAAkB;QAChB,OAAO,eAAe,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACpF,CAAC;IACD,aAAa;QACX,IAAI,eAAe,IAAI,CAAC,OAAO;YAAE,YAAY,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACtF,CAAC;IACD,4DAA4D;IAC5D,0BAA0B;QACxB,OAAO,eAAe,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC1F,CAAC;IACD,sBAAsB;QACpB,IAAI,eAAe,IAAI,CAAC,OAAO;YAAE,YAAY,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;IAC5F,CAAC;CACF;AAED,IAAI,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAEhC,qDAAqD;AACrD,8EAA8E;AAC9E,oEAAoE;AACpE,0EAA0E;AAC1E,KAAK,UAAU,wBAAwB,CAAC,WAAoB,EAAE,WAAoB;IAChF,IAAI,UAAU,EAAE,CAAC;QACf,uDAAuD;QACvD,WAAW,IAAI,IAAA,mBAAS,EAAC,qHAAqH,CAAC,CAAC;QAChJ,OAAO;IACT,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,0DAA0D;QAC1D,WAAW,IAAI,IAAA,mBAAS,EAAC,0GAA0G,CAAC,CAAC;QACrI,OAAO;IACT,CAAC;IACD,IAAI,MAAM,GAAG,MAAM,IAAA,kCAAwB,GAAE,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,WAAW;QAAE,OAAO;IACzB,IAAI,MAAM,CAAC,SAAS,IAAI,WAAW;QAAE,OAAO,CAAC,iCAAiC;IAC9E,uEAAuE;IACvE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE;YAAE,OAAO;QACpD,SAAS,CAAC,sBAAsB,EAAE,CAAC;IACrC,CAAC;IACD,IAAA,mBAAS,EAAC,IAAA,iCAAuB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,IAAI,mBAAmB,GAAG,KAAK,CAAC;AAEhC,KAAK,UAAU,oBAAoB;IACjC,IAAI,mBAAmB;QAAE,OAAO;IAChC,mBAAmB,GAAG,IAAI,CAAC;IAC3B,8EAA8E;IAC9E,IAAI,MAAM,GAAG,MAAM,IAAA,kCAAwB,GAAE,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;IAC9C,IAAA,oBAAU,EAAC,IAAA,iCAAuB,EAAC,MAAM,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,qBAAqB;IAC5B,IAAI,CAAC,cAAc;QACjB,OAAO,uBAAe,CAAC,QAAQ,IAAI,KAAK,CAAC;;QAEzC,OAAO,cAAc,CAAC,KAAK,IAAI,cAAc,CAAC,IAAI,IAAI,uBAAe,CAAC,QAAQ,IAAI,KAAK,CAAC;AAC5F,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,IAAI,MAAM,GAAsB,IAAI,8BAAoB,Line truncated
+1
View File
@@ -27,6 +27,7 @@ class GalaxianPlatform extends baseplatform_1.BaseZ80MachinePlatform {
}
class GalaxianScramblePlatform extends GalaxianPlatform {
newMachine() { return new galaxian_1.GalaxianScrambleMachine(); }
getPresets() { return GALAXIAN_PRESETS; }
}
emu_1.PLATFORMS['galaxian'] = GalaxianPlatform;
emu_1.PLATFORMS['galaxian-scramble'] = GalaxianScramblePlatform;
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"galaxian.js","sourceRoot":"","sources":["../../src/platform/galaxian.ts"],"names":[],"mappings":";;AAEA,uCAA0C;AAC1C,kDAA+E;AAC/E,yDAAgE;AAEhE,MAAM,gBAAgB,GAAG;IACvB,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE;IAC1C,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE;CAC1C,CAAC;AAEF,MAAM,gBAAiB,SAAQ,qCAAuC;IAAtE;;QAME,oDAAoD;QACpD,iBAAY,GAAG;YAAa,OAAO,EAAE,IAAI,EAAC;oBACxC,EAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC;oBACrD,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC;oBACtD,EAAC,IAAI,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC;iBAC1D,EAAE,CAAA;QAAC,CAAC,CAAC;IAER,CAAC;IAXC,UAAU,KAAc,OAAO,IAAI,0BAAe,EAAE,CAAC,CAAC,CAAC;IACvD,UAAU,KAAc,OAAO,EAAE,CAAC,CAAC,CAAC;IACpC,WAAW,CAAC,CAAC,IAAW,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,eAAe,CAAC,CAAC,IAAO,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAOjG,QAAQ,KAAK,OAAO,6EAA6E,CAAA,CAAC,CAAC;CACpG;AAED,MAAM,wBAAyB,SAAQ,gBAAgB;IAErD,UAAU,KAAc,OAAO,IAAI,kCAAuB,EAAE,CAAC,CAAC,CAAC;CAEhE;AAED,eAAS,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC;AACzC,eAAS,CAAC,mBAAmB,CAAC,GAAG,wBAAwB,CAAC"}
{"version":3,"file":"galaxian.js","sourceRoot":"","sources":["../../src/platform/galaxian.ts"],"names":[],"mappings":";;AAEA,uCAA0C;AAC1C,kDAA+E;AAC/E,yDAAgE;AAEhE,MAAM,gBAAgB,GAAG;IACvB,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE;IAC1C,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE;CAC1C,CAAC;AAEF,MAAM,gBAAiB,SAAQ,qCAAuC;IAAtE;;QAME,oDAAoD;QACpD,iBAAY,GAAG;YAAa,OAAO,EAAE,IAAI,EAAC;oBACxC,EAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC;oBACrD,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC;oBACtD,EAAC,IAAI,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC;iBAC1D,EAAE,CAAA;QAAC,CAAC,CAAC;IAER,CAAC;IAXC,UAAU,KAAc,OAAO,IAAI,0BAAe,EAAE,CAAC,CAAC,CAAC;IACvD,UAAU,KAAc,OAAO,EAAE,CAAC,CAAC,CAAC;IACpC,WAAW,CAAC,CAAC,IAAW,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,eAAe,CAAC,CAAC,IAAO,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAOjG,QAAQ,KAAK,OAAO,6EAA6E,CAAA,CAAC,CAAC;CACpG;AAED,MAAM,wBAAyB,SAAQ,gBAAgB;IAErD,UAAU,KAAc,OAAO,IAAI,kCAAuB,EAAE,CAAC,CAAC,CAAC;IAC/D,UAAU,KAAc,OAAO,gBAAgB,CAAC,CAAC,CAAC;CAEnD;AAED,eAAS,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC;AACzC,eAAS,CAAC,mBAAmB,CAAC,GAAG,wBAAwB,CAAC"}
+1 -1
View File
@@ -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
"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"]
}
+25 -22
View File
@@ -130,18 +130,18 @@ const TOOL_PLATFORM_HELPURL = {
lynx: 'https://cc65.github.io/doc/lynx.html',
},
};
const CC65_PRELOADFS = {
'apple2': { preloadFS: '65-apple2' },
'c64': { preloadFS: '65-c64' },
'vic20': { preloadFS: '65-vic20' },
'nes': { preloadFS: '65-nes' },
'atari8': { preloadFS: '65-atari8' },
'vector': { preloadFS: '65-none' },
'atari7800': { preloadFS: '65-none' },
'devel': { preloadFS: '65-none' },
'vcs': { preloadFS: '65-atari2600' },
'pce': { preloadFS: '65-pce' },
'exidy': { preloadFS: '65-none' },
const CC65_WASIFS = {
'apple2': { wasiFSZip: 'cc65-fs-apple2.zip' },
'c64': { wasiFSZip: 'cc65-fs-c64.zip' },
'vic20': { wasiFSZip: 'cc65-fs-vic20.zip' },
'nes': { wasiFSZip: 'cc65-fs-nes.zip' },
'atari8': { wasiFSZip: 'cc65-fs-atari8.zip' },
'vector': { wasiFSZip: 'cc65-fs-none.zip' },
'atari7800': { wasiFSZip: 'cc65-fs-none.zip' },
'devel': { wasiFSZip: 'cc65-fs-none.zip' },
'vcs': { wasiFSZip: 'cc65-fs-atari2600.zip' },
'pce': { wasiFSZip: 'cc65-fs-pce.zip' },
'exidy': { wasiFSZip: 'cc65-fs-none.zip' },
};
//// tool registry
exports.TOOL_META = {
@@ -200,26 +200,26 @@ exports.TOOL_META = {
cc65: {
id: 'cc65', name: 'cc65', kind: 'compiler', arch: '6502',
extensions: ['.c', '.h'],
includeDirs: ['/include', '/asminc'],
includeDirs: ['/share/cc65/include', '/share/cc65/asminc'],
editorStyle: 'text/x-csrc',
helpURL: 'https://cc65.github.io/doc/cc65.html',
wasmModule: 'cc65',
version: '2.19',
defineFlag: '-D', defineInline: true,
platforms: CC65_PRELOADFS,
platforms: CC65_WASIFS,
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
ca65: {
id: 'ca65', name: 'ca65', kind: 'assembler', arch: '6502',
extensions: ['.s', '.ca65', '.inc'],
includeDirs: ['/include', '/asminc'],
includeDirs: ['/share/cc65/include', '/share/cc65/asminc'],
editorStyle: '6502',
helpURL: 'https://cc65.github.io/doc/ca65.html',
wasmModule: 'ca65',
version: '2.19',
defineFlag: '-D', defineInline: false,
platforms: CC65_PRELOADFS,
platforms: CC65_WASIFS,
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
@@ -439,7 +439,7 @@ exports.TOOL_META = {
helpURL: 'https://github.com/dmsc/fastbasic/blob/v4.4/manual.md',
wasmModule: 'fastbasic-int',
version: '4.4',
platforms: { default: { preloadFS: '65-atari8' } },
platforms: { default: { wasiFSZip: 'cc65-fs-atari8.zip' } },
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
@@ -489,9 +489,9 @@ exports.TOOL_META = {
extensions: ['.ecs'],
editorStyle: 'ecs',
platforms: {
vcs: { preloadFS: '65-atari2600' },
nes: { preloadFS: '65-nes' },
c64: { preloadFS: '65-c64' },
vcs: { wasiFSZip: 'cc65-fs-atari2600.zip' },
nes: { wasiFSZip: 'cc65-fs-nes.zip' },
c64: { wasiFSZip: 'cc65-fs-c64.zip' },
},
includePatterns: [...exports.SHARED_INCLUDE_PATTERNS, ...exports.ECS_INCLUDE_PATTERNS],
},
@@ -655,7 +655,7 @@ function getPreloadFSName(tool, platform) {
if (platform) {
// Try the exact id, then the root base id so suffixed platform ids
// (e.g. 'atari8-800', 'atari8-5200.xlmame') resolve to the shared
// filesystem registered under the root ('atari8' -> '65-atari8').
// filesystem registered under the root (e.g. 'atari8-800' -> 'atari8').
let p = meta.platforms[platform];
if (p && p.preloadFS)
return p.preloadFS;
@@ -773,7 +773,7 @@ function getIncludeDirs(tool, platform_id) {
}
/**
* Name of the shared filesystem to query for this tool's bundled files:
* either the emscripten preloadFS package name (e.g. '65-nes') or, for tools
* either the emscripten preloadFS package name (e.g. 'sdcc') or, for tools
* with a WASI filesystem zip (e.g. cc2600), 'wasi:<zipname>'.
* Undefined if the tool has no bundled filesystem.
*/
@@ -781,6 +781,9 @@ function getSharedFileSystemName(tool, platform) {
var fsName = getPreloadFSName(tool, platform);
if (fsName)
return fsName;
let config = getPlatformToolConfig(tool, platform);
if (config && config.wasiFSZip)
return 'wasi:' + config.wasiFSZip;
let meta = tool && getToolMeta(tool);
return (meta && meta.wasiFSZip) ? 'wasi:' + meta.wasiFSZip : undefined;
}
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"toolmeta.js","sourceRoot":"","sources":["../../../src/common/toolmeta.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"toolmeta.js","sourceRoot":"","sources":["../../../src/common/toolmeta.ts"],"names":[],"mappings":"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 truncated
+1 -1
View File
@@ -2329,7 +2329,7 @@ async function startPlatform() {
// try to load last file (redirect)
var lastid = userPrefs.getLastPreset();
// load first preset file, unless we're in a repo
var defaultfile = lastid || (exports.repo_id ? null : PRESETS[0].id);
var defaultfile = lastid || (exports.repo_id ? null : (PRESETS[0] && PRESETS[0].id));
exports.qs.file = defaultfile || 'DEFAULT';
if (!defaultfile) {
(0, dialogs_1.alertError)("There is no default main file for this project. Try selecting one from the pulldown.");
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../src/ide/ui.ts"],"names":[],"mappings":";AACA,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiHlC,4CAEC;AACD,8CAEC;AACD,4CAEC;AACD,0CAEC;AAoLD,wCAUC;AA8cD,wDAEC;AAED,4DAEC;AAqWD,0CAGC;AAkHD,8CASC;AAsBD,0CAOC;AAwJD,wCA6BC;AA4BD,0BAgBC;AAwBD,0CAKC;AAkDD,wCAMC;AAgjBD,sCAKC;AAaD,0CASC;AA2RD,gDA8BC;AAGD,0BAwDC;AAgED,oCAEC;AAED,sCAEC;AAED,oCAEC;AAED,0CASC;AAKD,kDAMC;AAjmFD,yDAA2C;AAC3C,yDAAuI;AACvI,uCAAmE;AACnE,iDAAuD;AACvD,uCAA2C;AAC3C,iDAAuD;AACvD,yCAGwB;AACxB,iDAAqG;AACrG,mDAAsD;AAEtD,+CAAoD;AACpD,+CAAoD;AACpD,uCAA6E;AAC7E,yCAAwD;AACxD,uCAAuG;AACvG,uCAAqJ;AACrJ,yCAAsD;AACtD,+CAAwN;AACxN,iCAAsM;AACtM,uCAAoC;AACpC,+CAAuI;AACvI,oDAAuD;AACvD,sDAA6D;AAC7D,0DAA4D;AAC5D,qDAAsD;AACtD,iDAAmD;AACnD,mDAAuM;AACvM,6CAA+H;AAC/H,+CAA2E;AAC3E,6CAAwD;AACxD,iDAAoE;AACpE,uCAA2C;AAC3C,qCAAgD;AACvC,4FADA,oBAAW,OACA;AAAE,wFADA,gBAAO,OACA;AAC7B,+CAA+E;AAE/E,8DAA0F;AAC1F,uCAAwC;AA4BxC,mCAAmC;AAExB,QAAA,EAAE,GAAG,IAAA,wBAAiB,EAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAkB,CAAC;AAUlF,kBAAkB;AAElB,IAAI,UAAU,CAAC,CAAG,oCAAoC;AACtD,IAAI,aAAqB,CAAC,CAAC,sCAAsC;AACjE,IAAI,OAAO,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;AACjC,IAAI,SAAkB,CAAC;AACvB,IAAI,aAAgC,CAAC;AACrC,IAAI,UAAmB,CAAC,CAAE,6BAA6B;AACvD,IAAI,iBAAiB,GAAG,KAAK,CAAC,CAAC,yDAAyD;AACxF,IAAI,kBAA2B,CAAC,CAAC,sEAAsE;AACvG,IAAI,cAAmB,CAAC,CAAK,gCAAgC;AAC7D,IAAI,cAAsB,CAAC,CAAC,sCAAsC;AAClE,IAAI,KAAkB,CAAC,CAAG,mBAAmB;AAE7C,MAAM,UAAU,GAAG,IAAA,gBAAS,EAAC,UAAE,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,OAAO,GAAG,IAAA,gBAAS,EAAC,UAAE,CAAC,KAAK,CAAC,CAAC;AAOpC,IAAI,aAAa,CAAC,CAAE,6BAA6B;AACjD,IAAI,aAAa,CAAC,CAAE,yBAAyB;AAC7C,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,IAAI,eAAe,GAAW,IAAI,CAAC;AACnC,IAAI,gBAAgB,GAAqB,IAAI,CAAC;AAC9C,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,IAAI,aAAa,GAAG,gBAAgB,CAAC;AAErC,SAAgB,gBAAgB;IAC9B,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAgB,iBAAiB;IAC/B,OAAO,uBAAe,CAAC;AACzB,CAAC;AACD,SAAgB,gBAAgB;IAC9B,OAAO,cAAc,CAAC;AACxB,CAAC;AACD,SAAgB,eAAe;IAC7B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,iFAAiF;AAEjF,SAAS,SAAS;IAChB,mHAAmH;IACnH,OAAO,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,eAAe,GAAY;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,8CAA8C,CAAC;QAC3D,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QAC3C,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,EAAE,CAAC;AAEJ,2BAA2B;AAC3B,MAAM,SAAS;IACb,aAAa,CAAC,EAAU;QACtB,IAAI,eAAe,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,eAAO,IAAI,mBAAW,IAAI,CAAC,UAAU;gBACvC,YAAY,CAAC,OAAO,CAAC,aAAa,GAAG,mBAAW,EAAE,eAAO,CAAC,CAAC;;gBAE3D,YAAY,CAAC,UAAU,CAAC,aAAa,GAAG,mBAAW,CAAC,CAAC;YACvD,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,mBAAW,CAAC,CAAC;YACpD,YAAY,CAAC,OAAO,CAAC,WAAW,GAAG,gBAAQ,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,eAAe;QACb,IAAI,eAAe,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,OAAO,UAAE,CAAC,IAAI,CAAC;YACf,YAAY,CAAC,UAAU,CAAC,WAAW,GAAG,gBAAQ,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,aAAa;QACX,OAAO,eAAe,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,WAAW,GAAG,gBAAQ,CAAC,CAAC;IACrF,CAAC;IACD,iBAAiB;QACf,OAAO,eAAe,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/E,CAAC;IACD,aAAa,CAAC,QAAgB;QAC5B,OAAO,eAAe,IAAI,CAAC,OAAO,IAAI,QAAQ,IAAI,YAAY,CAAC,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;IACnG,CAAC;IACD,kBAAkB;QAChB,OAAO,eAAe,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACpF,CAAC;IACD,aAAa;QACX,IAAI,eAAe,IAAI,CAAC,OAAO;YAAE,YAAY,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACtF,CAAC;IACD,4DAA4D;IAC5D,0BAA0B;QACxB,OAAO,eAAe,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC1F,CAAC;IACD,sBAAsB;QACpB,IAAI,eAAe,IAAI,CAAC,OAAO;YAAE,YAAY,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;IAC5F,CAAC;CACF;AAED,IAAI,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAEhC,qDAAqD;AACrD,8EAA8E;AAC9E,oEAAoE;AACpE,0EAA0E;AAC1E,KAAK,UAAU,wBAAwB,CAAC,WAAoB,EAAE,WAAoB;IAChF,IAAI,UAAU,EAAE,CAAC;QACf,uDAAuD;QACvD,WAAW,IAAI,IAAA,mBAAS,EAAC,qHAAqH,CAAC,CAAC;QAChJ,OAAO;IACT,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,0DAA0D;QAC1D,WAAW,IAAI,IAAA,mBAAS,EAAC,0GAA0G,CAAC,CAAC;QACrI,OAAO;IACT,CAAC;IACD,IAAI,MAAM,GAAG,MAAM,IAAA,kCAAwB,GAAE,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,WAAW;QAAE,OAAO;IACzB,IAAI,MAAM,CAAC,SAAS,IAAI,WAAW;QAAE,OAAO,CAAC,iCAAiC;IAC9E,uEAAuE;IACvE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE;YAAE,OAAO;QACpD,SAAS,CAAC,sBAAsB,EAAE,CAAC;IACrC,CAAC;IACD,IAAA,mBAAS,EAAC,IAAA,iCAAuB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,IAAI,mBAAmB,GAAG,KAAK,CAAC;AAEhC,KAAK,UAAU,oBAAoB;IACjC,IAAI,mBAAmB;QAAE,OAAO;IAChC,mBAAmB,GAAG,IAAI,CAAC;IAC3B,8EAA8E;IAC9E,IAAI,MAAM,GAAG,MAAM,IAAA,kCAAwB,GAAE,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;IAC9C,IAAA,oBAAU,EAAC,IAAA,iCAAuB,EAAC,MAAM,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,qBAAqB;IAC5B,IAAI,CAAC,cAAc;QACjB,OAAO,uBAAe,CAAC,QAAQ,IAAI,KAAK,CAAC;;QAEzC,OAAO,cAAc,CAAC,KAAK,IAAI,cAAc,CAAC,IAAI,IAAI,uBAAe,CAAC,QAAQ,IAAI,KAAK,CAAC;AAC5F,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,IAAI,MAAM,GAAsB,IAAI,8BAALine truncated
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../src/ide/ui.ts"],"names":[],"mappings":"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 truncated
+1
View File
@@ -27,6 +27,7 @@ class GalaxianPlatform extends baseplatform_1.BaseZ80MachinePlatform {
}
class GalaxianScramblePlatform extends GalaxianPlatform {
newMachine() { return new galaxian_1.GalaxianScrambleMachine(); }
getPresets() { return GALAXIAN_PRESETS; }
}
emu_1.PLATFORMS['galaxian'] = GalaxianPlatform;
emu_1.PLATFORMS['galaxian-scramble'] = GalaxianScramblePlatform;
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"galaxian.js","sourceRoot":"","sources":["../../../src/platform/galaxian.ts"],"names":[],"mappings":";;AAEA,uCAA0C;AAC1C,kDAA+E;AAC/E,yDAAgE;AAEhE,MAAM,gBAAgB,GAAG;IACvB,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE;IAC1C,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE;CAC1C,CAAC;AAEF,MAAM,gBAAiB,SAAQ,qCAAuC;IAAtE;;QAME,oDAAoD;QACpD,iBAAY,GAAG;YAAa,OAAO,EAAE,IAAI,EAAC;oBACxC,EAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC;oBACrD,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC;oBACtD,EAAC,IAAI,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC;iBAC1D,EAAE,CAAA;QAAC,CAAC,CAAC;IAER,CAAC;IAXC,UAAU,KAAc,OAAO,IAAI,0BAAe,EAAE,CAAC,CAAC,CAAC;IACvD,UAAU,KAAc,OAAO,EAAE,CAAC,CAAC,CAAC;IACpC,WAAW,CAAC,CAAC,IAAW,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,eAAe,CAAC,CAAC,IAAO,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAOjG,QAAQ,KAAK,OAAO,6EAA6E,CAAA,CAAC,CAAC;CACpG;AAED,MAAM,wBAAyB,SAAQ,gBAAgB;IAErD,UAAU,KAAc,OAAO,IAAI,kCAAuB,EAAE,CAAC,CAAC,CAAC;CAEhE;AAED,eAAS,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC;AACzC,eAAS,CAAC,mBAAmB,CAAC,GAAG,wBAAwB,CAAC"}
{"version":3,"file":"galaxian.js","sourceRoot":"","sources":["../../../src/platform/galaxian.ts"],"names":[],"mappings":";;AAEA,uCAA0C;AAC1C,kDAA+E;AAC/E,yDAAgE;AAEhE,MAAM,gBAAgB,GAAG;IACvB,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE;IAC1C,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE;CAC1C,CAAC;AAEF,MAAM,gBAAiB,SAAQ,qCAAuC;IAAtE;;QAME,oDAAoD;QACpD,iBAAY,GAAG;YAAa,OAAO,EAAE,IAAI,EAAC;oBACxC,EAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC;oBACrD,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC;oBACtD,EAAC,IAAI,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC;iBAC1D,EAAE,CAAA;QAAC,CAAC,CAAC;IAER,CAAC;IAXC,UAAU,KAAc,OAAO,IAAI,0BAAe,EAAE,CAAC,CAAC,CAAC;IACvD,UAAU,KAAc,OAAO,EAAE,CAAC,CAAC,CAAC;IACpC,WAAW,CAAC,CAAC,IAAW,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,eAAe,CAAC,CAAC,IAAO,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAOjG,QAAQ,KAAK,OAAO,6EAA6E,CAAA,CAAC,CAAC;CACpG;AAED,MAAM,wBAAyB,SAAQ,gBAAgB;IAErD,UAAU,KAAc,OAAO,IAAI,kCAAuB,EAAE,CAAC,CAAC,CAAC;IAC/D,UAAU,KAAc,OAAO,gBAAgB,CAAC,CAAC,CAAC;CAEnD;AAED,eAAS,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC;AACzC,eAAS,CAAC,mBAAmB,CAAC,GAAG,wBAAwB,CAAC"}
+93 -84
View File
@@ -4,11 +4,60 @@ exports.assembleCA65 = assembleCA65;
exports.linkLD65 = linkLD65;
exports.compileCC65 = compileCC65;
const toolmeta_1 = require("../../common/toolmeta");
const util_1 = require("../../common/util");
const wasishim_1 = require("../../common/wasi/wasishim");
const builder_1 = require("../builder");
const listingutils_1 = require("../listingutils");
const cc65dbg_1 = require("./cc65dbg");
const wasmutils_1 = require("../wasmutils");
const wasiutils_1 = require("../wasiutils");
// the WASI builds look for their data under share/cc65 in the per-platform
// cc65-fs-<platform>.zip, preopened at '.'
const CC65_SHARE = 'share/cc65';
const wasiModules = {};
/**
* Run cc65, ca65 or ld65 on a fresh WASI runner layered over the platform's
* cc65 filesystem. `populate` copies the step's inputs into the runner first.
* Returns the runner (for reading outputs) and its stderr lines.
*/
async function runCC65Tool(step, tool, args, populate) {
const fsname = (0, toolmeta_1.getSharedFileSystemName)('cc65', step.platform);
if (!fsname || !fsname.startsWith('wasi:'))
throw new Error("No cc65 filesystem for platform " + step.platform);
const sharefs = await (0, wasmutils_1.ensureWasiFilesystem)(fsname.substring(5));
if (!sharefs)
throw new Error("Could not load cc65 filesystem " + fsname);
if (!wasiModules[tool]) {
wasiModules[tool] = new WebAssembly.Module((0, wasmutils_1.loadWASMBinary)(tool));
}
const wasi = new wasishim_1.WASIRunner();
wasi.initSync(wasiModules[tool]);
wasi.fs.setParent(sharefs);
populate((0, wasiutils_1.wasiFSAdapter)(wasi));
wasi.addPreopenDirectory(".");
wasi.setArgs([tool, ...args]);
const errno = wasi.run();
console.log('exec', tool, args.join(' '));
const stdout = wasi.fds[1].getBytesAsString();
if (stdout)
console.log(stdout);
const stderr = wasi.fds[2].getBytesAsString().split(listingutils_1.re_crlf).filter(s => s != '');
return { wasi, errno, stderr };
}
/** Report a failed tool run that printed no parseable error message. */
function checkExitCode(tool, errno, stderr, errors) {
if (errno && !errors.length) {
errors.push({ line: 0, msg: tool + " exited with code " + errno + (stderr.length ? ": " + stderr.join('\n') : '') });
}
}
function readWASIOutput(wasi, path) {
const fd = wasi.fs.getFile(path);
if (!fd)
throw new Error("Missing output file " + path);
return fd.getBytes().slice();
}
function readWASIOutputString(wasi, path) {
return new TextDecoder().decode(readWASIOutput(wasi, path));
}
/*
000000r 1 .segment "CODE"
000000r 1 .proc _rasterWait: near
@@ -112,8 +161,7 @@ function parseCA65Listing(asmfn, code, symbols, segments, params, dbg, listings)
}
return origlines;
}
function assembleCA65(step) {
(0, wasmutils_1.loadNative)("ca65");
async function assembleCA65(step) {
var errors = [];
(0, builder_1.gatherFiles)(step, { mainFilePath: "main.s" });
var objpath = step.prefix + ".o";
@@ -125,18 +173,7 @@ function assembleCA65(step) {
}
(0, builder_1.fixParamsWithDefines)(step.path, step.params);
if ((0, builder_1.staleFiles)(step, [objpath, lstpath])) {
var objout, lstout;
var CA65 = wasmutils_1.emglobal.ca65({
instantiateWasm: (0, wasmutils_1.moduleInstFn)('ca65'),
noInitialRun: true,
//logReadFiles:true,
print: wasmutils_1.print_fn,
printErr: (0, listingutils_1.makeErrorMatcher)(errors, /(.+?):(\d+): (.+)/, 2, 3, step.path, 1),
});
var FS = CA65.FS;
(0, wasmutils_1.setupFS)(FS, '65-' + (0, util_1.getRootBasePlatform)(step.platform));
(0, builder_1.populateFiles)(step, FS);
var args = ['-v', '-g', '-I', '/share/asminc', '-o', objpath, '-l', lstpath, step.path];
var args = ['-v', '-g', '-I', CC65_SHARE + '/asminc', '-o', objpath, '-l', lstpath, step.path];
args.unshift.apply(args, ["-D", "__8BITWORKSHOP__=1"]);
if (step.mainfile) {
args.unshift.apply(args, ["-D", "__MAIN__=1"]);
@@ -148,17 +185,17 @@ function assembleCA65(step) {
.concat((0, toolmeta_1.defineArgs)('ca65', step.params.symbols && step.params.symbols.assembler))
.concat((0, toolmeta_1.extraArgsFor)('ca65', step.params.buildArgs));
args.splice(args.length - 1, 0, ...extra);
(0, wasmutils_1.execMain)(step, CA65, args);
const { wasi, errno, stderr } = await runCC65Tool(step, 'ca65', args, (fs) => (0, builder_1.populateFiles)(step, fs));
stderr.forEach((0, listingutils_1.makeErrorMatcher)(errors, /(.+?):(\d+): (.+)/, 2, 3, step.path, 1));
checkExitCode('ca65', errno, stderr, errors);
if (errors.length) {
let listings = {};
// TODO? change extension to .lst
//listings[step.path] = { lines:[], text:getWorkFileAsString(step.path) };
return { errors, listings };
}
objout = FS.readFile(objpath, { encoding: 'binary' });
lstout = FS.readFile(lstpath, { encoding: 'utf8' });
(0, builder_1.putWorkFile)(objpath, objout);
(0, builder_1.putWorkFile)(lstpath, lstout);
(0, builder_1.putWorkFile)(objpath, readWASIOutput(wasi, objpath));
(0, builder_1.putWorkFile)(lstpath, readWASIOutputString(wasi, lstpath));
}
return {
linktool: "ld65",
@@ -166,33 +203,17 @@ function assembleCA65(step) {
args: [objpath]
};
}
function linkLD65(step) {
async function linkLD65(step) {
var _a, _b, _c;
(0, wasmutils_1.loadNative)("ld65");
var params = step.params;
(0, builder_1.gatherFiles)(step);
var binpath = "main";
if ((0, builder_1.staleFiles)(step, [binpath])) {
var errors = [];
var LD65 = wasmutils_1.emglobal.ld65({
instantiateWasm: (0, wasmutils_1.moduleInstFn)('ld65'),
noInitialRun: true,
//logReadFiles:true,
print: wasmutils_1.print_fn,
printErr: function (s) { errors.push({ msg: s, line: 0 }); }
});
var FS = LD65.FS;
(0, wasmutils_1.setupFS)(FS, '65-' + (0, util_1.getRootBasePlatform)(step.platform));
(0, builder_1.populateFiles)(step, FS);
(0, builder_1.populateExtraFiles)(step, FS, params.extra_link_files);
// populate .cfg file, if it is a custom one
if (builder_1.store.hasFile(params.cfgfile)) {
(0, builder_1.populateEntry)(FS, params.cfgfile, builder_1.store.getFileEntry(params.cfgfile), null);
}
var libargs = params.libargs || [];
var cfgfile = params.cfgfile;
var args = ['--cfg-path', '/share/cfg',
'--lib-path', '/share/lib',
var args = ['--cfg-path', CC65_SHARE + '/cfg',
'--lib-path', CC65_SHARE + '/lib',
'-C', cfgfile,
'-Ln', 'main.vice',
'--dbgfile', 'main.dbg',
@@ -201,12 +222,23 @@ function linkLD65(step) {
// //#symbol ld (symbols not already merged into libargs) and //#flag ld
args.push.apply(args, (0, toolmeta_1.linkSymbolArgs)('ld65', params.symbols && params.symbols.linker));
args.push.apply(args, (0, toolmeta_1.extraArgsFor)('ld65', params.buildArgs));
(0, wasmutils_1.execMain)(step, LD65, args);
const { wasi, errno, stderr } = await runCC65Tool(step, 'ld65', args, (fs) => {
(0, builder_1.populateFiles)(step, fs);
(0, builder_1.populateExtraFiles)(step, fs, params.extra_link_files);
// populate .cfg file, if it is a custom one
if (builder_1.store.hasFile(params.cfgfile)) {
(0, builder_1.populateEntry)(fs, params.cfgfile, builder_1.store.getFileEntry(params.cfgfile), null);
}
});
// any ld65 message (even a warning) fails the build
for (let s of stderr)
errors.push({ msg: s, line: 0 });
checkExitCode('ld65', errno, stderr, errors);
if (errors.length)
return { errors: errors };
var aout = FS.readFile("main", { encoding: 'binary' });
var mapout = FS.readFile("main.map", { encoding: 'utf8' });
var viceout = FS.readFile("main.vice", { encoding: 'utf8' });
var aout = readWASIOutput(wasi, "main");
var mapout = readWASIOutputString(wasi, "main.map");
var viceout = readWASIOutputString(wasi, "main.vice");
// correct binary for PCEngine
if (step.platform == 'pce' && aout.length > 0x2000) {
// move 8 KB from end to front
@@ -236,7 +268,7 @@ function linkLD65(step) {
// symbol sizes from the linker debug file
var symbolsizes = {};
try {
let dbgsyms = (0, cc65dbg_1.parseCC65DbgSizes)(FS.readFile("main.dbg", { encoding: 'utf8' }), params.ignore_segments);
let dbgsyms = (0, cc65dbg_1.parseCC65DbgSizes)(readWASIOutputString(wasi, "main.dbg"), params.ignore_segments);
symbolsizes = dbgsyms.sizes;
// labels outside CPU address space (e.g. NES CHR) would alias real addresses
for (let name of dbgsyms.ignored)
@@ -274,7 +306,7 @@ function linkLD65(step) {
var listings = {};
for (var fn of step.files) {
if (fn.endsWith('.lst')) {
var lstout = FS.readFile(fn, { encoding: 'utf8' });
var lstout = readWASIOutputString(wasi, fn);
lstout = lstout.split('\n\n')[1] || lstout; // remove header
(0, builder_1.putWorkFile)(fn, lstout);
//const asmpath = fn.replace(/\.lst$/, '.ca65'); // TODO! could be .s
@@ -308,51 +340,17 @@ function linkLD65(step) {
};
}
}
function compileCC65(step) {
(0, wasmutils_1.loadNative)("cc65");
async function compileCC65(step) {
var params = step.params;
// stderr
var re_err1 = /(.*?):(\d+): (.+)/;
var errors = [];
var errline = 0;
function match_fn(s) {
console.log(s);
var matches = re_err1.exec(s);
if (matches) {
errline = parseInt(matches[2]);
errors.push({
line: errline,
msg: matches[3],
path: matches[1]
});
}
}
(0, builder_1.gatherFiles)(step, { mainFilePath: "main.c" });
var destpath = step.prefix + '.s';
// the link step reads these params, so they have to be settled even when
// the assembly file is up to date and nothing below runs
(0, builder_1.fixParamsWithDefines)(step.path, params);
if ((0, builder_1.staleFiles)(step, [destpath])) {
var CC65 = wasmutils_1.emglobal.cc65({
instantiateWasm: (0, wasmutils_1.moduleInstFn)('cc65'),
noInitialRun: true,
//logReadFiles:true,
print: wasmutils_1.print_fn,
printErr: match_fn,
});
var FS = CC65.FS;
(0, wasmutils_1.setupFS)(FS, '65-' + (0, util_1.getRootBasePlatform)(step.platform));
(0, builder_1.populateFiles)(step, FS, {
mainFilePath: step.path,
processFn: (path, code) => {
if (typeof code === 'string') {
code = (0, builder_1.processEmbedDirective)(code);
}
return code;
}
});
var args = [
'-I', '/share/include',
'-I', CC65_SHARE + '/include',
'-I', '.',
"-D", "__8BITWORKSHOP__",
];
@@ -368,9 +366,20 @@ function compileCC65(step) {
var customArgs = params.extra_compiler_args || ['-T', '-g', '-Oirs', '-Cl', '-W', '-pointer-sign,-no-effect'];
args = args.concat(customArgs, args);
args.push(step.path);
const runerr = (0, wasmutils_1.execToFile)(step, CC65, args, FS, destpath, errors);
if (runerr)
return runerr;
const { wasi, errno, stderr } = await runCC65Tool(step, 'cc65', args, (fs) => (0, builder_1.populateFiles)(step, fs, {
mainFilePath: step.path,
processFn: (path, code) => {
if (typeof code === 'string') {
code = (0, builder_1.processEmbedDirective)(code);
}
return code;
}
}));
stderr.forEach((0, listingutils_1.makeErrorMatcher)(errors, /(.*?):(\d+): (.+)/, 2, 3, step.path, 1));
checkExitCode('cc65', errno, stderr, errors);
if (errors.length)
return { errors };
(0, builder_1.putWorkFile)(destpath, readWASIOutputString(wasi, destpath));
}
return {
nexttool: "ca65",
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"cc65.js","sourceRoot":"","sources":["../../../../src/worker/tools/cc65.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"cc65.js","sourceRoot":"","sources":["../../../../src/worker/tools/cc65.ts"],"names":[],"mappings":"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 truncated
+12
View File
@@ -8,6 +8,7 @@ exports.unzipWASIFilesystem = unzipWASIFilesystem;
exports.loadWASIFilesystemZip = loadWASIFilesystemZip;
exports.populateWASIFiles = populateWASIFiles;
exports.runWASI = runWASI;
exports.wasiFSAdapter = wasiFSAdapter;
const jszip_1 = __importDefault(require("jszip"));
const wasishim_1 = require("../common/wasi/wasishim");
const builder_1 = require("./builder");
@@ -67,4 +68,15 @@ function runWASI(wasi, errors) {
errors.push({ line: 0, msg: "" + e });
}
}
/**
* Wrap a WASI runner's filesystem in the Emscripten FS calls the builder's
* populateFiles/populateExtraFiles/populateEntry use, so tools can share them.
*/
function wasiFSAdapter(wasi) {
return {
mkdir: (path) => wasi.fs.putDirectory(path),
writeFile: (path, data) => wasi.fs.putFile(path, data),
utime: () => { },
};
}
//# sourceMappingURL=wasiutils.js.map
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"wasiutils.js","sourceRoot":"","sources":["../../../src/worker/wasiutils.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"wasiutils.js","sourceRoot":"","sources":["../../../src/worker/wasiutils.ts"],"names":[],"mappings":"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"}
-10
View File
@@ -180,16 +180,6 @@ function loadNative(modulename) {
// mount the filesystem at /share
function setupFS(FS, name) {
var WORKERFS = FS.filesystems['WORKERFS'];
if (name === '65-vector')
name = '65-none'; // TODO
if (name === '65-atari7800')
name = '65-none'; // TODO
if (name === '65-devel')
name = '65-none'; // TODO
if (name === '65-vcs')
name = '65-atari2600'; // TODO
if (name === '65-exidy')
name = '65-none'; // TODO
if (!exports.fsMeta[name])
throw Error("No filesystem for '" + name + "'");
FS.mkdir('/share');
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"wasmutils.js","sourceRoot":"","sources":["../../../src/worker/wasmutils.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"wasmutils.js","sourceRoot":"","sources":["../../../src/worker/wasmutils.ts"],"names":[],"mappings":"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 truncated
+5 -3
View File
@@ -34,9 +34,11 @@ function setupRequireFunction() {
async function handleMessage(data) {
// preload file system
if (data.preload) {
var fs = (0, toolmeta_1.getPreloadFSName)(data.preload, data.platform);
if (fs && !wasmutils_1.fsMeta[fs])
(0, wasmutils_1.loadFilesystem)(fs);
var fs0 = splitWasiFSName((0, toolmeta_1.getSharedFileSystemName)(data.preload, data.platform) || "");
if (fs0.wasi)
await (0, wasmutils_1.ensureWasiFilesystem)(fs0.name);
else if (fs0.name && !wasmutils_1.fsMeta[fs0.name])
(0, wasmutils_1.loadFilesystem)(fs0.name);
return;
}
// read a file from a filesystem package (shared code)
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"workermain.js","sourceRoot":"","sources":["../../../src/worker/workermain.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"workermain.js","sourceRoot":"","sources":["../../../src/worker/workermain.ts"],"names":[],"mappings":"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"}
+2 -2
View File
@@ -260,8 +260,8 @@ function c64Params() {
});
(0, mocha_1.describe)("platform tool config resolution", function () {
(0, mocha_1.it)("resolves per-platform, root-base, and default configs", function () {
assert_1.default.strictEqual((0, toolmeta_1.getPlatformToolConfig)('cc65', 'nes').preloadFS, '65-nes');
assert_1.default.strictEqual((0, toolmeta_1.getPlatformToolConfig)('cc65', 'atari8-800').preloadFS, '65-atari8');
assert_1.default.strictEqual((0, toolmeta_1.getPlatformToolConfig)('cc65', 'nes').wasiFSZip, 'cc65-fs-nes.zip');
assert_1.default.strictEqual((0, toolmeta_1.getPlatformToolConfig)('cc65', 'atari8-800').wasiFSZip, 'cc65-fs-atari8.zip');
assert_1.default.strictEqual((0, toolmeta_1.getPlatformToolConfig)('sdcc').preloadFS, 'sdcc');
assert_1.default.strictEqual((0, toolmeta_1.getPlatformToolConfig)('dasm', 'nes'), undefined);
});
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"testbuildparams.js","sourceRoot":"","sources":["../../../test/unit/testbuildparams.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"testbuildparams.js","sourceRoot":"","sources":["../../../test/unit/testbuildparams.ts"],"names":[],"mappings":"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 truncated
+12 -12
View File
@@ -90,7 +90,7 @@ describe('ToolchainSource', function () {
(0, projectsource_1.setProjectProvider)(() => null);
});
it('should list and lazily search bundled header files', async function () {
(0, projectsource_1.setProjectProvider)(() => makeFs({ '/include/nes.h': NES_H, '/include/apple.h': APPLE_H }));
(0, projectsource_1.setProjectProvider)(() => makeFs({ '/share/cc65/include/nes.h': NES_H, '/share/cc65/include/apple.h': APPLE_H }));
const ts = new toolchainsource_1.ToolchainSource();
// First query triggers ready(), which lists and reads every header file
const hits = await ts.query('VBLANK', 10);
@@ -98,28 +98,28 @@ describe('ToolchainSource', function () {
const rec = hits[0].record;
assert.strictEqual(rec.kind, 'text');
assert.strictEqual(rec.source, 'toolchain');
assert.strictEqual(rec.file, '/include/nes.h');
assert.strictEqual(rec.file, '/share/cc65/include/nes.h');
assert.ok(rec.line && rec.line > 0);
// The two hash-flavored hits should both appear (each file is searched)
assert.ok(hits.some(h => h.record.file === '/include/nes.h' && h.record.name.includes('VBLANK')));
assert.ok(hits.some(h => h.record.file === '/share/cc65/include/nes.h' && h.record.name.includes('VBLANK')));
});
it('should be case-insensitive', async function () {
(0, projectsource_1.setProjectProvider)(() => makeFs({ '/include/nes.h': NES_H }));
(0, projectsource_1.setProjectProvider)(() => makeFs({ '/share/cc65/include/nes.h': NES_H }));
const ts = new toolchainsource_1.ToolchainSource();
const hits = await ts.query('vblank', 10);
assert.ok(hits.length >= 1);
});
it('should require at least 2 chars', async function () {
(0, projectsource_1.setProjectProvider)(() => makeFs({ '/include/nes.h': NES_H }));
(0, projectsource_1.setProjectProvider)(() => makeFs({ '/share/cc65/include/nes.h': NES_H }));
const ts = new toolchainsource_1.ToolchainSource();
const hits = await ts.query('x', 10);
assert.strictEqual(hits.length, 0);
});
it('should read every header before answering the first query', async function () {
const fs = makeFs({
'/include/a.h': '#define AAA 1\n',
'/include/b.h': '#define BBB 2\n',
'/include/tgi.h': '#define TGI_OK 1\n',
'/share/cc65/include/a.h': '#define AAA 1\n',
'/share/cc65/include/b.h': '#define BBB 2\n',
'/share/cc65/include/tgi.h': '#define TGI_OK 1\n',
});
(0, projectsource_1.setProjectProvider)(() => fs);
const ts = new toolchainsource_1.ToolchainSource();
@@ -129,11 +129,11 @@ describe('ToolchainSource', function () {
// otherwise results depend on how many times the user types.
const hits = await ts.query('TGI', 10);
assert.ok(hits.length >= 1, 'should index all headers on the first query');
assert.strictEqual(hits[0].record.file, '/include/tgi.h');
assert.strictEqual(hits[0].record.file, '/share/cc65/include/tgi.h');
assert.strictEqual(ts['loaded'].size, 3);
});
it('should rank matches near the start of the line higher', async function () {
(0, projectsource_1.setProjectProvider)(() => makeFs({ '/include/nes.h': NES_H }));
(0, projectsource_1.setProjectProvider)(() => makeFs({ '/share/cc65/include/nes.h': NES_H }));
const ts = new toolchainsource_1.ToolchainSource();
const hits = await ts.query('PPU', 10);
assert.ok(hits.length >= 2, 'PPU matches several lines');
@@ -146,8 +146,8 @@ describe('ToolchainSource', function () {
});
it('should skip non-searchable file types', async function () {
const ts = new toolchainsource_1.ToolchainSource();
assert.strictEqual(ts.isSearchable('/include/nes.h'), true);
assert.strictEqual(ts.isSearchable('/include/nes.o'), false);
assert.strictEqual(ts.isSearchable('/share/cc65/include/nes.h'), true);
assert.strictEqual(ts.isSearchable('/share/cc65/include/nes.o'), false);
assert.strictEqual(ts.isSearchable('/lib/binary.bin'), false);
assert.strictEqual(ts.isSearchable('/scripts/makefile'), true); // no ext
});
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"testsearchtoolchain.js","sourceRoot":"","sources":["../../../test/unit/testsearchtoolchain.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"testsearchtoolchain.js","sourceRoot":"","sources":["../../../test/unit/testsearchtoolchain.ts"],"names":[],"mappings":"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"}
+12 -10
View File
@@ -43,19 +43,21 @@ const workerlib_1 = require("../../src/worker/workerlib");
assert_1.default.deepStrictEqual((0, toolmeta_1.getToolMetaForFilename)('foo.xyz'), []);
});
(0, mocha_1.it)('getPreloadFSName resolves per-platform filesystems', function () {
assert_1.default.strictEqual((0, toolmeta_1.getPreloadFSName)('cc65', 'nes'), '65-nes');
assert_1.default.strictEqual((0, toolmeta_1.getPreloadFSName)('cc65', 'c64'), '65-c64');
assert_1.default.strictEqual((0, toolmeta_1.getPreloadFSName)('cc65', 'nonexistent'), undefined);
assert_1.default.strictEqual((0, toolmeta_1.getPreloadFSName)('cc65', 'nes'), undefined); // WASI zip, not preloadFS
assert_1.default.strictEqual((0, toolmeta_1.getSharedFileSystemName)('cc65', 'nes'), 'wasi:cc65-fs-nes.zip');
assert_1.default.strictEqual((0, toolmeta_1.getSharedFileSystemName)('cc65', 'c64'), 'wasi:cc65-fs-c64.zip');
assert_1.default.strictEqual((0, toolmeta_1.getSharedFileSystemName)('cc65', 'nonexistent'), undefined);
assert_1.default.strictEqual((0, toolmeta_1.getPreloadFSName)('sdcc'), 'sdcc'); // default config
assert_1.default.strictEqual((0, toolmeta_1.getPreloadFSName)('dasm'), undefined);
});
(0, mocha_1.it)('getPreloadFSName resolves suffixed platform ids to their root base', function () {
(0, mocha_1.it)('getSharedFileSystemName resolves suffixed platform ids to their root base', function () {
// atari8 runs as 'atari8-800' / 'atari8-5200' / *.xlmame variants
assert_1.default.strictEqual((0, toolmeta_1.getPreloadFSName)('cc65', 'atari8'), '65-atari8');
assert_1.default.strictEqual((0, toolmeta_1.getPreloadFSName)('cc65', 'atari8-800'), '65-atari8');
assert_1.default.strictEqual((0, toolmeta_1.getPreloadFSName)('cc65', 'atari8-800.xlmame'), '65-atari8');
assert_1.default.strictEqual((0, toolmeta_1.getPreloadFSName)('cc65', 'atari8-5200'), '65-atari8');
assert_1.default.strictEqual((0, toolmeta_1.getSharedFileSystemName)('cc65', 'atari8-800'), '65-atari8');
assert_1.default.strictEqual((0, toolmeta_1.getSharedFileSystemName)('cc65', 'atari8'), 'wasi:cc65-fs-atari8.zip');
assert_1.default.strictEqual((0, toolmeta_1.getSharedFileSystemName)('cc65', 'atari8-800'), 'wasi:cc65-fs-atari8.zip');
assert_1.default.strictEqual((0, toolmeta_1.getSharedFileSystemName)('cc65', 'atari8-800.xlmame'), 'wasi:cc65-fs-atari8.zip');
assert_1.default.strictEqual((0, toolmeta_1.getSharedFileSystemName)('cc65', 'atari8-5200'), 'wasi:cc65-fs-atari8.zip');
assert_1.default.strictEqual((0, toolmeta_1.getSharedFileSystemName)('fastbasic', 'atari8-800'), 'wasi:cc65-fs-atari8.zip');
assert_1.default.strictEqual((0, toolmeta_1.getSharedFileSystemName)('ecs', 'nes'), 'wasi:cc65-fs-nes.zip');
});
(0, mocha_1.it)('getSkeletonName defaults to the tool id', function () {
assert_1.default.strictEqual((0, toolmeta_1.getSkeletonName)('dasm'), 'dasm');
@@ -119,8 +121,8 @@ const workerlib_1 = require("../../src/worker/workerlib");
assert_1.default.deepStrictEqual(deps('#include "foo.h"\n', 'cc65'), []);
});
(0, mocha_1.it)('resolves shared filesystem names for all tools with includeDirs', function () {
assert_1.default.equal((0, toolmeta_1.getSharedFileSystemName)('cc65', 'nes'), 'wasi:cc65-fs-nes.zip');
// preloadFS-backed tools
assert_1.default.equal((0, toolmeta_1.getSharedFileSystemName)('cc65', 'nes'), '65-nes');
assert_1.default.equal((0, toolmeta_1.getSharedFileSystemName)('sdcc', 'coleco'), 'sdcc');
assert_1.default.equal((0, toolmeta_1.getSharedFileSystemName)('bataribasic', 'vcs'), 'wasi:bb-fs.zip');
assert_1.default.equal((0, toolmeta_1.getSharedFileSystemName)('wiz'), 'wiz');
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"testtoolmeta.js","sourceRoot":"","sources":["../../../test/unit/testtoolmeta.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"testtoolmeta.js","sourceRoot":"","sources":["../../../test/unit/testtoolmeta.ts"],"names":[],"mappings":"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 truncated
+48 -48
View File
@@ -1,30 +1,30 @@
import{a as d0}from"./chunk-NTFEI2OH.js";import{a as h0}from"./chunk-T6VURU5O.js";import{a as vc}from"./chunk-A7SWO6EA.js";import{a as u0,b as f0,c as s_}from"./chunk-2I4PZDSN.js";import{C as nf,H as sf,t as l0,u as c0}from"./chunk-MZ43WA3W.js";import"./chunk-UACHXWHT.js";import{A as cn,E as dn,F as ef,G as xo,I as wo,J as yc,K as tf,T as rf,U as o0,X as a0,a as Gn,b as Ma,d as St,da as Sc,e as La,f as zt,g as Ce,h as Ku,i as r0,k as n0,m as Oc,n as gc,o as bc,p as Cs,q as i0,t as vo,w as s0,x as Ju,y as Da,z as ir}from"./chunk-ZTLOJICZ.js";import{a as gt,b as As,c as Ra,d as Gu,e as Hu}from"./chunk-VSC4MAII.js";var af=Gu((p0,of)=>{(function(r){if(typeof p0=="object"&&typeof of!="undefined")of.exports=r();else if(typeof define=="function"&&define.amd)define([],r);else{var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e=this,e.localforage=r()}})(function(){var r,e,t;return(function n(i,s,o){function a(d,h){if(!s[d]){if(!i[d]){var u=typeof Ra=="function"&&Ra;if(!h&&u)return u(d,!0);if(l)return l(d,!0);var f=new Error("Cannot find module '"+d+"'");throw f.code="MODULE_NOT_FOUND",f}var m=s[d]={exports:{}};i[d][0].call(m.exports,function(g){var v=i[d][1][g];return a(v||g)},m,m.exports,n,i,s,o)}return s[d].exports}for(var l=typeof Ra=="function"&&Ra,c=0;c<o.length;c++)a(o[c]);return a})({1:[function(n,i,s){(function(o){"use strict";var a=o.MutationObserver||o.WebKitMutationObserver,l;if(a){var c=0,d=new a(g),h=o.document.createTextNode("");d.observe(h,{characterData:!0}),l=function(){h.data=c=++c%2}}else if(!o.setImmediate&&typeof o.MessageChannel!="undefined"){var u=new o.MessageChannel;u.port1.onmessage=g,l=function(){u.port2.postMessage(0)}}else"document"in o&&"onreadystatechange"in o.document.createElement("script")?l=function(){var k=o.document.createElement("script");k.onreadystatechange=function(){g(),k.onreadystatechange=null,k.parentNode.removeChild(k),k=null},o.document.documentElement.appendChild(k)}:l=function(){setTimeout(g,0)};var f,m=[];function g(){f=!0;for(var k,L,M=m.length;M;){for(L=m,m=[],k=-1;++k<M;)L[k]();M=m.length}f=!1}i.exports=v;function v(k){m.push(k)===1&&!f&&l()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],2:[function(n,i,s){"use strict";var o=n(1);function a(){}var l={},c=["REJECTED"],d=["FULFILLED"],h=["PENDING"];i.exports=u;function u(x){if(typeof x!="function")throw new TypeError("resolver must be a function");this.state=h,this.queue=[],this.outcome=void 0,x!==a&&v(this,x)}u.prototype.catch=function(x){return this.then(null,x)},u.prototype.then=function(x,R){if(typeof x!="function"&&this.state===d||typeof R!="function"&&this.state===c)return this;var X=new this.constructor(a);if(this.state!==h){var j=this.state===d?x:R;m(X,j,this.outcome)}else this.queue.push(new f(X,x,R));return X};function f(x,R,X){this.promise=x,typeof R=="function"&&(this.onFulfilled=R,this.callFulfilled=this.otherCallFulfilled),typeof X=="function"&&(this.onRejected=X,this.callRejected=this.otherCallRejected)}f.prototype.callFulfilled=function(x){l.resolve(this.promise,x)},f.prototype.otherCallFulfilled=function(x){m(this.promise,this.onFulfilled,x)},f.prototype.callRejected=function(x){l.reject(this.promise,x)},f.prototype.otherCallRejected=function(x){m(this.promise,this.onRejected,x)};function m(x,R,X){o(function(){var j;try{j=R(X)}catch(G){return l.reject(x,G)}j===x?l.reject(x,new TypeError("Cannot resolve promise with itself")):l.resolve(x,j)})}l.resolve=function(x,R){var X=k(g,R);if(X.status==="error")return l.reject(x,X.value);var j=X.value;if(j)v(x,j);else{x.state=d,x.outcome=R;for(var G=-1,ie=x.queue.length;++G<ie;)x.queue[G].callFulfilled(R)}return x},l.reject=function(x,R){x.state=c,x.outcome=R;for(var X=-1,j=x.queue.length;++X<j;)x.queue[X].callRejected(R);return x};function g(x){var R=x&&x.then;if(x&&(typeof x=="object"||typeof x=="function")&&typeof R=="function")return function(){R.apply(x,arguments)}}function v(x,R){var X=!1;function j(ge){X||(X=!0,l.reject(x,ge))}function G(ge){X||(X=!0,l.resolve(x,ge))}function ie(){R(G,j)}var U=k(ie);U.status==="error"&&j(U.value)}function k(x,R){var X={};try{X.value=x(R),X.status="success"}catch(j){X.status="error",X.value=j}return X}u.resolve=L;function L(x){return x instanceof this?x:l.resolve(new this(a),x)}u.reject=M;function M(x){var R=new this(a);return l.reject(R,x)}u.all=D;function D(x){var R=this;if(Object.prototype.toString.call(x)!=="[object Array]")return this.reject(new TypeError("must be an array"));var X=x.length,j=!1;if(!X)return this.resolve([]);for(var G=new Array(X),ie=0,U=-1,ge=new this(a);++U<X;)pe(x[U],U);return ge;function pe(ke,B){R.resolve(ke).then(he,function(J){j||(j=!0,l.reject(ge,J))});function he(J){G[B]=J,++ie===X&&!j&&(j=!0,l.resolve(ge,G))}}}u.race=w;function w(x){var R=this;if(Object.prototype.toString.call(x)!=="[object Array]")return this.reject(new TypeError("must be an array"));var X=xLine truncated
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xX(r,e){return yX(r)||SX(r,e)||wX(r,e)||vX()}function wX(r,e){if(r){if(typeof r=="string")return YQ(r,e);var t={}.toString.call(r).slice(8,-1);return t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set"?Array.from(r):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?YQ(r,e):void 0}}var sT=Object.entries,FQ=Object.setPrototypeOf,PX=Object.isFrozen,kX=Object.getPrototypeOf,$X=Object.getOwnPropertyDescriptor,It=Object.freeze,Ft=Object.seal,Sa=Object.create,oT=typeof Reflect!="undefined"&&Reflect,Lb=oT.apply,Db=oT.construct;It||(It=function(e){return e});Ft||(Ft=function(e){return e});Lb||(Lb=function(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];return e.apply(t,i)});Db||(Db=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return new e(...n)});var fo=Ct(Array.prototype.forEach),QX=Ct(Array.prototype.lastIndexOf),NQ=Ct(Array.prototype.pop),rc=Ct(Array.prototype.push),TX=Ct(Array.prototype.splice),va=Array.isArray,sc=Ct(String.prototype.toLowerCase),_b=Ct(String.prototype.toString),jQ=Ct(String.prototype.match),nc=Ct(String.prototype.replace),UQ=Ct(String.prototype.indexOf),_X=Ct(String.prototype.trim),AX=Ct(Number.prototype.toString),CX=Ct(Boolean.prototype.toString),qQ=typeof BigInt=="undefined"?null:Ct(BigInt.prototype.toString),GQ=typeof Symbol=="undefined"?null:Ct(Symbol.prototype.toString),Mr=Ct(Object.prototype.hasOwnProperty),ic=Ct(Object.prototype.toString),ur=Ct(RegExp.prototype.test),uo=EX(TypeError);function Ct(r){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return Lb(r,e,n)}}function EX(r){return function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return Db(r,t)}}function Ye(r,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:sc;if(FQ&&FQ(r,null),!va(e))return r;let n=e.length;for(;n--;){let i=e[n];if(typeof i=="string"){let s=t(i);s!==i&&(PX(e)||(e[n]=s),i=s)}r[i]=!0}return r}function RX(r){for(let e=0;e<r.length;e++)Mr(r,e)||(r[e]=null);return r}function en(r){let e=Sa(null);for(let n of sT(r)){var t=xX(n,2);let i=t[0],s=t[1];Mr(r,i)&&(va(s)?e[i]=RX(s):s&&typeof s=="object"&&s.constructor===Object?e[i]=en(s):e[i]=s)}return e}function MX(r){switch(typeof r){case"string":return r;case"number":return AX(r);case"boolean":return CX(r);case"bigint":return qQ?qQ(r):"0";case"symbol":return GQ?GQ(r):"Symbol()";case"undefined":return ic(r);case"function":case"object":{if(r===null)return ic(r);let e=r,t=wn(e,"toString");if(typeof t=="function"){let n=t(e);return typeof n=="string"?n:ic(n)}return ic(r)}default:return ic(r)}}function wn(r,e){for(;r!==null;){let n=$X(r,e);if(n){if(n.get)return Ct(n.get);if(typeof n.value=="function")return Ct(n.value)}r=kX(r)}function t(){return null}return t}function LX(r){try{return ur(r,""),!0}catch(e){return!1}}var HQ=It(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),Ab=It(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Cb=It(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),DX=It(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-gly Line truncated
`+Qe),yt&&(Qe=S(Qe)),G&&tr?B(Qe):Qe},e.setConfig=function(){let C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};bi(C),ne=!0,me=Se,qe=we},e.clearConfig=function(){Or=null,ne=!1,me=null,qe=null,G=U,ie=""},e.isValidAttribute=function(C,p,b){Or||bi({});let T=_e(C),I=_e(p);return Xe(T,I,b)},e.addHook=function(C,p){typeof p=="function"&&Mr(Oe,C)&&rc(Oe[C],p)},e.removeHook=function(C,p){if(Mr(Oe,C)){if(p!==void 0){let b=QX(Oe[C],p);return b===-1?void 0:TX(Oe[C],b,1)[0]}return NQ(Oe[C])}},e.removeHooks=function(C){Mr(Oe,C)&&(Oe[C]=[])},e.removeAllHooks=function(){Oe=iT()},e}var JX=lT();cT.exports=JX});var qb=Hu(af());var Es="\u2190\u2191\u2193\u2192";var wc=[{keys:[Es],action:"Joypad"},{keys:["Space"],action:"Button A"},{keys:["Shift"],action:"Button B"}],lf=[{keys:[Es],action:"Joystick"},{keys:["Space"],action:"Button 1"},{keys:["Shift"],action:"Button 2"},{keys:["\\"],action:"Coin"},{keys:["Enter"],action:"Start"}],xc=[...wc,{keys:["\\"],action:"Select"},{keys:["Enter"],action:"Start"}],m0=[{keys:[Es],action:"Joystick"},{keys:["Space"],action:"Button"}],O0={vcs:m0,c64:m0,apple2:[{keys:["Mouse"],action:"Paddles/Joystick"},{keys:["Click"],action:"Button 1"},{keys:["SHIFT-Click"],action:"Button 2"},{keys:["ALT-Click"],action:"Button 3"}],nes:xc,atari7800:xc,pce:xc,gb:xc,msx:wc,coleco:wc,sms:[...wc,{keys:["Enter"],action:"Start"}],vicdual:lf,galaxian:lf,vector:lf,mw8080bw:[{keys:["\u2190\xA0\u2192"],action:"Joystick"},{keys:["Space"],action:"Fire"}],williams:[{keys:["A W S D"],action:"Move"},{keys:[Es],action:"Fire"},{keys:["\\"],action:"Coin"},{keys:["Enter"],action:"Start"},{keys:["6 7 8 9"],action:"Extra"}],astrocade:[{keys:[Es],action:"Joystick"},{keys:["Space"],action:"Trigger"},{keys:["Mouse X"],action:"Knob"},{keys:[`U I O P
import{a as d0}from"./chunk-NTFEI2OH.js";import{a as h0}from"./chunk-T6VURU5O.js";import{a as vc}from"./chunk-A7SWO6EA.js";import{a as u0,b as f0,c as s_}from"./chunk-7CYBOXJ5.js";import{C as nf,H as sf,t as l0,u as c0}from"./chunk-MZ43WA3W.js";import"./chunk-UACHXWHT.js";import{A as Xr,E as dn,F as ef,G as xo,I as wo,J as yc,K as tf,T as rf,U as o0,X as a0,a as Gn,b as Ma,d as St,da as Sc,e as La,f as zt,g as Ce,h as Ku,i as r0,k as n0,m as Oc,n as gc,o as bc,p as Cs,q as i0,t as vo,w as s0,x as Ju,y as Da,z as sr}from"./chunk-ZTLOJICZ.js";import{a as gt,b as As,c as Ra,d as Gu,e as Hu}from"./chunk-VSC4MAII.js";var af=Gu((p0,of)=>{(function(r){if(typeof p0=="object"&&typeof of!="undefined")of.exports=r();else if(typeof define=="function"&&define.amd)define([],r);else{var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e=this,e.localforage=r()}})(function(){var r,e,t;return(function n(i,s,o){function a(d,h){if(!s[d]){if(!i[d]){var u=typeof Ra=="function"&&Ra;if(!h&&u)return u(d,!0);if(l)return l(d,!0);var f=new Error("Cannot find module '"+d+"'");throw f.code="MODULE_NOT_FOUND",f}var m=s[d]={exports:{}};i[d][0].call(m.exports,function(g){var v=i[d][1][g];return a(v||g)},m,m.exports,n,i,s,o)}return s[d].exports}for(var l=typeof Ra=="function"&&Ra,c=0;c<o.length;c++)a(o[c]);return a})({1:[function(n,i,s){(function(o){"use strict";var a=o.MutationObserver||o.WebKitMutationObserver,l;if(a){var c=0,d=new a(g),h=o.document.createTextNode("");d.observe(h,{characterData:!0}),l=function(){h.data=c=++c%2}}else if(!o.setImmediate&&typeof o.MessageChannel!="undefined"){var u=new o.MessageChannel;u.port1.onmessage=g,l=function(){u.port2.postMessage(0)}}else"document"in o&&"onreadystatechange"in o.document.createElement("script")?l=function(){var k=o.document.createElement("script");k.onreadystatechange=function(){g(),k.onreadystatechange=null,k.parentNode.removeChild(k),k=null},o.document.documentElement.appendChild(k)}:l=function(){setTimeout(g,0)};var f,m=[];function g(){f=!0;for(var k,L,M=m.length;M;){for(L=m,m=[],k=-1;++k<M;)L[k]();M=m.length}f=!1}i.exports=v;function v(k){m.push(k)===1&&!f&&l()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],2:[function(n,i,s){"use strict";var o=n(1);function a(){}var l={},c=["REJECTED"],d=["FULFILLED"],h=["PENDING"];i.exports=u;function u(x){if(typeof x!="function")throw new TypeError("resolver must be a function");this.state=h,this.queue=[],this.outcome=void 0,x!==a&&v(this,x)}u.prototype.catch=function(x){return this.then(null,x)},u.prototype.then=function(x,R){if(typeof x!="function"&&this.state===d||typeof R!="function"&&this.state===c)return this;var X=new this.constructor(a);if(this.state!==h){var j=this.state===d?x:R;m(X,j,this.outcome)}else this.queue.push(new f(X,x,R));return X};function f(x,R,X){this.promise=x,typeof R=="function"&&(this.onFulfilled=R,this.callFulfilled=this.otherCallFulfilled),typeof X=="function"&&(this.onRejected=X,this.callRejected=this.otherCallRejected)}f.prototype.callFulfilled=function(x){l.resolve(this.promise,x)},f.prototype.otherCallFulfilled=function(x){m(this.promise,this.onFulfilled,x)},f.prototype.callRejected=function(x){l.reject(this.promise,x)},f.prototype.otherCallRejected=function(x){m(this.promise,this.onRejected,x)};function m(x,R,X){o(function(){var j;try{j=R(X)}catch(G){return l.reject(x,G)}j===x?l.reject(x,new TypeError("Cannot resolve promise with itself")):l.resolve(x,j)})}l.resolve=function(x,R){var X=k(g,R);if(X.status==="error")return l.reject(x,X.value);var j=X.value;if(j)v(x,j);else{x.state=d,x.outcome=R;for(var G=-1,ie=x.queue.length;++G<ie;)x.queue[G].callFulfilled(R)}return x},l.reject=function(x,R){x.state=c,x.outcome=R;for(var X=-1,j=x.queue.length;++X<j;)x.queue[X].callRejected(R);return x};function g(x){var R=x&&x.then;if(x&&(typeof x=="object"||typeof x=="function")&&typeof R=="function")return function(){R.apply(x,arguments)}}function v(x,R){var X=!1;function j(ge){X||(X=!0,l.reject(x,ge))}function G(ge){X||(X=!0,l.resolve(x,ge))}function ie(){R(G,j)}var U=k(ie);U.status==="error"&&j(U.value)}function k(x,R){var X={};try{X.value=x(R),X.status="success"}catch(j){X.status="error",X.value=j}return X}u.resolve=L;function L(x){return x instanceof this?x:l.resolve(new this(a),x)}u.reject=M;function M(x){var R=new this(a);return l.reject(R,x)}u.all=D;function D(x){var R=this;if(Object.prototype.toString.call(x)!=="[object Array]")return this.reject(new TypeError("must be an array"));var X=x.length,j=!1;if(!X)return this.resolve([]);for(var G=new Array(X),ie=0,U=-1,ge=new this(a);++U<X;)pe(x[U],U);return ge;function pe(ke,B){R.resolve(ke).then(he,function(J){j||(j=!0,l.reject(ge,J))});function he(J){G[B]=J,++ie===X&&!j&&(j=!0,l.resolve(ge,G))}}}u.race=w;function w(x){var R=this;if(Object.prototype.toString.call(x)!=="[object Array]")return this.reject(new TypeError("must be an array"));var X=xLine truncated
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function wX(r,e){return SX(r)||vX(r,e)||PX(r,e)||xX()}function PX(r,e){if(r){if(typeof r=="string")return YQ(r,e);var t={}.toString.call(r).slice(8,-1);return t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set"?Array.from(r):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?YQ(r,e):void 0}}var sT=Object.entries,FQ=Object.setPrototypeOf,kX=Object.isFrozen,$X=Object.getPrototypeOf,QX=Object.getOwnPropertyDescriptor,It=Object.freeze,Ft=Object.seal,Sa=Object.create,oT=typeof Reflect!="undefined"&&Reflect,Lb=oT.apply,Db=oT.construct;It||(It=function(e){return e});Ft||(Ft=function(e){return e});Lb||(Lb=function(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];return e.apply(t,i)});Db||(Db=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return new e(...n)});var fo=Ct(Array.prototype.forEach),TX=Ct(Array.prototype.lastIndexOf),NQ=Ct(Array.prototype.pop),rc=Ct(Array.prototype.push),_X=Ct(Array.prototype.splice),va=Array.isArray,sc=Ct(String.prototype.toLowerCase),_b=Ct(String.prototype.toString),jQ=Ct(String.prototype.match),nc=Ct(String.prototype.replace),UQ=Ct(String.prototype.indexOf),AX=Ct(String.prototype.trim),CX=Ct(Number.prototype.toString),EX=Ct(Boolean.prototype.toString),qQ=typeof BigInt=="undefined"?null:Ct(BigInt.prototype.toString),GQ=typeof Symbol=="undefined"?null:Ct(Symbol.prototype.toString),Mr=Ct(Object.prototype.hasOwnProperty),ic=Ct(Object.prototype.toString),ur=Ct(RegExp.prototype.test),uo=RX(TypeError);function Ct(r){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return Lb(r,e,n)}}function RX(r){return function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return Db(r,t)}}function Ye(r,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:sc;if(FQ&&FQ(r,null),!va(e))return r;let n=e.length;for(;n--;){let i=e[n];if(typeof i=="string"){let s=t(i);s!==i&&(kX(e)||(e[n]=s),i=s)}r[i]=!0}return r}function MX(r){for(let e=0;e<r.length;e++)Mr(r,e)||(r[e]=null);return r}function tn(r){let e=Sa(null);for(let n of sT(r)){var t=wX(n,2);let i=t[0],s=t[1];Mr(r,i)&&(va(s)?e[i]=MX(s):s&&typeof s=="object"&&s.constructor===Object?e[i]=tn(s):e[i]=s)}return e}function LX(r){switch(typeof r){case"string":return r;case"number":return CX(r);case"boolean":return EX(r);case"bigint":return qQ?qQ(r):"0";case"symbol":return GQ?GQ(r):"Symbol()";case"undefined":return ic(r);case"function":case"object":{if(r===null)return ic(r);let e=r,t=wn(e,"toString");if(typeof t=="function"){let n=t(e);return typeof n=="string"?n:ic(n)}return ic(r)}default:return ic(r)}}function wn(r,e){for(;r!==null;){let n=QX(r,e);if(n){if(n.get)return Ct(n.get);if(typeof n.value=="function")return Ct(n.value)}r=$X(r)}function t(){return null}return t}function DX(r){try{return ur(r,""),!0}catch(e){return!1}}var HQ=It(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),Ab=It(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Cb=It(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),IX=It(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-gly Line truncated
`+Qe),yt&&(Qe=S(Qe)),G&&rr?B(Qe):Qe},e.setConfig=function(){let C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};bi(C),ne=!0,me=Se,qe=we},e.clearConfig=function(){Or=null,ne=!1,me=null,qe=null,G=U,ie=""},e.isValidAttribute=function(C,p,b){Or||bi({});let T=_e(C),I=_e(p);return Xe(T,I,b)},e.addHook=function(C,p){typeof p=="function"&&Mr(Oe,C)&&rc(Oe[C],p)},e.removeHook=function(C,p){if(Mr(Oe,C)){if(p!==void 0){let b=TX(Oe[C],p);return b===-1?void 0:_X(Oe[C],b,1)[0]}return NQ(Oe[C])}},e.removeHooks=function(C){Mr(Oe,C)&&(Oe[C]=[])},e.removeAllHooks=function(){Oe=iT()},e}var ez=lT();cT.exports=ez});var qb=Hu(af());var Es="\u2190\u2191\u2193\u2192";var wc=[{keys:[Es],action:"Joypad"},{keys:["Space"],action:"Button A"},{keys:["Shift"],action:"Button B"}],lf=[{keys:[Es],action:"Joystick"},{keys:["Space"],action:"Button 1"},{keys:["Shift"],action:"Button 2"},{keys:["\\"],action:"Coin"},{keys:["Enter"],action:"Start"}],xc=[...wc,{keys:["\\"],action:"Select"},{keys:["Enter"],action:"Start"}],m0=[{keys:[Es],action:"Joystick"},{keys:["Space"],action:"Button"}],O0={vcs:m0,c64:m0,apple2:[{keys:["Mouse"],action:"Paddles/Joystick"},{keys:["Click"],action:"Button 1"},{keys:["SHIFT-Click"],action:"Button 2"},{keys:["ALT-Click"],action:"Button 3"}],nes:xc,atari7800:xc,pce:xc,gb:xc,msx:wc,coleco:wc,sms:[...wc,{keys:["Enter"],action:"Start"}],vicdual:lf,galaxian:lf,vector:lf,mw8080bw:[{keys:["\u2190\xA0\u2192"],action:"Joystick"},{keys:["Space"],action:"Fire"}],williams:[{keys:["A W S D"],action:"Move"},{keys:[Es],action:"Fire"},{keys:["\\"],action:"Coin"},{keys:["Enter"],action:"Start"},{keys:["6 7 8 9"],action:"Extra"}],astrocade:[{keys:[Es],action:"Joystick"},{keys:["Space"],action:"Trigger"},{keys:["Mouse X"],action:"Knob"},{keys:[`U I O P
J K L /
7 8 9 X
4 5 6 -
1 2 3 ,
\\ 0 . =`],action:"Keypad"}],vectrex:[{keys:[Es],action:"Joystick"},{keys:["Z X C V"],action:"Buttons"}],atari8:[{keys:[Es],action:"Joystick"},{keys:["Shift"],action:"Button"},{keys:["F1"],action:"Start"},{keys:["F2"],action:"Select"},{keys:["F3"],action:"Option"}],pacman:[{keys:["\u2190\xA0\u2192"],action:"Joystick"},{keys:["Space"],action:"Fire"},{keys:["5","6"],action:"Coin"},{keys:["Enter","2"],action:"Start"}]};var o_={left:"arrowleft",right:"arrowright",up:"arrowup",down:"arrowdown"},cf=null;function Po(){if(cf===null){var r=typeof navigator!="undefined"?navigator:null;cf=!!r&&/mac|iphone|ipad|ipod/i.test(r.platform||r.userAgent||"")}return cf}function hf(r){var e=r.toLowerCase().split("+"),t=e.pop(),n={mod:!1,shift:!1,key:""};for(var i of e)if(i=="mod"||i=="ctrl"||i=="meta"||i=="cmd")n.mod=!0;else if(i=="shift")n.shift=!0;else return console.warn('Keyboard shortcut "'+r+'": unsupported modifier "'+i+'" (alt is layout-dependent), skipping'),null;t=o_[t]||t;var s=/^[a-z]$/.test(t),o=/^f([1-9]|1[0-2])$/.test(t);return!s&&!o&&!/^[0-9]$/.test(t)&&!/^arrow/.test(t)?(console.warn('Keyboard shortcut "'+r+'": key "'+t+'" is layout-dependent (use a-z, 0-9, f1-f12), skipping'),null):n.shift&&!s&&!/^arrow/.test(t)?(console.warn('Keyboard shortcut "'+r+'": shift is only allowed with letters and arrows, skipping'),null):(n.key=t,n)}function a_(r,e){if(e.altKey)return!1;var t=Po(),n=t?e.metaKey:e.ctrlKey,i=t?e.ctrlKey:e.metaKey;return r.mod!==n||i||r.shift!==e.shiftKey?!1:(e.key||"").toLowerCase()===r.key}var Pc=class{constructor(){this.bindings=[];this.handler=e=>{if(!e.defaultPrevented)for(var t=0;t<this.bindings.length;t++){var n=this.bindings[t];if(a_(n.binding,e)){e.preventDefault(),e.stopPropagation(),n.fn(e);return}}}}bind(e,t){var n=hf(e);n&&this.bindings.push({binding:n,fn:t})}unbindAll(){this.bindings=[]}attach(){window.addEventListener("keydown",this.handler)}detach(){window.removeEventListener("keydown",this.handler)}},l_={mod:"Mod",cmd:"Mod",meta:"Mod",ctrl:"Ctrl",control:"Ctrl",shift:"Shift",alt:"Alt",option:"Alt"},df=null;function c_(){if(df===null){var r=typeof navigator!="undefined"?navigator:null;df=!!r&&/win/i.test(r.platform||r.userAgent||"")}return df}function g0(r){var e=r.split("-"),t=e.pop();t===""&&(t="-");var n=[];for(var i of e)if(i!==""){var s=l_[i.toLowerCase()]||i;s=="Ctrl"&&!Po()&&(s="Mod"),n.indexOf(s)<0&&n.push(s)}return n.sort(),n.concat([t.toLowerCase()]).join("-")}function d_(r){var e=Po()?r.mac:c_()?r.win:r.linux;return e||r.key}var uf=["Mod-Shift-a","Mod-Shift-d","Mod-Shift-e","Mod-Shift-f","Mod-Shift-g","Mod-Shift-h","Mod-Shift-i","Mod-Shift-j","Mod-Shift-k","Mod-Shift-l","Mod-Shift-r","Mod-Shift-x","Mod-Shift-y"];function ff(r,e){var t=e.map(g0);return r.filter(function(n){var i=d_(n);return!i||t.indexOf(g0(i))<0})}var h_={shift:"\u21E7",ctrl:"\u2303",alt:"\u2325",meta:"\u2318",mod:"\u2318",cmd:"\u2318"},u_={shift:"Shift",ctrl:"Ctrl",alt:"Alt",meta:"Win",mod:"Ctrl",cmd:"Cmd"},f_={arrowleft:"\u2190",arrowright:"\u2192",arrowup:"\u2191",arrowdown:"\u2193",backspace:"\u232B",enter:"\u21A9",tab:"\u21E5",escape:"\u238B",space:"\u2423"};function mf(r){var e=r.toLowerCase().split("+"),t=e.pop(),n=Po(),i=n?["shift","ctrl","alt","meta","mod","cmd"]:["mod","ctrl","shift","alt","meta","cmd"],s=i.filter(c=>e.indexOf(c)>=0);for(var o of e)s.indexOf(o)<0&&s.push(o);var a=s.map(c=>n?h_[c]||c:u_[c]||c).join(n?"":"+"),l=/^[a-z][0-9]?$/.test(t)?t.toUpperCase():f_[t]||(n?t:t.charAt(0).toUpperCase()+t.slice(1));return(a?a+(n?"":"+"):"")+l}var pf=class{constructor(e){this.shortcutsSig="";this.status={};this.visible=!0;this.pendingShortcuts=!1;this.pendingStatus=!1;this.div=e,this.shortcutsZone=$(document.createElement("span")).addClass("shortcuts_zone"),this.statusZone=$(document.createElement("span")).addClass("status_zone"),$(e).append(this.shortcutsZone).append(this.statusZone)}setShortcuts(e){if(this.visible){var t=e.map(s=>s.key+""+s.label).join("");if(t!==this.shortcutsSig){if(Ia){this.pendingShortcuts=!0;return}this.shortcutsSig=t,this.shortcutsZone.empty();for(var n of e){var i=$(document.createElement("span")).addClass("shortcut");i.append($(document.createElement("kbd")).text(mf(n.key))),i.append(document.createTextNode(" "+n.label)),n.fn&&b0(i,n.fn),this.shortcutsZone.append(i)}}}}setStatus(e,t){t?this.status[e]=t:delete this.status[e],this.renderStatus()}renderStatus(){if(this.visible){if(Ia){this.pendingStatus=!0;return}this.statusZone.empty();for(var e of Object.keys(this.status)){var t=this.status[e],n=$(document.createElement("span")).addClass("status_item");t.cls&&n.addClass(t.cls),t.title&&n.prop("title",t.title),n.text(t.text),t.fn&&b0(n,t.fn),this.statusZone.append(n)}}}};function b0(r,e){r.addClass("clickable"),r.mousedown(t=>t.preventDefault()),r.click(e)}var Ia=!1;function y0(){Xr&&(Xr.pendingShortcuts&&(Xr.pendingShortcuts=!1,zr()),Xr.pendingStatus&&(Xr.pendingStatus=!1,Xr.renderStatus()))}function p_(){$(document).on("mousedown.shortcutbar",()=>{Ia=!0}),$(document).on( Line truncated
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function v_(r,e){return b_(r)||y_(r,e)||x_(r,e)||S_()}function x_(r,e){if(r){if(typeof r=="string")return A0(r,e);var t={}.toString.call(r).slice(8,-1);return t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set"?Array.from(r):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?A0(r,e):void 0}}var F0=Object.entries,C0=Object.setPrototypeOf,w_=Object.isFrozen,P_=Object.getPrototypeOf,k_=Object.getOwnPropertyDescriptor,Mt=Object.freeze,Wt=Object.seal,ko=Object.create,N0=typeof Reflect!="undefined"&&Reflect,xf=N0.apply,wf=N0.construct;Mt||(Mt=function(e){return e});Wt||(Wt=function(e){return e});xf||(xf=function(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];return e.apply(t,i)});wf||(wf=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return new e(...n)});var Ms=$t(Array.prototype.forEach),$_=$t(Array.prototype.lastIndexOf),E0=$t(Array.prototype.pop),Za=$t(Array.prototype.push),Q_=$t(Array.prototype.splice),$o=Array.isArray,Wa=$t(String.prototype.toLowerCase),Of=$t(String.prototype.toString),R0=$t(String.prototype.match),Xa=$t(String.prototype.replace),M0=$t(String.prototype.indexOf),T_=$t(String.prototype.trim),__=$t(Number.prototype.toString),A_=$t(Boolean.prototype.toString),L0=typeof BigInt=="undefined"?null:$t(BigInt.prototype.toString),D0=typeof Symbol=="undefined"?null:$t(Symbol.prototype.toString),$r=$t(Object.prototype.hasOwnProperty),za=$t(Object.prototype.toString),sr=$t(RegExp.prototype.test),Rs=C_(TypeError);function $t(r){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return xf(r,e,n)}}function C_(r){return function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return wf(r,t)}}function Ve(r,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Wa;if(C0&&C0(r,null),!$o(e))return r;let n=e.length;for(;n--;){let i=e[n];if(typeof i=="string"){let s=t(i);s!==i&&(w_(e)||(e[n]=s),i=s)}r[i]=!0}return r}function E_(r){for(let e=0;e<r.length;e++)$r(r,e)||(r[e]=null);return r}function Vr(r){let e=ko(null);for(let n of F0(r)){var t=v_(n,2);let i=t[0],s=t[1];$r(r,i)&&($o(s)?e[i]=E_(s):s&&typeof s=="object"&&s.constructor===Object?e[i]=Vr(s):e[i]=s)}return e}function R_(r){switch(typeof r){case"string":return r;case"number":return __(r);case"boolean":return A_(r);case"bigint":return L0?L0(r):"0";case"symbol":return D0?D0(r):"Symbol()";case"undefined":return za(r);case"function":case"object":{if(r===null)return za(r);let e=r,t=hn(e,"toString");if(typeof t=="function"){let n=t(e);return typeof n=="string"?n:za(n)}return za(r)}default:return za(r)}}function hn(r,e){for(;r!==null;){let n=k_(r,e);if(n){if(n.get)return $t(n.get);if(typeof n.value=="function")return $t(n.value)}r=P_(r)}function t(){return null}return t}function M_(r){try{return sr(r,""),!0}catch(e){return!1}}var I0=Mt(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),gf=Mt(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),bf=Mt(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),L_=Mt(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-gly Line truncated
`+Qe),yt&&(Qe=S(Qe)),G&&tr?B(Qe):Qe},e.setConfig=function(){let C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};bi(C),ne=!0,me=Se,qe=we},e.clearConfig=function(){Or=null,ne=!1,me=null,qe=null,G=U,ie=""},e.isValidAttribute=function(C,p,b){Or||bi({});let T=_e(C),I=_e(p);return Xe(T,I,b)},e.addHook=function(C,p){typeof p=="function"&&$r(Oe,C)&&Za(Oe[C],p)},e.removeHook=function(C,p){if($r(Oe,C)){if(p!==void 0){let b=$_(Oe[C],p);return b===-1?void 0:Q_(Oe[C],b,1)[0]}return E0(Oe[C])}},e.removeHooks=function(C){$r(Oe,C)&&(Oe[C]=[])},e.removeAllHooks=function(){Oe=Y0()},e}var Yi=U0();var K_=$f(),q0=["clk","reset"],Qf=class{constructor(e,t){this.lines=[];this.zoom=8;this.t0=0;this.tsel=-1;this.tnow=-1;this.hexformat=!0;this.scrollbarWidth=12;this.parent=e,this.wfp=t,this.parent.setAttribute("tabindex","-1"),this.parent.addEventListener("mousedown",n=>{n.preventDefault(),this.parent.focus()}),$0(this.parent,()=>this.getShortcuts()),T0(this.parent,"verilog-waveform"),this.recreate()}getShortcuts(){return[{key:"=",label:"Zoom In",fn:()=>this.setZoom(this.zoom*2)},{key:"-",label:"Zoom Out",fn:()=>this.setZoom(this.zoom/2)},{key:"ctrl+shift+left",label:"To Start",fn:()=>{this.setSelTime(0),this.setOrgTime(0)}},{key:"shift+left",label:"Page Left",fn:()=>this.setSelTime(this.tsel-this.clocksPerPage/4)},{key:"left",label:"Left",fn:()=>this.setSelTime(this.tsel-1)},{key:"right",label:"Right",fn:()=>this.setSelTime(this.tsel+1)},{key:"shift+right",label:"Page Right",fn:()=>this.setSelTime(this.tsel+this.clocksPerPage/4)},{key:"space",label:"Go To Current",fn:()=>{this.setOrgTime(this.tnow),this.setSelTime(this.tnow)}},{key:"h",label:"Hex/Dec",fn:()=>{this.hexformat=!this.hexformat,this.refresh()}}]}recreate(){clearTimeout(this.wtimer),this.wtimer=setTimeout(()=>{this.destroy(),this._recreate()},0)}destroy(){this.wavelist&&($(this.wavelist.container).remove(),this.wavelist=null),this.toolbar&&(this.toolbar.destroy(),this.toolbar=null),this.clklabel&&(this.clklabel.remove(),this.clklabel=null)}_recreate(){if(this.meta=this.wfp.getSignalMetadata(),!!this.meta){var e=$(this.parent).width();this.pageWidth=e-this.scrollbarWidth;var t=40;this.setClocksPerPage(),this.clockMax=0,this.wavelist=new Wr({w:e,h:$(this.parent).height(),itemHeight:t,totalRows:this.meta.length+1,generatorFn:o=>{var a=this.meta[o];let l=document.createElement("div"),c=document.createElement("canvas");return c.width=e-12,c.height=t,l.appendChild(c),l.classList.add("waverow"),this.lines[o]=c,this.refreshRow(o),a&&a.input&&q0.indexOf(a.label)<0&&(l.onmousedown=d=>{var h=this.meta[o];h&&h.input&&this.changeInputValue(o)},l.classList.add("editable"),l.style.cursor="grab"),l}});var n=this.wavelist.container;n.tabIndex=-1,this.toolbar=new Bi(this.parent,this.parent),this.toolbar.span.css("display","inline-block"),this.clklabel=document.createElement("span"),this.clklabel.innerText="-",$(this.parent).append(this.clklabel),$(this.parent).append(n);var i=!1,s=o=>{this.setSelTime(o.offsetX/this.zoom+this.t0-.5)};$(n).mousedown(o=>{i=!0,s(o)}),$(n).mousemove(o=>{i&&s(o)}),$(n).mouseup(o=>{i=!1}),$(n).on("wheel",o=>{if(Math.abs(o.originalEvent.deltaX)>Math.abs(o.originalEvent.deltaY)){var a=Math.max(-1e3,Math.min(1e3,o.originalEvent.deltaX));a&&this.setOrgTime(this.t0+a)}}),this.toolbar.add("=","Zoom In","glyphicon-zoom-in",(o,a)=>{this.setZoom(this.zoom*2)}),this.toolbar.add("+","Zoom In",null,(o,a)=>{this.setZoom(this.zoom*2)}),this.toolbar.add("-","Zoom Out","glyphicon-zoom-out",(o,a)=>{this.setZoom(this.zoom/2)}),this.toolbar.add("ctrl+shift+left","Move to beginning","glyphicon-backward",(o,a)=>{this.setSelTime(0),this.setOrgTime(0)}),this.toolbar.add("shift+left","Move left 1/4 page","glyphicon-fast-backward",(o,a)=>{this.setSelTime(this.tsel-this.clocksPerPage/4)}),this.toolbar.add("left","Move left 1 clock","glyphicon-step-backward",(o,a)=>{this.setSelTime(this.tsel-1)}),this.toolbar.add("right","Move right 1 clock","glyphicon-step-forward",(o,a)=>{this.setSelTime(this.tsel+1)}),this.toolbar.add("shift+right","Move right 1/4 page","glyphicon-fast-forward",(o,a)=>{this.setSelTime(this.tsel+this.clocksPerPage/4)}),this.toolbar.add("space","Go to current time","glyphicon-flash",(o,a)=>{this.setOrgTime(this.tnow),this.setSelTime(this.tnow)}),this.toolbar.add("h","Switch between hex/decimal format","glyphicon-barcode",(o,a)=>{this.hexformat=!this.hexformat,this.refresh()}),$(window).resize(()=>{this.recreate()})}}roundT(e){return e=Math.round(e),e=Math.max(0,e),e=Math.min(this.clockMax+this.clocksPerPage/2,e),e}setOrgTime(e){this.t0=this.roundT(e),this.refresh()}setCurrentTime(e){this.tnow=this.roundT(e),this.refresh()}setSelTime(e){e=this.roundT(e),e>=this.t0+this.clocksPerPage-1&&(this.t0+=this.clocksPerPage/4),e<=this.t0+2&&(this.t0-=this.clocksPerPage/4),this.tsel=e,this.setOrgTime(this.t0),this.clklabel.innerText=" clk "+this.tsel}setClocksPerPage(){this.clocksPerPage=Math.floor(this.pageWidth/this.zoom)-1}setZoom(e){this.zoom=Math.max(1/16,Math.min(6 Line truncated
`);for(let i of e||[]){let s=i instanceof RegExp?{re:i}:i;for(let o of n){let a;for(s.re.lastIndex=0;a=s.re.exec(o);){let l=a[s.group!=null?s.group:a.length-1];l&&t.push(s.suffix?l+s.suffix:l)}}}return t}var Cn={vcs:{arch:"6502",code_start:4096,code_size:61440,data_start:128,data_size:128,wiz_rom_ext:".a26",wiz_inc_dir:"2600",cfgfile:"atari2600.cfg",libargs:["crt0.o","atari2600.lib"],extra_link_files:["crt0.o","atari2600.cfg"],asm_cfgfile:"atari2600-asm.cfg",asm_libargs:[],asm_extra_link_files:["atari2600-asm.cfg"],define:["__ATARI2600__"]},mw8080bw:{arch:"z80",code_start:0,rom_size:8192,data_start:8192,data_size:1024,stack_end:9216},vicdual:{arch:"z80",code_start:0,rom_size:16416,data_start:58368,data_size:1024,stack_end:59392},galaxian:{arch:"z80",code_start:0,rom_size:16384,data_start:16384,data_size:1024,stack_end:18432},"galaxian-scramble":{arch:"z80",code_start:0,rom_size:20512,data_start:16384,data_size:1024,stack_end:18432},pacman:{arch:"z80",code_start:0,codeseg_start:202,rom_size:32768,data_start:19456,data_size:652,stack_end:20416},williams:{arch:"6809",code_start:0,rom_size:49152,data_start:38912,data_size:10240,stack_end:49152,set_stack_end:49152,extra_link_files:["williams.scr","libcmoc-crt-vec.a","libcmoc-std-vec.a"],extra_link_args:["-swilliams.scr","-lcmoc-crt-vec","-lcmoc-std-vec"],extra_compile_files:["assert.h","cmoc.h","stdarg.h","stdlib.h"]},"williams-defender":{arch:"6809",code_start:0,rom_size:49152,data_start:38912,data_size:10240,stack_end:49152},"williams-z80":{arch:"z80",code_start:0,rom_size:38912,data_start:38912,data_size:10240,stack_end:49152},"vector-z80color":{arch:"z80",code_start:0,rom_size:32768,data_start:57344,data_size:8192,stack_end:0},"vector-ataricolor":{arch:"6502",define:["__VECTOR__"],cfgfile:"vector-color.cfg",libargs:["crt0.o","none.lib"],extra_link_files:["crt0.o","vector-color.cfg"]},"sound_williams-z80":{arch:"z80",code_start:0,rom_size:16384,data_start:16384,data_size:1024,stack_end:32768},base_z80:{arch:"z80",code_start:0,rom_size:32768,data_start:32768,data_size:32768,stack_end:0},coleco:{arch:"z80",rom_start:32768,code_start:33024,rom_size:32768,data_start:28672,data_size:1024,stack_end:32768,extra_preproc_args:["-I","/share/include/coleco","-D","CV_CV"],extra_link_args:["-k","/share/lib/coleco","-l","libcv","-l","libcvu","crt0.rel"]},msx:{arch:"z80",rom_start:16384,code_start:16384,rom_size:32768,data_start:49152,data_size:12288,stack_end:65535,extra_link_args:["crt0-msx.rel"],extra_link_files:["crt0-msx.rel","crt0-msx.lst"],wiz_sys_type:"z80",wiz_inc_dir:"msx"},"msx-libcv":{arch:"z80",rom_start:16384,code_start:16384,rom_size:32768,data_start:49152,data_size:12288,stack_end:65535,extra_preproc_args:["-I",".","-D","CV_MSX"],extra_link_args:["-k",".","-l","libcv-msx","-l","libcvu-msx","crt0-msx.rel"],extra_link_files:["libcv-msx.lib","libcvu-msx.lib","crt0-msx.rel","crt0-msx.lst"],extra_compile_files:["cv.h","cv_graphics.h","cv_input.h","cv_sound.h","cv_support.h","cvu.h","cvu_c.h","cvu_compression.h","cvu_f.h","cvu_graphics.h","cvu_input.h","cvu_sound.h"]},"sms-sg1000-libcv":{arch:"z80",rom_start:0,code_start:256,rom_size:49152,data_start:49152,data_size:1024,stack_end:57344,extra_preproc_args:["-I",".","-D","CV_SMS"],extra_link_args:["-k",".","-l","libcv-sms","-l","libcvu-sms","crt0-sms.rel"],extra_link_files:["libcv-sms.lib","libcvu-sms.lib","crt0-sms.rel","crt0-sms.lst"],extra_compile_files:["cv.h","cv_graphics.h","cv_input.h","cv_sound.h","cv_support.h","cvu.h","cvu_c.h","cvu_compression.h","cvu_f.h","cvu_graphics.h","cvu_input.h","cvu_sound.h"]},nes:{arch:"6502",define:["__NES__"],cfgfile:"neslib2.cfg",libargs:["crt0.o","nes.lib","neslib2.lib","-D","NES_MAPPER=0","-D","NES_PRG_BANKS=2","-D","NES_CHR_BANKS=1","-D","NES_MIRRORING=0"],extra_link_files:["crt0.o","neslib2.lib","neslib2.cfg","nesbanked.cfg"],symbolConfigs:{NES_MAPPER:{4:"nesbanked.cfg"}},ignore_segments:["HEADER","CHARS"],wiz_rom_ext:".nes"},apple2:{arch:"6502",define:["__APPLE2__"],cfgfile:"apple2.cfg",libargs:["--lib-path","/share/target/apple2/drv","apple2.lib"],__CODE_RUN__:16384,code_start:2051,acmeargs:["-f","apple"]},"apple2-e":{arch:"6502",define:["__APPLE2__"],cfgfile:"apple2.cfg",libargs:["apple2.lib"],acmeargs:["-f","apple"]},"atari8-800xl.disk":{arch:"6502",define:["__ATARI__"],cfgfile:"atari.cfg",libargs:["atari.lib"],fastbasic_cfgfile:"fastbasic-cart.cfg",ignore_segments:["EXEHDR","SYSCHKHDR","SYSCHKTRL","MAINHDR","AUTOSTRT"]},"atari8-800xl":{arch:"6502",define:["__ATARI__"],cfgfile:"atari-cart.cfg",libargs:["atari.lib","-D","__CARTFLAGS__=4"],fastbasic_cfgfile:"fastbasic-cart.cfg"},"atari8-800":{arch:"6502",define:["__ATARI__"],cfgfile:"atari-cart.cfg",libargs:["atari.lib","-D","__CARTFLAGS__=4"],fastbasic_cfgfile:"fastbasic-cart.cfg"},"atari8-5200":{arch:"6502",define:["__ATARI5200__"],cfgfile:"atari5200.cfg",libargs:["atari5200.lib","-D","__CARTFLAGS__=255"],fastbasic_cfgfile:"fastbasic-cart.cfg"},verilog:{arch:"verilog",extra_compile_files:["8bitworkshop.v"]},astrocad Line truncated
\\ 0 . =`],action:"Keypad"}],vectrex:[{keys:[Es],action:"Joystick"},{keys:["Z X C V"],action:"Buttons"}],atari8:[{keys:[Es],action:"Joystick"},{keys:["Shift"],action:"Button"},{keys:["F1"],action:"Start"},{keys:["F2"],action:"Select"},{keys:["F3"],action:"Option"}],pacman:[{keys:["\u2190\xA0\u2192"],action:"Joystick"},{keys:["Space"],action:"Fire"},{keys:["5","6"],action:"Coin"},{keys:["Enter","2"],action:"Start"}]};var o_={left:"arrowleft",right:"arrowright",up:"arrowup",down:"arrowdown"},cf=null;function Po(){if(cf===null){var r=typeof navigator!="undefined"?navigator:null;cf=!!r&&/mac|iphone|ipad|ipod/i.test(r.platform||r.userAgent||"")}return cf}function hf(r){var e=r.toLowerCase().split("+"),t=e.pop(),n={mod:!1,shift:!1,key:""};for(var i of e)if(i=="mod"||i=="ctrl"||i=="meta"||i=="cmd")n.mod=!0;else if(i=="shift")n.shift=!0;else return console.warn('Keyboard shortcut "'+r+'": unsupported modifier "'+i+'" (alt is layout-dependent), skipping'),null;t=o_[t]||t;var s=/^[a-z]$/.test(t),o=/^f([1-9]|1[0-2])$/.test(t);return!s&&!o&&!/^[0-9]$/.test(t)&&!/^arrow/.test(t)?(console.warn('Keyboard shortcut "'+r+'": key "'+t+'" is layout-dependent (use a-z, 0-9, f1-f12), skipping'),null):n.shift&&!s&&!/^arrow/.test(t)?(console.warn('Keyboard shortcut "'+r+'": shift is only allowed with letters and arrows, skipping'),null):(n.key=t,n)}function a_(r,e){if(e.altKey)return!1;var t=Po(),n=t?e.metaKey:e.ctrlKey,i=t?e.ctrlKey:e.metaKey;return r.mod!==n||i||r.shift!==e.shiftKey?!1:(e.key||"").toLowerCase()===r.key}var Pc=class{constructor(){this.bindings=[];this.handler=e=>{if(!e.defaultPrevented)for(var t=0;t<this.bindings.length;t++){var n=this.bindings[t];if(a_(n.binding,e)){e.preventDefault(),e.stopPropagation(),n.fn(e);return}}}}bind(e,t){var n=hf(e);n&&this.bindings.push({binding:n,fn:t})}unbindAll(){this.bindings=[]}attach(){window.addEventListener("keydown",this.handler)}detach(){window.removeEventListener("keydown",this.handler)}},l_={mod:"Mod",cmd:"Mod",meta:"Mod",ctrl:"Ctrl",control:"Ctrl",shift:"Shift",alt:"Alt",option:"Alt"},df=null;function c_(){if(df===null){var r=typeof navigator!="undefined"?navigator:null;df=!!r&&/win/i.test(r.platform||r.userAgent||"")}return df}function g0(r){var e=r.split("-"),t=e.pop();t===""&&(t="-");var n=[];for(var i of e)if(i!==""){var s=l_[i.toLowerCase()]||i;s=="Ctrl"&&!Po()&&(s="Mod"),n.indexOf(s)<0&&n.push(s)}return n.sort(),n.concat([t.toLowerCase()]).join("-")}function d_(r){var e=Po()?r.mac:c_()?r.win:r.linux;return e||r.key}var uf=["Mod-Shift-a","Mod-Shift-d","Mod-Shift-e","Mod-Shift-f","Mod-Shift-g","Mod-Shift-h","Mod-Shift-i","Mod-Shift-j","Mod-Shift-k","Mod-Shift-l","Mod-Shift-r","Mod-Shift-x","Mod-Shift-y"];function ff(r,e){var t=e.map(g0);return r.filter(function(n){var i=d_(n);return!i||t.indexOf(g0(i))<0})}var h_={shift:"\u21E7",ctrl:"\u2303",alt:"\u2325",meta:"\u2318",mod:"\u2318",cmd:"\u2318"},u_={shift:"Shift",ctrl:"Ctrl",alt:"Alt",meta:"Win",mod:"Ctrl",cmd:"Cmd"},f_={arrowleft:"\u2190",arrowright:"\u2192",arrowup:"\u2191",arrowdown:"\u2193",backspace:"\u232B",enter:"\u21A9",tab:"\u21E5",escape:"\u238B",space:"\u2423"};function mf(r){var e=r.toLowerCase().split("+"),t=e.pop(),n=Po(),i=n?["shift","ctrl","alt","meta","mod","cmd"]:["mod","ctrl","shift","alt","meta","cmd"],s=i.filter(c=>e.indexOf(c)>=0);for(var o of e)s.indexOf(o)<0&&s.push(o);var a=s.map(c=>n?h_[c]||c:u_[c]||c).join(n?"":"+"),l=/^[a-z][0-9]?$/.test(t)?t.toUpperCase():f_[t]||(n?t:t.charAt(0).toUpperCase()+t.slice(1));return(a?a+(n?"":"+"):"")+l}var pf=class{constructor(e){this.shortcutsSig="";this.status={};this.visible=!0;this.pendingShortcuts=!1;this.pendingStatus=!1;this.div=e,this.shortcutsZone=$(document.createElement("span")).addClass("shortcuts_zone"),this.statusZone=$(document.createElement("span")).addClass("status_zone"),$(e).append(this.shortcutsZone).append(this.statusZone)}setShortcuts(e){if(this.visible){var t=e.map(s=>s.key+""+s.label).join("");if(t!==this.shortcutsSig){if(Ia){this.pendingShortcuts=!0;return}this.shortcutsSig=t,this.shortcutsZone.empty();for(var n of e){var i=$(document.createElement("span")).addClass("shortcut");i.append($(document.createElement("kbd")).text(mf(n.key))),i.append(document.createTextNode(" "+n.label)),n.fn&&b0(i,n.fn),this.shortcutsZone.append(i)}}}}setStatus(e,t){t?this.status[e]=t:delete this.status[e],this.renderStatus()}renderStatus(){if(this.visible){if(Ia){this.pendingStatus=!0;return}this.statusZone.empty();for(var e of Object.keys(this.status)){var t=this.status[e],n=$(document.createElement("span")).addClass("status_item");t.cls&&n.addClass(t.cls),t.title&&n.prop("title",t.title),n.text(t.text),t.fn&&b0(n,t.fn),this.statusZone.append(n)}}}};function b0(r,e){r.addClass("clickable"),r.mousedown(t=>t.preventDefault()),r.click(e)}var Ia=!1;function y0(){zr&&(zr.pendingShortcuts&&(zr.pendingShortcuts=!1,Wr()),zr.pendingStatus&&(zr.pendingStatus=!1,zr.renderStatus()))}function p_(){$(document).on("mousedown.shortcutbar",()=>{Ia=!0}),$(document).on( Line truncated
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function v_(r,e){return b_(r)||y_(r,e)||x_(r,e)||S_()}function x_(r,e){if(r){if(typeof r=="string")return A0(r,e);var t={}.toString.call(r).slice(8,-1);return t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set"?Array.from(r):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?A0(r,e):void 0}}var F0=Object.entries,C0=Object.setPrototypeOf,w_=Object.isFrozen,P_=Object.getPrototypeOf,k_=Object.getOwnPropertyDescriptor,Mt=Object.freeze,Wt=Object.seal,ko=Object.create,N0=typeof Reflect!="undefined"&&Reflect,xf=N0.apply,wf=N0.construct;Mt||(Mt=function(e){return e});Wt||(Wt=function(e){return e});xf||(xf=function(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];return e.apply(t,i)});wf||(wf=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return new e(...n)});var Ms=$t(Array.prototype.forEach),$_=$t(Array.prototype.lastIndexOf),E0=$t(Array.prototype.pop),Za=$t(Array.prototype.push),Q_=$t(Array.prototype.splice),$o=Array.isArray,Wa=$t(String.prototype.toLowerCase),Of=$t(String.prototype.toString),R0=$t(String.prototype.match),Xa=$t(String.prototype.replace),M0=$t(String.prototype.indexOf),T_=$t(String.prototype.trim),__=$t(Number.prototype.toString),A_=$t(Boolean.prototype.toString),L0=typeof BigInt=="undefined"?null:$t(BigInt.prototype.toString),D0=typeof Symbol=="undefined"?null:$t(Symbol.prototype.toString),$r=$t(Object.prototype.hasOwnProperty),za=$t(Object.prototype.toString),or=$t(RegExp.prototype.test),Rs=C_(TypeError);function $t(r){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return xf(r,e,n)}}function C_(r){return function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return wf(r,t)}}function Ve(r,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Wa;if(C0&&C0(r,null),!$o(e))return r;let n=e.length;for(;n--;){let i=e[n];if(typeof i=="string"){let s=t(i);s!==i&&(w_(e)||(e[n]=s),i=s)}r[i]=!0}return r}function E_(r){for(let e=0;e<r.length;e++)$r(r,e)||(r[e]=null);return r}function Yr(r){let e=ko(null);for(let n of F0(r)){var t=v_(n,2);let i=t[0],s=t[1];$r(r,i)&&($o(s)?e[i]=E_(s):s&&typeof s=="object"&&s.constructor===Object?e[i]=Yr(s):e[i]=s)}return e}function R_(r){switch(typeof r){case"string":return r;case"number":return __(r);case"boolean":return A_(r);case"bigint":return L0?L0(r):"0";case"symbol":return D0?D0(r):"Symbol()";case"undefined":return za(r);case"function":case"object":{if(r===null)return za(r);let e=r,t=hn(e,"toString");if(typeof t=="function"){let n=t(e);return typeof n=="string"?n:za(n)}return za(r)}default:return za(r)}}function hn(r,e){for(;r!==null;){let n=k_(r,e);if(n){if(n.get)return $t(n.get);if(typeof n.value=="function")return $t(n.value)}r=P_(r)}function t(){return null}return t}function M_(r){try{return or(r,""),!0}catch(e){return!1}}var I0=Mt(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),gf=Mt(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),bf=Mt(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),L_=Mt(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-gly Line truncated
`+Qe),yt&&(Qe=S(Qe)),G&&rr?B(Qe):Qe},e.setConfig=function(){let C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};bi(C),ne=!0,me=Se,qe=we},e.clearConfig=function(){Or=null,ne=!1,me=null,qe=null,G=U,ie=""},e.isValidAttribute=function(C,p,b){Or||bi({});let T=_e(C),I=_e(p);return Xe(T,I,b)},e.addHook=function(C,p){typeof p=="function"&&$r(Oe,C)&&Za(Oe[C],p)},e.removeHook=function(C,p){if($r(Oe,C)){if(p!==void 0){let b=$_(Oe[C],p);return b===-1?void 0:Q_(Oe[C],b,1)[0]}return E0(Oe[C])}},e.removeHooks=function(C){$r(Oe,C)&&(Oe[C]=[])},e.removeAllHooks=function(){Oe=Y0()},e}var Yi=U0();var K_=$f(),q0=["clk","reset"],Qf=class{constructor(e,t){this.lines=[];this.zoom=8;this.t0=0;this.tsel=-1;this.tnow=-1;this.hexformat=!0;this.scrollbarWidth=12;this.parent=e,this.wfp=t,this.parent.setAttribute("tabindex","-1"),this.parent.addEventListener("mousedown",n=>{n.preventDefault(),this.parent.focus()}),$0(this.parent,()=>this.getShortcuts()),T0(this.parent,"verilog-waveform"),this.recreate()}getShortcuts(){return[{key:"=",label:"Zoom In",fn:()=>this.setZoom(this.zoom*2)},{key:"-",label:"Zoom Out",fn:()=>this.setZoom(this.zoom/2)},{key:"ctrl+shift+left",label:"To Start",fn:()=>{this.setSelTime(0),this.setOrgTime(0)}},{key:"shift+left",label:"Page Left",fn:()=>this.setSelTime(this.tsel-this.clocksPerPage/4)},{key:"left",label:"Left",fn:()=>this.setSelTime(this.tsel-1)},{key:"right",label:"Right",fn:()=>this.setSelTime(this.tsel+1)},{key:"shift+right",label:"Page Right",fn:()=>this.setSelTime(this.tsel+this.clocksPerPage/4)},{key:"space",label:"Go To Current",fn:()=>{this.setOrgTime(this.tnow),this.setSelTime(this.tnow)}},{key:"h",label:"Hex/Dec",fn:()=>{this.hexformat=!this.hexformat,this.refresh()}}]}recreate(){clearTimeout(this.wtimer),this.wtimer=setTimeout(()=>{this.destroy(),this._recreate()},0)}destroy(){this.wavelist&&($(this.wavelist.container).remove(),this.wavelist=null),this.toolbar&&(this.toolbar.destroy(),this.toolbar=null),this.clklabel&&(this.clklabel.remove(),this.clklabel=null)}_recreate(){if(this.meta=this.wfp.getSignalMetadata(),!!this.meta){var e=$(this.parent).width();this.pageWidth=e-this.scrollbarWidth;var t=40;this.setClocksPerPage(),this.clockMax=0,this.wavelist=new Br({w:e,h:$(this.parent).height(),itemHeight:t,totalRows:this.meta.length+1,generatorFn:o=>{var a=this.meta[o];let l=document.createElement("div"),c=document.createElement("canvas");return c.width=e-12,c.height=t,l.appendChild(c),l.classList.add("waverow"),this.lines[o]=c,this.refreshRow(o),a&&a.input&&q0.indexOf(a.label)<0&&(l.onmousedown=d=>{var h=this.meta[o];h&&h.input&&this.changeInputValue(o)},l.classList.add("editable"),l.style.cursor="grab"),l}});var n=this.wavelist.container;n.tabIndex=-1,this.toolbar=new Bi(this.parent,this.parent),this.toolbar.span.css("display","inline-block"),this.clklabel=document.createElement("span"),this.clklabel.innerText="-",$(this.parent).append(this.clklabel),$(this.parent).append(n);var i=!1,s=o=>{this.setSelTime(o.offsetX/this.zoom+this.t0-.5)};$(n).mousedown(o=>{i=!0,s(o)}),$(n).mousemove(o=>{i&&s(o)}),$(n).mouseup(o=>{i=!1}),$(n).on("wheel",o=>{if(Math.abs(o.originalEvent.deltaX)>Math.abs(o.originalEvent.deltaY)){var a=Math.max(-1e3,Math.min(1e3,o.originalEvent.deltaX));a&&this.setOrgTime(this.t0+a)}}),this.toolbar.add("=","Zoom In","glyphicon-zoom-in",(o,a)=>{this.setZoom(this.zoom*2)}),this.toolbar.add("+","Zoom In",null,(o,a)=>{this.setZoom(this.zoom*2)}),this.toolbar.add("-","Zoom Out","glyphicon-zoom-out",(o,a)=>{this.setZoom(this.zoom/2)}),this.toolbar.add("ctrl+shift+left","Move to beginning","glyphicon-backward",(o,a)=>{this.setSelTime(0),this.setOrgTime(0)}),this.toolbar.add("shift+left","Move left 1/4 page","glyphicon-fast-backward",(o,a)=>{this.setSelTime(this.tsel-this.clocksPerPage/4)}),this.toolbar.add("left","Move left 1 clock","glyphicon-step-backward",(o,a)=>{this.setSelTime(this.tsel-1)}),this.toolbar.add("right","Move right 1 clock","glyphicon-step-forward",(o,a)=>{this.setSelTime(this.tsel+1)}),this.toolbar.add("shift+right","Move right 1/4 page","glyphicon-fast-forward",(o,a)=>{this.setSelTime(this.tsel+this.clocksPerPage/4)}),this.toolbar.add("space","Go to current time","glyphicon-flash",(o,a)=>{this.setOrgTime(this.tnow),this.setSelTime(this.tnow)}),this.toolbar.add("h","Switch between hex/decimal format","glyphicon-barcode",(o,a)=>{this.hexformat=!this.hexformat,this.refresh()}),$(window).resize(()=>{this.recreate()})}}roundT(e){return e=Math.round(e),e=Math.max(0,e),e=Math.min(this.clockMax+this.clocksPerPage/2,e),e}setOrgTime(e){this.t0=this.roundT(e),this.refresh()}setCurrentTime(e){this.tnow=this.roundT(e),this.refresh()}setSelTime(e){e=this.roundT(e),e>=this.t0+this.clocksPerPage-1&&(this.t0+=this.clocksPerPage/4),e<=this.t0+2&&(this.t0-=this.clocksPerPage/4),this.tsel=e,this.setOrgTime(this.t0),this.clklabel.innerText=" clk "+this.tsel}setClocksPerPage(){this.clocksPerPage=Math.floor(this.pageWidth/this.zoom)-1}setZoom(e){this.zoom=Math.max(1/16,Math.min(6 Line truncated
`);for(let i of e||[]){let s=i instanceof RegExp?{re:i}:i;for(let o of n){let a;for(s.re.lastIndex=0;a=s.re.exec(o);){let l=a[s.group!=null?s.group:a.length-1];l&&t.push(s.suffix?l+s.suffix:l)}}}return t}var Cn={vcs:{arch:"6502",code_start:4096,code_size:61440,data_start:128,data_size:128,wiz_rom_ext:".a26",wiz_inc_dir:"2600",cfgfile:"atari2600.cfg",libargs:["crt0.o","atari2600.lib"],extra_link_files:["crt0.o","atari2600.cfg"],asm_cfgfile:"atari2600-asm.cfg",asm_libargs:[],asm_extra_link_files:["atari2600-asm.cfg"],define:["__ATARI2600__"]},mw8080bw:{arch:"z80",code_start:0,rom_size:8192,data_start:8192,data_size:1024,stack_end:9216},vicdual:{arch:"z80",code_start:0,rom_size:16416,data_start:58368,data_size:1024,stack_end:59392},galaxian:{arch:"z80",code_start:0,rom_size:16384,data_start:16384,data_size:1024,stack_end:18432},"galaxian-scramble":{arch:"z80",code_start:0,rom_size:20512,data_start:16384,data_size:1024,stack_end:18432},pacman:{arch:"z80",code_start:0,codeseg_start:202,rom_size:32768,data_start:19456,data_size:652,stack_end:20416},williams:{arch:"6809",code_start:0,rom_size:49152,data_start:38912,data_size:10240,stack_end:49152,set_stack_end:49152,extra_link_files:["williams.scr","libcmoc-crt-vec.a","libcmoc-std-vec.a"],extra_link_args:["-swilliams.scr","-lcmoc-crt-vec","-lcmoc-std-vec"],extra_compile_files:["assert.h","cmoc.h","stdarg.h","stdlib.h"]},"williams-defender":{arch:"6809",code_start:0,rom_size:49152,data_start:38912,data_size:10240,stack_end:49152},"williams-z80":{arch:"z80",code_start:0,rom_size:38912,data_start:38912,data_size:10240,stack_end:49152},"vector-z80color":{arch:"z80",code_start:0,rom_size:32768,data_start:57344,data_size:8192,stack_end:0},"vector-ataricolor":{arch:"6502",define:["__VECTOR__"],cfgfile:"vector-color.cfg",libargs:["crt0.o","none.lib"],extra_link_files:["crt0.o","vector-color.cfg"]},"sound_williams-z80":{arch:"z80",code_start:0,rom_size:16384,data_start:16384,data_size:1024,stack_end:32768},base_z80:{arch:"z80",code_start:0,rom_size:32768,data_start:32768,data_size:32768,stack_end:0},coleco:{arch:"z80",rom_start:32768,code_start:33024,rom_size:32768,data_start:28672,data_size:1024,stack_end:32768,extra_preproc_args:["-I","/share/include/coleco","-D","CV_CV"],extra_link_args:["-k","/share/lib/coleco","-l","libcv","-l","libcvu","crt0.rel"]},msx:{arch:"z80",rom_start:16384,code_start:16384,rom_size:32768,data_start:49152,data_size:12288,stack_end:65535,extra_link_args:["crt0-msx.rel"],extra_link_files:["crt0-msx.rel","crt0-msx.lst"],wiz_sys_type:"z80",wiz_inc_dir:"msx"},"msx-libcv":{arch:"z80",rom_start:16384,code_start:16384,rom_size:32768,data_start:49152,data_size:12288,stack_end:65535,extra_preproc_args:["-I",".","-D","CV_MSX"],extra_link_args:["-k",".","-l","libcv-msx","-l","libcvu-msx","crt0-msx.rel"],extra_link_files:["libcv-msx.lib","libcvu-msx.lib","crt0-msx.rel","crt0-msx.lst"],extra_compile_files:["cv.h","cv_graphics.h","cv_input.h","cv_sound.h","cv_support.h","cvu.h","cvu_c.h","cvu_compression.h","cvu_f.h","cvu_graphics.h","cvu_input.h","cvu_sound.h"]},"sms-sg1000-libcv":{arch:"z80",rom_start:0,code_start:256,rom_size:49152,data_start:49152,data_size:1024,stack_end:57344,extra_preproc_args:["-I",".","-D","CV_SMS"],extra_link_args:["-k",".","-l","libcv-sms","-l","libcvu-sms","crt0-sms.rel"],extra_link_files:["libcv-sms.lib","libcvu-sms.lib","crt0-sms.rel","crt0-sms.lst"],extra_compile_files:["cv.h","cv_graphics.h","cv_input.h","cv_sound.h","cv_support.h","cvu.h","cvu_c.h","cvu_compression.h","cvu_f.h","cvu_graphics.h","cvu_input.h","cvu_sound.h"]},nes:{arch:"6502",define:["__NES__"],cfgfile:"neslib2.cfg",libargs:["crt0.o","nes.lib","neslib2.lib","-D","NES_MAPPER=0","-D","NES_PRG_BANKS=2","-D","NES_CHR_BANKS=1","-D","NES_MIRRORING=0"],extra_link_files:["crt0.o","neslib2.lib","neslib2.cfg","nesbanked.cfg"],symbolConfigs:{NES_MAPPER:{4:"nesbanked.cfg"}},ignore_segments:["HEADER","CHARS"],wiz_rom_ext:".nes"},apple2:{arch:"6502",define:["__APPLE2__"],cfgfile:"apple2.cfg",libargs:["--lib-path","/share/target/apple2/drv","apple2.lib"],__CODE_RUN__:16384,code_start:2051,acmeargs:["-f","apple"]},"apple2-e":{arch:"6502",define:["__APPLE2__"],cfgfile:"apple2.cfg",libargs:["apple2.lib"],acmeargs:["-f","apple"]},"atari8-800xl.disk":{arch:"6502",define:["__ATARI__"],cfgfile:"atari.cfg",libargs:["atari.lib"],fastbasic_cfgfile:"fastbasic-cart.cfg",ignore_segments:["EXEHDR","SYSCHKHDR","SYSCHKTRL","MAINHDR","AUTOSTRT"]},"atari8-800xl":{arch:"6502",define:["__ATARI__"],cfgfile:"atari-cart.cfg",libargs:["atari.lib","-D","__CARTFLAGS__=4"],fastbasic_cfgfile:"fastbasic-cart.cfg"},"atari8-800":{arch:"6502",define:["__ATARI__"],cfgfile:"atari-cart.cfg",libargs:["atari.lib","-D","__CARTFLAGS__=4"],fastbasic_cfgfile:"fastbasic-cart.cfg"},"atari8-5200":{arch:"6502",define:["__ATARI5200__"],cfgfile:"atari5200.cfg",libargs:["atari5200.lib","-D","__CARTFLAGS__=255"],fastbasic_cfgfile:"fastbasic-cart.cfg"},verilog:{arch:"verilog",extra_compile_files:["8bitworkshop.v"]},astrocad Line truncated
`){[e,t]=Co(this,e,t);let i="";for(let s=0,o=0;s<=t&&o<this.text.length;o++){let a=this.text[o],l=s+a.length;s>e&&o&&(i+=n),e<l&&t>s&&(i+=a.slice(Math.max(0,e-s),t-s)),s=l+1}return i}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let n=[],i=-1;for(let s of e)n.push(s),i+=s.length+1,n.length==32&&(t.push(new r(n,i)),n=[],i=-1);return i>-1&&t.push(new r(n,i)),t}},To=class r extends Le{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let n of e)this.lines+=n.lines}lineInner(e,t,n,i){for(let s=0;;s++){let o=this.children[s],a=i+o.length,l=n+o.lines-1;if((t?l:a)>=e)return o.lineInner(e,t,n,i);i=a+1,n=l+1}}decompose(e,t,n,i){for(let s=0,o=0;o<=t&&s<this.children.length;s++){let a=this.children[s],l=o+a.length;if(e<=l&&t>=o){let c=i&((o<=e?1:0)|(l>=t?2:0));o>=e&&l<=t&&!c?n.push(a):a.decompose(e-o,t-o,n,c)}o=l+1}}replace(e,t,n){if([e,t]=Co(this,e,t),n.lines<this.lines)for(let i=0,s=0;i<this.children.length;i++){let o=this.children[i],a=s+o.length;if(e>=s&&t<=a){let l=o.replace(e-s,t-s,n),c=this.lines-o.lines+l.lines;if(l.lines<c>>4&&l.lines>c>>6){let d=this.children.slice();return d[i]=l,new r(d,this.length-(t-e)+n.length)}return super.replace(s,a,l)}s=a+1}return super.replace(e,t,n)}sliceString(e,t=this.length,n=`
`){[e,t]=Co(this,e,t);let i="";for(let s=0,o=0;s<this.children.length&&o<=t;s++){let a=this.children[s],l=o+a.length;o>e&&s&&(i+=n),e<l&&t>o&&(i+=a.sliceString(e-o,t-o,n)),o=l+1}return i}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof r))return 0;let n=0,[i,s,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;i+=t,s+=t){if(i==o||s==a)return n;let l=this.children[i],c=e.children[s];if(l!=c)return n+l.scanIdentical(c,t);n+=l.length+1}}static from(e,t=e.reduce((n,i)=>n+i.length+1,-1)){let n=0;for(let f of e)n+=f.lines;if(n<32){let f=[];for(let m of e)m.flatten(f);return new Yr(f,t)}let i=Math.max(32,n>>5),s=i<<1,o=i>>1,a=[],l=0,c=-1,d=[];function h(f){let m;if(f.lines>s&&f instanceof r)for(let g of f.children)h(g);else f.lines>o&&(l>o||!l)?(u(),a.push(f)):f instanceof Yr&&l&&(m=d[d.length-1])instanceof Yr&&f.lines+m.lines<=32?(l+=f.lines,c+=f.length+1,d[d.length-1]=new Yr(m.text.concat(f.text),m.length+1+f.length)):(l+f.lines>i&&u(),l+=f.lines,c+=f.length+1,d.push(f))}function u(){l!=0&&(a.push(d.length==1?d[0]:r.from(d,c)),c=-1,l=d.length=0)}for(let f of e)h(f);return u(),a.length==1?a[0]:new r(a,t)}};Le.empty=new Yr([""],0);function fA(r){let e=-1;for(let t of r)e+=t.length+1;return e}function Lc(r,e,t=0,n=1e9){for(let i=0,s=0,o=!0;s<r.length&&i<=n;s++){let a=r[s],l=i+a.length;l>=t&&(l>n&&(a=a.slice(0,n-i)),i<t&&(a=a.slice(t-i)),o?(e[e.length-1]+=a,o=!1):e.push(a)),i=l+1}return e}function by(r,e,t){return Lc(r,[""],e,t)}var Zs=class{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof Yr?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,i=this.nodes[n],s=this.offsets[n],o=s>>1,a=i instanceof Yr?i.text.length:i.children.length;if(o==(t>0?a:0)){if(n==0)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=`
`,this;e--}else if(i instanceof Yr){let l=i.text[o+(t<0?-1:0)];if(this.offsets[n]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=i.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof Yr?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},Dc=class{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new Zs(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:i}=this.cursor.next(e);return this.pos+=(i.length+e)*t,this.value=i.length<=n?i:t<0?i.slice(i.length-n):i.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},Ic=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:i}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol!="undefined"&&(Le.prototype[Symbol.iterator]=function(){return this.iter()},Zs.prototype[Symbol.iterator]=Dc.prototype[Symbol.iterator]=Ic.prototype[Symbol.iterator]=function(){return this});var Ef=class{constructor(e,t,n,i){this.from=e,this.to=t,this.number=n,this.text=i}get length(){return this.to-this.from}};function Co(r,e,t){return e=Math.max(0,Math.min(r.length,e)),[e,Math.max(e,Math.min(r.length,t))]}function xt(r,e,t=!0,n=!0){return py(r,e,t,n)}function pA(r){return r>=56320&&r<57344}function mA(r){return r>=55296&&r<56320}function Mn(r,e){let t=r.charCodeAt(e);if(!mA(t)||e+1==r.length)return t;let n=r.charCodeAt(e+1);return pA(n)?(t-55296<<10)+(n-56320)+65536:t}function Bc(r){return r<=65535?String.fromCharCode(r):(r-=65536,String.fromCharCode((r>>10)+55296,(r&1023)+56320))}function ji(r){return r<65536?1:2}var Rf=/\r\n?|\n/,Lt=(function(r){return r[r.Simple=0]="Simple",r[r.TrackDel=1]="TrackDel",r[r.TrackBefore=2]="TrackBefore",r[r.TrackAfter=3]="TrackAfter",r})(Lt||(Lt={})),xi=class r{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,i=0;t<this.sections.length;){let s=this.sections[t++],o=this.sections[t++];o<0?(e(n,i,s),i+=s):i+=o,n+=s}}iterChangedRanges(e,t=!1){Mf(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let n=this.sections[t++],i=this.sections[t++];i<0?e.push(n,i):e.push(i,n)}return new r(e)}composeDesc(e){return this.empty?e:e.empty?this:wy(this,e)}mapDesc(e,t=!1){return e.empty?this:Lf(this,e,t)}mapPos(e,t=-1,n=Lt.Simple){let i=0,s=0;for(let o=0;o<this.sections.length;){let a=this.sections[o++],l=this.sections[o++],c=i+a;if(l<0){if(c>e)return s+(e-i);s+=a}else{if(n!=Lt.Simple&&c>=e&&(n==Lt.TrackDel&&i<e&&c>e||n==Lt.TrackBefore&&i<e||n==Lt.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!a)return e==i||t<0?s:s+l;s+=l}i=c}if(e>i)throw new RangeError(`Position ${e} is out of range for changeset of length ${i}`);return s}touchesRange(e,t=e){for(let n=0,i=0;n<this.sections.length&&i<=t;){let s=this.sections[n++],o=this.sections[n++],a=i+s;if(o>=0&&i<=t&&a>=e)return i<e&&a>t?"cover":!0;i=a}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let n=this.sections[t++],i=this.sections[t++];e+=(e?" ":"")+n+(i>=0?":"+i:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new r(e)}static create(e){return new r(e)}},gr=class r extends xi{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Mf(this,(t,n,i,s,o)=>e=e.replace(i,i+(n-t),o),!1),e}mapDesc(e,t=!1){return Lf(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let i=0,s=0;i<t.length;i+=2){let o=t[i],a=t[i+1];if(a>=0){t[i]=a,t[i+1]=o;let l=i>>1;for(;n.length<l;)n.push(Le.empty);n.push(o?e.slice(s,s+o):Le.empty)}s+=o}return new r(t,n)}compose(e){return this.empty?e:e.empty?this:wy(this,e,!0)}map(e,t=!1){return e.empty?this:Lf(this,e,t,!0)}iterChanges(e,t=!1){Mf(this,e,t)}get desc Line truncated
`}get readOnly(){return this.facet(Ay)}phrase(e,...t){for(let n of this.facet(r.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(n,i)=>{if(i=="$")return"$";let s=+(i||1);return!s||s>t.length?n:t[s-1]})),e}languageDataAt(e,t,n=-1){let i=[];for(let s of this.facet(ky))for(let o of s(this,t,n))Object.prototype.hasOwnProperty.call(o,e)&&i.push(o[e]);return i}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return PA(t.length?t[0]:"")}wordAt(e){let{text:t,from:n,length:i}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-n,a=e-n;for(;o>0;){let l=xt(t,o,!1);if(s(t.slice(l,o))!=rt.Word)break;o=l}for(;a<i;){let l=xt(t,a);if(s(t.slice(a,l))!=rt.Word)break;a=l}return o==a?null:Z.range(o+n,a+n)}};Me.allowMultipleSelections=If;Me.tabSize=le.define({combine:r=>r.length?r[0]:4});Me.lineSeparator=$y;Me.readOnly=Ay;Me.phrases=le.define({compare(r,e){let t=Object.keys(r),n=Object.keys(e);return t.length==n.length&&t.every(i=>r[i]==e[i])}});Me.languageData=ky;Me.changeFilter=Qy;Me.transactionFilter=Ty;Me.transactionExtender=_y;Bt.reconfigure=be.define();function Fr(r,e,t={}){let n={};for(let i of r)for(let s of Object.keys(i)){let o=i[s],a=n[s];if(a===void 0)n[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))n[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let i in e)n[i]===void 0&&(n[i]=e[i]);return n}var un=class{eq(e){return this==e}range(e,t=e){return Na.create(e,t,this)}};un.prototype.startSide=un.prototype.endSide=0;un.prototype.point=!1;un.prototype.mapMode=Lt.TrackDel;function jf(r,e){return r==e||r.constructor==e.constructor&&r.eq(e)}var Na=class r{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new r(e,t,n)}};function Bf(r,e){return r.from-e.from||r.value.startSide-e.value.startSide}var Vf=class r{constructor(e,t,n,i){this.from=e,this.to=t,this.value=n,this.maxPoint=i}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,i=0){let s=n?this.to:this.from;for(let o=i,a=s.length;;){if(o==a)return o;let l=o+a>>1,c=s[l]-e||(n?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,n,i){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(n,1e9,!1,s);s<o;s++)if(i(this.from[s]+e,this.to[s]+e,this.value[s])===!1)return!1}map(e,t){let n=[],i=[],s=[],o=-1,a=-1;for(let l=0;l<this.value.length;l++){let c=this.value[l],d=this.from[l]+e,h=this.to[l]+e,u,f;if(d==h){let m=t.mapPos(d,c.startSide,c.mapMode);if(m==null||(u=f=m,c.startSide!=c.endSide&&(f=t.mapPos(d,c.endSide),f<u)))continue}else if(u=t.mapPos(d,c.startSide),f=t.mapPos(h,c.endSide),u>f||u==f&&c.startSide>0&&c.endSide<=0)continue;(f-u||c.endSide-c.startSide)<0||(o<0&&(o=u),c.point&&(a=Math.max(a,f-u)),n.push(c),i.push(u-o),s.push(f-o))}return{mapped:n.length?new r(i,s,n,a):null,pos:o}}},Te=class r{constructor(e,t,n,i){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=i}static create(e,t,n,i){return new r(e,t,n,i)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:i=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(n&&(t=t.slice().sort(Bf)),this.isEmpty)return t.length?r.of(t):this;let a=new Wc(this,null,-1).goto(0),l=0,c=[],d=new Rn;for(;a.value||l<t.length;)if(l<t.length&&(a.from-t[l].from||a.startSide-t[l].value.startSide)>=0){let h=t[l++];d.addInner(h.from,h.to,h.value)||c.push(h)}else a.rangeIndex==1&&a.chunkIndex<this.chunk.length&&(l==t.length||this.chunkEnd(a.chunkIndex)<t[l].from)&&(!o||i>this.chunkEnd(a.chunkIndex)||s<this.chunkPos[a.chunkIndex])&&d.addChunk(this.chunkPos[a.chunkIndex],this.chunk[a.chunkIndex])?a.nextChunk():((!o||i>a.to||s<a.from||o(a.from,a.to,a.value))&&(d.addInner(a.from,a.to,a.value)||c.push(Na.create(a.from,a.to,a.value))),a.next());return d.finishInner(this.nextLayer.isEmpty&&!c.length?r.empty:this.nextLayer.update({add:c,filter:o,filterFrom:i,filterTo:s}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],n=[],i=-1;for(let o=0;o<this.chunk.length;o++){let a=this.chunkPos[o],l=this.chunk[o],c=e.touchesRange(a,a+l.length);if(c===!1)i=Math.max(i,l.maxPoint),t.push(l),n.push(e.mapPos(a));else if(c===!0){let{mapped:d,pos:h}=l.map(a,e);d&&(i=Math.max(i,d.maxPoint),t.push(d),n.push(h))}}let s=this.nextLayer.map(e);return t.length==0?s:new r(n,t,s||r.empty,i)}between(e,t,n){if(!this.isEmpty){for(let i=0;i<this.chunk.length;i++){let s=this.chunkPos[i],o=this.chunk[i];if(t>=s&&e<=s+o.length&&o.between(s,e-s,t-s,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return ja.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return ja.from(e).goto(t)}static compare(e,t,n,i,s=-1){let o=e.filter(h=>h.maxPoint>0||!h.is Line truncated
`){[e,t]=Co(this,e,t);let i="";for(let s=0,o=0;s<this.children.length&&o<=t;s++){let a=this.children[s],l=o+a.length;o>e&&s&&(i+=n),e<l&&t>o&&(i+=a.sliceString(e-o,t-o,n)),o=l+1}return i}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof r))return 0;let n=0,[i,s,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;i+=t,s+=t){if(i==o||s==a)return n;let l=this.children[i],c=e.children[s];if(l!=c)return n+l.scanIdentical(c,t);n+=l.length+1}}static from(e,t=e.reduce((n,i)=>n+i.length+1,-1)){let n=0;for(let f of e)n+=f.lines;if(n<32){let f=[];for(let m of e)m.flatten(f);return new Fr(f,t)}let i=Math.max(32,n>>5),s=i<<1,o=i>>1,a=[],l=0,c=-1,d=[];function h(f){let m;if(f.lines>s&&f instanceof r)for(let g of f.children)h(g);else f.lines>o&&(l>o||!l)?(u(),a.push(f)):f instanceof Fr&&l&&(m=d[d.length-1])instanceof Fr&&f.lines+m.lines<=32?(l+=f.lines,c+=f.length+1,d[d.length-1]=new Fr(m.text.concat(f.text),m.length+1+f.length)):(l+f.lines>i&&u(),l+=f.lines,c+=f.length+1,d.push(f))}function u(){l!=0&&(a.push(d.length==1?d[0]:r.from(d,c)),c=-1,l=d.length=0)}for(let f of e)h(f);return u(),a.length==1?a[0]:new r(a,t)}};Le.empty=new Fr([""],0);function pA(r){let e=-1;for(let t of r)e+=t.length+1;return e}function Lc(r,e,t=0,n=1e9){for(let i=0,s=0,o=!0;s<r.length&&i<=n;s++){let a=r[s],l=i+a.length;l>=t&&(l>n&&(a=a.slice(0,n-i)),i<t&&(a=a.slice(t-i)),o?(e[e.length-1]+=a,o=!1):e.push(a)),i=l+1}return e}function by(r,e,t){return Lc(r,[""],e,t)}var Zs=class{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof Fr?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,i=this.nodes[n],s=this.offsets[n],o=s>>1,a=i instanceof Fr?i.text.length:i.children.length;if(o==(t>0?a:0)){if(n==0)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=`
`,this;e--}else if(i instanceof Fr){let l=i.text[o+(t<0?-1:0)];if(this.offsets[n]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=i.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof Fr?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},Dc=class{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new Zs(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:i}=this.cursor.next(e);return this.pos+=(i.length+e)*t,this.value=i.length<=n?i:t<0?i.slice(i.length-n):i.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},Ic=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:i}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol!="undefined"&&(Le.prototype[Symbol.iterator]=function(){return this.iter()},Zs.prototype[Symbol.iterator]=Dc.prototype[Symbol.iterator]=Ic.prototype[Symbol.iterator]=function(){return this});var Ef=class{constructor(e,t,n,i){this.from=e,this.to=t,this.number=n,this.text=i}get length(){return this.to-this.from}};function Co(r,e,t){return e=Math.max(0,Math.min(r.length,e)),[e,Math.max(e,Math.min(r.length,t))]}function xt(r,e,t=!0,n=!0){return py(r,e,t,n)}function mA(r){return r>=56320&&r<57344}function OA(r){return r>=55296&&r<56320}function Mn(r,e){let t=r.charCodeAt(e);if(!OA(t)||e+1==r.length)return t;let n=r.charCodeAt(e+1);return mA(n)?(t-55296<<10)+(n-56320)+65536:t}function Bc(r){return r<=65535?String.fromCharCode(r):(r-=65536,String.fromCharCode((r>>10)+55296,(r&1023)+56320))}function ji(r){return r<65536?1:2}var Rf=/\r\n?|\n/,Lt=(function(r){return r[r.Simple=0]="Simple",r[r.TrackDel=1]="TrackDel",r[r.TrackBefore=2]="TrackBefore",r[r.TrackAfter=3]="TrackAfter",r})(Lt||(Lt={})),xi=class r{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,i=0;t<this.sections.length;){let s=this.sections[t++],o=this.sections[t++];o<0?(e(n,i,s),i+=s):i+=o,n+=s}}iterChangedRanges(e,t=!1){Mf(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let n=this.sections[t++],i=this.sections[t++];i<0?e.push(n,i):e.push(i,n)}return new r(e)}composeDesc(e){return this.empty?e:e.empty?this:wy(this,e)}mapDesc(e,t=!1){return e.empty?this:Lf(this,e,t)}mapPos(e,t=-1,n=Lt.Simple){let i=0,s=0;for(let o=0;o<this.sections.length;){let a=this.sections[o++],l=this.sections[o++],c=i+a;if(l<0){if(c>e)return s+(e-i);s+=a}else{if(n!=Lt.Simple&&c>=e&&(n==Lt.TrackDel&&i<e&&c>e||n==Lt.TrackBefore&&i<e||n==Lt.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!a)return e==i||t<0?s:s+l;s+=l}i=c}if(e>i)throw new RangeError(`Position ${e} is out of range for changeset of length ${i}`);return s}touchesRange(e,t=e){for(let n=0,i=0;n<this.sections.length&&i<=t;){let s=this.sections[n++],o=this.sections[n++],a=i+s;if(o>=0&&i<=t&&a>=e)return i<e&&a>t?"cover":!0;i=a}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let n=this.sections[t++],i=this.sections[t++];e+=(e?" ":"")+n+(i>=0?":"+i:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new r(e)}static create(e){return new r(e)}},gr=class r extends xi{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Mf(this,(t,n,i,s,o)=>e=e.replace(i,i+(n-t),o),!1),e}mapDesc(e,t=!1){return Lf(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let i=0,s=0;i<t.length;i+=2){let o=t[i],a=t[i+1];if(a>=0){t[i]=a,t[i+1]=o;let l=i>>1;for(;n.length<l;)n.push(Le.empty);n.push(o?e.slice(s,s+o):Le.empty)}s+=o}return new r(t,n)}compose(e){return this.empty?e:e.empty?this:wy(this,e,!0)}map(e,t=!1){return e.empty?this:Lf(this,e,t,!0)}iterChanges(e,t=!1){Mf(this,e,t)}get desc Line truncated
`}get readOnly(){return this.facet(Ay)}phrase(e,...t){for(let n of this.facet(r.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(n,i)=>{if(i=="$")return"$";let s=+(i||1);return!s||s>t.length?n:t[s-1]})),e}languageDataAt(e,t,n=-1){let i=[];for(let s of this.facet(ky))for(let o of s(this,t,n))Object.prototype.hasOwnProperty.call(o,e)&&i.push(o[e]);return i}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return kA(t.length?t[0]:"")}wordAt(e){let{text:t,from:n,length:i}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-n,a=e-n;for(;o>0;){let l=xt(t,o,!1);if(s(t.slice(l,o))!=rt.Word)break;o=l}for(;a<i;){let l=xt(t,a);if(s(t.slice(a,l))!=rt.Word)break;a=l}return o==a?null:Z.range(o+n,a+n)}};Me.allowMultipleSelections=If;Me.tabSize=le.define({combine:r=>r.length?r[0]:4});Me.lineSeparator=$y;Me.readOnly=Ay;Me.phrases=le.define({compare(r,e){let t=Object.keys(r),n=Object.keys(e);return t.length==n.length&&t.every(i=>r[i]==e[i])}});Me.languageData=ky;Me.changeFilter=Qy;Me.transactionFilter=Ty;Me.transactionExtender=_y;Bt.reconfigure=be.define();function Nr(r,e,t={}){let n={};for(let i of r)for(let s of Object.keys(i)){let o=i[s],a=n[s];if(a===void 0)n[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))n[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let i in e)n[i]===void 0&&(n[i]=e[i]);return n}var un=class{eq(e){return this==e}range(e,t=e){return Na.create(e,t,this)}};un.prototype.startSide=un.prototype.endSide=0;un.prototype.point=!1;un.prototype.mapMode=Lt.TrackDel;function jf(r,e){return r==e||r.constructor==e.constructor&&r.eq(e)}var Na=class r{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new r(e,t,n)}};function Bf(r,e){return r.from-e.from||r.value.startSide-e.value.startSide}var Vf=class r{constructor(e,t,n,i){this.from=e,this.to=t,this.value=n,this.maxPoint=i}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,i=0){let s=n?this.to:this.from;for(let o=i,a=s.length;;){if(o==a)return o;let l=o+a>>1,c=s[l]-e||(n?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,n,i){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(n,1e9,!1,s);s<o;s++)if(i(this.from[s]+e,this.to[s]+e,this.value[s])===!1)return!1}map(e,t){let n=[],i=[],s=[],o=-1,a=-1;for(let l=0;l<this.value.length;l++){let c=this.value[l],d=this.from[l]+e,h=this.to[l]+e,u,f;if(d==h){let m=t.mapPos(d,c.startSide,c.mapMode);if(m==null||(u=f=m,c.startSide!=c.endSide&&(f=t.mapPos(d,c.endSide),f<u)))continue}else if(u=t.mapPos(d,c.startSide),f=t.mapPos(h,c.endSide),u>f||u==f&&c.startSide>0&&c.endSide<=0)continue;(f-u||c.endSide-c.startSide)<0||(o<0&&(o=u),c.point&&(a=Math.max(a,f-u)),n.push(c),i.push(u-o),s.push(f-o))}return{mapped:n.length?new r(i,s,n,a):null,pos:o}}},Te=class r{constructor(e,t,n,i){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=i}static create(e,t,n,i){return new r(e,t,n,i)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:i=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(n&&(t=t.slice().sort(Bf)),this.isEmpty)return t.length?r.of(t):this;let a=new Wc(this,null,-1).goto(0),l=0,c=[],d=new Rn;for(;a.value||l<t.length;)if(l<t.length&&(a.from-t[l].from||a.startSide-t[l].value.startSide)>=0){let h=t[l++];d.addInner(h.from,h.to,h.value)||c.push(h)}else a.rangeIndex==1&&a.chunkIndex<this.chunk.length&&(l==t.length||this.chunkEnd(a.chunkIndex)<t[l].from)&&(!o||i>this.chunkEnd(a.chunkIndex)||s<this.chunkPos[a.chunkIndex])&&d.addChunk(this.chunkPos[a.chunkIndex],this.chunk[a.chunkIndex])?a.nextChunk():((!o||i>a.to||s<a.from||o(a.from,a.to,a.value))&&(d.addInner(a.from,a.to,a.value)||c.push(Na.create(a.from,a.to,a.value))),a.next());return d.finishInner(this.nextLayer.isEmpty&&!c.length?r.empty:this.nextLayer.update({add:c,filter:o,filterFrom:i,filterTo:s}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],n=[],i=-1;for(let o=0;o<this.chunk.length;o++){let a=this.chunkPos[o],l=this.chunk[o],c=e.touchesRange(a,a+l.length);if(c===!1)i=Math.max(i,l.maxPoint),t.push(l),n.push(e.mapPos(a));else if(c===!0){let{mapped:d,pos:h}=l.map(a,e);d&&(i=Math.max(i,d.maxPoint),t.push(d),n.push(h))}}let s=this.nextLayer.map(e);return t.length==0?s:new r(n,t,s||r.empty,i)}between(e,t,n){if(!this.isEmpty){for(let i=0;i<this.chunk.length;i++){let s=this.chunkPos[i],o=this.chunk[i];if(t>=s&&e<=s+o.length&&o.between(s,e-s,t-s,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return ja.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return ja.from(e).goto(t)}static compare(e,t,n,i,s=-1){let o=e.filter(h=>h.maxPoint>0||!h.is Line truncated
`)}static newName(){let e=My[Ry]||1;return My[Ry]=e+1,"\u037C"+e.toString(36)}static mount(e,t,n){let i=e[Uf],s=n&&n.nonce;i?s&&i.setNonce(s):i=new qf(e,s),i.mount(Array.isArray(t)?t:[t],e)}},Ly=new Map,qf=class{constructor(e,t){let n=e.ownerDocument||e,i=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&i.CSSStyleSheet){let s=Ly.get(n);if(s)return e[Uf]=s;this.sheet=new i.CSSStyleSheet,Ly.set(n,this)}else this.styleTag=n.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[Uf]=this}mount(e,t){let n=this.sheet,i=0,s=0;for(let o=0;o<e.length;o++){let a=e[o],l=this.modules.indexOf(a);if(l<s&&l>-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,a),n)for(let c=0;c<a.rules.length;c++)n.insertRule(a.rules[c],i++)}else{for(;s<l;)i+=this.modules[s++].rules.length;i+=a.rules.length,s++}}if(n)t.adoptedStyleSheets.indexOf(this.sheet)<0&&(t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets]);else{let o="";for(let l=0;l<this.modules.length;l++)o+=this.modules[l].getRules()+`
`;this.styleTag.textContent=o;let a=t.head||t;this.styleTag.parentNode!=a&&a.insertBefore(this.styleTag,a.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}};var wi={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Eo={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},$A=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),QA=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(Qt=0;Qt<10;Qt++)wi[48+Qt]=wi[96+Qt]=String(Qt);var Qt;for(Qt=1;Qt<=24;Qt++)wi[Qt+111]="F"+Qt;var Qt;for(Qt=65;Qt<=90;Qt++)wi[Qt]=String.fromCharCode(Qt+32),Eo[Qt]=String.fromCharCode(Qt);var Qt;for(Yc in wi)Eo.hasOwnProperty(Yc)||(Eo[Yc]=wi[Yc]);var Yc;function Dy(r){var e=$A&&r.metaKey&&r.shiftKey&&!r.ctrlKey&&!r.altKey||QA&&r.shiftKey&&r.key&&r.key.length==1||r.key=="Unidentified",t=!e&&r.key||(r.shiftKey?Eo:wi)[r.keyCode]||r.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function wt(){var r=arguments[0];typeof r=="string"&&(r=document.createElement(r));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var i=t[n];typeof i=="string"?r.setAttribute(n,i):i!=null&&(r[n]=i)}e++}for(;e<arguments.length;e++)Iy(r,arguments[e]);return r}function Iy(r,e){if(typeof e=="string")r.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)r.appendChild(e);else if(Array.isArray(e))for(var t=0;t<e.length;t++)Iy(r,e[t]);else throw new RangeError("Unsupported child node: "+e)}var br=typeof navigator!="undefined"?navigator:{userAgent:"",vendor:"",platform:""},sp=typeof document!="undefined"?document:{documentElement:{style:{}}},op=/Edge\/(\d+)/.exec(br.userAgent),xS=/MSIE \d/.test(br.userAgent),ap=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(br.userAgent),wd=!!(xS||ap||op),Zy=!wd&&/gecko\/(\d+)/i.test(br.userAgent),Gf=!wd&&/Chrome\/(\d+)/.exec(br.userAgent),Xy="webkitFontSmoothing"in sp.documentElement.style,lp=!wd&&/Apple Computer/.test(br.vendor),zy=lp&&(/Mobile\/\w+/.test(br.userAgent)||br.maxTouchPoints>2),ce={mac:zy||/Mac/.test(br.platform),windows:/Win/.test(br.platform),linux:/Linux|X11/.test(br.platform),ie:wd,ie_version:xS?sp.documentMode||6:ap?+ap[1]:op?+op[1]:0,gecko:Zy,gecko_version:Zy?+(/Firefox\/(\d+)/.exec(br.userAgent)||[0,0])[1]:0,chrome:!!Gf,chrome_version:Gf?+Gf[1]:0,ios:zy,android:/Android\b/.test(br.userAgent),webkit:Xy,webkit_version:Xy?+(/\bAppleWebKit\/(\d+)/.exec(br.userAgent)||[0,0])[1]:0,safari:lp,safari_version:lp?+(/\bVersion\/(\d+(\.\d+)?)/.exec(br.userAgent)||[0,0])[1]:0,tabSize:sp.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function Jp(r,e){for(let t in r)t=="class"&&e.class?e.class+=" "+r.class:t=="style"&&e.style?e.style+=";"+r.style:e[t]=r[t];return e}var sd=Object.create(null);function em(r,e,t){if(r==e)return!0;r||(r=sd),e||(e=sd);let n=Object.keys(r),i=Object.keys(e);if(n.length-(t&&n.indexOf(t)>-1?1:0)!=i.length-(t&&i.indexOf(t)>-1?1:0))return!1;for(let s of n)if(s!=t&&(i.indexOf(s)==-1||r[s]!==e[s]))return!1;return!0}function TA(r,e){for(let t=r.attributes.length-1;t>=0;t--){let n=r.attributes[t].name;e[n]==null&&r.removeAttribute(n)}for(let t in e){let n=e[t];t=="style"?r.style.cssText=n:r.getAttribute(t)!=n&&r.setAttribute(t,n)}}function Wy(r,e,t){let n=!1;if(e)for(let i in e)t&&i in t||(n=!0,i=="style"?r.style.cssText="":r.removeAttribute(i));if(t)for(let i in t)e&&e[i]==t[i]||(n=!0,i=="style"?r.style.cssText=t[i]:r.setAttribute(i,t[i]));return n}function _A(r){let e=Object.create(null);for(let t=0;t<r.attributes.length;t++){let n=r.attributes[t];e[n.name]=n.value}return e}var Tt=class{eq(e){return!1}updateDOM(e,t,n){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,n){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}},Gt=(function(r){return r[r.Text=0]="Text",r[r.WidgetBefore=1]="WidgetBefore",r[r.WidgetAfter=2]="WidgetAfter",r[r.WidgetRange=3]="WidgetRange",r})(Gt||(Gt={})),ee=class extends un{constructor(e,t,n,i){super(),this.startSide=e,this.enLine truncated
`,i=r.state.doc.line(i.number+(t?1:-1)),s=r.bidiSpans(i),c=r.visualLineSide(i,!t)}if(l){if(!l(d))return a}else{if(!n)return c;l=n(d)}a=c}}function lC(r,e,t){let n=r.state.charCategorizer(e),i=n(t);return s=>{let o=n(s);return i==rt.Space&&(i=o),i==o}}function cC(r,e,t,n){let i=e.head,s=t?1:-1;if(i==(t?r.state.doc.length:0))return Z.cursor(i,e.assoc);let o=e.goalColumn,a,l=r.contentDOM.getBoundingClientRect(),c=r.coordsAtPos(i,e.assoc||((e.empty?t:e.head==e.from)?1:-1)),d=r.documentTop;if(c)o==null&&(o=c.left-l.left),a=s<0?c.top:c.bottom;else{let m=r.viewState.lineBlockAt(i);o==null&&(o=Math.min(l.right-l.left,r.defaultCharacterWidth*(i-m.from))),a=(s<0?m.top:m.bottom)+d}let h=l.left+o,u=r.viewState.heightOracle.textHeight>>1,f=n!=null?n:u;for(let m=0;;m+=u){let g=a+(f+m)*s,v=Pp(r,{x:h,y:g},!1,s);if(t?g>l.bottom:g<l.top)return Z.cursor(v.pos,v.assoc);let k=r.coordsAtPos(v.pos,v.assoc),L=k?(k.top+k.bottom)/2:0;if(!k||(t?L>a:L<a))return Z.cursor(v.pos,v.assoc,void 0,o)}}function rl(r,e,t){for(;;){let n=0;for(let i of r)i.between(e-1,e+1,(s,o,a)=>{if(e>s&&e<o){let l=n||t||(e-s<o-e?-1:1);e=l<0?s:o,n=l}});if(!n)return e}}function JS(r,e){let t=null;for(let n=0;n<e.ranges.length;n++){let i=e.ranges[n],s=null;if(i.empty){let o=rl(r,i.from,0);o!=i.from&&(s=Z.cursor(o,-1))}else{let o=rl(r,i.from,-1),a=rl(r,i.to,1);(o!=i.from||a!=i.to)&&(i.undirectional?s=Z.undirectionalRange(i.from,i.to):s=Z.range(i.from==i.anchor?o:a,i.from==i.head?o:a))}s&&(t||(t=e.ranges.slice()),t[n]=s)}return t?Z.create(t,e.mainIndex):e}function Jf(r,e,t){let n=rl(r.state.facet(ul).map(i=>i(r)),t.from,e.head>t.from?-1:1);return n==t.from?t:Z.cursor(n,n<t.from?1:-1)}var On=class{constructor(e,t){this.pos=e,this.assoc=t}};function Pp(r,e,t,n){let i=r.contentDOM.getBoundingClientRect(),s=i.top+r.viewState.paddingTop,{x:o,y:a}=e,l=a-s,c;for(;;){if(l<0)return new On(0,1);if(l>r.viewState.docHeight)return new On(r.state.doc.length,-1);if(c=r.elementAtHeight(l),n==null)break;if(c.type==Gt.Text){if(n<0?c.to<r.viewport.from:c.from>r.viewport.to)break;let u=r.docView.coordsAt(n<0?c.from:c.to,n>0?-1:1);if(u&&(n<0?u.top<=l+s:u.bottom>=l+s))break}let h=r.viewState.heightOracle.textHeight/2;l=n>0?c.bottom+h:c.top-h}if(r.viewport.from>=c.to||r.viewport.to<=c.from){if(t)return null;if(c.type==Gt.Text){let h=oC(r,i,c,o,a);return new On(h,h==c.from?1:-1)}}if(c.type!=Gt.Text)return l<(c.top+c.bottom)/2?new On(c.from,1):new On(c.to,-1);let d=r.docView.lineAt(c.from,2);return(!d||d.length!=c.length)&&(d=r.docView.lineAt(c.from,-2)),new kp(r,o,a,r.textDirectionAt(c.from)).scanTile(d,c.from)}var kp=class{constructor(e,t,n,i){this.view=e,this.x=t,this.y=n,this.baseDir=i,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to<e)&&(this.line=this.view.state.doc.lineAt(e),this.spans=this.view.bidiSpans(this.line)),this}baseDirAt(e,t){let{line:n,spans:i}=this.bidiSpansAt(e);return i[gn.find(i,e-n.from,-1,t)].level==this.baseDir}dirAt(e,t){let{line:n,spans:i}=this.bidiSpansAt(e);return i[gn.find(i,e-n.from,-1,t)].dir}bidiIn(e,t){let{spans:n,line:i}=this.bidiSpansAt(e);return n.length>1||n.length&&(n[0].level!=this.baseDir||n[0].to+i.from<t)}scan(e,t,n=!1){let i=0,s=e.length-1,o=new Set,a=this.bidiIn(e[0],e[s]),l,c,d=-1,h=1e9,u;e:for(;i<s;){let m=s-i,g=i+s>>1;t:if(o.has(g)){for(let L=1;L<m;L++){let M=g+L;if(M>=s&&(M-=m),!o.has(M)){g=M;break t}}break e}o.add(g);let v=t(g),k=0;if(v)for(let L=0;L<v.length;L++){let M=v[L];if(!(M.width==0&&v.length>1))if(M.bottom<this.y)(!l||l.bottom<M.bottom)&&(l=M),k=1;else if(M.top>this.y)(!c||c.top>M.top)&&(c=M),k=-1;else{let D=M.left>this.x?this.x-M.left:M.right<this.x?this.x-M.right:0,w=Math.abs(D);w<h&&(d=g,h=w,u=M),D&&(k=D<0==(this.baseDir==et.LTR)?-1:1)}}k==-1&&(!a||this.baseDirAt(e[g],1))?s=g:k==1&&(!a||this.baseDirAt(e[g+1],-1))&&(i=g+1)}if(!u){if(!c&&!l)return{i:0,after:!1};let m=l&&(!c||this.y-l.bottom<c.top-this.y)?l:c;return this.y=(m.top+m.bottom)/2,this.scan(e,t,!0)}if(h&&!n){let{top:m,bottom:g}=u;if(l&&l.bottom>(m+m+g)/3)return this.y=l.bottom-1,this.scan(e,t,!0);if(c&&c.top<(m+g+g)/3)return this.y=c.top+1,this.scan(e,t,!0)}let f=(a?this.dirAt(e[d],1):this.baseDir)==et.LTR;return{i:d,after:this.x>(u.left+u.right)/2==f}}scanText(e,t){let n=[];for(let s=0;s<e.length;s=xt(e.text,s))n.push(t+s);n.push(t+e.length);let i=this.scan(n,s=>{let o=n[s]-t,a=n[s+1]-t;return cl(e.dom,o,a).getClientRects()});return i.after?new On(n[i.i+1],-1):new On(n[i.i],1)}scanTile(e,t){if(!e.length)return new On(t,1);if(e.children.length==1){let a=e.children[0];if(a.isText())return this.scanText(a,t);if(a.isComposite())return this.scanTile(a,t)}let n=[t];for(let a=0,l=t;a<e.children.length;a++)n.push(l+=e.children[a].length);let i=this.scan(n,a=>{let l=e.children[a];return l.flags&48?null:(l.dom.nodeType==1?l.dom:cl(l.dom,0,l.length)).getClientRects()}),s=e.children[i.i],o=n[i.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):i.after?new On(n[i.i+1],-1):new On(o,1)}},Ro="\uFFFF",$p=class{con Line truncated
`&&r.lineWrapping&&(n&&(n=Z.single(n.main.anchor-1,n.main.head-1)),t={from:s.from,to:s.to,insert:Le.of([" "])}),t)return am(r,t,n,o);if(n&&!fd(n,s)){let a=!1,l="select";return r.inputState.lastSelectionTime>Date.now()-50&&(r.inputState.lastSelectionOrigin=="select"&&(a=!0),l=r.inputState.lastSelectionOrigin,l=="select.pointer"&&(n=JS(i.facet(ul).map(c=>c(r)),n))),r.dispatch({selection:n,scrollIntoView:a,userEvent:l}),!0}else return!1}function am(r,e,t,n=-1){if(ce.ios&&r.inputState.flushIOSKey(e))return!0;let i=r.state.selection.main;if(ce.android&&(e.to==i.to&&(e.from==i.from||e.from==i.from-1&&r.state.sliceDoc(e.from,i.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Xo(r.contentDOM,"Enter",13)||(e.from==i.from-1&&e.to==i.to&&e.insert.length==0||n==8&&e.insert.length<e.to-e.from&&e.to>i.head)&&Xo(r.contentDOM,"Backspace",8)||e.from==i.from&&e.to==i.to+1&&e.insert.length==0&&Xo(r.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();r.inputState.composing>=0&&r.inputState.composing++;let o,a=()=>o||(o=uC(r,e,t));return r.state.facet(WS).some(l=>l(r,e.from,e.to,s,a))||r.dispatch(a()),!0}function uC(r,e,t){let n,i=r.state,s=i.selection.main,o=-1;if(e.from==e.to&&e.from<s.from||e.from>s.to){let l=e.from<s.from?-1:1,c=l<0?s.from:s.to,d=rl(i.facet(ul).map(h=>h(r)),c,l);e.from==d&&(o=d)}if(o>-1)n={changes:e,selection:Z.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&r.inputState.composing<0){let l=s.from<e.from?i.sliceDoc(s.from,e.from):"",c=s.to>e.to?i.sliceDoc(e.to,s.to):"";n=i.replaceSelection(r.state.toText(l+e.insert.sliceString(0,void 0,r.state.lineBreak)+c))}else{let l=i.changes(e),c=t&&t.main.to<=l.newLength?t.main:void 0;if(i.selection.ranges.length>1&&(r.inputState.composing>=0||r.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let d=r.state.sliceDoc(e.from,e.to),h,u=t&&KS(r,t.main.head);if(u){let m=e.insert.length-(e.to-e.from);h={from:u.from,to:u.to-m}}else h=r.state.doc.lineAt(s.head);let f=s.to-e.to;n=i.changeByRange(m=>{if(m.from==s.from&&m.to==s.to)return{changes:l,range:c||m.map(l)};let g=m.to-f,v=g-d.length;if(r.state.sliceDoc(v,g)!=d||g>=h.from&&v<=h.to)return{range:m};let k=i.changes({from:v,to:g,insert:e.insert}),L=m.to-s.to;return{changes:k,range:c?Z.range(Math.max(0,c.anchor+L),Math.max(0,c.head+L)):m.map(k)}})}else n={changes:l,selection:c&&i.selection.replaceRange(c)}}let a="input.type";return(r.composing||r.inputState.compositionPendingChange&&r.inputState.compositionEndedAt>Date.now()-50)&&(r.inputState.compositionPendingChange=!1,a+=".compose",r.inputState.compositionFirstChange&&(a+=".start",r.inputState.compositionFirstChange=!1)),i.update(n,{userEvent:a,scrollIntoView:!0})}function rv(r,e,t,n){let i=Math.min(r.length,e.length),s=0;for(;s<i&&r.charCodeAt(s)==e.charCodeAt(s);)s++;if(s==i&&r.length==e.length)return null;let o=r.length,a=e.length;for(;o>0&&a>0&&r.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(n=="end"){let l=Math.max(0,s-Math.min(o,a));t-=o+l-s}if(o<s&&r.length<e.length){let l=t<=s&&t>=o?s-t:0;s-=l,a=s+(a-o),o=s}else if(a<s){let l=t<=s&&t>=a?s-t:0;s-=l,o=s+(o-a),a=s}return{from:s,toA:o,toB:a}}function fC(r){let e=[];if(r.root.activeElement!=r.contentDOM)return e;let{anchorNode:t,anchorOffset:n,focusNode:i,focusOffset:s}=r.observer.selectionRange;return t&&(e.push(new ud(t,n)),(i!=t||s!=n)&&e.push(new ud(i,s))),e}function pC(r,e){if(r.length==0)return null;let t=r[0].pos,n=r.length==2?r[1].pos:t;return t>-1&&n>-1?Z.single(t+e,n+e):null}function fd(r,e){return e.head==r.main.head&&e.anchor==r.main.anchor}var Tp=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.touchActive=!1,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.lastIOSMomentumScroll=0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,ce.safari&&e.contentDOM.addEventListener("input",()=>null),ce.gecko&&_C(e.contentDOM.ownerDocument)}handleEvent(e){!xC(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let n=this.handlers[e];if(n){for(let i of n.observers)i(this.view,t);for(let i of n.handlers){if(t.defaultPrevented)break;if(i(this.view,t)){t.preventDefault();break}}}}ensureHandl Line truncated
`))};if((ce.mac||ce.android)&&h.from==o-1&&/^\. ?$/.test(n.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(h={from:a,to:l,insert:Le.of([n.text.replace("."," ")])}),this.pendingContextChange=h,!e.state.readOnly){let u=this.to-this.from+(h.to-h.from+h.insert.length);am(e,h,Z.single(this.toEditorPos(n.selectionStart,u),this.toEditorPos(n.selectionEnd,u)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),h.from<h.to&&!h.insert.length&&e.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,n.updateRangeStart-1),Math.min(t.text.length,n.updateRangeStart+1)))&&this.handlers.compositionend(n)},this.handlers.characterboundsupdate=n=>{let i=[],s=null;for(let o=this.toEditorPos(n.rangeStart),a=this.toEditorPos(n.rangeEnd);o<a;o++){let l=e.coordsForChar(o);s=l&&new DOMRect(l.left,l.top,l.right-l.left,l.bottom-l.top)||s||new DOMRect,i.push(s)}t.updateCharacterBounds(n.rangeStart,i)},this.handlers.textformatupdate=n=>{let i=[];for(let s of n.getTextFormats()){let o=s.underlineStyle,a=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(a)){let l=this.toEditorPos(s.rangeStart),c=this.toEditorPos(s.rangeEnd);if(l<c){let d=`text-decoration: underline ${/^[a-z]/.test(o)?o+" ":o=="Dashed"?"dashed ":o=="Squiggle"?"wavy ":""}${/thin/i.test(a)?1:2}px`;i.push(ee.mark({attributes:{style:d}}).range(l,c))}}}e.dispatch({effects:NS.of(ee.set(i))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:n}=this.composing;this.composing=null,n&&this.reset(e.state)}};for(let n in this.handlers)t.addEventListener(n,this.handlers[n]);this.measureReq={read:n=>{let i=ll(n.root);i&&i.rangeCount&&this.editContext.updateSelectionBounds(i.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,n=!1,i=this.pendingContextChange;return e.changes.iterChanges((s,o,a,l,c)=>{if(n)return;let d=c.length-(o-s);if(i&&o>=i.to)if(i.from==s&&i.to==o&&i.insert.eq(c)){i=this.pendingContextChange=null,t+=d,this.to+=d;return}else i=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=d,this.to+=d;else if(s<this.to){if(s<this.from||o>this.to||this.to-this.from+c.length>3e4){n=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=d}t+=d}),i&&!n&&this.revertPending(e.state),!n}update(e){let t=this.pendingContextChange,n=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(n.from,n.to)&&e.transactions.some(i=>!i.isUserEvent("input.type")&&i.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),i=this.toContextPos(t.head);(this.editContext.selectionStart!=n||this.editContext.selectionEnd!=i)&&this.editContext.updateSelection(n,i)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to<e.doc.length&&this.to-t<500||this.to-this.from>1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let n=this.composing;return n&&n.drifted?n.editorBase+(e-n.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},N=class r{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM Line truncated
-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,Fp),rE={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},tp=null;function nE(){var r;if(tp==null&&typeof document!="undefined"&&document.body){let e=document.body.style;tp=((r=e.tabSize)!==null&&r!==void 0?r:e.MozTabSize)!=null}return tp||!1}var nd=le.define({combine(r){let e=Fr(r,{render:null,specialChars:tE,addSpecialChars:null});return(e.replaceTabs=!nE())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,Fp)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Fp)),e}});function xv(r={}){return[nd.of(r),iE()]}var pS=null;function iE(){return pS||(pS=at.fromClass(class{constructor(r){this.view=r,this.decorations=ee.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(r.state.facet(nd)),this.decorations=this.decorator.createDeco(r)}makeDecorator(r){return new dl({regexp:r.specialChars,decoration:(e,t,n)=>{let{doc:i}=t.state,s=Mn(e[0],0);if(s==9){let o=i.lineAt(n),a=t.state.tabSize,l=qt(o.text,a,n-o.from);return ee.replace({widget:new jp((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=ee.replace({widget:new Np(r,s)}))},boundary:r.replaceTabs?void 0:/[^]/})}update(r){let e=r.state.facet(nd);r.startState.facet(nd)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(r.view)):this.decorations=this.decorator.updateDeco(r,this.decorations)}},{decorations:r=>r.decorations}))}var sE="\u2022";function oE(r){return r>=32?sE:r==10?"\u2424":String.fromCharCode(9216+r)}var Np=class extends Tt{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=oE(this.code),n=e.state.phrase("Control character")+" "+(rE[this.code]||"0x"+this.code.toString(16)),i=this.options.render&&this.options.render(this.code,n,t);if(i)return i;let s=document.createElement("span");return s.textContent=t,s.title=n,s.setAttribute("aria-label",n),s.className="cm-specialChar",s}ignoreEvent(){return!1}},jp=class extends Tt{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function Qd(){return lE}var aE=ee.line({class:"cm-activeLine"}),lE=at.fromClass(class{constructor(r){this.decorations=this.getDeco(r)}update(r){(r.docChanged||r.selectionSet)&&(this.decorations=this.getDeco(r.view))}getDeco(r){let e=-1,t=[];for(let n of r.state.selection.ranges){let i=r.lineBlockAt(n.head);i.from>e&&(t.push(aE.range(i.from)),e=i.from)}return ee.set(t)}},{decorations:r=>r.decorations});var Up=2e3;function cE(r,e,t){let n=Math.min(e.line,t.line),i=Math.max(e.line,t.line),s=[];if(e.off>Up||t.off>Up||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=n;l<=i;l++){let c=r.doc.line(l);c.length<=a&&s.push(Z.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=n;l<=i;l++){let c=r.doc.line(l),d=Vc(c.text,o,r.tabSize,!0);if(d<0)s.push(Z.cursor(c.to));else{let h=Vc(c.text,a,r.tabSize);s.push(Z.range(c.from+d,c.from+h))}}}return s}function dE(r,e){let t=r.coordsAtPos(r.viewport.from);return t?Math.round(Math.abs((t.left-e)/r.defaultCharacterWidth)):-1}function mS(r,e){let t=r.posAtCoords({x:e.clientX,y:e.clientY},!1),n=r.state.doc.lineAt(t),i=t-n.from,s=i>Up?-1:i==n.length?dE(r,e.clientX):qt(n.text,r.state.tabSize,t-n.from);return{line:n.number,col:s,off:i}}function hE(r,e){let t=mS(r,e),n=r.state.selection;return t?{update(i){if(i.docChanged){let s=i.changes.mapPos(i.startState.doc.line(t.line).from),o=i.state.doc.lineAt(s);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},n=n.map(i.changes)}},get(i,s,o){let a=mS(r,i);if(!a)return n;let l=cE(r.state,t,a);return l.length?o?Z.create(l.concat(n.ranges)):Z.create(l):n}}:null}function Td(r){let e=(r==null?void 0:r.eventFilter)||(t=>t.altKey&&t.button==0);return N.mouseSelectionStyle.of((t,n)=>e(n)?hE(t,n):null)}var uE={Alt:[18,r=>!!r.altKey],Control:[17,r=>!!r.ctrlKey],Shift:[16,r=>!!r.shiftKey],Meta:[91,r=>!!r.metaKey]},fE={style:"cursor: crosshair"};function _d(r={}){let[e,t]=uE[r.key||"Alt"],n=at.fromClass(class{constructor(i){this.view=i,this.isDown=!1}set(i){this.isDown!=i&&(this.isDown=i,this.view.update([]))}},{eventObservers:{keydown(i){this.set(i.keyCode==e||t(i))},keyup(i){(i.keyCode==e||!t(i))&&this.set(!1)},mousemove(i){this.set(t(i))}}}) Line truncated
`;this.styleTag.textContent=o;let a=t.head||t;this.styleTag.parentNode!=a&&a.insertBefore(this.styleTag,a.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}};var wi={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Eo={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},QA=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),TA=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(Qt=0;Qt<10;Qt++)wi[48+Qt]=wi[96+Qt]=String(Qt);var Qt;for(Qt=1;Qt<=24;Qt++)wi[Qt+111]="F"+Qt;var Qt;for(Qt=65;Qt<=90;Qt++)wi[Qt]=String.fromCharCode(Qt+32),Eo[Qt]=String.fromCharCode(Qt);var Qt;for(Yc in wi)Eo.hasOwnProperty(Yc)||(Eo[Yc]=wi[Yc]);var Yc;function Dy(r){var e=QA&&r.metaKey&&r.shiftKey&&!r.ctrlKey&&!r.altKey||TA&&r.shiftKey&&r.key&&r.key.length==1||r.key=="Unidentified",t=!e&&r.key||(r.shiftKey?Eo:wi)[r.keyCode]||r.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function wt(){var r=arguments[0];typeof r=="string"&&(r=document.createElement(r));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var i=t[n];typeof i=="string"?r.setAttribute(n,i):i!=null&&(r[n]=i)}e++}for(;e<arguments.length;e++)Iy(r,arguments[e]);return r}function Iy(r,e){if(typeof e=="string")r.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)r.appendChild(e);else if(Array.isArray(e))for(var t=0;t<e.length;t++)Iy(r,e[t]);else throw new RangeError("Unsupported child node: "+e)}var br=typeof navigator!="undefined"?navigator:{userAgent:"",vendor:"",platform:""},sp=typeof document!="undefined"?document:{documentElement:{style:{}}},op=/Edge\/(\d+)/.exec(br.userAgent),xS=/MSIE \d/.test(br.userAgent),ap=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(br.userAgent),wd=!!(xS||ap||op),Zy=!wd&&/gecko\/(\d+)/i.test(br.userAgent),Gf=!wd&&/Chrome\/(\d+)/.exec(br.userAgent),Xy="webkitFontSmoothing"in sp.documentElement.style,lp=!wd&&/Apple Computer/.test(br.vendor),zy=lp&&(/Mobile\/\w+/.test(br.userAgent)||br.maxTouchPoints>2),ce={mac:zy||/Mac/.test(br.platform),windows:/Win/.test(br.platform),linux:/Linux|X11/.test(br.platform),ie:wd,ie_version:xS?sp.documentMode||6:ap?+ap[1]:op?+op[1]:0,gecko:Zy,gecko_version:Zy?+(/Firefox\/(\d+)/.exec(br.userAgent)||[0,0])[1]:0,chrome:!!Gf,chrome_version:Gf?+Gf[1]:0,ios:zy,android:/Android\b/.test(br.userAgent),webkit:Xy,webkit_version:Xy?+(/\bAppleWebKit\/(\d+)/.exec(br.userAgent)||[0,0])[1]:0,safari:lp,safari_version:lp?+(/\bVersion\/(\d+(\.\d+)?)/.exec(br.userAgent)||[0,0])[1]:0,tabSize:sp.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function Jp(r,e){for(let t in r)t=="class"&&e.class?e.class+=" "+r.class:t=="style"&&e.style?e.style+=";"+r.style:e[t]=r[t];return e}var sd=Object.create(null);function em(r,e,t){if(r==e)return!0;r||(r=sd),e||(e=sd);let n=Object.keys(r),i=Object.keys(e);if(n.length-(t&&n.indexOf(t)>-1?1:0)!=i.length-(t&&i.indexOf(t)>-1?1:0))return!1;for(let s of n)if(s!=t&&(i.indexOf(s)==-1||r[s]!==e[s]))return!1;return!0}function _A(r,e){for(let t=r.attributes.length-1;t>=0;t--){let n=r.attributes[t].name;e[n]==null&&r.removeAttribute(n)}for(let t in e){let n=e[t];t=="style"?r.style.cssText=n:r.getAttribute(t)!=n&&r.setAttribute(t,n)}}function Wy(r,e,t){let n=!1;if(e)for(let i in e)t&&i in t||(n=!0,i=="style"?r.style.cssText="":r.removeAttribute(i));if(t)for(let i in t)e&&e[i]==t[i]||(n=!0,i=="style"?r.style.cssText=t[i]:r.setAttribute(i,t[i]));return n}function AA(r){let e=Object.create(null);for(let t=0;t<r.attributes.length;t++){let n=r.attributes[t];e[n.name]=n.value}return e}var Tt=class{eq(e){return!1}updateDOM(e,t,n){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,n){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}},Ht=(function(r){return r[r.Text=0]="Text",r[r.WidgetBefore=1]="WidgetBefore",r[r.WidgetAfter=2]="WidgetAfter",r[r.WidgetRange=3]="WidgetRange",r})(Ht||(Ht={})),ee=class extends un{constructor(e,t,n,i){super(),this.startSide=e,this.enLine truncated
`,i=r.state.doc.line(i.number+(t?1:-1)),s=r.bidiSpans(i),c=r.visualLineSide(i,!t)}if(l){if(!l(d))return a}else{if(!n)return c;l=n(d)}a=c}}function cC(r,e,t){let n=r.state.charCategorizer(e),i=n(t);return s=>{let o=n(s);return i==rt.Space&&(i=o),i==o}}function dC(r,e,t,n){let i=e.head,s=t?1:-1;if(i==(t?r.state.doc.length:0))return Z.cursor(i,e.assoc);let o=e.goalColumn,a,l=r.contentDOM.getBoundingClientRect(),c=r.coordsAtPos(i,e.assoc||((e.empty?t:e.head==e.from)?1:-1)),d=r.documentTop;if(c)o==null&&(o=c.left-l.left),a=s<0?c.top:c.bottom;else{let m=r.viewState.lineBlockAt(i);o==null&&(o=Math.min(l.right-l.left,r.defaultCharacterWidth*(i-m.from))),a=(s<0?m.top:m.bottom)+d}let h=l.left+o,u=r.viewState.heightOracle.textHeight>>1,f=n!=null?n:u;for(let m=0;;m+=u){let g=a+(f+m)*s,v=Pp(r,{x:h,y:g},!1,s);if(t?g>l.bottom:g<l.top)return Z.cursor(v.pos,v.assoc);let k=r.coordsAtPos(v.pos,v.assoc),L=k?(k.top+k.bottom)/2:0;if(!k||(t?L>a:L<a))return Z.cursor(v.pos,v.assoc,void 0,o)}}function rl(r,e,t){for(;;){let n=0;for(let i of r)i.between(e-1,e+1,(s,o,a)=>{if(e>s&&e<o){let l=n||t||(e-s<o-e?-1:1);e=l<0?s:o,n=l}});if(!n)return e}}function JS(r,e){let t=null;for(let n=0;n<e.ranges.length;n++){let i=e.ranges[n],s=null;if(i.empty){let o=rl(r,i.from,0);o!=i.from&&(s=Z.cursor(o,-1))}else{let o=rl(r,i.from,-1),a=rl(r,i.to,1);(o!=i.from||a!=i.to)&&(i.undirectional?s=Z.undirectionalRange(i.from,i.to):s=Z.range(i.from==i.anchor?o:a,i.from==i.head?o:a))}s&&(t||(t=e.ranges.slice()),t[n]=s)}return t?Z.create(t,e.mainIndex):e}function Jf(r,e,t){let n=rl(r.state.facet(ul).map(i=>i(r)),t.from,e.head>t.from?-1:1);return n==t.from?t:Z.cursor(n,n<t.from?1:-1)}var On=class{constructor(e,t){this.pos=e,this.assoc=t}};function Pp(r,e,t,n){let i=r.contentDOM.getBoundingClientRect(),s=i.top+r.viewState.paddingTop,{x:o,y:a}=e,l=a-s,c;for(;;){if(l<0)return new On(0,1);if(l>r.viewState.docHeight)return new On(r.state.doc.length,-1);if(c=r.elementAtHeight(l),n==null)break;if(c.type==Ht.Text){if(n<0?c.to<r.viewport.from:c.from>r.viewport.to)break;let u=r.docView.coordsAt(n<0?c.from:c.to,n>0?-1:1);if(u&&(n<0?u.top<=l+s:u.bottom>=l+s))break}let h=r.viewState.heightOracle.textHeight/2;l=n>0?c.bottom+h:c.top-h}if(r.viewport.from>=c.to||r.viewport.to<=c.from){if(t)return null;if(c.type==Ht.Text){let h=aC(r,i,c,o,a);return new On(h,h==c.from?1:-1)}}if(c.type!=Ht.Text)return l<(c.top+c.bottom)/2?new On(c.from,1):new On(c.to,-1);let d=r.docView.lineAt(c.from,2);return(!d||d.length!=c.length)&&(d=r.docView.lineAt(c.from,-2)),new kp(r,o,a,r.textDirectionAt(c.from)).scanTile(d,c.from)}var kp=class{constructor(e,t,n,i){this.view=e,this.x=t,this.y=n,this.baseDir=i,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to<e)&&(this.line=this.view.state.doc.lineAt(e),this.spans=this.view.bidiSpans(this.line)),this}baseDirAt(e,t){let{line:n,spans:i}=this.bidiSpansAt(e);return i[gn.find(i,e-n.from,-1,t)].level==this.baseDir}dirAt(e,t){let{line:n,spans:i}=this.bidiSpansAt(e);return i[gn.find(i,e-n.from,-1,t)].dir}bidiIn(e,t){let{spans:n,line:i}=this.bidiSpansAt(e);return n.length>1||n.length&&(n[0].level!=this.baseDir||n[0].to+i.from<t)}scan(e,t,n=!1){let i=0,s=e.length-1,o=new Set,a=this.bidiIn(e[0],e[s]),l,c,d=-1,h=1e9,u;e:for(;i<s;){let m=s-i,g=i+s>>1;t:if(o.has(g)){for(let L=1;L<m;L++){let M=g+L;if(M>=s&&(M-=m),!o.has(M)){g=M;break t}}break e}o.add(g);let v=t(g),k=0;if(v)for(let L=0;L<v.length;L++){let M=v[L];if(!(M.width==0&&v.length>1))if(M.bottom<this.y)(!l||l.bottom<M.bottom)&&(l=M),k=1;else if(M.top>this.y)(!c||c.top>M.top)&&(c=M),k=-1;else{let D=M.left>this.x?this.x-M.left:M.right<this.x?this.x-M.right:0,w=Math.abs(D);w<h&&(d=g,h=w,u=M),D&&(k=D<0==(this.baseDir==et.LTR)?-1:1)}}k==-1&&(!a||this.baseDirAt(e[g],1))?s=g:k==1&&(!a||this.baseDirAt(e[g+1],-1))&&(i=g+1)}if(!u){if(!c&&!l)return{i:0,after:!1};let m=l&&(!c||this.y-l.bottom<c.top-this.y)?l:c;return this.y=(m.top+m.bottom)/2,this.scan(e,t,!0)}if(h&&!n){let{top:m,bottom:g}=u;if(l&&l.bottom>(m+m+g)/3)return this.y=l.bottom-1,this.scan(e,t,!0);if(c&&c.top<(m+g+g)/3)return this.y=c.top+1,this.scan(e,t,!0)}let f=(a?this.dirAt(e[d],1):this.baseDir)==et.LTR;return{i:d,after:this.x>(u.left+u.right)/2==f}}scanText(e,t){let n=[];for(let s=0;s<e.length;s=xt(e.text,s))n.push(t+s);n.push(t+e.length);let i=this.scan(n,s=>{let o=n[s]-t,a=n[s+1]-t;return cl(e.dom,o,a).getClientRects()});return i.after?new On(n[i.i+1],-1):new On(n[i.i],1)}scanTile(e,t){if(!e.length)return new On(t,1);if(e.children.length==1){let a=e.children[0];if(a.isText())return this.scanText(a,t);if(a.isComposite())return this.scanTile(a,t)}let n=[t];for(let a=0,l=t;a<e.children.length;a++)n.push(l+=e.children[a].length);let i=this.scan(n,a=>{let l=e.children[a];return l.flags&48?null:(l.dom.nodeType==1?l.dom:cl(l.dom,0,l.length)).getClientRects()}),s=e.children[i.i],o=n[i.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):i.after?new On(n[i.i+1],-1):new On(o,1)}},Ro="\uFFFF",$p=class{con Line truncated
`&&r.lineWrapping&&(n&&(n=Z.single(n.main.anchor-1,n.main.head-1)),t={from:s.from,to:s.to,insert:Le.of([" "])}),t)return am(r,t,n,o);if(n&&!fd(n,s)){let a=!1,l="select";return r.inputState.lastSelectionTime>Date.now()-50&&(r.inputState.lastSelectionOrigin=="select"&&(a=!0),l=r.inputState.lastSelectionOrigin,l=="select.pointer"&&(n=JS(i.facet(ul).map(c=>c(r)),n))),r.dispatch({selection:n,scrollIntoView:a,userEvent:l}),!0}else return!1}function am(r,e,t,n=-1){if(ce.ios&&r.inputState.flushIOSKey(e))return!0;let i=r.state.selection.main;if(ce.android&&(e.to==i.to&&(e.from==i.from||e.from==i.from-1&&r.state.sliceDoc(e.from,i.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Xo(r.contentDOM,"Enter",13)||(e.from==i.from-1&&e.to==i.to&&e.insert.length==0||n==8&&e.insert.length<e.to-e.from&&e.to>i.head)&&Xo(r.contentDOM,"Backspace",8)||e.from==i.from&&e.to==i.to+1&&e.insert.length==0&&Xo(r.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();r.inputState.composing>=0&&r.inputState.composing++;let o,a=()=>o||(o=fC(r,e,t));return r.state.facet(WS).some(l=>l(r,e.from,e.to,s,a))||r.dispatch(a()),!0}function fC(r,e,t){let n,i=r.state,s=i.selection.main,o=-1;if(e.from==e.to&&e.from<s.from||e.from>s.to){let l=e.from<s.from?-1:1,c=l<0?s.from:s.to,d=rl(i.facet(ul).map(h=>h(r)),c,l);e.from==d&&(o=d)}if(o>-1)n={changes:e,selection:Z.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&r.inputState.composing<0){let l=s.from<e.from?i.sliceDoc(s.from,e.from):"",c=s.to>e.to?i.sliceDoc(e.to,s.to):"";n=i.replaceSelection(r.state.toText(l+e.insert.sliceString(0,void 0,r.state.lineBreak)+c))}else{let l=i.changes(e),c=t&&t.main.to<=l.newLength?t.main:void 0;if(i.selection.ranges.length>1&&(r.inputState.composing>=0||r.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let d=r.state.sliceDoc(e.from,e.to),h,u=t&&KS(r,t.main.head);if(u){let m=e.insert.length-(e.to-e.from);h={from:u.from,to:u.to-m}}else h=r.state.doc.lineAt(s.head);let f=s.to-e.to;n=i.changeByRange(m=>{if(m.from==s.from&&m.to==s.to)return{changes:l,range:c||m.map(l)};let g=m.to-f,v=g-d.length;if(r.state.sliceDoc(v,g)!=d||g>=h.from&&v<=h.to)return{range:m};let k=i.changes({from:v,to:g,insert:e.insert}),L=m.to-s.to;return{changes:k,range:c?Z.range(Math.max(0,c.anchor+L),Math.max(0,c.head+L)):m.map(k)}})}else n={changes:l,selection:c&&i.selection.replaceRange(c)}}let a="input.type";return(r.composing||r.inputState.compositionPendingChange&&r.inputState.compositionEndedAt>Date.now()-50)&&(r.inputState.compositionPendingChange=!1,a+=".compose",r.inputState.compositionFirstChange&&(a+=".start",r.inputState.compositionFirstChange=!1)),i.update(n,{userEvent:a,scrollIntoView:!0})}function rv(r,e,t,n){let i=Math.min(r.length,e.length),s=0;for(;s<i&&r.charCodeAt(s)==e.charCodeAt(s);)s++;if(s==i&&r.length==e.length)return null;let o=r.length,a=e.length;for(;o>0&&a>0&&r.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(n=="end"){let l=Math.max(0,s-Math.min(o,a));t-=o+l-s}if(o<s&&r.length<e.length){let l=t<=s&&t>=o?s-t:0;s-=l,a=s+(a-o),o=s}else if(a<s){let l=t<=s&&t>=a?s-t:0;s-=l,o=s+(o-a),a=s}return{from:s,toA:o,toB:a}}function pC(r){let e=[];if(r.root.activeElement!=r.contentDOM)return e;let{anchorNode:t,anchorOffset:n,focusNode:i,focusOffset:s}=r.observer.selectionRange;return t&&(e.push(new ud(t,n)),(i!=t||s!=n)&&e.push(new ud(i,s))),e}function mC(r,e){if(r.length==0)return null;let t=r[0].pos,n=r.length==2?r[1].pos:t;return t>-1&&n>-1?Z.single(t+e,n+e):null}function fd(r,e){return e.head==r.main.head&&e.anchor==r.main.anchor}var Tp=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.touchActive=!1,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.lastIOSMomentumScroll=0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,ce.safari&&e.contentDOM.addEventListener("input",()=>null),ce.gecko&&AC(e.contentDOM.ownerDocument)}handleEvent(e){!wC(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let n=this.handlers[e];if(n){for(let i of n.observers)i(this.view,t);for(let i of n.handlers){if(t.defaultPrevented)break;if(i(this.view,t)){t.preventDefault();break}}}}ensureHandl Line truncated
`))};if((ce.mac||ce.android)&&h.from==o-1&&/^\. ?$/.test(n.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(h={from:a,to:l,insert:Le.of([n.text.replace("."," ")])}),this.pendingContextChange=h,!e.state.readOnly){let u=this.to-this.from+(h.to-h.from+h.insert.length);am(e,h,Z.single(this.toEditorPos(n.selectionStart,u),this.toEditorPos(n.selectionEnd,u)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),h.from<h.to&&!h.insert.length&&e.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,n.updateRangeStart-1),Math.min(t.text.length,n.updateRangeStart+1)))&&this.handlers.compositionend(n)},this.handlers.characterboundsupdate=n=>{let i=[],s=null;for(let o=this.toEditorPos(n.rangeStart),a=this.toEditorPos(n.rangeEnd);o<a;o++){let l=e.coordsForChar(o);s=l&&new DOMRect(l.left,l.top,l.right-l.left,l.bottom-l.top)||s||new DOMRect,i.push(s)}t.updateCharacterBounds(n.rangeStart,i)},this.handlers.textformatupdate=n=>{let i=[];for(let s of n.getTextFormats()){let o=s.underlineStyle,a=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(a)){let l=this.toEditorPos(s.rangeStart),c=this.toEditorPos(s.rangeEnd);if(l<c){let d=`text-decoration: underline ${/^[a-z]/.test(o)?o+" ":o=="Dashed"?"dashed ":o=="Squiggle"?"wavy ":""}${/thin/i.test(a)?1:2}px`;i.push(ee.mark({attributes:{style:d}}).range(l,c))}}}e.dispatch({effects:NS.of(ee.set(i))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:n}=this.composing;this.composing=null,n&&this.reset(e.state)}};for(let n in this.handlers)t.addEventListener(n,this.handlers[n]);this.measureReq={read:n=>{let i=ll(n.root);i&&i.rangeCount&&this.editContext.updateSelectionBounds(i.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,n=!1,i=this.pendingContextChange;return e.changes.iterChanges((s,o,a,l,c)=>{if(n)return;let d=c.length-(o-s);if(i&&o>=i.to)if(i.from==s&&i.to==o&&i.insert.eq(c)){i=this.pendingContextChange=null,t+=d,this.to+=d;return}else i=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=d,this.to+=d;else if(s<this.to){if(s<this.from||o>this.to||this.to-this.from+c.length>3e4){n=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=d}t+=d}),i&&!n&&this.revertPending(e.state),!n}update(e){let t=this.pendingContextChange,n=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(n.from,n.to)&&e.transactions.some(i=>!i.isUserEvent("input.type")&&i.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),i=this.toContextPos(t.head);(this.editContext.selectionStart!=n||this.editContext.selectionEnd!=i)&&this.editContext.updateSelection(n,i)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to<e.doc.length&&this.to-t<500||this.to-this.from>1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let n=this.composing;return n&&n.drifted?n.editorBase+(e-n.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},N=class r{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM Line truncated
-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,Fp),nE={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},tp=null;function iE(){var r;if(tp==null&&typeof document!="undefined"&&document.body){let e=document.body.style;tp=((r=e.tabSize)!==null&&r!==void 0?r:e.MozTabSize)!=null}return tp||!1}var nd=le.define({combine(r){let e=Nr(r,{render:null,specialChars:rE,addSpecialChars:null});return(e.replaceTabs=!iE())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,Fp)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Fp)),e}});function xv(r={}){return[nd.of(r),sE()]}var pS=null;function sE(){return pS||(pS=at.fromClass(class{constructor(r){this.view=r,this.decorations=ee.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(r.state.facet(nd)),this.decorations=this.decorator.createDeco(r)}makeDecorator(r){return new dl({regexp:r.specialChars,decoration:(e,t,n)=>{let{doc:i}=t.state,s=Mn(e[0],0);if(s==9){let o=i.lineAt(n),a=t.state.tabSize,l=Gt(o.text,a,n-o.from);return ee.replace({widget:new jp((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=ee.replace({widget:new Np(r,s)}))},boundary:r.replaceTabs?void 0:/[^]/})}update(r){let e=r.state.facet(nd);r.startState.facet(nd)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(r.view)):this.decorations=this.decorator.updateDeco(r,this.decorations)}},{decorations:r=>r.decorations}))}var oE="\u2022";function aE(r){return r>=32?oE:r==10?"\u2424":String.fromCharCode(9216+r)}var Np=class extends Tt{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=aE(this.code),n=e.state.phrase("Control character")+" "+(nE[this.code]||"0x"+this.code.toString(16)),i=this.options.render&&this.options.render(this.code,n,t);if(i)return i;let s=document.createElement("span");return s.textContent=t,s.title=n,s.setAttribute("aria-label",n),s.className="cm-specialChar",s}ignoreEvent(){return!1}},jp=class extends Tt{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function Qd(){return cE}var lE=ee.line({class:"cm-activeLine"}),cE=at.fromClass(class{constructor(r){this.decorations=this.getDeco(r)}update(r){(r.docChanged||r.selectionSet)&&(this.decorations=this.getDeco(r.view))}getDeco(r){let e=-1,t=[];for(let n of r.state.selection.ranges){let i=r.lineBlockAt(n.head);i.from>e&&(t.push(lE.range(i.from)),e=i.from)}return ee.set(t)}},{decorations:r=>r.decorations});var Up=2e3;function dE(r,e,t){let n=Math.min(e.line,t.line),i=Math.max(e.line,t.line),s=[];if(e.off>Up||t.off>Up||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=n;l<=i;l++){let c=r.doc.line(l);c.length<=a&&s.push(Z.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=n;l<=i;l++){let c=r.doc.line(l),d=Vc(c.text,o,r.tabSize,!0);if(d<0)s.push(Z.cursor(c.to));else{let h=Vc(c.text,a,r.tabSize);s.push(Z.range(c.from+d,c.from+h))}}}return s}function hE(r,e){let t=r.coordsAtPos(r.viewport.from);return t?Math.round(Math.abs((t.left-e)/r.defaultCharacterWidth)):-1}function mS(r,e){let t=r.posAtCoords({x:e.clientX,y:e.clientY},!1),n=r.state.doc.lineAt(t),i=t-n.from,s=i>Up?-1:i==n.length?hE(r,e.clientX):Gt(n.text,r.state.tabSize,t-n.from);return{line:n.number,col:s,off:i}}function uE(r,e){let t=mS(r,e),n=r.state.selection;return t?{update(i){if(i.docChanged){let s=i.changes.mapPos(i.startState.doc.line(t.line).from),o=i.state.doc.lineAt(s);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},n=n.map(i.changes)}},get(i,s,o){let a=mS(r,i);if(!a)return n;let l=dE(r.state,t,a);return l.length?o?Z.create(l.concat(n.ranges)):Z.create(l):n}}:null}function Td(r){let e=(r==null?void 0:r.eventFilter)||(t=>t.altKey&&t.button==0);return N.mouseSelectionStyle.of((t,n)=>e(n)?uE(t,n):null)}var fE={Alt:[18,r=>!!r.altKey],Control:[17,r=>!!r.ctrlKey],Shift:[16,r=>!!r.shiftKey],Meta:[91,r=>!!r.metaKey]},pE={style:"cursor: crosshair"};function _d(r={}){let[e,t]=fE[r.key||"Alt"],n=at.fromClass(class{constructor(i){this.view=i,this.isDown=!1}set(i){this.isDown!=i&&(this.isDown=i,this.view.update([]))}},{eventObservers:{keydown(i){this.set(i.keyCode==e||t(i))},keyup(i){(i.keyCode==e||!t(i))&&this.set(!1)},mousemove(i){this.set(t(i))}}}) Line truncated
`&&(t="");else{let n=t.indexOf(`
`);n>-1&&(t=t.slice(0,n))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),n=e+t.length;for(let i=this.rangeIndex;;){let s=this.ranges[i].to;if(s>=n||(t=t.slice(0,s-(n-t.length)),i++,i==this.ranges.length))break;let o=this.ranges[i].from,a=this.lineAfter(o);t+=a,n=o+a.length}return{line:t,end:n}}skipGapsTo(e,t,n){for(;;){let i=this.ranges[this.rangeIndex].to,s=e+t;if(n>0?i>s:i>=s)break;let o=this.ranges[++this.rangeIndex].from;t+=o-i}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to<this.parsedPos;)this.rangeIndex++}emitToken(e,t,n,i){let s=4;if(this.ranges.length>1){i=this.skipGapsTo(t,i,1),t+=i;let a=this.chunk.length;i=this.skipGapsTo(n,i,-1),n+=i,s+=this.chunk.length-a}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==t?this.chunk[o+2]=n:this.chunk.push(e,t,n,s),i}parseLine(e){let{line:t,end:n}=this.nextLine(),i=0,{streamParser:s}=this.lang,o=new Bd(t,e?e.state.tabSize:4,e?ni(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let a=bx(s.token,o,this.state);if(a&&(i=this.emitToken(this.lang.tokenTable.resolve(a),this.parsedPos+o.start,this.parsedPos+o.pos,i)),o.start>1e4)break}this.parsedPos=n,this.moveRangeIndex(),this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let e=Ee.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:vR,topID:0,maxBufferLength:512,reused:this.chunkReused});e=new Ee(e.type,e.children,e.positions,e.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(e),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new Ee(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}};function bx(r,e,t){e.start=e.pos;for(let n=0;n<10;n++){let i=r(e,t);if(e.pos>e.start)return i}throw new Error("Stream parser failed to advance stream.")}var Fm=Object.create(null),yl=[bt.none],vR=new Qi(yl),tx=[],rx=Object.create(null),yx=Object.create(null);for(let[r,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])yx[r]=Sx(Fm,e);var Vd=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),yx)}resolve(e){return e?this.table[e]||(this.table[e]=Sx(this.extra,e)):0}},xR=new Vd(Fm);function _m(r,e){tx.indexOf(r)>-1||(tx.push(r),console.warn(e))}function Sx(r,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let d=r[c]||O[c];d?typeof d=="function"?l.length?l=l.map(d):_m(c,`Modifier ${c} used at start of tag`):l.length?_m(c,`Tag ${c} used as modifier`):l=Array.isArray(d)?d:[d]:_m(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let n=e.replace(/ /g,"_"),i=n+" "+t.map(a=>a.id),s=rx[i];if(s)return s.id;let o=rx[i]=bt.define({id:yl.length,name:n,props:[Ht({[n]:t})]});return yl.push(o),o.id}function wR(r,e){let t=bt.define({id:yl.length,name:"Document",props:[Ai.add(()=>r),Cr.add(()=>n=>e.getIndent(n))],top:!0});return yl.push(t),t}var w8={rtl:ee.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:et.RTL}),ltr:ee.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:et.LTR}),auto:ee.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var jd=class{constructor(e,t,n,i){this.state=e,this.pos=t,this.explicit=n,this.view=i,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=ze(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),i=t.text.slice(n-t.from,this.pos-t.from),s=i.search(kR(e,!1));return s<0?null:{from:n+s,to:this.pos,text:i.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,n){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}};function vx(r){let e=Object.keys(r).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function PR(r){let e=Object.create(null),t=Object.create(null);for(let{label:i}of r){e[i[0]]=!0;for(let s=1;s<i.length;s++)t[i[s]]=!0}let n=vx(e)+vx(t)+"*$";return[new RegExp("^"+n),new RegExp(n)]}function kx(r){let e=r.map(i=>typeof i=="string"?{label:i}:i),[t,n]=e.every(i=>/^\w+$/.test(i.label))?[/\w*$/,/\w+$/]:PR(e);return i=>{let s=i.matchBefore(n);return s||i.explicit?{from:s?s.from:i.pos,options:e,validFor:t}:null}}function $x(r,e){return t=>{for(let n=ze(t.state).reso Line truncated
`;let o=r.state.facet(ri),a=o instanceof Kt?"Lezer LRLanguage":o instanceof Dt?"StreamLanguage":"Unknown",l=o instanceof Kt?"AST ":o instanceof Dt?"Token ":"Name ";return{pos:e,above:!0,arrow:!0,create(c){let d=document.createElement("div");d.style.overflow="visible",d.style.height="0",d.style.width="0";let h=document.createElement("div");return h.className="cm-debug-tooltip",h.textContent=`Parser: ${a}
`);n>-1&&(t=t.slice(0,n))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),n=e+t.length;for(let i=this.rangeIndex;;){let s=this.ranges[i].to;if(s>=n||(t=t.slice(0,s-(n-t.length)),i++,i==this.ranges.length))break;let o=this.ranges[i].from,a=this.lineAfter(o);t+=a,n=o+a.length}return{line:t,end:n}}skipGapsTo(e,t,n){for(;;){let i=this.ranges[this.rangeIndex].to,s=e+t;if(n>0?i>s:i>=s)break;let o=this.ranges[++this.rangeIndex].from;t+=o-i}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to<this.parsedPos;)this.rangeIndex++}emitToken(e,t,n,i){let s=4;if(this.ranges.length>1){i=this.skipGapsTo(t,i,1),t+=i;let a=this.chunk.length;i=this.skipGapsTo(n,i,-1),n+=i,s+=this.chunk.length-a}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==t?this.chunk[o+2]=n:this.chunk.push(e,t,n,s),i}parseLine(e){let{line:t,end:n}=this.nextLine(),i=0,{streamParser:s}=this.lang,o=new Bd(t,e?e.state.tabSize:4,e?ni(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let a=bx(s.token,o,this.state);if(a&&(i=this.emitToken(this.lang.tokenTable.resolve(a),this.parsedPos+o.start,this.parsedPos+o.pos,i)),o.start>1e4)break}this.parsedPos=n,this.moveRangeIndex(),this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let e=Ee.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:xR,topID:0,maxBufferLength:512,reused:this.chunkReused});e=new Ee(e.type,e.children,e.positions,e.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(e),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new Ee(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}};function bx(r,e,t){e.start=e.pos;for(let n=0;n<10;n++){let i=r(e,t);if(e.pos>e.start)return i}throw new Error("Stream parser failed to advance stream.")}var Fm=Object.create(null),yl=[bt.none],xR=new Qi(yl),tx=[],rx=Object.create(null),yx=Object.create(null);for(let[r,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])yx[r]=Sx(Fm,e);var Vd=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),yx)}resolve(e){return e?this.table[e]||(this.table[e]=Sx(this.extra,e)):0}},wR=new Vd(Fm);function _m(r,e){tx.indexOf(r)>-1||(tx.push(r),console.warn(e))}function Sx(r,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let d=r[c]||O[c];d?typeof d=="function"?l.length?l=l.map(d):_m(c,`Modifier ${c} used at start of tag`):l.length?_m(c,`Tag ${c} used as modifier`):l=Array.isArray(d)?d:[d]:_m(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let n=e.replace(/ /g,"_"),i=n+" "+t.map(a=>a.id),s=rx[i];if(s)return s.id;let o=rx[i]=bt.define({id:yl.length,name:n,props:[Kt({[n]:t})]});return yl.push(o),o.id}function PR(r,e){let t=bt.define({id:yl.length,name:"Document",props:[Ai.add(()=>r),Cr.add(()=>n=>e.getIndent(n))],top:!0});return yl.push(t),t}var P8={rtl:ee.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:et.RTL}),ltr:ee.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:et.LTR}),auto:ee.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var jd=class{constructor(e,t,n,i){this.state=e,this.pos=t,this.explicit=n,this.view=i,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=ze(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),i=t.text.slice(n-t.from,this.pos-t.from),s=i.search($R(e,!1));return s<0?null:{from:n+s,to:this.pos,text:i.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,n){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}};function vx(r){let e=Object.keys(r).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function kR(r){let e=Object.create(null),t=Object.create(null);for(let{label:i}of r){e[i[0]]=!0;for(let s=1;s<i.length;s++)t[i[s]]=!0}let n=vx(e)+vx(t)+"*$";return[new RegExp("^"+n),new RegExp(n)]}function kx(r){let e=r.map(i=>typeof i=="string"?{label:i}:i),[t,n]=e.every(i=>/^\w+$/.test(i.label))?[/\w*$/,/\w+$/]:kR(e);return i=>{let s=i.matchBefore(n);return s||i.explicit?{from:s?s.from:i.pos,options:e,validFor:t}:null}}function $x(r,e){return t=>{for(let n=ze(t.state).reso Line truncated
`;let o=r.state.facet(ri),a=o instanceof Jt?"Lezer LRLanguage":o instanceof Dt?"StreamLanguage":"Unknown",l=o instanceof Jt?"AST ":o instanceof Dt?"Token ":"Name ";return{pos:e,above:!0,arrow:!0,create(c){let d=document.createElement("div");d.style.overflow="visible",d.style.height="0",d.style.width="0";let h=document.createElement("div");return h.className="cm-debug-tooltip",h.textContent=`Parser: ${a}
${l}: ${n.name}
Tags : ${s}`,h.style.whiteSpace="pre-wrap",h.style.fontFamily="monospace",h.style.background="#333",h.style.color="white",h.style.padding="2px 8px",h.style.borderRadius="4px",h.style.fontSize="12px",h.style.border="1px solid #555",h.style.pointerEvents="none",h.style.position="absolute",h.style.bottom="0",h.style.width="max-content",d.appendChild(h),{dom:d}}}},{hoverTime:10,hideOnChange:!0});var NR=r=>{let{state:e}=r,t=e.doc.lineAt(e.selection.main.from),n=nO(r.state,t.from);return n.line?jR(r):n.block?qR(r):!1};function rO(r,e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let i=r(e,t);return i?(n(t.update(i)),!0):!1}}var jR=rO(KR,0);var UR=rO(Vx,0);var qR=rO((r,e)=>Vx(r,e,HR(e)),0);function nO(r,e){let t=r.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var wl=50;function GR(r,{open:e,close:t},n,i){let s=r.sliceDoc(n-wl,n),o=r.sliceDoc(i,i+wl),a=/\s*$/.exec(s)[0].length,l=/^\s*/.exec(o)[0].length,c=s.length-a;if(s.slice(c-e.length,c)==e&&o.slice(l,l+t.length)==t)return{open:{pos:n-a,margin:a&&1},close:{pos:i+l,margin:l&&1}};let d,h;i-n<=2*wl?d=h=r.sliceDoc(n,i):(d=r.sliceDoc(n,n+wl),h=r.sliceDoc(i-wl,i));let u=/^\s*/.exec(d)[0].length,f=/\s*$/.exec(h)[0].length,m=h.length-f-t.length;return d.slice(u,u+e.length)==e&&h.slice(m,m+t.length)==t?{open:{pos:n+u+e.length,margin:/\s/.test(d.charAt(u+e.length))?1:0},close:{pos:i-f-t.length,margin:/\s/.test(h.charAt(m-1))?1:0}}:null}function HR(r){let e=[];for(let t of r.selection.ranges){let n=r.doc.lineAt(t.from),i=t.to<=n.to?n:r.doc.lineAt(t.to);i.from>n.from&&i.from==t.to&&(i=t.to==n.to+1?n:r.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>n.from?e[s].to=i.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:i.to})}return e}function Vx(r,e,t=e.selection.ranges){let n=t.map(s=>nO(e,s.from).block);if(!n.every(s=>s))return null;let i=t.map((s,o)=>GR(e,n[o],s.from,s.to));if(r!=2&&!i.every(s=>s))return{changes:e.changes(t.map((s,o)=>i[o]?[]:[{from:s.from,insert:n[o].open+" "},{from:s.to,insert:" "+n[o].close}]))};if(r!=1&&i.some(s=>s)){let s=[];for(let o=0,a;o<i.length;o++)if(a=i[o]){let l=n[o],{open:c,close:d}=a;s.push({from:c.pos-l.open.length,to:c.pos+c.margin},{from:d.pos-d.margin,to:d.pos+l.close.length})}return{changes:s}}return null}function KR(r,e,t=e.selection.ranges){let n=[],i=-1;e:for(let{from:s,to:o}of t){let a=n.length,l=1e9,c;for(let d=s;d<=o;){let h=e.doc.lineAt(d);if(c==null&&(c=nO(e,h.from).line,!c))continue e;if(h.from>i&&(s==o||o>h.from)){i=h.from;let u=/^\s*/.exec(h.text)[0].length,f=u==h.length,m=h.text.slice(u,u+c.length)==c?u:-1;u<h.text.length&&u<l&&(l=u),n.push({line:h,comment:m,token:c,indent:u,empty:f,single:!1})}d=h.to+1}if(l<1e9)for(let d=a;d<n.length;d++)n[d].indent<n[d].line.text.length&&(n[d].indent=l);n.length==a+1&&(n[a].single=!0)}if(r!=2&&n.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:a,token:l,indent:c,empty:d,single:h}of n)(h||!d)&&s.push({from:a.from+c,insert:l+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(r!=1&&n.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:a,token:l}of n)if(a>=0){let c=o.from+a,d=c+l.length;o.text[d-o.from]==" "&&d++,s.push({from:c,to:d})}return{changes:s}}return null}var Jm=Qr.define(),Hd=Qr.define(),JR=le.define(),Yx=le.define({combine(r){return Fr(r,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,i)=>e(n,i)||t(n,i)})}}),Fx=Ze.define({create(){return Ks.empty},update(r,e){let t=e.state.facet(Yx),n=e.annotation(Jm);if(n){let l=Xn.fromTransaction(e,n.selection),c=n.side,d=c==0?r.undone:r.done;return l?d=Gd(d,d.length,t.minDepth,l):d=Ux(d,e.startState.selection),new Ks(c==0?n.rest:d,c==0?d:n.rest)}let i=e.annotation(Hd);if((i=="full"||i=="before")&&(r=r.isolate()),e.annotation(dt.addToHistory)===!1)return e.changes.empty?r:r.addMapping(e.changes.desc);let s=Xn.fromTransaction(e),o=e.annotation(dt.time),a=e.annotation(dt.userEvent);return s?r=r.addChanges(s,o,a,t,e):e.selection&&(r=r.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(i=="full"||i=="after")&&(r=r.isolate()),r},toJSON(r){return{done:r.done.map(e=>e.toJSON()),undone:r.undone.map(e=>e.toJSON())}},fromJSON(r){return new Ks(r.done.map(Xn.fromJSON),r.undone.map(Xn.fromJSON))}});function Nx(r={}){return[Fx,Yx.of(r),N.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?Pl:e.inputType=="historyRedo"?Ko:null;return n?(e.preventDefault(),n(t)):!1}})]}function Kd(r,e){return function({state:t,dispatch:n}){if(!e&&t.readOnly)return!1;let i=t.field(Fx,!1);if(!i)return!1;let s=i.pop(r,t,e);return s?(n(s),!0):!1}}var Pl=Kd(0,!1),Ko=Kd(1,!1),e2=Kd(0,!0),t2=Kd(1,!0);var Xn=class r{constructor(e,t,n,i,s){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=i,this.selectionsAfter=s}setSelAfter(e){return new r(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this Line truncated
`,2e3)){if(!a.trim())continue;if(a[0]==" "){t++;continue}let l=a.length-a.trimStart().length;l>0&&n++;let c=l-i;c>=2&&c<=8&&e.set(c,(e.get(c)||0)+1),i=l}if(t>n)return" ";let s=2,o=0;for(let[a,l]of e)(l>o||l==o&&a<s)&&(s=a,o=l);return" ".repeat(s)}function eM(r){let e=r.state;return e.selection.ranges.some(t=>!t.empty)?rh(r):(r.dispatch(e.changeByRange(t=>{let n=J2(e,t.head);return{changes:{from:t.head,insert:n},range:Z.cursor(t.head+n.length)}}),{scrollIntoView:!0,userEvent:"input"}),!0)}function tM(r){for(let e=1;e<=r.doc.lines;e++)if(/^\d\d/.test(r.doc.line(e).text))return!0;return!1}var kw=[{key:"Enter",run:r=>tM(r.state)&&Sw(r)}],$w=[{key:"Tab",run:eM},{key:"Shift-Tab",run:nh}],Qw=[{key:"Tab",run:xw},{key:"Shift-Tab",run:nh}],$l=50,ih=8,rM=!0;function ea(r){rM&&console.log("[asm-tab] "+r)}function ta(r,e){let t=0;for(let n=0;n<e;n++)t=r.charCodeAt(n)==9?(Math.floor(t/ih)+1)*ih:t+1;return t}function oO(r,e){r>0&&e.set(r,(e.get(r)||0)+1)}function nM(r,e){let t=[],n=/\S+/g,i;for(;(i=n.exec(r))!==null&&r[i.index]!=";";)t.push(ta(r,i.index));let s=/(^|\s);/.exec(r);s&&oO(ta(r,s.index+s[1].length),e);let o=t.length&&t[0]==0?t.slice(1):t;o.length>=1&&oO(o[0],e),o.length>=2&&oO(o[1],e)}var iM=3;function Tw(r,e){let t=r.doc.lineAt(e),n=r.doc.lines,i=(a,l,c,d)=>{let h=0;for(let u=a;u!=l&&h<$l;u+=c){let f=r.doc.line(u);f.text.trim()&&(nM(f.text,d),h++)}return h},s=new Map;return i(t.number+1,Math.min(n,t.number+$l)+1,1,s)<iM&&i(t.number-1,Math.max(1,t.number-$l)-1,-1,s),s}function sM(r,e,t){let n=-1,i=0;for(let[s,o]of r)s>e&&(o>i||o==i&&s<n)&&(n=s,i=o);return n>=0?n:(Math.floor(e/t)+1)*t}function oM(r,e,t){let n=-1,i=0;for(let[s,o]of r)s<e&&(o>i||o==i&&s>n)&&(n=s,i=o);return n>=0?n:Math.max(0,Math.min(Math.floor((e-1)/t)*t,e-1))}function _w(r,e){let t=r.doc.lineAt(e),n=Math.max(1,t.number-$l),i=Math.min(r.doc.lines,t.number+$l);for(let s=n;s<=i;s++)if(r.doc.line(s).text.includes(" "))return!0;return!1}function Aw(r){return"["+[...r.entries()].sort((e,t)=>e[0]-t[0]).map(([e,t])=>`${e}:${t}`).join(" ")+"]"}function aM(r,e){let t=r.doc.lineAt(e),n=ta(t.text,e-t.from),i=_w(r,e),s=i?ih:r.tabSize,o=Tw(r,e),a=sM(o,n,s);return ea(`Tab @ line ${t.number} col ${n}: stops(col:freq)=${Aw(o)} ${i?"grid=8 (file has tabs)":`grid=${r.tabSize}`} -> target=${a} | line=${JSON.stringify(t.text.slice(0,n))}+CURSOR`),a<=n?null:{from:e,insert:" ".repeat(a-n)}}function lM(r,e){let t=r.doc.lineAt(e),n=e-t.from;if(n==0)return ea(`Backspace @ line ${t.number} col 0: start of line, using default`),null;if(t.text[n-1]==" ")return ea(`Backspace @ line ${t.number} col ${ta(t.text,n)}: deleting one tab char`),{from:e-1,to:e};if(!/^[ \t]+$/.test(t.text.slice(0,n)))return ea(`Backspace @ line ${t.number} col ${ta(t.text,n)}: cursor not in leading whitespace, using default`),null;let i=_w(r,e),s=i?ih:r.tabSize,o=ta(t.text,n),a=Tw(r,e),l=oM(a,o,s);if(l>=o)return ea(`Backspace @ line ${t.number} col ${o}: no stop before cursor, using default`),null;let c=e-(o-l);return ea(`Backspace @ line ${t.number} col ${o}: stops(col:freq)=${Aw(a)} ${i?"grid=8 (file has tabs)":`grid=${r.tabSize}`} -> deleting cols ${l}..${o} | line=${JSON.stringify(t.text.slice(0,n))}+CURSOR`),{from:c,to:e}}function cM(r){let e=r.state;if(e.selection.ranges.some(n=>!n.empty))return!1;let t=e.changeByRange(n=>{let i=aM(e,n.head);return i?{changes:i,range:Z.cursor(n.head+i.insert.length)}:{range:n}});return r.dispatch(t),!0}function dM(r){let e=r.state,t=e.selection.main;if(!t.empty)return!1;let n=lM(e,t.head);return n?(r.dispatch(e.update({changes:n,selection:Z.cursor(n.from)})),!0):!1}function Cw(r){return[{key:"Tab",run:e=>r()&&cM(e)},{key:"Backspace",run:e=>r()&&dM(e)}]}var hM=new Bt,uM=new Bt,fM=new Bt,pM=new Bt,mM=new Bt,OM=new Bt,gM=new Bt,bM=new Bt,Rw="8bitworkshop/editorSettings",Ew={tabSize:8,tabsToSpaces:!0,highlightSpecialChars:!1,highlightWhitespace:!1,highlightTrailingWhitespace:!1,closeBrackets:!1,debugHighlightTags:!1,showLineNumbers:!1,showStatusBar:!0};function ra(){try{var r=localStorage.getItem(Rw);if(r)return gt(gt({},Ew),JSON.parse(r))}catch(e){}return gt({},Ew)}function yM(r){localStorage.setItem(Rw,JSON.stringify(r))}var Mw=[[pM,r=>[Me.tabSize.of(r.tabSize),bn.of(" ".repeat(r.tabSize))]],[OM,r=>Sr.of(r.tabsToSpaces?$w:Qw)],[hM,r=>r.highlightSpecialChars?xv():[]],[uM,r=>r.highlightWhitespace?Ev():[]],[fM,r=>r.highlightTrailingWhitespace?Rv():[]],[mM,r=>r.closeBrackets?[_x(),Sr.of([{key:"Backspace",run:Ex}])]:[]],[gM,r=>r.debugHighlightTags?Mx:[]],[bM,r=>r.showLineNumbers?Ad():[]]];function Lw(r){return Mw.map(([e,t])=>e.of(t(r)))}var Dw=new Set;function Iw(r){Dw.add(r)}function SM(r){var e=Mw.map(([n,i])=>n.reconfigure(i(r)));for(var t of Dw)t.dispatch({effects:e})}function Zw(){var r=ra(),e=!wo();bootbox.dialog({onEscape:!0,title:"Settings",message:`<form id="settingsForm" onsubmit="return false">
Tags : ${s}`,h.style.whiteSpace="pre-wrap",h.style.fontFamily="monospace",h.style.background="#333",h.style.color="white",h.style.padding="2px 8px",h.style.borderRadius="4px",h.style.fontSize="12px",h.style.border="1px solid #555",h.style.pointerEvents="none",h.style.position="absolute",h.style.bottom="0",h.style.width="max-content",d.appendChild(h),{dom:d}}}},{hoverTime:10,hideOnChange:!0});var jR=r=>{let{state:e}=r,t=e.doc.lineAt(e.selection.main.from),n=nO(r.state,t.from);return n.line?UR(r):n.block?GR(r):!1};function rO(r,e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let i=r(e,t);return i?(n(t.update(i)),!0):!1}}var UR=rO(JR,0);var qR=rO(Vx,0);var GR=rO((r,e)=>Vx(r,e,KR(e)),0);function nO(r,e){let t=r.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var wl=50;function HR(r,{open:e,close:t},n,i){let s=r.sliceDoc(n-wl,n),o=r.sliceDoc(i,i+wl),a=/\s*$/.exec(s)[0].length,l=/^\s*/.exec(o)[0].length,c=s.length-a;if(s.slice(c-e.length,c)==e&&o.slice(l,l+t.length)==t)return{open:{pos:n-a,margin:a&&1},close:{pos:i+l,margin:l&&1}};let d,h;i-n<=2*wl?d=h=r.sliceDoc(n,i):(d=r.sliceDoc(n,n+wl),h=r.sliceDoc(i-wl,i));let u=/^\s*/.exec(d)[0].length,f=/\s*$/.exec(h)[0].length,m=h.length-f-t.length;return d.slice(u,u+e.length)==e&&h.slice(m,m+t.length)==t?{open:{pos:n+u+e.length,margin:/\s/.test(d.charAt(u+e.length))?1:0},close:{pos:i-f-t.length,margin:/\s/.test(h.charAt(m-1))?1:0}}:null}function KR(r){let e=[];for(let t of r.selection.ranges){let n=r.doc.lineAt(t.from),i=t.to<=n.to?n:r.doc.lineAt(t.to);i.from>n.from&&i.from==t.to&&(i=t.to==n.to+1?n:r.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>n.from?e[s].to=i.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:i.to})}return e}function Vx(r,e,t=e.selection.ranges){let n=t.map(s=>nO(e,s.from).block);if(!n.every(s=>s))return null;let i=t.map((s,o)=>HR(e,n[o],s.from,s.to));if(r!=2&&!i.every(s=>s))return{changes:e.changes(t.map((s,o)=>i[o]?[]:[{from:s.from,insert:n[o].open+" "},{from:s.to,insert:" "+n[o].close}]))};if(r!=1&&i.some(s=>s)){let s=[];for(let o=0,a;o<i.length;o++)if(a=i[o]){let l=n[o],{open:c,close:d}=a;s.push({from:c.pos-l.open.length,to:c.pos+c.margin},{from:d.pos-d.margin,to:d.pos+l.close.length})}return{changes:s}}return null}function JR(r,e,t=e.selection.ranges){let n=[],i=-1;e:for(let{from:s,to:o}of t){let a=n.length,l=1e9,c;for(let d=s;d<=o;){let h=e.doc.lineAt(d);if(c==null&&(c=nO(e,h.from).line,!c))continue e;if(h.from>i&&(s==o||o>h.from)){i=h.from;let u=/^\s*/.exec(h.text)[0].length,f=u==h.length,m=h.text.slice(u,u+c.length)==c?u:-1;u<h.text.length&&u<l&&(l=u),n.push({line:h,comment:m,token:c,indent:u,empty:f,single:!1})}d=h.to+1}if(l<1e9)for(let d=a;d<n.length;d++)n[d].indent<n[d].line.text.length&&(n[d].indent=l);n.length==a+1&&(n[a].single=!0)}if(r!=2&&n.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:a,token:l,indent:c,empty:d,single:h}of n)(h||!d)&&s.push({from:a.from+c,insert:l+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(r!=1&&n.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:a,token:l}of n)if(a>=0){let c=o.from+a,d=c+l.length;o.text[d-o.from]==" "&&d++,s.push({from:c,to:d})}return{changes:s}}return null}var Jm=Qr.define(),Hd=Qr.define(),e2=le.define(),Yx=le.define({combine(r){return Nr(r,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,i)=>e(n,i)||t(n,i)})}}),Fx=Ze.define({create(){return Ks.empty},update(r,e){let t=e.state.facet(Yx),n=e.annotation(Jm);if(n){let l=Xn.fromTransaction(e,n.selection),c=n.side,d=c==0?r.undone:r.done;return l?d=Gd(d,d.length,t.minDepth,l):d=Ux(d,e.startState.selection),new Ks(c==0?n.rest:d,c==0?d:n.rest)}let i=e.annotation(Hd);if((i=="full"||i=="before")&&(r=r.isolate()),e.annotation(dt.addToHistory)===!1)return e.changes.empty?r:r.addMapping(e.changes.desc);let s=Xn.fromTransaction(e),o=e.annotation(dt.time),a=e.annotation(dt.userEvent);return s?r=r.addChanges(s,o,a,t,e):e.selection&&(r=r.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(i=="full"||i=="after")&&(r=r.isolate()),r},toJSON(r){return{done:r.done.map(e=>e.toJSON()),undone:r.undone.map(e=>e.toJSON())}},fromJSON(r){return new Ks(r.done.map(Xn.fromJSON),r.undone.map(Xn.fromJSON))}});function Nx(r={}){return[Fx,Yx.of(r),N.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?Pl:e.inputType=="historyRedo"?Ko:null;return n?(e.preventDefault(),n(t)):!1}})]}function Kd(r,e){return function({state:t,dispatch:n}){if(!e&&t.readOnly)return!1;let i=t.field(Fx,!1);if(!i)return!1;let s=i.pop(r,t,e);return s?(n(s),!0):!1}}var Pl=Kd(0,!1),Ko=Kd(1,!1),t2=Kd(0,!0),r2=Kd(1,!0);var Xn=class r{constructor(e,t,n,i,s){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=i,this.selectionsAfter=s}setSelAfter(e){return new r(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this Line truncated
`,2e3)){if(!a.trim())continue;if(a[0]==" "){t++;continue}let l=a.length-a.trimStart().length;l>0&&n++;let c=l-i;c>=2&&c<=8&&e.set(c,(e.get(c)||0)+1),i=l}if(t>n)return" ";let s=2,o=0;for(let[a,l]of e)(l>o||l==o&&a<s)&&(s=a,o=l);return" ".repeat(s)}function tM(r){let e=r.state;return e.selection.ranges.some(t=>!t.empty)?rh(r):(r.dispatch(e.changeByRange(t=>{let n=eM(e,t.head);return{changes:{from:t.head,insert:n},range:Z.cursor(t.head+n.length)}}),{scrollIntoView:!0,userEvent:"input"}),!0)}function rM(r){for(let e=1;e<=r.doc.lines;e++)if(/^\d\d/.test(r.doc.line(e).text))return!0;return!1}var kw=[{key:"Enter",run:r=>rM(r.state)&&Sw(r)}],$w=[{key:"Tab",run:tM},{key:"Shift-Tab",run:nh}],Qw=[{key:"Tab",run:xw},{key:"Shift-Tab",run:nh}],$l=50,ih=8,nM=!0;function ea(r){nM&&console.log("[asm-tab] "+r)}function ta(r,e){let t=0;for(let n=0;n<e;n++)t=r.charCodeAt(n)==9?(Math.floor(t/ih)+1)*ih:t+1;return t}function oO(r,e){r>0&&e.set(r,(e.get(r)||0)+1)}function iM(r,e){let t=[],n=/\S+/g,i;for(;(i=n.exec(r))!==null&&r[i.index]!=";";)t.push(ta(r,i.index));let s=/(^|\s);/.exec(r);s&&oO(ta(r,s.index+s[1].length),e);let o=t.length&&t[0]==0?t.slice(1):t;o.length>=1&&oO(o[0],e),o.length>=2&&oO(o[1],e)}var sM=3;function Tw(r,e){let t=r.doc.lineAt(e),n=r.doc.lines,i=(a,l,c,d)=>{let h=0;for(let u=a;u!=l&&h<$l;u+=c){let f=r.doc.line(u);f.text.trim()&&(iM(f.text,d),h++)}return h},s=new Map;return i(t.number+1,Math.min(n,t.number+$l)+1,1,s)<sM&&i(t.number-1,Math.max(1,t.number-$l)-1,-1,s),s}function oM(r,e,t){let n=-1,i=0;for(let[s,o]of r)s>e&&(o>i||o==i&&s<n)&&(n=s,i=o);return n>=0?n:(Math.floor(e/t)+1)*t}function aM(r,e,t){let n=-1,i=0;for(let[s,o]of r)s<e&&(o>i||o==i&&s>n)&&(n=s,i=o);return n>=0?n:Math.max(0,Math.min(Math.floor((e-1)/t)*t,e-1))}function _w(r,e){let t=r.doc.lineAt(e),n=Math.max(1,t.number-$l),i=Math.min(r.doc.lines,t.number+$l);for(let s=n;s<=i;s++)if(r.doc.line(s).text.includes(" "))return!0;return!1}function Aw(r){return"["+[...r.entries()].sort((e,t)=>e[0]-t[0]).map(([e,t])=>`${e}:${t}`).join(" ")+"]"}function lM(r,e){let t=r.doc.lineAt(e),n=ta(t.text,e-t.from),i=_w(r,e),s=i?ih:r.tabSize,o=Tw(r,e),a=oM(o,n,s);return ea(`Tab @ line ${t.number} col ${n}: stops(col:freq)=${Aw(o)} ${i?"grid=8 (file has tabs)":`grid=${r.tabSize}`} -> target=${a} | line=${JSON.stringify(t.text.slice(0,n))}+CURSOR`),a<=n?null:{from:e,insert:" ".repeat(a-n)}}function cM(r,e){let t=r.doc.lineAt(e),n=e-t.from;if(n==0)return ea(`Backspace @ line ${t.number} col 0: start of line, using default`),null;if(t.text[n-1]==" ")return ea(`Backspace @ line ${t.number} col ${ta(t.text,n)}: deleting one tab char`),{from:e-1,to:e};if(!/^[ \t]+$/.test(t.text.slice(0,n)))return ea(`Backspace @ line ${t.number} col ${ta(t.text,n)}: cursor not in leading whitespace, using default`),null;let i=_w(r,e),s=i?ih:r.tabSize,o=ta(t.text,n),a=Tw(r,e),l=aM(a,o,s);if(l>=o)return ea(`Backspace @ line ${t.number} col ${o}: no stop before cursor, using default`),null;let c=e-(o-l);return ea(`Backspace @ line ${t.number} col ${o}: stops(col:freq)=${Aw(a)} ${i?"grid=8 (file has tabs)":`grid=${r.tabSize}`} -> deleting cols ${l}..${o} | line=${JSON.stringify(t.text.slice(0,n))}+CURSOR`),{from:c,to:e}}function dM(r){let e=r.state;if(e.selection.ranges.some(n=>!n.empty))return!1;let t=e.changeByRange(n=>{let i=lM(e,n.head);return i?{changes:i,range:Z.cursor(n.head+i.insert.length)}:{range:n}});return r.dispatch(t),!0}function hM(r){let e=r.state,t=e.selection.main;if(!t.empty)return!1;let n=cM(e,t.head);return n?(r.dispatch(e.update({changes:n,selection:Z.cursor(n.from)})),!0):!1}function Cw(r){return[{key:"Tab",run:e=>r()&&dM(e)},{key:"Backspace",run:e=>r()&&hM(e)}]}var uM=new Bt,fM=new Bt,pM=new Bt,mM=new Bt,OM=new Bt,gM=new Bt,bM=new Bt,yM=new Bt,Rw="8bitworkshop/editorSettings",Ew={tabSize:8,tabsToSpaces:!0,highlightSpecialChars:!1,highlightWhitespace:!1,highlightTrailingWhitespace:!1,closeBrackets:!1,debugHighlightTags:!1,showLineNumbers:!1,showStatusBar:!0};function ra(){try{var r=localStorage.getItem(Rw);if(r)return gt(gt({},Ew),JSON.parse(r))}catch(e){}return gt({},Ew)}function SM(r){localStorage.setItem(Rw,JSON.stringify(r))}var Mw=[[mM,r=>[Me.tabSize.of(r.tabSize),bn.of(" ".repeat(r.tabSize))]],[gM,r=>Sr.of(r.tabsToSpaces?$w:Qw)],[uM,r=>r.highlightSpecialChars?xv():[]],[fM,r=>r.highlightWhitespace?Ev():[]],[pM,r=>r.highlightTrailingWhitespace?Rv():[]],[OM,r=>r.closeBrackets?[_x(),Sr.of([{key:"Backspace",run:Ex}])]:[]],[bM,r=>r.debugHighlightTags?Mx:[]],[yM,r=>r.showLineNumbers?Ad():[]]];function Lw(r){return Mw.map(([e,t])=>e.of(t(r)))}var Dw=new Set;function Iw(r){Dw.add(r)}function vM(r){var e=Mw.map(([n,i])=>n.reconfigure(i(r)));for(var t of Dw)t.dispatch({effects:e})}function Zw(){var r=ra(),e=!wo();bootbox.dialog({onEscape:!0,title:"Settings",message:`<form id="settingsForm" onsubmit="return false">
<div class="form-group"><label>Tab size: <input type="number" id="setting_tabSize" min="1" max="40" value="${r.tabSize}" style="width:4em"></label></div>
<div class="checkbox"><label><input type="checkbox" id="setting_tabsToSpaces" ${r.tabsToSpaces?"checked":""}> Insert spaces when pressing TAB</label></div>
<div class="checkbox"><label><input type="checkbox" id="setting_highlightSpecialChars" ${r.highlightSpecialChars?"checked":""}> Highlight special characters</label></div>
@@ -38,23 +38,23 @@ Tags : ${s}`,h.style.whiteSpace="pre-wrap",h.style.fontFamily="monospace",h.sty
<h5>Internal</h5>
<div class="checkbox"><label><input type="checkbox" id="setting_debugHighlightTags" ${r.debugHighlightTags?"checked":""}> Debug editor syntax highlighting tags</label></div>
`:""}
</form>`,buttons:{cancel:{label:"Cancel",className:"btn-default"},ok:{label:"Save",className:"btn-primary",callback:()=>{r.tabSize=parseInt($("#setting_tabSize").val())||8,r.tabsToSpaces=$("#setting_tabsToSpaces").is(":checked"),r.highlightSpecialChars=$("#setting_highlightSpecialChars").is(":checked"),r.highlightWhitespace=$("#setting_highlightWhitespace").is(":checked"),r.highlightTrailingWhitespace=$("#setting_highlightTrailingWhitespace").is(":checked"),r.closeBrackets=$("#setting_closeBrackets").is(":checked"),r.showLineNumbers=$("#setting_showLineNumbers").is(":checked"),e&&(r.debugHighlightTags=$("#setting_debugHighlightTags").is(":checked")),r.showStatusBar=$("#setting_showStatusBar").is(":checked"),yM(r),SM(r),kc(r.showStatusBar)}}}})}function sh(){return typeof navigator!="undefined"?navigator.storage:null}function vM(r){var e=r!==void 0?r:sh();return!!(e&&typeof e.persist=="function")}async function xM(r){var e=r!==void 0?r:sh();try{if(e&&typeof e.estimate=="function"){var t=await e.estimate();return{usage:t&&t.usage,quota:t&&t.quota}}}catch(n){console.log("storage.estimate() failed",n)}return{}}async function wM(r){var e=r!==void 0?r:sh(),t={supported:vM(e),persisted:!1};try{e&&typeof e.persisted=="function"&&(t.persisted=await e.persisted())}catch(i){console.log("storage.persisted() failed",i)}var n=await xM(e);return t.usage=n.usage,t.quota=n.quota,t}async function lO(r){var e=r!==void 0?r:sh(),t=await wM(e);if(!t.supported||t.persisted)return t.granted=!1,t;try{t.persisted=await e.persist(),t.granted=t.persisted}catch(n){console.log("storage.persist() failed",n),t.granted=!1}return t}function PM(r){return r==null&&(r=typeof navigator!="undefined"?navigator.userAgent:""),r?/Edg\/|OPR\/|Chrome\/|Chromium\//.test(r)?"chromium":/Firefox\/|FxiOS\//.test(r)?"firefox":/Safari\//.test(r)?"safari":"other":"other"}function Xw(r){if(typeof r!="number"||!isFinite(r))return"?";for(var e=["bytes","KB","MB","GB","TB"],t=0;r>=1024&&t<e.length-1;)r/=1024,t++;return(t==0?r.toFixed(0):r.toFixed(1))+" "+e[t]}function zw(r){return r.usage==null&&r.quota==null?"":"This site is using "+Xw(r.usage)+" of the "+Xw(r.quota)+" your browser allows."}var aO="Your edits are still saved in this browser either way &mdash; persistence only protects them if the browser needs to reclaim disk space. Use <b>File &gt; Download All Changes as ZIP</b> (or push to GitHub) to keep a backup.";function Ww(r){switch(r||PM()){case"chromium":return"Chrome and Edge never ask &mdash; they grant persistent storage on their own to sites you use regularly. Bookmarking this page, or installing it as an app, usually qualifies it; then try <b>Request Local Storage Permissions</b> again.";case"firefox":return"Firefox asks for permission the first time. If you dismissed or blocked that prompt, clear it from the padlock icon in the address bar and try <b>Request Local Storage Permissions</b> again.";case"safari":return"Safari decides on its own, and may delete site data after several days without a visit. Adding this page to your Favorites or Home Screen makes eviction less likely.";default:return"This browser decides on its own whether to keep site data."}}function kM(){return"This browser doesn't support persistent storage, so it may discard your local file edits when it needs disk space. "+aO}function Bw(r,e){var t=zw(r),n;return r.supported?r.persisted?n=(r.granted?"Your browser just granted persistent storage. ":"Your browser is already persisting your local file edits. ")+aO:n="Your browser has not granted persistent storage, so it may discard your local file edits when it needs disk space.<br><br>"+Ww()+"<br><br>"+aO:n=kM(),t?n+"<br><br>"+t:n}function Vw(r){return"Your browser ran out of space for this site, so your last edit may not have been saved.<br><br>"+zw(r)+" Delete unused projects, or use <b>File &gt; Download All Changes as ZIP</b> to back up your work before it is lost."+(r.supported&&!r.persisted?"<br><br>"+Ww():"")}var Jw=Hu(af());var na=class{constructor(e,t){e=e||[],this.lines=e,this.text=t,this.offset2loc=new Map,this.line2offset=new Map;for(var n of e)n.offset>=0&&(this.offset2loc.has(n.offset)||this.offset2loc.set(n.offset,n),this.line2offset.has(n.line)||this.line2offset.set(n.line,n.offset));this.sortedOffsets=Array.from(this.offset2loc.keys()).sort((i,s)=>i-s)}findLineForOffset(e,t){let n=this.sortedOffsets;for(var i=0,s=n.length-1,o=-1;i<=s;){var a=i+s>>1;n[a]<=e?(o=a,i=a+1):s=a-1}if(o<0)return null;var l=n[o];return e-l>t?null:this.offset2loc.get(l)}lineCount(){return this.lines.length}};function Yw(r){return"errors"in r}function Fw(r){return"output"in r}function ia(r,e){if(e){var t=La(e);t!=""&&r.startsWith(t+"/")&&(r=r.substring(t.length+1))}return r}function $M(r,e){var t=La(e);return t.length>0&&t!="local"?[t+"/"+r,r]:[r]}function QM(r,e,t,n){var i=s=>ny(r,s).map(o=>$M(o,e));return{includes:i(Tc(t,n)),links:i(_c(t,n))}}async function jw(r,e,t,n,i){for(var s=[],o=new Set([ia(e,e)]),a=[{path:e,text:t,tool:i(e)}]Line truncated
</form>`,buttons:{cancel:{label:"Cancel",className:"btn-default"},ok:{label:"Save",className:"btn-primary",callback:()=>{r.tabSize=parseInt($("#setting_tabSize").val())||8,r.tabsToSpaces=$("#setting_tabsToSpaces").is(":checked"),r.highlightSpecialChars=$("#setting_highlightSpecialChars").is(":checked"),r.highlightWhitespace=$("#setting_highlightWhitespace").is(":checked"),r.highlightTrailingWhitespace=$("#setting_highlightTrailingWhitespace").is(":checked"),r.closeBrackets=$("#setting_closeBrackets").is(":checked"),r.showLineNumbers=$("#setting_showLineNumbers").is(":checked"),e&&(r.debugHighlightTags=$("#setting_debugHighlightTags").is(":checked")),r.showStatusBar=$("#setting_showStatusBar").is(":checked"),SM(r),vM(r),kc(r.showStatusBar)}}}})}function sh(){return typeof navigator!="undefined"?navigator.storage:null}function xM(r){var e=r!==void 0?r:sh();return!!(e&&typeof e.persist=="function")}async function wM(r){var e=r!==void 0?r:sh();try{if(e&&typeof e.estimate=="function"){var t=await e.estimate();return{usage:t&&t.usage,quota:t&&t.quota}}}catch(n){console.log("storage.estimate() failed",n)}return{}}async function PM(r){var e=r!==void 0?r:sh(),t={supported:xM(e),persisted:!1};try{e&&typeof e.persisted=="function"&&(t.persisted=await e.persisted())}catch(i){console.log("storage.persisted() failed",i)}var n=await wM(e);return t.usage=n.usage,t.quota=n.quota,t}async function lO(r){var e=r!==void 0?r:sh(),t=await PM(e);if(!t.supported||t.persisted)return t.granted=!1,t;try{t.persisted=await e.persist(),t.granted=t.persisted}catch(n){console.log("storage.persist() failed",n),t.granted=!1}return t}function kM(r){return r==null&&(r=typeof navigator!="undefined"?navigator.userAgent:""),r?/Edg\/|OPR\/|Chrome\/|Chromium\//.test(r)?"chromium":/Firefox\/|FxiOS\//.test(r)?"firefox":/Safari\//.test(r)?"safari":"other":"other"}function Xw(r){if(typeof r!="number"||!isFinite(r))return"?";for(var e=["bytes","KB","MB","GB","TB"],t=0;r>=1024&&t<e.length-1;)r/=1024,t++;return(t==0?r.toFixed(0):r.toFixed(1))+" "+e[t]}function zw(r){return r.usage==null&&r.quota==null?"":"This site is using "+Xw(r.usage)+" of the "+Xw(r.quota)+" your browser allows."}var aO="Your edits are still saved in this browser either way &mdash; persistence only protects them if the browser needs to reclaim disk space. Use <b>File &gt; Download All Changes as ZIP</b> (or push to GitHub) to keep a backup.";function Ww(r){switch(r||kM()){case"chromium":return"Chrome and Edge never ask &mdash; they grant persistent storage on their own to sites you use regularly. Bookmarking this page, or installing it as an app, usually qualifies it; then try <b>Request Local Storage Permissions</b> again.";case"firefox":return"Firefox asks for permission the first time. If you dismissed or blocked that prompt, clear it from the padlock icon in the address bar and try <b>Request Local Storage Permissions</b> again.";case"safari":return"Safari decides on its own, and may delete site data after several days without a visit. Adding this page to your Favorites or Home Screen makes eviction less likely.";default:return"This browser decides on its own whether to keep site data."}}function $M(){return"This browser doesn't support persistent storage, so it may discard your local file edits when it needs disk space. "+aO}function Bw(r,e){var t=zw(r),n;return r.supported?r.persisted?n=(r.granted?"Your browser just granted persistent storage. ":"Your browser is already persisting your local file edits. ")+aO:n="Your browser has not granted persistent storage, so it may discard your local file edits when it needs disk space.<br><br>"+Ww()+"<br><br>"+aO:n=$M(),t?n+"<br><br>"+t:n}function Vw(r){return"Your browser ran out of space for this site, so your last edit may not have been saved.<br><br>"+zw(r)+" Delete unused projects, or use <b>File &gt; Download All Changes as ZIP</b> to back up your work before it is lost."+(r.supported&&!r.persisted?"<br><br>"+Ww():"")}var Jw=Hu(af());var na=class{constructor(e,t){e=e||[],this.lines=e,this.text=t,this.offset2loc=new Map,this.line2offset=new Map;for(var n of e)n.offset>=0&&(this.offset2loc.has(n.offset)||this.offset2loc.set(n.offset,n),this.line2offset.has(n.line)||this.line2offset.set(n.line,n.offset));this.sortedOffsets=Array.from(this.offset2loc.keys()).sort((i,s)=>i-s)}findLineForOffset(e,t){let n=this.sortedOffsets;for(var i=0,s=n.length-1,o=-1;i<=s;){var a=i+s>>1;n[a]<=e?(o=a,i=a+1):s=a-1}if(o<0)return null;var l=n[o];return e-l>t?null:this.offset2loc.get(l)}lineCount(){return this.lines.length}};function Yw(r){return"errors"in r}function Fw(r){return"output"in r}function ia(r,e){if(e){var t=La(e);t!=""&&r.startsWith(t+"/")&&(r=r.substring(t.length+1))}return r}function QM(r,e){var t=La(e);return t.length>0&&t!="local"?[t+"/"+r,r]:[r]}function TM(r,e,t,n){var i=s=>ny(r,s).map(o=>QM(o,e));return{includes:i(Tc(t,n)),links:i(_c(t,n))}}async function jw(r,e,t,n,i){for(var s=[],o=new Set([ia(e,e)]),a=[{path:e,text:t,tool:i(e)}]Line truncated
=====
[Open this project in 8bitworkshop](http://8bitworkshop.com/redir.html?platform=$PLATFORM&githubURL=$GITHUBURL&file=$MAINFILE).
`;function Js(){for(var r={},e=0;e<localStorage.length;e++){var t=localStorage.key(e);if(t.startsWith("__repo__")){var n=JSON.parse(localStorage.getItem(t)),i=t.substring(8);r[i]=n}}return r}function Ql(r){var e=r.split("/",8);return e.length<5||e[0]!="https:"||e[2]!="github.com"||e[5]&&e[5]!="tree"?null:{user:e[3],repo:e[4],repopath:e[3]+"/"+e[4],branch:e[6],subtreepath:e[7]}}var dh=class{constructor(e,t,n,i){this.githubCons=e,this.githubToken=t,this.store=n,this.project=i,this.recreateGithub()}recreateGithub(){this.github=new this.githubCons({token:this.githubToken})}login(){if(this.githubToken&&this.githubToken.length)return new Promise((t,n)=>{t()});var e=new firebase.auth.GithubAuthProvider;return e.addScope("repo"),firebase.auth().signInWithPopup(e).then(t=>{this.githubToken=t.credential.accessToken;var n=t.user;this.recreateGithub(),document.cookie="__github_key="+this.githubToken+";path=/;max-age=31536000",console.log("Stored GitHub OAUTH key")})}logout(){return this.githubToken&&this.githubToken.length?firebase.auth().signOut().then(()=>{document.cookie="__github_key=;path=/;max-age=0",this.githubToken=null,this.recreateGithub()}):new Promise((e,t)=>{e()})}isFileIgnored(e){return e=e.toUpperCase(),!!(e.startsWith("LICENSE")||e.startsWith("README")||e.startsWith("."))}async getGithubSession(e){var t=Ql(e);if(!t)throw new Error("Please enter a valid GitHub URL.");var n=Js()[t.repopath],i=t.branch||n&&n.branch,s=this.github.repos(t.user,t.repo);try{i=(await s.fetch()).defaultBranch||"master"}catch(a){console.log("could not fetch default branch: "+a),i="main"}console.log("branch =",i);var o={url:e,user:t.user,reponame:t.repo,repopath:t.repopath,branch:i,subtreepath:t.subtreepath,prefix:"",repo:s,platform_id:this.project?this.project.platform_id:n?n.platform_id:null};return o}getGithubHEADTree(e){var t;return this.getGithubSession(e).then(n=>(t=n,t.repo.git.refs.heads(t.branch).fetch())).then(n=>(t.head=n,t.sha=n.object.sha,t.repo.git.trees(t.sha).fetch())).then(n=>{if(t.subtreepath){for(let i of n.tree)if(i.type=="tree"&&i.path==t.subtreepath&&i.sha)return t.repo.git.trees(i.sha).fetch();throw Error("Cannot find subtree '"+t.subtreepath+"' in tree "+n.sha)}return n}).then(n=>(t.tree=n,t))}bind(e,t){var n="__repo__"+e.repopath;if(t){var i={url:e.url,branch:e.branch,platform_id:e.platform_id,mainPath:e.mainPath,sha:e.sha};console.log("storing",i),localStorage.setItem(n,JSON.stringify(i))}else localStorage.removeItem(n)}import(e){var t;return this.getGithubSession(e).then(n=>(t=n,t.repo.contents("README.md").read())).catch(n=>(console.log(n),console.log("no README.md found"),t.repo.fetch().then(i=>""))).then(n=>{var i;if(i=/8bitworkshop.com[^)]+file=([^)&]+)/.exec(n),i&&i[1]&&(console.log("main path: '"+i[1]+"'"),t.mainPath=i[1]),i=/8bitworkshop.com[^)]+platform=([A-Za-z0-9._\-]+)/.exec(n),i){if(console.log("platform id: '"+i[1]+"'"),t.platform_id&&!t.platform_id.startsWith(i[1]))throw Error("Platform mismatch: Repository is '"+i[1]+"', you have '"+t.platform_id+"' selected.");t.platform_id=i[1]}return this.bind(t,!0),t})}pull(e,t){var n;return this.getGithubHEADTree(e).then(i=>{n=i;let s=[];return n.paths=[],n.tree.tree.forEach(o=>{if(console.log(o.path,o.type,o.size),n.paths.push(o.path),o.type=="blob"&&!this.isFileIgnored(o.path)){var a=n.repo.git.blobs(o.sha).fetch().then(l=>{var c=n.prefix+o.path,d=o.size,h=l.encoding,u=l.content;if(l.encoding=="base64"){var f=Oc(atob(u)),m=Cs(o.path,f);u=m?f:bc(f)}return l.size!=u.length&&(u=u.slice(0,l.size)),(t||this.store).setItem(c,u)});s.push(a)}else console.log("ignoring "+o.path)}),Promise.all(s)}).then(i=>n)}importAndPull(e){return this.import(e).then(t=>this.pull(e))}publish(e,t,n,i){var s,o=this.project.platform_id,a=this.project.stripLocalPath(this.project.mainPath);return this.github.user.repos.create({name:e,description:t,private:i,auto_init:!1,license_template:n}).then(l=>{s=l;var c=TM;c=c.replace(/\$NAME/g,encodeURIComponent(e)),c=c.replace(/\$PLATFORM/g,encodeURIComponent(o)),c=c.replace(/\$GITHUBURL/g,encodeURIComponent(s.htmlUrl)),c=c.replace(/\$MAINFILE/g,encodeURIComponent(a));var d={message:"8bitworkshop: updated metadata in README.md",content:btoa(c)};return s.contents("README.md").add(d)}).then(()=>this.getGithubSession(s.htmlUrl))}commit(e,t,n){var i;return t||(t="updated from 8bitworkshop.com"),this.getGithubHEADTree(e).then(s=>{if(i=s,i.subtreepath)throw Error("Sorry, right now you can only commit files to the root directory of a repository.");return Promise.all(n.map(o=>typeof o.data=="string"?i.repo.git.blobs.create({content:o.data,encoding:"utf-8"}):i.repo.git.blobs.create({content:btoa(gc(o.data)),encoding:"base64"})))}).then(s=>i.repo.git.trees.create({tree:n.map((o,a)=>({path:o.path,mode:"100644",type:"blob",sha:s[a].sha})),base_tree:i.tree.sha})).then(s=>i.repo.git.commits.create({message:t,tree:s.sha,parents:[i.head.object.sha]})).then(s=>i.repo.commits(s.sha).fetch()).then(s=>(i.commit=s,i))}push(e){return e.head.update({sha:e.com Line truncated
`},s=window.c2t({noInitialRun:!0,print:i,printErr:i}),o=s.FS,a=kt()+".bin",l=kt()+".wav";o.writeFile(a,xr(),{encoding:"binary"});var c=["-2bc",a+","+e.toString(16),l];s.callMain(c);var d=o.readFile(l,{encoding:"binary"});if(d){var h=new Blob([d],{type:"audio/wav"});(0,ii.saveAs)(h,l),n+="Then connect your audio output to the cassette input, turn up the volume, and play the audio file.",ar(n)}})}function EM(r){dn("lib/makewav.js").then(()=>{let e="",t=function(a){e+=a+`
`;function Js(){for(var r={},e=0;e<localStorage.length;e++){var t=localStorage.key(e);if(t.startsWith("__repo__")){var n=JSON.parse(localStorage.getItem(t)),i=t.substring(8);r[i]=n}}return r}function Ql(r){var e=r.split("/",8);return e.length<5||e[0]!="https:"||e[2]!="github.com"||e[5]&&e[5]!="tree"?null:{user:e[3],repo:e[4],repopath:e[3]+"/"+e[4],branch:e[6],subtreepath:e[7]}}var dh=class{constructor(e,t,n,i){this.githubCons=e,this.githubToken=t,this.store=n,this.project=i,this.recreateGithub()}recreateGithub(){this.github=new this.githubCons({token:this.githubToken})}login(){if(this.githubToken&&this.githubToken.length)return new Promise((t,n)=>{t()});var e=new firebase.auth.GithubAuthProvider;return e.addScope("repo"),firebase.auth().signInWithPopup(e).then(t=>{this.githubToken=t.credential.accessToken;var n=t.user;this.recreateGithub(),document.cookie="__github_key="+this.githubToken+";path=/;max-age=31536000",console.log("Stored GitHub OAUTH key")})}logout(){return this.githubToken&&this.githubToken.length?firebase.auth().signOut().then(()=>{document.cookie="__github_key=;path=/;max-age=0",this.githubToken=null,this.recreateGithub()}):new Promise((e,t)=>{e()})}isFileIgnored(e){return e=e.toUpperCase(),!!(e.startsWith("LICENSE")||e.startsWith("README")||e.startsWith("."))}async getGithubSession(e){var t=Ql(e);if(!t)throw new Error("Please enter a valid GitHub URL.");var n=Js()[t.repopath],i=t.branch||n&&n.branch,s=this.github.repos(t.user,t.repo);try{i=(await s.fetch()).defaultBranch||"master"}catch(a){console.log("could not fetch default branch: "+a),i="main"}console.log("branch =",i);var o={url:e,user:t.user,reponame:t.repo,repopath:t.repopath,branch:i,subtreepath:t.subtreepath,prefix:"",repo:s,platform_id:this.project?this.project.platform_id:n?n.platform_id:null};return o}getGithubHEADTree(e){var t;return this.getGithubSession(e).then(n=>(t=n,t.repo.git.refs.heads(t.branch).fetch())).then(n=>(t.head=n,t.sha=n.object.sha,t.repo.git.trees(t.sha).fetch())).then(n=>{if(t.subtreepath){for(let i of n.tree)if(i.type=="tree"&&i.path==t.subtreepath&&i.sha)return t.repo.git.trees(i.sha).fetch();throw Error("Cannot find subtree '"+t.subtreepath+"' in tree "+n.sha)}return n}).then(n=>(t.tree=n,t))}bind(e,t){var n="__repo__"+e.repopath;if(t){var i={url:e.url,branch:e.branch,platform_id:e.platform_id,mainPath:e.mainPath,sha:e.sha};console.log("storing",i),localStorage.setItem(n,JSON.stringify(i))}else localStorage.removeItem(n)}import(e){var t;return this.getGithubSession(e).then(n=>(t=n,t.repo.contents("README.md").read())).catch(n=>(console.log(n),console.log("no README.md found"),t.repo.fetch().then(i=>""))).then(n=>{var i;if(i=/8bitworkshop.com[^)]+file=([^)&]+)/.exec(n),i&&i[1]&&(console.log("main path: '"+i[1]+"'"),t.mainPath=i[1]),i=/8bitworkshop.com[^)]+platform=([A-Za-z0-9._\-]+)/.exec(n),i){if(console.log("platform id: '"+i[1]+"'"),t.platform_id&&!t.platform_id.startsWith(i[1]))throw Error("Platform mismatch: Repository is '"+i[1]+"', you have '"+t.platform_id+"' selected.");t.platform_id=i[1]}return this.bind(t,!0),t})}pull(e,t){var n;return this.getGithubHEADTree(e).then(i=>{n=i;let s=[];return n.paths=[],n.tree.tree.forEach(o=>{if(console.log(o.path,o.type,o.size),n.paths.push(o.path),o.type=="blob"&&!this.isFileIgnored(o.path)){var a=n.repo.git.blobs(o.sha).fetch().then(l=>{var c=n.prefix+o.path,d=o.size,h=l.encoding,u=l.content;if(l.encoding=="base64"){var f=Oc(atob(u)),m=Cs(o.path,f);u=m?f:bc(f)}return l.size!=u.length&&(u=u.slice(0,l.size)),(t||this.store).setItem(c,u)});s.push(a)}else console.log("ignoring "+o.path)}),Promise.all(s)}).then(i=>n)}importAndPull(e){return this.import(e).then(t=>this.pull(e))}publish(e,t,n,i){var s,o=this.project.platform_id,a=this.project.stripLocalPath(this.project.mainPath);return this.github.user.repos.create({name:e,description:t,private:i,auto_init:!1,license_template:n}).then(l=>{s=l;var c=_M;c=c.replace(/\$NAME/g,encodeURIComponent(e)),c=c.replace(/\$PLATFORM/g,encodeURIComponent(o)),c=c.replace(/\$GITHUBURL/g,encodeURIComponent(s.htmlUrl)),c=c.replace(/\$MAINFILE/g,encodeURIComponent(a));var d={message:"8bitworkshop: updated metadata in README.md",content:btoa(c)};return s.contents("README.md").add(d)}).then(()=>this.getGithubSession(s.htmlUrl))}commit(e,t,n){var i;return t||(t="updated from 8bitworkshop.com"),this.getGithubHEADTree(e).then(s=>{if(i=s,i.subtreepath)throw Error("Sorry, right now you can only commit files to the root directory of a repository.");return Promise.all(n.map(o=>typeof o.data=="string"?i.repo.git.blobs.create({content:o.data,encoding:"utf-8"}):i.repo.git.blobs.create({content:btoa(gc(o.data)),encoding:"base64"})))}).then(s=>i.repo.git.trees.create({tree:n.map((o,a)=>({path:o.path,mode:"100644",type:"blob",sha:s[a].sha})),base_tree:i.tree.sha})).then(s=>i.repo.git.commits.create({message:t,tree:s.sha,parents:[i.head.object.sha]})).then(s=>i.repo.commits(s.sha).fetch()).then(s=>(i.commit=s,i))}push(e){return e.head.update({sha:e.com Line truncated
`},s=window.c2t({noInitialRun:!0,print:i,printErr:i}),o=s.FS,a=kt()+".bin",l=kt()+".wav";o.writeFile(a,xr(),{encoding:"binary"});var c=["-2bc",a+","+e.toString(16),l];s.callMain(c);var d=o.readFile(l,{encoding:"binary"});if(d){var h=new Blob([d],{type:"audio/wav"});(0,ii.saveAs)(h,l),n+="Then connect your audio output to the cassette input, turn up the volume, and play the audio file.",ar(n)}})}function RM(r){dn("lib/makewav.js").then(()=>{let e="",t=function(a){e+=a+`
`};var n=zt(kt());let i=n+".bin",s=n+".wav";window.makewav({noInitialRun:!1,print:t,printErr:t,arguments:["-ts","-f0","-v10",i],preRun:a=>{a.FS.writeFile(i,xr(),{encoding:"binary"})}}).ready.then(a=>{let l=[i];a.run(l),console.log(e);let d=a.FS.readFile(s,{encoding:"binary"});if(d){let h=new Blob([d],{type:"audio/wav"});(0,ii.saveAs)(h,s),e+=`
Connect your audio output to the SuperCharger input, turn up the volume, and play the audio file.`,ar(e)}})})}function RM(r){var e=zt(kt());let t=e+".tap",n=new eo(e),i=new hh({sine_wave:!0}),s=xr(),o=s[0]+s[1]*256;s=s.slice(2),n.setContent({data:s,startAddress:o,type:eo.FILE_TYPE_NON_RELOCATABLE}),n.generateSound(i);let a=i.getTAPData();if(a){let l=new Blob([a],{type:"application/octet-stream"});(0,ii.saveAs)(l,t)}}function dO(){switch(ir(fe)){case"vcs":return EM;case"apple2":return CM;case"c64":return RM}}function tP(r){if(xr()==null)return Re("Please fix errors before exporting."),!0;var e=dO();if(e===void 0)return Re("Cassette export is not supported on this platform."),!0;e(r)}function rP(r){if(xr()==null)return Re("Please finish compiling with no errors before downloading ROM."),!0;var e=zt(kt());if(P.getDownloadFile){var t=P.getDownloadFile(),e=zt(kt());(0,ii.saveAs)(t.blob,e+t.extension)}else if(xr()instanceof Uint8Array){var n=new Blob([xr()],{type:"application/octet-stream"}),i=P.getROMExtension&&P.getROMExtension(xr())||"-"+ir(fe)+".bin";(0,ii.saveAs)(n,e+i)}else Re(`The "${fe}" platform doesn't have downloadable ROMs.`)}function nP(r){var e=F.getCurrentText();if(!e)return!1;var t=new Blob([e],{type:"text/plain;charset=utf-8"});(0,ii.saveAs)(t,cP(),{autoBom:!1})}async function iP(){let r=(await import("./jszip.min-EENSZHRN.js")).default;return new r}async function sP(r){var e=await iP();Ci().iterateFiles((t,n)=>{n&&e.file(St(t),n)}),e.generateAsync({type:"blob"}).then(t=>{(0,ii.saveAs)(t,kt()+"-"+ir(fe)+".zip")})}function oP(r){let e=P.getDebugSymbolFile&&P.getDebugSymbolFile();if(!e){Re("This project does not have debug information.");return}var t=zt(kt());(0,ii.saveAs)(e.blob,t+e.extension,{autoBom:!1})}async function aP(r){var e=await iP(),t=await ss().keys();st(!0);try{var n=0;await Promise.all(t.map(s=>ss().getItem(s).then(o=>{En(n++/(t.length+1)),o&&e.file(s,o)})));var i=await e.generateAsync({type:"blob"});(0,ii.saveAs)(i,ir(fe)+"-all.zip")}finally{st(!1)}}var cO=!1;function lP(){cO||dn("lib/gif.js").then(()=>{var r=$("#emulator").find("canvas")[0];if(!r){Re("Could not find canvas element to record video!");return}var e=0;r.style&&r.style.transform&&(r.style.transform.indexOf("rotate(-90deg)")>=0?e=-1:r.style.transform.indexOf("rotate(90deg)")>=0&&(e=1));var t=new GIF({workerScript:"lib/gif.worker.js",workers:4,quality:10,rotate:e}),n=$("#videoPreviewImage");t.on("progress",l=>{En(l)}),t.on("finished",l=>{n.attr("src",URL.createObjectURL(l)),st(!1),P.resume(),$("#videoPreviewModal").modal("show")});var i=20,s=300,o=0;console.log("Recording video",r),$("#emulator").css("backgroundColor","#cc3333");var a=()=>{o++>s?(console.log("Rendering video"),$("#emulator").css("backgroundColor","inherit"),st(!0),P.pause(),t.render(),cO=!1):(t.addFrame(r,{delay:i,copy:!0}),setTimeout(a,i),cO=!0)};a()})}var hO;async function to(){if(!hO){await dn("lib/octokat.js"),await dn("https://www.gstatic.com/firebasejs/8.8.1/firebase-app.js"),await dn("https://www.gstatic.com/firebasejs/8.8.1/firebase-auth.js"),await dn("https://8bitworkshop.com/config.js");var r=yc("__github_key");hO=new dh(Octokat,r,ss(),Ci()),console.log("loaded github service")}return hO}function _l(){var r=(_t||"").split("/");return r.length!=2?(Re("You are not in a GitHub repository. Choose one from the pulldown, or Import or Publish one."),null):"https://github.com/"+r[0]+"/"+r[1]}async function Al(r,e){var t,n=Ql(r);if(!n){Re("Could not parse GitHub URL.");return}var i=Js()[n.repopath];if(!(i&&!confirm("You've already imported "+n.repopath+" -- do you want to replace all local files?"))){st(!0);var s=ch(n.repopath);En(.25);var o=await to();return o.import(r).then(a=>(t=a,En(.75),o.pull(r,s))).then(a=>{st(!1),ro(e,{repo:n.repopath})}).catch(a=>{st(!1),console.log(a),Re("Could not import "+r+". "+a)})}}async function dP(r){var e=await to();e.login().then(()=>{ar("You are signed in to GitHub.")}).catch(t=>{Re("Could not sign in."+t)})}async function hP(r){var e=await to();e.logout().then(()=>{ar("You are logged out of GitHub.")})}function uP(r){var e=$("#importGithubModal"),t=$("#importGithubButton");e.modal("show"),e.off("shown.bs.modal").on("shown.bs.modal",()=>$("#importGithubURL").trigger("focus")),$("#importGithubURL").off("keydown").on("keydown",n=>{n.key==="Enter"&&(n.preventDefault(),t.trigger("click"))}),t.off("click").on("click",()=>{var n=$("#importGithubURL").val()+"";e.modal("hide"),Al(n,!1)})}function fP(r){if(!(_t&&!confirm("This project ("+Ci().mainPath+") is already bound to a GitHub repository. Do you want to re-publish to a new repository? (You can instead choose 'Push Changes' to update files in the existing repository.)"))){var e=$("#publishGithubModal"),t=$("#publishGithubButton");$("#githubRepoName").val(zt(St(Ci().mainPath))),e.modal("show"),t.off("click").on("click",async()=>{var n=$("#githubRepoName").val()+"",i=$("#githubRepoDesc").val()+"",s=$("#githubRepoPrivate").val()=="private",o=$("#githubRepoLicense").val()+""Line truncated
Connect your audio output to the SuperCharger input, turn up the volume, and play the audio file.`,ar(e)}})})}function MM(r){var e=zt(kt());let t=e+".tap",n=new eo(e),i=new hh({sine_wave:!0}),s=xr(),o=s[0]+s[1]*256;s=s.slice(2),n.setContent({data:s,startAddress:o,type:eo.FILE_TYPE_NON_RELOCATABLE}),n.generateSound(i);let a=i.getTAPData();if(a){let l=new Blob([a],{type:"application/octet-stream"});(0,ii.saveAs)(l,t)}}function dO(){switch(sr(fe)){case"vcs":return RM;case"apple2":return EM;case"c64":return MM}}function tP(r){if(xr()==null)return Re("Please fix errors before exporting."),!0;var e=dO();if(e===void 0)return Re("Cassette export is not supported on this platform."),!0;e(r)}function rP(r){if(xr()==null)return Re("Please finish compiling with no errors before downloading ROM."),!0;var e=zt(kt());if(P.getDownloadFile){var t=P.getDownloadFile(),e=zt(kt());(0,ii.saveAs)(t.blob,e+t.extension)}else if(xr()instanceof Uint8Array){var n=new Blob([xr()],{type:"application/octet-stream"}),i=P.getROMExtension&&P.getROMExtension(xr())||"-"+sr(fe)+".bin";(0,ii.saveAs)(n,e+i)}else Re(`The "${fe}" platform doesn't have downloadable ROMs.`)}function nP(r){var e=F.getCurrentText();if(!e)return!1;var t=new Blob([e],{type:"text/plain;charset=utf-8"});(0,ii.saveAs)(t,cP(),{autoBom:!1})}async function iP(){let r=(await import("./jszip.min-EENSZHRN.js")).default;return new r}async function sP(r){var e=await iP();Ci().iterateFiles((t,n)=>{n&&e.file(St(t),n)}),e.generateAsync({type:"blob"}).then(t=>{(0,ii.saveAs)(t,kt()+"-"+sr(fe)+".zip")})}function oP(r){let e=P.getDebugSymbolFile&&P.getDebugSymbolFile();if(!e){Re("This project does not have debug information.");return}var t=zt(kt());(0,ii.saveAs)(e.blob,t+e.extension,{autoBom:!1})}async function aP(r){var e=await iP(),t=await ss().keys();st(!0);try{var n=0;await Promise.all(t.map(s=>ss().getItem(s).then(o=>{En(n++/(t.length+1)),o&&e.file(s,o)})));var i=await e.generateAsync({type:"blob"});(0,ii.saveAs)(i,sr(fe)+"-all.zip")}finally{st(!1)}}var cO=!1;function lP(){cO||dn("lib/gif.js").then(()=>{var r=$("#emulator").find("canvas")[0];if(!r){Re("Could not find canvas element to record video!");return}var e=0;r.style&&r.style.transform&&(r.style.transform.indexOf("rotate(-90deg)")>=0?e=-1:r.style.transform.indexOf("rotate(90deg)")>=0&&(e=1));var t=new GIF({workerScript:"lib/gif.worker.js",workers:4,quality:10,rotate:e}),n=$("#videoPreviewImage");t.on("progress",l=>{En(l)}),t.on("finished",l=>{n.attr("src",URL.createObjectURL(l)),st(!1),P.resume(),$("#videoPreviewModal").modal("show")});var i=20,s=300,o=0;console.log("Recording video",r),$("#emulator").css("backgroundColor","#cc3333");var a=()=>{o++>s?(console.log("Rendering video"),$("#emulator").css("backgroundColor","inherit"),st(!0),P.pause(),t.render(),cO=!1):(t.addFrame(r,{delay:i,copy:!0}),setTimeout(a,i),cO=!0)};a()})}var hO;async function to(){if(!hO){await dn("lib/octokat.js"),await dn("https://www.gstatic.com/firebasejs/8.8.1/firebase-app.js"),await dn("https://www.gstatic.com/firebasejs/8.8.1/firebase-auth.js"),await dn("https://8bitworkshop.com/config.js");var r=yc("__github_key");hO=new dh(Octokat,r,ss(),Ci()),console.log("loaded github service")}return hO}function _l(){var r=(_t||"").split("/");return r.length!=2?(Re("You are not in a GitHub repository. Choose one from the pulldown, or Import or Publish one."),null):"https://github.com/"+r[0]+"/"+r[1]}async function Al(r,e){var t,n=Ql(r);if(!n){Re("Could not parse GitHub URL.");return}var i=Js()[n.repopath];if(!(i&&!confirm("You've already imported "+n.repopath+" -- do you want to replace all local files?"))){st(!0);var s=ch(n.repopath);En(.25);var o=await to();return o.import(r).then(a=>(t=a,En(.75),o.pull(r,s))).then(a=>{st(!1),ro(e,{repo:n.repopath})}).catch(a=>{st(!1),console.log(a),Re("Could not import "+r+". "+a)})}}async function dP(r){var e=await to();e.login().then(()=>{ar("You are signed in to GitHub.")}).catch(t=>{Re("Could not sign in."+t)})}async function hP(r){var e=await to();e.logout().then(()=>{ar("You are logged out of GitHub.")})}function uP(r){var e=$("#importGithubModal"),t=$("#importGithubButton");e.modal("show"),e.off("shown.bs.modal").on("shown.bs.modal",()=>$("#importGithubURL").trigger("focus")),$("#importGithubURL").off("keydown").on("keydown",n=>{n.key==="Enter"&&(n.preventDefault(),t.trigger("click"))}),t.off("click").on("click",()=>{var n=$("#importGithubURL").val()+"";e.modal("hide"),Al(n,!1)})}function fP(r){if(!(_t&&!confirm("This project ("+Ci().mainPath+") is already bound to a GitHub repository. Do you want to re-publish to a new repository? (You can instead choose 'Push Changes' to update files in the existing repository.)"))){var e=$("#publishGithubModal"),t=$("#publishGithubButton");$("#githubRepoName").val(zt(St(Ci().mainPath))),e.modal("show"),t.off("click").on("click",async()=>{var n=$("#githubRepoName").val()+"",i=$("#githubRepoDesc").val()+"",s=$("#githubRepoPrivate").val()=="private",o=$("#githubRepoLicense").val()+""Line truncated
`);for(let o=0;o<s.length;o++){let a=s[o],l=o+1,c=a.match(/(?:function|func|def|proc)\s+(\w+)/i);c&&i.push({id:`${e}:${l}:${c[1]}`,name:c[1],kind:"func",source:n,file:e,line:l});let d=a.match(/(?:var|let|const|global)\s+(\w+)/i);d&&i.push({id:`${e}:${l}:${d[1]}`,name:d[1],kind:"var",source:n,file:e,line:l});let h=a.match(/(?:struct|class|interface|type)\s+(\w+)/i);h&&i.push({id:`${e}:${l}:${h[1]}`,name:h[1],kind:"type",source:n,file:e,line:l});let u=a.match(/^\s*(\w+)\s*:/);u&&!a.trim().startsWith("//")&&i.push({id:`${e}:${l}:${u[1]}`,name:u[1],kind:"label",source:n,file:e,line:l});let f=a.match(/#define\s+(\w+)/i);f&&i.push({id:`${e}:${l}:${f[1]}`,name:f[1],kind:"macro",source:n,file:e,line:l});let m=a.match(/^\s*(\w+)\s*(?:=|equ)\s+/i);m&&i.push({id:`${e}:${l}:${m[1]}`,name:m[1],kind:"equate",source:n,file:e,line:l})}return i}var SP=()=>null;function vP(r){SP=r}function aa(){return SP()}var uh=class{constructor(){this.id="project";this.kind="project";this.rebuilt=!1;this.index=new oa([])}async ready(){await this.index.init(),this.rebuilt||(this.rebuilt=!0,await this.rebuild())}query(e,t){let n=this.index.query(e,t),i=this.fulltextQuery(e,t),s=n.concat(i);return s.sort((o,a)=>a.score-o.score),s.slice(0,t)}fulltextQuery(e,t){if(e.length<2)return[];let n=e.toLowerCase(),i=[],s=Math.max(t,10),o=aa();return o?(o.iterateFiles((a,l)=>{if(typeof l!="string")return;let c=l.split(`
`),d=0;for(let h=0;h<c.length;h++){let u=c[h],m=u.toLowerCase().indexOf(n);if(m>=0){let g=u.trim();if(!g)continue;if(i.push({record:{id:`text:${a}:${h+1}`,name:g.length>80?g.slice(0,80)+"\u2026":g,kind:"text",source:"project",file:a,line:h+1},score:200+Math.max(0,100-m*2),ranges:[m,m+e.length]}),++d>=s)break}}}),i):[]}async onFileChanged(e,t){let n=this.extractSymbolsFromFile(e,t,"project");this.index.pushRecords(n)}extractSymbolsFromFile(e,t,n){if(typeof t!="string")return[];let i=this.detectEditorStyle(e);return fO(t,e,i,n)}detectEditorStyle(e){var n;switch((n=e.split(".").pop())==null?void 0:n.toLowerCase()){case"c":case"h":return"text/x-csrc";case"asm":case"a65":case"inc":return"6502";case"v":return"verilog";case"wiz":return"text/x-wiz";case"bas":case"basic":return"basic";case"fb":case"fastbasic":return"fastbasic";case"bac":case"bataribasic":return"bataribasic";case"i":return"inform6";case"d":return"dialog";default:return"text/x-csrc"}}async rebuild(){this.index.clear(),await this.index.init();let e=aa();if(!e)return;let t=[];e.iterateFiles((n,i)=>{if(typeof i!="string")return;let s=this.detectEditorStyle(n),o=fO(i,n,s,"project");t.push(...o)}),this.index.pushRecords(t)}};var ZM=new Set(["h","hh","hpp","inc","asm","a65","s","mac","defs","def","equ","i","m","c","bas","txt"]),XM=20,fh=class{constructor(){this.id="toolchain";this.kind="toolchain";this.fsName=null;this.files=[];this.loaded=new Map;this.readyPromise=null;this.batchSize=XM}async ready(){return this.readyPromise||(this.readyPromise=this.load()),this.readyPromise}async load(){let e=aa();if(!e)return;let t;try{t=e.getToolForFilename?e.getToolForFilename(e.mainPath):""}catch(o){t=""}let n=Cc(t,e.platform_id),i=Ac(t,e.platform_id);if(!n||!i.length)return;this.fsName=n;let s=new Set;for(let o of i){let a=await this.listFiles(o);for(let l of a)this.isSearchable(l)&&!s.has(l)&&(s.add(l),this.files.push(l))}this.files.sort();for(let o=0;o<this.files.length;o+=this.batchSize){let a=this.files.slice(o,o+this.batchSize),l=await Promise.all(a.map(async c=>{let d=await this.readFile(c);return[c,d]}));for(let[c,d]of l)d!=null&&this.loaded.set(c,d)}}isValid(){return this.fsName!=null&&this.files.length>0}async listFiles(e){let t=aa();if(!t||!this.fsName||!t.queryWorker)return[];try{let n={preload_fs:this.fsName,listshared:e,updates:[],buildsteps:[]},i=await t.queryWorker(n),s=i&&i.output;return Array.isArray(s)?s:[]}catch(n){return console.debug("Toolchain list error:",n),[]}}async readFile(e){let t=aa();if(!t||!this.fsName||!t.queryWorker)return null;try{let n={preload_fs:this.fsName,readshared:e,updates:[],buildsteps:[]},i=await t.queryWorker(n),s=i&&i.output;return s instanceof Uint8Array&&s.length>0?new TextDecoder().decode(s):null}catch(n){return console.debug("Toolchain read error:",n),null}}isSearchable(e){let t=e.split("/").pop()||e,n=t.lastIndexOf(".");return n<0?!0:ZM.has(t.substring(n+1).toLowerCase())}async query(e,t){return await this.ready(),!this.isValid()||e.length<2?[]:this.textQuery(e,t)}textQuery(e,t){if(e.length<2)return[];let n=e.toLowerCase(),i=[],s=Math.max(t,5);for(let[o,a]of this.loaded){let l=a.split(`
`),c=0;for(let d=0;d<l.length;d++){let h=l[d],f=h.toLowerCase().indexOf(n);if(f>=0){let m=h.trim();if(!m)continue;if(i.push({record:{id:`toolchain:${o}:${d+1}`,name:m.length>80?m.slice(0,80)+"\u2026":m,kind:"text",source:"toolchain",file:o,line:d+1},score:200+Math.max(0,100-f*2),ranges:[f,f+e.length]}),++c>=s)break}}}return i.sort((o,a)=>a.score-o.score),i.slice(0,t)}invalidate(){this.fsName=null,this.files=[],this.loaded.clear(),this.readyPromise=null}};var xP=()=>[];function wP(r){xP=r}var zM=/<h([1-3])\b[^>]*>([\s\S]*?)<\/h\1>/gi;function WM(r){return r.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#(?:0*39|x27);/gi,"'").replace(/&nbsp;/g," ").replace(/&hellip;/g,"\u2026").replace(/&mdash;/g,"\u2014").replace(/&ndash;/g,"\u2013").replace(/&rsquo;|&lsquo;/g,"'").replace(/&rdquo;|&ldquo;/g,'"').replace(/&raquo;/g,"\xBB").replace(/&laquo;/g,"\xAB").replace(/&amp;/g,"&")}function pO(r){return WM(r.replace(/<[^>]+>/g," ")).replace(/\s+/g," ").trim()}function BM(r,e=180){let t=r.trim();if(!t)return;let i=t.slice(0,e).match(/^([\s\S]*?[.!?])(?:\s|$)/);return i?i[1]:t.length<=e?t:t.slice(0,e-1)+"\u2026"}function VM(r){let e=[],t="#help/"+r.id,n=r.title||r.id,i=r.html||"",s=[],o=new RegExp(zM.source,"gi"),a;for(;a=o.exec(i);)s.push({name:pO(a[2]),start:a.index,end:o.lastIndex});let l=(u,f,m)=>{if(!f)return;let g=BM(m),v=g&&m.startsWith(g)?m.slice(g.length).trim():m;e.push({id:`${r.id}:${u}`,name:f,kind:"doc",brief:g,detail:v||void 0,source:"docs",file:n,url:t})},c=s.length?s[0].start:i.length,d=pO(i.slice(0,c)),h=s.length&&s[0].start===0?s[0].name||r.title:r.title||r.id;l(0,h,d);for(let u=0;u<s.length;u++){if(u===0&&s[0].start===0)continue;let f=u+1<s.length?s[u+1].start:i.length;l(u+1,s[u].name,pO(i.slice(s[u].end,f)))}return e}var ph=class{constructor(){this.id="docs";this.kind="docs";this.index=null;this.readyPromise=null}async ready(){return this.readyPromise?this.readyPromise:(this.readyPromise=this.load(),this.readyPromise)}async load(){let e=xP()||[];if(e.length===0)return;let t=[];for(let i of e)t.push(...VM(i));if(t.length===0)return;let n=new oa(t);await n.init(),this.index=n}async query(e,t){return await this.ready(),this.index?this.index.query(e,t):[]}};var YM=50,mO=class r{constructor(){this.sources=new Map;this.projectSource=new uh,this.toolchainSource=new fh,this.docsSource=new ph,this.sources.set("project",this.projectSource),this.sources.set("toolchain",this.toolchainSource),this.sources.set("docs",this.docsSource)}static getInstance(){return r.instance||(r.instance=new r),r.instance}parseQuery(e){return e.startsWith("#")?{needle:e.slice(1).trim(),filter:"symbols"}:e.startsWith(">")?{needle:e.slice(1).trim(),filter:"files"}:e.startsWith("?")?{needle:e.slice(1).trim(),filter:"docs"}:{needle:e,filter:"all"}}async query(e,t=YM){let{needle:n,filter:i}=this.parseQuery(e);if(!n)return[];let s=[],o=[];i==="docs"?o.push(this.docsSource):i==="files"?o.push(this.projectSource):i==="symbols"?(o.push(this.projectSource),o.push(this.toolchainSource)):(o.push(this.projectSource),o.push(this.toolchainSource),o.push(this.docsSource));for(let d of o)try{await d.ready();let h=await d.query(n,t-s.length);s.push(...h)}catch(h){console.debug("Search source error:",h)}s.sort((d,h)=>h.score-d.score);let a={project:1.3,toolchain:1,docs:.7};for(let d of s){let h=a[d.record.source]||1;d.score*=h}s.sort((d,h)=>h.score-d.score);let l=new Set;return s.filter(d=>l.has(d.record.id)?!1:(l.add(d.record.id),!0)).slice(0,t)}},PP=mO.getInstance();var kP=typeof String.prototype.normalize=="function"?r=>r.normalize("NFKD"):r=>r,as=class{constructor(e,t,n=0,i=e.length,s,o){this.test=o,this.value={from:0,to:0,precise:!1},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(n,i),this.bufferStart=n,this.normalize=s?a=>s(kP(a)):kP,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Mn(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=Bc(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=ji(e);let i=this.normalize(t);if(i.length)for(let s=0,o=n,a=!0;;s++){let l=i.charCodeAt(s),c=this.match(l,o,a,this.bufferPos+this.bufferStart,s==i.length-1);if(c)return this.value=c,this;if(s==i.length-1)break;a&&s<t.length&&t.charCodeAt(s)==l?o++:a=!1}}}match(e,t,n,i,s){let o=null;for(let a=0;a<this.matches.length;){let l=this.matches[a],c=!1;this.query.charCodeAt(l.index)==e&&(l.index==this.query.length-1?o={from:l.from,to:i,precise:s&&l.precise}:(l.index++,c=!0)),c?a++:this.matches.splice(a,1)}return this.query.charCodeAt(0)==e&&(this.query.length==1?o={from:t,to:i,precise:n&&s}:this.matches.push({from:t,index:1,precise:n})),o&&this.test&&!this.test(o.from,o.to,this.buffer,this.bufferStart)&&(o=null) Line truncated
`:n=="r"?"\r":n=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new bO(this):new gO(this)}getCursor(e,t=0,n){let i=e.doc?e:Me.create({doc:e});return n==null&&(n=i.doc.length),this.regexp?ca(this,i,t,n):la(this,i,t,n)}},xh=class{constructor(e){this.spec=e}};function tL(r,e,t){return(n,i,s,o)=>{if(t&&!t(n,i,s,o))return!1;let a=n>=o&&i<=o+s.length?s.slice(n-o,i-o):e.doc.sliceString(n,i);return r(a,e,n,i)}}function la(r,e,t,n){let i;return r.wholeWord&&(i=rL(e.doc,e.charCategorizer(e.selection.main.head))),r.test&&(i=tL(r.test,e,i)),new as(e.doc,r.unquoted,t,n,r.caseSensitive?void 0:s=>s.toLowerCase(),i)}function rL(r,e){return(t,n,i,s)=>((s>t||s+i.length<n)&&(s=Math.max(0,t-2),i=r.sliceString(s,Math.min(r.length,n+2))),(e(wh(i,t-s))!=rt.Word||e(Ph(i,t-s))!=rt.Word)&&(e(Ph(i,n-s))!=rt.Word||e(wh(i,n-s))!=rt.Word))}var gO=class extends xh{constructor(e){super(e)}nextMatch(e,t,n){let i=la(this.spec,e,n,e.doc.length).nextOverlapping();if(i.done){let s=Math.min(e.doc.length,t+this.spec.unquoted.length);i=la(this.spec,e,0,s).nextOverlapping()}return i.done||i.value.from==t&&i.value.to==n?null:i.value}prevMatchInRange(e,t,n){for(let i=n;;){let s=Math.max(t,i-1e4-this.spec.unquoted.length),o=la(this.spec,e,s,i),a=null;for(;!o.nextOverlapping().done;)a=o.value;if(a)return a;if(s==t)return null;i-=1e4}}prevMatch(e,t,n){let i=this.prevMatchInRange(e,0,t);return i||(i=this.prevMatchInRange(e,Math.max(0,n-this.spec.unquoted.length),e.doc.length)),i&&(i.from!=t||i.to!=n)?i:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=la(this.spec,e,0,e.doc.length),i=[];for(;!n.next().done;){if(i.length>=t)return null;i.push(n.value)}return i}highlight(e,t,n,i){let s=la(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)i(s.value.from,s.value.to)}};function nL(r,e,t){return(n,i,s)=>(!t||t(n,i,s))&&r(s[0],e,n,i)}function ca(r,e,t,n){let i;return r.wholeWord&&(i=iL(e.charCategorizer(e.selection.main.head))),r.test&&(i=nL(r.test,e,i)),new gh(e.doc,r.search,{ignoreCase:!r.caseSensitive,test:i},t,n)}function wh(r,e){return r.slice(xt(r,e,!1),e)}function Ph(r,e){return r.slice(e,xt(r,e))}function iL(r){return(e,t,n)=>!n[0].length||(r(wh(n.input,n.index))!=rt.Word||r(Ph(n.input,n.index))!=rt.Word)&&(r(Ph(n.input,n.index+n[0].length))!=rt.Word||r(wh(n.input,n.index+n[0].length))!=rt.Word)}var bO=class extends xh{nextMatch(e,t,n){let i=ca(this.spec,e,n,e.doc.length).next();return i.done&&(i=ca(this.spec,e,0,t).next()),i.done?null:i.value}prevMatchInRange(e,t,n){for(let i=1;;i++){let s=Math.max(t,n-i*1e4),o=ca(this.spec,e,s,n),a=null;for(;!o.next().done;)a=o.value;if(a&&(s==t||a.from>s+10))return a;if(s==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,n)=>{if(n=="&")return e.match[0];if(n=="$")return"$";for(let i=n.length;i>0;i--){let s=+n.slice(0,i);if(s>0&&s<e.match.length)return e.match[s]+n.slice(i)}return t})}matchAll(e,t){let n=ca(this.spec,e,0,e.doc.length),i=[];for(;!n.next().done;){if(i.length>=t)return null;i.push(n.value)}return i}highlight(e,t,n,i){let s=ca(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!s.next().done;)i(s.value.from,s.value.to)}},El=be.define(),kO=be.define(),os=Ze.define({create(r){return new Cl(yO(r).create(),null)},update(r,e){for(let t of e.effects)t.is(El)?r=new Cl(t.value.create(),r.panel):t.is(kO)&&(r=new Cl(r.query,t.value?$O:null));return r},provide:r=>hl.from(r,e=>e.panel)});var Cl=class{constructor(e,t){this.query=e,this.panel=t}},sL=ee.mark({class:"cm-searchMatch"}),oL=ee.mark({class:"cm-searchMatch cm-searchMatch-selected"}),aL=at.fromClass(class{constructor(r){this.view=r,this.decorations=this.highlight(r.state.field(os))}update(r){let e=r.state.field(os);(e!=r.startState.field(os)||r.docChanged||r.selectionSet||r.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:r,panel:e}){if(!e||!r.spec.valid)return ee.none;let{view:t}=this,n=new Rn;for(let i=0,s=t.visibleRanges,o=s.length;i<o;i++){let{from:a,to:l}=s[i];for(;i<o-1&&l>s[i+1].from-500;)l=s[++i].to;r.highlight(t.state,a,l,(c,d)=>{let h=t.state.selection.ranges.some(u=>u.from==c&&u.to==d);n.add(c,d,h?oL:sL)})}return n.finish()}},{decorations:r=>r.decorations});function Rl(r){return e=>{let t=e.state.field(os,!1);return t&&t.query.spec.valid?r(e,t):Qh(e)}}var da=Rl((r,{query:e})=>{let{to:t}=r.state.selection.main,n=e.nextMatch(r.state,t,t);if(!n)return!1;let i=Z.single(n.from,n.to),s=r.state.facet(no);return r.dispatch({selection:i,effects:[QO(r,n),s.scrollToMatch(i.main,r)],userEvent:"select.search"}),CP(r),!0}),kh=Rl((r,{query:e})=>{let{state:t}=r,{from:n}=t.selection.main,i=e.prevMatch(t,n,n);if( Line truncated
`+t.scrub(),s=this.advance(i);return s>-1&&s<i.length?this.complete(e,n,s):!1}finish(e,t){return(this.stage==2||this.stage==3)&&Dl(t.content,this.pos)==t.content.length?this.complete(e,t,t.content.length):!1}complete(e,t,n){return e.addLeafElement(t,Be(te.LinkReference,this.start,this.start+n,this.elts)),!0}nextStage(e){return e?(this.pos=e.to-this.start,this.elts.push(e),this.stage++,!0):(e===!1&&(this.stage=-1),!1)}advance(e){for(;;){if(this.stage==-1)return-1;if(this.stage==0){if(!this.nextStage(Y1(e,this.pos,this.start,!0)))return-1;if(e.charCodeAt(this.pos)!=58)return this.stage=-1;this.elts.push(Be(te.LinkMark,this.pos+this.start,this.pos+this.start+1)),this.pos++}else if(this.stage==1){if(!this.nextStage(B1(e,Dl(e,this.pos),this.start)))return-1}else if(this.stage==2){let t=Dl(e,this.pos),n=0;if(t>this.pos){let i=V1(e,t,this.start);if(i){let s=cg(e,i.to-this.start);s>0&&(this.nextStage(i),n=s)}}return n||(n=cg(e,this.pos)),n>0&&n<e.length?n:-1}else return cg(e,this.pos)}}};function cg(r,e){for(;e<r.length;e++){let t=r.charCodeAt(e);if(t==10)break;if(!vn(t))return-1}return e}var Og=class{nextLine(e,t,n){let i=t.depth<e.stack.length?-1:R1(t),s=t.next;if(i<0)return!1;let o=Be(te.HeaderMark,e.lineStart+t.pos,e.lineStart+i);return e.nextLine(),e.addLeafElement(n,Be(s==61?te.SetextHeading1:te.SetextHeading2,n.start,e.prevLineEnd(),[...e.parser.parseInline(n.content,n.start),o])),!0}finish(){return!1}},I1={LinkReference(r,e){return e.content.charCodeAt(0)==91?new mg(e):null},SetextHeading(){return new Og}},QD=[(r,e)=>E1(e)>=0,(r,e)=>_1(e)>=0,(r,e)=>A1(e)>=0,(r,e)=>wg(e,r,!0)>=0,(r,e)=>Pg(e,r,!0)>=0,(r,e)=>xg(e,r,!0)>=0,(r,e)=>D1(e,r,!0)>=0],TD={text:"",end:0},gg=class{constructor(e,t,n,i){this.parser=e,this.input=t,this.ranges=i,this.line=new ug,this.atEnd=!1,this.reusePlaceholders=new Map,this.stoppedAt=null,this.rangeI=0,this.to=i[i.length-1].to,this.lineStart=this.absoluteLineStart=this.absoluteLineEnd=i[0].from,this.block=Rh.create(te.Document,0,this.lineStart,0,0),this.stack=[this.block],this.fragments=n.length?new Sg(n,t):null,this.readLine()}get parsedPos(){return this.absoluteLineStart}advance(){if(this.stoppedAt!=null&&this.absoluteLineStart>this.stoppedAt)return this.finish();let{line:e}=this;for(;;){for(let n=0;;){let i=e.depth<this.stack.length?this.stack[this.stack.length-1]:null;for(;n<e.markers.length&&(!i||e.markers[n].from<i.end);){let s=e.markers[n++];this.addNode(s.type,s.from,s.to)}if(!i)break;this.finishContext()}if(e.pos<e.text.length)break;if(!this.nextLine())return this.finish()}if(this.fragments&&this.reuseFragment(e.basePos))return null;e:for(;;){for(let n of this.parser.blockParsers)if(n){let i=n(this,e);if(i!=!1){if(i==!0)return null;e.forward();continue e}}break}if(e.pos==e.text.length)return this.nextLine()?null:this.finish();let t=new hg(this.lineStart+e.pos,e.text.slice(e.pos));for(let n of this.parser.leafBlockParsers)if(n){let i=n(this,t);i&&t.parsers.push(i)}e:for(;this.nextLine()&&e.pos!=e.text.length;){if(e.indent<e.baseIndent+4){for(let n of this.parser.endLeafBlock)if(n(this,e,t))break e}for(let n of t.parsers)if(n.nextLine(this,e,t))return null;t.content+=`
`+e.scrub();for(let n of e.markers)t.marks.push(n)}return this.finishLeaf(t),null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}reuseFragment(e){if(!this.fragments.moveTo(this.absoluteLineStart+e,this.absoluteLineStart)||!this.fragments.matches(this.block.hash))return!1;let t=this.fragments.takeNodes(this);return t?(this.absoluteLineStart+=t,this.lineStart=F1(this.absoluteLineStart,this.ranges),this.moveRangeI(),this.absoluteLineStart<this.to?(this.lineStart++,this.absoluteLineStart++,this.readLine()):(this.atEnd=!0,this.readLine()),!0):!1}get depth(){return this.stack.length}parentType(e=this.depth-1){return this.parser.nodeSet.types[this.stack[e].type]}nextLine(){return this.lineStart+=this.line.text.length,this.absoluteLineEnd>=this.to?(this.absoluteLineStart=this.absoluteLineEnd,this.atEnd=!0,this.readLine(),!1):(this.lineStart++,this.absoluteLineStart=this.absoluteLineEnd+1,this.moveRangeI(),this.readLine(),!0)}peekLine(){return this.scanLine(this.absoluteLineEnd+1).text}moveRangeI(){for(;this.rangeI<this.ranges.length-1&&this.absoluteLineStart>=this.ranges[this.rangeI].to;)this.rangeI++,this.absoluteLineStart=Math.max(this.absoluteLineStart,this.ranges[this.rangeI].from)}scanLine(e){let t=TD;if(t.end=e,e>=this.to)t.text="";else if(t.text=this.lineChunkAt(e),t.end+=t.text.length,this.ranges.length>1){let n=this.absoluteLineStart,i=this.rangeI;for(;this.ranges[i].to<t.end;){i++;let s=this.ranges[i].from,o=this.lineChunkAt(s);t.end=s+o.length,t.text=t.text.slice(0,this.ranges[i-1].to-n)+o,n=t.end-t.text.length}}return t}readLine(){let{line:e}=this,{text:t,end:n}=this.scanLine(this.absoluteLineStart);for(this.absoluteLineEnd=n,e.reset(t);e.depth<this.stack.length;e.depth++){let i=this.stack[e.depth],s=this.parser.skipContextMarkup[i.type];if(!s)throw new Error("Unhandled block context "+te[i.type]);let o=this.line.markers.length;if(!s(i,this,e)){this.line.markers.length>o&&(i.end=this.line.markers[this.line.markers.length-1].to),e.forward();break}e.forward()}}lineChunkAt(e){let t=this.input.chunk(e),n;if(this.input.lineChunks)n=t==`
`),d=0;for(let h=0;h<c.length;h++){let u=c[h],m=u.toLowerCase().indexOf(n);if(m>=0){let g=u.trim();if(!g)continue;if(i.push({record:{id:`text:${a}:${h+1}`,name:g.length>80?g.slice(0,80)+"\u2026":g,kind:"text",source:"project",file:a,line:h+1},score:200+Math.max(0,100-m*2),ranges:[m,m+e.length]}),++d>=s)break}}}),i):[]}async onFileChanged(e,t){let n=this.extractSymbolsFromFile(e,t,"project");this.index.pushRecords(n)}extractSymbolsFromFile(e,t,n){if(typeof t!="string")return[];let i=this.detectEditorStyle(e);return fO(t,e,i,n)}detectEditorStyle(e){var n;switch((n=e.split(".").pop())==null?void 0:n.toLowerCase()){case"c":case"h":return"text/x-csrc";case"asm":case"a65":case"inc":return"6502";case"v":return"verilog";case"wiz":return"text/x-wiz";case"bas":case"basic":return"basic";case"fb":case"fastbasic":return"fastbasic";case"bac":case"bataribasic":return"bataribasic";case"i":return"inform6";case"d":return"dialog";default:return"text/x-csrc"}}async rebuild(){this.index.clear(),await this.index.init();let e=aa();if(!e)return;let t=[];e.iterateFiles((n,i)=>{if(typeof i!="string")return;let s=this.detectEditorStyle(n),o=fO(i,n,s,"project");t.push(...o)}),this.index.pushRecords(t)}};var XM=new Set(["h","hh","hpp","inc","asm","a65","s","mac","defs","def","equ","i","m","c","bas","txt"]),zM=20,fh=class{constructor(){this.id="toolchain";this.kind="toolchain";this.fsName=null;this.files=[];this.loaded=new Map;this.readyPromise=null;this.batchSize=zM}async ready(){return this.readyPromise||(this.readyPromise=this.load()),this.readyPromise}async load(){let e=aa();if(!e)return;let t;try{t=e.getToolForFilename?e.getToolForFilename(e.mainPath):""}catch(o){t=""}let n=Cc(t,e.platform_id),i=Ac(t,e.platform_id);if(!n||!i.length)return;this.fsName=n;let s=new Set;for(let o of i){let a=await this.listFiles(o);for(let l of a)this.isSearchable(l)&&!s.has(l)&&(s.add(l),this.files.push(l))}this.files.sort();for(let o=0;o<this.files.length;o+=this.batchSize){let a=this.files.slice(o,o+this.batchSize),l=await Promise.all(a.map(async c=>{let d=await this.readFile(c);return[c,d]}));for(let[c,d]of l)d!=null&&this.loaded.set(c,d)}}isValid(){return this.fsName!=null&&this.files.length>0}async listFiles(e){let t=aa();if(!t||!this.fsName||!t.queryWorker)return[];try{let n={preload_fs:this.fsName,listshared:e,updates:[],buildsteps:[]},i=await t.queryWorker(n),s=i&&i.output;return Array.isArray(s)?s:[]}catch(n){return console.debug("Toolchain list error:",n),[]}}async readFile(e){let t=aa();if(!t||!this.fsName||!t.queryWorker)return null;try{let n={preload_fs:this.fsName,readshared:e,updates:[],buildsteps:[]},i=await t.queryWorker(n),s=i&&i.output;return s instanceof Uint8Array&&s.length>0?new TextDecoder().decode(s):null}catch(n){return console.debug("Toolchain read error:",n),null}}isSearchable(e){let t=e.split("/").pop()||e,n=t.lastIndexOf(".");return n<0?!0:XM.has(t.substring(n+1).toLowerCase())}async query(e,t){return await this.ready(),!this.isValid()||e.length<2?[]:this.textQuery(e,t)}textQuery(e,t){if(e.length<2)return[];let n=e.toLowerCase(),i=[],s=Math.max(t,5);for(let[o,a]of this.loaded){let l=a.split(`
`),c=0;for(let d=0;d<l.length;d++){let h=l[d],f=h.toLowerCase().indexOf(n);if(f>=0){let m=h.trim();if(!m)continue;if(i.push({record:{id:`toolchain:${o}:${d+1}`,name:m.length>80?m.slice(0,80)+"\u2026":m,kind:"text",source:"toolchain",file:o,line:d+1},score:200+Math.max(0,100-f*2),ranges:[f,f+e.length]}),++c>=s)break}}}return i.sort((o,a)=>a.score-o.score),i.slice(0,t)}invalidate(){this.fsName=null,this.files=[],this.loaded.clear(),this.readyPromise=null}};var xP=()=>[];function wP(r){xP=r}var WM=/<h([1-3])\b[^>]*>([\s\S]*?)<\/h\1>/gi;function BM(r){return r.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#(?:0*39|x27);/gi,"'").replace(/&nbsp;/g," ").replace(/&hellip;/g,"\u2026").replace(/&mdash;/g,"\u2014").replace(/&ndash;/g,"\u2013").replace(/&rsquo;|&lsquo;/g,"'").replace(/&rdquo;|&ldquo;/g,'"').replace(/&raquo;/g,"\xBB").replace(/&laquo;/g,"\xAB").replace(/&amp;/g,"&")}function pO(r){return BM(r.replace(/<[^>]+>/g," ")).replace(/\s+/g," ").trim()}function VM(r,e=180){let t=r.trim();if(!t)return;let i=t.slice(0,e).match(/^([\s\S]*?[.!?])(?:\s|$)/);return i?i[1]:t.length<=e?t:t.slice(0,e-1)+"\u2026"}function YM(r){let e=[],t="#help/"+r.id,n=r.title||r.id,i=r.html||"",s=[],o=new RegExp(WM.source,"gi"),a;for(;a=o.exec(i);)s.push({name:pO(a[2]),start:a.index,end:o.lastIndex});let l=(u,f,m)=>{if(!f)return;let g=VM(m),v=g&&m.startsWith(g)?m.slice(g.length).trim():m;e.push({id:`${r.id}:${u}`,name:f,kind:"doc",brief:g,detail:v||void 0,source:"docs",file:n,url:t})},c=s.length?s[0].start:i.length,d=pO(i.slice(0,c)),h=s.length&&s[0].start===0?s[0].name||r.title:r.title||r.id;l(0,h,d);for(let u=0;u<s.length;u++){if(u===0&&s[0].start===0)continue;let f=u+1<s.length?s[u+1].start:i.length;l(u+1,s[u].name,pO(i.slice(s[u].end,f)))}return e}var ph=class{constructor(){this.id="docs";this.kind="docs";this.index=null;this.readyPromise=null}async ready(){return this.readyPromise?this.readyPromise:(this.readyPromise=this.load(),this.readyPromise)}async load(){let e=xP()||[];if(e.length===0)return;let t=[];for(let i of e)t.push(...YM(i));if(t.length===0)return;let n=new oa(t);await n.init(),this.index=n}async query(e,t){return await this.ready(),this.index?this.index.query(e,t):[]}};var FM=50,mO=class r{constructor(){this.sources=new Map;this.projectSource=new uh,this.toolchainSource=new fh,this.docsSource=new ph,this.sources.set("project",this.projectSource),this.sources.set("toolchain",this.toolchainSource),this.sources.set("docs",this.docsSource)}static getInstance(){return r.instance||(r.instance=new r),r.instance}parseQuery(e){return e.startsWith("#")?{needle:e.slice(1).trim(),filter:"symbols"}:e.startsWith(">")?{needle:e.slice(1).trim(),filter:"files"}:e.startsWith("?")?{needle:e.slice(1).trim(),filter:"docs"}:{needle:e,filter:"all"}}async query(e,t=FM){let{needle:n,filter:i}=this.parseQuery(e);if(!n)return[];let s=[],o=[];i==="docs"?o.push(this.docsSource):i==="files"?o.push(this.projectSource):i==="symbols"?(o.push(this.projectSource),o.push(this.toolchainSource)):(o.push(this.projectSource),o.push(this.toolchainSource),o.push(this.docsSource));for(let d of o)try{await d.ready();let h=await d.query(n,t-s.length);s.push(...h)}catch(h){console.debug("Search source error:",h)}s.sort((d,h)=>h.score-d.score);let a={project:1.3,toolchain:1,docs:.7};for(let d of s){let h=a[d.record.source]||1;d.score*=h}s.sort((d,h)=>h.score-d.score);let l=new Set;return s.filter(d=>l.has(d.record.id)?!1:(l.add(d.record.id),!0)).slice(0,t)}},PP=mO.getInstance();var kP=typeof String.prototype.normalize=="function"?r=>r.normalize("NFKD"):r=>r,as=class{constructor(e,t,n=0,i=e.length,s,o){this.test=o,this.value={from:0,to:0,precise:!1},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(n,i),this.bufferStart=n,this.normalize=s?a=>s(kP(a)):kP,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Mn(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=Bc(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=ji(e);let i=this.normalize(t);if(i.length)for(let s=0,o=n,a=!0;;s++){let l=i.charCodeAt(s),c=this.match(l,o,a,this.bufferPos+this.bufferStart,s==i.length-1);if(c)return this.value=c,this;if(s==i.length-1)break;a&&s<t.length&&t.charCodeAt(s)==l?o++:a=!1}}}match(e,t,n,i,s){let o=null;for(let a=0;a<this.matches.length;){let l=this.matches[a],c=!1;this.query.charCodeAt(l.index)==e&&(l.index==this.query.length-1?o={from:l.from,to:i,precise:s&&l.precise}:(l.index++,c=!0)),c?a++:this.matches.splice(a,1)}return this.query.charCodeAt(0)==e&&(this.query.length==1?o={from:t,to:i,precise:n&&s}:this.matches.push({from:t,index:1,precise:n})),o&&this.test&&!this.test(o.from,o.to,this.buffer,this.bufferStart)&&(o=null) Line truncated
`:n=="r"?"\r":n=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new bO(this):new gO(this)}getCursor(e,t=0,n){let i=e.doc?e:Me.create({doc:e});return n==null&&(n=i.doc.length),this.regexp?ca(this,i,t,n):la(this,i,t,n)}},xh=class{constructor(e){this.spec=e}};function rL(r,e,t){return(n,i,s,o)=>{if(t&&!t(n,i,s,o))return!1;let a=n>=o&&i<=o+s.length?s.slice(n-o,i-o):e.doc.sliceString(n,i);return r(a,e,n,i)}}function la(r,e,t,n){let i;return r.wholeWord&&(i=nL(e.doc,e.charCategorizer(e.selection.main.head))),r.test&&(i=rL(r.test,e,i)),new as(e.doc,r.unquoted,t,n,r.caseSensitive?void 0:s=>s.toLowerCase(),i)}function nL(r,e){return(t,n,i,s)=>((s>t||s+i.length<n)&&(s=Math.max(0,t-2),i=r.sliceString(s,Math.min(r.length,n+2))),(e(wh(i,t-s))!=rt.Word||e(Ph(i,t-s))!=rt.Word)&&(e(Ph(i,n-s))!=rt.Word||e(wh(i,n-s))!=rt.Word))}var gO=class extends xh{constructor(e){super(e)}nextMatch(e,t,n){let i=la(this.spec,e,n,e.doc.length).nextOverlapping();if(i.done){let s=Math.min(e.doc.length,t+this.spec.unquoted.length);i=la(this.spec,e,0,s).nextOverlapping()}return i.done||i.value.from==t&&i.value.to==n?null:i.value}prevMatchInRange(e,t,n){for(let i=n;;){let s=Math.max(t,i-1e4-this.spec.unquoted.length),o=la(this.spec,e,s,i),a=null;for(;!o.nextOverlapping().done;)a=o.value;if(a)return a;if(s==t)return null;i-=1e4}}prevMatch(e,t,n){let i=this.prevMatchInRange(e,0,t);return i||(i=this.prevMatchInRange(e,Math.max(0,n-this.spec.unquoted.length),e.doc.length)),i&&(i.from!=t||i.to!=n)?i:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=la(this.spec,e,0,e.doc.length),i=[];for(;!n.next().done;){if(i.length>=t)return null;i.push(n.value)}return i}highlight(e,t,n,i){let s=la(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)i(s.value.from,s.value.to)}};function iL(r,e,t){return(n,i,s)=>(!t||t(n,i,s))&&r(s[0],e,n,i)}function ca(r,e,t,n){let i;return r.wholeWord&&(i=sL(e.charCategorizer(e.selection.main.head))),r.test&&(i=iL(r.test,e,i)),new gh(e.doc,r.search,{ignoreCase:!r.caseSensitive,test:i},t,n)}function wh(r,e){return r.slice(xt(r,e,!1),e)}function Ph(r,e){return r.slice(e,xt(r,e))}function sL(r){return(e,t,n)=>!n[0].length||(r(wh(n.input,n.index))!=rt.Word||r(Ph(n.input,n.index))!=rt.Word)&&(r(Ph(n.input,n.index+n[0].length))!=rt.Word||r(wh(n.input,n.index+n[0].length))!=rt.Word)}var bO=class extends xh{nextMatch(e,t,n){let i=ca(this.spec,e,n,e.doc.length).next();return i.done&&(i=ca(this.spec,e,0,t).next()),i.done?null:i.value}prevMatchInRange(e,t,n){for(let i=1;;i++){let s=Math.max(t,n-i*1e4),o=ca(this.spec,e,s,n),a=null;for(;!o.next().done;)a=o.value;if(a&&(s==t||a.from>s+10))return a;if(s==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,n)=>{if(n=="&")return e.match[0];if(n=="$")return"$";for(let i=n.length;i>0;i--){let s=+n.slice(0,i);if(s>0&&s<e.match.length)return e.match[s]+n.slice(i)}return t})}matchAll(e,t){let n=ca(this.spec,e,0,e.doc.length),i=[];for(;!n.next().done;){if(i.length>=t)return null;i.push(n.value)}return i}highlight(e,t,n,i){let s=ca(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!s.next().done;)i(s.value.from,s.value.to)}},El=be.define(),kO=be.define(),os=Ze.define({create(r){return new Cl(yO(r).create(),null)},update(r,e){for(let t of e.effects)t.is(El)?r=new Cl(t.value.create(),r.panel):t.is(kO)&&(r=new Cl(r.query,t.value?$O:null));return r},provide:r=>hl.from(r,e=>e.panel)});var Cl=class{constructor(e,t){this.query=e,this.panel=t}},oL=ee.mark({class:"cm-searchMatch"}),aL=ee.mark({class:"cm-searchMatch cm-searchMatch-selected"}),lL=at.fromClass(class{constructor(r){this.view=r,this.decorations=this.highlight(r.state.field(os))}update(r){let e=r.state.field(os);(e!=r.startState.field(os)||r.docChanged||r.selectionSet||r.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:r,panel:e}){if(!e||!r.spec.valid)return ee.none;let{view:t}=this,n=new Rn;for(let i=0,s=t.visibleRanges,o=s.length;i<o;i++){let{from:a,to:l}=s[i];for(;i<o-1&&l>s[i+1].from-500;)l=s[++i].to;r.highlight(t.state,a,l,(c,d)=>{let h=t.state.selection.ranges.some(u=>u.from==c&&u.to==d);n.add(c,d,h?aL:oL)})}return n.finish()}},{decorations:r=>r.decorations});function Rl(r){return e=>{let t=e.state.field(os,!1);return t&&t.query.spec.valid?r(e,t):Qh(e)}}var da=Rl((r,{query:e})=>{let{to:t}=r.state.selection.main,n=e.nextMatch(r.state,t,t);if(!n)return!1;let i=Z.single(n.from,n.to),s=r.state.facet(no);return r.dispatch({selection:i,effects:[QO(r,n),s.scrollToMatch(i.main,r)],userEvent:"select.search"}),CP(r),!0}),kh=Rl((r,{query:e})=>{let{state:t}=r,{from:n}=t.selection.main,i=e.prevMatch(t,n,n);if( Line truncated
`+t.scrub(),s=this.advance(i);return s>-1&&s<i.length?this.complete(e,n,s):!1}finish(e,t){return(this.stage==2||this.stage==3)&&Dl(t.content,this.pos)==t.content.length?this.complete(e,t,t.content.length):!1}complete(e,t,n){return e.addLeafElement(t,Be(te.LinkReference,this.start,this.start+n,this.elts)),!0}nextStage(e){return e?(this.pos=e.to-this.start,this.elts.push(e),this.stage++,!0):(e===!1&&(this.stage=-1),!1)}advance(e){for(;;){if(this.stage==-1)return-1;if(this.stage==0){if(!this.nextStage(Y1(e,this.pos,this.start,!0)))return-1;if(e.charCodeAt(this.pos)!=58)return this.stage=-1;this.elts.push(Be(te.LinkMark,this.pos+this.start,this.pos+this.start+1)),this.pos++}else if(this.stage==1){if(!this.nextStage(B1(e,Dl(e,this.pos),this.start)))return-1}else if(this.stage==2){let t=Dl(e,this.pos),n=0;if(t>this.pos){let i=V1(e,t,this.start);if(i){let s=cg(e,i.to-this.start);s>0&&(this.nextStage(i),n=s)}}return n||(n=cg(e,this.pos)),n>0&&n<e.length?n:-1}else return cg(e,this.pos)}}};function cg(r,e){for(;e<r.length;e++){let t=r.charCodeAt(e);if(t==10)break;if(!vn(t))return-1}return e}var Og=class{nextLine(e,t,n){let i=t.depth<e.stack.length?-1:R1(t),s=t.next;if(i<0)return!1;let o=Be(te.HeaderMark,e.lineStart+t.pos,e.lineStart+i);return e.nextLine(),e.addLeafElement(n,Be(s==61?te.SetextHeading1:te.SetextHeading2,n.start,e.prevLineEnd(),[...e.parser.parseInline(n.content,n.start),o])),!0}finish(){return!1}},I1={LinkReference(r,e){return e.content.charCodeAt(0)==91?new mg(e):null},SetextHeading(){return new Og}},TD=[(r,e)=>E1(e)>=0,(r,e)=>_1(e)>=0,(r,e)=>A1(e)>=0,(r,e)=>wg(e,r,!0)>=0,(r,e)=>Pg(e,r,!0)>=0,(r,e)=>xg(e,r,!0)>=0,(r,e)=>D1(e,r,!0)>=0],_D={text:"",end:0},gg=class{constructor(e,t,n,i){this.parser=e,this.input=t,this.ranges=i,this.line=new ug,this.atEnd=!1,this.reusePlaceholders=new Map,this.stoppedAt=null,this.rangeI=0,this.to=i[i.length-1].to,this.lineStart=this.absoluteLineStart=this.absoluteLineEnd=i[0].from,this.block=Rh.create(te.Document,0,this.lineStart,0,0),this.stack=[this.block],this.fragments=n.length?new Sg(n,t):null,this.readLine()}get parsedPos(){return this.absoluteLineStart}advance(){if(this.stoppedAt!=null&&this.absoluteLineStart>this.stoppedAt)return this.finish();let{line:e}=this;for(;;){for(let n=0;;){let i=e.depth<this.stack.length?this.stack[this.stack.length-1]:null;for(;n<e.markers.length&&(!i||e.markers[n].from<i.end);){let s=e.markers[n++];this.addNode(s.type,s.from,s.to)}if(!i)break;this.finishContext()}if(e.pos<e.text.length)break;if(!this.nextLine())return this.finish()}if(this.fragments&&this.reuseFragment(e.basePos))return null;e:for(;;){for(let n of this.parser.blockParsers)if(n){let i=n(this,e);if(i!=!1){if(i==!0)return null;e.forward();continue e}}break}if(e.pos==e.text.length)return this.nextLine()?null:this.finish();let t=new hg(this.lineStart+e.pos,e.text.slice(e.pos));for(let n of this.parser.leafBlockParsers)if(n){let i=n(this,t);i&&t.parsers.push(i)}e:for(;this.nextLine()&&e.pos!=e.text.length;){if(e.indent<e.baseIndent+4){for(let n of this.parser.endLeafBlock)if(n(this,e,t))break e}for(let n of t.parsers)if(n.nextLine(this,e,t))return null;t.content+=`
`+e.scrub();for(let n of e.markers)t.marks.push(n)}return this.finishLeaf(t),null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}reuseFragment(e){if(!this.fragments.moveTo(this.absoluteLineStart+e,this.absoluteLineStart)||!this.fragments.matches(this.block.hash))return!1;let t=this.fragments.takeNodes(this);return t?(this.absoluteLineStart+=t,this.lineStart=F1(this.absoluteLineStart,this.ranges),this.moveRangeI(),this.absoluteLineStart<this.to?(this.lineStart++,this.absoluteLineStart++,this.readLine()):(this.atEnd=!0,this.readLine()),!0):!1}get depth(){return this.stack.length}parentType(e=this.depth-1){return this.parser.nodeSet.types[this.stack[e].type]}nextLine(){return this.lineStart+=this.line.text.length,this.absoluteLineEnd>=this.to?(this.absoluteLineStart=this.absoluteLineEnd,this.atEnd=!0,this.readLine(),!1):(this.lineStart++,this.absoluteLineStart=this.absoluteLineEnd+1,this.moveRangeI(),this.readLine(),!0)}peekLine(){return this.scanLine(this.absoluteLineEnd+1).text}moveRangeI(){for(;this.rangeI<this.ranges.length-1&&this.absoluteLineStart>=this.ranges[this.rangeI].to;)this.rangeI++,this.absoluteLineStart=Math.max(this.absoluteLineStart,this.ranges[this.rangeI].from)}scanLine(e){let t=_D;if(t.end=e,e>=this.to)t.text="";else if(t.text=this.lineChunkAt(e),t.end+=t.text.length,this.ranges.length>1){let n=this.absoluteLineStart,i=this.rangeI;for(;this.ranges[i].to<t.end;){i++;let s=this.ranges[i].from,o=this.lineChunkAt(s);t.end=s+o.length,t.text=t.text.slice(0,this.ranges[i-1].to-n)+o,n=t.end-t.text.length}}return t}readLine(){let{line:e}=this,{text:t,end:n}=this.scanLine(this.absoluteLineStart);for(this.absoluteLineEnd=n,e.reset(t);e.depth<this.stack.length;e.depth++){let i=this.stack[e.depth],s=this.parser.skipContextMarkup[i.type];if(!s)throw new Error("Unhandled block context "+te[i.type]);let o=this.line.markers.length;if(!s(i,this,e)){this.line.markers.length>o&&(i.end=this.line.markers[this.line.markers.length-1].to),e.forward();break}e.forward()}}lineChunkAt(e){let t=this.input.chunk(e),n;if(this.input.lineChunks)n=t==`
`?"":t;else{let i=t.indexOf(`
`);n=i<0?t:t.slice(0,i)}return e+n.length>this.to?n.slice(0,this.to-e):n}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(e,t,n=0){this.block=Rh.create(e,n,this.lineStart+t,this.block.hash,this.lineStart+this.line.text.length),this.stack.push(this.block)}startComposite(e,t,n=0){this.startContext(this.parser.getNodeType(e),t,n)}addNode(e,t,n){typeof e=="number"&&(e=new Ee(this.parser.nodeSet.types[e],fa,fa,(n!=null?n:this.prevLineEnd())-t)),this.block.addChild(e,t-this.block.from)}addElement(e){this.block.addChild(e.toTree(this.parser.nodeSet),e.from-this.block.from)}addLeafElement(e,t){this.addNode(this.buffer.writeElements(yg(t.children,e.marks),-t.from).finish(t.type,t.to-t.from),t.from)}finishContext(){let e=this.stack.pop(),t=this.stack[this.stack.length-1];t.addChild(e.toTree(this.parser.nodeSet),e.from-t.from),this.block=t}finish(){for(;this.stack.length>1;)this.finishContext();return this.addGaps(this.block.toTree(this.parser.nodeSet,this.lineStart))}addGaps(e){return this.ranges.length>1?Z1(this.ranges,0,e.topNode,this.ranges[0].from,this.reusePlaceholders):e}finishLeaf(e){for(let n of e.parsers)if(n.finish(this,e))return;let t=yg(this.parser.parseInline(e.content,e.start),e.marks);this.addNode(this.buffer.writeElements(t,-e.start).finish(te.Paragraph,e.content.length),e.start)}elt(e,t,n,i){return typeof e=="string"?Be(this.parser.getNodeType(e),t,n,i):new Lh(e,t)}get buffer(){return new Mh(this.parser.nodeSet)}};function Z1(r,e,t,n,i){let s=r[e].to,o=[],a=[],l=t.from+n;function c(d,h){for(;h?d>=s:d>s;){let u=r[e+1].from-s;n+=u,d+=u,e++,s=r[e].to}}for(let d=t.firstChild;d;d=d.nextSibling){c(d.from+n,!0);let h=d.from+n,u,f=i.get(d.tree);f?u=f:d.to+n>s?(u=Z1(r,e,d,n,i),c(d.to+n,!1)):u=d.toTree(),o.push(u),a.push(h-l)}return c(t.to+n,!1),new Ee(t.type,o,a,t.to+n-l,t.tree?t.tree.propValues:void 0)}var Zl=class r extends _i{constructor(e,t,n,i,s,o,a,l,c){super(),this.nodeSet=e,this.blockParsers=t,this.leafBlockParsers=n,this.blockNames=i,this.endLeafBlock=s,this.skipContextMarkup=o,this.inlineParsers=a,this.inlineNames=l,this.wrappers=c,this.nodeTypes=Object.create(null);for(let d of e.types)this.nodeTypes[d.name]=d.id}createParse(e,t,n){let i=new gg(this,e,t,n);for(let s of this.wrappers)i=s(i,e,t,n);return i}configure(e){let t=bg(e);if(!t)return this;let{nodeSet:n,skipContextMarkup:i}=this,s=this.blockParsers.slice(),o=this.leafBlockParsers.slice(),a=this.blockNames.slice(),l=this.inlineParsers.slice(),c=this.inlineNames.slice(),d=this.endLeafBlock.slice(),h=this.wrappers;if(Ll(t.defineNodes)){i=Object.assign({},i);let u=n.types.slice(),f;for(let m of t.defineNodes){let{name:g,block:v,composite:k,style:L}=typeof m=="string"?{name:m}:m;if(u.some(w=>w.name==g))continue;k&&(i[u.length]=(w,x,R)=>k(x,R,w.value));let M=u.length,D=k?["Block","BlockContext"]:v?M>=te.ATXHeading1&&M<=te.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"]:void 0;u.push(bt.define({id:M,name:g,props:D&&[[xe.group,D]]})),L&&(f||(f={}),Array.isArray(L)||L instanceof Ur?f[g]=L:Object.assign(f,L))}n=new Qi(u),f&&(n=n.extend(Ht(f)))}if(Ll(t.props)&&(n=n.extend(...t.props)),Ll(t.remove))for(let u of t.remove){let f=this.blockNames.indexOf(u),m=this.inlineNames.indexOf(u);f>-1&&(s[f]=o[f]=void 0),m>-1&&(l[m]=void 0)}if(Ll(t.parseBlock))for(let u of t.parseBlock){let f=a.indexOf(u.name);if(f>-1)s[f]=u.parse,o[f]=u.leaf;else{let m=u.before?Eh(a,u.before):u.after?Eh(a,u.after)+1:a.length-1;s.splice(m,0,u.parse),o.splice(m,0,u.leaf),a.splice(m,0,u.name)}u.endLeaf&&d.push(u.endLeaf)}if(Ll(t.parseInline))for(let u of t.parseInline){let f=c.indexOf(u.name);if(f>-1)l[f]=u.parse;else{let m=u.before?Eh(c,u.before):u.after?Eh(c,u.after)+1:c.length-1;l.splice(m,0,u.parse),c.splice(m,0,u.name)}}return t.wrap&&(h=h.concat(t.wrap)),new r(n,s,o,a,d,i,l,c,h)}getNodeType(e){let t=this.nodeTypes[e];if(t==null)throw new RangeError(`Unknown node type '${e}'`);return t}parseInline(e,t){let n=new zl(this,e,t);e:for(let i=t;i<n.end;){let s=n.char(i);for(let o of this.inlineParsers)if(o){let a=o(n,s,i);if(a>=0){i=a;continue e}}i++}return n.resolveMarkers(0)}};function Ll(r){return r!=null&&r.length>0}function bg(r){if(!Array.isArray(r))return r;if(r.length==0)return null;let e=bg(r[0]);if(r.length==1)return e;let t=bg(r.slice(1));if(!t||!e)return e||t;let n=(o,a)=>(o||fa).concat(a||fa),i=e.wrap,s=t.wrap;return{props:n(e.props,t.props),defineNodes:n(e.defineNodes,t.defineNodes),parseBlock:n(e.parseBlock,t.parseBlock),parseInline:n(e.parseInline,t.parseInline),remove:n(e.remove,t.remove),wrap:i?s?(o,a,l,c)=>i(s(o,a,l,c),a,l,c):i:s}}function Eh(r,e){let t=r.indexOf(e);if(t<0)throw new RangeError(`Position specified relative to unknown parser ${e}`);return t}var X1=[bt.none];for(let r=1,e;e=te[r];r++)X1[r]=bt.define({id:r,name:e,props:r>=te.Escape?[]:[[xe.group,r in T1?["Block","BlockContext"]:["Block","LeafBlock"]]],top:e=="Document"});var fa=[],Mh=class{constructor(e){this.nodeSet=e,this.content=[],this.nodes=[]}write(e Line truncated
`;)s--;this.fragmentEnd=s?s-1:0}let n=this.cursor;n||(n=this.cursor=this.fragment.tree.cursor(),n.firstChild());let i=e+this.fragment.offset;for(;n.to<=i;)if(!n.parent())return!1;for(;;){if(n.from>=i)return this.fragment.from<=t;if(!n.childAfter(i))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(xe.contextHash)==e}takeNodes(e){let t=this.cursor,n=this.fragment.offset,i=this.fragmentEnd-(this.fragment.openEnd?1:0),s=e.absoluteLineStart,o=s,a=e.block.children.length,l=o,c=a;for(;;){if(t.to-n>i){if(t.type.isAnonymous&&t.firstChild())continue;break}let d=F1(t.from-n,e.ranges);if(t.to-n<=e.ranges[e.rangeI].to)e.addNode(t.tree,d);else{let h=new Ee(e.parser.nodeSet.types[te.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(h,t.tree),e.addNode(h,d)}if(t.type.is("Block")&&(AD.indexOf(t.type.id)<0?(o=t.to-n,a=e.block.children.length):(o=l,a=c),l=t.to-n,c=e.block.children.length),!t.nextSibling())break}for(;e.block.children.length>a;)e.block.children.pop(),e.block.positions.pop();return o-s}};function F1(r,e){let t=r;for(let n=1;n<e.length;n++){let i=e[n-1].to,s=e[n].from;i<r&&(t-=s-i)}return t}var CD=Ht({"Blockquote/...":O.quote,HorizontalRule:O.contentSeparator,"ATXHeading1/... SetextHeading1/...":O.heading1,"ATXHeading2/... SetextHeading2/...":O.heading2,"ATXHeading3/...":O.heading3,"ATXHeading4/...":O.heading4,"ATXHeading5/...":O.heading5,"ATXHeading6/...":O.heading6,"Comment CommentBlock":O.comment,Escape:O.escape,Entity:O.character,"Emphasis/...":O.emphasis,"StrongEmphasis/...":O.strong,"Link/... Image/...":O.link,"OrderedList/... BulletList/...":O.list,"BlockQuote/...":O.quote,"InlineCode CodeText":O.monospace,"URL Autolink":O.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":O.processingInstruction,"CodeInfo LinkLabel":O.labelName,LinkTitle:O.string,Paragraph:O.content}),N1=new Zl(new Qi(X1).extend(CD),Object.keys(Ch).map(r=>Ch[r]),Object.keys(Ch).map(r=>I1[r]),Object.keys(Ch),QD,T1,Object.keys(dg).map(r=>dg[r]),Object.keys(dg),[]);function ED(r,e,t){let n=[];for(let i=r.firstChild,s=e;;i=i.nextSibling){let o=i?i.from:t;if(o>s&&n.push({from:s,to:o}),!i)break;s=i.to}return n}function j1(r){let{codeParser:e,htmlParser:t}=r;return{wrap:Dd((i,s)=>{let o=i.type.id;if(e&&(o==te.CodeBlock||o==te.FencedCode)){let a="";if(o==te.FencedCode){let c=i.node.getChild(te.CodeInfo);c&&(a=s.read(c.from,c.to))}let l=e(a);if(l)return{parser:l,overlay:c=>c.type.id==te.CodeText,bracketed:o==te.FencedCode}}else if(t&&(o==te.HTMLBlock||o==te.HTMLTag||o==te.CommentBlock))return{parser:t,overlay:ED(i.node,i.from,i.to)};return null})}}var RD={resolve:"Strikethrough",mark:"StrikethroughMark"},MD={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":O.strikethrough}},{name:"StrikethroughMark",style:O.processingInstruction}],parseInline:[{name:"Strikethrough",parse(r,e,t){if(e!=126||r.char(t+1)!=126||r.char(t+2)==126)return-1;let n=r.slice(t-1,t),i=r.slice(t+2,t+3),s=/\s|^$/.test(n),o=/\s|^$/.test(i),a=Xl.test(n),l=Xl.test(i);return r.addDelimiter(RD,t,t+2,!o&&(!l||s||a),!s&&(!a||o||l))},after:"Emphasis"}]};function Il(r,e,t=0,n,i=0){let s=0,o=!0,a=-1,l=-1,c=!1,d=()=>{n.push(r.elt("TableCell",i+a,i+l,r.parser.parseInline(e.slice(a,l),i+a)))};for(let h=t;h<e.length;h++){let u=e.charCodeAt(h);u==124&&!c?((!o||a>-1)&&s++,o=!1,n&&(a>-1&&d(),n.push(r.elt("TableDelimiter",h+i,h+i+1))),a=l=-1):(c||u!=32&&u!=9)&&(a<0&&(a=h),l=h+1),c=!c&&u==92}return a>-1&&(s++,n&&d()),s}function v1(r,e){for(let t=e;t<r.length;t++){let n=r.charCodeAt(t);if(n==124)return!0;n==92&&t++}return!1}var U1=/^[>\s]*\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/,Ih=class{constructor(){this.rows=null}nextLine(e,t,n){if(this.rows==null){this.rows=!1;let i;if((t.next==45||t.next==58||t.next==124)&&U1.test(i=t.text.slice(t.pos))){let s=[];Il(e,n.content,0,s,n.start)==Il(e,i,0)&&(this.rows=[e.elt("TableHeader",n.start,n.start+n.content.length,s),e.elt("TableDelimiter",e.lineStart+t.pos,e.lineStart+t.text.length)])}}else if(this.rows){let i=[];Il(e,t.text,t.pos,i,e.lineStart),this.rows.push(e.elt("TableRow",e.lineStart+t.pos,e.lineStart+t.text.length,i))}return!1}finish(e,t){return this.rows?(e.addLeafElement(t,e.elt("Table",t.start,t.start+t.content.length,this.rows)),!0):!1}},LD={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":O.heading}},"TableRow",{name:"TableCell",style:O.content},{name:"TableDelimiter",style:O.processingInstruction}],parseBlock:[{name:"Table",leaf(r,e){return v1(e.content,0)?new Ih:null},endLeaf(r,e,t){if(t.parsers.some(i=>i instanceof Ih)||!v1(e.text,e.basePos))return!1;let n=r.peekLine();return U1.test(n)&&Il(r,e.text,e.basePos)==Il(r,n,e.basePos)},before:"SetextHeading"}]},vg=class{nextLine(){return!1}finish(e,t){return e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)])),!0}},DD={defineNodes:[{name:"Task",block:!0,style:O.list},{name:"TaskMarker",style:O.atom}],pa Line truncated
`);n=i<0?t:t.slice(0,i)}return e+n.length>this.to?n.slice(0,this.to-e):n}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(e,t,n=0){this.block=Rh.create(e,n,this.lineStart+t,this.block.hash,this.lineStart+this.line.text.length),this.stack.push(this.block)}startComposite(e,t,n=0){this.startContext(this.parser.getNodeType(e),t,n)}addNode(e,t,n){typeof e=="number"&&(e=new Ee(this.parser.nodeSet.types[e],fa,fa,(n!=null?n:this.prevLineEnd())-t)),this.block.addChild(e,t-this.block.from)}addElement(e){this.block.addChild(e.toTree(this.parser.nodeSet),e.from-this.block.from)}addLeafElement(e,t){this.addNode(this.buffer.writeElements(yg(t.children,e.marks),-t.from).finish(t.type,t.to-t.from),t.from)}finishContext(){let e=this.stack.pop(),t=this.stack[this.stack.length-1];t.addChild(e.toTree(this.parser.nodeSet),e.from-t.from),this.block=t}finish(){for(;this.stack.length>1;)this.finishContext();return this.addGaps(this.block.toTree(this.parser.nodeSet,this.lineStart))}addGaps(e){return this.ranges.length>1?Z1(this.ranges,0,e.topNode,this.ranges[0].from,this.reusePlaceholders):e}finishLeaf(e){for(let n of e.parsers)if(n.finish(this,e))return;let t=yg(this.parser.parseInline(e.content,e.start),e.marks);this.addNode(this.buffer.writeElements(t,-e.start).finish(te.Paragraph,e.content.length),e.start)}elt(e,t,n,i){return typeof e=="string"?Be(this.parser.getNodeType(e),t,n,i):new Lh(e,t)}get buffer(){return new Mh(this.parser.nodeSet)}};function Z1(r,e,t,n,i){let s=r[e].to,o=[],a=[],l=t.from+n;function c(d,h){for(;h?d>=s:d>s;){let u=r[e+1].from-s;n+=u,d+=u,e++,s=r[e].to}}for(let d=t.firstChild;d;d=d.nextSibling){c(d.from+n,!0);let h=d.from+n,u,f=i.get(d.tree);f?u=f:d.to+n>s?(u=Z1(r,e,d,n,i),c(d.to+n,!1)):u=d.toTree(),o.push(u),a.push(h-l)}return c(t.to+n,!1),new Ee(t.type,o,a,t.to+n-l,t.tree?t.tree.propValues:void 0)}var Zl=class r extends _i{constructor(e,t,n,i,s,o,a,l,c){super(),this.nodeSet=e,this.blockParsers=t,this.leafBlockParsers=n,this.blockNames=i,this.endLeafBlock=s,this.skipContextMarkup=o,this.inlineParsers=a,this.inlineNames=l,this.wrappers=c,this.nodeTypes=Object.create(null);for(let d of e.types)this.nodeTypes[d.name]=d.id}createParse(e,t,n){let i=new gg(this,e,t,n);for(let s of this.wrappers)i=s(i,e,t,n);return i}configure(e){let t=bg(e);if(!t)return this;let{nodeSet:n,skipContextMarkup:i}=this,s=this.blockParsers.slice(),o=this.leafBlockParsers.slice(),a=this.blockNames.slice(),l=this.inlineParsers.slice(),c=this.inlineNames.slice(),d=this.endLeafBlock.slice(),h=this.wrappers;if(Ll(t.defineNodes)){i=Object.assign({},i);let u=n.types.slice(),f;for(let m of t.defineNodes){let{name:g,block:v,composite:k,style:L}=typeof m=="string"?{name:m}:m;if(u.some(w=>w.name==g))continue;k&&(i[u.length]=(w,x,R)=>k(x,R,w.value));let M=u.length,D=k?["Block","BlockContext"]:v?M>=te.ATXHeading1&&M<=te.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"]:void 0;u.push(bt.define({id:M,name:g,props:D&&[[xe.group,D]]})),L&&(f||(f={}),Array.isArray(L)||L instanceof qr?f[g]=L:Object.assign(f,L))}n=new Qi(u),f&&(n=n.extend(Kt(f)))}if(Ll(t.props)&&(n=n.extend(...t.props)),Ll(t.remove))for(let u of t.remove){let f=this.blockNames.indexOf(u),m=this.inlineNames.indexOf(u);f>-1&&(s[f]=o[f]=void 0),m>-1&&(l[m]=void 0)}if(Ll(t.parseBlock))for(let u of t.parseBlock){let f=a.indexOf(u.name);if(f>-1)s[f]=u.parse,o[f]=u.leaf;else{let m=u.before?Eh(a,u.before):u.after?Eh(a,u.after)+1:a.length-1;s.splice(m,0,u.parse),o.splice(m,0,u.leaf),a.splice(m,0,u.name)}u.endLeaf&&d.push(u.endLeaf)}if(Ll(t.parseInline))for(let u of t.parseInline){let f=c.indexOf(u.name);if(f>-1)l[f]=u.parse;else{let m=u.before?Eh(c,u.before):u.after?Eh(c,u.after)+1:c.length-1;l.splice(m,0,u.parse),c.splice(m,0,u.name)}}return t.wrap&&(h=h.concat(t.wrap)),new r(n,s,o,a,d,i,l,c,h)}getNodeType(e){let t=this.nodeTypes[e];if(t==null)throw new RangeError(`Unknown node type '${e}'`);return t}parseInline(e,t){let n=new zl(this,e,t);e:for(let i=t;i<n.end;){let s=n.char(i);for(let o of this.inlineParsers)if(o){let a=o(n,s,i);if(a>=0){i=a;continue e}}i++}return n.resolveMarkers(0)}};function Ll(r){return r!=null&&r.length>0}function bg(r){if(!Array.isArray(r))return r;if(r.length==0)return null;let e=bg(r[0]);if(r.length==1)return e;let t=bg(r.slice(1));if(!t||!e)return e||t;let n=(o,a)=>(o||fa).concat(a||fa),i=e.wrap,s=t.wrap;return{props:n(e.props,t.props),defineNodes:n(e.defineNodes,t.defineNodes),parseBlock:n(e.parseBlock,t.parseBlock),parseInline:n(e.parseInline,t.parseInline),remove:n(e.remove,t.remove),wrap:i?s?(o,a,l,c)=>i(s(o,a,l,c),a,l,c):i:s}}function Eh(r,e){let t=r.indexOf(e);if(t<0)throw new RangeError(`Position specified relative to unknown parser ${e}`);return t}var X1=[bt.none];for(let r=1,e;e=te[r];r++)X1[r]=bt.define({id:r,name:e,props:r>=te.Escape?[]:[[xe.group,r in T1?["Block","BlockContext"]:["Block","LeafBlock"]]],top:e=="Document"});var fa=[],Mh=class{constructor(e){this.nodeSet=e,this.content=[],this.nodes=[]}write(e Line truncated
`;)s--;this.fragmentEnd=s?s-1:0}let n=this.cursor;n||(n=this.cursor=this.fragment.tree.cursor(),n.firstChild());let i=e+this.fragment.offset;for(;n.to<=i;)if(!n.parent())return!1;for(;;){if(n.from>=i)return this.fragment.from<=t;if(!n.childAfter(i))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(xe.contextHash)==e}takeNodes(e){let t=this.cursor,n=this.fragment.offset,i=this.fragmentEnd-(this.fragment.openEnd?1:0),s=e.absoluteLineStart,o=s,a=e.block.children.length,l=o,c=a;for(;;){if(t.to-n>i){if(t.type.isAnonymous&&t.firstChild())continue;break}let d=F1(t.from-n,e.ranges);if(t.to-n<=e.ranges[e.rangeI].to)e.addNode(t.tree,d);else{let h=new Ee(e.parser.nodeSet.types[te.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(h,t.tree),e.addNode(h,d)}if(t.type.is("Block")&&(CD.indexOf(t.type.id)<0?(o=t.to-n,a=e.block.children.length):(o=l,a=c),l=t.to-n,c=e.block.children.length),!t.nextSibling())break}for(;e.block.children.length>a;)e.block.children.pop(),e.block.positions.pop();return o-s}};function F1(r,e){let t=r;for(let n=1;n<e.length;n++){let i=e[n-1].to,s=e[n].from;i<r&&(t-=s-i)}return t}var ED=Kt({"Blockquote/...":O.quote,HorizontalRule:O.contentSeparator,"ATXHeading1/... SetextHeading1/...":O.heading1,"ATXHeading2/... SetextHeading2/...":O.heading2,"ATXHeading3/...":O.heading3,"ATXHeading4/...":O.heading4,"ATXHeading5/...":O.heading5,"ATXHeading6/...":O.heading6,"Comment CommentBlock":O.comment,Escape:O.escape,Entity:O.character,"Emphasis/...":O.emphasis,"StrongEmphasis/...":O.strong,"Link/... Image/...":O.link,"OrderedList/... BulletList/...":O.list,"BlockQuote/...":O.quote,"InlineCode CodeText":O.monospace,"URL Autolink":O.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":O.processingInstruction,"CodeInfo LinkLabel":O.labelName,LinkTitle:O.string,Paragraph:O.content}),N1=new Zl(new Qi(X1).extend(ED),Object.keys(Ch).map(r=>Ch[r]),Object.keys(Ch).map(r=>I1[r]),Object.keys(Ch),TD,T1,Object.keys(dg).map(r=>dg[r]),Object.keys(dg),[]);function RD(r,e,t){let n=[];for(let i=r.firstChild,s=e;;i=i.nextSibling){let o=i?i.from:t;if(o>s&&n.push({from:s,to:o}),!i)break;s=i.to}return n}function j1(r){let{codeParser:e,htmlParser:t}=r;return{wrap:Dd((i,s)=>{let o=i.type.id;if(e&&(o==te.CodeBlock||o==te.FencedCode)){let a="";if(o==te.FencedCode){let c=i.node.getChild(te.CodeInfo);c&&(a=s.read(c.from,c.to))}let l=e(a);if(l)return{parser:l,overlay:c=>c.type.id==te.CodeText,bracketed:o==te.FencedCode}}else if(t&&(o==te.HTMLBlock||o==te.HTMLTag||o==te.CommentBlock))return{parser:t,overlay:RD(i.node,i.from,i.to)};return null})}}var MD={resolve:"Strikethrough",mark:"StrikethroughMark"},LD={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":O.strikethrough}},{name:"StrikethroughMark",style:O.processingInstruction}],parseInline:[{name:"Strikethrough",parse(r,e,t){if(e!=126||r.char(t+1)!=126||r.char(t+2)==126)return-1;let n=r.slice(t-1,t),i=r.slice(t+2,t+3),s=/\s|^$/.test(n),o=/\s|^$/.test(i),a=Xl.test(n),l=Xl.test(i);return r.addDelimiter(MD,t,t+2,!o&&(!l||s||a),!s&&(!a||o||l))},after:"Emphasis"}]};function Il(r,e,t=0,n,i=0){let s=0,o=!0,a=-1,l=-1,c=!1,d=()=>{n.push(r.elt("TableCell",i+a,i+l,r.parser.parseInline(e.slice(a,l),i+a)))};for(let h=t;h<e.length;h++){let u=e.charCodeAt(h);u==124&&!c?((!o||a>-1)&&s++,o=!1,n&&(a>-1&&d(),n.push(r.elt("TableDelimiter",h+i,h+i+1))),a=l=-1):(c||u!=32&&u!=9)&&(a<0&&(a=h),l=h+1),c=!c&&u==92}return a>-1&&(s++,n&&d()),s}function v1(r,e){for(let t=e;t<r.length;t++){let n=r.charCodeAt(t);if(n==124)return!0;n==92&&t++}return!1}var U1=/^[>\s]*\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/,Ih=class{constructor(){this.rows=null}nextLine(e,t,n){if(this.rows==null){this.rows=!1;let i;if((t.next==45||t.next==58||t.next==124)&&U1.test(i=t.text.slice(t.pos))){let s=[];Il(e,n.content,0,s,n.start)==Il(e,i,0)&&(this.rows=[e.elt("TableHeader",n.start,n.start+n.content.length,s),e.elt("TableDelimiter",e.lineStart+t.pos,e.lineStart+t.text.length)])}}else if(this.rows){let i=[];Il(e,t.text,t.pos,i,e.lineStart),this.rows.push(e.elt("TableRow",e.lineStart+t.pos,e.lineStart+t.text.length,i))}return!1}finish(e,t){return this.rows?(e.addLeafElement(t,e.elt("Table",t.start,t.start+t.content.length,this.rows)),!0):!1}},DD={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":O.heading}},"TableRow",{name:"TableCell",style:O.content},{name:"TableDelimiter",style:O.processingInstruction}],parseBlock:[{name:"Table",leaf(r,e){return v1(e.content,0)?new Ih:null},endLeaf(r,e,t){if(t.parsers.some(i=>i instanceof Ih)||!v1(e.text,e.basePos))return!1;let n=r.peekLine();return U1.test(n)&&Il(r,e.text,e.basePos)==Il(r,n,e.basePos)},before:"SetextHeading"}]},vg=class{nextLine(){return!1}finish(e,t){return e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)])),!0}},ID={defineNodes:[{name:"Task",block:!0,style:O.list},{name:"TaskMarker",style:O.atom}],pa Line truncated
\${}
} catch (\${error}) {
\${}
@@ -66,37 +66,37 @@ Connect your audio output to the SuperCharger input, turn up the volume, and pla
constructor(\${params}) {
\${}
}
}`,{label:"class",detail:"definition",type:"keyword"}),vr('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),vr('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],RZ=Dk.concat([vr("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),vr("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),vr("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),Rk=new jo,Ik=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function Vl(r){return(e,t)=>{let n=e.node.getChild("VariableDefinition");return n&&t(n,r),!0}}var MZ=["FunctionDeclaration"],LZ={FunctionDeclaration:Vl("function"),ClassDeclaration:Vl("class"),ClassExpression:()=>!0,EnumDeclaration:Vl("constant"),TypeAliasDeclaration:Vl("type"),NamespaceDeclaration:Vl("namespace"),VariableDefinition(r,e){r.matchContext(MZ)||e(r,"variable")},TypeDefinition(r,e){e(r,"type")},__proto__:null};function Zk(r,e){let t=Rk.get(e);if(t)return t;let n=[],i=!0;function s(o,a){let l=r.sliceString(o.from,o.to);n.push({label:l,type:a})}return e.cursor(We.IncludeAnonymous).iterate(o=>{if(i)i=!1;else if(o.name){let a=LZ[o.name];if(a&&a(o,s)||Ik.has(o.name))return!1}else if(o.to-o.from>8192){for(let a of Zk(r,o.node))n.push(a);return!1}}),Rk.set(e,n),n}var Mk=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,Xk=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function DZ(r){let e=ze(r.state).resolveInner(r.pos,-1);if(Xk.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&Mk.test(r.state.sliceDoc(e.from,e.to));if(!t&&!r.explicit)return null;let n=[];for(let i=e;i;i=i.parent)Ik.has(i.name)&&(n=n.concat(Zk(r.state.doc,i)));return{options:n,from:t?e.from:r.pos,validFor:Mk}}var Bn=Kt.define({name:"javascript",parser:Ek.configure({props:[Cr.add({IfStatement:qr({except:/^\s*({|else\b)/}),TryStatement:qr({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:ox,SwitchBody:r=>{let e=r.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return r.baseIndent+(t?0:n?1:2)*r.unit},Block:Go({closing:"}"}),ArrowFunction:r=>r.baseIndent+r.unit,"TemplateString BlockComment":()=>null,"Statement Property":qr({except:/^\s*{/}),JSXElement(r){let e=/^\s*<\//.test(r.textAfter);return r.lineIndent(r.node.from)+(e?0:r.unit)},JSXEscape(r){let e=/\s*\}/.test(r.textAfter);return r.lineIndent(r.node.from)+(e?0:r.unit)},"JSXOpenTag JSXSelfClosingTag"(r){return r.column(r.node.from)+r.unit}}),dr.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Vt,BlockComment(r){return{from:r.from+2,to:r.to-2}},JSXElement(r){let e=r.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let t=r.lastChild;return{from:e.to,to:t.type.isError?r.to:t.from}},"JSXSelfClosingTag JSXOpenTag"(r){var e;let t=(e=r.firstChild)===null||e===void 0?void 0:e.nextSibling,n=r.lastChild;return!t||t.type.isError?null:{from:t.to,to:n.type.isError?r.to:n.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),zk={test:r=>/^JSX/.test(r.name),facet:Uo({commentTokens:{block:{open:"{/*",close:"*/}"}}})},Xg=Bn.configure({dialect:"ts"},"typescript"),zg=Bn.configure({dialect:"jsx",props:[Yd.add(r=>r.isTop?[zk]:void 0)]}),Wg=Bn.configure({dialect:"jsx ts",props:[Yd.add(r=>r.isTop?[zk]:void 0)]},"typescript"),Wk=r=>({label:r,type:"keyword"}),Bk="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(Wk),IZ=Bk.concat(["declare","implements","private","protected","public"].map(Wk));function Vk(r={}){let e=r.jsx?r.typescript?Wg:zg:r.typescript?Xg:Bn,t=r.typescript?RZ.concat(IZ):Dk.concat(Bk);return new Fe(e,[Bn.data.of({autocomplete:$x(Xk,kx(t))}),Bn.data.of({autocomplete:DZ}),r.jsx?zZ:[]])}function ZZ(r){for(;;){if(r.name=="JSXOpenTag"||r.name=="JSXSelfClosingTag"||r.name=="JSXFragmentTag")return r;if(r.name=="JSXEscape"||!r.parent)return null;r=r.parent}}function Lk(r,e,t=r.length){for(let n=e==null?void 0:e.firstChild;n;n=n.nextSibling)if(n.name=="JSXIdentifier"||n.name=="JSXBuiltin"||n.name=="JSXNamespacedName"||n.name=="JSXMemberExpression")return r.sliceString(n.from,Math.min(n.to,t));return""}var XZ=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),zZ=N.inputHandler.of((r,e,t,n,i)=>{if((XZ?r.composing:r.compositionStarted)||r.state.readOnly||e!=t||n!=">"&&n!="/"||!Bn.isActiveAt(r.state,e,-1))return!1;let s=i(),{state:o}=s,a=o.changeByRange(l=>{var c;let{head:d}=l,h=ze(o).resol Line truncated
`);for(let l of a){b$.lastIndex=0;let c=b$.exec(l);if(c){let d=o+c.index+c[0].length;t.push(ee.widget({widget:new ib(c[0],e),side:-1}).range(d))}o+=l.length+1}}return ee.set(t,!0)}function S$(r){let e;function t(n){let i=e.posAtDOM(n);r(e.state.doc.lineAt(i).number)}return at.fromClass(class{constructor(n){e=n,this.decorations=y$(n,t)}update(n){e=n.view,(n.docChanged||n.viewportChanged)&&(this.decorations=y$(n.view,t))}},{decorations:n=>n.decorations})}var sb=class extends Tt{constructor(t,n,i){super();this.filename=t;this.system=n;this.handleClick=i}toDOM(){let t=document.createElement("span");return t.className="include-link-badge",t.textContent="\u2192",t.title=(this.system?"System header: ":"View ")+this.filename,t.addEventListener("click",n=>{n.preventDefault(),n.stopPropagation(),this.handleClick(this.filename,this.system)}),t}eq(t){return this.filename===t.filename&&this.system===t.system}ignoreEvent(){return!1}};function S5(r,e,t){let n=[],i=r.state.doc,s=new Set;for(let{from:o,to:a}of r.visibleRanges){let l=r.state.sliceDoc(o,a);for(let c of e){let d=c instanceof RegExp?{re:c}:c;d.re.lastIndex=0;let h;for(;h=d.re.exec(l);){let u=h[d.group!=null?d.group:h.length-1];if(!u)continue;let f=d.suffix?u+d.suffix:u,m=Math.min(o+h.index+h[0].length,i.length),g=i.lineAt(m),v=g.number+":"+f;s.has(v)||(s.add(v),n.push(ee.widget({widget:new sb(f,!!d.system,t),side:1}).range(g.to)))}}}return ee.set(n,!0)}function v$(r,e){function t(n){let i=r();return!i||!i.length?ee.none:S5(n,i,e)}return at.fromClass(class{constructor(n){this.decorations=t(n)}update(n){(n.docChanged||n.viewportChanged)&&(this.decorations=t(n.view))}},{decorations:n=>n.decorations})}var hs=window.matchMedia&&window.matchMedia("only screen and (max-width: 760px)").matches;function xn(r,e){var t=$(document.createElement("div"));return r&&t.appendTo(r),e&&t.addClass(e),t}function v5(r){return Me.transactionFilter.of(e=>{if(!e.docChanged||!e.isUserEvent("input")||!r.input)return e;let t=[],n=!1;if(e.changes.iterChanges((o,a,l,c,d)=>{let h=d.toString(),u=r.input(h);t.push({from:o,to:a,insert:u}),u!==h&&(n=!0)}),!n)return e;let i=e.annotation(dt.userEvent),s=e.annotation(dt.addToHistory);return{changes:t,selection:e.selection,effects:e.effects,scrollIntoView:e.scrollIntoView,annotations:[...i!=null?[dt.userEvent.of(i)]:[],...s!=null?[dt.addToHistory.of(s)]:[]]}})}var ob=new Bt;function x$(r){return ob.reconfigure(v5(r))}var w$=be.define(),P$=be.define(),k$=be.define(),$$=be.define(),Q$=be.define(),T$=be.define(),_$=be.define(),lb=be.define(),A$=be.define(),C$=Ze.define({create(){return Te.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(w$)){let n=t.value,i=[];for(let[s,o]of n.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new Nh(Ce(o,4)).range(a))}r=Te.of(i,!0)}return r}}),E$=Ze.define({create(){return Te.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(P$)){let n=t.value,i=[];for(let[s,o]of n.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new jh(o).range(a))}r=Te.of(i,!0)}return r}}),R$=Ze.define({create(){return Te.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(k$)){let n=t.value,i=[];for(let[s,o]of n.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new Uh(o).range(a))}r=Te.of(i,!0)}return r}}),M$=Ze.define({create(){return Te.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(Q$)){let n=[],i=t.value.filter(s=>s.line>=1&&s.line<=e.state.doc.lines).sort((s,o)=>s.line-o.line);for(let s of i){let o=e.state.doc.line(s.line).from;n.push((s.enabled?w5:P5).range(o))}r=Te.of(n,!0)}return r}}),ab=Ze.define({create(){return Te.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(T$)){let n=t.value,i=[];for(let[s,o]of n.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new Gh(s,o).range(a))}r=Te.of(i,!0)}return r}}),L$=Ze.define({create(){return Te.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(_$))if(t.value===null)r=Te.empty;else{let n=t.value;if(n>=1&&n<=e.state.doc.lines){let i=e.state.doc.line(n).from;r=Te.of(D$.range(i))}}return r}}),Nh=class extends Pt{constructor(t){super();this.hex=t}toDOM(){let t=document.createElement("span");return t.className="gutter-offset-marker",t.textContent=this.hex,t.title="Click to run to here",t}eq(t){return this.hex==t.hex}},jh=class extends Pt{constructor(t){super();this.bytes=t}toDOM(){return document.createTextNode(this.bytes)}eq(t){return this.bytes==t.bytes}},Uh=class extends Pt{constructor(t){super();this.clock=t}toDOM(){return document.createTextNode(this.clock)}eq(t){return this.clock==t.clock}},x5=new class extends Pt{toDOM(){let r=document.createElement("span");return r.className="gutter-breakpoint-placeholder",r.textContent="\u25CF",r}},qh=class extends Pt{constructor(t){super();this.enabled=t}toDOM(){let t=document.createElement("span");return t.className="gutter-breakpoin Line truncated
}`,{label:"class",detail:"definition",type:"keyword"}),vr('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),vr('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],MZ=Dk.concat([vr("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),vr("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),vr("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),Rk=new jo,Ik=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function Vl(r){return(e,t)=>{let n=e.node.getChild("VariableDefinition");return n&&t(n,r),!0}}var LZ=["FunctionDeclaration"],DZ={FunctionDeclaration:Vl("function"),ClassDeclaration:Vl("class"),ClassExpression:()=>!0,EnumDeclaration:Vl("constant"),TypeAliasDeclaration:Vl("type"),NamespaceDeclaration:Vl("namespace"),VariableDefinition(r,e){r.matchContext(LZ)||e(r,"variable")},TypeDefinition(r,e){e(r,"type")},__proto__:null};function Zk(r,e){let t=Rk.get(e);if(t)return t;let n=[],i=!0;function s(o,a){let l=r.sliceString(o.from,o.to);n.push({label:l,type:a})}return e.cursor(We.IncludeAnonymous).iterate(o=>{if(i)i=!1;else if(o.name){let a=DZ[o.name];if(a&&a(o,s)||Ik.has(o.name))return!1}else if(o.to-o.from>8192){for(let a of Zk(r,o.node))n.push(a);return!1}}),Rk.set(e,n),n}var Mk=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,Xk=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function IZ(r){let e=ze(r.state).resolveInner(r.pos,-1);if(Xk.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&Mk.test(r.state.sliceDoc(e.from,e.to));if(!t&&!r.explicit)return null;let n=[];for(let i=e;i;i=i.parent)Ik.has(i.name)&&(n=n.concat(Zk(r.state.doc,i)));return{options:n,from:t?e.from:r.pos,validFor:Mk}}var Bn=Jt.define({name:"javascript",parser:Ek.configure({props:[Cr.add({IfStatement:Gr({except:/^\s*({|else\b)/}),TryStatement:Gr({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:ox,SwitchBody:r=>{let e=r.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return r.baseIndent+(t?0:n?1:2)*r.unit},Block:Go({closing:"}"}),ArrowFunction:r=>r.baseIndent+r.unit,"TemplateString BlockComment":()=>null,"Statement Property":Gr({except:/^\s*{/}),JSXElement(r){let e=/^\s*<\//.test(r.textAfter);return r.lineIndent(r.node.from)+(e?0:r.unit)},JSXEscape(r){let e=/\s*\}/.test(r.textAfter);return r.lineIndent(r.node.from)+(e?0:r.unit)},"JSXOpenTag JSXSelfClosingTag"(r){return r.column(r.node.from)+r.unit}}),dr.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Vt,BlockComment(r){return{from:r.from+2,to:r.to-2}},JSXElement(r){let e=r.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let t=r.lastChild;return{from:e.to,to:t.type.isError?r.to:t.from}},"JSXSelfClosingTag JSXOpenTag"(r){var e;let t=(e=r.firstChild)===null||e===void 0?void 0:e.nextSibling,n=r.lastChild;return!t||t.type.isError?null:{from:t.to,to:n.type.isError?r.to:n.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),zk={test:r=>/^JSX/.test(r.name),facet:Uo({commentTokens:{block:{open:"{/*",close:"*/}"}}})},Xg=Bn.configure({dialect:"ts"},"typescript"),zg=Bn.configure({dialect:"jsx",props:[Yd.add(r=>r.isTop?[zk]:void 0)]}),Wg=Bn.configure({dialect:"jsx ts",props:[Yd.add(r=>r.isTop?[zk]:void 0)]},"typescript"),Wk=r=>({label:r,type:"keyword"}),Bk="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(Wk),ZZ=Bk.concat(["declare","implements","private","protected","public"].map(Wk));function Vk(r={}){let e=r.jsx?r.typescript?Wg:zg:r.typescript?Xg:Bn,t=r.typescript?MZ.concat(ZZ):Dk.concat(Bk);return new Fe(e,[Bn.data.of({autocomplete:$x(Xk,kx(t))}),Bn.data.of({autocomplete:IZ}),r.jsx?WZ:[]])}function XZ(r){for(;;){if(r.name=="JSXOpenTag"||r.name=="JSXSelfClosingTag"||r.name=="JSXFragmentTag")return r;if(r.name=="JSXEscape"||!r.parent)return null;r=r.parent}}function Lk(r,e,t=r.length){for(let n=e==null?void 0:e.firstChild;n;n=n.nextSibling)if(n.name=="JSXIdentifier"||n.name=="JSXBuiltin"||n.name=="JSXNamespacedName"||n.name=="JSXMemberExpression")return r.sliceString(n.from,Math.min(n.to,t));return""}var zZ=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),WZ=N.inputHandler.of((r,e,t,n,i)=>{if((zZ?r.composing:r.compositionStarted)||r.state.readOnly||e!=t||n!=">"&&n!="/"||!Bn.isActiveAt(r.state,e,-1))return!1;let s=i(),{state:o}=s,a=o.changeByRange(l=>{var c;let{head:d}=l,h=ze(o).resol Line truncated
`);for(let l of a){b$.lastIndex=0;let c=b$.exec(l);if(c){let d=o+c.index+c[0].length;t.push(ee.widget({widget:new ib(c[0],e),side:-1}).range(d))}o+=l.length+1}}return ee.set(t,!0)}function S$(r){let e;function t(n){let i=e.posAtDOM(n);r(e.state.doc.lineAt(i).number)}return at.fromClass(class{constructor(n){e=n,this.decorations=y$(n,t)}update(n){e=n.view,(n.docChanged||n.viewportChanged)&&(this.decorations=y$(n.view,t))}},{decorations:n=>n.decorations})}var sb=class extends Tt{constructor(t,n,i){super();this.filename=t;this.system=n;this.handleClick=i}toDOM(){let t=document.createElement("span");return t.className="include-link-badge",t.textContent="\u2192",t.title=(this.system?"System header: ":"View ")+this.filename,t.addEventListener("click",n=>{n.preventDefault(),n.stopPropagation(),this.handleClick(this.filename,this.system)}),t}eq(t){return this.filename===t.filename&&this.system===t.system}ignoreEvent(){return!1}};function v5(r,e,t){let n=[],i=r.state.doc,s=new Set;for(let{from:o,to:a}of r.visibleRanges){let l=r.state.sliceDoc(o,a);for(let c of e){let d=c instanceof RegExp?{re:c}:c;d.re.lastIndex=0;let h;for(;h=d.re.exec(l);){let u=h[d.group!=null?d.group:h.length-1];if(!u)continue;let f=d.suffix?u+d.suffix:u,m=Math.min(o+h.index+h[0].length,i.length),g=i.lineAt(m),v=g.number+":"+f;s.has(v)||(s.add(v),n.push(ee.widget({widget:new sb(f,!!d.system,t),side:1}).range(g.to)))}}}return ee.set(n,!0)}function v$(r,e){function t(n){let i=r();return!i||!i.length?ee.none:v5(n,i,e)}return at.fromClass(class{constructor(n){this.decorations=t(n)}update(n){(n.docChanged||n.viewportChanged)&&(this.decorations=t(n.view))}},{decorations:n=>n.decorations})}var hs=window.matchMedia&&window.matchMedia("only screen and (max-width: 760px)").matches;function xn(r,e){var t=$(document.createElement("div"));return r&&t.appendTo(r),e&&t.addClass(e),t}function x5(r){return Me.transactionFilter.of(e=>{if(!e.docChanged||!e.isUserEvent("input")||!r.input)return e;let t=[],n=!1;if(e.changes.iterChanges((o,a,l,c,d)=>{let h=d.toString(),u=r.input(h);t.push({from:o,to:a,insert:u}),u!==h&&(n=!0)}),!n)return e;let i=e.annotation(dt.userEvent),s=e.annotation(dt.addToHistory);return{changes:t,selection:e.selection,effects:e.effects,scrollIntoView:e.scrollIntoView,annotations:[...i!=null?[dt.userEvent.of(i)]:[],...s!=null?[dt.addToHistory.of(s)]:[]]}})}var ob=new Bt;function x$(r){return ob.reconfigure(x5(r))}var w$=be.define(),P$=be.define(),k$=be.define(),$$=be.define(),Q$=be.define(),T$=be.define(),_$=be.define(),lb=be.define(),A$=be.define(),C$=Ze.define({create(){return Te.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(w$)){let n=t.value,i=[];for(let[s,o]of n.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new Nh(Ce(o,4)).range(a))}r=Te.of(i,!0)}return r}}),E$=Ze.define({create(){return Te.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(P$)){let n=t.value,i=[];for(let[s,o]of n.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new jh(o).range(a))}r=Te.of(i,!0)}return r}}),R$=Ze.define({create(){return Te.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(k$)){let n=t.value,i=[];for(let[s,o]of n.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new Uh(o).range(a))}r=Te.of(i,!0)}return r}}),M$=Ze.define({create(){return Te.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(Q$)){let n=[],i=t.value.filter(s=>s.line>=1&&s.line<=e.state.doc.lines).sort((s,o)=>s.line-o.line);for(let s of i){let o=e.state.doc.line(s.line).from;n.push((s.enabled?P5:k5).range(o))}r=Te.of(n,!0)}return r}}),ab=Ze.define({create(){return Te.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(T$)){let n=t.value,i=[];for(let[s,o]of n.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new Gh(s,o).range(a))}r=Te.of(i,!0)}return r}}),L$=Ze.define({create(){return Te.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(_$))if(t.value===null)r=Te.empty;else{let n=t.value;if(n>=1&&n<=e.state.doc.lines){let i=e.state.doc.line(n).from;r=Te.of(D$.range(i))}}return r}}),Nh=class extends Pt{constructor(t){super();this.hex=t}toDOM(){let t=document.createElement("span");return t.className="gutter-offset-marker",t.textContent=this.hex,t.title="Click to run to here",t}eq(t){return this.hex==t.hex}},jh=class extends Pt{constructor(t){super();this.bytes=t}toDOM(){return document.createTextNode(this.bytes)}eq(t){return this.bytes==t.bytes}},Uh=class extends Pt{constructor(t){super();this.clock=t}toDOM(){return document.createTextNode(this.clock)}eq(t){return this.clock==t.clock}},w5=new class extends Pt{toDOM(){let r=document.createElement("span");return r.className="gutter-breakpoint-placeholder",r.textContent="\u25CF",r}},qh=class extends Pt{constructor(t){super();this.enabled=t}toDOM(){let t=document.createElement("span");return t.className="gutter-breakpoin Line truncated
color: #ff6666;
background-color: #330000;
padding: 4px 8px;
margin: 2px 0;
border-left: 3px solid #ff0000;
font-family: monospace;
`,t}},E5=Ze.define({create(){return ee.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(lo.showMessage)){if(t.value===null||!t.value)return ee.none;if(t.value.toggle){let n=[],i=new Map;return r.between(0,e.state.doc.length,(a,l,c)=>{try{let d=e.state.doc.lineAt(l).number;c.spec.widget instanceof jl&&i.set(d,c.spec.widget.message)}catch(d){}}),i.has(t.value.line)?i.delete(t.value.line):i.set(t.value.line,t.value.msg),Array.from(i.keys()).sort((a,l)=>a-l).forEach(a=>{try{let l=e.state.doc.line(a);n.push(ee.widget({widget:new jl(i.get(a)),block:!0,side:1}).range(l.to))}catch(l){}}),ee.set(n,!0)}}return r},provide:r=>N.decorations.from(r)}),cb=class extends Tt{constructor(t){super();this.value=t}toDOM(){let t=document.createElement("div");return t.textContent=`${this.value}`,t.style.cssText=`
`,t}},R5=Ze.define({create(){return ee.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(lo.showMessage)){if(t.value===null||!t.value)return ee.none;if(t.value.toggle){let n=[],i=new Map;return r.between(0,e.state.doc.length,(a,l,c)=>{try{let d=e.state.doc.lineAt(l).number;c.spec.widget instanceof jl&&i.set(d,c.spec.widget.message)}catch(d){}}),i.has(t.value.line)?i.delete(t.value.line):i.set(t.value.line,t.value.msg),Array.from(i.keys()).sort((a,l)=>a-l).forEach(a=>{try{let l=e.state.doc.line(a);n.push(ee.widget({widget:new jl(i.get(a)),block:!0,side:1}).range(l.to))}catch(l){}}),ee.set(n,!0)}}return r},provide:r=>N.decorations.from(r)}),cb=class extends Tt{constructor(t){super();this.value=t}toDOM(){let t=document.createElement("div");return t.textContent=`${this.value}`,t.style.cssText=`
color: #ccccff;
background-color: #000066;
display: inline-block;
`,t.className="cm-line",t}},z$=be.define(),R5=Ze.define({create(){return ee.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(z$)){if(t.value===null||!t.value)return ee.none;let n=e.state.doc.lineAt(t.value.range.to);return ee.set([ee.widget({widget:new cb(t.value.val),block:!0,side:1}).range(n.to)])}return r},provide:r=>N.decorations.from(r)}),W$=be.define(),M5=ee.mark({attributes:{class:"cm-error-span"}}),L5=Ze.define({create(){return ee.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(W$)){if(t.value===null)return ee.none;let n=[];for(let i of t.value)try{let s=e.state.doc.line(i.line),o=s.from+i.start,a=s.from+i.end;o>=s.from&&a<=s.to&&o<a&&n.push(M5.range(o,a))}catch(s){}return ee.set(n,!0)}return r},provide:r=>N.decorations.from(r)}),B$=be.define(),D5=ee.line({attributes:{class:"highlight-lines"}}),I5=Ze.define({create(){return ee.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(B$)){if(t.value===null)return ee.none;let{start:n,end:i}=t.value,s=[];for(let o=n;o<=i;o++)try{let a=e.state.doc.line(o);s.push(D5.range(a.from))}catch(a){}return ee.set(s)}return r!==ee.none&&(e.docChanged||e.selection)?ee.none:r},provide:r=>N.decorations.from(r)}),V$={field:E5,widget:jl},Ul={effect:Z$,decoration:X$,field:C5},eu={effect:z$,field:R5},tu={effect:W$,field:L5},ru={effect:B$,field:I5},Y$=be.define(),Z5=ee.line({attributes:{class:"cm-traced-line"}}),X5=Ze.define({create(){return ee.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(Y$)){let n=[];for(let i of t.value)try{let s=e.state.doc.line(i);n.push(Z5.range(s.from))}catch(s){}return ee.set(n,!0)}return r},provide:r=>N.decorations.from(r)}),nu={effect:Y$,field:X5};var z5=[...ff(ww,uf),{key:"Mod-Shift-Backspace",run:iO}],j$=ff(RP,uf),ga=64,U$=be.define(),q$=be.define(),db=Ze.define({create(){return new Map},update(r,e){let t=r;for(let n of e.effects)if(n.is(q$))t=new Map;else if(n.is(U$)){t===r&&(t=new Map(r));for(let i of n.value)t.set(i.id,{from:i.from,to:i.to})}if(!e.changes.empty){let n=new Map;for(let[i,s]of t)n.set(i,{from:e.changes.mapPos(s.from,-1),to:e.changes.mapPos(s.to,1)});return n}return t}}),W5=200,hb={default:{theme:Vh},6502:{isAsm:!0},z80:{isAsm:!0},jsasm:{isAsm:!0},gas:{isAsm:!0},vasm:{isAsm:!0},inform6:{theme:Bh},dialog:{theme:Bh,lineWrap:!0},markdown:{lineWrap:!0},fastbasic:{noGutters:!0},basic:{noGutters:!0,lineBased:!0},ecs:{theme:Vh}},G$={input:null};function H$(r){G$.input=r?e=>e.toUpperCase():null}function pb(r){if(!r)return"";let e=r.state.selection.main;return e.empty?"":r.state.sliceDoc(e.from,e.to)}var ql=class ql{constructor(e,t){this.updateTimer=null;this.indentUnitCompartment=new Bt;this.isAsm=!1;this.dirtylisting=!0;this.refreshDelayMsec=300;this.probe=null;this.path=e,this.mode=t}createDiv(e){var t=document.createElement("div");t.setAttribute("class","editor"),e.appendChild(t);var n=ae.getFile(this.path),i=n&&this.mode=="verilog"&&/__asm\b([\s\S]+?)\b__endasm\b/.test(n);return this.newEditor(t,n,i),this.editor.dispatch({effects:x$(G$)}),this.syncBreakpoints(),ae.getToolForFilename(this.path).startsWith("remote:")&&(this.refreshDelayMsec=1e3),t}setVisible(e){e?(this.editor.focus(),ql.tracingEnabled&&this.startTracing()):this.stopTracing()}getShortcuts(){if(!this.editor)return[];var e=this.editor,t=(n,i,s)=>({key:n,label:i,fn:()=>{s(e),e.focus()}});return[t("mod+f","Find",Qh),t("mod+g","Find Next",da),t("mod+d","Next Occurrence",wO),t("mod+z","Undo",Pl),t("mod+shift+z","Redo",Ko)]}startTracing(){!this.probe&&P.startProbing&&(this.probe=P.startProbing(),this.probe.singleFrame=!1,this.probe.clear())}stopTracing(){this.probe&&(P.stopProbing(),this.probe=null),this.editor.dispatch({effects:nu.effect.of([])})}setTracingEnabled(e){ql.tracingEnabled=e,e?this.startTracing():this.stopTracing()}newEditor(e,t,n){var i=hb[this.mode]||hb.default,s=n||i.isAsm,o=!!i.lineWrap,a=i.theme||hb.default.theme,l=i.useLineNumbers&&!hs;de.embed&&(l=!1,s=!1),this.isAsm=s;let c=i.noGutters||hs;var d;let h=Hg[this.mode];h?d=h.language:(console.warn("Unknown mode: "+this.mode),d=null),this.editor=new N({parent:e,doc:t,extensions:[this.indentUnitCompartment.of(this.indentUnitFor(t)),s?Xm.of((u,f)=>{let m=u.state.doc.lineAt(f).number;if(m>=0){let g=u.state.doc.line(m);if(g.text.trim())return u.lineIndent(g.from)}return 0}):[],...s?[Sr.of(Cw(()=>ra().tabsToSpaces))]:[],i.lineBased?Sr.of(kw):[],...Lw(ra()),Sr.of(z5),l?Ad():[],Nx(),Sr.of(qx),hx(),vv(),Me.allowMultipleSelections.of(!0),$d(),ax(),Ox(),Td(),_d(),Qd(),Av(),$h(),PO({top:!0}),Sr.of(j$),d||[],a,Jg,o?N.lineWrapping:[],Ul.field,c?[]:[Hh.field,Hh.gutter],s&&!c?[Nl.field,Nl.gutter,Kh.field,Kh.gutter]:[],Jh.field,I$.gutter,N.updateListener.of(u=>{for(let f of u.transactions.flatMap(m=>m.effects))if(f.is(Jh.requestToggle)&&Yt.toggleSourceLine(this.path,f.value),f.is(Oa.runToLine)){let m=f.value;if(this.sourcefile&&this.sourcefile.line2offset){let g=this.sourcefile.line2offset.get(m);g>=0&&Hl([g])}}}),lo.field,V$.field,tu.field,Oa.fiel Line truncated
`).length-1;this.editor.dispatch({changes:{from:i,insert:e}}),this.highlightLines(n-1,n+s-2)}highlightLines(e,t){let n=this.editor.state.doc.line(e+1);this.editor.dispatch({effects:[ru.effect.of({start:e+1,end:t+1}),N.scrollIntoView(n.from,{y:"start",yMargin:100})]})}navigateToLine(e){if(e<1||e>this.editor.state.doc.lines)return;let t=this.editor.state.doc.line(e);this.editor.dispatch({selection:{anchor:t.from},effects:[ru.effect.of({start:e,end:e}),N.scrollIntoView(t.from,{y:"center"})]}),this.editor.focus()}getValue(){return this.editor.state.doc.toString()}getSelectionText(){return pb(this.editor)}getPath(){return this.path}markErrors(e){this.clearErrors(),e=e.slice(0,W5);let t=new Map,n=[];for(var i of e)if(!i.path||this.path.endsWith(i.path)){var s=this.editor.state.doc.lines,o=i.line;(isNaN(o)||o<1||o>s)&&(o=1),t.set(o,i.msg),i.start!=null&&i.end!=null&&i.end>i.start&&n.push({line:o,start:i.start,end:i.end})}this.editor.dispatch({effects:[lo.set.of(t),tu.effect.of(n.length>0?n:null)]})}clearErrors(){this.dirtylisting=!0,this.editor.dispatch({effects:[lo.set.of(new Map),lo.showMessage.of(null),tu.effect.of(null)]})}getSourceFile(){return this.sourcefile}updateListing(){this.clearErrors();var e=this.sourcefile.lines||[];let t=new Map,n=new Map,i=new Map;for(var s of e)if(s.offset>=0&&t.set(s.line,Ce(s.offset&65535,4)),s.insns){var o=s.insns.length>9?"...":s.insns;if(n.set(s.line,o),s.iscode){if(s.cycles)i.set(s.line,s.cycles+"");else if(P.getOpcodeMetadata){var a=parseInt(s.insns.split(" ")[0],16),l=P.getOpcodeMetadata(a,s.offset);if(l&&l.minCycles){var c=l.minCycles+"";i.set(s.line,c)}}}}this.editor.dispatch({effects:[Hh.set.of(t),Nl.set.of(n),Kh.set.of(i)]})}setTimingResult(e){if(this.sourcefile!=null){var t=new Map;for(let[o,a]of this.sourcefile.line2offset){let l=e.pc2clockrange[a];var n=l&&l.minclocks,i=l&&l.maxclocks;if(n>=0&&i>=0){var s;i==n?s=n+"":s=n+"-"+i,i==e.MAX_CLOCKS&&(s+="+"),t.set(o,s)}}this.editor.dispatch({effects:[Nl.set.of(t)]})}}setCurrentLine(e,t){var n=i=>{this.editor.dispatch({effects:[Oa.set.of(i.line),Ul.effect.of(i.line),...t?[N.scrollIntoView(this.editor.state.doc.line(i.line).from,{y:"center"})]:[]]})};if(this.clearCurrentLine(t),e){if(e.line<1||e.line>this.editor.state.doc.lines)return;if(n(e),t){let s=this.editor.state.doc.line(e.line).from+(e.start||0);this.editor.dispatch({selection:{anchor:s,head:s},effects:N.scrollIntoView(s,{y:"center"})})}this.currentDebugLine=e}}clearCurrentLine(e){if(this.currentDebugLine){if(e){let t=this.editor.state.selection.main.head;this.editor.dispatch({selection:{anchor:t,head:t}})}this.currentDebugLine=null}this.editor.dispatch({effects:[Oa.set.of(null),Ul.effect.of(null)]})}getActiveLine(){if(this.sourcefile){var e=Jt&&Jt.c;if(!e&&P.getCPUState&&!P.isRunning()&&(e=P.getCPUState()),e){var t=e&&(e.EPC||e.PC),n=this.sourcefile.findLineForOffset(t,ga);return n}}}refreshDebugState(e){var t=this.getActiveLine();!e&&(t===this.currentDebugLine||!t&&!this.currentDebugLine)||this.setCurrentLine(t,e)}refreshListing(){var e=ae.getListingForFile(this.path);e&&e.sourcefile&&e.sourcefile!==this.sourcefile&&(this.sourcefile=e.sourcefile,this.dirtylisting=!0),!(!this.sourcefile||!this.dirtylisting)&&(this.updateListing(),this.dirtylisting=!1)}refresh(e){this.refreshListing(),this.refreshDebugState(e)}tick(){this.refreshDebugState(!1),this.updateTracedLines()}updateTracedLines(){let e=this.probe;if(!e||!e.idx||!this.sourcefile)return;let t=new Set;for(let n=0;n<e.idx;n++){let i=e.buf[n];if((i&4278190080)===16777216){let s=this.sourcefile.findLineForOffset(i&65535,ga);s&&t.add(s.line)}}e.clear(),this.editor.dispatch({effects:nu.effect.of(Array.from(t))})}getLine(e){return this.editor.state.doc.line(e).text}getCurrentLine(){let e=this.editor.state.selection.main.head;return this.editor.state.doc.lineAt(e).number}getCursorPC(){for(var e=this.getCurrentLine();this.sourcefile&&e>=0;){var t=this.sourcefile.line2offset.get(e);if(t>=0)return t;e--}return-1}undoStep(){Pl(this.editor)}redoStep(){Ko(this.editor)}syncBreakpoints(){let e=Yt.getSourceBreakpointsForFile(this.path).map(t=>({line:t.line,enabled:t.enabled}));this.editor.dispatch({effects:Jh.setAll.of(e)})}};ql.tracingEnabled=!1;var Pr=ql,ub=1024,Mi=class{getSelectionText(){return pb(this.disasmview)}createDiv(e){var t=document.createElement("div");return t.setAttribute("class","editor"),e.appendChild(t),this.newEditor(t),t}newEditor(e){this.disasmview=new N({parent:e,extensions:[Td(),_d(),Me.allowMultipleSelections.of(!0),$d(),Qd(),$h(),f$,Bh,Ul.field,Me.tabSize.of(8),Me.readOnly.of(!0)]})}refresh(e,t){let n=Jt||P.saveState(),i=t!==void 0?t:n.c?n.c.PC:0,s=0,o=0,a=P.debugSymbols&&P.debugSymbols.addr2symbol||{},l=(h,u)=>{let f="",m=0;for(;m<u;){let g=h+m|0,v=P.disassemble(g,P.readAddress.bind(P)),k="",L="";for(let w=0;w<v.nbytes;w++)k+=Ce(P.readAddress(g+w));for(;k.length<14;)k+=" ";let M=v.line;if(a&&v.isaddr&&(M=M.replace(/([^#])[$]([0-9A-F]+)/,(w,...x)=>{let R=parseInt(x[1],16),X=a[R];return X?x[0]+X:(X=a Line truncated
`;f+=D,g==i&&(o=s),s++,m+=v.nbytes||1}return f};var c=i<0?i-ub:Math.max(0,i-ub);let d=l(c,i-c)+l(i,ub);if(this.disasmview.dispatch({changes:{from:0,to:this.disasmview.state.doc.length,insert:d}}),e){let h=this.disasmview.state.doc.line(o+1);this.disasmview.dispatch({selection:{anchor:h.from,head:h.from},effects:N.scrollIntoView(h.from,{y:"center"})})}}goToAddress(e){e|=0,this.findAndSelectAddress(e)||(this.refresh(!1,e),this.findAndSelectAddress(e)),this.disasmview.focus()}findAndSelectAddress(e){let t=Ce(e,4),n=this.disasmview.state.doc;for(let i=1;i<=n.lines;i++){let s=n.line(i);if(s.text.startsWith(t+" "))return this.disasmview.dispatch({selection:{anchor:s.from,head:s.from+t.length},effects:N.scrollIntoView(s.from,{y:"center"})}),!0}return!1}getCursorPC(){let e=this.disasmview.state.selection.main.head,t=this.disasmview.state.doc.lineAt(e).number;if(t>=0){let i=this.disasmview.state.doc.line(t).text.trim().split(/\s+/);if(i&&i.length>=1){let s=parseInt(i[0],16);if(console.log("getCursorPC",s),s>=0)return s}}return-1}},iu=class extends Mi{constructor(e){super(),this.path=e}refreshListing(){var e=ae.getListingForFile(this.path);this.assemblyfile=e&&(e.assemblyfile||e.sourcefile)}refresh(e){if(this.refreshListing(),!!this.assemblyfile){var t=this.assemblyfile.text;if(this.disasmview.dispatch({changes:{from:0,to:this.disasmview.state.doc.length,insert:t}}),!!P.saveState){var n=Jt||P.saveState(),i=n.c?n.c.EPC||n.c.PC:0;if(i>=0&&this.assemblyfile){var s=this.assemblyfile.findLineForOffset(i,ga);if(s&&e){let o=this.disasmview.state.doc.line(s.line);this.disasmview.dispatch({selection:{anchor:o.from,head:o.from},effects:N.scrollIntoView(o.from,{y:"center"})})}}}}}goToAddress(e){this.refreshListing();let t=this.assemblyfile&&this.assemblyfile.findLineForOffset(e,ga);if(t){let n=this.disasmview.state.doc.line(t.line);this.disasmview.dispatch({selection:{anchor:n.from,head:n.from},effects:N.scrollIntoView(n.from,{y:"center"})})}this.disasmview.focus()}};function K$(r){let e=[r];try{var t=La(ae.mainPath);t.length>0&&t!="local"&&e.push(t+"/"+r)}catch(s){}for(var n of e){var i=ae&&ae.getFile(n);if(typeof i=="string")return n}return null}function F$(r){for(var e of ty(r))if(e.editorStyle){var t=u$(e.editorStyle);if(t)return t}return null}var fb=new Map;function B5(r){let e=ae.getToolForFilename(ae.mainPath),t=Cc(e,ae.platform_id),n=Ac(e,ae.platform_id);if(!t||!n.length)return Promise.resolve(null);let i=t+":"+r;return fb.has(i)||fb.set(i,(async()=>{var s=[...n.map(d=>d+"/"+r),r];for(var o of s){var a={preload_fs:t,readshared:o,updates:[],buildsteps:[]},l=await ae.queryWorker(a),c=l&&l.output;if(c instanceof Uint8Array&&c.length>0)return new TextDecoder().decode(c)}return null})()),fb.get(i)}var us=class{constructor(e){this.fn=e;this.languageCompartment=new Bt}getSelectionText(){return pb(this.view)}createDiv(e){var t=document.createElement("div");t.setAttribute("class","editor"),e.appendChild(t);var n=F$(this.fn||this.currentPath||"")||Kg();return this.view=new N({parent:t,extensions:[Td(),_d(),Me.allowMultipleSelections.of(!0),$d(),Qd(),$h(),PO({top:!0}),Sr.of(j$),this.languageCompartment.of(n),Vh,Jg,Me.readOnly.of(!0)]}),this.refresh(!1),t}setVisible(e){e&&this.refresh(!1)}setHeaderText(e){var t=F$(this.currentPath||this.fn||"")||Kg();this.view.dispatch({effects:this.languageCompartment.reconfigure(t),changes:{from:0,to:this.view.state.doc.length,insert:e}})}refresh(e){var t=this.fn;if(!t){var n=window.location.hash;if(!n||!n.startsWith("#headerview/"))return;t=this.fn=decodeURIComponent(n.substring(12))}this.loadIncludeFile(t)}async loadIncludeFile(e){this.requestedFn=e;var t=K$(e);if(t){this.currentPath=t,this.setHeaderText(ae.getFile(t));return}var n=await B5(e);if(this.requestedFn===e){if(n!=null){this.currentPath=e,this.setHeaderText(n);return}this.currentPath=e,this.setHeaderText("// "+e+` was not found.
`,t.className="cm-line",t}},z$=be.define(),M5=Ze.define({create(){return ee.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(z$)){if(t.value===null||!t.value)return ee.none;let n=e.state.doc.lineAt(t.value.range.to);return ee.set([ee.widget({widget:new cb(t.value.val),block:!0,side:1}).range(n.to)])}return r},provide:r=>N.decorations.from(r)}),W$=be.define(),L5=ee.mark({attributes:{class:"cm-error-span"}}),D5=Ze.define({create(){return ee.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(W$)){if(t.value===null)return ee.none;let n=[];for(let i of t.value)try{let s=e.state.doc.line(i.line),o=s.from+i.start,a=s.from+i.end;o>=s.from&&a<=s.to&&o<a&&n.push(L5.range(o,a))}catch(s){}return ee.set(n,!0)}return r},provide:r=>N.decorations.from(r)}),B$=be.define(),I5=ee.line({attributes:{class:"highlight-lines"}}),Z5=Ze.define({create(){return ee.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(B$)){if(t.value===null)return ee.none;let{start:n,end:i}=t.value,s=[];for(let o=n;o<=i;o++)try{let a=e.state.doc.line(o);s.push(I5.range(a.from))}catch(a){}return ee.set(s)}return r!==ee.none&&(e.docChanged||e.selection)?ee.none:r},provide:r=>N.decorations.from(r)}),V$={field:R5,widget:jl},Ul={effect:Z$,decoration:X$,field:E5},eu={effect:z$,field:M5},tu={effect:W$,field:D5},ru={effect:B$,field:Z5},Y$=be.define(),X5=ee.line({attributes:{class:"cm-traced-line"}}),z5=Ze.define({create(){return ee.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(Y$)){let n=[];for(let i of t.value)try{let s=e.state.doc.line(i);n.push(X5.range(s.from))}catch(s){}return ee.set(n,!0)}return r},provide:r=>N.decorations.from(r)}),nu={effect:Y$,field:z5};var W5=[...ff(ww,uf),{key:"Mod-Shift-Backspace",run:iO}],j$=ff(RP,uf),ga=64,U$=be.define(),q$=be.define(),db=Ze.define({create(){return new Map},update(r,e){let t=r;for(let n of e.effects)if(n.is(q$))t=new Map;else if(n.is(U$)){t===r&&(t=new Map(r));for(let i of n.value)t.set(i.id,{from:i.from,to:i.to})}if(!e.changes.empty){let n=new Map;for(let[i,s]of t)n.set(i,{from:e.changes.mapPos(s.from,-1),to:e.changes.mapPos(s.to,1)});return n}return t}}),B5=200,hb={default:{theme:Vh},6502:{isAsm:!0},z80:{isAsm:!0},jsasm:{isAsm:!0},gas:{isAsm:!0},vasm:{isAsm:!0},inform6:{theme:Bh},dialog:{theme:Bh,lineWrap:!0},markdown:{lineWrap:!0},fastbasic:{noGutters:!0},basic:{noGutters:!0,lineBased:!0},ecs:{theme:Vh}},G$={input:null};function H$(r){G$.input=r?e=>e.toUpperCase():null}function pb(r){if(!r)return"";let e=r.state.selection.main;return e.empty?"":r.state.sliceDoc(e.from,e.to)}var ql=class ql{constructor(e,t){this.updateTimer=null;this.indentUnitCompartment=new Bt;this.isAsm=!1;this.dirtylisting=!0;this.refreshDelayMsec=300;this.probe=null;this.path=e,this.mode=t}createDiv(e){var t=document.createElement("div");t.setAttribute("class","editor"),e.appendChild(t);var n=ae.getFile(this.path),i=n&&this.mode=="verilog"&&/__asm\b([\s\S]+?)\b__endasm\b/.test(n);return this.newEditor(t,n,i),this.editor.dispatch({effects:x$(G$)}),this.syncBreakpoints(),ae.getToolForFilename(this.path).startsWith("remote:")&&(this.refreshDelayMsec=1e3),t}setVisible(e){e?(this.editor.focus(),ql.tracingEnabled&&this.startTracing()):this.stopTracing()}getShortcuts(){if(!this.editor)return[];var e=this.editor,t=(n,i,s)=>({key:n,label:i,fn:()=>{s(e),e.focus()}});return[t("mod+f","Find",Qh),t("mod+g","Find Next",da),t("mod+d","Next Occurrence",wO),t("mod+z","Undo",Pl),t("mod+shift+z","Redo",Ko)]}startTracing(){!this.probe&&P.startProbing&&(this.probe=P.startProbing(),this.probe.singleFrame=!1,this.probe.clear())}stopTracing(){this.probe&&(P.stopProbing(),this.probe=null),this.editor.dispatch({effects:nu.effect.of([])})}setTracingEnabled(e){ql.tracingEnabled=e,e?this.startTracing():this.stopTracing()}newEditor(e,t,n){var i=hb[this.mode]||hb.default,s=n||i.isAsm,o=!!i.lineWrap,a=i.theme||hb.default.theme,l=i.useLineNumbers&&!hs;de.embed&&(l=!1,s=!1),this.isAsm=s;let c=i.noGutters||hs;var d;let h=Hg[this.mode];h?d=h.language:(console.warn("Unknown mode: "+this.mode),d=null),this.editor=new N({parent:e,doc:t,extensions:[this.indentUnitCompartment.of(this.indentUnitFor(t)),s?Xm.of((u,f)=>{let m=u.state.doc.lineAt(f).number;if(m>=0){let g=u.state.doc.line(m);if(g.text.trim())return u.lineIndent(g.from)}return 0}):[],...s?[Sr.of(Cw(()=>ra().tabsToSpaces))]:[],i.lineBased?Sr.of(kw):[],...Lw(ra()),Sr.of(W5),l?Ad():[],Nx(),Sr.of(qx),hx(),vv(),Me.allowMultipleSelections.of(!0),$d(),ax(),Ox(),Td(),_d(),Qd(),Av(),$h(),PO({top:!0}),Sr.of(j$),d||[],a,Jg,o?N.lineWrapping:[],Ul.field,c?[]:[Hh.field,Hh.gutter],s&&!c?[Nl.field,Nl.gutter,Kh.field,Kh.gutter]:[],Jh.field,I$.gutter,N.updateListener.of(u=>{for(let f of u.transactions.flatMap(m=>m.effects))if(f.is(Jh.requestToggle)&&Yt.toggleSourceLine(this.path,f.value),f.is(Oa.runToLine)){let m=f.value;if(this.sourcefile&&this.sourcefile.line2offset){let g=this.sourcefile.line2offset.get(m);g>=0&&Hl([g])}}}),lo.field,V$.field,tu.field,Oa.fiel Line truncated
`).length-1;this.editor.dispatch({changes:{from:i,insert:e}}),this.highlightLines(n-1,n+s-2)}highlightLines(e,t){let n=this.editor.state.doc.line(e+1);this.editor.dispatch({effects:[ru.effect.of({start:e+1,end:t+1}),N.scrollIntoView(n.from,{y:"start",yMargin:100})]})}navigateToLine(e){if(e<1||e>this.editor.state.doc.lines)return;let t=this.editor.state.doc.line(e);this.editor.dispatch({selection:{anchor:t.from},effects:[ru.effect.of({start:e,end:e}),N.scrollIntoView(t.from,{y:"center"})]}),this.editor.focus()}getValue(){return this.editor.state.doc.toString()}getSelectionText(){return pb(this.editor)}getPath(){return this.path}markErrors(e){this.clearErrors(),e=e.slice(0,B5);let t=new Map,n=[];for(var i of e)if(!i.path||this.path.endsWith(i.path)){var s=this.editor.state.doc.lines,o=i.line;(isNaN(o)||o<1||o>s)&&(o=1),t.set(o,i.msg),i.start!=null&&i.end!=null&&i.end>i.start&&n.push({line:o,start:i.start,end:i.end})}this.editor.dispatch({effects:[lo.set.of(t),tu.effect.of(n.length>0?n:null)]})}clearErrors(){this.dirtylisting=!0,this.editor.dispatch({effects:[lo.set.of(new Map),lo.showMessage.of(null),tu.effect.of(null)]})}getSourceFile(){return this.sourcefile}updateListing(){this.clearErrors();var e=this.sourcefile.lines||[];let t=new Map,n=new Map,i=new Map;for(var s of e)if(s.offset>=0&&t.set(s.line,Ce(s.offset&65535,4)),s.insns){var o=s.insns.length>9?"...":s.insns;if(n.set(s.line,o),s.iscode){if(s.cycles)i.set(s.line,s.cycles+"");else if(P.getOpcodeMetadata){var a=parseInt(s.insns.split(" ")[0],16),l=P.getOpcodeMetadata(a,s.offset);if(l&&l.minCycles){var c=l.minCycles+"";i.set(s.line,c)}}}}this.editor.dispatch({effects:[Hh.set.of(t),Nl.set.of(n),Kh.set.of(i)]})}setTimingResult(e){if(this.sourcefile!=null){var t=new Map;for(let[o,a]of this.sourcefile.line2offset){let l=e.pc2clockrange[a];var n=l&&l.minclocks,i=l&&l.maxclocks;if(n>=0&&i>=0){var s;i==n?s=n+"":s=n+"-"+i,i==e.MAX_CLOCKS&&(s+="+"),t.set(o,s)}}this.editor.dispatch({effects:[Nl.set.of(t)]})}}setCurrentLine(e,t){var n=i=>{this.editor.dispatch({effects:[Oa.set.of(i.line),Ul.effect.of(i.line),...t?[N.scrollIntoView(this.editor.state.doc.line(i.line).from,{y:"center"})]:[]]})};if(this.clearCurrentLine(t),e){if(e.line<1||e.line>this.editor.state.doc.lines)return;if(n(e),t){let s=this.editor.state.doc.line(e.line).from+(e.start||0);this.editor.dispatch({selection:{anchor:s,head:s},effects:N.scrollIntoView(s,{y:"center"})})}this.currentDebugLine=e}}clearCurrentLine(e){if(this.currentDebugLine){if(e){let t=this.editor.state.selection.main.head;this.editor.dispatch({selection:{anchor:t,head:t}})}this.currentDebugLine=null}this.editor.dispatch({effects:[Oa.set.of(null),Ul.effect.of(null)]})}getActiveLine(){if(this.sourcefile){var e=er&&er.c;if(!e&&P.getCPUState&&!P.isRunning()&&(e=P.getCPUState()),e){var t=e&&(e.EPC||e.PC),n=this.sourcefile.findLineForOffset(t,ga);return n}}}refreshDebugState(e){var t=this.getActiveLine();!e&&(t===this.currentDebugLine||!t&&!this.currentDebugLine)||this.setCurrentLine(t,e)}refreshListing(){var e=ae.getListingForFile(this.path);e&&e.sourcefile&&e.sourcefile!==this.sourcefile&&(this.sourcefile=e.sourcefile,this.dirtylisting=!0),!(!this.sourcefile||!this.dirtylisting)&&(this.updateListing(),this.dirtylisting=!1)}refresh(e){this.refreshListing(),this.refreshDebugState(e)}tick(){this.refreshDebugState(!1),this.updateTracedLines()}updateTracedLines(){let e=this.probe;if(!e||!e.idx||!this.sourcefile)return;let t=new Set;for(let n=0;n<e.idx;n++){let i=e.buf[n];if((i&4278190080)===16777216){let s=this.sourcefile.findLineForOffset(i&65535,ga);s&&t.add(s.line)}}e.clear(),this.editor.dispatch({effects:nu.effect.of(Array.from(t))})}getLine(e){return this.editor.state.doc.line(e).text}getCurrentLine(){let e=this.editor.state.selection.main.head;return this.editor.state.doc.lineAt(e).number}getCursorPC(){for(var e=this.getCurrentLine();this.sourcefile&&e>=0;){var t=this.sourcefile.line2offset.get(e);if(t>=0)return t;e--}return-1}undoStep(){Pl(this.editor)}redoStep(){Ko(this.editor)}syncBreakpoints(){let e=Yt.getSourceBreakpointsForFile(this.path).map(t=>({line:t.line,enabled:t.enabled}));this.editor.dispatch({effects:Jh.setAll.of(e)})}};ql.tracingEnabled=!1;var Pr=ql,ub=1024,Mi=class{getSelectionText(){return pb(this.disasmview)}createDiv(e){var t=document.createElement("div");return t.setAttribute("class","editor"),e.appendChild(t),this.newEditor(t),t}newEditor(e){this.disasmview=new N({parent:e,extensions:[Td(),_d(),Me.allowMultipleSelections.of(!0),$d(),Qd(),$h(),f$,Bh,Ul.field,Me.tabSize.of(8),Me.readOnly.of(!0)]})}refresh(e,t){let n=er||P.saveState(),i=t!==void 0?t:n.c?n.c.PC:0,s=0,o=0,a=P.debugSymbols&&P.debugSymbols.addr2symbol||{},l=(h,u)=>{let f="",m=0;for(;m<u;){let g=h+m|0,v=P.disassemble(g,P.readAddress.bind(P)),k="",L="";for(let w=0;w<v.nbytes;w++)k+=Ce(P.readAddress(g+w));for(;k.length<14;)k+=" ";let M=v.line;if(a&&v.isaddr&&(M=M.replace(/([^#])[$]([0-9A-F]+)/,(w,...x)=>{let R=parseInt(x[1],16),X=a[R];return X?x[0]+X:(X=a Line truncated
`;f+=D,g==i&&(o=s),s++,m+=v.nbytes||1}return f};var c=i<0?i-ub:Math.max(0,i-ub);let d=l(c,i-c)+l(i,ub);if(this.disasmview.dispatch({changes:{from:0,to:this.disasmview.state.doc.length,insert:d}}),e){let h=this.disasmview.state.doc.line(o+1);this.disasmview.dispatch({selection:{anchor:h.from,head:h.from},effects:N.scrollIntoView(h.from,{y:"center"})})}}goToAddress(e){e|=0,this.findAndSelectAddress(e)||(this.refresh(!1,e),this.findAndSelectAddress(e)),this.disasmview.focus()}findAndSelectAddress(e){let t=Ce(e,4),n=this.disasmview.state.doc;for(let i=1;i<=n.lines;i++){let s=n.line(i);if(s.text.startsWith(t+" "))return this.disasmview.dispatch({selection:{anchor:s.from,head:s.from+t.length},effects:N.scrollIntoView(s.from,{y:"center"})}),!0}return!1}getCursorPC(){let e=this.disasmview.state.selection.main.head,t=this.disasmview.state.doc.lineAt(e).number;if(t>=0){let i=this.disasmview.state.doc.line(t).text.trim().split(/\s+/);if(i&&i.length>=1){let s=parseInt(i[0],16);if(console.log("getCursorPC",s),s>=0)return s}}return-1}},iu=class extends Mi{constructor(e){super(),this.path=e}refreshListing(){var e=ae.getListingForFile(this.path);this.assemblyfile=e&&(e.assemblyfile||e.sourcefile)}refresh(e){if(this.refreshListing(),!!this.assemblyfile){var t=this.assemblyfile.text;if(this.disasmview.dispatch({changes:{from:0,to:this.disasmview.state.doc.length,insert:t}}),!!P.saveState){var n=er||P.saveState(),i=n.c?n.c.EPC||n.c.PC:0;if(i>=0&&this.assemblyfile){var s=this.assemblyfile.findLineForOffset(i,ga);if(s&&e){let o=this.disasmview.state.doc.line(s.line);this.disasmview.dispatch({selection:{anchor:o.from,head:o.from},effects:N.scrollIntoView(o.from,{y:"center"})})}}}}}goToAddress(e){this.refreshListing();let t=this.assemblyfile&&this.assemblyfile.findLineForOffset(e,ga);if(t){let n=this.disasmview.state.doc.line(t.line);this.disasmview.dispatch({selection:{anchor:n.from,head:n.from},effects:N.scrollIntoView(n.from,{y:"center"})})}this.disasmview.focus()}};function K$(r){let e=[r];try{var t=La(ae.mainPath);t.length>0&&t!="local"&&e.push(t+"/"+r)}catch(s){}for(var n of e){var i=ae&&ae.getFile(n);if(typeof i=="string")return n}return null}function F$(r){for(var e of ty(r))if(e.editorStyle){var t=u$(e.editorStyle);if(t)return t}return null}var fb=new Map;function V5(r){let e=ae.getToolForFilename(ae.mainPath),t=Cc(e,ae.platform_id),n=Ac(e,ae.platform_id);if(!t||!n.length)return Promise.resolve(null);let i=t+":"+r;return fb.has(i)||fb.set(i,(async()=>{var s=[...n.map(d=>d+"/"+r),r];for(var o of s){var a={preload_fs:t,readshared:o,updates:[],buildsteps:[]},l=await ae.queryWorker(a),c=l&&l.output;if(c instanceof Uint8Array&&c.length>0)return new TextDecoder().decode(c)}return null})()),fb.get(i)}var us=class{constructor(e){this.fn=e;this.languageCompartment=new Bt}getSelectionText(){return pb(this.view)}createDiv(e){var t=document.createElement("div");t.setAttribute("class","editor"),e.appendChild(t);var n=F$(this.fn||this.currentPath||"")||Kg();return this.view=new N({parent:t,extensions:[Td(),_d(),Me.allowMultipleSelections.of(!0),$d(),Qd(),$h(),PO({top:!0}),Sr.of(j$),this.languageCompartment.of(n),Vh,Jg,Me.readOnly.of(!0)]}),this.refresh(!1),t}setVisible(e){e&&this.refresh(!1)}setHeaderText(e){var t=F$(this.currentPath||this.fn||"")||Kg();this.view.dispatch({effects:this.languageCompartment.reconfigure(t),changes:{from:0,to:this.view.state.doc.length,insert:e}})}refresh(e){var t=this.fn;if(!t){var n=window.location.hash;if(!n||!n.startsWith("#headerview/"))return;t=this.fn=decodeURIComponent(n.substring(12))}this.loadIncludeFile(t)}async loadIncludeFile(e){this.requestedFn=e;var t=K$(e);if(t){this.currentPath=t,this.setHeaderText(ae.getFile(t));return}var n=await V5(e);if(this.requestedFn===e){if(n!=null){this.currentPath=e,this.setHeaderText(n);return}this.currentPath=e,this.setHeaderText("// "+e+` was not found.
// Project include files are loaded during a build -- try building first.
// Toolchain headers are only available when the tool has a bundled filesystem.`)}}navigateToLine(e){if(!(!this.view||e<1)&&e<=this.view.state.doc.lines){let t=this.view.state.doc.line(e);this.view.dispatch({selection:{anchor:t.from},effects:[N.scrollIntoView(t.from,{y:"center"})]}),this.view.focus()}}};var co=class{constructor(e){var t=document.createElement("div");t.setAttribute("class","memdump"),e.appendChild(t),this.maindiv=t}create(e,t,n){this.getLineAt=n,this.memorylist=new Wr({w:$(e).width(),h:$(e).height(),itemHeight:mb(),totalRows:t,generatorFn:i=>{var s=n(i),o=document.createElement("div");return o.appendChild(document.createTextNode(s.text)),s.clas!=null&&(o.className=s.clas),o}}),$(this.maindiv).append(this.memorylist.container)}refresh(){this.memorylist&&$(this.maindiv).find("[data-index]").each((e,t)=>{var n=t,i=parseInt(n.getAttribute("data-index")),s=n.innerText,o=this.getLineAt(i),a=o.text;if(s!=a&&(n.innerText=a,o.clas!=null&&!n.classList.contains(o.clas))){var l=Array.from(n.classList);l.forEach(c=>n.classList.remove(c)),n.classList.add("vrow"),n.classList.add(o.clas)}})}};function mb(){return $("#dropdownMenuButton").first().height()}function V5(r){return r.start+Math.max(1,r.size||0)}function Y5(r,e){r.sort((s,o)=>s.start-o.start||o.end-s.end);let t=[],n=[],i=[];for(let s of r){let o=t.findIndex(a=>a<=s.start);if(o<0&&t.length<e&&(o=t.length),o<0){let a=n[e-1];(a.hidden=a.hidden||[]).push(s);continue}t[o]=s.end,n[o]=s,s.lane=o,i.push(s)}return i}function Ob(r,e,t,n){t=Y5(t,n);let i=Math.max(1,...t.map(s=>s.lane+1));return{id:r,title:e,lanes:i,blocks:t}}function J$(r,e,t,n){let i=r.slice().sort((a,l)=>a.start-l.start),s=[],o=e;for(let a of i)a.start>o&&s.push({name:t,start:o,end:a.start,type:n,lane:0}),o=Math.max(o,a.end);return r.concat(s)}function eQ(r){return{name:r.name,start:r.start,end:V5(r),type:r.type,lane:0}}function F5(r){return r.startsWith("__")||/^[sl]__/.test(r)||r.startsWith(".")}function N5(r,e,t,n){var h,u;let i=(h=t==null?void 0:t.minVarSize)!=null?h:128,s=(u=t==null?void 0:t.maxVars)!=null?u:64,o=e.filter(f=>f.type=="ram"&&f.size>0);if(!r||!o.length)return[];let a=f=>n==null?void 0:n[f],l=new Map;for(let[f,m]of Object.entries(r)){if(typeof m!="number"||F5(f))continue;let g=l.get(m);(g==null||!a(g)&&a(f))&&l.set(m,f)}let c=Array.from(l.keys()).sort((f,m)=>f-m),d=[];for(let f=0;f<c.length;f++){let m=c[f],g=null;for(let w of o)m>=w.start&&m<w.start+w.size&&(!g||w.size<g.size)&&(g=w);if(!g)continue;let v=l.get(m),k=a(v);if(k!=null){k>=i&&d.push({name:v,start:m,end:m+k,type:"var",lane:0});continue}let L=g.start+g.size,M=f+1<c.length?c[f+1]:1/0;if(M>=L&&g.source!="linker")continue;let D=Math.min(M,L);D-m>=i&&d.push({name:v,start:m,end:D,type:"var",lane:0,approx:!0})}return d.sort((f,m)=>m.end-m.start-(f.end-f.start)),d.slice(0,s)}function tQ(r,e,t,n){var h;r=r||[];let i=(h=t==null?void 0:t.maxLanes)!=null?h:2,s=[],o=r.filter(u=>u.source=="native").map(eQ),a=r.filter(u=>u.source!="native").map(eQ);if(o.length&&s.push(Ob("native","System",J$(o,0,"","unmapped"),i)),a.length){let u=Math.min(...a.map(f=>f.start));s.push(Ob("linker","Segments",J$(a,u,"","free"),i))}let l=N5(e,r,t,n);l.length&&s.push(Ob("vars","Objects",l,i));let c=new Set;for(let u of s)for(let f of u.blocks)c.add(f.start),c.add(f.end);return{bounds:Array.from(c).sort((u,f)=>u-f),columns:s}}function rQ(r){return r.endsWith("_SIZE__")||r.endsWith("_LAST__")||r.endsWith("STACKSIZE__")||r.endsWith("FILEOFFS__")||r.startsWith("l__")||r.startsWith("s__")||r.startsWith(".__.")}var fs=class{constructor(){this.recreateOnResize=!0;this.hibits=0;this.totalRows=5120;this.gotoRow=-1}createDiv(e){var t=document.createElement("div");return t.setAttribute("class","memdump"),e.appendChild(t),this.showMemoryWindow(e,t),this.maindiv=t}showMemoryWindow(e,t){this.memorylist=new Wr({w:$(e).width(),h:$(e).height(),itemHeight:mb(),totalRows:this.totalRows,generatorFn:i=>{var s=this.getMemoryLineAt(i),o=document.createElement("div");if(this.dumplines){var a=this.dumplines[i];a&&o.classList.add("seg_"+this.getMemorySegment(this.dumplines[i].a|this.hibits))}return i==this.gotoRow&&o.classList.add("goto_line"),o.appendChild(document.createTextNode(s)),o}}),$(t).append(this.memorylist.container),this.tick();let n=Tl();n&&this.dumplines&&this.scrollToAddress(n.data_start)}scrollToAddress(e){this.dumplines&&(this.hibits=e&4294901760,this.memorylist.scrollToItem(this.findMemoryWindowLine(e&65535)))}goToAddress(e){this.hibits=e&4294901760;var t=this.getDumpLines(),n;if(t&&t.length?n=this.findMemoryWindowLine(e&65535):n=(e&65535)>>4,n!==void 0){if(this.gotoRow=n,this.memorylist){var i=this.memorylist.container,s=n*this.memorylist.itemHeight-(i.clientHeight-this.memorylist.itemHeight)/2;i.scrollTop=Math.max(0,s)}this.tick()}}refresh(){this.dumplines=null,this.tick()}tick(){this.memorylist&&$(this.maindiv).find("[data-index]").each((e,t)=>{var n=$(t),i=parseInt(n.attr("data-index")),s=n.text(),o=this.getMemoryLineAt(i);s!=o&&n.text(o),n.toggleCla Line truncated
// Toolchain headers are only available when the tool has a bundled filesystem.`)}}navigateToLine(e){if(!(!this.view||e<1)&&e<=this.view.state.doc.lines){let t=this.view.state.doc.line(e);this.view.dispatch({selection:{anchor:t.from},effects:[N.scrollIntoView(t.from,{y:"center"})]}),this.view.focus()}}};var co=class{constructor(e){var t=document.createElement("div");t.setAttribute("class","memdump"),e.appendChild(t),this.maindiv=t}create(e,t,n){this.getLineAt=n,this.memorylist=new Br({w:$(e).width(),h:$(e).height(),itemHeight:mb(),totalRows:t,generatorFn:i=>{var s=n(i),o=document.createElement("div");return o.appendChild(document.createTextNode(s.text)),s.clas!=null&&(o.className=s.clas),o}}),$(this.maindiv).append(this.memorylist.container)}refresh(){this.memorylist&&$(this.maindiv).find("[data-index]").each((e,t)=>{var n=t,i=parseInt(n.getAttribute("data-index")),s=n.innerText,o=this.getLineAt(i),a=o.text;if(s!=a&&(n.innerText=a,o.clas!=null&&!n.classList.contains(o.clas))){var l=Array.from(n.classList);l.forEach(c=>n.classList.remove(c)),n.classList.add("vrow"),n.classList.add(o.clas)}})}};function mb(){return $("#dropdownMenuButton").first().height()}function Y5(r){return r.start+Math.max(1,r.size||0)}function F5(r,e){r.sort((s,o)=>s.start-o.start||o.end-s.end);let t=[],n=[],i=[];for(let s of r){let o=t.findIndex(a=>a<=s.start);if(o<0&&t.length<e&&(o=t.length),o<0){let a=n[e-1];(a.hidden=a.hidden||[]).push(s);continue}t[o]=s.end,n[o]=s,s.lane=o,i.push(s)}return i}function Ob(r,e,t,n){t=F5(t,n);let i=Math.max(1,...t.map(s=>s.lane+1));return{id:r,title:e,lanes:i,blocks:t}}function J$(r,e,t,n){let i=r.slice().sort((a,l)=>a.start-l.start),s=[],o=e;for(let a of i)a.start>o&&s.push({name:t,start:o,end:a.start,type:n,lane:0}),o=Math.max(o,a.end);return r.concat(s)}function eQ(r){return{name:r.name,start:r.start,end:Y5(r),type:r.type,lane:0}}function N5(r){return r.startsWith("__")||/^[sl]__/.test(r)||r.startsWith(".")}function j5(r,e,t,n){var h,u;let i=(h=t==null?void 0:t.minVarSize)!=null?h:128,s=(u=t==null?void 0:t.maxVars)!=null?u:64,o=e.filter(f=>f.type=="ram"&&f.size>0);if(!r||!o.length)return[];let a=f=>n==null?void 0:n[f],l=new Map;for(let[f,m]of Object.entries(r)){if(typeof m!="number"||N5(f))continue;let g=l.get(m);(g==null||!a(g)&&a(f))&&l.set(m,f)}let c=Array.from(l.keys()).sort((f,m)=>f-m),d=[];for(let f=0;f<c.length;f++){let m=c[f],g=null;for(let w of o)m>=w.start&&m<w.start+w.size&&(!g||w.size<g.size)&&(g=w);if(!g)continue;let v=l.get(m),k=a(v);if(k!=null){k>=i&&d.push({name:v,start:m,end:m+k,type:"var",lane:0});continue}let L=g.start+g.size,M=f+1<c.length?c[f+1]:1/0;if(M>=L&&g.source!="linker")continue;let D=Math.min(M,L);D-m>=i&&d.push({name:v,start:m,end:D,type:"var",lane:0,approx:!0})}return d.sort((f,m)=>m.end-m.start-(f.end-f.start)),d.slice(0,s)}function tQ(r,e,t,n){var h;r=r||[];let i=(h=t==null?void 0:t.maxLanes)!=null?h:2,s=[],o=r.filter(u=>u.source=="native").map(eQ),a=r.filter(u=>u.source!="native").map(eQ);if(o.length&&s.push(Ob("native","System",J$(o,0,"","unmapped"),i)),a.length){let u=Math.min(...a.map(f=>f.start));s.push(Ob("linker","Segments",J$(a,u,"","free"),i))}let l=j5(e,r,t,n);l.length&&s.push(Ob("vars","Objects",l,i));let c=new Set;for(let u of s)for(let f of u.blocks)c.add(f.start),c.add(f.end);return{bounds:Array.from(c).sort((u,f)=>u-f),columns:s}}function rQ(r){return r.endsWith("_SIZE__")||r.endsWith("_LAST__")||r.endsWith("STACKSIZE__")||r.endsWith("FILEOFFS__")||r.startsWith("l__")||r.startsWith("s__")||r.startsWith(".__.")}var fs=class{constructor(){this.recreateOnResize=!0;this.hibits=0;this.totalRows=5120;this.gotoRow=-1}createDiv(e){var t=document.createElement("div");return t.setAttribute("class","memdump"),e.appendChild(t),this.showMemoryWindow(e,t),this.maindiv=t}showMemoryWindow(e,t){this.memorylist=new Br({w:$(e).width(),h:$(e).height(),itemHeight:mb(),totalRows:this.totalRows,generatorFn:i=>{var s=this.getMemoryLineAt(i),o=document.createElement("div");if(this.dumplines){var a=this.dumplines[i];a&&o.classList.add("seg_"+this.getMemorySegment(this.dumplines[i].a|this.hibits))}return i==this.gotoRow&&o.classList.add("goto_line"),o.appendChild(document.createTextNode(s)),o}}),$(t).append(this.memorylist.container),this.tick();let n=Tl();n&&this.dumplines&&this.scrollToAddress(n.data_start)}scrollToAddress(e){this.dumplines&&(this.hibits=e&4294901760,this.memorylist.scrollToItem(this.findMemoryWindowLine(e&65535)))}goToAddress(e){this.hibits=e&4294901760;var t=this.getDumpLines(),n;if(t&&t.length?n=this.findMemoryWindowLine(e&65535):n=(e&65535)>>4,n!==void 0){if(this.gotoRow=n,this.memorylist){var i=this.memorylist.container,s=n*this.memorylist.itemHeight-(i.clientHeight-this.memorylist.itemHeight)/2;i.scrollTop=Math.max(0,s)}this.tick()}}refresh(){this.dumplines=null,this.tick()}tick(){this.memorylist&&$(this.maindiv).find("[data-index]").each((e,t)=>{var n=$(t),i=parseInt(n.attr("data-index")),s=n.text(),o=this.getMemoryLineAt(i);s!=o&&n.text(o),n.toggleCla Line truncated
`)),e.type&&s.addClass("segment-"+e.type);var l=t.lanes-e.lane;for(var c of t.blocks)c.lane>e.lane&&c.start<e.end&&c.end>e.start&&(l=Math.min(l,c.lane-e.lane));s.css("grid-row",`${i.indexOf(e.start)+2} / ${i.indexOf(e.end)+2}`),s.css("grid-column",`${n+e.lane} / span ${l}`),s.click(()=>{var d=F.createOrShow("#memory");d.scrollToAddress(e.start)}),this.maindiv.append(s)}refresh(){var h,u;this.maindiv.empty();var e=tQ(ae.segments,(h=P.debugSymbols)==null?void 0:h.symbolmap,null,(u=P.debugSymbols)==null?void 0:u.symbolsizes),t=e.bounds;if(t.length){var n=["5em"],i=2,s=$('<div class="memmap-header" style="grid-row:1;grid-column:1"/>').text("Address");this.maindiv.append(s);for(var o of e.columns){for(var a=0;a<o.lanes;a++)n.push("minmax(0,1fr)");$('<div class="memmap-header"/>').text(o.title).css("grid-row","1").css("grid-column",`${i} / span ${o.lanes}`).appendTo(this.maindiv);for(var l of o.blocks)this.addBlock(l,o,i,t);i+=o.lanes}for(var c=["auto"],a=0;a+1<t.length;a++){var d=t[a+1]-t[a];c.push(Math.max(3,Math.log(d+1))*.5+"em"),$('<div class="segment-offset"/>').text("$"+Ce(t[a],4)).css("grid-row",`${a+2}`).css("grid-column","1").appendTo(this.maindiv)}this.maindiv.css("grid-template-columns",n.join(" ")),this.maindiv.css("grid-template-rows",c.join(" "))}}},Vn=4278190080,ps=class{constructor(){this.cumulativeData=!1;var e=160,t=262;try{e=Math.ceil(P.machine.cpuCyclesPerLine)||e,t=Math.ceil(P.machine.numTotalScanlines)||t}catch(n){}this.cyclesPerLine=e,this.totalScanlines=t}addr2symbol(e){var t=P.debugSymbols&&P.debugSymbols.addr2symbol||{};return t[e]}addr2str(e){var t=this.addr2symbol(e);return typeof t=="string"?"$"+Ce(e)+" ("+t+")":"$"+Ce(e)}showTooltip(e){e?(this.tooldiv||(this.tooldiv=document.createElement("div"),this.tooldiv.setAttribute("class","tooltiptrack"),document.body.appendChild(this.tooldiv)),$(this.tooldiv).text(e).show()):$(this.tooldiv).hide()}setVisible(e){e?(this.probe=P.startProbing(),this.probe.singleFrame=!this.cumulativeData,this.tick()):(this.probe&&(this.probe.singleFrame=!0),P.stopProbing(),this.probe=null)}redraw(e){var t=this.probe;if(!(!t||!t.idx)){var n=0,i=0,s=0;this.sp=0;for(var o=0;o<t.idx;o++){var a=t.buf[o],l=a&65535,c=a>>16&255,d=a&Vn;switch(d){case 2113929216:n++,i=0;break;case 2130706432:n=0,i=0;break;case 0:i+=l,s+=l;break;case 167772160:case 184549376:this.sp=l;default:e(d,l,i,n,s,c);break}}}}opToString(e,t,n){var i="";switch(e){case 16777216:i="Exec";break;case 301989888:i="Read";break;case 318767104:i="Write";break;case 335544320:i="IO Read";break;case 352321536:i="IO Write";break;case 369098752:i="VRAM Read";break;case 385875968:i="VRAM Write";break;case 402653184:i="DMA Read";break;case 419430400:i="DMA Write";break;case 134217728:i="Interrupt";break;case 150994944:i="Error";break;case 520093696:i="Wait";break;case 167772160:i="Stack Push";break;case 184549376:i="Stack Pop";break;default:return""}return typeof t=="number"&&(i+=" "+this.addr2str(t)),e&268435456&&typeof n=="number"&&(i+=" = $"+Ce(n,2)),i}getOpRGB(e,t){switch(e){case 16777216:return 98305;case 301989888:return 8388865;case 318767104:return 65920;case 335544320:return 98432;case 352321536:return 12583296;case 402653184:case 369098752:return 8421377;case 419430400:case 385875968:return 4227264;case 134217728:return 4177727;case 150994944:return 4145151;case 520093696:return 16727871;default:return 0}}},gb=class extends ps{constructor(){super(...arguments);this.recreateOnResize=!0}createCanvas(t,n,i){var s=document.createElement("div"),o=document.createElement("canvas");return o.width=n,o.height=i,o.classList.add("pixelated"),o.style.width="100%",o.style.height="90vh",o.style.backgroundColor="black",o.style.cursor="crosshair",o.onmousemove=a=>{var l=Sc(o,a);this.showTooltip(this.getTooltipText(l.x,l.y)),$(this.tooldiv).css("left",a.pageX+10).css("top",a.pageY-30)},o.onmouseout=a=>{$(this.tooldiv).hide()},t.appendChild(s),s.appendChild(o),this.canvas=o,this.ctx=o.getContext("2d"),this.initCanvas(),this.maindiv=s}initCanvas(){}getTooltipText(t,n){return null}getOpAtPos(t,n,i){t=t|0,n=n|0;let s=0;return this.redraw((o,a,l,c,d,h)=>{!s&&c==n&&l>=t&&(o&i)!=0&&(s=o|a)}),s}clear(){}tick(){this.clear(),this.redraw(this.drawEvent.bind(this))}},au=class extends gb{constructor(){super(...arguments);this.recreateOnResize=!1}createDiv(t){return this.createCanvas(t,this.cyclesPerLine,this.totalScanlines)}initCanvas(){this.imageData=this.ctx.createImageData(this.canvas.width,this.canvas.height),this.datau32=new Uint32Array(this.imageData.data.buffer)}getTooltipText(t,n){t=t|0,n=n|0;var i="",s=null,o=[],a=-1;return this.redraw((l,c,d,h,u,f)=>{switch(l){case 16777216:s=this.addr2symbol(c)||s;break;case 167772160:o.push(s);break;case 184549376:s=o.pop();break}h==n&&d<=t&&(d!=a&&(i="",a=d),i==""&&s&&(i+=`
`+s),i+=`
`+this.opToString(l,c,f))}),"X: "+t+" Y: "+n+" "+i}refresh(){this.tick(),this.datau32.fill(Vn)}tick(){super.tick(),this.drawImage()}drawImage(){this.ctx.putImageData(this.imageData,0,0)}clear(){this.datau32.fill(Vn)}},lu=class extends au{createDiv(e){return this.createCanvas(e,256,256)}initCanvas(){super.initCanvas(),this.canvas.onclick=e=>{var t=Sc(this.canvas,e),n=Math.floor(t.x)+Math.floor(t.y)*256,i=-1,s=-1;this.redraw((o,a)=>{s<0&&i>=0&&a==n&&(s=i),o==16777216&&(i=a)}),s>=0&&Hl([s])}}clear(){for(var e=0;e<=65535;e++){var t=P.readAddress(e),n=t>>2|t&31;n|=n<<8|n<<16,this.datau32[e]=n|Vn}}drawEvent(e,t,n,i){var s=this.getOpRGB(e,t);if(s){var o=t&255,a=t>>8&255,l=this.datau32[t&65535];l=l|s|Vn,this.datau32[t&65535]=l}}getTooltipText(e,t){var n=(e&255)+(t<<8),i="",s=-1,o={},a=null,l=[];return this.redraw((c,d,h,u,f,m)=>{switch(c){case 16777216:s=d,a=this.addr2symbol(d)||a;break;case 167772160:l.push(a);break;case 184549376:a=l.pop();break}var g=c|s;d==n&&!o[g]&&(i==""&&a&&(i+=`
`+a),i+=`
PC `+this.addr2str(s)+" "+this.opToString(c,null,m),o[g]=1)}),this.addr2str(n)+i}},bb=class extends au{initCanvas(){super.initCanvas(),this.canvas.onclick=e=>{var t=Sc(this.canvas,e),n=Math.floor(t.x),i=Math.floor(t.y),s=this.getOpAtPos(t.x,t.y,16777216);s&&(oi("toline"),P.runEval(()=>{let o=P.getRasterScanline&&P.getRasterScanline()>=i;return o&&P.getRasterLineClock?o&&P.getRasterLineClock()>n:o}))}}drawEvent(e,t,n,i){var s=this.getOpRGB(e,t);if(s){var o=n+i*this.canvas.width,a=s|Vn;this.datau32[o]|=a}}drawImage(){let e=Vn;for(let t=0;t<this.datau32.length;t++)this.datau32[t]==Vn?this.datau32[t]=e:e=this.datau32[t];super.drawImage()}},cu=class extends bb{constructor(){super(...arguments);this.interrupt=0;this.rgb=0;this.lastpc=0}drawEvent(t,n,i,s){var o=i+s*this.canvas.width;if(t==134217728&&(this.interrupt=1),this.interrupt==1&&t==167772160&&(this.interrupt=n),this.interrupt>1&&this.sp>this.interrupt&&(this.interrupt=0),t==318767104&&(this.rgb|=47),t==385875968&&(this.rgb|=16256),t==352321536&&(this.rgb|=2047872),t==335544320&&(this.rgb|=7936),t==520093696&&(this.rgb=32768),t==150994944||t==402653184)this.datau32[o]=4279176975;else{let a=this.rgb;if(t==16777216){let l=this.sp&15;l>=8&&(l=16-l),Math.abs(this.lastpc)-n>16&&(l+=1),Math.abs(this.lastpc)-n>256&&(l+=1),a=this.rgb=526344*l+2105376,this.lastpc=n}this.interrupt&&(a|=8388672),this.datau32[o]==Vn&&(this.datau32[o]=a|Vn)}}},du=class extends ps{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new co(t),this.vlist.create(t,this.cyclesPerLine*this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){var n="",i="seg_data",s=this.dumplines&&this.dumplines[t];if(s!=null){var o=s.info.join(", ");n="("+Gn(s.row,4)+", "+Gn(s.col,4)+") "+Ma(s.asm||"",20)+o,o.indexOf("Write ")>=0&&(i="seg_io")}return{text:n,clas:i}}refresh(){this.tick()}tick(){let t=P instanceof sf||P instanceof nf;this.dumplines={},this.redraw((n,i,s,o,a,l)=>{t&&(a>>=2);var c=this.dumplines[a];switch(c==null&&(c={op:n,addr:i,row:o,col:s,asm:null,info:[]},this.dumplines[a]=c),n){case 16777216:if(P.disassemble){var d=P.disassemble(i,P.readAddress.bind(P));c.asm=d&&d.line}break;default:var h=this.opToString(n,i,l);h!=""&&c.info.push(h);break}}),this.vlist.refresh()}},hu=class extends ps{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new co(t),this.vlist.create(t,this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){for(var n=Gn(t+"",3)+" ",i="seg_code",s=this.dumplines&&this.dumplines[t]||[],o=Math.round(this.cyclesPerLine/3.3),a=0;a<this.cyclesPerLine;a++){var l=s[a];if(l!==void 0){var c=l&65535,d=d&Vn;if(d==16777216)n+=",";else{var h=Ce(c);n+=h,a+=h.length-1}}else n+=a==o?"|":"."}return s[-1]&&(n+=" "+s[-1]),{text:n,clas:i}}refresh(){this.tick()}tick(){let t=P instanceof sf||P instanceof nf;this.dumplines={},this.redraw((n,i,s,o,a,l)=>{var c=this.dumplines[o];switch(c==null&&(this.dumplines[o]=c=[]),n){case 16777216:var d=P.debugSymbols.addr2symbol[i];d&&(c[-1]=d);break;case 335544320:case 352321536:case 369098752:case 385875968:c[s]=n|i;break}}),this.vlist.refresh()}},uu=class extends ps{constructor(){super(...arguments);this.recreateOnResize=!0;this.cumulativeData=!0}createDiv(t){return P.debugSymbols&&P.debugSymbols.symbolmap?this.keys=Array.from(Object.keys(P.debugSymbols.symbolmap).filter(n=>!rQ(n))):this.keys=["no symbols defined"],this.vlist=new co(t),this.vlist.create(t,this.keys.length+1,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){if(t==0)return{text:Gn("Symbol",35)+Gn("Reads",8)+Gn("Writes",8)};var n=this.keys[t-1],i=this.dumplines&&this.dumplines[n];function s(l){var c=i[l]|0;return Gn(c?c.toString():"",8)}var o,a;return i!=null?(o=Gn(n,35)+s(301989888)+s(318767104),i[16777216]?a="seg_code":i[335544320]||i[352321536]?a="seg_io":a="seg_data"):(o=Gn(n,35),a="seg_unknown"),{text:o,clas:a}}refresh(){this.tick()}tick(){this.dumplines={},this.redraw((t,n,i,s,o,a)=>{var l=P.debugSymbols.addr2symbol[n];if(l!=null){var c=this.dumplines[l];c==null&&(c={},this.dumplines[l]=c),c[t]=(c[t]|0)+1}}),this.vlist.refresh(),this.probe&&this.probe.clear()}},fu=class{constructor(){this.editingId=null}createDiv(e){return this.maindiv=xn(e,"vertical-scroll bp-view"),this.render(),this.maindiv[0]}refresh(e){this.render()}render(){let e=this.maindiv.empty(),t=Fh(),n=this.editingId!=null?t.find(d=>d.bp.id==this.editingId):null,i=$('<div class="bp-form"/>'),s=$('<input type="text" class="bp-input" spellcheck="false"/>').attr("placeholder","address or symbol (e.g. $8000, mainloop)").val(n&&n.bp.type=="address"?n.bp.target:""),o=$('<input type="text" class="bp-input" spellcheck="false"/>').attr("placeholder","condition (e.g. A>=$20, #scanline==222)").val(n&&n.bp.condition||""),a=$('<button class="btn btn-default btn-xs bp-submit"/>').text(n?"Save":"Add"),l=$('<button class="btn btn-default btn-xs bp-submit"/>').text("Cancel");l.toggl Line truncated
`)<0&&e.indexOf("\r")<0)return e.trim()}return""}function H5(r){var t;let e=r.record;if(e.source==="project"){let n=e.file;if(!n||!F.isWindow(n))return;let i=F.createOrShow(n);i instanceof Pr&&e.line&&i.navigateToLine(e.line)}else if(e.source==="toolchain"){let n=e.file;if(!n)return;Gl(n);let i=F.createOrShow("#headerview/"+n);i instanceof us&&e.line&&i.navigateToLine(e.line)}else if(e.source==="debugger"){let n=(t=e.addr)!=null?t:-1;if(n<0)return;if(e.kind==="label"&&F.isWindow("#disasm")){let i=F.createOrShow("#disasm");i instanceof Mi&&i.goToAddress(n)}else{let i=F.createOrShow("#memory");i instanceof fs&&i.goToAddress(n)}}else if(e.source==="docs"){let n=e.url||"";n.startsWith("#help/")?F.createOrShow(n):n&&window.open(n,"_blank")}}function yb(){bootbox.dialog({title:"Search",onEscape:!0,message:`
PC `+this.addr2str(s)+" "+this.opToString(c,null,m),o[g]=1)}),this.addr2str(n)+i}},bb=class extends au{initCanvas(){super.initCanvas(),this.canvas.onclick=e=>{var t=Sc(this.canvas,e),n=Math.floor(t.x),i=Math.floor(t.y),s=this.getOpAtPos(t.x,t.y,16777216);s&&(oi("toline"),P.runEval(()=>{let o=P.getRasterScanline&&P.getRasterScanline()>=i;return o&&P.getRasterLineClock?o&&P.getRasterLineClock()>n:o}))}}drawEvent(e,t,n,i){var s=this.getOpRGB(e,t);if(s){var o=n+i*this.canvas.width,a=s|Vn;this.datau32[o]|=a}}drawImage(){let e=Vn;for(let t=0;t<this.datau32.length;t++)this.datau32[t]==Vn?this.datau32[t]=e:e=this.datau32[t];super.drawImage()}},cu=class extends bb{constructor(){super(...arguments);this.interrupt=0;this.rgb=0;this.lastpc=0}drawEvent(t,n,i,s){var o=i+s*this.canvas.width;if(t==134217728&&(this.interrupt=1),this.interrupt==1&&t==167772160&&(this.interrupt=n),this.interrupt>1&&this.sp>this.interrupt&&(this.interrupt=0),t==318767104&&(this.rgb|=47),t==385875968&&(this.rgb|=16256),t==352321536&&(this.rgb|=2047872),t==335544320&&(this.rgb|=7936),t==520093696&&(this.rgb=32768),t==150994944||t==402653184)this.datau32[o]=4279176975;else{let a=this.rgb;if(t==16777216){let l=this.sp&15;l>=8&&(l=16-l),Math.abs(this.lastpc)-n>16&&(l+=1),Math.abs(this.lastpc)-n>256&&(l+=1),a=this.rgb=526344*l+2105376,this.lastpc=n}this.interrupt&&(a|=8388672),this.datau32[o]==Vn&&(this.datau32[o]=a|Vn)}}},du=class extends ps{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new co(t),this.vlist.create(t,this.cyclesPerLine*this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){var n="",i="seg_data",s=this.dumplines&&this.dumplines[t];if(s!=null){var o=s.info.join(", ");n="("+Gn(s.row,4)+", "+Gn(s.col,4)+") "+Ma(s.asm||"",20)+o,o.indexOf("Write ")>=0&&(i="seg_io")}return{text:n,clas:i}}refresh(){this.tick()}tick(){let t=P instanceof sf||P instanceof nf;this.dumplines={},this.redraw((n,i,s,o,a,l)=>{t&&(a>>=2);var c=this.dumplines[a];switch(c==null&&(c={op:n,addr:i,row:o,col:s,asm:null,info:[]},this.dumplines[a]=c),n){case 16777216:if(P.disassemble){var d=P.disassemble(i,P.readAddress.bind(P));c.asm=d&&d.line}break;default:var h=this.opToString(n,i,l);h!=""&&c.info.push(h);break}}),this.vlist.refresh()}},hu=class extends ps{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new co(t),this.vlist.create(t,this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){for(var n=Gn(t+"",3)+" ",i="seg_code",s=this.dumplines&&this.dumplines[t]||[],o=Math.round(this.cyclesPerLine/3.3),a=0;a<this.cyclesPerLine;a++){var l=s[a];if(l!==void 0){var c=l&65535,d=d&Vn;if(d==16777216)n+=",";else{var h=Ce(c);n+=h,a+=h.length-1}}else n+=a==o?"|":"."}return s[-1]&&(n+=" "+s[-1]),{text:n,clas:i}}refresh(){this.tick()}tick(){let t=P instanceof sf||P instanceof nf;this.dumplines={},this.redraw((n,i,s,o,a,l)=>{var c=this.dumplines[o];switch(c==null&&(this.dumplines[o]=c=[]),n){case 16777216:var d=P.debugSymbols.addr2symbol[i];d&&(c[-1]=d);break;case 335544320:case 352321536:case 369098752:case 385875968:c[s]=n|i;break}}),this.vlist.refresh()}},uu=class extends ps{constructor(){super(...arguments);this.recreateOnResize=!0;this.cumulativeData=!0}createDiv(t){return P.debugSymbols&&P.debugSymbols.symbolmap?this.keys=Array.from(Object.keys(P.debugSymbols.symbolmap).filter(n=>!rQ(n))):this.keys=["no symbols defined"],this.vlist=new co(t),this.vlist.create(t,this.keys.length+1,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){if(t==0)return{text:Gn("Symbol",35)+Gn("Reads",8)+Gn("Writes",8)};var n=this.keys[t-1],i=this.dumplines&&this.dumplines[n];function s(l){var c=i[l]|0;return Gn(c?c.toString():"",8)}var o,a;return i!=null?(o=Gn(n,35)+s(301989888)+s(318767104),i[16777216]?a="seg_code":i[335544320]||i[352321536]?a="seg_io":a="seg_data"):(o=Gn(n,35),a="seg_unknown"),{text:o,clas:a}}refresh(){this.tick()}tick(){this.dumplines={},this.redraw((t,n,i,s,o,a)=>{var l=P.debugSymbols.addr2symbol[n];if(l!=null){var c=this.dumplines[l];c==null&&(c={},this.dumplines[l]=c),c[t]=(c[t]|0)+1}}),this.vlist.refresh(),this.probe&&this.probe.clear()}},fu=class{constructor(){this.editingId=null}createDiv(e){return this.maindiv=xn(e,"vertical-scroll bp-view"),this.render(),this.maindiv[0]}refresh(e){this.render()}render(){let e=this.maindiv.empty(),t=Fh(),n=this.editingId!=null?t.find(d=>d.bp.id==this.editingId):null,i=$('<div class="bp-form"/>'),s=$('<input type="text" class="bp-input" spellcheck="false"/>').attr("placeholder","address or symbol (e.g. $8000, mainloop)").val(n&&n.bp.type=="address"?n.bp.target:""),o=$('<input type="text" class="bp-input" spellcheck="false"/>').attr("placeholder","condition (e.g. A>=$20, #scanline==222)").val(n&&n.bp.condition||""),a=$('<button class="btn btn-default btn-xs bp-submit"/>').text(n?"Save":"Add"),l=$('<button class="btn btn-default btn-xs bp-submit"/>').text("Cancel");l.toggl Line truncated
`)<0&&e.indexOf("\r")<0)return e.trim()}return""}function K5(r){var t;let e=r.record;if(e.source==="project"){let n=e.file;if(!n||!F.isWindow(n))return;let i=F.createOrShow(n);i instanceof Pr&&e.line&&i.navigateToLine(e.line)}else if(e.source==="toolchain"){let n=e.file;if(!n)return;Gl(n);let i=F.createOrShow("#headerview/"+n);i instanceof us&&e.line&&i.navigateToLine(e.line)}else if(e.source==="debugger"){let n=(t=e.addr)!=null?t:-1;if(n<0)return;if(e.kind==="label"&&F.isWindow("#disasm")){let i=F.createOrShow("#disasm");i instanceof Mi&&i.goToAddress(n)}else{let i=F.createOrShow("#memory");i instanceof fs&&i.goToAddress(n)}}else if(e.source==="docs"){let n=e.url||"";n.startsWith("#help/")?F.createOrShow(n):n&&window.open(n,"_blank")}}function yb(){bootbox.dialog({title:"Search",onEscape:!0,message:`
<div id="searchbox_form">
<input type="text" id="searchboxInput" class="form-control"
placeholder="Search symbols, files, docs"
autocomplete="off" style="margin-bottom:8px">
<div id="searchboxResults" style="max-height:340px;overflow-y:auto"></div>
</div>
`,buttons:{close:{label:"Close",className:"btn-default"}}}).one("shown.bs.modal",()=>{$("#searchboxInput").trigger("focus")});let e=$("#searchboxInput"),t=$("#searchboxResults"),n=[],i=-1,s=d=>{if(i=Math.max(-1,Math.min(d,n.length-1)),t.find("li.search-hit").each((h,u)=>{$(u).toggleClass("active",h===i)}),i>=0){let h=t[0],u=t.find("li.search-hit").eq(i);if(u.length){let f=u[0],m=h.getBoundingClientRect(),g=f.getBoundingClientRect(),v=g.top-m.top;v<0?h.scrollTop+=v:v+g.height>m.height&&(h.scrollTop+=v+g.height-m.height)}}},o=(d=i)=>{let h=n[d];h&&(H5(h),bootbox.hideAll())},a=d=>{if(n=d||[],n.length===0){i=-1,t.html('<div class="text-muted" style="padding:8px">No matches.</div>');return}let h=$('<ul class="list-group" style="margin-bottom:0"></ul>');for(let u of n){let f=u.record,m=f.source,g=f.kind==="func"?"\u0192":f.kind==="macro"?"#":f.kind==="label"?":":f.kind==="struct"?"S":f.kind==="enum"?"E":f.kind==="text"?"\u2261":"\u2022",v=f.source==="debugger"?Ce(f.addr,4):f.file&&f.line?`${f.file}:${f.line}`:f.file||"",k=f.kind!=="text",L=$('<li class="list-group-item search-hit" style="cursor:pointer;padding:6px 10px;display:flex;align-items:center;overflow:hidden"></li>');L.html(`<span class="search-kind" style="margin-right:6px;font-weight:bold;flex:0 0 auto">${g}</span><span class="search-name" style="flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">`+(k?`<strong>${mu(f.name)}</strong>`:`<span class="search-dumb">${mu(f.name)}</span>`)+(f.brief?` <span class="text-muted">- ${mu(f.brief)}</span>`:"")+`</span><span class="search-loc" style="flex:0 0 auto;margin-left:8px;font-style:italic;font-size:small;white-space:nowrap">${v?mu(v):""}</span>`),L.click(()=>{o(n.indexOf(u))}),h.append(L)}t.empty().append(h),s(0)},l=U5(async()=>{let d=e.val();if(!d){n=[],i=-1,t.empty();return}try{let h=await PP.query(d,q5),u=pu(d,P&&P.debugSymbols&&P.debugSymbols.symbolmap);u&&sQ(u,h.length>0)&&h.push(iQ(d,u,ae&&ae.segments)),a(h)}catch(h){t.html('<div class="text-danger" style="padding:8px">Search failed.</div>')}},150);e.on("input",l),e.on("keydown",d=>{d.key==="ArrowDown"?(d.preventDefault(),s(i+1)):d.key==="ArrowUp"?(d.preventDefault(),s(i-1)):d.key==="Enter"?(d.preventDefault(),i>=0?o():l()):d.key==="Home"?(d.preventDefault(),s(0)):d.key==="End"&&(d.preventDefault(),s(n.length-1))});let c=G5();c&&(e.val(c),l())}var K5=800,J5=1e3,eX=16;function hQ(r){var e={};return r.forEach(t=>{e[t.name]=(e[t.name]||0)+1}),r.forEach(t=>{e[t.name]>1&&t.group&&(t.name=t.group+": "+t.name)}),r}function oQ(r){return r.art?r.brev?0:7:null}var Ou=/([0#]?)([x$%]|\d'h)([0-9a-f]+)(?:[;].*)?|(\d'b|0b)([01]+)/gim;function kb(r){return r.replace(/(\shex\s+)([0-9a-f]+)/ig,function(e,t,n){for(var i=t,s=0;s<n.length;s+=2)i+="0x"+n.substr(s,2)+",";return i})}function uQ(r){for(var e=[],t;t=Ou.exec(r);){var n;t[4]?n=parseInt(t[5],2):t[2].startsWith("%")?n=parseInt(t[3],2):t[2].startsWith("x")||t[2].startsWith("$")||t[2].endsWith("h")?n=parseInt(t[3],16):n=parseInt(t[3]),e.push(n)}return e}function tX(r,e,t){r=kb(r);for(var n="",i,s=0,o=0,a=Math.ceil(t/4);i=Ou.exec(r);)n+=r.slice(s,Ou.lastIndex-i[0].length),s=Ou.lastIndex,i[4]?n+=i[4]+Ku(e[o++],parseInt(i[4])):i[2].startsWith("%")?n+=i[1]+i[2]+Ku(e[o++],t):i[2].endsWith("h")?n+=i[1]+i[2]+Ce(e[o++],parseInt(i[2])):i[2].startsWith("x")?n+=i[1]+"x"+Ce(e[o++],a):i[2].startsWith("$")?n+=i[1]+"$"+Ce(e[o++],a):n+=i[1]+e[o++].toString();return n+=r.slice(s),n=n.replace(/(\shex\s+)([,x0-9a-f]+)/ig,(l,c,d)=>{var h=c+d;return h=h.replace(/0x/ig,"").replace(/,/ig,""),h}),n}function $b(r,e){if(!e)return r;for(var t=0,n=0;n<e.length;n++){var i=e[n];i<0&&(i=-i-1,t^=1<<i),r&1<<n&&(t^=1<<i)}return t}function Qb(r,e){var t=e[r%e.length];return[t>>3,t&7]}var rX=[[0,0,4],[8,0,0]],nX=[[0,8,12],[8,8,0],[16,8,4],[24,8,8],[32,0,12],[40,0,0],[48,0,4],[56,0,8]];function iX(r,e,t,n,i,s){for(var o=0;o<8;o++)for(var a=r[e+o]||0,l=0;l<4;l++){var c=(3-l)*s+(7-o),d=a>>l&1|(a>>l+4&1)<<1;t[i*s+n+c]=d}}function sX(r,e,t,n,i,s){for(var o=0;o<8;o++){for(var a=0,l=0;l<4;l++){var c=(3-l)*s+(7-o),d=(t[i*s+n+c]||0)&3;d&1&&(a|=1<<l),d&2&&(a|=1<<l+4)}r[e+o]=a}}function Tb(r){return r.w===16&&r.h===16?nX:rX}function fQ(r){return Tb(r).length*8}function oX(r,e){for(var t=e.w,n=e.h,i=e.count||1,s=e.wpimg||fQ(e),o=Tb(e),a=[],l=0;l<i;l++){for(var c=new Array(t*n).fill(0),d=l*s,h=0;h<o.length;h++){var[u,f,m]=o[h];iX(r,d+u,c,f,m,t)}a.push(new Uint8Array(c))}return a}function aX(r,e){for(var t=e.w,n=e.h,i=e.count||r.length,s=e.wpimg||fQ(e),o=Tb(e),a=new Array(s*i).fill(0),l=0;l<i;l++)for(var c=r[l]||new Uint8Array(t*n),d=l*s,h=0;h<o.length;h++){var[u,f,m]=o[h];sX(a,d+u,c,f,m,t)}return a}function lX(r,e){if(e.pacstrip)return oX(r,e);var t=e.w,n=e.h,i=e.count||1,s=e.bpp||1,o=e.np||1,a=e.bpw||8,l=e.sl||Math.ceil(t*s/a),c=(1<<s)-1,d=e.pofs||l*n*i,h=e.skip||0,u=e.wpimg||l*n,f=l;e.il&&(u=l,f=l*i);for(var m=[],g=0;g<i;g++){for(var v=[],k=0;k<n;k++)for(var L=e.flip?n-1-k:k,M=u*g+L*f,D=0,w=0;w<t;w++){var x=0,R=$b(M,e.remap);Line truncated
`&&t++;return t}function gQ(r,e){for(var t=/[/;][*;]([{].+[}])[*;][/;]/g,n=[],i;i=t.exec(r);){var s=i.index+i[0].length,o;e?o=r.indexOf("end",s):i[0].startsWith(";;")?(o=r.indexOf(";;",s),o==r.indexOf(";;{",s)&&(o=-1)):o=r.indexOf(";",s);var a=aQ(r,i.index),l=i[0],c=o>=0?aQ(r,o):"???";if(o<0){var d=e?'"end"':i[0].startsWith(";;")?'";;"':'";"';n.push({header:l,startline:a,endline:c,error:`No closing ${d} found after asset header`})}else if(o<=s)n.push({header:l,startline:a,endline:c,error:"Empty data block after asset header"});else try{var h=i[1].replace(/([A-Za-z]+):/g,'"$1":'),u=JSON.parse(h),f=/#embed\s+"(.+?)"/.exec(r.substring(s,o)),m=f?f[1]:void 0;n.push({header:l,startline:a,endline:c,fmt:u,start:s,end:o,embedFile:m})}catch(g){n.push({header:l,startline:a,endline:c,error:`Invalid asset format: ${g.message}`})}}return n}function bQ(r,e,t){if(t(e))return e;var n=r.lastIndexOf("/");if(n>=0){var i=r.substring(0,n+1)+e;if(t(i))return i}return null}function cX(r,e){if(e.destfmt&&(e=e.destfmt),e.pacstrip)return aX(r,e);var t=e.w,n=e.h,i=e.count||1,s=e.bpp||1,o=e.np||1,a=e.bpw||8,l=e.sl||Math.ceil(e.w*s/a),c=(1<<s)-1,d=e.pofs||l*n*i,h=e.skip||0,u=e.wpimg||l*n,f=l;e.il&&(u=l,f=l*i);var m=e.il?f*n:u*i,g;o>0&&e.sl?g=new Uint8Array(m):a<=8?g=new Uint8Array(m*o):g=new Uint32Array(m*o);for(var v=0;v<i;v++)for(var k=r[v],L=0,M=0;M<n;M++)for(var D=e.flip?n-1-M:M,w=v*u+D*f,x=0,R=0;R<t;R++){var X=k[L++],j=$b(w,e.remap);e.reindex&&([j,x]=Qb(R,e.reindex),j+=w);for(var G=0;G<o;G++){var ie=X>>G*s&c;g[j+G*d+h]|=e.brev?ie<<a-x-s:ie<<x}x+=s,x>=a&&!e.reindex&&(w+=1,x=0)}return g}function lQ(r,e,t,n,i,s,o){for(var a=[],l=0;l<r.length;l++){var c=r[l],d=4278190080;d|=(c>>e&(1<<t)-1)<<8-t,d|=(c>>n&(1<<i)-1)<<16-i,d|=(c>>s&(1<<o)-1)<<24-o,a.push(d)}return a}function dX(r){var e=(r>>0&1)*33+(r>>1&1)*71+(r>>2&1)*151,t=(r>>3&1)*33+(r>>4&1)*71+(r>>5&1)*151,n=(r>>6&1)*81+(r>>7&1)*174;return 4278190080|n<<16|t<<8|e}function hX(r){var e=r.pal;if(typeof e=="number"){var t=Math.floor(Math.abs(e/100)%10),n=Math.floor(Math.abs(e/10)%10),i=Math.floor(Math.abs(e)%10);return 1<<t+n+i}else{if(e==="pacman")return 256;var s=yQ[e];if(s)return s.length;throw new Error("No palette named "+e)}}function Sb(r,e){var t=e.pal,n;if(typeof t=="number"){var i=Math.floor(Math.abs(t/100)%10),s=Math.floor(Math.abs(t/10)%10),o=Math.floor(Math.abs(t)%10);t>=0?n=lQ(r,0,i,i,s,i+s,o):n=lQ(r,i+s,o,i,s,0,i)}else if(t==="pacman"){n=[];for(var a=0;a<r.length;a++)n.push(dX(r[a]))}else{var l=yQ[t];if(l)n=new Uint32Array(r).map(c=>l[c&l.length-1]|4278190080);else throw new Error("No palette named "+t)}return n}function ec(r){var e=r.pal;if(typeof e!="number"||!isFinite(e))return null;var t=Math.floor(Math.abs(e/100)%10),n=Math.floor(Math.abs(e/10)%10),i=Math.floor(Math.abs(e)%10);return t+n+i<=0?null:e>=0?{r:t,g:n,b:i,rshift:0,gshift:t,bshift:t+n}:{r:i,g:n,b:t,rshift:t+n,gshift:t,bshift:0}}function cQ(r,e,t,n){var i=ec(r);return i?(e&(1<<i.r)-1)<<i.rshift|(t&(1<<i.g)-1)<<i.gshift|(n&(1<<i.b)-1)<<i.bshift:0}function uX(r,e){var t=ec(r);return t?{r:e>>t.rshift&(1<<t.r)-1,g:e>>t.gshift&(1<<t.g)-1,b:e>>t.bshift&(1<<t.b)-1}:null}var yQ={gb:[13686916,8890444,5401396,2961698],nes:[5395026,11796480,10485760,11599933,7602281,91,95,6208,12048,543240,26368,1196544,7153664,0,0,0,12899815,16728064,14421538,16729963,14090399,6818519,6588,21681,27227,35843,43776,2918400,10777088,0,0,0,16316664,16755516,16742785,16735173,16730354,14633471,4681215,46327,57599,58229,259115,7911470,15065624,7895160,0,0,16777215,16773822,16300216,16300248,16758527,16761855,13095423,10148607,8973816,8650717,12122296,16119980,16777136,16308472,0,0],ap2lores:[0,16711935,127,8323199,32512,8355711,191,255,12549888,16760576,12566463,16744319,65280,16776960,49023,16777215],vcs:[0,0,4210752,4210752,7105644,7105644,9474192,9474192,11579568,11579568,13158600,13158600,14474460,14474460,16053492,16053492,17476,17476,1074276,1074276,2393220,2393220,3448992,3448992,4241592,4241592,5296336,5296336,6088936,6088936,6880508,6880508,10352,10352,1328260,1328260,2645144,2645144,3963052,3963052,5016764,5016764,6070476,6070476,6862044,6862044,7915756,7915756,6276,6276,1586328,1586328,3166380,3166380,4745408,4745408,6062288,6062288,7378144,7378144,8431852,8431852,9747708,9747708,136,136,2105500,2105500,3947696,3947696,5789888,5789888,7368912,7368912,8947936,8947936,10526956,10526956,11842812,11842812,6029432,6029432,7610508,7610508,8928416,8928416,10246320,10246320,11563200,11563200,12616912,12616912,13671644,13671644,14725356,14725356,7864392,7864392,9445472,9445472,10763384,10763384,12081292,12081292,13398176,13398176,14451892,14451892,15506628,15506628,16560340,16560340,8650772,8650772,9969712,9969712,11287628,11287628,12605544,12605544,13660284,13660284,14715028,14715028,15507624,15507624,16561340,16561340,8912896,8912896,10231836,10231836,11550776,11550776,12606544,12606544,13661288,13661288,14716028,14716028,15508624,15508624,16562340,16562340,8132608,8132608,9451548,9451548,11031608,11031608,12349520,12349520,13404264,134042 Line truncated
`,buttons:{close:{label:"Close",className:"btn-default"}}}).one("shown.bs.modal",()=>{$("#searchboxInput").trigger("focus")});let e=$("#searchboxInput"),t=$("#searchboxResults"),n=[],i=-1,s=d=>{if(i=Math.max(-1,Math.min(d,n.length-1)),t.find("li.search-hit").each((h,u)=>{$(u).toggleClass("active",h===i)}),i>=0){let h=t[0],u=t.find("li.search-hit").eq(i);if(u.length){let f=u[0],m=h.getBoundingClientRect(),g=f.getBoundingClientRect(),v=g.top-m.top;v<0?h.scrollTop+=v:v+g.height>m.height&&(h.scrollTop+=v+g.height-m.height)}}},o=(d=i)=>{let h=n[d];h&&(K5(h),bootbox.hideAll())},a=d=>{if(n=d||[],n.length===0){i=-1,t.html('<div class="text-muted" style="padding:8px">No matches.</div>');return}let h=$('<ul class="list-group" style="margin-bottom:0"></ul>');for(let u of n){let f=u.record,m=f.source,g=f.kind==="func"?"\u0192":f.kind==="macro"?"#":f.kind==="label"?":":f.kind==="struct"?"S":f.kind==="enum"?"E":f.kind==="text"?"\u2261":"\u2022",v=f.source==="debugger"?Ce(f.addr,4):f.file&&f.line?`${f.file}:${f.line}`:f.file||"",k=f.kind!=="text",L=$('<li class="list-group-item search-hit" style="cursor:pointer;padding:6px 10px;display:flex;align-items:center;overflow:hidden"></li>');L.html(`<span class="search-kind" style="margin-right:6px;font-weight:bold;flex:0 0 auto">${g}</span><span class="search-name" style="flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">`+(k?`<strong>${mu(f.name)}</strong>`:`<span class="search-dumb">${mu(f.name)}</span>`)+(f.brief?` <span class="text-muted">- ${mu(f.brief)}</span>`:"")+`</span><span class="search-loc" style="flex:0 0 auto;margin-left:8px;font-style:italic;font-size:small;white-space:nowrap">${v?mu(v):""}</span>`),L.click(()=>{o(n.indexOf(u))}),h.append(L)}t.empty().append(h),s(0)},l=q5(async()=>{let d=e.val();if(!d){n=[],i=-1,t.empty();return}try{let h=await PP.query(d,G5),u=pu(d,P&&P.debugSymbols&&P.debugSymbols.symbolmap);u&&sQ(u,h.length>0)&&h.push(iQ(d,u,ae&&ae.segments)),a(h)}catch(h){t.html('<div class="text-danger" style="padding:8px">Search failed.</div>')}},150);e.on("input",l),e.on("keydown",d=>{d.key==="ArrowDown"?(d.preventDefault(),s(i+1)):d.key==="ArrowUp"?(d.preventDefault(),s(i-1)):d.key==="Enter"?(d.preventDefault(),i>=0?o():l()):d.key==="Home"?(d.preventDefault(),s(0)):d.key==="End"&&(d.preventDefault(),s(n.length-1))});let c=H5();c&&(e.val(c),l())}var J5=800,eX=1e3,tX=16;function hQ(r){var e={};return r.forEach(t=>{e[t.name]=(e[t.name]||0)+1}),r.forEach(t=>{e[t.name]>1&&t.group&&(t.name=t.group+": "+t.name)}),r}function oQ(r){return r.art?r.brev?0:7:null}var Ou=/([0#]?)([x$%]|\d'h)([0-9a-f]+)(?:[;].*)?|(\d'b|0b)([01]+)/gim;function kb(r){return r.replace(/(\shex\s+)([0-9a-f]+)/ig,function(e,t,n){for(var i=t,s=0;s<n.length;s+=2)i+="0x"+n.substr(s,2)+",";return i})}function uQ(r){for(var e=[],t;t=Ou.exec(r);){var n;t[4]?n=parseInt(t[5],2):t[2].startsWith("%")?n=parseInt(t[3],2):t[2].startsWith("x")||t[2].startsWith("$")||t[2].endsWith("h")?n=parseInt(t[3],16):n=parseInt(t[3]),e.push(n)}return e}function rX(r,e,t){r=kb(r);for(var n="",i,s=0,o=0,a=Math.ceil(t/4);i=Ou.exec(r);)n+=r.slice(s,Ou.lastIndex-i[0].length),s=Ou.lastIndex,i[4]?n+=i[4]+Ku(e[o++],parseInt(i[4])):i[2].startsWith("%")?n+=i[1]+i[2]+Ku(e[o++],t):i[2].endsWith("h")?n+=i[1]+i[2]+Ce(e[o++],parseInt(i[2])):i[2].startsWith("x")?n+=i[1]+"x"+Ce(e[o++],a):i[2].startsWith("$")?n+=i[1]+"$"+Ce(e[o++],a):n+=i[1]+e[o++].toString();return n+=r.slice(s),n=n.replace(/(\shex\s+)([,x0-9a-f]+)/ig,(l,c,d)=>{var h=c+d;return h=h.replace(/0x/ig,"").replace(/,/ig,""),h}),n}function $b(r,e){if(!e)return r;for(var t=0,n=0;n<e.length;n++){var i=e[n];i<0&&(i=-i-1,t^=1<<i),r&1<<n&&(t^=1<<i)}return t}function Qb(r,e){var t=e[r%e.length];return[t>>3,t&7]}var nX=[[0,0,4],[8,0,0]],iX=[[0,8,12],[8,8,0],[16,8,4],[24,8,8],[32,0,12],[40,0,0],[48,0,4],[56,0,8]];function sX(r,e,t,n,i,s){for(var o=0;o<8;o++)for(var a=r[e+o]||0,l=0;l<4;l++){var c=(3-l)*s+(7-o),d=a>>l&1|(a>>l+4&1)<<1;t[i*s+n+c]=d}}function oX(r,e,t,n,i,s){for(var o=0;o<8;o++){for(var a=0,l=0;l<4;l++){var c=(3-l)*s+(7-o),d=(t[i*s+n+c]||0)&3;d&1&&(a|=1<<l),d&2&&(a|=1<<l+4)}r[e+o]=a}}function Tb(r){return r.w===16&&r.h===16?iX:nX}function fQ(r){return Tb(r).length*8}function aX(r,e){for(var t=e.w,n=e.h,i=e.count||1,s=e.wpimg||fQ(e),o=Tb(e),a=[],l=0;l<i;l++){for(var c=new Array(t*n).fill(0),d=l*s,h=0;h<o.length;h++){var[u,f,m]=o[h];sX(r,d+u,c,f,m,t)}a.push(new Uint8Array(c))}return a}function lX(r,e){for(var t=e.w,n=e.h,i=e.count||r.length,s=e.wpimg||fQ(e),o=Tb(e),a=new Array(s*i).fill(0),l=0;l<i;l++)for(var c=r[l]||new Uint8Array(t*n),d=l*s,h=0;h<o.length;h++){var[u,f,m]=o[h];oX(a,d+u,c,f,m,t)}return a}function cX(r,e){if(e.pacstrip)return aX(r,e);var t=e.w,n=e.h,i=e.count||1,s=e.bpp||1,o=e.np||1,a=e.bpw||8,l=e.sl||Math.ceil(t*s/a),c=(1<<s)-1,d=e.pofs||l*n*i,h=e.skip||0,u=e.wpimg||l*n,f=l;e.il&&(u=l,f=l*i);for(var m=[],g=0;g<i;g++){for(var v=[],k=0;k<n;k++)for(var L=e.flip?n-1-k:k,M=u*g+L*f,D=0,w=0;w<t;w++){var x=0,R=$b(M,e.remap);Line truncated
`&&t++;return t}function gQ(r,e){for(var t=/[/;][*;]([{].+[}])[*;][/;]/g,n=[],i;i=t.exec(r);){var s=i.index+i[0].length,o;e?o=r.indexOf("end",s):i[0].startsWith(";;")?(o=r.indexOf(";;",s),o==r.indexOf(";;{",s)&&(o=-1)):o=r.indexOf(";",s);var a=aQ(r,i.index),l=i[0],c=o>=0?aQ(r,o):"???";if(o<0){var d=e?'"end"':i[0].startsWith(";;")?'";;"':'";"';n.push({header:l,startline:a,endline:c,error:`No closing ${d} found after asset header`})}else if(o<=s)n.push({header:l,startline:a,endline:c,error:"Empty data block after asset header"});else try{var h=i[1].replace(/([A-Za-z]+):/g,'"$1":'),u=JSON.parse(h),f=/#embed\s+"(.+?)"/.exec(r.substring(s,o)),m=f?f[1]:void 0;n.push({header:l,startline:a,endline:c,fmt:u,start:s,end:o,embedFile:m})}catch(g){n.push({header:l,startline:a,endline:c,error:`Invalid asset format: ${g.message}`})}}return n}function bQ(r,e,t){if(t(e))return e;var n=r.lastIndexOf("/");if(n>=0){var i=r.substring(0,n+1)+e;if(t(i))return i}return null}function dX(r,e){if(e.destfmt&&(e=e.destfmt),e.pacstrip)return lX(r,e);var t=e.w,n=e.h,i=e.count||1,s=e.bpp||1,o=e.np||1,a=e.bpw||8,l=e.sl||Math.ceil(e.w*s/a),c=(1<<s)-1,d=e.pofs||l*n*i,h=e.skip||0,u=e.wpimg||l*n,f=l;e.il&&(u=l,f=l*i);var m=e.il?f*n:u*i,g;o>0&&e.sl?g=new Uint8Array(m):a<=8?g=new Uint8Array(m*o):g=new Uint32Array(m*o);for(var v=0;v<i;v++)for(var k=r[v],L=0,M=0;M<n;M++)for(var D=e.flip?n-1-M:M,w=v*u+D*f,x=0,R=0;R<t;R++){var X=k[L++],j=$b(w,e.remap);e.reindex&&([j,x]=Qb(R,e.reindex),j+=w);for(var G=0;G<o;G++){var ie=X>>G*s&c;g[j+G*d+h]|=e.brev?ie<<a-x-s:ie<<x}x+=s,x>=a&&!e.reindex&&(w+=1,x=0)}return g}function lQ(r,e,t,n,i,s,o){for(var a=[],l=0;l<r.length;l++){var c=r[l],d=4278190080;d|=(c>>e&(1<<t)-1)<<8-t,d|=(c>>n&(1<<i)-1)<<16-i,d|=(c>>s&(1<<o)-1)<<24-o,a.push(d)}return a}function hX(r){var e=(r>>0&1)*33+(r>>1&1)*71+(r>>2&1)*151,t=(r>>3&1)*33+(r>>4&1)*71+(r>>5&1)*151,n=(r>>6&1)*81+(r>>7&1)*174;return 4278190080|n<<16|t<<8|e}function uX(r){var e=r.pal;if(typeof e=="number"){var t=Math.floor(Math.abs(e/100)%10),n=Math.floor(Math.abs(e/10)%10),i=Math.floor(Math.abs(e)%10);return 1<<t+n+i}else{if(e==="pacman")return 256;var s=yQ[e];if(s)return s.length;throw new Error("No palette named "+e)}}function Sb(r,e){var t=e.pal,n;if(typeof t=="number"){var i=Math.floor(Math.abs(t/100)%10),s=Math.floor(Math.abs(t/10)%10),o=Math.floor(Math.abs(t)%10);t>=0?n=lQ(r,0,i,i,s,i+s,o):n=lQ(r,i+s,o,i,s,0,i)}else if(t==="pacman"){n=[];for(var a=0;a<r.length;a++)n.push(hX(r[a]))}else{var l=yQ[t];if(l)n=new Uint32Array(r).map(c=>l[c&l.length-1]|4278190080);else throw new Error("No palette named "+t)}return n}function ec(r){var e=r.pal;if(typeof e!="number"||!isFinite(e))return null;var t=Math.floor(Math.abs(e/100)%10),n=Math.floor(Math.abs(e/10)%10),i=Math.floor(Math.abs(e)%10);return t+n+i<=0?null:e>=0?{r:t,g:n,b:i,rshift:0,gshift:t,bshift:t+n}:{r:i,g:n,b:t,rshift:t+n,gshift:t,bshift:0}}function cQ(r,e,t,n){var i=ec(r);return i?(e&(1<<i.r)-1)<<i.rshift|(t&(1<<i.g)-1)<<i.gshift|(n&(1<<i.b)-1)<<i.bshift:0}function fX(r,e){var t=ec(r);return t?{r:e>>t.rshift&(1<<t.r)-1,g:e>>t.gshift&(1<<t.g)-1,b:e>>t.bshift&(1<<t.b)-1}:null}var yQ={gb:[13686916,8890444,5401396,2961698],nes:[5395026,11796480,10485760,11599933,7602281,91,95,6208,12048,543240,26368,1196544,7153664,0,0,0,12899815,16728064,14421538,16729963,14090399,6818519,6588,21681,27227,35843,43776,2918400,10777088,0,0,0,16316664,16755516,16742785,16735173,16730354,14633471,4681215,46327,57599,58229,259115,7911470,15065624,7895160,0,0,16777215,16773822,16300216,16300248,16758527,16761855,13095423,10148607,8973816,8650717,12122296,16119980,16777136,16308472,0,0],ap2lores:[0,16711935,127,8323199,32512,8355711,191,255,12549888,16760576,12566463,16744319,65280,16776960,49023,16777215],vcs:[0,0,4210752,4210752,7105644,7105644,9474192,9474192,11579568,11579568,13158600,13158600,14474460,14474460,16053492,16053492,17476,17476,1074276,1074276,2393220,2393220,3448992,3448992,4241592,4241592,5296336,5296336,6088936,6088936,6880508,6880508,10352,10352,1328260,1328260,2645144,2645144,3963052,3963052,5016764,5016764,6070476,6070476,6862044,6862044,7915756,7915756,6276,6276,1586328,1586328,3166380,3166380,4745408,4745408,6062288,6062288,7378144,7378144,8431852,8431852,9747708,9747708,136,136,2105500,2105500,3947696,3947696,5789888,5789888,7368912,7368912,8947936,8947936,10526956,10526956,11842812,11842812,6029432,6029432,7610508,7610508,8928416,8928416,10246320,10246320,11563200,11563200,12616912,12616912,13671644,13671644,14725356,14725356,7864392,7864392,9445472,9445472,10763384,10763384,12081292,12081292,13398176,13398176,14451892,14451892,15506628,15506628,16560340,16560340,8650772,8650772,9969712,9969712,11287628,11287628,12605544,12605544,13660284,13660284,14715028,14715028,15507624,15507624,16561340,16561340,8912896,8912896,10231836,10231836,11550776,11550776,12606544,12606544,13661288,13661288,14716028,14716028,15508624,15508624,16562340,16562340,8132608,8132608,9451548,9451548,11031608,11031608,12349520,12349520,13404264,134042 Line truncated
<p>The 8bitworkshop IDE is a browser-based development environment for
micro computers and consoles.
The IDE compiles or assembles your source code
@@ -3646,20 +3646,20 @@ signals), <code>clk</code> and <code>reset</code></li>
<li>For input signals (other than <code>clk</code> or <code>reset</code>) <strong>click</strong> its row to change its
value at the current clock.</li>
</ul>
`;var ez=Ib(),Au=[{id:"index",title:"IDE Help",html:wQ},{id:"editor",title:"Editor",html:PQ},{id:"disasm",title:"Disassembly",html:kQ},{id:"memory",title:"Memory Browser",html:$Q},{id:"memmap",title:"Memory Map",html:QQ},{id:"vram",title:"VRAM Browser",html:TQ},{id:"memprobe",title:"Memory Probe",html:_Q},{id:"crtprobe",title:"CRT Probe",html:AQ},{id:"probelog",title:"Probe Log",html:CQ},{id:"scanlineio",title:"Scanline I/O",html:EQ},{id:"symbols",title:"Symbol Profiler",html:RQ},{id:"callstack",title:"Call Stack",html:MQ},{id:"debugtree",title:"Debug Tree",html:LQ},{id:"breakpoints",title:"Breakpoints",html:DQ},{id:"asseteditor",title:"Asset Editor",html:IQ},{id:"managing-files",title:"Managing Files",html:ZQ},{id:"build-directives",title:"Build Directives",html:XQ},{id:"toolchains",title:"Toolchains & Platforms",html:zQ},{id:"asset-headers",title:"Asset Headers",html:WQ},{id:"embedding-ide",title:"Embedding the IDE",html:BQ},{id:"verilog-waveform",title:"Waveform Viewer",html:VQ}],Zb={};for(let r of Au)Zb[r.id]=r;wP(()=>Au);function Xb(r){let e=r||"";return e.startsWith("#")&&(e=e.substring(1)),e.startsWith("help")&&(e=e.substring(4)),e.startsWith("/")&&(e=e.substring(1)),e.endsWith(".md")&&(e=e.substring(0,e.length-3)),e=e.replace(/^\.\//,""),Zb[e]?e:"index"}function tz(r){return Zb[Xb(r)]}var rz={"#disasm":"disasm","#memory":"memory","#memmap":"memmap","#vram":"vram","#memprobe":"memprobe","#crtprobe":"crtprobe","#probelog":"probelog","#scanlineio":"scanlineio","#symbols":"symbols","#callstack":"callstack","#debugtree":"debugtree","#breakpoints":"breakpoints","#asseteditor":"asseteditor"};function dT(r,e){return e?"editor":r&&rz[r]||"index"}function nz(r){r.querySelectorAll("a[href]").forEach(t=>{let n=t.getAttribute("href");if(!n)return;if(/^[a-z][a-z0-9+.-]*:/i.test(n)){t.setAttribute("target","_blank"),t.setAttribute("rel","noopener noreferrer");return}if(n.startsWith("/")||n.startsWith("#"))return;let i=n.indexOf("#"),s=i>=0?n.substring(0,i):n;s.endsWith(".md")&&(t.setAttribute("href","#help/"+Xb(s)),t.removeAttribute("target"))})}function iz(r,e){let t=tz(e);r.innerHTML=ez.sanitize(t.html),nz(r)}var oc=class{constructor(e){this.id=Xb(e||"index")}getPath(){return"#help/"+this.id}createDiv(e){return this.maindiv=xn(e,"vertical-scroll help-view"),iz(this.maindiv[0],this.id),this.maindiv[0]}refresh(e){}};var ac=256,hT=100,uT=!1,Cu=class r{constructor(e,t){this.expanded=!1;this.parent=e,this.name=t,this.children=new Map,this.level=e?e.level+1:-1,this.view=e?e.view:null}getDiv(){return this._div==null&&(this._div=document.createElement("div"),this._div.classList.add("vertical-scroll"),this._div.classList.add("tree-content"),this._header=document.createElement("div"),this._header.classList.add("tree-header"),this._header.classList.add("tree-level-"+this.level),this._header.append(this.name),this._inline=document.createElement("span"),this._inline.classList.add("tree-value"),this._header.append(this._inline),this._div.append(this._header),this.parent._content.append(this._div),this._header.onclick=e=>{this.toggleExpanded()}),this.expanded&&this._content==null?(this._content=document.createElement("div"),this._div.append(this._content)):!this.expanded&&this._content!=null&&(this._content.remove(),this._content=null,this.children.clear()),this._div}toggleExpanded(){this.expanded=!this.expanded,this.view.tick()}remove(){this._div.remove(),this._div=null}update(e){this.getDiv();var t="";if(e&&e.$$&&typeof e.$$=="function"&&this._content!=null&&(e=e.$$()),e==null)t=e+"";else if(typeof e=="number")e!=(e|0)?t=e.toString():t=e+" ($"+Ce(e)+")";else if(typeof e=="boolean")t=e.toString();else if(typeof e=="string")e.length<hT?t=e:t=e.substring(0,hT)+"...";else if(e.buffer&&e.length<=ac)t=a0(e,0,e.length);else if(typeof e=="object"||typeof e=="function")if(this._content!=null){if(e.slice&&e.length>ac){let l={},c=e;for(var n=ac;e.length/n>ac;)n*=2;for(let d=0;d<c.length;d+=n)l["$"+Ce(d)]={$$:()=>c.slice(d,d+n)};e=l}if(e instanceof Map){let l={};for(let[c,d]of e.entries())l[c]=d;e=l}let o=e instanceof Array?Array.from(e.keys()):Object.getOwnPropertyNames(e);if(o.length>ac){let l={},c=e;for(var n=100;o.length/n>100;)n*=2;for(let h=0;h<o.length;h+=n){for(var i={},s=h;s<h+n;s++)i[o[s]]=c[o[s]];l["["+h+"...]"]=i}e=l,o=Object.getOwnPropertyNames(e)}let a=new Set(this.children.keys());o.forEach(l=>{var c=!uT&&typeof l=="string"&&l.startsWith("$$");if(!c){let d=this.children.get(l);d==null&&(d=new r(this,l),this.children.set(l,d)),d.update(e[l])}a.delete(l)}),a.forEach(l=>{this.children.get(l).remove(),this.children.delete(l)}),this._header.classList.add("tree-expanded"),this._header.classList.remove("tree-collapsed")}else this._header.classList.add("tree-collapsed"),this._header.classList.remove("tree-expanded");else t=typeof e;this._inline.innerText!=t&&(this._inline.innerText=t)}};function fT(r,e){var t=new Cu(null,null);t.view=e,t._content=r;var n=new Cu(t,"/");return n.expanded=!0,n.getDiv(),n._div.style.padding="0px",n} Line truncated
`,await vT(r),de.newfile?!n&&!t?Re('No build tool for "'+r+'" on this platform; project will not build.'):n?$T(!0,!0):ar("No skeleton file for "+t+" on this platform; using blank file."):ar('Could not find file "'+r+'"<br><br>Creating new '+(n?t:"blank")+" file."),delete de.newfile,qu()}}function Hb(r){if(r=="/")de={repo:"/"};else if(r.indexOf("://")>=0){var e=Ql(r);e&&(de={repo:e.repopath})}else de.platform=fe,de.file=r;ro()}async function mz(r){var e=Tf(P.getToolForFilename(r));try{return await $.get("presets/"+ir(fe)+"/skeleton."+e,"text")}catch(t){return console.log(t+""),null}}function Kb(r){return r.indexOf(" ")>=0?(Re("No spaces in filenames, please."),!1):!0}async function Oz(r){var e=ir(fe),t={},n=[];for(var i of r){var s=P.getToolForFilename("test"+i);t[s]||(t[s]=[],n.push(s)),t[s].push(i)}var o=n.map(d=>$.ajax({url:"presets/"+e+"/skeleton."+Tf(d),type:"HEAD"}).then(()=>d,()=>null)),a=await Promise.all(o),l=[];for(var c of a)c!=null&&l.push({tool:c,extensions:t[c]});return l}async function gz(r){var e=await Oz(P.getDefaultExtensions()),t,n;return e.length===0?(t=P.getDefaultExtensions(),n=t.join(" ")):(t=e.reduce((i,s)=>i.concat(s.extensions),[]),n=e.map(i=>i.extensions.join(" ")).join("<br>")),bootbox.prompt({title:"Enter the name of your new main source file.<br><br><span class='dialog-help'>"+n+"</span>",placeholder:"newfile"+t[0],callback:i=>{if(i&&i.trim().length>0){if(!Kb(i))return;i.indexOf(".")<0&&(i+=t[0]);var s=i;de.newfile="1",Hb(s)}}}),!0}function bz(r){let e=$('<input type="file" multiple accept="*" style="display:none">'),t=e[0];e.change(n=>{yz(t.files)}),e.click()}function yz(r){console.log(r);var e=0;function t(){var n=r[e++];if(!n)console.log("Done uploading",e),e>2?(ar("Files uploaded."),setTimeout(pc,1e3)):(de.file=r[0].name,bootbox.confirm({message:"Open '"+Os.sanitize(de.file)+"' as main project file?",buttons:{confirm:{label:"Open As New Project"},cancel:{label:"Include/Link With Project Later"}},callback:o=>{o?ro():setTimeout(pc,1e3)}}));else{var i=n.name,s=new FileReader;s.onload=function(o){var a=o.target.result,l=new Uint8Array(a);Cs(i,l)||(l=bc(l).replace(`\r
`;var tz=Ib(),Au=[{id:"index",title:"IDE Help",html:wQ},{id:"editor",title:"Editor",html:PQ},{id:"disasm",title:"Disassembly",html:kQ},{id:"memory",title:"Memory Browser",html:$Q},{id:"memmap",title:"Memory Map",html:QQ},{id:"vram",title:"VRAM Browser",html:TQ},{id:"memprobe",title:"Memory Probe",html:_Q},{id:"crtprobe",title:"CRT Probe",html:AQ},{id:"probelog",title:"Probe Log",html:CQ},{id:"scanlineio",title:"Scanline I/O",html:EQ},{id:"symbols",title:"Symbol Profiler",html:RQ},{id:"callstack",title:"Call Stack",html:MQ},{id:"debugtree",title:"Debug Tree",html:LQ},{id:"breakpoints",title:"Breakpoints",html:DQ},{id:"asseteditor",title:"Asset Editor",html:IQ},{id:"managing-files",title:"Managing Files",html:ZQ},{id:"build-directives",title:"Build Directives",html:XQ},{id:"toolchains",title:"Toolchains & Platforms",html:zQ},{id:"asset-headers",title:"Asset Headers",html:WQ},{id:"embedding-ide",title:"Embedding the IDE",html:BQ},{id:"verilog-waveform",title:"Waveform Viewer",html:VQ}],Zb={};for(let r of Au)Zb[r.id]=r;wP(()=>Au);function Xb(r){let e=r||"";return e.startsWith("#")&&(e=e.substring(1)),e.startsWith("help")&&(e=e.substring(4)),e.startsWith("/")&&(e=e.substring(1)),e.endsWith(".md")&&(e=e.substring(0,e.length-3)),e=e.replace(/^\.\//,""),Zb[e]?e:"index"}function rz(r){return Zb[Xb(r)]}var nz={"#disasm":"disasm","#memory":"memory","#memmap":"memmap","#vram":"vram","#memprobe":"memprobe","#crtprobe":"crtprobe","#probelog":"probelog","#scanlineio":"scanlineio","#symbols":"symbols","#callstack":"callstack","#debugtree":"debugtree","#breakpoints":"breakpoints","#asseteditor":"asseteditor"};function dT(r,e){return e?"editor":r&&nz[r]||"index"}function iz(r){r.querySelectorAll("a[href]").forEach(t=>{let n=t.getAttribute("href");if(!n)return;if(/^[a-z][a-z0-9+.-]*:/i.test(n)){t.setAttribute("target","_blank"),t.setAttribute("rel","noopener noreferrer");return}if(n.startsWith("/")||n.startsWith("#"))return;let i=n.indexOf("#"),s=i>=0?n.substring(0,i):n;s.endsWith(".md")&&(t.setAttribute("href","#help/"+Xb(s)),t.removeAttribute("target"))})}function sz(r,e){let t=rz(e);r.innerHTML=tz.sanitize(t.html),iz(r)}var oc=class{constructor(e){this.id=Xb(e||"index")}getPath(){return"#help/"+this.id}createDiv(e){return this.maindiv=xn(e,"vertical-scroll help-view"),sz(this.maindiv[0],this.id),this.maindiv[0]}refresh(e){}};var ac=256,hT=100,uT=!1,Cu=class r{constructor(e,t){this.expanded=!1;this.parent=e,this.name=t,this.children=new Map,this.level=e?e.level+1:-1,this.view=e?e.view:null}getDiv(){return this._div==null&&(this._div=document.createElement("div"),this._div.classList.add("vertical-scroll"),this._div.classList.add("tree-content"),this._header=document.createElement("div"),this._header.classList.add("tree-header"),this._header.classList.add("tree-level-"+this.level),this._header.append(this.name),this._inline=document.createElement("span"),this._inline.classList.add("tree-value"),this._header.append(this._inline),this._div.append(this._header),this.parent._content.append(this._div),this._header.onclick=e=>{this.toggleExpanded()}),this.expanded&&this._content==null?(this._content=document.createElement("div"),this._div.append(this._content)):!this.expanded&&this._content!=null&&(this._content.remove(),this._content=null,this.children.clear()),this._div}toggleExpanded(){this.expanded=!this.expanded,this.view.tick()}remove(){this._div.remove(),this._div=null}update(e){this.getDiv();var t="";if(e&&e.$$&&typeof e.$$=="function"&&this._content!=null&&(e=e.$$()),e==null)t=e+"";else if(typeof e=="number")e!=(e|0)?t=e.toString():t=e+" ($"+Ce(e)+")";else if(typeof e=="boolean")t=e.toString();else if(typeof e=="string")e.length<hT?t=e:t=e.substring(0,hT)+"...";else if(e.buffer&&e.length<=ac)t=a0(e,0,e.length);else if(typeof e=="object"||typeof e=="function")if(this._content!=null){if(e.slice&&e.length>ac){let l={},c=e;for(var n=ac;e.length/n>ac;)n*=2;for(let d=0;d<c.length;d+=n)l["$"+Ce(d)]={$$:()=>c.slice(d,d+n)};e=l}if(e instanceof Map){let l={};for(let[c,d]of e.entries())l[c]=d;e=l}let o=e instanceof Array?Array.from(e.keys()):Object.getOwnPropertyNames(e);if(o.length>ac){let l={},c=e;for(var n=100;o.length/n>100;)n*=2;for(let h=0;h<o.length;h+=n){for(var i={},s=h;s<h+n;s++)i[o[s]]=c[o[s]];l["["+h+"...]"]=i}e=l,o=Object.getOwnPropertyNames(e)}let a=new Set(this.children.keys());o.forEach(l=>{var c=!uT&&typeof l=="string"&&l.startsWith("$$");if(!c){let d=this.children.get(l);d==null&&(d=new r(this,l),this.children.set(l,d)),d.update(e[l])}a.delete(l)}),a.forEach(l=>{this.children.get(l).remove(),this.children.delete(l)}),this._header.classList.add("tree-expanded"),this._header.classList.remove("tree-collapsed")}else this._header.classList.add("tree-collapsed"),this._header.classList.remove("tree-expanded");else t=typeof e;this._inline.innerText!=t&&(this._inline.innerText=t)}};function fT(r,e){var t=new Cu(null,null);t.view=e,t._content=r;var n=new Cu(t,"/");return n.expanded=!0,n.getDiv(),n._div.style.padding="0px",n} Line truncated
`,await vT(r),de.newfile?!n&&!t?Re('No build tool for "'+r+'" on this platform; project will not build.'):n?$T(!0,!0):ar("No skeleton file for "+t+" on this platform; using blank file."):ar('Could not find file "'+r+'"<br><br>Creating new '+(n?t:"blank")+" file."),delete de.newfile,qu()}}function Hb(r){if(r=="/")de={repo:"/"};else if(r.indexOf("://")>=0){var e=Ql(r);e&&(de={repo:e.repopath})}else de.platform=fe,de.file=r;ro()}async function Oz(r){var e=Tf(P.getToolForFilename(r));try{return await $.get("presets/"+sr(fe)+"/skeleton."+e,"text")}catch(t){return console.log(t+""),null}}function Kb(r){return r.indexOf(" ")>=0?(Re("No spaces in filenames, please."),!1):!0}async function gz(r){var e=sr(fe),t={},n=[];for(var i of r){var s=P.getToolForFilename("test"+i);t[s]||(t[s]=[],n.push(s)),t[s].push(i)}var o=n.map(d=>$.ajax({url:"presets/"+e+"/skeleton."+Tf(d),type:"HEAD"}).then(()=>d,()=>null)),a=await Promise.all(o),l=[];for(var c of a)c!=null&&l.push({tool:c,extensions:t[c]});return l}async function bz(r){var e=await gz(P.getDefaultExtensions()),t,n;return e.length===0?(t=P.getDefaultExtensions(),n=t.join(" ")):(t=e.reduce((i,s)=>i.concat(s.extensions),[]),n=e.map(i=>i.extensions.join(" ")).join("<br>")),bootbox.prompt({title:"Enter the name of your new main source file.<br><br><span class='dialog-help'>"+n+"</span>",placeholder:"newfile"+t[0],callback:i=>{if(i&&i.trim().length>0){if(!Kb(i))return;i.indexOf(".")<0&&(i+=t[0]);var s=i;de.newfile="1",Hb(s)}}}),!0}function yz(r){let e=$('<input type="file" multiple accept="*" style="display:none">'),t=e[0];e.change(n=>{Sz(t.files)}),e.click()}function Sz(r){console.log(r);var e=0;function t(){var n=r[e++];if(!n)console.log("Done uploading",e),e>2?(ar("Files uploaded."),setTimeout(pc,1e3)):(de.file=r[0].name,bootbox.confirm({message:"Open '"+Os.sanitize(de.file)+"' as main project file?",buttons:{confirm:{label:"Open As New Project"},cancel:{label:"Include/Link With Project Later"}},callback:o=>{o?ro():setTimeout(pc,1e3)}}));else{var i=n.name,s=new FileReader;s.onload=function(o){var a=o.target.result,l=new Uint8Array(a);Cs(i,l)||(l=bc(l).replace(`\r
`,`
`)),F.updateFile(i,l),console.log("Uploaded "+i+" "+l.length+" bytes"),t()},s.readAsArrayBuffer(n)}}r&&t()}async function Sz(r){var e=window.showDirectoryPicker;e||Re("This browser can't open local files on your computer, yet. Try Chrome.");var t=await e(),n=t.name,i="__localfs__"+n,s={handle:t},o=qb.createInstance({name:i,version:2});await o.setItem(i,s),de={localfs:n},ro(!0)}async function vz(r){return new Promise((e,t)=>{bootbox.prompt(Os.sanitize(r),n=>{e(n)})})}async function xz(r){let e={mode:"readwrite"};var t="__localfs__"+r,n=qb.createInstance({name:t,version:2}),i=await n.getItem(t),s=i.handle;console.log(i,s);var o=await s.queryPermission(e);if(console.log(o),o!=="granted"&&(await vz("Request permissions to access filesystem?"),o=await s.requestPermission(e)),o!=="granted"){Re("Could not get permission to access filesystem.");return}let a={};return{getFileData:async l=>{console.log("getFileData",l);let d=await(await s.getFileHandle(l,{create:!1})).getFile(),h=await(Cs(l)?d.arrayBuffer():d.text());return h instanceof ArrayBuffer?new Uint8Array(h):h},setFileData:async(l,c)=>{a[l]=Date.now();let h=await(await s.getFileHandle(l,{create:!0})).createWritable();await h.write(c),await h.close()},onFileSystemUpdate:l=>{if(typeof window.FileSystemObserver=="undefined")return;new window.FileSystemObserver((d,h)=>{for(let u of d)if(u.changedHandle){let f=u.changedHandle.name;if(Date.now()-(a[f]||0)<2e3)continue;l(f)}}).observe(s,{recursive:!0})}}}function kt(){return St(ae.mainPath)}function cP(){return St(F.getActiveID())}function wz(r){var e=F.getActive(),t=F.getActiveID(),n=e&&e.setData&&!e.setText;if(e&&(e.setText||e.setData)){var i="presets/"+ir(fe)+"/"+t;Da(i,s=>{if(s==null){_t?Re("Can only revert built-in examples. If you want to revert all files, You can pull from the repository."):Re("Can only revert built-in examples.");return}bootbox.confirm("Reset '"+Os.sanitize(t)+"' to default?",o=>{o&&(n?(e.setData(s),ae.updateFile(t,s)):e.setText(s))})},n?"arraybuffer":"text")}else Re("Cannot revert the active window. Please choose a text file.")}function Pz(r){var e=F.getActive();if(e&&e.getPath){var t=F.getActiveID();bootbox.confirm("Delete '"+Os.sanitize(t)+"'?",n=>{n&&Pn.removeItem(t).then(()=>{de.file==t?(Zi.unsetLastPreset(),ro()):(pc(),ar("Deleted "+t))})})}else Re("Cannot delete the active window.")}function kz(r){var e=F.getActive();if(e&&e.getPath&&ae.getFile(e.getPath())){var t=F.getActiveID();bootbox.prompt({title:"Rename '"+Os.sanitize(t)+"' to?",value:t,callback:n=>{var i=ae.getFile(e.getPath());if(n&&n!=t&&i){if(!Kb(n))return;Pn.removeItem(t).then(()=>Pn.setItem(n,i)).then(()=>{pc(),alert("Renamed "+t+" to "+n),t==ae.mainPath&&Hb(n)})}}})}else Re("Cannot rename the active window.")}function $z(r){let e={},t,n=P.getPresets?P.getPresets():[];for(var i=0;i<n.length;i++){var s=n[i],o=s.chapter?s.chapter+". "+s.name:s.name,a=s.id==ae.mainPath;s.category?t=$("<optgroup />").attr("label","Examples: "+s.category).appendTo(r):t||(t=$("<optgroup />").attr("label","Examples").appendTo(r)),t.append($("<option />").val(s.id).text(o).attr("selected",a?"selected":null)),a&&(Zu=s),e[s.id]=o}return e}function Qz(r){if(Lr&&!Pa){var e=0,t=Js();if(t){let i=$("<optgroup />").attr("label","Repositories").appendTo(r);for(let s in t){var n=t[s];n.platform_id&&ir(n.platform_id)==ir(fe)&&i.append($("<option />").val(n.url).text(n.url.substring(n.url.indexOf("/"))))}}}}async function xT(r,e,t,n){let i=await Pn.keys();i||(i=[]);let s;for(var o=0;o<i.length;o++){let a=i[o];if(a.startsWith(t)&&!n[a]){s||(s=$("<optgroup />").attr("label",e).appendTo(r));let l=a.substring(t.length);s.append($("<option />").val(a).text(l).attr("selected",a==ae.mainPath?"selected":null))}}}function wT(r){r.css("visibility","visible");var e=ae.mainPath;r.val()!=e&&r.append($("<option />").val(e).text(e).attr("selected","selected"))}async function pc(){var r=$("#preset_select").empty();if(_t)r.append($("<option />").val("/").text("Leave Repository")),$("#repo_name").text(St(_t)+"/").show(),await xT(r,_t,"",{}),wT(r);else{Qz(r);var e=$z(r);await xT(r,"Local Files","",e),wT(r)}r.off("change").change(function(t){Hb($(this).val().toString())})}function Tz(r){var e=$("<p/>");if(r.path!=null){var t=r.line?r.label?`(${r.path} @ ${r.label})`:`(${r.path}:${r.line})`:`(${r.path})`,n=$("<a/>").text(t),i=r.path;i==kt()&&(i=ae.mainPath),F.isWindow(i)&&n.click(s=>{var o=F.createOrShow(i);o instanceof Pr&&o.navigateToLine(r.line)}),e.append(n),e.append("&nbsp;")}return e.append($("<span/>").text(r.msg)),e}function QT(){$("#error_alert").hide(),Gb=!1}function Jb(r,e){var t=$("#error_alert_msg").empty();for(var n of r.slice(0,10))t.append(Tz(n));$("#error_alert").show(),Gb=e;var i=r.find(o=>o.path!=null),s;i&&F.isWindow(i.path==kt()?ae.mainPath:i.path)&&(s=()=>{Cz(i)})}function TT(r,e){if(e!=null){var t={msg:e,line:0};r instanceof rf&&r.$loc&&(t=Object.create(r.$loc),t.msg=e,console.log(t)),Jb([t],!0)}}async function _z(r){if("uppercaseOnly"in r&&H$(r.uppercaseO Line truncated
`)),F.updateFile(i,l),console.log("Uploaded "+i+" "+l.length+" bytes"),t()},s.readAsArrayBuffer(n)}}r&&t()}async function vz(r){var e=window.showDirectoryPicker;e||Re("This browser can't open local files on your computer, yet. Try Chrome.");var t=await e(),n=t.name,i="__localfs__"+n,s={handle:t},o=qb.createInstance({name:i,version:2});await o.setItem(i,s),de={localfs:n},ro(!0)}async function xz(r){return new Promise((e,t)=>{bootbox.prompt(Os.sanitize(r),n=>{e(n)})})}async function wz(r){let e={mode:"readwrite"};var t="__localfs__"+r,n=qb.createInstance({name:t,version:2}),i=await n.getItem(t),s=i.handle;console.log(i,s);var o=await s.queryPermission(e);if(console.log(o),o!=="granted"&&(await xz("Request permissions to access filesystem?"),o=await s.requestPermission(e)),o!=="granted"){Re("Could not get permission to access filesystem.");return}let a={};return{getFileData:async l=>{console.log("getFileData",l);let d=await(await s.getFileHandle(l,{create:!1})).getFile(),h=await(Cs(l)?d.arrayBuffer():d.text());return h instanceof ArrayBuffer?new Uint8Array(h):h},setFileData:async(l,c)=>{a[l]=Date.now();let h=await(await s.getFileHandle(l,{create:!0})).createWritable();await h.write(c),await h.close()},onFileSystemUpdate:l=>{if(typeof window.FileSystemObserver=="undefined")return;new window.FileSystemObserver((d,h)=>{for(let u of d)if(u.changedHandle){let f=u.changedHandle.name;if(Date.now()-(a[f]||0)<2e3)continue;l(f)}}).observe(s,{recursive:!0})}}}function kt(){return St(ae.mainPath)}function cP(){return St(F.getActiveID())}function Pz(r){var e=F.getActive(),t=F.getActiveID(),n=e&&e.setData&&!e.setText;if(e&&(e.setText||e.setData)){var i="presets/"+sr(fe)+"/"+t;Da(i,s=>{if(s==null){_t?Re("Can only revert built-in examples. If you want to revert all files, You can pull from the repository."):Re("Can only revert built-in examples.");return}bootbox.confirm("Reset '"+Os.sanitize(t)+"' to default?",o=>{o&&(n?(e.setData(s),ae.updateFile(t,s)):e.setText(s))})},n?"arraybuffer":"text")}else Re("Cannot revert the active window. Please choose a text file.")}function kz(r){var e=F.getActive();if(e&&e.getPath){var t=F.getActiveID();bootbox.confirm("Delete '"+Os.sanitize(t)+"'?",n=>{n&&Pn.removeItem(t).then(()=>{de.file==t?(Zi.unsetLastPreset(),ro()):(pc(),ar("Deleted "+t))})})}else Re("Cannot delete the active window.")}function $z(r){var e=F.getActive();if(e&&e.getPath&&ae.getFile(e.getPath())){var t=F.getActiveID();bootbox.prompt({title:"Rename '"+Os.sanitize(t)+"' to?",value:t,callback:n=>{var i=ae.getFile(e.getPath());if(n&&n!=t&&i){if(!Kb(n))return;Pn.removeItem(t).then(()=>Pn.setItem(n,i)).then(()=>{pc(),alert("Renamed "+t+" to "+n),t==ae.mainPath&&Hb(n)})}}})}else Re("Cannot rename the active window.")}function Qz(r){let e={},t,n=P.getPresets?P.getPresets():[];for(var i=0;i<n.length;i++){var s=n[i],o=s.chapter?s.chapter+". "+s.name:s.name,a=s.id==ae.mainPath;s.category?t=$("<optgroup />").attr("label","Examples: "+s.category).appendTo(r):t||(t=$("<optgroup />").attr("label","Examples").appendTo(r)),t.append($("<option />").val(s.id).text(o).attr("selected",a?"selected":null)),a&&(Zu=s),e[s.id]=o}return e}function Tz(r){if(Lr&&!Pa){var e=0,t=Js();if(t){let i=$("<optgroup />").attr("label","Repositories").appendTo(r);for(let s in t){var n=t[s];n.platform_id&&sr(n.platform_id)==sr(fe)&&i.append($("<option />").val(n.url).text(n.url.substring(n.url.indexOf("/"))))}}}}async function xT(r,e,t,n){let i=await Pn.keys();i||(i=[]);let s;for(var o=0;o<i.length;o++){let a=i[o];if(a.startsWith(t)&&!n[a]){s||(s=$("<optgroup />").attr("label",e).appendTo(r));let l=a.substring(t.length);s.append($("<option />").val(a).text(l).attr("selected",a==ae.mainPath?"selected":null))}}}function wT(r){r.css("visibility","visible");var e=ae.mainPath;r.val()!=e&&r.append($("<option />").val(e).text(e).attr("selected","selected"))}async function pc(){var r=$("#preset_select").empty();if(_t)r.append($("<option />").val("/").text("Leave Repository")),$("#repo_name").text(St(_t)+"/").show(),await xT(r,_t,"",{}),wT(r);else{Tz(r);var e=Qz(r);await xT(r,"Local Files","",e),wT(r)}r.off("change").change(function(t){Hb($(this).val().toString())})}function _z(r){var e=$("<p/>");if(r.path!=null){var t=r.line?r.label?`(${r.path} @ ${r.label})`:`(${r.path}:${r.line})`:`(${r.path})`,n=$("<a/>").text(t),i=r.path;i==kt()&&(i=ae.mainPath),F.isWindow(i)&&n.click(s=>{var o=F.createOrShow(i);o instanceof Pr&&o.navigateToLine(r.line)}),e.append(n),e.append("&nbsp;")}return e.append($("<span/>").text(r.msg)),e}function QT(){$("#error_alert").hide(),Gb=!1}function Jb(r,e){var t=$("#error_alert_msg").empty();for(var n of r.slice(0,10))t.append(_z(n));$("#error_alert").show(),Gb=e;var i=r.find(o=>o.path!=null),s;i&&F.isWindow(i.path==kt()?ae.mainPath:i.path)&&(s=()=>{Ez(i)})}function TT(r,e){if(e!=null){var t={msg:e,line:0};r instanceof rf&&r.$loc&&(t=Object.create(r.$loc),t.msg=e,console.log(t)),Jb([t],!0)}}async function Az(r){if("uppercaseOnly"in r&&H$(r.uppercaseO Line truncated
`+t(i)+`
`;ae.loadFiles([s]).then(a=>{a&&a.length?Re(i+" already exists; including anyway"):ae.updateFile(s,`
`),n.insertLinesBefore(o),xa()})}}}):Re("Can't insert text in this window -- switch back to main file")}function Fz(){var r=kt(),e=P.getToolForFilename(r);r.endsWith(".c")||e=="sdcc"||e=="cc65"||e=="cmoc"||e=="smlrc"||e=="oscar64"?Fn("Header",".h",t=>'#include "'+t+'"'):e=="dasm"||e=="zmac"?Fn("Include",".inc",t=>' include "'+t+'"'):e=="ca65"||e=="sdasz80"||e=="vasm"||e=="armips"?Fn("Include",".inc",t=>' .include "'+t+'"'):e=="verilator"?Fn("Verilog",".v",t=>'`include "'+t+'"'):e=="wiz"?Fn("Include",".wiz",t=>'import "'+t+'";'):e=="ecs"?Fn("Include",".ecs",t=>'import "'+t+'"'):e=="acme"?Fn("Include",".acme",t=>'!src "'+t+'"'):e=="xa"?Fn("Include",".xa",t=>'#include "'+t+'"'):e=="dialog"?Fn("Include",".dg",t=>'%% #include "'+t+'"'):Re("Can't add include file to this project type ("+e+")")}function Nz(){var r=kt(),e=P.getToolForFilename(r);r.endsWith(".c")||e=="sdcc"||e=="cc65"||e=="cmoc"||e=="smlrc"?Fn("Linked C (or .s)",".c",t=>'//#link "'+t+'"'):r.endsWith("asm")||r.endsWith(".s")||e=="ca65"||e=="lwasm"?Fn("Linked ASM",".inc",t=>';#link "'+t+'"'):Re("Can't add linked file to this project type ("+e+")")}function jz(){if(ft=new Bi($("#toolbar")[0],null),ft.grp.prop("id","run_bar"),ft.add("mod+shift+r","Reset","glyphicon-refresh",YT).prop("id","dbg_reset"),ft.add("mod+shift+h","Pause","glyphicon-pause",MT).prop("id","dbg_pause"),ft.add("mod+shift+g","Go To Address","",r=>{AT()||Vu()}),ft.add("mod+shift+g","Resume","glyphicon-play",Vu).prop("id","dbg_go"),ft.add("F8","Pause/Resume","",LT),ft.add("F1","Help","",qT),P.restartAtPC&&ft.add("mod+shift+a","Restart at Cursor","glyphicon-play-circle",zT).prop("id","dbg_restartatline"),ft.newGroup(),ft.grp.prop("id","debug_bar"),P.runEval&&ft.add("mod+shift+d","Reset and Debug","glyphicon-fast-backward",FT).prop("id","dbg_restart"),P.stepBack&&ft.add("mod+shift+j","Step Backwards","glyphicon-step-backward",VT).prop("id","dbg_stepback"),P.step&&ft.add("mod+shift+l","Single Step","glyphicon-step-forward",DT).prop("id","dbg_step"),P.stepOver&&ft.add("mod+shift+k","Step Over","glyphicon-hand-right",IT).prop("id","dbg_stepover"),P.runUntilReturn&&ft.add("mod+shift+i","Step Out of Subroutine","glyphicon-hand-up",BT).prop("id","dbg_stepout"),P.runToVsync&&ft.add("mod+shift+x","Next Frame/Interrupt","glyphicon-forward",ZT).prop("id","dbg_tovsync"),(P.runEval||P.runToPC)&&!fe.startsWith("verilog")&&ft.add("mod+shift+y","Run To Line","glyphicon-save",WT).prop("id","dbg_toline"),ft.newGroup(),ft.grp.prop("id","xtra_bar"),ft.add("mod+shift+f","Search","glyphicon-search",yb).prop("id","dbg_search"),$(".dropdown-menu").collapse({toggle:!1}),$("#item_new_file").click(gz),$("#item_upload_file").click(bz),$("#item_open_directory").click(Sz),$("#item_github_login").click(dP),$("#item_github_logout").click(hP),$("#item_github_import").click(uP),$("#item_github_publish").click(fP),$("#item_github_push").click(pP),$("#item_github_pull").click(mP),$("#item_repo_delete").click(gP),$("#item_share_file").click(eP),$("#item_reset_file").click(wz),$("#item_rename_file").click(kz),$("#item_delete_file").click(Pz),$("#item_download_rom").click(rP),$("#item_download_file").click(nP),$("#item_download_zip").click(sP),P.getDebugSymbolFile?$("#item_download_sym").click(oP):$("#item_download_sym").hide(),$("#item_download_allzip").click(aP),$("#item_record_video").click(lP),dO()?$("#item_export_cassette").click(tP):$("#item_export_cassette").hide(),P.setFrameRate&&P.getFrameRate&&($("#dbg_slower").click(Zz),$("#dbg_faster").click(Xz),$("#dbg_slowest").click(zz),$("#dbg_fastest").click(Wz)),$("#item_addfile_include").click(Fz),$("#item_addfile_link").click(Nz),$("#item_request_persist").click(()=>$T(!0,!1)),$("#item_settings").click(Zw),NT(),P.newCodeAnalyzer&&ft.add(null,"Analyze CPU Timing","glyphicon-time",Bz),P.startProbing&&ft.add(null,"Highlight Executed Lines","glyphicon-fire",Yz).prop("id","dbg_tracelines"),P.setRecorder&&P.advance&&Gz(),P.showHelp){let{li:r,a:e}=Bu("help__"+fe,uc+" Info");$("#help_menu").append(r),$(e).click(t=>{t.preventDefault(),window.open(P.showHelp(),"_8bws_help")})}qz();{let{li:r}=Bu("#help","IDE Help");$("#help_menu").prepend(r)}$("#item_tool_versions").click(Uz)}function qT(){if(F){var r=_0(),e=F.getActive()instanceof Pr,t=r||dT(F.getActiveID(),e),n="#help/"+t;window.location.hash===n?F.createOrShow(n):window.location.hash=n}}function Uz(){let r=u=>String(u==null?"":u).replace(/[&<>"]/g,f=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[f]),e=(u,f)=>"$"+Ce(u,4).toUpperCase()+(f!=null?"+$"+Ce(f,4).toUpperCase():""),t=Cn[fe]||Cn[ir(fe)]||Cn[cn(fe)],n=t&&t.arch||"\u2014",i=[];t&&(t.rom_start!=null&&i.push("rom "+e(t.rom_start,t.rom_size)),t.code_start!=null&&i.push("code "+e(t.code_start,t.code_size)),t.data_start!=null&&i.push("data "+e(t.data_start,t.data_size)),t.stack_end!=null&&i.push("stack $"+Ce(t.stack_end,4).toUpperCase()));let s=new Set([".a"]);for(let u in Qo)for(let f of Qo[u].extensions||[])s.add(f);let o={},a=[],l=(u,f)=>{u&&(o[u]||(o[u]=[],a.push(u)),f&&Line truncated
`),n.insertLinesBefore(o),xa()})}}}):Re("Can't insert text in this window -- switch back to main file")}function Nz(){var r=kt(),e=P.getToolForFilename(r);r.endsWith(".c")||e=="sdcc"||e=="cc65"||e=="cmoc"||e=="smlrc"||e=="oscar64"?Fn("Header",".h",t=>'#include "'+t+'"'):e=="dasm"||e=="zmac"?Fn("Include",".inc",t=>' include "'+t+'"'):e=="ca65"||e=="sdasz80"||e=="vasm"||e=="armips"?Fn("Include",".inc",t=>' .include "'+t+'"'):e=="verilator"?Fn("Verilog",".v",t=>'`include "'+t+'"'):e=="wiz"?Fn("Include",".wiz",t=>'import "'+t+'";'):e=="ecs"?Fn("Include",".ecs",t=>'import "'+t+'"'):e=="acme"?Fn("Include",".acme",t=>'!src "'+t+'"'):e=="xa"?Fn("Include",".xa",t=>'#include "'+t+'"'):e=="dialog"?Fn("Include",".dg",t=>'%% #include "'+t+'"'):Re("Can't add include file to this project type ("+e+")")}function jz(){var r=kt(),e=P.getToolForFilename(r);r.endsWith(".c")||e=="sdcc"||e=="cc65"||e=="cmoc"||e=="smlrc"?Fn("Linked C (or .s)",".c",t=>'//#link "'+t+'"'):r.endsWith("asm")||r.endsWith(".s")||e=="ca65"||e=="lwasm"?Fn("Linked ASM",".inc",t=>';#link "'+t+'"'):Re("Can't add linked file to this project type ("+e+")")}function Uz(){if(ft=new Bi($("#toolbar")[0],null),ft.grp.prop("id","run_bar"),ft.add("mod+shift+r","Reset","glyphicon-refresh",YT).prop("id","dbg_reset"),ft.add("mod+shift+h","Pause","glyphicon-pause",MT).prop("id","dbg_pause"),ft.add("mod+shift+g","Go To Address","",r=>{AT()||Vu()}),ft.add("mod+shift+g","Resume","glyphicon-play",Vu).prop("id","dbg_go"),ft.add("F8","Pause/Resume","",LT),ft.add("F1","Help","",qT),P.restartAtPC&&ft.add("mod+shift+a","Restart at Cursor","glyphicon-play-circle",zT).prop("id","dbg_restartatline"),ft.newGroup(),ft.grp.prop("id","debug_bar"),P.runEval&&ft.add("mod+shift+d","Reset and Debug","glyphicon-fast-backward",FT).prop("id","dbg_restart"),P.stepBack&&ft.add("mod+shift+j","Step Backwards","glyphicon-step-backward",VT).prop("id","dbg_stepback"),P.step&&ft.add("mod+shift+l","Single Step","glyphicon-step-forward",DT).prop("id","dbg_step"),P.stepOver&&ft.add("mod+shift+k","Step Over","glyphicon-hand-right",IT).prop("id","dbg_stepover"),P.runUntilReturn&&ft.add("mod+shift+i","Step Out of Subroutine","glyphicon-hand-up",BT).prop("id","dbg_stepout"),P.runToVsync&&ft.add("mod+shift+x","Next Frame/Interrupt","glyphicon-forward",ZT).prop("id","dbg_tovsync"),(P.runEval||P.runToPC)&&!fe.startsWith("verilog")&&ft.add("mod+shift+y","Run To Line","glyphicon-save",WT).prop("id","dbg_toline"),ft.newGroup(),ft.grp.prop("id","xtra_bar"),ft.add("mod+shift+f","Search","glyphicon-search",yb).prop("id","dbg_search"),$(".dropdown-menu").collapse({toggle:!1}),$("#item_new_file").click(bz),$("#item_upload_file").click(yz),$("#item_open_directory").click(vz),$("#item_github_login").click(dP),$("#item_github_logout").click(hP),$("#item_github_import").click(uP),$("#item_github_publish").click(fP),$("#item_github_push").click(pP),$("#item_github_pull").click(mP),$("#item_repo_delete").click(gP),$("#item_share_file").click(eP),$("#item_reset_file").click(Pz),$("#item_rename_file").click($z),$("#item_delete_file").click(kz),$("#item_download_rom").click(rP),$("#item_download_file").click(nP),$("#item_download_zip").click(sP),P.getDebugSymbolFile?$("#item_download_sym").click(oP):$("#item_download_sym").hide(),$("#item_download_allzip").click(aP),$("#item_record_video").click(lP),dO()?$("#item_export_cassette").click(tP):$("#item_export_cassette").hide(),P.setFrameRate&&P.getFrameRate&&($("#dbg_slower").click(Xz),$("#dbg_faster").click(zz),$("#dbg_slowest").click(Wz),$("#dbg_fastest").click(Bz)),$("#item_addfile_include").click(Nz),$("#item_addfile_link").click(jz),$("#item_request_persist").click(()=>$T(!0,!1)),$("#item_settings").click(Zw),NT(),P.newCodeAnalyzer&&ft.add(null,"Analyze CPU Timing","glyphicon-time",Vz),P.startProbing&&ft.add(null,"Highlight Executed Lines","glyphicon-fire",Fz).prop("id","dbg_tracelines"),P.setRecorder&&P.advance&&Hz(),P.showHelp){let{li:r,a:e}=Bu("help__"+fe,uc+" Info");$("#help_menu").append(r),$(e).click(t=>{t.preventDefault(),window.open(P.showHelp(),"_8bws_help")})}Gz();{let{li:r}=Bu("#help","IDE Help");$("#help_menu").prepend(r)}$("#item_tool_versions").click(qz)}function qT(){if(F){var r=_0(),e=F.getActive()instanceof Pr,t=r||dT(F.getActiveID(),e),n="#help/"+t;window.location.hash===n?F.createOrShow(n):window.location.hash=n}}function qz(){let r=u=>String(u==null?"":u).replace(/[&<>"]/g,f=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[f]),e=(u,f)=>"$"+Ce(u,4).toUpperCase()+(f!=null?"+$"+Ce(f,4).toUpperCase():""),t=Cn[fe]||Cn[sr(fe)]||Cn[Xr(fe)],n=t&&t.arch||"\u2014",i=[];t&&(t.rom_start!=null&&i.push("rom "+e(t.rom_start,t.rom_size)),t.code_start!=null&&i.push("code "+e(t.code_start,t.code_size)),t.data_start!=null&&i.push("data "+e(t.data_start,t.data_size)),t.stack_end!=null&&i.push("stack $"+Ce(t.stack_end,4).toUpperCase()));let s=new Set([".a"]);for(let u in Qo)for(let f of Qo[u].extensions||[])s.add(f);let o={},a=[],l=(u,f)=>{u&&(o[u]||(o[u]=[],a.push(u)),f&&Line truncated
<table class="help">
<tr><th>Architecture</th><td>${r(n)}</td></tr>
<tr><th>Memory</th><td>${i.length?i.join(" \xB7 "):"\u2014"}</td></tr>
${t&&t.cfgfile?`<tr><th>Linker config</th><td>${r(t.cfgfile)}</td></tr>`:""}
${t&&t.libargs&&t.libargs.length?`<tr><th>Link libraries</th><td>${r(t.libargs.join(" "))}</td></tr>`:""}
${t&&t.define&&t.define.length?`<tr><th>Defines</th><td>${r(t.define.join(" "))}</td></tr>`:""}
</table>`,h=a.map(u=>{let f=or(u),m=f&&f.version||"\u2014",g=f&&f.kind||"\u2014",v=o[u].length?o[u].map(L=>`<code>${r(L)}</code>`).join(" "):"\u2014",k=f&&f.name||u;return`<tr><td>${r(k)}</td><td>${r(g)}</td><td>${r(m)}</td><td>${v}</td></tr>`}).join(`
</table>`,h=a.map(u=>{let f=qt(u),m=f&&f.version||"\u2014",g=f&&f.kind||"\u2014",v=o[u].length?o[u].map(L=>`<code>${r(L)}</code>`).join(" "):"\u2014",k=f&&f.name||u;return`<tr><td>${r(k)}</td><td>${r(g)}</td><td>${r(m)}</td><td>${v}</td></tr>`}).join(`
`);bootbox.dialog({title:"Toolchain Info",onEscape:!0,buttons:{docs:{label:"Full reference",className:"btn-link",callback:()=>{window.location.hash="#help/toolchains"}},ok:{label:"Close",className:"btn-primary"}},message:`
<div class="dialog-scroll">
<h5 class="dialog-title">${r(uc)} <small>${r(fe)}</small></h5>
@@ -3669,9 +3669,9 @@ value at the current clock.</li>
<tr><th>Tool</th><th>Kind</th><th>Version</th><th>Extensions</th></tr>
${h}
</table>
</div>`})}function qz(){let r=P.getToolForFilename(kt());if(!r)return;let e=or(r);if(!e)return;let t=e.version?" ("+e.version+")":"",n=(s,o,a)=>{let{li:l,a:c}=Bu(s,o);$("#help_menu").append(l),$(c).click(d=>{d.preventDefault(),window.open(a,"_8bws_help")})};e.helpURL&&n("help__"+r,e.name+" Help"+t,e.helpURL);let i=ey(r,fe);i&&n("help__"+r+"__"+fe,e.name+" Help for "+uc,i)}function Gz(){var r=$("#replayslider"),e=$("#clockslider"),t=$("#replay_frame"),n=$("#replay_clock");P.advanceFrameClock||$("#clockdiv").hide();var i=()=>{t.text(kr.lastSeekFrame+""),n.text(kr.lastSeekStep+"")},s=l=>{Ii();var c=parseInt(r.val().toString()),d=parseInt(e.val().toString());kr.loadFrame(c,d)>=0&&(e.attr("min",0),e.attr("max",kr.lastStepCount),i(),zu(P.saveState()))},o=l=>{Ii(),kr.loadFrame(l)>=0&&(r.val(l),i(),zu(P.saveState()))},a=l=>{Ii();var c=parseInt(r.val().toString());kr.loadFrame(c,l)>=0&&(e.val(l),i(),zu(P.saveState()))};kr.callbackStateChanged=()=>{r.attr("min",0),r.attr("max",kr.numFrames()),r.val(kr.currentFrame()),e.val(kr.currentStep()),i(),mc(P.saveState())},r.on("input",s),e.on("input",s),$("#replay_min").click(()=>{o(1)}),$("#replay_max").click(()=>{o(kr.numFrames())}),$("#replay_back").click(()=>{o(parseInt(r.val().toString())-1)}),$("#replay_fwd").click(()=>{o(parseInt(r.val().toString())+1)}),$("#clock_back").click(()=>{a(parseInt(e.val().toString())-1)}),$("#clock_fwd").click(()=>{a(parseInt(e.val().toString())+1)}),$("#replay_bar").show(),ft.add("mod+shift+e","Start/Stop Replay Recording","glyphicon-record",Vz).prop("id","dbg_record")}async function Hz(){if(Zi.shouldCompleteTour()){await dn("lib/bootstrap-tourist.js");var r=fe.startsWith("vcs"),e=[{element:"#platformsMenuButton",placement:"right",title:"Platform Selector",content:`You're currently on the "<b>`+fe+'</b>" platform. You can choose a different one from the menu.'},{element:"#preset_select",title:"Project Selector",content:"You can choose different code examples, create your own files, or import projects from GitHub."},{element:"#workspace",title:"Code Editor",content:r?"Type your 6502 assembly code into the editor, and it'll be assembled in real-time.":"Type your source code into the editor, and it'll be compiled in real-time."},{element:"#emulator",placement:"left",title:"Emulator",content:"We'll load your compiled code into the emulator whenever you make changes."},{element:"#debug_bar",placement:"bottom",title:"Debug Tools",content:"Use these buttons to set breakpoints, single step through code, pause/resume, and use debugging tools."},{element:"#dropdownMenuButton",title:"Main Menu",content:"Click the menu to create new files, download your code, or share your work with others."},{element:"#sidebar",title:"Sidebar",content:"Pull right to expose the sidebar. It lets you switch between source files, view assembly listings, and use other tools like Disassembler, Memory Browser, and Asset Editor."}];wo()&&(e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Cookie Consent",content:'Before we start, we should tell you that this website stores persistent data in your browser. Review our <a href="/privacy.html" target="_new">privacy policy</a>.'}),e.push({element:"#booksMenuButton",placement:"left",title:"Books",content:"Get some books that explain how to program all of this stuff, and write some games!"})),Pa&&(e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Developer Analytics",content:"BTW, we send stack traces to sentry.io when exceptions are thrown. Hope that's ok."}),e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Welcome to 8bitworkshop Desktop!",content:'The directory "~/8bitworkshop" contains all of your file edits and built ROM images. You can create new projects under the platform directories (e.g. "c64/myproject")'}));var t=new Tour({autoscroll:!1,steps:e,onEnd:()=>{Zi.completedTour()}});setTimeout(()=>{t.start()},2500)}}function Yu(r){var e=(r.message||r.error||r)+"";if(e.indexOf("QuotaExceededError")>=0)lz();else{var t=r.error||r.reason;t!=null&&t instanceof rf?GT(t):wo()&&ly(e,t,{platform:fe,window:F?F.getActiveID():"",errors:F.lasterrors||[]})}}function GT(r){console.log("haltEmulation"),Ii(),fW(r)}function Kz(){window.addEventListener("error",Yu),window.addEventListener("unhandledrejection",Yu)}function HT(){window.removeEventListener("error",Yu),window.removeEventListener("unhandledrejection",Yu)}function ro(r,e){e&&(de=e),HT(),r?window.location.replace("?"+$.param(de)):window.location.href="?"+$.param(de)}function qu(){fe&&(de.platform=fe),delete de[""],history.replaceState({},"","?"+$.param(de)+window.location.hash)}function KT(r){if(!r||r==="#")return null;var e=decodeURIComponent(r.substring(1));return e.startsWith("asseteditor/")?"#asseteditor":e.startsWith("headerview/")?(Gl(e.substring(11)),"#"+e):F.isWindow("#"+e)?"#"+e:F.isWindow(e)?e:null}function Jz(){function r(){let e=window.location.hash,t=e&&e!=="#"?KT(e):null;if(t)t!==F.getActiveID()&&F.createOrShow(t);else{Line truncated
</div>`})}function Gz(){let r=P.getToolForFilename(kt());if(!r)return;let e=qt(r);if(!e)return;let t=e.version?" ("+e.version+")":"",n=(s,o,a)=>{let{li:l,a:c}=Bu(s,o);$("#help_menu").append(l),$(c).click(d=>{d.preventDefault(),window.open(a,"_8bws_help")})};e.helpURL&&n("help__"+r,e.name+" Help"+t,e.helpURL);let i=ey(r,fe);i&&n("help__"+r+"__"+fe,e.name+" Help for "+uc,i)}function Hz(){var r=$("#replayslider"),e=$("#clockslider"),t=$("#replay_frame"),n=$("#replay_clock");P.advanceFrameClock||$("#clockdiv").hide();var i=()=>{t.text(kr.lastSeekFrame+""),n.text(kr.lastSeekStep+"")},s=l=>{Ii();var c=parseInt(r.val().toString()),d=parseInt(e.val().toString());kr.loadFrame(c,d)>=0&&(e.attr("min",0),e.attr("max",kr.lastStepCount),i(),zu(P.saveState()))},o=l=>{Ii(),kr.loadFrame(l)>=0&&(r.val(l),i(),zu(P.saveState()))},a=l=>{Ii();var c=parseInt(r.val().toString());kr.loadFrame(c,l)>=0&&(e.val(l),i(),zu(P.saveState()))};kr.callbackStateChanged=()=>{r.attr("min",0),r.attr("max",kr.numFrames()),r.val(kr.currentFrame()),e.val(kr.currentStep()),i(),mc(P.saveState())},r.on("input",s),e.on("input",s),$("#replay_min").click(()=>{o(1)}),$("#replay_max").click(()=>{o(kr.numFrames())}),$("#replay_back").click(()=>{o(parseInt(r.val().toString())-1)}),$("#replay_fwd").click(()=>{o(parseInt(r.val().toString())+1)}),$("#clock_back").click(()=>{a(parseInt(e.val().toString())-1)}),$("#clock_fwd").click(()=>{a(parseInt(e.val().toString())+1)}),$("#replay_bar").show(),ft.add("mod+shift+e","Start/Stop Replay Recording","glyphicon-record",Yz).prop("id","dbg_record")}async function Kz(){if(Zi.shouldCompleteTour()){await dn("lib/bootstrap-tourist.js");var r=fe.startsWith("vcs"),e=[{element:"#platformsMenuButton",placement:"right",title:"Platform Selector",content:`You're currently on the "<b>`+fe+'</b>" platform. You can choose a different one from the menu.'},{element:"#preset_select",title:"Project Selector",content:"You can choose different code examples, create your own files, or import projects from GitHub."},{element:"#workspace",title:"Code Editor",content:r?"Type your 6502 assembly code into the editor, and it'll be assembled in real-time.":"Type your source code into the editor, and it'll be compiled in real-time."},{element:"#emulator",placement:"left",title:"Emulator",content:"We'll load your compiled code into the emulator whenever you make changes."},{element:"#debug_bar",placement:"bottom",title:"Debug Tools",content:"Use these buttons to set breakpoints, single step through code, pause/resume, and use debugging tools."},{element:"#dropdownMenuButton",title:"Main Menu",content:"Click the menu to create new files, download your code, or share your work with others."},{element:"#sidebar",title:"Sidebar",content:"Pull right to expose the sidebar. It lets you switch between source files, view assembly listings, and use other tools like Disassembler, Memory Browser, and Asset Editor."}];wo()&&(e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Cookie Consent",content:'Before we start, we should tell you that this website stores persistent data in your browser. Review our <a href="/privacy.html" target="_new">privacy policy</a>.'}),e.push({element:"#booksMenuButton",placement:"left",title:"Books",content:"Get some books that explain how to program all of this stuff, and write some games!"})),Pa&&(e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Developer Analytics",content:"BTW, we send stack traces to sentry.io when exceptions are thrown. Hope that's ok."}),e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Welcome to 8bitworkshop Desktop!",content:'The directory "~/8bitworkshop" contains all of your file edits and built ROM images. You can create new projects under the platform directories (e.g. "c64/myproject")'}));var t=new Tour({autoscroll:!1,steps:e,onEnd:()=>{Zi.completedTour()}});setTimeout(()=>{t.start()},2500)}}function Yu(r){var e=(r.message||r.error||r)+"";if(e.indexOf("QuotaExceededError")>=0)cz();else{var t=r.error||r.reason;t!=null&&t instanceof rf?GT(t):wo()&&ly(e,t,{platform:fe,window:F?F.getActiveID():"",errors:F.lasterrors||[]})}}function GT(r){console.log("haltEmulation"),Ii(),pW(r)}function Jz(){window.addEventListener("error",Yu),window.addEventListener("unhandledrejection",Yu)}function HT(){window.removeEventListener("error",Yu),window.removeEventListener("unhandledrejection",Yu)}function ro(r,e){e&&(de=e),HT(),r?window.location.replace("?"+$.param(de)):window.location.href="?"+$.param(de)}function qu(){fe&&(de.platform=fe),delete de[""],history.replaceState({},"","?"+$.param(de)+window.location.hash)}function KT(r){if(!r||r==="#")return null;var e=decodeURIComponent(r.substring(1));return e.startsWith("asseteditor/")?"#asseteditor":e.startsWith("headerview/")?(Gl(e.substring(11)),"#"+e):F.isWindow("#"+e)?"#"+e:F.isWindow(e)?e:null}function eW(){function r(){let e=window.location.hash,t=e&&e!=="#"?KT(e):null;if(t)t!==F.getActiveID()&&F.createOrShow(t);else{Line truncated
`)>=0?(i.css({display:"inline-block","font-family":"monospace"}),n.split(`
`).forEach((s,o)=>{o&&i.append("<br>"),i.append(document.createTextNode(s))})):i.text(n)}t.append(document.createTextNode(" "+e.action)),r.append(" ")}return r.children().length>0}function nW(){var r=$("#emucontrols");if(rW(r)){fe.endsWith(".mame")&&r.show();var e=$("#emulator").find("canvas");e&&(e.on("focus",()=>{P.isRunning()&&(r.fadeIn(200),P.resume())}),e.on("blur",()=>{r.fadeOut(200)}))}}async function iW(){if(!tf[fe])throw Error("Invalid platform '"+fe+"'.");let r=$("#emuscreen")[0],e=ef(de.options||"");P=new tf[fe](r,e),cW(),kr=new u0(P);let t=P.getPresets?P.getPresets():[];if(!de.file){var n=Zi.getLastPreset(),i=n||(_t?null:t[0].id);de.file=i||"DEFAULT",i||Re("There is no default main file for this project. Try selecting one from the pulldown.")}fe=="vcs"&&de.file.startsWith("examples/")&&!de.file.endsWith(".a")&&(de.file+=".a");var s=window.location.hash;qu(),Kz(),o0(GT),G0(),await P.start(),await Az(),await hz(),await pz(de.file),eW(s),Jz(),P.sourceFileFetch=o=>ae.filedata[o],jz(),!hs&&$("#shortcuts_bar").length&&(S0($("#shortcuts_bar")[0]),w0(Rz),P0(()=>{var o=F.id2div[F.activeid],a=o&&document.activeElement&&o.contains(document.activeElement),l=F.getActive(),c=a&&l&&l.getShortcuts?l.getShortcuts():[];return[...Mz(),...c]}),$(document).on("focusin focusout",()=>zr()),zr(),kc(ra().showStatusBar)),tW(),nW(),er?sW():(pc(),oW(),Hz()),JT()}function sW(){$("#dropdownMenuButton").hide(),$("#platformsMenuButton").hide(),$("#booksMenuButton").hide()}function oW(){cn(fe)=="nes"?$(".book-nes").addClass("book-active"):cn(fe)=="vcs"?$(".book-vcs").addClass("book-active"):cn(fe)=="verilog"?$(".book-verilog").addClass("book-active"):cn(fe)=="c64"?$(".book-c64").addClass("book-active"):P.getToolForFilename(kt())=="sdcc"&&$(".book-arcade").addClass("book-active")}function JT(){setTimeout(()=>{$("#controls_dynamic").css("visibility","inherit")},250)}function aW(r){let e=xo(de.ignore)||er;st(!0),Da(r,async t=>{if(t){var n=St(r);console.log("Importing "+t.length+" bytes as "+n);try{var i=await Pn.getItem(n);st(!1),i!=null&&e||(i==null||confirm("Replace existing file '"+n+"'?"))&&await Pn.setItem(n,t),delete de.importURL,de.file=n,qu(),t_()}finally{st(!1)}}else Re("Could not load source code from URL: "+r),st(!1)},"text")}async function lW(){var r=xo(de.ignore),e=xo(de.force);er?r=!e:e=!1;for(var t=0;t<20;t++){let i=de["file"+t+"_name"],s=de["file"+t+"_data"];if(i==null||s==null)break;var n=await Pn.getItem(i);if(!(r&&n)){let o=s;de["file"+t+"_type"]=="binary"&&(o=Oc(atob(o))),(!n||e||confirm("Replace existing file '"+i+"'?"))&&await Pn.setItem(i,o)}t==0&&(de.file=i),delete de["file"+t+"_name"],delete de["file"+t+"_data"],delete de["file"+t+"_type"]}delete de.ignore,delete de.force,qu()}function cW(){var r=P.getPlatformName&&P.getPlatformName(),e=$('a[href="?platform='+fe+'"]');e.length&&(e.addClass("dropdown-item-checked"),r=r||e.text()||r),uc=r||fe,$(".platform_name").text(uc)}function dW(){if(fe=de.platform||Zi.getLastPlatformID(),_t=de.repo,!de.repo&&!de.file&&(_t=Zi.getLastRepoID(fe)),Lr&&_t&&_t!=="/"){var r=Js()[_t];r&&(console.log(fe,de,r),de.repo=_t,r.platform_id&&!de.platform&&(de.platform=fe=r.platform_id),r.mainPath&&!de.file&&(de.file=r.mainPath))}else _t="",delete de.repo;fe||(er&&cy("The 'platform' must be specified when embed=1"),fe=de.platform="vcs")}async function e_(){if(de.githubURL){Al(de.githubURL,!0);return}if(Lr&&de.repo&&!Js()[de.repo]&&de.repo!=="/"){if(confirm(`Repository '${de.repo}' was not found locally. Import it from GitHub?`)){Al("https://github.com/"+de.repo,!0);return}delete de.repo}if(dW(),bT({getPlatformId:()=>fe,isEmbed:er,hasLocalStorage:Lr,resizePlatform:()=>{P&&P.resize&&P.resize()},resizeWindows:()=>{F&&F.resize()},onTabChanged:r=>{go()&&(r!=="emulator"?P.isRunning()&&(Ii(),Fb=!0):Fb&&(Fb=!1,P.isRunning()||li()))}}),Oo=_t||ir(fe),er&&(Oo=(document.referrer||document.location.href)+Oo),Pn=ch(Oo),de.importURL){aW(de.importURL);return}de.file0_name&&await lW(),t_()}async function t_(){try{var r=await f0(cn(fe));console.log("starting platform",fe),await iW(),F.titlePrefix=document.title+" ["+fe+"] - "+(_t?"["+_t+"] - ":""),F.updateTitle(F.getActiveID()||ae.mainPath)}catch(e){console.log(e),Re('Platform "'+fe+'" failed to load.')}finally{JT()}}var t0="__use_https";function r_(r){document.cookie=t0+"="+r+";domain=8bitworkshop.com;path=/;max-age=315360000"}function hW(){var r=yc(t0);if(typeof r=="string")return!!r;var e=Lr&&!localStorage.getItem("__lastplatform")?1:0;return r_(e),!!e}function uW(){bootbox.confirm('<p>Do you want to force the browser to use HTTPS from now on?</p><p>WARNING: This will make all of your local files unavailable, so you should "Download All Changes" first for each platform where you have done work.</p><p>You can go back to HTTP by setting the "'+t0+'" cookie to 0.</p>',r=>{r&&(r_(1),n_())})}function n_(){window.location.protocol=="http:"&&wo()&&(hW()?(HT(),window.location.replace(window.location.href.replace(/^http:/,"https:"))):$("#item_switch_https").c Line truncated
`).forEach((s,o)=>{o&&i.append("<br>"),i.append(document.createTextNode(s))})):i.text(n)}t.append(document.createTextNode(" "+e.action)),r.append(" ")}return r.children().length>0}function iW(){var r=$("#emucontrols");if(nW(r)){fe.endsWith(".mame")&&r.show();var e=$("#emulator").find("canvas");e&&(e.on("focus",()=>{P.isRunning()&&(r.fadeIn(200),P.resume())}),e.on("blur",()=>{r.fadeOut(200)}))}}async function sW(){if(!tf[fe])throw Error("Invalid platform '"+fe+"'.");let r=$("#emuscreen")[0],e=ef(de.options||"");P=new tf[fe](r,e),dW(),kr=new u0(P);let t=P.getPresets?P.getPresets():[];if(!de.file){var n=Zi.getLastPreset(),i=n||(_t?null:t[0]&&t[0].id);de.file=i||"DEFAULT",i||Re("There is no default main file for this project. Try selecting one from the pulldown.")}fe=="vcs"&&de.file.startsWith("examples/")&&!de.file.endsWith(".a")&&(de.file+=".a");var s=window.location.hash;qu(),Jz(),o0(GT),G0(),await P.start(),await Cz(),await uz(),await mz(de.file),tW(s),eW(),P.sourceFileFetch=o=>ae.filedata[o],Uz(),!hs&&$("#shortcuts_bar").length&&(S0($("#shortcuts_bar")[0]),w0(Mz),P0(()=>{var o=F.id2div[F.activeid],a=o&&document.activeElement&&o.contains(document.activeElement),l=F.getActive(),c=a&&l&&l.getShortcuts?l.getShortcuts():[];return[...Lz(),...c]}),$(document).on("focusin focusout",()=>Wr()),Wr(),kc(ra().showStatusBar)),rW(),iW(),tr?oW():(pc(),aW(),Kz()),JT()}function oW(){$("#dropdownMenuButton").hide(),$("#platformsMenuButton").hide(),$("#booksMenuButton").hide()}function aW(){Xr(fe)=="nes"?$(".book-nes").addClass("book-active"):Xr(fe)=="vcs"?$(".book-vcs").addClass("book-active"):Xr(fe)=="verilog"?$(".book-verilog").addClass("book-active"):Xr(fe)=="c64"?$(".book-c64").addClass("book-active"):P.getToolForFilename(kt())=="sdcc"&&$(".book-arcade").addClass("book-active")}function JT(){setTimeout(()=>{$("#controls_dynamic").css("visibility","inherit")},250)}function lW(r){let e=xo(de.ignore)||tr;st(!0),Da(r,async t=>{if(t){var n=St(r);console.log("Importing "+t.length+" bytes as "+n);try{var i=await Pn.getItem(n);st(!1),i!=null&&e||(i==null||confirm("Replace existing file '"+n+"'?"))&&await Pn.setItem(n,t),delete de.importURL,de.file=n,qu(),t_()}finally{st(!1)}}else Re("Could not load source code from URL: "+r),st(!1)},"text")}async function cW(){var r=xo(de.ignore),e=xo(de.force);tr?r=!e:e=!1;for(var t=0;t<20;t++){let i=de["file"+t+"_name"],s=de["file"+t+"_data"];if(i==null||s==null)break;var n=await Pn.getItem(i);if(!(r&&n)){let o=s;de["file"+t+"_type"]=="binary"&&(o=Oc(atob(o))),(!n||e||confirm("Replace existing file '"+i+"'?"))&&await Pn.setItem(i,o)}t==0&&(de.file=i),delete de["file"+t+"_name"],delete de["file"+t+"_data"],delete de["file"+t+"_type"]}delete de.ignore,delete de.force,qu()}function dW(){var r=P.getPlatformName&&P.getPlatformName(),e=$('a[href="?platform='+fe+'"]');e.length&&(e.addClass("dropdown-item-checked"),r=r||e.text()||r),uc=r||fe,$(".platform_name").text(uc)}function hW(){if(fe=de.platform||Zi.getLastPlatformID(),_t=de.repo,!de.repo&&!de.file&&(_t=Zi.getLastRepoID(fe)),Lr&&_t&&_t!=="/"){var r=Js()[_t];r&&(console.log(fe,de,r),de.repo=_t,r.platform_id&&!de.platform&&(de.platform=fe=r.platform_id),r.mainPath&&!de.file&&(de.file=r.mainPath))}else _t="",delete de.repo;fe||(tr&&cy("The 'platform' must be specified when embed=1"),fe=de.platform="vcs")}async function e_(){if(de.githubURL){Al(de.githubURL,!0);return}if(Lr&&de.repo&&!Js()[de.repo]&&de.repo!=="/"){if(confirm(`Repository '${de.repo}' was not found locally. Import it from GitHub?`)){Al("https://github.com/"+de.repo,!0);return}delete de.repo}if(hW(),bT({getPlatformId:()=>fe,isEmbed:tr,hasLocalStorage:Lr,resizePlatform:()=>{P&&P.resize&&P.resize()},resizeWindows:()=>{F&&F.resize()},onTabChanged:r=>{go()&&(r!=="emulator"?P.isRunning()&&(Ii(),Fb=!0):Fb&&(Fb=!1,P.isRunning()||li()))}}),Oo=_t||sr(fe),tr&&(Oo=(document.referrer||document.location.href)+Oo),Pn=ch(Oo),de.importURL){lW(de.importURL);return}de.file0_name&&await cW(),t_()}async function t_(){try{var r=await f0(Xr(fe));console.log("starting platform",fe),await sW(),F.titlePrefix=document.title+" ["+fe+"] - "+(_t?"["+_t+"] - ":""),F.updateTitle(F.getActiveID()||ae.mainPath)}catch(e){console.log(e),Re('Platform "'+fe+'" failed to load.')}finally{JT()}}var t0="__use_https";function r_(r){document.cookie=t0+"="+r+";domain=8bitworkshop.com;path=/;max-age=315360000"}function uW(){var r=yc(t0);if(typeof r=="string")return!!r;var e=Lr&&!localStorage.getItem("__lastplatform")?1:0;return r_(e),!!e}function fW(){bootbox.confirm('<p>Do you want to force the browser to use HTTPS from now on?</p><p>WARNING: This will make all of your local files unavailable, so you should "Download All Changes" first for each platform where you have done work.</p><p>You can go back to HTTP by setting the "'+t0+'" cookie to 0.</p>',r=>{r&&(r_(1),n_())})}function n_(){window.location.protocol=="http:"&&wo()&&(uW()?(HT(),window.location.replace(window.location.href.replace(/^http:/,"https:"))):$("#item_switch_htt Line truncated
/*! Bundled license information:
localforage/dist/localforage.js:
+3 -3
View File
@@ -1,7 +1,7 @@
{
"version": 3,
"sources": ["../node_modules/localforage/dist/localforage.js", "../node_modules/split.js/dist/split.js", "../node_modules/dompurify/src/utils.ts", "../node_modules/dompurify/src/tags.ts", "../node_modules/dompurify/src/attrs.ts", "../node_modules/dompurify/src/regexp.ts", "../node_modules/dompurify/src/purify.ts", "../src/ide/ui.ts", "../src/common/controls.ts", "../src/ide/keys.ts", "../src/ide/shortcutbar.ts", "../src/ide/toolbar.ts", "../src/ide/helptopics.ts", "../src/common/vlist.ts", "../node_modules/dompurify/src/utils.ts", "../node_modules/dompurify/src/tags.ts", "../node_modules/dompurify/src/attrs.ts", "../node_modules/dompurify/src/regexp.ts", "../node_modules/dompurify/src/purify.ts", "../src/ide/waveform.ts", "../src/ide/hdlhost.ts", "../src/common/toolmeta.ts", "../src/worker/platforms.ts", "../src/ide/errorreport.ts", "../src/ide/dialogs.ts", "../node_modules/@marijn/find-cluster-break/src/index.js", "../node_modules/@codemirror/state/dist/index.js", "../node_modules/style-mod/src/style-mod.js", "../node_modules/w3c-keyname/index.js", "../node_modules/crelt/index.js", "../node_modules/@codemirror/view/dist/index.js", "../node_modules/@lezer/common/dist/index.js", "../node_modules/@lezer/highlight/dist/index.js", "../node_modules/@codemirror/language/dist/index.js", "../node_modules/@codemirror/autocomplete/dist/index.js", "../src/ide/views/debug.ts", "../node_modules/@codemirror/commands/dist/index.js", "../src/ide/views/tabs.ts", "../src/ide/settings.ts", "../src/ide/storage.ts", "../src/ide/project.ts", "../src/common/workertypes.ts", "../src/common/projectcore.ts", "../src/ide/services.ts", "../src/common/audio/CommodoreTape.ts", "../src/ide/shareexport.ts", "../src/ide/sync.ts", "../src/ide/search/symbolindex.ts", "../src/common/symbols/index.ts", "../src/ide/search/projectsource.ts", "../src/ide/search/toolchainsource.ts", "../src/ide/search/docssource.ts", "../src/ide/search/service.ts", "../node_modules/@codemirror/search/dist/index.js", "../node_modules/@lezer/lr/dist/index.js", "../node_modules/@fazelstudio/codemirror-lang-c/dist/highlight.js", "../node_modules/@fazelstudio/codemirror-lang-c/dist/parser.js", "../node_modules/@fazelstudio/codemirror-lang-c/dist/index.js", "../src/parser/lang-c.ts", "../src/parser/asmkeywords.ts", "../src/parser/tokens-6502.ts", "parser/lang-6502.grammar.js", "../src/parser/lang-6502.ts", "../src/parser/tokens-z80.ts", "parser/lang-z80.grammar.js", "../src/parser/lang-z80.ts", "../src/parser/lang-wiz.ts", "../src/parser/lang-verilog.ts", "../src/parser/lang-inform6.ts", "../src/parser/lang-dialog.ts", "../src/parser/lang-basic.ts", "../src/parser/lang-fastbasic.ts", "../src/parser/lang-bataribasic.ts", "../node_modules/@lezer/markdown/dist/index.js", "../node_modules/@lezer/html/dist/index.js", "../node_modules/@lezer/css/dist/index.js", "../node_modules/@codemirror/lang-css/dist/index.js", "../node_modules/@lezer/javascript/dist/index.js", "../node_modules/@codemirror/lang-javascript/dist/index.js", "../node_modules/@codemirror/lang-html/dist/index.js", "../node_modules/@codemirror/lang-markdown/dist/index.js", "../src/parser/registry.ts", "../src/themes/cobalt.ts", "../src/themes/disassemblyTheme.ts", "../src/themes/editorTheme.ts", "../src/themes/mbo.ts", "../src/common/breakcond.ts", "../src/common/symbols/symbolfile.ts", "../src/common/breakpoints.ts", "../src/ide/breakpoints.ts", "../src/ide/views/assetdecorations.ts", "../src/ide/views/includedecorations.ts", "../src/ide/views/baseviews.ts", "../src/ide/views/filters.ts", "../src/ide/views/gutter.ts", "../src/ide/views/visuals.ts", "../src/ide/views/editors.ts", "../src/common/vtextscroller.ts", "../src/ide/views/memmaplayout.ts", "../src/ide/views/debugviews.ts", "../src/ide/search/debuggerhit.ts", "../src/ide/search/searchview.ts", "../src/ide/pixeleditor.ts", "../src/ide/views/asseteditor.ts", "../src/docs/index.md", "../src/docs/editor.md", "../src/docs/disasm.md", "../src/docs/memory.md", "../src/docs/memmap.md", "../src/docs/vram.md", "../src/docs/memprobe.md", "../src/docs/crtprobe.md", "../src/docs/probelog.md", "../src/docs/scanlineio.md", "../src/docs/symbols.md", "../src/docs/callstack.md", "../src/docs/debugtree.md", "../src/docs/breakpoints.md", "../src/docs/asseteditor.md", "../src/docs/managing-files.md", "../src/docs/build-directives.md", "../src/docs/toolchains.md", "../src/docs/asset-headers.md", "../src/docs/embedding-ide.md", "../src/docs/verilog-waveform.md", "../src/ide/views/helpview.ts", "../src/ide/views/treeviews.ts", "../src/ide/windows.ts", "../src/ide/layout.ts", "../src/ide/search/listinglocation.ts"],
"sourcesContent": ["/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callLine truncated
"mappings": "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 truncated
"names": ["require_localforage", "__commonJSMin", "exports", "module", "f", "g", "define", "e", "t", "n", "r", "s", "o", "u", "a", "__require", "i", "l", "_dereq_", "global", "Mutation", "scheduleDrain", "called", "observer", "nextTick", "element", "channel", "scriptEl", "draining", "queue", "oldQueue", "len", "immediate", "task", "INTERNAL", "handlers", "REJECTED", "FULFILLED", "PENDING", "Promise", "resolver", "safelyResolveThenable", "onRejected", "onFulfilled", "promise", "unwrap", "QueueItem", "value", "func", "returnValue", "self", "result", "tryCatch", "getThen", "thenable", "error", "obj", "then", "onError", "onSuccess", "tryToUnwrap", "out", "resolve", "reject", "reason", "all", "iterable", "values", "resolved", "allResolver", "resolveFromAll", "outValue", "race", "response", "_typeof", "_classCallCheck", "instance", "Constructor", "getIDB", "idb", "isIndexedDBValid", "isSafari", "hasFetch", "createBlob", "parts", "properties", "Builder", "builder", "Promise$1", "executeCallback", "callback", "executeTwoCallbacks", "errorCallback", "normalizeKey", "key", "getCallback", "DETECT_BLOB_SUPPORT_STORE", "supportsBlobs", "dbContexts", "toString", "READ_ONLY", "READ_WRITE", "_binStringToArrayBuffer", "bin", "length", "buf", "arr", "_checkBlobSupportWithoutCaching", "txn", "blob", "matchedChrome", "matchedEdge", "_checkBlobSupport", "_deferReadiness", "dbInfo", "dbContext", "deferredOperation", "_advanceReadiness", "_rejectReadiness", "err", "_getConnection", "upgradeNeeded", "createDbContext", "dbArgs", "openreq", "db", "ex", "_getOriginalConnection", "_getUpgradedConnection", "_isUpgradeNeeded", "defaultVersion", "isNewStore", "isDowngrade", "isUpgrade", "incVersion", "_encodeBlob", "reader", "base64", "_decodeBlob", "encodedBlob", "arrayBuff", "_isEncodedBlob", "_fullyReady", "_tryReconnect", "forages", "forage", "createTransaction", "mode", "retries", "tx", "_initStorage", "options", "initPromises", "ignoreErrors", "j", "k", "getItem", "transaction", "store", "req", "iterate", "iterator", "iterationNumber", "cursor", "setItem", "blobSupport", "removeItem", "clear", "advanced", "keys", "dropInstance", "currentConfig", "isCurrentDb", "dbPromise", "newVersion", "dropObjectPromise", "_forage2", "dropDBPromise", "_forage", "asyncStorage", "isWebSQLValid", "BASE_CHARS", "BLOB_TYPE_PREFIX", "BLOB_TYPE_PREFIX_REGEX", "SERIALIZED_MARKER", "SERIALIZED_MARKER_LENGTH", "TYPE_ARRAYBUFFER", "TYPE_BLOB", "TYPE_INT8ARRAY", "TYPE_UINT8ARRAY", "TYPE_UINT8CLAMPEDARRAY", "TYPE_INT16ARRAY", "TYPE_INT32ARRAY", "TYPE_UINT16ARRAY", "TYPE_UINT32ARRAY", "TYPE_FLOAT32ARRAY", "TYPE_FLOAT64ARRAY", "TYPE_SERIALIZED_MARKER_LENGTH", "toString$1", "stringToBuffer", "serializedString", "bufferLength", "p", "encoded1", "encoded2", "encoded3", "encoded4", "buffer", "bytes", "bufferToString", "base64String", "serialize", "valueType", "marker", "fileReader", "str", "deserialize", "type", "blobType", "matcher", "localforageSerializer", "createDbTable", "_initStorage$1", "dbInfoPromise", "tryExecuteSql", "sqlStatement", "args", "results", "getItem$1", "iterate$1", "rows", "item", "_setItem", "retriesLeft", "originalValue", "sqlError", "setItem$1", "removeItem$1", "clear$1", "length$1", "key$1", "keys$1", "getAllStoreNames", "storeNames", "dropInstance$1", "operationInfo", "dropTable", "storeName", "operations", "webSQLStorage", "isLocalStorageValid", "_getKeyPrefix", "defaultConfig", "keyPrefix", "checkIfLocalStorageThrows", "localStorageTestKey", "_isLocalStorageUsable", "_initStorage$2", "clear$2", "getItem$2", "iterate$2", "keyPrefixLength", "key$2", "keys$2", "itemKey", "length$2", "removeItem$2", "setItem$2", "dropInstance$2", "localStorageWrapper", "sameValue", "x", "y", "includes", "array", "searchElement", "isArray", "arg", "DefinedDrivers", "DriverSupport", "DefaultDrivers", "DefaultDriverOrder", "OptionalDriverMethods", "LibraryMethods", "DefaultConfig", "callWhenReady", "localForageInstance", "libraryMethod", "_args", "extend", "_key", "LocalForage", "driverTypeKey", "driver", "driverName", "driverObject", "complianceError", "driverMethods", "driverMethodName", "isRequired", "configureMissingMethods", "methodNotImplementedFactory", "methodName", "_i", "_len", "optionalDriverMethod", "setDriverSupport", "support", "getDriverPromise", "serializerPromise", "drivers", "supportedDrivers", "setDriverToConfig", "extendSelfWithDriver", "initDriver", "currentDriverIndex", "driverPromiseLoop", "oldDriverSetDone", "libraryMethodsAndProperties", "localforage_js", "require_split", "__commonJSMin", "exports", "module", "global", "factory", "ssr", "document", "addEventListener", "removeEventListener", "getBoundingClientRect", "gutterStartDragging", "aGutterSize", "bGutterSize", "HORIZONTAL", "NOOP", "calc", "prefix", "el", "isString", "v", "elementOrSelector", "ele", "getOption", "options", "propName", "def", "value", "getGutterSize", "gutterSize", "isFirst", "isLast", "gutterAlign", "defaultGutterFn", "i", "gutterDirection", "gut", "defaultElLine truncated
"sourcesContent": ["/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callLine truncated
"mappings": "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 truncated
"names": ["require_localforage", "__commonJSMin", "exports", "module", "f", "g", "define", "e", "t", "n", "r", "s", "o", "u", "a", "__require", "i", "l", "_dereq_", "global", "Mutation", "scheduleDrain", "called", "observer", "nextTick", "element", "channel", "scriptEl", "draining", "queue", "oldQueue", "len", "immediate", "task", "INTERNAL", "handlers", "REJECTED", "FULFILLED", "PENDING", "Promise", "resolver", "safelyResolveThenable", "onRejected", "onFulfilled", "promise", "unwrap", "QueueItem", "value", "func", "returnValue", "self", "result", "tryCatch", "getThen", "thenable", "error", "obj", "then", "onError", "onSuccess", "tryToUnwrap", "out", "resolve", "reject", "reason", "all", "iterable", "values", "resolved", "allResolver", "resolveFromAll", "outValue", "race", "response", "_typeof", "_classCallCheck", "instance", "Constructor", "getIDB", "idb", "isIndexedDBValid", "isSafari", "hasFetch", "createBlob", "parts", "properties", "Builder", "builder", "Promise$1", "executeCallback", "callback", "executeTwoCallbacks", "errorCallback", "normalizeKey", "key", "getCallback", "DETECT_BLOB_SUPPORT_STORE", "supportsBlobs", "dbContexts", "toString", "READ_ONLY", "READ_WRITE", "_binStringToArrayBuffer", "bin", "length", "buf", "arr", "_checkBlobSupportWithoutCaching", "txn", "blob", "matchedChrome", "matchedEdge", "_checkBlobSupport", "_deferReadiness", "dbInfo", "dbContext", "deferredOperation", "_advanceReadiness", "_rejectReadiness", "err", "_getConnection", "upgradeNeeded", "createDbContext", "dbArgs", "openreq", "db", "ex", "_getOriginalConnection", "_getUpgradedConnection", "_isUpgradeNeeded", "defaultVersion", "isNewStore", "isDowngrade", "isUpgrade", "incVersion", "_encodeBlob", "reader", "base64", "_decodeBlob", "encodedBlob", "arrayBuff", "_isEncodedBlob", "_fullyReady", "_tryReconnect", "forages", "forage", "createTransaction", "mode", "retries", "tx", "_initStorage", "options", "initPromises", "ignoreErrors", "j", "k", "getItem", "transaction", "store", "req", "iterate", "iterator", "iterationNumber", "cursor", "setItem", "blobSupport", "removeItem", "clear", "advanced", "keys", "dropInstance", "currentConfig", "isCurrentDb", "dbPromise", "newVersion", "dropObjectPromise", "_forage2", "dropDBPromise", "_forage", "asyncStorage", "isWebSQLValid", "BASE_CHARS", "BLOB_TYPE_PREFIX", "BLOB_TYPE_PREFIX_REGEX", "SERIALIZED_MARKER", "SERIALIZED_MARKER_LENGTH", "TYPE_ARRAYBUFFER", "TYPE_BLOB", "TYPE_INT8ARRAY", "TYPE_UINT8ARRAY", "TYPE_UINT8CLAMPEDARRAY", "TYPE_INT16ARRAY", "TYPE_INT32ARRAY", "TYPE_UINT16ARRAY", "TYPE_UINT32ARRAY", "TYPE_FLOAT32ARRAY", "TYPE_FLOAT64ARRAY", "TYPE_SERIALIZED_MARKER_LENGTH", "toString$1", "stringToBuffer", "serializedString", "bufferLength", "p", "encoded1", "encoded2", "encoded3", "encoded4", "buffer", "bytes", "bufferToString", "base64String", "serialize", "valueType", "marker", "fileReader", "str", "deserialize", "type", "blobType", "matcher", "localforageSerializer", "createDbTable", "_initStorage$1", "dbInfoPromise", "tryExecuteSql", "sqlStatement", "args", "results", "getItem$1", "iterate$1", "rows", "item", "_setItem", "retriesLeft", "originalValue", "sqlError", "setItem$1", "removeItem$1", "clear$1", "length$1", "key$1", "keys$1", "getAllStoreNames", "storeNames", "dropInstance$1", "operationInfo", "dropTable", "storeName", "operations", "webSQLStorage", "isLocalStorageValid", "_getKeyPrefix", "defaultConfig", "keyPrefix", "checkIfLocalStorageThrows", "localStorageTestKey", "_isLocalStorageUsable", "_initStorage$2", "clear$2", "getItem$2", "iterate$2", "keyPrefixLength", "key$2", "keys$2", "itemKey", "length$2", "removeItem$2", "setItem$2", "dropInstance$2", "localStorageWrapper", "sameValue", "x", "y", "includes", "array", "searchElement", "isArray", "arg", "DefinedDrivers", "DriverSupport", "DefaultDrivers", "DefaultDriverOrder", "OptionalDriverMethods", "LibraryMethods", "DefaultConfig", "callWhenReady", "localForageInstance", "libraryMethod", "_args", "extend", "_key", "LocalForage", "driverTypeKey", "driver", "driverName", "driverObject", "complianceError", "driverMethods", "driverMethodName", "isRequired", "configureMissingMethods", "methodNotImplementedFactory", "methodName", "_i", "_len", "optionalDriverMethod", "setDriverSupport", "support", "getDriverPromise", "serializerPromise", "drivers", "supportedDrivers", "setDriverToConfig", "extendSelfWithDriver", "initDriver", "currentDriverIndex", "driverPromiseLoop", "oldDriverSetDone", "libraryMethodsAndProperties", "localforage_js", "require_split", "__commonJSMin", "exports", "module", "global", "factory", "ssr", "document", "addEventListener", "removeEventListener", "getBoundingClientRect", "gutterStartDragging", "aGutterSize", "bGutterSize", "HORIZONTAL", "NOOP", "calc", "prefix", "el", "isString", "v", "elementOrSelector", "ele", "getOption", "options", "propName", "def", "value", "getGutterSize", "gutterSize", "isFirst", "isLast", "gutterAlign", "defaultGutterFn", "i", "gutterDirection", "gut", "defaultElLine truncated
}
+120 -114
View File
@@ -2575,18 +2575,18 @@
var DIALOG_INCLUDE_PATTERNS = [
/^\s*%%\s*#include\s+"(.+?)"/gm
];
var CC65_PRELOADFS = {
"apple2": { preloadFS: "65-apple2" },
"c64": { preloadFS: "65-c64" },
"vic20": { preloadFS: "65-vic20" },
"nes": { preloadFS: "65-nes" },
"atari8": { preloadFS: "65-atari8" },
"vector": { preloadFS: "65-none" },
"atari7800": { preloadFS: "65-none" },
"devel": { preloadFS: "65-none" },
"vcs": { preloadFS: "65-atari2600" },
"pce": { preloadFS: "65-pce" },
"exidy": { preloadFS: "65-none" }
var CC65_WASIFS = {
"apple2": { wasiFSZip: "cc65-fs-apple2.zip" },
"c64": { wasiFSZip: "cc65-fs-c64.zip" },
"vic20": { wasiFSZip: "cc65-fs-vic20.zip" },
"nes": { wasiFSZip: "cc65-fs-nes.zip" },
"atari8": { wasiFSZip: "cc65-fs-atari8.zip" },
"vector": { wasiFSZip: "cc65-fs-none.zip" },
"atari7800": { wasiFSZip: "cc65-fs-none.zip" },
"devel": { wasiFSZip: "cc65-fs-none.zip" },
"vcs": { wasiFSZip: "cc65-fs-atari2600.zip" },
"pce": { wasiFSZip: "cc65-fs-pce.zip" },
"exidy": { wasiFSZip: "cc65-fs-none.zip" }
};
var TOOL_META = {
// ---- 6502 assemblers ----
@@ -2662,14 +2662,14 @@
kind: "compiler",
arch: "6502",
extensions: [".c", ".h"],
includeDirs: ["/include", "/asminc"],
includeDirs: ["/share/cc65/include", "/share/cc65/asminc"],
editorStyle: "text/x-csrc",
helpURL: "https://cc65.github.io/doc/cc65.html",
wasmModule: "cc65",
version: "2.19",
defineFlag: "-D",
defineInline: true,
platforms: CC65_PRELOADFS,
platforms: CC65_WASIFS,
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS
},
@@ -2679,14 +2679,14 @@
kind: "assembler",
arch: "6502",
extensions: [".s", ".ca65", ".inc"],
includeDirs: ["/include", "/asminc"],
includeDirs: ["/share/cc65/include", "/share/cc65/asminc"],
editorStyle: "6502",
helpURL: "https://cc65.github.io/doc/ca65.html",
wasmModule: "ca65",
version: "2.19",
defineFlag: "-D",
defineInline: false,
platforms: CC65_PRELOADFS,
platforms: CC65_WASIFS,
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS
},
@@ -2979,7 +2979,7 @@
helpURL: "https://github.com/dmsc/fastbasic/blob/v4.4/manual.md",
wasmModule: "fastbasic-int",
version: "4.4",
platforms: { default: { preloadFS: "65-atari8" } },
platforms: { default: { wasiFSZip: "cc65-fs-atari8.zip" } },
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS
},
@@ -3042,9 +3042,9 @@
extensions: [".ecs"],
editorStyle: "ecs",
platforms: {
vcs: { preloadFS: "65-atari2600" },
nes: { preloadFS: "65-nes" },
c64: { preloadFS: "65-c64" }
vcs: { wasiFSZip: "cc65-fs-atari2600.zip" },
nes: { wasiFSZip: "cc65-fs-nes.zip" },
c64: { wasiFSZip: "cc65-fs-c64.zip" }
},
includePatterns: [...SHARED_INCLUDE_PATTERNS, ...ECS_INCLUDE_PATTERNS]
},
@@ -3202,6 +3202,14 @@
return buildArgs[kind] || [];
return [];
}
function getSharedFileSystemName(tool, platform) {
var fsName = getPreloadFSName(tool, platform);
if (fsName) return fsName;
let config = getPlatformToolConfig(tool, platform);
if (config && config.wasiFSZip) return "wasi:" + config.wasiFSZip;
let meta = tool && getToolMeta(tool);
return meta && meta.wasiFSZip ? "wasi:" + meta.wasiFSZip : void 0;
}
// src/worker/platforms.ts
var PLATFORM_PARAMS = {
@@ -6666,6 +6674,14 @@
errors.push({ line: 0, msg: "" + e });
}
}
function wasiFSAdapter(wasi) {
return {
mkdir: (path) => wasi.fs.putDirectory(path),
writeFile: (path, data) => wasi.fs.putFile(path, data),
utime: () => {
}
};
}
// src/worker/wasmutils.ts
var ENVIRONMENT_IS_NODE = typeof process === "object" && process != null && typeof process.versions === "object" && process.versions != null && typeof process.versions.node === "string";
@@ -6798,11 +6814,6 @@
}
function setupFS(FS, name) {
var WORKERFS = FS.filesystems["WORKERFS"];
if (name === "65-vector") name = "65-none";
if (name === "65-atari7800") name = "65-none";
if (name === "65-devel") name = "65-none";
if (name === "65-vcs") name = "65-atari2600";
if (name === "65-exidy") name = "65-none";
if (!fsMeta[name]) throw Error("No filesystem for '" + name + "'");
FS.mkdir("/share");
FS.mount(WORKERFS, {
@@ -7277,6 +7288,44 @@
}
// src/worker/tools/cc65.ts
var CC65_SHARE = "share/cc65";
var wasiModules = {};
async function runCC65Tool(step, tool, args, populate) {
const fsname = getSharedFileSystemName("cc65", step.platform);
if (!fsname || !fsname.startsWith("wasi:"))
throw new Error("No cc65 filesystem for platform " + step.platform);
const sharefs = await ensureWasiFilesystem(fsname.substring(5));
if (!sharefs)
throw new Error("Could not load cc65 filesystem " + fsname);
if (!wasiModules[tool]) {
wasiModules[tool] = new WebAssembly.Module(loadWASMBinary(tool));
}
const wasi = new WASIRunner();
wasi.initSync(wasiModules[tool]);
wasi.fs.setParent(sharefs);
populate(wasiFSAdapter(wasi));
wasi.addPreopenDirectory(".");
wasi.setArgs([tool, ...args]);
const errno = wasi.run();
console.log("exec", tool, args.join(" "));
const stdout = wasi.fds[1].getBytesAsString();
if (stdout) console.log(stdout);
const stderr = wasi.fds[2].getBytesAsString().split(re_crlf).filter((s) => s != "");
return { wasi, errno, stderr };
}
function checkExitCode(tool, errno, stderr, errors) {
if (errno && !errors.length) {
errors.push({ line: 0, msg: tool + " exited with code " + errno + (stderr.length ? ": " + stderr.join("\n") : "") });
}
}
function readWASIOutput(wasi, path) {
const fd = wasi.fs.getFile(path);
if (!fd) throw new Error("Missing output file " + path);
return fd.getBytes().slice();
}
function readWASIOutputString(wasi, path) {
return new TextDecoder().decode(readWASIOutput(wasi, path));
}
function parseCA65Listing(asmfn, code, symbols, segments, params, dbg, listings) {
var _a;
var segofs = 0;
@@ -7358,8 +7407,7 @@
}
return origlines;
}
function assembleCA65(step) {
loadNative("ca65");
async function assembleCA65(step) {
var errors = [];
gatherFiles(step, { mainFilePath: "main.s" });
var objpath = step.prefix + ".o";
@@ -7369,33 +7417,22 @@
}
fixParamsWithDefines(step.path, step.params);
if (staleFiles(step, [objpath, lstpath])) {
var objout, lstout;
var CA65 = emglobal.ca65({
instantiateWasm: moduleInstFn("ca65"),
noInitialRun: true,
//logReadFiles:true,
print: print_fn,
printErr: makeErrorMatcher(errors, /(.+?):(\d+): (.+)/, 2, 3, step.path, 1)
});
var FS = CA65.FS;
setupFS(FS, "65-" + getRootBasePlatform(step.platform));
populateFiles(step, FS);
var args = ["-v", "-g", "-I", "/share/asminc", "-o", objpath, "-l", lstpath, step.path];
var args = ["-v", "-g", "-I", CC65_SHARE + "/asminc", "-o", objpath, "-l", lstpath, step.path];
args.unshift.apply(args, ["-D", "__8BITWORKSHOP__=1"]);
if (step.mainfile) {
args.unshift.apply(args, ["-D", "__MAIN__=1"]);
}
var extra = defineArgs("ca65", step.params.define).concat(defineArgs("ca65", step.params.symbols && step.params.symbols.assembler)).concat(extraArgsFor("ca65", step.params.buildArgs));
args.splice(args.length - 1, 0, ...extra);
execMain(step, CA65, args);
const { wasi, errno, stderr } = await runCC65Tool(step, "ca65", args, (fs) => populateFiles(step, fs));
stderr.forEach(makeErrorMatcher(errors, /(.+?):(\d+): (.+)/, 2, 3, step.path, 1));
checkExitCode("ca65", errno, stderr, errors);
if (errors.length) {
let listings = {};
return { errors, listings };
}
objout = FS.readFile(objpath, { encoding: "binary" });
lstout = FS.readFile(lstpath, { encoding: "utf8" });
putWorkFile(objpath, objout);
putWorkFile(lstpath, lstout);
putWorkFile(objpath, readWASIOutput(wasi, objpath));
putWorkFile(lstpath, readWASIOutputString(wasi, lstpath));
}
return {
linktool: "ld65",
@@ -7403,37 +7440,20 @@
args: [objpath]
};
}
function linkLD65(step) {
async function linkLD65(step) {
var _a, _b, _c;
loadNative("ld65");
var params = step.params;
gatherFiles(step);
var binpath = "main";
if (staleFiles(step, [binpath])) {
var errors = [];
var LD65 = emglobal.ld65({
instantiateWasm: moduleInstFn("ld65"),
noInitialRun: true,
//logReadFiles:true,
print: print_fn,
printErr: function(s2) {
errors.push({ msg: s2, line: 0 });
}
});
var FS = LD65.FS;
setupFS(FS, "65-" + getRootBasePlatform(step.platform));
populateFiles(step, FS);
populateExtraFiles(step, FS, params.extra_link_files);
if (store.hasFile(params.cfgfile)) {
populateEntry(FS, params.cfgfile, store.getFileEntry(params.cfgfile), null);
}
var libargs = params.libargs || [];
var cfgfile = params.cfgfile;
var args = [
"--cfg-path",
"/share/cfg",
CC65_SHARE + "/cfg",
"--lib-path",
"/share/lib",
CC65_SHARE + "/lib",
"-C",
cfgfile,
"-Ln",
@@ -7447,12 +7467,20 @@
].concat(step.args, libargs);
args.push.apply(args, linkSymbolArgs("ld65", params.symbols && params.symbols.linker));
args.push.apply(args, extraArgsFor("ld65", params.buildArgs));
execMain(step, LD65, args);
const { wasi, errno, stderr } = await runCC65Tool(step, "ld65", args, (fs) => {
populateFiles(step, fs);
populateExtraFiles(step, fs, params.extra_link_files);
if (store.hasFile(params.cfgfile)) {
populateEntry(fs, params.cfgfile, store.getFileEntry(params.cfgfile), null);
}
});
for (let s2 of stderr) errors.push({ msg: s2, line: 0 });
checkExitCode("ld65", errno, stderr, errors);
if (errors.length)
return { errors };
var aout = FS.readFile("main", { encoding: "binary" });
var mapout = FS.readFile("main.map", { encoding: "utf8" });
var viceout = FS.readFile("main.vice", { encoding: "utf8" });
var aout = readWASIOutput(wasi, "main");
var mapout = readWASIOutputString(wasi, "main.map");
var viceout = readWASIOutputString(wasi, "main.vice");
if (step.platform == "pce" && aout.length > 8192) {
let newrom = new Uint8Array(aout.length);
newrom.set(aout.slice(aout.length - 8192), 0);
@@ -7477,7 +7505,7 @@
}
var symbolsizes = {};
try {
let dbgsyms = parseCC65DbgSizes(FS.readFile("main.dbg", { encoding: "utf8" }), params.ignore_segments);
let dbgsyms = parseCC65DbgSizes(readWASIOutputString(wasi, "main.dbg"), params.ignore_segments);
symbolsizes = dbgsyms.sizes;
for (let name of dbgsyms.ignored) delete symbolmap[name];
} catch (e) {
@@ -7504,7 +7532,7 @@
var listings = {};
for (var fn of step.files) {
if (fn.endsWith(".lst")) {
var lstout = FS.readFile(fn, { encoding: "utf8" });
var lstout = readWASIOutputString(wasi, fn);
lstout = lstout.split("\n\n")[1] || lstout;
putWorkFile(fn, lstout);
let isECS = ((_c = (_b = step.debuginfo) == null ? void 0 : _b.systems) == null ? void 0 : _c.Init) != null;
@@ -7537,49 +7565,16 @@
};
}
}
function compileCC65(step) {
loadNative("cc65");
async function compileCC65(step) {
var params = step.params;
var re_err1 = /(.*?):(\d+): (.+)/;
var errors = [];
var errline = 0;
function match_fn(s) {
console.log(s);
var matches = re_err1.exec(s);
if (matches) {
errline = parseInt(matches[2]);
errors.push({
line: errline,
msg: matches[3],
path: matches[1]
});
}
}
gatherFiles(step, { mainFilePath: "main.c" });
var destpath = step.prefix + ".s";
fixParamsWithDefines(step.path, params);
if (staleFiles(step, [destpath])) {
var CC65 = emglobal.cc65({
instantiateWasm: moduleInstFn("cc65"),
noInitialRun: true,
//logReadFiles:true,
print: print_fn,
printErr: match_fn
});
var FS = CC65.FS;
setupFS(FS, "65-" + getRootBasePlatform(step.platform));
populateFiles(step, FS, {
mainFilePath: step.path,
processFn: (path, code) => {
if (typeof code === "string") {
code = processEmbedDirective(code);
}
return code;
}
});
var args = [
"-I",
"/share/include",
CC65_SHARE + "/include",
"-I",
".",
"-D",
@@ -7596,8 +7591,19 @@
var customArgs = params.extra_compiler_args || ["-T", "-g", "-Oirs", "-Cl", "-W", "-pointer-sign,-no-effect"];
args = args.concat(customArgs, args);
args.push(step.path);
const runerr = execToFile(step, CC65, args, FS, destpath, errors);
if (runerr) return runerr;
const { wasi, errno, stderr } = await runCC65Tool(step, "cc65", args, (fs) => populateFiles(step, fs, {
mainFilePath: step.path,
processFn: (path, code) => {
if (typeof code === "string") {
code = processEmbedDirective(code);
}
return code;
}
}));
stderr.forEach(makeErrorMatcher(errors, /(.*?):(\d+): (.+)/, 2, 3, step.path, 1));
checkExitCode("cc65", errno, stderr, errors);
if (errors.length) return { errors };
putWorkFile(destpath, readWASIOutputString(wasi, destpath));
}
return {
nexttool: "ca65",
@@ -14692,7 +14698,7 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
}
// src/worker/tools/cc6502.ts
var wasiModules = {};
var wasiModules2 = {};
var wasiFilesystems2 = {};
async function compileCC6502(step, cfg) {
const errors = [];
@@ -14702,11 +14708,11 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
if (!wasiFilesystems2[cfg.tool]) {
wasiFilesystems2[cfg.tool] = await loadWASIFilesystemZip(cfg.fsZip);
}
if (!wasiModules[cfg.tool]) {
wasiModules[cfg.tool] = new WebAssembly.Module(loadWASMBinary(cfg.tool));
if (!wasiModules2[cfg.tool]) {
wasiModules2[cfg.tool] = new WebAssembly.Module(loadWASMBinary(cfg.tool));
}
const wasi = new WASIRunner();
wasi.initSync(wasiModules[cfg.tool]);
wasi.initSync(wasiModules2[cfg.tool]);
wasi.fs.setParent(wasiFilesystems2[cfg.tool]);
populateWASIFiles(wasi, step, ["headers", "."]);
wasi.setArgs([cfg.tool, "-v", "-g", "-S", "-I", "headers", step.path]);
@@ -15938,9 +15944,9 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
}
async function handleMessage(data) {
if (data.preload) {
var fs = getPreloadFSName(data.preload, data.platform);
if (fs && !fsMeta[fs])
loadFilesystem(fs);
var fs0 = splitWasiFSName(getSharedFileSystemName(data.preload, data.platform) || "");
if (fs0.wasi) await ensureWasiFilesystem(fs0.name);
else if (fs0.name && !fsMeta[fs0.name]) loadFilesystem(fs0.name);
return;
}
if (data.readshared) {
+3 -3
View File
@@ -1,7 +1,7 @@
{
"version": 3,
"sources": ["../../node_modules/jszip/dist/jszip.min.js", "../../src/common/util.ts", "../../src/common/toolmeta.ts", "../../src/worker/platforms.ts", "../../src/common/basic/compiler.ts", "../../src/worker/wasiutils.ts", "../../src/common/wasi/wasishim.ts", "../../src/worker/wasmutils.ts", "../../src/worker/listingutils.ts", "../../src/worker/tools/misc.ts", "../../src/worker/tools/cc65dbg.ts", "../../src/worker/tools/cc65.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/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/cc6502.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/builder.ts", "../../src/worker/workermain.ts"],
"sourcesContent": ["/*!\n\nJSZip v3.10.2 - 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", "JSZip", "debug", "s", "s", "fn", "hex", "CompileError", "s", "code", "s", "re_error", "s", "m", "lst", "wasiModule", "DwarfTag", "DwarfAttribute", "line", "m", "CompileError", "mergeLocs", "CompileError", "debug", "debug", "isLiteral", "isBinOp", "isUnOp", "e", "isLiteral", "OPERATORS", "getOperator", "getPrecedence", "mergeLocs", "tok", "isLiteral", "getPrecedence", "getOperator", "valtype", "CompileError", "wasiModule", "wasiFilesystems", "hex", "wasiModule", "wasiModule", "wasiModule", "re_error", "exports", "ENVIRONMENT_IS_WORKER", "e"]
"sourcesContent": ["/*!\n\nJSZip v3.10.2 - 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", "JSZip", "debug", "s", "s", "fn", "hex", "CompileError", "s", "code", "s", "re_error", "s", "m", "lst", "wasiModule", "DwarfTag", "DwarfAttribute", "line", "m", "CompileError", "mergeLocs", "CompileError", "debug", "debug", "isLiteral", "isBinOp", "isUnOp", "e", "isLiteral", "OPERATORS", "getOperator", "getPrecedence", "mergeLocs", "tok", "isLiteral", "getPrecedence", "getOperator", "valtype", "CompileError", "wasiModule", "wasiModules", "wasiFilesystems", "hex", "wasiModule", "wasiModule", "wasiModule", "re_error", "exports", "ENVIRONMENT_IS_WORKER", "e"]
}
+93 -84
View File
@@ -4,11 +4,60 @@ exports.assembleCA65 = assembleCA65;
exports.linkLD65 = linkLD65;
exports.compileCC65 = compileCC65;
const toolmeta_1 = require("../../common/toolmeta");
const util_1 = require("../../common/util");
const wasishim_1 = require("../../common/wasi/wasishim");
const builder_1 = require("../builder");
const listingutils_1 = require("../listingutils");
const cc65dbg_1 = require("./cc65dbg");
const wasmutils_1 = require("../wasmutils");
const wasiutils_1 = require("../wasiutils");
// the WASI builds look for their data under share/cc65 in the per-platform
// cc65-fs-<platform>.zip, preopened at '.'
const CC65_SHARE = 'share/cc65';
const wasiModules = {};
/**
* Run cc65, ca65 or ld65 on a fresh WASI runner layered over the platform's
* cc65 filesystem. `populate` copies the step's inputs into the runner first.
* Returns the runner (for reading outputs) and its stderr lines.
*/
async function runCC65Tool(step, tool, args, populate) {
const fsname = (0, toolmeta_1.getSharedFileSystemName)('cc65', step.platform);
if (!fsname || !fsname.startsWith('wasi:'))
throw new Error("No cc65 filesystem for platform " + step.platform);
const sharefs = await (0, wasmutils_1.ensureWasiFilesystem)(fsname.substring(5));
if (!sharefs)
throw new Error("Could not load cc65 filesystem " + fsname);
if (!wasiModules[tool]) {
wasiModules[tool] = new WebAssembly.Module((0, wasmutils_1.loadWASMBinary)(tool));
}
const wasi = new wasishim_1.WASIRunner();
wasi.initSync(wasiModules[tool]);
wasi.fs.setParent(sharefs);
populate((0, wasiutils_1.wasiFSAdapter)(wasi));
wasi.addPreopenDirectory(".");
wasi.setArgs([tool, ...args]);
const errno = wasi.run();
console.log('exec', tool, args.join(' '));
const stdout = wasi.fds[1].getBytesAsString();
if (stdout)
console.log(stdout);
const stderr = wasi.fds[2].getBytesAsString().split(listingutils_1.re_crlf).filter(s => s != '');
return { wasi, errno, stderr };
}
/** Report a failed tool run that printed no parseable error message. */
function checkExitCode(tool, errno, stderr, errors) {
if (errno && !errors.length) {
errors.push({ line: 0, msg: tool + " exited with code " + errno + (stderr.length ? ": " + stderr.join('\n') : '') });
}
}
function readWASIOutput(wasi, path) {
const fd = wasi.fs.getFile(path);
if (!fd)
throw new Error("Missing output file " + path);
return fd.getBytes().slice();
}
function readWASIOutputString(wasi, path) {
return new TextDecoder().decode(readWASIOutput(wasi, path));
}
/*
000000r 1 .segment "CODE"
000000r 1 .proc _rasterWait: near
@@ -112,8 +161,7 @@ function parseCA65Listing(asmfn, code, symbols, segments, params, dbg, listings)
}
return origlines;
}
function assembleCA65(step) {
(0, wasmutils_1.loadNative)("ca65");
async function assembleCA65(step) {
var errors = [];
(0, builder_1.gatherFiles)(step, { mainFilePath: "main.s" });
var objpath = step.prefix + ".o";
@@ -125,18 +173,7 @@ function assembleCA65(step) {
}
(0, builder_1.fixParamsWithDefines)(step.path, step.params);
if ((0, builder_1.staleFiles)(step, [objpath, lstpath])) {
var objout, lstout;
var CA65 = wasmutils_1.emglobal.ca65({
instantiateWasm: (0, wasmutils_1.moduleInstFn)('ca65'),
noInitialRun: true,
//logReadFiles:true,
print: wasmutils_1.print_fn,
printErr: (0, listingutils_1.makeErrorMatcher)(errors, /(.+?):(\d+): (.+)/, 2, 3, step.path, 1),
});
var FS = CA65.FS;
(0, wasmutils_1.setupFS)(FS, '65-' + (0, util_1.getRootBasePlatform)(step.platform));
(0, builder_1.populateFiles)(step, FS);
var args = ['-v', '-g', '-I', '/share/asminc', '-o', objpath, '-l', lstpath, step.path];
var args = ['-v', '-g', '-I', CC65_SHARE + '/asminc', '-o', objpath, '-l', lstpath, step.path];
args.unshift.apply(args, ["-D", "__8BITWORKSHOP__=1"]);
if (step.mainfile) {
args.unshift.apply(args, ["-D", "__MAIN__=1"]);
@@ -148,17 +185,17 @@ function assembleCA65(step) {
.concat((0, toolmeta_1.defineArgs)('ca65', step.params.symbols && step.params.symbols.assembler))
.concat((0, toolmeta_1.extraArgsFor)('ca65', step.params.buildArgs));
args.splice(args.length - 1, 0, ...extra);
(0, wasmutils_1.execMain)(step, CA65, args);
const { wasi, errno, stderr } = await runCC65Tool(step, 'ca65', args, (fs) => (0, builder_1.populateFiles)(step, fs));
stderr.forEach((0, listingutils_1.makeErrorMatcher)(errors, /(.+?):(\d+): (.+)/, 2, 3, step.path, 1));
checkExitCode('ca65', errno, stderr, errors);
if (errors.length) {
let listings = {};
// TODO? change extension to .lst
//listings[step.path] = { lines:[], text:getWorkFileAsString(step.path) };
return { errors, listings };
}
objout = FS.readFile(objpath, { encoding: 'binary' });
lstout = FS.readFile(lstpath, { encoding: 'utf8' });
(0, builder_1.putWorkFile)(objpath, objout);
(0, builder_1.putWorkFile)(lstpath, lstout);
(0, builder_1.putWorkFile)(objpath, readWASIOutput(wasi, objpath));
(0, builder_1.putWorkFile)(lstpath, readWASIOutputString(wasi, lstpath));
}
return {
linktool: "ld65",
@@ -166,33 +203,17 @@ function assembleCA65(step) {
args: [objpath]
};
}
function linkLD65(step) {
async function linkLD65(step) {
var _a, _b, _c;
(0, wasmutils_1.loadNative)("ld65");
var params = step.params;
(0, builder_1.gatherFiles)(step);
var binpath = "main";
if ((0, builder_1.staleFiles)(step, [binpath])) {
var errors = [];
var LD65 = wasmutils_1.emglobal.ld65({
instantiateWasm: (0, wasmutils_1.moduleInstFn)('ld65'),
noInitialRun: true,
//logReadFiles:true,
print: wasmutils_1.print_fn,
printErr: function (s) { errors.push({ msg: s, line: 0 }); }
});
var FS = LD65.FS;
(0, wasmutils_1.setupFS)(FS, '65-' + (0, util_1.getRootBasePlatform)(step.platform));
(0, builder_1.populateFiles)(step, FS);
(0, builder_1.populateExtraFiles)(step, FS, params.extra_link_files);
// populate .cfg file, if it is a custom one
if (builder_1.store.hasFile(params.cfgfile)) {
(0, builder_1.populateEntry)(FS, params.cfgfile, builder_1.store.getFileEntry(params.cfgfile), null);
}
var libargs = params.libargs || [];
var cfgfile = params.cfgfile;
var args = ['--cfg-path', '/share/cfg',
'--lib-path', '/share/lib',
var args = ['--cfg-path', CC65_SHARE + '/cfg',
'--lib-path', CC65_SHARE + '/lib',
'-C', cfgfile,
'-Ln', 'main.vice',
'--dbgfile', 'main.dbg',
@@ -201,12 +222,23 @@ function linkLD65(step) {
// //#symbol ld (symbols not already merged into libargs) and //#flag ld
args.push.apply(args, (0, toolmeta_1.linkSymbolArgs)('ld65', params.symbols && params.symbols.linker));
args.push.apply(args, (0, toolmeta_1.extraArgsFor)('ld65', params.buildArgs));
(0, wasmutils_1.execMain)(step, LD65, args);
const { wasi, errno, stderr } = await runCC65Tool(step, 'ld65', args, (fs) => {
(0, builder_1.populateFiles)(step, fs);
(0, builder_1.populateExtraFiles)(step, fs, params.extra_link_files);
// populate .cfg file, if it is a custom one
if (builder_1.store.hasFile(params.cfgfile)) {
(0, builder_1.populateEntry)(fs, params.cfgfile, builder_1.store.getFileEntry(params.cfgfile), null);
}
});
// any ld65 message (even a warning) fails the build
for (let s of stderr)
errors.push({ msg: s, line: 0 });
checkExitCode('ld65', errno, stderr, errors);
if (errors.length)
return { errors: errors };
var aout = FS.readFile("main", { encoding: 'binary' });
var mapout = FS.readFile("main.map", { encoding: 'utf8' });
var viceout = FS.readFile("main.vice", { encoding: 'utf8' });
var aout = readWASIOutput(wasi, "main");
var mapout = readWASIOutputString(wasi, "main.map");
var viceout = readWASIOutputString(wasi, "main.vice");
// correct binary for PCEngine
if (step.platform == 'pce' && aout.length > 0x2000) {
// move 8 KB from end to front
@@ -236,7 +268,7 @@ function linkLD65(step) {
// symbol sizes from the linker debug file
var symbolsizes = {};
try {
let dbgsyms = (0, cc65dbg_1.parseCC65DbgSizes)(FS.readFile("main.dbg", { encoding: 'utf8' }), params.ignore_segments);
let dbgsyms = (0, cc65dbg_1.parseCC65DbgSizes)(readWASIOutputString(wasi, "main.dbg"), params.ignore_segments);
symbolsizes = dbgsyms.sizes;
// labels outside CPU address space (e.g. NES CHR) would alias real addresses
for (let name of dbgsyms.ignored)
@@ -274,7 +306,7 @@ function linkLD65(step) {
var listings = {};
for (var fn of step.files) {
if (fn.endsWith('.lst')) {
var lstout = FS.readFile(fn, { encoding: 'utf8' });
var lstout = readWASIOutputString(wasi, fn);
lstout = lstout.split('\n\n')[1] || lstout; // remove header
(0, builder_1.putWorkFile)(fn, lstout);
//const asmpath = fn.replace(/\.lst$/, '.ca65'); // TODO! could be .s
@@ -308,51 +340,17 @@ function linkLD65(step) {
};
}
}
function compileCC65(step) {
(0, wasmutils_1.loadNative)("cc65");
async function compileCC65(step) {
var params = step.params;
// stderr
var re_err1 = /(.*?):(\d+): (.+)/;
var errors = [];
var errline = 0;
function match_fn(s) {
console.log(s);
var matches = re_err1.exec(s);
if (matches) {
errline = parseInt(matches[2]);
errors.push({
line: errline,
msg: matches[3],
path: matches[1]
});
}
}
(0, builder_1.gatherFiles)(step, { mainFilePath: "main.c" });
var destpath = step.prefix + '.s';
// the link step reads these params, so they have to be settled even when
// the assembly file is up to date and nothing below runs
(0, builder_1.fixParamsWithDefines)(step.path, params);
if ((0, builder_1.staleFiles)(step, [destpath])) {
var CC65 = wasmutils_1.emglobal.cc65({
instantiateWasm: (0, wasmutils_1.moduleInstFn)('cc65'),
noInitialRun: true,
//logReadFiles:true,
print: wasmutils_1.print_fn,
printErr: match_fn,
});
var FS = CC65.FS;
(0, wasmutils_1.setupFS)(FS, '65-' + (0, util_1.getRootBasePlatform)(step.platform));
(0, builder_1.populateFiles)(step, FS, {
mainFilePath: step.path,
processFn: (path, code) => {
if (typeof code === 'string') {
code = (0, builder_1.processEmbedDirective)(code);
}
return code;
}
});
var args = [
'-I', '/share/include',
'-I', CC65_SHARE + '/include',
'-I', '.',
"-D", "__8BITWORKSHOP__",
];
@@ -368,9 +366,20 @@ function compileCC65(step) {
var customArgs = params.extra_compiler_args || ['-T', '-g', '-Oirs', '-Cl', '-W', '-pointer-sign,-no-effect'];
args = args.concat(customArgs, args);
args.push(step.path);
const runerr = (0, wasmutils_1.execToFile)(step, CC65, args, FS, destpath, errors);
if (runerr)
return runerr;
const { wasi, errno, stderr } = await runCC65Tool(step, 'cc65', args, (fs) => (0, builder_1.populateFiles)(step, fs, {
mainFilePath: step.path,
processFn: (path, code) => {
if (typeof code === 'string') {
code = (0, builder_1.processEmbedDirective)(code);
}
return code;
}
}));
stderr.forEach((0, listingutils_1.makeErrorMatcher)(errors, /(.*?):(\d+): (.+)/, 2, 3, step.path, 1));
checkExitCode('cc65', errno, stderr, errors);
if (errors.length)
return { errors };
(0, builder_1.putWorkFile)(destpath, readWASIOutputString(wasi, destpath));
}
return {
nexttool: "ca65",
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"cc65.js","sourceRoot":"","sources":["../../../src/worker/tools/cc65.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"cc65.js","sourceRoot":"","sources":["../../../src/worker/tools/cc65.ts"],"names":[],"mappings":"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 truncated
+12
View File
@@ -8,6 +8,7 @@ exports.unzipWASIFilesystem = unzipWASIFilesystem;
exports.loadWASIFilesystemZip = loadWASIFilesystemZip;
exports.populateWASIFiles = populateWASIFiles;
exports.runWASI = runWASI;
exports.wasiFSAdapter = wasiFSAdapter;
const jszip_1 = __importDefault(require("jszip"));
const wasishim_1 = require("../common/wasi/wasishim");
const builder_1 = require("./builder");
@@ -67,4 +68,15 @@ function runWASI(wasi, errors) {
errors.push({ line: 0, msg: "" + e });
}
}
/**
* Wrap a WASI runner's filesystem in the Emscripten FS calls the builder's
* populateFiles/populateExtraFiles/populateEntry use, so tools can share them.
*/
function wasiFSAdapter(wasi) {
return {
mkdir: (path) => wasi.fs.putDirectory(path),
writeFile: (path, data) => wasi.fs.putFile(path, data),
utime: () => { },
};
}
//# sourceMappingURL=wasiutils.js.map
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"wasiutils.js","sourceRoot":"","sources":["../../src/worker/wasiutils.ts"],"names":[],"mappings":";;;;;AAKA,oCAMC;AAED,kDAuBC;AAED,sDAKC;AAGD,8CAOC;AAGD,0BAMC;AA9DD,kDAA0B;AAC1B,sDAA2E;AAE3E,uCAA6C;AAE7C,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;AAED,mFAAmF;AACnF,SAAgB,iBAAiB,CAAC,IAAgB,EAAE,IAAe,EAAE,OAAiB,CAAC,GAAG,CAAC;IACvF,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,EAAE,eAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;AACL,CAAC;AAED,0EAA0E;AAC1E,SAAgB,OAAO,CAAC,IAAgB,EAAE,MAAqB;IAC3D,IAAI,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;AACL,CAAC"}
{"version":3,"file":"wasiutils.js","sourceRoot":"","sources":["../../src/worker/wasiutils.ts"],"names":[],"mappings":"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"}
-10
View File
@@ -180,16 +180,6 @@ function loadNative(modulename) {
// mount the filesystem at /share
function setupFS(FS, name) {
var WORKERFS = FS.filesystems['WORKERFS'];
if (name === '65-vector')
name = '65-none'; // TODO
if (name === '65-atari7800')
name = '65-none'; // TODO
if (name === '65-devel')
name = '65-none'; // TODO
if (name === '65-vcs')
name = '65-atari2600'; // TODO
if (name === '65-exidy')
name = '65-none'; // TODO
if (!exports.fsMeta[name])
throw Error("No filesystem for '" + name + "'");
FS.mkdir('/share');
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"wasmutils.js","sourceRoot":"","sources":["../../src/worker/wasmutils.ts"],"names":[],"mappings":";AACA,2BAA2B;AAC3B,oCAAoC;;;AA+CpC,sCAQC;AACD,sCAEC;AAeD,oCAOC;AAED,4BAMC;AAMD,gCAQC;AAGD,4CAKC;AASD,wCAYC;AAGD,oBAKC;AACD,wCAeC;AACD,4BAKC;AACD,gCAOC;AAGD,0BA+BC;AAgBD,4CAEC;AAGD,gDAQC;AAGD,0CASC;AAUD,oDAUC;AASD,gDAUC;AAGD,kDAQC;AAID,wCAiBC;AAED,gCAKC;AAhUD,uCAAkG;AAUlG,MAAM,mBAAmB,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI;IACxE,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI;IAChE,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC5C,MAAM,qBAAqB,GAAG,OAAO,aAAa,KAAK,UAAU,CAAC;AAClE,MAAM,kBAAkB,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC;AACtD,wEAAwE;AACxE,6EAA6E;AAC7E,0DAA0D;AAC7C,QAAA,QAAQ,GAAQ,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAEhI,gCAAgC;AAChC,wCAAwC;AACxC,IAAI,CAAC,gBAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IACzB,gBAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,OAAe,EAAE,EAAE;QACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,YAAY,GAAG,gBAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC3D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,GAAG,EAAE,CAAC;YACb,aAAa,CAAC,GAAG,OAAO,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,gBAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;YAC9B,gBAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,oCAAoC;QACnE,CAAC;QACD,OAAO,gBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;IACnC,CAAC,CAAA;AACH,CAAC;AAED,2CAA2C;AAC3C,IAAI,kBAAkB,GAAG,EAAE,CAAC;AAC5B,IAAI,kBAAkB,GAAG,IAAI,CAAC,CAAC,4BAA4B;AAE3D,iCAAiC;AACjC,IAAI,UAAU,CAAC;AACf,SAAgB,aAAa;IAC3B,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACvB,UAAU,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC;YAClC,SAAS,EAAE,IAAI,EAAG,OAAO;YACzB,SAAS,EAAE,KAAK,EAAE,SAAS;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AACD,SAAgB,aAAa,CAAC,SAAiB;IAC7C,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC7B,CAAC;AACD,SAAS,aAAa,CAAC,SAAiB;IACtC,IAAI,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAA,mBAAS,GAAE,CAAC;QACZ,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACrD,IAAI,kBAAkB,EAAE,CAAC;YACvB,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;YACvC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QACD,IAAA,iBAAO,EAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AACD,wCAAwC;AACxC,SAAgB,YAAY,CAAC,SAAiB;IAC5C,OAAO,UAAU,OAAO,EAAE,EAAE;QAC1B,IAAI,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,IAAI,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClD,EAAE,CAAC,IAAI,CAAC,CAAC;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC,CAAA;AACH,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAe,EAAE,GAAG,EAAE,IAAc;IAC3D,IAAA,mBAAS,GAAE,CAAC;IACZ,IAAI,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,aAAa;IAChD,GAAG,CAAC,IAAI,CAAC,CAAC;IACV,IAAA,iBAAO,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAC,IAAe,EAAE,GAAG,EAAE,IAAc,EAAE,EAAE,EAAE,QAAgB,EAAE,MAAM,EACzF,SAAiC;IACnC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1B,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC7C,IAAI,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACtD,IAAI,SAAS;QAAE,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,IAAA,qBAAW,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC3B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,SAAgB,gBAAgB,CAAC,IAAe,EAAE,EAAE,EAAE,OAAe;IACnE,IAAI,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAe,CAAC;IACxE,IAAA,qBAAW,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAA,0BAAgB,EAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,sCAAsC;AAE3B,QAAA,MAAM,GAAG,EAAE,CAAC;AACvB,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,IAAI,QAAQ,GAAG,EAAE,CAAC;AAElB,sDAAsD;AACtD,SAAgB,cAAc,CAAC,IAAY;IACzC,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;IAC/B,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAO,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC,CAAE,sBAAsB;IACnF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC5B,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;IAC3B,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAO,GAAG,OAAO,GAAG,IAAI,GAAG,cAAc,EAAE,KAAK,CAAC,CAAC,CAAE,sBAAsB;IAC1F,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,cAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,GAAG,aAAa,EAAE,cAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChH,CAAC;AAED,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,SAAgB,IAAI,CAAC,UAAkB,EAAE,KAAe;IACtD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACxB,aAAa,CAAC,iBAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACvF,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AACD,SAAgB,cAAc,CAAC,UAAkB;IAC/C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EALine truncated
{"version":3,"file":"wasmutils.js","sourceRoot":"","sources":["../../src/worker/wasmutils.ts"],"names":[],"mappings":"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 truncated
+5 -3
View File
@@ -34,9 +34,11 @@ function setupRequireFunction() {
async function handleMessage(data) {
// preload file system
if (data.preload) {
var fs = (0, toolmeta_1.getPreloadFSName)(data.preload, data.platform);
if (fs && !wasmutils_1.fsMeta[fs])
(0, wasmutils_1.loadFilesystem)(fs);
var fs0 = splitWasiFSName((0, toolmeta_1.getSharedFileSystemName)(data.preload, data.platform) || "");
if (fs0.wasi)
await (0, wasmutils_1.ensureWasiFilesystem)(fs0.name);
else if (fs0.name && !wasmutils_1.fsMeta[fs0.name])
(0, wasmutils_1.loadFilesystem)(fs0.name);
return;
}
// read a file from a filesystem package (shared code)
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"workermain.js","sourceRoot":"","sources":["../../src/worker/workermain.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"workermain.js","sourceRoot":"","sources":["../../src/worker/workermain.ts"],"names":[],"mappings":";;AAOA,0CAEC;AAKD,oDAeC;AAMD,sCAmCC;AApED,iDAA6D;AAC7D,uCAA6E;AAC7E,2CAAiL;AAEjL,uEAAuE;AACvE,SAAgB,eAAe,CAAC,MAAc;IAC5C,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChH,CAAC;AAKD,SAAgB,oBAAoB;IAClC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,OAAO,CAAC,OAAO,CAAC,GAAG;QACjB,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;KACF,CAAC;IACF,oBAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,OAAe,EAAE,EAAE;QACxC,6EAA6E;QAC7E,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC;gBAAC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAA;AACH,CAAC;AAED,4BAA4B;AAE5B,6FAA6F;AAEtF,KAAK,UAAU,aAAa,CAAC,IAAmB;IACrD,sBAAsB;IACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,GAAG,GAAG,eAAe,CAAC,IAAA,kCAAuB,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACtF,IAAI,GAAG,CAAC,IAAI;YAAE,MAAM,IAAA,gCAAoB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAC9C,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,kBAAM,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,IAAA,0BAAc,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IACD,sDAAsD;IACtD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,IAAI,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAA,8BAAkB,EAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;YAC3E,CAAC,CAAC,CAAC,IAAA,4BAAgB,EAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,IAAA,0BAAc,EAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAClF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAkB,CAAC;IAC7D,CAAC;IACD,6DAA6D;IAC7D,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAA,+BAAmB,EAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;YACzE,CAAC,CAAC,CAAC,IAAA,4BAAgB,EAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAA,2BAAe,EAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7E,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAkB,CAAC;IAC1D,CAAC;IACD,gDAAgD;IAChD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,IAAI,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,GAAG,CAAC,IAAI;YAAE,MAAM,IAAA,gCAAoB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;YAC9C,IAAA,4BAAgB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO;IACT,CAAC;IACD,qCAAqC;IACrC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,eAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IACD,OAAO,iBAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,qBAAqB,GAAG,OAAO,aAAa,KAAK,UAAU,CAAC;AAClE,IAAI,qBAAqB,EAAE,CAAC;IAC1B,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,SAAS,GAAG,KAAK,WAAW,CAAC;QAC3B,MAAM,WAAW,CAAC,CAAC,wCAAwC;QAC3D,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,MAAM,GAAG,MAAM,WAAW,CAAC;QAC/B,WAAW,GAAG,IAAI,CAAC;QACnB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,WAAW,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACf,WAAW,CAAC,IAAA,qBAAW,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
+1
View File
@@ -93,6 +93,7 @@
"test-cli": "NODE_PATH=$(pwd) mocha --timeout 60000 test/cli/testcli.js",
"test-services": "NODE_PATH=$(pwd) mocha --timeout 60000 test/services",
"test-verilog": "NODE_PATH=$(pwd) mocha --timeout 60000 --reporter mocha-simple-html-reporter --reporter-options output=test/output/verilog.html test/verilog/testverilog.js",
"test-extension": "cd extension && npm run assets-quick && npm run test",
"test-web-quick": "nightwatch -e chrome test/web/testembed.js",
"test-web-all": "nightwatch -e chrome test/web",
"fuzzbasic": "jsfuzz gen/common/basic/fuzz.js ~/basic/corpus/ --versifier false",
+1 -1
View File
@@ -32,7 +32,7 @@ export interface SymbolRecord {
/** On-disk shape of a prebuilt index (gen/symidx/<name>.json). */
export interface PrebuiltIndex {
version: number; // bump when the extractor changes; runtime rejects mismatches
corpus: string; // fs name, e.g. 'fs65-c64', or 'docs'
corpus: string; // fs name, e.g. 'sdcc', 'wasi:cc65-fs-c64.zip', or 'docs'
generated: string; // ISO date
records: SymbolRecord[];
ms?: object; // MiniSearch.toJSON() output, loaded via loadJSAsync
+26 -22
View File
@@ -50,6 +50,8 @@ export interface BuildArgs {
export interface PlatformToolConfig {
/** preload filesystem name for this platform (was TOOL_PRELOADFS compound keys) */
preloadFS?: string;
/** WASI filesystem zip (in src/worker/fs/) for this platform, e.g. 'cc65-fs-nes.zip' */
wasiFSZip?: string;
/** skeleton filename override (defaults to tool id) */
skeleton?: string;
/** library args for this platform (was PLATFORM_PARAMS.libargs) */
@@ -266,18 +268,18 @@ const TOOL_PLATFORM_HELPURL: { [tool: string]: { [platform: string]: string } }
},
};
const CC65_PRELOADFS: { [platform: string]: PlatformToolConfig } = {
'apple2': { preloadFS: '65-apple2' },
'c64': { preloadFS: '65-c64' },
'vic20': { preloadFS: '65-vic20' },
'nes': { preloadFS: '65-nes' },
'atari8': { preloadFS: '65-atari8' },
'vector': { preloadFS: '65-none' },
'atari7800': { preloadFS: '65-none' },
'devel': { preloadFS: '65-none' },
'vcs': { preloadFS: '65-atari2600' },
'pce': { preloadFS: '65-pce' },
'exidy': { preloadFS: '65-none' },
const CC65_WASIFS: { [platform: string]: PlatformToolConfig } = {
'apple2': { wasiFSZip: 'cc65-fs-apple2.zip' },
'c64': { wasiFSZip: 'cc65-fs-c64.zip' },
'vic20': { wasiFSZip: 'cc65-fs-vic20.zip' },
'nes': { wasiFSZip: 'cc65-fs-nes.zip' },
'atari8': { wasiFSZip: 'cc65-fs-atari8.zip' },
'vector': { wasiFSZip: 'cc65-fs-none.zip' },
'atari7800': { wasiFSZip: 'cc65-fs-none.zip' },
'devel': { wasiFSZip: 'cc65-fs-none.zip' },
'vcs': { wasiFSZip: 'cc65-fs-atari2600.zip' },
'pce': { wasiFSZip: 'cc65-fs-pce.zip' },
'exidy': { wasiFSZip: 'cc65-fs-none.zip' },
};
//// tool registry
@@ -346,13 +348,13 @@ export const TOOL_META: { [id: string]: ToolMeta } = {
cc65: {
id: 'cc65', name: 'cc65', kind: 'compiler', arch: '6502',
extensions: ['.c', '.h'],
includeDirs: ['/include', '/asminc'],
includeDirs: ['/share/cc65/include', '/share/cc65/asminc'],
editorStyle: 'text/x-csrc',
helpURL: 'https://cc65.github.io/doc/cc65.html',
wasmModule: 'cc65',
version: '2.19',
defineFlag: '-D', defineInline: true,
platforms: CC65_PRELOADFS,
platforms: CC65_WASIFS,
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
@@ -360,13 +362,13 @@ export const TOOL_META: { [id: string]: ToolMeta } = {
ca65: {
id: 'ca65', name: 'ca65', kind: 'assembler', arch: '6502',
extensions: ['.s', '.ca65', '.inc'],
includeDirs: ['/include', '/asminc'],
includeDirs: ['/share/cc65/include', '/share/cc65/asminc'],
editorStyle: '6502',
helpURL: 'https://cc65.github.io/doc/ca65.html',
wasmModule: 'ca65',
version: '2.19',
defineFlag: '-D', defineInline: false,
platforms: CC65_PRELOADFS,
platforms: CC65_WASIFS,
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
@@ -614,7 +616,7 @@ export const TOOL_META: { [id: string]: ToolMeta } = {
helpURL: 'https://github.com/dmsc/fastbasic/blob/v4.4/manual.md',
wasmModule: 'fastbasic-int',
version: '4.4',
platforms: { default: { preloadFS: '65-atari8' } },
platforms: { default: { wasiFSZip: 'cc65-fs-atari8.zip' } },
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
@@ -670,9 +672,9 @@ export const TOOL_META: { [id: string]: ToolMeta } = {
extensions: ['.ecs'],
editorStyle: 'ecs',
platforms: {
vcs: { preloadFS: '65-atari2600' },
nes: { preloadFS: '65-nes' },
c64: { preloadFS: '65-c64' },
vcs: { wasiFSZip: 'cc65-fs-atari2600.zip' },
nes: { wasiFSZip: 'cc65-fs-nes.zip' },
c64: { wasiFSZip: 'cc65-fs-c64.zip' },
},
includePatterns: [...SHARED_INCLUDE_PATTERNS, ...ECS_INCLUDE_PATTERNS],
},
@@ -844,7 +846,7 @@ export function getPreloadFSName(tool: string, platform?: string): string | unde
if (platform) {
// Try the exact id, then the root base id so suffixed platform ids
// (e.g. 'atari8-800', 'atari8-5200.xlmame') resolve to the shared
// filesystem registered under the root ('atari8' -> '65-atari8').
// filesystem registered under the root (e.g. 'atari8-800' -> 'atari8').
let p = meta.platforms[platform];
if (p && p.preloadFS) return p.preloadFS;
let base = getRootBasePlatform(platform);
@@ -957,13 +959,15 @@ export function getIncludeDirs(tool: string, platform_id: string): string[] {
/**
* Name of the shared filesystem to query for this tool's bundled files:
* either the emscripten preloadFS package name (e.g. '65-nes') or, for tools
* either the emscripten preloadFS package name (e.g. 'sdcc') or, for tools
* with a WASI filesystem zip (e.g. cc2600), 'wasi:<zipname>'.
* Undefined if the tool has no bundled filesystem.
*/
export function getSharedFileSystemName(tool: string, platform?: string): string | undefined {
var fsName = getPreloadFSName(tool, platform);
if (fsName) return fsName;
let config = getPlatformToolConfig(tool, platform);
if (config && config.wasiFSZip) return 'wasi:' + config.wasiFSZip;
let meta = tool && getToolMeta(tool);
return (meta && meta.wasiFSZip) ? 'wasi:' + meta.wasiFSZip : undefined;
}
+1 -1
View File
@@ -123,7 +123,7 @@ export interface WorkerItemUpdate {
// TODO: split into different msg types
export interface WorkerMessage {
preload?:string
/** preload a filesystem package directly by name (e.g. '65-nes') */
/** preload a filesystem package directly by name (e.g. 'sdcc', 'wasi:cc65-fs-nes.zip') */
preload_fs?:string
/** read a file from the preloaded filesystem package (path e.g. '/include/nes.h')
* requires preload_fs; result comes back as {output:Uint8Array} */
+1 -1
View File
@@ -2327,7 +2327,7 @@ async function startPlatform() {
// try to load last file (redirect)
var lastid = userPrefs.getLastPreset();
// load first preset file, unless we're in a repo
var defaultfile = lastid || (repo_id ? null : PRESETS[0].id);
var defaultfile = lastid || (repo_id ? null : (PRESETS[0] && PRESETS[0].id));
qs.file = defaultfile || 'DEFAULT';
if (!defaultfile) {
alertError("There is no default main file for this project. Try selecting one from the pulldown.");
+1
View File
@@ -27,6 +27,7 @@ class GalaxianPlatform extends BaseZ80MachinePlatform<GalaxianMachine> implement
class GalaxianScramblePlatform extends GalaxianPlatform implements Platform {
newMachine() { return new GalaxianScrambleMachine(); }
getPresets() { return GALAXIAN_PRESETS; }
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large. Load diff
-236
View File
@@ -1,236 +0,0 @@
var Module = typeof Module !== 'undefined' ? Module : {};
if (!Module.expectedDataFileDownloads) {
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) {
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 process === 'undefined' && typeof location !== 'undefined') {
// web worker
PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
}
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'];
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'];
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';
xhr.onprogress = function(event) {
var url = packageName;
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) {
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) {
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() {
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'] = [];
Module["preRun"].push(runMetaWithFS);
}
})();
-1
View File
@@ -1 +0,0 @@
{"files":[{"filename":"/include/lz4.h","start":0,"end":2641},{"filename":"/include/c64.h","start":2641,"end":9642},{"filename":"/include/_pbi.h","start":9642,"end":12785},{"filename":"/include/apple2_filetype.h","start":12785,"end":29883},{"filename":"/include/nes.h","start":29883,"end":36683},{"filename":"/include/assert.h","start":36683,"end":39683},{"filename":"/include/_6545.h","start":39683,"end":42515},{"filename":"/include/_6522.h","start":42515,"end":46296},{"filename":"/include/modload.h","start":46296,"end":51278},{"filename":"/include/unistd.h","start":51278,"end":55587},{"filename":"/include/c128.h","start":55587,"end":62105},{"filename":"/include/cx16.h","start":62105,"end":76818},{"filename":"/include/_mikey.h","start":76818,"end":82171},{"filename":"/include/c16.h","start":82171,"end":85136},{"filename":"/include/_6525.h","start":85136,"end":88546},{"filename":"/include/stdio.h","start":88546,"end":94466},{"filename":"/include/lynx.h","start":94466,"end":103027},{"filename":"/include/6502.h","start":103027,"end":108497},{"filename":"/include/string.h","start":108497,"end":113601},{"filename":"/include/atari5200.h","start":113601,"end":117655},{"filename":"/include/_vic.h","start":117655,"end":121371},{"filename":"/include/cbm_filetype.h","start":121371,"end":126320},{"filename":"/include/dirent.h","start":126320,"end":131644},{"filename":"/include/vic20.h","start":131644,"end":137148},{"filename":"/include/atari_screen_charmap.h","start":137148,"end":147122},{"filename":"/include/iso646.h","start":147122,"end":149985},{"filename":"/include/locale.h","start":149985,"end":153642},{"filename":"/include/stddef.h","start":153642,"end":156699},{"filename":"/include/em.h","start":156699,"end":162993},{"filename":"/include/cc65.h","start":162993,"end":168134},{"filename":"/include/stdbool.h","start":168134,"end":170640},{"filename":"/include/osic1p.h","start":170640,"end":173439},{"filename":"/include/stdlib.h","start":173439,"end":179438},{"filename":"/include/atari.h","start":179438,"end":201203},{"filename":"/include/_heap.h","start":201203,"end":202321},{"filename":"/include/cbm_petscii_charmap.h","start":202321,"end":212061},{"filename":"/include/conio.h","start":212061,"end":221087},{"filename":"/include/dio.h","start":221087,"end":226557},{"filename":"/include/_vic2.h","start":226557,"end":237392},{"filename":"/include/time.h","start":237392,"end":242529},{"filename":"/include/cbm510.h","start":242529,"end":249125},{"filename":"/include/atari_atascii_charmap.h","start":249125,"end":258961},{"filename":"/include/joystick.h","start":258961,"end":264102},{"filename":"/include/_suzy.h","start":264102,"end":275260},{"filename":"/include/tgi.h","start":275260,"end":286112},{"filename":"/include/serial.h","start":286112,"end":294017},{"filename":"/include/zlib.h","start":294017,"end":301129},{"filename":"/include/_atari5200os.h","start":301129,"end":305689},{"filename":"/include/stdint.h","start":305689,"end":311885},{"filename":"/include/cbm610.h","start":311885,"end":317911},{"filename":"/include/pet.h","start":317911,"end":322558},{"filename":"/include/_tia.h","start":322558,"end":325189},{"filename":"/include/ctype.h","start":325189,"end":329579},{"filename":"/include/_vdc.h","start":329579,"end":332406},{"filename":"/include/_6526.h","start":332406,"end":336368},{"filename":"/include/geos.h","start":336368,"end":339579},{"filename":"/include/atari2600.h","start":339579,"end":340628},{"filename":"/include/device.h","start":340628,"end":343840},{"filename":"/include/pce.h","start":343840,"end":348647},{"filename":"/include/apple2enh.h","start":348647,"end":353379},{"filename":"/include/cbm264.h","start":353379,"end":359658},{"filename":"/include/plus4.h","start":359658,"end":362726},{"filename":"/include/_riot.h","start":362726,"end":363774},{"filename":"/include/inttypes.h","start":363774,"end":371584},{"filename":"/include/peekpoke.h","start":371584,"end":374692},{"filename":"/include/setjmp.h","start":374692,"end":377538},{"filename":"/include/dbg.h","start":377538,"end":383313},{"filename":"/include/_antic.h","start":383313,"end":395141},{"filename":"/include/target.h","start":395141,"end":398133},{"filename":"/include/_gtia.h","start":398133,"end":411972},{"filename":"/include/stdarg.h","start":411972,"end":414885},{"filename":"/include/gamate.h","start":414885,"end":422616},{"filename":"/include/fcntl.h","start":422616,"end":426166},{"filename":"/include/sym1.h","start":426166,"end":432999},{"filename":"/include/creativision.h","start":432999,"end":436611},{"filename":"/include/telestrat.h","start":436611,"end":441466},{"filename":"/include/atmos.h","start":441466,"end":447354},{"filename":"/include/_atarios.h","start":447354,"end":488540},{"filename":"/include/cbm.h","start":488540,"end":500432},{"filename":"/include/signal.h","start":500432,"end":503773},{"filename":"/include/_sid.h","start":503773,"end":507399},{"filename":"/include/pen.h","start":507399,"end":511099},{"filename":"/incluLine truncated
File diff suppressed because it is too large. Load diff
-210
View File
@@ -1,210 +0,0 @@
var Module = typeof Module !== 'undefined' ? Module : {};
if (!Module.expectedDataFileDownloads) {
Module.expectedDataFileDownloads = 0;
}
Module.expectedDataFileDownloads++;
(function() {
// Do not attempt to redownload the virtual filesystem data when in a pthread or a Wasm Worker context.
if (Module['ENVIRONMENT_IS_PTHREAD'] || Module['$ww']) return;
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 process === 'undefined' && typeof location !== 'undefined') {
// web worker
PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
}
var PACKAGE_NAME = '/home/pzp/8bitworkshop-compilers/output/fs/fs65-atari2600.data';
var REMOTE_PACKAGE_BASE = 'fs65-atari2600.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'];
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';
xhr.onprogress = function(event) {
var url = packageName;
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) {
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) {
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() {
function assert(check, msg) {
if (!check) throw msg + new Error().stack;
}
Module['FS_createPath']("/", "asminc", true, true);
Module['FS_createPath']("/", "cfg", true, true);
Module['FS_createPath']("/", "include", true, true);
Module['FS_createPath']("/include", "arpa", true, true);
Module['FS_createPath']("/include", "em", true, true);
Module['FS_createPath']("/include", "geos", true, true);
Module['FS_createPath']("/include", "joystick", true, true);
Module['FS_createPath']("/include", "mouse", true, true);
Module['FS_createPath']("/include", "sys", true, true);
Module['FS_createPath']("/include", "tgi", true, true);
Module['FS_createPath']("/", "lib", 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;
// canOwn this data in the filesystem, it is a slide into the heap that will never change
Module['FS_createDataFile'](this.name, null, byteArray, true, true, true);
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.constructor.name === ArrayBuffer.name, '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-atari2600.data');
};
Module['addRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-atari2600.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-atari2600.js.metadata');
}
function runMetaWithFS() {
Module['addRunDependency']('fs65-atari2600.js.metadata');
var REMOTE_METADATA_NAME = Module['locateFile'] ? Module['locateFile']('fs65-atari2600.js.metadata', '') : 'fs65-atari2600.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'] = [];
Module["preRun"].push(runMetaWithFS);
}
})();
-1
View File
@@ -1 +0,0 @@
{"files":[{"filename":"/asminc/_file.inc","start":0,"end":464},{"filename":"/asminc/_heap.inc","start":464,"end":1349},{"filename":"/asminc/accelerator.inc","start":1349,"end":3049},{"filename":"/asminc/apple2.inc","start":3049,"end":6307},{"filename":"/asminc/apple2.mac","start":6307,"end":7595},{"filename":"/asminc/ascii_charmap.inc","start":7595,"end":14425},{"filename":"/asminc/atari.inc","start":14425,"end":62110},{"filename":"/asminc/atari.mac","start":62110,"end":63823},{"filename":"/asminc/atari2600.inc","start":63823,"end":64016},{"filename":"/asminc/atari2600_riot.inc","start":64016,"end":64400},{"filename":"/asminc/atari2600_tia.inc","start":64400,"end":65449},{"filename":"/asminc/atari5200.inc","start":65449,"end":69752},{"filename":"/asminc/atari7800.inc","start":69752,"end":70080},{"filename":"/asminc/atari7800_maria.inc","start":70080,"end":70610},{"filename":"/asminc/atari7800_riot.inc","start":70610,"end":70994},{"filename":"/asminc/atari7800_tia.inc","start":70994,"end":72043},{"filename":"/asminc/atari_antic.inc","start":72043,"end":75365},{"filename":"/asminc/atari_atascii_charmap.inc","start":75365,"end":82338},{"filename":"/asminc/atari_gtia.inc","start":82338,"end":86760},{"filename":"/asminc/atari_pokey.inc","start":86760,"end":88494},{"filename":"/asminc/atari_screen_charmap.inc","start":88494,"end":95469},{"filename":"/asminc/atmos.inc","start":95469,"end":98860},{"filename":"/asminc/c128.inc","start":98860,"end":105926},{"filename":"/asminc/c16.inc","start":105926,"end":106066},{"filename":"/asminc/c64.inc","start":106066,"end":112649},{"filename":"/asminc/cbm.mac","start":112649,"end":114085},{"filename":"/asminc/cbm510.inc","start":114085,"end":118479},{"filename":"/asminc/cbm610.inc","start":118479,"end":121083},{"filename":"/asminc/cbm_filetype.inc","start":121083,"end":122234},{"filename":"/asminc/cbm_kernal.inc","start":122234,"end":128300},{"filename":"/asminc/cbm_petscii_charmap.inc","start":128300,"end":135103},{"filename":"/asminc/cbm_screen_charmap.inc","start":135103,"end":141373},{"filename":"/asminc/cpu.mac","start":141373,"end":142310},{"filename":"/asminc/creativision.inc","start":142310,"end":144022},{"filename":"/asminc/ctype.inc","start":144022,"end":145098},{"filename":"/asminc/ctype_common.inc","start":145098,"end":151854},{"filename":"/asminc/ctypetable.inc","start":151854,"end":153425},{"filename":"/asminc/cx16.inc","start":153425,"end":167757},{"filename":"/asminc/em-error.inc","start":167757,"end":170840},{"filename":"/asminc/em-kernel.inc","start":170840,"end":175789},{"filename":"/asminc/errno.inc","start":175789,"end":177152},{"filename":"/asminc/fcntl.inc","start":177152,"end":177500},{"filename":"/asminc/gamate.inc","start":177500,"end":178914},{"filename":"/asminc/generic.mac","start":178914,"end":179870},{"filename":"/asminc/get_tv.inc","start":179870,"end":180095},{"filename":"/asminc/joy-error.inc","start":180095,"end":182980},{"filename":"/asminc/joy-kernel.inc","start":182980,"end":186983},{"filename":"/asminc/kim1.inc","start":186983,"end":188172},{"filename":"/asminc/longbranch.mac","start":188172,"end":190804},{"filename":"/asminc/lynx.inc","start":190804,"end":196556},{"filename":"/asminc/modload.inc","start":196556,"end":200576},{"filename":"/asminc/module.mac","start":200576,"end":200854},{"filename":"/asminc/mouse-kernel.inc","start":200854,"end":208554},{"filename":"/asminc/nes.inc","start":208554,"end":211360},{"filename":"/asminc/o65.inc","start":211360,"end":218757},{"filename":"/asminc/opcodes.inc","start":218757,"end":229981},{"filename":"/asminc/pce.inc","start":229981,"end":232914},{"filename":"/asminc/pet.inc","start":232914,"end":236908},{"filename":"/asminc/plus4.inc","start":236908,"end":239736},{"filename":"/asminc/ser-error.inc","start":239736,"end":243180},{"filename":"/asminc/ser-kernel.inc","start":243180,"end":249960},{"filename":"/asminc/signal.inc","start":249960,"end":253005},{"filename":"/asminc/smc.inc","start":253005,"end":261206},{"filename":"/asminc/stdio.inc","start":261206,"end":264617},{"filename":"/asminc/supervision.inc","start":264617,"end":266089},{"filename":"/asminc/sym1.inc","start":266089,"end":272999},{"filename":"/asminc/telestrat.inc","start":272999,"end":289778},{"filename":"/asminc/tgi-error.inc","start":289778,"end":293074},{"filename":"/asminc/tgi-kernel.inc","start":293074,"end":303557},{"filename":"/asminc/tgi-vectorfont.inc","start":303557,"end":307470},{"filename":"/asminc/time.inc","start":307470,"end":310928},{"filename":"/asminc/utsname.inc","start":310928,"end":313742},{"filename":"/asminc/vic20.inc","start":313742,"end":318619},{"filename":"/asminc/zeropage.inc","start":318619,"end":319338},{"filename":"/cfg/atari2600.cfg","start":319338,"end":320159},{"filename":"/include/6502.h","start":320159,"end":325629},{"filename":"/include/_6522.h","start":325629,"end":329410},{"filename":"/include/_6525.h","start":329410,"end":332820},{"filename":"/include/_6526.h","start":332820,"end":336782}Line truncated
File diff suppressed because it is too large. Load diff
-238
View File
@@ -1,238 +0,0 @@
var Module = typeof Module !== 'undefined' ? Module : {};
if (!Module.expectedDataFileDownloads) {
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) {
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 process === 'undefined' && typeof location !== 'undefined') {
// web worker
PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
}
var PACKAGE_NAME = '/home/pzp/8bitworkshop-compilers/output/fs/fs65-atari.data';
var REMOTE_PACKAGE_BASE = 'fs65-atari.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'];
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';
xhr.onprogress = function(event) {
var url = packageName;
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) {
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) {
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() {
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", "atari", true, true);
Module['FS_createPath']("/target/atari", "drv", true, true);
Module['FS_createPath']("/target/atari/drv", "ser", true, true);
Module['FS_createPath']("/target/atari/drv", "joy", true, true);
Module['FS_createPath']("/target/atari/drv", "tgi", true, true);
Module['FS_createPath']("/target/atari/drv", "emd", true, true);
Module['FS_createPath']("/target/atari/drv", "mou", true, true);
Module['FS_createPath']("/target/atari", "util", true, true);
Module['FS_createPath']("/target", "atari5200", true, true);
Module['FS_createPath']("/target/atari5200", "drv", true, true);
Module['FS_createPath']("/target/atari5200/drv", "joy", true, true);
Module['FS_createPath']("/target", "atarixl", true, true);
Module['FS_createPath']("/target/atarixl", "drv", true, true);
Module['FS_createPath']("/target/atarixl/drv", "ser", true, true);
Module['FS_createPath']("/target/atarixl/drv", "joy", true, true);
Module['FS_createPath']("/target/atarixl/drv", "tgi", true, true);
Module['FS_createPath']("/target/atarixl/drv", "emd", true, true);
Module['FS_createPath']("/target/atarixl/drv", "mou", 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-atari.data');
};
Module['addRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-atari.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-atari.js.metadata');
}
function runMetaWithFS() {
Module['addRunDependency']('fs65-atari.js.metadata');
var REMOTE_METADATA_NAME = Module['locateFile'] ? Module['locateFile']('fs65-atari.js.metadata', '') : 'fs65-atari.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'] = [];
Module["preRun"].push(runMetaWithFS);
}
})();
-1
View File
@@ -1 +0,0 @@
{"files":[{"filename":"/include/lz4.h","start":0,"end":2641},{"filename":"/include/c64.h","start":2641,"end":9642},{"filename":"/include/_pbi.h","start":9642,"end":12785},{"filename":"/include/apple2_filetype.h","start":12785,"end":29883},{"filename":"/include/nes.h","start":29883,"end":36683},{"filename":"/include/assert.h","start":36683,"end":39683},{"filename":"/include/_6545.h","start":39683,"end":42515},{"filename":"/include/_6522.h","start":42515,"end":46296},{"filename":"/include/modload.h","start":46296,"end":51278},{"filename":"/include/unistd.h","start":51278,"end":55587},{"filename":"/include/c128.h","start":55587,"end":62105},{"filename":"/include/cx16.h","start":62105,"end":76818},{"filename":"/include/_mikey.h","start":76818,"end":82171},{"filename":"/include/c16.h","start":82171,"end":85136},{"filename":"/include/_6525.h","start":85136,"end":88546},{"filename":"/include/stdio.h","start":88546,"end":94466},{"filename":"/include/lynx.h","start":94466,"end":103027},{"filename":"/include/6502.h","start":103027,"end":108497},{"filename":"/include/string.h","start":108497,"end":113601},{"filename":"/include/atari5200.h","start":113601,"end":117655},{"filename":"/include/_vic.h","start":117655,"end":121371},{"filename":"/include/cbm_filetype.h","start":121371,"end":126320},{"filename":"/include/dirent.h","start":126320,"end":131644},{"filename":"/include/vic20.h","start":131644,"end":137148},{"filename":"/include/atari_screen_charmap.h","start":137148,"end":147122},{"filename":"/include/iso646.h","start":147122,"end":149985},{"filename":"/include/locale.h","start":149985,"end":153642},{"filename":"/include/stddef.h","start":153642,"end":156699},{"filename":"/include/em.h","start":156699,"end":162993},{"filename":"/include/cc65.h","start":162993,"end":168134},{"filename":"/include/stdbool.h","start":168134,"end":170640},{"filename":"/include/osic1p.h","start":170640,"end":173439},{"filename":"/include/stdlib.h","start":173439,"end":179438},{"filename":"/include/atari.h","start":179438,"end":201203},{"filename":"/include/_heap.h","start":201203,"end":202321},{"filename":"/include/cbm_petscii_charmap.h","start":202321,"end":212061},{"filename":"/include/conio.h","start":212061,"end":221087},{"filename":"/include/dio.h","start":221087,"end":226557},{"filename":"/include/_vic2.h","start":226557,"end":237392},{"filename":"/include/time.h","start":237392,"end":242529},{"filename":"/include/cbm510.h","start":242529,"end":249125},{"filename":"/include/atari_atascii_charmap.h","start":249125,"end":258961},{"filename":"/include/joystick.h","start":258961,"end":264102},{"filename":"/include/_suzy.h","start":264102,"end":275260},{"filename":"/include/tgi.h","start":275260,"end":286112},{"filename":"/include/serial.h","start":286112,"end":294017},{"filename":"/include/zlib.h","start":294017,"end":301129},{"filename":"/include/_atari5200os.h","start":301129,"end":305689},{"filename":"/include/stdint.h","start":305689,"end":311885},{"filename":"/include/cbm610.h","start":311885,"end":317911},{"filename":"/include/pet.h","start":317911,"end":322558},{"filename":"/include/_tia.h","start":322558,"end":325189},{"filename":"/include/ctype.h","start":325189,"end":329579},{"filename":"/include/_vdc.h","start":329579,"end":332406},{"filename":"/include/_6526.h","start":332406,"end":336368},{"filename":"/include/geos.h","start":336368,"end":339579},{"filename":"/include/atari2600.h","start":339579,"end":340628},{"filename":"/include/device.h","start":340628,"end":343840},{"filename":"/include/pce.h","start":343840,"end":348647},{"filename":"/include/apple2enh.h","start":348647,"end":353379},{"filename":"/include/cbm264.h","start":353379,"end":359658},{"filename":"/include/plus4.h","start":359658,"end":362726},{"filename":"/include/_riot.h","start":362726,"end":363774},{"filename":"/include/inttypes.h","start":363774,"end":371584},{"filename":"/include/peekpoke.h","start":371584,"end":374692},{"filename":"/include/setjmp.h","start":374692,"end":377538},{"filename":"/include/dbg.h","start":377538,"end":383313},{"filename":"/include/_antic.h","start":383313,"end":395141},{"filename":"/include/target.h","start":395141,"end":398133},{"filename":"/include/_gtia.h","start":398133,"end":411972},{"filename":"/include/stdarg.h","start":411972,"end":414885},{"filename":"/include/gamate.h","start":414885,"end":422616},{"filename":"/include/fcntl.h","start":422616,"end":426166},{"filename":"/include/sym1.h","start":426166,"end":432999},{"filename":"/include/creativision.h","start":432999,"end":436611},{"filename":"/include/telestrat.h","start":436611,"end":441466},{"filename":"/include/atmos.h","start":441466,"end":447354},{"filename":"/include/_atarios.h","start":447354,"end":488540},{"filename":"/include/cbm.h","start":488540,"end":500432},{"filename":"/include/signal.h","start":500432,"end":503773},{"filename":"/include/_sid.h","start":503773,"end":507399},{"filename":"/include/pen.h","start":507399,"end":511099},{"filename":"/incluLine truncated
File diff suppressed because it is too large. Load diff
-227
View File
@@ -1,227 +0,0 @@
var Module = typeof Module !== 'undefined' ? Module : {};
if (!Module.expectedDataFileDownloads) {
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) {
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 process === 'undefined' && typeof location !== 'undefined') {
// web worker
PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
}
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'];
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'];
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';
xhr.onprogress = function(event) {
var url = packageName;
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) {
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) {
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() {
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);
/** @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-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');
}
function runMetaWithFS() {
Module['addRunDependency']('fs65-c64.js.metadata');
var REMOTE_METADATA_NAME = Module['locateFile'] ? Module['locateFile']('fs65-c64.js.metadata', '') : 'fs65-c64.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'] = [];
Module["preRun"].push(runMetaWithFS);
}
})();
-1
View File
@@ -1 +0,0 @@
{"files":[{"filename":"/include/lz4.h","start":0,"end":2641},{"filename":"/include/c64.h","start":2641,"end":9642},{"filename":"/include/_pbi.h","start":9642,"end":12785},{"filename":"/include/apple2_filetype.h","start":12785,"end":29883},{"filename":"/include/nes.h","start":29883,"end":36683},{"filename":"/include/assert.h","start":36683,"end":39683},{"filename":"/include/_6545.h","start":39683,"end":42515},{"filename":"/include/_6522.h","start":42515,"end":46296},{"filename":"/include/modload.h","start":46296,"end":51278},{"filename":"/include/unistd.h","start":51278,"end":55587},{"filename":"/include/c128.h","start":55587,"end":62105},{"filename":"/include/cx16.h","start":62105,"end":76818},{"filename":"/include/_mikey.h","start":76818,"end":82171},{"filename":"/include/c16.h","start":82171,"end":85136},{"filename":"/include/_6525.h","start":85136,"end":88546},{"filename":"/include/stdio.h","start":88546,"end":94466},{"filename":"/include/lynx.h","start":94466,"end":103027},{"filename":"/include/6502.h","start":103027,"end":108497},{"filename":"/include/string.h","start":108497,"end":113601},{"filename":"/include/atari5200.h","start":113601,"end":117655},{"filename":"/include/_vic.h","start":117655,"end":121371},{"filename":"/include/cbm_filetype.h","start":121371,"end":126320},{"filename":"/include/dirent.h","start":126320,"end":131644},{"filename":"/include/vic20.h","start":131644,"end":137148},{"filename":"/include/atari_screen_charmap.h","start":137148,"end":147122},{"filename":"/include/iso646.h","start":147122,"end":149985},{"filename":"/include/locale.h","start":149985,"end":153642},{"filename":"/include/stddef.h","start":153642,"end":156699},{"filename":"/include/em.h","start":156699,"end":162993},{"filename":"/include/cc65.h","start":162993,"end":168134},{"filename":"/include/stdbool.h","start":168134,"end":170640},{"filename":"/include/osic1p.h","start":170640,"end":173439},{"filename":"/include/stdlib.h","start":173439,"end":179438},{"filename":"/include/atari.h","start":179438,"end":201203},{"filename":"/include/_heap.h","start":201203,"end":202321},{"filename":"/include/cbm_petscii_charmap.h","start":202321,"end":212061},{"filename":"/include/conio.h","start":212061,"end":221087},{"filename":"/include/dio.h","start":221087,"end":226557},{"filename":"/include/_vic2.h","start":226557,"end":237392},{"filename":"/include/time.h","start":237392,"end":242529},{"filename":"/include/cbm510.h","start":242529,"end":249125},{"filename":"/include/atari_atascii_charmap.h","start":249125,"end":258961},{"filename":"/include/joystick.h","start":258961,"end":264102},{"filename":"/include/_suzy.h","start":264102,"end":275260},{"filename":"/include/tgi.h","start":275260,"end":286112},{"filename":"/include/serial.h","start":286112,"end":294017},{"filename":"/include/zlib.h","start":294017,"end":301129},{"filename":"/include/_atari5200os.h","start":301129,"end":305689},{"filename":"/include/stdint.h","start":305689,"end":311885},{"filename":"/include/cbm610.h","start":311885,"end":317911},{"filename":"/include/pet.h","start":317911,"end":322558},{"filename":"/include/_tia.h","start":322558,"end":325189},{"filename":"/include/ctype.h","start":325189,"end":329579},{"filename":"/include/_vdc.h","start":329579,"end":332406},{"filename":"/include/_6526.h","start":332406,"end":336368},{"filename":"/include/geos.h","start":336368,"end":339579},{"filename":"/include/atari2600.h","start":339579,"end":340628},{"filename":"/include/device.h","start":340628,"end":343840},{"filename":"/include/pce.h","start":343840,"end":348647},{"filename":"/include/apple2enh.h","start":348647,"end":353379},{"filename":"/include/cbm264.h","start":353379,"end":359658},{"filename":"/include/plus4.h","start":359658,"end":362726},{"filename":"/include/_riot.h","start":362726,"end":363774},{"filename":"/include/inttypes.h","start":363774,"end":371584},{"filename":"/include/peekpoke.h","start":371584,"end":374692},{"filename":"/include/setjmp.h","start":374692,"end":377538},{"filename":"/include/dbg.h","start":377538,"end":383313},{"filename":"/include/_antic.h","start":383313,"end":395141},{"filename":"/include/target.h","start":395141,"end":398133},{"filename":"/include/_gtia.h","start":398133,"end":411972},{"filename":"/include/stdarg.h","start":411972,"end":414885},{"filename":"/include/gamate.h","start":414885,"end":422616},{"filename":"/include/fcntl.h","start":422616,"end":426166},{"filename":"/include/sym1.h","start":426166,"end":432999},{"filename":"/include/creativision.h","start":432999,"end":436611},{"filename":"/include/telestrat.h","start":436611,"end":441466},{"filename":"/include/atmos.h","start":441466,"end":447354},{"filename":"/include/_atarios.h","start":447354,"end":488540},{"filename":"/include/cbm.h","start":488540,"end":500432},{"filename":"/include/signal.h","start":500432,"end":503773},{"filename":"/include/_sid.h","start":503773,"end":507399},{"filename":"/include/pen.h","start":507399,"end":511099},{"filename":"/incluLine truncated
File diff suppressed because it is too large. Load diff
-224
View File
@@ -1,224 +0,0 @@
var Module = typeof Module !== 'undefined' ? Module : {};
if (!Module.expectedDataFileDownloads) {
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) {
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 process === 'undefined' && typeof location !== 'undefined') {
// web worker
PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
}
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'];
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'];
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';
xhr.onprogress = function(event) {
var url = packageName;
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) {
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) {
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() {
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'] = [];
Module["preRun"].push(runMetaWithFS);
}
})();
-1
View File
@@ -1 +0,0 @@
{"files":[{"filename":"/include/lz4.h","start":0,"end":2641},{"filename":"/include/c64.h","start":2641,"end":9642},{"filename":"/include/_pbi.h","start":9642,"end":12785},{"filename":"/include/apple2_filetype.h","start":12785,"end":29883},{"filename":"/include/nes.h","start":29883,"end":36683},{"filename":"/include/assert.h","start":36683,"end":39683},{"filename":"/include/_6545.h","start":39683,"end":42515},{"filename":"/include/_6522.h","start":42515,"end":46296},{"filename":"/include/modload.h","start":46296,"end":51278},{"filename":"/include/unistd.h","start":51278,"end":55587},{"filename":"/include/c128.h","start":55587,"end":62105},{"filename":"/include/cx16.h","start":62105,"end":76818},{"filename":"/include/_mikey.h","start":76818,"end":82171},{"filename":"/include/c16.h","start":82171,"end":85136},{"filename":"/include/_6525.h","start":85136,"end":88546},{"filename":"/include/stdio.h","start":88546,"end":94466},{"filename":"/include/lynx.h","start":94466,"end":103027},{"filename":"/include/6502.h","start":103027,"end":108497},{"filename":"/include/string.h","start":108497,"end":113601},{"filename":"/include/atari5200.h","start":113601,"end":117655},{"filename":"/include/_vic.h","start":117655,"end":121371},{"filename":"/include/cbm_filetype.h","start":121371,"end":126320},{"filename":"/include/dirent.h","start":126320,"end":131644},{"filename":"/include/vic20.h","start":131644,"end":137148},{"filename":"/include/atari_screen_charmap.h","start":137148,"end":147122},{"filename":"/include/iso646.h","start":147122,"end":149985},{"filename":"/include/locale.h","start":149985,"end":153642},{"filename":"/include/stddef.h","start":153642,"end":156699},{"filename":"/include/em.h","start":156699,"end":162993},{"filename":"/include/cc65.h","start":162993,"end":168134},{"filename":"/include/stdbool.h","start":168134,"end":170640},{"filename":"/include/osic1p.h","start":170640,"end":173439},{"filename":"/include/stdlib.h","start":173439,"end":179438},{"filename":"/include/atari.h","start":179438,"end":201203},{"filename":"/include/_heap.h","start":201203,"end":202321},{"filename":"/include/cbm_petscii_charmap.h","start":202321,"end":212061},{"filename":"/include/conio.h","start":212061,"end":221087},{"filename":"/include/dio.h","start":221087,"end":226557},{"filename":"/include/_vic2.h","start":226557,"end":237392},{"filename":"/include/time.h","start":237392,"end":242529},{"filename":"/include/cbm510.h","start":242529,"end":249125},{"filename":"/include/atari_atascii_charmap.h","start":249125,"end":258961},{"filename":"/include/joystick.h","start":258961,"end":264102},{"filename":"/include/_suzy.h","start":264102,"end":275260},{"filename":"/include/tgi.h","start":275260,"end":286112},{"filename":"/include/serial.h","start":286112,"end":294017},{"filename":"/include/zlib.h","start":294017,"end":301129},{"filename":"/include/_atari5200os.h","start":301129,"end":305689},{"filename":"/include/stdint.h","start":305689,"end":311885},{"filename":"/include/cbm610.h","start":311885,"end":317911},{"filename":"/include/pet.h","start":317911,"end":322558},{"filename":"/include/_tia.h","start":322558,"end":325189},{"filename":"/include/ctype.h","start":325189,"end":329579},{"filename":"/include/_vdc.h","start":329579,"end":332406},{"filename":"/include/_6526.h","start":332406,"end":336368},{"filename":"/include/geos.h","start":336368,"end":339579},{"filename":"/include/atari2600.h","start":339579,"end":340628},{"filename":"/include/device.h","start":340628,"end":343840},{"filename":"/include/pce.h","start":343840,"end":348647},{"filename":"/include/apple2enh.h","start":348647,"end":353379},{"filename":"/include/cbm264.h","start":353379,"end":359658},{"filename":"/include/plus4.h","start":359658,"end":362726},{"filename":"/include/_riot.h","start":362726,"end":363774},{"filename":"/include/inttypes.h","start":363774,"end":371584},{"filename":"/include/peekpoke.h","start":371584,"end":374692},{"filename":"/include/setjmp.h","start":374692,"end":377538},{"filename":"/include/dbg.h","start":377538,"end":383313},{"filename":"/include/_antic.h","start":383313,"end":395141},{"filename":"/include/target.h","start":395141,"end":398133},{"filename":"/include/_gtia.h","start":398133,"end":411972},{"filename":"/include/stdarg.h","start":411972,"end":414885},{"filename":"/include/gamate.h","start":414885,"end":422616},{"filename":"/include/fcntl.h","start":422616,"end":426166},{"filename":"/include/sym1.h","start":426166,"end":432999},{"filename":"/include/creativision.h","start":432999,"end":436611},{"filename":"/include/telestrat.h","start":436611,"end":441466},{"filename":"/include/atmos.h","start":441466,"end":447354},{"filename":"/include/_atarios.h","start":447354,"end":488540},{"filename":"/include/cbm.h","start":488540,"end":500432},{"filename":"/include/signal.h","start":500432,"end":503773},{"filename":"/include/_sid.h","start":503773,"end":507399},{"filename":"/include/pen.h","start":507399,"end":511099},{"filename":"/incluLine truncated
File diff suppressed because it is too large. Load diff
-219
View File
@@ -1,219 +0,0 @@
var Module = typeof Module !== 'undefined' ? Module : {};
if (!Module.expectedDataFileDownloads) {
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) {
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 process === 'undefined' && typeof location !== 'undefined') {
// web worker
PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
}
var PACKAGE_NAME = '/home/pzp/8bitworkshop-compilers/output/fs/fs65-none.data';
var REMOTE_PACKAGE_BASE = 'fs65-none.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'];
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';
xhr.onprogress = function(event) {
var url = packageName;
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) {
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) {
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() {
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);
/** @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-none.data');
};
Module['addRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-none.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-none.js.metadata');
}
function runMetaWithFS() {
Module['addRunDependency']('fs65-none.js.metadata');
var REMOTE_METADATA_NAME = Module['locateFile'] ? Module['locateFile']('fs65-none.js.metadata', '') : 'fs65-none.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'] = [];
Module["preRun"].push(runMetaWithFS);
}
})();
-1
View File
@@ -1 +0,0 @@
{"files":[{"filename":"/include/lz4.h","start":0,"end":2641},{"filename":"/include/c64.h","start":2641,"end":9642},{"filename":"/include/_pbi.h","start":9642,"end":12785},{"filename":"/include/apple2_filetype.h","start":12785,"end":29883},{"filename":"/include/nes.h","start":29883,"end":36683},{"filename":"/include/assert.h","start":36683,"end":39683},{"filename":"/include/_6545.h","start":39683,"end":42515},{"filename":"/include/_6522.h","start":42515,"end":46296},{"filename":"/include/modload.h","start":46296,"end":51278},{"filename":"/include/unistd.h","start":51278,"end":55587},{"filename":"/include/c128.h","start":55587,"end":62105},{"filename":"/include/cx16.h","start":62105,"end":76818},{"filename":"/include/_mikey.h","start":76818,"end":82171},{"filename":"/include/c16.h","start":82171,"end":85136},{"filename":"/include/_6525.h","start":85136,"end":88546},{"filename":"/include/stdio.h","start":88546,"end":94466},{"filename":"/include/lynx.h","start":94466,"end":103027},{"filename":"/include/6502.h","start":103027,"end":108497},{"filename":"/include/string.h","start":108497,"end":113601},{"filename":"/include/atari5200.h","start":113601,"end":117655},{"filename":"/include/_vic.h","start":117655,"end":121371},{"filename":"/include/cbm_filetype.h","start":121371,"end":126320},{"filename":"/include/dirent.h","start":126320,"end":131644},{"filename":"/include/vic20.h","start":131644,"end":137148},{"filename":"/include/atari_screen_charmap.h","start":137148,"end":147122},{"filename":"/include/iso646.h","start":147122,"end":149985},{"filename":"/include/locale.h","start":149985,"end":153642},{"filename":"/include/stddef.h","start":153642,"end":156699},{"filename":"/include/em.h","start":156699,"end":162993},{"filename":"/include/cc65.h","start":162993,"end":168134},{"filename":"/include/stdbool.h","start":168134,"end":170640},{"filename":"/include/osic1p.h","start":170640,"end":173439},{"filename":"/include/stdlib.h","start":173439,"end":179438},{"filename":"/include/atari.h","start":179438,"end":201203},{"filename":"/include/_heap.h","start":201203,"end":202321},{"filename":"/include/cbm_petscii_charmap.h","start":202321,"end":212061},{"filename":"/include/conio.h","start":212061,"end":221087},{"filename":"/include/dio.h","start":221087,"end":226557},{"filename":"/include/_vic2.h","start":226557,"end":237392},{"filename":"/include/time.h","start":237392,"end":242529},{"filename":"/include/cbm510.h","start":242529,"end":249125},{"filename":"/include/atari_atascii_charmap.h","start":249125,"end":258961},{"filename":"/include/joystick.h","start":258961,"end":264102},{"filename":"/include/_suzy.h","start":264102,"end":275260},{"filename":"/include/tgi.h","start":275260,"end":286112},{"filename":"/include/serial.h","start":286112,"end":294017},{"filename":"/include/zlib.h","start":294017,"end":301129},{"filename":"/include/_atari5200os.h","start":301129,"end":305689},{"filename":"/include/stdint.h","start":305689,"end":311885},{"filename":"/include/cbm610.h","start":311885,"end":317911},{"filename":"/include/pet.h","start":317911,"end":322558},{"filename":"/include/_tia.h","start":322558,"end":325189},{"filename":"/include/ctype.h","start":325189,"end":329579},{"filename":"/include/_vdc.h","start":329579,"end":332406},{"filename":"/include/_6526.h","start":332406,"end":336368},{"filename":"/include/geos.h","start":336368,"end":339579},{"filename":"/include/atari2600.h","start":339579,"end":340628},{"filename":"/include/device.h","start":340628,"end":343840},{"filename":"/include/pce.h","start":343840,"end":348647},{"filename":"/include/apple2enh.h","start":348647,"end":353379},{"filename":"/include/cbm264.h","start":353379,"end":359658},{"filename":"/include/plus4.h","start":359658,"end":362726},{"filename":"/include/_riot.h","start":362726,"end":363774},{"filename":"/include/inttypes.h","start":363774,"end":371584},{"filename":"/include/peekpoke.h","start":371584,"end":374692},{"filename":"/include/setjmp.h","start":374692,"end":377538},{"filename":"/include/dbg.h","start":377538,"end":383313},{"filename":"/include/_antic.h","start":383313,"end":395141},{"filename":"/include/target.h","start":395141,"end":398133},{"filename":"/include/_gtia.h","start":398133,"end":411972},{"filename":"/include/stdarg.h","start":411972,"end":414885},{"filename":"/include/gamate.h","start":414885,"end":422616},{"filename":"/include/fcntl.h","start":422616,"end":426166},{"filename":"/include/sym1.h","start":426166,"end":432999},{"filename":"/include/creativision.h","start":432999,"end":436611},{"filename":"/include/telestrat.h","start":436611,"end":441466},{"filename":"/include/atmos.h","start":441466,"end":447354},{"filename":"/include/_atarios.h","start":447354,"end":488540},{"filename":"/include/cbm.h","start":488540,"end":500432},{"filename":"/include/signal.h","start":500432,"end":503773},{"filename":"/include/_sid.h","start":503773,"end":507399},{"filename":"/include/pen.h","start":507399,"end":511099},{"filename":"/incluLine truncated
File diff suppressed because it is too large. Load diff
-214
View File
@@ -1,214 +0,0 @@
var Module = typeof Module !== 'undefined' ? Module : {};
if (!Module.expectedDataFileDownloads) {
Module.expectedDataFileDownloads = 0;
}
Module.expectedDataFileDownloads++;
(function() {
// Do not attempt to redownload the virtual filesystem data when in a pthread or a Wasm Worker context.
if (Module['ENVIRONMENT_IS_PTHREAD'] || Module['$ww']) return;
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 process === 'undefined' && typeof location !== 'undefined') {
// web worker
PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
}
var PACKAGE_NAME = '/home/pzp/8bitworkshop-compilers/output/fs/fs65-pce.data';
var REMOTE_PACKAGE_BASE = 'fs65-pce.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'];
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';
xhr.onprogress = function(event) {
var url = packageName;
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) {
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) {
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() {
function assert(check, msg) {
if (!check) throw msg + new Error().stack;
}
Module['FS_createPath']("/", "asminc", true, true);
Module['FS_createPath']("/", "cfg", true, true);
Module['FS_createPath']("/", "include", true, true);
Module['FS_createPath']("/include", "arpa", true, true);
Module['FS_createPath']("/include", "em", true, true);
Module['FS_createPath']("/include", "geos", true, true);
Module['FS_createPath']("/include", "joystick", true, true);
Module['FS_createPath']("/include", "mouse", true, true);
Module['FS_createPath']("/include", "sys", true, true);
Module['FS_createPath']("/include", "tgi", true, true);
Module['FS_createPath']("/", "lib", true, true);
Module['FS_createPath']("/", "target", true, true);
Module['FS_createPath']("/target", "pce", true, true);
Module['FS_createPath']("/target/pce", "drv", true, true);
Module['FS_createPath']("/target/pce/drv", "joy", 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;
// canOwn this data in the filesystem, it is a slide into the heap that will never change
Module['FS_createDataFile'](this.name, null, byteArray, true, true, true);
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.constructor.name === ArrayBuffer.name, '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-pce.data');
};
Module['addRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-pce.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-pce.js.metadata');
}
function runMetaWithFS() {
Module['addRunDependency']('fs65-pce.js.metadata');
var REMOTE_METADATA_NAME = Module['locateFile'] ? Module['locateFile']('fs65-pce.js.metadata', '') : 'fs65-pce.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'] = [];
Module["preRun"].push(runMetaWithFS);
}
})();
-1
View File
@@ -1 +0,0 @@
{"files":[{"filename":"/asminc/_file.inc","start":0,"end":464},{"filename":"/asminc/_heap.inc","start":464,"end":1349},{"filename":"/asminc/accelerator.inc","start":1349,"end":3049},{"filename":"/asminc/apple2.inc","start":3049,"end":6307},{"filename":"/asminc/apple2.mac","start":6307,"end":7595},{"filename":"/asminc/ascii_charmap.inc","start":7595,"end":14425},{"filename":"/asminc/atari.inc","start":14425,"end":62110},{"filename":"/asminc/atari.mac","start":62110,"end":63823},{"filename":"/asminc/atari2600.inc","start":63823,"end":64016},{"filename":"/asminc/atari2600_riot.inc","start":64016,"end":64400},{"filename":"/asminc/atari2600_tia.inc","start":64400,"end":65449},{"filename":"/asminc/atari5200.inc","start":65449,"end":69752},{"filename":"/asminc/atari7800.inc","start":69752,"end":70080},{"filename":"/asminc/atari7800_maria.inc","start":70080,"end":70610},{"filename":"/asminc/atari7800_riot.inc","start":70610,"end":70994},{"filename":"/asminc/atari7800_tia.inc","start":70994,"end":72043},{"filename":"/asminc/atari_antic.inc","start":72043,"end":75365},{"filename":"/asminc/atari_atascii_charmap.inc","start":75365,"end":82338},{"filename":"/asminc/atari_gtia.inc","start":82338,"end":86760},{"filename":"/asminc/atari_pokey.inc","start":86760,"end":88494},{"filename":"/asminc/atari_screen_charmap.inc","start":88494,"end":95469},{"filename":"/asminc/atmos.inc","start":95469,"end":98860},{"filename":"/asminc/c128.inc","start":98860,"end":105926},{"filename":"/asminc/c16.inc","start":105926,"end":106066},{"filename":"/asminc/c64.inc","start":106066,"end":112649},{"filename":"/asminc/cbm.mac","start":112649,"end":114085},{"filename":"/asminc/cbm510.inc","start":114085,"end":118479},{"filename":"/asminc/cbm610.inc","start":118479,"end":121083},{"filename":"/asminc/cbm_filetype.inc","start":121083,"end":122234},{"filename":"/asminc/cbm_kernal.inc","start":122234,"end":128300},{"filename":"/asminc/cbm_petscii_charmap.inc","start":128300,"end":135103},{"filename":"/asminc/cbm_screen_charmap.inc","start":135103,"end":141373},{"filename":"/asminc/cpu.mac","start":141373,"end":142310},{"filename":"/asminc/creativision.inc","start":142310,"end":144022},{"filename":"/asminc/ctype.inc","start":144022,"end":145098},{"filename":"/asminc/ctype_common.inc","start":145098,"end":151854},{"filename":"/asminc/ctypetable.inc","start":151854,"end":153425},{"filename":"/asminc/cx16.inc","start":153425,"end":167757},{"filename":"/asminc/em-error.inc","start":167757,"end":170840},{"filename":"/asminc/em-kernel.inc","start":170840,"end":175789},{"filename":"/asminc/errno.inc","start":175789,"end":177152},{"filename":"/asminc/fcntl.inc","start":177152,"end":177500},{"filename":"/asminc/gamate.inc","start":177500,"end":178914},{"filename":"/asminc/generic.mac","start":178914,"end":179851},{"filename":"/asminc/get_tv.inc","start":179851,"end":180076},{"filename":"/asminc/joy-error.inc","start":180076,"end":182961},{"filename":"/asminc/joy-kernel.inc","start":182961,"end":186964},{"filename":"/asminc/kim1.inc","start":186964,"end":188153},{"filename":"/asminc/longbranch.mac","start":188153,"end":190785},{"filename":"/asminc/lynx.inc","start":190785,"end":196537},{"filename":"/asminc/modload.inc","start":196537,"end":200557},{"filename":"/asminc/module.mac","start":200557,"end":200835},{"filename":"/asminc/mouse-kernel.inc","start":200835,"end":208535},{"filename":"/asminc/nes.inc","start":208535,"end":211341},{"filename":"/asminc/o65.inc","start":211341,"end":218738},{"filename":"/asminc/opcodes.inc","start":218738,"end":229962},{"filename":"/asminc/pce.inc","start":229962,"end":232895},{"filename":"/asminc/pet.inc","start":232895,"end":236889},{"filename":"/asminc/plus4.inc","start":236889,"end":239717},{"filename":"/asminc/ser-error.inc","start":239717,"end":243161},{"filename":"/asminc/ser-kernel.inc","start":243161,"end":249941},{"filename":"/asminc/signal.inc","start":249941,"end":252986},{"filename":"/asminc/smc.inc","start":252986,"end":261187},{"filename":"/asminc/stdio.inc","start":261187,"end":264598},{"filename":"/asminc/supervision.inc","start":264598,"end":266070},{"filename":"/asminc/sym1.inc","start":266070,"end":272980},{"filename":"/asminc/telestrat.inc","start":272980,"end":289759},{"filename":"/asminc/tgi-error.inc","start":289759,"end":293055},{"filename":"/asminc/tgi-kernel.inc","start":293055,"end":303538},{"filename":"/asminc/tgi-vectorfont.inc","start":303538,"end":307451},{"filename":"/asminc/time.inc","start":307451,"end":310909},{"filename":"/asminc/utsname.inc","start":310909,"end":313723},{"filename":"/asminc/vic20.inc","start":313723,"end":318600},{"filename":"/asminc/zeropage.inc","start":318600,"end":319319},{"filename":"/cfg/pce.cfg","start":319319,"end":321161},{"filename":"/include/6502.h","start":321161,"end":326631},{"filename":"/include/_6522.h","start":326631,"end":330412},{"filename":"/include/_6525.h","start":330412,"end":333822},{"filename":"/include/_6526.h","start":333822,"end":337784},{"filLine truncated
File diff suppressed because it is too large. Load diff
-225
View File
@@ -1,225 +0,0 @@
var Module = typeof Module !== 'undefined' ? Module : {};
if (!Module.expectedDataFileDownloads) {
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) {
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 process === 'undefined' && typeof location !== 'undefined') {
// web worker
PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
}
var PACKAGE_NAME = '/home/pzp/8bitworkshop-compilers/output/fs/fs65-vic20.data';
var REMOTE_PACKAGE_BASE = 'fs65-vic20.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'];
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';
xhr.onprogress = function(event) {
var url = packageName;
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) {
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) {
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() {
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", "vic20", true, true);
Module['FS_createPath']("/target/vic20", "drv", true, true);
Module['FS_createPath']("/target/vic20/drv", "joy", true, true);
Module['FS_createPath']("/target/vic20/drv", "tgi", true, true);
Module['FS_createPath']("/target/vic20/drv", "emd", 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-vic20.data');
};
Module['addRunDependency']('datafile_/home/pzp/8bitworkshop-compilers/output/fs/fs65-vic20.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-vic20.js.metadata');
}
function runMetaWithFS() {
Module['addRunDependency']('fs65-vic20.js.metadata');
var REMOTE_METADATA_NAME = Module['locateFile'] ? Module['locateFile']('fs65-vic20.js.metadata', '') : 'fs65-vic20.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'] = [];
Module["preRun"].push(runMetaWithFS);
}
})();
-1
View File
@@ -1 +0,0 @@
{"files":[{"filename":"/include/lz4.h","start":0,"end":2641},{"filename":"/include/c64.h","start":2641,"end":9642},{"filename":"/include/_pbi.h","start":9642,"end":12785},{"filename":"/include/apple2_filetype.h","start":12785,"end":29883},{"filename":"/include/nes.h","start":29883,"end":36683},{"filename":"/include/assert.h","start":36683,"end":39683},{"filename":"/include/_6545.h","start":39683,"end":42515},{"filename":"/include/_6522.h","start":42515,"end":46296},{"filename":"/include/modload.h","start":46296,"end":51278},{"filename":"/include/unistd.h","start":51278,"end":55587},{"filename":"/include/c128.h","start":55587,"end":62105},{"filename":"/include/cx16.h","start":62105,"end":76818},{"filename":"/include/_mikey.h","start":76818,"end":82171},{"filename":"/include/c16.h","start":82171,"end":85136},{"filename":"/include/_6525.h","start":85136,"end":88546},{"filename":"/include/stdio.h","start":88546,"end":94466},{"filename":"/include/lynx.h","start":94466,"end":103027},{"filename":"/include/6502.h","start":103027,"end":108497},{"filename":"/include/string.h","start":108497,"end":113601},{"filename":"/include/atari5200.h","start":113601,"end":117655},{"filename":"/include/_vic.h","start":117655,"end":121371},{"filename":"/include/cbm_filetype.h","start":121371,"end":126320},{"filename":"/include/dirent.h","start":126320,"end":131644},{"filename":"/include/vic20.h","start":131644,"end":137148},{"filename":"/include/atari_screen_charmap.h","start":137148,"end":147122},{"filename":"/include/iso646.h","start":147122,"end":149985},{"filename":"/include/locale.h","start":149985,"end":153642},{"filename":"/include/stddef.h","start":153642,"end":156699},{"filename":"/include/em.h","start":156699,"end":162993},{"filename":"/include/cc65.h","start":162993,"end":168134},{"filename":"/include/stdbool.h","start":168134,"end":170640},{"filename":"/include/osic1p.h","start":170640,"end":173439},{"filename":"/include/stdlib.h","start":173439,"end":179438},{"filename":"/include/atari.h","start":179438,"end":201203},{"filename":"/include/_heap.h","start":201203,"end":202321},{"filename":"/include/cbm_petscii_charmap.h","start":202321,"end":212061},{"filename":"/include/conio.h","start":212061,"end":221087},{"filename":"/include/dio.h","start":221087,"end":226557},{"filename":"/include/_vic2.h","start":226557,"end":237392},{"filename":"/include/time.h","start":237392,"end":242529},{"filename":"/include/cbm510.h","start":242529,"end":249125},{"filename":"/include/atari_atascii_charmap.h","start":249125,"end":258961},{"filename":"/include/joystick.h","start":258961,"end":264102},{"filename":"/include/_suzy.h","start":264102,"end":275260},{"filename":"/include/tgi.h","start":275260,"end":286112},{"filename":"/include/serial.h","start":286112,"end":294017},{"filename":"/include/zlib.h","start":294017,"end":301129},{"filename":"/include/_atari5200os.h","start":301129,"end":305689},{"filename":"/include/stdint.h","start":305689,"end":311885},{"filename":"/include/cbm610.h","start":311885,"end":317911},{"filename":"/include/pet.h","start":317911,"end":322558},{"filename":"/include/_tia.h","start":322558,"end":325189},{"filename":"/include/ctype.h","start":325189,"end":329579},{"filename":"/include/_vdc.h","start":329579,"end":332406},{"filename":"/include/_6526.h","start":332406,"end":336368},{"filename":"/include/geos.h","start":336368,"end":339579},{"filename":"/include/atari2600.h","start":339579,"end":340628},{"filename":"/include/device.h","start":340628,"end":343840},{"filename":"/include/pce.h","start":343840,"end":348647},{"filename":"/include/apple2enh.h","start":348647,"end":353379},{"filename":"/include/cbm264.h","start":353379,"end":359658},{"filename":"/include/plus4.h","start":359658,"end":362726},{"filename":"/include/_riot.h","start":362726,"end":363774},{"filename":"/include/inttypes.h","start":363774,"end":371584},{"filename":"/include/peekpoke.h","start":371584,"end":374692},{"filename":"/include/setjmp.h","start":374692,"end":377538},{"filename":"/include/dbg.h","start":377538,"end":383313},{"filename":"/include/_antic.h","start":383313,"end":395141},{"filename":"/include/target.h","start":395141,"end":398133},{"filename":"/include/_gtia.h","start":398133,"end":411972},{"filename":"/include/stdarg.h","start":411972,"end":414885},{"filename":"/include/gamate.h","start":414885,"end":422616},{"filename":"/include/fcntl.h","start":422616,"end":426166},{"filename":"/include/sym1.h","start":426166,"end":432999},{"filename":"/include/creativision.h","start":432999,"end":436611},{"filename":"/include/telestrat.h","start":436611,"end":441466},{"filename":"/include/atmos.h","start":441466,"end":447354},{"filename":"/include/_atarios.h","start":447354,"end":488540},{"filename":"/include/cbm.h","start":488540,"end":500432},{"filename":"/include/signal.h","start":500432,"end":503773},{"filename":"/include/_sid.h","start":503773,"end":507399},{"filename":"/include/pen.h","start":507399,"end":511099},{"filename":"/incluLine truncated
+98 -86
View File
@@ -1,11 +1,65 @@
import { defineArgs, extraArgsFor, linkSymbolArgs } from "../../common/toolmeta";
import { getRootBasePlatform } from "../../common/util";
import { defineArgs, extraArgsFor, linkSymbolArgs, getSharedFileSystemName } from "../../common/toolmeta";
import { CodeListingMap, WorkerError } from "../../common/workertypes";
import { WASIRunner } from "../../common/wasi/wasishim";
import { BuildStep, BuildStepResult, gatherFiles, staleFiles, populateFiles, fixParamsWithDefines, applyAsmProjectParams, putWorkFile, populateExtraFiles, store, populateEntry, anyTargetChanged, processEmbedDirective } from "../builder";
import { re_crlf, makeErrorMatcher } from "../listingutils";
import { parseCC65DbgSizes } from "./cc65dbg";
import { loadNative, moduleInstFn, print_fn, setupFS, execMain, execToFile, emglobal, EmscriptenModule } from "../wasmutils";
import { loadWASMBinary, ensureWasiFilesystem } from "../wasmutils";
import { wasiFSAdapter } from "../wasiutils";
// the WASI builds look for their data under share/cc65 in the per-platform
// cc65-fs-<platform>.zip, preopened at '.'
const CC65_SHARE = 'share/cc65';
const wasiModules: { [tool: string]: WebAssembly.Module } = {};
/**
* Run cc65, ca65 or ld65 on a fresh WASI runner layered over the platform's
* cc65 filesystem. `populate` copies the step's inputs into the runner first.
* Returns the runner (for reading outputs) and its stderr lines.
*/
async function runCC65Tool(step: BuildStep, tool: string, args: string[],
populate: (fs: ReturnType<typeof wasiFSAdapter>) => void) {
const fsname = getSharedFileSystemName('cc65', step.platform);
if (!fsname || !fsname.startsWith('wasi:'))
throw new Error("No cc65 filesystem for platform " + step.platform);
const sharefs = await ensureWasiFilesystem(fsname.substring(5));
if (!sharefs)
throw new Error("Could not load cc65 filesystem " + fsname);
if (!wasiModules[tool]) {
wasiModules[tool] = new WebAssembly.Module(loadWASMBinary(tool));
}
const wasi = new WASIRunner();
wasi.initSync(wasiModules[tool]);
wasi.fs.setParent(sharefs);
populate(wasiFSAdapter(wasi));
wasi.addPreopenDirectory(".");
wasi.setArgs([tool, ...args]);
const errno = wasi.run();
console.log('exec', tool, args.join(' '));
const stdout = wasi.fds[1].getBytesAsString();
if (stdout) console.log(stdout);
const stderr = wasi.fds[2].getBytesAsString().split(re_crlf).filter(s => s != '');
return { wasi, errno, stderr };
}
/** Report a failed tool run that printed no parseable error message. */
function checkExitCode(tool: string, errno: number, stderr: string[], errors: WorkerError[]) {
if (errno && !errors.length) {
errors.push({ line: 0, msg: tool + " exited with code " + errno + (stderr.length ? ": " + stderr.join('\n') : '') });
}
}
function readWASIOutput(wasi: WASIRunner, path: string): Uint8Array {
const fd = wasi.fs.getFile(path);
if (!fd) throw new Error("Missing output file " + path);
return fd.getBytes().slice();
}
function readWASIOutputString(wasi: WASIRunner, path: string): string {
return new TextDecoder().decode(readWASIOutput(wasi, path));
}
/*
@@ -108,8 +162,7 @@ function parseCA65Listing(asmfn: string, code: string, symbols, segments, params
return origlines;
}
export function assembleCA65(step: BuildStep): BuildStepResult {
loadNative("ca65");
export async function assembleCA65(step: BuildStep): Promise<BuildStepResult> {
var errors = [];
gatherFiles(step, { mainFilePath: "main.s" });
var objpath = step.prefix + ".o";
@@ -121,18 +174,7 @@ export function assembleCA65(step: BuildStep): BuildStepResult {
}
fixParamsWithDefines(step.path, step.params);
if (staleFiles(step, [objpath, lstpath])) {
var objout, lstout;
var CA65: EmscriptenModule = emglobal.ca65({
instantiateWasm: moduleInstFn('ca65'),
noInitialRun: true,
//logReadFiles:true,
print: print_fn,
printErr: makeErrorMatcher(errors, /(.+?):(\d+): (.+)/, 2, 3, step.path, 1),
});
var FS = CA65.FS;
setupFS(FS, '65-' + getRootBasePlatform(step.platform));
populateFiles(step, FS);
var args = ['-v', '-g', '-I', '/share/asminc', '-o', objpath, '-l', lstpath, step.path];
var args = ['-v', '-g', '-I', CC65_SHARE + '/asminc', '-o', objpath, '-l', lstpath, step.path];
args.unshift.apply(args, ["-D", "__8BITWORKSHOP__=1"]);
if (step.mainfile) {
args.unshift.apply(args, ["-D", "__MAIN__=1"]);
@@ -144,17 +186,17 @@ export function assembleCA65(step: BuildStep): BuildStepResult {
.concat(defineArgs('ca65', step.params.symbols && step.params.symbols.assembler))
.concat(extraArgsFor('ca65', step.params.buildArgs));
args.splice(args.length - 1, 0, ...extra);
execMain(step, CA65, args);
const { wasi, errno, stderr } = await runCC65Tool(step, 'ca65', args, (fs) => populateFiles(step, fs));
stderr.forEach(makeErrorMatcher(errors, /(.+?):(\d+): (.+)/, 2, 3, step.path, 1));
checkExitCode('ca65', errno, stderr, errors);
if (errors.length) {
let listings : CodeListingMap = {};
// TODO? change extension to .lst
//listings[step.path] = { lines:[], text:getWorkFileAsString(step.path) };
return { errors, listings };
}
objout = FS.readFile(objpath, { encoding: 'binary' });
lstout = FS.readFile(lstpath, { encoding: 'utf8' });
putWorkFile(objpath, objout);
putWorkFile(lstpath, lstout);
putWorkFile(objpath, readWASIOutput(wasi, objpath));
putWorkFile(lstpath, readWASIOutputString(wasi, lstpath));
}
return {
linktool: "ld65",
@@ -163,32 +205,16 @@ export function assembleCA65(step: BuildStep): BuildStepResult {
};
}
export function linkLD65(step: BuildStep): BuildStepResult {
loadNative("ld65");
export async function linkLD65(step: BuildStep): Promise<BuildStepResult> {
var params = step.params;
gatherFiles(step);
var binpath = "main";
if (staleFiles(step, [binpath])) {
var errors = [];
var LD65: EmscriptenModule = emglobal.ld65({
instantiateWasm: moduleInstFn('ld65'),
noInitialRun: true,
//logReadFiles:true,
print: print_fn,
printErr: function (s) { errors.push({ msg: s, line: 0 }); }
});
var FS = LD65.FS;
setupFS(FS, '65-' + getRootBasePlatform(step.platform));
populateFiles(step, FS);
populateExtraFiles(step, FS, params.extra_link_files);
// populate .cfg file, if it is a custom one
if (store.hasFile(params.cfgfile)) {
populateEntry(FS, params.cfgfile, store.getFileEntry(params.cfgfile), null);
}
var libargs = params.libargs || [];
var cfgfile = params.cfgfile;
var args = ['--cfg-path', '/share/cfg',
'--lib-path', '/share/lib',
var args = ['--cfg-path', CC65_SHARE + '/cfg',
'--lib-path', CC65_SHARE + '/lib',
'-C', cfgfile,
'-Ln', 'main.vice',
'--dbgfile', 'main.dbg',
@@ -197,12 +223,22 @@ export function linkLD65(step: BuildStep): BuildStepResult {
// //#symbol ld (symbols not already merged into libargs) and //#flag ld
args.push.apply(args, linkSymbolArgs('ld65', params.symbols && params.symbols.linker));
args.push.apply(args, extraArgsFor('ld65', params.buildArgs));
execMain(step, LD65, args);
const { wasi, errno, stderr } = await runCC65Tool(step, 'ld65', args, (fs) => {
populateFiles(step, fs);
populateExtraFiles(step, fs, params.extra_link_files);
// populate .cfg file, if it is a custom one
if (store.hasFile(params.cfgfile)) {
populateEntry(fs, params.cfgfile, store.getFileEntry(params.cfgfile), null);
}
});
// any ld65 message (even a warning) fails the build
for (let s of stderr) errors.push({ msg: s, line: 0 });
checkExitCode('ld65', errno, stderr, errors);
if (errors.length)
return { errors: errors };
var aout = FS.readFile("main", { encoding: 'binary' });
var mapout = FS.readFile("main.map", { encoding: 'utf8' });
var viceout = FS.readFile("main.vice", { encoding: 'utf8' });
var aout = readWASIOutput(wasi, "main");
var mapout = readWASIOutputString(wasi, "main.map");
var viceout = readWASIOutputString(wasi, "main.vice");
// correct binary for PCEngine
if (step.platform == 'pce' && aout.length > 0x2000) {
// move 8 KB from end to front
@@ -232,7 +268,7 @@ export function linkLD65(step: BuildStep): BuildStepResult {
// symbol sizes from the linker debug file
var symbolsizes = {};
try {
let dbgsyms = parseCC65DbgSizes(FS.readFile("main.dbg", { encoding: 'utf8' }), params.ignore_segments);
let dbgsyms = parseCC65DbgSizes(readWASIOutputString(wasi, "main.dbg"), params.ignore_segments);
symbolsizes = dbgsyms.sizes;
// labels outside CPU address space (e.g. NES CHR) would alias real addresses
for (let name of dbgsyms.ignored) delete symbolmap[name];
@@ -263,7 +299,7 @@ export function linkLD65(step: BuildStep): BuildStepResult {
var listings: CodeListingMap = {};
for (var fn of step.files) {
if (fn.endsWith('.lst')) {
var lstout = FS.readFile(fn, { encoding: 'utf8' });
var lstout = readWASIOutputString(wasi, fn);
lstout = lstout.split('\n\n')[1] || lstout; // remove header
putWorkFile(fn, lstout);
//const asmpath = fn.replace(/\.lst$/, '.ca65'); // TODO! could be .s
@@ -297,51 +333,17 @@ export function linkLD65(step: BuildStep): BuildStepResult {
}
}
export function compileCC65(step: BuildStep): BuildStepResult {
loadNative("cc65");
export async function compileCC65(step: BuildStep): Promise<BuildStepResult> {
var params = step.params;
// stderr
var re_err1 = /(.*?):(\d+): (.+)/;
var errors: WorkerError[] = [];
var errline = 0;
function match_fn(s) {
console.log(s);
var matches = re_err1.exec(s);
if (matches) {
errline = parseInt(matches[2]);
errors.push({
line: errline,
msg: matches[3],
path: matches[1]
});
}
}
gatherFiles(step, { mainFilePath: "main.c" });
var destpath = step.prefix + '.s';
// the link step reads these params, so they have to be settled even when
// the assembly file is up to date and nothing below runs
fixParamsWithDefines(step.path, params);
if (staleFiles(step, [destpath])) {
var CC65: EmscriptenModule = emglobal.cc65({
instantiateWasm: moduleInstFn('cc65'),
noInitialRun: true,
//logReadFiles:true,
print: print_fn,
printErr: match_fn,
});
var FS = CC65.FS;
setupFS(FS, '65-' + getRootBasePlatform(step.platform));
populateFiles(step, FS, {
mainFilePath: step.path,
processFn: (path, code) => {
if (typeof code === 'string') {
code = processEmbedDirective(code);
}
return code;
}
});
var args = [
'-I', '/share/include',
'-I', CC65_SHARE + '/include',
'-I', '.',
"-D", "__8BITWORKSHOP__",
];
@@ -357,8 +359,19 @@ export function compileCC65(step: BuildStep): BuildStepResult {
var customArgs = params.extra_compiler_args || ['-T', '-g', '-Oirs', '-Cl', '-W', '-pointer-sign,-no-effect'];
args = args.concat(customArgs, args);
args.push(step.path);
const runerr = execToFile(step, CC65, args, FS, destpath, errors);
if (runerr) return runerr;
const { wasi, errno, stderr } = await runCC65Tool(step, 'cc65', args, (fs) => populateFiles(step, fs, {
mainFilePath: step.path,
processFn: (path, code) => {
if (typeof code === 'string') {
code = processEmbedDirective(code);
}
return code;
}
}));
stderr.forEach(makeErrorMatcher(errors, /(.*?):(\d+): (.+)/, 2, 3, step.path, 1));
checkExitCode('cc65', errno, stderr, errors);
if (errors.length) return { errors };
putWorkFile(destpath, readWASIOutputString(wasi, destpath));
}
return {
nexttool: "ca65",
@@ -367,4 +380,3 @@ export function compileCC65(step: BuildStep): BuildStepResult {
files: [destpath],
};
}
+12
View File
@@ -61,3 +61,15 @@ export function runWASI(wasi: WASIRunner, errors: WorkerError[]) {
errors.push({ line: 0, msg: "" + e });
}
}
/**
* Wrap a WASI runner's filesystem in the Emscripten FS calls the builder's
* populateFiles/populateExtraFiles/populateEntry use, so tools can share them.
*/
export function wasiFSAdapter(wasi: WASIRunner) {
return {
mkdir: (path: string) => wasi.fs.putDirectory(path),
writeFile: (path: string, data: string | Uint8Array) => wasi.fs.putFile(path, data),
utime: () => { },
};
}
-21
View File
@@ -1,21 +0,0 @@
var ca65 = (() => {
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;
return (
function(ca65) {
ca65 = ca65 || {};
var Module=typeof ca65!=="undefined"?ca65:{};var objAssign=Object.assign;var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=objAssign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=function(){if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=function readAsync(filename,onload,onerror){requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=((status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)});Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=(title=>document.title=title)}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);objAssign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx<endPtr){var u0=heap[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2Line truncated
return ca65;//.ready
}
);
})();
if (typeof exports === 'object' && typeof module === 'object')
module.exports = ca65;
else if (typeof define === 'function' && define['amd'])
define([], function() { return ca65; });
else if (typeof exports === 'object')
exports["ca65"] = ca65;
Binary file not shown.
-21
View File
@@ -1,21 +0,0 @@
var cc65 = (() => {
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;
return (
function(cc65) {
cc65 = cc65 || {};
var Module=typeof cc65!=="undefined"?cc65:{};var objAssign=Object.assign;var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=objAssign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=function(){if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=function readAsync(filename,onload,onerror){requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=((status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)});Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=(title=>document.title=title)}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);objAssign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx<endPtr){var u0=heap[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2Line truncated
return cc65;//.ready
}
);
})();
if (typeof exports === 'object' && typeof module === 'object')
module.exports = cc65;
else if (typeof define === 'function' && define['amd'])
define([], function() { return cc65; });
else if (typeof exports === 'object')
exports["cc65"] = cc65;
Binary file not shown.
-21
View File
@@ -1,21 +0,0 @@
var ld65 = (() => {
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;
return (
function(ld65) {
ld65 = ld65 || {};
var Module=typeof ld65!=="undefined"?ld65:{};var objAssign=Object.assign;var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=objAssign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=function(){if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=function readAsync(filename,onload,onerror){requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=((status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)});Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=(title=>document.title=title)}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);objAssign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx<endPtr){var u0=heap[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2Line truncated
return ld65;//.ready
}
);
})();
if (typeof exports === 'object' && typeof module === 'object')
module.exports = ld65;
else if (typeof define === 'function' && define['amd'])
define([], function() { return ld65; });
else if (typeof exports === 'object')
exports["ld65"] = ld65;
Binary file not shown.
-5
View File
@@ -174,11 +174,6 @@ export function loadNative(modulename: string) {
// mount the filesystem at /share
export function setupFS(FS, name: string) {
var WORKERFS = FS.filesystems['WORKERFS'];
if (name === '65-vector') name = '65-none'; // TODO
if (name === '65-atari7800') name = '65-none'; // TODO
if (name === '65-devel') name = '65-none'; // TODO
if (name === '65-vcs') name = '65-atari2600'; // TODO
if (name === '65-exidy') name = '65-none'; // TODO
if (!fsMeta[name]) throw Error("No filesystem for '" + name + "'");
FS.mkdir('/share');
FS.mount(WORKERFS, {
+4 -4
View File
@@ -1,6 +1,6 @@
import type { WorkerResult, WorkerMessage, WorkerError, SourceLine } from "../common/workertypes";
import { getPreloadFSName } from "../common/toolmeta";
import { getSharedFileSystemName } from "../common/toolmeta";
import { store, builder, errorResult, getWorkFileAsString } from "./builder";
import { emglobal, fsMeta, loadFilesystem, listSharedFiles, readSharedFile, ensureFilesystem, readWasiSharedFile, listWasiSharedFiles, ensureWasiFilesystem } from "./wasmutils";
@@ -36,9 +36,9 @@ export function setupRequireFunction() {
export async function handleMessage(data: WorkerMessage): Promise<WorkerResult> {
// preload file system
if (data.preload) {
var fs = getPreloadFSName(data.preload, data.platform);
if (fs && !fsMeta[fs])
loadFilesystem(fs);
var fs0 = splitWasiFSName(getSharedFileSystemName(data.preload, data.platform) || "");
if (fs0.wasi) await ensureWasiFilesystem(fs0.name);
else if (fs0.name && !fsMeta[fs0.name]) loadFilesystem(fs0.name);
return;
}
// read a file from a filesystem package (shared code)