mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2025-04-28 20:38:09 +00:00
Deploying to gh-pages from @ sehugg/8bitworkshop@c9354a83ea 🚀
This commit is contained in:
parent
d322d59ead
commit
a2fb5a3e4d
gen
apple2-6NK6Z5A7.jsapple2-6NK6Z5A7.js.mapapple2-YRFD5ME2.js.maparm32-5KKK3AEI.jsarm32-5KKK3AEI.js.mapastrocade-UC5XR4Z3.jsastrocade-UC5XR4Z3.js.mapatari7800-4MJAN6R5.jsatari7800-4MJAN6R5.js.mapatari8-6PDK42T6.jsatari8-6PDK42T6.js.mapbasic-2RVW625C.jsbasic-2RVW625C.js.mapc64-OASLBPT5.jsc64-OASLBPT5.js.mapchunk-AGGKDGWZ.jschunk-AGGKDGWZ.js.mapchunk-GBRUOVY7.jschunk-GBRUOVY7.js.mapchunk-HNHXM2GS.jschunk-HNHXM2GS.js.mapchunk-RTPZJPCH.jschunk-RTPZJPCH.js.mapchunk-Z5TYMA6U.jschunk-Z5TYMA6U.js.mapcoleco-RNEUVCV7.jscoleco-RNEUVCV7.js.map
common
cpc-RDSYFZBF.jscpc-RDSYFZBF.js.mapdevel-SHWPNO2B.jsdevel-SHWPNO2B.js.mapembedui.jsgalaxian-FWV45JGU.jsgalaxian-FWV45JGU.js.mapide
kim1-7BZOLBPF.jskim1-7BZOLBPF.js.mapmachine
msx-AU4VQJHK.jsmsx-AU4VQJHK.js.mapmw8080bw-4SDKTZ65.jsmw8080bw-4SDKTZ65.js.mapnes-4X22JSRX.jsnes-4X22JSRX.js.mappce-QPANJGUC.jspce-QPANJGUC.js.mapplatform
server
sms-LDE4N7RD.jssms-LDE4N7RD.js.mapsound_konami-QNXARYIT.jssound_konami-QNXARYIT.js.mapsound_williams-FAKI2HAK.jssound_williams-FAKI2HAK.js.mapui.jsvcs-ASY7LYV3.jsvcs-ASY7LYV3.js.mapvcs-K5AVFXDZ.js.mapvector-7YUV2PQB.jsvector-7YUV2PQB.js.mapvectrex-Y7A64VQG.jsvectrex-Y7A64VQG.js.mapverilog-W3A3AN5Q.jsverilog-W3A3AN5Q.js.mapvic20-IYU73WYH.jsvic20-IYU73WYH.js.mapvicdual-QGQIBOQN.jsvicdual-QGQIBOQN.js.mapwilliams-7INQNAHV.jswilliams-7INQNAHV.js.mapworker
zmachine-J3RGC3YJ.jszmachine-J3RGC3YJ.js.mapzx-BGO4TE77.jszx-BGO4TE77.js.mappresets/c64
src
File diff suppressed because one or more lines are too long
7
gen/apple2-6NK6Z5A7.js.map
Normal file
7
gen/apple2-6NK6Z5A7.js.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
||||
import{I as $,h as H,k as Y,p as z,t as K}from"./chunk-OOCS5TPQ.js";import{H as U,T as L,U as o,V as E,X as F,Z as N,_ as T,ca as W,g as p}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var g=0,R=2,v=8,Q=F([[o.A,v+0,128],[o.B,v+1,128],[o.GP_A,v+0,128],[o.GP_B,v+1,128],[o.SELECT,R,-2],[o.START,R,-1],[o.UP,g,-16],[o.DOWN,g,-32],[o.LEFT,g,-64],[o.RIGHT,g,-128],[o.P2_A,v+2,128],[o.P2_B,v+3,128],[o.P2_UP,g,-1],[o.P2_DOWN,g,-2],[o.P2_LEFT,g,-4],[o.P2_RIGHT,g,-8]]);var D=263,j=258-16,y=451,Z=28,tt=16,et=24,V=2,G=D*60*V,B=class{constructor(){this.regs=new Uint8Array(32)}reset(){this.regs.fill(0)}read(t){return this.regs[t]|0}write(t,e){this.regs[t]=e}saveState(){return{regs:this.regs.slice(0)}}loadState(t){for(let e=0;e<32;e++)this.write(e,t.regs[e])}static stateToLongString(t){let e="";return e+=L(t.regs,0,32),e}},_=class{constructor(){this.cycles=0;this.regs=new Uint8Array(32);this.offset=-1;this.dll=0;this.dlstart=0;this.dli=!1;this.h16=!1;this.h8=!1;this.writemode=0;this.indirect=!1;this.pixels=new Uint8Array(320);this.WSYNC=0}reset(){this.regs.fill(0)}read(t){return this.regs[t]|0}write(t,e){this.regs[t]=e,t==4&&this.WSYNC++}saveState(){return{regs:this.regs.slice(0),offset:this.offset,dll:this.dll,dlstart:this.dlstart,dli:this.dli,h16:this.h16,h8:this.h8,indirect:this.indirect,writemode:this.writemode}}loadState(t){for(let e=0;e<32;e++)this.write(e,t.regs[e]|0);this.offset=t.offset|0,this.dll=t.dll|0,this.dlstart=t.dlstart|0,this.dli=!!t.dli,this.h16=!!t.h16,this.h8=!!t.h8,this.indirect=!!t.indirect,this.writemode=t.writemode|0}isDMAEnabled(){return(this.regs[28]&96)==64}getDLLStart(){return(this.regs[12]<<8)+this.regs[16]}getCharBaseAddress(){return(this.regs[20]<<8)+this.offset}setVBLANK(t){t?(this.regs[8]|=128,this.offset=-1,this.dll=this.getDLLStart(),this.dli=this.bus&&(this.bus.read(this.dll)&128)!=0):this.regs[8]&=~128}readDLLEntry(t){if(this.dll>=16384)return;let e=t.read(this.dll);this.offset=e&15,this.h16=(e&64)!=0,this.h8=(e&32)!=0,this.dlstart=(t.read(this.dll+1)<<8)+t.read(this.dll+2),this.dll=this.dll+3&65535,this.dli=(t.read(this.dll)&128)!=0}isHoley(t){return this.indirect?!1:!!(t&32768&&(this.h16&&t&4096||this.h8&&t&2048))}readDMA(t){return this.isHoley(t)?0:(this.cycles+=3,this.bus.read(t))}doDMA(t){this.bus=t,this.cycles=0;let e=this.pixels;if(e.fill(this.regs[0]),this.isDMAEnabled()){this.cycles+=this.offset==0?et:tt,this.offset<0&&this.readDLLEntry(t);let c=this.dlstart&65280,a=this.dlstart&255;do{let u=t.read(c+(a+0&511)),s=t.read(c+(a+1&511));if(s==0||c>=16384)break;let S=t.read(c+(a+2&511)),b=t.read(c+(a+3&511)),d=!1;if((s&31)==0){var i=b>>5,f=32-(b&31),r=t.read(c+(a+4&511));d=(s&32)!=0,a+=5,this.cycles+=10,this.writemode=s&128}else{var r=b,i=s>>5,f=32-(s&31);a+=4,this.cycles+=8}this.indirect=d;let x=u+((S+(d?0:this.offset)&255)<<8);r*=2;let C=this.regs[28],M=(C&3)+(this.writemode?4:0),A=(C&4)!=0,I=d&&(C&16)!=0;I&&(f*=2);for(var m=0;m<f;m++){let h=this.readDMA(I?x+(m>>1):x+m);if(d){let w=(this.regs[20]+this.offset<<8)+h;I&&m&1&&(w++,this.cycles-=3),h=this.readDMA(w)}switch(M){case 0:for(let n=0;n<4;n++){let l=h>>6&3;(l||A)&&(e[r]=e[r+1]=this.regs[(i<<2)+l]),h<<=2,r=r+2&511}break;case 3:for(let n=0;n<8;n++){let l=(h&128)>>6;(l||A)&&(e[r]=this.regs[(i<<2)+l]),h<<=1,r=r+1&511}break;case 4:for(let n=0;n<2;n++){let l=(h>>6&3)+(h&12);(l&3||A)&&(e[r]=e[r+1]=e[r+2]=e[r+3]=this.regs[((i&4)<<2)+l]),h<<=2,r=r+2&511}break;case 6:for(let n=0;n<4;n++){let l=(h&128)>>6|(h&8)>>3;(l||A)&&(e[r]=this.regs[(i<<2)+l]),h<<=1,r=r+1&511}break;case 2:for(let n=0;n<8;n++){let l=(h&128)>>6;l+=n&1?i&1:i>>1&1,(l||A)&&(e[r]=this.regs[(i<<2)+l]),h<<=1,r=r+1&511}break;case 7:let w=h;for(let n=0;n<4;n++){n==2&&(w<<=2);let l=(h&128)>>6,J=i&4|w>>2&3;(l||A)&&(e[r]=this.regs[(J<<2)+l]),h<<=1,r=r+1&511}break}}}while(this.cycles<y);this.offset-=1}return this.cycles}doInterrupt(){return this.dli&&this.offset<0?(this.dli=!1,!0):!1}static stateToLongString(t){let e="";return e+=L(t.regs,0,32),e+=`
|
||||
import{I as $,h as H,k as Y,p as z,t as K}from"./chunk-Z5TYMA6U.js";import{H as U,T as L,U as o,V as E,X as F,Z as N,_ as T,ca as W,g as p}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var g=0,R=2,v=8,Q=F([[o.A,v+0,128],[o.B,v+1,128],[o.GP_A,v+0,128],[o.GP_B,v+1,128],[o.SELECT,R,-2],[o.START,R,-1],[o.UP,g,-16],[o.DOWN,g,-32],[o.LEFT,g,-64],[o.RIGHT,g,-128],[o.P2_A,v+2,128],[o.P2_B,v+3,128],[o.P2_UP,g,-1],[o.P2_DOWN,g,-2],[o.P2_LEFT,g,-4],[o.P2_RIGHT,g,-8]]);var D=263,j=258-16,y=451,Z=28,tt=16,et=24,V=2,G=D*60*V,B=class{constructor(){this.regs=new Uint8Array(32)}reset(){this.regs.fill(0)}read(t){return this.regs[t]|0}write(t,e){this.regs[t]=e}saveState(){return{regs:this.regs.slice(0)}}loadState(t){for(let e=0;e<32;e++)this.write(e,t.regs[e])}static stateToLongString(t){let e="";return e+=L(t.regs,0,32),e}},_=class{constructor(){this.cycles=0;this.regs=new Uint8Array(32);this.offset=-1;this.dll=0;this.dlstart=0;this.dli=!1;this.h16=!1;this.h8=!1;this.writemode=0;this.indirect=!1;this.pixels=new Uint8Array(320);this.WSYNC=0}reset(){this.regs.fill(0)}read(t){return this.regs[t]|0}write(t,e){this.regs[t]=e,t==4&&this.WSYNC++}saveState(){return{regs:this.regs.slice(0),offset:this.offset,dll:this.dll,dlstart:this.dlstart,dli:this.dli,h16:this.h16,h8:this.h8,indirect:this.indirect,writemode:this.writemode}}loadState(t){for(let e=0;e<32;e++)this.write(e,t.regs[e]|0);this.offset=t.offset|0,this.dll=t.dll|0,this.dlstart=t.dlstart|0,this.dli=!!t.dli,this.h16=!!t.h16,this.h8=!!t.h8,this.indirect=!!t.indirect,this.writemode=t.writemode|0}isDMAEnabled(){return(this.regs[28]&96)==64}getDLLStart(){return(this.regs[12]<<8)+this.regs[16]}getCharBaseAddress(){return(this.regs[20]<<8)+this.offset}setVBLANK(t){t?(this.regs[8]|=128,this.offset=-1,this.dll=this.getDLLStart(),this.dli=this.bus&&(this.bus.read(this.dll)&128)!=0):this.regs[8]&=~128}readDLLEntry(t){if(this.dll>=16384)return;let e=t.read(this.dll);this.offset=e&15,this.h16=(e&64)!=0,this.h8=(e&32)!=0,this.dlstart=(t.read(this.dll+1)<<8)+t.read(this.dll+2),this.dll=this.dll+3&65535,this.dli=(t.read(this.dll)&128)!=0}isHoley(t){return this.indirect?!1:!!(t&32768&&(this.h16&&t&4096||this.h8&&t&2048))}readDMA(t){return this.isHoley(t)?0:(this.cycles+=3,this.bus.read(t))}doDMA(t){this.bus=t,this.cycles=0;let e=this.pixels;if(e.fill(this.regs[0]),this.isDMAEnabled()){this.cycles+=this.offset==0?et:tt,this.offset<0&&this.readDLLEntry(t);let c=this.dlstart&65280,a=this.dlstart&255;do{let u=t.read(c+(a+0&511)),s=t.read(c+(a+1&511));if(s==0||c>=16384)break;let S=t.read(c+(a+2&511)),b=t.read(c+(a+3&511)),d=!1;if((s&31)==0){var i=b>>5,f=32-(b&31),r=t.read(c+(a+4&511));d=(s&32)!=0,a+=5,this.cycles+=10,this.writemode=s&128}else{var r=b,i=s>>5,f=32-(s&31);a+=4,this.cycles+=8}this.indirect=d;let x=u+((S+(d?0:this.offset)&255)<<8);r*=2;let C=this.regs[28],M=(C&3)+(this.writemode?4:0),A=(C&4)!=0,I=d&&(C&16)!=0;I&&(f*=2);for(var m=0;m<f;m++){let h=this.readDMA(I?x+(m>>1):x+m);if(d){let w=(this.regs[20]+this.offset<<8)+h;I&&m&1&&(w++,this.cycles-=3),h=this.readDMA(w)}switch(M){case 0:for(let n=0;n<4;n++){let l=h>>6&3;(l||A)&&(e[r]=e[r+1]=this.regs[(i<<2)+l]),h<<=2,r=r+2&511}break;case 3:for(let n=0;n<8;n++){let l=(h&128)>>6;(l||A)&&(e[r]=this.regs[(i<<2)+l]),h<<=1,r=r+1&511}break;case 4:for(let n=0;n<2;n++){let l=(h>>6&3)+(h&12);(l&3||A)&&(e[r]=e[r+1]=e[r+2]=e[r+3]=this.regs[((i&4)<<2)+l]),h<<=2,r=r+2&511}break;case 6:for(let n=0;n<4;n++){let l=(h&128)>>6|(h&8)>>3;(l||A)&&(e[r]=this.regs[(i<<2)+l]),h<<=1,r=r+1&511}break;case 2:for(let n=0;n<8;n++){let l=(h&128)>>6;l+=n&1?i&1:i>>1&1,(l||A)&&(e[r]=this.regs[(i<<2)+l]),h<<=1,r=r+1&511}break;case 7:let w=h;for(let n=0;n<4;n++){n==2&&(w<<=2);let l=(h&128)>>6,J=i&4|w>>2&3;(l||A)&&(e[r]=this.regs[(J<<2)+l]),h<<=1,r=r+1&511}break}}}while(this.cycles<y);this.offset-=1}return this.cycles}doInterrupt(){return this.dli&&this.offset<0?(this.dli=!1,!0):!1}static stateToLongString(t){let e="";return e+=L(t.regs,0,32),e+=`
|
||||
DLL: $`+p((t.regs[12]<<8)+t.regs[16],4)+" @ $"+p(t.dll,4),e+=`
|
||||
DL: $`+p(t.dlstart,4),e+=`
|
||||
Offset: `+t.offset,e+=`
|
||||
DLI? `+t.dli,e}},O=class extends z{constructor(){super();this.cpuFrequency=1789772;this.canvasWidth=320;this.numTotalScanlines=D;this.numVisibleScanlines=j;this.defaultROMSize=49152;this.cpuCyclesPerLine=113.5;this.sampleRate=G;this.ram=new Uint8Array(4096);this.regs6532=new Uint8Array(4);this.piatimer=0;this.timerinterval=1;this.tia=new B;this.maria=new _;this.lastFrameCycles=0;this.xtracyc=0;this.cpu=new K,this.read=T([[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=T([[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,Q),this.pokey1=new H,this.audioadapter=new Y(this.pokey1,V,G)}readConst(t){let e=this.probe;this.probe=null;let i=this.read(t);return this.probe=e,i}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,i=0,f,r=0,m=0,c=0;this.lastFrameCycles=-1,this.probe.logNewFrame();for(var a=0;a<D;a++){this.scanline=a;var u=a<j;for(this.maria.setVBLANK(!u),this.maria.WSYNC=0;r<Z&&!this.maria.WSYNC;){if(t&&t()){t=null,a=999,this.lastFrameCycles=r;break}r+=this.advanceCPU()<<2,c++}if(u){let S=this.maria.doDMA(this.dmaBus);if(this.tickClocks(S>>2),r+=S,e){let x=(this.maria.regs[28]&128)!=0?15:255;for(var s=0;s<320;s++)e[i++]=X[this.maria.pixels[s]&x]}}for((u||a==D-1)&&this.maria.doInterrupt()&&(this.probe.logInterrupt(0),this.cpu.NMI());r<y;){if(this.maria.WSYNC){this.probe.logWait(0),this.tickClocks(y-r>>2),r=y;break}if(t&&t()){t=null,a=999,this.lastFrameCycles=r;break}r+=this.advanceCPU()<<2,c++}this.audio&&this.audioadapter.generate(this.audio),r-=y,m+=r,this.probe.logNewScanline()}return c}getRasterX(){return(this.lastFrameCycles+y)%y}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[g]=255,this.inputs[R]=1+2+8,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 B.stateToLongString(e.tia);case"MARIA":return _.stateToLongString(e.maria)+`
|
||||
Scanline: `+this.scanline}}getDebugDisplayLists(){let t={},e=this.maria.getDLLStart(),i=0;for(;i<240;){let f=this.readConst(e),r=f&15,m=(f&64)!=0,c=(f&32)!=0,a=(this.readConst(e+1)<<8)+this.readConst(e+2);e=e+3&65535;let u=(this.readConst(e)&128)!=0,s="DL $"+p(a,4)+" "+i+"-"+(i+r);m&&(s+=" H16"),c&&(s+=" H8"),u&&(s+=" DLI"),t[s]={$$:this._readDebugDisplayList(a)},i+=r+1}return t}_readDebugDisplayList(t){return()=>this.readDebugDisplayList(t)}readDebugDisplayList(t){let e=[],i=t&65280,f=t&255;do{let a=this.maria.regs[28],u=this.readConst(i+(f+0&511)),s=this.readConst(i+(f+1&511));if(s==0)break;let S=this.readConst(i+(f+2&511)),b=this.readConst(i+(f+3&511)),d=!1,x="",C,M=(a&3)+(s&128?4:0);if((s&31)==0){var r=b>>5,m=32-(b&31),c=this.readConst(i+(f+4&511));d=(s&32)!=0,C=s&128,f+=5}else{var c=b,r=s>>5,m=32-(s&31);f+=4}x+="X="+c+" W="+m+" P="+r,C&&(x+=" WM=1"),d&&(x+=" CHR=$"+p(this.maria.regs[20]+this.maria.offset&255)+"xx");let A=u+((S+(d?0:this.maria.offset)&255)<<8);x=" $"+p(A,4)+" "+x,x=["160A","?","320D","320A","160B","?","320B","320C"][M]+" "+x,e.push(x)}while(f<512);return e}},X=new Uint32Array(256);for(P=0;P<256;P++)X[P]=W(P);var P;var rt=[{id:"sprites.dasm",name:"Sprites (ASM)"},{id:"wsync.c",name:"WSYNC"},{id:"sprites.c",name:"Double Buffering"},{id:"scroll.c",name:"Scrolling"}],q=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:49152,type:"rom"}]}}}newMachine(){return new O}getPresets(){return rt}getDefaultExtension(){return".c"}readAddress(t){return this.machine.readConst(t)}getROMExtension(){return".a78"}getDebugTree(){let t=super.getDebugTree();return t.display_list=this.machine.getDebugDisplayLists(),t}};U.atari7800=q;
|
||||
//# sourceMappingURL=atari7800-UZ6P4MK3.js.map
|
||||
//# sourceMappingURL=atari7800-4MJAN6R5.js.map
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
import{a as M}from"./chunk-QMEDAVUY.js";import{B as S,I as _,r as g,y as b}from"./chunk-OOCS5TPQ.js";import{H as c,M as a,T as x,a as l,g as o,u as p}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var d=class extends g{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){var s=59940-57344+12288;e[s]==196&&(e[s]=96),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 s=0,t=0;t<5;t++){var e=this.romarr[7+t];if(e==155||e==0)break;s=s*10+(e&15)}this.prgstart=s,console.log("SYS",s,o(s))}else this.prgstart=this.romarr[2]+(this.romarr[3]<<8)+2,console.log("RUN",this.prgstart,o(this.prgstart));if(this.prgstart<32768){this.exports.machine_exec(this.sys,25e4);for(var i="\rSYS "+this.prgstart,t=0;t<i.length;t++){var r=i.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)}else{this.exports.machine_exec(this.sys,100);for(var n=this.romarr[4]+this.romarr[5]*256,t=0;t<15e4&&this.getPC()!=n;t++)this.exports.machine_tick(this.sys)}}}advanceFrame(e){var s=this.getRasterY(),t=Math.floor((this.numTotalScanlines-s)*19656/this.numTotalScanlines),i=this.probe!=null;return i&&this.exports.machine_reset_probe_buffer(),t=super.advanceFrameClock(e,t),i&&this.copyProbeData(),t}getCPUState(){this.exports.machine_save_cpu_state(this.sys,this.cpustateptr);var e=this.cpustatearr,s=e[2]+(e[3]<<8);return{PC:s,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(s),R:e[19]!=55}}saveState(){this.exports.machine_save_state(this.sys,this.stateptr);let e=this.getDebugStateOffset(1),s=this.getDebugStateOffset(2),t=this.getDebugStateOffset(3),i=this.getDebugStateOffset(4),r=this.getDebugStateOffset(5),n=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(s,s+64),vic:this.statearr.slice(t+1,t+1+64),sid:this.statearr.slice(i,i+32),pla:this.statearr.slice(n,n+16)}}loadState(e){this.statearr.set(e.state),this.exports.machine_load_state(this.sys,this.stateptr)}getVideoParams(){return{width:392,height:272,overscan:!0,videoFrequency:50,aspect:392/272*.9365}}setKeyInput(e,s,t){if(!(e==16||e==17||e==18||e==224)){var i=0,r=0;switch(e){case 32:i=16;break;case 37:e=8,i=4;break;case 38:e=11,i=1;break;case 39:e=9,i=8;break;case 40:e=10,i=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&a.Shift?60:46;break;case 190:e=t&a.Shift?62:44;break;case 191:e=t&a.Shift?63:47;break;case 222:e=t&a.Shift?34:39;break;case 219:e=t&a.Shift?123:91;break;case 221:e=t&a.Shift?125:93;break;case 48:t&a.Shift&&(e=41);break;case 49:t&a.Shift&&(e=33);break;case 50:t&a.Shift&&(e=64);break;case 51:t&a.Shift&&(e=35);break;case 52:t&a.Shift&&(e=36);break;case 53:t&a.Shift&&(e=37);break;case 54:t&a.Shift&&(e=94);break;case 55:t&a.Shift&&(e=38);break;case 56:t&a.Shift&&(e=42);break;case 57:t&a.Shift&&(e=40);break;case 59:t&a.Shift&&(e=58);break;case 61:t&a.Shift&&(e=43);break;case 173:e=t&a.Shift?95:45;break}t&a.KeyDown?(this.exports.machine_key_down(this.sys,e),this.joymask0|=i,this.joymask1|=r):t&a.KeyUp&&(this.exports.machine_key_up(this.sys,e),this.joymask0&=~i,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 s=this.exports.machine_get_debug_pointer(this.sys,e);return s-this.sys}getDebugCategories(){return["CPU","ZPRAM","Stack","PLA","CIA","VIC","SID"]}getDebugInfo(e,s){switch(e){case"PLA":{let t="",i=s.pla[0],r=s.pla[3];return t+=`$0000 - $9FFF RAM
|
||||
import{a as M}from"./chunk-RTPZJPCH.js";import{B as S,I as _,r as g,y as b}from"./chunk-Z5TYMA6U.js";import{H as c,M as a,T as x,a as l,g as o,u as p}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var d=class extends g{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){var s=59940-57344+12288;e[s]==196&&(e[s]=96),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 s=0,t=0;t<5;t++){var e=this.romarr[7+t];if(e==155||e==0)break;s=s*10+(e&15)}this.prgstart=s,console.log("SYS",s,o(s))}else this.prgstart=this.romarr[2]+(this.romarr[3]<<8)+2,console.log("RUN",this.prgstart,o(this.prgstart));if(this.prgstart<32768){this.exports.machine_exec(this.sys,25e4);for(var i="\rSYS "+this.prgstart,t=0;t<i.length;t++){var r=i.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)}else{this.exports.machine_exec(this.sys,100);for(var n=this.romarr[4]+this.romarr[5]*256,t=0;t<15e4&&this.getPC()!=n;t++)this.exports.machine_tick(this.sys)}}}advanceFrame(e){var s=this.getRasterY(),t=Math.floor((this.numTotalScanlines-s)*19656/this.numTotalScanlines),i=this.probe!=null;return i&&this.exports.machine_reset_probe_buffer(),t=super.advanceFrameClock(e,t),i&&this.copyProbeData(),t}getCPUState(){this.exports.machine_save_cpu_state(this.sys,this.cpustateptr);var e=this.cpustatearr,s=e[2]+(e[3]<<8);return{PC:s,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(s),R:e[19]!=55}}saveState(){this.exports.machine_save_state(this.sys,this.stateptr);let e=this.getDebugStateOffset(1),s=this.getDebugStateOffset(2),t=this.getDebugStateOffset(3),i=this.getDebugStateOffset(4),r=this.getDebugStateOffset(5),n=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(s,s+64),vic:this.statearr.slice(t+1,t+1+64),sid:this.statearr.slice(i,i+32),pla:this.statearr.slice(n,n+16)}}loadState(e){this.statearr.set(e.state),this.exports.machine_load_state(this.sys,this.stateptr)}getVideoParams(){return{width:392,height:272,overscan:!0,videoFrequency:50,aspect:392/272*.9365}}setKeyInput(e,s,t){if(!(e==16||e==17||e==18||e==224)){var i=0,r=0;switch(e){case 32:i=16;break;case 37:e=8,i=4;break;case 38:e=11,i=1;break;case 39:e=9,i=8;break;case 40:e=10,i=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&a.Shift?60:46;break;case 190:e=t&a.Shift?62:44;break;case 191:e=t&a.Shift?63:47;break;case 222:e=t&a.Shift?34:39;break;case 219:e=t&a.Shift?123:91;break;case 221:e=t&a.Shift?125:93;break;case 48:t&a.Shift&&(e=41);break;case 49:t&a.Shift&&(e=33);break;case 50:t&a.Shift&&(e=64);break;case 51:t&a.Shift&&(e=35);break;case 52:t&a.Shift&&(e=36);break;case 53:t&a.Shift&&(e=37);break;case 54:t&a.Shift&&(e=94);break;case 55:t&a.Shift&&(e=38);break;case 56:t&a.Shift&&(e=42);break;case 57:t&a.Shift&&(e=40);break;case 59:t&a.Shift&&(e=58);break;case 61:t&a.Shift&&(e=43);break;case 173:e=t&a.Shift?95:45;break}t&a.KeyDown?(this.exports.machine_key_down(this.sys,e),this.joymask0|=i,this.joymask1|=r):t&a.KeyUp&&(this.exports.machine_key_up(this.sys,e),this.joymask0&=~i,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 s=this.exports.machine_get_debug_pointer(this.sys,e);return s-this.sys}getDebugCategories(){return["CPU","ZPRAM","Stack","PLA","CIA","VIC","SID"]}getDebugInfo(e,s){switch(e){case"PLA":{let t="",i=s.pla[0],r=s.pla[3];return t+=`$0000 - $9FFF RAM
|
||||
`,t+=`$A000 - $BFFF ${(r&3)==3?"BASIC ROM":"RAM"}
|
||||
`,t+=`$C000 - $CFFF RAM
|
||||
`,t+=`$D000 - $DFFF ${i?"I/O":(r&3)!=0?"CHAR ROM":"RAM"}
|
||||
@ -9,6 +9,6 @@ import{a as M}from"./chunk-QMEDAVUY.js";import{B as S,I as _,r as g,y as b}from"
|
||||
`}return t}case"VIC":{let t=s.vic,i="",r=(s.cia2[0]&3^3)*16384,n=r+(s.vic[24]&14)*1024,m=r+(s.vic[24]>>4)*1024,h=s.vic[17]&32,C=(s.cia2[0]&1)==1&&(s.vic[24]&12)==4,A=s.state[244],I=this.getRasterY();return i+="Mode:",s.vic[17]&32?i+=" BITMAP":i+=" CHAR",s.vic[22]&16&&(i+=" MULTICOLOR"),s.vic[17]&64&&(i+=" EXTENDED"),i+=`
|
||||
`,i+=`Raster: (${l(A,3)}, ${l(I,3)}) `,i+=`Scroll: (${s.vic[22]&7}, ${s.vic[17]&7})`,i+=`
|
||||
`,i+=`VIC Bank: $${o(r,4)} Scrn: $${o(m,4)} `,h?i+=`Bitmap: $${o(n&57344,4)}`:C?i+=`Char: ROM $${o(n,4)}`:i+=`Char: $${o(n,4)}`,i+=`
|
||||
`,i+=x(t,53248,64),i}case"SID":{let t=s.sid,i="";return i+=x(t,54272,32),i}}}setPaddleInput(e,s){e==0&&(this.lightpen_x=s),e==1&&(this.lightpen_y=s);let t=22,i=36,r=228,n=220,m=p(0,255,(this.lightpen_x-t)/(r-t)*160+24),h=p(0,255,(this.lightpen_y-i)/(n-i)*200+50);this.exports.machine_set_mouse(this.sys,m,h)}};var v=[{id:"hello.dasm",name:"Hello World (ASM)"},{id:"23matches.c",name:"23 Matches"},{id:"tgidemo.c",name:"TGI Graphics Demo"},{id:"upandaway.c",name:"Up, Up and Away"},{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_display_list.c",name:"Display List / Raster IRQ"},{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:"scrollingmap1.c",name:"Scrolling Tile Map"},{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:"climber.c",name:"Climber Game"},{id:"test_border_sprites.c",name:"Sprites in the Borders"},{id:"sprite_stretch.c",name:"Sprite Stretching"},{id:"plasma.c",name:"Plasma Demo"},{id:"hello.wiz",name:"Hello Wiz (Wiz)"}],R={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"}]},f=class extends _{newMachine(){return new d("c64")}getPresets(){return v}getDefaultExtension(){return".c"}readAddress(e){return this.machine.readConst(e)}getMemoryMap(){return R}showHelp(){return"https://8bitworkshop.com/docs/platforms/c64/"}getROMExtension(e){return e&&e[0]==1&&e[1]==8?".prg":".bin"}},y=class extends M{constructor(){super(...arguments);this.getToolForFilename=b;this.getOpcodeMetadata=S}getPresets(){return v}getDefaultExtension(){return".c"}loadROM(e,s){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(s),romsize:65536,extraargs:["-autoboot_delay","5","-autoboot_command",`load "$",8,1
|
||||
`],preInit:function(i){}});else{this.loadROMFile(s),this.loadRegion(":quickload",s);var t=this.luacall('image:load("/emulator/image.prg")');console.log("load rom",t)}}start(){}getMemoryMap(){return R}};c.c64=f;c["c64.wasm"]=f;c["c64.mame"]=y;
|
||||
//# sourceMappingURL=c64-35CAKSO5.js.map
|
||||
`,i+=x(t,53248,64),i}case"SID":{let t=s.sid,i="";return i+=x(t,54272,32),i}}}setPaddleInput(e,s){e==0&&(this.lightpen_x=s),e==1&&(this.lightpen_y=s);let t=22,i=36,r=228,n=220,m=p(0,255,(this.lightpen_x-t)/(r-t)*160+24),h=p(0,255,(this.lightpen_y-i)/(n-i)*200+50);this.exports.machine_set_mouse(this.sys,m,h)}};var v=[{id:"helloc.c",name:"Hello World",category:"C"},{id:"screen_ram.c",name:"Screen RAM"},{id:"joymove.c",name:"Sprite Movement"},{id:"sprite_collision.c",name:"Sprite Collision"},{id:"scroll1.c",name:"Scrolling (Single Buffer)"},{id:"test_display_list.c",name:"Display List / Raster IRQ"},{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:"scrollingmap1.c",name:"Scrolling Tile Map"},{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:"climber.c",name:"Climber Game"},{id:"test_border_sprites.c",name:"Sprites in the Borders"},{id:"sprite_stretch.c",name:"Sprite Stretching"},{id:"plasma.c",name:"Plasma Demo"},{id:"siegegame.c",name:"Siege Game"},{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 (ACME)"},{id:"hello.wiz",name:"Hello Wiz (Wiz)"}],y={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"}]},f=class extends _{newMachine(){return new d("c64")}getPresets(){return v}getDefaultExtension(){return".c"}readAddress(e){return this.machine.readConst(e)}getMemoryMap(){return y}showHelp(){return"https://8bitworkshop.com/docs/platforms/c64/"}getROMExtension(e){return e&&e[0]==1&&e[1]==8?".prg":".bin"}},R=class extends M{constructor(){super(...arguments);this.getToolForFilename=b;this.getOpcodeMetadata=S}getPresets(){return v}getDefaultExtension(){return".c"}loadROM(e,s){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(s),romsize:65536,extraargs:["-autoboot_delay","5","-autoboot_command",`load "$",8,1
|
||||
`],preInit:function(i){}});else{this.loadROMFile(s),this.loadRegion(":quickload",s);var t=this.luacall('image:load("/emulator/image.prg")');console.log("load rom",t)}}start(){}getMemoryMap(){return y}};c.c64=f;c["c64.wasm"]=f;c["c64.mame"]=R;
|
||||
//# sourceMappingURL=c64-OASLBPT5.js.map
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
import{A as C,C as w,a as p,b as P}from"./chunk-OOCS5TPQ.js";import{N as b,Q as v,S}from"./chunk-6HNEHZRR.js";var m=class{constructor(t){this.loaded=!1;this.preinitted=!1;this.started=!1;this.romtype="cart";this.running=!1;this.initluavars=!1;this.mainElement=t,this.timer=new S(20,this.poll.bind(this))}luacall(t){return this.js_lua_string||(this.js_lua_string=Module.cwrap("_Z13js_lua_stringPKc","string",["string"])),this.js_lua_string(t||"")}_pause(){this.running=!1,this.timer.stop()}pause(){this.loaded&&this.running&&(this.luacall("emu.pause()"),this._pause())}_resume(){this.luacall("emu.unpause()"),this.running=!0,this.timer.start()}resume(){this.loaded&&!this.running&&this._resume()}reset(){this.loaded&&(this.luacall("manager:machine():soft_reset()"),this.running=!0,this.initluavars=!1)}isRunning(){return this.running}bufferConsoleOutput(t){typeof t=="string"&&console.log(t)}startModule(t,e){this.started=!0;var r=this.romfn=this.romfn||e.romfn,a=this.romdata=this.romdata||e.romdata||new v(e.romsize).mem,o=this.romtype=this.romtype||e.romtype,n=this.video=new b(this.mainElement,e.width,e.height);n.create(),$(n.canvas).attr("id","canvas"),console.log("loading",e.jsfile);var u=[e.driver,"-debug","-debugger","none","-verbose","-window","-nokeepaspect","-resolution",n.canvas.width+"x"+n.canvas.height];r&&u.push("-"+o,r),e.extraargs&&(u=u.concat(e.extraargs)),console.log(u),window.JSMESS={},window.Module={arguments:u,screenIsReadOnly:!0,print:this.bufferConsoleOutput,canvas:n.canvas,doNotCaptureKeyboard:!0,keyboardListeningElement:n.canvas,preInit:()=>{console.log("loading FS"),ENV.SDL_EMSCRIPTEN_KEYBOARD_ELEMENT="canvas",e.cfgfile&&(FS.mkdir("/cfg"),FS.writeFile("/cfg/"+e.cfgfile,e.cfgdata,{encoding:"utf8"})),e.biosfile&&(FS.mkdir("/roms"),FS.mkdir("/roms/"+e.driver),FS.writeFile("/roms/"+e.biosfile,e.biosdata,{encoding:"binary"})),FS.mkdir("/emulator"),r&&FS.writeFile(r,a,{encoding:"binary"}),e.preInit&&e.preInit(self),this.preinitted=!0},preRun:[()=>{$(n.canvas).click(i=>{n.canvas.focus()}),this.loaded=!0,console.log("about to run...")}]};var d,c,g=$.Deferred(),f=$.Deferred();if(e.cfgfile&&(d=$.get("mame/cfg/"+e.cfgfile,i=>{e.cfgdata=i,console.log("loaded "+e.cfgfile)},"text")),e.biosfile){var s=new XMLHttpRequest;s.open("GET","mame/roms/"+e.biosfile,!0),s.responseType="arraybuffer",s.onload=i=>{e.biosdata=new Uint8Array(s.response),console.log("loaded "+e.biosfile),g.resolve()},s.ontimeout=function(i){throw Error("Timeout loading "+e.biosfile)},s.send()}else g.resolve();c=$.get("mame/debugger.lua",i=>{this.luadebugscript=i,console.log("loaded debugger.lua")},"text");{var l=new XMLHttpRequest;l.open("GET","mame/"+e.jsfile.replace(".js",".wasm"),!0),l.responseType="arraybuffer",l.onload=i=>{console.log("loaded WASM file"),window.Module.wasmBinary=new Uint8Array(l.response),f.resolve()},l.ontimeout=function(i){throw Error("Timeout loading "+e.jsfile)},l.send()}$.when(c,d,g,f).done(()=>{var i=document.createElement("script");i.src="mame/"+e.jsfile,document.getElementsByTagName("head")[0].appendChild(i),console.log("created script element")}),window.mamelua=i=>(this.initlua(),[i,this.luacall(i)])}loadROMFile(t){this.romdata=t,this.preinitted&&this.romfn&&FS.writeFile(this.romfn,t,{encoding:"binary"})}loadRegion(t,e){if(this.loaded&&e.length>0){for(var r='rgn = manager:machine():memory().regions["'+t+`"]
|
||||
import{A as C,C as w,a as p,b as P}from"./chunk-Z5TYMA6U.js";import{N as b,Q as v,S}from"./chunk-6HNEHZRR.js";var m=class{constructor(t){this.loaded=!1;this.preinitted=!1;this.started=!1;this.romtype="cart";this.running=!1;this.initluavars=!1;this.mainElement=t,this.timer=new S(20,this.poll.bind(this))}luacall(t){return this.js_lua_string||(this.js_lua_string=Module.cwrap("_Z13js_lua_stringPKc","string",["string"])),this.js_lua_string(t||"")}_pause(){this.running=!1,this.timer.stop()}pause(){this.loaded&&this.running&&(this.luacall("emu.pause()"),this._pause())}_resume(){this.luacall("emu.unpause()"),this.running=!0,this.timer.start()}resume(){this.loaded&&!this.running&&this._resume()}reset(){this.loaded&&(this.luacall("manager:machine():soft_reset()"),this.running=!0,this.initluavars=!1)}isRunning(){return this.running}bufferConsoleOutput(t){typeof t=="string"&&console.log(t)}startModule(t,e){this.started=!0;var r=this.romfn=this.romfn||e.romfn,a=this.romdata=this.romdata||e.romdata||new v(e.romsize).mem,o=this.romtype=this.romtype||e.romtype,n=this.video=new b(this.mainElement,e.width,e.height);n.create(),$(n.canvas).attr("id","canvas"),console.log("loading",e.jsfile);var u=[e.driver,"-debug","-debugger","none","-verbose","-window","-nokeepaspect","-resolution",n.canvas.width+"x"+n.canvas.height];r&&u.push("-"+o,r),e.extraargs&&(u=u.concat(e.extraargs)),console.log(u),window.JSMESS={},window.Module={arguments:u,screenIsReadOnly:!0,print:this.bufferConsoleOutput,canvas:n.canvas,doNotCaptureKeyboard:!0,keyboardListeningElement:n.canvas,preInit:()=>{console.log("loading FS"),ENV.SDL_EMSCRIPTEN_KEYBOARD_ELEMENT="canvas",e.cfgfile&&(FS.mkdir("/cfg"),FS.writeFile("/cfg/"+e.cfgfile,e.cfgdata,{encoding:"utf8"})),e.biosfile&&(FS.mkdir("/roms"),FS.mkdir("/roms/"+e.driver),FS.writeFile("/roms/"+e.biosfile,e.biosdata,{encoding:"binary"})),FS.mkdir("/emulator"),r&&FS.writeFile(r,a,{encoding:"binary"}),e.preInit&&e.preInit(self),this.preinitted=!0},preRun:[()=>{$(n.canvas).click(i=>{n.canvas.focus()}),this.loaded=!0,console.log("about to run...")}]};var d,c,g=$.Deferred(),f=$.Deferred();if(e.cfgfile&&(d=$.get("mame/cfg/"+e.cfgfile,i=>{e.cfgdata=i,console.log("loaded "+e.cfgfile)},"text")),e.biosfile){var s=new XMLHttpRequest;s.open("GET","mame/roms/"+e.biosfile,!0),s.responseType="arraybuffer",s.onload=i=>{e.biosdata=new Uint8Array(s.response),console.log("loaded "+e.biosfile),g.resolve()},s.ontimeout=function(i){throw Error("Timeout loading "+e.biosfile)},s.send()}else g.resolve();c=$.get("mame/debugger.lua",i=>{this.luadebugscript=i,console.log("loaded debugger.lua")},"text");{var l=new XMLHttpRequest;l.open("GET","mame/"+e.jsfile.replace(".js",".wasm"),!0),l.responseType="arraybuffer",l.onload=i=>{console.log("loaded WASM file"),window.Module.wasmBinary=new Uint8Array(l.response),f.resolve()},l.ontimeout=function(i){throw Error("Timeout loading "+e.jsfile)},l.send()}$.when(c,d,g,f).done(()=>{var i=document.createElement("script");i.src="mame/"+e.jsfile,document.getElementsByTagName("head")[0].appendChild(i),console.log("created script element")}),window.mamelua=i=>(this.initlua(),[i,this.luacall(i)])}loadROMFile(t){this.romdata=t,this.preinitted&&this.romfn&&FS.writeFile(this.romfn,t,{encoding:"binary"})}loadRegion(t,e){if(this.loaded&&e.length>0){for(var r='rgn = manager:machine():memory().regions["'+t+`"]
|
||||
`,a=0;a<e.length;a+=4){var o=e[a]+(e[a+1]<<8)+(e[a+2]<<16)+(e[a+3]<<24);r+="rgn:write_u32("+a+","+o+`)
|
||||
`}this.luacall(r),this.reset()}}initlua(){this.initluavars||(this.luacall(this.luadebugscript),this.luacall("mamedbg.init()"),this.initluavars=!0)}readAddress(t){return this.initlua(),parseInt(this.luacall("return mem:read_u8("+t+")"))}getCPUReg(t){return this.loaded?(this.initlua(),parseInt(this.luacall("return cpu.state."+t+".value"))):0}grabState(t){return this.initlua(),{c:this.getCPUState(),buf:this.luacall("return string.tohex("+t+")")}}saveState(){return this.grabState("manager:machine():buffer_save()")}loadState(t){return this.initlua(),this.luacall("manager:machine():buffer_load(string.fromhex('"+t.buf+"'))")}poll(){if(this.onBreakpointHit&&this.luacall("return tostring(mamedbg.is_stopped())")=="true"){this._pause();var t=this.grabState("lastBreakState");this.onBreakpointHit(t)}}clearDebug(){this.onBreakpointHit=null,this.loaded&&(this.initlua(),this.luacall("mamedbg.reset()"))}getDebugCallback(){return this.onBreakpointHit}setupDebug(t){this.onBreakpointHit=t}debugcmd(t){this.initlua(),this.luacall(t),this._resume()}runToPC(t){this.debugcmd("mamedbg.runTo("+t+")")}runToVsync(){this.debugcmd("mamedbg.runToVsync()")}runUntilReturn(){this.debugcmd("mamedbg.runUntilReturn()")}runEval(){this.reset(),this.step()}step(){this.debugcmd("mamedbg.step()")}getDebugCategories(){return["CPU"]}getDebugInfo(t,e){switch(t){case"CPU":return this.cpuStateToLongString(e.c)}}getDebugTree(){this.initlua();var t=JSON.parse(this.luacall("return table.tojson(manager:machine().devices)")),e=JSON.parse(this.luacall("return table.tojson(manager:machine().images)")),r=JSON.parse(this.luacall("return table.tojson(manager:machine():memory().regions)"));return{devices:t,images:e,regions:r}}},_=class extends m{getPC(){return this.getCPUReg("PC")}getSP(){return this.getCPUReg("SP")}isStable(){return!0}getCPUState(){return{PC:this.getPC(),SP:this.getSP(),A:this.getCPUReg("A"),X:this.getCPUReg("X"),Y:this.getCPUReg("Y"),flags:this.getCPUReg("P")}}disassemble(t,e){return p(t,e(t),e(t+1),e(t+2))}cpuStateToLongString(t){return C(t)}},E=class extends m{getPC(){return this.getCPUReg("PC")}getSP(){return this.getCPUReg("SP")}isStable(){return!0}getCPUState(){return{PC:this.getPC(),SP:this.getSP(),AF:this.getCPUReg("AF"),BC:this.getCPUReg("BC"),DE:this.getCPUReg("DE"),HL:this.getCPUReg("HL"),IX:this.getCPUReg("IX"),IY:this.getCPUReg("IY"),IR:this.getCPUReg("R")+(this.getCPUReg("I")<<8)}}disassemble(t,e){return P(t,e(t),e(t+1),e(t+2),e(t+3))}cpuStateToLongString(t){return w(t)}};export{_ as a,E as b};
|
||||
//# sourceMappingURL=chunk-QMEDAVUY.js.map
|
||||
//# sourceMappingURL=chunk-RTPZJPCH.js.map
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
import{c as E}from"./chunk-E2AQCZR6.js";import{b as f}from"./chunk-QMEDAVUY.js";import{E as m,J as n,d as w,f as c}from"./chunk-OOCS5TPQ.js";import{H as o,U as e,X as s,_ as t,k as g,l as a}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var Q=s([[e.UP,0,1],[e.DOWN,0,4],[e.LEFT,0,8],[e.RIGHT,0,2],[e.A,0,64],[e.B,1,64],[e.GP_A,0,64],[e.GP_B,1,64],[e.P2_UP,2,1],[e.P2_DOWN,2,4],[e.P2_LEFT,2,8],[e.P2_RIGHT,2,2],[e.P2_A,2,64],[e.P2_B,3,64]]),r=class extends E{constructor(){super();this.defaultROMSize=32768;this.ram=new Uint8Array(1024);this.read=t([[0,8191,8191,A=>this.bios?this.bios[A]:0],[24576,32767,1023,A=>this.ram[A]],[32768,65535,32767,A=>this.rom?this.rom[A]:0]]);this.write=t([[24576,32767,1023,(A,B)=>{this.ram[A]=B}]]);this.init(this,this.newIOBus(),new c(new w)),this.bios=new g().decode(a(atob(l)))}getKeyboardMap(){return Q}vdpInterrupt(){this.probe.logInterrupt(0),this.cpu.NMI()}newIOBus(){return{read:A=>{switch(A&=255,A){case 252:return this.inputs[this.keypadMode?1:0]^255;case 255:return this.inputs[this.keypadMode?3:2]^255}return A>=160&&A<=191?A&1?this.vdp.readStatus():this.vdp.readData():0},write:(A,B)=>{switch(A&=255,B&=255,A>>4){case 8:case 9:this.keypadMode=!0;break;case 12:case 13:this.keypadMode=!1;break;case 10:case 11:return A&1?this.vdp.writeAddress(B):this.vdp.writeData(B);case 15:this.psg.setData(B);break}}}}loadState(A){super.loadState(A),this.keypadMode=A.kpm}saveState(){var A=super.saveState();return A.kpm=this.keypadMode,A}reset(){super.reset(),this.keypadMode=!1}},l=`
|
||||
import{c as E}from"./chunk-HNHXM2GS.js";import{b as f}from"./chunk-RTPZJPCH.js";import{E as m,J as n,d as w,f as c}from"./chunk-Z5TYMA6U.js";import{H as o,U as e,X as s,_ as t,k as g,l as a}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var Q=s([[e.UP,0,1],[e.DOWN,0,4],[e.LEFT,0,8],[e.RIGHT,0,2],[e.A,0,64],[e.B,1,64],[e.GP_A,0,64],[e.GP_B,1,64],[e.P2_UP,2,1],[e.P2_DOWN,2,4],[e.P2_LEFT,2,8],[e.P2_RIGHT,2,2],[e.P2_A,2,64],[e.P2_B,3,64]]),r=class extends E{constructor(){super();this.defaultROMSize=32768;this.ram=new Uint8Array(1024);this.read=t([[0,8191,8191,A=>this.bios?this.bios[A]:0],[24576,32767,1023,A=>this.ram[A]],[32768,65535,32767,A=>this.rom?this.rom[A]:0]]);this.write=t([[24576,32767,1023,(A,B)=>{this.ram[A]=B}]]);this.init(this,this.newIOBus(),new c(new w)),this.bios=new g().decode(a(atob(l)))}getKeyboardMap(){return Q}vdpInterrupt(){this.probe.logInterrupt(0),this.cpu.NMI()}newIOBus(){return{read:A=>{switch(A&=255,A){case 252:return this.inputs[this.keypadMode?1:0]^255;case 255:return this.inputs[this.keypadMode?3:2]^255}return A>=160&&A<=191?A&1?this.vdp.readStatus():this.vdp.readData():0},write:(A,B)=>{switch(A&=255,B&=255,A>>4){case 8:case 9:this.keypadMode=!0;break;case 12:case 13:this.keypadMode=!1;break;case 10:case 11:return A&1?this.vdp.writeAddress(B):this.vdp.writeData(B);case 15:this.psg.setData(B);break}}}}loadState(A){super.loadState(A),this.keypadMode=A.kpm}saveState(){var A=super.saveState();return A.kpm=this.keypadMode,A}reset(){super.reset(),this.keypadMode=!1}},l=`
|
||||
TFpHAAAgAAAAB7djQcnHAQEDBgcx/3MYawAAAMMMgAehB+EPB+USB+UVB+UYB+UbB+UeB+QHHAZm
|
||||
IYA8igUCBYIAKgCAff5VIAl8/qogBCoKgOnHAwkfgICAAAMFT6CgB4LgByEH4WDAYMBABlggQIAg
|
||||
B+HAwOCgYAMGKweBQAYxBphAQEAG+KBABnAGEuAGUAabB+QA4AflBkggIAYyB+FgoKCgwAZdwAY5
|
||||
@ -34,4 +34,4 @@ PANDTwNjYHAGWShQAwKHOBA4A8LZA0IIeAaZOEREKChsADBAIBA4BqkoA4KfA0KIVFQDIvg4QANi
|
||||
FwAGaQNjr3gHIwZYEAAGEEAwCDBABgkHoTAIBlEIFANIAlAgBiAAfAdhAwJ3B0IGfwMDjgPmiAcB
|
||||
A8SRHAYnBihQAwK9BwFgEAODTQPjNXgDAmgHHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8H
|
||||
HwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBwM=`;var D=[{id:"text.c",name:"Text Mode"},{id:"hello.c",name:"Scrolling Text"},{id:"text32.c",name:"32-Column Color Text"},{id:"stars.c",name:"Scrolling Starfield"},{id:"cursorsmooth.c",name:"Moving Cursor"},{id:"simplemusic.c",name:"Simple Music"},{id:"musicplayer.c",name:"Multivoice Music"},{id:"mode2bitmap.c",name:"Mode 2 Bitmap"},{id:"mode2compressed.c",name:"Mode 2 Bitmap (LZG)"},{id:"lines.c",name:"Mode 2 Lines"},{id:"multicolor.c",name:"Multicolor Mode"},{id:"siegegame.c",name:"Siege Game"},{id:"shoot.c",name:"Solarian Game"},{id:"climber.c",name:"Climber Game"}],M=class extends n{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"BIOS",start:0,size:8192,type:"rom"},{name:"Cartridge Header",start:32768,size:256,type:"rom"}]}}}newMachine(){return new r}getPresets(){return D}getDefaultExtension(){return".c"}readAddress(A){return this.machine.read(A)}readVRAMAddress(A){return this.machine.readVRAMAddress(A)}showHelp(){return"https://8bitworkshop.com/docs/platforms/coleco/"}},h=class extends f{constructor(){super(...arguments);this.getToolForFilename=m}start(){this.startModule(this.mainElement,{jsfile:"mame8bitws.js",cfgfile:"coleco.cfg",biosfile:"coleco/313 10031-4005 73108a.u2",driver:"coleco",width:280*2,height:216*2,romfn:"/emulator/cart.rom",romsize:32768,preInit:function(A){}})}loadROM(A,B){this.loadROMFile(B),this.loadRegion(":coleco_cart:rom",B)}getPresets(){return D}getDefaultExtension(){return".c"}};o["coleco.mame"]=h;o.coleco=M;export{D as ColecoVision_PRESETS};
|
||||
//# sourceMappingURL=coleco-HZV2Y5RS.js.map
|
||||
//# sourceMappingURL=coleco-RNEUVCV7.js.map
|
File diff suppressed because one or more lines are too long
@ -1,2 +1,2 @@
|
||||
import{J as l,r as p}from"./chunk-OOCS5TPQ.js";import{H as i,M as o}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.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],c=class extends p{constructor(){super(...arguments);this.numTotalScanlines=312;this.cpuCyclesPerLine=224;this.joymask0=0;this.runaddr=16384}loadROM(t){let e=new Uint8Array(t.length+m.length);e.set(m,0),e[24]=t.length&255,e[25]=t.length>>8,e[26]=this.runaddr&255,e[27]=this.runaddr>>8,e.set(t,m.length),super.loadROM(e)}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 e=this.getRasterY(),r=Math.floor((this.numTotalScanlines-e)*(4e6/50)/this.numTotalScanlines),s=this.probe!=null;return s&&this.exports.machine_reset_probe_buffer(),r=super.advanceFrameClock(t,r),s&&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,e=t[9]+(t[8]<<8),r=t[10]+(t[11]<<8),s=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:e,BC:a,DE:s,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)}}loadState(t){this.statearr.set(t.state),this.exports.machine_load_state(this.sys,this.stateptr)}getVideoParams(){return{width:768,height:272,overscan:!0,videoFrequency:50,aspect:1.3}}setKeyInput(t,e,r){if(!(t==16||t==17||t==18||t==224)){var s=0,a=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,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&o.KeyDown?(this.exports.machine_key_down(this.sys,t),this.joymask0|=s):r&o.KeyUp&&(this.exports.machine_key_up(this.sys,t),this.joymask0&=~s)}}};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)"}],C={main:[{name:"BIOS",start:0,size:16384,type:"rom"},{name:"Screen RAM",start:49152,size:16384,type:"ram"}]},n=class extends l{newMachine(){return new c("cpc")}getPresets(){return v}getDefaultExtension(){return".asm"}readAddress(t){return this.machine.readConst(t)}getMemoryMap(){return C}showHelp(){return"http://lronaldo.github.io/cpctelera/files/readme-txt.html"}};i["cpc.6128"]=n;i["cpc.464"]=n;i["cpc.kcc"]=n;
|
||||
//# sourceMappingURL=cpc-IROWNQZV.js.map
|
||||
import{J as l,r as p}from"./chunk-Z5TYMA6U.js";import{H as i,M as o}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.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],c=class extends p{constructor(){super(...arguments);this.numTotalScanlines=312;this.cpuCyclesPerLine=224;this.joymask0=0;this.runaddr=16384}loadROM(t){let e=new Uint8Array(t.length+m.length);e.set(m,0),e[24]=t.length&255,e[25]=t.length>>8,e[26]=this.runaddr&255,e[27]=this.runaddr>>8,e.set(t,m.length),super.loadROM(e)}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 e=this.getRasterY(),r=Math.floor((this.numTotalScanlines-e)*(4e6/50)/this.numTotalScanlines),s=this.probe!=null;return s&&this.exports.machine_reset_probe_buffer(),r=super.advanceFrameClock(t,r),s&&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,e=t[9]+(t[8]<<8),r=t[10]+(t[11]<<8),s=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:e,BC:a,DE:s,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)}}loadState(t){this.statearr.set(t.state),this.exports.machine_load_state(this.sys,this.stateptr)}getVideoParams(){return{width:768,height:272,overscan:!0,videoFrequency:50,aspect:1.3}}setKeyInput(t,e,r){if(!(t==16||t==17||t==18||t==224)){var s=0,a=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,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&o.KeyDown?(this.exports.machine_key_down(this.sys,t),this.joymask0|=s):r&o.KeyUp&&(this.exports.machine_key_up(this.sys,t),this.joymask0&=~s)}}};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)"}],C={main:[{name:"BIOS",start:0,size:16384,type:"rom"},{name:"Screen RAM",start:49152,size:16384,type:"ram"}]},n=class extends l{newMachine(){return new c("cpc")}getPresets(){return v}getDefaultExtension(){return".asm"}readAddress(t){return this.machine.readConst(t)}getMemoryMap(){return C}showHelp(){return"http://lronaldo.github.io/cpctelera/files/readme-txt.html"}};i["cpc.6128"]=n;i["cpc.464"]=n;i["cpc.kcc"]=n;
|
||||
//# sourceMappingURL=cpc-RDSYFZBF.js.map
|
@ -1,2 +1,2 @@
|
||||
import{a as d}from"./chunk-3XE5YOCV.js";import{o as c}from"./chunk-MHM77BKJ.js";import"./chunk-SDBJC2RS.js";import"./chunk-XMPGMPQ4.js";import"./chunk-YUMXYDDL.js";import{I as m,o as u,t as h}from"./chunk-OOCS5TPQ.js";import{B as o,H as l,_ as i,m as n}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var s=31,a=class extends u{constructor(){super();this.cpuFrequency=1e6;this.defaultROMSize=32768;this.cpu=new h;this.ram=new Uint8Array(16384);this.read=i([[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=i([[0,16383,16383,(e,t)=>{this.ram[e]=t}],[16387,16387,65535,(e,t)=>this.serial.sendByte(t)],[16399,16399,65535,(e,t)=>{this.inputs[s]=1}]]);this.connectCPUMemoryBus(this)}connectSerialIO(e){this.serial=e}readConst(e){return this.read(e)}advanceFrame(e){for(var t=0;t<this.cpuFrequency/60&&!(e&&e());)t+=this.advanceCPU();return t}advanceCPU(){if(this.isHalted())return 1;var e=super.advanceCPU();return this.serial&&this.serial.advance(e),e}reset(){this.inputs[s]=0,super.reset(),this.serial&&this.serial.reset()}isHalted(){return this.inputs[s]!=0}};var S=[{id:"hello.dasm",name:"Hello World (ASM)"}],f=class{constructor(e){e.style.overflowY="auto";var t=$('<div id="gameport"/>').appendTo(e);$('<p class="transcript-header">Serial Output</p>').appendTo(t);var y=$('<div id="windowport" class="transcript"/>').appendTo(t);this.div=y[0]}start(){this.tty=new d(this.div,!1)}reset(){this.tty.clear()}saveState(){return this.tty.saveState()}loadState(e){this.tty.loadState(e)}};function p(r){return r==10?"":r<32?String.fromCharCode(r+9216):String.fromCharCode(r)}var v=class{constructor(){this.bufferedRead=!0;this.cyclesPerByte=1e6/(57600/8);this.maxOutputBytes=4096}clearToSend(){return this.outputBytes.length<this.maxOutputBytes}sendByte(e){this.clearToSend()&&(this.outputBytes.push(e),this.viewer.tty.addtext(p(e),2|32),e==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 e=this.readIndex();this.inputIndex=e;var t=(this.inputBytes&&this.inputBytes[e])|0;return this.viewer.tty.addtext(p(t),2|16),t==10&&this.viewer.tty.newline(),t}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(e){this.clk+=e}saveState(){return{clk:this.clk,idx:this.inputIndex,out:this.outputBytes.slice()}}loadState(e){this.clk=e.clk,this.inputIndex=e.idx,this.outputBytes=e.out.slice()}},x=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 f(e)}async start(){super.start(),this.serial=new v,this.serial.viewer=this.serview,this.serview.start(),this.machine.connectSerialIO(this.serial)}reset(){this.serial.inputBytes=o(this.internalFiles["serialin.dat"]),super.reset(),this.serview.reset()}isBlocked(){return this.machine.isHalted()}advance(e){return this.isBlocked()?(this.internalFiles["serialout.dat"]=n(this.serial.outputBytes),c(),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 a}getPresets(){return S}getDefaultExtension(){return".dasm"}readAddress(e){return this.machine.readConst(e)}};l["devel-6502"]=x;export{v as SerialTestHarness};
|
||||
//# sourceMappingURL=devel-NJUNEZEW.js.map
|
||||
import{a as d}from"./chunk-3XE5YOCV.js";import{o as c}from"./chunk-GBRUOVY7.js";import"./chunk-SDBJC2RS.js";import"./chunk-XMPGMPQ4.js";import"./chunk-AGGKDGWZ.js";import{I as m,o as u,t as h}from"./chunk-Z5TYMA6U.js";import{B as o,H as l,_ as i,m as n}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var s=31,a=class extends u{constructor(){super();this.cpuFrequency=1e6;this.defaultROMSize=32768;this.cpu=new h;this.ram=new Uint8Array(16384);this.read=i([[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=i([[0,16383,16383,(e,t)=>{this.ram[e]=t}],[16387,16387,65535,(e,t)=>this.serial.sendByte(t)],[16399,16399,65535,(e,t)=>{this.inputs[s]=1}]]);this.connectCPUMemoryBus(this)}connectSerialIO(e){this.serial=e}readConst(e){return this.read(e)}advanceFrame(e){for(var t=0;t<this.cpuFrequency/60&&!(e&&e());)t+=this.advanceCPU();return t}advanceCPU(){if(this.isHalted())return 1;var e=super.advanceCPU();return this.serial&&this.serial.advance(e),e}reset(){this.inputs[s]=0,super.reset(),this.serial&&this.serial.reset()}isHalted(){return this.inputs[s]!=0}};var S=[{id:"hello.dasm",name:"Hello World (ASM)"}],f=class{constructor(e){e.style.overflowY="auto";var t=$('<div id="gameport"/>').appendTo(e);$('<p class="transcript-header">Serial Output</p>').appendTo(t);var y=$('<div id="windowport" class="transcript"/>').appendTo(t);this.div=y[0]}start(){this.tty=new d(this.div,!1)}reset(){this.tty.clear()}saveState(){return this.tty.saveState()}loadState(e){this.tty.loadState(e)}};function p(r){return r==10?"":r<32?String.fromCharCode(r+9216):String.fromCharCode(r)}var v=class{constructor(){this.bufferedRead=!0;this.cyclesPerByte=1e6/(57600/8);this.maxOutputBytes=4096}clearToSend(){return this.outputBytes.length<this.maxOutputBytes}sendByte(e){this.clearToSend()&&(this.outputBytes.push(e),this.viewer.tty.addtext(p(e),2|32),e==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 e=this.readIndex();this.inputIndex=e;var t=(this.inputBytes&&this.inputBytes[e])|0;return this.viewer.tty.addtext(p(t),2|16),t==10&&this.viewer.tty.newline(),t}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(e){this.clk+=e}saveState(){return{clk:this.clk,idx:this.inputIndex,out:this.outputBytes.slice()}}loadState(e){this.clk=e.clk,this.inputIndex=e.idx,this.outputBytes=e.out.slice()}},x=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 f(e)}async start(){super.start(),this.serial=new v,this.serial.viewer=this.serview,this.serview.start(),this.machine.connectSerialIO(this.serial)}reset(){this.serial.inputBytes=o(this.internalFiles["serialin.dat"]),super.reset(),this.serview.reset()}isBlocked(){return this.machine.isHalted()}advance(e){return this.isBlocked()?(this.internalFiles["serialout.dat"]=n(this.serial.outputBytes),c(),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 a}getPresets(){return S}getDefaultExtension(){return".dasm"}readAddress(e){return this.machine.readConst(e)}};l["devel-6502"]=x;export{v as SerialTestHarness};
|
||||
//# sourceMappingURL=devel-SHWPNO2B.js.map
|
@ -1,2 +1,2 @@
|
||||
import{b as w,c as x}from"./chunk-YUMXYDDL.js";import{D as v,H as c,k as m,l as u,x as g,z as p}from"./chunk-6HNEHZRR.js";import{c as I}from"./chunk-RQFURXHW.js";var h=I(x()),i,a,l,y=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 P(){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 k(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){v("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=>{k(r,f)},"arraybuffer"),!0;if(n){var s=u(atob(n));t=new m().decode(s)}return M(),k(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 w(p(i));console.log("starting platform",i),await S(e)}catch(t){console.log(t),alert('Platform "'+i+'" not supported.')}}function F(){P(),y.p&&b(y)}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,h.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 w,c as x}from"./chunk-AGGKDGWZ.js";import{D as v,H as c,k as m,l as u,x as g,z as p}from"./chunk-6HNEHZRR.js";import{c as I}from"./chunk-RQFURXHW.js";var h=I(x()),i,a,l,y=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 P(){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 k(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){v("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=>{k(r,f)},"arraybuffer"),!0;if(n){var s=u(atob(n));t=new m().decode(s)}return M(),k(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 w(p(i));console.log("starting platform",i),await S(e)}catch(t){console.log(t),alert('Platform "'+i+'" not supported.')}}function F(){P(),y.p&&b(y)}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,h.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
|
||||
|
File diff suppressed because one or more lines are too long
@ -170,12 +170,12 @@ class CodeProject {
|
||||
else {
|
||||
// for .asm -- [.%]include "file"
|
||||
// for .c -- #include "file"
|
||||
let re2 = /^\s*[.#%]?(include|incbin)\s+"(.+?)"/gmi;
|
||||
let re2 = /^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi;
|
||||
while (m = re2.exec(text)) {
|
||||
this.pushAllFiles(files, m[2]);
|
||||
}
|
||||
// for .c -- //#resource "file" (or ;resource or #resource)
|
||||
let re3 = /^\s*([;']|[/][/])#(resource|incbin)\s+"(.+?)"/gm;
|
||||
let re3 = /^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm;
|
||||
while (m = re3.exec(text)) {
|
||||
this.pushAllFiles(files, m[3]);
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
@ -1156,13 +1156,19 @@ async function _downloadAllFilesZipFile(e) {
|
||||
}
|
||||
}
|
||||
function populateExamples(sel) {
|
||||
var files = {};
|
||||
sel.append($("<option />").text("--------- Examples ---------").attr('disabled', 'true'));
|
||||
let files = {};
|
||||
let optgroup;
|
||||
for (var i = 0; i < PRESETS.length; i++) {
|
||||
var preset = PRESETS[i];
|
||||
var name = preset.chapter ? (preset.chapter + ". " + preset.name) : preset.name;
|
||||
var isCurrentPreset = preset.id == exports.current_project.mainPath;
|
||||
sel.append($("<option />").val(preset.id).text(name).attr('selected', isCurrentPreset ? 'selected' : null));
|
||||
if (preset.category) {
|
||||
optgroup = $("<optgroup />").attr('label', 'Examples: ' + preset.category).appendTo(sel);
|
||||
}
|
||||
else if (!optgroup) {
|
||||
optgroup = $("<optgroup />").attr('label', 'Examples').appendTo(sel);
|
||||
}
|
||||
optgroup.append($("<option />").val(preset.id).text(name).attr('selected', isCurrentPreset ? 'selected' : null));
|
||||
if (isCurrentPreset)
|
||||
current_preset = preset;
|
||||
files[preset.id] = name;
|
||||
@ -1174,29 +1180,28 @@ function populateRepos(sel) {
|
||||
var n = 0;
|
||||
var repos = (0, services_1.getRepos)();
|
||||
if (repos) {
|
||||
let optgroup = $("<optgroup />").attr('label', 'Repositories').appendTo(sel);
|
||||
for (let repopath in repos) {
|
||||
var repo = repos[repopath];
|
||||
if (repo.platform_id && (0, util_1.getBasePlatform)(repo.platform_id) == (0, util_1.getBasePlatform)(exports.platform_id)) {
|
||||
if (n++ == 0)
|
||||
sel.append($("<option />").text("------ Repositories ------").attr('disabled', 'true'));
|
||||
sel.append($("<option />").val(repo.url).text(repo.url.substring(repo.url.indexOf('/'))));
|
||||
optgroup.append($("<option />").val(repo.url).text(repo.url.substring(repo.url.indexOf('/'))));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
async function populateFiles(sel, category, prefix, foundFiles) {
|
||||
var keys = await store.keys();
|
||||
var numFound = 0;
|
||||
let keys = await store.keys();
|
||||
if (!keys)
|
||||
keys = [];
|
||||
let optgroup;
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
var key = keys[i];
|
||||
let key = keys[i];
|
||||
if (key.startsWith(prefix) && !foundFiles[key]) {
|
||||
if (numFound++ == 0)
|
||||
sel.append($("<option />").text("------- " + category + " -------").attr('disabled', 'true'));
|
||||
var name = key.substring(prefix.length);
|
||||
sel.append($("<option />").val(key).text(name).attr('selected', (key == exports.current_project.mainPath) ? 'selected' : null));
|
||||
if (!optgroup)
|
||||
optgroup = $("<optgroup />").attr('label', category).appendTo(sel);
|
||||
let name = key.substring(prefix.length);
|
||||
optgroup.append($("<option />").val(key).text(name).attr('selected', (key == exports.current_project.mainPath) ? 'selected' : null));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,2 +1,2 @@
|
||||
import{I as c,o as x,t as F}from"./chunk-OOCS5TPQ.js";import{H as l,M as A,U as e,Z as p,_ as m,g as _,k as I,l as h}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var y=[e.VK_DELETE,e.VK_ENTER,e.VK_RIGHT,e.VK_F7,e.VK_F1,e.VK_F3,e.VK_F5,e.VK_DOWN,e.VK_3,e.VK_W,e.VK_A,e.VK_4,e.VK_Z,e.VK_S,e.VK_E,e.VK_SHIFT,e.VK_5,e.VK_R,e.VK_D,e.VK_6,e.VK_C,e.VK_F,e.VK_T,e.VK_X,e.VK_7,e.VK_Y,e.VK_G,e.VK_8,e.VK_B,e.VK_H,e.VK_U,e.VK_V,e.VK_9,e.VK_I,e.VK_J,e.VK_0,e.VK_M,e.VK_K,e.VK_O,e.VK_N,null,e.VK_P,e.VK_L,e.VK_MINUS,e.VK_PERIOD,null,null,e.VK_COMMA,null,null,e.VK_SEMICOLON,e.VK_HOME,e.VK_SHIFT,e.VK_EQUALS,e.VK_TILDE,e.VK_SLASH,e.VK_1,e.VK_LEFT,e.VK_CONTROL,e.VK_2,e.VK_SPACE,e.VK_ALT,e.VK_Q,null],a=0,u=class{constructor(){this.regs=new Uint8Array(16);this.ina=0;this.inb=0}read(r){return this.regs[r]}write(r,t){this.regs[r]=t}input_a(){return this.ina&~this.regs[1]}input_b(){return this.inb&~this.regs[1]}output_a(){return this.regs[0]^255|this.regs[1]}output_b(){return this.regs[2]^255|this.regs[3]}},f=class extends x{constructor(){super();this.cpuFrequency=1e6;this.defaultROMSize=4096;this.cpu=new F;this.ram=new Uint8Array(6144);this.rriot1=new u;this.rriot2=new u;this.digits=[];this.read=m([[5888,5951,15,r=>this.readIO_1(r)],[5952,6015,15,r=>this.readIO_2(r)],[0,6143,8191,r=>this.ram[r]],[6144,8191,2047,r=>this.bios[r]]],{gmask:8191});this.write=m([[5888,5951,15,(r,t)=>this.writeIO_1(r,t)],[5952,6015,15,(r,t)=>this.writeIO_2(r,t)],[0,6143,8191,(r,t)=>{this.ram[r]=t}]],{gmask:8191});this.bios=new I().decode(h(atob(B))),this.connectCPUMemoryBus(this)}readConst(r){return this.read(r)}readIO_1(r){return this.rriot1.read(r)}writeIO_1(r,t){this.rriot1.write(r,t)}readIO_2(r){switch(r&15){case 0:let t=0;for(let i=0;i<8;i++)(this.rriot2.regs[0]&1<<i)==0&&(t|=this.inputs[a+i]);this.rriot2.ina=t^255}return this.rriot2.read(r)}writeIO_2(r,t){this.rriot2.write(r,t);let i=this.rriot2.output_a(),s=this.rriot2.output_b();console.log(i,s)}loadROM(r){super.loadROM(r),this.ram.set(this.rom,1024),this.reset()}loadBIOS(r){this.bios=p(r,2048),this.reset()}setKeyInput(r,t,i){for(var s=y,o=0;o<s.length;o++)if(s[o]&&s[o].c==r){let n=o>>3,K=o&7;i&A.KeyDown?this.inputs[a+n]|=1<<K:i&A.KeyUp&&(this.inputs[a+n]&=~(1<<K)),console.log(r,n,K,_(this.inputs[a+n]));break}}advanceFrame(r){for(var t=0;t<this.cpuFrequency/60&&!(r&&r());)t+=this.advanceCPU();return t}},B="TFpHAAAIAAAABY3ivWkoAQsOJSiprY3sFyAyGaknjUIXqb+NQxeiZKkWIHoZytD4qSoo4a35FyBhGa31FyBeGa32KKPtF833F63uF+34F5AkqS8lXeclnegooqICqQQOBTgAhfqF+0xPHCDsJXAg6hlMMxgPGamNDgVrTI3vF61xGI3wF61yGI3xF6kHDgJ8/43pFyBBGk7pFw3pFyUErekXyRbQ7aIKICQaJQHfytD2JUIq8AYlBtHw8yDzGc35F/ANrfkXyQAlDf/wF9CcJQ0gTBmN7RcOBQHuF0z4GCXEKKSiAiV9L/AUIAAa0CPK0PElDEzsFw4CnCWhzecX0Awo4ugX0ASpAPACqf8OBcWt9ReN7Ret9heN7hepYI3vF6kAjecXjegXYKgYbSUB5xet6BdpACUJmGAgTBmoSigBIG8ZmChiYCkPyQoYMAJpB2kwjukXjOoXoAggnhlKsAYooUyRGSDEKEKI0Ouu6Res6hdgoglILEcXEPupfo1EF6mnjUIXDgkHDiKqytDfaGCiBg4FHsMODB4lhw4HHu7tF9AD7u4XYCAkGiAAGiikYMkwMB7JRxAayUAwAxhpCSooAaQEKi7pF4jQ+a3pF6AAYMhgjusXoggOIovqFw3qF43qF8rQ8a3qFypKrusXYCxCFxD7rUYXoP+MKIEUiND9JQow+zjtDgYLByULSf8pgGAOSFsOBJeaDgymJYclW0x1Gv8oHygfKB4oGWsaKCKF82iF8WiF74X6aIXwhfuE9Ib1uobyIIgeTE8cbPoXbP4Xov+aJYmp/43zF6kBLEAX0Bkw+an8GGkBkAPu8xesQBcQ843yDkIbah4gjB4l2x4gLx6iCiAxHkyvHakAhfiF+SBaHskB8AYgrB9M2x0gGR/Q0yWi8MwlBPD0KILvIGofyRUQu8kU8ETJEPAsyREoYRLwL8kT8DEKKAGF/KIEpP/QCrH6BvwqkfpMwxwKJvom+8rQ6vAIqQHQAqkAhf8OgmZjHyihTMgdpe+F+qXwDoR6Wh7JO9D5JRr3hfYgnR+qIJEfKMGF+yjl+ijhivAPJQORJUMlO8rQ8uglB8X20BcowvfQE4rQuaIMDkOaDgLPTxwlD6IR0O4OBNYoofaF9yAvHqk7IKAepfrN9xel+w6iGRipACA7HiDMHyAeHqX2JQOl9yiBTGQcqRiqJVGRJVGgALH6DgUFDgJy8A4IIeb40ALm+UxIHSV6Lx4lJCCeDgcnng4CQCUqTKwdpvKapftIpfpIpfFIpvWk9KXzQMkg8MrJf/AbyQ3w28kK8BzJLvAmyUfw1clR8ArJTPAJTGocDiIgQh1M5xw4pfrpAYX6sALG+0ysHaAApfiR+kzCHaX7DgSOpQ4FlmCiB73VHyCgHsoQ92CF/A6D00wepfwogw6K1UygHob9oggORAQiMPkg1B4g6x6tQBcpgEb+Bf6F/iUJytDvJQym/aX+KkpgogGG/6IAjkEXoj+OQxeiB45CF9h4YKkghf6G/SUkrUIXKf4OInLUHqIIJYVG/mkAJcnK0O4lCgkBJcam/WCt8xeN9Bet8hc46QGwA870F6z0FxDzDggPSk70F5DjCYCw4KADogGp/45CF+joLUAXiND1oAeMQhcJgEn/YA4iXIX5qX+NQReiCaADufgADgPmSB8lAikPKOGI0OslMakAJRlM/h6E/Ki55x+gAIxAFyUOjUAXoH+I0P3o6KT8YOb60ALm+2CiIaABIAIf0AfgJ9D1qRVgoP8KsAPIEPqKKQ9KqpgQAxhpB8rQ+mAYZfeF96X2aQCF9mAgWh4grB8opKX4DqKkG8lHEBcOqaSgBCom+Cb5iA7iZWCl+IX6pfmF+2AAKAMKDU1JSyATUlJFIBO/htvP5u39h//v9/y53vnx////HBwiHB8c";var O=[{id:"hello.dasm",name:"Hello World (ASM)"}],V=class extends c{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"RAM",start:0,size:5120,type:"ram"},{name:"6530",start:5888,size:64,type:"io"},{name:"6530",start:5952,size:64,type:"io"},{name:"RAM",start:6016,size:128,type:"ram"},{name:"BIOS",start:6144,size:2048,type:"rom"}]}}}newMachine(){return new f}getPresets(){return O}getDefaultExtension(){return".dasm"}readAddress(r){return this.machine.readConst(r)}};l.kim1=V;
|
||||
//# sourceMappingURL=kim1-DMOM3EIF.js.map
|
||||
import{I as c,o as x,t as F}from"./chunk-Z5TYMA6U.js";import{H as l,M as A,U as e,Z as p,_ as m,g as _,k as I,l as h}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var y=[e.VK_DELETE,e.VK_ENTER,e.VK_RIGHT,e.VK_F7,e.VK_F1,e.VK_F3,e.VK_F5,e.VK_DOWN,e.VK_3,e.VK_W,e.VK_A,e.VK_4,e.VK_Z,e.VK_S,e.VK_E,e.VK_SHIFT,e.VK_5,e.VK_R,e.VK_D,e.VK_6,e.VK_C,e.VK_F,e.VK_T,e.VK_X,e.VK_7,e.VK_Y,e.VK_G,e.VK_8,e.VK_B,e.VK_H,e.VK_U,e.VK_V,e.VK_9,e.VK_I,e.VK_J,e.VK_0,e.VK_M,e.VK_K,e.VK_O,e.VK_N,null,e.VK_P,e.VK_L,e.VK_MINUS,e.VK_PERIOD,null,null,e.VK_COMMA,null,null,e.VK_SEMICOLON,e.VK_HOME,e.VK_SHIFT,e.VK_EQUALS,e.VK_TILDE,e.VK_SLASH,e.VK_1,e.VK_LEFT,e.VK_CONTROL,e.VK_2,e.VK_SPACE,e.VK_ALT,e.VK_Q,null],a=0,u=class{constructor(){this.regs=new Uint8Array(16);this.ina=0;this.inb=0}read(r){return this.regs[r]}write(r,t){this.regs[r]=t}input_a(){return this.ina&~this.regs[1]}input_b(){return this.inb&~this.regs[1]}output_a(){return this.regs[0]^255|this.regs[1]}output_b(){return this.regs[2]^255|this.regs[3]}},f=class extends x{constructor(){super();this.cpuFrequency=1e6;this.defaultROMSize=4096;this.cpu=new F;this.ram=new Uint8Array(6144);this.rriot1=new u;this.rriot2=new u;this.digits=[];this.read=m([[5888,5951,15,r=>this.readIO_1(r)],[5952,6015,15,r=>this.readIO_2(r)],[0,6143,8191,r=>this.ram[r]],[6144,8191,2047,r=>this.bios[r]]],{gmask:8191});this.write=m([[5888,5951,15,(r,t)=>this.writeIO_1(r,t)],[5952,6015,15,(r,t)=>this.writeIO_2(r,t)],[0,6143,8191,(r,t)=>{this.ram[r]=t}]],{gmask:8191});this.bios=new I().decode(h(atob(B))),this.connectCPUMemoryBus(this)}readConst(r){return this.read(r)}readIO_1(r){return this.rriot1.read(r)}writeIO_1(r,t){this.rriot1.write(r,t)}readIO_2(r){switch(r&15){case 0:let t=0;for(let i=0;i<8;i++)(this.rriot2.regs[0]&1<<i)==0&&(t|=this.inputs[a+i]);this.rriot2.ina=t^255}return this.rriot2.read(r)}writeIO_2(r,t){this.rriot2.write(r,t);let i=this.rriot2.output_a(),s=this.rriot2.output_b();console.log(i,s)}loadROM(r){super.loadROM(r),this.ram.set(this.rom,1024),this.reset()}loadBIOS(r){this.bios=p(r,2048),this.reset()}setKeyInput(r,t,i){for(var s=y,o=0;o<s.length;o++)if(s[o]&&s[o].c==r){let n=o>>3,K=o&7;i&A.KeyDown?this.inputs[a+n]|=1<<K:i&A.KeyUp&&(this.inputs[a+n]&=~(1<<K)),console.log(r,n,K,_(this.inputs[a+n]));break}}advanceFrame(r){for(var t=0;t<this.cpuFrequency/60&&!(r&&r());)t+=this.advanceCPU();return t}},B="TFpHAAAIAAAABY3ivWkoAQsOJSiprY3sFyAyGaknjUIXqb+NQxeiZKkWIHoZytD4qSoo4a35FyBhGa31FyBeGa32KKPtF833F63uF+34F5AkqS8lXeclnegooqICqQQOBTgAhfqF+0xPHCDsJXAg6hlMMxgPGamNDgVrTI3vF61xGI3wF61yGI3xF6kHDgJ8/43pFyBBGk7pFw3pFyUErekXyRbQ7aIKICQaJQHfytD2JUIq8AYlBtHw8yDzGc35F/ANrfkXyQAlDf/wF9CcJQ0gTBmN7RcOBQHuF0z4GCXEKKSiAiV9L/AUIAAa0CPK0PElDEzsFw4CnCWhzecX0Awo4ugX0ASpAPACqf8OBcWt9ReN7Ret9heN7hepYI3vF6kAjecXjegXYKgYbSUB5xet6BdpACUJmGAgTBmoSigBIG8ZmChiYCkPyQoYMAJpB2kwjukXjOoXoAggnhlKsAYooUyRGSDEKEKI0Ouu6Res6hdgoglILEcXEPupfo1EF6mnjUIXDgkHDiKqytDfaGCiBg4FHsMODB4lhw4HHu7tF9AD7u4XYCAkGiAAGiikYMkwMB7JRxAayUAwAxhpCSooAaQEKi7pF4jQ+a3pF6AAYMhgjusXoggOIovqFw3qF43qF8rQ8a3qFypKrusXYCxCFxD7rUYXoP+MKIEUiND9JQow+zjtDgYLByULSf8pgGAOSFsOBJeaDgymJYclW0x1Gv8oHygfKB4oGWsaKCKF82iF8WiF74X6aIXwhfuE9Ib1uobyIIgeTE8cbPoXbP4Xov+aJYmp/43zF6kBLEAX0Bkw+an8GGkBkAPu8xesQBcQ843yDkIbah4gjB4l2x4gLx6iCiAxHkyvHakAhfiF+SBaHskB8AYgrB9M2x0gGR/Q0yWi8MwlBPD0KILvIGofyRUQu8kU8ETJEPAsyREoYRLwL8kT8DEKKAGF/KIEpP/QCrH6BvwqkfpMwxwKJvom+8rQ6vAIqQHQAqkAhf8OgmZjHyihTMgdpe+F+qXwDoR6Wh7JO9D5JRr3hfYgnR+qIJEfKMGF+yjl+ijhivAPJQORJUMlO8rQ8uglB8X20BcowvfQE4rQuaIMDkOaDgLPTxwlD6IR0O4OBNYoofaF9yAvHqk7IKAepfrN9xel+w6iGRipACA7HiDMHyAeHqX2JQOl9yiBTGQcqRiqJVGRJVGgALH6DgUFDgJy8A4IIeb40ALm+UxIHSV6Lx4lJCCeDgcnng4CQCUqTKwdpvKapftIpfpIpfFIpvWk9KXzQMkg8MrJf/AbyQ3w28kK8BzJLvAmyUfw1clR8ArJTPAJTGocDiIgQh1M5xw4pfrpAYX6sALG+0ysHaAApfiR+kzCHaX7DgSOpQ4FlmCiB73VHyCgHsoQ92CF/A6D00wepfwogw6K1UygHob9oggORAQiMPkg1B4g6x6tQBcpgEb+Bf6F/iUJytDvJQym/aX+KkpgogGG/6IAjkEXoj+OQxeiB45CF9h4YKkghf6G/SUkrUIXKf4OInLUHqIIJYVG/mkAJcnK0O4lCgkBJcam/WCt8xeN9Bet8hc46QGwA870F6z0FxDzDggPSk70F5DjCYCw4KADogGp/45CF+joLUAXiND1oAeMQhcJgEn/YA4iXIX5qX+NQReiCaADufgADgPmSB8lAikPKOGI0OslMakAJRlM/h6E/Ki55x+gAIxAFyUOjUAXoH+I0P3o6KT8YOb60ALm+2CiIaABIAIf0AfgJ9D1qRVgoP8KsAPIEPqKKQ9KqpgQAxhpB8rQ+mAYZfeF96X2aQCF9mAgWh4grB8opKX4DqKkG8lHEBcOqaSgBCom+Cb5iA7iZWCl+IX6pfmF+2AAKAMKDU1JSyATUlJFIBO/htvP5u39h//v9/y53vnx////HBwiHB8c";var O=[{id:"hello.dasm",name:"Hello World (ASM)"}],V=class extends c{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"RAM",start:0,size:5120,type:"ram"},{name:"6530",start:5888,size:64,type:"io"},{name:"6530",start:5952,size:64,type:"io"},{name:"RAM",start:6016,size:128,type:"ram"},{name:"BIOS",start:6144,size:2048,type:"rom"}]}}}newMachine(){return new f}getPresets(){return O}getDefaultExtension(){return".dasm"}readAddress(r){return this.machine.readConst(r)}};l.kim1=V;
|
||||
//# sourceMappingURL=kim1-7BZOLBPF.js.map
|
@ -203,6 +203,7 @@ class AppleII extends devices_1.BasicScanlineMachine {
|
||||
return this.readConst(address);
|
||||
}
|
||||
else if (address < 0xc100) {
|
||||
this.probe.logIORead(address, 0); // TODO: value
|
||||
var slot = (address >> 4) & 0x0f;
|
||||
switch (slot) {
|
||||
case 0:
|
||||
@ -265,6 +266,7 @@ class AppleII extends devices_1.BasicScanlineMachine {
|
||||
if (address < 0xc000) {
|
||||
this.ram[address] = val;
|
||||
this.grdirty[address >> 7] = 1;
|
||||
this.probe.logIOWrite(address, val);
|
||||
}
|
||||
else if (address < 0xc080) {
|
||||
this.read(address); // strobe address, discard result
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
import{c as x}from"./chunk-E2AQCZR6.js";import{J as Q,d as U,e as r}from"./chunk-OOCS5TPQ.js";import{H as T,M as t,U as A,X as H,k as E,l as O}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var n=H([[A.UP,0,1],[A.DOWN,0,2],[A.LEFT,0,4],[A.RIGHT,0,8],[A.A,0,16],[A.B,0,32],[A.P2_UP,1,1],[A.P2_DOWN,1,2],[A.P2_LEFT,1,4],[A.P2_RIGHT,1,8],[A.P2_A,1,16],[A.P2_B,1,32],[A.ANYKEY,2,0]]),o=0;var w=16,a=[A.VK_7,A.VK_6,A.VK_5,A.VK_4,A.VK_3,A.VK_2,A.VK_1,A.VK_0,A.VK_SEMICOLON,A.VK_CLOSE_BRACKET,A.VK_OPEN_BRACKET,A.VK_BACK_SLASH,A.VK_EQUALS,A.VK_MINUS,A.VK_9,A.VK_8,A.VK_B,A.VK_A,null,A.VK_SLASH,A.VK_PERIOD,A.VK_COMMA,A.VK_ACUTE,A.VK_QUOTE,A.VK_J,A.VK_I,A.VK_H,A.VK_G,A.VK_F,A.VK_E,A.VK_D,A.VK_C,A.VK_R,A.VK_Q,A.VK_P,A.VK_O,A.VK_N,A.VK_M,A.VK_L,A.VK_K,A.VK_Z,A.VK_Y,A.VK_X,A.VK_W,A.VK_V,A.VK_U,A.VK_T,A.VK_S,A.VK_F3,A.VK_F2,A.VK_F1,null,A.VK_CAPS_LOCK,null,A.VK_CONTROL,A.VK_SHIFT,A.VK_ENTER,null,A.VK_BACK_SPACE,null,A.VK_TAB,A.VK_ESCAPE,A.VK_F5,A.VK_F4,A.VK_RIGHT,A.VK_DOWN,A.VK_UP,A.VK_LEFT,A.VK_DELETE,A.VK_INSERT,A.VK_HOME,A.VK_SPACE,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],i=class extends x{constructor(){super();this.numVisibleScanlines=240;this.defaultROMSize=32768;this.ram=new Uint8Array(65536);this.slotmask=0;this.ppi_c=0;this.read=s=>{let e=s>>14<<1,D=this.slotmask>>e&3,g=this.slots[D];return g?g.read(s):0};this.write=(s,e)=>{let D=s>>14<<1,g=this.slotmask>>D&3,B=this.slots[g];B&&B.write(s,e)};this.init(this,this.newIOBus(),new r(new U)),this.bios=new E().decode(O(atob(l))),this.bios[3541]=0,this.bios[3542]=0,this.bios[3543]=0,this.slots=[{read:s=>this.bios[s]|0,write:(s,e)=>{}},{read:s=>this.rom[s-16384]|0,write:(s,e)=>{}},{read:s=>this.rom[s-16384]|0,write:(s,e)=>{}},{read:s=>this.ram[s]|0,write:(s,e)=>{this.ram[s]=e}}]}loadBIOS(s){this.bios=s}getKeyboardMap(){return n}getKeyboardFunction(){return(s,e,D,g)=>{for(var B=a,M=0;M<B.length;M++)if(B[M]&&B[M].c==e){let R=M>>3,f=7-(M&7);g&t.KeyDown?this.inputs[w+R]|=1<<f:g&t.KeyUp&&(this.inputs[w+R]&=~(1<<f));break}}}newIOBus(){return{read:s=>{switch(s&=255,s){case 152:return this.vdp.readData();case 153:return this.vdp.readStatus();case 162:return this.psg.currentRegister()==14?~this.inputs[o]:this.psg.readData();case 168:return this.slotmask;case 169:return~this.inputs[w+(this.ppi_c&15)];case 170:return this.ppi_c}return 0},write:(s,e)=>{switch(s&=255,e&=255,s){case 152:this.vdp.writeData(e);break;case 153:this.vdp.writeAddress(e);break;case 168:this.slotmask=e;break;case 170:this.ppi_c=e;break;case 171:let D=e>>1&7;this.ppi_c=this.ppi_c&~(1<<D)|(e&1)<<D;break;case 160:this.psg.selectRegister(e);break;case 161:this.psg.setData(e);break;case 252:case 253:case 254:case 255:break}}}}vdpInterrupt(){this.probe.logInterrupt(255),this.cpu.interrupt(255)}loadState(s){super.loadState(s),this.slotmask=s.slotmask,this.ppi_c=s.ppi_c,this.psg.selectRegister(s.psgRegister)}saveState(){var s=super.saveState();return s.slotmask=this.slotmask,s.ppi_c=this.ppi_c,s.psgRegister=this.psg.currentRegister(),s}reset(){super.reset(),this.slotmask=0,this.ppi_c=0}resetInputs(){this.inputs.fill(0)}},l=`
|
||||
import{c as x}from"./chunk-HNHXM2GS.js";import{J as Q,d as U,e as r}from"./chunk-Z5TYMA6U.js";import{H as T,M as t,U as A,X as H,k as E,l as O}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var n=H([[A.UP,0,1],[A.DOWN,0,2],[A.LEFT,0,4],[A.RIGHT,0,8],[A.A,0,16],[A.B,0,32],[A.P2_UP,1,1],[A.P2_DOWN,1,2],[A.P2_LEFT,1,4],[A.P2_RIGHT,1,8],[A.P2_A,1,16],[A.P2_B,1,32],[A.ANYKEY,2,0]]),o=0;var w=16,a=[A.VK_7,A.VK_6,A.VK_5,A.VK_4,A.VK_3,A.VK_2,A.VK_1,A.VK_0,A.VK_SEMICOLON,A.VK_CLOSE_BRACKET,A.VK_OPEN_BRACKET,A.VK_BACK_SLASH,A.VK_EQUALS,A.VK_MINUS,A.VK_9,A.VK_8,A.VK_B,A.VK_A,null,A.VK_SLASH,A.VK_PERIOD,A.VK_COMMA,A.VK_ACUTE,A.VK_QUOTE,A.VK_J,A.VK_I,A.VK_H,A.VK_G,A.VK_F,A.VK_E,A.VK_D,A.VK_C,A.VK_R,A.VK_Q,A.VK_P,A.VK_O,A.VK_N,A.VK_M,A.VK_L,A.VK_K,A.VK_Z,A.VK_Y,A.VK_X,A.VK_W,A.VK_V,A.VK_U,A.VK_T,A.VK_S,A.VK_F3,A.VK_F2,A.VK_F1,null,A.VK_CAPS_LOCK,null,A.VK_CONTROL,A.VK_SHIFT,A.VK_ENTER,null,A.VK_BACK_SPACE,null,A.VK_TAB,A.VK_ESCAPE,A.VK_F5,A.VK_F4,A.VK_RIGHT,A.VK_DOWN,A.VK_UP,A.VK_LEFT,A.VK_DELETE,A.VK_INSERT,A.VK_HOME,A.VK_SPACE,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],i=class extends x{constructor(){super();this.numVisibleScanlines=240;this.defaultROMSize=32768;this.ram=new Uint8Array(65536);this.slotmask=0;this.ppi_c=0;this.read=s=>{let e=s>>14<<1,D=this.slotmask>>e&3,g=this.slots[D];return g?g.read(s):0};this.write=(s,e)=>{let D=s>>14<<1,g=this.slotmask>>D&3,B=this.slots[g];B&&B.write(s,e)};this.init(this,this.newIOBus(),new r(new U)),this.bios=new E().decode(O(atob(l))),this.bios[3541]=0,this.bios[3542]=0,this.bios[3543]=0,this.slots=[{read:s=>this.bios[s]|0,write:(s,e)=>{}},{read:s=>this.rom[s-16384]|0,write:(s,e)=>{}},{read:s=>this.rom[s-16384]|0,write:(s,e)=>{}},{read:s=>this.ram[s]|0,write:(s,e)=>{this.ram[s]=e}}]}loadBIOS(s){this.bios=s}getKeyboardMap(){return n}getKeyboardFunction(){return(s,e,D,g)=>{for(var B=a,M=0;M<B.length;M++)if(B[M]&&B[M].c==e){let R=M>>3,f=7-(M&7);g&t.KeyDown?this.inputs[w+R]|=1<<f:g&t.KeyUp&&(this.inputs[w+R]&=~(1<<f));break}}}newIOBus(){return{read:s=>{switch(s&=255,s){case 152:return this.vdp.readData();case 153:return this.vdp.readStatus();case 162:return this.psg.currentRegister()==14?~this.inputs[o]:this.psg.readData();case 168:return this.slotmask;case 169:return~this.inputs[w+(this.ppi_c&15)];case 170:return this.ppi_c}return 0},write:(s,e)=>{switch(s&=255,e&=255,s){case 152:this.vdp.writeData(e);break;case 153:this.vdp.writeAddress(e);break;case 168:this.slotmask=e;break;case 170:this.ppi_c=e;break;case 171:let D=e>>1&7;this.ppi_c=this.ppi_c&~(1<<D)|(e&1)<<D;break;case 160:this.psg.selectRegister(e);break;case 161:this.psg.setData(e);break;case 252:case 253:case 254:case 255:break}}}}vdpInterrupt(){this.probe.logInterrupt(255),this.cpu.interrupt(255)}loadState(s){super.loadState(s),this.slotmask=s.slotmask,this.ppi_c=s.ppi_c,this.psg.selectRegister(s.psgRegister)}saveState(){var s=super.saveState();return s.slotmask=this.slotmask,s.ppi_c=this.ppi_c,s.psgRegister=this.psg.currentRegister(),s}reset(){super.reset(),this.slotmask=0,this.ppi_c=0}resetInputs(){this.inputs.fill(0)}},l=`
|
||||
TFpHAADAAAAAI8Sp+W4NAVo7UZPzwxINvxuYmMPtEADDvyMAw/+T4QAkAMMbEQDDNJPhIZPhc5Ph
|
||||
JxEhAgAAAMM5EZOhk+HmGMNOEcNYEcMWAsMiAsMuAsNFAsNNAsNVAsNgAsNtAsOBAsOXAsOtAsPU
|
||||
AgDDXhnDHgPDggPDwgPDBQTDQwTDjwTDtwTD5gTDGQXDbwXDggXDjAXDlwXDOhfDUhfDXBfDahHD
|
||||
@ -161,4 +161,4 @@ H5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mf
|
||||
kx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+T
|
||||
H5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+TH5Mfkx+THpMc/w==
|
||||
`;var h=[{id:"helloworld.asm",name:"Hello World (ASM)"},{id:"redbook_kbd.asm",name:"Redbook Keyboard Scanner (ASM)"},{id:"siegegame.c",name:"Siege Game"},{id:"eliza.c",name:"Eliza"},{id:"hello.wiz",name:"Hello (Wiz)"}],F=[{id:"text.c",name:"Text Mode"},{id:"hello.c",name:"Scrolling Text"},{id:"text32.c",name:"32-Column Color Text"},{id:"stars.c",name:"Scrolling Starfield"},{id:"cursorsmooth.c",name:"Moving Cursor"},{id:"simplemusic.c",name:"Simple Music"},{id:"musicplayer.c",name:"Multivoice Music"},{id:"mode2bitmap.c",name:"Mode 2 Bitmap"},{id:"mode2compressed.c",name:"Mode 2 Bitmap (LZG)"},{id:"lines.c",name:"Mode 2 Lines"},{id:"multicolor.c",name:"Multicolor Mode"},{id:"siegegame.c",name:"Siege Game"},{id:"shoot.c",name:"Solarian Game"},{id:"climber.c",name:"Climber Game"}],k=class extends Q{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"BIOS",start:0,size:16384,type:"rom"},{name:"RAM",start:49152,size:12800,type:"ram"},{name:"Stack",start:61440,size:768,type:"ram"},{name:"BIOS Work RAM",start:62208,size:3328}]}}}newMachine(){return new i}getPresets(){return h}getDefaultExtension(){return".c"}readAddress(s){return this.machine.read(s)}readVRAMAddress(s){return this.machine.readVRAMAddress(s)}},C=class extends k{getPresets(){return F}};T.msx=k;T["msx-libcv"]=C;
|
||||
//# sourceMappingURL=msx-CNCQBGOX.js.map
|
||||
//# sourceMappingURL=msx-AU4VQJHK.js.map
|
@ -1,2 +1,2 @@
|
||||
import{J as h,c as f,q as m}from"./chunk-OOCS5TPQ.js";import{H as n,U as t,V as o,X as c,_ as i}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var l=c([[t.A,1,16],[t.LEFT,1,32],[t.RIGHT,1,64],[t.P2_A,2,16],[t.P2_LEFT,2,32],[t.P2_RIGHT,2,64],[t.SELECT,1,1],[t.START,1,4],[t.P2_START,1,2]]),u=256,w=4293848814,b=4278190080,a=class extends m{constructor(){super();this.cpuFrequency=1996800;this.canvasWidth=256;this.numTotalScanlines=262;this.numVisibleScanlines=224;this.cpuCyclesPerLine=Math.floor(1996800/(262*60));this.defaultROMSize=8192;this.rotate=-90;this.sampleRate=1;this.bitshift_offset=0;this.bitshift_register=0;this.cpu=new f;this.ram=new Uint8Array(8192);this.read=i([[0,8191,8191,e=>this.rom?this.rom[e]:0],[8192,16383,8191,e=>this.ram[e]]]);this.write=i([[8192,9215,1023,(e,s)=>{this.ram[e]=s}],[9216,16383,8191,(e,s)=>{this.ram[e]=s;for(var d=e-1024<<3,r=0;r<8;r++)this.pixels[d+r]=s&1<<r?w:b}]]);this.connectCPUMemoryBus(this),this.connectCPUIOBus(this.newIOBus()),this.handler=o(this.inputs,l)}newIOBus(){return{read:e=>{switch(e&=3,e){case 0:case 1:case 2:return this.inputs[e];case 3:return this.bitshift_register>>8-this.bitshift_offset&255}return 0},write:(e,s)=>{switch(e&=7,s&=255,e){case 2:this.bitshift_offset=s&7;break;case 3:case 5:break;case 4:this.bitshift_register=this.bitshift_register>>8|s<<8;break;case 6:this.watchdog_counter=u;break}}}}startScanline(){}drawScanline(){this.scanline==95?this.interrupt(207):this.scanline==223&&this.interrupt(215)}interrupt(e){this.probe.logInterrupt(e),this.cpu.interrupt(e)}advanceFrame(e){return this.watchdog_counter--<=0&&(console.log("WATCHDOG FIRED"),this.reset()),super.advanceFrame(e)}loadState(e){super.loadState(e),this.bitshift_register=e.bsr,this.bitshift_offset=e.bso,this.watchdog_counter=e.wdc}saveState(){var e=super.saveState();return e.bsr=this.bitshift_register,e.bso=this.bitshift_offset,e.wdc=this.watchdog_counter,e}reset(){super.reset(),this.watchdog_counter=u}};var _=[{id:"gfxtest.c",name:"Graphics Test"},{id:"shifter.c",name:"Sprite w/ Bit Shifter"},{id:"game2.c",name:"Cosmic Impalas"}],p=class extends h{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"Frame Buffer",start:9216,size:7168,type:"ram"}]}}}newMachine(){return new a}getPresets(){return _}getDefaultExtension(){return".c"}readAddress(e){return this.machine.read(e)}showHelp(){return"https://8bitworkshop.com/docs/platforms/arcade/index.html#midway-8080"}};n.mw8080bw=p;
|
||||
//# sourceMappingURL=mw8080bw-TXALOL5X.js.map
|
||||
import{J as h,c as f,q as m}from"./chunk-Z5TYMA6U.js";import{H as n,U as t,V as o,X as c,_ as i}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var l=c([[t.A,1,16],[t.LEFT,1,32],[t.RIGHT,1,64],[t.P2_A,2,16],[t.P2_LEFT,2,32],[t.P2_RIGHT,2,64],[t.SELECT,1,1],[t.START,1,4],[t.P2_START,1,2]]),u=256,w=4293848814,b=4278190080,a=class extends m{constructor(){super();this.cpuFrequency=1996800;this.canvasWidth=256;this.numTotalScanlines=262;this.numVisibleScanlines=224;this.cpuCyclesPerLine=Math.floor(1996800/(262*60));this.defaultROMSize=8192;this.rotate=-90;this.sampleRate=1;this.bitshift_offset=0;this.bitshift_register=0;this.cpu=new f;this.ram=new Uint8Array(8192);this.read=i([[0,8191,8191,e=>this.rom?this.rom[e]:0],[8192,16383,8191,e=>this.ram[e]]]);this.write=i([[8192,9215,1023,(e,s)=>{this.ram[e]=s}],[9216,16383,8191,(e,s)=>{this.ram[e]=s;for(var d=e-1024<<3,r=0;r<8;r++)this.pixels[d+r]=s&1<<r?w:b}]]);this.connectCPUMemoryBus(this),this.connectCPUIOBus(this.newIOBus()),this.handler=o(this.inputs,l)}newIOBus(){return{read:e=>{switch(e&=3,e){case 0:case 1:case 2:return this.inputs[e];case 3:return this.bitshift_register>>8-this.bitshift_offset&255}return 0},write:(e,s)=>{switch(e&=7,s&=255,e){case 2:this.bitshift_offset=s&7;break;case 3:case 5:break;case 4:this.bitshift_register=this.bitshift_register>>8|s<<8;break;case 6:this.watchdog_counter=u;break}}}}startScanline(){}drawScanline(){this.scanline==95?this.interrupt(207):this.scanline==223&&this.interrupt(215)}interrupt(e){this.probe.logInterrupt(e),this.cpu.interrupt(e)}advanceFrame(e){return this.watchdog_counter--<=0&&(console.log("WATCHDOG FIRED"),this.reset()),super.advanceFrame(e)}loadState(e){super.loadState(e),this.bitshift_register=e.bsr,this.bitshift_offset=e.bso,this.watchdog_counter=e.wdc}saveState(){var e=super.saveState();return e.bsr=this.bitshift_register,e.bso=this.bitshift_offset,e.wdc=this.watchdog_counter,e}reset(){super.reset(),this.watchdog_counter=u}};var _=[{id:"gfxtest.c",name:"Graphics Test"},{id:"shifter.c",name:"Sprite w/ Bit Shifter"},{id:"game2.c",name:"Cosmic Impalas"}],p=class extends h{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"Frame Buffer",start:9216,size:7168,type:"ram"}]}}}newMachine(){return new a}getPresets(){return _}getDefaultExtension(){return".c"}readAddress(e){return this.machine.read(e)}showHelp(){return"https://8bitworkshop.com/docs/platforms/arcade/index.html#midway-8080"}};n.mw8080bw=p;
|
||||
//# sourceMappingURL=mw8080bw-4SDKTZ65.js.map
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -6,7 +6,7 @@ const apple2_1 = require("../machine/apple2");
|
||||
const baseplatform_2 = require("../common/baseplatform");
|
||||
const mameplatform_1 = require("../common/mameplatform");
|
||||
const APPLE2_PRESETS = [
|
||||
{ id: 'sieve.c', name: 'Sieve' },
|
||||
{ id: 'sieve.c', name: 'Sieve', category: "C" },
|
||||
{ id: 'keyboardtest.c', name: 'Keyboard Test' },
|
||||
{ id: 'mandel.c', name: 'Mandelbrot' },
|
||||
{ id: 'tgidemo.c', name: 'TGI Graphics Demo' },
|
||||
@ -15,12 +15,12 @@ const APPLE2_PRESETS = [
|
||||
{ id: 'cosmic.c', name: 'Cosmic Impalas' },
|
||||
{ id: 'farmhouse.c', name: "Farmhouse Adventure" },
|
||||
{ id: 'yum.c', name: "Yum Dice Game" },
|
||||
{ id: 'lzgtest.c', name: "LZG Decompressor (C)" },
|
||||
{ id: 'hgrtest.a', name: "HGR Test (ASM)" },
|
||||
{ id: 'conway.a', name: "Conway's Game of Life (ASM)" },
|
||||
{ id: 'lz4fh.a', name: "LZ4FH Decompressor (ASM)" },
|
||||
{ id: 'deltamod.dasm', name: "Delta Modulation (ASM)" },
|
||||
// {id:'zap.dasm', name:"ZAP! (ASM)"},
|
||||
{ id: 'lzgtest.c', name: "LZG Decompressor" },
|
||||
{ id: 'hgrtest.a', name: "HGR Test", category: "Assembly Language" },
|
||||
{ id: 'conway.a', name: "Conway's Game of Life" },
|
||||
{ id: 'lz4fh.a', name: "LZ4FH Decompressor" },
|
||||
{ id: 'deltamod.dasm', name: "Delta Modulation Audio" },
|
||||
// {id:'zap.dasm', name:"ZAP!"},
|
||||
// {id:'tb_6502.s', name:'Tom Bombem (assembler game)'},
|
||||
];
|
||||
/// MAME support
|
||||
|
@ -1 +1 @@
|
||||
{"version":3,"file":"apple2.js","sourceRoot":"","sources":["../../src/platform/apple2.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"apple2.js","sourceRoot":"","sources":["../../src/platform/apple2.ts"],"names":[],"mappings":"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"}
|
@ -13,7 +13,7 @@ var Atari8_PRESETS = [
|
||||
];
|
||||
var Atari800_PRESETS = Atari8_PRESETS.concat([
|
||||
{ id: 'testmusic.c', name: 'POKEY Music (C)' },
|
||||
{ id: 'sieve.bas', name: 'Benchmark (FastBasic)' },
|
||||
{ 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)' },
|
||||
|
File diff suppressed because one or more lines are too long
@ -5,11 +5,8 @@ const baseplatform_1 = require("../common/baseplatform");
|
||||
const emu_1 = require("../common/emu");
|
||||
const mameplatform_1 = require("../common/mameplatform");
|
||||
const C64_PRESETS = [
|
||||
{ id: 'hello.dasm', name: 'Hello World (ASM)' },
|
||||
{ id: '23matches.c', name: '23 Matches' },
|
||||
{ id: 'tgidemo.c', name: 'TGI Graphics Demo' },
|
||||
{ id: 'upandaway.c', name: 'Up, Up and Away' },
|
||||
{ id: 'siegegame.c', name: 'Siege Game' },
|
||||
{ id: 'helloc.c', name: 'Hello World', category: 'C' },
|
||||
{ id: 'screen_ram.c', name: 'Screen RAM' },
|
||||
{ id: 'joymove.c', name: 'Sprite Movement' },
|
||||
{ id: 'sprite_collision.c', name: 'Sprite Collision' },
|
||||
{ id: 'scroll1.c', name: 'Scrolling (Single Buffer)' },
|
||||
@ -34,6 +31,12 @@ const C64_PRESETS = [
|
||||
{ id: 'test_border_sprites.c', name: 'Sprites in the Borders' },
|
||||
{ id: 'sprite_stretch.c', name: 'Sprite Stretching' },
|
||||
{ id: 'plasma.c', name: 'Plasma Demo' },
|
||||
{ id: 'siegegame.c', name: 'Siege Game' },
|
||||
{ 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 (ACME)' },
|
||||
{ id: 'hello.wiz', name: 'Hello Wiz (Wiz)' },
|
||||
];
|
||||
const C64_MEMORY_MAP = { main: [
|
||||
|
@ -1 +1 @@
|
||||
{"version":3,"file":"c64.js","sourceRoot":"","sources":["../../src/platform/c64.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"c64.js","sourceRoot":"","sources":["../../src/platform/c64.ts"],"names":[],"mappings":"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"}
|
@ -32,16 +32,16 @@ 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 (ASM)' },
|
||||
{ id: 'ex1.dasm', name: 'Hello World (ASM)' },
|
||||
{ id: 'ex2.dasm', name: 'Scrolling Demo (ASM)' },
|
||||
{ id: 'ex3.dasm', name: 'Sprite Demo (ASM)' },
|
||||
{ id: 'ex4.dasm', name: 'Controller Demo (ASM)' },
|
||||
{ id: 'musicdemo.dasm', name: 'Famitone Demo (ASM)' },
|
||||
{ id: 'xyscroll.dasm', name: 'XY Split Scrolling (ASM)' },
|
||||
// {id:'scrollrt.dasm', name:'Line-by-line Scrolling (ASM)'},
|
||||
{ id: 'road.dasm', name: '3-D Road Demo (ASM)' },
|
||||
{ id: 'chase/game.c', name: 'Shiru\'s Chase Game' },
|
||||
{ id: 'ex0.dasm', name: 'Initialization', category: 'Assembly Language (ASM)' },
|
||||
{ id: 'ex1.dasm', name: 'Hello World' },
|
||||
{ id: 'ex2.dasm', name: 'Scrolling Demo' },
|
||||
{ id: 'ex3.dasm', name: 'Sprite Demo' },
|
||||
{ id: 'ex4.dasm', name: 'Controller Demo' },
|
||||
{ id: 'musicdemo.dasm', name: 'Famitone Demo' },
|
||||
{ id: 'xyscroll.dasm', name: 'XY Split Scrolling' },
|
||||
// {id:'scrollrt.dasm', name:'Line-by-line Scrolling'},
|
||||
{ id: 'road.dasm', name: '3-D Road Demo' },
|
||||
{ id: 'chase/game.c', name: 'Shiru\'s Chase Game', category: 'Other' },
|
||||
{ id: 'hello.wiz', name: 'Hello (Wiz)' },
|
||||
];
|
||||
/// JSNES
|
||||
|
File diff suppressed because one or more lines are too long
@ -39,11 +39,11 @@ const VCS_PRESETS = [
|
||||
{ id: 'examples/road.a', chapter: 33, name: 'Pseudo 3D Road' },
|
||||
{ id: 'examples/bankswitching.a', chapter: 35, name: 'Bankswitching' },
|
||||
{ id: 'examples/wavetable.a', chapter: 36, name: 'Wavetable Sound' },
|
||||
{ id: 'examples/fracpitch.a', name: 'Fractional Pitch' },
|
||||
{ id: 'examples/pal.a', name: 'PAL Video Output' },
|
||||
// {id:'examples/testlibrary.a', name:'VCS Library Demo'},
|
||||
// {id:'examples/music2.a', name:'Pitch-Accurate Music'},
|
||||
// {id:'examples/fullgame.a', name:'Thru Hike: The Game', title:'Thru Hike'},
|
||||
{ id: 'examples/fracpitch.a', name: 'Fractional Pitch', category: 'BASIC and Other Languages' },
|
||||
{ id: 'bb/helloworld.bas', name: 'Hello World (batariBASIC)' },
|
||||
{ id: 'bb/draw.bas', name: 'Playfield Draw (batariBASIC)' },
|
||||
{ id: 'bb/sample.bas', name: 'Sprite Test (batariBASIC)' },
|
||||
|
File diff suppressed because one or more lines are too long
@ -26646,13 +26646,6 @@ function byteArrayToString(data) {
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function safeident(s) {
|
||||
if (s.length == 0)
|
||||
return "";
|
||||
if (!s.match(/^[a-zA-Z_]/))
|
||||
s = "_" + s;
|
||||
return s.replace(/\W+/g, "_");
|
||||
}
|
||||
function getBasePlatform(platform) {
|
||||
return platform.split(".")[0];
|
||||
}
|
||||
@ -29486,22 +29479,17 @@ function linkLD65(step) {
|
||||
}
|
||||
}
|
||||
function processIncbin(code) {
|
||||
let re3 = /^\s*([;']|[/][/])#incbin\s+"(.+?)"/gm;
|
||||
return code.replace(re3, (m, m1, m2) => {
|
||||
let filename = m2;
|
||||
let re3 = /^\s*#embed\s+"(.+?)"/gm;
|
||||
return code.replace(re3, (m, m1) => {
|
||||
let filename = m1;
|
||||
let filedata = store.getFileData(filename);
|
||||
let bytes = convertDataToUint8Array(filedata);
|
||||
if (!bytes)
|
||||
throw new Error('#incbin: file not found: "' + filename + '"');
|
||||
throw new Error('#embed: file not found: "' + filename + '"');
|
||||
let out = "";
|
||||
let ident = safeident(filename);
|
||||
console.log("#incbin", filename, ident, bytes.length);
|
||||
out += "const unsigned char " + ident + "[" + bytes.length + "] = {";
|
||||
for (let i = 0; i < bytes.length; i++) {
|
||||
out += bytes[i].toString() + ",";
|
||||
}
|
||||
out += "};";
|
||||
console.log("incbin", out);
|
||||
return out;
|
||||
});
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
import{a as g,b as p,c as M}from"./chunk-E2AQCZR6.js";import{J as o,d,f as l}from"./chunk-OOCS5TPQ.js";import{H as a,U as t,X as x,Z as h,_ as i,g as f}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var A=x([[t.UP,0,1],[t.DOWN,0,2],[t.LEFT,0,4],[t.RIGHT,0,8],[t.A,0,16],[t.B,0,32],[t.GP_A,0,16],[t.GP_B,0,32],[t.P2_UP,0,64],[t.P2_DOWN,0,128],[t.P2_LEFT,1,1],[t.P2_RIGHT,1,2],[t.P2_A,1,4],[t.P2_B,1,8],[t.VK_BACK_SLASH,1,16],[t.VK_ENTER,1,128]]),m=class extends M{constructor(){super();this.numVisibleScanlines=240;this.defaultROMSize=49152;this.ram=new Uint8Array(1024);this.read=i([[49152,65535,1023,e=>this.ram[e]],[0,49151,65535,e=>this.rom&&this.rom[e]]]);this.write=i([[49152,65535,1023,(e,r)=>{this.ram[e]=r}]]);this.init(this,this.newIOBus(),new l(new d))}getKeyboardMap(){return A}vdpInterrupt(){return this.probe.logInterrupt(255),this.cpu.interrupt(255)}getVCounter(){return 0}getHCounter(){return 0}setMemoryControl(e){}setIOPortControl(e){}readIO(e){switch(e&193){case 64:return this.getVCounter();case 65:return this.getHCounter();case 128:return this.vdp.readData();case 129:return this.vdp.readStatus();case 192:return this.inputs[0]^255;case 193:return this.inputs[1]^255}return 0}writeIO(e,r){switch(e&193){case 0:return this.setMemoryControl(r);case 1:return this.setIOPortControl(r);case 64:case 65:return this.psg.setData(r);case 128:return this.vdp.writeData(r);case 129:return this.vdp.writeAddress(r)}}newIOBus(){return{read:e=>(e&=255,this.readIO(e)),write:(e,r)=>{e&=255,r&=255,this.writeIO(e,r)}}}},u=class extends m{constructor(){super(...arguments);this.cartram=new Uint8Array(0);this.pagingRegisters=new Uint8Array(4);this.latchedHCounter=0;this.ioControlFlags=0;this.ram=new Uint8Array(8192);this.read=i([[49152,65535,8191,e=>this.ram[e]],[0,1023,1023,e=>this.rom&&this.rom[e]],[1024,16383,16383,e=>this.getPagedROM(e,1)],[16384,32767,16383,e=>this.getPagedROM(e,2)],[32768,49151,16383,e=>{var r=this.pagingRegisters[0];return r&8?this.cartram[r&4?e+16384:e]:this.getPagedROM(e,3)}]]);this.write=i([[49152,65531,8191,(e,r)=>{this.ram[e]=r}],[65532,65535,3,(e,r)=>{this.pagingRegisters[e]=r,this.ram[e+8188]=r}],[32768,49151,16383,(e,r)=>{var s=this.pagingRegisters[0];s&8&&(this.cartram.length==0&&(this.cartram=new Uint8Array(32768)),this.cartram[s&4?e+16384:e]=r)}]])}newVDP(e,r,s){return new g(e,r,s)}reset(){super.reset(),this.pagingRegisters.set([0,0,1,2])}getVCounter(){var e=this.scanline;return e<=218?e:e-6}getHCounter(){return this.latchedHCounter}computeHCounter(){return 0}setIOPortControl(e){(e^this.ioControlFlags)&160&&(this.latchedHCounter=this.computeHCounter()),this.ioControlFlags=e}getPagedROM(e,r){return this.rom&&this.rom[e+((this.pagingRegisters[r]&this.romPageMask)<<14)]}loadROM(e){if(e.length<=49152)this.rom=h(e,49152),this.romPageMask=3;else switch(e.length){case 65536:case 131072:case 262144:case 524288:this.rom=e,this.romPageMask=(e.length>>14)-1;break;default:throw Error("Unknown rom size: $"+f(e.length))}this.reset()}loadState(e){super.loadState(e),this.pagingRegisters.set(e.pr),this.cartram.set(e.cr),this.latchedHCounter=e.lhc,this.ioControlFlags=e.iocf}saveState(){var e=super.saveState();return e.pr=this.pagingRegisters.slice(0),e.cr=this.cartram.slice(0),e.lhc=this.latchedHCounter,e.iocf=this.ioControlFlags,e}getDebugInfo(e,r){switch(e){case"SMS":return super.getDebugInfo(e,r)+`
|
||||
import{a as g,b as p,c as M}from"./chunk-HNHXM2GS.js";import{J as o,d,f as l}from"./chunk-Z5TYMA6U.js";import{H as a,U as t,X as x,Z as h,_ as i,g as f}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var A=x([[t.UP,0,1],[t.DOWN,0,2],[t.LEFT,0,4],[t.RIGHT,0,8],[t.A,0,16],[t.B,0,32],[t.GP_A,0,16],[t.GP_B,0,32],[t.P2_UP,0,64],[t.P2_DOWN,0,128],[t.P2_LEFT,1,1],[t.P2_RIGHT,1,2],[t.P2_A,1,4],[t.P2_B,1,8],[t.VK_BACK_SLASH,1,16],[t.VK_ENTER,1,128]]),m=class extends M{constructor(){super();this.numVisibleScanlines=240;this.defaultROMSize=49152;this.ram=new Uint8Array(1024);this.read=i([[49152,65535,1023,e=>this.ram[e]],[0,49151,65535,e=>this.rom&&this.rom[e]]]);this.write=i([[49152,65535,1023,(e,r)=>{this.ram[e]=r}]]);this.init(this,this.newIOBus(),new l(new d))}getKeyboardMap(){return A}vdpInterrupt(){return this.probe.logInterrupt(255),this.cpu.interrupt(255)}getVCounter(){return 0}getHCounter(){return 0}setMemoryControl(e){}setIOPortControl(e){}readIO(e){switch(e&193){case 64:return this.getVCounter();case 65:return this.getHCounter();case 128:return this.vdp.readData();case 129:return this.vdp.readStatus();case 192:return this.inputs[0]^255;case 193:return this.inputs[1]^255}return 0}writeIO(e,r){switch(e&193){case 0:return this.setMemoryControl(r);case 1:return this.setIOPortControl(r);case 64:case 65:return this.psg.setData(r);case 128:return this.vdp.writeData(r);case 129:return this.vdp.writeAddress(r)}}newIOBus(){return{read:e=>(e&=255,this.readIO(e)),write:(e,r)=>{e&=255,r&=255,this.writeIO(e,r)}}}},u=class extends m{constructor(){super(...arguments);this.cartram=new Uint8Array(0);this.pagingRegisters=new Uint8Array(4);this.latchedHCounter=0;this.ioControlFlags=0;this.ram=new Uint8Array(8192);this.read=i([[49152,65535,8191,e=>this.ram[e]],[0,1023,1023,e=>this.rom&&this.rom[e]],[1024,16383,16383,e=>this.getPagedROM(e,1)],[16384,32767,16383,e=>this.getPagedROM(e,2)],[32768,49151,16383,e=>{var r=this.pagingRegisters[0];return r&8?this.cartram[r&4?e+16384:e]:this.getPagedROM(e,3)}]]);this.write=i([[49152,65531,8191,(e,r)=>{this.ram[e]=r}],[65532,65535,3,(e,r)=>{this.pagingRegisters[e]=r,this.ram[e+8188]=r}],[32768,49151,16383,(e,r)=>{var s=this.pagingRegisters[0];s&8&&(this.cartram.length==0&&(this.cartram=new Uint8Array(32768)),this.cartram[s&4?e+16384:e]=r)}]])}newVDP(e,r,s){return new g(e,r,s)}reset(){super.reset(),this.pagingRegisters.set([0,0,1,2])}getVCounter(){var e=this.scanline;return e<=218?e:e-6}getHCounter(){return this.latchedHCounter}computeHCounter(){return 0}setIOPortControl(e){(e^this.ioControlFlags)&160&&(this.latchedHCounter=this.computeHCounter()),this.ioControlFlags=e}getPagedROM(e,r){return this.rom&&this.rom[e+((this.pagingRegisters[r]&this.romPageMask)<<14)]}loadROM(e){if(e.length<=49152)this.rom=h(e,49152),this.romPageMask=3;else switch(e.length){case 65536:case 131072:case 262144:case 524288:this.rom=e,this.romPageMask=(e.length>>14)-1;break;default:throw Error("Unknown rom size: $"+f(e.length))}this.reset()}loadState(e){super.loadState(e),this.pagingRegisters.set(e.pr),this.cartram.set(e.cr),this.latchedHCounter=e.lhc,this.ioControlFlags=e.iocf}saveState(){var e=super.saveState();return e.pr=this.pagingRegisters.slice(0),e.cr=this.cartram.slice(0),e.lhc=this.latchedHCounter,e.iocf=this.ioControlFlags,e}getDebugInfo(e,r){switch(e){case"SMS":return super.getDebugInfo(e,r)+`
|
||||
Bank Regs: `+this.pagingRegisters+`
|
||||
`;default:return super.getDebugInfo(e,r)}}},c=class extends u{newVDP(e,r,s){return new p(e,r,s)}readIO(e){switch(e&193){case 0:return~this.inputs[1]&128|64;case 220:return this.inputs[0]^255;case 221:return this.inputs[1]^255}return super.readIO(e)}};var C=[{id:"text.c",name:"Text Mode"},{id:"hello.c",name:"Scrolling Text"},{id:"text32.c",name:"32-Column Color Text"},{id:"stars.c",name:"Scrolling Starfield"},{id:"cursorsmooth.c",name:"Moving Cursor"},{id:"simplemusic.c",name:"Simple Music"},{id:"musicplayer.c",name:"Multivoice Music"},{id:"mode2bitmap.c",name:"Mode 2 Bitmap"},{id:"mode2compressed.c",name:"Mode 2 Bitmap (LZG)"},{id:"lines.c",name:"Mode 2 Lines"},{id:"multicolor.c",name:"Multicolor Mode"},{id:"siegegame.c",name:"Siege Game"},{id:"shoot.c",name:"Solarian Game"},{id:"climber.c",name:"Climber Game"}],P=[{id:"mode4test.c",name:"Mode 4 Test"},{id:"climber.c",name:"Climber Game"}],b=class extends o{newMachine(){return new m}getPresets(){return C}getDefaultExtension(){return".c"}readAddress(e){return this.machine.read(e)}readVRAMAddress(e){return this.machine.readVRAMAddress(e)}},S=class extends o{newMachine(){return new u}getPresets(){return P}getDefaultExtension(){return".c"}readAddress(e){return this.machine.read(e)}readVRAMAddress(e){return this.machine.readVRAMAddress(e)}},w=class extends o{newMachine(){return new c}getPresets(){return P}getDefaultExtension(){return".c"}readAddress(e){return this.machine.read(e)}readVRAMAddress(e){return this.machine.readVRAMAddress(e)}};a["sms-sg1000-libcv"]=b;a["sms-sms-libcv"]=S;a["sms-gg-libcv"]=w;export{C as SG1000_PRESETS,P as SMS_PRESETS};
|
||||
//# sourceMappingURL=sms-CC2I5DQX.js.map
|
||||
//# sourceMappingURL=sms-LDE4N7RD.js.map
|
@ -1,2 +1,2 @@
|
||||
import{D as w}from"./chunk-OOCS5TPQ.js";import{H as v,N as x,Q as p,S as C,Z as P,_ as d}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var y=[],A=function(R){this.__proto__=new w;var t,i,o,f,l,u,c,m,s,M=0,a=0,r,g=14318e3/8,b=1789750/1280,D=g/60,S=g/b;this.getPresets=function(){return y},this.start=function(){i=new p(1024),f={read:d([[0,16383,16383,function(e){return o?o[e]:null}],[16384,24575,1023,function(e){return i.mem[e]}]]),write:d([[16384,24575,1023,function(e,n){i.mem[e]=n}]]),isContended:function(){return!1}},l={read:function(e){if(e&64){if(a==15){var n=t.getTstates()/S&1;return n?255:0}return r.readRegister(a)&255}return 0},write:function(e,n){e&128&&(a=n&15),e&64&&r.writeRegisterAY(a,n&255)}},this.readAddress=f.read,t=this.newCPU(f,l),r=new PsgDeviceChannel,c=new MasterChannel,r.setMode(PsgDeviceChannel.MODE_SIGNED),r.setDevice(PsgDeviceChannel.DEVICE_AY_3_8910),c.addChannel(r),u=new AudioLooper(512),u.setChannel(c),m=new x(R,256,256),m.create(),m.setKeyboardEvents(function(e,n,T){var h=e-49;h>=0&&T&1&&(r.writeRegister(14,h),r.writeRegister(15,128),t.setIFF1(1),t.requestInterrupt(56))}),s=new C(60,()=>{if(!!this.isRunning()){var e=this.getDebugCallback(),n=t.getTstates()+D;if(e)for(;t.getTstates()<n;)e&&e()&&(e=null),t.runFrame(t.getTstates()+1);else t.runFrame(n)}})},this.loadROM=function(e,n){o=P(n,16384),t.reset()},this.loadState=function(e){t.loadState(e.c),i.mem.set(e.b)},this.saveState=function(){return{c:this.getCPUState(),b:i.mem.slice(0)}},this.getCPUState=function(){return t.saveState()},this.isRunning=function(){return s&&s.isRunning()},this.pause=function(){s.stop()},this.resume=function(){s.start(),u.activate()},this.reset=function(){t.reset(),this.getDebugCallback()||t.setTstates(0)}};v.sound_konami=A;
|
||||
//# sourceMappingURL=sound_konami-B2S34NSK.js.map
|
||||
import{D as w}from"./chunk-Z5TYMA6U.js";import{H as v,N as x,Q as p,S as C,Z as P,_ as d}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var y=[],A=function(R){this.__proto__=new w;var t,i,o,f,l,u,c,m,s,M=0,a=0,r,g=14318e3/8,b=1789750/1280,D=g/60,S=g/b;this.getPresets=function(){return y},this.start=function(){i=new p(1024),f={read:d([[0,16383,16383,function(e){return o?o[e]:null}],[16384,24575,1023,function(e){return i.mem[e]}]]),write:d([[16384,24575,1023,function(e,n){i.mem[e]=n}]]),isContended:function(){return!1}},l={read:function(e){if(e&64){if(a==15){var n=t.getTstates()/S&1;return n?255:0}return r.readRegister(a)&255}return 0},write:function(e,n){e&128&&(a=n&15),e&64&&r.writeRegisterAY(a,n&255)}},this.readAddress=f.read,t=this.newCPU(f,l),r=new PsgDeviceChannel,c=new MasterChannel,r.setMode(PsgDeviceChannel.MODE_SIGNED),r.setDevice(PsgDeviceChannel.DEVICE_AY_3_8910),c.addChannel(r),u=new AudioLooper(512),u.setChannel(c),m=new x(R,256,256),m.create(),m.setKeyboardEvents(function(e,n,T){var h=e-49;h>=0&&T&1&&(r.writeRegister(14,h),r.writeRegister(15,128),t.setIFF1(1),t.requestInterrupt(56))}),s=new C(60,()=>{if(!!this.isRunning()){var e=this.getDebugCallback(),n=t.getTstates()+D;if(e)for(;t.getTstates()<n;)e&&e()&&(e=null),t.runFrame(t.getTstates()+1);else t.runFrame(n)}})},this.loadROM=function(e,n){o=P(n,16384),t.reset()},this.loadState=function(e){t.loadState(e.c),i.mem.set(e.b)},this.saveState=function(){return{c:this.getCPUState(),b:i.mem.slice(0)}},this.getCPUState=function(){return t.saveState()},this.isRunning=function(){return s&&s.isRunning()},this.pause=function(){s.stop()},this.resume=function(){s.start(),u.activate()},this.reset=function(){t.reset(),this.getDebugCallback()||t.setTstates(0)}};v.sound_konami=A;
|
||||
//# sourceMappingURL=sound_konami-QNXARYIT.js.map
|
@ -1,2 +1,2 @@
|
||||
import{J as m,c as n,p as o}from"./chunk-OOCS5TPQ.js";import{H as i,_ as s}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var d=[{id:"swave.c",name:"Wavetable Synth"}],c=class extends o{constructor(){super();this.cpuFrequency=18432e3/6;this.cpuCyclesPerFrame=this.cpuFrequency/60;this.cpuAudioFactor=32;this.canvasWidth=256;this.numVisibleScanlines=256;this.defaultROMSize=16384;this.sampleRate=this.cpuFrequency;this.overscan=!0;this.ram=new Uint8Array(1024);this.command=0;this.dac=0;this.dac_float=0;this.xpos=0;this.read=s([[0,16383,16383,e=>this.rom&&this.rom[e]],[16384,32767,1023,e=>this.ram[e]]]);this.write=s([[16384,32767,1023,(e,t)=>{this.ram[e]=t}]]);this.cpu=new n,this.connectCPUMemoryBus(this),this.connectCPUIOBus({read:e=>this.command&255,write:(e,t)=>{let r=this.dac=t&255;this.dac_float=(r&128?-256+r:r)/128}})}advanceFrame(e){this.pixels&&this.pixels.fill(0);let t=this.cpuCyclesPerFrame;for(var r=0;r<t&&!(e&&e());)r+=this.advanceCPU();return r}advanceCPU(){var e=super.advanceCPU();return this.audio&&this.audio.feedSample(this.dac_float,e),this.pixels&&!this.cpu.isHalted()&&(this.pixels[(this.xpos>>8&255)+(255-this.dac<<8)]=4281597747,this.xpos=this.xpos+e&16777215),e}setKeyInput(e,t,r){var a=e-49;a>=0&&r&1&&(this.command=a&255,this.cpu.reset())}},f=class extends m{newMachine(){return new c}getPresets(){return d}getDefaultExtension(){return".c"}readAddress(e){return this.machine.read(e)}};i["sound_williams-z80"]=f;export{f as WilliamsSoundPlatform};
|
||||
//# sourceMappingURL=sound_williams-7SXX6K2Z.js.map
|
||||
import{J as m,c as n,p as o}from"./chunk-Z5TYMA6U.js";import{H as i,_ as s}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var d=[{id:"swave.c",name:"Wavetable Synth"}],c=class extends o{constructor(){super();this.cpuFrequency=18432e3/6;this.cpuCyclesPerFrame=this.cpuFrequency/60;this.cpuAudioFactor=32;this.canvasWidth=256;this.numVisibleScanlines=256;this.defaultROMSize=16384;this.sampleRate=this.cpuFrequency;this.overscan=!0;this.ram=new Uint8Array(1024);this.command=0;this.dac=0;this.dac_float=0;this.xpos=0;this.read=s([[0,16383,16383,e=>this.rom&&this.rom[e]],[16384,32767,1023,e=>this.ram[e]]]);this.write=s([[16384,32767,1023,(e,t)=>{this.ram[e]=t}]]);this.cpu=new n,this.connectCPUMemoryBus(this),this.connectCPUIOBus({read:e=>this.command&255,write:(e,t)=>{let r=this.dac=t&255;this.dac_float=(r&128?-256+r:r)/128}})}advanceFrame(e){this.pixels&&this.pixels.fill(0);let t=this.cpuCyclesPerFrame;for(var r=0;r<t&&!(e&&e());)r+=this.advanceCPU();return r}advanceCPU(){var e=super.advanceCPU();return this.audio&&this.audio.feedSample(this.dac_float,e),this.pixels&&!this.cpu.isHalted()&&(this.pixels[(this.xpos>>8&255)+(255-this.dac<<8)]=4281597747,this.xpos=this.xpos+e&16777215),e}setKeyInput(e,t,r){var a=e-49;a>=0&&r&1&&(this.command=a&255,this.cpu.reset())}},f=class extends m{newMachine(){return new c}getPresets(){return d}getDefaultExtension(){return".c"}readAddress(e){return this.machine.read(e)}};i["sound_williams-z80"]=f;export{f as WilliamsSoundPlatform};
|
||||
//# sourceMappingURL=sound_williams-FAKI2HAK.js.map
|
@ -1,2 +1,2 @@
|
||||
import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h,j as i,k as j,l as k,m as l,n as m,o as n,p as o,q as p,r as q,s as r,t as s,u as t,v as u,w as v,x as w}from"./chunk-MHM77BKJ.js";import"./chunk-SDBJC2RS.js";import"./chunk-XMPGMPQ4.js";import"./chunk-YUMXYDDL.js";import"./chunk-OOCS5TPQ.js";import"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";export{l as clearBreakpoint,h as compparams,f as current_project,u as emulationHalted,p as getPlatformAndRepo,t as getSaveState,s as getTestOutput,n as haltEmulation,w as highlightSearch,i as lastDebugState,e as platform,b as platform_id,g as projectWindows,a as qs,v as reloadWorkspaceFile,d as repo_id,k as runToPC,m as setFrameRateUI,r as setTestInput,j as setupBreakpoint,o as setupSplits,q as startUI,c as store_id};
|
||||
import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h,j as i,k as j,l as k,m as l,n as m,o as n,p as o,q as p,r as q,s as r,t as s,u as t,v as u,w as v,x as w}from"./chunk-GBRUOVY7.js";import"./chunk-SDBJC2RS.js";import"./chunk-XMPGMPQ4.js";import"./chunk-AGGKDGWZ.js";import"./chunk-Z5TYMA6U.js";import"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";export{l as clearBreakpoint,h as compparams,f as current_project,u as emulationHalted,p as getPlatformAndRepo,t as getSaveState,s as getTestOutput,n as haltEmulation,w as highlightSearch,i as lastDebugState,e as platform,b as platform_id,g as projectWindows,a as qs,v as reloadWorkspaceFile,d as repo_id,k as runToPC,m as setFrameRateUI,r as setTestInput,j as setupBreakpoint,o as setupSplits,q as startUI,c as store_id};
|
||||
//# sourceMappingURL=ui.js.map
|
||||
|
File diff suppressed because one or more lines are too long
7
gen/vcs-ASY7LYV3.js.map
Normal file
7
gen/vcs-ASY7LYV3.js.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,2 +1,2 @@
|
||||
import{J as A,c as d,d as y,e as S,k as v,q as g}from"./chunk-OOCS5TPQ.js";import{H as p,U as t,V as u,X as h,_ as r}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var L=h([[t.A,2,-32],[t.B,2,-64],[t.LEFT,1,-16],[t.RIGHT,1,-32],[t.UP,1,-64],[t.DOWN,1,-128],[t.START,2,-16],[t.P2_START,3,-32],[t.SELECT,3,8]]),o=15468e3,w=262,K=224;var I=240,b=o/8,M=o/3/w,j=M/328,U=b/M,V=500,Z=b/(2*V),P=2,_=60*w,c=class extends g{constructor(){super();this.cpuFrequency=o/8;this.canvasWidth=256;this.numTotalScanlines=262;this.numVisibleScanlines=224;this.defaultROMSize=16448;this.sampleRate=_*P;this.cpuCyclesPerLine=U|0;this.rotate=-90;this.cpu=new d;this.ram=new Uint8Array(4096);this.read=r([[0,32767,16383,e=>this.rom?this.rom[e]:null],[32768,65535,4095,e=>this.ram[e]]]);this.write=r([[32768,65535,4095,(e,s)=>{this.ram[e]=s}]]);this.connectCPUMemoryBus(this),this.connectCPUIOBus(this.newIOBus()),this.inputs.set([255,255,255,255^8]),this.display=new T,this.handler=u(this.inputs,L,this.getKeyboardFunction()),this.psg=new S(new y),this.audioadapter=new v(this.psg.psg,P,this.sampleRate)}getKeyboardFunction(){return e=>{e.index==3&&e.mask==8&&(this.cpu.reset(),console.log("coin inserted"),console.log(this.inputs))}}newIOBus(){return{read:e=>this.inputs[e&3],write:(e,s)=>{e&1&&this.psg.selectRegister(s&15),e&2&&this.psg.setData(s),e&8,e&64&&(this.display.palbank=s&3)}}}reset(){super.reset(),this.psg.reset()}startScanline(){this.inputs[2]&=~8,this.inputs[2]|=(this.frameCycles/Z&1)<<3,this.scanline==K&&(this.inputs[1]|=8),this.scanline==I&&(this.inputs[1]&=~8),this.audio&&this.audioadapter.generate(this.audio)}drawScanline(){this.display.drawScanline(this.ram,this.pixels,this.scanline)}loadROM(e){super.loadROM(e),e.length>=16416&&(e[16384]||e[16415])&&(this.display.colorprom=e.slice(16384,16416))}loadState(e){super.loadState(e),this.display.palbank=e.pb}saveState(){var e=super.saveState();return e.pb=this.display.palbank,e}},T=class{constructor(){this.palbank=0;this.palette=[4278190080,4278190335,4278255360,4278255615,4294901760,4294902015,4294967040,4294967295];this.colorprom=[224,96,32,96,192,96,64,192,32,64,96,128,160,192,224,14,224,224,224,224,96,96,96,96,224,224,224,224,224,224,224,224]}drawScanline(e,s,i){if(!(i>=224))for(var k=i*256,x=k,F=i>>3<<5,C=i&7,a=0;a<32;a++)for(var l=e[F+a],D=e[2048+(l<<3)+C],m=(l>>5)+(this.palbank<<3),E=this.palette[this.colorprom[m]>>1&7],O=this.palette[this.colorprom[m]>>5&7],n=0;n<8;n++){var B=128>>n;s[x]=D&B?O:E,x++}}};var q=[{id:"minimal.c",name:"Minimal Example"},{id:"hello.c",name:"Hello World"},{id:"gfxtest.c",name:"Graphics Test"},{id:"soundtest.c",name:"Sound Test"},{id:"snake1.c",name:"Siege Game (Prototype)"},{id:"snake2.c",name:"Siege Game (Full)"},{id:"music.c",name:"Music Player"}],R=class extends A{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"Cell RAM",start:57344,size:32*32,type:"ram"},{name:"Tile RAM",start:59392,size:256*8,type:"ram"}]}}}newMachine(){return new c}getPresets(){return q}getDefaultExtension(){return".c"}readAddress(e){return this.machine.read(e)}showHelp(){return"https://8bitworkshop.com/docs/platforms/arcade/index.html#vic-dual"}};p.vicdual=R;
|
||||
//# sourceMappingURL=vicdual-N5OK6RSQ.js.map
|
||||
import{J as A,c as d,d as y,e as S,k as v,q as g}from"./chunk-Z5TYMA6U.js";import{H as p,U as t,V as u,X as h,_ as r}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var L=h([[t.A,2,-32],[t.B,2,-64],[t.LEFT,1,-16],[t.RIGHT,1,-32],[t.UP,1,-64],[t.DOWN,1,-128],[t.START,2,-16],[t.P2_START,3,-32],[t.SELECT,3,8]]),o=15468e3,w=262,K=224;var I=240,b=o/8,M=o/3/w,j=M/328,U=b/M,V=500,Z=b/(2*V),P=2,_=60*w,c=class extends g{constructor(){super();this.cpuFrequency=o/8;this.canvasWidth=256;this.numTotalScanlines=262;this.numVisibleScanlines=224;this.defaultROMSize=16448;this.sampleRate=_*P;this.cpuCyclesPerLine=U|0;this.rotate=-90;this.cpu=new d;this.ram=new Uint8Array(4096);this.read=r([[0,32767,16383,e=>this.rom?this.rom[e]:null],[32768,65535,4095,e=>this.ram[e]]]);this.write=r([[32768,65535,4095,(e,s)=>{this.ram[e]=s}]]);this.connectCPUMemoryBus(this),this.connectCPUIOBus(this.newIOBus()),this.inputs.set([255,255,255,255^8]),this.display=new T,this.handler=u(this.inputs,L,this.getKeyboardFunction()),this.psg=new S(new y),this.audioadapter=new v(this.psg.psg,P,this.sampleRate)}getKeyboardFunction(){return e=>{e.index==3&&e.mask==8&&(this.cpu.reset(),console.log("coin inserted"),console.log(this.inputs))}}newIOBus(){return{read:e=>this.inputs[e&3],write:(e,s)=>{e&1&&this.psg.selectRegister(s&15),e&2&&this.psg.setData(s),e&8,e&64&&(this.display.palbank=s&3)}}}reset(){super.reset(),this.psg.reset()}startScanline(){this.inputs[2]&=~8,this.inputs[2]|=(this.frameCycles/Z&1)<<3,this.scanline==K&&(this.inputs[1]|=8),this.scanline==I&&(this.inputs[1]&=~8),this.audio&&this.audioadapter.generate(this.audio)}drawScanline(){this.display.drawScanline(this.ram,this.pixels,this.scanline)}loadROM(e){super.loadROM(e),e.length>=16416&&(e[16384]||e[16415])&&(this.display.colorprom=e.slice(16384,16416))}loadState(e){super.loadState(e),this.display.palbank=e.pb}saveState(){var e=super.saveState();return e.pb=this.display.palbank,e}},T=class{constructor(){this.palbank=0;this.palette=[4278190080,4278190335,4278255360,4278255615,4294901760,4294902015,4294967040,4294967295];this.colorprom=[224,96,32,96,192,96,64,192,32,64,96,128,160,192,224,14,224,224,224,224,96,96,96,96,224,224,224,224,224,224,224,224]}drawScanline(e,s,i){if(!(i>=224))for(var k=i*256,x=k,F=i>>3<<5,C=i&7,a=0;a<32;a++)for(var l=e[F+a],D=e[2048+(l<<3)+C],m=(l>>5)+(this.palbank<<3),E=this.palette[this.colorprom[m]>>1&7],O=this.palette[this.colorprom[m]>>5&7],n=0;n<8;n++){var B=128>>n;s[x]=D&B?O:E,x++}}};var q=[{id:"minimal.c",name:"Minimal Example"},{id:"hello.c",name:"Hello World"},{id:"gfxtest.c",name:"Graphics Test"},{id:"soundtest.c",name:"Sound Test"},{id:"snake1.c",name:"Siege Game (Prototype)"},{id:"snake2.c",name:"Siege Game (Full)"},{id:"music.c",name:"Music Player"}],R=class extends A{constructor(){super(...arguments);this.getMemoryMap=function(){return{main:[{name:"Cell RAM",start:57344,size:32*32,type:"ram"},{name:"Tile RAM",start:59392,size:256*8,type:"ram"}]}}}newMachine(){return new c}getPresets(){return q}getDefaultExtension(){return".c"}readAddress(e){return this.machine.read(e)}showHelp(){return"https://8bitworkshop.com/docs/platforms/arcade/index.html#vic-dual"}};p.vicdual=R;
|
||||
//# sourceMappingURL=vicdual-QGQIBOQN.js.map
|
File diff suppressed because one or more lines are too long
@ -54,13 +54,6 @@
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function safeident(s) {
|
||||
if (s.length == 0)
|
||||
return "";
|
||||
if (!s.match(/^[a-zA-Z_]/))
|
||||
s = "_" + s;
|
||||
return s.replace(/\W+/g, "_");
|
||||
}
|
||||
function getBasePlatform(platform) {
|
||||
return platform.split(".")[0];
|
||||
}
|
||||
@ -2889,22 +2882,17 @@
|
||||
}
|
||||
}
|
||||
function processIncbin(code) {
|
||||
let re3 = /^\s*([;']|[/][/])#incbin\s+"(.+?)"/gm;
|
||||
return code.replace(re3, (m, m1, m2) => {
|
||||
let filename = m2;
|
||||
let re3 = /^\s*#embed\s+"(.+?)"/gm;
|
||||
return code.replace(re3, (m, m1) => {
|
||||
let filename = m1;
|
||||
let filedata = store.getFileData(filename);
|
||||
let bytes = convertDataToUint8Array(filedata);
|
||||
if (!bytes)
|
||||
throw new Error('#incbin: file not found: "' + filename + '"');
|
||||
throw new Error('#embed: file not found: "' + filename + '"');
|
||||
let out = "";
|
||||
let ident = safeident(filename);
|
||||
console.log("#incbin", filename, ident, bytes.length);
|
||||
out += "const unsigned char " + ident + "[" + bytes.length + "] = {";
|
||||
for (let i = 0; i < bytes.length; i++) {
|
||||
out += bytes[i].toString() + ",";
|
||||
}
|
||||
out += "};";
|
||||
console.log("incbin", out);
|
||||
return out;
|
||||
});
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
@ -280,23 +280,18 @@ function linkLD65(step) {
|
||||
}
|
||||
exports.linkLD65 = linkLD65;
|
||||
function processIncbin(code) {
|
||||
let re3 = /^\s*([;']|[/][/])#incbin\s+"(.+?)"/gm;
|
||||
// find #incbin "filename.bin" and replace with C array declaration
|
||||
return code.replace(re3, (m, m1, m2) => {
|
||||
let filename = m2;
|
||||
let re3 = /^\s*#embed\s+"(.+?)"/gm;
|
||||
// find #embed "filename.bin" and replace with C array data
|
||||
return code.replace(re3, (m, m1) => {
|
||||
let filename = m1;
|
||||
let filedata = workermain_1.store.getFileData(filename);
|
||||
let bytes = (0, util_1.convertDataToUint8Array)(filedata);
|
||||
if (!bytes)
|
||||
throw new Error('#incbin: file not found: "' + filename + '"');
|
||||
throw new Error('#embed: file not found: "' + filename + '"');
|
||||
let out = '';
|
||||
let ident = (0, util_1.safeident)(filename);
|
||||
console.log('#incbin', filename, ident, bytes.length);
|
||||
out += 'const unsigned char ' + ident + '[' + bytes.length + '] = {';
|
||||
for (let i = 0; i < bytes.length; i++) {
|
||||
out += bytes[i].toString() + ',';
|
||||
}
|
||||
out += '};';
|
||||
console.log('incbin', out);
|
||||
return out;
|
||||
});
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,2 +1,2 @@
|
||||
import{J as p,r as c}from"./chunk-OOCS5TPQ.js";import{H as n,M as i}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var o=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,i.KeyUp)}advanceFrame(t){var a=this.probe!=null;a&&this.exports.machine_reset_probe_buffer();var s=super.advanceFrameClock(t,Math.floor(35e5/50));return a&&this.copyProbeData(),s}getCPUState(){this.exports.machine_save_cpu_state(this.sys,this.cpustateptr);var t=this.cpustatearr,a=t[9]+(t[8]<<8),s=t[10]+(t[11]<<8),e=t[12]+(t[13]<<8),r=t[14]+(t[15]<<8),x=t[24]+(t[25]<<8),l=t[26]+(t[27]<<8),u=t[28]+(t[29]<<8),m=t[34]+(t[35]<<8),d=t[36]+(t[37]<<8);return{PC:m,SP:x,AF:a,BC:r,DE:e,HL:s,IX:u,IY:l,IR:d,o:this.readConst(m)}}saveState(){return this.exports.machine_save_state(this.sys,this.stateptr),{c:this.getCPUState(),state:this.statearr.slice(0)}}loadState(t){this.statearr.set(t.state),this.exports.machine_load_state(this.sys,this.stateptr)}getVideoParams(){return{width:320,height:256,overscan:!0,videoFrequency:50}}setKeyInput(t,a,s){if(!(t==16||t==17||t==18||t==224)){var e=0,r=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,r=4),t==87&&(t=87,r=1),t==68&&(t=68,r=8),t==83&&(t=83,r=2),t==69&&(r=16),t==113&&(t=241),t==115&&(t=243),t==119&&(t=245),t==121&&(t=247),s&i.KeyDown?(this.exports.machine_key_down(this.sys,t),this.joymask0|=e):s&i.KeyUp&&(this.exports.machine_key_up(this.sys,t),this.joymask0&=~e),this.exports.zx_joystick(this.sys,this.joymask0,0)}}};var M=[{id:"hello.asm",name:"Hello World (ASM)"},{id:"bios.c",name:"BIOS Routines (C)"},{id:"cosmic.c",name:"Cosmic Impalas (C)"}],v={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:65368-23755,type:"ram"}]},h=class extends p{newMachine(){return new o("zx")}getPresets(){return M}getDefaultExtension(){return".asm"}readAddress(t){return this.machine.readConst(t)}getMemoryMap(){return v}showHelp(){return"https://worldofspectrum.org/faq/reference/reference.htm"}};n.zx=h;
|
||||
//# sourceMappingURL=zx-DV3TCRWU.js.map
|
||||
import{J as p,r as c}from"./chunk-Z5TYMA6U.js";import{H as n,M as i}from"./chunk-6HNEHZRR.js";import"./chunk-RQFURXHW.js";var o=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,i.KeyUp)}advanceFrame(t){var a=this.probe!=null;a&&this.exports.machine_reset_probe_buffer();var s=super.advanceFrameClock(t,Math.floor(35e5/50));return a&&this.copyProbeData(),s}getCPUState(){this.exports.machine_save_cpu_state(this.sys,this.cpustateptr);var t=this.cpustatearr,a=t[9]+(t[8]<<8),s=t[10]+(t[11]<<8),e=t[12]+(t[13]<<8),r=t[14]+(t[15]<<8),x=t[24]+(t[25]<<8),l=t[26]+(t[27]<<8),u=t[28]+(t[29]<<8),m=t[34]+(t[35]<<8),d=t[36]+(t[37]<<8);return{PC:m,SP:x,AF:a,BC:r,DE:e,HL:s,IX:u,IY:l,IR:d,o:this.readConst(m)}}saveState(){return this.exports.machine_save_state(this.sys,this.stateptr),{c:this.getCPUState(),state:this.statearr.slice(0)}}loadState(t){this.statearr.set(t.state),this.exports.machine_load_state(this.sys,this.stateptr)}getVideoParams(){return{width:320,height:256,overscan:!0,videoFrequency:50}}setKeyInput(t,a,s){if(!(t==16||t==17||t==18||t==224)){var e=0,r=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,r=4),t==87&&(t=87,r=1),t==68&&(t=68,r=8),t==83&&(t=83,r=2),t==69&&(r=16),t==113&&(t=241),t==115&&(t=243),t==119&&(t=245),t==121&&(t=247),s&i.KeyDown?(this.exports.machine_key_down(this.sys,t),this.joymask0|=e):s&i.KeyUp&&(this.exports.machine_key_up(this.sys,t),this.joymask0&=~e),this.exports.zx_joystick(this.sys,this.joymask0,0)}}};var M=[{id:"hello.asm",name:"Hello World (ASM)"},{id:"bios.c",name:"BIOS Routines (C)"},{id:"cosmic.c",name:"Cosmic Impalas (C)"}],v={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:65368-23755,type:"ram"}]},h=class extends p{newMachine(){return new o("zx")}getPresets(){return M}getDefaultExtension(){return".asm"}readAddress(t){return this.machine.readConst(t)}getMemoryMap(){return v}showHelp(){return"https://worldofspectrum.org/faq/reference/reference.htm"}};n.zx=h;
|
||||
//# sourceMappingURL=zx-BGO4TE77.js.map
|
30
presets/c64/cartheader.acme
Normal file
30
presets/c64/cartheader.acme
Normal file
@ -0,0 +1,30 @@
|
||||
|
||||
* = $7ffe
|
||||
; 2-byte load address for ROM image
|
||||
!word $8000
|
||||
; http://swut.net/c64cart-howto.html
|
||||
; https://codebase64.org/doku.php?id=base:assembling_your_own_cart_rom_image
|
||||
!word CartKReset ; cold start vector
|
||||
!word CartWStart ; warm start vector
|
||||
!byte $c3, $c2, $cd, $38, $30 ; "CBM80"
|
||||
CartKReset
|
||||
STX $D016 ; Turn on VIC for PAL / NTSC check
|
||||
JSR $FDA3 ; IOINIT - Init CIA chips
|
||||
JSR $FD50 ; RANTAM - Clear/test system RAM
|
||||
JSR $FD15 ; RESTOR - Init KERNAL RAM vectors
|
||||
JSR $FF5B ; CINT - Init VIC and screen editor
|
||||
CLI ; Re-enable IRQ interrupts
|
||||
CartBReset
|
||||
; init BASIC?
|
||||
!ifdef CART_INIT_BASIC {
|
||||
JSR $E453 ; Init BASIC RAM vectors
|
||||
JSR $E3BF ; Main BASIC RAM Init routine
|
||||
JSR $E422 ; Power-up message / NEW command
|
||||
LDX #$FB
|
||||
TXS ; Reduce stack pointer for BASIC
|
||||
; don't init BASIC, just NOP
|
||||
} else {
|
||||
!fill 12, $ea ; nop
|
||||
}
|
||||
CartWStart
|
||||
; should be * = $x025
|
42
presets/c64/hello.acme
Normal file
42
presets/c64/hello.acme
Normal file
@ -0,0 +1,42 @@
|
||||
|
||||
!src "cartheader.acme"
|
||||
|
||||
!address {
|
||||
Temp = $02
|
||||
}
|
||||
|
||||
Start:
|
||||
sei ; turn off interrupts
|
||||
ldy #0
|
||||
Loop:
|
||||
lda Message,y ; load message byte
|
||||
beq EOM ; 0 = end of string
|
||||
clc
|
||||
adc #$40
|
||||
sta $400+41,y ; store to screen
|
||||
iny
|
||||
bne Loop ; next character
|
||||
EOM:
|
||||
|
||||
Wait1:
|
||||
lda $d011
|
||||
bmi Wait1 ; wait for line < 256
|
||||
Wait2:
|
||||
lda $d012 ; get current scanline
|
||||
Wait3:
|
||||
cmp $d012
|
||||
beq Wait3 ; wait for scanline to change
|
||||
lsr ; divide by 2
|
||||
lsr ; divide by 2
|
||||
clc
|
||||
adc Temp ; add to frame counter
|
||||
sta $d020 ; set border color
|
||||
lda $d011 ; get status bits
|
||||
bpl Wait2 ; repeat until line >= 256
|
||||
sty $d020 ; reset border color
|
||||
dec Temp ; change frame counter
|
||||
jmp Wait1 ; endless loop
|
||||
|
||||
Message:
|
||||
!scr "HELLO WORLD", 0
|
||||
|
16
presets/c64/helloc.c
Normal file
16
presets/c64/helloc.c
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <conio.h>
|
||||
#include <c64.h>
|
||||
#include <cbm_petscii_charmap.h>
|
||||
|
||||
void main(void) {
|
||||
clrscr(); // clear screen
|
||||
puts("Hello World!\n"); // write message at cursor
|
||||
chline(12); // horizontal line
|
||||
bordercolor(COLOR_LIGHTBLUE); // set color to blue
|
||||
bgcolor(COLOR_GREEN); // set background color
|
||||
textcolor(COLOR_YELLOW); // set text color
|
||||
puts("\nThis text is yellow!\n"); // write message
|
||||
cgetc(); // wait for input
|
||||
}
|
29
presets/c64/screen_ram.c
Normal file
29
presets/c64/screen_ram.c
Normal file
@ -0,0 +1,29 @@
|
||||
|
||||
#include "common.h"
|
||||
//#link "common.c"
|
||||
|
||||
#include <cbm_screen_charmap.h>
|
||||
|
||||
void main(void) {
|
||||
unsigned int i;
|
||||
|
||||
clrscr(); // clear the screen
|
||||
|
||||
POKE(0x400, 'A'); // write to first byte of screen memory
|
||||
POKE(0x400, 65); // character code for 'A'
|
||||
POKE(0x400 + 40*24 + 39, 'Z'); // row 24, column 39
|
||||
|
||||
// fill with random characters
|
||||
for (i=0; i<40*25; i++)
|
||||
POKE(0x400 + i, 205 + (rand() & 1));
|
||||
|
||||
// set character set to uppercase + graphics characters
|
||||
SET_VIC_BITMAP(0x1000);
|
||||
|
||||
// set color map underlying characters
|
||||
for (i=0; i<40*25; i++)
|
||||
COLOR_RAM[i] = COLOR_GREEN;
|
||||
|
||||
// infinite loop (avoid "ready" prompt)
|
||||
while (1);
|
||||
}
|
@ -13,14 +13,15 @@
|
||||
#include <lz4.h>
|
||||
|
||||
// include the LZ4 binary data -> image_c64_multi_lz4[]
|
||||
|
||||
//#incbin "image-c64.multi.lz4"
|
||||
const char image_c64_multi_lz4[] = {
|
||||
#embed "image-c64.multi.lz4"
|
||||
};
|
||||
|
||||
/*
|
||||
CharData equ .
|
||||
ScreenData equ CharData+8000
|
||||
ColorData equ ScreenData+1000
|
||||
XtraData equ ColorData+1000
|
||||
CharData 8000 bytes
|
||||
ScreenData 1000 bytes
|
||||
ColorData 1000 bytes
|
||||
XtraData 2 bytes
|
||||
*/
|
||||
|
||||
void main() {
|
||||
|
@ -158,6 +158,7 @@ export interface Preset {
|
||||
name : string;
|
||||
chapter? : number;
|
||||
title? : string;
|
||||
category?: string;
|
||||
}
|
||||
|
||||
export interface MemoryBus {
|
||||
|
@ -189,12 +189,12 @@ export class CodeProject {
|
||||
} else {
|
||||
// for .asm -- [.%]include "file"
|
||||
// for .c -- #include "file"
|
||||
let re2 = /^\s*[.#%]?(include|incbin)\s+"(.+?)"/gmi;
|
||||
let re2 = /^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi;
|
||||
while (m = re2.exec(text)) {
|
||||
this.pushAllFiles(files, m[2]);
|
||||
}
|
||||
// for .c -- //#resource "file" (or ;resource or #resource)
|
||||
let re3 = /^\s*([;']|[/][/])#(resource|incbin)\s+"(.+?)"/gm;
|
||||
let re3 = /^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm;
|
||||
while (m = re3.exec(text)) {
|
||||
this.pushAllFiles(files, m[3]);
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user