1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-06-30 01:29:30 +00:00
8bitworkshop/gen/williams-COVM7SRF.js

4 lines
6.4 KiB
JavaScript

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