Deploying to gh-pages from @ 8bitworkshop/8bitworkshop@09d99f2c30 🚀

This commit is contained in:
sehugg committed 2026-10-19 10:39:45 +00:00
1 parent e7d1f17dd8
commit 64ffde9960
93 files changed
+541 -207

No files matched your search

+1 -1
View File
@@ -44,7 +44,7 @@ See [extension/CHANGELOG.md](extension/CHANGELOG.md).
- "Share Playable Link" packs the game into the URL fragment instead of the query string, so it no longer hits the web server's ~8 KB request-line limit, and encodes it as URL-safe Base64 to avoid percent-encoding. Old `?r=` links still play.
- Removed the Markdown/Showdown platform, the old `script` platform, Google Analytics, Sentry (replaced with a new error-reporting endpoint) and the HTTPS redirect.
- "Highlight Executed Lines" draws a hot/cold heat map: lines run since the last update are colored by how often they have run (blue = cold, red = hot) and disappear once they stop executing.
- Audio reliably unlocks under the browser autoplay policy: the emulator resumes its `AudioContext` on the first click/keypress anywhere on the page, not only when the emulator canvas gets focus.
- Audio reliably unlocks under the browser autoplay policy: the emulator resumes its `AudioContext` on the first click/keypress anywhere on the page, not only when the emulator canvas gets focus. A hint under the emulator screen says so until it is unlocked.
- Memory Map: a Modules column shows each object file's slice of every SDCC or cc65 segment (`Segment.modules`; SDCC from the `.rel` sizes in link order, with the remainder as `(libraries)`; cc65 from the ld65 map's module list, library members by name).
- Memory Browser: a symbol label covers only its reported size, and an unsized symbol stops at its segment boundary instead of running into the next segment.
+6
View File
@@ -1029,6 +1029,12 @@ div.asset_toolbar {
margin-top: auto;
margin-bottom: 2em;
}
.audio-hint {
color: #ccc;
margin-top: 0.5em;
margin-left: 1em;
margin-right: 1em;
}
.control-key {
border: 2px solid rgba(0,0,0,0.2);
border-radius: 0.6em;
@@ -1,4 +1,4 @@
import{a as f0}from"./chunk-J4XYKWJN.js";import{a as u0}from"./chunk-UNDRK5PG.js";import{B as h0,I as o0,d as r0,e as i0,n as c0,t as n0}from"./chunk-FFJHITEL.js";import{h as U}from"./chunk-UXRCACYH.js";import{P as L,g as x0,i as a0,l as e0,m as t0,s as s0,u as b}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var P=class extends n0{constructor(){super();this.cpuFrequency=1022727;this.sampleRate=this.cpuFrequency;this.cpuCyclesPerLine=65;this.cpuCyclesPerFrame=this.cpuCyclesPerLine*262;this.canvasWidth=280;this.numVisibleScanlines=192;this.numTotalScanlines=262;this.defaultROMSize=77824;this.cpuCyclesPaddleUnit=11;this.cpuCyclesPaddleMax=255*this.cpuCyclesPaddleUnit;this.LOAD_BASE=0;this.HDR_SIZE=0;this.ram=new Uint8Array(77824);this.cpu=new c0;this.grdirty=new Array(384);this.grparams={dirty:this.grdirty,grswitch:F,mem:this.ram};this.kbdlatch=0;this.soundstate=0;this.auxRAMselected=!1;this.auxRAMbank=1;this.writeinhibit=!0;this.bank2rdoffset=0;this.bank2wroffset=0;this.paddleValues=[0,0,0,0];this.paddleButtons=[!1,!1,!1];this.paddleLastTriggered=0;this.slots=new Array(8);this.fakeDrive={readROM:x=>{var e=this.cpu.getPC();if(e>=50688&&e<50944)switch(x){case 0:return 0;case 1:return this.LOAD_BASE&255;case 2:return this.LOAD_BASE>>8&255;default:return 0}else switch(x){case 0:return this.rom&&this.loadRAMWithProgram(),76;case 1:return 32;case 3:return 0;case 5:return 3;case 7:return 60;default:return 0}},readConst:x=>0,read:x=>this.floatbus(),write:(x,e)=>{}};this.loadBIOS(new e0().decode(t0(atob(k0)))),this.connectCPUMemoryBus(this),this.bios[54170-(65536-this.bios.length)]=96,this.mb=new Y(this.cpuFrequency),this.slots[4]=this.mb}saveState(){return{c:this.cpu.saveState(),ram:this.ram.slice(),kbdlatch:this.kbdlatch,soundstate:this.soundstate,grswitch:this.grparams.grswitch,auxRAMselected:this.auxRAMselected,auxRAMbank:this.auxRAMbank,writeinhibit:this.writeinhibit,slots:this.slots.map(x=>x&&x.saveState&&x.saveState()),paddleValues:this.paddleValues.slice(),paddleButtons:this.paddleButtons.slice(),inputs:this.ram.slice(0,0)}}loadState(x){this.cpu.loadState(x.c),this.ram.set(x.ram),this.kbdlatch=x.kbdlatch,this.soundstate=x.soundstate,this.grparams.grswitch=x.grswitch,this.auxRAMselected=x.auxRAMselected,this.auxRAMbank=x.auxRAMbank,this.writeinhibit=x.writeinhibit,this.setupLanguageCardConstants();for(var e=0;e<this.slots.length;e++)this.slots[e]&&this.slots[e].loadState&&this.slots[e].loadState(x.slots[e]);this.paddleValues=x.paddleValues.slice(),this.paddleButtons=x.paddleButtons.slice(),this.ap2disp.invalidate()}saveControlsState(){return{inputs:null,kbdlatch:this.kbdlatch}}loadControlsState(x){this.kbdlatch=x.kbdlatch}loadBIOS(x,e){x.length!=12288&&(console.log(`apple2 loadBIOS !!!WARNING!!!: BIOS wants length 0x3000, but BIOS '${e}' has length 0x${x.length.toString(16)}`),console.log("will load BIOS to end of memory anyway...")),this.bios=Uint8Array.from(x)}loadROM(x,e,s){if(x.length==560*256){var t=new T(this,x);this.slots[6]=t,this.reset()}else{if(super.loadROM(x),a0(this.rom.slice(0,4),[0,5,22,0]))this.LOAD_BASE=this.rom[57]|this.rom[56]<<8,this.HDR_SIZE=58;else{let n=this.rom[0]|this.rom[1]<<8,h=this.rom[2]|this.rom[3]<<8,p=n<49152&&n+h<77824;h==x.length-4&&p?(this.LOAD_BASE=n,this.HDR_SIZE=4):(this.LOAD_BASE=s!=null?s:2051,this.HDR_SIZE=0)}this.slots[6]=this.fakeDrive}}loadRAMWithProgram(){console.log(`Loading program into Apple ][ RAM at $${this.LOAD_BASE.toString(16)} (${this.HDR_SIZE} bytes skipped for header)`);let x=this.rom.slice(this.HDR_SIZE,this.HDR_SIZE+this.ram.length-this.LOAD_BASE);this.ram.set(x,this.LOAD_BASE),this.HDR_SIZE==58&&(this.ram[48896]=76,this.ram[49007]=1)}reset(){this.auxRAMselected=!1,this.auxRAMbank=1,this.writeinhibit=!0,this.ram.fill(0,768,1024),this.mb&&this.mb.reset(),super.reset(),this.skipboot()}skipboot(){for(var x=0;x<2e6&&(this.cpu.advanceClock(),this.cpu.getPC()>>8!=198);x++);for(var x=0;x<2e6&&(this.cpu.advanceClock(),!(this.cpu.getPC()>>8<198));x++);}readConst(x){if(x<49152)return this.ram[x];if(x>=53248)return this.auxRAMselected?x>=57344?this.ram[x]:this.ram[x+this.bank2rdoffset]:this.bios[x-(65536-this.bios.length)];if(x>=49408&&x<51200){var e=x>>8&7;return(this.slots[e]&&this.slots[e].readConst(x&255))|0}else return 0}read(x){if(x&=65535,x<49152||x>=53248)return this.readConst(x);if(x<49408){this.probe.logIORead(x,0);var e=x>>4&15;switch(e){case 0:return this.kbdlatch;case 1:this.kbdlatch&=127;break;case 3:this.soundstate=this.soundstate^1;break;case 5:(x&15)<8&&((x&1)!=0?this.grparams.grswitch|=1<<(x>>1&7):this.grparams.grswitch&=~(1<<(x>>1&7)));break;case 6:switch(x&7){case 1:case 2:case 3:var s=(x&7)-1;return this.paddleButtons[s]?this.floatbus()|128:this.floatbus()&127;case 4:case 5:case 6:case 7:var t=(x&15)-4,n=this.frameCycles-this.paddleLastTriggered;return n<this.paddleValues[t]*this.cpuCyclesPaddleUnit?this.floatbus()|128:this.floatbus()&127;default:return this.floatbus()}case 7:if(x==49264)return this.paddleLastTriggered=this.frameCyclesLine truncated
import{a as f0}from"./chunk-J4XYKWJN.js";import{a as u0}from"./chunk-JELKPLZC.js";import{D as h0,K as o0,d as r0,e as i0,p as c0,v as n0}from"./chunk-4YTESWOC.js";import{h as U}from"./chunk-UXRCACYH.js";import{P as L,g as x0,i as a0,l as e0,m as t0,s as s0,u as b}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var P=class extends n0{constructor(){super();this.cpuFrequency=1022727;this.sampleRate=this.cpuFrequency;this.cpuCyclesPerLine=65;this.cpuCyclesPerFrame=this.cpuCyclesPerLine*262;this.canvasWidth=280;this.numVisibleScanlines=192;this.numTotalScanlines=262;this.defaultROMSize=77824;this.cpuCyclesPaddleUnit=11;this.cpuCyclesPaddleMax=255*this.cpuCyclesPaddleUnit;this.LOAD_BASE=0;this.HDR_SIZE=0;this.ram=new Uint8Array(77824);this.cpu=new c0;this.grdirty=new Array(384);this.grparams={dirty:this.grdirty,grswitch:F,mem:this.ram};this.kbdlatch=0;this.soundstate=0;this.auxRAMselected=!1;this.auxRAMbank=1;this.writeinhibit=!0;this.bank2rdoffset=0;this.bank2wroffset=0;this.paddleValues=[0,0,0,0];this.paddleButtons=[!1,!1,!1];this.paddleLastTriggered=0;this.slots=new Array(8);this.fakeDrive={readROM:x=>{var e=this.cpu.getPC();if(e>=50688&&e<50944)switch(x){case 0:return 0;case 1:return this.LOAD_BASE&255;case 2:return this.LOAD_BASE>>8&255;default:return 0}else switch(x){case 0:return this.rom&&this.loadRAMWithProgram(),76;case 1:return 32;case 3:return 0;case 5:return 3;case 7:return 60;default:return 0}},readConst:x=>0,read:x=>this.floatbus(),write:(x,e)=>{}};this.loadBIOS(new e0().decode(t0(atob(k0)))),this.connectCPUMemoryBus(this),this.bios[54170-(65536-this.bios.length)]=96,this.mb=new Y(this.cpuFrequency),this.slots[4]=this.mb}saveState(){return{c:this.cpu.saveState(),ram:this.ram.slice(),kbdlatch:this.kbdlatch,soundstate:this.soundstate,grswitch:this.grparams.grswitch,auxRAMselected:this.auxRAMselected,auxRAMbank:this.auxRAMbank,writeinhibit:this.writeinhibit,slots:this.slots.map(x=>x&&x.saveState&&x.saveState()),paddleValues:this.paddleValues.slice(),paddleButtons:this.paddleButtons.slice(),inputs:this.ram.slice(0,0)}}loadState(x){this.cpu.loadState(x.c),this.ram.set(x.ram),this.kbdlatch=x.kbdlatch,this.soundstate=x.soundstate,this.grparams.grswitch=x.grswitch,this.auxRAMselected=x.auxRAMselected,this.auxRAMbank=x.auxRAMbank,this.writeinhibit=x.writeinhibit,this.setupLanguageCardConstants();for(var e=0;e<this.slots.length;e++)this.slots[e]&&this.slots[e].loadState&&this.slots[e].loadState(x.slots[e]);this.paddleValues=x.paddleValues.slice(),this.paddleButtons=x.paddleButtons.slice(),this.ap2disp.invalidate()}saveControlsState(){return{inputs:null,kbdlatch:this.kbdlatch}}loadControlsState(x){this.kbdlatch=x.kbdlatch}loadBIOS(x,e){x.length!=12288&&(console.log(`apple2 loadBIOS !!!WARNING!!!: BIOS wants length 0x3000, but BIOS '${e}' has length 0x${x.length.toString(16)}`),console.log("will load BIOS to end of memory anyway...")),this.bios=Uint8Array.from(x)}loadROM(x,e,s){if(x.length==560*256){var t=new T(this,x);this.slots[6]=t,this.reset()}else{if(super.loadROM(x),a0(this.rom.slice(0,4),[0,5,22,0]))this.LOAD_BASE=this.rom[57]|this.rom[56]<<8,this.HDR_SIZE=58;else{let n=this.rom[0]|this.rom[1]<<8,h=this.rom[2]|this.rom[3]<<8,p=n<49152&&n+h<77824;h==x.length-4&&p?(this.LOAD_BASE=n,this.HDR_SIZE=4):(this.LOAD_BASE=s!=null?s:2051,this.HDR_SIZE=0)}this.slots[6]=this.fakeDrive}}loadRAMWithProgram(){console.log(`Loading program into Apple ][ RAM at $${this.LOAD_BASE.toString(16)} (${this.HDR_SIZE} bytes skipped for header)`);let x=this.rom.slice(this.HDR_SIZE,this.HDR_SIZE+this.ram.length-this.LOAD_BASE);this.ram.set(x,this.LOAD_BASE),this.HDR_SIZE==58&&(this.ram[48896]=76,this.ram[49007]=1)}reset(){this.auxRAMselected=!1,this.auxRAMbank=1,this.writeinhibit=!0,this.ram.fill(0,768,1024),this.mb&&this.mb.reset(),super.reset(),this.skipboot()}skipboot(){for(var x=0;x<2e6&&(this.cpu.advanceClock(),this.cpu.getPC()>>8!=198);x++);for(var x=0;x<2e6&&(this.cpu.advanceClock(),!(this.cpu.getPC()>>8<198));x++);}readConst(x){if(x<49152)return this.ram[x];if(x>=53248)return this.auxRAMselected?x>=57344?this.ram[x]:this.ram[x+this.bank2rdoffset]:this.bios[x-(65536-this.bios.length)];if(x>=49408&&x<51200){var e=x>>8&7;return(this.slots[e]&&this.slots[e].readConst(x&255))|0}else return 0}read(x){if(x&=65535,x<49152||x>=53248)return this.readConst(x);if(x<49408){this.probe.logIORead(x,0);var e=x>>4&15;switch(e){case 0:return this.kbdlatch;case 1:this.kbdlatch&=127;break;case 3:this.soundstate=this.soundstate^1;break;case 5:(x&15)<8&&((x&1)!=0?this.grparams.grswitch|=1<<(x>>1&7):this.grparams.grswitch&=~(1<<(x>>1&7)));break;case 6:switch(x&7){case 1:case 2:case 3:var s=(x&7)-1;return this.paddleButtons[s]?this.floatbus()|128:this.floatbus()&127;case 4:case 5:case 6:case 7:var t=(x&15)-4,n=this.frameCycles-this.paddleLastTriggered;return n<this.paddleValues[t]*this.cpuCyclesPaddleUnit?this.floatbus()|128:this.floatbus()&127;default:return this.floatbus()}case 7:if(x==49264)return this.paddleLastTriggered=this.frameCyclesLine truncated
AUX RAM Select: `+e.auxRAMselected+`
AUX RAM Write: `+!e.writeinhibit+`
@@ -10,4 +10,4 @@ Mode: `+(this.read_mode?"READ":"WRITE")+`
Motor: `+this.motor+`
Data: `+(this.track_data?x0(this.track_data[this.track_index]):"-")+`
`}read_latch(){return this.track_index=(this.track_index+1)%_,this.track_data?this.track_data[this.track_index]&255:this.emu.floatbus()|128}write_latch(a){this.track_index=(this.track_index+1)%_,this.track_data!=null&&(this.track_data[this.track_index]=a)}readROM(a){return d0[a]}readConst(a){return d0[a]}read(a){return this.doIO(a,0)}write(a,x){this.doIO(a,x)}doIO(a,x){switch(a&15){case 1:case 3:case 5:case 7:var e,s,t;t=this.track,e=a>>1&3,e==(t-1&3)?t>0&&t--:e==(t+1&3)&&t<w*2-1&&t++,(t&1)==0?(this.track_data=this.data[t>>1],console.log("track",t/2)):this.track_data=null,this.track=t;break;case 8:this.motor=!1;break;case 9:this.motor=!0;break;case 10:break;case 11:break;case 15:this.read_mode=!1;case 12:if(this.read_mode)return this.read_latch();break;case 14:this.read_mode=!0;case 13:return x>=0&&!this.read_mode&&!this.write_protect&&this.write_latch(x),this.write_protect?128:0}return this.emu.floatbus()}},N=[150,151,154,155,157,158,159,166,167,171,172,173,174,175,178,179,180,181,182,183,185,186,187,188,189,190,191,203,205,206,207,211,214,215,217,218,219,220,221,222,223,229,230,231,233,234,235,236,237,238,239,242,243,244,245,246,247,249,250,251,252,253,254,255],B0=[0,7,14,6,13,5,12,4,11,3,10,2,9,1,8,15];function D0(c,a,x,e,s,t,n){var h,p,k,l,A=new Uint8Array(258);for(l=0,h=0;h<14;h++)t[n++]=255;for(t[n++]=213,t[n++]=170,t[n++]=150,t[n++]=c>>1|170,t[n++]=c|170,p=c,t[n++]=a>>1|170,t[n++]=a|170,p^=a,t[n++]=x>>1|170,t[n++]=x|170,p^=x,t[n++]=p>>1|170,t[n++]=p|170,t[n++]=222,t[n++]=170,t[n++]=235,h=0;h<6;h++)t[n++]=255;for(t[n++]=213,t[n++]=170,t[n++]=173,h=0;h<256;h++)A[h]=e[h+s]&255;for(A[256]=0,A[257]=0,k=0,h=0;h<86;h++)l=(A[h]&1)<<1,l|=(A[h]&2)>>1,l|=(A[h+86]&1)<<3,l|=(A[h+86]&2)<<1,l|=(A[h+172]&1)<<5,l|=(A[h+172]&2)<<3,t[n++]=N[l^k],k=l;for(h=0;h<256;h++)l=A[h]>>2,t[n++]=N[l^k],k=l;t[n++]=N[l],t[n++]=222,t[n++]=170,t[n++]=235}function w0(c,a,x){for(var e=new Uint8Array(_),s=0,t=0;t<16;t++)D0(c,a,t,x,B0[t]<<8,e,s),s+=S0;for(;s<_;)e[s++]=255;return e}var E=0,v0=1,I0=2,M0=3,Z=class{constructor(a,x){this.via=new f0(this);this.ayFunc=E;this.addressLatched=!1;this.ay=new i0(a),this.ay.psg.setClock(x*2)}reset(){this.via.reset(),this.ay.reset(),this.ayFunc=E,this.addressLatched=!1}step(){this.via.step0(),this.via.step1()}irq(){return(this.via.ifr&128)!=0}read(a,x=!1){return this.via.read(a&15,x)}write(a,x){this.via.write(a&15,x)}saveState(){return{via:this.via.saveState(),ayFunc:this.ayFunc,addressLatched:this.addressLatched,ayRegs:this.ay.psg.register.slice(0)}}loadState(a){this.via.loadState(a.via),this.ayFunc=a.ayFunc,this.addressLatched=a.addressLatched,this.ay.psg.register.set(a.ayRegs)}readPortB(){return 0}readPortA(){if(this.ayFunc==v0&&this.addressLatched)return this.ay.readData()}writePortB(a){if((a&4)==0){this.ay.reset(),this.ayFunc=E,this.addressLatched=!1;return}let x=a&3;if(this.ayFunc==E)switch(x){case I0:this.addressLatched&&this.ay.setData(this.via.ora);break;case M0:this.via.ora<=15&&(this.ay.selectRegister(this.via.ora),this.addressLatched=!0);break}this.ayFunc=x}writePortA(a){}},Y=class{constructor(a){this.units=[];this.master=new r0;for(var x=0;x<2;x++){var e=new Z(this.master,a);e.reset(),this.units.push(e)}}unit(a){return this.units[a>>7&1]}startAudio(){this.master.start()}stopAudio(){this.master.stop()}reset(){for(var a of this.units)a.reset()}step(){for(var a of this.units)a.step()}irq(){return this.units.some(a=>a.irq())}readROM(a){return this.unit(a).read(a)}readConst(a){return this.unit(a).read(a,!0)}read(a){return this.unit(a).read(a)}write(a,x){this.unit(a).write(a,x)}writeROM(a,x){this.unit(a).write(a,x)}saveState(){return this.units.map(a=>a.saveState())}loadState(a){for(var x=0;x<this.units.length;x++)a&&a[x]&&this.units[x].loadState(a[x])}};var b0=[{id:"sieve.c",name:"Sieve",category:"C"},{id:"keyboardtest.c",name:"Keyboard Test"},{id:"mandel.c",name:"Mandelbrot"},{id:"tgidemo.c",name:"TGI Graphics Demo"},{id:"icepiano.c",name:"Ice Piano (Hires Demo)"},{id:"Eliza.c",name:"Eliza"},{id:"siegegame.c",name:"Siege Game"},{id:"cosmic.c",name:"Cosmic Impalas"},{id:"farmhouse.c",name:"Farmhouse Adventure"},{id:"yum.c",name:"Yum Dice Game"},{id:"lz4test.c",name:"LZ4 Decompressor"},{id:"hgrtest.a",name:"HGR Test",category:"Assembly Language"},{id:"conway.a",name:"Conway's Game of Life"},{id:"lz4fh.a",name:"LZ4FH Decompressor"},{id:"deltamod.dasm",name:"Delta Modulation Audio"},{id:"paddles.dasm",name:"Paddles/Joystick"},{id:"mockingboard.c",name:"Mockingboard Music"},{id:"dos33bin.a",name:"DOS 3.3 Binary"},{id:"applesinglebin.a",name:"AppleSingle Binary"},{id:"hello-sdcc.c",name:"Hello World (SDCC)",category:"C (SDCC)"},{id:"cosmic-sdcc.c",name:"Cosmic Impalas (SDCC)"}],J=class extends u0{constructor(){super(...arguments);this.getOpcodeMetadata=h0;this.getToolForFilename=U}start(){this.startModule(this.mainElement,{jsfile:"mame8bitpc.js",biosfile:["apple2e.zip"],driver:"apple2e",width:280*2,height:384,preInit:function(x){}})}getDefaultExtensions(){return[".c",".sdcc",".cpp",".acme",".xa",". Line truncated
//# sourceMappingURL=apple2-KBEJHM6Z.js.map
//# sourceMappingURL=apple2-RKL5OQLE.js.map
File renamed without changes.
@@ -1,4 +1,4 @@
import{H as gr,t as Rr}from"./chunk-FFJHITEL.js";import{d as mr}from"./chunk-UXRCACYH.js";import{G as or,P as Fr,Y as N,a as Q,ba as T,ca as hr,ea as fr,g as E,ha as er}from"./chunk-VZWSP3EG.js";import{a as pr,b as nr}from"./chunk-N7W4C4V2.js";var Cr=4026531840,lr=223,Tr=32;function n(r){this.cpu=r,this.addressingMode23Immediate=[function(t,i,s){var e=r.gprs,a=function(){var c=e[t];return(!s||s())&&(e[t]-=i),c};return a.writesPC=t==15,a},null,null,null,function(t,i,s){var e=r.gprs,a=function(){var c=e[t];return(!s||s())&&(e[t]+=i),c};return a.writesPC=t==15,a},null,null,null,function(t,i,s){var e=r.gprs,a=function(){return e[t]-i};return a.writesPC=!1,a},function(t,i,s){var e=r.gprs,a=function(){var c=e[t]-i;return(!s||s())&&(e[t]=c),c};return a.writesPC=t==15,a},null,null,function(t,i,s){var e=r.gprs,a=function(){return e[t]+i};return a.writesPC=!1,a},function(t,i,s){var e=r.gprs,a=function(){var c=e[t]+i;return(!s||s())&&(e[t]=c),c};return a.writesPC=t==15,a},null,null],this.addressingMode23Register=[function(t,i,s){var e=r.gprs,a=function(){var c=e[t];return(!s||s())&&(e[t]-=e[i]),c};return a.writesPC=t==15,a},null,null,null,function(t,i,s){var e=r.gprs,a=function(){var c=e[t];return(!s||s())&&(e[t]+=e[i]),c};return a.writesPC=t==15,a},null,null,null,function(t,i,s){var e=r.gprs,a=function(){return e[t]-e[i]};return a.writesPC=!1,a},function(t,i,s){var e=r.gprs,a=function(){var c=e[t]-e[i];return(!s||s())&&(e[t]=c),c};return a.writesPC=t==15,a},null,null,function(t,i,s){var e=r.gprs,a=function(){var c=e[t]+e[i];return c};return a.writesPC=!1,a},function(t,i,s){var e=r.gprs,a=function(){var c=e[t]+e[i];return(!s||s())&&(e[t]=c),c};return a.writesPC=t==15,a},null,null],this.addressingMode2RegisterShifted=[function(t,i,s){var e=r.gprs,a=function(){var c=e[t];return(!s||s())&&(i(),e[t]-=r.shifterOperand),c};return a.writesPC=t==15,a},null,null,null,function(t,i,s){var e=r.gprs,a=function(){var c=e[t];return(!s||s())&&(i(),e[t]+=r.shifterOperand),c};return a.writesPC=t==15,a},null,null,null,function(t,i,s){var e=r.gprs,a=function(){return i(),e[t]-r.shifterOperand};return a.writesPC=!1,a},function(t,i,s){var e=r.gprs,a=function(){i();var c=e[t]-r.shifterOperand;return(!s||s())&&(e[t]=c),c};return a.writesPC=t==15,a},null,null,function(t,i,s){var e=r.gprs,a=function(){return i(),e[t]+r.shifterOperand};return a.writesPC=!1,a},function(t,i,s){var e=r.gprs,a=function(){i();var c=e[t]+r.shifterOperand;return(!s||s())&&(e[t]=c),c};return a.writesPC=t==15,a},null,null]}n.prototype.constructAddressingMode1ASR=function(r,t){var i=this.cpu,s=i.gprs;return function(){++i.cycles;var e=s[r];r==15&&(e+=4),e&=255;var a=s[t];t==15&&(a+=4),e==0?(i.shifterOperand=a,i.shifterCarryOut=i.cpsrC):e<32?(i.shifterOperand=a>>e,i.shifterCarryOut=a&1<<e-1):s[t]>>31?(i.shifterOperand=4294967295,i.shifterCarryOut=2147483648):(i.shifterOperand=0,i.shifterCarryOut=0)}};n.prototype.constructAddressingMode1Immediate=function(r){var t=this.cpu;return function(){t.shifterOperand=r,t.shifterCarryOut=t.cpsrC}};n.prototype.constructAddressingMode1ImmediateRotate=function(r,t){var i=this.cpu;return function(){i.shifterOperand=r>>>t|r<<32-t,i.shifterCarryOut=i.shifterOperand>>31}};n.prototype.constructAddressingMode1LSL=function(r,t){var i=this.cpu,s=i.gprs;return function(){++i.cycles;var e=s[r];r==15&&(e+=4),e&=255;var a=s[t];t==15&&(a+=4),e==0?(i.shifterOperand=a,i.shifterCarryOut=i.cpsrC):e<32?(i.shifterOperand=a<<e,i.shifterCarryOut=a&1<<32-e):e==32?(i.shifterOperand=0,i.shifterCarryOut=a&1):(i.shifterOperand=0,i.shifterCarryOut=0)}};n.prototype.constructAddressingMode1LSR=function(r,t){var i=this.cpu,s=i.gprs;return function(){++i.cycles;var e=s[r];r==15&&(e+=4),e&=255;var a=s[t];t==15&&(a+=4),e==0?(i.shifterOperand=a,i.shifterCarryOut=i.cpsrC):e<32?(i.shifterOperand=a>>>e,i.shifterCarryOut=a&1<<e-1):e==32?(i.shifterOperand=0,i.shifterCarryOut=a>>31):(i.shifterOperand=0,i.shifterCarryOut=0)}};n.prototype.constructAddressingMode1ROR=function(r,t){var i=this.cpu,s=i.gprs;return function(){++i.cycles;var e=s[r];r==15&&(e+=4),e&=255;var a=s[t];t==15&&(a+=4);var c=e&31;e==0?(i.shifterOperand=a,i.shifterCarryOut=i.cpsrC):c?(i.shifterOperand=s[t]>>>c|s[t]<<32-c,i.shifterCarryOut=a&1<<c-1):(i.shifterOperand=a,i.shifterCarryOut=a>>31)}};n.prototype.constructAddressingMode23Immediate=function(r,t,i){var s=(r&983040)>>16;return this.addressingMode23Immediate[(r&27262976)>>21](s,t,i)};n.prototype.constructAddressingMode23Register=function(r,t,i){var s=(r&983040)>>16;return this.addressingMode23Register[(r&27262976)>>21](s,t,i)};n.prototype.constructAddressingMode2RegisterShifted=function(r,t,i){var s=(r&983040)>>16;return this.addressingMode2RegisterShifted[(r&27262976)>>21](s,t,i)};n.prototype.constructAddressingMode4=function(r,t){var i=this.cpu,s=i.gprs;return function(){var e=s[t]+r;return e}};n.prototype.constructAddressingMode4Writeback=function(r,t,i,s){var e=this.cpu,a=e.gprs;return function(c){var u=a[i]+r;return c&&s&&e.mmu.store32(a[i]+r-4,a[iLine truncated
import{J as gr,v as Rr}from"./chunk-4YTESWOC.js";import{d as mr}from"./chunk-UXRCACYH.js";import{G as or,P as Fr,Y as N,a as Q,ba as T,ca as hr,ea as fr,g as E,ha as er}from"./chunk-VZWSP3EG.js";import{a as pr,b as nr}from"./chunk-N7W4C4V2.js";var Cr=4026531840,lr=223,Tr=32;function n(r){this.cpu=r,this.addressingMode23Immediate=[function(t,i,s){var e=r.gprs,a=function(){var c=e[t];return(!s||s())&&(e[t]-=i),c};return a.writesPC=t==15,a},null,null,null,function(t,i,s){var e=r.gprs,a=function(){var c=e[t];return(!s||s())&&(e[t]+=i),c};return a.writesPC=t==15,a},null,null,null,function(t,i,s){var e=r.gprs,a=function(){return e[t]-i};return a.writesPC=!1,a},function(t,i,s){var e=r.gprs,a=function(){var c=e[t]-i;return(!s||s())&&(e[t]=c),c};return a.writesPC=t==15,a},null,null,function(t,i,s){var e=r.gprs,a=function(){return e[t]+i};return a.writesPC=!1,a},function(t,i,s){var e=r.gprs,a=function(){var c=e[t]+i;return(!s||s())&&(e[t]=c),c};return a.writesPC=t==15,a},null,null],this.addressingMode23Register=[function(t,i,s){var e=r.gprs,a=function(){var c=e[t];return(!s||s())&&(e[t]-=e[i]),c};return a.writesPC=t==15,a},null,null,null,function(t,i,s){var e=r.gprs,a=function(){var c=e[t];return(!s||s())&&(e[t]+=e[i]),c};return a.writesPC=t==15,a},null,null,null,function(t,i,s){var e=r.gprs,a=function(){return e[t]-e[i]};return a.writesPC=!1,a},function(t,i,s){var e=r.gprs,a=function(){var c=e[t]-e[i];return(!s||s())&&(e[t]=c),c};return a.writesPC=t==15,a},null,null,function(t,i,s){var e=r.gprs,a=function(){var c=e[t]+e[i];return c};return a.writesPC=!1,a},function(t,i,s){var e=r.gprs,a=function(){var c=e[t]+e[i];return(!s||s())&&(e[t]=c),c};return a.writesPC=t==15,a},null,null],this.addressingMode2RegisterShifted=[function(t,i,s){var e=r.gprs,a=function(){var c=e[t];return(!s||s())&&(i(),e[t]-=r.shifterOperand),c};return a.writesPC=t==15,a},null,null,null,function(t,i,s){var e=r.gprs,a=function(){var c=e[t];return(!s||s())&&(i(),e[t]+=r.shifterOperand),c};return a.writesPC=t==15,a},null,null,null,function(t,i,s){var e=r.gprs,a=function(){return i(),e[t]-r.shifterOperand};return a.writesPC=!1,a},function(t,i,s){var e=r.gprs,a=function(){i();var c=e[t]-r.shifterOperand;return(!s||s())&&(e[t]=c),c};return a.writesPC=t==15,a},null,null,function(t,i,s){var e=r.gprs,a=function(){return i(),e[t]+r.shifterOperand};return a.writesPC=!1,a},function(t,i,s){var e=r.gprs,a=function(){i();var c=e[t]+r.shifterOperand;return(!s||s())&&(e[t]=c),c};return a.writesPC=t==15,a},null,null]}n.prototype.constructAddressingMode1ASR=function(r,t){var i=this.cpu,s=i.gprs;return function(){++i.cycles;var e=s[r];r==15&&(e+=4),e&=255;var a=s[t];t==15&&(a+=4),e==0?(i.shifterOperand=a,i.shifterCarryOut=i.cpsrC):e<32?(i.shifterOperand=a>>e,i.shifterCarryOut=a&1<<e-1):s[t]>>31?(i.shifterOperand=4294967295,i.shifterCarryOut=2147483648):(i.shifterOperand=0,i.shifterCarryOut=0)}};n.prototype.constructAddressingMode1Immediate=function(r){var t=this.cpu;return function(){t.shifterOperand=r,t.shifterCarryOut=t.cpsrC}};n.prototype.constructAddressingMode1ImmediateRotate=function(r,t){var i=this.cpu;return function(){i.shifterOperand=r>>>t|r<<32-t,i.shifterCarryOut=i.shifterOperand>>31}};n.prototype.constructAddressingMode1LSL=function(r,t){var i=this.cpu,s=i.gprs;return function(){++i.cycles;var e=s[r];r==15&&(e+=4),e&=255;var a=s[t];t==15&&(a+=4),e==0?(i.shifterOperand=a,i.shifterCarryOut=i.cpsrC):e<32?(i.shifterOperand=a<<e,i.shifterCarryOut=a&1<<32-e):e==32?(i.shifterOperand=0,i.shifterCarryOut=a&1):(i.shifterOperand=0,i.shifterCarryOut=0)}};n.prototype.constructAddressingMode1LSR=function(r,t){var i=this.cpu,s=i.gprs;return function(){++i.cycles;var e=s[r];r==15&&(e+=4),e&=255;var a=s[t];t==15&&(a+=4),e==0?(i.shifterOperand=a,i.shifterCarryOut=i.cpsrC):e<32?(i.shifterOperand=a>>>e,i.shifterCarryOut=a&1<<e-1):e==32?(i.shifterOperand=0,i.shifterCarryOut=a>>31):(i.shifterOperand=0,i.shifterCarryOut=0)}};n.prototype.constructAddressingMode1ROR=function(r,t){var i=this.cpu,s=i.gprs;return function(){++i.cycles;var e=s[r];r==15&&(e+=4),e&=255;var a=s[t];t==15&&(a+=4);var c=e&31;e==0?(i.shifterOperand=a,i.shifterCarryOut=i.cpsrC):c?(i.shifterOperand=s[t]>>>c|s[t]<<32-c,i.shifterCarryOut=a&1<<c-1):(i.shifterOperand=a,i.shifterCarryOut=a>>31)}};n.prototype.constructAddressingMode23Immediate=function(r,t,i){var s=(r&983040)>>16;return this.addressingMode23Immediate[(r&27262976)>>21](s,t,i)};n.prototype.constructAddressingMode23Register=function(r,t,i){var s=(r&983040)>>16;return this.addressingMode23Register[(r&27262976)>>21](s,t,i)};n.prototype.constructAddressingMode2RegisterShifted=function(r,t,i){var s=(r&983040)>>16;return this.addressingMode2RegisterShifted[(r&27262976)>>21](s,t,i)};n.prototype.constructAddressingMode4=function(r,t){var i=this.cpu,s=i.gprs;return function(){var e=s[t]+r;return e}};n.prototype.constructAddressingMode4Writeback=function(r,t,i,s){var e=this.cpu,a=e.gprs;return function(c){var u=a[i]+r;return c&&s&&e.mmu.store32(a[i]+r-4,a[iLine truncated
`,e+=4,!(e>=D+I));c++);return u;case"CPU":var u="",p=s.c;let F={2:"Thumb",4:"ARM"},R={15:"PC",14:"LR",13:"SP",12:"IP",11:"FP",9:"SB"};for(var c=0;c<8;c++){let v=c+8;u+=Q("r"+c,5)+" "+E(p.gprs[c],8)+" ",u+=Q("r"+v,5)+" "+E(p.gprs[v],8)+Q(R[v]||"",3)+`
`}return u+="Flags ",u+=p.cpsrN?" N":" -",u+=p.cpsrV?" V":" -",u+=p.cpsrF?" F":" -",u+=p.cpsrZ?" Z":" -",u+=p.cpsrC?" C":" -",u+=p.cpsrI?" I":" -",u+=`
`,u+="MODE "+F[p.instructionWidth]+" "+Dr[p.mode]+`
@@ -6,4 +6,4 @@ import{H as gr,t as Rr}from"./chunk-FFJHITEL.js";import{d as mr}from"./chunk-UXR
`,u+="cycl "+p.cycles+`
`,u;case"FPU":for(var u="",p=s.c,c=0;c<16;c++)u+=Q("s"+c,5)+" "+E(p.ifprs[c],8)+" "+p.sfprs[c].toPrecision(6),c&1&&(u+=Q("d"+(c>>1),5)+" "+p.dfprs[c>>1].toPrecision(12)),u+=`
`;return u}}saveState(){var i=super.saveState();return i.serial={sin:this.serialIn.slice(0),sout:this.serialOut.slice(0)},i}loadState(i){super.loadState(i),this.serialIn=i.serial.sin,this.serialOut=i.serial.sout}},Dr={16:"USER",17:"FIQ",18:"IRQ",19:"SUPERVISOR",23:"ABORT",27:"UNDEFINED",31:"SYSTEM"};var Ir=[{id:"vidfill.c",name:"Video Memory Fill"}],tr=class extends gr{constructor(){super(...arguments);this.getToolForFilename=mr}getPresets(){return Ir}getDefaultExtensions(){return[".c",".armips",".vasm"]}},sr=class extends tr{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"ROM",start:0,size:1048576,type:"ram"},{name:"I/O",start:67108864,size:256,type:"io"}]}}}async start(){super.start(),console.log("Loading Capstone"),await or("./lib/capstone-arm.min.js"),this.capstone_arm=new cs.Capstone(cs.ARCH_ARM,cs.MODE_ARM),this.capstone_thumb=new cs.Capstone(cs.ARCH_ARM,cs.MODE_THUMB)}newMachine(){return new q}readAddress(i){return this.machine.read(i)}getPlatformName(){return"ARM7"}getDebugTree(){return nr(pr({},this.machine.cpu.getDebugTree()),{dwarf:this.debugSymbols.debuginfo})}disassemble(i,s){for(var e=this.machine.cpu.isThumb(),a=e?this.capstone_thumb:this.capstone_arm,c=[],u=0;u<4;u++)c[u]=s(i+u);var p=a.disasm(c,i,4),F=p&&p[0];return F?{nbytes:F.size,line:F.mnemonic+" "+F.op_str,isaddr:F.address>0,iscall:F.mnemonic=="bl"||F.mnemonic=="blx"}:{nbytes:4,line:"???",isaddr:!1}}};Fr.arm32=sr;export{tr as BaseARMMachinePlatform};
//# sourceMappingURL=arm32-KWBC45CY.js.map
//# sourceMappingURL=arm32-SQFCAWO3.js.map
File renamed without changes.
@@ -1,4 +1,4 @@
import{J as D0,c as l0,d as u0,e as X0,l as m0,t as E0}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{P as O,ba as F,ca as h0,ea as C0,g as l,ga as x0,ha as N,l as o0,m as B0,t as g0}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var p0=72e4,P0=C0([[F.UP,16,1],[F.DOWN,16,2],[F.LEFT,16,4],[F.RIGHT,16,8],[F.A,16,16],[F.P2_UP,17,1],[F.P2_DOWN,17,2],[F.P2_LEFT,17,4],[F.P2_RIGHT,17,8],[F.P2_A,17,16],[F.VK_P,20,1],[F.VK_SLASH,20,2],[F.VK_X,20,4],[F.VK_MINUS,20,8],[F.VK_COMMA,20,16],[F.VK_EQUALS,20,32],[F.VK_O,21,1],[F.VK_L,21,2],[F.VK_9,21,4],[F.VK_6,21,8],[F.VK_3,21,16],[F.VK_PERIOD,21,32],[F.VK_I,22,1],[F.VK_K,22,2],[F.VK_8,22,4],[F.VK_5,22,8],[F.VK_2,22,16],[F.VK_0,22,32],[F.VK_U,23,1],[F.VK_J,23,2],[F.VK_7,23,4],[F.VK_4,23,8],[F.VK_1,23,16],[F.VK_BACK_SLASH,23,32]]),R0=2,G0=function(o){var a,e,i,c,U,X,W,r0,J;let y=o?320:160,K=o?204:102,A0=y>>2,Y0=o?16383:4095,T0=256,H0=4293848814,k0=4278190080,w0=o?3:1,Q0=.7;var n0=0,b=new Uint8Array(32),g=0,Y=0,m=!1,w=0,Q=0,h=0,I=0,C=0,S=K,j=new Uint32Array(8),v=new Uint8Array(8),Z=0,T=new Uint8Array(o?262:131),E=new Uint8Array(4),D=0,M=0,u=0,L=0,B=new Uint8Array(8),V=0;function S0(){return a.scanline<S&&a.getRasterX()<n0}function z(){u++,S0()&&!(L++&w0)&&u++}function _(x,t){i[x]=t,z(),T[(x&Y0)/A0|0]=1}function M0(x,t){for(var A=x*4+3,n=0;n<4;n++){var p=x%A0>=(Q&63)?0:4;r0[A--]=j[p+(t&3)],t>>=2}}function a0(x){for(var t=x*y/4,A=0;A<y/4;A++)M0(t+A,i[t+A])}function c0(x,t){if(g&8){var A=0;m||(t>>=4);for(var n=0;n<4;n++){var p=t&1?Y>>2&3:Y&3;A|=p<<n*2,t>>=1}t=A,m=!m}if(g&4){if(D&4){var f=2*(~D&3);t=(E[3]>>f&3)<<6|(E[2]>>f&3)<<4|(E[1]>>f&3)<<2|(E[0]>>f&3)<<0}else{E[D++&3]=t;return}D++}else{var f=(g&3)<<1,A=t>>f|w;w=t<<8-f&255,t=A}if(g&64&&(t=(t&3)<<6|(t&12)<<2|(t&48)>>2|(t&192)>>6),g&48){var s=i[x],r=0;s&192&&t&192&&(r|=1),s&48&&t&48&&(r|=2),s&12&&t&12&&(r|=4),s&3&&t&3&&(r|=8),g&16?t|=s:t^=s,M=M&15|r|r<<4}_(x,t)}function q(x,t){v[x&7]=t&255,j[x&7]=s0[t&255],H()}function V0(){var x=Q>>6}function H(){Z=K}function I0(){let x=B[0]|B[1]<<8,t=B[2]&63,A=B[3],n=V&255|B[4]<<8,p=B[5],f=B[6],s,r=0,d=0,N0=u;r=0,(t&2)===0&&(r=1);function f0(){r&&(t&4)!==0&&(s!==0||(t&8)===0)&&x++,(t&2)!==0&&(r^=1)}function d0(){s!==0&&((t&32)!==0?n++:n--)}for(;f>=0;){let $;for(s=p;s>=0;){let k,e0;k=(t&1)===0?x:n,s===0&&(t&8)!==0?e0=0:e0=c.read(k&65535),(t&1)===0?f0():d0(),k=(t&1)!==0?x:n,c.write(k&65535,e0),(t&1)===0?d0():f0(),d+=4,s--}$=(n&255)+A&256,n=n&65280|n+A&255,(t&16)===0?n+=$:n-=$^256,f--}u=N0+d}this.drawScanline=x=>{x==I&&h&8?(e.retryInterrupts=!(h&4),this.probe&&this.probe.logInterrupt(C),e.interrupt(C)):o&&h&18&&(e.retryInterrupts=!(h&1),this.probe&&this.probe.logInterrupt(C&240),e.interrupt(C&240)),x<K&&Z>0?(T[x]=0,a0(x),Z--):T[x]&&(T[x]=0,a0(x))},this.init=(x,t,A,n,p)=>{a=x,n0=x.cpuCyclesPerLine*Q0,e=t,i=A,b=n,J=p,o?c={read:N([[16384,32767,16383,function(s){return z(),i[s]}],[53248,57343,4095,function(s){return i[s+16384]}],[0,16383,16383,function(s){return X?X[s]:0}],[32768,49151,16383,function(s){return X?X[s+32768]:0}]]),write:N([[16384,32767,16383,_],[0,16383,16383,c0],[53248,57343,4095,function(s,r){i[s+16384]=r}]])}:(W=x0(new o0().decode(B0(atob(y0))),8192),c={read:N([[0,8191,8191,function(s){return W[s]}],[8192,16383,8191,function(s){return X?X[s]:0}],[16384,20479,4095,function(s){return z(),i[s]}]]),write:N([[16384,20479,4095,_],[0,16383,4095,c0]])}),U={read:function(s){var r=s>>8&255;s&=31;var d;switch(s){case 8:d=M,M=0;break;case 18:d=b[s],a.sc01&&a.sc01.ready&&(d|=128);break;case 23:a.sc01&&a.speechOut(r),d=b[s];break;default:d=b[s];break}return d},write:function(s,r){if(s!=42331){if(s&=255,s>=120&&s<127){B[s&7]=r,s==122&&(V=0),s==124&&(V=V+B[3]&255),s==126&&I0();return}switch(s&=31,r&=255,s){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:q(s,r);break;case 9:Q=r,V0(),H();break;case 10:o||(S=r>>1,H());break;case 11:var d=e.saveState();q((d.BC>>8)-1,c.read(d.HL));break;case 12:g=r,w=0,D=0,m=!1;break;case 13:C=r;break;case 14:h=r;break;case 15:I=o?r:r>>1;break;case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:J.setACRegister(s,r);break;case 24:var d=e.saveState();J.setACRegister((d.BC>>8)-1,c.read(d.HL));break;case 25:Y=r;break;case 26:case 27:case 28:case 29:case 30:break;default:break}}}},x.connectCPUMemoryBus(c),x.connectCPUIOBus(U),this.membus=c,this.iobus=U;for(var f=0;f<8;f++)q(f,f)},this.resetWaitStates=function(){var x=u;return u=0,x},this.peek=function(x){var t=u,A=c.read(x);return u=t,A},this.loadState=x=>{e.loadState(x.c),i.set(x.ram),j.set(x.palette),v.set(x.palinds),g=x.magicop,Y=x.xpand,m=x.xplower,w=x.shift2,Q=x.horcb,h=x.inmod,I=x.inlin,C=x.infbk,S=x.verbl,D=x.rotcount,E.set(x.rotdata),M=x.intst,L=x.slotphase|0,b.set(x.inputs),B.set(x.patboard),V=x.patdest,H()},this.saveState=()=>({c:e.saveState(),ram:i.slice(0),inputs:b.slice(0),palette:j.slice(0),palinds:v.slice(0),magicop:g,xpand:Y,xplower:m,shift2:w,horcb:Q,inmod:h,inlin:I,infbk:C,verbl:S,rotcount:D,rotdata:E.slice(0),intst:M,slotphase:L,patboard:B.slice(0),patdest:V}),thiLine truncated
import{L as D0,c as l0,d as u0,e as X0,n as m0,v as E0}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{P as O,ba as F,ca as h0,ea as C0,g as l,ga as x0,ha as N,l as o0,m as B0,t as g0}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var p0=72e4,P0=C0([[F.UP,16,1],[F.DOWN,16,2],[F.LEFT,16,4],[F.RIGHT,16,8],[F.A,16,16],[F.P2_UP,17,1],[F.P2_DOWN,17,2],[F.P2_LEFT,17,4],[F.P2_RIGHT,17,8],[F.P2_A,17,16],[F.VK_P,20,1],[F.VK_SLASH,20,2],[F.VK_X,20,4],[F.VK_MINUS,20,8],[F.VK_COMMA,20,16],[F.VK_EQUALS,20,32],[F.VK_O,21,1],[F.VK_L,21,2],[F.VK_9,21,4],[F.VK_6,21,8],[F.VK_3,21,16],[F.VK_PERIOD,21,32],[F.VK_I,22,1],[F.VK_K,22,2],[F.VK_8,22,4],[F.VK_5,22,8],[F.VK_2,22,16],[F.VK_0,22,32],[F.VK_U,23,1],[F.VK_J,23,2],[F.VK_7,23,4],[F.VK_4,23,8],[F.VK_1,23,16],[F.VK_BACK_SLASH,23,32]]),R0=2,G0=function(o){var a,e,i,c,U,X,W,r0,J;let y=o?320:160,K=o?204:102,A0=y>>2,Y0=o?16383:4095,T0=256,H0=4293848814,k0=4278190080,w0=o?3:1,Q0=.7;var n0=0,b=new Uint8Array(32),g=0,Y=0,m=!1,w=0,Q=0,h=0,I=0,C=0,S=K,j=new Uint32Array(8),v=new Uint8Array(8),Z=0,T=new Uint8Array(o?262:131),E=new Uint8Array(4),D=0,M=0,u=0,L=0,B=new Uint8Array(8),V=0;function S0(){return a.scanline<S&&a.getRasterX()<n0}function z(){u++,S0()&&!(L++&w0)&&u++}function _(x,t){i[x]=t,z(),T[(x&Y0)/A0|0]=1}function M0(x,t){for(var A=x*4+3,n=0;n<4;n++){var p=x%A0>=(Q&63)?0:4;r0[A--]=j[p+(t&3)],t>>=2}}function a0(x){for(var t=x*y/4,A=0;A<y/4;A++)M0(t+A,i[t+A])}function c0(x,t){if(g&8){var A=0;m||(t>>=4);for(var n=0;n<4;n++){var p=t&1?Y>>2&3:Y&3;A|=p<<n*2,t>>=1}t=A,m=!m}if(g&4){if(D&4){var f=2*(~D&3);t=(E[3]>>f&3)<<6|(E[2]>>f&3)<<4|(E[1]>>f&3)<<2|(E[0]>>f&3)<<0}else{E[D++&3]=t;return}D++}else{var f=(g&3)<<1,A=t>>f|w;w=t<<8-f&255,t=A}if(g&64&&(t=(t&3)<<6|(t&12)<<2|(t&48)>>2|(t&192)>>6),g&48){var s=i[x],r=0;s&192&&t&192&&(r|=1),s&48&&t&48&&(r|=2),s&12&&t&12&&(r|=4),s&3&&t&3&&(r|=8),g&16?t|=s:t^=s,M=M&15|r|r<<4}_(x,t)}function q(x,t){v[x&7]=t&255,j[x&7]=s0[t&255],H()}function V0(){var x=Q>>6}function H(){Z=K}function I0(){let x=B[0]|B[1]<<8,t=B[2]&63,A=B[3],n=V&255|B[4]<<8,p=B[5],f=B[6],s,r=0,d=0,N0=u;r=0,(t&2)===0&&(r=1);function f0(){r&&(t&4)!==0&&(s!==0||(t&8)===0)&&x++,(t&2)!==0&&(r^=1)}function d0(){s!==0&&((t&32)!==0?n++:n--)}for(;f>=0;){let $;for(s=p;s>=0;){let k,e0;k=(t&1)===0?x:n,s===0&&(t&8)!==0?e0=0:e0=c.read(k&65535),(t&1)===0?f0():d0(),k=(t&1)!==0?x:n,c.write(k&65535,e0),(t&1)===0?d0():f0(),d+=4,s--}$=(n&255)+A&256,n=n&65280|n+A&255,(t&16)===0?n+=$:n-=$^256,f--}u=N0+d}this.drawScanline=x=>{x==I&&h&8?(e.retryInterrupts=!(h&4),this.probe&&this.probe.logInterrupt(C),e.interrupt(C)):o&&h&18&&(e.retryInterrupts=!(h&1),this.probe&&this.probe.logInterrupt(C&240),e.interrupt(C&240)),x<K&&Z>0?(T[x]=0,a0(x),Z--):T[x]&&(T[x]=0,a0(x))},this.init=(x,t,A,n,p)=>{a=x,n0=x.cpuCyclesPerLine*Q0,e=t,i=A,b=n,J=p,o?c={read:N([[16384,32767,16383,function(s){return z(),i[s]}],[53248,57343,4095,function(s){return i[s+16384]}],[0,16383,16383,function(s){return X?X[s]:0}],[32768,49151,16383,function(s){return X?X[s+32768]:0}]]),write:N([[16384,32767,16383,_],[0,16383,16383,c0],[53248,57343,4095,function(s,r){i[s+16384]=r}]])}:(W=x0(new o0().decode(B0(atob(y0))),8192),c={read:N([[0,8191,8191,function(s){return W[s]}],[8192,16383,8191,function(s){return X?X[s]:0}],[16384,20479,4095,function(s){return z(),i[s]}]]),write:N([[16384,20479,4095,_],[0,16383,4095,c0]])}),U={read:function(s){var r=s>>8&255;s&=31;var d;switch(s){case 8:d=M,M=0;break;case 18:d=b[s],a.sc01&&a.sc01.ready&&(d|=128);break;case 23:a.sc01&&a.speechOut(r),d=b[s];break;default:d=b[s];break}return d},write:function(s,r){if(s!=42331){if(s&=255,s>=120&&s<127){B[s&7]=r,s==122&&(V=0),s==124&&(V=V+B[3]&255),s==126&&I0();return}switch(s&=31,r&=255,s){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:q(s,r);break;case 9:Q=r,V0(),H();break;case 10:o||(S=r>>1,H());break;case 11:var d=e.saveState();q((d.BC>>8)-1,c.read(d.HL));break;case 12:g=r,w=0,D=0,m=!1;break;case 13:C=r;break;case 14:h=r;break;case 15:I=o?r:r>>1;break;case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:J.setACRegister(s,r);break;case 24:var d=e.saveState();J.setACRegister((d.BC>>8)-1,c.read(d.HL));break;case 25:Y=r;break;case 26:case 27:case 28:case 29:case 30:break;default:break}}}},x.connectCPUMemoryBus(c),x.connectCPUIOBus(U),this.membus=c,this.iobus=U;for(var f=0;f<8;f++)q(f,f)},this.resetWaitStates=function(){var x=u;return u=0,x},this.peek=function(x){var t=u,A=c.read(x);return u=t,A},this.loadState=x=>{e.loadState(x.c),i.set(x.ram),j.set(x.palette),v.set(x.palinds),g=x.magicop,Y=x.xpand,m=x.xplower,w=x.shift2,Q=x.horcb,h=x.inmod,I=x.inlin,C=x.infbk,S=x.verbl,D=x.rotcount,E.set(x.rotdata),M=x.intst,L=x.slotphase|0,b.set(x.inputs),B.set(x.patboard),V=x.patdest,H()},this.saveState=()=>({c:e.saveState(),ram:i.slice(0),inputs:b.slice(0),palette:j.slice(0),palinds:v.slice(0),magicop:g,xpand:Y,xplower:m,shift2:w,horcb:Q,inmod:h,inlin:I,infbk:C,verbl:S,rotcount:D,rotdata:E.slice(0),intst:M,slotphase:L,patboard:B.slice(0),patdest:V}),thiLine truncated
INLIN: `+x.inlin,t+=`
VERBL: `+x.verbl,t+=`
MAGICOP: $`+l(x.magicop),t+=`
@@ -12,4 +12,4 @@ XPLOWER: `+x.xplower,t+=`
Palette: `;for(var A=0;A<8;A++)t+=l(v[A]);return t+=`
`,t},this.connectVideo=function(x){r0=x},this.loadROM=function(x){X=x},this.loadBIOS=function(x){W=x},this.getVisiblePixelWords=function(){return S*y}},R=class extends E0{constructor(e){super();this.cpuFrequency=1789e3;this.sc01Cycles=0;this.speechCount=0;this.rotate=0;this.arcade=e,this.cpu=new l0,this.psg=new t0(new u0),this.numTotalScanlines=e?262:131;var i=R0*(e?1:2);this.sampleRate=60*this.numTotalScanlines*i,this.audioadapter=new m0(this.psg.psg,i,this.sampleRate),this.handler=h0(this.inputs,P0),this.defaultROMSize=e?49152:8192,this.ram=new Uint8Array(e?20480:4096),this.numVisibleScanlines=e?204:102,this.canvasWidth=e?320:160,this.cpuCyclesPerLine=this.cpuFrequency/(60*this.numVisibleScanlines*1.286)|0,this.m=new G0(e),this.m.init(this,this.cpu,this.ram,this.inputs,this.psg),e&&(this.inputs[16]=255,this.inputs[17]=255,this.inputs[18]=0,this.inputs[19]=8)}read(e){return this.m.peek(e)}write(e,i){this.m.membus.write(e,i)}connectVideo(e){super.connectVideo(e),this.frontbuffer=e,this.backbuffer=new Uint32Array(e.length),this.m.connectVideo(this.backbuffer)}preFrame(){this.m.resetWaitStates()}postFrame(){var e=this.m.getVisiblePixelWords();this.frontbuffer.set(this.backbuffer.slice(0,e),0),this.frontbuffer.fill(0,e)}setPaddleInput(e,i){switch(e){case 0:this.inputs[28]=i&255;break;case 1:this.inputs[29]=i&255;break}}startScanline(){if(this.audio&&this.audioadapter.generate(this.audio),this.sc01){this.sc01Cycles+=this.sc01.clock/(60*this.numTotalScanlines);let e=this.sc01Cycles|0;this.sc01Cycles-=e,this.sc01.step(e)}}speechOut(e){let i=this.sc01;i.clock=e&64?782e3:756e3,this.speechCount++,i.load(e&63,e&128?0:2)}drawScanline(){var e=this.scanline;this.m.drawScanline(e)}advanceCPU(){var e=super.advanceCPU(),i=this.m.resetWaitStates();return i&&(e+=i,this.probe.logClocks(i)),e}loadROM(e){super.loadROM(e),this.m.loadROM(this.rom),this.reset()}loadBIOS(e){this.m.loadBIOS(x0(e,8192)),this.reset()}reset(){var e;super.reset(),this.m.reset(),this.sc01&&(this.sc01.clock=p0,this.sc01.reset(),this.sc01Cycles=0,(e=this.speech)==null||e.stop())}loadState(e){this.m.loadState(e),this.sc01&&e.sc01&&(this.sc01.loadState(e.sc01),this.sc01Cycles=e.sc01Cycles||0,this.sc01.clock=e.sc01Clock||p0)}saveState(){var e=this.m.saveState();return this.sc01&&(e.sc01=this.sc01.saveState(),e.sc01Cycles=this.sc01Cycles,e.sc01Clock=this.sc01.clock),e}getDebugCategories(){return["CPU","Stack","Astro"]}getDebugInfo(e,i){if(e==="Astro"){var c=this.m.toLongString(i);return this.sc01&&(c+=`
SC-01: `+this.speechCount+" phonemes, "+(this.sc01.ready?"ready":"busy")),c}}getRasterCanvasPosition(){return{x:this.getRasterX(),y:this.getRasterY()}}getVideoParams(){return this.arcade?{width:320,height:204,rotate:this.rotate}:{width:160,height:102}}},t0=class extends X0{setACRegister(a,e){switch(a&=7,e&=255,a){case 0:this.psg.setClock(1789e3*16/(e+1)),this.psg.writeRegisterAY(7,248);break;case 1:case 2:case 3:var i=(a-1)*2,c=e*2+1;this.psg.writeRegisterAY(i,c&255),this.psg.writeRegisterAY(i+1,c>>8&255);break;case 5:this.psg.writeRegisterAY(10,e&15);break;case 6:this.psg.writeRegisterAY(8,e&15),this.psg.writeRegisterAY(9,e>>4&15);break}}},s0=[0,2368548,4737096,7171437,9539985,11974326,14342874,16777215,2425019,4784352,7213567,9582079,12016383,14384895,16753663,16762879,4784304,7143637,9568761,11937279,14306047,16740095,16749311,16758783,6946975,9306307,11731175,14096639,16465151,16736767,16745983,16755199,8847495,11206827,13631696,15994612,16724735,16733951,16743423,16752639,10420330,12779662,15138995,16713687,16723195,16732415,16741631,16751103,11534409,13959277,16318610,16713142,16722394,16731647,16741119,16750335,12255269,14680137,16711790,16713362,16722615,16732123,16741375,16750847,12517376,14876708,16711752,16714605,16724113,16733366,16742874,16752127,12255232,14680064,16711715,16716871,16726380,16735632,16745141,16754393,11534336,13959168,16318464,16720164,16729416,16738924,16748177,16757685,10420224,12779520,15141888,16723971,16733479,16742731,16752240,16761492,8847360,11206656,13639168,16007680,16738058,16747310,16756563,16766071,6946816,9309440,11743488,14112256,16480768,16752151,16761659,16770911,4784128,7151872,9585920,11954688,14323200,16757509,16766761,16776270,2429184,4797696,7232e3,9600512,12034816,14403328,16771870,16777027,9472,2377984,4746496,7180800,9549312,11983616,14352155,16777023,14080,23296,2326528,4695040,7129344,9497856,11927326,14286659,18176,27648,36864,2405376,4774144,7142661,9568041,11927374,21760,30976,40192,246272,2614784,4980503,7405371,9764703,24320,33536,43008,52224,716810,3079982,5504851,7864183,25856,35328,44544,53763,63271,1572683,3932016,6291348,26624,35840,45312,54564,63816,393068,2752401,5177269,26112,35584,44835,54343,63596,65424,2031541,4456409,24832,34084,43592,52845,62353,65462,1834970,4194302,22565,31817,41326,50578,60087,65499,2031615,4456447,19273,28781,38034,47542,56794,393215,2752511,5177343,15466,24718,34227,43479,52987,1569535,3932159,6291455,10887,20395,29648,38900,703743,3072255,5505023,7864319,6047,15299,24807,230655,2599167,4967935,7401983,9764863,688,10197,19449,2388223,4756735,7125503,9559551,11927551,187,5088,2308095,4676607,7110911,9479423,11913727,14282239];for(P=0;P<256;P++)b0=s0[P],s0[P]=g0(b0)|4278190080;var b0,P;var y0="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 Line truncated
//# sourceMappingURL=astrocade-YPJ5JSVL.js.map
//# sourceMappingURL=astrocade-CFGBJILJ.js.map
File renamed without changes.
@@ -1,7 +1,7 @@
import{a as j}from"./chunk-4HX34MCE.js";import{I as $,h as z,l as Y,n as K,s as V}from"./chunk-FFJHITEL.js";import{f as H}from"./chunk-UXRCACYH.js";import{P as O,aa as R,ba as o,ca as E,ea as N,g as S,ga as W,ha as _}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var b=0,F=2,v=8,Z=N([[o.A,v+0,128],[o.B,v+1,128],[o.GP_A,v+0,128],[o.GP_B,v+1,128],[o.SELECT,F,-2],[o.START,F,-1],[o.UP,b,-16],[o.DOWN,b,-32],[o.LEFT,b,-64],[o.RIGHT,b,-128],[o.P2_A,v+2,128],[o.P2_B,v+3,128],[o.P2_UP,b,-1],[o.P2_DOWN,b,-2],[o.P2_LEFT,b,-4],[o.P2_RIGHT,b,-8]]);var M=263,G=242,C=451,tt=28,et=16,rt=24,q=2,X=M*60*q,I=class{constructor(){this.regs=new Uint8Array(32)}reset(){this.regs.fill(0)}read(r){return this.regs[r]|0}write(r,t){this.regs[r]=t}saveState(){return{regs:this.regs.slice(0)}}loadState(r){for(let t=0;t<32;t++)this.write(t,r.regs[t])}static stateToLongString(r){let t="";return t+=R(r.regs,0,32),t}},L=class{constructor(){this.cycles=0;this.regs=new Uint8Array(32);this.offset=-1;this.dll=0;this.dlstart=0;this.dli=!1;this.h16=!1;this.h8=!1;this.writemode=0;this.indirect=!1;this.pixels=new Uint8Array(320);this.WSYNC=0}reset(){this.regs.fill(0)}read(r){return this.regs[r]|0}write(r,t){this.regs[r]=t,r==4&&this.WSYNC++}saveState(){return{regs:this.regs.slice(0),offset:this.offset,dll:this.dll,dlstart:this.dlstart,dli:this.dli,h16:this.h16,h8:this.h8,indirect:this.indirect,writemode:this.writemode}}loadState(r){for(let t=0;t<32;t++)this.write(t,r.regs[t]|0);this.offset=r.offset|0,this.dll=r.dll|0,this.dlstart=r.dlstart|0,this.dli=!!r.dli,this.h16=!!r.h16,this.h8=!!r.h8,this.indirect=!!r.indirect,this.writemode=r.writemode|0}isDMAEnabled(){return(this.regs[28]&96)==64}getDLLStart(){return(this.regs[12]<<8)+this.regs[16]}getCharBaseAddress(){return(this.regs[20]<<8)+this.offset}setVBLANK(r){r?(this.regs[8]|=128,this.offset=-1,this.dll=this.getDLLStart(),this.dli=this.bus&&(this.bus.read(this.dll)&128)!=0):this.regs[8]&=-129}readDLLEntry(r){if(this.dll>=16384)return;let t=r.read(this.dll);this.offset=t&15,this.h16=(t&64)!=0,this.h8=(t&32)!=0,this.dlstart=(r.read(this.dll+1)<<8)+r.read(this.dll+2),this.dll=this.dll+3&65535,this.dli=(r.read(this.dll)&128)!=0}isHoley(r){return this.indirect?!1:!!(r&32768&&(this.h16&&r&4096||this.h8&&r&2048))}readDMA(r){return this.isHoley(r)?0:(this.cycles+=3,this.bus.read(r))}doDMA(r){this.bus=r,this.cycles=0;let t=this.pixels;if(t.fill(this.regs[0]),this.isDMAEnabled()){this.cycles+=this.offset==0?rt:et,this.offset<0&&this.readDLLEntry(r);let u=this.dlstart&65280,c=this.dlstart&255;do{let x=r.read(u+(c+0&511)),m=r.read(u+(c+1&511));if(m==0||u>=16384)break;let l=r.read(u+(c+2&511)),p=r.read(u+(c+3&511)),g=!1;if((m&31)==0){var e=p>>5,n=32-(p&31),i=r.read(u+(c+4&511));g=(m&32)!=0,c+=5,this.cycles+=10,this.writemode=m&128}else{var i=p,e=m>>5,n=32-(m&31);c+=4,this.cycles+=8}this.indirect=g;let y=x+((l+(g?0:this.offset)&255)<<8);i*=2;let d=this.regs[28],k=(d&3)+(this.writemode?4:0),A=(d&4)!=0,w=g&&(d&16)!=0;w&&(n*=2);for(var s=0;s<n;s++){let h=this.readDMA(w?y+(s>>1):y+s);if(g){let P=(this.regs[20]+this.offset<<8)+h;w&&s&1&&(P++,this.cycles-=3),h=this.readDMA(P)}switch(k){case 0:for(let a=0;a<4;a++){let f=h>>6&3;(f||A)&&(t[i]=t[i+1]=this.regs[(e<<2)+f]),h<<=2,i=i+2&511}break;case 3:for(let a=0;a<8;a++){let f=(h&128)>>6;(f||A)&&(t[i]=this.regs[(e<<2)+f]),h<<=1,i=i+1&511}break;case 4:for(let a=0;a<2;a++){let f=(h>>6&3)+(h&12);(f&3||A)&&(t[i]=t[i+1]=t[i+2]=t[i+3]=this.regs[((e&4)<<2)+f]),h<<=2,i=i+2&511}break;case 6:for(let a=0;a<4;a++){let f=(h&128)>>6|(h&8)>>3;(f||A)&&(t[i]=this.regs[(e<<2)+f]),h<<=1,i=i+1&511}break;case 2:for(let a=0;a<8;a++){let f=(h&128)>>6;f+=a&1?e&1:e>>1&1,(f||A)&&(t[i]=this.regs[(e<<2)+f]),h<<=1,i=i+1&511}break;case 7:let P=h;for(let a=0;a<4;a++){a==2&&(P<<=2);let f=(h&128)>>6,Q=e&4|P>>2&3;(f||A)&&(t[i]=this.regs[(Q<<2)+f]),h<<=1,i=i+1&511}break}}}while(this.cycles<C);this.offset-=1}return this.cycles}doInterrupt(){return this.dli&&this.offset<0?(this.dli=!1,!0):!1}static stateToLongString(r){let t="";return t+=R(r.regs,0,32),t+=`
import{a as j}from"./chunk-4HX34MCE.js";import{K as $,h as z,n as Y,p as K,u as V}from"./chunk-4YTESWOC.js";import{f as H}from"./chunk-UXRCACYH.js";import{P as O,aa as R,ba as o,ca as E,ea as N,g as S,ga as W,ha as _}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var b=0,F=2,v=8,Z=N([[o.A,v+0,128],[o.B,v+1,128],[o.GP_A,v+0,128],[o.GP_B,v+1,128],[o.SELECT,F,-2],[o.START,F,-1],[o.UP,b,-16],[o.DOWN,b,-32],[o.LEFT,b,-64],[o.RIGHT,b,-128],[o.P2_A,v+2,128],[o.P2_B,v+3,128],[o.P2_UP,b,-1],[o.P2_DOWN,b,-2],[o.P2_LEFT,b,-4],[o.P2_RIGHT,b,-8]]);var M=263,G=242,C=451,tt=28,et=16,rt=24,q=2,X=M*60*q,I=class{constructor(){this.regs=new Uint8Array(32)}reset(){this.regs.fill(0)}read(r){return this.regs[r]|0}write(r,t){this.regs[r]=t}saveState(){return{regs:this.regs.slice(0)}}loadState(r){for(let t=0;t<32;t++)this.write(t,r.regs[t])}static stateToLongString(r){let t="";return t+=R(r.regs,0,32),t}},L=class{constructor(){this.cycles=0;this.regs=new Uint8Array(32);this.offset=-1;this.dll=0;this.dlstart=0;this.dli=!1;this.h16=!1;this.h8=!1;this.writemode=0;this.indirect=!1;this.pixels=new Uint8Array(320);this.WSYNC=0}reset(){this.regs.fill(0)}read(r){return this.regs[r]|0}write(r,t){this.regs[r]=t,r==4&&this.WSYNC++}saveState(){return{regs:this.regs.slice(0),offset:this.offset,dll:this.dll,dlstart:this.dlstart,dli:this.dli,h16:this.h16,h8:this.h8,indirect:this.indirect,writemode:this.writemode}}loadState(r){for(let t=0;t<32;t++)this.write(t,r.regs[t]|0);this.offset=r.offset|0,this.dll=r.dll|0,this.dlstart=r.dlstart|0,this.dli=!!r.dli,this.h16=!!r.h16,this.h8=!!r.h8,this.indirect=!!r.indirect,this.writemode=r.writemode|0}isDMAEnabled(){return(this.regs[28]&96)==64}getDLLStart(){return(this.regs[12]<<8)+this.regs[16]}getCharBaseAddress(){return(this.regs[20]<<8)+this.offset}setVBLANK(r){r?(this.regs[8]|=128,this.offset=-1,this.dll=this.getDLLStart(),this.dli=this.bus&&(this.bus.read(this.dll)&128)!=0):this.regs[8]&=-129}readDLLEntry(r){if(this.dll>=16384)return;let t=r.read(this.dll);this.offset=t&15,this.h16=(t&64)!=0,this.h8=(t&32)!=0,this.dlstart=(r.read(this.dll+1)<<8)+r.read(this.dll+2),this.dll=this.dll+3&65535,this.dli=(r.read(this.dll)&128)!=0}isHoley(r){return this.indirect?!1:!!(r&32768&&(this.h16&&r&4096||this.h8&&r&2048))}readDMA(r){return this.isHoley(r)?0:(this.cycles+=3,this.bus.read(r))}doDMA(r){this.bus=r,this.cycles=0;let t=this.pixels;if(t.fill(this.regs[0]),this.isDMAEnabled()){this.cycles+=this.offset==0?rt:et,this.offset<0&&this.readDLLEntry(r);let u=this.dlstart&65280,c=this.dlstart&255;do{let x=r.read(u+(c+0&511)),m=r.read(u+(c+1&511));if(m==0||u>=16384)break;let l=r.read(u+(c+2&511)),p=r.read(u+(c+3&511)),g=!1;if((m&31)==0){var e=p>>5,n=32-(p&31),i=r.read(u+(c+4&511));g=(m&32)!=0,c+=5,this.cycles+=10,this.writemode=m&128}else{var i=p,e=m>>5,n=32-(m&31);c+=4,this.cycles+=8}this.indirect=g;let y=x+((l+(g?0:this.offset)&255)<<8);i*=2;let d=this.regs[28],k=(d&3)+(this.writemode?4:0),A=(d&4)!=0,w=g&&(d&16)!=0;w&&(n*=2);for(var s=0;s<n;s++){let h=this.readDMA(w?y+(s>>1):y+s);if(g){let P=(this.regs[20]+this.offset<<8)+h;w&&s&1&&(P++,this.cycles-=3),h=this.readDMA(P)}switch(k){case 0:for(let a=0;a<4;a++){let f=h>>6&3;(f||A)&&(t[i]=t[i+1]=this.regs[(e<<2)+f]),h<<=2,i=i+2&511}break;case 3:for(let a=0;a<8;a++){let f=(h&128)>>6;(f||A)&&(t[i]=this.regs[(e<<2)+f]),h<<=1,i=i+1&511}break;case 4:for(let a=0;a<2;a++){let f=(h>>6&3)+(h&12);(f&3||A)&&(t[i]=t[i+1]=t[i+2]=t[i+3]=this.regs[((e&4)<<2)+f]),h<<=2,i=i+2&511}break;case 6:for(let a=0;a<4;a++){let f=(h&128)>>6|(h&8)>>3;(f||A)&&(t[i]=this.regs[(e<<2)+f]),h<<=1,i=i+1&511}break;case 2:for(let a=0;a<8;a++){let f=(h&128)>>6;f+=a&1?e&1:e>>1&1,(f||A)&&(t[i]=this.regs[(e<<2)+f]),h<<=1,i=i+1&511}break;case 7:let P=h;for(let a=0;a<4;a++){a==2&&(P<<=2);let f=(h&128)>>6,Q=e&4|P>>2&3;(f||A)&&(t[i]=this.regs[(Q<<2)+f]),h<<=1,i=i+1&511}break}}}while(this.cycles<C);this.offset-=1}return this.cycles}doInterrupt(){return this.dli&&this.offset<0?(this.dli=!1,!0):!1}static stateToLongString(r){let t="";return t+=R(r.regs,0,32),t+=`
DLL: $`+S((r.regs[12]<<8)+r.regs[16],4)+" @ $"+S(r.dll,4),t+=`
DL: $`+S(r.dlstart,4),t+=`
Offset: `+r.offset,t+=`
DLI? `+r.dli,t}},T=class extends V{constructor(){super();this.cpuFrequency=1789772;this.canvasWidth=320;this.numTotalScanlines=M;this.numVisibleScanlines=G;this.defaultROMSize=49152;this.cpuCyclesPerLine=113.5;this.sampleRate=X;this.ram=new Uint8Array(4096);this.regs6532=new Uint8Array(4);this.piatimer=0;this.timerinterval=1;this.tia=new I;this.maria=new L;this.lastFrameCycles=0;this.xtracyc=0;this.cpu=new K,this.read=_([[8,13,15,t=>(this.xtracyc++,this.readInput(t))],[0,31,31,t=>(this.xtracyc++,this.tia.read(t))],[32,63,31,t=>this.maria.read(t)],[64,255,255,t=>this.ram[t+2048]],[256,319,255,t=>this.read(t)],[320,511,511,t=>this.ram[t+2048]],[640,767,127,t=>(this.xtracyc++,this.readPIA(t))],[6144,10239,65535,t=>this.ram[t-6144]],[10240,16383,2047,t=>this.read(t|8192)],[16384,65535,65535,t=>this.rom?this.rom[t-16384]:0],[0,65535,65535,t=>this.probe&&this.probe.logIllegal(t)]]),this.write=_([[21,26,31,(t,e)=>{this.xtracyc++,this.pokey1.setTIARegister(t,e)}],[0,31,31,(t,e)=>{this.xtracyc++,this.tia.write(t,e)}],[32,63,31,(t,e)=>{this.maria.write(t,e)}],[64,255,255,(t,e)=>{this.ram[t+2048]=e}],[256,319,255,(t,e)=>{this.write(t,e)}],[320,511,511,(t,e)=>{this.ram[t+2048]=e}],[640,767,127,(t,e)=>{this.xtracyc++,this.writePIA(t,e)}],[6144,10239,65535,(t,e)=>{this.ram[t-6144]=e}],[10240,16383,2047,(t,e)=>{this.write(t|8192,e)}],[49151,49151,65535,(t,e)=>{}],[0,65535,65535,(t,e)=>{this.probe&&this.probe.logIllegal(t)}]]),this.connectCPUMemoryBus(this),this.dmaBus=this.probeDMABus(this),this.handler=E(this.inputs,Z),this.pokey1=new z,this.audioadapter=new Y(this.pokey1,q,X)}readConst(t){let e=this.probe;this.probe=null;let n=this.read(t);return this.probe=e,n}readInput(t){switch(t){case 12:return~this.inputs[8]&128;case 13:return~this.inputs[9]&128;default:return this.inputs[t]|0}}readPIA(t){switch(t){case 0:case 2:return this.inputs[t];case 1:case 3:return this.regs6532[t];case 4:return this.getPIATimerValue();default:return 0}}writePIA(t,e){switch(t){case 0:case 1:case 2:case 3:this.regs6532[t]=e;return;case 20:this.setPIATimer(e,0);return;case 21:this.setPIATimer(e,3);return;case 22:this.setPIATimer(e,6);return;case 23:this.setPIATimer(e,10);return;case 24:this.setPIATimer(e,6);return}}setPIATimer(t,e){this.piatimer=t+1<<e,this.timerinterval=e}getPIATimerValue(){let t=this.piatimer;return t>0?t>>this.timerinterval:t&255}advanceCPU(){var t=super.advanceCPU();return this.tickPIATimer(t),this.xtracyc&&(t+=this.xtracyc,this.tickClocks(this.xtracyc),this.xtracyc=0),t}tickClocks(t){this.probe.logClocks(t),this.tickPIATimer(t)}tickPIATimer(t){this.piatimer=Math.max(-256,this.piatimer-t)}advanceFrame(t){var e=this.pixels,n=0,i,s=0,u=0,c=0;this.lastFrameCycles=-1,this.probe.logNewFrame();for(var x=0;x<M;x++){this.scanline=x;var m=x<G;for(this.maria.setVBLANK(!m),this.maria.WSYNC=0;s<tt&&!this.maria.WSYNC;){if(t&&t()){t=null,x=999,this.lastFrameCycles=s;break}s+=this.advanceCPU()<<2,c++}if(m){let p=this.maria.doDMA(this.dmaBus);if(this.tickClocks(p>>2),s+=p,e){let d=(this.maria.regs[28]&128)!=0?15:255;for(var l=0;l<320;l++)e[n++]=J[this.maria.pixels[l]&d]}}for((m||x==M-1)&&this.maria.doInterrupt()&&(this.probe.logInterrupt(0),this.cpu.NMI());s<C;){if(this.maria.WSYNC){this.probe.logWait(0),this.tickClocks(C-s>>2),s=C;break}if(t&&t()){t=null,x=999,this.lastFrameCycles=s;break}s+=this.advanceCPU()<<2,c++}this.audio&&this.audioadapter.generate(this.audio),s-=C,u+=s,this.probe.logNewScanline()}return c}getRasterX(){return(this.lastFrameCycles+C)%C}getRasterY(){return this.scanline}getRasterCanvasPosition(){return{x:this.getRasterX(),y:this.getRasterY()}}loadROM(t){t.length==49280&&(t=t.slice(128)),this.rom=W(t,this.defaultROMSize,!0)}reset(){super.reset(),this.tia.reset(),this.maria.reset(),this.inputs.fill(0),this.inputs[b]=255,this.inputs[F]=11,this.setPIATimer(0,0)}readAddress(t){return this.read(t)|0}loadState(t){this.cpu.loadState(t.c),this.ram.set(t.ram),this.tia.loadState(t.tia),this.maria.loadState(t.maria),this.regs6532.set(t.regs6532),this.piatimer=t.pia.timer,this.timerinterval=t.pia.interval,this.loadControlsState(t)}saveState(){return{c:this.cpu.saveState(),ram:this.ram.slice(0),tia:this.tia.saveState(),maria:this.maria.saveState(),regs6532:this.regs6532.slice(0),inputs:this.inputs.slice(0),pia:{timer:this.piatimer,interval:this.timerinterval}}}loadControlsState(t){this.inputs.set(t.inputs)}saveControlsState(){return{inputs:this.inputs.slice(0)}}getDebugCategories(){return["CPU","Stack","TIA","MARIA"]}getDebugInfo(t,e){switch(t){case"TIA":return I.stateToLongString(e.tia);case"MARIA":return L.stateToLongString(e.maria)+`
Scanline: `+this.scanline}}getDebugDisplayLists(){let t={},e=this.maria.getDLLStart(),n=0;for(;n<240;){let i=this.readConst(e),s=i&15,u=(i&64)!=0,c=(i&32)!=0,x=(this.readConst(e+1)<<8)+this.readConst(e+2);e=e+3&65535;let m=(this.readConst(e)&128)!=0,l="DL $"+S(x,4)+" "+n+"-"+(n+s);u&&(l+=" H16"),c&&(l+=" H8"),m&&(l+=" DLI"),t[l]={$$:this._readDebugDisplayList(x)},n+=s+1}return t}_readDebugDisplayList(t){return()=>this.readDebugDisplayList(t)}readDebugDisplayList(t){let e=[],n=t&65280,i=t&255;do{let x=this.maria.regs[28],m=this.readConst(n+(i+0&511)),l=this.readConst(n+(i+1&511));if(l==0)break;let p=this.readConst(n+(i+2&511)),g=this.readConst(n+(i+3&511)),y=!1,d="",k,A=(x&3)+(l&128?4:0);if((l&31)==0){var s=g>>5,u=32-(g&31),c=this.readConst(n+(i+4&511));y=(l&32)!=0,k=l&128,i+=5}else{var c=g,s=l>>5,u=32-(l&31);i+=4}d+="X="+c+" W="+u+" P="+s,k&&(d+=" WM=1"),y&&(d+=" CHR=$"+S(this.maria.regs[20]+this.maria.offset&255)+"xx");let w=m+((p+(y?0:this.maria.offset)&255)<<8);d=" $"+S(w,4)+" "+d,d=["160A","?","320D","320A","160B","?","320B","320C"][A]+" "+d,e.push(d)}while(i<512);return e}},J=new Uint32Array(256);for(D=0;D<256;D++)J[D]=j(D);var D;var it=[{id:"sprites.dasm",name:"Sprites (ASM)",category:"Assembly"},{id:"wsync.c",name:"WSYNC",category:"CC65"},{id:"sprites.c",name:"Double Buffering"},{id:"scroll.c",name:"Scrolling"},{id:"test_conio.c78",name:"Conio Test",category:"cc7800"},{id:"example_small_sprites.c78",name:"Small Sprites"},{id:"example_vertical_scrolling.c78",name:"Vertical Scrolling"}],U=class extends ${constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"TIA",start:0,size:32,type:"io"},{name:"MARIA",start:32,size:32,type:"io"},{name:"RAM (6166 Block 0)",start:64,size:192,type:"ram"},{name:"RAM (6166 Block 1)",start:320,size:192,type:"ram"},{name:"PIA",start:640,size:24,type:"io"},{name:"RAM",start:6144,size:4096,type:"ram"},{name:"Cartridge ROM",start:16384,size:49146,type:"rom"},{name:"CPU Vectors",start:65530,size:6,type:"rom"}]}};this.getToolForFilename=H}newMachine(){return new T}getPresets(){return it}getDefaultExtensions(){return[...super.getDefaultExtensions(),".cc7800"]}readAddress(t){return this.machine.readConst(t)}getROMExtension(){return".a78"}getDebugTree(){let t=super.getDebugTree();return t.display_list=this.machine.getDebugDisplayLists(),t}};O.atari7800=U;
//# sourceMappingURL=atari7800-ISTONEBP.js.map
//# sourceMappingURL=atari7800-ZOUJP6JR.js.map
File renamed without changes.
@@ -1,7 +1,7 @@
import{a as ft}from"./chunk-UNDRK5PG.js";import{b as dt,c as xt,d as Q}from"./chunk-4HX34MCE.js";import{B as lt,I as ct,g as at,l as nt,n as ht,t as ot}from"./chunk-FFJHITEL.js";import{g as H}from"./chunk-UXRCACYH.js";import{P as T,a as Y,aa as D,ba as i,ca as it,ea as rt,g as _,ha as k,r as I}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var Mt=[0,25,17,9],vt=[0,89,97,105],y=0,Ct=1,B=2,z=3,Lt=4,Kt=5,Pt=7,Vt=9,L=10,wt=11,Nt=12,Ut=13,ut=14,Ft=15,K=15;var Yt=13,Ht=106,Qt=105,X=[0,0,8,10,8,16,8,16,8,4,4,2,1,2,1,1],Bt=[0,0,2,2,2,2,4,4,8,8,4,4,4,2,2,2],zt=[0,0,0,0,0,1,0,1,0,0,2,1,0,0,0,0],mt=[0,0,1,1,2,2,2,2,8,4,4,2,2,2,2,1],M=class{constructor(e,t){this.regs=new Uint8Array(16);this.left=-1;this.right=-1;this.dma_enabled=!1;this.dliop=0;this.mode=0;this.jmp=!1;this.lms=!1;this.dlarg_lo=0;this.dlarg_hi=0;this.period=0;this.scanaddr=0;this.startaddr=0;this.pfbyte=0;this.ch=0;this.linesleft=0;this.yofs=0;this.isfirstline=!1;this.v=0;this.h=0;this.linebuf=new Uint8Array(48);this.dmaclock=0;this.dmaidx=0;this.output=0;this.dramrefresh=!1;this.in_vscroll=0;this.read=e,this.nmi=t}reset(){this.regs.fill(0),this.regs[ut]=0,this.regs[K]=127,this.regs[Nt]=0,this.regs[Ut]=255,this.setReg(y,0),this.h=this.v=0,this.startaddr=this.scanaddr=0,this.dmaclock=0}saveState(){return I(0,{},this)}loadState(e){I(0,this,e),this.setReg(y,e.regs[y])}static stateToLongString(e){let t="";return t+="H: "+Y(e.h,3)+" V: "+Y(e.v,3)+`
import{a as ft}from"./chunk-JELKPLZC.js";import{b as dt,c as xt,d as Q}from"./chunk-4HX34MCE.js";import{D as lt,K as ct,g as at,n as nt,p as ht,v as ot}from"./chunk-4YTESWOC.js";import{g as H}from"./chunk-UXRCACYH.js";import{P as T,a as Y,aa as D,ba as i,ca as it,ea as rt,g as _,ha as k,r as I}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var Mt=[0,25,17,9],vt=[0,89,97,105],y=0,Ct=1,B=2,z=3,Lt=4,Kt=5,Pt=7,Vt=9,L=10,wt=11,Nt=12,Ut=13,ut=14,Ft=15,K=15;var Yt=13,Ht=106,Qt=105,X=[0,0,8,10,8,16,8,16,8,4,4,2,1,2,1,1],Bt=[0,0,2,2,2,2,4,4,8,8,4,4,4,2,2,2],zt=[0,0,0,0,0,1,0,1,0,0,2,1,0,0,0,0],mt=[0,0,1,1,2,2,2,2,8,4,4,2,2,2,2,1],M=class{constructor(e,t){this.regs=new Uint8Array(16);this.left=-1;this.right=-1;this.dma_enabled=!1;this.dliop=0;this.mode=0;this.jmp=!1;this.lms=!1;this.dlarg_lo=0;this.dlarg_hi=0;this.period=0;this.scanaddr=0;this.startaddr=0;this.pfbyte=0;this.ch=0;this.linesleft=0;this.yofs=0;this.isfirstline=!1;this.v=0;this.h=0;this.linebuf=new Uint8Array(48);this.dmaclock=0;this.dmaidx=0;this.output=0;this.dramrefresh=!1;this.in_vscroll=0;this.read=e,this.nmi=t}reset(){this.regs.fill(0),this.regs[ut]=0,this.regs[K]=127,this.regs[Nt]=0,this.regs[Ut]=255,this.setReg(y,0),this.h=this.v=0,this.startaddr=this.scanaddr=0,this.dmaclock=0}saveState(){return I(0,{},this)}loadState(e){I(0,this,e),this.setReg(y,e.regs[y])}static stateToLongString(e){let t="";return t+="H: "+Y(e.h,3)+" V: "+Y(e.v,3)+`
`,t+="DLIOp: "+_(e.dliop,2)+" Lines: "+e.yofs+"/"+e.linesleft,t+=" DMA "+(e.dma_enabled?"ON ":"off"),e.dma_enabled&&(t+=" idx "+e.dmaidx+" clk "+_(e.dmaclock)),t+=`
`,t+="Addr: "+_(e.scanaddr,4)+`
`,t+=D(e.regs,0,16).replace("$00","Regs"),t}setReg(e,t){switch(e){case L:this.regs[L]=255;return;case Ft:this.regs[K]=31;return}this.regs[e]=t}readReg(e){switch(e){case K:return this.regs[e];case wt:return this.v>>1;default:return 255}}processDLIEntry(){if(this.mode==0)this.linesleft=(this.dliop>>4&7)+1,this.dmaclock=0;else{this.linesleft=X[this.mode],this.period=Bt[this.mode],this.jmp?(this.regs[B]=this.dlarg_lo,this.regs[z]=this.dlarg_hi,this.mode=this.period=0,this.dliop&64&&(this.linesleft=1,this.dma_enabled=!1),this.dmaclock=0):this.lms&&(this.scanaddr=this.dlarg_lo+(this.dlarg_hi<<8)),this.startaddr=this.scanaddr;let e=this.regs[y]&3,t=this.dliop&16?(this.regs[Lt]&15)>>1:0;this.dliop&16&&e<3&&e++,this.left=Mt[e]+t,this.right=vt[e]+t;let s=this.regs[Kt]&15;this.dliop&32^this.in_vscroll&&(this.in_vscroll?this.linesleft=s+1:(this.linesleft-=s,this.yofs+=s),this.linesleft&=15,this.in_vscroll^=32)}}nextLine(){this.linesleft>0&&(this.linesleft--,this.yofs++,this.isfirstline=!1,this.mode>=8&&this.linesleft&&(this.scanaddr=this.startaddr))}triggerNMI(e){this.regs[K]=e|31,this.regs[ut]&e&&this.nmi()}getDlistAddr(){return this.regs[B]+(this.regs[z]<<8)}nextInsn(){let e=this.getDlistAddr(),t=this.read(e);return e=e+1&1023|e&-1024,this.regs[B]=e&255,this.regs[z]=e>>8,t}nextScreen(){let e=this.read(this.scanaddr);return this.incScanAddr(),e}incScanAddr(){this.scanaddr=this.scanaddr+1&4095|this.scanaddr&-4096}dlDMAEnabled(){return this.regs[y]&32}isVisibleScanline(){return this.v>=8&&this.v<248}isPlayfieldDMAEnabled(){return this.dma_enabled&&!this.linesleft}isPlayerDMAEnabled(){return this.regs[y]&8}isMissileDMAEnabled(){return this.regs[y]&12}isWSYNC(){return this.regs[L]!=0}clockPulse(){let e=this.isWSYNC();if(!this.isVisibleScanline())this.doVBlank();else{switch(this.h){case 0:this.isMissileDMAEnabled()&&(this.doPlayerMissileDMA(3),e=!0);break;case 1:if(this.isPlayfieldDMAEnabled()){let t=this.nextInsn();this.jmp=(t&-65)==1,this.lms=(t&64)!=0&&(t&15)!=0,this.mode=t&15,this.dliop=t,this.yofs=0,this.isfirstline=!0,e=!0}break;case 2:case 3:case 4:case 5:this.isPlayerDMAEnabled()&&(this.doPlayerMissileDMA(this.h+2),e=!0);break;case 6:case 7:this.isPlayfieldDMAEnabled()&&this.isfirstline&&(this.jmp||this.lms)&&(this.h==6&&(this.dlarg_lo=this.nextInsn()),this.h==7&&(this.dlarg_hi=this.nextInsn()),e=!0);break;case 8:this.isfirstline&&this.processDLIEntry(),this.dliop&128&&this.linesleft==1&&this.triggerNMI(128);break;case 9:break;case 111:this.dma_enabled&&this.nextLine(),++this.v;break}if(this.output=0,this.mode>=2&&this.period){let t=this.h<=Qt;this.dmaclock=this.dmaclock<<1&511,this.dmaclock&1<<this.period&&(this.dmaclock|=1),this.h==this.left&&(this.dmaclock|=1,this.dmaidx=0),this.h==this.right&&(this.dmaclock&=-2,this.dmaidx++),this.dmaclock&1?(this.mode<8&&this.isfirstline&&(t?this.linebuf[this.dmaidx]=this.nextScreen():this.incScanAddr(),e=t),this.dmaidx++):this.dmaclock&8&&(this.ch=this.linebuf[this.dmaidx-4/this.period],t?this.readBitmapData():this.mode>=8&&this.incScanAddr(),e=t),this.output=this.h>=this.left+3&&this.h<=this.right+2?4:0}}return(this.h<Yt||this.h>Ht)&&(this.output=2),this.incHorizCounter(),!e&&this.dramrefresh&&(this.read(0),this.dramrefresh=!1,e=!0),e}incHorizCounter(){switch(this.h){case 25:case 29:case 33:case 37:case 41:case 45:case 49:case 53:case 57:this.dramrefresh=!0;break;case 102:this.regs[L]=0;break;case 113:this.h=0;return}++this.h}doVBlank(){this.linesleft=this.mode=this.period=0,this.h==111&&this.v++,this.v==248&&this.h==0&&this.triggerNMI(64),this.v==262&&this.h==112&&(this.v=0),this.v==7&&this.h==113&&(this.dma_enabled=this.dlDMAEnabled()!=0),this.output=2,this.dmaclock=0}doPlayerMissileDMA(e){let t=this.regs[y]&16,s=this.regs[Pt]<<8;t?(s&=63488,s|=e<<8,s|=this.v&255):(s&=64512,s|=e<<7,s|=this.v>>1),this.read(s)}readBitmapData(){let e=this.mode;if(e<8){let t=this.ch,s=this.yofs>>zt[this.mode],r=s&7,a=this.regs[Vt];(e&14)==6?(t&=63,a&=254):(t&=127,a&=252);let o=(t<<3)+(a<<8);if((e&14)==2){let h=this.regs[Ct],c=e==3&&(t&96)==96;h&4?this.pfbyte=this.read(o+(r^7)):this.pfbyte=this.read(o+r),c&&s<2&&(this.pfbyte=0),!c&&s>7&&(this.pfbyte=0),this.ch&128&&(h&1&&(this.pfbyte=0),h&2&&(this.pfbyte^=255))}else this.pfbyte=this.read(o+r)}else this.pfbyte=this.nextScreen()}shiftout(){if(this.output==4)switch(this.mode){case 2:case 3:case 15:{let e=this.pfbyte>>7&1;return this.pfbyte<<=1,e?8:6}case 6:case 7:{let e=this.pfbyte>>7&1;return this.pfbyte<<=1,e?(this.ch>>6)+4:0}case 9:case 11:case 12:{let e=this.pfbyte>>7&1;return this.pfbyte<<=1,e?4:0}case 4:case 5:{let e=this.pfbyte>>6&3;return this.pfbyte<<=2,this.ch&128?[0,4,5,7][e]:[0,4,5,6][e]}case 8:case 10:case 13:case 14:{let e=this.pfbyte>>6&3;return this.pfbyte<<=2,[0,4,5,6][e]}}return this.output}};var f=0;var Xt=2;var gt=4;var _t=6;var p=8,qt=9,Gt=10,Wt=11,jt=13,q=14,S=15;var Zt=8,$t=9,Jt=10,te=13,O=14,P=15;var pt=128,bt=64,ee=32,yt=16,Et=8;var se=1,St=28,ie=114;var At=511,It=131071,m=0,g=1,b=2,u=3,E=114,re=15;var ae=8;var G,V;functi Line truncated
`,t+=D(e.regs,0,16),t+=`Read Registers:
`,t+=D(e.readregs,0,16),t}CASSETTE_IOLineStatus(){return 0}siocheck(){return((this.regs[f+b]==40||this.regs[f+b]==16||this.regs[f+b]==8||this.regs[f+b]==10)&&this.regs[f+u]==0||(this.regs[S]&120)==40)&&(this.regs[p]&40)==40}SIO_PutByte(e){console.log("SIO put byte",e)}SIO_GetByte(){return 0}};var w=class{constructor(e){if(this.data=e,e.length>=16&&(e[0]|e[1]<<8)==662){let s=(e[2]|e[3]<<8)*16,r=e[4]|e[5]<<8;this.sectorsize=r==256?256:128,this.sectorsize==256?this.numsectors=3+Math.floor((s-16-384)/256):this.numsectors=Math.floor((s-16)/128)}else this.sectorsize=128,this.numsectors=Math.floor(e.length/128)}sectorOffset(e){return this.sectorsize==256?e<3?16+e*128:400+(e-3)*256:16+e*128}readSector(e,t){let s=e-1;if(s<0||s>=this.numsectors)return null;let r=this.sectorOffset(s);return this.data.subarray(r,Math.min(r+t,this.data.length))}writeSector(e,t,s){let r=e-1;if(r<0||r>=this.numsectors)return!1;let a=this.sectorOffset(r);return this.data.set(t.subarray(0,Math.min(s,this.data.length-a)),a),!0}};var W=160,he=240,oe=241,Ot=242,le=[173,0,3,201,49,144,12,201,64,176,8,141,240,213,173,241,213,168,96,76,80,233],ce=[i.VK_L,i.VK_J,i.VK_SEMICOLON,i.VK_F4,i.VK_F5,i.VK_K,i.VK_BACK_SLASH,i.VK_TILDE,i.VK_O,null,i.VK_P,i.VK_U,i.VK_ENTER,i.VK_I,i.VK_MINUS2,i.VK_EQUALS2,i.VK_V,i.VK_F7,i.VK_C,i.VK_F6,i.VK_F4,i.VK_B,i.VK_X,i.VK_Z,i.VK_4,null,i.VK_3,i.VK_6,i.VK_ESCAPE,i.VK_5,i.VK_2,i.VK_1,i.VK_COMMA,i.VK_SPACE,i.VK_PERIOD,i.VK_N,null,i.VK_M,i.VK_SLASH,null,i.VK_R,null,i.VK_E,i.VK_Y,i.VK_TAB,i.VK_T,i.VK_W,i.VK_Q,i.VK_9,null,i.VK_0,i.VK_7,i.VK_BACK_SPACE,i.VK_8,null,null,i.VK_F,i.VK_H,i.VK_D,null,i.VK_CAPS_LOCK,i.VK_G,i.VK_S,i.VK_A],fe=rt([[i.UP,0,1],[i.DOWN,0,2],[i.LEFT,0,4],[i.RIGHT,0,8],[{c:16,n:"Shift",plyr:0,button:0},2,1],[i.VK_F1,3,1],[i.VK_F2,3,2],[i.VK_F3,3,4]]),C=class extends ot{constructor(){super();this.cpuFrequency=1789773;this.numTotalScanlines=262;this.cpuCyclesPerLine=114;this.canvasWidth=336;this.numVisibleScanlines=224;this.aspectRatio=this.canvasWidth/this.numVisibleScanlines*.857;this.firstVisibleScanline=16;this.firstVisibleClock=76;this.defaultROMSize=32768;this.overscan=!0;this.audioOversample=2;this.sampleRate=this.numTotalScanlines*60*this.audioOversample;this.run_address=-1;this.inputs=new Uint8Array(4);this.linergb=new Uint32Array(this.canvasWidth);this.lastdmabyte=0;this.keycode=0;this.cart_80=!1;this.cart_a0=!1;this.xexdata=null;this.xexofs=0;this.xexstubofs=0;this.xexrunaddr=-1;this.disk=null;this.keyboard_active=!0;this.d500=new Uint8Array(256);this.cpu=new ht,this.ram=new Uint8Array(65536),this.bios=new Uint8Array(10240),this.bus=this.newBus(),this.connectCPUMemoryBus(this.bus),this.antic=new M(this.readDMA.bind(this),this.antic_nmi.bind(this)),this.gtia=new Q,this.irq_pokey=new v(this.pokey_irq.bind(this),()=>this.antic.h),this.audio_pokey=at(1),this.audioadapter=new nt(this.audio_pokey.pokey1,this.audioOversample,this.sampleRate),this.handler=it(this.inputs,fe,this.getKeyboardFunction(),!0)}newBus(){return{read:k([[0,32767,65535,t=>this.ram[t]],[32768,40959,65535,t=>this.cart_80?this.rom[t-32768]:this.ram[t]],[40960,49151,65535,t=>this.cart_a0?this.rom[t-32768]:this.ram[t]],[53248,53503,31,t=>this.gtia.readReg(t)],[53760,54015,15,t=>this.readPokey(t)],[54016,54271,15,t=>this.readPIA(t)],[54272,54527,15,t=>this.antic.readReg(t)],[54528,54783,255,t=>this.d500[t]],[55296,65535,65535,t=>this.bios[t-55296]]]),write:k([[0,49146,65535,(t,s)=>{this.ram[t]=s}],[49147,49151,65535,(t,s)=>{this.ram[t]=s,this.initCartA()}],[53248,53503,31,(t,s)=>{this.gtia.setReg(t,s)}],[53760,54015,15,(t,s)=>{this.writePokey(t,s)}],[54272,54527,15,(t,s)=>{this.antic.setReg(t,s)}],[54528,54783,255,(t,s)=>{this.writeMapper(t,s)}]])}}loadBIOS(t){this.bios.set(t),this.installSIOStub()}installSIOStub(){this.bios[3161]=76,this.bios[3162]=54528+W&255,this.bios[3163]=54528+W>>8,this.d500.set(le,W)}reset(){super.reset(),this.antic.reset(),this.gtia.reset(),this.keycode=0}read(t){return this.bus.read(t)}readDMA(t){let s=this.bus.read(t);return this.probe.logDMARead(t,s),this.lastdmabyte=s,s}readConst(t){return t<53248||t>=54528?this.bus.read(t):255}write(t,s){this.bus.write(t,s)}readPokey(t){switch(t&15){case 9:return this.keycode&255;case 15:return~this.keycode>>6&4|~this.keycode>>3&8|18;default:return this.irq_pokey.read(t)}}readPIA(t){if(t==0||t==1)return~this.inputs[t]}writePokey(t,s){this.audio_pokey.pokey1.setRegister(t,s),this.irq_pokey.write(t,s)}startScanline(){this.gtia.sync();for(let t=0;t<4;t++)this.gtia.readregs[dt+t]=~this.inputs[2]>>t&1;this.gtia.readregs[xt]=~this.inputs[3]&7,this.audio&&this.audioadapter.generate(this.audio),this.irq_pokey.advanceScanline()}drawScanline(){let t=this.antic.v-this.firstVisibleScanline;t>=0&&t<this.numVisibleScanlines&&this.pixels.set(this.linergb,t*this.canvasWidth)}advanceCPU(){this.antic.clockPulse()?(this.antic.h<8&&this.gtia.updateGfx(this.antic.h-1,this.antic.v,this.lastdmabyte),this.antic.isWSYNC()&&this.probe.logWait(0),this.probe.logClocks(1)):super.advanceCPU();let t=this.an Line truncated
//# sourceMappingURL=atari8-CM7XWBCH.js.map
//# sourceMappingURL=atari8-C234KZYT.js.map
File renamed without changes.
+2 -2
View File
@@ -1,4 +1,4 @@
import{a as k}from"./chunk-UNDRK5PG.js";import{B as v,I as R,u as C}from"./chunk-FFJHITEL.js";import{a as S}from"./chunk-UXRCACYH.js";import{P as h,a as d,aa as u,g as a,v as f}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var n=0,y=1,g=2,O=3,m=class extends C{constructor(){super(...arguments);this.numTotalScanlines=312;this.cpuCyclesPerLine=63;this.joymask0=0;this.joymask1=0;this.joystickPort=n;this.joystickDetected=!1;this.lightpen_x=0;this.lightpen_y=0;this.cia1ofs=-1}loadBIOS(e){super.loadBIOS(e)}reset(){super.reset();for(var e=0;e<128;e++)this.exports.machine_key_up(this.sys,e);if(this.romptr&&this.romlen){if(this.exports.machine_load_rom(this.sys,this.romptr,this.romlen),this.prgstart=this.romarr[0]+(this.romarr[1]<<8),this.prgstart==2049)if(this.romarr[6]==158){for(var i=0,t=0;t<5;t++){var e=this.romarr[7+t];if(e==155||e==0)break;i=i*10+(e&15)}this.prgstart=i,console.log("SYS",i,a(i))}else this.prgstart=this.romarr[2]+(this.romarr[3]<<8)+2,console.log("RUN",this.prgstart,a(this.prgstart));if(this.prgstart<32768){this.exports.machine_exec(this.sys,25e4);for(var s="\rSYS "+this.prgstart,t=0;t<s.length;t++){var r=s.charCodeAt(t);this.exports.machine_exec(this.sys,3e4),this.exports.machine_key_down(this.sys,r),this.exports.machine_exec(this.sys,3e4),this.exports.machine_key_up(this.sys,r),this.exports.machine_exec(this.sys,1)}this.exports.machine_key_down(this.sys,13),this.exports.machine_exec(this.sys,1);for(var t=0;t<1e5&&this.getPC()!=this.prgstart;t++)this.exports.machine_tick(this.sys);this.exports.machine_key_up(this.sys,13),this.exports.machine_exec(this.sys,1)}else{this.exports.machine_exec(this.sys,100);for(var c=this.romarr[4]+this.romarr[5]*256,t=0;t<15e4&&this.getPC()!=c;t++)this.exports.machine_tick(this.sys)}}}advanceFrame(e){var i=this.getRasterY(),t=Math.floor((this.numTotalScanlines-i)*19656/this.numTotalScanlines),s=this.probe!=null;return s&&this.exports.machine_reset_probe_buffer(),t=super.advanceFrameClock(e,t),s&&this.copyProbeData(),this.pollJoystickPort(),t}getCIA1Offset(){return this.cia1ofs<0&&(this.cia1ofs=this.getDebugStateOffset(1)),this.cia1ofs}pollJoystickPort(){if(!(this.joystickPort!=n||this.joystickDetected)){var e=this.exports.memory.buffer,i=this.cia1view;(i==null||i.buffer!==e)&&(i=this.cia1view=new Uint8Array(e,this.sys+this.getCIA1Offset()+1,1)),(i[0]&31)==0&&(this.joystickDetected=!0,this.deliverJoystick())}}setJoystickPort(e){this.joystickPort=e,this.deliverJoystick()}deliverJoystick(){if(this.exports){var e=this.joymask0,i=this.joymask1;this.joystickPort==y?i=0:(this.joystickPort==g||this.joystickPort==n&&this.joystickDetected)&&(e=0),this.exports.c64_joystick(this.sys,e,i)}}getCPUState(){this.exports.machine_save_cpu_state(this.sys,this.cpustateptr);var e=this.cpustatearr,i=e[2]+(e[3]<<8);return{PC:i,SP:e[9],A:e[6],X:e[7],Y:e[8],C:e[10]&1,Z:e[10]&2,I:e[10]&4,D:e[10]&8,V:e[10]&64,N:e[10]&128,o:this.readConst(i),R:e[19]!=55}}saveState(){this.exports.machine_save_state(this.sys,this.stateptr);let e=this.getDebugStateOffset(1),i=this.getDebugStateOffset(2),t=this.getDebugStateOffset(3),s=this.getDebugStateOffset(4),r=this.getDebugStateOffset(5),c=this.getDebugStateOffset(9);return{c:this.getCPUState(),state:this.statearr.slice(0),ram:this.statearr.slice(r,r+65536),cia1:this.statearr.slice(e,e+64),cia2:this.statearr.slice(i,i+64),vic:this.statearr.slice(t+1,t+1+64),sid:this.statearr.slice(s,s+32),pla:this.statearr.slice(c,c+16),joymask0:this.joymask0,joymask1:this.joymask1,joystickDetected:this.joystickDetected}}loadState(e){this.statearr.set(e.state),this.exports.machine_load_state(this.sys,this.stateptr),this.joymask0=e.joymask0|0,this.joymask1=e.joymask1|0,this.joystickDetected=!!e.joystickDetected,this.deliverJoystick()}getVideoParams(){return{width:392,height:272,overscan:!0,videoFrequency:50,aspect:392/272*.9365}}setKeyInput(e,i,t){if(!(e==16||e==17||e==18||e==224)){var s=0,r=0;switch(e){case 32:s=r=16;break;case 37:e=8,s=r=4;break;case 38:e=11,s=r=1;break;case 39:e=9,s=r=8;break;case 40:e=10,s=r=2;break;case 113:e=241;break;case 115:e=243;break;case 119:e=245;break;case 121:e=247;break;case 188:e=t&2?60:46;break;case 190:e=t&2?62:44;break;case 191:e=t&2?63:47;break;case 222:e=t&2?34:39;break;case 219:e=t&2?123:91;break;case 221:e=t&2?125:93;break;case 48:t&2&&(e=41);break;case 49:t&2&&(e=33);break;case 50:t&2&&(e=64);break;case 51:t&2&&(e=35);break;case 52:t&2&&(e=36);break;case 53:t&2&&(e=37);break;case 54:t&2&&(e=94);break;case 55:t&2&&(e=38);break;case 56:t&2&&(e=42);break;case 57:t&2&&(e=40);break;case 59:t&2&&(e=58);break;case 61:t&2&&(e=43);break;case 173:e=t&2?95:45;break}t&1?(this.exports.machine_key_down(this.sys,e),this.joymask0|=s,this.joymask1|=r):t&64&&(this.exports.machine_key_up(this.sys,e),this.joymask0&=~s,this.joymask1&=~r),this.deliverJoystick()}}getRasterX(){return this.statearr[244]}getRasterY(){return this.exports.machine_get_raster_line(this.sys)}getRasterCanvasPosition(){return{x:this.getRasterX()*392/63,y:this.getRasterY()-14}Line truncated
import{a as k}from"./chunk-JELKPLZC.js";import{D as v,K as R,w as C}from"./chunk-4YTESWOC.js";import{a as S}from"./chunk-UXRCACYH.js";import{P as h,a as d,aa as u,g as a,v as f}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var n=0,y=1,g=2,O=3,m=class extends C{constructor(){super(...arguments);this.numTotalScanlines=312;this.cpuCyclesPerLine=63;this.joymask0=0;this.joymask1=0;this.joystickPort=n;this.joystickDetected=!1;this.lightpen_x=0;this.lightpen_y=0;this.cia1ofs=-1}loadBIOS(e){super.loadBIOS(e)}reset(){super.reset();for(var e=0;e<128;e++)this.exports.machine_key_up(this.sys,e);if(this.romptr&&this.romlen){if(this.exports.machine_load_rom(this.sys,this.romptr,this.romlen),this.prgstart=this.romarr[0]+(this.romarr[1]<<8),this.prgstart==2049)if(this.romarr[6]==158){for(var i=0,t=0;t<5;t++){var e=this.romarr[7+t];if(e==155||e==0)break;i=i*10+(e&15)}this.prgstart=i,console.log("SYS",i,a(i))}else this.prgstart=this.romarr[2]+(this.romarr[3]<<8)+2,console.log("RUN",this.prgstart,a(this.prgstart));if(this.prgstart<32768){this.exports.machine_exec(this.sys,25e4);for(var s="\rSYS "+this.prgstart,t=0;t<s.length;t++){var r=s.charCodeAt(t);this.exports.machine_exec(this.sys,3e4),this.exports.machine_key_down(this.sys,r),this.exports.machine_exec(this.sys,3e4),this.exports.machine_key_up(this.sys,r),this.exports.machine_exec(this.sys,1)}this.exports.machine_key_down(this.sys,13),this.exports.machine_exec(this.sys,1);for(var t=0;t<1e5&&this.getPC()!=this.prgstart;t++)this.exports.machine_tick(this.sys);this.exports.machine_key_up(this.sys,13),this.exports.machine_exec(this.sys,1)}else{this.exports.machine_exec(this.sys,100);for(var c=this.romarr[4]+this.romarr[5]*256,t=0;t<15e4&&this.getPC()!=c;t++)this.exports.machine_tick(this.sys)}}}advanceFrame(e){var i=this.getRasterY(),t=Math.floor((this.numTotalScanlines-i)*19656/this.numTotalScanlines),s=this.probe!=null;return s&&this.exports.machine_reset_probe_buffer(),t=super.advanceFrameClock(e,t),s&&this.copyProbeData(),this.pollJoystickPort(),t}getCIA1Offset(){return this.cia1ofs<0&&(this.cia1ofs=this.getDebugStateOffset(1)),this.cia1ofs}pollJoystickPort(){if(!(this.joystickPort!=n||this.joystickDetected)){var e=this.exports.memory.buffer,i=this.cia1view;(i==null||i.buffer!==e)&&(i=this.cia1view=new Uint8Array(e,this.sys+this.getCIA1Offset()+1,1)),(i[0]&31)==0&&(this.joystickDetected=!0,this.deliverJoystick())}}setJoystickPort(e){this.joystickPort=e,this.deliverJoystick()}deliverJoystick(){if(this.exports){var e=this.joymask0,i=this.joymask1;this.joystickPort==y?i=0:(this.joystickPort==g||this.joystickPort==n&&this.joystickDetected)&&(e=0),this.exports.c64_joystick(this.sys,e,i)}}getCPUState(){this.exports.machine_save_cpu_state(this.sys,this.cpustateptr);var e=this.cpustatearr,i=e[2]+(e[3]<<8);return{PC:i,SP:e[9],A:e[6],X:e[7],Y:e[8],C:e[10]&1,Z:e[10]&2,I:e[10]&4,D:e[10]&8,V:e[10]&64,N:e[10]&128,o:this.readConst(i),R:e[19]!=55}}saveState(){this.exports.machine_save_state(this.sys,this.stateptr);let e=this.getDebugStateOffset(1),i=this.getDebugStateOffset(2),t=this.getDebugStateOffset(3),s=this.getDebugStateOffset(4),r=this.getDebugStateOffset(5),c=this.getDebugStateOffset(9);return{c:this.getCPUState(),state:this.statearr.slice(0),ram:this.statearr.slice(r,r+65536),cia1:this.statearr.slice(e,e+64),cia2:this.statearr.slice(i,i+64),vic:this.statearr.slice(t+1,t+1+64),sid:this.statearr.slice(s,s+32),pla:this.statearr.slice(c,c+16),joymask0:this.joymask0,joymask1:this.joymask1,joystickDetected:this.joystickDetected}}loadState(e){this.statearr.set(e.state),this.exports.machine_load_state(this.sys,this.stateptr),this.joymask0=e.joymask0|0,this.joymask1=e.joymask1|0,this.joystickDetected=!!e.joystickDetected,this.deliverJoystick()}getVideoParams(){return{width:392,height:272,overscan:!0,videoFrequency:50,aspect:392/272*.9365}}setKeyInput(e,i,t){if(!(e==16||e==17||e==18||e==224)){var s=0,r=0;switch(e){case 32:s=r=16;break;case 37:e=8,s=r=4;break;case 38:e=11,s=r=1;break;case 39:e=9,s=r=8;break;case 40:e=10,s=r=2;break;case 113:e=241;break;case 115:e=243;break;case 119:e=245;break;case 121:e=247;break;case 188:e=t&2?60:46;break;case 190:e=t&2?62:44;break;case 191:e=t&2?63:47;break;case 222:e=t&2?34:39;break;case 219:e=t&2?123:91;break;case 221:e=t&2?125:93;break;case 48:t&2&&(e=41);break;case 49:t&2&&(e=33);break;case 50:t&2&&(e=64);break;case 51:t&2&&(e=35);break;case 52:t&2&&(e=36);break;case 53:t&2&&(e=37);break;case 54:t&2&&(e=94);break;case 55:t&2&&(e=38);break;case 56:t&2&&(e=42);break;case 57:t&2&&(e=40);break;case 59:t&2&&(e=58);break;case 61:t&2&&(e=43);break;case 173:e=t&2?95:45;break}t&1?(this.exports.machine_key_down(this.sys,e),this.joymask0|=s,this.joymask1|=r):t&64&&(this.exports.machine_key_up(this.sys,e),this.joymask0&=~s,this.joymask1&=~r),this.deliverJoystick()}}getRasterX(){return this.statearr[244]}getRasterY(){return this.exports.machine_get_raster_line(this.sys)}getRasterCanvasPosition(){return{x:this.getRasterX()*392/63,y:this.getRasterY()-14}Line truncated
`,t+=`$A000 - $BFFF ${(r&3)==3?"BASIC ROM":"RAM"}
`,t+=`$C000 - $CFFF RAM
`,t+=`$D000 - $DFFF ${s?"I/O":(r&3)!=0?"CHAR ROM":"RAM"}
@@ -11,4 +11,4 @@ import{a as k}from"./chunk-UNDRK5PG.js";import{B as v,I as R,u as C}from"./chunk
`,s+=`VIC Bank: $${a(r,4)} Scrn: $${a(p,4)} `,x?s+=`Bitmap: $${a(c&57344,4)}`:A?s+=`Char: ROM $${a(c,4)}`:s+=`Char: $${a(c,4)}`,s+=`
`,s+=u(t,53248,64),s}case"SID":{let t=i.sid,s="";return s+=u(t,54272,32),s}}}setPaddleInput(e,i){e==0&&(this.lightpen_x=i),e==1&&(this.lightpen_y=i);let t=22,s=36,r=228,c=220,p=f(0,255,(this.lightpen_x-t)/(r-t)*160+24),x=f(0,255,(this.lightpen_y-s)/(c-s)*200+50);this.exports.machine_set_mouse(this.sys,p,x)}};var M=[{id:"helloc.c",name:"Hello World",category:"C"},{id:"screen_ram.c",name:"Screen RAM"},{id:"siegegame.c",name:"Siege Game"},{id:"joymove.c",name:"Sprite Movement"},{id:"sprite_collision.c",name:"Sprite Collision"},{id:"scroll1.c",name:"Scrolling (Single Buffer)"},{id:"test_setirq.c",name:"Raster Interrupts"},{id:"test_display_list.c",name:"Raster IRQ Library"},{id:"scrolling_text.c",name:"Big Scrolling Text"},{id:"side_scroller.c",name:"Side-Scrolling Game"},{id:"scroll2.c",name:"Scrolling (Double Buffer)"},{id:"scroll3.c",name:"Scrolling (Multidirectional)"},{id:"scroll4.c",name:"Scrolling (Color RAM Buffering)"},{id:"scroll5.c",name:"Scrolling (Camera Following)"},{id:"fullscrollgame.c",name:"Full-Scrolling Game"},{id:"test_multiplex.c",name:"Sprite Retriggering"},{id:"test_multispritelib.c",name:"Sprite Multiplexing Library"},{id:"mcbitmap.c",name:"Multicolor Bitmap Mode"},{id:"testlz4.c",name:"LZ4 Bitmap Compression"},{id:"musicplayer.c",name:"Music Player"},{id:"siddemo.c",name:"SID Player Demo"},{id:"digisound.c",name:"Digi Sound Player"},{id:"climber.c",name:"Climber Game"},{id:"test_border_sprites.c",name:"Sprites in the Borders"},{id:"sprite_stretch.c",name:"Sprite Stretching"},{id:"linecrunch.c",name:"Linecrunch"},{id:"fld.c",name:"Flexible Line Distance"},{id:"plasma.c",name:"Plasma Demo"},{id:"23matches.c",name:"23 Matches"},{id:"tgidemo.c",name:"TGI Graphics Demo"},{id:"upandaway.c",name:"Up, Up and Away"},{id:"hello.dasm",name:"Hello World (DASM)",category:"Assembly"},{id:"hello.acme",name:"Hello World (ACME)"},{id:"hello.wiz",name:"Hello Wiz (Wiz)"},{id:"hello.cpp",name:"Hello Oscar64",category:"C++ (Oscar64)"},{id:"particles.cpp",name:"Fireworks"},{id:"lander.cpp",name:"Lunar Lander"},{id:"hello-sdcc.c",name:"Hello World (SDCC)",category:"C (SDCC)"},{id:"sprite_collision-sdcc.c",name:"Sprite Collision (SDCC)"},{id:"fullscrollgame-sdcc.c",name:"Full-Scrolling Game (SDCC)"}],P={main:[{name:"6510 Registers",start:0,size:2,type:"io"},{name:"BIOS Reserved",start:512,size:167},{name:"Default Screen RAM",start:1024,size:1024,type:"ram"},{name:"Cartridge ROM",start:32768,size:8192,type:"rom"},{name:"BASIC ROM",start:40960,size:8192,type:"rom"},{name:"Upper RAM",start:49152,size:4096,type:"ram"},{name:"Character ROM",start:53248,size:4096,type:"rom"},{name:"VIC-II I/O",start:53248,size:1024,type:"io"},{name:"SID",start:54272,size:1024,type:"io"},{name:"Color RAM",start:55296,size:1024,type:"io"},{name:"CIA 1",start:56320,size:256,type:"io"},{name:"CIA 2",start:56576,size:256,type:"io"},{name:"I/O 1",start:56832,size:256,type:"io"},{name:"I/O 2",start:57088,size:256,type:"io"},{name:"KERNAL ROM",start:57344,size:8192,type:"rom"}]},l=class extends R{newMachine(){let o=new m("c64"),e=String(this.options.joyport||"").toLowerCase();return e=="1"?o.setJoystickPort(y):e=="2"?o.setJoystickPort(g):e=="both"?o.setJoystickPort(O):e=="auto"&&o.setJoystickPort(n),o}getPresets(){return M}readAddress(o){return this.machine.readConst(o)}getMemoryMap(){return P}showHelp(){return"https://8bitworkshop.com/docs/platforms/c64/"}getROMExtension(o){return o&&o[0]==1&&o[1]==8?".prg":".bin"}},_=class extends k{constructor(){super(...arguments);this.getToolForFilename=S;this.getOpcodeMetadata=v}getPresets(){return M}getDefaultExtensions(){return[".c",".cpp",".o64",".acme",".xa",".ca65",".dasm",".ecs",".wiz"]}loadROM(e,i){if(!this.started)this.startModule(this.mainElement,{jsfile:"mame8bitpc.js",biosfile:"c64.zip",cfgfile:"c64.cfg",driver:"c64",width:418,height:235,romfn:"/emulator/image.crt",romdata:new Uint8Array(i),romsize:65536,extraargs:["-autoboot_delay","5","-autoboot_command",`load "$",8,1
`],preInit:function(s){}});else{this.loadROMFile(i),this.loadRegion(":quickload",i);var t=this.luacall('image:load("/emulator/image.prg")');console.log("load rom",t)}}start(){}getMemoryMap(){return P}};h.c64=l;h["c64.wasm"]=l;h["c64.mame"]=_;
//# sourceMappingURL=c64-4QH6N5TU.js.map
//# sourceMappingURL=c64-KUYP5S4X.js.map
File renamed without changes.
@@ -1,4 +1,4 @@
import{a as P}from"./chunk-JRMUDXWR.js";import{H as S,s as f}from"./chunk-FFJHITEL.js";import{j as p}from"./chunk-UXRCACYH.js";import{P as m,ba as c,g as a,ga as l,ha as C,s as d}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var D=1,b=2,k=4,R=8,o=16,F=class{constructor(){this.PC0=0;this.PC1=0;this.DC0=0;this.DC1=0;this.A=0;this.W=0;this.IS=0;this.R=new Uint8Array(64);this.o=0;this.stable=!0;this.irqRequest=!1}connectMemoryBus(t){this.bus=t}connectIOBus(t){this.iobus=t}reset(){this.PC0=0,this.PC1=0,this.DC0=0,this.DC1=0,this.A=0,this.W=0,this.IS=0,this.R.fill(0),this.irqRequest=!1}interrupt(t){this.irqRequest=!0}getPC(){return this.PC0}getSP(){return this.PC1}isStable(){return this.stable}saveState(){return{PC:this.PC0,PC0:this.PC0,PC1:this.PC1,DC0:this.DC0,DC1:this.DC1,A:this.A,W:this.W,IS:this.IS,R:Array.from(this.R),o:this.o,irq:this.irqRequest}}loadState(t){var s;this.PC0=(s=t.PC0)!=null?s:t.PC,this.PC1=t.PC1,this.DC0=t.DC0,this.DC1=t.DC1,this.A=t.A,this.W=t.W,this.IS=t.IS;for(let e=0;e<64;e++)this.R[e]=t.R[e];this.o=t.o,this.irqRequest=t.irq}fetchPC0(){let t=this.bus.read(this.PC0);return this.PC0=this.PC0+1&65535,t}fetchDC0(){let t=this.bus.read(this.DC0);return this.DC0=this.DC0+1&65535,t}storeDC0(t){this.bus.write(this.DC0,t),this.DC0=this.DC0+1&65535}clrOZCS(){this.W&=~(R|k|b|D)}setSZ(t){(t&255)===0&&(this.W|=k),(t&128)===0&&(this.W|=D)}doAdd(t,s,e=0){let h=(t&255)+(s&255)+(e&1);return h&256&&(this.W|=b),((t^h)&(s^h)&128)!==0&&(this.W|=R),h&255}doAddDecimal(t,s){let e=(t&15)+(s&15),h=e>9?1:0;e=(t>>4)+(s>>4)+h;let r=e>9?1:0;this.clrOZCS();let i=this.doAdd(t,s);this.setSZ(i);let n=0;return r&&(n|=160),h&&(n|=10),n&&(this.clrOZCS(),i=this.doAdd(i,n),this.setSZ(i)),i}getScratchpadIndex(t){if(t<12)return t;if(t===12)return this.IS&63;if(t===13){let s=this.IS&63;return this.IS=this.IS&56|this.IS+1&7,s}if(t===14){let s=this.IS&63;return this.IS=this.IS&56|this.IS-1&7,s}return 0}advanceInsn(){if(this.irqRequest&&this.W&o)return this.irqRequest=!1,this.PC1=this.PC0,this.PC0=this.bus.read(4094)<<8|this.bus.read(4095),this.W&=~o,6;let t=this.fetchPC0();this.o=t,this.stable=!0;let s=4,e,h;switch(t){case 0:this.A=this.R[12];break;case 1:this.A=this.R[13];break;case 2:this.A=this.R[14];break;case 3:this.A=this.R[15];break;case 4:this.R[12]=this.A;break;case 5:this.R[13]=this.A;break;case 6:this.R[14]=this.A;break;case 7:this.R[15]=this.A;break;case 8:this.R[12]=this.PC1>>8&255,this.R[13]=this.PC1&255,s=8;break;case 9:this.PC1=this.R[12]<<8|this.R[13],s=8;break;case 10:this.A=this.IS&63;break;case 11:this.IS=this.A&63;break;case 12:this.PC1=this.PC0,this.PC0=this.R[12]<<8|this.R[13],s=8;break;case 13:this.PC0=this.R[14]<<8|this.R[15],s=8;break;case 14:this.R[14]=this.DC0>>8&255,this.R[15]=this.DC0&255,s=8;break;case 15:this.DC0=this.R[14]<<8|this.R[15],s=8;break;case 16:this.DC0=this.R[10]<<8|this.R[11],s=8;break;case 17:this.R[10]=this.DC0>>8&255,this.R[11]=this.DC0&255,s=8;break;case 18:this.A=this.A>>1&255,this.clrOZCS(),this.setSZ(this.A);break;case 19:this.A=this.A<<1&255,this.clrOZCS(),this.setSZ(this.A);break;case 20:this.A=this.A>>4&255,this.clrOZCS(),this.setSZ(this.A);break;case 21:this.A=this.A<<4&255,this.clrOZCS(),this.setSZ(this.A);break;case 22:this.A=this.fetchDC0(),s=6;break;case 23:this.storeDC0(this.A),s=6;break;case 24:this.A=~this.A&255,this.clrOZCS(),this.setSZ(this.A);break;case 25:e=this.W&b?1:0,this.clrOZCS(),this.A=this.doAdd(this.A,e),this.setSZ(this.A);break;case 26:this.W&=~o;break;case 27:this.W|=o;break;case 28:this.PC0=this.PC1;break;case 29:this.W=this.R[9]&31;break;case 30:this.R[9]=this.W&31;break;case 31:this.clrOZCS(),this.A=this.doAdd(this.A,1),this.setSZ(this.A);break;case 32:this.A=this.fetchPC0(),s=6;break;case 33:e=this.fetchPC0(),this.A=this.A&e,this.clrOZCS(),this.setSZ(this.A),s=6;break;case 34:e=this.fetchPC0(),this.A=this.A|e,this.clrOZCS(),this.setSZ(this.A),s=6;break;case 35:e=this.fetchPC0(),this.A=this.A^e,this.clrOZCS(),this.setSZ(this.A),s=6;break;case 36:e=this.fetchPC0(),this.clrOZCS(),this.A=this.doAdd(this.A,e),this.setSZ(this.A),s=6;break;case 37:e=this.fetchPC0(),this.clrOZCS(),this.doAdd(~this.A&255,e,1),this.setSZ(this.doAdd(~this.A&255,e,1)),s=6;break;case 38:e=this.fetchPC0(),this.A=this.iobus.read(e)&255,this.clrOZCS(),this.setSZ(this.A),s=8;break;case 39:e=this.fetchPC0(),this.iobus.write(e,this.A),s=8;break;case 40:{let r=this.fetchPC0(),i=this.fetchPC0();this.PC1=this.PC0,this.PC0=r<<8|i,s=12;break}case 41:{let r=this.fetchPC0(),i=this.fetchPC0();this.PC0=r<<8|i,s=10;break}case 42:{let r=this.fetchPC0(),i=this.fetchPC0();this.DC0=r<<8|i,s=10;break}case 43:break;case 44:e=this.DC0,this.DC0=this.DC1,this.DC1=e;break;case 45:case 46:case 47:break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 62:h=this.getScratchpadIndex(t&15),this.clrOZCS(),this.R[h]=this.doAdd(this.R[h],255),this.setSZ(this.R[h]),s=6;break;case 63:break;case 64:case 65:case 66:case 67:case 68:case 69:caseLine truncated
import{a as P}from"./chunk-JRMUDXWR.js";import{J as S,u as f}from"./chunk-4YTESWOC.js";import{j as p}from"./chunk-UXRCACYH.js";import{P as m,ba as c,g as a,ga as l,ha as C,s as d}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var D=1,b=2,k=4,R=8,o=16,F=class{constructor(){this.PC0=0;this.PC1=0;this.DC0=0;this.DC1=0;this.A=0;this.W=0;this.IS=0;this.R=new Uint8Array(64);this.o=0;this.stable=!0;this.irqRequest=!1}connectMemoryBus(t){this.bus=t}connectIOBus(t){this.iobus=t}reset(){this.PC0=0,this.PC1=0,this.DC0=0,this.DC1=0,this.A=0,this.W=0,this.IS=0,this.R.fill(0),this.irqRequest=!1}interrupt(t){this.irqRequest=!0}getPC(){return this.PC0}getSP(){return this.PC1}isStable(){return this.stable}saveState(){return{PC:this.PC0,PC0:this.PC0,PC1:this.PC1,DC0:this.DC0,DC1:this.DC1,A:this.A,W:this.W,IS:this.IS,R:Array.from(this.R),o:this.o,irq:this.irqRequest}}loadState(t){var s;this.PC0=(s=t.PC0)!=null?s:t.PC,this.PC1=t.PC1,this.DC0=t.DC0,this.DC1=t.DC1,this.A=t.A,this.W=t.W,this.IS=t.IS;for(let e=0;e<64;e++)this.R[e]=t.R[e];this.o=t.o,this.irqRequest=t.irq}fetchPC0(){let t=this.bus.read(this.PC0);return this.PC0=this.PC0+1&65535,t}fetchDC0(){let t=this.bus.read(this.DC0);return this.DC0=this.DC0+1&65535,t}storeDC0(t){this.bus.write(this.DC0,t),this.DC0=this.DC0+1&65535}clrOZCS(){this.W&=~(R|k|b|D)}setSZ(t){(t&255)===0&&(this.W|=k),(t&128)===0&&(this.W|=D)}doAdd(t,s,e=0){let h=(t&255)+(s&255)+(e&1);return h&256&&(this.W|=b),((t^h)&(s^h)&128)!==0&&(this.W|=R),h&255}doAddDecimal(t,s){let e=(t&15)+(s&15),h=e>9?1:0;e=(t>>4)+(s>>4)+h;let r=e>9?1:0;this.clrOZCS();let i=this.doAdd(t,s);this.setSZ(i);let n=0;return r&&(n|=160),h&&(n|=10),n&&(this.clrOZCS(),i=this.doAdd(i,n),this.setSZ(i)),i}getScratchpadIndex(t){if(t<12)return t;if(t===12)return this.IS&63;if(t===13){let s=this.IS&63;return this.IS=this.IS&56|this.IS+1&7,s}if(t===14){let s=this.IS&63;return this.IS=this.IS&56|this.IS-1&7,s}return 0}advanceInsn(){if(this.irqRequest&&this.W&o)return this.irqRequest=!1,this.PC1=this.PC0,this.PC0=this.bus.read(4094)<<8|this.bus.read(4095),this.W&=~o,6;let t=this.fetchPC0();this.o=t,this.stable=!0;let s=4,e,h;switch(t){case 0:this.A=this.R[12];break;case 1:this.A=this.R[13];break;case 2:this.A=this.R[14];break;case 3:this.A=this.R[15];break;case 4:this.R[12]=this.A;break;case 5:this.R[13]=this.A;break;case 6:this.R[14]=this.A;break;case 7:this.R[15]=this.A;break;case 8:this.R[12]=this.PC1>>8&255,this.R[13]=this.PC1&255,s=8;break;case 9:this.PC1=this.R[12]<<8|this.R[13],s=8;break;case 10:this.A=this.IS&63;break;case 11:this.IS=this.A&63;break;case 12:this.PC1=this.PC0,this.PC0=this.R[12]<<8|this.R[13],s=8;break;case 13:this.PC0=this.R[14]<<8|this.R[15],s=8;break;case 14:this.R[14]=this.DC0>>8&255,this.R[15]=this.DC0&255,s=8;break;case 15:this.DC0=this.R[14]<<8|this.R[15],s=8;break;case 16:this.DC0=this.R[10]<<8|this.R[11],s=8;break;case 17:this.R[10]=this.DC0>>8&255,this.R[11]=this.DC0&255,s=8;break;case 18:this.A=this.A>>1&255,this.clrOZCS(),this.setSZ(this.A);break;case 19:this.A=this.A<<1&255,this.clrOZCS(),this.setSZ(this.A);break;case 20:this.A=this.A>>4&255,this.clrOZCS(),this.setSZ(this.A);break;case 21:this.A=this.A<<4&255,this.clrOZCS(),this.setSZ(this.A);break;case 22:this.A=this.fetchDC0(),s=6;break;case 23:this.storeDC0(this.A),s=6;break;case 24:this.A=~this.A&255,this.clrOZCS(),this.setSZ(this.A);break;case 25:e=this.W&b?1:0,this.clrOZCS(),this.A=this.doAdd(this.A,e),this.setSZ(this.A);break;case 26:this.W&=~o;break;case 27:this.W|=o;break;case 28:this.PC0=this.PC1;break;case 29:this.W=this.R[9]&31;break;case 30:this.R[9]=this.W&31;break;case 31:this.clrOZCS(),this.A=this.doAdd(this.A,1),this.setSZ(this.A);break;case 32:this.A=this.fetchPC0(),s=6;break;case 33:e=this.fetchPC0(),this.A=this.A&e,this.clrOZCS(),this.setSZ(this.A),s=6;break;case 34:e=this.fetchPC0(),this.A=this.A|e,this.clrOZCS(),this.setSZ(this.A),s=6;break;case 35:e=this.fetchPC0(),this.A=this.A^e,this.clrOZCS(),this.setSZ(this.A),s=6;break;case 36:e=this.fetchPC0(),this.clrOZCS(),this.A=this.doAdd(this.A,e),this.setSZ(this.A),s=6;break;case 37:e=this.fetchPC0(),this.clrOZCS(),this.doAdd(~this.A&255,e,1),this.setSZ(this.doAdd(~this.A&255,e,1)),s=6;break;case 38:e=this.fetchPC0(),this.A=this.iobus.read(e)&255,this.clrOZCS(),this.setSZ(this.A),s=8;break;case 39:e=this.fetchPC0(),this.iobus.write(e,this.A),s=8;break;case 40:{let r=this.fetchPC0(),i=this.fetchPC0();this.PC1=this.PC0,this.PC0=r<<8|i,s=12;break}case 41:{let r=this.fetchPC0(),i=this.fetchPC0();this.PC0=r<<8|i,s=10;break}case 42:{let r=this.fetchPC0(),i=this.fetchPC0();this.DC0=r<<8|i,s=10;break}case 43:break;case 44:e=this.DC0,this.DC0=this.DC1,this.DC1=e;break;case 45:case 46:case 47:break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 62:h=this.getScratchpadIndex(t&15),this.clrOZCS(),this.R[h]=this.doAdd(this.R[h],255),this.setSZ(this.R[h]),s=6;break;case 63:break;case 64:case 65:case 66:case 67:case 68:case 69:caseLine truncated
DC0 = `+a(x.DC0,4)+" DC1 = "+a(x.DC1,4)+`
A = `+a(x.A,2)+" W = "+a(x.W,2)+`
IS = `+a(x.IS,2)+`
@@ -14,4 +14,4 @@ Port 5: `+a(e.port5||0,2)+`
Row: `+a(e.row_reg||0,2)+`
Col: `+a(e.col_reg||0,2)+`
`;case"VRAM":return"";default:return""}}getMemoryMap(){return{main:[{name:"BIOS",start:0,size:2048,type:"rom"},{name:"Cart ROM",start:2048,size:30720,type:"rom"}]}}};m.channelf=A;
//# sourceMappingURL=channelf-EKQFKL6Q.js.map
//# sourceMappingURL=channelf-XZIEWXOD.js.map
File renamed without changes.
@@ -1,2 +1,2 @@
import{R as b,S as w}from"./chunk-VZWSP3EG.js";import{e as E}from"./chunk-N7W4C4V2.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-KBEJHM6Z.js");case"arm32"Line truncated
//# sourceMappingURL=chunk-MQGCXKDS.js.map
import{R as b,S as w}from"./chunk-VZWSP3EG.js";import{e as E}from"./chunk-N7W4C4V2.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-RKL5OQLE.js");case"arm32"Line truncated
//# sourceMappingURL=chunk-3H6WIH6E.js.map
File renamed without changes.
+30
View File
@@ -0,0 +1,30 @@
import{a as ct,b as ot,c as ut}from"./chunk-UXRCACYH.js";import{$ as Et,F as It,U as Lt,V as Ot,Y as z0,aa as st,fa as Zt,g as $,j as yt,s as W0}from"./chunk-VZWSP3EG.js";var Bn=[{mn:"BRK",am:"",nb:1,il:0,c1:7,c2:0,nw:3,br:1,mod:"SI"},{mn:"ORA",am:"(aa,x)",nb:2,il:0,c1:6,c2:0,nw:0,br:0,mod:"AZN"},{mn:"KIL",am:"",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:""},{mn:"SLO",am:"(aa,x)",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"NOP",am:"aa",nb:2,il:1,c1:3,c2:0,nw:0,br:0,mod:""},{mn:"ORA",am:"aa",nb:2,il:0,c1:3,c2:0,nw:0,br:0,mod:"AZN"},{mn:"ASL",am:"aa",nb:2,il:0,c1:5,c2:0,nw:2,br:0,mod:"CZN"},{mn:"SLO",am:"aa",nb:2,il:1,c1:5,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"PHP",am:"",nb:1,il:0,c1:3,c2:0,nw:1,br:0,mod:"S"},{mn:"ORA",am:"#aa",nb:2,il:0,c1:2,c2:0,nw:0,br:0,mod:"AZN"},{mn:"ASL",am:"",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:"ACZN"},{mn:"ANC",am:"#aa",nb:2,il:1,c1:2,c2:0,nw:0,br:0,mod:"ACZN"},{mn:"NOP",am:"AAAA",nb:3,il:1,c1:3,c2:0,nw:0,br:0,mod:""},{mn:"ORA",am:"AAAA",nb:3,il:0,c1:4,c2:0,nw:0,br:0,mod:"AZN"},{mn:"ASL",am:"AAAA",nb:3,il:0,c1:6,c2:0,nw:2,br:0,mod:"CZN"},{mn:"SLO",am:"AAAA",nb:3,il:1,c1:6,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"BPL",am:"branch",nb:2,il:0,c1:2,c2:2,nw:0,br:1,mod:""},{mn:"ORA",am:"(aa),y",nb:2,il:0,c1:5,c2:1,nw:0,br:0,mod:"AZN"},{mn:"KIL",am:"",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:""},{mn:"SLO",am:"(aa),y",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"NOP",am:"aa,x",nb:2,il:1,c1:4,c2:0,nw:0,br:0,mod:""},{mn:"ORA",am:"aa,x",nb:2,il:0,c1:4,c2:0,nw:0,br:0,mod:"AZN"},{mn:"ASL",am:"aa,x",nb:2,il:0,c1:6,c2:0,nw:2,br:0,mod:"CZN"},{mn:"SLO",am:"aa,x",nb:2,il:1,c1:6,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"CLC",am:"",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:"C"},{mn:"ORA",am:"AAAA,y",nb:3,il:0,c1:4,c2:1,nw:0,br:0,mod:"AZN"},{mn:"NOP",am:"",nb:1,il:1,c1:2,c2:0,nw:0,br:0,mod:""},{mn:"SLO",am:"AAAA,y",nb:3,il:1,c1:7,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"NOP",am:"AAAA,x",nb:3,il:1,c1:4,c2:0,nw:0,br:0,mod:""},{mn:"ORA",am:"AAAA,x",nb:3,il:0,c1:4,c2:1,nw:0,br:0,mod:"AZN"},{mn:"ASL",am:"AAAA,x",nb:3,il:0,c1:7,c2:0,nw:2,br:0,mod:"CZN"},{mn:"SLO",am:"AAAA,x",nb:3,il:1,c1:7,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"JSR",am:"AAAA",nb:3,il:0,c1:6,c2:0,nw:2,br:1,mod:"S"},{mn:"AND",am:"(aa,x)",nb:2,il:0,c1:6,c2:0,nw:0,br:0,mod:"AZN"},{mn:"KIL",am:"",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:""},{mn:"RLA",am:"(aa,x)",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"BIT",am:"aa",nb:2,il:0,c1:3,c2:0,nw:0,br:0,mod:"ZVN"},{mn:"AND",am:"aa",nb:2,il:0,c1:3,c2:0,nw:0,br:0,mod:"AZN"},{mn:"ROL",am:"aa",nb:2,il:0,c1:5,c2:0,nw:2,br:0,mod:"CZN"},{mn:"RLA",am:"aa",nb:2,il:1,c1:5,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"PLP",am:"",nb:1,il:0,c1:4,c2:0,nw:0,br:0,mod:"SCZIDVN"},{mn:"AND",am:"#aa",nb:2,il:0,c1:2,c2:0,nw:0,br:0,mod:"AZN"},{mn:"ROL",am:"",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:"ACZN"},{mn:"ANC",am:"#aa",nb:2,il:1,c1:2,c2:0,nw:0,br:0,mod:"ACZN"},{mn:"BIT",am:"AAAA",nb:3,il:0,c1:4,c2:0,nw:0,br:0,mod:"ZVN"},{mn:"AND",am:"AAAA",nb:3,il:0,c1:4,c2:0,nw:0,br:0,mod:"AZN"},{mn:"ROL",am:"AAAA",nb:3,il:0,c1:6,c2:0,nw:2,br:0,mod:"CZN"},{mn:"RLA",am:"AAAA",nb:3,il:1,c1:6,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"BMI",am:"branch",nb:2,il:0,c1:2,c2:2,nw:0,br:1,mod:""},{mn:"AND",am:"(aa),y",nb:2,il:0,c1:5,c2:1,nw:0,br:0,mod:"AZN"},{mn:"KIL",am:"",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:""},{mn:"RLA",am:"(aa),y",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"NOP",am:"aa,x",nb:2,il:1,c1:4,c2:0,nw:0,br:0,mod:""},{mn:"AND",am:"aa,x",nb:2,il:0,c1:4,c2:0,nw:0,br:0,mod:"AZN"},{mn:"ROL",am:"aa,x",nb:2,il:0,c1:6,c2:0,nw:2,br:0,mod:"CZN"},{mn:"RLA",am:"aa,x",nb:2,il:1,c1:6,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"SEC",am:"",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:"C"},{mn:"AND",am:"AAAA,y",nb:3,il:0,c1:4,c2:1,nw:0,br:0,mod:"AZN"},{mn:"NOP",am:"",nb:1,il:1,c1:2,c2:0,nw:0,br:0,mod:""},{mn:"RLA",am:"AAAA,y",nb:3,il:1,c1:7,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"NOP",am:"AAAA,x",nb:3,il:1,c1:4,c2:0,nw:0,br:0,mod:""},{mn:"AND",am:"AAAA,x",nb:3,il:0,c1:4,c2:1,nw:0,br:0,mod:"AZN"},{mn:"ROL",am:"AAAA,x",nb:3,il:0,c1:7,c2:0,nw:2,br:0,mod:"CZN"},{mn:"RLA",am:"AAAA,x",nb:3,il:1,c1:7,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"RTI",am:"",nb:1,il:0,c1:6,c2:0,nw:0,br:1,mod:"SCZIDVN"},{mn:"EOR",am:"(aa,x)",nb:2,il:0,c1:6,c2:0,nw:0,br:0,mod:"AZN"},{mn:"KIL",am:"",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:""},{mn:"SRE",am:"(aa,x)",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"NOP",am:"aa",nb:2,il:1,c1:3,c2:0,nw:0,br:0,mod:""},{mn:"EOR",am:"aa",nb:2,il:0,c1:3,c2:0,nw:0,br:0,mod:"AZN"},{mn:"LSR",am:"aa",nb:2,il:0,c1:5,c2:0,nw:2,br:0,mod:"CZN"},{mn:"SRE",am:"aa",nb:2,il:1,c1:5,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"PHA",am:"",nb:1,il:0,c1:3,c2:0,nw:1,br:0,mod:"S"},{mn:"EOR",am:"#aa",nb:2,il:0,c1:2,c2:0,nw:0,br:0,mod:"AZN"},{mn:"LSR",am:"",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:"ACZN"},{mn:"ASR",am:"#aa",nb:2,il:1,c1:2,c2:0,nw:0,br:0,mod:"ACZN"},{mn:"JMP",am:"AAAA",nb:3,il:0,c1:3,c2:0,nw:0,br:1,mod:""},{mn:"EOR",am:"AAAA",nb:3,il:0,c1:4,c2:0,nw:0,br:0,mod:"AZN"},{mn:"LSR",am:"AAAA",nb:3,il:0,c1:6,c2:0,nw:2,br:0,mod:"CZN"},{mn:"SRE",am:"AAAA",nb:3,il:1,c1:6,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"BVC",am:"branch"Line truncated
A: `+o.toString(16)+" X: "+b.toString(16)+" Y: "+u.toString(16)+" SP: "+x.toString(16)+" N"+f+" V"+W+" D"+N+" I"+g+" Z"+B+" C"+_+" "},this.breakpoint=function(m){if(this.trace)var A="CPU Breakpoint! "+(m?"("+m+")":"")+`
`+this.toString()};var Nt=[7,6,0,8,3,3,5,5,3,2,2,2,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,4,2,2,2,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,3,2,2,2,3,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,4,2,2,2,5,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,0,6,0,6,3,3,3,3,2,0,2,0,4,4,4,4,2,6,0,0,4,4,4,4,2,5,2,0,0,5,0,0,2,6,2,6,3,3,3,3,2,2,2,0,4,4,4,4,2,5,0,5,4,4,4,4,2,4,2,0,4,4,4,4,2,6,0,8,3,3,5,5,2,2,2,2,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,2,6,0,8,3,3,5,5,2,2,2,0,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7],Rn=[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1],Dn=[1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,3,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,0,2,0,2,2,2,2,2,1,0,1,0,3,3,3,3,2,2,0,0,2,2,2,3,1,3,1,0,0,3,0,0,2,2,2,2,2,2,2,2,1,2,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,3,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,2,2,0,2,2,2,2,2,1,2,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3],Yn=[1,2,0,0,0,2,2,0,1,2,1,0,0,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,3,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,1,2,0,0,0,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,1,2,0,0,0,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,0,2,0,0,2,2,2,0,1,0,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,3,1,0,0,3,0,0,2,2,2,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,3,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,2,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0];this.getOpcodeMetadata=function(m,A){return{opcode:m,mnenomic:e[m],minCycles:Nt[m],maxCycles:Nt[m]+Rn[m],insnlength:Dn[m]}},this.setNMI=function(){h=pn(),ae=1,i=i-1&65535},this.setIRQ=function(){g||(h=gn(),ae=1,i=i-1&65535)},this.getSP=function(){return x},this.getPC=function(){return i-1&65535},this.getT=function(){return ae},this.isHalted=function(){return e[_e]=="uKIL"},this.isPCStable=function(){return ae==0}};var Kt=class{constructor(){this.cpu=new vt;this.interruptType=0}connectMemoryBus(t){this.cpu.connectBus(t)}advanceClock(){if(this.interruptType&&this.isStable()){switch(this.interruptType){case 1:this.cpu.setNMI();break;case 2:this.cpu.setIRQ();break}this.interruptType=0}this.cpu.clockPulse()}advanceInsn(){do this.advanceClock();while(!this.isStable())}reset(){this.cpu.reset(),this.interruptType=0}interrupt(t){this.interruptType!=1&&(this.interruptType=t)}NMI(){this.interrupt(1)}IRQ(){this.interrupt(2)}getSP(){return this.cpu.getSP()}getPC(){return this.cpu.getPC()}isHalted(){return this.cpu.isHalted()}saveState(){var t=this.cpu.saveState();return t.it=this.interruptType,t}loadState(t){this.cpu.loadState(t),this.interruptType=t.it}isStable(){return this.cpu.isPCStable()}getOpcodeMetadata(t){return this.cpu.getOpcodeMetadata(t)}};var I0=class{constructor(t){this.maxROMSize=262144;this.videoOffsetBytes=0;this.prefix=t;var n=this;this.cpu={getPC:n.getPC.bind(n),getSP:n.getSP.bind(n),isStable:n.isStable.bind(n),reset:n.reset.bind(n),saveState:()=>n.getCPUState(),loadState:()=>{console.log("loadState not implemented")},connectMemoryBus(){console.log("connectMemoryBus not implemented")}}}getImports(t){return{}}async fetchWASM(){var t=await fetch("res/"+this.prefix+"/"+this.prefix+".wasm");if(t.status==200||t.size){var n=await t.arrayBuffer(),i=await WebAssembly.compile(n),x=await WebAssembly.instantiate(i,this.getImports(i));this.instance=x,this.exports=x.exports}else throw new Error("could not load WASM file")}allocateBIOS(t){this.biosptr=this.exports.malloc(t.byteLength),this.biosarr=new Uint8Array(this.exports.memory.buffer,this.biosptr,t.byteLength)}async fetchBIOS(){var t=await fetch("res/"+this.prefix+"/"+this.prefix+".bios");if(t.status==200||t.size){var n=new Uint8Array(await t.arrayBuffer());this.allocateBIOS(n),this.loadBIOS(n)}else throw new Error("could not load BIOS file")}async initWASM(){this.sys=this.exports.machine_init(this.biosptr);let t=this.exports.machine_get_state_size();this.stateptr=this.exports.malloc(t);let n=this.exports.machine_get_controls_state_size();this.ctrlstateptr=this.exports.malloc(n);let i=this.exports.machine_get_cpu_state_size();this.cpustateptr=this.exports.malloc(i),this.romptr=this.exports.malloc(this.maxROMSize),this.statearr=new Uint8Array(this.exports.memory.buffer,this.stateptr,t),this.ctrlstatearr=new Uint8Array(this.exports.memory.buffer,this.ctrlstateptr,n),this.cpustatearr=new Uint8Array(this.exports. Line truncated
A `+$(d.A)+" "+(d.R?"":"BUSY")+`
X `+$(d.X)+`
Y `+$(d.Y)+" SP "+$(d.SP)+`
`}var q0={cycletime:[7,6,0,8,3,3,5,5,3,2,2,2,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,4,2,2,2,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,3,2,2,2,3,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,4,2,2,2,5,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,0,6,0,6,3,3,3,3,2,0,2,0,4,4,4,4,2,6,0,0,4,4,4,4,2,5,2,0,0,5,0,0,2,6,2,6,3,3,3,3,2,2,2,0,4,4,4,4,2,5,0,5,4,4,4,4,2,4,2,0,4,4,4,4,2,6,0,8,3,3,5,5,2,2,2,2,4,4,3,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,2,6,0,8,3,3,5,5,2,2,2,0,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7],extracycles:[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1],insnlengths:[1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,3,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,0,2,0,2,2,2,2,2,1,0,1,0,3,3,3,3,2,2,0,0,2,2,2,3,1,3,1,0,0,3,0,0,2,2,2,2,2,2,2,2,1,2,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,3,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,2,2,0,2,2,2,2,2,1,2,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3],validinsns:[1,2,0,0,0,2,2,0,1,2,1,0,0,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,3,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,1,2,0,0,0,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,1,2,0,0,0,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,0,2,0,0,2,2,2,0,1,0,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,3,1,0,0,3,0,0,2,2,2,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,3,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,2,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0]};function tn(d,t){return{opcode:d,minCycles:q0.cycletime[d],maxCycles:q0.cycletime[d]+q0.extracycles[d],insnlength:q0.insnlengths[d]}}function nn(d){function t(n){return W0(n,["S","Z",,"H",,"V","N","C"],!0)}return"PC "+$(d.PC,4)+" "+t(d.AF)+" "+(d.iff1?"I":"-")+(d.iff2?"I":"-")+`
SP `+$(d.SP,4)+" IR "+$(d.IR,4)+`
IX `+$(d.IX,4)+" IY "+$(d.IY,4)+`
AF `+$(d.AF,4)+" BC "+$(d.BC,4)+`
DE `+$(d.DE,4)+" HL "+$(d.HL,4)+`
`}function wr(d){function t(n){return W0(n,["Z","N","H","C"],!0)}return"PC "+$(d.PC,4)+" "+t(d.AF>>4)+" "+(d.ime?"I":"-")+`
SP `+$(d.SP,4)+`
AF `+$(d.AF,4)+" BC "+$(d.BC,4)+`
DE `+$(d.DE,4)+" HL "+$(d.HL,4)+`
`}var _t=class extends L0{constructor(){super(...arguments);this.waitCycles=0;this.getToolForFilename=ot}newCPU(n,i){return this._cpu=new K0,this._cpu.connectMemoryBus(n),this._cpu.connectIOBus(i),this._cpu}getPC(){return this._cpu.getPC()}getSP(){return this._cpu.getSP()}isStable(){return!0}runCPU(n,i){if(this._cpu=n,this.waitCycles=0,this.wasBreakpointHit())return 0;var x=this.getDebugCallback(),o=0;for(this.waitCycles+=i;this.waitCycles>0;){if(x&&x()){x=null;break}var b=n.advanceInsn();o+=b,this.waitCycles-=b}return o}getDefaultExtensions(){return[".c",".sdcc",".ns",".s",".scc",".sgb",".z",".wiz"]}getDebugCategories(){return["CPU","Stack"]}getDebugInfo(n,i){switch(n){case"CPU":return nn(i.c);case"Stack":{var x=i.c.SP-1&65535,o=x&65280,b=o+255;return x==0&&(x=65536),console.log(x,o,b),E0(this,[],o,b,x,205)}}}disassemble(n,i){return Ct(n,i(n),i(n+1),i(n+2),i(n+3))}};function kt(d){function t(n){return W0(n,["E","F","H","I","N","Z","V","C"],!0)}return"PC "+$(d.PC,4)+" "+t(d.CC)+`
SP `+$(d.SP,4)+`
DP `+$(d.DP,2)+`
A `+$(d.A,2)+`
B `+$(d.B,2)+`
X `+$(d.X,4)+`
Y `+$(d.Y,4)+`
U `+$(d.U,4)+`
`}var Jt=class extends _t{constructor(){super(...arguments);this.getToolForFilename=ut}newCPU(n){var i=Object.create(Q0());return i.init(n.write,n.read,0),i}cpuStateToLongString(n){return kt(n)}disassemble(n,i){return Object.create(Q0()).disasm(i(n),i(n+1),i(n+2),i(n+3),i(n+4),n)}getDefaultExtensions(){return[".c",".lwasm",".xasm"]}getDebugCategories(){return["CPU","Stack"]}getDebugInfo(n,i){return n==="CPU"?kt(i.c):super.getDebugInfo(n,i)}};function E0(d,t,n,i,x,o,b){var u="",f=0;function W(_){return _<t.length?t[_]:d.readAddress(_)}for(;x<i;){x++;var N=W(x)+W(x+1)*256;b&&(N=(N&255)<<8|(N&65280)>>8);var g=o==32?-2:-3,B=W(N+g);B==o?(u+=`
$`+$(x)+": ",u+=$(N,4)+" "+Mn(d,N,!0),x++,f=0):(f==0&&(u+=`
$`+$(x)+": "),u+=$(W(x))+" ",++f==8&&(f=0))}return u+`
`}function Mn(d,t,n){for(var i=t,x=d.debugSymbols&&d.debugSymbols.addr2symbol;x&&t>=0;){var o=x[t];if(o){var o=x[t];return n?o+" + $"+$(i-t):o}if(!n)break;t--}return""}function Fn(d){return typeof d.connectVideo=="function"}function Tn(d){return typeof d.connectAudio=="function"}function Un(d){return typeof d.setKeyInput=="function"}function St(d){return typeof d.setPaddleInput=="function"}function gt(d){return typeof d.getRasterY=="function"}function Xn(d){return typeof d.connectProbe=="function"}function Hn(d){return typeof d.loadBIOS=="function"}function Vn(d){return typeof d.connectSerialIO=="function"}var O0=class extends L0{constructor(n,i){super();this.probeSingleFrame=null;this.mainElement=n,this.options=i||{}}reset(){this.machine.reset(),this.serialVisualizer!=null&&this.serialVisualizer.reset()}loadState(n){if(!this.debugPCDelta||!n.c)return this.machine.loadState(n);this.unfixPC(n.c);try{this.machine.loadState(n)}finally{this.fixPC(n.c)}}saveState(){let n=this.machine.saveState();return this.debugPCDelta&&n.c&&this.fixPC(n.c),n}getSP(){return this.machine.cpu.getSP()}getPC(){return this.machine.cpu.getPC()}isStable(){return this.machine.cpu.isStable()}getCPUState(){return this.fixPC(this.machine.cpu.saveState())}loadControlsState(n){this.machine.loadControlsState(n)}saveControlsState(){return this.machine.saveControlsState()}async start(){this.machine=this.newMachine();let n=this.machine;n instanceof I0&&await n.loadWASM();var i;if(Fn(n)){var x=n.getVideoParams();this.video=new Ot(this.mainElement,x.width,x.height,{overscan:!!x.overscan,rotate:x.rotate|0,aspect:x.aspect}),this.video.create(),n.connectVideo(this.video.getFrameData()),Un(n)&&(this.video.setKeyboardEvents(n.setKeyInput.bind(n)),this.poller=new Zt(n.setKeyInput.bind(n))),i=x.videoFrequency}if(this.timer=new Et(i||60,this.nextFrame.bind(this)),Tn(n)){var o=n.getAudioParams();this.audio=new J0(o.sampleRate),this.audio.start(),n.connectAudio(this.audio)}St(n)&&this.video.setupMouseEvents(),Xn(n)&&(this.probeRecorder=new G0(n),this.startProbing=()=>(n.connectProbe(this.probeRecorder),this.probeRecorder),this.stopProbing=()=>{n.connectProbe(null)}),Hn(n)&&(this.loadBIOS=(b,u)=>{n.loadBIOS(u,b)}),Vn(n)&&(this.serialIOInterface==null?this.serialVisualizer=new wt(this.mainElement,n):n.connectSerialIO(this.serialIOInterface))}loadROM(n,i,x){this.machine.loadROM(i,n,x),this.reset()}acceptsPaddles(){return St(this.machine)}setPaddles(n,i,x){this.video.paddle_x=n,this.video.paddle_y=i,x.forEach((o,b)=>this.video.paddle_buttons[b]=o)}pollControls(){this.poller&&this.poller.poll(),St(this.machine)&&(this.machine.setPaddleInput(0,this.video.paddle_x),this.machine.setPaddleInput(1,this.video.paddle_y),this.machine.setPaddleButton&&this.video.paddle_buttons!=null&&(this.machine.setPaddleButton(0,this.video.paddle_buttons[0]),this.machine.setPaddleButton(1,this.video.paddle_buttons[1]),this.machine.setPaddleButton(2,this.video.paddle_buttons[2]))),this.machine.pollControls&&this.machine.pollControls()}advance(n){let i=this.getDebugCallback();try{var x=this.machine.advanceFrame(i);return x}finally{!n&&this.video&&(this.video.updateFrame(),this.updateVideoDebugger()),!n&&this.serialVisualizer&&this.serialVisualizer.refresh()}}updateVideoDebugger(){var n;if(!this.isRunning()&&gt(this.machine)&&this.machine.getRasterCanvasPosition){let{x:i,y:x}=this.machine.getRasterCanvasPosition();if(i>=0||x>=0){let o=(n=this.video)==null?void 0:n.getContext();o&&Lt(o,i,x,1)}}}advanceFrameClock(n,i){if(i>0)return this.machine instanceof I0?this.machine.advanceFrameClock(n,i):this.machine.advanceFrame(()=>--i<=0)}isRunning(){return this.timer&&this.timer.isRunning()}resume(){this.timer.start(),this.audio&&this.audio.start(),this.poller&&this.poller.start()}pause(){this.timer.stop(),this.audio&&this.audio.stop(),this.poller&&this.poller.stop(),this.probeRecorder&&this.probeSingleFrame!=null&&(this.probeRecorder.singleFrame=this.probeSingleFrame,this.probeSingleFrame=null)}runToVsync(){this.probeRecorder&&(this.probeSingleFrame=this.probeRecorder.singleFrame,this.probeRecorder.reset(),this.probeRecorder.singleFrame=!1),this.restartDebugging();var n=!1;this.runEval(()=>{if(this.getRasterScanline()>0)n=!0;else return n})}getRasterScanline(){return gt(this.machine)&&this.machine.getRasterY?this.machine.getRasterY():-1}getRasterLineClock(){return gt(this.machine)&&this.machine.getRasterX?this.machine.getRasterX():-1}readAddress(n){return this.machine.read(n)}getDebugCategories(){if(v0(this.machine))return this.machine.getDebugCategories()}getDebugInfo(n,i){return v0(this.machine)&&this.machine.getDebugInfo(n,i)}},Gt=class extends O0{constructor(){super(...arguments);this.getOpcodeMetadata=tn}getToolForFilename(n){return ct(n)}getDefaultExtensions(){return[".c",".cpp",".o64",".acme",".xa",".ca65",".dasm",".ecs",".wiz"]}disassemble(n,i){return xt(n,i(n),i(n+1),i(n+2))}getDebugCategories(){return v0(this.machine)?this.machine.getDebugCategories():["CPU","ZPRAM","Stack"]}getDebug Line truncated
`),i.op==="read"?n+="<< ":i.op==="write"&&(n+=">> "),t=i.op),i.value==10?(n+="\u21B5",t=""):n+=It(i.value);this.textarea.value=n,this.lastOutCount=this.device.serialOut.length,this.textarea.style.display="block"}}};export{xt as a,Ct as b,K0 as c,mt as d,Mt as e,Ft as f,jn as g,yn as h,$n as i,Jn as j,Gn as k,dt as l,En as m,Ht as n,Q0 as o,Kt as p,qn as q,G0 as r,y0 as s,ht as t,At as u,Vt as v,I0 as w,jt as x,v0 as y,Pt as z,Zn as A,$t as B,en as C,tn as D,nn as E,wr as F,_t as G,Jt as H,E0 as I,O0 as J,Gt as K,Qt as L,qt as M};
//# sourceMappingURL=chunk-4YTESWOC.js.map
+7
View File
@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../src/common/cpu/disasm6502.ts", "../src/common/cpu/ZilogZ80.ts", "../src/common/audio.ts", "../src/common/probe.ts", "../src/common/devices.ts", "../src/common/cpu/disasmz80.ts", "../src/common/cpu/6809.ts", "../src/common/cpu/MOS6502.ts", "../src/common/wasmplatform.ts", "../src/common/baseplatform.ts"],
"sourcesContent": ["\nimport { hex } from \"../util\";\n\nexport var OPS_6502 = [\n {mn:\"BRK\",am:\"\",nb:1,il:0,c1:7,c2:0,nw:3,br:1,mod:\"SI\"}, // 0\n {mn:\"ORA\",am:\"(aa,x)\",nb:2,il:0,c1:6,c2:0,nw:0,br:0,mod:\"AZN\"}, // 1\n {mn:\"KIL\",am:\"\",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:\"\"}, // 2\n {mn:\"SLO\",am:\"(aa,x)\",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 3\n {mn:\"NOP\",am:\"aa\",nb:2,il:1,c1:3,c2:0,nw:0,br:0,mod:\"\"}, // 4\n {mn:\"ORA\",am:\"aa\",nb:2,il:0,c1:3,c2:0,nw:0,br:0,mod:\"AZN\"}, // 5\n {mn:\"ASL\",am:\"aa\",nb:2,il:0,c1:5,c2:0,nw:2,br:0,mod:\"CZN\"}, // 6\n {mn:\"SLO\",am:\"aa\",nb:2,il:1,c1:5,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 7\n {mn:\"PHP\",am:\"\",nb:1,il:0,c1:3,c2:0,nw:1,br:0,mod:\"S\"}, // 8\n {mn:\"ORA\",am:\"#aa\",nb:2,il:0,c1:2,c2:0,nw:0,br:0,mod:\"AZN\"}, // 9\n {mn:\"ASL\",am:\"\",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:\"ACZN\"}, // a\n {mn:\"ANC\",am:\"#aa\",nb:2,il:1,c1:2,c2:0,nw:0,br:0,mod:\"ACZN\"}, // b\n {mn:\"NOP\",am:\"AAAA\",nb:3,il:1,c1:3,c2:0,nw:0,br:0,mod:\"\"}, // c\n {mn:\"ORA\",am:\"AAAA\",nb:3,il:0,c1:4,c2:0,nw:0,br:0,mod:\"AZN\"}, // d\n {mn:\"ASL\",am:\"AAAA\",nb:3,il:0,c1:6,c2:0,nw:2,br:0,mod:\"CZN\"}, // e\n {mn:\"SLO\",am:\"AAAA\",nb:3,il:1,c1:6,c2:0,nw:2,br:0,mod:\"ACZN\"}, // f\n {mn:\"BPL\",am:\"branch\",nb:2,il:0,c1:2,c2:2,nw:0,br:1,mod:\"\"}, // 10\n {mn:\"ORA\",am:\"(aa),y\",nb:2,il:0,c1:5,c2:1,nw:0,br:0,mod:\"AZN\"}, // 11\n {mn:\"KIL\",am:\"\",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:\"\"}, // 12\n {mn:\"SLO\",am:\"(aa),y\",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 13\n {mn:\"NOP\",am:\"aa,x\",nb:2,il:1,c1:4,c2:0,nw:0,br:0,mod:\"\"}, // 14\n {mn:\"ORA\",am:\"aa,x\",nb:2,il:0,c1:4,c2:0,nw:0,br:0,mod:\"AZN\"}, // 15\n {mn:\"ASL\",am:\"aa,x\",nb:2,il:0,c1:6,c2:0,nw:2,br:0,mod:\"CZN\"}, // 16\n {mn:\"SLO\",am:\"aa,x\",nb:2,il:1,c1:6,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 17\n {mn:\"CLC\",am:\"\",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:\"C\"}, // 18\n {mn:\"ORA\",am:\"AAAA,y\",nb:3,il:0,c1:4,c2:1,nw:0,br:0,mod:\"AZN\"}, // 19\n {mn:\"NOP\",am:\"\",nb:1,il:1,c1:2,c2:0,nw:0,br:0,mod:\"\"}, // 1a\n {mn:\"SLO\",am:\"AAAA,y\",nb:3,il:1,c1:7,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 1b\n {mn:\"NOP\",am:\"AAAA,x\",nb:3,il:1,c1:4,c2:0,nw:0,br:0,mod:\"\"}, // 1c\n {mn:\"ORA\",am:\"AAAA,x\",nb:3,il:0,c1:4,c2:1,nw:0,br:0,mod:\"AZN\"}, // 1d\n {mn:\"ASL\",am:\"AAAA,x\",nb:3,il:0,c1:7,c2:0,nw:2,br:0,mod:\"CZN\"}, // 1e\n {mn:\"SLO\",am:\"AAAA,x\",nb:3,il:1,c1:7,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 1f\n {mn:\"JSR\",am:\"AAAA\",nb:3,il:0,c1:6,c2:0,nw:2,br:1,mod:\"S\"}, // 20\n {mn:\"AND\",am:\"(aa,x)\",nb:2,il:0,c1:6,c2:0,nw:0,br:0,mod:\"AZN\"}, // 21\n {mn:\"KIL\",am:\"\",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:\"\"}, // 22\n {mn:\"RLA\",am:\"(aa,x)\",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 23\n {mn:\"BIT\",am:\"aa\",nb:2,il:0,c1:3,c2:0,nw:0,br:0,mod:\"ZVN\"}, // 24\n {mn:\"AND\",am:\"aa\",nb:2,il:0,c1:3,c2:0,nw:0,br:0,mod:\"AZN\"}, // 25\n {mn:\"ROL\",am:\"aa\",nb:2,il:0,c1:5,c2:0,nw:2,br:0,mod:\"CZN\"}, // 26\n {mn:\"RLA\",am:\"aa\",nb:2,il:1,c1:5,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 27\n {mn:\"PLP\",am:\"\",nb:1,il:0,c1:4,c2:0,nw:0,br:0,mod:\"SCZIDVN\"}, // 28\n {mn:\"AND\",am:\"#aa\",nb:2,il:0,c1:2,c2:0,nw:0,br:0,mod:\"AZN\"}, // 29\n {mn:\"ROL\",am:\"\",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:\"ACZN\"}, // 2a\n {mn:\"ANC\",am:\"#aa\",nb:2,il:1,c1:2,c2:0,nw:0,br:0,mod:\"ACZN\"}, // 2b\n {mn:\"BIT\",am:\"AAAA\",nb:3,il:0,c1:4,c2:0,nw:0,br:0,mod:\"ZVN\"}, // 2c\n {mn:\"AND\",am:\"AAAA\",nb:3,il:0,c1:4,c2:0,nw:0,br:0,mod:\"AZN\"}, // 2d\n {mn:\"ROL\",am:\"AAAA\",nb:3,il:0,c1:6,c2:0,nw:2,br:0,mod:\"CZN\"}, // 2e\n {mn:\"RLA\",am:\"AAAA\",nb:3,il:1,c1:6,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 2f\n {mn:\"BMI\",am:\"branch\",nb:2,il:0,c1:2,c2:2,nw:0,br:1,mod:\"\"}, // 30\n {mn:\"AND\",am:\"(aa),y\",nb:2,il:0,c1:5,c2:1,nw:0,br:0,mod:\"AZN\"}, // 31\n {mn:\"KIL\",am:\"\",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:\"\"}, // 32\n {mn:\"RLA\",am:\"(aa),y\",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 33\n {mn:\"NOP\",am:\"aa,x\",nb:2,il:1,c1:4,c2:0,nw:0,br:0,mod:\"\"}, // 34\n {mn:\"AND\",am:\"aa,x\",nb:2,il:0,c1:4,c2:0,nw:0,br:0,mod:\"AZN\"}, // 35\n {mn:\"ROL\",am:\"aa,x\",nb:2,il:0,c1:6,c2:0,nw:2,br:0,mod:\"CZN\"}, // 36\n {mn:\"RLA\",am:\"aa,x\",nb:2,il:1,c1:6,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 37\n {mn:\"SEC\",am:\"\",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:\"C\"}, // 38\n {mn:\"AND\",am:\"AAAA,y\",nb:3,il:0,c1:4,c2:1,nw:0,br:0,mod:\"AZN\"}, // 39\n {mn:\"NOP\",am:\"\",nb:1,il:1,c1:2,c2:0,nw:0,br:0,mod:\"\"}, // 3a\n {mn:\"RLA\",am:\"AAAA,y\",nb:3,il:1,c1:7,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 3b\n {mn:\"NOP\",am:\"AAAA,x\",nb:3,il:1,c1:4,c2:0,nw:0,br:0,mod:\"\"}, // 3c\n {mn:\"AND\",am:\"AAAA,x\",nb:3,il:0,c1:4,c2:1,nw:0,br:0,mod:\"AZN\"}, // 3d\n {mn:\"ROL\",am:\"AAAA,x\",nb:3,il:0,c1:7,c2:0,nw:2,br:0,mod:\"CZN\"}, // 3e\n {mn:\"RLA\",am:\"AAAA,x\",nb:3,il:1,c1:7,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 3f\n {mn:\"RTI\",am:\"\",nb:1,il:0,c1:6,c2:0,nw:0,br:1,mod:\"SLine truncated
"mappings": "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 truncated
"names": ["OPS_6502", "disassemble6502", "pc", "b0", "b1", "b2", "op", "s", "am", "isaddr", "offset", "hex", "FastZ80", "coreParameter", "core", "a", "b", "c", "d", "e", "h", "l", "a_prime", "b_prime", "c_prime", "d_prime", "e_prime", "h_prime", "l_prime", "ix", "iy", "i", "r", "sp", "pc", "flags", "flags_prime", "imode", "iff1", "iff2", "halted", "do_delayed_di", "do_delayed_ei", "cycle_counter", "getState", "get_flags_register", "get_flags_prime", "setState", "state", "set_flags_register", "set_flags_prime", "reset", "run_instruction", "doing_delayed_di", "doing_delayed_ei", "opcode", "decode_instruction", "retval", "interrupt", "non_maskable", "data", "push_word", "vector_address", "get_operand", "operand", "op_array", "do_add", "do_adc", "do_sub", "do_sbc", "do_and", "do_xor", "do_or", "do_cp", "func", "instructions", "cycle_counts", "get_signed_offset_byte", "value", "update_xy_flags", "result", "get_parity", "parity_bits", "pop_word", "do_conditional_absolute_jump", "condition", "do_conditional_relative_jump", "offset", "do_conditional_call", "do_conditional_return", "do_reset", "address", "temp", "do_inc", "do_dec", "do_hl_add", "hl", "do_hl_adc", "do_hl_sbc", "do_in", "port", "do_neg", "do_ldi", "read_value", "do_cpi", "temp_carry", "do_ini", "do_outi", "do_ldd", "do_cpd", "do_ind", "do_outd", "do_rlc", "do_rrc", "do_rl", "do_rr", "do_sla", "do_sra", "do_sll", "do_srl", "do_ix_add", "temp_s", "temp_z", "temp_p", "bit_number", "reg_code", "cycle_counts_cb", "dd_instructions", "cycle_counts_dd", "ed_instructions", "cycle_counts_ed", "hl_value", "temp1", "temp2", "ddcb_functions", "Z80", "v", "bus", "s", "MasterAudio", "resumeAudioContext", "AY38910_Audio", "master", "i", "val", "SN76489_Audio", "newPOKEYAudio", "count", "audio", "pokey", "POKEYDeviceChannel", "combinePolys", "a", "b", "arr", "n", "divideBy", "NOTPOLY5", "POLY4", "PURE", "VOL_ONLY", "VOLUME_MASK", "POLY9", "CH1_179", "CH3_179", "CH1_CH2", "CH3_CH4", "CH1_FILTER", "CH2_FILTER", "CLOCK_15", "DIV_64", "DIV_15", "POLY4_SIZE", "POLY5_SIZE", "POLY9_SIZE", "POLY17_SIZE", "CHAN1", "CHAN2", "CHAN3", "CHAN4", "CHIP1", "CHIP2", "CHIP3", "CHIP4", "SAMPLE", "FREQ_17_EXACT", "FREQ_17_APPROX", "bit1", "bit2", "bit4", "bit5", "bit9", "bit15", "bit31", "bit17", "bit17_5", "bit5_4", "wavetones", "div2", "div6", "div31", "div93", "bit15_4", "bit5_2", "bit5_6", "tiawavetones", "regs", "counters", "deltas", "volume", "audc", "waveforms", "buffer", "sampleRate", "clock", "baseDelta", "dirty", "length", "rate", "updateValues", "addr", "ctrl", "base", "div", "j", "k", "value", "s", "sample", "d", "v", "wav", "cnt", "on", "WorkerSoundChannel", "worker", "output", "pending", "pendingLength", "e", "buf", "l", "audioStreamFactory", "AUDIO_CHUNK_SAMPLES", "audioUnlockEvents", "pendingUnlocks", "unlockListeners", "audioContexts", "audioStateListeners", "notifyAudioState", "listener", "markAudioUnlocked", "ctx", "trackAudioContext", "isAudioBlocked", "onAudioStateChange", "resumeTrackedContext", "resumed", "resumeAudioContext", "onGesture", "ev", "SampleAudio", "clockfreq", "self", "sfrac", "sinc", "accum", "buffer", "bufpos", "bufferlist", "ifill", "written", "read", "skippedBuffers", "lastSkipLog", "underruns", "fillHist", "collectStats", "baseSinc", "trim", "fillAvg", "lastTrimAdj", "FILL_TARGET", "FILL_ALPHA", "TRIM_GAIN", "MAX_TRIM", "TRIM_INTERVAL_MS", "MAXBUFFERS", "targetDepth", "mix", "ape", "lbuf", "m", "buf", "i", "clearBuffers", "createContext", "AudioContext", "audioStreamFactory", "arrbuf", "value", "out", "now", "trimNow", "want", "count", "total", "weighted", "maxFill", "fill", "on", "SampledAudio", "sampleRate", "TssChannelAdapter", "chans", "oversample", "c", "sink", "l", "bufs", "ch", "compactProbeLines", "byClk", "k", "ProbeRecorder", "m", "buflen", "newbuflen", "a", "src", "clocks", "address", "SP", "type", "value", "op", "count", "i", "NullProbe", "src", "BasicHeadlessMachine", "key", "code", "flags", "probe", "probing", "data", "title", "origin", "state", "c", "membus", "a", "val", "v", "iobus", "BasicMachine", "audio", "pixels", "BasicScanlineMachine", "trap", "endLineClock", "steps", "sl", "Z80_OPS", "Z80_OPS_ED", "Z80_OPS_CB", "disassembleZ80", "pc", "b0", "b1", "b2", "b3", "op", "n", "am", "bytes", "isaddr", "iscall", "ireg", "hex", "offset", "CPU6809", "ticks", "rA", "rB", "rX", "rY", "rU", "rS", "PC", "CC", "DP", "F_CARRY", "F_OVERFLOW", "F_ZERO", "F_NEGATIVE", "F_IRQMASK", "F_HALFCARRY", "F_FIRQMASK", "F_ENTIRE", "vecRESET", "vecNMI", "vecSWI", "vecIRQ", "vecFIRQ", "vecSWI2", "vecSWI3", "IRQs", "byteTo", "byteAt", "cycles", "cycles2", "flagsNZ", "setV8", "a", "b", "r", "setV16", "getD", "setD", "v", "PUSHB", "PUSHW", "PUSHBU", "PUSHWU", "PULLB", "PULLW", "PULLBU", "PULLWU", "PSHS", "ucTemp", "i", "PSHU", "PULS", "PULU", "getPBR", "ucPostByte", "setPBR", "TFREXG", "bExchange", "signed", "x", "signed16", "fetch", "fetch16", "v1", "v2", "ReadWord", "addr", "WriteWord", "PostByte", "pb", "preg", "xchg", "sTemp", "sByte", "flagsNZ16", "woLine truncated
}
-30
View File
@@ -1,30 +0,0 @@
import{a as it,b as ft,c as st}from"./chunk-UXRCACYH.js";import{$ as yt,F as Dt,U as Bt,V as Nt,Y as Ye,aa as at,fa as It,g as $,j as Rt,s as Ve}from"./chunk-VZWSP3EG.js";var _n=[{mn:"BRK",am:"",nb:1,il:0,c1:7,c2:0,nw:3,br:1,mod:"SI"},{mn:"ORA",am:"(aa,x)",nb:2,il:0,c1:6,c2:0,nw:0,br:0,mod:"AZN"},{mn:"KIL",am:"",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:""},{mn:"SLO",am:"(aa,x)",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"NOP",am:"aa",nb:2,il:1,c1:3,c2:0,nw:0,br:0,mod:""},{mn:"ORA",am:"aa",nb:2,il:0,c1:3,c2:0,nw:0,br:0,mod:"AZN"},{mn:"ASL",am:"aa",nb:2,il:0,c1:5,c2:0,nw:2,br:0,mod:"CZN"},{mn:"SLO",am:"aa",nb:2,il:1,c1:5,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"PHP",am:"",nb:1,il:0,c1:3,c2:0,nw:1,br:0,mod:"S"},{mn:"ORA",am:"#aa",nb:2,il:0,c1:2,c2:0,nw:0,br:0,mod:"AZN"},{mn:"ASL",am:"",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:"ACZN"},{mn:"ANC",am:"#aa",nb:2,il:1,c1:2,c2:0,nw:0,br:0,mod:"ACZN"},{mn:"NOP",am:"AAAA",nb:3,il:1,c1:3,c2:0,nw:0,br:0,mod:""},{mn:"ORA",am:"AAAA",nb:3,il:0,c1:4,c2:0,nw:0,br:0,mod:"AZN"},{mn:"ASL",am:"AAAA",nb:3,il:0,c1:6,c2:0,nw:2,br:0,mod:"CZN"},{mn:"SLO",am:"AAAA",nb:3,il:1,c1:6,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"BPL",am:"branch",nb:2,il:0,c1:2,c2:2,nw:0,br:1,mod:""},{mn:"ORA",am:"(aa),y",nb:2,il:0,c1:5,c2:1,nw:0,br:0,mod:"AZN"},{mn:"KIL",am:"",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:""},{mn:"SLO",am:"(aa),y",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"NOP",am:"aa,x",nb:2,il:1,c1:4,c2:0,nw:0,br:0,mod:""},{mn:"ORA",am:"aa,x",nb:2,il:0,c1:4,c2:0,nw:0,br:0,mod:"AZN"},{mn:"ASL",am:"aa,x",nb:2,il:0,c1:6,c2:0,nw:2,br:0,mod:"CZN"},{mn:"SLO",am:"aa,x",nb:2,il:1,c1:6,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"CLC",am:"",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:"C"},{mn:"ORA",am:"AAAA,y",nb:3,il:0,c1:4,c2:1,nw:0,br:0,mod:"AZN"},{mn:"NOP",am:"",nb:1,il:1,c1:2,c2:0,nw:0,br:0,mod:""},{mn:"SLO",am:"AAAA,y",nb:3,il:1,c1:7,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"NOP",am:"AAAA,x",nb:3,il:1,c1:4,c2:0,nw:0,br:0,mod:""},{mn:"ORA",am:"AAAA,x",nb:3,il:0,c1:4,c2:1,nw:0,br:0,mod:"AZN"},{mn:"ASL",am:"AAAA,x",nb:3,il:0,c1:7,c2:0,nw:2,br:0,mod:"CZN"},{mn:"SLO",am:"AAAA,x",nb:3,il:1,c1:7,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"JSR",am:"AAAA",nb:3,il:0,c1:6,c2:0,nw:2,br:1,mod:"S"},{mn:"AND",am:"(aa,x)",nb:2,il:0,c1:6,c2:0,nw:0,br:0,mod:"AZN"},{mn:"KIL",am:"",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:""},{mn:"RLA",am:"(aa,x)",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"BIT",am:"aa",nb:2,il:0,c1:3,c2:0,nw:0,br:0,mod:"ZVN"},{mn:"AND",am:"aa",nb:2,il:0,c1:3,c2:0,nw:0,br:0,mod:"AZN"},{mn:"ROL",am:"aa",nb:2,il:0,c1:5,c2:0,nw:2,br:0,mod:"CZN"},{mn:"RLA",am:"aa",nb:2,il:1,c1:5,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"PLP",am:"",nb:1,il:0,c1:4,c2:0,nw:0,br:0,mod:"SCZIDVN"},{mn:"AND",am:"#aa",nb:2,il:0,c1:2,c2:0,nw:0,br:0,mod:"AZN"},{mn:"ROL",am:"",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:"ACZN"},{mn:"ANC",am:"#aa",nb:2,il:1,c1:2,c2:0,nw:0,br:0,mod:"ACZN"},{mn:"BIT",am:"AAAA",nb:3,il:0,c1:4,c2:0,nw:0,br:0,mod:"ZVN"},{mn:"AND",am:"AAAA",nb:3,il:0,c1:4,c2:0,nw:0,br:0,mod:"AZN"},{mn:"ROL",am:"AAAA",nb:3,il:0,c1:6,c2:0,nw:2,br:0,mod:"CZN"},{mn:"RLA",am:"AAAA",nb:3,il:1,c1:6,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"BMI",am:"branch",nb:2,il:0,c1:2,c2:2,nw:0,br:1,mod:""},{mn:"AND",am:"(aa),y",nb:2,il:0,c1:5,c2:1,nw:0,br:0,mod:"AZN"},{mn:"KIL",am:"",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:""},{mn:"RLA",am:"(aa),y",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"NOP",am:"aa,x",nb:2,il:1,c1:4,c2:0,nw:0,br:0,mod:""},{mn:"AND",am:"aa,x",nb:2,il:0,c1:4,c2:0,nw:0,br:0,mod:"AZN"},{mn:"ROL",am:"aa,x",nb:2,il:0,c1:6,c2:0,nw:2,br:0,mod:"CZN"},{mn:"RLA",am:"aa,x",nb:2,il:1,c1:6,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"SEC",am:"",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:"C"},{mn:"AND",am:"AAAA,y",nb:3,il:0,c1:4,c2:1,nw:0,br:0,mod:"AZN"},{mn:"NOP",am:"",nb:1,il:1,c1:2,c2:0,nw:0,br:0,mod:""},{mn:"RLA",am:"AAAA,y",nb:3,il:1,c1:7,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"NOP",am:"AAAA,x",nb:3,il:1,c1:4,c2:0,nw:0,br:0,mod:""},{mn:"AND",am:"AAAA,x",nb:3,il:0,c1:4,c2:1,nw:0,br:0,mod:"AZN"},{mn:"ROL",am:"AAAA,x",nb:3,il:0,c1:7,c2:0,nw:2,br:0,mod:"CZN"},{mn:"RLA",am:"AAAA,x",nb:3,il:1,c1:7,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"RTI",am:"",nb:1,il:0,c1:6,c2:0,nw:0,br:1,mod:"SCZIDVN"},{mn:"EOR",am:"(aa,x)",nb:2,il:0,c1:6,c2:0,nw:0,br:0,mod:"AZN"},{mn:"KIL",am:"",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:""},{mn:"SRE",am:"(aa,x)",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"NOP",am:"aa",nb:2,il:1,c1:3,c2:0,nw:0,br:0,mod:""},{mn:"EOR",am:"aa",nb:2,il:0,c1:3,c2:0,nw:0,br:0,mod:"AZN"},{mn:"LSR",am:"aa",nb:2,il:0,c1:5,c2:0,nw:2,br:0,mod:"CZN"},{mn:"SRE",am:"aa",nb:2,il:1,c1:5,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"PHA",am:"",nb:1,il:0,c1:3,c2:0,nw:1,br:0,mod:"S"},{mn:"EOR",am:"#aa",nb:2,il:0,c1:2,c2:0,nw:0,br:0,mod:"AZN"},{mn:"LSR",am:"",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:"ACZN"},{mn:"ASR",am:"#aa",nb:2,il:1,c1:2,c2:0,nw:0,br:0,mod:"ACZN"},{mn:"JMP",am:"AAAA",nb:3,il:0,c1:3,c2:0,nw:0,br:1,mod:""},{mn:"EOR",am:"AAAA",nb:3,il:0,c1:4,c2:0,nw:0,br:0,mod:"AZN"},{mn:"LSR",am:"AAAA",nb:3,il:0,c1:6,c2:0,nw:2,br:0,mod:"CZN"},{mn:"SRE",am:"AAAA",nb:3,il:1,c1:6,c2:0,nw:2,br:0,mod:"ACZN"},{mn:"BVC",am:"branch"Line truncated
A: `+o.toString(16)+" X: "+b.toString(16)+" Y: "+u.toString(16)+" SP: "+x.toString(16)+" N"+f+" V"+W+" D"+N+" I"+g+" Z"+B+" C"+_+" "},this.breakpoint=function(m){if(this.trace)var A="CPU Breakpoint! "+(m?"("+m+")":"")+`
`+this.toString()};var wt=[7,6,0,8,3,3,5,5,3,2,2,2,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,4,2,2,2,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,3,2,2,2,3,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,4,2,2,2,5,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,0,6,0,6,3,3,3,3,2,0,2,0,4,4,4,4,2,6,0,0,4,4,4,4,2,5,2,0,0,5,0,0,2,6,2,6,3,3,3,3,2,2,2,0,4,4,4,4,2,5,0,5,4,4,4,4,2,4,2,0,4,4,4,4,2,6,0,8,3,3,5,5,2,2,2,2,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,2,6,0,8,3,3,5,5,2,2,2,0,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7],pn=[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1],Pn=[1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,3,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,0,2,0,2,2,2,2,2,1,0,1,0,3,3,3,3,2,2,0,0,2,2,2,3,1,3,1,0,0,3,0,0,2,2,2,2,2,2,2,2,1,2,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,3,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,2,2,0,2,2,2,2,2,1,2,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3],Mn=[1,2,0,0,0,2,2,0,1,2,1,0,0,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,3,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,1,2,0,0,0,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,1,2,0,0,0,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,0,2,0,0,2,2,2,0,1,0,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,3,1,0,0,3,0,0,2,2,2,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,3,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,2,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0];this.getOpcodeMetadata=function(m,A){return{opcode:m,mnenomic:e[m],minCycles:wt[m],maxCycles:wt[m]+pn[m],insnlength:Pn[m]}},this.setNMI=function(){h=An(),a0=1,i=i-1&65535},this.setIRQ=function(){g||(h=hn(),a0=1,i=i-1&65535)},this.getSP=function(){return x},this.getPC=function(){return i-1&65535},this.getT=function(){return a0},this.isHalted=function(){return e[_0]=="uKIL"},this.isPCStable=function(){return a0==0}};var Ht=class{constructor(){this.cpu=new dt;this.interruptType=0}connectMemoryBus(t){this.cpu.connectBus(t)}advanceClock(){if(this.interruptType&&this.isStable()){switch(this.interruptType){case 1:this.cpu.setNMI();break;case 2:this.cpu.setIRQ();break}this.interruptType=0}this.cpu.clockPulse()}advanceInsn(){do this.advanceClock();while(!this.isStable())}reset(){this.cpu.reset(),this.interruptType=0}interrupt(t){this.interruptType!=1&&(this.interruptType=t)}NMI(){this.interrupt(1)}IRQ(){this.interrupt(2)}getSP(){return this.cpu.getSP()}getPC(){return this.cpu.getPC()}isHalted(){return this.cpu.isHalted()}saveState(){var t=this.cpu.saveState();return t.it=this.interruptType,t}loadState(t){this.cpu.loadState(t),this.interruptType=t.it}isStable(){return this.cpu.isPCStable()}getOpcodeMetadata(t){return this.cpu.getOpcodeMetadata(t)}};var Ne=class{constructor(t){this.maxROMSize=262144;this.videoOffsetBytes=0;this.prefix=t;var n=this;this.cpu={getPC:n.getPC.bind(n),getSP:n.getSP.bind(n),isStable:n.isStable.bind(n),reset:n.reset.bind(n),saveState:()=>n.getCPUState(),loadState:()=>{console.log("loadState not implemented")},connectMemoryBus(){console.log("connectMemoryBus not implemented")}}}getImports(t){return{}}async fetchWASM(){var t=await fetch("res/"+this.prefix+"/"+this.prefix+".wasm");if(t.status==200||t.size){var n=await t.arrayBuffer(),i=await WebAssembly.compile(n),x=await WebAssembly.instantiate(i,this.getImports(i));this.instance=x,this.exports=x.exports}else throw new Error("could not load WASM file")}allocateBIOS(t){this.biosptr=this.exports.malloc(t.byteLength),this.biosarr=new Uint8Array(this.exports.memory.buffer,this.biosptr,t.byteLength)}async fetchBIOS(){var t=await fetch("res/"+this.prefix+"/"+this.prefix+".bios");if(t.status==200||t.size){var n=new Uint8Array(await t.arrayBuffer());this.allocateBIOS(n),this.loadBIOS(n)}else throw new Error("could not load BIOS file")}async initWASM(){this.sys=this.exports.machine_init(this.biosptr);let t=this.exports.machine_get_state_size();this.stateptr=this.exports.malloc(t);let n=this.exports.machine_get_controls_state_size();this.ctrlstateptr=this.exports.malloc(n);let i=this.exports.machine_get_cpu_state_size();this.cpustateptr=this.exports.malloc(i),this.romptr=this.exports.malloc(this.maxROMSize),this.statearr=new Uint8Array(this.exports.memory.buffer,this.stateptr,t),this.ctrlstatearr=new Uint8Array(this.exports.memory.buffer,this.ctrlstateptr,n),this.cpustatearr=new Uint8Array(this.exports. Line truncated
A `+$(d.A)+" "+(d.R?"":"BUSY")+`
X `+$(d.X)+`
Y `+$(d.Y)+" SP "+$(d.SP)+`
`}var Je={cycletime:[7,6,0,8,3,3,5,5,3,2,2,2,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,4,2,2,2,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,3,2,2,2,3,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,4,2,2,2,5,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,0,6,0,6,3,3,3,3,2,0,2,0,4,4,4,4,2,6,0,0,4,4,4,4,2,5,2,0,0,5,0,0,2,6,2,6,3,3,3,3,2,2,2,0,4,4,4,4,2,5,0,5,4,4,4,4,2,4,2,0,4,4,4,4,2,6,0,8,3,3,5,5,2,2,2,2,4,4,3,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,2,6,0,8,3,3,5,5,2,2,2,0,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7],extracycles:[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1],insnlengths:[1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,3,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,0,2,0,2,2,2,2,2,1,0,1,0,3,3,3,3,2,2,0,0,2,2,2,3,1,3,1,0,0,3,0,0,2,2,2,2,2,2,2,2,1,2,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,3,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,2,2,0,2,2,2,2,2,1,2,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3],validinsns:[1,2,0,0,0,2,2,0,1,2,1,0,0,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,3,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,1,2,0,0,0,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,1,2,0,0,0,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,0,2,0,0,2,2,2,0,1,0,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,3,1,0,0,3,0,0,2,2,2,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,3,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,2,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0]};function Jt(d,t){return{opcode:d,minCycles:Je.cycletime[d],maxCycles:Je.cycletime[d]+Je.extracycles[d],insnlength:Je.insnlengths[d]}}function Gt(d){function t(n){return Ve(n,["S","Z",,"H",,"V","N","C"],!0)}return"PC "+$(d.PC,4)+" "+t(d.AF)+" "+(d.iff1?"I":"-")+(d.iff2?"I":"-")+`
SP `+$(d.SP,4)+" IR "+$(d.IR,4)+`
IX `+$(d.IX,4)+" IY "+$(d.IY,4)+`
AF `+$(d.AF,4)+" BC "+$(d.BC,4)+`
DE `+$(d.DE,4)+" HL "+$(d.HL,4)+`
`}function Ar(d){function t(n){return Ve(n,["Z","N","H","C"],!0)}return"PC "+$(d.PC,4)+" "+t(d.AF>>4)+" "+(d.ime?"I":"-")+`
SP `+$(d.SP,4)+`
AF `+$(d.AF,4)+" BC "+$(d.BC,4)+`
DE `+$(d.DE,4)+" HL "+$(d.HL,4)+`
`}var St=class extends ye{constructor(){super(...arguments);this.waitCycles=0;this.getToolForFilename=ft}newCPU(n,i){return this._cpu=new We,this._cpu.connectMemoryBus(n),this._cpu.connectIOBus(i),this._cpu}getPC(){return this._cpu.getPC()}getSP(){return this._cpu.getSP()}isStable(){return!0}runCPU(n,i){if(this._cpu=n,this.waitCycles=0,this.wasBreakpointHit())return 0;var x=this.getDebugCallback(),o=0;for(this.waitCycles+=i;this.waitCycles>0;){if(x&&x()){x=null;break}var b=n.advanceInsn();o+=b,this.waitCycles-=b}return o}getDefaultExtensions(){return[".c",".sdcc",".ns",".s",".scc",".sgb",".z",".wiz"]}getDebugCategories(){return["CPU","Stack"]}getDebugInfo(n,i){switch(n){case"CPU":return Gt(i.c);case"Stack":{var x=i.c.SP-1&65535,o=x&65280,b=o+255;return x==0&&(x=65536),console.log(x,o,b),Le(this,[],o,b,x,205)}}}disassemble(n,i){return bt(n,i(n),i(n+1),i(n+2),i(n+3))}};function gt(d){function t(n){return Ve(n,["E","F","H","I","N","Z","V","C"],!0)}return"PC "+$(d.PC,4)+" "+t(d.CC)+`
SP `+$(d.SP,4)+`
DP `+$(d.DP,2)+`
A `+$(d.A,2)+`
B `+$(d.B,2)+`
X `+$(d.X,4)+`
Y `+$(d.Y,4)+`
U `+$(d.U,4)+`
`}var Wt=class extends St{constructor(){super(...arguments);this.getToolForFilename=st}newCPU(n){var i=Object.create($e());return i.init(n.write,n.read,0),i}cpuStateToLongString(n){return gt(n)}disassemble(n,i){return Object.create($e()).disasm(i(n),i(n+1),i(n+2),i(n+3),i(n+4),n)}getDefaultExtensions(){return[".c",".lwasm",".xasm"]}getDebugCategories(){return["CPU","Stack"]}getDebugInfo(n,i){return n==="CPU"?gt(i.c):super.getDebugInfo(n,i)}};function Le(d,t,n,i,x,o,b){var u="",f=0;function W(_){return _<t.length?t[_]:d.readAddress(_)}for(;x<i;){x++;var N=W(x)+W(x+1)*256;b&&(N=(N&255)<<8|(N&65280)>>8);var g=o==32?-2:-3,B=W(N+g);B==o?(u+=`
$`+$(x)+": ",u+=$(N,4)+" "+Nn(d,N,!0),x++,f=0):(f==0&&(u+=`
$`+$(x)+": "),u+=$(W(x))+" ",++f==8&&(f=0))}return u+`
`}function Nn(d,t,n){for(var i=t,x=d.debugSymbols&&d.debugSymbols.addr2symbol;x&&t>=0;){var o=x[t];if(o){var o=x[t];return n?o+" + $"+$(i-t):o}if(!n)break;t--}return""}function yn(d){return typeof d.connectVideo=="function"}function In(d){return typeof d.connectAudio=="function"}function Ln(d){return typeof d.setKeyInput=="function"}function ht(d){return typeof d.setPaddleInput=="function"}function At(d){return typeof d.getRasterY=="function"}function On(d){return typeof d.connectProbe=="function"}function En(d){return typeof d.loadBIOS=="function"}function Zn(d){return typeof d.connectSerialIO=="function"}var Ie=class extends ye{constructor(n,i){super();this.probeSingleFrame=null;this.mainElement=n,this.options=i||{}}reset(){this.machine.reset(),this.serialVisualizer!=null&&this.serialVisualizer.reset()}loadState(n){if(!this.debugPCDelta||!n.c)return this.machine.loadState(n);this.unfixPC(n.c);try{this.machine.loadState(n)}finally{this.fixPC(n.c)}}saveState(){let n=this.machine.saveState();return this.debugPCDelta&&n.c&&this.fixPC(n.c),n}getSP(){return this.machine.cpu.getSP()}getPC(){return this.machine.cpu.getPC()}isStable(){return this.machine.cpu.isStable()}getCPUState(){return this.fixPC(this.machine.cpu.saveState())}loadControlsState(n){this.machine.loadControlsState(n)}saveControlsState(){return this.machine.saveControlsState()}async start(){this.machine=this.newMachine();let n=this.machine;n instanceof Ne&&await n.loadWASM();var i;if(yn(n)){var x=n.getVideoParams();this.video=new Nt(this.mainElement,x.width,x.height,{overscan:!!x.overscan,rotate:x.rotate|0,aspect:x.aspect}),this.video.create(),n.connectVideo(this.video.getFrameData()),Ln(n)&&(this.video.setKeyboardEvents(n.setKeyInput.bind(n)),this.poller=new It(n.setKeyInput.bind(n))),i=x.videoFrequency}if(this.timer=new yt(i||60,this.nextFrame.bind(this)),In(n)){var o=n.getAudioParams();this.audio=new Ke(o.sampleRate),this.audio.start(),n.connectAudio(this.audio)}ht(n)&&this.video.setupMouseEvents(),On(n)&&(this.probeRecorder=new je(n),this.startProbing=()=>(n.connectProbe(this.probeRecorder),this.probeRecorder),this.stopProbing=()=>{n.connectProbe(null)}),En(n)&&(this.loadBIOS=(b,u)=>{n.loadBIOS(u,b)}),Zn(n)&&(this.serialIOInterface==null?this.serialVisualizer=new pt(this.mainElement,n):n.connectSerialIO(this.serialIOInterface))}loadROM(n,i,x){this.machine.loadROM(i,n,x),this.reset()}acceptsPaddles(){return ht(this.machine)}setPaddles(n,i,x){this.video.paddle_x=n,this.video.paddle_y=i,x.forEach((o,b)=>this.video.paddle_buttons[b]=o)}pollControls(){this.poller&&this.poller.poll(),ht(this.machine)&&(this.machine.setPaddleInput(0,this.video.paddle_x),this.machine.setPaddleInput(1,this.video.paddle_y),this.machine.setPaddleButton&&this.video.paddle_buttons!=null&&(this.machine.setPaddleButton(0,this.video.paddle_buttons[0]),this.machine.setPaddleButton(1,this.video.paddle_buttons[1]),this.machine.setPaddleButton(2,this.video.paddle_buttons[2]))),this.machine.pollControls&&this.machine.pollControls()}advance(n){let i=this.getDebugCallback();try{var x=this.machine.advanceFrame(i);return x}finally{!n&&this.video&&(this.video.updateFrame(),this.updateVideoDebugger()),!n&&this.serialVisualizer&&this.serialVisualizer.refresh()}}updateVideoDebugger(){var n;if(!this.isRunning()&&At(this.machine)&&this.machine.getRasterCanvasPosition){let{x:i,y:x}=this.machine.getRasterCanvasPosition();if(i>=0||x>=0){let o=(n=this.video)==null?void 0:n.getContext();o&&Bt(o,i,x,1)}}}advanceFrameClock(n,i){if(i>0)return this.machine instanceof Ne?this.machine.advanceFrameClock(n,i):this.machine.advanceFrame(()=>--i<=0)}isRunning(){return this.timer&&this.timer.isRunning()}resume(){this.timer.start(),this.audio&&this.audio.start(),this.poller&&this.poller.start()}pause(){this.timer.stop(),this.audio&&this.audio.stop(),this.poller&&this.poller.stop(),this.probeRecorder&&this.probeSingleFrame!=null&&(this.probeRecorder.singleFrame=this.probeSingleFrame,this.probeSingleFrame=null)}runToVsync(){this.probeRecorder&&(this.probeSingleFrame=this.probeRecorder.singleFrame,this.probeRecorder.reset(),this.probeRecorder.singleFrame=!1),this.restartDebugging();var n=!1;this.runEval(()=>{if(this.getRasterScanline()>0)n=!0;else return n})}getRasterScanline(){return At(this.machine)&&this.machine.getRasterY?this.machine.getRasterY():-1}getRasterLineClock(){return At(this.machine)&&this.machine.getRasterX?this.machine.getRasterX():-1}readAddress(n){return this.machine.read(n)}getDebugCategories(){if(ve(this.machine))return this.machine.getDebugCategories()}getDebugInfo(n,i){return ve(this.machine)&&this.machine.getDebugInfo(n,i)}},zt=class extends Ie{constructor(){super(...arguments);this.getOpcodeMetadata=Jt}getToolForFilename(n){return it(n)}getDefaultExtensions(){return[".c",".cpp",".o64",".acme",".xa",".ca65",".dasm",".ecs",".wiz"]}disassemble(n,i){return ct(n,i(n),i(n+1),i(n+2))}getDebugCategories(){return ve(this.machine)?this.machine.getDebugCategories():["CPU","ZPRAM","Stack"]}getDebug Line truncated
`),i.op==="read"?n+="<< ":i.op==="write"&&(n+=">> "),t=i.op),i.value==10?(n+="\u21B5",t=""):n+=Dt(i.value);this.textarea.value=n,this.lastOutCount=this.device.serialOut.length,this.textarea.style.display="block"}}};export{ct as a,bt as b,We as c,ut as d,Lt as e,Ot as f,Xn as g,wn as h,Hn as i,xt as j,Dn as k,Mt as l,$e as m,Ht as n,Yn as o,je as p,Be as q,lt as r,mt as s,Ft as t,Ne as u,Vt as v,ve as w,vt as x,Bn as y,Yt as z,$t as A,Jt as B,Gt as C,Ar as D,St as E,Wt as F,Le as G,Ie as H,zt as I,Kt as J,jt as K};
//# sourceMappingURL=chunk-FFJHITEL.js.map
-7
View File
@@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../src/common/cpu/disasm6502.ts", "../src/common/cpu/ZilogZ80.ts", "../src/common/audio.ts", "../src/common/probe.ts", "../src/common/devices.ts", "../src/common/cpu/disasmz80.ts", "../src/common/cpu/6809.ts", "../src/common/cpu/MOS6502.ts", "../src/common/wasmplatform.ts", "../src/common/baseplatform.ts"],
"sourcesContent": ["\nimport { hex } from \"../util\";\n\nexport var OPS_6502 = [\n {mn:\"BRK\",am:\"\",nb:1,il:0,c1:7,c2:0,nw:3,br:1,mod:\"SI\"}, // 0\n {mn:\"ORA\",am:\"(aa,x)\",nb:2,il:0,c1:6,c2:0,nw:0,br:0,mod:\"AZN\"}, // 1\n {mn:\"KIL\",am:\"\",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:\"\"}, // 2\n {mn:\"SLO\",am:\"(aa,x)\",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 3\n {mn:\"NOP\",am:\"aa\",nb:2,il:1,c1:3,c2:0,nw:0,br:0,mod:\"\"}, // 4\n {mn:\"ORA\",am:\"aa\",nb:2,il:0,c1:3,c2:0,nw:0,br:0,mod:\"AZN\"}, // 5\n {mn:\"ASL\",am:\"aa\",nb:2,il:0,c1:5,c2:0,nw:2,br:0,mod:\"CZN\"}, // 6\n {mn:\"SLO\",am:\"aa\",nb:2,il:1,c1:5,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 7\n {mn:\"PHP\",am:\"\",nb:1,il:0,c1:3,c2:0,nw:1,br:0,mod:\"S\"}, // 8\n {mn:\"ORA\",am:\"#aa\",nb:2,il:0,c1:2,c2:0,nw:0,br:0,mod:\"AZN\"}, // 9\n {mn:\"ASL\",am:\"\",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:\"ACZN\"}, // a\n {mn:\"ANC\",am:\"#aa\",nb:2,il:1,c1:2,c2:0,nw:0,br:0,mod:\"ACZN\"}, // b\n {mn:\"NOP\",am:\"AAAA\",nb:3,il:1,c1:3,c2:0,nw:0,br:0,mod:\"\"}, // c\n {mn:\"ORA\",am:\"AAAA\",nb:3,il:0,c1:4,c2:0,nw:0,br:0,mod:\"AZN\"}, // d\n {mn:\"ASL\",am:\"AAAA\",nb:3,il:0,c1:6,c2:0,nw:2,br:0,mod:\"CZN\"}, // e\n {mn:\"SLO\",am:\"AAAA\",nb:3,il:1,c1:6,c2:0,nw:2,br:0,mod:\"ACZN\"}, // f\n {mn:\"BPL\",am:\"branch\",nb:2,il:0,c1:2,c2:2,nw:0,br:1,mod:\"\"}, // 10\n {mn:\"ORA\",am:\"(aa),y\",nb:2,il:0,c1:5,c2:1,nw:0,br:0,mod:\"AZN\"}, // 11\n {mn:\"KIL\",am:\"\",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:\"\"}, // 12\n {mn:\"SLO\",am:\"(aa),y\",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 13\n {mn:\"NOP\",am:\"aa,x\",nb:2,il:1,c1:4,c2:0,nw:0,br:0,mod:\"\"}, // 14\n {mn:\"ORA\",am:\"aa,x\",nb:2,il:0,c1:4,c2:0,nw:0,br:0,mod:\"AZN\"}, // 15\n {mn:\"ASL\",am:\"aa,x\",nb:2,il:0,c1:6,c2:0,nw:2,br:0,mod:\"CZN\"}, // 16\n {mn:\"SLO\",am:\"aa,x\",nb:2,il:1,c1:6,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 17\n {mn:\"CLC\",am:\"\",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:\"C\"}, // 18\n {mn:\"ORA\",am:\"AAAA,y\",nb:3,il:0,c1:4,c2:1,nw:0,br:0,mod:\"AZN\"}, // 19\n {mn:\"NOP\",am:\"\",nb:1,il:1,c1:2,c2:0,nw:0,br:0,mod:\"\"}, // 1a\n {mn:\"SLO\",am:\"AAAA,y\",nb:3,il:1,c1:7,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 1b\n {mn:\"NOP\",am:\"AAAA,x\",nb:3,il:1,c1:4,c2:0,nw:0,br:0,mod:\"\"}, // 1c\n {mn:\"ORA\",am:\"AAAA,x\",nb:3,il:0,c1:4,c2:1,nw:0,br:0,mod:\"AZN\"}, // 1d\n {mn:\"ASL\",am:\"AAAA,x\",nb:3,il:0,c1:7,c2:0,nw:2,br:0,mod:\"CZN\"}, // 1e\n {mn:\"SLO\",am:\"AAAA,x\",nb:3,il:1,c1:7,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 1f\n {mn:\"JSR\",am:\"AAAA\",nb:3,il:0,c1:6,c2:0,nw:2,br:1,mod:\"S\"}, // 20\n {mn:\"AND\",am:\"(aa,x)\",nb:2,il:0,c1:6,c2:0,nw:0,br:0,mod:\"AZN\"}, // 21\n {mn:\"KIL\",am:\"\",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:\"\"}, // 22\n {mn:\"RLA\",am:\"(aa,x)\",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 23\n {mn:\"BIT\",am:\"aa\",nb:2,il:0,c1:3,c2:0,nw:0,br:0,mod:\"ZVN\"}, // 24\n {mn:\"AND\",am:\"aa\",nb:2,il:0,c1:3,c2:0,nw:0,br:0,mod:\"AZN\"}, // 25\n {mn:\"ROL\",am:\"aa\",nb:2,il:0,c1:5,c2:0,nw:2,br:0,mod:\"CZN\"}, // 26\n {mn:\"RLA\",am:\"aa\",nb:2,il:1,c1:5,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 27\n {mn:\"PLP\",am:\"\",nb:1,il:0,c1:4,c2:0,nw:0,br:0,mod:\"SCZIDVN\"}, // 28\n {mn:\"AND\",am:\"#aa\",nb:2,il:0,c1:2,c2:0,nw:0,br:0,mod:\"AZN\"}, // 29\n {mn:\"ROL\",am:\"\",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:\"ACZN\"}, // 2a\n {mn:\"ANC\",am:\"#aa\",nb:2,il:1,c1:2,c2:0,nw:0,br:0,mod:\"ACZN\"}, // 2b\n {mn:\"BIT\",am:\"AAAA\",nb:3,il:0,c1:4,c2:0,nw:0,br:0,mod:\"ZVN\"}, // 2c\n {mn:\"AND\",am:\"AAAA\",nb:3,il:0,c1:4,c2:0,nw:0,br:0,mod:\"AZN\"}, // 2d\n {mn:\"ROL\",am:\"AAAA\",nb:3,il:0,c1:6,c2:0,nw:2,br:0,mod:\"CZN\"}, // 2e\n {mn:\"RLA\",am:\"AAAA\",nb:3,il:1,c1:6,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 2f\n {mn:\"BMI\",am:\"branch\",nb:2,il:0,c1:2,c2:2,nw:0,br:1,mod:\"\"}, // 30\n {mn:\"AND\",am:\"(aa),y\",nb:2,il:0,c1:5,c2:1,nw:0,br:0,mod:\"AZN\"}, // 31\n {mn:\"KIL\",am:\"\",nb:1,il:2,c1:3,c2:0,nw:0,br:1,mod:\"\"}, // 32\n {mn:\"RLA\",am:\"(aa),y\",nb:2,il:1,c1:8,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 33\n {mn:\"NOP\",am:\"aa,x\",nb:2,il:1,c1:4,c2:0,nw:0,br:0,mod:\"\"}, // 34\n {mn:\"AND\",am:\"aa,x\",nb:2,il:0,c1:4,c2:0,nw:0,br:0,mod:\"AZN\"}, // 35\n {mn:\"ROL\",am:\"aa,x\",nb:2,il:0,c1:6,c2:0,nw:2,br:0,mod:\"CZN\"}, // 36\n {mn:\"RLA\",am:\"aa,x\",nb:2,il:1,c1:6,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 37\n {mn:\"SEC\",am:\"\",nb:1,il:0,c1:2,c2:0,nw:0,br:0,mod:\"C\"}, // 38\n {mn:\"AND\",am:\"AAAA,y\",nb:3,il:0,c1:4,c2:1,nw:0,br:0,mod:\"AZN\"}, // 39\n {mn:\"NOP\",am:\"\",nb:1,il:1,c1:2,c2:0,nw:0,br:0,mod:\"\"}, // 3a\n {mn:\"RLA\",am:\"AAAA,y\",nb:3,il:1,c1:7,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 3b\n {mn:\"NOP\",am:\"AAAA,x\",nb:3,il:1,c1:4,c2:0,nw:0,br:0,mod:\"\"}, // 3c\n {mn:\"AND\",am:\"AAAA,x\",nb:3,il:0,c1:4,c2:1,nw:0,br:0,mod:\"AZN\"}, // 3d\n {mn:\"ROL\",am:\"AAAA,x\",nb:3,il:0,c1:7,c2:0,nw:2,br:0,mod:\"CZN\"}, // 3e\n {mn:\"RLA\",am:\"AAAA,x\",nb:3,il:1,c1:7,c2:0,nw:2,br:0,mod:\"ACZN\"}, // 3f\n {mn:\"RTI\",am:\"\",nb:1,il:0,c1:6,c2:0,nw:0,br:1,mod:\"SLine truncated
"mappings": "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 truncated
"names": ["OPS_6502", "disassemble6502", "pc", "b0", "b1", "b2", "op", "s", "am", "isaddr", "offset", "hex", "FastZ80", "coreParameter", "core", "a", "b", "c", "d", "e", "h", "l", "a_prime", "b_prime", "c_prime", "d_prime", "e_prime", "h_prime", "l_prime", "ix", "iy", "i", "r", "sp", "pc", "flags", "flags_prime", "imode", "iff1", "iff2", "halted", "do_delayed_di", "do_delayed_ei", "cycle_counter", "getState", "get_flags_register", "get_flags_prime", "setState", "state", "set_flags_register", "set_flags_prime", "reset", "run_instruction", "doing_delayed_di", "doing_delayed_ei", "opcode", "decode_instruction", "retval", "interrupt", "non_maskable", "data", "push_word", "vector_address", "get_operand", "operand", "op_array", "do_add", "do_adc", "do_sub", "do_sbc", "do_and", "do_xor", "do_or", "do_cp", "func", "instructions", "cycle_counts", "get_signed_offset_byte", "value", "update_xy_flags", "result", "get_parity", "parity_bits", "pop_word", "do_conditional_absolute_jump", "condition", "do_conditional_relative_jump", "offset", "do_conditional_call", "do_conditional_return", "do_reset", "address", "temp", "do_inc", "do_dec", "do_hl_add", "hl", "do_hl_adc", "do_hl_sbc", "do_in", "port", "do_neg", "do_ldi", "read_value", "do_cpi", "temp_carry", "do_ini", "do_outi", "do_ldd", "do_cpd", "do_ind", "do_outd", "do_rlc", "do_rrc", "do_rl", "do_rr", "do_sla", "do_sra", "do_sll", "do_srl", "do_ix_add", "temp_s", "temp_z", "temp_p", "bit_number", "reg_code", "cycle_counts_cb", "dd_instructions", "cycle_counts_dd", "ed_instructions", "cycle_counts_ed", "hl_value", "temp1", "temp2", "ddcb_functions", "Z80", "v", "bus", "s", "MasterAudio", "resumeAudioContext", "AY38910_Audio", "master", "i", "val", "SN76489_Audio", "newPOKEYAudio", "count", "audio", "pokey", "POKEYDeviceChannel", "combinePolys", "a", "b", "arr", "n", "divideBy", "NOTPOLY5", "POLY4", "PURE", "VOL_ONLY", "VOLUME_MASK", "POLY9", "CH1_179", "CH3_179", "CH1_CH2", "CH3_CH4", "CH1_FILTER", "CH2_FILTER", "CLOCK_15", "DIV_64", "DIV_15", "POLY4_SIZE", "POLY5_SIZE", "POLY9_SIZE", "POLY17_SIZE", "CHAN1", "CHAN2", "CHAN3", "CHAN4", "CHIP1", "CHIP2", "CHIP3", "CHIP4", "SAMPLE", "FREQ_17_EXACT", "FREQ_17_APPROX", "bit1", "bit2", "bit4", "bit5", "bit9", "bit15", "bit31", "bit17", "bit17_5", "bit5_4", "wavetones", "div2", "div6", "div31", "div93", "bit15_4", "bit5_2", "bit5_6", "tiawavetones", "regs", "counters", "deltas", "volume", "audc", "waveforms", "buffer", "sampleRate", "clock", "baseDelta", "dirty", "length", "rate", "updateValues", "addr", "ctrl", "base", "div", "j", "k", "value", "s", "sample", "d", "v", "wav", "cnt", "on", "WorkerSoundChannel", "worker", "output", "pending", "pendingLength", "e", "buf", "l", "audioStreamFactory", "AUDIO_CHUNK_SAMPLES", "audioUnlockEvents", "pendingUnlocks", "resumeAudioContext", "ctx", "onGesture", "ev", "SampleAudio", "clockfreq", "self", "sfrac", "sinc", "accum", "buffer", "bufpos", "bufferlist", "ifill", "written", "read", "skippedBuffers", "lastSkipLog", "underruns", "fillHist", "collectStats", "baseSinc", "trim", "fillAvg", "lastTrimAdj", "FILL_TARGET", "FILL_ALPHA", "TRIM_GAIN", "MAX_TRIM", "TRIM_INTERVAL_MS", "MAXBUFFERS", "targetDepth", "mix", "ape", "lbuf", "m", "buf", "i", "clearBuffers", "createContext", "AudioContext", "audioStreamFactory", "arrbuf", "value", "out", "now", "trimNow", "want", "count", "total", "weighted", "maxFill", "fill", "on", "SampledAudio", "sampleRate", "TssChannelAdapter", "chans", "oversample", "c", "sink", "l", "bufs", "ch", "compactProbeLines", "byClk", "k", "ProbeRecorder", "m", "buflen", "newbuflen", "a", "src", "clocks", "address", "SP", "type", "value", "op", "count", "i", "NullProbe", "src", "BasicHeadlessMachine", "key", "code", "flags", "probe", "probing", "data", "title", "origin", "state", "c", "membus", "a", "val", "v", "iobus", "BasicMachine", "audio", "pixels", "BasicScanlineMachine", "trap", "endLineClock", "steps", "sl", "Z80_OPS", "Z80_OPS_ED", "Z80_OPS_CB", "disassembleZ80", "pc", "b0", "b1", "b2", "b3", "op", "n", "am", "bytes", "isaddr", "iscall", "ireg", "hex", "offset", "CPU6809", "ticks", "rA", "rB", "rX", "rY", "rU", "rS", "PC", "CC", "DP", "F_CARRY", "F_OVERFLOW", "F_ZERO", "F_NEGATIVE", "F_IRQMASK", "F_HALFCARRY", "F_FIRQMASK", "F_ENTIRE", "vecRESET", "vecNMI", "vecSWI", "vecIRQ", "vecFIRQ", "vecSWI2", "vecSWI3", "IRQs", "byteTo", "byteAt", "cycles", "cycles2", "flagsNZ", "setV8", "a", "b", "r", "setV16", "getD", "setD", "v", "PUSHB", "PUSHW", "PUSHBU", "PUSHWU", "PULLB", "PULLW", "PULLBU", "PULLWU", "PSHS", "ucTemp", "i", "PSHU", "PULS", "PULU", "getPBR", "ucPostByte", "setPBR", "TFREXG", "bExchange", "signed", "x", "signed16", "fetch", "fetch16", "v1", "v2", "ReadWord", "addr", "WriteWord", "PostByte", "pb", "preg", "xchg", "sTemp", "sByte", "flagsNZ16", "word", "oINC", "oDEC", "oSUB", "temp", "oSUB16", "oADD", "oADD16", "oADC", "oSBC", "oCMP", "oCMP16", "oNEG", "oLSR", "oASR", "oASL", "oROL", "oldc", "oROR", "oEOR", "oOR", "oAND", "oCOM", "dpadd", "step", "oldTLine truncated
}
@@ -1,4 +1,4 @@
import{A as P,C as w,a as b,b as v}from"./chunk-FFJHITEL.js";import{$ as C,V as S,X as p}from"./chunk-VZWSP3EG.js";var o=class{constructor(t){this.loaded=!1;this.preinitted=!1;this.started=!1;this.romtype="cart";this.running=!1;this.initluavars=!1;this.mainElement=t,this.timer=new C(20,this.poll.bind(this))}luacall(t){return this.js_lua_string||(this.js_lua_string=Module.cwrap("_Z13js_lua_stringPKc","string",["string"])),this.js_lua_string(t||"")}_pause(){this.running=!1,this.timer.stop()}pause(){this.loaded&&this.running&&(this.luacall("emu.pause()"),this._pause())}_resume(){this.luacall("emu.unpause()"),this.running=!0,this.timer.start()}resume(){this.loaded&&!this.running&&this._resume()}reset(){this.loaded&&(this.luacall("manager:machine():soft_reset()"),this.running=!0,this.initluavars=!1)}isRunning(){return this.running}bufferConsoleOutput(t){typeof t=="string"&&console.log(t)}startModule(t,e){this.started=!0;var r=this.romfn=this.romfn||e.romfn,n=this.romdata=this.romdata||e.romdata||new p(e.romsize).mem,g=this.romtype=this.romtype||e.romtype,a=this.video=new S(this.mainElement,e.width,e.height);a.create(),$(a.canvas).attr("id","canvas"),console.log("loading",e.jsfile);var u=[e.driver,"-debug","-debugger","none","-verbose","-window","-nokeepaspect","-resolution",a.canvas.width+"x"+a.canvas.height];r&&u.push("-"+g,r),e.extraargs&&(u=u.concat(e.extraargs)),console.log(u),window.JSMESS={},window.Module={arguments:u,screenIsReadOnly:!0,print:this.bufferConsoleOutput,canvas:a.canvas,doNotCaptureKeyboard:!0,keyboardListeningElement:a.canvas,preInit:()=>{console.log("loading FS"),ENV.SDL_EMSCRIPTEN_KEYBOARD_ELEMENT="canvas",e.cfgfile&&(FS.mkdir("/cfg"),FS.writeFile("/cfg/"+e.cfgfile,e.cfgdata,{encoding:"utf8"})),e.biosfile&&(FS.mkdir("/roms"),FS.mkdir("/roms/"+e.driver),FS.writeFile("/roms/"+e.biosfile,e.biosdata,{encoding:"binary"})),FS.mkdir("/emulator"),r&&FS.writeFile(r,n,{encoding:"binary"}),e.preInit&&e.preInit(self),this.preinitted=!0},preRun:[()=>{$(a.canvas).click(i=>{a.canvas.focus()}),this.loaded=!0,console.log("about to run...")}]};var d,c,m=$.Deferred(),f=$.Deferred();if(e.cfgfile&&(d=$.get("mame/cfg/"+e.cfgfile,i=>{e.cfgdata=i,console.log("loaded "+e.cfgfile)},"text")),e.biosfile){var s=new XMLHttpRequest;s.open("GET","mame/roms/"+e.biosfile,!0),s.responseType="arraybuffer",s.onload=i=>{e.biosdata=new Uint8Array(s.response),console.log("loaded "+e.biosfile),m.resolve()},s.ontimeout=function(i){throw Error("Timeout loading "+e.biosfile)},s.send()}else m.resolve();c=$.get("mame/debugger.lua",i=>{this.luadebugscript=i,console.log("loaded debugger.lua")},"text");{var l=new XMLHttpRequest;l.open("GET","mame/"+e.jsfile.replace(".js",".wasm"),!0),l.responseType="arraybuffer",l.onload=i=>{console.log("loaded WASM file"),window.Module.wasmBinary=new Uint8Array(l.response),f.resolve()},l.ontimeout=function(i){throw Error("Timeout loading "+e.jsfile)},l.send()}$.when(c,d,m,f).done(()=>{var i=document.createElement("script");i.src="mame/"+e.jsfile,document.getElementsByTagName("head")[0].appendChild(i),console.log("created script element")}),window.mamelua=i=>(this.initlua(),[i,this.luacall(i)])}loadROMFile(t){this.romdata=t,this.preinitted&&this.romfn&&FS.writeFile(this.romfn,t,{encoding:"binary"})}loadRegion(t,e){if(this.loaded&&e.length>0){for(var r='rgn = manager:machine():memory().regions["'+t+`"]
import{C as P,E as w,a as b,b as v}from"./chunk-4YTESWOC.js";import{$ as C,V as S,X as p}from"./chunk-VZWSP3EG.js";var o=class{constructor(t){this.loaded=!1;this.preinitted=!1;this.started=!1;this.romtype="cart";this.running=!1;this.initluavars=!1;this.mainElement=t,this.timer=new C(20,this.poll.bind(this))}luacall(t){return this.js_lua_string||(this.js_lua_string=Module.cwrap("_Z13js_lua_stringPKc","string",["string"])),this.js_lua_string(t||"")}_pause(){this.running=!1,this.timer.stop()}pause(){this.loaded&&this.running&&(this.luacall("emu.pause()"),this._pause())}_resume(){this.luacall("emu.unpause()"),this.running=!0,this.timer.start()}resume(){this.loaded&&!this.running&&this._resume()}reset(){this.loaded&&(this.luacall("manager:machine():soft_reset()"),this.running=!0,this.initluavars=!1)}isRunning(){return this.running}bufferConsoleOutput(t){typeof t=="string"&&console.log(t)}startModule(t,e){this.started=!0;var r=this.romfn=this.romfn||e.romfn,n=this.romdata=this.romdata||e.romdata||new p(e.romsize).mem,g=this.romtype=this.romtype||e.romtype,a=this.video=new S(this.mainElement,e.width,e.height);a.create(),$(a.canvas).attr("id","canvas"),console.log("loading",e.jsfile);var u=[e.driver,"-debug","-debugger","none","-verbose","-window","-nokeepaspect","-resolution",a.canvas.width+"x"+a.canvas.height];r&&u.push("-"+g,r),e.extraargs&&(u=u.concat(e.extraargs)),console.log(u),window.JSMESS={},window.Module={arguments:u,screenIsReadOnly:!0,print:this.bufferConsoleOutput,canvas:a.canvas,doNotCaptureKeyboard:!0,keyboardListeningElement:a.canvas,preInit:()=>{console.log("loading FS"),ENV.SDL_EMSCRIPTEN_KEYBOARD_ELEMENT="canvas",e.cfgfile&&(FS.mkdir("/cfg"),FS.writeFile("/cfg/"+e.cfgfile,e.cfgdata,{encoding:"utf8"})),e.biosfile&&(FS.mkdir("/roms"),FS.mkdir("/roms/"+e.driver),FS.writeFile("/roms/"+e.biosfile,e.biosdata,{encoding:"binary"})),FS.mkdir("/emulator"),r&&FS.writeFile(r,n,{encoding:"binary"}),e.preInit&&e.preInit(self),this.preinitted=!0},preRun:[()=>{$(a.canvas).click(i=>{a.canvas.focus()}),this.loaded=!0,console.log("about to run...")}]};var d,c,m=$.Deferred(),f=$.Deferred();if(e.cfgfile&&(d=$.get("mame/cfg/"+e.cfgfile,i=>{e.cfgdata=i,console.log("loaded "+e.cfgfile)},"text")),e.biosfile){var s=new XMLHttpRequest;s.open("GET","mame/roms/"+e.biosfile,!0),s.responseType="arraybuffer",s.onload=i=>{e.biosdata=new Uint8Array(s.response),console.log("loaded "+e.biosfile),m.resolve()},s.ontimeout=function(i){throw Error("Timeout loading "+e.biosfile)},s.send()}else m.resolve();c=$.get("mame/debugger.lua",i=>{this.luadebugscript=i,console.log("loaded debugger.lua")},"text");{var l=new XMLHttpRequest;l.open("GET","mame/"+e.jsfile.replace(".js",".wasm"),!0),l.responseType="arraybuffer",l.onload=i=>{console.log("loaded WASM file"),window.Module.wasmBinary=new Uint8Array(l.response),f.resolve()},l.ontimeout=function(i){throw Error("Timeout loading "+e.jsfile)},l.send()}$.when(c,d,m,f).done(()=>{var i=document.createElement("script");i.src="mame/"+e.jsfile,document.getElementsByTagName("head")[0].appendChild(i),console.log("created script element")}),window.mamelua=i=>(this.initlua(),[i,this.luacall(i)])}loadROMFile(t){this.romdata=t,this.preinitted&&this.romfn&&FS.writeFile(this.romfn,t,{encoding:"binary"})}loadRegion(t,e){if(this.loaded&&e.length>0){for(var r='rgn = manager:machine():memory().regions["'+t+`"]
`,n=0;n<e.length;n+=4){var g=e[n]+(e[n+1]<<8)+(e[n+2]<<16)+(e[n+3]<<24);r+="rgn:write_u32("+n+","+g+`)
`}this.luacall(r),this.reset()}}initlua(){this.initluavars||(this.luacall(this.luadebugscript),this.luacall("mamedbg.init()"),this.initluavars=!0)}readAddress(t){return this.initlua(),parseInt(this.luacall("return mem:read_u8("+t+")"))}getCPUReg(t){return this.loaded?(this.initlua(),parseInt(this.luacall("return cpu.state."+t+".value"))):0}grabState(t){return this.initlua(),{c:this.getCPUState(),buf:this.luacall("return string.tohex("+t+")")}}saveState(){return this.grabState("manager:machine():buffer_save()")}loadState(t){return this.initlua(),this.luacall("manager:machine():buffer_load(string.fromhex('"+t.buf+"'))")}poll(){if(this.onBreakpointHit&&this.luacall("return tostring(mamedbg.is_stopped())")=="true"){this._pause();var t=this.grabState("lastBreakState");this.onBreakpointHit(t)}}clearDebug(){this.onBreakpointHit=null,this.loaded&&(this.initlua(),this.luacall("mamedbg.reset()"))}getDebugCallback(){return this.onBreakpointHit}setupDebug(t){this.onBreakpointHit=t}debugcmd(t){this.initlua(),this.luacall(t),this._resume()}runToPC(t){this.debugcmd("mamedbg.runTo("+t.join(",")+")")}runToVsync(){this.debugcmd("mamedbg.runToVsync()")}runUntilReturn(){this.debugcmd("mamedbg.runUntilReturn()")}runEval(){this.reset(),this.step()}step(){this.debugcmd("mamedbg.step()")}getDebugCategories(){return["CPU"]}getDebugInfo(t,e){if(t==="CPU")return this.cpuStateToLongString(e.c)}getDebugTree(){this.initlua();var t=JSON.parse(this.luacall("return table.tojson(manager:machine().devices)")),e=JSON.parse(this.luacall("return table.tojson(manager:machine().images)")),r=JSON.parse(this.luacall("return table.tojson(manager:machine():memory().regions)"));return{devices:t,images:e,regions:r}}},_=class extends o{getPC(){return this.getCPUReg("PC")}getSP(){return this.getCPUReg("SP")}isStable(){return!0}getCPUState(){return{PC:this.getPC(),SP:this.getSP(),A:this.getCPUReg("A"),X:this.getCPUReg("X"),Y:this.getCPUReg("Y"),flags:this.getCPUReg("P")}}disassemble(t,e){return b(t,e(t),e(t+1),e(t+2))}cpuStateToLongString(t){return P(t)}},U=class extends o{getPC(){return this.getCPUReg("PC")}getSP(){return this.getCPUReg("SP")}isStable(){return!0}getCPUState(){return{PC:this.getPC(),SP:this.getSP(),AF:this.getCPUReg("AF"),BC:this.getCPUReg("BC"),DE:this.getCPUReg("DE"),HL:this.getCPUReg("HL"),IX:this.getCPUReg("IX"),IY:this.getCPUReg("IY"),IR:this.getCPUReg("R")+(this.getCPUReg("I")<<8)}}disassemble(t,e){return v(t,e(t),e(t+1),e(t+2),e(t+3))}cpuStateToLongString(t){return w(t)}};export{_ as a,U as b};
//# sourceMappingURL=chunk-UNDRK5PG.js.map
//# sourceMappingURL=chunk-JELKPLZC.js.map
File renamed without changes.
@@ -1,4 +1,4 @@
import{c as ie,l as he,q as ne,t as oe}from"./chunk-FFJHITEL.js";import{a as A,ca as ae,g as w,u}from"./chunk-VZWSP3EG.js";var L=class{constructor(t,e,r){this.probe=new ne;this.ram=new Uint8Array(16384);this.registers=new Uint8Array(8);this.spriteBuffer=new Uint8Array(256);this.displayOn=!1;this.interruptsOn=!1;this.fb32=t,this.cru=e,this.enableFlicker=r,this.palette=[u(0,0,0),u(0,0,0),u(33,200,66),u(94,220,120),u(84,85,237),u(125,118,252),u(212,82,77),u(66,235,245),u(252,85,84),u(255,121,120),u(212,193,84),u(230,206,128),u(33,176,59),u(201,91,186),u(204,204,204),u(255,255,255)]}reset(){var t;this.ram.fill(0),this.registers.fill(0),this.addressRegister=0,this.statusRegister=0,this.prefetchByte=0,this.latch=!1,this.displayOn=!1,this.interruptsOn=!1,this.screenMode=0,this.bitmapMode=!1,this.textMode=!1,this.colorTable=0,this.nameTable=0,this.charPatternTable=0,this.spriteAttributeTable=0,this.spritePatternTable=0,this.colorTableMask=16383,this.patternTableMask=16383,this.ramMask=16383,this.fgColor=0,this.bgColor=0,this.flicker=this.enableFlicker,this.redrawRequired=!0,this.width=304,this.height=240}drawScanline(t){var e=this.fb32,r=this.width,s=t*r,i=this.screenMode,h=this.textMode,a=this.bitmapMode,n=h?240:256,b=192,o=r-n>>1,d=this.height-b>>1,p=this.fgColor,M=this.bgColor,l=this.ram,v=this.nameTable,V=this.colorTable,P=this.charPatternTable,G=this.colorTableMask,S=this.patternTableMask,ce=this.spriteAttributeTable,de=this.spritePatternTable,$=(this.registers[1]&2)!==0,H=this.registers[1]&1,Z=($?16:8)<<(H?1:0),j=this.flicker?4:32,J=this.palette,N=!1,Q=!1,Y=31,R,f,D,T,C,F,m;if(t>=d&&t<d+b&&this.displayOn){var c=t-d;if(!h){var W=this.spriteBuffer;W.fill(0);var z=0,ee=!1,I=ce,B;for(B=0;B<32&&z<=j&&!ee;B++){var k=l[I];if(k!==208){k>208&&(k-=256),k++;var y=k+Z,U=-1;if(B<8||!a)c>=k&&c<y&&(U=c);else{var X=c&((this.registers[4]&3)<<6|63);X>=k&&X<y?U=X:c>=64&&c<128&&c>=k&&c<y&&(U=c)}if(U!==-1){if(z<j){var te=l[I+1],me=l[I+2]&($?252:255),ge=l[I+3]&15;(l[I+3]&128)!==0&&(te-=32);for(var pe=U-k>>H,Me=de+(me<<3)+pe,E=0;E<Z;E++){var O=te+E;if(O>=0&&O<n){var re=E>>H,Te=l[Me+(re>=8?16:0)];(Te&128>>(re&7))!==0&&(W[O]===0?W[O]=ge+1:N=!0)}}}z++}I+=4}else ee=!0}z>4&&(Q=!0,Y=B)}var _=h?(c>>3)*40:c>>3<<5,x=c&7;for(R=0;R<r;R++){if(R>=o&&R<o+n){var g=R-o;switch(i){case 0:T=l[v+_+(g>>3)],F=l[V+(T>>3)],m=l[P+(T<<3)+x],f=(m&128>>(g&7))!==0?(F&240)>>4:F&15;break;case 2:T=l[v+_+(g>>3)],C=((c&192)<<5)+(T<<3),F=l[V+(C&G)+x],m=l[P+(C&S)+x],f=(m&128>>(g&7))!==0?(F&240)>>4:F&15;break;case 3:T=l[v+_+(g>>3)],x=(c&28)>>2,m=l[P+(T<<3)+x],f=(g&4)===0?(m&240)>>4:m&15;break;case 1:T=l[v+_+Math.floor(g/6)],m=l[P+(T<<3)+x],f=(m&128>>g%6)!==0?p:M;break;case 5:T=l[v+_+Math.floor(g/6)],C=((c&192)<<5)+(T<<3),m=l[P+(C&S)+x],f=(m&128>>g%6)!==0?p:M;break;case 6:T=l[v+_+(g>>3)],x=(c&28)>>2,C=((c&192)<<5)+(T<<3),m=l[P+(C&S)+x],f=(g&4)===0?(m&240)>>4:m&15;break;case 7:f=(g&4)===0?p:M;break}if(f===0&&(f=M),!h){var se=W[g]-1;se>0&&(f=se)}}else f=M;D=J[f],e[s++]=D}}else for(D=J[M],R=0;R<r;R++)e[s++]=D;t===d+b&&(this.statusRegister|=128,this.interruptsOn&&this.cru.setVDPInterrupt(!0)),N&&(this.statusRegister|=32),(this.statusRegister&64)===0&&(this.statusRegister|=Y),Q&&(this.statusRegister|=64)}setReadAddress(t){this.addressRegister=(t&63)<<8|this.addressRegister&255,this.prefetchByte=this.ram[this.addressRegister++],this.addressRegister&=16383}setWriteAddress(t){this.addressRegister=(t&63)<<8|this.addressRegister&255}setVDPWriteRegister(t){var e=this.registers.length-1;switch(this.registers[t&e]=this.addressRegister&255,t&e){case 0:this.updateMode(this.registers[0],this.registers[1]);break;case 1:this.ramMask=(this.registers[1]&128)!==0?16383:8191,this.displayOn=(this.registers[1]&64)!==0,this.interruptsOn=(this.registers[1]&32)!==0,this.updateMode(this.registers[0],this.registers[1]);break;case 2:this.nameTable=(this.registers[2]&15)<<10;break;case 3:this.bitmapMode?this.colorTable=(this.registers[3]&128)<<6:this.colorTable=this.registers[3]<<6,this.updateTableMasks();break;case 4:this.bitmapMode?this.charPatternTable=(this.registers[4]&4)<<11:this.charPatternTable=(this.registers[4]&7)<<11,this.updateTableMasks();break;case 5:this.spriteAttributeTable=(this.registers[5]&127)<<7;break;case 6:this.spritePatternTable=(this.registers[6]&7)<<11;break;case 7:this.fgColor=(this.registers[7]&240)>>4,this.bgColor=this.registers[7]&15;break}}setVDPWriteCommand3(t){this.setVDPWriteRegister(t)}writeAddress(t){if(!this.latch)this.addressRegister=this.addressRegister&65280|t;else{switch((t&192)>>6){case 0:this.setReadAddress(t);break;case 1:this.setWriteAddress(t);break;case 2:this.setVDPWriteRegister(t);break;case 3:this.setVDPWriteCommand3(t);break}this.redrawRequired=!0}this.latch=!this.latch}updateMode(t,e){if(this.bitmapMode=(t&2)!==0,this.textMode=(e&16)!==0,this.bitmapMode)switch((e&24)>>3){case 0:this.screenMode=2;break;case 1:this.screenMode=6;break;case 2:this.screenMode=5;break;case 3:this.screenMode=7;break}else switch((e&24)>>3){case 0:this.screenMode=0;break;cLine truncated
import{c as ie,n as he,s as ne,v as oe}from"./chunk-4YTESWOC.js";import{a as A,ca as ae,g as w,u}from"./chunk-VZWSP3EG.js";var L=class{constructor(t,e,r){this.probe=new ne;this.ram=new Uint8Array(16384);this.registers=new Uint8Array(8);this.spriteBuffer=new Uint8Array(256);this.displayOn=!1;this.interruptsOn=!1;this.fb32=t,this.cru=e,this.enableFlicker=r,this.palette=[u(0,0,0),u(0,0,0),u(33,200,66),u(94,220,120),u(84,85,237),u(125,118,252),u(212,82,77),u(66,235,245),u(252,85,84),u(255,121,120),u(212,193,84),u(230,206,128),u(33,176,59),u(201,91,186),u(204,204,204),u(255,255,255)]}reset(){var t;this.ram.fill(0),this.registers.fill(0),this.addressRegister=0,this.statusRegister=0,this.prefetchByte=0,this.latch=!1,this.displayOn=!1,this.interruptsOn=!1,this.screenMode=0,this.bitmapMode=!1,this.textMode=!1,this.colorTable=0,this.nameTable=0,this.charPatternTable=0,this.spriteAttributeTable=0,this.spritePatternTable=0,this.colorTableMask=16383,this.patternTableMask=16383,this.ramMask=16383,this.fgColor=0,this.bgColor=0,this.flicker=this.enableFlicker,this.redrawRequired=!0,this.width=304,this.height=240}drawScanline(t){var e=this.fb32,r=this.width,s=t*r,i=this.screenMode,h=this.textMode,a=this.bitmapMode,n=h?240:256,b=192,o=r-n>>1,d=this.height-b>>1,p=this.fgColor,M=this.bgColor,l=this.ram,v=this.nameTable,V=this.colorTable,P=this.charPatternTable,G=this.colorTableMask,S=this.patternTableMask,ce=this.spriteAttributeTable,de=this.spritePatternTable,$=(this.registers[1]&2)!==0,H=this.registers[1]&1,Z=($?16:8)<<(H?1:0),j=this.flicker?4:32,J=this.palette,N=!1,Q=!1,Y=31,R,f,D,T,C,F,m;if(t>=d&&t<d+b&&this.displayOn){var c=t-d;if(!h){var W=this.spriteBuffer;W.fill(0);var z=0,ee=!1,I=ce,B;for(B=0;B<32&&z<=j&&!ee;B++){var k=l[I];if(k!==208){k>208&&(k-=256),k++;var y=k+Z,U=-1;if(B<8||!a)c>=k&&c<y&&(U=c);else{var X=c&((this.registers[4]&3)<<6|63);X>=k&&X<y?U=X:c>=64&&c<128&&c>=k&&c<y&&(U=c)}if(U!==-1){if(z<j){var te=l[I+1],me=l[I+2]&($?252:255),ge=l[I+3]&15;(l[I+3]&128)!==0&&(te-=32);for(var pe=U-k>>H,Me=de+(me<<3)+pe,E=0;E<Z;E++){var O=te+E;if(O>=0&&O<n){var re=E>>H,Te=l[Me+(re>=8?16:0)];(Te&128>>(re&7))!==0&&(W[O]===0?W[O]=ge+1:N=!0)}}}z++}I+=4}else ee=!0}z>4&&(Q=!0,Y=B)}var _=h?(c>>3)*40:c>>3<<5,x=c&7;for(R=0;R<r;R++){if(R>=o&&R<o+n){var g=R-o;switch(i){case 0:T=l[v+_+(g>>3)],F=l[V+(T>>3)],m=l[P+(T<<3)+x],f=(m&128>>(g&7))!==0?(F&240)>>4:F&15;break;case 2:T=l[v+_+(g>>3)],C=((c&192)<<5)+(T<<3),F=l[V+(C&G)+x],m=l[P+(C&S)+x],f=(m&128>>(g&7))!==0?(F&240)>>4:F&15;break;case 3:T=l[v+_+(g>>3)],x=(c&28)>>2,m=l[P+(T<<3)+x],f=(g&4)===0?(m&240)>>4:m&15;break;case 1:T=l[v+_+Math.floor(g/6)],m=l[P+(T<<3)+x],f=(m&128>>g%6)!==0?p:M;break;case 5:T=l[v+_+Math.floor(g/6)],C=((c&192)<<5)+(T<<3),m=l[P+(C&S)+x],f=(m&128>>g%6)!==0?p:M;break;case 6:T=l[v+_+(g>>3)],x=(c&28)>>2,C=((c&192)<<5)+(T<<3),m=l[P+(C&S)+x],f=(g&4)===0?(m&240)>>4:m&15;break;case 7:f=(g&4)===0?p:M;break}if(f===0&&(f=M),!h){var se=W[g]-1;se>0&&(f=se)}}else f=M;D=J[f],e[s++]=D}}else for(D=J[M],R=0;R<r;R++)e[s++]=D;t===d+b&&(this.statusRegister|=128,this.interruptsOn&&this.cru.setVDPInterrupt(!0)),N&&(this.statusRegister|=32),(this.statusRegister&64)===0&&(this.statusRegister|=Y),Q&&(this.statusRegister|=64)}setReadAddress(t){this.addressRegister=(t&63)<<8|this.addressRegister&255,this.prefetchByte=this.ram[this.addressRegister++],this.addressRegister&=16383}setWriteAddress(t){this.addressRegister=(t&63)<<8|this.addressRegister&255}setVDPWriteRegister(t){var e=this.registers.length-1;switch(this.registers[t&e]=this.addressRegister&255,t&e){case 0:this.updateMode(this.registers[0],this.registers[1]);break;case 1:this.ramMask=(this.registers[1]&128)!==0?16383:8191,this.displayOn=(this.registers[1]&64)!==0,this.interruptsOn=(this.registers[1]&32)!==0,this.updateMode(this.registers[0],this.registers[1]);break;case 2:this.nameTable=(this.registers[2]&15)<<10;break;case 3:this.bitmapMode?this.colorTable=(this.registers[3]&128)<<6:this.colorTable=this.registers[3]<<6,this.updateTableMasks();break;case 4:this.bitmapMode?this.charPatternTable=(this.registers[4]&4)<<11:this.charPatternTable=(this.registers[4]&7)<<11,this.updateTableMasks();break;case 5:this.spriteAttributeTable=(this.registers[5]&127)<<7;break;case 6:this.spritePatternTable=(this.registers[6]&7)<<11;break;case 7:this.fgColor=(this.registers[7]&240)>>4,this.bgColor=this.registers[7]&15;break}}setVDPWriteCommand3(t){this.setVDPWriteRegister(t)}writeAddress(t){if(!this.latch)this.addressRegister=this.addressRegister&65280|t;else{switch((t&192)>>6){case 0:this.setReadAddress(t);break;case 1:this.setWriteAddress(t);break;case 2:this.setVDPWriteRegister(t);break;case 3:this.setVDPWriteCommand3(t);break}this.redrawRequired=!0}this.latch=!this.latch}updateMode(t,e){if(this.bitmapMode=(t&2)!==0,this.textMode=(e&16)!==0,this.bitmapMode)switch((e&24)>>3){case 0:this.screenMode=2;break;case 1:this.screenMode=6;break;case 2:this.screenMode=5;break;case 3:this.screenMode=7;break}else switch((e&24)>>3){case 0:this.screenMode=0;break;cLine truncated
`;var s=this.getDebugTables();for(var i of s)i[2]>0&&(e+=A(i[0],20)+": $"+w(i[1],4)+" - $"+w(i[1]+i[2]-1,4)+`
`);return e+=A("Address Register",20)+": $"+w(this.addressRegister,4)+`
@@ -8,4 +8,4 @@ import{c as ie,l as he,q as ne,t as oe}from"./chunk-FFJHITEL.js";import{a as A,c
`,this.ramMask!=16383&&(e+=A("RAM Mask",20)+": $"+w(this.ramMask)+`
`),e}hexView(t,e,r){for(var s="",i=null,h=t,a=0,n=0;n<e&&h<16384;h++,n++){(n&15)===0&&(s+=`
`+w(h,4)+":",a++),s+=" ",r&&r===h&&(i=a);var b=this.ram[h].toString(16).toUpperCase();b.length===1&&(s+="0"),s+=b}return{text:s.substr(1),lineCount:a,anchorLine:i-1}}getWord(t){return t<16384?this.ram[t]<<8|this.ram[t+1]:0}getCharAt(t,e){return t-=24,e-=24,this.textMode?this.ram[this.nameTable+Math.floor((t-8)/6)+Math.floor(e/8)*40]:this.ram[this.nameTable+Math.floor(t/8)+Math.floor(e/8)*32]}setFlicker(t){this.flicker=t,this.enableFlicker=t}getState(){return{ram:this.ram.slice(0),registers:this.registers.slice(0),addressRegister:this.addressRegister,statusRegister:this.statusRegister,latch:this.latch,prefetchByte:this.prefetchByte,displayOn:this.displayOn,interruptsOn:this.interruptsOn,screenMode:this.screenMode,bitmapMode:this.bitmapMode,textMode:this.textMode,colorTable:this.colorTable,nameTable:this.nameTable,charPatternTable:this.charPatternTable,spriteAttributeTable:this.spriteAttributeTable,spritePatternTable:this.spritePatternTable,colorTableMask:this.colorTableMask,patternTableMask:this.patternTableMask,ramMask:this.ramMask,fgColor:this.fgColor,bgColor:this.bgColor,flicker:this.flicker}}restoreState(t){this.ram.set(t.ram),this.registers.set(t.registers),this.addressRegister=t.addressRegister,this.statusRegister=t.statusRegister,this.latch=t.latch,this.prefetchByte=t.prefetchByte,this.displayOn=t.displayOn,this.interruptsOn=t.interruptsOn,this.screenMode=t.screenMode,this.bitmapMode=t.bitmapMode,this.textMode=t.textMode,this.colorTable=t.colorTable,this.nameTable=t.nameTable,this.charPatternTable=t.charPatternTable,this.spriteAttributeTable=t.spriteAttributeTable,this.spritePatternTable=t.spritePatternTable,this.colorTableMask=t.colorTableMask,this.patternTableMask=t.patternTableMask,this.ramMask=t.ramMask,this.fgColor=t.fgColor,this.bgColor=t.bgColor,this.flicker=t.flicker,this.redrawRequired=!0}},K=class extends L{constructor(){super(...arguments);this.cram=new Uint8Array(32);this.cpalette=new Uint32Array(32);this.registers=new Uint8Array(16);this.vramUntwiddled=new Uint8Array(32768);this.numVisibleLines=192;this.lineCounter=0;this.lineInterruptPending=!1}reset(){super.reset(),this.writeToCRAM=!1,this.cram.fill(0),this.cpalette.fill(0),this.vramUntwiddled.fill(0)}readStatus(){return this.lineInterruptPending=!1,super.readStatus()}updateMode(e,r){e&4?(this.screenMode=4,this.nameTable=(this.registers[2]&15)<<10&14336,this.spriteAttributeTable=(this.registers[5]&126)<<7):super.updateMode(e,r)}setReadAddress(e){super.setReadAddress(e),this.writeToCRAM=!1}setWriteAddress(e){super.setWriteAddress(e),this.writeToCRAM=!1}setVDPWriteRegister(e){super.setVDPWriteRegister(e),this.ramMask=16383}setVDPWriteCommand3(e){this.writeToCRAM=!0}writeData(e){if(this.writeToCRAM){var r=this.addressRegister++&this.cram.length-1;this.cram[r]=e,this.cpalette[r]=u((e&3)*85,(e>>2&3)*85,(e>>4&3)*85),this.prefetchByte=e,this.addressRegister&=this.ramMask,this.redrawRequired=!0}else{var s=this.addressRegister;super.writeData(e),this.writeTwiddled(s,e)}this.latch=!1}writeTwiddled(e,r){for(var s=e&16380,i=s*2,h=this.ram[s],a=this.ram[s+1],n=this.ram[s+2],b=this.ram[s+3],o=0;o<8;++o){var d=7-o,p=h>>>d&1|(a>>>d&1)<<1|(n>>>d&1)<<2|(b>>>d&1)<<3;this.vramUntwiddled[i+o]=p}}getState(){var e=super.getState();return e.cram=this.cram.slice(0),e}restoreState(e){super.restoreState(e),this.cram.set(e.cram)}drawScanline(e){this.screenMode==4?this.rasterize_line(e):super.drawScanline(e)}findSprites(e){var r=this.spriteAttributeTable,s=[],i=8,h;for(this.registers[1]&2&&(i=16),h=0;h<64;h++){var a=this.ram[r+h];if(a===208)break;if(a>=240&&(a-=256),e>=a&&e<a+i){if(s.length===8){this.statusRegister|=64;break}s.push([this.ram[r+128+h*2],this.ram[r+128+h*2+1],a])}}return s}rasterize_background(e,r,s,i,h){e=e|0,r=r|0,s=s|0,i=(i|0)*2;var a,n;s&512?(n=-1,i+=7):n=1;let b=s&2048?16:0;var o;if(h&&b===0)for(a=0;a<8;a++)o=this.vramUntwiddled[i],i+=n,o!==0&&(this.fb32[e+r]=this.cpalette[o]),r=r+1&255;else for(a=0;a<8;a++)o=this.vramUntwiddled[i]+b,i+=n,this.fb32[e+r]=this.cpalette[o],r=r+1&255}clear_background(e,r){e=e|0,r=r|0;var s;let i=this.cpalette[0];for(s=0;s<8;++s)this.fb32[e+r]=i,r=r+1&255}rasterize_background_line(e,r,s,i){e=e|0,r=r|0,s=s|0;let h=(i|0)*4;for(var a=0;a<32;a++){var n=this.ram[s+a*2]|this.ram[s+a*2+1]<<8,b=n&511,o=32*b;n&1024?o+=28-h:o+=h,(n&4096)===0?this.rasterize_background(e,r,n,o,!1):this.clear_background(e,r),r=r+8&255}}rasterize_foreground_line(e,r,s,i){e=e|0,r=r|0,s=s|0;let h=(i|0)*4;for(var a=0;a<32;a++){var n=this.ram[s+a*2]|this.ram[s+a*2+1]<<8;if((n&4096)!==0){var b=n&511,o=32*b;n&1024?o+=28-h:o+=h,this.rasterize_background(e,a*8+r&255,n,o,!0)}}}rasterize_sprites(e,r,s,i){r=r|0,s=s|0;let h=this.registers[6]&4?8192:0;for(var a=0;a<256;++a){for(var n=a,b=!1,o=!1,d=256,p=0;p<i.length;p++){var M=i[p],l=n-M[0];if(l<0){var v=-l;v<d&&(d=v);continue}if(!(l>=8)){b=!0;var V=e-M[2],P=h+M[1]*32+V*4,G=P*2+l,S=this.vramUntwiddled[G];if(S!==0){if(o){this.statusRegister|=32;break}this.fb32[r+(s+a-this.registers[8]&255)]=this.cpalette[16+S] Line truncated
//# sourceMappingURL=chunk-Q6XQLGXR.js.map
//# sourceMappingURL=chunk-PKBI5W34.js.map
File renamed without changes.
@@ -1,4 +1,4 @@
import{c as h}from"./chunk-Q6XQLGXR.js";import{b as m}from"./chunk-UNDRK5PG.js";import{J as M,d as D,f as E}from"./chunk-FFJHITEL.js";import{b as n}from"./chunk-UXRCACYH.js";import{P as r,ba as e,ea as f,ha as g,l as a,m as c}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var x=f([[e.UP,0,1],[e.DOWN,0,4],[e.LEFT,0,8],[e.RIGHT,0,2],[e.A,0,64],[e.B,1,64],[e.GP_A,0,64],[e.GP_B,1,64],[e.P2_UP,2,1],[e.P2_DOWN,2,4],[e.P2_LEFT,2,8],[e.P2_RIGHT,2,2],[e.P2_A,2,64],[e.P2_B,3,64]]),t=class extends h{constructor(){super();this.defaultROMSize=32768;this.ram=new Uint8Array(1024);this.read=g([[0,8191,8191,A=>this.bios?this.bios[A]:0],[24576,32767,1023,A=>this.ram[A]],[32768,65535,32767,A=>this.rom?this.rom[A]:0]]);this.write=g([[24576,32767,1023,(A,B)=>{this.ram[A]=B}]]);this.init(this,this.newIOBus(),new E(new D)),this.bios=new a().decode(c(atob(I)))}getKeyboardMap(){return x}vdpInterrupt(){this.probe.logInterrupt(0),this.cpu.NMI()}newIOBus(){return{read:A=>{switch(A&=255,A){case 252:return this.inputs[this.keypadMode?1:0]^255;case 255:return this.inputs[this.keypadMode?3:2]^255}return A>=160&&A<=191?A&1?this.vdp.readStatus():this.vdp.readData():0},write:(A,B)=>{switch(A&=255,B&=255,A>>4){case 8:case 9:this.keypadMode=!0;break;case 12:case 13:this.keypadMode=!1;break;case 10:case 11:return A&1?this.vdp.writeAddress(B):this.vdp.writeData(B);case 15:this.psg.setData(B);break}}}}loadState(A){super.loadState(A),this.keypadMode=A.kpm}saveState(){var A=super.saveState();return A.kpm=this.keypadMode,A}reset(){super.reset(),this.keypadMode=!1}},I=`
import{c as h}from"./chunk-PKBI5W34.js";import{b as m}from"./chunk-JELKPLZC.js";import{L as M,d as D,f as E}from"./chunk-4YTESWOC.js";import{b as n}from"./chunk-UXRCACYH.js";import{P as r,ba as e,ea as f,ha as g,l as a,m as c}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var x=f([[e.UP,0,1],[e.DOWN,0,4],[e.LEFT,0,8],[e.RIGHT,0,2],[e.A,0,64],[e.B,1,64],[e.GP_A,0,64],[e.GP_B,1,64],[e.P2_UP,2,1],[e.P2_DOWN,2,4],[e.P2_LEFT,2,8],[e.P2_RIGHT,2,2],[e.P2_A,2,64],[e.P2_B,3,64]]),t=class extends h{constructor(){super();this.defaultROMSize=32768;this.ram=new Uint8Array(1024);this.read=g([[0,8191,8191,A=>this.bios?this.bios[A]:0],[24576,32767,1023,A=>this.ram[A]],[32768,65535,32767,A=>this.rom?this.rom[A]:0]]);this.write=g([[24576,32767,1023,(A,B)=>{this.ram[A]=B}]]);this.init(this,this.newIOBus(),new E(new D)),this.bios=new a().decode(c(atob(I)))}getKeyboardMap(){return x}vdpInterrupt(){this.probe.logInterrupt(0),this.cpu.NMI()}newIOBus(){return{read:A=>{switch(A&=255,A){case 252:return this.inputs[this.keypadMode?1:0]^255;case 255:return this.inputs[this.keypadMode?3:2]^255}return A>=160&&A<=191?A&1?this.vdp.readStatus():this.vdp.readData():0},write:(A,B)=>{switch(A&=255,B&=255,A>>4){case 8:case 9:this.keypadMode=!0;break;case 12:case 13:this.keypadMode=!1;break;case 10:case 11:return A&1?this.vdp.writeAddress(B):this.vdp.writeData(B);case 15:this.psg.setData(B);break}}}}loadState(A){super.loadState(A),this.keypadMode=A.kpm}saveState(){var A=super.saveState();return A.kpm=this.keypadMode,A}reset(){super.reset(),this.keypadMode=!1}},I=`
TFpHAAAgAAAAB7djQcnHAQEDBgcx/3MYawAAAMMMgAehB+EPB+USB+UVB+UYB+UbB+UeB+QHHAZm
IYA8igUCBYIAKgCAff5VIAl8/qogBCoKgOnHAwkfgICAAAMFT6CgB4LgByEH4WDAYMBABlggQIAg
B+HAwOCgYAMGKweBQAYxBphAQEAG+KBABnAGEuAGUAabB+QA4AflBkggIAYyB+FgoKCgwAZdwAY5
@@ -34,4 +34,4 @@ PANDTwNjYHAGWShQAwKHOBA4A8LZA0IIeAaZOEREKChsADBAIBA4BqkoA4KfA0KIVFQDIvg4QANi
FwAGaQNjr3gHIwZYEAAGEEAwCDBABgkHoTAIBlEIFANIAlAgBiAAfAdhAwJ3B0IGfwMDjgPmiAcB
A8SRHAYnBihQAwK9BwFgEAODTQPjNXgDAmgHHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8H
HwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBwM=`;var Q=[{id:"text.c",name:"Text Mode"},{id:"hello.c",name:"Scrolling Text"},{id:"text32.c",name:"32-Column Color Text"},{id:"stars.c",name:"Scrolling Starfield"},{id:"cursorsmooth.c",name:"Moving Cursor"},{id:"simplemusic.c",name:"Simple Music"},{id:"musicplayer.c",name:"Multivoice Music"},{id:"mode2bitmap.c",name:"Mode 2 Bitmap"},{id:"mode2compressed.c",name:"Mode 2 Bitmap (LZG)"},{id:"lines.c",name:"Mode 2 Lines"},{id:"multicolor.c",name:"Multicolor Mode"},{id:"siegegame.c",name:"Siege Game"},{id:"shoot.c",name:"Solarian Game"},{id:"climber.c",name:"Climber Game"}],o=class extends M{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"BIOS",start:0,size:8192,type:"rom"},{name:"Cartridge Header",start:32768,size:256,type:"rom"}]}}}newMachine(){return new t}getPresets(){return Q}readAddress(A){return this.machine.read(A)}readVRAMAddress(A){return this.machine.readVRAMAddress(A)}showHelp(){return"https://8bitworkshop.com/docs/platforms/coleco/"}},i=class extends m{constructor(){super(...arguments);this.getToolForFilename=n}start(){this.startModule(this.mainElement,{jsfile:"mame8bitws.js",cfgfile:"coleco.cfg",biosfile:"coleco/313 10031-4005 73108a.u2",driver:"coleco",width:280*2,height:432,romfn:"/emulator/cart.rom",romsize:32768,preInit:function(A){}})}loadROM(A,B){this.loadROMFile(B),this.loadRegion(":coleco_cart:rom",B)}getPresets(){return Q}getDefaultExtensions(){return[".c",".ns",".s",".scc",".sgb",".z",".wiz"]}};r["coleco.mame"]=i;r.coleco=o;export{Q as ColecoVision_PRESETS};
//# sourceMappingURL=coleco-OJFZRPF2.js.map
//# sourceMappingURL=coleco-NPYYZM2X.js.map
File renamed without changes.
+77 -6
View File
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
exports.TssChannelAdapter = exports.SampledAudio = exports.SampleAudio = exports.AUDIO_CHUNK_SAMPLES = exports.WorkerSoundChannel = exports.POKEYDeviceChannel = exports.SN76489_Audio = exports.AY38910_Audio = exports.MasterAudio = void 0;
exports.newPOKEYAudio = newPOKEYAudio;
exports.setAudioStreamFactory = setAudioStreamFactory;
exports.isAudioBlocked = isAudioBlocked;
exports.onAudioStateChange = onAudioStateChange;
exports.resumeAudioContext = resumeAudioContext;
class MasterAudio {
constructor() {
@@ -350,20 +352,89 @@ exports.AUDIO_CHUNK_SAMPLES = 2048;
// must be called synchronously inside the handler for Safari/iOS to allow it.
// Called on every start(), since stop() suspends the context.
const audioUnlockEvents = ['pointerdown', 'touchend', 'mousedown', 'keydown', 'click'];
const pendingUnlocks = new WeakSet();
const pendingUnlocks = new WeakSet(); // waiting for the first user gesture
const unlockListeners = new WeakSet(); // document gesture handlers installed
// Every AudioContext the IDE starts is registered here so the UI can tell
// whether Web Audio is still waiting for the user gesture that owns the page.
// Browsers keep one suspended until then, and resume() resolves asynchronously,
// so notify listeners on registration, state changes and resume completion.
const audioContexts = new Set();
const audioStateListeners = new Set();
function notifyAudioState() {
for (const listener of Array.from(audioStateListeners))
listener();
}
function markAudioUnlocked(ctx) {
pendingUnlocks.delete(ctx);
notifyAudioState();
}
function trackAudioContext(ctx) {
if (audioContexts.has(ctx))
return;
audioContexts.add(ctx);
if (typeof ctx.addEventListener === 'function') {
ctx.addEventListener('statechange', () => {
if (ctx.state === 'running') {
pendingUnlocks.delete(ctx);
}
else if (ctx.state === 'closed') {
// a closed context can never be resumed, so stop counting it as blocked
audioContexts.delete(ctx);
pendingUnlocks.delete(ctx);
}
notifyAudioState();
});
}
notifyAudioState();
}
/**
* True while an AudioContext is waiting for the user gesture that unlocks
* Web Audio. A context the IDE suspends itself (pause, tab blur) is not blocked;
* it comes back without a gesture.
*/
function isAudioBlocked() {
for (const ctx of audioContexts) {
if (ctx.state !== 'running' && pendingUnlocks.has(ctx))
return true;
}
return false;
}
/** Subscribe to AudioContext creation and state changes. Returns an unsubscribe fn. */
function onAudioStateChange(listener) {
audioStateListeners.add(listener);
return () => { audioStateListeners.delete(listener); };
}
function resumeTrackedContext(ctx) {
const resumed = ctx.resume();
if (resumed && typeof resumed.then === 'function') {
resumed.then(() => {
if (ctx.state === 'running')
markAudioUnlocked(ctx);
else
notifyAudioState();
}, () => { });
}
}
function resumeAudioContext(ctx) {
if (!ctx || ctx.state === 'running')
if (!ctx || ctx.state === 'closed')
return;
ctx.resume().catch(() => { });
if (typeof document === 'undefined' || pendingUnlocks.has(ctx))
trackAudioContext(ctx);
if (ctx.state === 'running') {
pendingUnlocks.delete(ctx);
return;
}
pendingUnlocks.add(ctx);
notifyAudioState(); // show the click hint even if resume() stays suspended
resumeTrackedContext(ctx);
if (typeof document === 'undefined' || unlockListeners.has(ctx))
return;
unlockListeners.add(ctx);
const onGesture = () => {
ctx.resume().catch(() => { });
resumeTrackedContext(ctx);
if (ctx.state === 'running') {
for (const ev of audioUnlockEvents)
document.removeEventListener(ev, onGesture, true);
pendingUnlocks.delete(ctx);
unlockListeners.delete(ctx);
}
};
for (const ev of audioUnlockEvents)
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/common/audio.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/common/audio.ts"],"names":[],"mappings":"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 truncated
+2 -2
View File
@@ -1,2 +1,2 @@
import{J as d,u as p}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{P as n}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var m=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],o=class extends p{constructor(){super(...arguments);this.numTotalScanlines=312;this.cpuCyclesPerLine=224;this.joymask0=0;this.runaddr=16384}loadROM(t){let s=new Uint8Array(t.length+m.length);s.set(m,0),s[24]=t.length&255,s[25]=t.length>>8,s[26]=this.runaddr&255,s[27]=this.runaddr>>8,s.set(t,m.length),super.loadROM(s)}reset(){if(super.reset(),this.exports.machine_exec(this.sys,1e6),this.romptr&&this.romlen){this.exports.machine_load_rom(this.sys,this.romptr,this.romlen);for(var t=0;t<1e5&&this.getPC()!=this.runaddr;t++)this.exports.machine_tick(this.sys)}}advanceFrame(t){var s=this.getRasterY(),r=Math.floor((this.numTotalScanlines-s)*(4e6/50)/this.numTotalScanlines),e=this.probe!=null;return e&&this.exports.machine_reset_probe_buffer(),r=super.advanceFrameClock(t,r),e&&this.copyProbeData(),r}getRasterY(){return this.exports.machine_get_raster_line(this.sys)}getRasterCanvasPosition(){return{x:-1,y:this.getRasterY()-14}}getCPUState(){this.exports.machine_save_cpu_state(this.sys,this.cpustateptr);var t=this.cpustatearr,s=t[9]+(t[8]<<8),r=t[10]+(t[11]<<8),e=t[12]+(t[13]<<8),a=t[14]+(t[15]<<8),x=t[24]+(t[25]<<8),f=t[26]+(t[27]<<8),u=t[28]+(t[29]<<8),h=t[34]+(t[35]<<8),_=t[36]+(t[37]<<8);return{PC:h,SP:x,AF:s,BC:a,DE:e,HL:r,IX:u,IY:f,IR:_,o:this.readConst(h)}}saveState(){return this.exports.machine_save_state(this.sys,this.stateptr),{c:this.getCPUState(),state:this.statearr.slice(0),joymask0:this.joymask0}}loadState(t){this.statearr.set(t.state),this.exports.machine_load_state(this.sys,this.stateptr),this.joymask0=t.joymask0|0}getVideoParams(){return{width:768,height:272,overscan:!0,videoFrequency:50,aspect:1.3}}setKeyInput(t,s,r){if(!(t==16||t==17||t==18||t==224)){var e=0,a=0;t==37&&(t=8,e=4),t==38&&(t=11,e=1),t==39&&(t=9,e=8),t==40&&(t=10,e=2),t==32&&(e=16),t==65&&(t=65,a=4),t==87&&(t=87,a=1),t==68&&(t=68,a=8),t==83&&(t=83,a=2),t==69&&(a=16),t==113&&(t=241),t==115&&(t=243),t==119&&(t=245),t==121&&(t=247),r&1?(this.exports.machine_key_down(this.sys,t),this.joymask0|=e):r&64&&(this.exports.machine_key_up(this.sys,t),this.joymask0&=~e)}}};var g=[{id:"easy_stdio_boxes.c",name:"Standard I/O",category:"C"},{id:"easy_mode_strings.c",name:"Video Modes"},{id:"easy_random.c",name:"Random Numbers"},{id:"easy_sprites.c",name:"Keyboard + Sprites"},{id:"medium_scrolling.c",name:"Scrolling Text"},{id:"siegegame.c",name:"Siege Game"},{id:"music.c",name:"Music Player"},{id:"hello.asm",name:"Hello World",category:"Assembly"}],v={main:[{name:"BIOS",start:0,size:16384,type:"rom"},{name:"Screen RAM",start:49152,size:16384,type:"ram"}]},i=class extends d{newMachine(){return new o("cpc")}getPresets(){return g}readAddress(c){return this.machine.readConst(c)}getMemoryMap(){return v}showHelp(){return"https://8bitworkshop.com/docs/platforms/cpc/"}};n["cpc.6128"]=i;n["cpc.464"]=i;n["cpc.kcc"]=i;
//# sourceMappingURL=cpc-PND5VPIB.js.map
import{L as d,w as p}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{P as n}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var m=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],o=class extends p{constructor(){super(...arguments);this.numTotalScanlines=312;this.cpuCyclesPerLine=224;this.joymask0=0;this.runaddr=16384}loadROM(t){let s=new Uint8Array(t.length+m.length);s.set(m,0),s[24]=t.length&255,s[25]=t.length>>8,s[26]=this.runaddr&255,s[27]=this.runaddr>>8,s.set(t,m.length),super.loadROM(s)}reset(){if(super.reset(),this.exports.machine_exec(this.sys,1e6),this.romptr&&this.romlen){this.exports.machine_load_rom(this.sys,this.romptr,this.romlen);for(var t=0;t<1e5&&this.getPC()!=this.runaddr;t++)this.exports.machine_tick(this.sys)}}advanceFrame(t){var s=this.getRasterY(),r=Math.floor((this.numTotalScanlines-s)*(4e6/50)/this.numTotalScanlines),e=this.probe!=null;return e&&this.exports.machine_reset_probe_buffer(),r=super.advanceFrameClock(t,r),e&&this.copyProbeData(),r}getRasterY(){return this.exports.machine_get_raster_line(this.sys)}getRasterCanvasPosition(){return{x:-1,y:this.getRasterY()-14}}getCPUState(){this.exports.machine_save_cpu_state(this.sys,this.cpustateptr);var t=this.cpustatearr,s=t[9]+(t[8]<<8),r=t[10]+(t[11]<<8),e=t[12]+(t[13]<<8),a=t[14]+(t[15]<<8),x=t[24]+(t[25]<<8),f=t[26]+(t[27]<<8),u=t[28]+(t[29]<<8),h=t[34]+(t[35]<<8),_=t[36]+(t[37]<<8);return{PC:h,SP:x,AF:s,BC:a,DE:e,HL:r,IX:u,IY:f,IR:_,o:this.readConst(h)}}saveState(){return this.exports.machine_save_state(this.sys,this.stateptr),{c:this.getCPUState(),state:this.statearr.slice(0),joymask0:this.joymask0}}loadState(t){this.statearr.set(t.state),this.exports.machine_load_state(this.sys,this.stateptr),this.joymask0=t.joymask0|0}getVideoParams(){return{width:768,height:272,overscan:!0,videoFrequency:50,aspect:1.3}}setKeyInput(t,s,r){if(!(t==16||t==17||t==18||t==224)){var e=0,a=0;t==37&&(t=8,e=4),t==38&&(t=11,e=1),t==39&&(t=9,e=8),t==40&&(t=10,e=2),t==32&&(e=16),t==65&&(t=65,a=4),t==87&&(t=87,a=1),t==68&&(t=68,a=8),t==83&&(t=83,a=2),t==69&&(a=16),t==113&&(t=241),t==115&&(t=243),t==119&&(t=245),t==121&&(t=247),r&1?(this.exports.machine_key_down(this.sys,t),this.joymask0|=e):r&64&&(this.exports.machine_key_up(this.sys,t),this.joymask0&=~e)}}};var g=[{id:"easy_stdio_boxes.c",name:"Standard I/O",category:"C"},{id:"easy_mode_strings.c",name:"Video Modes"},{id:"easy_random.c",name:"Random Numbers"},{id:"easy_sprites.c",name:"Keyboard + Sprites"},{id:"medium_scrolling.c",name:"Scrolling Text"},{id:"siegegame.c",name:"Siege Game"},{id:"music.c",name:"Music Player"},{id:"hello.asm",name:"Hello World",category:"Assembly"}],v={main:[{name:"BIOS",start:0,size:16384,type:"rom"},{name:"Screen RAM",start:49152,size:16384,type:"ram"}]},i=class extends d{newMachine(){return new o("cpc")}getPresets(){return g}readAddress(c){return this.machine.readConst(c)}getMemoryMap(){return v}showHelp(){return"https://8bitworkshop.com/docs/platforms/cpc/"}};n["cpc.6128"]=i;n["cpc.464"]=i;n["cpc.kcc"]=i;
//# sourceMappingURL=cpc-BDRGBH6L.js.map
File renamed without changes.
@@ -1,2 +1,2 @@
import{I as y,n as m,r as v}from"./chunk-FFJHITEL.js";import{a as x}from"./chunk-3FIVEUG2.js";import"./chunk-UXRCACYH.js";import{D as f,P as c,_ as p,ha as n,n as a}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var l=31,s=class extends v{constructor(){super();this.cpuFrequency=1e6;this.defaultROMSize=32768;this.cpu=new m;this.ram=new Uint8Array(16384);this.read=n([[0,16383,16383,e=>this.ram[e]],[16384,16384,65535,e=>this.serial.byteAvailable()?128:0],[16385,16385,65535,e=>this.serial.recvByte()],[16386,16386,65535,e=>this.serial.clearToSend()?128:0],[32768,65535,32767,e=>this.rom&&this.rom[e]]]);this.write=n([[0,16383,16383,(e,r)=>{this.ram[e]=r}],[16387,16387,65535,(e,r)=>this.serial.sendByte(r)],[16399,16399,65535,(e,r)=>{this.inputs[l]=1}]]);this.connectCPUMemoryBus(this)}connectSerialIO(e){this.serial=e}readConst(e){return this.read(e)}advanceFrame(e){for(var r=0;r<this.cpuFrequency/60&&!(e&&e());)r+=this.advanceCPU();return r}advanceCPU(){if(this.isHalted())return 1;var e=super.advanceCPU();return this.serial&&this.serial.advance(e),e}reset(){this.inputs[l]=0,super.reset(),this.serial&&this.serial.reset()}isHalted(){return this.inputs[l]!=0}};var w=[{id:"hello.dasm",name:"Hello World (ASM)"},{id:"hello-sdcc.c",name:"Hello World (SDCC C)"}],o=class{constructor(){this.tty={addtext(){},newline(){},clear(){},saveState(){return{}},loadState(){}}}start(){}reset(){}saveState(){return{}}loadState(){}},u=class{constructor(t){t.style.overflowY="auto";var e=$('<div id="gameport"/>').appendTo(t);$('<p class="transcript-header">Serial Output</p>').appendTo(e);var r=$('<div id="windowport" class="transcript"/>').appendTo(e);this.div=r[0]}start(){this.tty=new x(this.div,!1)}reset(){this.tty.clear()}saveState(){return this.tty.saveState()}loadState(t){this.tty.loadState(t)}};function S(i){return i==10?"":i<32?String.fromCharCode(i+9216):String.fromCharCode(i)}var d=class{constructor(){this.bufferedRead=!0;this.cyclesPerByte=1e6/(57600/8);this.maxOutputBytes=4096}clearToSend(){return this.outputBytes.length<this.maxOutputBytes}sendByte(t){this.clearToSend()&&(this.outputBytes.push(t),this.viewer.tty.addtext(S(t),34),t==10&&this.viewer.tty.newline(),this.clearToSend()||(this.viewer.tty.newline(),this.viewer.tty.addtext("\u26A0\uFE0F OUTPUT BUFFER FULL \u26A0\uFE0F",4)))}byteAvailable(){return this.readIndex()>this.inputIndex}recvByte(){var t=this.readIndex();this.inputIndex=t;var e=(this.inputBytes&&this.inputBytes[t])|0;return this.viewer.tty.addtext(S(e),18),e==10&&this.viewer.tty.newline(),e}readIndex(){return this.bufferedRead?this.inputIndex+1:Math.floor(this.clk/this.cyclesPerByte)}reset(){this.inputIndex=-1,this.clk=0,this.outputBytes=[],this.bufin=""}advance(t){this.clk+=t}saveState(){return{clk:this.clk,idx:this.inputIndex,out:this.outputBytes.slice()}}loadState(t){this.clk=t.clk,this.inputIndex=t.idx,this.outputBytes=t.out.slice()}},h=class extends y{constructor(e){super(e);this.getMemoryMap=function(){return{main:[{name:"RAM",start:0,size:16384,type:"ram"},{name:"ROM",start:32768,size:32768,type:"rom"}]}};this.serview=e?new u(e):new o}async start(){super.start(),this.serial=new d,this.serial.viewer=this.serview,this.serview.start(),this.machine.connectSerialIO(this.serial)}reset(){this.serial.inputBytes=f(this.internalFiles["serialin.dat"]),super.reset(),this.serview.reset()}isBlocked(){return this.machine.isHalted()}advance(e){return this.isBlocked()?(this.internalFiles["serialout.dat"]=a(this.serial.outputBytes),p(),0):super.advance(e)}saveState(){var e=super.saveState();return e.serial=this.serial.saveState(),e.serview=this.serview.saveState(),e}loadState(e){super.loadState(e),this.serial.loadState(e.serial),this.serview.loadState(e.serview)}getSerialOutput(){return a(this.serial.outputBytes)}newMachine(){return new s}getPresets(){return w}readAddress(e){return this.machine.readConst(e)}};c["devel-6502"]=h;export{d as SerialTestHarness};
//# sourceMappingURL=devel-NF5PPKHA.js.map
import{K as y,p as m,t as v}from"./chunk-4YTESWOC.js";import{a as x}from"./chunk-3FIVEUG2.js";import"./chunk-UXRCACYH.js";import{D as f,P as c,_ as p,ha as n,n as a}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var l=31,s=class extends v{constructor(){super();this.cpuFrequency=1e6;this.defaultROMSize=32768;this.cpu=new m;this.ram=new Uint8Array(16384);this.read=n([[0,16383,16383,e=>this.ram[e]],[16384,16384,65535,e=>this.serial.byteAvailable()?128:0],[16385,16385,65535,e=>this.serial.recvByte()],[16386,16386,65535,e=>this.serial.clearToSend()?128:0],[32768,65535,32767,e=>this.rom&&this.rom[e]]]);this.write=n([[0,16383,16383,(e,r)=>{this.ram[e]=r}],[16387,16387,65535,(e,r)=>this.serial.sendByte(r)],[16399,16399,65535,(e,r)=>{this.inputs[l]=1}]]);this.connectCPUMemoryBus(this)}connectSerialIO(e){this.serial=e}readConst(e){return this.read(e)}advanceFrame(e){for(var r=0;r<this.cpuFrequency/60&&!(e&&e());)r+=this.advanceCPU();return r}advanceCPU(){if(this.isHalted())return 1;var e=super.advanceCPU();return this.serial&&this.serial.advance(e),e}reset(){this.inputs[l]=0,super.reset(),this.serial&&this.serial.reset()}isHalted(){return this.inputs[l]!=0}};var w=[{id:"hello.dasm",name:"Hello World (ASM)"},{id:"hello-sdcc.c",name:"Hello World (SDCC C)"}],o=class{constructor(){this.tty={addtext(){},newline(){},clear(){},saveState(){return{}},loadState(){}}}start(){}reset(){}saveState(){return{}}loadState(){}},u=class{constructor(t){t.style.overflowY="auto";var e=$('<div id="gameport"/>').appendTo(t);$('<p class="transcript-header">Serial Output</p>').appendTo(e);var r=$('<div id="windowport" class="transcript"/>').appendTo(e);this.div=r[0]}start(){this.tty=new x(this.div,!1)}reset(){this.tty.clear()}saveState(){return this.tty.saveState()}loadState(t){this.tty.loadState(t)}};function S(i){return i==10?"":i<32?String.fromCharCode(i+9216):String.fromCharCode(i)}var d=class{constructor(){this.bufferedRead=!0;this.cyclesPerByte=1e6/(57600/8);this.maxOutputBytes=4096}clearToSend(){return this.outputBytes.length<this.maxOutputBytes}sendByte(t){this.clearToSend()&&(this.outputBytes.push(t),this.viewer.tty.addtext(S(t),34),t==10&&this.viewer.tty.newline(),this.clearToSend()||(this.viewer.tty.newline(),this.viewer.tty.addtext("\u26A0\uFE0F OUTPUT BUFFER FULL \u26A0\uFE0F",4)))}byteAvailable(){return this.readIndex()>this.inputIndex}recvByte(){var t=this.readIndex();this.inputIndex=t;var e=(this.inputBytes&&this.inputBytes[t])|0;return this.viewer.tty.addtext(S(e),18),e==10&&this.viewer.tty.newline(),e}readIndex(){return this.bufferedRead?this.inputIndex+1:Math.floor(this.clk/this.cyclesPerByte)}reset(){this.inputIndex=-1,this.clk=0,this.outputBytes=[],this.bufin=""}advance(t){this.clk+=t}saveState(){return{clk:this.clk,idx:this.inputIndex,out:this.outputBytes.slice()}}loadState(t){this.clk=t.clk,this.inputIndex=t.idx,this.outputBytes=t.out.slice()}},h=class extends y{constructor(e){super(e);this.getMemoryMap=function(){return{main:[{name:"RAM",start:0,size:16384,type:"ram"},{name:"ROM",start:32768,size:32768,type:"rom"}]}};this.serview=e?new u(e):new o}async start(){super.start(),this.serial=new d,this.serial.viewer=this.serview,this.serview.start(),this.machine.connectSerialIO(this.serial)}reset(){this.serial.inputBytes=f(this.internalFiles["serialin.dat"]),super.reset(),this.serview.reset()}isBlocked(){return this.machine.isHalted()}advance(e){return this.isBlocked()?(this.internalFiles["serialout.dat"]=a(this.serial.outputBytes),p(),0):super.advance(e)}saveState(){var e=super.saveState();return e.serial=this.serial.saveState(),e.serview=this.serview.saveState(),e}loadState(e){super.loadState(e),this.serial.loadState(e.serial),this.serview.loadState(e.serview)}getSerialOutput(){return a(this.serial.outputBytes)}newMachine(){return new s}getPresets(){return w}readAddress(e){return this.machine.readConst(e)}};c["devel-6502"]=h;export{d as SerialTestHarness};
//# sourceMappingURL=devel-DS2JT5JJ.js.map
File renamed without changes.
+1 -1
View File
@@ -1,2 +1,2 @@
import{b as k,c as S}from"./chunk-MQGCXKDS.js";import{B as h,G as v,I as y,J as c,P as d,l as p,z as w}from"./chunk-VZWSP3EG.js";import{g as M}from"./chunk-N7W4C4V2.js";var C=M(S()),i,t,f,m=c(window.location.search),R=window.location.hash?c(window.location.hash.substr(1)):{};for(u in R)m[u]=R[u];var u;function E(){typeof window.onerror=="object"&&(window.onerror=function(e,r,n,o,a){var s=e+" "+r+" "+n+":"+o+", "+a;$.get("/error?msg="+encodeURIComponent(s),"text")})}function F(){var e=!1;document.addEventListener("visibilitychange",function(r){document.visibilityState=="hidden"&&t.isRunning()?(t.pause(),e=!0):document.visibilityState=="visible"&&e&&(t.resume(),e=!1)}),$(window).on("focus",function(){e&&(t.resume(),e=!1)}),$(window).on("blur",function(){t.isRunning()&&(t.pause(),e=!0)})}async function b(e,r){if(!r){alert("No ROM found.");return}console.log(r.length+" bytes"),await t.loadROM(e,r),t.resume()}function I(){return $("#emulator").find("canvas")}function O(e,r,n){v("gif.js/dist/gif.js").then(()=>{var o=I()[0];if(!o){alert("Could not find canvas element to record video!");return}var a=0;o.style&&o.style.transform&&(o.style.transform.indexOf("rotate(-90deg)")>=0?a=-1:o.style.transform.indexOf("rotate(90deg)")>=0&&(a=1));var s=new GIF({workerScript:"gif.js/dist/gif.worker.js",workers:4,quality:10,rotate:a});s.on("finished",function(x){console.log("finished encoding GIF"),n(x)}),e=e||100+(Math.random()*256&3),r=r||100+(Math.random()*256&15);var l=0;console.log("Recording video",o);var g=()=>{l++>r?(console.log("Rendering video"),s.render()):(s.addFrame(o,{delay:e,copy:!0}),setTimeout(g,e))};g()})}async function j(e){if(!d[i])throw Error("Invalid platform '"+i+"'.");t=new d[i]($("#emuscreen")[0]),await t.start(),e.rec&&I().on("focus",()=>{t.resume()});var r=e.n||"Game",n,o=e.url,a=e.r;if(o)return console.log(o),w(o,l=>{b(r,l)},"arraybuffer"),!0;if(a){var s=y(a);n=new p().decode(s)}return F(),b(r,n),!0}async function P(e){if(e.data&&(e=e.data),i=e.p,!i)throw new Error("No platform variable!");try{var r=await k(h(i));console.log("starting platform",i),await j(e)}catch(n){console.log(n),alert('Platform "'+i+'" not supported.')}}function G(){E(),m.p&&P(m)}window.addEventListener("message",H,!1);function H(e){if(e.data){var r=e.data.cmd;if(r=="start"&&!t)P(e);else if(r=="reset")t.reset(),f.reset();else if(r=="getReplay"){var n={frameCount:f.frameCount,checkpoints:f.checkpoints,framerecs:f.framerecs,checkpointInterval:f.checkpointInterval,maxCheckpoints:f.maxCheckpoints};e.source.postMessage({ack:r,replay:n},e.origin)}else if(r=="watchState"){var o=new Function("platform","state",e.data.fn);f.callbackNewCheckpoint=a=>{e.source.postMessage({ack:r,state:o(t,a)},e.origin)}}else r=="recordVideo"?O(e.data.intervalMsec,e.data.maxFrames,function(a){e.data.filename&&(0,C.saveAs)(a,e.data.filename),e.source.postMessage({ack:r,gif:a},e.origin)}):console.log("Unknown data.cmd: "+r)}}self===top&&(document.body.style.backgroundColor="#555");G();export{t as platform,i as platform_id,G as startEmbed,f as stateRecorder};
import{b as k,c as S}from"./chunk-3H6WIH6E.js";import{B as h,G as v,I as y,J as c,P as d,l as p,z as w}from"./chunk-VZWSP3EG.js";import{g as M}from"./chunk-N7W4C4V2.js";var C=M(S()),i,t,f,m=c(window.location.search),R=window.location.hash?c(window.location.hash.substr(1)):{};for(u in R)m[u]=R[u];var u;function E(){typeof window.onerror=="object"&&(window.onerror=function(e,r,n,o,a){var s=e+" "+r+" "+n+":"+o+", "+a;$.get("/error?msg="+encodeURIComponent(s),"text")})}function F(){var e=!1;document.addEventListener("visibilitychange",function(r){document.visibilityState=="hidden"&&t.isRunning()?(t.pause(),e=!0):document.visibilityState=="visible"&&e&&(t.resume(),e=!1)}),$(window).on("focus",function(){e&&(t.resume(),e=!1)}),$(window).on("blur",function(){t.isRunning()&&(t.pause(),e=!0)})}async function b(e,r){if(!r){alert("No ROM found.");return}console.log(r.length+" bytes"),await t.loadROM(e,r),t.resume()}function I(){return $("#emulator").find("canvas")}function O(e,r,n){v("gif.js/dist/gif.js").then(()=>{var o=I()[0];if(!o){alert("Could not find canvas element to record video!");return}var a=0;o.style&&o.style.transform&&(o.style.transform.indexOf("rotate(-90deg)")>=0?a=-1:o.style.transform.indexOf("rotate(90deg)")>=0&&(a=1));var s=new GIF({workerScript:"gif.js/dist/gif.worker.js",workers:4,quality:10,rotate:a});s.on("finished",function(x){console.log("finished encoding GIF"),n(x)}),e=e||100+(Math.random()*256&3),r=r||100+(Math.random()*256&15);var l=0;console.log("Recording video",o);var g=()=>{l++>r?(console.log("Rendering video"),s.render()):(s.addFrame(o,{delay:e,copy:!0}),setTimeout(g,e))};g()})}async function j(e){if(!d[i])throw Error("Invalid platform '"+i+"'.");t=new d[i]($("#emuscreen")[0]),await t.start(),e.rec&&I().on("focus",()=>{t.resume()});var r=e.n||"Game",n,o=e.url,a=e.r;if(o)return console.log(o),w(o,l=>{b(r,l)},"arraybuffer"),!0;if(a){var s=y(a);n=new p().decode(s)}return F(),b(r,n),!0}async function P(e){if(e.data&&(e=e.data),i=e.p,!i)throw new Error("No platform variable!");try{var r=await k(h(i));console.log("starting platform",i),await j(e)}catch(n){console.log(n),alert('Platform "'+i+'" not supported.')}}function G(){E(),m.p&&P(m)}window.addEventListener("message",H,!1);function H(e){if(e.data){var r=e.data.cmd;if(r=="start"&&!t)P(e);else if(r=="reset")t.reset(),f.reset();else if(r=="getReplay"){var n={frameCount:f.frameCount,checkpoints:f.checkpoints,framerecs:f.framerecs,checkpointInterval:f.checkpointInterval,maxCheckpoints:f.maxCheckpoints};e.source.postMessage({ack:r,replay:n},e.origin)}else if(r=="watchState"){var o=new Function("platform","state",e.data.fn);f.callbackNewCheckpoint=a=>{e.source.postMessage({ack:r,state:o(t,a)},e.origin)}}else r=="recordVideo"?O(e.data.intervalMsec,e.data.maxFrames,function(a){e.data.filename&&(0,C.saveAs)(a,e.data.filename),e.source.postMessage({ack:r,gif:a},e.origin)}):console.log("Unknown data.cmd: "+r)}}self===top&&(document.body.style.backgroundColor="#555");G();export{t as platform,i as platform_id,G as startEmbed,f as stateRecorder};
//# sourceMappingURL=embedui.js.map
@@ -1,2 +1,2 @@
import{I as G,n as S,t as k}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{P,ba as c,ca as v,ea as R,ha as C}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var T=R([[c.START,1,-1],[c.RIGHT,1,-4],[c.LEFT,1,-8],[c.A,1,-16],[c.UP,1,-32],[c.DOWN,1,-64],[c.SELECT,1,-128]]);var U={collision_mask:4,collision_invert:4,scrnbase:16384,charbase:18432};var b=class extends k{constructor(){super();this.cpuFrequency=705562;this.sampleRate=894886;this.numVisibleScanlines=256;this.numTotalScanlines=262;this.cpuCyclesPerLine=42;this.canvasWidth=256;this.defaultROMSize=45056;this.cpu=new S;this.ram=new Uint8Array(28672);this.color_latch=[84,238,107];this.palette=[4278190080,4278190335,4294901760,4294902015,4278255360,4278255615,4294967040,4294967295];this.inputs=new Uint8Array(4);this.keyMap=T;this.handler=v(this.inputs,this.keyMap);this.scrnbase=16384;this.charbase=18432;this.collision_mask=0;this.collision_invert=0;this.current_collision=0;this.pia_regs=new Uint8Array(4);this.bus={read:C([[0,1023,0,t=>this.ram[t]],[4096,16383,0,t=>this.rom[t-4096]],[16384,20479,0,t=>this.ram[t]],[20736,20991,3,t=>t==3?this.int_latch():this.inputs[t]],[20992,21007,3,t=>this.readPIA(t)],[24576,28671,0,t=>this.ram[t]],[32768,65535,0,t=>this.rom[t-32768]]]),write:C([[0,1023,0,(t,e)=>{this.ram[t]=e}],[16384,20479,0,(t,e)=>{this.ram[t]=e}],[20480,20737,0,(t,e)=>{this.ram[t]=e}],[20992,21007,3,(t,e)=>{this.writePIA(t,e)}],[21008,21010,3,(t,e)=>{this.setColorLatch(t,e)}],[24576,28671,0,(t,e)=>{this.ram[t]=e}]])};this.connectCPUMemoryBus(this),this.updatePalette(),this.inputs[0]=234,this.inputs[1]=255}configure(t){this.collision_mask=t.collision_mask,this.collision_invert=t.collision_invert,this.scrnbase=t.scrnbase,this.charbase=t.charbase}loadROM(t){if(super.loadROM(t),t.length==11616)this.rom.set(t.slice(10240,12288),32768),this.rom.set(t.slice(9984,10240),32512),this.rom.set(t.slice(0,10240),2048),this.scrnbase=16384,this.charbase=18432;else if(t.length==14336)this.rom.set(t.slice(13312,14336),32768),this.rom.set(t.slice(12032,12288),32512),this.scrnbase=16384,this.charbase=18432;else if(t.length==32768)this.rom.set(t.slice(30720,32768),32768),this.rom.set(t.slice(0,24576),8192),this.scrnbase=16384,this.charbase=24576;else if(t.length==45056)this.configure(U);else if(t.length!=45056)throw new Error("Warning: ROM size not recognized: "+t.length);let e=32768;this.sprite_gfx=this.rom.subarray(e,e+2048)}read(t){return this.bus.read(t)}readConst(t){return t==20739?this.inputs[3]:this.bus.read(t)}write(t,e){this.bus.write(t,e)}readPIA(t){return this.pia_regs[t&3]}writePIA(t,e){this.pia_regs[t&3]=e}int_latch(){let t=this.inputs[3];t|=this.inputs[1]&128?0:64;let e=this.current_collision^this.collision_invert;return e&=this.collision_mask,t|=e,this.inputs[3]=128,t}checkCollisionM1CHAR(){let t=this.ram[20480],e=this.ram[20544],r=236-t-4,i=244-e-4,a=this.ram[20737];if(a&128&&!(a&16)&&this.collision_mask!=0)return!1;let l=a&32?1:0,o=((this.ram[20736]&15)+16*l)*32;for(let s=0;s<16;s++){let x=i+s;if(x<0||x>=256)continue;let d=x>>3,y=x&7,M=this.sprite_gfx[o+s],m=this.sprite_gfx[o+s+16];for(let n=0;n<16;n++){let _=n<8?M:m,p=n<8?128>>n:128>>n-8;if(!(_&p))continue;let h=r+n;if(h<0||h>=256)continue;let u=h>>3,g=this.ram[this.scrnbase+d*32+u];if(this.ram[this.charbase+g*8+y]&128>>(h&7))return!0}}return!1}checkCollisionM1M2(){let t=236-this.ram[20480]-4,e=244-this.ram[20544]-4,r=236-this.ram[20608]-4,i=244-this.ram[20672]-4;if(t+16<=r||r+16<=t||e+16<=i||i+16<=e)return!1;let a=this.ram[20737],l=a&32?1:0,f=((this.ram[20736]&15)+16*l)*32,o=a&64?1:0,s=((this.ram[20736]>>4)+32+16*o)*32,x=Math.max(t,r),d=Math.min(t+16,r+16),y=Math.max(e,i),M=Math.min(e+16,i+16);for(let m=y;m<M;m++){let n=m-e,_=m-i;for(let p=x;p<d;p++){let h=p-t,u=p-r,g=h<8?this.sprite_gfx[f+n]:this.sprite_gfx[f+n+16],E=h<8?128>>h:128>>h-8,I=u<8?this.sprite_gfx[s+_]:this.sprite_gfx[s+_+16],z=u<8?128>>u:128>>u-8;if(g&E&&I&z)return!0}}return!1}updatePalette(){this.set_1_color(0,0),this.set_1_color(1,7),this.set_1_color(2,0),this.set_1_color(3,6),this.set_1_color(4,4),this.set_1_color(5,3),this.set_1_color(6,2),this.set_1_color(7,1)}set_1_color(t,e){let r=this.color_latch[0]&1<<e?1:0,i=this.color_latch[1]&1<<e?2:0,a=this.color_latch[2]&1<<e?4:0;this.palette[t]=F[r|i|a]}setColorLatch(t,e){this.color_latch[t&3]=e,this.updatePalette()}drawSprite(t,e,r,i){var a=236-t-4,l=244-e-4;if(l+=15,l-=this.scanline,l>=0&&l<16){l=15-l;let f=this.scanline*this.canvasWidth,o=this.sprite_gfx[r+l];for(let s=0;s<8;s++)if(o&128>>s){let x=a+s;x>=0&&x<256&&(this.pixels[f+x]=this.palette[i])}o=this.sprite_gfx[r+l+16];for(let s=0;s<8;s++)if(o&128>>s){let x=a+s+8;x>=0&&x<256&&(this.pixels[f+x]=this.palette[i])}}}drawSprite1(){let t=this.ram[20737];if(t&128&&!(t&16)&&this.collision_mask!=0)return;let e=this.ram[20480],r=this.ram[20544],i=t&32?1:0,a=(this.ram[20736]&15)+16*i;this.drawSprite(e,r,a*32,1)}drawSprite2(){let t=this.ram[20737];if(t&64&&this.collision_mask!=0)return;let e=this.ram[20608],r=this.ram[20672],iLine truncated
//# sourceMappingURL=exidy-EY3YDB6L.js.map
import{K as G,p as S,v as k}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{P,ba as c,ca as v,ea as R,ha as C}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var T=R([[c.START,1,-1],[c.RIGHT,1,-4],[c.LEFT,1,-8],[c.A,1,-16],[c.UP,1,-32],[c.DOWN,1,-64],[c.SELECT,1,-128]]);var U={collision_mask:4,collision_invert:4,scrnbase:16384,charbase:18432};var b=class extends k{constructor(){super();this.cpuFrequency=705562;this.sampleRate=894886;this.numVisibleScanlines=256;this.numTotalScanlines=262;this.cpuCyclesPerLine=42;this.canvasWidth=256;this.defaultROMSize=45056;this.cpu=new S;this.ram=new Uint8Array(28672);this.color_latch=[84,238,107];this.palette=[4278190080,4278190335,4294901760,4294902015,4278255360,4278255615,4294967040,4294967295];this.inputs=new Uint8Array(4);this.keyMap=T;this.handler=v(this.inputs,this.keyMap);this.scrnbase=16384;this.charbase=18432;this.collision_mask=0;this.collision_invert=0;this.current_collision=0;this.pia_regs=new Uint8Array(4);this.bus={read:C([[0,1023,0,t=>this.ram[t]],[4096,16383,0,t=>this.rom[t-4096]],[16384,20479,0,t=>this.ram[t]],[20736,20991,3,t=>t==3?this.int_latch():this.inputs[t]],[20992,21007,3,t=>this.readPIA(t)],[24576,28671,0,t=>this.ram[t]],[32768,65535,0,t=>this.rom[t-32768]]]),write:C([[0,1023,0,(t,e)=>{this.ram[t]=e}],[16384,20479,0,(t,e)=>{this.ram[t]=e}],[20480,20737,0,(t,e)=>{this.ram[t]=e}],[20992,21007,3,(t,e)=>{this.writePIA(t,e)}],[21008,21010,3,(t,e)=>{this.setColorLatch(t,e)}],[24576,28671,0,(t,e)=>{this.ram[t]=e}]])};this.connectCPUMemoryBus(this),this.updatePalette(),this.inputs[0]=234,this.inputs[1]=255}configure(t){this.collision_mask=t.collision_mask,this.collision_invert=t.collision_invert,this.scrnbase=t.scrnbase,this.charbase=t.charbase}loadROM(t){if(super.loadROM(t),t.length==11616)this.rom.set(t.slice(10240,12288),32768),this.rom.set(t.slice(9984,10240),32512),this.rom.set(t.slice(0,10240),2048),this.scrnbase=16384,this.charbase=18432;else if(t.length==14336)this.rom.set(t.slice(13312,14336),32768),this.rom.set(t.slice(12032,12288),32512),this.scrnbase=16384,this.charbase=18432;else if(t.length==32768)this.rom.set(t.slice(30720,32768),32768),this.rom.set(t.slice(0,24576),8192),this.scrnbase=16384,this.charbase=24576;else if(t.length==45056)this.configure(U);else if(t.length!=45056)throw new Error("Warning: ROM size not recognized: "+t.length);let e=32768;this.sprite_gfx=this.rom.subarray(e,e+2048)}read(t){return this.bus.read(t)}readConst(t){return t==20739?this.inputs[3]:this.bus.read(t)}write(t,e){this.bus.write(t,e)}readPIA(t){return this.pia_regs[t&3]}writePIA(t,e){this.pia_regs[t&3]=e}int_latch(){let t=this.inputs[3];t|=this.inputs[1]&128?0:64;let e=this.current_collision^this.collision_invert;return e&=this.collision_mask,t|=e,this.inputs[3]=128,t}checkCollisionM1CHAR(){let t=this.ram[20480],e=this.ram[20544],r=236-t-4,i=244-e-4,a=this.ram[20737];if(a&128&&!(a&16)&&this.collision_mask!=0)return!1;let l=a&32?1:0,o=((this.ram[20736]&15)+16*l)*32;for(let s=0;s<16;s++){let x=i+s;if(x<0||x>=256)continue;let d=x>>3,y=x&7,M=this.sprite_gfx[o+s],m=this.sprite_gfx[o+s+16];for(let n=0;n<16;n++){let _=n<8?M:m,p=n<8?128>>n:128>>n-8;if(!(_&p))continue;let h=r+n;if(h<0||h>=256)continue;let u=h>>3,g=this.ram[this.scrnbase+d*32+u];if(this.ram[this.charbase+g*8+y]&128>>(h&7))return!0}}return!1}checkCollisionM1M2(){let t=236-this.ram[20480]-4,e=244-this.ram[20544]-4,r=236-this.ram[20608]-4,i=244-this.ram[20672]-4;if(t+16<=r||r+16<=t||e+16<=i||i+16<=e)return!1;let a=this.ram[20737],l=a&32?1:0,f=((this.ram[20736]&15)+16*l)*32,o=a&64?1:0,s=((this.ram[20736]>>4)+32+16*o)*32,x=Math.max(t,r),d=Math.min(t+16,r+16),y=Math.max(e,i),M=Math.min(e+16,i+16);for(let m=y;m<M;m++){let n=m-e,_=m-i;for(let p=x;p<d;p++){let h=p-t,u=p-r,g=h<8?this.sprite_gfx[f+n]:this.sprite_gfx[f+n+16],E=h<8?128>>h:128>>h-8,I=u<8?this.sprite_gfx[s+_]:this.sprite_gfx[s+_+16],z=u<8?128>>u:128>>u-8;if(g&E&&I&z)return!0}}return!1}updatePalette(){this.set_1_color(0,0),this.set_1_color(1,7),this.set_1_color(2,0),this.set_1_color(3,6),this.set_1_color(4,4),this.set_1_color(5,3),this.set_1_color(6,2),this.set_1_color(7,1)}set_1_color(t,e){let r=this.color_latch[0]&1<<e?1:0,i=this.color_latch[1]&1<<e?2:0,a=this.color_latch[2]&1<<e?4:0;this.palette[t]=F[r|i|a]}setColorLatch(t,e){this.color_latch[t&3]=e,this.updatePalette()}drawSprite(t,e,r,i){var a=236-t-4,l=244-e-4;if(l+=15,l-=this.scanline,l>=0&&l<16){l=15-l;let f=this.scanline*this.canvasWidth,o=this.sprite_gfx[r+l];for(let s=0;s<8;s++)if(o&128>>s){let x=a+s;x>=0&&x<256&&(this.pixels[f+x]=this.palette[i])}o=this.sprite_gfx[r+l+16];for(let s=0;s<8;s++)if(o&128>>s){let x=a+s+8;x>=0&&x<256&&(this.pixels[f+x]=this.palette[i])}}}drawSprite1(){let t=this.ram[20737];if(t&128&&!(t&16)&&this.collision_mask!=0)return;let e=this.ram[20480],r=this.ram[20544],i=t&32?1:0,a=(this.ram[20736]&15)+16*i;this.drawSprite(e,r,a*32,1)}drawSprite2(){let t=this.ram[20737];if(t&64&&this.collision_mask!=0)return;let e=this.ram[20608],r=this.ram[20672],iLine truncated
//# sourceMappingURL=exidy-XIUHGVKQ.js.map
File renamed without changes.
@@ -1,2 +1,2 @@
import{J as Q,c as z,d as X,e as L,l as j,t as J}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{P as B,Q as N,Y,ba as s,ca as q,ea as F,ga as Z,ha as _}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.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=!0;tLine truncated
//# sourceMappingURL=galaxian-574VKGFX.js.map
import{L as Q,c as z,d as X,e as L,n as j,v as J}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{P as B,Q as N,Y,ba as s,ca as q,ea as F,ga as Z,ha as _}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.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=!0;tLine truncated
//# sourceMappingURL=galaxian-KOF65FZ3.js.map
File renamed without changes.
+2 -2
View File
@@ -1,4 +1,4 @@
import{a as L,b as Q}from"./chunk-G3VBABUZ.js";import{D as Y,G as J,H as $,t as K,w as G}from"./chunk-FFJHITEL.js";import{b as Z}from"./chunk-UXRCACYH.js";import{P as W,Y as O,ba as g,ca as z,ea as N,g as m,ha as j}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var x=class x{constructor(){this.A=0;this.F=0;this.B=0;this.C=0;this.D=0;this.E=0;this.H=0;this.L=0;this.SP=65534;this.PC=256;this.ime=!1;this.imeDelay=!1;this.halted=!1;this.interruptFlags=0;this.cyclesPerInsn=0;this.o=0;this.stable=!0}connectMemoryBus(t){this.bus=t}reset(){this.A=1,this.F=176,this.B=0,this.C=19,this.D=0,this.E=216,this.H=1,this.L=77,this.SP=65534,this.PC=256,this.ime=!1,this.imeDelay=!1,this.halted=!1,this.interruptFlags=0}interrupt(t){this.interruptFlags|=t}getPC(){return this.PC}getSP(){return this.SP}isStable(){return this.stable}saveState(){return{PC:this.PC,SP:this.SP,AF:this.A<<8|this.F,BC:this.B<<8|this.C,DE:this.D<<8|this.E,HL:this.H<<8|this.L,o:this.o,ime:this.ime?1:0,halted:this.halted,interrupt:this.interruptFlags}}loadState(t){this.PC=t.PC,this.SP=t.SP,this.A=t.AF>>8&255,this.F=t.AF&240,this.B=t.BC>>8&255,this.C=t.BC&255,this.D=t.DE>>8&255,this.E=t.DE&255,this.H=t.HL>>8&255,this.L=t.HL&255,this.o=t.o,this.ime=!!t.ime,this.halted=t.halted,this.interruptFlags=t.interrupt}getAF(){return this.A<<8|this.F&240}getBC(){return this.B<<8|this.C}getDE(){return this.D<<8|this.E}getHL(){return this.H<<8|this.L}setAF(t){this.A=t>>8&255,this.F=t&240}setBC(t){this.B=t>>8&255,this.C=t&255}setDE(t){this.D=t>>8&255,this.E=t&255}setHL(t){this.H=t>>8&255,this.L=t&255}read(t){return this.bus.read(t&65535)}write(t,e){this.bus.write(t&65535,e&255)}readWord(t){return this.read(t)|this.read(t+1)<<8}writeWord(t,e){this.write(t,e&255),this.write(t+1,e>>8&255)}fetchByte(){var t=this.read(this.PC);return this.PC=this.PC+1&65535,t}fetchWord(){var t=this.fetchByte(),e=this.fetchByte();return e<<8|t}fetchSignedByte(){var t=this.fetchByte();return t<128?t:t-256}pushWord(t){this.SP=this.SP-1&65535,this.write(this.SP,t>>8&255),this.SP=this.SP-1&65535,this.write(this.SP,t&255)}popWord(){var t=this.read(this.SP);this.SP=this.SP+1&65535;var e=this.read(this.SP);return this.SP=this.SP+1&65535,e<<8|t}getZ(){return!!(this.F&x.FLAG_Z)}getN(){return!!(this.F&x.FLAG_N)}getH(){return!!(this.F&x.FLAG_H)}getC(){return!!(this.F&x.FLAG_C)}setZ(t){t?this.F|=x.FLAG_Z:this.F&=~x.FLAG_Z}setN(t){t?this.F|=x.FLAG_N:this.F&=~x.FLAG_N}setH(t){t?this.F|=x.FLAG_H:this.F&=~x.FLAG_H}setC(t){t?this.F|=x.FLAG_C:this.F&=~x.FLAG_C}setFlags(t,e,s,i){this.F=(t?x.FLAG_Z:0)|(e?x.FLAG_N:0)|(s?x.FLAG_H:0)|(i?x.FLAG_C:0)}getReg(t){switch(t){case 0:return this.B;case 1:return this.C;case 2:return this.D;case 3:return this.E;case 4:return this.H;case 5:return this.L;case 6:return this.read(this.getHL());case 7:return this.A}return 0}setReg(t,e){switch(e&=255,t){case 0:this.B=e;break;case 1:this.C=e;break;case 2:this.D=e;break;case 3:this.E=e;break;case 4:this.H=e;break;case 5:this.L=e;break;case 6:this.write(this.getHL(),e);break;case 7:this.A=e;break}}getReg16(t){switch(t){case 0:return this.getBC();case 1:return this.getDE();case 2:return this.getHL();case 3:return this.SP}return 0}setReg16(t,e){switch(e&=65535,t){case 0:this.setBC(e);break;case 1:this.setDE(e);break;case 2:this.setHL(e);break;case 3:this.SP=e;break}}getReg16AF(t){switch(t){case 0:return this.getBC();case 1:return this.getDE();case 2:return this.getHL();case 3:return this.getAF()}return 0}setReg16AF(t,e){switch(e&=65535,t){case 0:this.setBC(e);break;case 1:this.setDE(e);break;case 2:this.setHL(e);break;case 3:this.setAF(e);break}}checkCondition(t){switch(t){case 0:return!this.getZ();case 1:return this.getZ();case 2:return!this.getC();case 3:return this.getC()}return!1}addA(t){var e=this.A+t;this.setFlags((e&255)===0,!1,(this.A&15)+(t&15)>15,e>255),this.A=e&255}adcA(t){var e=this.getC()?1:0,s=this.A+t+e;this.setFlags((s&255)===0,!1,(this.A&15)+(t&15)+e>15,s>255),this.A=s&255}subA(t){var e=this.A-t;this.setFlags((e&255)===0,!0,(this.A&15)<(t&15),e<0),this.A=e&255}sbcA(t){var e=this.getC()?1:0,s=this.A-t-e;this.setFlags((s&255)===0,!0,(this.A&15)<(t&15)+e,s<0),this.A=s&255}andA(t){this.A&=t,this.setFlags(this.A===0,!1,!0,!1)}xorA(t){this.A^=t,this.A&=255,this.setFlags(this.A===0,!1,!1,!1)}orA(t){this.A|=t,this.A&=255,this.setFlags(this.A===0,!1,!1,!1)}cpA(t){var e=this.A-t;this.setFlags((e&255)===0,!0,(this.A&15)<(t&15),e<0)}aluOp(t,e){switch(t){case 0:this.addA(e);break;case 1:this.adcA(e);break;case 2:this.subA(e);break;case 3:this.sbcA(e);break;case 4:this.andA(e);break;case 5:this.xorA(e);break;case 6:this.orA(e);break;case 7:this.cpA(e);break}}inc8(t){var e=t+1&255;return this.setZ(e===0),this.setN(!1),this.setH((t&15)===15),e}dec8(t){var e=t-1&255;return this.setZ(e===0),this.setN(!0),this.setH((t&15)===0),e}addHL(t){var e=this.getHL(),s=e+t;this.setN(!1),this.setH((e&4095)+(t&4095)>4095),this.setC(s>65535),this.setHL(s&65535)}daa(){var t=this.A;this.getN()?(this.getC()&&(t-=96),this.getH()&&(t-=6)):((this.getC()Line truncated
import{a as L,b as Q}from"./chunk-G3VBABUZ.js";import{F as Y,I as J,J as $,v as K,y as G}from"./chunk-4YTESWOC.js";import{b as Z}from"./chunk-UXRCACYH.js";import{P as W,Y as O,ba as g,ca as z,ea as N,g as m,ha as j}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var x=class x{constructor(){this.A=0;this.F=0;this.B=0;this.C=0;this.D=0;this.E=0;this.H=0;this.L=0;this.SP=65534;this.PC=256;this.ime=!1;this.imeDelay=!1;this.halted=!1;this.interruptFlags=0;this.cyclesPerInsn=0;this.o=0;this.stable=!0}connectMemoryBus(t){this.bus=t}reset(){this.A=1,this.F=176,this.B=0,this.C=19,this.D=0,this.E=216,this.H=1,this.L=77,this.SP=65534,this.PC=256,this.ime=!1,this.imeDelay=!1,this.halted=!1,this.interruptFlags=0}interrupt(t){this.interruptFlags|=t}getPC(){return this.PC}getSP(){return this.SP}isStable(){return this.stable}saveState(){return{PC:this.PC,SP:this.SP,AF:this.A<<8|this.F,BC:this.B<<8|this.C,DE:this.D<<8|this.E,HL:this.H<<8|this.L,o:this.o,ime:this.ime?1:0,halted:this.halted,interrupt:this.interruptFlags}}loadState(t){this.PC=t.PC,this.SP=t.SP,this.A=t.AF>>8&255,this.F=t.AF&240,this.B=t.BC>>8&255,this.C=t.BC&255,this.D=t.DE>>8&255,this.E=t.DE&255,this.H=t.HL>>8&255,this.L=t.HL&255,this.o=t.o,this.ime=!!t.ime,this.halted=t.halted,this.interruptFlags=t.interrupt}getAF(){return this.A<<8|this.F&240}getBC(){return this.B<<8|this.C}getDE(){return this.D<<8|this.E}getHL(){return this.H<<8|this.L}setAF(t){this.A=t>>8&255,this.F=t&240}setBC(t){this.B=t>>8&255,this.C=t&255}setDE(t){this.D=t>>8&255,this.E=t&255}setHL(t){this.H=t>>8&255,this.L=t&255}read(t){return this.bus.read(t&65535)}write(t,e){this.bus.write(t&65535,e&255)}readWord(t){return this.read(t)|this.read(t+1)<<8}writeWord(t,e){this.write(t,e&255),this.write(t+1,e>>8&255)}fetchByte(){var t=this.read(this.PC);return this.PC=this.PC+1&65535,t}fetchWord(){var t=this.fetchByte(),e=this.fetchByte();return e<<8|t}fetchSignedByte(){var t=this.fetchByte();return t<128?t:t-256}pushWord(t){this.SP=this.SP-1&65535,this.write(this.SP,t>>8&255),this.SP=this.SP-1&65535,this.write(this.SP,t&255)}popWord(){var t=this.read(this.SP);this.SP=this.SP+1&65535;var e=this.read(this.SP);return this.SP=this.SP+1&65535,e<<8|t}getZ(){return!!(this.F&x.FLAG_Z)}getN(){return!!(this.F&x.FLAG_N)}getH(){return!!(this.F&x.FLAG_H)}getC(){return!!(this.F&x.FLAG_C)}setZ(t){t?this.F|=x.FLAG_Z:this.F&=~x.FLAG_Z}setN(t){t?this.F|=x.FLAG_N:this.F&=~x.FLAG_N}setH(t){t?this.F|=x.FLAG_H:this.F&=~x.FLAG_H}setC(t){t?this.F|=x.FLAG_C:this.F&=~x.FLAG_C}setFlags(t,e,s,i){this.F=(t?x.FLAG_Z:0)|(e?x.FLAG_N:0)|(s?x.FLAG_H:0)|(i?x.FLAG_C:0)}getReg(t){switch(t){case 0:return this.B;case 1:return this.C;case 2:return this.D;case 3:return this.E;case 4:return this.H;case 5:return this.L;case 6:return this.read(this.getHL());case 7:return this.A}return 0}setReg(t,e){switch(e&=255,t){case 0:this.B=e;break;case 1:this.C=e;break;case 2:this.D=e;break;case 3:this.E=e;break;case 4:this.H=e;break;case 5:this.L=e;break;case 6:this.write(this.getHL(),e);break;case 7:this.A=e;break}}getReg16(t){switch(t){case 0:return this.getBC();case 1:return this.getDE();case 2:return this.getHL();case 3:return this.SP}return 0}setReg16(t,e){switch(e&=65535,t){case 0:this.setBC(e);break;case 1:this.setDE(e);break;case 2:this.setHL(e);break;case 3:this.SP=e;break}}getReg16AF(t){switch(t){case 0:return this.getBC();case 1:return this.getDE();case 2:return this.getHL();case 3:return this.getAF()}return 0}setReg16AF(t,e){switch(e&=65535,t){case 0:this.setBC(e);break;case 1:this.setDE(e);break;case 2:this.setHL(e);break;case 3:this.setAF(e);break}}checkCondition(t){switch(t){case 0:return!this.getZ();case 1:return this.getZ();case 2:return!this.getC();case 3:return this.getC()}return!1}addA(t){var e=this.A+t;this.setFlags((e&255)===0,!1,(this.A&15)+(t&15)>15,e>255),this.A=e&255}adcA(t){var e=this.getC()?1:0,s=this.A+t+e;this.setFlags((s&255)===0,!1,(this.A&15)+(t&15)+e>15,s>255),this.A=s&255}subA(t){var e=this.A-t;this.setFlags((e&255)===0,!0,(this.A&15)<(t&15),e<0),this.A=e&255}sbcA(t){var e=this.getC()?1:0,s=this.A-t-e;this.setFlags((s&255)===0,!0,(this.A&15)<(t&15)+e,s<0),this.A=s&255}andA(t){this.A&=t,this.setFlags(this.A===0,!1,!0,!1)}xorA(t){this.A^=t,this.A&=255,this.setFlags(this.A===0,!1,!1,!1)}orA(t){this.A|=t,this.A&=255,this.setFlags(this.A===0,!1,!1,!1)}cpA(t){var e=this.A-t;this.setFlags((e&255)===0,!0,(this.A&15)<(t&15),e<0)}aluOp(t,e){switch(t){case 0:this.addA(e);break;case 1:this.adcA(e);break;case 2:this.subA(e);break;case 3:this.sbcA(e);break;case 4:this.andA(e);break;case 5:this.xorA(e);break;case 6:this.orA(e);break;case 7:this.cpA(e);break}}inc8(t){var e=t+1&255;return this.setZ(e===0),this.setN(!1),this.setH((t&15)===15),e}dec8(t){var e=t-1&255;return this.setZ(e===0),this.setN(!0),this.setH((t&15)===0),e}addHL(t){var e=this.getHL(),s=e+t;this.setN(!1),this.setH((e&4095)+(t&4095)>4095),this.setC(s>65535),this.setHL(s&65535)}daa(){var t=this.A;this.getN()?(this.getC()&&(t-=96),this.getH()&&(t-=6)):((this.getC()Line truncated
LY `+m(this.ly,2)+" LYC "+m(this.lyc,2)+`
SCX `+m(this.scx,2)+" SCY "+m(this.scy,2)+`
WX `+m(this.wx,2)+" WY "+m(this.wy,2)+`
@@ -14,4 +14,4 @@ SPD `+(this.doubleSpeed?"2x":"1x")+`
`),this.hasRTC&&(this.syncRTC(),i+=`--- RTC ---
`+m(this.rtcHour,2)+":"+m(this.rtcMin,2)+":"+m(this.rtcSec,2)+" day "+this.rtcDay+(this.rtcHalt?" HALT":"")+(this.rtcCarry?" CARRY":"")+`
`),i}}};var te=[{id:"hello.c",name:"Hello World",category:"C"},{id:"typewriter.c",name:"Typewriter Text"},{id:"testdrawing.c",name:"Drawing Routines"},{id:"joypad.c",name:"Joypad Input"},{id:"testphys.c",name:"Sprite Movement"},{id:"sprites.c",name:"Multiple Sprites"},{id:"metasprites.c",name:"Metasprites"},{id:"paint.c",name:"Paint Program"},{id:"scroll.c",name:"Scrolling"},{id:"large_map.c",name:"Large Scrolling Map"},{id:"window.c",name:"Window Status Bar"},{id:"galaxy.c",name:"Window + Sprites"},{id:"interrupts.c",name:"VBlank + Timer Interrupts"},{id:"vram.c",name:"VRAM/OAM Access"},{id:"detect.c",name:"Detect Hardware"},{id:"gbc.c",name:"Game Boy Color"},{id:"gbdecompress.c",name:"Decompression"},{id:"music.c",name:"Music Player"},{id:"aputest.c",name:"Sound Tester"},{id:"demo_vgr3.c",name:"Compressed VGM Music"},{id:"clock.c",name:"MBC3 Real-Time Clock"},{id:"savegame.c",name:"Battery Save RAM"},{id:"banking.c",name:"ROM Bank Switching"},{id:"flicker.c",name:"Flicker Transparency",category:"Advanced Graphics"},{id:"parallax.c",name:"Parallax Scrolling"},{id:"animstream.c",name:"Streaming Animation"},{id:"raster.c",name:"STAT/LYC Raster Effects"},{id:"wireframe.c",name:"Wireframe 3D"},{id:"polyfill.c",name:"Filled Polygons"},{id:"raycast.c",name:"Raycasting 3D"},{id:"siegegame.c",name:"Siege Game",category:"Games"},{id:"climber.c",name:"Climber Game"},{id:"chase.c",name:"Shiru's Chase Game"},{id:"pakupaku.c",name:"Paku Paku"},{id:"sm83.c",name:"C vs. Assembly",category:"Assembler"},{id:"hello.sgb",name:"Hello World (ASM)"},{id:"main.wiz",name:"Snake Game (Wiz)"}],q=class extends ${constructor(){super(...arguments);this.getToolForFilename=Z;this.lcdPersistence=.5}newMachine(){return new T}getPresets(){return te}getDefaultExtensions(){return[".c",".ns",".s",".scc",".sgb",".z",".wiz"]}readAddress(e){return this.machine.read(e)}readVRAMAddress(e){return this.machine.readVRAMAddress(e)}async start(){var e;if(await super.start(),typeof HTMLCanvasElement!="undefined"&&((e=this.video)==null?void 0:e.canvas)instanceof HTMLCanvasElement){let s=this.video.updateFrame.bind(this.video);this.video.updateFrame=(...i)=>{this.applyLCDPersistence(),s(...i)}}}applyLCDPersistence(){if(!(this.lcdPersistence>0)||this.machine.cgbMode){this.lcdPrevFrame=null;return}let e=this.video.getFrameData(),s=this.lcdPrevFrame;if(!s||s.length!=e.length){this.lcdPrevFrame=new Uint32Array(e);return}let i=Math.round(this.lcdPersistence*256),h=256-i;for(let r=0;r<e.length;r++){let a=e[r],c=s[r];if(a===c)continue;let o=(c&255)*i+(a&255)*h>>8,n=(c>>8&255)*i+(a>>8&255)*h>>8,u=(c>>16&255)*i+(a>>16&255)*h>>8;s[r]=e[r]=4278190080|u<<16|n<<8|o}}getOriginPC(){return 256}getROMExtension(){return".gb"}getMemoryMap(){return{main:[{name:"ROM Bank 0",start:0,size:16384,type:"rom"},{name:"ROM Bank 1+",start:16384,size:16384,type:"rom"},{name:"Video RAM",start:32768,size:8192,type:"ram"},{name:"External RAM",start:40960,size:8192,type:"ram"},{name:"Work RAM",start:49152,size:8192,type:"ram"},{name:"OAM",start:65024,size:160,type:"ram"},{name:"I/O Registers",start:65280,size:128,type:"io"},{name:"High RAM",start:65408,size:127,type:"ram"}]}}getDebugCategories(){return G(this.machine)?this.machine.getDebugCategories():["CPU","Stack","PPU"]}getDebugInfo(e,s){switch(e){case"CPU":return Y(s.c);case"Stack":{var i=s.c.SP-1&65535,h=i&65280,r=h+255;return i==0&&(i=65536),J(this,[],h,r,i,205)}default:return G(this.machine)&&this.machine.getDebugInfo(e,s)}}disassemble(e,s){return Q(e,s(e),s(e+1),s(e+2))}showHelp(){return"https://8bitworkshop.com/docs/platforms/gameboy/"}},V=class extends q{constructor(){super(...arguments);this.lcdPersistence=0}newMachine(){var e=new T;return e}getPresets(){return te}getROMExtension(){return".gbc"}getMemoryMap(){return{main:[{name:"ROM Bank 0",start:0,size:16384,type:"rom"},{name:"ROM Bank 1+",start:16384,size:16384,type:"rom"},{name:"Video RAM B0",start:32768,size:8192,type:"ram"},{name:"External RAM",start:40960,size:8192,type:"ram"},{name:"Work RAM 0",start:49152,size:4096,type:"ram"},{name:"Work RAM 1-7",start:53248,size:4096,type:"ram"},{name:"OAM",start:65024,size:160,type:"ram"},{name:"I/O Registers",start:65280,size:128,type:"io"},{name:"High RAM",start:65408,size:127,type:"ram"}]}}showHelp(){return"https://8bitworkshop.com/docs/platforms/gameboy/"}};W.gb=q;W["gb.color"]=V;
//# sourceMappingURL=gb-QINPLCGV.js.map
//# sourceMappingURL=gb-4WE7DNZW.js.map
File renamed without changes.
+23
View File
@@ -63,6 +63,7 @@ const baseplatform_1 = require("../common/baseplatform");
const emu_1 = require("../common/emu");
const books_1 = require("../common/books");
const controls_1 = require("../common/controls");
const audio_1 = require("../common/audio");
const hdlhost_1 = require("./hdlhost");
const recorder_1 = require("../common/recorder");
const util_1 = require("../common/util");
@@ -2322,7 +2323,29 @@ function renderControls(div) {
}
return div.children().length > 0;
}
function showAudioHint() {
const hint = $("#emuaudiohint");
if (!hint.length)
return;
let wasBlocked = false;
const update = () => {
if ((0, audio_1.isAudioBlocked)()) {
wasBlocked = true;
hint.show();
}
else {
hint.hide();
if (wasBlocked)
unsubscribe();
}
};
// AudioContext.resume() is async, so wait for the context to actually start
// instead of hiding on the click that asked it to.
const unsubscribe = (0, audio_1.onAudioStateChange)(update);
update();
}
function showInstructions() {
showAudioHint();
var div = $("#emucontrols");
if (!renderControls(div))
return;
+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":"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 truncated
@@ -1,2 +1,2 @@
import{I as y,n as l,r as V}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{P as p,ba as e,g as h,ga as F,ha as f,l as I,m as x}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var B=[e.VK_DELETE,e.VK_ENTER,e.VK_RIGHT,e.VK_F7,e.VK_F1,e.VK_F3,e.VK_F5,e.VK_DOWN,e.VK_3,e.VK_W,e.VK_A,e.VK_4,e.VK_Z,e.VK_S,e.VK_E,e.VK_SHIFT,e.VK_5,e.VK_R,e.VK_D,e.VK_6,e.VK_C,e.VK_F,e.VK_T,e.VK_X,e.VK_7,e.VK_Y,e.VK_G,e.VK_8,e.VK_B,e.VK_H,e.VK_U,e.VK_V,e.VK_9,e.VK_I,e.VK_J,e.VK_0,e.VK_M,e.VK_K,e.VK_O,e.VK_N,null,e.VK_P,e.VK_L,e.VK_MINUS,e.VK_PERIOD,null,null,e.VK_COMMA,null,null,e.VK_SEMICOLON,e.VK_HOME,e.VK_SHIFT,e.VK_EQUALS,e.VK_TILDE,e.VK_SLASH,e.VK_1,e.VK_LEFT,e.VK_CONTROL,e.VK_2,e.VK_SPACE,e.VK_ALT,e.VK_Q,null],A=0,a=class{constructor(){this.regs=new Uint8Array(16);this.ina=0;this.inb=0}read(o){return this.regs[o]}write(o,r){this.regs[o]=r}input_a(){return this.ina&~this.regs[1]}input_b(){return this.inb&~this.regs[1]}output_a(){return this.regs[0]^255|this.regs[1]}output_b(){return this.regs[2]^255|this.regs[3]}},g=class extends V{constructor(){super();this.cpuFrequency=1e6;this.defaultROMSize=4096;this.cpu=new l;this.ram=new Uint8Array(6144);this.rriot1=new a;this.rriot2=new a;this.digits=[];this.read=f([[5888,5951,15,r=>this.readIO_1(r)],[5952,6015,15,r=>this.readIO_2(r)],[0,6143,8191,r=>this.ram[r]],[6144,8191,2047,r=>this.bios[r]]],{gmask:8191});this.write=f([[5888,5951,15,(r,t)=>this.writeIO_1(r,t)],[5952,6015,15,(r,t)=>this.writeIO_2(r,t)],[0,6143,8191,(r,t)=>{this.ram[r]=t}]],{gmask:8191});this.bios=new I().decode(x(atob(O))),this.connectCPUMemoryBus(this)}readConst(r){return this.read(r)}readIO_1(r){return this.rriot1.read(r)}writeIO_1(r,t){this.rriot1.write(r,t)}readIO_2(r){switch(r&15){case 0:let t=0;for(let i=0;i<8;i++)(this.rriot2.regs[0]&1<<i)==0&&(t|=this.inputs[A+i]);this.rriot2.ina=t^255}return this.rriot2.read(r)}writeIO_2(r,t){this.rriot2.write(r,t);let i=this.rriot2.output_a(),n=this.rriot2.output_b();console.log(i,n)}loadROM(r){super.loadROM(r),this.ram.set(this.rom,1024),this.reset()}loadBIOS(r){this.bios=F(r,2048),this.reset()}setKeyInput(r,t,i){for(var n=B,s=0;s<n.length;s++)if(n[s]&&n[s].c==r){let K=s>>3,u=s&7;i&1?this.inputs[A+K]|=1<<u:i&64&&(this.inputs[A+K]&=~(1<<u)),console.log(r,K,u,h(this.inputs[A+K]));break}}advanceFrame(r){for(var t=0;t<this.cpuFrequency/60&&!(r&&r());)t+=this.advanceCPU();return t}},O="TFpHAAAIAAAABY3ivWkoAQsOJSiprY3sFyAyGaknjUIXqb+NQxeiZKkWIHoZytD4qSoo4a35FyBhGa31FyBeGa32KKPtF833F63uF+34F5AkqS8lXeclnegooqICqQQOBTgAhfqF+0xPHCDsJXAg6hlMMxgPGamNDgVrTI3vF61xGI3wF61yGI3xF6kHDgJ8/43pFyBBGk7pFw3pFyUErekXyRbQ7aIKICQaJQHfytD2JUIq8AYlBtHw8yDzGc35F/ANrfkXyQAlDf/wF9CcJQ0gTBmN7RcOBQHuF0z4GCXEKKSiAiV9L/AUIAAa0CPK0PElDEzsFw4CnCWhzecX0Awo4ugX0ASpAPACqf8OBcWt9ReN7Ret9heN7hepYI3vF6kAjecXjegXYKgYbSUB5xet6BdpACUJmGAgTBmoSigBIG8ZmChiYCkPyQoYMAJpB2kwjukXjOoXoAggnhlKsAYooUyRGSDEKEKI0Ouu6Res6hdgoglILEcXEPupfo1EF6mnjUIXDgkHDiKqytDfaGCiBg4FHsMODB4lhw4HHu7tF9AD7u4XYCAkGiAAGiikYMkwMB7JRxAayUAwAxhpCSooAaQEKi7pF4jQ+a3pF6AAYMhgjusXoggOIovqFw3qF43qF8rQ8a3qFypKrusXYCxCFxD7rUYXoP+MKIEUiND9JQow+zjtDgYLByULSf8pgGAOSFsOBJeaDgymJYclW0x1Gv8oHygfKB4oGWsaKCKF82iF8WiF74X6aIXwhfuE9Ib1uobyIIgeTE8cbPoXbP4Xov+aJYmp/43zF6kBLEAX0Bkw+an8GGkBkAPu8xesQBcQ843yDkIbah4gjB4l2x4gLx6iCiAxHkyvHakAhfiF+SBaHskB8AYgrB9M2x0gGR/Q0yWi8MwlBPD0KILvIGofyRUQu8kU8ETJEPAsyREoYRLwL8kT8DEKKAGF/KIEpP/QCrH6BvwqkfpMwxwKJvom+8rQ6vAIqQHQAqkAhf8OgmZjHyihTMgdpe+F+qXwDoR6Wh7JO9D5JRr3hfYgnR+qIJEfKMGF+yjl+ijhivAPJQORJUMlO8rQ8uglB8X20BcowvfQE4rQuaIMDkOaDgLPTxwlD6IR0O4OBNYoofaF9yAvHqk7IKAepfrN9xel+w6iGRipACA7HiDMHyAeHqX2JQOl9yiBTGQcqRiqJVGRJVGgALH6DgUFDgJy8A4IIeb40ALm+UxIHSV6Lx4lJCCeDgcnng4CQCUqTKwdpvKapftIpfpIpfFIpvWk9KXzQMkg8MrJf/AbyQ3w28kK8BzJLvAmyUfw1clR8ArJTPAJTGocDiIgQh1M5xw4pfrpAYX6sALG+0ysHaAApfiR+kzCHaX7DgSOpQ4FlmCiB73VHyCgHsoQ92CF/A6D00wepfwogw6K1UygHob9oggORAQiMPkg1B4g6x6tQBcpgEb+Bf6F/iUJytDvJQym/aX+KkpgogGG/6IAjkEXoj+OQxeiB45CF9h4YKkghf6G/SUkrUIXKf4OInLUHqIIJYVG/mkAJcnK0O4lCgkBJcam/WCt8xeN9Bet8hc46QGwA870F6z0FxDzDggPSk70F5DjCYCw4KADogGp/45CF+joLUAXiND1oAeMQhcJgEn/YA4iXIX5qX+NQReiCaADufgADgPmSB8lAikPKOGI0OslMakAJRlM/h6E/Ki55x+gAIxAFyUOjUAXoH+I0P3o6KT8YOb60ALm+2CiIaABIAIf0AfgJ9D1qRVgoP8KsAPIEPqKKQ9KqpgQAxhpB8rQ+mAYZfeF96X2aQCF9mAgWh4grB8opKX4DqKkG8lHEBcOqaSgBCom+Cb5iA7iZWCl+IX6pfmF+2AAKAMKDU1JSyATUlJFIBO/htvP5u39h//v9/y53vnx////HBwiHB8c";var c=[],m=class extends y{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"RAM",start:0,size:5120,type:"ram"},{name:"6530",start:5888,size:64,type:"io"},{name:"6530",start:5952,size:64,type:"io"},{name:"RAM",start:6016,size:128,type:"ram"},{name:"BIOS",start:6144,size:2048,type:"rom"}]}}}newMachine(){return new g}getPresets(){return c}readAddress(r){return this.machine.readConst(r)}};p.kim1=m;
//# sourceMappingURL=kim1-LJE4QR3M.js.map
import{K as y,p as l,t as V}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{P as p,ba as e,g as h,ga as F,ha as f,l as I,m as x}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var B=[e.VK_DELETE,e.VK_ENTER,e.VK_RIGHT,e.VK_F7,e.VK_F1,e.VK_F3,e.VK_F5,e.VK_DOWN,e.VK_3,e.VK_W,e.VK_A,e.VK_4,e.VK_Z,e.VK_S,e.VK_E,e.VK_SHIFT,e.VK_5,e.VK_R,e.VK_D,e.VK_6,e.VK_C,e.VK_F,e.VK_T,e.VK_X,e.VK_7,e.VK_Y,e.VK_G,e.VK_8,e.VK_B,e.VK_H,e.VK_U,e.VK_V,e.VK_9,e.VK_I,e.VK_J,e.VK_0,e.VK_M,e.VK_K,e.VK_O,e.VK_N,null,e.VK_P,e.VK_L,e.VK_MINUS,e.VK_PERIOD,null,null,e.VK_COMMA,null,null,e.VK_SEMICOLON,e.VK_HOME,e.VK_SHIFT,e.VK_EQUALS,e.VK_TILDE,e.VK_SLASH,e.VK_1,e.VK_LEFT,e.VK_CONTROL,e.VK_2,e.VK_SPACE,e.VK_ALT,e.VK_Q,null],A=0,a=class{constructor(){this.regs=new Uint8Array(16);this.ina=0;this.inb=0}read(o){return this.regs[o]}write(o,r){this.regs[o]=r}input_a(){return this.ina&~this.regs[1]}input_b(){return this.inb&~this.regs[1]}output_a(){return this.regs[0]^255|this.regs[1]}output_b(){return this.regs[2]^255|this.regs[3]}},g=class extends V{constructor(){super();this.cpuFrequency=1e6;this.defaultROMSize=4096;this.cpu=new l;this.ram=new Uint8Array(6144);this.rriot1=new a;this.rriot2=new a;this.digits=[];this.read=f([[5888,5951,15,r=>this.readIO_1(r)],[5952,6015,15,r=>this.readIO_2(r)],[0,6143,8191,r=>this.ram[r]],[6144,8191,2047,r=>this.bios[r]]],{gmask:8191});this.write=f([[5888,5951,15,(r,t)=>this.writeIO_1(r,t)],[5952,6015,15,(r,t)=>this.writeIO_2(r,t)],[0,6143,8191,(r,t)=>{this.ram[r]=t}]],{gmask:8191});this.bios=new I().decode(x(atob(O))),this.connectCPUMemoryBus(this)}readConst(r){return this.read(r)}readIO_1(r){return this.rriot1.read(r)}writeIO_1(r,t){this.rriot1.write(r,t)}readIO_2(r){switch(r&15){case 0:let t=0;for(let i=0;i<8;i++)(this.rriot2.regs[0]&1<<i)==0&&(t|=this.inputs[A+i]);this.rriot2.ina=t^255}return this.rriot2.read(r)}writeIO_2(r,t){this.rriot2.write(r,t);let i=this.rriot2.output_a(),n=this.rriot2.output_b();console.log(i,n)}loadROM(r){super.loadROM(r),this.ram.set(this.rom,1024),this.reset()}loadBIOS(r){this.bios=F(r,2048),this.reset()}setKeyInput(r,t,i){for(var n=B,s=0;s<n.length;s++)if(n[s]&&n[s].c==r){let K=s>>3,u=s&7;i&1?this.inputs[A+K]|=1<<u:i&64&&(this.inputs[A+K]&=~(1<<u)),console.log(r,K,u,h(this.inputs[A+K]));break}}advanceFrame(r){for(var t=0;t<this.cpuFrequency/60&&!(r&&r());)t+=this.advanceCPU();return t}},O="TFpHAAAIAAAABY3ivWkoAQsOJSiprY3sFyAyGaknjUIXqb+NQxeiZKkWIHoZytD4qSoo4a35FyBhGa31FyBeGa32KKPtF833F63uF+34F5AkqS8lXeclnegooqICqQQOBTgAhfqF+0xPHCDsJXAg6hlMMxgPGamNDgVrTI3vF61xGI3wF61yGI3xF6kHDgJ8/43pFyBBGk7pFw3pFyUErekXyRbQ7aIKICQaJQHfytD2JUIq8AYlBtHw8yDzGc35F/ANrfkXyQAlDf/wF9CcJQ0gTBmN7RcOBQHuF0z4GCXEKKSiAiV9L/AUIAAa0CPK0PElDEzsFw4CnCWhzecX0Awo4ugX0ASpAPACqf8OBcWt9ReN7Ret9heN7hepYI3vF6kAjecXjegXYKgYbSUB5xet6BdpACUJmGAgTBmoSigBIG8ZmChiYCkPyQoYMAJpB2kwjukXjOoXoAggnhlKsAYooUyRGSDEKEKI0Ouu6Res6hdgoglILEcXEPupfo1EF6mnjUIXDgkHDiKqytDfaGCiBg4FHsMODB4lhw4HHu7tF9AD7u4XYCAkGiAAGiikYMkwMB7JRxAayUAwAxhpCSooAaQEKi7pF4jQ+a3pF6AAYMhgjusXoggOIovqFw3qF43qF8rQ8a3qFypKrusXYCxCFxD7rUYXoP+MKIEUiND9JQow+zjtDgYLByULSf8pgGAOSFsOBJeaDgymJYclW0x1Gv8oHygfKB4oGWsaKCKF82iF8WiF74X6aIXwhfuE9Ib1uobyIIgeTE8cbPoXbP4Xov+aJYmp/43zF6kBLEAX0Bkw+an8GGkBkAPu8xesQBcQ843yDkIbah4gjB4l2x4gLx6iCiAxHkyvHakAhfiF+SBaHskB8AYgrB9M2x0gGR/Q0yWi8MwlBPD0KILvIGofyRUQu8kU8ETJEPAsyREoYRLwL8kT8DEKKAGF/KIEpP/QCrH6BvwqkfpMwxwKJvom+8rQ6vAIqQHQAqkAhf8OgmZjHyihTMgdpe+F+qXwDoR6Wh7JO9D5JRr3hfYgnR+qIJEfKMGF+yjl+ijhivAPJQORJUMlO8rQ8uglB8X20BcowvfQE4rQuaIMDkOaDgLPTxwlD6IR0O4OBNYoofaF9yAvHqk7IKAepfrN9xel+w6iGRipACA7HiDMHyAeHqX2JQOl9yiBTGQcqRiqJVGRJVGgALH6DgUFDgJy8A4IIeb40ALm+UxIHSV6Lx4lJCCeDgcnng4CQCUqTKwdpvKapftIpfpIpfFIpvWk9KXzQMkg8MrJf/AbyQ3w28kK8BzJLvAmyUfw1clR8ArJTPAJTGocDiIgQh1M5xw4pfrpAYX6sALG+0ysHaAApfiR+kzCHaX7DgSOpQ4FlmCiB73VHyCgHsoQ92CF/A6D00wepfwogw6K1UygHob9oggORAQiMPkg1B4g6x6tQBcpgEb+Bf6F/iUJytDvJQym/aX+KkpgogGG/6IAjkEXoj+OQxeiB45CF9h4YKkghf6G/SUkrUIXKf4OInLUHqIIJYVG/mkAJcnK0O4lCgkBJcam/WCt8xeN9Bet8hc46QGwA870F6z0FxDzDggPSk70F5DjCYCw4KADogGp/45CF+joLUAXiND1oAeMQhcJgEn/YA4iXIX5qX+NQReiCaADufgADgPmSB8lAikPKOGI0OslMakAJRlM/h6E/Ki55x+gAIxAFyUOjUAXoH+I0P3o6KT8YOb60ALm+2CiIaABIAIf0AfgJ9D1qRVgoP8KsAPIEPqKKQ9KqpgQAxhpB8rQ+mAYZfeF96X2aQCF9mAgWh4grB8opKX4DqKkG8lHEBcOqaSgBCom+Cb5iA7iZWCl+IX6pfmF+2AAKAMKDU1JSyATUlJFIBO/htvP5u39h//v9/y53vnx////HBwiHB8c";var c=[],m=class extends y{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"RAM",start:0,size:5120,type:"ram"},{name:"6530",start:5888,size:64,type:"io"},{name:"6530",start:5952,size:64,type:"io"},{name:"RAM",start:6016,size:128,type:"ram"},{name:"BIOS",start:6144,size:2048,type:"rom"}]}}}newMachine(){return new g}getPresets(){return c}readAddress(r){return this.machine.readConst(r)}};p.kim1=m;
//# sourceMappingURL=kim1-AISOICBO.js.map
File renamed without changes.
+2 -2
View File
@@ -1,2 +1,2 @@
import{J as X,c as v,d as Y,e as P,l as z,t as D}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{P as B,Y as G,ba as s,ca as N,ea as V,ga as U,ha as w}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var st=19968e3,W=st/4,Z=480,g=525,T=512,K=30,it=Math.floor(W/(g*K)),H=32,at=30,C=8,O=16;function E(c){return c&=7,c<<5|c<<2|c>>1}var nt=V([[s.SELECT,0,1],[s.START,0,4],[s.VK_2,0,8],[s.UP,1,1],[s.DOWN,1,2],[s.LEFT,1,4],[s.RIGHT,1,8],[s.A,1,16],[s.B,1,32],[s.P2_UP,2,1],[s.P2_DOWN,2,2],[s.P2_LEFT,2,4],[s.P2_RIGHT,2,8],[s.P2_A,2,16],[s.P2_B,2,32]]);var k=57344,q=k,y=16384,lt=q+y,Q=32768,ot=16384,pt=k+y+Q+ot,A=class extends D{constructor(){super();this.cpuFrequency=W;this.canvasWidth=T;this.numVisibleScanlines=Z;this.numTotalScanlines=g;this.cpuCyclesPerLine=it;this.defaultROMSize=pt;this.sampleRate=K*g*2;this.cpu=new v;this.ram=new Uint8Array(2048);this.sprram=new Uint8Array(512);this.vram=new Uint8Array(2048);this.palram=new Uint8Array(128);this.palette=new Uint32Array(64);this.interruptEnabled=!1;this.watchdog_counter=O;this.ctcVector=0;this.read=w([[0,57343,65535,t=>this.rom?this.rom[t]:0],[57344,59391,2047,t=>this.ram[t]],[59392,61439,511,t=>this.sprram[t]],[61440,63487,2047,t=>this.vram[t]],[63488,65535,127,t=>this.palram[t]]]);this.write=w([[57344,59391,2047,(t,e)=>{this.ram[t]=e}],[59392,61439,511,(t,e)=>{this.sprram[t]=e}],[61440,63487,2047,(t,e)=>{this.vram[t]=e}],[63488,65535,127,(t,e)=>{this.palram[t]=e,this.updatePalette(t)}]]);var t=new Y;this.psg1=new P(t),this.psg2=new P(t),this.audioadapter=new z([this.psg1.psg,this.psg2.psg],2,this.sampleRate),this.connectCPUMemoryBus(this),this.connectCPUIOBus(this.newIOBus()),this.inputs.set([0,0,0,255,255]),this.handler=N(this.inputs,nt)}readConst(t){return this.read(t)}newIOBus(){return{read:t=>(t&=255,t<=4?this.inputs[t]:t>=8&&t<=15?this.inputs[3]:(t>=240&&t<=243,0)),write:(t,e)=>{t&=255,t==224&&(this.watchdog_counter=O),t>=240&&t<=243&&((t&3)==0&&!(e&1)||(e&1)==0&&(this.ctcVector=e&248)),t>=0&&t<=7}}}updatePalette(t){let e=t>>1;if(e>=64)return;let r=this.palram[e*2+1],n=E(r>>6&3),i=E(r&7),a=E(r>>3&7),o=(this.palram[e*2]&1)<<2;n=E(o|r>>6&3),this.palette[e]=4278190080|a<<16|i<<8|n}drawScanline(){let t=this.scanline;if(t>=Z)return;let e=t*T;if((t&1)==0){t>>=1;let r=Math.floor(t/C),n=t%C;if(r<at)for(let i=0;i<H;i++){let a=(r*H+i)*2,o=this.vram[a],l=this.vram[a+1],x=o|(l&3)<<8,h=l>>4&3,F=(l&4)!=0,m=(l&8)!=0?15-n:n,u=i*C*2;this.drawTileLine(e+u,x,m,h,F)}}this.drawSpriteScanline(t,e)}drawTileLine(t,e,r,n,i){let a=q,o=y/2,x=e*32+(r<8,r),h=this.rom[a+x]||0,F=this.rom[a+o+x]||0,d=n*4;for(let m=0;m<8;m++){let u=7-m,p=i?14-m*2:m*2,b=h>>u&1|(F>>u&1)<<1;this.pixels[t+p]=this.pixels[t+p+512]=this.pixels[t+p+1]=this.pixels[t+p+513]=this.palette[d+b]}}drawSpriteScanline(t,e){let r=lt,n=Q/4;for(let i=31;i>=0;i--){let a=i*4,o=this.sprram[a]-2&255;o=496-o;let l=this.sprram[a+1],x=this.sprram[a+2]|(l&8?256:0),h=this.sprram[a+3]-3&511,F=(l&16)!=0,d=(l&32)!=0,u=16+(l&3)*16,p=t-o;if(p<0||p>=32)continue;let b=d?31-p:p,J=x*128+b;for(let f=0;f<4;f++){let M=J+f*32,$=this.rom[r+M]||0,tt=this.rom[r+n+M]||0,et=this.rom[r+n*2+M]||0,rt=this.rom[r+n*3+M]||0;for(let _=0;_<8;_++){let S=7-_,L=$>>S&1|(tt>>S&1)<<1|(et>>S&1)<<2|(rt>>S&1)<<3;if(L==0)continue;let R;F?R=h+31-(f*8+_):R=h+f*8+_,R>=0&&R<T&&(this.pixels[e+R]=this.palette[u+L])}}}}startScanline(){this.audio&&this.audioadapter&&this.audioadapter.generate(this.audio)}advanceFrame(t){var e=super.advanceFrame(t);if(this.watchdog_counter--<=0)throw new G("WATCHDOG FIRED");return this.cpu.interrupt(this.ctcVector),e}reset(){super.reset(),this.watchdog_counter=O,this.interruptEnabled=!1,this.ctcVector=0,this.psg1.reset(),this.psg2.reset()}loadROM(t){this.rom=U(t,this.defaultROMSize);for(let e=0;e<64;e++)this.updatePalette(e*2)}loadState(t){super.loadState(t),this.sprram.set(t.sprram),this.vram.set(t.vram),this.palram.set(t.palram),this.watchdog_counter=t.wdc,this.interruptEnabled=t.ie,this.ctcVector=t.ctcv;for(let e=0;e<64;e++)this.updatePalette(e*2)}saveState(){var t=super.saveState();return t.sprram=this.sprram.slice(0),t.vram=this.vram.slice(0),t.palram=this.palram.slice(0),t.wdc=this.watchdog_counter,t.ie=this.interruptEnabled,t.ctcv=this.ctcVector,t}};var mt=[{id:"minimal.c",name:"Minimal Example"},{id:"gfxtest.c",name:"Graphics Test"}],I=class extends X{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"Program ROM",start:0,size:57344,type:"rom"},{name:"NVRAM",start:57344,size:2048,type:"ram"},{name:"Sprite RAM",start:59392,size:512,type:"ram"},{name:"Video RAM",start:61440,size:2048,type:"ram"},{name:"Palette RAM",start:63488,size:128,type:"ram"}]}}}newMachine(){return new A}getPresets(){return mt}readAddress(t){return this.machine.readConst(t)}readVRAMAddress(t){return t<512?this.machine.sprram[t]:t<2560?this.machine.vram[t-512]:this.machine.palram[t-2560&127]}};B.mcr=I;
//# sourceMappingURL=mcr-4QQEKZH5.js.map
import{L as X,c as v,d as Y,e as P,n as z,v as D}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{P as B,Y as G,ba as s,ca as N,ea as V,ga as U,ha as w}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var st=19968e3,W=st/4,Z=480,g=525,T=512,K=30,it=Math.floor(W/(g*K)),H=32,at=30,C=8,O=16;function E(c){return c&=7,c<<5|c<<2|c>>1}var nt=V([[s.SELECT,0,1],[s.START,0,4],[s.VK_2,0,8],[s.UP,1,1],[s.DOWN,1,2],[s.LEFT,1,4],[s.RIGHT,1,8],[s.A,1,16],[s.B,1,32],[s.P2_UP,2,1],[s.P2_DOWN,2,2],[s.P2_LEFT,2,4],[s.P2_RIGHT,2,8],[s.P2_A,2,16],[s.P2_B,2,32]]);var k=57344,q=k,y=16384,lt=q+y,Q=32768,ot=16384,pt=k+y+Q+ot,A=class extends D{constructor(){super();this.cpuFrequency=W;this.canvasWidth=T;this.numVisibleScanlines=Z;this.numTotalScanlines=g;this.cpuCyclesPerLine=it;this.defaultROMSize=pt;this.sampleRate=K*g*2;this.cpu=new v;this.ram=new Uint8Array(2048);this.sprram=new Uint8Array(512);this.vram=new Uint8Array(2048);this.palram=new Uint8Array(128);this.palette=new Uint32Array(64);this.interruptEnabled=!1;this.watchdog_counter=O;this.ctcVector=0;this.read=w([[0,57343,65535,t=>this.rom?this.rom[t]:0],[57344,59391,2047,t=>this.ram[t]],[59392,61439,511,t=>this.sprram[t]],[61440,63487,2047,t=>this.vram[t]],[63488,65535,127,t=>this.palram[t]]]);this.write=w([[57344,59391,2047,(t,e)=>{this.ram[t]=e}],[59392,61439,511,(t,e)=>{this.sprram[t]=e}],[61440,63487,2047,(t,e)=>{this.vram[t]=e}],[63488,65535,127,(t,e)=>{this.palram[t]=e,this.updatePalette(t)}]]);var t=new Y;this.psg1=new P(t),this.psg2=new P(t),this.audioadapter=new z([this.psg1.psg,this.psg2.psg],2,this.sampleRate),this.connectCPUMemoryBus(this),this.connectCPUIOBus(this.newIOBus()),this.inputs.set([0,0,0,255,255]),this.handler=N(this.inputs,nt)}readConst(t){return this.read(t)}newIOBus(){return{read:t=>(t&=255,t<=4?this.inputs[t]:t>=8&&t<=15?this.inputs[3]:(t>=240&&t<=243,0)),write:(t,e)=>{t&=255,t==224&&(this.watchdog_counter=O),t>=240&&t<=243&&((t&3)==0&&!(e&1)||(e&1)==0&&(this.ctcVector=e&248)),t>=0&&t<=7}}}updatePalette(t){let e=t>>1;if(e>=64)return;let r=this.palram[e*2+1],n=E(r>>6&3),i=E(r&7),a=E(r>>3&7),o=(this.palram[e*2]&1)<<2;n=E(o|r>>6&3),this.palette[e]=4278190080|a<<16|i<<8|n}drawScanline(){let t=this.scanline;if(t>=Z)return;let e=t*T;if((t&1)==0){t>>=1;let r=Math.floor(t/C),n=t%C;if(r<at)for(let i=0;i<H;i++){let a=(r*H+i)*2,o=this.vram[a],l=this.vram[a+1],x=o|(l&3)<<8,h=l>>4&3,F=(l&4)!=0,m=(l&8)!=0?15-n:n,u=i*C*2;this.drawTileLine(e+u,x,m,h,F)}}this.drawSpriteScanline(t,e)}drawTileLine(t,e,r,n,i){let a=q,o=y/2,x=e*32+(r<8,r),h=this.rom[a+x]||0,F=this.rom[a+o+x]||0,d=n*4;for(let m=0;m<8;m++){let u=7-m,p=i?14-m*2:m*2,b=h>>u&1|(F>>u&1)<<1;this.pixels[t+p]=this.pixels[t+p+512]=this.pixels[t+p+1]=this.pixels[t+p+513]=this.palette[d+b]}}drawSpriteScanline(t,e){let r=lt,n=Q/4;for(let i=31;i>=0;i--){let a=i*4,o=this.sprram[a]-2&255;o=496-o;let l=this.sprram[a+1],x=this.sprram[a+2]|(l&8?256:0),h=this.sprram[a+3]-3&511,F=(l&16)!=0,d=(l&32)!=0,u=16+(l&3)*16,p=t-o;if(p<0||p>=32)continue;let b=d?31-p:p,J=x*128+b;for(let f=0;f<4;f++){let M=J+f*32,$=this.rom[r+M]||0,tt=this.rom[r+n+M]||0,et=this.rom[r+n*2+M]||0,rt=this.rom[r+n*3+M]||0;for(let _=0;_<8;_++){let S=7-_,L=$>>S&1|(tt>>S&1)<<1|(et>>S&1)<<2|(rt>>S&1)<<3;if(L==0)continue;let R;F?R=h+31-(f*8+_):R=h+f*8+_,R>=0&&R<T&&(this.pixels[e+R]=this.palette[u+L])}}}}startScanline(){this.audio&&this.audioadapter&&this.audioadapter.generate(this.audio)}advanceFrame(t){var e=super.advanceFrame(t);if(this.watchdog_counter--<=0)throw new G("WATCHDOG FIRED");return this.cpu.interrupt(this.ctcVector),e}reset(){super.reset(),this.watchdog_counter=O,this.interruptEnabled=!1,this.ctcVector=0,this.psg1.reset(),this.psg2.reset()}loadROM(t){this.rom=U(t,this.defaultROMSize);for(let e=0;e<64;e++)this.updatePalette(e*2)}loadState(t){super.loadState(t),this.sprram.set(t.sprram),this.vram.set(t.vram),this.palram.set(t.palram),this.watchdog_counter=t.wdc,this.interruptEnabled=t.ie,this.ctcVector=t.ctcv;for(let e=0;e<64;e++)this.updatePalette(e*2)}saveState(){var t=super.saveState();return t.sprram=this.sprram.slice(0),t.vram=this.vram.slice(0),t.palram=this.palram.slice(0),t.wdc=this.watchdog_counter,t.ie=this.interruptEnabled,t.ctcv=this.ctcVector,t}};var mt=[{id:"minimal.c",name:"Minimal Example"},{id:"gfxtest.c",name:"Graphics Test"}],I=class extends X{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"Program ROM",start:0,size:57344,type:"rom"},{name:"NVRAM",start:57344,size:2048,type:"ram"},{name:"Sprite RAM",start:59392,size:512,type:"ram"},{name:"Video RAM",start:61440,size:2048,type:"ram"},{name:"Palette RAM",start:63488,size:128,type:"ram"}]}}}newMachine(){return new A}getPresets(){return mt}readAddress(t){return this.machine.readConst(t)}readVRAMAddress(t){return t<512?this.machine.sprram[t]:t<2560?this.machine.vram[t-512]:this.machine.palram[t-2560&127]}};B.mcr=I;
//# sourceMappingURL=mcr-OVINHUAG.js.map
File renamed without changes.
+2 -2
View File
@@ -1,4 +1,4 @@
import{c as C}from"./chunk-Q6XQLGXR.js";import{J as x,d as U,e as Q}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{P as t,ba as A,ea as H,l as E,m as O}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var n=H([[A.UP,0,1],[A.DOWN,0,2],[A.LEFT,0,4],[A.RIGHT,0,8],[A.A,0,16],[A.B,0,32],[A.P2_UP,1,1],[A.P2_DOWN,1,2],[A.P2_LEFT,1,4],[A.P2_RIGHT,1,8],[A.P2_A,1,16],[A.P2_B,1,32],[A.ANYKEY,2,0]]),a=0;var i=16,F=[A.VK_7,A.VK_6,A.VK_5,A.VK_4,A.VK_3,A.VK_2,A.VK_1,A.VK_0,A.VK_SEMICOLON,A.VK_CLOSE_BRACKET,A.VK_OPEN_BRACKET,A.VK_BACK_SLASH,A.VK_EQUALS,A.VK_MINUS,A.VK_9,A.VK_8,A.VK_B,A.VK_A,null,A.VK_SLASH,A.VK_PERIOD,A.VK_COMMA,A.VK_ACUTE,A.VK_QUOTE,A.VK_J,A.VK_I,A.VK_H,A.VK_G,A.VK_F,A.VK_E,A.VK_D,A.VK_C,A.VK_R,A.VK_Q,A.VK_P,A.VK_O,A.VK_N,A.VK_M,A.VK_L,A.VK_K,A.VK_Z,A.VK_Y,A.VK_X,A.VK_W,A.VK_V,A.VK_U,A.VK_T,A.VK_S,A.VK_F3,A.VK_F2,A.VK_F1,null,A.VK_CAPS_LOCK,null,A.VK_CONTROL,A.VK_SHIFT,A.VK_ENTER,null,A.VK_BACK_SPACE,null,A.VK_TAB,A.VK_ESCAPE,A.VK_F5,A.VK_F4,A.VK_RIGHT,A.VK_DOWN,A.VK_UP,A.VK_LEFT,A.VK_DELETE,A.VK_INSERT,A.VK_HOME,A.VK_SPACE,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],M=class extends C{constructor(){super();this.numVisibleScanlines=240;this.defaultROMSize=32768;this.ram=new Uint8Array(65536);this.slotmask=0;this.ppi_c=0;this.read=s=>{let e=s>>14<<1,D=this.slotmask>>e&3,g=this.slots[D];return g?g.read(s):0};this.write=(s,e)=>{let D=s>>14<<1,g=this.slotmask>>D&3,B=this.slots[g];B&&B.write(s,e)};this.init(this,this.newIOBus(),new Q(new U)),this.bios=new E().decode(O(atob(h))),this.bios[3541]=0,this.bios[3542]=0,this.bios[3543]=0,this.slots=[{read:s=>this.bios[s]|0,write:(s,e)=>{}},{read:s=>this.rom[s-16384]|0,write:(s,e)=>{}},{read:s=>this.rom[s-16384]|0,write:(s,e)=>{}},{read:s=>this.ram[s]|0,write:(s,e)=>{this.ram[s]=e}}]}loadBIOS(s){this.bios=s}getKeyboardMap(){return n}getKeyboardFunction(){return(s,e,D,g)=>{for(var B=F,T=0;T<B.length;T++)if(B[T]&&B[T].c==e){let R=T>>3,f=7-(T&7);g&1?this.inputs[i+R]|=1<<f:g&64&&(this.inputs[i+R]&=~(1<<f));break}}}newIOBus(){return{read:s=>{switch(s&=255,s){case 152:return this.vdp.readData();case 153:return this.vdp.readStatus();case 162:return this.psg.currentRegister()==14?~this.inputs[a]:this.psg.readData();case 168:return this.slotmask;case 169:return~this.inputs[i+(this.ppi_c&15)];case 170:return this.ppi_c}return 0},write:(s,e)=>{switch(s&=255,e&=255,s){case 152:this.vdp.writeData(e);break;case 153:this.vdp.writeAddress(e);break;case 168:this.slotmask=e;break;case 170:this.ppi_c=e;break;case 171:let D=e>>1&7;this.ppi_c=this.ppi_c&~(1<<D)|(e&1)<<D;break;case 160:this.psg.selectRegister(e);break;case 161:this.psg.setData(e);break;case 252:case 253:case 254:case 255:break}}}}vdpInterrupt(){this.probe.logInterrupt(255),this.cpu.interrupt(255)}loadState(s){super.loadState(s),this.slotmask=s.slotmask,this.ppi_c=s.ppi_c,this.psg.selectRegister(s.psgRegister)}saveState(){var s=super.saveState();return s.slotmask=this.slotmask,s.ppi_c=this.ppi_c,s.psgRegister=this.psg.currentRegister(),s}reset(){super.reset(),this.slotmask=0,this.ppi_c=0}resetInputs(){this.inputs.fill(0)}},h=`
import{c as C}from"./chunk-PKBI5W34.js";import{L as x,d as U,e as Q}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{P as t,ba as A,ea as H,l as E,m as O}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var n=H([[A.UP,0,1],[A.DOWN,0,2],[A.LEFT,0,4],[A.RIGHT,0,8],[A.A,0,16],[A.B,0,32],[A.P2_UP,1,1],[A.P2_DOWN,1,2],[A.P2_LEFT,1,4],[A.P2_RIGHT,1,8],[A.P2_A,1,16],[A.P2_B,1,32],[A.ANYKEY,2,0]]),a=0;var i=16,F=[A.VK_7,A.VK_6,A.VK_5,A.VK_4,A.VK_3,A.VK_2,A.VK_1,A.VK_0,A.VK_SEMICOLON,A.VK_CLOSE_BRACKET,A.VK_OPEN_BRACKET,A.VK_BACK_SLASH,A.VK_EQUALS,A.VK_MINUS,A.VK_9,A.VK_8,A.VK_B,A.VK_A,null,A.VK_SLASH,A.VK_PERIOD,A.VK_COMMA,A.VK_ACUTE,A.VK_QUOTE,A.VK_J,A.VK_I,A.VK_H,A.VK_G,A.VK_F,A.VK_E,A.VK_D,A.VK_C,A.VK_R,A.VK_Q,A.VK_P,A.VK_O,A.VK_N,A.VK_M,A.VK_L,A.VK_K,A.VK_Z,A.VK_Y,A.VK_X,A.VK_W,A.VK_V,A.VK_U,A.VK_T,A.VK_S,A.VK_F3,A.VK_F2,A.VK_F1,null,A.VK_CAPS_LOCK,null,A.VK_CONTROL,A.VK_SHIFT,A.VK_ENTER,null,A.VK_BACK_SPACE,null,A.VK_TAB,A.VK_ESCAPE,A.VK_F5,A.VK_F4,A.VK_RIGHT,A.VK_DOWN,A.VK_UP,A.VK_LEFT,A.VK_DELETE,A.VK_INSERT,A.VK_HOME,A.VK_SPACE,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],M=class extends C{constructor(){super();this.numVisibleScanlines=240;this.defaultROMSize=32768;this.ram=new Uint8Array(65536);this.slotmask=0;this.ppi_c=0;this.read=s=>{let e=s>>14<<1,D=this.slotmask>>e&3,g=this.slots[D];return g?g.read(s):0};this.write=(s,e)=>{let D=s>>14<<1,g=this.slotmask>>D&3,B=this.slots[g];B&&B.write(s,e)};this.init(this,this.newIOBus(),new Q(new U)),this.bios=new E().decode(O(atob(h))),this.bios[3541]=0,this.bios[3542]=0,this.bios[3543]=0,this.slots=[{read:s=>this.bios[s]|0,write:(s,e)=>{}},{read:s=>this.rom[s-16384]|0,write:(s,e)=>{}},{read:s=>this.rom[s-16384]|0,write:(s,e)=>{}},{read:s=>this.ram[s]|0,write:(s,e)=>{this.ram[s]=e}}]}loadBIOS(s){this.bios=s}getKeyboardMap(){return n}getKeyboardFunction(){return(s,e,D,g)=>{for(var B=F,T=0;T<B.length;T++)if(B[T]&&B[T].c==e){let R=T>>3,f=7-(T&7);g&1?this.inputs[i+R]|=1<<f:g&64&&(this.inputs[i+R]&=~(1<<f));break}}}newIOBus(){return{read:s=>{switch(s&=255,s){case 152:return this.vdp.readData();case 153:return this.vdp.readStatus();case 162:return this.psg.currentRegister()==14?~this.inputs[a]:this.psg.readData();case 168:return this.slotmask;case 169:return~this.inputs[i+(this.ppi_c&15)];case 170:return this.ppi_c}return 0},write:(s,e)=>{switch(s&=255,e&=255,s){case 152:this.vdp.writeData(e);break;case 153:this.vdp.writeAddress(e);break;case 168:this.slotmask=e;break;case 170:this.ppi_c=e;break;case 171:let D=e>>1&7;this.ppi_c=this.ppi_c&~(1<<D)|(e&1)<<D;break;case 160:this.psg.selectRegister(e);break;case 161:this.psg.setData(e);break;case 252:case 253:case 254:case 255:break}}}}vdpInterrupt(){this.probe.logInterrupt(255),this.cpu.interrupt(255)}loadState(s){super.loadState(s),this.slotmask=s.slotmask,this.ppi_c=s.ppi_c,this.psg.selectRegister(s.psgRegister)}saveState(){var s=super.saveState();return s.slotmask=this.slotmask,s.ppi_c=this.ppi_c,s.psgRegister=this.psg.currentRegister(),s}reset(){super.reset(),this.slotmask=0,this.ppi_c=0}resetInputs(){this.inputs.fill(0)}},h=`
TFpHAADAAAAAI8Sp+W4NAVo7UZPzwxINvxuYmMPtEADDvyMAw/+T4QAkAMMbEQDDNJPhIZPhc5Ph
JxEhAgAAAMM5EZOhk+HmGMNOEcNYEcMWAsMiAsMuAsNFAsNNAsNVAsNgAsNtAsOBAsOXAsOtAsPU
AgDDXhnDHgPDggPDwgPDBQTDQwTDjwTDtwTD5gTDGQXDbwXDggXDjAXDlwXDOhfDUhfDXBfDahHD
@@ -161,4 +161,4 @@ H5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mf
kx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+T
H5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+THpMc/w==
`;var o=[{id:"helloworld.asm",name:"Hello World (ASM)"},{id:"redbook_kbd.asm",name:"Redbook Keyboard Scanner (ASM)"},{id:"siegegame.c",name:"Siege Game"},{id:"eliza.c",name:"Eliza"},{id:"hello.wiz",name:"Hello (Wiz)"}],l=[{id:"text.c",name:"Text Mode"},{id:"hello.c",name:"Scrolling Text"},{id:"text32.c",name:"32-Column Color Text"},{id:"stars.c",name:"Scrolling Starfield"},{id:"cursorsmooth.c",name:"Moving Cursor"},{id:"simplemusic.c",name:"Simple Music"},{id:"musicplayer.c",name:"Multivoice Music"},{id:"mode2bitmap.c",name:"Mode 2 Bitmap"},{id:"mode2compressed.c",name:"Mode 2 Bitmap (LZG)"},{id:"lines.c",name:"Mode 2 Lines"},{id:"multicolor.c",name:"Multicolor Mode"},{id:"siegegame.c",name:"Siege Game"},{id:"shoot.c",name:"Solarian Game"},{id:"climber.c",name:"Climber Game"}],w=class extends x{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"BIOS",start:0,size:16384,type:"rom"},{name:"RAM",start:49152,size:12800,type:"ram"},{name:"Stack",start:61440,size:768,type:"ram"},{name:"BIOS Work RAM",start:62208,size:3328}]}}}newMachine(){return new M}getPresets(){return o}readAddress(s){return this.machine.read(s)}readVRAMAddress(s){return this.machine.readVRAMAddress(s)}},k=class extends w{getPresets(){return l}};t.msx=w;t["msx-libcv"]=k;
//# sourceMappingURL=msx-JFMR6U4A.js.map
//# sourceMappingURL=msx-H6UPVVEE.js.map
File renamed without changes.
@@ -1,2 +1,2 @@
import{J as u,c as o,t as m}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{P as f,ba as t,ca as c,ea as h,ha as a}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var _=h([[t.A,1,16],[t.LEFT,1,32],[t.RIGHT,1,64],[t.P2_A,2,16],[t.P2_LEFT,2,32],[t.P2_RIGHT,2,64],[t.SELECT,1,1],[t.START,1,4],[t.P2_START,1,2]]),p=256,w=4293848814,b=4278190080,i=class extends m{constructor(){super();this.cpuFrequency=1996800;this.canvasWidth=256;this.numTotalScanlines=262;this.numVisibleScanlines=224;this.cpuCyclesPerLine=Math.floor(1996800/(262*60));this.defaultROMSize=8192;this.rotate=-90;this.sampleRate=1;this.bitshift_offset=0;this.bitshift_register=0;this.cpu=new o;this.ram=new Uint8Array(8192);this.read=a([[0,8191,8191,e=>this.rom?this.rom[e]:0],[8192,16383,8191,e=>this.ram[e]]]);this.write=a([[8192,9215,1023,(e,s)=>{this.ram[e]=s}],[9216,16383,8191,(e,s)=>{this.ram[e]=s;for(var l=e-1024<<3,r=0;r<8;r++)this.pixels[l+r]=s&1<<r?w:b}]]);this.connectCPUMemoryBus(this),this.connectCPUIOBus(this.newIOBus()),this.handler=c(this.inputs,_)}newIOBus(){return{read:e=>{switch(e&=3,e){case 0:case 1:case 2:return this.inputs[e];case 3:return this.bitshift_register>>8-this.bitshift_offset&255}return 0},write:(e,s)=>{switch(e&=7,s&=255,e){case 2:this.bitshift_offset=s&7;break;case 3:case 5:break;case 4:this.bitshift_register=this.bitshift_register>>8|s<<8;break;case 6:this.watchdog_counter=p;break}}}}startScanline(){}drawScanline(){this.scanline==95?this.interrupt(207):this.scanline==223&&this.interrupt(215)}interrupt(e){this.probe.logInterrupt(e),this.cpu.interrupt(e)}advanceFrame(e){return this.watchdog_counter--<=0&&(console.log("WATCHDOG FIRED"),this.reset()),super.advanceFrame(e)}loadState(e){super.loadState(e),this.bitshift_register=e.bsr,this.bitshift_offset=e.bso,this.watchdog_counter=e.wdc}saveState(){var e=super.saveState();return e.bsr=this.bitshift_register,e.bso=this.bitshift_offset,e.wdc=this.watchdog_counter,e}reset(){super.reset(),this.watchdog_counter=p}};var S=[{id:"gfxtest.c",name:"Graphics Test"},{id:"shifter.c",name:"Sprite w/ Bit Shifter"},{id:"game2.c",name:"Cosmic Impalas"}],n=class extends u{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"Frame Buffer",start:9216,size:7168,type:"ram"}]}}}newMachine(){return new i}getPresets(){return S}readAddress(e){return this.machine.read(e)}showHelp(){return"https://8bitworkshop.com/docs/platforms/arcade/index.html#midway-8080"}};f.mw8080bw=n;
//# sourceMappingURL=mw8080bw-ZZ2TCUYV.js.map
import{L as u,c as o,v as m}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{P as f,ba as t,ca as c,ea as h,ha as a}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var _=h([[t.A,1,16],[t.LEFT,1,32],[t.RIGHT,1,64],[t.P2_A,2,16],[t.P2_LEFT,2,32],[t.P2_RIGHT,2,64],[t.SELECT,1,1],[t.START,1,4],[t.P2_START,1,2]]),p=256,w=4293848814,b=4278190080,i=class extends m{constructor(){super();this.cpuFrequency=1996800;this.canvasWidth=256;this.numTotalScanlines=262;this.numVisibleScanlines=224;this.cpuCyclesPerLine=Math.floor(1996800/(262*60));this.defaultROMSize=8192;this.rotate=-90;this.sampleRate=1;this.bitshift_offset=0;this.bitshift_register=0;this.cpu=new o;this.ram=new Uint8Array(8192);this.read=a([[0,8191,8191,e=>this.rom?this.rom[e]:0],[8192,16383,8191,e=>this.ram[e]]]);this.write=a([[8192,9215,1023,(e,s)=>{this.ram[e]=s}],[9216,16383,8191,(e,s)=>{this.ram[e]=s;for(var l=e-1024<<3,r=0;r<8;r++)this.pixels[l+r]=s&1<<r?w:b}]]);this.connectCPUMemoryBus(this),this.connectCPUIOBus(this.newIOBus()),this.handler=c(this.inputs,_)}newIOBus(){return{read:e=>{switch(e&=3,e){case 0:case 1:case 2:return this.inputs[e];case 3:return this.bitshift_register>>8-this.bitshift_offset&255}return 0},write:(e,s)=>{switch(e&=7,s&=255,e){case 2:this.bitshift_offset=s&7;break;case 3:case 5:break;case 4:this.bitshift_register=this.bitshift_register>>8|s<<8;break;case 6:this.watchdog_counter=p;break}}}}startScanline(){}drawScanline(){this.scanline==95?this.interrupt(207):this.scanline==223&&this.interrupt(215)}interrupt(e){this.probe.logInterrupt(e),this.cpu.interrupt(e)}advanceFrame(e){return this.watchdog_counter--<=0&&(console.log("WATCHDOG FIRED"),this.reset()),super.advanceFrame(e)}loadState(e){super.loadState(e),this.bitshift_register=e.bsr,this.bitshift_offset=e.bso,this.watchdog_counter=e.wdc}saveState(){var e=super.saveState();return e.bsr=this.bitshift_register,e.bso=this.bitshift_offset,e.wdc=this.watchdog_counter,e}reset(){super.reset(),this.watchdog_counter=p}};var S=[{id:"gfxtest.c",name:"Graphics Test"},{id:"shifter.c",name:"Sprite w/ Bit Shifter"},{id:"game2.c",name:"Cosmic Impalas"}],n=class extends u{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"Frame Buffer",start:9216,size:7168,type:"ram"}]}}}newMachine(){return new i}getPresets(){return S}readAddress(e){return this.machine.read(e)}showHelp(){return"https://8bitworkshop.com/docs/platforms/arcade/index.html#midway-8080"}};f.mw8080bw=n;
//# sourceMappingURL=mw8080bw-3UNGEVVC.js.map
File renamed without changes.
+2 -2
View File
@@ -1,4 +1,4 @@
import{b as qe}from"./chunk-O3XXQS4T.js";import{a as hs}from"./chunk-SRBQMLE7.js";import{a as ze}from"./chunk-UNDRK5PG.js";import{B as Le,k as Ve,p as we,q as Ge,z as De}from"./chunk-FFJHITEL.js";import{i as he}from"./chunk-UXRCACYH.js";import{$ as Oe,L as Me,P as ie,V as se,Y as re,ba as I,da as Ie,ea as Pe,g as pt,n as Ne}from"./chunk-VZWSP3EG.js";import{a as Be,d as S,f as ss,h as rs,i as c}from"./chunk-N7W4C4V2.js";function v(u,t,e,i,s){for(let r=0;r<s;++r)e[i+r]=u[t+r]}function V(u,t){let e=u.constructor.JSON_PROPERTIES;for(let i=0;i<e.length;i++){let s=e[i],r=u[s],a=t[s];ArrayBuffer.isView(r)&&(Array.isArray(a)||ArrayBuffer.isView(a))?r.set(a):Array.isArray(a)?u[s]=a.slice(0):u[s]=a}}function w(u){let t={},e=u.constructor.JSON_PROPERTIES;for(let i=0;i<e.length;i++){let s=e[i],r=u[s];t[s]=Array.isArray(r)||ArrayBuffer.isView(r)?r.slice(0):r}return t}var H=S(()=>{});var T,Z,k,A,st,M,B,Et,b,y,G,F,as,K,Q,Rt,ns,os,ls,ve,cs,ms,fs,ps,us,xs,ds,Rs,gs,bs,$,ae,ne,Tt,Cs,_s,tt,At,Ss,ys,Ue,Es,et,gt,bt,Ct,ht,it,Ts,As,ks,Fs,_t,St,Bs,Ns,X,Ms,Os,Is,at,oe,le,Ps,Vs,ws,Gs,Ds,Ls,zs,We,qs,vs,ut,kt,nt,ot,lt,ct,mt,ft,yt,D,He,Us,Ws,Hs,Ys,Js,Xs,js,Zs,Ft,ce,Ye=S(()=>{H();T=0,Z=1,k=2,A=3,st=4,M=5,B=6,Et=7,b=8,y=9,G=10,F=11,as=12,K=0,Q=1,Rt=2,ns=3,os=4,ls=5,ve=6,cs=7,ms=8,fs=9,ps=10,us=11,xs=12,ds=13,Rs=14,gs=15,bs=16,$=17,ae=18,ne=19,Tt=20,Cs=21,_s=22,tt=23,At=24,Ss=25,ys=26,Ue=27,Es=28,et=29,gt=30,bt=31,Ct=32,ht=33,it=34,Ts=35,As=36,ks=37,Fs=38,_t=39,St=40,Bs=41,Ns=42,X=43,Ms=44,Os=45,Is=46,at=47,oe=48,le=49,Ps=50,Vs=51,ws=52,Gs=53,Ds=54,Ls=55,zs=56,We=57,qs=58,vs=59,ut=60,kt=61,nt=62,ot=63,lt=64,ct=65,mt=66,ft=67,yt=68,D=69,He=71,Us=72,Ws=73,Hs=74,Ys=75,Js=76,Xs=77,js={ins:-1,mode:0,size:1,cycles:2},Zs={105:{ins:K,mode:M,size:2,cycles:2},101:{ins:K,mode:T,size:2,cycles:3},117:{ins:K,mode:B,size:2,cycles:4},109:{ins:K,mode:A,size:3,cycles:4},125:{ins:K,mode:b,size:3,cycles:4},121:{ins:K,mode:y,size:3,cycles:4},97:{ins:K,mode:G,size:2,cycles:6},113:{ins:K,mode:F,size:2,cycles:5},41:{ins:Q,mode:M,size:2,cycles:2},37:{ins:Q,mode:T,size:2,cycles:3},53:{ins:Q,mode:B,size:2,cycles:4},45:{ins:Q,mode:A,size:3,cycles:4},61:{ins:Q,mode:b,size:3,cycles:4},57:{ins:Q,mode:y,size:3,cycles:4},33:{ins:Q,mode:G,size:2,cycles:6},49:{ins:Q,mode:F,size:2,cycles:5},10:{ins:Rt,mode:st,size:1,cycles:2},6:{ins:Rt,mode:T,size:2,cycles:5},22:{ins:Rt,mode:B,size:2,cycles:6},14:{ins:Rt,mode:A,size:3,cycles:6},30:{ins:Rt,mode:b,size:3,cycles:7},144:{ins:ns,mode:Z,size:2,cycles:2},176:{ins:os,mode:Z,size:2,cycles:2},240:{ins:ls,mode:Z,size:2,cycles:2},48:{ins:cs,mode:Z,size:2,cycles:2},208:{ins:ms,mode:Z,size:2,cycles:2},16:{ins:fs,mode:Z,size:2,cycles:2},80:{ins:us,mode:Z,size:2,cycles:2},112:{ins:xs,mode:Z,size:2,cycles:2},36:{ins:ve,mode:T,size:2,cycles:3},44:{ins:ve,mode:A,size:3,cycles:4},0:{ins:ps,mode:k,size:1,cycles:7},24:{ins:ds,mode:k,size:1,cycles:2},216:{ins:Rs,mode:k,size:1,cycles:2},88:{ins:gs,mode:k,size:1,cycles:2},184:{ins:bs,mode:k,size:1,cycles:2},201:{ins:$,mode:M,size:2,cycles:2},197:{ins:$,mode:T,size:2,cycles:3},213:{ins:$,mode:B,size:2,cycles:4},205:{ins:$,mode:A,size:3,cycles:4},221:{ins:$,mode:b,size:3,cycles:4},217:{ins:$,mode:y,size:3,cycles:4},193:{ins:$,mode:G,size:2,cycles:6},209:{ins:$,mode:F,size:2,cycles:5},224:{ins:ae,mode:M,size:2,cycles:2},228:{ins:ae,mode:T,size:2,cycles:3},236:{ins:ae,mode:A,size:3,cycles:4},192:{ins:ne,mode:M,size:2,cycles:2},196:{ins:ne,mode:T,size:2,cycles:3},204:{ins:ne,mode:A,size:3,cycles:4},198:{ins:Tt,mode:T,size:2,cycles:5},214:{ins:Tt,mode:B,size:2,cycles:6},206:{ins:Tt,mode:A,size:3,cycles:6},222:{ins:Tt,mode:b,size:3,cycles:7},202:{ins:Cs,mode:k,size:1,cycles:2},136:{ins:_s,mode:k,size:1,cycles:2},73:{ins:tt,mode:M,size:2,cycles:2},69:{ins:tt,mode:T,size:2,cycles:3},85:{ins:tt,mode:B,size:2,cycles:4},77:{ins:tt,mode:A,size:3,cycles:4},93:{ins:tt,mode:b,size:3,cycles:4},89:{ins:tt,mode:y,size:3,cycles:4},65:{ins:tt,mode:G,size:2,cycles:6},81:{ins:tt,mode:F,size:2,cycles:5},230:{ins:At,mode:T,size:2,cycles:5},246:{ins:At,mode:B,size:2,cycles:6},238:{ins:At,mode:A,size:3,cycles:6},254:{ins:At,mode:b,size:3,cycles:7},232:{ins:Ss,mode:k,size:1,cycles:2},200:{ins:ys,mode:k,size:1,cycles:2},76:{ins:Ue,mode:A,size:3,cycles:3},108:{ins:Ue,mode:as,size:3,cycles:5},32:{ins:Es,mode:A,size:3,cycles:6},169:{ins:et,mode:M,size:2,cycles:2},165:{ins:et,mode:T,size:2,cycles:3},181:{ins:et,mode:B,size:2,cycles:4},173:{ins:et,mode:A,size:3,cycles:4},189:{ins:et,mode:b,size:3,cycles:4},185:{ins:et,mode:y,size:3,cycles:4},161:{ins:et,mode:G,size:2,cycles:6},177:{ins:et,mode:F,size:2,cycles:5},162:{ins:gt,mode:M,size:2,cycles:2},166:{ins:gt,mode:T,size:2,cycles:3},182:{ins:gt,mode:Et,size:2,cycles:4},174:{ins:gt,mode:A,size:3,cycles:4},190:{ins:gt,mode:y,size:3,cycles:4},160:{ins:bt,mode:M,size:2,cycles:2},164:{ins:bt,mode:T,size:2,cycles:3},180:{ins:bt,mode:B,size:2,cycles:4},172:{ins:bt,mode:A,size:3,cycles:4},188:{ins:bt,mode:b,size:3,cycles:4},74:{ins:Ct,mode:st,size:1,cycles:2},70:{ins:Ct,mode:T,size:2,cycleLine truncated
import{b as qe}from"./chunk-O3XXQS4T.js";import{a as hs}from"./chunk-SRBQMLE7.js";import{a as ze}from"./chunk-JELKPLZC.js";import{B as De,D as Le,m as Ve,r as we,s as Ge}from"./chunk-4YTESWOC.js";import{i as he}from"./chunk-UXRCACYH.js";import{$ as Oe,L as Me,P as ie,V as se,Y as re,ba as I,da as Ie,ea as Pe,g as pt,n as Ne}from"./chunk-VZWSP3EG.js";import{a as Be,d as S,f as ss,h as rs,i as c}from"./chunk-N7W4C4V2.js";function v(u,t,e,i,s){for(let r=0;r<s;++r)e[i+r]=u[t+r]}function V(u,t){let e=u.constructor.JSON_PROPERTIES;for(let i=0;i<e.length;i++){let s=e[i],r=u[s],a=t[s];ArrayBuffer.isView(r)&&(Array.isArray(a)||ArrayBuffer.isView(a))?r.set(a):Array.isArray(a)?u[s]=a.slice(0):u[s]=a}}function w(u){let t={},e=u.constructor.JSON_PROPERTIES;for(let i=0;i<e.length;i++){let s=e[i],r=u[s];t[s]=Array.isArray(r)||ArrayBuffer.isView(r)?r.slice(0):r}return t}var H=S(()=>{});var T,Z,k,A,st,M,B,Et,b,y,G,F,as,K,Q,Rt,ns,os,ls,ve,cs,ms,fs,ps,us,xs,ds,Rs,gs,bs,$,ae,ne,Tt,Cs,_s,tt,At,Ss,ys,Ue,Es,et,gt,bt,Ct,ht,it,Ts,As,ks,Fs,_t,St,Bs,Ns,X,Ms,Os,Is,at,oe,le,Ps,Vs,ws,Gs,Ds,Ls,zs,We,qs,vs,ut,kt,nt,ot,lt,ct,mt,ft,yt,D,He,Us,Ws,Hs,Ys,Js,Xs,js,Zs,Ft,ce,Ye=S(()=>{H();T=0,Z=1,k=2,A=3,st=4,M=5,B=6,Et=7,b=8,y=9,G=10,F=11,as=12,K=0,Q=1,Rt=2,ns=3,os=4,ls=5,ve=6,cs=7,ms=8,fs=9,ps=10,us=11,xs=12,ds=13,Rs=14,gs=15,bs=16,$=17,ae=18,ne=19,Tt=20,Cs=21,_s=22,tt=23,At=24,Ss=25,ys=26,Ue=27,Es=28,et=29,gt=30,bt=31,Ct=32,ht=33,it=34,Ts=35,As=36,ks=37,Fs=38,_t=39,St=40,Bs=41,Ns=42,X=43,Ms=44,Os=45,Is=46,at=47,oe=48,le=49,Ps=50,Vs=51,ws=52,Gs=53,Ds=54,Ls=55,zs=56,We=57,qs=58,vs=59,ut=60,kt=61,nt=62,ot=63,lt=64,ct=65,mt=66,ft=67,yt=68,D=69,He=71,Us=72,Ws=73,Hs=74,Ys=75,Js=76,Xs=77,js={ins:-1,mode:0,size:1,cycles:2},Zs={105:{ins:K,mode:M,size:2,cycles:2},101:{ins:K,mode:T,size:2,cycles:3},117:{ins:K,mode:B,size:2,cycles:4},109:{ins:K,mode:A,size:3,cycles:4},125:{ins:K,mode:b,size:3,cycles:4},121:{ins:K,mode:y,size:3,cycles:4},97:{ins:K,mode:G,size:2,cycles:6},113:{ins:K,mode:F,size:2,cycles:5},41:{ins:Q,mode:M,size:2,cycles:2},37:{ins:Q,mode:T,size:2,cycles:3},53:{ins:Q,mode:B,size:2,cycles:4},45:{ins:Q,mode:A,size:3,cycles:4},61:{ins:Q,mode:b,size:3,cycles:4},57:{ins:Q,mode:y,size:3,cycles:4},33:{ins:Q,mode:G,size:2,cycles:6},49:{ins:Q,mode:F,size:2,cycles:5},10:{ins:Rt,mode:st,size:1,cycles:2},6:{ins:Rt,mode:T,size:2,cycles:5},22:{ins:Rt,mode:B,size:2,cycles:6},14:{ins:Rt,mode:A,size:3,cycles:6},30:{ins:Rt,mode:b,size:3,cycles:7},144:{ins:ns,mode:Z,size:2,cycles:2},176:{ins:os,mode:Z,size:2,cycles:2},240:{ins:ls,mode:Z,size:2,cycles:2},48:{ins:cs,mode:Z,size:2,cycles:2},208:{ins:ms,mode:Z,size:2,cycles:2},16:{ins:fs,mode:Z,size:2,cycles:2},80:{ins:us,mode:Z,size:2,cycles:2},112:{ins:xs,mode:Z,size:2,cycles:2},36:{ins:ve,mode:T,size:2,cycles:3},44:{ins:ve,mode:A,size:3,cycles:4},0:{ins:ps,mode:k,size:1,cycles:7},24:{ins:ds,mode:k,size:1,cycles:2},216:{ins:Rs,mode:k,size:1,cycles:2},88:{ins:gs,mode:k,size:1,cycles:2},184:{ins:bs,mode:k,size:1,cycles:2},201:{ins:$,mode:M,size:2,cycles:2},197:{ins:$,mode:T,size:2,cycles:3},213:{ins:$,mode:B,size:2,cycles:4},205:{ins:$,mode:A,size:3,cycles:4},221:{ins:$,mode:b,size:3,cycles:4},217:{ins:$,mode:y,size:3,cycles:4},193:{ins:$,mode:G,size:2,cycles:6},209:{ins:$,mode:F,size:2,cycles:5},224:{ins:ae,mode:M,size:2,cycles:2},228:{ins:ae,mode:T,size:2,cycles:3},236:{ins:ae,mode:A,size:3,cycles:4},192:{ins:ne,mode:M,size:2,cycles:2},196:{ins:ne,mode:T,size:2,cycles:3},204:{ins:ne,mode:A,size:3,cycles:4},198:{ins:Tt,mode:T,size:2,cycles:5},214:{ins:Tt,mode:B,size:2,cycles:6},206:{ins:Tt,mode:A,size:3,cycles:6},222:{ins:Tt,mode:b,size:3,cycles:7},202:{ins:Cs,mode:k,size:1,cycles:2},136:{ins:_s,mode:k,size:1,cycles:2},73:{ins:tt,mode:M,size:2,cycles:2},69:{ins:tt,mode:T,size:2,cycles:3},85:{ins:tt,mode:B,size:2,cycles:4},77:{ins:tt,mode:A,size:3,cycles:4},93:{ins:tt,mode:b,size:3,cycles:4},89:{ins:tt,mode:y,size:3,cycles:4},65:{ins:tt,mode:G,size:2,cycles:6},81:{ins:tt,mode:F,size:2,cycles:5},230:{ins:At,mode:T,size:2,cycles:5},246:{ins:At,mode:B,size:2,cycles:6},238:{ins:At,mode:A,size:3,cycles:6},254:{ins:At,mode:b,size:3,cycles:7},232:{ins:Ss,mode:k,size:1,cycles:2},200:{ins:ys,mode:k,size:1,cycles:2},76:{ins:Ue,mode:A,size:3,cycles:3},108:{ins:Ue,mode:as,size:3,cycles:5},32:{ins:Es,mode:A,size:3,cycles:6},169:{ins:et,mode:M,size:2,cycles:2},165:{ins:et,mode:T,size:2,cycles:3},181:{ins:et,mode:B,size:2,cycles:4},173:{ins:et,mode:A,size:3,cycles:4},189:{ins:et,mode:b,size:3,cycles:4},185:{ins:et,mode:y,size:3,cycles:4},161:{ins:et,mode:G,size:2,cycles:6},177:{ins:et,mode:F,size:2,cycles:5},162:{ins:gt,mode:M,size:2,cycles:2},166:{ins:gt,mode:T,size:2,cycles:3},182:{ins:gt,mode:Et,size:2,cycles:4},174:{ins:gt,mode:A,size:3,cycles:4},190:{ins:gt,mode:y,size:3,cycles:4},160:{ins:bt,mode:M,size:2,cycles:2},164:{ins:bt,mode:T,size:2,cycles:3},180:{ins:bt,mode:B,size:2,cycles:4},172:{ins:bt,mode:A,size:3,cycles:4},188:{ins:bt,mode:b,size:3,cycles:4},74:{ins:Ct,mode:st,size:1,cycles:2},70:{ins:Ct,mode:T,size:2,cycleLine truncated
`)}var l=i[8194];s+=`
Status `,s+=l&128?"VBLANK ":"- ",s+=l&64?"SPRITE0HIT ":"- ",s+=`
`,e.f_color&&(s+=" Tint "+(e.f_color&1?"RED ":"")+(e.f_color&2?"BLUE ":"")+(e.f_color&4?"GREEN ":"")+`
@@ -23,4 +23,4 @@ IRQ Counter: `+e.irqCounter,s+=`
CHR Select: `+e.chrAddressSelect),s+=`
`,s}startProbing(){var e=new we(this);return this.connectProbe(e),e}stopProbing(){this.connectProbe(null)}connectProbe(e){this.probe=e||this.nullProbe}showHelp(){return"https://8bitworkshop.com/docs/platforms/nes/"}getDebugSymbolFile(){var e=this.debugSymbols.addr2symbol,i="";for(let[s,r]of Object.entries(e)){let a=Number(s),n;a<8192?(a=a%2048,n="R"):a<24576?n="G":a<32768?(a=a-24576,n="S"):(a=a-32768,n="P");let l=a.toString(16).padStart(4,"0").toUpperCase();r[0]>="0"&&r[0]<="9"&&(r="L"+r),r=Me(r,".","_"),i+=`${n}:${l}:${r}
`}return{extension:".mlb",blob:new Blob([i],{type:"text/plain"})}}},Fe=class extends ze{constructor(){super(...arguments);this.getToolForFilename=he;this.getOpcodeMetadata=Le}start(){}loadROM(e,i){if(!this.started)this.startModule(this.mainElement,{jsfile:"mame8bitws.js",driver:"nes",width:256,height:240,romfn:"/emulator/cart.nes",romdata:new Uint8Array(i),preInit:function(a){}});else{var s=i[4]*16384,r=i[5]*8192;this.loadROMFile(i),this.loadRegion(":nes_slot:cart:prg_rom",i.slice(16,16+s)),this.loadRegion(":nes_slot:cart:chr_rom",i.slice(16+s,16+s+r))}}getPresets(){return es}getDefaultExtensions(){return[".c",".cpp",".acme",".xa",".ca65",".dasm",".ecs",".wiz"]}};ie.nes=ke;ie["nes.mame"]=Fe;
//# sourceMappingURL=nes-KNS3DDZZ.js.map
//# sourceMappingURL=nes-ID4YFIRR.js.map
File renamed without changes.
@@ -1,2 +1,2 @@
import{J as B,c as w,t as V}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{P as R,Y as M,ba as x,ca as P,ea as U,ga as E}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var D=U([[x.UP,0,1],[x.LEFT,0,2],[x.RIGHT,0,4],[x.DOWN,0,8],[x.VK_5,0,32],[x.VK_6,0,64],[x.A,0,128],[x.START,1,32],[x.VK_2,1,64]]),l=224,p=288,v=class{constructor(n,r,t,e){this.rom=n;this.vram=r;this.cram=t;this.ram=e;this.tiles=new Uint8Array(256*64);this.sprites=new Uint8Array(64*256);this.colors=new Uint32Array(32);this.paletteRom=new Uint8Array(256);this.spritePos=new Uint8Array(16);this.rebuild()}rebuild(){for(var n=0;n<32;n++){var r=this.rom[24576+n],t=(r>>0&1)*33+(r>>1&1)*71+(r>>2&1)*151,e=(r>>3&1)*33+(r>>4&1)*71+(r>>5&1)*151,i=(r>>6&1)*81+(r>>7&1)*174;this.colors[n]=4278190080|i<<16|e<<8|t}this.paletteRom.set(this.rom.subarray(24832,25088));for(var a=this.rom.subarray(16384,20480),s=0;s<256;s++){var c=this.tiles.subarray(s*64,s*64+64),h=a.subarray(s*16,s*16+16);this.decodeStrip(h,0,c,0,4,8),this.decodeStrip(h,8,c,0,0,8)}for(var o=this.rom.subarray(20480,24576),f=0;f<64;f++){var u=this.sprites.subarray(f*256,f*256+256),m=o.subarray(f*64,f*64+64);this.decodeStrip(m,0,u,8,12,16),this.decodeStrip(m,8,u,8,0,16),this.decodeStrip(m,16,u,8,4,16),this.decodeStrip(m,24,u,8,8,16),this.decodeStrip(m,32,u,0,12,16),this.decodeStrip(m,40,u,0,0,16),this.decodeStrip(m,48,u,0,4,16),this.decodeStrip(m,56,u,0,8,16)}}decodeStrip(n,r,t,e,i,a){for(var s=i*a+e,c=0;c<8;c++)for(var h=n[r+c],o=0;o<4;o++){var f=(3-o)*a+(7-c),u=h>>o&1|(h>>o+4&1)<<1;t[s+f]=u}}getPalette(n,r){n&=63;var t=n*4;r[0]=this.paletteRom[t],r[1]=this.paletteRom[t+1],r[2]=this.paletteRom[t+2],r[3]=this.paletteRom[t+3]}drawTile(n,r,t,e,i){if(!(e<0||e>=l))for(var a=this.tiles.subarray(r*64,r*64+64),s=0;s<64;s++){var c=s&7,h=s>>3,o=e+c;if(!(o<0||o>=l)){var f=t[a[s]&3];n[(i+h)*l+o]=this.colors[f&31]}}}drawSprite(n,r,t,e,i,a,s){if(!(e<=-16||e>l))for(var c=this.sprites.subarray(r*256,r*256+256),h=0;h<256;h++){var o=h&15,f=h>>4,u=c[h]&3;if(t[u]!==0){var m=a?15-o:o,T=s?15-f:f,y=e+m,g=i+T;y<0||y>=l||g<0||g>=p||(n[g*l+y]=this.colors[t[u]&31])}}}drawFrame(n){n.fill(4278190080);for(var r=new Uint8Array(4),t=0,e=34;e<36;e++)for(var i=31;i>=0;i--)this.getPalette(this.cram[t],r),this.drawTile(n,this.vram[t],r,(i-2)*8,e*8),t++;t=64;for(var i=29;i>=2;i--)for(var e=2;e<=33;e++)this.getPalette(this.cram[t],r),this.drawTile(n,this.vram[t],r,(i-2)*8,e*8),t++;t=960;for(var e=0;e<2;e++)for(var i=31;i>=0;i--)this.getPalette(this.cram[t],r),this.drawTile(n,this.vram[t],r,(i-2)*8,e*8),t++;for(var a=7;a>=0;a--){var s=this.ram[1008+a*2],c=this.ram[1008+a*2+1],h=l-this.spritePos[a*2]+15,o=p-this.spritePos[a*2+1]-16;this.getPalette(c,r),this.drawSprite(n,s>>2,r,h,o,!!(s&2),!!(s&1))}}},O=18432e3,C=O/6,k=O/3/192/2,F=C/k,A=256,d=class d extends V{constructor(){super();this.cpuFrequency=C;this.canvasWidth=l;this.numTotalScanlines=p;this.numVisibleScanlines=p;this.defaultROMSize=32768;this.cpuCyclesPerLine=F|0;this.sampleRate=60*264;this.rotate=0;this.cpu=new w;this.ram=new Uint8Array(1024);this.vram=new Uint8Array(1024);this.cram=new Uint8Array(1024);this.oram=new Uint8Array(256);this.interruptEnabled=0;this.interruptVector=255;this.pendingVBlankIsr=!1;this.watchdog_counter=A;this.flipScreen=0;this.soundEnabled=0;this.soundRegs=new Uint8Array(32);this.soundAcc=new Uint32Array(3);this.waveforms=d.WAVEFORMS;this.keyMap=D;this.frameDrawn=!1;this.readByte=r=>{if(r&=65535,r<16384)return this.rom[r];if(r<17408)return this.vram[r-16384];if(r<18432)return this.cram[r-17408];if(r<19456)return 191;if(r<20480)return this.ram[r-19456];if(r<20736){var t=r&192;return t===0?~this.inputs[0]&255|16:t===64?~this.inputs[1]&111|144:t===128?201:255}return r>=32768?this.rom[r&16383]:255};this.writeByte=(r,t)=>{if(r&=65535,!(r<16384)){if(r<17408){this.vram[r-16384]=t;return}if(r<18432){this.cram[r-17408]=t;return}if(!(r<19456)){if(r<20480){this.ram[r-19456]=t;return}if((r&65528)===20480){var e=r&7;e===0&&(this.interruptEnabled=t&1),e===1&&(this.soundEnabled=t&1),e===3&&(this.flipScreen=t&1)}else r>=20544&&r<=20575?this.soundRegs[r-20544]=t&15:(r&65520)===20576?this.gfx.spritePos[r&15]=t:(r&65472)===20672&&(this.watchdog_counter=A)}}};this.connectCPUIOBus({read:r=>255,write:(r,t)=>{(r&255)===0&&(this.interruptVector=t&255)}}),this.connectCPUMemoryBus({read:this.readByte,write:this.writeByte}),this.cpu.retryInterrupts=!0,this.rom=new Uint8Array(this.defaultROMSize),this.gfx=new v(this.rom,this.vram,this.cram,this.ram),this.inputs.fill(0),this.handler=P(this.inputs,this.keyMap)}static buildWaveforms(){for(var r=new Uint8Array(256),t=0;t<32;t++){var e=t/32;r[0+t]=8+Math.sin(e*Math.PI*2)*7.5|0,r[32+t]=t<16?15:0,r[64+t]=t<16?t:31-t,r[96+t]=t>>1,r[128+t]=t<8?15:t<16?0:t<24?10:0,r[160+t]=8+Math.sin(e*Math.PI*4)*7.5|0,r[192+t]=t&1?12:2,r[224+t]=t*3&15}return r}reset(){super.reset(),this.cpu.reset(),this.watchdog_counter=A,this.interruptEnabled=0,this.interruptVector=255,this.pendingVBlankIsr=!1,this.soundEnabled=0,this.soundRegs.fill(Line truncated
//# sourceMappingURL=pacman-5A7HXGRT.js.map
import{L as B,c as w,v as V}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{P as R,Y as M,ba as x,ca as P,ea as U,ga as E}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var D=U([[x.UP,0,1],[x.LEFT,0,2],[x.RIGHT,0,4],[x.DOWN,0,8],[x.VK_5,0,32],[x.VK_6,0,64],[x.A,0,128],[x.START,1,32],[x.VK_2,1,64]]),l=224,p=288,v=class{constructor(n,r,t,e){this.rom=n;this.vram=r;this.cram=t;this.ram=e;this.tiles=new Uint8Array(256*64);this.sprites=new Uint8Array(64*256);this.colors=new Uint32Array(32);this.paletteRom=new Uint8Array(256);this.spritePos=new Uint8Array(16);this.rebuild()}rebuild(){for(var n=0;n<32;n++){var r=this.rom[24576+n],t=(r>>0&1)*33+(r>>1&1)*71+(r>>2&1)*151,e=(r>>3&1)*33+(r>>4&1)*71+(r>>5&1)*151,i=(r>>6&1)*81+(r>>7&1)*174;this.colors[n]=4278190080|i<<16|e<<8|t}this.paletteRom.set(this.rom.subarray(24832,25088));for(var a=this.rom.subarray(16384,20480),s=0;s<256;s++){var c=this.tiles.subarray(s*64,s*64+64),h=a.subarray(s*16,s*16+16);this.decodeStrip(h,0,c,0,4,8),this.decodeStrip(h,8,c,0,0,8)}for(var o=this.rom.subarray(20480,24576),f=0;f<64;f++){var u=this.sprites.subarray(f*256,f*256+256),m=o.subarray(f*64,f*64+64);this.decodeStrip(m,0,u,8,12,16),this.decodeStrip(m,8,u,8,0,16),this.decodeStrip(m,16,u,8,4,16),this.decodeStrip(m,24,u,8,8,16),this.decodeStrip(m,32,u,0,12,16),this.decodeStrip(m,40,u,0,0,16),this.decodeStrip(m,48,u,0,4,16),this.decodeStrip(m,56,u,0,8,16)}}decodeStrip(n,r,t,e,i,a){for(var s=i*a+e,c=0;c<8;c++)for(var h=n[r+c],o=0;o<4;o++){var f=(3-o)*a+(7-c),u=h>>o&1|(h>>o+4&1)<<1;t[s+f]=u}}getPalette(n,r){n&=63;var t=n*4;r[0]=this.paletteRom[t],r[1]=this.paletteRom[t+1],r[2]=this.paletteRom[t+2],r[3]=this.paletteRom[t+3]}drawTile(n,r,t,e,i){if(!(e<0||e>=l))for(var a=this.tiles.subarray(r*64,r*64+64),s=0;s<64;s++){var c=s&7,h=s>>3,o=e+c;if(!(o<0||o>=l)){var f=t[a[s]&3];n[(i+h)*l+o]=this.colors[f&31]}}}drawSprite(n,r,t,e,i,a,s){if(!(e<=-16||e>l))for(var c=this.sprites.subarray(r*256,r*256+256),h=0;h<256;h++){var o=h&15,f=h>>4,u=c[h]&3;if(t[u]!==0){var m=a?15-o:o,T=s?15-f:f,y=e+m,g=i+T;y<0||y>=l||g<0||g>=p||(n[g*l+y]=this.colors[t[u]&31])}}}drawFrame(n){n.fill(4278190080);for(var r=new Uint8Array(4),t=0,e=34;e<36;e++)for(var i=31;i>=0;i--)this.getPalette(this.cram[t],r),this.drawTile(n,this.vram[t],r,(i-2)*8,e*8),t++;t=64;for(var i=29;i>=2;i--)for(var e=2;e<=33;e++)this.getPalette(this.cram[t],r),this.drawTile(n,this.vram[t],r,(i-2)*8,e*8),t++;t=960;for(var e=0;e<2;e++)for(var i=31;i>=0;i--)this.getPalette(this.cram[t],r),this.drawTile(n,this.vram[t],r,(i-2)*8,e*8),t++;for(var a=7;a>=0;a--){var s=this.ram[1008+a*2],c=this.ram[1008+a*2+1],h=l-this.spritePos[a*2]+15,o=p-this.spritePos[a*2+1]-16;this.getPalette(c,r),this.drawSprite(n,s>>2,r,h,o,!!(s&2),!!(s&1))}}},O=18432e3,C=O/6,k=O/3/192/2,F=C/k,A=256,d=class d extends V{constructor(){super();this.cpuFrequency=C;this.canvasWidth=l;this.numTotalScanlines=p;this.numVisibleScanlines=p;this.defaultROMSize=32768;this.cpuCyclesPerLine=F|0;this.sampleRate=60*264;this.rotate=0;this.cpu=new w;this.ram=new Uint8Array(1024);this.vram=new Uint8Array(1024);this.cram=new Uint8Array(1024);this.oram=new Uint8Array(256);this.interruptEnabled=0;this.interruptVector=255;this.pendingVBlankIsr=!1;this.watchdog_counter=A;this.flipScreen=0;this.soundEnabled=0;this.soundRegs=new Uint8Array(32);this.soundAcc=new Uint32Array(3);this.waveforms=d.WAVEFORMS;this.keyMap=D;this.frameDrawn=!1;this.readByte=r=>{if(r&=65535,r<16384)return this.rom[r];if(r<17408)return this.vram[r-16384];if(r<18432)return this.cram[r-17408];if(r<19456)return 191;if(r<20480)return this.ram[r-19456];if(r<20736){var t=r&192;return t===0?~this.inputs[0]&255|16:t===64?~this.inputs[1]&111|144:t===128?201:255}return r>=32768?this.rom[r&16383]:255};this.writeByte=(r,t)=>{if(r&=65535,!(r<16384)){if(r<17408){this.vram[r-16384]=t;return}if(r<18432){this.cram[r-17408]=t;return}if(!(r<19456)){if(r<20480){this.ram[r-19456]=t;return}if((r&65528)===20480){var e=r&7;e===0&&(this.interruptEnabled=t&1),e===1&&(this.soundEnabled=t&1),e===3&&(this.flipScreen=t&1)}else r>=20544&&r<=20575?this.soundRegs[r-20544]=t&15:(r&65520)===20576?this.gfx.spritePos[r&15]=t:(r&65472)===20672&&(this.watchdog_counter=A)}}};this.connectCPUIOBus({read:r=>255,write:(r,t)=>{(r&255)===0&&(this.interruptVector=t&255)}}),this.connectCPUMemoryBus({read:this.readByte,write:this.writeByte}),this.cpu.retryInterrupts=!0,this.rom=new Uint8Array(this.defaultROMSize),this.gfx=new v(this.rom,this.vram,this.cram,this.ram),this.inputs.fill(0),this.handler=P(this.inputs,this.keyMap)}static buildWaveforms(){for(var r=new Uint8Array(256),t=0;t<32;t++){var e=t/32;r[0+t]=8+Math.sin(e*Math.PI*2)*7.5|0,r[32+t]=t<16?15:0,r[64+t]=t<16?t:31-t,r[96+t]=t>>1,r[128+t]=t<8?15:t<16?0:t<24?10:0,r[160+t]=8+Math.sin(e*Math.PI*4)*7.5|0,r[192+t]=t&1?12:2,r[224+t]=t*3&15}return r}reset(){super.reset(),this.cpu.reset(),this.watchdog_counter=A,this.interruptEnabled=0,this.interruptVector=255,this.pendingVBlankIsr=!1,this.soundEnabled=0,this.soundRegs.fill(Line truncated
//# sourceMappingURL=pacman-I4CSCLAQ.js.map
File renamed without changes.
+2 -2
View File
@@ -1,2 +1,2 @@
import{j as p}from"./chunk-FFJHITEL.js";import{a as y}from"./chunk-UXRCACYH.js";import{P as m,V as G,ba as u}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var I=[{id:"gfxtest.c",name:"Graphics Test (tiles/sprites)"},{id:"perftest.c",name:"Graphics Pipeline Benchmark"},{id:"solarian.c",name:"Solarian"},{id:"chase.c",name:"Chase"},{id:"test_conio.c",name:"Hello World (conio)"},{id:"siegegame.c",name:"Siege Game (conio)"},{id:"hello.wiz",name:"Hello World (Wiz)"}],V=class{constructor(t){this.mainElement=t}start(){this.pce=new R,this.video=new G(this.mainElement,684,262,{overscan:!0,aspect:4/3}),this.video.create(),this.pce.SetCanvas(this.video.canvas)}reset(){this.pce.Reset()}isRunning(){return this.pce.TimerID!=null}pause(){this.pce.Pause()}resume(){this.pce.CreateAudioContext(),this.pce.Start()}getPresets(){return I}loadROM(t,e){this.pce.Pause(),this.pce.Init(),this.pce.SetROM(e)}advance(t){return this.pce.Run(),1}getPlatformName(){return"PC Engine"}getToolForFilename(t){return y(t)}getDefaultExtensions(){return[".c",".cpp",".acme",".xa",".ca65",".dasm",".ecs",".wiz"]}showHelp(){return"https://8bitworkshop.com/docs/platforms/pce/"}readAddress(t){return this.pce.Get(t)}writeAddress(t,e){this.pce.Set(t,e)}readVRAMAddress(t){return this.pce.VDC[0].VRAM[t]}};m.pce=V;var R=class{constructor(){this.MainCanvas=null;this.Ctx=null;this.ImageData=null;this.MapperBase=class{constructor(t,e){this.ROM=t,this.Core=e}Init(){}Read(t){return 255}Write(t,e){}};this.VDCSelect=0;this.ScreenWidthMAX=0;this.ScreenHeightMAX=0;this.SuperGrafx=!1,this.CountryTypePCE=64,this.CountryTypeTG16=0,this.CountryType=this.CountryTypePCE,this.GamePadButton6=!1,this.MultiTap=!1,this.EtcConstruct(),this.CPUConstruct(),this.StorageConstruct(),this.VCEConstruct(),this.VPCConstruct(),this.VDCConstruct(),this.SoundConstruct(),this.PSGConstruct(),this.TimerConstruct(),this.JoystickConstruct()}EtcConstruct(){this.TimerID=null,this.MainCanvas=null,this.Ctx=null,this.ImageData=null}UpdateAnimationFrame(){this.TimerID=window.requestAnimationFrame(this.UpdateAnimationFrame.bind(this)),this.Run()}CancelAnimationFrame(){window.cancelAnimationFrame(this.TimerID),this.TimerID=null}Pause(){this.TimerID!=null&&(this.JoystickEventRelease(),this.CancelAnimationFrame())}Start(){this.TimerID==null&&(this.JoystickEventInit(),this.UpdateAnimationFrame())}Run(){for(this.CheckGamePad(),this.DrawFlag=!1;!this.DrawFlag;)this.CPURun(),this.VDCRun(),this.TimerRun(),this.PSGRun()}Reset(){this.StorageReset(),this.Mapper.Init(),this.CPUInit(),this.VCEInit(),this.VPCInit(),this.VDCInit(),this.TimerInit(),this.JoystickInit(),this.PSGInit(),this.CPUReset()}Init(){this.StorageInit(),this.CPUInit(),this.VCEInit(),this.VPCInit(),this.VDCInit(),this.TimerInit(),this.JoystickInit(),this.PSGInit()}SetCanvas(t){if(this.MainCanvas=t,!this.MainCanvas.getContext)return!1;this.Ctx=this.MainCanvas.getContext("2d"),this.ImageData=this.Ctx.createImageData(this.MainCanvas.width,this.MainCanvas.height);for(let e=0;e<this.MainCanvas.width*this.MainCanvas.height*4;e+=4)this.ImageData.data[e]=0,this.ImageData.data[e+1]=0,this.ImageData.data[e+2]=0,this.ImageData.data[e+3]=255;return this.Ctx.putImageData(this.ImageData,0,0),!0}CPUConstruct(){this.OpCycles=[8,7,3,4,6,4,6,7,3,2,2,2,7,5,7,6,2,7,7,4,6,4,6,7,2,5,2,2,7,5,7,6,7,7,3,4,4,4,6,7,3,2,2,2,5,5,7,6,2,7,7,2,4,4,6,7,2,5,2,2,5,5,7,6,7,7,3,4,8,4,6,7,3,2,2,2,4,5,7,6,2,7,7,5,2,4,6,7,2,5,3,2,2,5,7,6,7,7,2,2,4,4,6,7,3,2,2,2,7,5,7,6,2,7,7,0,4,4,6,7,2,5,3,2,7,5,7,6,4,7,2,7,4,4,4,7,2,2,2,2,5,5,5,6,2,7,7,8,4,4,4,7,2,5,2,2,5,5,5,6,2,7,2,7,4,4,4,7,2,2,2,2,5,5,5,6,2,7,7,8,4,4,4,7,2,5,2,2,5,5,5,6,2,7,2,0,4,4,6,7,2,2,2,2,5,5,7,6,2,7,7,0,2,4,6,7,2,5,3,2,2,5,7,6,2,7,2,0,4,4,6,7,2,2,2,2,5,5,7,6,2,7,7,0,2,4,6,7,2,5,3,2,2,5,7,6],this.OpBytes=[0,2,1,2,2,2,2,2,1,2,1,1,3,3,3,0,0,2,2,2,2,2,2,2,1,3,1,1,3,3,3,0,0,2,1,2,2,2,2,2,1,2,1,1,3,3,3,0,0,2,2,1,2,2,2,2,1,3,1,1,3,3,3,0,0,2,1,2,0,2,2,2,1,2,1,1,0,3,3,0,0,2,2,2,1,2,2,2,1,3,1,1,1,3,3,0,0,2,1,1,2,2,2,2,1,2,1,1,0,3,3,0,0,2,2,0,2,2,2,2,1,3,1,1,0,3,3,0,0,2,1,3,2,2,2,2,1,2,1,1,3,3,3,0,0,2,2,4,2,2,2,2,1,3,1,1,3,3,3,0,2,2,2,3,2,2,2,2,1,2,1,1,3,3,3,0,0,2,2,4,2,2,2,2,1,3,1,1,3,3,3,0,2,2,1,0,2,2,2,2,1,2,1,1,3,3,3,0,0,2,2,0,1,2,2,2,1,3,1,1,1,3,3,0,2,2,1,0,2,2,2,2,1,2,1,1,3,3,3,0,0,2,2,0,1,2,2,2,1,3,1,1,1,3,3,0],this.A=0,this.X=0,this.Y=0,this.PC=0,this.S=0,this.P=0,this.NZCacheTable=new Uint8Array(256),this.NZCacheTable=this.NZCacheTable.map((t,e)=>e&128),this.NZCacheTable[0]=2,this.NFlag=128,this.VFlag=64,this.TFlag=32,this.BFlag=16,this.DFlag=8,this.IFlag=4,this.ZFlag=2,this.CFlag=1,this.TIQFlag=4,this.IRQ1Flag=2,this.IRQ2Flag=1,this.ProgressClock=0,this.CPUBaseClock=0,this.BaseClock1=12,this.BaseClock3=6,this.BaseClock5=4,this.BaseClock7=3,this.BaseClock10=2,this.TransferSrc=0,this.TransferDist=0,this.TransferLen=0,this.TransferAlt=0}CPUReset(){this.TransferSrc=0,this.TransferDist=0,this.TransferLen=0,this.TransferAlt=0,this.CPUBaseClock=this.BaseClock1,this.SetIFlag(),this.PC=this.Get16(65534)}CPUInit(){this.A=0,this.XLine truncated
//# sourceMappingURL=pce-7DNGDGLS.js.map
import{l as p}from"./chunk-4YTESWOC.js";import{a as y}from"./chunk-UXRCACYH.js";import{P as m,V as G,ba as u}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var I=[{id:"gfxtest.c",name:"Graphics Test (tiles/sprites)"},{id:"perftest.c",name:"Graphics Pipeline Benchmark"},{id:"solarian.c",name:"Solarian"},{id:"chase.c",name:"Chase"},{id:"test_conio.c",name:"Hello World (conio)"},{id:"siegegame.c",name:"Siege Game (conio)"},{id:"hello.wiz",name:"Hello World (Wiz)"}],V=class{constructor(t){this.mainElement=t}start(){this.pce=new R,this.video=new G(this.mainElement,684,262,{overscan:!0,aspect:4/3}),this.video.create(),this.pce.SetCanvas(this.video.canvas)}reset(){this.pce.Reset()}isRunning(){return this.pce.TimerID!=null}pause(){this.pce.Pause()}resume(){this.pce.CreateAudioContext(),this.pce.Start()}getPresets(){return I}loadROM(t,e){this.pce.Pause(),this.pce.Init(),this.pce.SetROM(e)}advance(t){return this.pce.Run(),1}getPlatformName(){return"PC Engine"}getToolForFilename(t){return y(t)}getDefaultExtensions(){return[".c",".cpp",".acme",".xa",".ca65",".dasm",".ecs",".wiz"]}showHelp(){return"https://8bitworkshop.com/docs/platforms/pce/"}readAddress(t){return this.pce.Get(t)}writeAddress(t,e){this.pce.Set(t,e)}readVRAMAddress(t){return this.pce.VDC[0].VRAM[t]}};m.pce=V;var R=class{constructor(){this.MainCanvas=null;this.Ctx=null;this.ImageData=null;this.MapperBase=class{constructor(t,e){this.ROM=t,this.Core=e}Init(){}Read(t){return 255}Write(t,e){}};this.VDCSelect=0;this.ScreenWidthMAX=0;this.ScreenHeightMAX=0;this.SuperGrafx=!1,this.CountryTypePCE=64,this.CountryTypeTG16=0,this.CountryType=this.CountryTypePCE,this.GamePadButton6=!1,this.MultiTap=!1,this.EtcConstruct(),this.CPUConstruct(),this.StorageConstruct(),this.VCEConstruct(),this.VPCConstruct(),this.VDCConstruct(),this.SoundConstruct(),this.PSGConstruct(),this.TimerConstruct(),this.JoystickConstruct()}EtcConstruct(){this.TimerID=null,this.MainCanvas=null,this.Ctx=null,this.ImageData=null}UpdateAnimationFrame(){this.TimerID=window.requestAnimationFrame(this.UpdateAnimationFrame.bind(this)),this.Run()}CancelAnimationFrame(){window.cancelAnimationFrame(this.TimerID),this.TimerID=null}Pause(){this.TimerID!=null&&(this.JoystickEventRelease(),this.CancelAnimationFrame())}Start(){this.TimerID==null&&(this.JoystickEventInit(),this.UpdateAnimationFrame())}Run(){for(this.CheckGamePad(),this.DrawFlag=!1;!this.DrawFlag;)this.CPURun(),this.VDCRun(),this.TimerRun(),this.PSGRun()}Reset(){this.StorageReset(),this.Mapper.Init(),this.CPUInit(),this.VCEInit(),this.VPCInit(),this.VDCInit(),this.TimerInit(),this.JoystickInit(),this.PSGInit(),this.CPUReset()}Init(){this.StorageInit(),this.CPUInit(),this.VCEInit(),this.VPCInit(),this.VDCInit(),this.TimerInit(),this.JoystickInit(),this.PSGInit()}SetCanvas(t){if(this.MainCanvas=t,!this.MainCanvas.getContext)return!1;this.Ctx=this.MainCanvas.getContext("2d"),this.ImageData=this.Ctx.createImageData(this.MainCanvas.width,this.MainCanvas.height);for(let e=0;e<this.MainCanvas.width*this.MainCanvas.height*4;e+=4)this.ImageData.data[e]=0,this.ImageData.data[e+1]=0,this.ImageData.data[e+2]=0,this.ImageData.data[e+3]=255;return this.Ctx.putImageData(this.ImageData,0,0),!0}CPUConstruct(){this.OpCycles=[8,7,3,4,6,4,6,7,3,2,2,2,7,5,7,6,2,7,7,4,6,4,6,7,2,5,2,2,7,5,7,6,7,7,3,4,4,4,6,7,3,2,2,2,5,5,7,6,2,7,7,2,4,4,6,7,2,5,2,2,5,5,7,6,7,7,3,4,8,4,6,7,3,2,2,2,4,5,7,6,2,7,7,5,2,4,6,7,2,5,3,2,2,5,7,6,7,7,2,2,4,4,6,7,3,2,2,2,7,5,7,6,2,7,7,0,4,4,6,7,2,5,3,2,7,5,7,6,4,7,2,7,4,4,4,7,2,2,2,2,5,5,5,6,2,7,7,8,4,4,4,7,2,5,2,2,5,5,5,6,2,7,2,7,4,4,4,7,2,2,2,2,5,5,5,6,2,7,7,8,4,4,4,7,2,5,2,2,5,5,5,6,2,7,2,0,4,4,6,7,2,2,2,2,5,5,7,6,2,7,7,0,2,4,6,7,2,5,3,2,2,5,7,6,2,7,2,0,4,4,6,7,2,2,2,2,5,5,7,6,2,7,7,0,2,4,6,7,2,5,3,2,2,5,7,6],this.OpBytes=[0,2,1,2,2,2,2,2,1,2,1,1,3,3,3,0,0,2,2,2,2,2,2,2,1,3,1,1,3,3,3,0,0,2,1,2,2,2,2,2,1,2,1,1,3,3,3,0,0,2,2,1,2,2,2,2,1,3,1,1,3,3,3,0,0,2,1,2,0,2,2,2,1,2,1,1,0,3,3,0,0,2,2,2,1,2,2,2,1,3,1,1,1,3,3,0,0,2,1,1,2,2,2,2,1,2,1,1,0,3,3,0,0,2,2,0,2,2,2,2,1,3,1,1,0,3,3,0,0,2,1,3,2,2,2,2,1,2,1,1,3,3,3,0,0,2,2,4,2,2,2,2,1,3,1,1,3,3,3,0,2,2,2,3,2,2,2,2,1,2,1,1,3,3,3,0,0,2,2,4,2,2,2,2,1,3,1,1,3,3,3,0,2,2,1,0,2,2,2,2,1,2,1,1,3,3,3,0,0,2,2,0,1,2,2,2,1,3,1,1,1,3,3,0,2,2,1,0,2,2,2,2,1,2,1,1,3,3,3,0,0,2,2,0,1,2,2,2,1,3,1,1,1,3,3,0],this.A=0,this.X=0,this.Y=0,this.PC=0,this.S=0,this.P=0,this.NZCacheTable=new Uint8Array(256),this.NZCacheTable=this.NZCacheTable.map((t,e)=>e&128),this.NZCacheTable[0]=2,this.NFlag=128,this.VFlag=64,this.TFlag=32,this.BFlag=16,this.DFlag=8,this.IFlag=4,this.ZFlag=2,this.CFlag=1,this.TIQFlag=4,this.IRQ1Flag=2,this.IRQ2Flag=1,this.ProgressClock=0,this.CPUBaseClock=0,this.BaseClock1=12,this.BaseClock3=6,this.BaseClock5=4,this.BaseClock7=3,this.BaseClock10=2,this.TransferSrc=0,this.TransferDist=0,this.TransferLen=0,this.TransferAlt=0}CPUReset(){this.TransferSrc=0,this.TransferDist=0,this.TransferLen=0,this.TransferAlt=0,this.CPUBaseClock=this.BaseClock1,this.SetIFlag(),this.PC=this.Get16(65534)}CPUInit(){this.A=0,this.XLine truncated
//# sourceMappingURL=pce-JCSZGFZE.js.map
File renamed without changes.
+2 -2
View File
@@ -1,4 +1,4 @@
import{a as P,b,c as w}from"./chunk-Q6XQLGXR.js";import{J as u,d as M,f as S}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{P as c,ba as s,ea as g,g as l,ga as p,ha as n}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var A=g([[s.UP,0,1],[s.DOWN,0,2],[s.LEFT,0,4],[s.RIGHT,0,8],[s.A,0,16],[s.B,0,32],[s.GP_A,0,16],[s.GP_B,0,32],[s.P2_UP,0,64],[s.P2_DOWN,0,128],[s.P2_LEFT,1,1],[s.P2_RIGHT,1,2],[s.P2_A,1,4],[s.P2_B,1,8],[s.VK_BACK_SLASH,1,16],[s.VK_ENTER,1,128]]),a=class extends w{constructor(){super();this.numVisibleScanlines=240;this.defaultROMSize=49152;this.ram=new Uint8Array(1024);this.read=n([[49152,65535,1023,e=>this.ram[e]],[0,49151,65535,e=>this.rom&&this.rom[e]]]);this.write=n([[49152,65535,1023,(e,r)=>{this.ram[e]=r}]]);this.init(this,this.newIOBus(),new S(new M))}getKeyboardMap(){return A}vdpInterrupt(){return this.probe.logInterrupt(255),this.cpu.interrupt(255)}getVCounter(){return 0}getHCounter(){return 0}setMemoryControl(e){}setIOPortControl(e){}readIO(e){switch(e&193){case 64:return this.getVCounter();case 65:return this.getHCounter();case 128:return this.vdp.readData();case 129:return this.vdp.readStatus();case 192:return this.inputs[0]^255;case 193:return this.inputs[1]^255}return 0}writeIO(e,r){switch(e&193){case 0:return this.setMemoryControl(r);case 1:return this.setIOPortControl(r);case 64:case 65:return this.psg.setData(r);case 128:return this.vdp.writeData(r);case 129:return this.vdp.writeAddress(r)}}newIOBus(){return{read:e=>(e&=255,this.readIO(e)),write:(e,r)=>{e&=255,r&=255,this.writeIO(e,r)}}}},o=class extends a{constructor(){super(...arguments);this.cartram=new Uint8Array(0);this.pagingRegisters=new Uint8Array(4);this.latchedHCounter=0;this.ioControlFlags=0;this.ram=new Uint8Array(8192);this.read=n([[49152,65535,8191,e=>this.ram[e]],[0,1023,1023,e=>this.rom&&this.rom[e]],[1024,16383,16383,e=>this.getPagedROM(e,1)],[16384,32767,16383,e=>this.getPagedROM(e,2)],[32768,49151,16383,e=>{var r=this.pagingRegisters[0];return r&8?this.cartram[r&4?e+16384:e]:this.getPagedROM(e,3)}]]);this.write=n([[49152,65531,8191,(e,r)=>{this.ram[e]=r}],[65532,65535,3,(e,r)=>{this.pagingRegisters[e]=r,this.ram[e+8188]=r}],[32768,49151,16383,(e,r)=>{var m=this.pagingRegisters[0];m&8&&(this.cartram.length==0&&(this.cartram=new Uint8Array(32768)),this.cartram[m&4?e+16384:e]=r)}]])}newVDP(e,r,m){return new P(e,r,m)}reset(){super.reset(),this.pagingRegisters.set([0,0,1,2])}getVCounter(){var e=this.scanline;return e<=218?e:e-6}getHCounter(){return this.latchedHCounter}computeHCounter(){return 0}setIOPortControl(e){(e^this.ioControlFlags)&160&&(this.latchedHCounter=this.computeHCounter()),this.ioControlFlags=e}getPagedROM(e,r){return this.rom&&this.rom[e+((this.pagingRegisters[r]&this.romPageMask)<<14)]}loadROM(e){if(e.length<=49152)this.rom=p(e,49152),this.romPageMask=3;else switch(e.length){case 65536:case 131072:case 262144:case 524288:this.rom=e,this.romPageMask=(e.length>>14)-1;break;default:throw Error("Unknown rom size: $"+l(e.length))}this.reset()}loadState(e){super.loadState(e),this.pagingRegisters.set(e.pr),this.cartram.set(e.cr),this.latchedHCounter=e.lhc,this.ioControlFlags=e.iocf}saveState(){var e=super.saveState();return e.pr=this.pagingRegisters.slice(0),e.cr=this.cartram.slice(0),e.lhc=this.latchedHCounter,e.iocf=this.ioControlFlags,e}getDebugInfo(e,r){return e==="SMS"?super.getDebugInfo(e,r)+`
import{a as P,b,c as w}from"./chunk-PKBI5W34.js";import{L as u,d as M,f as S}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{P as c,ba as s,ea as g,g as l,ga as p,ha as n}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var A=g([[s.UP,0,1],[s.DOWN,0,2],[s.LEFT,0,4],[s.RIGHT,0,8],[s.A,0,16],[s.B,0,32],[s.GP_A,0,16],[s.GP_B,0,32],[s.P2_UP,0,64],[s.P2_DOWN,0,128],[s.P2_LEFT,1,1],[s.P2_RIGHT,1,2],[s.P2_A,1,4],[s.P2_B,1,8],[s.VK_BACK_SLASH,1,16],[s.VK_ENTER,1,128]]),a=class extends w{constructor(){super();this.numVisibleScanlines=240;this.defaultROMSize=49152;this.ram=new Uint8Array(1024);this.read=n([[49152,65535,1023,e=>this.ram[e]],[0,49151,65535,e=>this.rom&&this.rom[e]]]);this.write=n([[49152,65535,1023,(e,r)=>{this.ram[e]=r}]]);this.init(this,this.newIOBus(),new S(new M))}getKeyboardMap(){return A}vdpInterrupt(){return this.probe.logInterrupt(255),this.cpu.interrupt(255)}getVCounter(){return 0}getHCounter(){return 0}setMemoryControl(e){}setIOPortControl(e){}readIO(e){switch(e&193){case 64:return this.getVCounter();case 65:return this.getHCounter();case 128:return this.vdp.readData();case 129:return this.vdp.readStatus();case 192:return this.inputs[0]^255;case 193:return this.inputs[1]^255}return 0}writeIO(e,r){switch(e&193){case 0:return this.setMemoryControl(r);case 1:return this.setIOPortControl(r);case 64:case 65:return this.psg.setData(r);case 128:return this.vdp.writeData(r);case 129:return this.vdp.writeAddress(r)}}newIOBus(){return{read:e=>(e&=255,this.readIO(e)),write:(e,r)=>{e&=255,r&=255,this.writeIO(e,r)}}}},o=class extends a{constructor(){super(...arguments);this.cartram=new Uint8Array(0);this.pagingRegisters=new Uint8Array(4);this.latchedHCounter=0;this.ioControlFlags=0;this.ram=new Uint8Array(8192);this.read=n([[49152,65535,8191,e=>this.ram[e]],[0,1023,1023,e=>this.rom&&this.rom[e]],[1024,16383,16383,e=>this.getPagedROM(e,1)],[16384,32767,16383,e=>this.getPagedROM(e,2)],[32768,49151,16383,e=>{var r=this.pagingRegisters[0];return r&8?this.cartram[r&4?e+16384:e]:this.getPagedROM(e,3)}]]);this.write=n([[49152,65531,8191,(e,r)=>{this.ram[e]=r}],[65532,65535,3,(e,r)=>{this.pagingRegisters[e]=r,this.ram[e+8188]=r}],[32768,49151,16383,(e,r)=>{var m=this.pagingRegisters[0];m&8&&(this.cartram.length==0&&(this.cartram=new Uint8Array(32768)),this.cartram[m&4?e+16384:e]=r)}]])}newVDP(e,r,m){return new P(e,r,m)}reset(){super.reset(),this.pagingRegisters.set([0,0,1,2])}getVCounter(){var e=this.scanline;return e<=218?e:e-6}getHCounter(){return this.latchedHCounter}computeHCounter(){return 0}setIOPortControl(e){(e^this.ioControlFlags)&160&&(this.latchedHCounter=this.computeHCounter()),this.ioControlFlags=e}getPagedROM(e,r){return this.rom&&this.rom[e+((this.pagingRegisters[r]&this.romPageMask)<<14)]}loadROM(e){if(e.length<=49152)this.rom=p(e,49152),this.romPageMask=3;else switch(e.length){case 65536:case 131072:case 262144:case 524288:this.rom=e,this.romPageMask=(e.length>>14)-1;break;default:throw Error("Unknown rom size: $"+l(e.length))}this.reset()}loadState(e){super.loadState(e),this.pagingRegisters.set(e.pr),this.cartram.set(e.cr),this.latchedHCounter=e.lhc,this.ioControlFlags=e.iocf}saveState(){var e=super.saveState();return e.pr=this.pagingRegisters.slice(0),e.cr=this.cartram.slice(0),e.lhc=this.latchedHCounter,e.iocf=this.ioControlFlags,e}getDebugInfo(e,r){return e==="SMS"?super.getDebugInfo(e,r)+`
Bank Regs: `+this.pagingRegisters+`
`:super.getDebugInfo(e,r)}},x=class extends o{newVDP(t,e,r){return new b(t,e,r)}readIO(t){switch(t&193){case 0:return~this.inputs[1]&128|64;case 220:return this.inputs[0]^255;case 221:return this.inputs[1]^255}return super.readIO(t)}};var R=[{id:"text.c",name:"Text Mode"},{id:"hello.c",name:"Scrolling Text"},{id:"text32.c",name:"32-Column Color Text"},{id:"stars.c",name:"Scrolling Starfield"},{id:"cursorsmooth.c",name:"Moving Cursor"},{id:"simplemusic.c",name:"Simple Music"},{id:"musicplayer.c",name:"Multivoice Music"},{id:"mode2bitmap.c",name:"Mode 2 Bitmap"},{id:"mode2compressed.c",name:"Mode 2 Bitmap (LZG)"},{id:"lines.c",name:"Mode 2 Lines"},{id:"multicolor.c",name:"Multicolor Mode"},{id:"siegegame.c",name:"Siege Game"},{id:"shoot.c",name:"Solarian Game"},{id:"climber.c",name:"Climber Game"}],C=[{id:"mode4test.c",name:"Mode 4 Test"},{id:"text.c",name:"Text Mode"},{id:"hello.c",name:"Scrolling Text"},{id:"text32.c",name:"32-Column Color Text"},{id:"stars.c",name:"Scrolling Starfield"},{id:"cursorsmooth.c",name:"Moving Cursor"},{id:"simplemusic.c",name:"Simple Music"},{id:"musicplayer.c",name:"Multivoice Music"},{id:"siegegame.c",name:"Siege Game"},{id:"climber.c",name:"Climber Game"},{id:"solarian.c",name:"Solarian Game"}],O=[...C],_=[...C],f=class extends u{newMachine(){return new a}getPresets(){return R}readAddress(t){return this.machine.read(t)}readVRAMAddress(t){return this.machine.readVRAMAddress(t)}},d=class extends u{newMachine(){return new o}getPresets(){return O}readAddress(t){return this.machine.read(t)}readVRAMAddress(t){return this.machine.readVRAMAddress(t)}},h=class extends u{newMachine(){return new x}getPresets(){return _}readAddress(t){return this.machine.read(t)}readVRAMAddress(t){return this.machine.readVRAMAddress(t)}};c["sms-sg1000-libcv"]=f;c["sms-sms-libcv"]=d;c["sms-gg-libcv"]=h;export{_ as GG_PRESETS,R as SG1000_PRESETS,O as SMS_PRESETS};
//# sourceMappingURL=sms-53SPECTY.js.map
//# sourceMappingURL=sms-VRS2E636.js.map
File renamed without changes.
@@ -1,2 +1,2 @@
import{E as R,j as w}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{$ as C,P as v,V as x,X as p,ga as P,ha as d}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var T=[],M=function(D){this.__proto__=new R;var t,i,u,f,l,a,c,m,s,_=0,o=0,n,g=14318e3/8,S=1789750/1280,b=g/60,y=g/S;this.getPresets=function(){return T},this.start=function(){i=new p(1024),f={read:d([[0,16383,16383,function(e){return u?u[e]:null}],[16384,24575,1023,function(e){return i.mem[e]}]]),write:d([[16384,24575,1023,function(e,r){i.mem[e]=r}]]),isContended:function(){return!1}},l={read:function(e){if(e&64){if(o==15){var r=t.getTstates()/y&1;return r?255:0}return n.readRegister(o)&255}return 0},write:function(e,r){e&128&&(o=r&15),e&64&&n.writeRegisterAY(o,r&255)}},this.readAddress=f.read,t=this.newCPU(f,l),n=new PsgDeviceChannel,c=new MasterChannel,n.setMode(PsgDeviceChannel.MODE_SIGNED),n.setDevice(PsgDeviceChannel.DEVICE_AY_3_8910),c.addChannel(n),a=new AudioLooper(512),a.setChannel(c),m=new x(D,256,256),m.create(),m.setKeyboardEvents(function(e,r,A){var h=e-49;h>=0&&A&1&&(n.writeRegister(14,h),n.writeRegister(15,128),t.setIFF1(1),t.requestInterrupt(56))}),s=new C(60,()=>{if(this.isRunning()){var e=this.getDebugCallback(),r=t.getTstates()+b;if(e)for(;t.getTstates()<r;)e&&e()&&(e=null),t.runFrame(t.getTstates()+1);else t.runFrame(r)}})},this.loadROM=function(e,r){u=P(r,16384),t.reset()},this.loadState=function(e){t.loadState(e.c),i.mem.set(e.b)},this.saveState=function(){return{c:this.getCPUState(),b:i.mem.slice(0)}},this.getCPUState=function(){return t.saveState()},this.isRunning=function(){return s&&s.isRunning()},this.pause=function(){s.stop()},this.resume=function(){s.start(),a.activate(),w(a.audioContext)},this.reset=function(){t.reset(),this.getDebugCallback()||t.setTstates(0)}};v.sound_konami=M;
//# sourceMappingURL=sound_konami-VGRKDSAC.js.map
import{G as R,l as w}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{$ as C,P as v,V as x,X as p,ga as P,ha as d}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var T=[],M=function(D){this.__proto__=new R;var t,i,u,f,l,a,c,m,s,_=0,o=0,n,g=14318e3/8,S=1789750/1280,b=g/60,y=g/S;this.getPresets=function(){return T},this.start=function(){i=new p(1024),f={read:d([[0,16383,16383,function(e){return u?u[e]:null}],[16384,24575,1023,function(e){return i.mem[e]}]]),write:d([[16384,24575,1023,function(e,r){i.mem[e]=r}]]),isContended:function(){return!1}},l={read:function(e){if(e&64){if(o==15){var r=t.getTstates()/y&1;return r?255:0}return n.readRegister(o)&255}return 0},write:function(e,r){e&128&&(o=r&15),e&64&&n.writeRegisterAY(o,r&255)}},this.readAddress=f.read,t=this.newCPU(f,l),n=new PsgDeviceChannel,c=new MasterChannel,n.setMode(PsgDeviceChannel.MODE_SIGNED),n.setDevice(PsgDeviceChannel.DEVICE_AY_3_8910),c.addChannel(n),a=new AudioLooper(512),a.setChannel(c),m=new x(D,256,256),m.create(),m.setKeyboardEvents(function(e,r,A){var h=e-49;h>=0&&A&1&&(n.writeRegister(14,h),n.writeRegister(15,128),t.setIFF1(1),t.requestInterrupt(56))}),s=new C(60,()=>{if(this.isRunning()){var e=this.getDebugCallback(),r=t.getTstates()+b;if(e)for(;t.getTstates()<r;)e&&e()&&(e=null),t.runFrame(t.getTstates()+1);else t.runFrame(r)}})},this.loadROM=function(e,r){u=P(r,16384),t.reset()},this.loadState=function(e){t.loadState(e.c),i.mem.set(e.b)},this.saveState=function(){return{c:this.getCPUState(),b:i.mem.slice(0)}},this.getCPUState=function(){return t.saveState()},this.isRunning=function(){return s&&s.isRunning()},this.pause=function(){s.stop()},this.resume=function(){s.start(),a.activate(),w(a.audioContext)},this.reset=function(){t.reset(),this.getDebugCallback()||t.setTstates(0)}};v.sound_konami=M;
//# sourceMappingURL=sound_konami-7HJCEIDB.js.map
File renamed without changes.
@@ -1,2 +1,2 @@
import{J as u,c as f,s as o}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{P as m,ha as t}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var h=[{id:"swave.c",name:"Wavetable Synth"}],a=class extends o{constructor(){super();this.cpuFrequency=18432e3/6;this.cpuCyclesPerFrame=this.cpuFrequency/60;this.cpuAudioFactor=32;this.canvasWidth=256;this.numVisibleScanlines=256;this.defaultROMSize=16384;this.sampleRate=this.cpuFrequency;this.overscan=!0;this.ram=new Uint8Array(1024);this.command=0;this.dac=0;this.dac_float=0;this.xpos=0;this.read=t([[0,16383,16383,e=>this.rom&&this.rom[e]],[16384,32767,1023,e=>this.ram[e]]]);this.write=t([[16384,32767,1023,(e,s)=>{this.ram[e]=s}]]);this.cpu=new f,this.connectCPUMemoryBus(this),this.connectCPUIOBus({read:e=>this.command&255,write:(e,s)=>{let r=this.dac=s&255;this.dac_float=(r&128?-256+r:r)/128}})}advanceFrame(e){this.pixels&&this.pixels.fill(0);let s=this.cpuCyclesPerFrame;for(var r=0;r<s&&!(e&&e());)r+=this.advanceCPU();return r}advanceCPU(){var e=super.advanceCPU();return this.audio&&this.audio.feedSample(this.dac_float,e),this.pixels&&!this.cpu.isHalted()&&(this.pixels[(this.xpos>>8&255)+(255-this.dac<<8)]=4281597747,this.xpos=this.xpos+e&16777215),e}setKeyInput(e,s,r){var c=e-49;c>=0&&r&1&&(this.command=c&255,this.cpu.reset())}},i=class extends u{newMachine(){return new a}getPresets(){return h}readAddress(n){return this.machine.read(n)}};m["sound_williams-z80"]=i;export{i as WilliamsSoundPlatform};
//# sourceMappingURL=sound_williams-RA4OKZ2H.js.map
import{L as u,c as f,u as o}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{P as m,ha as t}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var h=[{id:"swave.c",name:"Wavetable Synth"}],a=class extends o{constructor(){super();this.cpuFrequency=18432e3/6;this.cpuCyclesPerFrame=this.cpuFrequency/60;this.cpuAudioFactor=32;this.canvasWidth=256;this.numVisibleScanlines=256;this.defaultROMSize=16384;this.sampleRate=this.cpuFrequency;this.overscan=!0;this.ram=new Uint8Array(1024);this.command=0;this.dac=0;this.dac_float=0;this.xpos=0;this.read=t([[0,16383,16383,e=>this.rom&&this.rom[e]],[16384,32767,1023,e=>this.ram[e]]]);this.write=t([[16384,32767,1023,(e,s)=>{this.ram[e]=s}]]);this.cpu=new f,this.connectCPUMemoryBus(this),this.connectCPUIOBus({read:e=>this.command&255,write:(e,s)=>{let r=this.dac=s&255;this.dac_float=(r&128?-256+r:r)/128}})}advanceFrame(e){this.pixels&&this.pixels.fill(0);let s=this.cpuCyclesPerFrame;for(var r=0;r<s&&!(e&&e());)r+=this.advanceCPU();return r}advanceCPU(){var e=super.advanceCPU();return this.audio&&this.audio.feedSample(this.dac_float,e),this.pixels&&!this.cpu.isHalted()&&(this.pixels[(this.xpos>>8&255)+(255-this.dac<<8)]=4281597747,this.xpos=this.xpos+e&16777215),e}setKeyInput(e,s,r){var c=e-49;c>=0&&r&1&&(this.command=c&255,this.cpu.reset())}},i=class extends u{newMachine(){return new a}getPresets(){return h}readAddress(n){return this.machine.read(n)}};m["sound_williams-z80"]=i;export{i as WilliamsSoundPlatform};
//# sourceMappingURL=sound_williams-BAYSXQOA.js.map
File renamed without changes.
+77 -6
View File
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
exports.TssChannelAdapter = exports.SampledAudio = exports.SampleAudio = exports.AUDIO_CHUNK_SAMPLES = exports.WorkerSoundChannel = exports.POKEYDeviceChannel = exports.SN76489_Audio = exports.AY38910_Audio = exports.MasterAudio = void 0;
exports.newPOKEYAudio = newPOKEYAudio;
exports.setAudioStreamFactory = setAudioStreamFactory;
exports.isAudioBlocked = isAudioBlocked;
exports.onAudioStateChange = onAudioStateChange;
exports.resumeAudioContext = resumeAudioContext;
class MasterAudio {
constructor() {
@@ -350,20 +352,89 @@ exports.AUDIO_CHUNK_SAMPLES = 2048;
// must be called synchronously inside the handler for Safari/iOS to allow it.
// Called on every start(), since stop() suspends the context.
const audioUnlockEvents = ['pointerdown', 'touchend', 'mousedown', 'keydown', 'click'];
const pendingUnlocks = new WeakSet();
const pendingUnlocks = new WeakSet(); // waiting for the first user gesture
const unlockListeners = new WeakSet(); // document gesture handlers installed
// Every AudioContext the IDE starts is registered here so the UI can tell
// whether Web Audio is still waiting for the user gesture that owns the page.
// Browsers keep one suspended until then, and resume() resolves asynchronously,
// so notify listeners on registration, state changes and resume completion.
const audioContexts = new Set();
const audioStateListeners = new Set();
function notifyAudioState() {
for (const listener of Array.from(audioStateListeners))
listener();
}
function markAudioUnlocked(ctx) {
pendingUnlocks.delete(ctx);
notifyAudioState();
}
function trackAudioContext(ctx) {
if (audioContexts.has(ctx))
return;
audioContexts.add(ctx);
if (typeof ctx.addEventListener === 'function') {
ctx.addEventListener('statechange', () => {
if (ctx.state === 'running') {
pendingUnlocks.delete(ctx);
}
else if (ctx.state === 'closed') {
// a closed context can never be resumed, so stop counting it as blocked
audioContexts.delete(ctx);
pendingUnlocks.delete(ctx);
}
notifyAudioState();
});
}
notifyAudioState();
}
/**
* True while an AudioContext is waiting for the user gesture that unlocks
* Web Audio. A context the IDE suspends itself (pause, tab blur) is not blocked;
* it comes back without a gesture.
*/
function isAudioBlocked() {
for (const ctx of audioContexts) {
if (ctx.state !== 'running' && pendingUnlocks.has(ctx))
return true;
}
return false;
}
/** Subscribe to AudioContext creation and state changes. Returns an unsubscribe fn. */
function onAudioStateChange(listener) {
audioStateListeners.add(listener);
return () => { audioStateListeners.delete(listener); };
}
function resumeTrackedContext(ctx) {
const resumed = ctx.resume();
if (resumed && typeof resumed.then === 'function') {
resumed.then(() => {
if (ctx.state === 'running')
markAudioUnlocked(ctx);
else
notifyAudioState();
}, () => { });
}
}
function resumeAudioContext(ctx) {
if (!ctx || ctx.state === 'running')
if (!ctx || ctx.state === 'closed')
return;
ctx.resume().catch(() => { });
if (typeof document === 'undefined' || pendingUnlocks.has(ctx))
trackAudioContext(ctx);
if (ctx.state === 'running') {
pendingUnlocks.delete(ctx);
return;
}
pendingUnlocks.add(ctx);
notifyAudioState(); // show the click hint even if resume() stays suspended
resumeTrackedContext(ctx);
if (typeof document === 'undefined' || unlockListeners.has(ctx))
return;
unlockListeners.add(ctx);
const onGesture = () => {
ctx.resume().catch(() => { });
resumeTrackedContext(ctx);
if (ctx.state === 'running') {
for (const ev of audioUnlockEvents)
document.removeEventListener(ev, onGesture, true);
pendingUnlocks.delete(ctx);
unlockListeners.delete(ctx);
}
};
for (const ev of audioUnlockEvents)
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../../../src/common/audio.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../../../src/common/audio.ts"],"names":[],"mappings":";;;AA8EA,sCAQC;AA6SD,sDAEC;AAqDD,wCAKC;AAGD,gDAGC;AAYD,gDAoBC;AA/dD,MAAa,WAAW;IAAxB;QACE,WAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IAiB/B,CAAC;IAfC,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvB,8DAA8D;YAC9D,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,IAAI;QACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;CACF;AAlBD,kCAkBC;AAED,MAAa,aAAa;IAKxB,YAAY,MAAoB;QAHhC,QAAG,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC7B,WAAM,GAAG,CAAC,CAAC;QAGT,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,KAAK;QACH,KAAK,IAAI,CAAC,GAAC,EAAE,EAAE,CAAC,IAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,cAAc,CAAC,GAAY;QACzB,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,GAAY;QAClB,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IACD,eAAe,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;CAC1C;AA5BD,sCA4BC;AAED,MAAa,aAAa;IAIxB,YAAY,MAAoB;QAFhC,QAAG,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAG3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,KAAK;QACH,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAY;QAClB,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF;AAhBD,sCAgBC;AAED,sCAAsC;AACtC,0DAA0D;AAC1D,iGAAiG;AAEjG,SAAgB,aAAa,CAAC,KAAY;IACxC,IAAI,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,IAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,IAAI,0BAAkB,EAAE,CAAC;QACrC,KAAK,CAAC,OAAO,GAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,eAAe;QACzC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC;IACxB,IAAI,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YAAE,CAAC,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,QAAQ,CAAC,CAAC;IACjB,IAAI,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAC9B,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClB,OAAO,GAAG,CAAC;AACb,CAAC;AAEM,IAAI,kBAAkB,GAAG;IAE9B,oDAAoD;IACpD,IAAI,QAAQ,GAAM,IAAI,CAAA,CAAK,mCAAmC;IAC9D,IAAI,KAAK,GAAS,IAAI,CAAA,CAAK,6BAA6B;IACxD,IAAI,IAAI,GAAU,IAAI,CAAA,CAAK,mCAAmC;IAC9D,IAAI,QAAQ,GAAM,IAAI,CAAA,CAAK,gCAAgC;IAC3D,IAAI,WAAW,GAAG,IAAI,CAAA,CAAK,iBAAiB;IAE5C,mCAAmC;IACnC,IAAI,KAAK,GAAS,IAAI,CAAA,CAAK,6BAA6B;IACxD,IAAI,OAAO,GAAO,IAAI,CAAA,CAAK,kCAAkC;IAC7D,IAAI,OAAO,GAAO,IAAI,CAAA,CAAK,kCAAkC;IAC7D,IAAI,OAAO,GAAO,IAAI,CAAA,CAAK,kCAAkC;IAC7D,IAAI,OAAO,GAAO,IAAI,CAAA,CAAK,kCAAkC;IAC7D,IAAI,UAAU,GAAI,IAAI,CAAA,CAAK,wCAAwC;IACnE,IAAI,UAAU,GAAI,IAAI,CAAA,CAAK,wCAAwC;IACnE,IAAI,QAAQ,GAAM,IAAI,CAAA,CAAK,sCAAsC;IAEjE;2BACuB;IACvB,IAAI,MAAM,GAAQ,EAAE,CAAA,CAAO,yCAAyC;IACpE,IAAI,MAAM,GAAQ,GAAG,CAAA,CAAM,yCAAyC;IAEpE,sDAAsD;IACtD,IAAI,UAAU,GAAI,MAAM,CAAA;IACxB,IAAI,UAAU,GAAI,MAAM,CAAA;IACxB,IAAI,UAAU,GAAI,MAAM,CAAA;IAExB,IAAI,WAAW,GAAG,UAAU,CAAA,CAAI,+BAA+B;IAE/D,8BAA8B;IAC9B,IAAI,KAAK,GAAS,CAAC,CAAA;IACnB,IAAI,KAAK,GAAS,CAAC,CAAA;IACnB,IAAI,KAAK,GAAS,CAAC,CAAA;IACnB,IAAI,KAAK,GAAS,CAAC,CAAA;IACnB,IAAI,KAAK,GAAS,CAAC,CAAA;IACnB,IAAI,KAAK,GAAS,CAAC,CAAA;IACnB,IAAI,KAAK,GAAS,CAAC,CAAA;IACnB,IAAI,KAAK,GAAS,EAAE,CAAA;IACpB,IAAI,MAAM,GAAQ,GAAG,CAAA;IAErB,IAAI,aAAa,GAAO,SAAS,CAAA,CAAE,+BAA+B;IAClE,IAAI,cAAc,GAAM,SAAS,CAAA,CAAE,qCAAqC;IAExE,iBAAiB;IACjB,IAAI,IAAI,GAAG,IAAI,UAAU,CAAE,CAAE,CAAC,CAAE,CAAE,CAAC;IACnC,IAAI,IAAI,GAAG,IAAI,UAAU,CAAE,CAAE,CAAC,EAAC,CAAC,CAAE,CAAE,CAAC,CAAC,QAAQ;IAC9C,IAAI,IAAI,GAAG,IAAI,UAAU,CAAE,CAAE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAE,CAAE,CAAC;IAC/D,IAAI,IAAI,GAAG,IAAI,UAAU,CAAE,CAAE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAE,CAAE,CAAC;IAC/F,IAAI,IAAI,GAAG,IAAI,UAAU,CAAE,CAAE,CAAC,Line truncated
+23
View File
@@ -63,6 +63,7 @@ const baseplatform_1 = require("../common/baseplatform");
const emu_1 = require("../common/emu");
const books_1 = require("../common/books");
const controls_1 = require("../common/controls");
const audio_1 = require("../common/audio");
const hdlhost_1 = require("./hdlhost");
const recorder_1 = require("../common/recorder");
const util_1 = require("../common/util");
@@ -2322,7 +2323,29 @@ function renderControls(div) {
}
return div.children().length > 0;
}
function showAudioHint() {
const hint = $("#emuaudiohint");
if (!hint.length)
return;
let wasBlocked = false;
const update = () => {
if ((0, audio_1.isAudioBlocked)()) {
wasBlocked = true;
hint.show();
}
else {
hint.hide();
if (wasBlocked)
unsubscribe();
}
};
// AudioContext.resume() is async, so wait for the context to actually start
// instead of hiding on the click that asked it to.
const unsubscribe = (0, audio_1.onAudioStateChange)(update);
update();
}
function showInstructions() {
showAudioHint();
var div = $("#emucontrols");
if (!renderControls(div))
return;
+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":"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 truncated
+47
View File
@@ -104,6 +104,33 @@ class SuspendedAudioContext extends FakeAudioContext {
suspend() { this.state = 'suspended'; return Promise.resolve(); }
resume() { this.resumes++; this.state = 'running'; return Promise.resolve(); }
}
// Like a real context: resume() takes a moment, then fires statechange. Used to
// check that the UI hint waits for Web Audio to actually start.
class GestureAudioContext extends FakeAudioContext {
constructor() {
super(...arguments);
this.state = 'suspended';
this.stateListeners = [];
}
addEventListener(type, listener) {
if (type === 'statechange')
this.stateListeners.push(listener);
}
resume() {
return Promise.resolve().then(() => {
this.state = 'running';
for (const listener of this.stateListeners)
listener();
});
}
suspend() {
return Promise.resolve().then(() => {
this.state = 'suspended';
for (const listener of this.stateListeners)
listener();
});
}
}
const RING_BUFFER_SAMPLES = 2048;
function withFakeAudio(fn) {
const prev = global.window;
@@ -148,6 +175,26 @@ function pullBlock(length = RING_BUFFER_SAMPLES) {
global.window = prev;
}
});
(0, mocha_1.it)('reports a context as blocked until its resume() resolves', async function () {
const ctx = new GestureAudioContext();
let changes = 0;
const unsubscribe = (0, audio_1.onAudioStateChange)(() => changes++);
(0, audio_1.resumeAudioContext)(ctx);
assert_1.default.equal((0, audio_1.isAudioBlocked)(), true);
await new Promise((r) => setTimeout(r, 0));
assert_1.default.equal(ctx.state, 'running');
assert_1.default.equal((0, audio_1.isAudioBlocked)(), false);
assert_1.default.ok(changes >= 2, 'expected registration and unlock notifications');
unsubscribe();
});
(0, mocha_1.it)('does not treat a context the IDE suspends as blocked', async function () {
const ctx = new GestureAudioContext();
(0, audio_1.resumeAudioContext)(ctx);
await new Promise((r) => setTimeout(r, 0));
assert_1.default.equal((0, audio_1.isAudioBlocked)(), false);
await ctx.suspend();
assert_1.default.equal((0, audio_1.isAudioBlocked)(), false);
});
});
(0, mocha_1.describe)('SampleAudio ring depth', function () {
(0, mocha_1.afterEach)(function () {
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"testaudio.js","sourceRoot":"","sources":["../../../test/unit/testaudio.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"testaudio.js","sourceRoot":"","sources":["../../../test/unit/testaudio.ts"],"names":[],"mappings":"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 truncated
+71 -71
View File
@@ -1,30 +1,30 @@
import{a as Z0}from"./chunk-NTFEI2OH.js";import{a as I0}from"./chunk-SRBQMLE7.js";import"./chunk-JRMUDXWR.js";import{a as kc}from"./chunk-G3VBABUZ.js";import{a as X0,b as z0,c as DA}from"./chunk-MQGCXKDS.js";import{E as Pc,J as kf,o as L0,v as D0,w as Pf}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{A as Nt,B as Mr,E as wc,G as hr,H as _0,J as vf,K as vo,M as wo,N as wf,O as E0,P as xf,Y as xo,Z as R0,a as Hr,aa as M0,b as La,d as yt,e as Da,f as Zt,g as _e,h as bf,i as k0,ia as xc,k as $0,m as yc,n as Q0,o as Sc,p as vc,q as T0,t as So,w as A0,x as yf,y as C0,z as Sf}from"./chunk-VZWSP3EG.js";import{a as Ue,b as zi,c as Ma,e as gf,g as Of}from"./chunk-N7W4C4V2.js";var Qf=gf((W0,$f)=>{(function(n){if(typeof W0=="object"&&typeof $f!="undefined")$f.exports=n();else if(typeof define=="function"&&define.amd)define([],n);else{var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e=this,e.localforage=n()}})(function(){var n,e,t;return(function r(i,s,o){function a(d,h){if(!s[d]){if(!i[d]){var u=typeof Ma=="function"&&Ma;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(O){var S=i[d][1][O];return a(S||O)},m,m.exports,r,i,s,o)}return s[d].exports}for(var l=typeof Ma=="function"&&Ma,c=0;c<o.length;c++)a(o[c]);return a})({1:[function(r,i,s){(function(o){"use strict";var a=o.MutationObserver||o.WebKitMutationObserver,l;if(a){var c=0,d=new a(O),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=O,l=function(){u.port2.postMessage(0)}}else"document"in o&&"onreadystatechange"in o.document.createElement("script")?l=function(){var x=o.document.createElement("script");x.onreadystatechange=function(){O(),x.onreadystatechange=null,x.parentNode.removeChild(x),x=null},o.document.documentElement.appendChild(x)}:l=function(){setTimeout(O,0)};var f,m=[];function O(){f=!0;for(var x,D,M=m.length;M;){for(D=m,m=[],x=-1;++x<M;)D[x]();M=m.length}f=!1}i.exports=S;function S(x){m.push(x)===1&&!f&&l()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],2:[function(r,i,s){"use strict";var o=r(1);function a(){}var l={},c=["REJECTED"],d=["FULFILLED"],h=["PENDING"];i.exports=u;function u(w){if(typeof w!="function")throw new TypeError("resolver must be a function");this.state=h,this.queue=[],this.outcome=void 0,w!==a&&S(this,w)}u.prototype.catch=function(w){return this.then(null,w)},u.prototype.then=function(w,R){if(typeof w!="function"&&this.state===d||typeof R!="function"&&this.state===c)return this;var X=new this.constructor(a);if(this.state!==h){var W=this.state===d?w:R;m(X,W,this.outcome)}else this.queue.push(new f(X,w,R));return X};function f(w,R,X){this.promise=w,typeof R=="function"&&(this.onFulfilled=R,this.callFulfilled=this.otherCallFulfilled),typeof X=="function"&&(this.onRejected=X,this.callRejected=this.otherCallRejected)}f.prototype.callFulfilled=function(w){l.resolve(this.promise,w)},f.prototype.otherCallFulfilled=function(w){m(this.promise,this.onFulfilled,w)},f.prototype.callRejected=function(w){l.reject(this.promise,w)},f.prototype.otherCallRejected=function(w){m(this.promise,this.onRejected,w)};function m(w,R,X){o(function(){var W;try{W=R(X)}catch(ne){return l.reject(w,ne)}W===w?l.reject(w,new TypeError("Cannot resolve promise with itself")):l.resolve(w,W)})}l.resolve=function(w,R){var X=x(O,R);if(X.status==="error")return l.reject(w,X.value);var W=X.value;if(W)S(w,W);else{w.state=d,w.outcome=R;for(var ne=-1,de=w.queue.length;++ne<de;)w.queue[ne].callFulfilled(R)}return w},l.reject=function(w,R){w.state=c,w.outcome=R;for(var X=-1,W=w.queue.length;++X<W;)w.queue[X].callRejected(R);return w};function O(w){var R=w&&w.then;if(w&&(typeof w=="object"||typeof w=="function")&&typeof R=="function")return function(){R.apply(w,arguments)}}function S(w,R){var X=!1;function W(pe){X||(X=!0,l.reject(w,pe))}function ne(pe){X||(X=!0,l.resolve(w,pe))}function de(){R(ne,W)}var q=x(de);q.status==="error"&&W(q.value)}function x(w,R){var X={};try{X.value=w(R),X.status="success"}catch(W){X.status="error",X.value=W}return X}u.resolve=D;function D(w){return w instanceof this?w:l.resolve(new this(a),w)}u.reject=M;function M(w){var R=new this(a);return l.reject(R,w)}u.all=Z;function Z(w){var R=this;if(Object.prototype.toString.call(w)!=="[object Array]")return this.reject(new TypeError("must be an array"));var X=w.length,W=!1;if(!X)return this.resolve([]);for(var ne=new Array(X),de=0,q=-1,pe=new this(a);++q<X;)ve(w[q],q);return pe;function ve(we,B){R.resolve(we).then(ue,function(G){W||(W=!0,l.reject(pe,G))});function ue(G){ne[B]=G,++de===X&&!W&&(W=!0,l.resolve(pe,ne))}}}u.race=k;function k(w){var R=this;if(Object.prototype.toString.call(w)!=Line truncated
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function hz(n,e){return lz(n)||cz(n,e)||uz(n,e)||dz()}function uz(n,e){if(n){if(typeof n=="string")return PT(n,e);var t={}.toString.call(n).slice(8,-1);return t==="Object"&&n.constructor&&(t=n.constructor.name),t==="Map"||t==="Set"?Array.from(n):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?PT(n,e):void 0}}function Vu(n){var e,t;function r(s,o){try{var a=n[s](o),l=a.value,c=l instanceof az;Promise.resolve(c?l.v:l).then(function(d){if(c){var h=s==="return"&&l.k?s:"next";if(!l.k||d.done)return r(h,d);d=n[h](d).value}i(!!a.done,d)},function(d){r("throw",d)})}catch(d){i(2,d)}}function i(s,o){s===2?e.reject(o):e.resolve({value:o,done:s}),(e=e.next)?r(e.key,e.arg):t=null}this._invoke=function(s,o){return new Promise(function(a,l){var c={key:s,arg:o,resolve:a,reject:l,next:null};t?t=t.next=c:(e=t=c,r(s,o))})},typeof n.return!="function"&&(this.return=void 0)}Vu.prototype[typeof Symbol=="function"&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},Vu.prototype.next=function(n){return this._invoke("next",n)},Vu.prototype.throw=function(n){return this._invoke("throw",n)},Vu.prototype.return=function(n){return this._invoke("return",n)};var XT=Object.entries,kT=Object.setPrototypeOf,fz=Object.isFrozen,pz=Object.getPrototypeOf,mz=Object.getOwnPropertyDescriptor,Wt=Object.freeze,jt=Object.seal,ya=Object.create,zT=typeof Reflect!="undefined"&&Reflect,i0=zT.apply,s0=zT.construct;Wt||(Wt=function(e){return e});jt||(jt=function(e){return e});i0||(i0=function(e,t){for(var r=arguments.length,i=new Array(r>2?r-2:0),s=2;s<r;s++)i[s-2]=arguments[s];return e.apply(t,i)});s0||(s0=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return new e(...r)});var fo=Mt(Array.prototype.forEach);Array.prototype.indexOf;var gz=Mt(Array.prototype.lastIndexOf),$T=Mt(Array.prototype.pop),ic=Mt(Array.prototype.push);Array.prototype.slice;var Oz=Mt(Array.prototype.splice),Sa=Array.isArray,ac=Mt(String.prototype.toLowerCase),Kb=Mt(String.prototype.toString),QT=Mt(String.prototype.match),sc=Mt(String.prototype.replace),TT=Mt(String.prototype.indexOf),bz=Mt(String.prototype.trim),yz=Mt(Number.prototype.toString),Sz=Mt(Boolean.prototype.toString),AT=typeof BigInt=="undefined"?null:Mt(BigInt.prototype.toString),CT=typeof Symbol=="undefined"?null:Mt(Symbol.prototype.toString),Ln=Mt(Object.prototype.hasOwnProperty),oc=Mt(Object.prototype.toString),fn=Mt(RegExp.prototype.test),ps=vz(TypeError);function Mt(n){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return i0(n,e,r)}}function vz(n){return function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return s0(n,t)}}function Fe(n,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ac;if(kT&&kT(n,null),!Sa(e))return n;let r=e.length;for(;r--;){let i=e[r];if(typeof i=="string"){let s=t(i);s!==i&&(fz(e)||(e[r]=s),i=s)}n[i]=!0}return n}function wz(n){for(let e=0;e<n.length;e++)Ln(n,e)||(n[e]=null);return n}function tr(n){let e=ya(null);for(let r of XT(n)){var t=hz(r,2);let i=t[0],s=t[1];Ln(n,i)&&(Sa(s)?e[i]=wz(s):s&&typeof s=="object"&&s.constructor===Object?e[i]=tr(s):e[i]=s)}return e}function xz(n){switch(typeof n){case"string":return n;case"number":return yz(n);case"boolean":return Sz(n);case"bigint":return AT?AT(n):"0";case"symbol":return CT?CT(n):"Symbol()";case"undefined":return oc(n);case"function":case"object":{if(n===null)return oc(n);let e=n,t=kr(e,"toString");if(typeof t=="function"){let r=t(e);return typeof r=="string"?r:oc(r)}return oc(n)}default:return oc(n)}}function kr(n,e){for(;n!==null;){let r=mz(n,e);if(r){if(r.get)return Mt(r.get);if(typeof r.value=="function")return Mt(r.value)}n=pz(n)}function t(){return null}return t}function Pz(n){try{return fn(n,""),!0}catch(e){return!1}}var _T=Wt(["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"]),Jb=Wt(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse Line truncated
`+Ae),vt&&(Ae=Q(Ae)),W&&xt?we(Ae):Ae},e.setConfig=function(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Oi(_),Y=!0,te=ke,ge=be},e.clearConfig=function(){gn=null,Y=!1,te=null,ge=null,W=de,ne=""},e.isValidAttribute=function(_,p,b){gn||Oi({});let T=Te(_),L=Te(p);return Ie(T,L,b)},e.addHook=function(_,p){typeof p=="function"&&Ln(me,_)&&ic(me[_],p)},e.removeHook=function(_,p){if(Ln(me,_)){if(p!==void 0){let b=gz(me[_],p);return b===-1?void 0:Oz(me[_],b,1)[0]}return $T(me[_])}},e.removeHooks=function(_){Ln(me,_)&&(me[_]=[])},e.removeAllHooks=function(){me=IT()},e}var Nz=NT();BT.exports=Nz});var y0=Of(Qf());var $c=[{id:"vcs",title:"Making Games For The Atari 2600",url:"https://www.amazon.com/dp/1541021304",image:"book_a2600.png",platforms:["vcs"]},{id:"arcade",title:"Making 8-bit Arcade Games in C",url:"https://www.amazon.com/dp/1545484759",image:"book_arcade.png",platforms:["mw8080bw","vicdual","galaxian","galaxian-scramble","vector-z80color","williams-z80"]},{id:"verilog",title:"Designing Video Game Hardware in Verilog",url:"https://www.amazon.com/dp/1728619440",image:"book_verilog.png",platforms:["verilog"]},{id:"nes",title:"Making Games for the NES",url:"https://www.amazon.com/dp/1075952727",image:"book_nes.png",platforms:["nes"]},{id:"c64",title:"Making Games for the C-64",url:"https://www.amazon.com/dp/B0DMKH8NGL",image:"book_c64.png",platforms:["c64"]}];function N0(n){var e=Nt(n),t=Mr(n);return $c.find(r=>r.platforms.includes(e))||$c.find(r=>r.platforms.includes(t))}var _s="\u2190\u2191\u2193\u2192";var Tc=[{keys:[_s],action:"Joypad"},{keys:["Space"],action:"Button A"},{keys:["Shift"],action:"Button B"}],Tf=[{keys:[_s],action:"Joystick"},{keys:["Space"],action:"Button 1"},{keys:["Shift"],action:"Button 2"},{keys:["\\"],action:"Coin"},{keys:["Enter"],action:"Start"}],Qc=[...Tc,{keys:["\\"],action:"Select"},{keys:["Enter"],action:"Start"}],B0=[{keys:[_s],action:"Joystick"},{keys:["Space"],action:"Button"}],V0={vcs:B0,c64:B0,apple2:[{keys:["Mouse"],action:"Paddles/Joystick"},{keys:["Click"],action:"Button 1"},{keys:["SHIFT-Click"],action:"Button 2"},{keys:["ALT-Click"],action:"Button 3"}],nes:Qc,atari7800:Qc,pce:Qc,gb:Qc,msx:Tc,coleco:Tc,sms:[...Tc,{keys:["Enter"],action:"Start"}],vicdual:Tf,galaxian:Tf,vector:Tf,mw8080bw:[{keys:["\u2190\xA0\u2192"],action:"Joystick"},{keys:["Space"],action:"Fire"}],williams:[{keys:["A W S D"],action:"Move"},{keys:[_s],action:"Fire"},{keys:["\\"],action:"Coin"},{keys:["Enter"],action:"Start"},{keys:["6 7 8 9"],action:"Extra"}],astrocade:[{keys:[_s],action:"Joystick"},{keys:["Space"],action:"Trigger"},{keys:["Mouse X"],action:"Knob"},{keys:[`U I O P
import{a as X0}from"./chunk-NTFEI2OH.js";import{a as z0}from"./chunk-SRBQMLE7.js";import"./chunk-JRMUDXWR.js";import{a as kc}from"./chunk-G3VBABUZ.js";import{a as W0,b as N0,c as IA}from"./chunk-3H6WIH6E.js";import{G as Pc,L as kf,j as L0,k as D0,q as Z0,x as I0,y as Pf}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{A as Nt,B as Mr,E as wc,G as hr,H as _0,J as vf,K as vo,M as wo,N as wf,O as E0,P as xf,Y as xo,Z as R0,a as Hr,aa as M0,b as La,d as yt,e as Da,f as Zt,g as _e,h as bf,i as k0,ia as xc,k as $0,m as yc,n as Q0,o as Sc,p as vc,q as T0,t as So,w as A0,x as yf,y as C0,z as Sf}from"./chunk-VZWSP3EG.js";import{a as Ue,b as zi,c as Ma,e as gf,g as Of}from"./chunk-N7W4C4V2.js";var Qf=gf((B0,$f)=>{(function(n){if(typeof B0=="object"&&typeof $f!="undefined")$f.exports=n();else if(typeof define=="function"&&define.amd)define([],n);else{var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e=this,e.localforage=n()}})(function(){var n,e,t;return(function r(i,s,o){function a(d,h){if(!s[d]){if(!i[d]){var u=typeof Ma=="function"&&Ma;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(O){var S=i[d][1][O];return a(S||O)},m,m.exports,r,i,s,o)}return s[d].exports}for(var l=typeof Ma=="function"&&Ma,c=0;c<o.length;c++)a(o[c]);return a})({1:[function(r,i,s){(function(o){"use strict";var a=o.MutationObserver||o.WebKitMutationObserver,l;if(a){var c=0,d=new a(O),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=O,l=function(){u.port2.postMessage(0)}}else"document"in o&&"onreadystatechange"in o.document.createElement("script")?l=function(){var x=o.document.createElement("script");x.onreadystatechange=function(){O(),x.onreadystatechange=null,x.parentNode.removeChild(x),x=null},o.document.documentElement.appendChild(x)}:l=function(){setTimeout(O,0)};var f,m=[];function O(){f=!0;for(var x,D,M=m.length;M;){for(D=m,m=[],x=-1;++x<M;)D[x]();M=m.length}f=!1}i.exports=S;function S(x){m.push(x)===1&&!f&&l()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],2:[function(r,i,s){"use strict";var o=r(1);function a(){}var l={},c=["REJECTED"],d=["FULFILLED"],h=["PENDING"];i.exports=u;function u(w){if(typeof w!="function")throw new TypeError("resolver must be a function");this.state=h,this.queue=[],this.outcome=void 0,w!==a&&S(this,w)}u.prototype.catch=function(w){return this.then(null,w)},u.prototype.then=function(w,R){if(typeof w!="function"&&this.state===d||typeof R!="function"&&this.state===c)return this;var X=new this.constructor(a);if(this.state!==h){var W=this.state===d?w:R;m(X,W,this.outcome)}else this.queue.push(new f(X,w,R));return X};function f(w,R,X){this.promise=w,typeof R=="function"&&(this.onFulfilled=R,this.callFulfilled=this.otherCallFulfilled),typeof X=="function"&&(this.onRejected=X,this.callRejected=this.otherCallRejected)}f.prototype.callFulfilled=function(w){l.resolve(this.promise,w)},f.prototype.otherCallFulfilled=function(w){m(this.promise,this.onFulfilled,w)},f.prototype.callRejected=function(w){l.reject(this.promise,w)},f.prototype.otherCallRejected=function(w){m(this.promise,this.onRejected,w)};function m(w,R,X){o(function(){var W;try{W=R(X)}catch(ne){return l.reject(w,ne)}W===w?l.reject(w,new TypeError("Cannot resolve promise with itself")):l.resolve(w,W)})}l.resolve=function(w,R){var X=x(O,R);if(X.status==="error")return l.reject(w,X.value);var W=X.value;if(W)S(w,W);else{w.state=d,w.outcome=R;for(var ne=-1,de=w.queue.length;++ne<de;)w.queue[ne].callFulfilled(R)}return w},l.reject=function(w,R){w.state=c,w.outcome=R;for(var X=-1,W=w.queue.length;++X<W;)w.queue[X].callRejected(R);return w};function O(w){var R=w&&w.then;if(w&&(typeof w=="object"||typeof w=="function")&&typeof R=="function")return function(){R.apply(w,arguments)}}function S(w,R){var X=!1;function W(pe){X||(X=!0,l.reject(w,pe))}function ne(pe){X||(X=!0,l.resolve(w,pe))}function de(){R(ne,W)}var q=x(de);q.status==="error"&&W(q.value)}function x(w,R){var X={};try{X.value=w(R),X.status="success"}catch(W){X.status="error",X.value=W}return X}u.resolve=D;function D(w){return w instanceof this?w:l.resolve(new this(a),w)}u.reject=M;function M(w){var R=new this(a);return l.reject(R,w)}u.all=Z;function Z(w){var R=this;if(Object.prototype.toString.call(w)!=="[object Array]")return this.reject(new TypeError("must be an array"));var X=w.length,W=!1;if(!X)return this.resolve([]);for(var ne=new Array(X),de=0,q=-1,pe=new this(a);++q<X;)ve(w[q],q);return pe;function ve(we,B){R.resolve(we).then(ue,function(G){W||(W=!0,l.reject(pe,G))});function ue(G){ne[B]=G,++de===X&&!W&&(W=!0,l.resolve(pe,ne))}}}u.race=k;function k(w){var R=this;if(Object.prototype.toLine truncated
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function fz(n,e){return dz(n)||hz(n,e)||pz(n,e)||uz()}function pz(n,e){if(n){if(typeof n=="string")return $T(n,e);var t={}.toString.call(n).slice(8,-1);return t==="Object"&&n.constructor&&(t=n.constructor.name),t==="Map"||t==="Set"?Array.from(n):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?$T(n,e):void 0}}function Vu(n){var e,t;function r(s,o){try{var a=n[s](o),l=a.value,c=l instanceof cz;Promise.resolve(c?l.v:l).then(function(d){if(c){var h=s==="return"&&l.k?s:"next";if(!l.k||d.done)return r(h,d);d=n[h](d).value}i(!!a.done,d)},function(d){r("throw",d)})}catch(d){i(2,d)}}function i(s,o){s===2?e.reject(o):e.resolve({value:o,done:s}),(e=e.next)?r(e.key,e.arg):t=null}this._invoke=function(s,o){return new Promise(function(a,l){var c={key:s,arg:o,resolve:a,reject:l,next:null};t?t=t.next=c:(e=t=c,r(s,o))})},typeof n.return!="function"&&(this.return=void 0)}Vu.prototype[typeof Symbol=="function"&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},Vu.prototype.next=function(n){return this._invoke("next",n)},Vu.prototype.throw=function(n){return this._invoke("throw",n)},Vu.prototype.return=function(n){return this._invoke("return",n)};var WT=Object.entries,QT=Object.setPrototypeOf,mz=Object.isFrozen,gz=Object.getPrototypeOf,Oz=Object.getOwnPropertyDescriptor,Wt=Object.freeze,jt=Object.seal,ya=Object.create,NT=typeof Reflect!="undefined"&&Reflect,i0=NT.apply,s0=NT.construct;Wt||(Wt=function(e){return e});jt||(jt=function(e){return e});i0||(i0=function(e,t){for(var r=arguments.length,i=new Array(r>2?r-2:0),s=2;s<r;s++)i[s-2]=arguments[s];return e.apply(t,i)});s0||(s0=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return new e(...r)});var fo=Mt(Array.prototype.forEach);Array.prototype.indexOf;var bz=Mt(Array.prototype.lastIndexOf),TT=Mt(Array.prototype.pop),ic=Mt(Array.prototype.push);Array.prototype.slice;var yz=Mt(Array.prototype.splice),Sa=Array.isArray,ac=Mt(String.prototype.toLowerCase),Kb=Mt(String.prototype.toString),AT=Mt(String.prototype.match),sc=Mt(String.prototype.replace),CT=Mt(String.prototype.indexOf),Sz=Mt(String.prototype.trim),vz=Mt(Number.prototype.toString),wz=Mt(Boolean.prototype.toString),_T=typeof BigInt=="undefined"?null:Mt(BigInt.prototype.toString),ET=typeof Symbol=="undefined"?null:Mt(Symbol.prototype.toString),Ln=Mt(Object.prototype.hasOwnProperty),oc=Mt(Object.prototype.toString),fn=Mt(RegExp.prototype.test),ps=xz(TypeError);function Mt(n){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return i0(n,e,r)}}function xz(n){return function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return s0(n,t)}}function Fe(n,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ac;if(QT&&QT(n,null),!Sa(e))return n;let r=e.length;for(;r--;){let i=e[r];if(typeof i=="string"){let s=t(i);s!==i&&(mz(e)||(e[r]=s),i=s)}n[i]=!0}return n}function Pz(n){for(let e=0;e<n.length;e++)Ln(n,e)||(n[e]=null);return n}function tr(n){let e=ya(null);for(let r of WT(n)){var t=fz(r,2);let i=t[0],s=t[1];Ln(n,i)&&(Sa(s)?e[i]=Pz(s):s&&typeof s=="object"&&s.constructor===Object?e[i]=tr(s):e[i]=s)}return e}function kz(n){switch(typeof n){case"string":return n;case"number":return vz(n);case"boolean":return wz(n);case"bigint":return _T?_T(n):"0";case"symbol":return ET?ET(n):"Symbol()";case"undefined":return oc(n);case"function":case"object":{if(n===null)return oc(n);let e=n,t=kr(e,"toString");if(typeof t=="function"){let r=t(e);return typeof r=="string"?r:oc(r)}return oc(n)}default:return oc(n)}}function kr(n,e){for(;n!==null;){let r=Oz(n,e);if(r){if(r.get)return Mt(r.get);if(typeof r.value=="function")return Mt(r.value)}n=gz(n)}function t(){return null}return t}function $z(n){try{return fn(n,""),!0}catch(e){return!1}}var RT=Wt(["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"]),Jb=Wt(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse Line truncated
`+Ae),vt&&(Ae=Q(Ae)),W&&xt?we(Ae):Ae},e.setConfig=function(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Oi(_),Y=!0,te=ke,ge=be},e.clearConfig=function(){gn=null,Y=!1,te=null,ge=null,W=de,ne=""},e.isValidAttribute=function(_,p,b){gn||Oi({});let T=Te(_),L=Te(p);return Ie(T,L,b)},e.addHook=function(_,p){typeof p=="function"&&Ln(me,_)&&ic(me[_],p)},e.removeHook=function(_,p){if(Ln(me,_)){if(p!==void 0){let b=bz(me[_],p);return b===-1?void 0:yz(me[_],b,1)[0]}return TT(me[_])}},e.removeHooks=function(_){Ln(me,_)&&(me[_]=[])},e.removeAllHooks=function(){me=zT()},e}var Vz=VT();FT.exports=Vz});var y0=Of(Qf());var $c=[{id:"vcs",title:"Making Games For The Atari 2600",url:"https://www.amazon.com/dp/1541021304",image:"book_a2600.png",platforms:["vcs"]},{id:"arcade",title:"Making 8-bit Arcade Games in C",url:"https://www.amazon.com/dp/1545484759",image:"book_arcade.png",platforms:["mw8080bw","vicdual","galaxian","galaxian-scramble","vector-z80color","williams-z80"]},{id:"verilog",title:"Designing Video Game Hardware in Verilog",url:"https://www.amazon.com/dp/1728619440",image:"book_verilog.png",platforms:["verilog"]},{id:"nes",title:"Making Games for the NES",url:"https://www.amazon.com/dp/1075952727",image:"book_nes.png",platforms:["nes"]},{id:"c64",title:"Making Games for the C-64",url:"https://www.amazon.com/dp/B0DMKH8NGL",image:"book_c64.png",platforms:["c64"]}];function V0(n){var e=Nt(n),t=Mr(n);return $c.find(r=>r.platforms.includes(e))||$c.find(r=>r.platforms.includes(t))}var _s="\u2190\u2191\u2193\u2192";var Tc=[{keys:[_s],action:"Joypad"},{keys:["Space"],action:"Button A"},{keys:["Shift"],action:"Button B"}],Tf=[{keys:[_s],action:"Joystick"},{keys:["Space"],action:"Button 1"},{keys:["Shift"],action:"Button 2"},{keys:["\\"],action:"Coin"},{keys:["Enter"],action:"Start"}],Qc=[...Tc,{keys:["\\"],action:"Select"},{keys:["Enter"],action:"Start"}],F0=[{keys:[_s],action:"Joystick"},{keys:["Space"],action:"Button"}],Y0={vcs:F0,c64:F0,apple2:[{keys:["Mouse"],action:"Paddles/Joystick"},{keys:["Click"],action:"Button 1"},{keys:["SHIFT-Click"],action:"Button 2"},{keys:["ALT-Click"],action:"Button 3"}],nes:Qc,atari7800:Qc,pce:Qc,gb:Qc,msx:Tc,coleco:Tc,sms:[...Tc,{keys:["Enter"],action:"Start"}],vicdual:Tf,galaxian:Tf,vector:Tf,mw8080bw:[{keys:["\u2190\xA0\u2192"],action:"Joystick"},{keys:["Space"],action:"Fire"}],williams:[{keys:["A W S D"],action:"Move"},{keys:[_s],action:"Fire"},{keys:["\\"],action:"Coin"},{keys:["Enter"],action:"Start"},{keys:["6 7 8 9"],action:"Extra"}],astrocade:[{keys:[_s],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:[_s],action:"Joystick"},{keys:["Z X C V"],action:"Buttons"}],atari8:[{keys:[_s],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 ZA={left:"arrowleft",right:"arrowright",up:"arrowup",down:"arrowdown"},Af=null;function Po(){if(Af===null){var n=typeof navigator!="undefined"?navigator:null;Af=!!n&&/mac|iphone|ipad|ipod/i.test(n.platform||n.userAgent||"")}return Af}function _f(n){var e=n.toLowerCase().split("+"),t=e.pop(),r={mod:!1,shift:!1,key:""};for(var i of e)if(i=="mod"||i=="ctrl"||i=="meta"||i=="cmd")r.mod=!0;else if(i=="shift")r.shift=!0;else return console.warn('Keyboard shortcut "'+n+'": unsupported modifier "'+i+'" (alt is layout-dependent), skipping'),null;t=ZA[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 "'+n+'": key "'+t+'" is layout-dependent (use a-z, 0-9, f1-f12), skipping'),null):r.shift&&!s&&!/^arrow/.test(t)?(console.warn('Keyboard shortcut "'+n+'": shift is only allowed with letters and arrows, skipping'),null):(r.key=t,r)}function IA(n,e){if(e.altKey)return!1;var t=Po(),r=t?e.metaKey:e.ctrlKey,i=t?e.ctrlKey:e.metaKey;return n.mod!==r||i||n.shift!==e.shiftKey?!1:(e.key||"").toLowerCase()===n.key}var Ac=class{constructor(){this.bindings=[];this.handler=e=>{if(!e.defaultPrevented)for(var t=0;t<this.bindings.length;t++){var r=this.bindings[t];if(IA(r.binding,e)){e.preventDefault(),e.stopPropagation(),r.fn(e);return}}}}bind(e,t){var r=_f(e);r&&this.bindings.push({binding:r,fn:t})}unbindAll(){this.bindings=[]}attach(){window.addEventListener("keydown",this.handler)}detach(){window.removeEventListener("keydown",this.handler)}},XA={mod:"Mod",cmd:"Mod",meta:"Mod",ctrl:"Ctrl",control:"Ctrl",shift:"Shift",alt:"Alt",option:"Alt"},Cf=null;function zA(){if(Cf===null){var n=typeof navigator!="undefined"?navigator:null;Cf=!!n&&/win/i.test(n.platform||n.userAgent||"")}return Cf}function F0(n){var e=n.split("-"),t=e.pop();t===""&&(t="-");var r=[];for(var i of e)if(i!==""){var s=XA[i.toLowerCase()]||i;s=="Ctrl"&&!Po()&&(s="Mod"),r.indexOf(s)<0&&r.push(s)}return r.sort(),r.concat([t.toLowerCase()]).join("-")}function WA(n){var e=Po()?n.mac:zA()?n.win:n.linux;return e||n.key}var Ef=["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 Rf(n,e){var t=e.map(F0);return n.filter(function(r){var i=WA(r);return!i||t.indexOf(F0(i))<0})}var NA={shift:"\u21E7",ctrl:"\u2303",alt:"\u2325",meta:"\u2318",mod:"\u2318",cmd:"\u2318"},BA={shift:"Shift",ctrl:"Ctrl",alt:"Alt",meta:"Win",mod:"Ctrl",cmd:"Cmd"},VA={arrowleft:"\u2190",arrowright:"\u2192",arrowup:"\u2191",arrowdown:"\u2193",backspace:"\u232B",enter:"\u21A9",tab:"\u21E5",escape:"\u238B",space:"\u2423"};function Lf(n){var e=n.toLowerCase().split("+"),t=e.pop(),r=Po(),i=r?["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=>r?NA[c]||c:BA[c]||c).join(r?"":"+"),l=/^[a-z][0-9]?$/.test(t)?t.toUpperCase():VA[t]||(r?t:t.charAt(0).toUpperCase()+t.slice(1));return(a?a+(r?"":"+"):"")+l}var Mf=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(Za){this.pendingShortcuts=!0;return}this.shortcutsSig=t,this.shortcutsZone.empty();for(var r of e){var i=$(document.createElement("span")).addClass("shortcut");i.append($(document.createElement("kbd")).text(Lf(r.key))),i.append(document.createTextNode(" "+r.label)),r.fn&&Y0(i,r.fn),this.shortcutsZone.append(i)}}}}setStatus(e,t){t?this.status[e]=t:delete this.status[e],this.renderStatus()}renderStatus(){if(this.visible){if(Za){this.pendingStatus=!0;return}this.statusZone.empty();for(var e of Object.keys(this.status)){var t=this.status[e],r=$(document.createElement("span")).addClass("status_item");t.cls&&r.addClass(t.cls),t.title&&r.prop("title",t.title),r.text(t.text),t.fn&&Y0(r,t.fn),this.statusZone.append(r)}}}};function Y0(n,e){n.addClass("clickable"),n.mousedown(t=>t.preventDefault()),n.click(e)}var Za=!1;function j0(){zn&&(zn.pendingShortcuts&&(zn.pendingShortcuts=!1,Wn()),zn.pendingStatus&&(zn.pendingStatus=!1,zn.renderStatus()))}function FA(){$(document).on("mousedown.shortcutbar",()=>{Za=!0}),$(document).on( Line truncated
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function eC(n,e){return HA(n)||KA(n,e)||tC(n,e)||JA()}function tC(n,e){if(n){if(typeof n=="string")return iy(n,e);var t={}.toString.call(n).slice(8,-1);return t==="Object"&&n.constructor&&(t=n.constructor.name),t==="Map"||t==="Set"?Array.from(n):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?iy(n,e):void 0}}function Ec(n){var e,t;function r(s,o){try{var a=n[s](o),l=a.value,c=l instanceof GA;Promise.resolve(c?l.v:l).then(function(d){if(c){var h=s==="return"&&l.k?s:"next";if(!l.k||d.done)return r(h,d);d=n[h](d).value}i(!!a.done,d)},function(d){r("throw",d)})}catch(d){i(2,d)}}function i(s,o){s===2?e.reject(o):e.resolve({value:o,done:s}),(e=e.next)?r(e.key,e.arg):t=null}this._invoke=function(s,o){return new Promise(function(a,l){var c={key:s,arg:o,resolve:a,reject:l,next:null};t?t=t.next=c:(e=t=c,r(s,o))})},typeof n.return!="function"&&(this.return=void 0)}Ec.prototype[typeof Symbol=="function"&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},Ec.prototype.next=function(n){return this._invoke("next",n)},Ec.prototype.throw=function(n){return this._invoke("throw",n)},Ec.prototype.return=function(n){return this._invoke("return",n)};var yy=Object.entries,sy=Object.setPrototypeOf,nC=Object.isFrozen,rC=Object.getPrototypeOf,iC=Object.getOwnPropertyDescriptor,It=Object.freeze,Bt=Object.seal,ko=Object.create,Sy=typeof Reflect!="undefined"&&Reflect,Nf=Sy.apply,Bf=Sy.construct;It||(It=function(e){return e});Bt||(Bt=function(e){return e});Nf||(Nf=function(e,t){for(var r=arguments.length,i=new Array(r>2?r-2:0),s=2;s<r;s++)i[s-2]=arguments[s];return e.apply(t,i)});Bf||(Bf=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return new e(...r)});var Es=Tt(Array.prototype.forEach);Array.prototype.indexOf;var sC=Tt(Array.prototype.lastIndexOf),oy=Tt(Array.prototype.pop),Ia=Tt(Array.prototype.push);Array.prototype.slice;var oC=Tt(Array.prototype.splice),$o=Array.isArray,Wa=Tt(String.prototype.toLowerCase),Df=Tt(String.prototype.toString),ay=Tt(String.prototype.match),Xa=Tt(String.prototype.replace),ly=Tt(String.prototype.indexOf),aC=Tt(String.prototype.trim),lC=Tt(Number.prototype.toString),cC=Tt(Boolean.prototype.toString),cy=typeof BigInt=="undefined"?null:Tt(BigInt.prototype.toString),dy=typeof Symbol=="undefined"?null:Tt(Symbol.prototype.toString),Qn=Tt(Object.prototype.hasOwnProperty),za=Tt(Object.prototype.toString),on=Tt(RegExp.prototype.test),Ni=dC(TypeError);function Tt(n){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return Nf(n,e,r)}}function dC(n){return function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return Bf(n,t)}}function Ve(n,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Wa;if(sy&&sy(n,null),!$o(e))return n;let r=e.length;for(;r--;){let i=e[r];if(typeof i=="string"){let s=t(i);s!==i&&(nC(e)||(e[r]=s),i=s)}n[i]=!0}return n}function hC(n){for(let e=0;e<n.length;e++)Qn(n,e)||(n[e]=null);return n}function Vn(n){let e=ko(null);for(let r of yy(n)){var t=eC(r,2);let i=t[0],s=t[1];Qn(n,i)&&($o(s)?e[i]=hC(s):s&&typeof s=="object"&&s.constructor===Object?e[i]=Vn(s):e[i]=s)}return e}function uC(n){switch(typeof n){case"string":return n;case"number":return lC(n);case"boolean":return cC(n);case"bigint":return cy?cy(n):"0";case"symbol":return dy?dy(n):"Symbol()";case"undefined":return za(n);case"function":case"object":{if(n===null)return za(n);let e=n,t=ur(e,"toString");if(typeof t=="function"){let r=t(e);return typeof r=="string"?r:za(r)}return za(n)}default:return za(n)}}function ur(n,e){for(;n!==null;){let r=iC(n,e);if(r){if(r.get)return Tt(r.get);if(typeof r.value=="function")return Tt(r.value)}n=rC(n)}function t(){return null}return t}function fC(n){try{return on(n,""),!0}catch(e){return!1}}var hy=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"]),Zf=It(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse Line truncated
`+Ae),vt&&(Ae=Q(Ae)),W&&xt?we(Ae):Ae},e.setConfig=function(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Oi(_),Y=!0,te=ke,ge=be},e.clearConfig=function(){gn=null,Y=!1,te=null,ge=null,W=de,ne=""},e.isValidAttribute=function(_,p,b){gn||Oi({});let T=Te(_),L=Te(p);return Ie(T,L,b)},e.addHook=function(_,p){typeof p=="function"&&Qn(me,_)&&Ia(me[_],p)},e.removeHook=function(_,p){if(Qn(me,_)){if(p!==void 0){let b=sC(me[_],p);return b===-1?void 0:oC(me[_],b,1)[0]}return oy(me[_])}},e.removeHooks=function(_){Qn(me,_)&&(me[_]=[])},e.removeAllHooks=function(){me=by()},e}var Vi=wy();var _C=Yf(),jf=class extends _c{constructor(t,r){super(r);this.scrollbarWidth=12;this.parent=t,this.parent.setAttribute("tabindex","-1"),this.parent.addEventListener("mousedown",i=>{i.preventDefault(),this.parent.focus()}),ey(this.parent,()=>this.getShortcuts()),ny(this.parent,"verilog-waveform"),this.recreate()}getShortcuts(){return this.getActions()}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 t=$(this.parent).width();this.pageWidth=t-this.scrollbarWidth;var r=40;this.setClocksPerPage(),this.clockMax=0,this.wavelist=new Nn({w:t,h:$(this.parent).height(),itemHeight:r,totalRows:this.meta.length+1,generatorFn:a=>{var l=this.meta[a];let c=document.createElement("div"),d=document.createElement("canvas");return d.width=t-12,d.height=r,c.appendChild(d),c.classList.add("waverow"),this.lines[a]=d,this.refreshRow(a),this.isEditable(l)&&(c.onmousedown=h=>{var u=this.meta[a];u&&u.input&&this.changeInputValue(a)},c.classList.add("editable"),c.style.cursor="grab"),c}});var i=this.wavelist.container;i.tabIndex=-1,this.toolbar=new Wi(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(i);var s=!1,o=a=>{this.setSelTime(a.offsetX/this.zoom+this.t0-.5)};$(i).mousedown(a=>{s=!0,o(a)}),$(i).mousemove(a=>{s&&o(a)}),$(i).mouseup(a=>{s=!1}),$(i).on("wheel",a=>{if(Math.abs(a.originalEvent.deltaX)>Math.abs(a.originalEvent.deltaY)){var l=Math.max(-1e3,Math.min(1e3,a.originalEvent.deltaX));l&&this.setOrgTime(this.t0+l)}});for(let a of this.getActions())this.toolbar.add(a.key,a.label,a.icon,a.fn);this.toolbar.add("+","Zoom In",null,()=>this.setZoom(this.zoom*2)),$(window).resize(()=>{this.recreate()})}}selectionChanged(){this.clklabel.innerText=" clk "+this.tsel}promptValue(t,r,i,s){return new Promise(o=>{bootbox.prompt({value:r+"",inputType:"number",title:`Enter new value for "${Vi.sanitize(t.label)}" (${i} to ${s}):`,callback:a=>o(a!=null?parseInt(a):null)})})}},Mc=class{constructor(e,t){this.provider=t;var r=$("#emuoverlay").show();this.topdiv=$('<div class="emuspacer">').appendTo(r)[0],this.topdiv.appendChild(e),this.wavediv=$('<div class="emuscope">').appendTo(r)[0],this.split=_C([this.topdiv,this.wavediv],{minSize:[0,0],sizes:[99,1],direction:"vertical",gutterSize:16,onDrag:()=>this.resize()})}isVisible(){return this.split.getSizes()[1]>2}show(){this.split.setSizes([0,100])}setCurrentTime(e){this.waveview&&this.waveview.setCurrentTime(e)}update(){this.isVisible()&&(this.waveview?this.waveview.refresh():this.waveview=new jf(this.wavediv,this.provider))}resize(){this.waveview&&this.waveview.recreate()}};function xy(){Z0({createScope:(n,e)=>new Mc(n,e),showVideoControls(n){$("#speed_bar, #run_bar, #dbg_record").toggle(n)},showSettleCount(n){n==null?$("#verilog_bar").hide():($("#verilog_bar").show(),$("#settle_label").text(n+""))}})}var nt=[/^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi,/^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm],EC=[...nt,/^\s*[.]?(include|incbin)\s+([^\s;"]+)/gmi],RC=[...nt,/^\s*#pragma\s+compile\s*\(\s*"([^"]+)"\s*\)/gmi],lt=[/^\s*([;]|[/][/])#link\s+"(.+?)"/gm],Na=[/^\s*(`include|[.]include)\s+"(.+?)"/gmi,/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi,{re:/^\s*([.]arch)\s+(\w+)/gmi,suffix:".json"},/\$readmem[bh]\("(.+?)"/gmi],MC=[{re:/^\s*[.#%]?\s*include\s+<(.+?)>/gmi,system:!0}];function $y(n){let e=n&&qt(n);return e&&e.includeDirs&&e.includeDirs.length?MC:[]}var Py=[/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm],LC=[/^[!]src\s+"(.+?)"/gmi],DC=[{re:/^\s*import\s*"(.+?)";/gmi,suffix:".wiz"},/^\s*embed\s*"(.+?)";/gmi],ZC=[/^\s*(import)\s*"(.+?)"/gmi],IC=[/^\s*%%\s*#include\s+"(.+?)"/gm],XC={cc65:{apple2:"https://cc65.github.io/doc/apple2.html",atari8:"https://cc65.github.io/doc/atari.html",c64:"https://cc65.github.io/doc/c64.html",nes:"https://cc65.github.io/doc/nes.html",pce:"https://cc65.github.io/doc/pce.html",vic20:"https://cc65.github.io/doc/vic20.html",lynx:"https://cc65.github.io/doc/lynx.html"}},qf=3,Uf={default:qf===3?{preloadFS:"sdcc",wasiFSZipLine truncated
`);for(let i of e||[]){let s=i instanceof RegExp?{re:i}:i;for(let o of r){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 Lr={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"],extra_compile_files:["vcs.h","macro.h"],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"],extra_compile_files:["neslib.h"],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,rom_size:35837,data_start:37888,zp_start:96,load_header:"dos33",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"," Line truncated
\\ 0 . =`],action:"Keypad"}],vectrex:[{keys:[_s],action:"Joystick"},{keys:["Z X C V"],action:"Buttons"}],atari8:[{keys:[_s],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 XA={left:"arrowleft",right:"arrowright",up:"arrowup",down:"arrowdown"},Af=null;function Po(){if(Af===null){var n=typeof navigator!="undefined"?navigator:null;Af=!!n&&/mac|iphone|ipad|ipod/i.test(n.platform||n.userAgent||"")}return Af}function _f(n){var e=n.toLowerCase().split("+"),t=e.pop(),r={mod:!1,shift:!1,key:""};for(var i of e)if(i=="mod"||i=="ctrl"||i=="meta"||i=="cmd")r.mod=!0;else if(i=="shift")r.shift=!0;else return console.warn('Keyboard shortcut "'+n+'": unsupported modifier "'+i+'" (alt is layout-dependent), skipping'),null;t=XA[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 "'+n+'": key "'+t+'" is layout-dependent (use a-z, 0-9, f1-f12), skipping'),null):r.shift&&!s&&!/^arrow/.test(t)?(console.warn('Keyboard shortcut "'+n+'": shift is only allowed with letters and arrows, skipping'),null):(r.key=t,r)}function zA(n,e){if(e.altKey)return!1;var t=Po(),r=t?e.metaKey:e.ctrlKey,i=t?e.ctrlKey:e.metaKey;return n.mod!==r||i||n.shift!==e.shiftKey?!1:(e.key||"").toLowerCase()===n.key}var Ac=class{constructor(){this.bindings=[];this.handler=e=>{if(!e.defaultPrevented)for(var t=0;t<this.bindings.length;t++){var r=this.bindings[t];if(zA(r.binding,e)){e.preventDefault(),e.stopPropagation(),r.fn(e);return}}}}bind(e,t){var r=_f(e);r&&this.bindings.push({binding:r,fn:t})}unbindAll(){this.bindings=[]}attach(){window.addEventListener("keydown",this.handler)}detach(){window.removeEventListener("keydown",this.handler)}},WA={mod:"Mod",cmd:"Mod",meta:"Mod",ctrl:"Ctrl",control:"Ctrl",shift:"Shift",alt:"Alt",option:"Alt"},Cf=null;function NA(){if(Cf===null){var n=typeof navigator!="undefined"?navigator:null;Cf=!!n&&/win/i.test(n.platform||n.userAgent||"")}return Cf}function j0(n){var e=n.split("-"),t=e.pop();t===""&&(t="-");var r=[];for(var i of e)if(i!==""){var s=WA[i.toLowerCase()]||i;s=="Ctrl"&&!Po()&&(s="Mod"),r.indexOf(s)<0&&r.push(s)}return r.sort(),r.concat([t.toLowerCase()]).join("-")}function BA(n){var e=Po()?n.mac:NA()?n.win:n.linux;return e||n.key}var Ef=["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 Rf(n,e){var t=e.map(j0);return n.filter(function(r){var i=BA(r);return!i||t.indexOf(j0(i))<0})}var VA={shift:"\u21E7",ctrl:"\u2303",alt:"\u2325",meta:"\u2318",mod:"\u2318",cmd:"\u2318"},FA={shift:"Shift",ctrl:"Ctrl",alt:"Alt",meta:"Win",mod:"Ctrl",cmd:"Cmd"},YA={arrowleft:"\u2190",arrowright:"\u2192",arrowup:"\u2191",arrowdown:"\u2193",backspace:"\u232B",enter:"\u21A9",tab:"\u21E5",escape:"\u238B",space:"\u2423"};function Lf(n){var e=n.toLowerCase().split("+"),t=e.pop(),r=Po(),i=r?["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=>r?VA[c]||c:FA[c]||c).join(r?"":"+"),l=/^[a-z][0-9]?$/.test(t)?t.toUpperCase():YA[t]||(r?t:t.charAt(0).toUpperCase()+t.slice(1));return(a?a+(r?"":"+"):"")+l}var Mf=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(Za){this.pendingShortcuts=!0;return}this.shortcutsSig=t,this.shortcutsZone.empty();for(var r of e){var i=$(document.createElement("span")).addClass("shortcut");i.append($(document.createElement("kbd")).text(Lf(r.key))),i.append(document.createTextNode(" "+r.label)),r.fn&&U0(i,r.fn),this.shortcutsZone.append(i)}}}}setStatus(e,t){t?this.status[e]=t:delete this.status[e],this.renderStatus()}renderStatus(){if(this.visible){if(Za){this.pendingStatus=!0;return}this.statusZone.empty();for(var e of Object.keys(this.status)){var t=this.status[e],r=$(document.createElement("span")).addClass("status_item");t.cls&&r.addClass(t.cls),t.title&&r.prop("title",t.title),r.text(t.text),t.fn&&U0(r,t.fn),this.statusZone.append(r)}}}};function U0(n,e){n.addClass("clickable"),n.mousedown(t=>t.preventDefault()),n.click(e)}var Za=!1;function q0(){zn&&(zn.pendingShortcuts&&(zn.pendingShortcuts=!1,Wn()),zn.pendingStatus&&(zn.pendingStatus=!1,zn.renderStatus()))}function jA(){$(document).on("mousedown.shortcutbar",()=>{Za=!0}),$(document).on( Line truncated
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function nC(n,e){return JA(n)||eC(n,e)||rC(n,e)||tC()}function rC(n,e){if(n){if(typeof n=="string")return oy(n,e);var t={}.toString.call(n).slice(8,-1);return t==="Object"&&n.constructor&&(t=n.constructor.name),t==="Map"||t==="Set"?Array.from(n):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?oy(n,e):void 0}}function Ec(n){var e,t;function r(s,o){try{var a=n[s](o),l=a.value,c=l instanceof KA;Promise.resolve(c?l.v:l).then(function(d){if(c){var h=s==="return"&&l.k?s:"next";if(!l.k||d.done)return r(h,d);d=n[h](d).value}i(!!a.done,d)},function(d){r("throw",d)})}catch(d){i(2,d)}}function i(s,o){s===2?e.reject(o):e.resolve({value:o,done:s}),(e=e.next)?r(e.key,e.arg):t=null}this._invoke=function(s,o){return new Promise(function(a,l){var c={key:s,arg:o,resolve:a,reject:l,next:null};t?t=t.next=c:(e=t=c,r(s,o))})},typeof n.return!="function"&&(this.return=void 0)}Ec.prototype[typeof Symbol=="function"&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},Ec.prototype.next=function(n){return this._invoke("next",n)},Ec.prototype.throw=function(n){return this._invoke("throw",n)},Ec.prototype.return=function(n){return this._invoke("return",n)};var vy=Object.entries,ay=Object.setPrototypeOf,iC=Object.isFrozen,sC=Object.getPrototypeOf,oC=Object.getOwnPropertyDescriptor,It=Object.freeze,Bt=Object.seal,ko=Object.create,wy=typeof Reflect!="undefined"&&Reflect,Nf=wy.apply,Bf=wy.construct;It||(It=function(e){return e});Bt||(Bt=function(e){return e});Nf||(Nf=function(e,t){for(var r=arguments.length,i=new Array(r>2?r-2:0),s=2;s<r;s++)i[s-2]=arguments[s];return e.apply(t,i)});Bf||(Bf=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return new e(...r)});var Es=Tt(Array.prototype.forEach);Array.prototype.indexOf;var aC=Tt(Array.prototype.lastIndexOf),ly=Tt(Array.prototype.pop),Ia=Tt(Array.prototype.push);Array.prototype.slice;var lC=Tt(Array.prototype.splice),$o=Array.isArray,Wa=Tt(String.prototype.toLowerCase),Df=Tt(String.prototype.toString),cy=Tt(String.prototype.match),Xa=Tt(String.prototype.replace),dy=Tt(String.prototype.indexOf),cC=Tt(String.prototype.trim),dC=Tt(Number.prototype.toString),hC=Tt(Boolean.prototype.toString),hy=typeof BigInt=="undefined"?null:Tt(BigInt.prototype.toString),uy=typeof Symbol=="undefined"?null:Tt(Symbol.prototype.toString),Qn=Tt(Object.prototype.hasOwnProperty),za=Tt(Object.prototype.toString),on=Tt(RegExp.prototype.test),Ni=uC(TypeError);function Tt(n){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return Nf(n,e,r)}}function uC(n){return function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return Bf(n,t)}}function Ve(n,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Wa;if(ay&&ay(n,null),!$o(e))return n;let r=e.length;for(;r--;){let i=e[r];if(typeof i=="string"){let s=t(i);s!==i&&(iC(e)||(e[r]=s),i=s)}n[i]=!0}return n}function fC(n){for(let e=0;e<n.length;e++)Qn(n,e)||(n[e]=null);return n}function Vn(n){let e=ko(null);for(let r of vy(n)){var t=nC(r,2);let i=t[0],s=t[1];Qn(n,i)&&($o(s)?e[i]=fC(s):s&&typeof s=="object"&&s.constructor===Object?e[i]=Vn(s):e[i]=s)}return e}function pC(n){switch(typeof n){case"string":return n;case"number":return dC(n);case"boolean":return hC(n);case"bigint":return hy?hy(n):"0";case"symbol":return uy?uy(n):"Symbol()";case"undefined":return za(n);case"function":case"object":{if(n===null)return za(n);let e=n,t=ur(e,"toString");if(typeof t=="function"){let r=t(e);return typeof r=="string"?r:za(r)}return za(n)}default:return za(n)}}function ur(n,e){for(;n!==null;){let r=oC(n,e);if(r){if(r.get)return Tt(r.get);if(typeof r.value=="function")return Tt(r.value)}n=sC(n)}function t(){return null}return t}function mC(n){try{return on(n,""),!0}catch(e){return!1}}var fy=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"]),Zf=It(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse Line truncated
`+Ae),vt&&(Ae=Q(Ae)),W&&xt?we(Ae):Ae},e.setConfig=function(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Oi(_),Y=!0,te=ke,ge=be},e.clearConfig=function(){gn=null,Y=!1,te=null,ge=null,W=de,ne=""},e.isValidAttribute=function(_,p,b){gn||Oi({});let T=Te(_),L=Te(p);return Ie(T,L,b)},e.addHook=function(_,p){typeof p=="function"&&Qn(me,_)&&Ia(me[_],p)},e.removeHook=function(_,p){if(Qn(me,_)){if(p!==void 0){let b=aC(me[_],p);return b===-1?void 0:lC(me[_],b,1)[0]}return ly(me[_])}},e.removeHooks=function(_){Qn(me,_)&&(me[_]=[])},e.removeAllHooks=function(){me=Sy()},e}var Vi=Py();var RC=Yf(),jf=class extends _c{constructor(t,r){super(r);this.scrollbarWidth=12;this.parent=t,this.parent.setAttribute("tabindex","-1"),this.parent.addEventListener("mousedown",i=>{i.preventDefault(),this.parent.focus()}),ny(this.parent,()=>this.getShortcuts()),iy(this.parent,"verilog-waveform"),this.recreate()}getShortcuts(){return this.getActions()}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 t=$(this.parent).width();this.pageWidth=t-this.scrollbarWidth;var r=40;this.setClocksPerPage(),this.clockMax=0,this.wavelist=new Nn({w:t,h:$(this.parent).height(),itemHeight:r,totalRows:this.meta.length+1,generatorFn:a=>{var l=this.meta[a];let c=document.createElement("div"),d=document.createElement("canvas");return d.width=t-12,d.height=r,c.appendChild(d),c.classList.add("waverow"),this.lines[a]=d,this.refreshRow(a),this.isEditable(l)&&(c.onmousedown=h=>{var u=this.meta[a];u&&u.input&&this.changeInputValue(a)},c.classList.add("editable"),c.style.cursor="grab"),c}});var i=this.wavelist.container;i.tabIndex=-1,this.toolbar=new Wi(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(i);var s=!1,o=a=>{this.setSelTime(a.offsetX/this.zoom+this.t0-.5)};$(i).mousedown(a=>{s=!0,o(a)}),$(i).mousemove(a=>{s&&o(a)}),$(i).mouseup(a=>{s=!1}),$(i).on("wheel",a=>{if(Math.abs(a.originalEvent.deltaX)>Math.abs(a.originalEvent.deltaY)){var l=Math.max(-1e3,Math.min(1e3,a.originalEvent.deltaX));l&&this.setOrgTime(this.t0+l)}});for(let a of this.getActions())this.toolbar.add(a.key,a.label,a.icon,a.fn);this.toolbar.add("+","Zoom In",null,()=>this.setZoom(this.zoom*2)),$(window).resize(()=>{this.recreate()})}}selectionChanged(){this.clklabel.innerText=" clk "+this.tsel}promptValue(t,r,i,s){return new Promise(o=>{bootbox.prompt({value:r+"",inputType:"number",title:`Enter new value for "${Vi.sanitize(t.label)}" (${i} to ${s}):`,callback:a=>o(a!=null?parseInt(a):null)})})}},Mc=class{constructor(e,t){this.provider=t;var r=$("#emuoverlay").show();this.topdiv=$('<div class="emuspacer">').appendTo(r)[0],this.topdiv.appendChild(e),this.wavediv=$('<div class="emuscope">').appendTo(r)[0],this.split=RC([this.topdiv,this.wavediv],{minSize:[0,0],sizes:[99,1],direction:"vertical",gutterSize:16,onDrag:()=>this.resize()})}isVisible(){return this.split.getSizes()[1]>2}show(){this.split.setSizes([0,100])}setCurrentTime(e){this.waveview&&this.waveview.setCurrentTime(e)}update(){this.isVisible()&&(this.waveview?this.waveview.refresh():this.waveview=new jf(this.wavediv,this.provider))}resize(){this.waveview&&this.waveview.recreate()}};function ky(){X0({createScope:(n,e)=>new Mc(n,e),showVideoControls(n){$("#speed_bar, #run_bar, #dbg_record").toggle(n)},showSettleCount(n){n==null?$("#verilog_bar").hide():($("#verilog_bar").show(),$("#settle_label").text(n+""))}})}var nt=[/^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi,/^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm],MC=[...nt,/^\s*[.]?(include|incbin)\s+([^\s;"]+)/gmi],LC=[...nt,/^\s*#pragma\s+compile\s*\(\s*"([^"]+)"\s*\)/gmi],lt=[/^\s*([;]|[/][/])#link\s+"(.+?)"/gm],Na=[/^\s*(`include|[.]include)\s+"(.+?)"/gmi,/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi,{re:/^\s*([.]arch)\s+(\w+)/gmi,suffix:".json"},/\$readmem[bh]\("(.+?)"/gmi],DC=[{re:/^\s*[.#%]?\s*include\s+<(.+?)>/gmi,system:!0}];function Ty(n){let e=n&&qt(n);return e&&e.includeDirs&&e.includeDirs.length?DC:[]}var $y=[/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm],ZC=[/^[!]src\s+"(.+?)"/gmi],IC=[{re:/^\s*import\s*"(.+?)";/gmi,suffix:".wiz"},/^\s*embed\s*"(.+?)";/gmi],XC=[/^\s*(import)\s*"(.+?)"/gmi],zC=[/^\s*%%\s*#include\s+"(.+?)"/gm],WC={cc65:{apple2:"https://cc65.github.io/doc/apple2.html",atari8:"https://cc65.github.io/doc/atari.html",c64:"https://cc65.github.io/doc/c64.html",nes:"https://cc65.github.io/doc/nes.html",pce:"https://cc65.github.io/doc/pce.html",vic20:"https://cc65.github.io/doc/vic20.html",lynx:"https://cc65.github.io/doc/lynx.html"}},qf=3,Uf={default:qf===3?{preloadFS:"sdcc",wasiFSZipLine truncated
`);for(let i of e||[]){let s=i instanceof RegExp?{re:i}:i;for(let o of r){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 Lr={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"],extra_compile_files:["vcs.h","macro.h"],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"],extra_compile_files:["neslib.h"],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,rom_size:35837,data_start:37888,zp_start:96,load_header:"dos33",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"," Line truncated
`){[e,t]=_o(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+=r),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 r=[],i=-1;for(let s of e)r.push(s),i+=s.length+1,r.length==32&&(t.push(new n(r,i)),r=[],i=-1);return i>-1&&t.push(new n(r,i)),t}},To=class n extends De{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let r of e)this.lines+=r.lines}lineInner(e,t,r,i){for(let s=0;;s++){let o=this.children[s],a=i+o.length,l=r+o.lines-1;if((t?l:a)>=e)return o.lineInner(e,t,r,i);i=a+1,r=l+1}}decompose(e,t,r,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?r.push(a):a.decompose(e-o,t-o,r,c)}o=l+1}}replace(e,t,r){if([e,t]=_o(this,e,t),r.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,r),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 n(d,this.length-(t-e)+r.length)}return super.replace(s,a,l)}s=a+1}return super.replace(e,t,r)}sliceString(e,t=this.length,r=`
`){[e,t]=_o(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+=r),e<l&&t>o&&(i+=a.sliceString(e-o,t-o,r)),o=l+1}return i}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof n))return 0;let r=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 r;let l=this.children[i],c=e.children[s];if(l!=c)return r+l.scanIdentical(c,t);r+=l.length+1}}static from(e,t=e.reduce((r,i)=>r+i.length+1,-1)){let r=0;for(let f of e)r+=f.lines;if(r<32){let f=[];for(let m of e)m.flatten(f);return new Fn(f,t)}let i=Math.max(32,r>>5),s=i<<1,o=i>>1,a=[],l=0,c=-1,d=[];function h(f){let m;if(f.lines>s&&f instanceof n)for(let O of f.children)h(O);else f.lines>o&&(l>o||!l)?(u(),a.push(f)):f instanceof Fn&&l&&(m=d[d.length-1])instanceof Fn&&f.lines+m.lines<=32?(l+=f.lines,c+=f.length+1,d[d.length-1]=new Fn(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]:n.from(d,c)),c=-1,l=d.length=0)}for(let f of e)h(f);return u(),a.length==1?a[0]:new n(a,t)}};De.empty=new Fn([""],0);function qC(n){let e=-1;for(let t of n)e+=t.length+1;return e}function Vc(n,e,t=0,r=1e9){for(let i=0,s=0,o=!0;s<n.length&&i<=r;s++){let a=n[s],l=i+a.length;l>=t&&(l>r&&(a=a.slice(0,r-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 Uy(n,e,t){return Vc(n,[""],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 Fn?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let r=this.nodes.length-1,i=this.nodes[r],s=this.offsets[r],o=s>>1,a=i instanceof Fn?i.text.length:i.children.length;if(o==(t>0?a:0)){if(r==0)return this.done=!0,this.value="",this;t>0&&this.offsets[r-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[r]+=t,e==0)return this.lineBreak=!0,this.value=`
`,this;e--}else if(i instanceof Fn){let l=i.text[o+(t<0?-1:0)];if(this.offsets[r]+=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[r]+=t):(t<0&&this.offsets[r]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof Fn?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)}},Fc=class{constructor(e,t,r){this.value="",this.done=!1,this.cursor=new Zs(e,t>r?-1:1),this.pos=t>r?e.length:0,this.from=Math.min(t,r),this.to=Math.max(t,r)}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 r=t<0?this.pos-this.from:this.to-this.pos;e>r&&(e=r),r-=e;let{value:i}=this.cursor.next(e);return this.pos+=(i.length+e)*t,this.value=i.length<=r?i:t<0?i.slice(i.length-r):i.slice(0,r),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!=""}},Yc=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:r,value:i}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol!="undefined"&&(De.prototype[Symbol.iterator]=function(){return this.iter()},Zs.prototype[Symbol.iterator]=Fc.prototype[Symbol.iterator]=Yc.prototype[Symbol.iterator]=function(){return this});var tp=class{constructor(e,t,r,i){this.from=e,this.to=t,this.number=r,this.text=i}get length(){return this.to-this.from}};function _o(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}function Pt(n,e,t=!0,r=!0){return Vy(n,e,t,r)}function GC(n){return n>=56320&&n<57344}function HC(n){return n>=55296&&n<56320}function Ir(n,e){let t=n.charCodeAt(e);if(!HC(t)||e+1==n.length)return t;let r=n.charCodeAt(e+1);return GC(r)?(t-55296<<10)+(r-56320)+65536:t}function Hc(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function Yi(n){return n<65536?1:2}var np=/\r\n?|\n/,Xt=(function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n})(Xt||(Xt={})),vi=class n{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 r=this.sections[t+1];e+=r<0?this.sections[t]:r}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,r=0,i=0;t<this.sections.length;){let s=this.sections[t++],o=this.sections[t++];o<0?(e(r,i,s),i+=s):i+=o,r+=s}}iterChangedRanges(e,t=!1){rp(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let r=this.sections[t++],i=this.sections[t++];i<0?e.push(r,i):e.push(i,r)}return new n(e)}composeDesc(e){return this.empty?e:e.empty?this:Jy(this,e)}mapDesc(e,t=!1){return e.empty?this:ip(this,e,t)}mapPos(e,t=-1,r=Xt.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(r!=Xt.Simple&&c>=e&&(r==Xt.TrackDel&&i<e&&c>e||r==Xt.TrackBefore&&i<e||r==Xt.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 r=0,i=0;r<this.sections.length&&i<=t;){let s=this.sections[r++],o=this.sections[r++],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 r=this.sections[t++],i=this.sections[t++];e+=(e?" ":"")+r+(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 n(e)}static create(e){return new n(e)}},On=class n extends vi{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 rp(this,(t,r,i,s,o)=>e=e.replace(i,i+(r-t),o),!1),e}mapDesc(e,t=!1){return ip(this,e,t,!0)}invert(e){let t=this.sections.slice(),r=[];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(;r.length<l;)r.push(De.empty);r.push(o?e.slice(s,s+o):De.empty)}s+=o}return new n(t,r)}compose(e){return this.empty?e:e.empty?this:Jy(this,e,!0)}map(e,t=!1){return e.empty?this:ip(this,e,t,!0)}iterChanges(e,t=!1){rp(this,e,t)}get desc Line truncated
`}get readOnly(){return this.facet(oS)}phrase(e,...t){for(let r of this.facet(n.phrases))if(Object.prototype.hasOwnProperty.call(r,e)){e=r[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(r,i)=>{if(i=="$")return"$";let s=+(i||1);return!s||s>t.length?r:t[s-1]})),e}languageDataAt(e,t,r=-1){let i=[];for(let s of this.facet(tS))for(let o of s(this,t,r))Object.prototype.hasOwnProperty.call(o,e)&&i.push(o[e]);return i}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return o_(t.length?t[0]:"")}wordAt(e){let{text:t,from:r,length:i}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-r,a=e-r;for(;o>0;){let l=Pt(t,o,!1);if(s(t.slice(l,o))!=et.Word)break;o=l}for(;a<i;){let l=Pt(t,a);if(s(t.slice(a,l))!=et.Word)break;a=l}return o==a?null:z.range(o+r,a+r)}};Me.allowMultipleSelections=op;Me.tabSize=oe.define({combine:n=>n.length?n[0]:4});Me.lineSeparator=nS;Me.readOnly=oS;Me.phrases=oe.define({compare(n,e){let t=Object.keys(n),r=Object.keys(e);return t.length==r.length&&t.every(i=>n[i]==e[i])}});Me.languageData=tS;Me.changeFilter=rS;Me.transactionFilter=iS;Me.transactionExtender=sS;Vt.reconfigure=ye.define();function Yn(n,e,t={}){let r={};for(let i of n)for(let s of Object.keys(i)){let o=i[s],a=r[s];if(a===void 0)r[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))r[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let i in e)r[i]===void 0&&(r[i]=e[i]);return r}var fr=class{eq(e){return this==e}range(e,t=e){return Ya.create(e,t,this)}};fr.prototype.startSide=fr.prototype.endSide=0;fr.prototype.point=!1;fr.prototype.mapMode=Xt.TrackDel;function gp(n,e){return n==e||n.constructor==e.constructor&&n.eq(e)}var Ya=class n{constructor(e,t,r){this.from=e,this.to=t,this.value=r}static create(e,t,r){return new n(e,t,r)}};function hp(n,e){return n.from-e.from||n.value.startSide-e.value.startSide}var up=class n{constructor(e,t,r,i){this.from=e,this.to=t,this.value=r,this.maxPoint=i}get length(){return this.to[this.to.length-1]}findIndex(e,t,r,i=0){let s=r?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||(r?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,r,i){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(r,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 r=[],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)),r.push(c),i.push(u-o),s.push(f-o))}return{mapped:r.length?new n(i,s,r,a):null,pos:o}}},$e=class n{constructor(e,t,r,i){this.chunkPos=e,this.chunk=t,this.nextLayer=r,this.maxPoint=i}static create(e,t,r,i){return new n(e,t,r,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:r=!1,filterFrom:i=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(r&&(t=t.slice().sort(hp)),this.isEmpty)return t.length?n.of(t):this;let a=new Gc(this,null,-1).goto(0),l=0,c=[],d=new Zr;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(Ya.create(a.from,a.to,a.value))),a.next());return d.finishInner(this.nextLayer.isEmpty&&!c.length?n.empty:this.nextLayer.update({add:c,filter:o,filterFrom:i,filterTo:s}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],r=[],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),r.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),r.push(h))}}let s=this.nextLayer.map(e);return t.length==0?s:new n(r,t,s||n.empty,i)}between(e,t,r){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,r)===!1)return}this.nextLayer.between(e,t,r)}}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,r,i,s=-1){let o=e.filter(h=>h.maxPoint>0||!h.is Line truncated
`)}static newName(){let e=dS[cS]||1;return dS[cS]=e+1,"\u037C"+e.toString(36)}static mount(e,t,r){let i=e[Op],s=r&&r.nonce;i?s&&i.setNonce(s):i=new bp(e,s),i.mount(Array.isArray(t)?t:[t],e)}},hS=new Map,bp=class{constructor(e,t){let r=e.ownerDocument||e,i=r.defaultView;if(!e.head&&e.adoptedStyleSheets&&i.CSSStyleSheet){let s=hS.get(r);if(s)return e[Op]=s;this.sheet=new i.CSSStyleSheet,hS.set(r,this)}else this.styleTag=r.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[Op]=this}mount(e,t){let r=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),r)for(let c=0;c<a.rules.length;c++)r.insertRule(a.rules[c],i++)}else{for(;s<l;)i+=this.modules[s++].rules.length;i+=a.rules.length,s++}}if(r)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:'"'},l_=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),c_=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(At=0;At<10;At++)wi[48+At]=wi[96+At]=String(At);var At;for(At=1;At<=24;At++)wi[At+111]="F"+At;var At;for(At=65;At<=90;At++)wi[At]=String.fromCharCode(At+32),Eo[At]=String.fromCharCode(At);var At;for(Jc in wi)Eo.hasOwnProperty(Jc)||(Eo[Jc]=wi[Jc]);var Jc;function uS(n){var e=l_&&n.metaKey&&n.shiftKey&&!n.ctrlKey&&!n.altKey||c_&&n.shiftKey&&n.key&&n.key.length==1||n.key=="Unidentified",t=!e&&n.key||(n.shiftKey?Eo:wi)[n.keyCode]||n.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 kt(){var n=arguments[0];typeof n=="string"&&(n=document.createElement(n));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){var i=t[r];typeof i=="string"?n.setAttribute(r,i):i!=null&&(n[r]=i)}e++}for(;e<arguments.length;e++)fS(n,arguments[e]);return n}function fS(n,e){if(typeof e=="string")n.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)n.appendChild(e);else if(Array.isArray(e))for(var t=0;t<e.length;t++)fS(n,e[t]);else throw new RangeError("Unsupported child node: "+e)}var bn=typeof navigator!="undefined"?navigator:{userAgent:"",vendor:"",platform:""},Tp=typeof document!="undefined"?document:{documentElement:{style:{}}},Ap=/Edge\/(\d+)/.exec(bn.userAgent),KS=/MSIE \d/.test(bn.userAgent),Cp=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(bn.userAgent),Ed=!!(KS||Cp||Ap),pS=!Ed&&/gecko\/(\d+)/i.test(bn.userAgent),yp=!Ed&&/Chrome\/(\d+)/.exec(bn.userAgent),mS="webkitFontSmoothing"in Tp.documentElement.style,_p=!Ed&&/Apple Computer/.test(bn.vendor),gS=_p&&(/Mobile\/\w+/.test(bn.userAgent)||bn.maxTouchPoints>2),ae={mac:gS||/Mac/.test(bn.platform),windows:/Win/.test(bn.platform),linux:/Linux|X11/.test(bn.platform),ie:Ed,ie_version:KS?Tp.documentMode||6:Cp?+Cp[1]:Ap?+Ap[1]:0,gecko:pS,gecko_version:pS?+(/Firefox\/(\d+)/.exec(bn.userAgent)||[0,0])[1]:0,chrome:!!yp,chrome_version:yp?+yp[1]:0,ios:gS,android:/Android\b/.test(bn.userAgent),webkit:mS,webkit_version:mS?+(/\bAppleWebKit\/(\d+)/.exec(bn.userAgent)||[0,0])[1]:0,safari:_p,safari_version:_p?+(/\bVersion\/(\d+(\.\d+)?)/.exec(bn.userAgent)||[0,0])[1]:0,tabSize:Tp.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function wm(n,e){for(let t in n)t=="class"&&e.class?e.class+=" "+n.class:t=="style"&&e.style?e.style+=";"+n.style:e[t]=n[t];return e}var pd=Object.create(null);function xm(n,e,t){if(n==e)return!0;n||(n=pd),e||(e=pd);let r=Object.keys(n),i=Object.keys(e);if(r.length-(t&&r.indexOf(t)>-1?1:0)!=i.length-(t&&i.indexOf(t)>-1?1:0))return!1;for(let s of r)if(s!=t&&(i.indexOf(s)==-1||n[s]!==e[s]))return!1;return!0}function d_(n,e){for(let t=n.attributes.length-1;t>=0;t--){let r=n.attributes[t].name;e[r]==null&&n.removeAttribute(r)}for(let t in e){let r=e[t];t=="style"?n.style.cssText=r:n.getAttribute(t)!=r&&n.setAttribute(t,r)}}function OS(n,e,t){let r=!1;if(e)for(let i in e)t&&i in t||(r=!0,i=="style"?n.style.cssText="":n.removeAttribute(i));if(t)for(let i in t)e&&e[i]==t[i]||(r=!0,i=="style"?n.style.cssText=t[i]:n.setAttribute(i,t[i]));return r}function h_(n){let e=Object.create(null);for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];e[r.name]=r.value}return e}var Ct=class{eq(e){return!1}updateDOM(e,t,r){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,r){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}},Ht=(function(n){return n[n.Text=0]="Text",n[n.WidgetBefore=1]="WidgetBefore",n[n.WidgetAfter=2]="WidgetAfter",n[n.WidgetRange=3]="WidgetRange",n})(Ht||(Ht={})),J=class extends fr{constructor(e,t,r,i){super(),this.startSide=e,this.endLine truncated
`,i=n.state.doc.line(i.number+(t?1:-1)),s=n.bidiSpans(i),c=n.visualLineSide(i,!t)}if(l){if(!l(d))return a}else{if(!r)return c;l=r(d)}a=c}}function V_(n,e,t){let r=n.state.charCategorizer(e),i=r(t);return s=>{let o=r(s);return i==et.Space&&(i=o),i==o}}function F_(n,e,t,r){let i=e.head,s=t?1:-1;if(i==(t?n.state.doc.length:0))return z.cursor(i,e.assoc);let o=e.goalColumn,a,l=n.contentDOM.getBoundingClientRect(),c=n.coordsAtPos(i,e.assoc||((e.empty?t:e.head==e.from)?1:-1)),d=n.documentTop;if(c)o==null&&(o=c.left-l.left),a=s<0?c.top:c.bottom;else{let m=n.viewState.lineBlockAt(i);o==null&&(o=Math.min(l.right-l.left,n.defaultCharacterWidth*(i-m.from))),a=(s<0?m.top:m.bottom)+d}let h=l.left+o,u=n.viewState.heightOracle.textHeight>>1,f=r!=null?r:u;for(let m=0;;m+=u){let O=a+(f+m)*s,S=jp(n,{x:h,y:O},!1,s);if(t?O>l.bottom:O<l.top)return z.cursor(S.pos,S.assoc);let x=n.coordsAtPos(S.pos,S.assoc),D=x?(x.top+x.bottom)/2:0;if(!x||(t?D>a:D<a))return z.cursor(S.pos,S.assoc,void 0,o)}}function nl(n,e,t){for(;;){let r=0;for(let i of n)i.between(e-1,e+1,(s,o,a)=>{if(e>s&&e<o){let l=r||t||(e-s<o-e?-1:1);e=l<0?s:o,r=l}});if(!r)return e}}function Av(n,e){let t=null;for(let r=0;r<e.ranges.length;r++){let i=e.ranges[r],s=null;if(i.empty){let o=nl(n,i.from,0);o!=i.from&&(s=z.cursor(o,-1))}else{let o=nl(n,i.from,-1),a=nl(n,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[r]=s)}return t?z.create(t,e.mainIndex):e}function wp(n,e,t){let r=nl(n.state.facet(ul).map(i=>i(n)),t.from,e.head>t.from?-1:1);return r==t.from?t:z.cursor(r,r<t.from?1:-1)}var Or=class{constructor(e,t){this.pos=e,this.assoc=t}};function jp(n,e,t,r){let i=n.contentDOM.getBoundingClientRect(),s=i.top+n.viewState.paddingTop,{x:o,y:a}=e,l=a-s,c;for(;;){if(l<0)return new Or(0,1);if(l>n.viewState.docHeight)return new Or(n.state.doc.length,-1);if(c=n.elementAtHeight(l),r==null)break;if(c.type==Ht.Text){if(r<0?c.to<n.viewport.from:c.from>n.viewport.to)break;let u=n.docView.coordsAt(r<0?c.from:c.to,r>0?-1:1);if(u&&(r<0?u.top<=l+s:u.bottom>=l+s))break}let h=n.viewState.heightOracle.textHeight/2;l=r>0?c.bottom+h:c.top-h}if(n.viewport.from>=c.to||n.viewport.to<=c.from){if(t)return null;if(c.type==Ht.Text){let h=N_(n,i,c,o,a);return new Or(h,h==c.from?1:-1)}}if(c.type!=Ht.Text)return l<(c.top+c.bottom)/2?new Or(c.from,1):new Or(c.to,-1);let d=n.docView.lineAt(c.from,2);return(!d||d.length!=c.length)&&(d=n.docView.lineAt(c.from,-2)),new Up(n,o,a,n.textDirectionAt(c.from)).scanTile(d,c.from)}var Up=class{constructor(e,t,r,i){this.view=e,this.x=t,this.y=r,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:r,spans:i}=this.bidiSpansAt(e);return i[br.find(i,e-r.from,-1,t)].level==this.baseDir}dirAt(e,t){let{line:r,spans:i}=this.bidiSpansAt(e);return i[br.find(i,e-r.from,-1,t)].dir}bidiIn(e,t){let{spans:r,line:i}=this.bidiSpansAt(e);return r.length>1||r.length&&(r[0].level!=this.baseDir||r[0].to+i.from<t)}scan(e,t,r=!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,O=i+s>>1;t:if(o.has(O)){for(let D=1;D<m;D++){let M=O+D;if(M>=s&&(M-=m),!o.has(M)){O=M;break t}}break e}o.add(O);let S=t(O),x=0;if(S)for(let D=0;D<S.length;D++){let M=S[D];if(!(M.width==0&&S.length>1))if(M.bottom<this.y)(!l||l.bottom<M.bottom)&&(l=M),x=1;else if(M.top>this.y)(!c||c.top>M.top)&&(c=M),x=-1;else{let Z=M.left>this.x?this.x-M.left:M.right<this.x?this.x-M.right:0,k=Math.abs(Z);k<h&&(d=O,h=k,u=M),Z&&(x=Z<0==(this.baseDir==qe.LTR)?-1:1)}}x==-1&&(!a||this.baseDirAt(e[O],1))?s=O:x==1&&(!a||this.baseDirAt(e[O+1],-1))&&(i=O+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&&!r){let{top:m,bottom:O}=u;if(l&&l.bottom>(m+m+O)/3)return this.y=l.bottom-1,this.scan(e,t,!0);if(c&&c.top<(m+O+O)/3)return this.y=c.top+1,this.scan(e,t,!0)}let f=(a?this.dirAt(e[d],1):this.baseDir)==qe.LTR;return{i:d,after:this.x>(u.left+u.right)/2==f}}scanText(e,t){let r=[];for(let s=0;s<e.length;s=Pt(e.text,s))r.push(t+s);r.push(t+e.length);let i=this.scan(r,s=>{let o=r[s]-t,a=r[s+1]-t;return cl(e.dom,o,a).getClientRects()});return i.after?new Or(r[i.i+1],-1):new Or(r[i.i],1)}scanTile(e,t){if(!e.length)return new Or(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 r=[t];for(let a=0,l=t;a<e.children.length;a++)r.push(l+=e.children[a].length);let i=this.scan(r,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=r[i.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):i.after?new Or(r[i.i+1],-1):new Or(o,1)}},Ro="\uFFFF",qp=class{con Line truncated
`&&n.lineWrapping&&(r&&(r=z.single(r.main.anchor-1,r.main.head-1)),t={from:s.from,to:s.to,insert:De.of([" "])}),t)return Cm(n,t,r,o);if(r&&!wd(r,s)){let a=!1,l="select";return n.inputState.lastSelectionTime>Date.now()-50&&(n.inputState.lastSelectionOrigin=="select"&&(a=!0),l=n.inputState.lastSelectionOrigin,l=="select.pointer"&&(r=Av(i.facet(ul).map(c=>c(n)),r))),n.dispatch({selection:r,scrollIntoView:a,userEvent:l}),!0}else return!1}function Cm(n,e,t,r=-1){if(ae.ios&&n.inputState.flushIOSKey(e))return!0;let i=n.state.selection.main;if(ae.android&&(e.to==i.to&&(e.from==i.from||e.from==i.from-1&&n.state.sliceDoc(e.from,i.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Xo(n.contentDOM,"Enter",13)||(e.from==i.from-1&&e.to==i.to&&e.insert.length==0||r==8&&e.insert.length<e.to-e.from&&e.to>i.head)&&Xo(n.contentDOM,"Backspace",8)||e.from==i.from&&e.to==i.to+1&&e.insert.length==0&&Xo(n.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();n.inputState.composing>=0&&n.inputState.composing++;let o,a=()=>o||(o=U_(n,e,t));return n.state.facet(Ov).some(l=>l(n,e.from,e.to,s,a))||n.dispatch(a()),!0}function U_(n,e,t){let r,i=n.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=nl(i.facet(ul).map(h=>h(n)),c,l);e.from==d&&(o=d)}if(o>-1)r={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)&&n.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):"";r=i.replaceSelection(n.state.toText(l+e.insert.sliceString(0,void 0,n.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&&(n.inputState.composing>=0||n.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let d=n.state.sliceDoc(e.from,e.to),h,u=t&&Tv(n,t.main.head);if(u){let m=e.insert.length-(e.to-e.from);h={from:u.from,to:u.to-m}}else h=n.state.doc.lineAt(s.head);let f=s.to-e.to;r=i.changeByRange(m=>{if(m.from==s.from&&m.to==s.to)return{changes:l,range:c||m.map(l)};let O=m.to-f,S=O-d.length;if(n.state.sliceDoc(S,O)!=d||O>=h.from&&S<=h.to)return{range:m};let x=i.changes({from:S,to:O,insert:e.insert}),D=m.to-s.to;return{changes:x,range:c?z.range(Math.max(0,c.anchor+D),Math.max(0,c.head+D)):m.map(x)}})}else r={changes:l,selection:c&&i.selection.replaceRange(c)}}let a="input.type";return(n.composing||n.inputState.compositionPendingChange&&n.inputState.compositionEndedAt>Date.now()-50)&&(n.inputState.compositionPendingChange=!1,a+=".compose",n.inputState.compositionFirstChange&&(a+=".start",n.inputState.compositionFirstChange=!1)),i.update(r,{userEvent:a,scrollIntoView:!0})}function Ev(n,e,t,r){let i=Math.min(n.length,e.length),s=0;for(;s<i&&n.charCodeAt(s)==e.charCodeAt(s);)s++;if(s==i&&n.length==e.length)return null;let o=n.length,a=e.length;for(;o>0&&a>0&&n.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(r=="end"){let l=Math.max(0,s-Math.min(o,a));t-=o+l-s}if(o<s&&n.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 q_(n){let e=[];if(n.root.activeElement!=n.contentDOM)return e;let{anchorNode:t,anchorOffset:r,focusNode:i,focusOffset:s}=n.observer.selectionRange;return t&&(e.push(new vd(t,r)),(i!=t||s!=r)&&e.push(new vd(i,s))),e}function G_(n,e){if(n.length==0)return null;let t=n[0].pos,r=n.length==2?n[1].pos:t;return t>-1&&r>-1?z.single(t+e,r+e):null}function wd(n,e){return e.head==n.main.head&&e.anchor==n.main.anchor}var Hp=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,ae.safari&&e.contentDOM.addEventListener("input",()=>null),ae.gecko&&h2(e.contentDOM.ownerDocument)}handleEvent(e){!i2(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 r=this.handlers[e];if(r){for(let i of r.observers)i(this.view,t);for(let i of r.handlers){if(t.defaultPrevented)break;if(i(this.view,t)){t.preventDefault();break}}}}ensureHandl Line truncated
`))};if((ae.mac||ae.android)&&h.from==o-1&&/^\. ?$/.test(r.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(h={from:a,to:l,insert:De.of([r.text.replace("."," ")])}),this.pendingContextChange=h,!e.state.readOnly){let u=this.to-this.from+(h.to-h.from+h.insert.length);Cm(e,h,z.single(this.toEditorPos(r.selectionStart,u),this.toEditorPos(r.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,r.updateRangeStart-1),Math.min(t.text.length,r.updateRangeStart+1)))&&this.handlers.compositionend(r)},this.handlers.characterboundsupdate=r=>{let i=[],s=null;for(let o=this.toEditorPos(r.rangeStart),a=this.toEditorPos(r.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(r.rangeStart,i)},this.handlers.textformatupdate=r=>{let i=[];for(let s of r.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(J.mark({attributes:{style:d}}).range(l,c))}}}e.dispatch({effects:wv.of(J.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:r}=this.composing;this.composing=null,r&&this.reset(e.state)}};for(let r in this.handlers)t.addEventListener(r,this.handlers[r]);this.measureReq={read:r=>{let i=ll(r.root);i&&i.rangeCount&&this.editContext.updateSelectionBounds(i.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,r=!1,i=this.pendingContextChange;return e.changes.iterChanges((s,o,a,l,c)=>{if(r)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){r=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=d}t+=d}),i&&!r&&this.revertPending(e.state),!r}update(e){let t=this.pendingContextChange,r=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(r.from,r.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,r=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),i=this.toContextPos(t.head);(this.editContext.selectionStart!=r||this.editContext.selectionEnd!=i)&&this.editContext.updateSelection(r,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 r=this.composing;return r&&r.drifted?r.editorBase+(e-r.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])}},F=class n{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=d Line truncated
-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,pm),I2={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"},Pp=null;function X2(){var n;if(Pp==null&&typeof document!="undefined"&&document.body){let e=document.body.style;Pp=((n=e.tabSize)!==null&&n!==void 0?n:e.MozTabSize)!=null}return Pp||!1}var ud=oe.define({combine(n){let e=Yn(n,{render:null,specialChars:Z2,addSpecialChars:null});return(e.replaceTabs=!X2())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,pm)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,pm)),e}});function Kv(n={}){return[ud.of(n),z2()]}var VS=null;function z2(){return VS||(VS=it.fromClass(class{constructor(n){this.view=n,this.decorations=J.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(ud)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new dl({regexp:n.specialChars,decoration:(e,t,r)=>{let{doc:i}=t.state,s=Ir(e[0],0);if(s==9){let o=i.lineAt(r),a=t.state.tabSize,l=Gt(o.text,a,r-o.from);return J.replace({widget:new gm((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=J.replace({widget:new mm(n,s)}))},boundary:n.replaceTabs?void 0:/[^]/})}update(n){let e=n.state.facet(ud);n.startState.facet(ud)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(n.view)):this.decorations=this.decorator.updateDeco(n,this.decorations)}},{decorations:n=>n.decorations}))}var W2="\u2022";function N2(n){return n>=32?W2:n==10?"\u2424":String.fromCharCode(9216+n)}var mm=class extends Ct{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=N2(this.code),r=e.state.phrase("Control character")+" "+(I2[this.code]||"0x"+this.code.toString(16)),i=this.options.render&&this.options.render(this.code,r,t);if(i)return i;let s=document.createElement("span");return s.textContent=t,s.title=r,s.setAttribute("aria-label",r),s.className="cm-specialChar",s}ignoreEvent(){return!1}},gm=class extends Ct{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 Dd(){return V2}var B2=J.line({class:"cm-activeLine"}),V2=it.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.docChanged||n.selectionSet)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=-1,t=[];for(let r of n.state.selection.ranges){let i=n.lineBlockAt(r.head);i.from>e&&(t.push(B2.range(i.from)),e=i.from)}return J.set(t)}},{decorations:n=>n.decorations});var Om=2e3;function F2(n,e,t){let r=Math.min(e.line,t.line),i=Math.max(e.line,t.line),s=[];if(e.off>Om||t.off>Om||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=r;l<=i;l++){let c=n.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=r;l<=i;l++){let c=n.doc.line(l),d=Kc(c.text,o,n.tabSize,!0);if(d<0)s.push(z.cursor(c.to));else{let h=Kc(c.text,a,n.tabSize);s.push(z.range(c.from+d,c.from+h))}}}return s}function Y2(n,e){let t=n.coordsAtPos(n.viewport.from);return t?Math.round(Math.abs((t.left-e)/n.defaultCharacterWidth)):-1}function FS(n,e){let t=n.posAtCoords({x:e.clientX,y:e.clientY},!1),r=n.state.doc.lineAt(t),i=t-r.from,s=i>Om?-1:i==r.length?Y2(n,e.clientX):Gt(r.text,n.state.tabSize,t-r.from);return{line:r.number,col:s,off:i}}function j2(n,e){let t=FS(n,e),r=n.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)},r=r.map(i.changes)}},get(i,s,o){let a=FS(n,i);if(!a)return r;let l=F2(n.state,t,a);return l.length?o?z.create(l.concat(r.ranges)):z.create(l):r}}:null}function Zd(n){let e=(n==null?void 0:n.eventFilter)||(t=>t.altKey&&t.button==0);return F.mouseSelectionStyle.of((t,r)=>e(r)?j2(t,r):null)}var U2={Alt:[18,n=>!!n.altKey],Control:[17,n=>!!n.ctrlKey],Shift:[16,n=>!!n.shiftKey],Meta:[91,n=>!!n.metaKey]},q2={style:"cursor: crosshair"};function Id(n={}){let[e,t]=U2[n.key||"Alt"],r=it.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))}}});retu Line truncated
`){[e,t]=_o(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+=r),e<l&&t>o&&(i+=a.sliceString(e-o,t-o,r)),o=l+1}return i}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof n))return 0;let r=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 r;let l=this.children[i],c=e.children[s];if(l!=c)return r+l.scanIdentical(c,t);r+=l.length+1}}static from(e,t=e.reduce((r,i)=>r+i.length+1,-1)){let r=0;for(let f of e)r+=f.lines;if(r<32){let f=[];for(let m of e)m.flatten(f);return new Fn(f,t)}let i=Math.max(32,r>>5),s=i<<1,o=i>>1,a=[],l=0,c=-1,d=[];function h(f){let m;if(f.lines>s&&f instanceof n)for(let O of f.children)h(O);else f.lines>o&&(l>o||!l)?(u(),a.push(f)):f instanceof Fn&&l&&(m=d[d.length-1])instanceof Fn&&f.lines+m.lines<=32?(l+=f.lines,c+=f.length+1,d[d.length-1]=new Fn(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]:n.from(d,c)),c=-1,l=d.length=0)}for(let f of e)h(f);return u(),a.length==1?a[0]:new n(a,t)}};De.empty=new Fn([""],0);function HC(n){let e=-1;for(let t of n)e+=t.length+1;return e}function Vc(n,e,t=0,r=1e9){for(let i=0,s=0,o=!0;s<n.length&&i<=r;s++){let a=n[s],l=i+a.length;l>=t&&(l>r&&(a=a.slice(0,r-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 Gy(n,e,t){return Vc(n,[""],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 Fn?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let r=this.nodes.length-1,i=this.nodes[r],s=this.offsets[r],o=s>>1,a=i instanceof Fn?i.text.length:i.children.length;if(o==(t>0?a:0)){if(r==0)return this.done=!0,this.value="",this;t>0&&this.offsets[r-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[r]+=t,e==0)return this.lineBreak=!0,this.value=`
`,this;e--}else if(i instanceof Fn){let l=i.text[o+(t<0?-1:0)];if(this.offsets[r]+=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[r]+=t):(t<0&&this.offsets[r]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof Fn?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)}},Fc=class{constructor(e,t,r){this.value="",this.done=!1,this.cursor=new Zs(e,t>r?-1:1),this.pos=t>r?e.length:0,this.from=Math.min(t,r),this.to=Math.max(t,r)}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 r=t<0?this.pos-this.from:this.to-this.pos;e>r&&(e=r),r-=e;let{value:i}=this.cursor.next(e);return this.pos+=(i.length+e)*t,this.value=i.length<=r?i:t<0?i.slice(i.length-r):i.slice(0,r),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!=""}},Yc=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:r,value:i}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol!="undefined"&&(De.prototype[Symbol.iterator]=function(){return this.iter()},Zs.prototype[Symbol.iterator]=Fc.prototype[Symbol.iterator]=Yc.prototype[Symbol.iterator]=function(){return this});var tp=class{constructor(e,t,r,i){this.from=e,this.to=t,this.number=r,this.text=i}get length(){return this.to-this.from}};function _o(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}function Pt(n,e,t=!0,r=!0){return Yy(n,e,t,r)}function KC(n){return n>=56320&&n<57344}function JC(n){return n>=55296&&n<56320}function Ir(n,e){let t=n.charCodeAt(e);if(!JC(t)||e+1==n.length)return t;let r=n.charCodeAt(e+1);return KC(r)?(t-55296<<10)+(r-56320)+65536:t}function Hc(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function Yi(n){return n<65536?1:2}var np=/\r\n?|\n/,Xt=(function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n})(Xt||(Xt={})),vi=class n{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 r=this.sections[t+1];e+=r<0?this.sections[t]:r}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,r=0,i=0;t<this.sections.length;){let s=this.sections[t++],o=this.sections[t++];o<0?(e(r,i,s),i+=s):i+=o,r+=s}}iterChangedRanges(e,t=!1){rp(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let r=this.sections[t++],i=this.sections[t++];i<0?e.push(r,i):e.push(i,r)}return new n(e)}composeDesc(e){return this.empty?e:e.empty?this:tS(this,e)}mapDesc(e,t=!1){return e.empty?this:ip(this,e,t)}mapPos(e,t=-1,r=Xt.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(r!=Xt.Simple&&c>=e&&(r==Xt.TrackDel&&i<e&&c>e||r==Xt.TrackBefore&&i<e||r==Xt.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 r=0,i=0;r<this.sections.length&&i<=t;){let s=this.sections[r++],o=this.sections[r++],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 r=this.sections[t++],i=this.sections[t++];e+=(e?" ":"")+r+(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 n(e)}static create(e){return new n(e)}},On=class n extends vi{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 rp(this,(t,r,i,s,o)=>e=e.replace(i,i+(r-t),o),!1),e}mapDesc(e,t=!1){return ip(this,e,t,!0)}invert(e){let t=this.sections.slice(),r=[];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(;r.length<l;)r.push(De.empty);r.push(o?e.slice(s,s+o):De.empty)}s+=o}return new n(t,r)}compose(e){return this.empty?e:e.empty?this:tS(this,e,!0)}map(e,t=!1){return e.empty?this:ip(this,e,t,!0)}iterChanges(e,t=!1){rp(this,e,t)}get desc Line truncated
`}get readOnly(){return this.facet(lS)}phrase(e,...t){for(let r of this.facet(n.phrases))if(Object.prototype.hasOwnProperty.call(r,e)){e=r[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(r,i)=>{if(i=="$")return"$";let s=+(i||1);return!s||s>t.length?r:t[s-1]})),e}languageDataAt(e,t,r=-1){let i=[];for(let s of this.facet(rS))for(let o of s(this,t,r))Object.prototype.hasOwnProperty.call(o,e)&&i.push(o[e]);return i}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return l_(t.length?t[0]:"")}wordAt(e){let{text:t,from:r,length:i}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-r,a=e-r;for(;o>0;){let l=Pt(t,o,!1);if(s(t.slice(l,o))!=et.Word)break;o=l}for(;a<i;){let l=Pt(t,a);if(s(t.slice(a,l))!=et.Word)break;a=l}return o==a?null:z.range(o+r,a+r)}};Me.allowMultipleSelections=op;Me.tabSize=oe.define({combine:n=>n.length?n[0]:4});Me.lineSeparator=iS;Me.readOnly=lS;Me.phrases=oe.define({compare(n,e){let t=Object.keys(n),r=Object.keys(e);return t.length==r.length&&t.every(i=>n[i]==e[i])}});Me.languageData=rS;Me.changeFilter=sS;Me.transactionFilter=oS;Me.transactionExtender=aS;Vt.reconfigure=ye.define();function Yn(n,e,t={}){let r={};for(let i of n)for(let s of Object.keys(i)){let o=i[s],a=r[s];if(a===void 0)r[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))r[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let i in e)r[i]===void 0&&(r[i]=e[i]);return r}var fr=class{eq(e){return this==e}range(e,t=e){return Ya.create(e,t,this)}};fr.prototype.startSide=fr.prototype.endSide=0;fr.prototype.point=!1;fr.prototype.mapMode=Xt.TrackDel;function gp(n,e){return n==e||n.constructor==e.constructor&&n.eq(e)}var Ya=class n{constructor(e,t,r){this.from=e,this.to=t,this.value=r}static create(e,t,r){return new n(e,t,r)}};function hp(n,e){return n.from-e.from||n.value.startSide-e.value.startSide}var up=class n{constructor(e,t,r,i){this.from=e,this.to=t,this.value=r,this.maxPoint=i}get length(){return this.to[this.to.length-1]}findIndex(e,t,r,i=0){let s=r?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||(r?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,r,i){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(r,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 r=[],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)),r.push(c),i.push(u-o),s.push(f-o))}return{mapped:r.length?new n(i,s,r,a):null,pos:o}}},$e=class n{constructor(e,t,r,i){this.chunkPos=e,this.chunk=t,this.nextLayer=r,this.maxPoint=i}static create(e,t,r,i){return new n(e,t,r,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:r=!1,filterFrom:i=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(r&&(t=t.slice().sort(hp)),this.isEmpty)return t.length?n.of(t):this;let a=new Gc(this,null,-1).goto(0),l=0,c=[],d=new Zr;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(Ya.create(a.from,a.to,a.value))),a.next());return d.finishInner(this.nextLayer.isEmpty&&!c.length?n.empty:this.nextLayer.update({add:c,filter:o,filterFrom:i,filterTo:s}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],r=[],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),r.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),r.push(h))}}let s=this.nextLayer.map(e);return t.length==0?s:new n(r,t,s||n.empty,i)}between(e,t,r){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,r)===!1)return}this.nextLayer.between(e,t,r)}}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,r,i,s=-1){let o=e.filter(h=>h.maxPoint>0||!h.is Line truncated
`)}static newName(){let e=uS[hS]||1;return uS[hS]=e+1,"\u037C"+e.toString(36)}static mount(e,t,r){let i=e[Op],s=r&&r.nonce;i?s&&i.setNonce(s):i=new bp(e,s),i.mount(Array.isArray(t)?t:[t],e)}},fS=new Map,bp=class{constructor(e,t){let r=e.ownerDocument||e,i=r.defaultView;if(!e.head&&e.adoptedStyleSheets&&i.CSSStyleSheet){let s=fS.get(r);if(s)return e[Op]=s;this.sheet=new i.CSSStyleSheet,fS.set(r,this)}else this.styleTag=r.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[Op]=this}mount(e,t){let r=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),r)for(let c=0;c<a.rules.length;c++)r.insertRule(a.rules[c],i++)}else{for(;s<l;)i+=this.modules[s++].rules.length;i+=a.rules.length,s++}}if(r)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:'"'},d_=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),h_=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(At=0;At<10;At++)wi[48+At]=wi[96+At]=String(At);var At;for(At=1;At<=24;At++)wi[At+111]="F"+At;var At;for(At=65;At<=90;At++)wi[At]=String.fromCharCode(At+32),Eo[At]=String.fromCharCode(At);var At;for(Jc in wi)Eo.hasOwnProperty(Jc)||(Eo[Jc]=wi[Jc]);var Jc;function pS(n){var e=d_&&n.metaKey&&n.shiftKey&&!n.ctrlKey&&!n.altKey||h_&&n.shiftKey&&n.key&&n.key.length==1||n.key=="Unidentified",t=!e&&n.key||(n.shiftKey?Eo:wi)[n.keyCode]||n.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 kt(){var n=arguments[0];typeof n=="string"&&(n=document.createElement(n));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){var i=t[r];typeof i=="string"?n.setAttribute(r,i):i!=null&&(n[r]=i)}e++}for(;e<arguments.length;e++)mS(n,arguments[e]);return n}function mS(n,e){if(typeof e=="string")n.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)n.appendChild(e);else if(Array.isArray(e))for(var t=0;t<e.length;t++)mS(n,e[t]);else throw new RangeError("Unsupported child node: "+e)}var bn=typeof navigator!="undefined"?navigator:{userAgent:"",vendor:"",platform:""},Tp=typeof document!="undefined"?document:{documentElement:{style:{}}},Ap=/Edge\/(\d+)/.exec(bn.userAgent),ev=/MSIE \d/.test(bn.userAgent),Cp=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(bn.userAgent),Ed=!!(ev||Cp||Ap),gS=!Ed&&/gecko\/(\d+)/i.test(bn.userAgent),yp=!Ed&&/Chrome\/(\d+)/.exec(bn.userAgent),OS="webkitFontSmoothing"in Tp.documentElement.style,_p=!Ed&&/Apple Computer/.test(bn.vendor),bS=_p&&(/Mobile\/\w+/.test(bn.userAgent)||bn.maxTouchPoints>2),ae={mac:bS||/Mac/.test(bn.platform),windows:/Win/.test(bn.platform),linux:/Linux|X11/.test(bn.platform),ie:Ed,ie_version:ev?Tp.documentMode||6:Cp?+Cp[1]:Ap?+Ap[1]:0,gecko:gS,gecko_version:gS?+(/Firefox\/(\d+)/.exec(bn.userAgent)||[0,0])[1]:0,chrome:!!yp,chrome_version:yp?+yp[1]:0,ios:bS,android:/Android\b/.test(bn.userAgent),webkit:OS,webkit_version:OS?+(/\bAppleWebKit\/(\d+)/.exec(bn.userAgent)||[0,0])[1]:0,safari:_p,safari_version:_p?+(/\bVersion\/(\d+(\.\d+)?)/.exec(bn.userAgent)||[0,0])[1]:0,tabSize:Tp.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function wm(n,e){for(let t in n)t=="class"&&e.class?e.class+=" "+n.class:t=="style"&&e.style?e.style+=";"+n.style:e[t]=n[t];return e}var pd=Object.create(null);function xm(n,e,t){if(n==e)return!0;n||(n=pd),e||(e=pd);let r=Object.keys(n),i=Object.keys(e);if(r.length-(t&&r.indexOf(t)>-1?1:0)!=i.length-(t&&i.indexOf(t)>-1?1:0))return!1;for(let s of r)if(s!=t&&(i.indexOf(s)==-1||n[s]!==e[s]))return!1;return!0}function u_(n,e){for(let t=n.attributes.length-1;t>=0;t--){let r=n.attributes[t].name;e[r]==null&&n.removeAttribute(r)}for(let t in e){let r=e[t];t=="style"?n.style.cssText=r:n.getAttribute(t)!=r&&n.setAttribute(t,r)}}function yS(n,e,t){let r=!1;if(e)for(let i in e)t&&i in t||(r=!0,i=="style"?n.style.cssText="":n.removeAttribute(i));if(t)for(let i in t)e&&e[i]==t[i]||(r=!0,i=="style"?n.style.cssText=t[i]:n.setAttribute(i,t[i]));return r}function f_(n){let e=Object.create(null);for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];e[r.name]=r.value}return e}var Ct=class{eq(e){return!1}updateDOM(e,t,r){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,r){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}},Ht=(function(n){return n[n.Text=0]="Text",n[n.WidgetBefore=1]="WidgetBefore",n[n.WidgetAfter=2]="WidgetAfter",n[n.WidgetRange=3]="WidgetRange",n})(Ht||(Ht={})),J=class extends fr{constructor(e,t,r,i){super(),this.startSide=e,this.endLine truncated
`,i=n.state.doc.line(i.number+(t?1:-1)),s=n.bidiSpans(i),c=n.visualLineSide(i,!t)}if(l){if(!l(d))return a}else{if(!r)return c;l=r(d)}a=c}}function Y_(n,e,t){let r=n.state.charCategorizer(e),i=r(t);return s=>{let o=r(s);return i==et.Space&&(i=o),i==o}}function j_(n,e,t,r){let i=e.head,s=t?1:-1;if(i==(t?n.state.doc.length:0))return z.cursor(i,e.assoc);let o=e.goalColumn,a,l=n.contentDOM.getBoundingClientRect(),c=n.coordsAtPos(i,e.assoc||((e.empty?t:e.head==e.from)?1:-1)),d=n.documentTop;if(c)o==null&&(o=c.left-l.left),a=s<0?c.top:c.bottom;else{let m=n.viewState.lineBlockAt(i);o==null&&(o=Math.min(l.right-l.left,n.defaultCharacterWidth*(i-m.from))),a=(s<0?m.top:m.bottom)+d}let h=l.left+o,u=n.viewState.heightOracle.textHeight>>1,f=r!=null?r:u;for(let m=0;;m+=u){let O=a+(f+m)*s,S=jp(n,{x:h,y:O},!1,s);if(t?O>l.bottom:O<l.top)return z.cursor(S.pos,S.assoc);let x=n.coordsAtPos(S.pos,S.assoc),D=x?(x.top+x.bottom)/2:0;if(!x||(t?D>a:D<a))return z.cursor(S.pos,S.assoc,void 0,o)}}function nl(n,e,t){for(;;){let r=0;for(let i of n)i.between(e-1,e+1,(s,o,a)=>{if(e>s&&e<o){let l=r||t||(e-s<o-e?-1:1);e=l<0?s:o,r=l}});if(!r)return e}}function _v(n,e){let t=null;for(let r=0;r<e.ranges.length;r++){let i=e.ranges[r],s=null;if(i.empty){let o=nl(n,i.from,0);o!=i.from&&(s=z.cursor(o,-1))}else{let o=nl(n,i.from,-1),a=nl(n,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[r]=s)}return t?z.create(t,e.mainIndex):e}function wp(n,e,t){let r=nl(n.state.facet(ul).map(i=>i(n)),t.from,e.head>t.from?-1:1);return r==t.from?t:z.cursor(r,r<t.from?1:-1)}var Or=class{constructor(e,t){this.pos=e,this.assoc=t}};function jp(n,e,t,r){let i=n.contentDOM.getBoundingClientRect(),s=i.top+n.viewState.paddingTop,{x:o,y:a}=e,l=a-s,c;for(;;){if(l<0)return new Or(0,1);if(l>n.viewState.docHeight)return new Or(n.state.doc.length,-1);if(c=n.elementAtHeight(l),r==null)break;if(c.type==Ht.Text){if(r<0?c.to<n.viewport.from:c.from>n.viewport.to)break;let u=n.docView.coordsAt(r<0?c.from:c.to,r>0?-1:1);if(u&&(r<0?u.top<=l+s:u.bottom>=l+s))break}let h=n.viewState.heightOracle.textHeight/2;l=r>0?c.bottom+h:c.top-h}if(n.viewport.from>=c.to||n.viewport.to<=c.from){if(t)return null;if(c.type==Ht.Text){let h=V_(n,i,c,o,a);return new Or(h,h==c.from?1:-1)}}if(c.type!=Ht.Text)return l<(c.top+c.bottom)/2?new Or(c.from,1):new Or(c.to,-1);let d=n.docView.lineAt(c.from,2);return(!d||d.length!=c.length)&&(d=n.docView.lineAt(c.from,-2)),new Up(n,o,a,n.textDirectionAt(c.from)).scanTile(d,c.from)}var Up=class{constructor(e,t,r,i){this.view=e,this.x=t,this.y=r,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:r,spans:i}=this.bidiSpansAt(e);return i[br.find(i,e-r.from,-1,t)].level==this.baseDir}dirAt(e,t){let{line:r,spans:i}=this.bidiSpansAt(e);return i[br.find(i,e-r.from,-1,t)].dir}bidiIn(e,t){let{spans:r,line:i}=this.bidiSpansAt(e);return r.length>1||r.length&&(r[0].level!=this.baseDir||r[0].to+i.from<t)}scan(e,t,r=!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,O=i+s>>1;t:if(o.has(O)){for(let D=1;D<m;D++){let M=O+D;if(M>=s&&(M-=m),!o.has(M)){O=M;break t}}break e}o.add(O);let S=t(O),x=0;if(S)for(let D=0;D<S.length;D++){let M=S[D];if(!(M.width==0&&S.length>1))if(M.bottom<this.y)(!l||l.bottom<M.bottom)&&(l=M),x=1;else if(M.top>this.y)(!c||c.top>M.top)&&(c=M),x=-1;else{let Z=M.left>this.x?this.x-M.left:M.right<this.x?this.x-M.right:0,k=Math.abs(Z);k<h&&(d=O,h=k,u=M),Z&&(x=Z<0==(this.baseDir==qe.LTR)?-1:1)}}x==-1&&(!a||this.baseDirAt(e[O],1))?s=O:x==1&&(!a||this.baseDirAt(e[O+1],-1))&&(i=O+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&&!r){let{top:m,bottom:O}=u;if(l&&l.bottom>(m+m+O)/3)return this.y=l.bottom-1,this.scan(e,t,!0);if(c&&c.top<(m+O+O)/3)return this.y=c.top+1,this.scan(e,t,!0)}let f=(a?this.dirAt(e[d],1):this.baseDir)==qe.LTR;return{i:d,after:this.x>(u.left+u.right)/2==f}}scanText(e,t){let r=[];for(let s=0;s<e.length;s=Pt(e.text,s))r.push(t+s);r.push(t+e.length);let i=this.scan(r,s=>{let o=r[s]-t,a=r[s+1]-t;return cl(e.dom,o,a).getClientRects()});return i.after?new Or(r[i.i+1],-1):new Or(r[i.i],1)}scanTile(e,t){if(!e.length)return new Or(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 r=[t];for(let a=0,l=t;a<e.children.length;a++)r.push(l+=e.children[a].length);let i=this.scan(r,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=r[i.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):i.after?new Or(r[i.i+1],-1):new Or(o,1)}},Ro="\uFFFF",qp=class{con Line truncated
`&&n.lineWrapping&&(r&&(r=z.single(r.main.anchor-1,r.main.head-1)),t={from:s.from,to:s.to,insert:De.of([" "])}),t)return Cm(n,t,r,o);if(r&&!wd(r,s)){let a=!1,l="select";return n.inputState.lastSelectionTime>Date.now()-50&&(n.inputState.lastSelectionOrigin=="select"&&(a=!0),l=n.inputState.lastSelectionOrigin,l=="select.pointer"&&(r=_v(i.facet(ul).map(c=>c(n)),r))),n.dispatch({selection:r,scrollIntoView:a,userEvent:l}),!0}else return!1}function Cm(n,e,t,r=-1){if(ae.ios&&n.inputState.flushIOSKey(e))return!0;let i=n.state.selection.main;if(ae.android&&(e.to==i.to&&(e.from==i.from||e.from==i.from-1&&n.state.sliceDoc(e.from,i.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Xo(n.contentDOM,"Enter",13)||(e.from==i.from-1&&e.to==i.to&&e.insert.length==0||r==8&&e.insert.length<e.to-e.from&&e.to>i.head)&&Xo(n.contentDOM,"Backspace",8)||e.from==i.from&&e.to==i.to+1&&e.insert.length==0&&Xo(n.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();n.inputState.composing>=0&&n.inputState.composing++;let o,a=()=>o||(o=G_(n,e,t));return n.state.facet(yv).some(l=>l(n,e.from,e.to,s,a))||n.dispatch(a()),!0}function G_(n,e,t){let r,i=n.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=nl(i.facet(ul).map(h=>h(n)),c,l);e.from==d&&(o=d)}if(o>-1)r={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)&&n.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):"";r=i.replaceSelection(n.state.toText(l+e.insert.sliceString(0,void 0,n.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&&(n.inputState.composing>=0||n.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let d=n.state.sliceDoc(e.from,e.to),h,u=t&&Cv(n,t.main.head);if(u){let m=e.insert.length-(e.to-e.from);h={from:u.from,to:u.to-m}}else h=n.state.doc.lineAt(s.head);let f=s.to-e.to;r=i.changeByRange(m=>{if(m.from==s.from&&m.to==s.to)return{changes:l,range:c||m.map(l)};let O=m.to-f,S=O-d.length;if(n.state.sliceDoc(S,O)!=d||O>=h.from&&S<=h.to)return{range:m};let x=i.changes({from:S,to:O,insert:e.insert}),D=m.to-s.to;return{changes:x,range:c?z.range(Math.max(0,c.anchor+D),Math.max(0,c.head+D)):m.map(x)}})}else r={changes:l,selection:c&&i.selection.replaceRange(c)}}let a="input.type";return(n.composing||n.inputState.compositionPendingChange&&n.inputState.compositionEndedAt>Date.now()-50)&&(n.inputState.compositionPendingChange=!1,a+=".compose",n.inputState.compositionFirstChange&&(a+=".start",n.inputState.compositionFirstChange=!1)),i.update(r,{userEvent:a,scrollIntoView:!0})}function Mv(n,e,t,r){let i=Math.min(n.length,e.length),s=0;for(;s<i&&n.charCodeAt(s)==e.charCodeAt(s);)s++;if(s==i&&n.length==e.length)return null;let o=n.length,a=e.length;for(;o>0&&a>0&&n.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(r=="end"){let l=Math.max(0,s-Math.min(o,a));t-=o+l-s}if(o<s&&n.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 H_(n){let e=[];if(n.root.activeElement!=n.contentDOM)return e;let{anchorNode:t,anchorOffset:r,focusNode:i,focusOffset:s}=n.observer.selectionRange;return t&&(e.push(new vd(t,r)),(i!=t||s!=r)&&e.push(new vd(i,s))),e}function K_(n,e){if(n.length==0)return null;let t=n[0].pos,r=n.length==2?n[1].pos:t;return t>-1&&r>-1?z.single(t+e,r+e):null}function wd(n,e){return e.head==n.main.head&&e.anchor==n.main.anchor}var Hp=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,ae.safari&&e.contentDOM.addEventListener("input",()=>null),ae.gecko&&f2(e.contentDOM.ownerDocument)}handleEvent(e){!o2(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 r=this.handlers[e];if(r){for(let i of r.observers)i(this.view,t);for(let i of r.handlers){if(t.defaultPrevented)break;if(i(this.view,t)){t.preventDefault();break}}}}ensureHandl Line truncated
`))};if((ae.mac||ae.android)&&h.from==o-1&&/^\. ?$/.test(r.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(h={from:a,to:l,insert:De.of([r.text.replace("."," ")])}),this.pendingContextChange=h,!e.state.readOnly){let u=this.to-this.from+(h.to-h.from+h.insert.length);Cm(e,h,z.single(this.toEditorPos(r.selectionStart,u),this.toEditorPos(r.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,r.updateRangeStart-1),Math.min(t.text.length,r.updateRangeStart+1)))&&this.handlers.compositionend(r)},this.handlers.characterboundsupdate=r=>{let i=[],s=null;for(let o=this.toEditorPos(r.rangeStart),a=this.toEditorPos(r.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(r.rangeStart,i)},this.handlers.textformatupdate=r=>{let i=[];for(let s of r.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(J.mark({attributes:{style:d}}).range(l,c))}}}e.dispatch({effects:Pv.of(J.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:r}=this.composing;this.composing=null,r&&this.reset(e.state)}};for(let r in this.handlers)t.addEventListener(r,this.handlers[r]);this.measureReq={read:r=>{let i=ll(r.root);i&&i.rangeCount&&this.editContext.updateSelectionBounds(i.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,r=!1,i=this.pendingContextChange;return e.changes.iterChanges((s,o,a,l,c)=>{if(r)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){r=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=d}t+=d}),i&&!r&&this.revertPending(e.state),!r}update(e){let t=this.pendingContextChange,r=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(r.from,r.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,r=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),i=this.toContextPos(t.head);(this.editContext.selectionStart!=r||this.editContext.selectionEnd!=i)&&this.editContext.updateSelection(r,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 r=this.composing;return r&&r.drifted?r.editorBase+(e-r.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])}},F=class n{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=d Line truncated
-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,pm),z2={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"},Pp=null;function W2(){var n;if(Pp==null&&typeof document!="undefined"&&document.body){let e=document.body.style;Pp=((n=e.tabSize)!==null&&n!==void 0?n:e.MozTabSize)!=null}return Pp||!1}var ud=oe.define({combine(n){let e=Yn(n,{render:null,specialChars:X2,addSpecialChars:null});return(e.replaceTabs=!W2())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,pm)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,pm)),e}});function ew(n={}){return[ud.of(n),N2()]}var YS=null;function N2(){return YS||(YS=it.fromClass(class{constructor(n){this.view=n,this.decorations=J.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(ud)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new dl({regexp:n.specialChars,decoration:(e,t,r)=>{let{doc:i}=t.state,s=Ir(e[0],0);if(s==9){let o=i.lineAt(r),a=t.state.tabSize,l=Gt(o.text,a,r-o.from);return J.replace({widget:new gm((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=J.replace({widget:new mm(n,s)}))},boundary:n.replaceTabs?void 0:/[^]/})}update(n){let e=n.state.facet(ud);n.startState.facet(ud)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(n.view)):this.decorations=this.decorator.updateDeco(n,this.decorations)}},{decorations:n=>n.decorations}))}var B2="\u2022";function V2(n){return n>=32?B2:n==10?"\u2424":String.fromCharCode(9216+n)}var mm=class extends Ct{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=V2(this.code),r=e.state.phrase("Control character")+" "+(z2[this.code]||"0x"+this.code.toString(16)),i=this.options.render&&this.options.render(this.code,r,t);if(i)return i;let s=document.createElement("span");return s.textContent=t,s.title=r,s.setAttribute("aria-label",r),s.className="cm-specialChar",s}ignoreEvent(){return!1}},gm=class extends Ct{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 Dd(){return Y2}var F2=J.line({class:"cm-activeLine"}),Y2=it.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.docChanged||n.selectionSet)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=-1,t=[];for(let r of n.state.selection.ranges){let i=n.lineBlockAt(r.head);i.from>e&&(t.push(F2.range(i.from)),e=i.from)}return J.set(t)}},{decorations:n=>n.decorations});var Om=2e3;function j2(n,e,t){let r=Math.min(e.line,t.line),i=Math.max(e.line,t.line),s=[];if(e.off>Om||t.off>Om||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=r;l<=i;l++){let c=n.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=r;l<=i;l++){let c=n.doc.line(l),d=Kc(c.text,o,n.tabSize,!0);if(d<0)s.push(z.cursor(c.to));else{let h=Kc(c.text,a,n.tabSize);s.push(z.range(c.from+d,c.from+h))}}}return s}function U2(n,e){let t=n.coordsAtPos(n.viewport.from);return t?Math.round(Math.abs((t.left-e)/n.defaultCharacterWidth)):-1}function jS(n,e){let t=n.posAtCoords({x:e.clientX,y:e.clientY},!1),r=n.state.doc.lineAt(t),i=t-r.from,s=i>Om?-1:i==r.length?U2(n,e.clientX):Gt(r.text,n.state.tabSize,t-r.from);return{line:r.number,col:s,off:i}}function q2(n,e){let t=jS(n,e),r=n.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)},r=r.map(i.changes)}},get(i,s,o){let a=jS(n,i);if(!a)return r;let l=j2(n.state,t,a);return l.length?o?z.create(l.concat(r.ranges)):z.create(l):r}}:null}function Zd(n){let e=(n==null?void 0:n.eventFilter)||(t=>t.altKey&&t.button==0);return F.mouseSelectionStyle.of((t,r)=>e(r)?q2(t,r):null)}var G2={Alt:[18,n=>!!n.altKey],Control:[17,n=>!!n.ctrlKey],Shift:[16,n=>!!n.shiftKey],Meta:[91,n=>!!n.metaKey]},H2={style:"cursor: crosshair"};function Id(n={}){let[e,t]=G2[n.key||"Alt"],r=it.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))}}});retu Line truncated
`&&(t="");else{let r=t.indexOf(`
`);r>-1&&(t=t.slice(0,r))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),r=e+t.length;for(let i=this.rangeIndex;;){let s=this.ranges[i].to;if(s>=r||(t=t.slice(0,s-(r-t.length)),i++,i==this.ranges.length))break;let o=this.ranges[i].from,a=this.lineAfter(o);t+=a,r=o+a.length}return{line:t,end:r}}skipGapsTo(e,t,r){for(;;){let i=this.ranges[this.rangeIndex].to,s=e+t;if(r>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,r,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(r,i,-1),r+=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]=r:this.chunk.push(e,t,r,s),i}parseLine(e){let{line:t,end:r}=this.nextLine(),i=0,{streamParser:s}=this.lang,o=new Hd(t,e?e.state.tabSize:4,e?ii(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let a=Uw(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=r,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:rR,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 Uw(n,e,t){e.start=e.pos;for(let r=0;r<10;r++){let i=n(e,t);if(e.pos>e.start)return i}throw new Error("Stream parser failed to advance stream.")}var pg=Object.create(null),yl=[St.none],rR=new $i(yl),_w=[],Ew=Object.create(null),qw=Object.create(null);for(let[n,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"]])qw[n]=Gw(pg,e);var Kd=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),qw)}resolve(e){return e?this.table[e]||(this.table[e]=Gw(this.extra,e)):0}},iR=new Kd(pg);function Km(n,e){_w.indexOf(n)>-1||(_w.push(n),console.warn(e))}function Gw(n,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let d=n[c]||g[c];d?typeof d=="function"?l.length?l=l.map(d):Km(c,`Modifier ${c} used at start of tag`):l.length?Km(c,`Tag ${c} used as modifier`):l=Array.isArray(d)?d:[d]:Km(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let r=e.replace(/ /g,"_"),i=r+" "+t.map(a=>a.id),s=Ew[i];if(s)return s.id;let o=Ew[i]=St.define({id:yl.length,name:r,props:[Kt({[r]:t})]});return yl.push(o),o.id}function sR(n,e){let t=St.define({id:yl.length,name:"Document",props:[Ai.add(()=>n),En.add(()=>r=>e.getIndent(r))],top:!0});return yl.push(t),t}var CN={rtl:J.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:qe.RTL}),ltr:J.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:qe.LTR}),auto:J.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var nh=class{constructor(e,t,r,i){this.state=e,this.pos=t,this.explicit=r,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),r=Math.max(t.from,this.pos-250),i=t.text.slice(r-t.from,this.pos-t.from),s=i.search(aR(e,!1));return s<0?null:{from:r+s,to:this.pos,text:i.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,r){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),r&&r.onDocChange&&(this.abortOnDocChange=!0))}};function Hw(n){let e=Object.keys(n).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function oR(n){let e=Object.create(null),t=Object.create(null);for(let{label:i}of n){e[i[0]]=!0;for(let s=1;s<i.length;s++)t[i[s]]=!0}let r=Hw(e)+Hw(t)+"*$";return[new RegExp("^"+r),new RegExp(r)]}function tx(n){let e=n.map(i=>typeof i=="string"?{label:i}:i),[t,r]=e.every(i=>/^\w+$/.test(i.label))?[/\w*$/,/\w+$/]:oR(e);return i=>{let s=i.matchBefore(r);return s||i.explicit?{from:s?s.from:i.pos,options:e,validFor:t}:null}}function nx(n,e){return t=>{for(let r=ze(t.state).resolve Line truncated
`);r>-1&&(t=t.slice(0,r))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),r=e+t.length;for(let i=this.rangeIndex;;){let s=this.ranges[i].to;if(s>=r||(t=t.slice(0,s-(r-t.length)),i++,i==this.ranges.length))break;let o=this.ranges[i].from,a=this.lineAfter(o);t+=a,r=o+a.length}return{line:t,end:r}}skipGapsTo(e,t,r){for(;;){let i=this.ranges[this.rangeIndex].to,s=e+t;if(r>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,r,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(r,i,-1),r+=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]=r:this.chunk.push(e,t,r,s),i}parseLine(e){let{line:t,end:r}=this.nextLine(),i=0,{streamParser:s}=this.lang,o=new Hd(t,e?e.state.tabSize:4,e?ii(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let a=Gw(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=r,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:sR,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 Gw(n,e,t){e.start=e.pos;for(let r=0;r<10;r++){let i=n(e,t);if(e.pos>e.start)return i}throw new Error("Stream parser failed to advance stream.")}var pg=Object.create(null),yl=[St.none],sR=new $i(yl),Rw=[],Mw=Object.create(null),Hw=Object.create(null);for(let[n,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"]])Hw[n]=Kw(pg,e);var Kd=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),Hw)}resolve(e){return e?this.table[e]||(this.table[e]=Kw(this.extra,e)):0}},oR=new Kd(pg);function Km(n,e){Rw.indexOf(n)>-1||(Rw.push(n),console.warn(e))}function Kw(n,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let d=n[c]||g[c];d?typeof d=="function"?l.length?l=l.map(d):Km(c,`Modifier ${c} used at start of tag`):l.length?Km(c,`Tag ${c} used as modifier`):l=Array.isArray(d)?d:[d]:Km(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let r=e.replace(/ /g,"_"),i=r+" "+t.map(a=>a.id),s=Mw[i];if(s)return s.id;let o=Mw[i]=St.define({id:yl.length,name:r,props:[Kt({[r]:t})]});return yl.push(o),o.id}function aR(n,e){let t=St.define({id:yl.length,name:"Document",props:[Ai.add(()=>n),En.add(()=>r=>e.getIndent(r))],top:!0});return yl.push(t),t}var RN={rtl:J.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:qe.RTL}),ltr:J.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:qe.LTR}),auto:J.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var nh=class{constructor(e,t,r,i){this.state=e,this.pos=t,this.explicit=r,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),r=Math.max(t.from,this.pos-250),i=t.text.slice(r-t.from,this.pos-t.from),s=i.search(cR(e,!1));return s<0?null:{from:r+s,to:this.pos,text:i.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,r){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),r&&r.onDocChange&&(this.abortOnDocChange=!0))}};function Jw(n){let e=Object.keys(n).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function lR(n){let e=Object.create(null),t=Object.create(null);for(let{label:i}of n){e[i[0]]=!0;for(let s=1;s<i.length;s++)t[i[s]]=!0}let r=Jw(e)+Jw(t)+"*$";return[new RegExp("^"+r),new RegExp(r)]}function rx(n){let e=n.map(i=>typeof i=="string"?{label:i}:i),[t,r]=e.every(i=>/^\w+$/.test(i.label))?[/\w*$/,/\w+$/]:lR(e);return i=>{let s=i.matchBefore(r);return s||i.explicit?{from:s?s.from:i.pos,options:e,validFor:t}:null}}function ix(n,e){return t=>{for(let r=ze(t.state).resolve Line truncated
`;let o=n.state.facet(ri),a=o instanceof Jt?"Lezer LRLanguage":o instanceof zt?"StreamLanguage":"Unknown",l=o instanceof Jt?"AST ":o instanceof zt?"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}: ${r.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 TR=n=>{let{state:e}=n,t=e.doc.lineAt(e.selection.main.from),r=$g(n.state,t.from);return r.line?AR(n):r.block?_R(n):!1};function kg(n,e){return({state:t,dispatch:r})=>{if(t.readOnly)return!1;let i=n(e,t);return i?(r(t.update(i)),!0):!1}}var AR=kg(MR,0);var CR=kg(yx,0);var _R=kg((n,e)=>yx(n,e,RR(e)),0);function $g(n,e){let t=n.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var xl=50;function ER(n,{open:e,close:t},r,i){let s=n.sliceDoc(r-xl,r),o=n.sliceDoc(i,i+xl),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:r-a,margin:a&&1},close:{pos:i+l,margin:l&&1}};let d,h;i-r<=2*xl?d=h=n.sliceDoc(r,i):(d=n.sliceDoc(r,r+xl),h=n.sliceDoc(i-xl,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:r+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 RR(n){let e=[];for(let t of n.selection.ranges){let r=n.doc.lineAt(t.from),i=t.to<=r.to?r:n.doc.lineAt(t.to);i.from>r.from&&i.from==t.to&&(i=t.to==r.to+1?r:n.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>r.from?e[s].to=i.to:e.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:i.to})}return e}function yx(n,e,t=e.selection.ranges){let r=t.map(s=>$g(e,s.from).block);if(!r.every(s=>s))return null;let i=t.map((s,o)=>ER(e,r[o],s.from,s.to));if(n!=2&&!i.every(s=>s))return{changes:e.changes(t.map((s,o)=>i[o]?[]:[{from:s.from,insert:r[o].open+" "},{from:s.to,insert:" "+r[o].close}]))};if(n!=1&&i.some(s=>s)){let s=[];for(let o=0,a;o<i.length;o++)if(a=i[o]){let l=r[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 MR(n,e,t=e.selection.ranges){let r=[],i=-1;e:for(let{from:s,to:o}of t){let a=r.length,l=1e9,c;for(let d=s;d<=o;){let h=e.doc.lineAt(d);if(c==null&&(c=$g(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),r.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<r.length;d++)r[d].indent<r[d].line.text.length&&(r[d].indent=l);r.length==a+1&&(r[a].single=!0)}if(n!=2&&r.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:a,token:l,indent:c,empty:d,single:h}of r)(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(n!=1&&r.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:a,token:l}of r)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 wg=Tn.define(),oh=Tn.define(),LR=oe.define(),Sx=oe.define({combine(n){return Yn(n,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(r,i)=>e(r,i)||t(r,i)})}}),vx=Xe.define({create(){return Hs.empty},update(n,e){let t=e.state.facet(Sx),r=e.annotation(wg);if(r){let l=Br.fromTransaction(e,r.selection),c=r.side,d=c==0?n.undone:n.done;return l?d=sh(d,d.length,t.minDepth,l):d=Px(d,e.startState.selection),new Hs(c==0?r.rest:d,c==0?d:r.rest)}let i=e.annotation(oh);if((i=="full"||i=="before")&&(n=n.isolate()),e.annotation(ut.addToHistory)===!1)return e.changes.empty?n:n.addMapping(e.changes.desc);let s=Br.fromTransaction(e),o=e.annotation(ut.time),a=e.annotation(ut.userEvent);return s?n=n.addChanges(s,o,a,t,e):e.selection&&(n=n.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(i=="full"||i=="after")&&(n=n.isolate()),n},toJSON(n){return{done:n.done.map(e=>e.toJSON()),undone:n.undone.map(e=>e.toJSON())}},fromJSON(n){return new Hs(n.done.map(Br.fromJSON),n.undone.map(Br.fromJSON))}});function wx(n={}){return[vx,Sx.of(n),F.domEventHandlers({beforeinput(e,t){let r=e.inputType=="historyUndo"?Pl:e.inputType=="historyRedo"?Ko:null;return r?(e.preventDefault(),r(t)):!1}})]}function ah(n,e){return function({state:t,dispatch:r}){if(!e&&t.readOnly)return!1;let i=t.field(vx,!1);if(!i)return!1;let s=i.pop(n,t,e);return s?(r(s),!0):!1}}var Pl=ah(0,!1),Ko=ah(1,!1),DR=ah(0,!0),ZR=ah(1,!0);var Br=class n{constructor(e,t,r,i,s){this.changes=e,this.effects=t,this.mapped=r,this.startSelection=i,this.selectionsAfter=s}setSelAfter(e){return new n(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,r;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&&r++;let c=l-i;c>=2&&c<=8&&e.set(c,(e.get(c)||0)+1),i=l}if(t>r)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 DM(n){let e=n.state;return e.selection.ranges.some(t=>!t.empty)?hh(n):(n.dispatch(e.changeByRange(t=>{let r=LM(e,t.head);return{changes:{from:t.head,insert:r},range:z.cursor(t.head+r.length)}}),{scrollIntoView:!0,userEvent:"input"}),!0)}function ZM(n){for(let e=1;e<=n.doc.lines;e++)if(/^\d\d/.test(n.doc.line(e).text))return!0;return!1}var t1=[{key:"Enter",run:n=>ZM(n.state)&&Gx(n)}],n1=[{key:"Tab",run:DM},{key:"Shift-Tab",run:uh}],r1=[{key:"Tab",run:Kx},{key:"Shift-Tab",run:uh}],$l=50,fh=8,IM=!0;function ea(n){IM&&console.log("[asm-tab] "+n)}function ta(n,e){let t=0;for(let r=0;r<e;r++)t=n.charCodeAt(r)==9?(Math.floor(t/fh)+1)*fh:t+1;return t}function Ag(n,e){n>0&&e.set(n,(e.get(n)||0)+1)}function XM(n,e){let t=[],r=/\S+/g,i;for(;(i=r.exec(n))!==null&&n[i.index]!=";";)t.push(ta(n,i.index));let s=/(^|\s);/.exec(n);s&&Ag(ta(n,s.index+s[1].length),e);let o=t.length&&t[0]==0?t.slice(1):t;o.length>=1&&Ag(o[0],e),o.length>=2&&Ag(o[1],e)}var zM=3;function i1(n,e){let t=n.doc.lineAt(e),r=n.doc.lines,i=(a,l,c,d)=>{let h=0;for(let u=a;u!=l&&h<$l;u+=c){let f=n.doc.line(u);f.text.trim()&&(XM(f.text,d),h++)}return h},s=new Map;return i(t.number+1,Math.min(r,t.number+$l)+1,1,s)<zM&&i(t.number-1,Math.max(1,t.number-$l)-1,-1,s),s}function WM(n,e,t){let r=-1,i=0;for(let[s,o]of n)s>e&&(o>i||o==i&&s<r)&&(r=s,i=o);return r>=0?r:(Math.floor(e/t)+1)*t}function NM(n,e,t){let r=-1,i=0;for(let[s,o]of n)s<e&&(o>i||o==i&&s>r)&&(r=s,i=o);return r>=0?r:Math.max(0,Math.min(Math.floor((e-1)/t)*t,e-1))}function s1(n,e){let t=n.doc.lineAt(e),r=Math.max(1,t.number-$l),i=Math.min(n.doc.lines,t.number+$l);for(let s=r;s<=i;s++)if(n.doc.line(s).text.includes(" "))return!0;return!1}function o1(n){return"["+[...n.entries()].sort((e,t)=>e[0]-t[0]).map(([e,t])=>`${e}:${t}`).join(" ")+"]"}function BM(n,e){let t=n.doc.lineAt(e),r=ta(t.text,e-t.from),i=s1(n,e),s=i?fh:n.tabSize,o=i1(n,e),a=WM(o,r,s);return ea(`Tab @ line ${t.number} col ${r}: stops(col:freq)=${o1(o)} ${i?"grid=8 (file has tabs)":`grid=${n.tabSize}`} -> target=${a} | line=${JSON.stringify(t.text.slice(0,r))}+CURSOR`),a<=r?null:{from:e,insert:" ".repeat(a-r)}}function VM(n,e){let t=n.doc.lineAt(e),r=e-t.from;if(r==0)return ea(`Backspace @ line ${t.number} col 0: start of line, using default`),null;if(t.text[r-1]==" ")return ea(`Backspace @ line ${t.number} col ${ta(t.text,r)}: deleting one tab char`),{from:e-1,to:e};if(!/^[ \t]+$/.test(t.text.slice(0,r)))return ea(`Backspace @ line ${t.number} col ${ta(t.text,r)}: cursor not in leading whitespace, using default`),null;let i=s1(n,e),s=i?fh:n.tabSize,o=ta(t.text,r),a=i1(n,e),l=NM(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)=${o1(a)} ${i?"grid=8 (file has tabs)":`grid=${n.tabSize}`} -> deleting cols ${l}..${o} | line=${JSON.stringify(t.text.slice(0,r))}+CURSOR`),{from:c,to:e}}function FM(n){let e=n.state;if(e.selection.ranges.some(r=>!r.empty))return!1;let t=e.changeByRange(r=>{let i=BM(e,r.head);return i?{changes:i,range:z.cursor(r.head+i.insert.length)}:{range:r}});return n.dispatch(t),!0}function YM(n){let e=n.state,t=e.selection.main;if(!t.empty)return!1;let r=VM(e,t.head);return r?(n.dispatch(e.update({changes:r,selection:z.cursor(r.from)})),!0):!1}function a1(n){return[{key:"Tab",run:e=>n()&&FM(e)},{key:"Backspace",run:e=>n()&&YM(e)}]}var jM=new Vt,UM=new Vt,qM=new Vt,GM=new Vt,HM=new Vt,KM=new Vt,JM=new Vt,eL=new Vt,c1="8bitworkshop/editorSettings",l1={tabSize:8,tabsToSpaces:!0,highlightSpecialChars:!1,highlightWhitespace:!1,highlightTrailingWhitespace:!1,closeBrackets:!1,debugHighlightTags:!1,showLineNumbers:!1,showStatusBar:!0};function na(){try{var n=localStorage.getItem(c1);if(n)return Ue(Ue({},l1),JSON.parse(n))}catch(e){}return Ue({},l1)}function tL(n){localStorage.setItem(c1,JSON.stringify(n))}var d1=[[GM,n=>[Me.tabSize.of(n.tabSize),yr.of(" ".repeat(n.tabSize))]],[KM,n=>Sn.of(n.tabsToSpaces?n1:r1)],[jM,n=>n.highlightSpecialChars?Kv():[]],[UM,n=>n.highlightWhitespace?lw():[]],[qM,n=>n.highlightTrailingWhitespace?cw():[]],[HM,n=>n.closeBrackets?[sx(),Sn.of([{key:"Backspace",run:lx}])]:[]],[JM,n=>n.debugHighlightTags?dx:[]],[eL,n=>n.showLineNumbers?Xd():[]]];function h1(n){return d1.map(([e,t])=>e.of(t(n)))}var u1=new Set;function f1(n){u1.add(n)}function nL(n){var e=d1.map(([r,i])=>r.reconfigure(i(n)));for(var t of u1)t.dispatch({effects:e})}function p1(){var n=na(),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 CR=n=>{let{state:e}=n,t=e.doc.lineAt(e.selection.main.from),r=$g(n.state,t.from);return r.line?_R(n):r.block?RR(n):!1};function kg(n,e){return({state:t,dispatch:r})=>{if(t.readOnly)return!1;let i=n(e,t);return i?(r(t.update(i)),!0):!1}}var _R=kg(DR,0);var ER=kg(vx,0);var RR=kg((n,e)=>vx(n,e,LR(e)),0);function $g(n,e){let t=n.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var xl=50;function MR(n,{open:e,close:t},r,i){let s=n.sliceDoc(r-xl,r),o=n.sliceDoc(i,i+xl),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:r-a,margin:a&&1},close:{pos:i+l,margin:l&&1}};let d,h;i-r<=2*xl?d=h=n.sliceDoc(r,i):(d=n.sliceDoc(r,r+xl),h=n.sliceDoc(i-xl,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:r+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 LR(n){let e=[];for(let t of n.selection.ranges){let r=n.doc.lineAt(t.from),i=t.to<=r.to?r:n.doc.lineAt(t.to);i.from>r.from&&i.from==t.to&&(i=t.to==r.to+1?r:n.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>r.from?e[s].to=i.to:e.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:i.to})}return e}function vx(n,e,t=e.selection.ranges){let r=t.map(s=>$g(e,s.from).block);if(!r.every(s=>s))return null;let i=t.map((s,o)=>MR(e,r[o],s.from,s.to));if(n!=2&&!i.every(s=>s))return{changes:e.changes(t.map((s,o)=>i[o]?[]:[{from:s.from,insert:r[o].open+" "},{from:s.to,insert:" "+r[o].close}]))};if(n!=1&&i.some(s=>s)){let s=[];for(let o=0,a;o<i.length;o++)if(a=i[o]){let l=r[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 DR(n,e,t=e.selection.ranges){let r=[],i=-1;e:for(let{from:s,to:o}of t){let a=r.length,l=1e9,c;for(let d=s;d<=o;){let h=e.doc.lineAt(d);if(c==null&&(c=$g(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),r.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<r.length;d++)r[d].indent<r[d].line.text.length&&(r[d].indent=l);r.length==a+1&&(r[a].single=!0)}if(n!=2&&r.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:a,token:l,indent:c,empty:d,single:h}of r)(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(n!=1&&r.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:a,token:l}of r)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 wg=Tn.define(),oh=Tn.define(),ZR=oe.define(),wx=oe.define({combine(n){return Yn(n,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(r,i)=>e(r,i)||t(r,i)})}}),xx=Xe.define({create(){return Hs.empty},update(n,e){let t=e.state.facet(wx),r=e.annotation(wg);if(r){let l=Br.fromTransaction(e,r.selection),c=r.side,d=c==0?n.undone:n.done;return l?d=sh(d,d.length,t.minDepth,l):d=$x(d,e.startState.selection),new Hs(c==0?r.rest:d,c==0?d:r.rest)}let i=e.annotation(oh);if((i=="full"||i=="before")&&(n=n.isolate()),e.annotation(ut.addToHistory)===!1)return e.changes.empty?n:n.addMapping(e.changes.desc);let s=Br.fromTransaction(e),o=e.annotation(ut.time),a=e.annotation(ut.userEvent);return s?n=n.addChanges(s,o,a,t,e):e.selection&&(n=n.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(i=="full"||i=="after")&&(n=n.isolate()),n},toJSON(n){return{done:n.done.map(e=>e.toJSON()),undone:n.undone.map(e=>e.toJSON())}},fromJSON(n){return new Hs(n.done.map(Br.fromJSON),n.undone.map(Br.fromJSON))}});function Px(n={}){return[xx,wx.of(n),F.domEventHandlers({beforeinput(e,t){let r=e.inputType=="historyUndo"?Pl:e.inputType=="historyRedo"?Ko:null;return r?(e.preventDefault(),r(t)):!1}})]}function ah(n,e){return function({state:t,dispatch:r}){if(!e&&t.readOnly)return!1;let i=t.field(xx,!1);if(!i)return!1;let s=i.pop(n,t,e);return s?(r(s),!0):!1}}var Pl=ah(0,!1),Ko=ah(1,!1),IR=ah(0,!0),XR=ah(1,!0);var Br=class n{constructor(e,t,r,i,s){this.changes=e,this.effects=t,this.mapped=r,this.startSelection=i,this.selectionsAfter=s}setSelAfter(e){return new n(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,r;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&&r++;let c=l-i;c>=2&&c<=8&&e.set(c,(e.get(c)||0)+1),i=l}if(t>r)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 IM(n){let e=n.state;return e.selection.ranges.some(t=>!t.empty)?hh(n):(n.dispatch(e.changeByRange(t=>{let r=ZM(e,t.head);return{changes:{from:t.head,insert:r},range:z.cursor(t.head+r.length)}}),{scrollIntoView:!0,userEvent:"input"}),!0)}function XM(n){for(let e=1;e<=n.doc.lines;e++)if(/^\d\d/.test(n.doc.line(e).text))return!0;return!1}var r1=[{key:"Enter",run:n=>XM(n.state)&&Kx(n)}],i1=[{key:"Tab",run:IM},{key:"Shift-Tab",run:uh}],s1=[{key:"Tab",run:e1},{key:"Shift-Tab",run:uh}],$l=50,fh=8,zM=!0;function ea(n){zM&&console.log("[asm-tab] "+n)}function ta(n,e){let t=0;for(let r=0;r<e;r++)t=n.charCodeAt(r)==9?(Math.floor(t/fh)+1)*fh:t+1;return t}function Ag(n,e){n>0&&e.set(n,(e.get(n)||0)+1)}function WM(n,e){let t=[],r=/\S+/g,i;for(;(i=r.exec(n))!==null&&n[i.index]!=";";)t.push(ta(n,i.index));let s=/(^|\s);/.exec(n);s&&Ag(ta(n,s.index+s[1].length),e);let o=t.length&&t[0]==0?t.slice(1):t;o.length>=1&&Ag(o[0],e),o.length>=2&&Ag(o[1],e)}var NM=3;function o1(n,e){let t=n.doc.lineAt(e),r=n.doc.lines,i=(a,l,c,d)=>{let h=0;for(let u=a;u!=l&&h<$l;u+=c){let f=n.doc.line(u);f.text.trim()&&(WM(f.text,d),h++)}return h},s=new Map;return i(t.number+1,Math.min(r,t.number+$l)+1,1,s)<NM&&i(t.number-1,Math.max(1,t.number-$l)-1,-1,s),s}function BM(n,e,t){let r=-1,i=0;for(let[s,o]of n)s>e&&(o>i||o==i&&s<r)&&(r=s,i=o);return r>=0?r:(Math.floor(e/t)+1)*t}function VM(n,e,t){let r=-1,i=0;for(let[s,o]of n)s<e&&(o>i||o==i&&s>r)&&(r=s,i=o);return r>=0?r:Math.max(0,Math.min(Math.floor((e-1)/t)*t,e-1))}function a1(n,e){let t=n.doc.lineAt(e),r=Math.max(1,t.number-$l),i=Math.min(n.doc.lines,t.number+$l);for(let s=r;s<=i;s++)if(n.doc.line(s).text.includes(" "))return!0;return!1}function l1(n){return"["+[...n.entries()].sort((e,t)=>e[0]-t[0]).map(([e,t])=>`${e}:${t}`).join(" ")+"]"}function FM(n,e){let t=n.doc.lineAt(e),r=ta(t.text,e-t.from),i=a1(n,e),s=i?fh:n.tabSize,o=o1(n,e),a=BM(o,r,s);return ea(`Tab @ line ${t.number} col ${r}: stops(col:freq)=${l1(o)} ${i?"grid=8 (file has tabs)":`grid=${n.tabSize}`} -> target=${a} | line=${JSON.stringify(t.text.slice(0,r))}+CURSOR`),a<=r?null:{from:e,insert:" ".repeat(a-r)}}function YM(n,e){let t=n.doc.lineAt(e),r=e-t.from;if(r==0)return ea(`Backspace @ line ${t.number} col 0: start of line, using default`),null;if(t.text[r-1]==" ")return ea(`Backspace @ line ${t.number} col ${ta(t.text,r)}: deleting one tab char`),{from:e-1,to:e};if(!/^[ \t]+$/.test(t.text.slice(0,r)))return ea(`Backspace @ line ${t.number} col ${ta(t.text,r)}: cursor not in leading whitespace, using default`),null;let i=a1(n,e),s=i?fh:n.tabSize,o=ta(t.text,r),a=o1(n,e),l=VM(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)=${l1(a)} ${i?"grid=8 (file has tabs)":`grid=${n.tabSize}`} -> deleting cols ${l}..${o} | line=${JSON.stringify(t.text.slice(0,r))}+CURSOR`),{from:c,to:e}}function jM(n){let e=n.state;if(e.selection.ranges.some(r=>!r.empty))return!1;let t=e.changeByRange(r=>{let i=FM(e,r.head);return i?{changes:i,range:z.cursor(r.head+i.insert.length)}:{range:r}});return n.dispatch(t),!0}function UM(n){let e=n.state,t=e.selection.main;if(!t.empty)return!1;let r=YM(e,t.head);return r?(n.dispatch(e.update({changes:r,selection:z.cursor(r.from)})),!0):!1}function c1(n){return[{key:"Tab",run:e=>n()&&jM(e)},{key:"Backspace",run:e=>n()&&UM(e)}]}var qM=new Vt,GM=new Vt,HM=new Vt,KM=new Vt,JM=new Vt,eL=new Vt,tL=new Vt,nL=new Vt,h1="8bitworkshop/editorSettings",d1={tabSize:8,tabsToSpaces:!0,highlightSpecialChars:!1,highlightWhitespace:!1,highlightTrailingWhitespace:!1,closeBrackets:!1,debugHighlightTags:!1,showLineNumbers:!1,showStatusBar:!0};function na(){try{var n=localStorage.getItem(h1);if(n)return Ue(Ue({},d1),JSON.parse(n))}catch(e){}return Ue({},d1)}function rL(n){localStorage.setItem(h1,JSON.stringify(n))}var u1=[[KM,n=>[Me.tabSize.of(n.tabSize),yr.of(" ".repeat(n.tabSize))]],[eL,n=>Sn.of(n.tabsToSpaces?i1:s1)],[qM,n=>n.highlightSpecialChars?ew():[]],[GM,n=>n.highlightWhitespace?dw():[]],[HM,n=>n.highlightTrailingWhitespace?hw():[]],[JM,n=>n.closeBrackets?[ax(),Sn.of([{key:"Backspace",run:dx}])]:[]],[tL,n=>n.debugHighlightTags?ux:[]],[nL,n=>n.showLineNumbers?Xd():[]]];function f1(n){return u1.map(([e,t])=>e.of(t(n)))}var p1=new Set;function m1(n){p1.add(n)}function iL(n){var e=u1.map(([r,i])=>r.reconfigure(i(n)));for(var t of p1)t.dispatch({effects:e})}function g1(){var n=na(),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="${n.tabSize}" style="width:4em"></label></div>
<div class="checkbox"><label><input type="checkbox" id="setting_tabsToSpaces" ${n.tabsToSpaces?"checked":""}> Insert spaces when pressing TAB</label></div>
<div class="checkbox"><label><input type="checkbox" id="setting_highlightSpecialChars" ${n.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" ${n.debugHighlightTags?"checked":""}> Debug editor syntax highlighting tags</label></div>
`:""}
</form>`,buttons:{cancel:{label:"Cancel",className:"btn-default"},ok:{label:"Save",className:"btn-primary",callback:()=>{n.tabSize=parseInt($("#setting_tabSize").val())||8,n.tabsToSpaces=$("#setting_tabsToSpaces").is(":checked"),n.highlightSpecialChars=$("#setting_highlightSpecialChars").is(":checked"),n.highlightWhitespace=$("#setting_highlightWhitespace").is(":checked"),n.highlightTrailingWhitespace=$("#setting_highlightTrailingWhitespace").is(":checked"),n.closeBrackets=$("#setting_closeBrackets").is(":checked"),n.showLineNumbers=$("#setting_showLineNumbers").is(":checked"),e&&(n.debugHighlightTags=$("#setting_debugHighlightTags").is(":checked")),n.showStatusBar=$("#setting_showStatusBar").is(":checked"),tL(n),nL(n),Cc(n.showStatusBar)}}}})}function ph(){return typeof navigator!="undefined"?navigator.storage:null}function rL(n){var e=n!==void 0?n:ph();return!!(e&&typeof e.persist=="function")}async function iL(n){var e=n!==void 0?n:ph();try{if(e&&typeof e.estimate=="function"){var t=await e.estimate();return{usage:t&&t.usage,quota:t&&t.quota}}}catch(r){console.log("storage.estimate() failed",r)}return{}}async function sL(n){var e=n!==void 0?n:ph(),t={supported:rL(e),persisted:!1};try{e&&typeof e.persisted=="function"&&(t.persisted=await e.persisted())}catch(i){console.log("storage.persisted() failed",i)}var r=await iL(e);return t.usage=r.usage,t.quota=r.quota,t}async function _g(n){var e=n!==void 0?n:ph(),t=await sL(e);if(!t.supported||t.persisted)return t.granted=!1,t;try{t.persisted=await e.persist(),t.granted=t.persisted}catch(r){console.log("storage.persist() failed",r),t.granted=!1}return t}function oL(n){return n==null&&(n=typeof navigator!="undefined"?navigator.userAgent:""),n?/Edg\/|OPR\/|Chrome\/|Chromium\//.test(n)?"chromium":/Firefox\/|FxiOS\//.test(n)?"firefox":/Safari\//.test(n)?"safari":"other":"other"}function m1(n){if(typeof n!="number"||!isFinite(n))return"?";for(var e=["bytes","KB","MB","GB","TB"],t=0;n>=1024&&t<e.length-1;)n/=1024,t++;return(t==0?n.toFixed(0):n.toFixed(1))+" "+e[t]}function g1(n){return n.usage==null&&n.quota==null?"":"This site is using "+m1(n.usage)+" of the "+m1(n.quota)+" your browser allows."}var Cg="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 O1(n){switch(n||oL()){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 aL(){return"This browser doesn't support persistent storage, so it may discard your local file edits when it needs disk space. "+Cg}function b1(n,e){var t=g1(n),r;return n.supported?n.persisted?r=(n.granted?"Your browser just granted persistent storage. ":"Your browser is already persisting your local file edits. ")+Cg:r="Your browser has not granted persistent storage, so it may discard your local file edits when it needs disk space.<br><br>"+O1()+"<br><br>"+Cg:r=aL(),t?r+"<br><br>"+t:r}function y1(n){return"Your browser ran out of space for this site, so your last edit may not have been saved.<br><br>"+g1(n)+" Delete unused projects, or use <b>File &gt; Download All Changes as ZIP</b> to back up your work before it is lost."+(n.supported&&!n.persisted?"<br><br>"+O1():"")}var k1=Of(Qf());function Ks(n,e){if(e){var t=Da(e);t!=""&&n.startsWith(t+"/")&&(n=n.substring(t.length+1))}return n}function lL(n,e){var t=Da(e);return t.length>0&&t!="local"?[t+"/"+n,n]:[n]}function cL(n,e,t,r){var i=s=>_y(n,s).map(o=>lL(o,e));return{includes:i(Lc(t,r)),links:i(Dc(t,r))}}async function v1(n,e,t,r,i){for(var s=[],o=new Set([Ks(e,e)]),a=[{path:e,text:t,tool:i(e)}];a.length;){var{path:l,text:c,tool:d}=a.shift(),h=cL(c,l,d,r),u=h.includes.map(D=>({candidates:D,link:!1})).concat(h.links.map(D=>({candidates:D,link:!0})));for(var{candidates:f,link:m}of u)for(var O of f){var S=Ks(O,e);if(o.has(S))break;var x=await n.readFile(O);if(x!=null){o.add(S),s.push({path:O,filename:S,link:m,data:x}),typeof x=="string"&&a.push({path:O,text:x,tool:m?i(O):d});break}}}return s}function w1(n,e){var t={updates:[],buildsteps:[]},r={},i=[],s=O=>{O&&i.indexOf(O)<0&&i.push(O)},o=Ks(n.mainPath,n.mainPath);t.updates.push({path:o,data:n.mainData}),r[o]=n.mainPath;var a=n.getToolForFilename(n.mainPath);s(a);var l=a.startsWith(Line truncated
</form>`,buttons:{cancel:{label:"Cancel",className:"btn-default"},ok:{label:"Save",className:"btn-primary",callback:()=>{n.tabSize=parseInt($("#setting_tabSize").val())||8,n.tabsToSpaces=$("#setting_tabsToSpaces").is(":checked"),n.highlightSpecialChars=$("#setting_highlightSpecialChars").is(":checked"),n.highlightWhitespace=$("#setting_highlightWhitespace").is(":checked"),n.highlightTrailingWhitespace=$("#setting_highlightTrailingWhitespace").is(":checked"),n.closeBrackets=$("#setting_closeBrackets").is(":checked"),n.showLineNumbers=$("#setting_showLineNumbers").is(":checked"),e&&(n.debugHighlightTags=$("#setting_debugHighlightTags").is(":checked")),n.showStatusBar=$("#setting_showStatusBar").is(":checked"),rL(n),iL(n),Cc(n.showStatusBar)}}}})}function ph(){return typeof navigator!="undefined"?navigator.storage:null}function sL(n){var e=n!==void 0?n:ph();return!!(e&&typeof e.persist=="function")}async function oL(n){var e=n!==void 0?n:ph();try{if(e&&typeof e.estimate=="function"){var t=await e.estimate();return{usage:t&&t.usage,quota:t&&t.quota}}}catch(r){console.log("storage.estimate() failed",r)}return{}}async function aL(n){var e=n!==void 0?n:ph(),t={supported:sL(e),persisted:!1};try{e&&typeof e.persisted=="function"&&(t.persisted=await e.persisted())}catch(i){console.log("storage.persisted() failed",i)}var r=await oL(e);return t.usage=r.usage,t.quota=r.quota,t}async function _g(n){var e=n!==void 0?n:ph(),t=await aL(e);if(!t.supported||t.persisted)return t.granted=!1,t;try{t.persisted=await e.persist(),t.granted=t.persisted}catch(r){console.log("storage.persist() failed",r),t.granted=!1}return t}function lL(n){return n==null&&(n=typeof navigator!="undefined"?navigator.userAgent:""),n?/Edg\/|OPR\/|Chrome\/|Chromium\//.test(n)?"chromium":/Firefox\/|FxiOS\//.test(n)?"firefox":/Safari\//.test(n)?"safari":"other":"other"}function O1(n){if(typeof n!="number"||!isFinite(n))return"?";for(var e=["bytes","KB","MB","GB","TB"],t=0;n>=1024&&t<e.length-1;)n/=1024,t++;return(t==0?n.toFixed(0):n.toFixed(1))+" "+e[t]}function b1(n){return n.usage==null&&n.quota==null?"":"This site is using "+O1(n.usage)+" of the "+O1(n.quota)+" your browser allows."}var Cg="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 y1(n){switch(n||lL()){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 cL(){return"This browser doesn't support persistent storage, so it may discard your local file edits when it needs disk space. "+Cg}function S1(n,e){var t=b1(n),r;return n.supported?n.persisted?r=(n.granted?"Your browser just granted persistent storage. ":"Your browser is already persisting your local file edits. ")+Cg:r="Your browser has not granted persistent storage, so it may discard your local file edits when it needs disk space.<br><br>"+y1()+"<br><br>"+Cg:r=cL(),t?r+"<br><br>"+t:r}function v1(n){return"Your browser ran out of space for this site, so your last edit may not have been saved.<br><br>"+b1(n)+" Delete unused projects, or use <b>File &gt; Download All Changes as ZIP</b> to back up your work before it is lost."+(n.supported&&!n.persisted?"<br><br>"+y1():"")}var Q1=Of(Qf());function Ks(n,e){if(e){var t=Da(e);t!=""&&n.startsWith(t+"/")&&(n=n.substring(t.length+1))}return n}function dL(n,e){var t=Da(e);return t.length>0&&t!="local"?[t+"/"+n,n]:[n]}function hL(n,e,t,r){var i=s=>Ry(n,s).map(o=>dL(o,e));return{includes:i(Lc(t,r)),links:i(Dc(t,r))}}async function x1(n,e,t,r,i){for(var s=[],o=new Set([Ks(e,e)]),a=[{path:e,text:t,tool:i(e)}];a.length;){var{path:l,text:c,tool:d}=a.shift(),h=hL(c,l,d,r),u=h.includes.map(D=>({candidates:D,link:!1})).concat(h.links.map(D=>({candidates:D,link:!0})));for(var{candidates:f,link:m}of u)for(var O of f){var S=Ks(O,e);if(o.has(S))break;var x=await n.readFile(O);if(x!=null){o.add(S),s.push({path:O,filename:S,link:m,data:x}),typeof x=="string"&&a.push({path:O,text:x,tool:m?i(O):d});break}}}return s}function P1(n,e){var t={updates:[],buildsteps:[]},r={},i=[],s=O=>{O&&i.indexOf(O)<0&&i.push(O)},o=Ks(n.mainPath,n.mainPath);t.updates.push({path:o,data:n.mainData}),r[o]=n.mainPath;var a=n.getToolForFilename(n.mainPath);s(a);var l=a.startsWith(Line truncated
=====
[Open this project in 8bitworkshop](https://8bitworkshop.com/redir.html?platform=$PLATFORM&githubURL=$GITHUBURL&file=$MAINFILE).
`;function Js(){for(var n={},e=0;e<localStorage.length;e++){var t=localStorage.key(e);if(t.startsWith("__repo__")){var r=JSON.parse(localStorage.getItem(t)),i=t.substring(8);n[i]=r}}return n}function Ql(n){var e=n.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 yh=class{constructor(e,t,r,i){this.githubCons=e,this.githubToken=t,this.store=r,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,r)=>{t()});var e=new firebase.auth.GithubAuthProvider;return e.addScope("repo"),firebase.auth().signInWithPopup(e).then(t=>{this.githubToken=t.credential.accessToken;var r=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 r=Js()[t.repopath],i=t.branch||r&&r.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:r?r.platform_id:null};return o}getGithubHEADTree(e){var t;return this.getGithubSession(e).then(r=>(t=r,t.repo.git.refs.heads(t.branch).fetch())).then(r=>(t.head=r,t.sha=r.object.sha,t.repo.git.trees(t.sha).fetch())).then(r=>{if(t.subtreepath){for(let i of r.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 "+r.sha)}return r}).then(r=>(t.tree=r,t))}bind(e,t){var r="__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(r,JSON.stringify(i))}else localStorage.removeItem(r)}import(e){var t;return this.getGithubSession(e).then(r=>(t=r,t.repo.contents("README.md").read())).catch(r=>(console.log(r),console.log("no README.md found"),t.repo.fetch().then(i=>""))).then(r=>{var i;if(i=/8bitworkshop.com[^)]+file=([^)&]+)/.exec(r),i&&i[1]&&(console.log("main path: '"+i[1]+"'"),t.mainPath=i[1]),i=/8bitworkshop.com[^)]+platform=([A-Za-z0-9._\-]+)/.exec(r),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 r;return this.getGithubHEADTree(e).then(i=>{r=i;let s=[];return r.paths=[],r.tree.tree.forEach(o=>{if(console.log(o.path,o.type,o.size),r.paths.push(o.path),o.type=="blob"&&!this.isFileIgnored(o.path)){var a=r.repo.git.blobs(o.sha).fetch().then(l=>{var c=r.prefix+o.path,d=o.size,h=l.encoding,u=l.content;if(l.encoding=="base64"){var f=yc(atob(u)),m=vc(o.path,f);u=m?f:Sc(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=>r)}importAndPull(e){return this.import(e).then(t=>this.pull(e))}publish(e,t,r,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:r}).then(l=>{s=l;var c=dL;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,r){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(r.map(o=>typeof o.data=="string"?i.repo.git.blobs.create({content:o.data,encoding:"utf-8"}):i.repo.git.blobs.create({content:btoa(Q0(o.data)),encoding:"base64"})))}).then(s=>i.repo.git.trees.create({tree:r.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=_t()+".bin",l=_t()+".wav";o.writeFile(a,wn(),{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,si.saveAs)(h,l),r+="Then connect your audio output to the cassette input, turn up the volume, and play the audio file.",an(r)}})}function pL(n){hr("lib/makewav.js").then(()=>{let e="",t=function(a){e+=a+`
`;function Js(){for(var n={},e=0;e<localStorage.length;e++){var t=localStorage.key(e);if(t.startsWith("__repo__")){var r=JSON.parse(localStorage.getItem(t)),i=t.substring(8);n[i]=r}}return n}function Ql(n){var e=n.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 yh=class{constructor(e,t,r,i){this.githubCons=e,this.githubToken=t,this.store=r,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,r)=>{t()});var e=new firebase.auth.GithubAuthProvider;return e.addScope("repo"),firebase.auth().signInWithPopup(e).then(t=>{this.githubToken=t.credential.accessToken;var r=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 r=Js()[t.repopath],i=t.branch||r&&r.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:r?r.platform_id:null};return o}getGithubHEADTree(e){var t;return this.getGithubSession(e).then(r=>(t=r,t.repo.git.refs.heads(t.branch).fetch())).then(r=>(t.head=r,t.sha=r.object.sha,t.repo.git.trees(t.sha).fetch())).then(r=>{if(t.subtreepath){for(let i of r.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 "+r.sha)}return r}).then(r=>(t.tree=r,t))}bind(e,t){var r="__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(r,JSON.stringify(i))}else localStorage.removeItem(r)}import(e){var t;return this.getGithubSession(e).then(r=>(t=r,t.repo.contents("README.md").read())).catch(r=>(console.log(r),console.log("no README.md found"),t.repo.fetch().then(i=>""))).then(r=>{var i;if(i=/8bitworkshop.com[^)]+file=([^)&]+)/.exec(r),i&&i[1]&&(console.log("main path: '"+i[1]+"'"),t.mainPath=i[1]),i=/8bitworkshop.com[^)]+platform=([A-Za-z0-9._\-]+)/.exec(r),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 r;return this.getGithubHEADTree(e).then(i=>{r=i;let s=[];return r.paths=[],r.tree.tree.forEach(o=>{if(console.log(o.path,o.type,o.size),r.paths.push(o.path),o.type=="blob"&&!this.isFileIgnored(o.path)){var a=r.repo.git.blobs(o.sha).fetch().then(l=>{var c=r.prefix+o.path,d=o.size,h=l.encoding,u=l.content;if(l.encoding=="base64"){var f=yc(atob(u)),m=vc(o.path,f);u=m?f:Sc(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=>r)}importAndPull(e){return this.import(e).then(t=>this.pull(e))}publish(e,t,r,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:r}).then(l=>{s=l;var c=uL;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,r){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(r.map(o=>typeof o.data=="string"?i.repo.git.blobs.create({content:o.data,encoding:"utf-8"}):i.repo.git.blobs.create({content:btoa(Q0(o.data)),encoding:"base64"})))}).then(s=>i.repo.git.trees.create({tree:r.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=_t()+".bin",l=_t()+".wav";o.writeFile(a,wn(),{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,si.saveAs)(h,l),r+="Then connect your audio output to the cassette input, turn up the volume, and play the audio file.",an(r)}})}function gL(n){hr("lib/makewav.js").then(()=>{let e="",t=function(a){e+=a+`
`};var r=Zt(_t());let i=r+".bin",s=r+".wav";window.makewav({noInitialRun:!1,print:t,printErr:t,arguments:["-ts","-f0","-v10",i],preRun:a=>{a.FS.writeFile(i,wn(),{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,si.saveAs)(h,s),e+=`
Connect your audio output to the SuperCharger input, turn up the volume, and play the audio file.`,an(e)}})})}function mL(n){var e=Zt(_t());let t=e+".tap",r=new eo(e),i=new Sh({sine_wave:!0}),s=wn(),o=s[0]+s[1]*256;s=s.slice(2),r.setContent({data:s,startAddress:o,type:eo.FILE_TYPE_NON_RELOCATABLE}),r.generateSound(i);let a=i.getTAPData();if(a){let l=new Blob([a],{type:"application/octet-stream"});(0,si.saveAs)(l,t)}}function Lg(){switch(Nt(Oe)){case"vcs":return pL;case"apple2":return fL;case"c64":return mL}}function Q1(n){if(wn()==null)return Re("Please fix errors before exporting."),!0;var e=Lg();if(e===void 0)return Re("Cassette export is not supported on this platform."),!0;e(n)}function T1(n){if(wn()==null)return Re("Please finish compiling with no errors before downloading ROM."),!0;var e=Zt(_t());if(P.getDownloadFile){var t=P.getDownloadFile(),e=Zt(_t());(0,si.saveAs)(t.blob,e+t.extension)}else if(wn()instanceof Uint8Array){var r=new Blob([wn()],{type:"application/octet-stream"}),i=P.getROMExtension&&P.getROMExtension(wn())||"-"+Nt(Oe)+".bin";(0,si.saveAs)(r,e+i)}else Re(`The "${Oe}" platform doesn't have downloadable ROMs.`)}function A1(n){var e=N.getCurrentText();if(!e)return!1;var t=new Blob([e],{type:"text/plain;charset=utf-8"});(0,si.saveAs)(t,L1(),{autoBom:!1})}async function C1(){let n=(await import("./jszip.min-QUGS7P6D.js")).default;return new n}async function _1(n){var e=await C1();Ci().iterateFiles((t,r)=>{r&&e.file(yt(t),r)}),e.generateAsync({type:"blob"}).then(t=>{(0,si.saveAs)(t,_t()+"-"+Nt(Oe)+".zip")})}function E1(n){let e=P.getDebugSymbolFile&&P.getDebugSymbolFile();if(!e){Re("This project does not have debug information.");return}var t=Zt(_t());(0,si.saveAs)(e.blob,t+e.extension,{autoBom:!1})}async function R1(n){var e=await C1(),t=await is().keys();Je(!0);try{var r=0;await Promise.all(t.map(s=>is().getItem(s).then(o=>{Dr(r++/(t.length+1)),o&&e.file(s,o)})));var i=await e.generateAsync({type:"blob"});(0,si.saveAs)(i,Nt(Oe)+"-all.zip")}finally{Je(!1)}}var Mg=!1;function M1(){Mg||hr("lib/gif.js").then(()=>{var n=$("#emulator").find("canvas")[0];if(!n){Re("Could not find canvas element to record video!");return}var e=0;n.style&&n.style.transform&&(n.style.transform.indexOf("rotate(-90deg)")>=0?e=-1:n.style.transform.indexOf("rotate(90deg)")>=0&&(e=1));var t=new GIF({workerScript:"lib/gif.worker.js",workers:4,quality:10,rotate:e}),r=$("#videoPreviewImage");t.on("progress",l=>{Dr(l)}),t.on("finished",l=>{r.attr("src",URL.createObjectURL(l)),Je(!1),P.resume(),$("#videoPreviewModal").modal("show")});var i=20,s=300,o=0;console.log("Recording video",n),$("#emulator").css("backgroundColor","#cc3333");var a=()=>{o++>s?(console.log("Rendering video"),$("#emulator").css("backgroundColor","inherit"),Je(!0),P.pause(),t.render(),Mg=!1):(t.addFrame(n,{delay:i,copy:!0}),setTimeout(a,i),Mg=!0)};a()})}var Dg;async function to(){if(!Dg){await hr("lib/octokat.js"),await hr("https://www.gstatic.com/firebasejs/8.8.1/firebase-app.js"),await hr("https://www.gstatic.com/firebasejs/8.8.1/firebase-auth.js"),await hr("https://8bitworkshop.com/config.js");var n=E0("__github_key");Dg=new yh(Octokat,n,is(),Ci()),console.log("loaded github service")}return Dg}function Al(){var n=(Et||"").split("/");return n.length!=2?(Re("You are not in a GitHub repository. Choose one from the pulldown, or Import or Publish one."),null):"https://github.com/"+n[0]+"/"+n[1]}async function Cl(n,e){var t,r=Ql(n);if(!r){Re("Could not parse GitHub URL.");return}var i=Js()[r.repopath];if(!(i&&!confirm("You've already imported "+r.repopath+" -- do you want to replace all local files?"))){Je(!0);var s=bh(r.repopath);Dr(.25);var o=await to();return o.import(n).then(a=>(t=a,Dr(.75),o.pull(n,s))).then(a=>{Je(!1),no(e,{repo:r.repopath})}).catch(a=>{Je(!1),console.log(a),Re("Could not import "+n+". "+a)})}}async function D1(n){var e=await to();e.login().then(()=>{an("You are signed in to GitHub.")}).catch(t=>{Re("Could not sign in."+t)})}async function Z1(n){var e=await to();e.logout().then(()=>{an("You are logged out of GitHub.")})}function I1(n){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",r=>{r.key==="Enter"&&(r.preventDefault(),t.trigger("click"))}),t.off("click").on("click",()=>{var r=$("#importGithubURL").val()+"";e.modal("hide"),Cl(r,!1)})}function X1(n){if(!(Et&&!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(yt(Ci().mainPath))),e.modal("show"),t.off("click").on("click",async()=>{var r=$("#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:r,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:r,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:r,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:r,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:r,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:r,file:e,line:l})}return i}var Y1=()=>null;function j1(n){Y1=n}function sa(){return Y1()}var vh=class{constructor(){this.id="project";this.kind="project";this.rebuilt=!1;this.index=new ia([])}async ready(){await this.index.init(),this.rebuilt||(this.rebuilt=!0,await this.rebuild())}query(e,t){let r=this.index.query(e,t),i=this.fulltextQuery(e,t),s=r.concat(i);return s.sort((o,a)=>a.score-o.score),s.slice(0,t)}fulltextQuery(e,t){if(e.length<2)return[];let r=e.toLowerCase(),i=[],s=Math.max(t,10),o=sa();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(r);if(m>=0){let O=u.trim();if(!O)continue;if(i.push({record:{id:`text:${a}:${h+1}`,name:O.length>80?O.slice(0,80)+"\u2026":O,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 r=this.extractSymbolsFromFile(e,t,"project");this.index.pushRecords(r)}extractSymbolsFromFile(e,t,r){if(typeof t!="string")return[];let i=this.detectEditorStyle(e);return Ig(t,e,i,r)}detectEditorStyle(e){var r;switch((r=e.split(".").pop())==null?void 0:r.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=sa();if(!e)return;let t=[];e.iterateFiles((r,i)=>{if(typeof i!="string")return;let s=this.detectEditorStyle(r),o=Ig(i,r,s,"project");t.push(...o)}),this.index.pushRecords(t)}};var SL=new Set(["h","hh","hpp","inc","asm","a65","s","mac","defs","def","equ","i","m","c","bas","txt"]),vL=20,wh=class{constructor(){this.id="toolchain";this.kind="toolchain";this.fsName=null;this.files=[];this.loaded=new Map;this.readyPromise=null;this.batchSize=vL}async ready(){return this.readyPromise||(this.readyPromise=this.load()),this.readyPromise}async load(){let e=sa();if(!e)return;let t;try{t=e.getToolForFilename?e.getToolForFilename(e.mainPath):""}catch(o){t=""}let r=Ic(t,e.platform_id),i=Zc(t,e.platform_id);if(!r||!i.length)return;this.fsName=r;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=sa();if(!t||!this.fsName||!t.queryWorker)return[];try{let r={preload_fs:this.fsName,listshared:e,updates:[],buildsteps:[]},i=await t.queryWorker(r),s=i&&i.output;return Array.isArray(s)?s:[]}catch(r){return console.debug("Toolchain list error:",r),[]}}async readFile(e){let t=sa();if(!t||!this.fsName||!t.queryWorker)return null;try{let r={preload_fs:this.fsName,readshared:e,updates:[],buildsteps:[]},i=await t.queryWorker(r),s=i&&i.output;return s instanceof Uint8Array&&s.length>0?new TextDecoder().decode(s):null}catch(r){return console.debug("Toolchain read error:",r),null}}isSearchable(e){let t=e.split("/").pop()||e,r=t.lastIndexOf(".");return r<0?!0:SL.has(t.substring(r+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 r=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(r);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 U1=()=>[];function q1(n){U1=n}var wL=/<h([1-3])\b[^>]*>([\s\S]*?)<\/h\1>/gi;function xL(n){return n.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 _l(n){return xL(n.replace(/<[^>]+>/g," ")).replace(/\s+/g," ").trim()}function Xg(n,e=180){let t=n.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 PL(n){let e=[],t="#help/"+n.id,r=n.title||n.id,i=n.html||"",s=[],o=new RegExp(wL.source,"gi"),a;for(;a=o.exec(i);)s.push({name:_l(a[2]),start:a.index,end:o.lastIndex});let l=(u,f,m)=>{if(!f)return;let O=Xg(m),S=O&&m.startsWith(O)?m.slice(O.length).trim():m;e.push({id:`${n.id}:${u}`,name:f,kind:"doc",brief:O,detail:S||void 0,source:"docs",file:r,url:t})},c=s.length?s[0].start:i.length,d=_l(i.slice(0,c)),h=s.length&&s[0].start===0?s[0].name||n.title:n.title||n.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,_l(i.slice(s[u].end,f)))}return e}var xh=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=U1()||[];if(e.length===0)return;let t=[];for(let i of e)t.push(...PL(i));if(t.length===0)return;let r=new ia(t);await r.init(),this.index=r}async query(e,t){return await this.ready(),this.index?this.index.query(e,t):[]}};var kL=50,zg=class n{constructor(){this.sources=new Map;this.projectSource=new vh,this.toolchainSource=new wh,this.docsSource=new xh,this.sources.set("project",this.projectSource),this.sources.set("toolchain",this.toolchainSource),this.sources.set("docs",this.docsSource)}static getInstance(){return n.instance||(n.instance=new n),n.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=kL){let{needle:r,filter:i}=this.parseQuery(e);if(!r)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(r,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)}},G1=zg.getInstance();var H1=typeof String.prototype.normalize=="function"?n=>n.normalize("NFKD"):n=>n,os=class{constructor(e,t,r=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(r,i),this.bufferStart=r,this.normalize=s?a=>s(H1(a)):H1,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 Ir(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=Hc(e),r=this.bufferStart+this.bufferPos;this.bufferPos+=Yi(e);let i=this.normalize(t);if(i.length)for(let s=0,o=r,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,r,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:r&&s}:this.matches.push({from:t,index:1,precise:r})),o&&this.test&&!this.test(o.from,o.to,this.buffer,this.bufferStart)&&(o=null) Line truncated
`:r=="r"?"\r":r=="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 Bg(this):new Ng(this)}getCursor(e,t=0,r){let i=e.doc?e:Me.create({doc:e});return r==null&&(r=i.doc.length),this.regexp?aa(this,i,t,r):oa(this,i,t,r)}},_h=class{constructor(e){this.spec=e}};function DL(n,e,t){return(r,i,s,o)=>{if(t&&!t(r,i,s,o))return!1;let a=r>=o&&i<=o+s.length?s.slice(r-o,i-o):e.doc.sliceString(r,i);return n(a,e,r,i)}}function oa(n,e,t,r){let i;return n.wholeWord&&(i=ZL(e.doc,e.charCategorizer(e.selection.main.head))),n.test&&(i=DL(n.test,e,i)),new os(e.doc,n.unquoted,t,r,n.caseSensitive?void 0:s=>s.toLowerCase(),i)}function ZL(n,e){return(t,r,i,s)=>((s>t||s+i.length<r)&&(s=Math.max(0,t-2),i=n.sliceString(s,Math.min(n.length,r+2))),(e(Eh(i,t-s))!=et.Word||e(Rh(i,t-s))!=et.Word)&&(e(Rh(i,r-s))!=et.Word||e(Eh(i,r-s))!=et.Word))}var Ng=class extends _h{constructor(e){super(e)}nextMatch(e,t,r){let i=oa(this.spec,e,r,e.doc.length).nextOverlapping();if(i.done){let s=Math.min(e.doc.length,t+this.spec.unquoted.length);i=oa(this.spec,e,0,s).nextOverlapping()}return i.done||i.value.from==t&&i.value.to==r?null:i.value}prevMatchInRange(e,t,r){for(let i=r;;){let s=Math.max(t,i-1e4-this.spec.unquoted.length),o=oa(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,r){let i=this.prevMatchInRange(e,0,t);return i||(i=this.prevMatchInRange(e,Math.max(0,r-this.spec.unquoted.length),e.doc.length)),i&&(i.from!=t||i.to!=r)?i:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let r=oa(this.spec,e,0,e.doc.length),i=[];for(;!r.next().done;){if(i.length>=t)return null;i.push(r.value)}return i}highlight(e,t,r,i){let s=oa(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(r+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)i(s.value.from,s.value.to)}};function IL(n,e,t){return(r,i,s)=>(!t||t(r,i,s))&&n(s[0],e,r,i)}function aa(n,e,t,r){let i;return n.wholeWord&&(i=XL(e.charCategorizer(e.selection.main.head))),n.test&&(i=IL(n.test,e,i)),new $h(e.doc,n.search,{ignoreCase:!n.caseSensitive,test:i},t,r)}function Eh(n,e){return n.slice(Pt(n,e,!1),e)}function Rh(n,e){return n.slice(e,Pt(n,e))}function XL(n){return(e,t,r)=>!r[0].length||(n(Eh(r.input,r.index))!=et.Word||n(Rh(r.input,r.index))!=et.Word)&&(n(Rh(r.input,r.index+r[0].length))!=et.Word||n(Eh(r.input,r.index+r[0].length))!=et.Word)}var Bg=class extends _h{nextMatch(e,t,r){let i=aa(this.spec,e,r,e.doc.length).next();return i.done&&(i=aa(this.spec,e,0,t).next()),i.done?null:i.value}prevMatchInRange(e,t,r){for(let i=1;;i++){let s=Math.max(t,r-i*1e4),o=aa(this.spec,e,s,r),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,r){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,r,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,r)=>{if(r=="&")return e.match[0];if(r=="$")return"$";for(let i=r.length;i>0;i--){let s=+r.slice(0,i);if(s>0&&s<e.match.length)return e.match[s]+r.slice(i)}return t})}matchAll(e,t){let r=aa(this.spec,e,0,e.doc.length),i=[];for(;!r.next().done;){if(i.length>=t)return null;i.push(r.value)}return i}highlight(e,t,r,i){let s=aa(this.spec,e,Math.max(0,t-250),Math.min(r+250,e.doc.length));for(;!s.next().done;)i(s.value.from,s.value.to)}},Rl=ye.define(),Gg=ye.define(),ss=Xe.define({create(n){return new El(Vg(n).create(),null)},update(n,e){for(let t of e.effects)t.is(Rl)?n=new El(t.value.create(),n.panel):t.is(Gg)&&(n=new El(n.query,t.value?Hg:null));return n},provide:n=>hl.from(n,e=>e.panel)});var El=class{constructor(e,t){this.query=e,this.panel=t}},zL=J.mark({class:"cm-searchMatch"}),WL=J.mark({class:"cm-searchMatch cm-searchMatch-selected"}),NL=it.fromClass(class{constructor(n){this.view=n,this.decorations=this.highlight(n.state.field(ss))}update(n){let e=n.state.field(ss);(e!=n.startState.field(ss)||n.docChanged||n.selectionSet||n.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:n,panel:e}){if(!e||!n.spec.valid)return J.none;let{view:t}=this,r=new Zr;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;n.highlight(t.state,a,l,(c,d)=>{let h=t.state.selection.ranges.some(u=>u.from==c&&u.to==d);r.add(c,d,h?WL:zL)})}return r.finish()}},{decorations:n=>n.decorations});function Ml(n){return e=>{let t=e.state.field(ss,!1);return t&&t.query.spec.valid?n(e,t):Dh(e)}}var la=Ml((n,{query:e})=>{let{to:t}=n.state.selection.main,r=e.nextMatch(n.state,t,t);if(!r)return!1;let i=z.single(r.from,r.to),s=n.state.facet(ro);return n.dispatch({selection:i,effects:[Kg(n,r),s.scrollToMatch(i.main,n)],userEvent:"select.search"}),rP(n),!0}),Mh=Ml((n,{query:e})=>{let{state:t}=n,{from:r}=t.selection.main,i=e.prevMatch(t,r,r);if(!i) Line truncated
`+t.scrub(),s=this.advance(i);return s>-1&&s<i.length?this.complete(e,r,s):!1}finish(e,t){return(this.stage==2||this.stage==3)&&Zl(t.content,this.pos)==t.content.length?this.complete(e,t,t.content.length):!1}complete(e,t,r){return e.addLeafElement(t,Ne(ee.LinkReference,this.start,this.start+r,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(gk(e,this.pos,this.start,!0)))return-1;if(e.charCodeAt(this.pos)!=58)return this.stage=-1;this.elts.push(Ne(ee.LinkMark,this.pos+this.start,this.pos+this.start+1)),this.pos++}else if(this.stage==1){if(!this.nextStage(pk(e,Zl(e,this.pos),this.start)))return-1}else if(this.stage==2){let t=Zl(e,this.pos),r=0;if(t>this.pos){let i=mk(e,t,this.start);if(i){let s=MO(e,i.to-this.start);s>0&&(this.nextStage(i),r=s)}}return r||(r=MO(e,this.pos)),r>0&&r<e.length?r:-1}else return MO(e,this.pos)}}};function MO(n,e){for(;e<n.length;e++){let t=n.charCodeAt(e);if(t==10)break;if(!wr(t))return-1}return e}var WO=class{nextLine(e,t,r){let i=t.depth<e.stack.length?-1:sk(t),s=t.next;if(i<0)return!1;let o=Ne(ee.HeaderMark,e.lineStart+t.pos,e.lineStart+i);return e.nextLine(),e.addLeafElement(r,Ne(s==61?ee.SetextHeading1:ee.SetextHeading2,r.start,e.prevLineEnd(),[...e.parser.parseInline(r.content,r.start),o])),!0}finish(){return!1}},ck={LinkReference(n,e){return e.content.charCodeAt(0)==91?new zO(e):null},SetextHeading(){return new WO}},lZ=[(n,e)=>ik(e)>=0,(n,e)=>tk(e)>=0,(n,e)=>nk(e)>=0,(n,e)=>UO(e,n,!0)>=0,(n,e)=>qO(e,n,!0)>=0,(n,e)=>jO(e,n,!0)>=0,(n,e)=>lk(e,n,!0)>=0],cZ={text:"",end:0},NO=class{constructor(e,t,r,i){this.parser=e,this.input=t,this.ranges=i,this.line=new ZO,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=Nh.create(ee.Document,0,this.lineStart,0,0),this.stack=[this.block],this.fragments=r.length?new FO(r,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 r=0;;){let i=e.depth<this.stack.length?this.stack[this.stack.length-1]:null;for(;r<e.markers.length&&(!i||e.markers[r].from<i.end);){let s=e.markers[r++];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 r of this.parser.blockParsers)if(r){let i=r(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 DO(this.lineStart+e.pos,e.text.slice(e.pos));for(let r of this.parser.leafBlockParsers)if(r){let i=r(this,t);i&&t.parsers.push(i)}e:for(;this.nextLine()&&e.pos!=e.text.length;){if(e.indent<e.baseIndent+4){for(let r of this.parser.endLeafBlock)if(r(this,e,t))break e}for(let r of t.parsers)if(r.nextLine(this,e,t))return null;t.content+=`
`+e.scrub();for(let r of e.markers)t.marks.push(r)}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=Ok(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=cZ;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 r=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-r)+o,r=t.end-t.text.length}}return t}readLine(){let{line:e}=this,{text:t,end:r}=this.scanLine(this.absoluteLineStart);for(this.absoluteLineEnd=r,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 "+ee[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),r;if(this.input.lineChunks)r=t==`
Connect your audio output to the SuperCharger input, turn up the volume, and play the audio file.`,an(e)}})})}function OL(n){var e=Zt(_t());let t=e+".tap",r=new eo(e),i=new Sh({sine_wave:!0}),s=wn(),o=s[0]+s[1]*256;s=s.slice(2),r.setContent({data:s,startAddress:o,type:eo.FILE_TYPE_NON_RELOCATABLE}),r.generateSound(i);let a=i.getTAPData();if(a){let l=new Blob([a],{type:"application/octet-stream"});(0,si.saveAs)(l,t)}}function Lg(){switch(Nt(Oe)){case"vcs":return gL;case"apple2":return mL;case"c64":return OL}}function A1(n){if(wn()==null)return Re("Please fix errors before exporting."),!0;var e=Lg();if(e===void 0)return Re("Cassette export is not supported on this platform."),!0;e(n)}function C1(n){if(wn()==null)return Re("Please finish compiling with no errors before downloading ROM."),!0;var e=Zt(_t());if(P.getDownloadFile){var t=P.getDownloadFile(),e=Zt(_t());(0,si.saveAs)(t.blob,e+t.extension)}else if(wn()instanceof Uint8Array){var r=new Blob([wn()],{type:"application/octet-stream"}),i=P.getROMExtension&&P.getROMExtension(wn())||"-"+Nt(Oe)+".bin";(0,si.saveAs)(r,e+i)}else Re(`The "${Oe}" platform doesn't have downloadable ROMs.`)}function _1(n){var e=N.getCurrentText();if(!e)return!1;var t=new Blob([e],{type:"text/plain;charset=utf-8"});(0,si.saveAs)(t,Z1(),{autoBom:!1})}async function E1(){let n=(await import("./jszip.min-QUGS7P6D.js")).default;return new n}async function R1(n){var e=await E1();Ci().iterateFiles((t,r)=>{r&&e.file(yt(t),r)}),e.generateAsync({type:"blob"}).then(t=>{(0,si.saveAs)(t,_t()+"-"+Nt(Oe)+".zip")})}function M1(n){let e=P.getDebugSymbolFile&&P.getDebugSymbolFile();if(!e){Re("This project does not have debug information.");return}var t=Zt(_t());(0,si.saveAs)(e.blob,t+e.extension,{autoBom:!1})}async function L1(n){var e=await E1(),t=await is().keys();Je(!0);try{var r=0;await Promise.all(t.map(s=>is().getItem(s).then(o=>{Dr(r++/(t.length+1)),o&&e.file(s,o)})));var i=await e.generateAsync({type:"blob"});(0,si.saveAs)(i,Nt(Oe)+"-all.zip")}finally{Je(!1)}}var Mg=!1;function D1(){Mg||hr("lib/gif.js").then(()=>{var n=$("#emulator").find("canvas")[0];if(!n){Re("Could not find canvas element to record video!");return}var e=0;n.style&&n.style.transform&&(n.style.transform.indexOf("rotate(-90deg)")>=0?e=-1:n.style.transform.indexOf("rotate(90deg)")>=0&&(e=1));var t=new GIF({workerScript:"lib/gif.worker.js",workers:4,quality:10,rotate:e}),r=$("#videoPreviewImage");t.on("progress",l=>{Dr(l)}),t.on("finished",l=>{r.attr("src",URL.createObjectURL(l)),Je(!1),P.resume(),$("#videoPreviewModal").modal("show")});var i=20,s=300,o=0;console.log("Recording video",n),$("#emulator").css("backgroundColor","#cc3333");var a=()=>{o++>s?(console.log("Rendering video"),$("#emulator").css("backgroundColor","inherit"),Je(!0),P.pause(),t.render(),Mg=!1):(t.addFrame(n,{delay:i,copy:!0}),setTimeout(a,i),Mg=!0)};a()})}var Dg;async function to(){if(!Dg){await hr("lib/octokat.js"),await hr("https://www.gstatic.com/firebasejs/8.8.1/firebase-app.js"),await hr("https://www.gstatic.com/firebasejs/8.8.1/firebase-auth.js"),await hr("https://8bitworkshop.com/config.js");var n=E0("__github_key");Dg=new yh(Octokat,n,is(),Ci()),console.log("loaded github service")}return Dg}function Al(){var n=(Et||"").split("/");return n.length!=2?(Re("You are not in a GitHub repository. Choose one from the pulldown, or Import or Publish one."),null):"https://github.com/"+n[0]+"/"+n[1]}async function Cl(n,e){var t,r=Ql(n);if(!r){Re("Could not parse GitHub URL.");return}var i=Js()[r.repopath];if(!(i&&!confirm("You've already imported "+r.repopath+" -- do you want to replace all local files?"))){Je(!0);var s=bh(r.repopath);Dr(.25);var o=await to();return o.import(n).then(a=>(t=a,Dr(.75),o.pull(n,s))).then(a=>{Je(!1),no(e,{repo:r.repopath})}).catch(a=>{Je(!1),console.log(a),Re("Could not import "+n+". "+a)})}}async function I1(n){var e=await to();e.login().then(()=>{an("You are signed in to GitHub.")}).catch(t=>{Re("Could not sign in."+t)})}async function X1(n){var e=await to();e.logout().then(()=>{an("You are logged out of GitHub.")})}function z1(n){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",r=>{r.key==="Enter"&&(r.preventDefault(),t.trigger("click"))}),t.off("click").on("click",()=>{var r=$("#importGithubURL").val()+"";e.modal("hide"),Cl(r,!1)})}function W1(n){if(!(Et&&!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(yt(Ci().mainPath))),e.modal("show"),t.off("click").on("click",async()=>{var r=$("#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:r,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:r,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:r,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:r,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:r,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:r,file:e,line:l})}return i}var U1=()=>null;function q1(n){U1=n}function sa(){return U1()}var vh=class{constructor(){this.id="project";this.kind="project";this.rebuilt=!1;this.index=new ia([])}async ready(){await this.index.init(),this.rebuilt||(this.rebuilt=!0,await this.rebuild())}query(e,t){let r=this.index.query(e,t),i=this.fulltextQuery(e,t),s=r.concat(i);return s.sort((o,a)=>a.score-o.score),s.slice(0,t)}fulltextQuery(e,t){if(e.length<2)return[];let r=e.toLowerCase(),i=[],s=Math.max(t,10),o=sa();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(r);if(m>=0){let O=u.trim();if(!O)continue;if(i.push({record:{id:`text:${a}:${h+1}`,name:O.length>80?O.slice(0,80)+"\u2026":O,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 r=this.extractSymbolsFromFile(e,t,"project");this.index.pushRecords(r)}extractSymbolsFromFile(e,t,r){if(typeof t!="string")return[];let i=this.detectEditorStyle(e);return Ig(t,e,i,r)}detectEditorStyle(e){var r;switch((r=e.split(".").pop())==null?void 0:r.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=sa();if(!e)return;let t=[];e.iterateFiles((r,i)=>{if(typeof i!="string")return;let s=this.detectEditorStyle(r),o=Ig(i,r,s,"project");t.push(...o)}),this.index.pushRecords(t)}};var wL=new Set(["h","hh","hpp","inc","asm","a65","s","mac","defs","def","equ","i","m","c","bas","txt"]),xL=20,wh=class{constructor(){this.id="toolchain";this.kind="toolchain";this.fsName=null;this.files=[];this.loaded=new Map;this.readyPromise=null;this.batchSize=xL}async ready(){return this.readyPromise||(this.readyPromise=this.load()),this.readyPromise}async load(){let e=sa();if(!e)return;let t;try{t=e.getToolForFilename?e.getToolForFilename(e.mainPath):""}catch(o){t=""}let r=Ic(t,e.platform_id),i=Zc(t,e.platform_id);if(!r||!i.length)return;this.fsName=r;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=sa();if(!t||!this.fsName||!t.queryWorker)return[];try{let r={preload_fs:this.fsName,listshared:e,updates:[],buildsteps:[]},i=await t.queryWorker(r),s=i&&i.output;return Array.isArray(s)?s:[]}catch(r){return console.debug("Toolchain list error:",r),[]}}async readFile(e){let t=sa();if(!t||!this.fsName||!t.queryWorker)return null;try{let r={preload_fs:this.fsName,readshared:e,updates:[],buildsteps:[]},i=await t.queryWorker(r),s=i&&i.output;return s instanceof Uint8Array&&s.length>0?new TextDecoder().decode(s):null}catch(r){return console.debug("Toolchain read error:",r),null}}isSearchable(e){let t=e.split("/").pop()||e,r=t.lastIndexOf(".");return r<0?!0:wL.has(t.substring(r+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 r=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(r);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 G1=()=>[];function H1(n){G1=n}var PL=/<h([1-3])\b[^>]*>([\s\S]*?)<\/h\1>/gi;function kL(n){return n.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 _l(n){return kL(n.replace(/<[^>]+>/g," ")).replace(/\s+/g," ").trim()}function Xg(n,e=180){let t=n.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 $L(n){let e=[],t="#help/"+n.id,r=n.title||n.id,i=n.html||"",s=[],o=new RegExp(PL.source,"gi"),a;for(;a=o.exec(i);)s.push({name:_l(a[2]),start:a.index,end:o.lastIndex});let l=(u,f,m)=>{if(!f)return;let O=Xg(m),S=O&&m.startsWith(O)?m.slice(O.length).trim():m;e.push({id:`${n.id}:${u}`,name:f,kind:"doc",brief:O,detail:S||void 0,source:"docs",file:r,url:t})},c=s.length?s[0].start:i.length,d=_l(i.slice(0,c)),h=s.length&&s[0].start===0?s[0].name||n.title:n.title||n.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,_l(i.slice(s[u].end,f)))}return e}var xh=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=G1()||[];if(e.length===0)return;let t=[];for(let i of e)t.push(...$L(i));if(t.length===0)return;let r=new ia(t);await r.init(),this.index=r}async query(e,t){return await this.ready(),this.index?this.index.query(e,t):[]}};var QL=50,zg=class n{constructor(){this.sources=new Map;this.projectSource=new vh,this.toolchainSource=new wh,this.docsSource=new xh,this.sources.set("project",this.projectSource),this.sources.set("toolchain",this.toolchainSource),this.sources.set("docs",this.docsSource)}static getInstance(){return n.instance||(n.instance=new n),n.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=QL){let{needle:r,filter:i}=this.parseQuery(e);if(!r)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(r,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)}},K1=zg.getInstance();var J1=typeof String.prototype.normalize=="function"?n=>n.normalize("NFKD"):n=>n,os=class{constructor(e,t,r=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(r,i),this.bufferStart=r,this.normalize=s?a=>s(J1(a)):J1,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 Ir(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=Hc(e),r=this.bufferStart+this.bufferPos;this.bufferPos+=Yi(e);let i=this.normalize(t);if(i.length)for(let s=0,o=r,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,r,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:r&&s}:this.matches.push({from:t,index:1,precise:r})),o&&this.test&&!this.test(o.from,o.to,this.buffer,this.bufferStart)&&(o=null) Line truncated
`:r=="r"?"\r":r=="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 Bg(this):new Ng(this)}getCursor(e,t=0,r){let i=e.doc?e:Me.create({doc:e});return r==null&&(r=i.doc.length),this.regexp?aa(this,i,t,r):oa(this,i,t,r)}},_h=class{constructor(e){this.spec=e}};function IL(n,e,t){return(r,i,s,o)=>{if(t&&!t(r,i,s,o))return!1;let a=r>=o&&i<=o+s.length?s.slice(r-o,i-o):e.doc.sliceString(r,i);return n(a,e,r,i)}}function oa(n,e,t,r){let i;return n.wholeWord&&(i=XL(e.doc,e.charCategorizer(e.selection.main.head))),n.test&&(i=IL(n.test,e,i)),new os(e.doc,n.unquoted,t,r,n.caseSensitive?void 0:s=>s.toLowerCase(),i)}function XL(n,e){return(t,r,i,s)=>((s>t||s+i.length<r)&&(s=Math.max(0,t-2),i=n.sliceString(s,Math.min(n.length,r+2))),(e(Eh(i,t-s))!=et.Word||e(Rh(i,t-s))!=et.Word)&&(e(Rh(i,r-s))!=et.Word||e(Eh(i,r-s))!=et.Word))}var Ng=class extends _h{constructor(e){super(e)}nextMatch(e,t,r){let i=oa(this.spec,e,r,e.doc.length).nextOverlapping();if(i.done){let s=Math.min(e.doc.length,t+this.spec.unquoted.length);i=oa(this.spec,e,0,s).nextOverlapping()}return i.done||i.value.from==t&&i.value.to==r?null:i.value}prevMatchInRange(e,t,r){for(let i=r;;){let s=Math.max(t,i-1e4-this.spec.unquoted.length),o=oa(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,r){let i=this.prevMatchInRange(e,0,t);return i||(i=this.prevMatchInRange(e,Math.max(0,r-this.spec.unquoted.length),e.doc.length)),i&&(i.from!=t||i.to!=r)?i:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let r=oa(this.spec,e,0,e.doc.length),i=[];for(;!r.next().done;){if(i.length>=t)return null;i.push(r.value)}return i}highlight(e,t,r,i){let s=oa(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(r+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)i(s.value.from,s.value.to)}};function zL(n,e,t){return(r,i,s)=>(!t||t(r,i,s))&&n(s[0],e,r,i)}function aa(n,e,t,r){let i;return n.wholeWord&&(i=WL(e.charCategorizer(e.selection.main.head))),n.test&&(i=zL(n.test,e,i)),new $h(e.doc,n.search,{ignoreCase:!n.caseSensitive,test:i},t,r)}function Eh(n,e){return n.slice(Pt(n,e,!1),e)}function Rh(n,e){return n.slice(e,Pt(n,e))}function WL(n){return(e,t,r)=>!r[0].length||(n(Eh(r.input,r.index))!=et.Word||n(Rh(r.input,r.index))!=et.Word)&&(n(Rh(r.input,r.index+r[0].length))!=et.Word||n(Eh(r.input,r.index+r[0].length))!=et.Word)}var Bg=class extends _h{nextMatch(e,t,r){let i=aa(this.spec,e,r,e.doc.length).next();return i.done&&(i=aa(this.spec,e,0,t).next()),i.done?null:i.value}prevMatchInRange(e,t,r){for(let i=1;;i++){let s=Math.max(t,r-i*1e4),o=aa(this.spec,e,s,r),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,r){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,r,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,r)=>{if(r=="&")return e.match[0];if(r=="$")return"$";for(let i=r.length;i>0;i--){let s=+r.slice(0,i);if(s>0&&s<e.match.length)return e.match[s]+r.slice(i)}return t})}matchAll(e,t){let r=aa(this.spec,e,0,e.doc.length),i=[];for(;!r.next().done;){if(i.length>=t)return null;i.push(r.value)}return i}highlight(e,t,r,i){let s=aa(this.spec,e,Math.max(0,t-250),Math.min(r+250,e.doc.length));for(;!s.next().done;)i(s.value.from,s.value.to)}},Rl=ye.define(),Gg=ye.define(),ss=Xe.define({create(n){return new El(Vg(n).create(),null)},update(n,e){for(let t of e.effects)t.is(Rl)?n=new El(t.value.create(),n.panel):t.is(Gg)&&(n=new El(n.query,t.value?Hg:null));return n},provide:n=>hl.from(n,e=>e.panel)});var El=class{constructor(e,t){this.query=e,this.panel=t}},NL=J.mark({class:"cm-searchMatch"}),BL=J.mark({class:"cm-searchMatch cm-searchMatch-selected"}),VL=it.fromClass(class{constructor(n){this.view=n,this.decorations=this.highlight(n.state.field(ss))}update(n){let e=n.state.field(ss);(e!=n.startState.field(ss)||n.docChanged||n.selectionSet||n.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:n,panel:e}){if(!e||!n.spec.valid)return J.none;let{view:t}=this,r=new Zr;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;n.highlight(t.state,a,l,(c,d)=>{let h=t.state.selection.ranges.some(u=>u.from==c&&u.to==d);r.add(c,d,h?BL:NL)})}return r.finish()}},{decorations:n=>n.decorations});function Ml(n){return e=>{let t=e.state.field(ss,!1);return t&&t.query.spec.valid?n(e,t):Dh(e)}}var la=Ml((n,{query:e})=>{let{to:t}=n.state.selection.main,r=e.nextMatch(n.state,t,t);if(!r)return!1;let i=z.single(r.from,r.to),s=n.state.facet(ro);return n.dispatch({selection:i,effects:[Kg(n,r),s.scrollToMatch(i.main,n)],userEvent:"select.search"}),sP(n),!0}),Mh=Ml((n,{query:e})=>{let{state:t}=n,{from:r}=t.selection.main,i=e.prevMatch(t,r,r);if(!i) Line truncated
`+t.scrub(),s=this.advance(i);return s>-1&&s<i.length?this.complete(e,r,s):!1}finish(e,t){return(this.stage==2||this.stage==3)&&Zl(t.content,this.pos)==t.content.length?this.complete(e,t,t.content.length):!1}complete(e,t,r){return e.addLeafElement(t,Ne(ee.LinkReference,this.start,this.start+r,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(bk(e,this.pos,this.start,!0)))return-1;if(e.charCodeAt(this.pos)!=58)return this.stage=-1;this.elts.push(Ne(ee.LinkMark,this.pos+this.start,this.pos+this.start+1)),this.pos++}else if(this.stage==1){if(!this.nextStage(gk(e,Zl(e,this.pos),this.start)))return-1}else if(this.stage==2){let t=Zl(e,this.pos),r=0;if(t>this.pos){let i=Ok(e,t,this.start);if(i){let s=MO(e,i.to-this.start);s>0&&(this.nextStage(i),r=s)}}return r||(r=MO(e,this.pos)),r>0&&r<e.length?r:-1}else return MO(e,this.pos)}}};function MO(n,e){for(;e<n.length;e++){let t=n.charCodeAt(e);if(t==10)break;if(!wr(t))return-1}return e}var WO=class{nextLine(e,t,r){let i=t.depth<e.stack.length?-1:ak(t),s=t.next;if(i<0)return!1;let o=Ne(ee.HeaderMark,e.lineStart+t.pos,e.lineStart+i);return e.nextLine(),e.addLeafElement(r,Ne(s==61?ee.SetextHeading1:ee.SetextHeading2,r.start,e.prevLineEnd(),[...e.parser.parseInline(r.content,r.start),o])),!0}finish(){return!1}},hk={LinkReference(n,e){return e.content.charCodeAt(0)==91?new zO(e):null},SetextHeading(){return new WO}},dZ=[(n,e)=>ok(e)>=0,(n,e)=>rk(e)>=0,(n,e)=>ik(e)>=0,(n,e)=>UO(e,n,!0)>=0,(n,e)=>qO(e,n,!0)>=0,(n,e)=>jO(e,n,!0)>=0,(n,e)=>dk(e,n,!0)>=0],hZ={text:"",end:0},NO=class{constructor(e,t,r,i){this.parser=e,this.input=t,this.ranges=i,this.line=new ZO,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=Nh.create(ee.Document,0,this.lineStart,0,0),this.stack=[this.block],this.fragments=r.length?new FO(r,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 r=0;;){let i=e.depth<this.stack.length?this.stack[this.stack.length-1]:null;for(;r<e.markers.length&&(!i||e.markers[r].from<i.end);){let s=e.markers[r++];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 r of this.parser.blockParsers)if(r){let i=r(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 DO(this.lineStart+e.pos,e.text.slice(e.pos));for(let r of this.parser.leafBlockParsers)if(r){let i=r(this,t);i&&t.parsers.push(i)}e:for(;this.nextLine()&&e.pos!=e.text.length;){if(e.indent<e.baseIndent+4){for(let r of this.parser.endLeafBlock)if(r(this,e,t))break e}for(let r of t.parsers)if(r.nextLine(this,e,t))return null;t.content+=`
`+e.scrub();for(let r of e.markers)t.marks.push(r)}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=yk(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=hZ;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 r=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-r)+o,r=t.end-t.text.length}}return t}readLine(){let{line:e}=this,{text:t,end:r}=this.scanLine(this.absoluteLineStart);for(this.absoluteLineEnd=r,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 "+ee[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),r;if(this.input.lineChunks)r=t==`
`?"":t;else{let i=t.indexOf(`
`);r=i<0?t:t.slice(0,i)}return e+r.length>this.to?r.slice(0,this.to-e):r}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(e,t,r=0){this.block=Nh.create(e,r,this.lineStart+t,this.block.hash,this.lineStart+this.line.text.length),this.stack.push(this.block)}startComposite(e,t,r=0){this.startContext(this.parser.getNodeType(e),t,r)}addNode(e,t,r){typeof e=="number"&&(e=new Ee(this.parser.nodeSet.types[e],ha,ha,(r!=null?r: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(VO(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?dk(this.ranges,0,e.topNode,this.ranges[0].from,this.reusePlaceholders):e}finishLeaf(e){for(let r of e.parsers)if(r.finish(this,e))return;let t=VO(this.parser.parseInline(e.content,e.start),e.marks);this.addNode(this.buffer.writeElements(t,-e.start).finish(ee.Paragraph,e.content.length),e.start)}elt(e,t,r,i){return typeof e=="string"?Ne(this.parser.getNodeType(e),t,r,i):new Vh(e,t)}get buffer(){return new Bh(this.parser.nodeSet)}};function dk(n,e,t,r,i){let s=n[e].to,o=[],a=[],l=t.from+r;function c(d,h){for(;h?d>=s:d>s;){let u=n[e+1].from-s;r+=u,d+=u,e++,s=n[e].to}}for(let d=t.firstChild;d;d=d.nextSibling){c(d.from+r,!0);let h=d.from+r,u,f=i.get(d.tree);f?u=f:d.to+r>s?(u=dk(n,e,d,r,i),c(d.to+r,!1)):u=d.toTree(),o.push(u),a.push(h-l)}return c(t.to+r,!1),new Ee(t.type,o,a,t.to+r-l,t.tree?t.tree.propValues:void 0)}var Xl=class n extends Ti{constructor(e,t,r,i,s,o,a,l,c){super(),this.nodeSet=e,this.blockParsers=t,this.leafBlockParsers=r,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,r){let i=new NO(this,e,t,r);for(let s of this.wrappers)i=s(i,e,t,r);return i}configure(e){let t=BO(e);if(!t)return this;let{nodeSet:r,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(Dl(t.defineNodes)){i=Object.assign({},i);let u=r.types.slice(),f;for(let m of t.defineNodes){let{name:O,block:S,composite:x,style:D}=typeof m=="string"?{name:m}:m;if(u.some(k=>k.name==O))continue;x&&(i[u.length]=(k,w,R)=>x(w,R,k.value));let M=u.length,Z=x?["Block","BlockContext"]:S?M>=ee.ATXHeading1&&M<=ee.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"]:void 0;u.push(St.define({id:M,name:O,props:Z&&[[xe.group,Z]]})),D&&(f||(f={}),Array.isArray(D)||D instanceof qn?f[O]=D:Object.assign(f,D))}r=new $i(u),f&&(r=r.extend(Kt(f)))}if(Dl(t.props)&&(r=r.extend(...t.props)),Dl(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(Dl(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?Wh(a,u.before):u.after?Wh(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(Dl(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?Wh(c,u.before):u.after?Wh(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 n(r,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 r=new Wl(this,e,t);e:for(let i=t;i<r.end;){let s=r.char(i);for(let o of this.inlineParsers)if(o){let a=o(r,s,i);if(a>=0){i=a;continue e}}i++}return r.resolveMarkers(0)}};function Dl(n){return n!=null&&n.length>0}function BO(n){if(!Array.isArray(n))return n;if(n.length==0)return null;let e=BO(n[0]);if(n.length==1)return e;let t=BO(n.slice(1));if(!t||!e)return e||t;let r=(o,a)=>(o||ha).concat(a||ha),i=e.wrap,s=t.wrap;return{props:r(e.props,t.props),defineNodes:r(e.defineNodes,t.defineNodes),parseBlock:r(e.parseBlock,t.parseBlock),parseInline:r(e.parseInline,t.parseInline),remove:r(e.remove,t.remove),wrap:i?s?(o,a,l,c)=>i(s(o,a,l,c),a,l,c):i:s}}function Wh(n,e){let t=n.indexOf(e);if(t<0)throw new RangeError(`Position specified relative to unknown parser ${e}`);return t}var hk=[St.none];for(let n=1,e;e=ee[n];n++)hk[n]=St.define({id:n,name:e,props:n>=ee.Escape?[]:[[xe.group,n in ek?["Block","BlockContext"]:["Block","LeafBlock"]]],top:e=="Document"});var ha=[],Bh=class{constructor(e){this.nodeSet=e,this.content=[],this.nodes=[]}write(e Line truncated
`;)s--;this.fragmentEnd=s?s-1:0}let r=this.cursor;r||(r=this.cursor=this.fragment.tree.cursor(),r.firstChild());let i=e+this.fragment.offset;for(;r.to<=i;)if(!r.parent())return!1;for(;;){if(r.from>=i)return this.fragment.from<=t;if(!r.childAfter(i))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(xe.contextHash)==e}takeNodes(e){let t=this.cursor,r=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-r>i){if(t.type.isAnonymous&&t.firstChild())continue;break}let d=Ok(t.from-r,e.ranges);if(t.to-r<=e.ranges[e.rangeI].to)e.addNode(t.tree,d);else{let h=new Ee(e.parser.nodeSet.types[ee.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(h,t.tree),e.addNode(h,d)}if(t.type.is("Block")&&(hZ.indexOf(t.type.id)<0?(o=t.to-r,a=e.block.children.length):(o=l,a=c),l=t.to-r,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 Ok(n,e){let t=n;for(let r=1;r<e.length;r++){let i=e[r-1].to,s=e[r].from;i<n&&(t-=s-i)}return t}var uZ=Kt({"Blockquote/...":g.quote,HorizontalRule:g.contentSeparator,"ATXHeading1/... SetextHeading1/...":g.heading1,"ATXHeading2/... SetextHeading2/...":g.heading2,"ATXHeading3/...":g.heading3,"ATXHeading4/...":g.heading4,"ATXHeading5/...":g.heading5,"ATXHeading6/...":g.heading6,"Comment CommentBlock":g.comment,Escape:g.escape,Entity:g.character,"Emphasis/...":g.emphasis,"StrongEmphasis/...":g.strong,"Link/... Image/...":g.link,"OrderedList/... BulletList/...":g.list,"BlockQuote/...":g.quote,"InlineCode CodeText":g.monospace,"URL Autolink":g.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":g.processingInstruction,"CodeInfo LinkLabel":g.labelName,LinkTitle:g.string,Paragraph:g.content}),bk=new Xl(new $i(hk).extend(uZ),Object.keys(zh).map(n=>zh[n]),Object.keys(zh).map(n=>ck[n]),Object.keys(zh),lZ,ek,Object.keys(LO).map(n=>LO[n]),Object.keys(LO),[]);function fZ(n,e,t){let r=[];for(let i=n.firstChild,s=e;;i=i.nextSibling){let o=i?i.from:t;if(o>s&&r.push({from:s,to:o}),!i)break;s=i.to}return r}function yk(n){let{codeParser:e,htmlParser:t}=n;return{wrap:Fd((i,s)=>{let o=i.type.id;if(e&&(o==ee.CodeBlock||o==ee.FencedCode)){let a="";if(o==ee.FencedCode){let c=i.node.getChild(ee.CodeInfo);c&&(a=s.read(c.from,c.to))}let l=e(a);if(l)return{parser:l,overlay:c=>c.type.id==ee.CodeText,bracketed:o==ee.FencedCode}}else if(t&&(o==ee.HTMLBlock||o==ee.HTMLTag||o==ee.CommentBlock))return{parser:t,overlay:fZ(i.node,i.from,i.to)};return null})}}var pZ={resolve:"Strikethrough",mark:"StrikethroughMark"},mZ={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":g.strikethrough}},{name:"StrikethroughMark",style:g.processingInstruction}],parseInline:[{name:"Strikethrough",parse(n,e,t){if(e!=126||n.char(t+1)!=126||n.char(t+2)==126)return-1;let r=n.slice(t-1,t),i=n.slice(t+2,t+3),s=/\s|^$/.test(r),o=/\s|^$/.test(i),a=zl.test(r),l=zl.test(i);return n.addDelimiter(pZ,t,t+2,!o&&(!l||s||a),!s&&(!a||o||l))},after:"Emphasis"}]};function Il(n,e,t=0,r,i=0){let s=0,o=!0,a=-1,l=-1,c=!1,d=()=>{r.push(n.elt("TableCell",i+a,i+l,n.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,r&&(a>-1&&d(),r.push(n.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++,r&&d()),s}function jP(n,e){for(let t=e;t<n.length;t++){let r=n.charCodeAt(t);if(r==124)return!0;r==92&&t++}return!1}var Sk=/^[>\s]*\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/,Yh=class{constructor(){this.rows=null}nextLine(e,t,r){if(this.rows==null){this.rows=!1;let i;if((t.next==45||t.next==58||t.next==124)&&Sk.test(i=t.text.slice(t.pos))){let s=[];Il(e,r.content,0,s,r.start)==Il(e,i,0)&&(this.rows=[e.elt("TableHeader",r.start,r.start+r.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}},gZ={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":g.heading}},"TableRow",{name:"TableCell",style:g.content},{name:"TableDelimiter",style:g.processingInstruction}],parseBlock:[{name:"Table",leaf(n,e){return jP(e.content,0)?new Yh:null},endLeaf(n,e,t){if(t.parsers.some(i=>i instanceof Yh)||!jP(e.text,e.basePos))return!1;let r=n.peekLine();return Sk.test(r)&&Il(n,e.text,e.basePos)==Il(n,r,e.basePos)},before:"SetextHeading"}]},YO=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}},OZ={defineNodes:[{name:"Task",block:!0,style:g.list},{name:"TaskMarker",style:g.atom}],pa Line truncated
`);r=i<0?t:t.slice(0,i)}return e+r.length>this.to?r.slice(0,this.to-e):r}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(e,t,r=0){this.block=Nh.create(e,r,this.lineStart+t,this.block.hash,this.lineStart+this.line.text.length),this.stack.push(this.block)}startComposite(e,t,r=0){this.startContext(this.parser.getNodeType(e),t,r)}addNode(e,t,r){typeof e=="number"&&(e=new Ee(this.parser.nodeSet.types[e],ha,ha,(r!=null?r: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(VO(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?uk(this.ranges,0,e.topNode,this.ranges[0].from,this.reusePlaceholders):e}finishLeaf(e){for(let r of e.parsers)if(r.finish(this,e))return;let t=VO(this.parser.parseInline(e.content,e.start),e.marks);this.addNode(this.buffer.writeElements(t,-e.start).finish(ee.Paragraph,e.content.length),e.start)}elt(e,t,r,i){return typeof e=="string"?Ne(this.parser.getNodeType(e),t,r,i):new Vh(e,t)}get buffer(){return new Bh(this.parser.nodeSet)}};function uk(n,e,t,r,i){let s=n[e].to,o=[],a=[],l=t.from+r;function c(d,h){for(;h?d>=s:d>s;){let u=n[e+1].from-s;r+=u,d+=u,e++,s=n[e].to}}for(let d=t.firstChild;d;d=d.nextSibling){c(d.from+r,!0);let h=d.from+r,u,f=i.get(d.tree);f?u=f:d.to+r>s?(u=uk(n,e,d,r,i),c(d.to+r,!1)):u=d.toTree(),o.push(u),a.push(h-l)}return c(t.to+r,!1),new Ee(t.type,o,a,t.to+r-l,t.tree?t.tree.propValues:void 0)}var Xl=class n extends Ti{constructor(e,t,r,i,s,o,a,l,c){super(),this.nodeSet=e,this.blockParsers=t,this.leafBlockParsers=r,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,r){let i=new NO(this,e,t,r);for(let s of this.wrappers)i=s(i,e,t,r);return i}configure(e){let t=BO(e);if(!t)return this;let{nodeSet:r,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(Dl(t.defineNodes)){i=Object.assign({},i);let u=r.types.slice(),f;for(let m of t.defineNodes){let{name:O,block:S,composite:x,style:D}=typeof m=="string"?{name:m}:m;if(u.some(k=>k.name==O))continue;x&&(i[u.length]=(k,w,R)=>x(w,R,k.value));let M=u.length,Z=x?["Block","BlockContext"]:S?M>=ee.ATXHeading1&&M<=ee.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"]:void 0;u.push(St.define({id:M,name:O,props:Z&&[[xe.group,Z]]})),D&&(f||(f={}),Array.isArray(D)||D instanceof qn?f[O]=D:Object.assign(f,D))}r=new $i(u),f&&(r=r.extend(Kt(f)))}if(Dl(t.props)&&(r=r.extend(...t.props)),Dl(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(Dl(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?Wh(a,u.before):u.after?Wh(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(Dl(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?Wh(c,u.before):u.after?Wh(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 n(r,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 r=new Wl(this,e,t);e:for(let i=t;i<r.end;){let s=r.char(i);for(let o of this.inlineParsers)if(o){let a=o(r,s,i);if(a>=0){i=a;continue e}}i++}return r.resolveMarkers(0)}};function Dl(n){return n!=null&&n.length>0}function BO(n){if(!Array.isArray(n))return n;if(n.length==0)return null;let e=BO(n[0]);if(n.length==1)return e;let t=BO(n.slice(1));if(!t||!e)return e||t;let r=(o,a)=>(o||ha).concat(a||ha),i=e.wrap,s=t.wrap;return{props:r(e.props,t.props),defineNodes:r(e.defineNodes,t.defineNodes),parseBlock:r(e.parseBlock,t.parseBlock),parseInline:r(e.parseInline,t.parseInline),remove:r(e.remove,t.remove),wrap:i?s?(o,a,l,c)=>i(s(o,a,l,c),a,l,c):i:s}}function Wh(n,e){let t=n.indexOf(e);if(t<0)throw new RangeError(`Position specified relative to unknown parser ${e}`);return t}var fk=[St.none];for(let n=1,e;e=ee[n];n++)fk[n]=St.define({id:n,name:e,props:n>=ee.Escape?[]:[[xe.group,n in nk?["Block","BlockContext"]:["Block","LeafBlock"]]],top:e=="Document"});var ha=[],Bh=class{constructor(e){this.nodeSet=e,this.content=[],this.nodes=[]}write(e Line truncated
`;)s--;this.fragmentEnd=s?s-1:0}let r=this.cursor;r||(r=this.cursor=this.fragment.tree.cursor(),r.firstChild());let i=e+this.fragment.offset;for(;r.to<=i;)if(!r.parent())return!1;for(;;){if(r.from>=i)return this.fragment.from<=t;if(!r.childAfter(i))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(xe.contextHash)==e}takeNodes(e){let t=this.cursor,r=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-r>i){if(t.type.isAnonymous&&t.firstChild())continue;break}let d=yk(t.from-r,e.ranges);if(t.to-r<=e.ranges[e.rangeI].to)e.addNode(t.tree,d);else{let h=new Ee(e.parser.nodeSet.types[ee.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(h,t.tree),e.addNode(h,d)}if(t.type.is("Block")&&(fZ.indexOf(t.type.id)<0?(o=t.to-r,a=e.block.children.length):(o=l,a=c),l=t.to-r,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 yk(n,e){let t=n;for(let r=1;r<e.length;r++){let i=e[r-1].to,s=e[r].from;i<n&&(t-=s-i)}return t}var pZ=Kt({"Blockquote/...":g.quote,HorizontalRule:g.contentSeparator,"ATXHeading1/... SetextHeading1/...":g.heading1,"ATXHeading2/... SetextHeading2/...":g.heading2,"ATXHeading3/...":g.heading3,"ATXHeading4/...":g.heading4,"ATXHeading5/...":g.heading5,"ATXHeading6/...":g.heading6,"Comment CommentBlock":g.comment,Escape:g.escape,Entity:g.character,"Emphasis/...":g.emphasis,"StrongEmphasis/...":g.strong,"Link/... Image/...":g.link,"OrderedList/... BulletList/...":g.list,"BlockQuote/...":g.quote,"InlineCode CodeText":g.monospace,"URL Autolink":g.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":g.processingInstruction,"CodeInfo LinkLabel":g.labelName,LinkTitle:g.string,Paragraph:g.content}),Sk=new Xl(new $i(fk).extend(pZ),Object.keys(zh).map(n=>zh[n]),Object.keys(zh).map(n=>hk[n]),Object.keys(zh),dZ,nk,Object.keys(LO).map(n=>LO[n]),Object.keys(LO),[]);function mZ(n,e,t){let r=[];for(let i=n.firstChild,s=e;;i=i.nextSibling){let o=i?i.from:t;if(o>s&&r.push({from:s,to:o}),!i)break;s=i.to}return r}function vk(n){let{codeParser:e,htmlParser:t}=n;return{wrap:Fd((i,s)=>{let o=i.type.id;if(e&&(o==ee.CodeBlock||o==ee.FencedCode)){let a="";if(o==ee.FencedCode){let c=i.node.getChild(ee.CodeInfo);c&&(a=s.read(c.from,c.to))}let l=e(a);if(l)return{parser:l,overlay:c=>c.type.id==ee.CodeText,bracketed:o==ee.FencedCode}}else if(t&&(o==ee.HTMLBlock||o==ee.HTMLTag||o==ee.CommentBlock))return{parser:t,overlay:mZ(i.node,i.from,i.to)};return null})}}var gZ={resolve:"Strikethrough",mark:"StrikethroughMark"},OZ={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":g.strikethrough}},{name:"StrikethroughMark",style:g.processingInstruction}],parseInline:[{name:"Strikethrough",parse(n,e,t){if(e!=126||n.char(t+1)!=126||n.char(t+2)==126)return-1;let r=n.slice(t-1,t),i=n.slice(t+2,t+3),s=/\s|^$/.test(r),o=/\s|^$/.test(i),a=zl.test(r),l=zl.test(i);return n.addDelimiter(gZ,t,t+2,!o&&(!l||s||a),!s&&(!a||o||l))},after:"Emphasis"}]};function Il(n,e,t=0,r,i=0){let s=0,o=!0,a=-1,l=-1,c=!1,d=()=>{r.push(n.elt("TableCell",i+a,i+l,n.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,r&&(a>-1&&d(),r.push(n.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++,r&&d()),s}function qP(n,e){for(let t=e;t<n.length;t++){let r=n.charCodeAt(t);if(r==124)return!0;r==92&&t++}return!1}var wk=/^[>\s]*\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/,Yh=class{constructor(){this.rows=null}nextLine(e,t,r){if(this.rows==null){this.rows=!1;let i;if((t.next==45||t.next==58||t.next==124)&&wk.test(i=t.text.slice(t.pos))){let s=[];Il(e,r.content,0,s,r.start)==Il(e,i,0)&&(this.rows=[e.elt("TableHeader",r.start,r.start+r.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}},bZ={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":g.heading}},"TableRow",{name:"TableCell",style:g.content},{name:"TableDelimiter",style:g.processingInstruction}],parseBlock:[{name:"Table",leaf(n,e){return qP(e.content,0)?new Yh:null},endLeaf(n,e,t){if(t.parsers.some(i=>i instanceof Yh)||!qP(e.text,e.basePos))return!1;let r=n.peekLine();return wk.test(r)&&Il(n,e.text,e.basePos)==Il(n,r,e.basePos)},before:"SetextHeading"}]},YO=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}},yZ={defineNodes:[{name:"Task",block:!0,style:g.list},{name:"TaskMarker",style:g.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"}),vn('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),vn('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],p5=l$.concat([vn("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),vn("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),vn("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),s$=new jo,c$=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function Vl(n){return(e,t)=>{let r=e.node.getChild("VariableDefinition");return r&&t(r,n),!0}}var m5=["FunctionDeclaration"],g5={FunctionDeclaration:Vl("function"),ClassDeclaration:Vl("class"),ClassExpression:()=>!0,EnumDeclaration:Vl("constant"),TypeAliasDeclaration:Vl("type"),NamespaceDeclaration:Vl("namespace"),VariableDefinition(n,e){n.matchContext(m5)||e(n,"variable")},TypeDefinition(n,e){e(n,"type")},__proto__:null};function d$(n,e){let t=s$.get(e);if(t)return t;let r=[],i=!0;function s(o,a){let l=n.sliceString(o.from,o.to);r.push({label:l,type:a})}return e.cursor(We.IncludeAnonymous).iterate(o=>{if(i)i=!1;else if(o.name){let a=g5[o.name];if(a&&a(o,s)||c$.has(o.name))return!1}else if(o.to-o.from>8192){for(let a of d$(n,o.node))r.push(a);return!1}}),s$.set(e,r),r}var o$=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,h$=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function O5(n){let e=ze(n.state).resolveInner(n.pos,-1);if(h$.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&o$.test(n.state.sliceDoc(e.from,e.to));if(!t&&!n.explicit)return null;let r=[];for(let i=e;i;i=i.parent)c$.has(i.name)&&(r=r.concat(d$(n.state.doc,i)));return{options:r,from:t?e.from:n.pos,validFor:o$}}var Yr=Jt.define({name:"javascript",parser:i$.configure({props:[En.add({IfStatement:Gn({except:/^\s*({|else\b)/}),TryStatement:Gn({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:Dw,SwitchBody:n=>{let e=n.textAfter,t=/^\s*\}/.test(e),r=/^\s*(case|default)\b/.test(e);return n.baseIndent+(t?0:r?1:2)*n.unit},Block:Go({closing:"}"}),ArrowFunction:n=>n.baseIndent+n.unit,"TemplateString BlockComment":()=>null,"Statement Property":Gn({except:/^\s*{/}),JSXElement(n){let e=/^\s*<\//.test(n.textAfter);return n.lineIndent(n.node.from)+(e?0:n.unit)},JSXEscape(n){let e=/\s*\}/.test(n.textAfter);return n.lineIndent(n.node.from)+(e?0:n.unit)},"JSXOpenTag JSXSelfClosingTag"(n){return n.column(n.node.from)+n.unit}}),dn.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Ft,BlockComment(n){return{from:n.from+2,to:n.to-2}},JSXElement(n){let e=n.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let t=n.lastChild;return{from:e.to,to:t.type.isError?n.to:t.from}},"JSXSelfClosingTag JSXOpenTag"(n){var e;let t=(e=n.firstChild)===null||e===void 0?void 0:e.nextSibling,r=n.lastChild;return!t||t.type.isError?null:{from:t.to,to:r.type.isError?n.to:r.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),u$={test:n=>/^JSX/.test(n.name),facet:Uo({commentTokens:{block:{open:"{/*",close:"*/}"}}})},db=Yr.configure({dialect:"ts"},"typescript"),hb=Yr.configure({dialect:"jsx",props:[Jd.add(n=>n.isTop?[u$]:void 0)]}),ub=Yr.configure({dialect:"jsx ts",props:[Jd.add(n=>n.isTop?[u$]:void 0)]},"typescript"),f$=n=>({label:n,type:"keyword"}),p$="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(f$),b5=p$.concat(["declare","implements","private","protected","public"].map(f$));function m$(n={}){let e=n.jsx?n.typescript?ub:hb:n.typescript?db:Yr,t=n.typescript?p5.concat(b5):l$.concat(p$);return new Ye(e,[Yr.data.of({autocomplete:nx(h$,tx(t))}),Yr.data.of({autocomplete:O5}),n.jsx?v5:[]])}function y5(n){for(;;){if(n.name=="JSXOpenTag"||n.name=="JSXSelfClosingTag"||n.name=="JSXFragmentTag")return n;if(n.name=="JSXEscape"||!n.parent)return null;n=n.parent}}function a$(n,e,t=n.length){for(let r=e==null?void 0:e.firstChild;r;r=r.nextSibling)if(r.name=="JSXIdentifier"||r.name=="JSXBuiltin"||r.name=="JSXNamespacedName"||r.name=="JSXMemberExpression")return n.sliceString(r.from,Math.min(r.to,t));return""}var S5=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),v5=F.inputHandler.of((n,e,t,r,i)=>{if((S5?n.composing:n.compositionStarted)||n.state.readOnly||e!=t||r!=">"&&r!="/"||!Yr.isActiveAt(n.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(J.widget({widget:new Cb(c[0],e),side:-1}).range(d))}o+=l.length+1}}return J.set(t,!0)}function F$(n){let e;function t(r){let i=e.posAtDOM(r);n(e.state.doc.lineAt(i).number)}return it.fromClass(class{constructor(r){e=r,this.decorations=V$(r,t)}update(r){e=r.view,(r.docChanged||r.viewportChanged)&&(this.decorations=V$(r.view,t))}},{decorations:r=>r.decorations})}var _b=class extends Ct{constructor(t,r,i){super();this.filename=t;this.system=r;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",r=>{r.preventDefault(),r.stopPropagation(),this.handleClick(this.filename,this.system)}),t}eq(t){return this.filename===t.filename&&this.system===t.system}ignoreEvent(){return!1}};function rX(n,e,t){let r=[],i=n.state.doc,s=new Set;for(let{from:o,to:a}of n.visibleRanges){let l=n.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),O=i.lineAt(m),S=O.number+":"+f;s.has(S)||(s.add(S),r.push(J.widget({widget:new _b(f,!!d.system,t),side:1}).range(O.to)))}}}return J.set(r,!0)}function Y$(n,e){function t(r){let i=n();return!i||!i.length?J.none:rX(r,i,e)}return it.fromClass(class{constructor(r){this.decorations=t(r)}update(r){(r.docChanged||r.viewportChanged)&&(this.decorations=t(r.view))}},{decorations:r=>r.decorations})}var ds=window.matchMedia&&window.matchMedia("only screen and (max-width: 760px)").matches;function xr(n,e){var t=$(document.createElement("div"));return n&&t.appendTo(n),e&&t.addClass(e),t}function iX(n){return Me.transactionFilter.of(e=>{if(!e.docChanged||!e.isUserEvent("input")||!n.input)return e;let t=[],r=!1;if(e.changes.iterChanges((o,a,l,c,d)=>{let h=d.toString(),u=n.input(h);t.push({from:o,to:a,insert:u}),u!==h&&(r=!0)}),!r)return e;let i=e.annotation(ut.userEvent),s=e.annotation(ut.addToHistory);return{changes:t,selection:e.selection,effects:e.effects,scrollIntoView:e.scrollIntoView,annotations:[...i!=null?[ut.userEvent.of(i)]:[],...s!=null?[ut.addToHistory.of(s)]:[]]}})}var Eb=new Vt;function j$(n){return Eb.reconfigure(iX(n))}var U$=ye.define(),q$=ye.define(),G$=ye.define(),H$=ye.define(),K$=ye.define(),J$=ye.define(),eQ=ye.define(),Mb=ye.define(),tQ=ye.define(),nQ=Xe.define({create(){return $e.empty},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(U$)){let r=t.value,i=[];for(let[s,o]of r.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new eu(_e(o,4)).range(a))}n=$e.of(i,!0)}return n}}),rQ=Xe.define({create(){return $e.empty},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(q$)){let r=t.value,i=[];for(let[s,o]of r.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new tu(o).range(a))}n=$e.of(i,!0)}return n}}),iQ=Xe.define({create(){return $e.empty},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(G$)){let r=t.value,i=[];for(let[s,o]of r.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new nu(o).range(a))}n=$e.of(i,!0)}return n}}),sQ=Xe.define({create(){return $e.empty},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(K$)){let r=[],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;r.push((s.enabled?oX:aX).range(o))}n=$e.of(r,!0)}return n}}),Rb=Xe.define({create(){return $e.empty},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(J$)){let r=t.value,i=[];for(let[s,o]of r.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new iu(s,o.msg,o.warning).range(a))}n=$e.of(i,!0)}return n}}),oQ=Xe.define({create(){return $e.empty},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(eQ))if(t.value===null)n=$e.empty;else{let r=t.value;if(r>=1&&r<=e.state.doc.lines){let i=e.state.doc.line(r).from;n=$e.of(aQ.range(i))}}return n}}),eu=class extends $t{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}},tu=class extends $t{constructor(t){super();this.bytes=t}toDOM(){return document.createTextNode(this.bytes)}eq(t){return this.bytes==t.bytes}},nu=class extends $t{constructor(t){super();this.clock=t}toDOM(){return document.createTextNode(this.clock)}eq(t){return this.clock==t.clock}},sX=new class extends $t{toDOM(){let n=document.createElement("span");return n.className="gutter-breakpoint-placeholder",n.textContent="\u25CF",n}},ru=class extends $t{constructor(t){super();this.enabled=t}toDOM(){let t=document.createElement("span");return t.className="gutter- Line truncated
}`,{label:"class",detail:"definition",type:"keyword"}),vn('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),vn('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],g5=d$.concat([vn("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),vn("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),vn("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),a$=new jo,h$=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function Vl(n){return(e,t)=>{let r=e.node.getChild("VariableDefinition");return r&&t(r,n),!0}}var O5=["FunctionDeclaration"],b5={FunctionDeclaration:Vl("function"),ClassDeclaration:Vl("class"),ClassExpression:()=>!0,EnumDeclaration:Vl("constant"),TypeAliasDeclaration:Vl("type"),NamespaceDeclaration:Vl("namespace"),VariableDefinition(n,e){n.matchContext(O5)||e(n,"variable")},TypeDefinition(n,e){e(n,"type")},__proto__:null};function u$(n,e){let t=a$.get(e);if(t)return t;let r=[],i=!0;function s(o,a){let l=n.sliceString(o.from,o.to);r.push({label:l,type:a})}return e.cursor(We.IncludeAnonymous).iterate(o=>{if(i)i=!1;else if(o.name){let a=b5[o.name];if(a&&a(o,s)||h$.has(o.name))return!1}else if(o.to-o.from>8192){for(let a of u$(n,o.node))r.push(a);return!1}}),a$.set(e,r),r}var l$=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,f$=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function y5(n){let e=ze(n.state).resolveInner(n.pos,-1);if(f$.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&l$.test(n.state.sliceDoc(e.from,e.to));if(!t&&!n.explicit)return null;let r=[];for(let i=e;i;i=i.parent)h$.has(i.name)&&(r=r.concat(u$(n.state.doc,i)));return{options:r,from:t?e.from:n.pos,validFor:l$}}var Yr=Jt.define({name:"javascript",parser:o$.configure({props:[En.add({IfStatement:Gn({except:/^\s*({|else\b)/}),TryStatement:Gn({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:Iw,SwitchBody:n=>{let e=n.textAfter,t=/^\s*\}/.test(e),r=/^\s*(case|default)\b/.test(e);return n.baseIndent+(t?0:r?1:2)*n.unit},Block:Go({closing:"}"}),ArrowFunction:n=>n.baseIndent+n.unit,"TemplateString BlockComment":()=>null,"Statement Property":Gn({except:/^\s*{/}),JSXElement(n){let e=/^\s*<\//.test(n.textAfter);return n.lineIndent(n.node.from)+(e?0:n.unit)},JSXEscape(n){let e=/\s*\}/.test(n.textAfter);return n.lineIndent(n.node.from)+(e?0:n.unit)},"JSXOpenTag JSXSelfClosingTag"(n){return n.column(n.node.from)+n.unit}}),dn.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Ft,BlockComment(n){return{from:n.from+2,to:n.to-2}},JSXElement(n){let e=n.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let t=n.lastChild;return{from:e.to,to:t.type.isError?n.to:t.from}},"JSXSelfClosingTag JSXOpenTag"(n){var e;let t=(e=n.firstChild)===null||e===void 0?void 0:e.nextSibling,r=n.lastChild;return!t||t.type.isError?null:{from:t.to,to:r.type.isError?n.to:r.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),p$={test:n=>/^JSX/.test(n.name),facet:Uo({commentTokens:{block:{open:"{/*",close:"*/}"}}})},db=Yr.configure({dialect:"ts"},"typescript"),hb=Yr.configure({dialect:"jsx",props:[Jd.add(n=>n.isTop?[p$]:void 0)]}),ub=Yr.configure({dialect:"jsx ts",props:[Jd.add(n=>n.isTop?[p$]:void 0)]},"typescript"),m$=n=>({label:n,type:"keyword"}),g$="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(m$),S5=g$.concat(["declare","implements","private","protected","public"].map(m$));function O$(n={}){let e=n.jsx?n.typescript?ub:hb:n.typescript?db:Yr,t=n.typescript?g5.concat(S5):d$.concat(g$);return new Ye(e,[Yr.data.of({autocomplete:ix(f$,rx(t))}),Yr.data.of({autocomplete:y5}),n.jsx?x5:[]])}function v5(n){for(;;){if(n.name=="JSXOpenTag"||n.name=="JSXSelfClosingTag"||n.name=="JSXFragmentTag")return n;if(n.name=="JSXEscape"||!n.parent)return null;n=n.parent}}function c$(n,e,t=n.length){for(let r=e==null?void 0:e.firstChild;r;r=r.nextSibling)if(r.name=="JSXIdentifier"||r.name=="JSXBuiltin"||r.name=="JSXNamespacedName"||r.name=="JSXMemberExpression")return n.sliceString(r.from,Math.min(r.to,t));return""}var w5=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),x5=F.inputHandler.of((n,e,t,r,i)=>{if((w5?n.composing:n.compositionStarted)||n.state.readOnly||e!=t||r!=">"&&r!="/"||!Yr.isActiveAt(n.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){F$.lastIndex=0;let c=F$.exec(l);if(c){let d=o+c.index+c[0].length;t.push(J.widget({widget:new Cb(c[0],e),side:-1}).range(d))}o+=l.length+1}}return J.set(t,!0)}function j$(n){let e;function t(r){let i=e.posAtDOM(r);n(e.state.doc.lineAt(i).number)}return it.fromClass(class{constructor(r){e=r,this.decorations=Y$(r,t)}update(r){e=r.view,(r.docChanged||r.viewportChanged)&&(this.decorations=Y$(r.view,t))}},{decorations:r=>r.decorations})}var _b=class extends Ct{constructor(t,r,i){super();this.filename=t;this.system=r;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",r=>{r.preventDefault(),r.stopPropagation(),this.handleClick(this.filename,this.system)}),t}eq(t){return this.filename===t.filename&&this.system===t.system}ignoreEvent(){return!1}};function sX(n,e,t){let r=[],i=n.state.doc,s=new Set;for(let{from:o,to:a}of n.visibleRanges){let l=n.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),O=i.lineAt(m),S=O.number+":"+f;s.has(S)||(s.add(S),r.push(J.widget({widget:new _b(f,!!d.system,t),side:1}).range(O.to)))}}}return J.set(r,!0)}function U$(n,e){function t(r){let i=n();return!i||!i.length?J.none:sX(r,i,e)}return it.fromClass(class{constructor(r){this.decorations=t(r)}update(r){(r.docChanged||r.viewportChanged)&&(this.decorations=t(r.view))}},{decorations:r=>r.decorations})}var ds=window.matchMedia&&window.matchMedia("only screen and (max-width: 760px)").matches;function xr(n,e){var t=$(document.createElement("div"));return n&&t.appendTo(n),e&&t.addClass(e),t}function oX(n){return Me.transactionFilter.of(e=>{if(!e.docChanged||!e.isUserEvent("input")||!n.input)return e;let t=[],r=!1;if(e.changes.iterChanges((o,a,l,c,d)=>{let h=d.toString(),u=n.input(h);t.push({from:o,to:a,insert:u}),u!==h&&(r=!0)}),!r)return e;let i=e.annotation(ut.userEvent),s=e.annotation(ut.addToHistory);return{changes:t,selection:e.selection,effects:e.effects,scrollIntoView:e.scrollIntoView,annotations:[...i!=null?[ut.userEvent.of(i)]:[],...s!=null?[ut.addToHistory.of(s)]:[]]}})}var Eb=new Vt;function q$(n){return Eb.reconfigure(oX(n))}var G$=ye.define(),H$=ye.define(),K$=ye.define(),J$=ye.define(),eQ=ye.define(),tQ=ye.define(),nQ=ye.define(),Mb=ye.define(),rQ=ye.define(),iQ=Xe.define({create(){return $e.empty},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(G$)){let r=t.value,i=[];for(let[s,o]of r.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new eu(_e(o,4)).range(a))}n=$e.of(i,!0)}return n}}),sQ=Xe.define({create(){return $e.empty},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(H$)){let r=t.value,i=[];for(let[s,o]of r.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new tu(o).range(a))}n=$e.of(i,!0)}return n}}),oQ=Xe.define({create(){return $e.empty},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(K$)){let r=t.value,i=[];for(let[s,o]of r.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new nu(o).range(a))}n=$e.of(i,!0)}return n}}),aQ=Xe.define({create(){return $e.empty},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(eQ)){let r=[],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;r.push((s.enabled?lX:cX).range(o))}n=$e.of(r,!0)}return n}}),Rb=Xe.define({create(){return $e.empty},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(tQ)){let r=t.value,i=[];for(let[s,o]of r.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new iu(s,o.msg,o.warning).range(a))}n=$e.of(i,!0)}return n}}),lQ=Xe.define({create(){return $e.empty},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(nQ))if(t.value===null)n=$e.empty;else{let r=t.value;if(r>=1&&r<=e.state.doc.lines){let i=e.state.doc.line(r).from;n=$e.of(cQ.range(i))}}return n}}),eu=class extends $t{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}},tu=class extends $t{constructor(t){super();this.bytes=t}toDOM(){return document.createTextNode(this.bytes)}eq(t){return this.bytes==t.bytes}},nu=class extends $t{constructor(t){super();this.clock=t}toDOM(){return document.createTextNode(this.clock)}eq(t){return this.clock==t.clock}},aX=new class extends $t{toDOM(){let n=document.createElement("span");return n.className="gutter-breakpoint-placeholder",n.textContent="\u25CF",n}},ru=class extends $t{constructor(t){super();this.enabled=t}toDOM(){let t=document.createElement("span");return t.className="gutter- Line truncated
color: #ff6666;
background-color: #330000;
padding: 4px 8px;
margin: 2px 0;
border-left: 3px solid #ff0000;
font-family: monospace;
`,t}},gX=Xe.define({create(){return J.none},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(lo.showMessage)){if(t.value===null||!t.value)return J.none;if(t.value.toggle){let r=[],i=new Map;return n.between(0,e.state.doc.length,(a,l,c)=>{try{let d=e.state.doc.lineAt(l).number;c.spec.widget instanceof ql&&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);r.push(J.widget({widget:new ql(i.get(a)),block:!0,side:1}).range(l.to))}catch(l){}}),J.set(r,!0)}}return n},provide:n=>F.decorations.from(n)}),Lb=class extends Ct{constructor(t){super();this.value=t}toDOM(){let t=document.createElement("div");return t.textContent=`${this.value}`,t.style.cssText=`
`,t}},bX=Xe.define({create(){return J.none},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(lo.showMessage)){if(t.value===null||!t.value)return J.none;if(t.value.toggle){let r=[],i=new Map;return n.between(0,e.state.doc.length,(a,l,c)=>{try{let d=e.state.doc.lineAt(l).number;c.spec.widget instanceof ql&&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);r.push(J.widget({widget:new ql(i.get(a)),block:!0,side:1}).range(l.to))}catch(l){}}),J.set(r,!0)}}return n},provide:n=>F.decorations.from(n)}),Lb=class extends Ct{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}},fQ=ye.define(),OX=Xe.define({create(){return J.none},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(fQ)){if(t.value===null||!t.value)return J.none;let r=e.state.doc.lineAt(t.value.range.to);return J.set([J.widget({widget:new Lb(t.value.val),block:!0,side:1}).range(r.to)])}return n},provide:n=>F.decorations.from(n)}),pQ=ye.define(),bX=J.mark({attributes:{class:"cm-error-span"}}),yX=Xe.define({create(){return J.none},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(pQ)){if(t.value===null)return J.none;let r=[];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&&r.push(bX.range(o,a))}catch(s){}return J.set(r,!0)}return n},provide:n=>F.decorations.from(n)}),mQ=ye.define(),SX=J.line({attributes:{class:"highlight-lines"}}),vX=Xe.define({create(){return J.none},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(mQ)){if(t.value===null)return J.none;let{start:r,end:i}=t.value,s=[];for(let o=r;o<=i;o++)try{let a=e.state.doc.line(o);s.push(SX.range(a.from))}catch(a){}return J.set(s)}return n!==J.none&&(e.docChanged||e.selection)?J.none:n},provide:n=>F.decorations.from(n)}),gQ={field:gX,widget:ql},Gl={effect:hQ,decoration:uQ,field:mX},lu={effect:fQ,field:OX},cu={effect:pQ,field:yX},du={effect:mQ,field:vX},OQ=ye.define(),bQ=[];for(let n=0;n<4;n++)bQ.push(J.line({attributes:{class:`cm-traced-line cm-traced-line-h${n}`}}));var wX=Xe.define({create(){return J.none},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(OQ)){let r=[];for(let{line:i,level:s}of t.value)try{let o=e.state.doc.line(i),a=bQ[Math.max(0,Math.min(3,s|0))];r.push(a.range(o.from))}catch(o){}return J.set(r,!0)}return n},provide:n=>F.decorations.from(n)}),hu={effect:OQ,field:wX};var xX=[...Rf(Jx,Ef),{key:"Mod-Shift-Backspace",run:Qg}],SQ=Rf(sP,Ef),ga=64,vQ=ye.define(),wQ=ye.define(),Db=Xe.define({create(){return new Map},update(n,e){let t=n;for(let r of e.effects)if(r.is(wQ))t=new Map;else if(r.is(vQ)){t===n&&(t=new Map(n));for(let i of r.value)t.set(i.id,{from:i.from,to:i.to})}if(!e.changes.empty){let r=new Map;for(let[i,s]of t)r.set(i,{from:e.changes.mapPos(s.from,-1),to:e.changes.mapPos(s.to,1)});return r}return t}}),PX=200,Zb={default:{theme:Kh},6502:{isAsm:!0},z80:{isAsm:!0},jsasm:{isAsm:!0},gas:{isAsm:!0},vasm:{isAsm:!0},inform6:{theme:Hh},dialog:{theme:Hh,lineWrap:!0},markdown:{lineWrap:!0},fastbasic:{noGutters:!0},basic:{noGutters:!0,lineBased:!0},ecs:{theme:Kh}},xQ={input:null};function PQ(n){xQ.input=n?e=>e.toUpperCase():null}function zb(n){if(!n)return"";let e=n.state.selection.main;return e.empty?"":n.state.sliceDoc(e.from,e.to)}var Hl=class Hl{constructor(e,t){this.updateTimer=null;this.indentUnitCompartment=new Vt;this.isAsm=!1;this.dirtylisting=!0;this.refreshDelayMsec=300;this.probe=null;this.tracedLineCounts=new Map;this.path=e,this.mode=t}createDiv(e){var t=document.createElement("div");t.setAttribute("class","editor"),e.appendChild(t);var r=re.getFile(this.path),i=r&&this.mode=="verilog"&&/__asm\b([\s\S]+?)\b__endasm\b/.test(r);return this.newEditor(t,r,i),this.editor.dispatch({effects:j$(xQ)}),this.syncBreakpoints(),re.getToolForFilename(this.path).startsWith("remote:")&&(this.refreshDelayMsec=1e3),t}setVisible(e){e?(this.editor.focus(),Hl.tracingEnabled&&this.startTracing()):this.stopTracing()}getShortcuts(){if(!this.editor)return[];var e=this.editor,t=(r,i,s)=>({key:r,label:i,fn:()=>{s(e),e.focus()}});return[t("mod+f","Find",Dh),t("mod+g","Find Next",la),t("mod+d","Next Occurrence",Ug),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(),this.tracedLineCounts.clear())}stopTracing(){this.probe&&(P.stopProbing(),this.probe=null),this.tracedLineCounts.clear(),this.editor.dispatch({effects:hu.effect.of([])})}setTracingEnabled(e){Hl.tracingEnabled=e,e?this.startTracing():this.stopTracing()}newEditor(e,t,r){var i=Zb[this.mode]||Zb.default,s=r||i.isAsm,o=!!i.lineWrap,a=i.theme||Zb.default.theme,l=i.useLineNumbers&&!ds;he.embed&&(l=!1,s=!1),this.isAsm=s;let c=i.noGutters||ds;var d;let h=wb[this.mode];h?d=h.language:(console.warn("Unknown mode: "+this.mode),d=null),this.editor=new F({parent:e,doc:t,extensions:[this.indentUnitCompartment.of(this.indentUnitFor(t)),s?lg.of((u,f)=>{let m=u.state.doc.lineAt(f).number;if(m>=0){let O=u.state.doc.line(m);if(O.text.trim())return u.lineIndent(O.from)}return 0}):[],...s?[Sn.of(a1(()=>na().tabsToSpaces))]:[],i.lineBased?Sn.of(t1):[],...h1(na()),Sn.of(xX),l?Xd():[],wx(),Sn.of(kx),Ww(),Hv(),Me.allowMultipleSelections.of(!0),Ld(),Zw(),Yw(),Zd(),Id(),Dd(),ow(),Lh(),qg({top:!0}),Sn.of(SQ),d||[],a,Pb,o?F.lineWrapping:[],Gl.field,c?[]:[su.field,su.gutter],s&&!c?[Ul.field,Ul.gutter,ou.field,ou.gutter]:[],au.field,lQ.gutter,F.updateListener.of(u=>{for(let f of u.transactions.flatMap(m=>m.effects))if(f.is(au.requestToggle)&&Yt.toggleSourceLine(this.path,f.value), Line truncated
`).length-1;this.editor.dispatch({changes:{from:i,insert:e}}),this.highlightLines(r-1,r+s-2)}highlightLines(e,t){let r=this.editor.state.doc.line(e+1);this.editor.dispatch({effects:[du.effect.of({start:e+1,end:t+1}),F.scrollIntoView(r.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:[du.effect.of({start:e,end:e}),F.scrollIntoView(t.from,{y:"center"})]}),this.editor.focus()}getValue(){return this.editor.state.doc.toString()}getSelectionText(){return zb(this.editor)}getPath(){return this.path}markErrors(e){this.clearErrors(),e=e.slice(0,PX);let t=new Map,r=[];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),i.severity==="warning"&&t.has(o)||t.set(o,{msg:i.msg,warning:i.severity==="warning"}),i.start!=null&&i.end!=null&&i.end>i.start&&r.push({line:o,start:i.start,end:i.end})}this.editor.dispatch({effects:[lo.set.of(t),cu.effect.of(r.length>0?r:null)]})}clearErrors(){this.dirtylisting=!0,this.editor.dispatch({effects:[lo.set.of(new Map),lo.showMessage.of(null),cu.effect.of(null)]})}getSourceFile(){return this.sourcefile}updateListing(){this.clearErrors();var e=this.sourcefile.lines||[];let t=new Map,r=new Map,i=new Map;for(var s of e)if(s.offset>=0&&t.set(s.line,_e(s.offset&65535,4)),s.insns){var o=s.insns.length>9?"...":s.insns;if(r.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:[su.set.of(t),Ul.set.of(r),ou.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 r=l&&l.minclocks,i=l&&l.maxclocks;if(r>=0&&i>=0){var s;i==r?s=r+"":s=r+"-"+i,i==e.MAX_CLOCKS&&(s+="+"),t.set(o,s)}}this.editor.dispatch({effects:[Ul.set.of(t)]})}}setCurrentLine(e,t){var r=i=>{this.editor.dispatch({effects:[pa.set.of(i.line),Gl.effect.of(t?i.line:null),...t?[F.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(r(e),t){let s=this.editor.state.doc.line(e.line).from+(e.start||0);this.editor.dispatch({selection:{anchor:s,head:s},effects:F.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:[pa.set.of(null),Gl.effect.of(null)]})}getActiveLine(){if(this.sourcefile){var e=en&&en.c;if(!e&&P.getCPUState&&!P.isRunning()&&(e=P.getCPUState()),e){var t=e&&(e.EPC||e.PC),r=this.sourcefile.findLineForOffset(t,ga);return r}}}refreshDebugState(e){var t=this.getActiveLine();!e&&(t===this.currentDebugLine||!t&&!this.currentDebugLine)||this.setCurrentLine(t,e)}refreshListing(){var e=re.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 r=0;r<e.idx;r++){let i=e.buf[r];if((i&4278190080)===16777216){let s=this.sourcefile.findLineForOffset(i&65535,ga);s&&(this.tracedLineCounts.set(s.line,(this.tracedLineCounts.get(s.line)||0)+1),t.add(s.line))}}e.clear(),this.editor.dispatch({effects:hu.effect.of(cQ(this.tracedLineCounts,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:au.setAll.of(e)})}};Hl.tracingEnabled=!1;var un=Hl,Ib=1024,Ri=class{getSelectionText(){return zb(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 F({parent:e,extensions:[Zd(),Id(),Me.allowMultipleSelections.of(!0),Ld(),Dd(),Lh(),X$,Hh,Gl.field,Me.tabSize.of(8),Me.readOnly.of(!0)]})}refresh(e,t){let r=en||P.saveState(),i=t!==void 0?t:r.c?r.c.PC:0,s=0,o=0,a=P.debugSymbols&&P.debugSymbols.addr2symbol||{},l=(h,u)=>{let f="",m=0;for(;m<u;){let O=h+m|0,S=P.disassemble(O,P.readAddress.bind(P)),x="",D="";for(let k=0;k<S.nbytes;k++)x+=_e(P.r Line truncated
`;f+=Z,O==i&&(o=s),s++,m+=S.nbytes||1}return f};var c=i<0?i-Ib:Math.max(0,i-Ib);let d=l(c,i-c)+l(i,Ib);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:F.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=_e(e,4),r=this.disasmview.state.doc;for(let i=1;i<=r.lines;i++){let s=r.line(i);if(s.text.startsWith(t+" "))return this.disasmview.dispatch({selection:{anchor:s.from,head:s.from+t.length},effects:F.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}},uu=class extends Ri{constructor(e){super(),this.path=e}refreshListing(){var e=re.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 r=en||P.saveState(),i=r.c?r.c.EPC||r.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:F.scrollIntoView(o.from,{y:"center"})})}}}}}goToAddress(e){this.refreshListing();let t=this.assemblyfile&&this.assemblyfile.findLineForOffset(e,ga);if(t){let r=this.disasmview.state.doc.line(t.line);this.disasmview.dispatch({selection:{anchor:r.from,head:r.from},effects:F.scrollIntoView(r.from,{y:"center"})})}this.disasmview.focus()}};function kQ(n){let e=[n];try{var t=Da(re.mainPath);t.length>0&&t!="local"&&e.push(t+"/"+n)}catch(s){}for(var r of e){var i=re&&re.getFile(r);if(typeof i=="string")return r}return null}function yQ(n){for(var e of Ty(n))if(e.editorStyle){var t=I$(e.editorStyle);if(t)return t}return null}var ma=new Map;async function $Q(n){var e=await re.queryWorker(n),t=e&&e.output;return t instanceof Uint8Array&&t.length>0?new TextDecoder().decode(t):null}function kX(n){let e=re.platform_id,t="lib:"+e+":"+n;return ma.has(t)||ma.set(t,$Q({platform:e,readlib:n,updates:[],buildsteps:[]})),ma.get(t)}function $X(n){let e=re.getToolForFilename(re.mainPath),t=Ic(e,re.platform_id),r=Zc(e,re.platform_id);if(!t||!r.length)return Promise.resolve(null);let i=t+":"+n;return ma.has(i)||ma.set(i,(async()=>{var s=[...r.map(l=>l+"/"+n),n];for(var o of s){var a=await $Q({preload_fs:t,readshared:o,updates:[],buildsteps:[]});if(a!=null)return a}return null})()),ma.get(i)}async function QX(n){var e;return(e=await kX(n))!=null?e:$X(n)}var hs=class{constructor(e){this.fn=e;this.languageCompartment=new Vt}getSelectionText(){return zb(this.view)}createDiv(e){var t=document.createElement("div");t.setAttribute("class","editor"),e.appendChild(t);var r=yQ(this.fn||this.currentPath||"")||xb();return this.view=new F({parent:t,extensions:[Zd(),Id(),Me.allowMultipleSelections.of(!0),Ld(),Dd(),Lh(),qg({top:!0}),Sn.of(SQ),this.languageCompartment.of(r),Kh,Pb,Me.readOnly.of(!0)]}),this.refresh(!1),t}setVisible(e){e&&this.refresh(!1)}setHeaderText(e){var t=yQ(this.currentPath||this.fn||"")||xb();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 r=window.location.hash;if(!r||!r.startsWith("#headerview/"))return;t=this.fn=decodeURIComponent(r.substring(12))}this.loadIncludeFile(t)}async loadIncludeFile(e){this.requestedFn=e;var t=kQ(e);if(t){this.currentPath=t,this.setHeaderText(re.getFile(t));return}var r=await QX(e);if(this.requestedFn===e){if(r!=null){this.currentPath=e,this.setHeaderText(r);return}this.currentPath=e,this.setHeaderText("// "+e+` was not found.
`,t.className="cm-line",t}},mQ=ye.define(),yX=Xe.define({create(){return J.none},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(mQ)){if(t.value===null||!t.value)return J.none;let r=e.state.doc.lineAt(t.value.range.to);return J.set([J.widget({widget:new Lb(t.value.val),block:!0,side:1}).range(r.to)])}return n},provide:n=>F.decorations.from(n)}),gQ=ye.define(),SX=J.mark({attributes:{class:"cm-error-span"}}),vX=Xe.define({create(){return J.none},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(gQ)){if(t.value===null)return J.none;let r=[];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&&r.push(SX.range(o,a))}catch(s){}return J.set(r,!0)}return n},provide:n=>F.decorations.from(n)}),OQ=ye.define(),wX=J.line({attributes:{class:"highlight-lines"}}),xX=Xe.define({create(){return J.none},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(OQ)){if(t.value===null)return J.none;let{start:r,end:i}=t.value,s=[];for(let o=r;o<=i;o++)try{let a=e.state.doc.line(o);s.push(wX.range(a.from))}catch(a){}return J.set(s)}return n!==J.none&&(e.docChanged||e.selection)?J.none:n},provide:n=>F.decorations.from(n)}),bQ={field:bX,widget:ql},Gl={effect:fQ,decoration:pQ,field:OX},lu={effect:mQ,field:yX},cu={effect:gQ,field:vX},du={effect:OQ,field:xX},yQ=ye.define(),SQ=[];for(let n=0;n<4;n++)SQ.push(J.line({attributes:{class:`cm-traced-line cm-traced-line-h${n}`}}));var PX=Xe.define({create(){return J.none},update(n,e){n=n.map(e.changes);for(let t of e.effects)if(t.is(yQ)){let r=[];for(let{line:i,level:s}of t.value)try{let o=e.state.doc.line(i),a=SQ[Math.max(0,Math.min(3,s|0))];r.push(a.range(o.from))}catch(o){}return J.set(r,!0)}return n},provide:n=>F.decorations.from(n)}),hu={effect:yQ,field:PX};var kX=[...Rf(t1,Ef),{key:"Mod-Shift-Backspace",run:Qg}],wQ=Rf(aP,Ef),ga=64,xQ=ye.define(),PQ=ye.define(),Db=Xe.define({create(){return new Map},update(n,e){let t=n;for(let r of e.effects)if(r.is(PQ))t=new Map;else if(r.is(xQ)){t===n&&(t=new Map(n));for(let i of r.value)t.set(i.id,{from:i.from,to:i.to})}if(!e.changes.empty){let r=new Map;for(let[i,s]of t)r.set(i,{from:e.changes.mapPos(s.from,-1),to:e.changes.mapPos(s.to,1)});return r}return t}}),$X=200,Zb={default:{theme:Kh},6502:{isAsm:!0},z80:{isAsm:!0},jsasm:{isAsm:!0},gas:{isAsm:!0},vasm:{isAsm:!0},inform6:{theme:Hh},dialog:{theme:Hh,lineWrap:!0},markdown:{lineWrap:!0},fastbasic:{noGutters:!0},basic:{noGutters:!0,lineBased:!0},ecs:{theme:Kh}},kQ={input:null};function $Q(n){kQ.input=n?e=>e.toUpperCase():null}function zb(n){if(!n)return"";let e=n.state.selection.main;return e.empty?"":n.state.sliceDoc(e.from,e.to)}var Hl=class Hl{constructor(e,t){this.updateTimer=null;this.indentUnitCompartment=new Vt;this.isAsm=!1;this.dirtylisting=!0;this.refreshDelayMsec=300;this.probe=null;this.tracedLineCounts=new Map;this.path=e,this.mode=t}createDiv(e){var t=document.createElement("div");t.setAttribute("class","editor"),e.appendChild(t);var r=re.getFile(this.path),i=r&&this.mode=="verilog"&&/__asm\b([\s\S]+?)\b__endasm\b/.test(r);return this.newEditor(t,r,i),this.editor.dispatch({effects:q$(kQ)}),this.syncBreakpoints(),re.getToolForFilename(this.path).startsWith("remote:")&&(this.refreshDelayMsec=1e3),t}setVisible(e){e?(this.editor.focus(),Hl.tracingEnabled&&this.startTracing()):this.stopTracing()}getShortcuts(){if(!this.editor)return[];var e=this.editor,t=(r,i,s)=>({key:r,label:i,fn:()=>{s(e),e.focus()}});return[t("mod+f","Find",Dh),t("mod+g","Find Next",la),t("mod+d","Next Occurrence",Ug),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(),this.tracedLineCounts.clear())}stopTracing(){this.probe&&(P.stopProbing(),this.probe=null),this.tracedLineCounts.clear(),this.editor.dispatch({effects:hu.effect.of([])})}setTracingEnabled(e){Hl.tracingEnabled=e,e?this.startTracing():this.stopTracing()}newEditor(e,t,r){var i=Zb[this.mode]||Zb.default,s=r||i.isAsm,o=!!i.lineWrap,a=i.theme||Zb.default.theme,l=i.useLineNumbers&&!ds;he.embed&&(l=!1,s=!1),this.isAsm=s;let c=i.noGutters||ds;var d;let h=wb[this.mode];h?d=h.language:(console.warn("Unknown mode: "+this.mode),d=null),this.editor=new F({parent:e,doc:t,extensions:[this.indentUnitCompartment.of(this.indentUnitFor(t)),s?lg.of((u,f)=>{let m=u.state.doc.lineAt(f).number;if(m>=0){let O=u.state.doc.line(m);if(O.text.trim())return u.lineIndent(O.from)}return 0}):[],...s?[Sn.of(c1(()=>na().tabsToSpaces))]:[],i.lineBased?Sn.of(r1):[],...f1(na()),Sn.of(kX),l?Xd():[],Px(),Sn.of(Qx),Bw(),Jv(),Me.allowMultipleSelections.of(!0),Ld(),Xw(),Uw(),Zd(),Id(),Dd(),lw(),Lh(),qg({top:!0}),Sn.of(wQ),d||[],a,Pb,o?F.lineWrapping:[],Gl.field,c?[]:[su.field,su.gutter],s&&!c?[Ul.field,Ul.gutter,ou.field,ou.gutter]:[],au.field,dQ.gutter,F.updateListener.of(u=>{for(let f of u.transactions.flatMap(m=>m.effects))if(f.is(au.requestToggle)&&Yt.toggleSourceLine(this.path,f.value), Line truncated
`).length-1;this.editor.dispatch({changes:{from:i,insert:e}}),this.highlightLines(r-1,r+s-2)}highlightLines(e,t){let r=this.editor.state.doc.line(e+1);this.editor.dispatch({effects:[du.effect.of({start:e+1,end:t+1}),F.scrollIntoView(r.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:[du.effect.of({start:e,end:e}),F.scrollIntoView(t.from,{y:"center"})]}),this.editor.focus()}getValue(){return this.editor.state.doc.toString()}getSelectionText(){return zb(this.editor)}getPath(){return this.path}markErrors(e){this.clearErrors(),e=e.slice(0,$X);let t=new Map,r=[];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),i.severity==="warning"&&t.has(o)||t.set(o,{msg:i.msg,warning:i.severity==="warning"}),i.start!=null&&i.end!=null&&i.end>i.start&&r.push({line:o,start:i.start,end:i.end})}this.editor.dispatch({effects:[lo.set.of(t),cu.effect.of(r.length>0?r:null)]})}clearErrors(){this.dirtylisting=!0,this.editor.dispatch({effects:[lo.set.of(new Map),lo.showMessage.of(null),cu.effect.of(null)]})}getSourceFile(){return this.sourcefile}updateListing(){this.clearErrors();var e=this.sourcefile.lines||[];let t=new Map,r=new Map,i=new Map;for(var s of e)if(s.offset>=0&&t.set(s.line,_e(s.offset&65535,4)),s.insns){var o=s.insns.length>9?"...":s.insns;if(r.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:[su.set.of(t),Ul.set.of(r),ou.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 r=l&&l.minclocks,i=l&&l.maxclocks;if(r>=0&&i>=0){var s;i==r?s=r+"":s=r+"-"+i,i==e.MAX_CLOCKS&&(s+="+"),t.set(o,s)}}this.editor.dispatch({effects:[Ul.set.of(t)]})}}setCurrentLine(e,t){var r=i=>{this.editor.dispatch({effects:[pa.set.of(i.line),Gl.effect.of(t?i.line:null),...t?[F.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(r(e),t){let s=this.editor.state.doc.line(e.line).from+(e.start||0);this.editor.dispatch({selection:{anchor:s,head:s},effects:F.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:[pa.set.of(null),Gl.effect.of(null)]})}getActiveLine(){if(this.sourcefile){var e=en&&en.c;if(!e&&P.getCPUState&&!P.isRunning()&&(e=P.getCPUState()),e){var t=e&&(e.EPC||e.PC),r=this.sourcefile.findLineForOffset(t,ga);return r}}}refreshDebugState(e){var t=this.getActiveLine();!e&&(t===this.currentDebugLine||!t&&!this.currentDebugLine)||this.setCurrentLine(t,e)}refreshListing(){var e=re.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 r=0;r<e.idx;r++){let i=e.buf[r];if((i&4278190080)===16777216){let s=this.sourcefile.findLineForOffset(i&65535,ga);s&&(this.tracedLineCounts.set(s.line,(this.tracedLineCounts.get(s.line)||0)+1),t.add(s.line))}}e.clear(),this.editor.dispatch({effects:hu.effect.of(hQ(this.tracedLineCounts,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:au.setAll.of(e)})}};Hl.tracingEnabled=!1;var un=Hl,Ib=1024,Ri=class{getSelectionText(){return zb(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 F({parent:e,extensions:[Zd(),Id(),Me.allowMultipleSelections.of(!0),Ld(),Dd(),Lh(),W$,Hh,Gl.field,Me.tabSize.of(8),Me.readOnly.of(!0)]})}refresh(e,t){let r=en||P.saveState(),i=t!==void 0?t:r.c?r.c.PC:0,s=0,o=0,a=P.debugSymbols&&P.debugSymbols.addr2symbol||{},l=(h,u)=>{let f="",m=0;for(;m<u;){let O=h+m|0,S=P.disassemble(O,P.readAddress.bind(P)),x="",D="";for(let k=0;k<S.nbytes;k++)x+=_e(P.r Line truncated
`;f+=Z,O==i&&(o=s),s++,m+=S.nbytes||1}return f};var c=i<0?i-Ib:Math.max(0,i-Ib);let d=l(c,i-c)+l(i,Ib);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:F.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=_e(e,4),r=this.disasmview.state.doc;for(let i=1;i<=r.lines;i++){let s=r.line(i);if(s.text.startsWith(t+" "))return this.disasmview.dispatch({selection:{anchor:s.from,head:s.from+t.length},effects:F.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}},uu=class extends Ri{constructor(e){super(),this.path=e}refreshListing(){var e=re.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 r=en||P.saveState(),i=r.c?r.c.EPC||r.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:F.scrollIntoView(o.from,{y:"center"})})}}}}}goToAddress(e){this.refreshListing();let t=this.assemblyfile&&this.assemblyfile.findLineForOffset(e,ga);if(t){let r=this.disasmview.state.doc.line(t.line);this.disasmview.dispatch({selection:{anchor:r.from,head:r.from},effects:F.scrollIntoView(r.from,{y:"center"})})}this.disasmview.focus()}};function QQ(n){let e=[n];try{var t=Da(re.mainPath);t.length>0&&t!="local"&&e.push(t+"/"+n)}catch(s){}for(var r of e){var i=re&&re.getFile(r);if(typeof i=="string")return r}return null}function vQ(n){for(var e of Cy(n))if(e.editorStyle){var t=z$(e.editorStyle);if(t)return t}return null}var ma=new Map;async function TQ(n){var e=await re.queryWorker(n),t=e&&e.output;return t instanceof Uint8Array&&t.length>0?new TextDecoder().decode(t):null}function QX(n){let e=re.platform_id,t="lib:"+e+":"+n;return ma.has(t)||ma.set(t,TQ({platform:e,readlib:n,updates:[],buildsteps:[]})),ma.get(t)}function TX(n){let e=re.getToolForFilename(re.mainPath),t=Ic(e,re.platform_id),r=Zc(e,re.platform_id);if(!t||!r.length)return Promise.resolve(null);let i=t+":"+n;return ma.has(i)||ma.set(i,(async()=>{var s=[...r.map(l=>l+"/"+n),n];for(var o of s){var a=await TQ({preload_fs:t,readshared:o,updates:[],buildsteps:[]});if(a!=null)return a}return null})()),ma.get(i)}async function AX(n){var e;return(e=await QX(n))!=null?e:TX(n)}var hs=class{constructor(e){this.fn=e;this.languageCompartment=new Vt}getSelectionText(){return zb(this.view)}createDiv(e){var t=document.createElement("div");t.setAttribute("class","editor"),e.appendChild(t);var r=vQ(this.fn||this.currentPath||"")||xb();return this.view=new F({parent:t,extensions:[Zd(),Id(),Me.allowMultipleSelections.of(!0),Ld(),Dd(),Lh(),qg({top:!0}),Sn.of(wQ),this.languageCompartment.of(r),Kh,Pb,Me.readOnly.of(!0)]}),this.refresh(!1),t}setVisible(e){e&&this.refresh(!1)}setHeaderText(e){var t=vQ(this.currentPath||this.fn||"")||xb();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 r=window.location.hash;if(!r||!r.startsWith("#headerview/"))return;t=this.fn=decodeURIComponent(r.substring(12))}this.loadIncludeFile(t)}async loadIncludeFile(e){this.requestedFn=e;var t=QQ(e);if(t){this.currentPath=t,this.setHeaderText(re.getFile(t));return}var r=await AX(e);if(this.requestedFn===e){if(r!=null){this.currentPath=e,this.setHeaderText(r);return}this.currentPath=e,this.setHeaderText("// "+e+` was not found.
// Project include files are loaded during a build -- try building first.
// Library and toolchain headers are only available when the platform or tool bundles them.`)}}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:[F.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,r){this.getLineAt=r,this.memorylist=new Nn({w:$(e).width(),h:$(e).height(),itemHeight:Wb(),totalRows:t,generatorFn:i=>{var s=r(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)}setRowCount(e){if(!(!this.memorylist||this.memorylist.totalRows===e)){this.memorylist.totalRows=e;var t=this.memorylist.container.firstChild;t&&(t.style.height=e*this.memorylist.itemHeight+"px")}}refresh(){this.memorylist&&$(this.maindiv).find("[data-index]").each((e,t)=>{var r=t,i=parseInt(r.getAttribute("data-index")),s=r.innerText,o=this.getLineAt(i),a=o.text;if(s!=a&&(r.innerText=a,o.clas!=null&&!r.classList.contains(o.clas))){var l=Array.from(r.classList);l.forEach(c=>r.classList.remove(c)),r.classList.add("vrow"),r.classList.add(o.clas)}})}};function Wb(){return $("#dropdownMenuButton").first().height()}function TX(n){return n.start+Math.max(1,n.size||0)}function AX(n,e){n.sort((s,o)=>s.start-o.start||o.end-s.end);let t=[],r=[],i=[];for(let s of n){let o=t.findIndex(a=>a<=s.start);if(o<0&&t.length<e&&(o=t.length),o<0){let a=r[e-1];(a.hidden=a.hidden||[]).push(s);continue}t[o]=s.end,r[o]=s,s.lane=o,i.push(s)}return i}function fu(n,e,t,r){t=AX(t,r);let i=Math.max(1,...t.map(s=>s.lane+1));return{id:n,title:e,lanes:i,blocks:t}}function QQ(n,e,t,r){let i=n.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:r,lane:0}),o=Math.max(o,a.end);return n.concat(s)}function TQ(n){return{name:n.name,start:n.start,end:TX(n),type:n.type,lane:0}}function CX(n){return n.startsWith("__")||/^[sl]__/.test(n)||n.startsWith(".")}function _X(n,e,t,r){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(!n||!o.length)return[];let a=f=>r==null?void 0:r[f],l=new Map;for(let[f,m]of Object.entries(n)){if(typeof m!="number"||CX(f))continue;let O=l.get(m);(O==null||!a(O)&&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],O=null;for(let k of o)m>=k.start&&m<k.start+k.size&&(!O||k.size<O.size)&&(O=k);if(!O)continue;let S=l.get(m),x=a(S);if(x!=null){x>=i&&d.push({name:S,start:m,end:m+x,type:"var",lane:0});continue}let D=O.start+O.size,M=f+1<c.length?c[f+1]:1/0;if(M>=D&&O.source!="linker")continue;let Z=Math.min(M,D);Z-m>=i&&d.push({name:S,start:m,end:Z,type:"var",lane:0,approx:!0})}return d.sort((f,m)=>m.end-m.start-(f.end-f.start)),d.slice(0,s)}function AQ(n,e=4096,t=1024){if(n.length<2)return null;let r=n[0],i=n[n.length-1];if((i-r)/e>t)return null;let s=n.slice();for(let c=Math.ceil(r/e)*e;c<i;c+=e){let d=0,h=s.length;for(;d<h;){let u=d+h>>1;s[u]<c?d=u+1:h=u}s[d]!==c&&s.splice(d,0,c)}let o=[],a=[],l=0;for(let c=0;c+1<s.length;c++){let d=s[c],h=s[c+1];for(;n[l+1]<=d;)l++;o.push((h-d)/(n[l+1]-n[l])),a.push(l)}return{bounds:s,weights:o,parents:a}}function CQ(n,e,t){let r=0;for(;r<e.length-1&&t>=e[r];)t-=e[r],r++;let i=e[r]>0?Math.max(0,Math.min(1,t/e[r])):0,s=n[r],o=n[r+1];return Math.min(Math.floor(s+(o-s)*i),o-1)}function _Q(n,e,t,r){var u;n=n||[];let i=(u=t==null?void 0:t.maxLanes)!=null?u:2,s=[],o=n.filter(f=>f.source=="native").map(TQ),a=n.filter(f=>f.source!="native").map(TQ);if(o.length&&s.push(fu("native","System",QQ(o,0,"","unmapped"),i)),a.length){let f=Math.min(...a.map(m=>m.start));s.push(fu("linker","Segments",QQ(a,f,"","free"),i))}let l=[];for(let f of n)(f.modules||[]).forEach((m,O)=>l.push({name:m.name,start:m.start,end:m.start+m.size,type:"module"+(O&1),lane:0}));l.length&&s.push(fu("modules","Modules",l,i));let c=l.length?[]:_X(e,n,t,r);c.length&&s.push(fu("vars","Objects",c,i));let d=new Set;for(let f of s)for(let m of f.blocks)d.add(m.start),d.add(m.end);return{bounds:Array.from(d).sort((f,m)=>f-m),columns:s}}function EQ(n,e,t,r,i=65536){let s=[],o=0,a,l=0,c=d=>{let h=1/0;for(let u of t||[])d>=u.start&&d<u.start+u.size&&(h=Math.min(h,u.start+u.size));return h};for(let d of Object.keys(n)){let h=parseInt(d),u=n[h];if(a){let f=r!=null&&r(a)?"":a,m=e==null?void 0:e[a],O=m!=null?l+m:c(l);for(O=Math.min(O,h);o<h&&s.length<i;){let S=o>=l&&o<O,x=o+16&1048560;S?x=Math.min(x,O):o<l&&(x=Math.min(x,l)),x>h&&(x=h),s.push({a:o,l:x-o,s:S?f:""}),o=x}}a=u,l=h}return s}function RQ(n){return n.endsWith("_SIZE__")||n.endsWith("_LAST__")||n.endsWith("STACKSIZE__")||n.endsWith("FILEOFFS__")||n.startsWith("l__")||n.startsWith("s__")||n.startsWith(".__.")}var us=class{constructor(){this. 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",`${r+e.lane} / span ${l}`),s.click(()=>{var d=N.createOrShow("#memory");d.scrollToAddress(e.start)}),this.maindiv.append(s)}refresh(){var D,M;this.maindiv.empty();var e=_Q(re.segments,(D=P.debugSymbols)==null?void 0:D.symbolmap,null,(M=P.debugSymbols)==null?void 0:M.symbolsizes),t=e.bounds;if(t.length){var r=AQ(t),i=r?r.bounds:t,s=["5em"],o=2,a=$('<div class="memmap-header" style="grid-row:1;grid-column:1"/>').text("Address");if(this.maindiv.append(a),r)for(var l=0;l+1<i.length;l++){var c=Math.floor(i[l]/4096)%2;$('<div class="memmap-stripe"/>').addClass(c?"memmap-stripe-odd":"memmap-stripe-even").css("grid-row",`${l+2}`).css("grid-column","1 / -1").appendTo(this.maindiv)}for(var d of e.columns){for(var l=0;l<d.lanes;l++)s.push("minmax(0,1fr)");$('<div class="memmap-header"/>').text(d.title).css("grid-row","1").css("grid-column",`${o} / span ${d.lanes}`).appendTo(this.maindiv);for(var h of d.blocks)this.addBlock(h,d,o,i);o+=d.lanes}for(var u=["auto"],f=[],l=0;l+1<i.length;l++){var m=i[l+1]-i[l],O=Math.max(3,Math.log(m+1))*.5;if(r){var S=r.parents[l],x=t[S+1]-t[S];O=Math.max(3,Math.log(x+1))*.5*r.weights[l]}u.push(O+"em"),f.push(O)}for(var l=0;l+1<t.length;l++)$('<div class="segment-offset"/>').text("$"+_e(t[l],4)).css("grid-row",`${i.indexOf(t[l])+2}`).css("grid-column","1").appendTo(this.maindiv);this.scrubRows={bounds:i,heights:f},this.scrubOverlay=$('<div class="memmap-scrub"/>').css("grid-row","2 / -1").css("grid-column","1").on("mousemove",Z=>this.scrubTo(Z)).on("mouseleave",()=>this.hideScrub()).appendTo(this.maindiv),this.maindiv.css("grid-template-columns",s.join(" ")),this.maindiv.css("grid-template-rows",u.join(" "))}}scrubTo(e){if(!(!this.scrubRows||!this.scrubOverlay)){var t=this.scrubOverlay[0].getBoundingClientRect(),r=this.scrubRows.bounds,i=this.scrubRows.heights,s=0;for(var o of i)s+=o;var a=(e.clientY-t.top)/t.height*s,l=CQ(r,i,a);this.scrubLabel||(this.scrubLabel=$('<div class="memmap-scrub-label"/>').appendTo(document.body)),this.scrubLabel.text("$"+_e(l,4)).css({left:e.clientX+12+"px",top:e.clientY+12+"px"}).show()}}hideScrub(){this.scrubLabel&&this.scrubLabel.hide()}},jr=4278190080,fs=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(r){}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"?"$"+_e(e)+" ("+t+")":"$"+_e(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)return 0;var r=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&jr;switch(d){case 2113929216:r++,i=0;break;case 2130706432:r=0,i=0;break;case 0:i+=l,s+=l;break;case 167772160:case 184549376:this.sp=l;default:e(d,l,i,r,s,c);break}}return s}opToString(e,t,r){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 r=="number"&&(i+=" = $"+_e(r,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}}},Nb=class extends fs{constructor(){super(...arguments);this.recreateOnResize=!0}createCanvas(t,r,i){var s=document.createElement("div"),o=document.createElement("canvas");return o.width=r,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=xc(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.append Line truncated
// Library and toolchain headers are only available when the platform or tool bundles them.`)}}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:[F.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,r){this.getLineAt=r,this.memorylist=new Nn({w:$(e).width(),h:$(e).height(),itemHeight:Wb(),totalRows:t,generatorFn:i=>{var s=r(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)}setRowCount(e){if(!(!this.memorylist||this.memorylist.totalRows===e)){this.memorylist.totalRows=e;var t=this.memorylist.container.firstChild;t&&(t.style.height=e*this.memorylist.itemHeight+"px")}}refresh(){this.memorylist&&$(this.maindiv).find("[data-index]").each((e,t)=>{var r=t,i=parseInt(r.getAttribute("data-index")),s=r.innerText,o=this.getLineAt(i),a=o.text;if(s!=a&&(r.innerText=a,o.clas!=null&&!r.classList.contains(o.clas))){var l=Array.from(r.classList);l.forEach(c=>r.classList.remove(c)),r.classList.add("vrow"),r.classList.add(o.clas)}})}};function Wb(){return $("#dropdownMenuButton").first().height()}function CX(n){return n.start+Math.max(1,n.size||0)}function _X(n,e){n.sort((s,o)=>s.start-o.start||o.end-s.end);let t=[],r=[],i=[];for(let s of n){let o=t.findIndex(a=>a<=s.start);if(o<0&&t.length<e&&(o=t.length),o<0){let a=r[e-1];(a.hidden=a.hidden||[]).push(s);continue}t[o]=s.end,r[o]=s,s.lane=o,i.push(s)}return i}function fu(n,e,t,r){t=_X(t,r);let i=Math.max(1,...t.map(s=>s.lane+1));return{id:n,title:e,lanes:i,blocks:t}}function AQ(n,e,t,r){let i=n.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:r,lane:0}),o=Math.max(o,a.end);return n.concat(s)}function CQ(n){return{name:n.name,start:n.start,end:CX(n),type:n.type,lane:0}}function EX(n){return n.startsWith("__")||/^[sl]__/.test(n)||n.startsWith(".")}function RX(n,e,t,r){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(!n||!o.length)return[];let a=f=>r==null?void 0:r[f],l=new Map;for(let[f,m]of Object.entries(n)){if(typeof m!="number"||EX(f))continue;let O=l.get(m);(O==null||!a(O)&&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],O=null;for(let k of o)m>=k.start&&m<k.start+k.size&&(!O||k.size<O.size)&&(O=k);if(!O)continue;let S=l.get(m),x=a(S);if(x!=null){x>=i&&d.push({name:S,start:m,end:m+x,type:"var",lane:0});continue}let D=O.start+O.size,M=f+1<c.length?c[f+1]:1/0;if(M>=D&&O.source!="linker")continue;let Z=Math.min(M,D);Z-m>=i&&d.push({name:S,start:m,end:Z,type:"var",lane:0,approx:!0})}return d.sort((f,m)=>m.end-m.start-(f.end-f.start)),d.slice(0,s)}function _Q(n,e=4096,t=1024){if(n.length<2)return null;let r=n[0],i=n[n.length-1];if((i-r)/e>t)return null;let s=n.slice();for(let c=Math.ceil(r/e)*e;c<i;c+=e){let d=0,h=s.length;for(;d<h;){let u=d+h>>1;s[u]<c?d=u+1:h=u}s[d]!==c&&s.splice(d,0,c)}let o=[],a=[],l=0;for(let c=0;c+1<s.length;c++){let d=s[c],h=s[c+1];for(;n[l+1]<=d;)l++;o.push((h-d)/(n[l+1]-n[l])),a.push(l)}return{bounds:s,weights:o,parents:a}}function EQ(n,e,t){let r=0;for(;r<e.length-1&&t>=e[r];)t-=e[r],r++;let i=e[r]>0?Math.max(0,Math.min(1,t/e[r])):0,s=n[r],o=n[r+1];return Math.min(Math.floor(s+(o-s)*i),o-1)}function RQ(n,e,t,r){var u;n=n||[];let i=(u=t==null?void 0:t.maxLanes)!=null?u:2,s=[],o=n.filter(f=>f.source=="native").map(CQ),a=n.filter(f=>f.source!="native").map(CQ);if(o.length&&s.push(fu("native","System",AQ(o,0,"","unmapped"),i)),a.length){let f=Math.min(...a.map(m=>m.start));s.push(fu("linker","Segments",AQ(a,f,"","free"),i))}let l=[];for(let f of n)(f.modules||[]).forEach((m,O)=>l.push({name:m.name,start:m.start,end:m.start+m.size,type:"module"+(O&1),lane:0}));l.length&&s.push(fu("modules","Modules",l,i));let c=l.length?[]:RX(e,n,t,r);c.length&&s.push(fu("vars","Objects",c,i));let d=new Set;for(let f of s)for(let m of f.blocks)d.add(m.start),d.add(m.end);return{bounds:Array.from(d).sort((f,m)=>f-m),columns:s}}function MQ(n,e,t,r,i=65536){let s=[],o=0,a,l=0,c=d=>{let h=1/0;for(let u of t||[])d>=u.start&&d<u.start+u.size&&(h=Math.min(h,u.start+u.size));return h};for(let d of Object.keys(n)){let h=parseInt(d),u=n[h];if(a){let f=r!=null&&r(a)?"":a,m=e==null?void 0:e[a],O=m!=null?l+m:c(l);for(O=Math.min(O,h);o<h&&s.length<i;){let S=o>=l&&o<O,x=o+16&1048560;S?x=Math.min(x,O):o<l&&(x=Math.min(x,l)),x>h&&(x=h),s.push({a:o,l:x-o,s:S?f:""}),o=x}}a=u,l=h}return s}function LQ(n){return n.endsWith("_SIZE__")||n.endsWith("_LAST__")||n.endsWith("STACKSIZE__")||n.endsWith("FILEOFFS__")||n.startsWith("l__")||n.startsWith("s__")||n.startsWith(".__.")}var us=class{constructor(){this. 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",`${r+e.lane} / span ${l}`),s.click(()=>{var d=N.createOrShow("#memory");d.scrollToAddress(e.start)}),this.maindiv.append(s)}refresh(){var D,M;this.maindiv.empty();var e=RQ(re.segments,(D=P.debugSymbols)==null?void 0:D.symbolmap,null,(M=P.debugSymbols)==null?void 0:M.symbolsizes),t=e.bounds;if(t.length){var r=_Q(t),i=r?r.bounds:t,s=["5em"],o=2,a=$('<div class="memmap-header" style="grid-row:1;grid-column:1"/>').text("Address");if(this.maindiv.append(a),r)for(var l=0;l+1<i.length;l++){var c=Math.floor(i[l]/4096)%2;$('<div class="memmap-stripe"/>').addClass(c?"memmap-stripe-odd":"memmap-stripe-even").css("grid-row",`${l+2}`).css("grid-column","1 / -1").appendTo(this.maindiv)}for(var d of e.columns){for(var l=0;l<d.lanes;l++)s.push("minmax(0,1fr)");$('<div class="memmap-header"/>').text(d.title).css("grid-row","1").css("grid-column",`${o} / span ${d.lanes}`).appendTo(this.maindiv);for(var h of d.blocks)this.addBlock(h,d,o,i);o+=d.lanes}for(var u=["auto"],f=[],l=0;l+1<i.length;l++){var m=i[l+1]-i[l],O=Math.max(3,Math.log(m+1))*.5;if(r){var S=r.parents[l],x=t[S+1]-t[S];O=Math.max(3,Math.log(x+1))*.5*r.weights[l]}u.push(O+"em"),f.push(O)}for(var l=0;l+1<t.length;l++)$('<div class="segment-offset"/>').text("$"+_e(t[l],4)).css("grid-row",`${i.indexOf(t[l])+2}`).css("grid-column","1").appendTo(this.maindiv);this.scrubRows={bounds:i,heights:f},this.scrubOverlay=$('<div class="memmap-scrub"/>').css("grid-row","2 / -1").css("grid-column","1").on("mousemove",Z=>this.scrubTo(Z)).on("mouseleave",()=>this.hideScrub()).appendTo(this.maindiv),this.maindiv.css("grid-template-columns",s.join(" ")),this.maindiv.css("grid-template-rows",u.join(" "))}}scrubTo(e){if(!(!this.scrubRows||!this.scrubOverlay)){var t=this.scrubOverlay[0].getBoundingClientRect(),r=this.scrubRows.bounds,i=this.scrubRows.heights,s=0;for(var o of i)s+=o;var a=(e.clientY-t.top)/t.height*s,l=EQ(r,i,a);this.scrubLabel||(this.scrubLabel=$('<div class="memmap-scrub-label"/>').appendTo(document.body)),this.scrubLabel.text("$"+_e(l,4)).css({left:e.clientX+12+"px",top:e.clientY+12+"px"}).show()}}hideScrub(){this.scrubLabel&&this.scrubLabel.hide()}},jr=4278190080,fs=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(r){}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"?"$"+_e(e)+" ("+t+")":"$"+_e(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)return 0;var r=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&jr;switch(d){case 2113929216:r++,i=0;break;case 2130706432:r=0,i=0;break;case 0:i+=l,s+=l;break;case 167772160:case 184549376:this.sp=l;default:e(d,l,i,r,s,c);break}}return s}opToString(e,t,r){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 r=="number"&&(i+=" = $"+_e(r,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}}},Nb=class extends fs{constructor(){super(...arguments);this.recreateOnResize=!0}createCanvas(t,r,i){var s=document.createElement("div"),o=document.createElement("canvas");return o.width=r,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=xc(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.append Line truncated
`+s),i+=`
`+this.opToString(l,c,f))}),"X: "+t+" Y: "+r+" "+i}refresh(){this.tick(),this.datau32.fill(jr)}tick(){super.tick(),this.drawImage()}drawImage(){this.ctx.putImageData(this.imageData,0,0)}clear(){this.datau32.fill(jr)}},Ou=class extends gu{createDiv(e){return this.createCanvas(e,256,256)}initCanvas(){super.initCanvas(),this.canvas.onclick=e=>{var t=xc(this.canvas,e),r=Math.floor(t.x)+Math.floor(t.y)*256,i=-1,s=-1;this.redraw((o,a)=>{s<0&&i>=0&&a==r&&(s=i),o==16777216&&(i=a)}),s>=0&&Jl([s])}}clear(){for(var e=0;e<=65535;e++){var t=P.readAddress(e),r=t>>2|t&31;r|=r<<8|r<<16,this.datau32[e]=r|jr}}drawEvent(e,t,r,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|jr,this.datau32[t&65535]=l}}getTooltipText(e,t){var r=(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 O=c|s;d==r&&!o[O]&&(i==""&&a&&(i+=`
`+a),i+=`
PC `+this.addr2str(s)+" "+this.opToString(c,null,m),o[O]=1)}),this.addr2str(r)+i}},Bb=class extends gu{initCanvas(){super.initCanvas(),this.canvas.onclick=e=>{var t=xc(this.canvas,e),r=Math.floor(t.x),i=Math.floor(t.y),s=this.getOpAtPos(t.x,t.y,16777216);s&&(ai("toline"),P.runEval(()=>{let o=P.getRasterScanline&&P.getRasterScanline()>=i;return o&&P.getRasterLineClock?o&&P.getRasterLineClock()>r:o}))}}drawEvent(e,t,r,i){var s=this.getOpRGB(e,t);if(s){var o=r+i*this.canvas.width,a=s|jr;this.datau32[o]|=a}}drawImage(){let e=jr;for(let t=0;t<this.datau32.length;t++)this.datau32[t]==jr?this.datau32[t]=e:e=this.datau32[t];super.drawImage()}},bu=class extends Bb{constructor(){super(...arguments);this.interrupt=0;this.rgb=0;this.lastpc=0}drawEvent(t,r,i,s){var o=i+s*this.canvas.width;if(t==134217728&&(this.interrupt=1),this.interrupt==1&&t==167772160&&(this.interrupt=r),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)-r>16&&(l+=1),Math.abs(this.lastpc)-r>256&&(l+=1),a=this.rgb=526344*l+2105376,this.lastpc=r}this.interrupt&&(a|=8388672),this.datau32[o]==jr&&(this.datau32[o]=a|jr)}}},yu=class extends fs{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 r="",i="seg_data",s=this.lines&&this.lines[t];if(s!=null){var o=s.info.join(", ");r="("+Hr(s.row,4)+", "+Hr(s.col,4)+") "+La(s.asm||"",20)+o,o.indexOf("Write ")>=0&&(i="seg_io")}return{text:r,clas:i}}refresh(){this.tick()}tick(){let t=P instanceof kf||P instanceof Pc;this.dumplines={},this.redraw((r,i,s,o,a,l)=>{t&&(a>>=2);var c=this.dumplines[a];switch(c==null&&(c={op:r,addr:i,row:o,col:s,asm:null,info:[]},this.dumplines[a]=c),r){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(r,i,l);h!=""&&c.info.push(h);break}}),this.lines=L0(this.dumplines),this.vlist.setRowCount(this.lines.length),this.vlist.refresh()}},Su=class extends fs{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 r=Hr(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&jr;if(d==16777216)r+=",";else{var h=_e(c);r+=h,a+=h.length-1}}else r+=a==o?"|":"."}return s[-1]&&(r+=" "+s[-1]),{text:r,clas:i}}refresh(){this.tick()}tick(){let t=P instanceof kf||P instanceof Pc;this.dumplines={},this.redraw((r,i,s,o,a,l)=>{var c=this.dumplines[o];switch(c==null&&(this.dumplines[o]=c=[]),r){case 16777216:var d=P.debugSymbols.addr2symbol[i];d&&(c[-1]=d);break;case 335544320:case 352321536:case 369098752:case 385875968:c[s]=r|i;break}}),this.vlist.refresh()}},vu=class extends fs{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(r=>!RQ(r))):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:Hr("Symbol",35)+Hr("Reads",8)+Hr("Writes",8)};var r=this.keys[t-1],i=this.dumplines&&this.dumplines[r];function s(l){var c=i[l]|0;return Hr(c?c.toString():"",8)}var o,a;return i!=null?(o=Hr(r,35)+s(301989888)+s(318767104),i[16777216]?a="seg_code":i[335544320]||i[352321536]?a="seg_io":a="seg_data"):(o=Hr(r,35),a="seg_unknown"),{text:o,clas:a}}refresh(){this.tick()}tick(){this.dumplines={},this.redraw((t,r,i,s,o,a)=>{var l=P.debugSymbols.addr2symbol[r];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()}},wu=class{constructor(){this.editingId=null}createDiv(e){return this.maindiv=xr(e,"vertical-scroll bp-view"),this.render(),this.maindiv[0]}refresh(e){this.render()}render(){let e=this.maindiv.empty(),t=jl(),r=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(r&&r.bp.type=="address"?r.bp.target:""),o=$('<input type="text" class="bp-input" spellcheck="false"/>').attr("placeholder","condition (e.g. A>=$20, #scanline==222)").val(r&&r.bp.condition||""),a=$('<button class="btn btn-default btn-xs bp-submit"/>').text(r?"Save":"Add"),l=$('<button cla Line truncated
`)<0&&e.indexOf("\r")<0)return e.trim()}return""}function DX(n){var t;let e=n.record;if(e.source==="project"){let r=e.file;if(!r||!N.isWindow(r))return;let i=N.createOrShow(r);i instanceof un&&e.line&&i.navigateToLine(e.line)}else if(e.source==="toolchain"){let r=e.file;if(!r)return;Kl(r);let i=N.createOrShow("#headerview/"+r);i instanceof hs&&e.line&&i.navigateToLine(e.line)}else if(e.source==="debugger"){let r=(t=e.addr)!=null?t:-1;if(r<0)return;if(e.kind==="label"&&N.isWindow("#disasm")){let i=N.createOrShow("#disasm");i instanceof Ri&&i.goToAddress(r)}else{let i=N.createOrShow("#memory");i instanceof us&&i.goToAddress(r)}}else if(e.source==="docs"){let r=e.url||"";r.startsWith("#help/")?N.createOrShow(r):r&&window.open(r,"_blank")}}function Vb(){bootbox.dialog({title:"Search",onEscape:!0,message:`
PC `+this.addr2str(s)+" "+this.opToString(c,null,m),o[O]=1)}),this.addr2str(r)+i}},Bb=class extends gu{initCanvas(){super.initCanvas(),this.canvas.onclick=e=>{var t=xc(this.canvas,e),r=Math.floor(t.x),i=Math.floor(t.y),s=this.getOpAtPos(t.x,t.y,16777216);s&&(ai("toline"),P.runEval(()=>{let o=P.getRasterScanline&&P.getRasterScanline()>=i;return o&&P.getRasterLineClock?o&&P.getRasterLineClock()>r:o}))}}drawEvent(e,t,r,i){var s=this.getOpRGB(e,t);if(s){var o=r+i*this.canvas.width,a=s|jr;this.datau32[o]|=a}}drawImage(){let e=jr;for(let t=0;t<this.datau32.length;t++)this.datau32[t]==jr?this.datau32[t]=e:e=this.datau32[t];super.drawImage()}},bu=class extends Bb{constructor(){super(...arguments);this.interrupt=0;this.rgb=0;this.lastpc=0}drawEvent(t,r,i,s){var o=i+s*this.canvas.width;if(t==134217728&&(this.interrupt=1),this.interrupt==1&&t==167772160&&(this.interrupt=r),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)-r>16&&(l+=1),Math.abs(this.lastpc)-r>256&&(l+=1),a=this.rgb=526344*l+2105376,this.lastpc=r}this.interrupt&&(a|=8388672),this.datau32[o]==jr&&(this.datau32[o]=a|jr)}}},yu=class extends fs{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 r="",i="seg_data",s=this.lines&&this.lines[t];if(s!=null){var o=s.info.join(", ");r="("+Hr(s.row,4)+", "+Hr(s.col,4)+") "+La(s.asm||"",20)+o,o.indexOf("Write ")>=0&&(i="seg_io")}return{text:r,clas:i}}refresh(){this.tick()}tick(){let t=P instanceof kf||P instanceof Pc;this.dumplines={},this.redraw((r,i,s,o,a,l)=>{t&&(a>>=2);var c=this.dumplines[a];switch(c==null&&(c={op:r,addr:i,row:o,col:s,asm:null,info:[]},this.dumplines[a]=c),r){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(r,i,l);h!=""&&c.info.push(h);break}}),this.lines=Z0(this.dumplines),this.vlist.setRowCount(this.lines.length),this.vlist.refresh()}},Su=class extends fs{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 r=Hr(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&jr;if(d==16777216)r+=",";else{var h=_e(c);r+=h,a+=h.length-1}}else r+=a==o?"|":"."}return s[-1]&&(r+=" "+s[-1]),{text:r,clas:i}}refresh(){this.tick()}tick(){let t=P instanceof kf||P instanceof Pc;this.dumplines={},this.redraw((r,i,s,o,a,l)=>{var c=this.dumplines[o];switch(c==null&&(this.dumplines[o]=c=[]),r){case 16777216:var d=P.debugSymbols.addr2symbol[i];d&&(c[-1]=d);break;case 335544320:case 352321536:case 369098752:case 385875968:c[s]=r|i;break}}),this.vlist.refresh()}},vu=class extends fs{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(r=>!LQ(r))):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:Hr("Symbol",35)+Hr("Reads",8)+Hr("Writes",8)};var r=this.keys[t-1],i=this.dumplines&&this.dumplines[r];function s(l){var c=i[l]|0;return Hr(c?c.toString():"",8)}var o,a;return i!=null?(o=Hr(r,35)+s(301989888)+s(318767104),i[16777216]?a="seg_code":i[335544320]||i[352321536]?a="seg_io":a="seg_data"):(o=Hr(r,35),a="seg_unknown"),{text:o,clas:a}}refresh(){this.tick()}tick(){this.dumplines={},this.redraw((t,r,i,s,o,a)=>{var l=P.debugSymbols.addr2symbol[r];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()}},wu=class{constructor(){this.editingId=null}createDiv(e){return this.maindiv=xr(e,"vertical-scroll bp-view"),this.render(),this.maindiv[0]}refresh(e){this.render()}render(){let e=this.maindiv.empty(),t=jl(),r=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(r&&r.bp.type=="address"?r.bp.target:""),o=$('<input type="text" class="bp-input" spellcheck="false"/>').attr("placeholder","condition (e.g. A>=$20, #scanline==222)").val(r&&r.bp.condition||""),a=$('<button class="btn btn-default btn-xs bp-submit"/>').text(r?"Save":"Add"),l=$('<button cla Line truncated
`)<0&&e.indexOf("\r")<0)return e.trim()}return""}function IX(n){var t;let e=n.record;if(e.source==="project"){let r=e.file;if(!r||!N.isWindow(r))return;let i=N.createOrShow(r);i instanceof un&&e.line&&i.navigateToLine(e.line)}else if(e.source==="toolchain"){let r=e.file;if(!r)return;Kl(r);let i=N.createOrShow("#headerview/"+r);i instanceof hs&&e.line&&i.navigateToLine(e.line)}else if(e.source==="debugger"){let r=(t=e.addr)!=null?t:-1;if(r<0)return;if(e.kind==="label"&&N.isWindow("#disasm")){let i=N.createOrShow("#disasm");i instanceof Ri&&i.goToAddress(r)}else{let i=N.createOrShow("#memory");i instanceof us&&i.goToAddress(r)}}else if(e.source==="docs"){let r=e.url||"";r.startsWith("#help/")?N.createOrShow(r):r&&window.open(r,"_blank")}}function Vb(){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"),r=[],i=-1,s=d=>{if(i=Math.max(-1,Math.min(d,r.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(),O=f.getBoundingClientRect(),S=O.top-m.top;S<0?h.scrollTop+=S:S+O.height>m.height&&(h.scrollTop+=S+O.height-m.height)}}},o=(d=i)=>{let h=r[d];h&&(DX(h),bootbox.hideAll())},a=d=>{if(r=d||[],r.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 r){let f=u.record,m=f.source,O=f.kind==="func"?"\u0192":f.kind==="macro"?"#":f.kind==="label"?":":f.kind==="struct"?"S":f.kind==="enum"?"E":f.kind==="text"?"\u2261":"\u2022",S=f.source==="debugger"?_e(f.addr,4):f.file&&f.line?`${f.file}:${f.line}`:f.file||"",x=f.kind!=="text",D=$('<li class="list-group-item search-hit" style="cursor:pointer;padding:6px 10px;display:flex;align-items:center;overflow:hidden"></li>');D.html(`<span class="search-kind" style="margin-right:6px;font-weight:bold;flex:0 0 auto">${O}</span><span class="search-name" style="flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">`+(x?`<strong>${Pu(f.name)}</strong>`:`<span class="search-dumb">${Pu(f.name)}</span>`)+(f.brief?` <span class="text-muted">- ${Pu(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">${S?Pu(S):""}</span>`),D.click(()=>{o(r.indexOf(u))}),h.append(D)}t.empty().append(h),s(0)},l=RX(async()=>{let d=e.val();if(!d){r=[],i=-1,t.empty();return}try{let h=await G1.query(d,MX),u=xu(d,P&&P.debugSymbols&&P.debugSymbols.symbolmap);u&&DQ(u,h.length>0)&&h.push(LQ(d,u,re&&re.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(r.length-1))});let c=LX();c&&(e.val(c),l())}var ZX=800,IX=1e3,XX=16;function NQ(n){var e={};return n.forEach(t=>{e[t.name]=(e[t.name]||0)+1}),n.forEach(t=>{e[t.name]>1&&t.group&&(t.name=t.group+": "+t.name)}),n}function ZQ(n){return n.art?n.brev?0:7:null}var ku=/([0#]?)([x$%]|\d'h)([0-9a-f]+)(?:[;].*)?|(\d'b|0b)([01]+)/gim;function tc(n){return n.replace(/(\shex\s+)([0-9a-f]+)/ig,function(e,t,r){for(var i=t,s=0;s<r.length;s+=2)i+="0x"+r.substr(s,2)+",";return i})}function $u(n){for(var e=[],t;t=ku.exec(n);){var r;t[4]?r=parseInt(t[5],2):t[2].startsWith("%")?r=parseInt(t[3],2):t[2].startsWith("x")||t[2].startsWith("$")||t[2].endsWith("h")?r=parseInt(t[3],16):r=parseInt(t[3]),e.push(r)}return e}function zX(n,e,t){n=tc(n);for(var r="",i,s=0,o=0,a=Math.ceil(t/4);i=ku.exec(n);)r+=n.slice(s,ku.lastIndex-i[0].length),s=ku.lastIndex,i[4]?r+=i[4]+bf(e[o++],parseInt(i[4])):i[2].startsWith("%")?r+=i[1]+i[2]+bf(e[o++],t):i[2].endsWith("h")?r+=i[1]+i[2]+_e(e[o++],parseInt(i[2])):i[2].startsWith("x")?r+=i[1]+"x"+_e(e[o++],a):i[2].startsWith("$")?r+=i[1]+"$"+_e(e[o++],a):r+=i[1]+e[o++].toString();return r+=n.slice(s),r=r.replace(/(\shex\s+)([,x0-9a-f]+)/ig,(l,c,d)=>{var h=c+d;return h=h.replace(/0x/ig,"").replace(/,/ig,""),h}),r}function Ub(n,e){if(!e)return n;for(var t=0,r=0;r<e.length;r++){var i=e[r];i<0&&(i=-i-1,t^=1<<i),n&1<<r&&(t^=1<<i)}return t}function qb(n,e){var t=e[n%e.length];return[t>>3,t&7]}var WX=[[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 BX(n,e,t,r,i,s){for(var o=0;o<8;o++)for(var a=n[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+r+c]=d}}function VX(n,e,t,r,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+r+c]||0)&3;d&1&&(a|=1<<l),d&2&&(a|=1<<l+4)}n[e+o]=a}}function Gb(n){return n.w===16&&n.h===16?NX:WX}function BQ(n){return Gb(n).length*8}function FX(n,e){for(var t=e.w,r=e.h,i=e.count||1,s=e.wpimg||BQ(e),o=Gb(e),a=[],l=0;l<i;l++){for(var c=new Array(t*r).fill(0),d=l*s,h=0;h<o.length;h++){var[u,f,m]=o[h];BX(n,d+u,c,f,m,t)}a.push(new Uint8Array(c))}return a}function YX(n,e){for(var t=e.w,r=e.h,i=e.count||n.length,s=e.wpimg||BQ(e),o=Gb(e),a=new Array(s*i).fill(0),l=0;l<i;l++)for(var c=n[l]||new Uint8Array(t*r),d=l*s,h=0;h<o.length;h++){var[u,f,m]=o[h];VX(a,d+u,c,f,m,t)}return a}function jX(n,e){if(e.pacstrip)return FX(n,e);var t=e.w,r=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*r*i,h=e.skip||0,u=e.wpimg||l*r,f=l;e.il&&(u=l,f=l*i);for(var m=[],O=0;O<i;O++){for(var S=[],x=0;x<r;x++)for(var D=e.flip?r-1-x:x,M=u*O+D*f,Z=0,k=0;k<t;k++){var w=0,R=Ub(M,e.remap);Line truncated
`&&t++;return t}function UQ(n,e){for(var t=/[/;][*;]([{].+[}])[*;][/;]/g,r=[],i;i=t.exec(n);){var s=i.index+i[0].length,o;e?o=n.indexOf("end",s):i[0].startsWith(";;")?(o=n.indexOf(";;",s),o==n.indexOf(";;{",s)&&(o=-1)):o=n.indexOf(";",s);var a=IQ(n,i.index),l=i[0],c=o>=0?IQ(n,o):"???";if(o<0){var d=e?'"end"':i[0].startsWith(";;")?'";;"':'";"';r.push({header:l,startline:a,endline:c,error:`No closing ${d} found after asset header`})}else if(o<=s)r.push({header:l,startline:a,endline:c,error:"Empty data block after asset header"});else try{var h=i[1].replace(/([A-Za-z_]\w*):/g,'"$1":'),u=JSON.parse(h),f=/#embed\s+"(.+?)"/.exec(n.substring(s,o)),m=f?f[1]:void 0;r.push({header:l,startline:a,endline:c,fmt:u,start:s,end:o,embedFile:m})}catch(O){r.push({header:l,startline:a,endline:c,error:`Invalid asset format: ${O.message}`})}}return r}function qQ(n,e,t){if(t(e))return e;var r=n.lastIndexOf("/");if(r>=0){var i=n.substring(0,r+1)+e;if(t(i))return i}return null}function UX(n,e){if(e.destfmt&&(e=e.destfmt),e.pacstrip)return YX(n,e);var t=e.w,r=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*r*i,h=e.skip||0,u=e.wpimg||l*r,f=l;e.il&&(u=l,f=l*i);var m=e.il?f*r:u*i,O;o>0&&e.sl?O=new Uint8Array(m):a<=8?O=new Uint8Array(m*o):O=new Uint32Array(m*o);for(var S=0;S<i;S++)for(var x=n[S],D=0,M=0;M<r;M++)for(var Z=e.flip?r-1-M:M,k=S*u+Z*f,w=0,R=0;R<t;R++){var X=x[D++],W=Ub(k,e.remap);e.reindex&&([W,w]=qb(R,e.reindex),W+=k);for(var ne=0;ne<o;ne++){var de=X>>ne*s&c;O[W+ne*d+h]|=e.brev?de<<a-w-s:de<<w}w+=s,w>=a&&!e.reindex&&(k+=1,w=0)}return O}function XQ(n,e,t,r,i,s,o){for(var a=[],l=0;l<n.length;l++){var c=n[l],d=4278190080;d|=(c>>e&(1<<t)-1)<<8-t,d|=(c>>r&(1<<i)-1)<<16-i,d|=(c>>s&(1<<o)-1)<<24-o,a.push(d)}return a}function qX(n){var e=(n>>0&1)*33+(n>>1&1)*71+(n>>2&1)*151,t=(n>>3&1)*33+(n>>4&1)*71+(n>>5&1)*151,r=(n>>6&1)*81+(n>>7&1)*174;return 4278190080|r<<16|t<<8|e}function GX(n){var e=n.pal;if(typeof e=="number"){var t=Math.floor(Math.abs(e/100)%10),r=Math.floor(Math.abs(e/10)%10),i=Math.floor(Math.abs(e)%10);return 1<<t+r+i}else{if(e==="pacman")return 256;var s=Tu[e];if(s)return s.length;throw new Error("No palette named "+e)}}function Qu(n,e){var t=e.pal,r;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?r=XQ(n,0,i,i,s,i+s,o):r=XQ(n,i+s,o,i,s,0,i)}else if(t==="pacman"){r=[];for(var a=0;a<n.length;a++)r.push(qX(n[a]))}else{var l=Tu[t];if(l)r=new Uint32Array(n).map(c=>l[c&l.length-1]|4278190080);else throw new Error("No palette named "+t)}return r}function rc(n){var e=n.pal;if(typeof e!="number"||!isFinite(e))return null;var t=Math.floor(Math.abs(e/100)%10),r=Math.floor(Math.abs(e/10)%10),i=Math.floor(Math.abs(e)%10);return t+r+i<=0?null:e>=0?{r:t,g:r,b:i,rshift:0,gshift:t,bshift:t+r}:{r:i,g:r,b:t,rshift:t+r,gshift:t,bshift:0}}function zQ(n,e,t,r){var i=rc(n);return i?(e&(1<<i.r)-1)<<i.rshift|(t&(1<<i.g)-1)<<i.gshift|(r&(1<<i.b)-1)<<i.bshift:0}function HX(n,e){var t=rc(n);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 Tu={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,1340426 Line truncated
`,buttons:{close:{label:"Close",className:"btn-default"}}}).one("shown.bs.modal",()=>{$("#searchboxInput").trigger("focus")});let e=$("#searchboxInput"),t=$("#searchboxResults"),r=[],i=-1,s=d=>{if(i=Math.max(-1,Math.min(d,r.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(),O=f.getBoundingClientRect(),S=O.top-m.top;S<0?h.scrollTop+=S:S+O.height>m.height&&(h.scrollTop+=S+O.height-m.height)}}},o=(d=i)=>{let h=r[d];h&&(IX(h),bootbox.hideAll())},a=d=>{if(r=d||[],r.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 r){let f=u.record,m=f.source,O=f.kind==="func"?"\u0192":f.kind==="macro"?"#":f.kind==="label"?":":f.kind==="struct"?"S":f.kind==="enum"?"E":f.kind==="text"?"\u2261":"\u2022",S=f.source==="debugger"?_e(f.addr,4):f.file&&f.line?`${f.file}:${f.line}`:f.file||"",x=f.kind!=="text",D=$('<li class="list-group-item search-hit" style="cursor:pointer;padding:6px 10px;display:flex;align-items:center;overflow:hidden"></li>');D.html(`<span class="search-kind" style="margin-right:6px;font-weight:bold;flex:0 0 auto">${O}</span><span class="search-name" style="flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">`+(x?`<strong>${Pu(f.name)}</strong>`:`<span class="search-dumb">${Pu(f.name)}</span>`)+(f.brief?` <span class="text-muted">- ${Pu(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">${S?Pu(S):""}</span>`),D.click(()=>{o(r.indexOf(u))}),h.append(D)}t.empty().append(h),s(0)},l=LX(async()=>{let d=e.val();if(!d){r=[],i=-1,t.empty();return}try{let h=await K1.query(d,DX),u=xu(d,P&&P.debugSymbols&&P.debugSymbols.symbolmap);u&&IQ(u,h.length>0)&&h.push(ZQ(d,u,re&&re.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(r.length-1))});let c=ZX();c&&(e.val(c),l())}var XX=800,zX=1e3,WX=16;function VQ(n){var e={};return n.forEach(t=>{e[t.name]=(e[t.name]||0)+1}),n.forEach(t=>{e[t.name]>1&&t.group&&(t.name=t.group+": "+t.name)}),n}function XQ(n){return n.art?n.brev?0:7:null}var ku=/([0#]?)([x$%]|\d'h)([0-9a-f]+)(?:[;].*)?|(\d'b|0b)([01]+)/gim;function tc(n){return n.replace(/(\shex\s+)([0-9a-f]+)/ig,function(e,t,r){for(var i=t,s=0;s<r.length;s+=2)i+="0x"+r.substr(s,2)+",";return i})}function $u(n){for(var e=[],t;t=ku.exec(n);){var r;t[4]?r=parseInt(t[5],2):t[2].startsWith("%")?r=parseInt(t[3],2):t[2].startsWith("x")||t[2].startsWith("$")||t[2].endsWith("h")?r=parseInt(t[3],16):r=parseInt(t[3]),e.push(r)}return e}function NX(n,e,t){n=tc(n);for(var r="",i,s=0,o=0,a=Math.ceil(t/4);i=ku.exec(n);)r+=n.slice(s,ku.lastIndex-i[0].length),s=ku.lastIndex,i[4]?r+=i[4]+bf(e[o++],parseInt(i[4])):i[2].startsWith("%")?r+=i[1]+i[2]+bf(e[o++],t):i[2].endsWith("h")?r+=i[1]+i[2]+_e(e[o++],parseInt(i[2])):i[2].startsWith("x")?r+=i[1]+"x"+_e(e[o++],a):i[2].startsWith("$")?r+=i[1]+"$"+_e(e[o++],a):r+=i[1]+e[o++].toString();return r+=n.slice(s),r=r.replace(/(\shex\s+)([,x0-9a-f]+)/ig,(l,c,d)=>{var h=c+d;return h=h.replace(/0x/ig,"").replace(/,/ig,""),h}),r}function Ub(n,e){if(!e)return n;for(var t=0,r=0;r<e.length;r++){var i=e[r];i<0&&(i=-i-1,t^=1<<i),n&1<<r&&(t^=1<<i)}return t}function qb(n,e){var t=e[n%e.length];return[t>>3,t&7]}var BX=[[0,0,4],[8,0,0]],VX=[[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 FX(n,e,t,r,i,s){for(var o=0;o<8;o++)for(var a=n[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+r+c]=d}}function YX(n,e,t,r,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+r+c]||0)&3;d&1&&(a|=1<<l),d&2&&(a|=1<<l+4)}n[e+o]=a}}function Gb(n){return n.w===16&&n.h===16?VX:BX}function FQ(n){return Gb(n).length*8}function jX(n,e){for(var t=e.w,r=e.h,i=e.count||1,s=e.wpimg||FQ(e),o=Gb(e),a=[],l=0;l<i;l++){for(var c=new Array(t*r).fill(0),d=l*s,h=0;h<o.length;h++){var[u,f,m]=o[h];FX(n,d+u,c,f,m,t)}a.push(new Uint8Array(c))}return a}function UX(n,e){for(var t=e.w,r=e.h,i=e.count||n.length,s=e.wpimg||FQ(e),o=Gb(e),a=new Array(s*i).fill(0),l=0;l<i;l++)for(var c=n[l]||new Uint8Array(t*r),d=l*s,h=0;h<o.length;h++){var[u,f,m]=o[h];YX(a,d+u,c,f,m,t)}return a}function qX(n,e){if(e.pacstrip)return jX(n,e);var t=e.w,r=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*r*i,h=e.skip||0,u=e.wpimg||l*r,f=l;e.il&&(u=l,f=l*i);for(var m=[],O=0;O<i;O++){for(var S=[],x=0;x<r;x++)for(var D=e.flip?r-1-x:x,M=u*O+D*f,Z=0,k=0;k<t;k++){var w=0,R=Ub(M,e.remap);Line truncated
`&&t++;return t}function GQ(n,e){for(var t=/[/;][*;]([{].+[}])[*;][/;]/g,r=[],i;i=t.exec(n);){var s=i.index+i[0].length,o;e?o=n.indexOf("end",s):i[0].startsWith(";;")?(o=n.indexOf(";;",s),o==n.indexOf(";;{",s)&&(o=-1)):o=n.indexOf(";",s);var a=zQ(n,i.index),l=i[0],c=o>=0?zQ(n,o):"???";if(o<0){var d=e?'"end"':i[0].startsWith(";;")?'";;"':'";"';r.push({header:l,startline:a,endline:c,error:`No closing ${d} found after asset header`})}else if(o<=s)r.push({header:l,startline:a,endline:c,error:"Empty data block after asset header"});else try{var h=i[1].replace(/([A-Za-z_]\w*):/g,'"$1":'),u=JSON.parse(h),f=/#embed\s+"(.+?)"/.exec(n.substring(s,o)),m=f?f[1]:void 0;r.push({header:l,startline:a,endline:c,fmt:u,start:s,end:o,embedFile:m})}catch(O){r.push({header:l,startline:a,endline:c,error:`Invalid asset format: ${O.message}`})}}return r}function HQ(n,e,t){if(t(e))return e;var r=n.lastIndexOf("/");if(r>=0){var i=n.substring(0,r+1)+e;if(t(i))return i}return null}function GX(n,e){if(e.destfmt&&(e=e.destfmt),e.pacstrip)return UX(n,e);var t=e.w,r=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*r*i,h=e.skip||0,u=e.wpimg||l*r,f=l;e.il&&(u=l,f=l*i);var m=e.il?f*r:u*i,O;o>0&&e.sl?O=new Uint8Array(m):a<=8?O=new Uint8Array(m*o):O=new Uint32Array(m*o);for(var S=0;S<i;S++)for(var x=n[S],D=0,M=0;M<r;M++)for(var Z=e.flip?r-1-M:M,k=S*u+Z*f,w=0,R=0;R<t;R++){var X=x[D++],W=Ub(k,e.remap);e.reindex&&([W,w]=qb(R,e.reindex),W+=k);for(var ne=0;ne<o;ne++){var de=X>>ne*s&c;O[W+ne*d+h]|=e.brev?de<<a-w-s:de<<w}w+=s,w>=a&&!e.reindex&&(k+=1,w=0)}return O}function WQ(n,e,t,r,i,s,o){for(var a=[],l=0;l<n.length;l++){var c=n[l],d=4278190080;d|=(c>>e&(1<<t)-1)<<8-t,d|=(c>>r&(1<<i)-1)<<16-i,d|=(c>>s&(1<<o)-1)<<24-o,a.push(d)}return a}function HX(n){var e=(n>>0&1)*33+(n>>1&1)*71+(n>>2&1)*151,t=(n>>3&1)*33+(n>>4&1)*71+(n>>5&1)*151,r=(n>>6&1)*81+(n>>7&1)*174;return 4278190080|r<<16|t<<8|e}function KX(n){var e=n.pal;if(typeof e=="number"){var t=Math.floor(Math.abs(e/100)%10),r=Math.floor(Math.abs(e/10)%10),i=Math.floor(Math.abs(e)%10);return 1<<t+r+i}else{if(e==="pacman")return 256;var s=Tu[e];if(s)return s.length;throw new Error("No palette named "+e)}}function Qu(n,e){var t=e.pal,r;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?r=WQ(n,0,i,i,s,i+s,o):r=WQ(n,i+s,o,i,s,0,i)}else if(t==="pacman"){r=[];for(var a=0;a<n.length;a++)r.push(HX(n[a]))}else{var l=Tu[t];if(l)r=new Uint32Array(n).map(c=>l[c&l.length-1]|4278190080);else throw new Error("No palette named "+t)}return r}function rc(n){var e=n.pal;if(typeof e!="number"||!isFinite(e))return null;var t=Math.floor(Math.abs(e/100)%10),r=Math.floor(Math.abs(e/10)%10),i=Math.floor(Math.abs(e)%10);return t+r+i<=0?null:e>=0?{r:t,g:r,b:i,rshift:0,gshift:t,bshift:t+r}:{r:i,g:r,b:t,rshift:t+r,gshift:t,bshift:0}}function NQ(n,e,t,r){var i=rc(n);return i?(e&(1<<i.r)-1)<<i.rshift|(t&(1<<i.g)-1)<<i.gshift|(r&(1<<i.b)-1)<<i.bshift:0}function JX(n,e){var t=rc(n);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 Tu={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,1340426 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
@@ -306,7 +306,7 @@ tools appear:</p>
status bar at the bottom of the window (toggle it under
<strong>Settings \xBB Show keyboard shortcuts / status bar</strong>).</p>
<p>See <a href="editor.md">Editor</a> for editor-specific shortcuts.</p>
`;var rT=`<h1>Editor</h1>
`;var sT=`<h1>Editor</h1>
<p>The source editor is based on <a href="https://codemirror.net/">CodeMirror 6</a>.
Syntax highlighting is chosen from the toolchain that handles the file\u2019s
extension, so a <code>.c</code> file opens as C, a <code>.ca65</code> file as 6502 assembly,
@@ -383,7 +383,7 @@ filesystem in a read-only viewer.</li>
<p>The editor also inherits the standard <a href="https://codemirror.net/">CodeMirror 6</a> keymap,
including cursor/word movement and selection with the arrow keys, and cut/
copy/paste (<code>mod+X</code>, <code>mod+C</code>, <code>mod+V</code>).</p>
`;var iT=`<h1>Disassembly</h1>
`;var oT=`<h1>Disassembly</h1>
<p>The Disassembly window disassembles machine code around the current
program counter. It is available on platforms that expose both a
disassembler and a savable CPU state.</p>
@@ -432,7 +432,7 @@ from the tool\u2019s own output; see <a href="editor.md">Editor</a>. The listing
the program counter using the line-to-address map from the assembler,
which is more accurate for source-level navigation than the live
disassembly.</p>
`;var sT=`<h1>Memory Browser</h1>
`;var aT=`<h1>Memory Browser</h1>
<p>The Memory Browser shows a hex dump of CPU memory. It is available on
platforms that implement <code>readAddress</code>.</p>
<p>The dump is laid out 16 bytes per row:</p>
@@ -453,7 +453,7 @@ row containing it.</li>
<li>Clicking a segment in the <a href="memmap.md">Memory Map</a> opens this
window and scrolls to that segment\u2019s start address.</li>
</ul>
`;var oT=`<h1>Memory Map</h1>
`;var lT=`<h1>Memory Map</h1>
<p>The Memory Map draws the program\u2019s memory layout as columns that share
one address axis. Each row starts at the address shown on the left, and
row height grows with the size of the range.</p>
@@ -481,7 +481,7 @@ Estimated sizes are marked with <code>~</code>.</li>
<h2>Navigating</h2>
<p>Click any bar to open the <a href="memory.md">Memory Browser</a> and
scroll it to that bar\u2019s start address.</p>
`;var aT=`<h1>VRAM Browser</h1>
`;var cT=`<h1>VRAM Browser</h1>
<p>The VRAM Browser is a hex dump of video memory. It is available on
systems with a separate video chip and a <code>readVRAMAddress</code> implementation.</p>
<p>It behaves like the <a href="memory.md">Memory Browser</a> \u2014 16 bytes per
@@ -489,7 +489,7 @@ row \u2014 but reads through the platform\u2019s video-memory accessor instead o
CPU memory, and its rows are all shown with the <code>video</code> segment color.</p>
<p>The dump does not scroll to a data segment on open, since VRAM has no
linker segments.</p>
`;var lT=`<h1>Memory Probe</h1>
`;var dT=`<h1>Memory Probe</h1>
<p>The Memory Probe is a heat map of memory activity. It is available on
platforms that implement <code>startProbing</code>.</p>
<p>The canvas is a 256\xD7256 grid of the 64K address space:</p>
@@ -555,7 +555,7 @@ contents, so the map is still readable before anything executes.</li>
<p>Hovering the map shows the routines and operations that touched that
address, including the program counter that performed each access and
any associated value.</p>
`;var cT=`<h1>CRT Probe</h1>
`;var hT=`<h1>CRT Probe</h1>
<p>The CRT Probe shows memory and I/O activity laid out by <em>raster
position</em> instead of by address, so you can see what the CPU touches at
each point of the display sweep. It is available on platforms that
@@ -608,7 +608,7 @@ implement <code>startProbing</code>.</p>
are filled with the previous color, so the display does not show false
black bands.</p>
<p>The view shows a complete frame, and might be incomplete during debugging.</p>
`;var dT=`<h1>Probe Log</h1>
`;var uT=`<h1>Probe Log</h1>
<p>The Probe Log is a chronological text view of CPU and memory activity
for a frame. It is available on platforms that implement <code>startProbing</code>.</p>
<p>Each line describes a recorded event (blank clock ticks between events are
@@ -625,7 +625,7 @@ addresses and, where relevant, values.</li>
</ul>
<p>Write operations are colored differently from reads so they stand out.</p>
<p>The view shows a complete frame, and might be incomplete during debugging.</p>
`;var hT=`<h1>Scanline I/O</h1>
`;var fT=`<h1>Scanline I/O</h1>
<p>The Scanline I/O window shows the I/O and VRAM accesses made during each
scanline. It is available on platforms that implement <code>startProbing</code>.</p>
<p>Each row is one scanline:</p>
@@ -640,7 +640,7 @@ end, when known.</li>
<p>This makes it easy to see where per-scanline register writes (raster
effects) occur relative to the start of the visible line.</p>
<p>The view shows a complete frame, and might be incomplete during debugging.</p>
`;var uT=`<h1>Symbol Profiler</h1>
`;var pT=`<h1>Symbol Profiler</h1>
<p>The Symbol Profiler counts memory reads and writes per symbol over time.
It is available on platforms that implement <code>startProbing</code>.</p>
<p>Each row lists a symbol with two counters:</p>
@@ -676,7 +676,7 @@ It is available on platforms that implement <code>startProbing</code>.</p>
the numbers keep growing while you run and are reset when data is
collected again. Symbols from the debug map are listed even before they
are touched.</p>
`;var fT=`<h1>Call Graph</h1>
`;var mT=`<h1>Call Graph</h1>
<p>The Call Graph window reconstructs the program\u2019s call graph from runtime
stack activity, and shows where the clocks go. It is available on
platforms that implement <code>startProbing</code>.</p>
@@ -704,7 +704,7 @@ when the emulator is reset.</p>
<p>Expanding a node reveals its callees, so you can drill into a hot
routine and see where the time is going. The same call tree is available
from the command line with <code>8bws run ... -e &quot;profile 60&quot;</code>.</p>
`;var pT=`<h1>Debug Tree</h1>
`;var gT=`<h1>Debug Tree</h1>
<p>The Debug Tree shows a hierarchical view of platform debug information.
It is available on platforms that implement <code>getDebugTree</code>.</p>
<p>The tree\u2019s shape is defined by the platform. Where the
@@ -724,7 +724,7 @@ lazy are only called when the node is expanded.</li>
</ul>
<p>Nodes collapse and expand on click. The tree refreshes with the emulator
while debugging.</p>
`;var mT=`<h1>Breakpoints</h1>
`;var OT=`<h1>Breakpoints</h1>
<p>The Breakpoints window lists every breakpoint in the project and lets you
add, edit, enable, or delete them. It is available on platforms that
implement <code>runEval</code> or <code>runToPC</code>.</p>
@@ -832,7 +832,7 @@ the disassembly, at the breakpoint\u2019s address.</li>
</ul>
<p>Breakpoints are persisted in browser local storage, scoped to the
current platform and project file, so they survive a reload.</p>
`;var gT=`<h1>Asset Editor</h1>
`;var bT=`<h1>Asset Editor</h1>
<p>The Asset Editor finds <a href="asset-headers.md">asset headers</a> in your source \u2014 small JSON
descriptors inside comments \u2014 and turns the data block that follows into
an editable bitmap, tilemap, or palette. Edits are written straight back
@@ -881,7 +881,7 @@ from your project\u2019s graphics and palette, as a single preview.</p>
<p>Use <code>Ctrl/Cmd+Z</code> to undo and <code>Ctrl/Cmd+Shift+Z</code> to redo your edits. The
history starts fresh each time you open the Asset Editor, so undo only
affects the changes you\u2019ve made in this session.</p>
`;var OT=`<h1>Managing Files</h1>
`;var yT=`<h1>Managing Files</h1>
<h2>Importing and exporting files</h2>
<p>To save your files outside of the browser:</p>
<ol>
@@ -994,7 +994,7 @@ commit message, then <strong>Push Changes</strong>.</li>
<strong>OK</strong>. All local files are overwritten; there is no merge in the
browser.</li>
</ul>
`;var bT=`<h1>Build Directives</h1>
`;var ST=`<h1>Build Directives</h1>
<p>A project can contain multiple files. The build system decides how each
file is used based on directives in your source, and each file\u2019s
extension selects the tool that compiles or assembles it.</p>
@@ -1364,7 +1364,7 @@ cases:</p>
</table>
<p>See <a href="toolchains.md">Toolchains &amp; Platforms</a> for the full
platform \xD7 extension \u2192 tool table.</p>
`;var yT=`<h1>cc65 Toolchain Upgrade</h1>
`;var vT=`<h1>cc65 Toolchain Upgrade</h1>
<p>The cc65 family (<code>cc65</code>, <code>ca65</code>, <code>ld65</code>) used by the 6502 platforms was upgraded
for 8bitworkshop 4.0.</p>
<table>
@@ -1421,7 +1421,7 @@ ignored so a clean build does not fail on style or version noise.</p>
<h2>Apple II graphics</h2>
<p>The stock lo-res driver (<code>a2.lo.s</code>) required a small upstream
patch (a stray branch in <code>INSTALL</code>).</p>
`;var ST=`<!-- generated by \`npm run doctools\`; do not edit by hand -->
`;var wT=`<!-- generated by \`npm run doctools\`; do not edit by hand -->
<h1>Toolchains &amp; Platforms</h1>
<p>A source file\u2019s <strong>extension</strong> picks a tool, and the <strong>platform</strong>
disambiguates extensions several tools share (<code>.c</code>, <code>.s</code>, <code>.bas</code>).</p>
@@ -3141,7 +3141,7 @@ not accepted on that platform.</p>
</tr>
</tbody>
</table>
`;var vT=`<h1>Asset Header</h1>
`;var xT=`<h1>Asset Header</h1>
<p>An <strong>asset header</strong> is a tiny note to the <a href="asseteditor.md">Asset Editor</a>
that tells it what a block of data means. It is just a JSON object inside
a comment, sitting right above the bytes:</p>
@@ -3817,7 +3817,7 @@ bytes).</li>
</tr>
</tbody>
</table>
`;var wT=`<h2>Embedding the IDE in a web page</h2>
`;var PT=`<h2>Embedding the IDE in a web page</h2>
<p>You can embed the IDE using an IFRAME element:</p>
<pre><code class="language-html">&lt;iframe src=&quot;https://8bitworkshop.com/redir.html?embed=1&amp;...&quot;&gt;&lt;/iframe&gt;
</code></pre>
@@ -3860,7 +3860,7 @@ containing embeds is effectively sandboxed from the others.</p>
src=&quot;https://8bitworkshop.com/redir.html?embed=1&amp;platform=nes&amp;highlight=&amp;file0_name=testembed.dasm&amp;file0_data=...&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</code></pre>
`;var xT=`<h1>Waveform Viewer</h1>
`;var kT=`<h1>Waveform Viewer</h1>
<p>The Verilog platform shows a waveform trace below the emulator screen,
with one row per exposed signal. <strong>Click</strong> to give the waveform viewer
keyboard focus.</p>
@@ -3885,19 +3885,19 @@ 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 Bz=o0(),Yu=[{id:"index",title:"IDE Help",html:nT},{id:"editor",title:"Editor",html:rT},{id:"disasm",title:"Disassembly",html:iT},{id:"memory",title:"Memory Browser",html:sT},{id:"memmap",title:"Memory Map",html:oT},{id:"vram",title:"VRAM Browser",html:aT},{id:"memprobe",title:"Memory Probe",html:lT},{id:"crtprobe",title:"CRT Probe",html:cT},{id:"probelog",title:"Probe Log",html:dT},{id:"scanlineio",title:"Scanline I/O",html:hT},{id:"symbols",title:"Symbol Profiler",html:uT},{id:"callgraph",title:"Call Graph",html:fT},{id:"debugtree",title:"Debug Tree",html:pT},{id:"breakpoints",title:"Breakpoints",html:mT},{id:"asseteditor",title:"Asset Editor",html:gT},{id:"managing-files",title:"Managing Files",html:OT},{id:"build-directives",title:"Build Directives",html:bT},{id:"cc65-upgrade",title:"CC65 Upgrade",html:yT},{id:"toolchains",title:"Toolchains & Platforms",html:ST},{id:"asset-headers",title:"Asset Headers",html:vT},{id:"embedding-ide",title:"Embedding the IDE",html:wT},{id:"verilog-waveform",title:"Waveform Viewer",html:xT}],ju={};for(let n of Yu)ju[n.id]=n;q1(()=>Yu);function l0(n){let e=n||"";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(/^\.\//,""),ju[e]?e:"index"}function Vz(n){return ju[l0(n)]}var a0={"#disasm":"disasm","#memory":"memory","#memmap":"memmap","#vram":"vram","#memprobe":"memprobe","#crtprobe":"crtprobe","#probelog":"probelog","#scanlineio":"scanlineio","#symbols":"symbols","#callgraph":"callgraph","#debugtree":"debugtree","#breakpoints":"breakpoints","#asseteditor":"asseteditor"};function VT(n,e){return e?"editor":n&&a0[n]||"index"}function FT(n){let e=n&&a0[n]&&ju[a0[n]];if(!e)return;let t=e.html.replace(/^\s*<h1\b[^>]*>[\s\S]*?<\/h1>/i," ");return Xg(_l(t))}function Fz(n){n.querySelectorAll("a[href]").forEach(t=>{let r=t.getAttribute("href");if(!r)return;if(/^[a-z][a-z0-9+.-]*:/i.test(r)){t.setAttribute("target","_blank"),t.setAttribute("rel","noopener noreferrer");return}if(r.startsWith("/")||r.startsWith("#"))return;let i=r.indexOf("#"),s=i>=0?r.substring(0,i):r;s.endsWith(".md")&&(t.setAttribute("href","#help/"+l0(s)),t.removeAttribute("target"))})}function Yz(n,e){let t=Vz(e);n.innerHTML=Bz.sanitize(t.html),Fz(n)}var lc=class{constructor(e){this.id=l0(e||"index")}getPath(){return"#help/"+this.id}createDiv(e){return this.maindiv=xr(e,"vertical-scroll help-view"),Yz(this.maindiv[0],this.id),this.maindiv[0]}refresh(e){}};var Uu=class{constructor(e,t){this.classify=e;this.name=t;this.graph=null;this.stack=[];this.lastsp=-1;this.lastpc=0;this.spAtLastExec=-1;this.interrupted=!1;this.jsr=!1;this.rts=!1}clear(){this.graph=null,this.reset()}reset(){this.stack=[],this.lastsp=-1,this.lastpc=0,this.spAtLastExec=-1,this.interrupted=!1,this.jsr=!1,this.rts=!1}newNode(e,t){return{$$SP:t,$$PC:e,count:0,self:0,total:0,startLine:null,endLine:null,calls:{}}}enter(e,t){let r=this.stack[this.stack.length-1],i=this.name(e),s=r.calls[i];s==null?s=r.calls[i]=this.newNode(e,this.lastsp):s.$$PC==null&&(s.$$PC=e),this.stack.push(s),s.count++,s.startLine=t}leave(e){if(this.stack.length>1)this.stack.pop().endLine=e;else{let t=this.stack[0];this.graph=this.newNode(null,this.lastsp),this.graph.total=t.total,this.graph.calls[this.name(this.lastpc)]=t,this.stack=[this.graph]}}clocks(e){let t=this.stack;if(t.length){t[t.length-1].self+=e;for(let r of t)r.total+=e}}event(e,t,r){var i;switch(e){case 0:this.clocks(t);break;case 134217728:this.interrupted=!0;break;case 184549376:case 167772160:if(this.stack.length){let s=this.stack[this.stack.length-1],o=this.lastsp-t;(o==2||o==3)&&t<s.$$SP&&(this.jsr=!0),(o==-2||o==-3)&&this.stack.length>1&&t>s.$$SP&&(this.rts=!0)}this.lastsp=t;break;case 16777216:{this.stack.length||((i=this.graph)!=null||(this.graph=this.newNode(null,this.lastsp)),this.stack=[this.graph]);let s=this.spAtLastExec>=0?this.classify(this.lastpc):"unknown";if(s==="unknown"&&!this.interrupted)this.guess(t,r);else{let o=this.lastsp<this.spAtLastExec,a=this.lastsp>this.spAtLastExec,l=s==="other"&&o&&Math.abs(t-this.lastpc)>=4;(s==="call"||this.interrupted||l)&&o?this.enter(t,r):s==="return"&&a&&this.leave(r),this.jsr=this.rts=!1}this.interrupted=!1,this.lastpc=t,this.spAtLastExec=this.lastsp;break}}}guess(e,t){Math.abs(e-this.lastpc)>=4&&(this.jsr&&this.enter(e,t),this.rts&&this.leave(t),this.jsr=this.rts=!1)}};var fj=new DataView(new ArrayBuffer(8));var qz=/^(JSR|JSL|CALL|BSR|LBSR|RST)\b/i,Gz=/^(RTS|RTL|RTI|RET|RETI|RETN)\b|^PUL[SU]\b.*\bPC\b/i;function YT(n){return qz.test(n.trim())}function jT(n){return Gz.test(n.trim())}var cc=256,UT=100,Hz=!1,qu=class n{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. Line truncated
`,await rA(n),he.newfile?!r&&!t?Re('No build tool for "'+n+'" on this platform; project will not build.'):r?lA(!0,!0):an("No skeleton file for "+t+" on this platform; using blank file."):an('Could not find file "'+n+'"<br><br>Creating new '+(r?t:"blank")+" file."),delete he.newfile,mf()}}function v0(n){if(n=="/")he={repo:"/"};else if(n.indexOf("://")>=0){var e=Ql(n);e&&(he={repo:e.repopath})}else he.platform=Oe,he.file=n;no()}async function lW(n){var e=Gf(P.getToolForFilename(n));try{return await $.get("presets/"+Nt(Oe)+"/skeleton."+e,"text")}catch(t){return console.log(t+""),null}}function w0(n){return n.indexOf(" ")>=0?(Re("No spaces in filenames, please."),!1):!0}async function cW(n){var e=Nt(Oe),t={},r=[];for(var i of n){var s=P.getToolForFilename("test"+i);t[s]||(t[s]=[],r.push(s)),t[s].push(i)}var o=r.map(d=>$.ajax({url:"presets/"+e+"/skeleton."+Gf(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 dW(n){var e=await cW(P.getDefaultExtensions()),t,r;return e.length===0?(t=P.getDefaultExtensions(),r=t.join(" ")):(t=e.reduce((i,s)=>i.concat(s.extensions),[]),r=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'>"+r+"</span>",placeholder:"newfile"+t[0],callback:i=>{if(i&&i.trim().length>0){if(!w0(i))return;i.indexOf(".")<0&&(i+=t[0]);var s=i;he.newfile="1",v0(s)}}}),!0}function hW(n){let e=$('<input type="file" multiple accept="*" style="display:none">'),t=e[0];e.change(r=>{uW(t.files)}),e.click()}function uW(n){console.log(n);var e=0;function t(){var r=n[e++];if(!r)console.log("Done uploading",e),e>2?(an("Files uploaded."),setTimeout(Oc,1e3)):(he.file=n[0].name,bootbox.confirm({message:"Open '"+gs.sanitize(he.file)+"' as main project file?",buttons:{confirm:{label:"Open As New Project"},cancel:{label:"Include/Link With Project Later"}},callback:o=>{o?no():setTimeout(Oc,1e3)}}));else{var i=r.name,s=new FileReader;s.onload=function(o){var a=o.target.result,l=new Uint8Array(a);vc(i,l)||(l=Sc(l).replace(`\r
`;var Fz=o0(),Yu=[{id:"index",title:"IDE Help",html:iT},{id:"editor",title:"Editor",html:sT},{id:"disasm",title:"Disassembly",html:oT},{id:"memory",title:"Memory Browser",html:aT},{id:"memmap",title:"Memory Map",html:lT},{id:"vram",title:"VRAM Browser",html:cT},{id:"memprobe",title:"Memory Probe",html:dT},{id:"crtprobe",title:"CRT Probe",html:hT},{id:"probelog",title:"Probe Log",html:uT},{id:"scanlineio",title:"Scanline I/O",html:fT},{id:"symbols",title:"Symbol Profiler",html:pT},{id:"callgraph",title:"Call Graph",html:mT},{id:"debugtree",title:"Debug Tree",html:gT},{id:"breakpoints",title:"Breakpoints",html:OT},{id:"asseteditor",title:"Asset Editor",html:bT},{id:"managing-files",title:"Managing Files",html:yT},{id:"build-directives",title:"Build Directives",html:ST},{id:"cc65-upgrade",title:"CC65 Upgrade",html:vT},{id:"toolchains",title:"Toolchains & Platforms",html:wT},{id:"asset-headers",title:"Asset Headers",html:xT},{id:"embedding-ide",title:"Embedding the IDE",html:PT},{id:"verilog-waveform",title:"Waveform Viewer",html:kT}],ju={};for(let n of Yu)ju[n.id]=n;H1(()=>Yu);function l0(n){let e=n||"";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(/^\.\//,""),ju[e]?e:"index"}function Yz(n){return ju[l0(n)]}var a0={"#disasm":"disasm","#memory":"memory","#memmap":"memmap","#vram":"vram","#memprobe":"memprobe","#crtprobe":"crtprobe","#probelog":"probelog","#scanlineio":"scanlineio","#symbols":"symbols","#callgraph":"callgraph","#debugtree":"debugtree","#breakpoints":"breakpoints","#asseteditor":"asseteditor"};function YT(n,e){return e?"editor":n&&a0[n]||"index"}function jT(n){let e=n&&a0[n]&&ju[a0[n]];if(!e)return;let t=e.html.replace(/^\s*<h1\b[^>]*>[\s\S]*?<\/h1>/i," ");return Xg(_l(t))}function jz(n){n.querySelectorAll("a[href]").forEach(t=>{let r=t.getAttribute("href");if(!r)return;if(/^[a-z][a-z0-9+.-]*:/i.test(r)){t.setAttribute("target","_blank"),t.setAttribute("rel","noopener noreferrer");return}if(r.startsWith("/")||r.startsWith("#"))return;let i=r.indexOf("#"),s=i>=0?r.substring(0,i):r;s.endsWith(".md")&&(t.setAttribute("href","#help/"+l0(s)),t.removeAttribute("target"))})}function Uz(n,e){let t=Yz(e);n.innerHTML=Fz.sanitize(t.html),jz(n)}var lc=class{constructor(e){this.id=l0(e||"index")}getPath(){return"#help/"+this.id}createDiv(e){return this.maindiv=xr(e,"vertical-scroll help-view"),Uz(this.maindiv[0],this.id),this.maindiv[0]}refresh(e){}};var Uu=class{constructor(e,t){this.classify=e;this.name=t;this.graph=null;this.stack=[];this.lastsp=-1;this.lastpc=0;this.spAtLastExec=-1;this.interrupted=!1;this.jsr=!1;this.rts=!1}clear(){this.graph=null,this.reset()}reset(){this.stack=[],this.lastsp=-1,this.lastpc=0,this.spAtLastExec=-1,this.interrupted=!1,this.jsr=!1,this.rts=!1}newNode(e,t){return{$$SP:t,$$PC:e,count:0,self:0,total:0,startLine:null,endLine:null,calls:{}}}enter(e,t){let r=this.stack[this.stack.length-1],i=this.name(e),s=r.calls[i];s==null?s=r.calls[i]=this.newNode(e,this.lastsp):s.$$PC==null&&(s.$$PC=e),this.stack.push(s),s.count++,s.startLine=t}leave(e){if(this.stack.length>1)this.stack.pop().endLine=e;else{let t=this.stack[0];this.graph=this.newNode(null,this.lastsp),this.graph.total=t.total,this.graph.calls[this.name(this.lastpc)]=t,this.stack=[this.graph]}}clocks(e){let t=this.stack;if(t.length){t[t.length-1].self+=e;for(let r of t)r.total+=e}}event(e,t,r){var i;switch(e){case 0:this.clocks(t);break;case 134217728:this.interrupted=!0;break;case 184549376:case 167772160:if(this.stack.length){let s=this.stack[this.stack.length-1],o=this.lastsp-t;(o==2||o==3)&&t<s.$$SP&&(this.jsr=!0),(o==-2||o==-3)&&this.stack.length>1&&t>s.$$SP&&(this.rts=!0)}this.lastsp=t;break;case 16777216:{this.stack.length||((i=this.graph)!=null||(this.graph=this.newNode(null,this.lastsp)),this.stack=[this.graph]);let s=this.spAtLastExec>=0?this.classify(this.lastpc):"unknown";if(s==="unknown"&&!this.interrupted)this.guess(t,r);else{let o=this.lastsp<this.spAtLastExec,a=this.lastsp>this.spAtLastExec,l=s==="other"&&o&&Math.abs(t-this.lastpc)>=4;(s==="call"||this.interrupted||l)&&o?this.enter(t,r):s==="return"&&a&&this.leave(r),this.jsr=this.rts=!1}this.interrupted=!1,this.lastpc=t,this.spAtLastExec=this.lastsp;break}}}guess(e,t){Math.abs(e-this.lastpc)>=4&&(this.jsr&&this.enter(e,t),this.rts&&this.leave(t),this.jsr=this.rts=!1)}};var gj=new DataView(new ArrayBuffer(8));var Hz=/^(JSR|JSL|CALL|BSR|LBSR|RST)\b/i,Kz=/^(RTS|RTL|RTI|RET|RETI|RETN)\b|^PUL[SU]\b.*\bPC\b/i;function UT(n){return Hz.test(n.trim())}function qT(n){return Kz.test(n.trim())}var cc=256,GT=100,Jz=!1,qu=class n{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. Line truncated
`,await sA(n),he.newfile?!r&&!t?Re('No build tool for "'+n+'" on this platform; project will not build.'):r?dA(!0,!0):an("No skeleton file for "+t+" on this platform; using blank file."):an('Could not find file "'+n+'"<br><br>Creating new '+(r?t:"blank")+" file."),delete he.newfile,mf()}}function v0(n){if(n=="/")he={repo:"/"};else if(n.indexOf("://")>=0){var e=Ql(n);e&&(he={repo:e.repopath})}else he.platform=Oe,he.file=n;no()}async function dW(n){var e=Gf(P.getToolForFilename(n));try{return await $.get("presets/"+Nt(Oe)+"/skeleton."+e,"text")}catch(t){return console.log(t+""),null}}function w0(n){return n.indexOf(" ")>=0?(Re("No spaces in filenames, please."),!1):!0}async function hW(n){var e=Nt(Oe),t={},r=[];for(var i of n){var s=P.getToolForFilename("test"+i);t[s]||(t[s]=[],r.push(s)),t[s].push(i)}var o=r.map(d=>$.ajax({url:"presets/"+e+"/skeleton."+Gf(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 uW(n){var e=await hW(P.getDefaultExtensions()),t,r;return e.length===0?(t=P.getDefaultExtensions(),r=t.join(" ")):(t=e.reduce((i,s)=>i.concat(s.extensions),[]),r=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'>"+r+"</span>",placeholder:"newfile"+t[0],callback:i=>{if(i&&i.trim().length>0){if(!w0(i))return;i.indexOf(".")<0&&(i+=t[0]);var s=i;he.newfile="1",v0(s)}}}),!0}function fW(n){let e=$('<input type="file" multiple accept="*" style="display:none">'),t=e[0];e.change(r=>{pW(t.files)}),e.click()}function pW(n){console.log(n);var e=0;function t(){var r=n[e++];if(!r)console.log("Done uploading",e),e>2?(an("Files uploaded."),setTimeout(Oc,1e3)):(he.file=n[0].name,bootbox.confirm({message:"Open '"+gs.sanitize(he.file)+"' as main project file?",buttons:{confirm:{label:"Open As New Project"},cancel:{label:"Include/Link With Project Later"}},callback:o=>{o?no():setTimeout(Oc,1e3)}}));else{var i=r.name,s=new FileReader;s.onload=function(o){var a=o.target.result,l=new Uint8Array(a);vc(i,l)||(l=Sc(l).replace(`\r
`,`
`)),N.updateFile(i,l),console.log("Uploaded "+i+" "+l.length+" bytes"),t()},s.readAsArrayBuffer(r)}}n&&t()}async function fW(n){var e=window.showDirectoryPicker;e||Re("This browser can't open local files on your computer, yet. Try Chrome.");var t=await e(),r=t.name,i="__localfs__"+r,s={handle:t},o=y0.createInstance({name:i,version:2});await o.setItem(i,s),he={localfs:r},no(!0)}async function pW(n){return new Promise((e,t)=>{bootbox.prompt(gs.sanitize(n),r=>{e(r)})})}async function mW(n){let e={mode:"readwrite"};var t="__localfs__"+n,r=y0.createInstance({name:t,version:2}),i=await r.getItem(t),s=i.handle;console.log(i,s);var o=await s.queryPermission(e);if(console.log(o),o!=="granted"&&(await pW("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();return wc(l,new Uint8Array(await d.arrayBuffer()))},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 _t(){return yt(re.mainPath)}function L1(){return yt(N.getActiveID())}function gW(n){var e=N.getActive(),t=N.getActiveID(),r=e&&e.setData&&!e.setText;if(e&&(e.setText||e.setData)){var i="presets/"+Nt(Oe)+"/"+t;Sf(i,s=>{if(s==null){Et?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 '"+gs.sanitize(t)+"' to default?",o=>{o&&(r?(e.setData(s),re.updateFile(t,s)):e.setText(s))})},r?"arraybuffer":"text")}else Re("Cannot revert the active window. Please choose a text file.")}function OW(n){var e=N.getActive();if(e&&e.getPath){var t=N.getActiveID();bootbox.confirm("Delete '"+gs.sanitize(t)+"'?",r=>{r&&$r.removeItem(t).then(()=>{he.file==t?(Zi.unsetLastPreset(),no()):(Oc(),an("Deleted "+t))})})}else Re("Cannot delete the active window.")}function bW(n){var e=N.getActive();if(e&&e.getPath&&re.getFile(e.getPath())){var t=N.getActiveID();bootbox.prompt({title:"Rename '"+gs.sanitize(t)+"' to?",value:t,callback:r=>{var i=re.getFile(e.getPath());if(r&&r!=t&&i){if(!w0(r))return;$r.removeItem(t).then(()=>$r.setItem(r,i)).then(()=>{Oc(),alert("Renamed "+t+" to "+r),t==re.mainPath&&v0(r)})}}})}else Re("Cannot rename the active window.")}function yW(n){let e={},t,r=P.getPresets?P.getPresets():[];for(var i=0;i<r.length;i++){var s=r[i],o=s.chapter?s.chapter+". "+s.name:s.name,a=s.id==re.mainPath;s.category?t=$("<optgroup />").attr("label","Examples: "+s.category).appendTo(n):t||(t=$("<optgroup />").attr("label","Examples").appendTo(n)),t.append($("<option />").val(s.id).text(o).attr("selected",a?"selected":null)),a&&(nf=s),e[s.id]=o}return e}function SW(n){if(nr&&!xa){var e=0,t=Js();if(t){let i=$("<optgroup />").attr("label","Repositories").appendTo(n);for(let s in t){var r=t[s];r.platform_id&&Nt(r.platform_id)==Nt(Oe)&&i.append($("<option />").val(r.url).text(r.url.substring(r.url.indexOf("/"))))}}}}async function iA(n,e,t,r){let i=await $r.keys();i||(i=[]);let s;for(var o=0;o<i.length;o++){let a=i[o];if(a.startsWith(t)&&!r[a]){s||(s=$("<optgroup />").attr("label",e).appendTo(n));let l=a.substring(t.length);s.append($("<option />").val(a).text(l).attr("selected",a==re.mainPath?"selected":null))}}}function sA(n){n.css("visibility","visible");var e=re.mainPath;n.val()!=e&&n.append($("<option />").val(e).text(e).attr("selected","selected"))}async function Oc(){var n=$("#preset_select").empty();if(Et)n.append($("<option />").val("/").text("Leave Repository")),$("#repo_name").text(yt(Et)+"/").show(),await iA(n,Et,"",{}),sA(n);else{SW(n);var e=yW(n);await iA(n,"Local Files","",e),sA(n)}n.off("change").change(function(t){v0($(this).val().toString())})}function vW(n){var e=$("<p/>");if(n.path!=null){var t=n.line?n.label?`(${n.path} @ ${n.label})`:`(${n.path}:${n.line})`:`(${n.path})`,r=$("<a/>").text(t),i=n.path;i==_t()&&(i=re.mainPath),N.isWindow(i)&&r.click(s=>{var o=N.createOrShow(i);o instanceof un&&o.navigateToLine(n.line)}),e.append(r),e.append("&nbsp;")}return e.append($("<span/>").text(n.msg)),e}function cA(){$("#error_alert").hide(),S0=!1}function x0(n,e){var t=$("#error_alert_msg").empty();for(var r of n.slice(0,10))t.append(vW(r));$("#error_alert").show(),S0=e;var i=n.find(o=>o.path!=null),s;i&&N.isWindow(i.path==_t()?re.mainPath:i.path)&&(s=()=>{PW(i)})}function dA(n,e){if(e!=null){var t={msg:e,line:0};n instanceof xo&&n.$loc&&(t=Object.create(n.$loc),t.msg=e,console.log(t)),x0([t],!0)}}var uc=null;async function wW(n){if("uppercaseOnly"in n&&PQ(n.uppercaseOnly),"errors"in n&&n.errors.l Line truncated
`)),N.updateFile(i,l),console.log("Uploaded "+i+" "+l.length+" bytes"),t()},s.readAsArrayBuffer(r)}}n&&t()}async function mW(n){var e=window.showDirectoryPicker;e||Re("This browser can't open local files on your computer, yet. Try Chrome.");var t=await e(),r=t.name,i="__localfs__"+r,s={handle:t},o=y0.createInstance({name:i,version:2});await o.setItem(i,s),he={localfs:r},no(!0)}async function gW(n){return new Promise((e,t)=>{bootbox.prompt(gs.sanitize(n),r=>{e(r)})})}async function OW(n){let e={mode:"readwrite"};var t="__localfs__"+n,r=y0.createInstance({name:t,version:2}),i=await r.getItem(t),s=i.handle;console.log(i,s);var o=await s.queryPermission(e);if(console.log(o),o!=="granted"&&(await gW("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();return wc(l,new Uint8Array(await d.arrayBuffer()))},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 _t(){return yt(re.mainPath)}function Z1(){return yt(N.getActiveID())}function bW(n){var e=N.getActive(),t=N.getActiveID(),r=e&&e.setData&&!e.setText;if(e&&(e.setText||e.setData)){var i="presets/"+Nt(Oe)+"/"+t;Sf(i,s=>{if(s==null){Et?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 '"+gs.sanitize(t)+"' to default?",o=>{o&&(r?(e.setData(s),re.updateFile(t,s)):e.setText(s))})},r?"arraybuffer":"text")}else Re("Cannot revert the active window. Please choose a text file.")}function yW(n){var e=N.getActive();if(e&&e.getPath){var t=N.getActiveID();bootbox.confirm("Delete '"+gs.sanitize(t)+"'?",r=>{r&&$r.removeItem(t).then(()=>{he.file==t?(Zi.unsetLastPreset(),no()):(Oc(),an("Deleted "+t))})})}else Re("Cannot delete the active window.")}function SW(n){var e=N.getActive();if(e&&e.getPath&&re.getFile(e.getPath())){var t=N.getActiveID();bootbox.prompt({title:"Rename '"+gs.sanitize(t)+"' to?",value:t,callback:r=>{var i=re.getFile(e.getPath());if(r&&r!=t&&i){if(!w0(r))return;$r.removeItem(t).then(()=>$r.setItem(r,i)).then(()=>{Oc(),alert("Renamed "+t+" to "+r),t==re.mainPath&&v0(r)})}}})}else Re("Cannot rename the active window.")}function vW(n){let e={},t,r=P.getPresets?P.getPresets():[];for(var i=0;i<r.length;i++){var s=r[i],o=s.chapter?s.chapter+". "+s.name:s.name,a=s.id==re.mainPath;s.category?t=$("<optgroup />").attr("label","Examples: "+s.category).appendTo(n):t||(t=$("<optgroup />").attr("label","Examples").appendTo(n)),t.append($("<option />").val(s.id).text(o).attr("selected",a?"selected":null)),a&&(nf=s),e[s.id]=o}return e}function wW(n){if(nr&&!xa){var e=0,t=Js();if(t){let i=$("<optgroup />").attr("label","Repositories").appendTo(n);for(let s in t){var r=t[s];r.platform_id&&Nt(r.platform_id)==Nt(Oe)&&i.append($("<option />").val(r.url).text(r.url.substring(r.url.indexOf("/"))))}}}}async function oA(n,e,t,r){let i=await $r.keys();i||(i=[]);let s;for(var o=0;o<i.length;o++){let a=i[o];if(a.startsWith(t)&&!r[a]){s||(s=$("<optgroup />").attr("label",e).appendTo(n));let l=a.substring(t.length);s.append($("<option />").val(a).text(l).attr("selected",a==re.mainPath?"selected":null))}}}function aA(n){n.css("visibility","visible");var e=re.mainPath;n.val()!=e&&n.append($("<option />").val(e).text(e).attr("selected","selected"))}async function Oc(){var n=$("#preset_select").empty();if(Et)n.append($("<option />").val("/").text("Leave Repository")),$("#repo_name").text(yt(Et)+"/").show(),await oA(n,Et,"",{}),aA(n);else{wW(n);var e=vW(n);await oA(n,"Local Files","",e),aA(n)}n.off("change").change(function(t){v0($(this).val().toString())})}function xW(n){var e=$("<p/>");if(n.path!=null){var t=n.line?n.label?`(${n.path} @ ${n.label})`:`(${n.path}:${n.line})`:`(${n.path})`,r=$("<a/>").text(t),i=n.path;i==_t()&&(i=re.mainPath),N.isWindow(i)&&r.click(s=>{var o=N.createOrShow(i);o instanceof un&&o.navigateToLine(n.line)}),e.append(r),e.append("&nbsp;")}return e.append($("<span/>").text(n.msg)),e}function hA(){$("#error_alert").hide(),S0=!1}function x0(n,e){var t=$("#error_alert_msg").empty();for(var r of n.slice(0,10))t.append(xW(r));$("#error_alert").show(),S0=e;var i=n.find(o=>o.path!=null),s;i&&N.isWindow(i.path==_t()?re.mainPath:i.path)&&(s=()=>{$W(i)})}function uA(n,e){if(e!=null){var t={msg:e,line:0};n instanceof xo&&n.$loc&&(t=Object.create(n.$loc),t.msg=e,console.log(t)),x0([t],!0)}}var uc=null;async function PW(n){if("uppercaseOnly"in n&&$Q(n.uppercaseOnly),"errors"in n&&n.errors.l Line truncated
`+t(i)+`
`;re.loadFiles([s]).then(a=>{a&&a.length?Re(i+" already exists; including anyway"):re.updateFile(s,`
`),r.insertLinesBefore(o),va()})}}}):Re("Can't insert text in this window -- switch back to main file")}function XW(){var n=_t(),e=P.getToolForFilename(n);n.endsWith(".c")||e=="sdcc"||e=="cc65"||e=="cmoc"||e=="smlrc"||e=="oscar64"?Ur("Header",".h",t=>'#include "'+t+'"'):e=="dasm"||e=="zmac"?Ur("Include",".inc",t=>' include "'+t+'"'):e=="ca65"||e=="sdasz80"||e=="vasm"||e=="armips"?Ur("Include",".inc",t=>' .include "'+t+'"'):e=="verilator"?Ur("Verilog",".v",t=>'`include "'+t+'"'):e=="wiz"?Ur("Include",".wiz",t=>'import "'+t+'";'):e=="ecs"?Ur("Include",".ecs",t=>'import "'+t+'"'):e=="acme"?Ur("Include",".acme",t=>'!src "'+t+'"'):e=="xa"?Ur("Include",".xa",t=>'#include "'+t+'"'):e=="dialog"?Ur("Include",".dg",t=>'%% #include "'+t+'"'):Re("Can't add include file to this project type ("+e+")")}function zW(){var n=_t(),e=P.getToolForFilename(n);n.endsWith(".c")||e=="sdcc"||e=="cc65"||e=="cmoc"||e=="smlrc"?Ur("Linked C (or .s)",".c",t=>'//#link "'+t+'"'):n.endsWith("asm")||n.endsWith(".s")||e=="ca65"||e=="lwasm"?Ur("Linked ASM",".inc",t=>';#link "'+t+'"'):Re("Can't add linked file to this project type ("+e+")")}function WW(){if(gt=new Wi($("#toolbar")[0],null),gt.grp.prop("id","run_bar"),gt.add("mod+shift+r","Reset","glyphicon-refresh",kA).prop("id","dbg_reset"),gt.add("mod+shift+h","Pause","glyphicon-pause",mA).prop("id","dbg_pause"),gt.add("mod+shift+g","Go To Address","",n=>{uA()||cf()}),gt.add("mod+shift+g","Resume","glyphicon-play",cf).prop("id","dbg_go"),gt.add("F8","Pause/Resume","",gA),gt.add("F1","Help","",CA),P.restartAtPC&&gt.add("mod+shift+a","Restart at Cursor","glyphicon-play-circle",vA).prop("id","dbg_restartatline"),gt.newGroup(),gt.grp.prop("id","debug_bar"),P.runEval&&gt.add("mod+shift+d","Reset and Debug","glyphicon-fast-backward",$A).prop("id","dbg_restart"),P.stepBack&&gt.add("mod+shift+j","Step Backwards","glyphicon-step-backward",PA).prop("id","dbg_stepback"),P.step&&gt.add("mod+shift+l","Single Step","glyphicon-step-forward",OA).prop("id","dbg_step"),P.stepOver&&gt.add("mod+shift+k","Step Over","glyphicon-hand-right",bA).prop("id","dbg_stepover"),P.runUntilReturn&&gt.add("mod+shift+i","Step Out of Subroutine","glyphicon-hand-up",xA).prop("id","dbg_stepout"),P.runToVsync&&gt.add("mod+shift+x","Next Frame/Interrupt","glyphicon-forward",yA).prop("id","dbg_tovsync"),(P.runEval||P.runToPC)&&!Oe.startsWith("verilog")&&gt.add("mod+shift+y","Run To Line","glyphicon-save",wA).prop("id","dbg_toline"),gt.newGroup(),gt.grp.prop("id","xtra_bar"),gt.add("mod+shift+f","Search","glyphicon-search",Vb).prop("id","dbg_search"),$(".dropdown-menu").collapse({toggle:!1}),$("#item_new_file").click(dW),$("#item_upload_file").click(hW),$("#item_open_directory").click(fW),$("#item_github_login").click(D1),$("#item_github_logout").click(Z1),$("#item_github_import").click(I1),$("#item_github_publish").click(X1),$("#item_github_push").click(z1),$("#item_github_pull").click(W1),$("#item_repo_delete").click(B1),$("#item_share_file").click($1),$("#item_reset_file").click(gW),$("#item_rename_file").click(bW),$("#item_delete_file").click(OW),$("#item_download_rom").click(T1),$("#item_download_file").click(A1),$("#item_download_zip").click(_1),P.getDebugSymbolFile?$("#item_download_sym").click(E1):$("#item_download_sym").hide(),$("#item_download_allzip").click(R1),$("#item_record_video").click(M1),Lg()?$("#item_export_cassette").click(Q1):$("#item_export_cassette").hide(),P.setFrameRate&&P.getFrameRate&&($("#dbg_slower").click(EW),$("#dbg_faster").click(RW),$("#dbg_slowest").click(MW),$("#dbg_fastest").click(LW)),$("#item_addfile_include").click(XW),$("#item_addfile_link").click(zW),$("#item_request_persist").click(()=>lA(!0,!1)),$("#item_settings").click(p1),QA(),P.newCodeAnalyzer&&gt.add(null,"Analyze CPU Timing","glyphicon-time",DW),P.startProbing&&gt.add(null,"Highlight Executed Lines","glyphicon-fire",IW).prop("id","dbg_tracelines"),P.setRecorder&&P.advance&&VW(),P.showHelp){let{li:n,a:e}=af("help__"+Oe,mc+" Info");$("#help_menu").append(n),$(e).click(t=>{t.preventDefault(),window.open(P.showHelp(),"_8bws_help")})}BW();{let{li:n}=af("#help","IDE Help");$("#help_menu").prepend(n)}$("#item_tool_versions").click(NW)}function CA(){if(N){var n=ry(),e=N.getActive()instanceof un,t=n||VT(N.getActiveID(),e),r="#help/"+t;window.location.hash===r?N.createOrShow(r):window.location.hash=r}}function NW(){let n=d=>String(d==null?"":d).replace(/[&<>"]/g,h=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[h]),e=Lr[Oe]||Lr[Nt(Oe)]||Lr[Mr(Oe)],t=e&&e.arch||"\u2014",r=new Set([".a"]);for(let d in Qo)for(let h of Qo[d].extensions||[])r.add(h);let i={},s=[],o=(d,h)=>{d&&(i[d]||(i[d]=[],s.push(d)),h&&i[d].indexOf(h)<0&&i[d].push(h))};if(P.getDefaultExtensions)for(let d of r){let h=P.getToolForFilename("test"+d),u=h&&qt(h);(u&&(u.extensions||[]).indexOf(d)>=0||d===".a"&&h==="dasm")&&o(h,d)}let a=_t();if(a){let d=P.getToolForFilename(a),h=a.lastIndexOf(".");o(d,h>=0?a.substring(h):"")}s.sort((d,h)=>{var u,f;return(((u=qt(d))==null?void 0:u.naLine truncated
`),r.insertLinesBefore(o),va()})}}}):Re("Can't insert text in this window -- switch back to main file")}function WW(){var n=_t(),e=P.getToolForFilename(n);n.endsWith(".c")||e=="sdcc"||e=="cc65"||e=="cmoc"||e=="smlrc"||e=="oscar64"?Ur("Header",".h",t=>'#include "'+t+'"'):e=="dasm"||e=="zmac"?Ur("Include",".inc",t=>' include "'+t+'"'):e=="ca65"||e=="sdasz80"||e=="vasm"||e=="armips"?Ur("Include",".inc",t=>' .include "'+t+'"'):e=="verilator"?Ur("Verilog",".v",t=>'`include "'+t+'"'):e=="wiz"?Ur("Include",".wiz",t=>'import "'+t+'";'):e=="ecs"?Ur("Include",".ecs",t=>'import "'+t+'"'):e=="acme"?Ur("Include",".acme",t=>'!src "'+t+'"'):e=="xa"?Ur("Include",".xa",t=>'#include "'+t+'"'):e=="dialog"?Ur("Include",".dg",t=>'%% #include "'+t+'"'):Re("Can't add include file to this project type ("+e+")")}function NW(){var n=_t(),e=P.getToolForFilename(n);n.endsWith(".c")||e=="sdcc"||e=="cc65"||e=="cmoc"||e=="smlrc"?Ur("Linked C (or .s)",".c",t=>'//#link "'+t+'"'):n.endsWith("asm")||n.endsWith(".s")||e=="ca65"||e=="lwasm"?Ur("Linked ASM",".inc",t=>';#link "'+t+'"'):Re("Can't add linked file to this project type ("+e+")")}function BW(){if(gt=new Wi($("#toolbar")[0],null),gt.grp.prop("id","run_bar"),gt.add("mod+shift+r","Reset","glyphicon-refresh",QA).prop("id","dbg_reset"),gt.add("mod+shift+h","Pause","glyphicon-pause",OA).prop("id","dbg_pause"),gt.add("mod+shift+g","Go To Address","",n=>{pA()||cf()}),gt.add("mod+shift+g","Resume","glyphicon-play",cf).prop("id","dbg_go"),gt.add("F8","Pause/Resume","",bA),gt.add("F1","Help","",EA),P.restartAtPC&&gt.add("mod+shift+a","Restart at Cursor","glyphicon-play-circle",xA).prop("id","dbg_restartatline"),gt.newGroup(),gt.grp.prop("id","debug_bar"),P.runEval&&gt.add("mod+shift+d","Reset and Debug","glyphicon-fast-backward",TA).prop("id","dbg_restart"),P.stepBack&&gt.add("mod+shift+j","Step Backwards","glyphicon-step-backward",$A).prop("id","dbg_stepback"),P.step&&gt.add("mod+shift+l","Single Step","glyphicon-step-forward",yA).prop("id","dbg_step"),P.stepOver&&gt.add("mod+shift+k","Step Over","glyphicon-hand-right",SA).prop("id","dbg_stepover"),P.runUntilReturn&&gt.add("mod+shift+i","Step Out of Subroutine","glyphicon-hand-up",kA).prop("id","dbg_stepout"),P.runToVsync&&gt.add("mod+shift+x","Next Frame/Interrupt","glyphicon-forward",vA).prop("id","dbg_tovsync"),(P.runEval||P.runToPC)&&!Oe.startsWith("verilog")&&gt.add("mod+shift+y","Run To Line","glyphicon-save",PA).prop("id","dbg_toline"),gt.newGroup(),gt.grp.prop("id","xtra_bar"),gt.add("mod+shift+f","Search","glyphicon-search",Vb).prop("id","dbg_search"),$(".dropdown-menu").collapse({toggle:!1}),$("#item_new_file").click(uW),$("#item_upload_file").click(fW),$("#item_open_directory").click(mW),$("#item_github_login").click(I1),$("#item_github_logout").click(X1),$("#item_github_import").click(z1),$("#item_github_publish").click(W1),$("#item_github_push").click(N1),$("#item_github_pull").click(B1),$("#item_repo_delete").click(F1),$("#item_share_file").click(T1),$("#item_reset_file").click(bW),$("#item_rename_file").click(SW),$("#item_delete_file").click(yW),$("#item_download_rom").click(C1),$("#item_download_file").click(_1),$("#item_download_zip").click(R1),P.getDebugSymbolFile?$("#item_download_sym").click(M1):$("#item_download_sym").hide(),$("#item_download_allzip").click(L1),$("#item_record_video").click(D1),Lg()?$("#item_export_cassette").click(A1):$("#item_export_cassette").hide(),P.setFrameRate&&P.getFrameRate&&($("#dbg_slower").click(MW),$("#dbg_faster").click(LW),$("#dbg_slowest").click(DW),$("#dbg_fastest").click(ZW)),$("#item_addfile_include").click(WW),$("#item_addfile_link").click(NW),$("#item_request_persist").click(()=>dA(!0,!1)),$("#item_settings").click(g1),AA(),P.newCodeAnalyzer&&gt.add(null,"Analyze CPU Timing","glyphicon-time",IW),P.startProbing&&gt.add(null,"Highlight Executed Lines","glyphicon-fire",zW).prop("id","dbg_tracelines"),P.setRecorder&&P.advance&&YW(),P.showHelp){let{li:n,a:e}=af("help__"+Oe,mc+" Info");$("#help_menu").append(n),$(e).click(t=>{t.preventDefault(),window.open(P.showHelp(),"_8bws_help")})}FW();{let{li:n}=af("#help","IDE Help");$("#help_menu").prepend(n)}$("#item_tool_versions").click(VW)}function EA(){if(N){var n=sy(),e=N.getActive()instanceof un,t=n||YT(N.getActiveID(),e),r="#help/"+t;window.location.hash===r?N.createOrShow(r):window.location.hash=r}}function VW(){let n=d=>String(d==null?"":d).replace(/[&<>"]/g,h=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[h]),e=Lr[Oe]||Lr[Nt(Oe)]||Lr[Mr(Oe)],t=e&&e.arch||"\u2014",r=new Set([".a"]);for(let d in Qo)for(let h of Qo[d].extensions||[])r.add(h);let i={},s=[],o=(d,h)=>{d&&(i[d]||(i[d]=[],s.push(d)),h&&i[d].indexOf(h)<0&&i[d].push(h))};if(P.getDefaultExtensions)for(let d of r){let h=P.getToolForFilename("test"+d),u=h&&qt(h);(u&&(u.extensions||[]).indexOf(d)>=0||d===".a"&&h==="dasm")&&o(h,d)}let a=_t();if(a){let d=P.getToolForFilename(a),h=a.lastIndexOf(".");o(d,h>=0?a.substring(h):"")}s.sort((d,h)=>{var u,f;return(((u=qt(d))==null?void 0:u.naLine truncated
<table class="help">
<tr><th>Architecture</th><td>${n(t)}</td></tr>
${e&&e.cfgfile?`<tr><th>Default config</th><td>${n(e.cfgfile)}</td></tr>`:""}
${e&&e.libargs&&e.libargs.length?`<tr><th>Default libraries</th><td>${n(e.libargs.join(" "))}</td></tr>`:""}
${e&&e.define&&e.define.length?`<tr><th>Defines</th><td>${n(e.define.join(" "))}</td></tr>`:""}
</table>`,c=s.map(d=>{let h=qt(d),u=Ay(h),f=h&&h.kind||"\u2014",m=i[d].length?i[d].map(S=>`<code>${n(S)}</code>`).join(" "):"\u2014",O=h&&h.name||d;return`<tr><td>${n(O)}</td><td>${n(f)}</td><td>${n(u)}</td><td>${m}</td></tr>`}).join(`
</table>`,c=s.map(d=>{let h=qt(d),u=_y(h),f=h&&h.kind||"\u2014",m=i[d].length?i[d].map(S=>`<code>${n(S)}</code>`).join(" "):"\u2014",O=h&&h.name||d;return`<tr><td>${n(O)}</td><td>${n(f)}</td><td>${n(u)}</td><td>${m}</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">${n(mc)} <small>${n(Oe)}</small></h5>
@@ -3907,9 +3907,9 @@ value at the current clock.</li>
<tr><th>Tool</th><th>Kind</th><th>Version</th><th>Extensions</th></tr>
${c}
</table>
</div>`})}function BW(){let n=P.getToolForFilename(_t());if(!n)return;let e=qt(n);if(!e)return;let t=e.version?" ("+e.version+")":"",r=(s,o,a)=>{let{li:l,a:c}=af(s,o);$("#help_menu").append(l),$(c).click(d=>{d.preventDefault(),window.open(a,"_8bws_help")})};e.helpURL&&r("help__"+n,e.name+" Help"+t,e.helpURL);let i=Qy(n,Oe);i&&r("help__"+n+"__"+Oe,e.name+" Help for "+mc,i)}function VW(){var n=$("#replayslider"),e=$("#clockslider"),t=$("#replay_frame"),r=$("#replay_clock");P.advanceFrameClock||$("#clockdiv").hide();var i=()=>{t.text(Pn.lastSeekFrame+""),r.text(Pn.lastSeekStep+"")},s=l=>{Di();var c=parseInt(n.val().toString()),d=parseInt(e.val().toString());Pn.loadFrame(c,d)>=0&&(e.attr("min",0),e.attr("max",Pn.lastStepCount),i(),sf(P.saveState()))},o=l=>{Di(),Pn.loadFrame(l)>=0&&(n.val(l),i(),sf(P.saveState()))},a=l=>{Di();var c=parseInt(n.val().toString());Pn.loadFrame(c,l)>=0&&(e.val(l),i(),sf(P.saveState()))};Pn.callbackStateChanged=()=>{n.attr("min",0),n.attr("max",Pn.numFrames()),n.val(Pn.currentFrame()),e.val(Pn.currentStep()),i(),bc(P.saveState())},n.on("input",s),e.on("input",s),$("#replay_min").click(()=>{o(1)}),$("#replay_max").click(()=>{o(Pn.numFrames())}),$("#replay_back").click(()=>{o(parseInt(n.val().toString())-1)}),$("#replay_fwd").click(()=>{o(parseInt(n.val().toString())+1)}),$("#clock_back").click(()=>{a(parseInt(e.val().toString())-1)}),$("#clock_fwd").click(()=>{a(parseInt(e.val().toString())+1)}),$("#replay_bar").show(),gt.add("mod+shift+e","Start/Stop Replay Recording","glyphicon-record",ZW).prop("id","dbg_record")}async function FW(){if(Zi.shouldCompleteTour()){await hr("lib/bootstrap-tourist.js");var n=Oe.startsWith("vcs"),e=[{element:"#platformsMenuButton",placement:"right",title:"Platform Selector",content:`You're currently on the "<b>`+Oe+'</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:n?"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!"})),xa&&(e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Developer Analytics",content:"BTW, we send stack traces to 8bitworkshop.com 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 df(n){var e=(n.message||n.error||n)+"";if(e.indexOf("QuotaExceededError")>=0)tW();else{var t=n.error||n.reason;t!=null&&t instanceof xo?_A(t):wo()&&Zy(e,t,{platform:Oe,window:N?N.getActiveID():"",errors:N.lasterrors||[]})}}function _A(n){console.log("haltEmulation"),Di(),o8(n)}function YW(){window.addEventListener("error",df),window.addEventListener("unhandledrejection",df)}function jW(){window.removeEventListener("error",df),window.removeEventListener("unhandledrejection",df)}function no(n,e){e&&(he=e),jW(),n?window.location.replace("?"+$.param(he)):window.location.href="?"+$.param(he)}function mf(){Oe&&(he.platform=Oe),delete he[""],history.replaceState({},"","?"+$.param(he)+window.location.hash)}function EA(n){if(!n||n==="#")return null;var e=decodeURIComponent(n.substring(1));return e.startsWith("asseteditor/")?"#asseteditor":e.startsWith("headerview/")?(Kl(e.substring(11)),"#"+e):N.isWindow("#"+e)?"#"+e:N.isWindow(e)?e:null}function UW(){function n(){let e=window.location.hash,t=e&&e!=="#"?EA(e):null;if(t)t!==N.getActiveID()&&N.createOrShow(tLine truncated
</div>`})}function FW(){let n=P.getToolForFilename(_t());if(!n)return;let e=qt(n);if(!e)return;let t=e.version?" ("+e.version+")":"",r=(s,o,a)=>{let{li:l,a:c}=af(s,o);$("#help_menu").append(l),$(c).click(d=>{d.preventDefault(),window.open(a,"_8bws_help")})};e.helpURL&&r("help__"+n,e.name+" Help"+t,e.helpURL);let i=Ay(n,Oe);i&&r("help__"+n+"__"+Oe,e.name+" Help for "+mc,i)}function YW(){var n=$("#replayslider"),e=$("#clockslider"),t=$("#replay_frame"),r=$("#replay_clock");P.advanceFrameClock||$("#clockdiv").hide();var i=()=>{t.text(Pn.lastSeekFrame+""),r.text(Pn.lastSeekStep+"")},s=l=>{Di();var c=parseInt(n.val().toString()),d=parseInt(e.val().toString());Pn.loadFrame(c,d)>=0&&(e.attr("min",0),e.attr("max",Pn.lastStepCount),i(),sf(P.saveState()))},o=l=>{Di(),Pn.loadFrame(l)>=0&&(n.val(l),i(),sf(P.saveState()))},a=l=>{Di();var c=parseInt(n.val().toString());Pn.loadFrame(c,l)>=0&&(e.val(l),i(),sf(P.saveState()))};Pn.callbackStateChanged=()=>{n.attr("min",0),n.attr("max",Pn.numFrames()),n.val(Pn.currentFrame()),e.val(Pn.currentStep()),i(),bc(P.saveState())},n.on("input",s),e.on("input",s),$("#replay_min").click(()=>{o(1)}),$("#replay_max").click(()=>{o(Pn.numFrames())}),$("#replay_back").click(()=>{o(parseInt(n.val().toString())-1)}),$("#replay_fwd").click(()=>{o(parseInt(n.val().toString())+1)}),$("#clock_back").click(()=>{a(parseInt(e.val().toString())-1)}),$("#clock_fwd").click(()=>{a(parseInt(e.val().toString())+1)}),$("#replay_bar").show(),gt.add("mod+shift+e","Start/Stop Replay Recording","glyphicon-record",XW).prop("id","dbg_record")}async function jW(){if(Zi.shouldCompleteTour()){await hr("lib/bootstrap-tourist.js");var n=Oe.startsWith("vcs"),e=[{element:"#platformsMenuButton",placement:"right",title:"Platform Selector",content:`You're currently on the "<b>`+Oe+'</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:n?"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!"})),xa&&(e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Developer Analytics",content:"BTW, we send stack traces to 8bitworkshop.com 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 df(n){var e=(n.message||n.error||n)+"";if(e.indexOf("QuotaExceededError")>=0)rW();else{var t=n.error||n.reason;t!=null&&t instanceof xo?RA(t):wo()&&Xy(e,t,{platform:Oe,window:N?N.getActiveID():"",errors:N.lasterrors||[]})}}function RA(n){console.log("haltEmulation"),Di(),c8(n)}function UW(){window.addEventListener("error",df),window.addEventListener("unhandledrejection",df)}function qW(){window.removeEventListener("error",df),window.removeEventListener("unhandledrejection",df)}function no(n,e){e&&(he=e),qW(),n?window.location.replace("?"+$.param(he)):window.location.href="?"+$.param(he)}function mf(){Oe&&(he.platform=Oe),delete he[""],history.replaceState({},"","?"+$.param(he)+window.location.hash)}function MA(n){if(!n||n==="#")return null;var e=decodeURIComponent(n.substring(1));return e.startsWith("asseteditor/")?"#asseteditor":e.startsWith("headerview/")?(Kl(e.substring(11)),"#"+e):N.isWindow("#"+e)?"#"+e:N.isWindow(e)?e:null}function GW(){function n(){let e=window.location.hash,t=e&&e!=="#"?MA(e):null;if(t)t!==N.getActiveID()&&N.createOrShow(tLine truncated
`)>=0?(i.css({display:"inline-block","font-family":"monospace"}),r.split(`
`).forEach((s,o)=>{o&&i.append("<br>"),i.append(document.createTextNode(s))})):i.text(r)}t.append(document.createTextNode(" "+e.action)),n.append(" ")}return n.children().length>0}function KW(){var n=$("#emucontrols");if(HW(n)){Oe.endsWith(".mame")&&n.show();var e=$("#emulator").find("canvas");e&&(e.on("focus",()=>{P.isRunning()&&(n.fadeIn(200),P.resume())}),e.on("blur",()=>{n.fadeOut(200)}))}}async function JW(){if(!xf[Oe])throw Error("Invalid platform '"+Oe+"'.");let n=$("#emuscreen")[0],e=vf(he.options||"");P=new xf[Oe](n,e),i8(),Pn=new X0(P);let t=P.getPresets?P.getPresets():[];if(!he.file){var r=Zi.getLastPreset(),i=r||(Et?null:t[0]&&t[0].id);he.file=i||"DEFAULT",i||Re("There is no default main file for this project. Try selecting one from the pulldown.")}Oe=="vcs"&&he.file.startsWith("examples/")&&!he.file.endsWith(".a")&&(he.file+=".a");var s=window.location.hash;mf(),YW(),R0(_A),xy(),await P.start(),await xW(),await iW(),await aW(he.file),qW(s),UW(),P.sourceFileFetch=o=>re.filedata[o],WW(),!ds&&$("#shortcuts_bar").length&&(U0($("#shortcuts_bar")[0]),H0($W),K0(()=>{var o=N.id2div[N.activeid],a=o&&document.activeElement&&o.contains(document.activeElement),l=N.getActive(),c=a&&l&&l.getShortcuts?l.getShortcuts():[];return[...QW(),...c]}),$(document).on("focusin focusout",()=>Wn()),Wn(),Cc(na().showStatusBar)),GW(),KW(),tn?e8():(Oc(),t8(),FW()),RA()}function e8(){$("#dropdownMenuButton").hide(),$("#platformsMenuButton").hide(),$("#booksMenuButton").hide()}function t8(){var n=N0(Oe);for(var e of $c){var t=$('<a class="dropdown-item dropdown-link">').attr({href:e.url,target:"_book_"+e.id}).toggleClass("book-active",e===n).append($("<img>").attr("src","images/"+e.image)).append("&nbsp;&nbsp;",$('<span class="book-title">').text(e.title));$("#booksMenuList").append($("<li>").append(t))}}function RA(){setTimeout(()=>{$("#controls_dynamic").css("visibility","inherit")},250)}function n8(n){let e=vo(he.ignore)||tn;Je(!0),Sf(n,async t=>{if(t){var r=yt(n);console.log("Importing "+t.length+" bytes as "+r);try{var i=await $r.getItem(r);Je(!1),i!=null&&e||(i==null||confirm("Replace existing file '"+r+"'?"))&&await $r.setItem(r,t),delete he.importURL,he.file=r,mf(),LA()}finally{Je(!1)}}else Re("Could not load source code from URL: "+n),Je(!1)},"text")}async function r8(){var n=vo(he.ignore),e=vo(he.force);tn?n=!e:e=!1;for(var t=0;t<20;t++){let i=he["file"+t+"_name"],s=he["file"+t+"_data"];if(i==null||s==null)break;var r=await $r.getItem(i);if(!(n&&r)){let o=s;he["file"+t+"_type"]=="binary"&&(o=yc(atob(o))),(!r||e||confirm("Replace existing file '"+i+"'?"))&&await $r.setItem(i,o)}t==0&&(he.file=i),delete he["file"+t+"_name"],delete he["file"+t+"_data"],delete he["file"+t+"_type"]}delete he.ignore,delete he.force,mf()}function i8(){var n=P.getPlatformName&&P.getPlatformName(),e=$('a[href="?platform='+Oe+'"]');e.length&&(e.addClass("dropdown-item-checked"),n=n||e.text()||n),mc=n||Oe,$(".platform_name").text(mc)}function s8(){if(Oe=he.platform||Zi.getLastPlatformID(),Et=he.repo,!he.repo&&!he.file&&(Et=Zi.getLastRepoID(Oe)),nr&&Et&&Et!=="/"){var n=Js()[Et];n&&(console.log(Oe,he,n),he.repo=Et,n.platform_id&&!he.platform&&(he.platform=Oe=n.platform_id),n.mainPath&&!he.file&&(he.file=n.mainPath))}else Et="",delete he.repo;Oe||(tn&&Xy("The 'platform' must be specified when embed=1"),Oe=he.platform="vcs")}async function MA(){if(he.githubURL){Cl(he.githubURL,!0);return}if(nr&&he.repo&&!Js()[he.repo]&&he.repo!=="/"){if(confirm(`Repository '${he.repo}' was not found locally. Import it from GitHub?`)){Cl("https://github.com/"+he.repo,!0);return}delete he.repo}if(s8(),eA({getPlatformId:()=>Oe,isEmbed:tn,hasLocalStorage:nr,resizePlatform:()=>{P&&P.resize&&P.resize()},resizeWindows:()=>{N&&N.resize()},onTabChanged:n=>{Oo()&&(n!=="emulator"?P.isRunning()&&(Di(),m0=!0):m0&&(m0=!1,P.isRunning()||ci()))}}),go=Et||Nt(Oe),tn&&(go=(document.referrer||document.location.href)+go),$r=bh(go),he.importURL){n8(he.importURL);return}he.file0_name&&await r8(),LA()}async function LA(){try{var n=await z0(Mr(Oe));console.log("starting platform",Oe),await JW(),N.titlePrefix=document.title+" ["+Oe+"] - "+(Et?"["+Et+"] - ":""),N.updateTitle(N.getActiveID()||re.mainPath)}catch(e){console.log(e),Re('Platform "'+Oe+'" failed to load.')}finally{RA()}}function o7(n,e){P.writeFile(n,e)}function a7(n){return P.readFile(n)}function l7(){return P.saveState()}function o8(n){var e=n&&n.message||e;if(dA(n,e),N.refresh(!1),P.saveState){let t=P.saveState();bc(t)}}async function c7(n){var e=re.filedata[n];e!=null&&(N.updateFile(n,await alternateLocalFilesystem.getFileData(n)),console.log("updating file",n))}function a8(){if(xa&&Li instanceof Uint8Array){var n=Zt(_t()),e=P.getROMExtension&&P.getROMExtension(Li)||"-"+Nt(Oe)+".bin";alternateLocalFilesystem.setFileData(`bin/${n}${e}`,Li)}}function l8(){let n=!1;new IntersectionObserver((t,r)=>{for(var i of t)i.isIntersecting&&!n&&(MA(),n=!0),i.intersectionRatio==0&&Oo()&&P.isRunning()&&Di(),i.intersectionRatio>0&&Oo()&&!P.i Line truncated
`).forEach((s,o)=>{o&&i.append("<br>"),i.append(document.createTextNode(s))})):i.text(r)}t.append(document.createTextNode(" "+e.action)),n.append(" ")}return n.children().length>0}function e8(){let n=$("#emuaudiohint");if(!n.length)return;let e=!1,t=()=>{L0()?(e=!0,n.show()):(n.hide(),e&&r())},r=D0(t);t()}function t8(){e8();var n=$("#emucontrols");if(JW(n)){Oe.endsWith(".mame")&&n.show();var e=$("#emulator").find("canvas");e&&(e.on("focus",()=>{P.isRunning()&&(n.fadeIn(200),P.resume())}),e.on("blur",()=>{n.fadeOut(200)}))}}async function n8(){if(!xf[Oe])throw Error("Invalid platform '"+Oe+"'.");let n=$("#emuscreen")[0],e=vf(he.options||"");P=new xf[Oe](n,e),a8(),Pn=new W0(P);let t=P.getPresets?P.getPresets():[];if(!he.file){var r=Zi.getLastPreset(),i=r||(Et?null:t[0]&&t[0].id);he.file=i||"DEFAULT",i||Re("There is no default main file for this project. Try selecting one from the pulldown.")}Oe=="vcs"&&he.file.startsWith("examples/")&&!he.file.endsWith(".a")&&(he.file+=".a");var s=window.location.hash;mf(),UW(),R0(RA),ky(),await P.start(),await kW(),await oW(),await cW(he.file),HW(s),GW(),P.sourceFileFetch=o=>re.filedata[o],BW(),!ds&&$("#shortcuts_bar").length&&(G0($("#shortcuts_bar")[0]),J0(TW),ey(()=>{var o=N.id2div[N.activeid],a=o&&document.activeElement&&o.contains(document.activeElement),l=N.getActive(),c=a&&l&&l.getShortcuts?l.getShortcuts():[];return[...AW(),...c]}),$(document).on("focusin focusout",()=>Wn()),Wn(),Cc(na().showStatusBar)),KW(),t8(),tn?r8():(Oc(),i8(),jW()),LA()}function r8(){$("#dropdownMenuButton").hide(),$("#platformsMenuButton").hide(),$("#booksMenuButton").hide()}function i8(){var n=V0(Oe);for(var e of $c){var t=$('<a class="dropdown-item dropdown-link">').attr({href:e.url,target:"_book_"+e.id}).toggleClass("book-active",e===n).append($("<img>").attr("src","images/"+e.image)).append("&nbsp;&nbsp;",$('<span class="book-title">').text(e.title));$("#booksMenuList").append($("<li>").append(t))}}function LA(){setTimeout(()=>{$("#controls_dynamic").css("visibility","inherit")},250)}function s8(n){let e=vo(he.ignore)||tn;Je(!0),Sf(n,async t=>{if(t){var r=yt(n);console.log("Importing "+t.length+" bytes as "+r);try{var i=await $r.getItem(r);Je(!1),i!=null&&e||(i==null||confirm("Replace existing file '"+r+"'?"))&&await $r.setItem(r,t),delete he.importURL,he.file=r,mf(),ZA()}finally{Je(!1)}}else Re("Could not load source code from URL: "+n),Je(!1)},"text")}async function o8(){var n=vo(he.ignore),e=vo(he.force);tn?n=!e:e=!1;for(var t=0;t<20;t++){let i=he["file"+t+"_name"],s=he["file"+t+"_data"];if(i==null||s==null)break;var r=await $r.getItem(i);if(!(n&&r)){let o=s;he["file"+t+"_type"]=="binary"&&(o=yc(atob(o))),(!r||e||confirm("Replace existing file '"+i+"'?"))&&await $r.setItem(i,o)}t==0&&(he.file=i),delete he["file"+t+"_name"],delete he["file"+t+"_data"],delete he["file"+t+"_type"]}delete he.ignore,delete he.force,mf()}function a8(){var n=P.getPlatformName&&P.getPlatformName(),e=$('a[href="?platform='+Oe+'"]');e.length&&(e.addClass("dropdown-item-checked"),n=n||e.text()||n),mc=n||Oe,$(".platform_name").text(mc)}function l8(){if(Oe=he.platform||Zi.getLastPlatformID(),Et=he.repo,!he.repo&&!he.file&&(Et=Zi.getLastRepoID(Oe)),nr&&Et&&Et!=="/"){var n=Js()[Et];n&&(console.log(Oe,he,n),he.repo=Et,n.platform_id&&!he.platform&&(he.platform=Oe=n.platform_id),n.mainPath&&!he.file&&(he.file=n.mainPath))}else Et="",delete he.repo;Oe||(tn&&Wy("The 'platform' must be specified when embed=1"),Oe=he.platform="vcs")}async function DA(){if(he.githubURL){Cl(he.githubURL,!0);return}if(nr&&he.repo&&!Js()[he.repo]&&he.repo!=="/"){if(confirm(`Repository '${he.repo}' was not found locally. Import it from GitHub?`)){Cl("https://github.com/"+he.repo,!0);return}delete he.repo}if(l8(),nA({getPlatformId:()=>Oe,isEmbed:tn,hasLocalStorage:nr,resizePlatform:()=>{P&&P.resize&&P.resize()},resizeWindows:()=>{N&&N.resize()},onTabChanged:n=>{Oo()&&(n!=="emulator"?P.isRunning()&&(Di(),m0=!0):m0&&(m0=!1,P.isRunning()||ci()))}}),go=Et||Nt(Oe),tn&&(go=(document.referrer||document.location.href)+go),$r=bh(go),he.importURL){s8(he.importURL);return}he.file0_name&&await o8(),ZA()}async function ZA(){try{var n=await N0(Mr(Oe));console.log("starting platform",Oe),await n8(),N.titlePrefix=document.title+" ["+Oe+"] - "+(Et?"["+Et+"] - ":""),N.updateTitle(N.getActiveID()||re.mainPath)}catch(e){console.log(e),Re('Platform "'+Oe+'" failed to load.')}finally{LA()}}function d7(n,e){P.writeFile(n,e)}function h7(n){return P.readFile(n)}function u7(){return P.saveState()}function c8(n){var e=n&&n.message||e;if(uA(n,e),N.refresh(!1),P.saveState){let t=P.saveState();bc(t)}}async function f7(n){var e=re.filedata[n];e!=null&&(N.updateFile(n,await alternateLocalFilesystem.getFileData(n)),console.log("updating file",n))}function d8(){if(xa&&Li instanceof Uint8Array){var n=Zt(_t()),e=P.getROMExtension&&P.getROMExtension(Li)||"-"+Nt(Oe)+".bin";alternateLocalFilesystem.setFileData(`bin/${n}${e}`,Li)}}function h8(){let n=!1;new IntersectionObserver((t,r)=>{ 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/books.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", "../src/common/waveformcore.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/worker/listingutils.ts", "../src/common/workertypes.ts", "../src/common/telemetry.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/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/traceheat.ts", "../src/ide/views/visuals.ts", "../src/ide/views/editors.ts", "../src/common/vtextscroller.ts", "../src/ide/views/memmaplayout.ts", "../src/common/symbols/dumplines.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/callgraph.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/cc65-upgrade.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/common/callgraph.ts", "../src/common/statehash.ts", "../src/common/debugcontroller.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", "k", "getItem", "transaction", "store", "req", "iterate", "iterator", "iterationNumber", "cursor", "setItem", "blobSupport", "removeItem", "clear", "advanced", "keys", "dropInstance", "currentConfig", "isCurrentDb", "dbPromise", "newVersion", "dropObjectPromise", "j", "_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", "k", "getItem", "transaction", "store", "req", "iterate", "iterator", "iterationNumber", "cursor", "setItem", "blobSupport", "removeItem", "clear", "advanced", "keys", "dropInstance", "currentConfig", "isCurrentDb", "dbPromise", "newVersion", "dropObjectPromise", "j", "_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
}
+2 -2
View File
@@ -1,4 +1,4 @@
import{a as $r}from"./chunk-O3XXQS4T.js";import{a as sn}from"./chunk-UNDRK5PG.js";import{A as Qr,G as _r,I as ln,a as en,p as an,q as rr,x as on}from"./chunk-FFJHITEL.js";import{e as tr}from"./chunk-UXRCACYH.js";import{G as Jr,P as $t,T as tn,U as rn,Y as er,a as Z,aa as qr,ba as ue,ea as nn,g as Ee,h as ze}from"./chunk-VZWSP3EG.js";import{e as le}from"./chunk-N7W4C4V2.js";var Ln=le(($l,Ht)=>{"use strict";function Kt(e){let r=e.length;for(;--r>=0;)e[r]=0}var M0=0,hn=1,K0=2,j0=3,H0=258,oi=29,sr=256,nr=sr+1+oi,Mt=30,li=19,pn=2*nr+1,vt=15,ei=16,Y0=7,si=256,An=16,Sn=17,gn=18,ni=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Rr=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),V0=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),vn=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),z0=512,We=new Array((nr+2)*2);Kt(We);var ir=new Array(Mt*2);Kt(ir);var ar=new Array(z0);Kt(ar);var or=new Array(H0-j0+1);Kt(or);var fi=new Array(oi);Kt(fi);var Dr=new Array(Mt);Kt(Dr);function ti(e,r,t,a,i){this.static_tree=e,this.extra_bits=r,this.extra_base=t,this.elems=a,this.max_length=i,this.has_stree=e&&e.length}var mn,Cn,bn;function ri(e,r){this.dyn_tree=e,this.max_code=0,this.stat_desc=r}var yn=e=>e<256?ar[e]:ar[256+(e>>>7)],lr=(e,r)=>{e.pending_buf[e.pending++]=r&255,e.pending_buf[e.pending++]=r>>>8&255},pe=(e,r,t)=>{e.bi_valid>ei-t?(e.bi_buf|=r<<e.bi_valid&65535,lr(e,e.bi_buf),e.bi_buf=r>>ei-e.bi_valid,e.bi_valid+=t-ei):(e.bi_buf|=r<<e.bi_valid&65535,e.bi_valid+=t)},De=(e,r,t)=>{pe(e,t[r*2],t[r*2+1])},Pn=(e,r)=>{let t=0;do t|=e&1,e>>>=1,t<<=1;while(--r>0);return t>>>1},W0=e=>{e.bi_valid===16?(lr(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},G0=(e,r)=>{let t=r.dyn_tree,a=r.max_code,i=r.stat_desc.static_tree,n=r.stat_desc.has_stree,o=r.stat_desc.extra_bits,l=r.stat_desc.extra_base,f=r.stat_desc.max_length,s,d,P,g,c,v,w=0;for(g=0;g<=vt;g++)e.bl_count[g]=0;for(t[e.heap[e.heap_max]*2+1]=0,s=e.heap_max+1;s<pn;s++)d=e.heap[s],g=t[t[d*2+1]*2+1]+1,g>f&&(g=f,w++),t[d*2+1]=g,!(d>a)&&(e.bl_count[g]++,c=0,d>=l&&(c=o[d-l]),v=t[d*2],e.opt_len+=v*(g+c),n&&(e.static_len+=v*(i[d*2+1]+c)));if(w!==0){do{for(g=f-1;e.bl_count[g]===0;)g--;e.bl_count[g]--,e.bl_count[g+1]+=2,e.bl_count[f]--,w-=2}while(w>0);for(g=f;g!==0;g--)for(d=e.bl_count[g];d!==0;)P=e.heap[--s],!(P>a)&&(t[P*2+1]!==g&&(e.opt_len+=(g-t[P*2+1])*t[P*2],t[P*2+1]=g),d--)}},En=(e,r,t)=>{let a=new Array(vt+1),i=0,n,o;for(n=1;n<=vt;n++)i=i+t[n-1]<<1,a[n]=i;for(o=0;o<=r;o++){let l=e[o*2+1];l!==0&&(e[o*2]=Pn(a[l]++,l))}},X0=()=>{let e,r,t,a,i,n=new Array(vt+1);for(t=0,a=0;a<oi-1;a++)for(fi[a]=t,e=0;e<1<<ni[a];e++)or[t++]=a;for(or[t-1]=a,i=0,a=0;a<16;a++)for(Dr[a]=i,e=0;e<1<<Rr[a];e++)ar[i++]=a;for(i>>=7;a<Mt;a++)for(Dr[a]=i<<7,e=0;e<1<<Rr[a]-7;e++)ar[256+i++]=a;for(r=0;r<=vt;r++)n[r]=0;for(e=0;e<=143;)We[e*2+1]=8,e++,n[8]++;for(;e<=255;)We[e*2+1]=9,e++,n[9]++;for(;e<=279;)We[e*2+1]=7,e++,n[7]++;for(;e<=287;)We[e*2+1]=8,e++,n[8]++;for(En(We,nr+1,n),e=0;e<Mt;e++)ir[e*2+1]=5,ir[e*2]=Pn(e,5);mn=new ti(We,ni,sr+1,nr,vt),Cn=new ti(ir,Rr,0,Mt,vt),bn=new ti(new Array(0),V0,0,li,Y0)},Bn=e=>{let r;for(r=0;r<nr;r++)e.dyn_ltree[r*2]=0;for(r=0;r<Mt;r++)e.dyn_dtree[r*2]=0;for(r=0;r<li;r++)e.bl_tree[r*2]=0;e.dyn_ltree[si*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},wn=e=>{e.bi_valid>8?lr(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},fn=(e,r,t,a)=>{let i=r*2,n=t*2;return e[i]<e[n]||e[i]===e[n]&&a[r]<=a[t]},ii=(e,r,t)=>{let a=e.heap[t],i=t<<1;for(;i<=e.heap_len&&(i<e.heap_len&&fn(r,e.heap[i+1],e.heap[i],e.depth)&&i++,!fn(r,a,e.heap[i],e.depth));)e.heap[t]=e.heap[i],t=i,i<<=1;e.heap[t]=a},cn=(e,r,t)=>{let a,i,n=0,o,l;if(e.sym_next!==0)do a=e.pending_buf[e.sym_buf+n++]&255,a+=(e.pending_buf[e.sym_buf+n++]&255)<<8,i=e.pending_buf[e.sym_buf+n++],a===0?De(e,i,r):(o=or[i],De(e,o+sr+1,r),l=ni[o],l!==0&&(i-=fi[o],pe(e,i,l)),a--,o=yn(a),De(e,o,t),l=Rr[o],l!==0&&(a-=Dr[o],pe(e,a,l)));while(n<e.sym_next);De(e,si,r)},ai=(e,r)=>{let t=r.dyn_tree,a=r.stat_desc.static_tree,i=r.stat_desc.has_stree,n=r.stat_desc.elems,o,l,f=-1,s;for(e.heap_len=0,e.heap_max=pn,o=0;o<n;o++)t[o*2]!==0?(e.heap[++e.heap_len]=f=o,e.depth[o]=0):t[o*2+1]=0;for(;e.heap_len<2;)s=e.heap[++e.heap_len]=f<2?++f:0,t[s*2]=1,e.depth[s]=0,e.opt_len--,i&&(e.static_len-=a[s*2+1]);for(r.max_code=f,o=e.heap_len>>1;o>=1;o--)ii(e,t,o);s=n;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],ii(e,t,1),l=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=l,t[s*2]=t[o*2]+t[l*2],e.depth[s]=(e.depth[o]>=e.depth[l]?e.depth[o]:e.depth[l])+1,t[o*2+1]=t[l*2+1]=s,e.heap[1]=s++,ii(e,t,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],G0(e,r),En(t,f,e.bl_count)},un=(e,r,t)=>{let a,i=-1,n,o=r[1],l=0,f=7,s=4;for(o===0&&(f=138,s=3),r[(t+1)*2+1]=65535,a=0;a<=t;a++)n=o,o=r[(a+1)*2+1],!(++l<f&&n===o)&&(l<s?e.bl_tree[n*2]+=l:n!==0?(n!==i&&e.bl_tree[n*2]++,e.bl_tree[An*2]+Line truncated
import{a as $r}from"./chunk-O3XXQS4T.js";import{a as sn}from"./chunk-JELKPLZC.js";import{C as Qr,I as _r,K as ln,a as en,r as an,s as rr,z as on}from"./chunk-4YTESWOC.js";import{e as tr}from"./chunk-UXRCACYH.js";import{G as Jr,P as $t,T as tn,U as rn,Y as er,a as Z,aa as qr,ba as ue,ea as nn,g as Ee,h as ze}from"./chunk-VZWSP3EG.js";import{e as le}from"./chunk-N7W4C4V2.js";var Ln=le(($l,Ht)=>{"use strict";function Kt(e){let r=e.length;for(;--r>=0;)e[r]=0}var M0=0,hn=1,K0=2,j0=3,H0=258,oi=29,sr=256,nr=sr+1+oi,Mt=30,li=19,pn=2*nr+1,vt=15,ei=16,Y0=7,si=256,An=16,Sn=17,gn=18,ni=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Rr=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),V0=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),vn=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),z0=512,We=new Array((nr+2)*2);Kt(We);var ir=new Array(Mt*2);Kt(ir);var ar=new Array(z0);Kt(ar);var or=new Array(H0-j0+1);Kt(or);var fi=new Array(oi);Kt(fi);var Dr=new Array(Mt);Kt(Dr);function ti(e,r,t,a,i){this.static_tree=e,this.extra_bits=r,this.extra_base=t,this.elems=a,this.max_length=i,this.has_stree=e&&e.length}var mn,Cn,bn;function ri(e,r){this.dyn_tree=e,this.max_code=0,this.stat_desc=r}var yn=e=>e<256?ar[e]:ar[256+(e>>>7)],lr=(e,r)=>{e.pending_buf[e.pending++]=r&255,e.pending_buf[e.pending++]=r>>>8&255},pe=(e,r,t)=>{e.bi_valid>ei-t?(e.bi_buf|=r<<e.bi_valid&65535,lr(e,e.bi_buf),e.bi_buf=r>>ei-e.bi_valid,e.bi_valid+=t-ei):(e.bi_buf|=r<<e.bi_valid&65535,e.bi_valid+=t)},De=(e,r,t)=>{pe(e,t[r*2],t[r*2+1])},Pn=(e,r)=>{let t=0;do t|=e&1,e>>>=1,t<<=1;while(--r>0);return t>>>1},W0=e=>{e.bi_valid===16?(lr(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},G0=(e,r)=>{let t=r.dyn_tree,a=r.max_code,i=r.stat_desc.static_tree,n=r.stat_desc.has_stree,o=r.stat_desc.extra_bits,l=r.stat_desc.extra_base,f=r.stat_desc.max_length,s,d,P,g,c,v,w=0;for(g=0;g<=vt;g++)e.bl_count[g]=0;for(t[e.heap[e.heap_max]*2+1]=0,s=e.heap_max+1;s<pn;s++)d=e.heap[s],g=t[t[d*2+1]*2+1]+1,g>f&&(g=f,w++),t[d*2+1]=g,!(d>a)&&(e.bl_count[g]++,c=0,d>=l&&(c=o[d-l]),v=t[d*2],e.opt_len+=v*(g+c),n&&(e.static_len+=v*(i[d*2+1]+c)));if(w!==0){do{for(g=f-1;e.bl_count[g]===0;)g--;e.bl_count[g]--,e.bl_count[g+1]+=2,e.bl_count[f]--,w-=2}while(w>0);for(g=f;g!==0;g--)for(d=e.bl_count[g];d!==0;)P=e.heap[--s],!(P>a)&&(t[P*2+1]!==g&&(e.opt_len+=(g-t[P*2+1])*t[P*2],t[P*2+1]=g),d--)}},En=(e,r,t)=>{let a=new Array(vt+1),i=0,n,o;for(n=1;n<=vt;n++)i=i+t[n-1]<<1,a[n]=i;for(o=0;o<=r;o++){let l=e[o*2+1];l!==0&&(e[o*2]=Pn(a[l]++,l))}},X0=()=>{let e,r,t,a,i,n=new Array(vt+1);for(t=0,a=0;a<oi-1;a++)for(fi[a]=t,e=0;e<1<<ni[a];e++)or[t++]=a;for(or[t-1]=a,i=0,a=0;a<16;a++)for(Dr[a]=i,e=0;e<1<<Rr[a];e++)ar[i++]=a;for(i>>=7;a<Mt;a++)for(Dr[a]=i<<7,e=0;e<1<<Rr[a]-7;e++)ar[256+i++]=a;for(r=0;r<=vt;r++)n[r]=0;for(e=0;e<=143;)We[e*2+1]=8,e++,n[8]++;for(;e<=255;)We[e*2+1]=9,e++,n[9]++;for(;e<=279;)We[e*2+1]=7,e++,n[7]++;for(;e<=287;)We[e*2+1]=8,e++,n[8]++;for(En(We,nr+1,n),e=0;e<Mt;e++)ir[e*2+1]=5,ir[e*2]=Pn(e,5);mn=new ti(We,ni,sr+1,nr,vt),Cn=new ti(ir,Rr,0,Mt,vt),bn=new ti(new Array(0),V0,0,li,Y0)},Bn=e=>{let r;for(r=0;r<nr;r++)e.dyn_ltree[r*2]=0;for(r=0;r<Mt;r++)e.dyn_dtree[r*2]=0;for(r=0;r<li;r++)e.bl_tree[r*2]=0;e.dyn_ltree[si*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},wn=e=>{e.bi_valid>8?lr(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},fn=(e,r,t,a)=>{let i=r*2,n=t*2;return e[i]<e[n]||e[i]===e[n]&&a[r]<=a[t]},ii=(e,r,t)=>{let a=e.heap[t],i=t<<1;for(;i<=e.heap_len&&(i<e.heap_len&&fn(r,e.heap[i+1],e.heap[i],e.depth)&&i++,!fn(r,a,e.heap[i],e.depth));)e.heap[t]=e.heap[i],t=i,i<<=1;e.heap[t]=a},cn=(e,r,t)=>{let a,i,n=0,o,l;if(e.sym_next!==0)do a=e.pending_buf[e.sym_buf+n++]&255,a+=(e.pending_buf[e.sym_buf+n++]&255)<<8,i=e.pending_buf[e.sym_buf+n++],a===0?De(e,i,r):(o=or[i],De(e,o+sr+1,r),l=ni[o],l!==0&&(i-=fi[o],pe(e,i,l)),a--,o=yn(a),De(e,o,t),l=Rr[o],l!==0&&(a-=Dr[o],pe(e,a,l)));while(n<e.sym_next);De(e,si,r)},ai=(e,r)=>{let t=r.dyn_tree,a=r.stat_desc.static_tree,i=r.stat_desc.has_stree,n=r.stat_desc.elems,o,l,f=-1,s;for(e.heap_len=0,e.heap_max=pn,o=0;o<n;o++)t[o*2]!==0?(e.heap[++e.heap_len]=f=o,e.depth[o]=0):t[o*2+1]=0;for(;e.heap_len<2;)s=e.heap[++e.heap_len]=f<2?++f:0,t[s*2]=1,e.depth[s]=0,e.opt_len--,i&&(e.static_len-=a[s*2+1]);for(r.max_code=f,o=e.heap_len>>1;o>=1;o--)ii(e,t,o);s=n;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],ii(e,t,1),l=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=l,t[s*2]=t[o*2]+t[l*2],e.depth[s]=(e.depth[o]>=e.depth[l]?e.depth[o]:e.depth[l])+1,t[o*2+1]=t[l*2+1]=s,e.heap[1]=s++,ii(e,t,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],G0(e,r),En(t,f,e.bl_count)},un=(e,r,t)=>{let a,i=-1,n,o=r[1],l=0,f=7,s=4;for(o===0&&(f=138,s=3),r[(t+1)*2+1]=65535,a=0;a<=t;a++)n=o,o=r[(a+1)*2+1],!(++l<f&&n===o)&&(l<s?e.bl_tree[n*2]+=l:n!==0?(n!==i&&e.bl_tree[n*2]++,e.bl_tree[An*2]+Line truncated
A: `+n.toString(16)+" X: "+o.toString(16)+" Y: "+l.toString(16)+" SP: "+i.toString(16)+" N"+f+" V"+s+" D"+d+" I"+P+" Z"+g+" C"+c+" "},this.breakpoint=function(p){if(jt.Util.log(p),this.trace){var T="CPU Breakpoint! "+(p?"("+p+")":"")+`
`+this.toString();jt.Util.message(T)}},this.runCycles=function(p){for(var T=performance.now(),B=0;B<p;B++)this.clockPulse();var M=performance.now();jt.Util.message("Done running "+p+" cycles in "+(M-T)+" ms.")}};jt.Ram=function(){"use strict";function e(){for(var o=r.length-1;o>=0;o--)r[o]=jt.Util.random()*256|0}this.powerOn=function(){},this.powerOff=function(){},this.read=function(o){return r[o&t]},this.write=function(o,l){r[o&t]=l},this.powerFry=function(){for(var o=1-n+2*jt.Util.random()*n,l=o*a,f=0;f<l;f++)r[jt.Util.random()*128|0]&=jt.Util.random()*256|0;var s=o*i;for(f=0;f<s;f++)r[jt.Util.random()*128|0]|=1<<(jt.Util.random()*8|0)},this.saveState=function(){return{b:jt.Util.storeInt8BitArrayToStringBase64(r)}},this.loadState=function(o){r=jt.Util.restoreStringBase64ToInt8BitArray(o.b,r)};var r=new Array(128),t=127,a=120,i=25,n=.3;e()};jt.Pia=function(){"use strict";this.powerOn=function(){},this.powerOff=function(){},this.clockPulse=function(){--l<=0&&e()},this.connectBus=function(L){o=L},this.read=function(L){var R=L&b;return R===4||R===6?(t(),v):R===0?d:R===2?g:R===1?P:R===3?c:R===5||R===7?w:0},this.write=function(L,R){var D=L&b;if(D===4){O=R,r(R,1);return}if(D===5){u=R,r(R,8);return}if(D===6){m=R,r(R,64);return}if(D===7){C=R,r(R,1024);return}if(D===2){a(R);return}if(D===3){c=R,i(">>>> Ineffective Write to PIA SWBCNT: "+R);return}if(D===0){i(">>>> Unsupported Write to PIA SWCHA: "+R);return}if(D===1){i(">>>> Unsupported Write to PIA SWACNT "+R);return}return 0};var e=function(){--v<0?(w|=192,v=255,l=f=1):l=f},r=function(L,R){v=L,w&=63,l=f=s=R,e()},t=function(){w&=191,f===1&&(l=f=s)},a=function(L){g=g&203|L&34},i=function(L){self.debug&&jt.Util.log(L)},n=jt.ConsoleControls;this.controlStateChanged=function(L,R){switch(L){case n.JOY0_UP:R?d&=239:d|=16;return;case n.JOY0_DOWN:R?d&=223:d|=32;return;case n.PADDLE1_BUTTON:case n.JOY0_LEFT:R?d&=191:d|=64;return;case n.PADDLE0_BUTTON:case n.JOY0_RIGHT:R?d&=127:d|=128;return;case n.JOY1_UP:R?d&=254:d|=1;return;case n.JOY1_DOWN:R?d&=253:d|=2;return;case n.JOY1_LEFT:R?d&=251:d|=4;return;case n.JOY1_RIGHT:R?d&=247:d|=8;return;case n.RESET:R?g&=254:g|=1;return;case n.SELECT:R?g&=253:g|=2;return}if(R)switch(L){case n.BLACK_WHITE:(g&8)==0?g|=8:g&=247,o.getTia().getVideoOutput().showOSD((g&8)!=0?"COLOR":"B/W",!0);return;case n.DIFFICULTY0:(g&64)==0?g|=64:g&=191,o.getTia().getVideoOutput().showOSD((g&64)!=0?"P1 Expert":"P1 Novice",!0);return;case n.DIFFICULTY1:(g&128)==0?g|=128:g&=127,o.getTia().getVideoOutput().showOSD((g&128)!=0?"P2 Expert":"P2 Novice",!0);return}},this.controlsStateReport=function(L){L[n.BLACK_WHITE]=(g&8)===0,L[n.DIFFICULTY0]=(g&64)!==0,L[n.DIFFICULTY1]=(g&128)!==0,L[n.SELECT]=(g&2)===0,L[n.RESET]=(g&1)===0},this.saveState=function(){return{t:l,c:f,l:s,SA:d,SAC:P,SB:g,SBC:c,IT:v,IS:w,T1:O,T8:u,T6:m,T2:C}},this.loadState=function(L){l=L.t,f=L.c,s=L.l,d=L.SA,P=L.SAC,g=L.SB,c=L.SBC,v=L.IT,w=L.IS,O=L.T1,u=L.T8,m=L.T6,C=L.T2},this.saveControlsState=function(){return{SA:d,SB:g}},this.loadControlsState=function(L){d=L.SA,g=L.SB},this.debug=!1;var o,l=1024,f=1024,s=1024,d=255,P=0,g=11,c=0,v=jt.Util.random()*256|0,w=0,O=0,u=0,m=0,C=0,b=7};(function(){"use strict";for(var e=[0,4210752,7105644,9474192,11579568,13158600,14474460,16053492,17476,1074276,2393220,3448992,4241592,5296336,6088936,6880508,10352,1328260,2645144,3963052,5016764,6070476,6862044,7915756,6276,1586328,3166380,4745408,6062288,7378144,8431852,9747708,136,2105500,3947696,5789888,7368912,8947936,10526956,11842812,6029432,7610508,8928416,10246320,11563200,12616912,13671644,14725356,7864392,9445472,10763384,12081292,13398176,14451892,15506628,16560340,8650772,9969712,11287628,12605544,13660284,14715028,15507624,16561340,8912896,10231836,11550776,12606544,13661288,14716028,15508624,16562340,8132608,9451548,11031608,12349520,13404264,14457980,15512720,16566436,6040576,7883804,9463864,11306064,12622952,13939836,15256720,16572580,2898944,4742172,6585400,8428624,9745512,11325564,12641424,13958308,15360,2120736,4226112,6069340,7648372,9228428,10806436,12123320,14356,1858612,3701840,5281900,6861956,8178844,9495732,10812616,12332,1855564,3436648,5016708,6596764,7913652,8967372,10284256,10308,1591396,3172484,4490400,5807288,7124176,8178920,9232636],r=[0,2631720,5263440,7631988,9737364,11842740,13684944,15856113,0,2631720,5263440,7631988,9737364,11842740,13684944,15856113,22656,2125972,3966120,5807292,7384268,8700124,10277100,11591932,23620,2127964,3969140,5811340,7389344,8705200,10283204,11599060,13424,2117768,3958944,5801140,7379144,8695004,10273004,11588860,1336320,3440672,5281852,7123032,8701040,10279044,11856028,13171888,1310832,3416200,5258400,7100596,8679624,10257628,11836652,13152508,6052864,7631904,9210940,10789976,12105840,13158532,14474396,15527088,6029424,7610500,8928404,10246312,11563188,12616900,13671632,14725344,7355392,8935452,10515512,11832400,13149288,14465148,15518864,16572580,7340120,8921196,10501248,11819156,13136036,14451892,15506628,16560340,7348224,8928284,10508344,11826256,13 Line truncated
@@ -42,4 +42,4 @@ Registers
`,n.forEach((o,l)=>{i+=Z(o,7)+Ee(a[o]&255,2),l%4==3&&(i+=`
`)}),n.length%4&&(i+=`
`)),i}};$t.vcs=Vi;$t["vcs.jt4"]=Gi;$t["vcs.mame"]=zi;$t["vcs.stellerator"]=Wi;
//# sourceMappingURL=vcs-WW5CTLPM.js.map
//# sourceMappingURL=vcs-WPVNDSYO.js.map
File renamed without changes.
+2
View File
@@ -0,0 +1,2 @@
import{B as F,G,g as E}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{$ as O,P as A,W as _,X as y,ba as g,da as T,ea as D,ga as I,ha as R}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var V=[{id:"font.c",name:"Vector Fonts"},{id:"threed.c",name:"3D Transformations"},{id:"game.c",name:"Space Game"},{id:"music.c",name:"POKEY Music"}],H=D([[g.B,3,255],[g.A,4,255],[g.SELECT,8,255],[g.VK_6,9,255],[g.VK_7,10,255],[g.START,11,255],[g.P2_START,12,255],[g.UP,13,255],[g.RIGHT,14,255],[g.LEFT,15,255]]),z=D([[g.B,1,-1],[g.A,1,-2],[g.VK_5,0,2],[g.VK_6,0,1],[g.START,2,32],[g.P2_START,2,64],[g.UP,1,-16],[g.DOWN,1,-32],[g.RIGHT,1,-4],[g.LEFT,1,-8]]),B=function(M){var k=12096e3,C=k/8,l=Math.round(C/(k/4096)),o=Math.round(C*12/(k/4096)),m=Math.round(C/60),s,v,x,S,p,h,f,c,d,e,i,w,t=0,n=new y(16).mem,P=o;this.__proto__=new F,this.showHelp=function(){return"https://8bitworkshop.com/docs/platforms/arcade/index.html#vector-games"},this.getPresets=function(){return V},this.start=function(){v=new y(1024),x=new y(8192),h={read:R([[0,1023,1023,function(a){return v.mem[a]}],[8193,8193,0,function(a){return w/l&1?255:0}],[8192,8199,7,function(a){return n[a]}],[9216,9223,7,function(a){return n[a+8]}],[16384,20479,4095,function(a){return x.mem[a]}],[20480,24575,4095,function(a){return p[a]}],[26624,32767,0,function(a){return S?S[a-26624]:0}]],{gmask:32767}),write:R([[0,1023,1023,function(a,b){v.mem[a]=b}],[12288,12288,0,function(a,b){f.runUntilHalt(0)}],[13312,13312,0,function(a,b){t=0}],[16384,24575,8191,function(a,b){x.mem[a]=b}]],{gmask:32767})},this.readAddress=h.read,s=this.newCPU(h),c=new _(M,1024,1024),f=new q(h,c,16384),d=E(2),c.create(),e=new O(60,this.nextFrame.bind(this)),i=T(c,n,H)},this.pollControls=function(){i&&i.poll()},this.advance=a=>{a||c.clear();var b=this.getDebugCallback();w=0;for(var r=0;r<m;r++){if(b&&b()){b=null;break}if(w++,--P==0){var u=s.setNMIAndWait();w+=u,P=o-u}s.clockPulse()}},this.loadROM=function(a,b){if(b.length!=8192)throw Error("ROM length must be == 0x2000");S=b.slice(0,6144),p=b.slice(6144,8192),this.reset()},this.isRunning=function(){return e&&e.isRunning()},this.pause=function(){e.stop(),d.stop()},this.resume=function(){e.start(),d.start()},this.reset=function(){this.clearDebug(),s.reset()},this.loadState=function(a){s.loadState(a.c),v.mem.set(a.b),x.mem.set(a.db),n.set(a.sw),P=a.nmic},this.saveState=function(){return{c:s.saveState(),b:v.mem.slice(0),db:x.mem.slice(0),sw:n.slice(0),nmic:P}},this.loadControlsState=function(a){n.set(a.sw)},this.saveControlsState=function(){return{sw:n.slice(0)}},this.getCPUState=function(){return s.saveState()},this.getMemoryMap=function(){return{main:[{name:"Switches/POKEY I/O",start:30720,size:4096,type:"io"},{name:"DVG I/O",start:34816,size:256,type:"io"},{name:"EAROM",start:35072,size:256,type:"ram"}]}}},Y=function(M){var k=12096e3,C=k/8,l=k/4096/12,o=Math.round(C/l),m=Math.round(C/60),s,v,x,S,p,h,f,c,d,e,i,w,t,n=new y(16).mem,P=o,a,b;this.__proto__=new F,this.getPresets=function(){return V},this.start=function(){v=new y(2048),x=new y(8192),c=new y(64),n[0]=0,n[1]=255,n[2]=0,h={read:R([[0,2047,2047,function(r){return v.mem[r]}],[8192,10239,2047,function(r){return x.mem[r]}],[10240,24575,32767,function(r){return p[r-10240]}],[30720,30720,0,function(r){return n[0]}],[32768,32768,0,function(r){return n[1]}],[34816,34816,0,function(r){return n[2]}],[35072,35072,0,function(r){return b}],[36864,65535,65535,function(r){return S?S[r-36864]:0}]]),write:R([[0,2047,2047,function(r,u){v.mem[r]=u}],[8192,10239,2047,function(r,u){x.mem[r]=u}],[10240,24575,32767,function(r,u){p[r-10240]=u}],[24576,26623,15,function(r,u){e.pokey1.setRegister(r,u)}],[26624,28671,15,function(r,u){e.pokey2.setRegister(r,u)}],[34816,34816,0,function(r,u){}],[34880,34880,0,function(r,u){f.runUntilHalt(0)}],[34944,34944,0,function(r,u){f.reset()}],[35008,35008,0,function(r,u){}],[35072,35072,0,function(r,u){u==9&&(b=c.mem[a]),u==12&&(c.mem[a]=b)}],[35136,35199,63,function(r,u){a=r,b=u}],[35200,35200,0,function(r,u){}]])},this.readAddress=h.read,s=this.newCPU(h),d=new _(M,1024,1024),f=new L(h,d,8192),e=E(2),d.create(),i=new O(60,this.nextFrame.bind(this)),w=T(d,n,z)},this.pollControls=function(){w&&w.poll()},this.advance=r=>{r||d.clear();var u=this.getDebugCallback();t=0;for(var U=0;U<m;U++){if(u&&u()){u=null;break}if(t++,--P==0){var K=s.setIRQ();t+=K,P=o-K}s.clockPulse()}},this.loadROM=function(r,u){S=u.slice(0,28672),p=I(u.slice(28672),14336),this.reset()},this.isRunning=function(){return i&&i.isRunning()},this.pause=function(){i.stop(),e.stop()},this.resume=function(){i.start(),e.start()},this.reset=function(){this.clearDebug(),s.reset()},this.loadState=function(r){this.unfixPC(r.c),s.loadState(r.c),this.fixPC(r.c),v.mem.set(r.b),x.mem.set(r.db),n.set(r.sw),P=r.nmic},this.saveState=function(){return{c:this.getCPUState(),b:v.mem.slice(0),db:x.mem.slice(0),sw:n.slice(0),nmic:P}},this.loadControlsState=function(r){n.set(r.sw)},this.saveControlsState=function(){return{sw:n.slice(0Line truncated
//# sourceMappingURL=vector-IN7XZ7UY.js.map
@@ -2,6 +2,6 @@
"version": 3,
"sources": ["../src/platform/vector.ts"],
"sourcesContent": ["\nimport { Platform, BaseZ80Platform, Base6502Platform } from \"../common/baseplatform\";\nimport { PLATFORMS, RAM, newAddressDecoder, padBytes, noise, setKeyboardFromMap, AnimationTimer, VectorVideo, Keys, makeKeycodeMap } from \"../common/emu\";\nimport { hex } from \"../common/util\";\nimport { MasterAudio, POKEYDeviceChannel, newPOKEYAudio } from \"../common/audio\";\n\n// http://www.computerarcheology.com/Arcade/Asteroids/DVG.html\n// http://arcarc.xmission.com/Tech/neilw_xy.txt\n\nvar VECTOR_PRESETS = [\n {id:'font.c', name:'Vector Fonts'},\n {id:'threed.c', name:'3D Transformations'},\n {id:'game.c', name:'Space Game'},\n {id:'music.c', name:'POKEY Music'},\n]\n\nvar ASTEROIDS_KEYCODE_MAP = makeKeycodeMap([\n [Keys.B, 3, 0xff],\n [Keys.A, 4, 0xff],\n [Keys.SELECT, 8, 0xff],\n [Keys.VK_6, 9, 0xff],\n [Keys.VK_7, 10, 0xff],\n [Keys.START, 11, 0xff],\n [Keys.P2_START, 12, 0xff],\n [Keys.UP, 13, 0xff],\n [Keys.RIGHT, 14, 0xff],\n [Keys.LEFT, 15, 0xff],\n]);\n\nvar GRAVITAR_KEYCODE_MAP = makeKeycodeMap([\n [Keys.B, 1, -0x1],\n [Keys.A, 1, -0x2],\n [Keys.VK_5, 0, 0x2],\n [Keys.VK_6, 0, 0x1],\n [Keys.START, 2, 0x20],\n [Keys.P2_START, 2, 0x40],\n [Keys.UP, 1, -0x10],\n [Keys.DOWN, 1, -0x20],\n [Keys.RIGHT, 1, -0x4],\n [Keys.LEFT, 1, -0x8],\n]);\n\nvar AtariVectorPlatform = function(mainElement) {\n var XTAL = 12096000;\n var cpuFrequency = XTAL/8;\n var cpuCyclesPer3khz = Math.round(cpuFrequency/(XTAL/4096)); // ~3 Khz\n var cpuCyclesPerNMI = Math.round(cpuFrequency*12/(XTAL/4096)); // ~250 Hz\n var cpuCyclesPerFrame = Math.round(cpuFrequency/60);\n var cpu, cpuram, dvgram, rom, vecrom, bus, dvg;\n var video, audio, timer, poller;\n var clock;\n var watchdog = 0;\n var switches = new RAM(16).mem;\n var nmicount = cpuCyclesPerNMI;\n\n this.__proto__ = new (Base6502Platform as any)();\n\n this.showHelp = function() {\n return \"https://8bitworkshop.com/docs/platforms/arcade/index.html#vector-games\"\n }\n\n this.getPresets = function() {\n return VECTOR_PRESETS;\n }\n\n this.start = function() {\n cpuram = new RAM(0x400);\n dvgram = new RAM(0x2000);\n //switches[5] = 0xff;\n //switches[7] = 0xff;\n // bus\n bus = {\n\n read: newAddressDecoder([\n [0x0, 0x3ff, 0x3ff, function(a) { return cpuram.mem[a]; }],\n [0x2001, 0x2001, 0, function(a) { return ((clock / cpuCyclesPer3khz) & 1) ? 0xff : 0x00; }],\n [0x2000, 0x2007, 0x7, function(a) { return switches[a]; }],\n [0x2400, 0x2407, 0x7, function(a) { return switches[a+8]; }],\n [0x4000, 0x4fff, 0xfff, function(a) { return dvgram.mem[a]; }],\n [0x5000, 0x5fff, 0xfff, function(a) { return vecrom[a]; }],\n [0x6800, 0x7fff, 0, function(a) { return rom ? rom[a - 0x6800] : 0; }],\n ], {gmask:0x7fff}),\n\n write: newAddressDecoder([\n [0x0, 0x3ff, 0x3ff, function(a,v) { cpuram.mem[a] = v; }],\n [0x3000, 0x3000, 0, function(a,v) { dvg.runUntilHalt(0); }],\n [0x3400, 0x3400, 0, function(a,v) { watchdog = 0; }],\n // TODO: draw asynchronous or allow poll of HALT ($2002)\n [0x4000, 0x5fff, 0x1fff, function(a,v) { dvgram.mem[a] = v; }],\n ], {gmask:0x7fff})\n\n };\n this.readAddress = bus.read;\n cpu = this.newCPU(bus);\n // create video/audio\n video = new VectorVideo(mainElement,1024,1024);\n dvg = new DVGBWStateMachine(bus, video, 0x4000);\n audio = newPOKEYAudio(2);\n video.create();\n timer = new AnimationTimer(60, this.nextFrame.bind(this));\n poller = setKeyboardFromMap(video, switches, ASTEROIDS_KEYCODE_MAP);\n }\n\n this.pollControls = function() { poller && poller.poll(); }\n\n this.advance = (novideo) => {\n if (!novideo) video.clear();\n var debugCond = this.getDebugCallback();\n clock = 0;\n for (var i=0; i<cpuCyclesPerFrame; i++) {\n if (debugCond && debugCond()) {\n debugCond = null;\n break;\n }\n clock++;\n if (--nmicount == 0) {\n //console.log(\"NMI\", cpu.saveState());\n var n = cpu.setNMIAndWait();\n clock += n;\n nmicount = cpuCyclesPerNMI - n;\n }\n cpu.clockPulse();\n //cpu.executeInstruction();\n }\n //if (++watchdog == 256) { watchdog = 0; cpu.reset(); }\n }\n\n this.loadROM = function(title, data) {\n if(data.length != 0x2000) {\n throw Error(\"ROM length must be == 0x2000\");\n }\n rom = data.slice(0,0x1800);\n vecrom = data.slice(0x1800,0x2000);\n this.reset();\n }\n\n this.isRunning = function() {\n return timer && timer.isRunning();\n }\n this.pause = function() {\n timer.stop();\n audio.stop();\n }\n this.resume = function() {\n timer.start();\n audio.start();\n }\n this.reset = function() {\n this.clearDebug();\n cpu.reset();\n }\n\n this.loadState = functLine truncated
"mappings": "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 truncated
"mappings": "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 truncated
"names": ["VECTOR_PRESETS", "ASTEROIDS_KEYCODE_MAP", "makeKeycodeMap", "Keys", "GRAVITAR_KEYCODE_MAP", "AtariVectorPlatform", "mainElement", "XTAL", "cpuFrequency", "cpuCyclesPer3khz", "cpuCyclesPerNMI", "cpuCyclesPerFrame", "cpu", "cpuram", "dvgram", "rom", "vecrom", "bus", "dvg", "video", "audio", "timer", "poller", "clock", "watchdog", "switches", "RAM", "nmicount", "Base6502Platform", "newAddressDecoder", "v", "VectorVideo", "DVGBWStateMachine", "newPOKEYAudio", "AnimationTimer", "setKeyboardFromMap", "novideo", "debugCond", "i", "n", "title", "data", "state", "AtariColorVectorPlatform", "masterFrequency", "nmiFrequency", "earom", "earom_offset", "earom_data", "a", "DVGColorStateMachine", "padBytes", "Z80ColorVectorPlatform", "proto", "mathram", "BaseZ80Platform", "do_math", "sum", "b", "d", "bofs", "pc", "x", "y", "gsc", "pcstack", "running", "readWord", "decodeSigned", "w", "o2", "s", "startpc", "GSCALES", "op", "sc", "w2", "z", "x2", "y2", "scale", "color", "statz", "sparkle", "sparkle_color", "l", "PLATFORMS"]
}
-2
View File
@@ -1,2 +0,0 @@
import{E as G,g as E,z as F}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{$ as O,P as A,W as _,X as y,ba as g,da as T,ea as D,ga as I,ha as R}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var V=[{id:"font.c",name:"Vector Fonts"},{id:"threed.c",name:"3D Transformations"},{id:"game.c",name:"Space Game"},{id:"music.c",name:"POKEY Music"}],H=D([[g.B,3,255],[g.A,4,255],[g.SELECT,8,255],[g.VK_6,9,255],[g.VK_7,10,255],[g.START,11,255],[g.P2_START,12,255],[g.UP,13,255],[g.RIGHT,14,255],[g.LEFT,15,255]]),z=D([[g.B,1,-1],[g.A,1,-2],[g.VK_5,0,2],[g.VK_6,0,1],[g.START,2,32],[g.P2_START,2,64],[g.UP,1,-16],[g.DOWN,1,-32],[g.RIGHT,1,-4],[g.LEFT,1,-8]]),B=function(M){var k=12096e3,C=k/8,l=Math.round(C/(k/4096)),o=Math.round(C*12/(k/4096)),m=Math.round(C/60),s,v,x,S,p,h,f,c,d,e,i,w,t=0,n=new y(16).mem,P=o;this.__proto__=new F,this.showHelp=function(){return"https://8bitworkshop.com/docs/platforms/arcade/index.html#vector-games"},this.getPresets=function(){return V},this.start=function(){v=new y(1024),x=new y(8192),h={read:R([[0,1023,1023,function(a){return v.mem[a]}],[8193,8193,0,function(a){return w/l&1?255:0}],[8192,8199,7,function(a){return n[a]}],[9216,9223,7,function(a){return n[a+8]}],[16384,20479,4095,function(a){return x.mem[a]}],[20480,24575,4095,function(a){return p[a]}],[26624,32767,0,function(a){return S?S[a-26624]:0}]],{gmask:32767}),write:R([[0,1023,1023,function(a,b){v.mem[a]=b}],[12288,12288,0,function(a,b){f.runUntilHalt(0)}],[13312,13312,0,function(a,b){t=0}],[16384,24575,8191,function(a,b){x.mem[a]=b}]],{gmask:32767})},this.readAddress=h.read,s=this.newCPU(h),c=new _(M,1024,1024),f=new q(h,c,16384),d=E(2),c.create(),e=new O(60,this.nextFrame.bind(this)),i=T(c,n,H)},this.pollControls=function(){i&&i.poll()},this.advance=a=>{a||c.clear();var b=this.getDebugCallback();w=0;for(var r=0;r<m;r++){if(b&&b()){b=null;break}if(w++,--P==0){var u=s.setNMIAndWait();w+=u,P=o-u}s.clockPulse()}},this.loadROM=function(a,b){if(b.length!=8192)throw Error("ROM length must be == 0x2000");S=b.slice(0,6144),p=b.slice(6144,8192),this.reset()},this.isRunning=function(){return e&&e.isRunning()},this.pause=function(){e.stop(),d.stop()},this.resume=function(){e.start(),d.start()},this.reset=function(){this.clearDebug(),s.reset()},this.loadState=function(a){s.loadState(a.c),v.mem.set(a.b),x.mem.set(a.db),n.set(a.sw),P=a.nmic},this.saveState=function(){return{c:s.saveState(),b:v.mem.slice(0),db:x.mem.slice(0),sw:n.slice(0),nmic:P}},this.loadControlsState=function(a){n.set(a.sw)},this.saveControlsState=function(){return{sw:n.slice(0)}},this.getCPUState=function(){return s.saveState()},this.getMemoryMap=function(){return{main:[{name:"Switches/POKEY I/O",start:30720,size:4096,type:"io"},{name:"DVG I/O",start:34816,size:256,type:"io"},{name:"EAROM",start:35072,size:256,type:"ram"}]}}},Y=function(M){var k=12096e3,C=k/8,l=k/4096/12,o=Math.round(C/l),m=Math.round(C/60),s,v,x,S,p,h,f,c,d,e,i,w,t,n=new y(16).mem,P=o,a,b;this.__proto__=new F,this.getPresets=function(){return V},this.start=function(){v=new y(2048),x=new y(8192),c=new y(64),n[0]=0,n[1]=255,n[2]=0,h={read:R([[0,2047,2047,function(r){return v.mem[r]}],[8192,10239,2047,function(r){return x.mem[r]}],[10240,24575,32767,function(r){return p[r-10240]}],[30720,30720,0,function(r){return n[0]}],[32768,32768,0,function(r){return n[1]}],[34816,34816,0,function(r){return n[2]}],[35072,35072,0,function(r){return b}],[36864,65535,65535,function(r){return S?S[r-36864]:0}]]),write:R([[0,2047,2047,function(r,u){v.mem[r]=u}],[8192,10239,2047,function(r,u){x.mem[r]=u}],[10240,24575,32767,function(r,u){p[r-10240]=u}],[24576,26623,15,function(r,u){e.pokey1.setRegister(r,u)}],[26624,28671,15,function(r,u){e.pokey2.setRegister(r,u)}],[34816,34816,0,function(r,u){}],[34880,34880,0,function(r,u){f.runUntilHalt(0)}],[34944,34944,0,function(r,u){f.reset()}],[35008,35008,0,function(r,u){}],[35072,35072,0,function(r,u){u==9&&(b=c.mem[a]),u==12&&(c.mem[a]=b)}],[35136,35199,63,function(r,u){a=r,b=u}],[35200,35200,0,function(r,u){}]])},this.readAddress=h.read,s=this.newCPU(h),d=new _(M,1024,1024),f=new L(h,d,8192),e=E(2),d.create(),i=new O(60,this.nextFrame.bind(this)),w=T(d,n,z)},this.pollControls=function(){w&&w.poll()},this.advance=r=>{r||d.clear();var u=this.getDebugCallback();t=0;for(var U=0;U<m;U++){if(u&&u()){u=null;break}if(t++,--P==0){var K=s.setIRQ();t+=K,P=o-K}s.clockPulse()}},this.loadROM=function(r,u){S=u.slice(0,28672),p=I(u.slice(28672),14336),this.reset()},this.isRunning=function(){return i&&i.isRunning()},this.pause=function(){i.stop(),e.stop()},this.resume=function(){i.start(),e.start()},this.reset=function(){this.clearDebug(),s.reset()},this.loadState=function(r){this.unfixPC(r.c),s.loadState(r.c),this.fixPC(r.c),v.mem.set(r.b),x.mem.set(r.db),n.set(r.sw),P=r.nmic},this.saveState=function(){return{c:this.getCPUState(),b:v.mem.slice(0),db:x.mem.slice(0),sw:n.slice(0),nmic:P}},this.loadControlsState=function(r){n.set(r.sw)},this.saveControlsState=function(){return{sw:n.slLine truncated
//# sourceMappingURL=vector-RHDIYCTV.js.map
@@ -1,3 +1,3 @@
import{a as y}from"./chunk-J4XYKWJN.js";import{F as g,d as p,e as m,p as A,q as b}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{$ as d,P as l,W as u,ba as o,da as v,ea as f,ga as a,ha as _,r as c}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var S=[{id:"hello.xasm",name:"Hello World (ASM)"},{id:"hello.c",name:"Hello World (CMOC)"},{id:"joystick.c",name:"Joystick Test (CMOC)"},{id:"threed.c",name:"3D Transformations (CMOC)"}],E=f([[o.LEFT,0,1],[o.RIGHT,0,2],[o.DOWN,0,4],[o.UP,0,8],[o.GP_B,2,1],[o.GP_A,2,2],[o.GP_D,2,4],[o.GP_C,2,8],[o.P2_LEFT,1,1],[o.P2_RIGHT,1,2],[o.P2_DOWN,1,4],[o.P2_UP,1,8],[o.P2_GP_B,2,16],[o.P2_GP_A,2,32],[o.P2_GP_D,2,64],[o.P2_GP_C,2,128]]),r={VECTREX_MHZ:15e5,VECTREX_COLORS:128,ALG_MAX_X:33e3,ALG_MAX_Y:41e3,SCREEN_X_DEFAULT:900,SCREEN_Y_DEFAULT:1100,BOUNDS_MIN_X:0,BOUNDS_MAX_X:3e4,BOUNDS_MIN_Y:41e3,BOUNDS_MAX_Y:0},n=class{constructor(e){this.videoEnabled=!0;this.rsh=0;this.xsh=0;this.ysh=0;this.zsh=0;this.jch0=0;this.jch1=0;this.jch2=0;this.jch3=0;this.jsh=0;this.compare=0;this.dx=0;this.dy=0;this.curr_x=0;this.curr_y=0;this.max_x=r.ALG_MAX_X>>1;this.max_y=r.ALG_MAX_Y>>1;this.vectoring=!1;this.vector_x0=0;this.vector_y0=0;this.vector_x1=0;this.vector_y1=0;this.vector_dx=0;this.vector_dy=0;this.vector_color=0;this.vectrex=e}reset(){this.rsh=128,this.xsh=128,this.ysh=128,this.zsh=0,this.jch0=128,this.jch1=128,this.jch2=128,this.jch3=128,this.jsh=128,this.compare=0,this.dx=0,this.dy=0,this.curr_x=r.ALG_MAX_X>>1,this.curr_y=r.ALG_MAX_Y>>1,this.vectoring=!1}update(){var e=this.vectrex.via;switch(e.orb&6){case 0:this.jsh=this.jch0,(e.orb&1)==0&&(this.ysh=this.xsh);break;case 2:this.jsh=this.jch1,(e.orb&1)==0&&(this.rsh=this.xsh);break;case 4:this.jsh=this.jch2,(e.orb&1)==0&&(this.xsh>128?this.zsh=this.xsh-128:this.zsh=0);break;case 6:this.jsh=this.jch3;break}this.jsh>this.xsh?this.compare=32:this.compare=0,this.dx=this.xsh-this.rsh,this.dy=this.rsh-this.ysh}step(){var e=this.vectrex.via,t=0,i=0,s=0,h=0;e.acr&16?h=e.cb2s:h=e.cb2h,e.ca2==0?(t=this.max_x-this.curr_x,i=this.max_y-this.curr_y):(e.acr&128?s=e.t1pb7:s=e.orb&128,s==0?(t=this.dx,i=this.dy):(t=0,i=0)),this.vectoring?h==0?(this.vectoring=!1,this.addline(this.vector_x0,this.vector_y0,this.vector_x1,this.vector_y1,this.vector_color)):(t!=this.vector_dx||i!=this.vector_dy||(this.zsh&255)!=this.vector_color)&&(this.addline(this.vector_x0,this.vector_y0,this.vector_x1,this.vector_y1,this.vector_color),this.curr_x>=0&&this.curr_x<r.ALG_MAX_X&&this.curr_y>=0&&this.curr_y<r.ALG_MAX_Y?(this.vector_x0=this.curr_x,this.vector_y0=this.curr_y,this.vector_x1=this.curr_x,this.vector_y1=this.curr_y,this.vector_dx=t,this.vector_dy=i,this.vector_color=this.zsh&255):this.vectoring=!1):h==1&&this.curr_x>=0&&this.curr_x<r.ALG_MAX_X&&this.curr_y>=0&&this.curr_y<r.ALG_MAX_Y&&(this.vectoring=!0,this.vector_x0=this.curr_x,this.vector_y0=this.curr_y,this.vector_x1=this.curr_x,this.vector_y1=this.curr_y,this.vector_dx=t,this.vector_dy=i,this.vector_color=this.zsh&255),this.curr_x+=t,this.curr_y+=i,this.vectoring&&this.curr_x>=0&&this.curr_x<r.ALG_MAX_X&&this.curr_y>=0&&this.curr_y<r.ALG_MAX_Y&&(this.vector_x1=this.curr_x,this.vector_y1=this.curr_y)}addline(e,t,i,s,h){this.videoEnabled&&(e=(e-r.BOUNDS_MIN_X)/(r.BOUNDS_MAX_X-r.BOUNDS_MIN_X)*r.SCREEN_X_DEFAULT,i=(i-r.BOUNDS_MIN_X)/(r.BOUNDS_MAX_X-r.BOUNDS_MIN_X)*r.SCREEN_X_DEFAULT,t=(t-r.BOUNDS_MIN_Y)/(r.BOUNDS_MAX_Y-r.BOUNDS_MIN_Y)*r.SCREEN_Y_DEFAULT,s=(s-r.BOUNDS_MIN_Y)/(r.BOUNDS_MAX_Y-r.BOUNDS_MIN_Y)*r.SCREEN_Y_DEFAULT,this.vectrex.video.drawLine(e,t,i,s,h,7))}saveState(){return c(null,{},this)}loadState(e){c(null,this,e)}toLongString(e){var t="";for(var i in e)t+=i+": "+e[i]+`
import{a as y}from"./chunk-J4XYKWJN.js";import{H as g,d as p,e as m,r as A,s as b}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{$ as d,P as l,W as u,ba as o,da as v,ea as f,ga as a,ha as _,r as c}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var S=[{id:"hello.xasm",name:"Hello World (ASM)"},{id:"hello.c",name:"Hello World (CMOC)"},{id:"joystick.c",name:"Joystick Test (CMOC)"},{id:"threed.c",name:"3D Transformations (CMOC)"}],E=f([[o.LEFT,0,1],[o.RIGHT,0,2],[o.DOWN,0,4],[o.UP,0,8],[o.GP_B,2,1],[o.GP_A,2,2],[o.GP_D,2,4],[o.GP_C,2,8],[o.P2_LEFT,1,1],[o.P2_RIGHT,1,2],[o.P2_DOWN,1,4],[o.P2_UP,1,8],[o.P2_GP_B,2,16],[o.P2_GP_A,2,32],[o.P2_GP_D,2,64],[o.P2_GP_C,2,128]]),r={VECTREX_MHZ:15e5,VECTREX_COLORS:128,ALG_MAX_X:33e3,ALG_MAX_Y:41e3,SCREEN_X_DEFAULT:900,SCREEN_Y_DEFAULT:1100,BOUNDS_MIN_X:0,BOUNDS_MAX_X:3e4,BOUNDS_MIN_Y:41e3,BOUNDS_MAX_Y:0},n=class{constructor(e){this.videoEnabled=!0;this.rsh=0;this.xsh=0;this.ysh=0;this.zsh=0;this.jch0=0;this.jch1=0;this.jch2=0;this.jch3=0;this.jsh=0;this.compare=0;this.dx=0;this.dy=0;this.curr_x=0;this.curr_y=0;this.max_x=r.ALG_MAX_X>>1;this.max_y=r.ALG_MAX_Y>>1;this.vectoring=!1;this.vector_x0=0;this.vector_y0=0;this.vector_x1=0;this.vector_y1=0;this.vector_dx=0;this.vector_dy=0;this.vector_color=0;this.vectrex=e}reset(){this.rsh=128,this.xsh=128,this.ysh=128,this.zsh=0,this.jch0=128,this.jch1=128,this.jch2=128,this.jch3=128,this.jsh=128,this.compare=0,this.dx=0,this.dy=0,this.curr_x=r.ALG_MAX_X>>1,this.curr_y=r.ALG_MAX_Y>>1,this.vectoring=!1}update(){var e=this.vectrex.via;switch(e.orb&6){case 0:this.jsh=this.jch0,(e.orb&1)==0&&(this.ysh=this.xsh);break;case 2:this.jsh=this.jch1,(e.orb&1)==0&&(this.rsh=this.xsh);break;case 4:this.jsh=this.jch2,(e.orb&1)==0&&(this.xsh>128?this.zsh=this.xsh-128:this.zsh=0);break;case 6:this.jsh=this.jch3;break}this.jsh>this.xsh?this.compare=32:this.compare=0,this.dx=this.xsh-this.rsh,this.dy=this.rsh-this.ysh}step(){var e=this.vectrex.via,t=0,i=0,s=0,h=0;e.acr&16?h=e.cb2s:h=e.cb2h,e.ca2==0?(t=this.max_x-this.curr_x,i=this.max_y-this.curr_y):(e.acr&128?s=e.t1pb7:s=e.orb&128,s==0?(t=this.dx,i=this.dy):(t=0,i=0)),this.vectoring?h==0?(this.vectoring=!1,this.addline(this.vector_x0,this.vector_y0,this.vector_x1,this.vector_y1,this.vector_color)):(t!=this.vector_dx||i!=this.vector_dy||(this.zsh&255)!=this.vector_color)&&(this.addline(this.vector_x0,this.vector_y0,this.vector_x1,this.vector_y1,this.vector_color),this.curr_x>=0&&this.curr_x<r.ALG_MAX_X&&this.curr_y>=0&&this.curr_y<r.ALG_MAX_Y?(this.vector_x0=this.curr_x,this.vector_y0=this.curr_y,this.vector_x1=this.curr_x,this.vector_y1=this.curr_y,this.vector_dx=t,this.vector_dy=i,this.vector_color=this.zsh&255):this.vectoring=!1):h==1&&this.curr_x>=0&&this.curr_x<r.ALG_MAX_X&&this.curr_y>=0&&this.curr_y<r.ALG_MAX_Y&&(this.vectoring=!0,this.vector_x0=this.curr_x,this.vector_y0=this.curr_y,this.vector_x1=this.curr_x,this.vector_y1=this.curr_y,this.vector_dx=t,this.vector_dy=i,this.vector_color=this.zsh&255),this.curr_x+=t,this.curr_y+=i,this.vectoring&&this.curr_x>=0&&this.curr_x<r.ALG_MAX_X&&this.curr_y>=0&&this.curr_y<r.ALG_MAX_Y&&(this.vector_x1=this.curr_x,this.vector_y1=this.curr_y)}addline(e,t,i,s,h){this.videoEnabled&&(e=(e-r.BOUNDS_MIN_X)/(r.BOUNDS_MAX_X-r.BOUNDS_MIN_X)*r.SCREEN_X_DEFAULT,i=(i-r.BOUNDS_MIN_X)/(r.BOUNDS_MAX_X-r.BOUNDS_MIN_X)*r.SCREEN_X_DEFAULT,t=(t-r.BOUNDS_MIN_Y)/(r.BOUNDS_MAX_Y-r.BOUNDS_MIN_Y)*r.SCREEN_Y_DEFAULT,s=(s-r.BOUNDS_MIN_Y)/(r.BOUNDS_MAX_Y-r.BOUNDS_MIN_Y)*r.SCREEN_Y_DEFAULT,this.vectrex.video.drawLine(e,t,i,s,h,7))}saveState(){return c(null,{},this)}loadState(e){c(null,this,e)}toLongString(e){var t="";for(var i in e)t+=i+": "+e[i]+`
`;return t}},x=class extends g{constructor(t){super();this.nullProbe=new b;this.probe=this.nullProbe;this.mainElement=t}getPresets(){return S}showHelp(){return"https://8bitworkshop.com/docs/platforms/vectrex/"}async start(){this.via=new y(this),this.alg=new n(this);var t=await fetch("res/vectrex/vectrex.bios");if(!t.ok)throw new Error("could not load BIOS file");this.bios=a(new Uint8Array(await t.arrayBuffer()),8192),this.ram=new Uint8Array(1024),this.inputs=new Uint8Array(4);var i={read:_([[0,32767,0,s=>this.rom&&this.rom[s]],[51200,53247,1023,s=>this.ram[s]],[53248,57343,15,s=>this.via.read(s)],[57344,65535,8191,s=>this.bios&&this.bios[s]]]),write:_([[51200,53247,1023,(s,h)=>{this.ram[s]=h}],[53248,55295,1023,(s,h)=>{this.via.write(s&15,h)}],[55296,57343,1023,(s,h)=>{this.ram[s]=h,this.via.write(s&15,h)}]])};this.bus={read:s=>{var h=i.read(s);return this.probe.logRead(s,h),h},write:(s,h)=>{this.probe.logWrite(s,h),i.write(s,h)}},this._cpu=this.newCPU(this.bus),this.video=new u(this.mainElement,r.SCREEN_X_DEFAULT,r.SCREEN_Y_DEFAULT),this.video.persistenceAlpha=.2,this.audio=new p,this.psg=new m(this.audio),this.video.create(),this.timer=new d(60,this.nextFrame.bind(this)),this.poller=v(this.video,this.inputs,E)}pollControls(){this.poller&&this.poller.poll()}updateControls(){this.alg.jch0=this.inputs[0]&1?0:this.inputs[0]&2?255:128,this.alg.jch1=this.inputs[0]&4?0:this.inputs[0]&8?255:128,this.alg.jch2=this.inputs[1]&1?0:this.inputs[1]&2?255:128,this.alg.jch3=this.inputs[1]&4?0:this.inputs[1]&8?255:128,this.psg.psg.register[14]=~this.inputs[2]}advance(t){t||this.video.clear(),this.alg.videoEnabled=!t,this.updateControls(),this.probe.logNewFrame();for(var i=15e5/60,s=0;s<i;)s+=this.nextCycle();return s}nextCycle(){this.probe.logExecute(this.getPC(),this.getSP()),this.via.ifr&128&&this._cpu.interrupt();var t=this.runCPU(this._cpu,1);t==0&&(t=1),this.probe.logClocks(t);for(var i=0;i<t;i++)this.via.step0(),this.alg.step(),this.via.step1();return t}readPortB(){return this.alg.compare}readPortA(){if((this.via.orb&24)==8)return this.psg.readData()}writePortB(t){this.snd_update(),this.alg.update()}writePortA(t){this.snd_update(),this.alg.xsh=t^128,this.alg.update()}snd_update(){switch(this.via.orb&24){case 0:break;case 8:break;case 16:this.psg.curreg!=14&&this.psg.setData(this.via.ora);break;case 24:(this.via.ora&240)==0&&this.psg.selectRegister(this.via.ora&15);break}}getCPUState(){return this._cpu.saveState()}loadROM(t,i){this.rom=a(i,32768),this.reset()}loadBIOS(t,i){this.bios=a(i,8192),this.reset()}isRunning(){return this.timer.isRunning()}pause(){this.timer.stop(),this.audio.stop()}resume(){this.timer.start(),this.audio.start()}reset(){this._cpu.reset(),this.via.reset(),this.alg.reset()}readAddress(t){return(t&61440)!=53248?this.bus.read(t):null}loadState(t){this._cpu.loadState(t.c),this.ram.set(t.b),this.via.loadState(t.via),this.alg.loadState(t.alg),this.loadControlsState(t)}saveState(){return{c:this.getCPUState(),b:this.ram.slice(0),via:this.via.saveState(),alg:this.alg.saveState(),in:this.inputs.slice(0)}}loadControlsState(t){this.inputs.set(t.in)}saveControlsState(){return{in:this.inputs.slice(0)}}getMemoryMap(){return{main:[{name:"Cartridge ROM",start:0,size:32768,type:"rom"},{name:"RAM",start:51200,size:1024,type:"ram"},{name:"I/O Registers",start:53248,size:128,type:"io"},{name:"BIOS",start:57344,size:8192,type:"rom"}]}}getDebugCategories(){return super.getDebugCategories().concat(["VIA6522","ANALOG"])}getDebugInfo(t,i){switch(t){case"VIA6522":return this.via.toLongString(i.via);case"ANALOG":return this.alg.toLongString(i.alg);default:return super.getDebugInfo(t,i)}}startProbing(){var t=new A(this);return this.connectProbe(t),t}stopProbing(){this.connectProbe(null)}connectProbe(t){this.probe=t||this.nullProbe}};l.vectrex=x;
//# sourceMappingURL=vectrex-JTHLKXJ5.js.map
//# sourceMappingURL=vectrex-MBXYZA7J.js.map
File renamed without changes.
@@ -1,4 +1,4 @@
import{b as KF}from"./chunk-NTFEI2OH.js";import{k as im0,x as jP}from"./chunk-FFJHITEL.js";import{k as km0}from"./chunk-UXRCACYH.js";import{$ as $y0,P as HP,V as Py0,Y as qy0,ba as _7,da as em0,ea as rm0,n as Oy0,r as zP}from"./chunk-VZWSP3EG.js";import{c as EF,e as ia3,g as fa3}from"./chunk-N7W4C4V2.js";var nm0=ia3((kR,BZ)=>{var dZ={};(function(){var y;y||(y=typeof dZ!="undefined"?dZ:{});var $={},q0;for(q0 in y)y.hasOwnProperty(q0)&&($[q0]=y[q0]);var $0="./this.program";function T9(p,H){throw H}var _e=!1,ae=!1,pi=!1,Mi=!1;_e=typeof window=="object",ae=typeof importScripts=="function",pi=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Mi=!_e&&!pi&&!ae;var R8="",P5,o5,cu,Cr;pi?(R8=ae?EF("path").dirname(R8)+"/":__dirname+"/",P5=function(p,H){var i0=FI(p);return i0?H?i0:i0.toString():(cu||(cu=EF("fs")),Cr||(Cr=EF("path")),p=Cr.normalize(p),cu.readFileSync(p,H?null:"utf8"))},o5=function(p){return p=P5(p,!0),p.buffer||(p=new Uint8Array(p)),a5(p.buffer),p},1<process.argv.length&&($0=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),typeof BZ!="undefined"&&(BZ.exports=y),process.on("uncaughtException",function(p){if(!(p instanceof aq))throw p}),process.on("unhandledRejection",Wn),T9=function(p){process.exit(p)},y.inspect=function(){return"[Emscripten Module object]"}):Mi?(typeof read!="undefined"&&(P5=function(p){var H=FI(p);return H?Aq(H):read(p)}),o5=function(p){var H;return(H=FI(p))?H:typeof readbuffer=="function"?new Uint8Array(readbuffer(p)):(H=read(p,"binary"),a5(typeof H=="object"),H)},typeof quit=="function"&&(T9=function(p){quit(p)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(_e||ae)&&(ae?R8=self.location.href:typeof document!="undefined"&&document.currentScript&&(R8=document.currentScript.src),R8=R8.indexOf("blob:")!==0?R8.substr(0,R8.lastIndexOf("/")+1):"",P5=function(p){try{var H=new XMLHttpRequest;return H.open("GET",p,!1),H.send(null),H.responseText}catch(i0){if(p=FI(p))return Aq(p);throw i0}},ae&&(o5=function(p){try{var H=new XMLHttpRequest;return H.open("GET",p,!1),H.responseType="arraybuffer",H.send(null),new Uint8Array(H.response)}catch(i0){if(p=FI(p))return p;throw i0}}));var Pn=y.print||console.log.bind(console),l5=y.printErr||console.warn.bind(console);for(q0 in $)$.hasOwnProperty(q0)&&(y[q0]=$[q0]);$=null,y.thisProgram&&($0=y.thisProgram),y.quit&&(T9=y.quit);var vn=0,ks;y.wasmBinary&&(ks=y.wasmBinary);var vl=y.noExitRuntime||!0;function VI(){this.buffer=new ArrayBuffer(UB/65536*65536)}function UP(){}function m7(){this.exports=(function(H){function i0(Gr){return Gr.set=function(ss,g5){this[ss]=g5},Gr.get=function(ss){return this[ss]},Gr}for(var W,J=new Uint8Array(123),c0=25;c0>=0;--c0)J[48+c0]=52+c0,J[65+c0]=c0,J[97+c0]=26+c0;J[43]=62,J[47]=63;function U(Gr,ss,g5){for(var Z,f4,e=0,V=ss,C7=g5.length,O=ss+(C7*3>>2)-(g5[C7-2]=="=")-(g5[C7-1]=="=");e<C7;e+=4)Z=J[g5.charCodeAt(e+1)],f4=J[g5.charCodeAt(e+2)],Gr[V++]=J[g5.charCodeAt(e)]<<2|Z>>4,V<O&&(Gr[V++]=Z<<4|f4>>2),V<O&&(Gr[V++]=f4<<6|J[g5.charCodeAt(e+3)])}function K3(Gr){U(W,1024,"dmFsdWUudHlwZS5pc0NvbmNyZXRlKCkARmxvdwBsaXQuaXNDb25jcmV0ZSgpAExpdGVyYWxzAHZhbHVlcy5zaXplKCkgPT0gMQBnZXRTaW5nbGVWYWx1ZQBnZXRpMzIAYyA9PSAoYyAmIDB4ZmYpAGV4dGVuZEZvclBhY2tpbmcAYyA9PSAoYyAmIDB4ZmZmZikAYWxsb2NhdGlvbiBmYWlsdXJl"),U(W,1200,"pDIAAKUyAACmMgAApzIAAKgyAAB0eXBlLmlzRnVuY3Rpb24oKSAmJiAhZnVuYy5pc051bGwoKQBnZXRGdW5jAHR5cGUuaXNOdWxsYWJsZSgpAG1ha2VOdWxsAHR5cGUuZ2V0SGVhcFR5cGUoKSA9PSBIZWFwVHlwZTo6aTMxAGdldGkzMQByZWludGVycHJldGk2NAByZWludGVycHJldGkzMgBzAC9ob21lL3J1bm5lci93b3JrL2JpbmFyeWVuLmpzL2JpbmFyeWVuLmpzL2JpbmFyeWVuL3NyYy9lbXNjcmlwdGVuLW9wdGltaXplci9pc3RyaW5nLmgASVN0cmluZwAYaAIA2AU="),U(W,1476,"qTIAAKoyAACrMgAArDIAAK0yAABONHdhc20yNENvbnN0YW50RXhwcmVzc2lvblJ1bm5lcklOU18xN0NFeHByZXNzaW9uUnVubmVyRUUyME5vbmNvbnN0YW50RXhjZXB0aW9uRQBnZXRDb25zdEV4cHJlc3Npb24AbWFrZUNvbnN0YW50RXhwcmVzc2lvbgBzaXplIDw9IG51bUNodW5rcyAqIENIVU5LX1NJWkUAYWxsb2NTcGFjZQB2YWx1ZS5pc051bGwoKSAmJiAidW5leHBlY3RlZCBub24tbnVsbCByZWZlcmVuY2UgdHlwZSBsaXRlcmFsIgBpbnZhbGlkIGNvbnN0YW50IGV4cHJlc3Npb24AaXNCYXNpYygpICYmICJCYXNpYyB0eXBlIGV4cGVjdGVkIgB2YWx1ZS50eXBlLmlzTnVtYmVyKCkAbWFrZUNvbnN0"),U(W,1828,"qTIAAK4yAACrMgAArDIAAK0y"),U(W,1856,"rzIAALAyAACxMgAAsjIAALMyAABleHByZXNzaW9uLT5pczxVbmFyeT4oKQAvaG9tZS9ydW5uZXIvd29yay9iaW5hcnllbi5qcy9iaW5hcnllbi5qcy9iaW5hcnllbi9zcmMvYmluYXJ5ZW4tYy5jcHAAQmluYXJ5ZW5VbmFyeVNldFZhbHVlAHZhbHVlRXhwcgBCaW5hcnllblVuYXJ5U2V0T3AAQmluYXJ5ZW5VbmFyeUdldFZhbHVlAEJpbmFyeWVuVW5hcnlHZXRPcABwYXJlbnQgPT0gb3RoZXIucGFyZW50AG9wZXJhdG9yLQBleHByZXNzaW9uLT5pczxUdXBsZU1ha2U+KCkAQmluYXJ5ZW5UdXBsZU1ha2VTZXRPcGVyYW5kQXQAaW5kZXggPCBzdGF0aWNfY2FzdDxUdXBsZU1ha2UqPihleHByZXNzaW9uKS0+b3BlcmFuZHMuc2l6ZSgpAG9wZXJhbmRFeHByAEJpbmFyeWVuVHVwbGVNYWtlUmVtb3ZlT3BlcmFuZEF0AEJpbmFyeWVuVHVwbGVNYWtlSW5zZXJ0T3BlcmFuZEF0AGluZGV4IDw9IHNpemUoKQBpbnNlcnRBdABCaW5hcnllblR1cGxlTWFrZUdldE9wZXJhbmRBdABCaW5hcnllblR1cGxlTWFrZUdldE51bU9wZXJhbmRzAEJpbmFyeWVuVHVwbLine truncated
import{b as KF}from"./chunk-NTFEI2OH.js";import{m as im0,z as jP}from"./chunk-4YTESWOC.js";import{k as km0}from"./chunk-UXRCACYH.js";import{$ as $y0,P as HP,V as Py0,Y as qy0,ba as _7,da as em0,ea as rm0,n as Oy0,r as zP}from"./chunk-VZWSP3EG.js";import{c as EF,e as ia3,g as fa3}from"./chunk-N7W4C4V2.js";var nm0=ia3((kR,BZ)=>{var dZ={};(function(){var y;y||(y=typeof dZ!="undefined"?dZ:{});var $={},q0;for(q0 in y)y.hasOwnProperty(q0)&&($[q0]=y[q0]);var $0="./this.program";function T9(p,H){throw H}var _e=!1,ae=!1,pi=!1,Mi=!1;_e=typeof window=="object",ae=typeof importScripts=="function",pi=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Mi=!_e&&!pi&&!ae;var R8="",P5,o5,cu,Cr;pi?(R8=ae?EF("path").dirname(R8)+"/":__dirname+"/",P5=function(p,H){var i0=FI(p);return i0?H?i0:i0.toString():(cu||(cu=EF("fs")),Cr||(Cr=EF("path")),p=Cr.normalize(p),cu.readFileSync(p,H?null:"utf8"))},o5=function(p){return p=P5(p,!0),p.buffer||(p=new Uint8Array(p)),a5(p.buffer),p},1<process.argv.length&&($0=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),typeof BZ!="undefined"&&(BZ.exports=y),process.on("uncaughtException",function(p){if(!(p instanceof aq))throw p}),process.on("unhandledRejection",Wn),T9=function(p){process.exit(p)},y.inspect=function(){return"[Emscripten Module object]"}):Mi?(typeof read!="undefined"&&(P5=function(p){var H=FI(p);return H?Aq(H):read(p)}),o5=function(p){var H;return(H=FI(p))?H:typeof readbuffer=="function"?new Uint8Array(readbuffer(p)):(H=read(p,"binary"),a5(typeof H=="object"),H)},typeof quit=="function"&&(T9=function(p){quit(p)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(_e||ae)&&(ae?R8=self.location.href:typeof document!="undefined"&&document.currentScript&&(R8=document.currentScript.src),R8=R8.indexOf("blob:")!==0?R8.substr(0,R8.lastIndexOf("/")+1):"",P5=function(p){try{var H=new XMLHttpRequest;return H.open("GET",p,!1),H.send(null),H.responseText}catch(i0){if(p=FI(p))return Aq(p);throw i0}},ae&&(o5=function(p){try{var H=new XMLHttpRequest;return H.open("GET",p,!1),H.responseType="arraybuffer",H.send(null),new Uint8Array(H.response)}catch(i0){if(p=FI(p))return p;throw i0}}));var Pn=y.print||console.log.bind(console),l5=y.printErr||console.warn.bind(console);for(q0 in $)$.hasOwnProperty(q0)&&(y[q0]=$[q0]);$=null,y.thisProgram&&($0=y.thisProgram),y.quit&&(T9=y.quit);var vn=0,ks;y.wasmBinary&&(ks=y.wasmBinary);var vl=y.noExitRuntime||!0;function VI(){this.buffer=new ArrayBuffer(UB/65536*65536)}function UP(){}function m7(){this.exports=(function(H){function i0(Gr){return Gr.set=function(ss,g5){this[ss]=g5},Gr.get=function(ss){return this[ss]},Gr}for(var W,J=new Uint8Array(123),c0=25;c0>=0;--c0)J[48+c0]=52+c0,J[65+c0]=c0,J[97+c0]=26+c0;J[43]=62,J[47]=63;function U(Gr,ss,g5){for(var Z,f4,e=0,V=ss,C7=g5.length,O=ss+(C7*3>>2)-(g5[C7-2]=="=")-(g5[C7-1]=="=");e<C7;e+=4)Z=J[g5.charCodeAt(e+1)],f4=J[g5.charCodeAt(e+2)],Gr[V++]=J[g5.charCodeAt(e)]<<2|Z>>4,V<O&&(Gr[V++]=Z<<4|f4>>2),V<O&&(Gr[V++]=f4<<6|J[g5.charCodeAt(e+3)])}function K3(Gr){U(W,1024,"dmFsdWUudHlwZS5pc0NvbmNyZXRlKCkARmxvdwBsaXQuaXNDb25jcmV0ZSgpAExpdGVyYWxzAHZhbHVlcy5zaXplKCkgPT0gMQBnZXRTaW5nbGVWYWx1ZQBnZXRpMzIAYyA9PSAoYyAmIDB4ZmYpAGV4dGVuZEZvclBhY2tpbmcAYyA9PSAoYyAmIDB4ZmZmZikAYWxsb2NhdGlvbiBmYWlsdXJl"),U(W,1200,"pDIAAKUyAACmMgAApzIAAKgyAAB0eXBlLmlzRnVuY3Rpb24oKSAmJiAhZnVuYy5pc051bGwoKQBnZXRGdW5jAHR5cGUuaXNOdWxsYWJsZSgpAG1ha2VOdWxsAHR5cGUuZ2V0SGVhcFR5cGUoKSA9PSBIZWFwVHlwZTo6aTMxAGdldGkzMQByZWludGVycHJldGk2NAByZWludGVycHJldGkzMgBzAC9ob21lL3J1bm5lci93b3JrL2JpbmFyeWVuLmpzL2JpbmFyeWVuLmpzL2JpbmFyeWVuL3NyYy9lbXNjcmlwdGVuLW9wdGltaXplci9pc3RyaW5nLmgASVN0cmluZwAYaAIA2AU="),U(W,1476,"qTIAAKoyAACrMgAArDIAAK0yAABONHdhc20yNENvbnN0YW50RXhwcmVzc2lvblJ1bm5lcklOU18xN0NFeHByZXNzaW9uUnVubmVyRUUyME5vbmNvbnN0YW50RXhjZXB0aW9uRQBnZXRDb25zdEV4cHJlc3Npb24AbWFrZUNvbnN0YW50RXhwcmVzc2lvbgBzaXplIDw9IG51bUNodW5rcyAqIENIVU5LX1NJWkUAYWxsb2NTcGFjZQB2YWx1ZS5pc051bGwoKSAmJiAidW5leHBlY3RlZCBub24tbnVsbCByZWZlcmVuY2UgdHlwZSBsaXRlcmFsIgBpbnZhbGlkIGNvbnN0YW50IGV4cHJlc3Npb24AaXNCYXNpYygpICYmICJCYXNpYyB0eXBlIGV4cGVjdGVkIgB2YWx1ZS50eXBlLmlzTnVtYmVyKCkAbWFrZUNvbnN0"),U(W,1828,"qTIAAK4yAACrMgAArDIAAK0y"),U(W,1856,"rzIAALAyAACxMgAAsjIAALMyAABleHByZXNzaW9uLT5pczxVbmFyeT4oKQAvaG9tZS9ydW5uZXIvd29yay9iaW5hcnllbi5qcy9iaW5hcnllbi5qcy9iaW5hcnllbi9zcmMvYmluYXJ5ZW4tYy5jcHAAQmluYXJ5ZW5VbmFyeVNldFZhbHVlAHZhbHVlRXhwcgBCaW5hcnllblVuYXJ5U2V0T3AAQmluYXJ5ZW5VbmFyeUdldFZhbHVlAEJpbmFyeWVuVW5hcnlHZXRPcABwYXJlbnQgPT0gb3RoZXIucGFyZW50AG9wZXJhdG9yLQBleHByZXNzaW9uLT5pczxUdXBsZU1ha2U+KCkAQmluYXJ5ZW5UdXBsZU1ha2VTZXRPcGVyYW5kQXQAaW5kZXggPCBzdGF0aWNfY2FzdDxUdXBsZU1ha2UqPihleHByZXNzaW9uKS0+b3BlcmFuZHMuc2l6ZSgpAG9wZXJhbmRFeHByAEJpbmFyeWVuVHVwbGVNYWtlUmVtb3ZlT3BlcmFuZEF0AEJpbmFyeWVuVHVwbGVNYWtlSW5zZXJ0T3BlcmFuZEF0AGluZGV4IDw9IHNpemUoKQBpbnNlcnRBdABCaW5hcnllblR1cGxlTWFrZUdldE9wZXJhbmRBdABCaW5hcnllblR1cGxlTWFrZUdldE51bU9wZXJhbmRzAEJpbmFyeWVuVHVwbLine truncated
`)):typeof readline=="function"&&(H=readline(),H!==null&&(H+=`
`));if(!H)return null;p.input=IR(H,!0)}return p.input.shift()},Hu:function(p,H){H===null||H===10?(Pn(ts(p.output,0)),p.output=[]):H!=0&&p.output.push(H)},flush:function(p){p.output&&0<p.output.length&&(Pn(ts(p.output,0)),p.output=[])}},Im0={Hu:function(p,H){H===null||H===10?(l5(ts(p.output,0)),p.output=[]):H!=0&&p.output.push(H)},flush:function(p){p.output&&0<p.output.length&&(l5(ts(p.output,0)),p.output=[])}},L4={mu:null,pu:function(){return L4.createNode(null,"/",16895,0)},createNode:function(p,H,i0,W){if((i0&61440)===24576||(i0&61440)===4096)throw new lk(63);return L4.mu||(L4.mu={dir:{node:{qu:L4.hu.qu,nu:L4.hu.nu,lookup:L4.hu.lookup,yu:L4.hu.yu,rename:L4.hu.rename,unlink:L4.hu.unlink,rmdir:L4.hu.rmdir,readdir:L4.hu.readdir,symlink:L4.hu.symlink},stream:{ru:L4.ju.ru}},file:{node:{qu:L4.hu.qu,nu:L4.hu.nu},stream:{ru:L4.ju.ru,read:L4.ju.read,write:L4.ju.write,Mu:L4.ju.Mu,Uu:L4.ju.Uu,Wu:L4.ju.Wu}},link:{node:{qu:L4.hu.qu,nu:L4.hu.nu,readlink:L4.hu.readlink},stream:{}},Nu:{node:{qu:L4.hu.qu,nu:L4.hu.nu},stream:mm0}}),i0=rq(p,H,i0,W),(i0.mode&61440)===16384?(i0.hu=L4.mu.dir.node,i0.ju=L4.mu.dir.stream,i0.gu={}):(i0.mode&61440)===32768?(i0.hu=L4.mu.file.node,i0.ju=L4.mu.file.stream,i0.ku=0,i0.gu=null):(i0.mode&61440)===40960?(i0.hu=L4.mu.link.node,i0.ju=L4.mu.link.stream):(i0.mode&61440)===8192&&(i0.hu=L4.mu.Nu.node,i0.ju=L4.mu.Nu.stream),i0.timestamp=Date.now(),p&&(p.gu[H]=i0,p.timestamp=i0.timestamp),i0},wv:function(p){return p.gu?p.gu.subarray?p.gu.subarray(0,p.ku):new Uint8Array(p.gu):new Uint8Array(0)},Pu:function(p,H){var i0=p.gu?p.gu.length:0;i0>=H||(H=Math.max(H,i0*(1048576>i0?2:1.125)>>>0),i0!=0&&(H=Math.max(H,256)),i0=p.gu,p.gu=new Uint8Array(H),0<p.ku&&p.gu.set(i0.subarray(0,p.ku),0))},jv:function(p,H){if(p.ku!=H)if(H==0)p.gu=null,p.ku=0;else{var i0=p.gu;p.gu=new Uint8Array(H),i0&&p.gu.set(i0.subarray(0,Math.min(H,p.ku))),p.ku=H}},hu:{qu:function(p){var H={};return H.dev=(p.mode&61440)===8192?p.id:1,H.ino=p.id,H.mode=p.mode,H.nlink=1,H.uid=0,H.gid=0,H.rdev=p.rdev,(p.mode&61440)===16384?H.size=4096:(p.mode&61440)===32768?H.size=p.ku:(p.mode&61440)===40960?H.size=p.link.length:H.size=0,H.atime=new Date(p.timestamp),H.mtime=new Date(p.timestamp),H.ctime=new Date(p.timestamp),H.Yu=4096,H.blocks=Math.ceil(H.size/H.Yu),H},nu:function(p,H){H.mode!==void 0&&(p.mode=H.mode),H.timestamp!==void 0&&(p.timestamp=H.timestamp),H.size!==void 0&&L4.jv(p,H.size)},lookup:function(){throw AR[44]},yu:function(p,H,i0,W){return L4.createNode(p,H,i0,W)},rename:function(p,H,i0){if((p.mode&61440)===16384){try{var W=pZ(H,i0)}catch(c0){}if(W)for(var J in W.gu)throw new lk(55)}delete p.parent.gu[p.name],p.parent.timestamp=Date.now(),p.name=i0,H.gu[i0]=p,H.timestamp=p.parent.timestamp,p.parent=H},unlink:function(p,H){delete p.gu[H],p.timestamp=Date.now()},rmdir:function(p,H){var i0=pZ(p,H),W;for(W in i0.gu)throw new lk(55);delete p.gu[H],p.timestamp=Date.now()},readdir:function(p){var H=[".",".."],i0;for(i0 in p.gu)p.gu.hasOwnProperty(i0)&&H.push(i0);return H},symlink:function(p,H,i0){return p=L4.createNode(p,H,41471,0),p.link=i0,p},readlink:function(p){if((p.mode&61440)!==40960)throw new lk(28);return p.link}},ju:{read:function(p,H,i0,W,J){var c0=p.node.gu;if(J>=p.node.ku)return 0;if(p=Math.min(p.node.ku-J,W),8<p&&c0.subarray)H.set(c0.subarray(J,J+p),i0);else for(W=0;W<p;W++)H[i0+W]=c0[J+W];return p},write:function(p,H,i0,W,J,c0){if(H.buffer===b7.buffer&&(c0=!1),!W)return 0;if(p=p.node,p.timestamp=Date.now(),H.subarray&&(!p.gu||p.gu.subarray)){if(c0)return p.gu=H.subarray(i0,i0+W),p.ku=W;if(p.ku===0&&J===0)return p.gu=H.slice(i0,i0+W),p.ku=W;if(J+W<=p.ku)return p.gu.set(H.subarray(i0,i0+W),J),W}if(L4.Pu(p,J+W),p.gu.subarray&&H.subarray)p.gu.set(H.subarray(i0,i0+W),J);else for(c0=0;c0<W;c0++)p.gu[J+c0]=H[i0+c0];return p.ku=Math.max(p.ku,J+W),W},ru:function(p,H,i0){if(i0===1?H+=p.position:i0===2&&(p.node.mode&61440)===32768&&(H+=p.node.ku),0>H)throw new lk(28);return H},Mu:function(p,H,i0){L4.Pu(p.node,H+i0),p.node.ku=Math.max(p.node.ku,H+i0)},Uu:function(p,H,i0,W,J,c0){if(H!==0)throw new lk(28);if((p.node.mode&61440)!==32768)throw new lk(43);if(p=p.node.gu,c0&2||p.buffer!==aA){for((0<W||W+i0<p.length)&&(p.subarray?p=p.subarray(W,W+i0):p=Array.prototype.slice.call(p,W,W+i0)),W=!0,c0=16384*Math.ceil(i0/16384),H=RI(c0);i0<c0;)b7[H+i0++]=0;if(i0=H,!i0)throw new lk(48);b7.set(p,i0)}else W=!1,i0=p.byteOffset;return{iu:i0,tv:W}},Wu:function(p,H,i0,W,J){if((p.node.mode&61440)!==32768)throw new lk(43);return J&2||L4.ju.write(p,H,0,W,i0,!1),0}}},sR=null,qP={},KB=[],vm0=1,OB=null,ZZ={},lk=null,AR={};function Fg(p,H){if(p=GZ("/",p),H=H||{},!p)return{path:"",node:null};var i0={Ru:!0,Iu:0},W;for(W in i0)H[W]===void 0&&(H[W]=i0[W]);if(8<H.Iu)throw new lk(32);p=uR(p.split("/").filter(function(U){return!!U}),!1);var J=sR;for(i0="/",W=0;W<p.length;W++){var c0=W===p.length-1;if(c0&&H.parent)break;if(J=pZ(J,p[W]),i0=CZ(i0+"/"+p[W]),J.zu&&(!c0||c0&&H.Ru)&&(J=J.zu.root),!c0||H.Qu){for(c0=0;(J.mode&61440)===40960;)if(J=bm0(i0),i0=GZ(am0(i0),J),J=Fg(i Line truncated
`},"%p":function(v9){return 0<=v9.Bu&&12>v9.Bu?"AM":"PM"},"%S":function(v9){return c0(v9.qv,2)},"%t":function(){return" "},"%u":function(v9){return v9.Cu||7},"%U":function(v9){var I4=new Date(v9.lu+1900,0,1),V4=I4.getDay()===0?I4:RZ(I4,7-I4.getDay());return v9=new Date(v9.lu+1900,v9.tu,v9.vu),0>U(V4,v9)?c0(Math.ceil((31-V4.getDate()+(wR(MZ(v9.getFullYear())?NZ:FZ,v9.getMonth()-1)-31)+v9.getDate())/7),2):U(V4,I4)===0?"01":"00"},"%V":function(v9){var I4=new Date(v9.lu+1901,0,4),V4=K3(new Date(v9.lu+1900,0,4));I4=K3(I4);var M5=RZ(new Date(v9.lu+1900,0,1),v9.Du);return 0>U(M5,V4)?"53":0>=U(I4,M5)?"01":c0(Math.ceil((V4.getFullYear()<v9.lu+1900?v9.Du+32-V4.getDate():v9.Du+1-V4.getDate())/7),2)},"%w":function(v9){return v9.Cu},"%W":function(v9){var I4=new Date(v9.lu,0,1),V4=I4.getDay()===1?I4:RZ(I4,I4.getDay()===0?1:7-I4.getDay()+1);return v9=new Date(v9.lu+1900,v9.tu,v9.vu),0>U(V4,v9)?c0(Math.ceil((31-V4.getDate()+(wR(MZ(v9.getFullYear())?NZ:FZ,v9.getMonth()-1)-31)+v9.getDate())/7),2):U(V4,I4)===0?"01":"00"},"%y":function(v9){return(v9.lu+1900).toString().substring(2)},"%Y":function(v9){return v9.lu+1900},"%z":function(v9){v9=v9.ov;var I4=0<=v9;return v9=Math.abs(v9)/60,(I4?"+":"-")+("0000"+(v9/60*100+v9%60)).slice(-4)},"%Z":function(v9){return v9.rv},"%%":function(){return"%"}};for(E4 in Bi)0<=i0.indexOf(E4)&&(i0=i0.replace(new RegExp(E4,"g"),Bi[E4](W)));return E4=IR(i0,!1),E4.length>H?0:(b7.set(E4,p),E4.length-1)}function sq(p,H,i0,W){p||(p=this),this.parent=p,this.pu=p.pu,this.zu=null,this.id=vm0++,this.name=H,this.mode=i0,this.hu={},this.ju={},this.rdev=W}Object.defineProperties(sq.prototype,{read:{get:function(){return(this.mode&365)===365},set:function(p){p?this.mode|=365:this.mode&=-366}},write:{get:function(){return(this.mode&146)===146},set:function(p){p?this.mode|=146:this.mode&=-147}}}),nq(),OB=Array(4096),iq(L4,"/"),Bl("/tmp"),Bl("/home"),Bl("/home/web_user"),(function(){Bl("/dev"),oR(259,{read:function(){return 0},write:function(H,i0,W,J){return J}}),WZ("/dev/null",259),PP(1280,wm0),PP(1536,Im0),WZ("/dev/tty",1280),WZ("/dev/tty1",1536);var p=hm0();qB("random",p),qB("urandom",p),Bl("/dev/shm"),Bl("/dev/shm/tmp")})(),(function(){Bl("/proc");var p=Bl("/proc/self");Bl("/proc/self/fd"),iq({pu:function(){var H=rq(p,"fd",16895,73);return H.hu={lookup:function(i0,W){var J=KB[+W];if(!J)throw new lk(8);return i0={parent:null,pu:{Vu:"fake"},hu:{readlink:function(){return J.path}}},i0.parent=i0}},H}},"/proc/self/fd")})();var Zm0=!1;function IR(p,H){for(var i0=0,W=0;W<p.length;++W){var J=p.charCodeAt(W);55296<=J&&57343>=J&&(J=65536+((J&1023)<<10)|p.charCodeAt(++W)&1023),127>=J?++i0:i0=2047>=J?i0+2:65535>=J?i0+3:i0+4}i0=Array(i0+1);var c0=i0.length;if(W=0,0<c0){J=W,c0=W+c0-1;for(var U=0;U<p.length;++U){var K3=p.charCodeAt(U);if(55296<=K3&&57343>=K3){var Gk=p.charCodeAt(++U);K3=65536+((K3&1023)<<10)|Gk&1023}if(127>=K3){if(W>=c0)break;i0[W++]=K3}else{if(2047>=K3){if(W+1>=c0)break;i0[W++]=192|K3>>6}else{if(65535>=K3){if(W+2>=c0)break;i0[W++]=224|K3>>12}else{if(W+3>=c0)break;i0[W++]=240|K3>>18,i0[W++]=128|K3>>12&63}i0[W++]=128|K3>>6&63}i0[W++]=128|K3&63}}i0[W]=0,p=W-J}else p=0;return H&&(i0.length=p),i0}function Aq(p){for(var H=[],i0=0;i0<p.length;i0++){var W=p[i0];255<W&&(Zm0&&a5(!1,"Character code "+W+" ("+String.fromCharCode(W)+") at offset "+i0+" not in 0x00-0xFF."),W&=255),H.push(String.fromCharCode(W))}return H.join("")}var pm0=typeof atob=="function"?atob:function(p){var H="",i0=0;p=p.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var W="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(p.charAt(i0++)),J="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(p.charAt(i0++)),c0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(p.charAt(i0++)),U="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(p.charAt(i0++));W=W<<2|J>>4,J=(J&15)<<4|c0>>2;var K3=(c0&3)<<6|U;H+=String.fromCharCode(W),c0!==64&&(H+=String.fromCharCode(J)),U!==64&&(H+=String.fromCharCode(K3))}while(i0<p.length);return H};function FI(p){if(LB(p)){if(p=p.slice(Va.length),typeof pi=="boolean"&&pi){try{var H=Buffer.from(p,"base64")}catch(c0){H=new Buffer(p,"base64")}var i0=new Uint8Array(H.buffer,H.byteOffset,H.byteLength)}else try{var W=pm0(p),J=new Uint8Array(W.length);for(H=0;H<W.length;++H)J[H]=W.charCodeAt(H);i0=J}catch(c0){throw Error("Converting base64 string to bytes failed.")}return i0}}var oq={S:function(p){hq(p)},i:function(p,H,i0,W){Wn("Assertion failed: "+Ik(p)+", at: "+[H?Ik(H):"unknown filename",i0,W?Ik(W):"unknown function"])},n:function(p){return RI(p+16)+16},s:function(p){p=new EB(p);var H=p.wu();return H.$u()||(H.Ku(!0),bZ--),H.Lu(!1),mZ.push(p),H.Xu(),p.bv()},v:function(){d4(0);var p=mZ.pop(),H=p.wu();if(H.hv()&&!H.Tu()){var i0=H.av();i0&&ie.get(i0)(H.Ou),EP(H.Ou)}p.Fu(),Ya=0},d:function(){var p=Ya;if(!p)return vn=0;var H=new XI(p).xu(),i0=new EB;if(i0.Ju(p),!H)return vn=0,i0.iu|0;var W=Array.prototype.slice.call(arguments),J=A4(),c0=h5(4);qi[c0> Line truncated
@@ -15,4 +15,4 @@ ${T9}
`),q8=ie.message+`
`,tf=0;tf<s4.length;tf++)tf>ie.lineNumber-5&&tf<ie.lineNumber+5&&(q8+=s4[tf]+`
`);console.log(q8)}}dispose(){Cr&&(Cr.dispose(),Cr=null)}async loadROM(ie,di){var LB;var s4=di,q8=s4.modules.TOP;if(s4.modules&&q8){var tf=!0,su=tf?_B:vZ,q5=new su(q8,s4.modules["@CONST-POOL@"]);q5.getFileData=this.sourceFileFetch,await q5.init(),this.dispose(),Cr=q5;var cs=[];for(var dl in q8.vardefs){var Wn=q8.vardefs[dl];T7(Wn.dtype)&&cs.push({name:dl,label:Wn.origName,input:Wn.isInput,output:Wn.isOutput,len:Wn.dtype.left+1})}if(this.crtPorts=Object.keys(q8.vardefs).some(Va=>ha3.indexOf(q8.vardefs[Va].origName)>=0),m7=cs,ga3||(m7=m7.filter(Va=>!Va.label.startsWith("__V"))),ot=0,Cr instanceof _B&&(Cr.randomizeOnReset=!0),this.hasvideo=Cr.state.vsync!=null&&Cr.state.hsync!=null&&Cr.state.rgb!=null,this.hasvideo){let Va=["clk","reset"];m7=m7.filter(Ng=>Va.indexOf(Ng.name)<0)}(LB=KF())==null||LB.showVideoControls(this.hasvideo)}Cr.powercycle(),di.program_rom&&di.program_rom_variable&&(Cr.state[di.program_rom_variable]?Cr.state[di.program_rom_variable].length!=di.program_rom.length?alert("ROM size mismatch -- expected "+Cr.state[di.program_rom_variable].length+" got "+di.program_rom.length):Cr.state[di.program_rom_variable].set(di.program_rom):alert("No program_rom variable found ("+di.program_rom_variable+")")),this.restartAudio(),this.scope&&this.scope.resize(),this.reset()}restartAudio(){var ie=Cr&&Cr.state.spkr!=null&&b7>1;$0&&!ie?($0.stop(),$0=null):!$0&&ie&&($0=new im0(Pn*this.getFrameRate()),this.isRunning()&&$0.start())}isRunning(){return o5&&o5.isRunning()}pause(){o5.stop(),$0&&$0.stop()}resume(){o5.start(),$0&&$0.start()}isBlocked(){return Cr&&Cr.isFinished()}isStopped(){return Cr&&Cr.isStopped()}setFrameRate(ie){b7=ie;var di=Math.min(60,ie*Pn);if(!o5||o5.frameRate!=di){var s4=this.isRunning();o5&&o5.stop(),o5=new $y0(di,cu),s4&&o5.start()}$0&&($0.stop(),$0=null),this.restartAudio()}getFrameRate(){return b7}reset(){var ie;Cr&&(ot=0,this.traceFull=!1,is&&is.fill(0),q0&&q0.setRotate(Cr.state.rotate?-90:0),(ie=KF())==null||ie.showSettleCount(null),this.hasvideo?(Cr.state.reset=1,Cr.tick2(100),Cr.state.reset=0):(Cr.state.reset=1,this.resume()))}tick(){Cr&&Cr.tick2(1)}getDefaultExtensions(){return[".v",".asm",".ice"]}inspect(ie){if(Cr){if(!ie||!ie.match(/^\w+$/)){ks=vl=null;return}var di;for(let s4 in Cr.state)(s4==ie||s4.endsWith("$"+ie))&&(ie=s4,di=Cr.state[ie]);typeof di=="number"?(ks=Cr.state,vl=ie):ks=vl=null}}getDebugTree(){return{runtime:Cr,state:Cr&&Cr.getGlobals()}}acceptsPaddles(){return!!Cr&&(Cr.state.hpaddle!=null||Cr.state.vpaddle!=null)}setPaddles(ie,di,s4){q0.paddle_x=ie,q0.paddle_y=di,s4.forEach((q8,tf)=>q0.paddle_buttons[tf]=q8)}getClockCount(){return Cr&&Cr.cycles}getSignals(){return Cr&&Am0(Cr.getGlobals())}saveState(){return{o:Cr&&Cr.saveState()}}loadState(ie){ie.o&&Cr.loadState(ie.o)}saveControlsState(){return{p1x:q0.paddle_x,p1y:q0.paddle_y,sw0:l5[0],sw1:l5[1],sw2:l5[2],keycode:vn}}loadControlsState(ie){q0.paddle_x=ie.p1x,q0.paddle_y=ie.p1y,l5[0]=ie.sw0,l5[1]=ie.sw1,l5[2]=ie.sw2,vn=ie.keycode}getDownloadFile(){if(Cr instanceof vZ)return{extension:".js",blob:new Blob([Cr.getJSCode()],{type:"text/plain"})};if(Cr instanceof _B)return{extension:".wat",blob:new Blob([Cr.bmod.emitText()],{type:"text/plain"})}}getHDLModuleRunner(){return Cr}showHelp(){return"https://8bitworkshop.com/docs/platforms/verilog/"}}return new Mg},wa3=[{id:"hvsync_generator.v",name:"Video Sync Generator"},{id:"test_hvsync.v",name:"Test Pattern"},{id:"chardisplay.v",name:"RAM Text Display"},{id:"starfield.v",name:"Scrolling Starfield"},{id:"ball_paddle.v",name:"Brick Smash Game"}],Ia3=function(y,$){this.__proto__=new om0(y,$),this.getPresets=function(){return wa3},this.setVideoParams(736,520,25e6)};HP.verilog=om0;HP["verilog-vga"]=Ia3;
//# sourceMappingURL=verilog-SIMIKVTX.js.map
//# sourceMappingURL=verilog-TQARZKQO.js.map
File renamed without changes.
@@ -1,3 +1,3 @@
import{a as y}from"./chunk-UNDRK5PG.js";import{B as C,I as f,u as l}from"./chunk-FFJHITEL.js";import{a as p}from"./chunk-UXRCACYH.js";import{P as o,g as m}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var n=class extends l{constructor(){super(...arguments);this.numTotalScanlines=312;this.cpuCyclesPerLine=71;this.videoOffsetBytes=-96;this.joymask0=0;this.joymask1=0}getBIOSLength(){return 20480}loadBIOS(t){super.loadBIOS(t)}async fetchBIOS(){let t=new Uint8Array(20480);t.set(g,t.length-g.length),this.allocateBIOS(t),this.loadBIOS(new Uint8Array(t))}reset(){super.reset();for(var t=0;t<128;t++)this.setKeyInput(t,0,64);if(this.romptr&&this.romlen){let r=this.romarr;if(this.exports.machine_load_rom(this.sys,this.romptr,this.romlen),r[6]==65&&r[7]==48&&r[8]==195&&r[9]==194&&r[10]==205){for(var i=this.romarr[4]+this.romarr[5]*256,s=0;s<1e4&&this.getPC()!=i;s++)this.exports.machine_tick(this.sys);console.log("cart",s,m(i))}else if(this.prgstart=r[0]+(r[1]<<8),this.prgstart==4097&&(this.prgstart=r[2]+(r[3]<<8)+2,console.log("prgstart",m(this.prgstart))),this.prgstart<32768){this.exports.machine_exec(this.sys,5e5);var x="SYS "+this.prgstart+"\r";console.log(x);for(var s=0;s<x.length;s++){var e=x.charCodeAt(s);this.exports.machine_exec(this.sys,1e4),this.exports.machine_exec(this.sys,1e4),this.exports.machine_key_down(this.sys,e),this.exports.machine_exec(this.sys,1e4),this.exports.machine_exec(this.sys,1e4),this.exports.machine_key_up(this.sys,e)}for(var s=0;s<1e4&&this.getPC()!=this.prgstart;s++)this.exports.machine_tick(this.sys)}}}advanceFrame(t){var x=this.getRasterY(),s=Math.floor((this.numTotalScanlines-x)*22152/this.numTotalScanlines),e=this.probe!=null;return e&&this.exports.machine_reset_probe_buffer(),s=super.advanceFrameClock(t,s),e&&this.copyProbeData(),s}getRasterY(){return this.exports.machine_get_raster_line(this.sys)}getRasterCanvasPosition(){return{x:-1,y:this.getRasterY()-14}}getCPUState(){this.exports.machine_save_cpu_state(this.sys,this.cpustateptr);var t=this.cpustatearr,x=t[2]+(t[3]<<8);return{PC:x,SP:t[9],A:t[6],X:t[7],Y:t[8],C:t[10]&1,Z:t[10]&2,I:t[10]&4,D:t[10]&8,V:t[10]&64,N:t[10]&128,o:this.readConst(x)}}saveState(){return this.exports.machine_save_state(this.sys,this.stateptr),{c:this.getCPUState(),state:this.statearr.slice(0),ram:this.statearr.slice(18640,19152),joymask0:this.joymask0,joymask1:this.joymask1}}loadState(t){this.statearr.set(t.state),this.exports.machine_load_state(this.sys,this.stateptr),this.joymask0=t.joymask0|0,this.joymask1=t.joymask1|0,this.exports.vic20_joystick(this.sys,this.joymask0,this.joymask1)}getVideoParams(){return{width:232,height:272,overscan:!0,videoFrequency:50,aspect:1.5}}setKeyInput(t,x,s){if(!(t==16||t==17||t==18||t==224)){var e=0,i=0;t==37&&(t=8,e=4),t==38&&(t=11,e=1),t==39&&(t=9,e=8),t==40&&(t=10,e=2),t==32&&(e=16),t==113&&(t=241),t==115&&(t=243),t==119&&(t=245),t==121&&(t=247),s&1?(this.exports.machine_key_down(this.sys,t),this.joymask0|=e,this.joymask1|=i):s&64&&(this.exports.machine_key_up(this.sys,t),this.joymask0&=~e,this.joymask1&=~i),this.exports.vic20_joystick(this.sys,this.joymask0,this.joymask1)}}},g=[162,16,160,145,96,113,255,113,255,92,255,162,255,120,154,216,108,0,160,162,69,160,255,24,120,108,24,3,72,138,72,152,72,173,29,145,16,3,108,2,160,76,108,255,104,168,104,170,104,64,72,138,72,152,72,186,189,4,1,41,16,240,3,108,22,3,108,20,3,255,255,255,255,255,76,83,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,108,26,3,108,28,3,108,30,3,108,32,3,108,34,3,108,36,3,108,38,3,76,68,255,76,68,255,76,68,255,76,68,255,108,40,3,108,42,3,108,44,3,76,68,255,76,68,255,76,68,255,76,64,255,255,255,255,255,88,255,75,255,114,255];var u=[{id:"hellocart.dasm",name:"Hello Cartridge (ASM)"}],d={main:[{name:"RAM",start:0,size:1024,type:"ram"},{name:"RAM",start:4096,size:4096,type:"ram"},{name:"BLK1 Cart ROM",start:8192,size:8192,type:"rom"},{name:"BLK2 Cart ROM",start:16384,size:8192,type:"rom"},{name:"BLK3 Cart ROM",start:24576,size:8192,type:"rom"},{name:"Character ROM",start:32768,size:4096,type:"rom"},{name:"I/O 1",start:36864,size:1024,type:"io"},{name:"Color RAM",start:37888,size:1024,type:"io"},{name:"I/O 2",start:38912,size:1024,type:"io"},{name:"I/O 3",start:39936,size:1024,type:"io"},{name:"BLK5 Autostart",start:40960,size:8192,type:"rom"},{name:"BASIC ROM",start:49152,size:8192,type:"rom"},{name:"KERNAL ROM",start:57344,size:8192,type:"rom"}]},h=class extends f{newMachine(){return new n("vic20")}getPresets(){return u}readAddress(a){return this.machine.readConst(a)}getMemoryMap(){return d}showHelp(){return"https://8bitworkshop.com/docs/platforms/vic20/"}getROMExtension(a){return a&&a[0]==1&&a[1]==8?".prg":".bin"}},c=class extends y{constructor(){super(...arguments);this.getToolForFilename=p;this.getOpcodeMetadata=C}getPresets(){return u}getDefaultExtensions(){return[".c",".cpp",".acme",".xa",".ca65",".dasm",".ecs",".wiz"]}Line truncated
import{a as y}from"./chunk-JELKPLZC.js";import{D as C,K as f,w as l}from"./chunk-4YTESWOC.js";import{a as p}from"./chunk-UXRCACYH.js";import{P as o,g as m}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var n=class extends l{constructor(){super(...arguments);this.numTotalScanlines=312;this.cpuCyclesPerLine=71;this.videoOffsetBytes=-96;this.joymask0=0;this.joymask1=0}getBIOSLength(){return 20480}loadBIOS(t){super.loadBIOS(t)}async fetchBIOS(){let t=new Uint8Array(20480);t.set(g,t.length-g.length),this.allocateBIOS(t),this.loadBIOS(new Uint8Array(t))}reset(){super.reset();for(var t=0;t<128;t++)this.setKeyInput(t,0,64);if(this.romptr&&this.romlen){let r=this.romarr;if(this.exports.machine_load_rom(this.sys,this.romptr,this.romlen),r[6]==65&&r[7]==48&&r[8]==195&&r[9]==194&&r[10]==205){for(var i=this.romarr[4]+this.romarr[5]*256,s=0;s<1e4&&this.getPC()!=i;s++)this.exports.machine_tick(this.sys);console.log("cart",s,m(i))}else if(this.prgstart=r[0]+(r[1]<<8),this.prgstart==4097&&(this.prgstart=r[2]+(r[3]<<8)+2,console.log("prgstart",m(this.prgstart))),this.prgstart<32768){this.exports.machine_exec(this.sys,5e5);var x="SYS "+this.prgstart+"\r";console.log(x);for(var s=0;s<x.length;s++){var e=x.charCodeAt(s);this.exports.machine_exec(this.sys,1e4),this.exports.machine_exec(this.sys,1e4),this.exports.machine_key_down(this.sys,e),this.exports.machine_exec(this.sys,1e4),this.exports.machine_exec(this.sys,1e4),this.exports.machine_key_up(this.sys,e)}for(var s=0;s<1e4&&this.getPC()!=this.prgstart;s++)this.exports.machine_tick(this.sys)}}}advanceFrame(t){var x=this.getRasterY(),s=Math.floor((this.numTotalScanlines-x)*22152/this.numTotalScanlines),e=this.probe!=null;return e&&this.exports.machine_reset_probe_buffer(),s=super.advanceFrameClock(t,s),e&&this.copyProbeData(),s}getRasterY(){return this.exports.machine_get_raster_line(this.sys)}getRasterCanvasPosition(){return{x:-1,y:this.getRasterY()-14}}getCPUState(){this.exports.machine_save_cpu_state(this.sys,this.cpustateptr);var t=this.cpustatearr,x=t[2]+(t[3]<<8);return{PC:x,SP:t[9],A:t[6],X:t[7],Y:t[8],C:t[10]&1,Z:t[10]&2,I:t[10]&4,D:t[10]&8,V:t[10]&64,N:t[10]&128,o:this.readConst(x)}}saveState(){return this.exports.machine_save_state(this.sys,this.stateptr),{c:this.getCPUState(),state:this.statearr.slice(0),ram:this.statearr.slice(18640,19152),joymask0:this.joymask0,joymask1:this.joymask1}}loadState(t){this.statearr.set(t.state),this.exports.machine_load_state(this.sys,this.stateptr),this.joymask0=t.joymask0|0,this.joymask1=t.joymask1|0,this.exports.vic20_joystick(this.sys,this.joymask0,this.joymask1)}getVideoParams(){return{width:232,height:272,overscan:!0,videoFrequency:50,aspect:1.5}}setKeyInput(t,x,s){if(!(t==16||t==17||t==18||t==224)){var e=0,i=0;t==37&&(t=8,e=4),t==38&&(t=11,e=1),t==39&&(t=9,e=8),t==40&&(t=10,e=2),t==32&&(e=16),t==113&&(t=241),t==115&&(t=243),t==119&&(t=245),t==121&&(t=247),s&1?(this.exports.machine_key_down(this.sys,t),this.joymask0|=e,this.joymask1|=i):s&64&&(this.exports.machine_key_up(this.sys,t),this.joymask0&=~e,this.joymask1&=~i),this.exports.vic20_joystick(this.sys,this.joymask0,this.joymask1)}}},g=[162,16,160,145,96,113,255,113,255,92,255,162,255,120,154,216,108,0,160,162,69,160,255,24,120,108,24,3,72,138,72,152,72,173,29,145,16,3,108,2,160,76,108,255,104,168,104,170,104,64,72,138,72,152,72,186,189,4,1,41,16,240,3,108,22,3,108,20,3,255,255,255,255,255,76,83,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,76,68,255,108,26,3,108,28,3,108,30,3,108,32,3,108,34,3,108,36,3,108,38,3,76,68,255,76,68,255,76,68,255,76,68,255,108,40,3,108,42,3,108,44,3,76,68,255,76,68,255,76,68,255,76,64,255,255,255,255,255,88,255,75,255,114,255];var u=[{id:"hellocart.dasm",name:"Hello Cartridge (ASM)"}],d={main:[{name:"RAM",start:0,size:1024,type:"ram"},{name:"RAM",start:4096,size:4096,type:"ram"},{name:"BLK1 Cart ROM",start:8192,size:8192,type:"rom"},{name:"BLK2 Cart ROM",start:16384,size:8192,type:"rom"},{name:"BLK3 Cart ROM",start:24576,size:8192,type:"rom"},{name:"Character ROM",start:32768,size:4096,type:"rom"},{name:"I/O 1",start:36864,size:1024,type:"io"},{name:"Color RAM",start:37888,size:1024,type:"io"},{name:"I/O 2",start:38912,size:1024,type:"io"},{name:"I/O 3",start:39936,size:1024,type:"io"},{name:"BLK5 Autostart",start:40960,size:8192,type:"rom"},{name:"BASIC ROM",start:49152,size:8192,type:"rom"},{name:"KERNAL ROM",start:57344,size:8192,type:"rom"}]},h=class extends f{newMachine(){return new n("vic20")}getPresets(){return u}readAddress(a){return this.machine.readConst(a)}getMemoryMap(){return d}showHelp(){return"https://8bitworkshop.com/docs/platforms/vic20/"}getROMExtension(a){return a&&a[0]==1&&a[1]==8?".prg":".bin"}},c=class extends y{constructor(){super(...arguments);this.getToolForFilename=p;this.getOpcodeMetadata=C}getPresets(){return u}getDefaultExtensions(){return[".c",".cpp",".acme",".xa",".ca65",".dasm",".ecs",".wiz"]}Line truncated
`],preInit:function(e){}});else{this.loadROMFile(x),this.loadRegion(":quickload",x);var s=this.luacall('image:load("/emulator/image.prg")');console.log("load rom",s)}}start(){}getMemoryMap(){return d}};o.vic20=h;o["vic20.wasm"]=h;o["vic20.mame"]=c;
//# sourceMappingURL=vic20-CSSBR2HQ.js.map
//# sourceMappingURL=vic20-J6H7NL3P.js.map
File renamed without changes.
@@ -1,2 +1,2 @@
import{J as M,c as h,d as v,e as A,l as g,t as w}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{P as d,ba as s,ca as y,ea as S,ha as o}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var K=S([[s.A,2,-32],[s.B,2,-64],[s.LEFT,1,-16],[s.RIGHT,1,-32],[s.UP,1,-64],[s.DOWN,1,-128],[s.START,2,-16],[s.P2_START,3,-32],[s.SELECT,3,8]]),c=15468e3,P=262,I=224;var U=240,b=c/8,R=c/3/P,j=R/328,_=b/R,q=500,D=b/(2*q),T=2,G=60*P,a=class extends w{constructor(){super();this.cpuFrequency=c/8;this.canvasWidth=256;this.numTotalScanlines=262;this.numVisibleScanlines=224;this.defaultROMSize=16448;this.sampleRate=G*T;this.cpuCyclesPerLine=_|0;this.rotate=-90;this.cpu=new h;this.ram=new Uint8Array(4096);this.read=o([[0,32767,16383,e=>this.rom?this.rom[e]:null],[32768,65535,4095,e=>this.ram[e]]]);this.write=o([[32768,65535,4095,(e,t)=>{this.ram[e]=t}]]);this.connectCPUMemoryBus(this),this.connectCPUIOBus(this.newIOBus()),this.inputs.set([255,255,255,247]),this.display=new f,this.handler=y(this.inputs,K,this.getKeyboardFunction()),this.psg=new A(new v),this.audioadapter=new g(this.psg.psg,T,this.sampleRate)}getKeyboardFunction(){return e=>{e.index==3&&e.mask==8&&(this.cpu.reset(),console.log("coin inserted"),console.log(this.inputs))}}newIOBus(){return{read:e=>this.inputs[e&3],write:(e,t)=>{e&1&&this.psg.selectRegister(t&15),e&2&&this.psg.setData(t),e&8,e&64&&(this.display.palbank=t&3)}}}reset(){super.reset(),this.psg.reset()}startScanline(){this.inputs[2]&=-9,this.inputs[2]|=(this.frameCycles/D&1)<<3,this.scanline==I&&(this.inputs[1]|=8),this.scanline==U&&(this.inputs[1]&=-9),this.audio&&this.audioadapter.generate(this.audio)}drawScanline(){this.display.drawScanline(this.ram,this.pixels,this.scanline)}loadROM(e){super.loadROM(e),e.length>=16416&&(e[16384]||e[16415])&&(this.display.colorprom=e.slice(16384,16416))}loadState(e){super.loadState(e),this.display.palbank=e.pb}saveState(){var e=super.saveState();return e.pb=this.display.palbank,e}},f=class{constructor(){this.palbank=0;this.palette=[4278190080,4278190335,4278255360,4278255615,4294901760,4294902015,4294967040,4294967295];this.colorprom=[224,96,32,96,192,96,64,192,32,64,96,128,160,192,224,14,224,224,224,224,96,96,96,96,224,224,224,224,224,224,224,224]}drawScanline(i,e,t){if(!(t>=224))for(var k=t*256,p=k,F=t>>3<<5,C=t&7,r=0;r<32;r++)for(var m=i[F+r],O=i[2048+(m<<3)+C],u=(m>>5)+(this.palbank<<3),E=this.palette[this.colorprom[u]>>1&7],B=this.palette[this.colorprom[u]>>5&7],n=0;n<8;n++){var L=128>>n;e[p]=O&L?B:E,p++}}};var H=[{id:"minimal.c",name:"Minimal Example"},{id:"hello.c",name:"Hello World"},{id:"gfxtest.c",name:"Graphics Test"},{id:"soundtest.c",name:"Sound Test"},{id:"snake1.c",name:"Siege Game (Prototype)"},{id:"snake2.c",name:"Siege Game (Full)"},{id:"music.c",name:"Music Player"}],x=class extends M{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"Cell RAM",start:57344,size:1024,type:"ram"},{name:"Tile RAM",start:59392,size:256*8,type:"ram"}]}}}newMachine(){return new a}getPresets(){return H}readAddress(e){return this.machine.read(e)}showHelp(){return"https://8bitworkshop.com/docs/platforms/arcade/index.html#vic-dual"}};d.vicdual=x;
//# sourceMappingURL=vicdual-XMXP2GDR.js.map
import{L as M,c as h,d as v,e as A,n as g,v as w}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{P as d,ba as s,ca as y,ea as S,ha as o}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var K=S([[s.A,2,-32],[s.B,2,-64],[s.LEFT,1,-16],[s.RIGHT,1,-32],[s.UP,1,-64],[s.DOWN,1,-128],[s.START,2,-16],[s.P2_START,3,-32],[s.SELECT,3,8]]),c=15468e3,P=262,I=224;var U=240,b=c/8,R=c/3/P,j=R/328,_=b/R,q=500,D=b/(2*q),T=2,G=60*P,a=class extends w{constructor(){super();this.cpuFrequency=c/8;this.canvasWidth=256;this.numTotalScanlines=262;this.numVisibleScanlines=224;this.defaultROMSize=16448;this.sampleRate=G*T;this.cpuCyclesPerLine=_|0;this.rotate=-90;this.cpu=new h;this.ram=new Uint8Array(4096);this.read=o([[0,32767,16383,e=>this.rom?this.rom[e]:null],[32768,65535,4095,e=>this.ram[e]]]);this.write=o([[32768,65535,4095,(e,t)=>{this.ram[e]=t}]]);this.connectCPUMemoryBus(this),this.connectCPUIOBus(this.newIOBus()),this.inputs.set([255,255,255,247]),this.display=new f,this.handler=y(this.inputs,K,this.getKeyboardFunction()),this.psg=new A(new v),this.audioadapter=new g(this.psg.psg,T,this.sampleRate)}getKeyboardFunction(){return e=>{e.index==3&&e.mask==8&&(this.cpu.reset(),console.log("coin inserted"),console.log(this.inputs))}}newIOBus(){return{read:e=>this.inputs[e&3],write:(e,t)=>{e&1&&this.psg.selectRegister(t&15),e&2&&this.psg.setData(t),e&8,e&64&&(this.display.palbank=t&3)}}}reset(){super.reset(),this.psg.reset()}startScanline(){this.inputs[2]&=-9,this.inputs[2]|=(this.frameCycles/D&1)<<3,this.scanline==I&&(this.inputs[1]|=8),this.scanline==U&&(this.inputs[1]&=-9),this.audio&&this.audioadapter.generate(this.audio)}drawScanline(){this.display.drawScanline(this.ram,this.pixels,this.scanline)}loadROM(e){super.loadROM(e),e.length>=16416&&(e[16384]||e[16415])&&(this.display.colorprom=e.slice(16384,16416))}loadState(e){super.loadState(e),this.display.palbank=e.pb}saveState(){var e=super.saveState();return e.pb=this.display.palbank,e}},f=class{constructor(){this.palbank=0;this.palette=[4278190080,4278190335,4278255360,4278255615,4294901760,4294902015,4294967040,4294967295];this.colorprom=[224,96,32,96,192,96,64,192,32,64,96,128,160,192,224,14,224,224,224,224,96,96,96,96,224,224,224,224,224,224,224,224]}drawScanline(i,e,t){if(!(t>=224))for(var k=t*256,p=k,F=t>>3<<5,C=t&7,r=0;r<32;r++)for(var m=i[F+r],O=i[2048+(m<<3)+C],u=(m>>5)+(this.palbank<<3),E=this.palette[this.colorprom[u]>>1&7],B=this.palette[this.colorprom[u]>>5&7],n=0;n<8;n++){var L=128>>n;e[p]=O&L?B:E,p++}}};var H=[{id:"minimal.c",name:"Minimal Example"},{id:"hello.c",name:"Hello World"},{id:"gfxtest.c",name:"Graphics Test"},{id:"soundtest.c",name:"Sound Test"},{id:"snake1.c",name:"Siege Game (Prototype)"},{id:"snake2.c",name:"Siege Game (Full)"},{id:"music.c",name:"Music Player"}],x=class extends M{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"Cell RAM",start:57344,size:1024,type:"ram"},{name:"Tile RAM",start:59392,size:256*8,type:"ram"}]}}}newMachine(){return new a}getPresets(){return H}readAddress(e){return this.machine.read(e)}showHelp(){return"https://8bitworkshop.com/docs/platforms/arcade/index.html#vic-dual"}};d.vicdual=x;
//# sourceMappingURL=vicdual-YSEHHGWL.js.map
File renamed without changes.
@@ -1,3 +1,3 @@
import{E as P0,F as R0,K as S0,d as V,i as N,m as _0,t as y0}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{$ as v0,P as k,V as p0,X as D,ba as f,ca as b0,da as w0,ea as A,g as v,ga as g,ha as h}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var J=8,V0=304,L=class extends y0{constructor(t){super();this.isDefender=t;this.xtal=12e6;this.cpuFrequency=this.xtal/3/4;this.cpuCyclesPerLine=54;this.canvasWidth=256;this.numTotalScanlines=304;this.numVisibleScanlines=304;this.defaultROMSize=49152;this.rotate=-90;this.sampleRate=1;this.ram=new Uint8Array(49152);this.nvram=new Uint8Array(1024);this.rom=new Uint8Array(49152);this.portsel=0;this.banksel=0;this.watchdog_counter=0;this.watchdog_enabled=!1;this.pia6821=new Uint8Array(8);this.blitregs=new Uint8Array(8);this.palette=new Uint32Array(16);this.screenNeedsRefresh=!1;this.cpuScale=1;this.waitCycles=0;this.palette.fill(4278190080),this.initBus(t),this.initInputs(t),this.initAudio(),this.initCPU()}initInputs(t){var s=A([[f.A,4,1],[f.RIGHT,4,2],[f.B,4,4],[f.VK_X,4,8],[f.P2_START,4,16],[f.START,4,32],[f.LEFT,4,64],[f.DOWN,4,128],[f.UP,6,1],[f.SELECT,0,4],[f.VK_7,0,1],[f.VK_8,0,2],[f.VK_9,0,8]]),n=A([[f.P2_UP,0,1],[f.P2_DOWN,0,2],[f.P2_LEFT,0,4],[f.P2_RIGHT,0,8],[f.START,0,16],[f.P2_START,0,32],[f.UP,0,64],[f.DOWN,0,128],[f.LEFT,2,1],[f.RIGHT,2,2],[f.VK_7,4,1],[f.VK_8,4,2],[f.VK_6,4,4],[f.VK_9,4,8],[f.SELECT,4,16]]),m=t?s:n;this.handler=b0(this.pia6821,m)}initBus(t){var s=h([[1024,1535,511,i=>this.nvram[i]],[2048,2048,0,i=>this.scanline],[3072,3079,7,i=>this.pia6821[i]],[0,4095,0,i=>{}]]),n=h([[0,15,15,this.setPalette.bind(this)],[1020,1023,0,(i,a)=>{a==56&&(this.watchdog_counter=J),this.watchdog_enabled=!0}],[1024,1535,511,(i,a)=>{this.nvram[i]=a}],[3074,3074,1,(i,a)=>{this.worker&&this.worker.postMessage({command:a&63})}],[3072,3079,7,(i,a)=>{this.pia6821[i]=a}],[0,4095,0,(i,a)=>{}]]),m=h([[0,49151,65535,i=>this.ram[i]],[49152,53247,4095,i=>{switch(this.banksel){case 0:return s(i);case 1:return this.rom[i+12288];case 2:return this.rom[i+16384];case 3:return this.rom[i+20480];case 7:return this.rom[i+24576];default:return 0}}],[53248,65535,65535,i=>this.rom?this.rom[i-53248]:0]]),b=h([[0,38911,0,this.write_display_byte.bind(this)],[38912,49151,0,(i,a)=>{this.ram[i]=a}],[49152,53247,4095,n.bind(this)],[53248,57343,0,(i,a)=>{this.banksel=a&7}],[0,65535,0,(i,a)=>{}]]),o=h([[2052,2055,3,i=>this.pia6821[i]],[2060,2063,3,i=>this.pia6821[i+4]],[2816,3071,0,i=>this.scanline],[3072,4095,1023,i=>this.nvram[i]],[0,4095,0,i=>{}]]),d=h([[0,15,15,this.setPalette.bind(this)],[2060,2060,15,(i,a)=>{this.worker&&this.worker.postMessage({command:a})}],[2304,2559,0,(i,a)=>{this.banksel=a&1}],[2560,2567,7,this.setBlitter.bind(this)],[3071,3071,0,(i,a)=>{a==57&&(this.watchdog_counter=J,this.watchdog_enabled=!0)}],[3072,4095,1023,(i,a)=>{this.nvram[i]=a}]]),u=h([[0,36863,65535,i=>this.banksel?this.rom[i]:this.ram[i]],[36864,49151,65535,i=>this.ram[i]],[49152,53247,4095,o],[53248,65535,65535,i=>this.rom?this.rom[i-16384]:0]]),R=h([[0,38911,0,this.write_display_byte.bind(this)],[38912,49151,0,(i,a)=>{this.ram[i]=a}],[49152,53247,4095,d.bind(this)]]),T=t?m:u,y=t?b:R;this.membus={read:T,write:y},this.membus=this.probeMemoryBus(this.membus),this.readAddress=this.membus.read}initAudio(){if(this.master=new V,window.Worker!=null){this.worker=new Worker("./src/common/audio/z80worker.js");let t=new N(this.worker);this.master.master.addChannel(t)}}initCPU(){this.rom=new Uint8Array(this.defaultROMSize),this.cpu=this.newCPU(this.membus)}newCPU(t){var s=Object.create(_0());return s.init(t.write,t.read,0),s}setPalette(t,s){var n=4278190080|(s&7)<<5|(s>>3&7)<<13|s>>6<<22;n!=this.palette[t]&&(this.palette[t]=n,this.screenNeedsRefresh=!0)}write_display_byte(t,s){this.ram[t]=s,this.drawDisplayByte(t,s),this.displayPCs&&(this.displayPCs[t]=this.cpu.getPC())}drawDisplayByte(t,s){var n=(t&65280)<<1|t&255^255;this.pixels[n]=this.palette[s>>4],this.pixels[n+256]=this.palette[s&15]}setBlitter(t,s){if(t)this.blitregs[t]=s;else{var n=this.doBlit(s);this.waitCycles-=n*this.cpuScale}}doBlit(t){t&=255;var s=V0-this.blitregs[7],n=(this.blitregs[2]<<8)+this.blitregs[3],m=(this.blitregs[4]<<8)+this.blitregs[5],b=this.blitregs[6]^4,o=this.blitregs[7]^4;b==0&&b++,o==0&&o++,o==255&&o++;for(var d=t&1?256:1,u=t&1?1:b,R=t&2?256:1,T=t&2?1:b,y=0,i=0;i<o;i++){for(var a=n&65535,p=m&65535,w=0;w<b;w++){var _=this.membus.read(a);t&32?(y=y<<8|_,this.blit_pixel(p,y>>4&255,t)):this.blit_pixel(p,_,t),a+=d,a&=65535,p+=R,p&=65535}t&2?m=m&65280|m+T&255:m+=T,t&1?n=n&65280|n+u&255:n+=u}return b*o*(2+((t&4)>>2))}blit_pixel(t,s,n){var m=t<49152?this.ram[t]:this.membus.read(t),b=this.blitregs[1],o=255;n&8&&!(s&240)?n&128&&(o&=15):n&128||(o&=15),n&8&&!(s&15)?n&64&&(o&=240):n&64||(o&=240),m&=o,n&16?m|=b&~o:m|=s&~o,t<38912&&this.membus.write(t,m)}startScanline(){if(this.audio&&this.audioadapter&&this.audioadapter.generate(this.audio),this.screenNeedsRefresh&&this.scanline==0){for(var t=0;t<38912;t++)this.drawDisplayByte(t,this.rLine truncated
import{G as P0,H as R0,M as S0,d as V,i as N,o as _0,v as y0}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{$ as v0,P as k,V as p0,X as D,ba as f,ca as b0,da as w0,ea as A,g as v,ga as g,ha as h}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var J=8,V0=304,L=class extends y0{constructor(t){super();this.isDefender=t;this.xtal=12e6;this.cpuFrequency=this.xtal/3/4;this.cpuCyclesPerLine=54;this.canvasWidth=256;this.numTotalScanlines=304;this.numVisibleScanlines=304;this.defaultROMSize=49152;this.rotate=-90;this.sampleRate=1;this.ram=new Uint8Array(49152);this.nvram=new Uint8Array(1024);this.rom=new Uint8Array(49152);this.portsel=0;this.banksel=0;this.watchdog_counter=0;this.watchdog_enabled=!1;this.pia6821=new Uint8Array(8);this.blitregs=new Uint8Array(8);this.palette=new Uint32Array(16);this.screenNeedsRefresh=!1;this.cpuScale=1;this.waitCycles=0;this.palette.fill(4278190080),this.initBus(t),this.initInputs(t),this.initAudio(),this.initCPU()}initInputs(t){var s=A([[f.A,4,1],[f.RIGHT,4,2],[f.B,4,4],[f.VK_X,4,8],[f.P2_START,4,16],[f.START,4,32],[f.LEFT,4,64],[f.DOWN,4,128],[f.UP,6,1],[f.SELECT,0,4],[f.VK_7,0,1],[f.VK_8,0,2],[f.VK_9,0,8]]),n=A([[f.P2_UP,0,1],[f.P2_DOWN,0,2],[f.P2_LEFT,0,4],[f.P2_RIGHT,0,8],[f.START,0,16],[f.P2_START,0,32],[f.UP,0,64],[f.DOWN,0,128],[f.LEFT,2,1],[f.RIGHT,2,2],[f.VK_7,4,1],[f.VK_8,4,2],[f.VK_6,4,4],[f.VK_9,4,8],[f.SELECT,4,16]]),m=t?s:n;this.handler=b0(this.pia6821,m)}initBus(t){var s=h([[1024,1535,511,i=>this.nvram[i]],[2048,2048,0,i=>this.scanline],[3072,3079,7,i=>this.pia6821[i]],[0,4095,0,i=>{}]]),n=h([[0,15,15,this.setPalette.bind(this)],[1020,1023,0,(i,a)=>{a==56&&(this.watchdog_counter=J),this.watchdog_enabled=!0}],[1024,1535,511,(i,a)=>{this.nvram[i]=a}],[3074,3074,1,(i,a)=>{this.worker&&this.worker.postMessage({command:a&63})}],[3072,3079,7,(i,a)=>{this.pia6821[i]=a}],[0,4095,0,(i,a)=>{}]]),m=h([[0,49151,65535,i=>this.ram[i]],[49152,53247,4095,i=>{switch(this.banksel){case 0:return s(i);case 1:return this.rom[i+12288];case 2:return this.rom[i+16384];case 3:return this.rom[i+20480];case 7:return this.rom[i+24576];default:return 0}}],[53248,65535,65535,i=>this.rom?this.rom[i-53248]:0]]),b=h([[0,38911,0,this.write_display_byte.bind(this)],[38912,49151,0,(i,a)=>{this.ram[i]=a}],[49152,53247,4095,n.bind(this)],[53248,57343,0,(i,a)=>{this.banksel=a&7}],[0,65535,0,(i,a)=>{}]]),o=h([[2052,2055,3,i=>this.pia6821[i]],[2060,2063,3,i=>this.pia6821[i+4]],[2816,3071,0,i=>this.scanline],[3072,4095,1023,i=>this.nvram[i]],[0,4095,0,i=>{}]]),d=h([[0,15,15,this.setPalette.bind(this)],[2060,2060,15,(i,a)=>{this.worker&&this.worker.postMessage({command:a})}],[2304,2559,0,(i,a)=>{this.banksel=a&1}],[2560,2567,7,this.setBlitter.bind(this)],[3071,3071,0,(i,a)=>{a==57&&(this.watchdog_counter=J,this.watchdog_enabled=!0)}],[3072,4095,1023,(i,a)=>{this.nvram[i]=a}]]),u=h([[0,36863,65535,i=>this.banksel?this.rom[i]:this.ram[i]],[36864,49151,65535,i=>this.ram[i]],[49152,53247,4095,o],[53248,65535,65535,i=>this.rom?this.rom[i-16384]:0]]),R=h([[0,38911,0,this.write_display_byte.bind(this)],[38912,49151,0,(i,a)=>{this.ram[i]=a}],[49152,53247,4095,d.bind(this)]]),T=t?m:u,y=t?b:R;this.membus={read:T,write:y},this.membus=this.probeMemoryBus(this.membus),this.readAddress=this.membus.read}initAudio(){if(this.master=new V,window.Worker!=null){this.worker=new Worker("./src/common/audio/z80worker.js");let t=new N(this.worker);this.master.master.addChannel(t)}}initCPU(){this.rom=new Uint8Array(this.defaultROMSize),this.cpu=this.newCPU(this.membus)}newCPU(t){var s=Object.create(_0());return s.init(t.write,t.read,0),s}setPalette(t,s){var n=4278190080|(s&7)<<5|(s>>3&7)<<13|s>>6<<22;n!=this.palette[t]&&(this.palette[t]=n,this.screenNeedsRefresh=!0)}write_display_byte(t,s){this.ram[t]=s,this.drawDisplayByte(t,s),this.displayPCs&&(this.displayPCs[t]=this.cpu.getPC())}drawDisplayByte(t,s){var n=(t&65280)<<1|t&255^255;this.pixels[n]=this.palette[s>>4],this.pixels[n+256]=this.palette[s&15]}setBlitter(t,s){if(t)this.blitregs[t]=s;else{var n=this.doBlit(s);this.waitCycles-=n*this.cpuScale}}doBlit(t){t&=255;var s=V0-this.blitregs[7],n=(this.blitregs[2]<<8)+this.blitregs[3],m=(this.blitregs[4]<<8)+this.blitregs[5],b=this.blitregs[6]^4,o=this.blitregs[7]^4;b==0&&b++,o==0&&o++,o==255&&o++;for(var d=t&1?256:1,u=t&1?1:b,R=t&2?256:1,T=t&2?1:b,y=0,i=0;i<o;i++){for(var a=n&65535,p=m&65535,w=0;w<b;w++){var _=this.membus.read(a);t&32?(y=y<<8|_,this.blit_pixel(p,y>>4&255,t)):this.blit_pixel(p,_,t),a+=d,a&=65535,p+=R,p&=65535}t&2?m=m&65280|m+T&255:m+=T,t&1?n=n&65280|n+u&255:n+=u}return b*o*(2+((t&4)>>2))}blit_pixel(t,s,n){var m=t<49152?this.ram[t]:this.membus.read(t),b=this.blitregs[1],o=255;n&8&&!(s&240)?n&128&&(o&=15):n&128||(o&=15),n&8&&!(s&15)?n&64&&(o&=240):n&64||(o&=240),m&=o,n&16?m|=b&~o:m|=s&~o,t<38912&&this.membus.write(t,m)}startScanline(){if(this.audio&&this.audioadapter&&this.audioadapter.generate(this.audio),this.screenNeedsRefresh&&this.scanline==0){for(var t=0;t<38912;t++)this.drawDisplayByte(t,this.rLine truncated
BLIT `+v(n,4)+" "+v(m,4)+" w:"+v(b)+" h:"+v(o)+" f:"+v(s[0])+" s:"+v(s[1])}},H0=function(M,S){this.__proto__=new e0(M,null,{isDefender:!0}),this.getMemoryMap=function(){return{main:[{name:"NVRAM",start:1024,size:512,type:"ram"},{name:"Video RAM",start:0,size:49152,type:"ram"},{name:"I/O Registers",start:49152,size:4096,type:"io"},{name:"ROM",start:53248,size:12288,type:"rom"}]}}},Q=class extends S0{newMachine(){return new L(!1)}getPresets(){return M0}readAddress(S){return this.machine.readConst(S)}getMemoryMap(){return{main:[{name:"Video RAM",start:0,size:49152,type:"ram"},{name:"I/O Registers",start:49152,size:3072,type:"io"},{name:"NVRAM",start:52224,size:1024,type:"ram"},{name:"ROM",start:53248,size:12288,type:"rom"}]}}};k.williams=Q;k["williams.old"]=N0;k["williams-defender"]=H0;k["williams-z80"]=L0;
//# sourceMappingURL=williams-E5LRE2GA.js.map
//# sourceMappingURL=williams-4C24P37E.js.map
File renamed without changes.
@@ -1,2 +1,2 @@
import{y as w}from"./chunk-FFJHITEL.js";import{a as f,b as y}from"./chunk-3FIVEUG2.js";import{m as p}from"./chunk-UXRCACYH.js";import{G as c,P as g,Y as m}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var b=[{id:"hello.inf",name:"Hello World",category:"Inform 6"},{id:"house01.inf",name:"House Tutorial #1"},{id:"house02.inf",name:"House Tutorial #2"},{id:"house03.inf",name:"House Tutorial #3"},{id:"house04.inf",name:"House Tutorial #4"},{id:"house05.inf",name:"House Tutorial #5"},{id:"house06.inf",name:"House Tutorial #6"},{id:"house07.inf",name:"House Tutorial #7"},{id:"alice.inf",name:"Through the Looking-Glass"},{id:"aloneice.inf",name:"Alone on the Ice"},{id:"adventureland.inf",name:"Adventureland"},{id:"toyshop.inf",name:"Toyshop"},{id:"ruins1.inf",name:"Ruins #1"},{id:"ruins2.inf",name:"Ruins #2"},{id:"ruins3.inf",name:"Ruins #3"},{id:"balances.inf",name:"Balances"},{id:"museum.inf",name:"Museum of Inform"},{id:"advent.inf",name:"Colossal Cave Adventure"},{id:"ztrek.inf",name:"Super Z Trek"},{id:"hello.dg",name:"Hello Dialog",category:"Dialog"},{id:"cottage.dg",name:"Cloak of Darkness"}];function i(...u){}var l=class{constructor(e,t,n){this.exited=!1;this.DidNotReturn={dummy:"Glk call has not yet returned"};this.RefBox=_;this.RefStruct=d;this.mainwnd=new y(e,!1,t),this.mainwnd.keepinput=!1,this.mainwnd.splitInput=!1,this.mainwnd.uppercaseOnly=!0,this.mainwnd.hideinput(),this.windows={1:this.mainwnd,2:new f(n,!0),3:new f(null,!0)},this.input=t,this.mainwnd.resolveInput=r=>{var s=r.line;if(this.vm.read_data.buffer){for(var o=0;o<s.length;o++)this.vm.read_data.buffer[o]=s.charCodeAt(o)&255;this.vm.handle_line_input(s.length)}else this.vm.handle_char_input(s.charCodeAt(0));this.vm.run()},this.reset()}reset(){this.windowcount=0,this.exited=!1,this.windows[1].clear(),this.windows[2].clear(),this.curwnd=this.windows[1]}init(e){this.vm=e.vm,this.vm.start()}fatal_error(e){throw new m(e)}update(){}focusinput(){this.mainwnd.focusinput()}flushline(){this.curwnd.flushline()}glk_exit(){this.exited=!0,this.flushline(),this.windows[1].addtext("** Game exited **",1)}glk_window_clear(e){i("glk_window_clear",arguments),this.windows[e].clear()}glk_request_line_event_uni(e,t,n){this.mainwnd.waitingfor="line",this.focusinput(),this.startinputtimer()}glk_request_char_event_uni(e,t,n){this.mainwnd.waitingfor="char",this.focusinput(),this.startinputtimer()}startinputtimer(){}glk_put_jstring(e,t){this.curwnd.print(e)}glk_put_jstring_stream(e,t){this.windows[e].print(t)}glk_put_char_stream_uni(e,t){this.windows[e].print(String.fromCharCode(t))}glk_set_style(e){this.curwnd.curstyle=e}glk_char_to_lower(e){return e>=65&&e<=90||e>=192&&e<=222&&e!=215?e+32:e}glk_char_to_upper(e){return e>=97&&e<=122||e>=224&&e<=254&&e!=247?e-32:e}glk_stylehint_set(e,t,n,r){}glk_stylehint_clear(e,t,n){}glk_style_distinguish(e,t,n){return 0}glk_style_measure(e,t,n,r){return r&&r.set_value(0),0}glk_select(e){i("glk_select",arguments)}glk_window_open(e,t,n,r,s){return i("glk_window_open",arguments),e?t!=18||r!=4?0:n?($(this.windows[2].page).show(),2):3:1}glk_window_close(e){i("glk_window_close",arguments),e==2&&(this.windows[e].clear(),$(this.windows[e].page).hide())}glk_window_get_parent(e){return i("glk_window_get_parent",arguments),e==1?0:1}glk_window_move_cursor(e,t,n){i("glk_window_move_cursor",arguments),this.windows[e].move_cursor(t,n)}glk_window_set_arrangement(e,t,n,r){i("glk_window_set_arrangement",arguments),e==1&&this.windows[2].setrows(n)}glk_window_get_stream(e){return i("glk_window_get_stream",arguments),e}glk_set_window(e){i("glk_set_window",arguments),this.curwnd=this.windows[e],this.curwnd==null&&this.fatal_error("no window "+e)}glk_window_get_size(e,t,n){i("glk_window_get_size",arguments),t&&t.set_value(x),n&&n.set_value(e==1?25:1)}garglk_set_reversevideo(e){i("garglk_set_reversevideo",arguments),this.curwnd.reverse=!!e}garglk_set_reversevideo_stream(e,t){i("garglk_set_reversevideo_stream",arguments),this.windows[e].reverse=!!t}glk_fileref_create_by_prompt(e,t,n){i("glk_fileref_create_by_prompt",arguments),this.vm.handle_create_fileref(0),this.vm.run()}glk_gestalt(e,t){return this.glk_gestalt_ext(e,t,null)}glk_gestalt_ext(e,t,n){switch(e){case 0:return 257;case 1:return t<=a.keycode_Left&&t>=a.keycode_End?1:t>=4294967296-a.keycode_MAXVAL||t>1114111||t>=0&&t<32||t>=127&&t<160?0:1;case 2:return t>1114111||t>=0&&t<32||t>=127&&t<160?0:1;case 3:return t>1114111||t>=0&&t<32||t>=127&&t<160?(n&&(n[0]=1),0):(n&&(n[0]=1),2);case 4:return t==a.wintype_TextBuffer||t==a.wintype_Graphics&&k,0;case 5:return 0;case 6:return 0;case 7:return t==a.wintype_TextBuffer||t==a.wintype_Graphics&&k,0;case 8:return 0;case 9:return 0;case 10:return 0;case 11:return 0;case 12:return t==3||t==4,0;case 13:return 0;case 14:return 0;case 15:return 1;case 16:return 1;case 17:return 1;case 18:return 1;case 19:return t==a.keycode_Escape||t>=a.keycode_Func12&&t<=a.keycode_Func1,0;case 20:return 0;case 21:return 0;case 22:return 0;case 23:return 0;case 4352:returnLine truncated
//# sourceMappingURL=zmachine-XLBF33XO.js.map
import{A as w}from"./chunk-4YTESWOC.js";import{a as f,b as y}from"./chunk-3FIVEUG2.js";import{m as p}from"./chunk-UXRCACYH.js";import{G as c,P as g,Y as m}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var b=[{id:"hello.inf",name:"Hello World",category:"Inform 6"},{id:"house01.inf",name:"House Tutorial #1"},{id:"house02.inf",name:"House Tutorial #2"},{id:"house03.inf",name:"House Tutorial #3"},{id:"house04.inf",name:"House Tutorial #4"},{id:"house05.inf",name:"House Tutorial #5"},{id:"house06.inf",name:"House Tutorial #6"},{id:"house07.inf",name:"House Tutorial #7"},{id:"alice.inf",name:"Through the Looking-Glass"},{id:"aloneice.inf",name:"Alone on the Ice"},{id:"adventureland.inf",name:"Adventureland"},{id:"toyshop.inf",name:"Toyshop"},{id:"ruins1.inf",name:"Ruins #1"},{id:"ruins2.inf",name:"Ruins #2"},{id:"ruins3.inf",name:"Ruins #3"},{id:"balances.inf",name:"Balances"},{id:"museum.inf",name:"Museum of Inform"},{id:"advent.inf",name:"Colossal Cave Adventure"},{id:"ztrek.inf",name:"Super Z Trek"},{id:"hello.dg",name:"Hello Dialog",category:"Dialog"},{id:"cottage.dg",name:"Cloak of Darkness"}];function i(...u){}var l=class{constructor(e,t,n){this.exited=!1;this.DidNotReturn={dummy:"Glk call has not yet returned"};this.RefBox=_;this.RefStruct=d;this.mainwnd=new y(e,!1,t),this.mainwnd.keepinput=!1,this.mainwnd.splitInput=!1,this.mainwnd.uppercaseOnly=!0,this.mainwnd.hideinput(),this.windows={1:this.mainwnd,2:new f(n,!0),3:new f(null,!0)},this.input=t,this.mainwnd.resolveInput=r=>{var s=r.line;if(this.vm.read_data.buffer){for(var o=0;o<s.length;o++)this.vm.read_data.buffer[o]=s.charCodeAt(o)&255;this.vm.handle_line_input(s.length)}else this.vm.handle_char_input(s.charCodeAt(0));this.vm.run()},this.reset()}reset(){this.windowcount=0,this.exited=!1,this.windows[1].clear(),this.windows[2].clear(),this.curwnd=this.windows[1]}init(e){this.vm=e.vm,this.vm.start()}fatal_error(e){throw new m(e)}update(){}focusinput(){this.mainwnd.focusinput()}flushline(){this.curwnd.flushline()}glk_exit(){this.exited=!0,this.flushline(),this.windows[1].addtext("** Game exited **",1)}glk_window_clear(e){i("glk_window_clear",arguments),this.windows[e].clear()}glk_request_line_event_uni(e,t,n){this.mainwnd.waitingfor="line",this.focusinput(),this.startinputtimer()}glk_request_char_event_uni(e,t,n){this.mainwnd.waitingfor="char",this.focusinput(),this.startinputtimer()}startinputtimer(){}glk_put_jstring(e,t){this.curwnd.print(e)}glk_put_jstring_stream(e,t){this.windows[e].print(t)}glk_put_char_stream_uni(e,t){this.windows[e].print(String.fromCharCode(t))}glk_set_style(e){this.curwnd.curstyle=e}glk_char_to_lower(e){return e>=65&&e<=90||e>=192&&e<=222&&e!=215?e+32:e}glk_char_to_upper(e){return e>=97&&e<=122||e>=224&&e<=254&&e!=247?e-32:e}glk_stylehint_set(e,t,n,r){}glk_stylehint_clear(e,t,n){}glk_style_distinguish(e,t,n){return 0}glk_style_measure(e,t,n,r){return r&&r.set_value(0),0}glk_select(e){i("glk_select",arguments)}glk_window_open(e,t,n,r,s){return i("glk_window_open",arguments),e?t!=18||r!=4?0:n?($(this.windows[2].page).show(),2):3:1}glk_window_close(e){i("glk_window_close",arguments),e==2&&(this.windows[e].clear(),$(this.windows[e].page).hide())}glk_window_get_parent(e){return i("glk_window_get_parent",arguments),e==1?0:1}glk_window_move_cursor(e,t,n){i("glk_window_move_cursor",arguments),this.windows[e].move_cursor(t,n)}glk_window_set_arrangement(e,t,n,r){i("glk_window_set_arrangement",arguments),e==1&&this.windows[2].setrows(n)}glk_window_get_stream(e){return i("glk_window_get_stream",arguments),e}glk_set_window(e){i("glk_set_window",arguments),this.curwnd=this.windows[e],this.curwnd==null&&this.fatal_error("no window "+e)}glk_window_get_size(e,t,n){i("glk_window_get_size",arguments),t&&t.set_value(x),n&&n.set_value(e==1?25:1)}garglk_set_reversevideo(e){i("garglk_set_reversevideo",arguments),this.curwnd.reverse=!!e}garglk_set_reversevideo_stream(e,t){i("garglk_set_reversevideo_stream",arguments),this.windows[e].reverse=!!t}glk_fileref_create_by_prompt(e,t,n){i("glk_fileref_create_by_prompt",arguments),this.vm.handle_create_fileref(0),this.vm.run()}glk_gestalt(e,t){return this.glk_gestalt_ext(e,t,null)}glk_gestalt_ext(e,t,n){switch(e){case 0:return 257;case 1:return t<=a.keycode_Left&&t>=a.keycode_End?1:t>=4294967296-a.keycode_MAXVAL||t>1114111||t>=0&&t<32||t>=127&&t<160?0:1;case 2:return t>1114111||t>=0&&t<32||t>=127&&t<160?0:1;case 3:return t>1114111||t>=0&&t<32||t>=127&&t<160?(n&&(n[0]=1),0):(n&&(n[0]=1),2);case 4:return t==a.wintype_TextBuffer||t==a.wintype_Graphics&&k,0;case 5:return 0;case 6:return 0;case 7:return t==a.wintype_TextBuffer||t==a.wintype_Graphics&&k,0;case 8:return 0;case 9:return 0;case 10:return 0;case 11:return 0;case 12:return t==3||t==4,0;case 13:return 0;case 14:return 0;case 15:return 1;case 16:return 1;case 17:return 1;case 18:return 1;case 19:return t==a.keycode_Escape||t>=a.keycode_Func12&&t<=a.keycode_Func1,0;case 20:return 0;case 21:return 0;case 22:return 0;case 23:return 0;case 4352:returnLine truncated
//# sourceMappingURL=zmachine-ETVX7HXB.js.map
File renamed without changes.
+2 -2
View File
@@ -1,2 +1,2 @@
import{J as p,u as c}from"./chunk-FFJHITEL.js";import"./chunk-UXRCACYH.js";import{P as h}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var i=class extends c{constructor(){super(...arguments);this.numTotalScanlines=312;this.cpuCyclesPerLine=224;this.joymask0=0}reset(){super.reset(),this.exports.machine_exec(this.sys,2e6),this.romptr&&this.romlen&&this.exports.machine_load_rom(this.sys,this.romptr,this.romlen);for(var t=0;t<128;t++)this.setKeyInput(t,0,64)}advanceFrame(t){var a=this.probe!=null;a&&this.exports.machine_reset_probe_buffer();var r=super.advanceFrameClock(t,Math.floor(35e5/50));return a&&this.copyProbeData(),r}getCPUState(){this.exports.machine_save_cpu_state(this.sys,this.cpustateptr);var t=this.cpustatearr,a=t[9]+(t[8]<<8),r=t[10]+(t[11]<<8),s=t[12]+(t[13]<<8),e=t[14]+(t[15]<<8),f=t[24]+(t[25]<<8),l=t[26]+(t[27]<<8),d=t[28]+(t[29]<<8),n=t[34]+(t[35]<<8),u=t[36]+(t[37]<<8);return{PC:n,SP:f,AF:a,BC:e,DE:s,HL:r,IX:d,IY:l,IR:u,o:this.readConst(n)}}saveState(){return this.exports.machine_save_state(this.sys,this.stateptr),{c:this.getCPUState(),state:this.statearr.slice(0),joymask0:this.joymask0}}loadState(t){this.statearr.set(t.state),this.exports.machine_load_state(this.sys,this.stateptr),this.joymask0=t.joymask0|0,this.exports.zx_joystick(this.sys,this.joymask0,0)}getVideoParams(){return{width:320,height:256,overscan:!0,videoFrequency:50}}setKeyInput(t,a,r){if(!(t==16||t==17||t==18||t==224)){var s=0,e=0;t==37&&(t=8,s=4),t==38&&(t=11,s=1),t==39&&(t=9,s=8),t==40&&(t=10,s=2),t==32&&(s=16),t==65&&(t=65,e=4),t==87&&(t=87,e=1),t==68&&(t=68,e=8),t==83&&(t=83,e=2),t==69&&(e=16),t==113&&(t=241),t==115&&(t=243),t==119&&(t=245),t==121&&(t=247),r&1?(this.exports.machine_key_down(this.sys,t),this.joymask0|=s):r&64&&(this.exports.machine_key_up(this.sys,t),this.joymask0&=~s),this.exports.zx_joystick(this.sys,this.joymask0,0)}}};var v=[{id:"bios.c",name:"BIOS Routines",category:"C"},{id:"hello.c",name:"Hello World",category:"C"},{id:"siegegame.c",name:"Siege Game"},{id:"cosmic.c",name:"Cosmic Impalas"},{id:"hello.asm",name:"Hello World (ASM)",category:"Assembly"}],M={main:[{name:"BIOS",start:0,size:16384,type:"rom"},{name:"Screen RAM",start:16384,size:6144,type:"ram"},{name:"Color RAM",start:22528,size:768,type:"ram"},{name:"System RAM",start:23552,size:192,type:"ram"},{name:"User RAM",start:23755,size:41613,type:"ram"}]},o=class extends p{newMachine(){return new i("zx")}getPresets(){return v}readAddress(m){return this.machine.readConst(m)}getMemoryMap(){return M}showHelp(){return"https://8bitworkshop.com/docs/platforms/zx/"}};h.zx=o;
//# sourceMappingURL=zx-XGKGGZ4C.js.map
import{L as p,w as c}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{P as h}from"./chunk-VZWSP3EG.js";import"./chunk-N7W4C4V2.js";var i=class extends c{constructor(){super(...arguments);this.numTotalScanlines=312;this.cpuCyclesPerLine=224;this.joymask0=0}reset(){super.reset(),this.exports.machine_exec(this.sys,2e6),this.romptr&&this.romlen&&this.exports.machine_load_rom(this.sys,this.romptr,this.romlen);for(var t=0;t<128;t++)this.setKeyInput(t,0,64)}advanceFrame(t){var a=this.probe!=null;a&&this.exports.machine_reset_probe_buffer();var r=super.advanceFrameClock(t,Math.floor(35e5/50));return a&&this.copyProbeData(),r}getCPUState(){this.exports.machine_save_cpu_state(this.sys,this.cpustateptr);var t=this.cpustatearr,a=t[9]+(t[8]<<8),r=t[10]+(t[11]<<8),s=t[12]+(t[13]<<8),e=t[14]+(t[15]<<8),f=t[24]+(t[25]<<8),l=t[26]+(t[27]<<8),d=t[28]+(t[29]<<8),n=t[34]+(t[35]<<8),u=t[36]+(t[37]<<8);return{PC:n,SP:f,AF:a,BC:e,DE:s,HL:r,IX:d,IY:l,IR:u,o:this.readConst(n)}}saveState(){return this.exports.machine_save_state(this.sys,this.stateptr),{c:this.getCPUState(),state:this.statearr.slice(0),joymask0:this.joymask0}}loadState(t){this.statearr.set(t.state),this.exports.machine_load_state(this.sys,this.stateptr),this.joymask0=t.joymask0|0,this.exports.zx_joystick(this.sys,this.joymask0,0)}getVideoParams(){return{width:320,height:256,overscan:!0,videoFrequency:50}}setKeyInput(t,a,r){if(!(t==16||t==17||t==18||t==224)){var s=0,e=0;t==37&&(t=8,s=4),t==38&&(t=11,s=1),t==39&&(t=9,s=8),t==40&&(t=10,s=2),t==32&&(s=16),t==65&&(t=65,e=4),t==87&&(t=87,e=1),t==68&&(t=68,e=8),t==83&&(t=83,e=2),t==69&&(e=16),t==113&&(t=241),t==115&&(t=243),t==119&&(t=245),t==121&&(t=247),r&1?(this.exports.machine_key_down(this.sys,t),this.joymask0|=s):r&64&&(this.exports.machine_key_up(this.sys,t),this.joymask0&=~s),this.exports.zx_joystick(this.sys,this.joymask0,0)}}};var v=[{id:"bios.c",name:"BIOS Routines",category:"C"},{id:"hello.c",name:"Hello World",category:"C"},{id:"siegegame.c",name:"Siege Game"},{id:"cosmic.c",name:"Cosmic Impalas"},{id:"hello.asm",name:"Hello World (ASM)",category:"Assembly"}],M={main:[{name:"BIOS",start:0,size:16384,type:"rom"},{name:"Screen RAM",start:16384,size:6144,type:"ram"},{name:"Color RAM",start:22528,size:768,type:"ram"},{name:"System RAM",start:23552,size:192,type:"ram"},{name:"User RAM",start:23755,size:41613,type:"ram"}]},o=class extends p{newMachine(){return new i("zx")}getPresets(){return v}readAddress(m){return this.machine.readConst(m)}getMemoryMap(){return M}showHelp(){return"https://8bitworkshop.com/docs/platforms/zx/"}};h.zx=o;
//# sourceMappingURL=zx-VTTLD5PT.js.map
File renamed without changes.
+1
View File
@@ -298,6 +298,7 @@ body {
<div id="javatari-console-panel" style="margin: 0 auto; box-shadow: 2px 2px 10px rgb(60, 60, 60);"></div>
</div>
<!-- control instructions: src/common/controls.ts -->
<div id="emuaudiohint" class="text-center small audio-hint" style="display:none">Click screen to use controls and unmute audio</div>
<div id="emucontrols" class="text-center small control-insns" style="display:none"></div>
<!-- -->
<div id="emuoverlay" class="emuoverlay" style="display:none">
+77 -6
View File
@@ -398,17 +398,88 @@ export const AUDIO_CHUNK_SAMPLES = 2048;
// must be called synchronously inside the handler for Safari/iOS to allow it.
// Called on every start(), since stop() suspends the context.
const audioUnlockEvents = ['pointerdown', 'touchend', 'mousedown', 'keydown', 'click'];
const pendingUnlocks = new WeakSet<AudioContext>();
const pendingUnlocks = new WeakSet<AudioContext>(); // waiting for the first user gesture
const unlockListeners = new WeakSet<AudioContext>(); // document gesture handlers installed
// Every AudioContext the IDE starts is registered here so the UI can tell
// whether Web Audio is still waiting for the user gesture that owns the page.
// Browsers keep one suspended until then, and resume() resolves asynchronously,
// so notify listeners on registration, state changes and resume completion.
const audioContexts = new Set<AudioContext>();
const audioStateListeners = new Set<() => void>();
function notifyAudioState() {
for (const listener of Array.from(audioStateListeners)) listener();
}
function markAudioUnlocked(ctx: AudioContext) {
pendingUnlocks.delete(ctx);
notifyAudioState();
}
function trackAudioContext(ctx: AudioContext) {
if (audioContexts.has(ctx)) return;
audioContexts.add(ctx);
if (typeof ctx.addEventListener === 'function') {
ctx.addEventListener('statechange', () => {
if (ctx.state === 'running') {
pendingUnlocks.delete(ctx);
} else if (ctx.state === 'closed') {
// a closed context can never be resumed, so stop counting it as blocked
audioContexts.delete(ctx);
pendingUnlocks.delete(ctx);
}
notifyAudioState();
});
}
notifyAudioState();
}
/**
* True while an AudioContext is waiting for the user gesture that unlocks
* Web Audio. A context the IDE suspends itself (pause, tab blur) is not blocked;
* it comes back without a gesture.
*/
export function isAudioBlocked(): boolean {
for (const ctx of audioContexts) {
if (ctx.state !== 'running' && pendingUnlocks.has(ctx)) return true;
}
return false;
}
/** Subscribe to AudioContext creation and state changes. Returns an unsubscribe fn. */
export function onAudioStateChange(listener: () => void): () => void {
audioStateListeners.add(listener);
return () => { audioStateListeners.delete(listener); };
}
function resumeTrackedContext(ctx: AudioContext) {
const resumed = ctx.resume();
if (resumed && typeof resumed.then === 'function') {
resumed.then(() => {
if (ctx.state === 'running') markAudioUnlocked(ctx);
else notifyAudioState();
}, () => {});
}
}
export function resumeAudioContext(ctx: AudioContext) {
if (!ctx || ctx.state === 'running') return;
ctx.resume().catch(() => {});
if (typeof document === 'undefined' || pendingUnlocks.has(ctx)) return;
if (!ctx || ctx.state === 'closed') return;
trackAudioContext(ctx);
if (ctx.state === 'running') {
pendingUnlocks.delete(ctx);
return;
}
pendingUnlocks.add(ctx);
notifyAudioState(); // show the click hint even if resume() stays suspended
resumeTrackedContext(ctx);
if (typeof document === 'undefined' || unlockListeners.has(ctx)) return;
unlockListeners.add(ctx);
const onGesture = () => {
ctx.resume().catch(() => {});
resumeTrackedContext(ctx);
if (ctx.state === 'running') {
for (const ev of audioUnlockEvents) document.removeEventListener(ev, onGesture, true);
pendingUnlocks.delete(ctx);
unlockListeners.delete(ctx);
}
};
for (const ev of audioUnlockEvents) document.addEventListener(ev, onGesture, true);
+21
View File
@@ -6,6 +6,7 @@ import { BaseDebugPlatform, DebugEvalCondition, DebugSymbols, EmuState, isDebugg
import { EmuHalt, PLATFORMS, setHaltHandler } from "../common/emu";
import { BOOKS, bookFor } from "../common/books";
import { PLATFORM_CONTROLS } from "../common/controls";
import { isAudioBlocked, onAudioStateChange } from "../common/audio";
import { installHDLHost } from "./hdlhost";
import { StateRecorderImpl } from "../common/recorder";
import {
@@ -2323,7 +2324,27 @@ function renderControls(div: JQuery) {
return div.children().length > 0;
}
function showAudioHint() {
const hint = $("#emuaudiohint");
if (!hint.length) return;
let wasBlocked = false;
const update = () => {
if (isAudioBlocked()) {
wasBlocked = true;
hint.show();
} else {
hint.hide();
if (wasBlocked) unsubscribe();
}
};
// AudioContext.resume() is async, so wait for the context to actually start
// instead of hiding on the click that asked it to.
const unsubscribe = onAudioStateChange(update);
update();
}
function showInstructions() {
showAudioHint();
var div = $("#emucontrols");
if (!renderControls(div)) return;
if (platform_id.endsWith(".mame")) div.show(); // TODO: MAME seems to eat the focus() event