Files
microw8/site/static/v0.1pre1/index.html

1 line
6.0 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="512"></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}function e(A,e){let t=A?`${A} bytes`:"Insert cart";e&&(t+=` - <span class="error">${e.replaceAll("<","&lt;")}</span>`),document.getElementById("message").innerHTML=t}let t=document.createElement("canvas");t.width=320,t.height=256;let n,c=t.getContext("2d"),f=c.createImageData(320,256),a=document.getElementById("screen"),l=a.getContext("2d");async function X(X){n&&(n(),n=null);let g=X.byteLength;if(e(g),0==g)return;let Z=new Uint8Array(X),y=window.location.pathname;if(g<=1024){let A="";for(let e of Z)A+=String.fromCharCode(e);y+="#"+btoa(A)}y!=window.location.pathname+window.location.hash&&history.pushState(null,null,y),a.width=a.width;try{let a={env:{memory:new WebAssembly.Memory({initial:8})}},y=a.env.memory.buffer,d=await async function(A,e){let t=await(await fetch(A)).arrayBuffer(),n=await WebAssembly.compile(t);return new WebAssembly.Instance(n,e)}(A("data:application/wasm;base64,AGFzbQEAAAABGgRgBH9%2Ff38Bf2ABfwF%2FYAJ%2FfwF%2FYAN%2Ff38AAg8BA2VudgZtZW1vcnkCAAgDBQQAAQIDBwwBCGxvYWRfdXc4AAAKtAIErwEBBX8gAC0AAEEARgRAIAMgACABIABrIgQQAyADIARqDwsgAyACQQgQAyACQQhqIQIgA0EIaiEFIABBAWohBgNAIAYgAUggAiADTiAGLQAAIAItAABMcnEEQCAFIAUgBhACIgdqIQUgAiADSCAGLQAAIAItAABGcQRAIAIgAhABaiECCyAGIAdqIQYMAQsgAiADSARAIAUgBSACEAIiCGohBSACIAhqIQIMAQsLIAULRwEEfyAAQQFqIQFBACECQQAhAwNAIAIgAS0AACIEQf8AcSADdHIhAiADQQdqIQMgAUEBaiEBIARBgAFxDQALIAEgAGsgAmoLEgEBfyAAIAEgARABIgIQAyACCyYAIAJBAEoEQANAIAAgAkEBayICaiABIAJqLQAAOgAAIAINAAsLCw%3D%3D"),a),i=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%2FYAV9fX19fQF9Ap0IQQRtYXRoA3NpbgAIBG1hdGgDY29zAAgEbWF0aAN0YW4ACARtYXRoBGFzaW4ACARtYXRoBGFjb3MACARtYXRoBGF0YW4ACARtYXRoBWF0YW4yABEEbWF0aANwb3cAEQRtYXRoA2xvZwAIA3V3OAlyZXNlcnZlZDkAAAN1dzgKcmVzZXJ2ZWQxMAAAA3V3OApyZXNlcnZlZDExAAADdXc4CnJlc2VydmVkMTIAAAN1dzgKcmVzZXJ2ZWQxMwAAA3V3OApyZXNlcnZlZDE0AAADdXc4CnJlc2VydmVkMTUAAAN1dzgKcmVzZXJ2ZWQxNgAAA3V3OApyZXNlcnZlZDE3AAADdXc4CnJlc2VydmVkMTgAAAN1dzgKcmVzZXJ2ZWQxOQAAA3V3OApyZXNlcnZlZDIwAAADdXc4CnJlc2VydmVkMjEAAAN1dzgKcmVzZXJ2ZWQyMgAAA3V3OApyZXNlcnZlZDIzAAADdXc4CnJlc2VydmVkMjQAAAN1dzgKcmVzZXJ2ZWQyNQAAA3V3OApyZXNlcnZlZDI2AAADdXc4CnJlc2VydmVkMjcAAAN1dzgKcmVzZXJ2ZWQyOAAAA3V3OApyZXNlcnZlZDI5AAADdXc4CnJlc2VydmVkMzAAAAN1dzgKcmVzZXJ2ZWQzMQAAA3V3OApyZXNlcnZlZDMyAAADdXc4CnJlc2VydmVkMzMAAAN1dzgKcmVzZXJ2ZWQzNAAAA3V3OApyZXNlcnZlZDM1AAADdXc4CnJlc2VydmVkMzYAAAN1dzgKcmVzZXJ2ZWQzNwAAA3V3OApyZXNlcnZlZDM4AAADdXc4CnJlc2VydmVkMzkAAAN1dzgKcmVzZXJ2ZWQ0MAAAA3V3OApyZXNlcnZlZDQxAAADdXc4CnJlc2VydmVkNDIAAAN1dzgKcmVzZXJ2ZWQ0MwAAA3V3OApyZXNlcnZlZDQ0AAADdXc4CnJlc2VydmVkNDUAAAN1dzgKcmVzZXJ2ZWQ0NgAAA3V3OApyZXNlcnZlZDQ3AAADdXc4CnJlc2VydmVkNDgAAAN1dzgKcmVzZXJ2ZWQ0OQAAA3V3OApyZXNlcnZlZDUwAAADdXc4CnJlc2VydmVkNTEAAAN1dzgKcmVzZXJ2ZWQ1MgAAA3V3OApyZXNlcnZlZDUzAAADdXc4CnJlc2VydmVkNTQAAAN1dzgKcmVzZXJ2ZWQ1NQAAA3V3OApyZXNlcnZlZDU2AAADdXc4CnJlc2VydmVkNTcAAAN1dzgKcmVzZXJ2ZWQ1OAAAA3V3OApyZXNlcnZlZDU5AAADdXc4CnJlc2VydmVkNjAAAAN1dzgKcmVzZXJ2ZWQ2MQAAA3V3OApyZXNlcnZlZDYyAAADdXc4CnJlc2VydmVkNjMAAANlbnYGbWVtb3J5AgAEAwIBAwcHAQN0aWMAQAoEAQIACw%3D%3D"))).arrayBuffer();if(0!=Z[0]){new Uint8Array(y).set(Z),new Uint8Array(y).set(new Uint8Array(i),X.byteLength);let A=X.byteLength+i.byteLength,e=d.exports.load_uw8(0,X.byteLength,X.byteLength,A);X=new ArrayBuffer(e-A),new Uint8Array(X).set(new Uint8Array(y).slice(A,e))}let F={env:{memory:new WebAssembly.Memory({initial:4,maximum:4})},math:{},uw8:{}};for(let A of["acos","asin","atan","atan2","cos","exp","log","sin","tan","pow"])F.math[A]=Math[A];for(let A=9;A<64;++A)F.uw8["reserved"+A]=()=>{};let m=new WebAssembly.Instance(await WebAssembly.compile(X),F),B=f.data,V=Date.now(),o=!0;n=()=>o=!1,function A(){if(o)try{m.exports.tic(Date.now()-V);let e=new Uint8Array(F.env.memory.buffer.slice(120,82040));for(let A=0;A<81920;++A)B[4*A]=e[A],B[4*A+1]=e[A],B[4*A+2]=e[A],B[4*A+3]=255;c.putImageData(f,0,0),l.imageSmoothingEnabled=!1,l.drawImage(t,0,0,640,512),window.requestAnimationFrame(A)}catch(A){e(g,A.toString())}}()}catch(A){e(g,A.toString())}}async function g(A){X(await(await fetch(A)).arrayBuffer())}function Z(){let A=window.location.hash.slice(1);A.length>0?g("data:;base64,"+A):X(new ArrayBuffer(0))}window.onhashchange=Z,Z(),document.getElementById("cartButton").onclick=()=>{let A=document.createElement("input");A.type="file",A.accept=".wasm,.uw8,application/wasm",A.onchange=()=>{A.files.length>0&&g(URL.createObjectURL(A.files[0]))},A.click()};</script></html>