Preparing web server for update to v1.15.4
This commit is contained in:
parent
0f06c3f039
commit
1d9a5ee0df
39 changed files with 7519 additions and 1387 deletions
167
versions/c1pjs/1.15.4/c1p-dbg.js
Normal file
167
versions/c1pjs/1.15.4/c1p-dbg.js
Normal file
|
|
@ -0,0 +1,167 @@
|
|||
(function(){var f;function aa(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function h(a){return aa(a,2)}function p(a){return aa(a,4)}function ba(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));return b}var ca={"&":"&","<":"<",">":">",'"':""","'":"'"};function da(a){return a.replace(/[&<>"']/g,function(a){return ca[a]})}function r(){return Date.now()||+new Date}
|
||||
function s(a,b,c,d,e){b=!!b;var g=0,k=null,n=ba(a),m=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(m.onreadystatechange=function(){4===m.readyState&&(m.onreadystatechange=void 0,k=m.responseText,200!=m.status&&(g=m.status||-1),d&&e&&e.call(d,n,k,g,void 0))});if(c){var l="",q;for(q in c)c.hasOwnProperty(q)&&(l&&(l+="&"),l+=q+"="+encodeURIComponent(c[q]));l=l.replace(/%20/g,"+");m.open("POST",a,b);m.setRequestHeader("Content-type","application/x-www-form-urlencoded");
|
||||
m.send(l)}else m.open("GET",a,b),m.send();a=[];b||(k=m.responseText,200!=m.status&&(g=m.status||-1),d&&e&&e.call(d,n,k,g,void 0),a=[g,k]);return a}function u(a){window?window.alert(a):console.log(a)}function v(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function ea(a,b,c){function d(){a-=1;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function fa(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,g=!1;a.onmousedown=function(){g||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);g=!0}}var w={init:[],show:[],exit:[]},ga=!0;function ha(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function x(a){w.init.push(a)}
|
||||
function y(a){if(ga)for(var b=0;b<a.length;b++)a[b]()}ha("onload",function(){y(w.init)});ha("onpageshow",function(){y(w.show)});ha(v("Opera")||v("iOS")?"onunload":"onbeforeunload",function(){y(w.exit)});
|
||||
function z(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Dd=this.id.substr(0,b),this.Cd=this.id.substr(b+1)):this.Cd=this.id;this[a]=c;this.tc=null;this.ib=this.Ra=this.rc=this.Sb=!1;this.q={};this.l=null;ia(this);A[A.length]=this}var ja=void 0;if(window){ja||(ja=window.location.search.substr(1));for(var ka,la=/\+/g,ma=/([^&=]+)=?([^&]*)/g;ka=ma.exec(ja);)ka[1].replace(la," "),ka[2].replace(la," ")}
|
||||
function na(){var a=z.prototype;function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}function B(a){a.prototype=na()}var A=[];function oa(){}function pa(a,b){b||u(a)}function C(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<A.length;c++)if(A[c].id===a)return A[c]}return null}
|
||||
function D(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("({"+a+"})")}catch(c){u(c.message+" ("+a+")")}return b}
|
||||
function E(a,b){var c,d;d=F(b.parentNode,"c1pjs-control");for(c=0;c<d.length;c++){var e,g;g=d[c].childNodes;for(e=0;e<g.length;e++){var k=g[e];if(k.nodeType===window.document.ELEMENT_NODE){var n=k.getAttribute("class");if(n){var m,l;l=n.split(" ");for(m=0;m<l.length;m++)switch(n=l[m],n){case "c1pjs-input":case "c1pjs-output":(l=D(k))&&l.binding&&a.H(n,l.type,l.binding,k),l=[]}}}}}}
|
||||
function F(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||
z.prototype={toString:function(){return this.name?this.name:this.id||this.type},H:function(a,b,c,d){switch(c){case "clear":return this.q[c]||(this.q[c]=d,d.onclick=function(a){return function(){a.q.print&&(a.q.print.value="")}}(this)),!0;case "print":return this.q[c]||(this.q[c]=d,d.value="",oa=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(d),pa=function(a,b,c){oa(a,"notice",
|
||||
c)}),!0}return!1},log:function(){},status:function(a){G(this,this.Cd+": "+a)},O:function(a){!this.ib&&(this.Sb=!1!==a)&&(this.name&&this.log("ready"),a=this.tc,this.tc=null,a&&a())}};function H(a,b){if(a.rc)return a.Ra&&(a.Ra=!1),a.rc=!1;if(a.ib)return G(a,a.toString()+" error"),!1;a.Ra=b;return a.Ra}function I(a,b){a.Ra&&(b?a.rc=!0:void 0===b&&G(a,a.toString()+" busy"));return a.Ra}function J(a,b){b&&(a.Sb?b():a.tc=b);return a.Sb}function K(a,b){a.ib=!0;pa("Fatal error: "+b,void 0,a.id)}
|
||||
function G(a,b){oa(b,void 0,a.id)}function ia(a){var b=1;a.Dd&&(a=a.Dd.match(/\d+/),null!==a&&(b=parseInt(a[0],10)));return b}window&&!window.document.ELEMENT_NODE&&(window.document.ELEMENT_NODE=1);function qa(a){z.call(this,"C1PPanel",a);this.B=!1}B(qa);qa.prototype.H=function(a,b,c,d){return this.M&&this.M.H(a,b,c,d)||this.k&&this.k.H(a,b,c,d)||this.F&&this.F.H(a,b,c,d)||this.l&&this.l.H(a,b,c,d)?!0:z.prototype.H.call(this,a,b,c,d)};
|
||||
qa.prototype.aa=function(a,b){a&&!this.B&&(this.B=!0,this.M=b,this.k=L(b,"cpu"),this.F=L(b,"keyboard"),this.l=L(b,"debugger"),ra())};function ra(){for(var a=!1,b=F(window.document,"c1pjs","panel"),c=0;c<b.length;c++){var d=b[c],e=D(d),g=C(e.id);g||(a=!0,g=new qa(e));E(g,d);a&&g.O()}}x(ra);
|
||||
function sa(a){z.call(this,"C1PCPU",a);ta(this);this.fa=this.B=!1;this.zd=a.autoStart;this.Gb=0;this.nd=1;this.La=2;this.speed=this.Gb;this.ob=1E6;this.zc=this.Bc=30;this.yc=5;this.Nf=1;this.lb=8;this.td=["Slow","Fast","Max"];this.Af=["("+this.Nf+"Mhz)","(up to "+this.lb+"Mhz)","(unlimited)"];this.Ba=[];this.ra=[];this.lc=65536;this.mc=0;this.Kb=65536;this.Lb=0;this.ne=128;this.oe=64;this.je=16;this.le=8;this.me=4;this.pe=2;this.ke=1;this.wf=65532;this.Fb=32;this.ec=2;this.tf=0;this.md=1;this.s=[this.Ag,
|
||||
this.Uh,this.Li,this.i,this.i,this.Wh,this.qg,this.i,this.Zh,this.Th,this.pg,this.i,this.i,this.Qh,this.ng,this.i,this.zg,this.Vh,this.i,this.i,this.i,this.Xh,this.rg,this.i,this.Dg,this.Sh,this.i,this.i,this.i,this.Rh,this.og,this.i,this.rh,this.jg,this.i,this.i,this.wg,this.lg,this.ei,this.i,this.ai,this.ig,this.di,this.i,this.vg,this.fg,this.bi,this.i,this.xg,this.kg,this.i,this.i,this.i,this.mg,this.fi,this.i,this.vi,this.hg,this.i,this.i,this.i,this.gg,this.ci,this.i,this.li,this.fh,this.i,this.i,
|
||||
this.i,this.hh,this.Nh,this.i,this.Yh,this.eh,this.Mh,this.i,this.qh,this.ah,this.Kh,this.i,this.Bg,this.gh,this.i,this.i,this.i,this.ih,this.Oh,this.i,this.Fg,this.dh,this.i,this.i,this.i,this.bh,this.Lh,this.i,this.mi,this.Sd,this.i,this.i,this.i,this.Ud,this.ji,this.i,this.$h,this.Rd,this.ii,this.i,this.ph,this.Od,this.gi,this.i,this.Cg,this.Td,this.i,this.i,this.i,this.Vd,this.ki,this.i,this.xi,this.Qd,this.i,this.i,this.i,this.Pd,this.hi,this.i,this.i,this.Bi,this.i,this.i,this.Ji,this.Di,this.Gi,
|
||||
this.i,this.$g,this.i,this.Pi,this.i,this.Ii,this.yi,this.Fi,this.i,this.sg,this.Ci,this.i,this.i,this.Ki,this.Ei,this.Hi,this.i,this.Ri,this.Ai,this.Qi,this.i,this.i,this.zi,this.i,this.i,this.Hh,this.wh,this.Ch,this.i,this.Ih,this.yh,this.Dh,this.i,this.Ni,this.vh,this.Mi,this.i,this.Fh,this.sh,this.Ah,this.i,this.tg,this.xh,this.i,this.i,this.Jh,this.zh,this.Eh,this.i,this.Gg,this.uh,this.Oi,this.i,this.Gh,this.th,this.Bh,this.i,this.Tg,this.Lg,this.i,this.i,this.Ug,this.Ng,this.Xg,this.i,this.oh,
|
||||
this.Kg,this.Zg,this.i,this.Sg,this.Hg,this.Vg,this.i,this.yg,this.Mg,this.i,this.i,this.i,this.Og,this.Yg,this.i,this.Eg,this.Jg,this.i,this.i,this.i,this.Ig,this.Wg,this.i,this.Qg,this.$d,this.i,this.i,this.Rg,this.be,this.lh,this.i,this.nh,this.Zd,this.Ph,this.i,this.Pg,this.Wd,this.jh,this.i,this.ug,this.ae,this.i,this.i,this.i,this.ce,this.mh,this.i,this.wi,this.Yd,this.i,this.i,this.i,this.Xd,this.kh,this.i];this.zf=[7,6,0,0,0,3,5,0,3,2,2,0,0,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,3,6,0,0,3,
|
||||
3,5,0,4,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,6,6,0,0,0,3,5,0,3,2,2,0,3,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,6,6,0,0,0,3,5,0,4,2,2,0,5,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,0,6,0,0,3,3,3,0,2,0,2,0,4,4,4,0,2,5,0,0,4,4,4,0,2,4,2,0,0,4,0,0,2,6,2,0,3,3,3,0,2,2,2,0,4,4,4,0,2,5,0,0,4,4,4,0,2,4,2,0,4,4,4,0,2,6,0,0,3,3,5,0,2,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,2,6,0,0,3,3,5,0,2,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0]}B(sa);f=sa.prototype;
|
||||
f.reset=function(a){this.fa&&this.S();ta(this);var b=this.wf;this.d=this.a[b]|this.a[b+1]<<8;this.ib=!1;this.l?this.l.reset():a&&(!0===this.zd||null===this.zd&&!this.l&&void 0===this.q.run)&&this.xa()};
|
||||
f.H=function(a,b,c,d){a=!1;switch(c){case "run":this.q[c]=d;d.onclick=function(a){return function(){a.fa?a.S():a.xa()}}(this);a=!0;break;case "A":case "X":case "Y":case "S":case "PC":case "C":case "Z":case "I":case "D":case "B":case "V":case "N":case "speed":this.q[c]=d;a=!0;break;case "setSpeed":this.q[c]=d,d.onclick=function(a){return function(){M(a,a.speed>=a.La?a.Gb:a.speed+1,!0)}}(this),a=!0}return a};
|
||||
f.U=function(a,b,c){this.a=a;this.Z=b;this.pc=c-b+1;this.Xa=this.Z+this.pc;this.Z?u("unsupported CPU address buffer offset ("+this.Z+")"):this.O()};f.aa=function(a,b){if(a&&!this.B){this.M=b;(this.l=L(b,"debugger"))&&this.l.Kf();var c=L(b,"video");c&&(this.qc=function(a){return function(){ua(a)}}(c),this.V=function(a){return function(){a.V()}}(c));this.B=!0;this.reset(!0);this.update()}};function va(a,b,c,d,e){0>wa(a.Ba,b,c,d,e)&&(a.lc>b&&(a.lc=b),a.mc<c&&(a.mc=c),a.Ba.push([b,c,d,e]))}
|
||||
function xa(a,b,c){for(var d=0;d<a.Ba.length;d++)b>=a.Ba[d][0]&&b<=a.Ba[d][1]&&a.Ba[d][3].call(a.Ba[d][2],b,c)}function N(a,b,c,d,e){0>wa(a.ra,b,c,d,e)&&(a.Kb>b&&(a.Kb=b),a.Lb<c&&(a.Lb=c),a.ra.push([b,c,d,e]))}function za(a,b,c){for(var d=0;d<a.ra.length;d++)b>=a.ra[d][0]&&b<=a.ra[d][1]&&a.ra[d][3].call(a.ra[d][2],b,c)}function wa(a,b,c,d,e){for(var g=0;g<a.length;g++)if(a[g][0]==b&&a[g][1]==c&&a[g][2]==d&&a[g][3]==e)return g;return-1}
|
||||
function M(a,b,c){void 0!==b&&(a.speed=b,a.q.setSpeed&&(a.q.setSpeed.innerHTML=a.td[2<=b?0:b+1]),G(a,"running at "+a.td[b].toLowerCase()+" speed "+a.Af[b]),c&&a.V());a.Wa=0;a.Ed=r();Aa(a)}f.qc=function(){};f.V=function(){};function O(a,b,c,d){void 0!==a.q[b]&&(void 0===d&&(d=1),c="0000"+c.toString(16),a.q[b].innerHTML=c.slice(c.length-d).toUpperCase())}
|
||||
function Ba(a){O(a,"A",a.e,2);O(a,"X",a.m,2);O(a,"Y",a.o,2);var b=Ca(a);O(a,"C",b&a.ke?1:0);O(a,"Z",b&a.pe?1:0);O(a,"I",b&a.me?1:0);O(a,"D",b&a.le?1:0);O(a,"B",b&a.je?1:0);O(a,"V",b&a.oe?1:0);O(a,"N",b&a.ne?1:0);O(a,"S",a.p,4);O(a,"PC",a.d,4);a.q.speed&&a.ta&&(a.q.speed.innerHTML=a.ta.toFixed(1)+"Mhz")}
|
||||
function Aa(a,b){var c=a.Bc;c<a.zc&&(c=a.zc);c<a.yc&&(c=a.yc);var d=1;b&&a.speed>a.Gb&&a.ta&&(d=a.ta);d>a.lb&&a.speed<a.La&&(d=a.lb);a.Pf=Math.round(1E3/a.Bc);a.Vb=Math.floor(a.ob/c*d);a.uc=Math.floor(a.ob/a.Bc*d);a.Gd=Math.floor(a.ob/a.zc*d);a.Fd=Math.floor(a.ob/a.yc*d);b||(a.Ua=a.uc,a.nb=a.Gd,a.mb=a.Fd);a.xc=0}
|
||||
function Da(a){var b=r(),c=a.Pf;a.pb&&(c=Math.round(c*a.pb/a.uc));c-=b-a.Sf;if(b-=a.Ed)a.ta=Math.round(a.Wa/(100*b))/10,864E5<=b&&M(a);0>c?c=0:a.speed==a.nd?a.ta<=a.lb&&(c=0):a.speed==a.La&&(c=0);a.xc+=a.pb;return c}
|
||||
f.xa=function(){if(H(this,!0)){this.fa||(M(this),this.M&&this.M.start(),this.fa=!0,this.q.run&&(this.q.run.innerHTML="Halt"),this.V());this.xc>=this.ob&&Aa(this,!0);this.pb=0;this.Sf=r();try{do{this.step(this.Vb);var a=this.ua-this.D;this.Wa+=a;this.pb+=a;this.ua=this.D=0;this.nb-=this.Vb;0>=this.nb&&(this.nb+=this.Gd,this.qc());this.mb-=this.Vb;0>=this.mb&&(this.mb+=this.Fd,Ba(this));this.Ua-=this.Vb;if(0>=this.Ua){this.Ua+=this.uc;break}}while(this.fa)}catch(b){this.S();this.update();H(this,!1);
|
||||
K(this,b.message||b);return}setTimeout(function(a){return function(){a.xa()}}(this),Da(this))}else this.update(),this.M&&this.M.stop(this.Ed,this.Wa)};
|
||||
f.step=function(a){var b=!0;this.b=this.h=-1;var c;if(c=a)if(c=this.l)c=this.l,c=0<c.qa.length||0<c.Aa.length||0<c.Da.length;this.ua=this.D=a;do{a=this.a[this.d];var d;if(d=c){d=this.l;var e=a,g=!1;Ea(d,this.d,d.qa,"exec")?g=!0:(d.Oa++,d.ea[e][1]++,d.Ca[d.jb++]=d.k.d,d.jb>=d.Ca.length&&(d.jb=0));d=!!g}if(d){b=void 0;this.S();break}this.d++;this.s[a].call(this);if(0<=this.b){this.b>=this.lc&&this.b<=this.mc&&xa(this,this.b,this.d);if(d=c)d=this.l,e=!1,Ea(d,this.b,d.Aa,"read")&&(e=!0),d=!!e;if(d){b=
|
||||
!1;this.S();break}this.b=-1}else if(0<=this.h){this.h>=this.Kb&&this.h<=this.Lb&&za(this,this.h,this.d);if(d=c){d=this.l;var e=this.h,g=this.a[this.h],k=!1;(g&255)!=g&&(G(d,"invalid value at "+p(e)+": "+g),k=!0);Ea(d,e,d.Da,"write")&&(k=!0);d=!!k}if(d){b=!1;this.S();break}this.h=-1}this.D-=this.zf[a]}while(0<this.D);return b};function Fa(a){a.Ua=0;a.ua-=a.D;a.D=0}f.S=function(){I(this,!0);this.ua-=this.D;this.D=0;this.fa&&(this.fa=!1,this.q.run&&(this.q.run.innerHTML="Run"))};
|
||||
f.update=function(){this.qc();Ba(this)};function Ga(a){return a.fa?a.Wa+a.ua-a.D:0}f.G=function(a){return this.a[a]};f.N=function(a,b){this.a[a]=b};function Ca(a){var b=a.c&256?1:0,b=b|(a.g&255?0:2),b=b|((a.t&255^a.u^a.t>>1)&128?64:0),b=b|(a.f&128?128:0);return a.v&60|b}
|
||||
function Ha(a){a.v|=8;a.s[97]=a.bg;a.s[101]=a.dg;a.s[105]=a.ag;a.s[109]=a.Yf;a.s[113]=a.cg;a.s[117]=a.eg;a.s[121]=a.$f;a.s[125]=a.Zf;a.s[225]=a.ri;a.s[229]=a.ti;a.s[233]=a.qi;a.s[237]=a.ni;a.s[241]=a.si;a.s[245]=a.ui;a.s[249]=a.pi;a.s[253]=a.oi}function Ia(a){a.v&=-9;a.s[97]=a.Sd;a.s[101]=a.Ud;a.s[105]=a.Rd;a.s[109]=a.Od;a.s[113]=a.Td;a.s[117]=a.Vd;a.s[121]=a.Qd;a.s[125]=a.Pd;a.s[225]=a.$d;a.s[229]=a.be;a.s[233]=a.Zd;a.s[237]=a.Wd;a.s[241]=a.ae;a.s[245]=a.ce;a.s[249]=a.Yd;a.s[253]=a.Xd}
|
||||
function P(a,b,c){var d=a.c&256?1:0,e=(b&15)+(c&15)+d;10<=e&&(e=e+6&15|16);e+=(b&240)+(c&240);a.u=b^c;a.t=e;a.f=e&255;160<=e&&(e+=96);512<=e&&(e-=256);a.c=e;a.g=b+c+d&255;a.D--;return e&255}function Q(a,b,c){var d=a.c&256?0:1,e=(b&15)-(c&15)-d;0>e&&(e=(e-6&15)-16);e+=(b&240)-(c&240);0>e&&(e-=96);a.f=a.g=(a.c=b-c-d)&255;a.u=b^c;a.t=a.c;a.c^=256;a.D--;return e&255}function ta(a){a.e=0;a.m=0;a.o=0;a.p=256;a.v=0;a.f=0;a.g=0;a.u=0;a.t=0;a.c=0;a.d=0;a.b=-1;a.h=-1;a.ta=0;a.Wa=a.ua=a.D=0}
|
||||
f.Ag=function(){this.d++;this.a[this.p--]=this.d>>8;this.p|=256;this.a[this.p--]=this.d&255;this.p|=256;this.v|=16;this.v=Ca(this);this.a[this.p--]=this.v;this.p|=256;this.v&=239;this.b=65534;this.d=this.a[this.b]|this.a[this.b+1]<<8};f.Uh=function(){this.b=this.a[this.d++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e|=this.a[this.b]};f.Wh=function(){this.b=this.a[this.d++];this.f=this.g=this.e|=this.a[this.b]};
|
||||
f.qg=function(){this.h=this.a[this.d++];this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};f.Zh=function(){this.v=Ca(this);this.a[this.p--]=this.v;this.p|=256};f.Th=function(){this.b=this.d++;this.f=this.g=this.e|=this.a[this.b]};f.pg=function(){this.c=this.e<<1;this.f=this.g=this.e=this.c&255};f.Qh=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e|=this.a[this.b]};
|
||||
f.ng=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};f.zg=function(){this.d+=(this.f&128?0:(this.D--,this.a[this.d]<<24>>24))+1};f.Vh=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.f=this.g=this.e|=this.a[this.b]};f.Xh=function(){this.b=this.a[this.d++]+this.m&255;this.f=this.g=this.e|=this.a[this.b]};
|
||||
f.rg=function(){this.h=this.a[this.d++]+this.m&255;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};f.Dg=function(){this.c=0};f.Sh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.o;this.f=this.g=this.e|=this.a[this.b]};f.Rh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.e|=this.a[this.b]};f.og=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};
|
||||
f.rh=function(){this.b=this.d++;this.a[this.p--]=this.d>>8;this.p|=256;this.a[this.p--]=this.d&255;this.p|=256;this.d=this.a[this.b]|this.a[this.b+1]<<8};f.jg=function(){this.b=this.a[this.d++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e&=this.a[this.b]};f.wg=function(){this.b=this.a[this.d++];this.g=this.e&this.a[this.b];this.f=this.f&127|this.a[this.b]&128;this.t=0;this.u=this.a[this.b]&64?128:0};f.lg=function(){this.b=this.a[this.d++];this.f=this.g=this.e&=this.a[this.b]};
|
||||
f.ei=function(){this.h=this.a[this.d++];this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};f.ai=function(){this.p=this.p+1&255|256;this.v=this.a[this.p];this.c=this.v&1?256:0;this.g=this.v&2?0:1;this.f=this.v&128;this.t=0;this.u=this.v&64?128:0};f.ig=function(){this.b=this.d++;this.f=this.g=this.e&=this.a[this.b]};
|
||||
f.di=function(){this.c=this.c&65280|this.e;this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.e=this.c&255};f.vg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.g=this.e&this.a[this.b];this.f=this.f&127|this.a[this.b]&128;this.t=0;this.u=this.a[this.b]&64?128:0};f.fg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e&=this.a[this.b]};
|
||||
f.bi=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};f.xg=function(){this.d+=(this.f&128?(this.D--,this.a[this.d]<<24>>24):0)+1};f.kg=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.f=this.g=this.e&=this.a[this.b]};f.mg=function(){this.b=this.a[this.d++]+this.m&255;this.f=this.g=this.e&=this.a[this.b]};
|
||||
f.fi=function(){this.h=this.a[this.d++]+this.m&255;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};f.vi=function(){this.c=256};f.hg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.o;this.f=this.g=this.e&=this.a[this.b]};f.gg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.e&=this.a[this.b]};
|
||||
f.ci=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};f.li=function(){this.p=this.p+1&255|256;this.v=this.a[this.p];this.c=this.v&1?256:0;this.g=this.v&2?0:1;this.f=this.v&128;this.t=0;this.u=this.v&64?128:0;this.p=this.p+2&255|256;this.d=this.a[this.p-1|256]|this.a[this.p]<<8};
|
||||
f.fh=function(){this.b=this.a[this.d++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e^=this.a[this.b]};f.hh=function(){this.b=this.a[this.d++];this.f=this.g=this.e^=this.a[this.b]};f.Nh=function(){this.h=this.a[this.d++];this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255};f.Yh=function(){this.a[this.p--]=this.e;this.p|=256};f.eh=function(){this.b=this.d++;this.f=this.g=this.e^=this.a[this.b]};
|
||||
f.Mh=function(){this.c=this.c&65279|(this.e&1?256:0);this.e=(this.c=this.c&65280|this.e>>1)&255;this.f=this.g=this.c&255};f.qh=function(){this.b=this.d;this.d=this.a[this.b]|this.a[this.b+1]<<8};f.ah=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e^=this.a[this.b]};f.Kh=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255};
|
||||
f.Bg=function(){this.d+=((this.t&255^this.u^this.t>>1)&128?0:(this.D--,this.a[this.d]<<24>>24))+1};f.gh=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.f=this.g=this.e^=this.a[this.b]};f.ih=function(){this.b=this.a[this.d++]+this.m&255;this.f=this.g=this.e^=this.a[this.b]};f.Oh=function(){this.h=this.a[this.d++]+this.m&255;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255};
|
||||
f.Fg=function(){this.v&=251};f.dh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.o;this.f=this.g=this.e^=this.a[this.b]};f.bh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.e^=this.a[this.b]};f.Lh=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255};
|
||||
f.mi=function(){this.p=this.p+2&255|256;this.d=(this.a[this.p-1|256]|this.a[this.p]<<8)+1};f.Sd=function(){this.b=this.a[this.d++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.u=this.e^this.a[this.b];this.t=this.c;this.f=this.g=this.e=this.c&255};f.bg=function(){this.b=this.a[this.d++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.e=P(this,this.e,this.a[this.b])};
|
||||
f.Ud=function(){this.b=this.a[this.d++];this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.u=this.e^this.a[this.b];this.t=this.c;this.f=this.g=this.e=this.c&255};f.dg=function(){this.b=this.a[this.d++];this.e=P(this,this.e,this.a[this.b])};f.ji=function(){this.h=this.a[this.d++];this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};f.$h=function(){this.p=this.p+1&255|256;this.f=this.g=this.e=this.a[this.p]};
|
||||
f.Rd=function(){this.b=this.d++;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.u=this.e^this.a[this.b];this.t=this.c;this.f=this.g=this.e=this.c&255};f.ag=function(){this.b=this.d++;this.e=P(this,this.e,this.a[this.b])};f.ii=function(){this.c=this.c&65280|this.e;this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.e=this.c&255};f.ph=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.d=this.a[this.b]|this.a[this.b+1]<<8};
|
||||
f.Od=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.u=this.e^this.a[this.b];this.t=this.c;this.f=this.g=this.e=this.c&255};f.Yf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=P(this,this.e,this.a[this.b])};f.gi=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};
|
||||
f.Cg=function(){this.d+=((this.t&255^this.u^this.t>>1)&128?(this.D--,this.a[this.d]<<24>>24):0)+1};f.Td=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.u=this.e^this.a[this.b];this.t=this.c;this.f=this.g=this.e=this.c&255};f.cg=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.e=P(this,this.e,this.a[this.b])};
|
||||
f.Vd=function(){this.b=this.a[this.d++]+this.m&255;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.u=this.e^this.a[this.b];this.t=this.c;this.f=this.g=this.e=this.c&255};f.eg=function(){this.b=this.a[this.d++]+this.m&255;this.e=P(this,this.e,this.a[this.b])};f.ki=function(){this.h=this.a[this.d++]+this.m&255;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};f.xi=function(){this.v|=4};
|
||||
f.Qd=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.o;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.u=this.e^this.a[this.b];this.t=this.c;this.f=this.g=this.e=this.c&255};f.$f=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.o;this.e=P(this,this.e,this.a[this.b])};f.Pd=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.u=this.e^this.a[this.b];this.t=this.c;this.f=this.g=this.e=this.c&255};
|
||||
f.Zf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.e=P(this,this.e,this.a[this.b])};f.hi=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};f.Bi=function(){this.h=this.a[this.d++]+this.m&255;this.h=this.a[this.h]|this.a[this.h+1]<<8;this.a[this.h]=this.e};f.Ji=function(){this.h=this.a[this.d++];this.a[this.h]=this.o};
|
||||
f.Di=function(){this.h=this.a[this.d++];this.a[this.h]=this.e};f.Gi=function(){this.h=this.a[this.d++];this.a[this.h]=this.m};f.$g=function(){this.f=this.g=this.o=this.o-1&255};f.Pi=function(){this.f=this.g=this.e=this.m};f.Ii=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.o};f.yi=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.e};f.Fi=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.m};
|
||||
f.sg=function(){this.d+=(this.c&256?0:(this.D--,this.a[this.d]<<24>>24))+1};f.Ci=function(){this.h=this.a[this.d++];this.h=(this.a[this.h]|this.a[this.h+1]<<8)+this.o;this.a[this.h]=this.e};f.Ki=function(){this.h=this.a[this.d++]+this.m&255;this.a[this.h]=this.o};f.Ei=function(){this.h=this.a[this.d++]+this.m&255;this.a[this.h]=this.e};f.Hi=function(){this.h=this.a[this.d++]+this.o&255;this.a[this.h]=this.m};f.Ri=function(){this.f=this.g=this.e=this.o};
|
||||
f.Ai=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.o;this.a[this.h]=this.e};f.Qi=function(){this.p=this.m|256};f.zi=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.a[this.h]=this.e};f.Hh=function(){this.b=this.d++;this.f=this.g=this.o=this.a[this.b]};f.wh=function(){this.b=this.a[this.d++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e=this.a[this.b]};f.Ch=function(){this.b=this.d++;this.f=this.g=this.m=this.a[this.b]};
|
||||
f.Ih=function(){this.b=this.a[this.d++];this.f=this.g=this.o=this.a[this.b]};f.yh=function(){this.b=this.a[this.d++];this.f=this.g=this.e=this.a[this.b]};f.Dh=function(){this.b=this.a[this.d++];this.f=this.g=this.m=this.a[this.b]};f.Ni=function(){this.f=this.g=this.o=this.e};f.vh=function(){this.b=this.d++;this.f=this.g=this.e=this.a[this.b]};f.Mi=function(){this.f=this.g=this.m=this.e};f.Fh=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.o=this.a[this.b]};
|
||||
f.sh=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e=this.a[this.b]};f.Ah=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.m=this.a[this.b]};f.tg=function(){this.d+=(this.c&256?(this.D--,this.a[this.d]<<24>>24):0)+1};f.xh=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.f=this.g=this.e=this.a[this.b]};f.Jh=function(){this.b=this.a[this.d++]+this.m&255;this.f=this.g=this.o=this.a[this.b]};
|
||||
f.zh=function(){this.b=this.a[this.d++]+this.m&255;this.f=this.g=this.e=this.a[this.b]};f.Eh=function(){this.b=this.a[this.d++]+this.o&255;this.f=this.g=this.m=this.a[this.b]};f.Gg=function(){this.u=this.t=0};f.uh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.o;this.f=this.g=this.e=this.a[this.b]};f.Oi=function(){this.f=this.g=this.m=this.p&255};f.Gh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.o=this.a[this.b]};
|
||||
f.th=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.e=this.a[this.b]};f.Bh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.o;this.f=this.g=this.m=this.a[this.b]};f.Tg=function(){this.b=this.d++;this.f=this.g=this.c=this.o-this.a[this.b];this.c^=256};f.Lg=function(){this.b=this.a[this.d++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};
|
||||
f.Ug=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.o-this.a[this.b];this.c^=256};f.Ng=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Xg=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};f.oh=function(){this.f=this.g=this.o=this.o+1&255};f.Kg=function(){this.b=this.d++;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Zg=function(){this.f=this.g=this.m=this.m-1&255};
|
||||
f.Sg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.o-this.a[this.b];this.c^=256};f.Hg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Vg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};f.yg=function(){this.d+=(this.g&255?(this.D--,this.a[this.d]<<24>>24):0)+1};
|
||||
f.Mg=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Og=function(){this.b=this.a[this.d++]+this.m&255;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Yg=function(){this.h=this.a[this.d++]+this.m&255;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};f.Eg=function(){Ia(this)};
|
||||
f.Jg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.o;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Ig=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Wg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};f.Qg=function(){this.b=this.d++;this.f=this.g=this.c=this.m-this.a[this.b];this.c^=256};
|
||||
f.$d=function(){this.b=this.a[this.d++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.u=this.e^this.a[this.b];this.t=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.ri=function(){this.b=this.a[this.d++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.e=Q(this,this.e,this.a[this.b])};f.Rg=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.m-this.a[this.b];this.c^=256};
|
||||
f.be=function(){this.b=this.a[this.d++];this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.u=this.e^this.a[this.b];this.t=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.ti=function(){this.b=this.a[this.d++];this.e=Q(this,this.e,this.a[this.b])};f.lh=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};f.nh=function(){this.f=this.g=this.m=this.m+1&255};
|
||||
f.Zd=function(){this.b=this.d++;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.u=this.e^this.a[this.b];this.t=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.qi=function(){this.b=this.d++;this.e=Q(this,this.e,this.a[this.b])};f.Ph=function(){};f.Pg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.m-this.a[this.b];this.c^=256};
|
||||
f.Wd=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.u=this.e^this.a[this.b];this.t=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.ni=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=Q(this,this.e,this.a[this.b])};f.jh=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};f.ug=function(){this.d+=(this.g&255?0:(this.D--,this.a[this.d]<<24>>24))+1};
|
||||
f.ae=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.u=this.e^this.a[this.b];this.t=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.si=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.e=Q(this,this.e,this.a[this.b])};
|
||||
f.ce=function(){this.b=this.a[this.d++]+this.m&255;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.u=this.e^this.a[this.b];this.t=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.ui=function(){this.b=this.a[this.d++]+this.m&255;this.e=Q(this,this.e,this.a[this.b])};f.mh=function(){this.h=this.a[this.d++]+this.m&255;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};f.wi=function(){Ha(this)};
|
||||
f.Yd=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.o;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.u=this.e^this.a[this.b];this.t=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.pi=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.o;this.e=Q(this,this.e,this.a[this.b])};
|
||||
f.Xd=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.u=this.e^this.a[this.b];this.t=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.oi=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.e=Q(this,this.e,this.a[this.b])};f.kh=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};
|
||||
f.Li=function(){var a;a=this.a[this.d++];switch(a){case this.tf:G(this,"HALT");this.S();break;case this.md:a=this.d;for(var b="";a<this.a.length;){var c=this.a[a++];if(!c)break;b+=String.fromCharCode(c)}this.d=a;b=b.replace(/%A/g,h(this.e)).replace(/%X/g,h(this.m)).replace(/%Y/g,h(this.o));G(this,b);Fa(this);break;default:this.d-=2,G(this,"undefined opSim: "+h(a)+" at "+p(this.d)),this.S()}};f.i=function(){var a=this.a[--this.d];G(this,"undefined opcode: "+h(a)+" at "+p(this.d));this.S()};
|
||||
x(function(){for(var a=F(window.document,"c1pjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new sa(d);E(d,c)}});function R(a){z.call(this,"C1PROM",a);this.sa=this.a=null;this.Pa=a.size;if(this.sb=a.image){a=this.sb;var b;b=this.sb;var c="",d=b.lastIndexOf(".");0<=d&&(c=b.substr(d+1).toLowerCase());b=c;"json"!=b&&"hex"!=b&&(a="http://"+window.location.host+"/api/v1/dump?file="+this.sb);s(a,!0,null,this,this.Ff)}}B(R);
|
||||
R.prototype.U=function(a,b,c,d){this.a=a;this.Dc=b;a=c-b+1;this.Pa||(this.Pa=a);a!=this.Pa?K(this,"computer-specified ROM size ("+p(a)+") does not match component-specified size ("+p(this.Pa)+")"):(d&&(this.k=d,N(d,b,c,this,this.N)),Ja(this))};R.prototype.aa=function(a,b){a&&!this.B&&(this.B=!0,this.l=L(b,"debugger"))};R.prototype.N=function(a,b){if(void 0!==b){this.l&&S(this.l,this,a,b,this.l.bc,!0);var c=a-this.Dc;this.a[this.Dc+c]=this.sa?this.sa[c]:0}};
|
||||
R.prototype.Ff=function(a,b,c){if(c)G(this,"ROM load error ("+c+")");else{if("["==b[0])try{this.sa=eval("("+b+")")}catch(d){G(this,"ROM data error: "+(d.message||d));return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.sa=Array(a.length),b=0;b<a.length;b++)this.sa[b]=parseInt(a[b],16);Ja(this)}};
|
||||
function Ja(a){if(!J(a))if(!a.sb)a.O();else if(a.sa&&a.a){var b=a.sa.length;if(b!=a.Pa)K(a,"ROM image size ("+p(b)+") does not match component-specified size ("+p(a.Pa)+")");else{for(var c=0;c<b;c++)a.a[a.Dc+c]=a.sa[c];a.O()}}}x(function(){for(var a=F(window.document,"c1pjs","rom"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new R(d);E(d,c)}});function Ka(a){z.call(this,"C1PRAM",a)}B(Ka);Ka.prototype.U=function(a){this.a=a;this.O()};
|
||||
x(function(){for(var a=F(window.document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ka(d);E(d,c)}});
|
||||
function La(a){z.call(this,"C1PKeyboard",a);this.B=!1;this.vc=a.model;this.Nc=8;this.De=9;this.Be=10;this.Ae=13;this.Ce=16;this.ze=17;this.we=18;this.xe=20;this.Oc=27;this.ye=91;this.te=this.Nc;this.ue=this.Be;this.qe=this.Ae;this.Ic=this.Oc;this.R=224;this.n=this.Ce+this.R;this.yb=this.ze+this.R;this.ac=this.we+this.R;this.Jc=this.xe+this.R;this.Hc=0+this.R;this.re=3;this.se=15;this.xb=1;this.wb=2;this.vb=4;this.Za=8;this.ub=64;this.$b=this.wb|this.vb|this.ub;this.ld=0;this.rf=1;this.qf=2;this.sf=
|
||||
3;this.pf=4;this.Tf=8192;this.Qf=250;this.Rf=100;this.Of=300;this.Ma=[];this.Ma["break"]=this.Hc;this.Ma.esc=this.Ic;this.Ma["ctrl-c"]=this.re;this.Ma["ctrl-o"]=this.se;this.j=[];this.j[49]=30464;this.j[33]=30464+this.n;this.j[50]=30208;this.j[34]=30208+this.n;this.j[51]=29952;this.j[35]=29952+this.n;this.j[52]=29696;this.j[36]=29696+this.n;this.j[53]=29440;this.j[37]=29440+this.n;this.j[54]=29184;this.j[38]=29184+this.n;this.j[55]=28928;this.j[39]=28928+this.n;this.j[56]=26368;this.j[40]=26368+this.n;
|
||||
this.j[57]=26112;this.j[41]=26112+this.n;this.j[48]=25856;this.j[58]=25600;this.j[42]=25600+this.n;this.j[45]=25344;this.j[61]=25344+this.n;this.j[46]=22272;this.j[62]=22272+this.n;this.j[108]=22016;this.j[76]=22016+this.n;this.j[92]=22016+this.n;this.j[111]=21760;this.j[79]=21760+this.n;this.j[this.te]=21760+this.n;this.j[this.ue]=21504;this.j[this.qe]=21248;this.j[119]=18176;this.j[87]=18176+this.n;this.j[101]=17920;this.j[69]=17920+this.n;this.j[114]=17664;this.j[82]=17664+this.n;this.j[116]=17408;
|
||||
this.j[84]=17408+this.n;this.j[121]=17152;this.j[89]=17152+this.n;this.j[117]=16896;this.j[85]=16896+this.n;this.j[105]=16640;this.j[73]=16640+this.n;this.j[115]=14080;this.j[83]=14080+this.n;this.j[100]=13824;this.j[68]=13824+this.n;this.j[102]=13568;this.j[70]=13568+this.n;this.j[103]=13312;this.j[71]=13312+this.n;this.j[104]=13056;this.j[72]=13056+this.n;this.j[106]=12800;this.j[74]=12800+this.n;this.j[107]=12544;this.j[75]=12544+this.n;this.j[91]=12544+this.n;this.j[120]=9984;this.j[88]=9984+
|
||||
this.n;this.j[99]=9728;this.j[67]=9728+this.n;this.j[118]=9472;this.j[86]=9472+this.n;this.j[98]=9216;this.j[66]=9216+this.n;this.j[110]=8960;this.j[78]=8960+this.n;this.j[94]=8960+this.n;this.j[109]=8704;this.j[77]=8704+this.n;this.j[93]=8704+this.n;this.j[44]=8448;this.j[60]=8448+this.n;this.j[113]=5888;this.j[81]=5888+this.n;this.j[97]=5632;this.j[65]=5632+this.n;this.j[122]=5376;this.j[90]=5376+this.n;this.j[32]=5120;this.j[47]=4864;this.j[63]=4864+this.n;this.j[59]=4608;this.j[43]=4608+this.n;
|
||||
this.j[112]=4352;this.j[80]=4352+this.n;this.j[64]=4352+this.n;this.j[this.yb]=1536;this.j[this.Ic]=1280;this.j[this.n]=512;this.j[this.ac]=256;this.j[this.Jc]=0;this.reset()}B(La);f=La.prototype;f.reset=function(){this.tb(this.vc);this.w=this.xb;this.vd=0;this.L=[this.xb,0,0,0,0,0,0,0];this.ic=[];if(this.ca)for(var a in this.ca)isNaN(a)||this.ca[a]&&clearTimeout(this.ca[a]);this.ca=[];this.de=this.wa=0;this.wd=-1;this.ud=this.L;this.Hd=this.Ac=0;this.Ia=""};
|
||||
f.H=function(a,b,c,d){if(void 0===this.q[c])switch(c){case "keyDown":return this.q[c]=d,d.onkeydown=function(a){return function(b){return Ma(a,b,!0)}}(this),!0;case "keyPress":return this.q[c]=d,d.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.Ia="";a.w&a.Za?a.w&=~a.Za:c=!Na(a,b);a.l&&T(a.l,a.l.ya)&&a.l.message("keyPress("+h(b)+"): "+(c?"pass":"consume"));return c}}(this),!0;case "keyUp":return this.q[c]=d,d.onkeyup=function(a){return function(b){return Ma(a,
|
||||
b,!1)}}(this),!0;case "break":return this.q[c]=d,d.onclick=function(a){return function(){a.M&&a.M.reset(!0)}}(this),!0;default:if(void 0!==this.Ma[c])return this.q[c]=d,d.onclick=function(a,b,c){return function(){a.k&&a.k.V();return!Na(a,c)}}(this,c,this.Ma[c]),!0}return!1};f.U=function(a,b,c,d){this.a=a;this.Md=b;this.Bf=c-b+1;this.Xf=this.Md+this.Bf;d&&(this.k=d,N(d,b,c,this,this.N));this.O()};f.tb=function(a){this.qb=a;this.oc=255;600!=this.qb&&(this.oc=0,G(this,"updated keyboard model: "+this.qb))};
|
||||
f.aa=function(a,b){a&&!this.B&&(this.B=!0,this.M=b,this.l=L(b,"debugger"))};f.O=function(){this.sc=(this.Jf=v("iOS"))||v("Android");this.l&&T(this.l,this.l.ya)&&this.l.message("mobile keyboard support: "+(this.sc?"true":"false")+" ("+window.navigator.userAgent+")");z.prototype.O.call(this)};function Oa(a,b){var c=b?a.Rf:a.Qf;a.k&&a.k.ta&&(c/=a.k.ta);return c}
|
||||
function Pa(a,b){!a.wa||void 0!==b&&b==a.wa||(a.l&&T(a.l,a.l.ya)&&a.l.message("autoClear("+h(a.wa)+")"),clearTimeout(a.ca[a.wa]),U(a,a.wa,!1,a.pf))}function V(a,b,c){a.Ia=b;Qa(a,c||a.Of)}function Qa(a,b){if(0<a.Ia.length){var c=a.Ia.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.Ia=a.Ia.substr(1);Na(a,c)}0<a.Ia.length&&setTimeout(function(a){return function(){Qa(a,b)}}(a),b)}
|
||||
function Ma(a,b,c){var d,e=!c;b=b.keyCode;c&&(a.de=b);b==a.n-a.R?(a.w&=~a.vb,c&&(a.w|=a.vb),b+=a.R,e=!1):b==a.ac-a.R?(a.w&=~a.wb,c&&(a.w|=a.wb),b+=a.R,e=!1):b==a.yb-a.R?(a.w&=~a.ub,c&&(a.w|=a.ub),b+=a.R,e=!1):b==a.Jc-a.R?(c=!c,a.w&=~a.xb,c&&(a.w|=a.xb),b+=a.R,e=!1):b==a.ye?(a.w&=~a.Za,c&&(a.w|=a.Za),e=!1,d=!0):d=b==a.De?e=!1:b==a.Oc||b==a.Nc?c?!Na(a,b):!1:!0;e&&(a.w&=~a.Za,a.sc||b!=a.de||Pa(a));void 0===d&&(d=!U(a,b,c,a.qf));a.l&&T(a.l,a.l.ya)&&a.l.message("key"+(c?"Down":"Up")+"("+h(b)+"): "+(d?
|
||||
"pass":"consume"));return d}function Na(a,b){var c=!1;b==a.Hc?a.M&&(a.M.reset(!0),c=!0):(a.sc&&65<=b&&90>=b&&(b+=32),Pa(a,b),U(a,b,!0,a.ld)&&(a.k.speed==a.k.La?U(a,b,!1,a.rf):(c=!1,a.ca[b]&&(clearTimeout(a.ca[b]),c=!0),c=Oa(a,c),a.ca[a.wa=b]=setTimeout(function(a){return function(){U(a,b,!1,a.sf)}}(a),c),a.l&&T(a.l,a.l.ya)&&a.l.message("keyPressSimulate("+h(b)+"): setTimeout()")),c=!0));a.l&&T(a.l,a.l.ya)&&a.l.message("keyPressSimulate("+h(b)+"): "+(c?"true":"false"));return c}
|
||||
function U(a,b,c,d){var e=!1;c||(a.ca[b]=null,a.wa==b&&(a.wa=0));var g=0,k=a.j[b];void 0===k&&(1<=b&&26>=b&&(b+=64,g=a.yb),k=a.j[b]);void 0!==k&&(b=k>>12,e=k>>8&15,g||(g=k&255),c?(a.L[b]|=1<<e,a.L[0]=g==a.yb?a.L[0]|a.ub:g==a.n?a.L[0]|a.vb:g==a.ac?a.L[0]|a.wb:a.L[0]&~a.$b):(a.L[b]&=~(1<<e),a.L[0]&=~a.$b,a.L[0]|=a.w&a.$b),c=d==a.ld&&!a.ic.length,a.ic.push(a.L.slice()),a.Zb(c),e=!0);return e}f.G=function(){};f.N=function(a){var b=this.k.G(a);this.vd=b^this.oc;this.Ac++;this.Zb(!1,a,b)};
|
||||
f.Zb=function(a,b){var c=Ga(this.k);if(!a)if(this.k.speed==this.k.La)a=void 0!==b&&32<=this.Ac;else{var d=c-this.Hd;a=0>d||d>=this.Tf}a&&(d=this.ic.shift(),void 0!==d&&(this.ud=d),this.Ac=0,this.Hd=c);for(d=c=0;8>d;d++)this.vd&1<<d&&(c|=this.ud[d]);c^=this.oc;if(void 0!==b)this.a[b]=c;else if(b=this.Md,c!=this.wd)for(d=b;d<this.Xf;d++)this.a[d]=c;this.wd=c};x(function(){for(var a=F(window.document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new La(d);E(d,c)}});
|
||||
function Ra(a,b,c,d){z.call(this,"C1PVideo",a);this.vc=a.model;this.Id=a.charCols;this.Jd=a.charRows;this.Gf=a.screenWidth;this.Hf=a.screenHeight;this.Nb=a.charWidth;this.Ob=a.charHeight;Sa(this);this.Pb=b;this.Ef=c;this.kb=d;this.hb=56832}B(Ra);f=Ra.prototype;f.reset=function(a){this.tb(this.vc);if(this.a)for(var b=this.Wb;b<this.Ec;b++)this.a[b]=a?Math.floor(256*Math.random()):32};
|
||||
f.H=function(a,b,c,d){switch(c){case "refresh":return this.q[c]=d,d.onclick=function(a){return function(){Ta(a);ua(a)}}(this),!0}return!1};f.U=function(a,b,c,d){this.a=a;this.Wb=b;this.Df=c-b+1;this.Ec=this.Wb+this.Df;d&&(this.k=d,void 0!==this.hb&&(va(d,this.hb,this.hb,this,this.G),N(d,this.hb,this.hb,this,this.N)));this.reset(!0)};
|
||||
function Sa(a,b,c,d,e){a.Ub=void 0!==b?b:a.Id;a.Uf=void 0!==c?c:a.Jd;a.Qa=a.Ub*a.Uf;a.Ec=a.Wb+a.Qa;a.Bd=void 0!==d?d:0;a.Kd=void 0!==e?e:c;a.xd=Math.floor(a.Gf/a.Ub);a.yd=Math.floor(a.Hf/a.Kd)}f.V=function(){this.Pb.focus()};f.tb=function(a){this.qb=a;600==this.qb?(Sa(this,this.Id,this.Jd,4,24),1024==this.Qa&&this.k&&(this.Jb=this.Ec+this.Qa-1,N(this.k,this.Jb,this.Jb,this,this.ie))):(G(this,"updated video model: "+this.qb),Sa(this,64,32));Ta(this);ua(this)};
|
||||
f.aa=function(a,b){if(a&&!this.B&&J(this)){if(this.B=!0,this.l=L(b,"debugger"),this.F=L(b,"keyboard"))this.F.H("input","canvas","keyDown",this.Pb),this.F.H("input","canvas","keyPress",this.Pb),this.F.H("input","canvas","keyUp",this.Pb)}else!a&&this.B&&(this.B=!1)};f.O=function(){this.Nb||(this.Nb=Math.floor(this.kb.width/16));this.Ob||(this.Ob=Math.floor(this.kb.height/16));z.prototype.O.call(this)};
|
||||
f.G=function(a,b){var c=this.k.G(a);void 0!==b&&this.l&&S(this.l,this,a,b,this.l.zb);this.k.N(a,c&127|(Math.floor(Ga(this.k)/8333)&1?128:0))};f.N=function(a,b){void 0!==b&&this.l&&S(this.l,this,a,b,this.l.zb)};
|
||||
f.ie=function(a,b){if(void 0!==b){this.l&&S(this.l,this,a,b,this.l.zb,!0);this.tb(540);this.F&&this.F.tb(542);var c=this.k,d=c.ra,e=[],g=wa(d,this.Jb,this.Jb,this,this.ie);if(0<=g){e.push(d[g][0]);e.push(d[g][1]);d.splice(g,1);for(var k=65536,n=0,g=0;g<d.length;g++)k>d[g][0]&&(k=d[g][0]),n<d[g][1]&&(n=d[g][1]);e.push(k);e.push(n)}4==e.length&&(c.Kb=e[2],c.Lb=e[3])}};function Ta(a){a.jc=Array(a.Qa);for(var b=0;b<=a.Qa;b++)a.jc[b]=-1}
|
||||
function ua(a){var b=0;if(a.B)for(;b<a.Qa;){var c=a.a[a.Wb+b];if(a.jc[b]!=c){var d=Math.floor(b/a.Ub);if(d>=a.Bd&&(d-=a.Bd,d<a.Kd)){var e=c*a.Nb;a.Ef.drawImage(a.kb,e%a.kb.width,Math.floor(e/a.kb.width)*a.Ob,a.Nb,a.Ob,b%a.Ub*a.xd,d*a.yd,a.xd,a.yd)}a.jc[b]=c}b++}}
|
||||
x(function(){for(var a=F(window.document,"c1pjs","video"),b=0;b<a.length;b++){var c=a[b],d=D(c),e=window.document.createElement("canvas");if(void 0===e){c.innerHTML="<br/>Missing <canvas> support; try a new web browser.";break}e.setAttribute("class","c1pjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.setAttribute("contenteditable","true");e.setAttribute("autocapitalize","off");e.setAttribute("autocorrect","off");e.style.backgroundColor=d.screenColor;
|
||||
e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(e.style.height=(c.clientWidth*d.screenHeight/d.screenWidth|0)+"px",c.onresize=function(a,b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight));c.appendChild(e);var g=new Image,k=e.getContext("2d"),e=new Ra(d,e,k,g);g.onload=function(a){return function(){a.O()}}(e,d.charSet);g.src=d.charSet;E(e,c)}});
|
||||
function Ua(a){z.call(this,"C1PSerialPort",a);this.B=!1;this.Ad=a.demo;this.vf=0;this.uf=1;this.reset()}B(Ua);f=Ua.prototype;f.reset=function(){2!=this.Ea&&(this.Mb=this.nc=0,this.Ya='10 PRINT "HELLO OSI #'+ia(this)+'"\n',this.Ea=this.Tb=0)};f.start=function(){this.F&&this.Ad&&(V(this.F," C\n\n",3E3),setTimeout(function(a){return function(){a.Ea=1;V(a.F,"LOAD\n")}}(this),12E3));this.Ad=!1};
|
||||
f.H=function(a,b,c,d){switch(c){case "listSerial":return this.q[c]=d,!0;case "loadSerial":return this.q[c]=d,d.onclick=function(a){return function(){a.q.listSerial&&s(a.q.listSerial.value,!0,null,a,a.Mf)}}(this),!0}return!1};f.U=function(a,b,c,d){this.a=a;this.Cc=b;this.Cf=c-b+1;this.Nd=this.Cc+this.Cf;if(this.k=d)va(d,b,c,this,this.G),N(d,b,c,this,this.N);this.O()};f.aa=function(a,b){a&&!this.B&&(this.B=!0,this.M=b,this.F=L(b,"keyboard"),this.l=L(b,"debugger"))};
|
||||
f.Mf=function(a,b,c){b?(this.Ya=b,this.Ea=this.Tb=0,this.M&&this.F&&this.k.fa?(G(this,"auto-loading "+a),this.k.V(),"."!=this.Ya.charAt(0)?(this.Ea=1,V(this.F,"NEW\nLOAD\n")):(this.Ea=2,this.M.reset(!0),V(this.F,"ML"))):G(this,a+" ready to load")):G(this,a+" load error ("+c+")")};f.G=function(a,b){void 0!==b&&(a&1?Va(this):this.Ya&&!this.Tb&&Va(this))};f.N=function(a,b){void 0!==b&&this.l&&S(this.l,this,a,b,this.l.Pc,!0)};
|
||||
function Va(a){if(void 0!==a.Ya){a.nc=0;a.Mb=0;if(a.Tb<a.Ya.length){var b=a.Ya.charCodeAt(a.Tb++);10==b&&(b=13);a.nc=b;a.Mb=1}else 1==a.Ea&&a.F&&V(a.F," \nRUN\n"),a.Ea=0;a.Zb()}}f.Zb=function(){var a;for(a=this.Cc+0;a<this.Nd;a+=2)this.a[a]=this.Mb?this.uf:this.vf;for(a=this.Cc+1;a<this.Nd;a+=2)this.a[a]=this.Mb?this.nc:0};x(function(){for(var a=F(window.document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ua(d);E(d,c)}});
|
||||
function Wa(a){z.call(this,"C1PDiskController",a);this.B=!1;this.mf=this.jd=0;this.fd=1;this.nf=this.kd=2;this.gd=3;this.Kc=128;this.Lc=64;this.Ja=4;this.gf=1;this.bd=2;this.ff=4;this.jf=8;this.hf=16;this.cd=32;this.ad=64;this.hc=128;this.ed=4;this.dd=8;this.kf=32;this.of=this.lf=16;this.hd=17;this.Mc=3;this.qd=1;this.rd=2;this.pd=4;this.od=8;this.ve=0;this.Ee=40;this.reset(!0)}B(Wa);f=Wa.prototype;
|
||||
f.reset=function(a){Xa(this);this.J=-1;a&&(this.T=[],this.T[0]={Vi:this.ve,Ld:this.Ee,If:!0,Va:20,ga:0,Ta:-1,Ib:[]})};
|
||||
function Xa(a){a.ee={r:a.ad,$:function(){},update:function(a){return function(c){void 0!==c&&(this.r=c);a.Xb.r&a.Ja||W(a,a.mf,this)}}(a)};a.Ga={r:255,$:function(){this.update()},update:function(a){return function(c){void 0===c?c=a.Ga.r:Ya(a,c,a.rb.r);c=c|a.hc|a.cd|a.jf|a.ff|a.bd|a.hf;c&=~a.gf;if(0<=a.J&&a.T[a.J].Ib.length){var d=a.T[a.J];d.If&&(c&=~a.cd);d.ga||(c&=~a.bd);10>=--d.Va&&(0<d.Va?(c&=~a.hc,Za(a)):(d.Va=100,0<=a.J&&(a.T[a.J].Ta=0,$a(a))))}this.r=c;a.Xb.r&a.Ja&&W(a,a.jd,this)}}(a)};a.Xb=
|
||||
{r:0,$:function(){},update:function(a){return function(c){void 0!==c&&(this.r=c&~(a.Kc|a.Lc));W(a,a.fd,this);a.Ga.update();a.ee.update()}}(a)};a.fe={r:255,$:function(){},update:function(a){return function(c){void 0!==c&&(this.r=c);a.Yb.r&a.Ja||W(a,a.nf,this)}}(a)};a.rb={r:255,$:function(){},update:function(a){return function(c){void 0===c?c=a.rb.r:Ya(a,a.Ga.r,c);if(0<=a.J&&a.J<a.T.length){var d=a.T[a.J];d.Ib.length&&a.rb.r&a.dd&&!(c&a.dd)&&(c&a.ed?d.ga--:d.ga++,a.l&&T(a.l,a.l.Ka)&&a.l.message("stepping "+
|
||||
(c&a.ed?"down":"up")+" to track "+d.ga),d.ga>=d.Ld&&(d.ga=d.Ld),0>d.ga&&(d.ga=0),d.Va=20,a.Ga.update(a.Ga.r|a.hc),Za(a))}this.r=c;a.Yb.r&a.Ja&&W(a,a.kd,this)}}(a)};a.Yb={r:0,$:function(){},update:function(a){return function(c){void 0!==c&&(this.r=c&~(a.Kc|a.Lc));W(a,a.gd,this);a.rb.update();a.fe.update()}}(a)};a.Si={r:0,$:function(){},update:function(a){return function(c){void 0!==c&&((c&a.Mc)==a.Mc&&(a.Ha.r=a.rd|a.pd|a.od),this.r=c);a.Ha.update()}}(a)};a.Ha={r:a.rd|a.pd|a.od,$:function(){},update:function(a){return function(c){void 0===
|
||||
c&&(c=a.Ha.r);c&=~a.qd;0<=a.J&&0<=a.T[a.J].Ta&&(c|=a.qd);this.r=c;W(a,a.of,this)}}(a)};a.Gc={r:0,$:function(a){return function(){$a(a)}}(a),update:function(a){return function(c){void 0!==c&&(this.r=c);W(a,a.hd,this)}}(a)};a.Ti={r:0,$:function(){},update:function(){return function(){}}(a)}}
|
||||
f.H=function(a,b,c,d){switch(c){case "listDisk":return this.q[c]=d,!0;case "loadDisk":return this.q[c]=d,d.onclick=function(a){return function(){if(a.q.listDisk){var b=a.q.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);G(a,"loading "+ba(b)+"...");s(c,!0,null,a,a.Lf)}}}(this),!0}return!1};f.U=function(a,b,c,d){this.a=a;this.kc=b;if(this.k=d)va(d,b,c,this,this.G),N(d,b,c,this,this.N);this.O()};
|
||||
f.aa=function(a,b){a&&!this.B&&(this.B=!0,this.l=L(b,"debugger"))};
|
||||
f.Lf=function(a,b,c){if(c)G(this,"disk load error ("+c+")");else{c=[];G(this,"mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)G(this,"data error: "+d[0]);else if(this.T[0]){for(b=0;b<d.length;b++){var e,g=d[b],k=g.sectors;if(void 0===(e=g.trackNum)||void 0===k)throw"track "+b+" missing data";e!=b&&u("track "+e+" out of order (expected "+b+")");c=[];var n,m,l;if(e){ab(c,g,"trackSig");bb(c,g);X(c,g,"trackType");for(var q=0;q<k.length;q++){n=
|
||||
k[q];m=n.sectorData;X(c,n,"sectorSig");X(c,n,"sectorNum");X(c,n,"sectorPages");for(l=0;l<m.length;l++)c.push(m[l]);ab(c,n,"sectorEndSig")}}else for(n=k[0],m=n.sectorData,X(c,g,"trackLoad",2),X(c,n,"sectorPages"),l=0;l<m.length;l++)c.push(m[l]);d[e].he=c;this.l&&T(this.l,this.l.Ka)&&this.l.message("track "+e+": "+c.length+" bytes")}this.T[0].Ib=d;G(this,"mount of "+a+" complete")}else G(this,"no available drives")}else G(this,"no tracks: "+a);else G(this,"no data: "+a)}catch(t){G(this,"disk data error: "+
|
||||
(t.message||t))}}};function bb(a,b){var c=b.trackNum;if(void 0===c)throw"missing bcd value: trackNum";a.push(Math.floor(c/10)<<4|c%10)}function X(a,b,c,d){b=b[c];if(void 0===b)throw"missing binary value: "+c;2==d&&a.push(b>>8&255);a.push(b&255)}function ab(a,b,c){b=b[c];if(void 0===b)throw"missing signature: "+c;for(c=0;c<b.length;c++)a.push(b.charCodeAt(c))}
|
||||
function cb(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case a.jd:a=a.Xb.r&a.Ja?a.Ga:a.ee;break;case a.fd:a=a.Xb;break;case a.kd:a=a.Yb.r&a.Ja?a.rb:a.fe;break;case a.gd:a=a.Yb;break;case a.lf:a=c?a.Si:a.Ha;break;case a.hd:a=a.Gc;break;default:a=a.Ti}return a}f.G=function(a,b){if(void 0!==b){var c=cb(this,a-this.kc,!1);this.l&&S(this.l,this,a,b,this.l.Ka,!1,c.ge);c.$()}};
|
||||
f.N=function(a,b){if(void 0!==b){var c=this.k.G(a),d=cb(this,a-this.kc,!0);if(this.l&&T(this.l,this.l.Ka|this.l.bc)&&(S(this.l,this,a,b,this.l.Ka,!0,d.ge),d.xf))for(var e=128,g=d.r^c;g&&e;)g&e&&this.l.message(" changed "+d.ge+"."+d.xf[e]+" to "+(c&e?"1":"0")),e>>=1;d.update(c)}};function Ya(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&a.kf||(d|=2),a.Ga.r&a.ad||(d|=1));a.J!=d&&(a.J=d,a.Ha.update())}function Za(a){0<=a.J&&(a.T[a.J].Ta=-1,a.Gc.update(255),a.Ha.update())}
|
||||
function $a(a){var b=null;if(0<=a.J){var b=a.T[a.J],c=b.Ib[b.ga];void 0!==c&&(0<=b.Ta&&b.Ta<c.he.length?(b.Va=100,b=c.he[b.Ta++],a.Gc.update(b),a.Ha.update()):(b.Va=10,Za(a)))}}function W(a,b,c){a.k.N(b+a.kc,c.r)}x(function(){for(var a=F(window.document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Wa(d);E(d,c)}});
|
||||
function db(a){z.call(this,"C1PDebugger",a);this.Oa=-1;this.va=0;this.Fc=null;this.Rb=!1;this.Y=0;this.qa=[];this.Aa=[];this.Da=[];this.jb=0;this.Ca=[];this.ea=[];this.bc=1;this.ya=16;this.zb=32;this.Ka=64;this.Pc=128;this.Fa=this.Fe=0;this.Hb={port:this.bc,kbd:this.ya,video:this.zb,disk:this.Ka,serial:this.Pc};this.ja=0;this.ka=1;this.$a=2;this.Sc=3;this.Tc=4;this.Uc=5;this.Vc=6;this.Wc=7;this.Xc=8;this.Yc=9;this.Ge=10;this.Zc=11;this.$c=12;this.He=13;this.Ie=14;this.Je=15;this.Ke=16;this.la=17;
|
||||
this.cc=18;this.dc=19;this.Cb=20;this.Me=21;this.Ne=22;this.ma=23;this.Db=24;this.Oe=25;this.Pe=26;this.Eb=27;this.Fb=28;this.na=29;this.ab=30;this.bb=31;this.cb=32;this.Qe=33;this.oa=34;this.Re=35;this.Se=36;this.Te=37;this.Ue=38;this.eb=39;this.fb=40;this.Ve=41;this.We=42;this.pa=43;this.Xe=44;this.Ye=45;this.Ze=46;this.za=47;this.fc=48;this.gc=49;this.$e=50;this.af=51;this.bf=52;this.cf=53;this.df=54;this.ef=55;this.ec=56;this.Le=57;this.gb="ADC AND ASL BCC BCS BEQ BIT BMI BNE BPL BRK BVC BVS CLC CLD CLI CLV CMP CPX CPY DEC DEX DEY EOR INC INX INY JMP JSR LDA LDX LDY LSR NOP ORA PHA PHP PLA PLP ROL ROR RTI RTS SBC SEC SED SEI STA STX STY TAX TAY TSX TXA TXS TYA SIM .DB".split(" ");
|
||||
this.sd=["HLT","MSG"];eb(this,!0);this.X=[[this.Ge],[this.oa,1,this.ha],[this.ec,1],[],[],[this.oa,1,this.C],[this.$a,1,this.C],[],[this.Se],[this.oa,1,this.Q],[this.$a,0,this.Ab],[],[],[this.oa,2,this.A],[this.$a,2,this.A],[],[this.Yc,1,this.W],[this.oa,1,this.ia],[],[],[],[this.oa,1,this.I],[this.$a,1,this.I],[],[this.He],[this.oa,2,this.ba],[],[],[],[this.oa,2,this.K],[this.$a,2,this.K],[],[this.Fb,2,this.Bb],[this.ka,1,this.ha],[],[],[this.Vc,1,this.C],[this.ka,1,this.C],[this.eb,1,this.C],[],
|
||||
[this.Ue],[this.ka,1,this.Q],[this.eb,0,this.Ab],[],[this.Vc,2,this.A],[this.ka,2,this.A],[this.eb,2,this.A],[],[this.Wc,1,this.W],[this.ka,1,this.ia],[],[],[],[this.ka,1,this.I],[this.eb,1,this.I],[],[this.Xe],[this.ka,2,this.ba],[],[],[],[this.ka,2,this.K],[this.eb,2,this.K],[],[this.Ve],[this.ma,1,this.ha],[],[],[],[this.ma,1,this.C],[this.cb,1,this.C],[],[this.Re],[this.ma,1,this.Q],[this.cb,0,this.Ab],[],[this.Eb,2,this.Bb],[this.ma,2,this.A],[this.cb,2,this.A],[],[this.Zc,1,this.W],[this.ma,
|
||||
1,this.ia],[],[],[],[this.ma,1,this.I],[this.cb,1,this.I],[],[this.Je],[this.ma,2,this.ba],[],[],[],[this.ma,2,this.K],[this.cb,2,this.K],[],[this.We],[this.ja,1,this.ha],[],[],[],[this.ja,1,this.C],[this.fb,1,this.C],[],[this.Te],[this.ja,1,this.Q],[this.fb,0,this.Ab],[],[this.Eb,2,this.Qc],[this.ja,2,this.A],[this.fb,2,this.A],[],[this.$c,1,this.W],[this.ja,1,this.ia],[],[],[],[this.ja,1,this.I],[this.fb,1,this.I],[],[this.Ze],[this.ja,2,this.ba],[],[],[],[this.ja,2,this.K],[this.fb,2,this.K],[],
|
||||
[],[this.za,1,this.ha],[],[],[this.gc,1,this.C],[this.za,1,this.C],[this.fc,1,this.C],[],[this.Ne],[],[this.cf],[],[this.gc,2,this.A],[this.za,2,this.A],[this.fc,2,this.A],[],[this.Sc,1,this.W],[this.za,1,this.ia],[],[],[this.gc,1,this.I],[this.za,1,this.I],[this.fc,1,this.Rc],[],[this.ef],[this.za,2,this.ba],[this.df],[],[],[this.za,2,this.K],[],[],[this.bb,1,this.Q],[this.na,1,this.ha],[this.ab,1,this.Q],[],[this.bb,1,this.C],[this.na,1,this.C],[this.ab,1,this.C],[],[this.af],[this.na,1,this.Q],
|
||||
[this.$e],[],[this.bb,2,this.A],[this.na,2,this.A],[this.ab,2,this.A],[],[this.Tc,1,this.W],[this.na,1,this.ia],[],[],[this.bb,1,this.I],[this.na,1,this.I],[this.ab,1,this.Rc],[],[this.Ke],[this.na,2,this.ba],[this.bf],[],[this.bb,2,this.K],[this.na,2,this.K],[this.ab,2,this.ba],[],[this.dc,1,this.Q],[this.la,1,this.ha],[],[],[this.dc,1,this.C],[this.la,1,this.C],[this.Cb,1,this.C],[],[this.Pe],[this.la,1,this.Q],[this.Me],[],[this.dc,2,this.A],[this.la,2,this.A],[this.Cb,2,this.A],[],[this.Xc,1,
|
||||
this.W],[this.la,1,this.ia],[],[],[],[this.la,1,this.I],[this.Cb,1,this.I],[],[this.Ie],[this.la,2,this.ba],[],[],[],[this.la,2,this.K],[this.Cb,2,this.K],[],[this.cc,1,this.Q],[this.pa,1,this.ha],[],[],[this.cc,1,this.C],[this.pa,1,this.C],[this.Db,1,this.C],[],[this.Oe],[this.pa,1,this.Q],[this.Qe],[],[this.cc,2,this.A],[this.pa,2,this.A],[this.Db,2,this.A],[],[this.Uc,1,this.W],[this.pa,1,this.ia],[],[],[],[this.pa,1,this.I],[this.Db,1,this.I],[],[this.Ye],[this.pa,2,this.ba],[],[],[],[this.pa,
|
||||
2,this.K],[this.Db,2,this.K],[]]}B(db);f=db.prototype;f.H=function(a,b,c,d){var e=this;switch(c){case "debugInput":return this.Qb=this.q[c]=d,this.Qb.focus(),d.onkeypress=function(a,b){return function(d){13==d.keyCode&&(c=b.value,b.value="",fb(a,c))}}(this,d),!0;case "debugEnter":return this.q[c]=d,fa(d,function(){return e.Qb?(c=e.Qb.value,fb(e,c),!0):!1}),!0;case "step":return this.q[c]=d,fa(d,function(a){var b=!1;I(e,!0)||(H(e,!0),b=e.step(a?1:0),H(e,!1));return b}),!0}return!1};
|
||||
f.U=function(a,b,c){this.a=a;this.Z=b;this.pc=c-b+1;this.Xa=this.Z+this.pc;this.O()};f.aa=function(a,b){a&&!this.B&&(this.B=!0,this.k=L(b,"cpu"))};f.V=function(){this.Qb.focus()};
|
||||
function eb(a,b){a.Ab=0;a.Q=1;a.K=2;a.ba=3;a.Bb=4;a.Qc=5;a.I=6;a.Rc=7;a.ha=8;a.ia=9;a.A=10;a.C=11;a.W=a.Bb;var c="",d,e;if(b)for(a.da="A #$nn $nnnn,X $nnnn,Y $nnnn ($nnnn) $nn,X $nn,Y ($nn,X) ($nn),Y $nnnn $nn".split(" "),d=0;d<a.da.length;d++)e=a.da[d],c+="("+e.replace(/\(/g,"\\(").replace(/\)/g,"\\)").replace(/nnnn/g,"[0-9A-F][0-9A-F][0-9A-F][0-9A-F]?").replace(/nn/g,"[0-9A-F][0-9A-F]?").replace(/\$/g,"\\$")+"|)";else for(a.da="A nn [nnnn+X] [nnnn+Y] nnnn [nnnn] [nn+X] [nn+Y] [[nn+X]] [[nn]+Y] [nnnn] [nn]".split(" "),
|
||||
d=0;d<a.da.length;d++)e=a.da[d],c+="("+e.replace(/\[/g,"\\[").replace(/\]/g,"\\]").replace(/nnnn/g,"[0-9A-F][0-9A-F][0-9A-F][0-9A-F]?").replace(/nn/g,"[0-9A-F][0-9A-F]?").replace(/\+/g,"\\+")+"|)";a.Ui=new RegExp(c);a.yf=[a.Eb,a.Fb,a.Yc,a.Wc,a.Zc,a.$c,a.Sc,a.Tc,a.Xc,a.Uc]}f.S=function(){this.k.S()};function T(a,b){return(a.Fa&b)===b}function S(a,b,c,d,e,g,k){(a.Fa&e)==e&&(e=a.k.G(c),a.message(b.id+"."+(g?"setByte":"getByte")+"("+p(c)+")"+(void 0!==d?" @"+p(d):"")+": "+(k?k+"=":"")+h(e)))}
|
||||
f.message=function(a){G(this,a);Fa(this.k)};f.Kf=function(){G(this,"Type ? for list of debugger commands\n")};f.xa=function(){if(!gb(this))return!1;this.k.xa();return!0};f.step=function(a){if(!gb(this))return!1;var b;try{b=this.k.step(a)}catch(c){b=void 0,K(this.k,c.message||c)}void 0!==b&&this.Oa++;this.k.update(!0);this.update(!0);return b};f.update=function(a){this.va=this.k.d;a||this.Sa?hb(this):ib(this)};
|
||||
function gb(a){a.k&&J(a.k)&&!I(a.k)?(a=a.k,a.ib?(G(a,a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}f.reset=function(){var a;this.Ca.length||(this.Ca=Array(1E3));for(a=0;a<this.Ca.length;a++)this.Ca[a]=-1;this.ea.length||(this.ea=Array(256));for(a=0;a<this.ea.length;a++)this.ea[a]=[a,0];this.Oa&&this.update();this.Oa=0};f.start=function(){this.Sa||G(this,"running")};
|
||||
f.stop=function(a,b){if(!this.Sa&&(G(this,"stopped"),b)){var c=r();G(this,c-a+"ms ("+b+" cycles)")}this.update();this.V();this.Sa||(this.Oa=0);jb(this,this.k.d)};function kb(a,b){return a+(b<<24>>24)}f.G=function(a){var b;a>=this.Z&&a<this.Xa&&(xa(this.k,a),b=this.a[this.Z+a],b&=255);return b};f.N=function(a,b){a<this.Z||a>=this.Xa?G(this,"invalid address: "+p(a)):(this.a[this.Z+a]=b&255,za(this.k,a),this.k.update())};function lb(a,b){Y(a.qa,b,void 0)||a.qa.push(b);return!0}
|
||||
function Y(a,b,c){for(var d=!1,e=0;e<a.length;e++)if(a[e]==b){c&&a.splice(e,1);d=!0;break}return d}function mb(a,b){void 0!==b&&(jb(a,a.Na),lb(a,b)&&(a.Na=b))}function jb(a,b){void 0!==a.Na&&b==a.Na&&Y(a.qa,a.Na,!0)&&(a.Na=void 0);a.Sa=!1}function Ea(a,b,c,d){for(var e=!1,g=0;g<c.length;g++)if(c[g]==b){b!=a.Na&&G(a,"breakpoint hit: "+p(b)+" ("+d+")");e=!0;break}return e}
|
||||
function nb(a,b,c){var d=p(b),e=a.G(b++),g=a.X[e],k=void 0===e?0:e,n=[],m=void 0===g[1]?0:g[1];do{d+=" "+h(k);if(!m--)break;k=a.G(b++);if(void 0===k)break;n.push(k)}while(1);void 0===g[0]&&(g=[a.Le,1,a.Q],n.push(e));var d=(d+" ").substr(0,15),d=d+a.gb[g[0]],l=null;if(void 0!==g[2]){m=g[2];l=a.da[m];if(1==g[1]&&m==a.W)l=l.replace(/nnnn/,p(kb(b,k=n.pop())));else for(;n.length;)l=l.replace(/nn/,h(k=n.pop()));m==a.Q&&1==g[1]&&32<=k&&128>k&&(l+=" ;'"+String.fromCharCode(k)+"'")}if(e==a.k.ec&&(k<
|
||||
a.sd.length&&(l=a.sd[k]),k==a.k.md)){m=0;for(l='"';k=a.G(b++);)16>m?l+=String.fromCharCode(k):16==m&&(l+="\u2026"),m++;l+='"'}l&&(d+=" "+l);c&&(d=(d+" ").substr(0,30),d+=";"+c.toString());a.Wf=b;return d}
|
||||
function Z(a,b){var c=a.va;if(void 0!==b){var d=16;"$"==b.charAt(0)?b=b.substr(1):"0x"==b.substr(0,2)?b=b.substr(2):"."==b.charAt(b.length-1)&&(d=10,b=b.substr(0,b.length-1));c=parseInt(b,d);isNaN(c)&&(G(a,"invalid base-"+d+" address: "+b),c=void 0)}void 0!==c&&(c<a.Z||c>=a.Xa)&&(G(a,"address out of range: "+aa(c)),c=void 0);return c}
|
||||
function ob(a,b){if("?"==b)G(a,"\nfrequency commands:"),G(a,"clear\tclear all frequency counts");else{var c=0,d;if(a.ea)if("clear"==b){for(d=0;d<a.ea.length;d++)a.ea[d]=[d,0];G(a,"frequency data cleared");c++}else if(void 0!==b)G(a,"unknown frequency command: "+b),c++;else{var e=a.ea.slice();e.sort(function(a,b){return b[1]-a[1]});for(d=0;d<e.length;d++){var g=e[d][0],k=e[d][1];k&&(G(a,a.gb[a.X[g][0]]+" ("+h(g)+"): "+k+" times"),c++)}}c||G(a,"no frequency data available")}}
|
||||
function hb(a,b,c,d){var e=Z(a,b);if(void 0!==e){void 0===d&&(d=1);b=a.Xa;if(void 0!==c){b=Z(a,c);if(void 0===b||b<e)return;if(256<b-e){G(a,"range too large");return}b++;d=-1}for(e!=a.va&&G(a);d--&&e<b;)c=nb(a,e,I(a,!1)||a.Sa?a.Oa:0),G(a,c),a.va=e=a.Wf}}
|
||||
function ib(a,b){if(b&&"?"==b[1])G(a,"\nregister commands:"),G(a,"r to display all"),G(a,"r [target=value] to modify"),G(a,"supported targets:"),G(a,"A,X,Y,S,PC and flags C,Z,D,V,N");else{var c=!0;if(void 0!==b&&1<b.length){var c=!1,d=b[1],e=null,g=d.indexOf("=");if(0<g)e=d.substr(g+1),d=d.substr(0,g);else if(2<b.length)e=b[2];else{G(a,"missing value for "+b[1]);return}g=parseInt(e,16);if(isNaN(g)){G(a,"invalid value: "+e);return}switch(d.toUpperCase()){case "A":a.k.e=g&255;break;case "X":a.k.m=g&
|
||||
255;break;case "Y":a.k.o=g&255;break;case "C":a.k.c=g?256:0;break;case "Z":a.k.g=g?0:1;break;case "D":g?Ha(a.k):Ia(a.k);break;case "V":g?(d=a.k,d.t=0,d.u=128):(d=a.k,d.t=0,d.u=0);break;case "N":a.k.f=g?128:0;break;case "S":if(256!=(g&-256)){G(a,"invalid stack pointer: "+e);return}a.k.p=g;break;case "PC":c=!0;a.k.d=g&65535;a.va=a.k.d;break;default:G(a,"unknown register: "+d);return}a.k.update()}G(a,"A="+h(a.k.e)+" X="+h(a.k.m)+" Y="+h(a.k.o)+" P="+h(Ca(a.k))+" S="+p(a.k.p)+" PC="+p(a.k.d));c&&hb(a,
|
||||
p(a.va=a.k.d))}}function pb(a,b){var c=void 0===b?1:parseInt(b,10),d=1==c?0:1;ea(c,function(a){return function(){return H(a,!0)&&a.step(d)}}(a),function(a){return function(){H(a,!1)}}(a))}
|
||||
function fb(a,b){b.length||(a.Rb?(G(a,"ended assemble @"+p(a.Y)),a.va=a.Y,a.Rb=!1):a.Fc&&(b=a.Fc));if(J(a)&&!I(a,!0)&&0<b.length){a.Rb?b="a "+p(a.Y)+" "+b:1<b.length&&1!=b.indexOf(" ")&&(b=b.charAt(0).toLowerCase()+" "+b.substr(1));var c=b.split(" ");a.Fc=c[0];switch(c[0].toLowerCase()){case "a":var d=Z(a,c[1]);if(void 0!==d)if(a.Y=d,void 0===c[2])G(a,"begin assemble @"+p(a.Y)),a.Rb=!0,a.k.update();else{var e,g=c[2],k=c[3],c=a.Y,d=[];if(void 0!==g){var n,g=g.toUpperCase();"?"==g.charAt(g.length-1)&&
|
||||
(k="?",g=g.substr(0,g.length-1));for(n=0;n<a.gb.length&&g!=a.gb[n];n++);n==a.gb.length&&(G(a,"unknown operation: "+g),n=-1);var m="",l;if(0<=n&&void 0!==k)if(m=k.toUpperCase(),"?"==m){for(k=l=0;k<a.X.length;k++)a.X[k][0]===n&&(l||G(a,"supported opcodes:"),G(a," "+h(k)+": "+g+(void 0!==a.X[k][2]?" "+a.da[a.X[k][2]]:"")),l++);n=-1}else if(l=m.match(a.Ui),null!==l&&l[0]==m){for(k=1;k<l.length;k++)if(l[k]==m)if(void 0===e)e=k-1;else{G(a,"too many operand matches (both "+a.da[e]+" and "+a.da[k-1]+
|
||||
")");n=-1;break}e==a.Bb&&0>a.yf.indexOf(n)&&(e=a.A);e==a.Qc&&n!=a.Eb&&(e=a.A)}else G(a,"unknown operand: "+m),n=-1;if(0<=n){l=-1;for(k=0;k<a.X.length;k++)if(a.X[k][0]===n&&a.X[k][2]===e)if(0>l)l=k;else{G(a,"too many instruction matches (both "+h(l)+" and "+h(k)+")");l=-2;break}if(0<=l){if(d.push(l),void 0!==e)if(g=a.X[l][1],m=m.match(/[0-9A-F]+/),null!==m)for(m=parseInt(m[0],16),1==g&&e==a.W&&(m-=c+2,-128>m||127<m)&&(G(a,"branch out of range ("+m+")"),d=[],g=0),k=0;k<g;k++)d.push(m&255),m>>>=8;else g&&
|
||||
G(a,"instruction missing "+g+" bytes")}else G(a,"unknown instruction: "+g+" "+m+"")}}e=d;if(e.length){for(c=0;c<e.length;c++)a.N(a.Y+c,e[c]);G(a,nb(a,a.Y));a.Y+=e.length}}break;case "b":e=c[1];c=c[2];if(void 0===e||"?"==e)G(a,"\nbreakpoint commands:"),G(a,"bp [a]\tset exec breakpoint at [a]"),G(a,"br [a]\tset read breakpoint at [a]"),G(a,"bw [a]\tset write breakpoint at [a]"),G(a,"bc [a]\tclear breakpoint at [a]"),G(a,"bl\tlist all breakpoints");else if(void 0===c&&1<e.length&&(c=e.substr(1),e=e.substr(0,
|
||||
1)),"l"==e){e=0;d=a.qa;for(c=0;c<d.length;c++)G(a,"breakpoint enabled: "+p(d[c])+" (exec)"),e++;d=a.Aa;for(c=0;c<d.length;c++)G(a,"breakpoint enabled: "+p(d[c])+" (read)"),e++;d=a.Da;for(c=0;c<d.length;c++)G(a,"breakpoint enabled: "+p(d[c])+" (write)"),e++;e||G(a,"no breakpoints")}else void 0===c?G(a,"missing breakpoint address"):"c"==e&&"*"==c?(a.qa=[],a.Aa=[],a.Da=[],G(a,"all breakpoints cleared")):(c=Z(a,c),void 0!==c&&("p"==e?lb(a,c)?G(a,"breakpoint enabled: "+p(c)+" (exec)"):G(a,"breakpoint not set: "+
|
||||
p(c)):"c"==e?Y(a.qa,c,!0)?G(a,"breakpoint cleared: "+p(c)+" (exec)"):Y(a.Aa,c,!0)?G(a,"breakpoint cleared: "+p(c)+" (read)"):Y(a.Da,c,!0)?G(a,"breakpoint cleared: "+p(c)+" (write)"):G(a,"breakpoint missing: "+p(c)):"r"==e?(Y(a.Aa,c,void 0)||a.Aa.push(c),G(a,"breakpoint enabled: "+p(c)+" (read)")):"w"==e?(Y(a.Da,c,void 0)||a.Da.push(c),G(a,"breakpoint enabled: "+p(c)+" (write)")):G(a,"unknown breakpoint command: "+e)));break;case "d":e=c[1];d=c[2];if("?"==e)G(a,"\ndump commands:"),G(a,"d [a] [#] dump # lines of memory");
|
||||
else if(e=Z(a,e),void 0!==e){c=0;void 0!==d&&("l"==d.charAt(0)&&(d=d.substr(1)),c=parseInt(d,10));c||(c=1);for(d=0;d<c;d++){m=g="";k=e;for(n=0;8>n&&e<a.Xa;n++)l=a.G(e),void 0===l&&(l=0),g+=h(l)+" ",m+=32<=l&&128>l?String.fromCharCode(l):".",e++;G(a,p(k)+" "+g+m)}a.va=e}break;case "e":e=c[1];if(void 0===e)G(a,"missing address");else if(e=Z(a,e),void 0!==e)for(d=2;d<c.length;d++)g=parseInt(c[d],16),a.N(e++,g);break;case "f":ob(a,c[1]);break;case "g":e=c[1];void 0!==e&&mb(a,Z(a,e));a.xa()||a.k.V();break;
|
||||
case "h":a.S();break;case "o":if(void 0===c[1]||"?"==c[1])G(a,"\noption commands:"),G(a,"max\trun at maximum speed"),G(a,"fast\trun faster (up to "+a.k.lb+"Mhz)"),G(a,"slow\trun at normal speed (1Mhz)"),G(a,"classic\tuse classic operand syntax"),G(a,"modern\tuse modern operand syntax"),G(a,"msg\tenable message categories");else switch(e=c[1],e){case "slow":M(a.k,a.k.Gb);break;case "fast":M(a.k,a.k.nd);break;case "max":M(a.k,a.k.La);break;case "classic":eb(a,!0);G(a,"classic syntax enabled");break;
|
||||
case "modern":eb(a,!1);G(a,"modern syntax enabled");break;case "msg":e=0;void 0!==c[2]&&("all"==c[2]?e=255:void 0!==a.Hb[c[2]]&&(e=a.Hb[c[2]]),e&&("on"==c[3]?a.Fa|=e:"off"==c[3]&&(a.Fa&=~e)));for(d in a.Hb)if(void 0===c[2]||"all"==c[2]||c[2]==d)e=a.Hb[d],G(a,d+" messages: "+(a.Fa&e?"on":"off"));break;default:G(a,"unknown option: "+e)}break;case "p":m=c[1];e=10;c=a.jb;d=a.Ca;if(void 0!==d){g=void 0===m?a.Vf:parseInt(m,10);void 0===g&&(g=10);g>d.length&&(G(a,"note: only "+d.length+" available"),g=d.length);
|
||||
void 0!==m&&(a.wc=0,G(a,g+" instructions earlier:"));m=a.wc?a.wc:1;c-=g;for(0>c&&(c=d.length-1);e&&c!=a.jb;){k=d[c];if(0>k)break;G(a,nb(a,k,m++));++c==d.length&&(c=0);e--;g--}a.Vf=g;a.wc=m}10==e&&G(a,"no history available");break;case "r":ib(a,c);break;case "s":a.G(a.k.d)==a.k.Fb?(mb(a,a.k.d+3),a.Sa=!0,a.xa()||a.k.V()):pb(a);break;case "t":pb(a,c[1]);break;case "u":hb(a,c[1],c[2],8);break;case "?":case "help":G(a,"\ncommands:\n?\thelp\na [#]\tassemble\nb [#]\tbreakpoint\nd [#]\tdump memory\ne [#]\tedit memory\nf\tdump frequencies\ng [#]\trun to [#]\nh\thalt\no\toptions\np [#]\tdump history\nr\tdump/edit registers\ns\tstep over instruction\nt [#]\tstep instruction(s)\nu [#]\tunassemble");
|
||||
G(a,"note: frequency and history commands operate only when breakpoints are set");break;default:G(a,"unknown command: "+b)}}}x(function(){for(var a=F(window.document,"c1pjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new db(d);E(d,c)}});function $(a,b){z.call(this,"C1PComputer",a);this.P=b}B($);$.prototype.reset=function(a){var b=null,c;for(c in this.P)for(var d=0;d<this.P[c].length;d++){var e=this.P[c][d];e&&e.reset&&(e.reset(),"cpu"==c&&(b=e))}b&&(b.update(),a&&b.xa())};
|
||||
$.prototype.start=function(){for(var a in this.P)if("cpu"!=a)for(var b=0;b<this.P[a].length;b++){var c=this.P[a][b];c&&c.start&&c.start()}};$.prototype.stop=function(a,b){for(var c in this.P)if("cpu"!=c)for(var d=0;d<this.P[c].length;d++){var e=this.P[c][d];e&&e.stop&&e.stop(a,b)}};$.prototype.H=function(a,b,c,d){switch(c){case "reset":return this.q[c]=d,d.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function L(a,b){return a.P[b]?a.P[b][0]:null}
|
||||
function qb(a){var b=null,c;for(c in a.P)for(var d=0;d<a.P[c].length;d++){var e=a.P[c][d];if(e){if(!J(e)){J(e,function(a){return function(){qb(a)}}(a));return}"cpu"==c?b=e:e.aa&&e.aa(!0,a)}}a.O();G(a,"C1Pjs v1.15.4\nCopyright \u00a9 2012-2014 Jeff Parsons <Jeff@pcjs.org>");b&&b.aa(!0,a)}
|
||||
x(function(){for(var a=F(window.document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=D(c),e,g={},k,n=0,m=0,l=0;l<d.modules.length;l++){var q=d.modules[l];if(!l){if("cpu"!=q.type)break;n=q.start;m=q.end;k=Array(m+1-n);for(e=n;e<k.length;e++)k[e]=0}if(e=C(q.refID,d.id)){var t=q.type;void 0===g[t]&&(g[t]=[]);g[t].push(e);e.U&&void 0!==q.start&&e.U(k,q.start,q.end,g.cpu[0])}else{u('no component for <module refid="'+q.refID+'">');return}}if(void 0===k){u('<module type="cpu"> definition must appear first in the <computer> specification');
|
||||
break}if(e=C("debugger",d.id))g["debugger"]=[e],e.U&&e.U(k,n,m,g.cpu[0]);(e=C("panel",d.id))&&(g.panel=[e]);d=new $(d,g);E(d,c);qb(d)}});function rb(a,b,c,d){var e=s(a);if(e[0])throw Error(e[1]);return sb(e[1],a,b,c,d)}
|
||||
function sb(a,b,c,d,e){var g=null;if(a){if(e)for(var k=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g;g=k.exec(a);){var n=g[2],m=s(n),l=m[1];if(m[0]||!l)throw c="unable to resolve XML reference: "+g[0]+" ("+m[0]+")",Error(c);if(m=g[3]){var q=l.match(new RegExp("<"+g[1]+"[^>]*>"));if(q){for(var n=q[0],t,ya=/( [a-z]+=)(['"])(.*?)\2/g;t=ya.exec(m);)n=0>n.indexOf(t[1])?n.replace(">",t[0]+">"):n.replace(new RegExp(t[1]+"(['\"])(.*?)\\1"),t[0]);q[0]!=n&&(l=l.replace(q[0],n))}else throw c="missing <"+g[1]+"> in "+n,
|
||||
Error(c);}l=l.replace(/<\?xml[^>]*>[\r\n]*/,"");a=a.replace(g[0],l);k.lastIndex=0}c&&(b&&0>b.indexOf("/")&&(b=window.location.pathname+b),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(b?" url=$2"+b+"$2":"")));if(0===a.indexOf("<"))window.ActiveXObject||"ActiveXObject"in window?(e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*\]>\s*/g,"")),g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml");else throw Error("unrecognized XML: "+
|
||||
(255<a.length?a.substr(0,255)+"...":a));}return[a,g]}
|
||||
window.embedC1P=function(a,b,c){var d=c,e=c="",g=null;try{if(g=window.document.getElementById(a)){d||(d="/versions/c1pjs/1.15.4/components.xsl");var k="<"==b.substr(0,1)?sb(b,null,a,void 0,!1):rb(b,a,void 0,!0);c=k[0];var n=k[1];if(n){var k=rb(d),m=k[1];if(m)if(window.ActiveXObject||"ActiveXObject"in window){var l=n.transformNode(m);l?g.outerHTML=l:e="transformNodeToObject failed"}else if(window.document.implementation&&window.document.implementation.createDocument){var q=new XSLTProcessor;q.importStylesheet(m);
|
||||
var t=q.transformToFragment(n,window.document);t?g.parentNode.replaceChild(t,g):e="transformToFragment failed"}else e="unable to transform XML: unsupported browser";else e="failed to load XSL file: "+d}else e="failed to load XML file: "+b}else e="failed to find machine element: "+a}catch(ya){e=ya.message}e&&g&&(a=F(g,"machine-warning"),a[0]&&(a[0].innerHTML="Error: "+da(e)));return e||c};window.enableEvents=function(a){ga=a};window.sendEvent=function(a){w[a]&&y(w[a])};})();//@ sourceMappingURL=/tmp/c1pjs/1.15.4/c1p-dbg.map
|
||||
127
versions/c1pjs/1.15.4/c1p.js
Normal file
127
versions/c1pjs/1.15.4/c1p.js
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
(function(){var e;function p(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function aa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));return b}var ba={"&":"&","<":"<",">":">",'"':""","'":"'"};function ca(a){return a.replace(/[&<>"']/g,function(a){return ba[a]})}
|
||||
function r(a,b,c,d,f){b=!!b;var g=0,h=null,l=aa(a),m=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(m.onreadystatechange=function(){4===m.readyState&&(m.onreadystatechange=void 0,h=m.responseText,200!=m.status&&(g=m.status||-1),d&&f&&f.call(d,l,h,g,void 0))});if(c){var k="",n;for(n in c)c.hasOwnProperty(n)&&(k&&(k+="&"),k+=n+"="+encodeURIComponent(c[n]));k=k.replace(/%20/g,"+");m.open("POST",a,b);m.setRequestHeader("Content-type","application/x-www-form-urlencoded");
|
||||
m.send(k)}else m.open("GET",a,b),m.send();a=[];b||(h=m.responseText,200!=m.status&&(g=m.status||-1),d&&f&&f.call(d,l,h,g,void 0),a=[g,h]);return a}function s(a){window?window.alert(a):console.log(a)}function t(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var u={init:[],show:[],exit:[]},da=!0;
|
||||
function v(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function w(a){u.init.push(a)}function x(a){if(da)for(var b=0;b<a.length;b++)a[b]()}v("onload",function(){x(u.init)});v("onpageshow",function(){x(u.show)});v(t("Opera")||t("iOS")?"onunload":"onbeforeunload",function(){x(u.exit)});
|
||||
function y(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.bc=this.id.substr(0,b),this.ac=this.id.substr(b+1)):this.ac=this.id;this[a]=c;this.jb=null;this.Ma=this.pa=this.ib=this.Na=!1;this.o={};ea(this);z[z.length]=this}var A=void 0;if(window){A||(A=window.location.search.substr(1));for(var B,fa=/\+/g,ga=/([^&=]+)=?([^&]*)/g;B=ga.exec(A);)B[1].replace(fa," "),B[2].replace(fa," ")}
|
||||
function ha(){var a=y.prototype;function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}function C(a){a.prototype=ha()}var z=[];function D(){}function ia(a,b){b||s(a)}function E(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<z.length;c++)if(z[c].id===a)return z[c]}return null}
|
||||
function F(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("({"+a+"})")}catch(c){s(c.message+" ("+a+")")}return b}
|
||||
function G(a,b){var c,d;d=H(b.parentNode,"c1pjs-control");for(c=0;c<d.length;c++){var f,g;g=d[c].childNodes;for(f=0;f<g.length;f++){var h=g[f];if(h.nodeType===window.document.ELEMENT_NODE){var l=h.getAttribute("class");if(l){var m,k;k=l.split(" ");for(m=0;m<k.length;m++)switch(l=k[m],l){case "c1pjs-input":case "c1pjs-output":(k=F(h))&&k.binding&&a.G(l,k.type,k.binding,h),k=[]}}}}}}
|
||||
function H(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
|
||||
y.prototype={toString:function(){return this.name?this.name:this.id||this.type},G:function(a,b,c,d){switch(c){case "clear":return this.o[c]||(this.o[c]=d,d.onclick=function(a){return function(){a.o.print&&(a.o.print.value="")}}(this)),!0;case "print":return this.o[c]||(this.o[c]=d,d.value="",D=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(d),ia=function(a,b,c){D(a,"notice",
|
||||
c)}),!0}return!1},log:function(){},status:function(a){I(this,this.ac+": "+a)},I:function(a){!this.Ma&&(this.Na=!1!==a)&&(this.name&&this.log("ready"),a=this.jb,this.jb=null,a&&a())}};function ja(a,b){if(a.ib)return a.pa&&(a.pa=!1),a.ib=!1;if(a.Ma)return I(a,a.toString()+" error"),!1;a.pa=b;return a.pa}function J(a,b){b&&(a.Na?b():a.jb=b);return a.Na}function K(a,b){a.Ma=!0;ia("Fatal error: "+b,void 0,a.id)}function I(a,b){D(b,void 0,a.id)}
|
||||
function ea(a){var b=1;a.bc&&(a=a.bc.match(/\d+/),null!==a&&(b=parseInt(a[0],10)));return b}window&&!window.document.ELEMENT_NODE&&(window.document.ELEMENT_NODE=1);function L(a){y.call(this,"C1PPanel",a);this.w=!1}C(L);L.prototype.G=function(a,b,c,d){return this.F&&this.F.G(a,b,c,d)||this.s&&this.s.G(a,b,c,d)||this.B&&this.B.G(a,b,c,d)?!0:y.prototype.G.call(this,a,b,c,d)};L.prototype.R=function(a,b){a&&!this.w&&(this.w=!0,this.F=b,this.s=M(b,"cpu"),this.B=M(b,"keyboard"),ka())};
|
||||
function ka(){for(var a=!1,b=H(window.document,"c1pjs","panel"),c=0;c<b.length;c++){var d=b[c],f=F(d),g=E(f.id);g||(a=!0,g=new L(f));G(g,d);a&&g.I()}}w(ka);
|
||||
function N(a){y.call(this,"C1PCPU",a);la(this);this.Q=this.w=!1;this.Xb=a.autoStart;this.Za=0;this.ud=1;this.na=2;this.speed=this.Za;this.ta=1E6;this.ob=this.qb=30;this.nb=5;this.Ld=1;this.Pa=8;this.Rb=["Slow","Fast","Max"];this.zd=["("+this.Ld+"Mhz)","(up to "+this.Pa+"Mhz)","(unlimited)"];this.X=[];this.S=[];this.cb=65536;this.eb=0;this.Ga=65536;this.Ha=0;this.Mc=128;this.Nc=64;this.Ic=16;this.Kc=8;this.Lc=4;this.Oc=2;this.Jc=1;this.xd=65532;this.sd=0;this.td=1;this.q=[this.we,this.Qf,this.Hg,this.i,
|
||||
this.i,this.Sf,this.me,this.i,this.Vf,this.Pf,this.le,this.i,this.i,this.Mf,this.je,this.i,this.ve,this.Rf,this.i,this.i,this.i,this.Tf,this.ne,this.i,this.ze,this.Of,this.i,this.i,this.i,this.Nf,this.ke,this.i,this.nf,this.fe,this.i,this.i,this.se,this.he,this.ag,this.i,this.Xf,this.ee,this.$f,this.i,this.re,this.be,this.Yf,this.i,this.te,this.ge,this.i,this.i,this.i,this.ie,this.bg,this.i,this.rg,this.de,this.i,this.i,this.i,this.ce,this.Zf,this.i,this.hg,this.af,this.i,this.i,this.i,this.cf,this.Jf,
|
||||
this.i,this.Uf,this.$e,this.If,this.i,this.mf,this.Xe,this.Gf,this.i,this.xe,this.bf,this.i,this.i,this.i,this.df,this.Kf,this.i,this.Be,this.Ze,this.i,this.i,this.i,this.Ye,this.Hf,this.i,this.ig,this.rc,this.i,this.i,this.i,this.tc,this.fg,this.i,this.Wf,this.qc,this.eg,this.i,this.lf,this.nc,this.cg,this.i,this.ye,this.sc,this.i,this.i,this.i,this.uc,this.gg,this.i,this.tg,this.pc,this.i,this.i,this.i,this.oc,this.dg,this.i,this.i,this.xg,this.i,this.i,this.Fg,this.zg,this.Cg,this.i,this.We,this.i,
|
||||
this.Lg,this.i,this.Eg,this.ug,this.Bg,this.i,this.oe,this.yg,this.i,this.i,this.Gg,this.Ag,this.Dg,this.i,this.Ng,this.wg,this.Mg,this.i,this.i,this.vg,this.i,this.i,this.Df,this.sf,this.yf,this.i,this.Ef,this.uf,this.zf,this.i,this.Jg,this.rf,this.Ig,this.i,this.Bf,this.of,this.wf,this.i,this.pe,this.tf,this.i,this.i,this.Ff,this.vf,this.Af,this.i,this.Ce,this.qf,this.Kg,this.i,this.Cf,this.pf,this.xf,this.i,this.Pe,this.He,this.i,this.i,this.Qe,this.Je,this.Te,this.i,this.kf,this.Ge,this.Ve,this.i,
|
||||
this.Oe,this.De,this.Re,this.i,this.ue,this.Ie,this.i,this.i,this.i,this.Ke,this.Ue,this.i,this.Ae,this.Fe,this.i,this.i,this.i,this.Ee,this.Se,this.i,this.Me,this.zc,this.i,this.i,this.Ne,this.Bc,this.gf,this.i,this.jf,this.yc,this.Lf,this.i,this.Le,this.vc,this.ef,this.i,this.qe,this.Ac,this.i,this.i,this.i,this.Cc,this.hf,this.i,this.sg,this.xc,this.i,this.i,this.i,this.wc,this.ff,this.i];this.yd=[7,6,0,0,0,3,5,0,3,2,2,0,0,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,3,6,0,0,3,3,5,0,4,2,2,0,4,4,6,0,2,
|
||||
5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,6,6,0,0,0,3,5,0,3,2,2,0,3,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,6,6,0,0,0,3,5,0,4,2,2,0,5,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,0,6,0,0,3,3,3,0,2,0,2,0,4,4,4,0,2,5,0,0,4,4,4,0,2,4,2,0,0,4,0,0,2,6,2,0,3,3,3,0,2,2,2,0,4,4,4,0,2,5,0,0,4,4,4,0,2,4,2,0,4,4,4,0,2,6,0,0,3,3,5,0,2,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,2,6,0,0,3,3,5,0,2,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0]}C(N);e=N.prototype;
|
||||
e.reset=function(a){this.Q&&O(this);la(this);var b=this.xd;this.d=this.a[b]|this.a[b+1]<<8;this.Ma=!1;a&&(!0===this.Xb||null===this.Xb&&void 0===this.o.run)&&P(this)};
|
||||
e.G=function(a,b,c,d){a=!1;switch(c){case "run":this.o[c]=d;d.onclick=function(a){return function(){a.Q?O(a):P(a)}}(this);a=!0;break;case "A":case "X":case "Y":case "S":case "PC":case "C":case "Z":case "I":case "D":case "B":case "V":case "N":case "speed":this.o[c]=d;a=!0;break;case "setSpeed":this.o[c]=d,d.onclick=function(a){return function(){na(a,a.speed>=a.na?a.Za:a.speed+1,!0)}}(this),a=!0}return a};
|
||||
e.O=function(a,b){this.a=a;(this.lc=b)?s("unsupported CPU address buffer offset ("+this.lc+")"):this.I()};e.R=function(a,b){if(a&&!this.w){this.F=b;var c=M(b,"video");c&&(this.hb=function(a){return function(){oa(a)}}(c),this.ca=function(a){return function(){a.ca()}}(c));this.w=!0;this.reset(!0);this.update()}};function pa(a,b,c,d,f){0>qa(a.X,b,c,d,f)&&(a.cb>b&&(a.cb=b),a.eb<c&&(a.eb=c),a.X.push([b,c,d,f]))}
|
||||
function Q(a,b,c,d,f){0>qa(a.S,b,c,d,f)&&(a.Ga>b&&(a.Ga=b),a.Ha<c&&(a.Ha=c),a.S.push([b,c,d,f]))}function qa(a,b,c,d,f){for(var g=0;g<a.length;g++)if(a[g][0]==b&&a[g][1]==c&&a[g][2]==d&&a[g][3]==f)return g;return-1}function na(a,b,c){void 0!==b&&(a.speed=b,a.o.setSpeed&&(a.o.setSpeed.innerHTML=a.Rb[2<=b?0:b+1]),I(a,"running at "+a.Rb[b].toLowerCase()+" speed "+a.zd[b]),c&&a.ca());a.ka=0;a.cc=Date.now()||+new Date;ra(a)}e.hb=function(){};e.ca=function(){};
|
||||
function R(a,b,c,d){void 0!==a.o[b]&&(void 0===d&&(d=1),c="0000"+c.toString(16),a.o[b].innerHTML=c.slice(c.length-d).toUpperCase())}function sa(a){R(a,"A",a.e,2);R(a,"X",a.k,2);R(a,"Y",a.m,2);var b=ta(a);R(a,"C",b&a.Jc?1:0);R(a,"Z",b&a.Oc?1:0);R(a,"I",b&a.Lc?1:0);R(a,"D",b&a.Kc?1:0);R(a,"B",b&a.Ic?1:0);R(a,"V",b&a.Nc?1:0);R(a,"N",b&a.Mc?1:0);R(a,"S",a.n,4);R(a,"PC",a.d,4);a.o.speed&&a.V&&(a.o.speed.innerHTML=a.V.toFixed(1)+"Mhz")}
|
||||
function ra(a,b){var c=a.qb;c<a.ob&&(c=a.ob);c<a.nb&&(c=a.nb);var d=1;b&&a.speed>a.Za&&a.V&&(d=a.V);d>a.Pa&&a.speed<a.na&&(d=a.Pa);a.Nd=Math.round(1E3/a.qb);a.Ra=Math.floor(a.ta/c*d);a.kb=Math.floor(a.ta/a.qb*d);a.ec=Math.floor(a.ta/a.ob*d);a.dc=Math.floor(a.ta/a.nb*d);b||(a.ia=a.kb,a.sa=a.ec,a.ra=a.dc);a.mb=0}function ua(a){a.mb>=a.ta&&ra(a,!0);a.ua=0;a.Qd=Date.now()||+new Date}
|
||||
function va(a){var b=Date.now()||+new Date,c=a.Nd;a.ua&&(c=Math.round(c*a.ua/a.kb));c-=b-a.Qd;if(b-=a.cc)a.V=Math.round(a.ka/(100*b))/10,864E5<=b&&na(a);0>c?c=0:a.speed==a.ud?a.V<=a.Pa&&(c=0):a.speed==a.na&&(c=0);a.mb+=a.ua;return c}
|
||||
function P(a){if(ja(a,!0)){a.Q||(na(a),a.F&&a.F.start(),a.Q=!0,a.o.run&&(a.o.run.innerHTML="Halt"),a.ca());ua(a);try{do{a.step(a.Ra);var b=a.W-a.A;a.ka+=b;a.ua+=b;a.W=a.A=0;a.sa-=a.Ra;0>=a.sa&&(a.sa+=a.ec,a.hb());a.ra-=a.Ra;0>=a.ra&&(a.ra+=a.dc,sa(a));a.ia-=a.Ra;if(0>=a.ia){a.ia+=a.kb;break}}while(a.Q)}catch(c){O(a);a.update();ja(a,!1);K(a,c.message||c);return}setTimeout(function(a){return function(){P(a)}}(a),va(a))}else a.update(),a.F&&a.F.stop(a.cc,a.ka)}
|
||||
e.step=function(a){this.b=this.h=-1;this.W=this.A=a;do{a=this.a[this.d];this.d++;this.q[a].call(this);if(0<=this.b){if(this.b>=this.cb&&this.b<=this.eb)for(var b=this.b,c=this.d,d=0;d<this.X.length;d++)b>=this.X[d][0]&&b<=this.X[d][1]&&this.X[d][3].call(this.X[d][2],b,c);this.b=-1}else if(0<=this.h){if(this.h>=this.Ga&&this.h<=this.Ha)for(b=this.h,c=this.d,d=0;d<this.S.length;d++)b>=this.S[d][0]&&b<=this.S[d][1]&&this.S[d][3].call(this.S[d][2],b,c);this.h=-1}this.A-=this.yd[a]}while(0<this.A);return!0};
|
||||
function O(a){a.pa&&(a.ib=!0);a.W-=a.A;a.A=0;a.Q&&(a.Q=!1,a.o.run&&(a.o.run.innerHTML="Run"))}e.update=function(){this.hb();sa(this)};function wa(a){return a.Q?a.ka+a.W-a.A:0}e.M=function(a){return this.a[a]};e.K=function(a,b){this.a[a]=b};function ta(a){var b=a.c&256?1:0,b=b|(a.g&255?0:2),b=b|((a.r&255^a.v^a.r>>1)&128?64:0),b=b|(a.f&128?128:0);return a.t&60|b}
|
||||
function S(a,b,c){var d=a.c&256?1:0,f=(b&15)+(c&15)+d;10<=f&&(f=f+6&15|16);f+=(b&240)+(c&240);a.v=b^c;a.r=f;a.f=f&255;160<=f&&(f+=96);512<=f&&(f-=256);a.c=f;a.g=b+c+d&255;a.A--;return f&255}function T(a,b,c){var d=a.c&256?0:1,f=(b&15)-(c&15)-d;0>f&&(f=(f-6&15)-16);f+=(b&240)-(c&240);0>f&&(f-=96);a.f=a.g=(a.c=b-c-d)&255;a.v=b^c;a.r=a.c;a.c^=256;a.A--;return f&255}function la(a){a.e=0;a.k=0;a.m=0;a.n=256;a.t=0;a.f=0;a.g=0;a.v=0;a.r=0;a.c=0;a.d=0;a.b=-1;a.h=-1;a.V=0;a.ka=a.W=a.A=0}
|
||||
e.we=function(){this.d++;this.a[this.n--]=this.d>>8;this.n|=256;this.a[this.n--]=this.d&255;this.n|=256;this.t|=16;this.t=ta(this);this.a[this.n--]=this.t;this.n|=256;this.t&=239;this.b=65534;this.d=this.a[this.b]|this.a[this.b+1]<<8};e.Qf=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e|=this.a[this.b]};e.Sf=function(){this.b=this.a[this.d++];this.f=this.g=this.e|=this.a[this.b]};
|
||||
e.me=function(){this.h=this.a[this.d++];this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};e.Vf=function(){this.t=ta(this);this.a[this.n--]=this.t;this.n|=256};e.Pf=function(){this.b=this.d++;this.f=this.g=this.e|=this.a[this.b]};e.le=function(){this.c=this.e<<1;this.f=this.g=this.e=this.c&255};e.Mf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e|=this.a[this.b]};
|
||||
e.je=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};e.ve=function(){this.d+=(this.f&128?0:(this.A--,this.a[this.d]<<24>>24))+1};e.Rf=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.f=this.g=this.e|=this.a[this.b]};e.Tf=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e|=this.a[this.b]};
|
||||
e.ne=function(){this.h=this.a[this.d++]+this.k&255;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};e.ze=function(){this.c=0};e.Of=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.e|=this.a[this.b]};e.Nf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.e|=this.a[this.b]};e.ke=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};
|
||||
e.nf=function(){this.b=this.d++;this.a[this.n--]=this.d>>8;this.n|=256;this.a[this.n--]=this.d&255;this.n|=256;this.d=this.a[this.b]|this.a[this.b+1]<<8};e.fe=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e&=this.a[this.b]};e.se=function(){this.b=this.a[this.d++];this.g=this.e&this.a[this.b];this.f=this.f&127|this.a[this.b]&128;this.r=0;this.v=this.a[this.b]&64?128:0};e.he=function(){this.b=this.a[this.d++];this.f=this.g=this.e&=this.a[this.b]};
|
||||
e.ag=function(){this.h=this.a[this.d++];this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};e.Xf=function(){this.n=this.n+1&255|256;this.t=this.a[this.n];this.c=this.t&1?256:0;this.g=this.t&2?0:1;this.f=this.t&128;this.r=0;this.v=this.t&64?128:0};e.ee=function(){this.b=this.d++;this.f=this.g=this.e&=this.a[this.b]};
|
||||
e.$f=function(){this.c=this.c&65280|this.e;this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.e=this.c&255};e.re=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.g=this.e&this.a[this.b];this.f=this.f&127|this.a[this.b]&128;this.r=0;this.v=this.a[this.b]&64?128:0};e.be=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e&=this.a[this.b]};
|
||||
e.Yf=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};e.te=function(){this.d+=(this.f&128?(this.A--,this.a[this.d]<<24>>24):0)+1};e.ge=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.f=this.g=this.e&=this.a[this.b]};e.ie=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e&=this.a[this.b]};
|
||||
e.bg=function(){this.h=this.a[this.d++]+this.k&255;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};e.rg=function(){this.c=256};e.de=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.e&=this.a[this.b]};e.ce=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.e&=this.a[this.b]};
|
||||
e.Zf=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};e.hg=function(){this.n=this.n+1&255|256;this.t=this.a[this.n];this.c=this.t&1?256:0;this.g=this.t&2?0:1;this.f=this.t&128;this.r=0;this.v=this.t&64?128:0;this.n=this.n+2&255|256;this.d=this.a[this.n-1|256]|this.a[this.n]<<8};
|
||||
e.af=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e^=this.a[this.b]};e.cf=function(){this.b=this.a[this.d++];this.f=this.g=this.e^=this.a[this.b]};e.Jf=function(){this.h=this.a[this.d++];this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255};e.Uf=function(){this.a[this.n--]=this.e;this.n|=256};e.$e=function(){this.b=this.d++;this.f=this.g=this.e^=this.a[this.b]};
|
||||
e.If=function(){this.c=this.c&65279|(this.e&1?256:0);this.e=(this.c=this.c&65280|this.e>>1)&255;this.f=this.g=this.c&255};e.mf=function(){this.b=this.d;this.d=this.a[this.b]|this.a[this.b+1]<<8};e.Xe=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e^=this.a[this.b]};e.Gf=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255};
|
||||
e.xe=function(){this.d+=((this.r&255^this.v^this.r>>1)&128?0:(this.A--,this.a[this.d]<<24>>24))+1};e.bf=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.f=this.g=this.e^=this.a[this.b]};e.df=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e^=this.a[this.b]};e.Kf=function(){this.h=this.a[this.d++]+this.k&255;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255};
|
||||
e.Be=function(){this.t&=251};e.Ze=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.e^=this.a[this.b]};e.Ye=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.e^=this.a[this.b]};e.Hf=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255};
|
||||
e.ig=function(){this.n=this.n+2&255|256;this.d=(this.a[this.n-1|256]|this.a[this.n]<<8)+1};e.rc=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.Yd=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.e=S(this,this.e,this.a[this.b])};
|
||||
e.tc=function(){this.b=this.a[this.d++];this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.$d=function(){this.b=this.a[this.d++];this.e=S(this,this.e,this.a[this.b])};e.fg=function(){this.h=this.a[this.d++];this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};e.Wf=function(){this.n=this.n+1&255|256;this.f=this.g=this.e=this.a[this.n]};
|
||||
e.qc=function(){this.b=this.d++;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.Xd=function(){this.b=this.d++;this.e=S(this,this.e,this.a[this.b])};e.eg=function(){this.c=this.c&65280|this.e;this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.e=this.c&255};e.lf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.d=this.a[this.b]|this.a[this.b+1]<<8};
|
||||
e.nc=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.Ud=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=S(this,this.e,this.a[this.b])};e.cg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};
|
||||
e.ye=function(){this.d+=((this.r&255^this.v^this.r>>1)&128?(this.A--,this.a[this.d]<<24>>24):0)+1};e.sc=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.Zd=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.e=S(this,this.e,this.a[this.b])};
|
||||
e.uc=function(){this.b=this.a[this.d++]+this.k&255;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.ae=function(){this.b=this.a[this.d++]+this.k&255;this.e=S(this,this.e,this.a[this.b])};e.gg=function(){this.h=this.a[this.d++]+this.k&255;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};e.tg=function(){this.t|=4};
|
||||
e.pc=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.Wd=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.e=S(this,this.e,this.a[this.b])};e.oc=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};
|
||||
e.Vd=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.e=S(this,this.e,this.a[this.b])};e.dg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};e.xg=function(){this.h=this.a[this.d++]+this.k&255;this.h=this.a[this.h]|this.a[this.h+1]<<8;this.a[this.h]=this.e};e.Fg=function(){this.h=this.a[this.d++];this.a[this.h]=this.m};
|
||||
e.zg=function(){this.h=this.a[this.d++];this.a[this.h]=this.e};e.Cg=function(){this.h=this.a[this.d++];this.a[this.h]=this.k};e.We=function(){this.f=this.g=this.m=this.m-1&255};e.Lg=function(){this.f=this.g=this.e=this.k};e.Eg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.m};e.ug=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.e};e.Bg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.k};
|
||||
e.oe=function(){this.d+=(this.c&256?0:(this.A--,this.a[this.d]<<24>>24))+1};e.yg=function(){this.h=this.a[this.d++];this.h=(this.a[this.h]|this.a[this.h+1]<<8)+this.m;this.a[this.h]=this.e};e.Gg=function(){this.h=this.a[this.d++]+this.k&255;this.a[this.h]=this.m};e.Ag=function(){this.h=this.a[this.d++]+this.k&255;this.a[this.h]=this.e};e.Dg=function(){this.h=this.a[this.d++]+this.m&255;this.a[this.h]=this.k};e.Ng=function(){this.f=this.g=this.e=this.m};
|
||||
e.wg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.a[this.h]=this.e};e.Mg=function(){this.n=this.k|256};e.vg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.a[this.h]=this.e};e.Df=function(){this.b=this.d++;this.f=this.g=this.m=this.a[this.b]};e.sf=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e=this.a[this.b]};e.yf=function(){this.b=this.d++;this.f=this.g=this.k=this.a[this.b]};
|
||||
e.Ef=function(){this.b=this.a[this.d++];this.f=this.g=this.m=this.a[this.b]};e.uf=function(){this.b=this.a[this.d++];this.f=this.g=this.e=this.a[this.b]};e.zf=function(){this.b=this.a[this.d++];this.f=this.g=this.k=this.a[this.b]};e.Jg=function(){this.f=this.g=this.m=this.e};e.rf=function(){this.b=this.d++;this.f=this.g=this.e=this.a[this.b]};e.Ig=function(){this.f=this.g=this.k=this.e};e.Bf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.m=this.a[this.b]};
|
||||
e.of=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e=this.a[this.b]};e.wf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.k=this.a[this.b]};e.pe=function(){this.d+=(this.c&256?(this.A--,this.a[this.d]<<24>>24):0)+1};e.tf=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.f=this.g=this.e=this.a[this.b]};e.Ff=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.m=this.a[this.b]};
|
||||
e.vf=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e=this.a[this.b]};e.Af=function(){this.b=this.a[this.d++]+this.m&255;this.f=this.g=this.k=this.a[this.b]};e.Ce=function(){this.v=this.r=0};e.qf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.e=this.a[this.b]};e.Kg=function(){this.f=this.g=this.k=this.n&255};e.Cf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.m=this.a[this.b]};
|
||||
e.pf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.e=this.a[this.b]};e.xf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.k=this.a[this.b]};e.Pe=function(){this.b=this.d++;this.f=this.g=this.c=this.m-this.a[this.b];this.c^=256};e.He=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};
|
||||
e.Qe=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.m-this.a[this.b];this.c^=256};e.Je=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Te=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};e.kf=function(){this.f=this.g=this.m=this.m+1&255};e.Ge=function(){this.b=this.d++;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Ve=function(){this.f=this.g=this.k=this.k-1&255};
|
||||
e.Oe=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.m-this.a[this.b];this.c^=256};e.De=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Re=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};e.ue=function(){this.d+=(this.g&255?(this.A--,this.a[this.d]<<24>>24):0)+1};
|
||||
e.Ie=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Ke=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Ue=function(){this.h=this.a[this.d++]+this.k&255;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};
|
||||
e.Ae=function(){this.t&=-9;this.q[97]=this.rc;this.q[101]=this.tc;this.q[105]=this.qc;this.q[109]=this.nc;this.q[113]=this.sc;this.q[117]=this.uc;this.q[121]=this.pc;this.q[125]=this.oc;this.q[225]=this.zc;this.q[229]=this.Bc;this.q[233]=this.yc;this.q[237]=this.vc;this.q[241]=this.Ac;this.q[245]=this.Cc;this.q[249]=this.xc;this.q[253]=this.wc};e.Fe=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};
|
||||
e.Ee=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Se=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};e.Me=function(){this.b=this.d++;this.f=this.g=this.c=this.k-this.a[this.b];this.c^=256};
|
||||
e.zc=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.ng=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.e=T(this,this.e,this.a[this.b])};e.Ne=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.k-this.a[this.b];this.c^=256};
|
||||
e.Bc=function(){this.b=this.a[this.d++];this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.pg=function(){this.b=this.a[this.d++];this.e=T(this,this.e,this.a[this.b])};e.gf=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};e.jf=function(){this.f=this.g=this.k=this.k+1&255};
|
||||
e.yc=function(){this.b=this.d++;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.mg=function(){this.b=this.d++;this.e=T(this,this.e,this.a[this.b])};e.Lf=function(){};e.Le=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.k-this.a[this.b];this.c^=256};
|
||||
e.vc=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.jg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=T(this,this.e,this.a[this.b])};e.ef=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};e.qe=function(){this.d+=(this.g&255?0:(this.A--,this.a[this.d]<<24>>24))+1};
|
||||
e.Ac=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.og=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.e=T(this,this.e,this.a[this.b])};
|
||||
e.Cc=function(){this.b=this.a[this.d++]+this.k&255;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.qg=function(){this.b=this.a[this.d++]+this.k&255;this.e=T(this,this.e,this.a[this.b])};e.hf=function(){this.h=this.a[this.d++]+this.k&255;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};
|
||||
e.sg=function(){this.t|=8;this.q[97]=this.Yd;this.q[101]=this.$d;this.q[105]=this.Xd;this.q[109]=this.Ud;this.q[113]=this.Zd;this.q[117]=this.ae;this.q[121]=this.Wd;this.q[125]=this.Vd;this.q[225]=this.ng;this.q[229]=this.pg;this.q[233]=this.mg;this.q[237]=this.jg;this.q[241]=this.og;this.q[245]=this.qg;this.q[249]=this.lg;this.q[253]=this.kg};
|
||||
e.xc=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.lg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.e=T(this,this.e,this.a[this.b])};
|
||||
e.wc=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.kg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.e=T(this,this.e,this.a[this.b])};e.ff=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};
|
||||
e.Hg=function(){var a;a=this.a[this.d++];switch(a){case this.sd:I(this,"HALT");O(this);break;case this.td:a=this.d;for(var b="";a<this.a.length;){var c=this.a[a++];if(!c)break;b+=String.fromCharCode(c)}this.d=a;b=b.replace(/%A/g,p(this.e,2)).replace(/%X/g,p(this.k,2)).replace(/%Y/g,p(this.m,2));I(this,b);this.ia=0;this.W-=this.A;this.A=0;break;default:this.d-=2,I(this,"undefined opSim: "+p(a,2)+" at "+p(this.d,4)),O(this)}};
|
||||
e.i=function(){var a=this.a[--this.d];I(this,"undefined opcode: "+p(a,2)+" at "+p(this.d,4));O(this)};w(function(){for(var a=H(window.document,"c1pjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new N(d);G(d,c)}});
|
||||
function U(a){y.call(this,"C1PROM",a);this.T=this.a=null;this.fa=a.size;if(this.xa=a.image){a=this.xa;var b;b=this.xa;var c="",d=b.lastIndexOf(".");0<=d&&(c=b.substr(d+1).toLowerCase());b=c;"json"!=b&&"hex"!=b&&(a="http://"+window.location.host+"/api/v1/dump?file="+this.xa);r(a,!0,null,this,this.Ed)}}C(U);
|
||||
U.prototype.O=function(a,b,c,d){this.a=a;this.sb=b;a=c-b+1;this.fa||(this.fa=a);a!=this.fa?K(this,"computer-specified ROM size ("+p(a,4)+") does not match component-specified size ("+p(this.fa,4)+")"):(d&&(this.s=d,Q(d,b,c,this,this.K)),xa(this))};U.prototype.R=function(a){a&&!this.w&&(this.w=!0)};U.prototype.K=function(a,b){if(void 0!==b){var c=a-this.sb;this.a[this.sb+c]=this.T?this.T[c]:0}};
|
||||
U.prototype.Ed=function(a,b,c){if(c)I(this,"ROM load error ("+c+")");else{if("["==b[0])try{this.T=eval("("+b+")")}catch(d){I(this,"ROM data error: "+(d.message||d));return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.T=Array(a.length),b=0;b<a.length;b++)this.T[b]=parseInt(a[b],16);xa(this)}};
|
||||
function xa(a){if(!J(a))if(!a.xa)a.I();else if(a.T&&a.a){var b=a.T.length;if(b!=a.fa)K(a,"ROM image size ("+p(b,4)+") does not match component-specified size ("+p(a.fa,4)+")");else{for(var c=0;c<b;c++)a.a[a.sb+c]=a.T[c];a.I()}}}w(function(){for(var a=H(window.document,"c1pjs","rom"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new U(d);G(d,c)}});function ya(a){y.call(this,"C1PRAM",a)}C(ya);ya.prototype.O=function(a){this.a=a;this.I()};
|
||||
w(function(){for(var a=H(window.document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new ya(d);G(d,c)}});
|
||||
function za(a){y.call(this,"C1PKeyboard",a);this.w=!1;this.lb=a.model;this.Bb=8;this.bd=9;this.$c=10;this.Zc=13;this.ad=16;this.Yc=17;this.Vc=18;this.Wc=20;this.Cb=27;this.Xc=91;this.Sc=this.Bb;this.Tc=this.$c;this.Pc=this.Zc;this.wb=this.Cb;this.J=224;this.l=this.ad+this.J;this.Da=this.Yc+this.J;this.Xa=this.Vc+this.J;this.xb=this.Wc+this.J;this.vb=0+this.J;this.Qc=3;this.Rc=15;this.Ca=1;this.Ba=2;this.Aa=4;this.ma=8;this.za=64;this.Wa=this.Ba|this.Aa|this.za;this.Mb=0;this.qd=1;this.pd=2;this.rd=
|
||||
3;this.od=4;this.Rd=8192;this.Od=250;this.Pd=100;this.Md=300;this.ea=[];this.ea["break"]=this.vb;this.ea.esc=this.wb;this.ea["ctrl-c"]=this.Qc;this.ea["ctrl-o"]=this.Rc;this.j=[];this.j[49]=30464;this.j[33]=30464+this.l;this.j[50]=30208;this.j[34]=30208+this.l;this.j[51]=29952;this.j[35]=29952+this.l;this.j[52]=29696;this.j[36]=29696+this.l;this.j[53]=29440;this.j[37]=29440+this.l;this.j[54]=29184;this.j[38]=29184+this.l;this.j[55]=28928;this.j[39]=28928+this.l;this.j[56]=26368;this.j[40]=26368+this.l;
|
||||
this.j[57]=26112;this.j[41]=26112+this.l;this.j[48]=25856;this.j[58]=25600;this.j[42]=25600+this.l;this.j[45]=25344;this.j[61]=25344+this.l;this.j[46]=22272;this.j[62]=22272+this.l;this.j[108]=22016;this.j[76]=22016+this.l;this.j[92]=22016+this.l;this.j[111]=21760;this.j[79]=21760+this.l;this.j[this.Sc]=21760+this.l;this.j[this.Tc]=21504;this.j[this.Pc]=21248;this.j[119]=18176;this.j[87]=18176+this.l;this.j[101]=17920;this.j[69]=17920+this.l;this.j[114]=17664;this.j[82]=17664+this.l;this.j[116]=17408;
|
||||
this.j[84]=17408+this.l;this.j[121]=17152;this.j[89]=17152+this.l;this.j[117]=16896;this.j[85]=16896+this.l;this.j[105]=16640;this.j[73]=16640+this.l;this.j[115]=14080;this.j[83]=14080+this.l;this.j[100]=13824;this.j[68]=13824+this.l;this.j[102]=13568;this.j[70]=13568+this.l;this.j[103]=13312;this.j[71]=13312+this.l;this.j[104]=13056;this.j[72]=13056+this.l;this.j[106]=12800;this.j[74]=12800+this.l;this.j[107]=12544;this.j[75]=12544+this.l;this.j[91]=12544+this.l;this.j[120]=9984;this.j[88]=9984+
|
||||
this.l;this.j[99]=9728;this.j[67]=9728+this.l;this.j[118]=9472;this.j[86]=9472+this.l;this.j[98]=9216;this.j[66]=9216+this.l;this.j[110]=8960;this.j[78]=8960+this.l;this.j[94]=8960+this.l;this.j[109]=8704;this.j[77]=8704+this.l;this.j[93]=8704+this.l;this.j[44]=8448;this.j[60]=8448+this.l;this.j[113]=5888;this.j[81]=5888+this.l;this.j[97]=5632;this.j[65]=5632+this.l;this.j[122]=5376;this.j[90]=5376+this.l;this.j[32]=5120;this.j[47]=4864;this.j[63]=4864+this.l;this.j[59]=4608;this.j[43]=4608+this.l;
|
||||
this.j[112]=4352;this.j[80]=4352+this.l;this.j[64]=4352+this.l;this.j[this.Da]=1536;this.j[this.wb]=1280;this.j[this.l]=512;this.j[this.Xa]=256;this.j[this.xb]=0;this.reset()}C(za);e=za.prototype;e.reset=function(){this.ya(this.lb);this.u=this.Ca;this.Tb=0;this.D=[this.Ca,0,0,0,0,0,0,0];this.$a=[];if(this.P)for(var a in this.P)isNaN(a)||this.P[a]&&clearTimeout(this.P[a]);this.P=[];this.Dc=this.Z=0;this.Ub=-1;this.Sb=this.D;this.fc=this.pb=0;this.ba=""};
|
||||
e.G=function(a,b,c,d){if(void 0===this.o[c])switch(c){case "keyDown":return this.o[c]=d,d.onkeydown=function(a){return function(b){return Aa(a,b,!0)}}(this),!0;case "keyPress":return this.o[c]=d,d.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.ba="";a.u&a.ma?a.u&=~a.ma:c=!V(a,b);return c}}(this),!0;case "keyUp":return this.o[c]=d,d.onkeyup=function(a){return function(b){return Aa(a,b,!1)}}(this),!0;case "break":return this.o[c]=d,d.onclick=function(a){return function(){a.F&&
|
||||
a.F.reset(!0)}}(this),!0;default:if(void 0!==this.ea[c])return this.o[c]=d,d.onclick=function(a,b,c){return function(){a.s&&a.s.ca();return!V(a,c)}}(this,c,this.ea[c]),!0}return!1};e.O=function(a,b,c,d){this.a=a;this.kc=b;this.Ad=c-b+1;this.Td=this.kc+this.Ad;d&&(this.s=d,Q(d,b,c,this,this.K));this.I()};e.ya=function(a){this.va=a;this.gb=255;600!=this.va&&(this.gb=0,I(this,"updated keyboard model: "+this.va))};e.R=function(a,b){a&&!this.w&&(this.w=!0,this.F=b)};
|
||||
e.I=function(){this.Zb=(this.Id=t("iOS"))||t("Android");y.prototype.I.call(this)};function Ba(a,b){var c=b?a.Pd:a.Od;a.s&&a.s.V&&(c/=a.s.V);return c}function Ca(a,b){!a.Z||void 0!==b&&b==a.Z||(clearTimeout(a.P[a.Z]),W(a,a.Z,!1,a.od))}function X(a,b,c){a.ba=b;Da(a,c||a.Md)}function Da(a,b){if(0<a.ba.length){var c=a.ba.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.ba=a.ba.substr(1);V(a,c)}0<a.ba.length&&setTimeout(function(a){return function(){Da(a,b)}}(a),b)}
|
||||
function Aa(a,b,c){var d,f=!c;b=b.keyCode;c&&(a.Dc=b);b==a.l-a.J?(a.u&=~a.Aa,c&&(a.u|=a.Aa),b+=a.J,f=!1):b==a.Xa-a.J?(a.u&=~a.Ba,c&&(a.u|=a.Ba),b+=a.J,f=!1):b==a.Da-a.J?(a.u&=~a.za,c&&(a.u|=a.za),b+=a.J,f=!1):b==a.xb-a.J?(c=!c,a.u&=~a.Ca,c&&(a.u|=a.Ca),b+=a.J,f=!1):b==a.Xc?(a.u&=~a.ma,c&&(a.u|=a.ma),f=!1,d=!0):d=b==a.bd?f=!1:b==a.Cb||b==a.Bb?c?!V(a,b):!1:!0;f&&(a.u&=~a.ma,a.Zb||b!=a.Dc||Ca(a));void 0===d&&(d=!W(a,b,c,a.pd));return d}
|
||||
function V(a,b){var c=!1;b==a.vb?a.F&&(a.F.reset(!0),c=!0):(a.Zb&&65<=b&&90>=b&&(b+=32),Ca(a,b),W(a,b,!0,a.Mb)&&(a.s.speed==a.s.na?W(a,b,!1,a.qd):(c=!1,a.P[b]&&(clearTimeout(a.P[b]),c=!0),c=Ba(a,c),a.P[a.Z=b]=setTimeout(function(a){return function(){W(a,b,!1,a.rd)}}(a),c)),c=!0));return c}
|
||||
function W(a,b,c,d){var f=!1;c||(a.P[b]=null,a.Z==b&&(a.Z=0));var g=0,h=a.j[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.Da),h=a.j[b]);void 0!==h&&(b=h>>12,f=h>>8&15,g||(g=h&255),c?(a.D[b]|=1<<f,a.D[0]=g==a.Da?a.D[0]|a.za:g==a.l?a.D[0]|a.Aa:g==a.Xa?a.D[0]|a.Ba:a.D[0]&~a.Wa):(a.D[b]&=~(1<<f),a.D[0]&=~a.Wa,a.D[0]|=a.u&a.Wa),c=d==a.Mb&&!a.$a.length,a.$a.push(a.D.slice()),a.Va(c),f=!0);return f}e.M=function(){};e.K=function(a){var b=this.s.M(a);this.Tb=b^this.gb;this.pb++;this.Va(!1,a,b)};
|
||||
e.Va=function(a,b){var c=wa(this.s);if(!a)if(this.s.speed==this.s.na)a=void 0!==b&&32<=this.pb;else{var d=c-this.fc;a=0>d||d>=this.Rd}a&&(d=this.$a.shift(),void 0!==d&&(this.Sb=d),this.pb=0,this.fc=c);for(d=c=0;8>d;d++)this.Tb&1<<d&&(c|=this.Sb[d]);c^=this.gb;if(void 0!==b)this.a[b]=c;else if(b=this.kc,c!=this.Ub)for(d=b;d<this.Td;d++)this.a[d]=c;this.Ub=c};w(function(){for(var a=H(window.document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new za(d);G(d,c)}});
|
||||
function Ea(a,b,c,d){y.call(this,"C1PVideo",a);this.lb=a.model;this.gc=a.charCols;this.hc=a.charRows;this.Fd=a.screenWidth;this.Gd=a.screenHeight;this.Ja=a.charWidth;this.Ka=a.charHeight;Fa(this);this.La=b;this.Dd=c;this.qa=d;this.oa=56832}C(Ea);e=Ea.prototype;e.reset=function(a){this.ya(this.lb);if(this.a)for(var b=this.Sa;b<this.tb;b++)this.a[b]=a?Math.floor(256*Math.random()):32};
|
||||
e.G=function(a,b,c,d){switch(c){case "refresh":return this.o[c]=d,d.onclick=function(a){return function(){Ga(a);oa(a)}}(this),!0}return!1};e.O=function(a,b,c,d){this.a=a;this.Sa=b;this.Cd=c-b+1;this.tb=this.Sa+this.Cd;d&&(this.s=d,void 0!==this.oa&&(pa(d,this.oa,this.oa,this,this.M),Q(d,this.oa,this.oa,this,this.K)));this.reset(!0)};
|
||||
function Fa(a,b,c,d,f){a.Qa=void 0!==b?b:a.gc;a.Sd=void 0!==c?c:a.hc;a.ga=a.Qa*a.Sd;a.tb=a.Sa+a.ga;a.$b=void 0!==d?d:0;a.ic=void 0!==f?f:c;a.Vb=Math.floor(a.Fd/a.Qa);a.Wb=Math.floor(a.Gd/a.ic)}e.ca=function(){this.La.focus()};e.ya=function(a){this.va=a;600==this.va?(Fa(this,this.gc,this.hc,4,24),1024==this.ga&&this.s&&(this.Fa=this.tb+this.ga-1,Q(this.s,this.Fa,this.Fa,this,this.Hc))):(I(this,"updated video model: "+this.va),Fa(this,64,32));Ga(this);oa(this)};
|
||||
e.R=function(a,b){if(a&&!this.w&&J(this)){if(this.w=!0,this.B=M(b,"keyboard"))this.B.G("input","canvas","keyDown",this.La),this.B.G("input","canvas","keyPress",this.La),this.B.G("input","canvas","keyUp",this.La)}else!a&&this.w&&(this.w=!1)};e.I=function(){this.Ja||(this.Ja=Math.floor(this.qa.width/16));this.Ka||(this.Ka=Math.floor(this.qa.height/16));y.prototype.I.call(this)};e.M=function(a){var b=this.s.M(a);this.s.K(a,b&127|(Math.floor(wa(this.s)/8333)&1?128:0))};e.K=function(){};
|
||||
e.Hc=function(a,b){if(void 0!==b){this.ya(540);this.B&&this.B.ya(542);var c=this.s,d=c.S,f=[],g=qa(d,this.Fa,this.Fa,this,this.Hc);if(0<=g){f.push(d[g][0]);f.push(d[g][1]);d.splice(g,1);for(var h=65536,l=0,g=0;g<d.length;g++)h>d[g][0]&&(h=d[g][0]),l<d[g][1]&&(l=d[g][1]);f.push(h);f.push(l)}4==f.length&&(c.Ga=f[2],c.Ha=f[3])}};function Ga(a){a.ab=Array(a.ga);for(var b=0;b<=a.ga;b++)a.ab[b]=-1}
|
||||
function oa(a){var b=0;if(a.w)for(;b<a.ga;){var c=a.a[a.Sa+b];if(a.ab[b]!=c){var d=Math.floor(b/a.Qa);if(d>=a.$b&&(d-=a.$b,d<a.ic)){var f=c*a.Ja;a.Dd.drawImage(a.qa,f%a.qa.width,Math.floor(f/a.qa.width)*a.Ka,a.Ja,a.Ka,b%a.Qa*a.Vb,d*a.Wb,a.Vb,a.Wb)}a.ab[b]=c}b++}}
|
||||
w(function(){for(var a=H(window.document,"c1pjs","video"),b=0;b<a.length;b++){var c=a[b],d=F(c),f=window.document.createElement("canvas");if(void 0===f){c.innerHTML="<br/>Missing <canvas> support; try a new web browser.";break}f.setAttribute("class","c1pjs-canvas");f.setAttribute("width",d.screenWidth);f.setAttribute("height",d.screenHeight);f.setAttribute("contenteditable","true");f.setAttribute("autocapitalize","off");f.setAttribute("autocorrect","off");f.style.backgroundColor=d.screenColor;
|
||||
f.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(f.style.height=(c.clientWidth*d.screenHeight/d.screenWidth|0)+"px",c.onresize=function(a,b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,f,d.screenWidth,d.screenHeight));c.appendChild(f);var g=new Image,h=f.getContext("2d"),f=new Ea(d,f,h,g);g.onload=function(a){return function(){a.I()}}(f,d.charSet);g.src=d.charSet;G(f,c)}});
|
||||
function Ha(a){y.call(this,"C1PSerialPort",a);this.w=!1;this.Yb=a.demo;this.wd=0;this.vd=1;this.reset()}C(Ha);e=Ha.prototype;e.reset=function(){2!=this.Y&&(this.Ia=this.fb=0,this.la='10 PRINT "HELLO OSI #'+ea(this)+'"\n',this.Y=this.Oa=0)};e.start=function(){this.B&&this.Yb&&(X(this.B," C\n\n",3E3),setTimeout(function(a){return function(){a.Y=1;X(a.B,"LOAD\n")}}(this),12E3));this.Yb=!1};
|
||||
e.G=function(a,b,c,d){switch(c){case "listSerial":return this.o[c]=d,!0;case "loadSerial":return this.o[c]=d,d.onclick=function(a){return function(){a.o.listSerial&&r(a.o.listSerial.value,!0,null,a,a.Kd)}}(this),!0}return!1};e.O=function(a,b,c,d){this.a=a;this.rb=b;this.Bd=c-b+1;this.mc=this.rb+this.Bd;if(this.s=d)pa(d,b,c,this,this.M),Q(d,b,c,this,this.K);this.I()};e.R=function(a,b){a&&!this.w&&(this.w=!0,this.F=b,this.B=M(b,"keyboard"))};
|
||||
e.Kd=function(a,b,c){b?(this.la=b,this.Y=this.Oa=0,this.F&&this.B&&this.s.Q?(I(this,"auto-loading "+a),this.s.ca(),"."!=this.la.charAt(0)?(this.Y=1,X(this.B,"NEW\nLOAD\n")):(this.Y=2,this.F.reset(!0),X(this.B,"ML"))):I(this,a+" ready to load")):I(this,a+" load error ("+c+")")};e.M=function(a,b){void 0!==b&&(a&1?Ia(this):this.la&&!this.Oa&&Ia(this))};e.K=function(){};
|
||||
function Ia(a){if(void 0!==a.la){a.fb=0;a.Ia=0;if(a.Oa<a.la.length){var b=a.la.charCodeAt(a.Oa++);10==b&&(b=13);a.fb=b;a.Ia=1}else 1==a.Y&&a.B&&X(a.B," \nRUN\n"),a.Y=0;a.Va()}}e.Va=function(){var a;for(a=this.rb+0;a<this.mc;a+=2)this.a[a]=this.Ia?this.vd:this.wd;for(a=this.rb+1;a<this.mc;a+=2)this.a[a]=this.Ia?this.fb:0};w(function(){for(var a=H(window.document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Ha(d);G(d,c)}});
|
||||
function Ja(a){y.call(this,"C1PDiskController",a);this.w=!1;this.ld=this.Kb=0;this.Hb=1;this.md=this.Lb=2;this.Ib=3;this.yb=128;this.zb=64;this.da=4;this.ed=1;this.Eb=2;this.dd=4;this.gd=8;this.fd=16;this.Fb=32;this.Db=64;this.Ya=128;this.jd=4;this.Gb=8;this.hd=32;this.nd=this.kd=16;this.Jb=17;this.Ab=3;this.Pb=1;this.Qb=2;this.Ob=4;this.Nb=8;this.Uc=0;this.cd=40;this.reset(!0)}C(Ja);e=Ja.prototype;
|
||||
e.reset=function(a){Ka(this);this.C=-1;a&&(this.L=[],this.L[0]={Qg:this.Uc,jc:this.cd,Hd:!0,ja:20,U:0,ha:-1,Ea:[]})};
|
||||
function Ka(a){a.Ec={p:a.Db,N:function(){},update:function(a){return function(c){void 0!==c&&(this.p=c);a.Ta.p&a.da||Y(a,a.ld,this)}}(a)};a.$={p:255,N:function(){this.update()},update:function(a){return function(c){void 0===c?c=a.$.p:La(a,c,a.wa.p);c=c|a.Ya|a.Fb|a.gd|a.dd|a.Eb|a.fd;c&=~a.ed;if(0<=a.C&&a.L[a.C].Ea.length){var d=a.L[a.C];d.Hd&&(c&=~a.Fb);d.U||(c&=~a.Eb);10>=--d.ja&&(0<d.ja?(c&=~a.Ya,Ma(a)):(d.ja=100,0<=a.C&&(a.L[a.C].ha=0,Na(a))))}this.p=c;a.Ta.p&a.da&&Y(a,a.Kb,this)}}(a)};a.Ta={p:0,
|
||||
N:function(){},update:function(a){return function(c){void 0!==c&&(this.p=c&~(a.yb|a.zb));Y(a,a.Hb,this);a.$.update();a.Ec.update()}}(a)};a.Fc={p:255,N:function(){},update:function(a){return function(c){void 0!==c&&(this.p=c);a.Ua.p&a.da||Y(a,a.md,this)}}(a)};a.wa={p:255,N:function(){},update:function(a){return function(c){void 0===c?c=a.wa.p:La(a,a.$.p,c);if(0<=a.C&&a.C<a.L.length){var d=a.L[a.C];d.Ea.length&&a.wa.p&a.Gb&&!(c&a.Gb)&&(c&a.jd?d.U--:d.U++,d.U>=d.jc&&(d.U=d.jc),0>d.U&&(d.U=0),d.ja=20,
|
||||
a.$.update(a.$.p|a.Ya),Ma(a))}this.p=c;a.Ua.p&a.da&&Y(a,a.Lb,this)}}(a)};a.Ua={p:0,N:function(){},update:function(a){return function(c){void 0!==c&&(this.p=c&~(a.yb|a.zb));Y(a,a.Ib,this);a.wa.update();a.Fc.update()}}(a)};a.Og={p:0,N:function(){},update:function(a){return function(c){void 0!==c&&((c&a.Ab)==a.Ab&&(a.aa.p=a.Qb|a.Ob|a.Nb),this.p=c);a.aa.update()}}(a)};a.aa={p:a.Qb|a.Ob|a.Nb,N:function(){},update:function(a){return function(c){void 0===c&&(c=a.aa.p);c&=~a.Pb;0<=a.C&&0<=a.L[a.C].ha&&(c|=
|
||||
a.Pb);this.p=c;Y(a,a.nd,this)}}(a)};a.ub={p:0,N:function(a){return function(){Na(a)}}(a),update:function(a){return function(c){void 0!==c&&(this.p=c);Y(a,a.Jb,this)}}(a)};a.Pg={p:0,N:function(){},update:function(){return function(){}}(a)}}
|
||||
e.G=function(a,b,c,d){switch(c){case "listDisk":return this.o[c]=d,!0;case "loadDisk":return this.o[c]=d,d.onclick=function(a){return function(){if(a.o.listDisk){var b=a.o.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);I(a,"loading "+aa(b)+"...");r(c,!0,null,a,a.Jd)}}}(this),!0}return!1};e.O=function(a,b,c,d){this.a=a;this.bb=b;if(this.s=d)pa(d,b,c,this,this.M),Q(d,b,c,this,this.K);this.I()};e.R=function(a){a&&!this.w&&(this.w=!0)};
|
||||
e.Jd=function(a,b,c){if(c)I(this,"disk load error ("+c+")");else{c=[];I(this,"mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)I(this,"data error: "+d[0]);else if(this.L[0]){for(b=0;b<d.length;b++){var f,g=d[b],h=g.sectors;if(void 0===(f=g.trackNum)||void 0===h)throw"track "+b+" missing data";f!=b&&s("track "+f+" out of order (expected "+b+")");c=[];var l,m,k;if(f){Oa(c,g,"trackSig");Pa(c,g);Z(c,g,"trackType");for(var n=0;n<h.length;n++){l=
|
||||
h[n];m=l.sectorData;Z(c,l,"sectorSig");Z(c,l,"sectorNum");Z(c,l,"sectorPages");for(k=0;k<m.length;k++)c.push(m[k]);Oa(c,l,"sectorEndSig")}}else for(l=h[0],m=l.sectorData,Z(c,g,"trackLoad",2),Z(c,l,"sectorPages"),k=0;k<m.length;k++)c.push(m[k]);d[f].Gc=c}this.L[0].Ea=d;I(this,"mount of "+a+" complete")}else I(this,"no available drives")}else I(this,"no tracks: "+a);else I(this,"no data: "+a)}catch(q){I(this,"disk data error: "+(q.message||q))}}};
|
||||
function Pa(a,b){var c=b.trackNum;if(void 0===c)throw"missing bcd value: trackNum";a.push(Math.floor(c/10)<<4|c%10)}function Z(a,b,c,d){b=b[c];if(void 0===b)throw"missing binary value: "+c;2==d&&a.push(b>>8&255);a.push(b&255)}function Oa(a,b,c){b=b[c];if(void 0===b)throw"missing signature: "+c;for(c=0;c<b.length;c++)a.push(b.charCodeAt(c))}
|
||||
function Qa(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case a.Kb:a=a.Ta.p&a.da?a.$:a.Ec;break;case a.Hb:a=a.Ta;break;case a.Lb:a=a.Ua.p&a.da?a.wa:a.Fc;break;case a.Ib:a=a.Ua;break;case a.kd:a=c?a.Og:a.aa;break;case a.Jb:a=a.ub;break;default:a=a.Pg}return a}e.M=function(a,b){void 0!==b&&Qa(this,a-this.bb,!1).N()};e.K=function(a,b){if(void 0!==b){var c=this.s.M(a);Qa(this,a-this.bb,!0).update(c)}};
|
||||
function La(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&a.hd||(d|=2),a.$.p&a.Db||(d|=1));a.C!=d&&(a.C=d,a.aa.update())}function Ma(a){0<=a.C&&(a.L[a.C].ha=-1,a.ub.update(255),a.aa.update())}function Na(a){var b=null;if(0<=a.C){var b=a.L[a.C],c=b.Ea[b.U];void 0!==c&&(0<=b.ha&&b.ha<c.Gc.length?(b.ja=100,b=c.Gc[b.ha++],a.ub.update(b),a.aa.update()):(b.ja=10,Ma(a)))}}function Y(a,b,c){a.s.K(b+a.bb,c.p)}
|
||||
w(function(){for(var a=H(window.document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Ja(d);G(d,c)}});function $(a,b){y.call(this,"C1PComputer",a);this.H=b}C($);$.prototype.reset=function(a){var b=null,c;for(c in this.H)for(var d=0;d<this.H[c].length;d++){var f=this.H[c][d];f&&f.reset&&(f.reset(),"cpu"==c&&(b=f))}b&&(b.update(),a&&P(b))};$.prototype.start=function(){for(var a in this.H)if("cpu"!=a)for(var b=0;b<this.H[a].length;b++){var c=this.H[a][b];c&&c.start&&c.start()}};
|
||||
$.prototype.stop=function(a,b){for(var c in this.H)if("cpu"!=c)for(var d=0;d<this.H[c].length;d++){var f=this.H[c][d];f&&f.stop&&f.stop(a,b)}};$.prototype.G=function(a,b,c,d){switch(c){case "reset":return this.o[c]=d,d.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function M(a,b){return a.H[b]?a.H[b][0]:null}
|
||||
function Ra(a){var b=null,c;for(c in a.H)for(var d=0;d<a.H[c].length;d++){var f=a.H[c][d];if(f){if(!J(f)){J(f,function(a){return function(){Ra(a)}}(a));return}"cpu"==c?b=f:f.R&&f.R(!0,a)}}a.I();I(a,"C1Pjs v1.15.4\nCopyright \u00a9 2012-2014 Jeff Parsons <Jeff@pcjs.org>");b&&b.R(!0,a)}
|
||||
w(function(){for(var a=H(window.document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=F(c),f,g={},h,l=0,m=0,k=0;k<d.modules.length;k++){var n=d.modules[k];if(!k){if("cpu"!=n.type)break;l=n.start;m=n.end;h=Array(m+1-l);for(f=l;f<h.length;f++)h[f]=0}if(f=E(n.refID,d.id)){var q=n.type;void 0===g[q]&&(g[q]=[]);g[q].push(f);f.O&&void 0!==n.start&&f.O(h,n.start,n.end,g.cpu[0])}else{s('no component for <module refid="'+n.refID+'">');return}}if(void 0===h){s('<module type="cpu"> definition must appear first in the <computer> specification');
|
||||
break}if(f=E("debugger",d.id))g["debugger"]=[f],f.O&&f.O(h,l,m,g.cpu[0]);(f=E("panel",d.id))&&(g.panel=[f]);d=new $(d,g);G(d,c);Ra(d)}});function Sa(a,b,c,d){var f=r(a);if(f[0])throw Error(f[1]);return Ta(f[1],a,b,c,d)}
|
||||
function Ta(a,b,c,d,f){var g=null;if(a){if(f)for(var h=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g;g=h.exec(a);){var l=g[2],m=r(l),k=m[1];if(m[0]||!k)throw c="unable to resolve XML reference: "+g[0]+" ("+m[0]+")",Error(c);if(m=g[3]){var n=k.match(new RegExp("<"+g[1]+"[^>]*>"));if(n){for(var l=n[0],q,ma=/( [a-z]+=)(['"])(.*?)\2/g;q=ma.exec(m);)l=0>l.indexOf(q[1])?l.replace(">",q[0]+">"):l.replace(new RegExp(q[1]+"(['\"])(.*?)\\1"),q[0]);n[0]!=l&&(k=k.replace(n[0],l))}else throw c="missing <"+g[1]+"> in "+l,
|
||||
Error(c);}k=k.replace(/<\?xml[^>]*>[\r\n]*/,"");a=a.replace(g[0],k);h.lastIndex=0}c&&(b&&0>b.indexOf("/")&&(b=window.location.pathname+b),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(b?" url=$2"+b+"$2":"")));if(0===a.indexOf("<"))window.ActiveXObject||"ActiveXObject"in window?(f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*\]>\s*/g,"")),g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml");else throw Error("unrecognized XML: "+
|
||||
(255<a.length?a.substr(0,255)+"...":a));}return[a,g]}
|
||||
window.embedC1P=function(a,b,c){var d=c,f=c="",g=null;try{if(g=window.document.getElementById(a)){d||(d="/versions/c1pjs/1.15.4/components.xsl");var h="<"==b.substr(0,1)?Ta(b,null,a,void 0,!1):Sa(b,a,void 0,!0);c=h[0];var l=h[1];if(l){var h=Sa(d),m=h[1];if(m)if(window.ActiveXObject||"ActiveXObject"in window){var k=l.transformNode(m);k?g.outerHTML=k:f="transformNodeToObject failed"}else if(window.document.implementation&&window.document.implementation.createDocument){var n=new XSLTProcessor;n.importStylesheet(m);
|
||||
var q=n.transformToFragment(l,window.document);q?g.parentNode.replaceChild(q,g):f="transformToFragment failed"}else f="unable to transform XML: unsupported browser";else f="failed to load XSL file: "+d}else f="failed to load XML file: "+b}else f="failed to find machine element: "+a}catch(ma){f=ma.message}f&&g&&(a=H(g,"machine-warning"),a[0]&&(a[0].innerHTML="Error: "+ca(f)));return f||c};window.enableEvents=function(a){da=a};window.sendEvent=function(a){u[a]&&x(u[a])};})();//@ sourceMappingURL=/tmp/c1pjs/1.15.4/c1p.map
|
||||
257
versions/c1pjs/1.15.4/common.css
Normal file
257
versions/c1pjs/1.15.4/common.css
Normal file
|
|
@ -0,0 +1,257 @@
|
|||
@CHARSET "UTF-8";
|
||||
/**
|
||||
@author Jeff Parsons (@jeffpar)
|
||||
@website http://www.pcjs.org/
|
||||
@created 2013-05-05
|
||||
@modified 2014-02-23
|
||||
@license http://www.gnu.org/licenses/gpl.html
|
||||
*/
|
||||
body {
|
||||
margin: 0;
|
||||
background: #1d1d1d;
|
||||
}
|
||||
h1, h2 {
|
||||
margin-top: 0;
|
||||
color: #cccccc;
|
||||
}
|
||||
h1, h2, h3, h4 {
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
h4 a {
|
||||
color: #cccccc !important;
|
||||
}
|
||||
p {
|
||||
line-height: 1.5em;
|
||||
}
|
||||
a img {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
pre, code {
|
||||
color: #000000;
|
||||
background-color: #cccccc;
|
||||
font-family: Monaco, Consolas, "Lucida Console", monospace;
|
||||
font-size: 12px;
|
||||
}
|
||||
pre {
|
||||
margin: 1em 2em;
|
||||
padding: 1em;
|
||||
border-radius: 5px;
|
||||
overflow: auto;
|
||||
}
|
||||
code {
|
||||
padding: 1px;
|
||||
}
|
||||
pre a, code a {
|
||||
color: #006400 !important;
|
||||
}
|
||||
.common {
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
color: #cccccc;
|
||||
}
|
||||
.common a {
|
||||
|
||||
color: #7fc07f;
|
||||
text-decoration: none;
|
||||
}
|
||||
.common hr {
|
||||
border-color: #808080;
|
||||
}
|
||||
.common a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.common, .machine {
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif;
|
||||
font-size: 15px;
|
||||
}
|
||||
.machine {
|
||||
margin: 15px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.c1pjs {
|
||||
overflow: visible;
|
||||
}
|
||||
.machine-placeholder {
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
}
|
||||
.common-top {
|
||||
background: #1d1d1d;
|
||||
font-size: small;
|
||||
}
|
||||
.common-top-left {
|
||||
float: left;
|
||||
width: 60%;
|
||||
}
|
||||
.common-top-left ul {
|
||||
line-height: 1.5em;
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 1em 1em 1em 9px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.common-top-left ul li {
|
||||
display: block;
|
||||
float: left;
|
||||
}
|
||||
.common-top-left ul li a {
|
||||
border-right: 1px solid #6f6f6f;
|
||||
padding: 2px 6px 2px 6px;
|
||||
}
|
||||
.common-top-left ul li:last-child a {
|
||||
border-right: none;
|
||||
}
|
||||
.common-top-right {
|
||||
float: right;
|
||||
width: 40%;
|
||||
}
|
||||
.common-top-right p {
|
||||
float: right;
|
||||
margin: 0;
|
||||
padding: 1em;
|
||||
}
|
||||
.common-middle {
|
||||
clear: both;
|
||||
padding: 1px 1em 1px 1em;
|
||||
background: #303030;
|
||||
}
|
||||
.common-sidebar {
|
||||
float: left;
|
||||
font-size: small;
|
||||
width: 140px;
|
||||
padding-bottom: 20px;
|
||||
overflow: hidden;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.common-list {
|
||||
list-style-type: none;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
.common-list li {
|
||||
|
||||
padding-bottom: 7px;
|
||||
}
|
||||
.common-list-data {
|
||||
list-style-type: none;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
.common-list-data li {
|
||||
line-height: 1.5em;
|
||||
}
|
||||
.common-list-data-items, .common-list-data-subitems {
|
||||
font-size: x-small;
|
||||
list-style-type: none;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding-left: 2em;
|
||||
}
|
||||
.common-list-data-items li, .common-list-data-subitems li {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.common-main {
|
||||
margin-left: 150px;
|
||||
|
||||
}
|
||||
.common-image-gallery {
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
}
|
||||
.common-image-gallery:after {
|
||||
content: '';
|
||||
display: block;
|
||||
}
|
||||
.common-image-frame {
|
||||
display: inline-block;
|
||||
margin: 8px;
|
||||
text-align: center;
|
||||
}
|
||||
.common-image-link {
|
||||
padding: 5px;
|
||||
border: 1px solid black;
|
||||
border-radius: 5px;
|
||||
background-color: #FAEBD7;
|
||||
}
|
||||
.common-image-label {
|
||||
font-size: x-small;
|
||||
}
|
||||
.common-bottom {
|
||||
clear: both;
|
||||
padding-top: 1em;
|
||||
}
|
||||
.common-bottom:after {
|
||||
content: '';
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
.common-reference {
|
||||
float: left;
|
||||
font-size: x-small;
|
||||
}
|
||||
.common-reference a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.common-copyright {
|
||||
float: right;
|
||||
font-size: x-small;
|
||||
}
|
||||
.common-copyright a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.md-list {
|
||||
}
|
||||
.md-list li {
|
||||
line-height: 1.5em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.md-list li p {
|
||||
padding-left: 2em;
|
||||
}
|
||||
.md-list-compact {
|
||||
}
|
||||
.md-list-compact li {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.md-list-none {
|
||||
list-style-type: none;
|
||||
padding-left: 2em;
|
||||
}
|
||||
.md-list-none li {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
@media screen and (max-width: 900px) {
|
||||
|
||||
.common-sidebar {
|
||||
width: 100%;
|
||||
}
|
||||
.common-list {
|
||||
padding-left: 0;
|
||||
}
|
||||
.common-list-data {
|
||||
padding-left: 0;
|
||||
}
|
||||
.common-sidebar h4, .common-list li, .common-list-data li, .common-list-data-items li {
|
||||
width: 130px;
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
vertical-align: top;
|
||||
padding-right: 1em;
|
||||
margin-top: 0;
|
||||
}
|
||||
.common-list-data-subitems {
|
||||
display: none;
|
||||
}
|
||||
.common-main {
|
||||
clear: both;
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
.md-list-none {
|
||||
padding-left: 1em;
|
||||
}
|
||||
}
|
||||
46
versions/c1pjs/1.15.4/common.xsl
Normal file
46
versions/c1pjs/1.15.4/common.xsl
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||
<!DOCTYPE xsl:stylesheet [
|
||||
<!ENTITY nbsp " "> <!ENTITY ne "≠"> <!ENTITY le "≤"> <!ENTITY ge "≥">
|
||||
<!ENTITY times "×"> <!ENTITY sdot "⋅"> <!ENTITY divide "÷">
|
||||
<!ENTITY copy "©"> <!ENTITY Sigma "Σ"> <!ENTITY sigma "σ"> <!ENTITY sum "∑"> <!ENTITY lbrace "{">
|
||||
]>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<xsl:template name="commonStyles">
|
||||
<meta charset="utf-8"/>
|
||||
<link rel="shortcut icon" href="/versions/images/current/favicon.ico" type="image/x-icon"/>
|
||||
<link rel="stylesheet" type="text/css" href="/versions/c1pjs/1.15.4/common.css"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="commonTop">
|
||||
<div class="common-top">
|
||||
<div class="common-top-left">
|
||||
<ul>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/apps/pc/">Apps</a></li>
|
||||
<li><a href="/disks/pc/">Disks</a></li>
|
||||
<li><a href="/configs/pc/machines/">Machines</a></li>
|
||||
<li><a href="/docs/pcjs/">Docs</a></li>
|
||||
<li><a href="/pubs/">Pubs</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="/docs/about/">About</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="common-top-right">
|
||||
<p>Powered by <a href="http://nodejs.org" target="_blank">Node.js</a> and <a href="http://aws.amazon.com/about-aws/whats-new/2013/03/11/announcing-aws-elastic-beanstalk-for-node-js/" target="_blank">AWS</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="commonBottom">
|
||||
<div class="common-bottom">
|
||||
<p class="common-reference"></p>
|
||||
<p class="common-copyright">
|
||||
<span class="common-copyright"><a href="http://www.pcjs.org/">pcjs.org</a> website © 2012-2014 by <a href="http://twitter.com/jeffpar">@jeffpar</a></span><br/>
|
||||
<span class="common-copyright">PCjs and C1Pjs released under <a href="http://gnu.org/licenses/gpl.html">GPL version 3 or later</a></span>
|
||||
</p>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
101
versions/c1pjs/1.15.4/components.css
Normal file
101
versions/c1pjs/1.15.4/components.css
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
@CHARSET "UTF-8";
|
||||
|
||||
|
||||
*:not(input,textarea) {
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.c1pjs-embed {
|
||||
}
|
||||
.c1pjs-embed:after {
|
||||
clear:both;
|
||||
}
|
||||
.c1pjs-name {
|
||||
clear: both;
|
||||
font-weight: bold;
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
.c1pjs-canvas {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.c1pjs-container {
|
||||
color: #000000;
|
||||
position: relative;
|
||||
}
|
||||
.c1pjs-label {
|
||||
font-size: small;
|
||||
line-height: 19px;
|
||||
vertical-align: middle;
|
||||
float: left;
|
||||
font-family: "Lucida Console", monospace;
|
||||
}
|
||||
.c1pjs-control textarea {
|
||||
font-family: Monaco, monospace;
|
||||
font-size: x-small;
|
||||
}
|
||||
.c1pjs-flag {
|
||||
font-family: "Lucida Console", monospace;
|
||||
font-size: small;
|
||||
text-align: center;
|
||||
line-height: 19px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.c1pjs-register {
|
||||
font-family: "Lucida Console", monospace;
|
||||
font-size: small;
|
||||
text-align: center;
|
||||
line-height: 19px;
|
||||
vertical-align: middle;
|
||||
border: 1px solid black;
|
||||
}
|
||||
.c1pjs-switches {
|
||||
float: left;
|
||||
}
|
||||
.c1pjs-bitBucket {
|
||||
float: left;
|
||||
width: 19px;
|
||||
height: 38px;
|
||||
}
|
||||
.c1pjs-bitCell {
|
||||
float: left;
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
margin-right: -1px;
|
||||
margin-bottom: -1px;
|
||||
border: 1px solid black;
|
||||
text-align: center;
|
||||
line-height: 19px;
|
||||
}
|
||||
.c1pjs-bitCellLeft {
|
||||
border-left: 1px solid black;
|
||||
}
|
||||
.c1pjs-bitLabel {
|
||||
font-size: xx-small;
|
||||
text-align: center;
|
||||
}
|
||||
.c1pjs-description, .c1pjs-status {
|
||||
font-size: small;
|
||||
line-height: 2em;
|
||||
}
|
||||
.c1pjs-key {
|
||||
border: 1px solid black;
|
||||
font-size: x-small;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
height: 34px;
|
||||
line-height: 34px;
|
||||
}
|
||||
.c1pjs-reference {
|
||||
float: left;
|
||||
font-size: x-small;
|
||||
}
|
||||
.c1pjs-reference a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.c1pjs-copyright {
|
||||
float: right;
|
||||
font-size: x-small;
|
||||
}
|
||||
.c1pjs-copyright a {
|
||||
text-decoration: none;
|
||||
}
|
||||
563
versions/c1pjs/1.15.4/components.xsl
Normal file
563
versions/c1pjs/1.15.4/components.xsl
Normal file
|
|
@ -0,0 +1,563 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2013-01-29" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||
<!DOCTYPE xsl:stylesheet [
|
||||
]>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:param name="rootDir" select="''"/>
|
||||
<xsl:param name="generator" select="'client'"/>
|
||||
|
||||
<xsl:variable name="MACHINECLASS">c1p</xsl:variable>
|
||||
<xsl:variable name="APPCLASS">c1pjs</xsl:variable>
|
||||
<xsl:variable name="APPVERSION">1.15.4</xsl:variable>
|
||||
<xsl:variable name="SITEHOST">www.pcjs.org</xsl:variable>
|
||||
|
||||
<xsl:template name="componentStyles">
|
||||
<link rel="stylesheet" type="text/css" href="/versions/{$APPCLASS}/{$APPVERSION}/components.css"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="componentScripts">
|
||||
<xsl:param name="component"/>
|
||||
<script type="text/javascript" src="/versions/{$APPCLASS}/{$APPVERSION}/{$component}.js"></script>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="componentIncludes">
|
||||
<xsl:param name="component"/>
|
||||
<xsl:call-template name="componentScripts"><xsl:with-param name="component" select="$component"/></xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="machine[@ref]">
|
||||
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||
<xsl:apply-templates select="document($componentFile)/machine"><xsl:with-param name="machine" select="@id"/></xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="machine[not(@ref)]">
|
||||
<xsl:param name="machine"><xsl:value-of select="@id"/></xsl:param>
|
||||
<div id="{$machine}" class="machine {@class}js">
|
||||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="component" select="'machine'"/>
|
||||
<xsl:with-param name="class"><xsl:value-of select="@class"/>js</xsl:with-param>
|
||||
<xsl:with-param name="parms"><xsl:if test="@parms">,<xsl:value-of select="@parms"/></xsl:if></xsl:with-param>
|
||||
<xsl:with-param name="url"><xsl:value-of select="@url"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="component[@ref]">
|
||||
<xsl:param name="machine"/>
|
||||
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||
<xsl:apply-templates select="document($componentFile)/component"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="component[not(@ref)]">
|
||||
<xsl:param name="machine"/>
|
||||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="class" select="@class"/>
|
||||
<xsl:with-param name="parms"><xsl:if test="@parms">,<xsl:value-of select="@parms"/></xsl:if></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="component">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:param name="component" select="name(.)"/>
|
||||
<xsl:param name="class" select="''"/>
|
||||
<xsl:param name="parms" select="''"/>
|
||||
<xsl:param name="url" select="''"/>
|
||||
<xsl:variable name="id">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$component = 'machine'"><xsl:value-of select="$machine"/>.machine</xsl:when>
|
||||
<xsl:when test="$machine != ''"><xsl:value-of select="$machine"/><xsl:if test="@id">.<xsl:value-of select="@id"/></xsl:if></xsl:when>
|
||||
<xsl:when test="@id"><xsl:value-of select="@id"/></xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="name">
|
||||
<xsl:choose>
|
||||
<xsl:when test="name"><xsl:value-of select="name"/></xsl:when>
|
||||
<xsl:when test="@name"><xsl:value-of select="@name"/></xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="border">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@border = '1'">border:1px solid black;border-radius:10px;</xsl:when>
|
||||
<xsl:when test="@border">border:<xsl:value-of select="@border"/>;</xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="left">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@left">left:<xsl:value-of select="@left"/>;</xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="top">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@top">top:<xsl:value-of select="@top"/>;</xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="width">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@width">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$left != '' or $top != ''">width:<xsl:value-of select="@width"/>;</xsl:when>
|
||||
<xsl:otherwise>width:auto;max-width:<xsl:value-of select="@width"/>;</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="height">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@height">height:<xsl:value-of select="@height"/>;</xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="padding">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@padding">padding:<xsl:value-of select="@padding"/>;</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:if test="@padtop">padding-top:<xsl:value-of select="@padtop"/>;</xsl:if>
|
||||
<xsl:if test="@padright">padding-right:<xsl:value-of select="@padright"/>;</xsl:if>
|
||||
<xsl:if test="@padbottom">padding-bottom:<xsl:value-of select="@padbottom"/>;</xsl:if>
|
||||
<xsl:if test="@padleft">padding-left:<xsl:value-of select="@padleft"/>;</xsl:if>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="pos">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@pos = 'left'">float:left;</xsl:when>
|
||||
<xsl:when test="@pos = 'right'">float:right;</xsl:when>
|
||||
<xsl:when test="@pos = 'center'">margin:0 auto;</xsl:when>
|
||||
<xsl:when test="@pos">position:<xsl:value-of select="@pos"/>;</xsl:when>
|
||||
<xsl:when test="$left != '' or $top != ''">position:absolute;</xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="style">
|
||||
<xsl:if test="$component = 'machine'">overflow:auto;width:100%;</xsl:if>
|
||||
<xsl:if test="@style"><xsl:value-of select="@style"/></xsl:if>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="componentClass">
|
||||
<xsl:value-of select="$APPCLASS"/><xsl:text>-</xsl:text><xsl:value-of select="$component"/><xsl:text> </xsl:text><xsl:value-of select="$APPCLASS"/><xsl:text>-component</xsl:text>
|
||||
</xsl:variable>
|
||||
<div id="{$id}" class="{$componentClass}" style="{$width}{$height}{$pos}{$left}{$top}{$padding}">
|
||||
<xsl:if test="$component = 'machine'">
|
||||
<xsl:apply-templates select="name" mode="machine"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="$component != 'machine'">
|
||||
<xsl:apply-templates select="name" mode="component"/>
|
||||
</xsl:if>
|
||||
<div class="{$APPCLASS}-container" style="{$border}{$style}">
|
||||
<xsl:if test="$class != '' and $component != 'machine'">
|
||||
<div class="{$APPCLASS}-{$class}-object" data-value="id:'{$id}',name:'{$name}'{$parms}"></div>
|
||||
</xsl:if>
|
||||
<xsl:if test="control">
|
||||
<div class="{$APPCLASS}-controls">
|
||||
<xsl:apply-templates select="control" mode="component"/>
|
||||
</div>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||
</div>
|
||||
<xsl:if test="$component = 'machine'">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$url != ''"><div class="{$APPCLASS}-reference">[<a href="{$url}">XML</a>]</div></xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
<div class="{$APPCLASS}-copyright">
|
||||
<a href="http://{$SITEHOST}/{$APPCLASS}" target="_blank">C1Pjs</a> v<xsl:value-of select="$APPVERSION"/> © 2012-2014 by <a href="http://twitter.com/jeffpar" target="_blank">@jeffpar</a>
|
||||
</div>
|
||||
<div style="clear:both"></div>
|
||||
</xsl:if>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="name" mode="machine">
|
||||
<xsl:variable name="pos">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@pos = 'center'">text-align:center;</xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<h2 style="{$pos}"><xsl:apply-templates/></h2>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="name" mode="component">
|
||||
<div class="{$APPCLASS}-name"><xsl:apply-templates/></div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="control" mode="component">
|
||||
<xsl:variable name="type">
|
||||
type:'<xsl:value-of select="@type"/>'
|
||||
</xsl:variable>
|
||||
<xsl:variable name="binding">
|
||||
binding:'<xsl:value-of select="@binding"/>'
|
||||
</xsl:variable>
|
||||
<xsl:variable name="border">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@border = '1'">border:1px solid black;</xsl:when>
|
||||
<xsl:when test="@border">border:<xsl:value-of select="@border"/>;</xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="width">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@width">width:<xsl:value-of select="@width"/>;</xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="height">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@height">height:<xsl:value-of select="@height"/>;</xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="left">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@left">left:<xsl:value-of select="@left"/>;</xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="top">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@top">top:<xsl:value-of select="@top"/>;</xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="pos">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$left != '' or $top != ''">position:absolute;</xsl:when>
|
||||
<xsl:when test="@pos = 'left'">float:left;</xsl:when>
|
||||
<xsl:when test="@pos = 'right'">float:right;</xsl:when>
|
||||
<xsl:when test="@pos = 'center'">margin:0 auto;</xsl:when>
|
||||
<xsl:when test="@pos"><xsl:value-of select="@pos"/>;</xsl:when>
|
||||
<xsl:otherwise><xsl:if test="$left = ''">float:left;</xsl:if></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="style">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@style"><xsl:value-of select="@style"/></xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<div class="{$APPCLASS}-control" style="{$pos}{$left}{$top}">
|
||||
<xsl:variable name="fontsize">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@size = 'large'">font-size:<xsl:value-of select="@size"/>;</xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="subclass">
|
||||
<xsl:if test="@label"><xsl:text> </xsl:text><xsl:value-of select="$APPCLASS"/><xsl:text>-label</xsl:text></xsl:if>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="labelwidth">
|
||||
<xsl:if test="@labelwidth">width:<xsl:value-of select="@labelwidth"/>;</xsl:if>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="labelstyle">
|
||||
<xsl:if test="@labelstyle"><xsl:value-of select="@labelstyle"/></xsl:if>
|
||||
</xsl:variable>
|
||||
<xsl:if test="@label">
|
||||
<xsl:if test="not(@labelpos) or @labelpos = 'left'">
|
||||
<div class="{$APPCLASS}-label" style="{$labelwidth}{$labelstyle}"><xsl:value-of select="@label"/></div>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
<xsl:choose>
|
||||
<xsl:when test="@type = 'button'">
|
||||
<button class="{$APPCLASS}-{@class}" style="{$border}{$width}{$height}{$fontsize}{$style}" data-value="{$type},{$binding}"><xsl:apply-templates/></button>
|
||||
</xsl:when>
|
||||
<xsl:when test="@type = 'list'">
|
||||
<select class="{$APPCLASS}-{@class}" style="{$border}{$width}{$height}{$fontsize}{$style}" data-value="{$type},{$binding}">
|
||||
<xsl:apply-templates select="item" mode="component"/>
|
||||
</select>
|
||||
</xsl:when>
|
||||
<xsl:when test="@type = 'text'">
|
||||
<input class="{$APPCLASS}-{@class}" type="text" style="{$border}{$width}{$height}{$style}" data-value="{$type},{$binding}" value="" autocapitalize="off" autocorrect="off"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="@type = 'submit'">
|
||||
<input class="{$APPCLASS}-{@class}" type="submit" style="{$border}{$fontsize}{$style}" data-value="{$type},{$binding}" value="{.}"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="@type = 'textarea'">
|
||||
<textarea class="{$APPCLASS}-{@class}" style="{$border}{$width}{$height}{$style}" data-value="{$type},{$binding}" readonly="readonly"></textarea>
|
||||
</xsl:when>
|
||||
<xsl:when test="@type = 'heading'">
|
||||
<div><xsl:value-of select="."/></div>
|
||||
</xsl:when>
|
||||
<xsl:when test="@type = 'separator'">
|
||||
<hr/>
|
||||
</xsl:when>
|
||||
<xsl:when test="not(@type)">
|
||||
<div style="clear:both"></div><br/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<div class="{$APPCLASS}-{@class}{$subclass}" style="{$border}{$width}{$height}{$style}" data-value="{$type},{$binding}"><xsl:apply-templates/></div>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:if test="@label">
|
||||
<xsl:if test="@labelpos = 'right'">
|
||||
<div class="{$APPCLASS}-label" style="{$labelwidth}{$labelstyle}"><xsl:value-of select="@label"/></div>
|
||||
</xsl:if>
|
||||
<div style="clear:both"></div>
|
||||
</xsl:if>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="item" mode="component">
|
||||
<option value="{@ref}"><xsl:value-of select="."/></option>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="name">
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="control">
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="cpu[@ref]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||
<xsl:apply-templates select="document($componentFile)/cpu"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="cpu[not(@ref)]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="autoStart">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@autostart"><xsl:value-of select="@autostart"/></xsl:when>
|
||||
<xsl:otherwise>null</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="class" select="'cpu'"/>
|
||||
<xsl:with-param name="parms">,autoStart:<xsl:value-of select="$autoStart"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="keyboard[@ref]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||
<xsl:apply-templates select="document($componentFile)/keyboard"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="keyboard[not(@ref)]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="model">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@model"><xsl:value-of select="@model"/></xsl:when>
|
||||
<xsl:otherwise>600</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="class">keyboard</xsl:with-param>
|
||||
<xsl:with-param name="parms">,model:<xsl:value-of select="$model"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="serial[@ref]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||
<xsl:apply-templates select="document($componentFile)/serial"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="serial[not(@ref)]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="demo">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@demo"><xsl:value-of select="@demo"/></xsl:when>
|
||||
<xsl:otherwise>false</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="class">serial</xsl:with-param>
|
||||
<xsl:with-param name="parms">,demo:<xsl:value-of select="$demo"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="disk[@ref]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||
<xsl:apply-templates select="document($componentFile)/disk"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="disk[not(@ref)]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="class">disk</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="rom[@ref]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||
<xsl:apply-templates select="document($componentFile)/rom"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="rom[not(@ref)]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="size">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@size"><xsl:value-of select="@size"/></xsl:when>
|
||||
<xsl:otherwise>0</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="image">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@image"><xsl:value-of select="@image"/></xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="class">rom</xsl:with-param>
|
||||
<xsl:with-param name="parms">,size:<xsl:value-of select="$size"/>,image:'<xsl:value-of select="$image"/>'</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="ram[@ref]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||
<xsl:apply-templates select="document($componentFile)/ram"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="ram[not(@ref)]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="size">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@size"><xsl:value-of select="@size"/></xsl:when>
|
||||
<xsl:otherwise>0</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="class">ram</xsl:with-param>
|
||||
<xsl:with-param name="parms">,size:<xsl:value-of select="$size"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="video[@ref]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||
<xsl:apply-templates select="document($componentFile)/video"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="video[not(@ref)]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="model">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@model"><xsl:value-of select="@model"/></xsl:when>
|
||||
<xsl:otherwise>600</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="screenWidth">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@screenwidth"><xsl:value-of select="@screenwidth"/></xsl:when>
|
||||
<xsl:otherwise>256</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="screenHeight">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@screenheight"><xsl:value-of select="@screenheight"/></xsl:when>
|
||||
<xsl:otherwise>224</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="charCols">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@cols"><xsl:value-of select="@cols"/></xsl:when>
|
||||
<xsl:otherwise>32</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="charRows">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@rows"><xsl:value-of select="@rows"/></xsl:when>
|
||||
<xsl:otherwise>32</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="charWidth">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@charwidth"><xsl:value-of select="@charwidth"/></xsl:when>
|
||||
<xsl:otherwise>0</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="charHeight">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@charheight"><xsl:value-of select="@charheight"/></xsl:when>
|
||||
<xsl:otherwise>0</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="charSet">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@charset"><xsl:value-of select="@charset"/></xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="screenColor">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@screencolor"><xsl:value-of select="@screencolor"/></xsl:when>
|
||||
<xsl:otherwise>black</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="class">video</xsl:with-param>
|
||||
<xsl:with-param name="parms">,model:<xsl:value-of select="$model"/>,screenWidth:<xsl:value-of select="$screenWidth"/>,screenHeight:<xsl:value-of select="$screenHeight"/>,charCols:<xsl:value-of select="$charCols"/>,charRows:<xsl:value-of select="$charRows"/>,charWidth:<xsl:value-of select="$charWidth"/>,charHeight:<xsl:value-of select="$charHeight"/>,charSet:'<xsl:value-of select="$charSet"/>',screenColor:'<xsl:value-of select="$screenColor"/>'</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="debugger[@ref]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||
<xsl:apply-templates select="document($componentFile)/debugger"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="debugger[not(@ref)]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="class">debugger</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="panel[@ref]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||
<xsl:apply-templates select="document($componentFile)/panel"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="panel[not(@ref)]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="class">panel</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="computer[@ref]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||
<xsl:apply-templates select="document($componentFile)/computer"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="computer[not(@ref)]">
|
||||
<xsl:param name="machine" select="''"/>
|
||||
<xsl:variable name="modules">
|
||||
[<xsl:for-each select="module">
|
||||
{<xsl:call-template name="module"/>}
|
||||
<xsl:if test="position() != last()">,</xsl:if>
|
||||
</xsl:for-each>]
|
||||
</xsl:variable>
|
||||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="class">computer</xsl:with-param>
|
||||
<xsl:with-param name="parms">,modules:<xsl:value-of select="$modules"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="module">
|
||||
type:'<xsl:value-of select="@type"/>',refID:'<xsl:value-of select="@refid"/>'<xsl:if test="@start">,start:<xsl:value-of select="@start"/>,end:<xsl:value-of select="@end"/></xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
162
versions/c1pjs/1.15.4/document.css
Normal file
162
versions/c1pjs/1.15.4/document.css
Normal file
|
|
@ -0,0 +1,162 @@
|
|||
@CHARSET "UTF-8";
|
||||
|
||||
.page {
|
||||
margin: 2% 2%;
|
||||
padding: 2% 2%;
|
||||
min-width: 30em;
|
||||
overflow: auto;
|
||||
font-size: large;
|
||||
font-family: Helvetica, Arial, sans-serif;
|
||||
background: #303030;
|
||||
color: #ccc;
|
||||
|
||||
}
|
||||
.page-header {
|
||||
}
|
||||
.page-header-title {
|
||||
text-align: center;
|
||||
|
||||
}
|
||||
.page a {
|
||||
color: #7fc07f;
|
||||
text-decoration: none;
|
||||
}
|
||||
a.footlink, a.paralink {
|
||||
text-decoration: none;
|
||||
}
|
||||
a.footlink:link, a.paralink:link {
|
||||
color: blue;
|
||||
}
|
||||
a.footlink:visited, a.paralink:visited {
|
||||
color: blue;
|
||||
}
|
||||
.galleryitem {
|
||||
float: left;
|
||||
width: 200px;
|
||||
}
|
||||
.item {
|
||||
float: left;
|
||||
width: 2em;
|
||||
text-indent: 1em;
|
||||
}
|
||||
.list {
|
||||
margin-left: 3em;
|
||||
text-indent: 0;
|
||||
text-align: justify;
|
||||
}
|
||||
ul {
|
||||
list-style: none;
|
||||
}
|
||||
div.pnumber {
|
||||
float: left;
|
||||
width: 2em;
|
||||
text-indent: 1em;
|
||||
}
|
||||
div.pitem {
|
||||
margin-left: 10em;
|
||||
}
|
||||
p.indent, .justified p {
|
||||
text-indent: 2em;
|
||||
text-align: justify;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
p.noindent {
|
||||
text-indent: 0;
|
||||
text-align: justify;
|
||||
}
|
||||
p.center, .center {
|
||||
text-align: center;
|
||||
}
|
||||
li.para {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.left {
|
||||
text-align: left;
|
||||
}
|
||||
.right {
|
||||
text-align: right;
|
||||
}
|
||||
blockquote.tag {
|
||||
font-size: small;
|
||||
font-family: Monaco, Fixed, monospace;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.blockquote {
|
||||
padding-left: 1em;
|
||||
text-indent: 0;
|
||||
text-align: justify;
|
||||
}
|
||||
.italics {
|
||||
font-style: italic;
|
||||
}
|
||||
.medium {
|
||||
font-size: medium;
|
||||
}
|
||||
.small {
|
||||
font-size: x-small;
|
||||
}
|
||||
.smallcaps {
|
||||
font-variant: small-caps;
|
||||
}
|
||||
.strike {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
.summation, .bracelist {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
margin-bottom: 0.5ex;
|
||||
text-indent: 0;
|
||||
}
|
||||
.bracelist-symbol {
|
||||
font-size: 3em;
|
||||
vertical-align: -40%;
|
||||
}
|
||||
.summation .summation-lower, .summation .summation-upper, .bracelist-item {
|
||||
display: block;
|
||||
font-size: 75%;
|
||||
text-align: center;
|
||||
}
|
||||
.summation .summation-upper {
|
||||
margin-bottom: 0;
|
||||
margin-left: 0.8ex;
|
||||
font-style: italic;
|
||||
}
|
||||
.summation .summation-lower{
|
||||
margin-bottom: -0.6ex;
|
||||
font-style: italic;
|
||||
}
|
||||
.summation .summation-symbol {
|
||||
font-size: 2em;
|
||||
}
|
||||
p sup {
|
||||
vertical-align: baseline;
|
||||
position: relative;
|
||||
bottom: .5em;
|
||||
font-size: small;
|
||||
}
|
||||
p sub {
|
||||
vertical-align: baseline;
|
||||
position: relative;
|
||||
bottom: -.5em;
|
||||
font-size: small;
|
||||
}
|
||||
.footnote {
|
||||
font-size: medium;
|
||||
text-indent: 1em;
|
||||
text-align: justify;
|
||||
margin-top: .5em;
|
||||
}
|
||||
.image-right {
|
||||
float: right;
|
||||
margin-left: 1em;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.image-caption {
|
||||
font-size: small;
|
||||
text-align: center;
|
||||
}
|
||||
450
versions/c1pjs/1.15.4/document.xsl
Normal file
450
versions/c1pjs/1.15.4/document.xsl
Normal file
|
|
@ -0,0 +1,450 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||
<!DOCTYPE xsl:stylesheet [
|
||||
<!ENTITY nbsp " "> <!ENTITY ne "≠"> <!ENTITY le "≤"> <!ENTITY ge "≥">
|
||||
<!ENTITY times "×"> <!ENTITY sdot "⋅"> <!ENTITY divide "÷">
|
||||
<!ENTITY copy "©"> <!ENTITY Sigma "Σ"> <!ENTITY sigma "σ"> <!ENTITY sum "∑"> <!ENTITY lbrace "{">
|
||||
]>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<xsl:template name="documentStyles">
|
||||
<link rel="stylesheet" type="text/css" href="/versions/c1pjs/1.15.4/document.css"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="title">
|
||||
<h1><xsl:apply-templates/></h1>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="p">
|
||||
<xsl:if test="@id">
|
||||
<a name="{@id}"></a>
|
||||
</xsl:if>
|
||||
<xsl:choose>
|
||||
<xsl:when test="not(@class)">
|
||||
<p><xsl:apply-templates/></p>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<p class="{@class}"><xsl:apply-templates/></p>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="p">
|
||||
<xsl:call-template name="p"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="br">
|
||||
<br/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="p[@number]">
|
||||
<div class="pnumber">
|
||||
<xsl:choose>
|
||||
<xsl:when test="not(@number) or @number = ''"> </xsl:when>
|
||||
<xsl:otherwise><xsl:value-of select="@number"/></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</div>
|
||||
<div class="pitem">
|
||||
<xsl:call-template name="p"/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="span">
|
||||
<xsl:choose>
|
||||
<xsl:when test="not(@class)">
|
||||
<span><xsl:apply-templates/></span>
|
||||
</xsl:when>
|
||||
<xsl:when test="@class = 'italics'">
|
||||
<em><xsl:apply-templates/></em>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<span class="{@class}"><xsl:apply-templates/></span>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="h2">
|
||||
<h2><xsl:apply-templates/></h2>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="h3">
|
||||
<h3><xsl:apply-templates/></h3>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="h4">
|
||||
<h4><xsl:apply-templates/></h4>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="h5">
|
||||
<h5><xsl:apply-templates/></h5>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="h6">
|
||||
<h6><xsl:apply-templates/></h6>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="em">
|
||||
<em><xsl:apply-templates/></em>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="strong">
|
||||
<strong><xsl:apply-templates/></strong>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="a">
|
||||
<a href="{@href}" target="{@target}"><xsl:apply-templates/></a>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="ol">
|
||||
<blockquote><ol><xsl:apply-templates/></ol></blockquote>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="ul">
|
||||
<blockquote><ul><xsl:apply-templates/></ul></blockquote>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="li">
|
||||
<li><xsl:apply-templates/></li>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="img">
|
||||
<div><img src="{@src}" alt="image"/></div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="pre">
|
||||
<pre><xsl:apply-templates/></pre>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="figure">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@pos">
|
||||
<div class="{@pos}"><img src="{@ref}" alt="{.}"/><br/><xsl:value-of select="."/></div>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<div><img src="{@ref}" alt="{.}"/><br/><xsl:value-of select="."/></div>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="sub">
|
||||
<sub><xsl:apply-templates/></sub>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="sup">
|
||||
<sup><xsl:apply-templates/></sup>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="lt"><</xsl:template>
|
||||
<xsl:template match="gt">></xsl:template>
|
||||
<xsl:template match="ne">≠</xsl:template>
|
||||
<xsl:template match="le">≤</xsl:template>
|
||||
<xsl:template match="ge">≥</xsl:template>
|
||||
<xsl:template match="times">×</xsl:template>
|
||||
<xsl:template match="dot">⋅</xsl:template>
|
||||
<xsl:template match="divide">÷</xsl:template>
|
||||
<xsl:template match="sigma">σ</xsl:template>
|
||||
|
||||
<xsl:template match="summation">
|
||||
<span class="summation">
|
||||
<span class="summation-upper"><xsl:value-of select="@upper"/></span>
|
||||
<span class="summation-symbol">∑</span>
|
||||
<span class="summation-lower"><xsl:value-of select="@lower"/></span>
|
||||
</span>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="bracelist">
|
||||
<span class="bracelist-symbol">{</span>
|
||||
<span class="bracelist">
|
||||
<xsl:for-each select="item">
|
||||
<span class="bracelist-item"><xsl:apply-templates/></span>
|
||||
</xsl:for-each>
|
||||
</span>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="footlink">
|
||||
<xsl:variable name="docID" select="/document/@id"/>
|
||||
<a class="footlink" id="fn{$docID}_ref{@n}" href="#fn{$docID}_{@n}"><sup><xsl:if test="@quoted"><xsl:text>[</xsl:text></xsl:if><xsl:value-of select="@n"/><xsl:if test="@quoted"><xsl:text>]</xsl:text></xsl:if></sup></a>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="footnote">
|
||||
<xsl:variable name="docID" select="/document/@id"/>
|
||||
<div class="footnote"><a id="fn{$docID}_{@n}" href="#fn{$docID}_ref{@n}"><sup><xsl:value-of select="@n"/></sup></a><xsl:text> </xsl:text>
|
||||
<xsl:apply-templates/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="authors">
|
||||
<xsl:for-each select="author"><xsl:if test="position() != 1"><xsl:text>, </xsl:text></xsl:if><xsl:if test="position() != 1 and position() = last()"><xsl:text>and </xsl:text></xsl:if><xsl:value-of select="."/></xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="formatDate">
|
||||
<xsl:param name="date"/>
|
||||
<xsl:param name="format">MDY</xsl:param>
|
||||
<xsl:variable name="year">
|
||||
<xsl:value-of select="substring-before($date,'-')"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="mon-day">
|
||||
<xsl:value-of select="substring-after($date,'-')"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="mon">
|
||||
<xsl:value-of select="substring-before($mon-day,'-')"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="full-day">
|
||||
<xsl:value-of select="substring-after($mon-day,'-')"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="day">
|
||||
<xsl:choose>
|
||||
<xsl:when test="substring($full-day,1,1) = '0'"><xsl:value-of select="substring($full-day,2)"/></xsl:when>
|
||||
<xsl:otherwise><xsl:value-of select="$full-day"/></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$mon = '01'">January </xsl:when>
|
||||
<xsl:when test="$mon = '02'">February </xsl:when>
|
||||
<xsl:when test="$mon = '03'">March </xsl:when>
|
||||
<xsl:when test="$mon = '04'">April </xsl:when>
|
||||
<xsl:when test="$mon = '05'">May </xsl:when>
|
||||
<xsl:when test="$mon = '06'">June </xsl:when>
|
||||
<xsl:when test="$mon = '07'">July </xsl:when>
|
||||
<xsl:when test="$mon = '08'">August </xsl:when>
|
||||
<xsl:when test="$mon = '09'">September </xsl:when>
|
||||
<xsl:when test="$mon = '10'">October </xsl:when>
|
||||
<xsl:when test="$mon = '11'">November </xsl:when>
|
||||
<xsl:when test="$mon = '12'">December </xsl:when>
|
||||
<xsl:when test="$mon = '00'"/> </xsl:choose>
|
||||
<xsl:if test="$day != '0' and $format = 'MDY'">
|
||||
<xsl:value-of select="$day"/><xsl:text>, </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="$year"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="gallery">
|
||||
<h2><xsl:value-of select="description"/></h2>
|
||||
<div class="gallery">
|
||||
<xsl:apply-templates select="item" mode="gallery"/>
|
||||
</div>
|
||||
<div style="clear:both;"></div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="item" mode="gallery">
|
||||
<div class="galleryitem">
|
||||
<a href="{@ref}"><img src="/versions/images/current/pdf-192.jpg" alt="{.}"/></a><br/>
|
||||
<div style="font-size:small; text-align:center;"><xsl:value-of select="."/></div>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="list[@type = 'timeline']">
|
||||
<xsl:if test="not(description)">
|
||||
<h2>Timeline</h2>
|
||||
</xsl:if>
|
||||
<xsl:if test="description">
|
||||
<h2><xsl:value-of select="description"/></h2>
|
||||
</xsl:if>
|
||||
<blockquote>
|
||||
<xsl:apply-templates select="item" mode="timeline"/>
|
||||
</blockquote>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="item" mode="timeline">
|
||||
<xsl:if test="@ref">
|
||||
<xsl:variable name="documentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||
<xsl:apply-templates select="document($documentFile)/document" mode="withDate">
|
||||
<xsl:with-param name="itemRef" select="@ref"/>
|
||||
</xsl:apply-templates>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(@ref)">
|
||||
<h3><xsl:call-template name="formatDate"><xsl:with-param name="date" select="@date"/></xsl:call-template></h3>
|
||||
<blockquote>
|
||||
<xsl:value-of select="."/>
|
||||
</blockquote>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="list[@type = 'people']">
|
||||
<xsl:if test="not(description)">
|
||||
<h2>People</h2>
|
||||
</xsl:if>
|
||||
<xsl:if test="description">
|
||||
<h2><xsl:value-of select="description"/></h2>
|
||||
</xsl:if>
|
||||
<blockquote>
|
||||
<xsl:apply-templates select="item" mode="people"/>
|
||||
</blockquote>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="item" mode="people">
|
||||
<h3><xsl:value-of select="name"/></h3>
|
||||
<xsl:apply-templates select="list"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="list[@type = 'documents']">
|
||||
<xsl:if test="description"><h2><xsl:value-of select="description"/></h2></xsl:if>
|
||||
<ul>
|
||||
<xsl:apply-templates select="item" mode="document"/>
|
||||
</ul>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="item" mode="document">
|
||||
<xsl:variable name="documentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||
<xsl:apply-templates select="document($documentFile)/document">
|
||||
<xsl:with-param name="itemRef" select="@ref"/>
|
||||
</xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="document">
|
||||
<xsl:param name="itemRef"/>
|
||||
<li>
|
||||
<xsl:call-template name="documentSummary"><xsl:with-param name="itemRef" select="$itemRef"/></xsl:call-template>
|
||||
</li>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="document" mode="withDate">
|
||||
<xsl:param name="itemRef"/>
|
||||
<h3><xsl:call-template name="formatDate"><xsl:with-param name="date" select="date"/><xsl:with-param name="format" select="MY"/></xsl:call-template></h3>
|
||||
<blockquote>
|
||||
<p>
|
||||
<xsl:call-template name="documentSummary"><xsl:with-param name="itemRef" select="$itemRef"/><xsl:with-param name="multiLine" select="'true'"/></xsl:call-template>
|
||||
</p>
|
||||
</blockquote>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="documentSummary">
|
||||
<xsl:param name="itemRef"/>
|
||||
<xsl:param name="multiLine">false</xsl:param>
|
||||
<xsl:choose>
|
||||
<xsl:when test="content|include">
|
||||
<a href="{$itemRef}"><xsl:value-of select="title"/></a>
|
||||
<xsl:if test="@ref">
|
||||
<span class="small">
|
||||
<xsl:text> [</xsl:text><a href="{@ref}">Original</a><xsl:text>]</xsl:text>
|
||||
</span>
|
||||
</xsl:if>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<a href="{$itemRef}"><xsl:value-of select="title"/></a>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:if test="copy">
|
||||
<span class="small">
|
||||
<xsl:text> [</xsl:text><a href="{copy/@ref}"><xsl:value-of select="copy"/></a><xsl:text>]</xsl:text>
|
||||
</span>
|
||||
</xsl:if>
|
||||
<xsl:if test="author"><xsl:if test="$multiLine = 'true'"><br/></xsl:if><span class="medium"><xsl:text> by </xsl:text><xsl:call-template name="authors"/></span></xsl:if>
|
||||
<xsl:if test="source">
|
||||
<span class="small">
|
||||
<br/>
|
||||
<xsl:text>[Source: </xsl:text>
|
||||
<xsl:if test="site">
|
||||
<a href="{site/@url}"><xsl:value-of select="site"/></a>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(site)">
|
||||
<a href="{source/@url}"><xsl:value-of select="source"/></a>
|
||||
</xsl:if>
|
||||
<xsl:text>]</xsl:text>
|
||||
</span>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="list[@type = 'resources']">
|
||||
<xsl:if test="not(description)">
|
||||
<h2>Resources</h2>
|
||||
</xsl:if>
|
||||
<xsl:if test="description">
|
||||
<h2><xsl:value-of select="description"/></h2>
|
||||
</xsl:if>
|
||||
<blockquote>
|
||||
<xsl:apply-templates select="item" mode="resources"/>
|
||||
</blockquote>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="item" mode="resources">
|
||||
<h3><xsl:value-of select="description"/></h3>
|
||||
<xsl:apply-templates select="list"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="list[@type = 'links']">
|
||||
<xsl:if test="description">
|
||||
<h4><xsl:value-of select="description"/></h4>
|
||||
</xsl:if>
|
||||
<ul>
|
||||
<xsl:apply-templates select="item" mode="links"/>
|
||||
</ul>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="item" mode="links">
|
||||
<li><a href="{@ref}"><xsl:value-of select="."/></a></li>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="list[not(@type)]">
|
||||
<xsl:if test="description">
|
||||
<h2><xsl:value-of select="description"/></h2>
|
||||
</xsl:if>
|
||||
<blockquote>
|
||||
<xsl:apply-templates select="item|tag" mode="outer"/>
|
||||
</blockquote>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="item" mode="outer">
|
||||
<xsl:if test="description">
|
||||
<h3><xsl:value-of select="description"/></h3>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="list|item|tag" mode="inner"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="list" mode="inner">
|
||||
<xsl:if test="description">
|
||||
<h4><xsl:value-of select="description"/></h4>
|
||||
</xsl:if>
|
||||
<ul>
|
||||
<xsl:apply-templates select="list|item|para|tag" mode="inner"/>
|
||||
</ul>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="innerlist">
|
||||
<xsl:if test="description">
|
||||
<xsl:value-of select="description"/>
|
||||
</xsl:if>
|
||||
<ul>
|
||||
<xsl:apply-templates select="list|item|para|tag" mode="inner"/>
|
||||
</ul>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="item" mode="inner">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@ref">
|
||||
<li><a href="{@ref}"><xsl:apply-templates/></a></li>
|
||||
</xsl:when>
|
||||
<xsl:when test="description">
|
||||
<li><xsl:call-template name="innerlist"/></li>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<li><xsl:apply-templates/></li>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="para" mode="inner">
|
||||
<li class="para"><xsl:apply-templates/></li>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="tag" mode="outer">
|
||||
<xsl:call-template name="tag"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="tag" mode="inner">
|
||||
<xsl:call-template name="tag"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="tag">
|
||||
<blockquote class="tag">
|
||||
<xsl:text><</xsl:text><xsl:if test="@href"><a href="{@href}"><xsl:value-of select="@name"/></a></xsl:if><xsl:if test="not(@href)"><xsl:value-of select="@name"/></xsl:if><xsl:for-each select="attr"><xsl:text> </xsl:text><xsl:value-of select="@name"/><xsl:text>="</xsl:text><xsl:value-of select="@value"/><xsl:text>"</xsl:text></xsl:for-each>
|
||||
<xsl:choose>
|
||||
<xsl:when test="tag"><xsl:text>></xsl:text><xsl:apply-templates mode="inner"/><xsl:text></</xsl:text><xsl:value-of select="@name"/><xsl:text>></xsl:text></xsl:when>
|
||||
<xsl:when test="normalize-space(.) != ''"><xsl:text>></xsl:text><xsl:value-of select="."/><xsl:text></</xsl:text><xsl:value-of select="@name"/><xsl:text>></xsl:text></xsl:when>
|
||||
<xsl:otherwise><xsl:text>/></xsl:text></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</blockquote>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
49
versions/c1pjs/1.15.4/machine.xsl
Normal file
49
versions/c1pjs/1.15.4/machine.xsl
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||
<!DOCTYPE xsl:stylesheet [
|
||||
<!ENTITY nbsp " "> <!ENTITY sect "§"> <!ENTITY copy "©"> <!ENTITY para "¶"> <!ENTITY ndash "–"> <!ENTITY mdash "—">
|
||||
<!ENTITY lsquo "‘"> <!ENTITY rsquo "’"> <!ENTITY ldquo "“"> <!ENTITY rdquo "”"> <!ENTITY dagger "†"> <!ENTITY Dagger "‡">
|
||||
]>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<xsl:output doctype-system="about:legacy-compat"/>
|
||||
|
||||
<xsl:include href="/versions/c1pjs/1.15.4/common.xsl"/>
|
||||
<xsl:include href="/versions/c1pjs/1.15.4/components.xsl"/>
|
||||
|
||||
<xsl:template match="/machine">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title><xsl:value-of select="$SITEHOST"/></title>
|
||||
<xsl:call-template name="commonStyles"/>
|
||||
<xsl:call-template name="componentStyles"/>
|
||||
</head>
|
||||
<body>
|
||||
<div class="common">
|
||||
<xsl:call-template name="commonTop"/>
|
||||
<div class="common-middle">
|
||||
<p></p>
|
||||
<div id="{@id}" class="machine {@class}js">
|
||||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="@id"/>
|
||||
<xsl:with-param name="component" select="'machine'"/>
|
||||
<xsl:with-param name="class"><xsl:value-of select="@class"/>js</xsl:with-param>
|
||||
<xsl:with-param name="parms"><xsl:if test="@parms">,<xsl:value-of select="@parms"/></xsl:if></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</div>
|
||||
</div>
|
||||
<xsl:call-template name="commonBottom"/>
|
||||
</div>
|
||||
<xsl:call-template name="componentScripts">
|
||||
<xsl:with-param name="component">
|
||||
<xsl:choose>
|
||||
<xsl:when test="debugger"><xsl:value-of select="@class"/>-dbg</xsl:when>
|
||||
<xsl:otherwise><xsl:value-of select="@class"/></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
247
versions/c1pjs/1.15.4/manifest.xsl
Normal file
247
versions/c1pjs/1.15.4/manifest.xsl
Normal file
|
|
@ -0,0 +1,247 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2014-04-10" modified="2014-04-10" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||
<!DOCTYPE xsl:stylesheet [
|
||||
<!ENTITY nbsp " "> <!ENTITY sect "§"> <!ENTITY copy "©"> <!ENTITY para "¶"> <!ENTITY ndash "–"> <!ENTITY mdash "—">
|
||||
<!ENTITY lsquo "‘"> <!ENTITY rsquo "’"> <!ENTITY ldquo "“"> <!ENTITY rdquo "”"> <!ENTITY dagger "†"> <!ENTITY Dagger "‡">
|
||||
]>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<xsl:output doctype-system="about:legacy-compat"/>
|
||||
|
||||
<xsl:include href="/versions/c1pjs/1.15.4/common.xsl"/>
|
||||
<xsl:include href="/versions/c1pjs/1.15.4/components.xsl"/>
|
||||
|
||||
<xsl:template match="/manifest[@type = 'document']">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title><xsl:value-of select="$SITEHOST"/></title>
|
||||
<xsl:call-template name="commonStyles"/>
|
||||
<xsl:call-template name="componentStyles"/>
|
||||
</head>
|
||||
<body>
|
||||
<div class="common">
|
||||
<xsl:call-template name="commonTop"/>
|
||||
<div class="common-middle">
|
||||
<h4>Document Manifest</h4>
|
||||
<div class="common-sidebar">
|
||||
<ul class="common-list-data">
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'Title'"/>
|
||||
<xsl:with-param name="node" select="title"/>
|
||||
<xsl:with-param name="default">None</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'Version'"/>
|
||||
<xsl:with-param name="node" select="version"/>
|
||||
<xsl:with-param name="default" select="''"/>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'Source'"/>
|
||||
<xsl:with-param name="node" select="source"/>
|
||||
<xsl:with-param name="default" select="''"/>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'Documents'"/>
|
||||
<xsl:with-param name="node" select="document"/>
|
||||
<xsl:with-param name="default"><xsl:value-of select="title"/> <xsl:if test="version != ''"><xsl:text> </xsl:text><xsl:value-of select="version"/></xsl:if></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="common-main">
|
||||
<p><xsl:value-of select="desc"/></p>
|
||||
<xsl:call-template name="commonBottom"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="/manifest[@type = 'software' or not(@type)]">
|
||||
<xsl:variable name="machineClass">
|
||||
<xsl:choose>
|
||||
<xsl:when test="machine/@class"><xsl:value-of select="machine/@class"/></xsl:when>
|
||||
<xsl:otherwise><xsl:value-of select="$MACHINECLASS"/></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title><xsl:value-of select="$SITEHOST"/></title>
|
||||
<xsl:call-template name="commonStyles"/>
|
||||
<xsl:call-template name="componentStyles"/>
|
||||
</head>
|
||||
<body>
|
||||
<div class="common">
|
||||
<xsl:call-template name="commonTop"/>
|
||||
<div class="common-middle">
|
||||
<h4>Software Manifest</h4>
|
||||
<div class="common-sidebar">
|
||||
<ul class="common-list-data">
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'Title'"/>
|
||||
<xsl:with-param name="node" select="title"/>
|
||||
<xsl:with-param name="default">None</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'Version'"/>
|
||||
<xsl:with-param name="node" select="version"/>
|
||||
<xsl:with-param name="default">Unknown</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'Type'"/>
|
||||
<xsl:with-param name="node" select="type"/>
|
||||
<xsl:with-param name="default">None</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'Category'"/>
|
||||
<xsl:with-param name="node" select="category"/>
|
||||
<xsl:with-param name="default">None</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'Created'"/>
|
||||
<xsl:with-param name="node" select="creationDate"/>
|
||||
<xsl:with-param name="default" select="''"/>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'Creators'"/>
|
||||
<xsl:with-param name="node" select="creator"/>
|
||||
<xsl:with-param name="default" select="''"/>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label"><xsl:if test="creationDate">Updated</xsl:if><xsl:if test="not(creationDate)">Released</xsl:if></xsl:with-param>
|
||||
<xsl:with-param name="node" select="releaseDate"/>
|
||||
<xsl:with-param name="default">Unknown</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'Company'"/>
|
||||
<xsl:with-param name="node" select="company"/>
|
||||
<xsl:with-param name="default" select="''"/>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'Authors'"/>
|
||||
<xsl:with-param name="node" select="author"/>
|
||||
<xsl:with-param name="default" select="''"/>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'Contributors'"/>
|
||||
<xsl:with-param name="node" select="contributor"/>
|
||||
<xsl:with-param name="default" select="''"/>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'Publisher'"/>
|
||||
<xsl:with-param name="node" select="publisher"/>
|
||||
<xsl:with-param name="default" select="''"/>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'License'"/>
|
||||
<xsl:with-param name="node" select="license"/>
|
||||
<xsl:with-param name="default" select="''"/>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'Source'"/>
|
||||
<xsl:with-param name="node" select="source"/>
|
||||
<xsl:with-param name="default" select="''"/>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="listItem">
|
||||
<xsl:with-param name="label" select="'Disks'"/>
|
||||
<xsl:with-param name="node" select="disk"/>
|
||||
<xsl:with-param name="default"><xsl:value-of select="title"/> <xsl:if test="version != ''"><xsl:text> </xsl:text><xsl:value-of select="version"/></xsl:if></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="common-main">
|
||||
<xsl:for-each select="machine[not(@type) or @type = 'default']">
|
||||
<xsl:call-template name="machine">
|
||||
<xsl:with-param name="href" select="@href"/>
|
||||
<xsl:with-param name="state" select="@state"/>
|
||||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
<xsl:if test="not(machine[not(@type) or @type = 'default'])">
|
||||
<p>No default machine specified for '<xsl:value-of select="title"/>' in manifest.xml</p>
|
||||
</xsl:if>
|
||||
<xsl:call-template name="commonBottom"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<xsl:call-template name="componentScripts">
|
||||
<xsl:with-param name="component">
|
||||
<xsl:choose>
|
||||
<xsl:when test="machine/@debugger"><xsl:value-of select="$machineClass"/>-dbg</xsl:when>
|
||||
<xsl:otherwise><xsl:value-of select="$machineClass"/></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="listItem">
|
||||
<xsl:param name="label"/>
|
||||
<xsl:param name="node"/>
|
||||
<xsl:param name="default">Unknown</xsl:param>
|
||||
<xsl:if test="$node != '' or $default != ''">
|
||||
<li><xsl:value-of select="$label"/>
|
||||
<ul class="common-list-data-items">
|
||||
<xsl:for-each select="$node">
|
||||
<xsl:variable name="desc">
|
||||
<xsl:choose>
|
||||
<xsl:when test="desc"><xsl:value-of select="desc"/></xsl:when>
|
||||
<xsl:when test="org"><xsl:value-of select="org"/></xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<li title="{$desc}">
|
||||
<xsl:variable name="value">
|
||||
<xsl:choose>
|
||||
<xsl:when test="name">
|
||||
<xsl:value-of select="name"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="normalize-space(./text()) != ''">
|
||||
<xsl:value-of select="normalize-space(./text())"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$default"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="href">
|
||||
<xsl:if test="@href"><xsl:value-of select="@href"/></xsl:if>
|
||||
</xsl:variable>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$href != ''">
|
||||
<a href="{$href}"><xsl:value-of select="$value"/></a>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$value"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:if test="page">
|
||||
<ul class="common-list-data-subitems">
|
||||
<xsl:for-each select="page">
|
||||
<li>
|
||||
<xsl:if test="@href">
|
||||
<a href="{$href}{@href}"><xsl:value-of select="."/></a>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(@href)">
|
||||
<xsl:value-of select="."/>
|
||||
</xsl:if>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</xsl:if>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
<xsl:if test="not($node)">
|
||||
<xsl:if test="@href">
|
||||
<a href="{@href}"><xsl:value-of select="$default"/></a>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(@href)">
|
||||
<xsl:value-of select="$default"/>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
</ul>
|
||||
</li>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
47
versions/c1pjs/1.15.4/outline.xsl
Normal file
47
versions/c1pjs/1.15.4/outline.xsl
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||
<!DOCTYPE xsl:stylesheet [
|
||||
<!ENTITY nbsp " "> <!ENTITY sect "§"> <!ENTITY copy "©"> <!ENTITY para "¶"> <!ENTITY ndash "–"> <!ENTITY mdash "—">
|
||||
<!ENTITY lsquo "‘"> <!ENTITY rsquo "’"> <!ENTITY ldquo "“"> <!ENTITY rdquo "”"> <!ENTITY dagger "†"> <!ENTITY Dagger "‡">
|
||||
]>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<xsl:output doctype-system="about:legacy-compat"/>
|
||||
|
||||
<xsl:include href="/versions/c1pjs/1.15.4/common.xsl"/>
|
||||
<xsl:include href="/versions/c1pjs/1.15.4/document.xsl"/>
|
||||
<xsl:include href="/versions/c1pjs/1.15.4/components.xsl"/>
|
||||
|
||||
<xsl:template match="/outline">
|
||||
<xsl:variable name="machineClass">
|
||||
<xsl:choose>
|
||||
<xsl:when test="machine/@class"><xsl:value-of select="machine/@class"/></xsl:when>
|
||||
<xsl:otherwise><xsl:value-of select="$MACHINECLASS"/></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title><xsl:value-of select="title"/><xsl:text> | </xsl:text><xsl:value-of select="$SITEHOST"/></title>
|
||||
<xsl:call-template name="commonStyles"/>
|
||||
<xsl:call-template name="documentStyles"/>
|
||||
<xsl:call-template name="componentStyles"/>
|
||||
</head>
|
||||
<body>
|
||||
<div class="common">
|
||||
<div class="page justified">
|
||||
<xsl:apply-templates/>
|
||||
</div>
|
||||
</div>
|
||||
<xsl:call-template name="componentScripts">
|
||||
<xsl:with-param name="component">
|
||||
<xsl:choose>
|
||||
<xsl:when test="debugger"><xsl:value-of select="$machineClass"/>-dbg</xsl:when>
|
||||
<xsl:otherwise><xsl:value-of select="$machineClass"/></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
Loading…
Reference in a new issue