Final preparations for open source roll-out (including a C1Pjs control panel fix)
This commit is contained in:
parent
60669365f9
commit
53578f128d
4 changed files with 56 additions and 54 deletions
|
|
@ -1,12 +1,12 @@
|
|||
(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 n(a){return aa(a,2)}function q(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 t(a,b,c,d,e){b=!!b;var g=0,h=null,m=ba(a),l=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(l.onreadystatechange=function(){4===l.readyState&&(l.onreadystatechange=void 0,h=l.responseText,200!=l.status&&(g=l.status||-1),d&&e&&e.call(d,m,h,g,void 0))});if(c){var k="",p;for(p in c)c.hasOwnProperty(p)&&(k&&(k+="&"),k+=p+"="+encodeURIComponent(c[p]));k=k.replace(/%20/g,"+");l.open("POST",a,b);l.setRequestHeader("Content-type","application/x-www-form-urlencoded");
|
||||
l.send(k)}else l.open("GET",a,b),l.send();a=[];b||(h=l.responseText,200!=l.status&&(g=l.status||-1),d&&e&&e.call(d,m,h,g,void 0),a=[g,h]);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 t(a,b,c,d,e){b=!!b;var g=0,h=null,m=ba(a),k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(k.onreadystatechange=function(){4===k.readyState&&(k.onreadystatechange=void 0,h=k.responseText,200!=k.status&&(g=k.status||-1),d&&e&&e.call(d,m,h,g,void 0))});if(c){var l="",p;for(p in c)c.hasOwnProperty(p)&&(l&&(l+="&"),l+=p+"="+encodeURIComponent(c[p]));l=l.replace(/%20/g,"+");k.open("POST",a,b);k.setRequestHeader("Content-type","application/x-www-form-urlencoded");
|
||||
k.send(l)}else k.open("GET",a,b),k.send();a=[];b||(h=k.responseText,200!=k.status&&(g=k.status||-1),d&&e&&e.call(d,m,h,g,void 0),a=[g,h]);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.Gd=this.id.substr(0,b),this.Fd=this.id.substr(b+1)):this.Fd=this.id;this[a]=c;this.wc=null;this.jb=this.Sa=this.uc=this.Tb=!1;this.r={};this.m=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 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 h=g[e];if(h.nodeType===window.document.ELEMENT_NODE){var m=h.getAttribute("class");if(m){var l,k;k=m.split(" ");for(l=0;l<k.length;l++)switch(m=k[l],m){case "c1pjs-input":case "c1pjs-output":(k=D(h))&&k.binding&&a.I(m,k.type,k.binding,h),k=[]}}}}}}
|
||||
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 h=g[e];if(h.nodeType===window.document.ELEMENT_NODE){var m=h.getAttribute("class");if(m){var k,l;l=m.split(" ");for(k=0;k<l.length;k++)switch(m=l[k],m){case "c1pjs-input":case "c1pjs-output":(l=D(h))&&l.binding&&a.I(m,l.type,l.binding,h),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},I:function(a,b,c,d){switch(c){case "clear":return this.r[c]||(this.r[c]=d,d.onclick=function(a){return function(){a.r.print&&(a.r.print.value="")}}(this)),!0;case "print":return this.r[c]||(this.sc=this.r[c]=d,d.value="",this.i=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),this.Xb=function(a,
|
||||
b,c){this.i(a,"notice",c)}),!0;default:return!1}},log:function(){},i:function(){},status:function(a){this.i(this.Fd+": "+a)},Xb:function(a,b){b||u(a)},P:function(a){!this.jb&&(this.Tb=!1!==a)&&(this.name&&this.log("ready"),a=this.wc,this.wc=null,a&&a())}};function G(a,b){if(a.uc)return a.Sa&&(a.Sa=!1),a.uc=!1;if(a.jb)return a.i(a.toString()+" error"),!1;a.Sa=b;return a.Sa}function H(a,b){a.Sa&&(b?a.uc=!0:void 0===b&&a.i(a.toString()+" busy"));return a.Sa}
|
||||
|
|
@ -115,8 +115,8 @@ function Ua(a){a.he={s:a.dd,aa:function(){},update:function(a){return function(c
|
|||
c&&(c=a.Ia.s);c&=~a.td;0<=a.K&&0<=a.U[a.K].Ua&&(c|=a.td);this.s=c;W(a,a.rf,this)}}(a)};a.Jc={s:0,aa:function(a){return function(){Xa(a)}}(a),update:function(a){return function(c){void 0!==c&&(this.s=c);W(a,a.ld,this)}}(a)};a.Wi={s:0,aa:function(){},update:function(){return function(){}}(a)}}
|
||||
f.I=function(a,b,c,d){switch(c){case "listDisk":return this.r[c]=d,!0;case "loadDisk":return this.r[c]=d,d.onclick=function(a){return function(){if(a.r.listDisk){var b=a.r.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);a.i("loading "+ba(b)+"...");t(c,!0,null,a,a.Of)}}}(this),!0}return!1};f.V=function(a,b,c,d){this.a=a;this.mc=b;if(this.l=d)sa(d,b,c,this,this.H),N(d,b,c,this,this.O);this.P()};
|
||||
f.ba=function(a,b){a&&!this.C&&(this.C=!0,this.m=L(b,"debugger"))};
|
||||
f.Of=function(a,b,c){if(c)this.i("disk load error ("+c+")");else{c=[];this.i("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.i("data error: "+d[0]);else if(this.U[0]){for(b=0;b<d.length;b++){var e,g=d[b],h=g.sectors;if(void 0===(e=g.trackNum)||void 0===h)throw"track "+b+" missing data";e!=b&&u("track "+e+" out of order (expected "+b+")");c=[];var m,l,k;if(e){Ya(c,g,"trackSig");Za(c,g);X(c,g,"trackType");for(var p=0;p<h.length;p++){m=
|
||||
h[p];l=m.sectorData;X(c,m,"sectorSig");X(c,m,"sectorNum");X(c,m,"sectorPages");for(k=0;k<l.length;k++)c.push(l[k]);Ya(c,m,"sectorEndSig")}}else for(m=h[0],l=m.sectorData,X(c,g,"trackLoad",2),X(c,m,"sectorPages"),k=0;k<l.length;k++)c.push(l[k]);d[e].ke=c;this.m&&T(this.m,this.m.La)&&this.m.message("track "+e+": "+c.length+" bytes")}this.U[0].Jb=d;this.i("mount of "+a+" complete")}else this.i("no available drives")}else this.i("no tracks: "+a);else this.i("no data: "+a)}catch(s){this.i("disk data error: "+
|
||||
f.Of=function(a,b,c){if(c)this.i("disk load error ("+c+")");else{c=[];this.i("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.i("data error: "+d[0]);else if(this.U[0]){for(b=0;b<d.length;b++){var e,g=d[b],h=g.sectors;if(void 0===(e=g.trackNum)||void 0===h)throw"track "+b+" missing data";e!=b&&u("track "+e+" out of order (expected "+b+")");c=[];var m,k,l;if(e){Ya(c,g,"trackSig");Za(c,g);X(c,g,"trackType");for(var p=0;p<h.length;p++){m=
|
||||
h[p];k=m.sectorData;X(c,m,"sectorSig");X(c,m,"sectorNum");X(c,m,"sectorPages");for(l=0;l<k.length;l++)c.push(k[l]);Ya(c,m,"sectorEndSig")}}else for(m=h[0],k=m.sectorData,X(c,g,"trackLoad",2),X(c,m,"sectorPages"),l=0;l<k.length;l++)c.push(k[l]);d[e].ke=c;this.m&&T(this.m,this.m.La)&&this.m.message("track "+e+": "+c.length+" bytes")}this.U[0].Jb=d;this.i("mount of "+a+" complete")}else this.i("no available drives")}else this.i("no tracks: "+a);else this.i("no data: "+a)}catch(s){this.i("disk data error: "+
|
||||
(s.message||s))}}};function Za(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 Ya(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 $a(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case a.md:a=a.Zb.s&a.Ka?a.Ha:a.he;break;case a.jd:a=a.Zb;break;case a.nd:a=a.$b.s&a.Ka?a.sb:a.ie;break;case a.kd:a=a.$b;break;case a.of:a=c?a.Vi:a.Ia;break;case a.ld:a=a.Jc;break;default:a=a.Wi}return a}f.H=function(a,b){if(void 0!==b){var c=$a(this,a-this.mc,!1);this.m&&S(this.m,this,a,b,this.m.La,!1,c.je);c.aa()}};
|
||||
f.O=function(a,b){if(void 0!==b){var c=this.l.H(a),d=$a(this,a-this.mc,!0);if(this.m&&T(this.m,this.m.La|this.m.dc)&&(S(this.m,this,a,b,this.m.La,!0,d.je),d.Af))for(var e=128,g=d.s^c;g&&e;)g&e&&this.m.message(" changed "+d.je+"."+d.Af[e]+" to "+(c&e?"1":"0")),e>>=1;d.update(c)}};function Va(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&a.nf||(d|=2),a.Ha.s&a.dd||(d|=1));a.K!=d&&(a.K=d,a.Ia.update())}function Wa(a){0<=a.K&&(a.U[a.K].Ua=-1,a.Jc.update(255),a.Ia.update())}
|
||||
|
|
@ -137,8 +137,8 @@ f.message=function(a){this.i(a);Ca(this.l)};f.Nf=function(){this.i("Type ? for l
|
|||
function db(a){a.l&&I(a.l)&&!H(a.l)?(a=a.l,a.jb?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}f.reset=function(){var a;this.Da.length||(this.Da=Array(1E3));for(a=0;a<this.Da.length;a++)this.Da[a]=-1;this.fa.length||(this.fa=Array(256));for(a=0;a<this.fa.length;a++)this.fa[a]=[a,0];this.Pa&&this.update();this.Pa=0};f.start=function(){this.Ta||this.i("running")};
|
||||
f.stop=function(a,b){if(!this.Ta&&(this.i("stopped"),b)){var c=r();this.i(c-a+"ms ("+b+" cycles)")}this.update();this.W();this.Ta||(this.Pa=0);gb(this,this.l.d)};function hb(a,b){return a+(b<<24>>24)}f.H=function(a){var b;a>=this.$&&a<this.Ya&&(ua(this.l,a),b=this.a[this.$+a],b&=255);return b};f.O=function(a,b){a<this.$||a>=this.Ya?this.i("invalid address: "+q(a)):(this.a[this.$+a]=b&255,va(this.l,a),this.l.update())};function ib(a,b){Y(a.ra,b,void 0)||a.ra.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 jb(a,b){void 0!==b&&(gb(a,a.Oa),ib(a,b)&&(a.Oa=b))}function gb(a,b){void 0!==a.Oa&&b==a.Oa&&Y(a.ra,a.Oa,!0)&&(a.Oa=void 0);a.Ta=!1}function Ba(a,b,c,d){for(var e=!1,g=0;g<c.length;g++)if(c[g]==b){b!=a.Oa&&a.i("breakpoint hit: "+q(b)+" ("+d+")");e=!0;break}return e}
|
||||
function kb(a,b,c){var d=q(b),e=a.H(b++),g=a.Y[e],h=void 0===e?0:e,m=[],l=void 0===g[1]?0:g[1];do{d+=" "+n(h);if(!l--)break;h=a.H(b++);if(void 0===h)break;m.push(h)}while(1);void 0===g[0]&&(g=[a.Oe,1,a.R],m.push(e));var d=(d+" ").substr(0,15),d=d+a.hb[g[0]],k=null;if(void 0!==g[2]){l=g[2];k=a.ea[l];if(1==g[1]&&l==a.X)k=k.replace(/nnnn/,q(hb(b,h=m.pop())));else for(;m.length;)k=k.replace(/nn/,n(h=m.pop()));l==a.R&&1==g[1]&&32<=h&&128>h&&(k+=" ;'"+String.fromCharCode(h)+"'")}if(e==a.l.gc&&(h<
|
||||
a.vd.length&&(k=a.vd[h]),h==a.l.pd)){l=0;for(k='"';h=a.H(b++);)16>l?k+=String.fromCharCode(h):16==l&&(k+="\u2026"),l++;k+='"'}k&&(d+=" "+k);c&&(d=(d+" ").substr(0,30),d+=";"+c.toString());a.Zf=b;return d}
|
||||
function kb(a,b,c){var d=q(b),e=a.H(b++),g=a.Y[e],h=void 0===e?0:e,m=[],k=void 0===g[1]?0:g[1];do{d+=" "+n(h);if(!k--)break;h=a.H(b++);if(void 0===h)break;m.push(h)}while(1);void 0===g[0]&&(g=[a.Oe,1,a.R],m.push(e));var d=(d+" ").substr(0,15),d=d+a.hb[g[0]],l=null;if(void 0!==g[2]){k=g[2];l=a.ea[k];if(1==g[1]&&k==a.X)l=l.replace(/nnnn/,q(hb(b,h=m.pop())));else for(;m.length;)l=l.replace(/nn/,n(h=m.pop()));k==a.R&&1==g[1]&&32<=h&&128>h&&(l+=" ;'"+String.fromCharCode(h)+"'")}if(e==a.l.gc&&(h<
|
||||
a.vd.length&&(l=a.vd[h]),h==a.l.pd)){k=0;for(l='"';h=a.H(b++);)16>k?l+=String.fromCharCode(h):16==k&&(l+="\u2026"),k++;l+='"'}l&&(d+=" "+l);c&&(d=(d+" ").substr(0,30),d+=";"+c.toString());a.Zf=b;return d}
|
||||
function Z(a,b){var c=a.wa;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)&&(a.i("invalid base-"+d+" address: "+b),c=void 0)}void 0!==c&&(c<a.$||c>=a.Ya)&&(a.i("address out of range: "+aa(c)),c=void 0);return c}
|
||||
function lb(a,b){if("?"==b)a.i("\nfrequency commands:"),a.i("clear\tclear all frequency counts");else{var c=0,d;if(a.fa)if("clear"==b){for(d=0;d<a.fa.length;d++)a.fa[d]=[d,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var e=a.fa.slice();e.sort(function(a,b){return b[1]-a[1]});for(d=0;d<e.length;d++){var g=e[d][0],h=e[d][1];h&&(a.i(a.hb[a.Y[g][0]]+" ("+n(g)+"): "+h+" times"),c++)}}c||a.i("no frequency data available")}}
|
||||
function eb(a,b,c,d){var e=Z(a,b);if(void 0!==e){void 0===d&&(d=1);b=a.Ya;if(void 0!==c){b=Z(a,c);if(void 0===b||b<e)return;if(256<b-e){a.i("range too large");return}b++;d=-1}for(e!=a.wa&&a.i();d--&&e<b;)c=kb(a,e,H(a,!1)||a.Ta?a.Pa:0),a.i(c),a.wa=e=a.Zf}}
|
||||
|
|
@ -146,22 +146,22 @@ function fb(a,b){if(b&&"?"==b[1])a.i("\nregister commands:"),a.i("r to display a
|
|||
255;break;case "Y":a.l.p=g&255;break;case "C":a.l.c=g?256:0;break;case "Z":a.l.g=g?0:1;break;case "D":g?Ea(a.l):Fa(a.l);break;case "V":g?(d=a.l,d.u=0,d.v=128):(d=a.l,d.u=0,d.v=0);break;case "N":a.l.f=g?128:0;break;case "S":if(256!=(g&-256)){a.i("invalid stack pointer: "+e);return}a.l.q=g;break;case "PC":c=!0;a.l.d=g&65535;a.wa=a.l.d;break;default:a.i("unknown register: "+d);return}a.l.update()}a.i("A="+n(a.l.e)+" X="+n(a.l.n)+" Y="+n(a.l.p)+" P="+n(za(a.l))+" S="+q(a.l.q)+" PC="+q(a.l.d));c&&eb(a,
|
||||
q(a.wa=a.l.d))}}function mb(a,b){var c=void 0===b?1:parseInt(b,10),d=1==c?0:1;ea(c,function(a){return function(){return G(a,!0)&&a.step(d)}}(a),function(a){return function(){G(a,!1)}}(a))}
|
||||
function cb(a,b){b.length||(a.Sb?(a.i("ended assemble @"+q(a.Z)),a.wa=a.Z,a.Sb=!1):a.Ic&&(b=a.Ic));if(I(a)&&!H(a,!0)&&0<b.length){a.Sb?b="a "+q(a.Z)+" "+b:1<b.length&&1!=b.indexOf(" ")&&(b=b.charAt(0).toLowerCase()+" "+b.substr(1));var c=b.split(" ");a.Ic=c[0];switch(c[0].toLowerCase()){case "a":var d=Z(a,c[1]);if(void 0!==d)if(a.Z=d,void 0===c[2])a.i("begin assemble @"+q(a.Z)),a.Sb=!0,a.l.update();else{var e,g=c[2],h=c[3],c=a.Z,d=[];if(void 0!==g){var m,g=g.toUpperCase();"?"==g.charAt(g.length-1)&&
|
||||
(h="?",g=g.substr(0,g.length-1));for(m=0;m<a.hb.length&&g!=a.hb[m];m++);m==a.hb.length&&(a.i("unknown operation: "+g),m=-1);var l="",k;if(0<=m&&void 0!==h)if(l=h.toUpperCase(),"?"==l){for(h=k=0;h<a.Y.length;h++)a.Y[h][0]===m&&(k||a.i("supported opcodes:"),a.i(" "+n(h)+": "+g+(void 0!==a.Y[h][2]?" "+a.ea[a.Y[h][2]]:"")),k++);m=-1}else if(k=l.match(a.Xi),null!==k&&k[0]==l){for(h=1;h<k.length;h++)if(k[h]==l)if(void 0===e)e=h-1;else{a.i("too many operand matches (both "+a.ea[e]+" and "+a.ea[h-1]+
|
||||
")");m=-1;break}e==a.Cb&&0>a.Bf.indexOf(m)&&(e=a.B);e==a.Tc&&m!=a.Fb&&(e=a.B)}else a.i("unknown operand: "+l),m=-1;if(0<=m){k=-1;for(h=0;h<a.Y.length;h++)if(a.Y[h][0]===m&&a.Y[h][2]===e)if(0>k)k=h;else{a.i("too many instruction matches (both "+n(k)+" and "+n(h)+")");k=-2;break}if(0<=k){if(d.push(k),void 0!==e)if(g=a.Y[k][1],l=l.match(/[0-9A-F]+/),null!==l)for(l=parseInt(l[0],16),1==g&&e==a.X&&(l-=c+2,-128>l||127<l)&&(a.i("branch out of range ("+l+")"),d=[],g=0),h=0;h<g;h++)d.push(l&255),l>>>=8;else g&&
|
||||
a.i("instruction missing "+g+" bytes")}else a.i("unknown instruction: "+g+" "+l+"")}}e=d;if(e.length){for(c=0;c<e.length;c++)a.O(a.Z+c,e[c]);a.i(kb(a,a.Z));a.Z+=e.length}}break;case "b":e=c[1];c=c[2];if(void 0===e||"?"==e)a.i("\nbreakpoint commands:"),a.i("bp [a]\tset exec breakpoint at [a]"),a.i("br [a]\tset read breakpoint at [a]"),a.i("bw [a]\tset write breakpoint at [a]"),a.i("bc [a]\tclear breakpoint at [a]"),a.i("bl\tlist all breakpoints");else if(void 0===c&&1<e.length&&(c=e.substr(1),e=e.substr(0,
|
||||
(h="?",g=g.substr(0,g.length-1));for(m=0;m<a.hb.length&&g!=a.hb[m];m++);m==a.hb.length&&(a.i("unknown operation: "+g),m=-1);var k="",l;if(0<=m&&void 0!==h)if(k=h.toUpperCase(),"?"==k){for(h=l=0;h<a.Y.length;h++)a.Y[h][0]===m&&(l||a.i("supported opcodes:"),a.i(" "+n(h)+": "+g+(void 0!==a.Y[h][2]?" "+a.ea[a.Y[h][2]]:"")),l++);m=-1}else if(l=k.match(a.Xi),null!==l&&l[0]==k){for(h=1;h<l.length;h++)if(l[h]==k)if(void 0===e)e=h-1;else{a.i("too many operand matches (both "+a.ea[e]+" and "+a.ea[h-1]+
|
||||
")");m=-1;break}e==a.Cb&&0>a.Bf.indexOf(m)&&(e=a.B);e==a.Tc&&m!=a.Fb&&(e=a.B)}else a.i("unknown operand: "+k),m=-1;if(0<=m){l=-1;for(h=0;h<a.Y.length;h++)if(a.Y[h][0]===m&&a.Y[h][2]===e)if(0>l)l=h;else{a.i("too many instruction matches (both "+n(l)+" and "+n(h)+")");l=-2;break}if(0<=l){if(d.push(l),void 0!==e)if(g=a.Y[l][1],k=k.match(/[0-9A-F]+/),null!==k)for(k=parseInt(k[0],16),1==g&&e==a.X&&(k-=c+2,-128>k||127<k)&&(a.i("branch out of range ("+k+")"),d=[],g=0),h=0;h<g;h++)d.push(k&255),k>>>=8;else g&&
|
||||
a.i("instruction missing "+g+" bytes")}else a.i("unknown instruction: "+g+" "+k+"")}}e=d;if(e.length){for(c=0;c<e.length;c++)a.O(a.Z+c,e[c]);a.i(kb(a,a.Z));a.Z+=e.length}}break;case "b":e=c[1];c=c[2];if(void 0===e||"?"==e)a.i("\nbreakpoint commands:"),a.i("bp [a]\tset exec breakpoint at [a]"),a.i("br [a]\tset read breakpoint at [a]"),a.i("bw [a]\tset write breakpoint at [a]"),a.i("bc [a]\tclear breakpoint at [a]"),a.i("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.ra;for(c=0;c<d.length;c++)a.i("breakpoint enabled: "+q(d[c])+" (exec)"),e++;d=a.Ba;for(c=0;c<d.length;c++)a.i("breakpoint enabled: "+q(d[c])+" (read)"),e++;d=a.Ea;for(c=0;c<d.length;c++)a.i("breakpoint enabled: "+q(d[c])+" (write)"),e++;e||a.i("no breakpoints")}else void 0===c?a.i("missing breakpoint address"):"c"==e&&"*"==c?(a.ra=[],a.Ba=[],a.Ea=[],a.i("all breakpoints cleared")):(c=Z(a,c),void 0!==c&&("p"==e?ib(a,c)?a.i("breakpoint enabled: "+q(c)+" (exec)"):a.i("breakpoint not set: "+
|
||||
q(c)):"c"==e?Y(a.ra,c,!0)?a.i("breakpoint cleared: "+q(c)+" (exec)"):Y(a.Ba,c,!0)?a.i("breakpoint cleared: "+q(c)+" (read)"):Y(a.Ea,c,!0)?a.i("breakpoint cleared: "+q(c)+" (write)"):a.i("breakpoint missing: "+q(c)):"r"==e?(Y(a.Ba,c,void 0)||a.Ba.push(c),a.i("breakpoint enabled: "+q(c)+" (read)")):"w"==e?(Y(a.Ea,c,void 0)||a.Ea.push(c),a.i("breakpoint enabled: "+q(c)+" (write)")):a.i("unknown breakpoint command: "+e)));break;case "d":e=c[1];d=c[2];if("?"==e)a.i("\ndump commands:"),a.i("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++){l=g="";h=e;for(m=0;8>m&&e<a.Ya;m++)k=a.H(e),void 0===k&&(k=0),g+=n(k)+" ",l+=32<=k&&128>k?String.fromCharCode(k):".",e++;a.i(q(h)+" "+g+l)}a.wa=e}break;case "e":e=c[1];if(void 0===e)a.i("missing address");else if(e=Z(a,e),void 0!==e)for(d=2;d<c.length;d++)g=parseInt(c[d],16),a.O(e++,g);break;case "f":lb(a,c[1]);break;case "g":e=c[1];void 0!==e&&jb(a,Z(a,e));a.ya()||a.l.W();break;
|
||||
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++){k=g="";h=e;for(m=0;8>m&&e<a.Ya;m++)l=a.H(e),void 0===l&&(l=0),g+=n(l)+" ",k+=32<=l&&128>l?String.fromCharCode(l):".",e++;a.i(q(h)+" "+g+k)}a.wa=e}break;case "e":e=c[1];if(void 0===e)a.i("missing address");else if(e=Z(a,e),void 0!==e)for(d=2;d<c.length;d++)g=parseInt(c[d],16),a.O(e++,g);break;case "f":lb(a,c[1]);break;case "g":e=c[1];void 0!==e&&jb(a,Z(a,e));a.ya()||a.l.W();break;
|
||||
case "h":a.T();break;case "o":if(void 0===c[1]||"?"==c[1])a.i("\noption commands:"),a.i("max\trun at maximum speed"),a.i("fast\trun faster (up to "+a.l.mb+"Mhz)"),a.i("slow\trun at normal speed (1Mhz)"),a.i("classic\tuse classic operand syntax"),a.i("modern\tuse modern operand syntax"),a.i("msg\tenable message categories");else switch(e=c[1],e){case "slow":M(a.l,a.l.Hb);break;case "fast":M(a.l,a.l.qd);break;case "max":M(a.l,a.l.Ma);break;case "classic":bb(a,!0);a.i("classic syntax enabled");break;
|
||||
case "modern":bb(a,!1);a.i("modern syntax enabled");break;case "msg":e=0;void 0!==c[2]&&("all"==c[2]?e=255:void 0!==a.Ib[c[2]]&&(e=a.Ib[c[2]]),e&&("on"==c[3]?a.Ga|=e:"off"==c[3]&&(a.Ga&=~e)));for(d in a.Ib)if(void 0===c[2]||"all"==c[2]||c[2]==d)e=a.Ib[d],a.i(d+" messages: "+(a.Ga&e?"on":"off"));break;default:a.i("unknown option: "+e)}break;case "p":l=c[1];e=10;c=a.kb;d=a.Da;if(void 0!==d){g=void 0===l?a.Yf:parseInt(l,10);void 0===g&&(g=10);g>d.length&&(a.i("note: only "+d.length+" available"),g=d.length);
|
||||
void 0!==l&&(a.zc=0,a.i(g+" instructions earlier:"));l=a.zc?a.zc:1;c-=g;for(0>c&&(c=d.length-1);e&&c!=a.kb;){h=d[c];if(0>h)break;a.i(kb(a,h,l++));++c==d.length&&(c=0);e--;g--}a.Yf=g;a.zc=l}10==e&&a.i("no history available");break;case "r":fb(a,c);break;case "s":a.H(a.l.d)==a.l.Gb?(jb(a,a.l.d+3),a.Ta=!0,a.ya()||a.l.W()):mb(a);break;case "t":mb(a,c[1]);break;case "u":eb(a,c[1],c[2],8);break;case "?":case "help":a.i("\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");
|
||||
case "modern":bb(a,!1);a.i("modern syntax enabled");break;case "msg":e=0;void 0!==c[2]&&("all"==c[2]?e=255:void 0!==a.Ib[c[2]]&&(e=a.Ib[c[2]]),e&&("on"==c[3]?a.Ga|=e:"off"==c[3]&&(a.Ga&=~e)));for(d in a.Ib)if(void 0===c[2]||"all"==c[2]||c[2]==d)e=a.Ib[d],a.i(d+" messages: "+(a.Ga&e?"on":"off"));break;default:a.i("unknown option: "+e)}break;case "p":k=c[1];e=10;c=a.kb;d=a.Da;if(void 0!==d){g=void 0===k?a.Yf:parseInt(k,10);void 0===g&&(g=10);g>d.length&&(a.i("note: only "+d.length+" available"),g=d.length);
|
||||
void 0!==k&&(a.zc=0,a.i(g+" instructions earlier:"));k=a.zc?a.zc:1;c-=g;for(0>c&&(c=d.length-1);e&&c!=a.kb;){h=d[c];if(0>h)break;a.i(kb(a,h,k++));++c==d.length&&(c=0);e--;g--}a.Yf=g;a.zc=k}10==e&&a.i("no history available");break;case "r":fb(a,c);break;case "s":a.H(a.l.d)==a.l.Gb?(jb(a,a.l.d+3),a.Ta=!0,a.ya()||a.l.W()):mb(a);break;case "t":mb(a,c[1]);break;case "u":eb(a,c[1],c[2],8);break;case "?":case "help":a.i("\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");
|
||||
a.i("note: frequency and history commands operate only when breakpoints are set");break;default:a.i("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 ab(d);E(d,c)}});function $(a,b){z.call(this,"C1PComputer",a);this.Q=b}B($);$.prototype.reset=function(a){var b=null,c;for(c in this.Q)for(var d=0;d<this.Q[c].length;d++){var e=this.Q[c][d];e&&e.reset&&(e.reset(),"cpu"==c&&(b=e))}b&&(b.update(),a&&b.ya())};
|
||||
$.prototype.start=function(){for(var a in this.Q)if("cpu"!=a)for(var b=0;b<this.Q[a].length;b++){var c=this.Q[a][b];c&&c.start&&c.start()}};$.prototype.stop=function(a,b){for(var c in this.Q)if("cpu"!=c)for(var d=0;d<this.Q[c].length;d++){var e=this.Q[c][d];e&&e.stop&&e.stop(a,b)}};$.prototype.I=function(a,b,c,d){switch(c){case "reset":return this.r[c]=d,d.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function L(a,b){return a.Q[b]?a.Q[b][0]:null}
|
||||
function nb(a){var b=null,c;for(c in a.Q)for(var d=0;d<a.Q[c].length;d++){var e=a.Q[c][d];if(e){if(!I(e)){I(e,function(a){return function(){nb(a)}}(a));return}"cpu"==c?b=e:e.ba&&e.ba(!0,a)}}a.P();a.i("C1Pjs v1.15.4\nCopyright \u00a9 2012-2014 Jeff Parsons <Jeff@pcjs.org>");b&&b.ba(!0,a)}
|
||||
x(function(){for(var a=F(window.document,"c1pjs","computer"),b=0;b<a.length;b++){var c=a[b],d=D(c),e,g={},h=C("panel",d.id);if(h&&(g.panel=[h],h.sc)){var m;e=d.id;m=void 0;var l=[];e&&(e=0<(m=e.indexOf("."))?e.substr(0,m+1):"");for(m=0;m<A.length;m++){var k=A[m];e&&k.id.indexOf(e)||l.push(k)}m=l;for(l=0;l<m.length;l++)e=m[l],e!=h&&(e.Xb=h.Xb,e.i=h.i,e.sc=h.sc)}for(var p,l=m=h=0;l<d.modules.length;l++){k=d.modules[l];if(!l){if("cpu"!=k.type)break;h=k.start;m=k.end;p=Array(m+1-h);for(e=h;e<p.length;e++)p[e]=
|
||||
0}if(e=C(k.refID,d.id)){var s=k.type;void 0===g[s]&&(g[s]=[]);g[s].push(e);e.V&&void 0!==k.start&&e.V(p,k.start,k.end,g.cpu[0])}else{u('no component for <module refid="'+k.refID+'">');return}}if(void 0===p){u('<module type="cpu"> definition must appear first in the <computer> specification');break}if(e=C("debugger",d.id))g["debugger"]=[e],e.V&&e.V(p,h,m,g.cpu[0]);d=new $(d,g);E(d,c);nb(d)}});function ob(a,b,c,d){var e=t(a);if(e[0])throw Error(e[1]);return pb(e[1],a,b,c,d)}
|
||||
function pb(a,b,c,d,e){var g=null;if(a){if(e)for(var h=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g;g=h.exec(a);){var m=g[2],l=t(m),k=l[1];if(l[0]||!k)throw c="unable to resolve XML reference: "+g[0]+" ("+l[0]+")",Error(c);if(l=g[3]){var p=k.match(new RegExp("<"+g[1]+"[^>]*>"));if(p){for(var m=p[0],s,wa=/( [a-z]+=)(['"])(.*?)\2/g;s=wa.exec(l);)m=0>m.indexOf(s[1])?m.replace(">",s[0]+">"):m.replace(new RegExp(s[1]+"(['\"])(.*?)\\1"),s[0]);p[0]!=m&&(k=k.replace(p[0],m))}else throw c="missing <"+g[1]+"> in "+m,
|
||||
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?(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: "+
|
||||
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={},h,m=0,k=0,l=0;l<d.modules.length;l++){var p=d.modules[l];if(!l){if("cpu"!=p.type)break;m=p.start;k=p.end;h=Array(k+1-m);for(e=m;e<h.length;e++)h[e]=0}if(e=C(p.refID,d.id)){var s=p.type;void 0===g[s]&&(g[s]=[]);g[s].push(e);e.V&&void 0!==p.start&&e.V(h,p.start,p.end,g.cpu[0])}else{u('no component for <module refid="'+p.refID+'">');return}}if(void 0===h){u('<module type="cpu"> definition must appear first in the <computer> specification');
|
||||
break}if(e=C("debugger",d.id))g["debugger"]=[e],e.V&&e.V(h,m,k,g.cpu[0]);m=new $(d,g);if(k=C("panel",d.id))if(g.panel=[k],k.sc){e=d.id;d=void 0;g=[];e&&(e=0<(d=e.indexOf("."))?e.substr(0,d+1):"");for(d=0;d<A.length;d++)l=A[d],e&&l.id.indexOf(e)||g.push(l);d=g;for(g=0;g<d.length;g++)e=d[g],e!=k&&(e.Xb=k.Xb,e.i=k.i,e.sc=k.sc)}E(m,c);nb(m)}});function ob(a,b,c,d){var e=t(a);if(e[0])throw Error(e[1]);return pb(e[1],a,b,c,d)}
|
||||
function pb(a,b,c,d,e){var g=null;if(a){if(e)for(var h=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g;g=h.exec(a);){var m=g[2],k=t(m),l=k[1];if(k[0]||!l)throw c="unable to resolve XML reference: "+g[0]+" ("+k[0]+")",Error(c);if(k=g[3]){var p=l.match(new RegExp("<"+g[1]+"[^>]*>"));if(p){for(var m=p[0],s,wa=/( [a-z]+=)(['"])(.*?)\2/g;s=wa.exec(k);)m=0>m.indexOf(s[1])?m.replace(">",s[0]+">"):m.replace(new RegExp(s[1]+"(['\"])(.*?)\\1"),s[0]);p[0]!=m&&(l=l.replace(p[0],m))}else throw c="missing <"+g[1]+"> in "+m,
|
||||
Error(c);}l=l.replace(/<\?xml[^>]*>[\r\n]*/,"");a=a.replace(g[0],l);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?(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 h="<"==b.substr(0,1)?pb(b,null,a,void 0,!1):ob(b,a,void 0,!0);c=h[0];var m=h[1];if(m){var h=ob(d),l=h[1];if(l)if(window.ActiveXObject||"ActiveXObject"in window){var k=m.transformNode(l);k?g.outerHTML=k:e="transformNodeToObject failed"}else if(window.document.implementation&&window.document.implementation.createDocument){var p=new XSLTProcessor;p.importStylesheet(l);
|
||||
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 h="<"==b.substr(0,1)?pb(b,null,a,void 0,!1):ob(b,a,void 0,!0);c=h[0];var m=h[1];if(m){var h=ob(d),k=h[1];if(k)if(window.ActiveXObject||"ActiveXObject"in window){var l=m.transformNode(k);l?g.outerHTML=l:e="transformNodeToObject failed"}else if(window.document.implementation&&window.document.implementation.createDocument){var p=new XSLTProcessor;p.importStylesheet(k);
|
||||
var s=p.transformToFragment(m,window.document);s?g.parentNode.replaceChild(s,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(wa){e=wa.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
|
||||
|
|
|
|||
Loading…
Reference in a new issue