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
Binary file not shown.
|
|
@ -271,28 +271,6 @@ C1PComputer.init = function()
|
|||
var component;
|
||||
var modules = {};
|
||||
|
||||
/*
|
||||
* Let's see if the Control Panel is installed (NOTE: its ID must be "panel", and only one per machine is supported);
|
||||
* the Panel needs our setPower() notifications, and this relieves us from having an explicit <module> entry for type="panel".
|
||||
*/
|
||||
var panel = Component.getComponentByID('panel', parmsComputer['id']);
|
||||
if (panel) {
|
||||
modules['panel'] = [panel];
|
||||
/*
|
||||
* Iterate through all the other components and update their print methods if the Control Panel has provided overrides.
|
||||
*/
|
||||
if (panel.controlPrint) {
|
||||
var aComponents = Component.getComponents(parmsComputer['id']);
|
||||
for (var iComponent = 0; iComponent < aComponents.length; iComponent++) {
|
||||
component = aComponents[iComponent];
|
||||
if (component == panel) continue;
|
||||
component.notice = panel.notice;
|
||||
component.println = panel.println;
|
||||
component.controlPrint = panel.controlPrint;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var abMemory;
|
||||
var addrStart = 0, addrEnd = 0;
|
||||
|
||||
|
|
@ -350,10 +328,34 @@ C1PComputer.init = function()
|
|||
}
|
||||
|
||||
var computer = new C1PComputer(parmsComputer, modules);
|
||||
|
||||
/*
|
||||
* Let's see if the Control Panel is installed (NOTE: its ID must be "panel", and only one per machine is supported);
|
||||
* the Panel needs our setPower() notifications, and this relieves us from having an explicit <module> entry for type="panel".
|
||||
*/
|
||||
var panel = Component.getComponentByID('panel', parmsComputer['id']);
|
||||
if (panel) {
|
||||
modules['panel'] = [panel];
|
||||
/*
|
||||
* Iterate through all the other components and update their print methods if the Control Panel has provided overrides.
|
||||
*/
|
||||
if (panel.controlPrint) {
|
||||
var aComponents = Component.getComponents(parmsComputer['id']);
|
||||
for (var iComponent = 0; iComponent < aComponents.length; iComponent++) {
|
||||
component = aComponents[iComponent];
|
||||
if (component == panel) continue;
|
||||
component.notice = panel.notice;
|
||||
component.println = panel.println;
|
||||
component.controlPrint = panel.controlPrint;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* We may eventually add a "Power" button, but for now, all we have is a "Reset" button
|
||||
*/
|
||||
Component.bindComponentControls(computer, eComputer, C1PJSCLASS);
|
||||
|
||||
/*
|
||||
* "Power" the computer automatically
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
(function(){var e;function q(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,l=null,h=aa(a),m=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(m.onreadystatechange=function(){4===m.readyState&&(m.onreadystatechange=void 0,l=m.responseText,200!=m.status&&(g=m.status||-1),d&&f&&f.call(d,h,l,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||(l=m.responseText,200!=m.status&&(g=m.status||-1),d&&f&&f.call(d,h,l,g,void 0),a=[g,l]);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 r(a,b,c,d,f){b=!!b;var g=0,m=null,l=aa(a),h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(h.onreadystatechange=function(){4===h.readyState&&(h.onreadystatechange=void 0,m=h.responseText,200!=h.status&&(g=h.status||-1),d&&f&&f.call(d,l,m,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,"+");h.open("POST",a,b);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");
|
||||
h.send(k)}else h.open("GET",a,b),h.send();a=[];b||(m=h.responseText,200!=h.status&&(g=h.status||-1),d&&f&&f.call(d,l,m,g,void 0),a=[g,m]);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.ec=this.id.substr(0,b),this.dc=this.id.substr(b+1)):this.dc=this.id;this[a]=c;this.mb=null;this.Na=this.qa=this.lb=this.Oa=!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(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 E(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("({"+a+"})")}catch(c){s(c.message+" ("+a+")")}return b}
|
||||
function F(a,b){var c,d;d=G(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 l=g[f];if(l.nodeType===window.document.ELEMENT_NODE){var h=l.getAttribute("class");if(h){var m,k;k=h.split(" ");for(m=0;m<k.length;m++)switch(h=k[m],h){case "c1pjs-input":case "c1pjs-output":(k=E(l))&&k.binding&&a.H(h,k.type,k.binding,l),k=[]}}}}}}
|
||||
function F(a,b){var c,d;d=G(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 m=g[f];if(m.nodeType===window.document.ELEMENT_NODE){var l=m.getAttribute("class");if(l){var h,k;k=l.split(" ");for(h=0;h<k.length;h++)switch(l=k[h],l){case "c1pjs-input":case "c1pjs-output":(k=E(m))&&k.binding&&a.H(l,k.type,k.binding,m),k=[]}}}}}}
|
||||
function G(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},H: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.jb=this.o[c]=d,d.value="",this.t=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.Ta=function(a,
|
||||
b,c){this.t(a,"notice",c)}),!0;default:return!1}},log:function(){},t:function(){},status:function(a){this.t(this.dc+": "+a)},Ta:function(a,b){b||s(a)},J:function(a){!this.Na&&(this.Oa=!1!==a)&&(this.name&&this.log("ready"),a=this.mb,this.mb=null,a&&a())}};function ia(a,b){if(a.lb)return a.qa&&(a.qa=!1),a.lb=!1;if(a.Na)return a.t(a.toString()+" error"),!1;a.qa=b;return a.qa}function H(a,b){b&&(a.Oa?b():a.mb=b);return a.Oa}function I(a,b){a.Na=!0;a.Ta("Fatal error: "+b)}
|
||||
|
|
@ -89,16 +89,16 @@ a.G.reset(!0)}}(this),!0;default:if(void 0!==this.fa[c])return this.o[c]=d,d.onc
|
|||
e.J=function(){this.bc=(this.Ld=t("iOS"))||t("Android");y.prototype.J.call(this)};function ya(a,b){var c=b?a.Sd:a.Rd;a.s&&a.s.W&&(c/=a.s.W);return c}function za(a,b){!a.$||void 0!==b&&b==a.$||(clearTimeout(a.Q[a.$]),W(a,a.$,!1,a.rd))}function X(a,b,c){a.ca=b;Aa(a,c||a.Pd)}function Aa(a,b){if(0<a.ca.length){var c=a.ca.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.ca=a.ca.substr(1);V(a,c)}0<a.ca.length&&setTimeout(function(a){return function(){Aa(a,b)}}(a),b)}
|
||||
function xa(a,b,c){var d,f=!c;b=b.keyCode;c&&(a.Gc=b);b==a.l-a.K?(a.v&=~a.Ba,c&&(a.v|=a.Ba),b+=a.K,f=!1):b==a.Za-a.K?(a.v&=~a.Ca,c&&(a.v|=a.Ca),b+=a.K,f=!1):b==a.Ea-a.K?(a.v&=~a.Aa,c&&(a.v|=a.Aa),b+=a.K,f=!1):b==a.Ab-a.K?(c=!c,a.v&=~a.Da,c&&(a.v|=a.Da),b+=a.K,f=!1):b==a.$c?(a.v&=~a.na,c&&(a.v|=a.na),f=!1,d=!0):d=b==a.ed?f=!1:b==a.Fb||b==a.Eb?c?!V(a,b):!1:!0;f&&(a.v&=~a.na,a.bc||b!=a.Gc||za(a));void 0===d&&(d=!W(a,b,c,a.sd));return d}
|
||||
function V(a,b){var c=!1;b==a.yb?a.G&&(a.G.reset(!0),c=!0):(a.bc&&65<=b&&90>=b&&(b+=32),za(a,b),W(a,b,!0,a.Pb)&&(a.s.speed==a.s.oa?W(a,b,!1,a.td):(c=!1,a.Q[b]&&(clearTimeout(a.Q[b]),c=!0),c=ya(a,c),a.Q[a.$=b]=setTimeout(function(a){return function(){W(a,b,!1,a.ud)}}(a),c)),c=!0));return c}
|
||||
function W(a,b,c,d){var f=!1;c||(a.Q[b]=null,a.$==b&&(a.$=0));var g=0,l=a.j[b];void 0===l&&(1<=b&&26>=b&&(b+=64,g=a.Ea),l=a.j[b]);void 0!==l&&(b=l>>12,f=l>>8&15,g||(g=l&255),c?(a.F[b]|=1<<f,a.F[0]=g==a.Ea?a.F[0]|a.Aa:g==a.l?a.F[0]|a.Ba:g==a.Za?a.F[0]|a.Ca:a.F[0]&~a.Ya):(a.F[b]&=~(1<<f),a.F[0]&=~a.Ya,a.F[0]|=a.v&a.Ya),c=d==a.Pb&&!a.bb.length,a.bb.push(a.F.slice()),a.Xa(c),f=!0);return f}e.N=function(){};e.L=function(a){var b=this.s.N(a);this.Wb=b^this.ib;this.sb++;this.Xa(!1,a,b)};
|
||||
function W(a,b,c,d){var f=!1;c||(a.Q[b]=null,a.$==b&&(a.$=0));var g=0,m=a.j[b];void 0===m&&(1<=b&&26>=b&&(b+=64,g=a.Ea),m=a.j[b]);void 0!==m&&(b=m>>12,f=m>>8&15,g||(g=m&255),c?(a.F[b]|=1<<f,a.F[0]=g==a.Ea?a.F[0]|a.Aa:g==a.l?a.F[0]|a.Ba:g==a.Za?a.F[0]|a.Ca:a.F[0]&~a.Ya):(a.F[b]&=~(1<<f),a.F[0]&=~a.Ya,a.F[0]|=a.v&a.Ya),c=d==a.Pb&&!a.bb.length,a.bb.push(a.F.slice()),a.Xa(c),f=!0);return f}e.N=function(){};e.L=function(a){var b=this.s.N(a);this.Wb=b^this.ib;this.sb++;this.Xa(!1,a,b)};
|
||||
e.Xa=function(a,b){var c=ta(this.s);if(!a)if(this.s.speed==this.s.oa)a=void 0!==b&&32<=this.sb;else{var d=c-this.ic;a=0>d||d>=this.Ud}a&&(d=this.bb.shift(),void 0!==d&&(this.Vb=d),this.sb=0,this.ic=c);for(d=c=0;8>d;d++)this.Wb&1<<d&&(c|=this.Vb[d]);c^=this.ib;if(void 0!==b)this.a[b]=c;else if(b=this.nc,c!=this.Xb)for(d=b;d<this.Wd;d++)this.a[d]=c;this.Xb=c};w(function(){for(var a=G(window.document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new wa(d);F(d,c)}});
|
||||
function Ba(a,b,c,d){y.call(this,"C1PVideo",a);this.ob=a.model;this.jc=a.charCols;this.kc=a.charRows;this.Id=a.screenWidth;this.Jd=a.screenHeight;this.Ka=a.charWidth;this.La=a.charHeight;Ca(this);this.Ma=b;this.Gd=c;this.ra=d;this.pa=56832}C(Ba);e=Ba.prototype;e.reset=function(a){this.za(this.ob);if(this.a)for(var b=this.Ua;b<this.wb;b++)this.a[b]=a?Math.floor(256*Math.random()):32};
|
||||
e.H=function(a,b,c,d){switch(c){case "refresh":return this.o[c]=d,d.onclick=function(a){return function(){Da(a);P(a)}}(this),!0}return!1};e.P=function(a,b,c,d){this.a=a;this.Ua=b;this.Fd=c-b+1;this.wb=this.Ua+this.Fd;d&&(this.s=d,void 0!==this.pa&&(ma(d,this.pa,this.pa,this,this.N),Q(d,this.pa,this.pa,this,this.L)));this.reset(!0)};
|
||||
function Ca(a,b,c,d,f){a.Ra=void 0!==b?b:a.jc;a.Vd=void 0!==c?c:a.kc;a.ha=a.Ra*a.Vd;a.wb=a.Ua+a.ha;a.cc=void 0!==d?d:0;a.lc=void 0!==f?f:c;a.Yb=Math.floor(a.Id/a.Ra);a.Zb=Math.floor(a.Jd/a.lc)}e.da=function(){this.Ma.focus()};e.za=function(a){this.wa=a;600==this.wa?(Ca(this,this.jc,this.kc,4,24),1024==this.ha&&this.s&&(this.Ga=this.wb+this.ha-1,Q(this.s,this.Ga,this.Ga,this,this.Kc))):(this.t("updated video model: "+this.wa),Ca(this,64,32));Da(this);P(this)};
|
||||
e.S=function(a,b){if(a&&!this.A&&H(this)){if(this.A=!0,this.C=K(b,"keyboard"))this.C.H("input","canvas","keyDown",this.Ma),this.C.H("input","canvas","keyPress",this.Ma),this.C.H("input","canvas","keyUp",this.Ma)}else!a&&this.A&&(this.A=!1)};e.J=function(){this.Ka||(this.Ka=Math.floor(this.ra.width/16));this.La||(this.La=Math.floor(this.ra.height/16));y.prototype.J.call(this)};e.N=function(a){var b=this.s.N(a);this.s.L(a,b&127|(Math.floor(ta(this.s)/8333)&1?128:0))};e.L=function(){};
|
||||
e.Kc=function(a,b){if(void 0!==b){this.za(540);this.C&&this.C.za(542);var c=this.s,d=c.T,f=[],g=na(d,this.Ga,this.Ga,this,this.Kc);if(0<=g){f.push(d[g][0]);f.push(d[g][1]);d.splice(g,1);for(var l=65536,h=0,g=0;g<d.length;g++)l>d[g][0]&&(l=d[g][0]),h<d[g][1]&&(h=d[g][1]);f.push(l);f.push(h)}4==f.length&&(c.Ha=f[2],c.Ia=f[3])}};function Da(a){a.cb=Array(a.ha);for(var b=0;b<=a.ha;b++)a.cb[b]=-1}
|
||||
e.Kc=function(a,b){if(void 0!==b){this.za(540);this.C&&this.C.za(542);var c=this.s,d=c.T,f=[],g=na(d,this.Ga,this.Ga,this,this.Kc);if(0<=g){f.push(d[g][0]);f.push(d[g][1]);d.splice(g,1);for(var m=65536,l=0,g=0;g<d.length;g++)m>d[g][0]&&(m=d[g][0]),l<d[g][1]&&(l=d[g][1]);f.push(m);f.push(l)}4==f.length&&(c.Ha=f[2],c.Ia=f[3])}};function Da(a){a.cb=Array(a.ha);for(var b=0;b<=a.ha;b++)a.cb[b]=-1}
|
||||
function P(a){var b=0;if(a.A)for(;b<a.ha;){var c=a.a[a.Ua+b];if(a.cb[b]!=c){var d=Math.floor(b/a.Ra);if(d>=a.cc&&(d-=a.cc,d<a.lc)){var f=c*a.Ka;a.Gd.drawImage(a.ra,f%a.ra.width,Math.floor(f/a.ra.width)*a.La,a.Ka,a.La,b%a.Ra*a.Yb,d*a.Zb,a.Yb,a.Zb)}a.cb[b]=c}b++}}
|
||||
w(function(){for(var a=G(window.document,"c1pjs","video"),b=0;b<a.length;b++){var c=a[b],d=E(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,l=f.getContext("2d"),f=new Ba(d,f,l,g);g.onload=function(a){return function(){a.J()}}(f,d.charSet);g.src=d.charSet;F(f,c)}});
|
||||
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,m=f.getContext("2d"),f=new Ba(d,f,m,g);g.onload=function(a){return function(){a.J()}}(f,d.charSet);g.src=d.charSet;F(f,c)}});
|
||||
function Ea(a){y.call(this,"C1PSerialPort",a);this.A=!1;this.ac=a.demo;this.zd=0;this.yd=1;this.reset()}C(Ea);e=Ea.prototype;e.reset=function(){2!=this.Z&&(this.Ja=this.hb=0,this.ma='10 PRINT "HELLO OSI #'+ea(this)+'"\n',this.Z=this.Pa=0)};e.start=function(){this.C&&this.ac&&(X(this.C," C\n\n",3E3),setTimeout(function(a){return function(){a.Z=1;X(a.C,"LOAD\n")}}(this),12E3));this.ac=!1};
|
||||
e.H=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.Nd)}}(this),!0}return!1};e.P=function(a,b,c,d){this.a=a;this.ub=b;this.Ed=c-b+1;this.pc=this.ub+this.Ed;if(this.s=d)ma(d,b,c,this,this.N),Q(d,b,c,this,this.L);this.J()};e.S=function(a,b){a&&!this.A&&(this.A=!0,this.G=b,this.C=K(b,"keyboard"))};
|
||||
e.Nd=function(a,b,c){b?(this.ma=b,this.Z=this.Pa=0,this.G&&this.C&&this.s.R?(this.t("auto-loading "+a),this.s.da(),"."!=this.ma.charAt(0)?(this.Z=1,X(this.C,"NEW\nLOAD\n")):(this.Z=2,this.G.reset(!0),X(this.C,"ML"))):this.t(a+" ready to load")):this.t(a+" load error ("+c+")")};e.N=function(a,b){void 0!==b&&(a&1?Fa(this):this.ma&&!this.Pa&&Fa(this))};e.L=function(){};
|
||||
|
|
@ -110,18 +110,18 @@ O:function(){},update:function(a){return function(c){void 0!==c&&(this.p=c&~(a.B
|
|||
20,a.aa.update(a.aa.p|a.$a),Ja(a))}this.p=c;a.Wa.p&a.ea&&Y(a,a.Ob,this)}}(a)};a.Wa={p:0,O:function(){},update:function(a){return function(c){void 0!==c&&(this.p=c&~(a.Bb|a.Cb));Y(a,a.Lb,this);a.xa.update();a.Ic.update()}}(a)};a.Rg={p:0,O:function(){},update:function(a){return function(c){void 0!==c&&((c&a.Db)==a.Db&&(a.ba.p=a.Tb|a.Rb|a.Qb),this.p=c);a.ba.update()}}(a)};a.ba={p:a.Tb|a.Rb|a.Qb,O:function(){},update:function(a){return function(c){void 0===c&&(c=a.ba.p);c&=~a.Sb;0<=a.D&&0<=a.M[a.D].ia&&
|
||||
(c|=a.Sb);this.p=c;Y(a,a.qd,this)}}(a)};a.xb={p:0,O:function(a){return function(){Ka(a)}}(a),update:function(a){return function(c){void 0!==c&&(this.p=c);Y(a,a.Mb,this)}}(a)};a.Sg={p:0,O:function(){},update:function(){return function(){}}(a)}}
|
||||
e.H=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);a.t("loading "+aa(b)+"...");r(c,!0,null,a,a.Md)}}}(this),!0}return!1};e.P=function(a,b,c,d){this.a=a;this.eb=b;if(this.s=d)ma(d,b,c,this,this.N),Q(d,b,c,this,this.L);this.J()};e.S=function(a){a&&!this.A&&(this.A=!0)};
|
||||
e.Md=function(a,b,c){if(c)this.t("disk load error ("+c+")");else{c=[];this.t("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.t("data error: "+d[0]);else if(this.M[0]){for(b=0;b<d.length;b++){var f,g=d[b],l=g.sectors;if(void 0===(f=g.trackNum)||void 0===l)throw"track "+b+" missing data";f!=b&&s("track "+f+" out of order (expected "+b+")");c=[];var h,m,k;if(f){La(c,g,"trackSig");Ma(c,g);Z(c,g,"trackType");for(var n=0;n<l.length;n++){h=
|
||||
l[n];m=h.sectorData;Z(c,h,"sectorSig");Z(c,h,"sectorNum");Z(c,h,"sectorPages");for(k=0;k<m.length;k++)c.push(m[k]);La(c,h,"sectorEndSig")}}else for(h=l[0],m=h.sectorData,Z(c,g,"trackLoad",2),Z(c,h,"sectorPages"),k=0;k<m.length;k++)c.push(m[k]);d[f].Jc=c}this.M[0].Fa=d;this.t("mount of "+a+" complete")}else this.t("no available drives")}else this.t("no tracks: "+a);else this.t("no data: "+a)}catch(p){this.t("disk data error: "+(p.message||p))}}};
|
||||
e.Md=function(a,b,c){if(c)this.t("disk load error ("+c+")");else{c=[];this.t("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.t("data error: "+d[0]);else if(this.M[0]){for(b=0;b<d.length;b++){var f,g=d[b],m=g.sectors;if(void 0===(f=g.trackNum)||void 0===m)throw"track "+b+" missing data";f!=b&&s("track "+f+" out of order (expected "+b+")");c=[];var l,h,k;if(f){La(c,g,"trackSig");Ma(c,g);Z(c,g,"trackType");for(var n=0;n<m.length;n++){l=
|
||||
m[n];h=l.sectorData;Z(c,l,"sectorSig");Z(c,l,"sectorNum");Z(c,l,"sectorPages");for(k=0;k<h.length;k++)c.push(h[k]);La(c,l,"sectorEndSig")}}else for(l=m[0],h=l.sectorData,Z(c,g,"trackLoad",2),Z(c,l,"sectorPages"),k=0;k<h.length;k++)c.push(h[k]);d[f].Jc=c}this.M[0].Fa=d;this.t("mount of "+a+" complete")}else this.t("no available drives")}else this.t("no tracks: "+a);else this.t("no data: "+a)}catch(p){this.t("disk data error: "+(p.message||p))}}};
|
||||
function Ma(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 La(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 Na(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case a.Nb:a=a.Va.p&a.ea?a.aa:a.Hc;break;case a.Kb:a=a.Va;break;case a.Ob:a=a.Wa.p&a.ea?a.xa:a.Ic;break;case a.Lb:a=a.Wa;break;case a.nd:a=c?a.Rg:a.ba;break;case a.Mb:a=a.xb;break;default:a=a.Sg}return a}e.N=function(a,b){void 0!==b&&Na(this,a-this.eb,!1).O()};e.L=function(a,b){if(void 0!==b){var c=this.s.N(a);Na(this,a-this.eb,!0).update(c)}};
|
||||
function Ia(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&a.ld||(d|=2),a.aa.p&a.Gb||(d|=1));a.D!=d&&(a.D=d,a.ba.update())}function Ja(a){0<=a.D&&(a.M[a.D].ia=-1,a.xb.update(255),a.ba.update())}function Ka(a){var b=null;if(0<=a.D){var b=a.M[a.D],c=b.Fa[b.V];void 0!==c&&(0<=b.ia&&b.ia<c.Jc.length?(b.ka=100,b=c.Jc[b.ia++],a.xb.update(b),a.ba.update()):(b.ka=10,Ja(a)))}}function Y(a,b,c){a.s.L(b+a.eb,c.p)}
|
||||
w(function(){for(var a=G(window.document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Ga(d);F(d,c)}});function $(a,b){y.call(this,"C1PComputer",a);this.I=b}C($);$.prototype.reset=function(a){var b=null,c;for(c in this.I)for(var d=0;d<this.I[c].length;d++){var f=this.I[c][d];f&&f.reset&&(f.reset(),"cpu"==c&&(b=f))}b&&(b.update(),a&&N(b))};$.prototype.start=function(){for(var a in this.I)if("cpu"!=a)for(var b=0;b<this.I[a].length;b++){var c=this.I[a][b];c&&c.start&&c.start()}};
|
||||
$.prototype.stop=function(a,b){for(var c in this.I)if("cpu"!=c)for(var d=0;d<this.I[c].length;d++){var f=this.I[c][d];f&&f.stop&&f.stop(a,b)}};$.prototype.H=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 K(a,b){return a.I[b]?a.I[b][0]:null}
|
||||
function Oa(a){var b=null,c;for(c in a.I)for(var d=0;d<a.I[c].length;d++){var f=a.I[c][d];if(f){if(!H(f)){H(f,function(a){return function(){Oa(a)}}(a));return}"cpu"==c?b=f:f.S&&f.S(!0,a)}}a.J();a.t("C1Pjs v1.15.4\nCopyright \u00a9 2012-2014 Jeff Parsons <Jeff@pcjs.org>");b&&b.S(!0,a)}
|
||||
w(function(){for(var a=G(window.document,"c1pjs","computer"),b=0;b<a.length;b++){var c=a[b],d=E(c),f,g={},l=D("panel",d.id);if(l&&(g.panel=[l],l.jb)){var h;f=d.id;h=void 0;var m=[];f&&(f=0<(h=f.indexOf("."))?f.substr(0,h+1):"");for(h=0;h<z.length;h++){var k=z[h];f&&k.id.indexOf(f)||m.push(k)}h=m;for(m=0;m<h.length;m++)f=h[m],f!=l&&(f.Ta=l.Ta,f.t=l.t,f.jb=l.jb)}for(var n,m=h=l=0;m<d.modules.length;m++){k=d.modules[m];if(!m){if("cpu"!=k.type)break;l=k.start;h=k.end;n=Array(h+1-l);for(f=l;f<n.length;f++)n[f]=
|
||||
0}if(f=D(k.refID,d.id)){var p=k.type;void 0===g[p]&&(g[p]=[]);g[p].push(f);f.P&&void 0!==k.start&&f.P(n,k.start,k.end,g.cpu[0])}else{s('no component for <module refid="'+k.refID+'">');return}}if(void 0===n){s('<module type="cpu"> definition must appear first in the <computer> specification');break}if(f=D("debugger",d.id))g["debugger"]=[f],f.P&&f.P(n,l,h,g.cpu[0]);d=new $(d,g);F(d,c);Oa(d)}});function Pa(a,b,c,d){var f=r(a);if(f[0])throw Error(f[1]);return Qa(f[1],a,b,c,d)}
|
||||
function Qa(a,b,c,d,f){var g=null;if(a){if(f)for(var l=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g;g=l.exec(a);){var h=g[2],m=r(h),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 h=n[0],p,ka=/( [a-z]+=)(['"])(.*?)\2/g;p=ka.exec(m);)h=0>h.indexOf(p[1])?h.replace(">",p[0]+">"):h.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);n[0]!=h&&(k=k.replace(n[0],h))}else throw c="missing <"+g[1]+"> in "+h,
|
||||
Error(c);}k=k.replace(/<\?xml[^>]*>[\r\n]*/,"");a=a.replace(g[0],k);l.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: "+
|
||||
w(function(){for(var a=G(window.document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=E(c),f,g={},m,l=0,h=0,k=0;k<d.modules.length;k++){var n=d.modules[k];if(!k){if("cpu"!=n.type)break;l=n.start;h=n.end;m=Array(h+1-l);for(f=l;f<m.length;f++)m[f]=0}if(f=D(n.refID,d.id)){var p=n.type;void 0===g[p]&&(g[p]=[]);g[p].push(f);f.P&&void 0!==n.start&&f.P(m,n.start,n.end,g.cpu[0])}else{s('no component for <module refid="'+n.refID+'">');return}}if(void 0===m){s('<module type="cpu"> definition must appear first in the <computer> specification');
|
||||
break}if(f=D("debugger",d.id))g["debugger"]=[f],f.P&&f.P(m,l,h,g.cpu[0]);l=new $(d,g);if(h=D("panel",d.id))if(g.panel=[h],h.jb){f=d.id;d=void 0;g=[];f&&(f=0<(d=f.indexOf("."))?f.substr(0,d+1):"");for(d=0;d<z.length;d++)k=z[d],f&&k.id.indexOf(f)||g.push(k);d=g;for(g=0;g<d.length;g++)f=d[g],f!=h&&(f.Ta=h.Ta,f.t=h.t,f.jb=h.jb)}F(l,c);Oa(l)}});function Pa(a,b,c,d){var f=r(a);if(f[0])throw Error(f[1]);return Qa(f[1],a,b,c,d)}
|
||||
function Qa(a,b,c,d,f){var g=null;if(a){if(f)for(var m=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g;g=m.exec(a);){var l=g[2],h=r(l),k=h[1];if(h[0]||!k)throw c="unable to resolve XML reference: "+g[0]+" ("+h[0]+")",Error(c);if(h=g[3]){var n=k.match(new RegExp("<"+g[1]+"[^>]*>"));if(n){for(var l=n[0],p,ka=/( [a-z]+=)(['"])(.*?)\2/g;p=ka.exec(h);)l=0>l.indexOf(p[1])?l.replace(">",p[0]+">"):l.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[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);m.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 l="<"==b.substr(0,1)?Qa(b,null,a,void 0,!1):Pa(b,a,void 0,!0);c=l[0];var h=l[1];if(h){var l=Pa(d),m=l[1];if(m)if(window.ActiveXObject||"ActiveXObject"in window){var k=h.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 p=n.transformToFragment(h,window.document);p?g.parentNode.replaceChild(p,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(ka){f=ka.message}f&&g&&(a=G(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
|
||||
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 m="<"==b.substr(0,1)?Qa(b,null,a,void 0,!1):Pa(b,a,void 0,!0);c=m[0];var l=m[1];if(l){var m=Pa(d),h=m[1];if(h)if(window.ActiveXObject||"ActiveXObject"in window){var k=l.transformNode(h);k?g.outerHTML=k:f="transformNodeToObject failed"}else if(window.document.implementation&&window.document.implementation.createDocument){var n=new XSLTProcessor;n.importStylesheet(h);
|
||||
var p=n.transformToFragment(l,window.document);p?g.parentNode.replaceChild(p,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(ka){f=ka.message}f&&g&&(a=G(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
|
||||
|
|
|
|||
Loading…
Reference in a new issue