1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-06-02 12:41:30 +00:00
8bitworkshop/gen/chunk-HOVQUXAB.js

49 lines
228 KiB
JavaScript
Raw Normal View History

import{a as ln,b as nl,c as al}from"./chunk-SDBJC2RS.js";import{a as Is}from"./chunk-XMPGMPQ4.js";import{a as Ms,b as Ns,c as sl}from"./chunk-ZOXYCFVW.js";import{D as da,J as ha,l as te,u as Fs,v as Rs}from"./chunk-TIPL7ZBK.js";import{A as Lr,E as Rt,F as ua,G as Fr,H as As,I as ca,S as fa,U as Ds,a as Ft,aa as on,b as ui,ba as Ls,ca as ci,d as _t,e as la,f as ft,g as De,k as Ts,m as tn,n as rn,o as nn,p as vr,q as Cs,t as an,w as ks,x as Ps,y as sn,z as vt}from"./chunk-BHN4Q7CX.js";import{a as li,b as _s,c as oa}from"./chunk-RQFURXHW.js";var ma=_s((Os,pa)=>{(function(l){if(typeof Os=="object"&&typeof pa!="undefined")pa.exports=l();else if(typeof define=="function"&&define.amd)define([],l);else{var t;typeof window!="undefined"?t=window:typeof global!="undefined"?t=global:typeof self!="undefined"?t=self:t=this,t.localforage=l()}})(function(){var l,t,r;return function a(u,d,m){function b(W,de){if(!d[W]){if(!u[W]){var z=typeof li=="function"&&li;if(!de&&z)return z(W,!0);if(y)return y(W,!0);var H=new Error("Cannot find module '"+W+"'");throw H.code="MODULE_NOT_FOUND",H}var V=d[W]={exports:{}};u[W][0].call(V.exports,function(he){var K=u[W][1][he];return b(K||he)},V,V.exports,a,u,d,m)}return d[W].exports}for(var y=typeof li=="function"&&li,L=0;L<m.length;L++)b(m[L]);return b}({1:[function(a,u,d){(function(m){"use strict";var b=m.MutationObserver||m.WebKitMutationObserver,y;if(b){var L=0,W=new b(he),de=m.document.createTextNode("");W.observe(de,{characterData:!0}),y=function(){de.data=L=++L%2}}else if(!m.setImmediate&&typeof m.MessageChannel!="undefined"){var z=new m.MessageChannel;z.port1.onmessage=he,y=function(){z.port2.postMessage(0)}}else"document"in m&&"onreadystatechange"in m.document.createElement("script")?y=function(){var xe=m.document.createElement("script");xe.onreadystatechange=function(){he(),xe.onreadystatechange=null,xe.parentNode.removeChild(xe),xe=null},m.document.documentElement.appendChild(xe)}:y=function(){setTimeout(he,0)};var H,V=[];function he(){H=!0;for(var xe,Ce,be=V.length;be;){for(Ce=V,V=[],xe=-1;++xe<be;)Ce[xe]();be=V.length}H=!1}u.exports=K;function K(xe){V.push(xe)===1&&!H&&y()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],2:[function(a,u,d){"use strict";var m=a(1);function b(){}var y={},L=["REJECTED"],W=["FULFILLED"],de=["PENDING"];u.exports=z;function z(X){if(typeof X!="function")throw new TypeError("resolver must be a function");this.state=de,this.queue=[],this.outcome=void 0,X!==b&&K(this,X)}z.prototype.catch=function(X){return this.then(null,X)},z.prototype.then=function(X,ae){if(typeof X!="function"&&this.state===W||typeof ae!="function"&&this.state===L)return this;var oe=new this.constructor(b);if(this.state!==de){var _e=this.state===W?X:ae;V(oe,_e,this.outcome)}else this.queue.push(new H(oe,X,ae));return oe};function H(X,ae,oe){this.promise=X,typeof ae=="function"&&(this.onFulfilled=ae,this.callFulfilled=this.otherCallFulfilled),typeof oe=="function"&&(this.onRejected=oe,this.callRejected=this.otherCallRejected)}H.prototype.callFulfilled=function(X){y.resolve(this.promise,X)},H.prototype.otherCallFulfilled=function(X){V(this.promise,this.onFulfilled,X)},H.prototype.callRejected=function(X){y.reject(this.promise,X)},H.prototype.otherCallRejected=function(X){V(this.promise,this.onRejected,X)};function V(X,ae,oe){m(function(){var _e;try{_e=ae(oe)}catch(ze){return y.reject(X,ze)}_e===X?y.reject(X,new TypeError("Cannot resolve promise with itself")):y.resolve(X,_e)})}y.resolve=function(X,ae){var oe=xe(he,ae);if(oe.status==="error")return y.reject(X,oe.value);var _e=oe.value;if(_e)K(X,_e);else{X.state=W,X.outcome=ae;for(var ze=-1,Me=X.queue.length;++ze<Me;)X.queue[ze].callFulfilled(ae)}return X},y.reject=function(X,ae){X.state=L,X.outcome=ae;for(var oe=-1,_e=X.queue.length;++oe<_e;)X.queue[oe].callRejected(ae);return X};function he(X){var ae=X&&X.then;if(X&&(typeof X=="object"||typeof X=="function")&&typeof ae=="function")return function(){ae.apply(X,arguments)}}function K(X,ae){var oe=!1;function _e(Ke){oe||(oe=!0,y.reje
`):e)),i};var ei=/\[\]$/,qi=/\r?\n/g,ti=/^(?:submit|button|image|reset|file)$/i,us=/^(?:input|select|textarea|keygen)/i;function ri(e,i,n,s){var c;if(Array.isArray(i))o.each(i,function(f,h){n||ei.test(e)?s(e,h):ri(e+"["+(typeof h=="object"&&h!=null?f:"")+"]",h,n,s)});else if(!n&&be(i)==="object")for(c in i)ri(e+"["+c+"]",i[c],n,s);else s(e,i)}o.param=function(e,i){var n,s=[],c=function(f,h){var E=V(h)?h():h;s[s.length]=encodeURIComponent(f)+"="+encodeURIComponent(E==null?"":E)};if(e==null)return"";if(Array.isArray(e)||e.jquery&&!o.isPlainObject(e))o.each(e,function(){c(this.name,this.value)});else for(n in e)ri(n,e[n],i,c);return s.join("&")},o.fn.extend({serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=o.prop(this,"elements");return e?o.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!o(this).is(":disabled")&&us.test(this.nodeName)&&!ti.test(e)&&(this.checked||!Kt.test(e))}).map(function(e,i){var n=o(this).val();return n==null?null:Array.isArray(n)?o.map(n,function(s){return{name:i.name,value:s.replace(qi,`\r
`)}}):{name:i.name,value:n.replace(qi,`\r
`)}}).get()}});var Yn=/%20/g,Gi=/#.*$/,Ro=/([?&])_=[^&]*/,Io=/^(.*?):[ \t]*([^\r\n]*)$/mg,Mo=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,No=/^(?:GET|HEAD)$/,Oo=/^\/\//,cs={},Xn={},fs="*/".concat("*"),Qn=K.createElement("a");Qn.href=Fe.href;function ds(e){return function(i,n){typeof i!="string"&&(n=i,i="*");var s,c=0,f=i.toLowerCase().match(yt)||[];if(V(n))for(;s=f[c++];)s[0]==="+"?(s=s.slice(1)||"*",(e[s]=e[s]||[]).unshift(n)):(e[s]=e[s]||[]).push(n)}}function hs(e,i,n,s){var c={},f=e===Xn;function h(E){var x;return c[E]=!0,o.each(e[E]||[],function(D,R){var U=R(i,n,s);if(typeof U=="string"&&!f&&!c[U])return i.dataTypes.unshift(U),h(U),!1;if(f)return!(x=U)}),x}return h(i.dataTypes[0])||!c["*"]&&h("*")}function Jn(e,i){var n,s,c=o.ajaxSettings.flatOptions||{};for(n in i)i[n]!==void 0&&((c[n]?e:s||(s={}))[n]=i[n]);return s&&o.extend(!0,e,s),e}function $o(e,i,n){for(var s,c,f,h,E=e.contents,x=e.dataTypes;x[0]==="*";)x.shift(),s===void 0&&(s=e.mimeType||i.getResponseHeader("Content-Type"));if(s){for(c in E)if(E[c]&&E[c].test(s)){x.unshift(c);break}}if(x[0]in n)f=x[0];else{for(c in n){if(!x[0]||e.converters[c+" "+x[0]]){f=c;break}h||(h=c)}f=f||h}if(f)return f!==x[0]&&x.unshift(f),n[f]}function Wo(e,i,n,s){var c,f,h,E,x,D={},R=e.dataTypes.slice();if(R[1])for(h in e.converters)D[h.toLowerCase()]=e.converters[h];for(f=R.shift();f;)if(e.responseFields[f]&&(n[e.responseFields[f]]=i),!x&&s&&e.dataFilter&&(i=e.dataFilter(i,e.dataType)),x=f,f=R.shift(),f){if(f==="*")f=x;else if(x!=="*"&&x!==f){if(h=D[x+" "+f]||D["* "+f],!h){for(c in D)if(E=c.split(" "),E[1]===f&&(h=D[x+" "+E[0]]||D["* "+E[0]],h)){h===!0?h=D[c]:D[c]!==!0&&(f=E[0],R.unshift(E[1]));break}}if(h!==!0)if(h&&e.throws)i=h(i);else try{i=h(i)}catch(U){return{state:"parsererror",error:h?U:"No conversion from "+x+" to "+f}}}}return{state:"success",data:i}}o.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Fe.href,type:"GET",isLocal:Mo.test(Fe.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":fs,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":o.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,i){return i?Jn(Jn(e,o.ajaxSettings),i):Jn(o.ajaxSettings,e)},ajaxPrefilter:ds(cs),ajaxTransport:ds(Xn),ajax:function(e,i){typeof e=="object"&&(i=e,e=void 0),i=i||{};var n,s,c,f,h,E,x,D,R,U,F=o.ajaxSetup({},i),I=F.context||F,ie=F.context&&(I.nodeType||I.jquery)?o(I):o.event,ve=o.Deferred(),re=o.Callbacks("once memory"),qe=F.statusCode||{},Ve={},ht={},Le="canceled",me={readyState:0,getResponseHeader:function(Te){var Be;if(x){if(!f)for(f={};Be=Io.exec(c);)f[Be[1].toLowerCase()+" "]=(f[Be[1].toLowerCase()+" "]||[]).concat(Be[2]);Be=f[Te.toLowerCase()+" "]}return Be==null?null:Be.join(", ")},getAllResponseHeaders:function(){return x?c:null},setRequestHeader:function(Te,Be){return x==null&&(Te=ht[Te.toLowerCase()]=ht[Te.toLowerCase()]||Te,Ve[Te]=Be),this},overrideMimeType:function(Te){return x==null&&(F.mimeType=Te),this},statusCode:function(Te){var Be;if(Te)if(x)me.always(Te[me.status]);else for(Be in Te)qe[Be]=[qe[Be],Te[Be]];return this},abort:function(Te){var Be=Te||Le;return n&&n.abort(Be),ut(0,Be),this}};if(ve.promise(me),F.url=((e||F.url||Fe.href)+"").replace(Oo,Fe.protocol+"//"),F.type=i.method||i.type||F.method||F.type,F.dataTypes=(F.dataType||"*").toLowerCase().match(yt)||[""],F.crossDomain==null){E=K.createElement("a");try{E.href=F.url,E.href=E.href,F.crossDomain=Qn.protocol+"//"+Qn.host!=E.protocol+"//"+E.host}catch(Te){F.crossDomain=!0}}if(F.data&&F.processData&&typeof F.data!="string"&&(F.data=o.param(F.data,F.traditional)),hs(cs,F,i,me),x)return me;D=o.event&&F.global,D&&o.active++==0&&o.event.trigger("ajaxStart"),F.type=F.type.toUpperCase(),F.hasContent=!No.test(F.type),s=F.url.replace(Gi,""),F.hasContent?F.da
=====
[Open this project in 8bitworkshop](http://8bitworkshop.com/redir.html?platform=$PLATFORM&githubURL=$GITHUBURL&file=$MAINFILE).
`;function di(){for(var l={},t=0;t<localStorage.length;t++){var r=localStorage.key(t);if(r.startsWith("__repo__")){var a=JSON.parse(localStorage.getItem(r)),u=r.substring("__repo__".length);l[u]=a}}return l}function fn(l){var t=l.split("/",8);return t.length<5||t[0]!="https:"||t[2]!="github.com"||t[5]&&t[5]!="tree"?null:{user:t[3],repo:t[4],repopath:t[3]+"/"+t[4],branch:t[6],subtreepath:t[7]}}var Sa=class{constructor(t,r,a,u){this.githubCons=t,this.githubToken=r,this.store=a,this.project=u,this.recreateGithub()}recreateGithub(){this.github=new this.githubCons({token:this.githubToken})}login(){if(this.githubToken&&this.githubToken.length)return new Promise((r,a)=>{r()});var t=new firebase.auth.GithubAuthProvider;return t.addScope("repo"),firebase.auth().signInWithPopup(t).then(r=>{this.githubToken=r.credential.accessToken;var a=r.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((t,r)=>{t()})}isFileIgnored(t){return t=t.toUpperCase(),!!(t.startsWith("LICENSE")||t.startsWith("README")||t.startsWith("."))}async getGithubSession(t){var r=fn(t);if(!r)throw new Error("Please enter a valid GitHub URL.");var a=di()[r.repopath],u=r.branch||a&&a.branch,d=this.github.repos(r.user,r.repo);try{u=(await d.fetch()).defaultBranch||"master"}catch(b){console.log("could not fetch default branch: "+b),u="main"}console.log("branch =",u);var m={url:t,user:r.user,reponame:r.repo,repopath:r.repopath,branch:u,subtreepath:r.subtreepath,prefix:"",repo:d,platform_id:this.project?this.project.platform_id:a?a.platform_id:null};return m}getGithubHEADTree(t){var r;return this.getGithubSession(t).then(a=>(r=a,r.repo.git.refs.heads(r.branch).fetch())).then(a=>(r.head=a,r.sha=a.object.sha,r.repo.git.trees(r.sha).fetch())).then(a=>{if(r.subtreepath){for(let u of a.tree)if(u.type=="tree"&&u.path==r.subtreepath&&u.sha)return r.repo.git.trees(u.sha).fetch();throw Error("Cannot find subtree '"+r.subtreepath+"' in tree "+a.sha)}return a}).then(a=>(r.tree=a,r))}bind(t,r){var a="__repo__"+t.repopath;if(r){var u={url:t.url,branch:t.branch,platform_id:t.platform_id,mainPath:t.mainPath,sha:t.sha};console.log("storing",u),localStorage.setItem(a,JSON.stringify(u))}else localStorage.removeItem(a)}import(t){var r;return this.getGithubSession(t).then(a=>(r=a,r.repo.contents("README.md").read())).catch(a=>(console.log(a),console.log("no README.md found"),r.repo.fetch().then(u=>""))).then(a=>{var u;if(u=/8bitworkshop.com[^)]+file=([^)&]+)/.exec(a),u&&u[1]&&(console.log("main path: '"+u[1]+"'"),r.mainPath=u[1]),u=/8bitworkshop.com[^)]+platform=([A-Za-z0-9._\-]+)/.exec(a),u){if(console.log("platform id: '"+u[1]+"'"),r.platform_id&&!r.platform_id.startsWith(u[1]))throw Error("Platform mismatch: Repository is "+u[1]+", you have "+r.platform_id+" selected.");r.platform_id=u[1]}return this.bind(r,!0),r})}pull(t,r){var a;return this.getGithubHEADTree(t).then(u=>{a=u;let d=[];return a.paths=[],a.tree.tree.forEach(m=>{if(console.log(m.path,m.type,m.size),a.paths.push(m.path),m.type=="blob"&&!this.isFileIgnored(m.path)){var b=a.repo.git.blobs(m.sha).fetch().then(y=>{var L=a.prefix+m.path,W=m.size,de=y.encoding,z=y.content;if(y.encoding=="base64"){var H=tn(atob(z)),V=vr(m.path,H);z=V?H:nn(H)}return y.size!=z.length&&(z=z.slice(0,y.size)),(r||this.store).setItem(L,z)});d.push(b)}else console.log("ignoring "+m.path)}),Promise.all(d)}).then(u=>a)}importAndPull(t){return this.import(t).then(r=>this.pull(t))}publish(t,r,a,u){var d,m=this.project.platform_id,b=this.project.stripLocalPath(this.project.mainPath);return this.github.user.repos.create({name:t,description:r,private:u,auto_init:!1,license_template:a}).then(y=>{d=y;var L=ol;L=L.replace(/\$NAME/g,encodeURIComponent(t)),L=L.replace(/\$PLATFORM/g,encodeURIComponent(m)),L=L.replace(/\$GITHUBURL/g,encodeURIComponent(d.htmlUrl)),L=L.replace(/\$MA
`,V==a&&(d=u),u++,H+=he.nbytes||1}return z};var y=a<0?a-Ta:Math.max(0,a-Ta);let L=b(y,a-y)+b(a,Ta);this.disasmview.setValue(L),t&&this.disasmview.setCursor(d,0),Hs(this.disasmview,d)}getCursorPC(){var t=this.disasmview.getCursor().line;if(t>=0){var r=this.disasmview.getLine(t).trim().split(/\s+/);if(r&&r.length>=1){var a=parseInt(r[0],16);if(a>=0)return a}}return-1}},Ca=class extends hn{constructor(t){super();this.path=t}refreshListing(){var t=fe.getListingForFile(this.path);this.assemblyfile=t&&(t.assemblyfile||t.sourcefile)}refresh(t){if(this.refreshListing(),!!this.assemblyfile){var r=this.assemblyfile.text,a=this.getDisasmView();if(a.setValue(r),!!A.saveState){var u=ir||A.saveState(),d=u.c?u.c.EPC||u.c.PC:0;if(d>=0&&this.assemblyfile){var m=this.assemblyfile.findLineForOffset(d,dn);m&&(t&&a.setCursor(m.line-1,0),Hs(a,m.line-1))}}}}};function qs(l){return l.endsWith("_SIZE__")||l.endsWith("_LAST__")||l.endsWith("STACKSIZE__")||l.endsWith("FILEOFFS__")||l.startsWith("l__")||l.startsWith("s__")||l.startsWith(".__.")}var pn=class{constructor(){this.recreateOnResize=!0;this.totalRows=5120}createDiv(t){var r=document.createElement("div");return r.setAttribute("class","memdump"),t.appendChild(r),this.showMemoryWindow(t,r),this.maindiv=r}showMemoryWindow(t,r){this.memorylist=new As({w:$(t).width(),h:$(t).height(),itemHeight:Ls(),totalRows:this.totalRows,generatorFn:a=>{var u=this.getMemoryLineAt(a),d=document.createElement("div");if(this.dumplines){var m=this.dumplines[a];m&&d.classList.add("seg_"+this.getMemorySegment(this.dumplines[a].a))}return d.appendChild(document.createTextNode(u)),d}}),$(r).append(this.memorylist.container),this.tick(),dt&&this.dumplines&&this.scrollToAddress(dt.data_start)}scrollToAddress(t){this.dumplines&&this.memorylist.scrollToItem(this.findMemoryWindowLine(t))}refresh(){this.dumplines=null,this.tick()}tick(){this.memorylist&&$(this.maindiv).find("[data-index]").each((t,r)=>{var a=$(r),u=parseInt(a.attr("data-index")),d=a.text(),m=this.getMemoryLineAt(u);d!=m&&a.text(m)})}getMemoryLineAt(t){var r=t*16,a=0,u=16,d;if(this.getDumpLines()){var m=this.dumplines[t];if(m)r=m.a&65520,a=m.a-r,u=a+m.l,d=m.s;else return"."}for(var b=De(r+a,4)+" ",y=0;y<a;y++)b+=" ";a>8&&(b+=" ");for(var y=a;y<u;y++){var L=this.readAddress(r+y);y==8&&(b+=" "),b+=" "+(typeof L=="number"?De(L,2):"??")}for(var y=u;y<16;y++)b+=" ";return d&&(b+=" "+d),b}readAddress(t){return A.readAddress(t)}getDumpLineAt(t){var r=this.dumplines[t];if(r)return r.a+" "+r.s}getDumpLines(){var t=A.debugSymbols&&A.debugSymbols.addr2symbol||{};if(this.dumplines==null){this.dumplines=[];var r=0,a;for(let b of Object.keys(t)){var u=parseInt(b),d=t[u];if(a)for(qs(a)&&(a="");r<u&&this.dumplines.length<65536;){var m=r+16&1048560;m>u&&(m=u),this.dumplines.push({a:r,l:m-r,s:a}),r=m}a=d}}return this.dumplines}getMemorySegment(t){if(dt){if(t>=dt.data_start&&t<dt.data_start+dt.data_size)return A.getSP&&t>=A.getSP()-15?"stack":"data";if(t>=dt.code_start&&t<dt.code_start+(dt.code_size||dt.rom_size))return"code"}var r=fe.segments;if(r){for(var a of r)if(t>=a.start&&t<a.start+a.size){if(a.type=="rom")return"code";if(a.type=="ram")return"data";if(a.type=="io")return"io"}}return"unknown"}findMemoryWindowLine(t){for(var r=0;r<this.dumplines.length;r++)if(this.dumplines[r].a>=t)return r}},ka=class extends pn{constructor(){super(...arguments);this.totalRows=2048}readAddress(t){return A.readVRAMAddress(t)}getMemorySegment(t){return"video"}getDumpLines(){return null}},Pa=class{constructor(t,r){this.recreateOnResize=!0;this.path=t,this.data=r}createDiv(t){return this.vlist=new ci(t),this.vlist.create(t,this.data.length+15>>4,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){for(var r=t*16,a=0,u=16,d=De(r+a,4)+" ",m=0;m<a;m++)d+=" ";a>8&&(d+=" ");for(var m=a;m<u;m++){var b=this.data[r+m];m==8&&(d+=" "),d+=" "+(b>=0?De(b,2):" ")}return{text:d}}refresh(){this.vlist.refresh()}getPath(){return this.path}},Aa=class{createDiv(t){return this.maindiv=qt(t,"vertical-scroll"),this.maindiv.css("display","grid"),this.maindiv.css("grid-template-columns","
`+u),a+=`
`+this.opToString(b,y,z))}),"X: "+t+" Y: "+r+" "+a}refresh(){this.tick(),this.datau32.fill(Pt)}tick(){super.tick(),this.drawImage()}drawImage(){this.ctx.putImageData(this.imageData,0,0)}clear(){this.datau32.fill(Pt)}},La=class extends Da{createDiv(t){return this.createCanvas(t,256,256)}initCanvas(){super.initCanvas(),this.canvas.onclick=t=>{var r=on(this.canvas,t),a=Math.floor(r.x)+Math.floor(r.y)*256,u=-1,d=-1;this.redraw((m,b)=>{d<0&&u>=0&&b==a&&(d=u),m==te.EXECUTE&&(u=b)}),d>=0&&gi(d)}}clear(){for(var t=0;t<=65535;t++){var r=A.readAddress(t),a=r>>2|r&31;a|=a<<8|a<<16,this.datau32[t]=a|Pt}}drawEvent(t,r,a,u){var d=this.getOpRGB(t,r);if(!!d){var m=r&255,b=r>>8&255,y=this.datau32[r&65535];y=y|d|Pt,this.datau32[r&65535]=y}}getTooltipText(t,r){var a=(t&255)+(r<<8),u="",d=-1,m={},b=null,y=[];return this.redraw((L,W,de,z,H,V)=>{switch(L){case te.EXECUTE:d=W,b=this.addr2symbol(W)||b;break;case te.SP_PUSH:y.push(b);break;case te.SP_POP:b=y.pop();break}var he=L|d;W==a&&!m[he]&&(u==""&&b&&(u+=`
`+b),u+=`
PC `+this.addr2str(d)+" "+this.opToString(L,null,V),m[he]=1)}),this.addr2str(a)+u}},Ys=class extends Da{initCanvas(){super.initCanvas(),this.canvas.onclick=t=>{var r=on(this.canvas,t),a=Math.floor(r.x),u=Math.floor(r.y),d=this.getOpAtPos(r.x,r.y,te.EXECUTE);d&&(It("toline"),A.runEval(()=>{let m=A.getRasterScanline&&A.getRasterScanline()>=u;return m&&A.getRasterLineClock?m&&A.getRasterLineClock()>a:m}))}}drawEvent(t,r,a,u){var d=this.getOpRGB(t,r);if(!!d){var m=a+u*this.canvas.width,b=d|Pt;this.datau32[m]|=b}}drawImage(){let t=Pt;for(let r=0;r<this.datau32.length;r++)this.datau32[r]==Pt?this.datau32[r]=t:t=this.datau32[r];super.drawImage()}},Fa=class extends Ys{constructor(){super(...arguments);this.interrupt=0;this.rgb=0;this.lastpc=0}drawEvent(t,r,a,u){var d=a+u*this.canvas.width;if(t==te.INTERRUPT&&(this.interrupt=1),this.interrupt==1&&t==te.SP_PUSH&&(this.interrupt=r),this.interrupt>1&&this.sp>this.interrupt&&(this.interrupt=0),t==te.MEM_WRITE&&(this.rgb|=47),t==te.VRAM_WRITE&&(this.rgb|=16256),t==te.IO_WRITE&&(this.rgb|=2047872),t==te.IO_READ&&(this.rgb|=7936),t==te.WAIT&&(this.rgb=32768),t==te.ILLEGAL||t==te.DMA_READ)this.datau32[d]=4279176975;else{let m=this.rgb;if(t==te.EXECUTE){let b=this.sp&15;b>=8&&(b=16-b),Math.abs(this.lastpc)-r>16&&(b+=1),Math.abs(this.lastpc)-r>256&&(b+=1),m=this.rgb=526344*b+2105376,this.lastpc=r}this.interrupt&&(m|=8388672),this.datau32[d]==Pt&&(this.datau32[d]=m|Pt)}}},Ra=class extends br{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new ci(t),this.vlist.create(t,this.cyclesPerLine*this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){var r="",a="seg_data",u=this.dumplines&&this.dumplines[t];if(u!=null){var d=u.info.join(", ");r="("+Ft(u.row,4)+", "+Ft(u.col,4)+") "+ui(u.asm||"",20)+d,d.indexOf("Write ")>=0&&(a="seg_io")}return{text:r,clas:a}}refresh(){this.tick()}tick(){let t=A instanceof ha||A instanceof da;this.dumplines={},this.redraw((r,a,u,d,m,b)=>{t&&(m>>=2);var y=this.dumplines[m];switch(y==null&&(y={op:r,addr:a,row:d,col:u,asm:null,info:[]},this.dumplines[m]=y),r){case te.EXECUTE:if(A.disassemble){var L=A.disassemble(a,A.readAddress.bind(A));y.asm=L&&L.line}break;default:var W=this.opToString(r,a,b);W!=""&&y.info.push(W);break}}),this.vlist.refresh()}},Ia=class extends br{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new ci(t),this.vlist.create(t,this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){for(var r=Ft(t+"",3)+" ",a="seg_code",u=this.dumplines&&this.dumplines[t]||[],d=Math.round(this.cyclesPerLine/3.3),m=0;m<this.cyclesPerLine;m++){var b=u[m];if(b!==void 0){var y=b&65535,L=L&Pt;if(L==te.EXECUTE)r+=",";else{var W=De(y);r+=W,m+=W.length-1}}else r+=m==d?"|":"."}return u[-1]&&(r+=" "+u[-1]),{text:r,clas:a}}refresh(){this.tick()}tick(){let t=A instanceof ha||A instanceof da;this.dumplines={},this.redraw((r,a,u,d,m,b)=>{var y=this.dumplines[d];switch(y==null&&(this.dumplines[d]=y=[]),r){case te.EXECUTE:var L=A.debugSymbols.addr2symbol[a];L&&(y[-1]=L);break;case te.IO_READ:case te.IO_WRITE:case te.VRAM_READ:case te.VRAM_WRITE:y[u]=r|a;break}}),this.vlist.refresh()}},Ma=class extends br{constructor(){super(...arguments);this.recreateOnResize=!0;this.cumulativeData=!0}createDiv(t){return A.debugSymbols&&A.debugSymbols.symbolmap?this.keys=Array.from(Object.keys(A.debugSymbols.symbolmap).filter(r=>!qs(r))):this.keys=["no symbols defined"],this.vlist=new ci(t),this.vlist.create(t,this.keys.length+1,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){if(t==0)return{text:Ft("Symbol",35)+Ft("Reads",8)+Ft("Writes",8)};var r=this.keys[t-1],a=this.dumplines&&this.dumplines[r];function u(b){var y=a[b]|0;return Ft(y?y.toString():"",8)}var d,m;return a!=null?(d=Ft(r,35)+u(te.MEM_READ)+u(te.MEM_WRITE),a[te.EXECUTE]?m="seg_code":a[te.IO_READ]||a[te.IO_WRITE]?m="seg_io":m="seg_data"):(d=Ft(r,35),m="seg_unknown"),{text:d,clas:m}}refresh(){this.tick()}tick(){this.dumplines={},this.redraw((t,r,a,u,d,m)=>{var b=A.deb
`,co(l),ee.newfile?Ja(!0,!0):Nt('Could not find file "'+l+'". Loading default file.'),delete ee.newfile,Dn()}}function Za(l){if(l=="/")ee={repo:"/"};else if(l.indexOf("://")>=0){var t=fn(l);t&&(ee={repo:t.repopath})}else ee.platform=ne,ee.file=l;Mr()}async function Pl(l){var t=A.getToolForFilename(l);try{return await $.get("presets/"+vt(ne)+"/skeleton."+t,"text")}catch(r){Ee("Could not load skeleton for "+ne+"/"+t+"; using blank file")}}function es(l){return l.indexOf(" ")>=0?(Ee("No spaces in filenames, please."),!1):!0}function Al(l){return bootbox.prompt({title:"Enter the name of your new main source file.",placeholder:"newfile"+A.getDefaultExtension(),callback:t=>{if(t&&t.trim().length>0){if(!es(t))return;t.indexOf(".")<0&&(t+=A.getDefaultExtension());var r=t;Si("workspace","file","new"),ee.newfile="1",Za(r)}}}),!0}function Dl(l){let t=$('<input type="file" multiple accept="*" style="display:none">'),r=t[0];t.change(a=>{Ll(r.files)}),t.click()}function Ll(l){console.log(l);var t=0;function r(){var a=l[t++];if(!a)console.log("Done uploading",t),t>2?(Nt("Files uploaded."),setTimeout(Ci,1e3)):(ee.file=l[0].name,bootbox.confirm({message:"Open '"+At.sanitize(ee.file)+"' as main project file?",buttons:{confirm:{label:"Open As New Project"},cancel:{label:"Include/Link With Project Later"}},callback:m=>{m?Mr():setTimeout(Ci,1e3)}})),Si("workspace","file","upload");else{var u=a.name,d=new FileReader;d.onload=function(m){var b=m.target.result,y=new Uint8Array(b);vr(u,y)||(y=nn(y).replace(`\r
`,`
`)),ge.updateFile(u,y),console.log("Uploaded "+u+" "+y.length+" bytes"),r()},d.readAsArrayBuffer(a)}}l&&r()}async function Fl(l){var t=window.showDirectoryPicker;t||Ee("This browser can't open local files on your computer, yet. Try Chrome.");var r=await t(),a=r.name,u="__localfs__"+a,d={handle:r},m=Ga.createInstance({name:u,version:2});await m.setItem(u,d),ee={localfs:a},Mr(!0)}async function Rl(l){return new Promise((t,r)=>{bootbox.prompt(At.sanitize(l),a=>{t(a)})})}async function Il(l){let t={mode:"readwrite"};var r="__localfs__"+l,a=Ga.createInstance({name:r,version:2}),u=await a.getItem(r),d=u.handle;console.log(u,d);var m=await d.queryPermission(t);if(console.log(m),m!=="granted"&&(await Rl("Request permissions to access filesystem?"),m=await d.requestPermission(t)),m!=="granted"){Ee("Could not get permission to access filesystem.");return}return{getFileData:async b=>{console.log("getFileData",b);let y=await d.getFileHandle(b,{create:!1});console.log("getFileData",y);let L=await y.getFile();console.log("getFileData",L);let W=await(vr(b)?L.binary():L.text());return console.log(y,L,W),W},setFileData:async(b,y)=>{}}}function it(){return _t(fe.mainPath)}function Ml(){return _t(ge.getActiveID())}var ts;function fo(l){for(var t=l+"=",r=document.cookie.split(";"),a=0;a<r.length;a++){for(var u=r[a];u.charAt(0)==" ";)u=u.substring(1,u.length);if(u.indexOf(t)==0)return u.substring(t.length,u.length)}return null}async function Er(){if(!ts){await Rt("lib/octokat.js"),await Rt("https://www.gstatic.com/firebasejs/8.8.1/firebase-app.js"),await Rt("https://www.gstatic.com/firebasejs/8.8.1/firebase-auth.js"),await Rt("https://8bitworkshop.com/config.js");var l=fo("__github_key");ts=new Sa(Octokat,l,Je,fe),console.log("loaded github service")}return ts}function Ti(){var l=(je||"").split("/");return l.length!=2?(Ee("You are not in a GitHub repository. Choose one from the pulldown, or Import or Publish one."),null):"https://github.com/"+l[0]+"/"+l[1]}async function rs(l,t){var r,a=fn(l);if(!a){Ee("Could not parse Github URL.");return}var u=di()[a.repopath];if(!(u&&!confirm("You've already imported "+a.repopath+" -- do you want to replace all local files?"))){Oe(!0);var d=xa(a.repopath);Xt(.25);var m=await Er();return m.import(l).then(b=>(r=b,Xt(.75),m.pull(l,d))).then(b=>{ee={repo:r.repopath},Oe(!1),Si("sync","import",l),Mr(t)}).catch(b=>{Oe(!1),console.log(b),Ee("Could not import "+l+"."+b)})}}async function Nl(l){var t=await Er();t.login().then(()=>{Nt("You are signed in to Github.")}).catch(r=>{Ee("Could not sign in."+r)})}async function Ol(l){var t=await Er();t.logout().then(()=>{Nt("You are logged out of Github.")})}function $l(l){var t=$("#importGithubModal"),r=$("#importGithubButton");t.modal("show"),r.off("click").on("click",()=>{var a=$("#importGithubURL").val()+"";t.modal("hide"),rs(a,!1)})}function Wl(l){if(!(je&&!confirm("This project ("+fe.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 t=$("#publishGithubModal"),r=$("#publishGithubButton");$("#githubRepoName").val(ft(_t(fe.mainPath))),t.modal("show"),r.off("click").on("click",async()=>{var a=$("#githubRepoName").val()+"",u=$("#githubRepoDesc").val()+"",d=$("#githubRepoPrivate").val()=="private",m=$("#githubRepoLicense").val()+"",b;if(!a){Ee("You did not enter a project name.");return}t.modal("hide"),Oe(!0);var y=await Er();y.login().then(()=>(Xt(.25),y.publish(a,u,m,d))).then(L=>(b=L,Xt(.5),je=ee.repo=b.repopath,ho("initial import from 8bitworkshop.com"))).then(()=>{Si("sync","publish",d?"":a),rs(b.url,!1)}).catch(L=>{Oe(!1),console.log(L),Ee("Could not publish GitHub repository: "+L)})})}}function Bl(l){var t=Ti();if(!!t){var r=$("#pushGithubModal"),a=$("#pushGithubButton");r.modal("show"),a.off("click").on("click",()=>{var u=$("#githubCommitMsg").val()+"";r.modal("hide"),ho(u)})}}function Ul(l){var t=Ti();!t||bootbox.confirm("Pull from repository and replace all local files? Any changes you've made will be overwritten.",async r
`},u=window.c2t({noInitialRun:!0,print:a,printErr:a}),d=u.FS,m=it()+".bin",b=it()+".wav";d.writeFile(m,Xe,{encoding:"binary"});var y=["-2bc",m+","+t.toString(16),b];u.callMain(y);var L=d.readFile(b,{encoding:"binary"});if(L){var W=new Blob([L],{type:"audio/wav"});(0,Mt.saveAs)(W,b),r+="Then connect your audio output to the cassette input, turn up the volume, and play the audio file.",Nt(r)}})}function Xl(l){Rt("lib/makewav.js").then(()=>{let t="",r=function(b){t+=b+`
`};var a=ft(it());let u=a+".bin",d=a+".wav";window.makewav({noInitialRun:!1,print:r,printErr:r,arguments:["-ts","-f0","-v10",u],preRun:b=>{b.FS.writeFile(u,Xe,{encoding:"binary"})}}).ready.then(b=>{let y=[u];b.run(y),console.log(t);let W=b.FS.readFile(d,{encoding:"binary"});if(W){let de=new Blob([W],{type:"audio/wav"});(0,Mt.saveAs)(de,d),t+=`
Connect your audio output to the SuperCharger input, turn up the volume, and play the audio file.`,Nt(t)}})})}function Ql(l){var t=ft(it());let r=t+".tap",a=new He(t),u=new qa({sine_wave:!0}),d=Xe,m=d[0]+d[1]*256;d=d.slice(2),a.setContent({data:d,startAddress:m,type:He.FILE_TYPE_NON_RELOCATABLE}),a.generateSound(u);let b=u.getTAPData();if(b){let y=new Blob([b],{type:"application/octet-stream"});(0,Mt.saveAs)(y,r)}}function po(){switch(vt(ne)){case"vcs":return Xl;case"apple2":return Yl;case"c64":return Ql}}function Jl(l){if(Xe==null)return Ee("Please fix errors before exporting."),!0;var t=po();if(t===void 0)return Ee("Cassette export is not supported on this platform."),!0;t(l)}function Kl(l){var t=ge.getActive();if(t&&t.setText){var r=ge.getActiveID();$.get("presets/"+vt(ne)+"/"+r,a=>{bootbox.confirm("Reset '"+At.sanitize(r)+"' to default?",u=>{u&&t.setText(a)})},"text").fail(()=>{Ee(je?"Can only revert built-in examples. If you want to revert all files, You can pull from the repository.":"Can only revert built-in examples.")})}else Ee("Cannot revert the active window. Please choose a text file.")}function Zl(l){var t=ge.getActive();if(t&&t.getPath){var r=ge.getActiveID();bootbox.confirm("Delete '"+At.sanitize(r)+"'?",a=>{a&&Je.removeItem(r).then(()=>{ee.file==r?(wr.unsetLastPreset(),Mr()):(Ci(),Nt("Deleted "+r))})})}else Ee("Cannot delete the active window.")}function eu(l){var t=ge.getActive();if(t&&t.getPath&&fe.getFile(t.getPath())){var r=ge.getActiveID();bootbox.prompt({title:"Rename '"+At.sanitize(r)+"' to?",value:r,callback:a=>{var u=fe.getFile(t.getPath());if(a&&a!=r&&u){if(!es(a))return;Je.removeItem(r).then(()=>Je.setItem(a,u)).then(()=>{Ci(),alert("Renamed "+r+" to "+a),r==fe.mainPath&&Za(a)})}}})}else Ee("Cannot rename the active window.")}function tu(l){if(Xe==null)return Ee("Please finish compiling with no errors before downloading ROM."),!0;var t=ft(it());if(A.getDownloadFile){var r=A.getDownloadFile(),t=ft(it());(0,Mt.saveAs)(r.blob,t+r.extension)}else if(Xe instanceof Uint8Array){var a=new Blob([Xe],{type:"application/octet-stream"}),u=A.getROMExtension&&A.getROMExtension(Xe)||"-"+vt(ne)+".bin";(0,Mt.saveAs)(a,t+u)}else Ee(`The "${ne}" platform doesn't have downloadable ROMs.`)}function ru(l){var t=ge.getCurrentText();if(!t)return!1;var r=new Blob([t],{type:"text/plain;charset=utf-8"});(0,Mt.saveAs)(r,Ml(),{autoBom:!1})}async function go(){let l=(await import("./jszip.min-R7NPJJ5M.js")).default;return new l}async function iu(l){var t=await go();fe.iterateFiles((r,a)=>{a&&t.file(_t(r),a)}),t.generateAsync({type:"blob"}).then(r=>{(0,Mt.saveAs)(r,it()+"-"+vt(ne)+".zip")})}function nu(l){let t=A.getDebugSymbolFile&&A.getDebugSymbolFile();if(!t){Ee("This project does not have debug information.");return}var r=ft(it());(0,Mt.saveAs)(t.blob,r+t.extension,{autoBom:!1})}async function au(l){var t=await go(),r=await Je.keys();Oe(!0);try{var a=0;await Promise.all(r.map(d=>Je.getItem(d).then(m=>{Xt(a++/(r.length+1)),m&&t.file(d,m)})));var u=await t.generateAsync({type:"blob"});(0,Mt.saveAs)(u,vt(ne)+"-all.zip")}finally{Oe(!1)}}function su(l){let t={},r;for(var a=0;a<En.length;a++){var u=En[a],d=u.chapter?u.chapter+". "+u.name:u.name,m=u.id==fe.mainPath;u.category?r=$("<optgroup />").attr("label","Examples: "+u.category).appendTo(l):r||(r=$("<optgroup />").attr("label","Examples").appendTo(l)),r.append($("<option />").val(u.id).text(d).attr("selected",m?"selected":null)),m&&(Sn=u),t[u.id]=d}return t}function ou(l){if(Tt&&!yi){var t=0,r=di();if(r){let u=$("<optgroup />").attr("label","Repositories").appendTo(l);for(let d in r){var a=r[d];a.platform_id&&vt(a.platform_id)==vt(ne)&&u.append($("<option />").val(a.url).text(a.url.substring(a.url.indexOf("/"))))}}}}async function mo(l,t,r,a){let u=await Je.keys();u||(u=[]);let d;for(var m=0;m<u.length;m++){let b=u[m];if(b.startsWith(r)&&!a[b]){d||(d=$("<optgroup />").attr("label",t).appendTo(l));let y=b.substring(r.length);d.append($("<option />").val(b).text(y).attr("selected",b==fe.mainPath?"selected":null))}}}function vo(l){l.css("visibility","visible");var t=fe.mainPa
`),t.SP&&(r+="c.SP < 0x"+De(t.SP)+`
`),t.HL&&(r+=`c.HL == 0x4000
`),A.readAddress&&(r+=`this.readAddress(0x1234) == 0x0
`),A.readVRAMAddress&&(r+=`this.readVRAMAddress(0x1234) != 0x80
`),A.getRasterScanline&&(r+=`this.getRasterScanline() > 222
`),r}function Cu(l){var t=new Function("c","return ("+l+");").bind(A);It(),A.runEval(t),lo=l}function _o(){A.isRunning()?(ge.tick(),_n=!1):_n||(ge.tick(),_n=!0),setTimeout(_o,100)}function Oe(l){l?(Xt(0),$("#pleaseWaitModal").modal("show")):(Xt(1),$("#pleaseWaitModal").modal("hide"))}function Xt(l){$("#pleaseWaitProgressBar").css("width",l*100+"%").show()}var ss=!1;function ku(){ss||Rt("lib/gif.js").then(()=>{var l=$("#emulator").find("canvas")[0];if(!l){Ee("Could not find canvas element to record video!");return}var t=0;l.style&&l.style.transform&&(l.style.transform.indexOf("rotate(-90deg)")>=0?t=-1:l.style.transform.indexOf("rotate(90deg)")>=0&&(t=1));var r=new GIF({workerScript:"lib/gif.worker.js",workers:4,quality:10,rotate:t}),a=$("#videoPreviewImage");r.on("progress",y=>{Xt(y)}),r.on("finished",y=>{a.attr("src",URL.createObjectURL(y)),Oe(!1),Ot(),$("#videoPreviewModal").modal("show")});var u=20,d=300,m=0;console.log("Recording video",l),$("#emulator").css("backgroundColor","#cc3333");var b=()=>{m++>d?(console.log("Rendering video"),$("#emulator").css("backgroundColor","inherit"),Oe(!0),Yt(),r.render(),ss=!1):(r.addFrame(l,{delay:u,copy:!0}),setTimeout(b,u),ss=!0)};b()})}function Pn(l){A.setFrameRate(l),l>.01?$("#fps_label").text(l.toFixed(2)):$("#fps_label").text("1/"+Math.round(1/l))}function Pu(){var l=A.getFrameRate();l=l/2,l>1e-5&&Pn(l)}function Au(){var l=A.getFrameRate();l=Math.min(60,l*2),Pn(l)}function Du(){Pn(60/65536)}function Lu(){Ot(),Pn(60)}function Fu(){ge.refresh(!1);var l=ge.getActive();if(l.getSourceFile&&l.setTimingResult){var t=A.newCodeAnalyzer();t.showLoopTimingForPC(0),l.setTimingResult(t)}}function os(){Ir&&(A.setRecorder(null),$("#dbg_record").removeClass("btn_recording"),$("#replaydiv").hide(),xo(),Ir=!1)}function To(){Ir&&lt.reset()}function Co(){lt.reset(),A.setRecorder(lt),$("#dbg_record").addClass("btn_recording"),$("#replaydiv").show(),Ir=!0}function Ru(){Ir?os():Co()}function Qt(l,t,r){var a=ge.getActive();a&&a.insertText?bootbox.prompt({title:"Add "+At.sanitize(l)+" File to Project",value:"filename"+At.sanitize(t),callback:u=>{if(u&&u.trim().length>0){if(!es(u))return;var d=u,m=`
`+r(u)+`
`;fe.loadFiles([d]).then(b=>{b&&b.length?Ee(u+" already exists; including anyway"):fe.updateFile(d,`
`),a.insertText(m),_i()})}}}):Ee("Can't insert text in this window -- switch back to main file")}function Iu(){var l=it(),t=A.getToolForFilename(l);l.endsWith(".c")||t=="sdcc"||t=="cc65"||t=="cmoc"||t=="smlrc"?Qt("Header",".h",r=>'#include "'+r+'"'):t=="dasm"||t=="zmac"?Qt("Include",".inc",r=>' include "'+r+'"'):t=="ca65"||t=="sdasz80"||t=="vasm"||t=="armips"?Qt("Include",".inc",r=>' .include "'+r+'"'):t=="verilator"?Qt("Verilog",".v",r=>'`include "'+r+'"'):t=="wiz"?Qt("Include",".wiz",r=>'import "'+r+'";'):t=="ecs"?Qt("Include",".ecs",r=>'import "'+r+'"'):t=="acme"?Qt("Include",".acme",r=>'!src "'+r+'"'):Ee("Can't add include file to this project type ("+t+")")}function Mu(){var l=it(),t=A.getToolForFilename(l);l.endsWith(".c")||t=="sdcc"||t=="cc65"||t=="cmoc"||t=="smlrc"?Qt("Linked C (or .s)",".c",r=>'//#link "'+r+'"'):l.endsWith("asm")||l.endsWith(".s")||t=="ca65"||t=="lwasm"?Qt("Linked ASM",".inc",r=>';#link "'+r+'"'):Ee("Can't add linked file to this project type ("+t+")")}function Nu(){if(Ye=new ln($("#toolbar")[0],null),Ye.grp.prop("id","run_bar"),Ye.add("ctrl+alt+r","Reset","glyphicon-refresh",Eu).prop("id","dbg_reset"),Ye.add("ctrl+alt+,","Pause","glyphicon-pause",pu).prop("id","dbg_pause"),Ye.add("ctrl+alt+.","Resume","glyphicon-play",Eo).prop("id","dbg_go"),A.restartAtPC&&Ye.add("ctrl+alt+/","Restart at Cursor","glyphicon-play-circle",bu).prop("id","dbg_restartatline"),Ye.newGroup(),Ye.grp.prop("id","debug_bar"),A.runEval&&Ye.add("ctrl+alt+e","Reset and Debug","glyphicon-fast-backward",Su).prop("id","dbg_restart"),A.stepBack&&Ye.add("ctrl+alt+b","Step Backwards","glyphicon-step-backward",wu).prop("id","dbg_stepback"),A.step&&Ye.add("ctrl+alt+s","Single Step","glyphicon-step-forward",gu).prop("id","dbg_step"),A.stepOver&&Ye.add("ctrl+alt+t","Step Over","glyphicon-hand-right",mu).prop("id","dbg_stepover"),A.runUntilReturn&&Ye.add("ctrl+alt+o","Step Out of Subroutine","glyphicon-hand-up",xu).prop("id","dbg_stepout"),A.runToVsync&&Ye.add("ctrl+alt+n","Next Frame/Interrupt","glyphicon-forward",vu).prop("id","dbg_tovsync"),(A.runEval||A.runToPC)&&!ne.startsWith("verilog")&&Ye.add("ctrl+alt+l","Run To Line","glyphicon-save",yu).prop("id","dbg_toline"),Ye.newGroup(),Ye.grp.prop("id","xtra_bar"),$(".dropdown-menu").collapse({toggle:!1}),$("#item_new_file").click(Al),$("#item_upload_file").click(Dl),$("#item_open_directory").click(Fl),$("#item_github_login").click(Nl),$("#item_github_logout").click(Ol),$("#item_github_import").click($l),$("#item_github_publish").click(Wl),$("#item_github_push").click(Bl),$("#item_github_pull").click(Ul),$("#item_repo_delete").click(Hl),$("#item_share_file").click(Vl),$("#item_reset_file").click(Kl),$("#item_rename_file").click(eu),$("#item_delete_file").click(Zl),A.runEval?$("#item_debug_expr").click(_u).show():$("#item_debug_expr").hide(),$("#item_download_rom").click(tu),$("#item_download_file").click(ru),$("#item_download_zip").click(iu),A.getDebugSymbolFile?$("#item_download_sym").click(nu):$("#item_download_sym").hide(),$("#item_download_allzip").click(au),$("#item_record_video").click(ku),po()?$("#item_export_cassette").click(Jl):$("#item_export_cassette").hide(),A.setFrameRate&&A.getFrameRate&&($("#dbg_slower").click(Pu),$("#dbg_faster").click(Au),$("#dbg_slowest").click(Du),$("#dbg_fastest").click(Lu)),$("#item_addfile_include").click(Iu),$("#item_addfile_link").click(Mu),$("#item_request_persist").click(()=>Ja(!0,!1)),_o(),A.newCodeAnalyzer&&Ye.add(null,"Analyze CPU Timing","glyphicon-time",Fu),A.setRecorder&&A.advance&&Ou(),A.showHelp){let{li:r,a}=Ka("help__"+ne,Ya+" Help");$("#help_menu").append(r),$(a).click(()=>window.open(A.showHelp(),"_8bws_help"))}let l=A.getToolForFilename(it()),t=yl[l];if(t){let{li:r,a}=Ka("help__"+l,l+" Help");$("#help_menu").append(r),$(a).click(()=>window.open(t,"_8bws_help"))}}function Ou(){var l=$("#replayslider"),t=$("#clockslider"),r=$("#replay_frame"),a=$("#replay_clock");A.advanceFrameClock||$("#clockdiv").hide();var u=()=>{r.text(lt.lastSeekFrame+""),a.text(lt.lastSeekStep+"")},d=y=>{Yt();var L=parseInt(l.val().toString()),W=parseInt(t.val()
/*!
localForage -- Offline Storage, Improved
Version 1.10.0
https://localforage.github.io/localForage
(c) 2013-2017 Mozilla, Apache License 2.0
*/
/*!
* jQuery JavaScript Library v3.6.3
* https://jquery.com/
*
* Includes Sizzle.js
* https://sizzlejs.com/
*
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2022-12-20T21:28Z
*/
//# sourceMappingURL=chunk-HOVQUXAB.js.map