Deploying to gh-pages from @ sehugg/8bitworkshop@e576c4ec87 🚀

This commit is contained in:
sehugg committed 2026-09-06 08:56:15 +00:00
1 parent 3e6212fc8b
commit d68b0f8f2d
62 files changed
+821 -530

No files matched your search

+14
View File
@@ -0,0 +1,14 @@
import{K as D0,c as l0,d as m0,e as u0,k as h0,r as E0}from"./chunk-CZ7OSHSE.js";import{$ as x0,K as k,W as A,X as C0,Z as X0,aa as N,g,l as c0,m as B0,t as g0}from"./chunk-TYDI7JZQ.js";import"./chunk-KT7KMEQC.js";var I0=X0([[A.UP,16,1],[A.DOWN,16,2],[A.LEFT,16,4],[A.RIGHT,16,8],[A.A,16,16],[A.P2_UP,17,1],[A.P2_DOWN,17,2],[A.P2_LEFT,17,4],[A.P2_RIGHT,17,8],[A.P2_A,17,16],[A.VK_P,20,1],[A.VK_SLASH,20,2],[A.VK_X,20,4],[A.VK_MINUS,20,8],[A.VK_COMMA,20,16],[A.VK_EQUALS,20,32],[A.VK_O,21,1],[A.VK_L,21,2],[A.VK_9,21,4],[A.VK_6,21,8],[A.VK_3,21,16],[A.VK_PERIOD,21,32],[A.VK_I,22,1],[A.VK_K,22,2],[A.VK_8,22,4],[A.VK_5,22,8],[A.VK_2,22,16],[A.VK_0,22,32],[A.VK_U,23,1],[A.VK_J,23,2],[A.VK_7,23,4],[A.VK_4,23,8],[A.VK_1,23,16],[A.VK_BACK_SLASH,23,32]]),P0=2,R0=function(d){var f,t,i,o,U,X,W,i0,J;let G=d?320:160,K=d?204:102,s0=G>>2,b0=d?16383:4095,H0=256,v0=4293848814,y0=4278190080,p0=d?3:1,w0=.7;var n0=0,j=new Uint8Array(32),c=0,D=0,m=!1,Y=0,b=0,p=0,V=0,w=0,Q=K,T=new Uint32Array(8),H=new Uint8Array(8),Z=0,v=new Uint8Array(d?262:131),u=new Uint8Array(4),h=0,S=0,l=0,L=0,B=new Uint8Array(8),M=0;function Q0(){return f.scanline<Q&&f.getRasterX()<n0}function z(){l++,Q0()&&!(L++&p0)&&l++}function y(e,x){i[e]=x,z(),v[(e&b0)/s0|0]=1}function S0(e,x){for(var s=e*4+3,n=0;n<4;n++){var E=e%s0>=(b&63)?0:4;i0[s--]=T[E+(x&3)],x>>=2}}function a0(e){for(var x=e*G/4,s=0;s<G/4;s++)S0(x+s,i[x+s])}function d0(e,x){if(c&8){var s=0;m||(x>>=4);for(var n=0;n<4;n++){var E=x&1?D>>2&3:D&3;s|=E<<n*2,x>>=1}x=s,m=!m}if(c&4){if(h&4){var a=2*(~h&3);x=(u[3]>>a&3)<<6|(u[2]>>a&3)<<4|(u[1]>>a&3)<<2|(u[0]>>a&3)<<0}else u[h&3]=x;h++}else{var a=(c&3)<<1,s=x>>a|Y;Y=x<<8-a&255,x=s}if(c&64&&(x=(x&3)<<6|(x&12)<<2|(x&48)>>2|(x&192)>>6),c&48){var F=i[e],r=0;F&192&&x&192&&(r|=1),F&48&&x&48&&(r|=2),F&12&&x&12&&(r|=4),F&3&&x&3&&(r|=8),c&16&&(x|=F),c&32&&(x^=F),S=S&240|r|r<<4}y(e,x)}function _(e,x){H[e&7]=x&255,T[e&7]=F0[x&255],O()}function M0(){var e=b>>6}function O(){Z=K}function V0(){let e=B[0]|B[1]<<8,x=B[2]&63,s=B[3],n=M&255|B[4]<<8,E=B[5],a=B[6]+1,F,r=0,C=0,N0=l;r=0,(x&2)===0&&(r=1);function f0(){r&&(x&4)!==0&&(F!==0||(x&8)===0)&&e++,(x&2)!==0&&(r^=1)}function o0(){F!==0&&((x&32)!==0?n++:n--)}for(;a>=0;){let q;for(F=E;F>=0;){let $,e0;$=(x&1)===0?e:n,F===0&&(x&8)!==0?e0=0:e0=o.read(e),(x&1)===0?f0():o0(),$=(x&1)!==0?e:n,y($,e0),(x&1)===0?o0():f0(),C+=4,F--}q=(n&255)+s&256,n=n&65280|n+s&255,(x&16)===0?n+=q:n-=q^256,a--}l=N0+C}this.drawScanline=e=>{e==V&&p&8&&(t.retryInterrupts=!(p&4),this.probe&&this.probe.logInterrupt(w),t.interrupt(w)),e<K&&Z>0?(v[e]=0,a0(e),Z--):v[e]&&(v[e]=0,a0(e))},this.init=(e,x,s,n,E)=>{f=e,n0=e.cpuCyclesPerLine*w0,t=x,i=s,j=n,J=E,d?o={read:N([[16384,32767,16383,function(F){return z(),i[F]}],[53248,57343,4095,function(F){return i[F+16384]}],[0,16383,16383,function(F){return X?X[F]:0}],[32768,49151,16383,function(F){return X?X[F+16384]:0}]]),write:N([[16384,32767,16383,y],[0,16383,16383,d0],[53248,57343,4095,function(F,r){i[F+16384]=r}]])}:(W=x0(new c0().decode(B0(atob(G0))),8192),o={read:N([[0,8191,8191,function(F){return W[F]}],[8192,16383,8191,function(F){return X?X[F]:0}],[16384,20479,4095,function(F){return z(),i[F]}]]),write:N([[16384,20479,4095,y],[0,16383,4095,d0]])}),U={read:function(F){F&=31;var r;switch(F){case 8:r=S,S=0;break;default:r=j[F];break}return r},write:function(F,r){if(F!=42331){if(F&=255,F>120&&F<128){B[F&7]=r,F==114&&(M=0),F==116&&(M=M+B[3]&255),F==126&&V0();return}switch(F&=31,r&=255,F){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:_(F,r);break;case 9:b=r,M0(),O();break;case 10:Q=d?r:r>>1,O();break;case 11:var C=t.saveState();_((C.BC>>8)-1,o.read(C.HL));break;case 12:c=r,Y=0,h=0,m=!1;break;case 13:w=r;break;case 14:p=r;break;case 15:V=d?r:r>>1;break;case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:J.setACRegister(F,r);break;case 24:var C=t.saveState();J.setACRegister((C.BC>>8)-1,o.read(C.HL));break;case 25:D=r;break;case 26:case 27:case 28:case 29:case 30:break;default:break}}}},e.connectCPUMemoryBus(o),e.connectCPUIOBus(U),this.membus=o,this.iobus=U;for(var a=0;a<8;a++)_(a,a)},this.resetWaitStates=function(){var e=l;return l=0,e},this.peek=function(e){var x=l,s=o.read(e);return l=x,s},this.loadState=e=>{t.loadState(e.c),i.set(e.ram),T.set(e.palette),H.set(e.palinds),c=e.magicop,D=e.xpand,m=e.xplower,Y=e.shift2,b=e.horcb,p=e.inmod,V=e.inlin,w=e.infbk,Q=e.verbl,h=e.rotcount,u.set(e.rotdata),S=e.intst,L=e.slotphase|0,j.set(e.inputs),B.set(e.patboard),M=e.patdest,O()},this.saveState=()=>({c:t.saveState(),ram:i.slice(0),inputs:j.slice(0),palette:T.slice(0),palinds:H.slice(0),magicop:c,xpand:D,xplower:m,shift2:Y,horcb:b,inmod:p,inlin:V,infbk:w,verbl:Q,rotcount:h,rotdata:u.slice(0),intst:S,slotphase:L,patboard:B.slice(0),patdest:M}),this.reset=()=>{c=D=p=V=w=Y=b=0,Q=K,m=!1},this.toLongString=e=>{var x="";x+=`
INLIN: `+e.inlin,x+=`
VERBL: `+e.verbl,x+=`
MAGICOP: $`+g(e.magicop),x+=`
XPAND: $`+g(e.xpand),x+=`
XPLOWER: `+e.xplower,x+=`
SHIFT2: $`+g(e.shift2),x+=`
HORCB: $`+g(e.horcb),x+=`
INMOD: $`+g(e.inmod),x+=`
INFBK: $`+g(e.infbk),x+=`
INTST: $`+g(e.intst),x+=`
Palette: `;for(var s=0;s<8;s++)x+=g(H[s]);return x+=`
`,x},this.connectVideo=function(e){i0=e},this.loadROM=function(e){X=e},this.loadBIOS=function(e){W=e},this.getVisiblePixelWords=function(){return Q*G}},P=class extends E0{constructor(t){super();this.cpuFrequency=1789e3;this.arcade=t,this.cpu=new l0,this.psg=new t0(new m0),this.numTotalScanlines=t?262:131;var i=P0*(t?1:2);this.sampleRate=60*this.numTotalScanlines*i,this.audioadapter=new h0(this.psg.psg,i,this.sampleRate),this.handler=C0(this.inputs,I0),this.defaultROMSize=t?45056:8192,this.ram=new Uint8Array(t?20480:4096),this.numVisibleScanlines=t?204:102,this.canvasWidth=t?320:160,this.cpuCyclesPerLine=this.cpuFrequency/(60*this.numVisibleScanlines*1.286)|0,this.m=new R0(t),this.m.init(this,this.cpu,this.ram,this.inputs,this.psg),t&&(this.inputs[16]=255,this.inputs[17]=255,this.inputs[18]=0,this.inputs[19]=8)}read(t){return this.m.peek(t)}write(t,i){this.m.membus.write(t,i)}connectVideo(t){super.connectVideo(t),this.frontbuffer=t,this.backbuffer=new Uint32Array(t.length),this.m.connectVideo(this.backbuffer)}preFrame(){this.m.resetWaitStates()}postFrame(){var t=this.m.getVisiblePixelWords();this.frontbuffer.set(this.backbuffer.slice(0,t),0),this.frontbuffer.fill(0,t)}setPaddleInput(t,i){switch(t){case 0:this.inputs[28]=i&255;break;case 1:this.inputs[29]=i&255;break}}startScanline(){this.audio&&this.audioadapter.generate(this.audio)}drawScanline(){var t=this.scanline;this.m.drawScanline(t)}advanceCPU(){var t=super.advanceCPU(),i=this.m.resetWaitStates();return i&&(t+=i,this.probe.logClocks(i)),t}loadROM(t){super.loadROM(t),this.m.loadROM(this.rom),this.reset()}loadBIOS(t){this.m.loadBIOS(x0(t,8192)),this.reset()}reset(){super.reset(),this.m.reset()}loadState(t){this.m.loadState(t)}saveState(){return this.m.saveState()}getDebugCategories(){return["CPU","Stack","Astro"]}getDebugInfo(t,i){switch(t){case"Astro":return this.m.toLongString(i)}}getRasterCanvasPosition(){return{x:this.getRasterX(),y:this.getRasterY()}}getVideoParams(){return this.arcade?{width:320,height:204,rotate:180}:{width:160,height:102}}},t0=class extends u0{setACRegister(f,t){switch(f&=7,t&=255,f){case 0:this.psg.setClock(1789e3*16/(t+1)),this.psg.writeRegisterAY(7,248);break;case 1:case 2:case 3:var i=(f-1)*2,o=t*2+1;this.psg.writeRegisterAY(i,o&255),this.psg.writeRegisterAY(i+1,o>>8&255);break;case 5:this.psg.writeRegisterAY(10,t&15);break;case 6:this.psg.writeRegisterAY(8,t&15),this.psg.writeRegisterAY(9,t>>4&15);break}}},F0=[0,2368548,4737096,7171437,9539985,11974326,14342874,16777215,2425019,4784352,7213567,9582079,12016383,14384895,16753663,16762879,4784304,7143637,9568761,11937279,14306047,16740095,16749311,16758783,6946975,9306307,11731175,14096639,16465151,16736767,16745983,16755199,8847495,11206827,13631696,15994612,16724735,16733951,16743423,16752639,10420330,12779662,15138995,16713687,16723195,16732415,16741631,16751103,11534409,13959277,16318610,16713142,16722394,16731647,16741119,16750335,12255269,14680137,16711790,16713362,16722615,16732123,16741375,16750847,12517376,14876708,16711752,16714605,16724113,16733366,16742874,16752127,12255232,14680064,16711715,16716871,16726380,16735632,16745141,16754393,11534336,13959168,16318464,16720164,16729416,16738924,16748177,16757685,10420224,12779520,15141888,16723971,16733479,16742731,16752240,16761492,8847360,11206656,13639168,16007680,16738058,16747310,16756563,16766071,6946816,9309440,11743488,14112256,16480768,16752151,16761659,16770911,4784128,7151872,9585920,11954688,14323200,16757509,16766761,16776270,2429184,4797696,7232e3,9600512,12034816,14403328,16771870,16777027,9472,2377984,4746496,7180800,9549312,11983616,14352155,16777023,14080,23296,2326528,4695040,7129344,9497856,11927326,14286659,18176,27648,36864,2405376,4774144,7142661,9568041,11927374,21760,30976,40192,246272,2614784,4980503,7405371,9764703,24320,33536,43008,52224,716810,3079982,5504851,7864183,25856,35328,44544,53763,63271,1572683,3932016,6291348,26624,35840,45312,54564,63816,393068,2752401,5177269,26112,35584,44835,54343,63596,65424,2031541,4456409,24832,34084,43592,52845,62353,65462,1834970,4194302,22565,31817,41326,50578,60087,65499,2031615,4456447,19273,28781,38034,47542,56794,393215,2752511,5177343,15466,24718,34227,43479,52987,1569535,3932159,6291455,10887,20395,29648,38900,703743,3072255,5505023,7864319,6047,15299,24807,230655,2599167,4967935,7401983,9764863,688,10197,19449,2388223,4756735,7125503,9559551,11927551,187,5088,2308095,4676607,7110911,9479423,11913727,14282239];for(I=0;I<256;I++)Y0=F0[I],F0[I]=g0(Y0)|4278190080;var Y0,I;var G0="TFpHAAAgAAAAFHUyA4UHAUpdY2XzIQAgfv5Vyg0AwwAgMc5PzR4JIQUgfiNmb+kAZRrl9cXV3eX95SEAADnlzc4H4f3h3eHRwfHhyUztacnd5d1jEd053X4Gyw8mAN1+BN2OBSdvyxTd4ckBCwjts8kAQ15cJVJTOy83ODkqNDU2LTEyMysmMC49XRtuZR9lH2UeZQjD4ALD4QIgCAgBB2IToAQGAQU+FT9lAfv1xdXl/eUB1U8KPAIB1mWj12Wj2GWi/SHrT/00AP1+ANY8ICL9NgAAIexPNP0h40/9ywD+/SHtXQgWBCHuTzQ61E+3KBL9IepPYw23KAX9NQAYA82VCf3hXUIt7U1dRikOXUIktyhG3csERig5EdVPaSYAGX63KC4+1YFfPk/OAFch1U8GAAl+3YYFErcgF0H1HgHxBBgCyyMQ/P0h+l0CVrP9dwBjNz4MGLTd4cllASEP/+XNhwLxycn Line truncated
//# sourceMappingURL=astrocade-HHSBZP55.js.map
+7
View File
@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../src/machine/astrocade.ts", "../src/platform/astrocade.ts"],
"sourcesContent": ["\nimport { Z80, Z80State } from \"../common/cpu/ZilogZ80\";\nimport { BasicScanlineMachine, AcceptsPaddleInput, Bus } from \"../common/devices\";\nimport { KeyFlags, newAddressDecoder, padBytes, Keys, makeKeycodeMap, newKeyboardHandler } from \"../common/emu\";\nimport { TssChannelAdapter, MasterAudio, AY38910_Audio } from \"../common/audio\";\nimport { hex, rgb2bgr, lzgmini, stringToByteArray } from \"../common/util\";\n\n// http://metopal.com/projects/ballybook/doku.php\n\n// TODO: fix keys, more controllers, vibrato/noise, border color\n// http://atariage.com/forums/topic/251416-programming-the-bally-arcadeastrocade/\n// https://ballyalley.com/faqs/BPA%20Video%20Hardware%20FAQ/Bally_Professional_Arcade_Video_Hardware%20(2001)(Tony%20Miller).pdf\n// https://atariage.com/forums/topic/290858-notes-from-a-2019-interview-with-jamie-fenton/ (http://www.fentonia.com/bio/)\n// https://thehistoryofhowweplay.wordpress.com/2018/04/03/interview-tom-mchugh/\n// https://ballyalley.com/faqs/Programmers%20of%20the%20Astrocade%20Built-In%20Programs.txt\n\nconst ASTROCADE_KEYCODE_MAP = makeKeycodeMap([\n // player 1\n [Keys.UP, 0x10, 0x1],\n [Keys.DOWN, 0x10, 0x2],\n [Keys.LEFT, 0x10, 0x4],\n [Keys.RIGHT, 0x10, 0x8],\n [Keys.A, 0x10, 0x10],\n // player 2\n [Keys.P2_UP, 0x11, 0x1],\n [Keys.P2_DOWN, 0x11, 0x2],\n [Keys.P2_LEFT, 0x11, 0x4],\n [Keys.P2_RIGHT, 0x11, 0x8],\n [Keys.P2_A, 0x11, 0x10],\n // keypad $14\n [Keys.VK_P, 0x14, 0x1],\n [Keys.VK_SLASH, 0x14, 0x2],\n [Keys.VK_X, 0x14, 0x4],\n [Keys.VK_MINUS, 0x14, 0x8],\n [Keys.VK_COMMA, 0x14, 0x10],\n [Keys.VK_EQUALS, 0x14, 0x20],\n // keypad $15\n [Keys.VK_O, 0x15, 0x1],\n [Keys.VK_L, 0x15, 0x2],\n [Keys.VK_9, 0x15, 0x4],\n [Keys.VK_6, 0x15, 0x8],\n [Keys.VK_3, 0x15, 0x10],\n [Keys.VK_PERIOD, 0x15, 0x20],\n // keypad $16\n [Keys.VK_I, 0x16, 0x1],\n [Keys.VK_K, 0x16, 0x2],\n [Keys.VK_8, 0x16, 0x4],\n [Keys.VK_5, 0x16, 0x8],\n [Keys.VK_2, 0x16, 0x10],\n [Keys.VK_0, 0x16, 0x20],\n // keypad $17\n [Keys.VK_U, 0x17, 0x1],\n [Keys.VK_J, 0x17, 0x2],\n [Keys.VK_7, 0x17, 0x4],\n [Keys.VK_4, 0x17, 0x8],\n [Keys.VK_1, 0x17, 0x10],\n [Keys.VK_BACK_SLASH, 0x17, 0x20],\n]);\n\nconst audioOversample = 2;\n\nconst _BallyAstrocade = function(arcade:boolean) {\n\n var machine : BallyAstrocade;\n var cpu : Z80;\n var ram : Uint8Array;\n var membus, iobus : Bus;\n var rom, bios;\n var pixels;\n var psg;\n //var watchdog_counter;\n const swidth = arcade ? 320 : 160;\n const sheight = arcade ? 204 : 102;\n const swbytes = swidth >> 2;\n const samask = arcade ? 0x3fff : 0xfff;\n const INITIAL_WATCHDOG = 256;\n const PIXEL_ON = 0xffeeeeee;\n const PIXEL_OFF = 0xff000000;\n\n /*\n Screen RAM is DRAM shared by three requesters in priority order: DRAM refresh\n (blanking only, so it never costs the CPU), screen refresh, then Z80/Magic.\n CAS# free-runs, so memory timeslots are fixed and one Z80 M clock wide:\n\n - Every Z80 screen-RAM access takes at least T1,T2,Tw,T3 \u2014 \"A Z80 access cycle\n to this memory always results in at least one wait state\" \u2014 blanked or not.\n That's +1 over the usual 3 T-states.\n - During active video, the refresh wins the slot. Consumer mode fetches 1 byte\n (4 px) every 4 PX = every 2 M clocks \u2192 memory is unavailable half the time\n \u2192 50% of accesses eat a second wait state. Commercial/arcade fetches 4 bytes\n (16 px) every 8 PX = every 4 M clocks \u2192 unavailable \u00BC of the time \u2192 25% eat\n a second one.\n - The fetch only runs for the 40 (consumer) / 20 (arcade) reads per line \u2014 160\n px of the 63.5 \u00B5s line, \u224870%. Border and hblank are free, as is ROM and the\n arcade's separate scratch RAM board.\n */\n const REFRESH_SLOT_MASK = arcade ? 3 : 1;\n // the refresh reads 40 (consumer) or 20 (commercial) times per line, covering the\n // 160 displayed pixels of the 63.5 us line; the rest is border and hblank\n const ACTIVE_LINE_FRACTION = 0.7;\n var activecycles = 0; // = ACTIVE_LINE_FRACTION of a scanline, set by init()\n\n // state variables\n var inputs = new Uint8Array(0x20);\n var magicop = 0;\n var xpand = 0;\n var xplower = false;\n var shift2 = 0;\n var horcb = 0;\n var inmod = 0;\n var inlin = 0;\n var infbk = 0;\n var verbl = sheight;\n var palette = new Uint32Array(8);\n var palinds = new Uint8Array(8);\n var refreshlines = 0;\n var dirtylines = new Uint8Array(arcade ? 262 : 131);\n var rotdata = new Uint8Array(4);\n var rotcount = 0;\n var intst = 0;\n var waitstates = 0;\n var slotphase = 0;\n var patboard = new Uint8Array(0x08);\n var patdest = 0;\n\n // is the video refresh reading screen RAM at this point in the frame?\n function refreshing() : boolean {\n return machine.scanline < verbl && machine.getRasterX() < activecycles;\n }\n\n // charge the Z80 for one screen RAM (DRAM) bus cycle\n function screenwait() {\n waitstates++; // always at least one wait state\nLine truncated
"mappings": "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 truncated
"names": ["ASTROCADE_KEYCODE_MAP", "makeKeycodeMap", "Keys", "audioOversample", "_BallyAstrocade", "arcade", "machine", "cpu", "ram", "membus", "iobus", "rom", "bios", "pixels", "psg", "swidth", "sheight", "swbytes", "samask", "INITIAL_WATCHDOG", "PIXEL_ON", "PIXEL_OFF", "REFRESH_SLOT_MASK", "ACTIVE_LINE_FRACTION", "activecycles", "inputs", "magicop", "xpand", "xplower", "shift2", "horcb", "inmod", "inlin", "infbk", "verbl", "palette", "palinds", "refreshlines", "dirtylines", "rotdata", "rotcount", "intst", "waitstates", "slotphase", "patboard", "patdest", "refreshing", "screenwait", "ramwrite", "a", "v", "ramupdate", "ofs", "i", "lr", "refreshline", "y", "magicwrite", "v2", "pix", "sh", "oldv", "icpt", "setpalette", "ASTROCADE_PALETTE", "refreshall", "setbordercolor", "col", "xfer_patboard", "m_pattern_source", "m_pattern_mode", "m_pattern_skip", "m_pattern_dest", "m_pattern_width", "m_pattern_height", "curwidth", "u13ff", "cycles", "wsave", "incrementSource", "incrementDest", "carry", "busaddr", "busdata", "sl", "mach", "c", "r", "inp", "psgg", "newAddressDecoder", "padBytes", "lzgmini", "stringToByteArray", "ASTROLIBRE_BIOS_LZG", "addr", "rtn", "val", "n", "state", "st", "s", "hex", "data", "BallyAstrocade", "BasicScanlineMachine", "Z80", "AstrocadeAudio", "MasterAudio", "oversample", "TssChannelAdapter", "newKeyboardHandler", "nbytes", "controller", "value", "clk", "xtra", "category", "AY38910_Audio", "j", "x", "rgb2bgr", "ASTROLIBRE_BIOS_LZG", "ASTROCADE_PRESETS", "ASTROCADE_BIOS_PRESETS", "ASTROCADE_ARCADE_PRESETS", "BallyAstrocadePlatform", "BaseZ80MachinePlatform", "BallyAstrocade", "a", "BallyAstrocadeBIOSPlatform", "title", "rom", "BallyArcadePlatform", "PLATFORMS"]
}
-14
View File
@@ -1,14 +0,0 @@
import{K as m0,c as B0,d as g0,e as X0,k as C0,r as l0}from"./chunk-CZ7OSHSE.js";import{$ as q,K as k,W as A,X as c0,Z as o0,aa as N,g as o,l as d0,m as a0,t as f0}from"./chunk-TYDI7JZQ.js";import"./chunk-KT7KMEQC.js";var p0=o0([[A.UP,16,1],[A.DOWN,16,2],[A.LEFT,16,4],[A.RIGHT,16,8],[A.A,16,16],[A.P2_UP,17,1],[A.P2_DOWN,17,2],[A.P2_LEFT,17,4],[A.P2_RIGHT,17,8],[A.P2_A,17,16],[A.VK_P,20,1],[A.VK_SLASH,20,2],[A.VK_X,20,4],[A.VK_MINUS,20,8],[A.VK_COMMA,20,16],[A.VK_EQUALS,20,32],[A.VK_O,21,1],[A.VK_L,21,2],[A.VK_9,21,4],[A.VK_6,21,8],[A.VK_3,21,16],[A.VK_PERIOD,21,32],[A.VK_I,22,1],[A.VK_K,22,2],[A.VK_8,22,4],[A.VK_5,22,8],[A.VK_2,22,16],[A.VK_0,22,32],[A.VK_U,23,1],[A.VK_J,23,2],[A.VK_7,23,4],[A.VK_4,23,8],[A.VK_1,23,16],[A.VK_BACK_SLASH,23,32]]),h0=2,w0=function(f){var d,t,i,D,g,U,F0,W;let R=f?320:160,K=f?204:102,A0=R>>2,E0=f?16383:4095,N0=256,I0=4293848814,P0=4278190080;var j=new Uint8Array(32),B=0,E=0,X=!1,u=0,Y=0,b=0,M=0,p=0,w=K,H=new Uint32Array(8),y=new Uint8Array(8),J=0,T=new Uint8Array(f?262:131),C=new Uint8Array(4),l=0,Q=0,v=0,c=new Uint8Array(8),S=0;function V(e,x){t[e]=x,v++,T[(e&E0)/A0|0]=1}function u0(e,x){for(var s=e*4+3,n=0;n<4;n++){var m=e%A0>=(Y&63)?0:4;F0[s--]=H[m+(x&3)],x>>=2}}function r0(e){for(var x=e*R/4,s=0;s<R/4;s++)u0(x+s,t[x+s])}function i0(e,x){if(B&8){var s=0;X||(x>>=4);for(var n=0;n<4;n++){var m=x&1?E>>2&3:E&3;s|=m<<n*2,x>>=1}x=s,X=!X}if(B&4){if(l&4){var a=2*(~l&3);x=(C[3]>>a&3)<<6|(C[2]>>a&3)<<4|(C[1]>>a&3)<<2|(C[0]>>a&3)<<0}else C[l&3]=x;l++}else{var a=(B&3)<<1,s=x>>a|u;u=x<<8-a&255,x=s}if(B&64&&(x=(x&3)<<6|(x&12)<<2|(x&48)>>2|(x&192)>>6),B&48){var F=t[e],r=0;F&192&&x&192&&(r|=1),F&48&&x&48&&(r|=2),F&12&&x&12&&(r|=4),F&3&&x&3&&(r|=8),B&16&&(x|=F),B&32&&(x^=F),Q=Q&240|r|r<<4}V(e,x)}function Z(e,x){y[e&7]=x&255,H[e&7]=e0[x&255],O()}function Y0(){var e=Y>>6}function O(){J=K}function b0(){let e=c[0]|c[1]<<8,x=c[2]&63,s=c[3],n=S&255|c[4]<<8,m=c[5],a=c[6]+1,F,r=0,h=0;r=0,(x&2)===0&&(r=1);function s0(){r&&(x&4)!==0&&(F!==0||(x&8)===0)&&e++,(x&2)!==0&&(r^=1)}function n0(){F!==0&&((x&32)!==0?n++:n--)}for(;a>=0;){let L;for(F=m;F>=0;){let z,_;z=(x&1)===0?e:n,F===0&&(x&8)!==0?_=0:_=i.read(e),(x&1)===0?s0():n0(),z=(x&1)!==0?e:n,V(z,_),(x&1)===0?n0():s0(),h+=4,F--}L=(n&255)+s&256,n=n&65280|n+s&255,(x&16)===0?n+=L:n-=L^256,a--}}this.drawScanline=e=>{e==M&&b&8&&(d.retryInterrupts=!(b&4),this.probe&&this.probe.logInterrupt(p),d.interrupt(p)),e<K&&J>0?(T[e]=0,r0(e),J--):T[e]&&(T[e]=0,r0(e))},this.init=(e,x,s,n,m)=>{d=x,t=s,j=n,W=m,f?i={read:N([[16384,32767,16383,function(F){return t[F]}],[53248,57343,4095,function(F){return t[F+16384]}],[0,16383,16383,function(F){return g?g[F]:0}],[32768,49151,16383,function(F){return g?g[F+16384]:0}]]),write:N([[16384,32767,16383,V],[0,16383,16383,i0],[53248,57343,4095,function(F,r){V(F+16384,r)}]])}:(U=q(new d0().decode(a0(atob(Q0))),8192),i={read:N([[0,8191,8191,function(F){return U[F]}],[8192,16383,8191,function(F){return g?g[F]:0}],[16384,20479,4095,function(F){return v++,t[F]}]]),write:N([[16384,20479,4095,V],[0,16383,4095,i0]])}),D={read:function(F){F&=31;var r;switch(F){case 8:r=Q,Q=0;break;default:r=j[F];break}return r},write:function(F,r){if(F!=42331){if(F&=255,F>120&&F<128){c[F&7]=r,F==114&&(S=0),F==116&&(S=S+c[3]&255),F==126&&b0();return}switch(F&=31,r&=255,F){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:Z(F,r);break;case 9:Y=r,Y0(),O();break;case 10:w=f?r:r>>1,O();break;case 11:var h=d.saveState();Z((h.BC>>8)-1,i.read(h.HL));break;case 12:B=r,u=0,l=0,X=!1;break;case 13:p=r;break;case 14:b=r;break;case 15:M=f?r:r>>1;break;case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:W.setACRegister(F,r);break;case 24:var h=d.saveState();W.setACRegister((h.BC>>8)-1,i.read(h.HL));break;case 25:E=r;break;case 26:case 27:case 28:case 29:case 30:break;default:break}}}},e.connectCPUMemoryBus(i),e.connectCPUIOBus(D),this.membus=i,this.iobus=D;for(var a=0;a<8;a++)Z(a,a)},this.resetWaitStates=function(e){var x=e<w?v:0;return v=0,x},this.loadState=e=>{d.loadState(e.c),t.set(e.ram),H.set(e.palette),y.set(e.palinds),B=e.magicop,E=e.xpand,X=e.xplower,u=e.shift2,Y=e.horcb,b=e.inmod,M=e.inlin,p=e.infbk,w=e.verbl,l=e.rotcount,C.set(e.rotdata),Q=e.intst,j.set(e.inputs),c.set(e.patboard),S=e.patdest,O()},this.saveState=()=>({c:d.saveState(),ram:t.slice(0),inputs:j.slice(0),palette:H.slice(0),palinds:y.slice(0),magicop:B,xpand:E,xplower:X,shift2:u,horcb:Y,inmod:b,inlin:M,infbk:p,verbl:w,rotcount:l,rotdata:C.slice(0),intst:Q,patboard:c.slice(0),patdest:S}),this.reset=()=>{B=E=b=M=p=u=Y=0,w=K,X=!1},this.toLongString=e=>{var x="";x+=`
INLIN: `+e.inlin,x+=`
VERBL: `+e.verbl,x+=`
MAGICOP: $`+o(e.magicop),x+=`
XPAND: $`+o(e.xpand),x+=`
XPLOWER: `+e.xplower,x+=`
SHIFT2: $`+o(e.shift2),x+=`
HORCB: $`+o(e.horcb),x+=`
INMOD: $`+o(e.inmod),x+=`
INFBK: $`+o(e.infbk),x+=`
INTST: $`+o(e.intst),x+=`
Palette: `;for(var s=0;s<8;s++)x+=o(y[s]);return x+=`
`,x},this.connectVideo=function(e){F0=e},this.loadROM=function(e){g=e},this.loadBIOS=function(e){U=e},this.getVisiblePixelWords=function(){return w*R}},P=class extends l0{constructor(t){super();this.cpuFrequency=1789e3;this.numTotalScanlines=262;this.sampleRate=60*262*h0;this.arcade=t,this.cpu=new B0,this.psg=new $(new g0),this.audioadapter=new C0(this.psg.psg,h0,this.sampleRate),this.handler=c0(this.inputs,p0),this.defaultROMSize=t?45056:8192,this.ram=new Uint8Array(t?20480:4096),this.numVisibleScanlines=t?204:102,this.canvasWidth=t?320:160,this.cpuCyclesPerLine=this.cpuFrequency/(60*this.numVisibleScanlines*1.286)|0,this.m=new w0(t),this.m.init(this,this.cpu,this.ram,this.inputs,this.psg),t&&(this.inputs[16]=255,this.inputs[17]=255,this.inputs[18]=0,this.inputs[19]=8)}read(t){return this.m.membus.read(t)}write(t,i){this.m.membus.write(t,i)}connectVideo(t){super.connectVideo(t),this.frontbuffer=t,this.backbuffer=new Uint32Array(t.length),this.m.connectVideo(this.backbuffer)}preFrame(){this.m.resetWaitStates(0)}postFrame(){var t=this.m.getVisiblePixelWords();this.frontbuffer.set(this.backbuffer.slice(0,t),0),this.frontbuffer.fill(0,t)}setPaddleInput(t,i){switch(t){case 0:this.inputs[28]=i&255;break;case 1:this.inputs[29]=i&255;break}}startScanline(){this.audio&&this.audioadapter.generate(this.audio)}drawScanline(){var t=this.scanline;this.m.drawScanline(t)}advanceCPU(){var t=super.advanceCPU(),i=this.m.resetWaitStates(this.scanline);return i&&(t+=i,this.probe.logClocks(i)),t}loadROM(t){super.loadROM(t),this.m.loadROM(this.rom),this.reset()}loadBIOS(t){this.m.loadBIOS(q(t,8192)),this.reset()}reset(){super.reset(),this.m.reset()}loadState(t){this.m.loadState(t)}saveState(){return this.m.saveState()}getDebugCategories(){return["CPU","Stack","Astro"]}getDebugInfo(t,i){switch(t){case"Astro":return this.m.toLongString(i)}}getRasterCanvasPosition(){return{x:this.getRasterX(),y:this.getRasterY()}}getVideoParams(){return this.arcade?{width:320,height:204,rotate:180}:{width:160,height:102}}},$=class extends X0{setACRegister(d,t){switch(d&=7,t&=255,d){case 0:this.psg.setClock(1789e3*16/(t+1)),this.psg.writeRegisterAY(7,248);break;case 1:case 2:case 3:var i=(d-1)*2,D=t*2+1;this.psg.writeRegisterAY(i,D&255),this.psg.writeRegisterAY(i+1,D>>8&255);break;case 5:this.psg.writeRegisterAY(10,t&15);break;case 6:this.psg.writeRegisterAY(8,t&15),this.psg.writeRegisterAY(9,t>>4&15);break}}},e0=[0,2368548,4737096,7171437,9539985,11974326,14342874,16777215,2425019,4784352,7213567,9582079,12016383,14384895,16753663,16762879,4784304,7143637,9568761,11937279,14306047,16740095,16749311,16758783,6946975,9306307,11731175,14096639,16465151,16736767,16745983,16755199,8847495,11206827,13631696,15994612,16724735,16733951,16743423,16752639,10420330,12779662,15138995,16713687,16723195,16732415,16741631,16751103,11534409,13959277,16318610,16713142,16722394,16731647,16741119,16750335,12255269,14680137,16711790,16713362,16722615,16732123,16741375,16750847,12517376,14876708,16711752,16714605,16724113,16733366,16742874,16752127,12255232,14680064,16711715,16716871,16726380,16735632,16745141,16754393,11534336,13959168,16318464,16720164,16729416,16738924,16748177,16757685,10420224,12779520,15141888,16723971,16733479,16742731,16752240,16761492,8847360,11206656,13639168,16007680,16738058,16747310,16756563,16766071,6946816,9309440,11743488,14112256,16480768,16752151,16761659,16770911,4784128,7151872,9585920,11954688,14323200,16757509,16766761,16776270,2429184,4797696,7232e3,9600512,12034816,14403328,16771870,16777027,9472,2377984,4746496,7180800,9549312,11983616,14352155,16777023,14080,23296,2326528,4695040,7129344,9497856,11927326,14286659,18176,27648,36864,2405376,4774144,7142661,9568041,11927374,21760,30976,40192,246272,2614784,4980503,7405371,9764703,24320,33536,43008,52224,716810,3079982,5504851,7864183,25856,35328,44544,53763,63271,1572683,3932016,6291348,26624,35840,45312,54564,63816,393068,2752401,5177269,26112,35584,44835,54343,63596,65424,2031541,4456409,24832,34084,43592,52845,62353,65462,1834970,4194302,22565,31817,41326,50578,60087,65499,2031615,4456447,19273,28781,38034,47542,56794,393215,2752511,5177343,15466,24718,34227,43479,52987,1569535,3932159,6291455,10887,20395,29648,38900,703743,3072255,5505023,7864319,6047,15299,24807,230655,2599167,4967935,7401983,9764863,688,10197,19449,2388223,4756735,7125503,9559551,11927551,187,5088,2308095,4676607,7110911,9479423,11913727,14282239];for(I=0;I<256;I++)D0=e0[I],e0[I]=f0(D0)|4278190080;var D0,I;var Q0="TFpHAAAgAAAAFHUyA4UHAUpdY2XzIQAgfv5Vyg0AwwAgMc5PzR4JIQUgfiNmb+kAZRrl9cXV3eX95SEAADnlzc4H4f3h3eHRwfHhyUztacnd5d1jEd053X4Gyw8mAN1+BN2OBSdvyxTd4ckBCwjts8kAQ15cJVJTOy83ODkqNDU2LTEyMysmMC49XRtuZR9lH2UeZQjD4ALD4QIgCAgBB2IToAQGAQU+FT9lAfv1xdXl/eUB1U8KPAIB1mWj12Wj2GWi/SHrT/00AP1+ANY8ICL9NgAAIexPNP0h40/9ywD+/SHtXQgWBCHuTzQ61E+3KBL9IepPYw23KAX9NQAYA82VCf3hXUIt7U1dRikOXUIktyhG3csERig5EdVPaSYAGX63KC4+1YFfPk/OAFch1U8GAAl+3YYFErcgF0H1HgHxBBgCyyMQ/P0h+l0CVrP9dwBjNz4MGLTd4cllASEP/+XNhwLxycnB4eXFEQYAGUY+//UzxTNjj Line truncated
//# sourceMappingURL=astrocade-SQ7A55O6.js.map
-7
View File
@@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../src/machine/astrocade.ts", "../src/platform/astrocade.ts"],
"sourcesContent": ["\nimport { Z80, Z80State } from \"../common/cpu/ZilogZ80\";\nimport { BasicScanlineMachine, AcceptsPaddleInput, Bus } from \"../common/devices\";\nimport { KeyFlags, newAddressDecoder, padBytes, Keys, makeKeycodeMap, newKeyboardHandler } from \"../common/emu\";\nimport { TssChannelAdapter, MasterAudio, AY38910_Audio } from \"../common/audio\";\nimport { hex, rgb2bgr, lzgmini, stringToByteArray } from \"../common/util\";\n\n// http://metopal.com/projects/ballybook/doku.php\n\n// TODO: fix keys, more controllers, vibrato/noise, border color\n// http://atariage.com/forums/topic/251416-programming-the-bally-arcadeastrocade/\n// https://ballyalley.com/faqs/BPA%20Video%20Hardware%20FAQ/Bally_Professional_Arcade_Video_Hardware%20(2001)(Tony%20Miller).pdf\n// https://atariage.com/forums/topic/290858-notes-from-a-2019-interview-with-jamie-fenton/ (http://www.fentonia.com/bio/)\n// https://thehistoryofhowweplay.wordpress.com/2018/04/03/interview-tom-mchugh/\n// https://ballyalley.com/faqs/Programmers%20of%20the%20Astrocade%20Built-In%20Programs.txt\n\nconst ASTROCADE_KEYCODE_MAP = makeKeycodeMap([\n // player 1\n [Keys.UP, 0x10, 0x1],\n [Keys.DOWN, 0x10, 0x2],\n [Keys.LEFT, 0x10, 0x4],\n [Keys.RIGHT, 0x10, 0x8],\n [Keys.A, 0x10, 0x10],\n // player 2\n [Keys.P2_UP, 0x11, 0x1],\n [Keys.P2_DOWN, 0x11, 0x2],\n [Keys.P2_LEFT, 0x11, 0x4],\n [Keys.P2_RIGHT, 0x11, 0x8],\n [Keys.P2_A, 0x11, 0x10],\n // keypad $14\n [Keys.VK_P, 0x14, 0x1],\n [Keys.VK_SLASH, 0x14, 0x2],\n [Keys.VK_X, 0x14, 0x4],\n [Keys.VK_MINUS, 0x14, 0x8],\n [Keys.VK_COMMA, 0x14, 0x10],\n [Keys.VK_EQUALS, 0x14, 0x20],\n // keypad $15\n [Keys.VK_O, 0x15, 0x1],\n [Keys.VK_L, 0x15, 0x2],\n [Keys.VK_9, 0x15, 0x4],\n [Keys.VK_6, 0x15, 0x8],\n [Keys.VK_3, 0x15, 0x10],\n [Keys.VK_PERIOD, 0x15, 0x20],\n // keypad $16\n [Keys.VK_I, 0x16, 0x1],\n [Keys.VK_K, 0x16, 0x2],\n [Keys.VK_8, 0x16, 0x4],\n [Keys.VK_5, 0x16, 0x8],\n [Keys.VK_2, 0x16, 0x10],\n [Keys.VK_0, 0x16, 0x20],\n // keypad $17\n [Keys.VK_U, 0x17, 0x1],\n [Keys.VK_J, 0x17, 0x2],\n [Keys.VK_7, 0x17, 0x4],\n [Keys.VK_4, 0x17, 0x8],\n [Keys.VK_1, 0x17, 0x10],\n [Keys.VK_BACK_SLASH, 0x17, 0x20],\n]);\n\nconst audioOversample = 2;\n\nconst _BallyAstrocade = function(arcade:boolean) {\n\n var cpu : Z80;\n var ram : Uint8Array;\n var membus, iobus : Bus;\n var rom, bios;\n var pixels;\n var psg;\n //var watchdog_counter;\n const swidth = arcade ? 320 : 160;\n const sheight = arcade ? 204 : 102;\n const swbytes = swidth >> 2;\n const samask = arcade ? 0x3fff : 0xfff;\n const INITIAL_WATCHDOG = 256;\n const PIXEL_ON = 0xffeeeeee;\n const PIXEL_OFF = 0xff000000;\n\n // state variables\n var inputs = new Uint8Array(0x20);\n var magicop = 0;\n var xpand = 0;\n var xplower = false;\n var shift2 = 0;\n var horcb = 0;\n var inmod = 0;\n var inlin = 0;\n var infbk = 0;\n var verbl = sheight;\n var palette = new Uint32Array(8);\n var palinds = new Uint8Array(8);\n var refreshlines = 0;\n var dirtylines = new Uint8Array(arcade ? 262 : 131);\n var rotdata = new Uint8Array(4);\n var rotcount = 0;\n var intst = 0;\n var waitstates = 0;\n var patboard = new Uint8Array(0x08);\n var patdest = 0;\n\n function ramwrite(a: number, v: number) {\n // set RAM\n ram[a] = v;\n waitstates++;\n // mark scanline as dirty\n dirtylines[((a & samask) / swbytes) | 0] = 1;\n // this was old behavior where we updated instantly\n // but it had problems if we had mid-screen palette changes\n //ramupdate(a, v);\n }\n\n function ramupdate(a: number, v: number) {\n var ofs = a * 4 + 3; // 4 pixels per byte\n for (var i = 0; i < 4; i++) {\n var lr = ((a % swbytes) >= (horcb & 0x3f)) ? 0 : 4;\n pixels[ofs--] = palette[lr + (v & 3)];\n v >>= 2;\n }\n }\n\n function refreshline(y: number) {\n var ofs = y * swidth / 4;\n for (var i = 0; i < swidth / 4; i++)\n ramupdate(ofs + i, ram[ofs + i]);\n }\n\n function magicwrite(a: number, v: number) {\n // expand\n if (magicop & 0x8) {\n var v2 = 0;\n if (!xplower)\n v >>= 4;\n for (var i = 0; i < 4; i++) {\n var pix = (v & 1) ? ((xpand >> 2) & 3) : (xpand & 3);\n v2 |= pix << (i * 2);\n v >>= 1;\n }\n v = v2;\n xplower = !xplower;\n }\n // rotate\n if (magicop & 0x4) {\n if (rotcount & 4) {\n // drain buffer\n var sh = 2 * (~rotcount & 3);\n v = (((rotdata[3] >> sh) & 3) << 6) |\n (((rotdata[2] >> sh) & 3) << 4) |\n (((rotdata[1] >> sh) & 3) << 2) |\n (((rotdata[0] >> sh) & 3) << 0);\n } else {\n // fill buffer\n rotdata[rotcount & 3] = v;\n }\n rotcount++;\n } else {\n // shift\n var sh = (magicop & 3) << 1;\n var v2 = (v >> sh) | shift2;\n shift2 = (v << (8 - sh)) & 0xff;\n v = v2;\n }\n // flop\n if (magicop & 0x40) {\n v =\n ((v & 0x03) << 6) |\n Line truncated
"mappings": "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 truncated
"names": ["ASTROCADE_KEYCODE_MAP", "makeKeycodeMap", "Keys", "audioOversample", "_BallyAstrocade", "arcade", "cpu", "ram", "membus", "iobus", "rom", "bios", "pixels", "psg", "swidth", "sheight", "swbytes", "samask", "INITIAL_WATCHDOG", "PIXEL_ON", "PIXEL_OFF", "inputs", "magicop", "xpand", "xplower", "shift2", "horcb", "inmod", "inlin", "infbk", "verbl", "palette", "palinds", "refreshlines", "dirtylines", "rotdata", "rotcount", "intst", "waitstates", "patboard", "patdest", "ramwrite", "a", "v", "ramupdate", "ofs", "i", "lr", "refreshline", "y", "magicwrite", "v2", "pix", "sh", "oldv", "icpt", "setpalette", "ASTROCADE_PALETTE", "refreshall", "setbordercolor", "col", "xfer_patboard", "m_pattern_source", "m_pattern_mode", "m_pattern_skip", "m_pattern_dest", "m_pattern_width", "m_pattern_height", "curwidth", "u13ff", "cycles", "incrementSource", "incrementDest", "carry", "busaddr", "busdata", "sl", "machine", "c", "r", "inp", "psgg", "newAddressDecoder", "padBytes", "lzgmini", "stringToByteArray", "ASTROLIBRE_BIOS_LZG", "addr", "rtn", "val", "n", "state", "st", "s", "hex", "data", "BallyAstrocade", "BasicScanlineMachine", "Z80", "AstrocadeAudio", "MasterAudio", "TssChannelAdapter", "newKeyboardHandler", "nbytes", "controller", "value", "clk", "xtra", "category", "AY38910_Audio", "j", "x", "rgb2bgr", "ASTROLIBRE_BIOS_LZG", "ASTROCADE_PRESETS", "ASTROCADE_BIOS_PRESETS", "ASTROCADE_ARCADE_PRESETS", "BallyAstrocadePlatform", "BaseZ80MachinePlatform", "BallyAstrocade", "a", "BallyAstrocadeBIOSPlatform", "title", "rom", "BallyArcadePlatform", "PLATFORMS"]
}
@@ -1,4 +1,4 @@
import{b as S}from"./chunk-3FIVEUG2.js";import{u as E}from"./chunk-PUOMI72S.js";import"./chunk-UG4IOEUD.js";import"./chunk-LNOKARBD.js";import"./chunk-A7SWO6EA.js";import"./chunk-WEPPO4GD.js";import"./chunk-CZ7OSHSE.js";import{B as c,K as f,T as d,U as v,a as g}from"./chunk-TYDI7JZQ.js";import"./chunk-KT7KMEQC.js";function k(u){return u.value!=null}function y(u){return u.name!=null}function O(u){return u.op!=null&&u.left!=null&&u.right!=null}function N(u){return u.op!=null&&u.expr!=null}var m=class{randomize(){this.seed(Math.random()*2147483647,Math.random()*2147483647,Math.random()*2147483647,Math.random()*2147483647)}constructor(){(()=>{var r,e,i,n;this.seed=function(s,a,h,o){r=s,e=a,i=h,n=o},this.seedfloat=function(s){this.seed(s,s*4294,s*429496,s*4294967296),this.next(),this.next(),this.next()},this.next=function(){r>>>=0,e>>>=0,i>>>=0,n>>>=0;var s=r+e|0;return r=e^e>>>9,e=i+(i<<3)|0,i=i<<21|i>>>11,n=n+1|0,s=s+n|0,i=i+s|0,(s>>>0)/4294967296}})(),this.seedfloat(-1)}},I=1024*1024,l=class u{constructor(){this.margin=80;this.running=!1;this.exited=!0;this.trace=!1}load(t){let r=null,e=0;if(this.pc2label!=null){let s=this.curpc;for(;s>0&&(r=this.pc2label.get(s))==null;)s--;e=this.curpc-s,console.log("oldpc=",this.curpc,"restart @ label",r,"+",e)}this.program=t,this.opts=t.opts,this.opts.maxArrayElements||(this.opts.maxArrayElements=I),this.allstmts=t.stmts,this.label2pc=t.labels,this.label2dataptr={},this.pc2label=new Map,this.datums=[],this.subroutines={},this.builtins=this.getBuiltinFunctions();for(var i in t.labels){var n=t.labels[i];this.pc2label.set(n,i)}return this.allstmts.forEach((s,a)=>{this.curpc=a+1,this.compileStatement(s),s.command=="DATA"&&(this.label2dataptr[s.$loc.label]=this.datums.length,s.datums.forEach(h=>{this.curpc=s.$loc.offset,this.datums.push(h)}))}),this.label2pc[r]!=null?(this.curpc=this.label2pc[r]+e,!0):(this.curpc=0,!1)}reset(){this.curpc=0,this.dataptr=0,this.clearVars(),this.returnStack=[],this.column=0,this.running=!0,this.exited=!1}clearVars(){this.globals=this.vars={},this.arrays={},this.defs={},this.forLoops={},this.forLoopStack=[],this.whileLoops=[],this.rng=new m,this.opts&&this.opts.staticArrays&&this.allstmts.filter(t=>t.command=="DIM").forEach(t=>{t.args.forEach(r=>this.compileJS(this._DIM(r))())})}saveState(){return $.extend(!0,{},this)}loadState(t){$.extend(!0,this,t)}getBuiltinFunctions(){var t=this.program&&this.opts.validFunctions;t||(t=Object.getOwnPropertyNames(u.prototype).filter(i=>/^[A-Z]{3,}[$]?$/.test(i)));var r={};for(var e of t)this.supportsFunction(e)&&(r[e]=this[e].bind(this));return r}supportsFunction(t){return typeof this[t]=="function"}runtimeError(t){throw this.curpc--,new d(t,this.getCurrentSourceLocation())}dialectError(t){this.runtimeError(`I can't ${t} in this dialect of BASIC.`)}getLineForPC(t){var r=this.allstmts[t];return r&&r.$loc&&r.$loc.line}getLabelForPC(t){var r=this.allstmts[t];return r&&r.$loc&&r.$loc.label}getCurrentSourceLocation(){var t=this.getStatement();return t&&t.$loc}getCurrentLabel(){var t=this.getCurrentSourceLocation();return t&&t.label}getStatement(){return this.allstmts[this.curpc]}step(){if(!this.running)return!1;var t=this.getStatement();return t?(this.trace&&console.log(this.curpc,t,this.vars,Object.keys(this.arrays)),this.curpc++,this.executeStatement(t),this.running):(this.running=!1,this.exited=!0,!1)}compileStatement(t){if(t.$run==null)try{var r=this["do__"+t.command];r==null&&this.runtimeError(`I don't know how to "${t.command}".`);var e=r.bind(this)(t);this.trace&&console.log(e),t.$run=this.compileJS(e)}catch(i){throw e&&console.log(e),i}}compileJS(t){return new Function(t).bind(this)}executeStatement(t){this.compileStatement(t),t.$run()}skipToEOL(){do this.curpc++;while(this.curpc<this.allstmts.length&&!this.pc2label.get(this.curpc))}skipToElse(){for(;this.curpc<this.allstmts.length;){var t=this.allstmts[this.curpc].command;if(t=="ELSE"){this.curpc++;break}else if(t=="IF")return this.skipToEOL();if(this.curpc++,this.pc2label.get(this.curpc))break}}skipToEOF(){this.curpc=this.allstmts.length}skipToAfterNext(t){for(var r=this.curpc;r<this.allstmts.length;){var e=this.allstmts[r];if(e.command=="NEXT"){var i=e.lexpr;if(i&&i.name==t){this.curpc=r+1;return}}r++}this.runtimeError(`I couldn't find a matching NEXT ${t} to skip this for loop.`)}skipToAfterWend(){for(var t=this.curpc-1,r=0;t<this.allstmts.length;){var e=this.allstmts[t];if(e.command=="WHILE")r++;else if(e.command=="WEND"&&(r--,r==0)){this.curpc=t+1;return}t++}this.runtimeError("I couldn't find a matching WEND for this WHILE.")}gotoLabel(t){var r=this.label2pc[t];r>=0?this.curpc=r:this.runtimeError(`I tried to go to the label "${t}" but couldn't find it.`)}newLocalScope(){this.vars=Object.create(this.vars)}popLocalScope(){this.vars!==this.globals&&(this.vars=Object.getPrototypeOf(this.vars))}gosubLabel(t){this.returnStack.length>32767&&this.runtimeError("I did too many GOSUBs without a RETURN."),this.returnStack.push(this.curpc),this.gotoLabel(t)}returnFrLine truncated
import{b as S}from"./chunk-3FIVEUG2.js";import{u as E}from"./chunk-X3GW3E7W.js";import"./chunk-UG4IOEUD.js";import"./chunk-LNOKARBD.js";import"./chunk-A7SWO6EA.js";import"./chunk-THWBEUY4.js";import"./chunk-CZ7OSHSE.js";import{B as c,K as f,T as d,U as v,a as g}from"./chunk-TYDI7JZQ.js";import"./chunk-KT7KMEQC.js";function k(u){return u.value!=null}function y(u){return u.name!=null}function O(u){return u.op!=null&&u.left!=null&&u.right!=null}function N(u){return u.op!=null&&u.expr!=null}var m=class{randomize(){this.seed(Math.random()*2147483647,Math.random()*2147483647,Math.random()*2147483647,Math.random()*2147483647)}constructor(){(()=>{var r,e,i,n;this.seed=function(s,a,h,o){r=s,e=a,i=h,n=o},this.seedfloat=function(s){this.seed(s,s*4294,s*429496,s*4294967296),this.next(),this.next(),this.next()},this.next=function(){r>>>=0,e>>>=0,i>>>=0,n>>>=0;var s=r+e|0;return r=e^e>>>9,e=i+(i<<3)|0,i=i<<21|i>>>11,n=n+1|0,s=s+n|0,i=i+s|0,(s>>>0)/4294967296}})(),this.seedfloat(-1)}},I=1024*1024,l=class u{constructor(){this.margin=80;this.running=!1;this.exited=!0;this.trace=!1}load(t){let r=null,e=0;if(this.pc2label!=null){let s=this.curpc;for(;s>0&&(r=this.pc2label.get(s))==null;)s--;e=this.curpc-s,console.log("oldpc=",this.curpc,"restart @ label",r,"+",e)}this.program=t,this.opts=t.opts,this.opts.maxArrayElements||(this.opts.maxArrayElements=I),this.allstmts=t.stmts,this.label2pc=t.labels,this.label2dataptr={},this.pc2label=new Map,this.datums=[],this.subroutines={},this.builtins=this.getBuiltinFunctions();for(var i in t.labels){var n=t.labels[i];this.pc2label.set(n,i)}return this.allstmts.forEach((s,a)=>{this.curpc=a+1,this.compileStatement(s),s.command=="DATA"&&(this.label2dataptr[s.$loc.label]=this.datums.length,s.datums.forEach(h=>{this.curpc=s.$loc.offset,this.datums.push(h)}))}),this.label2pc[r]!=null?(this.curpc=this.label2pc[r]+e,!0):(this.curpc=0,!1)}reset(){this.curpc=0,this.dataptr=0,this.clearVars(),this.returnStack=[],this.column=0,this.running=!0,this.exited=!1}clearVars(){this.globals=this.vars={},this.arrays={},this.defs={},this.forLoops={},this.forLoopStack=[],this.whileLoops=[],this.rng=new m,this.opts&&this.opts.staticArrays&&this.allstmts.filter(t=>t.command=="DIM").forEach(t=>{t.args.forEach(r=>this.compileJS(this._DIM(r))())})}saveState(){return $.extend(!0,{},this)}loadState(t){$.extend(!0,this,t)}getBuiltinFunctions(){var t=this.program&&this.opts.validFunctions;t||(t=Object.getOwnPropertyNames(u.prototype).filter(i=>/^[A-Z]{3,}[$]?$/.test(i)));var r={};for(var e of t)this.supportsFunction(e)&&(r[e]=this[e].bind(this));return r}supportsFunction(t){return typeof this[t]=="function"}runtimeError(t){throw this.curpc--,new d(t,this.getCurrentSourceLocation())}dialectError(t){this.runtimeError(`I can't ${t} in this dialect of BASIC.`)}getLineForPC(t){var r=this.allstmts[t];return r&&r.$loc&&r.$loc.line}getLabelForPC(t){var r=this.allstmts[t];return r&&r.$loc&&r.$loc.label}getCurrentSourceLocation(){var t=this.getStatement();return t&&t.$loc}getCurrentLabel(){var t=this.getCurrentSourceLocation();return t&&t.label}getStatement(){return this.allstmts[this.curpc]}step(){if(!this.running)return!1;var t=this.getStatement();return t?(this.trace&&console.log(this.curpc,t,this.vars,Object.keys(this.arrays)),this.curpc++,this.executeStatement(t),this.running):(this.running=!1,this.exited=!0,!1)}compileStatement(t){if(t.$run==null)try{var r=this["do__"+t.command];r==null&&this.runtimeError(`I don't know how to "${t.command}".`);var e=r.bind(this)(t);this.trace&&console.log(e),t.$run=this.compileJS(e)}catch(i){throw e&&console.log(e),i}}compileJS(t){return new Function(t).bind(this)}executeStatement(t){this.compileStatement(t),t.$run()}skipToEOL(){do this.curpc++;while(this.curpc<this.allstmts.length&&!this.pc2label.get(this.curpc))}skipToElse(){for(;this.curpc<this.allstmts.length;){var t=this.allstmts[this.curpc].command;if(t=="ELSE"){this.curpc++;break}else if(t=="IF")return this.skipToEOL();if(this.curpc++,this.pc2label.get(this.curpc))break}}skipToEOF(){this.curpc=this.allstmts.length}skipToAfterNext(t){for(var r=this.curpc;r<this.allstmts.length;){var e=this.allstmts[r];if(e.command=="NEXT"){var i=e.lexpr;if(i&&i.name==t){this.curpc=r+1;return}}r++}this.runtimeError(`I couldn't find a matching NEXT ${t} to skip this for loop.`)}skipToAfterWend(){for(var t=this.curpc-1,r=0;t<this.allstmts.length;){var e=this.allstmts[t];if(e.command=="WHILE")r++;else if(e.command=="WEND"&&(r--,r==0)){this.curpc=t+1;return}t++}this.runtimeError("I couldn't find a matching WEND for this WHILE.")}gotoLabel(t){var r=this.label2pc[t];r>=0?this.curpc=r:this.runtimeError(`I tried to go to the label "${t}" but couldn't find it.`)}newLocalScope(){this.vars=Object.create(this.vars)}popLocalScope(){this.vars!==this.globals&&(this.vars=Object.getPrototypeOf(this.vars))}gosubLabel(t){this.returnStack.length>32767&&this.runtimeError("I did too many GOSUBs without a RETURN."),this.returnStack.push(this.curpc),this.gotoLabel(t)}returnFrLine truncated
`)this.column=0,e=t;else if(t==" "){var n=this.opts.printZoneLength,s=Math.floor(this.column/n),a=(s+1)*this.opts.printZoneLength;a+n>this.margin?(this.column=0,e=`
`):e=this.TAB(a)}else e=`${t}`;return e}float2str(t,r){var e=t.toString().toUpperCase();if(r>0){for(var i=r;e.length>r;)e=t.toPrecision(i--);e.startsWith("0.")?e=e.substr(1):e.startsWith("-0.")&&(e="-"+e.substr(2))}return e}printExpr(t){var r=this.valueToString(t,this.opts.numericPadding);this.column+=r.length,this.print(r)}print(t){console.log(t)}async input(t,r){return{line:"",vals:[]}}resume(){}expr2js(t,r){if(r||(r={}),k(t))return JSON.stringify(t.value);if(y(t)){if(!t.args&&r.locals&&r.locals.indexOf(t.name)>=0)return t.name;{r.isconst&&this.runtimeError("I expected a constant value here.");var e="",i=JSON.stringify(t.name);let h=t.args?t.args.map(o=>this.expr2js(o,r)).join(", "):[];return t.name.startsWith("FN")?e+=`this.getDef(${i})(${h})`:this.builtins[t.name]?(this.checkFuncArgs(t,this.builtins[t.name]),e+=`this.builtins.${t.name}(${h})`):t.args?this.opts.arraysContainChars&&t.name.endsWith("$")?e+=`this.getStringSlice(this.vars.${t.name}, ${h})`:e+=`this.arrayGet(${i}, ${h})`:e+=`this.vars.${t.name}`,r.novalid?e:`this.checkValue(${e}, ${i})`}}else if(O(t)){var n=this.expr2js(t.left,r),s=this.expr2js(t.right,r);return`this.${t.op}(${n}, ${s})`}else if(N(t)){var a=this.expr2js(t.expr,r);return`this.${t.op}(${a})`}}assign2js(t,r){r||(r={});var e="";return(t.name.startsWith("FN")||this.builtins[t.name])&&this.runtimeError("I can't call a function here."),t.args?this.opts.arraysContainChars&&t.name.endsWith("$")?this.runtimeError("I can't set array slices via this command yet."):e+=this.array2js(t,r):e=`this.globals.${t.name}`,e}array2js(t,r){var e=JSON.stringify(t.name),i=t.args||[];return this.expr2js(t,{novalid:!0})+`;this.getArray(${e}, ${i.length})`+i.map(n=>"[this.ROUND("+this.expr2js(n,r)+")]").join("")}checkFuncArgs(t,r){var e=t.args?t.args.length:0;t.name=="RND"&&e==0||t.name=="MID$"&&e==2||t.name=="INSTR"&&e==2||r.length!=e&&this.runtimeError(`I expected ${r.length} arguments for the ${t.name} function, but I got ${e}.`)}startForLoop(t,r,e,i,n){var s=this.curpc-1,a=this.pc2label.get(s);i||(i=1),this.vars[t]=r,this.trace&&console.log(`FOR ${t} = ${r} TO ${e} STEP ${i}`);var h=()=>i>=0?this.vars[t]>e:this.vars[t]<e;this.opts.testInitialFor&&h()&&(n!=null?this.curpc=n+1:this.skipToAfterNext(t)),this.forLoopStack[t]!=null&&(this.forLoopStack=this.forLoopStack.filter(o=>o==t)),this.forLoopStack.push(t),this.forLoops[t]={$next:o=>{o&&t!=o&&this.runtimeError(`I executed NEXT "${o}", but the last FOR was for "${t}".`),this.vars[t]+=i;var b=h();b?(this.forLoopStack.pop(),delete this.forLoops[t]):this.curpc=(a!=null&&this.label2pc[a]||s)+1,this.trace&&console.log(`NEXT ${t}: ${this.vars[t]} TO ${e} STEP ${i} DONE=${b}`)}}}nextForLoop(t){var r=this.forLoops[t||this.opts.optionalNextVar&&this.forLoopStack[this.forLoopStack.length-1]];r||this.runtimeError("I couldn't find a matching FOR for this NEXT."),r.$next(t)}whileLoop(t){t?this.whileLoops.push(this.curpc-1):this.skipToAfterWend()}nextWhileLoop(){var t=this.whileLoops.pop();t==null?this.runtimeError("I couldn't find a matching WHILE for this WEND."):this.curpc=t}assign(t,r,e){return e&&t.endsWith("$")?this.checkValue(this.convert(t,r),t):t.endsWith("$")?this.convertToString(r,t):this.convertToNumber(r,t)}convert(t,r){return t.endsWith("$")?r==null?"":r.toString():typeof r=="number"?r:parseFloat(r+"")}convertToString(t,r){if(typeof t!="string")this.runtimeError(`I can't convert ${t} to a string.`);else return t}convertToNumber(t,r){if(typeof t!="number")this.runtimeError(`I can't convert ${t} to a number.`);else return this.checkNum(t)}dimArray(t,...r){if(r=r.map(Math.round),this.arrays[t]!=null){if(this.opts.staticArrays)return;this.runtimeError(`I already dimensioned this array (${t}) earlier.`)}var e=this.getTotalArrayLength(r);e>this.opts.maxArrayElements&&this.runtimeError("I can't create an array with this many elements.");var i=t.endsWith("$"),n=i?Array:Float64Array;if(r.length==1)this.arrays[t]=new n(r[0]+1);else if(r.length==2){this.arrays[t]=new Array(r[0]+1);for(var s=0;s<r[0]+1;s++)this.arrays[t][s]=new n(r[1]+1)}else this.runtimeError("I only support arrays of one or two dimensions.")}getTotalArrayLength(t){for(var r=1,e=0;e<t.length;e++)t[e]<this.opts.defaultArrayBase&&this.runtimeError(`I can't create an array with a dimension less than ${this.opts.defaultArrayBase}.`),r*=t[e];return r}getArray(t,r){return this.arrays[t]||(this.opts.defaultArraySize==0&&this.dialectError("automatically declare arrays without a DIM statement (or did you mean to call a function?)"),r==1?this.dimArray(t,this.opts.defaultArraySize-1):r==2?this.dimArray(t,this.opts.defaultArraySize-1,this.opts.defaultArraySize-1):this.runtimeError("I only support arrays of one or two dimensions.")),this.arrays[t]}arrayGet(t,...r){var e=this.getArray(t,r.length);r=r.map(this.ROUND.bind(this));for(var i=e,n=0;n<r.length;n++){var s=r[n];c(i)||this.runtimeError(`I tried to lookup ${t}(${r}) but used too many dimensions.`),s<this.opts.defaultArrayBase&&this.runtimeError(`I triedLine truncated
var value = this.convert(${JSON.stringify(n.name)}, response.vals[${s}]);
@@ -34,4 +34,4 @@ import{b as S}from"./chunk-3FIVEUG2.js";import{u as E}from"./chunk-PUOMI72S.js";
`),this.tty.addtext("*** END OF PROGRAM ***",1),this.tty.showPrintHead(!1)}loadROM(t,r){var e=this.runtime.exited;this.program=r;var i=this.runtime.load(r);this.tty.uppercaseOnly=!0,(!this.hotReload||e||!i)&&this.reset()}getROMExtension(){return".json"}reset(){this.tty.clear(),this.runtime.reset(),this.clock=0,this.transcript=[]}pause(){this.timer.stop()}resume(){this.isBlocked()||(this.animcount=0,this.timer.start())}isBlocked(){return this.tty.waitingfor!=null||this.runtime.exited}isRunning(){return this.timer.isRunning()}getDefaultExtensions(){return[".bas"]}getToolForFilename(){return"basic"}getPresets(){return L}getPC(){return this.runtime.curpc}getSP(){return 4096-this.runtime.returnStack.length}isStable(){return!0}getCPUState(){return{PC:this.getPC(),SP:this.getSP()}}saveState(){return{c:this.getCPUState(),rt:this.runtime.saveState()}}loadState(t){this.runtime.loadState(t)}getDebugTree(){return{CurrentLine:this.runtime.getCurrentLabel(),Variables:this.runtime.vars,Arrays:this.runtime.arrays,Functions:this.runtime.defs,ForLoops:this.runtime.forLoops,WhileLoops:this.runtime.whileLoops,ReturnStack:this.runtime.returnStack,NextDatum:this.runtime.datums[this.runtime.dataptr],Clock:this.clock,Options:this.runtime.opts,Internals:this.runtime}}inspect(t){let r=this.runtime.vars[t];if(r!=null)return`${t} = ${r}`}showHelp(){return"https://8bitworkshop.com/docs/platforms/basic/"}getDebugCategories(){return["Variables"]}getDebugInfo(t,r){switch(t){case"Variables":return this.varsToLongString()}}varsToLongString(){var t="",r=Object.keys(this.runtime.vars);r.sort();for(var e of r){var i=this.runtime.vars[e],n=JSON.stringify(i);n.length>24&&(n=`${n.substr(0,24)}...(${n.length})`),t+=g(e,3)+" = "+n+`
`}return t}setupDebug(t){this.onBreakpointHit=t}clearDebug(){this.onBreakpointHit=null,this.debugTrap=null}checkDebugTrap(){return this.debugTrap&&this.debugTrap()?(this.pause(),this.break(),!0):!1}break(){this.onBreakpointHit&&this.onBreakpointHit(this.saveState())}step(){var t=this.clock;this.debugTrap=()=>this.clock>t,this.resume()}stepOver(){var t=this.runtime.getStatement();if(t&&(t.command=="GOSUB"||t.command=="ONGOSUB")){var r=this.getPC()+1;this.runEval(()=>this.getPC()==r)}else this.step()}hasCustomStepOver(){return!0}runUntilReturn(){var t=this.getSP();this.runEval(()=>this.getSP()>t)}runEval(t){this.debugTrap=()=>t(this.getCPUState()),this.resume()}restartAtPC(t){return t=Math.round(t),t>=0&&t<this.runtime.allstmts.length?(this.runtime.curpc=t,this.tty.cancelinput(),this.clock=0,!0):!1}readFile(t){return this.internalFiles[t]}writeFile(t,r){return this.internalFiles[t]=r,!0}didExit(){this.internalFiles["stdout.txt"]=this.transcript.join(""),E()}};f.basic=p;
//# sourceMappingURL=basic-WBBOCYX7.js.map
//# sourceMappingURL=basic-DESTZ5TS.js.map
File renamed without changes.
-7
View File
@@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../node_modules/localforage/dist/localforage.js", "../node_modules/dompurify/src/utils.ts", "../node_modules/dompurify/src/tags.ts", "../node_modules/dompurify/src/attrs.ts", "../node_modules/dompurify/src/regexp.ts", "../node_modules/dompurify/src/purify.ts", "../src/ide/ui.ts", "../src/common/toolmeta.ts", "../src/ide/errorreport.ts", "../src/ide/dialogs.ts", "../node_modules/@marijn/find-cluster-break/src/index.js", "../node_modules/@codemirror/state/dist/index.js", "../node_modules/style-mod/src/style-mod.js", "../node_modules/w3c-keyname/index.js", "../node_modules/crelt/index.js", "../node_modules/@codemirror/view/dist/index.js", "../node_modules/@lezer/common/dist/index.js", "../node_modules/@lezer/highlight/dist/index.js", "../node_modules/@codemirror/language/dist/index.js", "../node_modules/@codemirror/autocomplete/dist/index.js", "../src/ide/views/debug.ts", "../node_modules/@codemirror/commands/dist/index.js", "../src/ide/views/tabs.ts", "../src/ide/settings.ts", "../src/ide/storage.ts", "../src/ide/project.ts", "../src/common/workertypes.ts", "../src/ide/services.ts", "../src/common/audio/CommodoreTape.ts", "../src/ide/shareexport.ts", "../src/ide/sync.ts", "../src/ide/search/symbolindex.ts", "../src/common/symbols/index.ts", "../src/ide/search/projectsource.ts", "../src/ide/search/toolchainsource.ts", "../src/ide/search/docssource.ts", "../src/ide/search/service.ts", "../node_modules/@lezer/lr/dist/index.js", "../node_modules/@lezer/cpp/dist/index.js", "../node_modules/@codemirror/lang-cpp/dist/index.js", "../node_modules/@codemirror/search/dist/index.js", "../src/parser/tokens-6502.ts", "parser/lang-6502.grammar.js", "../src/parser/lang-6502.ts", "../src/parser/tokens-z80.ts", "parser/lang-z80.grammar.js", "../src/parser/lang-z80.ts", "../src/parser/lang-wiz.ts", "../src/parser/lang-verilog.ts", "../src/parser/lang-inform6.ts", "../src/parser/lang-dialog.ts", "../src/parser/lang-basic.ts", "../src/parser/lang-fastbasic.ts", "../src/parser/lang-bataribasic.ts", "../node_modules/@lezer/markdown/dist/index.js", "../node_modules/@lezer/html/dist/index.js", "../node_modules/@lezer/css/dist/index.js", "../node_modules/@codemirror/lang-css/dist/index.js", "../node_modules/@lezer/javascript/dist/index.js", "../node_modules/@codemirror/lang-javascript/dist/index.js", "../node_modules/@codemirror/lang-html/dist/index.js", "../node_modules/@codemirror/lang-markdown/dist/index.js", "../src/parser/registry.ts", "../src/themes/cobalt.ts", "../src/themes/disassemblyTheme.ts", "../src/themes/editorTheme.ts", "../src/themes/mbo.ts", "../src/ide/views/assetdecorations.ts", "../src/ide/views/includedecorations.ts", "../src/ide/views/baseviews.ts", "../src/ide/views/filters.ts", "../src/ide/views/gutter.ts", "../src/ide/views/visuals.ts", "../src/ide/views/editors.ts", "../src/common/vtextscroller.ts", "../src/ide/views/debugviews.ts", "../src/ide/search/debuggerhit.ts", "../src/ide/search/searchview.ts", "../src/ide/pixeleditor.ts", "../src/ide/views/asseteditor.ts", "../src/ide/views/treeviews.ts", "../src/ide/windows.ts"],
"sourcesContent": ["/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callLine truncated
"mappings": "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 truncated
"names": ["require_localforage", "__commonJSMin", "exports", "module", "f", "g", "define", "e", "t", "n", "r", "s", "o", "u", "a", "__require", "i", "l", "_dereq_", "global", "Mutation", "scheduleDrain", "called", "observer", "nextTick", "element", "channel", "scriptEl", "draining", "queue", "oldQueue", "len", "immediate", "task", "INTERNAL", "handlers", "REJECTED", "FULFILLED", "PENDING", "Promise", "resolver", "safelyResolveThenable", "onRejected", "onFulfilled", "promise", "unwrap", "QueueItem", "value", "func", "returnValue", "self", "result", "tryCatch", "getThen", "thenable", "error", "obj", "then", "onError", "onSuccess", "tryToUnwrap", "out", "resolve", "reject", "reason", "all", "iterable", "values", "resolved", "allResolver", "resolveFromAll", "outValue", "race", "response", "_typeof", "_classCallCheck", "instance", "Constructor", "getIDB", "idb", "isIndexedDBValid", "isSafari", "hasFetch", "createBlob", "parts", "properties", "Builder", "builder", "Promise$1", "executeCallback", "callback", "executeTwoCallbacks", "errorCallback", "normalizeKey", "key", "getCallback", "DETECT_BLOB_SUPPORT_STORE", "supportsBlobs", "dbContexts", "toString", "READ_ONLY", "READ_WRITE", "_binStringToArrayBuffer", "bin", "length", "buf", "arr", "_checkBlobSupportWithoutCaching", "txn", "blob", "matchedChrome", "matchedEdge", "_checkBlobSupport", "_deferReadiness", "dbInfo", "dbContext", "deferredOperation", "_advanceReadiness", "_rejectReadiness", "err", "_getConnection", "upgradeNeeded", "createDbContext", "dbArgs", "openreq", "db", "ex", "_getOriginalConnection", "_getUpgradedConnection", "_isUpgradeNeeded", "defaultVersion", "isNewStore", "isDowngrade", "isUpgrade", "incVersion", "_encodeBlob", "reader", "base64", "_decodeBlob", "encodedBlob", "arrayBuff", "_isEncodedBlob", "_fullyReady", "_tryReconnect", "forages", "forage", "createTransaction", "mode", "retries", "tx", "_initStorage", "options", "initPromises", "ignoreErrors", "j", "k", "getItem", "transaction", "store", "req", "iterate", "iterator", "iterationNumber", "cursor", "setItem", "blobSupport", "removeItem", "clear", "advanced", "keys", "dropInstance", "currentConfig", "isCurrentDb", "dbPromise", "newVersion", "dropObjectPromise", "_forage2", "dropDBPromise", "_forage", "asyncStorage", "isWebSQLValid", "BASE_CHARS", "BLOB_TYPE_PREFIX", "BLOB_TYPE_PREFIX_REGEX", "SERIALIZED_MARKER", "SERIALIZED_MARKER_LENGTH", "TYPE_ARRAYBUFFER", "TYPE_BLOB", "TYPE_INT8ARRAY", "TYPE_UINT8ARRAY", "TYPE_UINT8CLAMPEDARRAY", "TYPE_INT16ARRAY", "TYPE_INT32ARRAY", "TYPE_UINT16ARRAY", "TYPE_UINT32ARRAY", "TYPE_FLOAT32ARRAY", "TYPE_FLOAT64ARRAY", "TYPE_SERIALIZED_MARKER_LENGTH", "toString$1", "stringToBuffer", "serializedString", "bufferLength", "p", "encoded1", "encoded2", "encoded3", "encoded4", "buffer", "bytes", "bufferToString", "base64String", "serialize", "valueType", "marker", "fileReader", "str", "deserialize", "type", "blobType", "matcher", "localforageSerializer", "createDbTable", "_initStorage$1", "dbInfoPromise", "tryExecuteSql", "sqlStatement", "args", "results", "getItem$1", "iterate$1", "rows", "item", "_setItem", "retriesLeft", "originalValue", "sqlError", "setItem$1", "removeItem$1", "clear$1", "length$1", "key$1", "keys$1", "getAllStoreNames", "storeNames", "dropInstance$1", "operationInfo", "dropTable", "storeName", "operations", "webSQLStorage", "isLocalStorageValid", "_getKeyPrefix", "defaultConfig", "keyPrefix", "checkIfLocalStorageThrows", "localStorageTestKey", "_isLocalStorageUsable", "_initStorage$2", "clear$2", "getItem$2", "iterate$2", "keyPrefixLength", "key$2", "keys$2", "itemKey", "length$2", "removeItem$2", "setItem$2", "dropInstance$2", "localStorageWrapper", "sameValue", "x", "y", "includes", "array", "searchElement", "isArray", "arg", "DefinedDrivers", "DriverSupport", "DefaultDrivers", "DefaultDriverOrder", "OptionalDriverMethods", "LibraryMethods", "DefaultConfig", "callWhenReady", "localForageInstance", "libraryMethod", "_args", "extend", "_key", "LocalForage", "driverTypeKey", "driver", "driverName", "driverObject", "complianceError", "driverMethods", "driverMethodName", "isRequired", "configureMissingMethods", "methodNotImplementedFactory", "methodName", "_i", "_len", "optionalDriverMethod", "setDriverSupport", "support", "getDriverPromise", "serializerPromise", "drivers", "supportedDrivers", "setDriverToConfig", "extendSelfWithDriver", "initDriver", "currentDriverIndex", "driverPromiseLoop", "oldDriverSetDone", "libraryMethodsAndProperties", "localforage_js", "entries", "Object", "setPrototypeOf", "isFrozen", "getPrototypeOf", "getOwnPropertyDescriptor", "freeze", "seal", "create", "_ref", "Reflect", "apply", "construct", "x", "func", "thisArg", "_len", "arguments", "length", "args", "Array", "_key", "Func", "_len2", "_key2", "arrayForEach", "unapply", "prototype", "forEach", "arrayLastIndexOf", "lastIndexOf", "arrayPop", "pop", "arrayPush", "push", "arraySplice", "splice", "arrayIsArray", "isArray", "stringToLowerCase", "String", "toLoLine truncated
}
@@ -1,2 +1,2 @@
import{M as b,N as w}from"./chunk-TYDI7JZQ.js";import{d as E}from"./chunk-KT7KMEQC.js";var y=E((d,v)=>{(function(l,e){typeof define=="function"&&define.amd?define([],e):typeof d!="undefined"?e():(e(),l.FileSaver={})})(d,function(){"use strict";function l(t,r){return typeof r=="undefined"?r={autoBom:!1}:typeof r!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),r={autoBom:!r}),r.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(t.type)?new Blob(["\uFEFF",t],{type:t.type}):t}function e(t,r,c){var a=new XMLHttpRequest;a.open("GET",t),a.responseType="blob",a.onload=function(){h(a.response,r,c)},a.onerror=function(){console.error("could not download file")},a.send()}function o(t){var r=new XMLHttpRequest;r.open("HEAD",t,!1);try{r.send()}catch(c){}return 200<=r.status&&299>=r.status}function i(t){try{t.dispatchEvent(new MouseEvent("click"))}catch(c){var r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(r)}}var n=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof global=="object"&&global.global===global?global:void 0,u=n.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),h=n.saveAs||(typeof window!="object"||window!==n?function(){}:"download"in HTMLAnchorElement.prototype&&!u?function(t,r,c){var a=n.URL||n.webkitURL,s=document.createElement("a");r=r||t.name||"download",s.download=r,s.rel="noopener",typeof t=="string"?(s.href=t,s.origin===location.origin?i(s):o(s.href)?e(t,r,c):i(s,s.target="_blank")):(s.href=a.createObjectURL(t),setTimeout(function(){a.revokeObjectURL(s.href)},4e4),setTimeout(function(){i(s)},0))}:"msSaveOrOpenBlob"in navigator?function(t,r,c){if(r=r||t.name||"download",typeof t!="string")navigator.msSaveOrOpenBlob(l(t,c),r);else if(o(t))e(t,r,c);else{var a=document.createElement("a");a.href=t,a.target="_blank",setTimeout(function(){i(a)})}}:function(t,r,c,a){if(a=a||open("","_blank"),a&&(a.document.title=a.document.body.innerText="downloading..."),typeof t=="string")return e(t,r,c);var s=t.type==="application/octet-stream",C=/constructor/i.test(n.HTMLElement)||n.safari,S=/CriOS\/[\d]+/.test(navigator.userAgent);if((S||s&&C||u)&&typeof FileReader!="undefined"){var p=new FileReader;p.onloadend=function(){var m=p.result;m=S?m:m.replace(/^data:[^;]*;/,"data:attachment/file;"),a?a.location.href=m:location=m,a=null},p.readAsDataURL(t)}else{var k=n.URL||n.webkitURL,f=k.createObjectURL(t);a?a.location=f:location.href=f,a=null,setTimeout(function(){k.revokeObjectURL(f)},4e4)}});n.saveAs=h.saveAs=h,typeof v!="undefined"&&(v.exports=h)})});var g=class{constructor(e){this.checkpointInterval=10;this.maxCheckpoints=300;this.reset(),this.platform=e}reset(){this.checkpoints=[],this.framerecs=[],this.frameCount=0,this.lastSeekFrame=0,this.lastSeekStep=0,this.lastStepCount=0,this.callbackStateChanged&&this.callbackStateChanged()}frameRequested(){var e={controls:this.platform.saveControlsState(),seed:b()},o=!1;return this.lastSeekFrame<this.frameCount?this.loadControls(this.lastSeekFrame):(this.platform.saveControlsState&&this.framerecs.push(e),o=this.frameCount++%this.checkpointInterval==0),this.lastSeekFrame++,this.lastSeekStep=0,this.callbackStateChanged&&this.callbackStateChanged(),o}numFrames(){return this.frameCount}currentFrame(){return this.lastSeekFrame}currentStep(){return this.lastSeekStep}recordFrame(e){this.checkpoints.push(e),this.callbackNewCheckpoint&&this.callbackNewCheckpoint(e),this.checkpoints.length>this.maxCheckpoints&&(this.checkpoints.shift(),this.framerecs=this.framerecs.slice(this.checkpointInterval),this.lastSeekFrame-=this.checkpointInterval,this.frameCount-=this.checkpointInterval,this.callbackStateChanged&&this.callbackStateChanged())}getStateAtOrBefore(e){if(e<=0&&this.checkpoints.length>0)return{frame:0,state:this.checkpoints[0]};var o=Math.floor(e/this.checkpointInterval),i=o<this.checkpoints.length?o:this.checkpoints.length-1,n=i*this.checkpointInterval;return{frame:n,state:this.checkpoints[i]}}loadFrame(e,o){if(e|=0,o|=0,e==this.lastSeekFrame&&o==this.lastSeekStep)return e;let{frame:i,state:n}=this.getStateAtOrBefore(e-1);if(n){var u=0;for(this.platform.pause(),this.platform.loadState(n);i<e;)i<this.framerecs.length&&this.loadControls(i),i++,u=this.platform.advance(i<e);return i==0&&(u=this.platform.advance(!0),this.platform.loadState(n)),o>0&&this.platform.advanceFrameClock&&(o=this.platform.advanceFrameClock(null,o)),this.lastSeekFrame=e,this.lastSeekStep=o,this.lastStepCount=u,e}else return-1}loadControls(e){this.platform.loadControlsState&&this.platform.loadControlsState(this.framerecs[e].controls),w(this.framerecs[e].seed)}getLastCheckpoint(){return this.checkpoints.length&&this.checkpoints[this.checkpoints.length-1]}};function R(l){switch(l){case"apple2":return import("./apple2-JNWVCK6Z.js");case"arm32"Line truncated
//# sourceMappingURL=chunk-WEPPO4GD.js.map
import{M as b,N as w}from"./chunk-TYDI7JZQ.js";import{d as E}from"./chunk-KT7KMEQC.js";var y=E((d,v)=>{(function(l,e){typeof define=="function"&&define.amd?define([],e):typeof d!="undefined"?e():(e(),l.FileSaver={})})(d,function(){"use strict";function l(t,r){return typeof r=="undefined"?r={autoBom:!1}:typeof r!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),r={autoBom:!r}),r.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(t.type)?new Blob(["\uFEFF",t],{type:t.type}):t}function e(t,r,c){var a=new XMLHttpRequest;a.open("GET",t),a.responseType="blob",a.onload=function(){h(a.response,r,c)},a.onerror=function(){console.error("could not download file")},a.send()}function o(t){var r=new XMLHttpRequest;r.open("HEAD",t,!1);try{r.send()}catch(c){}return 200<=r.status&&299>=r.status}function i(t){try{t.dispatchEvent(new MouseEvent("click"))}catch(c){var r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(r)}}var n=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof global=="object"&&global.global===global?global:void 0,u=n.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),h=n.saveAs||(typeof window!="object"||window!==n?function(){}:"download"in HTMLAnchorElement.prototype&&!u?function(t,r,c){var a=n.URL||n.webkitURL,s=document.createElement("a");r=r||t.name||"download",s.download=r,s.rel="noopener",typeof t=="string"?(s.href=t,s.origin===location.origin?i(s):o(s.href)?e(t,r,c):i(s,s.target="_blank")):(s.href=a.createObjectURL(t),setTimeout(function(){a.revokeObjectURL(s.href)},4e4),setTimeout(function(){i(s)},0))}:"msSaveOrOpenBlob"in navigator?function(t,r,c){if(r=r||t.name||"download",typeof t!="string")navigator.msSaveOrOpenBlob(l(t,c),r);else if(o(t))e(t,r,c);else{var a=document.createElement("a");a.href=t,a.target="_blank",setTimeout(function(){i(a)})}}:function(t,r,c,a){if(a=a||open("","_blank"),a&&(a.document.title=a.document.body.innerText="downloading..."),typeof t=="string")return e(t,r,c);var s=t.type==="application/octet-stream",C=/constructor/i.test(n.HTMLElement)||n.safari,S=/CriOS\/[\d]+/.test(navigator.userAgent);if((S||s&&C||u)&&typeof FileReader!="undefined"){var p=new FileReader;p.onloadend=function(){var m=p.result;m=S?m:m.replace(/^data:[^;]*;/,"data:attachment/file;"),a?a.location.href=m:location=m,a=null},p.readAsDataURL(t)}else{var k=n.URL||n.webkitURL,f=k.createObjectURL(t);a?a.location=f:location.href=f,a=null,setTimeout(function(){k.revokeObjectURL(f)},4e4)}});n.saveAs=h.saveAs=h,typeof v!="undefined"&&(v.exports=h)})});var g=class{constructor(e){this.checkpointInterval=10;this.maxCheckpoints=300;this.reset(),this.platform=e}reset(){this.checkpoints=[],this.framerecs=[],this.frameCount=0,this.lastSeekFrame=0,this.lastSeekStep=0,this.lastStepCount=0,this.callbackStateChanged&&this.callbackStateChanged()}frameRequested(){var e={controls:this.platform.saveControlsState(),seed:b()},o=!1;return this.lastSeekFrame<this.frameCount?this.loadControls(this.lastSeekFrame):(this.platform.saveControlsState&&this.framerecs.push(e),o=this.frameCount++%this.checkpointInterval==0),this.lastSeekFrame++,this.lastSeekStep=0,this.callbackStateChanged&&this.callbackStateChanged(),o}numFrames(){return this.frameCount}currentFrame(){return this.lastSeekFrame}currentStep(){return this.lastSeekStep}recordFrame(e){this.checkpoints.push(e),this.callbackNewCheckpoint&&this.callbackNewCheckpoint(e),this.checkpoints.length>this.maxCheckpoints&&(this.checkpoints.shift(),this.framerecs=this.framerecs.slice(this.checkpointInterval),this.lastSeekFrame-=this.checkpointInterval,this.frameCount-=this.checkpointInterval,this.callbackStateChanged&&this.callbackStateChanged())}getStateAtOrBefore(e){if(e<=0&&this.checkpoints.length>0)return{frame:0,state:this.checkpoints[0]};var o=Math.floor(e/this.checkpointInterval),i=o<this.checkpoints.length?o:this.checkpoints.length-1,n=i*this.checkpointInterval;return{frame:n,state:this.checkpoints[i]}}loadFrame(e,o){if(e|=0,o|=0,e==this.lastSeekFrame&&o==this.lastSeekStep)return e;let{frame:i,state:n}=this.getStateAtOrBefore(e-1);if(n){var u=0;for(this.platform.pause(),this.platform.loadState(n);i<e;)i<this.framerecs.length&&this.loadControls(i),i++,u=this.platform.advance(i<e);return i==0&&(u=this.platform.advance(!0),this.platform.loadState(n)),o>0&&this.platform.advanceFrameClock&&(o=this.platform.advanceFrameClock(null,o)),this.lastSeekFrame=e,this.lastSeekStep=o,this.lastStepCount=u,e}else return-1}loadControls(e){this.platform.loadControlsState&&this.platform.loadControlsState(this.framerecs[e].controls),w(this.framerecs[e].seed)}getLastCheckpoint(){return this.checkpoints.length&&this.checkpoints[this.checkpoints.length-1]}};function R(l){switch(l){case"apple2":return import("./apple2-JNWVCK6Z.js");case"arm32"Line truncated
//# sourceMappingURL=chunk-THWBEUY4.js.map
File renamed without changes.
@@ -1,6 +1,6 @@
import{a as ef,b as tf,c as kP,d as Xg,e as _g,f as Rg,g as xl,h as hr,j as Sl,k as Ql,l as hs,m as TP}from"./chunk-UG4IOEUD.js";import{a as PP}from"./chunk-LNOKARBD.js";import{a as bl}from"./chunk-A7SWO6EA.js";import{a as Tg,b as Zg,c as XP}from"./chunk-WEPPO4GD.js";import{D as KO,K as JO,t as Pg,u as kg}from"./chunk-CZ7OSHSE.js";import{A as Ni,E as ui,F as GO,G as ls,I as cs,J as ml,K as NO,T as HO,V as $g,a as Gi,b as So,ba as gl,d as gt,e as Qo,f as $t,g as $e,h as FO,i as Qg,k as vg,m as fl,n as ul,o as dl,p as pn,q as wg,t as pl,w as yg,x as BO,y as vo,z as Ut}from"./chunk-TYDI7JZQ.js";import{a as st,b as Ol,c as xo,d as Sg,e as IO}from"./chunk-KT7KMEQC.js";var nf=Sg((Cg,rf)=>{(function(i){if(typeof Cg=="object"&&typeof rf!="undefined")rf.exports=i();else if(typeof define=="function"&&define.amd)define([],i);else{var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e=this,e.localforage=i()}})(function(){var i,e,t;return(function r(n,s,o){function a(h,O){if(!s[h]){if(!n[h]){var f=typeof xo=="function"&&xo;if(!O&&f)return f(h,!0);if(l)return l(h,!0);var u=new Error("Cannot find module '"+h+"'");throw u.code="MODULE_NOT_FOUND",u}var p=s[h]={exports:{}};n[h][0].call(p.exports,function(m){var S=n[h][1][m];return a(S||m)},p,p.exports,r,n,s,o)}return s[h].exports}for(var l=typeof xo=="function"&&xo,c=0;c<o.length;c++)a(o[c]);return a})({1:[function(r,n,s){(function(o){"use strict";var a=o.MutationObserver||o.WebKitMutationObserver,l;if(a){var c=0,h=new a(m),O=o.document.createTextNode("");h.observe(O,{characterData:!0}),l=function(){O.data=c=++c%2}}else if(!o.setImmediate&&typeof o.MessageChannel!="undefined"){var f=new o.MessageChannel;f.port1.onmessage=m,l=function(){f.port2.postMessage(0)}}else"document"in o&&"onreadystatechange"in o.document.createElement("script")?l=function(){var w=o.document.createElement("script");w.onreadystatechange=function(){m(),w.onreadystatechange=null,w.parentNode.removeChild(w),w=null},o.document.documentElement.appendChild(w)}:l=function(){setTimeout(m,0)};var u,p=[];function m(){u=!0;for(var w,C,R=p.length;R;){for(C=p,p=[],w=-1;++w<R;)C[w]();R=p.length}u=!1}n.exports=S;function S(w){p.push(w)===1&&!u&&l()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],2:[function(r,n,s){"use strict";var o=r(1);function a(){}var l={},c=["REJECTED"],h=["FULFILLED"],O=["PENDING"];n.exports=f;function f(P){if(typeof P!="function")throw new TypeError("resolver must be a function");this.state=O,this.queue=[],this.outcome=void 0,P!==a&&S(this,P)}f.prototype.catch=function(P){return this.then(null,P)},f.prototype.then=function(P,Z){if(typeof P!="function"&&this.state===h||typeof Z!="function"&&this.state===c)return this;var z=new this.constructor(a);if(this.state!==O){var D=this.state===h?P:Z;p(z,D,this.outcome)}else this.queue.push(new u(z,P,Z));return z};function u(P,Z,z){this.promise=P,typeof Z=="function"&&(this.onFulfilled=Z,this.callFulfilled=this.otherCallFulfilled),typeof z=="function"&&(this.onRejected=z,this.callRejected=this.otherCallRejected)}u.prototype.callFulfilled=function(P){l.resolve(this.promise,P)},u.prototype.otherCallFulfilled=function(P){p(this.promise,this.onFulfilled,P)},u.prototype.callRejected=function(P){l.reject(this.promise,P)},u.prototype.otherCallRejected=function(P){p(this.promise,this.onRejected,P)};function p(P,Z,z){o(function(){var D;try{D=Z(z)}catch(Oe){return l.reject(P,Oe)}D===P?l.reject(P,new TypeError("Cannot resolve promise with itself")):l.resolve(P,D)})}l.resolve=function(P,Z){var z=w(m,Z);if(z.status==="error")return l.reject(P,z.value);var D=z.value;if(D)S(P,D);else{P.state=h,P.outcome=Z;for(var Oe=-1,se=P.queue.length;++Oe<se;)P.queue[Oe].callFulfilled(Z)}return P},l.reject=function(P,Z){P.state=c,P.outcome=Z;for(var z=-1,D=P.queue.length;++z<D;)P.queue[z].callRejected(Z);return P};function m(P){var Z=P&&P.then;if(P&&(typeof P=="object"||typeof P=="function")&&typeof Z=="function")return function(){Z.apply(P,arguments)}}function S(P,Z){var z=!1;function D(he){z||(z=!0,l.reject(P,he))}function Oe(he){z||(z=!0,l.resolve(P,he))}function se(){Z(Oe,D)}var ee=w(se);ee.status==="error"&&D(ee.value)}function w(P,Z){var z={};try{z.value=P(Z),z.status="success"}catch(D){z.status="error",z.value=D}return z}f.resolve=C;function C(P){return P instanceof this?P:l.resolve(new this(a),P)}f.reject=R;function R(P){var Z=new this(a);return l.reject(Z,P)}f.all=A;function A(P){var Z=this;if(Object.prototype.toString.call(P)!=="[object Array]")return this.reject(new TypeError("must be an array"));var z=P.length,D=!1;if(!z)return this.resolve([]);for(var Oe=new Array(z),se=0,ee=-1,he=new this(a);++ee<z;)ge(P[ee],ee);return he;function ge(we,Y){Z.resolve(we).then(re,function(N){D||(D=!0,l.reject(he,N))});function re(N){Oe[Y]=N,++se===z&&!D&&(D=!0,l.resolve(he,Oe))}}}f.race=k;function k(P){var Z=this;if(Object.prototype.toString.call(P)!=="[object Line truncated
import{a as ef,b as tf,c as kP,d as Xg,e as _g,f as Rg,g as xl,h as hr,j as Sl,k as Ql,l as hs,m as TP}from"./chunk-UG4IOEUD.js";import{a as PP}from"./chunk-LNOKARBD.js";import{a as bl}from"./chunk-A7SWO6EA.js";import{a as Tg,b as Zg,c as XP}from"./chunk-THWBEUY4.js";import{D as KO,K as JO,t as Pg,u as kg}from"./chunk-CZ7OSHSE.js";import{A as Ni,E as ui,F as GO,G as ls,I as cs,J as ml,K as NO,T as HO,V as $g,a as Gi,b as So,ba as gl,d as gt,e as Qo,f as $t,g as $e,h as FO,i as Qg,k as vg,m as fl,n as ul,o as dl,p as pn,q as wg,t as pl,w as yg,x as BO,y as vo,z as Ut}from"./chunk-TYDI7JZQ.js";import{a as st,b as Ol,c as xo,d as Sg,e as IO}from"./chunk-KT7KMEQC.js";var nf=Sg((Cg,rf)=>{(function(i){if(typeof Cg=="object"&&typeof rf!="undefined")rf.exports=i();else if(typeof define=="function"&&define.amd)define([],i);else{var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e=this,e.localforage=i()}})(function(){var i,e,t;return(function r(n,s,o){function a(h,O){if(!s[h]){if(!n[h]){var f=typeof xo=="function"&&xo;if(!O&&f)return f(h,!0);if(l)return l(h,!0);var u=new Error("Cannot find module '"+h+"'");throw u.code="MODULE_NOT_FOUND",u}var p=s[h]={exports:{}};n[h][0].call(p.exports,function(m){var S=n[h][1][m];return a(S||m)},p,p.exports,r,n,s,o)}return s[h].exports}for(var l=typeof xo=="function"&&xo,c=0;c<o.length;c++)a(o[c]);return a})({1:[function(r,n,s){(function(o){"use strict";var a=o.MutationObserver||o.WebKitMutationObserver,l;if(a){var c=0,h=new a(m),O=o.document.createTextNode("");h.observe(O,{characterData:!0}),l=function(){O.data=c=++c%2}}else if(!o.setImmediate&&typeof o.MessageChannel!="undefined"){var f=new o.MessageChannel;f.port1.onmessage=m,l=function(){f.port2.postMessage(0)}}else"document"in o&&"onreadystatechange"in o.document.createElement("script")?l=function(){var w=o.document.createElement("script");w.onreadystatechange=function(){m(),w.onreadystatechange=null,w.parentNode.removeChild(w),w=null},o.document.documentElement.appendChild(w)}:l=function(){setTimeout(m,0)};var u,p=[];function m(){u=!0;for(var w,C,R=p.length;R;){for(C=p,p=[],w=-1;++w<R;)C[w]();R=p.length}u=!1}n.exports=S;function S(w){p.push(w)===1&&!u&&l()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],2:[function(r,n,s){"use strict";var o=r(1);function a(){}var l={},c=["REJECTED"],h=["FULFILLED"],O=["PENDING"];n.exports=f;function f(P){if(typeof P!="function")throw new TypeError("resolver must be a function");this.state=O,this.queue=[],this.outcome=void 0,P!==a&&S(this,P)}f.prototype.catch=function(P){return this.then(null,P)},f.prototype.then=function(P,Z){if(typeof P!="function"&&this.state===h||typeof Z!="function"&&this.state===c)return this;var z=new this.constructor(a);if(this.state!==O){var D=this.state===h?P:Z;p(z,D,this.outcome)}else this.queue.push(new u(z,P,Z));return z};function u(P,Z,z){this.promise=P,typeof Z=="function"&&(this.onFulfilled=Z,this.callFulfilled=this.otherCallFulfilled),typeof z=="function"&&(this.onRejected=z,this.callRejected=this.otherCallRejected)}u.prototype.callFulfilled=function(P){l.resolve(this.promise,P)},u.prototype.otherCallFulfilled=function(P){p(this.promise,this.onFulfilled,P)},u.prototype.callRejected=function(P){l.reject(this.promise,P)},u.prototype.otherCallRejected=function(P){p(this.promise,this.onRejected,P)};function p(P,Z,z){o(function(){var D;try{D=Z(z)}catch(Oe){return l.reject(P,Oe)}D===P?l.reject(P,new TypeError("Cannot resolve promise with itself")):l.resolve(P,D)})}l.resolve=function(P,Z){var z=w(m,Z);if(z.status==="error")return l.reject(P,z.value);var D=z.value;if(D)S(P,D);else{P.state=h,P.outcome=Z;for(var Oe=-1,se=P.queue.length;++Oe<se;)P.queue[Oe].callFulfilled(Z)}return P},l.reject=function(P,Z){P.state=c,P.outcome=Z;for(var z=-1,D=P.queue.length;++z<D;)P.queue[z].callRejected(Z);return P};function m(P){var Z=P&&P.then;if(P&&(typeof P=="object"||typeof P=="function")&&typeof Z=="function")return function(){Z.apply(P,arguments)}}function S(P,Z){var z=!1;function D(he){z||(z=!0,l.reject(P,he))}function Oe(he){z||(z=!0,l.resolve(P,he))}function se(){Z(Oe,D)}var ee=w(se);ee.status==="error"&&D(ee.value)}function w(P,Z){var z={};try{z.value=P(Z),z.status="success"}catch(D){z.status="error",z.value=D}return z}f.resolve=C;function C(P){return P instanceof this?P:l.resolve(new this(a),P)}f.reject=R;function R(P){var Z=new this(a);return l.reject(Z,P)}f.all=A;function A(P){var Z=this;if(Object.prototype.toString.call(P)!=="[object Array]")return this.reject(new TypeError("must be an array"));var z=P.length,D=!1;if(!z)return this.resolve([]);for(var Oe=new Array(z),se=0,ee=-1,he=new this(a);++ee<z;)ge(P[ee],ee);return he;function ge(we,Y){Z.resolve(we).then(re,function(N){D||(D=!0,l.reject(he,N))});function re(N){Oe[Y]=N,++se===z&&!D&&(D=!0,l.resolve(he,Oe))}}}f.race=k;function k(P){var Z=this;if(Object.prototype.toString.call(P)!=="[object Line truncated
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function LA(i,e){return zA(i)||YA(i,e)||WA(i,e)||MA()}function WA(i,e){if(i){if(typeof i=="string")return $$(i,e);var t={}.toString.call(i).slice(8,-1);return t==="Object"&&i.constructor&&(t=i.constructor.name),t==="Map"||t==="Set"?Array.from(i):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?$$(i,e):void 0}}var L$=Object.entries,P$=Object.setPrototypeOf,VA=Object.isFrozen,jA=Object.getPrototypeOf,qA=Object.getOwnPropertyDescriptor,vt=Object.freeze,wt=Object.seal,Js=Object.create,W$=typeof Reflect!="undefined"&&Reflect,sg=W$.apply,og=W$.construct;vt||(vt=function(e){return e});wt||(wt=function(e){return e});sg||(sg=function(e,t){for(var r=arguments.length,n=new Array(r>2?r-2:0),s=2;s<r;s++)n[s-2]=arguments[s];return e.apply(t,n)});og||(og=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return new e(...r)});var Hs=ht(Array.prototype.forEach),DA=ht(Array.prototype.lastIndexOf),k$=ht(Array.prototype.pop),Ks=ht(Array.prototype.push),IA=ht(Array.prototype.splice),nn=Array.isArray,qa=ht(String.prototype.toLowerCase),eg=ht(String.prototype.toString),T$=ht(String.prototype.match),Va=ht(String.prototype.replace),X$=ht(String.prototype.indexOf),FA=ht(String.prototype.trim),BA=ht(Number.prototype.toString),GA=ht(Boolean.prototype.toString),_$=typeof BigInt=="undefined"?null:ht(BigInt.prototype.toString),R$=typeof Symbol=="undefined"?null:ht(Symbol.prototype.toString),dt=ht(Object.prototype.hasOwnProperty),ja=ht(Object.prototype.toString),ut=ht(RegExp.prototype.test),Nn=NA(TypeError);function ht(i){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return sg(i,e,r)}}function NA(i){return function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return og(i,t)}}function Ce(i,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:qa;if(P$&&P$(i,null),!nn(e))return i;let r=e.length;for(;r--;){let n=e[r];if(typeof n=="string"){let s=t(n);s!==n&&(VA(e)||(e[r]=s),n=s)}i[n]=!0}return i}function HA(i){for(let e=0;e<i.length;e++)dt(i,e)||(i[e]=null);return i}function Rt(i){let e=Js(null);for(let r of L$(i)){var t=LA(r,2);let n=t[0],s=t[1];dt(i,n)&&(nn(s)?e[n]=HA(s):s&&typeof s=="object"&&s.constructor===Object?e[n]=Rt(s):e[n]=s)}return e}function KA(i){switch(typeof i){case"string":return i;case"number":return BA(i);case"boolean":return GA(i);case"bigint":return _$?_$(i):"0";case"symbol":return R$?R$(i):"Symbol()";case"undefined":return ja(i);case"function":case"object":{if(i===null)return ja(i);let e=i,t=qi(e,"toString");if(typeof t=="function"){let r=t(e);return typeof r=="string"?r:ja(r)}return ja(i)}default:return ja(i)}}function qi(i,e){for(;i!==null;){let r=qA(i,e);if(r){if(r.get)return ht(r.get);if(typeof r.value=="function")return ht(r.value)}i=jA(i)}function t(){return null}return t}function JA(i){try{return ut(i,""),!0}catch(e){return!1}}var Z$=vt(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),tg=vt(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),ig=vt(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),eE=vt(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-gly Line truncated
`+Ge),Xi&&(Ge=Rr(Ge)),Z&&fn?he(Ge):Ge},e.setConfig=function(){let M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};mo(M),ts=!0,cn=qe,hn=De},e.clearConfig=function(){_r=null,ts=!1,cn=null,hn=null,Z=D,z=""},e.isValidAttribute=function(M,b,_){_r||mo({});let L=Be(M),ne=Be(b);return V(L,ne,_)},e.addHook=function(M,b){typeof b=="function"&&dt(de,M)&&Ks(de[M],b)},e.removeHook=function(M,b){if(dt(de,M)){if(b!==void 0){let _=DA(de[M],b);return _===-1?void 0:IA(de[M],_,1)[0]}return k$(de[M])}},e.removeHooks=function(M){dt(de,M)&&(de[M]=[])},e.removeAllHooks=function(){de=M$()},e}var pE=V$();j$.exports=pE});var fg=IO(nf());var Le=[/^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi,/^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm],Ie=[/^\s*([;]|[/][/])#link\s+"(.+?)"/gm],wo=[/^\s*(`include|[.]include)\s+"(.+?)"/gmi,/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi,{re:/^\s*([.]arch)\s+(\w+)/gmi,suffix:".json"},/\$readmem[bh]\("(.+?)"/gmi],_P=[{re:/^\s*[.#%]?\s*include\s+<(.+?)>/gmi,system:!0}];function Eg(i){let e=i&&Hi(i);return e&&e.includeDirs&&e.includeDirs.length?_P:[]}var Ug=[/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm],RP=[/^[!]src\s+"(.+?)"/gmi],ZP=[{re:/^\s*import\s*"(.+?)";/gmi,suffix:".wiz"},/^\s*embed\s*"(.+?)";/gmi],CP=[/^\s*(import)\s*"(.+?)"/gmi],UP=[/^\s*%%\s*#include\s+"(.+?)"/gm],Ag={apple2:{preloadFS:"65-apple2"},c64:{preloadFS:"65-c64"},vic20:{preloadFS:"65-vic20"},nes:{preloadFS:"65-nes"},atari8:{preloadFS:"65-atari8"},vector:{preloadFS:"65-none"},atari7800:{preloadFS:"65-none"},devel:{preloadFS:"65-none"},vcs:{preloadFS:"65-atari2600"},pce:{preloadFS:"65-pce"},exidy:{preloadFS:"65-none"}},yo={dasm:{id:"dasm",name:"DASM",kind:"assembler",arch:"6502",extensions:[".dasm"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/dasm-assembler/dasm/refs/tags/v2.20.17/docs/dasm.txt",wasmModule:"dasm-wasisdk",version:"2.20.17",includePatterns:Le,linkPatterns:Ie},acme:{id:"acme",name:"ACME",kind:"assembler",arch:"6502",extensions:[".acme"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/sehugg/acme/main/docs/QuickRef.txt",wasmModule:"acme",version:"0.97.1",includePatterns:[...Le,...RP],linkPatterns:Ie},xa:{id:"xa",name:"XA",kind:"assembler",arch:"6502",extensions:[".xa"],editorStyle:"6502",helpURL:"https://www.floodgap.com/retrotech/xa/",wasmModule:"xa",version:"2.4.1",includePatterns:Le,linkPatterns:Ie},nesasm:{id:"nesasm",name:"NESASM",kind:"assembler",arch:"6502",extensions:[".nesasm"],editorStyle:"6502",wasmModule:"nesasm",version:"3.1",includePatterns:Le,linkPatterns:Ie},merlin32:{id:"merlin32",name:"Merlin 32",kind:"assembler",arch:"6502",extensions:[".lnk"],editorStyle:"6502",wasmModule:"merlin32",version:"1.1.1",includePatterns:[...Le,...Ug],linkPatterns:Ie},cc65:{id:"cc65",name:"cc65",kind:"compiler",arch:"6502",extensions:[".c",".h"],includeDirs:["/include","/asminc"],editorStyle:"text/x-csrc",helpURL:"https://cc65.github.io/doc/cc65.html",wasmModule:"cc65",version:"2.19",platforms:Ag,includePatterns:Le,linkPatterns:Ie},ca65:{id:"ca65",name:"ca65",kind:"assembler",arch:"6502",extensions:[".s",".ca65",".inc"],includeDirs:["/include","/asminc"],editorStyle:"6502",helpURL:"https://cc65.github.io/doc/ca65.html",wasmModule:"ca65",version:"2.19",platforms:Ag,includePatterns:Le,linkPatterns:Ie},ld65:{id:"ld65",name:"ld65",kind:"linker",arch:"6502",extensions:[],wasmModule:"ld65",version:"2.19"},sdcc:{id:"sdcc",name:"SDCC",kind:"compiler",arch:"z80",extensions:[".c",".h"],includeDirs:["/include"],editorStyle:"text/x-csrc",helpURL:"http://sdcc.sourceforge.net/doc/sdccman.pdf",wasmModule:"sdcc",version:"3.6.5",platforms:{default:{preloadFS:"sdcc"}},includePatterns:Le,linkPatterns:Ie},sdasz80:{id:"sdasz80",name:"sdasz80",kind:"assembler",arch:"z80",extensions:[".s"],includeDirs:["/include"],editorStyle:"z80",wasmModule:"sdasz80",version:"02.00",platforms:{default:{preloadFS:"sdcc"}},includePatterns:Le,linkPatterns:Ie},sdasgb:{id:"sdasgb",name:"sdasgb",kind:"assembler",arch:"gbz80",extensions:[".sgb"],includeDirs:["/include"],editorStyle:"z80",wasmModule:"sdasgb",platforms:{default:{preloadFS:"sdcc"}},includePatterns:Le,linkPatterns:Ie},sdldz80:{id:"sdldz80",name:"sdldz80",kind:"linker",arch:"z80",extensions:[],wasmModule:"sdldz80",version:"03.00"},sccz80:{id:"sccz80",name:"sccz80",kind:"compiler",arch:"z80",extensions:[".scc"],platforms:{default:{preloadFS:"sccz80"}},noWorkerBuild:!0},naken:{id:"naken",name:"Naken",kind:"assembler",extensions:[".ns"],noWorkerBuild:!0},zmac:{id:"zmac",name:"zmac",kind:"assembler",arch:"z80",extensions:[".z"],editorStyle:"z80",helpURL:"https://raw.githubusercontent.com/sehugg/zmac/master/doc.txt",wasmModule:"zmac",version:"28jul2018",includePatterns:Le,linkPatterns:Ie},jsasm:{id:"jsasm",name:"JSASM",kind:"assembler",extensions:[".asm"],editorStyle:"z80",includePatterns:wo,linkPatterns:[]},xasm6809:{id:"xasm6809",name:"XASM6809",kind:"assembler",arch:"6809",extensions:[".xasm"],editorStyle:"6809",wasmModule:"xasm6809",includePatterns:[...Le,...Ug],linkPLine truncated
`+Ge),Xi&&(Ge=Rr(Ge)),Z&&fn?he(Ge):Ge},e.setConfig=function(){let M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};mo(M),ts=!0,cn=qe,hn=De},e.clearConfig=function(){_r=null,ts=!1,cn=null,hn=null,Z=D,z=""},e.isValidAttribute=function(M,b,_){_r||mo({});let L=Be(M),ne=Be(b);return V(L,ne,_)},e.addHook=function(M,b){typeof b=="function"&&dt(de,M)&&Ks(de[M],b)},e.removeHook=function(M,b){if(dt(de,M)){if(b!==void 0){let _=DA(de[M],b);return _===-1?void 0:IA(de[M],_,1)[0]}return k$(de[M])}},e.removeHooks=function(M){dt(de,M)&&(de[M]=[])},e.removeAllHooks=function(){de=M$()},e}var pE=V$();j$.exports=pE});var fg=IO(nf());var Le=[/^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi,/^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm],Ie=[/^\s*([;]|[/][/])#link\s+"(.+?)"/gm],wo=[/^\s*(`include|[.]include)\s+"(.+?)"/gmi,/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi,{re:/^\s*([.]arch)\s+(\w+)/gmi,suffix:".json"},/\$readmem[bh]\("(.+?)"/gmi],_P=[{re:/^\s*[.#%]?\s*include\s+<(.+?)>/gmi,system:!0}];function Eg(i){let e=i&&Hi(i);return e&&e.includeDirs&&e.includeDirs.length?_P:[]}var Ug=[/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm],RP=[/^[!]src\s+"(.+?)"/gmi],ZP=[{re:/^\s*import\s*"(.+?)";/gmi,suffix:".wiz"},/^\s*embed\s*"(.+?)";/gmi],CP=[/^\s*(import)\s*"(.+?)"/gmi],UP=[/^\s*%%\s*#include\s+"(.+?)"/gm],Ag={apple2:{preloadFS:"65-apple2"},c64:{preloadFS:"65-c64"},vic20:{preloadFS:"65-vic20"},nes:{preloadFS:"65-nes"},atari8:{preloadFS:"65-atari8"},vector:{preloadFS:"65-none"},atari7800:{preloadFS:"65-none"},devel:{preloadFS:"65-none"},vcs:{preloadFS:"65-atari2600"},pce:{preloadFS:"65-pce"},exidy:{preloadFS:"65-none"}},yo={dasm:{id:"dasm",name:"DASM",kind:"assembler",arch:"6502",extensions:[".dasm"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/dasm-assembler/dasm/refs/tags/v2.20.17/docs/dasm.txt",wasmModule:"dasm-wasisdk",version:"2.20.17",includePatterns:Le,linkPatterns:Ie},acme:{id:"acme",name:"ACME",kind:"assembler",arch:"6502",extensions:[".acme"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/sehugg/acme/main/docs/QuickRef.txt",wasmModule:"acme",version:"0.97.1",includePatterns:[...Le,...RP],linkPatterns:Ie},xa:{id:"xa",name:"XA",kind:"assembler",arch:"6502",extensions:[".xa"],editorStyle:"6502",helpURL:"https://www.floodgap.com/retrotech/xa/",wasmModule:"xa",version:"2.4.1",includePatterns:Le,linkPatterns:Ie},nesasm:{id:"nesasm",name:"NESASM",kind:"assembler",arch:"6502",extensions:[".nesasm"],editorStyle:"6502",wasmModule:"nesasm",version:"3.1",includePatterns:Le,linkPatterns:Ie},merlin32:{id:"merlin32",name:"Merlin 32",kind:"assembler",arch:"6502",extensions:[".lnk"],editorStyle:"6502",wasmModule:"merlin32",version:"1.1.10",includePatterns:[...Le,...Ug],linkPatterns:Ie},cc65:{id:"cc65",name:"cc65",kind:"compiler",arch:"6502",extensions:[".c",".h"],includeDirs:["/include","/asminc"],editorStyle:"text/x-csrc",helpURL:"https://cc65.github.io/doc/cc65.html",wasmModule:"cc65",version:"2.19",platforms:Ag,includePatterns:Le,linkPatterns:Ie},ca65:{id:"ca65",name:"ca65",kind:"assembler",arch:"6502",extensions:[".s",".ca65",".inc"],includeDirs:["/include","/asminc"],editorStyle:"6502",helpURL:"https://cc65.github.io/doc/ca65.html",wasmModule:"ca65",version:"2.19",platforms:Ag,includePatterns:Le,linkPatterns:Ie},ld65:{id:"ld65",name:"ld65",kind:"linker",arch:"6502",extensions:[],wasmModule:"ld65",version:"2.19"},sdcc:{id:"sdcc",name:"SDCC",kind:"compiler",arch:"z80",extensions:[".c",".h"],includeDirs:["/include"],editorStyle:"text/x-csrc",helpURL:"http://sdcc.sourceforge.net/doc/sdccman.pdf",wasmModule:"sdcc",version:"3.6.5",platforms:{default:{preloadFS:"sdcc"}},includePatterns:Le,linkPatterns:Ie},sdasz80:{id:"sdasz80",name:"sdasz80",kind:"assembler",arch:"z80",extensions:[".s"],includeDirs:["/include"],editorStyle:"z80",wasmModule:"sdasz80",version:"02.00",platforms:{default:{preloadFS:"sdcc"}},includePatterns:Le,linkPatterns:Ie},sdasgb:{id:"sdasgb",name:"sdasgb",kind:"assembler",arch:"gbz80",extensions:[".sgb"],includeDirs:["/include"],editorStyle:"z80",wasmModule:"sdasgb",platforms:{default:{preloadFS:"sdcc"}},includePatterns:Le,linkPatterns:Ie},sdldz80:{id:"sdldz80",name:"sdldz80",kind:"linker",arch:"z80",extensions:[],wasmModule:"sdldz80",version:"03.00"},sccz80:{id:"sccz80",name:"sccz80",kind:"compiler",arch:"z80",extensions:[".scc"],platforms:{default:{preloadFS:"sccz80"}},noWorkerBuild:!0},naken:{id:"naken",name:"Naken",kind:"assembler",extensions:[".ns"],noWorkerBuild:!0},zmac:{id:"zmac",name:"zmac",kind:"assembler",arch:"z80",extensions:[".z"],editorStyle:"z80",helpURL:"https://raw.githubusercontent.com/sehugg/zmac/master/doc.txt",wasmModule:"zmac",version:"28jul2018",includePatterns:Le,linkPatterns:Ie},jsasm:{id:"jsasm",name:"JSASM",kind:"assembler",extensions:[".asm"],editorStyle:"z80",includePatterns:wo,linkPatterns:[]},xasm6809:{id:"xasm6809",name:"XASM6809",kind:"assembler",arch:"6809",extensions:[".xasm"],editorStyle:"6809",wasmModule:"xasm6809",includePatterns:[...Le,...Ug],linkLine truncated
`){[e,t]=ds(this,e,t);let n="";for(let s=0,o=0;s<=t&&o<this.text.length;o++){let a=this.text[o],l=s+a.length;s>e&&o&&(n+=r),e<l&&t>s&&(n+=a.slice(Math.max(0,e-s),t-s)),s=l+1}return n}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let r=[],n=-1;for(let s of e)r.push(s),n+=s.length+1,r.length==32&&(t.push(new i(r,n)),r=[],n=-1);return n>-1&&t.push(new i(r,n)),t}},Os=class i extends Pe{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let r of e)this.lines+=r.lines}lineInner(e,t,r,n){for(let s=0;;s++){let o=this.children[s],a=n+o.length,l=r+o.lines-1;if((t?l:a)>=e)return o.lineInner(e,t,r,n);n=a+1,r=l+1}}decompose(e,t,r,n){for(let s=0,o=0;o<=t&&s<this.children.length;s++){let a=this.children[s],l=o+a.length;if(e<=l&&t>=o){let c=n&((o<=e?1:0)|(l>=t?2:0));o>=e&&l<=t&&!c?r.push(a):a.decompose(e-o,t-o,r,c)}o=l+1}}replace(e,t,r){if([e,t]=ds(this,e,t),r.lines<this.lines)for(let n=0,s=0;n<this.children.length;n++){let o=this.children[n],a=s+o.length;if(e>=s&&t<=a){let l=o.replace(e-s,t-s,r),c=this.lines-o.lines+l.lines;if(l.lines<c>>4&&l.lines>c>>6){let h=this.children.slice();return h[n]=l,new i(h,this.length-(t-e)+r.length)}return super.replace(s,a,l)}s=a+1}return super.replace(e,t,r)}sliceString(e,t=this.length,r=`
`){[e,t]=ds(this,e,t);let n="";for(let s=0,o=0;s<this.children.length&&o<=t;s++){let a=this.children[s],l=o+a.length;o>e&&s&&(n+=r),e<l&&t>o&&(n+=a.sliceString(e-o,t-o,r)),o=l+1}return n}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof i))return 0;let r=0,[n,s,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=t,s+=t){if(n==o||s==a)return r;let l=this.children[n],c=e.children[s];if(l!=c)return r+l.scanIdentical(c,t);r+=l.length+1}}static from(e,t=e.reduce((r,n)=>r+n.length+1,-1)){let r=0;for(let u of e)r+=u.lines;if(r<32){let u=[];for(let p of e)p.flatten(u);return new Jt(u,t)}let n=Math.max(32,r>>5),s=n<<1,o=n>>1,a=[],l=0,c=-1,h=[];function O(u){let p;if(u.lines>s&&u instanceof i)for(let m of u.children)O(m);else u.lines>o&&(l>o||!l)?(f(),a.push(u)):u instanceof Jt&&l&&(p=h[h.length-1])instanceof Jt&&u.lines+p.lines<=32?(l+=u.lines,c+=u.length+1,h[h.length-1]=new Jt(p.text.concat(u.text),p.length+1+u.length)):(l+u.lines>n&&f(),l+=u.lines,c+=u.length+1,h.push(u))}function f(){l!=0&&(a.push(h.length==1?h[0]:i.from(h,c)),c=-1,l=h.length=0)}for(let u of e)O(u);return f(),a.length==1?a[0]:new i(a,t)}};Pe.empty=new Jt([""],0);function YP(i){let e=-1;for(let t of i)e+=t.length+1;return e}function Xl(i,e,t=0,r=1e9){for(let n=0,s=0,o=!0;s<i.length&&n<=r;s++){let a=i[s],l=n+a.length;l>=t&&(l>r&&(a=a.slice(0,r-n)),n<t&&(a=a.slice(t-n)),o?(e[e.length-1]+=a,o=!1):e.push(a)),n=l+1}return e}function Hg(i,e,t){return Xl(i,[""],e,t)}var xn=class{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof Jt?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let r=this.nodes.length-1,n=this.nodes[r],s=this.offsets[r],o=s>>1,a=n instanceof Jt?n.text.length:n.children.length;if(o==(t>0?a:0)){if(r==0)return this.done=!0,this.value="",this;t>0&&this.offsets[r-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[r]+=t,e==0)return this.lineBreak=!0,this.value=`
`,this;e--}else if(n instanceof Jt){let l=n.text[o+(t<0?-1:0)];if(this.offsets[r]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=n.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[r]+=t):(t<0&&this.offsets[r]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof Jt?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},_l=class{constructor(e,t,r){this.value="",this.done=!1,this.cursor=new xn(e,t>r?-1:1),this.pos=t>r?e.length:0,this.from=Math.min(t,r),this.to=Math.max(t,r)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let r=t<0?this.pos-this.from:this.to-this.pos;e>r&&(e=r),r-=e;let{value:n}=this.cursor.next(e);return this.pos+=(n.length+e)*t,this.value=n.length<=r?n:t<0?n.slice(n.length-r):n.slice(0,r),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},Rl=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:r,value:n}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol!="undefined"&&(Pe.prototype[Symbol.iterator]=function(){return this.iter()},xn.prototype[Symbol.iterator]=_l.prototype[Symbol.iterator]=Rl.prototype[Symbol.iterator]=function(){return this});var hf=class{constructor(e,t,r,n){this.from=e,this.to=t,this.number=r,this.text=n}get length(){return this.to-this.from}};function ds(i,e,t){return e=Math.max(0,Math.min(i.length,e)),[e,Math.max(e,Math.min(i.length,t))]}function it(i,e,t=!0,r=!0){return Fg(i,e,t,r)}function MP(i){return i>=56320&&i<57344}function LP(i){return i>=55296&&i<56320}function Ci(i,e){let t=i.charCodeAt(e);if(!LP(t)||e+1==i.length)return t;let r=i.charCodeAt(e+1);return MP(r)?(t-55296<<10)+(r-56320)+65536:t}function El(i){return i<=65535?String.fromCharCode(i):(i-=65536,String.fromCharCode((i>>10)+55296,(i&1023)+56320))}function Cr(i){return i<65536?1:2}var Of=/\r\n?|\n/,Ot=(function(i){return i[i.Simple=0]="Simple",i[i.TrackDel=1]="TrackDel",i[i.TrackBefore=2]="TrackBefore",i[i.TrackAfter=3]="TrackAfter",i})(Ot||(Ot={})),Or=class i{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let r=this.sections[t+1];e+=r<0?this.sections[t]:r}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,r=0,n=0;t<this.sections.length;){let s=this.sections[t++],o=this.sections[t++];o<0?(e(r,n,s),n+=s):n+=o,r+=s}}iterChangedRanges(e,t=!1){ff(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let r=this.sections[t++],n=this.sections[t++];n<0?e.push(r,n):e.push(n,r)}return new i(e)}composeDesc(e){return this.empty?e:e.empty?this:ib(this,e)}mapDesc(e,t=!1){return e.empty?this:uf(this,e,t)}mapPos(e,t=-1,r=Ot.Simple){let n=0,s=0;for(let o=0;o<this.sections.length;){let a=this.sections[o++],l=this.sections[o++],c=n+a;if(l<0){if(c>e)return s+(e-n);s+=a}else{if(r!=Ot.Simple&&c>=e&&(r==Ot.TrackDel&&n<e&&c>e||r==Ot.TrackBefore&&n<e||r==Ot.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!a)return e==n||t<0?s:s+l;s+=l}n=c}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return s}touchesRange(e,t=e){for(let r=0,n=0;r<this.sections.length&&n<=t;){let s=this.sections[r++],o=this.sections[r++],a=n+s;if(o>=0&&n<=t&&a>=e)return n<e&&a>t?"cover":!0;n=a}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let r=this.sections[t++],n=this.sections[t++];e+=(e?" ":"")+r+(n>=0?":"+n:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new i(e)}static create(e){return new i(e)}},At=class i extends Or{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return ff(this,(t,r,n,s,o)=>e=e.replace(n,n+(r-t),o),!1),e}mapDesc(e,t=!1){return uf(this,e,t,!0)}invert(e){let t=this.sections.slice(),r=[];for(let n=0,s=0;n<t.length;n+=2){let o=t[n],a=t[n+1];if(a>=0){t[n]=a,t[n+1]=o;let l=n>>1;for(;r.length<l;)r.push(Pe.empty);r.push(o?e.slice(s,s+o):Pe.empty)}s+=o}return new i(t,r)}compose(e){return this.empty?e:e.empty?this:ib(this,e,!0)}map(e,t=!1){return e.empty?this:uf(this,e,t,!0)}iterChanges(e,t=!1){ff(this,e,t)}get desc Line truncated
@@ -174,4 +174,4 @@ localforage/dist/localforage.js:
dompurify/dist/purify.cjs.js:
(*! @license DOMPurify 3.4.13 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.13/LICENSE *)
*/
//# sourceMappingURL=chunk-PUOMI72S.js.map
//# sourceMappingURL=chunk-X3GW3E7W.js.map
+7
View File
@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../node_modules/localforage/dist/localforage.js", "../node_modules/dompurify/src/utils.ts", "../node_modules/dompurify/src/tags.ts", "../node_modules/dompurify/src/attrs.ts", "../node_modules/dompurify/src/regexp.ts", "../node_modules/dompurify/src/purify.ts", "../src/ide/ui.ts", "../src/common/toolmeta.ts", "../src/ide/errorreport.ts", "../src/ide/dialogs.ts", "../node_modules/@marijn/find-cluster-break/src/index.js", "../node_modules/@codemirror/state/dist/index.js", "../node_modules/style-mod/src/style-mod.js", "../node_modules/w3c-keyname/index.js", "../node_modules/crelt/index.js", "../node_modules/@codemirror/view/dist/index.js", "../node_modules/@lezer/common/dist/index.js", "../node_modules/@lezer/highlight/dist/index.js", "../node_modules/@codemirror/language/dist/index.js", "../node_modules/@codemirror/autocomplete/dist/index.js", "../src/ide/views/debug.ts", "../node_modules/@codemirror/commands/dist/index.js", "../src/ide/views/tabs.ts", "../src/ide/settings.ts", "../src/ide/storage.ts", "../src/ide/project.ts", "../src/common/workertypes.ts", "../src/ide/services.ts", "../src/common/audio/CommodoreTape.ts", "../src/ide/shareexport.ts", "../src/ide/sync.ts", "../src/ide/search/symbolindex.ts", "../src/common/symbols/index.ts", "../src/ide/search/projectsource.ts", "../src/ide/search/toolchainsource.ts", "../src/ide/search/docssource.ts", "../src/ide/search/service.ts", "../node_modules/@lezer/lr/dist/index.js", "../node_modules/@lezer/cpp/dist/index.js", "../node_modules/@codemirror/lang-cpp/dist/index.js", "../node_modules/@codemirror/search/dist/index.js", "../src/parser/tokens-6502.ts", "parser/lang-6502.grammar.js", "../src/parser/lang-6502.ts", "../src/parser/tokens-z80.ts", "parser/lang-z80.grammar.js", "../src/parser/lang-z80.ts", "../src/parser/lang-wiz.ts", "../src/parser/lang-verilog.ts", "../src/parser/lang-inform6.ts", "../src/parser/lang-dialog.ts", "../src/parser/lang-basic.ts", "../src/parser/lang-fastbasic.ts", "../src/parser/lang-bataribasic.ts", "../node_modules/@lezer/markdown/dist/index.js", "../node_modules/@lezer/html/dist/index.js", "../node_modules/@lezer/css/dist/index.js", "../node_modules/@codemirror/lang-css/dist/index.js", "../node_modules/@lezer/javascript/dist/index.js", "../node_modules/@codemirror/lang-javascript/dist/index.js", "../node_modules/@codemirror/lang-html/dist/index.js", "../node_modules/@codemirror/lang-markdown/dist/index.js", "../src/parser/registry.ts", "../src/themes/cobalt.ts", "../src/themes/disassemblyTheme.ts", "../src/themes/editorTheme.ts", "../src/themes/mbo.ts", "../src/ide/views/assetdecorations.ts", "../src/ide/views/includedecorations.ts", "../src/ide/views/baseviews.ts", "../src/ide/views/filters.ts", "../src/ide/views/gutter.ts", "../src/ide/views/visuals.ts", "../src/ide/views/editors.ts", "../src/common/vtextscroller.ts", "../src/ide/views/debugviews.ts", "../src/ide/search/debuggerhit.ts", "../src/ide/search/searchview.ts", "../src/ide/pixeleditor.ts", "../src/ide/views/asseteditor.ts", "../src/ide/views/treeviews.ts", "../src/ide/windows.ts"],
"sourcesContent": ["/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callLine truncated
"mappings": "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 truncated
"names": ["require_localforage", "__commonJSMin", "exports", "module", "f", "g", "define", "e", "t", "n", "r", "s", "o", "u", "a", "__require", "i", "l", "_dereq_", "global", "Mutation", "scheduleDrain", "called", "observer", "nextTick", "element", "channel", "scriptEl", "draining", "queue", "oldQueue", "len", "immediate", "task", "INTERNAL", "handlers", "REJECTED", "FULFILLED", "PENDING", "Promise", "resolver", "safelyResolveThenable", "onRejected", "onFulfilled", "promise", "unwrap", "QueueItem", "value", "func", "returnValue", "self", "result", "tryCatch", "getThen", "thenable", "error", "obj", "then", "onError", "onSuccess", "tryToUnwrap", "out", "resolve", "reject", "reason", "all", "iterable", "values", "resolved", "allResolver", "resolveFromAll", "outValue", "race", "response", "_typeof", "_classCallCheck", "instance", "Constructor", "getIDB", "idb", "isIndexedDBValid", "isSafari", "hasFetch", "createBlob", "parts", "properties", "Builder", "builder", "Promise$1", "executeCallback", "callback", "executeTwoCallbacks", "errorCallback", "normalizeKey", "key", "getCallback", "DETECT_BLOB_SUPPORT_STORE", "supportsBlobs", "dbContexts", "toString", "READ_ONLY", "READ_WRITE", "_binStringToArrayBuffer", "bin", "length", "buf", "arr", "_checkBlobSupportWithoutCaching", "txn", "blob", "matchedChrome", "matchedEdge", "_checkBlobSupport", "_deferReadiness", "dbInfo", "dbContext", "deferredOperation", "_advanceReadiness", "_rejectReadiness", "err", "_getConnection", "upgradeNeeded", "createDbContext", "dbArgs", "openreq", "db", "ex", "_getOriginalConnection", "_getUpgradedConnection", "_isUpgradeNeeded", "defaultVersion", "isNewStore", "isDowngrade", "isUpgrade", "incVersion", "_encodeBlob", "reader", "base64", "_decodeBlob", "encodedBlob", "arrayBuff", "_isEncodedBlob", "_fullyReady", "_tryReconnect", "forages", "forage", "createTransaction", "mode", "retries", "tx", "_initStorage", "options", "initPromises", "ignoreErrors", "j", "k", "getItem", "transaction", "store", "req", "iterate", "iterator", "iterationNumber", "cursor", "setItem", "blobSupport", "removeItem", "clear", "advanced", "keys", "dropInstance", "currentConfig", "isCurrentDb", "dbPromise", "newVersion", "dropObjectPromise", "_forage2", "dropDBPromise", "_forage", "asyncStorage", "isWebSQLValid", "BASE_CHARS", "BLOB_TYPE_PREFIX", "BLOB_TYPE_PREFIX_REGEX", "SERIALIZED_MARKER", "SERIALIZED_MARKER_LENGTH", "TYPE_ARRAYBUFFER", "TYPE_BLOB", "TYPE_INT8ARRAY", "TYPE_UINT8ARRAY", "TYPE_UINT8CLAMPEDARRAY", "TYPE_INT16ARRAY", "TYPE_INT32ARRAY", "TYPE_UINT16ARRAY", "TYPE_UINT32ARRAY", "TYPE_FLOAT32ARRAY", "TYPE_FLOAT64ARRAY", "TYPE_SERIALIZED_MARKER_LENGTH", "toString$1", "stringToBuffer", "serializedString", "bufferLength", "p", "encoded1", "encoded2", "encoded3", "encoded4", "buffer", "bytes", "bufferToString", "base64String", "serialize", "valueType", "marker", "fileReader", "str", "deserialize", "type", "blobType", "matcher", "localforageSerializer", "createDbTable", "_initStorage$1", "dbInfoPromise", "tryExecuteSql", "sqlStatement", "args", "results", "getItem$1", "iterate$1", "rows", "item", "_setItem", "retriesLeft", "originalValue", "sqlError", "setItem$1", "removeItem$1", "clear$1", "length$1", "key$1", "keys$1", "getAllStoreNames", "storeNames", "dropInstance$1", "operationInfo", "dropTable", "storeName", "operations", "webSQLStorage", "isLocalStorageValid", "_getKeyPrefix", "defaultConfig", "keyPrefix", "checkIfLocalStorageThrows", "localStorageTestKey", "_isLocalStorageUsable", "_initStorage$2", "clear$2", "getItem$2", "iterate$2", "keyPrefixLength", "key$2", "keys$2", "itemKey", "length$2", "removeItem$2", "setItem$2", "dropInstance$2", "localStorageWrapper", "sameValue", "x", "y", "includes", "array", "searchElement", "isArray", "arg", "DefinedDrivers", "DriverSupport", "DefaultDrivers", "DefaultDriverOrder", "OptionalDriverMethods", "LibraryMethods", "DefaultConfig", "callWhenReady", "localForageInstance", "libraryMethod", "_args", "extend", "_key", "LocalForage", "driverTypeKey", "driver", "driverName", "driverObject", "complianceError", "driverMethods", "driverMethodName", "isRequired", "configureMissingMethods", "methodNotImplementedFactory", "methodName", "_i", "_len", "optionalDriverMethod", "setDriverSupport", "support", "getDriverPromise", "serializerPromise", "drivers", "supportedDrivers", "setDriverToConfig", "extendSelfWithDriver", "initDriver", "currentDriverIndex", "driverPromiseLoop", "oldDriverSetDone", "libraryMethodsAndProperties", "localforage_js", "entries", "Object", "setPrototypeOf", "isFrozen", "getPrototypeOf", "getOwnPropertyDescriptor", "freeze", "seal", "create", "_ref", "Reflect", "apply", "construct", "x", "func", "thisArg", "_len", "arguments", "length", "args", "Array", "_key", "Func", "_len2", "_key2", "arrayForEach", "unapply", "prototype", "forEach", "arrayLastIndexOf", "lastIndexOf", "arrayPop", "pop", "arrayPush", "push", "arraySplice", "splice", "arrayIsArray", "isArray", "stringToLowerCase", "String", "toLoLine truncated
}
+2 -2
View File
@@ -149,7 +149,7 @@ exports.TOOL_META = {
extensions: ['.lnk'],
editorStyle: '6502',
wasmModule: 'merlin32',
version: '1.1.1',
version: '1.1.10',
includePatterns: [...exports.SHARED_INCLUDE_PATTERNS, ...exports.USE_ASM_INCLUDE_PATTERNS],
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
@@ -339,7 +339,7 @@ exports.TOOL_META = {
extensions: ['.asm'],
editorStyle: 'gas',
wasmModule: 'yasm',
version: '1.3.0.47.gc9db',
version: '1.3.0',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"toolmeta.js","sourceRoot":"","sources":["../../src/common/toolmeta.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"toolmeta.js","sourceRoot":"","sources":["../../src/common/toolmeta.ts"],"names":[],"mappings":"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 truncated
+27
View File
@@ -655,6 +655,19 @@ class WASIRunner {
this.poke_filestat(filestat_ptr, fd);
return WASIErrors.SUCCESS;
}
fd_filestat_set_size(fd, size) {
const file = this.fds[fd];
debug("fd_filestat_set_size", fd, size, file + "");
if (file == null)
return WASIErrors.BADF;
if (typeof size == 'bigint')
size = Number(size);
file.ensureCapacity(size);
if (size < file.size)
file.offset = Math.min(file.offset, size);
file.size = size;
return WASIErrors.SUCCESS;
}
fd_filestat_get(fd, filestat_ptr) {
const file = this.fds[fd];
debug("fd_filestat_get", fd, filestat_ptr, file + "");
@@ -717,6 +730,18 @@ class WASIRunner {
this.poke64(time_ptr, time);
return WASIErrors.SUCCESS;
}
path_create_directory(fd, path_ptr, path_len) {
const dir = this.fds[fd];
if (dir == null)
return WASIErrors.BADF;
if (dir.type !== FDType.DIRECTORY)
return WASIErrors.NOTDIR;
const filename = this.peekUTF8(path_ptr, path_len);
const path = dir.name + '/' + filename;
debug("path_create_directory", path);
this.fs.putDirectory(path);
return WASIErrors.SUCCESS;
}
getWASISnapshotPreview1() {
return {
args_sizes_get: this.args_sizes_get.bind(this),
@@ -734,9 +759,11 @@ class WASIRunner {
fd_close: this.fd_close.bind(this),
path_filestat_get: this.path_filestat_get.bind(this),
fd_filestat_get: this.fd_filestat_get.bind(this),
fd_filestat_set_size: this.fd_filestat_set_size.bind(this),
random_get: this.random_get.bind(this),
path_readlink: this.path_readlink.bind(this),
path_unlink_file: this.path_unlink_file.bind(this),
path_create_directory: this.path_create_directory.bind(this),
clock_time_get: this.clock_time_get.bind(this),
fd_fdstat_set_flags() { warning("TODO: fd_fdstat_set_flags"); return WASIErrors.NOTSUP; },
fd_readdir() { warning("TODO: fd_readdir"); return WASIErrors.NOTSUP; },
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"wasishim.js","sourceRoot":"","sources":["../../../src/common/wasi/wasishim.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"wasishim.js","sourceRoot":"","sources":["../../../src/common/wasi/wasishim.ts"],"names":[],"mappings":"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 truncated
@@ -1,2 +1,2 @@
import{a as x}from"./chunk-3FIVEUG2.js";import{u as y}from"./chunk-PUOMI72S.js";import"./chunk-UG4IOEUD.js";import"./chunk-LNOKARBD.js";import"./chunk-A7SWO6EA.js";import"./chunk-WEPPO4GD.js";import{J as m,m as c,p}from"./chunk-CZ7OSHSE.js";import{C as d,K as f,aa as a,n as h}from"./chunk-TYDI7JZQ.js";import"./chunk-KT7KMEQC.js";var n=31,s=class extends p{constructor(){super();this.cpuFrequency=1e6;this.defaultROMSize=32768;this.cpu=new c;this.ram=new Uint8Array(16384);this.read=a([[0,16383,16383,e=>this.ram[e]],[16384,16384,65535,e=>this.serial.byteAvailable()?128:0],[16385,16385,65535,e=>this.serial.recvByte()],[16386,16386,65535,e=>this.serial.clearToSend()?128:0],[32768,65535,32767,e=>this.rom&&this.rom[e]]]);this.write=a([[0,16383,16383,(e,r)=>{this.ram[e]=r}],[16387,16387,65535,(e,r)=>this.serial.sendByte(r)],[16399,16399,65535,(e,r)=>{this.inputs[n]=1}]]);this.connectCPUMemoryBus(this)}connectSerialIO(e){this.serial=e}readConst(e){return this.read(e)}advanceFrame(e){for(var r=0;r<this.cpuFrequency/60&&!(e&&e());)r+=this.advanceCPU();return r}advanceCPU(){if(this.isHalted())return 1;var e=super.advanceCPU();return this.serial&&this.serial.advance(e),e}reset(){this.inputs[n]=0,super.reset(),this.serial&&this.serial.reset()}isHalted(){return this.inputs[n]!=0}};var S=[{id:"hello.dasm",name:"Hello World (ASM)"}],l=class{constructor(t){t.style.overflowY="auto";var e=$('<div id="gameport"/>').appendTo(t);$('<p class="transcript-header">Serial Output</p>').appendTo(e);var r=$('<div id="windowport" class="transcript"/>').appendTo(e);this.div=r[0]}start(){this.tty=new x(this.div,!1)}reset(){this.tty.clear()}saveState(){return this.tty.saveState()}loadState(t){this.tty.loadState(t)}};function v(i){return i==10?"":i<32?String.fromCharCode(i+9216):String.fromCharCode(i)}var u=class{constructor(){this.bufferedRead=!0;this.cyclesPerByte=1e6/(57600/8);this.maxOutputBytes=4096}clearToSend(){return this.outputBytes.length<this.maxOutputBytes}sendByte(t){this.clearToSend()&&(this.outputBytes.push(t),this.viewer.tty.addtext(v(t),34),t==10&&this.viewer.tty.newline(),this.clearToSend()||(this.viewer.tty.newline(),this.viewer.tty.addtext("\u26A0\uFE0F OUTPUT BUFFER FULL \u26A0\uFE0F",4)))}byteAvailable(){return this.readIndex()>this.inputIndex}recvByte(){var t=this.readIndex();this.inputIndex=t;var e=(this.inputBytes&&this.inputBytes[t])|0;return this.viewer.tty.addtext(v(e),18),e==10&&this.viewer.tty.newline(),e}readIndex(){return this.bufferedRead?this.inputIndex+1:Math.floor(this.clk/this.cyclesPerByte)}reset(){this.inputIndex=-1,this.clk=0,this.outputBytes=[],this.bufin=""}advance(t){this.clk+=t}saveState(){return{clk:this.clk,idx:this.inputIndex,out:this.outputBytes.slice()}}loadState(t){this.clk=t.clk,this.inputIndex=t.idx,this.outputBytes=t.out.slice()}},o=class extends m{constructor(e){super(e);this.getMemoryMap=function(){return{main:[{name:"RAM",start:0,size:16384,type:"ram"},{name:"ROM",start:32768,size:32768,type:"rom"}]}};this.serview=new l(e)}async start(){super.start(),this.serial=new u,this.serial.viewer=this.serview,this.serview.start(),this.machine.connectSerialIO(this.serial)}reset(){this.serial.inputBytes=d(this.internalFiles["serialin.dat"]),super.reset(),this.serview.reset()}isBlocked(){return this.machine.isHalted()}advance(e){return this.isBlocked()?(this.internalFiles["serialout.dat"]=h(this.serial.outputBytes),y(),0):super.advance(e)}saveState(){var e=super.saveState();return e.serial=this.serial.saveState(),e.serview=this.serview.saveState(),e}loadState(e){super.loadState(e),this.serial.loadState(e.serial),this.serview.loadState(e.serview)}newMachine(){return new s}getPresets(){return S}readAddress(e){return this.machine.readConst(e)}};f["devel-6502"]=o;export{u as SerialTestHarness};
//# sourceMappingURL=devel-MXNMHFEG.js.map
import{a as x}from"./chunk-3FIVEUG2.js";import{u as y}from"./chunk-X3GW3E7W.js";import"./chunk-UG4IOEUD.js";import"./chunk-LNOKARBD.js";import"./chunk-A7SWO6EA.js";import"./chunk-THWBEUY4.js";import{J as m,m as c,p}from"./chunk-CZ7OSHSE.js";import{C as d,K as f,aa as a,n as h}from"./chunk-TYDI7JZQ.js";import"./chunk-KT7KMEQC.js";var n=31,s=class extends p{constructor(){super();this.cpuFrequency=1e6;this.defaultROMSize=32768;this.cpu=new c;this.ram=new Uint8Array(16384);this.read=a([[0,16383,16383,e=>this.ram[e]],[16384,16384,65535,e=>this.serial.byteAvailable()?128:0],[16385,16385,65535,e=>this.serial.recvByte()],[16386,16386,65535,e=>this.serial.clearToSend()?128:0],[32768,65535,32767,e=>this.rom&&this.rom[e]]]);this.write=a([[0,16383,16383,(e,r)=>{this.ram[e]=r}],[16387,16387,65535,(e,r)=>this.serial.sendByte(r)],[16399,16399,65535,(e,r)=>{this.inputs[n]=1}]]);this.connectCPUMemoryBus(this)}connectSerialIO(e){this.serial=e}readConst(e){return this.read(e)}advanceFrame(e){for(var r=0;r<this.cpuFrequency/60&&!(e&&e());)r+=this.advanceCPU();return r}advanceCPU(){if(this.isHalted())return 1;var e=super.advanceCPU();return this.serial&&this.serial.advance(e),e}reset(){this.inputs[n]=0,super.reset(),this.serial&&this.serial.reset()}isHalted(){return this.inputs[n]!=0}};var S=[{id:"hello.dasm",name:"Hello World (ASM)"}],l=class{constructor(t){t.style.overflowY="auto";var e=$('<div id="gameport"/>').appendTo(t);$('<p class="transcript-header">Serial Output</p>').appendTo(e);var r=$('<div id="windowport" class="transcript"/>').appendTo(e);this.div=r[0]}start(){this.tty=new x(this.div,!1)}reset(){this.tty.clear()}saveState(){return this.tty.saveState()}loadState(t){this.tty.loadState(t)}};function v(i){return i==10?"":i<32?String.fromCharCode(i+9216):String.fromCharCode(i)}var u=class{constructor(){this.bufferedRead=!0;this.cyclesPerByte=1e6/(57600/8);this.maxOutputBytes=4096}clearToSend(){return this.outputBytes.length<this.maxOutputBytes}sendByte(t){this.clearToSend()&&(this.outputBytes.push(t),this.viewer.tty.addtext(v(t),34),t==10&&this.viewer.tty.newline(),this.clearToSend()||(this.viewer.tty.newline(),this.viewer.tty.addtext("\u26A0\uFE0F OUTPUT BUFFER FULL \u26A0\uFE0F",4)))}byteAvailable(){return this.readIndex()>this.inputIndex}recvByte(){var t=this.readIndex();this.inputIndex=t;var e=(this.inputBytes&&this.inputBytes[t])|0;return this.viewer.tty.addtext(v(e),18),e==10&&this.viewer.tty.newline(),e}readIndex(){return this.bufferedRead?this.inputIndex+1:Math.floor(this.clk/this.cyclesPerByte)}reset(){this.inputIndex=-1,this.clk=0,this.outputBytes=[],this.bufin=""}advance(t){this.clk+=t}saveState(){return{clk:this.clk,idx:this.inputIndex,out:this.outputBytes.slice()}}loadState(t){this.clk=t.clk,this.inputIndex=t.idx,this.outputBytes=t.out.slice()}},o=class extends m{constructor(e){super(e);this.getMemoryMap=function(){return{main:[{name:"RAM",start:0,size:16384,type:"ram"},{name:"ROM",start:32768,size:32768,type:"rom"}]}};this.serview=new l(e)}async start(){super.start(),this.serial=new u,this.serial.viewer=this.serview,this.serview.start(),this.machine.connectSerialIO(this.serial)}reset(){this.serial.inputBytes=d(this.internalFiles["serialin.dat"]),super.reset(),this.serview.reset()}isBlocked(){return this.machine.isHalted()}advance(e){return this.isBlocked()?(this.internalFiles["serialout.dat"]=h(this.serial.outputBytes),y(),0):super.advance(e)}saveState(){var e=super.saveState();return e.serial=this.serial.saveState(),e.serview=this.serview.saveState(),e}loadState(e){super.loadState(e),this.serial.loadState(e.serial),this.serview.loadState(e.serview)}newMachine(){return new s}getPresets(){return S}readAddress(e){return this.machine.readConst(e)}};f["devel-6502"]=o;export{u as SerialTestHarness};
//# sourceMappingURL=devel-62JTH7LV.js.map
File renamed without changes.
+1 -1
View File
@@ -1,2 +1,2 @@
import{b as v,c as P}from"./chunk-WEPPO4GD.js";import{A as p,E as w,K as c,l as u,m,y as g}from"./chunk-TYDI7JZQ.js";import{e as I}from"./chunk-KT7KMEQC.js";var k=I(P()),i,a,l,h=(function(e){if(!e||e.length==0)return{};for(var r={},t=0;t<e.length;++t){var o=e[t].split("=",2);o.length==1?r[o[0]]="":r[o[0]]=decodeURIComponent(o[1].replace(/\+/g," "))}return r})(window.location.search.substr(1).split("&"));function x(){typeof window.onerror=="object"&&(window.onerror=function(e,r,t,o,n){var s=e+" "+r+" "+t+":"+o+", "+n;$.get("/error?msg="+encodeURIComponent(s),"text")})}function M(){var e=!1;document.addEventListener("visibilitychange",function(r){document.visibilityState=="hidden"&&a.isRunning()?(a.pause(),e=!0):document.visibilityState=="visible"&&e&&(a.resume(),e=!1)}),$(window).on("focus",function(){e&&(a.resume(),e=!1)}),$(window).on("blur",function(){a.isRunning()&&(a.pause(),e=!0)})}async function y(e,r){if(!r){alert("No ROM found.");return}console.log(r.length+" bytes"),await a.loadROM(e,r),a.resume()}function R(){return $("#emulator").find("canvas")}function E(e,r,t){w("gif.js/dist/gif.js").then(()=>{var o=R()[0];if(!o){alert("Could not find canvas element to record video!");return}var n=0;o.style&&o.style.transform&&(o.style.transform.indexOf("rotate(-90deg)")>=0?n=-1:o.style.transform.indexOf("rotate(90deg)")>=0&&(n=1));var s=new GIF({workerScript:"gif.js/dist/gif.worker.js",workers:4,quality:10,rotate:n});s.on("finished",function(C){console.log("finished encoding GIF"),t(C)}),e=e||100+(Math.random()*256&3),r=r||100+(Math.random()*256&15);var f=0;console.log("Recording video",o);var d=()=>{f++>r?(console.log("Rendering video"),s.render()):(s.addFrame(o,{delay:e,copy:!0}),setTimeout(d,e))};d()})}async function S(e){if(!c[i])throw Error("Invalid platform '"+i+"'.");a=new c[i]($("#emuscreen")[0]),await a.start(),e.rec&&R().on("focus",()=>{a.resume()});var r=e.n||"Game",t,o=e.url,n=e.r;if(o)return console.log(o),g(o,f=>{y(r,f)},"arraybuffer"),!0;if(n){var s=m(atob(n));t=new u().decode(s)}return M(),y(r,t),!0}async function b(e){if(e.data&&(e=e.data),i=e.p,!i)throw new Error("No platform variable!");try{var r=await v(p(i));console.log("starting platform",i),await S(e)}catch(t){console.log(t),alert('Platform "'+i+'" not supported.')}}function F(){x(),h.p&&b(h)}window.addEventListener("message",O,!1);function O(e){if(e.data){var r=e.data.cmd;if(r=="start"&&!a)b(e);else if(r=="reset")a.reset(),l.reset();else if(r=="getReplay"){var t={frameCount:l.frameCount,checkpoints:l.checkpoints,framerecs:l.framerecs,checkpointInterval:l.checkpointInterval,maxCheckpoints:l.maxCheckpoints};e.source.postMessage({ack:r,replay:t},e.origin)}else if(r=="watchState"){var o=new Function("platform","state",e.data.fn);l.callbackNewCheckpoint=n=>{e.source.postMessage({ack:r,state:o(a,n)},e.origin)}}else r=="recordVideo"?E(e.data.intervalMsec,e.data.maxFrames,function(n){e.data.filename&&(0,k.saveAs)(n,e.data.filename),e.source.postMessage({ack:r,gif:n},e.origin)}):console.log("Unknown data.cmd: "+r)}}self===top&&(document.body.style.backgroundColor="#555");F();export{a as platform,i as platform_id,F as startEmbed,l as stateRecorder};
import{b as v,c as P}from"./chunk-THWBEUY4.js";import{A as p,E as w,K as c,l as u,m,y as g}from"./chunk-TYDI7JZQ.js";import{e as I}from"./chunk-KT7KMEQC.js";var k=I(P()),i,a,l,h=(function(e){if(!e||e.length==0)return{};for(var r={},t=0;t<e.length;++t){var o=e[t].split("=",2);o.length==1?r[o[0]]="":r[o[0]]=decodeURIComponent(o[1].replace(/\+/g," "))}return r})(window.location.search.substr(1).split("&"));function x(){typeof window.onerror=="object"&&(window.onerror=function(e,r,t,o,n){var s=e+" "+r+" "+t+":"+o+", "+n;$.get("/error?msg="+encodeURIComponent(s),"text")})}function M(){var e=!1;document.addEventListener("visibilitychange",function(r){document.visibilityState=="hidden"&&a.isRunning()?(a.pause(),e=!0):document.visibilityState=="visible"&&e&&(a.resume(),e=!1)}),$(window).on("focus",function(){e&&(a.resume(),e=!1)}),$(window).on("blur",function(){a.isRunning()&&(a.pause(),e=!0)})}async function y(e,r){if(!r){alert("No ROM found.");return}console.log(r.length+" bytes"),await a.loadROM(e,r),a.resume()}function R(){return $("#emulator").find("canvas")}function E(e,r,t){w("gif.js/dist/gif.js").then(()=>{var o=R()[0];if(!o){alert("Could not find canvas element to record video!");return}var n=0;o.style&&o.style.transform&&(o.style.transform.indexOf("rotate(-90deg)")>=0?n=-1:o.style.transform.indexOf("rotate(90deg)")>=0&&(n=1));var s=new GIF({workerScript:"gif.js/dist/gif.worker.js",workers:4,quality:10,rotate:n});s.on("finished",function(C){console.log("finished encoding GIF"),t(C)}),e=e||100+(Math.random()*256&3),r=r||100+(Math.random()*256&15);var f=0;console.log("Recording video",o);var d=()=>{f++>r?(console.log("Rendering video"),s.render()):(s.addFrame(o,{delay:e,copy:!0}),setTimeout(d,e))};d()})}async function S(e){if(!c[i])throw Error("Invalid platform '"+i+"'.");a=new c[i]($("#emuscreen")[0]),await a.start(),e.rec&&R().on("focus",()=>{a.resume()});var r=e.n||"Game",t,o=e.url,n=e.r;if(o)return console.log(o),g(o,f=>{y(r,f)},"arraybuffer"),!0;if(n){var s=m(atob(n));t=new u().decode(s)}return M(),y(r,t),!0}async function b(e){if(e.data&&(e=e.data),i=e.p,!i)throw new Error("No platform variable!");try{var r=await v(p(i));console.log("starting platform",i),await S(e)}catch(t){console.log(t),alert('Platform "'+i+'" not supported.')}}function F(){x(),h.p&&b(h)}window.addEventListener("message",O,!1);function O(e){if(e.data){var r=e.data.cmd;if(r=="start"&&!a)b(e);else if(r=="reset")a.reset(),l.reset();else if(r=="getReplay"){var t={frameCount:l.frameCount,checkpoints:l.checkpoints,framerecs:l.framerecs,checkpointInterval:l.checkpointInterval,maxCheckpoints:l.maxCheckpoints};e.source.postMessage({ack:r,replay:t},e.origin)}else if(r=="watchState"){var o=new Function("platform","state",e.data.fn);l.callbackNewCheckpoint=n=>{e.source.postMessage({ack:r,state:o(a,n)},e.origin)}}else r=="recordVideo"?E(e.data.intervalMsec,e.data.maxFrames,function(n){e.data.filename&&(0,k.saveAs)(n,e.data.filename),e.source.postMessage({ack:r,gif:n},e.origin)}):console.log("Unknown data.cmd: "+r)}}self===top&&(document.body.style.backgroundColor="#555");F();export{a as platform,i as platform_id,F as startEmbed,l as stateRecorder};
//# sourceMappingURL=embedui.js.map
+75 -21
View File
@@ -57,6 +57,7 @@ const ASTROCADE_KEYCODE_MAP = (0, emu_1.makeKeycodeMap)([
]);
const audioOversample = 2;
const _BallyAstrocade = function (arcade) {
var machine;
var cpu;
var ram;
var membus, iobus;
@@ -71,6 +72,28 @@ const _BallyAstrocade = function (arcade) {
const INITIAL_WATCHDOG = 256;
const PIXEL_ON = 0xffeeeeee;
const PIXEL_OFF = 0xff000000;
/*
Screen RAM is DRAM shared by three requesters in priority order: DRAM refresh
(blanking only, so it never costs the CPU), screen refresh, then Z80/Magic.
CAS# free-runs, so memory timeslots are fixed and one Z80 M clock wide:
- Every Z80 screen-RAM access takes at least T1,T2,Tw,T3 — "A Z80 access cycle
to this memory always results in at least one wait state" — blanked or not.
That's +1 over the usual 3 T-states.
- During active video, the refresh wins the slot. Consumer mode fetches 1 byte
(4 px) every 4 PX = every 2 M clocks → memory is unavailable half the time
→ 50% of accesses eat a second wait state. Commercial/arcade fetches 4 bytes
(16 px) every 8 PX = every 4 M clocks → unavailable ¼ of the time → 25% eat
a second one.
- The fetch only runs for the 40 (consumer) / 20 (arcade) reads per line — 160
px of the 63.5 µs line, ≈70%. Border and hblank are free, as is ROM and the
arcade's separate scratch RAM board.
*/
const REFRESH_SLOT_MASK = arcade ? 3 : 1;
// the refresh reads 40 (consumer) or 20 (commercial) times per line, covering the
// 160 displayed pixels of the 63.5 us line; the rest is border and hblank
const ACTIVE_LINE_FRACTION = 0.7;
var activecycles = 0; // = ACTIVE_LINE_FRACTION of a scanline, set by init()
// state variables
var inputs = new Uint8Array(0x20);
var magicop = 0;
@@ -90,12 +113,24 @@ const _BallyAstrocade = function (arcade) {
var rotcount = 0;
var intst = 0;
var waitstates = 0;
var slotphase = 0;
var patboard = new Uint8Array(0x08);
var patdest = 0;
// is the video refresh reading screen RAM at this point in the frame?
function refreshing() {
return machine.scanline < verbl && machine.getRasterX() < activecycles;
}
// charge the Z80 for one screen RAM (DRAM) bus cycle
function screenwait() {
waitstates++; // always at least one wait state
if (refreshing() && !(slotphase++ & REFRESH_SLOT_MASK)) {
waitstates++; // and a second one when we collide with the screen refresh
}
}
function ramwrite(a, v) {
// set RAM
ram[a] = v;
waitstates++;
screenwait();
// mark scanline as dirty
dirtylines[((a & samask) / swbytes) | 0] = 1;
// this was old behavior where we updated instantly
@@ -208,6 +243,7 @@ const _BallyAstrocade = function (arcade) {
let curwidth;
let u13ff = 0;
let cycles = 0;
const wsave = waitstates;
u13ff = 0;
if ((m_pattern_mode & 0x02) === 0) {
u13ff = 1;
@@ -275,9 +311,10 @@ const _BallyAstrocade = function (arcade) {
}
m_pattern_height--;
}
// Adjust m_maincpu.icount
// m_maincpu.adjust_icount(-cycles);
// Replace the above line with the actual adjustment of icount.
// the pattern board owns the bus while it runs, so its own cycles (two reads
// and two writes per byte, as MAME counts them) replace the Z80 wait states
// that the transfers above accrued
waitstates = wsave + cycles;
}
this.drawScanline = (sl) => {
// interrupt
@@ -297,7 +334,9 @@ const _BallyAstrocade = function (arcade) {
refreshline(sl);
}
};
this.init = (machine, c, r, inp, psgg) => {
this.init = (mach, c, r, inp, psgg) => {
machine = mach;
activecycles = mach.cpuCyclesPerLine * ACTIVE_LINE_FRACTION;
cpu = c;
ram = r;
inputs = inp;
@@ -310,7 +349,7 @@ const _BallyAstrocade = function (arcade) {
read: (0, emu_1.newAddressDecoder)([
[0x0000, 0x1fff, 0x1fff, function (a) { return bios[a]; }],
[0x2000, 0x3fff, 0x1fff, function (a) { return rom ? rom[a] : 0; }],
[0x4000, 0x4fff, 0xfff, function (a) { waitstates++; return ram[a]; }],
[0x4000, 0x4fff, 0xfff, function (a) { screenwait(); return ram[a]; }],
]),
write: (0, emu_1.newAddressDecoder)([
[0x4000, 0x4fff, 0xfff, ramwrite],
@@ -319,18 +358,18 @@ const _BallyAstrocade = function (arcade) {
};
}
else {
// arcade game (TODO: wait states 1/4 of the time)
// arcade game
membus = {
read: (0, emu_1.newAddressDecoder)([
[0x4000, 0x7fff, 0x3fff, function (a) { return ram[a]; }], // screen RAM
[0xd000, 0xdfff, 0x0fff, function (a) { return ram[a + 0x4000]; }], // static RAM
[0x4000, 0x7fff, 0x3fff, function (a) { screenwait(); return ram[a]; }], // screen RAM
[0xd000, 0xdfff, 0x0fff, function (a) { return ram[a + 0x4000]; }], // static RAM (own board, no wait states)
[0x0000, 0x3fff, 0x3fff, function (a) { return rom ? rom[a] : 0; }], // ROM
[0x8000, 0xbfff, 0x3fff, function (a) { return rom ? rom[a + 0x4000] : 0; }], // ROM
]),
write: (0, emu_1.newAddressDecoder)([
[0x4000, 0x7fff, 0x3fff, ramwrite],
[0x0000, 0x3fff, 0x3fff, magicwrite],
[0xd000, 0xdfff, 0x0fff, function (a, v) { ramwrite(a + 0x4000, v); }], // static RAM
[0xd000, 0xdfff, 0x0fff, function (a, v) { ram[a + 0x4000] = v; }], // static RAM (not displayed, no wait states)
]),
};
}
@@ -442,8 +481,8 @@ const _BallyAstrocade = function (arcade) {
}
}
};
machine.connectCPUMemoryBus(membus);
machine.connectCPUIOBus(iobus);
mach.connectCPUMemoryBus(membus);
mach.connectCPUIOBus(iobus);
this.membus = membus;
this.iobus = iobus;
// default palette
@@ -451,11 +490,19 @@ const _BallyAstrocade = function (arcade) {
setpalette(i, i);
}
};
this.resetWaitStates = function (sl) {
var n = sl < verbl ? waitstates : 0; // only wait if video active
// wait states accrued since the last call, charged to the CPU by advanceCPU()
this.resetWaitStates = function () {
var n = waitstates;
waitstates = 0;
return n;
};
// read for the debugger/UI, without stalling the CPU
this.peek = function (a) {
var n = waitstates;
var v = membus.read(a);
waitstates = n;
return v;
};
this.loadState = (state) => {
cpu.loadState(state.c);
ram.set(state.ram);
@@ -473,6 +520,7 @@ const _BallyAstrocade = function (arcade) {
rotcount = state.rotcount;
rotdata.set(state.rotdata);
intst = state.intst;
slotphase = state.slotphase | 0;
inputs.set(state.inputs);
patboard.set(state.patboard);
patdest = state.patdest;
@@ -497,6 +545,7 @@ const _BallyAstrocade = function (arcade) {
rotcount: rotcount,
rotdata: rotdata.slice(0),
intst: intst,
slotphase: slotphase,
patboard: patboard.slice(0),
patdest: patdest,
};
@@ -544,12 +593,17 @@ class BallyAstrocade extends devices_1.BasicScanlineMachine {
constructor(arcade) {
super();
this.cpuFrequency = 1789000;
this.numTotalScanlines = 262;
this.sampleRate = 60 * 262 * audioOversample;
this.arcade = arcade;
this.cpu = new ZilogZ80_1.Z80();
this.psg = new AstrocadeAudio(new audio_1.MasterAudio());
this.audioadapter = new audio_1.TssChannelAdapter(this.psg.psg, audioOversample, this.sampleRate);
// in consumer mode every line of screen RAM is displayed twice, so one emulated
// scanline is two of the 262 NTSC lines (as are INLIN and VERBL, hence the >>1)
this.numTotalScanlines = arcade ? 262 : 131;
// one audio sample per emulated scanline, so oversample twice as much in
// consumer mode to keep the sample rate the same
var oversample = audioOversample * (arcade ? 1 : 2);
this.sampleRate = 60 * this.numTotalScanlines * oversample;
this.audioadapter = new audio_1.TssChannelAdapter(this.psg.psg, oversample, this.sampleRate);
this.handler = (0, emu_1.newKeyboardHandler)(this.inputs, ASTROCADE_KEYCODE_MAP);
this.defaultROMSize = arcade ? 0xb000 : 0x2000;
this.ram = new Uint8Array(arcade ? 0x5000 : 0x1000);
@@ -568,7 +622,7 @@ class BallyAstrocade extends devices_1.BasicScanlineMachine {
}
}
read(a) {
return this.m.membus.read(a);
return this.m.peek(a);
}
write(a, v) {
this.m.membus.write(a, v);
@@ -580,7 +634,7 @@ class BallyAstrocade extends devices_1.BasicScanlineMachine {
this.m.connectVideo(this.backbuffer);
}
preFrame() {
this.m.resetWaitStates(0);
this.m.resetWaitStates();
}
postFrame() {
// copy back buffer to front buffer, omitting bottom non-visible pixels
@@ -613,8 +667,8 @@ class BallyAstrocade extends devices_1.BasicScanlineMachine {
}
advanceCPU() {
var clk = super.advanceCPU();
// TODO: disable 33% of the time (hblank)
var xtra = this.m.resetWaitStates(this.scanline);
// charge the CPU for screen RAM contention during this instruction
var xtra = this.m.resetWaitStates();
if (xtra) {
clk += xtra;
this.probe.logClocks(xtra);
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"astrocade.js","sourceRoot":"","sources":["../../src/machine/astrocade.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"astrocade.js","sourceRoot":"","sources":["../../src/machine/astrocade.ts"],"names":[],"mappings":"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 truncated
+2 -2
View File
@@ -149,7 +149,7 @@ exports.TOOL_META = {
extensions: ['.lnk'],
editorStyle: '6502',
wasmModule: 'merlin32',
version: '1.1.1',
version: '1.1.10',
includePatterns: [...exports.SHARED_INCLUDE_PATTERNS, ...exports.USE_ASM_INCLUDE_PATTERNS],
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
@@ -339,7 +339,7 @@ exports.TOOL_META = {
extensions: ['.asm'],
editorStyle: 'gas',
wasmModule: 'yasm',
version: '1.3.0.47.gc9db',
version: '1.3.0',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"toolmeta.js","sourceRoot":"","sources":["../../../src/common/toolmeta.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"toolmeta.js","sourceRoot":"","sources":["../../../src/common/toolmeta.ts"],"names":[],"mappings":"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 truncated
+27
View File
@@ -655,6 +655,19 @@ class WASIRunner {
this.poke_filestat(filestat_ptr, fd);
return WASIErrors.SUCCESS;
}
fd_filestat_set_size(fd, size) {
const file = this.fds[fd];
debug("fd_filestat_set_size", fd, size, file + "");
if (file == null)
return WASIErrors.BADF;
if (typeof size == 'bigint')
size = Number(size);
file.ensureCapacity(size);
if (size < file.size)
file.offset = Math.min(file.offset, size);
file.size = size;
return WASIErrors.SUCCESS;
}
fd_filestat_get(fd, filestat_ptr) {
const file = this.fds[fd];
debug("fd_filestat_get", fd, filestat_ptr, file + "");
@@ -717,6 +730,18 @@ class WASIRunner {
this.poke64(time_ptr, time);
return WASIErrors.SUCCESS;
}
path_create_directory(fd, path_ptr, path_len) {
const dir = this.fds[fd];
if (dir == null)
return WASIErrors.BADF;
if (dir.type !== FDType.DIRECTORY)
return WASIErrors.NOTDIR;
const filename = this.peekUTF8(path_ptr, path_len);
const path = dir.name + '/' + filename;
debug("path_create_directory", path);
this.fs.putDirectory(path);
return WASIErrors.SUCCESS;
}
getWASISnapshotPreview1() {
return {
args_sizes_get: this.args_sizes_get.bind(this),
@@ -734,9 +759,11 @@ class WASIRunner {
fd_close: this.fd_close.bind(this),
path_filestat_get: this.path_filestat_get.bind(this),
fd_filestat_get: this.fd_filestat_get.bind(this),
fd_filestat_set_size: this.fd_filestat_set_size.bind(this),
random_get: this.random_get.bind(this),
path_readlink: this.path_readlink.bind(this),
path_unlink_file: this.path_unlink_file.bind(this),
path_create_directory: this.path_create_directory.bind(this),
clock_time_get: this.clock_time_get.bind(this),
fd_fdstat_set_flags() { warning("TODO: fd_fdstat_set_flags"); return WASIErrors.NOTSUP; },
fd_readdir() { warning("TODO: fd_readdir"); return WASIErrors.NOTSUP; },
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"wasishim.js","sourceRoot":"","sources":["../../../../src/common/wasi/wasishim.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"wasishim.js","sourceRoot":"","sources":["../../../../src/common/wasi/wasishim.ts"],"names":[],"mappings":"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 truncated
+75 -21
View File
@@ -57,6 +57,7 @@ const ASTROCADE_KEYCODE_MAP = (0, emu_1.makeKeycodeMap)([
]);
const audioOversample = 2;
const _BallyAstrocade = function (arcade) {
var machine;
var cpu;
var ram;
var membus, iobus;
@@ -71,6 +72,28 @@ const _BallyAstrocade = function (arcade) {
const INITIAL_WATCHDOG = 256;
const PIXEL_ON = 0xffeeeeee;
const PIXEL_OFF = 0xff000000;
/*
Screen RAM is DRAM shared by three requesters in priority order: DRAM refresh
(blanking only, so it never costs the CPU), screen refresh, then Z80/Magic.
CAS# free-runs, so memory timeslots are fixed and one Z80 M clock wide:
- Every Z80 screen-RAM access takes at least T1,T2,Tw,T3 — "A Z80 access cycle
to this memory always results in at least one wait state" — blanked or not.
That's +1 over the usual 3 T-states.
- During active video, the refresh wins the slot. Consumer mode fetches 1 byte
(4 px) every 4 PX = every 2 M clocks → memory is unavailable half the time
→ 50% of accesses eat a second wait state. Commercial/arcade fetches 4 bytes
(16 px) every 8 PX = every 4 M clocks → unavailable ¼ of the time → 25% eat
a second one.
- The fetch only runs for the 40 (consumer) / 20 (arcade) reads per line — 160
px of the 63.5 µs line, ≈70%. Border and hblank are free, as is ROM and the
arcade's separate scratch RAM board.
*/
const REFRESH_SLOT_MASK = arcade ? 3 : 1;
// the refresh reads 40 (consumer) or 20 (commercial) times per line, covering the
// 160 displayed pixels of the 63.5 us line; the rest is border and hblank
const ACTIVE_LINE_FRACTION = 0.7;
var activecycles = 0; // = ACTIVE_LINE_FRACTION of a scanline, set by init()
// state variables
var inputs = new Uint8Array(0x20);
var magicop = 0;
@@ -90,12 +113,24 @@ const _BallyAstrocade = function (arcade) {
var rotcount = 0;
var intst = 0;
var waitstates = 0;
var slotphase = 0;
var patboard = new Uint8Array(0x08);
var patdest = 0;
// is the video refresh reading screen RAM at this point in the frame?
function refreshing() {
return machine.scanline < verbl && machine.getRasterX() < activecycles;
}
// charge the Z80 for one screen RAM (DRAM) bus cycle
function screenwait() {
waitstates++; // always at least one wait state
if (refreshing() && !(slotphase++ & REFRESH_SLOT_MASK)) {
waitstates++; // and a second one when we collide with the screen refresh
}
}
function ramwrite(a, v) {
// set RAM
ram[a] = v;
waitstates++;
screenwait();
// mark scanline as dirty
dirtylines[((a & samask) / swbytes) | 0] = 1;
// this was old behavior where we updated instantly
@@ -208,6 +243,7 @@ const _BallyAstrocade = function (arcade) {
let curwidth;
let u13ff = 0;
let cycles = 0;
const wsave = waitstates;
u13ff = 0;
if ((m_pattern_mode & 0x02) === 0) {
u13ff = 1;
@@ -275,9 +311,10 @@ const _BallyAstrocade = function (arcade) {
}
m_pattern_height--;
}
// Adjust m_maincpu.icount
// m_maincpu.adjust_icount(-cycles);
// Replace the above line with the actual adjustment of icount.
// the pattern board owns the bus while it runs, so its own cycles (two reads
// and two writes per byte, as MAME counts them) replace the Z80 wait states
// that the transfers above accrued
waitstates = wsave + cycles;
}
this.drawScanline = (sl) => {
// interrupt
@@ -297,7 +334,9 @@ const _BallyAstrocade = function (arcade) {
refreshline(sl);
}
};
this.init = (machine, c, r, inp, psgg) => {
this.init = (mach, c, r, inp, psgg) => {
machine = mach;
activecycles = mach.cpuCyclesPerLine * ACTIVE_LINE_FRACTION;
cpu = c;
ram = r;
inputs = inp;
@@ -310,7 +349,7 @@ const _BallyAstrocade = function (arcade) {
read: (0, emu_1.newAddressDecoder)([
[0x0000, 0x1fff, 0x1fff, function (a) { return bios[a]; }],
[0x2000, 0x3fff, 0x1fff, function (a) { return rom ? rom[a] : 0; }],
[0x4000, 0x4fff, 0xfff, function (a) { waitstates++; return ram[a]; }],
[0x4000, 0x4fff, 0xfff, function (a) { screenwait(); return ram[a]; }],
]),
write: (0, emu_1.newAddressDecoder)([
[0x4000, 0x4fff, 0xfff, ramwrite],
@@ -319,18 +358,18 @@ const _BallyAstrocade = function (arcade) {
};
}
else {
// arcade game (TODO: wait states 1/4 of the time)
// arcade game
membus = {
read: (0, emu_1.newAddressDecoder)([
[0x4000, 0x7fff, 0x3fff, function (a) { return ram[a]; }], // screen RAM
[0xd000, 0xdfff, 0x0fff, function (a) { return ram[a + 0x4000]; }], // static RAM
[0x4000, 0x7fff, 0x3fff, function (a) { screenwait(); return ram[a]; }], // screen RAM
[0xd000, 0xdfff, 0x0fff, function (a) { return ram[a + 0x4000]; }], // static RAM (own board, no wait states)
[0x0000, 0x3fff, 0x3fff, function (a) { return rom ? rom[a] : 0; }], // ROM
[0x8000, 0xbfff, 0x3fff, function (a) { return rom ? rom[a + 0x4000] : 0; }], // ROM
]),
write: (0, emu_1.newAddressDecoder)([
[0x4000, 0x7fff, 0x3fff, ramwrite],
[0x0000, 0x3fff, 0x3fff, magicwrite],
[0xd000, 0xdfff, 0x0fff, function (a, v) { ramwrite(a + 0x4000, v); }], // static RAM
[0xd000, 0xdfff, 0x0fff, function (a, v) { ram[a + 0x4000] = v; }], // static RAM (not displayed, no wait states)
]),
};
}
@@ -442,8 +481,8 @@ const _BallyAstrocade = function (arcade) {
}
}
};
machine.connectCPUMemoryBus(membus);
machine.connectCPUIOBus(iobus);
mach.connectCPUMemoryBus(membus);
mach.connectCPUIOBus(iobus);
this.membus = membus;
this.iobus = iobus;
// default palette
@@ -451,11 +490,19 @@ const _BallyAstrocade = function (arcade) {
setpalette(i, i);
}
};
this.resetWaitStates = function (sl) {
var n = sl < verbl ? waitstates : 0; // only wait if video active
// wait states accrued since the last call, charged to the CPU by advanceCPU()
this.resetWaitStates = function () {
var n = waitstates;
waitstates = 0;
return n;
};
// read for the debugger/UI, without stalling the CPU
this.peek = function (a) {
var n = waitstates;
var v = membus.read(a);
waitstates = n;
return v;
};
this.loadState = (state) => {
cpu.loadState(state.c);
ram.set(state.ram);
@@ -473,6 +520,7 @@ const _BallyAstrocade = function (arcade) {
rotcount = state.rotcount;
rotdata.set(state.rotdata);
intst = state.intst;
slotphase = state.slotphase | 0;
inputs.set(state.inputs);
patboard.set(state.patboard);
patdest = state.patdest;
@@ -497,6 +545,7 @@ const _BallyAstrocade = function (arcade) {
rotcount: rotcount,
rotdata: rotdata.slice(0),
intst: intst,
slotphase: slotphase,
patboard: patboard.slice(0),
patdest: patdest,
};
@@ -544,12 +593,17 @@ class BallyAstrocade extends devices_1.BasicScanlineMachine {
constructor(arcade) {
super();
this.cpuFrequency = 1789000;
this.numTotalScanlines = 262;
this.sampleRate = 60 * 262 * audioOversample;
this.arcade = arcade;
this.cpu = new ZilogZ80_1.Z80();
this.psg = new AstrocadeAudio(new audio_1.MasterAudio());
this.audioadapter = new audio_1.TssChannelAdapter(this.psg.psg, audioOversample, this.sampleRate);
// in consumer mode every line of screen RAM is displayed twice, so one emulated
// scanline is two of the 262 NTSC lines (as are INLIN and VERBL, hence the >>1)
this.numTotalScanlines = arcade ? 262 : 131;
// one audio sample per emulated scanline, so oversample twice as much in
// consumer mode to keep the sample rate the same
var oversample = audioOversample * (arcade ? 1 : 2);
this.sampleRate = 60 * this.numTotalScanlines * oversample;
this.audioadapter = new audio_1.TssChannelAdapter(this.psg.psg, oversample, this.sampleRate);
this.handler = (0, emu_1.newKeyboardHandler)(this.inputs, ASTROCADE_KEYCODE_MAP);
this.defaultROMSize = arcade ? 0xb000 : 0x2000;
this.ram = new Uint8Array(arcade ? 0x5000 : 0x1000);
@@ -568,7 +622,7 @@ class BallyAstrocade extends devices_1.BasicScanlineMachine {
}
}
read(a) {
return this.m.membus.read(a);
return this.m.peek(a);
}
write(a, v) {
this.m.membus.write(a, v);
@@ -580,7 +634,7 @@ class BallyAstrocade extends devices_1.BasicScanlineMachine {
this.m.connectVideo(this.backbuffer);
}
preFrame() {
this.m.resetWaitStates(0);
this.m.resetWaitStates();
}
postFrame() {
// copy back buffer to front buffer, omitting bottom non-visible pixels
@@ -613,8 +667,8 @@ class BallyAstrocade extends devices_1.BasicScanlineMachine {
}
advanceCPU() {
var clk = super.advanceCPU();
// TODO: disable 33% of the time (hblank)
var xtra = this.m.resetWaitStates(this.scanline);
// charge the CPU for screen RAM contention during this instruction
var xtra = this.m.resetWaitStates();
if (xtra) {
clk += xtra;
this.probe.logClocks(xtra);
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"astrocade.js","sourceRoot":"","sources":["../../../src/machine/astrocade.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"astrocade.js","sourceRoot":"","sources":["../../../src/machine/astrocade.ts"],"names":[],"mappings":"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 truncated
+1
View File
@@ -37,6 +37,7 @@ function mockAudio() {
writeRegister() { }
writeRegisterSN() { }
writeRegisterAY() { }
readRegister() { return 0; }
}
class NullMasterChannel {
addChannel() { }
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"nodemock.js","sourceRoot":"","sources":["../../../src/tools/nodemock.ts"],"names":[],"mappings":";;;;;;AAKA,kCAQC;AAOD,8BAiBC;AAED,8BAMC;AAED,0BAUC;AAtDD,4CAAoB;AAEpB,SAAgB,WAAW;IACvB,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAc,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAc,CAAC,MAAM,CAAC,gBAAgB,GAAI,MAAc,CAAC,MAAM,CAAC,gBAAgB,IAAI,cAAc,CAAC,CAAC;IACpG,MAAc,CAAC,MAAM,CAAC,mBAAmB,GAAI,MAAc,CAAC,MAAM,CAAC,mBAAmB,IAAI,cAAc,CAAC,CAAC;IAC1G,MAAc,CAAC,QAAQ,GAAI,MAAc,CAAC,QAAQ,IAAI,EAAE,gBAAgB,KAAK,CAAC,EAAE,mBAAmB,KAAK,CAAC,EAAE,CAAC;IAC7G,IAAI,CAAC;QAAE,MAAc,CAAC,SAAS,GAAI,MAAc,CAAC,SAAS,IAAI,EAAE,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAa,SAAS;IAClB,UAAU,CAAC,KAAa,EAAE,KAAa;IACvC,CAAC;CACJ;AAHD,8BAGC;AAED,SAAgB,SAAS;IACrB,MAAM,oBAAoB;QACtB,OAAO,KAAK,CAAC;QACb,SAAS,KAAK,CAAC;QACf,QAAQ,KAAK,CAAC;QACd,eAAe,KAAK,CAAC;QACrB,aAAa,KAAK,CAAC;QACnB,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1B,aAAa,KAAK,CAAC;QACnB,eAAe,KAAK,CAAC;QACrB,eAAe,KAAK,CAAC;KACxB;IACD,MAAM,iBAAiB;QACnB,UAAU,KAAK,CAAC;KACnB;IACD,MAAM,CAAC,aAAa,GAAG,iBAAiB,CAAC;IACzC,MAAM,CAAC,gBAAgB,GAAG,oBAAoB,CAAC;AACnD,CAAC;AAED,SAAgB,SAAS;IACrB,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAChC,IAAI,GAAG,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAA;AACL,CAAC;AAED,SAAgB,OAAO;IACrB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACxB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAClG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC3B,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;IACtC,gDAAgD;IAChD,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;IACxB,iCAAiC;IACjC,OAAO,GAAG,CAAC;AACb,CAAC"}
{"version":3,"file":"nodemock.js","sourceRoot":"","sources":["../../../src/tools/nodemock.ts"],"names":[],"mappings":";;;;;;AAKA,kCAQC;AAOD,8BAkBC;AAED,8BAMC;AAED,0BAUC;AAvDD,4CAAoB;AAEpB,SAAgB,WAAW;IACvB,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAc,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAc,CAAC,MAAM,CAAC,gBAAgB,GAAI,MAAc,CAAC,MAAM,CAAC,gBAAgB,IAAI,cAAc,CAAC,CAAC;IACpG,MAAc,CAAC,MAAM,CAAC,mBAAmB,GAAI,MAAc,CAAC,MAAM,CAAC,mBAAmB,IAAI,cAAc,CAAC,CAAC;IAC1G,MAAc,CAAC,QAAQ,GAAI,MAAc,CAAC,QAAQ,IAAI,EAAE,gBAAgB,KAAK,CAAC,EAAE,mBAAmB,KAAK,CAAC,EAAE,CAAC;IAC7G,IAAI,CAAC;QAAE,MAAc,CAAC,SAAS,GAAI,MAAc,CAAC,SAAS,IAAI,EAAE,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAa,SAAS;IAClB,UAAU,CAAC,KAAa,EAAE,KAAa;IACvC,CAAC;CACJ;AAHD,8BAGC;AAED,SAAgB,SAAS;IACrB,MAAM,oBAAoB;QACtB,OAAO,KAAK,CAAC;QACb,SAAS,KAAK,CAAC;QACf,QAAQ,KAAK,CAAC;QACd,eAAe,KAAK,CAAC;QACrB,aAAa,KAAK,CAAC;QACnB,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1B,aAAa,KAAK,CAAC;QACnB,eAAe,KAAK,CAAC;QACrB,eAAe,KAAK,CAAC;QACrB,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;KAC/B;IACD,MAAM,iBAAiB;QACnB,UAAU,KAAK,CAAC;KACnB;IACD,MAAM,CAAC,aAAa,GAAG,iBAAiB,CAAC;IACzC,MAAM,CAAC,gBAAgB,GAAG,oBAAoB,CAAC;AACnD,CAAC;AAED,SAAgB,SAAS;IACrB,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAChC,IAAI,GAAG,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAA;AACL,CAAC;AAED,SAAgB,OAAO;IACrB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACxB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAClG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC3B,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;IACtC,gDAAgD;IAChD,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;IACxB,iCAAiC;IACjC,OAAO,GAAG,CAAC;AACb,CAAC"}
+2 -1
View File
@@ -411,6 +411,7 @@ exports.PLATFORM_PARAMS = {
// TODO: IHX can't handle > 64 KB, so ihx2sms looks for segments in a certain order
},
};
exports.PLATFORM_PARAMS['sms-sms-libcv'] = exports.PLATFORM_PARAMS['sms-sg1000-libcv'];
// SMS/GG mode-4 variants of the shared libcv common.[ch] (2 bytes per tile, 32x28)
exports.PLATFORM_PARAMS['sms-sms-libcv'] = Object.assign(Object.assign({}, exports.PLATFORM_PARAMS['sms-sg1000-libcv']), { extra_preproc_args: ['-I', '.', '-D', 'CV_SMS', '-D', 'CV_MODE4'] });
exports.PLATFORM_PARAMS['sms-gg-libcv'] = exports.PLATFORM_PARAMS['sms-sms-libcv'];
//# sourceMappingURL=platforms.js.map
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"platforms.js","sourceRoot":"","sources":["../../../src/worker/platforms.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"platforms.js","sourceRoot":"","sources":["../../../src/worker/platforms.ts"],"names":[],"mappings":"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 truncated
+37 -17
View File
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
exports.assembleACME = assembleACME;
const builder_1 = require("../builder");
const listingutils_1 = require("../listingutils");
const wasishim_1 = require("../../common/wasi/wasishim");
const wasmutils_1 = require("../wasmutils");
function parseACMESymbolTable(text) {
var symbolmap = {};
@@ -46,26 +47,24 @@ function parseACMEReportFile(text) {
}
return listings;
}
let wasiModule = null;
function assembleACME(step) {
var _a;
(0, wasmutils_1.loadNative)("acme");
var errors = [];
let errors = [];
(0, builder_1.gatherFiles)(step, { mainFilePath: "main.acme" });
var binpath = step.prefix + ".bin";
var lstpath = step.prefix + ".lst";
var sympath = step.prefix + ".sym";
if ((0, builder_1.staleFiles)(step, [binpath])) {
var binout, lstout, symout;
var ACME = wasmutils_1.emglobal.acme({
instantiateWasm: (0, wasmutils_1.moduleInstFn)('acme'),
noInitialRun: true,
print: wasmutils_1.print_fn,
printErr: (0, listingutils_1.msvcErrorMatcher)(errors),
//printErr: makeErrorMatcher(errors, /(Error|Warning) - File (.+?), line (\d+)[^:]+: (.+)/, 3, 4, step.path, 2),
});
var FS = ACME.FS;
(0, builder_1.populateFiles)(step, FS);
(0, builder_1.fixParamsWithDefines)(step.path, step.params);
if (!wasiModule) {
wasiModule = new WebAssembly.Module((0, wasmutils_1.loadWASMBinary)("acme"));
}
const wasi = new wasishim_1.WASIRunner();
wasi.initSync(wasiModule);
for (let file of step.files) {
wasi.fs.putFile("./" + file, builder_1.store.getFileData(file));
}
wasi.addPreopenDirectory(".");
var args = ['--msvc', '--initmem', '0', '-o', binpath, '-r', lstpath, '-l', sympath, step.path];
if ((_a = step.params) === null || _a === void 0 ? void 0 : _a.acmeargs) {
args.unshift.apply(args, step.params.acmeargs);
@@ -77,14 +76,35 @@ function assembleACME(step) {
if (step.mainfile) {
args.unshift.apply(args, ["-D__MAIN__=1"]);
}
(0, wasmutils_1.execMain)(step, ACME, args);
wasi.setArgs(['acme', ...args]);
try {
wasi.run();
}
catch (e) {
errors.push({ line: 0, msg: "" + e });
}
const stdout = wasi.fds[1].getBytesAsString();
const stderr = wasi.fds[2].getBytesAsString();
if (stdout)
console.log(stdout);
const matcher = (0, listingutils_1.msvcErrorMatcher)(errors);
for (let line of stderr.split(listingutils_1.re_crlf)) {
matcher(line);
}
if (errors.length) {
let listings = {};
return { errors, listings };
}
binout = FS.readFile(binpath, { encoding: 'binary' });
lstout = FS.readFile(lstpath, { encoding: 'utf8' });
symout = FS.readFile(sympath, { encoding: 'utf8' });
let binout, lstout, symout;
try {
binout = wasi.fs.getFile("./" + binpath).getBytes();
lstout = wasi.fs.getFile("./" + lstpath).getBytesAsString();
symout = wasi.fs.getFile("./" + sympath).getBytesAsString();
}
catch (e) {
errors.push({ line: 0, msg: "No output generated, maybe a fatal assembly error?" });
return { errors };
}
(0, builder_1.putWorkFile)(binpath, binout);
(0, builder_1.putWorkFile)(lstpath, lstout);
(0, builder_1.putWorkFile)(sympath, symout);
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"acme.js","sourceRoot":"","sources":["../../../../src/worker/tools/acme.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"acme.js","sourceRoot":"","sources":["../../../../src/worker/tools/acme.ts"],"names":[],"mappings":";;AAoDA,oCA8DC;AAjHD,wCAAqG;AACrG,kDAA4D;AAC5D,yDAAwD;AACxD,4CAA8C;AAE9C,SAAS,oBAAoB,CAAC,IAAY;IACtC,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACpC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3B,wBAAwB;QACxB,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAClD,IAAI,CAAC,EAAE,CAAC;YACJ,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACrC,IAAI,QAAQ,GAAoB,EAAE,CAAC;IACnC,IAAI,OAAqB,CAAC;IAC1B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACpC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3B,gCAAgC;QAChC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACjD,IAAI,EAAE,EAAE,CAAC;YACL,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG;gBACvB,KAAK,EAAE,EAAE;aACZ,CAAC;YACF,SAAS;QACb,CAAC;QACD,uEAAuE;QACvE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,IAAI,EAAE,EAAE,CAAC;YACL,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACrB,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBAC3B,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;iBACf,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,IAAI,UAAU,GAA8B,IAAI,CAAC;AAEjD,SAAgB,YAAY,CAAC,IAAe;;IACxC,IAAI,MAAM,GAAkB,EAAE,CAAC;IAC/B,IAAA,qBAAW,EAAC,IAAI,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;IACjD,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,IAAI,IAAA,oBAAU,EAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,UAAU,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,IAAA,0BAAc,EAAC,MAAM,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,qBAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1B,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,EAAE,eAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAChG,IAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC;YACD,IAAI,CAAC,GAAG,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC9C,IAAI,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,IAAA,+BAAgB,EAAC,MAAM,CAAC,CAAC;QACzC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,sBAAO,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,QAAQ,GAAmB,EAAE,CAAC;YAClC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAChC,CAAC;QACD,IAAI,MAAkB,EAAE,MAAc,EAAE,MAAc,CAAC;QACvD,IAAI,CAAC;YACD,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;YACpD,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,gBAAgB,EAAE,CAAC;YAC5D,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,oDAAoD,EAAE,CAAC,CAAC;YACpF,OAAO,EAAE,MAAM,EAAE,CAAC;QACtB,CAAC;QACD,IAAA,qBAAW,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,IAAA,qBAAW,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,IAAA,qBAAW,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,OAAO;YACH,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,mBAAmB,CAAC,MAAM,CAAC;YACrC,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,oBAAoB,CAAC,MAAM,CAAC;SAC1C,CAAC;IACN,CAAC;AACL,CAAC"}
+35 -16
View File
@@ -3,40 +3,59 @@ Object.defineProperty(exports, "__esModule", { value: true });
exports.assembleZMAC = assembleZMAC;
const builder_1 = require("../builder");
const listingutils_1 = require("../listingutils");
const listingutils_2 = require("../listingutils");
const wasishim_1 = require("../../common/wasi/wasishim");
const wasmutils_1 = require("../wasmutils");
let wasiModule = null;
function assembleZMAC(step) {
(0, wasmutils_1.loadNative)("zmac");
var hexout, lstout, binout;
var errors = [];
let errors = [];
var params = step.params;
(0, builder_1.gatherFiles)(step, { mainFilePath: "main.asm" });
var lstpath = step.prefix + ".lst";
var binpath = step.prefix + ".cim";
if ((0, builder_1.staleFiles)(step, [binpath])) {
if (!wasiModule) {
wasiModule = new WebAssembly.Module((0, wasmutils_1.loadWASMBinary)("zmac"));
}
const wasi = new wasishim_1.WASIRunner();
wasi.initSync(wasiModule);
for (let file of step.files) {
wasi.fs.putFile("./" + file, builder_1.store.getFileData(file));
}
wasi.addPreopenDirectory(".");
/*
error1.asm(4) : 'l18d4' Undeclared
JP L18D4
error1.asm(11): warning: 'foobar' treated as label (instruction typo?)
Add a colon or move to first column to stop this warning.
1 errors (see listing if no diagnostics appeared here)
*/
var ZMAC = wasmutils_1.emglobal.zmac({
instantiateWasm: (0, wasmutils_1.moduleInstFn)('zmac'),
noInitialRun: true,
//logReadFiles:true,
print: wasmutils_1.print_fn,
printErr: (0, listingutils_1.makeErrorMatcher)(errors, /([^( ]+)\s*[(](\d+)[)]\s*:\s*(.+)/, 2, 3, step.path),
});
var FS = ZMAC.FS;
(0, builder_1.populateFiles)(step, FS);
const matcher = (0, listingutils_1.makeErrorMatcher)(errors, /([^( ]+)\s*[(](\d+)[)]\s*:\s*(.+)/, 2, 3, step.path);
// TODO: don't know why CIM (hexary) doesn't work
(0, wasmutils_1.execMain)(step, ZMAC, ['-z', '-c', '--oo', 'lst,cim', step.path]);
wasi.setArgs(['zmac', '-z', '-c', '--oo', 'lst,cim', step.path]);
try {
wasi.run();
}
catch (e) {
errors.push({ line: 0, msg: "" + e });
}
const stderr = wasi.fds[2].getBytesAsString();
for (let line of stderr.split(listingutils_2.re_crlf)) {
matcher(line);
}
if (errors.length) {
return { errors: errors };
}
lstout = FS.readFile("zout/" + lstpath, { encoding: 'utf8' });
binout = FS.readFile("zout/" + binpath, { encoding: 'binary' });
let lstout, binout;
try {
lstout = wasi.fs.getFile("./zout/" + lstpath).getBytesAsString();
binout = wasi.fs.getFile("./zout/" + binpath).getBytes();
}
catch (e) {
errors.push({ line: 0, msg: "No output generated, maybe a fatal assembly error?" });
return { errors: errors };
}
(0, builder_1.putWorkFile)(binpath, binout);
(0, builder_1.putWorkFile)(lstpath, lstout);
if (!(0, builder_1.anyTargetChanged)(step, [binpath, lstpath]))
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"z80.js","sourceRoot":"","sources":["../../../../src/worker/tools/z80.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"z80.js","sourceRoot":"","sources":["../../../../src/worker/tools/z80.ts"],"names":[],"mappings":"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"}
+1
View File
@@ -37,6 +37,7 @@ function mockAudio() {
writeRegister() { }
writeRegisterSN() { }
writeRegisterAY() { }
readRegister() { return 0; }
}
class NullMasterChannel {
addChannel() { }
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"nodemock.js","sourceRoot":"","sources":["../../src/tools/nodemock.ts"],"names":[],"mappings":";;;;;;AAKA,kCAQC;AAOD,8BAiBC;AAED,8BAMC;AAED,0BAUC;AAtDD,4CAAoB;AAEpB,SAAgB,WAAW;IACvB,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAc,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAc,CAAC,MAAM,CAAC,gBAAgB,GAAI,MAAc,CAAC,MAAM,CAAC,gBAAgB,IAAI,cAAc,CAAC,CAAC;IACpG,MAAc,CAAC,MAAM,CAAC,mBAAmB,GAAI,MAAc,CAAC,MAAM,CAAC,mBAAmB,IAAI,cAAc,CAAC,CAAC;IAC1G,MAAc,CAAC,QAAQ,GAAI,MAAc,CAAC,QAAQ,IAAI,EAAE,gBAAgB,KAAK,CAAC,EAAE,mBAAmB,KAAK,CAAC,EAAE,CAAC;IAC7G,IAAI,CAAC;QAAE,MAAc,CAAC,SAAS,GAAI,MAAc,CAAC,SAAS,IAAI,EAAE,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAa,SAAS;IAClB,UAAU,CAAC,KAAa,EAAE,KAAa;IACvC,CAAC;CACJ;AAHD,8BAGC;AAED,SAAgB,SAAS;IACrB,MAAM,oBAAoB;QACtB,OAAO,KAAK,CAAC;QACb,SAAS,KAAK,CAAC;QACf,QAAQ,KAAK,CAAC;QACd,eAAe,KAAK,CAAC;QACrB,aAAa,KAAK,CAAC;QACnB,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1B,aAAa,KAAK,CAAC;QACnB,eAAe,KAAK,CAAC;QACrB,eAAe,KAAK,CAAC;KACxB;IACD,MAAM,iBAAiB;QACnB,UAAU,KAAK,CAAC;KACnB;IACD,MAAM,CAAC,aAAa,GAAG,iBAAiB,CAAC;IACzC,MAAM,CAAC,gBAAgB,GAAG,oBAAoB,CAAC;AACnD,CAAC;AAED,SAAgB,SAAS;IACrB,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAChC,IAAI,GAAG,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAA;AACL,CAAC;AAED,SAAgB,OAAO;IACrB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACxB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAClG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC3B,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;IACtC,gDAAgD;IAChD,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;IACxB,iCAAiC;IACjC,OAAO,GAAG,CAAC;AACb,CAAC"}
{"version":3,"file":"nodemock.js","sourceRoot":"","sources":["../../src/tools/nodemock.ts"],"names":[],"mappings":";;;;;;AAKA,kCAQC;AAOD,8BAkBC;AAED,8BAMC;AAED,0BAUC;AAvDD,4CAAoB;AAEpB,SAAgB,WAAW;IACvB,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAc,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAc,CAAC,MAAM,CAAC,gBAAgB,GAAI,MAAc,CAAC,MAAM,CAAC,gBAAgB,IAAI,cAAc,CAAC,CAAC;IACpG,MAAc,CAAC,MAAM,CAAC,mBAAmB,GAAI,MAAc,CAAC,MAAM,CAAC,mBAAmB,IAAI,cAAc,CAAC,CAAC;IAC1G,MAAc,CAAC,QAAQ,GAAI,MAAc,CAAC,QAAQ,IAAI,EAAE,gBAAgB,KAAK,CAAC,EAAE,mBAAmB,KAAK,CAAC,EAAE,CAAC;IAC7G,IAAI,CAAC;QAAE,MAAc,CAAC,SAAS,GAAI,MAAc,CAAC,SAAS,IAAI,EAAE,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAa,SAAS;IAClB,UAAU,CAAC,KAAa,EAAE,KAAa;IACvC,CAAC;CACJ;AAHD,8BAGC;AAED,SAAgB,SAAS;IACrB,MAAM,oBAAoB;QACtB,OAAO,KAAK,CAAC;QACb,SAAS,KAAK,CAAC;QACf,QAAQ,KAAK,CAAC;QACd,eAAe,KAAK,CAAC;QACrB,aAAa,KAAK,CAAC;QACnB,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1B,aAAa,KAAK,CAAC;QACnB,eAAe,KAAK,CAAC;QACrB,eAAe,KAAK,CAAC;QACrB,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;KAC/B;IACD,MAAM,iBAAiB;QACnB,UAAU,KAAK,CAAC;KACnB;IACD,MAAM,CAAC,aAAa,GAAG,iBAAiB,CAAC;IACzC,MAAM,CAAC,gBAAgB,GAAG,oBAAoB,CAAC;AACnD,CAAC;AAED,SAAgB,SAAS;IACrB,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAChC,IAAI,GAAG,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAA;AACL,CAAC;AAED,SAAgB,OAAO;IACrB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACxB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAClG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC3B,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;IACtC,gDAAgD;IAChD,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;IACxB,iCAAiC;IACjC,OAAO,GAAG,CAAC;AACb,CAAC"}
+1 -1
View File
@@ -1,2 +1,2 @@
import{A,B,C,D,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-PUOMI72S.js";import"./chunk-UG4IOEUD.js";import"./chunk-LNOKARBD.js";import"./chunk-A7SWO6EA.js";import"./chunk-WEPPO4GD.js";import"./chunk-CZ7OSHSE.js";import"./chunk-TYDI7JZQ.js";import"./chunk-KT7KMEQC.js";export{s as clearBreakpoint,f as current_project,C as emulationHalted,o as getCurrentEditorFilename,n as getCurrentMainFilename,k as getCurrentOutput,j as getCurrentProject,x as getPlatformAndRepo,i as getPlatformStore,B as getSaveState,A as getTestOutput,l as getWorkerParams,v as gotoNewLocation,u as haltEmulation,h as lastDebugState,m as openHeaderFile,p as parseGoToTarget,e as platform,b as platform_id,g as projectWindows,a as qs,D as reloadWorkspaceFile,d as repo_id,r as runToPC,t as setFrameRateUI,z as setTestInput,q as setupBreakpoint,w as setupSplits,y as startUI,c as store_id};
import{A,B,C,D,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-X3GW3E7W.js";import"./chunk-UG4IOEUD.js";import"./chunk-LNOKARBD.js";import"./chunk-A7SWO6EA.js";import"./chunk-THWBEUY4.js";import"./chunk-CZ7OSHSE.js";import"./chunk-TYDI7JZQ.js";import"./chunk-KT7KMEQC.js";export{s as clearBreakpoint,f as current_project,C as emulationHalted,o as getCurrentEditorFilename,n as getCurrentMainFilename,k as getCurrentOutput,j as getCurrentProject,x as getPlatformAndRepo,i as getPlatformStore,B as getSaveState,A as getTestOutput,l as getWorkerParams,v as gotoNewLocation,u as haltEmulation,h as lastDebugState,m as openHeaderFile,p as parseGoToTarget,e as platform,b as platform_id,g as projectWindows,a as qs,D as reloadWorkspaceFile,d as repo_id,r as runToPC,t as setFrameRateUI,z as setTestInput,q as setupBreakpoint,w as setupSplits,y as startUI,c as store_id};
//# sourceMappingURL=ui.js.map
+113 -55
View File
@@ -2,7 +2,9 @@
(() => {
var __create = Object.create;
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __getProtoOf = Object.getPrototypeOf;
@@ -23,6 +25,7 @@
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
}) : x)(function(x) {
@@ -2632,7 +2635,7 @@
extensions: [".lnk"],
editorStyle: "6502",
wasmModule: "merlin32",
version: "1.1.1",
version: "1.1.10",
includePatterns: [...SHARED_INCLUDE_PATTERNS, ...USE_ASM_INCLUDE_PATTERNS],
linkPatterns: SHARED_LINK_PATTERNS
},
@@ -2883,7 +2886,7 @@
extensions: [".asm"],
editorStyle: "gas",
wasmModule: "yasm",
version: "1.3.0.47.gc9db",
version: "1.3.0",
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS
},
@@ -3523,7 +3526,9 @@
// TODO: IHX can't handle > 64 KB, so ihx2sms looks for segments in a certain order
}
};
PLATFORM_PARAMS["sms-sms-libcv"] = PLATFORM_PARAMS["sms-sg1000-libcv"];
PLATFORM_PARAMS["sms-sms-libcv"] = __spreadProps(__spreadValues({}, PLATFORM_PARAMS["sms-sg1000-libcv"]), {
extra_preproc_args: ["-I", ".", "-D", "CV_SMS", "-D", "CV_MODE4"]
});
PLATFORM_PARAMS["sms-gg-libcv"] = PLATFORM_PARAMS["sms-sms-libcv"];
// src/common/basic/compiler.ts
@@ -6307,6 +6312,16 @@
this.poke_filestat(filestat_ptr, fd);
return 0 /* SUCCESS */;
}
fd_filestat_set_size(fd, size) {
const file = this.fds[fd];
debug("fd_filestat_set_size", fd, size, file + "");
if (file == null) return 8 /* BADF */;
if (typeof size == "bigint") size = Number(size);
file.ensureCapacity(size);
if (size < file.size) file.offset = Math.min(file.offset, size);
file.size = size;
return 0 /* SUCCESS */;
}
fd_filestat_get(fd, filestat_ptr) {
const file = this.fds[fd];
debug("fd_filestat_get", fd, filestat_ptr, file + "");
@@ -6361,6 +6376,16 @@
this.poke64(time_ptr, time);
return 0 /* SUCCESS */;
}
path_create_directory(fd, path_ptr, path_len) {
const dir = this.fds[fd];
if (dir == null) return 8 /* BADF */;
if (dir.type !== 3 /* DIRECTORY */) return 54 /* NOTDIR */;
const filename = this.peekUTF8(path_ptr, path_len);
const path = dir.name + "/" + filename;
debug("path_create_directory", path);
this.fs.putDirectory(path);
return 0 /* SUCCESS */;
}
getWASISnapshotPreview1() {
return {
args_sizes_get: this.args_sizes_get.bind(this),
@@ -6378,9 +6403,11 @@
fd_close: this.fd_close.bind(this),
path_filestat_get: this.path_filestat_get.bind(this),
fd_filestat_get: this.fd_filestat_get.bind(this),
fd_filestat_set_size: this.fd_filestat_set_size.bind(this),
random_get: this.random_get.bind(this),
path_readlink: this.path_readlink.bind(this),
path_unlink_file: this.path_unlink_file.bind(this),
path_create_directory: this.path_create_directory.bind(this),
clock_time_get: this.clock_time_get.bind(this),
fd_fdstat_set_flags() {
warning("TODO: fd_fdstat_set_flags");
@@ -9885,30 +9912,45 @@
}
// src/worker/tools/z80.ts
var wasiModule2 = null;
function assembleZMAC(step) {
loadNative("zmac");
var hexout, lstout, binout;
var errors = [];
let errors = [];
var params = step.params;
gatherFiles(step, { mainFilePath: "main.asm" });
var lstpath = step.prefix + ".lst";
var binpath = step.prefix + ".cim";
if (staleFiles(step, [binpath])) {
var ZMAC = emglobal.zmac({
instantiateWasm: moduleInstFn("zmac"),
noInitialRun: true,
//logReadFiles:true,
print: print_fn,
printErr: makeErrorMatcher(errors, /([^( ]+)\s*[(](\d+)[)]\s*:\s*(.+)/, 2, 3, step.path)
});
var FS = ZMAC.FS;
populateFiles(step, FS);
execMain(step, ZMAC, ["-z", "-c", "--oo", "lst,cim", step.path]);
if (!wasiModule2) {
wasiModule2 = new WebAssembly.Module(loadWASMBinary("zmac"));
}
const wasi = new WASIRunner();
wasi.initSync(wasiModule2);
for (let file of step.files) {
wasi.fs.putFile("./" + file, store.getFileData(file));
}
wasi.addPreopenDirectory(".");
const matcher = makeErrorMatcher(errors, /([^( ]+)\s*[(](\d+)[)]\s*:\s*(.+)/, 2, 3, step.path);
wasi.setArgs(["zmac", "-z", "-c", "--oo", "lst,cim", step.path]);
try {
wasi.run();
} catch (e) {
errors.push({ line: 0, msg: "" + e });
}
const stderr = wasi.fds[2].getBytesAsString();
for (let line of stderr.split(re_crlf)) {
matcher(line);
}
if (errors.length) {
return { errors };
}
lstout = FS.readFile("zout/" + lstpath, { encoding: "utf8" });
binout = FS.readFile("zout/" + binpath, { encoding: "binary" });
let lstout, binout;
try {
lstout = wasi.fs.getFile("./zout/" + lstpath).getBytesAsString();
binout = wasi.fs.getFile("./zout/" + binpath).getBytes();
} catch (e) {
errors.push({ line: 0, msg: "No output generated, maybe a fatal assembly error?" });
return { errors };
}
putWorkFile(binpath, binout);
putWorkFile(lstpath, lstout);
if (!anyTargetChanged(step, [binpath, lstpath]))
@@ -14269,26 +14311,24 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
}
return listings;
}
var wasiModule3 = null;
function assembleACME(step) {
var _a;
loadNative("acme");
var errors = [];
let errors = [];
gatherFiles(step, { mainFilePath: "main.acme" });
var binpath = step.prefix + ".bin";
var lstpath = step.prefix + ".lst";
var sympath = step.prefix + ".sym";
if (staleFiles(step, [binpath])) {
var binout, lstout, symout;
var ACME = emglobal.acme({
instantiateWasm: moduleInstFn("acme"),
noInitialRun: true,
print: print_fn,
printErr: msvcErrorMatcher(errors)
//printErr: makeErrorMatcher(errors, /(Error|Warning) - File (.+?), line (\d+)[^:]+: (.+)/, 3, 4, step.path, 2),
});
var FS = ACME.FS;
populateFiles(step, FS);
fixParamsWithDefines(step.path, step.params);
if (!wasiModule3) {
wasiModule3 = new WebAssembly.Module(loadWASMBinary("acme"));
}
const wasi = new WASIRunner();
wasi.initSync(wasiModule3);
for (let file of step.files) {
wasi.fs.putFile("./" + file, store.getFileData(file));
}
wasi.addPreopenDirectory(".");
var args = ["--msvc", "--initmem", "0", "-o", binpath, "-r", lstpath, "-l", sympath, step.path];
if ((_a = step.params) == null ? void 0 : _a.acmeargs) {
args.unshift.apply(args, step.params.acmeargs);
@@ -14299,14 +14339,32 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
if (step.mainfile) {
args.unshift.apply(args, ["-D__MAIN__=1"]);
}
execMain(step, ACME, args);
wasi.setArgs(["acme", ...args]);
try {
wasi.run();
} catch (e) {
errors.push({ line: 0, msg: "" + e });
}
const stdout = wasi.fds[1].getBytesAsString();
const stderr = wasi.fds[2].getBytesAsString();
if (stdout) console.log(stdout);
const matcher = msvcErrorMatcher(errors);
for (let line of stderr.split(re_crlf)) {
matcher(line);
}
if (errors.length) {
let listings = {};
return { errors, listings };
}
binout = FS.readFile(binpath, { encoding: "binary" });
lstout = FS.readFile(lstpath, { encoding: "utf8" });
symout = FS.readFile(sympath, { encoding: "utf8" });
let binout, lstout, symout;
try {
binout = wasi.fs.getFile("./" + binpath).getBytes();
lstout = wasi.fs.getFile("./" + lstpath).getBytesAsString();
symout = wasi.fs.getFile("./" + sympath).getBytesAsString();
} catch (e) {
errors.push({ line: 0, msg: "No output generated, maybe a fatal assembly error?" });
return { errors };
}
putWorkFile(binpath, binout);
putWorkFile(lstpath, lstout);
putWorkFile(sympath, symout);
@@ -14321,7 +14379,7 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
// src/worker/tools/cc7800.ts
var cc7800_fs = null;
var wasiModule2 = null;
var wasiModule4 = null;
async function compileCC7800(step) {
const errors = [];
gatherFiles(step, { mainFilePath: "main.c" });
@@ -14330,11 +14388,11 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
if (!cc7800_fs) {
cc7800_fs = await loadWASIFilesystemZip("cc7800-fs.zip");
}
if (!wasiModule2) {
wasiModule2 = new WebAssembly.Module(loadWASMBinary("cc7800"));
if (!wasiModule4) {
wasiModule4 = new WebAssembly.Module(loadWASMBinary("cc7800"));
}
const wasi = new WASIRunner();
wasi.initSync(wasiModule2);
wasi.initSync(wasiModule4);
wasi.fs.setParent(cc7800_fs);
for (let file of step.files) {
wasi.fs.putFile("./" + file, store.getFileData(file));
@@ -14374,7 +14432,7 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
// src/worker/tools/cc2600.ts
var cc2600_fs = null;
var wasiModule3 = null;
var wasiModule5 = null;
async function compilecc2600(step) {
const errors = [];
gatherFiles(step, { mainFilePath: "main.c" });
@@ -14383,11 +14441,11 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
if (!cc2600_fs) {
cc2600_fs = await loadWASIFilesystemZip("cc2600-fs.zip");
}
if (!wasiModule3) {
wasiModule3 = new WebAssembly.Module(loadWASMBinary("cc2600"));
if (!wasiModule5) {
wasiModule5 = new WebAssembly.Module(loadWASMBinary("cc2600"));
}
const wasi = new WASIRunner();
wasi.initSync(wasiModule3);
wasi.initSync(wasiModule5);
wasi.fs.setParent(cc2600_fs);
for (let file of step.files) {
wasi.fs.putFile("./" + file, store.getFileData(file));
@@ -14675,7 +14733,7 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
// src/worker/tools/oscar64.ts
var oscar64_fs = null;
var wasiModule4 = null;
var wasiModule6 = null;
function getWasiFileAsString(wasi, suffix) {
for (const fd of wasi.fs.getFiles()) {
if (fd.name.endsWith(suffix)) {
@@ -14692,11 +14750,11 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
if (!oscar64_fs) {
oscar64_fs = await loadWASIFilesystemZip("oscar64-fs.zip");
}
if (!wasiModule4) {
wasiModule4 = new WebAssembly.Module(loadWASMBinary("oscar64"));
if (!wasiModule6) {
wasiModule6 = new WebAssembly.Module(loadWASMBinary("oscar64"));
}
const wasi = new WASIRunner();
wasi.initSync(wasiModule4);
wasi.initSync(wasiModule6);
wasi.fs.setParent(oscar64_fs);
for (let file of step.files) {
wasi.fs.putFile("./" + file, store.getFileData(file));
@@ -14819,7 +14877,7 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
}
return origin;
}
var wasiModule5 = null;
var wasiModule7 = null;
function assembleXA(step) {
var _a, _b, _c, _d;
const errors = [];
@@ -14828,11 +14886,11 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
const lstpath = step.prefix + ".lst";
const sympath = step.prefix + ".lbl";
if (staleFiles(step, [binpath])) {
if (!wasiModule5) {
wasiModule5 = new WebAssembly.Module(loadWASMBinary("xa"));
if (!wasiModule7) {
wasiModule7 = new WebAssembly.Module(loadWASMBinary("xa"));
}
const wasi = new WASIRunner();
wasi.initSync(wasiModule5);
wasi.initSync(wasiModule7);
for (const file of step.files) {
wasi.fs.putFile("./" + file, store.getFileData(file));
}
@@ -14889,7 +14947,7 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
// src/worker/tools/dialog.ts
var STDLIB = "stdlib.dg";
var dialog_fs = null;
var wasiModule6 = null;
var wasiModule8 = null;
var re_error2 = /^Error:\s+(?:(\S+?), line (\d+):\s+)?(.+)/;
async function compileDialog(step) {
const errors = [];
@@ -14899,11 +14957,11 @@ ${this.scopeSymbol(name)} = ${name}::__Start`;
if (!dialog_fs) {
dialog_fs = await loadWASIFilesystemZip("dialog-fs.zip");
}
if (!wasiModule6) {
wasiModule6 = new WebAssembly.Module(loadWASMBinary("dialogc"));
if (!wasiModule8) {
wasiModule8 = new WebAssembly.Module(loadWASMBinary("dialogc"));
}
const wasi = new WASIRunner();
wasi.initSync(wasiModule6);
wasi.initSync(wasiModule8);
wasi.fs.setParent(dialog_fs);
for (let file of step.files) {
wasi.fs.putFile("./" + file, store.getFileData(file));
+3 -3
View File
@@ -1,7 +1,7 @@
{
"version": 3,
"sources": ["../../node_modules/jszip/dist/jszip.min.js", "../../src/common/util.ts", "../../src/common/toolmeta.ts", "../../src/worker/platforms.ts", "../../src/common/basic/compiler.ts", "../../src/worker/wasiutils.ts", "../../src/common/wasi/wasishim.ts", "../../src/worker/wasmutils.ts", "../../src/worker/listingutils.ts", "../../src/worker/tools/misc.ts", "../../src/worker/tools/cc65.ts", "../../src/worker/tools/dasm.ts", "../../src/worker/tools/mcpp.ts", "../../src/worker/tools/sdcc.ts", "../../src/worker/assembler.ts", "../../src/common/hdl/hdltypes.ts", "../../src/common/hdl/vxmlparser.ts", "../../src/worker/tools/verilog.ts", "../../src/worker/tools/m6809.ts", "../../src/worker/tools/m6502.ts", "../../src/worker/tools/z80.ts", "../../src/worker/tools/x86.ts", "../../src/common/binutils.ts", "../../src/worker/tools/arm.ts", "../../src/common/tokenizer.ts", "../../src/common/ecs/binpack.ts", "../../src/common/ecs/ecs.ts", "../../src/common/ecs/decoder.ts", "../../src/common/ecs/compiler.ts", "../../src/worker/tools/ecs.ts", "../../src/common/workertypes.ts", "../../src/worker/tools/remote.ts", "../../src/worker/tools/acme.ts", "../../src/worker/tools/cc7800.ts", "../../src/worker/tools/cc2600.ts", "../../src/worker/tools/bataribasic.ts", "../../src/worker/tools/oscar64parse.ts", "../../src/worker/tools/oscar64.ts", "../../src/worker/tools/xa.ts", "../../src/worker/tools/dialog.ts", "../../src/worker/workertools.ts", "../../src/worker/builder.ts", "../../src/worker/workermain.ts"],
"sourcesContent": ["/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e<h.length;e++)u(h[e]);return u}({1:[function(e,t,r){\"use strict\";var d=e(\"./utils\"),c=e(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,n,i,s,a,o,h=[],u=0,l=e.length,f=l,c=\"string\"!==d.getTypeOf(e);u<e.length;)f=l-u,n=c?(t=e[u++],r=u<l?e[u++]:0,u<l?e[u++]:0):(t=e.charCodeAt(u++),r=u<l?e.charCodeAt(u++):0,u<l?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<f?(15&r)<<2|n>>6:64,o=2<f?63&n:64,h.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(e){var t,r,n,i,s,a,o=0,h=0,u=\"data:\";if(e.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,\"\")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=c.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoActioLine truncated
"mappings": "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 truncated
"names": ["exports", "e", "t", "r", "c", "n", "i", "s", "a", "o", "h", "u", "l", "f", "d", "p", "m", "attrs", "s", "JSZip", "debug", "s", "s", "hex", "CompileError", "s", "code", "s", "re_error", "s", "m", "lst", "DwarfTag", "DwarfAttribute", "line", "m", "CompileError", "mergeLocs", "CompileError", "debug", "debug", "isLiteral", "isBinOp", "isUnOp", "e", "isLiteral", "OPERATORS", "getOperator", "getPrecedence", "mergeLocs", "tok", "isLiteral", "getPrecedence", "getOperator", "valtype", "CompileError", "wasiModule", "wasiModule", "hex", "wasiModule", "wasiModule", "wasiModule", "re_error", "exports", "ENVIRONMENT_IS_WORKER", "e"]
"sourcesContent": ["/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e<h.length;e++)u(h[e]);return u}({1:[function(e,t,r){\"use strict\";var d=e(\"./utils\"),c=e(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,n,i,s,a,o,h=[],u=0,l=e.length,f=l,c=\"string\"!==d.getTypeOf(e);u<e.length;)f=l-u,n=c?(t=e[u++],r=u<l?e[u++]:0,u<l?e[u++]:0):(t=e.charCodeAt(u++),r=u<l?e.charCodeAt(u++):0,u<l?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<f?(15&r)<<2|n>>6:64,o=2<f?63&n:64,h.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(e){var t,r,n,i,s,a,o=0,h=0,u=\"data:\";if(e.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,\"\")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=c.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoActioLine truncated
"mappings": "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 truncated
"names": ["exports", "e", "t", "r", "c", "n", "i", "s", "a", "o", "h", "u", "l", "f", "d", "p", "m", "attrs", "s", "JSZip", "debug", "s", "s", "hex", "CompileError", "s", "code", "s", "re_error", "s", "m", "lst", "wasiModule", "DwarfTag", "DwarfAttribute", "line", "m", "CompileError", "mergeLocs", "CompileError", "debug", "debug", "isLiteral", "isBinOp", "isUnOp", "e", "isLiteral", "OPERATORS", "getOperator", "getPrecedence", "mergeLocs", "tok", "isLiteral", "getPrecedence", "getOperator", "valtype", "CompileError", "wasiModule", "wasiModule", "wasiModule", "hex", "wasiModule", "wasiModule", "wasiModule", "re_error", "exports", "ENVIRONMENT_IS_WORKER", "e"]
}
+2 -1
View File
@@ -411,6 +411,7 @@ exports.PLATFORM_PARAMS = {
// TODO: IHX can't handle > 64 KB, so ihx2sms looks for segments in a certain order
},
};
exports.PLATFORM_PARAMS['sms-sms-libcv'] = exports.PLATFORM_PARAMS['sms-sg1000-libcv'];
// SMS/GG mode-4 variants of the shared libcv common.[ch] (2 bytes per tile, 32x28)
exports.PLATFORM_PARAMS['sms-sms-libcv'] = Object.assign(Object.assign({}, exports.PLATFORM_PARAMS['sms-sg1000-libcv']), { extra_preproc_args: ['-I', '.', '-D', 'CV_SMS', '-D', 'CV_MODE4'] });
exports.PLATFORM_PARAMS['sms-gg-libcv'] = exports.PLATFORM_PARAMS['sms-sms-libcv'];
//# sourceMappingURL=platforms.js.map
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"platforms.js","sourceRoot":"","sources":["../../src/worker/platforms.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"platforms.js","sourceRoot":"","sources":["../../src/worker/platforms.ts"],"names":[],"mappings":"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 truncated
+37 -17
View File
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
exports.assembleACME = assembleACME;
const builder_1 = require("../builder");
const listingutils_1 = require("../listingutils");
const wasishim_1 = require("../../common/wasi/wasishim");
const wasmutils_1 = require("../wasmutils");
function parseACMESymbolTable(text) {
var symbolmap = {};
@@ -46,26 +47,24 @@ function parseACMEReportFile(text) {
}
return listings;
}
let wasiModule = null;
function assembleACME(step) {
var _a;
(0, wasmutils_1.loadNative)("acme");
var errors = [];
let errors = [];
(0, builder_1.gatherFiles)(step, { mainFilePath: "main.acme" });
var binpath = step.prefix + ".bin";
var lstpath = step.prefix + ".lst";
var sympath = step.prefix + ".sym";
if ((0, builder_1.staleFiles)(step, [binpath])) {
var binout, lstout, symout;
var ACME = wasmutils_1.emglobal.acme({
instantiateWasm: (0, wasmutils_1.moduleInstFn)('acme'),
noInitialRun: true,
print: wasmutils_1.print_fn,
printErr: (0, listingutils_1.msvcErrorMatcher)(errors),
//printErr: makeErrorMatcher(errors, /(Error|Warning) - File (.+?), line (\d+)[^:]+: (.+)/, 3, 4, step.path, 2),
});
var FS = ACME.FS;
(0, builder_1.populateFiles)(step, FS);
(0, builder_1.fixParamsWithDefines)(step.path, step.params);
if (!wasiModule) {
wasiModule = new WebAssembly.Module((0, wasmutils_1.loadWASMBinary)("acme"));
}
const wasi = new wasishim_1.WASIRunner();
wasi.initSync(wasiModule);
for (let file of step.files) {
wasi.fs.putFile("./" + file, builder_1.store.getFileData(file));
}
wasi.addPreopenDirectory(".");
var args = ['--msvc', '--initmem', '0', '-o', binpath, '-r', lstpath, '-l', sympath, step.path];
if ((_a = step.params) === null || _a === void 0 ? void 0 : _a.acmeargs) {
args.unshift.apply(args, step.params.acmeargs);
@@ -77,14 +76,35 @@ function assembleACME(step) {
if (step.mainfile) {
args.unshift.apply(args, ["-D__MAIN__=1"]);
}
(0, wasmutils_1.execMain)(step, ACME, args);
wasi.setArgs(['acme', ...args]);
try {
wasi.run();
}
catch (e) {
errors.push({ line: 0, msg: "" + e });
}
const stdout = wasi.fds[1].getBytesAsString();
const stderr = wasi.fds[2].getBytesAsString();
if (stdout)
console.log(stdout);
const matcher = (0, listingutils_1.msvcErrorMatcher)(errors);
for (let line of stderr.split(listingutils_1.re_crlf)) {
matcher(line);
}
if (errors.length) {
let listings = {};
return { errors, listings };
}
binout = FS.readFile(binpath, { encoding: 'binary' });
lstout = FS.readFile(lstpath, { encoding: 'utf8' });
symout = FS.readFile(sympath, { encoding: 'utf8' });
let binout, lstout, symout;
try {
binout = wasi.fs.getFile("./" + binpath).getBytes();
lstout = wasi.fs.getFile("./" + lstpath).getBytesAsString();
symout = wasi.fs.getFile("./" + sympath).getBytesAsString();
}
catch (e) {
errors.push({ line: 0, msg: "No output generated, maybe a fatal assembly error?" });
return { errors };
}
(0, builder_1.putWorkFile)(binpath, binout);
(0, builder_1.putWorkFile)(lstpath, lstout);
(0, builder_1.putWorkFile)(sympath, symout);
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"acme.js","sourceRoot":"","sources":["../../../src/worker/tools/acme.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"acme.js","sourceRoot":"","sources":["../../../src/worker/tools/acme.ts"],"names":[],"mappings":";;AAoDA,oCA8DC;AAjHD,wCAAqG;AACrG,kDAA4D;AAC5D,yDAAwD;AACxD,4CAA8C;AAE9C,SAAS,oBAAoB,CAAC,IAAY;IACtC,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACpC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3B,wBAAwB;QACxB,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAClD,IAAI,CAAC,EAAE,CAAC;YACJ,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACrC,IAAI,QAAQ,GAAoB,EAAE,CAAC;IACnC,IAAI,OAAqB,CAAC;IAC1B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACpC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3B,gCAAgC;QAChC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACjD,IAAI,EAAE,EAAE,CAAC;YACL,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG;gBACvB,KAAK,EAAE,EAAE;aACZ,CAAC;YACF,SAAS;QACb,CAAC;QACD,uEAAuE;QACvE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,IAAI,EAAE,EAAE,CAAC;YACL,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACrB,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBAC3B,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;iBACf,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,IAAI,UAAU,GAA8B,IAAI,CAAC;AAEjD,SAAgB,YAAY,CAAC,IAAe;;IACxC,IAAI,MAAM,GAAkB,EAAE,CAAC;IAC/B,IAAA,qBAAW,EAAC,IAAI,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;IACjD,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,IAAI,IAAA,oBAAU,EAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,UAAU,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,IAAA,0BAAc,EAAC,MAAM,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,qBAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1B,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,EAAE,eAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAChG,IAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC;YACD,IAAI,CAAC,GAAG,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC9C,IAAI,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,IAAA,+BAAgB,EAAC,MAAM,CAAC,CAAC;QACzC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,sBAAO,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,QAAQ,GAAmB,EAAE,CAAC;YAClC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAChC,CAAC;QACD,IAAI,MAAkB,EAAE,MAAc,EAAE,MAAc,CAAC;QACvD,IAAI,CAAC;YACD,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;YACpD,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,gBAAgB,EAAE,CAAC;YAC5D,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,oDAAoD,EAAE,CAAC,CAAC;YACpF,OAAO,EAAE,MAAM,EAAE,CAAC;QACtB,CAAC;QACD,IAAA,qBAAW,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,IAAA,qBAAW,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,IAAA,qBAAW,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,OAAO;YACH,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,mBAAmB,CAAC,MAAM,CAAC;YACrC,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,oBAAoB,CAAC,MAAM,CAAC;SAC1C,CAAC;IACN,CAAC;AACL,CAAC"}
+35 -16
View File
@@ -3,40 +3,59 @@ Object.defineProperty(exports, "__esModule", { value: true });
exports.assembleZMAC = assembleZMAC;
const builder_1 = require("../builder");
const listingutils_1 = require("../listingutils");
const listingutils_2 = require("../listingutils");
const wasishim_1 = require("../../common/wasi/wasishim");
const wasmutils_1 = require("../wasmutils");
let wasiModule = null;
function assembleZMAC(step) {
(0, wasmutils_1.loadNative)("zmac");
var hexout, lstout, binout;
var errors = [];
let errors = [];
var params = step.params;
(0, builder_1.gatherFiles)(step, { mainFilePath: "main.asm" });
var lstpath = step.prefix + ".lst";
var binpath = step.prefix + ".cim";
if ((0, builder_1.staleFiles)(step, [binpath])) {
if (!wasiModule) {
wasiModule = new WebAssembly.Module((0, wasmutils_1.loadWASMBinary)("zmac"));
}
const wasi = new wasishim_1.WASIRunner();
wasi.initSync(wasiModule);
for (let file of step.files) {
wasi.fs.putFile("./" + file, builder_1.store.getFileData(file));
}
wasi.addPreopenDirectory(".");
/*
error1.asm(4) : 'l18d4' Undeclared
JP L18D4
error1.asm(11): warning: 'foobar' treated as label (instruction typo?)
Add a colon or move to first column to stop this warning.
1 errors (see listing if no diagnostics appeared here)
*/
var ZMAC = wasmutils_1.emglobal.zmac({
instantiateWasm: (0, wasmutils_1.moduleInstFn)('zmac'),
noInitialRun: true,
//logReadFiles:true,
print: wasmutils_1.print_fn,
printErr: (0, listingutils_1.makeErrorMatcher)(errors, /([^( ]+)\s*[(](\d+)[)]\s*:\s*(.+)/, 2, 3, step.path),
});
var FS = ZMAC.FS;
(0, builder_1.populateFiles)(step, FS);
const matcher = (0, listingutils_1.makeErrorMatcher)(errors, /([^( ]+)\s*[(](\d+)[)]\s*:\s*(.+)/, 2, 3, step.path);
// TODO: don't know why CIM (hexary) doesn't work
(0, wasmutils_1.execMain)(step, ZMAC, ['-z', '-c', '--oo', 'lst,cim', step.path]);
wasi.setArgs(['zmac', '-z', '-c', '--oo', 'lst,cim', step.path]);
try {
wasi.run();
}
catch (e) {
errors.push({ line: 0, msg: "" + e });
}
const stderr = wasi.fds[2].getBytesAsString();
for (let line of stderr.split(listingutils_2.re_crlf)) {
matcher(line);
}
if (errors.length) {
return { errors: errors };
}
lstout = FS.readFile("zout/" + lstpath, { encoding: 'utf8' });
binout = FS.readFile("zout/" + binpath, { encoding: 'binary' });
let lstout, binout;
try {
lstout = wasi.fs.getFile("./zout/" + lstpath).getBytesAsString();
binout = wasi.fs.getFile("./zout/" + binpath).getBytes();
}
catch (e) {
errors.push({ line: 0, msg: "No output generated, maybe a fatal assembly error?" });
return { errors: errors };
}
(0, builder_1.putWorkFile)(binpath, binout);
(0, builder_1.putWorkFile)(lstpath, lstout);
if (!(0, builder_1.anyTargetChanged)(step, [binpath, lstpath]))
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"z80.js","sourceRoot":"","sources":["../../../src/worker/tools/z80.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"z80.js","sourceRoot":"","sources":["../../../src/worker/tools/z80.ts"],"names":[],"mappings":"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"}
+20
View File
@@ -0,0 +1,20 @@
// Hello World for the Oscar64 optimizing C compiler
// https://github.com/drmortalwombat/oscar64
#include <stdio.h>
#include <conio.h>
int main(void)
{
clrscr();
textcolor(COLOR_LT_BLUE);
gotoxy(10, 10);
// use alternate character set
putchar(14);
// p prefix = PETSCII string literal
printf(p"Hello, world!");
return 0;
}
+42 -3
View File
@@ -1,4 +1,3 @@
#include <stdlib.h>
#include <string.h>
#include <cv.h>
@@ -6,6 +5,11 @@
#include "common.h"
/* Unified common code for libcv platforms (coleco, msx-libcv, sms-sg1000-libcv,
sms-sms-libcv, sms-gg-libcv). Differences are selected by the CV_CV / CV_MSX /
CV_SMS defines (set by the platform) plus CV_MODE4 for SMS/GG mode-4 builds.
Keep this file identical across those preset directories. */
volatile uint_fast8_t vint_counter;
void vint_handler(void) {
@@ -22,16 +26,20 @@ byte reverse_bits(byte n) {
void flip_sprite_patterns(word dest, const byte* patterns, word len) {
word i;
for (i=0; i<len; i++) {
#if defined(CV_MODE4)
cvu_voutb(reverse_bits(*patterns++), dest++);
#else
cvu_voutb(reverse_bits(*patterns++), dest++ ^ 16); // swap left/right chars
#endif
}
}
void clrscr() {
cvu_vmemset(IMAGE, 0, COLS*ROWS);
cvu_vmemset(IMAGE, 0, ROWSTRIDE*ROWS);
}
word getimageaddr(byte x, byte y) {
return IMAGE + y*COLS + x;
return IMAGE + y*ROWSTRIDE + x;
}
byte getcharxy(byte x, byte y) {
@@ -48,6 +56,21 @@ void putstringxy(byte x, byte y, const char* string) {
}
}
#if defined(CV_MODE4)
// mode 4 aliases (same functions, shorter names)
byte getchar(byte x, byte y) {
return getcharxy(x, y);
}
void putchar(byte x, byte y, byte attr) {
putcharxy(x, y, attr);
}
void putstring(byte x, byte y, const char* string) {
putstringxy(x, y, string);
}
#endif
void delay(byte i) {
while (i--) {
wait_vsync();
@@ -103,11 +126,25 @@ __endasm;
void vdp_setup() {
cv_set_screen_active(false);
#if defined(CV_MODE4)
cv_set_screen_mode(CV_SCREENMODE_4_224);
cv_set_character_pattern_t(PATTERN | 0x3000);
cv_set_image_table(IMAGE | 0x400);
// cv_set_color_table(COLOR | 0xfff);
// cv_set_sprite_pattern_table(SPRITE_PATTERNS | 0x1800);
#else
cv_set_screen_mode(CV_SCREENMODE_STANDARD);
cv_set_image_table(IMAGE);
cv_set_character_pattern_t(PATTERN);
cv_set_color_table(COLOR);
cv_set_sprite_pattern_table(SPRITE_PATTERNS);
// load the default font and set a visible default color (white on black).
// the MSX startup code does this for us, but the ColecoVision and
// SG-1000 leave VRAM zeroed -- without this, putstringxy() output is
// invisible (blank pattern table) and the color table is transparent.
copy_default_character_set();
cvu_vmemset(COLOR, 0xf1, 32);
#endif
cv_set_sprite_attribute_table(SPRITES);
cv_set_sprite_big(true);
}
@@ -124,6 +161,7 @@ void set_shifted_pattern(const byte* src, word dest, byte shift) {
}
}
#if !defined(CV_MODE4)
void copy_default_character_set() {
#ifdef CV_MSX
static byte __at(0xf91f) CGPNT;
@@ -133,3 +171,4 @@ void copy_default_character_set() {
cvu_memtovmemcpy(PATTERN, (void *)(font_bitmap_0 - '0'*8), 256*8);
#endif
}
#endif
+40 -3
View File
@@ -2,27 +2,52 @@
#ifndef _CV_COMMON_H
#define _CV_COMMON_H
/* Unified common header for libcv platforms.
The build defines one of: CV_CV (ColecoVision), CV_MSX, CV_SMS (SG-1000/SMS/Game Gear).
CV_MODE4 is defined for SMS/GG mode-4 builds (2 bytes per tile, 32x28).
Keep this file identical across the coleco, msx-libcv, sms-sg1000-libcv,
sms-sms-libcv and sms-gg-libcv preset directories. */
#if defined(CV_MODE4)
/* VRAM map (mode 4)
0x0000 - 0x3fff character pattern table
0x3000 - 0x36ff image table
0x3c00 - 0x3fff sprite attribute table */
#define PATTERN ((const cv_vmemp)0x0000)
#define IMAGE ((const cv_vmemp)0x3000)
#define SPRITES ((const cv_vmemp)0x3c00)
#else
/* VRAM map
0x0000 - 0x17ff character pattern table
0x1800 - 0x1aff image table
0x2000 - 0x37ff color table
0x3800 - 0x3bff sprite pattern table
0x3c00 - 0x3fff sprite attribute table
*/
0x3c00 - 0x3fff sprite attribute table */
#define PATTERN ((const cv_vmemp)0x0000)
#define IMAGE ((const cv_vmemp)0x1800)
#define COLOR ((const cv_vmemp)0x2000)
#define SPRITE_PATTERNS ((const cv_vmemp)0x3800)
#define SPRITES ((const cv_vmemp)0x3c00)
#endif
#ifndef COLS
#define COLS 32
#endif
#ifndef ROWS
#if defined(CV_MODE4)
#define ROWS 28
#else
#define ROWS 24
#endif
#endif
/* bytes per row in the name table (mode 4 has a color byte per tile) */
#if defined(CV_MODE4)
#define ROWSTRIDE (COLS*2)
#else
#define ROWSTRIDE COLS
#endif
typedef unsigned char byte;
typedef signed char sbyte;
@@ -42,8 +67,12 @@ extern char font_bitmap_0[];
#define COLOR_FG(fg) (((fg)<<4))
#ifndef LOCHAR
#if defined(CV_MODE4)
#define LOCHAR 0x20
#else
#define LOCHAR 0x0
#endif
#endif
#define CHAR(ch) (ch-LOCHAR)
@@ -64,6 +93,12 @@ extern word getimageaddr(byte x, byte y);
extern byte getcharxy(byte x, byte y);
extern void putcharxy(byte x, byte y, byte attr);
extern void putstringxy(byte x, byte y, const char* string);
#if defined(CV_MODE4)
// mode 4 aliases (same functions, shorter names)
extern byte getchar(byte x, byte y);
extern void putchar(byte x, byte y, byte attr);
extern void putstring(byte x, byte y, const char* string);
#endif
extern void delay(byte i);
extern byte rndint(byte a, byte b);
@@ -77,6 +112,8 @@ extern word bcd_add(word a, word b);
extern void vdp_setup();
extern void set_shifted_pattern(const byte* src, word dest, byte shift);
#if !defined(CV_MODE4)
extern void copy_default_character_set();
#endif
#endif
-125
View File
@@ -1,125 +0,0 @@
#include <stdlib.h>
#include <string.h>
#include <cv.h>
#include <cvu.h>
#include "common.h"
volatile uint_fast8_t vint_counter;
void vint_handler(void) {
vint_counter++;
}
const unsigned char reverse_lookup[16] = {
0x0, 0x8, 0x4, 0xc, 0x2, 0xa, 0x6, 0xe, 0x1, 0x9, 0x5, 0xd, 0x3, 0xb, 0x7, 0xf, };
byte reverse_bits(byte n) {
return (reverse_lookup[n&0b1111] << 4) | reverse_lookup[n>>4];
}
void flip_sprite_patterns(word dest, const byte* patterns, word len) {
word i;
for (i=0; i<len; i++) {
cvu_voutb(reverse_bits(*patterns++), dest++); // swap left/right chars
}
}
void clrscr() {
cvu_vmemset(IMAGE, 0, COLS*2*ROWS);
}
word getimageaddr(byte x, byte y) {
return IMAGE + y*COLS*2 + x;
}
byte getchar(byte x, byte y) {
return cvu_vinb(getimageaddr(x,y));
}
void putchar(byte x, byte y, byte attr) {
cvu_voutb(attr, getimageaddr(x,y));
}
void putstring(byte x, byte y, const char* string) {
while (*string) {
putchar(x++, y, CHAR(*string++));
}
}
void delay(byte i) {
while (i--) {
wait_vsync();
}
}
byte rndint(byte a, byte b) {
return ((byte)rand() % (b-a+1)) + a;
}
void memset_safe(void* _dest, char ch, word size) {
byte* dest = _dest;
while (size--) {
*dest++ = ch;
}
}
char in_rect(byte x, byte y, byte x0, byte y0, byte w, byte h) {
return ((byte)(x-x0) < w && (byte)(y-y0) < h); // unsigned
}
void draw_bcd_word(byte x, byte y, word bcd) {
byte j;
x += 3;
for (j=0; j<4; j++) {
putchar(x, y, CHAR('0'+(bcd&0xf)));
x--;
bcd >>= 4;
}
}
// add two 16-bit BCD values
word bcd_add(word a, word b) __naked {
a; b; // to avoid warning
__asm
push ix
ld ix,#0
add ix,sp
ld a,4 (ix)
add a, 6 (ix)
daa
ld c,a
ld a,5 (ix)
adc a, 7 (ix)
daa
ld b,a
ld l, c
ld h, b
pop ix
ret
__endasm;
}
void vdp_setup() {
cv_set_screen_active(false);
cv_set_screen_mode(CV_SCREENMODE_4_224);
cv_set_character_pattern_t(PATTERN | 0x3000);
cv_set_image_table(IMAGE | 0x400);
// cv_set_color_table(COLOR | 0xfff);
// cv_set_sprite_pattern_table(SPRITE_PATTERNS | 0x1800);
cv_set_sprite_attribute_table(SPRITES);
cv_set_sprite_big(true);
}
void set_shifted_pattern(const byte* src, word dest, byte shift) {
byte y;
for (y=0; y<8; y++) {
byte a = src[y+8];
byte b = src[y];
cvu_voutb(a>>shift, dest);
cvu_voutb(b>>shift | a<<(8-shift), dest+8);
cvu_voutb(b<<(8-shift), dest+16);
dest++;
}
}
+1
View File
@@ -0,0 +1 @@
../coleco/common.c
-68
View File
@@ -1,68 +0,0 @@
#ifndef _CV_COMMON_H
#define _CV_COMMON_H
/* VRAM map
0x0000 - 0x3fff character pattern table
0x3000 - 0x36ff image table
0x3c00 - 0x3fff sprite attribute table
*/
#define PATTERN ((const cv_vmemp)0x0000)
#define IMAGE ((const cv_vmemp)0x3000)
#define SPRITES ((const cv_vmemp)0x3c00)
#define COLS 32
#define ROWS 28
typedef unsigned char byte;
typedef signed char sbyte;
typedef unsigned short word;
#ifndef CV_SMS
uintptr_t __at(0x6a) font_bitmap_a;
uintptr_t __at(0x6c) font_bitmap_0;
#else
extern char font_bitmap_a[];
extern char font_bitmap_0[];
#endif
#define COLOR_FGBG(fg,bg) (((fg)<<4)|(bg))
#define COLOR_FG(fg) (((fg)<<4))
#define LOCHAR 0x20
#define HICHAR 0xff
#define CHAR(ch) (ch-LOCHAR)
#define wait_vsync() __asm__("halt")
extern volatile uint_fast8_t vint_counter;
extern void vint_handler(void);
extern byte reverse_bits(byte n);
extern void flip_sprite_patterns(word dest, const byte* patterns, word len);
extern char cursor_x;
extern char cursor_y;
extern void clrscr();
extern word getimageaddr(byte x, byte y);
extern byte getchar(byte x, byte y);
extern void putchar(byte x, byte y, byte attr);
extern void putstring(byte x, byte y, const char* string);
extern void delay(byte i);
extern byte rndint(byte a, byte b);
extern void memset_safe(void* _dest, char ch, word size);
extern char in_rect(byte x, byte y, byte x0, byte y0, byte w, byte h);
// print 4-digit BCD value
extern void draw_bcd_word(byte x, byte y, word bcd);
// add two 16-bit BCD values
extern word bcd_add(word a, word b);
extern void vdp_setup();
extern void set_shifted_pattern(const byte* src, word dest, byte shift);
#endif
+1
View File
@@ -0,0 +1 @@
../coleco/common.h
+2 -2
View File
@@ -262,7 +262,7 @@ export const TOOL_META: { [id: string]: ToolMeta } = {
extensions: ['.lnk'],
editorStyle: '6502',
wasmModule: 'merlin32',
version: '1.1.1',
version: '1.1.10',
includePatterns: [...SHARED_INCLUDE_PATTERNS, ...USE_ASM_INCLUDE_PATTERNS],
linkPatterns: SHARED_LINK_PATTERNS,
},
@@ -479,7 +479,7 @@ export const TOOL_META: { [id: string]: ToolMeta } = {
extensions: ['.asm'],
editorStyle: 'gas',
wasmModule: 'yasm',
version: '1.3.0.47.gc9db',
version: '1.3.0',
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
+22
View File
@@ -633,6 +633,16 @@ export class WASIRunner {
this.poke_filestat(filestat_ptr, fd);
return WASIErrors.SUCCESS;
}
fd_filestat_set_size(fd: number, size: number | bigint) {
const file = this.fds[fd];
debug("fd_filestat_set_size", fd, size, file + "");
if (file == null) return WASIErrors.BADF;
if (typeof size == 'bigint') size = Number(size);
file.ensureCapacity(size);
if (size < file.size) file.offset = Math.min(file.offset, size);
file.size = size;
return WASIErrors.SUCCESS;
}
fd_filestat_get(fd: number, filestat_ptr: number) {
const file = this.fds[fd];
debug("fd_filestat_get", fd, filestat_ptr, file + "");
@@ -687,6 +697,16 @@ export class WASIRunner {
this.poke64(time_ptr, time);
return WASIErrors.SUCCESS;
}
path_create_directory(fd: number, path_ptr: number, path_len: number) {
const dir = this.fds[fd];
if (dir == null) return WASIErrors.BADF;
if (dir.type !== FDType.DIRECTORY) return WASIErrors.NOTDIR;
const filename = this.peekUTF8(path_ptr, path_len);
const path = dir.name + '/' + filename;
debug("path_create_directory", path);
this.fs.putDirectory(path);
return WASIErrors.SUCCESS;
}
getWASISnapshotPreview1() {
return {
args_sizes_get: this.args_sizes_get.bind(this),
@@ -704,9 +724,11 @@ export class WASIRunner {
fd_close: this.fd_close.bind(this),
path_filestat_get: this.path_filestat_get.bind(this),
fd_filestat_get: this.fd_filestat_get.bind(this),
fd_filestat_set_size: this.fd_filestat_set_size.bind(this),
random_get: this.random_get.bind(this),
path_readlink: this.path_readlink.bind(this),
path_unlink_file: this.path_unlink_file.bind(this),
path_create_directory: this.path_create_directory.bind(this),
clock_time_get: this.clock_time_get.bind(this),
fd_fdstat_set_flags() { warning("TODO: fd_fdstat_set_flags"); return WASIErrors.NOTSUP; },
fd_readdir() { warning("TODO: fd_readdir"); return WASIErrors.NOTSUP; },
+81 -21
View File
@@ -61,6 +61,7 @@ const audioOversample = 2;
const _BallyAstrocade = function(arcade:boolean) {
var machine : BallyAstrocade;
var cpu : Z80;
var ram : Uint8Array;
var membus, iobus : Bus;
@@ -76,6 +77,29 @@ const _BallyAstrocade = function(arcade:boolean) {
const PIXEL_ON = 0xffeeeeee;
const PIXEL_OFF = 0xff000000;
/*
Screen RAM is DRAM shared by three requesters in priority order: DRAM refresh
(blanking only, so it never costs the CPU), screen refresh, then Z80/Magic.
CAS# free-runs, so memory timeslots are fixed and one Z80 M clock wide:
- Every Z80 screen-RAM access takes at least T1,T2,Tw,T3 — "A Z80 access cycle
to this memory always results in at least one wait state" — blanked or not.
That's +1 over the usual 3 T-states.
- During active video, the refresh wins the slot. Consumer mode fetches 1 byte
(4 px) every 4 PX = every 2 M clocks → memory is unavailable half the time
→ 50% of accesses eat a second wait state. Commercial/arcade fetches 4 bytes
(16 px) every 8 PX = every 4 M clocks → unavailable ¼ of the time → 25% eat
a second one.
- The fetch only runs for the 40 (consumer) / 20 (arcade) reads per line — 160
px of the 63.5 µs line, ≈70%. Border and hblank are free, as is ROM and the
arcade's separate scratch RAM board.
*/
const REFRESH_SLOT_MASK = arcade ? 3 : 1;
// the refresh reads 40 (consumer) or 20 (commercial) times per line, covering the
// 160 displayed pixels of the 63.5 us line; the rest is border and hblank
const ACTIVE_LINE_FRACTION = 0.7;
var activecycles = 0; // = ACTIVE_LINE_FRACTION of a scanline, set by init()
// state variables
var inputs = new Uint8Array(0x20);
var magicop = 0;
@@ -95,13 +119,27 @@ const _BallyAstrocade = function(arcade:boolean) {
var rotcount = 0;
var intst = 0;
var waitstates = 0;
var slotphase = 0;
var patboard = new Uint8Array(0x08);
var patdest = 0;
// is the video refresh reading screen RAM at this point in the frame?
function refreshing() : boolean {
return machine.scanline < verbl && machine.getRasterX() < activecycles;
}
// charge the Z80 for one screen RAM (DRAM) bus cycle
function screenwait() {
waitstates++; // always at least one wait state
if (refreshing() && !(slotphase++ & REFRESH_SLOT_MASK)) {
waitstates++; // and a second one when we collide with the screen refresh
}
}
function ramwrite(a: number, v: number) {
// set RAM
ram[a] = v;
waitstates++;
screenwait();
// mark scanline as dirty
dirtylines[((a & samask) / swbytes) | 0] = 1;
// this was old behavior where we updated instantly
@@ -216,6 +254,7 @@ const _BallyAstrocade = function(arcade:boolean) {
let curwidth: number;
let u13ff: number = 0;
let cycles: number = 0;
const wsave = waitstates;
u13ff = 0;
@@ -296,9 +335,10 @@ const _BallyAstrocade = function(arcade:boolean) {
m_pattern_height--;
}
// Adjust m_maincpu.icount
// m_maincpu.adjust_icount(-cycles);
// Replace the above line with the actual adjustment of icount.
// the pattern board owns the bus while it runs, so its own cycles (two reads
// and two writes per byte, as MAME counts them) replace the Z80 wait states
// that the transfers above accrued
waitstates = wsave + cycles;
}
this.drawScanline = (sl:number) => {
@@ -320,7 +360,9 @@ const _BallyAstrocade = function(arcade:boolean) {
}
}
this.init = (machine:BallyAstrocade, c:Z80, r:Uint8Array, inp:Uint8Array<ArrayBuffer>, psgg) => {
this.init = (mach:BallyAstrocade, c:Z80, r:Uint8Array, inp:Uint8Array<ArrayBuffer>, psgg) => {
machine = mach;
activecycles = mach.cpuCyclesPerLine * ACTIVE_LINE_FRACTION;
cpu = c;
ram = r;
inputs = inp;
@@ -333,7 +375,7 @@ const _BallyAstrocade = function(arcade:boolean) {
read: newAddressDecoder([
[0x0000, 0x1fff, 0x1fff, function(a) { return bios[a]; }],
[0x2000, 0x3fff, 0x1fff, function(a) { return rom ? rom[a] : 0; }],
[0x4000, 0x4fff, 0xfff, function(a) { waitstates++; return ram[a]; }],
[0x4000, 0x4fff, 0xfff, function(a) { screenwait(); return ram[a]; }],
]),
write: newAddressDecoder([
[0x4000, 0x4fff, 0xfff, ramwrite],
@@ -341,18 +383,18 @@ const _BallyAstrocade = function(arcade:boolean) {
]),
}
} else {
// arcade game (TODO: wait states 1/4 of the time)
// arcade game
membus = {
read: newAddressDecoder([
[0x4000, 0x7fff, 0x3fff, function(a) { return ram[a]; }], // screen RAM
[0xd000, 0xdfff, 0x0fff, function(a) { return ram[a + 0x4000]; }], // static RAM
[0x4000, 0x7fff, 0x3fff, function(a) { screenwait(); return ram[a]; }], // screen RAM
[0xd000, 0xdfff, 0x0fff, function(a) { return ram[a + 0x4000]; }], // static RAM (own board, no wait states)
[0x0000, 0x3fff, 0x3fff, function(a) { return rom ? rom[a] : 0; }], // ROM
[0x8000, 0xbfff, 0x3fff, function(a) { return rom ? rom[a + 0x4000] : 0; }], // ROM
]),
write: newAddressDecoder([
[0x4000, 0x7fff, 0x3fff, ramwrite],
[0x0000, 0x3fff, 0x3fff, magicwrite],
[0xd000, 0xdfff, 0x0fff, function(a, v) { ramwrite(a + 0x4000, v); }], // static RAM
[0xd000, 0xdfff, 0x0fff, function(a, v) { ram[a + 0x4000] = v; }], // static RAM (not displayed, no wait states)
]),
}
}
@@ -458,8 +500,8 @@ const _BallyAstrocade = function(arcade:boolean) {
}
}
}
machine.connectCPUMemoryBus(membus);
machine.connectCPUIOBus(iobus);
mach.connectCPUMemoryBus(membus);
mach.connectCPUIOBus(iobus);
this.membus = membus;
this.iobus = iobus;
// default palette
@@ -468,12 +510,21 @@ const _BallyAstrocade = function(arcade:boolean) {
}
};
this.resetWaitStates = function(sl) {
var n = sl < verbl ? waitstates : 0; // only wait if video active
// wait states accrued since the last call, charged to the CPU by advanceCPU()
this.resetWaitStates = function() {
var n = waitstates;
waitstates = 0;
return n;
}
// read for the debugger/UI, without stalling the CPU
this.peek = function(a: number) {
var n = waitstates;
var v = membus.read(a);
waitstates = n;
return v;
}
this.loadState = (state) => {
cpu.loadState(state.c);
ram.set(state.ram);
@@ -491,6 +542,7 @@ const _BallyAstrocade = function(arcade:boolean) {
rotcount = state.rotcount;
rotdata.set(state.rotdata);
intst = state.intst;
slotphase = state.slotphase | 0;
inputs.set(state.inputs);
patboard.set(state.patboard);
patdest = state.patdest;
@@ -516,6 +568,7 @@ const _BallyAstrocade = function(arcade:boolean) {
rotcount: rotcount,
rotdata: rotdata.slice(0),
intst: intst,
slotphase: slotphase,
patboard: patboard.slice(0),
patdest: patdest,
};
@@ -565,12 +618,12 @@ const _BallyAstrocade = function(arcade:boolean) {
export class BallyAstrocade extends BasicScanlineMachine implements AcceptsPaddleInput {
cpuFrequency = 1789000;
numTotalScanlines = 262;
numTotalScanlines : number;
numVisibleScanlines : number;
cpuCyclesPerLine : number;
defaultROMSize : number;
canvasWidth : number;
sampleRate = 60 * 262 * audioOversample;
sampleRate : number;
ram : Uint8Array;
cpu : Z80;
m; // _BallyAstrocade
@@ -586,7 +639,14 @@ export class BallyAstrocade extends BasicScanlineMachine implements AcceptsPaddl
this.arcade = arcade;
this.cpu = new Z80();
this.psg = new AstrocadeAudio(new MasterAudio());
this.audioadapter = new TssChannelAdapter(this.psg.psg, audioOversample, this.sampleRate);
// in consumer mode every line of screen RAM is displayed twice, so one emulated
// scanline is two of the 262 NTSC lines (as are INLIN and VERBL, hence the >>1)
this.numTotalScanlines = arcade ? 262 : 131;
// one audio sample per emulated scanline, so oversample twice as much in
// consumer mode to keep the sample rate the same
var oversample = audioOversample * (arcade ? 1 : 2);
this.sampleRate = 60 * this.numTotalScanlines * oversample;
this.audioadapter = new TssChannelAdapter(this.psg.psg, oversample, this.sampleRate);
this.handler = newKeyboardHandler(this.inputs, ASTROCADE_KEYCODE_MAP);
this.defaultROMSize = arcade ? 0xb000 : 0x2000;
this.ram = new Uint8Array(arcade ? 0x5000 : 0x1000);
@@ -606,7 +666,7 @@ export class BallyAstrocade extends BasicScanlineMachine implements AcceptsPaddl
}
read(a:number) : number {
return this.m.membus.read(a);
return this.m.peek(a);
}
write(a:number, v:number) : void {
this.m.membus.write(a,v);
@@ -619,7 +679,7 @@ export class BallyAstrocade extends BasicScanlineMachine implements AcceptsPaddl
this.m.connectVideo(this.backbuffer);
}
preFrame() {
this.m.resetWaitStates(0);
this.m.resetWaitStates();
}
postFrame() {
// copy back buffer to front buffer, omitting bottom non-visible pixels
@@ -652,8 +712,8 @@ export class BallyAstrocade extends BasicScanlineMachine implements AcceptsPaddl
advanceCPU() {
var clk = super.advanceCPU();
// TODO: disable 33% of the time (hblank)
var xtra = this.m.resetWaitStates(this.scanline);
// charge the CPU for screen RAM contention during this instruction
var xtra = this.m.resetWaitStates();
if (xtra) {
clk += xtra;
this.probe.logClocks(xtra);
+1
View File
@@ -29,6 +29,7 @@ export function mockAudio() {
writeRegister() { }
writeRegisterSN() { }
writeRegisterAY() { }
readRegister() { return 0; }
}
class NullMasterChannel {
addChannel() { }
+3 -1
View File
@@ -410,6 +410,8 @@ export var PLATFORM_PARAMS = {
},
};
PLATFORM_PARAMS['sms-sms-libcv'] = PLATFORM_PARAMS['sms-sg1000-libcv'];
// SMS/GG mode-4 variants of the shared libcv common.[ch] (2 bytes per tile, 32x28)
PLATFORM_PARAMS['sms-sms-libcv'] = { ...PLATFORM_PARAMS['sms-sg1000-libcv'],
extra_preproc_args: ['-I', '.', '-D', 'CV_SMS', '-D', 'CV_MODE4'] };
PLATFORM_PARAMS['sms-gg-libcv'] = PLATFORM_PARAMS['sms-sms-libcv'];
+39 -21
View File
@@ -1,7 +1,8 @@
import { CodeListing, CodeListingMap } from "../../common/workertypes";
import { BuildStep, BuildStepResult, gatherFiles, staleFiles, populateFiles, fixParamsWithDefines, putWorkFile } from "../builder";
import { msvcErrorMatcher } from "../listingutils";
import { loadNative, moduleInstFn, print_fn, setupFS, execMain, emglobal, EmscriptenModule } from "../wasmutils";
import { CodeListing, CodeListingMap, WorkerError } from "../../common/workertypes";
import { BuildStep, BuildStepResult, gatherFiles, staleFiles, putWorkFile, store } from "../builder";
import { msvcErrorMatcher, re_crlf } from "../listingutils";
import { WASIRunner } from "../../common/wasi/wasishim";
import { loadWASMBinary } from "../wasmutils";
function parseACMESymbolTable(text: string) {
var symbolmap = {};
@@ -47,25 +48,24 @@ function parseACMEReportFile(text: string) {
return listings;
}
let wasiModule: WebAssembly.Module | null = null;
export function assembleACME(step: BuildStep): BuildStepResult {
loadNative("acme");
var errors = [];
let errors: WorkerError[] = [];
gatherFiles(step, { mainFilePath: "main.acme" });
var binpath = step.prefix + ".bin";
var lstpath = step.prefix + ".lst";
var sympath = step.prefix + ".sym";
if (staleFiles(step, [binpath])) {
var binout, lstout, symout;
var ACME: EmscriptenModule = emglobal.acme({
instantiateWasm: moduleInstFn('acme'),
noInitialRun: true,
print: print_fn,
printErr: msvcErrorMatcher(errors),
//printErr: makeErrorMatcher(errors, /(Error|Warning) - File (.+?), line (\d+)[^:]+: (.+)/, 3, 4, step.path, 2),
});
var FS = ACME.FS;
populateFiles(step, FS);
fixParamsWithDefines(step.path, step.params);
if (!wasiModule) {
wasiModule = new WebAssembly.Module(loadWASMBinary("acme"));
}
const wasi = new WASIRunner();
wasi.initSync(wasiModule);
for (let file of step.files) {
wasi.fs.putFile("./" + file, store.getFileData(file));
}
wasi.addPreopenDirectory(".");
var args = ['--msvc', '--initmem', '0', '-o', binpath, '-r', lstpath, '-l', sympath, step.path];
if (step.params?.acmeargs) {
args.unshift.apply(args, step.params.acmeargs);
@@ -76,14 +76,32 @@ export function assembleACME(step: BuildStep): BuildStepResult {
if (step.mainfile) {
args.unshift.apply(args, ["-D__MAIN__=1"]);
}
execMain(step, ACME, args);
wasi.setArgs(['acme', ...args]);
try {
wasi.run();
} catch (e) {
errors.push({ line: 0, msg: "" + e });
}
const stdout = wasi.fds[1].getBytesAsString();
const stderr = wasi.fds[2].getBytesAsString();
if (stdout) console.log(stdout);
const matcher = msvcErrorMatcher(errors);
for (let line of stderr.split(re_crlf)) {
matcher(line);
}
if (errors.length) {
let listings: CodeListingMap = {};
return { errors, listings };
}
binout = FS.readFile(binpath, { encoding: 'binary' });
lstout = FS.readFile(lstpath, { encoding: 'utf8' });
symout = FS.readFile(sympath, { encoding: 'utf8' });
let binout: Uint8Array, lstout: string, symout: string;
try {
binout = wasi.fs.getFile("./" + binpath).getBytes();
lstout = wasi.fs.getFile("./" + lstpath).getBytesAsString();
symout = wasi.fs.getFile("./" + sympath).getBytesAsString();
} catch (e) {
errors.push({ line: 0, msg: "No output generated, maybe a fatal assembly error?" });
return { errors };
}
putWorkFile(binpath, binout);
putWorkFile(lstpath, lstout);
putWorkFile(sympath, symout);
+36 -21
View File
@@ -1,43 +1,59 @@
import { CodeListingMap } from "../../common/workertypes";
import { BuildStep, BuildStepResult, gatherFiles, staleFiles, populateFiles, putWorkFile, anyTargetChanged } from "../builder";
import { CodeListingMap, WorkerError } from "../../common/workertypes";
import { BuildStep, BuildStepResult, gatherFiles, staleFiles, putWorkFile, anyTargetChanged, store } from "../builder";
import { makeErrorMatcher, parseListing } from "../listingutils";
import { EmscriptenModule, emglobal, execMain, loadNative, moduleInstFn, print_fn } from "../wasmutils";
import { re_crlf } from "../listingutils";
import { WASIRunner } from "../../common/wasi/wasishim";
import { loadWASMBinary } from "../wasmutils";
let wasiModule: WebAssembly.Module | null = null;
export function assembleZMAC(step: BuildStep): BuildStepResult {
loadNative("zmac");
var hexout, lstout, binout;
var errors = [];
let errors: WorkerError[] = [];
var params = step.params;
gatherFiles(step, { mainFilePath: "main.asm" });
var lstpath = step.prefix + ".lst";
var binpath = step.prefix + ".cim";
if (staleFiles(step, [binpath])) {
if (!wasiModule) {
wasiModule = new WebAssembly.Module(loadWASMBinary("zmac"));
}
const wasi = new WASIRunner();
wasi.initSync(wasiModule);
for (let file of step.files) {
wasi.fs.putFile("./" + file, store.getFileData(file));
}
wasi.addPreopenDirectory(".");
/*
error1.asm(4) : 'l18d4' Undeclared
JP L18D4
error1.asm(11): warning: 'foobar' treated as label (instruction typo?)
Add a colon or move to first column to stop this warning.
1 errors (see listing if no diagnostics appeared here)
*/
var ZMAC: EmscriptenModule = emglobal.zmac({
instantiateWasm: moduleInstFn('zmac'),
noInitialRun: true,
//logReadFiles:true,
print: print_fn,
printErr: makeErrorMatcher(errors, /([^( ]+)\s*[(](\d+)[)]\s*:\s*(.+)/, 2, 3, step.path),
});
var FS = ZMAC.FS;
populateFiles(step, FS);
const matcher = makeErrorMatcher(errors, /([^( ]+)\s*[(](\d+)[)]\s*:\s*(.+)/, 2, 3, step.path);
// TODO: don't know why CIM (hexary) doesn't work
execMain(step, ZMAC, ['-z', '-c', '--oo', 'lst,cim', step.path]);
wasi.setArgs(['zmac', '-z', '-c', '--oo', 'lst,cim', step.path]);
try {
wasi.run();
} catch (e) {
errors.push({ line: 0, msg: "" + e });
}
const stderr = wasi.fds[2].getBytesAsString();
for (let line of stderr.split(re_crlf)) {
matcher(line);
}
if (errors.length) {
return { errors: errors };
}
lstout = FS.readFile("zout/" + lstpath, { encoding: 'utf8' });
binout = FS.readFile("zout/" + binpath, { encoding: 'binary' });
let lstout: string, binout: Uint8Array;
try {
lstout = wasi.fs.getFile("./zout/" + lstpath).getBytesAsString();
binout = wasi.fs.getFile("./zout/" + binpath).getBytes();
} catch (e) {
errors.push({ line: 0, msg: "No output generated, maybe a fatal assembly error?" });
return { errors: errors };
}
putWorkFile(binpath, binout);
putWorkFile(lstpath, lstout);
if (!anyTargetChanged(step, [binpath, lstpath]))
@@ -66,4 +82,3 @@ export function assembleZMAC(step: BuildStep): BuildStepResult {
};
}
}
-21
View File
@@ -1,21 +0,0 @@
var acme = (() => {
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;
return (
function(acme = {}) {
var Module=typeof acme!="undefined"?acme:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};Module["inspect"]=()=>"[Emscripten Module object]"}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDLine truncated
return acme;//.ready
}
);
})();
if (typeof exports === 'object' && typeof module === 'object')
module.exports = acme;
else if (typeof define === 'function' && define['amd'])
define([], function() { return acme; });
else if (typeof exports === 'object')
exports["acme"] = acme;
Binary file not shown.
-18
View File
@@ -1,18 +0,0 @@
var zmac = function(zmac) {
zmac = zmac || {};
var Module=typeof zmac!=="undefined"?zmac:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=(function(status,toThrow){throw toThrow});Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("Module['ENVIRONMENT'] value is not valid. must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process["on"]("unhandledRejection",(function(reason,p){process["exit"](1)}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){return read(f)}}Module["readBinary"]=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module["setWindowTitle"]=(function(title){document.title=title})}else{throw new Error("not compiled for this environment")}Module["print"]=typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null;Module["printErr"]=typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||Module["print"];Module.print=Module["print"];Module.printErr=Module["printErr"];for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){assert(!staticSealed);var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function dynamicAlloc(size){assert(DYNAMICTOP_PTR);var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;Module.printErr(text)}}var asm2wasmImports={"f64-rem":(function(x,y){return x%y}),"debugger":(function(){debugger})};var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return ModLine truncated
return zmac;
};
if (typeof exports === 'object' && typeof module === 'object')
module.exports = zmac;
else if (typeof define === 'function' && define['amd'])
define([], function() { return zmac; });
else if (typeof exports === 'object')
exports["zmac"] = zmac;
Binary file not shown.
+6 -1
View File
@@ -137,4 +137,9 @@ Log.prototype.info = function (message) {
this.print(message);
};
exports.Log = Log;
// Export for node/CommonJS consumers, or publish globally for <script> tags.
if (typeof exports !== 'undefined') {
exports.Log = Log;
} else {
this.Log = Log;
}