Files
microw8/v0.1pre2/index.html
2025-03-02 12:42:36 +00:00

1 line
7.7 KiB
HTML

<!doctype html><html><head><meta charset="utf8"><title>MicroW8</title><link href="https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@500&display=swap" rel="stylesheet"><style>body,canvas,html{margin:0;padding:0}html{background-color:#202024;color:#808070;font-family:Josefin Sans,Verdana,Arial Black,sans-serif}body,html{height:100%}body{display:grid;grid-template-rows:1fr 0fr}#centered{align-self:center;justify-self:center}.footer{color:#202420}a{color:#303630}a:hover{color:#405040}canvas{background-color:#202428;border:4px solid #303040;box-shadow:5px 5px 20px #000}#message,canvas{margin-bottom:8px}.error{color:#e04030}button{background-color:#303440;border:1px solid #404040;border-radius:4px;color:#808070;font-family:inherit;padding:4px}button:hover{background-color:#202010}button:active{background-color:#504450}</style></head><body> <div id="centered"> <canvas id="screen" width="640" height="480"></canvas> <div id="message"></div> <button id="cartButton">Load cart...</button> </div> <div id="footer"> <a href="http://unlicense.org/" ref="license">Unlicense</a> </div> </body><script type="module">function A(A){return A&&A.__esModule?A.default:A}async function n(A,n){let e=await(await fetch(A)).arrayBuffer(),g=await WebAssembly.compile(e);return new WebAssembly.Instance(g,n)}function e(A,n){let e=A?`${A} bytes`:"Insert cart";n&&(e+=` - <span class="error">${n.replaceAll("<","&lt;")}</span>`),document.getElementById("message").innerHTML=e}let g=document.createElement("canvas");g.width=320,g.height=240;let l,f=g.getContext("2d"),t=f.createImageData(320,240),B=document.getElementById("screen"),Z=B.getContext("2d");async function Q(Q){l&&(l(),l=null);let a=Q.byteLength;if(e(a),0==a)return;let c=new Uint8Array(Q),X=window.location.pathname;if(a<=1024){let A="";for(let n of c)A+=String.fromCharCode(n);X+="#"+btoa(A)}X!=window.location.pathname+window.location.hash&&history.pushState(null,null,X),B.width=B.width;try{let B={env:{memory:new WebAssembly.Memory({initial:9})}},X=B.env.memory.buffer,C=await n(A("data:application/wasm;base64,AGFzbQEAAAABGgRgBH9%2Ff38Bf2ABfwF%2FYAJ%2FfwF%2FYAN%2Ff38AAg8BA2VudgZtZW1vcnkCAAgDBQQAAQIDBwwBCGxvYWRfdXc4AAAKtAIErwEBBX8gAC0AAEEARgRAIAMgACABIABrIgQQAyADIARqDwsgAyACQQgQAyACQQhqIQIgA0EIaiEFIABBAWohBgNAIAYgAUggAiADTiAGLQAAIAItAABMcnEEQCAFIAUgBhACIgdqIQUgAiADSCAGLQAAIAItAABGcQRAIAIgAhABaiECCyAGIAdqIQYMAQsgAiADSARAIAUgBSACEAIiCGohBSACIAhqIQIMAQsLIAULRwEEfyAAQQFqIQFBACECQQAhAwNAIAIgAS0AACIEQf8AcSADdHIhAiADQQdqIQMgAUEBaiEBIARBgAFxDQALIAEgAGsgAmoLEgEBfyAAIAEgARABIgIQAyACCyYAIAJBAEoEQANAIAAgAkEBayICaiABIAJqLQAAOgAAIAINAAsLCw%3D%3D"),B),F=await(await fetch(A("data:application/wasm;base64,AGFzbQEAAAABugM%2FYAAAYAABf2AAAX1gAX8AYAF%2FAX9gAX8BfWABfQBgAX0Bf2ABfQF9YAJ%2FfwBgAn9%2FAX9gAn9%2FAX1gAn1%2FAGACfX8Bf2ACfX8BfWACfX0AYAJ9fQF%2FYAJ9fQF9YAN%2Ff38AYAN%2Ff38Bf2ADf39%2FAX1gA31%2FfwBgA31%2FfwF%2FYAN9f38BfWADfX1%2FAGADfX1%2FAX9gA319fwF9YAN9fX0AYAN9fX0Bf2ADfX19AX1gBH9%2Ff38AYAR%2Ff39%2FAX9gBH9%2Ff38BfWAEfX9%2FfwBgBH1%2Ff38Bf2AEfX9%2FfwF9YAR9fX9%2FAGAEfX1%2FfwF%2FYAR9fX9%2FAX1gBH19fX8AYAR9fX1%2FAX9gBH19fX8BfWAEfX19fQBgBH19fX0Bf2AEfX19fQF9YAV%2Ff39%2FfwBgBX9%2Ff39%2FAX9gBX9%2Ff39%2FAX1gBX1%2Ff39%2FAGAFfX9%2Ff38Bf2AFfX9%2Ff38BfWAFfX1%2Ff38AYAV9fX9%2FfwF%2FYAV9fX9%2FfwF9YAV9fX1%2FfwBgBX19fX9%2FAX9gBX19fX9%2FAX1gBX19fX1%2FAGAFfX19fX8Bf2AFfX19fX8BfWAFfX19fX0AYAV9fX19fQF%2FYAV9fX19fQF9AqkKUQNlbnYDc2luAAgDZW52A2NvcwAIA2VudgN0YW4ACANlbnYEYXNpbgAIA2VudgRhY29zAAgDZW52BGF0YW4ACANlbnYFYXRhbjIAEQNlbnYDcG93ABEDZW52A2xvZwAIA2VudgRmbW9kABEDZW52BnJhbmRvbQABA2VudgdyYW5kb21mAAIDZW52CnJhbmRvbVNlZWQAAwNlbnYDY2xzAAMDZW52CHNldFBpeGVsABIDZW52CGdldFBpeGVsAAoDZW52BWhsaW5lAB4DZW52CXJlY3RhbmdsZQA5A2VudgZjaXJjbGUAJwNlbnYKcmVzZXJ2ZWQxOQAAA2VudgpyZXNlcnZlZDIwAAADZW52CnJlc2VydmVkMjEAAANlbnYKcmVzZXJ2ZWQyMgAAA2VudgpyZXNlcnZlZDIzAAADZW52CnJlc2VydmVkMjQAAANlbnYKcmVzZXJ2ZWQyNQAAA2VudgpyZXNlcnZlZDI2AAADZW52CnJlc2VydmVkMjcAAANlbnYKcmVzZXJ2ZWQyOAAAA2VudgpyZXNlcnZlZDI5AAADZW52CnJlc2VydmVkMzAAAANlbnYKcmVzZXJ2ZWQzMQAAA2VudgpyZXNlcnZlZDMyAAADZW52CnJlc2VydmVkMzMAAANlbnYKcmVzZXJ2ZWQzNAAAA2VudgpyZXNlcnZlZDM1AAADZW52CnJlc2VydmVkMzYAAANlbnYKcmVzZXJ2ZWQzNwAAA2VudgpyZXNlcnZlZDM4AAADZW52CnJlc2VydmVkMzkAAANlbnYKcmVzZXJ2ZWQ0MAAAA2VudgpyZXNlcnZlZDQxAAADZW52CnJlc2VydmVkNDIAAANlbnYKcmVzZXJ2ZWQ0MwAAA2VudgpyZXNlcnZlZDQ0AAADZW52CnJlc2VydmVkNDUAAANlbnYKcmVzZXJ2ZWQ0NgAAA2VudgpyZXNlcnZlZDQ3AAADZW52CnJlc2VydmVkNDgAAANlbnYKcmVzZXJ2ZWQ0OQAAA2VudgpyZXNlcnZlZDUwAAADZW52CnJlc2VydmVkNTEAAANlbnYKcmVzZXJ2ZWQ1MgAAA2VudgpyZXNlcnZlZDUzAAADZW52CnJlc2VydmVkNTQAAANlbnYKcmVzZXJ2ZWQ1NQAAA2VudgpyZXNlcnZlZDU2AAADZW52CnJlc2VydmVkNTcAAANlbnYKcmVzZXJ2ZWQ1OAAAA2VudgpyZXNlcnZlZDU5AAADZW52CnJlc2VydmVkNjAAAANlbnYKcmVzZXJ2ZWQ2MQAAA2VudgpyZXNlcnZlZDYyAAADZW52CnJlc2VydmVkNjMAAANlbnYLZ19yZXNlcnZlZDADfwADZW52C2dfcmVzZXJ2ZWQxA38AA2VudgtnX3Jlc2VydmVkMgN%2FAANlbnYLZ19yZXNlcnZlZDMDfwADZW52C2dfcmVzZXJ2ZWQ0A38AA2VudgtnX3Jlc2VydmVkNQN%2FAANlbnYLZ19yZXNlcnZlZDYDfwADZW52C2dfcmVzZXJ2ZWQ3A38AA2VudgtnX3Jlc2VydmVkOAN%2FAANlbnYLZ19yZXNlcnZlZDkDfwADZW52DGdfcmVzZXJ2ZWQxMAN%2FAANlbnYMZ19yZXNlcnZlZDExA38AA2VudgxnX3Jlc2VydmVkMTIDfwADZW52DGdfcmVzZXJ2ZWQxMwN%2FAANlbnYMZ19yZXNlcnZlZDE0A38AA2VudgxnX3Jlc2VydmVkMTUDfwADZW52Bm1lbW9yeQIABAMCAQMHBwEDdGljAEAKBAECAAs%3D"))).arrayBuffer();if(0!=c[0]){new Uint8Array(X).set(c),new Uint8Array(X).set(new Uint8Array(F),Q.byteLength);let A=Q.byteLength+F.byteLength,n=C.exports.load_uw8(0,Q.byteLength,Q.byteLength,A);Q=new ArrayBuffer(n-A),new Uint8Array(Q).set(new Uint8Array(X).slice(A,n))}let I={env:{memory:new WebAssembly.Memory({initial:4,maximum:4})}};for(let A of["acos","asin","atan","atan2","cos","exp","log","sin","tan","pow"])I.env[A]=Math[A];for(let A=9;A<64;++A)I.env["reserved"+A]=()=>{};for(let A=0;A<16;++A)I.env["g_reserved"+A]=0;let y=await n(A("data:application/wasm;base64,AGFzbQEAAAABQwxgAAF%2FYAABfmAAAX1gAX8AYAJ9fQF9YAN%2Ff38AYAJ%2FfwF%2FYAN%2Ff38Bf2AEf39%2FfwBgBX19fX1%2FAGAEfX19fwBgAAACDwEDZW52Bm1lbW9yeQIABAMODQABAgMEAwUGBwgJCgsGBgF%2BAUIlCwdsCwZyYW5kb20AAAhyYW5kb202NAABB3JhbmRvbWYAAgpyYW5kb21TZWVkAAMEZm1vZAAEA2NscwAFCHNldFBpeGVsAAYIZ2V0UGl4ZWwABwVobGluZQAJCXJlY3RhbmdsZQAKBmNpcmNsZQALCAEMCsoEDQgAEAFCIIenCysBAX4jACMAQgyIhSIAIABCGYaFIgAgAEIbiIUkACMAQp26s%2FuUkv2iJX4LEwBBgICA%2FAMQAEEJdnK%2BQQGykwsZACAArEIghkE%2FIABrrIUkABABJAAQASQACw4AIAAgACABlY4gAZSTCyoBAX8gAEH%2FAXFBgYKECGwhAANAIAEgADYCeCABQQRqIgFBgNgESA0ACwsgACAAQcACSSABQfABSXEEQCAAIAFBwAJsaiACOgB4CwshACAAQcACSSABQfABSXEEfyAAIAFBwAJsai0AeAVBAAsLFAAgASACIAAgACACShsgACABSBsLVAECfyAAQQBBwAIQCCEAIAFBAEHAAhAIIQEgACABSCACQfABSXEEQCACQcACbCAAaiEEIAQgAWogAGshBQNAIAQgAzoAeCAEQQFqIgQgBUgNAAsLC2ABBH8gAosgAlsgA4sgA1txBEAgAJCoIQUgAZCoQQBB8AEQCCEGIAAgApKQqCEHIAEgA5KQqEEAQfABEAghCAJAA0AgBiAITg0BIAUgByAGIAQQCSAGQQFqIQYMAAsLCwtzAgJ%2FA30gASACk5CoQQBB8AEQCCEEIAEgApKQqEEAQfABEAghBQJAA0AgBCAFTg0BIAIgApQgBLIgAZNDAAAAP5IiBiAGlJMiB4sgB1sEQCAAIAeRIgiTkKggACAIkpCoIAQgAxAJCyAEQQFqIQQMAAsLCykBAX8DQCAAQQRsIABBgYIEbDYC%2BNgEIABBAWoiAEGAAkgNAAsQABADCw%3D%3D"),I);for(let A in y.exports)I.env[A]=y.exports[A];let w=new WebAssembly.Instance(await WebAssembly.compile(Q),I),i=new Uint32Array(t.data.buffer),m=Date.now(),V=!0;l=()=>V=!1,function A(){if(V)try{w.exports.tic(Date.now()-m);let n=new Uint8Array(I.env.memory.buffer.slice(120,76920)),e=new Uint32Array(I.env.memory.buffer.slice(76920,77944));for(let A=0;A<76800;++A)i[A]=4278190080|e[n[A]];f.putImageData(t,0,0),Z.imageSmoothingEnabled=!1,Z.drawImage(g,0,0,640,480),window.requestAnimationFrame(A)}catch(A){e(a,A.toString())}}()}catch(A){e(a,A.toString())}}async function a(A){Q(await(await fetch(A)).arrayBuffer())}function c(){let A=window.location.hash.slice(1);A.length>0?a("data:;base64,"+A):Q(new ArrayBuffer(0))}window.onhashchange=c,c(),document.getElementById("cartButton").onclick=()=>{let A=document.createElement("input");A.type="file",A.accept=".wasm,.uw8,application/wasm",A.onchange=()=>{A.files.length>0&&a(URL.createObjectURL(A.files[0]))},A.click()};</script></html>