1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-05-28 23:41:32 +00:00
8bitworkshop/gen/vector-3SAHZLJR.js

3 lines
8.9 KiB
JavaScript

import{D as K,g as T,z as I}from"./chunk-VFG63MRQ.js";import{$ as y,J as R,Q as A,R as k,T as _,V as g,X as O,Y as E,_ as D}from"./chunk-JC7DT6V7.js";import"./chunk-5XVCUSSZ.js";var F=[{id:"font.c",name:"Vector Fonts"},{id:"threed.c",name:"3D Transformations"},{id:"game.c",name:"Space Game"},{id:"music.c",name:"POKEY Music"}],L=E([[g.B,3,255],[g.A,4,255],[g.SELECT,8,255],[g.VK_6,9,255],[g.VK_7,10,255],[g.START,11,255],[g.P2_START,12,255],[g.UP,13,255],[g.RIGHT,14,255],[g.LEFT,15,255]]),G=E([[g.B,1,-1],[g.A,1,-2],[g.VK_5,0,2],[g.VK_6,0,1],[g.START,2,32],[g.P2_START,2,64],[g.UP,1,-16],[g.DOWN,1,-32],[g.RIGHT,1,-4],[g.LEFT,1,-8]]),H=function(M){var C=12096e3,P=C/8,v=Math.round(P/(C/4096)),o=Math.round(P*12/(C/4096)),x=Math.round(P/60),s,h,u,w,p,d,f,m,i,t,l,e=0,n=new k(16).mem,b=o;this.__proto__=new I,this.getPresets=function(){return F},this.start=function(){h=new k(1024),u=new k(8192),d={read:y([[0,1023,1023,function(a){return h.mem[a]}],[8193,8193,0,function(a){return l/v&1?255:0}],[8192,8199,7,function(a){return n[a]}],[9216,9223,7,function(a){return n[a+8]}],[16384,20479,4095,function(a){return u.mem[a]}],[20480,24575,4095,function(a){return p[a]}],[26624,32767,0,function(a){return w?w[a-26624]:0}]],{gmask:32767}),write:y([[0,1023,1023,function(a,S){h.mem[a]=S}],[12288,12288,0,function(a,S){f.runUntilHalt(0)}],[13312,13312,0,function(a,S){e=0}],[16384,24575,8191,function(a,S){u.mem[a]=S}]],{gmask:32767})},this.readAddress=d.read,s=this.newCPU(d),m=new A(M,1024,1024),f=new W(d,m,16384),i=T(2),m.create(),t=new _(60,this.nextFrame.bind(this)),O(m,n,L)},this.advance=a=>{a||m.clear();var S=this.getDebugCallback();l=0;for(var r=0;r<x;r++){if(S&&S()){S=null;break}if(l++,--b==0){var c=s.setNMIAndWait();l+=c,b=o-c}s.clockPulse()}},this.loadROM=function(a,S){if(S.length!=8192)throw Error("ROM length must be == 0x2000");w=S.slice(0,6144),p=S.slice(6144,8192),this.reset()},this.isRunning=function(){return t&&t.isRunning()},this.pause=function(){t.stop(),i.stop()},this.resume=function(){t.start(),i.start()},this.reset=function(){this.clearDebug(),s.reset()},this.loadState=function(a){s.loadState(a.c),h.mem.set(a.b),u.mem.set(a.db),n.set(a.sw),b=a.nmic},this.saveState=function(){return{c:s.saveState(),b:h.mem.slice(0),db:u.mem.slice(0),sw:n.slice(0),nmic:b}},this.loadControlsState=function(a){n.set(a.sw)},this.saveControlsState=function(){return{sw:n.slice(0)}},this.getCPUState=function(){return s.saveState()},this.getMemoryMap=function(){return{main:[{name:"Switches/POKEY I/O",start:30720,size:4096,type:"io"},{name:"DVG I/O",start:34816,size:256,type:"io"},{name:"EAROM",start:35072,size:256,type:"ram"}]}}},B=function(M){var C=12096e3,P=C/8,v=C/4096/12,o=Math.round(P/v),x=Math.round(P/60),s,h,u,w,p,d,f,m,i,t,l,e,n=new k(16).mem,b=o,a,S;this.__proto__=new I,this.getPresets=function(){return F},this.start=function(){h=new k(2048),u=new k(8192),m=new k(64),n[0]=0,n[1]=255,n[2]=0,d={read:y([[0,2047,2047,function(r){return h.mem[r]}],[8192,10239,2047,function(r){return u.mem[r]}],[10240,24575,32767,function(r){return p[r-10240]}],[30720,30720,0,function(r){return n[0]}],[32768,32768,0,function(r){return n[1]}],[34816,34816,0,function(r){return n[2]}],[35072,35072,0,function(r){return S}],[36864,65535,65535,function(r){return w?w[r-36864]:0}]]),write:y([[0,2047,2047,function(r,c){h.mem[r]=c}],[8192,10239,2047,function(r,c){u.mem[r]=c}],[10240,24575,32767,function(r,c){p[r-10240]=c}],[24576,26623,15,function(r,c){t.pokey1.setRegister(r,c)}],[26624,28671,15,function(r,c){t.pokey2.setRegister(r,c)}],[34816,34816,0,function(r,c){}],[34880,34880,0,function(r,c){f.runUntilHalt(0)}],[34944,34944,0,function(r,c){f.reset()}],[35008,35008,0,function(r,c){}],[35072,35072,0,function(r,c){c==9&&(S=m.mem[a]),c==12&&(m.mem[a]=S)}],[35136,35199,63,function(r,c){a=r,S=c}],[35200,35200,0,function(r,c){}]])},this.readAddress=d.read,s=this.newCPU(d),i=new A(M,1024,1024),f=new z(d,i,8192),t=T(2),i.create(),l=new _(60,this.nextFrame.bind(this)),O(i,n,G)},this.advance=r=>{r||i.clear();var c=this.getDebugCallback();e=0;for(var V=0;V<x;V++){if(c&&c()){c=null;break}if(e++,--b==0){var U=s.setIRQ();e+=U,b=o-U}s.clockPulse()}},this.loadROM=function(r,c){w=c.slice(0,28672),p=D(c.slice(28672),14336),this.reset()},this.isRunning=function(){return l&&l.isRunning()},this.pause=function(){l.stop(),t.stop()},this.resume=function(){l.start(),t.start()},this.reset=function(){this.clearDebug(),s.reset()},this.loadState=function(r){this.unfixPC(r.c),s.loadState(r.c),this.fixPC(r.c),h.mem.set(r.b),u.mem.set(r.db),n.set(r.sw),b=r.nmic},this.saveState=function(){return{c:this.getCPUState(),b:h.mem.slice(0),db:u.mem.slice(0),sw:n.slice(0),nmic:b}},this.loadControlsState=function(r){n.set(r.sw)},this.saveControlsState=function(){return{sw:n.slice(0)}},this.getCPUState=function(){return this.fixPC(s.saveState())}},Y=function(M,C){var P=4e6,v=Math.round(P/60),o,x,s,h,u,w,p,d,f,m,i=new k(16).mem,t=new k(16).mem;this.__proto__=new K,this.getPresets=function(){return F};function l(){var e=t[0]+(t[1]<<8)<<16>>16,n=t[2]<<24>>24,b=t[3]<<24>>24,a=n!=0?e/n:0;e+=n*b&65535,t[0]=e&255,t[1]=e>>8&255,t[4]=a&255,t[5]=a>>8&255}this.start=function(){x=new k(8192),s=new k(16384),i[0]=0,i[1]=255,i[2]=0,u={read:y([[0,32767,0,function(e){return h?h[e]:0}],[32768,32783,15,function(e){return i[e]}],[33024,33039,15,function(e){return t[e]}],[40960,57343,16383,function(e){return s.mem[e]}],[57344,65535,8191,function(e){return x.mem[e]}]]),write:y([[32768,32783,15,function(e,n){d.pokey1.setRegister(e,n)}],[32784,32799,15,function(e,n){d.pokey2.setRegister(e,n)}],[33024,33038,15,function(e,n){t[e]=n}],[33039,33039,0,function(e,n){l()}],[34880,34880,0,function(e,n){w.runUntilHalt(0)}],[34944,34944,0,function(e,n){w.reset()}],[35200,35200,0,function(e,n){i[14]=16}],[40960,57343,16383,function(e,n){s.mem[e]=n}],[57344,65535,8191,function(e,n){x.mem[e]=n}]])},this.readAddress=u.read,o=this.newCPU(u,u),p=new A(M,1024,1024),w=new z(u,p,40960),d=T(2),p.create(),f=new _(60,this.nextFrame.bind(this)),O(p,i,G)},this.advance=e=>{e||p.clear(),this.runCPU(o,v),o.interrupt(255),i[15]=i[15]+1&3,--i[14]<=0&&(console.log("WATCHDOG FIRED"),this.reset())},this.loadROM=function(e,n){h=D(n,32768),this.reset()},this.isRunning=function(){return f&&f.isRunning()},this.pause=function(){f.stop(),d.stop()},this.resume=function(){f.start(),d.start()},this.reset=function(){i[14]=16,o.reset()},this.loadState=function(e){o.loadState(e.c),x.mem.set(e.b),s.mem.set(e.db),i.set(e.sw),t.set(e.mr)},this.saveState=function(){return{c:o.saveState(),b:x.mem.slice(0),db:s.mem.slice(0),sw:i.slice(0),mr:t.slice(0)}},this.loadControlsState=function(e){i.set(e.sw)},this.saveControlsState=function(){return{sw:i.slice(0)}},this.getCPUState=function(){return o.saveState()},this.getMemoryMap=function(){return{main:[{name:"Switches/POKEY I/O",start:32768,size:256,type:"io"},{name:"Math Box I/O",start:33024,size:256,type:"io"},{name:"DVG I/O",start:34816,size:256,type:"io"},{name:"DVG RAM",start:40960,size:16384,type:"ram"}]}}},W=function(M,C,P){var v=0,o=0,x=0,s=0,h=[],u=!1;P&=65535;function w(f){f&=4095;var m=M.read(f*2+P)+(M.read(f*2+P+1)<<8);return m}function p(f,m){var i=f&1<<m;return f=f&(1<<m)-1,i?-f:f}this.reset=function(){v=0,s=7,u=!1},this.go=function(){this.reset(),u=!0},this.runUntilHalt=function(f){this.go(),v=f;for(var m=0;m<1e4&&u;m++)this.nextInstruction()};var d=[7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8];this.nextInstruction=function(){if(!!u){var f=w(v),m=f>>12;switch(v++,m){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:{var i=s+9-m,t=w(v++),l=t>>12,e=o+(p(t,10)<<7>>i),n=x+(p(f,10)<<7>>i);C.drawLine(o,x,e,n,l*32,7),o=e,x=n;break}case 10:{var t=w(v++);s=d[t>>12],o=t&1023,x=f&1023;break}case 11:u=!1;break;case 13:v=h.pop();break;case 12:h.push(v);case 14:v=f&4095;break;case 15:{var i=(f>>11&1)+(f>>2&2);i=s-i-1;var e=o+(p(f,2)<<7>>i),n=x+(p(f>>8,2)<<7>>i),l=f>>4&15;C.drawLine(o,x,e,n,l*32,7),o=e,x=n;break}}}}},z=function(M,C,P){var v=0,o=0,x=0,s=1,h,u,w,p=[],d=!1;P&=65535;function f(t){return t&=8191,M.read(t*2+P)+(M.read(t*2+P+1)<<8)}function m(t,l){var e=t&1<<l;return t=t&(1<<l)-1,e?t-(1<<l):t}function i(){return Math.random()*256&7}this.reset=function(){v=0,s=1,h=7,u=15,o=512,x=512,w=!1,d=!1},this.go=function(){this.reset(),d=!0},this.runUntilHalt=function(t){this.go(),v=t;for(var l=0;l<1e4&&d;l++)this.nextInstruction()},this.nextInstruction=function(){if(!!d){var t=f(v),l=t>>13;switch(v++,l){case 0:{var e=f(v++),n=e>>13;n==2&&(n=u);var b=o+Math.round(m(e,12)*s),a=x+Math.round(m(t,12)*s);w&&(h=i()),C.drawLine(o,x,b,a,n<<4,h),o=b,x=a;break}case 1:d=!1;break;case 2:{var b=o+Math.round(m(t,4)*s*2),a=x+Math.round(m(t>>8,4)*s*2),n=t>>5&7;n==2&&(n=u),w&&(h=i()),C.drawLine(o,x,b,a,n<<4,h),o=b,x=a;break}case 3:{if(t&4096){var S=(t>>8&7)+8,r=~t&255;s=(r<<16>>S)/32768}else h=t&7,u=t>>4&15,w=(t&2048)!=0;break}case 4:o=512,x=512;break;case 6:p.length==0||(v=p.pop());break;case 5:p.push(v);case 7:v==0?d=!1:v=t&8191;break}}}};R["vector-ataribw"]=H;R["vector-ataricolor"]=B;R["vector-z80color"]=Y;
//# sourceMappingURL=vector-3SAHZLJR.js.map