mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2026-10-25 00:02:16 +00:00
Deploying to gh-pages from @ sehugg/8bitworkshop@516d84b335 🚀
This commit is contained in:
1 parent
7ab7d0bc20
commit
c46d912da6
72 files changed
+475
-272
No files matched your search
+39
@@ -1361,3 +1361,42 @@ div.scripting-cell button.scripting-enabled {
|
||||
margin-top: 0.8em;
|
||||
line-height: 1.4;
|
||||
}
|
||||
/* CodeMirror gutter markers */
|
||||
.gutter-offset-marker {
|
||||
cursor: pointer;
|
||||
}
|
||||
.gutter-offset-marker:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.gutter-breakpoint,
|
||||
.gutter-breakpoint-placeholder {
|
||||
cursor: pointer;
|
||||
}
|
||||
.gutter-breakpoint-enabled {
|
||||
color: rgba(255, 0, 0, 1.0);
|
||||
}
|
||||
.gutter-breakpoint-disabled {
|
||||
color: rgba(255, 255, 255, 0.35);
|
||||
}
|
||||
.gutter-breakpoint-placeholder {
|
||||
color: transparent;
|
||||
}
|
||||
.gutter-breakpoint-placeholder:hover {
|
||||
color: rgba(255, 0, 0, 0.5);
|
||||
}
|
||||
.gutter-error {
|
||||
color: #ff6666;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
}
|
||||
.gutter-currentpc {
|
||||
color: #ff66ee;
|
||||
cursor: pointer;
|
||||
}
|
||||
.gutter-currentpc-placeholder {
|
||||
color: transparent;
|
||||
cursor: pointer;
|
||||
}
|
||||
.gutter-currentpc-placeholder:hover {
|
||||
color: #ffee66;
|
||||
}
|
||||
@@ -3,5 +3,5 @@ import{a as j}from"./chunk-LZK7RTFU.js";import{J as $,h as H,k as z,m as Y,q as
|
||||
DL: $`+S(r.dlstart,4),t+=`
|
||||
Offset: `+r.offset,t+=`
|
||||
DLI? `+r.dli,t}},T=class extends K{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 Y,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 H,this.audioadapter=new z(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 d=x<G;for(this.maria.setVBLANK(!d),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(d){let p=this.maria.doDMA(this.dmaBus);if(this.tickClocks(p>>2),s+=p,e){let m=(this.maria.regs[28]&128)!=0?15:255;for(var l=0;l<320;l++)e[n++]=J[this.maria.pixels[l]&m]}}for((d||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=N(t,this.defaultROMSize,!0)}reset(){super.reset(),this.tia.reset(),this.maria.reset(),this.inputs.fill(0),this.inputs[b]=255,this.inputs[U]=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 d=(this.readConst(e)&128)!=0,l="DL $"+S(x,4)+" "+n+"-"+(n+s);u&&(l+=" H16"),c&&(l+=" H8"),d&&(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],d=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,m="",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}m+="X="+c+" W="+u+" P="+s,k&&(m+=" WM=1"),y&&(m+=" CHR=$"+S(this.maria.regs[20]+this.maria.offset&255)+"xx");let w=d+((p+(y?0:this.maria.offset)&255)<<8);m=" $"+S(w,4)+" "+m,m=["160A","?","320D","320A","160B","?","320B","320C"][A]+" "+m,e.push(m)}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:"Assembler"},{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"}],F=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"}]}}}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}getToolForFilename(t){return t.endsWith(".cc7800")||t.endsWith(".c78")?"cc7800":V(t)}};O.atari7800=F;
|
||||
//# sourceMappingURL=atari7800-K3O5HT4E.js.map
|
||||
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 d=(this.readConst(e)&128)!=0,l="DL $"+S(x,4)+" "+n+"-"+(n+s);u&&(l+=" H16"),c&&(l+=" H8"),d&&(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],d=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,m="",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}m+="X="+c+" W="+u+" P="+s,k&&(m+=" WM=1"),y&&(m+=" CHR=$"+S(this.maria.regs[20]+this.maria.offset&255)+"xx");let w=d+((p+(y?0:this.maria.offset)&255)<<8);m=" $"+S(w,4)+" "+m,m=["160A","?","320D","320A","160B","?","320B","320C"][A]+" "+m,e.push(m)}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"}],F=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"}]}}}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}getToolForFilename(t){return t.endsWith(".cc7800")||t.endsWith(".c78")?"cc7800":V(t)}};O.atari7800=F;
|
||||
//# sourceMappingURL=atari7800-XKMHPAB2.js.map
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../src/machine/atari7800.ts", "../src/platform/atari7800.ts"],
|
||||
"sourcesContent": ["\nimport { MOS6502, MOS6502State } from \"../common/cpu/MOS6502\";\nimport { BasicMachine, RasterFrameBased, Bus, ProbeAll } from \"../common/devices\";\nimport { KeyFlags, newAddressDecoder, padBytes, Keys, makeKeycodeMap, newKeyboardHandler, EmuHalt, dumpRAM } from \"../common/emu\";\nimport { gtia_ntsc_to_rgb } from \"./chips/gtia\";\nimport { TssChannelAdapter, MasterAudio, POKEYDeviceChannel } from \"../common/audio\";\nimport { hex, rgb2bgr } from \"../common/util\";\n\n// https://atarihq.com/danb/a7800.shtml\n// https://atarihq.com/danb/files/maria_r1.txt\n// https://atarihq.com/danb/files/7800vid.txt\n// https://sites.google.com/site/atari7800wiki/\n\ninterface Atari7800StateBase {\n ram : Uint8Array<ArrayBuffer>;\n regs6532 : Uint8Array;\n}\n\ninterface Atari7800ControlsState {\n inputs : Uint8Array<ArrayBuffer>;\n}\n\ninterface Atari7800State extends Atari7800StateBase, Atari7800ControlsState {\n c : MOS6502State;\n tia : {\n regs : Uint8Array,\n };\n maria : {\n regs : Uint8Array,\n offset,dll,dlstart : number;\n dli,h16,h8 : boolean;\n };\n pia : {\n timer: number;\n interval: number;\n }\n}\n\nconst SWCHA = 0;\nconst SWCHB = 2;\nconst INPT0 = 8;\n\nconst Atari7800_KEYCODE_MAP = makeKeycodeMap([\n [Keys.A, INPT0+0, 0x80],\n [Keys.B, INPT0+1, 0x80],\n [Keys.GP_A, INPT0+0, 0x80],\n [Keys.GP_B, INPT0+1, 0x80],\n [Keys.SELECT, SWCHB, -0x02],\n [Keys.START, SWCHB, -0x01],\n [Keys.UP, SWCHA, -0x10],\n [Keys.DOWN, SWCHA, -0x20],\n [Keys.LEFT, SWCHA, -0x40],\n [Keys.RIGHT, SWCHA, -0x80],\n \n [Keys.P2_A, INPT0+2, 0x80],\n [Keys.P2_B, INPT0+3, 0x80],\n //[Keys.P2_SELECT, 1, 2],\n //[Keys.P2_START, 1, 3],\n [Keys.P2_UP, SWCHA, -0x01],\n [Keys.P2_DOWN, SWCHA, -0x02],\n [Keys.P2_LEFT, SWCHA, -0x04],\n [Keys.P2_RIGHT, SWCHA, -0x08],\n]);\n\n// http://www.ataripreservation.org/websites/freddy.offenga/megazine/ISSUE5-PALNTSC.html\n// http://7800.8bitdev.org/index.php/7800_Software_Guide#APPENDIX_4:_FRAME_TIMING\n// https://forums.atariage.com/topic/224025-7800-hardware-facts/\nconst CLK = 3579545;\nconst linesPerFrame = 263;\nconst numVisibleLines = 258-16;\nconst colorClocksPerLine = 451; // 451? 452? 456?\nconst colorClocksPreDMA = 28;\nconst colorClocksShutdownOther = 16;\nconst colorClocksShutdownLast = 24;\nconst audioOversample = 2;\nconst audioSampleRate = linesPerFrame*60*audioOversample;\n\n// TIA chip\n\nclass TIA {\n regs = new Uint8Array(0x20);\n \n reset() {\n this.regs.fill(0);\n }\n read(a : number) : number {\n return this.regs[a] | 0;\n }\n write(a : number, v : number) {\n this.regs[a] = v;\n }\n saveState() {\n return {\n regs: this.regs.slice(0)\n };\n }\n loadState(s) {\n for (let i=0; i<32; i++)\n this.write(i, s.regs[i]);\n }\n static stateToLongString(state) : string {\n let s = \"\";\n s += dumpRAM(state.regs, 0, 32);\n return s;\n }\n}\n\n// MARIA chip\n\nclass MARIA {\n bus : Bus;\n cycles : number = 0;\n regs = new Uint8Array(0x20);\n offset : number = -1;\n dll : number = 0;\n dlstart : number = 0;\n dli : boolean = false;\n h16 : boolean = false;\n h8 : boolean = false;\n writemode : number = 0;\n indirect : boolean = false;\n pixels = new Uint8Array(320);\n WSYNC : number = 0;\n\n reset() {\n this.regs.fill(0);\n // TODO?\n }\n read(a : number) : number {\n return this.regs[a] | 0;\n }\n write(a : number, v : number) {\n this.regs[a] = v;\n if (a == 0x04) this.WSYNC++;\n //console.log(hex(a), '=', hex(v));\n }\n saveState() {\n return {\n regs: this.regs.slice(0),\n offset: this.offset,\n dll: this.dll,\n dlstart: this.dlstart,\n dli: this.dli,\n h16: this.h16,\n h8: this.h8,\n indirect: this.indirect,\n writemode: this.writemode,\n };\n }\n loadState(s) {\n for (let i=0; i<32; i++)\n this.write(i, s.regs[i]|0);\n this.offset = s.offset|0;\n this.dll = s.dll|0;\n this.dlstart = s.dlstart|0;\n this.dli = !!s.dli;\n this.h16 = !!s.h16;\n this.h8 = !!s.h8;\n this.indirect = !!s.indirect;\n this.writemode = s.writemode|0;\n }\n isDMAEnabled() {\n return (this.regs[0x1c] & 0x60) == 0x40;\n }\n getDLLStart() {\n return (this.regs[0x0c] << 8) + this.regs[0x10];\n }\n getCharBaseAddress() {\n return (this.regs[0x14] << 8) + this.offset;\n }\n setVBLANK(b : boolean) {\n if (b) {\n this.regs[0x08] |= 0x80;\n this.offset = -1;\n this.dll = this.getDLLStart();\n this.dli = this.bus && (this.bus.read(this.dll) & 0x80) != 0; // if DLI on first zone\n } else {\n this.regs[0x08] &= ~0x80;\n }\n }\n readDLLEntry(bus) {\n // display lists must be in RAM (TODO: probe?)\n if (this.dll >= 0x4000) { return; }\n let x = bus.read(this.dll);\n this.offset = (x & 0xf);\n this.h16 = (x & 0x40) != 0;\n this.h8 = (x & 0x20) != 0;\n thLine truncated
|
||||
"mappings": "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 truncated
|
||||
"sourcesContent": ["\nimport { MOS6502, MOS6502State } from \"../common/cpu/MOS6502\";\nimport { BasicMachine, RasterFrameBased, Bus, ProbeAll } from \"../common/devices\";\nimport { KeyFlags, newAddressDecoder, padBytes, Keys, makeKeycodeMap, newKeyboardHandler, EmuHalt, dumpRAM } from \"../common/emu\";\nimport { gtia_ntsc_to_rgb } from \"./chips/gtia\";\nimport { TssChannelAdapter, MasterAudio, POKEYDeviceChannel } from \"../common/audio\";\nimport { hex, rgb2bgr } from \"../common/util\";\n\n// https://atarihq.com/danb/a7800.shtml\n// https://atarihq.com/danb/files/maria_r1.txt\n// https://atarihq.com/danb/files/7800vid.txt\n// https://sites.google.com/site/atari7800wiki/\n\ninterface Atari7800StateBase {\n ram : Uint8Array<ArrayBuffer>;\n regs6532 : Uint8Array;\n}\n\ninterface Atari7800ControlsState {\n inputs : Uint8Array<ArrayBuffer>;\n}\n\ninterface Atari7800State extends Atari7800StateBase, Atari7800ControlsState {\n c : MOS6502State;\n tia : {\n regs : Uint8Array,\n };\n maria : {\n regs : Uint8Array,\n offset,dll,dlstart : number;\n dli,h16,h8 : boolean;\n };\n pia : {\n timer: number;\n interval: number;\n }\n}\n\nconst SWCHA = 0;\nconst SWCHB = 2;\nconst INPT0 = 8;\n\nconst Atari7800_KEYCODE_MAP = makeKeycodeMap([\n [Keys.A, INPT0+0, 0x80],\n [Keys.B, INPT0+1, 0x80],\n [Keys.GP_A, INPT0+0, 0x80],\n [Keys.GP_B, INPT0+1, 0x80],\n [Keys.SELECT, SWCHB, -0x02],\n [Keys.START, SWCHB, -0x01],\n [Keys.UP, SWCHA, -0x10],\n [Keys.DOWN, SWCHA, -0x20],\n [Keys.LEFT, SWCHA, -0x40],\n [Keys.RIGHT, SWCHA, -0x80],\n \n [Keys.P2_A, INPT0+2, 0x80],\n [Keys.P2_B, INPT0+3, 0x80],\n //[Keys.P2_SELECT, 1, 2],\n //[Keys.P2_START, 1, 3],\n [Keys.P2_UP, SWCHA, -0x01],\n [Keys.P2_DOWN, SWCHA, -0x02],\n [Keys.P2_LEFT, SWCHA, -0x04],\n [Keys.P2_RIGHT, SWCHA, -0x08],\n]);\n\n// http://www.ataripreservation.org/websites/freddy.offenga/megazine/ISSUE5-PALNTSC.html\n// http://7800.8bitdev.org/index.php/7800_Software_Guide#APPENDIX_4:_FRAME_TIMING\n// https://forums.atariage.com/topic/224025-7800-hardware-facts/\nconst CLK = 3579545;\nconst linesPerFrame = 263;\nconst numVisibleLines = 258-16;\nconst colorClocksPerLine = 451; // 451? 452? 456?\nconst colorClocksPreDMA = 28;\nconst colorClocksShutdownOther = 16;\nconst colorClocksShutdownLast = 24;\nconst audioOversample = 2;\nconst audioSampleRate = linesPerFrame*60*audioOversample;\n\n// TIA chip\n\nclass TIA {\n regs = new Uint8Array(0x20);\n \n reset() {\n this.regs.fill(0);\n }\n read(a : number) : number {\n return this.regs[a] | 0;\n }\n write(a : number, v : number) {\n this.regs[a] = v;\n }\n saveState() {\n return {\n regs: this.regs.slice(0)\n };\n }\n loadState(s) {\n for (let i=0; i<32; i++)\n this.write(i, s.regs[i]);\n }\n static stateToLongString(state) : string {\n let s = \"\";\n s += dumpRAM(state.regs, 0, 32);\n return s;\n }\n}\n\n// MARIA chip\n\nclass MARIA {\n bus : Bus;\n cycles : number = 0;\n regs = new Uint8Array(0x20);\n offset : number = -1;\n dll : number = 0;\n dlstart : number = 0;\n dli : boolean = false;\n h16 : boolean = false;\n h8 : boolean = false;\n writemode : number = 0;\n indirect : boolean = false;\n pixels = new Uint8Array(320);\n WSYNC : number = 0;\n\n reset() {\n this.regs.fill(0);\n // TODO?\n }\n read(a : number) : number {\n return this.regs[a] | 0;\n }\n write(a : number, v : number) {\n this.regs[a] = v;\n if (a == 0x04) this.WSYNC++;\n //console.log(hex(a), '=', hex(v));\n }\n saveState() {\n return {\n regs: this.regs.slice(0),\n offset: this.offset,\n dll: this.dll,\n dlstart: this.dlstart,\n dli: this.dli,\n h16: this.h16,\n h8: this.h8,\n indirect: this.indirect,\n writemode: this.writemode,\n };\n }\n loadState(s) {\n for (let i=0; i<32; i++)\n this.write(i, s.regs[i]|0);\n this.offset = s.offset|0;\n this.dll = s.dll|0;\n this.dlstart = s.dlstart|0;\n this.dli = !!s.dli;\n this.h16 = !!s.h16;\n this.h8 = !!s.h8;\n this.indirect = !!s.indirect;\n this.writemode = s.writemode|0;\n }\n isDMAEnabled() {\n return (this.regs[0x1c] & 0x60) == 0x40;\n }\n getDLLStart() {\n return (this.regs[0x0c] << 8) + this.regs[0x10];\n }\n getCharBaseAddress() {\n return (this.regs[0x14] << 8) + this.offset;\n }\n setVBLANK(b : boolean) {\n if (b) {\n this.regs[0x08] |= 0x80;\n this.offset = -1;\n this.dll = this.getDLLStart();\n this.dli = this.bus && (this.bus.read(this.dll) & 0x80) != 0; // if DLI on first zone\n } else {\n this.regs[0x08] &= ~0x80;\n }\n }\n readDLLEntry(bus) {\n // display lists must be in RAM (TODO: probe?)\n if (this.dll >= 0x4000) { return; }\n let x = bus.read(this.dll);\n this.offset = (x & 0xf);\n this.h16 = (x & 0x40) != 0;\n this.h8 = (x & 0x20) != 0;\n thLine truncated
|
||||
"mappings": "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 truncated
|
||||
"names": ["SWCHA", "SWCHB", "INPT0", "Atari7800_KEYCODE_MAP", "makeKeycodeMap", "Keys", "linesPerFrame", "numVisibleLines", "colorClocksPerLine", "colorClocksPreDMA", "colorClocksShutdownOther", "colorClocksShutdownLast", "audioOversample", "audioSampleRate", "TIA", "a", "v", "s", "i", "state", "dumpRAM", "MARIA", "b", "bus", "x", "pix", "dlhi", "dlofs", "b0", "b1", "b2", "b3", "indirect", "pal", "width", "xpos", "gfxadr", "ctrlreg", "grmode", "kangaroo", "dbl", "data", "indadr", "j", "col", "data0", "ppal", "hex", "Atari7800", "BasicMachine", "MOS6502", "newAddressDecoder", "newKeyboardHandler", "Atari7800_KEYCODE_MAP", "POKEYDeviceChannel", "TssChannelAdapter", "oldprobe", "shift", "clk", "clocks", "trap", "idata", "iofs", "rgb", "mc", "fc", "steps", "sl", "visible", "dmaClocks", "mask", "COLORS_RGBA", "padBytes", "SWCHA", "SWCHB", "addr", "category", "display_lists", "dll_ofs", "y", "offset", "h16", "h8", "dlstart", "dli", "title", "display_list", "description", "writemode", "gtia_ntsc_to_rgb", "Atari7800_PRESETS", "Atari7800Platform", "Base6502MachinePlatform", "Atari7800", "a", "tree", "filename", "getToolForFilename_6502", "PLATFORMS"]
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import{a as nt}from"./chunk-WIKZL6VD.js";import{b as ht,c as ot,d as F}from"./chunk-LZK7RTFU.js";import{A as rt,J as at,g as $,k as tt,m as et,r as st,x as it}from"./chunk-2XSLQJUY.js";import{K as D,V as O,W as i,X as Z,Z as J,a as U,aa as T,g as m,r as A}from"./chunk-TYDI7JZQ.js";import"./chunk-VSC4MAII.js";var Dt=[0,25,17,9],Ot=[0,89,97,105],b=0,Tt=1,Y=2,B=3,Mt=4,kt=5,vt=7,Ct=9,C=10,Lt=11,Pt=12,Kt=13,lt=14,Vt=15,L=15;var wt=13,Nt=106,Ut=105,H=[0,0,8,10,8,16,8,16,8,4,4,2,1,2,1,1],Ft=[0,0,2,2,2,2,4,4,8,4,4,4,4,2,2,2],Yt=[0,0,0,0,0,1,0,1,0,0,2,1,0,0,0,0],ct=[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[lt]=0,this.regs[L]=127,this.regs[Pt]=0,this.regs[Kt]=255,this.setReg(b,0),this.h=this.v=0,this.startaddr=this.scanaddr=0,this.dmaclock=0}saveState(){return A(0,{},this)}loadState(e){A(0,this,e),this.setReg(b,e.regs[b])}static stateToLongString(e){let t="";return t+="H: "+U(e.h,3)+" V: "+U(e.v,3)+`
|
||||
import{a as nt}from"./chunk-WIKZL6VD.js";import{b as ht,c as ot,d as Y}from"./chunk-LZK7RTFU.js";import{A as rt,J as at,g as $,k as tt,m as et,r as st,x as it}from"./chunk-2XSLQJUY.js";import{K as D,V as O,W as i,X as Z,Z as J,a as U,aa as T,g as m,r as A}from"./chunk-TYDI7JZQ.js";import"./chunk-VSC4MAII.js";var Dt=[0,25,17,9],Ot=[0,89,97,105],b=0,Tt=1,F=2,H=3,kt=4,vt=5,Mt=7,Ct=9,C=10,Lt=11,Pt=12,Kt=13,lt=14,Vt=15,L=15;var wt=13,Nt=106,Ut=105,Q=[0,0,8,10,8,16,8,16,8,4,4,2,1,2,1,1],Yt=[0,0,2,2,2,2,4,4,8,4,4,4,4,2,2,2],Ft=[0,0,0,0,0,1,0,1,0,0,2,1,0,0,0,0],ct=[0,0,1,1,2,2,2,2,8,4,4,2,2,2,2,1],k=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[lt]=0,this.regs[L]=127,this.regs[Pt]=0,this.regs[Kt]=255,this.setReg(b,0),this.h=this.v=0,this.startaddr=this.scanaddr=0,this.dmaclock=0}saveState(){return A(0,{},this)}loadState(e){A(0,this,e),this.setReg(b,e.regs[b])}static stateToLongString(e){let t="";return t+="H: "+U(e.h,3)+" V: "+U(e.v,3)+`
|
||||
`,t+="DLIOp: "+m(e.dliop,2)+" Lines: "+e.yofs+"/"+e.linesleft,t+=" DMA "+(e.dma_enabled?"ON ":"off"),e.dma_enabled&&(t+=" idx "+e.dmaidx+" clk "+m(e.dmaclock)),t+=`
|
||||
`,t+="Addr: "+m(e.scanaddr,4)+`
|
||||
`,t+=O(e.regs,0,16).replace("$00","Regs"),t}setReg(e,t){switch(e){case C:this.regs[C]=255;return;case Vt:this.regs[L]=31;return}this.regs[e]=t}readReg(e){switch(e){case L:return this.regs[e];case Lt: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=H[this.mode],this.period=Ft[this.mode],this.jmp?(this.regs[Y]=this.dlarg_lo,this.regs[B]=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[b]&3,t=this.dliop&16?(this.regs[Mt]&15)>>1:0;this.dliop&16&&e<3&&e++,this.left=Dt[e]+t,this.right=Ot[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[L]=e|31,this.regs[lt]&e&&this.nmi()}getDlistAddr(){return this.regs[Y]+(this.regs[B]<<8)}nextInsn(){let e=this.getDlistAddr(),t=this.read(e);return e=e+1&1023|e&-1024,this.regs[Y]=e&255,this.regs[B]=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[b]&32}isVisibleScanline(){return this.v>=8&&this.v<248}isPlayfieldDMAEnabled(){return this.dma_enabled&&!this.linesleft}isPlayerDMAEnabled(){return this.regs[b]&8}isMissileDMAEnabled(){return this.regs[b]&12}isWSYNC(){return this.regs[C]!=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<=Ut;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<wt||this.h>Nt)&&(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[C]=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[b]&16,s=this.regs[vt]<<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>>Yt[this.mode],r=s&7,n=this.regs[Ct];(e&14)==6?(t&=63,n&=254):(t&=127,n&=252);let h=(t<<3)+(n<<8);if((e&14)==2){let f=this.regs[Tt],l=e==3&&(t&96)==96;f&4?this.pfbyte=this.read(h+(r^7)):this.pfbyte=this.read(h+r),l&&s<2&&(this.pfbyte=0),!l&&s>7&&(this.pfbyte=0),this.ch&128&&(f&1&&(this.pfbyte=0),f&2&&(this.pfbyte^=255))}else this.pfbyte=this.read(h+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 o=0;var Bt=2;var ft=4;var dt=6;var g=8,Ht=9,Qt=10,zt=11,Xt=13,Q=14,E=15;var qt=8,Wt=9,Gt=10,jt=13,S=14,P=15;var xt=128,ut=64,Zt=32,mt=16,gt=8;var Jt=1,_t=28,$t=114;var pt=511,bt=131071,x=0,u=1,_=2,c=3,y=114,te=15;var ee=8;var z,K;functi
Line truncated
|
||||
`,t+=O(e.regs,0,16).replace("$00","Regs"),t}setReg(e,t){switch(e){case C:this.regs[C]=255;return;case Vt:this.regs[L]=31;return}this.regs[e]=t}readReg(e){switch(e){case L:return this.regs[e];case Lt: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=Q[this.mode],this.period=Yt[this.mode],this.jmp?(this.regs[F]=this.dlarg_lo,this.regs[H]=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[b]&3,t=this.dliop&16?(this.regs[kt]&15)>>1:0;this.dliop&16&&e<3&&e++,this.left=Dt[e]+t,this.right=Ot[e]+t;let s=this.regs[vt]&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[L]=e|31,this.regs[lt]&e&&this.nmi()}getDlistAddr(){return this.regs[F]+(this.regs[H]<<8)}nextInsn(){let e=this.getDlistAddr(),t=this.read(e);return e=e+1&1023|e&-1024,this.regs[F]=e&255,this.regs[H]=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[b]&32}isVisibleScanline(){return this.v>=8&&this.v<248}isPlayfieldDMAEnabled(){return this.dma_enabled&&!this.linesleft}isPlayerDMAEnabled(){return this.regs[b]&8}isMissileDMAEnabled(){return this.regs[b]&12}isWSYNC(){return this.regs[C]!=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<=Ut;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<wt||this.h>Nt)&&(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[C]=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[b]&16,s=this.regs[Mt]<<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>>Ft[this.mode],r=s&7,n=this.regs[Ct];(e&14)==6?(t&=63,n&=254):(t&=127,n&=252);let h=(t<<3)+(n<<8);if((e&14)==2){let f=this.regs[Tt],l=e==3&&(t&96)==96;f&4?this.pfbyte=this.read(h+(r^7)):this.pfbyte=this.read(h+r),l&&s<2&&(this.pfbyte=0),!l&&s>7&&(this.pfbyte=0),this.ch&128&&(f&1&&(this.pfbyte=0),f&2&&(this.pfbyte^=255))}else this.pfbyte=this.read(h+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 o=0;var Ht=2;var ft=4;var dt=6;var g=8,Qt=9,Bt=10,zt=11,Xt=13,B=14,E=15;var qt=8,Wt=9,Gt=10,jt=13,S=14,P=15;var xt=128,ut=64,Zt=32,mt=16,gt=8;var Jt=1,_t=28,$t=114;var pt=511,bt=131071,x=0,u=1,_=2,c=3,y=114,te=15;var ee=8;var z,K;functi
Line truncated
|
||||
`,t+=O(e.regs,0,16),t+=`Read Registers:
|
||||
`,t+=O(e.readregs,0,16),t}CASSETTE_IOLineStatus(){return 0}siocheck(){return((this.regs[o+_]==40||this.regs[o+_]==16||this.regs[o+_]==8||this.regs[o+_]==10)&&this.regs[o+c]==0||(this.regs[E]&120)==40)&&(this.regs[g]&40)==40}SIO_PutByte(e){console.log("SIO put byte",e)}SIO_GetByte(){return 0}};var ie=[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],re=J([[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]]),v=class extends st{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.keyboard_active=!0;this.d500=new Uint8Array(256);this.cpu=new et,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 F,this.irq_pokey=new k(this.pokey_irq.bind(this),()=>this.antic.h),this.audio_pokey=$(1),this.audioadapter=new tt(this.audio_pokey.pokey1,this.audioOversample,this.sampleRate),this.handler=Z(this.inputs,re,this.getKeyboardFunction(),!0)}newBus(){return{read:T([[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:T([[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)}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[ht+t]=~this.inputs[2]>>t&1;this.gtia.readregs[ot]=~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.antic.h*4-this.firstVisibleClock,s=()=>{this.gtia.clockPulse1(),this.linergb[t++]=this.gtia.rgb},r=()=>{this.gtia.clockPulse2(),this.linergb[t++]=this.gtia.rgb};this.gtia.clockPulse4(),this.antic.dliop&16&&this.antic.regs[4]&1?(t+=2,this.gtia.setBias(-1)):this.gtia.setBias(0);let n=ct[this.antic.mode],h=this.antic.h&1;return(n<8||h)&&(this.gtia.an=this.antic.shiftout()),s(),n==1&&(this.gtia.an=this.antic.shiftout()),r(),n<=2&&(this.gtia.an=this.antic.shiftout()),s(),n==1&&(this.gtia.an=this.antic.shiftout()),r(),1}loadState(t){this.loadControlsState(t),this.cpu.loadState(t.c),this.ram.set(t.ram),this.antic.loadState(t.antic),this.gtia.loadState(t.gtia),this.irq_pokey.loadState(t.pokey),this.lastdmabyte=t.lastdmabyte,this.cart_80=t.cart_80,this.cart_a0=t.cart_a0}saveState(){return{c:this.cpu.saveState(),ram:this.ram.slice(0),antic:this.antic.saveState(),gtia:this.gtia.saveState(),pokey:this.irq_pokey.saveState(),inputs:this.inputs.slice(0),lastdmabyte:this.lastdmabyte,keycode:this.keycode,cart_80:this.cart_80,cart
Line truncated
|
||||
//# sourceMappingURL=atari8-G2ROI5V7.js.map
|
||||
`,t+=O(e.readregs,0,16),t}CASSETTE_IOLineStatus(){return 0}siocheck(){return((this.regs[o+_]==40||this.regs[o+_]==16||this.regs[o+_]==8||this.regs[o+_]==10)&&this.regs[o+c]==0||(this.regs[E]&120)==40)&&(this.regs[g]&40)==40}SIO_PutByte(e){console.log("SIO put byte",e)}SIO_GetByte(){return 0}};var ie=[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],re=J([[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]]),M=class extends st{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.keyboard_active=!0;this.d500=new Uint8Array(256);this.cpu=new et,this.ram=new Uint8Array(65536),this.bios=new Uint8Array(10240),this.bus=this.newBus(),this.connectCPUMemoryBus(this.bus),this.antic=new k(this.readDMA.bind(this),this.antic_nmi.bind(this)),this.gtia=new Y,this.irq_pokey=new v(this.pokey_irq.bind(this),()=>this.antic.h),this.audio_pokey=$(1),this.audioadapter=new tt(this.audio_pokey.pokey1,this.audioOversample,this.sampleRate),this.handler=Z(this.inputs,re,this.getKeyboardFunction(),!0)}newBus(){return{read:T([[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:T([[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)}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[ht+t]=~this.inputs[2]>>t&1;this.gtia.readregs[ot]=~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.antic.h*4-this.firstVisibleClock,s=()=>{this.gtia.clockPulse1(),this.linergb[t++]=this.gtia.rgb},r=()=>{this.gtia.clockPulse2(),this.linergb[t++]=this.gtia.rgb};this.gtia.clockPulse4(),this.antic.dliop&16&&this.antic.regs[4]&1?(t+=2,this.gtia.setBias(-1)):this.gtia.setBias(0);let n=ct[this.antic.mode],h=this.antic.h&1;return(n<8||h)&&(this.gtia.an=this.antic.shiftout()),s(),n==1&&(this.gtia.an=this.antic.shiftout()),r(),n<=2&&(this.gtia.an=this.antic.shiftout()),s(),n==1&&(this.gtia.an=this.antic.shiftout()),r(),1}loadState(t){this.loadControlsState(t),this.cpu.loadState(t.c),this.ram.set(t.ram),this.antic.loadState(t.antic),this.gtia.loadState(t.gtia),this.irq_pokey.loadState(t.pokey),this.lastdmabyte=t.lastdmabyte,this.cart_80=t.cart_80,this.cart_a0=t.cart_a0}saveState(){return{c:this.cpu.saveState(),ram:this.ram.slice(0),antic:this.antic.saveState(),gtia:this.gtia.saveState(),pokey:this.irq_pokey.saveState(),inputs:this.inputs.slice(0),lastdmabyte:this.lastdmabyte,keycode:this.keycode,cart_80:this.cart_80,cart
Line truncated
|
||||
//# sourceMappingURL=atari8-NPXQGTKX.js.map
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../src/machine/chips/antic.ts", "../src/machine/chips/pokey.ts", "../src/machine/atari8.ts", "../src/platform/atari8.ts"],
|
||||
"sourcesContent": ["import { dumpRAM } from \"../../common/emu\";\nimport { hex, lpad, safe_extend } from \"../../common/util\";\n\n// ANTIC\n// https://www.atarimax.com/jindroush.atari.org/atanttim.html\n// http://www.virtualdub.org/blog/pivot/entry.php?id=243\n// http://www.beipmu.com/Antic_Timings.txt\n// https://user.xmission.com/~trevin/atari/antic_regs.html\n// https://user.xmission.com/~trevin/atari/antic_insns.html\n// http://www.atarimuseum.com/videogames/consoles/5200/conv_to_5200.html\n// https://www.virtualdub.org/downloads/Altirra%20Hardware%20Reference%20Manual.pdf\n\nconst PF_LEFT = [0, 25, 17, 9];\nconst PF_RIGHT = [0, 25 + 64, 17 + 80, 9 + 96];\n\nconst DMACTL = 0;\nconst CHACTL = 1;\nconst DLISTL = 2;\nconst DLISTH = 3;\nconst HSCROL = 4;\nconst VSCROL = 5;\nconst PMBASE = 7;\nconst CHBASE = 9;\nconst WSYNC = 10;\nconst VCOUNT = 11;\nconst PENH = 12;\nconst PENV = 13;\nconst NMIEN = 14;\nconst NMIRES = 15;\nconst NMIST = 15;\n\nconst PFNONE = 0;\nconst PFNARROW = 1;\nconst PFNORMAL = 2;\nconst PFWIDE = 3;\n\nconst NMIST_CYCLE = 12;\nconst NMI_CYCLE = 24;\nconst WSYNC_CYCLE = 212;\n\nconst ANTIC_LEFT = 17 - 4; // gtia 34, 4 cycle delay\nconst ANTIC_RIGHT = 110 - 4; // gtia 221, 4 cycle delay\nconst LAST_DMA_H = 105; // last DMA cycle\n\nexport const MODE_LINES = [0, 0, 8, 10, 8, 16, 8, 16, 8, 4, 4, 2, 1, 2, 1, 1];\n// how many bits before DMA clock repeats?\nconst MODE_PERIOD = [0, 0, 2, 2, 2, 2, 4, 4, 8, 4, 4, 4, 4, 2, 2, 2];\nconst MODE_YPERIOD = [0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 1, 0, 0, 0, 0];\n//const MODE_BPP = [0, 0, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1];\n// how many color clocks / pixel * 2\nexport const MODE_SHIFT = [0, 0, 1, 1, 2, 2, 2, 2, 8, 4, 4, 2, 2, 2, 2, 1];\n\nexport class ANTIC {\n read: (address: number) => number;\t// bus read function\n nmi: () => void; // generate NMI\n\n regs = new Uint8Array(0x10);\t\t\t\t// registers\n\n // Initialized so they are always own properties and therefore always\n // round-trip through saveState()/loadState() -- safe_extend() copies only\n // the keys present in the source, so a field that is merely declared is\n // absent from a save state and keeps its old value on load, which leaks\n // state backwards across a rewind. -1 behaves exactly as undefined did in\n // every comparison below (h is never negative, and h >= 2 && h <= 1 is\n // never true), so this does not change emulation.\n left: number = -1;\n right: number = -1;\t\t\t\t// left/right clocks for mode\n\n dma_enabled: boolean = false;\n dliop: number = 0; // dli operation\n mode: number = 0;\t\t\t// current mode\n jmp = false; // TODO\n lms = false; // TODO\n dlarg_lo: number = 0;\n dlarg_hi: number = 0;\n period: number = 0;\t\t// current mode period bitmask\n scanaddr: number = 0; // Scan Address (via LMS)\n startaddr: number = 0;\t// Start of line Address\n pfbyte: number = 0;\t\t// playfield byte fetched\n ch: number = 0;\t\t\t\t// char read\n linesleft: number = 0; // # of lines left in mode\n yofs: number = 0;\t\t\t// yofs fine\n isfirstline: boolean = false;\n v: number = 0;\t\t\t\t\t// vertical scanline #\n h: number = 0;\t\t\t\t\t// horizontal color clock\n\n linebuf = new Uint8Array(48);\n dmaclock: number = 0;\n dmaidx: number = 0;\n output: number = 0;\n dramrefresh = false;\n in_vscroll = 0;\n\n constructor(readfn, nmifn) {\n this.read = readfn; // bus read function\n this.nmi = nmifn; // NMI function\n }\n reset() {\n this.regs.fill(0);\n this.regs[NMIEN] = 0x00;\n this.regs[NMIST] = 0x7f;\n this.regs[PENH] = 0x00;\n this.regs[PENV] = 0xff;\n this.setReg(DMACTL, 0x0);\n this.h = this.v = 0;\n this.startaddr = this.scanaddr = 0;\n this.dmaclock = 0;\n }\n saveState() {\n return safe_extend(0, {}, this);\n }\n loadState(s) {\n safe_extend(0, this, s);\n this.setReg(DMACTL, s.regs[DMACTL]);\n }\n static stateToLongString(state): string {\n let s = \"\";\n s += \"H: \" + lpad(state.h, 3) + \" V: \" + lpad(state.v, 3) + \"\\n\";\n s += \"DLIOp: \" + hex(state.dliop, 2) + \" Lines: \" + state.yofs + \"/\" + state.linesleft;\n s += \" DMA \" + (state.dma_enabled ? \"ON \" : \"off\")\n if (state.dma_enabled) s += \" idx \" + state.dmaidx + \" clk \" + hex(state.dmaclock) \n s += \"\\n\"\n s += \"Addr: \" + hex(state.scanaddr, 4) + \"\\n\";\n s += dumpRAM(state.regs, 0, 16).replace('$00', 'Regs');\n return s;\n }\n setReg(a: number, v: number) {\n switch (a) {\n case WSYNC:\n this.regs[WSYNC] = 0xff;\n return; // this is readonly (we reset it)\n case NMIRES:\n this.regs[NMIST] = 0x1f;\n return; // this is readonly, don't mess with it\n }\n this.regs[a] = v;\n Line truncated
|
||||
"mappings": "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 truncated
|
||||
"sourcesContent": ["import { dumpRAM } from \"../../common/emu\";\nimport { hex, lpad, safe_extend } from \"../../common/util\";\n\n// ANTIC\n// https://www.atarimax.com/jindroush.atari.org/atanttim.html\n// http://www.virtualdub.org/blog/pivot/entry.php?id=243\n// http://www.beipmu.com/Antic_Timings.txt\n// https://user.xmission.com/~trevin/atari/antic_regs.html\n// https://user.xmission.com/~trevin/atari/antic_insns.html\n// http://www.atarimuseum.com/videogames/consoles/5200/conv_to_5200.html\n// https://www.virtualdub.org/downloads/Altirra%20Hardware%20Reference%20Manual.pdf\n\nconst PF_LEFT = [0, 25, 17, 9];\nconst PF_RIGHT = [0, 25 + 64, 17 + 80, 9 + 96];\n\nconst DMACTL = 0;\nconst CHACTL = 1;\nconst DLISTL = 2;\nconst DLISTH = 3;\nconst HSCROL = 4;\nconst VSCROL = 5;\nconst PMBASE = 7;\nconst CHBASE = 9;\nconst WSYNC = 10;\nconst VCOUNT = 11;\nconst PENH = 12;\nconst PENV = 13;\nconst NMIEN = 14;\nconst NMIRES = 15;\nconst NMIST = 15;\n\nconst PFNONE = 0;\nconst PFNARROW = 1;\nconst PFNORMAL = 2;\nconst PFWIDE = 3;\n\nconst NMIST_CYCLE = 12;\nconst NMI_CYCLE = 24;\nconst WSYNC_CYCLE = 212;\n\nconst ANTIC_LEFT = 17 - 4; // gtia 34, 4 cycle delay\nconst ANTIC_RIGHT = 110 - 4; // gtia 221, 4 cycle delay\nconst LAST_DMA_H = 105; // last DMA cycle\n\nexport const MODE_LINES = [0, 0, 8, 10, 8, 16, 8, 16, 8, 4, 4, 2, 1, 2, 1, 1];\n// how many bits before DMA clock repeats?\nconst MODE_PERIOD = [0, 0, 2, 2, 2, 2, 4, 4, 8, 4, 4, 4, 4, 2, 2, 2];\nconst MODE_YPERIOD = [0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 1, 0, 0, 0, 0];\n//const MODE_BPP = [0, 0, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1];\n// how many color clocks / pixel * 2\nexport const MODE_SHIFT = [0, 0, 1, 1, 2, 2, 2, 2, 8, 4, 4, 2, 2, 2, 2, 1];\n\nexport class ANTIC {\n read: (address: number) => number;\t// bus read function\n nmi: () => void; // generate NMI\n\n regs = new Uint8Array(0x10);\t\t\t\t// registers\n\n // Initialized so they are always own properties and therefore always\n // round-trip through saveState()/loadState() -- safe_extend() copies only\n // the keys present in the source, so a field that is merely declared is\n // absent from a save state and keeps its old value on load, which leaks\n // state backwards across a rewind. -1 behaves exactly as undefined did in\n // every comparison below (h is never negative, and h >= 2 && h <= 1 is\n // never true), so this does not change emulation.\n left: number = -1;\n right: number = -1;\t\t\t\t// left/right clocks for mode\n\n dma_enabled: boolean = false;\n dliop: number = 0; // dli operation\n mode: number = 0;\t\t\t// current mode\n jmp = false; // TODO\n lms = false; // TODO\n dlarg_lo: number = 0;\n dlarg_hi: number = 0;\n period: number = 0;\t\t// current mode period bitmask\n scanaddr: number = 0; // Scan Address (via LMS)\n startaddr: number = 0;\t// Start of line Address\n pfbyte: number = 0;\t\t// playfield byte fetched\n ch: number = 0;\t\t\t\t// char read\n linesleft: number = 0; // # of lines left in mode\n yofs: number = 0;\t\t\t// yofs fine\n isfirstline: boolean = false;\n v: number = 0;\t\t\t\t\t// vertical scanline #\n h: number = 0;\t\t\t\t\t// horizontal color clock\n\n linebuf = new Uint8Array(48);\n dmaclock: number = 0;\n dmaidx: number = 0;\n output: number = 0;\n dramrefresh = false;\n in_vscroll = 0;\n\n constructor(readfn, nmifn) {\n this.read = readfn; // bus read function\n this.nmi = nmifn; // NMI function\n }\n reset() {\n this.regs.fill(0);\n this.regs[NMIEN] = 0x00;\n this.regs[NMIST] = 0x7f;\n this.regs[PENH] = 0x00;\n this.regs[PENV] = 0xff;\n this.setReg(DMACTL, 0x0);\n this.h = this.v = 0;\n this.startaddr = this.scanaddr = 0;\n this.dmaclock = 0;\n }\n saveState() {\n return safe_extend(0, {}, this);\n }\n loadState(s) {\n safe_extend(0, this, s);\n this.setReg(DMACTL, s.regs[DMACTL]);\n }\n static stateToLongString(state): string {\n let s = \"\";\n s += \"H: \" + lpad(state.h, 3) + \" V: \" + lpad(state.v, 3) + \"\\n\";\n s += \"DLIOp: \" + hex(state.dliop, 2) + \" Lines: \" + state.yofs + \"/\" + state.linesleft;\n s += \" DMA \" + (state.dma_enabled ? \"ON \" : \"off\")\n if (state.dma_enabled) s += \" idx \" + state.dmaidx + \" clk \" + hex(state.dmaclock) \n s += \"\\n\"\n s += \"Addr: \" + hex(state.scanaddr, 4) + \"\\n\";\n s += dumpRAM(state.regs, 0, 16).replace('$00', 'Regs');\n return s;\n }\n setReg(a: number, v: number) {\n switch (a) {\n case WSYNC:\n this.regs[WSYNC] = 0xff;\n return; // this is readonly (we reset it)\n case NMIRES:\n this.regs[NMIST] = 0x1f;\n return; // this is readonly, don't mess with it\n }\n this.regs[a] = v;\n Line truncated
|
||||
"mappings": "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 truncated
|
||||
"names": ["PF_LEFT", "PF_RIGHT", "DMACTL", "CHACTL", "DLISTL", "DLISTH", "HSCROL", "VSCROL", "PMBASE", "CHBASE", "WSYNC", "VCOUNT", "PENH", "PENV", "NMIEN", "NMIRES", "NMIST", "ANTIC_LEFT", "ANTIC_RIGHT", "LAST_DMA_H", "MODE_LINES", "MODE_PERIOD", "MODE_YPERIOD", "MODE_SHIFT", "ANTIC", "readfn", "nmifn", "NMIEN", "NMIST", "PENH", "PENV", "DMACTL", "safe_extend", "s", "state", "lpad", "hex", "dumpRAM", "a", "v", "WSYNC", "NMIRES", "VCOUNT", "DLISTL", "DLISTH", "effwidth", "hscroll", "HSCROL", "PF_LEFT", "PF_RIGHT", "vscrol", "VSCROL", "mask", "pc", "b", "did_dma", "op", "candma", "section", "oneline", "pmaddr", "PMBASE", "mode", "ch", "y", "addrofs", "chbase", "CHBASE", "addr", "chactl", "CHACTL", "mode3lc", "AUDF1", "AUDF2", "AUDF3", "AUDF4", "AUDCTL", "STIMER", "SKRES", "POTGO", "SEROUT", "IRQEN", "SKCTL", "ALLPOT", "KBCODE", "RANDOM", "SERIN", "IRQST", "SKSTAT", "POLY9", "CH1_179", "CH3_179", "CH1_CH2", "CH3_CH4", "CLOCK_15", "DIV_64", "DIV_15", "POLY9_SIZE", "POLY17_SIZE", "CHAN1", "CHAN2", "CHAN3", "CHAN4", "ANTIC_LINE_C", "SIO_XMTDONE_INTERVAL", "SIO_SEROUT_INTERVAL", "poly9", "poly17", "initPolyTables", "reg", "i", "POKEY", "irq", "antic_xpos", "safe_extend", "s", "SKSTAT", "DIV_64", "addr", "byte", "ALLPOT", "KBCODE", "RANDOM", "SKCTL", "AUDCTL", "POLY9", "POLY9_SIZE", "POLY17_SIZE", "ptr", "CLOCK_15", "DIV_15", "CHAN1", "CHAN2", "CHAN3", "CHAN4", "AUDF1", "CH1_CH2", "AUDF2", "AUDF3", "CH3_CH4", "AUDF4", "IRQEN", "IRQST", "SKRES", "POTGO", "SEROUT", "SIO_SEROUT_INTERVAL", "SIO_XMTDONE_INTERVAL", "STIMER", "chan_mask", "CH1_179", "ANTIC_LINE_C", "CH3_179", "SERIN", "chan", "mask", "state", "dumpRAM", "ATARI8_KEYMATRIX_INTL_NOSHIFT", "Keys", "ATARI8_KEYCODE_MAP", "makeKeycodeMap", "Atari800", "BasicScanlineMachine", "MOS6502", "ANTIC", "GTIA", "POKEY", "newPOKEYAudio", "TssChannelAdapter", "newKeyboardHandler", "newAddressDecoder", "a", "v", "bios", "i", "TRIG0", "CONSOL", "y", "xofs", "gtiatick1", "gtiatick2", "bp", "MODE_SHIFT", "odd", "state", "category", "o", "key", "code", "flags", "keymap", "rom", "title", "rom2", "addr", "value", "ofs", "stub", "stubofs", "runaddr", "start", "end", "hex", "initaddr", "controller", "pc", "nextInsn", "b", "dlist", "pc0", "op", "mode", "debugmsg", "jmp", "lines", "MODE_LINES", "lms", "dlarg_lo", "dlarg_hi", "Atari5200", "Atari8_PRESETS", "Atari800_PRESETS", "Atari800_MemoryMap", "getToolForFilename_Atari8", "fn", "getToolForFilename_6502", "Atari800Platform", "Base6502MachinePlatform", "atari8_showHelp", "atari8_getROMExtension", "Atari800", "a", "bios", "biosResponse", "biosBinary", "tree", "Atari5200Platform", "Atari5200", "Atari8MAMEPlatform", "BaseMAME6502Platform", "getOpcodeMetadata_6502", "Atari800MAMEPlatform", "title", "data", "_self", "Atari5200MAMEPlatform", "rom", "PLATFORMS"]
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import{b as S}from"./chunk-3FIVEUG2.js";import{y as E}from"./chunk-EX34LRSY.js";import"./chunk-22ZJCPEG.js";import"./chunk-T6VURU5O.js";import"./chunk-A7SWO6EA.js";import"./chunk-PEELNZF2.js";import"./chunk-2XSLQJUY.js";import{B as c,K as f,T as d,U as v,a as g}from"./chunk-TYDI7JZQ.js";import"./chunk-VSC4MAII.js";function k(u){return u.value!=null}function y(u){return u.name!=null}function O(u){return u.op!=null&&u.left!=null&&u.right!=null}function N(u){return u.op!=null&&u.expr!=null}var m=class{randomize(){this.seed(Math.random()*2147483647,Math.random()*2147483647,Math.random()*2147483647,Math.random()*2147483647)}constructor(){(()=>{var r,e,i,n;this.seed=function(s,a,h,o){r=s,e=a,i=h,n=o},this.seedfloat=function(s){this.seed(s,s*4294,s*429496,s*4294967296),this.next(),this.next(),this.next()},this.next=function(){r>>>=0,e>>>=0,i>>>=0,n>>>=0;var s=r+e|0;return r=e^e>>>9,e=i+(i<<3)|0,i=i<<21|i>>>11,n=n+1|0,s=s+n|0,i=i+s|0,(s>>>0)/4294967296}})(),this.seedfloat(-1)}},I=1024*1024,l=class u{constructor(){this.margin=80;this.running=!1;this.exited=!0;this.trace=!1}load(t){let r=null,e=0;if(this.pc2label!=null){let s=this.curpc;for(;s>0&&(r=this.pc2label.get(s))==null;)s--;e=this.curpc-s,console.log("oldpc=",this.curpc,"restart @ label",r,"+",e)}this.program=t,this.opts=t.opts,this.opts.maxArrayElements||(this.opts.maxArrayElements=I),this.allstmts=t.stmts,this.label2pc=t.labels,this.label2dataptr={},this.pc2label=new Map,this.datums=[],this.subroutines={},this.builtins=this.getBuiltinFunctions();for(var i in t.labels){var n=t.labels[i];this.pc2label.set(n,i)}return this.allstmts.forEach((s,a)=>{this.curpc=a+1,this.compileStatement(s),s.command=="DATA"&&(this.label2dataptr[s.$loc.label]=this.datums.length,s.datums.forEach(h=>{this.curpc=s.$loc.offset,this.datums.push(h)}))}),this.label2pc[r]!=null?(this.curpc=this.label2pc[r]+e,!0):(this.curpc=0,!1)}reset(){this.curpc=0,this.dataptr=0,this.clearVars(),this.returnStack=[],this.column=0,this.running=!0,this.exited=!1}clearVars(){this.globals=this.vars={},this.arrays={},this.defs={},this.forLoops={},this.forLoopStack=[],this.whileLoops=[],this.rng=new m,this.opts&&this.opts.staticArrays&&this.allstmts.filter(t=>t.command=="DIM").forEach(t=>{t.args.forEach(r=>this.compileJS(this._DIM(r))())})}saveState(){return $.extend(!0,{},this)}loadState(t){$.extend(!0,this,t)}getBuiltinFunctions(){var t=this.program&&this.opts.validFunctions;t||(t=Object.getOwnPropertyNames(u.prototype).filter(i=>/^[A-Z]{3,}[$]?$/.test(i)));var r={};for(var e of t)this.supportsFunction(e)&&(r[e]=this[e].bind(this));return r}supportsFunction(t){return typeof this[t]=="function"}runtimeError(t){throw this.curpc--,new d(t,this.getCurrentSourceLocation())}dialectError(t){this.runtimeError(`I can't ${t} in this dialect of BASIC.`)}getLineForPC(t){var r=this.allstmts[t];return r&&r.$loc&&r.$loc.line}getLabelForPC(t){var r=this.allstmts[t];return r&&r.$loc&&r.$loc.label}getCurrentSourceLocation(){var t=this.getStatement();return t&&t.$loc}getCurrentLabel(){var t=this.getCurrentSourceLocation();return t&&t.label}getStatement(){return this.allstmts[this.curpc]}step(){if(!this.running)return!1;var t=this.getStatement();return t?(this.trace&&console.log(this.curpc,t,this.vars,Object.keys(this.arrays)),this.curpc++,this.executeStatement(t),this.running):(this.running=!1,this.exited=!0,!1)}compileStatement(t){if(t.$run==null)try{var r=this["do__"+t.command];r==null&&this.runtimeError(`I don't know how to "${t.command}".`);var e=r.bind(this)(t);this.trace&&console.log(e),t.$run=this.compileJS(e)}catch(i){throw e&&console.log(e),i}}compileJS(t){return new Function(t).bind(this)}executeStatement(t){this.compileStatement(t),t.$run()}skipToEOL(){do this.curpc++;while(this.curpc<this.allstmts.length&&!this.pc2label.get(this.curpc))}skipToElse(){for(;this.curpc<this.allstmts.length;){var t=this.allstmts[this.curpc].command;if(t=="ELSE"){this.curpc++;break}else if(t=="IF")return this.skipToEOL();if(this.curpc++,this.pc2label.get(this.curpc))break}}skipToEOF(){this.curpc=this.allstmts.length}skipToAfterNext(t){for(var r=this.curpc;r<this.allstmts.length;){var e=this.allstmts[r];if(e.command=="NEXT"){var i=e.lexpr;if(i&&i.name==t){this.curpc=r+1;return}}r++}this.runtimeError(`I couldn't find a matching NEXT ${t} to skip this for loop.`)}skipToAfterWend(){for(var t=this.curpc-1,r=0;t<this.allstmts.length;){var e=this.allstmts[t];if(e.command=="WHILE")r++;else if(e.command=="WEND"&&(r--,r==0)){this.curpc=t+1;return}t++}this.runtimeError("I couldn't find a matching WEND for this WHILE.")}gotoLabel(t){var r=this.label2pc[t];r>=0?this.curpc=r:this.runtimeError(`I tried to go to the label "${t}" but couldn't find it.`)}newLocalScope(){this.vars=Object.create(this.vars)}popLocalScope(){this.vars!==this.globals&&(this.vars=Object.getPrototypeOf(this.vars))}gosubLabel(t){this.returnStack.length>32767&&this.runtimeError("I did too many GOSUBs without a RETURN."),this.returnStack.push(this.curpc),this.gotoLabel(t)}returnFrLine truncated
|
||||
import{b as S}from"./chunk-3FIVEUG2.js";import{y as E}from"./chunk-4H5H6MGY.js";import"./chunk-22ZJCPEG.js";import"./chunk-T6VURU5O.js";import"./chunk-A7SWO6EA.js";import"./chunk-SIGRU5UF.js";import"./chunk-2XSLQJUY.js";import{B as c,K as f,T as d,U as v,a as g}from"./chunk-TYDI7JZQ.js";import"./chunk-VSC4MAII.js";function k(u){return u.value!=null}function y(u){return u.name!=null}function O(u){return u.op!=null&&u.left!=null&&u.right!=null}function N(u){return u.op!=null&&u.expr!=null}var m=class{randomize(){this.seed(Math.random()*2147483647,Math.random()*2147483647,Math.random()*2147483647,Math.random()*2147483647)}constructor(){(()=>{var r,e,i,n;this.seed=function(s,a,h,o){r=s,e=a,i=h,n=o},this.seedfloat=function(s){this.seed(s,s*4294,s*429496,s*4294967296),this.next(),this.next(),this.next()},this.next=function(){r>>>=0,e>>>=0,i>>>=0,n>>>=0;var s=r+e|0;return r=e^e>>>9,e=i+(i<<3)|0,i=i<<21|i>>>11,n=n+1|0,s=s+n|0,i=i+s|0,(s>>>0)/4294967296}})(),this.seedfloat(-1)}},I=1024*1024,l=class u{constructor(){this.margin=80;this.running=!1;this.exited=!0;this.trace=!1}load(t){let r=null,e=0;if(this.pc2label!=null){let s=this.curpc;for(;s>0&&(r=this.pc2label.get(s))==null;)s--;e=this.curpc-s,console.log("oldpc=",this.curpc,"restart @ label",r,"+",e)}this.program=t,this.opts=t.opts,this.opts.maxArrayElements||(this.opts.maxArrayElements=I),this.allstmts=t.stmts,this.label2pc=t.labels,this.label2dataptr={},this.pc2label=new Map,this.datums=[],this.subroutines={},this.builtins=this.getBuiltinFunctions();for(var i in t.labels){var n=t.labels[i];this.pc2label.set(n,i)}return this.allstmts.forEach((s,a)=>{this.curpc=a+1,this.compileStatement(s),s.command=="DATA"&&(this.label2dataptr[s.$loc.label]=this.datums.length,s.datums.forEach(h=>{this.curpc=s.$loc.offset,this.datums.push(h)}))}),this.label2pc[r]!=null?(this.curpc=this.label2pc[r]+e,!0):(this.curpc=0,!1)}reset(){this.curpc=0,this.dataptr=0,this.clearVars(),this.returnStack=[],this.column=0,this.running=!0,this.exited=!1}clearVars(){this.globals=this.vars={},this.arrays={},this.defs={},this.forLoops={},this.forLoopStack=[],this.whileLoops=[],this.rng=new m,this.opts&&this.opts.staticArrays&&this.allstmts.filter(t=>t.command=="DIM").forEach(t=>{t.args.forEach(r=>this.compileJS(this._DIM(r))())})}saveState(){return $.extend(!0,{},this)}loadState(t){$.extend(!0,this,t)}getBuiltinFunctions(){var t=this.program&&this.opts.validFunctions;t||(t=Object.getOwnPropertyNames(u.prototype).filter(i=>/^[A-Z]{3,}[$]?$/.test(i)));var r={};for(var e of t)this.supportsFunction(e)&&(r[e]=this[e].bind(this));return r}supportsFunction(t){return typeof this[t]=="function"}runtimeError(t){throw this.curpc--,new d(t,this.getCurrentSourceLocation())}dialectError(t){this.runtimeError(`I can't ${t} in this dialect of BASIC.`)}getLineForPC(t){var r=this.allstmts[t];return r&&r.$loc&&r.$loc.line}getLabelForPC(t){var r=this.allstmts[t];return r&&r.$loc&&r.$loc.label}getCurrentSourceLocation(){var t=this.getStatement();return t&&t.$loc}getCurrentLabel(){var t=this.getCurrentSourceLocation();return t&&t.label}getStatement(){return this.allstmts[this.curpc]}step(){if(!this.running)return!1;var t=this.getStatement();return t?(this.trace&&console.log(this.curpc,t,this.vars,Object.keys(this.arrays)),this.curpc++,this.executeStatement(t),this.running):(this.running=!1,this.exited=!0,!1)}compileStatement(t){if(t.$run==null)try{var r=this["do__"+t.command];r==null&&this.runtimeError(`I don't know how to "${t.command}".`);var e=r.bind(this)(t);this.trace&&console.log(e),t.$run=this.compileJS(e)}catch(i){throw e&&console.log(e),i}}compileJS(t){return new Function(t).bind(this)}executeStatement(t){this.compileStatement(t),t.$run()}skipToEOL(){do this.curpc++;while(this.curpc<this.allstmts.length&&!this.pc2label.get(this.curpc))}skipToElse(){for(;this.curpc<this.allstmts.length;){var t=this.allstmts[this.curpc].command;if(t=="ELSE"){this.curpc++;break}else if(t=="IF")return this.skipToEOL();if(this.curpc++,this.pc2label.get(this.curpc))break}}skipToEOF(){this.curpc=this.allstmts.length}skipToAfterNext(t){for(var r=this.curpc;r<this.allstmts.length;){var e=this.allstmts[r];if(e.command=="NEXT"){var i=e.lexpr;if(i&&i.name==t){this.curpc=r+1;return}}r++}this.runtimeError(`I couldn't find a matching NEXT ${t} to skip this for loop.`)}skipToAfterWend(){for(var t=this.curpc-1,r=0;t<this.allstmts.length;){var e=this.allstmts[t];if(e.command=="WHILE")r++;else if(e.command=="WEND"&&(r--,r==0)){this.curpc=t+1;return}t++}this.runtimeError("I couldn't find a matching WEND for this WHILE.")}gotoLabel(t){var r=this.label2pc[t];r>=0?this.curpc=r:this.runtimeError(`I tried to go to the label "${t}" but couldn't find it.`)}newLocalScope(){this.vars=Object.create(this.vars)}popLocalScope(){this.vars!==this.globals&&(this.vars=Object.getPrototypeOf(this.vars))}gosubLabel(t){this.returnStack.length>32767&&this.runtimeError("I did too many GOSUBs without a RETURN."),this.returnStack.push(this.curpc),this.gotoLabel(t)}returnFrLine truncated
|
||||
`)this.column=0,e=t;else if(t==" "){var n=this.opts.printZoneLength,s=Math.floor(this.column/n),a=(s+1)*this.opts.printZoneLength;a+n>this.margin?(this.column=0,e=`
|
||||
`):e=this.TAB(a)}else e=`${t}`;return e}float2str(t,r){var e=t.toString().toUpperCase();if(r>0){for(var i=r;e.length>r;)e=t.toPrecision(i--);e.startsWith("0.")?e=e.substr(1):e.startsWith("-0.")&&(e="-"+e.substr(2))}return e}printExpr(t){var r=this.valueToString(t,this.opts.numericPadding);this.column+=r.length,this.print(r)}print(t){console.log(t)}async input(t,r){return{line:"",vals:[]}}resume(){}expr2js(t,r){if(r||(r={}),k(t))return JSON.stringify(t.value);if(y(t)){if(!t.args&&r.locals&&r.locals.indexOf(t.name)>=0)return t.name;{r.isconst&&this.runtimeError("I expected a constant value here.");var e="",i=JSON.stringify(t.name);let h=t.args?t.args.map(o=>this.expr2js(o,r)).join(", "):[];return t.name.startsWith("FN")?e+=`this.getDef(${i})(${h})`:this.builtins[t.name]?(this.checkFuncArgs(t,this.builtins[t.name]),e+=`this.builtins.${t.name}(${h})`):t.args?this.opts.arraysContainChars&&t.name.endsWith("$")?e+=`this.getStringSlice(this.vars.${t.name}, ${h})`:e+=`this.arrayGet(${i}, ${h})`:e+=`this.vars.${t.name}`,r.novalid?e:`this.checkValue(${e}, ${i})`}}else if(O(t)){var n=this.expr2js(t.left,r),s=this.expr2js(t.right,r);return`this.${t.op}(${n}, ${s})`}else if(N(t)){var a=this.expr2js(t.expr,r);return`this.${t.op}(${a})`}}assign2js(t,r){r||(r={});var e="";return(t.name.startsWith("FN")||this.builtins[t.name])&&this.runtimeError("I can't call a function here."),t.args?this.opts.arraysContainChars&&t.name.endsWith("$")?this.runtimeError("I can't set array slices via this command yet."):e+=this.array2js(t,r):e=`this.globals.${t.name}`,e}array2js(t,r){var e=JSON.stringify(t.name),i=t.args||[];return this.expr2js(t,{novalid:!0})+`;this.getArray(${e}, ${i.length})`+i.map(n=>"[this.ROUND("+this.expr2js(n,r)+")]").join("")}checkFuncArgs(t,r){var e=t.args?t.args.length:0;t.name=="RND"&&e==0||t.name=="MID$"&&e==2||t.name=="INSTR"&&e==2||r.length!=e&&this.runtimeError(`I expected ${r.length} arguments for the ${t.name} function, but I got ${e}.`)}startForLoop(t,r,e,i,n){var s=this.curpc-1,a=this.pc2label.get(s);i||(i=1),this.vars[t]=r,this.trace&&console.log(`FOR ${t} = ${r} TO ${e} STEP ${i}`);var h=()=>i>=0?this.vars[t]>e:this.vars[t]<e;this.opts.testInitialFor&&h()&&(n!=null?this.curpc=n+1:this.skipToAfterNext(t)),this.forLoopStack[t]!=null&&(this.forLoopStack=this.forLoopStack.filter(o=>o==t)),this.forLoopStack.push(t),this.forLoops[t]={$next:o=>{o&&t!=o&&this.runtimeError(`I executed NEXT "${o}", but the last FOR was for "${t}".`),this.vars[t]+=i;var b=h();b?(this.forLoopStack.pop(),delete this.forLoops[t]):this.curpc=(a!=null&&this.label2pc[a]||s)+1,this.trace&&console.log(`NEXT ${t}: ${this.vars[t]} TO ${e} STEP ${i} DONE=${b}`)}}}nextForLoop(t){var r=this.forLoops[t||this.opts.optionalNextVar&&this.forLoopStack[this.forLoopStack.length-1]];r||this.runtimeError("I couldn't find a matching FOR for this NEXT."),r.$next(t)}whileLoop(t){t?this.whileLoops.push(this.curpc-1):this.skipToAfterWend()}nextWhileLoop(){var t=this.whileLoops.pop();t==null?this.runtimeError("I couldn't find a matching WHILE for this WEND."):this.curpc=t}assign(t,r,e){return e&&t.endsWith("$")?this.checkValue(this.convert(t,r),t):t.endsWith("$")?this.convertToString(r,t):this.convertToNumber(r,t)}convert(t,r){return t.endsWith("$")?r==null?"":r.toString():typeof r=="number"?r:parseFloat(r+"")}convertToString(t,r){if(typeof t!="string")this.runtimeError(`I can't convert ${t} to a string.`);else return t}convertToNumber(t,r){if(typeof t!="number")this.runtimeError(`I can't convert ${t} to a number.`);else return this.checkNum(t)}dimArray(t,...r){if(r=r.map(Math.round),this.arrays[t]!=null){if(this.opts.staticArrays)return;this.runtimeError(`I already dimensioned this array (${t}) earlier.`)}var e=this.getTotalArrayLength(r);e>this.opts.maxArrayElements&&this.runtimeError("I can't create an array with this many elements.");var i=t.endsWith("$"),n=i?Array:Float64Array;if(r.length==1)this.arrays[t]=new n(r[0]+1);else if(r.length==2){this.arrays[t]=new Array(r[0]+1);for(var s=0;s<r[0]+1;s++)this.arrays[t][s]=new n(r[1]+1)}else this.runtimeError("I only support arrays of one or two dimensions.")}getTotalArrayLength(t){for(var r=1,e=0;e<t.length;e++)t[e]<this.opts.defaultArrayBase&&this.runtimeError(`I can't create an array with a dimension less than ${this.opts.defaultArrayBase}.`),r*=t[e];return r}getArray(t,r){return this.arrays[t]||(this.opts.defaultArraySize==0&&this.dialectError("automatically declare arrays without a DIM statement (or did you mean to call a function?)"),r==1?this.dimArray(t,this.opts.defaultArraySize-1):r==2?this.dimArray(t,this.opts.defaultArraySize-1,this.opts.defaultArraySize-1):this.runtimeError("I only support arrays of one or two dimensions.")),this.arrays[t]}arrayGet(t,...r){var e=this.getArray(t,r.length);r=r.map(this.ROUND.bind(this));for(var i=e,n=0;n<r.length;n++){var s=r[n];c(i)||this.runtimeError(`I tried to lookup ${t}(${r}) but used too many dimensions.`),s<this.opts.defaultArrayBase&&this.runtimeError(`I triedLine truncated
|
||||
var value = this.convert(${JSON.stringify(n.name)}, response.vals[${s}]);
|
||||
@@ -34,4 +34,4 @@ import{b as S}from"./chunk-3FIVEUG2.js";import{y as E}from"./chunk-EX34LRSY.js";
|
||||
|
||||
`),this.tty.addtext("*** END OF PROGRAM ***",1),this.tty.showPrintHead(!1)}loadROM(t,r){var e=this.runtime.exited;this.program=r;var i=this.runtime.load(r);this.tty.uppercaseOnly=!0,(!this.hotReload||e||!i)&&this.reset()}getROMExtension(){return".json"}reset(){this.tty.clear(),this.runtime.reset(),this.clock=0,this.transcript=[]}pause(){this.timer.stop()}resume(){this.isBlocked()||(this.animcount=0,this.timer.start())}isBlocked(){return this.tty.waitingfor!=null||this.runtime.exited}isRunning(){return this.timer.isRunning()}getDefaultExtensions(){return[".bas"]}getToolForFilename(){return"basic"}getPresets(){return L}getPC(){return this.runtime.curpc}getSP(){return 4096-this.runtime.returnStack.length}isStable(){return!0}getCPUState(){return{PC:this.getPC(),SP:this.getSP()}}saveState(){return{c:this.getCPUState(),rt:this.runtime.saveState()}}loadState(t){this.runtime.loadState(t)}getDebugTree(){return{CurrentLine:this.runtime.getCurrentLabel(),Variables:this.runtime.vars,Arrays:this.runtime.arrays,Functions:this.runtime.defs,ForLoops:this.runtime.forLoops,WhileLoops:this.runtime.whileLoops,ReturnStack:this.runtime.returnStack,NextDatum:this.runtime.datums[this.runtime.dataptr],Clock:this.clock,Options:this.runtime.opts,Internals:this.runtime}}inspect(t){let r=this.runtime.vars[t];if(r!=null)return`${t} = ${r}`}showHelp(){return"https://8bitworkshop.com/docs/platforms/basic/"}getDebugCategories(){return["Variables"]}getDebugInfo(t,r){if(t==="Variables")return this.varsToLongString()}varsToLongString(){var t="",r=Object.keys(this.runtime.vars);r.sort();for(var e of r){var i=this.runtime.vars[e],n=JSON.stringify(i);n.length>24&&(n=`${n.substr(0,24)}...(${n.length})`),t+=g(e,3)+" = "+n+`
|
||||
`}return t}setupDebug(t){this.onBreakpointHit=t}clearDebug(){this.onBreakpointHit=null,this.debugTrap=null}checkDebugTrap(){return this.debugTrap&&this.debugTrap()?(this.pause(),this.break(),!0):!1}break(){this.onBreakpointHit&&this.onBreakpointHit(this.saveState())}step(){var t=this.clock;this.debugTrap=()=>this.clock>t,this.resume()}stepOver(){var t=this.runtime.getStatement();if(t&&(t.command=="GOSUB"||t.command=="ONGOSUB")){var r=this.getPC()+1;this.runEval(()=>this.getPC()==r)}else this.step()}hasCustomStepOver(){return!0}runUntilReturn(){var t=this.getSP();this.runEval(()=>this.getSP()>t)}runEval(t){this.debugTrap=()=>t(this.getCPUState()),this.resume()}restartAtPC(t){return t=Math.round(t),t>=0&&t<this.runtime.allstmts.length?(this.runtime.curpc=t,this.tty.cancelinput(),this.clock=0,!0):!1}readFile(t){return this.internalFiles[t]}writeFile(t,r){return this.internalFiles[t]=r,!0}didExit(){this.internalFiles["stdout.txt"]=this.transcript.join(""),E()}};f.basic=p;
|
||||
//# sourceMappingURL=basic-PINDSKMV.js.map
|
||||
//# sourceMappingURL=basic-G4Y7BVWJ.js.map
|
||||
File renamed without changes.
@@ -1,4 +1,4 @@
|
||||
import{a as M}from"./chunk-WIKZL6VD.js";import{A as _,J as y,s as b,x as S}from"./chunk-2XSLQJUY.js";import{K as n,V as u,a as x,g as a,v as d}from"./chunk-TYDI7JZQ.js";import"./chunk-VSC4MAII.js";var m=class extends b{constructor(){super(...arguments);this.numTotalScanlines=312;this.cpuCyclesPerLine=63;this.joymask0=0;this.joymask1=0;this.lightpen_x=0;this.lightpen_y=0}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 o=this.romarr[4]+this.romarr[5]*256,t=0;t<15e4&&this.getPC()!=o;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(),t}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),o=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(o,o+16),joymask0:this.joymask0,joymask1:this.joymask1}}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.exports.c64_joystick(this.sys,this.joymask0,this.joymask1)}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.exports.c64_joystick(this.sys,this.joymask0,this.joymask1)}}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}}getDebugStateOffset(e){var i=this.exports.machine_get_debug_pointer(this.sys,e);return i-this.sys}getDebugCategories(){return["CPU","ZPRAM","Stack","PLA","CIA","VIC","SID"]}getDebugInfo(e,i){switch(e){case"PLA":{let t="",s=i.pla[0],r=i.pla[3];return t+=`$0000 - $9FFF RAM
|
||||
import{a as M}from"./chunk-WIKZL6VD.js";import{A as _,J as y,s as b,x as S}from"./chunk-2XSLQJUY.js";import{K as n,V as f,a as x,g as a,v as d}from"./chunk-TYDI7JZQ.js";import"./chunk-VSC4MAII.js";var m=class extends b{constructor(){super(...arguments);this.numTotalScanlines=312;this.cpuCyclesPerLine=63;this.joymask0=0;this.joymask1=0;this.lightpen_x=0;this.lightpen_y=0}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 o=this.romarr[4]+this.romarr[5]*256,t=0;t<15e4&&this.getPC()!=o;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(),t}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),o=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(o,o+16),joymask0:this.joymask0,joymask1:this.joymask1}}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.exports.c64_joystick(this.sys,this.joymask0,this.joymask1)}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.exports.c64_joystick(this.sys,this.joymask0,this.joymask1)}}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}}getDebugStateOffset(e){var i=this.exports.machine_get_debug_pointer(this.sys,e);return i-this.sys}getDebugCategories(){return["CPU","ZPRAM","Stack","PLA","CIA","VIC","SID"]}getDebugInfo(e,i){switch(e){case"PLA":{let t="",s=i.pla[0],r=i.pla[3];return t+=`$0000 - $9FFF RAM
|
||||
`,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"}
|
||||
@@ -9,6 +9,6 @@ import{a as M}from"./chunk-WIKZL6VD.js";import{A as _,J as y,s as b,x as S}from"
|
||||
`}return t}case"VIC":{let t=i.vic,s="",r=(i.cia2[0]&3^3)*16384,o=r+(i.vic[24]&14)*1024,l=r+(i.vic[24]>>4)*1024,p=i.vic[17]&32,C=(i.cia2[0]&1)==1&&(i.vic[24]&12)==4,A=i.state[244],I=this.getRasterY();return s+="Mode:",i.vic[17]&32?s+=" BITMAP":s+=" CHAR",i.vic[22]&16&&(s+=" MULTICOLOR"),i.vic[17]&64&&(s+=" EXTENDED"),s+=`
|
||||
`,s+=`Raster: (${x(A,3)}, ${x(I,3)}) `,s+=`Scroll: (${i.vic[22]&7}, ${i.vic[17]&7})`,s+=`
|
||||
`,s+=`VIC Bank: $${a(r,4)} Scrn: $${a(l,4)} `,p?s+=`Bitmap: $${a(o&57344,4)}`:C?s+=`Char: ROM $${a(o,4)}`:s+=`Char: $${a(o,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,o=220,l=d(0,255,(this.lightpen_x-t)/(r-t)*160+24),p=d(0,255,(this.lightpen_y-s)/(o-s)*200+50);this.exports.machine_set_mouse(this.sys,l,p)}};var R=[{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 Language"},{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"}],v={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"}]},h=class extends y{newMachine(){return new m("c64")}getPresets(){return R}readAddress(c){return this.machine.readConst(c)}getMemoryMap(){return v}showHelp(){return"https://8bitworkshop.com/docs/platforms/c64/"}getROMExtension(c){return c&&c[0]==1&&c[1]==8?".prg":".bin"}},f=class extends M{constructor(){super(...arguments);this.getToolForFilename=S;this.getOpcodeMetadata=_}getPresets(){return R}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 v}};n.c64=h;n["c64.wasm"]=h;n["c64.mame"]=f;
|
||||
//# sourceMappingURL=c64-6OBK6BOT.js.map
|
||||
`,s+=f(t,53248,64),s}case"SID":{let t=i.sid,s="";return s+=f(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,o=220,l=d(0,255,(this.lightpen_x-t)/(r-t)*160+24),p=d(0,255,(this.lightpen_y-s)/(o-s)*200+50);this.exports.machine_set_mouse(this.sys,l,p)}};var R=[{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"}],v={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"}]},h=class extends y{newMachine(){return new m("c64")}getPresets(){return R}readAddress(c){return this.machine.readConst(c)}getMemoryMap(){return v}showHelp(){return"https://8bitworkshop.com/docs/platforms/c64/"}getROMExtension(c){return c&&c[0]==1&&c[1]==8?".prg":".bin"}},u=class extends M{constructor(){super(...arguments);this.getToolForFilename=S;this.getOpcodeMetadata=_}getPresets(){return R}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 v}};n.c64=h;n["c64.wasm"]=h;n["c64.mame"]=u;
|
||||
//# sourceMappingURL=c64-RILK5FDC.js.map
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../src/machine/c64.ts", "../src/platform/c64.ts"],
|
||||
"sourcesContent": ["\nimport { AcceptsPaddleInput, Probeable } from \"../common/devices\";\nimport { dumpRAM, KeyFlags } from \"../common/emu\";\nimport { clamp, hex, lpad } from \"../common/util\";\n\n// https://www.c64-wiki.com/wiki/C64\n// http://www.zimmers.net/cbmpics/cbm/c64/vic-ii.txt\n// http://www.zimmers.net/cbmpics/cbm/c64/c64prg.txt\n// http://sta.c64.org/cbm64mem.html\n// http://hitmen.c02.at/temp/palstuff/\n\n//// WASM Machine\n\nimport { Machine } from \"../common/baseplatform\";\nimport { TrapCondition } from \"../common/devices\";\nimport { BaseWASMMachine } from \"../common/wasmplatform\";\n\nexport class C64_WASMMachine extends BaseWASMMachine \n implements Machine, Probeable, AcceptsPaddleInput {\n\n numTotalScanlines = 312;\n cpuCyclesPerLine = 63;\n\n prgstart : number;\n joymask0 = 0;\n joymask1 = 0;\n lightpen_x = 0;\n lightpen_y = 0;\n\n loadBIOS(srcArray: Uint8Array) {\n super.loadBIOS(srcArray);\n }\n reset() {\n super.reset();\n // clear keyboard\n for (var ch=0; ch<128; ch++) {\n this.exports.machine_key_up(this.sys, ch);\n }\n // load rom\n if (this.romptr && this.romlen) {\n this.exports.machine_load_rom(this.sys, this.romptr, this.romlen);\n this.prgstart = this.romarr[0] + (this.romarr[1]<<8); // get load address\n // look for BASIC program start\n if (this.prgstart == 0x801) {\n // decode SYS address from decimal?\n if (this.romarr[6] == 0x9e) {\n var addr = 0;\n for (var i=0; i<5; i++) {\n var ch = this.romarr[7+i];\n if (ch == 0x9b || ch == 0) break;\n addr = addr * 10 + (ch & 0xf);\n }\n this.prgstart = addr;\n console.log(\"SYS\", addr, hex(addr));\n } else {\n this.prgstart = this.romarr[2] + (this.romarr[3]<<8) + 2; // point to after BASIC program\n console.log(\"RUN\", this.prgstart, hex(this.prgstart));\n }\n }\n // is program loaded into RAM?\n if (this.prgstart < 0x8000) {\n // advance BIOS a few frames\n this.exports.machine_exec(this.sys, 250000);\n // type in command (SYS 2061)\n var cmd = \"\\rSYS \"+this.prgstart;\n for (var i=0; i<cmd.length; i++) {\n var key = cmd.charCodeAt(i);\n this.exports.machine_exec(this.sys, 30000);\n this.exports.machine_key_down(this.sys, key);\n this.exports.machine_exec(this.sys, 30000);\n this.exports.machine_key_up(this.sys, key);\n this.exports.machine_exec(this.sys, 1); // chips/kbd.c has a \"sticky counter\"\n }\n // advance clock until program starts\n this.exports.machine_key_down(this.sys, 13);\n this.exports.machine_exec(this.sys, 1); // chips/kbd.c has a \"sticky counter\"\n for (var i=0; i<100000 && this.getPC() != this.prgstart; i++) {\n this.exports.machine_tick(this.sys);\n }\n // release RETURN key\n // (otherwise it stays stuck down and every keyboard read returns CR,\n // e.g. conio cgetc() always returning a bogus char - GH issue #203)\n this.exports.machine_key_up(this.sys, 13);\n this.exports.machine_exec(this.sys, 1); // chips/kbd.c has a \"sticky counter\"\n } else {\n // get out of reset\n this.exports.machine_exec(this.sys, 100);\n // wait until cartridge start\n // TODO: detect ROM cartridge\n var warmstart = this.romarr[0x4] + this.romarr[0x5]*256;\n for (var i=0; i<150000 && this.getPC() != warmstart; i++) {\n this.exports.machine_tick(this.sys);\n }\n }\n // TODO: shouldn't we return here @ start of frame?\n // and stop probing\n }\n }\n advanceFrame(trap: TrapCondition) : number {\n // TODO: does this sync with VSYNC?\n // TODO: ticks, not msec (machine_tick() has different rate then machine_exec())\n var scanline = this.getRasterY();\n var clocks = Math.floor((this.numTotalScanlines - scanline) * 19656 / this.numTotalScanlines);\n var probing = this.probe != null;\n if (probing) this.exports.machine_reset_probe_buffer();\n clocks = super.advanceFrameClock(trap, clocks);\n if (probing) this.copyProbeData();\n //console.log(clocks, this.getRasterY());\n return clocks;\n }\n getCPUState() {\n this.exports.machine_save_cpu_state(this.sys, this.cpustateptr);\n var s = this.cpustatearr;\n var pc = s[2] + (s[3]<<8);\n return {\n PC:pc,\n SP:s[9],\n A:s[6],\n X:s[7],\n Y:s[8],\n C:s[10] & 1,\n Z:s[10] & 2,\n I:s[10] & 4,\n D:s[10] & 8,\n V:s[10] & 64,\n N:s[10] & 128,\n o:this.readConst(pc),\n R:s[19] != 0x37, // bit 28 of PINS\n }\n }\n saveState() {\n this.exports.machine_save_state(this.sys, this.stateptr);\n let cia1 = this.getDebugStateOffset(1);\n let cia2 = this.getDebugStateOffset(2);\n let vic = this.getDebugStateOffset(3Line truncated
|
||||
"mappings": "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 truncated
|
||||
"sourcesContent": ["\nimport { AcceptsPaddleInput, Probeable } from \"../common/devices\";\nimport { dumpRAM, KeyFlags } from \"../common/emu\";\nimport { clamp, hex, lpad } from \"../common/util\";\n\n// https://www.c64-wiki.com/wiki/C64\n// http://www.zimmers.net/cbmpics/cbm/c64/vic-ii.txt\n// http://www.zimmers.net/cbmpics/cbm/c64/c64prg.txt\n// http://sta.c64.org/cbm64mem.html\n// http://hitmen.c02.at/temp/palstuff/\n\n//// WASM Machine\n\nimport { Machine } from \"../common/baseplatform\";\nimport { TrapCondition } from \"../common/devices\";\nimport { BaseWASMMachine } from \"../common/wasmplatform\";\n\nexport class C64_WASMMachine extends BaseWASMMachine \n implements Machine, Probeable, AcceptsPaddleInput {\n\n numTotalScanlines = 312;\n cpuCyclesPerLine = 63;\n\n prgstart : number;\n joymask0 = 0;\n joymask1 = 0;\n lightpen_x = 0;\n lightpen_y = 0;\n\n loadBIOS(srcArray: Uint8Array) {\n super.loadBIOS(srcArray);\n }\n reset() {\n super.reset();\n // clear keyboard\n for (var ch=0; ch<128; ch++) {\n this.exports.machine_key_up(this.sys, ch);\n }\n // load rom\n if (this.romptr && this.romlen) {\n this.exports.machine_load_rom(this.sys, this.romptr, this.romlen);\n this.prgstart = this.romarr[0] + (this.romarr[1]<<8); // get load address\n // look for BASIC program start\n if (this.prgstart == 0x801) {\n // decode SYS address from decimal?\n if (this.romarr[6] == 0x9e) {\n var addr = 0;\n for (var i=0; i<5; i++) {\n var ch = this.romarr[7+i];\n if (ch == 0x9b || ch == 0) break;\n addr = addr * 10 + (ch & 0xf);\n }\n this.prgstart = addr;\n console.log(\"SYS\", addr, hex(addr));\n } else {\n this.prgstart = this.romarr[2] + (this.romarr[3]<<8) + 2; // point to after BASIC program\n console.log(\"RUN\", this.prgstart, hex(this.prgstart));\n }\n }\n // is program loaded into RAM?\n if (this.prgstart < 0x8000) {\n // advance BIOS a few frames\n this.exports.machine_exec(this.sys, 250000);\n // type in command (SYS 2061)\n var cmd = \"\\rSYS \"+this.prgstart;\n for (var i=0; i<cmd.length; i++) {\n var key = cmd.charCodeAt(i);\n this.exports.machine_exec(this.sys, 30000);\n this.exports.machine_key_down(this.sys, key);\n this.exports.machine_exec(this.sys, 30000);\n this.exports.machine_key_up(this.sys, key);\n this.exports.machine_exec(this.sys, 1); // chips/kbd.c has a \"sticky counter\"\n }\n // advance clock until program starts\n this.exports.machine_key_down(this.sys, 13);\n this.exports.machine_exec(this.sys, 1); // chips/kbd.c has a \"sticky counter\"\n for (var i=0; i<100000 && this.getPC() != this.prgstart; i++) {\n this.exports.machine_tick(this.sys);\n }\n // release RETURN key\n // (otherwise it stays stuck down and every keyboard read returns CR,\n // e.g. conio cgetc() always returning a bogus char - GH issue #203)\n this.exports.machine_key_up(this.sys, 13);\n this.exports.machine_exec(this.sys, 1); // chips/kbd.c has a \"sticky counter\"\n } else {\n // get out of reset\n this.exports.machine_exec(this.sys, 100);\n // wait until cartridge start\n // TODO: detect ROM cartridge\n var warmstart = this.romarr[0x4] + this.romarr[0x5]*256;\n for (var i=0; i<150000 && this.getPC() != warmstart; i++) {\n this.exports.machine_tick(this.sys);\n }\n }\n // TODO: shouldn't we return here @ start of frame?\n // and stop probing\n }\n }\n advanceFrame(trap: TrapCondition) : number {\n // TODO: does this sync with VSYNC?\n // TODO: ticks, not msec (machine_tick() has different rate then machine_exec())\n var scanline = this.getRasterY();\n var clocks = Math.floor((this.numTotalScanlines - scanline) * 19656 / this.numTotalScanlines);\n var probing = this.probe != null;\n if (probing) this.exports.machine_reset_probe_buffer();\n clocks = super.advanceFrameClock(trap, clocks);\n if (probing) this.copyProbeData();\n //console.log(clocks, this.getRasterY());\n return clocks;\n }\n getCPUState() {\n this.exports.machine_save_cpu_state(this.sys, this.cpustateptr);\n var s = this.cpustatearr;\n var pc = s[2] + (s[3]<<8);\n return {\n PC:pc,\n SP:s[9],\n A:s[6],\n X:s[7],\n Y:s[8],\n C:s[10] & 1,\n Z:s[10] & 2,\n I:s[10] & 4,\n D:s[10] & 8,\n V:s[10] & 64,\n N:s[10] & 128,\n o:this.readConst(pc),\n R:s[19] != 0x37, // bit 28 of PINS\n }\n }\n saveState() {\n this.exports.machine_save_state(this.sys, this.stateptr);\n let cia1 = this.getDebugStateOffset(1);\n let cia2 = this.getDebugStateOffset(2);\n let vic = this.getDebugStateOffset(3Line truncated
|
||||
"mappings": "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 truncated
|
||||
"names": ["C64_WASMMachine", "BaseWASMMachine", "srcArray", "ch", "addr", "i", "hex", "cmd", "key", "warmstart", "trap", "scanline", "clocks", "probing", "s", "pc", "cia1", "cia2", "vic", "sid", "ramofs", "pla", "state", "code", "flags", "mask", "mask2", "index", "p", "category", "iomapped", "port", "m", "vicbank", "charmem", "screen", "isbitmap", "ischar", "rasterX", "rasterY", "lpad", "dumpRAM", "controller", "value", "x1", "y1", "x2", "y2", "x", "clamp", "y", "C64_PRESETS", "C64_MEMORY_MAP", "C64WASMPlatform", "Base6502MachinePlatform", "C64_WASMMachine", "a", "rom", "C64MAMEPlatform", "BaseMAME6502Platform", "getToolForFilename_6502", "getOpcodeMetadata_6502", "title", "data", "_self", "result", "PLATFORMS"]
|
||||
}
|
||||
@@ -1,21 +1,21 @@
|
||||
import{a as Qu,b as $u,c as mb,d as Ob,e as gb,f as Xl,g as Ir,i as Dl,j as Il,k as Ts,l as HQ}from"./chunk-22ZJCPEG.js";import{a as GQ}from"./chunk-T6VURU5O.js";import{a as Zl}from"./chunk-A7SWO6EA.js";import{a as pb,b as bb,c as KQ}from"./chunk-PEELNZF2.js";import{D as Pu,K as ku,t as ub,u as fb}from"./chunk-2XSLQJUY.js";import{A as Sr,E as vr,F as Su,G as Qs,I as $s,J as Ml,K as vu,T as wu,V as hb,a as on,b as Xo,ba as Ll,d as ft,e as Do,f as $t,g as be,h as yu,i as ab,k as lb,m as Al,n as Rl,o as El,p as _i,q as cb,t as ks,w as db,x as xu,y as Io,z as Tt}from"./chunk-TYDI7JZQ.js";import{a as tt,b as Ti,c as Zo,d as ob,e as bu}from"./chunk-VSC4MAII.js";var _u=ob((yb,Tu)=>{(function(r){if(typeof yb=="object"&&typeof Tu!="undefined")Tu.exports=r();else if(typeof define=="function"&&define.amd)define([],r);else{var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e=this,e.localforage=r()}})(function(){var r,e,t;return(function n(i,s,o){function a(d,h){if(!s[d]){if(!i[d]){var u=typeof Zo=="function"&&Zo;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 p=s[d]={exports:{}};i[d][0].call(p.exports,function(O){var x=i[d][1][O];return a(x||O)},p,p.exports,n,i,s,o)}return s[d].exports}for(var l=typeof Zo=="function"&&Zo,c=0;c<o.length;c++)a(o[c]);return a})({1:[function(n,i,s){(function(o){"use strict";var a=o.MutationObserver||o.WebKitMutationObserver,l;if(a){var c=0,d=new a(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 w=o.document.createElement("script");w.onreadystatechange=function(){O(),w.onreadystatechange=null,w.parentNode.removeChild(w),w=null},o.document.documentElement.appendChild(w)}:l=function(){setTimeout(O,0)};var f,p=[];function O(){f=!0;for(var w,E,A=p.length;A;){for(E=p,p=[],w=-1;++w<A;)E[w]();A=p.length}f=!1}i.exports=x;function x(w){p.push(w)===1&&!f&&l()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],2:[function(n,i,s){"use strict";var o=n(1);function a(){}var l={},c=["REJECTED"],d=["FULFILLED"],h=["PENDING"];i.exports=u;function u(k){if(typeof k!="function")throw new TypeError("resolver must be a function");this.state=h,this.queue=[],this.outcome=void 0,k!==a&&x(this,k)}u.prototype.catch=function(k){return this.then(null,k)},u.prototype.then=function(k,R){if(typeof k!="function"&&this.state===d||typeof R!="function"&&this.state===c)return this;var Z=new this.constructor(a);if(this.state!==h){var U=this.state===d?k:R;p(Z,U,this.outcome)}else this.queue.push(new f(Z,k,R));return Z};function f(k,R,Z){this.promise=k,typeof R=="function"&&(this.onFulfilled=R,this.callFulfilled=this.otherCallFulfilled),typeof Z=="function"&&(this.onRejected=Z,this.callRejected=this.otherCallRejected)}f.prototype.callFulfilled=function(k){l.resolve(this.promise,k)},f.prototype.otherCallFulfilled=function(k){p(this.promise,this.onFulfilled,k)},f.prototype.callRejected=function(k){l.reject(this.promise,k)},f.prototype.otherCallRejected=function(k){p(this.promise,this.onRejected,k)};function p(k,R,Z){o(function(){var U;try{U=R(Z)}catch(ie){return l.reject(k,ie)}U===k?l.reject(k,new TypeError("Cannot resolve promise with itself")):l.resolve(k,U)})}l.resolve=function(k,R){var Z=w(O,R);if(Z.status==="error")return l.reject(k,Z.value);var U=Z.value;if(U)x(k,U);else{k.state=d,k.outcome=R;for(var ie=-1,se=k.queue.length;++ie<se;)k.queue[ie].callFulfilled(R)}return k},l.reject=function(k,R){k.state=c,k.outcome=R;for(var Z=-1,U=k.queue.length;++Z<U;)k.queue[Z].callRejected(R);return k};function O(k){var R=k&&k.then;if(k&&(typeof k=="object"||typeof k=="function")&&typeof R=="function")return function(){R.apply(k,arguments)}}function x(k,R){var Z=!1;function U(fe){Z||(Z=!0,l.reject(k,fe))}function ie(fe){Z||(Z=!0,l.resolve(k,fe))}function se(){R(ie,U)}var te=w(se);te.status==="error"&&U(te.value)}function w(k,R){var Z={};try{Z.value=k(R),Z.status="success"}catch(U){Z.status="error",Z.value=U}return Z}u.resolve=E;function E(k){return k instanceof this?k:l.resolve(new this(a),k)}u.reject=A;function A(k){var R=new this(a);return l.reject(R,k)}u.all=X;function X(k){var R=this;if(Object.prototype.toString.call(k)!=="[object Array]")return this.reject(new TypeError("must be an array"));var Z=k.length,U=!1;if(!Z)return this.resolve([]);for(var ie=new Array(Z),se=0,te=-1,fe=new this(a);++te<Z;)pe(k[te],te);return fe;function pe(we,D){R.resolve(we).then(oe,function(G){U||(U=!0,l.reject(fe,G))});function oe(G){ie[D]=G,++se===Z&&!U&&(U=!0,l.resolve(fe,ie))}}}u.race=T;function T(k){var R=this;if(Object.prototype.toString.call(k)!=="[object Array]")Line truncated
|
||||
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function lZ(r,e){return sZ(r)||oZ(r,e)||cZ(r,e)||aZ()}function cZ(r,e){if(r){if(typeof r=="string")return Dk(r,e);var t={}.toString.call(r).slice(8,-1);return t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set"?Array.from(r):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Dk(r,e):void 0}}var Jk=Object.entries,Ik=Object.setPrototypeOf,dZ=Object.isFrozen,hZ=Object.getPrototypeOf,uZ=Object.getOwnPropertyDescriptor,Ot=Object.freeze,bt=Object.seal,yo=Object.create,eQ=typeof Reflect!="undefined"&&Reflect,Xg=eQ.apply,Dg=eQ.construct;Ot||(Ot=function(e){return e});bt||(bt=function(e){return e});Xg||(Xg=function(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];return e.apply(t,i)});Dg||(Dg=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return new e(...n)});var ls=ut(Array.prototype.forEach),fZ=ut(Array.prototype.lastIndexOf),zk=ut(Array.prototype.pop),tl=ut(Array.prototype.push),pZ=ut(Array.prototype.splice),xo=Array.isArray,il=ut(String.prototype.toLowerCase),Ag=ut(String.prototype.toString),Wk=ut(String.prototype.match),rl=ut(String.prototype.replace),Vk=ut(String.prototype.indexOf),mZ=ut(String.prototype.trim),OZ=ut(Number.prototype.toString),gZ=ut(Boolean.prototype.toString),Yk=typeof BigInt=="undefined"?null:ut(BigInt.prototype.toString),Bk=typeof Symbol=="undefined"?null:ut(Symbol.prototype.toString),ir=ut(Object.prototype.hasOwnProperty),nl=ut(Object.prototype.toString),Mt=ut(RegExp.prototype.test),as=bZ(TypeError);function ut(r){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return Xg(r,e,n)}}function bZ(r){return function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return Dg(r,t)}}function Ee(r,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:il;if(Ik&&Ik(r,null),!xo(e))return r;let n=e.length;for(;n--;){let i=e[n];if(typeof i=="string"){let s=t(i);s!==i&&(dZ(e)||(e[n]=s),i=s)}r[i]=!0}return r}function yZ(r){for(let e=0;e<r.length;e++)ir(r,e)||(r[e]=null);return r}function mr(r){let e=yo(null);for(let n of Jk(r)){var t=lZ(n,2);let i=t[0],s=t[1];ir(r,i)&&(xo(s)?e[i]=yZ(s):s&&typeof s=="object"&&s.constructor===Object?e[i]=mr(s):e[i]=s)}return e}function xZ(r){switch(typeof r){case"string":return r;case"number":return OZ(r);case"boolean":return gZ(r);case"bigint":return Yk?Yk(r):"0";case"symbol":return Bk?Bk(r):"Symbol()";case"undefined":return nl(r);case"function":case"object":{if(r===null)return nl(r);let e=r,t=Lr(e,"toString");if(typeof t=="function"){let n=t(e);return typeof n=="string"?n:nl(n)}return nl(r)}default:return nl(r)}}function Lr(r,e){for(;r!==null;){let n=uZ(r,e);if(n){if(n.get)return ut(n.get);if(typeof n.value=="function")return ut(n.value)}r=hZ(r)}function t(){return null}return t}function SZ(r){try{return Mt(r,""),!0}catch(e){return!1}}var jk=Ot(["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"]),Rg=Ot(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Eg=Ot(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),vZ=Ot(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-gly
Line truncated
|
||||
`+et),Dr&&(et=y(et)),ie&&ys?D(et):et},e.setConfig=function(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Lo(j),gs=!0,Si=Ve,vi=Ye},e.clearConfig=function(){Yn=null,gs=!1,Si=null,vi=null,ie=te,se=""},e.isValidAttribute=function(j,b,C){Yn||Lo({});let z=Je(j),ne=Je(b);return Me(z,ne,C)},e.addHook=function(j,b){typeof b=="function"&&ir(Ae,j)&&tl(Ae[j],b)},e.removeHook=function(j,b){if(ir(Ae,j)){if(b!==void 0){let C=fZ(Ae[j],b);return C===-1?void 0:pZ(Ae[j],C,1)[0]}return zk(Ae[j])}},e.removeHooks=function(j){ir(Ae,j)&&(Ae[j]=[])},e.removeAllHooks=function(){Ae=Kk()},e}var IZ=rQ();nQ.exports=IZ});var Hg=bu(_u());var De=[/^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi,/^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm],je=[/^\s*([;]|[/][/])#link\s+"(.+?)"/gm],zo=[/^\s*(`include|[.]include)\s+"(.+?)"/gmi,/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi,{re:/^\s*([.]arch)\s+(\w+)/gmi,suffix:".json"},/\$readmem[bh]\("(.+?)"/gmi],JQ=[{re:/^\s*[.#%]?\s*include\s+<(.+?)>/gmi,system:!0}];function vb(r){let e=r&&Dt(r);return e&&e.includeDirs&&e.includeDirs.length?JQ:[]}var xb=[/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm],e$=[/^[!]src\s+"(.+?)"/gmi],t$=[{re:/^\s*import\s*"(.+?)";/gmi,suffix:".wiz"},/^\s*embed\s*"(.+?)";/gmi],r$=[/^\s*(import)\s*"(.+?)"/gmi],n$=[/^\s*%%\s*#include\s+"(.+?)"/gm],i$={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"}},Sb={apple2:{preloadFS:"65-apple2"},c64:{preloadFS:"65-c64"},vic20:{preloadFS:"65-vic20"},nes:{preloadFS:"65-nes"},atari8:{preloadFS:"65-atari8"},vector:{preloadFS:"65-none"},atari7800:{preloadFS:"65-none"},devel:{preloadFS:"65-none"},vcs:{preloadFS:"65-atari2600"},pce:{preloadFS:"65-pce"},exidy:{preloadFS:"65-none"}},_s={dasm:{id:"dasm",name:"DASM",kind:"assembler",arch:"6502",extensions:[".dasm"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/dasm-assembler/dasm/refs/tags/v2.20.17/docs/dasm.txt",wasmModule:"dasm-wasisdk",version:"2.20.17",includePatterns:De,linkPatterns:je},acme:{id:"acme",name:"ACME",kind:"assembler",arch:"6502",extensions:[".acme"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/sehugg/acme/main/docs/QuickRef.txt",wasmModule:"acme",version:"0.97.1",includePatterns:[...De,...e$],linkPatterns:je},xa:{id:"xa",name:"XA",kind:"assembler",arch:"6502",extensions:[".xa"],editorStyle:"6502",helpURL:"https://www.floodgap.com/retrotech/xa/",wasmModule:"xa",version:"2.4.1",includePatterns:De,linkPatterns:je},nesasm:{id:"nesasm",name:"NESASM",kind:"assembler",arch:"6502",extensions:[".nesasm"],editorStyle:"6502",helpURL:"https://github.com/camsaul/nesasm",wasmModule:"nesasm",version:"3.1",includePatterns:De,linkPatterns:je},merlin32:{id:"merlin32",name:"Merlin 32",kind:"assembler",arch:"6502",extensions:[".lnk"],editorStyle:"6502",helpURL:"https://github.com/apple2accumulator/merlin32",wasmModule:"merlin32",version:"1.1.10",includePatterns:[...De,...xb],linkPatterns:je},cc65:{id:"cc65",name:"cc65",kind:"compiler",arch:"6502",extensions:[".c",".h"],includeDirs:["/include","/asminc"],editorStyle:"text/x-csrc",helpURL:"https://cc65.github.io/doc/cc65.html",wasmModule:"cc65",version:"2.19",defineFlag:"-D",defineInline:!0,platforms:Sb,includePatterns:De,linkPatterns:je},ca65:{id:"ca65",name:"ca65",kind:"assembler",arch:"6502",extensions:[".s",".ca65",".inc"],includeDirs:["/include","/asminc"],editorStyle:"6502",helpURL:"https://cc65.github.io/doc/ca65.html",wasmModule:"ca65",version:"2.19",defineFlag:"-D",defineInline:!1,platforms:Sb,includePatterns:De,linkPatterns:je},ld65:{id:"ld65",name:"ld65",kind:"linker",arch:"6502",extensions:[],wasmModule:"ld65",version:"2.19",linkSymbolFlag:"-D",linkSymbolInline:!1},sdcc:{id:"sdcc",name:"SDCC",kind:"compiler",arch:"z80",extensions:[".c",".h"],includeDirs:["/include"],editorStyle:"text/x-csrc",helpURL:"http://sdcc.sourceforge.net/doc/sdccman.pdf",wasmModule:"sdcc",version:"3.6.5",defineFlag:"-D",defineInline:!0,platforms:{default:{preloadFS:"sdcc"}},includePatterns:De,linkPatterns:je},sdasz80:{id:"sdasz80",name:"sdasz80",kind:"assembler",arch:"z80",extensions:[".s"],includeDirs:["/include"],editorStyle:"z80",wasmModule:"sdasz80",version:"02.00",platforms:{default:{preloadFS:"sdcc"}},includePatterns:De,linkPatterns:je},sdasgb:{id:"sdasgb",name:"sdasgb",kind:"assembler",arch:"gbz80",extensions:[".sgb"],includeDirs:["/include"],editorStyle:"z80",wasmModule:"sdasgb",platforms:{default:{preloadFS:"sdcc"}},includePatterns:De,linkPatterns:je},sdldz80:{id:"sdldz80",name:"sdldz80",kind:"linker",arch:"z80",extensions:[],wasmModule:"sdldz80",version:"03.00",linkSymbolFlag:"-g",linkSymbolInline:!1},sccz80:{id:"sccz80",name:"sccz80",kind:"compiler",arch:"z80",extensions:[".scc"],platforms:{default:{preloadFS:"sccz80"}},noWorkerBuild:!0},naken:{Line truncated
|
||||
import{a as $u,b as Tu,c as mb,d as Ob,e as gb,f as Xl,g as Ir,i as Dl,j as Il,k as Ts,l as HQ}from"./chunk-22ZJCPEG.js";import{a as GQ}from"./chunk-T6VURU5O.js";import{a as Zl}from"./chunk-A7SWO6EA.js";import{a as pb,b as bb,c as KQ}from"./chunk-SIGRU5UF.js";import{D as ku,K as Qu,t as ub,u as fb}from"./chunk-2XSLQJUY.js";import{A as Sr,E as vr,F as vu,G as Qs,I as $s,J as Ml,K as wu,T as Pu,V as hb,a as on,b as Xo,ba as Ll,d as ft,e as Do,f as $t,g as be,h as xu,i as ab,k as lb,m as Al,n as Rl,o as El,p as _i,q as cb,t as ks,w as db,x as Su,y as Io,z as Tt}from"./chunk-TYDI7JZQ.js";import{a as tt,b as Ti,c as Zo,d as ob,e as yu}from"./chunk-VSC4MAII.js";var Cu=ob((yb,_u)=>{(function(r){if(typeof yb=="object"&&typeof _u!="undefined")_u.exports=r();else if(typeof define=="function"&&define.amd)define([],r);else{var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e=this,e.localforage=r()}})(function(){var r,e,t;return(function n(i,s,o){function a(d,h){if(!s[d]){if(!i[d]){var u=typeof Zo=="function"&&Zo;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 p=s[d]={exports:{}};i[d][0].call(p.exports,function(O){var x=i[d][1][O];return a(x||O)},p,p.exports,n,i,s,o)}return s[d].exports}for(var l=typeof Zo=="function"&&Zo,c=0;c<o.length;c++)a(o[c]);return a})({1:[function(n,i,s){(function(o){"use strict";var a=o.MutationObserver||o.WebKitMutationObserver,l;if(a){var c=0,d=new a(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 w=o.document.createElement("script");w.onreadystatechange=function(){O(),w.onreadystatechange=null,w.parentNode.removeChild(w),w=null},o.document.documentElement.appendChild(w)}:l=function(){setTimeout(O,0)};var f,p=[];function O(){f=!0;for(var w,E,A=p.length;A;){for(E=p,p=[],w=-1;++w<A;)E[w]();A=p.length}f=!1}i.exports=x;function x(w){p.push(w)===1&&!f&&l()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],2:[function(n,i,s){"use strict";var o=n(1);function a(){}var l={},c=["REJECTED"],d=["FULFILLED"],h=["PENDING"];i.exports=u;function u(k){if(typeof k!="function")throw new TypeError("resolver must be a function");this.state=h,this.queue=[],this.outcome=void 0,k!==a&&x(this,k)}u.prototype.catch=function(k){return this.then(null,k)},u.prototype.then=function(k,R){if(typeof k!="function"&&this.state===d||typeof R!="function"&&this.state===c)return this;var Z=new this.constructor(a);if(this.state!==h){var U=this.state===d?k:R;p(Z,U,this.outcome)}else this.queue.push(new f(Z,k,R));return Z};function f(k,R,Z){this.promise=k,typeof R=="function"&&(this.onFulfilled=R,this.callFulfilled=this.otherCallFulfilled),typeof Z=="function"&&(this.onRejected=Z,this.callRejected=this.otherCallRejected)}f.prototype.callFulfilled=function(k){l.resolve(this.promise,k)},f.prototype.otherCallFulfilled=function(k){p(this.promise,this.onFulfilled,k)},f.prototype.callRejected=function(k){l.reject(this.promise,k)},f.prototype.otherCallRejected=function(k){p(this.promise,this.onRejected,k)};function p(k,R,Z){o(function(){var U;try{U=R(Z)}catch(ie){return l.reject(k,ie)}U===k?l.reject(k,new TypeError("Cannot resolve promise with itself")):l.resolve(k,U)})}l.resolve=function(k,R){var Z=w(O,R);if(Z.status==="error")return l.reject(k,Z.value);var U=Z.value;if(U)x(k,U);else{k.state=d,k.outcome=R;for(var ie=-1,se=k.queue.length;++ie<se;)k.queue[ie].callFulfilled(R)}return k},l.reject=function(k,R){k.state=c,k.outcome=R;for(var Z=-1,U=k.queue.length;++Z<U;)k.queue[Z].callRejected(R);return k};function O(k){var R=k&&k.then;if(k&&(typeof k=="object"||typeof k=="function")&&typeof R=="function")return function(){R.apply(k,arguments)}}function x(k,R){var Z=!1;function U(fe){Z||(Z=!0,l.reject(k,fe))}function ie(fe){Z||(Z=!0,l.resolve(k,fe))}function se(){R(ie,U)}var te=w(se);te.status==="error"&&U(te.value)}function w(k,R){var Z={};try{Z.value=k(R),Z.status="success"}catch(U){Z.status="error",Z.value=U}return Z}u.resolve=E;function E(k){return k instanceof this?k:l.resolve(new this(a),k)}u.reject=A;function A(k){var R=new this(a);return l.reject(R,k)}u.all=X;function X(k){var R=this;if(Object.prototype.toString.call(k)!=="[object Array]")return this.reject(new TypeError("must be an array"));var Z=k.length,U=!1;if(!Z)return this.resolve([]);for(var ie=new Array(Z),se=0,te=-1,fe=new this(a);++te<Z;)pe(k[te],te);return fe;function pe(we,D){R.resolve(we).then(oe,function(G){U||(U=!0,l.reject(fe,G))});function oe(G){ie[D]=G,++se===Z&&!U&&(U=!0,l.resolve(fe,ie))}}}u.race=T;function T(k){var R=this;if(Object.prototype.toString.call(k)!=="[object Array]")Line truncated
|
||||
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function l5(r,e){return s5(r)||o5(r,e)||c5(r,e)||a5()}function c5(r,e){if(r){if(typeof r=="string")return Dk(r,e);var t={}.toString.call(r).slice(8,-1);return t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set"?Array.from(r):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Dk(r,e):void 0}}var Jk=Object.entries,Ik=Object.setPrototypeOf,d5=Object.isFrozen,h5=Object.getPrototypeOf,u5=Object.getOwnPropertyDescriptor,Ot=Object.freeze,yt=Object.seal,yo=Object.create,eQ=typeof Reflect!="undefined"&&Reflect,Dg=eQ.apply,Ig=eQ.construct;Ot||(Ot=function(e){return e});yt||(yt=function(e){return e});Dg||(Dg=function(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];return e.apply(t,i)});Ig||(Ig=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return new e(...n)});var ls=ut(Array.prototype.forEach),f5=ut(Array.prototype.lastIndexOf),zk=ut(Array.prototype.pop),tl=ut(Array.prototype.push),p5=ut(Array.prototype.splice),xo=Array.isArray,il=ut(String.prototype.toLowerCase),Rg=ut(String.prototype.toString),Wk=ut(String.prototype.match),rl=ut(String.prototype.replace),Vk=ut(String.prototype.indexOf),m5=ut(String.prototype.trim),O5=ut(Number.prototype.toString),g5=ut(Boolean.prototype.toString),Yk=typeof BigInt=="undefined"?null:ut(BigInt.prototype.toString),Bk=typeof Symbol=="undefined"?null:ut(Symbol.prototype.toString),ir=ut(Object.prototype.hasOwnProperty),nl=ut(Object.prototype.toString),Mt=ut(RegExp.prototype.test),as=b5(TypeError);function ut(r){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return Dg(r,e,n)}}function b5(r){return function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return Ig(r,t)}}function Ee(r,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:il;if(Ik&&Ik(r,null),!xo(e))return r;let n=e.length;for(;n--;){let i=e[n];if(typeof i=="string"){let s=t(i);s!==i&&(d5(e)||(e[n]=s),i=s)}r[i]=!0}return r}function y5(r){for(let e=0;e<r.length;e++)ir(r,e)||(r[e]=null);return r}function mr(r){let e=yo(null);for(let n of Jk(r)){var t=l5(n,2);let i=t[0],s=t[1];ir(r,i)&&(xo(s)?e[i]=y5(s):s&&typeof s=="object"&&s.constructor===Object?e[i]=mr(s):e[i]=s)}return e}function x5(r){switch(typeof r){case"string":return r;case"number":return O5(r);case"boolean":return g5(r);case"bigint":return Yk?Yk(r):"0";case"symbol":return Bk?Bk(r):"Symbol()";case"undefined":return nl(r);case"function":case"object":{if(r===null)return nl(r);let e=r,t=Lr(e,"toString");if(typeof t=="function"){let n=t(e);return typeof n=="string"?n:nl(n)}return nl(r)}default:return nl(r)}}function Lr(r,e){for(;r!==null;){let n=u5(r,e);if(n){if(n.get)return ut(n.get);if(typeof n.value=="function")return ut(n.value)}r=h5(r)}function t(){return null}return t}function S5(r){try{return Mt(r,""),!0}catch(e){return!1}}var jk=Ot(["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"]),Eg=Ot(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Mg=Ot(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),v5=Ot(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-gly
Line truncated
|
||||
`+et),Dr&&(et=y(et)),ie&&ys?D(et):et},e.setConfig=function(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Lo(j),gs=!0,Si=Ve,vi=Ye},e.clearConfig=function(){Yn=null,gs=!1,Si=null,vi=null,ie=te,se=""},e.isValidAttribute=function(j,b,C){Yn||Lo({});let z=Je(j),ne=Je(b);return Me(z,ne,C)},e.addHook=function(j,b){typeof b=="function"&&ir(Ae,j)&&tl(Ae[j],b)},e.removeHook=function(j,b){if(ir(Ae,j)){if(b!==void 0){let C=f5(Ae[j],b);return C===-1?void 0:p5(Ae[j],C,1)[0]}return zk(Ae[j])}},e.removeHooks=function(j){ir(Ae,j)&&(Ae[j]=[])},e.removeAllHooks=function(){Ae=Kk()},e}var I5=rQ();nQ.exports=I5});var Kg=yu(Cu());var De=[/^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi,/^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm],je=[/^\s*([;]|[/][/])#link\s+"(.+?)"/gm],zo=[/^\s*(`include|[.]include)\s+"(.+?)"/gmi,/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi,{re:/^\s*([.]arch)\s+(\w+)/gmi,suffix:".json"},/\$readmem[bh]\("(.+?)"/gmi],JQ=[{re:/^\s*[.#%]?\s*include\s+<(.+?)>/gmi,system:!0}];function vb(r){let e=r&&Dt(r);return e&&e.includeDirs&&e.includeDirs.length?JQ:[]}var xb=[/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm],e$=[/^[!]src\s+"(.+?)"/gmi],t$=[{re:/^\s*import\s*"(.+?)";/gmi,suffix:".wiz"},/^\s*embed\s*"(.+?)";/gmi],r$=[/^\s*(import)\s*"(.+?)"/gmi],n$=[/^\s*%%\s*#include\s+"(.+?)"/gm],i$={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"}},Sb={apple2:{preloadFS:"65-apple2"},c64:{preloadFS:"65-c64"},vic20:{preloadFS:"65-vic20"},nes:{preloadFS:"65-nes"},atari8:{preloadFS:"65-atari8"},vector:{preloadFS:"65-none"},atari7800:{preloadFS:"65-none"},devel:{preloadFS:"65-none"},vcs:{preloadFS:"65-atari2600"},pce:{preloadFS:"65-pce"},exidy:{preloadFS:"65-none"}},_s={dasm:{id:"dasm",name:"DASM",kind:"assembler",arch:"6502",extensions:[".dasm"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/dasm-assembler/dasm/refs/tags/v2.20.17/docs/dasm.txt",wasmModule:"dasm-wasisdk",version:"2.20.17",includePatterns:De,linkPatterns:je},acme:{id:"acme",name:"ACME",kind:"assembler",arch:"6502",extensions:[".acme"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/sehugg/acme/main/docs/QuickRef.txt",wasmModule:"acme",version:"0.97.1",includePatterns:[...De,...e$],linkPatterns:je},xa:{id:"xa",name:"XA",kind:"assembler",arch:"6502",extensions:[".xa"],editorStyle:"6502",helpURL:"https://www.floodgap.com/retrotech/xa/",wasmModule:"xa",version:"2.4.1",includePatterns:De,linkPatterns:je},nesasm:{id:"nesasm",name:"NESASM",kind:"assembler",arch:"6502",extensions:[".nesasm"],editorStyle:"6502",helpURL:"https://github.com/camsaul/nesasm",wasmModule:"nesasm",version:"3.1",includePatterns:De,linkPatterns:je},merlin32:{id:"merlin32",name:"Merlin 32",kind:"assembler",arch:"6502",extensions:[".lnk"],editorStyle:"6502",helpURL:"https://github.com/apple2accumulator/merlin32",wasmModule:"merlin32",version:"1.1.10",includePatterns:[...De,...xb],linkPatterns:je},cc65:{id:"cc65",name:"cc65",kind:"compiler",arch:"6502",extensions:[".c",".h"],includeDirs:["/include","/asminc"],editorStyle:"text/x-csrc",helpURL:"https://cc65.github.io/doc/cc65.html",wasmModule:"cc65",version:"2.19",defineFlag:"-D",defineInline:!0,platforms:Sb,includePatterns:De,linkPatterns:je},ca65:{id:"ca65",name:"ca65",kind:"assembler",arch:"6502",extensions:[".s",".ca65",".inc"],includeDirs:["/include","/asminc"],editorStyle:"6502",helpURL:"https://cc65.github.io/doc/ca65.html",wasmModule:"ca65",version:"2.19",defineFlag:"-D",defineInline:!1,platforms:Sb,includePatterns:De,linkPatterns:je},ld65:{id:"ld65",name:"ld65",kind:"linker",arch:"6502",extensions:[],wasmModule:"ld65",version:"2.19",linkSymbolFlag:"-D",linkSymbolInline:!1},sdcc:{id:"sdcc",name:"SDCC",kind:"compiler",arch:"z80",extensions:[".c",".h"],includeDirs:["/include"],editorStyle:"text/x-csrc",helpURL:"http://sdcc.sourceforge.net/doc/sdccman.pdf",wasmModule:"sdcc",version:"3.6.5",defineFlag:"-D",defineInline:!0,platforms:{default:{preloadFS:"sdcc"}},includePatterns:De,linkPatterns:je},sdasz80:{id:"sdasz80",name:"sdasz80",kind:"assembler",arch:"z80",extensions:[".s"],includeDirs:["/include"],editorStyle:"z80",wasmModule:"sdasz80",version:"02.00",platforms:{default:{preloadFS:"sdcc"}},includePatterns:De,linkPatterns:je},sdasgb:{id:"sdasgb",name:"sdasgb",kind:"assembler",arch:"gbz80",extensions:[".sgb"],includeDirs:["/include"],editorStyle:"z80",wasmModule:"sdasgb",platforms:{default:{preloadFS:"sdcc"}},includePatterns:De,linkPatterns:je},sdldz80:{id:"sdldz80",name:"sdldz80",kind:"linker",arch:"z80",extensions:[],wasmModule:"sdldz80",version:"03.00",linkSymbolFlag:"-g",linkSymbolInline:!1},sccz80:{id:"sccz80",name:"sccz80",kind:"compiler",arch:"z80",extensions:[".scc"],platforms:{default:{preloadFS:"sccz80"}},noWorkerBuild:!0},naken:{Line truncated
|
||||
`){[e,t]=Es(this,e,t);let i="";for(let s=0,o=0;s<=t&&o<this.text.length;o++){let a=this.text[o],l=s+a.length;s>e&&o&&(i+=n),e<l&&t>s&&(i+=a.slice(Math.max(0,e-s),t-s)),s=l+1}return i}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let n=[],i=-1;for(let s of e)n.push(s),i+=s.length+1,n.length==32&&(t.push(new r(n,i)),n=[],i=-1);return i>-1&&t.push(new r(n,i)),t}},Cs=class r extends ke{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let n of e)this.lines+=n.lines}lineInner(e,t,n,i){for(let s=0;;s++){let o=this.children[s],a=i+o.length,l=n+o.lines-1;if((t?l:a)>=e)return o.lineInner(e,t,n,i);i=a+1,n=l+1}}decompose(e,t,n,i){for(let s=0,o=0;o<=t&&s<this.children.length;s++){let a=this.children[s],l=o+a.length;if(e<=l&&t>=o){let c=i&((o<=e?1:0)|(l>=t?2:0));o>=e&&l<=t&&!c?n.push(a):a.decompose(e-o,t-o,n,c)}o=l+1}}replace(e,t,n){if([e,t]=Es(this,e,t),n.lines<this.lines)for(let i=0,s=0;i<this.children.length;i++){let o=this.children[i],a=s+o.length;if(e>=s&&t<=a){let l=o.replace(e-s,t-s,n),c=this.lines-o.lines+l.lines;if(l.lines<c>>4&&l.lines>c>>6){let d=this.children.slice();return d[i]=l,new r(d,this.length-(t-e)+n.length)}return super.replace(s,a,l)}s=a+1}return super.replace(e,t,n)}sliceString(e,t=this.length,n=`
|
||||
`){[e,t]=Es(this,e,t);let i="";for(let s=0,o=0;s<this.children.length&&o<=t;s++){let a=this.children[s],l=o+a.length;o>e&&s&&(i+=n),e<l&&t>o&&(i+=a.sliceString(e-o,t-o,n)),o=l+1}return i}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof r))return 0;let n=0,[i,s,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;i+=t,s+=t){if(i==o||s==a)return n;let l=this.children[i],c=e.children[s];if(l!=c)return n+l.scanIdentical(c,t);n+=l.length+1}}static from(e,t=e.reduce((n,i)=>n+i.length+1,-1)){let n=0;for(let f of e)n+=f.lines;if(n<32){let f=[];for(let p of e)p.flatten(f);return new or(f,t)}let i=Math.max(32,n>>5),s=i<<1,o=i>>1,a=[],l=0,c=-1,d=[];function h(f){let p;if(f.lines>s&&f instanceof r)for(let O of f.children)h(O);else f.lines>o&&(l>o||!l)?(u(),a.push(f)):f instanceof or&&l&&(p=d[d.length-1])instanceof or&&f.lines+p.lines<=32?(l+=f.lines,c+=f.length+1,d[d.length-1]=new or(p.text.concat(f.text),p.length+1+f.length)):(l+f.lines>i&&u(),l+=f.lines,c+=f.length+1,d.push(f))}function u(){l!=0&&(a.push(d.length==1?d[0]:r.from(d,c)),c=-1,l=d.length=0)}for(let f of e)h(f);return u(),a.length==1?a[0]:new r(a,t)}};ke.empty=new or([""],0);function h$(r){let e=-1;for(let t of r)e+=t.length+1;return e}function Nl(r,e,t=0,n=1e9){for(let i=0,s=0,o=!0;s<r.length&&i<=n;s++){let a=r[s],l=i+a.length;l>=t&&(l>n&&(a=a.slice(0,n-i)),i<t&&(a=a.slice(t-i)),o?(e[e.length-1]+=a,o=!1):e.push(a)),i=l+1}return e}function Ib(r,e,t){return Nl(r,[""],e,t)}var Ei=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 or?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,i=this.nodes[n],s=this.offsets[n],o=s>>1,a=i instanceof or?i.text.length:i.children.length;if(o==(t>0?a:0)){if(n==0)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=`
|
||||
`,this;e--}else if(i instanceof or){let l=i.text[o+(t<0?-1:0)];if(this.offsets[n]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=i.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof or?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)}},Ul=class{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new Ei(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:i}=this.cursor.next(e);return this.pos+=(i.length+e)*t,this.value=i.length<=n?i:t<0?i.slice(i.length-n):i.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},ql=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:i}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol!="undefined"&&(ke.prototype[Symbol.iterator]=function(){return this.iter()},Ei.prototype[Symbol.iterator]=Ul.prototype[Symbol.iterator]=ql.prototype[Symbol.iterator]=function(){return this});var Lu=class{constructor(e,t,n,i){this.from=e,this.to=t,this.number=n,this.text=i}get length(){return this.to-this.from}};function Es(r,e,t){return e=Math.max(0,Math.min(r.length,e)),[e,Math.max(e,Math.min(r.length,t))]}function it(r,e,t=!0,n=!0){return Lb(r,e,t,n)}function u$(r){return r>=56320&&r<57344}function f$(r){return r>=55296&&r<56320}function Yr(r,e){let t=r.charCodeAt(e);if(!f$(t)||e+1==r.length)return t;let n=r.charCodeAt(e+1);return u$(n)?(t-55296<<10)+(n-56320)+65536:t}function ec(r){return r<=65535?String.fromCharCode(r):(r-=65536,String.fromCharCode((r>>10)+55296,(r&1023)+56320))}function qn(r){return r<65536?1:2}var Zu=/\r\n?|\n/,pt=(function(r){return r[r.Simple=0]="Simple",r[r.TrackDel=1]="TrackDel",r[r.TrackBefore=2]="TrackBefore",r[r.TrackAfter=3]="TrackAfter",r})(pt||(pt={})),Sn=class r{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,i=0;t<this.sections.length;){let s=this.sections[t++],o=this.sections[t++];o<0?(e(n,i,s),i+=s):i+=o,n+=s}}iterChangedRanges(e,t=!1){Xu(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let n=this.sections[t++],i=this.sections[t++];i<0?e.push(n,i):e.push(i,n)}return new r(e)}composeDesc(e){return this.empty?e:e.empty?this:Bb(this,e)}mapDesc(e,t=!1){return e.empty?this:Du(this,e,t)}mapPos(e,t=-1,n=pt.Simple){let i=0,s=0;for(let o=0;o<this.sections.length;){let a=this.sections[o++],l=this.sections[o++],c=i+a;if(l<0){if(c>e)return s+(e-i);s+=a}else{if(n!=pt.Simple&&c>=e&&(n==pt.TrackDel&&i<e&&c>e||n==pt.TrackBefore&&i<e||n==pt.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!a)return e==i||t<0?s:s+l;s+=l}i=c}if(e>i)throw new RangeError(`Position ${e} is out of range for changeset of length ${i}`);return s}touchesRange(e,t=e){for(let n=0,i=0;n<this.sections.length&&i<=t;){let s=this.sections[n++],o=this.sections[n++],a=i+s;if(o>=0&&i<=t&&a>=e)return i<e&&a>t?"cover":!0;i=a}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let n=this.sections[t++],i=this.sections[t++];e+=(e?" ":"")+n+(i>=0?":"+i:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new r(e)}static create(e){return new r(e)}},It=class r extends Sn{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 Xu(this,(t,n,i,s,o)=>e=e.replace(i,i+(n-t),o),!1),e}mapDesc(e,t=!1){return Du(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let i=0,s=0;i<t.length;i+=2){let o=t[i],a=t[i+1];if(a>=0){t[i]=a,t[i+1]=o;let l=i>>1;for(;n.length<l;)n.push(ke.empty);n.push(o?e.slice(s,s+o):ke.empty)}s+=o}return new r(t,n)}compose(e){return this.empty?e:e.empty?this:Bb(this,e,!0)}map(e,t=!1){return e.empty?this:Du(this,e,t,!0)}iterChanges(e,t=!1){Xu(this,e,t)}get desc
Line truncated
|
||||
`}get readOnly(){return this.facet(Hb)}phrase(e,...t){for(let n of this.facet(r.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(n,i)=>{if(i=="$")return"$";let s=+(i||1);return!s||s>t.length?n:t[s-1]})),e}languageDataAt(e,t,n=-1){let i=[];for(let s of this.facet(Fb))for(let o of s(this,t,n))Object.prototype.hasOwnProperty.call(o,e)&&i.push(o[e]);return i}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return v$(t.length?t[0]:"")}wordAt(e){let{text:t,from:n,length:i}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-n,a=e-n;for(;o>0;){let l=it(t,o,!1);if(s(t.slice(l,o))!=Xe.Word)break;o=l}for(;a<i;){let l=it(t,a);if(s(t.slice(a,l))!=Xe.Word)break;a=l}return o==a?null:M.range(o+n,a+n)}};Pe.allowMultipleSelections=zu;Pe.tabSize=J.define({combine:r=>r.length?r[0]:4});Pe.lineSeparator=Nb;Pe.readOnly=Hb;Pe.phrases=J.define({compare(r,e){let t=Object.keys(r),n=Object.keys(e);return t.length==n.length&&t.every(i=>r[i]==e[i])}});Pe.languageData=Fb;Pe.changeFilter=Ub;Pe.transactionFilter=qb;Pe.transactionExtender=Gb;xt.reconfigure=ce.define();function ar(r,e,t={}){let n={};for(let i of r)for(let s of Object.keys(i)){let o=i[s],a=n[s];if(a===void 0)n[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))n[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let i in e)n[i]===void 0&&(n[i]=e[i]);return n}var wr=class{eq(e){return this==e}range(e,t=e){return Bo.create(e,t,this)}};wr.prototype.startSide=wr.prototype.endSide=0;wr.prototype.point=!1;wr.prototype.mapMode=pt.TrackDel;function Gu(r,e){return r==e||r.constructor==e.constructor&&r.eq(e)}var Bo=class r{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new r(e,t,n)}};function ju(r,e){return r.from-e.from||r.value.startSide-e.value.startSide}var Fu=class r{constructor(e,t,n,i){this.from=e,this.to=t,this.value=n,this.maxPoint=i}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,i=0){let s=n?this.to:this.from;for(let o=i,a=s.length;;){if(o==a)return o;let l=o+a>>1,c=s[l]-e||(n?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,n,i){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(n,1e9,!1,s);s<o;s++)if(i(this.from[s]+e,this.to[s]+e,this.value[s])===!1)return!1}map(e,t){let n=[],i=[],s=[],o=-1,a=-1;for(let l=0;l<this.value.length;l++){let c=this.value[l],d=this.from[l]+e,h=this.to[l]+e,u,f;if(d==h){let p=t.mapPos(d,c.startSide,c.mapMode);if(p==null||(u=f=p,c.startSide!=c.endSide&&(f=t.mapPos(d,c.endSide),f<u)))continue}else if(u=t.mapPos(d,c.startSide),f=t.mapPos(h,c.endSide),u>f||u==f&&c.startSide>0&&c.endSide<=0)continue;(f-u||c.endSide-c.startSide)<0||(o<0&&(o=u),c.point&&(a=Math.max(a,f-u)),n.push(c),i.push(u-o),s.push(f-o))}return{mapped:n.length?new r(i,s,n,a):null,pos:o}}},Oe=class r{constructor(e,t,n,i){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=i}static create(e,t,n,i){return new r(e,t,n,i)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:i=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(n&&(t=t.slice().sort(ju)),this.isEmpty)return t.length?r.of(t):this;let a=new Jl(this,null,-1).goto(0),l=0,c=[],d=new Vr;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(Bo.create(a.from,a.to,a.value))),a.next());return d.finishInner(this.nextLayer.isEmpty&&!c.length?r.empty:this.nextLayer.update({add:c,filter:o,filterFrom:i,filterTo:s}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],n=[],i=-1;for(let o=0;o<this.chunk.length;o++){let a=this.chunkPos[o],l=this.chunk[o],c=e.touchesRange(a,a+l.length);if(c===!1)i=Math.max(i,l.maxPoint),t.push(l),n.push(e.mapPos(a));else if(c===!0){let{mapped:d,pos:h}=l.map(a,e);d&&(i=Math.max(i,d.maxPoint),t.push(d),n.push(h))}}let s=this.nextLayer.map(e);return t.length==0?s:new r(n,t,s||r.empty,i)}between(e,t,n){if(!this.isEmpty){for(let i=0;i<this.chunk.length;i++){let s=this.chunkPos[i],o=this.chunk[i];if(t>=s&&e<=s+o.length&&o.between(s,e-s,t-s,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return jo.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return jo.from(e).goto(t)}static compare(e,t,n,i,s=-1){let o=e.filter(h=>h.maxPoint>0||!h.isEm
Line truncated
|
||||
`)}static newName(){let e=t0[e0]||1;return t0[e0]=e+1,"\u037C"+e.toString(36)}static mount(e,t,n){let i=e[Hu],s=n&&n.nonce;i?s&&i.setNonce(s):i=new Ku(e,s),i.mount(Array.isArray(t)?t:[t],e)}},r0=new Map,Ku=class{constructor(e,t){let n=e.ownerDocument||e,i=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&i.CSSStyleSheet){let s=r0.get(n);if(s)return e[Hu]=s;this.sheet=new i.CSSStyleSheet,r0.set(n,this)}else this.styleTag=n.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[Hu]=this}mount(e,t){let n=this.sheet,i=0,s=0;for(let o=0;o<e.length;o++){let a=e[o],l=this.modules.indexOf(a);if(l<s&&l>-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,a),n)for(let c=0;c<a.rules.length;c++)n.insertRule(a.rules[c],i++)}else{for(;s<l;)i+=this.modules[s++].rules.length;i+=a.rules.length,s++}}if(n)t.adoptedStyleSheets.indexOf(this.sheet)<0&&(t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets]);else{let o="";for(let l=0;l<this.modules.length;l++)o+=this.modules[l].getRules()+`
|
||||
`;this.styleTag.textContent=o;let a=t.head||t;this.styleTag.parentNode!=a&&a.insertBefore(this.styleTag,a.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}};var vn={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:"'"},Ms={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},P$=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),k$=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(lt=0;lt<10;lt++)vn[48+lt]=vn[96+lt]=String(lt);var lt;for(lt=1;lt<=24;lt++)vn[lt+111]="F"+lt;var lt;for(lt=65;lt<=90;lt++)vn[lt]=String.fromCharCode(lt+32),Ms[lt]=String.fromCharCode(lt);var lt;for(rc in vn)Ms.hasOwnProperty(rc)||(Ms[rc]=vn[rc]);var rc;function n0(r){var e=P$&&r.metaKey&&r.shiftKey&&!r.ctrlKey&&!r.altKey||k$&&r.shiftKey&&r.key&&r.key.length==1||r.key=="Unidentified",t=!e&&r.key||(r.shiftKey?Ms:vn)[r.keyCode]||r.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function st(){var r=arguments[0];typeof r=="string"&&(r=document.createElement(r));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var i=t[n];typeof i=="string"?r.setAttribute(n,i):i!=null&&(r[n]=i)}e++}for(;e<arguments.length;e++)i0(r,arguments[e]);return r}function i0(r,e){if(typeof e=="string")r.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)r.appendChild(e);else if(Array.isArray(e))for(var t=0;t<e.length;t++)i0(r,e[t]);else throw new RangeError("Unsupported child node: "+e)}var Wt=typeof navigator!="undefined"?navigator:{userAgent:"",vendor:"",platform:""},cf=typeof document!="undefined"?document:{documentElement:{style:{}}},df=/Edge\/(\d+)/.exec(Wt.userAgent),Y0=/MSIE \d/.test(Wt.userAgent),hf=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Wt.userAgent),Lc=!!(Y0||hf||df),s0=!Lc&&/gecko\/(\d+)/i.test(Wt.userAgent),Ju=!Lc&&/Chrome\/(\d+)/.exec(Wt.userAgent),o0="webkitFontSmoothing"in cf.documentElement.style,uf=!Lc&&/Apple Computer/.test(Wt.vendor),a0=uf&&(/Mobile\/\w+/.test(Wt.userAgent)||Wt.maxTouchPoints>2),ee={mac:a0||/Mac/.test(Wt.platform),windows:/Win/.test(Wt.platform),linux:/Linux|X11/.test(Wt.platform),ie:Lc,ie_version:Y0?cf.documentMode||6:hf?+hf[1]:df?+df[1]:0,gecko:s0,gecko_version:s0?+(/Firefox\/(\d+)/.exec(Wt.userAgent)||[0,0])[1]:0,chrome:!!Ju,chrome_version:Ju?+Ju[1]:0,ios:a0,android:/Android\b/.test(Wt.userAgent),webkit:o0,webkit_version:o0?+(/\bAppleWebKit\/(\d+)/.exec(Wt.userAgent)||[0,0])[1]:0,safari:uf,safari_version:uf?+(/\bVersion\/(\d+(\.\d+)?)/.exec(Wt.userAgent)||[0,0])[1]:0,tabSize:cf.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function np(r,e){for(let t in r)t=="class"&&e.class?e.class+=" "+r.class:t=="style"&&e.style?e.style+=";"+r.style:e[t]=r[t];return e}var gc=Object.create(null);function ip(r,e,t){if(r==e)return!0;r||(r=gc),e||(e=gc);let n=Object.keys(r),i=Object.keys(e);if(n.length-(t&&n.indexOf(t)>-1?1:0)!=i.length-(t&&i.indexOf(t)>-1?1:0))return!1;for(let s of n)if(s!=t&&(i.indexOf(s)==-1||r[s]!==e[s]))return!1;return!0}function Q$(r,e){for(let t=r.attributes.length-1;t>=0;t--){let n=r.attributes[t].name;e[n]==null&&r.removeAttribute(n)}for(let t in e){let n=e[t];t=="style"?r.style.cssText=n:r.getAttribute(t)!=n&&r.setAttribute(t,n)}}function l0(r,e,t){let n=!1;if(e)for(let i in e)t&&i in t||(n=!0,i=="style"?r.style.cssText="":r.removeAttribute(i));if(t)for(let i in t)e&&e[i]==t[i]||(n=!0,i=="style"?r.style.cssText=t[i]:r.setAttribute(i,t[i]));return n}function $$(r){let e=Object.create(null);for(let t=0;t<r.attributes.length;t++){let n=r.attributes[t];e[n.name]=n.value}return e}var ct=class{eq(e){return!1}updateDOM(e,t,n){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,n){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}},St=(function(r){return r[r.Text=0]="Text",r[r.WidgetBefore=1]="WidgetBefore",r[r.WidgetAfter=2]="WidgetAfter",r[r.WidgetRange=3]="WidgetRange",r})(St||(St={})),F=class extends wr{constructor(e,t,n,i){super(),this.startSide=e,this.endLine truncated
|
||||
`,i=r.state.doc.line(i.number+(t?1:-1)),s=r.bidiSpans(i),c=r.visualLineSide(i,!t)}if(l){if(!l(d))return a}else{if(!n)return c;l=n(d)}a=c}}function oT(r,e,t){let n=r.state.charCategorizer(e),i=n(t);return s=>{let o=n(s);return i==Xe.Space&&(i=o),i==o}}function aT(r,e,t,n){let i=e.head,s=t?1:-1;if(i==(t?r.state.doc.length:0))return M.cursor(i,e.assoc);let o=e.goalColumn,a,l=r.contentDOM.getBoundingClientRect(),c=r.coordsAtPos(i,e.assoc||((e.empty?t:e.head==e.from)?1:-1)),d=r.documentTop;if(c)o==null&&(o=c.left-l.left),a=s<0?c.top:c.bottom;else{let p=r.viewState.lineBlockAt(i);o==null&&(o=Math.min(l.right-l.left,r.defaultCharacterWidth*(i-p.from))),a=(s<0?p.top:p.bottom)+d}let h=l.left+o,u=r.viewState.heightOracle.textHeight>>1,f=n!=null?n:u;for(let p=0;;p+=u){let O=a+(f+p)*s,x=Tf(r,{x:h,y:O},!1,s);if(t?O>l.bottom:O<l.top)return M.cursor(x.pos,x.assoc);let w=r.coordsAtPos(x.pos,x.assoc),E=w?(w.top+w.bottom)/2:0;if(!w||(t?E>a:E<a))return M.cursor(x.pos,x.assoc,void 0,o)}}function ea(r,e,t){for(;;){let n=0;for(let i of r)i.between(e-1,e+1,(s,o,a)=>{if(e>s&&e<o){let l=n||t||(e-s<o-e?-1:1);e=l<0?s:o,n=l}});if(!n)return e}}function xy(r,e){let t=null;for(let n=0;n<e.ranges.length;n++){let i=e.ranges[n],s=null;if(i.empty){let o=ea(r,i.from,0);o!=i.from&&(s=M.cursor(o,-1))}else{let o=ea(r,i.from,-1),a=ea(r,i.to,1);(o!=i.from||a!=i.to)&&(i.undirectional?s=M.undirectionalRange(i.from,i.to):s=M.range(i.from==i.anchor?o:a,i.from==i.head?o:a))}s&&(t||(t=e.ranges.slice()),t[n]=s)}return t?M.create(t,e.mainIndex):e}function rf(r,e,t){let n=ea(r.state.facet(da).map(i=>i(r)),t.from,e.head>t.from?-1:1);return n==t.from?t:M.cursor(n,n<t.from?1:-1)}var $r=class{constructor(e,t){this.pos=e,this.assoc=t}};function Tf(r,e,t,n){let i=r.contentDOM.getBoundingClientRect(),s=i.top+r.viewState.paddingTop,{x:o,y:a}=e,l=a-s,c;for(;;){if(l<0)return new $r(0,1);if(l>r.viewState.docHeight)return new $r(r.state.doc.length,-1);if(c=r.elementAtHeight(l),n==null)break;if(c.type==St.Text){if(n<0?c.to<r.viewport.from:c.from>r.viewport.to)break;let u=r.docView.coordsAt(n<0?c.from:c.to,n>0?-1:1);if(u&&(n<0?u.top<=l+s:u.bottom>=l+s))break}let h=r.viewState.heightOracle.textHeight/2;l=n>0?c.bottom+h:c.top-h}if(r.viewport.from>=c.to||r.viewport.to<=c.from){if(t)return null;if(c.type==St.Text){let h=iT(r,i,c,o,a);return new $r(h,h==c.from?1:-1)}}if(c.type!=St.Text)return l<(c.top+c.bottom)/2?new $r(c.from,1):new $r(c.to,-1);let d=r.docView.lineAt(c.from,2);return(!d||d.length!=c.length)&&(d=r.docView.lineAt(c.from,-2)),new _f(r,o,a,r.textDirectionAt(c.from)).scanTile(d,c.from)}var _f=class{constructor(e,t,n,i){this.view=e,this.x=t,this.y=n,this.baseDir=i,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to<e)&&(this.line=this.view.state.doc.lineAt(e),this.spans=this.view.bidiSpans(this.line)),this}baseDirAt(e,t){let{line:n,spans:i}=this.bidiSpansAt(e);return i[Tr.find(i,e-n.from,-1,t)].level==this.baseDir}dirAt(e,t){let{line:n,spans:i}=this.bidiSpansAt(e);return i[Tr.find(i,e-n.from,-1,t)].dir}bidiIn(e,t){let{spans:n,line:i}=this.bidiSpansAt(e);return n.length>1||n.length&&(n[0].level!=this.baseDir||n[0].to+i.from<t)}scan(e,t,n=!1){let i=0,s=e.length-1,o=new Set,a=this.bidiIn(e[0],e[s]),l,c,d=-1,h=1e9,u;e:for(;i<s;){let p=s-i,O=i+s>>1;t:if(o.has(O)){for(let E=1;E<p;E++){let A=O+E;if(A>=s&&(A-=p),!o.has(A)){O=A;break t}}break e}o.add(O);let x=t(O),w=0;if(x)for(let E=0;E<x.length;E++){let A=x[E];if(!(A.width==0&&x.length>1))if(A.bottom<this.y)(!l||l.bottom<A.bottom)&&(l=A),w=1;else if(A.top>this.y)(!c||c.top>A.top)&&(c=A),w=-1;else{let X=A.left>this.x?this.x-A.left:A.right<this.x?this.x-A.right:0,T=Math.abs(X);T<h&&(d=O,h=T,u=A),X&&(w=X<0==(this.baseDir==Ze.LTR)?-1:1)}}w==-1&&(!a||this.baseDirAt(e[O],1))?s=O:w==1&&(!a||this.baseDirAt(e[O+1],-1))&&(i=O+1)}if(!u){if(!c&&!l)return{i:0,after:!1};let p=l&&(!c||this.y-l.bottom<c.top-this.y)?l:c;return this.y=(p.top+p.bottom)/2,this.scan(e,t,!0)}if(h&&!n){let{top:p,bottom:O}=u;if(l&&l.bottom>(p+p+O)/3)return this.y=l.bottom-1,this.scan(e,t,!0);if(c&&c.top<(p+O+O)/3)return this.y=c.top+1,this.scan(e,t,!0)}let f=(a?this.dirAt(e[d],1):this.baseDir)==Ze.LTR;return{i:d,after:this.x>(u.left+u.right)/2==f}}scanText(e,t){let n=[];for(let s=0;s<e.length;s=it(e.text,s))n.push(t+s);n.push(t+e.length);let i=this.scan(n,s=>{let o=n[s]-t,a=n[s+1]-t;return aa(e.dom,o,a).getClientRects()});return i.after?new $r(n[i.i+1],-1):new $r(n[i.i],1)}scanTile(e,t){if(!e.length)return new $r(t,1);if(e.children.length==1){let a=e.children[0];if(a.isText())return this.scanText(a,t);if(a.isComposite())return this.scanTile(a,t)}let n=[t];for(let a=0,l=t;a<e.children.length;a++)n.push(l+=e.children[a].length);let i=this.scan(n,a=>{let l=e.children[a];return l.flags&48?null:(l.dom.nodeType==1?l.dom:aa(l.dom,0,l.length)).getClientRects()}),s=e.children[i.i],o=n[i.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):i.after?new $r(n[i.i+1],-1):new $r(o,1)}},Ls="\uFFFF",Cf=class{con
Line truncated
|
||||
`&&r.lineWrapping&&(n&&(n=M.single(n.main.anchor-1,n.main.head-1)),t={from:s.from,to:s.to,insert:ke.of([" "])}),t)return hp(r,t,n,o);if(n&&!kc(n,s)){let a=!1,l="select";return r.inputState.lastSelectionTime>Date.now()-50&&(r.inputState.lastSelectionOrigin=="select"&&(a=!0),l=r.inputState.lastSelectionOrigin,l=="select.pointer"&&(n=xy(i.facet(da).map(c=>c(r)),n))),r.dispatch({selection:n,scrollIntoView:a,userEvent:l}),!0}else return!1}function hp(r,e,t,n=-1){if(ee.ios&&r.inputState.flushIOSKey(e))return!0;let i=r.state.selection.main;if(ee.android&&(e.to==i.to&&(e.from==i.from||e.from==i.from-1&&r.state.sliceDoc(e.from,i.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Ws(r.contentDOM,"Enter",13)||(e.from==i.from-1&&e.to==i.to&&e.insert.length==0||n==8&&e.insert.length<e.to-e.from&&e.to>i.head)&&Ws(r.contentDOM,"Backspace",8)||e.from==i.from&&e.to==i.to+1&&e.insert.length==0&&Ws(r.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();r.inputState.composing>=0&&r.inputState.composing++;let o,a=()=>o||(o=dT(r,e,t));return r.state.facet(ly).some(l=>l(r,e.from,e.to,s,a))||r.dispatch(a()),!0}function dT(r,e,t){let n,i=r.state,s=i.selection.main,o=-1;if(e.from==e.to&&e.from<s.from||e.from>s.to){let l=e.from<s.from?-1:1,c=l<0?s.from:s.to,d=ea(i.facet(da).map(h=>h(r)),c,l);e.from==d&&(o=d)}if(o>-1)n={changes:e,selection:M.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&r.inputState.composing<0){let l=s.from<e.from?i.sliceDoc(s.from,e.from):"",c=s.to>e.to?i.sliceDoc(e.to,s.to):"";n=i.replaceSelection(r.state.toText(l+e.insert.sliceString(0,void 0,r.state.lineBreak)+c))}else{let l=i.changes(e),c=t&&t.main.to<=l.newLength?t.main:void 0;if(i.selection.ranges.length>1&&(r.inputState.composing>=0||r.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let d=r.state.sliceDoc(e.from,e.to),h,u=t&&yy(r,t.main.head);if(u){let p=e.insert.length-(e.to-e.from);h={from:u.from,to:u.to-p}}else h=r.state.doc.lineAt(s.head);let f=s.to-e.to;n=i.changeByRange(p=>{if(p.from==s.from&&p.to==s.to)return{changes:l,range:c||p.map(l)};let O=p.to-f,x=O-d.length;if(r.state.sliceDoc(x,O)!=d||O>=h.from&&x<=h.to)return{range:p};let w=i.changes({from:x,to:O,insert:e.insert}),E=p.to-s.to;return{changes:w,range:c?M.range(Math.max(0,c.anchor+E),Math.max(0,c.head+E)):p.map(w)}})}else n={changes:l,selection:c&&i.selection.replaceRange(c)}}let a="input.type";return(r.composing||r.inputState.compositionPendingChange&&r.inputState.compositionEndedAt>Date.now()-50)&&(r.inputState.compositionPendingChange=!1,a+=".compose",r.inputState.compositionFirstChange&&(a+=".start",r.inputState.compositionFirstChange=!1)),i.update(n,{userEvent:a,scrollIntoView:!0})}function wy(r,e,t,n){let i=Math.min(r.length,e.length),s=0;for(;s<i&&r.charCodeAt(s)==e.charCodeAt(s);)s++;if(s==i&&r.length==e.length)return null;let o=r.length,a=e.length;for(;o>0&&a>0&&r.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(n=="end"){let l=Math.max(0,s-Math.min(o,a));t-=o+l-s}if(o<s&&r.length<e.length){let l=t<=s&&t>=o?s-t:0;s-=l,a=s+(a-o),o=s}else if(a<s){let l=t<=s&&t>=a?s-t:0;s-=l,o=s+(o-a),a=s}return{from:s,toA:o,toB:a}}function hT(r){let e=[];if(r.root.activeElement!=r.contentDOM)return e;let{anchorNode:t,anchorOffset:n,focusNode:i,focusOffset:s}=r.observer.selectionRange;return t&&(e.push(new Pc(t,n)),(i!=t||s!=n)&&e.push(new Pc(i,s))),e}function uT(r,e){if(r.length==0)return null;let t=r[0].pos,n=r.length==2?r[1].pos:t;return t>-1&&n>-1?M.single(t+e,n+e):null}function kc(r,e){return e.head==r.main.head&&e.anchor==r.main.anchor}var Rf=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,ee.safari&&e.contentDOM.addEventListener("input",()=>null),ee.gecko&&$T(e.contentDOM.ownerDocument)}handleEvent(e){!xT(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let n=this.handlers[e];if(n){for(let i of n.observers)i(this.view,t);for(let i of n.handlers){if(t.defaultPrevented)break;if(i(this.view,t)){t.preventDefault();break}}}}ensureHandl
Line truncated
|
||||
`))};if((ee.mac||ee.android)&&h.from==o-1&&/^\. ?$/.test(n.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(h={from:a,to:l,insert:ke.of([n.text.replace("."," ")])}),this.pendingContextChange=h,!e.state.readOnly){let u=this.to-this.from+(h.to-h.from+h.insert.length);hp(e,h,M.single(this.toEditorPos(n.selectionStart,u),this.toEditorPos(n.selectionEnd,u)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),h.from<h.to&&!h.insert.length&&e.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,n.updateRangeStart-1),Math.min(t.text.length,n.updateRangeStart+1)))&&this.handlers.compositionend(n)},this.handlers.characterboundsupdate=n=>{let i=[],s=null;for(let o=this.toEditorPos(n.rangeStart),a=this.toEditorPos(n.rangeEnd);o<a;o++){let l=e.coordsForChar(o);s=l&&new DOMRect(l.left,l.top,l.right-l.left,l.bottom-l.top)||s||new DOMRect,i.push(s)}t.updateCharacterBounds(n.rangeStart,i)},this.handlers.textformatupdate=n=>{let i=[];for(let s of n.getTextFormats()){let o=s.underlineStyle,a=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(a)){let l=this.toEditorPos(s.rangeStart),c=this.toEditorPos(s.rangeEnd);if(l<c){let d=`text-decoration: underline ${/^[a-z]/.test(o)?o+" ":o=="Dashed"?"dashed ":o=="Squiggle"?"wavy ":""}${/thin/i.test(a)?1:2}px`;i.push(F.mark({attributes:{style:d}}).range(l,c))}}}e.dispatch({effects:fy.of(F.set(i))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:n}=this.composing;this.composing=null,n&&this.reset(e.state)}};for(let n in this.handlers)t.addEventListener(n,this.handlers[n]);this.measureReq={read:n=>{let i=oa(n.root);i&&i.rangeCount&&this.editContext.updateSelectionBounds(i.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,n=!1,i=this.pendingContextChange;return e.changes.iterChanges((s,o,a,l,c)=>{if(n)return;let d=c.length-(o-s);if(i&&o>=i.to)if(i.from==s&&i.to==o&&i.insert.eq(c)){i=this.pendingContextChange=null,t+=d,this.to+=d;return}else i=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=d,this.to+=d;else if(s<this.to){if(s<this.from||o>this.to||this.to-this.from+c.length>3e4){n=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=d}t+=d}),i&&!n&&this.revertPending(e.state),!n}update(e){let t=this.pendingContextChange,n=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(n.from,n.to)&&e.transactions.some(i=>!i.isUserEvent("input.type")&&i.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),i=this.toContextPos(t.head);(this.editContext.selectionStart!=n||this.editContext.selectionEnd!=i)&&this.editContext.updateSelection(n,i)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to<e.doc.length&&this.to-t<500||this.to-this.from>1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let n=this.composing;return n&&n.drifted?n.editorBase+(e-n.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},V=class r{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=d
Line truncated
|
||||
-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,qf),e_={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"},sf=null;function t_(){var r;if(sf==null&&typeof document!="undefined"&&document.body){let e=document.body.style;sf=((r=e.tabSize)!==null&&r!==void 0?r:e.MozTabSize)!=null}return sf||!1}var mc=J.define({combine(r){let e=ar(r,{render:null,specialChars:JT,addSpecialChars:null});return(e.replaceTabs=!t_())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,qf)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,qf)),e}});function Yy(r={}){return[mc.of(r),r_()]}var L0=null;function r_(){return L0||(L0=We.fromClass(class{constructor(r){this.view=r,this.decorations=F.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(r.state.facet(mc)),this.decorations=this.decorator.createDeco(r)}makeDecorator(r){return new la({regexp:r.specialChars,decoration:(e,t,n)=>{let{doc:i}=t.state,s=Yr(e[0],0);if(s==9){let o=i.lineAt(n),a=t.state.tabSize,l=zt(o.text,a,n-o.from);return F.replace({widget:new Hf((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=F.replace({widget:new Gf(r,s)}))},boundary:r.replaceTabs?void 0:/[^]/})}update(r){let e=r.state.facet(mc);r.startState.facet(mc)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(r.view)):this.decorations=this.decorator.updateDeco(r,this.decorations)}},{decorations:r=>r.decorations}))}var n_="\u2022";function i_(r){return r>=32?n_:r==10?"\u2424":String.fromCharCode(9216+r)}var Gf=class extends ct{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=i_(this.code),n=e.state.phrase("Control character")+" "+(e_[this.code]||"0x"+this.code.toString(16)),i=this.options.render&&this.options.render(this.code,n,t);if(i)return i;let s=document.createElement("span");return s.textContent=t,s.title=n,s.setAttribute("aria-label",n),s.className="cm-specialChar",s}ignoreEvent(){return!1}},Hf=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 Ic(){return o_}var s_=F.line({class:"cm-activeLine"}),o_=We.fromClass(class{constructor(r){this.decorations=this.getDeco(r)}update(r){(r.docChanged||r.selectionSet)&&(this.decorations=this.getDeco(r.view))}getDeco(r){let e=-1,t=[];for(let n of r.state.selection.ranges){let i=r.lineBlockAt(n.head);i.from>e&&(t.push(s_.range(i.from)),e=i.from)}return F.set(t)}},{decorations:r=>r.decorations});var Kf=2e3;function a_(r,e,t){let n=Math.min(e.line,t.line),i=Math.max(e.line,t.line),s=[];if(e.off>Kf||t.off>Kf||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=n;l<=i;l++){let c=r.doc.line(l);c.length<=a&&s.push(M.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=n;l<=i;l++){let c=r.doc.line(l),d=tc(c.text,o,r.tabSize,!0);if(d<0)s.push(M.cursor(c.to));else{let h=tc(c.text,a,r.tabSize);s.push(M.range(c.from+d,c.from+h))}}}return s}function l_(r,e){let t=r.coordsAtPos(r.viewport.from);return t?Math.round(Math.abs((t.left-e)/r.defaultCharacterWidth)):-1}function Z0(r,e){let t=r.posAtCoords({x:e.clientX,y:e.clientY},!1),n=r.state.doc.lineAt(t),i=t-n.from,s=i>Kf?-1:i==n.length?l_(r,e.clientX):zt(n.text,r.state.tabSize,t-n.from);return{line:n.number,col:s,off:i}}function c_(r,e){let t=Z0(r,e),n=r.state.selection;return t?{update(i){if(i.docChanged){let s=i.changes.mapPos(i.startState.doc.line(t.line).from),o=i.state.doc.lineAt(s);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},n=n.map(i.changes)}},get(i,s,o){let a=Z0(r,i);if(!a)return n;let l=a_(r.state,t,a);return l.length?o?M.create(l.concat(n.ranges)):M.create(l):n}}:null}function zc(r){let e=(r==null?void 0:r.eventFilter)||(t=>t.altKey&&t.button==0);return V.mouseSelectionStyle.of((t,n)=>e(n)?c_(t,n):null)}var d_={Alt:[18,r=>!!r.altKey],Control:[17,r=>!!r.ctrlKey],Shift:[16,r=>!!r.shiftKey],Meta:[91,r=>!!r.metaKey]},h_={style:"cursor: crosshair"};function Wc(r={}){let[e,t]=d_[r.key||"Alt"],n=We.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))}}});retur
Line truncated
|
||||
`,this;e--}else if(i instanceof or){let l=i.text[o+(t<0?-1:0)];if(this.offsets[n]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=i.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof or?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)}},Ul=class{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new Ei(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:i}=this.cursor.next(e);return this.pos+=(i.length+e)*t,this.value=i.length<=n?i:t<0?i.slice(i.length-n):i.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},ql=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:i}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol!="undefined"&&(ke.prototype[Symbol.iterator]=function(){return this.iter()},Ei.prototype[Symbol.iterator]=Ul.prototype[Symbol.iterator]=ql.prototype[Symbol.iterator]=function(){return this});var Zu=class{constructor(e,t,n,i){this.from=e,this.to=t,this.number=n,this.text=i}get length(){return this.to-this.from}};function Es(r,e,t){return e=Math.max(0,Math.min(r.length,e)),[e,Math.max(e,Math.min(r.length,t))]}function it(r,e,t=!0,n=!0){return Lb(r,e,t,n)}function u$(r){return r>=56320&&r<57344}function f$(r){return r>=55296&&r<56320}function Yr(r,e){let t=r.charCodeAt(e);if(!f$(t)||e+1==r.length)return t;let n=r.charCodeAt(e+1);return u$(n)?(t-55296<<10)+(n-56320)+65536:t}function ec(r){return r<=65535?String.fromCharCode(r):(r-=65536,String.fromCharCode((r>>10)+55296,(r&1023)+56320))}function qn(r){return r<65536?1:2}var Xu=/\r\n?|\n/,pt=(function(r){return r[r.Simple=0]="Simple",r[r.TrackDel=1]="TrackDel",r[r.TrackBefore=2]="TrackBefore",r[r.TrackAfter=3]="TrackAfter",r})(pt||(pt={})),Sn=class r{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,i=0;t<this.sections.length;){let s=this.sections[t++],o=this.sections[t++];o<0?(e(n,i,s),i+=s):i+=o,n+=s}}iterChangedRanges(e,t=!1){Du(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let n=this.sections[t++],i=this.sections[t++];i<0?e.push(n,i):e.push(i,n)}return new r(e)}composeDesc(e){return this.empty?e:e.empty?this:Bb(this,e)}mapDesc(e,t=!1){return e.empty?this:Iu(this,e,t)}mapPos(e,t=-1,n=pt.Simple){let i=0,s=0;for(let o=0;o<this.sections.length;){let a=this.sections[o++],l=this.sections[o++],c=i+a;if(l<0){if(c>e)return s+(e-i);s+=a}else{if(n!=pt.Simple&&c>=e&&(n==pt.TrackDel&&i<e&&c>e||n==pt.TrackBefore&&i<e||n==pt.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!a)return e==i||t<0?s:s+l;s+=l}i=c}if(e>i)throw new RangeError(`Position ${e} is out of range for changeset of length ${i}`);return s}touchesRange(e,t=e){for(let n=0,i=0;n<this.sections.length&&i<=t;){let s=this.sections[n++],o=this.sections[n++],a=i+s;if(o>=0&&i<=t&&a>=e)return i<e&&a>t?"cover":!0;i=a}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let n=this.sections[t++],i=this.sections[t++];e+=(e?" ":"")+n+(i>=0?":"+i:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new r(e)}static create(e){return new r(e)}},It=class r extends Sn{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 Du(this,(t,n,i,s,o)=>e=e.replace(i,i+(n-t),o),!1),e}mapDesc(e,t=!1){return Iu(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let i=0,s=0;i<t.length;i+=2){let o=t[i],a=t[i+1];if(a>=0){t[i]=a,t[i+1]=o;let l=i>>1;for(;n.length<l;)n.push(ke.empty);n.push(o?e.slice(s,s+o):ke.empty)}s+=o}return new r(t,n)}compose(e){return this.empty?e:e.empty?this:Bb(this,e,!0)}map(e,t=!1){return e.empty?this:Iu(this,e,t,!0)}iterChanges(e,t=!1){Du(this,e,t)}get desc
Line truncated
|
||||
`}get readOnly(){return this.facet(Hb)}phrase(e,...t){for(let n of this.facet(r.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(n,i)=>{if(i=="$")return"$";let s=+(i||1);return!s||s>t.length?n:t[s-1]})),e}languageDataAt(e,t,n=-1){let i=[];for(let s of this.facet(Fb))for(let o of s(this,t,n))Object.prototype.hasOwnProperty.call(o,e)&&i.push(o[e]);return i}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return v$(t.length?t[0]:"")}wordAt(e){let{text:t,from:n,length:i}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-n,a=e-n;for(;o>0;){let l=it(t,o,!1);if(s(t.slice(l,o))!=Xe.Word)break;o=l}for(;a<i;){let l=it(t,a);if(s(t.slice(a,l))!=Xe.Word)break;a=l}return o==a?null:M.range(o+n,a+n)}};Pe.allowMultipleSelections=Wu;Pe.tabSize=J.define({combine:r=>r.length?r[0]:4});Pe.lineSeparator=Nb;Pe.readOnly=Hb;Pe.phrases=J.define({compare(r,e){let t=Object.keys(r),n=Object.keys(e);return t.length==n.length&&t.every(i=>r[i]==e[i])}});Pe.languageData=Fb;Pe.changeFilter=Ub;Pe.transactionFilter=qb;Pe.transactionExtender=Gb;St.reconfigure=ce.define();function ar(r,e,t={}){let n={};for(let i of r)for(let s of Object.keys(i)){let o=i[s],a=n[s];if(a===void 0)n[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))n[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let i in e)n[i]===void 0&&(n[i]=e[i]);return n}var wr=class{eq(e){return this==e}range(e,t=e){return Bo.create(e,t,this)}};wr.prototype.startSide=wr.prototype.endSide=0;wr.prototype.point=!1;wr.prototype.mapMode=pt.TrackDel;function Hu(r,e){return r==e||r.constructor==e.constructor&&r.eq(e)}var Bo=class r{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new r(e,t,n)}};function Fu(r,e){return r.from-e.from||r.value.startSide-e.value.startSide}var Nu=class r{constructor(e,t,n,i){this.from=e,this.to=t,this.value=n,this.maxPoint=i}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,i=0){let s=n?this.to:this.from;for(let o=i,a=s.length;;){if(o==a)return o;let l=o+a>>1,c=s[l]-e||(n?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,n,i){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(n,1e9,!1,s);s<o;s++)if(i(this.from[s]+e,this.to[s]+e,this.value[s])===!1)return!1}map(e,t){let n=[],i=[],s=[],o=-1,a=-1;for(let l=0;l<this.value.length;l++){let c=this.value[l],d=this.from[l]+e,h=this.to[l]+e,u,f;if(d==h){let p=t.mapPos(d,c.startSide,c.mapMode);if(p==null||(u=f=p,c.startSide!=c.endSide&&(f=t.mapPos(d,c.endSide),f<u)))continue}else if(u=t.mapPos(d,c.startSide),f=t.mapPos(h,c.endSide),u>f||u==f&&c.startSide>0&&c.endSide<=0)continue;(f-u||c.endSide-c.startSide)<0||(o<0&&(o=u),c.point&&(a=Math.max(a,f-u)),n.push(c),i.push(u-o),s.push(f-o))}return{mapped:n.length?new r(i,s,n,a):null,pos:o}}},Oe=class r{constructor(e,t,n,i){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=i}static create(e,t,n,i){return new r(e,t,n,i)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:i=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(n&&(t=t.slice().sort(Fu)),this.isEmpty)return t.length?r.of(t):this;let a=new Jl(this,null,-1).goto(0),l=0,c=[],d=new Vr;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(Bo.create(a.from,a.to,a.value))),a.next());return d.finishInner(this.nextLayer.isEmpty&&!c.length?r.empty:this.nextLayer.update({add:c,filter:o,filterFrom:i,filterTo:s}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],n=[],i=-1;for(let o=0;o<this.chunk.length;o++){let a=this.chunkPos[o],l=this.chunk[o],c=e.touchesRange(a,a+l.length);if(c===!1)i=Math.max(i,l.maxPoint),t.push(l),n.push(e.mapPos(a));else if(c===!0){let{mapped:d,pos:h}=l.map(a,e);d&&(i=Math.max(i,d.maxPoint),t.push(d),n.push(h))}}let s=this.nextLayer.map(e);return t.length==0?s:new r(n,t,s||r.empty,i)}between(e,t,n){if(!this.isEmpty){for(let i=0;i<this.chunk.length;i++){let s=this.chunkPos[i],o=this.chunk[i];if(t>=s&&e<=s+o.length&&o.between(s,e-s,t-s,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return jo.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return jo.from(e).goto(t)}static compare(e,t,n,i,s=-1){let o=e.filter(h=>h.maxPoint>0||!h.isEm
Line truncated
|
||||
`)}static newName(){let e=t0[e0]||1;return t0[e0]=e+1,"\u037C"+e.toString(36)}static mount(e,t,n){let i=e[Ku],s=n&&n.nonce;i?s&&i.setNonce(s):i=new Ju(e,s),i.mount(Array.isArray(t)?t:[t],e)}},r0=new Map,Ju=class{constructor(e,t){let n=e.ownerDocument||e,i=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&i.CSSStyleSheet){let s=r0.get(n);if(s)return e[Ku]=s;this.sheet=new i.CSSStyleSheet,r0.set(n,this)}else this.styleTag=n.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[Ku]=this}mount(e,t){let n=this.sheet,i=0,s=0;for(let o=0;o<e.length;o++){let a=e[o],l=this.modules.indexOf(a);if(l<s&&l>-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,a),n)for(let c=0;c<a.rules.length;c++)n.insertRule(a.rules[c],i++)}else{for(;s<l;)i+=this.modules[s++].rules.length;i+=a.rules.length,s++}}if(n)t.adoptedStyleSheets.indexOf(this.sheet)<0&&(t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets]);else{let o="";for(let l=0;l<this.modules.length;l++)o+=this.modules[l].getRules()+`
|
||||
`;this.styleTag.textContent=o;let a=t.head||t;this.styleTag.parentNode!=a&&a.insertBefore(this.styleTag,a.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}};var vn={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:"'"},Ms={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},P$=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),k$=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(lt=0;lt<10;lt++)vn[48+lt]=vn[96+lt]=String(lt);var lt;for(lt=1;lt<=24;lt++)vn[lt+111]="F"+lt;var lt;for(lt=65;lt<=90;lt++)vn[lt]=String.fromCharCode(lt+32),Ms[lt]=String.fromCharCode(lt);var lt;for(rc in vn)Ms.hasOwnProperty(rc)||(Ms[rc]=vn[rc]);var rc;function n0(r){var e=P$&&r.metaKey&&r.shiftKey&&!r.ctrlKey&&!r.altKey||k$&&r.shiftKey&&r.key&&r.key.length==1||r.key=="Unidentified",t=!e&&r.key||(r.shiftKey?Ms:vn)[r.keyCode]||r.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function st(){var r=arguments[0];typeof r=="string"&&(r=document.createElement(r));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var i=t[n];typeof i=="string"?r.setAttribute(n,i):i!=null&&(r[n]=i)}e++}for(;e<arguments.length;e++)i0(r,arguments[e]);return r}function i0(r,e){if(typeof e=="string")r.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)r.appendChild(e);else if(Array.isArray(e))for(var t=0;t<e.length;t++)i0(r,e[t]);else throw new RangeError("Unsupported child node: "+e)}var Wt=typeof navigator!="undefined"?navigator:{userAgent:"",vendor:"",platform:""},df=typeof document!="undefined"?document:{documentElement:{style:{}}},hf=/Edge\/(\d+)/.exec(Wt.userAgent),Y0=/MSIE \d/.test(Wt.userAgent),uf=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Wt.userAgent),Lc=!!(Y0||uf||hf),s0=!Lc&&/gecko\/(\d+)/i.test(Wt.userAgent),ef=!Lc&&/Chrome\/(\d+)/.exec(Wt.userAgent),o0="webkitFontSmoothing"in df.documentElement.style,ff=!Lc&&/Apple Computer/.test(Wt.vendor),a0=ff&&(/Mobile\/\w+/.test(Wt.userAgent)||Wt.maxTouchPoints>2),ee={mac:a0||/Mac/.test(Wt.platform),windows:/Win/.test(Wt.platform),linux:/Linux|X11/.test(Wt.platform),ie:Lc,ie_version:Y0?df.documentMode||6:uf?+uf[1]:hf?+hf[1]:0,gecko:s0,gecko_version:s0?+(/Firefox\/(\d+)/.exec(Wt.userAgent)||[0,0])[1]:0,chrome:!!ef,chrome_version:ef?+ef[1]:0,ios:a0,android:/Android\b/.test(Wt.userAgent),webkit:o0,webkit_version:o0?+(/\bAppleWebKit\/(\d+)/.exec(Wt.userAgent)||[0,0])[1]:0,safari:ff,safari_version:ff?+(/\bVersion\/(\d+(\.\d+)?)/.exec(Wt.userAgent)||[0,0])[1]:0,tabSize:df.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function ip(r,e){for(let t in r)t=="class"&&e.class?e.class+=" "+r.class:t=="style"&&e.style?e.style+=";"+r.style:e[t]=r[t];return e}var gc=Object.create(null);function sp(r,e,t){if(r==e)return!0;r||(r=gc),e||(e=gc);let n=Object.keys(r),i=Object.keys(e);if(n.length-(t&&n.indexOf(t)>-1?1:0)!=i.length-(t&&i.indexOf(t)>-1?1:0))return!1;for(let s of n)if(s!=t&&(i.indexOf(s)==-1||r[s]!==e[s]))return!1;return!0}function Q$(r,e){for(let t=r.attributes.length-1;t>=0;t--){let n=r.attributes[t].name;e[n]==null&&r.removeAttribute(n)}for(let t in e){let n=e[t];t=="style"?r.style.cssText=n:r.getAttribute(t)!=n&&r.setAttribute(t,n)}}function l0(r,e,t){let n=!1;if(e)for(let i in e)t&&i in t||(n=!0,i=="style"?r.style.cssText="":r.removeAttribute(i));if(t)for(let i in t)e&&e[i]==t[i]||(n=!0,i=="style"?r.style.cssText=t[i]:r.setAttribute(i,t[i]));return n}function $$(r){let e=Object.create(null);for(let t=0;t<r.attributes.length;t++){let n=r.attributes[t];e[n.name]=n.value}return e}var ct=class{eq(e){return!1}updateDOM(e,t,n){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,n){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}},vt=(function(r){return r[r.Text=0]="Text",r[r.WidgetBefore=1]="WidgetBefore",r[r.WidgetAfter=2]="WidgetAfter",r[r.WidgetRange=3]="WidgetRange",r})(vt||(vt={})),F=class extends wr{constructor(e,t,n,i){super(),this.startSide=e,this.endLine truncated
|
||||
`,i=r.state.doc.line(i.number+(t?1:-1)),s=r.bidiSpans(i),c=r.visualLineSide(i,!t)}if(l){if(!l(d))return a}else{if(!n)return c;l=n(d)}a=c}}function oT(r,e,t){let n=r.state.charCategorizer(e),i=n(t);return s=>{let o=n(s);return i==Xe.Space&&(i=o),i==o}}function aT(r,e,t,n){let i=e.head,s=t?1:-1;if(i==(t?r.state.doc.length:0))return M.cursor(i,e.assoc);let o=e.goalColumn,a,l=r.contentDOM.getBoundingClientRect(),c=r.coordsAtPos(i,e.assoc||((e.empty?t:e.head==e.from)?1:-1)),d=r.documentTop;if(c)o==null&&(o=c.left-l.left),a=s<0?c.top:c.bottom;else{let p=r.viewState.lineBlockAt(i);o==null&&(o=Math.min(l.right-l.left,r.defaultCharacterWidth*(i-p.from))),a=(s<0?p.top:p.bottom)+d}let h=l.left+o,u=r.viewState.heightOracle.textHeight>>1,f=n!=null?n:u;for(let p=0;;p+=u){let O=a+(f+p)*s,x=_f(r,{x:h,y:O},!1,s);if(t?O>l.bottom:O<l.top)return M.cursor(x.pos,x.assoc);let w=r.coordsAtPos(x.pos,x.assoc),E=w?(w.top+w.bottom)/2:0;if(!w||(t?E>a:E<a))return M.cursor(x.pos,x.assoc,void 0,o)}}function ea(r,e,t){for(;;){let n=0;for(let i of r)i.between(e-1,e+1,(s,o,a)=>{if(e>s&&e<o){let l=n||t||(e-s<o-e?-1:1);e=l<0?s:o,n=l}});if(!n)return e}}function xy(r,e){let t=null;for(let n=0;n<e.ranges.length;n++){let i=e.ranges[n],s=null;if(i.empty){let o=ea(r,i.from,0);o!=i.from&&(s=M.cursor(o,-1))}else{let o=ea(r,i.from,-1),a=ea(r,i.to,1);(o!=i.from||a!=i.to)&&(i.undirectional?s=M.undirectionalRange(i.from,i.to):s=M.range(i.from==i.anchor?o:a,i.from==i.head?o:a))}s&&(t||(t=e.ranges.slice()),t[n]=s)}return t?M.create(t,e.mainIndex):e}function nf(r,e,t){let n=ea(r.state.facet(da).map(i=>i(r)),t.from,e.head>t.from?-1:1);return n==t.from?t:M.cursor(n,n<t.from?1:-1)}var $r=class{constructor(e,t){this.pos=e,this.assoc=t}};function _f(r,e,t,n){let i=r.contentDOM.getBoundingClientRect(),s=i.top+r.viewState.paddingTop,{x:o,y:a}=e,l=a-s,c;for(;;){if(l<0)return new $r(0,1);if(l>r.viewState.docHeight)return new $r(r.state.doc.length,-1);if(c=r.elementAtHeight(l),n==null)break;if(c.type==vt.Text){if(n<0?c.to<r.viewport.from:c.from>r.viewport.to)break;let u=r.docView.coordsAt(n<0?c.from:c.to,n>0?-1:1);if(u&&(n<0?u.top<=l+s:u.bottom>=l+s))break}let h=r.viewState.heightOracle.textHeight/2;l=n>0?c.bottom+h:c.top-h}if(r.viewport.from>=c.to||r.viewport.to<=c.from){if(t)return null;if(c.type==vt.Text){let h=iT(r,i,c,o,a);return new $r(h,h==c.from?1:-1)}}if(c.type!=vt.Text)return l<(c.top+c.bottom)/2?new $r(c.from,1):new $r(c.to,-1);let d=r.docView.lineAt(c.from,2);return(!d||d.length!=c.length)&&(d=r.docView.lineAt(c.from,-2)),new Cf(r,o,a,r.textDirectionAt(c.from)).scanTile(d,c.from)}var Cf=class{constructor(e,t,n,i){this.view=e,this.x=t,this.y=n,this.baseDir=i,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to<e)&&(this.line=this.view.state.doc.lineAt(e),this.spans=this.view.bidiSpans(this.line)),this}baseDirAt(e,t){let{line:n,spans:i}=this.bidiSpansAt(e);return i[Tr.find(i,e-n.from,-1,t)].level==this.baseDir}dirAt(e,t){let{line:n,spans:i}=this.bidiSpansAt(e);return i[Tr.find(i,e-n.from,-1,t)].dir}bidiIn(e,t){let{spans:n,line:i}=this.bidiSpansAt(e);return n.length>1||n.length&&(n[0].level!=this.baseDir||n[0].to+i.from<t)}scan(e,t,n=!1){let i=0,s=e.length-1,o=new Set,a=this.bidiIn(e[0],e[s]),l,c,d=-1,h=1e9,u;e:for(;i<s;){let p=s-i,O=i+s>>1;t:if(o.has(O)){for(let E=1;E<p;E++){let A=O+E;if(A>=s&&(A-=p),!o.has(A)){O=A;break t}}break e}o.add(O);let x=t(O),w=0;if(x)for(let E=0;E<x.length;E++){let A=x[E];if(!(A.width==0&&x.length>1))if(A.bottom<this.y)(!l||l.bottom<A.bottom)&&(l=A),w=1;else if(A.top>this.y)(!c||c.top>A.top)&&(c=A),w=-1;else{let X=A.left>this.x?this.x-A.left:A.right<this.x?this.x-A.right:0,T=Math.abs(X);T<h&&(d=O,h=T,u=A),X&&(w=X<0==(this.baseDir==Ze.LTR)?-1:1)}}w==-1&&(!a||this.baseDirAt(e[O],1))?s=O:w==1&&(!a||this.baseDirAt(e[O+1],-1))&&(i=O+1)}if(!u){if(!c&&!l)return{i:0,after:!1};let p=l&&(!c||this.y-l.bottom<c.top-this.y)?l:c;return this.y=(p.top+p.bottom)/2,this.scan(e,t,!0)}if(h&&!n){let{top:p,bottom:O}=u;if(l&&l.bottom>(p+p+O)/3)return this.y=l.bottom-1,this.scan(e,t,!0);if(c&&c.top<(p+O+O)/3)return this.y=c.top+1,this.scan(e,t,!0)}let f=(a?this.dirAt(e[d],1):this.baseDir)==Ze.LTR;return{i:d,after:this.x>(u.left+u.right)/2==f}}scanText(e,t){let n=[];for(let s=0;s<e.length;s=it(e.text,s))n.push(t+s);n.push(t+e.length);let i=this.scan(n,s=>{let o=n[s]-t,a=n[s+1]-t;return aa(e.dom,o,a).getClientRects()});return i.after?new $r(n[i.i+1],-1):new $r(n[i.i],1)}scanTile(e,t){if(!e.length)return new $r(t,1);if(e.children.length==1){let a=e.children[0];if(a.isText())return this.scanText(a,t);if(a.isComposite())return this.scanTile(a,t)}let n=[t];for(let a=0,l=t;a<e.children.length;a++)n.push(l+=e.children[a].length);let i=this.scan(n,a=>{let l=e.children[a];return l.flags&48?null:(l.dom.nodeType==1?l.dom:aa(l.dom,0,l.length)).getClientRects()}),s=e.children[i.i],o=n[i.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):i.after?new $r(n[i.i+1],-1):new $r(o,1)}},Ls="\uFFFF",Af=class{con
Line truncated
|
||||
`&&r.lineWrapping&&(n&&(n=M.single(n.main.anchor-1,n.main.head-1)),t={from:s.from,to:s.to,insert:ke.of([" "])}),t)return up(r,t,n,o);if(n&&!kc(n,s)){let a=!1,l="select";return r.inputState.lastSelectionTime>Date.now()-50&&(r.inputState.lastSelectionOrigin=="select"&&(a=!0),l=r.inputState.lastSelectionOrigin,l=="select.pointer"&&(n=xy(i.facet(da).map(c=>c(r)),n))),r.dispatch({selection:n,scrollIntoView:a,userEvent:l}),!0}else return!1}function up(r,e,t,n=-1){if(ee.ios&&r.inputState.flushIOSKey(e))return!0;let i=r.state.selection.main;if(ee.android&&(e.to==i.to&&(e.from==i.from||e.from==i.from-1&&r.state.sliceDoc(e.from,i.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Ws(r.contentDOM,"Enter",13)||(e.from==i.from-1&&e.to==i.to&&e.insert.length==0||n==8&&e.insert.length<e.to-e.from&&e.to>i.head)&&Ws(r.contentDOM,"Backspace",8)||e.from==i.from&&e.to==i.to+1&&e.insert.length==0&&Ws(r.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();r.inputState.composing>=0&&r.inputState.composing++;let o,a=()=>o||(o=dT(r,e,t));return r.state.facet(ly).some(l=>l(r,e.from,e.to,s,a))||r.dispatch(a()),!0}function dT(r,e,t){let n,i=r.state,s=i.selection.main,o=-1;if(e.from==e.to&&e.from<s.from||e.from>s.to){let l=e.from<s.from?-1:1,c=l<0?s.from:s.to,d=ea(i.facet(da).map(h=>h(r)),c,l);e.from==d&&(o=d)}if(o>-1)n={changes:e,selection:M.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&r.inputState.composing<0){let l=s.from<e.from?i.sliceDoc(s.from,e.from):"",c=s.to>e.to?i.sliceDoc(e.to,s.to):"";n=i.replaceSelection(r.state.toText(l+e.insert.sliceString(0,void 0,r.state.lineBreak)+c))}else{let l=i.changes(e),c=t&&t.main.to<=l.newLength?t.main:void 0;if(i.selection.ranges.length>1&&(r.inputState.composing>=0||r.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let d=r.state.sliceDoc(e.from,e.to),h,u=t&&yy(r,t.main.head);if(u){let p=e.insert.length-(e.to-e.from);h={from:u.from,to:u.to-p}}else h=r.state.doc.lineAt(s.head);let f=s.to-e.to;n=i.changeByRange(p=>{if(p.from==s.from&&p.to==s.to)return{changes:l,range:c||p.map(l)};let O=p.to-f,x=O-d.length;if(r.state.sliceDoc(x,O)!=d||O>=h.from&&x<=h.to)return{range:p};let w=i.changes({from:x,to:O,insert:e.insert}),E=p.to-s.to;return{changes:w,range:c?M.range(Math.max(0,c.anchor+E),Math.max(0,c.head+E)):p.map(w)}})}else n={changes:l,selection:c&&i.selection.replaceRange(c)}}let a="input.type";return(r.composing||r.inputState.compositionPendingChange&&r.inputState.compositionEndedAt>Date.now()-50)&&(r.inputState.compositionPendingChange=!1,a+=".compose",r.inputState.compositionFirstChange&&(a+=".start",r.inputState.compositionFirstChange=!1)),i.update(n,{userEvent:a,scrollIntoView:!0})}function wy(r,e,t,n){let i=Math.min(r.length,e.length),s=0;for(;s<i&&r.charCodeAt(s)==e.charCodeAt(s);)s++;if(s==i&&r.length==e.length)return null;let o=r.length,a=e.length;for(;o>0&&a>0&&r.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(n=="end"){let l=Math.max(0,s-Math.min(o,a));t-=o+l-s}if(o<s&&r.length<e.length){let l=t<=s&&t>=o?s-t:0;s-=l,a=s+(a-o),o=s}else if(a<s){let l=t<=s&&t>=a?s-t:0;s-=l,o=s+(o-a),a=s}return{from:s,toA:o,toB:a}}function hT(r){let e=[];if(r.root.activeElement!=r.contentDOM)return e;let{anchorNode:t,anchorOffset:n,focusNode:i,focusOffset:s}=r.observer.selectionRange;return t&&(e.push(new Pc(t,n)),(i!=t||s!=n)&&e.push(new Pc(i,s))),e}function uT(r,e){if(r.length==0)return null;let t=r[0].pos,n=r.length==2?r[1].pos:t;return t>-1&&n>-1?M.single(t+e,n+e):null}function kc(r,e){return e.head==r.main.head&&e.anchor==r.main.anchor}var Ef=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,ee.safari&&e.contentDOM.addEventListener("input",()=>null),ee.gecko&&$T(e.contentDOM.ownerDocument)}handleEvent(e){!xT(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let n=this.handlers[e];if(n){for(let i of n.observers)i(this.view,t);for(let i of n.handlers){if(t.defaultPrevented)break;if(i(this.view,t)){t.preventDefault();break}}}}ensureHandl
Line truncated
|
||||
`))};if((ee.mac||ee.android)&&h.from==o-1&&/^\. ?$/.test(n.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(h={from:a,to:l,insert:ke.of([n.text.replace("."," ")])}),this.pendingContextChange=h,!e.state.readOnly){let u=this.to-this.from+(h.to-h.from+h.insert.length);up(e,h,M.single(this.toEditorPos(n.selectionStart,u),this.toEditorPos(n.selectionEnd,u)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),h.from<h.to&&!h.insert.length&&e.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,n.updateRangeStart-1),Math.min(t.text.length,n.updateRangeStart+1)))&&this.handlers.compositionend(n)},this.handlers.characterboundsupdate=n=>{let i=[],s=null;for(let o=this.toEditorPos(n.rangeStart),a=this.toEditorPos(n.rangeEnd);o<a;o++){let l=e.coordsForChar(o);s=l&&new DOMRect(l.left,l.top,l.right-l.left,l.bottom-l.top)||s||new DOMRect,i.push(s)}t.updateCharacterBounds(n.rangeStart,i)},this.handlers.textformatupdate=n=>{let i=[];for(let s of n.getTextFormats()){let o=s.underlineStyle,a=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(a)){let l=this.toEditorPos(s.rangeStart),c=this.toEditorPos(s.rangeEnd);if(l<c){let d=`text-decoration: underline ${/^[a-z]/.test(o)?o+" ":o=="Dashed"?"dashed ":o=="Squiggle"?"wavy ":""}${/thin/i.test(a)?1:2}px`;i.push(F.mark({attributes:{style:d}}).range(l,c))}}}e.dispatch({effects:fy.of(F.set(i))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:n}=this.composing;this.composing=null,n&&this.reset(e.state)}};for(let n in this.handlers)t.addEventListener(n,this.handlers[n]);this.measureReq={read:n=>{let i=oa(n.root);i&&i.rangeCount&&this.editContext.updateSelectionBounds(i.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,n=!1,i=this.pendingContextChange;return e.changes.iterChanges((s,o,a,l,c)=>{if(n)return;let d=c.length-(o-s);if(i&&o>=i.to)if(i.from==s&&i.to==o&&i.insert.eq(c)){i=this.pendingContextChange=null,t+=d,this.to+=d;return}else i=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=d,this.to+=d;else if(s<this.to){if(s<this.from||o>this.to||this.to-this.from+c.length>3e4){n=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=d}t+=d}),i&&!n&&this.revertPending(e.state),!n}update(e){let t=this.pendingContextChange,n=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(n.from,n.to)&&e.transactions.some(i=>!i.isUserEvent("input.type")&&i.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),i=this.toContextPos(t.head);(this.editContext.selectionStart!=n||this.editContext.selectionEnd!=i)&&this.editContext.updateSelection(n,i)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to<e.doc.length&&this.to-t<500||this.to-this.from>1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let n=this.composing;return n&&n.drifted?n.editorBase+(e-n.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},V=class r{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=d
Line truncated
|
||||
-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,Gf),e_={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"},of=null;function t_(){var r;if(of==null&&typeof document!="undefined"&&document.body){let e=document.body.style;of=((r=e.tabSize)!==null&&r!==void 0?r:e.MozTabSize)!=null}return of||!1}var mc=J.define({combine(r){let e=ar(r,{render:null,specialChars:JT,addSpecialChars:null});return(e.replaceTabs=!t_())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,Gf)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Gf)),e}});function Yy(r={}){return[mc.of(r),r_()]}var L0=null;function r_(){return L0||(L0=We.fromClass(class{constructor(r){this.view=r,this.decorations=F.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(r.state.facet(mc)),this.decorations=this.decorator.createDeco(r)}makeDecorator(r){return new la({regexp:r.specialChars,decoration:(e,t,n)=>{let{doc:i}=t.state,s=Yr(e[0],0);if(s==9){let o=i.lineAt(n),a=t.state.tabSize,l=zt(o.text,a,n-o.from);return F.replace({widget:new Kf((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=F.replace({widget:new Hf(r,s)}))},boundary:r.replaceTabs?void 0:/[^]/})}update(r){let e=r.state.facet(mc);r.startState.facet(mc)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(r.view)):this.decorations=this.decorator.updateDeco(r,this.decorations)}},{decorations:r=>r.decorations}))}var n_="\u2022";function i_(r){return r>=32?n_:r==10?"\u2424":String.fromCharCode(9216+r)}var Hf=class extends ct{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=i_(this.code),n=e.state.phrase("Control character")+" "+(e_[this.code]||"0x"+this.code.toString(16)),i=this.options.render&&this.options.render(this.code,n,t);if(i)return i;let s=document.createElement("span");return s.textContent=t,s.title=n,s.setAttribute("aria-label",n),s.className="cm-specialChar",s}ignoreEvent(){return!1}},Kf=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 Ic(){return o_}var s_=F.line({class:"cm-activeLine"}),o_=We.fromClass(class{constructor(r){this.decorations=this.getDeco(r)}update(r){(r.docChanged||r.selectionSet)&&(this.decorations=this.getDeco(r.view))}getDeco(r){let e=-1,t=[];for(let n of r.state.selection.ranges){let i=r.lineBlockAt(n.head);i.from>e&&(t.push(s_.range(i.from)),e=i.from)}return F.set(t)}},{decorations:r=>r.decorations});var Jf=2e3;function a_(r,e,t){let n=Math.min(e.line,t.line),i=Math.max(e.line,t.line),s=[];if(e.off>Jf||t.off>Jf||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=n;l<=i;l++){let c=r.doc.line(l);c.length<=a&&s.push(M.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=n;l<=i;l++){let c=r.doc.line(l),d=tc(c.text,o,r.tabSize,!0);if(d<0)s.push(M.cursor(c.to));else{let h=tc(c.text,a,r.tabSize);s.push(M.range(c.from+d,c.from+h))}}}return s}function l_(r,e){let t=r.coordsAtPos(r.viewport.from);return t?Math.round(Math.abs((t.left-e)/r.defaultCharacterWidth)):-1}function Z0(r,e){let t=r.posAtCoords({x:e.clientX,y:e.clientY},!1),n=r.state.doc.lineAt(t),i=t-n.from,s=i>Jf?-1:i==n.length?l_(r,e.clientX):zt(n.text,r.state.tabSize,t-n.from);return{line:n.number,col:s,off:i}}function c_(r,e){let t=Z0(r,e),n=r.state.selection;return t?{update(i){if(i.docChanged){let s=i.changes.mapPos(i.startState.doc.line(t.line).from),o=i.state.doc.lineAt(s);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},n=n.map(i.changes)}},get(i,s,o){let a=Z0(r,i);if(!a)return n;let l=a_(r.state,t,a);return l.length?o?M.create(l.concat(n.ranges)):M.create(l):n}}:null}function zc(r){let e=(r==null?void 0:r.eventFilter)||(t=>t.altKey&&t.button==0);return V.mouseSelectionStyle.of((t,n)=>e(n)?c_(t,n):null)}var d_={Alt:[18,r=>!!r.altKey],Control:[17,r=>!!r.ctrlKey],Shift:[16,r=>!!r.shiftKey],Meta:[91,r=>!!r.metaKey]},h_={style:"cursor: crosshair"};function Wc(r={}){let[e,t]=d_[r.key||"Alt"],n=We.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))}}});retur
Line truncated
|
||||
`&&(t="");else{let n=t.indexOf(`
|
||||
`);n>-1&&(t=t.slice(0,n))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),n=e+t.length;for(let i=this.rangeIndex;;){let s=this.ranges[i].to;if(s>=n||(t=t.slice(0,s-(n-t.length)),i++,i==this.ranges.length))break;let o=this.ranges[i].from,a=this.lineAfter(o);t+=a,n=o+a.length}return{line:t,end:n}}skipGapsTo(e,t,n){for(;;){let i=this.ranges[this.rangeIndex].to,s=e+t;if(n>0?i>s:i>=s)break;let o=this.ranges[++this.rangeIndex].from;t+=o-i}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to<this.parsedPos;)this.rangeIndex++}emitToken(e,t,n,i){let s=4;if(this.ranges.length>1){i=this.skipGapsTo(t,i,1),t+=i;let a=this.chunk.length;i=this.skipGapsTo(n,i,-1),n+=i,s+=this.chunk.length-a}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==t?this.chunk[o+2]=n:this.chunk.push(e,t,n,s),i}parseLine(e){let{line:t,end:n}=this.nextLine(),i=0,{streamParser:s}=this.lang,o=new ed(t,e?e.state.tabSize:4,e?si(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let a=Ix(s.token,o,this.state);if(a&&(i=this.emitToken(this.lang.tokenTable.resolve(a),this.parsedPos+o.start,this.parsedPos+o.pos,i)),o.start>1e4)break}this.parsedPos=n,this.moveRangeIndex(),this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let e=xe.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:yC,topID:0,maxBufferLength:512,reused:this.chunkReused});e=new xe(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 xe(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}};function Ix(r,e,t){e.start=e.pos;for(let n=0;n<10;n++){let i=r(e,t);if(e.pos>e.start)return i}throw new Error("Stream parser failed to advance stream.")}var qp=Object.create(null),ga=[rt.none],yC=new Qn(ga),vx=[],wx=Object.create(null),zx=Object.create(null);for(let[r,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])zx[r]=Wx(qp,e);var td=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),zx)}resolve(e){return e?this.table[e]||(this.table[e]=Wx(this.extra,e)):0}},xC=new td(qp);function Ep(r,e){vx.indexOf(r)>-1||(vx.push(r),console.warn(e))}function Wx(r,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let d=r[c]||m[c];d?typeof d=="function"?l.length?l=l.map(d):Ep(c,`Modifier ${c} used at start of tag`):l.length?Ep(c,`Tag ${c} used as modifier`):l=Array.isArray(d)?d:[d]:Ep(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let n=e.replace(/ /g,"_"),i=n+" "+t.map(a=>a.id),s=wx[i];if(s)return s.id;let o=wx[i]=rt.define({id:ga.length,name:n,props:[vt({[n]:t})]});return ga.push(o),o.id}function SC(r,e){let t=rt.define({id:ga.length,name:"Document",props:[_n.add(()=>r),Cr.add(()=>n=>e.getIndent(n))],top:!0});return ga.push(t),t}var jD={rtl:F.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:Ze.RTL}),ltr:F.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:Ze.LTR}),auto:F.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var od=class{constructor(e,t,n,i){this.state=e,this.pos=t,this.explicit=n,this.view=i,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=Te(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),i=t.text.slice(n-t.from,this.pos-t.from),s=i.search(wC(e,!1));return s<0?null:{from:n+s,to:this.pos,text:i.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,n){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}};function Vx(r){let e=Object.keys(r).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function vC(r){let e=Object.create(null),t=Object.create(null);for(let{label:i}of r){e[i[0]]=!0;for(let s=1;s<i.length;s++)t[i[s]]=!0}let n=Vx(e)+Vx(t)+"*$";return[new RegExp("^"+n),new RegExp(n)]}function Fx(r){let e=r.map(i=>typeof i=="string"?{label:i}:i),[t,n]=e.every(i=>/^\w+$/.test(i.label))?[/\w*$/,/\w+$/]:vC(e);return i=>{let s=i.matchBefore(n);return s||i.explicit?{from:s?s.from:i.pos,options:e,validFor:t}:null}}function Nx(r,e){return t=>{for(let n=Te(t.state).resolve
Line truncated
|
||||
`;let o=r.state.facet(un),a=o instanceof wt?"Lezer LRLanguage":o instanceof mt?"StreamLanguage":"Unknown",l=o instanceof wt?"AST ":o instanceof mt?"Token ":"Name ";return{pos:e,above:!0,arrow:!0,create(c){let d=document.createElement("div");d.style.overflow="visible",d.style.height="0",d.style.width="0";let h=document.createElement("div");return h.className="cm-debug-tooltip",h.textContent=`Parser: ${a}
|
||||
`);n>-1&&(t=t.slice(0,n))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),n=e+t.length;for(let i=this.rangeIndex;;){let s=this.ranges[i].to;if(s>=n||(t=t.slice(0,s-(n-t.length)),i++,i==this.ranges.length))break;let o=this.ranges[i].from,a=this.lineAfter(o);t+=a,n=o+a.length}return{line:t,end:n}}skipGapsTo(e,t,n){for(;;){let i=this.ranges[this.rangeIndex].to,s=e+t;if(n>0?i>s:i>=s)break;let o=this.ranges[++this.rangeIndex].from;t+=o-i}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to<this.parsedPos;)this.rangeIndex++}emitToken(e,t,n,i){let s=4;if(this.ranges.length>1){i=this.skipGapsTo(t,i,1),t+=i;let a=this.chunk.length;i=this.skipGapsTo(n,i,-1),n+=i,s+=this.chunk.length-a}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==t?this.chunk[o+2]=n:this.chunk.push(e,t,n,s),i}parseLine(e){let{line:t,end:n}=this.nextLine(),i=0,{streamParser:s}=this.lang,o=new ed(t,e?e.state.tabSize:4,e?si(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let a=Ix(s.token,o,this.state);if(a&&(i=this.emitToken(this.lang.tokenTable.resolve(a),this.parsedPos+o.start,this.parsedPos+o.pos,i)),o.start>1e4)break}this.parsedPos=n,this.moveRangeIndex(),this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let e=xe.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:yC,topID:0,maxBufferLength:512,reused:this.chunkReused});e=new xe(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 xe(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}};function Ix(r,e,t){e.start=e.pos;for(let n=0;n<10;n++){let i=r(e,t);if(e.pos>e.start)return i}throw new Error("Stream parser failed to advance stream.")}var Gp=Object.create(null),ga=[rt.none],yC=new Qn(ga),vx=[],wx=Object.create(null),zx=Object.create(null);for(let[r,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])zx[r]=Wx(Gp,e);var td=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),zx)}resolve(e){return e?this.table[e]||(this.table[e]=Wx(this.extra,e)):0}},xC=new td(Gp);function Mp(r,e){vx.indexOf(r)>-1||(vx.push(r),console.warn(e))}function Wx(r,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let d=r[c]||m[c];d?typeof d=="function"?l.length?l=l.map(d):Mp(c,`Modifier ${c} used at start of tag`):l.length?Mp(c,`Tag ${c} used as modifier`):l=Array.isArray(d)?d:[d]:Mp(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let n=e.replace(/ /g,"_"),i=n+" "+t.map(a=>a.id),s=wx[i];if(s)return s.id;let o=wx[i]=rt.define({id:ga.length,name:n,props:[wt({[n]:t})]});return ga.push(o),o.id}function SC(r,e){let t=rt.define({id:ga.length,name:"Document",props:[_n.add(()=>r),Cr.add(()=>n=>e.getIndent(n))],top:!0});return ga.push(t),t}var jD={rtl:F.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:Ze.RTL}),ltr:F.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:Ze.LTR}),auto:F.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var od=class{constructor(e,t,n,i){this.state=e,this.pos=t,this.explicit=n,this.view=i,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=Te(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),i=t.text.slice(n-t.from,this.pos-t.from),s=i.search(wC(e,!1));return s<0?null:{from:n+s,to:this.pos,text:i.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,n){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}};function Vx(r){let e=Object.keys(r).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function vC(r){let e=Object.create(null),t=Object.create(null);for(let{label:i}of r){e[i[0]]=!0;for(let s=1;s<i.length;s++)t[i[s]]=!0}let n=Vx(e)+Vx(t)+"*$";return[new RegExp("^"+n),new RegExp(n)]}function Fx(r){let e=r.map(i=>typeof i=="string"?{label:i}:i),[t,n]=e.every(i=>/^\w+$/.test(i.label))?[/\w*$/,/\w+$/]:vC(e);return i=>{let s=i.matchBefore(n);return s||i.explicit?{from:s?s.from:i.pos,options:e,validFor:t}:null}}function Nx(r,e){return t=>{for(let n=Te(t.state).resolve
Line truncated
|
||||
`;let o=r.state.facet(un),a=o instanceof Pt?"Lezer LRLanguage":o instanceof mt?"StreamLanguage":"Unknown",l=o instanceof Pt?"AST ":o instanceof mt?"Token ":"Name ";return{pos:e,above:!0,arrow:!0,create(c){let d=document.createElement("div");d.style.overflow="visible",d.style.height="0",d.style.width="0";let h=document.createElement("div");return h.className="cm-debug-tooltip",h.textContent=`Parser: ${a}
|
||||
${l}: ${n.name}
|
||||
Tags : ${s}`,h.style.whiteSpace="pre-wrap",h.style.fontFamily="monospace",h.style.background="#333",h.style.color="white",h.style.padding="2px 8px",h.style.borderRadius="4px",h.style.fontSize="12px",h.style.border="1px solid #555",h.style.pointerEvents="none",h.style.position="absolute",h.style.bottom="0",h.style.width="max-content",d.appendChild(h),{dom:d}}}},{hoverTime:10,hideOnChange:!0});var BC=r=>{let{state:e}=r,t=e.doc.lineAt(e.selection.main.from),n=am(r.state,t.from);return n.line?jC(r):n.block?NC(r):!1};function om(r,e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let i=r(e,t);return i?(n(t.update(i)),!0):!1}}var jC=om(GC,0);var FC=om(dS,0);var NC=om((r,e)=>dS(r,e,qC(e)),0);function am(r,e){let t=r.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var Sa=50;function UC(r,{open:e,close:t},n,i){let s=r.sliceDoc(n-Sa,n),o=r.sliceDoc(i,i+Sa),a=/\s*$/.exec(s)[0].length,l=/^\s*/.exec(o)[0].length,c=s.length-a;if(s.slice(c-e.length,c)==e&&o.slice(l,l+t.length)==t)return{open:{pos:n-a,margin:a&&1},close:{pos:i+l,margin:l&&1}};let d,h;i-n<=2*Sa?d=h=r.sliceDoc(n,i):(d=r.sliceDoc(n,n+Sa),h=r.sliceDoc(i-Sa,i));let u=/^\s*/.exec(d)[0].length,f=/\s*$/.exec(h)[0].length,p=h.length-f-t.length;return d.slice(u,u+e.length)==e&&h.slice(p,p+t.length)==t?{open:{pos:n+u+e.length,margin:/\s/.test(d.charAt(u+e.length))?1:0},close:{pos:i-f-t.length,margin:/\s/.test(h.charAt(p-1))?1:0}}:null}function qC(r){let e=[];for(let t of r.selection.ranges){let n=r.doc.lineAt(t.from),i=t.to<=n.to?n:r.doc.lineAt(t.to);i.from>n.from&&i.from==t.to&&(i=t.to==n.to+1?n:r.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>n.from?e[s].to=i.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:i.to})}return e}function dS(r,e,t=e.selection.ranges){let n=t.map(s=>am(e,s.from).block);if(!n.every(s=>s))return null;let i=t.map((s,o)=>UC(e,n[o],s.from,s.to));if(r!=2&&!i.every(s=>s))return{changes:e.changes(t.map((s,o)=>i[o]?[]:[{from:s.from,insert:n[o].open+" "},{from:s.to,insert:" "+n[o].close}]))};if(r!=1&&i.some(s=>s)){let s=[];for(let o=0,a;o<i.length;o++)if(a=i[o]){let l=n[o],{open:c,close:d}=a;s.push({from:c.pos-l.open.length,to:c.pos+c.margin},{from:d.pos-d.margin,to:d.pos+l.close.length})}return{changes:s}}return null}function GC(r,e,t=e.selection.ranges){let n=[],i=-1;e:for(let{from:s,to:o}of t){let a=n.length,l=1e9,c;for(let d=s;d<=o;){let h=e.doc.lineAt(d);if(c==null&&(c=am(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,p=h.text.slice(u,u+c.length)==c?u:-1;u<h.text.length&&u<l&&(l=u),n.push({line:h,comment:p,token:c,indent:u,empty:f,single:!1})}d=h.to+1}if(l<1e9)for(let d=a;d<n.length;d++)n[d].indent<n[d].line.text.length&&(n[d].indent=l);n.length==a+1&&(n[a].single=!0)}if(r!=2&&n.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:a,token:l,indent:c,empty:d,single:h}of n)(h||!d)&&s.push({from:a.from+c,insert:l+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(r!=1&&n.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:a,token:l}of n)if(a>=0){let c=o.from+a,d=c+l.length;o.text[d-o.from]==" "&&d++,s.push({from:c,to:d})}return{changes:s}}return null}var nm=Ht.define(),dd=Ht.define(),HC=J.define(),hS=J.define({combine(r){return ar(r,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,i)=>e(n,i)||t(n,i)})}}),uS=$e.define({create(){return Ni.empty},update(r,e){let t=e.state.facet(hS),n=e.annotation(nm);if(n){let l=qr.fromTransaction(e,n.selection),c=n.side,d=c==0?r.undone:r.done;return l?d=cd(d,d.length,t.minDepth,l):d=mS(d,e.startState.selection),new Ni(c==0?n.rest:d,c==0?d:n.rest)}let i=e.annotation(dd);if((i=="full"||i=="before")&&(r=r.isolate()),e.annotation(Ue.addToHistory)===!1)return e.changes.empty?r:r.addMapping(e.changes.desc);let s=qr.fromTransaction(e),o=e.annotation(Ue.time),a=e.annotation(Ue.userEvent);return s?r=r.addChanges(s,o,a,t,e):e.selection&&(r=r.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(i=="full"||i=="after")&&(r=r.isolate()),r},toJSON(r){return{done:r.done.map(e=>e.toJSON()),undone:r.undone.map(e=>e.toJSON())}},fromJSON(r){return new Ni(r.done.map(qr.fromJSON),r.undone.map(qr.fromJSON))}});function fS(r={}){return[uS,hS.of(r),V.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?va:e.inputType=="historyRedo"?Js:null;return n?(e.preventDefault(),n(t)):!1}})]}function hd(r,e){return function({state:t,dispatch:n}){if(!e&&t.readOnly)return!1;let i=t.field(uS,!1);if(!i)return!1;let s=i.pop(r,t,e);return s?(n(s),!0):!1}}var va=hd(0,!1),Js=hd(1,!1),KC=hd(0,!0),JC=hd(1,!0);var qr=class r{constructor(e,t,n,i,s){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=i,this.selectionsAfter=s}setSelAfter(e){return new r(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.m
Line truncated
|
||||
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 BC=r=>{let{state:e}=r,t=e.doc.lineAt(e.selection.main.from),n=lm(r.state,t.from);return n.line?jC(r):n.block?NC(r):!1};function am(r,e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let i=r(e,t);return i?(n(t.update(i)),!0):!1}}var jC=am(GC,0);var FC=am(dS,0);var NC=am((r,e)=>dS(r,e,qC(e)),0);function lm(r,e){let t=r.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var Sa=50;function UC(r,{open:e,close:t},n,i){let s=r.sliceDoc(n-Sa,n),o=r.sliceDoc(i,i+Sa),a=/\s*$/.exec(s)[0].length,l=/^\s*/.exec(o)[0].length,c=s.length-a;if(s.slice(c-e.length,c)==e&&o.slice(l,l+t.length)==t)return{open:{pos:n-a,margin:a&&1},close:{pos:i+l,margin:l&&1}};let d,h;i-n<=2*Sa?d=h=r.sliceDoc(n,i):(d=r.sliceDoc(n,n+Sa),h=r.sliceDoc(i-Sa,i));let u=/^\s*/.exec(d)[0].length,f=/\s*$/.exec(h)[0].length,p=h.length-f-t.length;return d.slice(u,u+e.length)==e&&h.slice(p,p+t.length)==t?{open:{pos:n+u+e.length,margin:/\s/.test(d.charAt(u+e.length))?1:0},close:{pos:i-f-t.length,margin:/\s/.test(h.charAt(p-1))?1:0}}:null}function qC(r){let e=[];for(let t of r.selection.ranges){let n=r.doc.lineAt(t.from),i=t.to<=n.to?n:r.doc.lineAt(t.to);i.from>n.from&&i.from==t.to&&(i=t.to==n.to+1?n:r.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>n.from?e[s].to=i.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:i.to})}return e}function dS(r,e,t=e.selection.ranges){let n=t.map(s=>lm(e,s.from).block);if(!n.every(s=>s))return null;let i=t.map((s,o)=>UC(e,n[o],s.from,s.to));if(r!=2&&!i.every(s=>s))return{changes:e.changes(t.map((s,o)=>i[o]?[]:[{from:s.from,insert:n[o].open+" "},{from:s.to,insert:" "+n[o].close}]))};if(r!=1&&i.some(s=>s)){let s=[];for(let o=0,a;o<i.length;o++)if(a=i[o]){let l=n[o],{open:c,close:d}=a;s.push({from:c.pos-l.open.length,to:c.pos+c.margin},{from:d.pos-d.margin,to:d.pos+l.close.length})}return{changes:s}}return null}function GC(r,e,t=e.selection.ranges){let n=[],i=-1;e:for(let{from:s,to:o}of t){let a=n.length,l=1e9,c;for(let d=s;d<=o;){let h=e.doc.lineAt(d);if(c==null&&(c=lm(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,p=h.text.slice(u,u+c.length)==c?u:-1;u<h.text.length&&u<l&&(l=u),n.push({line:h,comment:p,token:c,indent:u,empty:f,single:!1})}d=h.to+1}if(l<1e9)for(let d=a;d<n.length;d++)n[d].indent<n[d].line.text.length&&(n[d].indent=l);n.length==a+1&&(n[a].single=!0)}if(r!=2&&n.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:a,token:l,indent:c,empty:d,single:h}of n)(h||!d)&&s.push({from:a.from+c,insert:l+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(r!=1&&n.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:a,token:l}of n)if(a>=0){let c=o.from+a,d=c+l.length;o.text[d-o.from]==" "&&d++,s.push({from:c,to:d})}return{changes:s}}return null}var im=Ht.define(),dd=Ht.define(),HC=J.define(),hS=J.define({combine(r){return ar(r,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,i)=>e(n,i)||t(n,i)})}}),uS=$e.define({create(){return Ni.empty},update(r,e){let t=e.state.facet(hS),n=e.annotation(im);if(n){let l=qr.fromTransaction(e,n.selection),c=n.side,d=c==0?r.undone:r.done;return l?d=cd(d,d.length,t.minDepth,l):d=mS(d,e.startState.selection),new Ni(c==0?n.rest:d,c==0?d:n.rest)}let i=e.annotation(dd);if((i=="full"||i=="before")&&(r=r.isolate()),e.annotation(Ue.addToHistory)===!1)return e.changes.empty?r:r.addMapping(e.changes.desc);let s=qr.fromTransaction(e),o=e.annotation(Ue.time),a=e.annotation(Ue.userEvent);return s?r=r.addChanges(s,o,a,t,e):e.selection&&(r=r.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(i=="full"||i=="after")&&(r=r.isolate()),r},toJSON(r){return{done:r.done.map(e=>e.toJSON()),undone:r.undone.map(e=>e.toJSON())}},fromJSON(r){return new Ni(r.done.map(qr.fromJSON),r.undone.map(qr.fromJSON))}});function fS(r={}){return[uS,hS.of(r),V.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?va:e.inputType=="historyRedo"?Js:null;return n?(e.preventDefault(),n(t)):!1}})]}function hd(r,e){return function({state:t,dispatch:n}){if(!e&&t.readOnly)return!1;let i=t.field(uS,!1);if(!i)return!1;let s=i.pop(r,t,e);return s?(n(s),!0):!1}}var va=hd(0,!1),Js=hd(1,!1),KC=hd(0,!0),JC=hd(1,!0);var qr=class r{constructor(e,t,n,i,s){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=i,this.selectionsAfter=s}setSelAfter(e){return new r(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.m
Line truncated
|
||||
<div class="form-group"><label>Tab size: <input type="number" id="setting_tabSize" min="1" max="40" value="${r.tabSize}" style="width:4em"></label></div>
|
||||
<div class="checkbox"><label><input type="checkbox" id="setting_tabsToSpaces" ${r.tabsToSpaces?"checked":""}> Insert spaces when pressing TAB</label></div>
|
||||
<div class="checkbox"><label><input type="checkbox" id="setting_highlightSpecialChars" ${r.highlightSpecialChars?"checked":""}> Highlight special characters</label></div>
|
||||
@@ -29,23 +29,23 @@ Tags : ${s}`,h.style.whiteSpace="pre-wrap",h.style.fontFamily="monospace",h.sty
|
||||
<h5>Internal</h5>
|
||||
<div class="checkbox"><label><input type="checkbox" id="setting_debugHighlightTags" ${r.debugHighlightTags?"checked":""}> Debug editor syntax highlighting tags</label></div>
|
||||
`:""}
|
||||
</form>`,buttons:{cancel:{label:"Cancel",className:"btn-default"},ok:{label:"Save",className:"btn-primary",callback:()=>{r.tabSize=parseInt($("#setting_tabSize").val())||8,r.tabsToSpaces=$("#setting_tabsToSpaces").is(":checked"),r.highlightSpecialChars=$("#setting_highlightSpecialChars").is(":checked"),r.highlightWhitespace=$("#setting_highlightWhitespace").is(":checked"),r.highlightTrailingWhitespace=$("#setting_highlightTrailingWhitespace").is(":checked"),r.closeBrackets=$("#setting_closeBrackets").is(":checked"),r.showLineNumbers=$("#setting_showLineNumbers").is(":checked"),e&&(r.debugHighlightTags=$("#setting_debugHighlightTags").is(":checked")),r.showStatusBar=$("#setting_showStatusBar").is(":checked"),pR(r),mR(r),Xl(r.showStatusBar)}}}})}function bd(){return typeof navigator!="undefined"?navigator.storage:null}function OR(r){var e=r!==void 0?r:bd();return!!(e&&typeof e.persist=="function")}async function gR(r){var e=r!==void 0?r:bd();try{if(e&&typeof e.estimate=="function"){var t=await e.estimate();return{usage:t&&t.usage,quota:t&&t.quota}}}catch(n){console.log("storage.estimate() failed",n)}return{}}async function bR(r){var e=r!==void 0?r:bd(),t={supported:OR(e),persisted:!1};try{e&&typeof e.persisted=="function"&&(t.persisted=await e.persisted())}catch(i){console.log("storage.persisted() failed",i)}var n=await gR(e);return t.usage=n.usage,t.quota=n.quota,t}async function um(r){var e=r!==void 0?r:bd(),t=await bR(e);if(!t.supported||t.persisted)return t.granted=!1,t;try{t.persisted=await e.persist(),t.granted=t.persisted}catch(n){console.log("storage.persist() failed",n),t.granted=!1}return t}function yR(r){return r==null&&(r=typeof navigator!="undefined"?navigator.userAgent:""),r?/Edg\/|OPR\/|Chrome\/|Chromium\//.test(r)?"chromium":/Firefox\/|FxiOS\//.test(r)?"firefox":/Safari\//.test(r)?"safari":"other":"other"}function nv(r){if(typeof r!="number"||!isFinite(r))return"?";for(var e=["bytes","KB","MB","GB","TB"],t=0;r>=1024&&t<e.length-1;)r/=1024,t++;return(t==0?r.toFixed(0):r.toFixed(1))+" "+e[t]}function iv(r){return r.usage==null&&r.quota==null?"":"This site is using "+nv(r.usage)+" of the "+nv(r.quota)+" your browser allows."}var hm="Your edits are still saved in this browser either way — persistence only protects them if the browser needs to reclaim disk space. Use <b>File > Download All Changes as ZIP</b> (or push to GitHub) to keep a backup.";function sv(r){switch(r||yR()){case"chromium":return"Chrome and Edge never ask — 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 xR(){return"This browser doesn't support persistent storage, so it may discard your local file edits when it needs disk space. "+hm}function ov(r,e){var t=iv(r),n;return r.supported?r.persisted?n=(r.granted?"Your browser just granted persistent storage. ":"Your browser is already persisting your local file edits. ")+hm:n="Your browser has not granted persistent storage, so it may discard your local file edits when it needs disk space.<br><br>"+sv()+"<br><br>"+hm:n=xR(),t?n+"<br><br>"+t:n}function av(r){return"Your browser ran out of space for this site, so your last edit may not have been saved.<br><br>"+iv(r)+" Delete unused projects, or use <b>File > Download All Changes as ZIP</b> to back up your work before it is lost."+(r.supported&&!r.persisted?"<br><br>"+sv():"")}var dv=bu(_u());var ka=class{constructor(e,t){e=e||[],this.lines=e,this.text=t,this.offset2loc=new Map,this.line2offset=new Map;for(var n of e)n.offset>=0&&(this.offset2loc.has(n.offset)||this.offset2loc.set(n.offset,n),this.line2offset.has(n.line)||this.line2offset.set(n.line,n.offset));this.sortedOffsets=Array.from(this.offset2loc.keys()).sort((i,s)=>i-s)}findLineForOffset(e,t){let n=this.sortedOffsets;for(var i=0,s=n.length-1,o=-1;i<=s;){var a=i+s>>1;n[a]<=e?(o=a,i=a+1):s=a-1}if(o<0)return null;var l=n[o];return e-l>t?null:this.offset2loc.get(l)}lineCount(){return this.lines.length}};function lv(r){return"errors"in r}function cv(r){return"output"in r}var yd=class{constructor(e){this.preset_id=Tt(e)}async getRemoteFile(e){return new Promise((t,n)=>Io(e,t,_i(e)?"arraybuffer":"text"))}async getFileData(e){var t="presets/"+this.preset_id+"/"+e,n=await this.getRemoteFile(t);return n&&console.log("read",t,n.length,"bytes"),n}async setFileData(e,t){}onFileSystemUpdate(e){}};var io=class{constructor(e,t){this.basefs=eLine truncated
|
||||
</form>`,buttons:{cancel:{label:"Cancel",className:"btn-default"},ok:{label:"Save",className:"btn-primary",callback:()=>{r.tabSize=parseInt($("#setting_tabSize").val())||8,r.tabsToSpaces=$("#setting_tabsToSpaces").is(":checked"),r.highlightSpecialChars=$("#setting_highlightSpecialChars").is(":checked"),r.highlightWhitespace=$("#setting_highlightWhitespace").is(":checked"),r.highlightTrailingWhitespace=$("#setting_highlightTrailingWhitespace").is(":checked"),r.closeBrackets=$("#setting_closeBrackets").is(":checked"),r.showLineNumbers=$("#setting_showLineNumbers").is(":checked"),e&&(r.debugHighlightTags=$("#setting_debugHighlightTags").is(":checked")),r.showStatusBar=$("#setting_showStatusBar").is(":checked"),pR(r),mR(r),Xl(r.showStatusBar)}}}})}function bd(){return typeof navigator!="undefined"?navigator.storage:null}function OR(r){var e=r!==void 0?r:bd();return!!(e&&typeof e.persist=="function")}async function gR(r){var e=r!==void 0?r:bd();try{if(e&&typeof e.estimate=="function"){var t=await e.estimate();return{usage:t&&t.usage,quota:t&&t.quota}}}catch(n){console.log("storage.estimate() failed",n)}return{}}async function bR(r){var e=r!==void 0?r:bd(),t={supported:OR(e),persisted:!1};try{e&&typeof e.persisted=="function"&&(t.persisted=await e.persisted())}catch(i){console.log("storage.persisted() failed",i)}var n=await gR(e);return t.usage=n.usage,t.quota=n.quota,t}async function fm(r){var e=r!==void 0?r:bd(),t=await bR(e);if(!t.supported||t.persisted)return t.granted=!1,t;try{t.persisted=await e.persist(),t.granted=t.persisted}catch(n){console.log("storage.persist() failed",n),t.granted=!1}return t}function yR(r){return r==null&&(r=typeof navigator!="undefined"?navigator.userAgent:""),r?/Edg\/|OPR\/|Chrome\/|Chromium\//.test(r)?"chromium":/Firefox\/|FxiOS\//.test(r)?"firefox":/Safari\//.test(r)?"safari":"other":"other"}function nv(r){if(typeof r!="number"||!isFinite(r))return"?";for(var e=["bytes","KB","MB","GB","TB"],t=0;r>=1024&&t<e.length-1;)r/=1024,t++;return(t==0?r.toFixed(0):r.toFixed(1))+" "+e[t]}function iv(r){return r.usage==null&&r.quota==null?"":"This site is using "+nv(r.usage)+" of the "+nv(r.quota)+" your browser allows."}var um="Your edits are still saved in this browser either way — persistence only protects them if the browser needs to reclaim disk space. Use <b>File > Download All Changes as ZIP</b> (or push to GitHub) to keep a backup.";function sv(r){switch(r||yR()){case"chromium":return"Chrome and Edge never ask — 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 xR(){return"This browser doesn't support persistent storage, so it may discard your local file edits when it needs disk space. "+um}function ov(r,e){var t=iv(r),n;return r.supported?r.persisted?n=(r.granted?"Your browser just granted persistent storage. ":"Your browser is already persisting your local file edits. ")+um:n="Your browser has not granted persistent storage, so it may discard your local file edits when it needs disk space.<br><br>"+sv()+"<br><br>"+um:n=xR(),t?n+"<br><br>"+t:n}function av(r){return"Your browser ran out of space for this site, so your last edit may not have been saved.<br><br>"+iv(r)+" Delete unused projects, or use <b>File > Download All Changes as ZIP</b> to back up your work before it is lost."+(r.supported&&!r.persisted?"<br><br>"+sv():"")}var dv=yu(Cu());var ka=class{constructor(e,t){e=e||[],this.lines=e,this.text=t,this.offset2loc=new Map,this.line2offset=new Map;for(var n of e)n.offset>=0&&(this.offset2loc.has(n.offset)||this.offset2loc.set(n.offset,n),this.line2offset.has(n.line)||this.line2offset.set(n.line,n.offset));this.sortedOffsets=Array.from(this.offset2loc.keys()).sort((i,s)=>i-s)}findLineForOffset(e,t){let n=this.sortedOffsets;for(var i=0,s=n.length-1,o=-1;i<=s;){var a=i+s>>1;n[a]<=e?(o=a,i=a+1):s=a-1}if(o<0)return null;var l=n[o];return e-l>t?null:this.offset2loc.get(l)}lineCount(){return this.lines.length}};function lv(r){return"errors"in r}function cv(r){return"output"in r}var yd=class{constructor(e){this.preset_id=Tt(e)}async getRemoteFile(e){return new Promise((t,n)=>Io(e,t,_i(e)?"arraybuffer":"text"))}async getFileData(e){var t="presets/"+this.preset_id+"/"+e,n=await this.getRemoteFile(t);return n&&console.log("read",t,n.length,"bytes"),n}async setFileData(e,t){}onFileSystemUpdate(e){}};var io=class{constructor(e,t){this.basefs=eLine truncated
|
||||
=====
|
||||
|
||||
[Open this project in 8bitworkshop](http://8bitworkshop.com/redir.html?platform=$PLATFORM&githubURL=$GITHUBURL&file=$MAINFILE).
|
||||
`;function Ui(){for(var r={},e=0;e<localStorage.length;e++){var t=localStorage.key(e);if(t.startsWith("__repo__")){var n=JSON.parse(localStorage.getItem(t)),i=t.substring(8);r[i]=n}}return r}function Qa(r){var e=r.split("/",8);return e.length<5||e[0]!="https:"||e[2]!="github.com"||e[5]&&e[5]!="tree"?null:{user:e[3],repo:e[4],repopath:e[3]+"/"+e[4],branch:e[6],subtreepath:e[7]}}var wd=class{constructor(e,t,n,i){this.githubCons=e,this.githubToken=t,this.store=n,this.project=i,this.recreateGithub()}recreateGithub(){this.github=new this.githubCons({token:this.githubToken})}login(){if(this.githubToken&&this.githubToken.length)return new Promise((t,n)=>{t()});var e=new firebase.auth.GithubAuthProvider;return e.addScope("repo"),firebase.auth().signInWithPopup(e).then(t=>{this.githubToken=t.credential.accessToken;var n=t.user;this.recreateGithub(),document.cookie="__github_key="+this.githubToken+";path=/;max-age=31536000",console.log("Stored GitHub OAUTH key")})}logout(){return this.githubToken&&this.githubToken.length?firebase.auth().signOut().then(()=>{document.cookie="__github_key=;path=/;max-age=0",this.githubToken=null,this.recreateGithub()}):new Promise((e,t)=>{e()})}isFileIgnored(e){return e=e.toUpperCase(),!!(e.startsWith("LICENSE")||e.startsWith("README")||e.startsWith("."))}async getGithubSession(e){var t=Qa(e);if(!t)throw new Error("Please enter a valid GitHub URL.");var n=Ui()[t.repopath],i=t.branch||n&&n.branch,s=this.github.repos(t.user,t.repo);try{i=(await s.fetch()).defaultBranch||"master"}catch(a){console.log("could not fetch default branch: "+a),i="main"}console.log("branch =",i);var o={url:e,user:t.user,reponame:t.repo,repopath:t.repopath,branch:i,subtreepath:t.subtreepath,prefix:"",repo:s,platform_id:this.project?this.project.platform_id:n?n.platform_id:null};return o}getGithubHEADTree(e){var t;return this.getGithubSession(e).then(n=>(t=n,t.repo.git.refs.heads(t.branch).fetch())).then(n=>(t.head=n,t.sha=n.object.sha,t.repo.git.trees(t.sha).fetch())).then(n=>{if(t.subtreepath){for(let i of n.tree)if(i.type=="tree"&&i.path==t.subtreepath&&i.sha)return t.repo.git.trees(i.sha).fetch();throw Error("Cannot find subtree '"+t.subtreepath+"' in tree "+n.sha)}return n}).then(n=>(t.tree=n,t))}bind(e,t){var n="__repo__"+e.repopath;if(t){var i={url:e.url,branch:e.branch,platform_id:e.platform_id,mainPath:e.mainPath,sha:e.sha};console.log("storing",i),localStorage.setItem(n,JSON.stringify(i))}else localStorage.removeItem(n)}import(e){var t;return this.getGithubSession(e).then(n=>(t=n,t.repo.contents("README.md").read())).catch(n=>(console.log(n),console.log("no README.md found"),t.repo.fetch().then(i=>""))).then(n=>{var i;if(i=/8bitworkshop.com[^)]+file=([^)&]+)/.exec(n),i&&i[1]&&(console.log("main path: '"+i[1]+"'"),t.mainPath=i[1]),i=/8bitworkshop.com[^)]+platform=([A-Za-z0-9._\-]+)/.exec(n),i){if(console.log("platform id: '"+i[1]+"'"),t.platform_id&&!t.platform_id.startsWith(i[1]))throw Error("Platform mismatch: Repository is '"+i[1]+"', you have '"+t.platform_id+"' selected.");t.platform_id=i[1]}return this.bind(t,!0),t})}pull(e,t){var n;return this.getGithubHEADTree(e).then(i=>{n=i;let s=[];return n.paths=[],n.tree.tree.forEach(o=>{if(console.log(o.path,o.type,o.size),n.paths.push(o.path),o.type=="blob"&&!this.isFileIgnored(o.path)){var a=n.repo.git.blobs(o.sha).fetch().then(l=>{var c=n.prefix+o.path,d=o.size,h=l.encoding,u=l.content;if(l.encoding=="base64"){var f=Al(atob(u)),p=_i(o.path,f);u=p?f:El(f)}return l.size!=u.length&&(u=u.slice(0,l.size)),(t||this.store).setItem(c,u)});s.push(a)}else console.log("ignoring "+o.path)}),Promise.all(s)}).then(i=>n)}importAndPull(e){return this.import(e).then(t=>this.pull(e))}publish(e,t,n,i){var s,o=this.project.platform_id,a=this.project.stripLocalPath(this.project.mainPath);return this.github.user.repos.create({name:e,description:t,private:i,auto_init:!1,license_template:n}).then(l=>{s=l;var c=SR;c=c.replace(/\$NAME/g,encodeURIComponent(e)),c=c.replace(/\$PLATFORM/g,encodeURIComponent(o)),c=c.replace(/\$GITHUBURL/g,encodeURIComponent(s.htmlUrl)),c=c.replace(/\$MAINFILE/g,encodeURIComponent(a));var d={message:"8bitworkshop: updated metadata in README.md",content:btoa(c)};return s.contents("README.md").add(d)}).then(()=>this.getGithubSession(s.htmlUrl))}commit(e,t,n){var i;return t||(t="updated from 8bitworkshop.com"),this.getGithubHEADTree(e).then(s=>{if(i=s,i.subtreepath)throw Error("Sorry, right now you can only commit files to the root directory of a repository.");return Promise.all(n.map(o=>typeof o.data=="string"?i.repo.git.blobs.create({content:o.data,encoding:"utf-8"}):i.repo.git.blobs.create({content:btoa(Rl(o.data)),encoding:"base64"})))}).then(s=>i.repo.git.trees.create({tree:n.map((o,a)=>({path:o.path,mode:"100644",type:"blob",sha:s[a].sha})),base_tree:i.tree.sha})).then(s=>i.repo.git.commits.create({message:t,tree:s.sha,parents:[i.head.object.sha]})).then(s=>i.repo.commits(s.sha).fetch()).then(s=>(i.commit=s,i))}push(e){return e.head.update({sha:e.com
Line truncated
|
||||
`;function Ui(){for(var r={},e=0;e<localStorage.length;e++){var t=localStorage.key(e);if(t.startsWith("__repo__")){var n=JSON.parse(localStorage.getItem(t)),i=t.substring(8);r[i]=n}}return r}function Qa(r){var e=r.split("/",8);return e.length<5||e[0]!="https:"||e[2]!="github.com"||e[5]&&e[5]!="tree"?null:{user:e[3],repo:e[4],repopath:e[3]+"/"+e[4],branch:e[6],subtreepath:e[7]}}var wd=class{constructor(e,t,n,i){this.githubCons=e,this.githubToken=t,this.store=n,this.project=i,this.recreateGithub()}recreateGithub(){this.github=new this.githubCons({token:this.githubToken})}login(){if(this.githubToken&&this.githubToken.length)return new Promise((t,n)=>{t()});var e=new firebase.auth.GithubAuthProvider;return e.addScope("repo"),firebase.auth().signInWithPopup(e).then(t=>{this.githubToken=t.credential.accessToken;var n=t.user;this.recreateGithub(),document.cookie="__github_key="+this.githubToken+";path=/;max-age=31536000",console.log("Stored GitHub OAUTH key")})}logout(){return this.githubToken&&this.githubToken.length?firebase.auth().signOut().then(()=>{document.cookie="__github_key=;path=/;max-age=0",this.githubToken=null,this.recreateGithub()}):new Promise((e,t)=>{e()})}isFileIgnored(e){return e=e.toUpperCase(),!!(e.startsWith("LICENSE")||e.startsWith("README")||e.startsWith("."))}async getGithubSession(e){var t=Qa(e);if(!t)throw new Error("Please enter a valid GitHub URL.");var n=Ui()[t.repopath],i=t.branch||n&&n.branch,s=this.github.repos(t.user,t.repo);try{i=(await s.fetch()).defaultBranch||"master"}catch(a){console.log("could not fetch default branch: "+a),i="main"}console.log("branch =",i);var o={url:e,user:t.user,reponame:t.repo,repopath:t.repopath,branch:i,subtreepath:t.subtreepath,prefix:"",repo:s,platform_id:this.project?this.project.platform_id:n?n.platform_id:null};return o}getGithubHEADTree(e){var t;return this.getGithubSession(e).then(n=>(t=n,t.repo.git.refs.heads(t.branch).fetch())).then(n=>(t.head=n,t.sha=n.object.sha,t.repo.git.trees(t.sha).fetch())).then(n=>{if(t.subtreepath){for(let i of n.tree)if(i.type=="tree"&&i.path==t.subtreepath&&i.sha)return t.repo.git.trees(i.sha).fetch();throw Error("Cannot find subtree '"+t.subtreepath+"' in tree "+n.sha)}return n}).then(n=>(t.tree=n,t))}bind(e,t){var n="__repo__"+e.repopath;if(t){var i={url:e.url,branch:e.branch,platform_id:e.platform_id,mainPath:e.mainPath,sha:e.sha};console.log("storing",i),localStorage.setItem(n,JSON.stringify(i))}else localStorage.removeItem(n)}import(e){var t;return this.getGithubSession(e).then(n=>(t=n,t.repo.contents("README.md").read())).catch(n=>(console.log(n),console.log("no README.md found"),t.repo.fetch().then(i=>""))).then(n=>{var i;if(i=/8bitworkshop.com[^)]+file=([^)&]+)/.exec(n),i&&i[1]&&(console.log("main path: '"+i[1]+"'"),t.mainPath=i[1]),i=/8bitworkshop.com[^)]+platform=([A-Za-z0-9._\-]+)/.exec(n),i){if(console.log("platform id: '"+i[1]+"'"),t.platform_id&&!t.platform_id.startsWith(i[1]))throw Error("Platform mismatch: Repository is '"+i[1]+"', you have '"+t.platform_id+"' selected.");t.platform_id=i[1]}return this.bind(t,!0),t})}pull(e,t){var n;return this.getGithubHEADTree(e).then(i=>{n=i;let s=[];return n.paths=[],n.tree.tree.forEach(o=>{if(console.log(o.path,o.type,o.size),n.paths.push(o.path),o.type=="blob"&&!this.isFileIgnored(o.path)){var a=n.repo.git.blobs(o.sha).fetch().then(l=>{var c=n.prefix+o.path,d=o.size,h=l.encoding,u=l.content;if(l.encoding=="base64"){var f=Al(atob(u)),p=_i(o.path,f);u=p?f:El(f)}return l.size!=u.length&&(u=u.slice(0,l.size)),(t||this.store).setItem(c,u)});s.push(a)}else console.log("ignoring "+o.path)}),Promise.all(s)}).then(i=>n)}importAndPull(e){return this.import(e).then(t=>this.pull(e))}publish(e,t,n,i){var s,o=this.project.platform_id,a=this.project.stripLocalPath(this.project.mainPath);return this.github.user.repos.create({name:e,description:t,private:i,auto_init:!1,license_template:n}).then(l=>{s=l;var c=SR;c=c.replace(/\$NAME/g,encodeURIComponent(e)),c=c.replace(/\$PLATFORM/g,encodeURIComponent(o)),c=c.replace(/\$GITHUBURL/g,encodeURIComponent(s.htmlUrl)),c=c.replace(/\$MAINFILE/g,encodeURIComponent(a));var d={message:"8bitworkshop: updated metadata in README.md",content:btoa(c)};return s.contents("README.md").add(d)}).then(()=>this.getGithubSession(s.htmlUrl))}commit(e,t,n){var i;return t||(t="updated from 8bitworkshop.com"),this.getGithubHEADTree(e).then(s=>{if(i=s,i.subtreepath)throw Error("Sorry, right now you can only commit files to the root directory of a repository.");return Promise.all(n.map(o=>typeof o.data=="string"?i.repo.git.blobs.create({content:o.data,encoding:"utf-8"}):i.repo.git.blobs.create({content:btoa(Rl(o.data)),encoding:"base64"})))}).then(s=>i.repo.git.trees.create({tree:n.map((o,a)=>({path:o.path,mode:"100644",type:"blob",sha:s[a].sha})),base_tree:i.tree.sha})).then(s=>i.repo.git.commits.create({message:t,tree:s.sha,parents:[i.head.object.sha]})).then(s=>i.repo.commits(s.sha).fetch()).then(s=>(i.commit=s,i))}push(e){return e.head.update({sha:e.com
Line truncated
|
||||
`},s=window.c2t({noInitialRun:!0,print:i,printErr:i}),o=s.FS,a=at()+".bin",l=at()+".wav";o.writeFile(a,Bt(),{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,fn.saveAs)(h,l),n+="Then connect your audio output to the cassette input, turn up the volume, and play the audio file.",_t(n)}})}function kR(r){vr("lib/makewav.js").then(()=>{let e="",t=function(a){e+=a+`
|
||||
`};var n=$t(at());let i=n+".bin",s=n+".wav";window.makewav({noInitialRun:!1,print:t,printErr:t,arguments:["-ts","-f0","-v10",i],preRun:a=>{a.FS.writeFile(i,Bt(),{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,fn.saveAs)(h,s),e+=`
|
||||
Connect your audio output to the SuperCharger input, turn up the volume, and play the audio file.`,_t(e)}})})}function QR(r){var e=$t(at());let t=e+".tap",n=new qi(e),i=new Pd({sine_wave:!0}),s=Bt(),o=s[0]+s[1]*256;s=s.slice(2),n.setContent({data:s,startAddress:o,type:qi.FILE_TYPE_NON_RELOCATABLE}),n.generateSound(i);let a=i.getTAPData();if(a){let l=new Blob([a],{type:"application/octet-stream"});(0,fn.saveAs)(l,t)}}function pm(){switch(Tt(ae)){case"vcs":return kR;case"apple2":return PR;case"c64":return QR}}function uv(r){if(Bt()==null)return ve("Please fix errors before exporting."),!0;var e=pm();if(e===void 0)return ve("Cassette export is not supported on this platform."),!0;e(r)}function fv(r){if(Bt()==null)return ve("Please finish compiling with no errors before downloading ROM."),!0;var e=$t(at());if(S.getDownloadFile){var t=S.getDownloadFile(),e=$t(at());(0,fn.saveAs)(t.blob,e+t.extension)}else if(Bt()instanceof Uint8Array){var n=new Blob([Bt()],{type:"application/octet-stream"}),i=S.getROMExtension&&S.getROMExtension(Bt())||"-"+Tt(ae)+".bin";(0,fn.saveAs)(n,e+i)}else ve(`The "${ae}" platform doesn't have downloadable ROMs.`)}function pv(r){var e=W.getCurrentText();if(!e)return!1;var t=new Blob([e],{type:"text/plain;charset=utf-8"});(0,fn.saveAs)(t,xv(),{autoBom:!1})}async function mv(){let r=(await import("./jszip.min-EENSZHRN.js")).default;return new r}async function Ov(r){var e=await mv();Cn().iterateFiles((t,n)=>{n&&e.file(ft(t),n)}),e.generateAsync({type:"blob"}).then(t=>{(0,fn.saveAs)(t,at()+"-"+Tt(ae)+".zip")})}function gv(r){let e=S.getDebugSymbolFile&&S.getDebugSymbolFile();if(!e){ve("This project does not have debug information.");return}var t=$t(at());(0,fn.saveAs)(e.blob,t+e.extension,{autoBom:!1})}async function bv(r){var e=await mv(),t=await li().keys();Ie(!0);try{var n=0;await Promise.all(t.map(s=>li().getItem(s).then(o=>{Wr(n++/(t.length+1)),o&&e.file(s,o)})));var i=await e.generateAsync({type:"blob"});(0,fn.saveAs)(i,Tt(ae)+"-all.zip")}finally{Ie(!1)}}var fm=!1;function yv(){fm||vr("lib/gif.js").then(()=>{var r=$("#emulator").find("canvas")[0];if(!r){ve("Could not find canvas element to record video!");return}var e=0;r.style&&r.style.transform&&(r.style.transform.indexOf("rotate(-90deg)")>=0?e=-1:r.style.transform.indexOf("rotate(90deg)")>=0&&(e=1));var t=new GIF({workerScript:"lib/gif.worker.js",workers:4,quality:10,rotate:e}),n=$("#videoPreviewImage");t.on("progress",l=>{Wr(l)}),t.on("finished",l=>{n.attr("src",URL.createObjectURL(l)),Ie(!1),S.resume(),$("#videoPreviewModal").modal("show")});var i=20,s=300,o=0;console.log("Recording video",r),$("#emulator").css("backgroundColor","#cc3333");var a=()=>{o++>s?(console.log("Rendering video"),$("#emulator").css("backgroundColor","inherit"),Ie(!0),S.pause(),t.render(),fm=!1):(t.addFrame(r,{delay:i,copy:!0}),setTimeout(a,i),fm=!0)};a()})}var mm;async function Gi(){if(!mm){await vr("lib/octokat.js"),await vr("https://www.gstatic.com/firebasejs/8.8.1/firebase-app.js"),await vr("https://www.gstatic.com/firebasejs/8.8.1/firebase-auth.js"),await vr("https://8bitworkshop.com/config.js");var r=Ml("__github_key");mm=new wd(Octokat,r,li(),Cn()),console.log("loaded github service")}return mm}function Ta(){var r=(dt||"").split("/");return r.length!=2?(ve("You are not in a GitHub repository. Choose one from the pulldown, or Import or Publish one."),null):"https://github.com/"+r[0]+"/"+r[1]}async function _a(r,e){var t,n=Qa(r);if(!n){ve("Could not parse GitHub URL.");return}var i=Ui()[n.repopath];if(!(i&&!confirm("You've already imported "+n.repopath+" -- do you want to replace all local files?"))){Ie(!0);var s=vd(n.repopath);Wr(.25);var o=await Gi();return o.import(r).then(a=>(t=a,Wr(.75),o.pull(r,s))).then(a=>{Ie(!1),Hi(e,{repo:n.repopath})}).catch(a=>{Ie(!1),console.log(a),ve("Could not import "+r+". "+a)})}}async function Sv(r){var e=await Gi();e.login().then(()=>{_t("You are signed in to GitHub.")}).catch(t=>{ve("Could not sign in."+t)})}async function vv(r){var e=await Gi();e.logout().then(()=>{_t("You are logged out of GitHub.")})}function wv(r){var e=$("#importGithubModal"),t=$("#importGithubButton");e.modal("show"),e.off("shown.bs.modal").on("shown.bs.modal",()=>$("#importGithubURL").trigger("focus")),$("#importGithubURL").off("keydown").on("keydown",n=>{n.key==="Enter"&&(n.preventDefault(),t.trigger("click"))}),t.off("click").on("click",()=>{var n=$("#importGithubURL").val()+"";e.modal("hide"),_a(n,!1)})}function Pv(r){if(!(dt&&!confirm("This project ("+Cn().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($t(ft(Cn().mainPath))),e.modal("show"),t.off("click").on("click",async()=>{var n=$("#githubRepoName").val()+"",i=$("#githubRepoDesc").val()+"",s=$("#githubRepoPrivate").val()=="private",o=$("#githubRepoLicense").val()+""Line truncated
|
||||
Connect your audio output to the SuperCharger input, turn up the volume, and play the audio file.`,_t(e)}})})}function QR(r){var e=$t(at());let t=e+".tap",n=new qi(e),i=new Pd({sine_wave:!0}),s=Bt(),o=s[0]+s[1]*256;s=s.slice(2),n.setContent({data:s,startAddress:o,type:qi.FILE_TYPE_NON_RELOCATABLE}),n.generateSound(i);let a=i.getTAPData();if(a){let l=new Blob([a],{type:"application/octet-stream"});(0,fn.saveAs)(l,t)}}function mm(){switch(Tt(ae)){case"vcs":return kR;case"apple2":return PR;case"c64":return QR}}function uv(r){if(Bt()==null)return ve("Please fix errors before exporting."),!0;var e=mm();if(e===void 0)return ve("Cassette export is not supported on this platform."),!0;e(r)}function fv(r){if(Bt()==null)return ve("Please finish compiling with no errors before downloading ROM."),!0;var e=$t(at());if(S.getDownloadFile){var t=S.getDownloadFile(),e=$t(at());(0,fn.saveAs)(t.blob,e+t.extension)}else if(Bt()instanceof Uint8Array){var n=new Blob([Bt()],{type:"application/octet-stream"}),i=S.getROMExtension&&S.getROMExtension(Bt())||"-"+Tt(ae)+".bin";(0,fn.saveAs)(n,e+i)}else ve(`The "${ae}" platform doesn't have downloadable ROMs.`)}function pv(r){var e=W.getCurrentText();if(!e)return!1;var t=new Blob([e],{type:"text/plain;charset=utf-8"});(0,fn.saveAs)(t,xv(),{autoBom:!1})}async function mv(){let r=(await import("./jszip.min-EENSZHRN.js")).default;return new r}async function Ov(r){var e=await mv();Cn().iterateFiles((t,n)=>{n&&e.file(ft(t),n)}),e.generateAsync({type:"blob"}).then(t=>{(0,fn.saveAs)(t,at()+"-"+Tt(ae)+".zip")})}function gv(r){let e=S.getDebugSymbolFile&&S.getDebugSymbolFile();if(!e){ve("This project does not have debug information.");return}var t=$t(at());(0,fn.saveAs)(e.blob,t+e.extension,{autoBom:!1})}async function bv(r){var e=await mv(),t=await li().keys();Ie(!0);try{var n=0;await Promise.all(t.map(s=>li().getItem(s).then(o=>{Wr(n++/(t.length+1)),o&&e.file(s,o)})));var i=await e.generateAsync({type:"blob"});(0,fn.saveAs)(i,Tt(ae)+"-all.zip")}finally{Ie(!1)}}var pm=!1;function yv(){pm||vr("lib/gif.js").then(()=>{var r=$("#emulator").find("canvas")[0];if(!r){ve("Could not find canvas element to record video!");return}var e=0;r.style&&r.style.transform&&(r.style.transform.indexOf("rotate(-90deg)")>=0?e=-1:r.style.transform.indexOf("rotate(90deg)")>=0&&(e=1));var t=new GIF({workerScript:"lib/gif.worker.js",workers:4,quality:10,rotate:e}),n=$("#videoPreviewImage");t.on("progress",l=>{Wr(l)}),t.on("finished",l=>{n.attr("src",URL.createObjectURL(l)),Ie(!1),S.resume(),$("#videoPreviewModal").modal("show")});var i=20,s=300,o=0;console.log("Recording video",r),$("#emulator").css("backgroundColor","#cc3333");var a=()=>{o++>s?(console.log("Rendering video"),$("#emulator").css("backgroundColor","inherit"),Ie(!0),S.pause(),t.render(),pm=!1):(t.addFrame(r,{delay:i,copy:!0}),setTimeout(a,i),pm=!0)};a()})}var Om;async function Gi(){if(!Om){await vr("lib/octokat.js"),await vr("https://www.gstatic.com/firebasejs/8.8.1/firebase-app.js"),await vr("https://www.gstatic.com/firebasejs/8.8.1/firebase-auth.js"),await vr("https://8bitworkshop.com/config.js");var r=Ml("__github_key");Om=new wd(Octokat,r,li(),Cn()),console.log("loaded github service")}return Om}function Ta(){var r=(dt||"").split("/");return r.length!=2?(ve("You are not in a GitHub repository. Choose one from the pulldown, or Import or Publish one."),null):"https://github.com/"+r[0]+"/"+r[1]}async function _a(r,e){var t,n=Qa(r);if(!n){ve("Could not parse GitHub URL.");return}var i=Ui()[n.repopath];if(!(i&&!confirm("You've already imported "+n.repopath+" -- do you want to replace all local files?"))){Ie(!0);var s=vd(n.repopath);Wr(.25);var o=await Gi();return o.import(r).then(a=>(t=a,Wr(.75),o.pull(r,s))).then(a=>{Ie(!1),Hi(e,{repo:n.repopath})}).catch(a=>{Ie(!1),console.log(a),ve("Could not import "+r+". "+a)})}}async function Sv(r){var e=await Gi();e.login().then(()=>{_t("You are signed in to GitHub.")}).catch(t=>{ve("Could not sign in."+t)})}async function vv(r){var e=await Gi();e.logout().then(()=>{_t("You are logged out of GitHub.")})}function wv(r){var e=$("#importGithubModal"),t=$("#importGithubButton");e.modal("show"),e.off("shown.bs.modal").on("shown.bs.modal",()=>$("#importGithubURL").trigger("focus")),$("#importGithubURL").off("keydown").on("keydown",n=>{n.key==="Enter"&&(n.preventDefault(),t.trigger("click"))}),t.off("click").on("click",()=>{var n=$("#importGithubURL").val()+"";e.modal("hide"),_a(n,!1)})}function Pv(r){if(!(dt&&!confirm("This project ("+Cn().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($t(ft(Cn().mainPath))),e.modal("show"),t.off("click").on("click",async()=>{var n=$("#githubRepoName").val()+"",i=$("#githubRepoDesc").val()+"",s=$("#githubRepoPrivate").val()=="private",o=$("#githubRepoLicense").val()+""Line truncated
|
||||
`);for(let o=0;o<s.length;o++){let a=s[o],l=o+1,c=a.match(/(?:function|func|def|proc)\s+(\w+)/i);c&&i.push({id:`${e}:${l}:${c[1]}`,name:c[1],kind:"func",source:n,file:e,line:l});let d=a.match(/(?:var|let|const|global)\s+(\w+)/i);d&&i.push({id:`${e}:${l}:${d[1]}`,name:d[1],kind:"var",source:n,file:e,line:l});let h=a.match(/(?:struct|class|interface|type)\s+(\w+)/i);h&&i.push({id:`${e}:${l}:${h[1]}`,name:h[1],kind:"type",source:n,file:e,line:l});let u=a.match(/^\s*(\w+)\s*:/);u&&!a.trim().startsWith("//")&&i.push({id:`${e}:${l}:${u[1]}`,name:u[1],kind:"label",source:n,file:e,line:l});let f=a.match(/#define\s+(\w+)/i);f&&i.push({id:`${e}:${l}:${f[1]}`,name:f[1],kind:"macro",source:n,file:e,line:l});let p=a.match(/^\s*(\w+)\s*(?:=|equ)\s+/i);p&&i.push({id:`${e}:${l}:${p[1]}`,name:p[1],kind:"equate",source:n,file:e,line:l})}return i}var Av=()=>null;function Rv(r){Av=r}function Ki(){return Av()}var kd=class{constructor(){this.id="project";this.kind="project";this.rebuilt=!1;this.index=new so([])}async ready(){await this.index.init(),this.rebuilt||(this.rebuilt=!0,await this.rebuild())}query(e,t){let n=this.index.query(e,t),i=this.fulltextQuery(e,t),s=n.concat(i);return s.sort((o,a)=>a.score-o.score),s.slice(0,t)}fulltextQuery(e,t){if(e.length<2)return[];let n=e.toLowerCase(),i=[],s=Math.max(t,10),o=Ki();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],p=u.toLowerCase().indexOf(n);if(p>=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-p*2),ranges:[p,p+e.length]}),++d>=s)break}}}),i):[]}async onFileChanged(e,t){let n=this.extractSymbolsFromFile(e,t,"project");this.index.pushRecords(n)}extractSymbolsFromFile(e,t,n){if(typeof t!="string")return[];let i=this.detectEditorStyle(e);return gm(t,e,i,n)}detectEditorStyle(e){var n;switch((n=e.split(".").pop())==null?void 0:n.toLowerCase()){case"c":case"h":return"text/x-csrc";case"asm":case"a65":case"inc":return"6502";case"v":return"verilog";case"wiz":return"text/x-wiz";case"bas":case"basic":return"basic";case"fb":case"fastbasic":return"fastbasic";case"bac":case"bataribasic":return"bataribasic";case"i":return"inform6";case"d":return"dialog";default:return"text/x-csrc"}}async rebuild(){this.index.clear(),await this.index.init();let e=Ki();if(!e)return;let t=[];e.iterateFiles((n,i)=>{if(typeof i!="string")return;let s=this.detectEditorStyle(n),o=gm(i,n,s,"project");t.push(...o)}),this.index.pushRecords(t)}};var AR=new Set(["h","hh","hpp","inc","asm","a65","s","mac","defs","def","equ","i","m","c","bas","txt"]),RR=20,Qd=class{constructor(){this.id="toolchain";this.kind="toolchain";this.fsName=null;this.files=[];this.loaded=new Map;this.readyDone=!1;this.loadIdx=0;this.batchSize=RR}async ready(){if(this.readyDone)return;this.readyDone=!0;let e=Ki();if(!e)return;let t;try{t=e.getToolForFilename?e.getToolForFilename(e.mainPath):""}catch(o){t=""}let n=Yl(t,e.platform_id),i=Vl(t,e.platform_id);if(!n||!i.length)return;this.fsName=n;let s=new Set;for(let o of i){let a=await this.listFiles(o);for(let l of a)this.isSearchable(l)&&!s.has(l)&&(s.add(l),this.files.push(l))}this.files.sort()}isValid(){return this.fsName!=null&&this.files.length>0}async listFiles(e){let t=Ki();if(!t||!this.fsName||!t.queryWorker)return[];try{let n={preload_fs:this.fsName,listshared:e,updates:[],buildsteps:[]},i=await t.queryWorker(n),s=i&&i.output;return Array.isArray(s)?s:[]}catch(n){return console.debug("Toolchain list error:",n),[]}}async readFile(e){let t=Ki();if(!t||!this.fsName||!t.queryWorker)return null;try{let n={preload_fs:this.fsName,readshared:e,updates:[],buildsteps:[]},i=await t.queryWorker(n),s=i&&i.output;return s instanceof Uint8Array&&s.length>0?new TextDecoder().decode(s):null}catch(n){return console.debug("Toolchain read error:",n),null}}isSearchable(e){let t=e.split("/").pop()||e,n=t.lastIndexOf(".");return n<0?!0:AR.has(t.substring(n+1).toLowerCase())}async ensureBatch(){let e=Ki();if(!(!e||!e.queryWorker))for(;this.loadIdx<this.files.length;){let t=this.files.slice(this.loadIdx,this.loadIdx+this.batchSize);this.loadIdx+=t.length;let n=await Promise.all(t.map(async i=>{let s=await this.readFile(i);return[i,s]}));for(let[i,s]of n)s!=null&&this.loaded.set(i,s);if(this.loaded.size>0||this.loadIdx>=this.files.length)break}}async query(e,t){return await this.ready(),!this.isValid()||e.length<2?[]:(await this.ensureBatch(),this.textQuery(e,t))}textQuery(e,t){if(e.length<2)return[];let n=e.toLowerCase(),i=[],s=Math.max(t,5);for(let[o,a]of this.loaded){let l=a.split(`
|
||||
`),c=0;for(let d=0;d<l.length;d++){let h=l[d],f=h.toLowerCase().indexOf(n);if(f>=0){let p=h.trim();if(!p)continue;if(i.push({record:{id:`toolchain:${o}:${d+1}`,name:p.length>80?p.slice(0,80)+"\u2026":p,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.readyDone=!1,this.loadIdx=0}};var Ev=()=>[];function Mv(r){Ev=r}var ER=/<h([1-3])\b[^>]*>([\s\S]*?)<\/h\1>/gi;function MR(r){return r.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/&#(?:0*39|x27);/gi,"'").replace(/ /g," ").replace(/…/g,"\u2026").replace(/—/g,"\u2014").replace(/–/g,"\u2013").replace(/’|‘/g,"'").replace(/”|“/g,'"').replace(/»/g,"\xBB").replace(/«/g,"\xAB").replace(/&/g,"&")}function bm(r){return MR(r.replace(/<[^>]+>/g," ")).replace(/\s+/g," ").trim()}function LR(r,e=180){let t=r.trim();if(!t)return;let i=t.slice(0,e).match(/^([\s\S]*?[.!?])(?:\s|$)/);return i?i[1]:t.length<=e?t:t.slice(0,e-1)+"\u2026"}function ZR(r){let e=[],t="#help/"+r.id,n=r.title||r.id,i=r.html||"",s=[],o=new RegExp(ER.source,"gi"),a;for(;a=o.exec(i);)s.push({name:bm(a[2]),start:a.index,end:o.lastIndex});let l=(u,f,p)=>{if(!f)return;let O=LR(p),x=O&&p.startsWith(O)?p.slice(O.length).trim():p;e.push({id:`${r.id}:${u}`,name:f,kind:"doc",brief:O,detail:x||void 0,source:"docs",file:n,url:t})},c=s.length?s[0].start:i.length,d=bm(i.slice(0,c)),h=s.length&&s[0].start===0?s[0].name||r.title:r.title||r.id;l(0,h,d);for(let u=0;u<s.length;u++){if(u===0&&s[0].start===0)continue;let f=u+1<s.length?s[u+1].start:i.length;l(u+1,s[u].name,bm(i.slice(s[u].end,f)))}return e}var $d=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=Ev()||[];if(e.length===0)return;let t=[];for(let i of e)t.push(...ZR(i));if(t.length===0)return;let n=new so(t);await n.init(),this.index=n}async query(e,t){return await this.ready(),this.index?this.index.query(e,t):[]}};var XR=50,ym=class r{constructor(){this.sources=new Map;this.projectSource=new kd,this.toolchainSource=new Qd,this.docsSource=new $d,this.sources.set("project",this.projectSource),this.sources.set("toolchain",this.toolchainSource),this.sources.set("docs",this.docsSource)}static getInstance(){return r.instance||(r.instance=new r),r.instance}parseQuery(e){return e.startsWith("#")?{needle:e.slice(1).trim(),filter:"symbols"}:e.startsWith(">")?{needle:e.slice(1).trim(),filter:"files"}:e.startsWith("?")?{needle:e.slice(1).trim(),filter:"docs"}:{needle:e,filter:"all"}}async query(e,t=XR){let{needle:n,filter:i}=this.parseQuery(e);if(!n)return[];let s=[],o=[];i==="docs"?o.push(this.docsSource):i==="files"?o.push(this.projectSource):i==="symbols"?(o.push(this.projectSource),o.push(this.toolchainSource)):(o.push(this.projectSource),o.push(this.toolchainSource),o.push(this.docsSource));for(let d of o)try{await d.ready();let h=await d.query(n,t-s.length);s.push(...h)}catch(h){console.debug("Search source error:",h)}s.sort((d,h)=>h.score-d.score);let a={project:1.3,toolchain:1,docs:.7};for(let d of s){let h=a[d.record.source]||1;d.score*=h}s.sort((d,h)=>h.score-d.score);let l=new Set;return s.filter(d=>l.has(d.record.id)?!1:(l.add(d.record.id),!0)).slice(0,t)}},Lv=ym.getInstance();var Zv=typeof String.prototype.normalize=="function"?r=>r.normalize("NFKD"):r=>r,di=class{constructor(e,t,n=0,i=e.length,s,o){this.test=o,this.value={from:0,to:0,precise:!1},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(n,i),this.bufferStart=n,this.normalize=s?a=>s(Zv(a)):Zv,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 Yr(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=ec(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=qn(e);let i=this.normalize(t);if(i.length)for(let s=0,o=n,a=!0;;s++){let l=i.charCodeAt(s),c=this.match(l,o,a,this.bufferPos+this.bufferStart,s==i.length-1);if(c)return this.value=c,this;if(s==i.length-1)break;a&&s<t.length&&t.charCodeAt(s)==l?o++:a=!1}}}match(e,t,n,i,s){let o=null;for(let a=0;a<this.matches.length;){let l=this.matches[a],c=!1;this.query.charCodeAt(l.index)==e&&(l.index==this.query.length-1?o={from:l.from,to:i,precise:s&&l.precise}:(l.index++,c=!0)),c?a++:this.matches.splice(a,1)}return this.query.charCodeAt(0)==e&&(this.query.length==1?o={from:t,to:i,precise:n&&s}:this.matches.push({from:t,index:1,precise:n})),o&&this.test&&!this.test(o.from,o.to,this.buffer,this.bufferStart)
Line truncated
|
||||
`:n=="r"?"\r":n=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new vm(this):new Sm(this)}getCursor(e,t=0,n){let i=e.doc?e:Pe.create({doc:e});return n==null&&(n=i.doc.length),this.regexp?ao(this,i,t,n):oo(this,i,t,n)}},Ld=class{constructor(e){this.spec=e}};function UR(r,e,t){return(n,i,s,o)=>{if(t&&!t(n,i,s,o))return!1;let a=n>=o&&i<=o+s.length?s.slice(n-o,i-o):e.doc.sliceString(n,i);return r(a,e,n,i)}}function oo(r,e,t,n){let i;return r.wholeWord&&(i=qR(e.doc,e.charCategorizer(e.selection.main.head))),r.test&&(i=UR(r.test,e,i)),new di(e.doc,r.unquoted,t,n,r.caseSensitive?void 0:s=>s.toLowerCase(),i)}function qR(r,e){return(t,n,i,s)=>((s>t||s+i.length<n)&&(s=Math.max(0,t-2),i=r.sliceString(s,Math.min(r.length,n+2))),(e(Zd(i,t-s))!=Xe.Word||e(Xd(i,t-s))!=Xe.Word)&&(e(Xd(i,n-s))!=Xe.Word||e(Zd(i,n-s))!=Xe.Word))}var Sm=class extends Ld{constructor(e){super(e)}nextMatch(e,t,n){let i=oo(this.spec,e,n,e.doc.length).nextOverlapping();if(i.done){let s=Math.min(e.doc.length,t+this.spec.unquoted.length);i=oo(this.spec,e,0,s).nextOverlapping()}return i.done||i.value.from==t&&i.value.to==n?null:i.value}prevMatchInRange(e,t,n){for(let i=n;;){let s=Math.max(t,i-1e4-this.spec.unquoted.length),o=oo(this.spec,e,s,i),a=null;for(;!o.nextOverlapping().done;)a=o.value;if(a)return a;if(s==t)return null;i-=1e4}}prevMatch(e,t,n){let i=this.prevMatchInRange(e,0,t);return i||(i=this.prevMatchInRange(e,Math.max(0,n-this.spec.unquoted.length),e.doc.length)),i&&(i.from!=t||i.to!=n)?i:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=oo(this.spec,e,0,e.doc.length),i=[];for(;!n.next().done;){if(i.length>=t)return null;i.push(n.value)}return i}highlight(e,t,n,i){let s=oo(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)i(s.value.from,s.value.to)}};function GR(r,e,t){return(n,i,s)=>(!t||t(n,i,s))&&r(s[0],e,n,i)}function ao(r,e,t,n){let i;return r.wholeWord&&(i=HR(e.charCategorizer(e.selection.main.head))),r.test&&(i=GR(r.test,e,i)),new Cd(e.doc,r.search,{ignoreCase:!r.caseSensitive,test:i},t,n)}function Zd(r,e){return r.slice(it(r,e,!1),e)}function Xd(r,e){return r.slice(e,it(r,e))}function HR(r){return(e,t,n)=>!n[0].length||(r(Zd(n.input,n.index))!=Xe.Word||r(Xd(n.input,n.index))!=Xe.Word)&&(r(Xd(n.input,n.index+n[0].length))!=Xe.Word||r(Zd(n.input,n.index+n[0].length))!=Xe.Word)}var vm=class extends Ld{nextMatch(e,t,n){let i=ao(this.spec,e,n,e.doc.length).next();return i.done&&(i=ao(this.spec,e,0,t).next()),i.done?null:i.value}prevMatchInRange(e,t,n){for(let i=1;;i++){let s=Math.max(t,n-i*1e4),o=ao(this.spec,e,s,n),a=null;for(;!o.next().done;)a=o.value;if(a&&(s==t||a.from>s+10))return a;if(s==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,n)=>{if(n=="&")return e.match[0];if(n=="$")return"$";for(let i=n.length;i>0;i--){let s=+n.slice(0,i);if(s>0&&s<e.match.length)return e.match[s]+n.slice(i)}return t})}matchAll(e,t){let n=ao(this.spec,e,0,e.doc.length),i=[];for(;!n.next().done;){if(i.length>=t)return null;i.push(n.value)}return i}highlight(e,t,n,i){let s=ao(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!s.next().done;)i(s.value.from,s.value.to)}},Aa=ce.define(),_m=ce.define(),ci=$e.define({create(r){return new Ca(wm(r).create(),null)},update(r,e){for(let t of e.effects)t.is(Aa)?r=new Ca(t.value.create(),r.panel):t.is(_m)&&(r=new Ca(r.query,t.value?Cm:null));return r},provide:r=>ca.from(r,e=>e.panel)});var Ca=class{constructor(e,t){this.query=e,this.panel=t}},KR=F.mark({class:"cm-searchMatch"}),JR=F.mark({class:"cm-searchMatch cm-searchMatch-selected"}),eE=We.fromClass(class{constructor(r){this.view=r,this.decorations=this.highlight(r.state.field(ci))}update(r){let e=r.state.field(ci);(e!=r.startState.field(ci)||r.docChanged||r.selectionSet||r.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:r,panel:e}){if(!e||!r.spec.valid)return F.none;let{view:t}=this,n=new Vr;for(let i=0,s=t.visibleRanges,o=s.length;i<o;i++){let{from:a,to:l}=s[i];for(;i<o-1&&l>s[i+1].from-500;)l=s[++i].to;r.highlight(t.state,a,l,(c,d)=>{let h=t.state.selection.ranges.some(u=>u.from==c&&u.to==d);n.add(c,d,h?JR:KR)})}return n.finish()}},{decorations:r=>r.decorations});function Ra(r){return e=>{let t=e.state.field(ci,!1);return t&&t.query.spec.valid?r(e,t):zd(e)}}var lo=Ra((r,{query:e})=>{let{to:t}=r.state.selection.main,n=e.nextMatch(r.state,t,t);if(!n)return!1;let i=M.single(n.from,n.to),s=r.state.facet(Ji);return r.dispatch({selection:i,effects:[Am(r,n),s.scrollToMatch(i.main,r)],userEvent:"select.search"}),Vv(r),!0}),Dd=Ra((r,{query:e})=>{let{state:t}=r,{from:n}=t.selection.main,i=e.prevMatch(t,n,n);if(!i)
Line truncated
|
||||
`+t.scrub(),s=this.advance(i);return s>-1&&s<i.length?this.complete(e,n,s):!1}finish(e,t){return(this.stage==2||this.stage==3)&&La(t.content,this.pos)==t.content.length?this.complete(e,t,t.content.length):!1}complete(e,t,n){return e.addLeafElement(t,Ce(N.LinkReference,this.start,this.start+n,this.elts)),!0}nextStage(e){return e?(this.pos=e.to-this.start,this.elts.push(e),this.stage++,!0):(e===!1&&(this.stage=-1),!1)}advance(e){for(;;){if(this.stage==-1)return-1;if(this.stage==0){if(!this.nextStage(Yw(e,this.pos,this.start,!0)))return-1;if(e.charCodeAt(this.pos)!=58)return this.stage=-1;this.elts.push(Ce(N.LinkMark,this.pos+this.start,this.pos+this.start+1)),this.pos++}else if(this.stage==1){if(!this.nextStage(Ww(e,La(e,this.pos),this.start)))return-1}else if(this.stage==2){let t=La(e,this.pos),n=0;if(t>this.pos){let i=Vw(e,t,this.start);if(i){let s=fO(e,i.to-this.start);s>0&&(this.nextStage(i),n=s)}}return n||(n=fO(e,this.pos)),n>0&&n<e.length?n:-1}else return fO(e,this.pos)}}};function fO(r,e){for(;e<r.length;e++){let t=r.charCodeAt(e);if(t==10)break;if(!Er(t))return-1}return e}var xO=class{nextLine(e,t,n){let i=t.depth<e.stack.length?-1:Rw(t),s=t.next;if(i<0)return!1;let o=Ce(N.HeaderMark,e.lineStart+t.pos,e.lineStart+i);return e.nextLine(),e.addLeafElement(n,Ce(s==61?N.SetextHeading1:N.SetextHeading2,n.start,e.prevLineEnd(),[...e.parser.parseInline(n.content,n.start),o])),!0}finish(){return!1}},Zw={LinkReference(r,e){return e.content.charCodeAt(0)==91?new yO(e):null},SetextHeading(){return new xO}},g2=[(r,e)=>Aw(e)>=0,(r,e)=>Tw(e)>=0,(r,e)=>_w(e)>=0,(r,e)=>$O(e,r,!0)>=0,(r,e)=>TO(e,r,!0)>=0,(r,e)=>QO(e,r,!0)>=0,(r,e)=>Lw(e,r,!0)>=0],b2={text:"",end:0},SO=class{constructor(e,t,n,i){this.parser=e,this.input=t,this.ranges=i,this.line=new OO,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=jd.create(N.Document,0,this.lineStart,0,0),this.stack=[this.block],this.fragments=n.length?new PO(n,t):null,this.readLine()}get parsedPos(){return this.absoluteLineStart}advance(){if(this.stoppedAt!=null&&this.absoluteLineStart>this.stoppedAt)return this.finish();let{line:e}=this;for(;;){for(let n=0;;){let i=e.depth<this.stack.length?this.stack[this.stack.length-1]:null;for(;n<e.markers.length&&(!i||e.markers[n].from<i.end);){let s=e.markers[n++];this.addNode(s.type,s.from,s.to)}if(!i)break;this.finishContext()}if(e.pos<e.text.length)break;if(!this.nextLine())return this.finish()}if(this.fragments&&this.reuseFragment(e.basePos))return null;e:for(;;){for(let n of this.parser.blockParsers)if(n){let i=n(this,e);if(i!=!1){if(i==!0)return null;e.forward();continue e}}break}if(e.pos==e.text.length)return this.nextLine()?null:this.finish();let t=new mO(this.lineStart+e.pos,e.text.slice(e.pos));for(let n of this.parser.leafBlockParsers)if(n){let i=n(this,t);i&&t.parsers.push(i)}e:for(;this.nextLine()&&e.pos!=e.text.length;){if(e.indent<e.baseIndent+4){for(let n of this.parser.endLeafBlock)if(n(this,e,t))break e}for(let n of t.parsers)if(n.nextLine(this,e,t))return null;t.content+=`
|
||||
`),d=0;for(let h=0;h<c.length;h++){let u=c[h],p=u.toLowerCase().indexOf(n);if(p>=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-p*2),ranges:[p,p+e.length]}),++d>=s)break}}}),i):[]}async onFileChanged(e,t){let n=this.extractSymbolsFromFile(e,t,"project");this.index.pushRecords(n)}extractSymbolsFromFile(e,t,n){if(typeof t!="string")return[];let i=this.detectEditorStyle(e);return bm(t,e,i,n)}detectEditorStyle(e){var n;switch((n=e.split(".").pop())==null?void 0:n.toLowerCase()){case"c":case"h":return"text/x-csrc";case"asm":case"a65":case"inc":return"6502";case"v":return"verilog";case"wiz":return"text/x-wiz";case"bas":case"basic":return"basic";case"fb":case"fastbasic":return"fastbasic";case"bac":case"bataribasic":return"bataribasic";case"i":return"inform6";case"d":return"dialog";default:return"text/x-csrc"}}async rebuild(){this.index.clear(),await this.index.init();let e=Ki();if(!e)return;let t=[];e.iterateFiles((n,i)=>{if(typeof i!="string")return;let s=this.detectEditorStyle(n),o=bm(i,n,s,"project");t.push(...o)}),this.index.pushRecords(t)}};var AR=new Set(["h","hh","hpp","inc","asm","a65","s","mac","defs","def","equ","i","m","c","bas","txt"]),RR=20,Qd=class{constructor(){this.id="toolchain";this.kind="toolchain";this.fsName=null;this.files=[];this.loaded=new Map;this.readyDone=!1;this.loadIdx=0;this.batchSize=RR}async ready(){if(this.readyDone)return;this.readyDone=!0;let e=Ki();if(!e)return;let t;try{t=e.getToolForFilename?e.getToolForFilename(e.mainPath):""}catch(o){t=""}let n=Yl(t,e.platform_id),i=Vl(t,e.platform_id);if(!n||!i.length)return;this.fsName=n;let s=new Set;for(let o of i){let a=await this.listFiles(o);for(let l of a)this.isSearchable(l)&&!s.has(l)&&(s.add(l),this.files.push(l))}this.files.sort()}isValid(){return this.fsName!=null&&this.files.length>0}async listFiles(e){let t=Ki();if(!t||!this.fsName||!t.queryWorker)return[];try{let n={preload_fs:this.fsName,listshared:e,updates:[],buildsteps:[]},i=await t.queryWorker(n),s=i&&i.output;return Array.isArray(s)?s:[]}catch(n){return console.debug("Toolchain list error:",n),[]}}async readFile(e){let t=Ki();if(!t||!this.fsName||!t.queryWorker)return null;try{let n={preload_fs:this.fsName,readshared:e,updates:[],buildsteps:[]},i=await t.queryWorker(n),s=i&&i.output;return s instanceof Uint8Array&&s.length>0?new TextDecoder().decode(s):null}catch(n){return console.debug("Toolchain read error:",n),null}}isSearchable(e){let t=e.split("/").pop()||e,n=t.lastIndexOf(".");return n<0?!0:AR.has(t.substring(n+1).toLowerCase())}async ensureBatch(){let e=Ki();if(!(!e||!e.queryWorker))for(;this.loadIdx<this.files.length;){let t=this.files.slice(this.loadIdx,this.loadIdx+this.batchSize);this.loadIdx+=t.length;let n=await Promise.all(t.map(async i=>{let s=await this.readFile(i);return[i,s]}));for(let[i,s]of n)s!=null&&this.loaded.set(i,s);if(this.loaded.size>0||this.loadIdx>=this.files.length)break}}async query(e,t){return await this.ready(),!this.isValid()||e.length<2?[]:(await this.ensureBatch(),this.textQuery(e,t))}textQuery(e,t){if(e.length<2)return[];let n=e.toLowerCase(),i=[],s=Math.max(t,5);for(let[o,a]of this.loaded){let l=a.split(`
|
||||
`),c=0;for(let d=0;d<l.length;d++){let h=l[d],f=h.toLowerCase().indexOf(n);if(f>=0){let p=h.trim();if(!p)continue;if(i.push({record:{id:`toolchain:${o}:${d+1}`,name:p.length>80?p.slice(0,80)+"\u2026":p,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.readyDone=!1,this.loadIdx=0}};var Ev=()=>[];function Mv(r){Ev=r}var ER=/<h([1-3])\b[^>]*>([\s\S]*?)<\/h\1>/gi;function MR(r){return r.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/&#(?:0*39|x27);/gi,"'").replace(/ /g," ").replace(/…/g,"\u2026").replace(/—/g,"\u2014").replace(/–/g,"\u2013").replace(/’|‘/g,"'").replace(/”|“/g,'"').replace(/»/g,"\xBB").replace(/«/g,"\xAB").replace(/&/g,"&")}function ym(r){return MR(r.replace(/<[^>]+>/g," ")).replace(/\s+/g," ").trim()}function LR(r,e=180){let t=r.trim();if(!t)return;let i=t.slice(0,e).match(/^([\s\S]*?[.!?])(?:\s|$)/);return i?i[1]:t.length<=e?t:t.slice(0,e-1)+"\u2026"}function ZR(r){let e=[],t="#help/"+r.id,n=r.title||r.id,i=r.html||"",s=[],o=new RegExp(ER.source,"gi"),a;for(;a=o.exec(i);)s.push({name:ym(a[2]),start:a.index,end:o.lastIndex});let l=(u,f,p)=>{if(!f)return;let O=LR(p),x=O&&p.startsWith(O)?p.slice(O.length).trim():p;e.push({id:`${r.id}:${u}`,name:f,kind:"doc",brief:O,detail:x||void 0,source:"docs",file:n,url:t})},c=s.length?s[0].start:i.length,d=ym(i.slice(0,c)),h=s.length&&s[0].start===0?s[0].name||r.title:r.title||r.id;l(0,h,d);for(let u=0;u<s.length;u++){if(u===0&&s[0].start===0)continue;let f=u+1<s.length?s[u+1].start:i.length;l(u+1,s[u].name,ym(i.slice(s[u].end,f)))}return e}var $d=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=Ev()||[];if(e.length===0)return;let t=[];for(let i of e)t.push(...ZR(i));if(t.length===0)return;let n=new so(t);await n.init(),this.index=n}async query(e,t){return await this.ready(),this.index?this.index.query(e,t):[]}};var XR=50,xm=class r{constructor(){this.sources=new Map;this.projectSource=new kd,this.toolchainSource=new Qd,this.docsSource=new $d,this.sources.set("project",this.projectSource),this.sources.set("toolchain",this.toolchainSource),this.sources.set("docs",this.docsSource)}static getInstance(){return r.instance||(r.instance=new r),r.instance}parseQuery(e){return e.startsWith("#")?{needle:e.slice(1).trim(),filter:"symbols"}:e.startsWith(">")?{needle:e.slice(1).trim(),filter:"files"}:e.startsWith("?")?{needle:e.slice(1).trim(),filter:"docs"}:{needle:e,filter:"all"}}async query(e,t=XR){let{needle:n,filter:i}=this.parseQuery(e);if(!n)return[];let s=[],o=[];i==="docs"?o.push(this.docsSource):i==="files"?o.push(this.projectSource):i==="symbols"?(o.push(this.projectSource),o.push(this.toolchainSource)):(o.push(this.projectSource),o.push(this.toolchainSource),o.push(this.docsSource));for(let d of o)try{await d.ready();let h=await d.query(n,t-s.length);s.push(...h)}catch(h){console.debug("Search source error:",h)}s.sort((d,h)=>h.score-d.score);let a={project:1.3,toolchain:1,docs:.7};for(let d of s){let h=a[d.record.source]||1;d.score*=h}s.sort((d,h)=>h.score-d.score);let l=new Set;return s.filter(d=>l.has(d.record.id)?!1:(l.add(d.record.id),!0)).slice(0,t)}},Lv=xm.getInstance();var Zv=typeof String.prototype.normalize=="function"?r=>r.normalize("NFKD"):r=>r,di=class{constructor(e,t,n=0,i=e.length,s,o){this.test=o,this.value={from:0,to:0,precise:!1},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(n,i),this.bufferStart=n,this.normalize=s?a=>s(Zv(a)):Zv,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 Yr(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=ec(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=qn(e);let i=this.normalize(t);if(i.length)for(let s=0,o=n,a=!0;;s++){let l=i.charCodeAt(s),c=this.match(l,o,a,this.bufferPos+this.bufferStart,s==i.length-1);if(c)return this.value=c,this;if(s==i.length-1)break;a&&s<t.length&&t.charCodeAt(s)==l?o++:a=!1}}}match(e,t,n,i,s){let o=null;for(let a=0;a<this.matches.length;){let l=this.matches[a],c=!1;this.query.charCodeAt(l.index)==e&&(l.index==this.query.length-1?o={from:l.from,to:i,precise:s&&l.precise}:(l.index++,c=!0)),c?a++:this.matches.splice(a,1)}return this.query.charCodeAt(0)==e&&(this.query.length==1?o={from:t,to:i,precise:n&&s}:this.matches.push({from:t,index:1,precise:n})),o&&this.test&&!this.test(o.from,o.to,this.buffer,this.bufferStart)
Line truncated
|
||||
`:n=="r"?"\r":n=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new wm(this):new vm(this)}getCursor(e,t=0,n){let i=e.doc?e:Pe.create({doc:e});return n==null&&(n=i.doc.length),this.regexp?ao(this,i,t,n):oo(this,i,t,n)}},Ld=class{constructor(e){this.spec=e}};function UR(r,e,t){return(n,i,s,o)=>{if(t&&!t(n,i,s,o))return!1;let a=n>=o&&i<=o+s.length?s.slice(n-o,i-o):e.doc.sliceString(n,i);return r(a,e,n,i)}}function oo(r,e,t,n){let i;return r.wholeWord&&(i=qR(e.doc,e.charCategorizer(e.selection.main.head))),r.test&&(i=UR(r.test,e,i)),new di(e.doc,r.unquoted,t,n,r.caseSensitive?void 0:s=>s.toLowerCase(),i)}function qR(r,e){return(t,n,i,s)=>((s>t||s+i.length<n)&&(s=Math.max(0,t-2),i=r.sliceString(s,Math.min(r.length,n+2))),(e(Zd(i,t-s))!=Xe.Word||e(Xd(i,t-s))!=Xe.Word)&&(e(Xd(i,n-s))!=Xe.Word||e(Zd(i,n-s))!=Xe.Word))}var vm=class extends Ld{constructor(e){super(e)}nextMatch(e,t,n){let i=oo(this.spec,e,n,e.doc.length).nextOverlapping();if(i.done){let s=Math.min(e.doc.length,t+this.spec.unquoted.length);i=oo(this.spec,e,0,s).nextOverlapping()}return i.done||i.value.from==t&&i.value.to==n?null:i.value}prevMatchInRange(e,t,n){for(let i=n;;){let s=Math.max(t,i-1e4-this.spec.unquoted.length),o=oo(this.spec,e,s,i),a=null;for(;!o.nextOverlapping().done;)a=o.value;if(a)return a;if(s==t)return null;i-=1e4}}prevMatch(e,t,n){let i=this.prevMatchInRange(e,0,t);return i||(i=this.prevMatchInRange(e,Math.max(0,n-this.spec.unquoted.length),e.doc.length)),i&&(i.from!=t||i.to!=n)?i:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=oo(this.spec,e,0,e.doc.length),i=[];for(;!n.next().done;){if(i.length>=t)return null;i.push(n.value)}return i}highlight(e,t,n,i){let s=oo(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)i(s.value.from,s.value.to)}};function GR(r,e,t){return(n,i,s)=>(!t||t(n,i,s))&&r(s[0],e,n,i)}function ao(r,e,t,n){let i;return r.wholeWord&&(i=HR(e.charCategorizer(e.selection.main.head))),r.test&&(i=GR(r.test,e,i)),new Cd(e.doc,r.search,{ignoreCase:!r.caseSensitive,test:i},t,n)}function Zd(r,e){return r.slice(it(r,e,!1),e)}function Xd(r,e){return r.slice(e,it(r,e))}function HR(r){return(e,t,n)=>!n[0].length||(r(Zd(n.input,n.index))!=Xe.Word||r(Xd(n.input,n.index))!=Xe.Word)&&(r(Xd(n.input,n.index+n[0].length))!=Xe.Word||r(Zd(n.input,n.index+n[0].length))!=Xe.Word)}var wm=class extends Ld{nextMatch(e,t,n){let i=ao(this.spec,e,n,e.doc.length).next();return i.done&&(i=ao(this.spec,e,0,t).next()),i.done?null:i.value}prevMatchInRange(e,t,n){for(let i=1;;i++){let s=Math.max(t,n-i*1e4),o=ao(this.spec,e,s,n),a=null;for(;!o.next().done;)a=o.value;if(a&&(s==t||a.from>s+10))return a;if(s==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,n)=>{if(n=="&")return e.match[0];if(n=="$")return"$";for(let i=n.length;i>0;i--){let s=+n.slice(0,i);if(s>0&&s<e.match.length)return e.match[s]+n.slice(i)}return t})}matchAll(e,t){let n=ao(this.spec,e,0,e.doc.length),i=[];for(;!n.next().done;){if(i.length>=t)return null;i.push(n.value)}return i}highlight(e,t,n,i){let s=ao(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!s.next().done;)i(s.value.from,s.value.to)}},Aa=ce.define(),Cm=ce.define(),ci=$e.define({create(r){return new Ca(Pm(r).create(),null)},update(r,e){for(let t of e.effects)t.is(Aa)?r=new Ca(t.value.create(),r.panel):t.is(Cm)&&(r=new Ca(r.query,t.value?Am:null));return r},provide:r=>ca.from(r,e=>e.panel)});var Ca=class{constructor(e,t){this.query=e,this.panel=t}},KR=F.mark({class:"cm-searchMatch"}),JR=F.mark({class:"cm-searchMatch cm-searchMatch-selected"}),eE=We.fromClass(class{constructor(r){this.view=r,this.decorations=this.highlight(r.state.field(ci))}update(r){let e=r.state.field(ci);(e!=r.startState.field(ci)||r.docChanged||r.selectionSet||r.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:r,panel:e}){if(!e||!r.spec.valid)return F.none;let{view:t}=this,n=new Vr;for(let i=0,s=t.visibleRanges,o=s.length;i<o;i++){let{from:a,to:l}=s[i];for(;i<o-1&&l>s[i+1].from-500;)l=s[++i].to;r.highlight(t.state,a,l,(c,d)=>{let h=t.state.selection.ranges.some(u=>u.from==c&&u.to==d);n.add(c,d,h?JR:KR)})}return n.finish()}},{decorations:r=>r.decorations});function Ra(r){return e=>{let t=e.state.field(ci,!1);return t&&t.query.spec.valid?r(e,t):zd(e)}}var lo=Ra((r,{query:e})=>{let{to:t}=r.state.selection.main,n=e.nextMatch(r.state,t,t);if(!n)return!1;let i=M.single(n.from,n.to),s=r.state.facet(Ji);return r.dispatch({selection:i,effects:[Rm(r,n),s.scrollToMatch(i.main,r)],userEvent:"select.search"}),Vv(r),!0}),Dd=Ra((r,{query:e})=>{let{state:t}=r,{from:n}=t.selection.main,i=e.prevMatch(t,n,n);if(!i)
Line truncated
|
||||
`+t.scrub(),s=this.advance(i);return s>-1&&s<i.length?this.complete(e,n,s):!1}finish(e,t){return(this.stage==2||this.stage==3)&&La(t.content,this.pos)==t.content.length?this.complete(e,t,t.content.length):!1}complete(e,t,n){return e.addLeafElement(t,Ce(N.LinkReference,this.start,this.start+n,this.elts)),!0}nextStage(e){return e?(this.pos=e.to-this.start,this.elts.push(e),this.stage++,!0):(e===!1&&(this.stage=-1),!1)}advance(e){for(;;){if(this.stage==-1)return-1;if(this.stage==0){if(!this.nextStage(Yw(e,this.pos,this.start,!0)))return-1;if(e.charCodeAt(this.pos)!=58)return this.stage=-1;this.elts.push(Ce(N.LinkMark,this.pos+this.start,this.pos+this.start+1)),this.pos++}else if(this.stage==1){if(!this.nextStage(Ww(e,La(e,this.pos),this.start)))return-1}else if(this.stage==2){let t=La(e,this.pos),n=0;if(t>this.pos){let i=Vw(e,t,this.start);if(i){let s=pO(e,i.to-this.start);s>0&&(this.nextStage(i),n=s)}}return n||(n=pO(e,this.pos)),n>0&&n<e.length?n:-1}else return pO(e,this.pos)}}};function pO(r,e){for(;e<r.length;e++){let t=r.charCodeAt(e);if(t==10)break;if(!Er(t))return-1}return e}var SO=class{nextLine(e,t,n){let i=t.depth<e.stack.length?-1:Rw(t),s=t.next;if(i<0)return!1;let o=Ce(N.HeaderMark,e.lineStart+t.pos,e.lineStart+i);return e.nextLine(),e.addLeafElement(n,Ce(s==61?N.SetextHeading1:N.SetextHeading2,n.start,e.prevLineEnd(),[...e.parser.parseInline(n.content,n.start),o])),!0}finish(){return!1}},Zw={LinkReference(r,e){return e.content.charCodeAt(0)==91?new xO(e):null},SetextHeading(){return new SO}},g2=[(r,e)=>Aw(e)>=0,(r,e)=>Tw(e)>=0,(r,e)=>_w(e)>=0,(r,e)=>TO(e,r,!0)>=0,(r,e)=>_O(e,r,!0)>=0,(r,e)=>$O(e,r,!0)>=0,(r,e)=>Lw(e,r,!0)>=0],b2={text:"",end:0},vO=class{constructor(e,t,n,i){this.parser=e,this.input=t,this.ranges=i,this.line=new gO,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=jd.create(N.Document,0,this.lineStart,0,0),this.stack=[this.block],this.fragments=n.length?new kO(n,t):null,this.readLine()}get parsedPos(){return this.absoluteLineStart}advance(){if(this.stoppedAt!=null&&this.absoluteLineStart>this.stoppedAt)return this.finish();let{line:e}=this;for(;;){for(let n=0;;){let i=e.depth<this.stack.length?this.stack[this.stack.length-1]:null;for(;n<e.markers.length&&(!i||e.markers[n].from<i.end);){let s=e.markers[n++];this.addNode(s.type,s.from,s.to)}if(!i)break;this.finishContext()}if(e.pos<e.text.length)break;if(!this.nextLine())return this.finish()}if(this.fragments&&this.reuseFragment(e.basePos))return null;e:for(;;){for(let n of this.parser.blockParsers)if(n){let i=n(this,e);if(i!=!1){if(i==!0)return null;e.forward();continue e}}break}if(e.pos==e.text.length)return this.nextLine()?null:this.finish();let t=new OO(this.lineStart+e.pos,e.text.slice(e.pos));for(let n of this.parser.leafBlockParsers)if(n){let i=n(this,t);i&&t.parsers.push(i)}e:for(;this.nextLine()&&e.pos!=e.text.length;){if(e.indent<e.baseIndent+4){for(let n of this.parser.endLeafBlock)if(n(this,e,t))break e}for(let n of t.parsers)if(n.nextLine(this,e,t))return null;t.content+=`
|
||||
`+e.scrub();for(let n of e.markers)t.marks.push(n)}return this.finishLeaf(t),null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}reuseFragment(e){if(!this.fragments.moveTo(this.absoluteLineStart+e,this.absoluteLineStart)||!this.fragments.matches(this.block.hash))return!1;let t=this.fragments.takeNodes(this);return t?(this.absoluteLineStart+=t,this.lineStart=Bw(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=b2;if(t.end=e,e>=this.to)t.text="";else if(t.text=this.lineChunkAt(e),t.end+=t.text.length,this.ranges.length>1){let n=this.absoluteLineStart,i=this.rangeI;for(;this.ranges[i].to<t.end;){i++;let s=this.ranges[i].from,o=this.lineChunkAt(s);t.end=s+o.length,t.text=t.text.slice(0,this.ranges[i-1].to-n)+o,n=t.end-t.text.length}}return t}readLine(){let{line:e}=this,{text:t,end:n}=this.scanLine(this.absoluteLineStart);for(this.absoluteLineEnd=n,e.reset(t);e.depth<this.stack.length;e.depth++){let i=this.stack[e.depth],s=this.parser.skipContextMarkup[i.type];if(!s)throw new Error("Unhandled block context "+N[i.type]);let o=this.line.markers.length;if(!s(i,this,e)){this.line.markers.length>o&&(i.end=this.line.markers[this.line.markers.length-1].to),e.forward();break}e.forward()}}lineChunkAt(e){let t=this.input.chunk(e),n;if(this.input.lineChunks)n=t==`
|
||||
`?"":t;else{let i=t.indexOf(`
|
||||
`);n=i<0?t:t.slice(0,i)}return e+n.length>this.to?n.slice(0,this.to-e):n}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(e,t,n=0){this.block=jd.create(e,n,this.lineStart+t,this.block.hash,this.lineStart+this.line.text.length),this.stack.push(this.block)}startComposite(e,t,n=0){this.startContext(this.parser.getNodeType(e),t,n)}addNode(e,t,n){typeof e=="number"&&(e=new xe(this.parser.nodeSet.types[e],uo,uo,(n!=null?n:this.prevLineEnd())-t)),this.block.addChild(e,t-this.block.from)}addElement(e){this.block.addChild(e.toTree(this.parser.nodeSet),e.from-this.block.from)}addLeafElement(e,t){this.addNode(this.buffer.writeElements(wO(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?Xw(this.ranges,0,e.topNode,this.ranges[0].from,this.reusePlaceholders):e}finishLeaf(e){for(let n of e.parsers)if(n.finish(this,e))return;let t=wO(this.parser.parseInline(e.content,e.start),e.marks);this.addNode(this.buffer.writeElements(t,-e.start).finish(N.Paragraph,e.content.length),e.start)}elt(e,t,n,i){return typeof e=="string"?Ce(this.parser.getNodeType(e),t,n,i):new Nd(e,t)}get buffer(){return new Fd(this.parser.nodeSet)}};function Xw(r,e,t,n,i){let s=r[e].to,o=[],a=[],l=t.from+n;function c(d,h){for(;h?d>=s:d>s;){let u=r[e+1].from-s;n+=u,d+=u,e++,s=r[e].to}}for(let d=t.firstChild;d;d=d.nextSibling){c(d.from+n,!0);let h=d.from+n,u,f=i.get(d.tree);f?u=f:d.to+n>s?(u=Xw(r,e,d,n,i),c(d.to+n,!1)):u=d.toTree(),o.push(u),a.push(h-l)}return c(t.to+n,!1),new xe(t.type,o,a,t.to+n-l,t.tree?t.tree.propValues:void 0)}var Xa=class r extends Tn{constructor(e,t,n,i,s,o,a,l,c){super(),this.nodeSet=e,this.blockParsers=t,this.leafBlockParsers=n,this.blockNames=i,this.endLeafBlock=s,this.skipContextMarkup=o,this.inlineParsers=a,this.inlineNames=l,this.wrappers=c,this.nodeTypes=Object.create(null);for(let d of e.types)this.nodeTypes[d.name]=d.id}createParse(e,t,n){let i=new SO(this,e,t,n);for(let s of this.wrappers)i=s(i,e,t,n);return i}configure(e){let t=vO(e);if(!t)return this;let{nodeSet:n,skipContextMarkup:i}=this,s=this.blockParsers.slice(),o=this.leafBlockParsers.slice(),a=this.blockNames.slice(),l=this.inlineParsers.slice(),c=this.inlineNames.slice(),d=this.endLeafBlock.slice(),h=this.wrappers;if(Ma(t.defineNodes)){i=Object.assign({},i);let u=n.types.slice(),f;for(let p of t.defineNodes){let{name:O,block:x,composite:w,style:E}=typeof p=="string"?{name:p}:p;if(u.some(T=>T.name==O))continue;w&&(i[u.length]=(T,k,R)=>w(k,R,T.value));let A=u.length,X=w?["Block","BlockContext"]:x?A>=N.ATXHeading1&&A<=N.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"]:void 0;u.push(rt.define({id:A,name:O,props:X&&[[ue.group,X]]})),E&&(f||(f={}),Array.isArray(E)||E instanceof dr?f[O]=E:Object.assign(f,E))}n=new Qn(u),f&&(n=n.extend(vt(f)))}if(Ma(t.props)&&(n=n.extend(...t.props)),Ma(t.remove))for(let u of t.remove){let f=this.blockNames.indexOf(u),p=this.inlineNames.indexOf(u);f>-1&&(s[f]=o[f]=void 0),p>-1&&(l[p]=void 0)}if(Ma(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 p=u.before?Bd(a,u.before):u.after?Bd(a,u.after)+1:a.length-1;s.splice(p,0,u.parse),o.splice(p,0,u.leaf),a.splice(p,0,u.name)}u.endLeaf&&d.push(u.endLeaf)}if(Ma(t.parseInline))for(let u of t.parseInline){let f=c.indexOf(u.name);if(f>-1)l[f]=u.parse;else{let p=u.before?Bd(c,u.before):u.after?Bd(c,u.after)+1:c.length-1;l.splice(p,0,u.parse),c.splice(p,0,u.name)}}return t.wrap&&(h=h.concat(t.wrap)),new r(n,s,o,a,d,i,l,c,h)}getNodeType(e){let t=this.nodeTypes[e];if(t==null)throw new RangeError(`Unknown node type '${e}'`);return t}parseInline(e,t){let n=new Ia(this,e,t);e:for(let i=t;i<n.end;){let s=n.char(i);for(let o of this.inlineParsers)if(o){let a=o(n,s,i);if(a>=0){i=a;continue e}}i++}return n.resolveMarkers(0)}};function Ma(r){return r!=null&&r.length>0}function vO(r){if(!Array.isArray(r))return r;if(r.length==0)return null;let e=vO(r[0]);if(r.length==1)return e;let t=vO(r.slice(1));if(!t||!e)return e||t;let n=(o,a)=>(o||uo).concat(a||uo),i=e.wrap,s=t.wrap;return{props:n(e.props,t.props),defineNodes:n(e.defineNodes,t.defineNodes),parseBlock:n(e.parseBlock,t.parseBlock),parseInline:n(e.parseInline,t.parseInline),remove:n(e.remove,t.remove),wrap:i?s?(o,a,l,c)=>i(s(o,a,l,c),a,l,c):i:s}}function Bd(r,e){let t=r.indexOf(e);if(t<0)throw new RangeError(`Position specified relative to unknown parser ${e}`);return t}var Dw=[rt.none];for(let r=1,e;e=N[r];r++)Dw[r]=rt.define({id:r,name:e,props:r>=N.Escape?[]:[[ue.group,r in $w?["Block","BlockContext"]:["Block","LeafBlock"]]],top:e=="Document"});var uo=[],Fd=class{constructor(e){this.nodeSet=e,this.content=[],this.nodes=[]}write(e,t,n,
Line truncated
|
||||
`;)s--;this.fragmentEnd=s?s-1:0}let n=this.cursor;n||(n=this.cursor=this.fragment.tree.cursor(),n.firstChild());let i=e+this.fragment.offset;for(;n.to<=i;)if(!n.parent())return!1;for(;;){if(n.from>=i)return this.fragment.from<=t;if(!n.childAfter(i))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(ue.contextHash)==e}takeNodes(e){let t=this.cursor,n=this.fragment.offset,i=this.fragmentEnd-(this.fragment.openEnd?1:0),s=e.absoluteLineStart,o=s,a=e.block.children.length,l=o,c=a;for(;;){if(t.to-n>i){if(t.type.isAnonymous&&t.firstChild())continue;break}let d=Bw(t.from-n,e.ranges);if(t.to-n<=e.ranges[e.rangeI].to)e.addNode(t.tree,d);else{let h=new xe(e.parser.nodeSet.types[N.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(h,t.tree),e.addNode(h,d)}if(t.type.is("Block")&&(x2.indexOf(t.type.id)<0?(o=t.to-n,a=e.block.children.length):(o=l,a=c),l=t.to-n,c=e.block.children.length),!t.nextSibling())break}for(;e.block.children.length>a;)e.block.children.pop(),e.block.positions.pop();return o-s}};function Bw(r,e){let t=r;for(let n=1;n<e.length;n++){let i=e[n-1].to,s=e[n].from;i<r&&(t-=s-i)}return t}var S2=vt({"Blockquote/...":m.quote,HorizontalRule:m.contentSeparator,"ATXHeading1/... SetextHeading1/...":m.heading1,"ATXHeading2/... SetextHeading2/...":m.heading2,"ATXHeading3/...":m.heading3,"ATXHeading4/...":m.heading4,"ATXHeading5/...":m.heading5,"ATXHeading6/...":m.heading6,"Comment CommentBlock":m.comment,Escape:m.escape,Entity:m.character,"Emphasis/...":m.emphasis,"StrongEmphasis/...":m.strong,"Link/... Image/...":m.link,"OrderedList/... BulletList/...":m.list,"BlockQuote/...":m.quote,"InlineCode CodeText":m.monospace,"URL Autolink":m.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":m.processingInstruction,"CodeInfo LinkLabel":m.labelName,LinkTitle:m.string,Paragraph:m.content}),jw=new Xa(new Qn(Dw).extend(S2),Object.keys(Yd).map(r=>Yd[r]),Object.keys(Yd).map(r=>Zw[r]),Object.keys(Yd),g2,$w,Object.keys(pO).map(r=>pO[r]),Object.keys(pO),[]);function v2(r,e,t){let n=[];for(let i=r.firstChild,s=e;;i=i.nextSibling){let o=i?i.from:t;if(o>s&&n.push({from:s,to:o}),!i)break;s=i.to}return n}function Fw(r){let{codeParser:e,htmlParser:t}=r;return{wrap:Uc((i,s)=>{let o=i.type.id;if(e&&(o==N.CodeBlock||o==N.FencedCode)){let a="";if(o==N.FencedCode){let c=i.node.getChild(N.CodeInfo);c&&(a=s.read(c.from,c.to))}let l=e(a);if(l)return{parser:l,overlay:c=>c.type.id==N.CodeText,bracketed:o==N.FencedCode}}else if(t&&(o==N.HTMLBlock||o==N.HTMLTag||o==N.CommentBlock))return{parser:t,overlay:v2(i.node,i.from,i.to)};return null})}}var w2={resolve:"Strikethrough",mark:"StrikethroughMark"},P2={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":m.strikethrough}},{name:"StrikethroughMark",style:m.processingInstruction}],parseInline:[{name:"Strikethrough",parse(r,e,t){if(e!=126||r.char(t+1)!=126||r.char(t+2)==126)return-1;let n=r.slice(t-1,t),i=r.slice(t+2,t+3),s=/\s|^$/.test(n),o=/\s|^$/.test(i),a=Da.test(n),l=Da.test(i);return r.addDelimiter(w2,t,t+2,!o&&(!l||s||a),!s&&(!a||o||l))},after:"Emphasis"}]};function Za(r,e,t=0,n,i=0){let s=0,o=!0,a=-1,l=-1,c=!1,d=()=>{n.push(r.elt("TableCell",i+a,i+l,r.parser.parseInline(e.slice(a,l),i+a)))};for(let h=t;h<e.length;h++){let u=e.charCodeAt(h);u==124&&!c?((!o||a>-1)&&s++,o=!1,n&&(a>-1&&d(),n.push(r.elt("TableDelimiter",h+i,h+i+1))),a=l=-1):(c||u!=32&&u!=9)&&(a<0&&(a=h),l=h+1),c=!c&&u==92}return a>-1&&(s++,n&&d()),s}function xw(r,e){for(let t=e;t<r.length;t++){let n=r.charCodeAt(t);if(n==124)return!0;n==92&&t++}return!1}var Nw=/^[>\s]*\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/,qd=class{constructor(){this.rows=null}nextLine(e,t,n){if(this.rows==null){this.rows=!1;let i;if((t.next==45||t.next==58||t.next==124)&&Nw.test(i=t.text.slice(t.pos))){let s=[];Za(e,n.content,0,s,n.start)==Za(e,i,0)&&(this.rows=[e.elt("TableHeader",n.start,n.start+n.content.length,s),e.elt("TableDelimiter",e.lineStart+t.pos,e.lineStart+t.text.length)])}}else if(this.rows){let i=[];Za(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}},k2={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":m.heading}},"TableRow",{name:"TableCell",style:m.content},{name:"TableDelimiter",style:m.processingInstruction}],parseBlock:[{name:"Table",leaf(r,e){return xw(e.content,0)?new qd:null},endLeaf(r,e,t){if(t.parsers.some(i=>i instanceof qd)||!xw(e.text,e.basePos))return!1;let n=r.peekLine();return Nw.test(n)&&Za(r,e.text,e.basePos)==Za(r,n,e.basePos)},before:"SetextHeading"}]},kO=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}},Q2={defineNodes:[{name:"Task",block:!0,style:m.list},{name:"TaskMarker",style:m.atom}],parseBlock:[
Line truncated
|
||||
`);n=i<0?t:t.slice(0,i)}return e+n.length>this.to?n.slice(0,this.to-e):n}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(e,t,n=0){this.block=jd.create(e,n,this.lineStart+t,this.block.hash,this.lineStart+this.line.text.length),this.stack.push(this.block)}startComposite(e,t,n=0){this.startContext(this.parser.getNodeType(e),t,n)}addNode(e,t,n){typeof e=="number"&&(e=new xe(this.parser.nodeSet.types[e],uo,uo,(n!=null?n:this.prevLineEnd())-t)),this.block.addChild(e,t-this.block.from)}addElement(e){this.block.addChild(e.toTree(this.parser.nodeSet),e.from-this.block.from)}addLeafElement(e,t){this.addNode(this.buffer.writeElements(PO(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?Xw(this.ranges,0,e.topNode,this.ranges[0].from,this.reusePlaceholders):e}finishLeaf(e){for(let n of e.parsers)if(n.finish(this,e))return;let t=PO(this.parser.parseInline(e.content,e.start),e.marks);this.addNode(this.buffer.writeElements(t,-e.start).finish(N.Paragraph,e.content.length),e.start)}elt(e,t,n,i){return typeof e=="string"?Ce(this.parser.getNodeType(e),t,n,i):new Nd(e,t)}get buffer(){return new Fd(this.parser.nodeSet)}};function Xw(r,e,t,n,i){let s=r[e].to,o=[],a=[],l=t.from+n;function c(d,h){for(;h?d>=s:d>s;){let u=r[e+1].from-s;n+=u,d+=u,e++,s=r[e].to}}for(let d=t.firstChild;d;d=d.nextSibling){c(d.from+n,!0);let h=d.from+n,u,f=i.get(d.tree);f?u=f:d.to+n>s?(u=Xw(r,e,d,n,i),c(d.to+n,!1)):u=d.toTree(),o.push(u),a.push(h-l)}return c(t.to+n,!1),new xe(t.type,o,a,t.to+n-l,t.tree?t.tree.propValues:void 0)}var Xa=class r extends Tn{constructor(e,t,n,i,s,o,a,l,c){super(),this.nodeSet=e,this.blockParsers=t,this.leafBlockParsers=n,this.blockNames=i,this.endLeafBlock=s,this.skipContextMarkup=o,this.inlineParsers=a,this.inlineNames=l,this.wrappers=c,this.nodeTypes=Object.create(null);for(let d of e.types)this.nodeTypes[d.name]=d.id}createParse(e,t,n){let i=new vO(this,e,t,n);for(let s of this.wrappers)i=s(i,e,t,n);return i}configure(e){let t=wO(e);if(!t)return this;let{nodeSet:n,skipContextMarkup:i}=this,s=this.blockParsers.slice(),o=this.leafBlockParsers.slice(),a=this.blockNames.slice(),l=this.inlineParsers.slice(),c=this.inlineNames.slice(),d=this.endLeafBlock.slice(),h=this.wrappers;if(Ma(t.defineNodes)){i=Object.assign({},i);let u=n.types.slice(),f;for(let p of t.defineNodes){let{name:O,block:x,composite:w,style:E}=typeof p=="string"?{name:p}:p;if(u.some(T=>T.name==O))continue;w&&(i[u.length]=(T,k,R)=>w(k,R,T.value));let A=u.length,X=w?["Block","BlockContext"]:x?A>=N.ATXHeading1&&A<=N.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"]:void 0;u.push(rt.define({id:A,name:O,props:X&&[[ue.group,X]]})),E&&(f||(f={}),Array.isArray(E)||E instanceof dr?f[O]=E:Object.assign(f,E))}n=new Qn(u),f&&(n=n.extend(wt(f)))}if(Ma(t.props)&&(n=n.extend(...t.props)),Ma(t.remove))for(let u of t.remove){let f=this.blockNames.indexOf(u),p=this.inlineNames.indexOf(u);f>-1&&(s[f]=o[f]=void 0),p>-1&&(l[p]=void 0)}if(Ma(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 p=u.before?Bd(a,u.before):u.after?Bd(a,u.after)+1:a.length-1;s.splice(p,0,u.parse),o.splice(p,0,u.leaf),a.splice(p,0,u.name)}u.endLeaf&&d.push(u.endLeaf)}if(Ma(t.parseInline))for(let u of t.parseInline){let f=c.indexOf(u.name);if(f>-1)l[f]=u.parse;else{let p=u.before?Bd(c,u.before):u.after?Bd(c,u.after)+1:c.length-1;l.splice(p,0,u.parse),c.splice(p,0,u.name)}}return t.wrap&&(h=h.concat(t.wrap)),new r(n,s,o,a,d,i,l,c,h)}getNodeType(e){let t=this.nodeTypes[e];if(t==null)throw new RangeError(`Unknown node type '${e}'`);return t}parseInline(e,t){let n=new Ia(this,e,t);e:for(let i=t;i<n.end;){let s=n.char(i);for(let o of this.inlineParsers)if(o){let a=o(n,s,i);if(a>=0){i=a;continue e}}i++}return n.resolveMarkers(0)}};function Ma(r){return r!=null&&r.length>0}function wO(r){if(!Array.isArray(r))return r;if(r.length==0)return null;let e=wO(r[0]);if(r.length==1)return e;let t=wO(r.slice(1));if(!t||!e)return e||t;let n=(o,a)=>(o||uo).concat(a||uo),i=e.wrap,s=t.wrap;return{props:n(e.props,t.props),defineNodes:n(e.defineNodes,t.defineNodes),parseBlock:n(e.parseBlock,t.parseBlock),parseInline:n(e.parseInline,t.parseInline),remove:n(e.remove,t.remove),wrap:i?s?(o,a,l,c)=>i(s(o,a,l,c),a,l,c):i:s}}function Bd(r,e){let t=r.indexOf(e);if(t<0)throw new RangeError(`Position specified relative to unknown parser ${e}`);return t}var Dw=[rt.none];for(let r=1,e;e=N[r];r++)Dw[r]=rt.define({id:r,name:e,props:r>=N.Escape?[]:[[ue.group,r in $w?["Block","BlockContext"]:["Block","LeafBlock"]]],top:e=="Document"});var uo=[],Fd=class{constructor(e){this.nodeSet=e,this.content=[],this.nodes=[]}write(e,t,n,
Line truncated
|
||||
`;)s--;this.fragmentEnd=s?s-1:0}let n=this.cursor;n||(n=this.cursor=this.fragment.tree.cursor(),n.firstChild());let i=e+this.fragment.offset;for(;n.to<=i;)if(!n.parent())return!1;for(;;){if(n.from>=i)return this.fragment.from<=t;if(!n.childAfter(i))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(ue.contextHash)==e}takeNodes(e){let t=this.cursor,n=this.fragment.offset,i=this.fragmentEnd-(this.fragment.openEnd?1:0),s=e.absoluteLineStart,o=s,a=e.block.children.length,l=o,c=a;for(;;){if(t.to-n>i){if(t.type.isAnonymous&&t.firstChild())continue;break}let d=Bw(t.from-n,e.ranges);if(t.to-n<=e.ranges[e.rangeI].to)e.addNode(t.tree,d);else{let h=new xe(e.parser.nodeSet.types[N.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(h,t.tree),e.addNode(h,d)}if(t.type.is("Block")&&(x2.indexOf(t.type.id)<0?(o=t.to-n,a=e.block.children.length):(o=l,a=c),l=t.to-n,c=e.block.children.length),!t.nextSibling())break}for(;e.block.children.length>a;)e.block.children.pop(),e.block.positions.pop();return o-s}};function Bw(r,e){let t=r;for(let n=1;n<e.length;n++){let i=e[n-1].to,s=e[n].from;i<r&&(t-=s-i)}return t}var S2=wt({"Blockquote/...":m.quote,HorizontalRule:m.contentSeparator,"ATXHeading1/... SetextHeading1/...":m.heading1,"ATXHeading2/... SetextHeading2/...":m.heading2,"ATXHeading3/...":m.heading3,"ATXHeading4/...":m.heading4,"ATXHeading5/...":m.heading5,"ATXHeading6/...":m.heading6,"Comment CommentBlock":m.comment,Escape:m.escape,Entity:m.character,"Emphasis/...":m.emphasis,"StrongEmphasis/...":m.strong,"Link/... Image/...":m.link,"OrderedList/... BulletList/...":m.list,"BlockQuote/...":m.quote,"InlineCode CodeText":m.monospace,"URL Autolink":m.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":m.processingInstruction,"CodeInfo LinkLabel":m.labelName,LinkTitle:m.string,Paragraph:m.content}),jw=new Xa(new Qn(Dw).extend(S2),Object.keys(Yd).map(r=>Yd[r]),Object.keys(Yd).map(r=>Zw[r]),Object.keys(Yd),g2,$w,Object.keys(mO).map(r=>mO[r]),Object.keys(mO),[]);function v2(r,e,t){let n=[];for(let i=r.firstChild,s=e;;i=i.nextSibling){let o=i?i.from:t;if(o>s&&n.push({from:s,to:o}),!i)break;s=i.to}return n}function Fw(r){let{codeParser:e,htmlParser:t}=r;return{wrap:Uc((i,s)=>{let o=i.type.id;if(e&&(o==N.CodeBlock||o==N.FencedCode)){let a="";if(o==N.FencedCode){let c=i.node.getChild(N.CodeInfo);c&&(a=s.read(c.from,c.to))}let l=e(a);if(l)return{parser:l,overlay:c=>c.type.id==N.CodeText,bracketed:o==N.FencedCode}}else if(t&&(o==N.HTMLBlock||o==N.HTMLTag||o==N.CommentBlock))return{parser:t,overlay:v2(i.node,i.from,i.to)};return null})}}var w2={resolve:"Strikethrough",mark:"StrikethroughMark"},P2={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":m.strikethrough}},{name:"StrikethroughMark",style:m.processingInstruction}],parseInline:[{name:"Strikethrough",parse(r,e,t){if(e!=126||r.char(t+1)!=126||r.char(t+2)==126)return-1;let n=r.slice(t-1,t),i=r.slice(t+2,t+3),s=/\s|^$/.test(n),o=/\s|^$/.test(i),a=Da.test(n),l=Da.test(i);return r.addDelimiter(w2,t,t+2,!o&&(!l||s||a),!s&&(!a||o||l))},after:"Emphasis"}]};function Za(r,e,t=0,n,i=0){let s=0,o=!0,a=-1,l=-1,c=!1,d=()=>{n.push(r.elt("TableCell",i+a,i+l,r.parser.parseInline(e.slice(a,l),i+a)))};for(let h=t;h<e.length;h++){let u=e.charCodeAt(h);u==124&&!c?((!o||a>-1)&&s++,o=!1,n&&(a>-1&&d(),n.push(r.elt("TableDelimiter",h+i,h+i+1))),a=l=-1):(c||u!=32&&u!=9)&&(a<0&&(a=h),l=h+1),c=!c&&u==92}return a>-1&&(s++,n&&d()),s}function xw(r,e){for(let t=e;t<r.length;t++){let n=r.charCodeAt(t);if(n==124)return!0;n==92&&t++}return!1}var Nw=/^[>\s]*\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/,qd=class{constructor(){this.rows=null}nextLine(e,t,n){if(this.rows==null){this.rows=!1;let i;if((t.next==45||t.next==58||t.next==124)&&Nw.test(i=t.text.slice(t.pos))){let s=[];Za(e,n.content,0,s,n.start)==Za(e,i,0)&&(this.rows=[e.elt("TableHeader",n.start,n.start+n.content.length,s),e.elt("TableDelimiter",e.lineStart+t.pos,e.lineStart+t.text.length)])}}else if(this.rows){let i=[];Za(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}},k2={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":m.heading}},"TableRow",{name:"TableCell",style:m.content},{name:"TableDelimiter",style:m.processingInstruction}],parseBlock:[{name:"Table",leaf(r,e){return xw(e.content,0)?new qd:null},endLeaf(r,e,t){if(t.parsers.some(i=>i instanceof qd)||!xw(e.text,e.basePos))return!1;let n=r.peekLine();return Nw.test(n)&&Za(r,e.text,e.basePos)==Za(r,n,e.basePos)},before:"SetextHeading"}]},QO=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}},Q2={defineNodes:[{name:"Task",block:!0,style:m.list},{name:"TaskMarker",style:m.atom}],parseBlock:[
Line truncated
|
||||
\${}
|
||||
} catch (\${error}) {
|
||||
\${}
|
||||
@@ -57,36 +57,36 @@ Connect your audio output to the SuperCharger input, turn up the volume, and pla
|
||||
constructor(\${params}) {
|
||||
\${}
|
||||
}
|
||||
}`,{label:"class",detail:"definition",type:"keyword"}),Yt('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Yt('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],wL=LP.concat([Yt("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Yt("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Yt("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),RP=new qs,ZP=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function Va(r){return(e,t)=>{let n=e.node.getChild("VariableDefinition");return n&&t(n,r),!0}}var PL=["FunctionDeclaration"],kL={FunctionDeclaration:Va("function"),ClassDeclaration:Va("class"),ClassExpression:()=>!0,EnumDeclaration:Va("constant"),TypeAliasDeclaration:Va("type"),NamespaceDeclaration:Va("namespace"),VariableDefinition(r,e){r.matchContext(PL)||e(r,"variable")},TypeDefinition(r,e){e(r,"type")},__proto__:null};function XP(r,e){let t=RP.get(e);if(t)return t;let n=[],i=!0;function s(o,a){let l=r.sliceString(o.from,o.to);n.push({label:l,type:a})}return e.cursor(_e.IncludeAnonymous).iterate(o=>{if(i)i=!1;else if(o.name){let a=kL[o.name];if(a&&a(o,s)||ZP.has(o.name))return!1}else if(o.to-o.from>8192){for(let a of XP(r,o.node))n.push(a);return!1}}),RP.set(e,n),n}var EP=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,DP=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function QL(r){let e=Te(r.state).resolveInner(r.pos,-1);if(DP.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&EP.test(r.state.sliceDoc(e.from,e.to));if(!t&&!r.explicit)return null;let n=[];for(let i=e;i;i=i.parent)ZP.has(i.name)&&(n=n.concat(XP(r.state.doc,i)));return{options:n,from:t?e.from:r.pos,validFor:EP}}var Kr=wt.define({name:"javascript",parser:AP.configure({props:[Cr.add({IfStatement:Ur({except:/^\s*({|else\b)/}),TryStatement:Ur({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:$x,SwitchBody:r=>{let e=r.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return r.baseIndent+(t?0:n?1:2)*r.unit},Block:id({closing:"}"}),ArrowFunction:r=>r.baseIndent+r.unit,"TemplateString BlockComment":()=>null,"Statement Property":Ur({except:/^\s*{/}),JSXElement(r){let e=/^\s*<\//.test(r.textAfter);return r.lineIndent(r.node.from)+(e?0:r.unit)},JSXEscape(r){let e=/\s*\}/.test(r.textAfter);return r.lineIndent(r.node.from)+(e?0:r.unit)},"JSXOpenTag JSXSelfClosingTag"(r){return r.column(r.node.from)+r.unit}}),Rt.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":gt,BlockComment(r){return{from:r.from+2,to:r.to-2}},JSXElement(r){let e=r.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let t=r.lastChild;return{from:e.to,to:t.type.isError?r.to:t.from}},"JSXSelfClosingTag JSXOpenTag"(r){var e;let t=(e=r.firstChild)===null||e===void 0?void 0:e.nextSibling,n=r.lastChild;return!t||t.type.isError?null:{from:t.to,to:n.type.isError?r.to:n.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),IP={test:r=>/^JSX/.test(r.name),facet:Gs({commentTokens:{block:{open:"{/*",close:"*/}"}}})},YO=Kr.configure({dialect:"ts"},"typescript"),BO=Kr.configure({dialect:"jsx",props:[rd.add(r=>r.isTop?[IP]:void 0)]}),jO=Kr.configure({dialect:"jsx ts",props:[rd.add(r=>r.isTop?[IP]:void 0)]},"typescript"),zP=r=>({label:r,type:"keyword"}),WP="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(zP),$L=WP.concat(["declare","implements","private","protected","public"].map(zP));function VP(r={}){let e=r.jsx?r.typescript?jO:BO:r.typescript?YO:Kr,t=r.typescript?wL.concat($L):LP.concat(WP);return new Le(e,[Kr.data.of({autocomplete:Nx(DP,Fx(t))}),Kr.data.of({autocomplete:QL}),r.jsx?CL:[]])}function TL(r){for(;;){if(r.name=="JSXOpenTag"||r.name=="JSXSelfClosingTag"||r.name=="JSXFragmentTag")return r;if(r.name=="JSXEscape"||!r.parent)return null;r=r.parent}}function MP(r,e,t=r.length){for(let n=e==null?void 0:e.firstChild;n;n=n.nextSibling)if(n.name=="JSXIdentifier"||n.name=="JSXBuiltin"||n.name=="JSXNamespacedName"||n.name=="JSXMemberExpression")return r.sliceString(n.from,Math.min(n.to,t));return""}var _L=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),CL=V.inputHandler.of((r,e,t,n,i)=>{if((_L?r.composing:r.compositionStarted)||r.state.readOnly||e!=t||n!=">"&&n!="/"||!Kr.isActiveAt(r.state,e,-1))return!1;let s=i(),{state:o}=s,a=o.changeByRange(l=>{var c;let{head:d}=l,h=Te(o).resol
Line truncated
|
||||
`);for(let l of a){O1.lastIndex=0;let c=O1.exec(l);if(c){let d=o+c.index+c[0].length;t.push(F.widget({widget:new ag(c[0],e),side:-1}).range(d))}o+=l.length+1}}return F.set(t,!0)}function b1(r){let e;function t(n){let i=e.posAtDOM(n);r(e.state.doc.lineAt(i).number)}return We.fromClass(class{constructor(n){e=n,this.decorations=g1(n,t)}update(n){e=n.view,(n.docChanged||n.viewportChanged)&&(this.decorations=g1(n.view,t))}},{decorations:n=>n.decorations})}var lg=class extends ct{constructor(t,n,i){super();this.filename=t;this.system=n;this.handleClick=i}toDOM(){let t=document.createElement("span");return t.className="include-link-badge",t.textContent="\u2192",t.title=(this.system?"System header: ":"View ")+this.filename,t.addEventListener("click",n=>{n.preventDefault(),n.stopPropagation(),this.handleClick(this.filename,this.system)}),t}eq(t){return this.filename===t.filename&&this.system===t.system}ignoreEvent(){return!1}};function d5(r,e,t){let n=[],i=r.state.doc,s=new Set;for(let{from:o,to:a}of r.visibleRanges){let l=r.state.sliceDoc(o,a);for(let c of e){let d=c instanceof RegExp?{re:c}:c;d.re.lastIndex=0;let h;for(;h=d.re.exec(l);){let u=h[d.group!=null?d.group:h.length-1];if(!u)continue;let f=d.suffix?u+d.suffix:u,p=Math.min(o+h.index+h[0].length,i.length),O=i.lineAt(p),x=O.number+":"+f;s.has(x)||(s.add(x),n.push(F.widget({widget:new lg(f,!!d.system,t),side:1}).range(O.to)))}}}return F.set(n,!0)}function y1(r,e){function t(n){let i=r();return!i||!i.length?F.none:d5(n,i,e)}return We.fromClass(class{constructor(n){this.decorations=t(n)}update(n){(n.docChanged||n.viewportChanged)&&(this.decorations=t(n.view))}},{decorations:n=>n.decorations})}var pi=window.matchMedia&&window.matchMedia("only screen and (max-width: 760px)").matches;function Mr(r,e){var t=$(document.createElement("div"));return r&&t.appendTo(r),e&&t.addClass(e),t}function h5(r){return Pe.transactionFilter.of(e=>{if(!e.docChanged||!e.isUserEvent("input")||!r.input)return e;let t=[],n=!1;if(e.changes.iterChanges((o,a,l,c,d)=>{let h=d.toString(),u=r.input(h);t.push({from:o,to:a,insert:u}),u!==h&&(n=!0)}),!n)return e;let i=e.annotation(Ue.userEvent),s=e.annotation(Ue.addToHistory);return{changes:t,selection:e.selection,effects:e.effects,scrollIntoView:e.scrollIntoView,annotations:[...i!=null?[Ue.userEvent.of(i)]:[],...s!=null?[Ue.addToHistory.of(s)]:[]]}})}var cg=new xt;function x1(r){return cg.reconfigure(h5(r))}var S1=ce.define(),v1=ce.define(),w1=ce.define(),P1=ce.define(),k1=ce.define(),Q1=ce.define(),$1=ce.define(),hg=ce.define(),T1=ce.define(),_1=$e.define({create(){return Oe.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(S1)){let n=t.value,i=[];for(let[s,o]of n.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new nh(be(o,4)).range(a))}r=Oe.of(i,!0)}return r}}),C1=$e.define({create(){return Oe.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(v1)){let n=t.value,i=[];for(let[s,o]of n.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new ih(o).range(a))}r=Oe.of(i,!0)}return r}}),A1=$e.define({create(){return Oe.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(w1)){let n=t.value,i=[];for(let[s,o]of n.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new sh(o).range(a))}r=Oe.of(i,!0)}return r}}),R1=$e.define({create(){return Oe.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(k1)){let n=[],i=t.value.filter(s=>s.line>=1&&s.line<=e.state.doc.lines).sort((s,o)=>s.line-o.line);for(let s of i){let o=e.state.doc.line(s.line).from;n.push((s.enabled?f5:p5).range(o))}r=Oe.of(n,!0)}return r}}),dg=$e.define({create(){return Oe.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(Q1)){let n=t.value,i=[];for(let[s,o]of n.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new ah(s,o).range(a))}r=Oe.of(i,!0)}return r}}),E1=$e.define({create(){return Oe.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is($1))if(t.value===null)r=Oe.empty;else{let n=t.value;if(n>=1&&n<=e.state.doc.lines){let i=e.state.doc.line(n).from;r=Oe.of(M1.range(i))}}return r}}),nh=class extends ot{constructor(t){super();this.hex=t}toDOM(){let t=document.createElement("span");return t.textContent=this.hex,t.style.cursor="pointer",t.title="Click to run to here",t.addEventListener("mouseenter",()=>{t.style.textDecoration="underline"}),t.addEventListener("mouseleave",()=>{t.style.textDecoration="none"}),t}eq(t){return this.hex==t.hex}},ih=class extends ot{constructor(t){super();this.bytes=t}toDOM(){return document.createTextNode(this.bytes)}eq(t){return this.bytes==t.bytes}},sh=class extends ot{constructor(t){super();this.clock=t}toDOM(){return document.createTextNode(this.clock)}eq(t){return this.clock==t.clock}},u5=new class extends ot{toDOM(){let r=document.createElement("span");return r.textContent="\u25CF",r.style.color="transparent",r.style.cursor="pointer",r.addE
Line truncated
|
||||
}`,{label:"class",detail:"definition",type:"keyword"}),Yt('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Yt('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],wL=LP.concat([Yt("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Yt("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Yt("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),RP=new qs,ZP=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function Va(r){return(e,t)=>{let n=e.node.getChild("VariableDefinition");return n&&t(n,r),!0}}var PL=["FunctionDeclaration"],kL={FunctionDeclaration:Va("function"),ClassDeclaration:Va("class"),ClassExpression:()=>!0,EnumDeclaration:Va("constant"),TypeAliasDeclaration:Va("type"),NamespaceDeclaration:Va("namespace"),VariableDefinition(r,e){r.matchContext(PL)||e(r,"variable")},TypeDefinition(r,e){e(r,"type")},__proto__:null};function XP(r,e){let t=RP.get(e);if(t)return t;let n=[],i=!0;function s(o,a){let l=r.sliceString(o.from,o.to);n.push({label:l,type:a})}return e.cursor(_e.IncludeAnonymous).iterate(o=>{if(i)i=!1;else if(o.name){let a=kL[o.name];if(a&&a(o,s)||ZP.has(o.name))return!1}else if(o.to-o.from>8192){for(let a of XP(r,o.node))n.push(a);return!1}}),RP.set(e,n),n}var EP=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,DP=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function QL(r){let e=Te(r.state).resolveInner(r.pos,-1);if(DP.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&EP.test(r.state.sliceDoc(e.from,e.to));if(!t&&!r.explicit)return null;let n=[];for(let i=e;i;i=i.parent)ZP.has(i.name)&&(n=n.concat(XP(r.state.doc,i)));return{options:n,from:t?e.from:r.pos,validFor:EP}}var Kr=Pt.define({name:"javascript",parser:AP.configure({props:[Cr.add({IfStatement:Ur({except:/^\s*({|else\b)/}),TryStatement:Ur({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:$x,SwitchBody:r=>{let e=r.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return r.baseIndent+(t?0:n?1:2)*r.unit},Block:id({closing:"}"}),ArrowFunction:r=>r.baseIndent+r.unit,"TemplateString BlockComment":()=>null,"Statement Property":Ur({except:/^\s*{/}),JSXElement(r){let e=/^\s*<\//.test(r.textAfter);return r.lineIndent(r.node.from)+(e?0:r.unit)},JSXEscape(r){let e=/\s*\}/.test(r.textAfter);return r.lineIndent(r.node.from)+(e?0:r.unit)},"JSXOpenTag JSXSelfClosingTag"(r){return r.column(r.node.from)+r.unit}}),Rt.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":gt,BlockComment(r){return{from:r.from+2,to:r.to-2}},JSXElement(r){let e=r.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let t=r.lastChild;return{from:e.to,to:t.type.isError?r.to:t.from}},"JSXSelfClosingTag JSXOpenTag"(r){var e;let t=(e=r.firstChild)===null||e===void 0?void 0:e.nextSibling,n=r.lastChild;return!t||t.type.isError?null:{from:t.to,to:n.type.isError?r.to:n.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),IP={test:r=>/^JSX/.test(r.name),facet:Gs({commentTokens:{block:{open:"{/*",close:"*/}"}}})},BO=Kr.configure({dialect:"ts"},"typescript"),jO=Kr.configure({dialect:"jsx",props:[rd.add(r=>r.isTop?[IP]:void 0)]}),FO=Kr.configure({dialect:"jsx ts",props:[rd.add(r=>r.isTop?[IP]:void 0)]},"typescript"),zP=r=>({label:r,type:"keyword"}),WP="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(zP),$L=WP.concat(["declare","implements","private","protected","public"].map(zP));function VP(r={}){let e=r.jsx?r.typescript?FO:jO:r.typescript?BO:Kr,t=r.typescript?wL.concat($L):LP.concat(WP);return new Le(e,[Kr.data.of({autocomplete:Nx(DP,Fx(t))}),Kr.data.of({autocomplete:QL}),r.jsx?CL:[]])}function TL(r){for(;;){if(r.name=="JSXOpenTag"||r.name=="JSXSelfClosingTag"||r.name=="JSXFragmentTag")return r;if(r.name=="JSXEscape"||!r.parent)return null;r=r.parent}}function MP(r,e,t=r.length){for(let n=e==null?void 0:e.firstChild;n;n=n.nextSibling)if(n.name=="JSXIdentifier"||n.name=="JSXBuiltin"||n.name=="JSXNamespacedName"||n.name=="JSXMemberExpression")return r.sliceString(n.from,Math.min(n.to,t));return""}var _L=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),CL=V.inputHandler.of((r,e,t,n,i)=>{if((_L?r.composing:r.compositionStarted)||r.state.readOnly||e!=t||n!=">"&&n!="/"||!Kr.isActiveAt(r.state,e,-1))return!1;let s=i(),{state:o}=s,a=o.changeByRange(l=>{var c;let{head:d}=l,h=Te(o).resol
Line truncated
|
||||
`);for(let l of a){O1.lastIndex=0;let c=O1.exec(l);if(c){let d=o+c.index+c[0].length;t.push(F.widget({widget:new lg(c[0],e),side:-1}).range(d))}o+=l.length+1}}return F.set(t,!0)}function b1(r){let e;function t(n){let i=e.posAtDOM(n);r(e.state.doc.lineAt(i).number)}return We.fromClass(class{constructor(n){e=n,this.decorations=g1(n,t)}update(n){e=n.view,(n.docChanged||n.viewportChanged)&&(this.decorations=g1(n.view,t))}},{decorations:n=>n.decorations})}var cg=class extends ct{constructor(t,n,i){super();this.filename=t;this.system=n;this.handleClick=i}toDOM(){let t=document.createElement("span");return t.className="include-link-badge",t.textContent="\u2192",t.title=(this.system?"System header: ":"View ")+this.filename,t.addEventListener("click",n=>{n.preventDefault(),n.stopPropagation(),this.handleClick(this.filename,this.system)}),t}eq(t){return this.filename===t.filename&&this.system===t.system}ignoreEvent(){return!1}};function dZ(r,e,t){let n=[],i=r.state.doc,s=new Set;for(let{from:o,to:a}of r.visibleRanges){let l=r.state.sliceDoc(o,a);for(let c of e){let d=c instanceof RegExp?{re:c}:c;d.re.lastIndex=0;let h;for(;h=d.re.exec(l);){let u=h[d.group!=null?d.group:h.length-1];if(!u)continue;let f=d.suffix?u+d.suffix:u,p=Math.min(o+h.index+h[0].length,i.length),O=i.lineAt(p),x=O.number+":"+f;s.has(x)||(s.add(x),n.push(F.widget({widget:new cg(f,!!d.system,t),side:1}).range(O.to)))}}}return F.set(n,!0)}function y1(r,e){function t(n){let i=r();return!i||!i.length?F.none:dZ(n,i,e)}return We.fromClass(class{constructor(n){this.decorations=t(n)}update(n){(n.docChanged||n.viewportChanged)&&(this.decorations=t(n.view))}},{decorations:n=>n.decorations})}var pi=window.matchMedia&&window.matchMedia("only screen and (max-width: 760px)").matches;function Mr(r,e){var t=$(document.createElement("div"));return r&&t.appendTo(r),e&&t.addClass(e),t}function hZ(r){return Pe.transactionFilter.of(e=>{if(!e.docChanged||!e.isUserEvent("input")||!r.input)return e;let t=[],n=!1;if(e.changes.iterChanges((o,a,l,c,d)=>{let h=d.toString(),u=r.input(h);t.push({from:o,to:a,insert:u}),u!==h&&(n=!0)}),!n)return e;let i=e.annotation(Ue.userEvent),s=e.annotation(Ue.addToHistory);return{changes:t,selection:e.selection,effects:e.effects,scrollIntoView:e.scrollIntoView,annotations:[...i!=null?[Ue.userEvent.of(i)]:[],...s!=null?[Ue.addToHistory.of(s)]:[]]}})}var dg=new St;function x1(r){return dg.reconfigure(hZ(r))}var S1=ce.define(),v1=ce.define(),w1=ce.define(),P1=ce.define(),k1=ce.define(),Q1=ce.define(),$1=ce.define(),ug=ce.define(),T1=ce.define(),_1=$e.define({create(){return Oe.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(S1)){let n=t.value,i=[];for(let[s,o]of n.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new nh(be(o,4)).range(a))}r=Oe.of(i,!0)}return r}}),C1=$e.define({create(){return Oe.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(v1)){let n=t.value,i=[];for(let[s,o]of n.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new ih(o).range(a))}r=Oe.of(i,!0)}return r}}),A1=$e.define({create(){return Oe.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(w1)){let n=t.value,i=[];for(let[s,o]of n.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new sh(o).range(a))}r=Oe.of(i,!0)}return r}}),R1=$e.define({create(){return Oe.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(k1)){let n=[],i=t.value.filter(s=>s.line>=1&&s.line<=e.state.doc.lines).sort((s,o)=>s.line-o.line);for(let s of i){let o=e.state.doc.line(s.line).from;n.push((s.enabled?fZ:pZ).range(o))}r=Oe.of(n,!0)}return r}}),hg=$e.define({create(){return Oe.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(Q1)){let n=t.value,i=[];for(let[s,o]of n.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;i.push(new ah(s,o).range(a))}r=Oe.of(i,!0)}return r}}),E1=$e.define({create(){return Oe.empty},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is($1))if(t.value===null)r=Oe.empty;else{let n=t.value;if(n>=1&&n<=e.state.doc.lines){let i=e.state.doc.line(n).from;r=Oe.of(M1.range(i))}}return r}}),nh=class extends ot{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}},ih=class extends ot{constructor(t){super();this.bytes=t}toDOM(){return document.createTextNode(this.bytes)}eq(t){return this.bytes==t.bytes}},sh=class extends ot{constructor(t){super();this.clock=t}toDOM(){return document.createTextNode(this.clock)}eq(t){return this.clock==t.clock}},uZ=new class extends ot{toDOM(){let r=document.createElement("span");return r.className="gutter-breakpoint-placeholder",r.textContent="\u25CF",r}},oh=class extends ot{constructor(t){super();this.enabled=t}toDOM(){let t=document.createElement("span");return t.className="gutter-breakpoint "+(
Line truncated
|
||||
color: #ff6666;
|
||||
background-color: #330000;
|
||||
padding: 4px 8px;
|
||||
margin: 2px 0;
|
||||
border-left: 3px solid #ff0000;
|
||||
font-family: monospace;
|
||||
`,t}},v5=$e.define({create(){return F.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(is.showMessage)){if(t.value===null||!t.value)return F.none;if(t.value.toggle){let n=[],i=new Map;return r.between(0,e.state.doc.length,(a,l,c)=>{try{let d=e.state.doc.lineAt(l).number;c.spec.widget instanceof Fa&&i.set(d,c.spec.widget.message)}catch(d){}}),i.has(t.value.line)?i.delete(t.value.line):i.set(t.value.line,t.value.msg),Array.from(i.keys()).sort((a,l)=>a-l).forEach(a=>{try{let l=e.state.doc.line(a);n.push(F.widget({widget:new Fa(i.get(a)),block:!0,side:1}).range(l.to))}catch(l){}}),F.set(n,!0)}}return r},provide:r=>V.decorations.from(r)}),ug=class extends ct{constructor(t){super();this.value=t}toDOM(){let t=document.createElement("div");return t.textContent=`${this.value}`,t.style.cssText=`
|
||||
`,t}},vZ=$e.define({create(){return F.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(is.showMessage)){if(t.value===null||!t.value)return F.none;if(t.value.toggle){let n=[],i=new Map;return r.between(0,e.state.doc.length,(a,l,c)=>{try{let d=e.state.doc.lineAt(l).number;c.spec.widget instanceof Fa&&i.set(d,c.spec.widget.message)}catch(d){}}),i.has(t.value.line)?i.delete(t.value.line):i.set(t.value.line,t.value.msg),Array.from(i.keys()).sort((a,l)=>a-l).forEach(a=>{try{let l=e.state.doc.line(a);n.push(F.widget({widget:new Fa(i.get(a)),block:!0,side:1}).range(l.to))}catch(l){}}),F.set(n,!0)}}return r},provide:r=>V.decorations.from(r)}),fg=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}},D1=ce.define(),w5=$e.define({create(){return F.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(D1)){if(t.value===null||!t.value)return F.none;let n=e.state.doc.lineAt(t.value.range.to);return F.set([F.widget({widget:new ug(t.value.val),block:!0,side:1}).range(n.to)])}return r},provide:r=>V.decorations.from(r)}),I1=ce.define(),P5=F.mark({attributes:{class:"cm-error-span"}}),k5=$e.define({create(){return F.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(I1)){if(t.value===null)return F.none;let n=[];for(let i of t.value)try{let s=e.state.doc.line(i.line),o=s.from+i.start,a=s.from+i.end;o>=s.from&&a<=s.to&&o<a&&n.push(P5.range(o,a))}catch(s){}return F.set(n,!0)}return r},provide:r=>V.decorations.from(r)}),z1=ce.define(),Q5=F.line({attributes:{class:"highlight-lines"}}),$5=$e.define({create(){return F.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(z1)){if(t.value===null)return F.none;let{start:n,end:i}=t.value,s=[];for(let o=n;o<=i;o++)try{let a=e.state.doc.line(o);s.push(Q5.range(a.from))}catch(a){}return F.set(s)}return r!==F.none&&(e.docChanged||e.selection)?F.none:r},provide:r=>V.decorations.from(r)}),W1={field:v5,widget:Fa},Na={effect:Z1,decoration:X1,field:S5},hh={effect:D1,field:w5},uh={effect:I1,field:k5},fh={effect:z1,field:$5},V1=ce.define(),T5=F.line({attributes:{class:"cm-traced-line"}}),_5=$e.define({create(){return F.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(V1)){let n=[];for(let i of t.value)try{let s=e.state.doc.line(i);n.push(T5.range(s.from))}catch(s){}return F.set(n,!0)}return r},provide:r=>V.decorations.from(r)}),ph={effect:V1,field:_5};var C5=[...$u(YS,Qu),{key:"Mod-Shift-Backspace",run:lm}],j1=$u(Bv,Qu),Oo=64,F1=ce.define(),N1=ce.define(),fg=$e.define({create(){return new Map},update(r,e){let t=r;for(let n of e.effects)if(n.is(N1))t=new Map;else if(n.is(F1)){t===r&&(t=new Map(r));for(let i of n.value)t.set(i.id,{from:i.from,to:i.to})}if(!e.changes.empty){let n=new Map;for(let[i,s]of t)n.set(i,{from:e.changes.mapPos(s.from,-1),to:e.changes.mapPos(s.to,1)});return n}return t}}),A5=200,pg={default:{theme:th},6502:{isAsm:!0},z80:{isAsm:!0},jsasm:{isAsm:!0},gas:{isAsm:!0},vasm:{isAsm:!0},inform6:{theme:eh},dialog:{theme:eh,lineWrap:!0},markdown:{lineWrap:!0},fastbasic:{noGutters:!0},basic:{noGutters:!0},ecs:{theme:th}},U1={input:null};function q1(r){U1.input=r?e=>e.toUpperCase():null}function gg(r){if(!r)return"";let e=r.state.selection.main;return e.empty?"":r.state.sliceDoc(e.from,e.to)}var Ua=class Ua{constructor(e,t){this.updateTimer=null;this.dirtylisting=!0;this.refreshDelayMsec=300;this.probe=null;this.path=e,this.mode=t}createDiv(e){var t=document.createElement("div");t.setAttribute("class","editor"),e.appendChild(t);var n=K.getFile(this.path),i=n&&this.mode=="verilog"&&/__asm\b([\s\S]+?)\b__endasm\b/.test(n);return this.newEditor(t,n,i),this.editor.dispatch({effects:x1(U1)}),this.syncBreakpoints(),K.getToolForFilename(this.path).startsWith("remote:")&&(this.refreshDelayMsec=1e3),t}setVisible(e){e?(this.editor.focus(),Ua.tracingEnabled&&this.startTracing()):this.stopTracing()}getShortcuts(){if(!this.editor)return[];var e=this.editor,t=(n,i,s)=>({key:n,label:i,fn:()=>{s(e),e.focus()}});return[t("mod+f","Find",zd),t("mod+g","Find Next",lo),t("mod+d","Next Occurrence",$m),t("mod+z","Undo",va),t("mod+shift+z","Redo",Js)]}startTracing(){!this.probe&&S.startProbing&&(this.probe=S.startProbing(),this.probe.singleFrame=!1,this.probe.clear())}stopTracing(){this.probe&&(S.stopProbing(),this.probe=null),this.editor.dispatch({effects:ph.effect.of([])})}setTracingEnabled(e){Ua.tracingEnabled=e,e?this.startTracing():this.stopTracing()}newEditor(e,t,n){var i=pg[this.mode]||pg.default,s=n||i.isAsm,o=!!i.lineWrap,a=i.theme||pg.default.theme,l=i.useLineNumbers&&!pi;re.embed&&(l=!1,s=!1);let c=i.noGutters||pi;var d;let h=tg[this.mode];h?d=h.language:(console.warn("Unknown mode: "+this.mode),d=null),this.editor=new V({parent:e,doc:t,extensions:[s?[]:_r.of(" "),s?Yp.of((u,f)=>{let p=u.state.doc.lineAt(f).number;if(p>=0){let O=u.state.doc.line(p);if(O.text.trim())return u.lineIndent(O.from)}return 0}):[],...s?[Jt.of(qS(()=>no().tabsToSpaces))]:[],...JS(no()),Jt.of(C5),l?Vc():[],fS(),Jt.of(OS),Rx(),Vy(),Pe.allowMultipleSelections.of(!0),Dc(),Tx(),Xx(),zc(),Wc(),Ic(),Hy(),Id(),Tm({top:!0}),Jt.of(j1),d||[],a,ng,o?V.lineWrapping:[],Na.field,c?[]:[lh.field,lh.gutter],s&&!c?[ja.field,ja.gutter,ch.field,ch.gutter]:[],dh.field,L1.gutter,V.updateListener.of(u=>{for(let f of u.transactions.flatMap(p=>p.effects))if(f.is(dh.requestToggle)&&Pt.toggleSourceLine(this.path,f.value),f.is(mo.runToLine)){let p=f.value;if(this.sourcefile&&this.sourcefile.line2offset){let O=this.sourcefile.line2offset.get(p);O>=0&&Ga([O])}}}),is.field,W1.field,uh.field,mo.field,mo.gutter,fh.field,ph.field,fg,b1(u=>{window.location.hash="asseteditor/"+encodeURIComponent(this.path)+"/"+u}),re.embed?[]:y1(()=>{var u=K&&K.getToolFo
Line truncated
|
||||
`).length-1;this.editor.dispatch({changes:{from:i,insert:e}}),this.highlightLines(n-1,n+s-2)}highlightLines(e,t){let n=this.editor.state.doc.line(e+1);this.editor.dispatch({effects:[fh.effect.of({start:e+1,end:t+1}),V.scrollIntoView(n.from,{y:"start",yMargin:100})]})}navigateToLine(e){if(e<1||e>this.editor.state.doc.lines)return;let t=this.editor.state.doc.line(e);this.editor.dispatch({selection:{anchor:t.from},effects:[fh.effect.of({start:e,end:e}),V.scrollIntoView(t.from,{y:"center"})]}),this.editor.focus()}getValue(){return this.editor.state.doc.toString()}getSelectionText(){return gg(this.editor)}getPath(){return this.path}markErrors(e){this.clearErrors(),e=e.slice(0,A5);let t=new Map,n=[];for(var i of e)if(!i.path||this.path.endsWith(i.path)){var s=this.editor.state.doc.lines,o=i.line;(isNaN(o)||o<1||o>s)&&(o=1),t.set(o,i.msg),i.start!=null&&i.end!=null&&i.end>i.start&&n.push({line:o,start:i.start,end:i.end})}this.editor.dispatch({effects:[is.set.of(t),uh.effect.of(n.length>0?n:null)]})}clearErrors(){this.dirtylisting=!0,this.editor.dispatch({effects:[is.set.of(new Map),is.showMessage.of(null),uh.effect.of(null)]})}getSourceFile(){return this.sourcefile}updateListing(){this.clearErrors();var e=this.sourcefile.lines||[];let t=new Map,n=new Map,i=new Map;for(var s of e)if(s.offset>=0&&t.set(s.line,be(s.offset&65535,4)),s.insns){var o=s.insns.length>9?"...":s.insns;if(n.set(s.line,o),s.iscode){if(s.cycles)i.set(s.line,s.cycles+"");else if(S.getOpcodeMetadata){var a=parseInt(s.insns.split(" ")[0],16),l=S.getOpcodeMetadata(a,s.offset);if(l&&l.minCycles){var c=l.minCycles+"";i.set(s.line,c)}}}}this.editor.dispatch({effects:[lh.set.of(t),ja.set.of(n),ch.set.of(i)]})}setTimingResult(e){if(this.sourcefile!=null){var t=new Map;for(let[o,a]of this.sourcefile.line2offset){let l=e.pc2clockrange[a];var n=l&&l.minclocks,i=l&&l.maxclocks;if(n>=0&&i>=0){var s;i==n?s=n+"":s=n+"-"+i,i==e.MAX_CLOCKS&&(s+="+"),t.set(o,s)}}this.editor.dispatch({effects:[ja.set.of(t)]})}}setCurrentLine(e,t){var n=i=>{this.editor.dispatch({effects:[mo.set.of(i.line),Na.effect.of(i.line),...t?[V.scrollIntoView(this.editor.state.doc.line(i.line).from,{y:"center"})]:[]]})};if(this.clearCurrentLine(t),e){if(e.line<1||e.line>this.editor.state.doc.lines)return;if(n(e),t){let s=this.editor.state.doc.line(e.line).from+(e.start||0);this.editor.dispatch({selection:{anchor:s,head:s},effects:V.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:[mo.set.of(null),Na.effect.of(null)]})}getActiveLine(){if(this.sourcefile){var e=kt&&kt.c;if(!e&&S.getCPUState&&!S.isRunning()&&(e=S.getCPUState()),e){var t=e&&(e.EPC||e.PC),n=this.sourcefile.findLineForOffset(t,Oo);return n}}}refreshDebugState(e){var t=this.getActiveLine();!e&&(t===this.currentDebugLine||!t&&!this.currentDebugLine)||this.setCurrentLine(t,e)}refreshListing(){var e=K.getListingForFile(this.path);e&&e.sourcefile&&e.sourcefile!==this.sourcefile&&(this.sourcefile=e.sourcefile,this.dirtylisting=!0),!(!this.sourcefile||!this.dirtylisting)&&(this.updateListing(),this.dirtylisting=!1)}refresh(e){this.refreshListing(),this.refreshDebugState(e)}tick(){this.refreshDebugState(!1),this.updateTracedLines()}updateTracedLines(){let e=this.probe;if(!e||!e.idx||!this.sourcefile)return;let t=new Set;for(let n=0;n<e.idx;n++){let i=e.buf[n];if((i&4278190080)===16777216){let s=this.sourcefile.findLineForOffset(i&65535,Oo);s&&t.add(s.line)}}e.clear(),this.editor.dispatch({effects:ph.effect.of(Array.from(t))})}getLine(e){return this.editor.state.doc.line(e).text}getCurrentLine(){let e=this.editor.state.selection.main.head;return this.editor.state.doc.lineAt(e).number}getCursorPC(){for(var e=this.getCurrentLine();this.sourcefile&&e>=0;){var t=this.sourcefile.line2offset.get(e);if(t>=0)return t;e--}return-1}undoStep(){va(this.editor)}redoStep(){Js(this.editor)}syncBreakpoints(){let e=Pt.getSourceBreakpointsForFile(this.path).map(t=>({line:t.line,enabled:t.enabled}));this.editor.dispatch({effects:dh.setAll.of(e)})}};Ua.tracingEnabled=!1;var Ft=Ua,mg=1024,En=class{getSelectionText(){return gg(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 V({parent:e,extensions:[zc(),Wc(),Pe.allowMultipleSelections.of(!0),Dc(),Ic(),Id(),u1,eh,Na.field,Pe.tabSize.of(8),Pe.readOnly.of(!0)]})}refresh(e,t){let n=kt||S.saveState(),i=t!==void 0?t:n.c?n.c.PC:0,s=0,o=0,a=S.debugSymbols&&S.debugSymbols.addr2symbol||{},l=(h,u)=>{let f="",p=0;for(;p<u;){let O=h+p|0,x=S.disassemble(O,S.readAddress.bind(S)),w="",E="";for(let T=0;T<x.nbytes;T++)w+=be(S.readAddress(O+T));for(;w.length<14;)w+=" ";let A=x.line;if(a&&x.isaddr&&(A=A.replace(/([^#])[$]([0-9A-F]+)/,(T,...k)=>{let R=parseInt(k[1],16),Z=a[R];return Z?k[0]+Z:(Z=a[
Line truncated
|
||||
`;f+=X,O==i&&(o=s),s++,p+=x.nbytes||1}return f};var c=i<0?i-mg:Math.max(0,i-mg);let d=l(c,i-c)+l(i,mg);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:V.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=be(e,4),n=this.disasmview.state.doc;for(let i=1;i<=n.lines;i++){let s=n.line(i);if(s.text.startsWith(t+" "))return this.disasmview.dispatch({selection:{anchor:s.from,head:s.from+t.length},effects:V.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}},mh=class extends En{constructor(e){super(),this.path=e}refreshListing(){var e=K.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}}),!!S.saveState){var n=kt||S.saveState(),i=n.c?n.c.EPC||n.c.PC:0;if(i>=0&&this.assemblyfile){var s=this.assemblyfile.findLineForOffset(i,Oo);if(s&&e){let o=this.disasmview.state.doc.line(s.line);this.disasmview.dispatch({selection:{anchor:o.from,head:o.from},effects:V.scrollIntoView(o.from,{y:"center"})})}}}}}goToAddress(e){this.refreshListing();let t=this.assemblyfile&&this.assemblyfile.findLineForOffset(e,Oo);if(t){let n=this.disasmview.state.doc.line(t.line);this.disasmview.dispatch({selection:{anchor:n.from,head:n.from},effects:V.scrollIntoView(n.from,{y:"center"})})}this.disasmview.focus()}};function G1(r){let e=[r];try{var t=Do(K.mainPath);t.length>0&&t!="local"&&e.push(t+"/"+r)}catch(s){}for(var n of e){var i=K&&K.getFile(n);if(typeof i=="string")return n}return null}function Y1(r){for(var e of Pb(r))if(e.editorStyle){var t=h1(e.editorStyle);if(t)return t}return null}var Og=new Map;function R5(r){let e=K.getToolForFilename(K.mainPath),t=Yl(e,K.platform_id),n=Vl(e,K.platform_id);if(!t||!n.length)return Promise.resolve(null);let i=t+":"+r;return Og.has(i)||Og.set(i,(async()=>{var s=[...n.map(d=>d+"/"+r),r];for(var o of s){var a={preload_fs:t,readshared:o,updates:[],buildsteps:[]},l=await K.queryWorker(a),c=l&&l.output;if(c instanceof Uint8Array&&c.length>0)return new TextDecoder().decode(c)}return null})()),Og.get(i)}var mi=class{constructor(e){this.fn=e;this.languageCompartment=new xt}getSelectionText(){return gg(this.view)}createDiv(e){var t=document.createElement("div");t.setAttribute("class","editor"),e.appendChild(t);var n=Y1(this.fn||this.currentPath||"")||rg();return this.view=new V({parent:t,extensions:[zc(),Wc(),Pe.allowMultipleSelections.of(!0),Dc(),Ic(),Id(),Tm({top:!0}),Jt.of(j1),this.languageCompartment.of(n),th,ng,Pe.readOnly.of(!0)]}),this.refresh(!1),t}setVisible(e){e&&this.refresh(!1)}setHeaderText(e){var t=Y1(this.currentPath||this.fn||"")||rg();this.view.dispatch({effects:this.languageCompartment.reconfigure(t),changes:{from:0,to:this.view.state.doc.length,insert:e}})}refresh(e){var t=this.fn;if(!t){var n=window.location.hash;if(!n||!n.startsWith("#headerview/"))return;t=this.fn=decodeURIComponent(n.substring(12))}this.loadIncludeFile(t)}async loadIncludeFile(e){this.requestedFn=e;var t=G1(e);if(t){this.currentPath=t,this.setHeaderText(K.getFile(t));return}var n=await R5(e);if(this.requestedFn===e){if(n!=null){this.currentPath=e,this.setHeaderText(n);return}this.currentPath=e,this.setHeaderText("// "+e+` was not found.
|
||||
`,t.className="cm-line",t}},D1=ce.define(),wZ=$e.define({create(){return F.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(D1)){if(t.value===null||!t.value)return F.none;let n=e.state.doc.lineAt(t.value.range.to);return F.set([F.widget({widget:new fg(t.value.val),block:!0,side:1}).range(n.to)])}return r},provide:r=>V.decorations.from(r)}),I1=ce.define(),PZ=F.mark({attributes:{class:"cm-error-span"}}),kZ=$e.define({create(){return F.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(I1)){if(t.value===null)return F.none;let n=[];for(let i of t.value)try{let s=e.state.doc.line(i.line),o=s.from+i.start,a=s.from+i.end;o>=s.from&&a<=s.to&&o<a&&n.push(PZ.range(o,a))}catch(s){}return F.set(n,!0)}return r},provide:r=>V.decorations.from(r)}),z1=ce.define(),QZ=F.line({attributes:{class:"highlight-lines"}}),$Z=$e.define({create(){return F.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(z1)){if(t.value===null)return F.none;let{start:n,end:i}=t.value,s=[];for(let o=n;o<=i;o++)try{let a=e.state.doc.line(o);s.push(QZ.range(a.from))}catch(a){}return F.set(s)}return r!==F.none&&(e.docChanged||e.selection)?F.none:r},provide:r=>V.decorations.from(r)}),W1={field:vZ,widget:Fa},Na={effect:Z1,decoration:X1,field:SZ},hh={effect:D1,field:wZ},uh={effect:I1,field:kZ},fh={effect:z1,field:$Z},V1=ce.define(),TZ=F.line({attributes:{class:"cm-traced-line"}}),_Z=$e.define({create(){return F.none},update(r,e){r=r.map(e.changes);for(let t of e.effects)if(t.is(V1)){let n=[];for(let i of t.value)try{let s=e.state.doc.line(i);n.push(TZ.range(s.from))}catch(s){}return F.set(n,!0)}return r},provide:r=>V.decorations.from(r)}),ph={effect:V1,field:_Z};var CZ=[...Tu(YS,$u),{key:"Mod-Shift-Backspace",run:cm}],j1=Tu(Bv,$u),Oo=64,F1=ce.define(),N1=ce.define(),pg=$e.define({create(){return new Map},update(r,e){let t=r;for(let n of e.effects)if(n.is(N1))t=new Map;else if(n.is(F1)){t===r&&(t=new Map(r));for(let i of n.value)t.set(i.id,{from:i.from,to:i.to})}if(!e.changes.empty){let n=new Map;for(let[i,s]of t)n.set(i,{from:e.changes.mapPos(s.from,-1),to:e.changes.mapPos(s.to,1)});return n}return t}}),AZ=200,mg={default:{theme:th},6502:{isAsm:!0},z80:{isAsm:!0},jsasm:{isAsm:!0},gas:{isAsm:!0},vasm:{isAsm:!0},inform6:{theme:eh},dialog:{theme:eh,lineWrap:!0},markdown:{lineWrap:!0},fastbasic:{noGutters:!0},basic:{noGutters:!0},ecs:{theme:th}},U1={input:null};function q1(r){U1.input=r?e=>e.toUpperCase():null}function bg(r){if(!r)return"";let e=r.state.selection.main;return e.empty?"":r.state.sliceDoc(e.from,e.to)}var Ua=class Ua{constructor(e,t){this.updateTimer=null;this.dirtylisting=!0;this.refreshDelayMsec=300;this.probe=null;this.path=e,this.mode=t}createDiv(e){var t=document.createElement("div");t.setAttribute("class","editor"),e.appendChild(t);var n=K.getFile(this.path),i=n&&this.mode=="verilog"&&/__asm\b([\s\S]+?)\b__endasm\b/.test(n);return this.newEditor(t,n,i),this.editor.dispatch({effects:x1(U1)}),this.syncBreakpoints(),K.getToolForFilename(this.path).startsWith("remote:")&&(this.refreshDelayMsec=1e3),t}setVisible(e){e?(this.editor.focus(),Ua.tracingEnabled&&this.startTracing()):this.stopTracing()}getShortcuts(){if(!this.editor)return[];var e=this.editor,t=(n,i,s)=>({key:n,label:i,fn:()=>{s(e),e.focus()}});return[t("mod+f","Find",zd),t("mod+g","Find Next",lo),t("mod+d","Next Occurrence",Tm),t("mod+z","Undo",va),t("mod+shift+z","Redo",Js)]}startTracing(){!this.probe&&S.startProbing&&(this.probe=S.startProbing(),this.probe.singleFrame=!1,this.probe.clear())}stopTracing(){this.probe&&(S.stopProbing(),this.probe=null),this.editor.dispatch({effects:ph.effect.of([])})}setTracingEnabled(e){Ua.tracingEnabled=e,e?this.startTracing():this.stopTracing()}newEditor(e,t,n){var i=mg[this.mode]||mg.default,s=n||i.isAsm,o=!!i.lineWrap,a=i.theme||mg.default.theme,l=i.useLineNumbers&&!pi;re.embed&&(l=!1,s=!1);let c=i.noGutters||pi;var d;let h=rg[this.mode];h?d=h.language:(console.warn("Unknown mode: "+this.mode),d=null),this.editor=new V({parent:e,doc:t,extensions:[s?[]:_r.of(" "),s?Bp.of((u,f)=>{let p=u.state.doc.lineAt(f).number;if(p>=0){let O=u.state.doc.line(p);if(O.text.trim())return u.lineIndent(O.from)}return 0}):[],...s?[Jt.of(qS(()=>no().tabsToSpaces))]:[],...JS(no()),Jt.of(CZ),l?Vc():[],fS(),Jt.of(OS),Rx(),Vy(),Pe.allowMultipleSelections.of(!0),Dc(),Tx(),Xx(),zc(),Wc(),Ic(),Hy(),Id(),_m({top:!0}),Jt.of(j1),d||[],a,ig,o?V.lineWrapping:[],Na.field,c?[]:[lh.field,lh.gutter],s&&!c?[ja.field,ja.gutter,ch.field,ch.gutter]:[],dh.field,L1.gutter,V.updateListener.of(u=>{for(let f of u.transactions.flatMap(p=>p.effects))if(f.is(dh.requestToggle)&&bt.toggleSourceLine(this.path,f.value),f.is(mo.runToLine)){let p=f.value;if(this.sourcefile&&this.sourcefile.line2offset){let O=this.sourcefile.line2offset.get(p);O>=0&&Ga([O])}}}),is.field,W1.field,uh.field,mo.field,mo.gutter,fh.field,ph.field,pg,b1(u=>{window.location.hash="asseteditor/"+encodeURIComponent(this.path)+"/"+u}),re.embed?[]:y1(()=>{var u=K&&K.getToolFo
Line truncated
|
||||
`).length-1;this.editor.dispatch({changes:{from:i,insert:e}}),this.highlightLines(n-1,n+s-2)}highlightLines(e,t){let n=this.editor.state.doc.line(e+1);this.editor.dispatch({effects:[fh.effect.of({start:e+1,end:t+1}),V.scrollIntoView(n.from,{y:"start",yMargin:100})]})}navigateToLine(e){if(e<1||e>this.editor.state.doc.lines)return;let t=this.editor.state.doc.line(e);this.editor.dispatch({selection:{anchor:t.from},effects:[fh.effect.of({start:e,end:e}),V.scrollIntoView(t.from,{y:"center"})]}),this.editor.focus()}getValue(){return this.editor.state.doc.toString()}getSelectionText(){return bg(this.editor)}getPath(){return this.path}markErrors(e){this.clearErrors(),e=e.slice(0,AZ);let t=new Map,n=[];for(var i of e)if(!i.path||this.path.endsWith(i.path)){var s=this.editor.state.doc.lines,o=i.line;(isNaN(o)||o<1||o>s)&&(o=1),t.set(o,i.msg),i.start!=null&&i.end!=null&&i.end>i.start&&n.push({line:o,start:i.start,end:i.end})}this.editor.dispatch({effects:[is.set.of(t),uh.effect.of(n.length>0?n:null)]})}clearErrors(){this.dirtylisting=!0,this.editor.dispatch({effects:[is.set.of(new Map),is.showMessage.of(null),uh.effect.of(null)]})}getSourceFile(){return this.sourcefile}updateListing(){this.clearErrors();var e=this.sourcefile.lines||[];let t=new Map,n=new Map,i=new Map;for(var s of e)if(s.offset>=0&&t.set(s.line,be(s.offset&65535,4)),s.insns){var o=s.insns.length>9?"...":s.insns;if(n.set(s.line,o),s.iscode){if(s.cycles)i.set(s.line,s.cycles+"");else if(S.getOpcodeMetadata){var a=parseInt(s.insns.split(" ")[0],16),l=S.getOpcodeMetadata(a,s.offset);if(l&&l.minCycles){var c=l.minCycles+"";i.set(s.line,c)}}}}this.editor.dispatch({effects:[lh.set.of(t),ja.set.of(n),ch.set.of(i)]})}setTimingResult(e){if(this.sourcefile!=null){var t=new Map;for(let[o,a]of this.sourcefile.line2offset){let l=e.pc2clockrange[a];var n=l&&l.minclocks,i=l&&l.maxclocks;if(n>=0&&i>=0){var s;i==n?s=n+"":s=n+"-"+i,i==e.MAX_CLOCKS&&(s+="+"),t.set(o,s)}}this.editor.dispatch({effects:[ja.set.of(t)]})}}setCurrentLine(e,t){var n=i=>{this.editor.dispatch({effects:[mo.set.of(i.line),Na.effect.of(i.line),...t?[V.scrollIntoView(this.editor.state.doc.line(i.line).from,{y:"center"})]:[]]})};if(this.clearCurrentLine(t),e){if(e.line<1||e.line>this.editor.state.doc.lines)return;if(n(e),t){let s=this.editor.state.doc.line(e.line).from+(e.start||0);this.editor.dispatch({selection:{anchor:s,head:s},effects:V.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:[mo.set.of(null),Na.effect.of(null)]})}getActiveLine(){if(this.sourcefile){var e=kt&&kt.c;if(!e&&S.getCPUState&&!S.isRunning()&&(e=S.getCPUState()),e){var t=e&&(e.EPC||e.PC),n=this.sourcefile.findLineForOffset(t,Oo);return n}}}refreshDebugState(e){var t=this.getActiveLine();!e&&(t===this.currentDebugLine||!t&&!this.currentDebugLine)||this.setCurrentLine(t,e)}refreshListing(){var e=K.getListingForFile(this.path);e&&e.sourcefile&&e.sourcefile!==this.sourcefile&&(this.sourcefile=e.sourcefile,this.dirtylisting=!0),!(!this.sourcefile||!this.dirtylisting)&&(this.updateListing(),this.dirtylisting=!1)}refresh(e){this.refreshListing(),this.refreshDebugState(e)}tick(){this.refreshDebugState(!1),this.updateTracedLines()}updateTracedLines(){let e=this.probe;if(!e||!e.idx||!this.sourcefile)return;let t=new Set;for(let n=0;n<e.idx;n++){let i=e.buf[n];if((i&4278190080)===16777216){let s=this.sourcefile.findLineForOffset(i&65535,Oo);s&&t.add(s.line)}}e.clear(),this.editor.dispatch({effects:ph.effect.of(Array.from(t))})}getLine(e){return this.editor.state.doc.line(e).text}getCurrentLine(){let e=this.editor.state.selection.main.head;return this.editor.state.doc.lineAt(e).number}getCursorPC(){for(var e=this.getCurrentLine();this.sourcefile&&e>=0;){var t=this.sourcefile.line2offset.get(e);if(t>=0)return t;e--}return-1}undoStep(){va(this.editor)}redoStep(){Js(this.editor)}syncBreakpoints(){let e=bt.getSourceBreakpointsForFile(this.path).map(t=>({line:t.line,enabled:t.enabled}));this.editor.dispatch({effects:dh.setAll.of(e)})}};Ua.tracingEnabled=!1;var Ft=Ua,Og=1024,En=class{getSelectionText(){return bg(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 V({parent:e,extensions:[zc(),Wc(),Pe.allowMultipleSelections.of(!0),Dc(),Ic(),Id(),u1,eh,Na.field,Pe.tabSize.of(8),Pe.readOnly.of(!0)]})}refresh(e,t){let n=kt||S.saveState(),i=t!==void 0?t:n.c?n.c.PC:0,s=0,o=0,a=S.debugSymbols&&S.debugSymbols.addr2symbol||{},l=(h,u)=>{let f="",p=0;for(;p<u;){let O=h+p|0,x=S.disassemble(O,S.readAddress.bind(S)),w="",E="";for(let T=0;T<x.nbytes;T++)w+=be(S.readAddress(O+T));for(;w.length<14;)w+=" ";let A=x.line;if(a&&x.isaddr&&(A=A.replace(/([^#])[$]([0-9A-F]+)/,(T,...k)=>{let R=parseInt(k[1],16),Z=a[R];return Z?k[0]+Z:(Z=a[
Line truncated
|
||||
`;f+=X,O==i&&(o=s),s++,p+=x.nbytes||1}return f};var c=i<0?i-Og:Math.max(0,i-Og);let d=l(c,i-c)+l(i,Og);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:V.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=be(e,4),n=this.disasmview.state.doc;for(let i=1;i<=n.lines;i++){let s=n.line(i);if(s.text.startsWith(t+" "))return this.disasmview.dispatch({selection:{anchor:s.from,head:s.from+t.length},effects:V.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}},mh=class extends En{constructor(e){super(),this.path=e}refreshListing(){var e=K.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}}),!!S.saveState){var n=kt||S.saveState(),i=n.c?n.c.EPC||n.c.PC:0;if(i>=0&&this.assemblyfile){var s=this.assemblyfile.findLineForOffset(i,Oo);if(s&&e){let o=this.disasmview.state.doc.line(s.line);this.disasmview.dispatch({selection:{anchor:o.from,head:o.from},effects:V.scrollIntoView(o.from,{y:"center"})})}}}}}goToAddress(e){this.refreshListing();let t=this.assemblyfile&&this.assemblyfile.findLineForOffset(e,Oo);if(t){let n=this.disasmview.state.doc.line(t.line);this.disasmview.dispatch({selection:{anchor:n.from,head:n.from},effects:V.scrollIntoView(n.from,{y:"center"})})}this.disasmview.focus()}};function G1(r){let e=[r];try{var t=Do(K.mainPath);t.length>0&&t!="local"&&e.push(t+"/"+r)}catch(s){}for(var n of e){var i=K&&K.getFile(n);if(typeof i=="string")return n}return null}function Y1(r){for(var e of Pb(r))if(e.editorStyle){var t=h1(e.editorStyle);if(t)return t}return null}var gg=new Map;function RZ(r){let e=K.getToolForFilename(K.mainPath),t=Yl(e,K.platform_id),n=Vl(e,K.platform_id);if(!t||!n.length)return Promise.resolve(null);let i=t+":"+r;return gg.has(i)||gg.set(i,(async()=>{var s=[...n.map(d=>d+"/"+r),r];for(var o of s){var a={preload_fs:t,readshared:o,updates:[],buildsteps:[]},l=await K.queryWorker(a),c=l&&l.output;if(c instanceof Uint8Array&&c.length>0)return new TextDecoder().decode(c)}return null})()),gg.get(i)}var mi=class{constructor(e){this.fn=e;this.languageCompartment=new St}getSelectionText(){return bg(this.view)}createDiv(e){var t=document.createElement("div");t.setAttribute("class","editor"),e.appendChild(t);var n=Y1(this.fn||this.currentPath||"")||ng();return this.view=new V({parent:t,extensions:[zc(),Wc(),Pe.allowMultipleSelections.of(!0),Dc(),Ic(),Id(),_m({top:!0}),Jt.of(j1),this.languageCompartment.of(n),th,ig,Pe.readOnly.of(!0)]}),this.refresh(!1),t}setVisible(e){e&&this.refresh(!1)}setHeaderText(e){var t=Y1(this.currentPath||this.fn||"")||ng();this.view.dispatch({effects:this.languageCompartment.reconfigure(t),changes:{from:0,to:this.view.state.doc.length,insert:e}})}refresh(e){var t=this.fn;if(!t){var n=window.location.hash;if(!n||!n.startsWith("#headerview/"))return;t=this.fn=decodeURIComponent(n.substring(12))}this.loadIncludeFile(t)}async loadIncludeFile(e){this.requestedFn=e;var t=G1(e);if(t){this.currentPath=t,this.setHeaderText(K.getFile(t));return}var n=await RZ(e);if(this.requestedFn===e){if(n!=null){this.currentPath=e,this.setHeaderText(n);return}this.currentPath=e,this.setHeaderText("// "+e+` was not found.
|
||||
// Project include files are loaded during a build -- try building first.
|
||||
// Toolchain headers are only available when the tool has a bundled filesystem.`)}}navigateToLine(e){if(!(!this.view||e<1)&&e<=this.view.state.doc.lines){let t=this.view.state.doc.line(e);this.view.dispatch({selection:{anchor:t.from},effects:[V.scrollIntoView(t.from,{y:"center"})]}),this.view.focus()}}};var ss=class{constructor(e){var t=document.createElement("div");t.setAttribute("class","memdump"),e.appendChild(t),this.maindiv=t}create(e,t,n){this.getLineAt=n,this.memorylist=new Il({w:$(e).width(),h:$(e).height(),itemHeight:bg(),totalRows:t,generatorFn:i=>{var s=n(i),o=document.createElement("div");return o.appendChild(document.createTextNode(s.text)),s.clas!=null&&(o.className=s.clas),o}}),$(this.maindiv).append(this.memorylist.container)}refresh(){this.memorylist&&$(this.maindiv).find("[data-index]").each((e,t)=>{var n=t,i=parseInt(n.getAttribute("data-index")),s=n.innerText,o=this.getLineAt(i),a=o.text;if(s!=a&&(n.innerText=a,o.clas!=null&&!n.classList.contains(o.clas))){var l=Array.from(n.classList);l.forEach(c=>n.classList.remove(c)),n.classList.add("vrow"),n.classList.add(o.clas)}})}};function bg(){return $("#dropdownMenuButton").first().height()}function H1(r){return r.endsWith("_SIZE__")||r.endsWith("_LAST__")||r.endsWith("STACKSIZE__")||r.endsWith("FILEOFFS__")||r.startsWith("l__")||r.startsWith("s__")||r.startsWith(".__.")}var Oi=class{constructor(){this.recreateOnResize=!0;this.hibits=0;this.totalRows=5120;this.gotoRow=-1}createDiv(e){var t=document.createElement("div");return t.setAttribute("class","memdump"),e.appendChild(t),this.showMemoryWindow(e,t),this.maindiv=t}showMemoryWindow(e,t){this.memorylist=new Il({w:$(e).width(),h:$(e).height(),itemHeight:bg(),totalRows:this.totalRows,generatorFn:i=>{var s=this.getMemoryLineAt(i),o=document.createElement("div");if(this.dumplines){var a=this.dumplines[i];a&&o.classList.add("seg_"+this.getMemorySegment(this.dumplines[i].a|this.hibits))}return i==this.gotoRow&&o.classList.add("goto_line"),o.appendChild(document.createTextNode(s)),o}}),$(t).append(this.memorylist.container),this.tick();let n=$a();n&&this.dumplines&&this.scrollToAddress(n.data_start)}scrollToAddress(e){this.dumplines&&(this.hibits=e&4294901760,this.memorylist.scrollToItem(this.findMemoryWindowLine(e&65535)))}goToAddress(e){this.hibits=e&4294901760;var t=this.getDumpLines(),n;if(t&&t.length?n=this.findMemoryWindowLine(e&65535):n=(e&65535)>>4,n!==void 0){if(this.gotoRow=n,this.memorylist){var i=this.memorylist.container,s=n*this.memorylist.itemHeight-(i.clientHeight-this.memorylist.itemHeight)/2;i.scrollTop=Math.max(0,s)}this.tick()}}refresh(){this.dumplines=null,this.tick()}tick(){this.memorylist&&$(this.maindiv).find("[data-index]").each((e,t)=>{var n=$(t),i=parseInt(n.attr("data-index")),s=n.text(),o=this.getMemoryLineAt(i);s!=o&&n.text(o),n.toggleClass("goto_line",i==this.gotoRow)})}getMemoryLineAt(e){var t=e*16,n=0,i=16,s;if(this.getDumpLines()){var o=this.dumplines[e];if(o)t=o.a&65520,n=o.a-t,i=n+o.l,s=o.s;else return"."}for(var a=be(t+n,4)+" ",l=0;l<n;l++)a+=" ";n>8&&(a+=" ");for(var l=n;l<i;l++){var c=this.readAddress(t+l|this.hibits);l==8&&(a+=" "),a+=" "+(typeof c=="number"?be(c,2):"??")}for(var l=i;l<16;l++)a+=" ";return s&&(a+=" "+s),a}readAddress(e){return S.readAddress(e)}getDumpLineAt(e){var t=this.dumplines[e];if(t)return t.a+" "+t.s}getDumpLines(){var e=S.debugSymbols&&S.debugSymbols.addr2symbol||{};if(this.dumplines==null){this.dumplines=[];var t=0,n;for(let a of Object.keys(e)){var i=parseInt(a),s=e[i|this.hibits];if(n)for(H1(n)&&(n="");t<i&&this.dumplines.length<65536;){var o=t+16&1048560;o>i&&(o=i),this.dumplines.push({a:t,l:o-t,s:n}),t=o}n=s}}return this.dumplines}getMemorySegment(e){let t=$a();if(t){if(e>=t.data_start&&e<t.data_start+t.data_size)return S.getSP&&e>=S.getSP()-15?"stack":"data";if(e>=t.code_start&&e<t.code_start+(t.code_size||t.rom_size))return"code"}var n=K.segments;if(n){for(var i of n)if(e>=i.start&&e<i.start+i.size){if(i.type=="rom")return"code";if(i.type=="ram")return"data";if(i.type=="io")return"io"}}return"unknown"}findMemoryWindowLine(e){for(var t=0;t<this.dumplines.length;t++)if(this.dumplines[t].a>=e)return t}},Oh=class extends Oi{constructor(){super(...arguments);this.totalRows=2048}readAddress(t){return S.readVRAMAddress(t)}getMemorySegment(t){return"video"}getDumpLines(){return null}},Ha=class{constructor(e,t){this.recreateOnResize=!0;this.path=e,this.data=t}populateVlist(){$(this.vlist.maindiv).empty(),this.vlist.create(this.parent,this.data.length+15>>4,this.getMemoryLineAt.bind(this))}createDiv(e){return this.parent=e,this.vlist=new ss(this.parent),this.populateVlist(),this.vlist.maindiv}setData(e){this.data=e,this.populateVlist()}getMemoryLineAt(e){for(var t=e*16,n=0,i=16,s=be(t+n,4)+" ",o=0;o<n;o++)s+=" ";n>8&&(s+=" ");for(var o=n;o<i;o++){var a=this.data[t+o];o==8&&(s+=" "),s+=" "+(a>=0?be(a,2):" ")}return{text:s}}refresh(){this.vlist.refresh()}getPath(){return this.path}},gh=class{createDiv(e){return this.maindiv=Mr(e,"v
Line truncated
|
||||
// Toolchain headers are only available when the tool has a bundled filesystem.`)}}navigateToLine(e){if(!(!this.view||e<1)&&e<=this.view.state.doc.lines){let t=this.view.state.doc.line(e);this.view.dispatch({selection:{anchor:t.from},effects:[V.scrollIntoView(t.from,{y:"center"})]}),this.view.focus()}}};var ss=class{constructor(e){var t=document.createElement("div");t.setAttribute("class","memdump"),e.appendChild(t),this.maindiv=t}create(e,t,n){this.getLineAt=n,this.memorylist=new Il({w:$(e).width(),h:$(e).height(),itemHeight:yg(),totalRows:t,generatorFn:i=>{var s=n(i),o=document.createElement("div");return o.appendChild(document.createTextNode(s.text)),s.clas!=null&&(o.className=s.clas),o}}),$(this.maindiv).append(this.memorylist.container)}refresh(){this.memorylist&&$(this.maindiv).find("[data-index]").each((e,t)=>{var n=t,i=parseInt(n.getAttribute("data-index")),s=n.innerText,o=this.getLineAt(i),a=o.text;if(s!=a&&(n.innerText=a,o.clas!=null&&!n.classList.contains(o.clas))){var l=Array.from(n.classList);l.forEach(c=>n.classList.remove(c)),n.classList.add("vrow"),n.classList.add(o.clas)}})}};function yg(){return $("#dropdownMenuButton").first().height()}function H1(r){return r.endsWith("_SIZE__")||r.endsWith("_LAST__")||r.endsWith("STACKSIZE__")||r.endsWith("FILEOFFS__")||r.startsWith("l__")||r.startsWith("s__")||r.startsWith(".__.")}var Oi=class{constructor(){this.recreateOnResize=!0;this.hibits=0;this.totalRows=5120;this.gotoRow=-1}createDiv(e){var t=document.createElement("div");return t.setAttribute("class","memdump"),e.appendChild(t),this.showMemoryWindow(e,t),this.maindiv=t}showMemoryWindow(e,t){this.memorylist=new Il({w:$(e).width(),h:$(e).height(),itemHeight:yg(),totalRows:this.totalRows,generatorFn:i=>{var s=this.getMemoryLineAt(i),o=document.createElement("div");if(this.dumplines){var a=this.dumplines[i];a&&o.classList.add("seg_"+this.getMemorySegment(this.dumplines[i].a|this.hibits))}return i==this.gotoRow&&o.classList.add("goto_line"),o.appendChild(document.createTextNode(s)),o}}),$(t).append(this.memorylist.container),this.tick();let n=$a();n&&this.dumplines&&this.scrollToAddress(n.data_start)}scrollToAddress(e){this.dumplines&&(this.hibits=e&4294901760,this.memorylist.scrollToItem(this.findMemoryWindowLine(e&65535)))}goToAddress(e){this.hibits=e&4294901760;var t=this.getDumpLines(),n;if(t&&t.length?n=this.findMemoryWindowLine(e&65535):n=(e&65535)>>4,n!==void 0){if(this.gotoRow=n,this.memorylist){var i=this.memorylist.container,s=n*this.memorylist.itemHeight-(i.clientHeight-this.memorylist.itemHeight)/2;i.scrollTop=Math.max(0,s)}this.tick()}}refresh(){this.dumplines=null,this.tick()}tick(){this.memorylist&&$(this.maindiv).find("[data-index]").each((e,t)=>{var n=$(t),i=parseInt(n.attr("data-index")),s=n.text(),o=this.getMemoryLineAt(i);s!=o&&n.text(o),n.toggleClass("goto_line",i==this.gotoRow)})}getMemoryLineAt(e){var t=e*16,n=0,i=16,s;if(this.getDumpLines()){var o=this.dumplines[e];if(o)t=o.a&65520,n=o.a-t,i=n+o.l,s=o.s;else return"."}for(var a=be(t+n,4)+" ",l=0;l<n;l++)a+=" ";n>8&&(a+=" ");for(var l=n;l<i;l++){var c=this.readAddress(t+l|this.hibits);l==8&&(a+=" "),a+=" "+(typeof c=="number"?be(c,2):"??")}for(var l=i;l<16;l++)a+=" ";return s&&(a+=" "+s),a}readAddress(e){return S.readAddress(e)}getDumpLineAt(e){var t=this.dumplines[e];if(t)return t.a+" "+t.s}getDumpLines(){var e=S.debugSymbols&&S.debugSymbols.addr2symbol||{};if(this.dumplines==null){this.dumplines=[];var t=0,n;for(let a of Object.keys(e)){var i=parseInt(a),s=e[i|this.hibits];if(n)for(H1(n)&&(n="");t<i&&this.dumplines.length<65536;){var o=t+16&1048560;o>i&&(o=i),this.dumplines.push({a:t,l:o-t,s:n}),t=o}n=s}}return this.dumplines}getMemorySegment(e){let t=$a();if(t){if(e>=t.data_start&&e<t.data_start+t.data_size)return S.getSP&&e>=S.getSP()-15?"stack":"data";if(e>=t.code_start&&e<t.code_start+(t.code_size||t.rom_size))return"code"}var n=K.segments;if(n){for(var i of n)if(e>=i.start&&e<i.start+i.size){if(i.type=="rom")return"code";if(i.type=="ram")return"data";if(i.type=="io")return"io"}}return"unknown"}findMemoryWindowLine(e){for(var t=0;t<this.dumplines.length;t++)if(this.dumplines[t].a>=e)return t}},Oh=class extends Oi{constructor(){super(...arguments);this.totalRows=2048}readAddress(t){return S.readVRAMAddress(t)}getMemorySegment(t){return"video"}getDumpLines(){return null}},Ha=class{constructor(e,t){this.recreateOnResize=!0;this.path=e,this.data=t}populateVlist(){$(this.vlist.maindiv).empty(),this.vlist.create(this.parent,this.data.length+15>>4,this.getMemoryLineAt.bind(this))}createDiv(e){return this.parent=e,this.vlist=new ss(this.parent),this.populateVlist(),this.vlist.maindiv}setData(e){this.data=e,this.populateVlist()}getMemoryLineAt(e){for(var t=e*16,n=0,i=16,s=be(t+n,4)+" ",o=0;o<n;o++)s+=" ";n>8&&(s+=" ");for(var o=n;o<i;o++){var a=this.data[t+o];o==8&&(s+=" "),s+=" "+(a>=0?be(a,2):" ")}return{text:s}}refresh(){this.vlist.refresh()}getPath(){return this.path}},gh=class{createDiv(e){return this.maindiv=Mr(e,"v
Line truncated
|
||||
`+s),i+=`
|
||||
`+this.opToString(l,c,f))}),"X: "+t+" Y: "+n+" "+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)}},yh=class extends bh{createDiv(e){return this.createCanvas(e,256,256)}initCanvas(){super.initCanvas(),this.canvas.onclick=e=>{var t=Ll(this.canvas,e),n=Math.floor(t.x)+Math.floor(t.y)*256,i=-1,s=-1;this.redraw((o,a)=>{s<0&&i>=0&&a==n&&(s=i),o==16777216&&(i=a)}),s>=0&&Ga([s])}}clear(){for(var e=0;e<=65535;e++){var t=S.readAddress(e),n=t>>2|t&31;n|=n<<8|n<<16,this.datau32[e]=n|Jr}}drawEvent(e,t,n,i){var s=this.getOpRGB(e,t);if(s){var o=t&255,a=t>>8&255,l=this.datau32[t&65535];l=l|s|Jr,this.datau32[t&65535]=l}}getTooltipText(e,t){var n=(e&255)+(t<<8),i="",s=-1,o={},a=null,l=[];return this.redraw((c,d,h,u,f,p)=>{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==n&&!o[O]&&(i==""&&a&&(i+=`
|
||||
`+a),i+=`
|
||||
PC `+this.addr2str(s)+" "+this.opToString(c,null,p),o[O]=1)}),this.addr2str(n)+i}},xg=class extends bh{initCanvas(){super.initCanvas(),this.canvas.onclick=e=>{var t=Ll(this.canvas,e),n=Math.floor(t.x),i=Math.floor(t.y),s=this.getOpAtPos(t.x,t.y,16777216);s&&(mn("toline"),S.runEval(()=>{let o=S.getRasterScanline&&S.getRasterScanline()>=i;return o&&S.getRasterLineClock?o&&S.getRasterLineClock()>n:o}))}}drawEvent(e,t,n,i){var s=this.getOpRGB(e,t);if(s){var o=n+i*this.canvas.width,a=s|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()}},xh=class extends xg{constructor(){super(...arguments);this.interrupt=0;this.rgb=0;this.lastpc=0}drawEvent(t,n,i,s){var o=i+s*this.canvas.width;if(t==134217728&&(this.interrupt=1),this.interrupt==1&&t==167772160&&(this.interrupt=n),this.interrupt>1&&this.sp>this.interrupt&&(this.interrupt=0),t==318767104&&(this.rgb|=47),t==385875968&&(this.rgb|=16256),t==352321536&&(this.rgb|=2047872),t==335544320&&(this.rgb|=7936),t==520093696&&(this.rgb=32768),t==150994944||t==402653184)this.datau32[o]=4279176975;else{let a=this.rgb;if(t==16777216){let l=this.sp&15;l>=8&&(l=16-l),Math.abs(this.lastpc)-n>16&&(l+=1),Math.abs(this.lastpc)-n>256&&(l+=1),a=this.rgb=526344*l+2105376,this.lastpc=n}this.interrupt&&(a|=8388672),this.datau32[o]==Jr&&(this.datau32[o]=a|Jr)}}},Sh=class extends gi{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new ss(t),this.vlist.create(t,this.cyclesPerLine*this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){var n="",i="seg_data",s=this.dumplines&&this.dumplines[t];if(s!=null){var o=s.info.join(", ");n="("+on(s.row,4)+", "+on(s.col,4)+") "+Xo(s.asm||"",20)+o,o.indexOf("Write ")>=0&&(i="seg_io")}return{text:n,clas:i}}refresh(){this.tick()}tick(){let t=S instanceof ku||S instanceof Pu;this.dumplines={},this.redraw((n,i,s,o,a,l)=>{t&&(a>>=2);var c=this.dumplines[a];switch(c==null&&(c={op:n,addr:i,row:o,col:s,asm:null,info:[]},this.dumplines[a]=c),n){case 16777216:if(S.disassemble){var d=S.disassemble(i,S.readAddress.bind(S));c.asm=d&&d.line}break;default:var h=this.opToString(n,i,l);h!=""&&c.info.push(h);break}}),this.vlist.refresh()}},vh=class extends gi{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new ss(t),this.vlist.create(t,this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){for(var n=on(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)n+=",";else{var h=be(c);n+=h,a+=h.length-1}}else n+=a==o?"|":"."}return s[-1]&&(n+=" "+s[-1]),{text:n,clas:i}}refresh(){this.tick()}tick(){let t=S instanceof ku||S instanceof Pu;this.dumplines={},this.redraw((n,i,s,o,a,l)=>{var c=this.dumplines[o];switch(c==null&&(this.dumplines[o]=c=[]),n){case 16777216:var d=S.debugSymbols.addr2symbol[i];d&&(c[-1]=d);break;case 335544320:case 352321536:case 369098752:case 385875968:c[s]=n|i;break}}),this.vlist.refresh()}},wh=class extends gi{constructor(){super(...arguments);this.recreateOnResize=!0;this.cumulativeData=!0}createDiv(t){return S.debugSymbols&&S.debugSymbols.symbolmap?this.keys=Array.from(Object.keys(S.debugSymbols.symbolmap).filter(n=>!H1(n))):this.keys=["no symbols defined"],this.vlist=new ss(t),this.vlist.create(t,this.keys.length+1,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){if(t==0)return{text:on("Symbol",35)+on("Reads",8)+on("Writes",8)};var n=this.keys[t-1],i=this.dumplines&&this.dumplines[n];function s(l){var c=i[l]|0;return on(c?c.toString():"",8)}var o,a;return i!=null?(o=on(n,35)+s(301989888)+s(318767104),i[16777216]?a="seg_code":i[335544320]||i[352321536]?a="seg_io":a="seg_data"):(o=on(n,35),a="seg_unknown"),{text:o,clas:a}}refresh(){this.tick()}tick(){this.dumplines={},this.redraw((t,n,i,s,o,a)=>{var l=S.debugSymbols.addr2symbol[n];if(l!=null){var c=this.dumplines[l];c==null&&(c={},this.dumplines[l]=c),c[t]=(c[t]|0)+1}}),this.vlist.refresh(),this.probe&&this.probe.clear()}},Ph=class{constructor(){this.editingId=null}createDiv(e){return this.maindiv=Mr(e,"vertical-scroll bp-view"),this.render(),this.maindiv[0]}refresh(e){this.render()}render(){let e=this.maindiv.empty(),t=rh(),n=this.editingId!=null?t.find(d=>d.bp.id==this.editingId):null,i=$('<div class="bp-form"/>'),s=$('<input type="text" class="bp-input" spellcheck="false"/>').attr("placeholder","address or symbol (e.g. $8000, mainloop)").val(n&&n.bp.type=="address"?n.bp.target:""),o=$('<input type="text" class="bp-input" spellcheck="false"/>').attr("placeholder","condition (e.g. A == $20, #scanline > 222)").val(n&&n.bp.condition||""),a=$('<button class="btn btn-default btn-xs bp-submit"/>').text(n?"Save":"Add"),l=$('<button class="btn btn-default btn-xs bp-submit"/>').text("Cancel");l.to
Line truncated
|
||||
`)<0&&e.indexOf("\r")<0)return e.trim()}return""}function X5(r){var t;let e=r.record;if(e.source==="project"){let n=e.file;if(!n||!W.isWindow(n))return;let i=W.createOrShow(n);i instanceof Ft&&e.line&&i.navigateToLine(e.line)}else if(e.source==="toolchain"){let n=e.file;if(!n)return;qa(n);let i=W.createOrShow("#headerview/"+n);i instanceof mi&&e.line&&i.navigateToLine(e.line)}else if(e.source==="debugger"){let n=(t=e.addr)!=null?t:-1;if(n<0)return;if(e.kind==="label"&&W.isWindow("#disasm")){let i=W.createOrShow("#disasm");i instanceof En&&i.goToAddress(n)}else{let i=W.createOrShow("#memory");i instanceof Oi&&i.goToAddress(n)}}else if(e.source==="docs"){let n=e.url||"";n.startsWith("#help/")?W.createOrShow(n):n&&window.open(n,"_blank")}}function Sg(){bootbox.dialog({title:"Search",onEscape:!0,message:`
|
||||
PC `+this.addr2str(s)+" "+this.opToString(c,null,p),o[O]=1)}),this.addr2str(n)+i}},Sg=class extends bh{initCanvas(){super.initCanvas(),this.canvas.onclick=e=>{var t=Ll(this.canvas,e),n=Math.floor(t.x),i=Math.floor(t.y),s=this.getOpAtPos(t.x,t.y,16777216);s&&(mn("toline"),S.runEval(()=>{let o=S.getRasterScanline&&S.getRasterScanline()>=i;return o&&S.getRasterLineClock?o&&S.getRasterLineClock()>n:o}))}}drawEvent(e,t,n,i){var s=this.getOpRGB(e,t);if(s){var o=n+i*this.canvas.width,a=s|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()}},xh=class extends Sg{constructor(){super(...arguments);this.interrupt=0;this.rgb=0;this.lastpc=0}drawEvent(t,n,i,s){var o=i+s*this.canvas.width;if(t==134217728&&(this.interrupt=1),this.interrupt==1&&t==167772160&&(this.interrupt=n),this.interrupt>1&&this.sp>this.interrupt&&(this.interrupt=0),t==318767104&&(this.rgb|=47),t==385875968&&(this.rgb|=16256),t==352321536&&(this.rgb|=2047872),t==335544320&&(this.rgb|=7936),t==520093696&&(this.rgb=32768),t==150994944||t==402653184)this.datau32[o]=4279176975;else{let a=this.rgb;if(t==16777216){let l=this.sp&15;l>=8&&(l=16-l),Math.abs(this.lastpc)-n>16&&(l+=1),Math.abs(this.lastpc)-n>256&&(l+=1),a=this.rgb=526344*l+2105376,this.lastpc=n}this.interrupt&&(a|=8388672),this.datau32[o]==Jr&&(this.datau32[o]=a|Jr)}}},Sh=class extends gi{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new ss(t),this.vlist.create(t,this.cyclesPerLine*this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){var n="",i="seg_data",s=this.dumplines&&this.dumplines[t];if(s!=null){var o=s.info.join(", ");n="("+on(s.row,4)+", "+on(s.col,4)+") "+Xo(s.asm||"",20)+o,o.indexOf("Write ")>=0&&(i="seg_io")}return{text:n,clas:i}}refresh(){this.tick()}tick(){let t=S instanceof Qu||S instanceof ku;this.dumplines={},this.redraw((n,i,s,o,a,l)=>{t&&(a>>=2);var c=this.dumplines[a];switch(c==null&&(c={op:n,addr:i,row:o,col:s,asm:null,info:[]},this.dumplines[a]=c),n){case 16777216:if(S.disassemble){var d=S.disassemble(i,S.readAddress.bind(S));c.asm=d&&d.line}break;default:var h=this.opToString(n,i,l);h!=""&&c.info.push(h);break}}),this.vlist.refresh()}},vh=class extends gi{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new ss(t),this.vlist.create(t,this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){for(var n=on(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)n+=",";else{var h=be(c);n+=h,a+=h.length-1}}else n+=a==o?"|":"."}return s[-1]&&(n+=" "+s[-1]),{text:n,clas:i}}refresh(){this.tick()}tick(){let t=S instanceof Qu||S instanceof ku;this.dumplines={},this.redraw((n,i,s,o,a,l)=>{var c=this.dumplines[o];switch(c==null&&(this.dumplines[o]=c=[]),n){case 16777216:var d=S.debugSymbols.addr2symbol[i];d&&(c[-1]=d);break;case 335544320:case 352321536:case 369098752:case 385875968:c[s]=n|i;break}}),this.vlist.refresh()}},wh=class extends gi{constructor(){super(...arguments);this.recreateOnResize=!0;this.cumulativeData=!0}createDiv(t){return S.debugSymbols&&S.debugSymbols.symbolmap?this.keys=Array.from(Object.keys(S.debugSymbols.symbolmap).filter(n=>!H1(n))):this.keys=["no symbols defined"],this.vlist=new ss(t),this.vlist.create(t,this.keys.length+1,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){if(t==0)return{text:on("Symbol",35)+on("Reads",8)+on("Writes",8)};var n=this.keys[t-1],i=this.dumplines&&this.dumplines[n];function s(l){var c=i[l]|0;return on(c?c.toString():"",8)}var o,a;return i!=null?(o=on(n,35)+s(301989888)+s(318767104),i[16777216]?a="seg_code":i[335544320]||i[352321536]?a="seg_io":a="seg_data"):(o=on(n,35),a="seg_unknown"),{text:o,clas:a}}refresh(){this.tick()}tick(){this.dumplines={},this.redraw((t,n,i,s,o,a)=>{var l=S.debugSymbols.addr2symbol[n];if(l!=null){var c=this.dumplines[l];c==null&&(c={},this.dumplines[l]=c),c[t]=(c[t]|0)+1}}),this.vlist.refresh(),this.probe&&this.probe.clear()}},Ph=class{constructor(){this.editingId=null}createDiv(e){return this.maindiv=Mr(e,"vertical-scroll bp-view"),this.render(),this.maindiv[0]}refresh(e){this.render()}render(){let e=this.maindiv.empty(),t=rh(),n=this.editingId!=null?t.find(d=>d.bp.id==this.editingId):null,i=$('<div class="bp-form"/>'),s=$('<input type="text" class="bp-input" spellcheck="false"/>').attr("placeholder","address or symbol (e.g. $8000, mainloop)").val(n&&n.bp.type=="address"?n.bp.target:""),o=$('<input type="text" class="bp-input" spellcheck="false"/>').attr("placeholder","condition (e.g. A == $20, #scanline > 222)").val(n&&n.bp.condition||""),a=$('<button class="btn btn-default btn-xs bp-submit"/>').text(n?"Save":"Add"),l=$('<button class="btn btn-default btn-xs bp-submit"/>').text("Cancel");l.to
Line truncated
|
||||
`)<0&&e.indexOf("\r")<0)return e.trim()}return""}function XZ(r){var t;let e=r.record;if(e.source==="project"){let n=e.file;if(!n||!W.isWindow(n))return;let i=W.createOrShow(n);i instanceof Ft&&e.line&&i.navigateToLine(e.line)}else if(e.source==="toolchain"){let n=e.file;if(!n)return;qa(n);let i=W.createOrShow("#headerview/"+n);i instanceof mi&&e.line&&i.navigateToLine(e.line)}else if(e.source==="debugger"){let n=(t=e.addr)!=null?t:-1;if(n<0)return;if(e.kind==="label"&&W.isWindow("#disasm")){let i=W.createOrShow("#disasm");i instanceof En&&i.goToAddress(n)}else{let i=W.createOrShow("#memory");i instanceof Oi&&i.goToAddress(n)}}else if(e.source==="docs"){let n=e.url||"";n.startsWith("#help/")?W.createOrShow(n):n&&window.open(n,"_blank")}}function vg(){bootbox.dialog({title:"Search",onEscape:!0,message:`
|
||||
<div id="searchbox_form">
|
||||
<input type="text" id="searchboxInput" class="form-control"
|
||||
placeholder="Search symbols, files, docs"
|
||||
autocomplete="off" style="margin-bottom:8px">
|
||||
<div id="searchboxResults" style="max-height:340px;overflow-y:auto"></div>
|
||||
</div>
|
||||
`,buttons:{close:{label:"Close",className:"btn-default"}}}).one("shown.bs.modal",()=>{$("#searchboxInput").trigger("focus")});let e=$("#searchboxInput"),t=$("#searchboxResults"),n=[],i=-1,s=d=>{if(i=Math.max(-1,Math.min(d,n.length-1)),t.find("li.search-hit").each((h,u)=>{$(u).toggleClass("active",h===i)}),i>=0){let h=t[0],u=t.find("li.search-hit").eq(i);if(u.length){let f=u[0],p=h.getBoundingClientRect(),O=f.getBoundingClientRect(),x=O.top-p.top;x<0?h.scrollTop+=x:x+O.height>p.height&&(h.scrollTop+=x+O.height-p.height)}}},o=(d=i)=>{let h=n[d];h&&(X5(h),bootbox.hideAll())},a=d=>{if(n=d||[],n.length===0){i=-1,t.html('<div class="text-muted" style="padding:8px">No matches.</div>');return}let h=$('<ul class="list-group" style="margin-bottom:0"></ul>');for(let u of n){let f=u.record,p=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",x=f.source==="debugger"?be(f.addr,4):f.file&&f.line?`${f.file}:${f.line}`:f.file||"",w=f.kind!=="text",E=$('<li class="list-group-item search-hit" style="cursor:pointer;padding:6px 10px;display:flex;align-items:center;overflow:hidden"></li>');E.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">`+(w?`<strong>${Qh(f.name)}</strong>`:`<span class="search-dumb">${Qh(f.name)}</span>`)+(f.brief?` <span class="text-muted">- ${Qh(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">${x?Qh(x):""}</span>`),E.click(()=>{o(n.indexOf(u))}),h.append(E)}t.empty().append(h),s(0)},l=M5(async()=>{let d=e.val();if(!d){n=[],i=-1,t.empty();return}try{let h=await Lv.query(d,L5),u=kh(d,S&&S.debugSymbols&&S.debugSymbols.symbolmap);u&&ek(u,h.length>0)&&h.push(J1(d,u,K&&K.segments)),a(h)}catch(h){t.html('<div class="text-danger" style="padding:8px">Search failed.</div>')}},150);e.on("input",l),e.on("keydown",d=>{d.key==="ArrowDown"?(d.preventDefault(),s(i+1)):d.key==="ArrowUp"?(d.preventDefault(),s(i-1)):d.key==="Enter"?(d.preventDefault(),i>=0?o():l()):d.key==="Home"?(d.preventDefault(),s(0)):d.key==="End"&&(d.preventDefault(),s(n.length-1))});let c=Z5();c&&(e.val(c),l())}var D5=800,I5=1e3,z5=16;function ok(r){var e={};return r.forEach(t=>{e[t.name]=(e[t.name]||0)+1}),r.forEach(t=>{e[t.name]>1&&t.group&&(t.name=t.group+": "+t.name)}),r}function tk(r){return r.art?r.brev?0:7:null}var $h=/([0#]?)([x$%]|\d'h)([0-9a-f]+)(?:[;].*)?|(\d'b|0b)([01]+)/gim;function $g(r){return r.replace(/(\shex\s+)([0-9a-f]+)/ig,function(e,t,n){for(var i=t,s=0;s<n.length;s+=2)i+="0x"+n.substr(s,2)+",";return i})}function ak(r){for(var e=[],t;t=$h.exec(r);){var n;t[4]?n=parseInt(t[5],2):t[2].startsWith("%")?n=parseInt(t[3],2):t[2].startsWith("x")||t[2].startsWith("$")||t[2].endsWith("h")?n=parseInt(t[3],16):n=parseInt(t[3]),e.push(n)}return e}function W5(r,e,t){r=$g(r);for(var n="",i,s=0,o=0,a=Math.ceil(t/4);i=$h.exec(r);)n+=r.slice(s,$h.lastIndex-i[0].length),s=$h.lastIndex,i[4]?n+=i[4]+yu(e[o++],parseInt(i[4])):i[2].startsWith("%")?n+=i[1]+i[2]+yu(e[o++],t):i[2].endsWith("h")?n+=i[1]+i[2]+be(e[o++],parseInt(i[2])):i[2].startsWith("x")?n+=i[1]+"x"+be(e[o++],a):i[2].startsWith("$")?n+=i[1]+"$"+be(e[o++],a):n+=i[1]+e[o++].toString();return n+=r.slice(s),n=n.replace(/(\shex\s+)([,x0-9a-f]+)/ig,(l,c,d)=>{var h=c+d;return h=h.replace(/0x/ig,"").replace(/,/ig,""),h}),n}function Tg(r,e){if(!e)return r;for(var t=0,n=0;n<e.length;n++){var i=e[n];i<0&&(i=-i-1,t^=1<<i),r&1<<n&&(t^=1<<i)}return t}function _g(r,e){var t=e[r%e.length];return[t>>3,t&7]}var V5=[[0,0,4],[8,0,0]],Y5=[[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 B5(r,e,t,n,i,s){for(var o=0;o<8;o++)for(var a=r[e+o]||0,l=0;l<4;l++){var c=(3-l)*s+(7-o),d=a>>l&1|(a>>l+4&1)<<1;t[i*s+n+c]=d}}function j5(r,e,t,n,i,s){for(var o=0;o<8;o++){for(var a=0,l=0;l<4;l++){var c=(3-l)*s+(7-o),d=(t[i*s+n+c]||0)&3;d&1&&(a|=1<<l),d&2&&(a|=1<<l+4)}r[e+o]=a}}function Cg(r){return r.w===16&&r.h===16?Y5:V5}function lk(r){return Cg(r).length*8}function F5(r,e){for(var t=e.w,n=e.h,i=e.count||1,s=e.wpimg||lk(e),o=Cg(e),a=[],l=0;l<i;l++){for(var c=new Array(t*n).fill(0),d=l*s,h=0;h<o.length;h++){var[u,f,p]=o[h];B5(r,d+u,c,f,p,t)}a.push(new Uint8Array(c))}return a}function N5(r,e){for(var t=e.w,n=e.h,i=e.count||r.length,s=e.wpimg||lk(e),o=Cg(e),a=new Array(s*i).fill(0),l=0;l<i;l++)for(var c=r[l]||new Uint8Array(t*n),d=l*s,h=0;h<o.length;h++){var[u,f,p]=o[h];j5(a,d+u,c,f,p,t)}return a}function U5(r,e){if(e.pacstrip)return F5(r,e);var t=e.w,n=e.h,i=e.count||1,s=e.bpp||1,o=e.np||1,a=e.bpw||8,l=e.sl||Math.ceil(t*s/a),c=(1<<s)-1,d=e.pofs||l*n*i,h=e.skip||0,u=e.wpimg||l*n,f=l;e.il&&(u=l,f=l*i);for(var p=[],O=0;O<i;O++){for(var x=[],w=0;w<n;w++)for(var E=e.flip?n-1-w:w,A=u*O+E*f,X=0,T=0;T<t;T++){var k=0,R=Tg(A,e.remap);e.Line truncated
|
||||
`&&t++;return t}function uk(r,e){for(var t=/[/;][*;]([{].+[}])[*;][/;]/g,n=[],i;i=t.exec(r);){var s=i.index+i[0].length,o;e?o=r.indexOf("end",s):i[0].startsWith(";;")?(o=r.indexOf(";;",s),o==r.indexOf(";;{",s)&&(o=-1)):o=r.indexOf(";",s);var a=rk(r,i.index),l=i[0],c=o>=0?rk(r,o):"???";if(o<0){var d=e?'"end"':i[0].startsWith(";;")?'";;"':'";"';n.push({header:l,startline:a,endline:c,error:`No closing ${d} found after asset header`})}else if(o<=s)n.push({header:l,startline:a,endline:c,error:"Empty data block after asset header"});else try{var h=i[1].replace(/([A-Za-z]+):/g,'"$1":'),u=JSON.parse(h),f=/#embed\s+"(.+?)"/.exec(r.substring(s,o)),p=f?f[1]:void 0;n.push({header:l,startline:a,endline:c,fmt:u,start:s,end:o,embedFile:p})}catch(O){n.push({header:l,startline:a,endline:c,error:`Invalid asset format: ${O.message}`})}}return n}function fk(r,e,t){if(t(e))return e;var n=r.lastIndexOf("/");if(n>=0){var i=r.substring(0,n+1)+e;if(t(i))return i}return null}function q5(r,e){if(e.destfmt&&(e=e.destfmt),e.pacstrip)return N5(r,e);var t=e.w,n=e.h,i=e.count||1,s=e.bpp||1,o=e.np||1,a=e.bpw||8,l=e.sl||Math.ceil(e.w*s/a),c=(1<<s)-1,d=e.pofs||l*n*i,h=e.skip||0,u=e.wpimg||l*n,f=l;e.il&&(u=l,f=l*i);var p=e.il?f*n:u*i,O;o>0&&e.sl?O=new Uint8Array(p):a<=8?O=new Uint8Array(p*o):O=new Uint32Array(p*o);for(var x=0;x<i;x++)for(var w=r[x],E=0,A=0;A<n;A++)for(var X=e.flip?n-1-A:A,T=x*u+X*f,k=0,R=0;R<t;R++){var Z=w[E++],U=Tg(T,e.remap);e.reindex&&([U,k]=_g(R,e.reindex),U+=T);for(var ie=0;ie<o;ie++){var se=Z>>ie*s&c;O[U+ie*d+h]|=e.brev?se<<a-k-s:se<<k}k+=s,k>=a&&!e.reindex&&(T+=1,k=0)}return O}function nk(r,e,t,n,i,s,o){for(var a=[],l=0;l<r.length;l++){var c=r[l],d=4278190080;d|=(c>>e&(1<<t)-1)<<8-t,d|=(c>>n&(1<<i)-1)<<16-i,d|=(c>>s&(1<<o)-1)<<24-o,a.push(d)}return a}function G5(r){var e=(r>>0&1)*33+(r>>1&1)*71+(r>>2&1)*151,t=(r>>3&1)*33+(r>>4&1)*71+(r>>5&1)*151,n=(r>>6&1)*81+(r>>7&1)*174;return 4278190080|n<<16|t<<8|e}function H5(r){var e=r.pal;if(typeof e=="number"){var t=Math.floor(Math.abs(e/100)%10),n=Math.floor(Math.abs(e/10)%10),i=Math.floor(Math.abs(e)%10);return 1<<t+n+i}else{if(e==="pacman")return 256;var s=pk[e];if(s)return s.length;throw new Error("No palette named "+e)}}function vg(r,e){var t=e.pal,n;if(typeof t=="number"){var i=Math.floor(Math.abs(t/100)%10),s=Math.floor(Math.abs(t/10)%10),o=Math.floor(Math.abs(t)%10);t>=0?n=nk(r,0,i,i,s,i+s,o):n=nk(r,i+s,o,i,s,0,i)}else if(t==="pacman"){n=[];for(var a=0;a<r.length;a++)n.push(G5(r[a]))}else{var l=pk[t];if(l)n=new Uint32Array(r).map(c=>l[c&l.length-1]|4278190080);else throw new Error("No palette named "+t)}return n}function Ja(r){var e=r.pal;if(typeof e!="number"||!isFinite(e))return null;var t=Math.floor(Math.abs(e/100)%10),n=Math.floor(Math.abs(e/10)%10),i=Math.floor(Math.abs(e)%10);return t+n+i<=0?null:e>=0?{r:t,g:n,b:i,rshift:0,gshift:t,bshift:t+n}:{r:i,g:n,b:t,rshift:t+n,gshift:t,bshift:0}}function ik(r,e,t,n){var i=Ja(r);return i?(e&(1<<i.r)-1)<<i.rshift|(t&(1<<i.g)-1)<<i.gshift|(n&(1<<i.b)-1)<<i.bshift:0}function K5(r,e){var t=Ja(r);return t?{r:e>>t.rshift&(1<<t.r)-1,g:e>>t.gshift&(1<<t.g)-1,b:e>>t.bshift&(1<<t.b)-1}:null}var pk={gb:[13686916,8890444,5401396,2961698],nes:[5395026,11796480,10485760,11599933,7602281,91,95,6208,12048,543240,26368,1196544,7153664,0,0,0,12899815,16728064,14421538,16729963,14090399,6818519,6588,21681,27227,35843,43776,2918400,10777088,0,0,0,16316664,16755516,16742785,16735173,16730354,14633471,4681215,46327,57599,58229,259115,7911470,15065624,7895160,0,0,16777215,16773822,16300216,16300248,16758527,16761855,13095423,10148607,8973816,8650717,12122296,16119980,16777136,16308472,0,0],ap2lores:[0,16711935,127,8323199,32512,8355711,191,255,12549888,16760576,12566463,16744319,65280,16776960,49023,16777215],vcs:[0,0,4210752,4210752,7105644,7105644,9474192,9474192,11579568,11579568,13158600,13158600,14474460,14474460,16053492,16053492,17476,17476,1074276,1074276,2393220,2393220,3448992,3448992,4241592,4241592,5296336,5296336,6088936,6088936,6880508,6880508,10352,10352,1328260,1328260,2645144,2645144,3963052,3963052,5016764,5016764,6070476,6070476,6862044,6862044,7915756,7915756,6276,6276,1586328,1586328,3166380,3166380,4745408,4745408,6062288,6062288,7378144,7378144,8431852,8431852,9747708,9747708,136,136,2105500,2105500,3947696,3947696,5789888,5789888,7368912,7368912,8947936,8947936,10526956,10526956,11842812,11842812,6029432,6029432,7610508,7610508,8928416,8928416,10246320,10246320,11563200,11563200,12616912,12616912,13671644,13671644,14725356,14725356,7864392,7864392,9445472,9445472,10763384,10763384,12081292,12081292,13398176,13398176,14451892,14451892,15506628,15506628,16560340,16560340,8650772,8650772,9969712,9969712,11287628,11287628,12605544,12605544,13660284,13660284,14715028,14715028,15507624,15507624,16561340,16561340,8912896,8912896,10231836,10231836,11550776,11550776,12606544,12606544,13661288,13661288,14716028,14716028,15508624,15508624,16562340,16562340,8132608,8132608,9451548,9451548,11031608,11031608,12349520,12349520,13404264,1
Line truncated
|
||||
`,buttons:{close:{label:"Close",className:"btn-default"}}}).one("shown.bs.modal",()=>{$("#searchboxInput").trigger("focus")});let e=$("#searchboxInput"),t=$("#searchboxResults"),n=[],i=-1,s=d=>{if(i=Math.max(-1,Math.min(d,n.length-1)),t.find("li.search-hit").each((h,u)=>{$(u).toggleClass("active",h===i)}),i>=0){let h=t[0],u=t.find("li.search-hit").eq(i);if(u.length){let f=u[0],p=h.getBoundingClientRect(),O=f.getBoundingClientRect(),x=O.top-p.top;x<0?h.scrollTop+=x:x+O.height>p.height&&(h.scrollTop+=x+O.height-p.height)}}},o=(d=i)=>{let h=n[d];h&&(XZ(h),bootbox.hideAll())},a=d=>{if(n=d||[],n.length===0){i=-1,t.html('<div class="text-muted" style="padding:8px">No matches.</div>');return}let h=$('<ul class="list-group" style="margin-bottom:0"></ul>');for(let u of n){let f=u.record,p=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",x=f.source==="debugger"?be(f.addr,4):f.file&&f.line?`${f.file}:${f.line}`:f.file||"",w=f.kind!=="text",E=$('<li class="list-group-item search-hit" style="cursor:pointer;padding:6px 10px;display:flex;align-items:center;overflow:hidden"></li>');E.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">`+(w?`<strong>${Qh(f.name)}</strong>`:`<span class="search-dumb">${Qh(f.name)}</span>`)+(f.brief?` <span class="text-muted">- ${Qh(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">${x?Qh(x):""}</span>`),E.click(()=>{o(n.indexOf(u))}),h.append(E)}t.empty().append(h),s(0)},l=MZ(async()=>{let d=e.val();if(!d){n=[],i=-1,t.empty();return}try{let h=await Lv.query(d,LZ),u=kh(d,S&&S.debugSymbols&&S.debugSymbols.symbolmap);u&&ek(u,h.length>0)&&h.push(J1(d,u,K&&K.segments)),a(h)}catch(h){t.html('<div class="text-danger" style="padding:8px">Search failed.</div>')}},150);e.on("input",l),e.on("keydown",d=>{d.key==="ArrowDown"?(d.preventDefault(),s(i+1)):d.key==="ArrowUp"?(d.preventDefault(),s(i-1)):d.key==="Enter"?(d.preventDefault(),i>=0?o():l()):d.key==="Home"?(d.preventDefault(),s(0)):d.key==="End"&&(d.preventDefault(),s(n.length-1))});let c=ZZ();c&&(e.val(c),l())}var DZ=800,IZ=1e3,zZ=16;function ok(r){var e={};return r.forEach(t=>{e[t.name]=(e[t.name]||0)+1}),r.forEach(t=>{e[t.name]>1&&t.group&&(t.name=t.group+": "+t.name)}),r}function tk(r){return r.art?r.brev?0:7:null}var $h=/([0#]?)([x$%]|\d'h)([0-9a-f]+)(?:[;].*)?|(\d'b|0b)([01]+)/gim;function Tg(r){return r.replace(/(\shex\s+)([0-9a-f]+)/ig,function(e,t,n){for(var i=t,s=0;s<n.length;s+=2)i+="0x"+n.substr(s,2)+",";return i})}function ak(r){for(var e=[],t;t=$h.exec(r);){var n;t[4]?n=parseInt(t[5],2):t[2].startsWith("%")?n=parseInt(t[3],2):t[2].startsWith("x")||t[2].startsWith("$")||t[2].endsWith("h")?n=parseInt(t[3],16):n=parseInt(t[3]),e.push(n)}return e}function WZ(r,e,t){r=Tg(r);for(var n="",i,s=0,o=0,a=Math.ceil(t/4);i=$h.exec(r);)n+=r.slice(s,$h.lastIndex-i[0].length),s=$h.lastIndex,i[4]?n+=i[4]+xu(e[o++],parseInt(i[4])):i[2].startsWith("%")?n+=i[1]+i[2]+xu(e[o++],t):i[2].endsWith("h")?n+=i[1]+i[2]+be(e[o++],parseInt(i[2])):i[2].startsWith("x")?n+=i[1]+"x"+be(e[o++],a):i[2].startsWith("$")?n+=i[1]+"$"+be(e[o++],a):n+=i[1]+e[o++].toString();return n+=r.slice(s),n=n.replace(/(\shex\s+)([,x0-9a-f]+)/ig,(l,c,d)=>{var h=c+d;return h=h.replace(/0x/ig,"").replace(/,/ig,""),h}),n}function _g(r,e){if(!e)return r;for(var t=0,n=0;n<e.length;n++){var i=e[n];i<0&&(i=-i-1,t^=1<<i),r&1<<n&&(t^=1<<i)}return t}function Cg(r,e){var t=e[r%e.length];return[t>>3,t&7]}var VZ=[[0,0,4],[8,0,0]],YZ=[[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 BZ(r,e,t,n,i,s){for(var o=0;o<8;o++)for(var a=r[e+o]||0,l=0;l<4;l++){var c=(3-l)*s+(7-o),d=a>>l&1|(a>>l+4&1)<<1;t[i*s+n+c]=d}}function jZ(r,e,t,n,i,s){for(var o=0;o<8;o++){for(var a=0,l=0;l<4;l++){var c=(3-l)*s+(7-o),d=(t[i*s+n+c]||0)&3;d&1&&(a|=1<<l),d&2&&(a|=1<<l+4)}r[e+o]=a}}function Ag(r){return r.w===16&&r.h===16?YZ:VZ}function lk(r){return Ag(r).length*8}function FZ(r,e){for(var t=e.w,n=e.h,i=e.count||1,s=e.wpimg||lk(e),o=Ag(e),a=[],l=0;l<i;l++){for(var c=new Array(t*n).fill(0),d=l*s,h=0;h<o.length;h++){var[u,f,p]=o[h];BZ(r,d+u,c,f,p,t)}a.push(new Uint8Array(c))}return a}function NZ(r,e){for(var t=e.w,n=e.h,i=e.count||r.length,s=e.wpimg||lk(e),o=Ag(e),a=new Array(s*i).fill(0),l=0;l<i;l++)for(var c=r[l]||new Uint8Array(t*n),d=l*s,h=0;h<o.length;h++){var[u,f,p]=o[h];jZ(a,d+u,c,f,p,t)}return a}function UZ(r,e){if(e.pacstrip)return FZ(r,e);var t=e.w,n=e.h,i=e.count||1,s=e.bpp||1,o=e.np||1,a=e.bpw||8,l=e.sl||Math.ceil(t*s/a),c=(1<<s)-1,d=e.pofs||l*n*i,h=e.skip||0,u=e.wpimg||l*n,f=l;e.il&&(u=l,f=l*i);for(var p=[],O=0;O<i;O++){for(var x=[],w=0;w<n;w++)for(var E=e.flip?n-1-w:w,A=u*O+E*f,X=0,T=0;T<t;T++){var k=0,R=_g(A,e.remap);e.Line truncated
|
||||
`&&t++;return t}function uk(r,e){for(var t=/[/;][*;]([{].+[}])[*;][/;]/g,n=[],i;i=t.exec(r);){var s=i.index+i[0].length,o;e?o=r.indexOf("end",s):i[0].startsWith(";;")?(o=r.indexOf(";;",s),o==r.indexOf(";;{",s)&&(o=-1)):o=r.indexOf(";",s);var a=rk(r,i.index),l=i[0],c=o>=0?rk(r,o):"???";if(o<0){var d=e?'"end"':i[0].startsWith(";;")?'";;"':'";"';n.push({header:l,startline:a,endline:c,error:`No closing ${d} found after asset header`})}else if(o<=s)n.push({header:l,startline:a,endline:c,error:"Empty data block after asset header"});else try{var h=i[1].replace(/([A-Za-z]+):/g,'"$1":'),u=JSON.parse(h),f=/#embed\s+"(.+?)"/.exec(r.substring(s,o)),p=f?f[1]:void 0;n.push({header:l,startline:a,endline:c,fmt:u,start:s,end:o,embedFile:p})}catch(O){n.push({header:l,startline:a,endline:c,error:`Invalid asset format: ${O.message}`})}}return n}function fk(r,e,t){if(t(e))return e;var n=r.lastIndexOf("/");if(n>=0){var i=r.substring(0,n+1)+e;if(t(i))return i}return null}function qZ(r,e){if(e.destfmt&&(e=e.destfmt),e.pacstrip)return NZ(r,e);var t=e.w,n=e.h,i=e.count||1,s=e.bpp||1,o=e.np||1,a=e.bpw||8,l=e.sl||Math.ceil(e.w*s/a),c=(1<<s)-1,d=e.pofs||l*n*i,h=e.skip||0,u=e.wpimg||l*n,f=l;e.il&&(u=l,f=l*i);var p=e.il?f*n:u*i,O;o>0&&e.sl?O=new Uint8Array(p):a<=8?O=new Uint8Array(p*o):O=new Uint32Array(p*o);for(var x=0;x<i;x++)for(var w=r[x],E=0,A=0;A<n;A++)for(var X=e.flip?n-1-A:A,T=x*u+X*f,k=0,R=0;R<t;R++){var Z=w[E++],U=_g(T,e.remap);e.reindex&&([U,k]=Cg(R,e.reindex),U+=T);for(var ie=0;ie<o;ie++){var se=Z>>ie*s&c;O[U+ie*d+h]|=e.brev?se<<a-k-s:se<<k}k+=s,k>=a&&!e.reindex&&(T+=1,k=0)}return O}function nk(r,e,t,n,i,s,o){for(var a=[],l=0;l<r.length;l++){var c=r[l],d=4278190080;d|=(c>>e&(1<<t)-1)<<8-t,d|=(c>>n&(1<<i)-1)<<16-i,d|=(c>>s&(1<<o)-1)<<24-o,a.push(d)}return a}function GZ(r){var e=(r>>0&1)*33+(r>>1&1)*71+(r>>2&1)*151,t=(r>>3&1)*33+(r>>4&1)*71+(r>>5&1)*151,n=(r>>6&1)*81+(r>>7&1)*174;return 4278190080|n<<16|t<<8|e}function HZ(r){var e=r.pal;if(typeof e=="number"){var t=Math.floor(Math.abs(e/100)%10),n=Math.floor(Math.abs(e/10)%10),i=Math.floor(Math.abs(e)%10);return 1<<t+n+i}else{if(e==="pacman")return 256;var s=pk[e];if(s)return s.length;throw new Error("No palette named "+e)}}function wg(r,e){var t=e.pal,n;if(typeof t=="number"){var i=Math.floor(Math.abs(t/100)%10),s=Math.floor(Math.abs(t/10)%10),o=Math.floor(Math.abs(t)%10);t>=0?n=nk(r,0,i,i,s,i+s,o):n=nk(r,i+s,o,i,s,0,i)}else if(t==="pacman"){n=[];for(var a=0;a<r.length;a++)n.push(GZ(r[a]))}else{var l=pk[t];if(l)n=new Uint32Array(r).map(c=>l[c&l.length-1]|4278190080);else throw new Error("No palette named "+t)}return n}function Ja(r){var e=r.pal;if(typeof e!="number"||!isFinite(e))return null;var t=Math.floor(Math.abs(e/100)%10),n=Math.floor(Math.abs(e/10)%10),i=Math.floor(Math.abs(e)%10);return t+n+i<=0?null:e>=0?{r:t,g:n,b:i,rshift:0,gshift:t,bshift:t+n}:{r:i,g:n,b:t,rshift:t+n,gshift:t,bshift:0}}function ik(r,e,t,n){var i=Ja(r);return i?(e&(1<<i.r)-1)<<i.rshift|(t&(1<<i.g)-1)<<i.gshift|(n&(1<<i.b)-1)<<i.bshift:0}function KZ(r,e){var t=Ja(r);return t?{r:e>>t.rshift&(1<<t.r)-1,g:e>>t.gshift&(1<<t.g)-1,b:e>>t.bshift&(1<<t.b)-1}:null}var pk={gb:[13686916,8890444,5401396,2961698],nes:[5395026,11796480,10485760,11599933,7602281,91,95,6208,12048,543240,26368,1196544,7153664,0,0,0,12899815,16728064,14421538,16729963,14090399,6818519,6588,21681,27227,35843,43776,2918400,10777088,0,0,0,16316664,16755516,16742785,16735173,16730354,14633471,4681215,46327,57599,58229,259115,7911470,15065624,7895160,0,0,16777215,16773822,16300216,16300248,16758527,16761855,13095423,10148607,8973816,8650717,12122296,16119980,16777136,16308472,0,0],ap2lores:[0,16711935,127,8323199,32512,8355711,191,255,12549888,16760576,12566463,16744319,65280,16776960,49023,16777215],vcs:[0,0,4210752,4210752,7105644,7105644,9474192,9474192,11579568,11579568,13158600,13158600,14474460,14474460,16053492,16053492,17476,17476,1074276,1074276,2393220,2393220,3448992,3448992,4241592,4241592,5296336,5296336,6088936,6088936,6880508,6880508,10352,10352,1328260,1328260,2645144,2645144,3963052,3963052,5016764,5016764,6070476,6070476,6862044,6862044,7915756,7915756,6276,6276,1586328,1586328,3166380,3166380,4745408,4745408,6062288,6062288,7378144,7378144,8431852,8431852,9747708,9747708,136,136,2105500,2105500,3947696,3947696,5789888,5789888,7368912,7368912,8947936,8947936,10526956,10526956,11842812,11842812,6029432,6029432,7610508,7610508,8928416,8928416,10246320,10246320,11563200,11563200,12616912,12616912,13671644,13671644,14725356,14725356,7864392,7864392,9445472,9445472,10763384,10763384,12081292,12081292,13398176,13398176,14451892,14451892,15506628,15506628,16560340,16560340,8650772,8650772,9969712,9969712,11287628,11287628,12605544,12605544,13660284,13660284,14715028,14715028,15507624,15507624,16561340,16561340,8912896,8912896,10231836,10231836,11550776,11550776,12606544,12606544,13661288,13661288,14716028,14716028,15508624,15508624,16562340,16562340,8132608,8132608,9451548,9451548,11031608,11031608,12349520,12349520,13404264,1
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
|
||||
@@ -3564,13 +3564,13 @@ containing embeds is effectively sandboxed from the others.</p>
|
||||
src="https://8bitworkshop.com/redir.html?embed=1&platform=nes&highlight=&file0_name=testembed.dasm&file0_data=..."></iframe>
|
||||
</div>
|
||||
</code></pre>
|
||||
`;var zZ=Ig(),Wh=[{id:"index",title:"IDE Help",html:bk},{id:"editor",title:"Editor",html:yk},{id:"disasm",title:"Disassembly",html:xk},{id:"memory",title:"Memory Browser",html:Sk},{id:"memmap",title:"Memory Map",html:vk},{id:"vram",title:"VRAM Browser",html:wk},{id:"memprobe",title:"Memory Probe",html:Pk},{id:"crtprobe",title:"CRT Probe",html:kk},{id:"probelog",title:"Probe Log",html:Qk},{id:"scanlineio",title:"Scanline I/O",html:$k},{id:"symbols",title:"Symbol Profiler",html:Tk},{id:"callstack",title:"Call Stack",html:_k},{id:"debugtree",title:"Debug Tree",html:Ck},{id:"breakpoints",title:"Breakpoints",html:Ak},{id:"asseteditor",title:"Asset Editor",html:Rk},{id:"managing-files",title:"Managing Files",html:Ek},{id:"build-directives",title:"Build Directives",html:Mk},{id:"toolchains",title:"Toolchains & Platforms",html:Lk},{id:"asset-headers",title:"Asset Headers",html:Zk},{id:"embedding-ide",title:"Embedding the IDE",html:Xk}],zg={};for(let r of Wh)zg[r.id]=r;Mv(()=>Wh);function Wg(r){let e=r||"";return e.startsWith("#")&&(e=e.substring(1)),e.startsWith("help")&&(e=e.substring(4)),e.startsWith("/")&&(e=e.substring(1)),e.endsWith(".md")&&(e=e.substring(0,e.length-3)),e=e.replace(/^\.\//,""),zg[e]?e:"index"}function WZ(r){return zg[Wg(r)]}var VZ={"#disasm":"disasm","#memory":"memory","#memmap":"memmap","#vram":"vram","#memprobe":"memprobe","#crtprobe":"crtprobe","#probelog":"probelog","#scanlineio":"scanlineio","#symbols":"symbols","#callstack":"callstack","#debugtree":"debugtree","#breakpoints":"breakpoints","#asseteditor":"asseteditor"};function iQ(r,e){return e?"editor":r&&VZ[r]||"index"}function YZ(r){r.querySelectorAll("a[href]").forEach(t=>{let n=t.getAttribute("href");if(!n)return;if(/^[a-z][a-z0-9+.-]*:/i.test(n)){t.setAttribute("target","_blank"),t.setAttribute("rel","noopener noreferrer");return}if(n.startsWith("/")||n.startsWith("#"))return;let i=n.indexOf("#"),s=i>=0?n.substring(0,i):n;s.endsWith(".md")&&(t.setAttribute("href","#help/"+Wg(s)),t.removeAttribute("target"))})}function BZ(r,e){let t=WZ(e);r.innerHTML=zZ.sanitize(t.html),YZ(r)}var sl=class{constructor(e){this.id=Wg(e||"index")}getPath(){return"#help/"+this.id}createDiv(e){return this.maindiv=Mr(e,"vertical-scroll help-view"),BZ(this.maindiv[0],this.id),this.maindiv[0]}refresh(e){}};var ol=256,sQ=100,oQ=!1,Vh=class r{constructor(e,t){this.expanded=!1;this.parent=e,this.name=t,this.children=new Map,this.level=e?e.level+1:-1,this.view=e?e.view:null}getDiv(){return this._div==null&&(this._div=document.createElement("div"),this._div.classList.add("vertical-scroll"),this._div.classList.add("tree-content"),this._header=document.createElement("div"),this._header.classList.add("tree-header"),this._header.classList.add("tree-level-"+this.level),this._header.append(this.name),this._inline=document.createElement("span"),this._inline.classList.add("tree-value"),this._header.append(this._inline),this._div.append(this._header),this.parent._content.append(this._div),this._header.onclick=e=>{this.toggleExpanded()}),this.expanded&&this._content==null?(this._content=document.createElement("div"),this._div.append(this._content)):!this.expanded&&this._content!=null&&(this._content.remove(),this._content=null,this.children.clear()),this._div}toggleExpanded(){this.expanded=!this.expanded,this.view.tick()}remove(){this._div.remove(),this._div=null}update(e){this.getDiv();var t="";if(e&&e.$$&&typeof e.$$=="function"&&this._content!=null&&(e=e.$$()),e==null)t=e+"";else if(typeof e=="number")e!=(e|0)?t=e.toString():t=e+" ($"+be(e)+")";else if(typeof e=="boolean")t=e.toString();else if(typeof e=="string")e.length<sQ?t=e:t=e.substring(0,sQ)+"...";else if(e.buffer&&e.length<=ol)t=hb(e,0,e.length);else if(typeof e=="object"||typeof e=="function")if(this._content!=null){if(e.slice&&e.length>ol){let l={},c=e;for(var n=ol;e.length/n>ol;)n*=2;for(let d=0;d<c.length;d+=n)l["$"+be(d)]={$$:()=>c.slice(d,d+n)};e=l}if(e instanceof Map){let l={};for(let[c,d]of e.entries())l[c]=d;e=l}let o=e instanceof Array?Array.from(e.keys()):Object.getOwnPropertyNames(e);if(o.length>ol){let l={},c=e;for(var n=100;o.length/n>100;)n*=2;for(let h=0;h<o.length;h+=n){for(var i={},s=h;s<h+n;s++)i[o[s]]=c[o[s]];l["["+h+"...]"]=i}e=l,o=Object.getOwnPropertyNames(e)}let a=new Set(this.children.keys());o.forEach(l=>{var c=!oQ&&typeof l=="string"&&l.startsWith("$$");if(!c){let d=this.children.get(l);d==null&&(d=new r(this,l),this.children.set(l,d)),d.update(e[l])}a.delete(l)}),a.forEach(l=>{this.children.get(l).remove(),this.children.delete(l)}),this._header.classList.add("tree-expanded"),this._header.classList.remove("tree-collapsed")}else this._header.classList.add("tree-collapsed"),this._header.classList.remove("tree-expanded");else t=typeof e;this._inline.innerText!=t&&(this._inline.innerText=t)}};function aQ(r,e){var t=new Vh(null,null);t.view=e,t._content=r;var n=new Vh(t,"/");return n.expanded=!0,n.getDiv(),n._div.style.padding="0px",n}var Vg=class{createDiv(e){return this.root=aQ(e,this),th
Line truncated
|
||||
`,await mQ(r),re.newfile?!n&&!t?ve('No build tool for "'+r+'" on this platform; project will not build.'):n?xQ(!0,!0):_t("No skeleton file for "+t+" on this platform; using blank file."):_t('Could not find file "'+r+'"<br><br>Creating new '+(n?t:"blank")+" file."),delete re.newfile,su()}}function Jg(r){if(r=="/")re={repo:"/"};else if(r.indexOf("://")>=0){var e=Qa(r);e&&(re={repo:e.repopath})}else re.platform=ae,re.file=r;Hi()}async function tX(r){var e=Cu(S.getToolForFilename(r));try{return await $.get("presets/"+Tt(ae)+"/skeleton."+e,"text")}catch(t){return console.log(t+""),null}}function eb(r){return r.indexOf(" ")>=0?(ve("No spaces in filenames, please."),!1):!0}async function rX(r){var e=Tt(ae),t={},n=[];for(var i of r){var s=S.getToolForFilename("test"+i);t[s]||(t[s]=[],n.push(s)),t[s].push(i)}var o=n.map(d=>$.ajax({url:"presets/"+e+"/skeleton."+Cu(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 nX(r){var e=await rX(S.getDefaultExtensions()),t,n;return e.length===0?(t=S.getDefaultExtensions(),n=t.join(" ")):(t=e.reduce((i,s)=>i.concat(s.extensions),[]),n=e.map(i=>i.extensions.join(" ")).join("<br>")),bootbox.prompt({title:"Enter the name of your new main source file.<br><br><span class='dialog-help'>"+n+"</span>",placeholder:"newfile"+t[0],callback:i=>{if(i&&i.trim().length>0){if(!eb(i))return;i.indexOf(".")<0&&(i+=t[0]);var s=i;re.newfile="1",Jg(s)}}}),!0}function iX(r){let e=$('<input type="file" multiple accept="*" style="display:none">'),t=e[0];e.change(n=>{sX(t.files)}),e.click()}function sX(r){console.log(r);var e=0;function t(){var n=r[e++];if(!n)console.log("Done uploading",e),e>2?(_t("Files uploaded."),setTimeout(fl,1e3)):(re.file=r[0].name,bootbox.confirm({message:"Open '"+yi.sanitize(re.file)+"' as main project file?",buttons:{confirm:{label:"Open As New Project"},cancel:{label:"Include/Link With Project Later"}},callback:o=>{o?Hi():setTimeout(fl,1e3)}}));else{var i=n.name,s=new FileReader;s.onload=function(o){var a=o.target.result,l=new Uint8Array(a);_i(i,l)||(l=El(l).replace(`\r
|
||||
`;var z5=zg(),Wh=[{id:"index",title:"IDE Help",html:bk},{id:"editor",title:"Editor",html:yk},{id:"disasm",title:"Disassembly",html:xk},{id:"memory",title:"Memory Browser",html:Sk},{id:"memmap",title:"Memory Map",html:vk},{id:"vram",title:"VRAM Browser",html:wk},{id:"memprobe",title:"Memory Probe",html:Pk},{id:"crtprobe",title:"CRT Probe",html:kk},{id:"probelog",title:"Probe Log",html:Qk},{id:"scanlineio",title:"Scanline I/O",html:$k},{id:"symbols",title:"Symbol Profiler",html:Tk},{id:"callstack",title:"Call Stack",html:_k},{id:"debugtree",title:"Debug Tree",html:Ck},{id:"breakpoints",title:"Breakpoints",html:Ak},{id:"asseteditor",title:"Asset Editor",html:Rk},{id:"managing-files",title:"Managing Files",html:Ek},{id:"build-directives",title:"Build Directives",html:Mk},{id:"toolchains",title:"Toolchains & Platforms",html:Lk},{id:"asset-headers",title:"Asset Headers",html:Zk},{id:"embedding-ide",title:"Embedding the IDE",html:Xk}],Wg={};for(let r of Wh)Wg[r.id]=r;Mv(()=>Wh);function Vg(r){let e=r||"";return e.startsWith("#")&&(e=e.substring(1)),e.startsWith("help")&&(e=e.substring(4)),e.startsWith("/")&&(e=e.substring(1)),e.endsWith(".md")&&(e=e.substring(0,e.length-3)),e=e.replace(/^\.\//,""),Wg[e]?e:"index"}function W5(r){return Wg[Vg(r)]}var V5={"#disasm":"disasm","#memory":"memory","#memmap":"memmap","#vram":"vram","#memprobe":"memprobe","#crtprobe":"crtprobe","#probelog":"probelog","#scanlineio":"scanlineio","#symbols":"symbols","#callstack":"callstack","#debugtree":"debugtree","#breakpoints":"breakpoints","#asseteditor":"asseteditor"};function iQ(r,e){return e?"editor":r&&V5[r]||"index"}function Y5(r){r.querySelectorAll("a[href]").forEach(t=>{let n=t.getAttribute("href");if(!n)return;if(/^[a-z][a-z0-9+.-]*:/i.test(n)){t.setAttribute("target","_blank"),t.setAttribute("rel","noopener noreferrer");return}if(n.startsWith("/")||n.startsWith("#"))return;let i=n.indexOf("#"),s=i>=0?n.substring(0,i):n;s.endsWith(".md")&&(t.setAttribute("href","#help/"+Vg(s)),t.removeAttribute("target"))})}function B5(r,e){let t=W5(e);r.innerHTML=z5.sanitize(t.html),Y5(r)}var sl=class{constructor(e){this.id=Vg(e||"index")}getPath(){return"#help/"+this.id}createDiv(e){return this.maindiv=Mr(e,"vertical-scroll help-view"),B5(this.maindiv[0],this.id),this.maindiv[0]}refresh(e){}};var ol=256,sQ=100,oQ=!1,Vh=class r{constructor(e,t){this.expanded=!1;this.parent=e,this.name=t,this.children=new Map,this.level=e?e.level+1:-1,this.view=e?e.view:null}getDiv(){return this._div==null&&(this._div=document.createElement("div"),this._div.classList.add("vertical-scroll"),this._div.classList.add("tree-content"),this._header=document.createElement("div"),this._header.classList.add("tree-header"),this._header.classList.add("tree-level-"+this.level),this._header.append(this.name),this._inline=document.createElement("span"),this._inline.classList.add("tree-value"),this._header.append(this._inline),this._div.append(this._header),this.parent._content.append(this._div),this._header.onclick=e=>{this.toggleExpanded()}),this.expanded&&this._content==null?(this._content=document.createElement("div"),this._div.append(this._content)):!this.expanded&&this._content!=null&&(this._content.remove(),this._content=null,this.children.clear()),this._div}toggleExpanded(){this.expanded=!this.expanded,this.view.tick()}remove(){this._div.remove(),this._div=null}update(e){this.getDiv();var t="";if(e&&e.$$&&typeof e.$$=="function"&&this._content!=null&&(e=e.$$()),e==null)t=e+"";else if(typeof e=="number")e!=(e|0)?t=e.toString():t=e+" ($"+be(e)+")";else if(typeof e=="boolean")t=e.toString();else if(typeof e=="string")e.length<sQ?t=e:t=e.substring(0,sQ)+"...";else if(e.buffer&&e.length<=ol)t=hb(e,0,e.length);else if(typeof e=="object"||typeof e=="function")if(this._content!=null){if(e.slice&&e.length>ol){let l={},c=e;for(var n=ol;e.length/n>ol;)n*=2;for(let d=0;d<c.length;d+=n)l["$"+be(d)]={$$:()=>c.slice(d,d+n)};e=l}if(e instanceof Map){let l={};for(let[c,d]of e.entries())l[c]=d;e=l}let o=e instanceof Array?Array.from(e.keys()):Object.getOwnPropertyNames(e);if(o.length>ol){let l={},c=e;for(var n=100;o.length/n>100;)n*=2;for(let h=0;h<o.length;h+=n){for(var i={},s=h;s<h+n;s++)i[o[s]]=c[o[s]];l["["+h+"...]"]=i}e=l,o=Object.getOwnPropertyNames(e)}let a=new Set(this.children.keys());o.forEach(l=>{var c=!oQ&&typeof l=="string"&&l.startsWith("$$");if(!c){let d=this.children.get(l);d==null&&(d=new r(this,l),this.children.set(l,d)),d.update(e[l])}a.delete(l)}),a.forEach(l=>{this.children.get(l).remove(),this.children.delete(l)}),this._header.classList.add("tree-expanded"),this._header.classList.remove("tree-collapsed")}else this._header.classList.add("tree-collapsed"),this._header.classList.remove("tree-expanded");else t=typeof e;this._inline.innerText!=t&&(this._inline.innerText=t)}};function aQ(r,e){var t=new Vh(null,null);t.view=e,t._content=r;var n=new Vh(t,"/");return n.expanded=!0,n.getDiv(),n._div.style.padding="0px",n}var Yg=class{createDiv(e){return this.root=aQ(e,this),th
Line truncated
|
||||
`,await mQ(r),re.newfile?!n&&!t?ve('No build tool for "'+r+'" on this platform; project will not build.'):n?xQ(!0,!0):_t("No skeleton file for "+t+" on this platform; using blank file."):_t('Could not find file "'+r+'"<br><br>Creating new '+(n?t:"blank")+" file."),delete re.newfile,ou()}}function eb(r){if(r=="/")re={repo:"/"};else if(r.indexOf("://")>=0){var e=Qa(r);e&&(re={repo:e.repopath})}else re.platform=ae,re.file=r;Hi()}async function tX(r){var e=Au(S.getToolForFilename(r));try{return await $.get("presets/"+Tt(ae)+"/skeleton."+e,"text")}catch(t){return console.log(t+""),null}}function tb(r){return r.indexOf(" ")>=0?(ve("No spaces in filenames, please."),!1):!0}async function rX(r){var e=Tt(ae),t={},n=[];for(var i of r){var s=S.getToolForFilename("test"+i);t[s]||(t[s]=[],n.push(s)),t[s].push(i)}var o=n.map(d=>$.ajax({url:"presets/"+e+"/skeleton."+Au(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 nX(r){var e=await rX(S.getDefaultExtensions()),t,n;return e.length===0?(t=S.getDefaultExtensions(),n=t.join(" ")):(t=e.reduce((i,s)=>i.concat(s.extensions),[]),n=e.map(i=>i.extensions.join(" ")).join("<br>")),bootbox.prompt({title:"Enter the name of your new main source file.<br><br><span class='dialog-help'>"+n+"</span>",placeholder:"newfile"+t[0],callback:i=>{if(i&&i.trim().length>0){if(!tb(i))return;i.indexOf(".")<0&&(i+=t[0]);var s=i;re.newfile="1",eb(s)}}}),!0}function iX(r){let e=$('<input type="file" multiple accept="*" style="display:none">'),t=e[0];e.change(n=>{sX(t.files)}),e.click()}function sX(r){console.log(r);var e=0;function t(){var n=r[e++];if(!n)console.log("Done uploading",e),e>2?(_t("Files uploaded."),setTimeout(fl,1e3)):(re.file=r[0].name,bootbox.confirm({message:"Open '"+yi.sanitize(re.file)+"' as main project file?",buttons:{confirm:{label:"Open As New Project"},cancel:{label:"Include/Link With Project Later"}},callback:o=>{o?Hi():setTimeout(fl,1e3)}}));else{var i=n.name,s=new FileReader;s.onload=function(o){var a=o.target.result,l=new Uint8Array(a);_i(i,l)||(l=El(l).replace(`\r
|
||||
`,`
|
||||
`)),W.updateFile(i,l),console.log("Uploaded "+i+" "+l.length+" bytes"),t()},s.readAsArrayBuffer(n)}}r&&t()}async function oX(r){var e=window.showDirectoryPicker;e||ve("This browser can't open local files on your computer, yet. Try Chrome.");var t=await e(),n=t.name,i="__localfs__"+n,s={handle:t},o=Hg.createInstance({name:i,version:2});await o.setItem(i,s),re={localfs:n},Hi(!0)}async function aX(r){return new Promise((e,t)=>{bootbox.prompt(yi.sanitize(r),n=>{e(n)})})}async function lX(r){let e={mode:"readwrite"};var t="__localfs__"+r,n=Hg.createInstance({name:t,version:2}),i=await n.getItem(t),s=i.handle;console.log(i,s);var o=await s.queryPermission(e);if(console.log(o),o!=="granted"&&(await aX("Request permissions to access filesystem?"),o=await s.requestPermission(e)),o!=="granted"){ve("Could not get permission to access filesystem.");return}let a={};return{getFileData:async l=>{console.log("getFileData",l);let d=await(await s.getFileHandle(l,{create:!1})).getFile(),h=await(_i(l)?d.arrayBuffer():d.text());return h instanceof ArrayBuffer?new Uint8Array(h):h},setFileData:async(l,c)=>{a[l]=Date.now();let h=await(await s.getFileHandle(l,{create:!0})).createWritable();await h.write(c),await h.close()},onFileSystemUpdate:l=>{if(typeof window.FileSystemObserver=="undefined")return;new window.FileSystemObserver((d,h)=>{for(let u of d)if(u.changedHandle){let f=u.changedHandle.name;if(Date.now()-(a[f]||0)<2e3)continue;l(f)}}).observe(s,{recursive:!0})}}}function at(){return ft(K.mainPath)}function xv(){return ft(W.getActiveID())}function cX(r){var e=W.getActive(),t=W.getActiveID(),n=e&&e.setData&&!e.setText;if(e&&(e.setText||e.setData)){var i="presets/"+Tt(ae)+"/"+t;Io(i,s=>{if(s==null){dt?ve("Can only revert built-in examples. If you want to revert all files, You can pull from the repository."):ve("Can only revert built-in examples.");return}bootbox.confirm("Reset '"+yi.sanitize(t)+"' to default?",o=>{o&&(n?(e.setData(s),K.updateFile(t,s)):e.setText(s))})},n?"arraybuffer":"text")}else ve("Cannot revert the active window. Please choose a text file.")}function dX(r){var e=W.getActive();if(e&&e.getPath){var t=W.getActiveID();bootbox.confirm("Delete '"+yi.sanitize(t)+"'?",n=>{n&&Zr.removeItem(t).then(()=>{re.file==t?(Xn.unsetLastPreset(),Hi()):(fl(),_t("Deleted "+t))})})}else ve("Cannot delete the active window.")}function hX(r){var e=W.getActive();if(e&&e.getPath&&K.getFile(e.getPath())){var t=W.getActiveID();bootbox.prompt({title:"Rename '"+yi.sanitize(t)+"' to?",value:t,callback:n=>{var i=K.getFile(e.getPath());if(n&&n!=t&&i){if(!eb(n))return;Zr.removeItem(t).then(()=>Zr.setItem(n,i)).then(()=>{fl(),alert("Renamed "+t+" to "+n),t==K.mainPath&&Jg(n)})}}})}else ve("Cannot rename the active window.")}function uX(r){let e={},t,n=S.getPresets?S.getPresets():[];for(var i=0;i<n.length;i++){var s=n[i],o=s.chapter?s.chapter+". "+s.name:s.name,a=s.id==K.mainPath;s.category?t=$("<optgroup />").attr("label","Examples: "+s.category).appendTo(r):t||(t=$("<optgroup />").attr("label","Examples").appendTo(r)),t.append($("<option />").val(s.id).text(o).attr("selected",a?"selected":null)),a&&(qh=s),e[s.id]=o}return e}function fX(r){if(sr&&!wo){var e=0,t=Ui();if(t){let i=$("<optgroup />").attr("label","Repositories").appendTo(r);for(let s in t){var n=t[s];n.platform_id&&Tt(n.platform_id)==Tt(ae)&&i.append($("<option />").val(n.url).text(n.url.substring(n.url.indexOf("/"))))}}}}async function OQ(r,e,t,n){let i=await Zr.keys();i||(i=[]);let s;for(var o=0;o<i.length;o++){let a=i[o];if(a.startsWith(t)&&!n[a]){s||(s=$("<optgroup />").attr("label",e).appendTo(r));let l=a.substring(t.length);s.append($("<option />").val(a).text(l).attr("selected",a==K.mainPath?"selected":null))}}}function gQ(r){r.css("visibility","visible");var e=K.mainPath;r.val()!=e&&r.append($("<option />").val(e).text(e).attr("selected","selected"))}async function fl(){var r=$("#preset_select").empty();if(dt)r.append($("<option />").val("/").text("Leave Repository")),$("#repo_name").text(ft(dt)+"/").show(),await OQ(r,dt,"",{}),gQ(r);else{fX(r);var e=uX(r);await OQ(r,"Local Files","",e),gQ(r)}r.off("change").change(function(t){Jg($(this).val().toString())})}function pX(r){var e=$("<p/>");if(r.path!=null){var t=r.line?r.label?`(${r.path} @ ${r.label})`:`(${r.path}:${r.line})`:`(${r.path})`,n=$("<a/>").text(t),i=r.path;i==at()&&(i=K.mainPath),W.isWindow(i)&&n.click(s=>{var o=W.createOrShow(i);o instanceof Ft&&o.navigateToLine(r.line)}),e.append(n),e.append(" ")}return e.append($("<span/>").text(r.msg)),e}function SQ(){$("#error_alert").hide(),Kg=!1}function tb(r,e){var t=$("#error_alert_msg").empty();for(var n of r.slice(0,10))t.append(pX(n));$("#error_alert").show(),Kg=e;var i=r.find(o=>o.path!=null),s;i&&W.isWindow(i.path==at()?K.mainPath:i.path)&&(s=()=>{gX(i)})}function vQ(r,e){if(e!=null){var t={msg:e,line:0};r instanceof wu&&r.$loc&&(t=Object.create(r.$loc),t.msg=e,console.log(t)),tb([t],!0)}}async function mX(r){if("uppercaseOnly"in r&&q1(r.uppercaseOnly),"erro
Line truncated
|
||||
`)),W.updateFile(i,l),console.log("Uploaded "+i+" "+l.length+" bytes"),t()},s.readAsArrayBuffer(n)}}r&&t()}async function oX(r){var e=window.showDirectoryPicker;e||ve("This browser can't open local files on your computer, yet. Try Chrome.");var t=await e(),n=t.name,i="__localfs__"+n,s={handle:t},o=Kg.createInstance({name:i,version:2});await o.setItem(i,s),re={localfs:n},Hi(!0)}async function aX(r){return new Promise((e,t)=>{bootbox.prompt(yi.sanitize(r),n=>{e(n)})})}async function lX(r){let e={mode:"readwrite"};var t="__localfs__"+r,n=Kg.createInstance({name:t,version:2}),i=await n.getItem(t),s=i.handle;console.log(i,s);var o=await s.queryPermission(e);if(console.log(o),o!=="granted"&&(await aX("Request permissions to access filesystem?"),o=await s.requestPermission(e)),o!=="granted"){ve("Could not get permission to access filesystem.");return}let a={};return{getFileData:async l=>{console.log("getFileData",l);let d=await(await s.getFileHandle(l,{create:!1})).getFile(),h=await(_i(l)?d.arrayBuffer():d.text());return h instanceof ArrayBuffer?new Uint8Array(h):h},setFileData:async(l,c)=>{a[l]=Date.now();let h=await(await s.getFileHandle(l,{create:!0})).createWritable();await h.write(c),await h.close()},onFileSystemUpdate:l=>{if(typeof window.FileSystemObserver=="undefined")return;new window.FileSystemObserver((d,h)=>{for(let u of d)if(u.changedHandle){let f=u.changedHandle.name;if(Date.now()-(a[f]||0)<2e3)continue;l(f)}}).observe(s,{recursive:!0})}}}function at(){return ft(K.mainPath)}function xv(){return ft(W.getActiveID())}function cX(r){var e=W.getActive(),t=W.getActiveID(),n=e&&e.setData&&!e.setText;if(e&&(e.setText||e.setData)){var i="presets/"+Tt(ae)+"/"+t;Io(i,s=>{if(s==null){dt?ve("Can only revert built-in examples. If you want to revert all files, You can pull from the repository."):ve("Can only revert built-in examples.");return}bootbox.confirm("Reset '"+yi.sanitize(t)+"' to default?",o=>{o&&(n?(e.setData(s),K.updateFile(t,s)):e.setText(s))})},n?"arraybuffer":"text")}else ve("Cannot revert the active window. Please choose a text file.")}function dX(r){var e=W.getActive();if(e&&e.getPath){var t=W.getActiveID();bootbox.confirm("Delete '"+yi.sanitize(t)+"'?",n=>{n&&Zr.removeItem(t).then(()=>{re.file==t?(Xn.unsetLastPreset(),Hi()):(fl(),_t("Deleted "+t))})})}else ve("Cannot delete the active window.")}function hX(r){var e=W.getActive();if(e&&e.getPath&&K.getFile(e.getPath())){var t=W.getActiveID();bootbox.prompt({title:"Rename '"+yi.sanitize(t)+"' to?",value:t,callback:n=>{var i=K.getFile(e.getPath());if(n&&n!=t&&i){if(!tb(n))return;Zr.removeItem(t).then(()=>Zr.setItem(n,i)).then(()=>{fl(),alert("Renamed "+t+" to "+n),t==K.mainPath&&eb(n)})}}})}else ve("Cannot rename the active window.")}function uX(r){let e={},t,n=S.getPresets?S.getPresets():[];for(var i=0;i<n.length;i++){var s=n[i],o=s.chapter?s.chapter+". "+s.name:s.name,a=s.id==K.mainPath;s.category?t=$("<optgroup />").attr("label","Examples: "+s.category).appendTo(r):t||(t=$("<optgroup />").attr("label","Examples").appendTo(r)),t.append($("<option />").val(s.id).text(o).attr("selected",a?"selected":null)),a&&(qh=s),e[s.id]=o}return e}function fX(r){if(sr&&!wo){var e=0,t=Ui();if(t){let i=$("<optgroup />").attr("label","Repositories").appendTo(r);for(let s in t){var n=t[s];n.platform_id&&Tt(n.platform_id)==Tt(ae)&&i.append($("<option />").val(n.url).text(n.url.substring(n.url.indexOf("/"))))}}}}async function OQ(r,e,t,n){let i=await Zr.keys();i||(i=[]);let s;for(var o=0;o<i.length;o++){let a=i[o];if(a.startsWith(t)&&!n[a]){s||(s=$("<optgroup />").attr("label",e).appendTo(r));let l=a.substring(t.length);s.append($("<option />").val(a).text(l).attr("selected",a==K.mainPath?"selected":null))}}}function gQ(r){r.css("visibility","visible");var e=K.mainPath;r.val()!=e&&r.append($("<option />").val(e).text(e).attr("selected","selected"))}async function fl(){var r=$("#preset_select").empty();if(dt)r.append($("<option />").val("/").text("Leave Repository")),$("#repo_name").text(ft(dt)+"/").show(),await OQ(r,dt,"",{}),gQ(r);else{fX(r);var e=uX(r);await OQ(r,"Local Files","",e),gQ(r)}r.off("change").change(function(t){eb($(this).val().toString())})}function pX(r){var e=$("<p/>");if(r.path!=null){var t=r.line?r.label?`(${r.path} @ ${r.label})`:`(${r.path}:${r.line})`:`(${r.path})`,n=$("<a/>").text(t),i=r.path;i==at()&&(i=K.mainPath),W.isWindow(i)&&n.click(s=>{var o=W.createOrShow(i);o instanceof Ft&&o.navigateToLine(r.line)}),e.append(n),e.append(" ")}return e.append($("<span/>").text(r.msg)),e}function SQ(){$("#error_alert").hide(),Jg=!1}function rb(r,e){var t=$("#error_alert_msg").empty();for(var n of r.slice(0,10))t.append(pX(n));$("#error_alert").show(),Jg=e;var i=r.find(o=>o.path!=null),s;i&&W.isWindow(i.path==at()?K.mainPath:i.path)&&(s=()=>{gX(i)})}function vQ(r,e){if(e!=null){var t={msg:e,line:0};r instanceof Pu&&r.$loc&&(t=Object.create(r.$loc),t.msg=e,console.log(t)),rb([t],!0)}}async function mX(r){if("uppercaseOnly"in r&&q1(r.uppercaseOnly),"erro
Line truncated
|
||||
`+t(i)+`
|
||||
`;K.loadFiles([s]).then(a=>{a&&a.length?ve(i+" already exists; including anyway"):K.updateFile(s,`
|
||||
`),n.insertLinesBefore(o),So()})}}}):ve("Can't insert text in this window -- switch back to main file")}function RX(){var r=at(),e=S.getToolForFilename(r);r.endsWith(".c")||e=="sdcc"||e=="cc65"||e=="cmoc"||e=="smlrc"?tn("Header",".h",t=>'#include "'+t+'"'):e=="dasm"||e=="zmac"?tn("Include",".inc",t=>' include "'+t+'"'):e=="ca65"||e=="sdasz80"||e=="vasm"||e=="armips"?tn("Include",".inc",t=>' .include "'+t+'"'):e=="verilator"?tn("Verilog",".v",t=>'`include "'+t+'"'):e=="wiz"?tn("Include",".wiz",t=>'import "'+t+'";'):e=="ecs"?tn("Include",".ecs",t=>'import "'+t+'"'):e=="acme"?tn("Include",".acme",t=>'!src "'+t+'"'):e=="xa"?tn("Include",".xa",t=>'#include "'+t+'"'):e=="dialog"?tn("Include",".dg",t=>'%% #include "'+t+'"'):ve("Can't add include file to this project type ("+e+")")}function EX(){var r=at(),e=S.getToolForFilename(r);r.endsWith(".c")||e=="sdcc"||e=="cc65"||e=="cmoc"||e=="smlrc"?tn("Linked C (or .s)",".c",t=>'//#link "'+t+'"'):r.endsWith("asm")||r.endsWith(".s")||e=="ca65"||e=="lwasm"?tn("Linked ASM",".inc",t=>';#link "'+t+'"'):ve("Can't add linked file to this project type ("+e+")")}function MX(){if(Ke=new Dl($("#toolbar")[0],null),Ke.grp.prop("id","run_bar"),Ke.add("mod+shift+r","Reset","glyphicon-refresh",XQ).prop("id","dbg_reset"),Ke.add("mod+shift+h","Pause","glyphicon-pause",$Q).prop("id","dbg_pause"),Ke.add("mod+shift+g","Go To Address","",r=>{PQ()||eu()}),Ke.add("mod+shift+g","Resume","glyphicon-play",eu).prop("id","dbg_go"),Ke.add("F8","Pause/Resume","",TQ),Ke.add("F1","Help","",VQ),S.restartAtPC&&Ke.add("mod+shift+a","Restart at Cursor","glyphicon-play-circle",EQ).prop("id","dbg_restartatline"),Ke.newGroup(),Ke.grp.prop("id","debug_bar"),S.runEval&&Ke.add("mod+shift+d","Reset and Debug","glyphicon-fast-backward",DQ).prop("id","dbg_restart"),S.stepBack&&Ke.add("mod+shift+j","Step Backwards","glyphicon-step-backward",ZQ).prop("id","dbg_stepback"),S.step&&Ke.add("mod+shift+l","Single Step","glyphicon-step-forward",_Q).prop("id","dbg_step"),S.stepOver&&Ke.add("mod+shift+k","Step Over","glyphicon-hand-right",CQ).prop("id","dbg_stepover"),S.runUntilReturn&&Ke.add("mod+shift+i","Step Out of Subroutine","glyphicon-hand-up",LQ).prop("id","dbg_stepout"),S.runToVsync&&Ke.add("mod+shift+x","Next Frame/Interrupt","glyphicon-forward",AQ).prop("id","dbg_tovsync"),(S.runEval||S.runToPC)&&!ae.startsWith("verilog")&&Ke.add("mod+shift+y","Run To Line","glyphicon-save",MQ).prop("id","dbg_toline"),Ke.newGroup(),Ke.grp.prop("id","xtra_bar"),Ke.add("mod+shift+f","Search","glyphicon-search",Sg).prop("id","dbg_search"),$(".dropdown-menu").collapse({toggle:!1}),$("#item_new_file").click(nX),$("#item_upload_file").click(iX),$("#item_open_directory").click(oX),$("#item_github_login").click(Sv),$("#item_github_logout").click(vv),$("#item_github_import").click(wv),$("#item_github_publish").click(Pv),$("#item_github_push").click(kv),$("#item_github_pull").click(Qv),$("#item_repo_delete").click(Tv),$("#item_share_file").click(hv),$("#item_reset_file").click(cX),$("#item_rename_file").click(hX),$("#item_delete_file").click(dX),$("#item_download_rom").click(fv),$("#item_download_file").click(pv),$("#item_download_zip").click(Ov),S.getDebugSymbolFile?$("#item_download_sym").click(gv):$("#item_download_sym").hide(),$("#item_download_allzip").click(bv),$("#item_record_video").click(yv),pm()?$("#item_export_cassette").click(uv):$("#item_export_cassette").hide(),S.setFrameRate&&S.getFrameRate&&($("#dbg_slower").click(kX),$("#dbg_faster").click(QX),$("#dbg_slowest").click($X),$("#dbg_fastest").click(TX)),$("#item_addfile_include").click(RX),$("#item_addfile_link").click(EX),$("#item_request_persist").click(()=>xQ(!0,!1)),$("#item_settings").click(rv),IQ(),S.newCodeAnalyzer&&Ke.add(null,"Analyze CPU Timing","glyphicon-time",_X),S.startProbing&&Ke.add(null,"Highlight Executed Lines","glyphicon-fire",AX).prop("id","dbg_tracelines"),S.setRecorder&&S.advance&&XX(),S.showHelp){let{li:r,a:e}=Jh("help__"+ae,hl+" Info");$("#help_menu").append(r),$(e).click(t=>{t.preventDefault(),window.open(S.showHelp(),"_8bws_help")})}ZX();{let{li:r}=Jh("#help","IDE Help");$("#help_menu").prepend(r)}$("#item_tool_versions").click(LX)}function VQ(){if(W){var r=W.getActive()instanceof Ft,e=iQ(W.getActiveID(),r),t="#help/"+e;window.location.hash===t?W.createOrShow(t):window.location.hash=t}}function LX(){let r=u=>String(u==null?"":u).replace(/[&<>"]/g,f=>({"&":"&","<":"<",">":">",'"':"""})[f]),e=(u,f)=>"$"+be(u,4).toUpperCase()+(f!=null?"+$"+be(f,4).toUpperCase():""),t=zr[ae]||zr[Tt(ae)]||zr[Sr(ae)],n=t&&t.arch||"\u2014",i=[];t&&(t.rom_start!=null&&i.push("rom "+e(t.rom_start,t.rom_size)),t.code_start!=null&&i.push("code "+e(t.code_start,t.code_size)),t.data_start!=null&&i.push("data "+e(t.data_start,t.data_size)),t.stack_end!=null&&i.push("stack $"+be(t.stack_end,4).toUpperCase()));let s=new Set([".a"]);for(let u in _s)for(let f of _s[u].extensions||[])s.add(f);let o={},a=[],l=(u,f)=>{u&&(o[u]||(o[u]=[],a.push(u)),f&&o[u].indexOf(f)<0&&o[u].Line truncated
|
||||
`),n.insertLinesBefore(o),So()})}}}):ve("Can't insert text in this window -- switch back to main file")}function RX(){var r=at(),e=S.getToolForFilename(r);r.endsWith(".c")||e=="sdcc"||e=="cc65"||e=="cmoc"||e=="smlrc"?tn("Header",".h",t=>'#include "'+t+'"'):e=="dasm"||e=="zmac"?tn("Include",".inc",t=>' include "'+t+'"'):e=="ca65"||e=="sdasz80"||e=="vasm"||e=="armips"?tn("Include",".inc",t=>' .include "'+t+'"'):e=="verilator"?tn("Verilog",".v",t=>'`include "'+t+'"'):e=="wiz"?tn("Include",".wiz",t=>'import "'+t+'";'):e=="ecs"?tn("Include",".ecs",t=>'import "'+t+'"'):e=="acme"?tn("Include",".acme",t=>'!src "'+t+'"'):e=="xa"?tn("Include",".xa",t=>'#include "'+t+'"'):e=="dialog"?tn("Include",".dg",t=>'%% #include "'+t+'"'):ve("Can't add include file to this project type ("+e+")")}function EX(){var r=at(),e=S.getToolForFilename(r);r.endsWith(".c")||e=="sdcc"||e=="cc65"||e=="cmoc"||e=="smlrc"?tn("Linked C (or .s)",".c",t=>'//#link "'+t+'"'):r.endsWith("asm")||r.endsWith(".s")||e=="ca65"||e=="lwasm"?tn("Linked ASM",".inc",t=>';#link "'+t+'"'):ve("Can't add linked file to this project type ("+e+")")}function MX(){if(Ke=new Dl($("#toolbar")[0],null),Ke.grp.prop("id","run_bar"),Ke.add("mod+shift+r","Reset","glyphicon-refresh",XQ).prop("id","dbg_reset"),Ke.add("mod+shift+h","Pause","glyphicon-pause",$Q).prop("id","dbg_pause"),Ke.add("mod+shift+g","Go To Address","",r=>{PQ()||eu()}),Ke.add("mod+shift+g","Resume","glyphicon-play",eu).prop("id","dbg_go"),Ke.add("F8","Pause/Resume","",TQ),Ke.add("F1","Help","",VQ),S.restartAtPC&&Ke.add("mod+shift+a","Restart at Cursor","glyphicon-play-circle",EQ).prop("id","dbg_restartatline"),Ke.newGroup(),Ke.grp.prop("id","debug_bar"),S.runEval&&Ke.add("mod+shift+d","Reset and Debug","glyphicon-fast-backward",DQ).prop("id","dbg_restart"),S.stepBack&&Ke.add("mod+shift+j","Step Backwards","glyphicon-step-backward",ZQ).prop("id","dbg_stepback"),S.step&&Ke.add("mod+shift+l","Single Step","glyphicon-step-forward",_Q).prop("id","dbg_step"),S.stepOver&&Ke.add("mod+shift+k","Step Over","glyphicon-hand-right",CQ).prop("id","dbg_stepover"),S.runUntilReturn&&Ke.add("mod+shift+i","Step Out of Subroutine","glyphicon-hand-up",LQ).prop("id","dbg_stepout"),S.runToVsync&&Ke.add("mod+shift+x","Next Frame/Interrupt","glyphicon-forward",AQ).prop("id","dbg_tovsync"),(S.runEval||S.runToPC)&&!ae.startsWith("verilog")&&Ke.add("mod+shift+y","Run To Line","glyphicon-save",MQ).prop("id","dbg_toline"),Ke.newGroup(),Ke.grp.prop("id","xtra_bar"),Ke.add("mod+shift+f","Search","glyphicon-search",vg).prop("id","dbg_search"),$(".dropdown-menu").collapse({toggle:!1}),$("#item_new_file").click(nX),$("#item_upload_file").click(iX),$("#item_open_directory").click(oX),$("#item_github_login").click(Sv),$("#item_github_logout").click(vv),$("#item_github_import").click(wv),$("#item_github_publish").click(Pv),$("#item_github_push").click(kv),$("#item_github_pull").click(Qv),$("#item_repo_delete").click(Tv),$("#item_share_file").click(hv),$("#item_reset_file").click(cX),$("#item_rename_file").click(hX),$("#item_delete_file").click(dX),$("#item_download_rom").click(fv),$("#item_download_file").click(pv),$("#item_download_zip").click(Ov),S.getDebugSymbolFile?$("#item_download_sym").click(gv):$("#item_download_sym").hide(),$("#item_download_allzip").click(bv),$("#item_record_video").click(yv),mm()?$("#item_export_cassette").click(uv):$("#item_export_cassette").hide(),S.setFrameRate&&S.getFrameRate&&($("#dbg_slower").click(kX),$("#dbg_faster").click(QX),$("#dbg_slowest").click($X),$("#dbg_fastest").click(TX)),$("#item_addfile_include").click(RX),$("#item_addfile_link").click(EX),$("#item_request_persist").click(()=>xQ(!0,!1)),$("#item_settings").click(rv),IQ(),S.newCodeAnalyzer&&Ke.add(null,"Analyze CPU Timing","glyphicon-time",_X),S.startProbing&&Ke.add(null,"Highlight Executed Lines","glyphicon-fire",AX).prop("id","dbg_tracelines"),S.setRecorder&&S.advance&&XX(),S.showHelp){let{li:r,a:e}=Jh("help__"+ae,hl+" Info");$("#help_menu").append(r),$(e).click(t=>{t.preventDefault(),window.open(S.showHelp(),"_8bws_help")})}ZX();{let{li:r}=Jh("#help","IDE Help");$("#help_menu").prepend(r)}$("#item_tool_versions").click(LX)}function VQ(){if(W){var r=W.getActive()instanceof Ft,e=iQ(W.getActiveID(),r),t="#help/"+e;window.location.hash===t?W.createOrShow(t):window.location.hash=t}}function LX(){let r=u=>String(u==null?"":u).replace(/[&<>"]/g,f=>({"&":"&","<":"<",">":">",'"':"""})[f]),e=(u,f)=>"$"+be(u,4).toUpperCase()+(f!=null?"+$"+be(f,4).toUpperCase():""),t=zr[ae]||zr[Tt(ae)]||zr[Sr(ae)],n=t&&t.arch||"\u2014",i=[];t&&(t.rom_start!=null&&i.push("rom "+e(t.rom_start,t.rom_size)),t.code_start!=null&&i.push("code "+e(t.code_start,t.code_size)),t.data_start!=null&&i.push("data "+e(t.data_start,t.data_size)),t.stack_end!=null&&i.push("stack $"+be(t.stack_end,4).toUpperCase()));let s=new Set([".a"]);for(let u in _s)for(let f of _s[u].extensions||[])s.add(f);let o={},a=[],l=(u,f)=>{u&&(o[u]||(o[u]=[],a.push(u)),f&&o[u].indexOf(f)<0&&o[u].Line truncated
|
||||
<table class="help">
|
||||
<tr><th>Architecture</th><td>${r(n)}</td></tr>
|
||||
<tr><th>Memory</th><td>${i.length?i.join(" \xB7 "):"\u2014"}</td></tr>
|
||||
@@ -3587,7 +3587,7 @@ containing embeds is effectively sandboxed from the others.</p>
|
||||
<tr><th>Tool</th><th>Kind</th><th>Version</th><th>Extensions</th></tr>
|
||||
${h}
|
||||
</table>
|
||||
</div>`})}function ZX(){let r=S.getToolForFilename(at());if(!r)return;let e=Dt(r);if(!e)return;let t=e.version?" ("+e.version+")":"",n=(s,o,a)=>{let{li:l,a:c}=Jh(s,o);$("#help_menu").append(l),$(c).click(d=>{d.preventDefault(),window.open(a,"_8bws_help")})};e.helpURL&&n("help__"+r,e.name+" Help"+t,e.helpURL);let i=wb(r,ae);i&&n("help__"+r+"__"+ae,e.name+" Help for "+hl,i)}function XX(){var r=$("#replayslider"),e=$("#clockslider"),t=$("#replay_frame"),n=$("#replay_clock");S.advanceFrameClock||$("#clockdiv").hide();var i=()=>{t.text(Nt.lastSeekFrame+""),n.text(Nt.lastSeekStep+"")},s=l=>{Zn();var c=parseInt(r.val().toString()),d=parseInt(e.val().toString());Nt.loadFrame(c,d)>=0&&(e.attr("min",0),e.attr("max",Nt.lastStepCount),i(),Hh(S.saveState()))},o=l=>{Zn(),Nt.loadFrame(l)>=0&&(r.val(l),i(),Hh(S.saveState()))},a=l=>{Zn();var c=parseInt(r.val().toString());Nt.loadFrame(c,l)>=0&&(e.val(l),i(),Hh(S.saveState()))};Nt.callbackStateChanged=()=>{r.attr("min",0),r.attr("max",Nt.numFrames()),r.val(Nt.currentFrame()),e.val(Nt.currentStep()),i(),pl(S.saveState())},r.on("input",s),e.on("input",s),$("#replay_min").click(()=>{o(1)}),$("#replay_max").click(()=>{o(Nt.numFrames())}),$("#replay_back").click(()=>{o(parseInt(r.val().toString())-1)}),$("#replay_fwd").click(()=>{o(parseInt(r.val().toString())+1)}),$("#clock_back").click(()=>{a(parseInt(e.val().toString())-1)}),$("#clock_fwd").click(()=>{a(parseInt(e.val().toString())+1)}),$("#replay_bar").show(),Ke.add("mod+shift+e","Start/Stop Replay Recording","glyphicon-record",CX).prop("id","dbg_record")}async function DX(){if(Xn.shouldCompleteTour()){await vr("lib/bootstrap-tourist.js");var r=ae.startsWith("vcs"),e=[{element:"#platformsMenuButton",placement:"right",title:"Platform Selector",content:`You're currently on the "<b>`+ae+'</b>" platform. You can choose a different one from the menu.'},{element:"#preset_select",title:"Project Selector",content:"You can choose different code examples, create your own files, or import projects from GitHub."},{element:"#workspace",title:"Code Editor",content:r?"Type your 6502 assembly code into the editor, and it'll be assembled in real-time.":"Type your source code into the editor, and it'll be compiled in real-time."},{element:"#emulator",placement:"left",title:"Emulator",content:"We'll load your compiled code into the emulator whenever you make changes."},{element:"#debug_bar",placement:"bottom",title:"Debug Tools",content:"Use these buttons to set breakpoints, single step through code, pause/resume, and use debugging tools."},{element:"#dropdownMenuButton",title:"Main Menu",content:"Click the menu to create new files, download your code, or share your work with others."},{element:"#sidebar",title:"Sidebar",content:"Pull right to expose the sidebar. It lets you switch between source files, view assembly listings, and use other tools like Disassembler, Memory Browser, and Asset Editor."}];$s()&&(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!"})),wo&&(e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Developer Analytics",content:"BTW, we send stack traces to sentry.io when exceptions are thrown. Hope that's ok."}),e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Welcome to 8bitworkshop Desktop!",content:'The directory "~/8bitworkshop" contains all of your file edits and built ROM images. You can create new projects under the platform directories (e.g. "c64/myproject")'}));var t=new Tour({autoscroll:!1,steps:e,onEnd:()=>{Xn.completedTour()}});setTimeout(()=>{t.start()},2500)}}function tu(r){var e=(r.message||r.error||r)+"";if(e.indexOf("QuotaExceededError")>=0)UZ();else{var t=r.error||r.reason;t!=null&&t instanceof wu?IX(t):$s()&&_b(e,t,{platform:ae,window:W?W.getActiveID():"",errors:W.lasterrors||[]})}}function IX(r){console.log("haltEmulation"),Zn(),eD(r)}function zX(){window.addEventListener("error",tu),window.addEventListener("unhandledrejection",tu)}function YQ(){window.removeEventListener("error",tu),window.removeEventListener("unhandledrejection",tu)}function Hi(r,e){e&&(re=e),YQ(),r?window.location.replace("?"+$.param(re)):window.location.href="?"+$.param(re)}function su(){ae&&(re.platform=ae),delete re[""],history.replaceState({},"","?"+$.param(re)+window.location.hash)}function BQ(r){if(!r||r==="#")return null;var e=decodeURIComponent(r.substring(1));return e.startsWith("asseteditor/")?"#asseteditor":e.startsWith("headerview/")?(qa(e.substring(11)),"#"+e):W.isWindow("#"+e)?"#"+e:W.isWindow(e)?e:null}function WX(){function r(){let e=window.location.hash,t=e&&e!=="#"?BQ(e):null;if(t)t!==W.getActiveID()&&W.createOrShow(t);else{Line truncated
|
||||
</div>`})}function ZX(){let r=S.getToolForFilename(at());if(!r)return;let e=Dt(r);if(!e)return;let t=e.version?" ("+e.version+")":"",n=(s,o,a)=>{let{li:l,a:c}=Jh(s,o);$("#help_menu").append(l),$(c).click(d=>{d.preventDefault(),window.open(a,"_8bws_help")})};e.helpURL&&n("help__"+r,e.name+" Help"+t,e.helpURL);let i=wb(r,ae);i&&n("help__"+r+"__"+ae,e.name+" Help for "+hl,i)}function XX(){var r=$("#replayslider"),e=$("#clockslider"),t=$("#replay_frame"),n=$("#replay_clock");S.advanceFrameClock||$("#clockdiv").hide();var i=()=>{t.text(Nt.lastSeekFrame+""),n.text(Nt.lastSeekStep+"")},s=l=>{Zn();var c=parseInt(r.val().toString()),d=parseInt(e.val().toString());Nt.loadFrame(c,d)>=0&&(e.attr("min",0),e.attr("max",Nt.lastStepCount),i(),Hh(S.saveState()))},o=l=>{Zn(),Nt.loadFrame(l)>=0&&(r.val(l),i(),Hh(S.saveState()))},a=l=>{Zn();var c=parseInt(r.val().toString());Nt.loadFrame(c,l)>=0&&(e.val(l),i(),Hh(S.saveState()))};Nt.callbackStateChanged=()=>{r.attr("min",0),r.attr("max",Nt.numFrames()),r.val(Nt.currentFrame()),e.val(Nt.currentStep()),i(),pl(S.saveState())},r.on("input",s),e.on("input",s),$("#replay_min").click(()=>{o(1)}),$("#replay_max").click(()=>{o(Nt.numFrames())}),$("#replay_back").click(()=>{o(parseInt(r.val().toString())-1)}),$("#replay_fwd").click(()=>{o(parseInt(r.val().toString())+1)}),$("#clock_back").click(()=>{a(parseInt(e.val().toString())-1)}),$("#clock_fwd").click(()=>{a(parseInt(e.val().toString())+1)}),$("#replay_bar").show(),Ke.add("mod+shift+e","Start/Stop Replay Recording","glyphicon-record",CX).prop("id","dbg_record")}async function DX(){if(Xn.shouldCompleteTour()){await vr("lib/bootstrap-tourist.js");var r=ae.startsWith("vcs"),e=[{element:"#platformsMenuButton",placement:"right",title:"Platform Selector",content:`You're currently on the "<b>`+ae+'</b>" platform. You can choose a different one from the menu.'},{element:"#preset_select",title:"Project Selector",content:"You can choose different code examples, create your own files, or import projects from GitHub."},{element:"#workspace",title:"Code Editor",content:r?"Type your 6502 assembly code into the editor, and it'll be assembled in real-time.":"Type your source code into the editor, and it'll be compiled in real-time."},{element:"#emulator",placement:"left",title:"Emulator",content:"We'll load your compiled code into the emulator whenever you make changes."},{element:"#debug_bar",placement:"bottom",title:"Debug Tools",content:"Use these buttons to set breakpoints, single step through code, pause/resume, and use debugging tools."},{element:"#dropdownMenuButton",title:"Main Menu",content:"Click the menu to create new files, download your code, or share your work with others."},{element:"#sidebar",title:"Sidebar",content:"Pull right to expose the sidebar. It lets you switch between source files, view assembly listings, and use other tools like Disassembler, Memory Browser, and Asset Editor."}];$s()&&(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!"})),wo&&(e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Developer Analytics",content:"BTW, we send stack traces to sentry.io when exceptions are thrown. Hope that's ok."}),e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Welcome to 8bitworkshop Desktop!",content:'The directory "~/8bitworkshop" contains all of your file edits and built ROM images. You can create new projects under the platform directories (e.g. "c64/myproject")'}));var t=new Tour({autoscroll:!1,steps:e,onEnd:()=>{Xn.completedTour()}});setTimeout(()=>{t.start()},2500)}}function tu(r){var e=(r.message||r.error||r)+"";if(e.indexOf("QuotaExceededError")>=0)U5();else{var t=r.error||r.reason;t!=null&&t instanceof Pu?IX(t):$s()&&_b(e,t,{platform:ae,window:W?W.getActiveID():"",errors:W.lasterrors||[]})}}function IX(r){console.log("haltEmulation"),Zn(),eD(r)}function zX(){window.addEventListener("error",tu),window.addEventListener("unhandledrejection",tu)}function YQ(){window.removeEventListener("error",tu),window.removeEventListener("unhandledrejection",tu)}function Hi(r,e){e&&(re=e),YQ(),r?window.location.replace("?"+$.param(re)):window.location.href="?"+$.param(re)}function ou(){ae&&(re.platform=ae),delete re[""],history.replaceState({},"","?"+$.param(re)+window.location.hash)}function BQ(r){if(!r||r==="#")return null;var e=decodeURIComponent(r.substring(1));return e.startsWith("asseteditor/")?"#asseteditor":e.startsWith("headerview/")?(qa(e.substring(11)),"#"+e):W.isWindow("#"+e)?"#"+e:W.isWindow(e)?e:null}function WX(){function r(){let e=window.location.hash,t=e&&e!=="#"?BQ(e):null;if(t)t!==W.getActiveID()&&W.createOrShow(t);else{Line truncated
|
||||
/*! Bundled license information:
|
||||
|
||||
localforage/dist/localforage.js:
|
||||
@@ -3601,4 +3601,4 @@ localforage/dist/localforage.js:
|
||||
dompurify/dist/purify.cjs.js:
|
||||
(*! @license DOMPurify 3.4.15 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.15/LICENSE *)
|
||||
*/
|
||||
//# sourceMappingURL=chunk-EX34LRSY.js.map
|
||||
//# sourceMappingURL=chunk-4H5H6MGY.js.map
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../node_modules/localforage/dist/localforage.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/toolmeta.ts", "../src/worker/platforms.ts", "../src/ide/errorreport.ts", "../src/ide/dialogs.ts", "../node_modules/@marijn/find-cluster-break/src/index.js", "../node_modules/@codemirror/state/dist/index.js", "../node_modules/style-mod/src/style-mod.js", "../node_modules/w3c-keyname/index.js", "../node_modules/crelt/index.js", "../node_modules/@codemirror/view/dist/index.js", "../node_modules/@lezer/common/dist/index.js", "../node_modules/@lezer/highlight/dist/index.js", "../node_modules/@codemirror/language/dist/index.js", "../node_modules/@codemirror/autocomplete/dist/index.js", "../src/ide/views/debug.ts", "../node_modules/@codemirror/commands/dist/index.js", "../src/ide/views/tabs.ts", "../src/ide/settings.ts", "../src/ide/storage.ts", "../src/ide/project.ts", "../src/common/workertypes.ts", "../src/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/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/ide/breakcond.ts", "../src/ide/breakpoints.ts", "../src/ide/views/assetdecorations.ts", "../src/ide/views/includedecorations.ts", "../src/ide/views/baseviews.ts", "../src/ide/views/filters.ts", "../src/ide/views/gutter.ts", "../src/ide/views/visuals.ts", "../src/ide/views/editors.ts", "../src/common/vtextscroller.ts", "../src/ide/views/debugviews.ts", "../src/ide/search/debuggerhit.ts", "../src/ide/search/searchview.ts", "../src/ide/pixeleditor.ts", "../src/ide/views/asseteditor.ts", "../src/docs/index.md", "../src/docs/editor.md", "../src/docs/disasm.md", "../src/docs/memory.md", "../src/docs/memmap.md", "../src/docs/vram.md", "../src/docs/memprobe.md", "../src/docs/crtprobe.md", "../src/docs/probelog.md", "../src/docs/scanlineio.md", "../src/docs/symbols.md", "../src/docs/callstack.md", "../src/docs/debugtree.md", "../src/docs/breakpoints.md", "../src/docs/asseteditor.md", "../src/docs/managing-files.md", "../src/docs/build-directives.md", "../src/docs/toolchains.md", "../src/docs/asset-headers.md", "../src/docs/embedding-ide.md", "../src/ide/views/helpview.ts", "../src/ide/views/treeviews.ts", "../src/ide/windows.ts", "../src/ide/layout.ts", "../src/ide/search/listinglocation.ts"],
|
||||
"sourcesContent": ["/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callLine truncated
|
||||
"mappings": "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 truncated
|
||||
"names": ["require_localforage", "__commonJSMin", "exports", "module", "f", "g", "define", "e", "t", "n", "r", "s", "o", "u", "a", "__require", "i", "l", "_dereq_", "global", "Mutation", "scheduleDrain", "called", "observer", "nextTick", "element", "channel", "scriptEl", "draining", "queue", "oldQueue", "len", "immediate", "task", "INTERNAL", "handlers", "REJECTED", "FULFILLED", "PENDING", "Promise", "resolver", "safelyResolveThenable", "onRejected", "onFulfilled", "promise", "unwrap", "QueueItem", "value", "func", "returnValue", "self", "result", "tryCatch", "getThen", "thenable", "error", "obj", "then", "onError", "onSuccess", "tryToUnwrap", "out", "resolve", "reject", "reason", "all", "iterable", "values", "resolved", "allResolver", "resolveFromAll", "outValue", "race", "response", "_typeof", "_classCallCheck", "instance", "Constructor", "getIDB", "idb", "isIndexedDBValid", "isSafari", "hasFetch", "createBlob", "parts", "properties", "Builder", "builder", "Promise$1", "executeCallback", "callback", "executeTwoCallbacks", "errorCallback", "normalizeKey", "key", "getCallback", "DETECT_BLOB_SUPPORT_STORE", "supportsBlobs", "dbContexts", "toString", "READ_ONLY", "READ_WRITE", "_binStringToArrayBuffer", "bin", "length", "buf", "arr", "_checkBlobSupportWithoutCaching", "txn", "blob", "matchedChrome", "matchedEdge", "_checkBlobSupport", "_deferReadiness", "dbInfo", "dbContext", "deferredOperation", "_advanceReadiness", "_rejectReadiness", "err", "_getConnection", "upgradeNeeded", "createDbContext", "dbArgs", "openreq", "db", "ex", "_getOriginalConnection", "_getUpgradedConnection", "_isUpgradeNeeded", "defaultVersion", "isNewStore", "isDowngrade", "isUpgrade", "incVersion", "_encodeBlob", "reader", "base64", "_decodeBlob", "encodedBlob", "arrayBuff", "_isEncodedBlob", "_fullyReady", "_tryReconnect", "forages", "forage", "createTransaction", "mode", "retries", "tx", "_initStorage", "options", "initPromises", "ignoreErrors", "j", "k", "getItem", "transaction", "store", "req", "iterate", "iterator", "iterationNumber", "cursor", "setItem", "blobSupport", "removeItem", "clear", "advanced", "keys", "dropInstance", "currentConfig", "isCurrentDb", "dbPromise", "newVersion", "dropObjectPromise", "_forage2", "dropDBPromise", "_forage", "asyncStorage", "isWebSQLValid", "BASE_CHARS", "BLOB_TYPE_PREFIX", "BLOB_TYPE_PREFIX_REGEX", "SERIALIZED_MARKER", "SERIALIZED_MARKER_LENGTH", "TYPE_ARRAYBUFFER", "TYPE_BLOB", "TYPE_INT8ARRAY", "TYPE_UINT8ARRAY", "TYPE_UINT8CLAMPEDARRAY", "TYPE_INT16ARRAY", "TYPE_INT32ARRAY", "TYPE_UINT16ARRAY", "TYPE_UINT32ARRAY", "TYPE_FLOAT32ARRAY", "TYPE_FLOAT64ARRAY", "TYPE_SERIALIZED_MARKER_LENGTH", "toString$1", "stringToBuffer", "serializedString", "bufferLength", "p", "encoded1", "encoded2", "encoded3", "encoded4", "buffer", "bytes", "bufferToString", "base64String", "serialize", "valueType", "marker", "fileReader", "str", "deserialize", "type", "blobType", "matcher", "localforageSerializer", "createDbTable", "_initStorage$1", "dbInfoPromise", "tryExecuteSql", "sqlStatement", "args", "results", "getItem$1", "iterate$1", "rows", "item", "_setItem", "retriesLeft", "originalValue", "sqlError", "setItem$1", "removeItem$1", "clear$1", "length$1", "key$1", "keys$1", "getAllStoreNames", "storeNames", "dropInstance$1", "operationInfo", "dropTable", "storeName", "operations", "webSQLStorage", "isLocalStorageValid", "_getKeyPrefix", "defaultConfig", "keyPrefix", "checkIfLocalStorageThrows", "localStorageTestKey", "_isLocalStorageUsable", "_initStorage$2", "clear$2", "getItem$2", "iterate$2", "keyPrefixLength", "key$2", "keys$2", "itemKey", "length$2", "removeItem$2", "setItem$2", "dropInstance$2", "localStorageWrapper", "sameValue", "x", "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", "entries", "Object", "setPrototypeOf", "isFrozen", "getPrototypeOf", "getOwnPropertyDescriptor", "freeze", "seal", "create", "_ref", "Reflect", "apply", "construct", "x", "func", "thisArg", "_len", "arguments", "length", "args", "Array", "_key", "Func", "_len2", "_key2", "arrayForEach", "unapply", "prototype", "forEach", "arrayLastIndexOf", "lastIndexOf", "arrayPop", "pop", "arrayPush", "push", "arraySplice", "splice", "arrayIsArray", "isArray", "stringToLowerCase", "String", "toLowerCaLine truncated
|
||||
"sourcesContent": ["/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callLine truncated
|
||||
"mappings": "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 truncated
|
||||
"names": ["require_localforage", "__commonJSMin", "exports", "module", "f", "g", "define", "e", "t", "n", "r", "s", "o", "u", "a", "__require", "i", "l", "_dereq_", "global", "Mutation", "scheduleDrain", "called", "observer", "nextTick", "element", "channel", "scriptEl", "draining", "queue", "oldQueue", "len", "immediate", "task", "INTERNAL", "handlers", "REJECTED", "FULFILLED", "PENDING", "Promise", "resolver", "safelyResolveThenable", "onRejected", "onFulfilled", "promise", "unwrap", "QueueItem", "value", "func", "returnValue", "self", "result", "tryCatch", "getThen", "thenable", "error", "obj", "then", "onError", "onSuccess", "tryToUnwrap", "out", "resolve", "reject", "reason", "all", "iterable", "values", "resolved", "allResolver", "resolveFromAll", "outValue", "race", "response", "_typeof", "_classCallCheck", "instance", "Constructor", "getIDB", "idb", "isIndexedDBValid", "isSafari", "hasFetch", "createBlob", "parts", "properties", "Builder", "builder", "Promise$1", "executeCallback", "callback", "executeTwoCallbacks", "errorCallback", "normalizeKey", "key", "getCallback", "DETECT_BLOB_SUPPORT_STORE", "supportsBlobs", "dbContexts", "toString", "READ_ONLY", "READ_WRITE", "_binStringToArrayBuffer", "bin", "length", "buf", "arr", "_checkBlobSupportWithoutCaching", "txn", "blob", "matchedChrome", "matchedEdge", "_checkBlobSupport", "_deferReadiness", "dbInfo", "dbContext", "deferredOperation", "_advanceReadiness", "_rejectReadiness", "err", "_getConnection", "upgradeNeeded", "createDbContext", "dbArgs", "openreq", "db", "ex", "_getOriginalConnection", "_getUpgradedConnection", "_isUpgradeNeeded", "defaultVersion", "isNewStore", "isDowngrade", "isUpgrade", "incVersion", "_encodeBlob", "reader", "base64", "_decodeBlob", "encodedBlob", "arrayBuff", "_isEncodedBlob", "_fullyReady", "_tryReconnect", "forages", "forage", "createTransaction", "mode", "retries", "tx", "_initStorage", "options", "initPromises", "ignoreErrors", "j", "k", "getItem", "transaction", "store", "req", "iterate", "iterator", "iterationNumber", "cursor", "setItem", "blobSupport", "removeItem", "clear", "advanced", "keys", "dropInstance", "currentConfig", "isCurrentDb", "dbPromise", "newVersion", "dropObjectPromise", "_forage2", "dropDBPromise", "_forage", "asyncStorage", "isWebSQLValid", "BASE_CHARS", "BLOB_TYPE_PREFIX", "BLOB_TYPE_PREFIX_REGEX", "SERIALIZED_MARKER", "SERIALIZED_MARKER_LENGTH", "TYPE_ARRAYBUFFER", "TYPE_BLOB", "TYPE_INT8ARRAY", "TYPE_UINT8ARRAY", "TYPE_UINT8CLAMPEDARRAY", "TYPE_INT16ARRAY", "TYPE_INT32ARRAY", "TYPE_UINT16ARRAY", "TYPE_UINT32ARRAY", "TYPE_FLOAT32ARRAY", "TYPE_FLOAT64ARRAY", "TYPE_SERIALIZED_MARKER_LENGTH", "toString$1", "stringToBuffer", "serializedString", "bufferLength", "p", "encoded1", "encoded2", "encoded3", "encoded4", "buffer", "bytes", "bufferToString", "base64String", "serialize", "valueType", "marker", "fileReader", "str", "deserialize", "type", "blobType", "matcher", "localforageSerializer", "createDbTable", "_initStorage$1", "dbInfoPromise", "tryExecuteSql", "sqlStatement", "args", "results", "getItem$1", "iterate$1", "rows", "item", "_setItem", "retriesLeft", "originalValue", "sqlError", "setItem$1", "removeItem$1", "clear$1", "length$1", "key$1", "keys$1", "getAllStoreNames", "storeNames", "dropInstance$1", "operationInfo", "dropTable", "storeName", "operations", "webSQLStorage", "isLocalStorageValid", "_getKeyPrefix", "defaultConfig", "keyPrefix", "checkIfLocalStorageThrows", "localStorageTestKey", "_isLocalStorageUsable", "_initStorage$2", "clear$2", "getItem$2", "iterate$2", "keyPrefixLength", "key$2", "keys$2", "itemKey", "length$2", "removeItem$2", "setItem$2", "dropInstance$2", "localStorageWrapper", "sameValue", "x", "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", "entries", "Object", "setPrototypeOf", "isFrozen", "getPrototypeOf", "getOwnPropertyDescriptor", "freeze", "seal", "create", "_ref", "Reflect", "apply", "construct", "x", "func", "thisArg", "_len", "arguments", "length", "args", "Array", "_key", "Func", "_len2", "_key2", "arrayForEach", "unapply", "prototype", "forEach", "arrayLastIndexOf", "lastIndexOf", "arrayPop", "pop", "arrayPush", "push", "arraySplice", "splice", "arrayIsArray", "isArray", "stringToLowerCase", "String", "toLowerCaLine truncated
|
||||
}
|
||||
@@ -1,2 +1,2 @@
|
||||
import{M as b,N as w}from"./chunk-TYDI7JZQ.js";import{d as E}from"./chunk-VSC4MAII.js";var y=E((d,v)=>{(function(l,e){typeof define=="function"&&define.amd?define([],e):typeof d!="undefined"?e():(e(),l.FileSaver={})})(d,function(){"use strict";function l(t,r){return typeof r=="undefined"?r={autoBom:!1}:typeof r!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),r={autoBom:!r}),r.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(t.type)?new Blob(["\uFEFF",t],{type:t.type}):t}function e(t,r,c){var a=new XMLHttpRequest;a.open("GET",t),a.responseType="blob",a.onload=function(){h(a.response,r,c)},a.onerror=function(){console.error("could not download file")},a.send()}function o(t){var r=new XMLHttpRequest;r.open("HEAD",t,!1);try{r.send()}catch(c){}return 200<=r.status&&299>=r.status}function i(t){try{t.dispatchEvent(new MouseEvent("click"))}catch(c){var r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(r)}}var n=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof global=="object"&&global.global===global?global:void 0,u=n.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),h=n.saveAs||(typeof window!="object"||window!==n?function(){}:"download"in HTMLAnchorElement.prototype&&!u?function(t,r,c){var a=n.URL||n.webkitURL,s=document.createElement("a");r=r||t.name||"download",s.download=r,s.rel="noopener",typeof t=="string"?(s.href=t,s.origin===location.origin?i(s):o(s.href)?e(t,r,c):i(s,s.target="_blank")):(s.href=a.createObjectURL(t),setTimeout(function(){a.revokeObjectURL(s.href)},4e4),setTimeout(function(){i(s)},0))}:"msSaveOrOpenBlob"in navigator?function(t,r,c){if(r=r||t.name||"download",typeof t!="string")navigator.msSaveOrOpenBlob(l(t,c),r);else if(o(t))e(t,r,c);else{var a=document.createElement("a");a.href=t,a.target="_blank",setTimeout(function(){i(a)})}}:function(t,r,c,a){if(a=a||open("","_blank"),a&&(a.document.title=a.document.body.innerText="downloading..."),typeof t=="string")return e(t,r,c);var s=t.type==="application/octet-stream",C=/constructor/i.test(n.HTMLElement)||n.safari,S=/CriOS\/[\d]+/.test(navigator.userAgent);if((S||s&&C||u)&&typeof FileReader!="undefined"){var p=new FileReader;p.onloadend=function(){var m=p.result;m=S?m:m.replace(/^data:[^;]*;/,"data:attachment/file;"),a?a.location.href=m:location=m,a=null},p.readAsDataURL(t)}else{var k=n.URL||n.webkitURL,f=k.createObjectURL(t);a?a.location=f:location.href=f,a=null,setTimeout(function(){k.revokeObjectURL(f)},4e4)}});n.saveAs=h.saveAs=h,typeof v!="undefined"&&(v.exports=h)})});var g=class{constructor(e){this.checkpointInterval=10;this.maxCheckpoints=300;this.reset(),this.platform=e}reset(){this.checkpoints=[],this.framerecs=[],this.frameCount=0,this.lastSeekFrame=0,this.lastSeekStep=0,this.lastStepCount=0,this.callbackStateChanged&&this.callbackStateChanged()}frameRequested(){var e={controls:this.platform.saveControlsState(),seed:b()},o=!1;return this.lastSeekFrame<this.frameCount?this.loadControls(this.lastSeekFrame):(this.platform.saveControlsState&&this.framerecs.push(e),o=this.frameCount++%this.checkpointInterval==0),this.lastSeekFrame++,this.lastSeekStep=0,this.callbackStateChanged&&this.callbackStateChanged(),o}numFrames(){return this.frameCount}currentFrame(){return this.lastSeekFrame}currentStep(){return this.lastSeekStep}recordFrame(e){this.checkpoints.push(e),this.callbackNewCheckpoint&&this.callbackNewCheckpoint(e),this.checkpoints.length>this.maxCheckpoints&&(this.checkpoints.shift(),this.framerecs=this.framerecs.slice(this.checkpointInterval),this.lastSeekFrame-=this.checkpointInterval,this.frameCount-=this.checkpointInterval,this.callbackStateChanged&&this.callbackStateChanged())}getStateAtOrBefore(e){if(e<=0&&this.checkpoints.length>0)return{frame:0,state:this.checkpoints[0]};var o=Math.floor(e/this.checkpointInterval),i=o<this.checkpoints.length?o:this.checkpoints.length-1,n=i*this.checkpointInterval;return{frame:n,state:this.checkpoints[i]}}loadFrame(e,o){if(e|=0,o|=0,e==this.lastSeekFrame&&o==this.lastSeekStep)return e;let{frame:i,state:n}=this.getStateAtOrBefore(e-1);if(n){var u=0;for(this.platform.pause(),this.platform.loadState(n);i<e;)i<this.framerecs.length&&this.loadControls(i),i++,u=this.platform.advance(i<e);return i==0&&(u=this.platform.advance(!0),this.platform.loadState(n)),o>0&&this.platform.advanceFrameClock&&(o=this.platform.advanceFrameClock(null,o)),this.lastSeekFrame=e,this.lastSeekStep=o,this.lastStepCount=u,e}else return-1}loadControls(e){this.platform.loadControlsState&&this.platform.loadControlsState(this.framerecs[e].controls),w(this.framerecs[e].seed)}getLastCheckpoint(){return this.checkpoints.length&&this.checkpoints[this.checkpoints.length-1]}};function R(l){switch(l){case"apple2":return import("./apple2-SCHHYG3D.js");case"arm32"Line truncated
|
||||
//# sourceMappingURL=chunk-PEELNZF2.js.map
|
||||
import{M as b,N as w}from"./chunk-TYDI7JZQ.js";import{d as E}from"./chunk-VSC4MAII.js";var y=E((d,v)=>{(function(l,e){typeof define=="function"&&define.amd?define([],e):typeof d!="undefined"?e():(e(),l.FileSaver={})})(d,function(){"use strict";function l(t,r){return typeof r=="undefined"?r={autoBom:!1}:typeof r!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),r={autoBom:!r}),r.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(t.type)?new Blob(["\uFEFF",t],{type:t.type}):t}function e(t,r,c){var a=new XMLHttpRequest;a.open("GET",t),a.responseType="blob",a.onload=function(){h(a.response,r,c)},a.onerror=function(){console.error("could not download file")},a.send()}function o(t){var r=new XMLHttpRequest;r.open("HEAD",t,!1);try{r.send()}catch(c){}return 200<=r.status&&299>=r.status}function i(t){try{t.dispatchEvent(new MouseEvent("click"))}catch(c){var r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(r)}}var n=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof global=="object"&&global.global===global?global:void 0,u=n.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),h=n.saveAs||(typeof window!="object"||window!==n?function(){}:"download"in HTMLAnchorElement.prototype&&!u?function(t,r,c){var a=n.URL||n.webkitURL,s=document.createElement("a");r=r||t.name||"download",s.download=r,s.rel="noopener",typeof t=="string"?(s.href=t,s.origin===location.origin?i(s):o(s.href)?e(t,r,c):i(s,s.target="_blank")):(s.href=a.createObjectURL(t),setTimeout(function(){a.revokeObjectURL(s.href)},4e4),setTimeout(function(){i(s)},0))}:"msSaveOrOpenBlob"in navigator?function(t,r,c){if(r=r||t.name||"download",typeof t!="string")navigator.msSaveOrOpenBlob(l(t,c),r);else if(o(t))e(t,r,c);else{var a=document.createElement("a");a.href=t,a.target="_blank",setTimeout(function(){i(a)})}}:function(t,r,c,a){if(a=a||open("","_blank"),a&&(a.document.title=a.document.body.innerText="downloading..."),typeof t=="string")return e(t,r,c);var s=t.type==="application/octet-stream",C=/constructor/i.test(n.HTMLElement)||n.safari,S=/CriOS\/[\d]+/.test(navigator.userAgent);if((S||s&&C||u)&&typeof FileReader!="undefined"){var p=new FileReader;p.onloadend=function(){var m=p.result;m=S?m:m.replace(/^data:[^;]*;/,"data:attachment/file;"),a?a.location.href=m:location=m,a=null},p.readAsDataURL(t)}else{var k=n.URL||n.webkitURL,f=k.createObjectURL(t);a?a.location=f:location.href=f,a=null,setTimeout(function(){k.revokeObjectURL(f)},4e4)}});n.saveAs=h.saveAs=h,typeof v!="undefined"&&(v.exports=h)})});var g=class{constructor(e){this.checkpointInterval=10;this.maxCheckpoints=300;this.reset(),this.platform=e}reset(){this.checkpoints=[],this.framerecs=[],this.frameCount=0,this.lastSeekFrame=0,this.lastSeekStep=0,this.lastStepCount=0,this.callbackStateChanged&&this.callbackStateChanged()}frameRequested(){var e={controls:this.platform.saveControlsState(),seed:b()},o=!1;return this.lastSeekFrame<this.frameCount?this.loadControls(this.lastSeekFrame):(this.platform.saveControlsState&&this.framerecs.push(e),o=this.frameCount++%this.checkpointInterval==0),this.lastSeekFrame++,this.lastSeekStep=0,this.callbackStateChanged&&this.callbackStateChanged(),o}numFrames(){return this.frameCount}currentFrame(){return this.lastSeekFrame}currentStep(){return this.lastSeekStep}recordFrame(e){this.checkpoints.push(e),this.callbackNewCheckpoint&&this.callbackNewCheckpoint(e),this.checkpoints.length>this.maxCheckpoints&&(this.checkpoints.shift(),this.framerecs=this.framerecs.slice(this.checkpointInterval),this.lastSeekFrame-=this.checkpointInterval,this.frameCount-=this.checkpointInterval,this.callbackStateChanged&&this.callbackStateChanged())}getStateAtOrBefore(e){if(e<=0&&this.checkpoints.length>0)return{frame:0,state:this.checkpoints[0]};var o=Math.floor(e/this.checkpointInterval),i=o<this.checkpoints.length?o:this.checkpoints.length-1,n=i*this.checkpointInterval;return{frame:n,state:this.checkpoints[i]}}loadFrame(e,o){if(e|=0,o|=0,e==this.lastSeekFrame&&o==this.lastSeekStep)return e;let{frame:i,state:n}=this.getStateAtOrBefore(e-1);if(n){var u=0;for(this.platform.pause(),this.platform.loadState(n);i<e;)i<this.framerecs.length&&this.loadControls(i),i++,u=this.platform.advance(i<e);return i==0&&(u=this.platform.advance(!0),this.platform.loadState(n)),o>0&&this.platform.advanceFrameClock&&(o=this.platform.advanceFrameClock(null,o)),this.lastSeekFrame=e,this.lastSeekStep=o,this.lastStepCount=u,e}else return-1}loadControls(e){this.platform.loadControlsState&&this.platform.loadControlsState(this.framerecs[e].controls),w(this.framerecs[e].seed)}getLastCheckpoint(){return this.checkpoints.length&&this.checkpoints[this.checkpoints.length-1]}};function R(l){switch(l){case"apple2":return import("./apple2-SCHHYG3D.js");case"arm32"Line truncated
|
||||
//# sourceMappingURL=chunk-SIGRU5UF.js.map
|
||||
File renamed without changes.
@@ -1,2 +1,2 @@
|
||||
import{K as d,s as p}from"./chunk-2XSLQJUY.js";import{K as n}from"./chunk-TYDI7JZQ.js";import"./chunk-VSC4MAII.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),l=t[24]+(t[25]<<8),f=t[26]+(t[27]<<8),u=t[28]+(t[29]<<8),c=t[34]+(t[35]<<8),_=t[36]+(t[37]<<8);return{PC:c,SP:l,AF:s,BC:a,DE:e,HL:r,IX:u,IY:f,IR:_,o:this.readConst(c)}}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 v=[{id:"hello.asm",name:"Hello World (ASM)"},{id:"easy_stdio_boxes.c",name:"Standard I/O (C)"},{id:"easy_mode_strings.c",name:"Video Modes (C)"},{id:"easy_random.c",name:"Random Numbers (C)"},{id:"easy_sprites.c",name:"Keyboard + Sprites (C)"},{id:"medium_scrolling.c",name:"Scrolling Text (C)"},{id:"siegegame.c",name:"Siege Game (C)"},{id:"music.c",name:"Music Player (C)"}],g={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 v}readAddress(h){return this.machine.readConst(h)}getMemoryMap(){return g}showHelp(){return"https://8bitworkshop.com/docs/platforms/cpc/"}};n["cpc.6128"]=i;n["cpc.464"]=i;n["cpc.kcc"]=i;
|
||||
//# sourceMappingURL=cpc-Y2LBEMQF.js.map
|
||||
import{K as d,s as p}from"./chunk-2XSLQJUY.js";import{K as n}from"./chunk-TYDI7JZQ.js";import"./chunk-VSC4MAII.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-K33QRZMJ.js.map
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../src/machine/cpc.ts", "../src/platform/cpc.ts"],
|
||||
"sourcesContent": ["\n//// WASM Machine\n\nimport { KeyFlags } from \"../common/emu\";\nimport { Machine } from \"../common/baseplatform\";\nimport { TrapCondition } from \"../common/devices\";\nimport { BaseWASMMachine } from \"../common/wasmplatform\";\n\nconst BIN_HEADER = [\n 0,\n 0,0,0,0,0,0,0,0,\n 0,0,0,\n 0,0,0,0,0,0,\n 1,\n 0,0,\n 0x0, 0x40, // load addr\n 0,\n 0x0, 0x0, // length\n 0x0, 0x40, // start addr\n 0,0,0,0,\n 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, \n 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, \n 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, \n 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, \n 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, \n 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, \n];\n\nexport class CPC_WASMMachine extends BaseWASMMachine implements Machine {\n\n numTotalScanlines = 312;\n cpuCyclesPerLine = 224;\n\n joymask0 = 0;\n runaddr = 0x4000;\n\n loadROM(rom: Uint8Array) {\n let combined = new Uint8Array(rom.length + BIN_HEADER.length);\n combined.set(BIN_HEADER, 0);\n combined[24] = rom.length & 0xff;\n combined[25] = rom.length >> 8;\n combined[26] = this.runaddr & 0xff;\n combined[27] = this.runaddr >> 8;\n combined.set(rom, BIN_HEADER.length);\n super.loadROM(combined);\n }\n reset() {\n super.reset();\n // advance bios\n this.exports.machine_exec(this.sys, 1000000); // TODO?\n // load rom (SNA or BIN)\n if (this.romptr && this.romlen) {\n this.exports.machine_load_rom(this.sys, this.romptr, this.romlen);\n // advance clock until program starts\n for (var i=0; i<100000 && this.getPC() != this.runaddr; i++) {\n this.exports.machine_tick(this.sys);\n }\n }\n }\n advanceFrame(trap: TrapCondition) : number {\n var scanline = this.getRasterY();\n var clocks = Math.floor((this.numTotalScanlines - scanline) * (4000000/50) / this.numTotalScanlines);\n var probing = this.probe != null;\n if (probing) this.exports.machine_reset_probe_buffer();\n clocks = super.advanceFrameClock(trap, clocks);\n if (probing) this.copyProbeData();\n return clocks;\n }\n getRasterY() {\n return this.exports.machine_get_raster_line(this.sys);\n }\n getRasterCanvasPosition() {\n return {\n x: -1, // TODO?\n y: this.getRasterY() - 14,\n }\n }\n /*\n z80_tick_t tick_cb; // 0\n uint64_t bc_de_hl_fa; // 8\n uint64_t bc_de_hl_fa_; // 16\n uint64_t wz_ix_iy_sp; // 24\n uint64_t im_ir_pc_bits; // 32\n uint64_t pins; // 48\n void* user_data;\n z80_trap_t trap_cb;\n void* trap_user_data;\n int trap_id; \n */\n getCPUState() {\n this.exports.machine_save_cpu_state(this.sys, this.cpustateptr);\n var s = this.cpustatearr;\n var af = s[9] + (s[8]<<8); // not FA\n var hl = s[10] + (s[11]<<8);\n var de = s[12] + (s[13]<<8);\n var bc = s[14] + (s[15]<<8);\n var sp = s[24] + (s[25]<<8);\n var iy = s[26] + (s[27]<<8);\n var ix = s[28] + (s[29]<<8);\n var pc = s[34] + (s[35]<<8);\n var ir = s[36] + (s[37]<<8);\n return {\n PC:pc,\n SP:sp,\n AF:af,\n BC:bc,\n DE:de,\n HL:hl,\n IX:ix,\n IY:iy,\n IR:ir,\n o:this.readConst(pc),\n }\n }\n saveState() {\n this.exports.machine_save_state(this.sys, this.stateptr);\n return {\n c:this.getCPUState(),\n state:this.statearr.slice(0),\n // the joystick mask lives on this object, not in the WASM state blob,\n // so it has to be saved explicitly or it leaks across a rewind\n joymask0: this.joymask0,\n };\n }\n loadState(state) : void {\n this.statearr.set(state.state);\n this.exports.machine_load_state(this.sys, this.stateptr);\n this.joymask0 = state.joymask0 | 0;\n }\n getVideoParams() {\n return {width:768, height:272, overscan:true, videoFrequency:50, aspect:1.3};\n }\n setKeyInput(key: number, code: number, flags: number): void {\n // TODO: handle shifted keys\n if (key == 16 || key == 17 || key == 18 || key == 224) return; // meta keys\n //console.log(key, code, flags);\n //if (flags & KeyFlags.Shift) { key += 64; }\n var mask = 0;\n var mask2 = 0;\n if (key == 37) { key = 0x8; mask = 0x4; } // LEFT\n if (key == 38) { key = 0xb; mask = 0x1; } // UP\n if (key == 39) { key = 0x9; mask = 0x8; } // RIGHT\n if (key == 40) { key = 0xa; mask = 0x2; } // DOWN\n if (key == 32) { mask = 0x10; } // FIRE\n if (key == 65) { key = 65; mask2 = 0x4; } // LEFT\n if (key == 87) { key = 87; mask2 = 0x1; } // UP\n if (key == 68) { key = 68; mask2 = 0x8; } // RIGHT\n if (key == 83) { key = 83; mask2 = 0x2; } // DOWN\n if (key == 69) { mask2 = 0x10; } // FIRE\n if (key == 113) { key = 0xf1; } // F2\n if (key == 115) { key = 0xf3; } // F4\n if (key == 119) { key = 0xf5; } // F8\n if (key == 121) { key = 0xf7; } // F10\n if (flags & KeyFlags.KeyDown) {\n this.exports.machine_key_down(this.sys, key);\n this.joymask0 |= mask;\n } else if (flags & KeyFlLine truncated
|
||||
"mappings": "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",
|
||||
"sourcesContent": ["\n//// WASM Machine\n\nimport { KeyFlags } from \"../common/emu\";\nimport { Machine } from \"../common/baseplatform\";\nimport { TrapCondition } from \"../common/devices\";\nimport { BaseWASMMachine } from \"../common/wasmplatform\";\n\nconst BIN_HEADER = [\n 0,\n 0,0,0,0,0,0,0,0,\n 0,0,0,\n 0,0,0,0,0,0,\n 1,\n 0,0,\n 0x0, 0x40, // load addr\n 0,\n 0x0, 0x0, // length\n 0x0, 0x40, // start addr\n 0,0,0,0,\n 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, \n 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, \n 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, \n 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, \n 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, \n 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, \n];\n\nexport class CPC_WASMMachine extends BaseWASMMachine implements Machine {\n\n numTotalScanlines = 312;\n cpuCyclesPerLine = 224;\n\n joymask0 = 0;\n runaddr = 0x4000;\n\n loadROM(rom: Uint8Array) {\n let combined = new Uint8Array(rom.length + BIN_HEADER.length);\n combined.set(BIN_HEADER, 0);\n combined[24] = rom.length & 0xff;\n combined[25] = rom.length >> 8;\n combined[26] = this.runaddr & 0xff;\n combined[27] = this.runaddr >> 8;\n combined.set(rom, BIN_HEADER.length);\n super.loadROM(combined);\n }\n reset() {\n super.reset();\n // advance bios\n this.exports.machine_exec(this.sys, 1000000); // TODO?\n // load rom (SNA or BIN)\n if (this.romptr && this.romlen) {\n this.exports.machine_load_rom(this.sys, this.romptr, this.romlen);\n // advance clock until program starts\n for (var i=0; i<100000 && this.getPC() != this.runaddr; i++) {\n this.exports.machine_tick(this.sys);\n }\n }\n }\n advanceFrame(trap: TrapCondition) : number {\n var scanline = this.getRasterY();\n var clocks = Math.floor((this.numTotalScanlines - scanline) * (4000000/50) / this.numTotalScanlines);\n var probing = this.probe != null;\n if (probing) this.exports.machine_reset_probe_buffer();\n clocks = super.advanceFrameClock(trap, clocks);\n if (probing) this.copyProbeData();\n return clocks;\n }\n getRasterY() {\n return this.exports.machine_get_raster_line(this.sys);\n }\n getRasterCanvasPosition() {\n return {\n x: -1, // TODO?\n y: this.getRasterY() - 14,\n }\n }\n /*\n z80_tick_t tick_cb; // 0\n uint64_t bc_de_hl_fa; // 8\n uint64_t bc_de_hl_fa_; // 16\n uint64_t wz_ix_iy_sp; // 24\n uint64_t im_ir_pc_bits; // 32\n uint64_t pins; // 48\n void* user_data;\n z80_trap_t trap_cb;\n void* trap_user_data;\n int trap_id; \n */\n getCPUState() {\n this.exports.machine_save_cpu_state(this.sys, this.cpustateptr);\n var s = this.cpustatearr;\n var af = s[9] + (s[8]<<8); // not FA\n var hl = s[10] + (s[11]<<8);\n var de = s[12] + (s[13]<<8);\n var bc = s[14] + (s[15]<<8);\n var sp = s[24] + (s[25]<<8);\n var iy = s[26] + (s[27]<<8);\n var ix = s[28] + (s[29]<<8);\n var pc = s[34] + (s[35]<<8);\n var ir = s[36] + (s[37]<<8);\n return {\n PC:pc,\n SP:sp,\n AF:af,\n BC:bc,\n DE:de,\n HL:hl,\n IX:ix,\n IY:iy,\n IR:ir,\n o:this.readConst(pc),\n }\n }\n saveState() {\n this.exports.machine_save_state(this.sys, this.stateptr);\n return {\n c:this.getCPUState(),\n state:this.statearr.slice(0),\n // the joystick mask lives on this object, not in the WASM state blob,\n // so it has to be saved explicitly or it leaks across a rewind\n joymask0: this.joymask0,\n };\n }\n loadState(state) : void {\n this.statearr.set(state.state);\n this.exports.machine_load_state(this.sys, this.stateptr);\n this.joymask0 = state.joymask0 | 0;\n }\n getVideoParams() {\n return {width:768, height:272, overscan:true, videoFrequency:50, aspect:1.3};\n }\n setKeyInput(key: number, code: number, flags: number): void {\n // TODO: handle shifted keys\n if (key == 16 || key == 17 || key == 18 || key == 224) return; // meta keys\n //console.log(key, code, flags);\n //if (flags & KeyFlags.Shift) { key += 64; }\n var mask = 0;\n var mask2 = 0;\n if (key == 37) { key = 0x8; mask = 0x4; } // LEFT\n if (key == 38) { key = 0xb; mask = 0x1; } // UP\n if (key == 39) { key = 0x9; mask = 0x8; } // RIGHT\n if (key == 40) { key = 0xa; mask = 0x2; } // DOWN\n if (key == 32) { mask = 0x10; } // FIRE\n if (key == 65) { key = 65; mask2 = 0x4; } // LEFT\n if (key == 87) { key = 87; mask2 = 0x1; } // UP\n if (key == 68) { key = 68; mask2 = 0x8; } // RIGHT\n if (key == 83) { key = 83; mask2 = 0x2; } // DOWN\n if (key == 69) { mask2 = 0x10; } // FIRE\n if (key == 113) { key = 0xf1; } // F2\n if (key == 115) { key = 0xf3; } // F4\n if (key == 119) { key = 0xf5; } // F8\n if (key == 121) { key = 0xf7; } // F10\n if (flags & KeyFlags.KeyDown) {\n this.exports.machine_key_down(this.sys, key);\n this.joymask0 |= mask;\n } else if (flags & KeyFlLine truncated
|
||||
"mappings": "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",
|
||||
"names": ["BIN_HEADER", "CPC_WASMMachine", "BaseWASMMachine", "rom", "combined", "i", "trap", "scanline", "clocks", "probing", "s", "af", "hl", "de", "bc", "sp", "iy", "ix", "pc", "ir", "state", "key", "code", "flags", "mask", "mask2", "CPC_PRESETS", "CPC_MEMORY_MAP", "CPCWASMPlatform", "BaseZ80MachinePlatform", "CPC_WASMMachine", "a", "PLATFORMS"]
|
||||
}
|
||||
@@ -1,2 +1,2 @@
|
||||
import{a as x}from"./chunk-3FIVEUG2.js";import{y}from"./chunk-EX34LRSY.js";import"./chunk-22ZJCPEG.js";import"./chunk-T6VURU5O.js";import"./chunk-A7SWO6EA.js";import"./chunk-PEELNZF2.js";import{J as m,m as c,p}from"./chunk-2XSLQJUY.js";import{C as d,K as f,aa as a,n as h}from"./chunk-TYDI7JZQ.js";import"./chunk-VSC4MAII.js";var n=31,s=class extends p{constructor(){super();this.cpuFrequency=1e6;this.defaultROMSize=32768;this.cpu=new c;this.ram=new Uint8Array(16384);this.read=a([[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=a([[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[n]=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[n]=0,super.reset(),this.serial&&this.serial.reset()}isHalted(){return this.inputs[n]!=0}};var S=[{id:"hello.dasm",name:"Hello World (ASM)"}],l=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 v(i){return i==10?"":i<32?String.fromCharCode(i+9216):String.fromCharCode(i)}var u=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(v(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(v(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()}},o=class extends m{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=new l(e)}async start(){super.start(),this.serial=new u,this.serial.viewer=this.serview,this.serview.start(),this.machine.connectSerialIO(this.serial)}reset(){this.serial.inputBytes=d(this.internalFiles["serialin.dat"]),super.reset(),this.serview.reset()}isBlocked(){return this.machine.isHalted()}advance(e){return this.isBlocked()?(this.internalFiles["serialout.dat"]=h(this.serial.outputBytes),y(),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)}newMachine(){return new s}getPresets(){return S}readAddress(e){return this.machine.readConst(e)}};f["devel-6502"]=o;export{u as SerialTestHarness};
|
||||
//# sourceMappingURL=devel-5WJH6CCE.js.map
|
||||
import{a as x}from"./chunk-3FIVEUG2.js";import{y}from"./chunk-4H5H6MGY.js";import"./chunk-22ZJCPEG.js";import"./chunk-T6VURU5O.js";import"./chunk-A7SWO6EA.js";import"./chunk-SIGRU5UF.js";import{J as m,m as c,p}from"./chunk-2XSLQJUY.js";import{C as d,K as f,aa as a,n as h}from"./chunk-TYDI7JZQ.js";import"./chunk-VSC4MAII.js";var n=31,s=class extends p{constructor(){super();this.cpuFrequency=1e6;this.defaultROMSize=32768;this.cpu=new c;this.ram=new Uint8Array(16384);this.read=a([[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=a([[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[n]=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[n]=0,super.reset(),this.serial&&this.serial.reset()}isHalted(){return this.inputs[n]!=0}};var S=[{id:"hello.dasm",name:"Hello World (ASM)"}],l=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 v(i){return i==10?"":i<32?String.fromCharCode(i+9216):String.fromCharCode(i)}var u=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(v(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(v(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()}},o=class extends m{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=new l(e)}async start(){super.start(),this.serial=new u,this.serial.viewer=this.serview,this.serview.start(),this.machine.connectSerialIO(this.serial)}reset(){this.serial.inputBytes=d(this.internalFiles["serialin.dat"]),super.reset(),this.serview.reset()}isBlocked(){return this.machine.isHalted()}advance(e){return this.isBlocked()?(this.internalFiles["serialout.dat"]=h(this.serial.outputBytes),y(),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)}newMachine(){return new s}getPresets(){return S}readAddress(e){return this.machine.readConst(e)}};f["devel-6502"]=o;export{u as SerialTestHarness};
|
||||
//# sourceMappingURL=devel-Q6YXKXKB.js.map
|
||||
File renamed without changes.
+1
-1
@@ -1,2 +1,2 @@
|
||||
import{b as v,c as P}from"./chunk-PEELNZF2.js";import{A as p,E as w,K as c,l as u,m,y as g}from"./chunk-TYDI7JZQ.js";import{e as I}from"./chunk-VSC4MAII.js";var k=I(P()),i,a,l,h=(function(e){if(!e||e.length==0)return{};for(var r={},t=0;t<e.length;++t){var o=e[t].split("=",2);o.length==1?r[o[0]]="":r[o[0]]=decodeURIComponent(o[1].replace(/\+/g," "))}return r})(window.location.search.substr(1).split("&"));function x(){typeof window.onerror=="object"&&(window.onerror=function(e,r,t,o,n){var s=e+" "+r+" "+t+":"+o+", "+n;$.get("/error?msg="+encodeURIComponent(s),"text")})}function M(){var e=!1;document.addEventListener("visibilitychange",function(r){document.visibilityState=="hidden"&&a.isRunning()?(a.pause(),e=!0):document.visibilityState=="visible"&&e&&(a.resume(),e=!1)}),$(window).on("focus",function(){e&&(a.resume(),e=!1)}),$(window).on("blur",function(){a.isRunning()&&(a.pause(),e=!0)})}async function y(e,r){if(!r){alert("No ROM found.");return}console.log(r.length+" bytes"),await a.loadROM(e,r),a.resume()}function R(){return $("#emulator").find("canvas")}function E(e,r,t){w("gif.js/dist/gif.js").then(()=>{var o=R()[0];if(!o){alert("Could not find canvas element to record video!");return}var n=0;o.style&&o.style.transform&&(o.style.transform.indexOf("rotate(-90deg)")>=0?n=-1:o.style.transform.indexOf("rotate(90deg)")>=0&&(n=1));var s=new GIF({workerScript:"gif.js/dist/gif.worker.js",workers:4,quality:10,rotate:n});s.on("finished",function(C){console.log("finished encoding GIF"),t(C)}),e=e||100+(Math.random()*256&3),r=r||100+(Math.random()*256&15);var f=0;console.log("Recording video",o);var d=()=>{f++>r?(console.log("Rendering video"),s.render()):(s.addFrame(o,{delay:e,copy:!0}),setTimeout(d,e))};d()})}async function S(e){if(!c[i])throw Error("Invalid platform '"+i+"'.");a=new c[i]($("#emuscreen")[0]),await a.start(),e.rec&&R().on("focus",()=>{a.resume()});var r=e.n||"Game",t,o=e.url,n=e.r;if(o)return console.log(o),g(o,f=>{y(r,f)},"arraybuffer"),!0;if(n){var s=m(atob(n));t=new u().decode(s)}return M(),y(r,t),!0}async function b(e){if(e.data&&(e=e.data),i=e.p,!i)throw new Error("No platform variable!");try{var r=await v(p(i));console.log("starting platform",i),await S(e)}catch(t){console.log(t),alert('Platform "'+i+'" not supported.')}}function F(){x(),h.p&&b(h)}window.addEventListener("message",O,!1);function O(e){if(e.data){var r=e.data.cmd;if(r=="start"&&!a)b(e);else if(r=="reset")a.reset(),l.reset();else if(r=="getReplay"){var t={frameCount:l.frameCount,checkpoints:l.checkpoints,framerecs:l.framerecs,checkpointInterval:l.checkpointInterval,maxCheckpoints:l.maxCheckpoints};e.source.postMessage({ack:r,replay:t},e.origin)}else if(r=="watchState"){var o=new Function("platform","state",e.data.fn);l.callbackNewCheckpoint=n=>{e.source.postMessage({ack:r,state:o(a,n)},e.origin)}}else r=="recordVideo"?E(e.data.intervalMsec,e.data.maxFrames,function(n){e.data.filename&&(0,k.saveAs)(n,e.data.filename),e.source.postMessage({ack:r,gif:n},e.origin)}):console.log("Unknown data.cmd: "+r)}}self===top&&(document.body.style.backgroundColor="#555");F();export{a as platform,i as platform_id,F as startEmbed,l as stateRecorder};
|
||||
import{b as v,c as P}from"./chunk-SIGRU5UF.js";import{A as p,E as w,K as c,l as u,m,y as g}from"./chunk-TYDI7JZQ.js";import{e as I}from"./chunk-VSC4MAII.js";var k=I(P()),i,a,l,h=(function(e){if(!e||e.length==0)return{};for(var r={},t=0;t<e.length;++t){var o=e[t].split("=",2);o.length==1?r[o[0]]="":r[o[0]]=decodeURIComponent(o[1].replace(/\+/g," "))}return r})(window.location.search.substr(1).split("&"));function x(){typeof window.onerror=="object"&&(window.onerror=function(e,r,t,o,n){var s=e+" "+r+" "+t+":"+o+", "+n;$.get("/error?msg="+encodeURIComponent(s),"text")})}function M(){var e=!1;document.addEventListener("visibilitychange",function(r){document.visibilityState=="hidden"&&a.isRunning()?(a.pause(),e=!0):document.visibilityState=="visible"&&e&&(a.resume(),e=!1)}),$(window).on("focus",function(){e&&(a.resume(),e=!1)}),$(window).on("blur",function(){a.isRunning()&&(a.pause(),e=!0)})}async function y(e,r){if(!r){alert("No ROM found.");return}console.log(r.length+" bytes"),await a.loadROM(e,r),a.resume()}function R(){return $("#emulator").find("canvas")}function E(e,r,t){w("gif.js/dist/gif.js").then(()=>{var o=R()[0];if(!o){alert("Could not find canvas element to record video!");return}var n=0;o.style&&o.style.transform&&(o.style.transform.indexOf("rotate(-90deg)")>=0?n=-1:o.style.transform.indexOf("rotate(90deg)")>=0&&(n=1));var s=new GIF({workerScript:"gif.js/dist/gif.worker.js",workers:4,quality:10,rotate:n});s.on("finished",function(C){console.log("finished encoding GIF"),t(C)}),e=e||100+(Math.random()*256&3),r=r||100+(Math.random()*256&15);var f=0;console.log("Recording video",o);var d=()=>{f++>r?(console.log("Rendering video"),s.render()):(s.addFrame(o,{delay:e,copy:!0}),setTimeout(d,e))};d()})}async function S(e){if(!c[i])throw Error("Invalid platform '"+i+"'.");a=new c[i]($("#emuscreen")[0]),await a.start(),e.rec&&R().on("focus",()=>{a.resume()});var r=e.n||"Game",t,o=e.url,n=e.r;if(o)return console.log(o),g(o,f=>{y(r,f)},"arraybuffer"),!0;if(n){var s=m(atob(n));t=new u().decode(s)}return M(),y(r,t),!0}async function b(e){if(e.data&&(e=e.data),i=e.p,!i)throw new Error("No platform variable!");try{var r=await v(p(i));console.log("starting platform",i),await S(e)}catch(t){console.log(t),alert('Platform "'+i+'" not supported.')}}function F(){x(),h.p&&b(h)}window.addEventListener("message",O,!1);function O(e){if(e.data){var r=e.data.cmd;if(r=="start"&&!a)b(e);else if(r=="reset")a.reset(),l.reset();else if(r=="getReplay"){var t={frameCount:l.frameCount,checkpoints:l.checkpoints,framerecs:l.framerecs,checkpointInterval:l.checkpointInterval,maxCheckpoints:l.maxCheckpoints};e.source.postMessage({ack:r,replay:t},e.origin)}else if(r=="watchState"){var o=new Function("platform","state",e.data.fn);l.callbackNewCheckpoint=n=>{e.source.postMessage({ack:r,state:o(a,n)},e.origin)}}else r=="recordVideo"?E(e.data.intervalMsec,e.data.maxFrames,function(n){e.data.filename&&(0,k.saveAs)(n,e.data.filename),e.source.postMessage({ack:r,gif:n},e.origin)}):console.log("Unknown data.cmd: "+r)}}self===top&&(document.body.style.backgroundColor="#555");F();export{a as platform,i as platform_id,F as startEmbed,l as stateRecorder};
|
||||
//# sourceMappingURL=embedui.js.map
|
||||
+7
-2
@@ -1019,8 +1019,13 @@ async function setCompileOutput(data) {
|
||||
_resetRecording();
|
||||
await exports.platform.loadROM(getCurrentPresetTitle(), rom, data.origin);
|
||||
current_output = rom;
|
||||
if (!userPaused)
|
||||
_resume();
|
||||
// re-arm breakpoints before the new ROM gets to run: clearBreakpoint()
|
||||
// above disarmed them, and code that only runs at startup (main() on the
|
||||
// C64, say) would race past them before anything else re-armed
|
||||
if (!userPaused) {
|
||||
if (breakpoints_1.bpStore.getEnabled().length == 0 || !armBreakpoints())
|
||||
_resume();
|
||||
}
|
||||
writeOutputROMFile();
|
||||
}
|
||||
catch (e) {
|
||||
|
||||
+1
-1
@@ -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
|
||||
+6
-29
@@ -143,15 +143,9 @@ class OffsetMarker extends view_1.GutterMarker {
|
||||
}
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-offset-marker";
|
||||
span.textContent = this.hex;
|
||||
span.style.cursor = "pointer";
|
||||
span.title = "Click to run to here";
|
||||
span.addEventListener("mouseenter", () => {
|
||||
span.style.textDecoration = "underline";
|
||||
});
|
||||
span.addEventListener("mouseleave", () => {
|
||||
span.style.textDecoration = "none";
|
||||
});
|
||||
return span;
|
||||
}
|
||||
eq(other) { return this.hex == other.hex; }
|
||||
@@ -175,15 +169,8 @@ class ClockMarker extends view_1.GutterMarker {
|
||||
const BREAKPOINT_PLACEHOLDER_MARKER = new class extends view_1.GutterMarker {
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-breakpoint-placeholder";
|
||||
span.textContent = "●";
|
||||
span.style.color = "transparent";
|
||||
span.style.cursor = "pointer";
|
||||
span.addEventListener("mouseenter", () => {
|
||||
span.style.color = "rgba(255, 0, 0, 0.5)";
|
||||
});
|
||||
span.addEventListener("mouseleave", () => {
|
||||
span.style.color = "transparent";
|
||||
});
|
||||
return span;
|
||||
}
|
||||
};
|
||||
@@ -194,9 +181,8 @@ class BreakpointMarker extends view_1.GutterMarker {
|
||||
}
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-breakpoint " + (this.enabled ? "gutter-breakpoint-enabled" : "gutter-breakpoint-disabled");
|
||||
span.innerHTML = "●";
|
||||
span.style.color = this.enabled ? "rgba(255, 0, 0, 1.0)" : "rgba(255, 255, 255, 0.35)";
|
||||
span.style.cursor = "pointer";
|
||||
span.title = this.enabled ? "Breakpoint (click to remove; manage in Breakpoints window)" : "Disabled breakpoint (click to remove)";
|
||||
return span;
|
||||
}
|
||||
@@ -212,9 +198,8 @@ class ErrorMarker extends view_1.GutterMarker {
|
||||
}
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-error";
|
||||
span.innerHTML = "ⓧ";
|
||||
span.style.color = "red";
|
||||
span.style.cursor = "pointer";
|
||||
span.title = this.msg;
|
||||
return span;
|
||||
}
|
||||
@@ -223,25 +208,17 @@ class ErrorMarker extends view_1.GutterMarker {
|
||||
const CURRENT_PC_PLACEHOLDER_MARKER = new class extends view_1.GutterMarker {
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-currentpc-placeholder";
|
||||
span.textContent = "▶";
|
||||
span.style.color = "transparent";
|
||||
span.style.cursor = "pointer";
|
||||
span.title = "Click to run to here";
|
||||
span.addEventListener("mouseenter", () => {
|
||||
span.style.color = "#ffee66";
|
||||
});
|
||||
span.addEventListener("mouseleave", () => {
|
||||
span.style.color = "transparent";
|
||||
});
|
||||
return span;
|
||||
}
|
||||
};
|
||||
const CURRENT_PC_MARKER = new class extends view_1.GutterMarker {
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-currentpc";
|
||||
span.innerHTML = "▶";
|
||||
span.style.color = "#ff66ee";
|
||||
span.style.cursor = "pointer";
|
||||
span.title = "Current PC";
|
||||
return span;
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"gutter.js","sourceRoot":"","sources":["../../../src/ide/views/gutter.ts"],"names":[],"mappings":"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 truncated
|
||||
{"version":3,"file":"gutter.js","sourceRoot":"","sources":["../../../src/ide/views/gutter.ts"],"names":[],"mappings":"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 truncated
|
||||
@@ -1,4 +1,4 @@
|
||||
import{b as Z}from"./chunk-JX2MTUGT.js";import{a as U}from"./chunk-WIKZL6VD.js";import{a as Ft}from"./chunk-T6VURU5O.js";import{A as W,j as q,n as X,o as Y,x as T,y as H}from"./chunk-2XSLQJUY.js";import{H as L,K as N,P as E,T as V,U as B,W as m,Y as G,Z as w,g as D,n as v}from"./chunk-TYDI7JZQ.js";import{d as S}from"./chunk-VSC4MAII.js";var O=S((wt,z)=>{"use strict";var d=function(){this.state=new Array(8);for(var t=0;t<this.state.length;t++)this.state[t]=64};d.BUTTON_A=0;d.BUTTON_B=1;d.BUTTON_SELECT=2;d.BUTTON_START=3;d.BUTTON_UP=4;d.BUTTON_DOWN=5;d.BUTTON_LEFT=6;d.BUTTON_RIGHT=7;d.prototype={buttonDown:function(t){this.state[t]=65},buttonUp:function(t){this.state[t]=64}};z.exports=d});var I=S((qt,K)=>{"use strict";K.exports={copyArrayElements:function(t,i,s,e,r){for(var a=0;a<r;++a)s[e+a]=t[i+a]},copyArray:function(t){return t.slice(0)},fromJSON:function(t,i){for(var s=0;s<t.JSON_PROPERTIES.length;s++){var e=t.JSON_PROPERTIES[s];t[e]!==null&&t[e].buffer&&t[e].set?t[e].set(i[e]):t[e]=i[e]}},toJSON:function(t){for(var i={},s=0;s<t.JSON_PROPERTIES.length;s++){var e=t.JSON_PROPERTIES[s];i[e]=t[e]}return i}}});var tt=S((Xt,$)=>{"use strict";var J=I(),Q=function(t){this.nes=t,this.mem=null,this.REG_ACC=null,this.REG_X=null,this.REG_Y=null,this.REG_SP=null,this.REG_PC=null,this.REG_PC_NEW=null,this.REG_STATUS=null,this.F_CARRY=null,this.F_DECIMAL=null,this.F_INTERRUPT=null,this.F_INTERRUPT_NEW=null,this.F_OVERFLOW=null,this.F_SIGN=null,this.F_ZERO=null,this.F_NOTUSED=null,this.F_NOTUSED_NEW=null,this.F_BRK=null,this.F_BRK_NEW=null,this.opdata=null,this.cyclesToHalt=null,this.crash=null,this.irqRequested=null,this.irqType=null,this.reset()};Q.prototype={IRQ_NORMAL:0,IRQ_NMI:1,IRQ_RESET:2,reset:function(){this.mem=new Uint8Array(65536);for(var t=0;t<8192;t++)this.mem[t]=255;for(var i=0;i<4;i++){var s=i*2048;this.mem[s+8]=247,this.mem[s+9]=239,this.mem[s+10]=223,this.mem[s+15]=191}for(var e=8193;e<this.mem.length;e++)this.mem[e]=0;this.REG_ACC=0,this.REG_X=0,this.REG_Y=0,this.REG_SP=511,this.REG_PC=32767,this.REG_PC_NEW=32767,this.REG_STATUS=40,this.setStatus(40),this.F_CARRY=0,this.F_DECIMAL=0,this.F_INTERRUPT=1,this.F_INTERRUPT_NEW=1,this.F_OVERFLOW=0,this.F_SIGN=0,this.F_ZERO=1,this.F_NOTUSED=1,this.F_NOTUSED_NEW=1,this.F_BRK=1,this.F_BRK_NEW=1,this.opdata=new j().opdata,this.cyclesToHalt=0,this.crash=!1,this.irqRequested=!1,this.irqType=null},emulate:function(){var t,i;if(this.irqRequested){switch(t=this.F_CARRY|(this.F_ZERO===0?1:0)<<1|this.F_INTERRUPT<<2|this.F_DECIMAL<<3|this.F_BRK<<4|this.F_NOTUSED<<5|this.F_OVERFLOW<<6|this.F_SIGN<<7,this.REG_PC_NEW=this.REG_PC,this.F_INTERRUPT_NEW=this.F_INTERRUPT,this.irqType){case 0:{if(this.F_INTERRUPT!==0)break;this.doIrq(t);break}case 1:{this.doNonMaskableInterrupt(t);break}case 2:{this.doResetInterrupt();break}}this.REG_PC=this.REG_PC_NEW,this.F_INTERRUPT=this.F_INTERRUPT_NEW,this.F_BRK=this.F_BRK_NEW,this.irqRequested=!1}var s=this.opdata[this.nes.mmap.load(this.REG_PC+1)],e=s>>24,r=0,a=s>>8&255,n=this.REG_PC;this.REG_PC+=s>>16&255;var h=0;switch(a){case 0:{h=this.load(n+2);break}case 1:{h=this.load(n+2),h<128?h+=this.REG_PC:h+=this.REG_PC-256;break}case 2:break;case 3:{h=this.load16bit(n+2);break}case 4:{h=this.REG_ACC;break}case 5:{h=this.REG_PC;break}case 6:{h=this.load(n+2)+this.REG_X&255;break}case 7:{h=this.load(n+2)+this.REG_Y&255;break}case 8:{h=this.load16bit(n+2),(h&65280)!==(h+this.REG_X&65280)&&(r=1),h+=this.REG_X;break}case 9:{h=this.load16bit(n+2),(h&65280)!==(h+this.REG_Y&65280)&&(r=1),h+=this.REG_Y;break}case 10:{h=this.load(n+2),(h&65280)!==(h+this.REG_X&65280)&&(r=1),h+=this.REG_X,h&=255,h=this.load16bit(h);break}case 11:{h=this.load16bit(this.load(n+2)),(h&65280)!==(h+this.REG_Y&65280)&&(r=1),h+=this.REG_Y;break}case 12:{h=this.load16bit(n+2),h<8191?h=this.mem[h]+(this.mem[h&65280|(h&255)+1&255]<<8):h=this.nes.mmap.load(h)+(this.nes.mmap.load(h&65280|(h&255)+1&255)<<8);break}}switch(h&=65535,s&255){case 0:{t=this.REG_ACC+this.load(h)+this.F_CARRY,((this.REG_ACC^this.load(h))&128)===0&&((this.REG_ACC^t)&128)!==0?this.F_OVERFLOW=1:this.F_OVERFLOW=0,this.F_CARRY=t>255?1:0,this.F_SIGN=t>>7&1,this.F_ZERO=t&255,this.REG_ACC=t&255,e+=r;break}case 1:{this.REG_ACC=this.REG_ACC&this.load(h),this.F_SIGN=this.REG_ACC>>7&1,this.F_ZERO=this.REG_ACC,a!==11&&(e+=r);break}case 2:{a===4?(this.F_CARRY=this.REG_ACC>>7&1,this.REG_ACC=this.REG_ACC<<1&255,this.F_SIGN=this.REG_ACC>>7&1,this.F_ZERO=this.REG_ACC):(t=this.load(h),this.F_CARRY=t>>7&1,t=t<<1&255,this.F_SIGN=t>>7&1,this.F_ZERO=t,this.write(h,t));break}case 3:{this.F_CARRY===0&&(e+=(n&65280)!==(h&65280)?2:1,this.REG_PC=h);break}case 4:{this.F_CARRY===1&&(e+=(n&65280)!==(h&65280)?2:1,this.REG_PC=h);break}case 5:{this.F_ZERO===0&&(e+=(n&65280)!==(h&65280)?2:1,this.REG_PC=h);break}case 6:{t=this.load(h),this.F_SIGN=t>>7&1,this.F_OVERFLOW=t>>6&1,t&=this.REG_ACC,this.F_ZERO=t;break}case 7:{this.F_SIGN===1&&(e++,this.REG_PC=h);break}case 8:{this.F_ZERO!==0&&(e+=(n&65280)!==(h&65280)?2:1,this.REG_PC=h);break}case 9:Line truncated
|
||||
import{b as Z}from"./chunk-JX2MTUGT.js";import{a as U}from"./chunk-WIKZL6VD.js";import{a as Ft}from"./chunk-T6VURU5O.js";import{A as W,j as q,n as X,o as Y,x as T,y as H}from"./chunk-2XSLQJUY.js";import{H as L,K as N,P as E,T as V,U as B,W as m,Y as G,Z as w,g as D,n as v}from"./chunk-TYDI7JZQ.js";import{d as S}from"./chunk-VSC4MAII.js";var O=S((wt,z)=>{"use strict";var d=function(){this.state=new Array(8);for(var t=0;t<this.state.length;t++)this.state[t]=64};d.BUTTON_A=0;d.BUTTON_B=1;d.BUTTON_SELECT=2;d.BUTTON_START=3;d.BUTTON_UP=4;d.BUTTON_DOWN=5;d.BUTTON_LEFT=6;d.BUTTON_RIGHT=7;d.prototype={buttonDown:function(t){this.state[t]=65},buttonUp:function(t){this.state[t]=64}};z.exports=d});var I=S((qt,K)=>{"use strict";K.exports={copyArrayElements:function(t,i,s,e,r){for(var a=0;a<r;++a)s[e+a]=t[i+a]},copyArray:function(t){return t.slice(0)},fromJSON:function(t,i){for(var s=0;s<t.JSON_PROPERTIES.length;s++){var e=t.JSON_PROPERTIES[s];t[e]!==null&&t[e].buffer&&t[e].set?t[e].set(i[e]):t[e]=i[e]}},toJSON:function(t){for(var i={},s=0;s<t.JSON_PROPERTIES.length;s++){var e=t.JSON_PROPERTIES[s];i[e]=t[e]}return i}}});var tt=S((Xt,$)=>{"use strict";var J=I(),Q=function(t){this.nes=t,this.mem=null,this.REG_ACC=null,this.REG_X=null,this.REG_Y=null,this.REG_SP=null,this.REG_PC=null,this.REG_PC_NEW=null,this.REG_STATUS=null,this.F_CARRY=null,this.F_DECIMAL=null,this.F_INTERRUPT=null,this.F_INTERRUPT_NEW=null,this.F_OVERFLOW=null,this.F_SIGN=null,this.F_ZERO=null,this.F_NOTUSED=null,this.F_NOTUSED_NEW=null,this.F_BRK=null,this.F_BRK_NEW=null,this.opdata=null,this.cyclesToHalt=null,this.crash=null,this.irqRequested=null,this.irqType=null,this.reset()};Q.prototype={IRQ_NORMAL:0,IRQ_NMI:1,IRQ_RESET:2,reset:function(){this.mem=new Uint8Array(65536);for(var t=0;t<8192;t++)this.mem[t]=255;for(var i=0;i<4;i++){var s=i*2048;this.mem[s+8]=247,this.mem[s+9]=239,this.mem[s+10]=223,this.mem[s+15]=191}for(var e=8193;e<this.mem.length;e++)this.mem[e]=0;this.REG_ACC=0,this.REG_X=0,this.REG_Y=0,this.REG_SP=511,this.REG_PC=32767,this.REG_PC_NEW=32767,this.REG_STATUS=40,this.setStatus(40),this.F_CARRY=0,this.F_DECIMAL=0,this.F_INTERRUPT=1,this.F_INTERRUPT_NEW=1,this.F_OVERFLOW=0,this.F_SIGN=0,this.F_ZERO=1,this.F_NOTUSED=1,this.F_NOTUSED_NEW=1,this.F_BRK=1,this.F_BRK_NEW=1,this.opdata=new j().opdata,this.cyclesToHalt=0,this.crash=!1,this.irqRequested=!1,this.irqType=null},emulate:function(){var t,i;if(this.irqRequested){switch(t=this.F_CARRY|(this.F_ZERO===0?1:0)<<1|this.F_INTERRUPT<<2|this.F_DECIMAL<<3|this.F_BRK<<4|this.F_NOTUSED<<5|this.F_OVERFLOW<<6|this.F_SIGN<<7,this.REG_PC_NEW=this.REG_PC,this.F_INTERRUPT_NEW=this.F_INTERRUPT,this.irqType){case 0:{if(this.F_INTERRUPT!==0)break;this.doIrq(t);break}case 1:{this.doNonMaskableInterrupt(t);break}case 2:{this.doResetInterrupt();break}}this.REG_PC=this.REG_PC_NEW,this.F_INTERRUPT=this.F_INTERRUPT_NEW,this.F_BRK=this.F_BRK_NEW,this.irqRequested=!1}var s=this.opdata[this.nes.mmap.load(this.REG_PC+1)],e=s>>24,r=0,a=s>>8&255,n=this.REG_PC;this.REG_PC+=s>>16&255;var h=0;switch(a){case 0:{h=this.load(n+2);break}case 1:{h=this.load(n+2),h<128?h+=this.REG_PC:h+=this.REG_PC-256;break}case 2:break;case 3:{h=this.load16bit(n+2);break}case 4:{h=this.REG_ACC;break}case 5:{h=this.REG_PC;break}case 6:{h=this.load(n+2)+this.REG_X&255;break}case 7:{h=this.load(n+2)+this.REG_Y&255;break}case 8:{h=this.load16bit(n+2),(h&65280)!==(h+this.REG_X&65280)&&(r=1),h+=this.REG_X;break}case 9:{h=this.load16bit(n+2),(h&65280)!==(h+this.REG_Y&65280)&&(r=1),h+=this.REG_Y;break}case 10:{h=this.load(n+2),(h&65280)!==(h+this.REG_X&65280)&&(r=1),h+=this.REG_X,h&=255,h=this.load16bit(h);break}case 11:{h=this.load16bit(this.load(n+2)),(h&65280)!==(h+this.REG_Y&65280)&&(r=1),h+=this.REG_Y;break}case 12:{h=this.load16bit(n+2),h<8191?h=this.mem[h]+(this.mem[h&65280|(h&255)+1&255]<<8):h=this.nes.mmap.load(h)+(this.nes.mmap.load(h&65280|(h&255)+1&255)<<8);break}}switch(h&=65535,s&255){case 0:{t=this.REG_ACC+this.load(h)+this.F_CARRY,((this.REG_ACC^this.load(h))&128)===0&&((this.REG_ACC^t)&128)!==0?this.F_OVERFLOW=1:this.F_OVERFLOW=0,this.F_CARRY=t>255?1:0,this.F_SIGN=t>>7&1,this.F_ZERO=t&255,this.REG_ACC=t&255,e+=r;break}case 1:{this.REG_ACC=this.REG_ACC&this.load(h),this.F_SIGN=this.REG_ACC>>7&1,this.F_ZERO=this.REG_ACC,a!==11&&(e+=r);break}case 2:{a===4?(this.F_CARRY=this.REG_ACC>>7&1,this.REG_ACC=this.REG_ACC<<1&255,this.F_SIGN=this.REG_ACC>>7&1,this.F_ZERO=this.REG_ACC):(t=this.load(h),this.F_CARRY=t>>7&1,t=t<<1&255,this.F_SIGN=t>>7&1,this.F_ZERO=t,this.write(h,t));break}case 3:{this.F_CARRY===0&&(e+=(n&65280)!==(h&65280)?2:1,this.REG_PC=h);break}case 4:{this.F_CARRY===1&&(e+=(n&65280)!==(h&65280)?2:1,this.REG_PC=h);break}case 5:{this.F_ZERO===0&&(e+=(n&65280)!==(h&65280)?2:1,this.REG_PC=h);break}case 6:{t=this.load(h),this.F_SIGN=t>>7&1,this.F_OVERFLOW=t>>6&1,t&=this.REG_ACC,this.F_ZERO=t;break}case 7:{this.F_SIGN===1&&(e++,this.REG_PC=h);break}case 8:{this.F_ZERO!==0&&(e+=(n&65280)!==(h&65280)?2:1,this.REG_PC=h);break}case 9:Line truncated
|
||||
`)}var l=e[8194];r+=`
|
||||
Status `,r+=l&128?"VBLANK ":"- ",r+=l&64?"SPRITE0HIT ":"- ",r+=`
|
||||
`,s.f_color&&(r+=" Tint "+(s.f_color&1?"RED ":"")+(s.f_color&2?"BLUE ":"")+(s.f_color&4?"GREEN ":"")+`
|
||||
@@ -23,4 +23,4 @@ IRQ Counter: `+s.irqCounter,r+=`
|
||||
CHR Select: `+s.chrAddressSelect),r+=`
|
||||
`,r}startProbing(){var s=new X(this);return this.connectProbe(s),s}stopProbing(){this.connectProbe(null)}connectProbe(s){this.probe=s||this.nullProbe}showHelp(){return"https://8bitworkshop.com/docs/platforms/nes/"}getDebugSymbolFile(){var s=this.debugSymbols.addr2symbol,e="";for(let[r,a]of Object.entries(s)){let n=Number(r),h;n<8192?(n=n%2048,h="R"):n<24576?h="G":n<32768?(n=n-24576,h="S"):(n=n-32768,h="P");let l=n.toString(16).padStart(4,"0").toUpperCase();a[0]>="0"&&a[0]<="9"&&(a="L"+a),a=L(a,".","_"),e+=`${h}:${l}:${a}
|
||||
`}return{extension:".mlb",blob:new Blob([e],{type:"text/plain"})}}},k=class extends U{constructor(){super(...arguments);this.getToolForFilename=T;this.getOpcodeMetadata=W}start(){}loadROM(s,e){if(!this.started)this.startModule(this.mainElement,{jsfile:"mame8bitws.js",driver:"nes",width:256,height:240,romfn:"/emulator/cart.nes",romdata:new Uint8Array(e),preInit:function(n){}});else{var r=e[4]*16384,a=e[5]*8192;this.loadROMFile(e),this.loadRegion(":nes_slot:cart:prg_rom",e.slice(16,16+r)),this.loadRegion(":nes_slot:cart:chr_rom",e.slice(16+r,16+r+a))}}getPresets(){return Tt}getDefaultExtensions(){return[".c",".cpp",".acme",".xa",".ca65",".dasm",".ecs",".wiz"]}};N.nes=y;N["nes.mame"]=k;
|
||||
//# sourceMappingURL=nes-ZMBUGVPQ.js.map
|
||||
//# sourceMappingURL=nes-EEFZEAIQ.js.map
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../jsnes/src/controller.js", "../jsnes/src/utils.js", "../jsnes/src/cpu.js", "../jsnes/src/tile.js", "../jsnes/src/ppu.js", "../jsnes/src/papu.js", "../jsnes/src/mappers.js", "../jsnes/src/rom.js", "../jsnes/src/nes.js", "../jsnes/src/index.js", "../src/platform/nes.ts"],
|
||||
"sourcesContent": ["var Controller = function() {\n this.state = new Array(8);\n for (var i = 0; i < this.state.length; i++) {\n this.state[i] = 0x40;\n }\n};\n\nController.BUTTON_A = 0;\nController.BUTTON_B = 1;\nController.BUTTON_SELECT = 2;\nController.BUTTON_START = 3;\nController.BUTTON_UP = 4;\nController.BUTTON_DOWN = 5;\nController.BUTTON_LEFT = 6;\nController.BUTTON_RIGHT = 7;\n\nController.prototype = {\n buttonDown: function(key) {\n this.state[key] = 0x41;\n },\n\n buttonUp: function(key) {\n this.state[key] = 0x40;\n }\n};\n\nmodule.exports = Controller;\n", "module.exports = {\n copyArrayElements: function(src, srcPos, dest, destPos, length) {\n for (var i = 0; i < length; ++i) {\n dest[destPos + i] = src[srcPos + i];\n }\n },\n\n copyArray: function(src) {\n return src.slice(0);\n },\n\n fromJSON: function(obj, state) {\n for (var i = 0; i < obj.JSON_PROPERTIES.length; i++) {\n var key = obj.JSON_PROPERTIES[i];\n if (obj[key] !== null && obj[key].buffer && obj[key].set)\n obj[key].set(state[key]); // set array elements\n else\n obj[key] = state[key]; // replace\n }\n },\n\n toJSON: function(obj) {\n var state = {};\n for (var i = 0; i < obj.JSON_PROPERTIES.length; i++) {\n var key = obj.JSON_PROPERTIES[i];\n state[key] = obj[key];\n }\n return state;\n }\n};\n", "var utils = require(\"./utils\");\n\nvar CPU = function(nes) {\n this.nes = nes;\n\n // Keep Chrome happy\n this.mem = null;\n this.REG_ACC = null;\n this.REG_X = null;\n this.REG_Y = null;\n this.REG_SP = null;\n this.REG_PC = null;\n this.REG_PC_NEW = null;\n this.REG_STATUS = null;\n this.F_CARRY = null;\n this.F_DECIMAL = null;\n this.F_INTERRUPT = null;\n this.F_INTERRUPT_NEW = null;\n this.F_OVERFLOW = null;\n this.F_SIGN = null;\n this.F_ZERO = null;\n this.F_NOTUSED = null;\n this.F_NOTUSED_NEW = null;\n this.F_BRK = null;\n this.F_BRK_NEW = null;\n this.opdata = null;\n this.cyclesToHalt = null;\n this.crash = null;\n this.irqRequested = null;\n this.irqType = null;\n\n this.reset();\n};\n\nCPU.prototype = {\n // IRQ Types\n IRQ_NORMAL: 0,\n IRQ_NMI: 1,\n IRQ_RESET: 2,\n\n reset: function() {\n // Main memory\n this.mem = new Uint8Array(0x10000);\n\n for (var i = 0; i < 0x2000; i++) {\n this.mem[i] = 0xff;\n }\n for (var p = 0; p < 4; p++) {\n var j = p * 0x800;\n this.mem[j + 0x008] = 0xf7;\n this.mem[j + 0x009] = 0xef;\n this.mem[j + 0x00a] = 0xdf;\n this.mem[j + 0x00f] = 0xbf;\n }\n for (var k = 0x2001; k < this.mem.length; k++) {\n this.mem[k] = 0;\n }\n\n // CPU Registers:\n this.REG_ACC = 0;\n this.REG_X = 0;\n this.REG_Y = 0;\n // Reset Stack pointer:\n this.REG_SP = 0x01ff;\n // Reset Program counter:\n this.REG_PC = 0x8000 - 1;\n this.REG_PC_NEW = 0x8000 - 1;\n // Reset Status register:\n this.REG_STATUS = 0x28;\n\n this.setStatus(0x28);\n\n // Set flags:\n this.F_CARRY = 0;\n this.F_DECIMAL = 0;\n this.F_INTERRUPT = 1;\n this.F_INTERRUPT_NEW = 1;\n this.F_OVERFLOW = 0;\n this.F_SIGN = 0;\n this.F_ZERO = 1;\n\n this.F_NOTUSED = 1;\n this.F_NOTUSED_NEW = 1;\n this.F_BRK = 1;\n this.F_BRK_NEW = 1;\n\n this.opdata = new OpData().opdata;\n this.cyclesToHalt = 0;\n\n // Reset crash flag:\n this.crash = false;\n\n // Interrupt notification:\n this.irqRequested = false;\n this.irqType = null;\n },\n\n // Emulates a single CPU instruction, returns the number of cycles\n emulate: function() {\n var temp;\n var add;\n\n // Check interrupts:\n if (this.irqRequested) {\n temp =\n this.F_CARRY |\n ((this.F_ZERO === 0 ? 1 : 0) << 1) |\n (this.F_INTERRUPT << 2) |\n (this.F_DECIMAL << 3) |\n (this.F_BRK << 4) |\n (this.F_NOTUSED << 5) |\n (this.F_OVERFLOW << 6) |\n (this.F_SIGN << 7);\n\n this.REG_PC_NEW = this.REG_PC;\n this.F_INTERRUPT_NEW = this.F_INTERRUPT;\n switch (this.irqType) {\n case 0: {\n // Normal IRQ:\n if (this.F_INTERRUPT !== 0) {\n // console.log(\"Interrupt was masked.\");\n break;\n }\n this.doIrq(temp);\n // console.log(\"Did normal IRQ. I=\"+this.F_INTERRUPT);\n break;\n }\n case 1: {\n // NMI:\n this.doNonMaskableInterrupt(temp);\n break;\n }\n case 2: {\n // Reset:\n this.doResetInterrupt();\n break;\n }\n }\n\n this.REG_PC = this.REG_PC_NEW;\n this.F_INTERRUPT = this.F_INTERRUPT_NEW;\n this.F_BRK = this.F_BRK_NEW;\n this.irqRequested = false;\n }\n\n var opinf = this.opdata[this.nes.mmap.load(this.REG_PC + 1)];\n var cycleCount = opinf >> 24;\n var cycleAdd = 0;\n\n // Find address mode:\n var addrMode = (opinf >> 8) & 0xff;\n\n Line truncated
|
||||
"mappings": "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 truncated
|
||||
"sourcesContent": ["var Controller = function() {\n this.state = new Array(8);\n for (var i = 0; i < this.state.length; i++) {\n this.state[i] = 0x40;\n }\n};\n\nController.BUTTON_A = 0;\nController.BUTTON_B = 1;\nController.BUTTON_SELECT = 2;\nController.BUTTON_START = 3;\nController.BUTTON_UP = 4;\nController.BUTTON_DOWN = 5;\nController.BUTTON_LEFT = 6;\nController.BUTTON_RIGHT = 7;\n\nController.prototype = {\n buttonDown: function(key) {\n this.state[key] = 0x41;\n },\n\n buttonUp: function(key) {\n this.state[key] = 0x40;\n }\n};\n\nmodule.exports = Controller;\n", "module.exports = {\n copyArrayElements: function(src, srcPos, dest, destPos, length) {\n for (var i = 0; i < length; ++i) {\n dest[destPos + i] = src[srcPos + i];\n }\n },\n\n copyArray: function(src) {\n return src.slice(0);\n },\n\n fromJSON: function(obj, state) {\n for (var i = 0; i < obj.JSON_PROPERTIES.length; i++) {\n var key = obj.JSON_PROPERTIES[i];\n if (obj[key] !== null && obj[key].buffer && obj[key].set)\n obj[key].set(state[key]); // set array elements\n else\n obj[key] = state[key]; // replace\n }\n },\n\n toJSON: function(obj) {\n var state = {};\n for (var i = 0; i < obj.JSON_PROPERTIES.length; i++) {\n var key = obj.JSON_PROPERTIES[i];\n state[key] = obj[key];\n }\n return state;\n }\n};\n", "var utils = require(\"./utils\");\n\nvar CPU = function(nes) {\n this.nes = nes;\n\n // Keep Chrome happy\n this.mem = null;\n this.REG_ACC = null;\n this.REG_X = null;\n this.REG_Y = null;\n this.REG_SP = null;\n this.REG_PC = null;\n this.REG_PC_NEW = null;\n this.REG_STATUS = null;\n this.F_CARRY = null;\n this.F_DECIMAL = null;\n this.F_INTERRUPT = null;\n this.F_INTERRUPT_NEW = null;\n this.F_OVERFLOW = null;\n this.F_SIGN = null;\n this.F_ZERO = null;\n this.F_NOTUSED = null;\n this.F_NOTUSED_NEW = null;\n this.F_BRK = null;\n this.F_BRK_NEW = null;\n this.opdata = null;\n this.cyclesToHalt = null;\n this.crash = null;\n this.irqRequested = null;\n this.irqType = null;\n\n this.reset();\n};\n\nCPU.prototype = {\n // IRQ Types\n IRQ_NORMAL: 0,\n IRQ_NMI: 1,\n IRQ_RESET: 2,\n\n reset: function() {\n // Main memory\n this.mem = new Uint8Array(0x10000);\n\n for (var i = 0; i < 0x2000; i++) {\n this.mem[i] = 0xff;\n }\n for (var p = 0; p < 4; p++) {\n var j = p * 0x800;\n this.mem[j + 0x008] = 0xf7;\n this.mem[j + 0x009] = 0xef;\n this.mem[j + 0x00a] = 0xdf;\n this.mem[j + 0x00f] = 0xbf;\n }\n for (var k = 0x2001; k < this.mem.length; k++) {\n this.mem[k] = 0;\n }\n\n // CPU Registers:\n this.REG_ACC = 0;\n this.REG_X = 0;\n this.REG_Y = 0;\n // Reset Stack pointer:\n this.REG_SP = 0x01ff;\n // Reset Program counter:\n this.REG_PC = 0x8000 - 1;\n this.REG_PC_NEW = 0x8000 - 1;\n // Reset Status register:\n this.REG_STATUS = 0x28;\n\n this.setStatus(0x28);\n\n // Set flags:\n this.F_CARRY = 0;\n this.F_DECIMAL = 0;\n this.F_INTERRUPT = 1;\n this.F_INTERRUPT_NEW = 1;\n this.F_OVERFLOW = 0;\n this.F_SIGN = 0;\n this.F_ZERO = 1;\n\n this.F_NOTUSED = 1;\n this.F_NOTUSED_NEW = 1;\n this.F_BRK = 1;\n this.F_BRK_NEW = 1;\n\n this.opdata = new OpData().opdata;\n this.cyclesToHalt = 0;\n\n // Reset crash flag:\n this.crash = false;\n\n // Interrupt notification:\n this.irqRequested = false;\n this.irqType = null;\n },\n\n // Emulates a single CPU instruction, returns the number of cycles\n emulate: function() {\n var temp;\n var add;\n\n // Check interrupts:\n if (this.irqRequested) {\n temp =\n this.F_CARRY |\n ((this.F_ZERO === 0 ? 1 : 0) << 1) |\n (this.F_INTERRUPT << 2) |\n (this.F_DECIMAL << 3) |\n (this.F_BRK << 4) |\n (this.F_NOTUSED << 5) |\n (this.F_OVERFLOW << 6) |\n (this.F_SIGN << 7);\n\n this.REG_PC_NEW = this.REG_PC;\n this.F_INTERRUPT_NEW = this.F_INTERRUPT;\n switch (this.irqType) {\n case 0: {\n // Normal IRQ:\n if (this.F_INTERRUPT !== 0) {\n // console.log(\"Interrupt was masked.\");\n break;\n }\n this.doIrq(temp);\n // console.log(\"Did normal IRQ. I=\"+this.F_INTERRUPT);\n break;\n }\n case 1: {\n // NMI:\n this.doNonMaskableInterrupt(temp);\n break;\n }\n case 2: {\n // Reset:\n this.doResetInterrupt();\n break;\n }\n }\n\n this.REG_PC = this.REG_PC_NEW;\n this.F_INTERRUPT = this.F_INTERRUPT_NEW;\n this.F_BRK = this.F_BRK_NEW;\n this.irqRequested = false;\n }\n\n var opinf = this.opdata[this.nes.mmap.load(this.REG_PC + 1)];\n var cycleCount = opinf >> 24;\n var cycleAdd = 0;\n\n // Find address mode:\n var addrMode = (opinf >> 8) & 0xff;\n\n Line truncated
|
||||
"mappings": "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 truncated
|
||||
"names": ["require_controller", "__commonJSMin", "exports", "module", "Controller", "i", "key", "require_utils", "__commonJSMin", "exports", "module", "src", "srcPos", "dest", "destPos", "length", "i", "obj", "state", "key", "require_cpu", "__commonJSMin", "exports", "module", "utils", "CPU", "nes", "i", "p", "j", "k", "OpData", "temp", "add", "opinf", "cycleCount", "cycleAdd", "addrMode", "opaddr", "addr", "val", "type", "value", "addr1", "addr2", "cycles", "status", "st", "s", "inst", "op", "size", "require_tile", "__commonJSMin", "exports", "module", "Tile", "scanline", "sline", "b1", "b2", "buffer", "srcx1", "srcy1", "srcx2", "srcy2", "dx", "dy", "palAdd", "palette", "flipHorizontal", "flipVertical", "pri", "priTable", "x", "y", "s", "require_ppu", "__commonJSMin", "exports", "module", "Tile", "utils", "PPU", "nes", "i", "NameTable", "PaletteTable", "mirroring", "fromStart", "toStart", "size", "bgColor", "buffer", "pixrendered", "x", "y", "value", "flag", "n", "tmp", "address", "baseAddress", "data", "b1", "b2", "count", "startScan", "scanCount", "si", "ei", "bgbuffer", "destIndex", "scan", "baseTile", "tscanoffset", "scantile", "attrib", "ptTile", "nameTable", "imgPalette", "targetBuffer", "t", "tpix", "att", "col", "tile", "sx", "startscan", "scancount", "bgPri", "top", "srcy1", "srcy2", "toffset", "tIndexAdd", "bufferIndex", "tileIndex", "leftOver", "index", "tIndex", "state", "width", "height", "name", "basex", "basey", "add", "tx", "ty", "attindex", "sqy", "sqx", "s", "r", "g", "b", "rFactor", "gFactor", "bFactor", "emph", "yiq", "rgb", "require_papu", "__commonJSMin", "exports", "module", "CPU_FREQ_NTSC", "PAPU", "nes", "ChannelSquare", "ChannelTriangle", "ChannelNoise", "ChannelDM", "address", "tmp", "value", "nCycles", "maxCycles", "dmc", "triangle", "square1", "square2", "noise", "acc_c", "cycles", "sq_index", "tnd_index", "smpNoise", "sampleValueL", "sampleValueR", "smpDiffL", "smpDiffR", "pos", "ival", "i", "max_sqr", "max_tnd", "papu", "addrAdd", "require_mappers", "__commonJSMin", "exports", "module", "utils", "Mappers", "nes", "address", "value", "w", "ret", "ram", "bank", "vromTile", "bank4kStart", "bank1k", "bank4k", "bankoffset", "baseIndex", "i", "bank2k", "bank8k", "bank16k", "offset", "s", "reg", "tmp", "baseBank", "oldSetting", "cmd", "arg", "prgbank1", "prgbank2", "require_rom", "__commonJSMin", "exports", "module", "Mappers", "Tile", "ROM", "nes", "data", "j", "v", "foundError", "offset", "tileIndex", "leftOver", "require_nes", "__commonJSMin", "exports", "module", "CPU", "Controller", "PPU", "PAPU", "ROM", "NES", "opts", "key", "cycles", "emulateSound", "cpu", "ppu", "papu", "FRAMELOOP", "controller", "button", "x", "y", "now", "fps", "data", "rate", "s", "require_src", "__commonJSMin", "exports", "module", "jsnes", "getMousetrap", "JSNES_PRESETS", "JSNES_KEYCODE_MAP", "makeKeycodeMap", "Keys", "copyTypedArrays", "o", "k", "JSNESPlatform", "Base6502Platform", "mainElement", "fn", "getToolForFilename_6502", "NullProbe", "SampleAudio", "RasterVideo", "idata", "frameBuffer", "i", "left", "right", "s", "EmuHalt", "cycles", "AnimationTimer", "setKeyboardFromMap", "key", "code", "flags", "novideo", "a", "attraddr", "baseTile", "row", "col", "name", "t", "attr", "tag", "j", "attrshift", "coloradd", "y", "color", "rgb", "title", "data", "romstr", "byteArrayToString", "mmap", "oldload", "oldwrite", "oldregLoad", "oldregWrite", "lastioaddr", "addr", "val", "ppu", "old_endScanline", "old_startFrame", "old_writeMem", "v", "CodeAnalyzer_nes", "frame0", "c", "state", "category", "mem", "PPUFLAGS", "flag", "status", "hex", "scrollX", "scrollY", "rec", "ProbeRecorder", "probe", "sym", "text", "numK", "symType", "replaceAll", "NESMAMEPlatform", "BaseMAME6502Platform", "getOpcodeMetadata_6502", "_self", "prgromlen", "chrromlen", "PLATFORMS"]
|
||||
}
|
||||
@@ -4,7 +4,7 @@ const atari7800_1 = require("../machine/atari7800");
|
||||
const baseplatform_1 = require("../common/baseplatform");
|
||||
const emu_1 = require("../common/emu");
|
||||
var Atari7800_PRESETS = [
|
||||
{ id: 'sprites.dasm', name: 'Sprites (ASM)', category: 'Assembler' },
|
||||
{ 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' },
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"atari7800.js","sourceRoot":"","sources":["../../src/platform/atari7800.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"atari7800.js","sourceRoot":"","sources":["../../src/platform/atari7800.ts"],"names":[],"mappings":"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"}
|
||||
+10
-10
@@ -5,18 +5,18 @@ const emu_1 = require("../common/emu");
|
||||
const mameplatform_1 = require("../common/mameplatform");
|
||||
const atari8_1 = require("../machine/atari8");
|
||||
var Atari8_PRESETS = [
|
||||
{ id: 'hello.dasm', name: 'Hello World (ASM)' },
|
||||
{ id: 'hellopm.dasm', name: 'Hello Sprites (ASM)' },
|
||||
{ id: 'helloconio.c', name: 'Text Mode (C)' },
|
||||
{ id: 'siegegame.c', name: 'Siege Game (C)' },
|
||||
{ id: 'hellodlist.c', name: 'Display List (C)' },
|
||||
{ id: 'hello.dasm', name: 'Hello World', category: 'Assembly' },
|
||||
{ id: 'hellopm.dasm', name: 'Hello Sprites' },
|
||||
{ id: 'helloconio.c', name: 'Text Mode', category: 'C' },
|
||||
{ id: 'siegegame.c', name: 'Siege Game' },
|
||||
{ id: 'hellodlist.c', name: 'Display List' },
|
||||
];
|
||||
var Atari800_PRESETS = Atari8_PRESETS.concat([
|
||||
{ id: 'testmusic.c', name: 'POKEY Music (C)' },
|
||||
{ id: 'sieve.bas', name: 'Benchmark (FastBasic)', category: 'FastBasic' },
|
||||
{ id: 'pmtest.bas', name: 'Sprites Test (FastBasic)' },
|
||||
{ id: 'dli.bas', name: 'DLI Test (FastBasic)' },
|
||||
{ id: 'joyas.bas', name: 'Match-3 Game (FastBasic)' },
|
||||
{ id: 'testmusic.c', name: 'POKEY Music' },
|
||||
{ id: 'sieve.bas', name: 'Benchmark', category: 'FastBasic' },
|
||||
{ id: 'pmtest.bas', name: 'Sprites Test' },
|
||||
{ id: 'dli.bas', name: 'DLI Test' },
|
||||
{ id: 'joyas.bas', name: 'Match-3 Game' },
|
||||
]);
|
||||
const Atari800_MemoryMap = { main: [
|
||||
{ name: 'RAM', start: 0x0, size: 0xc000, type: 'ram' },
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"atari8.js","sourceRoot":"","sources":["../../src/platform/atari8.ts"],"names":[],"mappings":";;AACA,yDAAoI;AACpI,uCAA0C;AAC1C,yDAA8D;AAC9D,8CAAwD;AAIxD,IAAI,cAAc,GAAc;IAC9B,EAAC,EAAE,EAAC,YAAY,EAAE,IAAI,EAAC,mBAAmB,EAAC;IAC3C,EAAC,EAAE,EAAC,cAAc,EAAE,IAAI,EAAC,qBAAqB,EAAC;IAC/C,EAAC,EAAE,EAAC,cAAc,EAAE,IAAI,EAAC,eAAe,EAAC;IACzC,EAAC,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,gBAAgB,EAAC;IACzC,EAAC,EAAE,EAAC,cAAc,EAAE,IAAI,EAAC,kBAAkB,EAAC;CAC7C,CAAC;AAEF,IAAI,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC;IAC3C,EAAC,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,iBAAiB,EAAC;IAC1C,EAAC,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,uBAAuB,EAAE,QAAQ,EAAC,WAAW,EAAC;IACpE,EAAC,EAAE,EAAC,YAAY,EAAE,IAAI,EAAC,0BAA0B,EAAC;IAClD,EAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,sBAAsB,EAAC;IAC3C,EAAC,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,0BAA0B,EAAC;CAClD,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,EAAE,IAAI,EAAC;QAChC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC;QAC7C,EAAC,IAAI,EAAC,oBAAoB,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC;QAC/D,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC;QAC9C,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC;QAC/C,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC;QAC7C,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC;QAC/C,EAAC,IAAI,EAAC,wBAAwB,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC;QACjE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC;QAC/C,EAAC,IAAI,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC;QACzD,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC;KACjD,EAAE,CAAA;AAEH,SAAS,yBAAyB,CAAC,EAAS;IAC1C,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,WAAW,CAAC;;QACpF,OAAO,IAAA,sCAAuB,EAAC,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,gBAAiB,SAAQ,sCAAiC;IAAhE;;QAIE,uBAAkB,GAAG,yBAAyB,CAAC;QAG/C,aAAQ,GAAG,eAAe,CAAC;QAC3B,oBAAe,GAAG,sBAAsB,CAAC;QAOzC,aAAQ,GAAG,wBAAwB,CAAC;IAatC,CAAC;IA3BC,UAAU,KAAc,OAAO,IAAI,iBAAQ,EAAE,CAAC,CAAC,CAAC;IAChD,UAAU,KAAc,OAAO,gBAAgB,CAAC,CAAC,CAAC;IAClD,oBAAoB,KAAK,OAAO,CAAC,GAAG,KAAK,CAAC,oBAAoB,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAE5E,WAAW,CAAC,CAAC,IAAW,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,KAAY,OAAO,kBAAkB,CAAC,CAAC,CAAC;IAIpD,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,YAAY,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,YAAY,CAAC,MAAM,IAAI,GAAG,IAAK,YAA4B,CAAC,IAAI,EAAE,CAAC;YACrE,IAAI,UAAU,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC;YAClD,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;;YAAM,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACrD,CAAC;IACD,YAAY;QACV,IAAI,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAM,iBAAkB,SAAQ,gBAAgB;IAAhD;;QAGE,aAAQ,GAAG,6BAA6B,CAAC;IAC3C,CAAC;IAHC,UAAU,KAAK,OAAO,cAAc,CAAC,CAAC,CAAC;IACvC,UAAU,KAAK,OAAO,IAAI,kBAAS,EAAE,CAAC,CAAC,CAAC;CAEzC;AAGD,gBAAgB;AAEhB,MAAe,kBAAmB,SAAQ,mCAAoB;IAA9D;;QAEE,uBAAkB,GAAG,yBAAyB,CAAC;QAC/C,sBAAiB,GAAG,qCAAsB,CAAC;QAE3C,aAAQ,GAAG,eAAe,CAAC;IAC7B,CAAC;IALC,UAAU,KAAK,OAAO,cAAc,CAAC,CAAC,CAAC;IAGvC,oBAAoB,KAAK,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CAE5G;AAED,MAAM,oBAAqB,SAAQ,kBAAkB;IAArD;;QAwBE,iBAAY,GAAG,cAAa,OAAO,kBAAkB,CAAA,CAAC,CAAC,CAAC;IAC1D,CAAC;IAxBC,UAAU,KAAK,OAAO,gBAAgB,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,EAAE,IAAI;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;gBACjC,MAAM,EAAC,eAAe;gBACtB,QAAQ,EAAC,YAAY;gBACrB,OAAO,EAAC,YAAY;gBACpB,MAAM,EAAC,QAAQ;gBACf,KAAK,EAAC,GAAG,GAAC,CAAC;gBACX,MAAM,EAAC,GAAG,GAAC,CAAC;gBACZ,KAAK,EAAC,oBAAoB;gBAC1B,OAAO,EAAC,IAAI,UAAU,CAAC,IAAI,CAAC;gBAC5B,OAAO,EAAC,MAAM;gBACd,OAAO,EAAC,UAAS,KAAK;gBACtB,CAAC;aACF,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,KAAK;IACL,CAAC;CAEF;AAED,MAAM,qBAAsB,SAAQ,kBAAkB;IAAtD;;QAuBE,iBAAY,GAAG;YAAa,OAAO,EAAE,IAAI,EAAC;oBACxC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC;oBAC7C,EAAC,IAAI,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC;oBAC1D,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC;oBAC9C,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC;oBAC/C,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC;oBAC/C,EAAC,IAAI,EAAC,qBAAqB,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC;oBAC/D,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAALine truncated
|
||||
{"version":3,"file":"atari8.js","sourceRoot":"","sources":["../../src/platform/atari8.ts"],"names":[],"mappings":"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 truncated
|
||||
+1
-1
@@ -39,7 +39,7 @@ const C64_PRESETS = [
|
||||
{ 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 Language' },
|
||||
{ id: 'hello.dasm', name: 'Hello World (DASM)', category: 'Assembly' },
|
||||
{ id: 'hello.acme', name: 'Hello World (ACME)' },
|
||||
{ id: 'hello.wiz', name: 'Hello Wiz (Wiz)' },
|
||||
// {id:'kitchensink.dasm', name:'Kitchensink (DASM)'},
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"c64.js","sourceRoot":"","sources":["../../src/platform/c64.ts"],"names":[],"mappings":"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 truncated
|
||||
{"version":3,"file":"c64.js","sourceRoot":"","sources":["../../src/platform/c64.ts"],"names":[],"mappings":"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 truncated
|
||||
+10
-10
@@ -4,16 +4,16 @@ const cpc_1 = require("../machine/cpc");
|
||||
const baseplatform_1 = require("../common/baseplatform");
|
||||
const emu_1 = require("../common/emu");
|
||||
const CPC_PRESETS = [
|
||||
{ id: 'hello.asm', name: 'Hello World (ASM)' },
|
||||
{ id: 'easy_stdio_boxes.c', name: 'Standard I/O (C)' },
|
||||
{ id: 'easy_mode_strings.c', name: 'Video Modes (C)' },
|
||||
{ id: 'easy_random.c', name: 'Random Numbers (C)' },
|
||||
{ id: 'easy_sprites.c', name: 'Keyboard + Sprites (C)' },
|
||||
{ id: 'medium_scrolling.c', name: 'Scrolling Text (C)' },
|
||||
{ id: 'siegegame.c', name: 'Siege Game (C)' },
|
||||
{ id: 'music.c', name: 'Music Player (C)' },
|
||||
//{id:'sprite_demo.c', name:'Sprite Demo (C)'},
|
||||
//{id:'keyboard_redefine.c', name:'Keyboard Redefine (C)'},
|
||||
{ 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:'sprite_demo.c', name:'Sprite Demo'},
|
||||
//{id:'keyboard_redefine.c', name:'Keyboard Redefine'},
|
||||
{ id: 'hello.asm', name: 'Hello World', category: 'Assembly' },
|
||||
];
|
||||
const CPC_MEMORY_MAP = { main: [
|
||||
{ name: 'BIOS', start: 0x0000, size: 0x4000, type: 'rom' },
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"cpc.js","sourceRoot":"","sources":["../../src/platform/cpc.ts"],"names":[],"mappings":";;AACA,wCAAiD;AACjD,yDAA0E;AAC1E,uCAA0C;AAE1C,MAAM,WAAW,GAAG;IAClB,EAAC,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,mBAAmB,EAAC;IAC1C,EAAC,EAAE,EAAC,oBAAoB,EAAE,IAAI,EAAC,kBAAkB,EAAC;IAClD,EAAC,EAAE,EAAC,qBAAqB,EAAE,IAAI,EAAC,iBAAiB,EAAC;IAClD,EAAC,EAAE,EAAC,eAAe,EAAE,IAAI,EAAC,oBAAoB,EAAC;IAC/C,EAAC,EAAE,EAAC,gBAAgB,EAAE,IAAI,EAAC,wBAAwB,EAAC;IACpD,EAAC,EAAE,EAAC,oBAAoB,EAAE,IAAI,EAAC,oBAAoB,EAAC;IACpD,EAAC,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,gBAAgB,EAAC;IACzC,EAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,kBAAkB,EAAC;IACvC,+CAA+C;IAC/C,2DAA2D;CAC5D,CAAC;AAEF,MAAM,cAAc,GAAG,EAAE,IAAI,EAAC;QAC5B,EAAC,IAAI,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;QACpD,EAAC,IAAI,EAAC,YAAY,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;KAC3D,EAAE,CAAA;AAEH,oBAAoB;AACpB,MAAM,eAAgB,SAAQ,qCAAuC;IAEnE,UAAU,KAAc,OAAO,IAAI,qBAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5D,UAAU,KAAc,OAAO,WAAW,CAAC,CAAC,CAAC;IAC7C,WAAW,CAAC,CAAC,IAAW,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,KAAY,OAAO,cAAc,CAAC,CAAC,CAAC;IAChD,QAAQ;QACN,OAAO,8CAA8C,CAAC;IACxD,CAAC;CACF;AAED,gEAAgE;AAChE,eAAS,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC;AACxC,eAAS,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC;AACvC,eAAS,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC"}
|
||||
{"version":3,"file":"cpc.js","sourceRoot":"","sources":["../../src/platform/cpc.ts"],"names":[],"mappings":";;AACA,wCAAiD;AACjD,yDAA0E;AAC1E,uCAA0C;AAE1C,MAAM,WAAW,GAAG;IAClB,EAAC,EAAE,EAAC,oBAAoB,EAAE,IAAI,EAAC,cAAc,EAAE,QAAQ,EAAC,GAAG,EAAC;IAC5D,EAAC,EAAE,EAAC,qBAAqB,EAAE,IAAI,EAAC,aAAa,EAAC;IAC9C,EAAC,EAAE,EAAC,eAAe,EAAE,IAAI,EAAC,gBAAgB,EAAC;IAC3C,EAAC,EAAE,EAAC,gBAAgB,EAAE,IAAI,EAAC,oBAAoB,EAAC;IAChD,EAAC,EAAE,EAAC,oBAAoB,EAAE,IAAI,EAAC,gBAAgB,EAAC;IAChD,EAAC,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,YAAY,EAAC;IACrC,EAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,cAAc,EAAC;IACnC,2CAA2C;IAC3C,uDAAuD;IACvD,EAAC,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,aAAa,EAAE,QAAQ,EAAC,UAAU,EAAC;CAC1D,CAAC;AAEF,MAAM,cAAc,GAAG,EAAE,IAAI,EAAC;QAC5B,EAAC,IAAI,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;QACpD,EAAC,IAAI,EAAC,YAAY,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;KAC3D,EAAE,CAAA;AAEH,oBAAoB;AACpB,MAAM,eAAgB,SAAQ,qCAAuC;IAEnE,UAAU,KAAc,OAAO,IAAI,qBAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5D,UAAU,KAAc,OAAO,WAAW,CAAC,CAAC,CAAC;IAC7C,WAAW,CAAC,CAAC,IAAW,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,KAAY,OAAO,cAAc,CAAC,CAAC,CAAC;IAChD,QAAQ;QACN,OAAO,8CAA8C,CAAC;IACxD,CAAC;CACF;AAED,gEAAgE;AAChE,eAAS,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC;AACxC,eAAS,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC;AACvC,eAAS,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC"}
|
||||
+1
-1
@@ -36,7 +36,7 @@ const JSNES_PRESETS = [
|
||||
{ id: 'climber.c', name: 'Climber Game' },
|
||||
{ id: 'bankswitch.c', name: 'Bank Switching' },
|
||||
{ id: 'irq.c', name: 'IRQ Scanline Counter' },
|
||||
{ id: 'ex0.dasm', name: 'Initialization', category: 'Assembly Language (ASM)' },
|
||||
{ id: 'ex0.dasm', name: 'Initialization', category: 'Assembly' },
|
||||
{ id: 'ex1.dasm', name: 'Hello World' },
|
||||
{ id: 'ex2.dasm', name: 'Scrolling Demo' },
|
||||
{ id: 'ex3.dasm', name: 'Sprite Demo' },
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"nes.js","sourceRoot":"","sources":["../../src/platform/nes.ts"],"names":[],"mappings":"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 truncated
|
||||
{"version":3,"file":"nes.js","sourceRoot":"","sources":["../../src/platform/nes.ts"],"names":[],"mappings":"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 truncated
|
||||
+1
-1
@@ -8,7 +8,7 @@ const ZX_PRESETS = [
|
||||
{ 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: 'assembler' },
|
||||
{ id: 'hello.asm', name: 'Hello World (ASM)', category: 'Assembly' },
|
||||
// {id:'kitchensink.zmac', name:'Kitchensink (ZMAC)'},
|
||||
];
|
||||
const ZX_MEMORY_MAP = { main: [
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"zx.js","sourceRoot":"","sources":["../../src/platform/zx.ts"],"names":[],"mappings":";;AACA,sCAA+C;AAC/C,yDAA0E;AAC1E,uCAA0C;AAE1C,MAAM,UAAU,GAAG;IACjB,EAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,eAAe,EAAE,QAAQ,EAAC,GAAG,EAAC;IACjD,EAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,aAAa,EAAE,QAAQ,EAAC,GAAG,EAAC;IAChD,EAAC,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,YAAY,EAAC;IACrC,EAAC,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,gBAAgB,EAAC;IACtC,EAAC,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,mBAAmB,EAAE,QAAQ,EAAC,WAAW,EAAC;IAChE,sDAAsD;CACvD,CAAC;AAEF,MAAM,aAAa,GAAG,EAAE,IAAI,EAAC;QAC3B,EAAC,IAAI,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;QACpD,EAAC,IAAI,EAAC,YAAY,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;QAC1D,EAAC,IAAI,EAAC,WAAW,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAE,IAAI,EAAC,KAAK,EAAC;QACxD,gEAAgE;QAChE,EAAC,IAAI,EAAC,YAAY,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,IAAI,EAAE,IAAI,EAAC,KAAK,EAAC;QACxD,EAAC,IAAI,EAAC,UAAU,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,GAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;KAChE,EAAE,CAAA;AAEH,4BAA4B;AAC5B,MAAM,cAAe,SAAQ,qCAAsC;IAEjE,UAAU,KAAc,OAAO,IAAI,mBAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE1D,UAAU,KAAc,OAAO,UAAU,CAAC,CAAC,CAAC;IAE5C,WAAW,CAAC,CAAC,IAAW,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,KAAY,OAAO,aAAa,CAAC,CAAC,CAAC;IAC/C,QAAQ;QACN,OAAO,6CAA6C,CAAC;IACvD,CAAC;CACF;AAED,eAAS,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC"}
|
||||
{"version":3,"file":"zx.js","sourceRoot":"","sources":["../../src/platform/zx.ts"],"names":[],"mappings":";;AACA,sCAA+C;AAC/C,yDAA0E;AAC1E,uCAA0C;AAE1C,MAAM,UAAU,GAAG;IACjB,EAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,eAAe,EAAE,QAAQ,EAAC,GAAG,EAAC;IACjD,EAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,aAAa,EAAE,QAAQ,EAAC,GAAG,EAAC;IAChD,EAAC,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,YAAY,EAAC;IACrC,EAAC,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,gBAAgB,EAAC;IACtC,EAAC,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,mBAAmB,EAAE,QAAQ,EAAC,UAAU,EAAC;IAC/D,sDAAsD;CACvD,CAAC;AAEF,MAAM,aAAa,GAAG,EAAE,IAAI,EAAC;QAC3B,EAAC,IAAI,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;QACpD,EAAC,IAAI,EAAC,YAAY,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;QAC1D,EAAC,IAAI,EAAC,WAAW,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAE,IAAI,EAAC,KAAK,EAAC;QACxD,gEAAgE;QAChE,EAAC,IAAI,EAAC,YAAY,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,IAAI,EAAE,IAAI,EAAC,KAAK,EAAC;QACxD,EAAC,IAAI,EAAC,UAAU,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,GAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;KAChE,EAAE,CAAA;AAEH,4BAA4B;AAC5B,MAAM,cAAe,SAAQ,qCAAsC;IAEjE,UAAU,KAAc,OAAO,IAAI,mBAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE1D,UAAU,KAAc,OAAO,UAAU,CAAC,CAAC,CAAC;IAE5C,WAAW,CAAC,CAAC,IAAW,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,KAAY,OAAO,aAAa,CAAC,CAAC,CAAC;IAC/C,QAAQ;QACN,OAAO,6CAA6C,CAAC;IACvD,CAAC;CACF;AAED,eAAS,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC"}
|
||||
+7
-2
@@ -1019,8 +1019,13 @@ async function setCompileOutput(data) {
|
||||
_resetRecording();
|
||||
await exports.platform.loadROM(getCurrentPresetTitle(), rom, data.origin);
|
||||
current_output = rom;
|
||||
if (!userPaused)
|
||||
_resume();
|
||||
// re-arm breakpoints before the new ROM gets to run: clearBreakpoint()
|
||||
// above disarmed them, and code that only runs at startup (main() on the
|
||||
// C64, say) would race past them before anything else re-armed
|
||||
if (!userPaused) {
|
||||
if (breakpoints_1.bpStore.getEnabled().length == 0 || !armBreakpoints())
|
||||
_resume();
|
||||
}
|
||||
writeOutputROMFile();
|
||||
}
|
||||
catch (e) {
|
||||
|
||||
@@ -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
|
||||
@@ -143,15 +143,9 @@ class OffsetMarker extends view_1.GutterMarker {
|
||||
}
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-offset-marker";
|
||||
span.textContent = this.hex;
|
||||
span.style.cursor = "pointer";
|
||||
span.title = "Click to run to here";
|
||||
span.addEventListener("mouseenter", () => {
|
||||
span.style.textDecoration = "underline";
|
||||
});
|
||||
span.addEventListener("mouseleave", () => {
|
||||
span.style.textDecoration = "none";
|
||||
});
|
||||
return span;
|
||||
}
|
||||
eq(other) { return this.hex == other.hex; }
|
||||
@@ -175,15 +169,8 @@ class ClockMarker extends view_1.GutterMarker {
|
||||
const BREAKPOINT_PLACEHOLDER_MARKER = new class extends view_1.GutterMarker {
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-breakpoint-placeholder";
|
||||
span.textContent = "●";
|
||||
span.style.color = "transparent";
|
||||
span.style.cursor = "pointer";
|
||||
span.addEventListener("mouseenter", () => {
|
||||
span.style.color = "rgba(255, 0, 0, 0.5)";
|
||||
});
|
||||
span.addEventListener("mouseleave", () => {
|
||||
span.style.color = "transparent";
|
||||
});
|
||||
return span;
|
||||
}
|
||||
};
|
||||
@@ -194,9 +181,8 @@ class BreakpointMarker extends view_1.GutterMarker {
|
||||
}
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-breakpoint " + (this.enabled ? "gutter-breakpoint-enabled" : "gutter-breakpoint-disabled");
|
||||
span.innerHTML = "●";
|
||||
span.style.color = this.enabled ? "rgba(255, 0, 0, 1.0)" : "rgba(255, 255, 255, 0.35)";
|
||||
span.style.cursor = "pointer";
|
||||
span.title = this.enabled ? "Breakpoint (click to remove; manage in Breakpoints window)" : "Disabled breakpoint (click to remove)";
|
||||
return span;
|
||||
}
|
||||
@@ -212,9 +198,8 @@ class ErrorMarker extends view_1.GutterMarker {
|
||||
}
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-error";
|
||||
span.innerHTML = "ⓧ";
|
||||
span.style.color = "red";
|
||||
span.style.cursor = "pointer";
|
||||
span.title = this.msg;
|
||||
return span;
|
||||
}
|
||||
@@ -223,25 +208,17 @@ class ErrorMarker extends view_1.GutterMarker {
|
||||
const CURRENT_PC_PLACEHOLDER_MARKER = new class extends view_1.GutterMarker {
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-currentpc-placeholder";
|
||||
span.textContent = "▶";
|
||||
span.style.color = "transparent";
|
||||
span.style.cursor = "pointer";
|
||||
span.title = "Click to run to here";
|
||||
span.addEventListener("mouseenter", () => {
|
||||
span.style.color = "#ffee66";
|
||||
});
|
||||
span.addEventListener("mouseleave", () => {
|
||||
span.style.color = "transparent";
|
||||
});
|
||||
return span;
|
||||
}
|
||||
};
|
||||
const CURRENT_PC_MARKER = new class extends view_1.GutterMarker {
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-currentpc";
|
||||
span.innerHTML = "▶";
|
||||
span.style.color = "#ff66ee";
|
||||
span.style.cursor = "pointer";
|
||||
span.title = "Current PC";
|
||||
return span;
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"gutter.js","sourceRoot":"","sources":["../../../../src/ide/views/gutter.ts"],"names":[],"mappings":"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 truncated
|
||||
{"version":3,"file":"gutter.js","sourceRoot":"","sources":["../../../../src/ide/views/gutter.ts"],"names":[],"mappings":"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 truncated
|
||||
@@ -4,7 +4,7 @@ const atari7800_1 = require("../machine/atari7800");
|
||||
const baseplatform_1 = require("../common/baseplatform");
|
||||
const emu_1 = require("../common/emu");
|
||||
var Atari7800_PRESETS = [
|
||||
{ id: 'sprites.dasm', name: 'Sprites (ASM)', category: 'Assembler' },
|
||||
{ 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' },
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"atari7800.js","sourceRoot":"","sources":["../../../src/platform/atari7800.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"atari7800.js","sourceRoot":"","sources":["../../../src/platform/atari7800.ts"],"names":[],"mappings":"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"}
|
||||
+10
-10
@@ -5,18 +5,18 @@ const emu_1 = require("../common/emu");
|
||||
const mameplatform_1 = require("../common/mameplatform");
|
||||
const atari8_1 = require("../machine/atari8");
|
||||
var Atari8_PRESETS = [
|
||||
{ id: 'hello.dasm', name: 'Hello World (ASM)' },
|
||||
{ id: 'hellopm.dasm', name: 'Hello Sprites (ASM)' },
|
||||
{ id: 'helloconio.c', name: 'Text Mode (C)' },
|
||||
{ id: 'siegegame.c', name: 'Siege Game (C)' },
|
||||
{ id: 'hellodlist.c', name: 'Display List (C)' },
|
||||
{ id: 'hello.dasm', name: 'Hello World', category: 'Assembly' },
|
||||
{ id: 'hellopm.dasm', name: 'Hello Sprites' },
|
||||
{ id: 'helloconio.c', name: 'Text Mode', category: 'C' },
|
||||
{ id: 'siegegame.c', name: 'Siege Game' },
|
||||
{ id: 'hellodlist.c', name: 'Display List' },
|
||||
];
|
||||
var Atari800_PRESETS = Atari8_PRESETS.concat([
|
||||
{ id: 'testmusic.c', name: 'POKEY Music (C)' },
|
||||
{ id: 'sieve.bas', name: 'Benchmark (FastBasic)', category: 'FastBasic' },
|
||||
{ id: 'pmtest.bas', name: 'Sprites Test (FastBasic)' },
|
||||
{ id: 'dli.bas', name: 'DLI Test (FastBasic)' },
|
||||
{ id: 'joyas.bas', name: 'Match-3 Game (FastBasic)' },
|
||||
{ id: 'testmusic.c', name: 'POKEY Music' },
|
||||
{ id: 'sieve.bas', name: 'Benchmark', category: 'FastBasic' },
|
||||
{ id: 'pmtest.bas', name: 'Sprites Test' },
|
||||
{ id: 'dli.bas', name: 'DLI Test' },
|
||||
{ id: 'joyas.bas', name: 'Match-3 Game' },
|
||||
]);
|
||||
const Atari800_MemoryMap = { main: [
|
||||
{ name: 'RAM', start: 0x0, size: 0xc000, type: 'ram' },
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"atari8.js","sourceRoot":"","sources":["../../../src/platform/atari8.ts"],"names":[],"mappings":"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 truncated
|
||||
{"version":3,"file":"atari8.js","sourceRoot":"","sources":["../../../src/platform/atari8.ts"],"names":[],"mappings":"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 truncated
|
||||
@@ -39,7 +39,7 @@ const C64_PRESETS = [
|
||||
{ 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 Language' },
|
||||
{ id: 'hello.dasm', name: 'Hello World (DASM)', category: 'Assembly' },
|
||||
{ id: 'hello.acme', name: 'Hello World (ACME)' },
|
||||
{ id: 'hello.wiz', name: 'Hello Wiz (Wiz)' },
|
||||
// {id:'kitchensink.dasm', name:'Kitchensink (DASM)'},
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"c64.js","sourceRoot":"","sources":["../../../src/platform/c64.ts"],"names":[],"mappings":"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 truncated
|
||||
{"version":3,"file":"c64.js","sourceRoot":"","sources":["../../../src/platform/c64.ts"],"names":[],"mappings":"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 truncated
|
||||
+10
-10
@@ -4,16 +4,16 @@ const cpc_1 = require("../machine/cpc");
|
||||
const baseplatform_1 = require("../common/baseplatform");
|
||||
const emu_1 = require("../common/emu");
|
||||
const CPC_PRESETS = [
|
||||
{ id: 'hello.asm', name: 'Hello World (ASM)' },
|
||||
{ id: 'easy_stdio_boxes.c', name: 'Standard I/O (C)' },
|
||||
{ id: 'easy_mode_strings.c', name: 'Video Modes (C)' },
|
||||
{ id: 'easy_random.c', name: 'Random Numbers (C)' },
|
||||
{ id: 'easy_sprites.c', name: 'Keyboard + Sprites (C)' },
|
||||
{ id: 'medium_scrolling.c', name: 'Scrolling Text (C)' },
|
||||
{ id: 'siegegame.c', name: 'Siege Game (C)' },
|
||||
{ id: 'music.c', name: 'Music Player (C)' },
|
||||
//{id:'sprite_demo.c', name:'Sprite Demo (C)'},
|
||||
//{id:'keyboard_redefine.c', name:'Keyboard Redefine (C)'},
|
||||
{ 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:'sprite_demo.c', name:'Sprite Demo'},
|
||||
//{id:'keyboard_redefine.c', name:'Keyboard Redefine'},
|
||||
{ id: 'hello.asm', name: 'Hello World', category: 'Assembly' },
|
||||
];
|
||||
const CPC_MEMORY_MAP = { main: [
|
||||
{ name: 'BIOS', start: 0x0000, size: 0x4000, type: 'rom' },
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"cpc.js","sourceRoot":"","sources":["../../../src/platform/cpc.ts"],"names":[],"mappings":";;AACA,wCAAiD;AACjD,yDAA0E;AAC1E,uCAA0C;AAE1C,MAAM,WAAW,GAAG;IAClB,EAAC,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,mBAAmB,EAAC;IAC1C,EAAC,EAAE,EAAC,oBAAoB,EAAE,IAAI,EAAC,kBAAkB,EAAC;IAClD,EAAC,EAAE,EAAC,qBAAqB,EAAE,IAAI,EAAC,iBAAiB,EAAC;IAClD,EAAC,EAAE,EAAC,eAAe,EAAE,IAAI,EAAC,oBAAoB,EAAC;IAC/C,EAAC,EAAE,EAAC,gBAAgB,EAAE,IAAI,EAAC,wBAAwB,EAAC;IACpD,EAAC,EAAE,EAAC,oBAAoB,EAAE,IAAI,EAAC,oBAAoB,EAAC;IACpD,EAAC,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,gBAAgB,EAAC;IACzC,EAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,kBAAkB,EAAC;IACvC,+CAA+C;IAC/C,2DAA2D;CAC5D,CAAC;AAEF,MAAM,cAAc,GAAG,EAAE,IAAI,EAAC;QAC5B,EAAC,IAAI,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;QACpD,EAAC,IAAI,EAAC,YAAY,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;KAC3D,EAAE,CAAA;AAEH,oBAAoB;AACpB,MAAM,eAAgB,SAAQ,qCAAuC;IAEnE,UAAU,KAAc,OAAO,IAAI,qBAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5D,UAAU,KAAc,OAAO,WAAW,CAAC,CAAC,CAAC;IAC7C,WAAW,CAAC,CAAC,IAAW,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,KAAY,OAAO,cAAc,CAAC,CAAC,CAAC;IAChD,QAAQ;QACN,OAAO,8CAA8C,CAAC;IACxD,CAAC;CACF;AAED,gEAAgE;AAChE,eAAS,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC;AACxC,eAAS,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC;AACvC,eAAS,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC"}
|
||||
{"version":3,"file":"cpc.js","sourceRoot":"","sources":["../../../src/platform/cpc.ts"],"names":[],"mappings":";;AACA,wCAAiD;AACjD,yDAA0E;AAC1E,uCAA0C;AAE1C,MAAM,WAAW,GAAG;IAClB,EAAC,EAAE,EAAC,oBAAoB,EAAE,IAAI,EAAC,cAAc,EAAE,QAAQ,EAAC,GAAG,EAAC;IAC5D,EAAC,EAAE,EAAC,qBAAqB,EAAE,IAAI,EAAC,aAAa,EAAC;IAC9C,EAAC,EAAE,EAAC,eAAe,EAAE,IAAI,EAAC,gBAAgB,EAAC;IAC3C,EAAC,EAAE,EAAC,gBAAgB,EAAE,IAAI,EAAC,oBAAoB,EAAC;IAChD,EAAC,EAAE,EAAC,oBAAoB,EAAE,IAAI,EAAC,gBAAgB,EAAC;IAChD,EAAC,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,YAAY,EAAC;IACrC,EAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,cAAc,EAAC;IACnC,2CAA2C;IAC3C,uDAAuD;IACvD,EAAC,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,aAAa,EAAE,QAAQ,EAAC,UAAU,EAAC;CAC1D,CAAC;AAEF,MAAM,cAAc,GAAG,EAAE,IAAI,EAAC;QAC5B,EAAC,IAAI,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;QACpD,EAAC,IAAI,EAAC,YAAY,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;KAC3D,EAAE,CAAA;AAEH,oBAAoB;AACpB,MAAM,eAAgB,SAAQ,qCAAuC;IAEnE,UAAU,KAAc,OAAO,IAAI,qBAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5D,UAAU,KAAc,OAAO,WAAW,CAAC,CAAC,CAAC;IAC7C,WAAW,CAAC,CAAC,IAAW,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,KAAY,OAAO,cAAc,CAAC,CAAC,CAAC;IAChD,QAAQ;QACN,OAAO,8CAA8C,CAAC;IACxD,CAAC;CACF;AAED,gEAAgE;AAChE,eAAS,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC;AACxC,eAAS,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC;AACvC,eAAS,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC"}
|
||||
@@ -36,7 +36,7 @@ const JSNES_PRESETS = [
|
||||
{ id: 'climber.c', name: 'Climber Game' },
|
||||
{ id: 'bankswitch.c', name: 'Bank Switching' },
|
||||
{ id: 'irq.c', name: 'IRQ Scanline Counter' },
|
||||
{ id: 'ex0.dasm', name: 'Initialization', category: 'Assembly Language (ASM)' },
|
||||
{ id: 'ex0.dasm', name: 'Initialization', category: 'Assembly' },
|
||||
{ id: 'ex1.dasm', name: 'Hello World' },
|
||||
{ id: 'ex2.dasm', name: 'Scrolling Demo' },
|
||||
{ id: 'ex3.dasm', name: 'Sprite Demo' },
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"nes.js","sourceRoot":"","sources":["../../../src/platform/nes.ts"],"names":[],"mappings":"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 truncated
|
||||
{"version":3,"file":"nes.js","sourceRoot":"","sources":["../../../src/platform/nes.ts"],"names":[],"mappings":"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 truncated
|
||||
@@ -8,7 +8,7 @@ const ZX_PRESETS = [
|
||||
{ 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: 'assembler' },
|
||||
{ id: 'hello.asm', name: 'Hello World (ASM)', category: 'Assembly' },
|
||||
// {id:'kitchensink.zmac', name:'Kitchensink (ZMAC)'},
|
||||
];
|
||||
const ZX_MEMORY_MAP = { main: [
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"zx.js","sourceRoot":"","sources":["../../../src/platform/zx.ts"],"names":[],"mappings":";;AACA,sCAA+C;AAC/C,yDAA0E;AAC1E,uCAA0C;AAE1C,MAAM,UAAU,GAAG;IACjB,EAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,eAAe,EAAE,QAAQ,EAAC,GAAG,EAAC;IACjD,EAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,aAAa,EAAE,QAAQ,EAAC,GAAG,EAAC;IAChD,EAAC,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,YAAY,EAAC;IACrC,EAAC,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,gBAAgB,EAAC;IACtC,EAAC,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,mBAAmB,EAAE,QAAQ,EAAC,WAAW,EAAC;IAChE,sDAAsD;CACvD,CAAC;AAEF,MAAM,aAAa,GAAG,EAAE,IAAI,EAAC;QAC3B,EAAC,IAAI,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;QACpD,EAAC,IAAI,EAAC,YAAY,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;QAC1D,EAAC,IAAI,EAAC,WAAW,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAE,IAAI,EAAC,KAAK,EAAC;QACxD,gEAAgE;QAChE,EAAC,IAAI,EAAC,YAAY,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,IAAI,EAAE,IAAI,EAAC,KAAK,EAAC;QACxD,EAAC,IAAI,EAAC,UAAU,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,GAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;KAChE,EAAE,CAAA;AAEH,4BAA4B;AAC5B,MAAM,cAAe,SAAQ,qCAAsC;IAEjE,UAAU,KAAc,OAAO,IAAI,mBAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE1D,UAAU,KAAc,OAAO,UAAU,CAAC,CAAC,CAAC;IAE5C,WAAW,CAAC,CAAC,IAAW,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,KAAY,OAAO,aAAa,CAAC,CAAC,CAAC;IAC/C,QAAQ;QACN,OAAO,6CAA6C,CAAC;IACvD,CAAC;CACF;AAED,eAAS,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC"}
|
||||
{"version":3,"file":"zx.js","sourceRoot":"","sources":["../../../src/platform/zx.ts"],"names":[],"mappings":";;AACA,sCAA+C;AAC/C,yDAA0E;AAC1E,uCAA0C;AAE1C,MAAM,UAAU,GAAG;IACjB,EAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,eAAe,EAAE,QAAQ,EAAC,GAAG,EAAC;IACjD,EAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,aAAa,EAAE,QAAQ,EAAC,GAAG,EAAC;IAChD,EAAC,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,YAAY,EAAC;IACrC,EAAC,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,gBAAgB,EAAC;IACtC,EAAC,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,mBAAmB,EAAE,QAAQ,EAAC,UAAU,EAAC;IAC/D,sDAAsD;CACvD,CAAC;AAEF,MAAM,aAAa,GAAG,EAAE,IAAI,EAAC;QAC3B,EAAC,IAAI,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;QACpD,EAAC,IAAI,EAAC,YAAY,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;QAC1D,EAAC,IAAI,EAAC,WAAW,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAE,IAAI,EAAC,KAAK,EAAC;QACxD,gEAAgE;QAChE,EAAC,IAAI,EAAC,YAAY,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,IAAI,EAAE,IAAI,EAAC,KAAK,EAAC;QACxD,EAAC,IAAI,EAAC,UAAU,EAAE,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,GAAC,MAAM,EAAE,IAAI,EAAC,KAAK,EAAC;KAChE,EAAE,CAAA;AAEH,4BAA4B;AAC5B,MAAM,cAAe,SAAQ,qCAAsC;IAEjE,UAAU,KAAc,OAAO,IAAI,mBAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE1D,UAAU,KAAc,OAAO,UAAU,CAAC,CAAC,CAAC;IAE5C,WAAW,CAAC,CAAC,IAAW,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,KAAY,OAAO,aAAa,CAAC,CAAC,CAAC;IAC/C,QAAQ;QACN,OAAO,6CAA6C,CAAC;IACvD,CAAC;CACF;AAED,eAAS,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC"}
|
||||
@@ -96,6 +96,16 @@ const MAX_CYCLES_PER_INSN = 64;
|
||||
* modules pick these up because Platform.start() reads them off the emu module.
|
||||
*/
|
||||
function installHeadlessVideo() {
|
||||
// Platform.start() builds its video/timer by reading these classes off the
|
||||
// emu module, so we swap in headless stand-ins for the duration of start()
|
||||
// and put the real ones back afterwards. Leaving the stubs installed would
|
||||
// leak into every other module sharing the (cached) emu import -- which is
|
||||
// exactly what happens when mocha reuses a worker across test files.
|
||||
const original = {
|
||||
RasterVideo: emu.RasterVideo,
|
||||
VectorVideo: emu.VectorVideo,
|
||||
AnimationTimer: emu.AnimationTimer,
|
||||
};
|
||||
let pixels = null;
|
||||
let params = null;
|
||||
emu.RasterVideo = function (_el, width, height) {
|
||||
@@ -133,6 +143,11 @@ function installHeadlessVideo() {
|
||||
return {
|
||||
get() {
|
||||
return pixels && params ? { pixels, width: params.width, height: params.height } : null;
|
||||
},
|
||||
restore() {
|
||||
emu.RasterVideo = original.RasterVideo;
|
||||
emu.VectorVideo = original.VectorVideo;
|
||||
emu.AnimationTimer = original.AnimationTimer;
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -141,7 +156,7 @@ class EmuTarget {
|
||||
this.id = id;
|
||||
this.platform = platform;
|
||||
this.frameCount = 0;
|
||||
this.video = installHeadlessVideo();
|
||||
this.video = null;
|
||||
}
|
||||
/**
|
||||
* The underlying Machine, if there is one. Platforms built on
|
||||
@@ -152,7 +167,18 @@ class EmuTarget {
|
||||
get machine() {
|
||||
return this.platform.machine || null;
|
||||
}
|
||||
async start() { await this.platform.start(); }
|
||||
async start() {
|
||||
// start() is where platforms construct their video and timer, so install
|
||||
// the headless stand-ins just for that call, then restore the real classes.
|
||||
const headless = installHeadlessVideo();
|
||||
this.video = headless;
|
||||
try {
|
||||
await this.platform.start();
|
||||
}
|
||||
finally {
|
||||
headless.restore();
|
||||
}
|
||||
}
|
||||
reset() { this.platform.reset(); }
|
||||
loadROM(data, title = 'ROM') { this.platform.loadROM(title, data); }
|
||||
loadBIOS(data, title = 'BIOS') {
|
||||
@@ -215,7 +241,7 @@ class EmuTarget {
|
||||
m.connectProbe(probe);
|
||||
return true;
|
||||
}
|
||||
getVideo() { return this.video.get(); }
|
||||
getVideo() { return this.video ? this.video.get() : null; }
|
||||
saveState() { return this.platform.saveState ? this.platform.saveState() : null; }
|
||||
getDebugInfo() {
|
||||
const state = this.saveState();
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"emutarget.js","sourceRoot":"","sources":["../../../src/tools/emutarget.ts"],"names":[],"mappings":"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 truncated
|
||||
{"version":3,"file":"emutarget.js","sourceRoot":"","sources":["../../../src/tools/emutarget.ts"],"names":[],"mappings":"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 truncated
|
||||
@@ -1 +1 @@
|
||||
{"root":["../../test/unit/testanalysis.ts","../../test/unit/testassembler.ts","../../test/unit/testassetscan.ts","../../test/unit/testbaseplatform.ts","../../test/unit/testbataribasic.ts","../../test/unit/testbreakpoints.ts","../../test/unit/testbuildparams.ts","../../test/unit/testcommon.ts","../../test/unit/testcommon_ext.ts","../../test/unit/testdasm.ts","../../test/unit/testecs.ts","../../test/unit/testelfparser.ts","../../test/unit/testemu.ts","../../test/unit/testkeys.ts","../../test/unit/testlibretro.ts","../../test/unit/testlinking.ts","../../test/unit/testlistinglocation.ts","../../test/unit/testpixelclipboard.ts","../../test/unit/testpixelpalette.ts","../../test/unit/testpresets.ts","../../test/unit/testrunevalatpc.ts","../../test/unit/testsearchdebuggerhit.ts","../../test/unit/testsearchdocs.ts","../../test/unit/testsearchindex.ts","../../test/unit/testsearchsymbols.ts","../../test/unit/testsearchtoolchain.ts","../../test/unit/teststepover.ts","../../test/unit/teststorage.ts","../../test/unit/testtoolmeta.ts","../../test/unit/testtoolselect.ts","../../test/unit/testutil.ts","../../test/unit/testwasishim.ts","../../test/unit/testz80probe.ts","../../src/md.d.ts","../../src/common/analysis.ts","../../src/common/audio.ts","../../src/common/baseplatform.ts","../../src/common/binutils.ts","../../src/common/devices.ts","../../src/common/emu.ts","../../src/common/gbpalette.ts","../../src/common/mameplatform.ts","../../src/common/probe.ts","../../src/common/recorder.ts","../../src/common/searchtypes.ts","../../src/common/teletype.ts","../../src/common/tokenizer.ts","../../src/common/toolmeta.ts","../../src/common/util.ts","../../src/common/vlist.ts","../../src/common/vtextscroller.ts","../../src/common/wasmplatform.ts","../../src/common/workertypes.ts","../../src/common/audio/CommodoreTape.ts","../../src/common/basic/compiler.ts","../../src/common/basic/fuzz.ts","../../src/common/basic/run.ts","../../src/common/basic/runtime.ts","../../src/common/cpu/6809.ts","../../src/common/cpu/ARM.ts","../../src/common/cpu/F8.ts","../../src/common/cpu/MOS6502.ts","../../src/common/cpu/SM83.ts","../../src/common/cpu/ZilogZ80.ts","../../src/common/cpu/disasm6502.ts","../../src/common/cpu/disasmF8.ts","../../src/common/cpu/disasmHuC6280.ts","../../src/common/cpu/disasmSM83.ts","../../src/common/cpu/disasmz80.ts","../../src/common/ecs/binpack.ts","../../src/common/ecs/compiler.ts","../../src/common/ecs/decoder.ts","../../src/common/ecs/ecs.ts","../../src/common/ecs/main.ts","../../src/common/hdl/fuzz.ts","../../src/common/hdl/hdlruntime.ts","../../src/common/hdl/hdltypes.ts","../../src/common/hdl/hdlwasm.ts","../../src/common/hdl/vxmlparser.ts","../../src/common/hdl/vxmltest.ts","../../src/common/symbols/doccomment.ts","../../src/common/symbols/index.ts","../../src/common/wasi/libretro.ts","../../src/common/wasi/wasishim.ts","../../src/ide/breakcond.ts","../../src/ide/breakpoints.ts","../../src/ide/dialogs.ts","../../src/ide/embedui.ts","../../src/ide/errorreport.ts","../../src/ide/keys.ts","../../src/ide/layout.ts","../../src/ide/pixeleditor.ts","../../src/ide/project.ts","../../src/ide/services.ts","../../src/ide/settings.ts","../../src/ide/shareexport.ts","../../src/ide/shortcutbar.ts","../../src/ide/storage.ts","../../src/ide/sync.ts","../../src/ide/toolbar.ts","../../src/ide/ui.ts","../../src/ide/waveform.ts","../../src/ide/windows.ts","../../src/ide/search/debuggerhit.ts","../../src/ide/search/docssource.ts","../../src/ide/search/listinglocation.ts","../../src/ide/search/projectsource.ts","../../src/ide/search/searchview.ts","../../src/ide/search/service.ts","../../src/ide/search/symbolindex.ts","../../src/ide/search/toolchainsource.ts","../../src/ide/search/types.ts","../../src/ide/views/assetdecorations.ts","../../src/ide/views/asseteditor.ts","../../src/ide/views/baseviews.ts","../../src/ide/views/debug.ts","../../src/ide/views/debugviews.ts","../../src/ide/views/editors.ts","../../src/ide/views/filters.ts","../../src/ide/views/gutter.ts","../../src/ide/views/helpview.ts","../../src/ide/views/includedecorations.ts","../../src/ide/views/tabs.ts","../../src/ide/views/traceviews.ts","../../src/ide/views/treeviews.ts","../../src/ide/views/visuals.ts","../../src/machine/apple2.ts","../../src/machine/arm32.ts","../../src/machine/astrocade.ts","../../src/machine/atari7800.ts","../../src/machine/atari8.ts","../../src/machine/c64.ts","../../src/machine/channelf.ts","../../src/machine/coleco.ts","../../src/machine/cpc.ts","../../src/machine/devel.ts","../../src/machine/exidy.ts","../../src/machine/galaxian.ts","../../src/machine/gb.ts","../../src/machine/kim1.ts","../../src/machine/mcr.ts","../../src/machine/msx.ts","../../src/machine/mw8080bw.ts","../../src/machine/pacman.ts","../../src/machine/sms.ts","../../src/machine/vdp_z80.ts","../../src/machine/vic20.ts","../../src/machine/vicdual.ts","../../src/machine/williams.ts","../../src/machine/zx.ts","../../src/machine/chips/antic.ts","../../src/machine/chips/gtia.ts","../Line truncated
|
||||
{"root":["../../test/unit/testanalysis.ts","../../test/unit/testassembler.ts","../../test/unit/testassetscan.ts","../../test/unit/testbaseplatform.ts","../../test/unit/testbataribasic.ts","../../test/unit/testbreakpoints.ts","../../test/unit/testbuildparams.ts","../../test/unit/testc64breakpoints.ts","../../test/unit/testcommon.ts","../../test/unit/testcommon_ext.ts","../../test/unit/testdasm.ts","../../test/unit/testecs.ts","../../test/unit/testelfparser.ts","../../test/unit/testemu.ts","../../test/unit/testkeys.ts","../../test/unit/testlibretro.ts","../../test/unit/testlinking.ts","../../test/unit/testlistinglocation.ts","../../test/unit/testpixelclipboard.ts","../../test/unit/testpixelpalette.ts","../../test/unit/testpresets.ts","../../test/unit/testrunevalatpc.ts","../../test/unit/testsearchdebuggerhit.ts","../../test/unit/testsearchdocs.ts","../../test/unit/testsearchindex.ts","../../test/unit/testsearchsymbols.ts","../../test/unit/testsearchtoolchain.ts","../../test/unit/teststepover.ts","../../test/unit/teststorage.ts","../../test/unit/testtoolmeta.ts","../../test/unit/testtoolselect.ts","../../test/unit/testutil.ts","../../test/unit/testwasishim.ts","../../test/unit/testz80probe.ts","../../src/md.d.ts","../../src/common/analysis.ts","../../src/common/audio.ts","../../src/common/baseplatform.ts","../../src/common/binutils.ts","../../src/common/devices.ts","../../src/common/emu.ts","../../src/common/gbpalette.ts","../../src/common/mameplatform.ts","../../src/common/probe.ts","../../src/common/recorder.ts","../../src/common/searchtypes.ts","../../src/common/teletype.ts","../../src/common/tokenizer.ts","../../src/common/toolmeta.ts","../../src/common/util.ts","../../src/common/vlist.ts","../../src/common/vtextscroller.ts","../../src/common/wasmplatform.ts","../../src/common/workertypes.ts","../../src/common/audio/CommodoreTape.ts","../../src/common/basic/compiler.ts","../../src/common/basic/fuzz.ts","../../src/common/basic/run.ts","../../src/common/basic/runtime.ts","../../src/common/cpu/6809.ts","../../src/common/cpu/ARM.ts","../../src/common/cpu/F8.ts","../../src/common/cpu/MOS6502.ts","../../src/common/cpu/SM83.ts","../../src/common/cpu/ZilogZ80.ts","../../src/common/cpu/disasm6502.ts","../../src/common/cpu/disasmF8.ts","../../src/common/cpu/disasmHuC6280.ts","../../src/common/cpu/disasmSM83.ts","../../src/common/cpu/disasmz80.ts","../../src/common/ecs/binpack.ts","../../src/common/ecs/compiler.ts","../../src/common/ecs/decoder.ts","../../src/common/ecs/ecs.ts","../../src/common/ecs/main.ts","../../src/common/hdl/fuzz.ts","../../src/common/hdl/hdlruntime.ts","../../src/common/hdl/hdltypes.ts","../../src/common/hdl/hdlwasm.ts","../../src/common/hdl/vxmlparser.ts","../../src/common/hdl/vxmltest.ts","../../src/common/symbols/doccomment.ts","../../src/common/symbols/index.ts","../../src/common/wasi/libretro.ts","../../src/common/wasi/wasishim.ts","../../src/ide/breakcond.ts","../../src/ide/breakpoints.ts","../../src/ide/dialogs.ts","../../src/ide/embedui.ts","../../src/ide/errorreport.ts","../../src/ide/keys.ts","../../src/ide/layout.ts","../../src/ide/pixeleditor.ts","../../src/ide/project.ts","../../src/ide/services.ts","../../src/ide/settings.ts","../../src/ide/shareexport.ts","../../src/ide/shortcutbar.ts","../../src/ide/storage.ts","../../src/ide/sync.ts","../../src/ide/toolbar.ts","../../src/ide/ui.ts","../../src/ide/waveform.ts","../../src/ide/windows.ts","../../src/ide/search/debuggerhit.ts","../../src/ide/search/docssource.ts","../../src/ide/search/listinglocation.ts","../../src/ide/search/projectsource.ts","../../src/ide/search/searchview.ts","../../src/ide/search/service.ts","../../src/ide/search/symbolindex.ts","../../src/ide/search/toolchainsource.ts","../../src/ide/search/types.ts","../../src/ide/views/assetdecorations.ts","../../src/ide/views/asseteditor.ts","../../src/ide/views/baseviews.ts","../../src/ide/views/debug.ts","../../src/ide/views/debugviews.ts","../../src/ide/views/editors.ts","../../src/ide/views/filters.ts","../../src/ide/views/gutter.ts","../../src/ide/views/helpview.ts","../../src/ide/views/includedecorations.ts","../../src/ide/views/tabs.ts","../../src/ide/views/traceviews.ts","../../src/ide/views/treeviews.ts","../../src/ide/views/visuals.ts","../../src/machine/apple2.ts","../../src/machine/arm32.ts","../../src/machine/astrocade.ts","../../src/machine/atari7800.ts","../../src/machine/atari8.ts","../../src/machine/c64.ts","../../src/machine/channelf.ts","../../src/machine/coleco.ts","../../src/machine/cpc.ts","../../src/machine/devel.ts","../../src/machine/exidy.ts","../../src/machine/galaxian.ts","../../src/machine/gb.ts","../../src/machine/kim1.ts","../../src/machine/mcr.ts","../../src/machine/msx.ts","../../src/machine/mw8080bw.ts","../../src/machine/pacman.ts","../../src/machine/sms.ts","../../src/machine/vdp_z80.ts","../../src/machine/vic20.ts","../../src/machine/vicdual.ts","../../src/machine/williams.ts","../../src/machine/zx.ts","../../src/machine/chips/antic.tsLine truncated
|
||||
@@ -0,0 +1,121 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const assert_1 = __importDefault(require("assert"));
|
||||
const fs = __importStar(require("fs"));
|
||||
const mocha_1 = require("mocha");
|
||||
const emutarget_1 = require("../../src/tools/emutarget");
|
||||
// The C64 loader starts the program as soon as the ROM is loaded, so code that
|
||||
// only runs at startup (cc65's init, main()) is gone a few frames later. A
|
||||
// breakpoint there only ever fires if it is armed before the machine is
|
||||
// resumed -- which is why ui.ts's setCompileOutput() re-arms the breakpoint
|
||||
// store after loadROM() instead of just calling _resume(). Arming afterwards
|
||||
// (the old behavior) silently misses every startup-only breakpoint, which
|
||||
// looked like "breakpoints don't work on the C64".
|
||||
const ROM_PATH = 'test/roms/c64/climber.c.rom';
|
||||
// PCs the CPU passes through, at instruction boundaries, over `frames` frames
|
||||
function tracePCs(target, frames) {
|
||||
const seen = new Set();
|
||||
const m = target.machine;
|
||||
for (let i = 0; i < frames; i++) {
|
||||
m.advanceFrame(() => { if (m.cpu.isStable())
|
||||
seen.add(m.cpu.getPC()); return false; });
|
||||
}
|
||||
return seen;
|
||||
}
|
||||
(0, mocha_1.describe)('C64 breakpoints', function () {
|
||||
this.timeout(60000);
|
||||
let target;
|
||||
let platform;
|
||||
let rom;
|
||||
let startupPC; // an address the program executes only at startup
|
||||
(0, mocha_1.before)(async function () {
|
||||
target = await (0, emutarget_1.loadPlatform)('c64');
|
||||
platform = target.platform;
|
||||
await target.start();
|
||||
rom = new Uint8Array(fs.readFileSync(ROM_PATH));
|
||||
platform.loadROM('ROM', rom);
|
||||
// find program code that runs during startup but not in the main loop
|
||||
const early = tracePCs(target, 4);
|
||||
const late = tracePCs(target, 24);
|
||||
const startupOnly = [...early]
|
||||
.filter(pc => !late.has(pc) && pc >= 0x0810 && pc < 0x8000)
|
||||
.sort((a, b) => a - b);
|
||||
assert_1.default.ok(startupOnly.length > 0, "no startup-only code found in " + ROM_PATH);
|
||||
startupPC = startupOnly[0];
|
||||
});
|
||||
// run frames until a breakpoint fires, and return the state it stopped in
|
||||
function runUntilHit(maxFrames) {
|
||||
let hit = null;
|
||||
platform.setupDebug((state) => { hit = state; });
|
||||
for (let i = 0; i < maxFrames && !hit; i++)
|
||||
platform.nextFrame(true);
|
||||
return hit;
|
||||
}
|
||||
(0, mocha_1.it)('hits a startup breakpoint armed at ROM load time', function () {
|
||||
platform.clearDebug();
|
||||
platform.loadROM('ROM', rom);
|
||||
platform.runEvalAtPC(new Map([[startupPC, null]]));
|
||||
const hit = runUntilHit(30);
|
||||
assert_1.default.ok(hit, "breakpoint at $" + startupPC.toString(16) + " never fired");
|
||||
assert_1.default.strictEqual(hit.c.PC, startupPC);
|
||||
});
|
||||
(0, mocha_1.it)('misses a startup breakpoint armed after the program has run', function () {
|
||||
platform.clearDebug();
|
||||
platform.loadROM('ROM', rom);
|
||||
platform.setupDebug(() => { });
|
||||
for (let i = 0; i < 30; i++)
|
||||
platform.nextFrame(true); // startup code goes by
|
||||
platform.runEvalAtPC(new Map([[startupPC, null]]));
|
||||
assert_1.default.strictEqual(runUntilHit(30), null);
|
||||
});
|
||||
(0, mocha_1.it)('hits a main-loop breakpoint armed while the program is running', function () {
|
||||
platform.clearDebug();
|
||||
platform.loadROM('ROM', rom);
|
||||
platform.setupDebug(() => { });
|
||||
for (let i = 0; i < 10; i++)
|
||||
platform.nextFrame(true);
|
||||
const loopPC = [...tracePCs(target, 2)]
|
||||
.filter(pc => pc >= 0x0810 && pc < 0x8000).sort((a, b) => a - b)[0];
|
||||
platform.runEvalAtPC(new Map([[loopPC, null]]));
|
||||
const hit = runUntilHit(30);
|
||||
assert_1.default.ok(hit, "breakpoint at $" + loopPC.toString(16) + " never fired");
|
||||
assert_1.default.strictEqual(hit.c.PC, loopPC);
|
||||
});
|
||||
});
|
||||
//# sourceMappingURL=testc64breakpoints.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"testc64breakpoints.js","sourceRoot":"","sources":["../../../test/unit/testc64breakpoints.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA4B;AAC5B,uCAAyB;AACzB,iCAA6C;AAC7C,yDAAoE;AAEpE,+EAA+E;AAC/E,2EAA2E;AAC3E,wEAAwE;AACxE,4EAA4E;AAC5E,6EAA6E;AAC7E,0EAA0E;AAC1E,mDAAmD;AAEnD,MAAM,QAAQ,GAAG,6BAA6B,CAAC;AAE/C,8EAA8E;AAC9E,SAAS,QAAQ,CAAC,MAAiB,EAAE,MAAc;IAC/C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,IAAA,gBAAQ,EAAC,iBAAiB,EAAE;IACxB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEpB,IAAI,MAAiB,CAAC;IACtB,IAAI,QAAa,CAAC;IAClB,IAAI,GAAe,CAAC;IACpB,IAAI,SAAiB,CAAC,CAAC,kDAAkD;IAEzE,IAAA,cAAM,EAAC,KAAK;QACR,MAAM,GAAG,MAAM,IAAA,wBAAY,EAAC,KAAK,CAAC,CAAC;QACnC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC3B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChD,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,sEAAsE;QACtE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAClC,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC;aACzB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,GAAG,MAAM,CAAC;aAC1D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,gBAAM,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,gCAAgC,GAAG,QAAQ,CAAC,CAAC;QAC/E,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,0EAA0E;IAC1E,SAAS,WAAW,CAAC,SAAiB;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE;YAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrE,OAAO,GAAG,CAAC;IACf,CAAC;IAED,IAAA,UAAE,EAAC,kDAAkD,EAAE;QACnD,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtB,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC5B,gBAAM,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC;QAC5E,gBAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,IAAA,UAAE,EAAC,6DAA6D,EAAE;QAC9D,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtB,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB;QAC9E,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,gBAAM,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAA,UAAE,EAAC,gEAAgE,EAAE;QACjE,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtB,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aAClC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC5B,gBAAM,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC;QACzE,gBAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
||||
+29
-3
@@ -96,6 +96,16 @@ const MAX_CYCLES_PER_INSN = 64;
|
||||
* modules pick these up because Platform.start() reads them off the emu module.
|
||||
*/
|
||||
function installHeadlessVideo() {
|
||||
// Platform.start() builds its video/timer by reading these classes off the
|
||||
// emu module, so we swap in headless stand-ins for the duration of start()
|
||||
// and put the real ones back afterwards. Leaving the stubs installed would
|
||||
// leak into every other module sharing the (cached) emu import -- which is
|
||||
// exactly what happens when mocha reuses a worker across test files.
|
||||
const original = {
|
||||
RasterVideo: emu.RasterVideo,
|
||||
VectorVideo: emu.VectorVideo,
|
||||
AnimationTimer: emu.AnimationTimer,
|
||||
};
|
||||
let pixels = null;
|
||||
let params = null;
|
||||
emu.RasterVideo = function (_el, width, height) {
|
||||
@@ -133,6 +143,11 @@ function installHeadlessVideo() {
|
||||
return {
|
||||
get() {
|
||||
return pixels && params ? { pixels, width: params.width, height: params.height } : null;
|
||||
},
|
||||
restore() {
|
||||
emu.RasterVideo = original.RasterVideo;
|
||||
emu.VectorVideo = original.VectorVideo;
|
||||
emu.AnimationTimer = original.AnimationTimer;
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -141,7 +156,7 @@ class EmuTarget {
|
||||
this.id = id;
|
||||
this.platform = platform;
|
||||
this.frameCount = 0;
|
||||
this.video = installHeadlessVideo();
|
||||
this.video = null;
|
||||
}
|
||||
/**
|
||||
* The underlying Machine, if there is one. Platforms built on
|
||||
@@ -152,7 +167,18 @@ class EmuTarget {
|
||||
get machine() {
|
||||
return this.platform.machine || null;
|
||||
}
|
||||
async start() { await this.platform.start(); }
|
||||
async start() {
|
||||
// start() is where platforms construct their video and timer, so install
|
||||
// the headless stand-ins just for that call, then restore the real classes.
|
||||
const headless = installHeadlessVideo();
|
||||
this.video = headless;
|
||||
try {
|
||||
await this.platform.start();
|
||||
}
|
||||
finally {
|
||||
headless.restore();
|
||||
}
|
||||
}
|
||||
reset() { this.platform.reset(); }
|
||||
loadROM(data, title = 'ROM') { this.platform.loadROM(title, data); }
|
||||
loadBIOS(data, title = 'BIOS') {
|
||||
@@ -215,7 +241,7 @@ class EmuTarget {
|
||||
m.connectProbe(probe);
|
||||
return true;
|
||||
}
|
||||
getVideo() { return this.video.get(); }
|
||||
getVideo() { return this.video ? this.video.get() : null; }
|
||||
saveState() { return this.platform.saveState ? this.platform.saveState() : null; }
|
||||
getDebugInfo() {
|
||||
const state = this.saveState();
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"emutarget.js","sourceRoot":"","sources":["../../src/tools/emutarget.ts"],"names":[],"mappings":"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 truncated
|
||||
{"version":3,"file":"emutarget.js","sourceRoot":"","sources":["../../src/tools/emutarget.ts"],"names":[],"mappings":"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 truncated
|
||||
@@ -1,2 +1,2 @@
|
||||
import{A,B,C,D,E,F,G,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-EX34LRSY.js";import"./chunk-22ZJCPEG.js";import"./chunk-T6VURU5O.js";import"./chunk-A7SWO6EA.js";import"./chunk-PEELNZF2.js";import"./chunk-2XSLQJUY.js";import"./chunk-TYDI7JZQ.js";import"./chunk-VSC4MAII.js";export{u as armBreakpoints,w as clearBreakpoint,h as current_project,F as emulationHalted,q as getCurrentEditorFilename,p as getCurrentMainFilename,m as getCurrentOutput,l as getCurrentProject,A as getPlatformAndRepo,k as getPlatformStore,E as getSaveState,D as getTestOutput,n as getWorkerParams,z as gotoNewLocation,y as haltEmulation,j as lastDebugState,o as openHeaderFile,s as openLocationForPC,r as parseGoToTarget,g as platform,d as platform_id,i as projectWindows,c as qs,G as reloadWorkspaceFile,f as repo_id,v as runToPC,x as setFrameRateUI,C as setTestInput,t as setupBreakpoint,b as setupSplits,a as showTab,B as startUI,e as store_id};
|
||||
import{A,B,C,D,E,F,G,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-4H5H6MGY.js";import"./chunk-22ZJCPEG.js";import"./chunk-T6VURU5O.js";import"./chunk-A7SWO6EA.js";import"./chunk-SIGRU5UF.js";import"./chunk-2XSLQJUY.js";import"./chunk-TYDI7JZQ.js";import"./chunk-VSC4MAII.js";export{u as armBreakpoints,w as clearBreakpoint,h as current_project,F as emulationHalted,q as getCurrentEditorFilename,p as getCurrentMainFilename,m as getCurrentOutput,l as getCurrentProject,A as getPlatformAndRepo,k as getPlatformStore,E as getSaveState,D as getTestOutput,n as getWorkerParams,z as gotoNewLocation,y as haltEmulation,j as lastDebugState,o as openHeaderFile,s as openLocationForPC,r as parseGoToTarget,g as platform,d as platform_id,i as projectWindows,c as qs,G as reloadWorkspaceFile,f as repo_id,v as runToPC,x as setFrameRateUI,C as setTestInput,t as setupBreakpoint,b as setupSplits,a as showTab,B as startUI,e as store_id};
|
||||
//# sourceMappingURL=ui.js.map
|
||||
@@ -1,2 +1,2 @@
|
||||
import{K as p,s as c}from"./chunk-2XSLQJUY.js";import{K as h}from"./chunk-TYDI7JZQ.js";import"./chunk-VSC4MAII.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:"assembler"}],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-OKQTLQ6I.js.map
|
||||
import{K as p,s as c}from"./chunk-2XSLQJUY.js";import{K as h}from"./chunk-TYDI7JZQ.js";import"./chunk-VSC4MAII.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-5QVL7NCW.js.map
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../src/machine/zx.ts", "../src/platform/zx.ts"],
|
||||
"sourcesContent": ["\nimport { MOS6502, MOS6502State } from \"../common/cpu/MOS6502\";\nimport { BasicMachine, RasterFrameBased, Bus, ProbeAll } from \"../common/devices\";\nimport { KeyFlags, newAddressDecoder, padBytes, Keys, makeKeycodeMap, newKeyboardHandler, EmuHalt, dumpRAM } from \"../common/emu\";\nimport { lzgmini, stringToByteArray, hex, rgb2bgr } from \"../common/util\";\n\n//// WASM Machine\n\nimport { Machine } from \"../common/baseplatform\";\nimport { TrapCondition } from \"../common/devices\";\nimport { BaseWASMMachine } from \"../common/wasmplatform\";\n\nexport class ZX_WASMMachine extends BaseWASMMachine implements Machine {\n\n numTotalScanlines = 312;\n cpuCyclesPerLine = 224;\n\n joymask0 = 0;\n\n reset() {\n super.reset();\n // advance bios\n this.exports.machine_exec(this.sys, 2000000);\n // load rom (Z80 header: https://worldofspectrum.org/faq/reference/z80format.htm)\n if (this.romptr && this.romlen) {\n // TODO\n this.exports.machine_load_rom(this.sys, this.romptr, this.romlen);\n /*\n var romstart = 0x5ccb;\n for (var i=0; i<this.romlen; i++) {\n this.exports.machine_mem_write(this.sys, romstart+i, this.romarr[i]);\n }\n */\n }\n // clear keyboard\n for (var ch=0; ch<128; ch++) {\n this.setKeyInput(ch, 0, KeyFlags.KeyUp);\n }\n }\n advanceFrame(trap: TrapCondition) : number {\n //var scanline = this.exports.machine_get_raster_line(this.sys);\n var probing = this.probe != null;\n if (probing) this.exports.machine_reset_probe_buffer();\n var clocks = super.advanceFrameClock(trap, Math.floor(3500000 / 50));\n if (probing) this.copyProbeData();\n return clocks;\n }\n /*\n z80_tick_t tick_cb; // 0\n uint64_t bc_de_hl_fa; // 8\n uint64_t bc_de_hl_fa_; // 16\n uint64_t wz_ix_iy_sp; // 24\n uint64_t im_ir_pc_bits; // 32\n uint64_t pins; // 48\n void* user_data;\n z80_trap_t trap_cb;\n void* trap_user_data;\n int trap_id; \n */\n getCPUState() {\n this.exports.machine_save_cpu_state(this.sys, this.cpustateptr);\n var s = this.cpustatearr;\n var af = s[9] + (s[8]<<8); // not FA\n var hl = s[10] + (s[11]<<8);\n var de = s[12] + (s[13]<<8);\n var bc = s[14] + (s[15]<<8);\n var sp = s[24] + (s[25]<<8);\n var iy = s[26] + (s[27]<<8);\n var ix = s[28] + (s[29]<<8);\n var pc = s[34] + (s[35]<<8);\n var ir = s[36] + (s[37]<<8);\n return {\n PC:pc,\n SP:sp,\n AF:af,\n BC:bc,\n DE:de,\n HL:hl,\n IX:ix,\n IY:iy,\n IR:ir,\n o:this.readConst(pc),\n }\n }\n saveState() {\n this.exports.machine_save_state(this.sys, this.stateptr);\n return {\n c:this.getCPUState(),\n state:this.statearr.slice(0),\n // the joystick mask lives on this object, not in the WASM state blob,\n // so it has to be saved explicitly or it leaks across a rewind\n joymask0: this.joymask0,\n };\n }\n loadState(state) : void {\n this.statearr.set(state.state);\n this.exports.machine_load_state(this.sys, this.stateptr);\n this.joymask0 = state.joymask0 | 0;\n this.exports.zx_joystick(this.sys, this.joymask0, 0);\n }\n getVideoParams() {\n return {width:320, height:256, overscan:true, videoFrequency:50};\n }\n setKeyInput(key: number, code: number, flags: number): void {\n // TODO: handle shifted keys\n if (key == 16 || key == 17 || key == 18 || key == 224) return; // meta keys\n //console.log(key, code, flags);\n //if (flags & KeyFlags.Shift) { key += 64; }\n // convert to c64 (TODO: zx)\n var mask = 0;\n var mask2 = 0;\n if (key == 37) { key = 0x8; mask = 0x4; } // LEFT\n if (key == 38) { key = 0xb; mask = 0x1; } // UP\n if (key == 39) { key = 0x9; mask = 0x8; } // RIGHT\n if (key == 40) { key = 0xa; mask = 0x2; } // DOWN\n if (key == 32) { mask = 0x10; } // FIRE\n if (key == 65) { key = 65; mask2 = 0x4; } // LEFT\n if (key == 87) { key = 87; mask2 = 0x1; } // UP\n if (key == 68) { key = 68; mask2 = 0x8; } // RIGHT\n if (key == 83) { key = 83; mask2 = 0x2; } // DOWN\n if (key == 69) { mask2 = 0x10; } // FIRE\n if (key == 113) { key = 0xf1; } // F2\n if (key == 115) { key = 0xf3; } // F4\n if (key == 119) { key = 0xf5; } // F8\n if (key == 121) { key = 0xf7; } // F10\n if (flags & KeyFlags.KeyDown) {\n this.exports.machine_key_down(this.sys, key);\n this.joymask0 |= mask;\n } else if (flags & KeyFlags.KeyUp) {\n this.exports.machine_key_up(this.sys, key);\n this.joymask0 &= ~mask;\n }\n this.exports.zx_joystick(this.sys, this.joymask0, 0);\n }\n}\n", "\nimport { ZX_WASMMachine } from \"../machine/zx\";\nimport { Platform, BaseZ80MachinePlatform } from \"../common/baseplatform\";\nimport { PLATFORMS } from \"../common/emu\";\n\nconst ZX_PRESETS = [\n {id:'bios.c', name:'BIOS Routines', category:'C'},\n {id:'hello.c', name:'Hello World', category:'Line truncated
|
||||
"mappings": "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",
|
||||
"sourcesContent": ["\nimport { MOS6502, MOS6502State } from \"../common/cpu/MOS6502\";\nimport { BasicMachine, RasterFrameBased, Bus, ProbeAll } from \"../common/devices\";\nimport { KeyFlags, newAddressDecoder, padBytes, Keys, makeKeycodeMap, newKeyboardHandler, EmuHalt, dumpRAM } from \"../common/emu\";\nimport { lzgmini, stringToByteArray, hex, rgb2bgr } from \"../common/util\";\n\n//// WASM Machine\n\nimport { Machine } from \"../common/baseplatform\";\nimport { TrapCondition } from \"../common/devices\";\nimport { BaseWASMMachine } from \"../common/wasmplatform\";\n\nexport class ZX_WASMMachine extends BaseWASMMachine implements Machine {\n\n numTotalScanlines = 312;\n cpuCyclesPerLine = 224;\n\n joymask0 = 0;\n\n reset() {\n super.reset();\n // advance bios\n this.exports.machine_exec(this.sys, 2000000);\n // load rom (Z80 header: https://worldofspectrum.org/faq/reference/z80format.htm)\n if (this.romptr && this.romlen) {\n // TODO\n this.exports.machine_load_rom(this.sys, this.romptr, this.romlen);\n /*\n var romstart = 0x5ccb;\n for (var i=0; i<this.romlen; i++) {\n this.exports.machine_mem_write(this.sys, romstart+i, this.romarr[i]);\n }\n */\n }\n // clear keyboard\n for (var ch=0; ch<128; ch++) {\n this.setKeyInput(ch, 0, KeyFlags.KeyUp);\n }\n }\n advanceFrame(trap: TrapCondition) : number {\n //var scanline = this.exports.machine_get_raster_line(this.sys);\n var probing = this.probe != null;\n if (probing) this.exports.machine_reset_probe_buffer();\n var clocks = super.advanceFrameClock(trap, Math.floor(3500000 / 50));\n if (probing) this.copyProbeData();\n return clocks;\n }\n /*\n z80_tick_t tick_cb; // 0\n uint64_t bc_de_hl_fa; // 8\n uint64_t bc_de_hl_fa_; // 16\n uint64_t wz_ix_iy_sp; // 24\n uint64_t im_ir_pc_bits; // 32\n uint64_t pins; // 48\n void* user_data;\n z80_trap_t trap_cb;\n void* trap_user_data;\n int trap_id; \n */\n getCPUState() {\n this.exports.machine_save_cpu_state(this.sys, this.cpustateptr);\n var s = this.cpustatearr;\n var af = s[9] + (s[8]<<8); // not FA\n var hl = s[10] + (s[11]<<8);\n var de = s[12] + (s[13]<<8);\n var bc = s[14] + (s[15]<<8);\n var sp = s[24] + (s[25]<<8);\n var iy = s[26] + (s[27]<<8);\n var ix = s[28] + (s[29]<<8);\n var pc = s[34] + (s[35]<<8);\n var ir = s[36] + (s[37]<<8);\n return {\n PC:pc,\n SP:sp,\n AF:af,\n BC:bc,\n DE:de,\n HL:hl,\n IX:ix,\n IY:iy,\n IR:ir,\n o:this.readConst(pc),\n }\n }\n saveState() {\n this.exports.machine_save_state(this.sys, this.stateptr);\n return {\n c:this.getCPUState(),\n state:this.statearr.slice(0),\n // the joystick mask lives on this object, not in the WASM state blob,\n // so it has to be saved explicitly or it leaks across a rewind\n joymask0: this.joymask0,\n };\n }\n loadState(state) : void {\n this.statearr.set(state.state);\n this.exports.machine_load_state(this.sys, this.stateptr);\n this.joymask0 = state.joymask0 | 0;\n this.exports.zx_joystick(this.sys, this.joymask0, 0);\n }\n getVideoParams() {\n return {width:320, height:256, overscan:true, videoFrequency:50};\n }\n setKeyInput(key: number, code: number, flags: number): void {\n // TODO: handle shifted keys\n if (key == 16 || key == 17 || key == 18 || key == 224) return; // meta keys\n //console.log(key, code, flags);\n //if (flags & KeyFlags.Shift) { key += 64; }\n // convert to c64 (TODO: zx)\n var mask = 0;\n var mask2 = 0;\n if (key == 37) { key = 0x8; mask = 0x4; } // LEFT\n if (key == 38) { key = 0xb; mask = 0x1; } // UP\n if (key == 39) { key = 0x9; mask = 0x8; } // RIGHT\n if (key == 40) { key = 0xa; mask = 0x2; } // DOWN\n if (key == 32) { mask = 0x10; } // FIRE\n if (key == 65) { key = 65; mask2 = 0x4; } // LEFT\n if (key == 87) { key = 87; mask2 = 0x1; } // UP\n if (key == 68) { key = 68; mask2 = 0x8; } // RIGHT\n if (key == 83) { key = 83; mask2 = 0x2; } // DOWN\n if (key == 69) { mask2 = 0x10; } // FIRE\n if (key == 113) { key = 0xf1; } // F2\n if (key == 115) { key = 0xf3; } // F4\n if (key == 119) { key = 0xf5; } // F8\n if (key == 121) { key = 0xf7; } // F10\n if (flags & KeyFlags.KeyDown) {\n this.exports.machine_key_down(this.sys, key);\n this.joymask0 |= mask;\n } else if (flags & KeyFlags.KeyUp) {\n this.exports.machine_key_up(this.sys, key);\n this.joymask0 &= ~mask;\n }\n this.exports.zx_joystick(this.sys, this.joymask0, 0);\n }\n}\n", "\nimport { ZX_WASMMachine } from \"../machine/zx\";\nimport { Platform, BaseZ80MachinePlatform } from \"../common/baseplatform\";\nimport { PLATFORMS } from \"../common/emu\";\n\nconst ZX_PRESETS = [\n {id:'bios.c', name:'BIOS Routines', category:'C'},\n {id:'hello.c', name:'Hello World', category:'Line truncated
|
||||
"mappings": "mHAYO,IAAMA,EAAN,cAA6BC,CAAmC,CAAhE,kCAEL,uBAAoB,IACpB,sBAAmB,IAEnB,cAAW,EAEX,OAAQ,CACN,MAAM,MAAM,EAEZ,KAAK,QAAQ,aAAa,KAAK,IAAK,GAAO,EAEvC,KAAK,QAAU,KAAK,QAEtB,KAAK,QAAQ,iBAAiB,KAAK,IAAK,KAAK,OAAQ,KAAK,MAAM,EASlE,QAASC,EAAG,EAAGA,EAAG,IAAKA,IACrB,KAAK,YAAYA,EAAI,IAAiB,CAE1C,CACA,aAAaC,EAA8B,CAEzC,IAAIC,EAAU,KAAK,OAAS,KACxBA,GAAS,KAAK,QAAQ,2BAA2B,EACrD,IAAIC,EAAS,MAAM,kBAAkBF,EAAM,KAAK,MAAM,KAAU,EAAE,CAAC,EACnE,OAAIC,GAAS,KAAK,cAAc,EACzBC,CACT,CAaA,aAAc,CACZ,KAAK,QAAQ,uBAAuB,KAAK,IAAK,KAAK,WAAW,EAC9D,IAAIC,EAAI,KAAK,YACTC,EAAKD,EAAE,CAAC,GAAKA,EAAE,CAAC,GAAG,GACnBE,EAAKF,EAAE,EAAE,GAAKA,EAAE,EAAE,GAAG,GACrBG,EAAKH,EAAE,EAAE,GAAKA,EAAE,EAAE,GAAG,GACrBI,EAAKJ,EAAE,EAAE,GAAKA,EAAE,EAAE,GAAG,GACrBK,EAAKL,EAAE,EAAE,GAAKA,EAAE,EAAE,GAAG,GACrBM,EAAKN,EAAE,EAAE,GAAKA,EAAE,EAAE,GAAG,GACrBO,EAAKP,EAAE,EAAE,GAAKA,EAAE,EAAE,GAAG,GACrBQ,EAAKR,EAAE,EAAE,GAAKA,EAAE,EAAE,GAAG,GACrBS,EAAKT,EAAE,EAAE,GAAKA,EAAE,EAAE,GAAG,GACzB,MAAO,CACL,GAAGQ,EACH,GAAGH,EACH,GAAGJ,EACH,GAAGG,EACH,GAAGD,EACH,GAAGD,EACH,GAAGK,EACH,GAAGD,EACH,GAAGG,EACH,EAAE,KAAK,UAAUD,CAAE,CACrB,CACF,CACA,WAAY,CACV,YAAK,QAAQ,mBAAmB,KAAK,IAAK,KAAK,QAAQ,EAChD,CACL,EAAE,KAAK,YAAY,EACnB,MAAM,KAAK,SAAS,MAAM,CAAC,EAG3B,SAAU,KAAK,QACjB,CACF,CACA,UAAUE,EAAc,CACtB,KAAK,SAAS,IAAIA,EAAM,KAAK,EAC7B,KAAK,QAAQ,mBAAmB,KAAK,IAAK,KAAK,QAAQ,EACvD,KAAK,SAAWA,EAAM,SAAW,EACjC,KAAK,QAAQ,YAAY,KAAK,IAAK,KAAK,SAAU,CAAC,CACrD,CACA,gBAAiB,CAChB,MAAO,CAAC,MAAM,IAAK,OAAO,IAAK,SAAS,GAAM,eAAe,EAAE,CAChE,CACA,YAAYC,EAAaC,EAAcC,EAAqB,CAE1D,GAAI,EAAAF,GAAO,IAAMA,GAAO,IAAMA,GAAO,IAAMA,GAAO,KAIlD,KAAIG,EAAO,EACPC,EAAQ,EACRJ,GAAO,KAAMA,EAAM,EAAKG,EAAO,GAC/BH,GAAO,KAAMA,EAAM,GAAKG,EAAO,GAC/BH,GAAO,KAAMA,EAAM,EAAKG,EAAO,GAC/BH,GAAO,KAAMA,EAAM,GAAKG,EAAO,GAC/BH,GAAO,KAAMG,EAAO,IACpBH,GAAO,KAAMA,EAAM,GAAII,EAAQ,GAC/BJ,GAAO,KAAMA,EAAM,GAAII,EAAQ,GAC/BJ,GAAO,KAAMA,EAAM,GAAII,EAAQ,GAC/BJ,GAAO,KAAMA,EAAM,GAAII,EAAQ,GAC/BJ,GAAO,KAAMI,EAAQ,IACrBJ,GAAO,MAAOA,EAAM,KACpBA,GAAO,MAAOA,EAAM,KACpBA,GAAO,MAAOA,EAAM,KACpBA,GAAO,MAAOA,EAAM,KACpBE,EAAQ,GACV,KAAK,QAAQ,iBAAiB,KAAK,IAAKF,CAAG,EAC3C,KAAK,UAAYG,GACRD,EAAQ,KACjB,KAAK,QAAQ,eAAe,KAAK,IAAKF,CAAG,EACzC,KAAK,UAAY,CAACG,GAEpB,KAAK,QAAQ,YAAY,KAAK,IAAK,KAAK,SAAU,CAAC,EACrD,CACF,ECjIA,IAAME,EAAa,CACjB,CAAC,GAAG,SAAU,KAAK,gBAAiB,SAAS,GAAG,EAChD,CAAC,GAAG,UAAW,KAAK,cAAe,SAAS,GAAG,EAC/C,CAAC,GAAG,cAAe,KAAK,YAAY,EACpC,CAAC,GAAG,WAAY,KAAK,gBAAgB,EACrC,CAAC,GAAG,YAAa,KAAK,oBAAqB,SAAS,UAAU,CAEhE,EAEMC,EAAgB,CAAE,KAAK,CAC3B,CAAC,KAAK,OAAQ,MAAM,EAAQ,KAAK,MAAQ,KAAK,KAAK,EACnD,CAAC,KAAK,aAAc,MAAM,MAAQ,KAAK,KAAQ,KAAK,KAAK,EACzD,CAAC,KAAK,YAAa,MAAM,MAAQ,KAAK,IAAO,KAAK,KAAK,EAEvD,CAAC,KAAK,aAAc,MAAM,MAAQ,KAAK,IAAM,KAAK,KAAK,EACvD,CAAC,KAAK,WAAY,MAAM,MAAQ,KAAK,MAAe,KAAK,KAAK,CAChE,CAAE,EAGIC,EAAN,cAA6BC,CAA2D,CAEtF,YAAsB,CAAE,OAAO,IAAIC,EAAe,IAAI,CAAG,CAEzD,YAAsB,CAAE,OAAOJ,CAAY,CAE3C,YAAYK,EAAU,CAAE,OAAO,KAAK,QAAQ,UAAUA,CAAC,CAAG,CAC1D,cAAsB,CAAE,OAAOJ,CAAe,CAC9C,UAAW,CACT,MAAO,6CACT,CACF,EAEAK,EAAU,GAAQJ",
|
||||
"names": ["ZX_WASMMachine", "BaseWASMMachine", "ch", "trap", "probing", "clocks", "s", "af", "hl", "de", "bc", "sp", "iy", "ix", "pc", "ir", "state", "key", "code", "flags", "mask", "mask2", "ZX_PRESETS", "ZX_MEMORY_MAP", "ZXWASMPlatform", "BaseZ80MachinePlatform", "ZX_WASMMachine", "a", "PLATFORMS"]
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
CHAN_OPEN equ 5633
|
||||
PRINT equ 8252
|
||||
|
||||
org 0x5ccb
|
||||
loop
|
||||
ld a, 2 ; 3E 02
|
||||
call CHAN_OPEN ; CD 01 16
|
||||
ld de, text ; 11 0E 7F
|
||||
ld bc, textend-text ; 01 0E 00
|
||||
call PRINT ; C3 3C 20
|
||||
jmp loop
|
||||
|
||||
text defb 'Hello, World!' ; 48 65 6C 6C 6F 2C 20 57
|
||||
; 6F 72 6C 64 21
|
||||
defb 13 ; 0D
|
||||
textend
|
||||
|
||||
org 0xff57
|
||||
defb 00h
|
||||
+6
-1
@@ -1030,7 +1030,12 @@ async function setCompileOutput(data: WorkerResult) {
|
||||
_resetRecording();
|
||||
await platform.loadROM(getCurrentPresetTitle(), rom, data.origin);
|
||||
current_output = rom;
|
||||
if (!userPaused) _resume();
|
||||
// re-arm breakpoints before the new ROM gets to run: clearBreakpoint()
|
||||
// above disarmed them, and code that only runs at startup (main() on the
|
||||
// C64, say) would race past them before anything else re-armed
|
||||
if (!userPaused) {
|
||||
if (bpStore.getEnabled().length == 0 || !armBreakpoints()) _resume();
|
||||
}
|
||||
writeOutputROMFile();
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
|
||||
+6
-29
@@ -145,15 +145,9 @@ class OffsetMarker extends GutterMarker {
|
||||
constructor(readonly hex: string) { super(); }
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-offset-marker";
|
||||
span.textContent = this.hex;
|
||||
span.style.cursor = "pointer";
|
||||
span.title = "Click to run to here";
|
||||
span.addEventListener("mouseenter", () => {
|
||||
span.style.textDecoration = "underline";
|
||||
});
|
||||
span.addEventListener("mouseleave", () => {
|
||||
span.style.textDecoration = "none";
|
||||
});
|
||||
return span;
|
||||
}
|
||||
eq(other: OffsetMarker) { return this.hex == other.hex; }
|
||||
@@ -174,15 +168,8 @@ class ClockMarker extends GutterMarker {
|
||||
const BREAKPOINT_PLACEHOLDER_MARKER = new class extends GutterMarker {
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-breakpoint-placeholder";
|
||||
span.textContent = "●";
|
||||
span.style.color = "transparent";
|
||||
span.style.cursor = "pointer";
|
||||
span.addEventListener("mouseenter", () => {
|
||||
span.style.color = "rgba(255, 0, 0, 0.5)";
|
||||
});
|
||||
span.addEventListener("mouseleave", () => {
|
||||
span.style.color = "transparent";
|
||||
});
|
||||
return span;
|
||||
}
|
||||
};
|
||||
@@ -191,9 +178,8 @@ class BreakpointMarker extends GutterMarker {
|
||||
constructor(readonly enabled: boolean) { super(); }
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-breakpoint " + (this.enabled ? "gutter-breakpoint-enabled" : "gutter-breakpoint-disabled");
|
||||
span.innerHTML = "●";
|
||||
span.style.color = this.enabled ? "rgba(255, 0, 0, 1.0)" : "rgba(255, 255, 255, 0.35)";
|
||||
span.style.cursor = "pointer";
|
||||
span.title = this.enabled ? "Breakpoint (click to remove; manage in Breakpoints window)" : "Disabled breakpoint (click to remove)";
|
||||
return span;
|
||||
}
|
||||
@@ -208,9 +194,8 @@ class ErrorMarker extends GutterMarker {
|
||||
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-error";
|
||||
span.innerHTML = "ⓧ";
|
||||
span.style.color = "red";
|
||||
span.style.cursor = "pointer";
|
||||
span.title = this.msg;
|
||||
return span;
|
||||
}
|
||||
@@ -220,16 +205,9 @@ class ErrorMarker extends GutterMarker {
|
||||
const CURRENT_PC_PLACEHOLDER_MARKER = new class extends GutterMarker {
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-currentpc-placeholder";
|
||||
span.textContent = "▶";
|
||||
span.style.color = "transparent";
|
||||
span.style.cursor = "pointer";
|
||||
span.title = "Click to run to here";
|
||||
span.addEventListener("mouseenter", () => {
|
||||
span.style.color = "#ffee66";
|
||||
});
|
||||
span.addEventListener("mouseleave", () => {
|
||||
span.style.color = "transparent";
|
||||
});
|
||||
return span;
|
||||
}
|
||||
};
|
||||
@@ -237,9 +215,8 @@ const CURRENT_PC_PLACEHOLDER_MARKER = new class extends GutterMarker {
|
||||
const CURRENT_PC_MARKER = new class extends GutterMarker {
|
||||
toDOM() {
|
||||
const span = document.createElement("span");
|
||||
span.className = "gutter-currentpc";
|
||||
span.innerHTML = "▶";
|
||||
span.style.color = "#ff66ee";
|
||||
span.style.cursor = "pointer";
|
||||
span.title = "Current PC";
|
||||
return span;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import { Platform, Base6502MachinePlatform, getToolForFilename_6502 } from "../c
|
||||
import { PLATFORMS } from "../common/emu";
|
||||
|
||||
var Atari7800_PRESETS = [
|
||||
{id:'sprites.dasm', name:'Sprites (ASM)', category:'Assembler'},
|
||||
{id:'sprites.dasm', name:'Sprites (ASM)', category:'Assembly'},
|
||||
|
||||
{id:'wsync.c', name:'WSYNC', category:'CC65'},
|
||||
{id:'sprites.c', name:'Double Buffering'},
|
||||
|
||||
+10
-10
@@ -7,19 +7,19 @@ import { Atari5200, Atari800 } from "../machine/atari8";
|
||||
declare var jt; // for 6502
|
||||
|
||||
var Atari8_PRESETS : Preset[] = [
|
||||
{id:'hello.dasm', name:'Hello World (ASM)'},
|
||||
{id:'hellopm.dasm', name:'Hello Sprites (ASM)'},
|
||||
{id:'helloconio.c', name:'Text Mode (C)'},
|
||||
{id:'siegegame.c', name:'Siege Game (C)'},
|
||||
{id:'hellodlist.c', name:'Display List (C)'},
|
||||
{id:'hello.dasm', name:'Hello World', category:'Assembly'},
|
||||
{id:'hellopm.dasm', name:'Hello Sprites'},
|
||||
{id:'helloconio.c', name:'Text Mode', category:'C'},
|
||||
{id:'siegegame.c', name:'Siege Game'},
|
||||
{id:'hellodlist.c', name:'Display List'},
|
||||
];
|
||||
|
||||
var Atari800_PRESETS = Atari8_PRESETS.concat([
|
||||
{id:'testmusic.c', name:'POKEY Music (C)'},
|
||||
{id:'sieve.bas', name:'Benchmark (FastBasic)', category:'FastBasic'},
|
||||
{id:'pmtest.bas', name:'Sprites Test (FastBasic)'},
|
||||
{id:'dli.bas', name:'DLI Test (FastBasic)'},
|
||||
{id:'joyas.bas', name:'Match-3 Game (FastBasic)'},
|
||||
{id:'testmusic.c', name:'POKEY Music'},
|
||||
{id:'sieve.bas', name:'Benchmark', category:'FastBasic'},
|
||||
{id:'pmtest.bas', name:'Sprites Test'},
|
||||
{id:'dli.bas', name:'DLI Test'},
|
||||
{id:'joyas.bas', name:'Match-3 Game'},
|
||||
]);
|
||||
|
||||
const Atari800_MemoryMap = { main:[
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ const C64_PRESETS : Preset[] = [
|
||||
{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 Language'},
|
||||
{id:'hello.dasm', name:'Hello World (DASM)', category:'Assembly'},
|
||||
{id:'hello.acme', name:'Hello World (ACME)'},
|
||||
{id:'hello.wiz', name:'Hello Wiz (Wiz)'},
|
||||
// {id:'kitchensink.dasm', name:'Kitchensink (DASM)'},
|
||||
|
||||
+10
-10
@@ -4,16 +4,16 @@ import { Platform, BaseZ80MachinePlatform } from "../common/baseplatform";
|
||||
import { PLATFORMS } from "../common/emu";
|
||||
|
||||
const CPC_PRESETS = [
|
||||
{id:'hello.asm', name:'Hello World (ASM)'},
|
||||
{id:'easy_stdio_boxes.c', name:'Standard I/O (C)'},
|
||||
{id:'easy_mode_strings.c', name:'Video Modes (C)'},
|
||||
{id:'easy_random.c', name:'Random Numbers (C)'},
|
||||
{id:'easy_sprites.c', name:'Keyboard + Sprites (C)'},
|
||||
{id:'medium_scrolling.c', name:'Scrolling Text (C)'},
|
||||
{id:'siegegame.c', name:'Siege Game (C)'},
|
||||
{id:'music.c', name:'Music Player (C)'},
|
||||
//{id:'sprite_demo.c', name:'Sprite Demo (C)'},
|
||||
//{id:'keyboard_redefine.c', name:'Keyboard Redefine (C)'},
|
||||
{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:'sprite_demo.c', name:'Sprite Demo'},
|
||||
//{id:'keyboard_redefine.c', name:'Keyboard Redefine'},
|
||||
{id:'hello.asm', name:'Hello World', category:'Assembly'},
|
||||
];
|
||||
|
||||
const CPC_MEMORY_MAP = { main:[
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ const JSNES_PRESETS : Preset[] = [
|
||||
{id:'climber.c', name:'Climber Game'},
|
||||
{id:'bankswitch.c', name:'Bank Switching'},
|
||||
{id:'irq.c', name:'IRQ Scanline Counter'},
|
||||
{id:'ex0.dasm', name:'Initialization', category:'Assembly Language (ASM)'},
|
||||
{id:'ex0.dasm', name:'Initialization', category:'Assembly'},
|
||||
{id:'ex1.dasm', name:'Hello World'},
|
||||
{id:'ex2.dasm', name:'Scrolling Demo'},
|
||||
{id:'ex3.dasm', name:'Sprite Demo'},
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ const ZX_PRESETS = [
|
||||
{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:'assembler'},
|
||||
{id:'hello.asm', name:'Hello World (ASM)', category:'Assembly'},
|
||||
// {id:'kitchensink.zmac', name:'Kitchensink (ZMAC)'},
|
||||
];
|
||||
|
||||
|
||||
+28
-4
@@ -76,6 +76,16 @@ const MAX_CYCLES_PER_INSN = 64;
|
||||
* modules pick these up because Platform.start() reads them off the emu module.
|
||||
*/
|
||||
function installHeadlessVideo() {
|
||||
// Platform.start() builds its video/timer by reading these classes off the
|
||||
// emu module, so we swap in headless stand-ins for the duration of start()
|
||||
// and put the real ones back afterwards. Leaving the stubs installed would
|
||||
// leak into every other module sharing the (cached) emu import -- which is
|
||||
// exactly what happens when mocha reuses a worker across test files.
|
||||
const original = {
|
||||
RasterVideo: (emu as any).RasterVideo,
|
||||
VectorVideo: (emu as any).VectorVideo,
|
||||
AnimationTimer: (emu as any).AnimationTimer,
|
||||
};
|
||||
let pixels: Uint32Array | null = null;
|
||||
let params: { width: number, height: number } | null = null;
|
||||
(emu as any).RasterVideo = function (_el: any, width: number, height: number) {
|
||||
@@ -113,16 +123,20 @@ function installHeadlessVideo() {
|
||||
return {
|
||||
get(): VideoOutput | null {
|
||||
return pixels && params ? { pixels, width: params.width, height: params.height } : null;
|
||||
},
|
||||
restore() {
|
||||
(emu as any).RasterVideo = original.RasterVideo;
|
||||
(emu as any).VectorVideo = original.VectorVideo;
|
||||
(emu as any).AnimationTimer = original.AnimationTimer;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export class EmuTarget {
|
||||
frameCount = 0;
|
||||
private video: ReturnType<typeof installHeadlessVideo>;
|
||||
private video: ReturnType<typeof installHeadlessVideo> | null = null;
|
||||
|
||||
constructor(readonly id: string, readonly platform: Platform) {
|
||||
this.video = installHeadlessVideo();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -135,7 +149,17 @@ export class EmuTarget {
|
||||
return (this.platform as any).machine || null;
|
||||
}
|
||||
|
||||
async start() { await this.platform.start(); }
|
||||
async start() {
|
||||
// start() is where platforms construct their video and timer, so install
|
||||
// the headless stand-ins just for that call, then restore the real classes.
|
||||
const headless = installHeadlessVideo();
|
||||
this.video = headless;
|
||||
try {
|
||||
await this.platform.start();
|
||||
} finally {
|
||||
headless.restore();
|
||||
}
|
||||
}
|
||||
reset() { this.platform.reset(); }
|
||||
loadROM(data: Uint8Array, title = 'ROM') { this.platform.loadROM(title, data); }
|
||||
|
||||
@@ -189,7 +213,7 @@ export class EmuTarget {
|
||||
return true;
|
||||
}
|
||||
|
||||
getVideo(): VideoOutput | null { return this.video.get(); }
|
||||
getVideo(): VideoOutput | null { return this.video ? this.video.get() : null; }
|
||||
saveState(): EmuState | null { return this.platform.saveState ? this.platform.saveState() : null; }
|
||||
|
||||
getDebugInfo(): DebugSection[] {
|
||||
|
||||
Reference in new issue
Block a user