1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-07-03 05:29:37 +00:00
8bitworkshop/gen/williams-IBMGLSIR.js

4 lines
6.5 KiB
JavaScript

import{B as d0,D as _0,d as l0,i as v0}from"./chunk-5KW3VA4L.js";import"./chunk-5B4VPQ4V.js";import{I as K,O as s0,Q as C,S as u0,U as t,W as m0,X as G,Z as H,_,g as o}from"./chunk-ZDSSTLWD.js";import"./chunk-5XVCUSSZ.js";var A0=[{id:"gfxtest.c",name:"Graphics Test"},{id:"sprites.c",name:"Sprite Test"},{id:"game1.c",name:"Raster Paranoia Game"},{id:"bitmap_rle.c",name:"RLE Bitmap"}],q=function(h,p,u){var a=this;this.__proto__=new(p||_0),u=u||{};for(var R=u==null?void 0:u.isDefender,y=304,L=256,c,m,x,w,X=0,P=0,S,E=!1,d=new C(8).mem,l=new C(8).mem,v,M,W,O,V=!1,g,A,D,b,Y,h0=12e6,Z=h0/3/4,j=Z/60,J=1,N=8,K0=4293848814,L0=4278190080,p0=G([[t.A,4,1],[t.RIGHT,4,2],[t.B,4,4],[t.VK_X,4,8],[t.P2_START,4,16],[t.START,4,32],[t.LEFT,4,64],[t.DOWN,4,128],[t.UP,6,1],[t.SELECT,0,4],[t.VK_7,0,1],[t.VK_8,0,2],[t.VK_9,0,8]]),w0=G([[t.P2_UP,0,1],[t.P2_DOWN,0,2],[t.P2_LEFT,0,4],[t.P2_RIGHT,0,8],[t.START,0,16],[t.P2_START,0,32],[t.UP,0,64],[t.DOWN,0,128],[t.LEFT,2,1],[t.RIGHT,2,2],[t.VK_7,4,1],[t.VK_8,4,2],[t.VK_6,4,4],[t.VK_9,4,8],[t.SELECT,4,16]]),P0=R?p0:w0,T=[],U=0;U<16;U++)T[U]=4278190080;this.getPresets=function(){return A0};var b0=_([[1024,1535,511,function(e){return w.mem[e]}],[2048,2048,0,function(e){return A}],[3072,3079,7,function(e){return d[e]}],[0,4095,0,function(e){}]]),R0=_([[0,15,15,r0],[1020,1023,0,function(e,r){r==56&&(S=N),E=!0}],[1024,1535,511,function(e,r){w.mem[e]=r}],[3074,3074,1,function(e,r){b&&b.postMessage({command:r&63})}],[3072,3079,7,function(e,r){d[e]=r}],[0,4095,0,function(e,r){console.log("iowrite",o(e),o(r))}]]),Q=_([[0,49151,65535,function(e){return m.mem[e]}],[49152,53247,4095,function(e){switch(P){case 0:return b0(e);case 1:return x[e+12288];case 2:return x[e+16384];case 3:return x[e+20480];case 7:return x[e+24576];default:return 0}}],[53248,65535,65535,function(e){return x?x[e-53248]:0}]]),S0=_([[0,38911,0,f0],[38912,49151,0,function(e,r){m.mem[e]=r}],[49152,53247,4095,R0],[53248,57343,0,function(e,r){P=r&7}],[0,65535,0,function(e,r){console.log(o(e),o(r))}]]),M0=_([[2052,2055,3,function(e){return d[e]}],[2060,2063,3,function(e){return d[e+4]}],[2816,3071,0,function(e){return A}],[3072,4095,1023,function(e){return w.mem[e]}],[0,4095,0,function(e){}]]),T0=_([[0,15,15,r0],[2060,2060,15,function(e,r){b&&b.postMessage({command:r})}],[2304,2559,0,function(e,r){P=r&1}],[2560,2567,7,E0],[3071,3071,0,function(e,r){r==57&&(S=N,E=!0)}],[3072,4095,1023,function(e,r){w.mem[e]=r}]]),C0=_([[0,36863,65535,function(e){return P?x[e]:m.mem[e]}],[36864,49151,65535,function(e){return m.mem[e]}],[49152,53247,4095,M0],[53248,65535,65535,function(e){return x?x[e-16384]:0}]]),y0=_([[0,38911,0,f0],[38912,49151,0,function(e,r){m.mem[e]=r}],[49152,53247,4095,T0]]),k=R?Q:C0,e0=R?S0:y0;function r0(e,r){var f=4278190080|(r&7)<<5|(r>>3&7)<<13|r>>6<<22;f!=T[e]&&(T[e]=f,V=!0)}function f0(e,r){m.mem[e]=r,t0(e,r),O&&(O[e]=c.getPC())}function t0(e,r){var f=(e&65280)<<1|e&255^255;W[f]=T[r>>4],W[f+256]=T[r&15]}function E0(e,r){if(e)l[e]=r;else{var f=O0(r);this.waitCycles-=f*J}}function O0(e){e&=255;var r=y-l[7],f=(l[2]<<8)+l[3],n=(l[4]<<8)+l[5],s=l[6]^4,i=l[7]^4;s==0&&s++,i==0&&i++,i==255&&i++;for(var F=e&1?256:1,i0=e&1?1:s,g0=e&2?256:1,a0=e&2?1:s,B=0,x0=0;x0<i;x0++){for(var z=f&65535,I=n&65535,o0=0;o0<s;o0++){var c0=k(z);e&32?(B=B<<8|c0,n0(I,B>>4&255,e)):n0(I,c0,e),z+=F,z&=65535,I+=g0,I&=65535}e&2?n=n&65280|n+a0&255:n+=a0,e&1?f=f&65280|f+i0&255:f+=i0}return s*i*(2+((e&4)>>2))}function n0(e,r,f){var n=e<49152?m.mem[e]:k(e),s=l[1],i=255;f&8&&!(r&240)?f&128&&(i&=15):f&128||(i&=15),f&8&&!(r&15)?f&64&&(i&=240):f&64||(i&=240),n&=i,f&16?n|=s&~i:n|=r&~i,e<38912&&e0(e,n)}this.start=function(){m=new C(49152),w=new C(1024),x=new Uint8Array(49152),g={read:k,write:e0},this.readAddress=g.read;var e={read:function(n){return 0},write:function(n,s){console.log(o(n),o(s))}};c=a.newCPU(g,e),D=new l0,b=new Worker("./src/common/audio/z80worker.js"),Y=new v0(b),D.master.addChannel(Y);let r=(u==null?void 0:u.rotate)==null?-90:parseFloat(u.rotate);v=new s0(h,L,y,{rotate:r}),v.create(),$(v.canvas).click(function(n){var s=Math.floor(n.offsetX*v.canvas.width/$(v.canvas).width()),i=Math.floor(n.offsetY*v.canvas.height/$(v.canvas).height()),F=(s>>3)+i*32+1024;O&&console.log(s,i,o(F,4),"PC",o(O[F],4))});var f=v.getFrameData();m0(v,d,P0),W=v.getFrameData(),M=new u0(60,this.nextFrame.bind(this))},this.getRasterScanline=function(){return A},this.advance=function(e){for(var r=Math.round(j/65),f=0;f<256;f+=4)A=f,(f==0||f==60||f==188||f==252)&&(g.read!=Q||d[7]==60)&&(c.interrupt&&c.interrupt(),c.requestInterrupt&&c.requestInterrupt()),this.runCPU(c,r),f<256&&v.updateFrame(0,0,256-4-f,0,4,304);if(this.runCPU(c,r*2),V&&!e){for(var n=0;n<38912;n++)t0(n,m.mem[n]);V=!1}E&&S--<=0&&(console.log("WATCHDOG FIRED, PC =",c.getPC().toString(16)),this.reset())},this.loadSoundROM=function(e){console.log("loading sound ROM "+e.length+" bytes");var r=H(e,16384);b.postMessage({rom:r})},this.loadROM=function(e,r){r.length>2&&(R?(a.loadSoundROM(r.slice(26624)),x=x.slice(0,26624)):r.length>49152?(a.loadSoundROM(r.slice(49152)),x=x.slice(0,49152)):r.length>36864&&r[36864]&&a.loadSoundROM(r.slice(36864)),x=H(r,49152)),a.reset()},this.loadState=function(e){c.loadState(e.c),m.mem.set(e.b),w.mem.set(e.nvram),d.set(e.pia),l.set(e.blt),S=e.wdc,P=e.bs,X=e.ps},this.saveState=function(){return{c:a.getCPUState(),b:m.mem.slice(0),nvram:w.mem.slice(0),pia:d.slice(0),blt:l.slice(0),wdc:S,bs:P,ps:X}},this.loadControlsState=function(e){d.set(e.pia)},this.saveControlsState=function(){return{pia:d.slice(0)}},this.getCPUState=function(){return c.saveState()},this.isRunning=function(){return M&&M.isRunning()},this.pause=function(){M.stop(),D.stop()},this.resume=function(){M.start(),D.start()},this.reset=function(){c.reset(),S=N,E=!1,P=1},this.scaleCPUFrequency=function(e){J=e,Z*=e,j*=e},this.getMemoryMap=function(){return{main:[{name:"Video RAM",start:0,size:49152,type:"ram"},{name:"I/O Registers",start:49152,size:4096,type:"io"}]}}},D0=function(h,p){this.__proto__=new q(h,null,p)},F0=function(h,p){this.__proto__=new q(h,d0,p),this.scaleCPUFrequency(4),this.ramStateToLongString=function(u){var a=u.blt,R=(a[2]<<8)+a[3],y=(a[4]<<8)+a[5],L=a[6]^4,c=a[7]^4;return`
BLIT `+o(R,4)+" "+o(y,4)+" w:"+o(L)+" h:"+o(c)+" f:"+o(a[0])+" s:"+o(a[1])}},I0=function(h,p){this.__proto__=new q(h,null,{isDefender:!0}),this.getMemoryMap=function(){return{main:[{name:"NVRAM",start:1024,size:512,type:"ram"},{name:"Video RAM",start:0,size:49152,type:"ram"},{name:"I/O Registers",start:49152,size:4096,type:"io"},{name:"ROM",start:53248,size:12288,type:"rom"}]}}};K.williams=D0;K["williams-defender"]=I0;K["williams-z80"]=F0;
//# sourceMappingURL=williams-IBMGLSIR.js.map