Added support for assembling PDP-10 I/O instructions
This commit is contained in:
parent
c4f7262e71
commit
a1dba6a679
5 changed files with 965 additions and 948 deletions
|
|
@ -1585,16 +1585,26 @@ class DebuggerPDP10 extends Debugger {
|
|||
break;
|
||||
}
|
||||
if (!i && aOperands.length > 1) {
|
||||
if (operand < 0 || operand > PDP10.OPCODE.A_MASK) {
|
||||
this.println("accumulator index out of range: " + match[2]);
|
||||
opCode = -1;
|
||||
break;
|
||||
if (opMask == PDP10.OPCODE.OPIO) {
|
||||
if (operand < 0 || operand > PDP10.OPCODE.IOMASK) {
|
||||
this.println("device code out of range: " + match[2]);
|
||||
opCode = -1;
|
||||
break;
|
||||
}
|
||||
opCode += (operand * PDP10.OPCODE.IOSHIFT);
|
||||
}
|
||||
else {
|
||||
if (operand < 0 || operand > PDP10.OPCODE.A_MASK) {
|
||||
this.println("accumulator address out of range: " + match[2]);
|
||||
opCode = -1;
|
||||
break;
|
||||
}
|
||||
opCode += (operand << PDP10.OPCODE.A_SHIFT);
|
||||
}
|
||||
opCode += (operand << PDP10.OPCODE.A_SHIFT);
|
||||
continue;
|
||||
}
|
||||
if (operand < 0 || operand > PDP10.OPCODE.Y_MASK) {
|
||||
this.println("address out of range: " + match[2]);
|
||||
this.println("memory address out of range: " + match[2]);
|
||||
opCode = -1;
|
||||
break;
|
||||
}
|
||||
|
|
@ -1606,7 +1616,7 @@ class DebuggerPDP10 extends Debugger {
|
|||
break;
|
||||
}
|
||||
if (operand < 0 || operand > PDP10.OPCODE.X_MASK) {
|
||||
this.println("index out of range: " + match[3]);
|
||||
this.println("memory index out of range: " + match[3]);
|
||||
opCode = -1;
|
||||
break;
|
||||
}
|
||||
|
|
@ -3644,7 +3654,7 @@ class DebuggerPDP10 extends Debugger {
|
|||
op = ops[sOperation];
|
||||
this.println(Str.pad(sOperation + ":", 8) + this.toStrWord(op * Math.pow(2, 21)));
|
||||
//
|
||||
// The following code leveraged the disassembler to generate opcode handlers for all known opcodes.
|
||||
// The following code leveraged the disassembler to generate opcode handlers.
|
||||
//
|
||||
// this.println("/**");
|
||||
// this.println(" * op" + sOperation + "(" + this.toStrWord(op * Math.pow(2, 21)) + ")");
|
||||
|
|
@ -3654,17 +3664,18 @@ class DebuggerPDP10 extends Debugger {
|
|||
// this.println(" */");
|
||||
// this.println("PDP10.op" + sOperation + " = function(opCode)");
|
||||
// this.println("{");
|
||||
// this.println(" this.opUndefined(op);");
|
||||
// this.println("};\n");
|
||||
}
|
||||
//
|
||||
// The following code leveraged the disassembler to generate an opcode dispatch table for all known opcodes.
|
||||
// The following code generated an opcode dispatch table.
|
||||
//
|
||||
// this.println("PDP10.aOpXXX = [");
|
||||
// for (opXXX = 0o000; opXXX <= 0o777; opXXX++) {
|
||||
// sOperation = aOpXXX[opXXX];
|
||||
// sOperation = sOperation? (" PDP10.op" + sOperation + ",") : " PDP10.opUndefined,";
|
||||
// sOperation = Str.pad(sOperation, 32);
|
||||
// sOperation += "// " + Str.toOct(opXXX, 3, true) + "xxx yyyyyy";
|
||||
// sOperation += "// " + Str.toOct(opXXX, 3, true) + "xxx";
|
||||
// this.println(sOperation);
|
||||
// }
|
||||
// this.println("];");
|
||||
|
|
|
|||
|
|
@ -19,47 +19,49 @@
|
|||
http://pcjs.org/modules/c1pjs/lib/debugger.js (C) Jeff Parsons 2012-2017
|
||||
http://pcjs.org/modules/c1pjs/lib/computer.js (C) Jeff Parsons 2012-2017
|
||||
*/
|
||||
var f;function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function q(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(0>a&&-1<a&&(a=-1);0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function t(a){return q(a,2,!0)}
|
||||
function u(a){return q(a,4,!0)}function aa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function ba(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ca(a){return a.replace(/[&<>"']/g,function(a){return da[a]})}var da={"&":"&","<":"<",">":">",'"':""","'":"'"},ea=Date.now||function(){return+new Date};
|
||||
function v(a,b){var c=!0,c=void 0===c?!1:c,d=0,e=null;if("object"==typeof resources&&(e=resources[a]))b&&b(a,e,d);else if(c&&"function"==typeof resources)resources(a,function(c,d){b&&b(a,c,d)});else{var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(e=g.responseText,200==g.status||!g.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(d=g.status||-1),b&&b(a,e,d))});g.open("GET",
|
||||
a,c);g.send();c||(e=g.responseText,200!=g.status&&(d=g.status||-1),b&&b(a,e,d))}}function w(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)}return!1}function fa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function ga(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}}function ha(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function x(a){y.init.push(a)}
|
||||
function ia(a){if(ja)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){z(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function A(a){!ja&&a?(ja=!0,ka&&la("init"),ma&&la("show")):ja=a}function la(a){y[a]&&ia(y[a])}var na=null,y={init:[],show:[],exit:[]},ka=!1,ma=!1,ja=!0;ha("onload",function(){ka=!0;ia(y.init)});ha("onpageshow",function(){ma=!0;ia(y.show)});ha(w("Opera")||w("iOS")?"onunload":"onbeforeunload",function(){ia(y.exit)});
|
||||
function B(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.exports={};this.H=this.bindings={};a=this.id.indexOf(".");0>a?this.fb=this.id:(this.nb=this.id.substr(0,a),this.fb=this.id.substr(a+1));this.C={ready:!1,Ga:!1,bb:!1,N:!1,error:!1};this.eb=null;this.C.error=!1;this.ma=c||0;this.u=this.s=this.U=this.Sa=null;C.push(this)}function z(a){window&&window.alert(a)}
|
||||
function oa(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<C.length;c++)if(C[c].id===a)return C[c]}return null}function pa(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<C.length;d++)if(c)c==C[d]&&(c=null);else if(!(a!=C[d].type||b&&C[d].id.indexOf(b)))return C[d]}return null}function D(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){z(c.message+" ("+a+")")}return b}
|
||||
function E(a,b){b=F(b.parentNode,"c1pjs-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var g=d[e];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var l=h.split(" "),k=0;k<l.length;k++)switch(h=l[k],h){case "c1pjs-binding":(h=D(g))&&h.binding&&a.T(h.type,h.binding,g,h.value),k=l.length}}}}
|
||||
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}
|
||||
function qa(a){for(var b=!0,c=ra[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],g=null;0<=sa.indexOf(e)&&(g=function(){return function(){qa(a)}}());var h=ta[e];if(h)if(!g)b=h(d[1],d[2],d[3]);else{if(!h(g,d[1],d[2],d[3]))break}else{var b=!1,l=pa(d[1],a);if(l)if(h=ua[e])b=h(l,d[2],d[3]);else{var k=l.exports;if(k&&(h=k[e]))if(b=!0,!g)b=h.call(l,d[2],d[3]);else if(!h.call(l,g,d[2],d[3]))break}}if(!b){z("Script error: "+e+(h?" failed":" unrecognized"));break}}c&&!c.length&&delete ra[a];return b}f=B.prototype;
|
||||
var f;function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}
|
||||
for(var aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},q="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,ba=["Math","trunc"],ca=0;ca<ba.length-1;ca++){var da=ba[ca];da in q||(q[da]={});q=q[da]}
|
||||
var ea=ba[ba.length-1],fa=q[ea],ga=fa?fa:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b};ga!=fa&&null!=ga&&aa(q,ea,{configurable:!0,writable:!0,value:ga});function t(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;c=c?"0x":"";var d="";if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(0>a&&-1<a&&(a=-1);0<b--;){var e=a%16,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a=Math.trunc(a/16)}return(void 0===c?"":c)+d}
|
||||
function u(a){return t(a,2,!0)}function v(a){return t(a,4,!0)}function ha(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function ia(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ja(a){return a.replace(/[&<>"']/g,function(a){return ka[a]})}var ka={"&":"&","<":"<",">":">",'"':""","'":"'"},la=Date.now||function(){return+new Date};
|
||||
function w(a,b){var c=!0,c=void 0===c?!1:c,d=0,e=null;if("object"==typeof resources&&(e=resources[a]))b&&b(a,e,d);else if(c&&"function"==typeof resources)resources(a,function(c,d){b&&b(a,c,d)});else{var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(e=g.responseText,200==g.status||!g.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(d=g.status||-1),b&&b(a,e,d))});g.open("GET",
|
||||
a,c);g.send();c||(e=g.responseText,200!=g.status&&(d=g.status||-1),b&&b(a,e,d))}}function x(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)}return!1}function ma(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function na(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}}function oa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function y(a){z.init.push(a)}
|
||||
function pa(a){if(qa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){A(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function B(a){!qa&&a?(qa=!0,ra&&sa("init"),ta&&sa("show")):qa=a}function sa(a){z[a]&&pa(z[a])}var ua=null,z={init:[],show:[],exit:[]},ra=!1,ta=!1,qa=!0;oa("onload",function(){ra=!0;pa(z.init)});oa("onpageshow",function(){ta=!0;pa(z.show)});oa(x("Opera")||x("iOS")?"onunload":"onbeforeunload",function(){pa(z.exit)});
|
||||
function C(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.exports={};this.H=this.bindings={};a=this.id.indexOf(".");0>a?this.fb=this.id:(this.nb=this.id.substr(0,a),this.fb=this.id.substr(a+1));this.C={ready:!1,Ga:!1,bb:!1,N:!1,error:!1};this.eb=null;this.C.error=!1;this.ma=c||0;this.u=this.s=this.U=this.Sa=null;D.push(this)}function A(a){window&&window.alert(a)}
|
||||
function va(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<D.length;c++)if(D[c].id===a)return D[c]}return null}function wa(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<D.length;d++)if(c)c==D[d]&&(c=null);else if(!(a!=D[d].type||b&&D[d].id.indexOf(b)))return D[d]}return null}function E(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){A(c.message+" ("+a+")")}return b}
|
||||
function F(a,b){b=G(b.parentNode,"c1pjs-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var g=d[e];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var l=h.split(" "),k=0;k<l.length;k++)switch(h=l[k],h){case "c1pjs-binding":(h=E(g))&&h.binding&&a.T(h.type,h.binding,g,h.value),k=l.length}}}}
|
||||
function G(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}
|
||||
function xa(a){for(var b=!0,c=ya[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],g=null;0<=za.indexOf(e)&&(g=function(){return function(){xa(a)}}());var h=Aa[e];if(h)if(!g)b=h(d[1],d[2],d[3]);else{if(!h(g,d[1],d[2],d[3]))break}else{var b=!1,l=wa(d[1],a);if(l)if(h=Ba[e])b=h(l,d[2],d[3]);else{var k=l.exports;if(k&&(h=k[e]))if(b=!0,!g)b=h.call(l,d[2],d[3]);else if(!h.call(l,g,d[2],d[3]))break}}if(!b){A("Script error: "+e+(h?" failed":" unrecognized"));break}}c&&!c.length&&delete ya[a];return b}f=C.prototype;
|
||||
f.toString=function(){return this.name?this.name:this.id||this.type};
|
||||
f.T=function(a,b,c){switch(b){case "clear":return this.H[b]||(this.H[b]=c,c.onclick=function(a){return function(){a.H.print&&(a.H.print.value="")}}(this)),!0;case "print":return this.H[b]||(this.Sa=this.H[b]=c,c.value="",this.l=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}}(c),this.Wa=function(a){this.l(a,this.fb)}),!0;default:return!1}};f.log=function(){};f.l=function(){};
|
||||
f.status=function(a){this.l(this.fb+": "+a)};f.Wa=function(a,b,c){c=c||this.type;b||z((c?c+": ":"")+a)};function va(a,b){a.C.error=!0;a.Wa(b)}function G(a,b){b&&(a.C.ready?b():a.eb=b);return a.C.ready}f.X=function(a){this.C.error||(this.C.ready=!1!==a,this.C.ready&&(a=this.eb,this.eb=null,a&&a()))};function H(a,b){a.C.Ga&&(b?a.C.bb=!0:void 0===b&&a.l(a.toString()+" busy"));return a.C.Ga}
|
||||
function I(a,b){if(a.C.bb)return a.C.Ga=!1,a.C.bb=!1;if(a.C.error)return a.l(a.toString()+" error"),!1;a.C.Ga=b;return a.C.Ga}function J(a,b){if(a.u){a===a.u?b|=0:b=b||a.ma;var c=a.u.ma&b;return!!b&&c===b||!!(c&a.u.Re)}return!1}window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
||||
var K=window?window.PCjs.Machines:{},C=window?window.PCjs.Components:[],ra=window?window.PCjs.Commands:{},sa=["hold","sleep","wait"],ta={alert:function(a){z(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},ua={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
|
||||
f.status=function(a){this.l(this.fb+": "+a)};f.Wa=function(a,b,c){c=c||this.type;b||A((c?c+": ":"")+a)};function Ca(a,b){a.C.error=!0;a.Wa(b)}function H(a,b){b&&(a.C.ready?b():a.eb=b);return a.C.ready}f.X=function(a){this.C.error||(this.C.ready=!1!==a,this.C.ready&&(a=this.eb,this.eb=null,a&&a()))};function I(a,b){a.C.Ga&&(b?a.C.bb=!0:void 0===b&&a.l(a.toString()+" busy"));return a.C.Ga}
|
||||
function J(a,b){if(a.C.bb)return a.C.Ga=!1,a.C.bb=!1;if(a.C.error)return a.l(a.toString()+" error"),!1;a.C.Ga=b;return a.C.Ga}function K(a,b){if(a.u){a===a.u?b|=0:b=b||a.ma;var c=a.u.ma&b;return!!b&&c===b||!!(c&a.u.Re)}return!1}window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
||||
var L=window?window.PCjs.Machines:{},D=window?window.PCjs.Components:[],ya=window?window.PCjs.Commands:{},za=["hold","sleep","wait"],Aa={alert:function(a){A(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Ba={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
|
||||
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
|
||||
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});function wa(a){B.call(this,"C1PPanel",a);this.C.N=!1}p(wa,B);
|
||||
wa.prototype.T=function(a,b,c,d){return this.U&&this.U.T(a,b,c,d)||this.s&&this.s.T(a,b,c,d)||this.b&&this.b.T(a,b,c,d)||this.u&&this.u.T(a,b,c,d)?!0:B.prototype.T.call(this,a,b,c,d)};wa.prototype.ia=function(a,b){a&&!this.C.N&&(this.C.N=!0,this.U=b,this.s=L(b,"cpu"),this.b=L(b,"keyboard"),this.u=L(b,"debugger"),xa())};function xa(){for(var a=!1,b=F(document,"c1pjs","panel"),c=0;c<b.length;c++){var d=b[c],e=D(d),g=oa(e.id);g||(a=!0,g=new wa(e));E(g,d);a&&g.X()}}x(xa);
|
||||
function ya(a){B.call(this,"C1PCPU",a);za(this);this.C.N=!1;this.C.oa=!1;this.Va=a.autoStart;this.Pa=0;this.Ne=1;this.Oe=2;this.I=this.Pa;this.La=30;this.Ka=5;this.Ea=8;this.Ua=["Slow","Fast","Max"];this.jb=["(1Mhz)","(up to "+this.Ea+"Mhz)","(unlimited)"];this.R=[];this.K=[];this.qa=65536;this.ra=0;this.fa=65536;this.ja=0;this.Oa=32;this.ab=2;this.Me=1;this.o=[this.sc,this.Md,this.De,this.m,this.m,this.Od,this.ic,this.m,this.Rd,this.Ld,this.hc,this.m,this.m,this.Id,this.fc,this.m,this.rc,this.Nd,
|
||||
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});function Da(a){C.call(this,"C1PPanel",a);this.C.N=!1}p(Da,C);
|
||||
Da.prototype.T=function(a,b,c,d){return this.U&&this.U.T(a,b,c,d)||this.s&&this.s.T(a,b,c,d)||this.b&&this.b.T(a,b,c,d)||this.u&&this.u.T(a,b,c,d)?!0:C.prototype.T.call(this,a,b,c,d)};Da.prototype.ia=function(a,b){a&&!this.C.N&&(this.C.N=!0,this.U=b,this.s=M(b,"cpu"),this.b=M(b,"keyboard"),this.u=M(b,"debugger"),Ea())};function Ea(){for(var a=!1,b=G(document,"c1pjs","panel"),c=0;c<b.length;c++){var d=b[c],e=E(d),g=va(e.id);g||(a=!0,g=new Da(e));F(g,d);a&&g.X()}}y(Ea);
|
||||
function Fa(a){C.call(this,"C1PCPU",a);Ga(this);this.C.N=!1;this.C.oa=!1;this.Va=a.autoStart;this.Pa=0;this.Ne=1;this.Oe=2;this.I=this.Pa;this.La=30;this.Ka=5;this.Ea=8;this.Ua=["Slow","Fast","Max"];this.jb=["(1Mhz)","(up to "+this.Ea+"Mhz)","(unlimited)"];this.R=[];this.K=[];this.qa=65536;this.ra=0;this.fa=65536;this.ja=0;this.Oa=32;this.ab=2;this.Me=1;this.o=[this.sc,this.Md,this.De,this.m,this.m,this.Od,this.ic,this.m,this.Rd,this.Ld,this.hc,this.m,this.m,this.Id,this.fc,this.m,this.rc,this.Nd,
|
||||
this.m,this.m,this.m,this.Pd,this.jc,this.m,this.vc,this.Kd,this.m,this.m,this.m,this.Jd,this.gc,this.m,this.jd,this.bc,this.m,this.m,this.oc,this.dc,this.Xd,this.m,this.Td,this.ac,this.Wd,this.m,this.nc,this.Yb,this.Ud,this.m,this.pc,this.cc,this.m,this.m,this.m,this.ec,this.Yd,this.m,this.ne,this.$b,this.m,this.m,this.m,this.Zb,this.Vd,this.m,this.de,this.Xc,this.m,this.m,this.m,this.Zc,this.Fd,this.m,this.Qd,this.Wc,this.Ed,this.m,this.hd,this.Tc,this.Cd,this.m,this.tc,this.Yc,this.m,this.m,this.m,
|
||||
this.$c,this.Gd,this.m,this.xc,this.Vc,this.m,this.m,this.m,this.Uc,this.Dd,this.m,this.ee,this.sb,this.m,this.m,this.m,this.ub,this.be,this.m,this.Sd,this.rb,this.ae,this.m,this.gd,this.ob,this.Zd,this.m,this.uc,this.tb,this.m,this.m,this.m,this.vb,this.ce,this.m,this.pe,this.qb,this.m,this.m,this.m,this.pb,this.$d,this.m,this.m,this.te,this.m,this.m,this.Be,this.ve,this.ye,this.m,this.Sc,this.m,this.He,this.m,this.Ae,this.qe,this.xe,this.m,this.kc,this.ue,this.m,this.m,this.Ce,this.we,this.ze,this.m,
|
||||
this.Je,this.se,this.Ie,this.m,this.m,this.re,this.m,this.m,this.zd,this.od,this.ud,this.m,this.Ad,this.qd,this.vd,this.m,this.Fe,this.nd,this.Ee,this.m,this.xd,this.kd,this.sd,this.m,this.lc,this.pd,this.m,this.m,this.Bd,this.rd,this.wd,this.m,this.yc,this.md,this.Ge,this.m,this.yd,this.ld,this.td,this.m,this.Lc,this.Dc,this.m,this.m,this.Mc,this.Fc,this.Pc,this.m,this.fd,this.Cc,this.Rc,this.m,this.Kc,this.zc,this.Nc,this.m,this.qc,this.Ec,this.m,this.m,this.m,this.Gc,this.Qc,this.m,this.wc,this.Bc,
|
||||
this.m,this.m,this.m,this.Ac,this.Oc,this.m,this.Ic,this.Ab,this.m,this.m,this.Jc,this.Cb,this.cd,this.m,this.ed,this.zb,this.Hd,this.m,this.Hc,this.wb,this.ad,this.m,this.mc,this.Bb,this.m,this.m,this.m,this.Db,this.dd,this.m,this.oe,this.yb,this.m,this.m,this.m,this.xb,this.bd,this.m];this.ib=[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]}p(ya,B);f=ya.prototype;
|
||||
f.reset=function(a){this.C.oa&&this.aa();za(this);this.f=this.a[65532]|this.a[65533]<<8;this.C.error=!1;this.u?this.u.reset():a&&(!0===this.Va||null===this.Va&&!this.u&&void 0===this.H.run)&&this.ua()};
|
||||
f.T=function(a,b,c){a=!1;switch(b){case "run":this.H[b]=c;c.onclick=function(a){return function(){a.C.oa?a.aa():a.ua()}}(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.H[b]=c;a=!0;break;case "setSpeed":this.H[b]=c,c.onclick=function(a){return function(){M(a,2<=a.I?a.Pa:a.I+1,!0)}}(this),a=!0}return a};
|
||||
f.ca=function(a,b,c){this.a=a;this.M=b;this.sa=c-b+1;this.Ca=this.M+this.sa;this.M?z("unsupported CPU address buffer offset ("+this.M+")"):this.X()};f.ia=function(a,b){if(a&&!this.C.N){this.U=b;(this.u=L(b,"debugger"))&&this.u.Ob();if(a=L(b,"video"))this.cb=function(a){return function(){Aa(a)}}(a),this.da=function(a){return function(){a.da()}}(a);this.C.N=!0;this.reset(!0);this.update()}};function Ba(a,b,c,d,e){0>Ca(a.R,b,c,d,e)&&(a.qa>b&&(a.qa=b),a.ra<c&&(a.ra=c),a.R.push([b,c,d,e]))}
|
||||
function Da(a,b,c){for(var d=0;d<a.R.length;d++)b>=a.R[d][0]&&b<=a.R[d][1]&&a.R[d][3].call(a.R[d][2],b,c)}function N(a,b,c,d,e){0>Ca(a.K,b,c,d,e)&&(a.fa>b&&(a.fa=b),a.ja<c&&(a.ja=c),a.K.push([b,c,d,e]))}function Ea(a,b,c){for(var d=0;d<a.K.length;d++)b>=a.K[d][0]&&b<=a.K[d][1]&&a.K[d][3].call(a.K[d][2],b,c)}function Ca(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.I=b,a.H.setSpeed&&(a.H.setSpeed.innerHTML=a.Ua[2<=b?0:b+1]),a.l("running at "+a.Ua[b].toLowerCase()+" speed "+a.jb[b]),c&&a.da());a.W=0;a.Xa=ea();Fa(a)}f.cb=function(){};f.da=function(){};function O(a,b,c,d){void 0!==a.H[b]&&(void 0===d&&(d=1),c="0000"+c.toString(16),a.H[b].innerHTML=c.slice(c.length-d).toUpperCase())}
|
||||
function Ga(a){O(a,"A",a.h,2);O(a,"X",a.w,2);O(a,"Y",a.F,2);var b=Ha(a);O(a,"C",b&1?1:0);O(a,"Z",b&2?1:0);O(a,"I",b&4?1:0);O(a,"D",b&8?1:0);O(a,"B",b&16?1:0);O(a,"V",b&64?1:0);O(a,"N",b&128?1:0);O(a,"S",a.G,4);O(a,"PC",a.f,4);a.H.speed&&a.L&&(a.H.speed.innerHTML=a.L.toFixed(1)+"Mhz")}
|
||||
function Fa(a,b){var c=30;c<a.La&&(c=a.La);c<a.Ka&&(c=a.Ka);var d=1;b&&a.I>a.Pa&&a.L&&(d=a.L);d>a.Ea&&2>a.I&&(d=a.Ea);a.Pe=Math.round(1E3/30);a.ka=Math.floor(1E6/c*d);a.Ha=Math.floor(1E6/30*d);a.Za=Math.floor(1E6/a.La*d);a.Ya=Math.floor(1E6/a.Ka*d);b||(a.V=a.Ha,a.$=a.Za,a.Z=a.Ya);a.Ia=0}function Ia(a){var b=ea(),c=a.Pe;a.ba&&(c=Math.round(c*a.ba/a.Ha));c-=b-a.Qe;if(b-=a.Xa)a.L=Math.round(a.W/(100*b))/10,864E5<=b&&M(a);0>c?c=0:1==a.I?a.L<=a.Ea&&(c=0):2==a.I&&(c=0);a.Ia+=a.ba;return c}
|
||||
f.ua=function(){if(I(this,!0)){this.C.oa||(M(this),this.U&&this.U.start(),this.C.oa=!0,this.H.run&&(this.H.run.innerHTML="Halt"),this.da());1E6<=this.Ia&&Fa(this,!0);this.ba=0;this.Qe=ea();try{do{this.step(this.ka);var a=this.O-this.D;this.W+=a;this.ba+=a;this.O=this.D=0;this.$-=this.ka;0>=this.$&&(this.$+=this.Za,this.cb());this.Z-=this.ka;0>=this.Z&&(this.Z+=this.Ya,Ga(this));this.V-=this.ka;if(0>=this.V){this.V+=this.Ha;break}}while(this.C.oa)}catch(b){this.aa();this.update();I(this,!1);va(this,
|
||||
b.stack||b.message);return}setTimeout(function(a){return function(){a.ua()}}(this),Ia(this))}else this.update(),this.U&&this.U.stop(this.Xa,this.W)};
|
||||
f.step=function(a){var b=!0;this.b=this.g=-1;var c;if(c=a&&this.u)c=this.u,c=0<c.pa.length||0<c.va.length||0<c.xa.length;this.O=this.D=a;do{a=this.a[this.f];var d;if(d=c){d=this.u;var e=a,g=!1;Ja(d,this.f,d.pa,"exec")?g=!0:(d.L++,d.B[e][1]++,d.wa[d.Ja++]=d.s.f,d.Ja>=d.wa.length&&(d.Ja=0));d=!!g}if(d){b=void 0;this.aa();break}this.f++;this.o[a].call(this);if(0<=this.b){this.b>=this.qa&&this.b<=this.ra&&Da(this,this.b,this.f);if(d=c)d=this.u,e=!1,Ja(d,this.b,d.va,"read")&&(e=!0),d=!!e;if(d){b=!1;this.aa();
|
||||
break}this.b=-1}else if(0<=this.g){this.g>=this.fa&&this.g<=this.ja&&Ea(this,this.g,this.f);if(d=c){d=this.u;var e=this.g,g=this.a[this.g],h=!1;(g&255)!=g&&(d.l("invalid value at "+u(e)+": "+g),h=!0);Ja(d,e,d.xa,"write")&&(h=!0);d=!!h}if(d){b=!1;this.aa();break}this.g=-1}this.D-=this.ib[a]}while(0<this.D);return b};function Ka(a){a.V=0;a.O-=a.D;a.D=0}f.aa=function(){H(this,!0);this.O-=this.D;this.D=0;this.C.oa&&(this.C.oa=!1,this.H.run&&(this.H.run.innerHTML="Run"))};
|
||||
f.update=function(){this.cb();Ga(this)};function La(a){return a.C.oa?a.W+a.O-a.D:0}f.S=function(a){return this.a[a]};function Ha(a){var b=a.c&256?1:0,b=b|(a.j&255?0:2),b=b|((a.v&255^a.A^a.v>>1)&128?64:0),b=b|(a.i&128?128:0);return a.B&60|b}function Ma(a){a.B|=8;a.o[97]=a.Ub;a.o[101]=a.Wb;a.o[105]=a.Tb;a.o[109]=a.Qb;a.o[113]=a.Vb;a.o[117]=a.Xb;a.o[121]=a.Sb;a.o[125]=a.Rb;a.o[225]=a.je;a.o[229]=a.le;a.o[233]=a.ie;a.o[237]=a.fe;a.o[241]=a.ke;a.o[245]=a.me;a.o[249]=a.he;a.o[253]=a.ge}
|
||||
function Na(a){a.B&=-9;a.o[97]=a.sb;a.o[101]=a.ub;a.o[105]=a.rb;a.o[109]=a.ob;a.o[113]=a.tb;a.o[117]=a.vb;a.o[121]=a.qb;a.o[125]=a.pb;a.o[225]=a.Ab;a.o[229]=a.Cb;a.o[233]=a.zb;a.o[237]=a.wb;a.o[241]=a.Bb;a.o[245]=a.Db;a.o[249]=a.yb;a.o[253]=a.xb}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.A=b^c;a.v=e;a.i=e&255;160<=e&&(e+=96);512<=e&&(e-=256);a.c=e;a.j=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.i=a.j=(a.c=b-c-d)&255;a.A=b^c;a.v=a.c;a.c^=256;a.D--;return e&255}function za(a){a.h=0;a.w=0;a.F=0;a.G=256;a.B=0;a.i=0;a.j=0;a.A=0;a.v=0;a.c=0;a.f=0;a.b=-1;a.g=-1;a.L=0;a.W=a.O=a.D=0}
|
||||
f.sc=function(){this.f++;this.a[this.G--]=this.f>>8;this.G|=256;this.a[this.G--]=this.f&255;this.G|=256;this.B|=16;this.B=Ha(this);this.a[this.G--]=this.B;this.G|=256;this.B&=239;this.b=65534;this.f=this.a[this.b]|this.a[this.b+1]<<8};f.Md=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.h|=this.a[this.b]};f.Od=function(){this.b=this.a[this.f++];this.i=this.j=this.h|=this.a[this.b]};
|
||||
f.ic=function(){this.g=this.a[this.f++];this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};f.Rd=function(){this.B=Ha(this);this.a[this.G--]=this.B;this.G|=256};f.Ld=function(){this.b=this.f++;this.i=this.j=this.h|=this.a[this.b]};f.hc=function(){this.c=this.h<<1;this.i=this.j=this.h=this.c&255};f.Id=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.h|=this.a[this.b]};
|
||||
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]}p(Fa,C);f=Fa.prototype;
|
||||
f.reset=function(a){this.C.oa&&this.aa();Ga(this);this.f=this.a[65532]|this.a[65533]<<8;this.C.error=!1;this.u?this.u.reset():a&&(!0===this.Va||null===this.Va&&!this.u&&void 0===this.H.run)&&this.ua()};
|
||||
f.T=function(a,b,c){a=!1;switch(b){case "run":this.H[b]=c;c.onclick=function(a){return function(){a.C.oa?a.aa():a.ua()}}(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.H[b]=c;a=!0;break;case "setSpeed":this.H[b]=c,c.onclick=function(a){return function(){N(a,2<=a.I?a.Pa:a.I+1,!0)}}(this),a=!0}return a};
|
||||
f.ca=function(a,b,c){this.a=a;this.M=b;this.sa=c-b+1;this.Ca=this.M+this.sa;this.M?A("unsupported CPU address buffer offset ("+this.M+")"):this.X()};f.ia=function(a,b){if(a&&!this.C.N){this.U=b;(this.u=M(b,"debugger"))&&this.u.Ob();if(a=M(b,"video"))this.cb=function(a){return function(){Ha(a)}}(a),this.da=function(a){return function(){a.da()}}(a);this.C.N=!0;this.reset(!0);this.update()}};function Ia(a,b,c,d,e){0>Ja(a.R,b,c,d,e)&&(a.qa>b&&(a.qa=b),a.ra<c&&(a.ra=c),a.R.push([b,c,d,e]))}
|
||||
function Ka(a,b,c){for(var d=0;d<a.R.length;d++)b>=a.R[d][0]&&b<=a.R[d][1]&&a.R[d][3].call(a.R[d][2],b,c)}function O(a,b,c,d,e){0>Ja(a.K,b,c,d,e)&&(a.fa>b&&(a.fa=b),a.ja<c&&(a.ja=c),a.K.push([b,c,d,e]))}function La(a,b,c){for(var d=0;d<a.K.length;d++)b>=a.K[d][0]&&b<=a.K[d][1]&&a.K[d][3].call(a.K[d][2],b,c)}function Ja(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 N(a,b,c){void 0!==b&&(a.I=b,a.H.setSpeed&&(a.H.setSpeed.innerHTML=a.Ua[2<=b?0:b+1]),a.l("running at "+a.Ua[b].toLowerCase()+" speed "+a.jb[b]),c&&a.da());a.W=0;a.Xa=la();Ma(a)}f.cb=function(){};f.da=function(){};function P(a,b,c,d){void 0!==a.H[b]&&(void 0===d&&(d=1),c="0000"+c.toString(16),a.H[b].innerHTML=c.slice(c.length-d).toUpperCase())}
|
||||
function Na(a){P(a,"A",a.h,2);P(a,"X",a.w,2);P(a,"Y",a.F,2);var b=Oa(a);P(a,"C",b&1?1:0);P(a,"Z",b&2?1:0);P(a,"I",b&4?1:0);P(a,"D",b&8?1:0);P(a,"B",b&16?1:0);P(a,"V",b&64?1:0);P(a,"N",b&128?1:0);P(a,"S",a.G,4);P(a,"PC",a.f,4);a.H.speed&&a.L&&(a.H.speed.innerHTML=a.L.toFixed(1)+"Mhz")}
|
||||
function Ma(a,b){var c=30;c<a.La&&(c=a.La);c<a.Ka&&(c=a.Ka);var d=1;b&&a.I>a.Pa&&a.L&&(d=a.L);d>a.Ea&&2>a.I&&(d=a.Ea);a.Pe=Math.round(1E3/30);a.ka=Math.floor(1E6/c*d);a.Ha=Math.floor(1E6/30*d);a.Za=Math.floor(1E6/a.La*d);a.Ya=Math.floor(1E6/a.Ka*d);b||(a.V=a.Ha,a.$=a.Za,a.Z=a.Ya);a.Ia=0}function Pa(a){var b=la(),c=a.Pe;a.ba&&(c=Math.round(c*a.ba/a.Ha));c-=b-a.Qe;if(b-=a.Xa)a.L=Math.round(a.W/(100*b))/10,864E5<=b&&N(a);0>c?c=0:1==a.I?a.L<=a.Ea&&(c=0):2==a.I&&(c=0);a.Ia+=a.ba;return c}
|
||||
f.ua=function(){if(J(this,!0)){this.C.oa||(N(this),this.U&&this.U.start(),this.C.oa=!0,this.H.run&&(this.H.run.innerHTML="Halt"),this.da());1E6<=this.Ia&&Ma(this,!0);this.ba=0;this.Qe=la();try{do{this.step(this.ka);var a=this.O-this.D;this.W+=a;this.ba+=a;this.O=this.D=0;this.$-=this.ka;0>=this.$&&(this.$+=this.Za,this.cb());this.Z-=this.ka;0>=this.Z&&(this.Z+=this.Ya,Na(this));this.V-=this.ka;if(0>=this.V){this.V+=this.Ha;break}}while(this.C.oa)}catch(b){this.aa();this.update();J(this,!1);Ca(this,
|
||||
b.stack||b.message);return}setTimeout(function(a){return function(){a.ua()}}(this),Pa(this))}else this.update(),this.U&&this.U.stop(this.Xa,this.W)};
|
||||
f.step=function(a){var b=!0;this.b=this.g=-1;var c;if(c=a&&this.u)c=this.u,c=0<c.pa.length||0<c.va.length||0<c.xa.length;this.O=this.D=a;do{a=this.a[this.f];var d;if(d=c){d=this.u;var e=a,g=!1;Qa(d,this.f,d.pa,"exec")?g=!0:(d.L++,d.B[e][1]++,d.wa[d.Ja++]=d.s.f,d.Ja>=d.wa.length&&(d.Ja=0));d=!!g}if(d){b=void 0;this.aa();break}this.f++;this.o[a].call(this);if(0<=this.b){this.b>=this.qa&&this.b<=this.ra&&Ka(this,this.b,this.f);if(d=c)d=this.u,e=!1,Qa(d,this.b,d.va,"read")&&(e=!0),d=!!e;if(d){b=!1;this.aa();
|
||||
break}this.b=-1}else if(0<=this.g){this.g>=this.fa&&this.g<=this.ja&&La(this,this.g,this.f);if(d=c){d=this.u;var e=this.g,g=this.a[this.g],h=!1;(g&255)!=g&&(d.l("invalid value at "+v(e)+": "+g),h=!0);Qa(d,e,d.xa,"write")&&(h=!0);d=!!h}if(d){b=!1;this.aa();break}this.g=-1}this.D-=this.ib[a]}while(0<this.D);return b};function Ra(a){a.V=0;a.O-=a.D;a.D=0}f.aa=function(){I(this,!0);this.O-=this.D;this.D=0;this.C.oa&&(this.C.oa=!1,this.H.run&&(this.H.run.innerHTML="Run"))};
|
||||
f.update=function(){this.cb();Na(this)};function Sa(a){return a.C.oa?a.W+a.O-a.D:0}f.S=function(a){return this.a[a]};function Oa(a){var b=a.c&256?1:0,b=b|(a.j&255?0:2),b=b|((a.v&255^a.A^a.v>>1)&128?64:0),b=b|(a.i&128?128:0);return a.B&60|b}function Ta(a){a.B|=8;a.o[97]=a.Ub;a.o[101]=a.Wb;a.o[105]=a.Tb;a.o[109]=a.Qb;a.o[113]=a.Vb;a.o[117]=a.Xb;a.o[121]=a.Sb;a.o[125]=a.Rb;a.o[225]=a.je;a.o[229]=a.le;a.o[233]=a.ie;a.o[237]=a.fe;a.o[241]=a.ke;a.o[245]=a.me;a.o[249]=a.he;a.o[253]=a.ge}
|
||||
function Ua(a){a.B&=-9;a.o[97]=a.sb;a.o[101]=a.ub;a.o[105]=a.rb;a.o[109]=a.ob;a.o[113]=a.tb;a.o[117]=a.vb;a.o[121]=a.qb;a.o[125]=a.pb;a.o[225]=a.Ab;a.o[229]=a.Cb;a.o[233]=a.zb;a.o[237]=a.wb;a.o[241]=a.Bb;a.o[245]=a.Db;a.o[249]=a.yb;a.o[253]=a.xb}function Q(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.A=b^c;a.v=e;a.i=e&255;160<=e&&(e+=96);512<=e&&(e-=256);a.c=e;a.j=b+c+d&255;a.D--;return e&255}
|
||||
function R(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.i=a.j=(a.c=b-c-d)&255;a.A=b^c;a.v=a.c;a.c^=256;a.D--;return e&255}function Ga(a){a.h=0;a.w=0;a.F=0;a.G=256;a.B=0;a.i=0;a.j=0;a.A=0;a.v=0;a.c=0;a.f=0;a.b=-1;a.g=-1;a.L=0;a.W=a.O=a.D=0}
|
||||
f.sc=function(){this.f++;this.a[this.G--]=this.f>>8;this.G|=256;this.a[this.G--]=this.f&255;this.G|=256;this.B|=16;this.B=Oa(this);this.a[this.G--]=this.B;this.G|=256;this.B&=239;this.b=65534;this.f=this.a[this.b]|this.a[this.b+1]<<8};f.Md=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.h|=this.a[this.b]};f.Od=function(){this.b=this.a[this.f++];this.i=this.j=this.h|=this.a[this.b]};
|
||||
f.ic=function(){this.g=this.a[this.f++];this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};f.Rd=function(){this.B=Oa(this);this.a[this.G--]=this.B;this.G|=256};f.Ld=function(){this.b=this.f++;this.i=this.j=this.h|=this.a[this.b]};f.hc=function(){this.c=this.h<<1;this.i=this.j=this.h=this.c&255};f.Id=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.h|=this.a[this.b]};
|
||||
f.fc=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};f.rc=function(){this.f+=(this.i&128?0:(this.D--,this.a[this.f]<<24>>24))+1};f.Nd=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.i=this.j=this.h|=this.a[this.b]};f.Pd=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.h|=this.a[this.b]};
|
||||
f.jc=function(){this.g=this.a[this.f++]+this.w&255;this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};f.vc=function(){this.c=0};f.Kd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.i=this.j=this.h|=this.a[this.b]};f.Jd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.h|=this.a[this.b]};f.gc=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};
|
||||
f.jd=function(){this.b=this.f++;this.a[this.G--]=this.f>>8;this.G|=256;this.a[this.G--]=this.f&255;this.G|=256;this.f=this.a[this.b]|this.a[this.b+1]<<8};f.bc=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.h&=this.a[this.b]};f.oc=function(){this.b=this.a[this.f++];this.j=this.h&this.a[this.b];this.i=this.i&127|this.a[this.b]&128;this.v=0;this.A=this.a[this.b]&64?128:0};f.dc=function(){this.b=this.a[this.f++];this.i=this.j=this.h&=this.a[this.b]};
|
||||
|
|
@ -72,14 +74,14 @@ f.Xc=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[
|
|||
f.Ed=function(){this.c=this.c&65279|(this.h&1?256:0);this.h=(this.c=this.c&65280|this.h>>1)&255;this.i=this.j=this.c&255};f.hd=function(){this.b=this.f;this.f=this.a[this.b]|this.a[this.b+1]<<8};f.Tc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.h^=this.a[this.b]};f.Cd=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.c&65279|(this.a[this.g]&1?256:0);this.a[this.g]=(this.c=this.c&65280|this.a[this.g]>>1)&255;this.i=this.j=this.c&255};
|
||||
f.tc=function(){this.f+=((this.v&255^this.A^this.v>>1)&128?0:(this.D--,this.a[this.f]<<24>>24))+1};f.Yc=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.i=this.j=this.h^=this.a[this.b]};f.$c=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.h^=this.a[this.b]};f.Gd=function(){this.g=this.a[this.f++]+this.w&255;this.c=this.c&65279|(this.a[this.g]&1?256:0);this.a[this.g]=(this.c=this.c&65280|this.a[this.g]>>1)&255;this.i=this.j=this.c&255};
|
||||
f.xc=function(){this.B&=251};f.Vc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.i=this.j=this.h^=this.a[this.b]};f.Uc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.h^=this.a[this.b]};f.Dd=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.c&65279|(this.a[this.g]&1?256:0);this.a[this.g]=(this.c=this.c&65280|this.a[this.g]>>1)&255;this.i=this.j=this.c&255};
|
||||
f.ee=function(){this.G=this.G+2&255|256;this.f=(this.a[this.G-1|256]|this.a[this.G]<<8)+1};f.sb=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Ub=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=P(this,this.h,this.a[this.b])};
|
||||
f.ub=function(){this.b=this.a[this.f++];this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Wb=function(){this.b=this.a[this.f++];this.h=P(this,this.h,this.a[this.b])};f.be=function(){this.g=this.a[this.f++];this.c=this.c&65280|this.a[this.g];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.i=this.j=this.a[this.g]=this.c&255};f.Sd=function(){this.G=this.G+1&255|256;this.i=this.j=this.h=this.a[this.G]};
|
||||
f.rb=function(){this.b=this.f++;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Tb=function(){this.b=this.f++;this.h=P(this,this.h,this.a[this.b])};f.ae=function(){this.c=this.c&65280|this.h;this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.i=this.j=this.h=this.c&255};f.gd=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.f=this.a[this.b]|this.a[this.b+1]<<8};
|
||||
f.ob=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Qb=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=P(this,this.h,this.a[this.b])};f.Zd=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.c&65280|this.a[this.g];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.i=this.j=this.a[this.g]=this.c&255};
|
||||
f.uc=function(){this.f+=((this.v&255^this.A^this.v>>1)&128?(this.D--,this.a[this.f]<<24>>24):0)+1};f.tb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Vb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.h=P(this,this.h,this.a[this.b])};
|
||||
f.vb=function(){this.b=this.a[this.f++]+this.w&255;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Xb=function(){this.b=this.a[this.f++]+this.w&255;this.h=P(this,this.h,this.a[this.b])};f.ce=function(){this.g=this.a[this.f++]+this.w&255;this.c=this.c&65280|this.a[this.g];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.i=this.j=this.a[this.g]=this.c&255};f.pe=function(){this.B|=4};
|
||||
f.qb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Sb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.h=P(this,this.h,this.a[this.b])};f.pb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};
|
||||
f.Rb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.h=P(this,this.h,this.a[this.b])};f.$d=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.c&65280|this.a[this.g];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.i=this.j=this.a[this.g]=this.c&255};f.te=function(){this.g=this.a[this.f++]+this.w&255;this.g=this.a[this.g]|this.a[this.g+1]<<8;this.a[this.g]=this.h};f.Be=function(){this.g=this.a[this.f++];this.a[this.g]=this.F};
|
||||
f.ee=function(){this.G=this.G+2&255|256;this.f=(this.a[this.G-1|256]|this.a[this.G]<<8)+1};f.sb=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Ub=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=Q(this,this.h,this.a[this.b])};
|
||||
f.ub=function(){this.b=this.a[this.f++];this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Wb=function(){this.b=this.a[this.f++];this.h=Q(this,this.h,this.a[this.b])};f.be=function(){this.g=this.a[this.f++];this.c=this.c&65280|this.a[this.g];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.i=this.j=this.a[this.g]=this.c&255};f.Sd=function(){this.G=this.G+1&255|256;this.i=this.j=this.h=this.a[this.G]};
|
||||
f.rb=function(){this.b=this.f++;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Tb=function(){this.b=this.f++;this.h=Q(this,this.h,this.a[this.b])};f.ae=function(){this.c=this.c&65280|this.h;this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.i=this.j=this.h=this.c&255};f.gd=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.f=this.a[this.b]|this.a[this.b+1]<<8};
|
||||
f.ob=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Qb=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=Q(this,this.h,this.a[this.b])};f.Zd=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.c&65280|this.a[this.g];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.i=this.j=this.a[this.g]=this.c&255};
|
||||
f.uc=function(){this.f+=((this.v&255^this.A^this.v>>1)&128?(this.D--,this.a[this.f]<<24>>24):0)+1};f.tb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Vb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.h=Q(this,this.h,this.a[this.b])};
|
||||
f.vb=function(){this.b=this.a[this.f++]+this.w&255;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Xb=function(){this.b=this.a[this.f++]+this.w&255;this.h=Q(this,this.h,this.a[this.b])};f.ce=function(){this.g=this.a[this.f++]+this.w&255;this.c=this.c&65280|this.a[this.g];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.i=this.j=this.a[this.g]=this.c&255};f.pe=function(){this.B|=4};
|
||||
f.qb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Sb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.h=Q(this,this.h,this.a[this.b])};f.pb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};
|
||||
f.Rb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.h=Q(this,this.h,this.a[this.b])};f.$d=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.c&65280|this.a[this.g];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.i=this.j=this.a[this.g]=this.c&255};f.te=function(){this.g=this.a[this.f++]+this.w&255;this.g=this.a[this.g]|this.a[this.g+1]<<8;this.a[this.g]=this.h};f.Be=function(){this.g=this.a[this.f++];this.a[this.g]=this.F};
|
||||
f.ve=function(){this.g=this.a[this.f++];this.a[this.g]=this.h};f.ye=function(){this.g=this.a[this.f++];this.a[this.g]=this.w};f.Sc=function(){this.i=this.j=this.F=this.F-1&255};f.He=function(){this.i=this.j=this.h=this.w};f.Ae=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.a[this.g]=this.F};f.qe=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.a[this.g]=this.h};f.xe=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.a[this.g]=this.w};
|
||||
f.kc=function(){this.f+=(this.c&256?0:(this.D--,this.a[this.f]<<24>>24))+1};f.ue=function(){this.g=this.a[this.f++];this.g=(this.a[this.g]|this.a[this.g+1]<<8)+this.F;this.a[this.g]=this.h};f.Ce=function(){this.g=this.a[this.f++]+this.w&255;this.a[this.g]=this.F};f.we=function(){this.g=this.a[this.f++]+this.w&255;this.a[this.g]=this.h};f.ze=function(){this.g=this.a[this.f++]+this.F&255;this.a[this.g]=this.w};f.Je=function(){this.i=this.j=this.h=this.F};
|
||||
f.se=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.a[this.g]=this.h};f.Ie=function(){this.G=this.w|256};f.re=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.a[this.g]=this.h};f.zd=function(){this.b=this.f++;this.i=this.j=this.F=this.a[this.b]};f.od=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.h=this.a[this.b]};f.ud=function(){this.b=this.f++;this.i=this.j=this.w=this.a[this.b]};
|
||||
|
|
@ -89,104 +91,104 @@ f.rd=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.h=this.a[t
|
|||
f.ld=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.h=this.a[this.b]};f.td=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.i=this.j=this.w=this.a[this.b]};f.Lc=function(){this.b=this.f++;this.i=this.j=this.c=this.F-this.a[this.b];this.c^=256};f.Dc=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};
|
||||
f.Mc=function(){this.b=this.a[this.f++];this.i=this.j=this.c=this.F-this.a[this.b];this.c^=256};f.Fc=function(){this.b=this.a[this.f++];this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Pc=function(){this.g=this.a[this.f++];this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.fd=function(){this.i=this.j=this.F=this.F+1&255};f.Cc=function(){this.b=this.f++;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Rc=function(){this.i=this.j=this.w=this.w-1&255};
|
||||
f.Kc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.c=this.F-this.a[this.b];this.c^=256};f.zc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Nc=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.qc=function(){this.f+=(this.j&255?(this.D--,this.a[this.f]<<24>>24):0)+1};
|
||||
f.Ec=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Gc=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Qc=function(){this.g=this.a[this.f++]+this.w&255;this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.wc=function(){Na(this)};
|
||||
f.Ec=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Gc=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Qc=function(){this.g=this.a[this.f++]+this.w&255;this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.wc=function(){Ua(this)};
|
||||
f.Bc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Ac=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Oc=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.Ic=function(){this.b=this.f++;this.i=this.j=this.c=this.w-this.a[this.b];this.c^=256};
|
||||
f.Ab=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.je=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=Q(this,this.h,this.a[this.b])};f.Jc=function(){this.b=this.a[this.f++];this.i=this.j=this.c=this.w-this.a[this.b];this.c^=256};
|
||||
f.Cb=function(){this.b=this.a[this.f++];this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.le=function(){this.b=this.a[this.f++];this.h=Q(this,this.h,this.a[this.b])};f.cd=function(){this.g=this.a[this.f++];this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.ed=function(){this.i=this.j=this.w=this.w+1&255};
|
||||
f.zb=function(){this.b=this.f++;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.ie=function(){this.b=this.f++;this.h=Q(this,this.h,this.a[this.b])};f.Hd=function(){};f.Hc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.c=this.w-this.a[this.b];this.c^=256};
|
||||
f.wb=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.fe=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=Q(this,this.h,this.a[this.b])};f.ad=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.mc=function(){this.f+=(this.j&255?0:(this.D--,this.a[this.f]<<24>>24))+1};
|
||||
f.Bb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.ke=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.h=Q(this,this.h,this.a[this.b])};
|
||||
f.Db=function(){this.b=this.a[this.f++]+this.w&255;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.me=function(){this.b=this.a[this.f++]+this.w&255;this.h=Q(this,this.h,this.a[this.b])};f.dd=function(){this.g=this.a[this.f++]+this.w&255;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.oe=function(){Ma(this)};
|
||||
f.yb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.he=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.h=Q(this,this.h,this.a[this.b])};
|
||||
f.xb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.ge=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.h=Q(this,this.h,this.a[this.b])};f.bd=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};
|
||||
f.De=function(){var a;a=this.a[this.f++];switch(a){case 0:this.l("HALT");this.aa();break;case 1:a=this.f;for(var b="";a<this.a.length;){var c=this.a[a++];if(!c)break;b+=String.fromCharCode(c)}this.f=a;b=b.replace(/%A/g,q(this.h,2)).replace(/%X/g,q(this.w,2)).replace(/%Y/g,q(this.F,2));this.l(b);Ka(this);break;default:this.f-=2,this.l("undefined opSim: "+t(a)+" at "+u(this.f)),this.aa()}};f.m=function(){var a=this.a[--this.f];this.l("undefined opcode: "+t(a)+" at "+u(this.f));this.aa()};
|
||||
x(function(){for(var a=F(document,"c1pjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new ya(d);E(d,c)}});function R(a){B.call(this,"C1PROM",a);this.b=this.a=null;this.g=a.size;if(this.o=a.image){a=this.o;var b=ba(this.o);"json"!=b&&"hex"!=b&&(a="http://"+(window?window.location.host:"www.pcjs.org")+"/api/v1/dump?file="+this.o+"&format=bytes");var c=this;v(a,function(a,b,g){Oa(c,a,b,g)})}}p(R,B);
|
||||
R.prototype.ca=function(a,b,c,d){this.a=a;this.v=b;a=c-b+1;this.g||(this.g=a);a!=this.g?va(this,"computer-specified ROM size ("+u(a)+") does not match component-specified size ("+u(this.g)+")"):(d&&(this.s=d,N(d,b,c,this,this.A)),Pa(this))};R.prototype.ia=function(a,b){a&&!this.C.N&&(this.C.N=!0,this.u=L(b,"debugger"))};R.prototype.A=function(a,b){void 0!==b&&(this.u&&S(this.u,this,a,b,this.u.lb,!0),a-=this.v,this.a[this.v+a]=this.b?this.b[a]:0)};
|
||||
function Oa(a,b,c,d){if(d)a.l('Error loading ROM "'+b+'" ('+d+")");else{if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),g=e.bytes;g?a.b=g:a.b=e}catch(h){a.l('Error processing ROM "'+b+'": '+h.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),c=0;c<b.length;c++)a.b[c]=parseInt(b[c],16);Pa(a)}}
|
||||
function Pa(a){if(!G(a))if(!a.o)a.X();else if(a.b&&a.a){var b=a.b.length;if(b!=a.g)va(a,"ROM image size ("+u(b)+") does not match component-specified size ("+u(a.g)+")");else{for(var c=0;c<b;c++)a.a[a.v+c]=a.b[c];a.X()}}}x(function(){for(var a=F(document,"c1pjs","rom"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new R(d);E(d,c)}});function Qa(a){B.call(this,"C1PRAM",a)}p(Qa,B);Qa.prototype.ca=function(a){this.a=a;this.X()};
|
||||
x(function(){for(var a=F(document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Qa(d);E(d,c)}});
|
||||
function Ra(a){B.call(this,"C1PKeyboard",a);this.C.N=!1;this.Ha=a.model;this.$=8;this.Ya=10;this.Xa=13;this.ba=27;this.Ua=this.$;this.Va=this.Ya;this.Ia=this.Xa;this.Z=this.ba;this.K=241;this.W=224;this.Ka=3;this.La=15;this.I=1;this.D={};this.D["break"]=this.W;this.D.esc=this.Z;this.D["ctrl-c"]=this.Ka;this.D["ctrl-o"]=this.La;this.b=[];this.b[49]=30464;this.b[33]=30704;this.b[50]=30208;this.b[34]=30448;this.b[51]=29952;this.b[35]=30192;this.b[52]=29696;this.b[36]=29936;this.b[53]=29440;this.b[37]=
|
||||
f.Ab=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.je=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=R(this,this.h,this.a[this.b])};f.Jc=function(){this.b=this.a[this.f++];this.i=this.j=this.c=this.w-this.a[this.b];this.c^=256};
|
||||
f.Cb=function(){this.b=this.a[this.f++];this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.le=function(){this.b=this.a[this.f++];this.h=R(this,this.h,this.a[this.b])};f.cd=function(){this.g=this.a[this.f++];this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.ed=function(){this.i=this.j=this.w=this.w+1&255};
|
||||
f.zb=function(){this.b=this.f++;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.ie=function(){this.b=this.f++;this.h=R(this,this.h,this.a[this.b])};f.Hd=function(){};f.Hc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.c=this.w-this.a[this.b];this.c^=256};
|
||||
f.wb=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.fe=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=R(this,this.h,this.a[this.b])};f.ad=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.mc=function(){this.f+=(this.j&255?0:(this.D--,this.a[this.f]<<24>>24))+1};
|
||||
f.Bb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.ke=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.h=R(this,this.h,this.a[this.b])};
|
||||
f.Db=function(){this.b=this.a[this.f++]+this.w&255;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.me=function(){this.b=this.a[this.f++]+this.w&255;this.h=R(this,this.h,this.a[this.b])};f.dd=function(){this.g=this.a[this.f++]+this.w&255;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.oe=function(){Ta(this)};
|
||||
f.yb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.he=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.h=R(this,this.h,this.a[this.b])};
|
||||
f.xb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.ge=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.h=R(this,this.h,this.a[this.b])};f.bd=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};
|
||||
f.De=function(){var a;a=this.a[this.f++];switch(a){case 0:this.l("HALT");this.aa();break;case 1:a=this.f;for(var b="";a<this.a.length;){var c=this.a[a++];if(!c)break;b+=String.fromCharCode(c)}this.f=a;b=b.replace(/%A/g,t(this.h,2)).replace(/%X/g,t(this.w,2)).replace(/%Y/g,t(this.F,2));this.l(b);Ra(this);break;default:this.f-=2,this.l("undefined opSim: "+u(a)+" at "+v(this.f)),this.aa()}};f.m=function(){var a=this.a[--this.f];this.l("undefined opcode: "+u(a)+" at "+v(this.f));this.aa()};
|
||||
y(function(){for(var a=G(document,"c1pjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Fa(d);F(d,c)}});function S(a){C.call(this,"C1PROM",a);this.b=this.a=null;this.g=a.size;if(this.o=a.image){a=this.o;var b=ia(this.o);"json"!=b&&"hex"!=b&&(a="http://"+(window?window.location.host:"www.pcjs.org")+"/api/v1/dump?file="+this.o+"&format=bytes");var c=this;w(a,function(a,b,g){Va(c,a,b,g)})}}p(S,C);
|
||||
S.prototype.ca=function(a,b,c,d){this.a=a;this.v=b;a=c-b+1;this.g||(this.g=a);a!=this.g?Ca(this,"computer-specified ROM size ("+v(a)+") does not match component-specified size ("+v(this.g)+")"):(d&&(this.s=d,O(d,b,c,this,this.A)),Wa(this))};S.prototype.ia=function(a,b){a&&!this.C.N&&(this.C.N=!0,this.u=M(b,"debugger"))};S.prototype.A=function(a,b){void 0!==b&&(this.u&&T(this.u,this,a,b,this.u.lb,!0),a-=this.v,this.a[this.v+a]=this.b?this.b[a]:0)};
|
||||
function Va(a,b,c,d){if(d)a.l('Error loading ROM "'+b+'" ('+d+")");else{if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),g=e.bytes;g?a.b=g:a.b=e}catch(h){a.l('Error processing ROM "'+b+'": '+h.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),c=0;c<b.length;c++)a.b[c]=parseInt(b[c],16);Wa(a)}}
|
||||
function Wa(a){if(!H(a))if(!a.o)a.X();else if(a.b&&a.a){var b=a.b.length;if(b!=a.g)Ca(a,"ROM image size ("+v(b)+") does not match component-specified size ("+v(a.g)+")");else{for(var c=0;c<b;c++)a.a[a.v+c]=a.b[c];a.X()}}}y(function(){for(var a=G(document,"c1pjs","rom"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new S(d);F(d,c)}});function Xa(a){C.call(this,"C1PRAM",a)}p(Xa,C);Xa.prototype.ca=function(a){this.a=a;this.X()};
|
||||
y(function(){for(var a=G(document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Xa(d);F(d,c)}});
|
||||
function Ya(a){C.call(this,"C1PKeyboard",a);this.C.N=!1;this.Ha=a.model;this.$=8;this.Ya=10;this.Xa=13;this.ba=27;this.Ua=this.$;this.Va=this.Ya;this.Ia=this.Xa;this.Z=this.ba;this.K=241;this.W=224;this.Ka=3;this.La=15;this.I=1;this.D={};this.D["break"]=this.W;this.D.esc=this.Z;this.D["ctrl-c"]=this.Ka;this.D["ctrl-o"]=this.La;this.b=[];this.b[49]=30464;this.b[33]=30704;this.b[50]=30208;this.b[34]=30448;this.b[51]=29952;this.b[35]=30192;this.b[52]=29696;this.b[36]=29936;this.b[53]=29440;this.b[37]=
|
||||
29680;this.b[54]=29184;this.b[38]=29424;this.b[55]=28928;this.b[39]=29168;this.b[56]=26368;this.b[40]=26608;this.b[57]=26112;this.b[41]=26352;this.b[48]=25856;this.b[58]=25600;this.b[42]=25840;this.b[45]=25344;this.b[61]=25584;this.b[46]=22272;this.b[62]=22512;this.b[108]=22016;this.b[76]=22256;this.b[92]=22256;this.b[111]=21760;this.b[79]=22E3;this.b[this.Ua]=22E3;this.b[this.Va]=21504;this.b[this.Ia]=21248;this.b[119]=18176;this.b[87]=18416;this.b[101]=17920;this.b[69]=18160;this.b[114]=17664;this.b[82]=
|
||||
17904;this.b[116]=17408;this.b[84]=17648;this.b[121]=17152;this.b[89]=17392;this.b[117]=16896;this.b[85]=17136;this.b[105]=16640;this.b[73]=16880;this.b[115]=14080;this.b[83]=14320;this.b[100]=13824;this.b[68]=14064;this.b[102]=13568;this.b[70]=13808;this.b[103]=13312;this.b[71]=13552;this.b[104]=13056;this.b[72]=13296;this.b[106]=12800;this.b[74]=13040;this.b[107]=12544;this.b[75]=12784;this.b[91]=12784;this.b[120]=9984;this.b[88]=10224;this.b[99]=9728;this.b[67]=9968;this.b[118]=9472;this.b[86]=
|
||||
9712;this.b[98]=9216;this.b[66]=9456;this.b[110]=8960;this.b[78]=9200;this.b[94]=9200;this.b[109]=8704;this.b[77]=8944;this.b[93]=8944;this.b[44]=8448;this.b[60]=8688;this.b[113]=5888;this.b[81]=6128;this.b[97]=5632;this.b[65]=5872;this.b[122]=5376;this.b[90]=5616;this.b[32]=5120;this.b[47]=4864;this.b[63]=5104;this.b[59]=4608;this.b[43]=4848;this.b[112]=4352;this.b[80]=4592;this.b[64]=4592;this.b[this.K]=1536;this.b[this.Z]=1280;this.b[240]=512;this.b[242]=256;this.b[244]=0;this.reset()}p(Ra,B);
|
||||
f=Ra.prototype;f.reset=function(){this.Ma(this.Ha);this.g=this.I;this.ja=0;this.o=[this.I,0,0,0,0,0,0,0];this.L=[];if(this.v)for(var a in this.v)isNaN(+a)||this.v[a]&&clearTimeout(this.v[a]);this.v=[];this.sa=this.A=0;this.ka=-1;this.fa=this.o;this.qa=this.V=0;this.B=""};
|
||||
f.T=function(a,b,c){if(void 0===this.H[b])switch(b){case "keyDown":return this.H[b]=c,c.onkeydown=function(a){return function(b){return Sa(a,b,!0)}}(this),!0;case "keyPress":return this.H[b]=c,c.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.B="";a.g&8?a.g&=-9:c=!Ta(a,b);a.u&&J(a.u,a.u.ya)&&a.u.message("keyPress("+t(b)+"): "+(c?"pass":"consume"));return c}}(this),!0;case "keyUp":return this.H[b]=c,c.onkeyup=function(a){return function(b){return Sa(a,b,
|
||||
!1)}}(this),!0;case "break":return this.H[b]=c,c.onclick=function(a){return function(){a.U&&a.U.reset(!0)}}(this),!0;default:if(void 0!==this.D[b])return this.H[b]=c,c.onclick=function(a,b,c){return function(){a.s&&a.s.da();return!Ta(a,c)}}(this,b,this.D[b]),!0}return!1};f.ca=function(a,b,c,d){this.a=a;this.ra=b;this.Za=c-b+1;this.jb=this.ra+this.Za;d&&(this.s=d,N(d,b,c,this,this.Ib));this.X()};f.Ma=function(a){this.M=a;this.O=255;600!=this.M&&(this.O=0,this.l("updated keyboard model: "+this.M))};
|
||||
f.ia=function(a,b){a&&!this.C.N&&(this.C.N=!0,this.U=b,this.u=L(b,"debugger"))};f.X=function(){this.R=(this.ib=w("iOS"))||w("Android");this.u&&J(this.u,this.u.ya)&&this.u.message("mobile keyboard support: "+(this.R?"true":"false")+" ("+window.navigator.userAgent+")");B.prototype.X.call(this)};function Ua(a,b){b=b?100:250;a.s&&a.s.L&&(b/=a.s.L);return b}function Va(a,b){!a.A||void 0!==b&&b==a.A||(a.u&&J(a.u,a.u.ya)&&a.u.message("autoClear("+t(a.A)+")"),clearTimeout(a.v[a.A]),T(a,a.A,!1,4))}
|
||||
function U(a,b,c){a.B=b;Wa(a,c||300)}function Wa(a,b){if(0<a.B.length){var c=a.B.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.B=a.B.substr(1);Ta(a,c)}0<a.B.length&&setTimeout(function(a){return function(){Wa(a,b)}}(a),b)}
|
||||
function Sa(a,b,c){var d,e=!c;b=b.keyCode;c&&(a.sa=b);16==b?(a.g&=-5,c&&(a.g|=4),b+=224,e=!1):18==b?(a.g&=-3,c&&(a.g|=2),b+=224,e=!1):b==a.K-224?(a.g&=-65,c&&(a.g|=64),b+=224,e=!1):20==b?(c=!c,a.g&=~a.I,c&&(a.g|=a.I),b+=224,e=!1):91==b?(a.g&=-9,c&&(a.g|=8),e=!1,d=!0):d=9==b?e=!1:b==a.ba||b==a.$?c?!Ta(a,b):!1:!0;e&&(a.g&=-9,a.R||b!=a.sa||Va(a));void 0===d&&(d=!T(a,b,c,2));a.u&&J(a.u,a.u.ya)&&a.u.message("key"+(c?"Down":"Up")+"("+t(b)+"): "+(d?"pass":"consume"));return d}
|
||||
function Ta(a,b){var c=!1;b==a.W?a.U&&(a.U.reset(!0),c=!0):(a.R&&65<=b&&90>=b&&(b+=32),Va(a,b),T(a,b,!0,0)&&(2==a.s.I?T(a,b,!1,1):(c=!1,a.v[b]&&(clearTimeout(a.v[b]),c=!0),c=Ua(a,c),a.v[a.A=b]=setTimeout(function(a){return function(){T(a,b,!1,3)}}(a),c),a.u&&J(a.u,a.u.ya)&&a.u.message("keyPressSimulate("+t(b)+"): setTimeout()")),c=!0));a.u&&J(a.u,a.u.ya)&&a.u.message("keyPressSimulate("+t(b)+"): "+(c?"true":"false"));return c}
|
||||
function T(a,b,c,d){var e=!1;c||(a.v[b]=null,a.A==b&&(a.A=0));var g=0,h=a.b[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.K),h=a.b[b]);void 0!==h&&(b=h>>12,e=h>>8&15,g||(g=h&255),c?(a.o[b]|=1<<e,a.o[0]=g==a.K?a.o[0]|64:240==g?a.o[0]|4:242==g?a.o[0]|2:a.o[0]&-71):(a.o[b]&=~(1<<e),a.o[0]&=-71,a.o[0]|=a.g&70),c=!d&&!a.L.length,a.L.push(a.o.slice()),Xa(a,c),e=!0);return e}f.S=function(){};f.Ib=function(a){this.ja=this.s.S(a)^this.O;this.V++;Xa(this,!1,a)};
|
||||
function Xa(a,b,c){var d=La(a.s);b||(2==a.s.I?b=void 0!==c&&32<=a.V:(b=d-a.qa,b=0>b||8192<=b));b&&(b=a.L.shift(),void 0!==b&&(a.fa=b),a.V=0,a.qa=d);for(b=d=0;8>b;b++)a.ja&1<<b&&(d|=a.fa[b]);d^=a.O;if(void 0!==c)a.a[c]=d;else if(c=a.ra,d!=a.ka)for(;c<a.jb;c++)a.a[c]=d;a.ka=d}x(function(){for(var a=F(document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ra(d);E(d,c)}});
|
||||
function Ya(a,b,c,d){B.call(this,"C1PVideo",a);this.ja=a.model;this.$=a.charCols;this.ba=a.charRows;this.qa=a.screenWidth;this.ra=a.screenHeight;this.B=a.charWidth;this.D=a.charHeight;Za(this);this.A=b;this.O=c;this.o=d;var e;b=["","moz","ms","webkit"];a=a.smoothing;if(!na){c={};if(window){e||(e=window.location.search.substr(1));for(var g=/\+/g,h=/([^&=]+)=?([^&]*)/g;d=h.exec(e);)c[decodeURIComponent(d[1].replace(g," "))]=decodeURIComponent(d[2].replace(g," "))}na=c}(e=na.smoothing)&&(a="true"==e);
|
||||
if(null!=a)for(e=0;e<b.length;e++)if(c=(c=b[e])?c+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.O[c]){this.O[c]=a;break}}p(Ya,B);f=Ya.prototype;f.reset=function(a){this.Ma(this.ja);if(this.a)for(var b=this.K;b<this.R;b++)this.a[b]=a?Math.floor(256*Math.random()):32};f.T=function(a,b,c){switch(b){case "refresh":return this.H[b]=c,c.onclick=function(a){return function(){$a(a);Aa(a)}}(this),!0}return!1};
|
||||
f.ca=function(a,b,c,d){this.a=a;this.K=b;this.ka=c-b+1;this.R=this.K+this.ka;d&&(this.s=d,Ba(d,56832,56832,this,this.S),N(d,56832,56832,this,this.Kb));this.reset(!0)};function Za(a,b,c,d,e){a.I=void 0!==b?b:a.$;a.sa=void 0!==c?c:a.ba;a.g=a.I*a.sa;a.R=a.K+a.g;a.Z=void 0!==d?d:0;a.fa=void 0!==e?e:c;a.V=Math.floor(a.qa/a.I);a.W=Math.floor(a.ra/a.fa)}f.da=function(){this.A.focus()};
|
||||
f.Ma=function(a){this.M=a;600==this.M?(Za(this,this.$,this.ba,3,25),1024==this.g&&this.s&&(this.v=this.R+this.g-1,N(this.s,this.v,this.v,this,this.Gb))):(this.l("updated video model: "+this.M),Za(this,64,32));$a(this);Aa(this)};f.ia=function(a,b){if(a&&!this.C.N&&G(this)){if(this.C.N=!0,this.u=L(b,"debugger"),this.b=L(b,"keyboard"))this.b.T("canvas","keyDown",this.A),this.b.T("canvas","keyPress",this.A),this.b.T("canvas","keyUp",this.A)}else!a&&this.C.N&&(this.C.N=!1)};
|
||||
f.X=function(){this.B||(this.B=Math.floor(this.o.width/16));this.D||(this.D=Math.floor(this.o.height/16));B.prototype.X.call(this)};f.S=function(a,b){var c=this.s.S(a);void 0!==b&&this.u&&S(this.u,this,a,b,this.u.$a);this.s.a[a]=c&127|(Math.floor(La(this.s)/8333)&1?128:0)};f.Kb=function(a,b){void 0!==b&&this.u&&S(this.u,this,a,b,this.u.$a)};
|
||||
f.Gb=function(a,b){if(void 0!==b){this.u&&S(this.u,this,a,b,this.u.$a,!0);this.Ma(540);this.b&&this.b.Ma(542);a=this.s;b=a.K;var c=[],d=Ca(b,this.v,this.v,this,this.Gb);if(0<=d){c.push(b[d][0]);c.push(b[d][1]);b.splice(d,1);for(var e=65536,g=0,d=0;d<b.length;d++)e>b[d][0]&&(e=b[d][0]),g<b[d][1]&&(g=b[d][1]);c.push(e);c.push(g)}4==c.length&&(a.fa=c[2],a.ja=c[3])}};function $a(a){a.L=Array(a.g);for(var b=0;b<=a.g;b++)a.L[b]=-1}
|
||||
function Aa(a){var b=0;if(a.C.N)for(;b<a.g;){var c=a.a[a.K+b];if(a.L[b]!=c){var d=Math.floor(b/a.I);if(d>=a.Z&&(d-=a.Z,d<a.fa)){var e=c*a.B;a.O.drawImage(a.o,e%a.o.width,Math.floor(e/a.o.width)*a.D,a.B,a.D,b%a.I*a.V,d*a.W,a.V,a.W)}a.L[b]=c}b++}}
|
||||
x(function(){for(var a=F(document,"c1pjs","video"),b=0;b<a.length;b++){var c=a[b],d=D(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer 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,h=e.getContext("2d"),e=new Ya(d,e,h,g);g.onload=function(a){return function(){a.X()}}(e,d.charSet);g.src=d.charSet;E(e,c)}});
|
||||
function ab(a){B.call(this,"C1PSerialPort",a);this.C.N=!1;this.D=a.demo;this.reset(!0)}p(ab,B);f=ab.prototype;f.reset=function(a){if(a||this.o!=bb){this.v=-1;this.A=0;this.g="";if(this.D){a=1;if(this.nb){var b=this.nb.match(/\d+/);null!==b&&(a=parseInt(b[0],10))}this.g='10 PRINT "HELLO OSI #'+a+'"\n'}this.B=!0;this.o=cb}};f.start=function(){this.b&&this.D&&(U(this.b," C\n\n",3E3),setTimeout(function(a){return function(){a.o=db;U(a.b,"LOAD\n")}}(this),12E3));this.D=!1};
|
||||
f.T=function(a,b,c){var d=this;switch(b){case "listSerial":return this.H[b]=c,!0;case "loadSerial":return this.H[b]=c,c.onclick=function(){d.H.listSerial&&v(d.H.listSerial.value,function(a,b,c){eb(d,a,b,c)})},!0;case "mountSerial":return!w("Mobi")&&window&&"FileReader"in window?(this.H[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){var b=a.currentTarget[1].files[0],c=new FileReader;c.onload=function(){eb(d,
|
||||
b.name,c.result.toString(),0)};c.readAsText(b);return!1}):c.parentNode.removeChild(c),!0}return!1};f.ca=function(a,b,c,d){this.a=a;this.M=b;this.K=c-b+1;this.I=this.M+this.K;if(this.s=d)Ba(d,b,c,this,this.S),N(d,b,c,this,this.Jb);this.X()};f.ia=function(a,b){a&&!this.C.N&&(this.C.N=!0,this.U=b,this.b=L(b,"keyboard"),this.u=L(b,"debugger"))};
|
||||
function eb(a,b,c,d){if(c){a.A=0;a.g=c;a.B=!0;a.o=cb;if(-1!==b.indexOf(".json",b.length-5))try{d="";var e=eval("("+c+")").bytes;for(c=0;c<e.length;c++)d+=String.fromCharCode(e[c]);a.g=d;a.B=!1}catch(g){a.l('Error processing file "'+b+'": '+g.message);return}a.U&&a.b&&a.s.C.oa?(a.l("auto-loading "+b),a.s.da(),"."!=a.g.charAt(0)?(a.o=db,U(a.b,"NEW\nLOAD\n")):(a.o=bb,a.U.reset(!0),U(a.b,"ML"))):a.l(b+" ready to load")}else a.l('Error loading file "'+b+'" ('+d+")")}
|
||||
f.S=function(a,b){void 0!==b&&(a&1?fb(this):this.g&&!this.A&&fb(this))};f.Jb=function(a,b){void 0!==b&&this.u&&S(this.u,this,a,b,this.u.Ke,!0)};function fb(a){if(void 0!==a.g){a.v=-1;if(a.A<a.g.length){var b=a.g.charCodeAt(a.A++)&255;a.B&&10==b&&(b=13);a.v=b}else a.g="",a.A=0,a.o==db&&a.b&&U(a.b," \nRUN\n"),a.o=cb;for(b=a.M+0;b<a.I;b+=2)a.a[b]=0<=a.v?gb:hb;for(b=a.M+1;b<a.I;b+=2)a.a[b]=0<=a.v?a.v:0}}var hb=0,gb=1,cb=0,db=1,bb=2;
|
||||
x(function(){for(var a=F(document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new ab(d);E(d,c)}});function ib(a){B.call(this,"C1PDiskController",a);this.C.N=!1;this.reset(!0)}p(ib,B);f=ib.prototype;f.reset=function(a){jb(this);this.b=-1;a&&(this.g=[],this.g[0]={Se:0,mb:40,Nb:!0,Ba:20,na:0,Aa:-1,Ra:[]})};
|
||||
function jb(a){a.K={J:64,read:function(){},update:function(a){return function(b){void 0!==b&&(this.J=b);a.B.J&4||V(a,0,this)}}(a)};a.o={J:255,read:function(){this.update()},update:function(a){return function(b){void 0===b?b=a.o.J:kb(a,b,a.A.J);b=(b|190)&-2;if(0<=a.b&&a.g[a.b].Ra.length){var c=a.g[a.b];c.Nb&&(b&=-33);c.na||(b&=-3);10>=--c.Ba&&(0<c.Ba?(b&=-129,lb(a)):(c.Ba=100,0<=a.b&&(a.g[a.b].Aa=0,mb(a))))}this.J=b;a.B.J&4&&V(a,0,this)}}(a)};a.B={J:0,read:function(){},update:function(a){return function(b){void 0!==
|
||||
b&&(this.J=b&-193);V(a,1,this);a.o.update();a.K.update()}}(a)};a.L={J:255,read:function(){},update:function(a){return function(b){void 0!==b&&(this.J=b);a.D.J&4||V(a,2,this)}}(a)};a.A={J:255,read:function(){},update:function(a){return function(b){void 0===b?b=a.A.J:kb(a,a.o.J,b);if(0<=a.b&&a.b<a.g.length){var c=a.g[a.b];c.Ra.length&&a.A.J&8&&!(b&8)&&(b&4?c.na--:c.na++,a.u&&J(a.u,a.u.Da)&&a.u.message("stepping "+(b&4?"down":"up")+" to track "+c.na),c.na>=c.mb&&(c.na=c.mb),0>c.na&&(c.na=0),c.Ba=20,
|
||||
a.o.update(a.o.J|128),lb(a))}this.J=b;a.D.J&4&&V(a,2,this)}}(a)};a.D={J:0,read:function(){},update:function(a){return function(b){void 0!==b&&(this.J=b&-193);V(a,3,this);a.A.update();a.L.update()}}(a)};a.O={J:0,read:function(){},update:function(a){return function(b){void 0!==b&&(3==(b&3)&&(a.v.J=14),this.J=b);a.v.update()}}(a)};a.v={J:14,read:function(){},update:function(a){return function(b){void 0===b&&(b=a.v.J);b&=-2;0<=a.b&&0<=a.g[a.b].Aa&&(b|=1);this.J=b;V(a,16,this)}}(a)};a.I={J:0,read:function(a){return function(){mb(a)}}(a),
|
||||
update:function(a){return function(b){void 0!==b&&(this.J=b);V(a,17,this)}}(a)};a.R={J:0,read:function(){},update:function(){return function(){}}(a)}}f.T=function(a,b,c){switch(b){case "listDisk":return this.H[b]=c,!0;case "loadDisk":return this.H[b]=c,c.onclick=function(a){return function(){if(a.H.listDisk){var b=a.H.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);a.l("loading "+aa(b)+"...");v(c,function(b,c,d){nb(a,b,c,d)})}}}(this),!0}return!1};
|
||||
f.ca=function(a,b,c,d){this.a=a;this.M=b;if(this.s=d)Ba(d,b,c,this,this.S),N(d,b,c,this,this.Hb);this.X()};f.ia=function(a,b){a&&!this.C.N&&(this.C.N=!0,this.u=L(b,"debugger"))};
|
||||
function nb(a,b,c,d){if(d)a.l("disk load error ("+d+")");else{d=[];a.l("mounting "+b+"...");try{if(d=eval("("+c+")"),d.length)if(d[0].length){var e=d[0];if(void 0===e[0].trackNum)a.l("data error: "+e[0]);else if(a.g[0]){for(c=0;c<e.length;c++){var g,h=e[c],l=h.sectors;if(void 0===(g=h.trackNum)||void 0===l)throw Error("track "+c+" missing data");g!=c&&z("track "+g+" out of order (expected "+c+")");d=[];var k,m,n;if(g){ob(d,h,"trackSig");pb(d,h);W(d,h,"trackType");for(var r=0;r<l.length;r++){k=l[r];
|
||||
m=k.sectorData;W(d,k,"sectorSig");W(d,k,"sectorNum");W(d,k,"sectorPages");for(n=0;n<m.length;n++)d.push(m[n]);ob(d,k,"sectorEndSig")}}else for(k=l[0],m=k.sectorData,W(d,h,"trackLoad",2),W(d,k,"sectorPages"),n=0;n<m.length;n++)d.push(m[n]);e[g].Fb=d;a.u&&J(a.u,a.u.Da)&&a.u.message("track "+g+": "+d.length+" bytes")}a.g[0].Ra=e;a.l("mount of "+b+" complete")}else a.l("no available drives")}else a.l("no tracks: "+b);else a.l("no data: "+b)}catch(Ib){a.l("disk data error: "+Ib.message)}}}
|
||||
function pb(a,b){b=b.trackNum;if(void 0===b)throw Error("missing bcd value: trackNum");a.push(Math.floor(b/10)<<4|b%10)}function W(a,b,c,d){b=b[c];if(void 0===b)throw Error("missing binary value: "+c);2==d&&a.push(b>>8&255);a.push(b&255)}function ob(a,b,c){b=b[c];if(void 0===b)throw Error("missing signature: "+c);for(c=0;c<b.length;c++)a.push(b.charCodeAt(c))}
|
||||
function qb(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case 0:a=a.B.J&4?a.o:a.K;break;case 1:a=a.B;break;case 2:a=a.D.J&4?a.A:a.L;break;case 3:a=a.D;break;case 16:a=c?a.O:a.v;break;case 17:a=a.I;break;default:a=a.R}return a}f.S=function(a,b){if(void 0!==b){var c=qb(this,a-this.M,!1);this.u&&S(this.u,this,a,b,this.u.Da,!1,c.Eb);c.read()}};
|
||||
f.Hb=function(a,b){if(void 0!==b){var c=this.s.S(a),d=qb(this,a-this.M,!0);if(this.u&&J(this.u,this.u.Da|this.u.lb)&&(S(this.u,this,a,b,this.u.Da,!0,d.Eb),d.Lb))for(a=128,b=d.J^c;b&&a;)b&a&&this.u.message(" changed "+d.Eb+"."+d.Lb[a]+" to "+(c&a?"1":"0")),a>>=1;d.update(c)}};function kb(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&32||(d|=2),a.o.J&64||(d|=1));a.b!=d&&(a.b=d,a.v.update())}function lb(a){0<=a.b&&(a.g[a.b].Aa=-1,a.I.update(255),a.v.update())}
|
||||
function mb(a){var b;if(0<=a.b){b=a.g[a.b];var c=b.Ra[b.na];void 0!==c&&(0<=b.Aa&&b.Aa<c.Fb.length?(b.Ba=100,b=c.Fb[b.Aa++],a.I.update(b),a.v.update()):(b.Ba=10,lb(a)))}}function V(a,b,c){a.s.a[b+a.M]=c.J}x(function(){for(var a=F(document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new ib(d);E(d,c)}});
|
||||
function rb(a){B.call(this,"C1PDebugger",a);this.u=this;this.L=-1;this.ta=0;this.hb=null;this.Ta=!1;this.ha=0;this.pa=[];this.va=[];this.xa=[];this.Ja=0;this.wa=[];this.B=[];this.lb=1;this.ya=16;this.$a=32;this.Da=64;this.Ke=128;this.ma=this.Z=0;this.Qa={port:1,kbd:16,video:32,disk:64,serial:128};this.Oa=28;this.ab=56;this.Fa="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.W=["HLT","MSG"];sb(this,!0);this.ga=[[10],[34,1,this.D],[this.ab,1],[],[],[34,1,this.b],[2,1,this.b],[],[36],[34,1,this.v],[2,0,this.O],[],[],[34,2,this.P],[2,2,this.P],[],[9,1,this.ea],[34,1,this.I],[],[],[],[34,1,this.g],[2,1,this.g],[],[13],[34,2,this.A],[],[],[],[34,2,this.o],[2,2,this.o],[],[this.Oa,2,this.Na],[1,1,this.D],[],[],[6,1,this.b],[1,1,this.b],[39,1,this.b],[],[38],[1,1,this.v],[39,0,this.O],[],[6,2,this.P],[1,2,this.P],[39,2,this.P],[],[7,1,this.ea],[1,1,this.I],[],[],[],[1,
|
||||
9712;this.b[98]=9216;this.b[66]=9456;this.b[110]=8960;this.b[78]=9200;this.b[94]=9200;this.b[109]=8704;this.b[77]=8944;this.b[93]=8944;this.b[44]=8448;this.b[60]=8688;this.b[113]=5888;this.b[81]=6128;this.b[97]=5632;this.b[65]=5872;this.b[122]=5376;this.b[90]=5616;this.b[32]=5120;this.b[47]=4864;this.b[63]=5104;this.b[59]=4608;this.b[43]=4848;this.b[112]=4352;this.b[80]=4592;this.b[64]=4592;this.b[this.K]=1536;this.b[this.Z]=1280;this.b[240]=512;this.b[242]=256;this.b[244]=0;this.reset()}p(Ya,C);
|
||||
f=Ya.prototype;f.reset=function(){this.Ma(this.Ha);this.g=this.I;this.ja=0;this.o=[this.I,0,0,0,0,0,0,0];this.L=[];if(this.v)for(var a in this.v)isNaN(+a)||this.v[a]&&clearTimeout(this.v[a]);this.v=[];this.sa=this.A=0;this.ka=-1;this.fa=this.o;this.qa=this.V=0;this.B=""};
|
||||
f.T=function(a,b,c){if(void 0===this.H[b])switch(b){case "keyDown":return this.H[b]=c,c.onkeydown=function(a){return function(b){return Za(a,b,!0)}}(this),!0;case "keyPress":return this.H[b]=c,c.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.B="";a.g&8?a.g&=-9:c=!$a(a,b);a.u&&K(a.u,a.u.ya)&&a.u.message("keyPress("+u(b)+"): "+(c?"pass":"consume"));return c}}(this),!0;case "keyUp":return this.H[b]=c,c.onkeyup=function(a){return function(b){return Za(a,b,
|
||||
!1)}}(this),!0;case "break":return this.H[b]=c,c.onclick=function(a){return function(){a.U&&a.U.reset(!0)}}(this),!0;default:if(void 0!==this.D[b])return this.H[b]=c,c.onclick=function(a,b,c){return function(){a.s&&a.s.da();return!$a(a,c)}}(this,b,this.D[b]),!0}return!1};f.ca=function(a,b,c,d){this.a=a;this.ra=b;this.Za=c-b+1;this.jb=this.ra+this.Za;d&&(this.s=d,O(d,b,c,this,this.Ib));this.X()};f.Ma=function(a){this.M=a;this.O=255;600!=this.M&&(this.O=0,this.l("updated keyboard model: "+this.M))};
|
||||
f.ia=function(a,b){a&&!this.C.N&&(this.C.N=!0,this.U=b,this.u=M(b,"debugger"))};f.X=function(){this.R=(this.ib=x("iOS"))||x("Android");this.u&&K(this.u,this.u.ya)&&this.u.message("mobile keyboard support: "+(this.R?"true":"false")+" ("+window.navigator.userAgent+")");C.prototype.X.call(this)};function ab(a,b){b=b?100:250;a.s&&a.s.L&&(b/=a.s.L);return b}function bb(a,b){!a.A||void 0!==b&&b==a.A||(a.u&&K(a.u,a.u.ya)&&a.u.message("autoClear("+u(a.A)+")"),clearTimeout(a.v[a.A]),U(a,a.A,!1,4))}
|
||||
function cb(a,b,c){a.B=b;db(a,c||300)}function db(a,b){if(0<a.B.length){var c=a.B.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.B=a.B.substr(1);$a(a,c)}0<a.B.length&&setTimeout(function(a){return function(){db(a,b)}}(a),b)}
|
||||
function Za(a,b,c){var d,e=!c;b=b.keyCode;c&&(a.sa=b);16==b?(a.g&=-5,c&&(a.g|=4),b+=224,e=!1):18==b?(a.g&=-3,c&&(a.g|=2),b+=224,e=!1):b==a.K-224?(a.g&=-65,c&&(a.g|=64),b+=224,e=!1):20==b?(c=!c,a.g&=~a.I,c&&(a.g|=a.I),b+=224,e=!1):91==b?(a.g&=-9,c&&(a.g|=8),e=!1,d=!0):d=9==b?e=!1:b==a.ba||b==a.$?c?!$a(a,b):!1:!0;e&&(a.g&=-9,a.R||b!=a.sa||bb(a));void 0===d&&(d=!U(a,b,c,2));a.u&&K(a.u,a.u.ya)&&a.u.message("key"+(c?"Down":"Up")+"("+u(b)+"): "+(d?"pass":"consume"));return d}
|
||||
function $a(a,b){var c=!1;b==a.W?a.U&&(a.U.reset(!0),c=!0):(a.R&&65<=b&&90>=b&&(b+=32),bb(a,b),U(a,b,!0,0)&&(2==a.s.I?U(a,b,!1,1):(c=!1,a.v[b]&&(clearTimeout(a.v[b]),c=!0),c=ab(a,c),a.v[a.A=b]=setTimeout(function(a){return function(){U(a,b,!1,3)}}(a),c),a.u&&K(a.u,a.u.ya)&&a.u.message("keyPressSimulate("+u(b)+"): setTimeout()")),c=!0));a.u&&K(a.u,a.u.ya)&&a.u.message("keyPressSimulate("+u(b)+"): "+(c?"true":"false"));return c}
|
||||
function U(a,b,c,d){var e=!1;c||(a.v[b]=null,a.A==b&&(a.A=0));var g=0,h=a.b[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.K),h=a.b[b]);void 0!==h&&(b=h>>12,e=h>>8&15,g||(g=h&255),c?(a.o[b]|=1<<e,a.o[0]=g==a.K?a.o[0]|64:240==g?a.o[0]|4:242==g?a.o[0]|2:a.o[0]&-71):(a.o[b]&=~(1<<e),a.o[0]&=-71,a.o[0]|=a.g&70),c=!d&&!a.L.length,a.L.push(a.o.slice()),eb(a,c),e=!0);return e}f.S=function(){};f.Ib=function(a){this.ja=this.s.S(a)^this.O;this.V++;eb(this,!1,a)};
|
||||
function eb(a,b,c){var d=Sa(a.s);b||(2==a.s.I?b=void 0!==c&&32<=a.V:(b=d-a.qa,b=0>b||8192<=b));b&&(b=a.L.shift(),void 0!==b&&(a.fa=b),a.V=0,a.qa=d);for(b=d=0;8>b;b++)a.ja&1<<b&&(d|=a.fa[b]);d^=a.O;if(void 0!==c)a.a[c]=d;else if(c=a.ra,d!=a.ka)for(;c<a.jb;c++)a.a[c]=d;a.ka=d}y(function(){for(var a=G(document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Ya(d);F(d,c)}});
|
||||
function fb(a,b,c,d){C.call(this,"C1PVideo",a);this.ja=a.model;this.$=a.charCols;this.ba=a.charRows;this.qa=a.screenWidth;this.ra=a.screenHeight;this.B=a.charWidth;this.D=a.charHeight;gb(this);this.A=b;this.O=c;this.o=d;var e;b=["","moz","ms","webkit"];a=a.smoothing;if(!ua){c={};if(window){e||(e=window.location.search.substr(1));for(var g=/\+/g,h=/([^&=]+)=?([^&]*)/g;d=h.exec(e);)c[decodeURIComponent(d[1].replace(g," "))]=decodeURIComponent(d[2].replace(g," "))}ua=c}(e=ua.smoothing)&&(a="true"==e);
|
||||
if(null!=a)for(e=0;e<b.length;e++)if(c=(c=b[e])?c+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.O[c]){this.O[c]=a;break}}p(fb,C);f=fb.prototype;f.reset=function(a){this.Ma(this.ja);if(this.a)for(var b=this.K;b<this.R;b++)this.a[b]=a?Math.floor(256*Math.random()):32};f.T=function(a,b,c){switch(b){case "refresh":return this.H[b]=c,c.onclick=function(a){return function(){hb(a);Ha(a)}}(this),!0}return!1};
|
||||
f.ca=function(a,b,c,d){this.a=a;this.K=b;this.ka=c-b+1;this.R=this.K+this.ka;d&&(this.s=d,Ia(d,56832,56832,this,this.S),O(d,56832,56832,this,this.Kb));this.reset(!0)};function gb(a,b,c,d,e){a.I=void 0!==b?b:a.$;a.sa=void 0!==c?c:a.ba;a.g=a.I*a.sa;a.R=a.K+a.g;a.Z=void 0!==d?d:0;a.fa=void 0!==e?e:c;a.V=Math.floor(a.qa/a.I);a.W=Math.floor(a.ra/a.fa)}f.da=function(){this.A.focus()};
|
||||
f.Ma=function(a){this.M=a;600==this.M?(gb(this,this.$,this.ba,3,25),1024==this.g&&this.s&&(this.v=this.R+this.g-1,O(this.s,this.v,this.v,this,this.Gb))):(this.l("updated video model: "+this.M),gb(this,64,32));hb(this);Ha(this)};f.ia=function(a,b){if(a&&!this.C.N&&H(this)){if(this.C.N=!0,this.u=M(b,"debugger"),this.b=M(b,"keyboard"))this.b.T("canvas","keyDown",this.A),this.b.T("canvas","keyPress",this.A),this.b.T("canvas","keyUp",this.A)}else!a&&this.C.N&&(this.C.N=!1)};
|
||||
f.X=function(){this.B||(this.B=Math.floor(this.o.width/16));this.D||(this.D=Math.floor(this.o.height/16));C.prototype.X.call(this)};f.S=function(a,b){var c=this.s.S(a);void 0!==b&&this.u&&T(this.u,this,a,b,this.u.$a);this.s.a[a]=c&127|(Math.floor(Sa(this.s)/8333)&1?128:0)};f.Kb=function(a,b){void 0!==b&&this.u&&T(this.u,this,a,b,this.u.$a)};
|
||||
f.Gb=function(a,b){if(void 0!==b){this.u&&T(this.u,this,a,b,this.u.$a,!0);this.Ma(540);this.b&&this.b.Ma(542);a=this.s;b=a.K;var c=[],d=Ja(b,this.v,this.v,this,this.Gb);if(0<=d){c.push(b[d][0]);c.push(b[d][1]);b.splice(d,1);for(var e=65536,g=0,d=0;d<b.length;d++)e>b[d][0]&&(e=b[d][0]),g<b[d][1]&&(g=b[d][1]);c.push(e);c.push(g)}4==c.length&&(a.fa=c[2],a.ja=c[3])}};function hb(a){a.L=Array(a.g);for(var b=0;b<=a.g;b++)a.L[b]=-1}
|
||||
function Ha(a){var b=0;if(a.C.N)for(;b<a.g;){var c=a.a[a.K+b];if(a.L[b]!=c){var d=Math.floor(b/a.I);if(d>=a.Z&&(d-=a.Z,d<a.fa)){var e=c*a.B;a.O.drawImage(a.o,e%a.o.width,Math.floor(e/a.o.width)*a.D,a.B,a.D,b%a.I*a.V,d*a.W,a.V,a.W)}a.L[b]=c}b++}}
|
||||
y(function(){for(var a=G(document,"c1pjs","video"),b=0;b<a.length;b++){var c=a[b],d=E(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer 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,h=e.getContext("2d"),e=new fb(d,e,h,g);g.onload=function(a){return function(){a.X()}}(e,d.charSet);g.src=d.charSet;F(e,c)}});
|
||||
function ib(a){C.call(this,"C1PSerialPort",a);this.C.N=!1;this.D=a.demo;this.reset(!0)}p(ib,C);f=ib.prototype;f.reset=function(a){if(a||this.o!=jb){this.v=-1;this.A=0;this.g="";if(this.D){a=1;if(this.nb){var b=this.nb.match(/\d+/);null!==b&&(a=parseInt(b[0],10))}this.g='10 PRINT "HELLO OSI #'+a+'"\n'}this.B=!0;this.o=kb}};f.start=function(){this.b&&this.D&&(cb(this.b," C\n\n",3E3),setTimeout(function(a){return function(){a.o=lb;cb(a.b,"LOAD\n")}}(this),12E3));this.D=!1};
|
||||
f.T=function(a,b,c){var d=this;switch(b){case "listSerial":return this.H[b]=c,!0;case "loadSerial":return this.H[b]=c,c.onclick=function(){d.H.listSerial&&w(d.H.listSerial.value,function(a,b,c){mb(d,a,b,c)})},!0;case "mountSerial":return!x("Mobi")&&window&&"FileReader"in window?(this.H[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){var b=a.currentTarget[1].files[0],c=new FileReader;c.onload=function(){mb(d,
|
||||
b.name,c.result.toString(),0)};c.readAsText(b);return!1}):c.parentNode.removeChild(c),!0}return!1};f.ca=function(a,b,c,d){this.a=a;this.M=b;this.K=c-b+1;this.I=this.M+this.K;if(this.s=d)Ia(d,b,c,this,this.S),O(d,b,c,this,this.Jb);this.X()};f.ia=function(a,b){a&&!this.C.N&&(this.C.N=!0,this.U=b,this.b=M(b,"keyboard"),this.u=M(b,"debugger"))};
|
||||
function mb(a,b,c,d){if(c){a.A=0;a.g=c;a.B=!0;a.o=kb;if(-1!==b.indexOf(".json",b.length-5))try{d="";var e=eval("("+c+")").bytes;for(c=0;c<e.length;c++)d+=String.fromCharCode(e[c]);a.g=d;a.B=!1}catch(g){a.l('Error processing file "'+b+'": '+g.message);return}a.U&&a.b&&a.s.C.oa?(a.l("auto-loading "+b),a.s.da(),"."!=a.g.charAt(0)?(a.o=lb,cb(a.b,"NEW\nLOAD\n")):(a.o=jb,a.U.reset(!0),cb(a.b,"ML"))):a.l(b+" ready to load")}else a.l('Error loading file "'+b+'" ('+d+")")}
|
||||
f.S=function(a,b){void 0!==b&&(a&1?nb(this):this.g&&!this.A&&nb(this))};f.Jb=function(a,b){void 0!==b&&this.u&&T(this.u,this,a,b,this.u.Ke,!0)};function nb(a){if(void 0!==a.g){a.v=-1;if(a.A<a.g.length){var b=a.g.charCodeAt(a.A++)&255;a.B&&10==b&&(b=13);a.v=b}else a.g="",a.A=0,a.o==lb&&a.b&&cb(a.b," \nRUN\n"),a.o=kb;for(b=a.M+0;b<a.I;b+=2)a.a[b]=0<=a.v?ob:pb;for(b=a.M+1;b<a.I;b+=2)a.a[b]=0<=a.v?a.v:0}}var pb=0,ob=1,kb=0,lb=1,jb=2;
|
||||
y(function(){for(var a=G(document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new ib(d);F(d,c)}});function qb(a){C.call(this,"C1PDiskController",a);this.C.N=!1;this.reset(!0)}p(qb,C);f=qb.prototype;f.reset=function(a){rb(this);this.b=-1;a&&(this.g=[],this.g[0]={Se:0,mb:40,Nb:!0,Ba:20,na:0,Aa:-1,Ra:[]})};
|
||||
function rb(a){a.K={J:64,read:function(){},update:function(a){return function(b){void 0!==b&&(this.J=b);a.B.J&4||V(a,0,this)}}(a)};a.o={J:255,read:function(){this.update()},update:function(a){return function(b){void 0===b?b=a.o.J:sb(a,b,a.A.J);b=(b|190)&-2;if(0<=a.b&&a.g[a.b].Ra.length){var c=a.g[a.b];c.Nb&&(b&=-33);c.na||(b&=-3);10>=--c.Ba&&(0<c.Ba?(b&=-129,tb(a)):(c.Ba=100,0<=a.b&&(a.g[a.b].Aa=0,ub(a))))}this.J=b;a.B.J&4&&V(a,0,this)}}(a)};a.B={J:0,read:function(){},update:function(a){return function(b){void 0!==
|
||||
b&&(this.J=b&-193);V(a,1,this);a.o.update();a.K.update()}}(a)};a.L={J:255,read:function(){},update:function(a){return function(b){void 0!==b&&(this.J=b);a.D.J&4||V(a,2,this)}}(a)};a.A={J:255,read:function(){},update:function(a){return function(b){void 0===b?b=a.A.J:sb(a,a.o.J,b);if(0<=a.b&&a.b<a.g.length){var c=a.g[a.b];c.Ra.length&&a.A.J&8&&!(b&8)&&(b&4?c.na--:c.na++,a.u&&K(a.u,a.u.Da)&&a.u.message("stepping "+(b&4?"down":"up")+" to track "+c.na),c.na>=c.mb&&(c.na=c.mb),0>c.na&&(c.na=0),c.Ba=20,
|
||||
a.o.update(a.o.J|128),tb(a))}this.J=b;a.D.J&4&&V(a,2,this)}}(a)};a.D={J:0,read:function(){},update:function(a){return function(b){void 0!==b&&(this.J=b&-193);V(a,3,this);a.A.update();a.L.update()}}(a)};a.O={J:0,read:function(){},update:function(a){return function(b){void 0!==b&&(3==(b&3)&&(a.v.J=14),this.J=b);a.v.update()}}(a)};a.v={J:14,read:function(){},update:function(a){return function(b){void 0===b&&(b=a.v.J);b&=-2;0<=a.b&&0<=a.g[a.b].Aa&&(b|=1);this.J=b;V(a,16,this)}}(a)};a.I={J:0,read:function(a){return function(){ub(a)}}(a),
|
||||
update:function(a){return function(b){void 0!==b&&(this.J=b);V(a,17,this)}}(a)};a.R={J:0,read:function(){},update:function(){return function(){}}(a)}}f.T=function(a,b,c){switch(b){case "listDisk":return this.H[b]=c,!0;case "loadDisk":return this.H[b]=c,c.onclick=function(a){return function(){if(a.H.listDisk){var b=a.H.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);a.l("loading "+ha(b)+"...");w(c,function(b,c,d){vb(a,b,c,d)})}}}(this),!0}return!1};
|
||||
f.ca=function(a,b,c,d){this.a=a;this.M=b;if(this.s=d)Ia(d,b,c,this,this.S),O(d,b,c,this,this.Hb);this.X()};f.ia=function(a,b){a&&!this.C.N&&(this.C.N=!0,this.u=M(b,"debugger"))};
|
||||
function vb(a,b,c,d){if(d)a.l("disk load error ("+d+")");else{d=[];a.l("mounting "+b+"...");try{if(d=eval("("+c+")"),d.length)if(d[0].length){var e=d[0];if(void 0===e[0].trackNum)a.l("data error: "+e[0]);else if(a.g[0]){for(c=0;c<e.length;c++){var g,h=e[c],l=h.sectors;if(void 0===(g=h.trackNum)||void 0===l)throw Error("track "+c+" missing data");g!=c&&A("track "+g+" out of order (expected "+c+")");d=[];var k,m,n;if(g){wb(d,h,"trackSig");xb(d,h);W(d,h,"trackType");for(var r=0;r<l.length;r++){k=l[r];
|
||||
m=k.sectorData;W(d,k,"sectorSig");W(d,k,"sectorNum");W(d,k,"sectorPages");for(n=0;n<m.length;n++)d.push(m[n]);wb(d,k,"sectorEndSig")}}else for(k=l[0],m=k.sectorData,W(d,h,"trackLoad",2),W(d,k,"sectorPages"),n=0;n<m.length;n++)d.push(m[n]);e[g].Fb=d;a.u&&K(a.u,a.u.Da)&&a.u.message("track "+g+": "+d.length+" bytes")}a.g[0].Ra=e;a.l("mount of "+b+" complete")}else a.l("no available drives")}else a.l("no tracks: "+b);else a.l("no data: "+b)}catch(Qb){a.l("disk data error: "+Qb.message)}}}
|
||||
function xb(a,b){b=b.trackNum;if(void 0===b)throw Error("missing bcd value: trackNum");a.push(Math.floor(b/10)<<4|b%10)}function W(a,b,c,d){b=b[c];if(void 0===b)throw Error("missing binary value: "+c);2==d&&a.push(b>>8&255);a.push(b&255)}function wb(a,b,c){b=b[c];if(void 0===b)throw Error("missing signature: "+c);for(c=0;c<b.length;c++)a.push(b.charCodeAt(c))}
|
||||
function yb(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case 0:a=a.B.J&4?a.o:a.K;break;case 1:a=a.B;break;case 2:a=a.D.J&4?a.A:a.L;break;case 3:a=a.D;break;case 16:a=c?a.O:a.v;break;case 17:a=a.I;break;default:a=a.R}return a}f.S=function(a,b){if(void 0!==b){var c=yb(this,a-this.M,!1);this.u&&T(this.u,this,a,b,this.u.Da,!1,c.Eb);c.read()}};
|
||||
f.Hb=function(a,b){if(void 0!==b){var c=this.s.S(a),d=yb(this,a-this.M,!0);if(this.u&&K(this.u,this.u.Da|this.u.lb)&&(T(this.u,this,a,b,this.u.Da,!0,d.Eb),d.Lb))for(a=128,b=d.J^c;b&&a;)b&a&&this.u.message(" changed "+d.Eb+"."+d.Lb[a]+" to "+(c&a?"1":"0")),a>>=1;d.update(c)}};function sb(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&32||(d|=2),a.o.J&64||(d|=1));a.b!=d&&(a.b=d,a.v.update())}function tb(a){0<=a.b&&(a.g[a.b].Aa=-1,a.I.update(255),a.v.update())}
|
||||
function ub(a){var b;if(0<=a.b){b=a.g[a.b];var c=b.Ra[b.na];void 0!==c&&(0<=b.Aa&&b.Aa<c.Fb.length?(b.Ba=100,b=c.Fb[b.Aa++],a.I.update(b),a.v.update()):(b.Ba=10,tb(a)))}}function V(a,b,c){a.s.a[b+a.M]=c.J}y(function(){for(var a=G(document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new qb(d);F(d,c)}});
|
||||
function zb(a){C.call(this,"C1PDebugger",a);this.u=this;this.L=-1;this.ta=0;this.hb=null;this.Ta=!1;this.ha=0;this.pa=[];this.va=[];this.xa=[];this.Ja=0;this.wa=[];this.B=[];this.lb=1;this.ya=16;this.$a=32;this.Da=64;this.Ke=128;this.ma=this.Z=0;this.Qa={port:1,kbd:16,video:32,disk:64,serial:128};this.Oa=28;this.ab=56;this.Fa="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.W=["HLT","MSG"];Ab(this,!0);this.ga=[[10],[34,1,this.D],[this.ab,1],[],[],[34,1,this.b],[2,1,this.b],[],[36],[34,1,this.v],[2,0,this.O],[],[],[34,2,this.P],[2,2,this.P],[],[9,1,this.ea],[34,1,this.I],[],[],[],[34,1,this.g],[2,1,this.g],[],[13],[34,2,this.A],[],[],[],[34,2,this.o],[2,2,this.o],[],[this.Oa,2,this.Na],[1,1,this.D],[],[],[6,1,this.b],[1,1,this.b],[39,1,this.b],[],[38],[1,1,this.v],[39,0,this.O],[],[6,2,this.P],[1,2,this.P],[39,2,this.P],[],[7,1,this.ea],[1,1,this.I],[],[],[],[1,
|
||||
1,this.g],[39,1,this.g],[],[44],[1,2,this.A],[],[],[],[1,2,this.o],[39,2,this.o],[],[41],[23,1,this.D],[],[],[],[23,1,this.b],[32,1,this.b],[],[35],[23,1,this.v],[32,0,this.O],[],[27,2,this.Na],[23,2,this.P],[32,2,this.P],[],[11,1,this.ea],[23,1,this.I],[],[],[],[23,1,this.g],[32,1,this.g],[],[15],[23,2,this.A],[],[],[],[23,2,this.o],[32,2,this.o],[],[42],[0,1,this.D],[],[],[],[0,1,this.b],[40,1,this.b],[],[37],[0,1,this.v],[40,0,this.O],[],[27,2,this.kb],[0,2,this.P],[40,2,this.P],[],[12,1,this.ea],
|
||||
[0,1,this.I],[],[],[],[0,1,this.g],[40,1,this.g],[],[46],[0,2,this.A],[],[],[],[0,2,this.o],[40,2,this.o],[],[],[47,1,this.D],[],[],[49,1,this.b],[47,1,this.b],[48,1,this.b],[],[22],[],[53],[],[49,2,this.P],[47,2,this.P],[48,2,this.P],[],[3,1,this.ea],[47,1,this.I],[],[],[49,1,this.g],[47,1,this.g],[48,1,this.V],[],[55],[47,2,this.A],[54],[],[],[47,2,this.o],[],[],[31,1,this.v],[29,1,this.D],[30,1,this.v],[],[31,1,this.b],[29,1,this.b],[30,1,this.b],[],[51],[29,1,this.v],[50],[],[31,2,this.P],[29,
|
||||
2,this.P],[30,2,this.P],[],[4,1,this.ea],[29,1,this.I],[],[],[31,1,this.g],[29,1,this.g],[30,1,this.V],[],[16],[29,2,this.A],[52],[],[31,2,this.o],[29,2,this.o],[30,2,this.A],[],[19,1,this.v],[17,1,this.D],[],[],[19,1,this.b],[17,1,this.b],[20,1,this.b],[],[26],[17,1,this.v],[21],[],[19,2,this.P],[17,2,this.P],[20,2,this.P],[],[8,1,this.ea],[17,1,this.I],[],[],[],[17,1,this.g],[20,1,this.g],[],[14],[17,2,this.A],[],[],[],[17,2,this.o],[20,2,this.o],[],[18,1,this.v],[43,1,this.D],[],[],[18,1,this.b],
|
||||
[43,1,this.b],[24,1,this.b],[],[25],[43,1,this.v],[33],[],[18,2,this.P],[43,2,this.P],[24,2,this.P],[],[5,1,this.ea],[43,1,this.I],[],[],[],[43,1,this.g],[24,1,this.g],[],[45],[43,2,this.A],[],[],[],[43,2,this.o],[24,2,this.o],[]]}p(rb,B);f=rb.prototype;
|
||||
f.T=function(a,b,c){var d=this;switch(b){case "debugInput":return this.R=this.H[b]=c,this.R.focus(),c.onkeypress=function(a,c){return function(d){13==d.keyCode&&(b=c.value,c.value="",tb(a,b))}}(this,c),!0;case "debugEnter":return this.H[b]=c,ga(c,function(){return d.R?(b=d.R.value,tb(d,b),!0):!1}),!0;case "step":return this.H[b]=c,ga(c,function(a){var b=!1;H(d,!0)||(I(d,!0),b=d.step(a?1:0),I(d,!1));return b}),!0}return!1};
|
||||
f.ca=function(a,b,c){this.a=a;this.M=b;this.sa=c-b+1;this.Ca=this.M+this.sa;this.X()};f.ia=function(a,b){a&&!this.C.N&&(this.C.N=!0,this.s=L(b,"cpu"))};f.da=function(){this.R.focus()};
|
||||
function sb(a,b){a.O=0;a.v=1;a.o=2;a.A=3;a.Na=4;a.kb=5;a.g=6;a.V=7;a.D=8;a.I=9;a.P=10;a.b=11;a.ea=a.Na;var c="",d;if(b)for(a.la="A #$nn $nnnn,X $nnnn,Y $nnnn ($nnnn) $nn,X $nn,Y ($nn,X) ($nn),Y $nnnn $nn".split(" "),b=0;b<a.la.length;b++)d=a.la[b],c+="("+d.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.la="A nn [nnnn+X] [nnnn+Y] nnnn [nnnn] [nn+X] [nn+Y] [[nn+X]] [[nn]+Y] [nnnn] [nn]".split(" "),
|
||||
b=0;b<a.la.length;b++)d=a.la[b],c+="("+d.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.Le=new RegExp(c);a.Mb=[27,a.Oa,9,7,11,12,3,4,8,5]}f.aa=function(){this.s.aa()};function S(a,b,c,d,e,g,h){(a.ma&e)==e&&(e=a.s.S(c),a.message(b.id+"."+(g?"setByte":"getByte")+"("+u(c)+")"+(void 0!==d?" @"+u(d):"")+": "+(h?h+"=":"")+t(e)))}f.message=function(a){this.l(a);Ka(this.s)};f.Ob=function(){this.l("Type ? for list of debugger commands\n")};
|
||||
f.ua=function(){if(!ub(this))return!1;this.s.ua();return!0};f.step=function(a){if(!ub(this))return!1;var b;try{b=this.s.step(a)}catch(c){b=void 0,va(this.s,c.stack||c.message)}void 0!==b&&this.L++;this.s.update(!0);this.update(!0);return b};f.update=function(a){this.ta=this.s.f;a||this.za?vb(this):wb(this)};function ub(a){a.s&&G(a.s)&&!H(a.s)?(a=a.s,a.C.error?(a.l(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}
|
||||
f.reset=function(){var a;this.wa.length||(this.wa=Array(1E3));for(a=0;a<this.wa.length;a++)this.wa[a]=-1;this.B.length||(this.B=Array(256));for(a=0;a<this.B.length;a++)this.B[a]=[a,0];this.L&&this.update();this.L=0};f.start=function(){this.za||this.l("running")};f.stop=function(a,b){if(!this.za&&(this.l("stopped"),b)){var c=ea();this.l(c-a+"ms ("+b+" cycles)")}this.update();this.da();this.za||(this.L=0);xb(this,this.s.f)};function yb(a,b){return a+(b<<24>>24)}
|
||||
f.S=function(a){var b;a>=this.M&&a<this.Ca&&(Da(this.s,a),b=this.a[this.M+a],b&=255);return b};function zb(a,b,c){b<a.M||b>=a.Ca?a.l("invalid address: "+u(b)):(a.a[a.M+b]=c&255,Ea(a.s,b),a.s.update())}function Ab(a,b){X(a.pa,b,void 0)||a.pa.push(b);return!0}function X(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 Bb(a,b){void 0!==b&&(xb(a,a.K),Ab(a,b)&&(a.K=b))}function xb(a,b){void 0!==a.K&&b==a.K&&X(a.pa,a.K,!0)&&(a.K=void 0);a.za=!1}
|
||||
function Ja(a,b,c,d){for(var e=!1,g=0;g<c.length;g++)if(c[g]==b){b!=a.K&&a.l("breakpoint hit: "+u(b)+" ("+d+")");e=!0;break}return e}
|
||||
function Cb(a,b,c){var d=q(b,4),e=a.S(b++),g=void 0===e?0:e,h=a.ga[g],l=[],k=void 0===h[1]?0:h[1];do{d+=" "+q(g,2);if(!k--)break;g=a.S(b++);if(void 0===g)break;l.push(g)}while(1);void 0===h[0]&&(h=[57,1,a.v],l.push(e));var d=(d+" ").substr(0,15),d=d+a.Fa[h[0]],m=null;if(void 0!==h[2]){k=h[2];m=a.la[k];if(1==h[1]&&k==a.ea)m=m.replace(/nnnn/,q(yb(b,g=l.pop()),4));else for(;l.length;)m=m.replace(/nn/,q(g=l.pop(),2));k==a.v&&1==h[1]&&32<=g&&128>g&&(m+=" ;'"+String.fromCharCode(g)+"'")}if(e==a.s.ab&&
|
||||
[43,1,this.b],[24,1,this.b],[],[25],[43,1,this.v],[33],[],[18,2,this.P],[43,2,this.P],[24,2,this.P],[],[5,1,this.ea],[43,1,this.I],[],[],[],[43,1,this.g],[24,1,this.g],[],[45],[43,2,this.A],[],[],[],[43,2,this.o],[24,2,this.o],[]]}p(zb,C);f=zb.prototype;
|
||||
f.T=function(a,b,c){var d=this;switch(b){case "debugInput":return this.R=this.H[b]=c,this.R.focus(),c.onkeypress=function(a,c){return function(d){13==d.keyCode&&(b=c.value,c.value="",Bb(a,b))}}(this,c),!0;case "debugEnter":return this.H[b]=c,na(c,function(){return d.R?(b=d.R.value,Bb(d,b),!0):!1}),!0;case "step":return this.H[b]=c,na(c,function(a){var b=!1;I(d,!0)||(J(d,!0),b=d.step(a?1:0),J(d,!1));return b}),!0}return!1};
|
||||
f.ca=function(a,b,c){this.a=a;this.M=b;this.sa=c-b+1;this.Ca=this.M+this.sa;this.X()};f.ia=function(a,b){a&&!this.C.N&&(this.C.N=!0,this.s=M(b,"cpu"))};f.da=function(){this.R.focus()};
|
||||
function Ab(a,b){a.O=0;a.v=1;a.o=2;a.A=3;a.Na=4;a.kb=5;a.g=6;a.V=7;a.D=8;a.I=9;a.P=10;a.b=11;a.ea=a.Na;var c="",d;if(b)for(a.la="A #$nn $nnnn,X $nnnn,Y $nnnn ($nnnn) $nn,X $nn,Y ($nn,X) ($nn),Y $nnnn $nn".split(" "),b=0;b<a.la.length;b++)d=a.la[b],c+="("+d.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.la="A nn [nnnn+X] [nnnn+Y] nnnn [nnnn] [nn+X] [nn+Y] [[nn+X]] [[nn]+Y] [nnnn] [nn]".split(" "),
|
||||
b=0;b<a.la.length;b++)d=a.la[b],c+="("+d.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.Le=new RegExp(c);a.Mb=[27,a.Oa,9,7,11,12,3,4,8,5]}f.aa=function(){this.s.aa()};function T(a,b,c,d,e,g,h){(a.ma&e)==e&&(e=a.s.S(c),a.message(b.id+"."+(g?"setByte":"getByte")+"("+v(c)+")"+(void 0!==d?" @"+v(d):"")+": "+(h?h+"=":"")+u(e)))}f.message=function(a){this.l(a);Ra(this.s)};f.Ob=function(){this.l("Type ? for list of debugger commands\n")};
|
||||
f.ua=function(){if(!Cb(this))return!1;this.s.ua();return!0};f.step=function(a){if(!Cb(this))return!1;var b;try{b=this.s.step(a)}catch(c){b=void 0,Ca(this.s,c.stack||c.message)}void 0!==b&&this.L++;this.s.update(!0);this.update(!0);return b};f.update=function(a){this.ta=this.s.f;a||this.za?Db(this):Eb(this)};function Cb(a){a.s&&H(a.s)&&!I(a.s)?(a=a.s,a.C.error?(a.l(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}
|
||||
f.reset=function(){var a;this.wa.length||(this.wa=Array(1E3));for(a=0;a<this.wa.length;a++)this.wa[a]=-1;this.B.length||(this.B=Array(256));for(a=0;a<this.B.length;a++)this.B[a]=[a,0];this.L&&this.update();this.L=0};f.start=function(){this.za||this.l("running")};f.stop=function(a,b){if(!this.za&&(this.l("stopped"),b)){var c=la();this.l(c-a+"ms ("+b+" cycles)")}this.update();this.da();this.za||(this.L=0);Fb(this,this.s.f)};function Gb(a,b){return a+(b<<24>>24)}
|
||||
f.S=function(a){var b;a>=this.M&&a<this.Ca&&(Ka(this.s,a),b=this.a[this.M+a],b&=255);return b};function Hb(a,b,c){b<a.M||b>=a.Ca?a.l("invalid address: "+v(b)):(a.a[a.M+b]=c&255,La(a.s,b),a.s.update())}function Ib(a,b){X(a.pa,b,void 0)||a.pa.push(b);return!0}function X(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&&(Fb(a,a.K),Ib(a,b)&&(a.K=b))}function Fb(a,b){void 0!==a.K&&b==a.K&&X(a.pa,a.K,!0)&&(a.K=void 0);a.za=!1}
|
||||
function Qa(a,b,c,d){for(var e=!1,g=0;g<c.length;g++)if(c[g]==b){b!=a.K&&a.l("breakpoint hit: "+v(b)+" ("+d+")");e=!0;break}return e}
|
||||
function Kb(a,b,c){var d=t(b,4),e=a.S(b++),g=void 0===e?0:e,h=a.ga[g],l=[],k=void 0===h[1]?0:h[1];do{d+=" "+t(g,2);if(!k--)break;g=a.S(b++);if(void 0===g)break;l.push(g)}while(1);void 0===h[0]&&(h=[57,1,a.v],l.push(e));var d=(d+" ").substr(0,15),d=d+a.Fa[h[0]],m=null;if(void 0!==h[2]){k=h[2];m=a.la[k];if(1==h[1]&&k==a.ea)m=m.replace(/nnnn/,t(Gb(b,g=l.pop()),4));else for(;l.length;)m=m.replace(/nn/,t(g=l.pop(),2));k==a.v&&1==h[1]&&32<=g&&128>g&&(m+=" ;'"+String.fromCharCode(g)+"'")}if(e==a.s.ab&&
|
||||
(g<a.W.length&&(m=a.W[g]),g==a.s.Me)){k=0;for(m='"';g=a.S(b++);)16>k?m+=String.fromCharCode(g):16==k&&(m+="\u2026"),k++;m+='"'}m&&(d+=" "+m);c&&(d=(d+" ").substr(0,30),d+=";"+c.toString());a.$=b;return d}
|
||||
function Y(a,b){var c=a.ta;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.l("invalid base-"+d+" address: "+b),c=void 0)}void 0!==c&&(c<a.M||c>=a.Ca)&&(a.l("address out of range: "+q(c)),c=void 0);return c}
|
||||
function Db(a,b){if("?"==b)a.l("\nfrequency commands:"),a.l("clear\tclear all frequency counts");else{var c=0;if(a.B)if("clear"==b){for(b=0;b<a.B.length;b++)a.B[b]=[b,0];a.l("frequency data cleared");c++}else if(void 0!==b)a.l("unknown frequency command: "+b),c++;else{var d=a.B.slice();d.sort(function(a,b){return b[1]-a[1]});for(b=0;b<d.length;b++){var e=d[b][0],g=d[b][1];g&&(a.l(a.Fa[a.ga[e][0]]+" ("+t(e)+"): "+g+" times"),c++)}}c||a.l("no frequency data available")}}
|
||||
function vb(a,b,c,d){var e=Y(a,b);if(void 0!==e){void 0===d&&(d=1);b=a.Ca;if(void 0!==c){b=Y(a,c);if(void 0===b||b<e)return;if(256<b-e){a.l("range too large");return}b++;d=-1}for(e!=a.ta&&a.l();d--&&e<b;)c=Cb(a,e,H(a,!1)||a.za?a.L:0),a.l(c),a.ta=e=a.$}}
|
||||
function wb(a,b){if(b&&"?"==b[1])a.l("\nregister commands:"),a.l("r to display all"),a.l("r [target=value] to modify"),a.l("supported targets:"),a.l("A,X,Y,S,PC and flags C,Z,D,V,N");else{var c=!0;if(b&&1<b.length){var c=!1,d=b[1],e=d.indexOf("=");if(0<e)b=d.substr(e+1),d=d.substr(0,e);else if(2<b.length)b=b[2];else{a.l("missing value for "+b[1]);return}e=parseInt(b,16);if(isNaN(e)){a.l("invalid value: "+b);return}switch(d.toUpperCase()){case "A":a.s.h=e&255;break;case "X":a.s.w=e&255;break;case "Y":a.s.F=
|
||||
e&255;break;case "C":a.s.c=e?256:0;break;case "Z":a.s.j=e?0:1;break;case "D":e?Ma(a.s):Na(a.s);break;case "V":e?(d=a.s,d.v=0,d.A=128):(d=a.s,d.v=0,d.A=0);break;case "N":a.s.i=e?128:0;break;case "S":if(256!=(e&-256)){a.l("invalid stack pointer: "+b);return}a.s.G=e;break;case "PC":c=!0;a.s.f=e&65535;a.ta=a.s.f;break;default:a.l("unknown register: "+d);return}a.s.update()}a.l("A="+q(a.s.h,2)+" X="+q(a.s.w,2)+" Y="+q(a.s.F,2)+" P="+q(Ha(a.s),2)+" S="+q(a.s.G,4)+" PC="+q(a.s.f,4));c&&vb(a,q(a.ta=a.s.f,
|
||||
4))}}function Eb(a,b){b=void 0===b?1:parseInt(b,10);var c=1==b?0:1;fa(b,function(a){return function(){return I(a,!0)&&a.step(c)}}(a),function(a){return function(){I(a,!1)}}(a))}
|
||||
function tb(a,b){b.length||(a.Ta?(a.l("ended assemble @"+q(a.ha,4)),a.ta=a.ha,a.Ta=!1):a.hb&&(b=a.hb));if(G(a)&&!H(a,!0)&&0<b.length){a.Ta?b="a "+q(a.ha,4)+" "+b:1<b.length&&1!=b.indexOf(" ")&&(b=b.charAt(0).toLowerCase()+" "+b.substr(1));var c=b.split(" ");a.hb=c[0];switch(c[0].toLowerCase()){case "a":var d=Y(a,c[1]);if(void 0!==d)if(a.ha=d,void 0===c[2])a.l("begin assemble @"+u(a.ha)),a.Ta=!0,a.s.update();else{var e;b=c[2];var g=c[3],c=a.ha,d=[];if(void 0!==b){var h;b=b.toUpperCase();"?"==b.charAt(b.length-
|
||||
1)&&(g="?",b=b.substr(0,b.length-1));for(h=0;h<a.Fa.length&&b!=a.Fa[h];h++);h==a.Fa.length&&(a.l("unknown operation: "+b),h=-1);var l="",k;if(0<=h&&void 0!==g)if(l=g.toUpperCase(),"?"==l){for(g=k=0;g<a.ga.length;g++)a.ga[g][0]===h&&(k||a.l("supported opcodes:"),a.l(" "+q(g,2)+": "+b+(void 0!==a.ga[g][2]?" "+a.la[a.ga[g][2]]:"")),k++);h=-1}else if((k=l.match(a.Le))&&k[0]==l){for(g=1;g<k.length;g++)if(k[g]==l)if(void 0===e)e=g-1;else{a.l("too many operand matches (both "+a.la[e]+" and "+a.la[g-
|
||||
1]+")");h=-1;break}e==a.Na&&0>a.Mb.indexOf(h)&&(e=a.P);e==a.kb&&27!=h&&(e=a.P)}else a.l("unknown operand: "+l),h=-1;if(0<=h){k=-1;for(g=0;g<a.ga.length;g++)if(a.ga[g][0]===h&&a.ga[g][2]===e)if(0>k)k=g;else{a.l("too many instruction matches (both "+t(k)+" and "+t(g)+")");k=-2;break}if(0<=k){if(d.push(k),void 0!==e)if(b=a.ga[k][1],l=l.match(/[0-9A-F]+/))for(l=parseInt(l[0],16),1==b&&e==a.ea&&(l-=c+2,-128>l||127<l)&&(a.l("branch out of range ("+l+")"),d=[],b=0),g=0;g<b;g++)d.push(l&255),l>>>=8;else b&&
|
||||
a.l("instruction missing "+b+" bytes")}else a.l("unknown instruction: "+b+" "+l+"")}}e=d;if(e.length){for(c=0;c<e.length;c++)zb(a,a.ha+c,e[c]);a.l(Cb(a,a.ha));a.ha+=e.length}}break;case "b":e=c[1];c=c[2];if(void 0===e||"?"==e)a.l("\nbreakpoint commands:"),a.l("bp [a]\tset exec breakpoint at [a]"),a.l("br [a]\tset read breakpoint at [a]"),a.l("bw [a]\tset write breakpoint at [a]"),a.l("bc [a]\tclear breakpoint at [a]"),a.l("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.pa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+u(d[c])+" (exec)"),e++;d=a.va;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+u(d[c])+" (read)"),e++;d=a.xa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+u(d[c])+" (write)"),e++;e||a.l("no breakpoints")}else void 0===c?a.l("missing breakpoint address"):"c"==e&&"*"==c?(a.pa=[],a.va=[],a.xa=[],a.l("all breakpoints cleared")):(c=Y(a,c),void 0!==c&&("p"==e?Ab(a,c)?a.l("breakpoint enabled: "+u(c)+" (exec)"):a.l("breakpoint not set: "+
|
||||
u(c)):"c"==e?X(a.pa,c,!0)?a.l("breakpoint cleared: "+u(c)+" (exec)"):X(a.va,c,!0)?a.l("breakpoint cleared: "+u(c)+" (read)"):X(a.xa,c,!0)?a.l("breakpoint cleared: "+u(c)+" (write)"):a.l("breakpoint missing: "+u(c)):"r"==e?(X(a.va,c,void 0)||a.va.push(c),a.l("breakpoint enabled: "+u(c)+" (read)")):"w"==e?(X(a.xa,c,void 0)||a.xa.push(c),a.l("breakpoint enabled: "+u(c)+" (write)")):a.l("unknown breakpoint command: "+e)));break;case "d":e=c[1];d=c[2];if("?"==e)a.l("\ndump commands:"),a.l("d [a] [#] dump # lines of memory");
|
||||
else if(e=Y(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=b="";g=e;for(h=0;8>h&&e<a.Ca;h++)k=a.S(e),void 0===k&&(k=0),b+=q(k,2)+" ",l+=32<=k&&128>k?String.fromCharCode(k):".",e++;a.l(q(g,4)+" "+b+l)}a.ta=e}break;case "e":e=c[1];if(void 0===e)a.l("missing address");else if(e=Y(a,e),void 0!==e)for(d=2;d<c.length;d++)b=parseInt(c[d],16),zb(a,e++,b);break;case "f":Db(a,c[1]);break;case "g":e=c[1];void 0!==e&&Bb(a,Y(a,e));a.ua()||a.s.da();
|
||||
break;case "h":a.aa();break;case "o":if(void 0===c[1]||"?"==c[1])a.l("\noption commands:"),a.l("max\trun at maximum speed"),a.l("fast\trun faster (up to "+a.s.Ea+"Mhz)"),a.l("slow\trun at normal speed (1Mhz)"),a.l("classic\tuse classic operand syntax"),a.l("modern\tuse modern operand syntax"),a.l("msg\tenable message categories");else switch(e=c[1],e){case "slow":M(a.s,a.s.Pa);break;case "fast":M(a.s,a.s.Ne);break;case "max":M(a.s,a.s.Oe);break;case "classic":sb(a,!0);a.l("classic syntax enabled");
|
||||
break;case "modern":sb(a,!1);a.l("modern syntax enabled");break;case "msg":e=0;void 0!==c[2]&&("all"==c[2]?e=255:void 0!==a.Qa[c[2]]&&(e=a.Qa[c[2]]),e&&("on"==c[3]?a.ma|=e:"off"==c[3]&&(a.ma&=~e)));for(d in a.Qa)if(void 0===c[2]||"all"==c[2]||c[2]==d)e=a.Qa[d],a.l(d+" messages: "+(a.ma&e?"on":"off"));break;default:a.l("unknown option: "+e)}break;case "p":l=c[1];e=10;c=a.Ja;if(d=a.wa){b=void 0===l?a.Pb:parseInt(l,10);void 0===b&&(b=10);b>d.length&&(a.l("note: only "+d.length+" available"),b=d.length);
|
||||
void 0!==l&&(a.gb=0,a.l(b+" instructions earlier:"));l=a.gb?a.gb:1;c-=b;for(0>c&&(c=d.length-1);e&&c!=a.Ja;){g=d[c];if(0>g)break;a.l(Cb(a,g,l++));++c==d.length&&(c=0);e--;b--}a.Pb=b;a.gb=l}10==e&&a.l("no history available");break;case "r":wb(a,c);break;case "s":a.S(a.s.f)==a.s.Oa?(Bb(a,a.s.f+3),a.za=!0,a.ua()||a.s.da()):Eb(a);break;case "t":Eb(a,c[1]);break;case "u":vb(a,c[1],c[2],8);break;case "?":case "help":a.l("\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.l("note: frequency and history commands operate only when breakpoints are set");break;default:a.l("unknown command: "+b)}}}x(function(){for(var a=F(document,"c1pjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new rb(d);E(d,c)}});function Z(a,b){B.call(this,"C1PComputer",a);this.Y=b}p(Z,B);Z.prototype.reset=function(a){var b=null,c;for(c in this.Y)for(var d=0;d<this.Y[c].length;d++){var e=this.Y[c][d];e&&e.reset&&(e.reset(),"cpu"==c&&(b=e))}b&&(b.update(),a&&b.ua())};
|
||||
Z.prototype.start=function(){for(var a in this.Y)if("cpu"!=a)for(var b=0;b<this.Y[a].length;b++){var c=this.Y[a][b];c&&c.start&&c.start()}};Z.prototype.stop=function(a,b){for(var c in this.Y)if("cpu"!=c)for(var d=0;d<this.Y[c].length;d++){var e=this.Y[c][d];e&&e.stop&&e.stop(a,b)}};Z.prototype.T=function(a,b,c){switch(b){case "reset":return this.H[b]=c,c.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function L(a,b){return a.Y[b]?a.Y[b][0]:null}
|
||||
function Fb(a){var b=null,c;for(c in a.Y)for(var d=0;d<a.Y[c].length;d++){var e=a.Y[c][d];if(e){if(!G(e)){G(e,function(a){return function(){Fb(a)}}(a));return}"cpu"==c?b=e:e.ia&&e.ia(!0,a)}}a.X();a.l("C1Pjs v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>");b&&b.ia(!0,a)}
|
||||
x(function(){for(var a=F(document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=D(c),e,g={},h,l=0,k=0,m=0;m<d.modules.length;m++){var n=d.modules[m];if(!m){if("cpu"!=n.type)break;l=n.start;k=n.end;h=Array(k+1-l);for(e=l;e<h.length;e++)h[e]=0}if(e=oa(n.refID,d.id)){var r=n.type;void 0===g[r]&&(g[r]=[]);g[r].push(e);e.ca&&void 0!==n.start&&e.ca(h,n.start,n.end,g.cpu[0])}else{z('no component for <module refid="'+n.refID+'">');return}}if(!h){z('<module type="cpu"> definition must appear first in the <computer> specification');
|
||||
break}if(e=oa("debugger",d.id))g["debugger"]=[e],e.ca&&e.ca(h,l,k,g.cpu[0]);l=new Z(d,g);if(k=oa("panel",d.id))if(g.panel=[k],k.Sa){e=d.id;d=void 0;g=[];e&&(e=0<(d=e.indexOf("."))?e.substr(0,d+1):"");for(d=0;d<C.length;d++)m=C[d],e&&m.id.indexOf(e)||g.push(m);d=g;for(g=0;g<d.length;g++)e=d[g],e!=k&&(e.Wa=k.Wa,e.l=k.l,e.Sa=k.Sa)}E(l,c);Fb(l)}});var Gb=0;function Hb(a,b,c,d,e,g){e("Loading "+a+"...");v(a,function(h,l,k){k?(l||(l="unable to load "+a+" ("+k+")"),g(l,null)):Jb(l,a,b,c,d,e,g)})}
|
||||
function Jb(a,b,c,d,e,g,h){function l(a,g){if(g)h(g,null);else{c&&(K[c]&&b&&(K[c][b]=a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,
|
||||
"$1C1Pjs$2"),a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1c1pjs$2"));g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){g=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Kb(a,g,l):l(a,null):h("no data"+(b?" for file: "+
|
||||
function Y(a,b){var c=a.ta;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.l("invalid base-"+d+" address: "+b),c=void 0)}void 0!==c&&(c<a.M||c>=a.Ca)&&(a.l("address out of range: "+t(c)),c=void 0);return c}
|
||||
function Lb(a,b){if("?"==b)a.l("\nfrequency commands:"),a.l("clear\tclear all frequency counts");else{var c=0;if(a.B)if("clear"==b){for(b=0;b<a.B.length;b++)a.B[b]=[b,0];a.l("frequency data cleared");c++}else if(void 0!==b)a.l("unknown frequency command: "+b),c++;else{var d=a.B.slice();d.sort(function(a,b){return b[1]-a[1]});for(b=0;b<d.length;b++){var e=d[b][0],g=d[b][1];g&&(a.l(a.Fa[a.ga[e][0]]+" ("+u(e)+"): "+g+" times"),c++)}}c||a.l("no frequency data available")}}
|
||||
function Db(a,b,c,d){var e=Y(a,b);if(void 0!==e){void 0===d&&(d=1);b=a.Ca;if(void 0!==c){b=Y(a,c);if(void 0===b||b<e)return;if(256<b-e){a.l("range too large");return}b++;d=-1}for(e!=a.ta&&a.l();d--&&e<b;)c=Kb(a,e,I(a,!1)||a.za?a.L:0),a.l(c),a.ta=e=a.$}}
|
||||
function Eb(a,b){if(b&&"?"==b[1])a.l("\nregister commands:"),a.l("r to display all"),a.l("r [target=value] to modify"),a.l("supported targets:"),a.l("A,X,Y,S,PC and flags C,Z,D,V,N");else{var c=!0;if(b&&1<b.length){var c=!1,d=b[1],e=d.indexOf("=");if(0<e)b=d.substr(e+1),d=d.substr(0,e);else if(2<b.length)b=b[2];else{a.l("missing value for "+b[1]);return}e=parseInt(b,16);if(isNaN(e)){a.l("invalid value: "+b);return}switch(d.toUpperCase()){case "A":a.s.h=e&255;break;case "X":a.s.w=e&255;break;case "Y":a.s.F=
|
||||
e&255;break;case "C":a.s.c=e?256:0;break;case "Z":a.s.j=e?0:1;break;case "D":e?Ta(a.s):Ua(a.s);break;case "V":e?(d=a.s,d.v=0,d.A=128):(d=a.s,d.v=0,d.A=0);break;case "N":a.s.i=e?128:0;break;case "S":if(256!=(e&-256)){a.l("invalid stack pointer: "+b);return}a.s.G=e;break;case "PC":c=!0;a.s.f=e&65535;a.ta=a.s.f;break;default:a.l("unknown register: "+d);return}a.s.update()}a.l("A="+t(a.s.h,2)+" X="+t(a.s.w,2)+" Y="+t(a.s.F,2)+" P="+t(Oa(a.s),2)+" S="+t(a.s.G,4)+" PC="+t(a.s.f,4));c&&Db(a,t(a.ta=a.s.f,
|
||||
4))}}function Mb(a,b){b=void 0===b?1:parseInt(b,10);var c=1==b?0:1;ma(b,function(a){return function(){return J(a,!0)&&a.step(c)}}(a),function(a){return function(){J(a,!1)}}(a))}
|
||||
function Bb(a,b){b.length||(a.Ta?(a.l("ended assemble @"+t(a.ha,4)),a.ta=a.ha,a.Ta=!1):a.hb&&(b=a.hb));if(H(a)&&!I(a,!0)&&0<b.length){a.Ta?b="a "+t(a.ha,4)+" "+b:1<b.length&&1!=b.indexOf(" ")&&(b=b.charAt(0).toLowerCase()+" "+b.substr(1));var c=b.split(" ");a.hb=c[0];switch(c[0].toLowerCase()){case "a":var d=Y(a,c[1]);if(void 0!==d)if(a.ha=d,void 0===c[2])a.l("begin assemble @"+v(a.ha)),a.Ta=!0,a.s.update();else{var e;b=c[2];var g=c[3],c=a.ha,d=[];if(void 0!==b){var h;b=b.toUpperCase();"?"==b.charAt(b.length-
|
||||
1)&&(g="?",b=b.substr(0,b.length-1));for(h=0;h<a.Fa.length&&b!=a.Fa[h];h++);h==a.Fa.length&&(a.l("unknown operation: "+b),h=-1);var l="",k;if(0<=h&&void 0!==g)if(l=g.toUpperCase(),"?"==l){for(g=k=0;g<a.ga.length;g++)a.ga[g][0]===h&&(k||a.l("supported opcodes:"),a.l(" "+t(g,2)+": "+b+(void 0!==a.ga[g][2]?" "+a.la[a.ga[g][2]]:"")),k++);h=-1}else if((k=l.match(a.Le))&&k[0]==l){for(g=1;g<k.length;g++)if(k[g]==l)if(void 0===e)e=g-1;else{a.l("too many operand matches (both "+a.la[e]+" and "+a.la[g-
|
||||
1]+")");h=-1;break}e==a.Na&&0>a.Mb.indexOf(h)&&(e=a.P);e==a.kb&&27!=h&&(e=a.P)}else a.l("unknown operand: "+l),h=-1;if(0<=h){k=-1;for(g=0;g<a.ga.length;g++)if(a.ga[g][0]===h&&a.ga[g][2]===e)if(0>k)k=g;else{a.l("too many instruction matches (both "+u(k)+" and "+u(g)+")");k=-2;break}if(0<=k){if(d.push(k),void 0!==e)if(b=a.ga[k][1],l=l.match(/[0-9A-F]+/))for(l=parseInt(l[0],16),1==b&&e==a.ea&&(l-=c+2,-128>l||127<l)&&(a.l("branch out of range ("+l+")"),d=[],b=0),g=0;g<b;g++)d.push(l&255),l>>>=8;else b&&
|
||||
a.l("instruction missing "+b+" bytes")}else a.l("unknown instruction: "+b+" "+l+"")}}e=d;if(e.length){for(c=0;c<e.length;c++)Hb(a,a.ha+c,e[c]);a.l(Kb(a,a.ha));a.ha+=e.length}}break;case "b":e=c[1];c=c[2];if(void 0===e||"?"==e)a.l("\nbreakpoint commands:"),a.l("bp [a]\tset exec breakpoint at [a]"),a.l("br [a]\tset read breakpoint at [a]"),a.l("bw [a]\tset write breakpoint at [a]"),a.l("bc [a]\tclear breakpoint at [a]"),a.l("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.pa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+v(d[c])+" (exec)"),e++;d=a.va;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+v(d[c])+" (read)"),e++;d=a.xa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+v(d[c])+" (write)"),e++;e||a.l("no breakpoints")}else void 0===c?a.l("missing breakpoint address"):"c"==e&&"*"==c?(a.pa=[],a.va=[],a.xa=[],a.l("all breakpoints cleared")):(c=Y(a,c),void 0!==c&&("p"==e?Ib(a,c)?a.l("breakpoint enabled: "+v(c)+" (exec)"):a.l("breakpoint not set: "+
|
||||
v(c)):"c"==e?X(a.pa,c,!0)?a.l("breakpoint cleared: "+v(c)+" (exec)"):X(a.va,c,!0)?a.l("breakpoint cleared: "+v(c)+" (read)"):X(a.xa,c,!0)?a.l("breakpoint cleared: "+v(c)+" (write)"):a.l("breakpoint missing: "+v(c)):"r"==e?(X(a.va,c,void 0)||a.va.push(c),a.l("breakpoint enabled: "+v(c)+" (read)")):"w"==e?(X(a.xa,c,void 0)||a.xa.push(c),a.l("breakpoint enabled: "+v(c)+" (write)")):a.l("unknown breakpoint command: "+e)));break;case "d":e=c[1];d=c[2];if("?"==e)a.l("\ndump commands:"),a.l("d [a] [#] dump # lines of memory");
|
||||
else if(e=Y(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=b="";g=e;for(h=0;8>h&&e<a.Ca;h++)k=a.S(e),void 0===k&&(k=0),b+=t(k,2)+" ",l+=32<=k&&128>k?String.fromCharCode(k):".",e++;a.l(t(g,4)+" "+b+l)}a.ta=e}break;case "e":e=c[1];if(void 0===e)a.l("missing address");else if(e=Y(a,e),void 0!==e)for(d=2;d<c.length;d++)b=parseInt(c[d],16),Hb(a,e++,b);break;case "f":Lb(a,c[1]);break;case "g":e=c[1];void 0!==e&&Jb(a,Y(a,e));a.ua()||a.s.da();
|
||||
break;case "h":a.aa();break;case "o":if(void 0===c[1]||"?"==c[1])a.l("\noption commands:"),a.l("max\trun at maximum speed"),a.l("fast\trun faster (up to "+a.s.Ea+"Mhz)"),a.l("slow\trun at normal speed (1Mhz)"),a.l("classic\tuse classic operand syntax"),a.l("modern\tuse modern operand syntax"),a.l("msg\tenable message categories");else switch(e=c[1],e){case "slow":N(a.s,a.s.Pa);break;case "fast":N(a.s,a.s.Ne);break;case "max":N(a.s,a.s.Oe);break;case "classic":Ab(a,!0);a.l("classic syntax enabled");
|
||||
break;case "modern":Ab(a,!1);a.l("modern syntax enabled");break;case "msg":e=0;void 0!==c[2]&&("all"==c[2]?e=255:void 0!==a.Qa[c[2]]&&(e=a.Qa[c[2]]),e&&("on"==c[3]?a.ma|=e:"off"==c[3]&&(a.ma&=~e)));for(d in a.Qa)if(void 0===c[2]||"all"==c[2]||c[2]==d)e=a.Qa[d],a.l(d+" messages: "+(a.ma&e?"on":"off"));break;default:a.l("unknown option: "+e)}break;case "p":l=c[1];e=10;c=a.Ja;if(d=a.wa){b=void 0===l?a.Pb:parseInt(l,10);void 0===b&&(b=10);b>d.length&&(a.l("note: only "+d.length+" available"),b=d.length);
|
||||
void 0!==l&&(a.gb=0,a.l(b+" instructions earlier:"));l=a.gb?a.gb:1;c-=b;for(0>c&&(c=d.length-1);e&&c!=a.Ja;){g=d[c];if(0>g)break;a.l(Kb(a,g,l++));++c==d.length&&(c=0);e--;b--}a.Pb=b;a.gb=l}10==e&&a.l("no history available");break;case "r":Eb(a,c);break;case "s":a.S(a.s.f)==a.s.Oa?(Jb(a,a.s.f+3),a.za=!0,a.ua()||a.s.da()):Mb(a);break;case "t":Mb(a,c[1]);break;case "u":Db(a,c[1],c[2],8);break;case "?":case "help":a.l("\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.l("note: frequency and history commands operate only when breakpoints are set");break;default:a.l("unknown command: "+b)}}}y(function(){for(var a=G(document,"c1pjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new zb(d);F(d,c)}});function Z(a,b){C.call(this,"C1PComputer",a);this.Y=b}p(Z,C);Z.prototype.reset=function(a){var b=null,c;for(c in this.Y)for(var d=0;d<this.Y[c].length;d++){var e=this.Y[c][d];e&&e.reset&&(e.reset(),"cpu"==c&&(b=e))}b&&(b.update(),a&&b.ua())};
|
||||
Z.prototype.start=function(){for(var a in this.Y)if("cpu"!=a)for(var b=0;b<this.Y[a].length;b++){var c=this.Y[a][b];c&&c.start&&c.start()}};Z.prototype.stop=function(a,b){for(var c in this.Y)if("cpu"!=c)for(var d=0;d<this.Y[c].length;d++){var e=this.Y[c][d];e&&e.stop&&e.stop(a,b)}};Z.prototype.T=function(a,b,c){switch(b){case "reset":return this.H[b]=c,c.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function M(a,b){return a.Y[b]?a.Y[b][0]:null}
|
||||
function Nb(a){var b=null,c;for(c in a.Y)for(var d=0;d<a.Y[c].length;d++){var e=a.Y[c][d];if(e){if(!H(e)){H(e,function(a){return function(){Nb(a)}}(a));return}"cpu"==c?b=e:e.ia&&e.ia(!0,a)}}a.X();a.l("C1Pjs v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>");b&&b.ia(!0,a)}
|
||||
y(function(){for(var a=G(document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=E(c),e,g={},h,l=0,k=0,m=0;m<d.modules.length;m++){var n=d.modules[m];if(!m){if("cpu"!=n.type)break;l=n.start;k=n.end;h=Array(k+1-l);for(e=l;e<h.length;e++)h[e]=0}if(e=va(n.refID,d.id)){var r=n.type;void 0===g[r]&&(g[r]=[]);g[r].push(e);e.ca&&void 0!==n.start&&e.ca(h,n.start,n.end,g.cpu[0])}else{A('no component for <module refid="'+n.refID+'">');return}}if(!h){A('<module type="cpu"> definition must appear first in the <computer> specification');
|
||||
break}if(e=va("debugger",d.id))g["debugger"]=[e],e.ca&&e.ca(h,l,k,g.cpu[0]);l=new Z(d,g);if(k=va("panel",d.id))if(g.panel=[k],k.Sa){e=d.id;d=void 0;g=[];e&&(e=0<(d=e.indexOf("."))?e.substr(0,d+1):"");for(d=0;d<D.length;d++)m=D[d],e&&m.id.indexOf(e)||g.push(m);d=g;for(g=0;g<d.length;g++)e=d[g],e!=k&&(e.Wa=k.Wa,e.l=k.l,e.Sa=k.Sa)}F(l,c);Nb(l)}});var Ob=0;function Pb(a,b,c,d,e,g){e("Loading "+a+"...");w(a,function(h,l,k){k?(l||(l="unable to load "+a+" ("+k+")"),g(l,null)):Rb(l,a,b,c,d,e,g)})}
|
||||
function Rb(a,b,c,d,e,g,h){function l(a,g){if(g)h(g,null);else{c&&(L[c]&&b&&(L[c][b]=a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,
|
||||
"$1C1Pjs$2"),a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1c1pjs$2"));g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){g=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Sb(a,g,l):l(a,null):h("no data"+(b?" for file: "+
|
||||
b:""),null)}
|
||||
function Kb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");v(e,function(g,h,l){if(l||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(g=d[3])if(l=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=l[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);l[0]!=k&&(h=h.replace(l[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,"");
|
||||
a=a.replace(d[0],h);Kb(a,b,c)}})}else c(a,null)}
|
||||
function Lb(a,b,c){function d(a){if(void 0===h){var b=g&&F(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ca(a))}function e(a){d("Error: "+a);l&&(--Gb||A(!0));l=!1}var g,h,l=!0;Gb++;K[a]={};try{if(g=document.getElementById(a)){var k;if("object"==typeof resources&&(k=resources.css)){var m=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css";n.styleSheet?n.styleSheet.cssText=k:n.appendChild(document.createTextNode(k));m.appendChild(n)}c||(c=
|
||||
"/versions/c1pjs/1.34.0/components.xsl");k=function(h,k){k?Hb(c,null,null,!1,d,function(h,l){l?(K[a]&&c&&(K[a][c]=h),d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--Gb||A(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(h=new XSLTProcessor,h.importStylesheet(l),(l=h.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--Gb||A(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(h)}):e(h)};"<"!=b.charAt(0)?Hb(b,a,void 0,!0,d,k):Jb(b,null,a,void 0,!1,d,k)}else e("missing machine element: "+a)}catch(r){e(r.message)}return l}window.embedC1P=function(a,b,c){A(!1);return Lb(a,b,c)};window.findMachineComponent=function(a,b){return pa(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!ra[a]){for(var c=!0,d=ra,e=a,g=b.length,h=[],l=[],k="",m=null,n=0;n<g;n++){var r=b[n];if('"'==r||"'"==r)m&&r!=m?k+=r:(m?m=null:m=r,k&&(l.push(k),k=""));else{if(!m){if("\r"==r||"\n"==r)r=";";if(" "==r||"\t"==r||";"==r){k&&(l.push(k),k="");";"==r&&l.length&&(h.push(l),l=[]);continue}}k+=r}}k&&l.push(k);l.length&&h.push(l);d[e]=h;qa(a)||(c=!1)}return c};window.enableEvents=A;window.sendEvent=la;})();
|
||||
function Sb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");w(e,function(g,h,l){if(l||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(g=d[3])if(l=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=l[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);l[0]!=k&&(h=h.replace(l[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,"");
|
||||
a=a.replace(d[0],h);Sb(a,b,c)}})}else c(a,null)}
|
||||
function Tb(a,b,c){function d(a){if(void 0===h){var b=g&&G(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ja(a))}function e(a){d("Error: "+a);l&&(--Ob||B(!0));l=!1}var g,h,l=!0;Ob++;L[a]={};try{if(g=document.getElementById(a)){var k;if("object"==typeof resources&&(k=resources.css)){var m=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css";n.styleSheet?n.styleSheet.cssText=k:n.appendChild(document.createTextNode(k));m.appendChild(n)}c||(c=
|
||||
"/versions/c1pjs/1.34.0/components.xsl");k=function(h,k){k?Pb(c,null,null,!1,d,function(h,l){l?(L[a]&&c&&(L[a][c]=h),d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--Ob||B(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(h=new XSLTProcessor,h.importStylesheet(l),(l=h.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--Ob||B(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(h)}):e(h)};"<"!=b.charAt(0)?Pb(b,a,void 0,!0,d,k):Rb(b,null,a,void 0,!1,d,k)}else e("missing machine element: "+a)}catch(r){e(r.message)}return l}window.embedC1P=function(a,b,c){B(!1);return Tb(a,b,c)};window.findMachineComponent=function(a,b){return wa(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!ya[a]){for(var c=!0,d=ya,e=a,g=b.length,h=[],l=[],k="",m=null,n=0;n<g;n++){var r=b[n];if('"'==r||"'"==r)m&&r!=m?k+=r:(m?m=null:m=r,k&&(l.push(k),k=""));else{if(!m){if("\r"==r||"\n"==r)r=";";if(" "==r||"\t"==r||";"==r){k&&(l.push(k),k="");";"==r&&l.length&&(h.push(l),l=[]);continue}}k+=r}}k&&l.push(k);l.length&&h.push(l);d[e]=h;xa(a)||(c=!1)}return c};window.enableEvents=B;window.sendEvent=sa;})();
|
||||
|
|
|
|||
|
|
@ -19,42 +19,44 @@
|
|||
http://pcjs.org/modules/c1pjs/lib/debugger.js (C) Jeff Parsons 2012-2017
|
||||
http://pcjs.org/modules/c1pjs/lib/computer.js (C) Jeff Parsons 2012-2017
|
||||
*/
|
||||
var e;function q(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var f=Object.getOwnPropertyDescriptor(b,d);f&&Object.defineProperty(a,d,f)}else a[d]=b[d]}function r(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(0>a&&-1<a&&(a=-1);0<b--;){var f=a&15,f=f+(0<=f&&9>=f?48:55),d=String.fromCharCode(f)+d;a>>=4}return(c?"0x":"")+d}
|
||||
function aa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function ba(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ca(a){return a.replace(/[&<>"']/g,function(a){return da[a]})}var da={"&":"&","<":"<",">":">",'"':""","'":"'"},ea=Date.now||function(){return+new Date};
|
||||
function t(a,b){var c=!0,c=void 0===c?!1:c,d=0,f=null;if("object"==typeof resources&&(f=resources[a]))b&&b(a,f,d);else if(c&&"function"==typeof resources)resources(a,function(c,d){b&&b(a,c,d)});else{var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(d=g.status||-1),b&&b(a,f,d))});g.open("GET",
|
||||
a,c);g.send();c||(f=g.responseText,200!=g.status&&(d=g.status||-1),b&&b(a,f,d))}}function u(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)}return!1}function fa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function v(a){w.init.push(a)}
|
||||
function x(a){if(y)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){z(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function A(a){!y&&a?(y=!0,ga&&ha("init"),ia&&ha("show")):y=a}function ha(a){w[a]&&x(w[a])}var ja=null,w={init:[],show:[],exit:[]},ga=!1,ia=!1,y=!0;fa("onload",function(){ga=!0;x(w.init)});fa("onpageshow",function(){ia=!0;x(w.show)});fa(u("Opera")||u("iOS")?"onunload":"onbeforeunload",function(){x(w.exit)});
|
||||
function B(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.exports={};this.B=this.bindings={};a=this.id.indexOf(".");0>a?this.va=this.id:(this.Ba=this.id.substr(0,a),this.va=this.id.substr(a+1));this.u={ready:!1,ra:!1,wa:!1,I:!1,error:!1};this.ua=null;this.u.error=!1;this.G=this.J=this.sa=null;C.push(this)}function z(a){window&&window.alert(a)}
|
||||
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<C.length;c++)if(C[c].id===a)return C[c]}return null}function ka(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<C.length;d++)if(c)c==C[d]&&(c=null);else if(!(a!=C[d].type||b&&C[d].id.indexOf(b)))return C[d]}return null}function E(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){z(c.message+" ("+a+")")}return b}
|
||||
function F(a,b){b=G(b.parentNode,"c1pjs-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,f=0;f<d.length;f++){var g=d[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var l=h.split(" "),k=0;k<l.length;k++)switch(h=l[k],h){case "c1pjs-binding":(h=E(g))&&h.binding&&a.L(h.type,h.binding,g,h.value),k=l.length}}}}
|
||||
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}
|
||||
function la(a){for(var b=!0,c=H[a];c&&c.length;){var d=c.splice(0,1)[0],f=d[0],g=null;0<=ma.indexOf(f)&&(g=function(){return function(){la(a)}}());var h=na[f];if(h)if(!g)b=h(d[1],d[2],d[3]);else{if(!h(g,d[1],d[2],d[3]))break}else{var b=!1,l=ka(d[1],a);if(l)if(h=oa[f])b=h(l,d[2],d[3]);else{var k=l.exports;if(k&&(h=k[f]))if(b=!0,!g)b=h.call(l,d[2],d[3]);else if(!h.call(l,g,d[2],d[3]))break}}if(!b){z("Script error: "+f+(h?" failed":" unrecognized"));break}}c&&!c.length&&delete H[a];return b}e=B.prototype;
|
||||
var e;function q(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var f=Object.getOwnPropertyDescriptor(b,d);f&&Object.defineProperty(a,d,f)}else a[d]=b[d]}
|
||||
for(var aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},r="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,t=["Math","trunc"],ba=0;ba<t.length-1;ba++){var ca=t[ba];ca in r||(r[ca]={});r=r[ca]}
|
||||
var da=t[t.length-1],ea=r[da],fa=ea?ea:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b};fa!=ea&&null!=fa&&aa(r,da,{configurable:!0,writable:!0,value:fa});function u(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;c=c?"0x":"";var d="";if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(0>a&&-1<a&&(a=-1);0<b--;){var f=a%16,f=f+(0<=f&&9>=f?48:55),d=String.fromCharCode(f)+d;a=Math.trunc(a/16)}return(void 0===c?"":c)+d}
|
||||
function ga(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function ha(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ia(a){return a.replace(/[&<>"']/g,function(a){return ja[a]})}var ja={"&":"&","<":"<",">":">",'"':""","'":"'"},ka=Date.now||function(){return+new Date};
|
||||
function v(a,b){var c=!0,c=void 0===c?!1:c,d=0,f=null;if("object"==typeof resources&&(f=resources[a]))b&&b(a,f,d);else if(c&&"function"==typeof resources)resources(a,function(c,d){b&&b(a,c,d)});else{var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(d=g.status||-1),b&&b(a,f,d))});g.open("GET",
|
||||
a,c);g.send();c||(f=g.responseText,200!=g.status&&(d=g.status||-1),b&&b(a,f,d))}}function w(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)}return!1}function la(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function x(a){y.init.push(a)}
|
||||
function z(a){if(A)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){B(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function C(a){!A&&a?(A=!0,ma&&na("init"),oa&&na("show")):A=a}function na(a){y[a]&&z(y[a])}var pa=null,y={init:[],show:[],exit:[]},ma=!1,oa=!1,A=!0;la("onload",function(){ma=!0;z(y.init)});la("onpageshow",function(){oa=!0;z(y.show)});la(w("Opera")||w("iOS")?"onunload":"onbeforeunload",function(){z(y.exit)});
|
||||
function D(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.exports={};this.B=this.bindings={};a=this.id.indexOf(".");0>a?this.va=this.id:(this.Ba=this.id.substr(0,a),this.va=this.id.substr(a+1));this.u={ready:!1,ra:!1,wa:!1,I:!1,error:!1};this.ua=null;this.u.error=!1;this.G=this.J=this.sa=null;E.push(this)}function B(a){window&&window.alert(a)}
|
||||
function F(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<E.length;c++)if(E[c].id===a)return E[c]}return null}function qa(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<E.length;d++)if(c)c==E[d]&&(c=null);else if(!(a!=E[d].type||b&&E[d].id.indexOf(b)))return E[d]}return null}function G(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){B(c.message+" ("+a+")")}return b}
|
||||
function H(a,b){b=I(b.parentNode,"c1pjs-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,f=0;f<d.length;f++){var g=d[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var l=h.split(" "),k=0;k<l.length;k++)switch(h=l[k],h){case "c1pjs-binding":(h=G(g))&&h.binding&&a.L(h.type,h.binding,g,h.value),k=l.length}}}}
|
||||
function I(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}
|
||||
function ra(a){for(var b=!0,c=J[a];c&&c.length;){var d=c.splice(0,1)[0],f=d[0],g=null;0<=sa.indexOf(f)&&(g=function(){return function(){ra(a)}}());var h=ta[f];if(h)if(!g)b=h(d[1],d[2],d[3]);else{if(!h(g,d[1],d[2],d[3]))break}else{var b=!1,l=qa(d[1],a);if(l)if(h=ua[f])b=h(l,d[2],d[3]);else{var k=l.exports;if(k&&(h=k[f]))if(b=!0,!g)b=h.call(l,d[2],d[3]);else if(!h.call(l,g,d[2],d[3]))break}}if(!b){B("Script error: "+f+(h?" failed":" unrecognized"));break}}c&&!c.length&&delete J[a];return b}e=D.prototype;
|
||||
e.toString=function(){return this.name?this.name:this.id||this.type};
|
||||
e.L=function(a,b,c){switch(b){case "clear":return this.B[b]||(this.B[b]=c,c.onclick=function(a){return function(){a.B.print&&(a.B.print.value="")}}(this)),!0;case "print":return this.B[b]||(this.sa=this.B[b]=c,c.value="",this.F=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}}(c),this.ta=function(a){this.F(a,this.va)}),!0;default:return!1}};e.log=function(){};e.F=function(){};
|
||||
e.status=function(a){this.F(this.va+": "+a)};e.ta=function(a,b,c){c=c||this.type;b||z((c?c+": ":"")+a)};function pa(a,b){a.u.error=!0;a.ta(b)}function I(a,b){b&&(a.u.ready?b():a.ua=b);return a.u.ready}e.R=function(a){this.u.error||(this.u.ready=!1!==a,this.u.ready&&(a=this.ua,this.ua=null,a&&a()))};function qa(a,b){if(a.u.wa)return a.u.ra=!1,a.u.wa=!1;if(a.u.error)return a.F(a.toString()+" error"),!1;a.u.ra=b;return a.u.ra}
|
||||
e.status=function(a){this.F(this.va+": "+a)};e.ta=function(a,b,c){c=c||this.type;b||B((c?c+": ":"")+a)};function va(a,b){a.u.error=!0;a.ta(b)}function K(a,b){b&&(a.u.ready?b():a.ua=b);return a.u.ready}e.R=function(a){this.u.error||(this.u.ready=!1!==a,this.u.ready&&(a=this.ua,this.ua=null,a&&a()))};function wa(a,b){if(a.u.wa)return a.u.ra=!1,a.u.wa=!1;if(a.u.error)return a.F(a.toString()+" error"),!1;a.u.ra=b;return a.u.ra}
|
||||
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
||||
var J=window?window.PCjs.Machines:{},C=window?window.PCjs.Components:[],H=window?window.PCjs.Commands:{},ma=["hold","sleep","wait"],na={alert:function(a){z(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},oa={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
|
||||
var L=window?window.PCjs.Machines:{},E=window?window.PCjs.Components:[],J=window?window.PCjs.Commands:{},sa=["hold","sleep","wait"],ta={alert:function(a){B(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},ua={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
|
||||
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
|
||||
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return f.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),f=this;c.prototype=this.prototype;b.prototype=new c;return b});function K(a){B.call(this,"C1PPanel",a);this.u.I=!1}q(K,B);
|
||||
K.prototype.L=function(a,b,c,d){return this.J&&this.J.L(a,b,c,d)||this.G&&this.G.L(a,b,c,d)||this.b&&this.b.L(a,b,c,d)?!0:B.prototype.L.call(this,a,b,c,d)};K.prototype.$=function(a,b){a&&!this.u.I&&(this.u.I=!0,this.J=b,this.G=L(b,"cpu"),this.b=L(b,"keyboard"),ra())};function ra(){for(var a=!1,b=G(document,"c1pjs","panel"),c=0;c<b.length;c++){var d=b[c],f=E(d),g=D(f.id);g||(a=!0,g=new K(f));F(g,d);a&&g.R()}}v(ra);
|
||||
function sa(a){B.call(this,"C1PCPU",a);ta(this);this.u.I=!1;this.u.Z=!1;this.Aa=a.autoStart;this.K=this.ka=0;this.xa=30;this.oa=5;this.fa=8;this.za=["Slow","Fast","Max"];this.fb=["(1Mhz)","(up to "+this.fa+"Mhz)","(unlimited)"];this.S=[];this.M=[];this.la=65536;this.ma=0;this.da=65536;this.ea=0;this.v=[this.Lb,this.dd,this.Wd,this.l,this.l,this.fd,this.Bb,this.l,this.jd,this.cd,this.Ab,this.l,this.l,this.$c,this.yb,this.l,this.Kb,this.ed,this.l,this.l,this.l,this.gd,this.Cb,this.l,this.Ob,this.bd,
|
||||
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return f.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),f=this;c.prototype=this.prototype;b.prototype=new c;return b});function M(a){D.call(this,"C1PPanel",a);this.u.I=!1}q(M,D);
|
||||
M.prototype.L=function(a,b,c,d){return this.J&&this.J.L(a,b,c,d)||this.G&&this.G.L(a,b,c,d)||this.b&&this.b.L(a,b,c,d)?!0:D.prototype.L.call(this,a,b,c,d)};M.prototype.$=function(a,b){a&&!this.u.I&&(this.u.I=!0,this.J=b,this.G=N(b,"cpu"),this.b=N(b,"keyboard"),xa())};function xa(){for(var a=!1,b=I(document,"c1pjs","panel"),c=0;c<b.length;c++){var d=b[c],f=G(d),g=F(f.id);g||(a=!0,g=new M(f));H(g,d);a&&g.R()}}x(xa);
|
||||
function ya(a){D.call(this,"C1PCPU",a);za(this);this.u.I=!1;this.u.Z=!1;this.Aa=a.autoStart;this.K=this.ka=0;this.xa=30;this.oa=5;this.fa=8;this.za=["Slow","Fast","Max"];this.fb=["(1Mhz)","(up to "+this.fa+"Mhz)","(unlimited)"];this.S=[];this.M=[];this.la=65536;this.ma=0;this.da=65536;this.ea=0;this.v=[this.Lb,this.dd,this.Wd,this.l,this.l,this.fd,this.Bb,this.l,this.jd,this.cd,this.Ab,this.l,this.l,this.$c,this.yb,this.l,this.Kb,this.ed,this.l,this.l,this.l,this.gd,this.Cb,this.l,this.Ob,this.bd,
|
||||
this.l,this.l,this.l,this.ad,this.zb,this.l,this.Bc,this.ub,this.l,this.l,this.Hb,this.wb,this.pd,this.l,this.ld,this.tb,this.od,this.l,this.Gb,this.qb,this.md,this.l,this.Ib,this.vb,this.l,this.l,this.l,this.xb,this.qd,this.l,this.Gd,this.sb,this.l,this.l,this.l,this.rb,this.nd,this.l,this.wd,this.pc,this.l,this.l,this.l,this.rc,this.Xc,this.l,this.hd,this.oc,this.Wc,this.l,this.Ac,this.lc,this.Uc,this.l,this.Mb,this.qc,this.l,this.l,this.l,this.sc,this.Yc,this.l,this.Qb,this.nc,this.l,this.l,this.l,
|
||||
this.mc,this.Vc,this.l,this.xd,this.La,this.l,this.l,this.l,this.Na,this.ud,this.l,this.kd,this.Ka,this.td,this.l,this.zc,this.Ha,this.rd,this.l,this.Nb,this.Ma,this.l,this.l,this.l,this.Oa,this.vd,this.l,this.Id,this.Ja,this.l,this.l,this.l,this.Ia,this.sd,this.l,this.l,this.Md,this.l,this.l,this.Ud,this.Od,this.Rd,this.l,this.kc,this.l,this.$d,this.l,this.Td,this.Jd,this.Qd,this.l,this.Db,this.Nd,this.l,this.l,this.Vd,this.Pd,this.Sd,this.l,this.be,this.Ld,this.ae,this.l,this.l,this.Kd,this.l,this.l,
|
||||
this.Rc,this.Gc,this.Mc,this.l,this.Sc,this.Ic,this.Nc,this.l,this.Yd,this.Fc,this.Xd,this.l,this.Pc,this.Cc,this.Kc,this.l,this.Eb,this.Hc,this.l,this.l,this.Tc,this.Jc,this.Oc,this.l,this.Rb,this.Ec,this.Zd,this.l,this.Qc,this.Dc,this.Lc,this.l,this.dc,this.Wb,this.l,this.l,this.ec,this.Yb,this.hc,this.l,this.yc,this.Vb,this.jc,this.l,this.cc,this.Sb,this.fc,this.l,this.Jb,this.Xb,this.l,this.l,this.l,this.Zb,this.ic,this.l,this.Pb,this.Ub,this.l,this.l,this.l,this.Tb,this.gc,this.l,this.ac,this.Ta,
|
||||
this.l,this.l,this.bc,this.Va,this.vc,this.l,this.xc,this.Sa,this.Zc,this.l,this.$b,this.Pa,this.tc,this.l,this.Fb,this.Ua,this.l,this.l,this.l,this.Wa,this.wc,this.l,this.Hd,this.Ra,this.l,this.l,this.l,this.Qa,this.uc,this.l];this.eb=[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]}q(sa,B);e=sa.prototype;e.reset=function(a){this.u.Z&&M(this);ta(this);this.f=this.a[65532]|this.a[65533]<<8;this.u.error=!1;a&&(!0===this.Aa||null===this.Aa&&void 0===this.B.run)&&N(this)};
|
||||
e.L=function(a,b,c){a=!1;switch(b){case "run":this.B[b]=c;c.onclick=function(a){return function(){a.u.Z?M(a):N(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.B[b]=c;a=!0;break;case "setSpeed":this.B[b]=c,c.onclick=function(a){return function(){ua(a,2<=a.K?a.ka:a.K+1,!0)}}(this),a=!0}return a};e.Y=function(a,b){this.a=a;(this.Fa=b)?z("unsupported CPU address buffer offset ("+this.Fa+")"):this.R()};
|
||||
e.$=function(a,b){if(a&&!this.u.I){this.J=b;if(a=L(b,"video"))this.ya=function(a){return function(){va(a)}}(a),this.ca=function(a){return function(){a.ca()}}(a);this.u.I=!0;this.reset(!0);this.update()}};function wa(a,b,c,d,f){0>xa(a.S,b,c,d,f)&&(a.la>b&&(a.la=b),a.ma<c&&(a.ma=c),a.S.push([b,c,d,f]))}function O(a,b,c,d,f){0>xa(a.M,b,c,d,f)&&(a.da>b&&(a.da=b),a.ea<c&&(a.ea=c),a.M.push([b,c,d,f]))}
|
||||
function xa(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 ua(a,b,c){void 0!==b&&(a.K=b,a.B.setSpeed&&(a.B.setSpeed.innerHTML=a.za[2<=b?0:b+1]),a.F("running at "+a.za[b].toLowerCase()+" speed "+a.fb[b]),c&&a.ca());a.U=0;a.Ca=ea();ya(a)}e.ya=function(){};e.ca=function(){};function P(a,b,c,d){void 0!==a.B[b]&&(void 0===d&&(d=1),c="0000"+c.toString(16),a.B[b].innerHTML=c.slice(c.length-d).toUpperCase())}
|
||||
function za(a){P(a,"A",a.g,2);P(a,"X",a.m,2);P(a,"Y",a.o,2);var b=Aa(a);P(a,"C",b&1?1:0);P(a,"Z",b&2?1:0);P(a,"I",b&4?1:0);P(a,"D",b&8?1:0);P(a,"B",b&16?1:0);P(a,"V",b&64?1:0);P(a,"N",b&128?1:0);P(a,"S",a.s,4);P(a,"PC",a.f,4);a.B.speed&&a.N&&(a.B.speed.innerHTML=a.N.toFixed(1)+"Mhz")}
|
||||
function ya(a,b){var c=30;c<a.xa&&(c=a.xa);c<a.oa&&(c=a.oa);var d=1;b&&a.K>a.ka&&a.N&&(d=a.N);d>a.fa&&2>a.K&&(d=a.fa);a.gb=Math.round(1E3/30);a.ga=Math.floor(1E6/c*d);a.ja=Math.floor(1E6/30*d);a.Ea=Math.floor(1E6/a.xa*d);a.Da=Math.floor(1E6/a.oa*d);b||(a.T=a.ja,a.W=a.Ea,a.V=a.Da);a.na=0}function Ba(a){1E6<=a.na&&ya(a,!0);a.ba=0;a.hb=ea()}
|
||||
function Ca(a){var b=ea(),c=a.gb;a.ba&&(c=Math.round(c*a.ba/a.ja));c-=b-a.hb;if(b-=a.Ca)a.N=Math.round(a.U/(100*b))/10,864E5<=b&&ua(a);0>c?c=0:1==a.K?a.N<=a.fa&&(c=0):2==a.K&&(c=0);a.na+=a.ba;return c}
|
||||
function N(a){if(qa(a,!0)){a.u.Z||(ua(a),a.J&&a.J.start(),a.u.Z=!0,a.B.run&&(a.B.run.innerHTML="Halt"),a.ca());Ba(a);try{do{a.step(a.ga);var b=a.O-a.H;a.U+=b;a.ba+=b;a.O=a.H=0;a.W-=a.ga;0>=a.W&&(a.W+=a.Ea,a.ya());a.V-=a.ga;0>=a.V&&(a.V+=a.Da,za(a));a.T-=a.ga;if(0>=a.T){a.T+=a.ja;break}}while(a.u.Z)}catch(c){M(a);a.update();qa(a,!1);pa(a,c.stack||c.message);return}setTimeout(function(a){return function(){N(a)}}(a),Ca(a))}else a.update(),a.J&&a.J.stop(a.Ca,a.U)}
|
||||
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]}q(ya,D);e=ya.prototype;e.reset=function(a){this.u.Z&&O(this);za(this);this.f=this.a[65532]|this.a[65533]<<8;this.u.error=!1;a&&(!0===this.Aa||null===this.Aa&&void 0===this.B.run)&&P(this)};
|
||||
e.L=function(a,b,c){a=!1;switch(b){case "run":this.B[b]=c;c.onclick=function(a){return function(){a.u.Z?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.B[b]=c;a=!0;break;case "setSpeed":this.B[b]=c,c.onclick=function(a){return function(){Aa(a,2<=a.K?a.ka:a.K+1,!0)}}(this),a=!0}return a};e.Y=function(a,b){this.a=a;(this.Fa=b)?B("unsupported CPU address buffer offset ("+this.Fa+")"):this.R()};
|
||||
e.$=function(a,b){if(a&&!this.u.I){this.J=b;if(a=N(b,"video"))this.ya=function(a){return function(){Ba(a)}}(a),this.ca=function(a){return function(){a.ca()}}(a);this.u.I=!0;this.reset(!0);this.update()}};function Ca(a,b,c,d,f){0>Da(a.S,b,c,d,f)&&(a.la>b&&(a.la=b),a.ma<c&&(a.ma=c),a.S.push([b,c,d,f]))}function Q(a,b,c,d,f){0>Da(a.M,b,c,d,f)&&(a.da>b&&(a.da=b),a.ea<c&&(a.ea=c),a.M.push([b,c,d,f]))}
|
||||
function Da(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 Aa(a,b,c){void 0!==b&&(a.K=b,a.B.setSpeed&&(a.B.setSpeed.innerHTML=a.za[2<=b?0:b+1]),a.F("running at "+a.za[b].toLowerCase()+" speed "+a.fb[b]),c&&a.ca());a.U=0;a.Ca=ka();Ea(a)}e.ya=function(){};e.ca=function(){};function R(a,b,c,d){void 0!==a.B[b]&&(void 0===d&&(d=1),c="0000"+c.toString(16),a.B[b].innerHTML=c.slice(c.length-d).toUpperCase())}
|
||||
function Fa(a){R(a,"A",a.g,2);R(a,"X",a.m,2);R(a,"Y",a.o,2);var b=Ga(a);R(a,"C",b&1?1:0);R(a,"Z",b&2?1:0);R(a,"I",b&4?1:0);R(a,"D",b&8?1:0);R(a,"B",b&16?1:0);R(a,"V",b&64?1:0);R(a,"N",b&128?1:0);R(a,"S",a.s,4);R(a,"PC",a.f,4);a.B.speed&&a.N&&(a.B.speed.innerHTML=a.N.toFixed(1)+"Mhz")}
|
||||
function Ea(a,b){var c=30;c<a.xa&&(c=a.xa);c<a.oa&&(c=a.oa);var d=1;b&&a.K>a.ka&&a.N&&(d=a.N);d>a.fa&&2>a.K&&(d=a.fa);a.gb=Math.round(1E3/30);a.ga=Math.floor(1E6/c*d);a.ja=Math.floor(1E6/30*d);a.Ea=Math.floor(1E6/a.xa*d);a.Da=Math.floor(1E6/a.oa*d);b||(a.T=a.ja,a.W=a.Ea,a.V=a.Da);a.na=0}function Ha(a){1E6<=a.na&&Ea(a,!0);a.ba=0;a.hb=ka()}
|
||||
function Ia(a){var b=ka(),c=a.gb;a.ba&&(c=Math.round(c*a.ba/a.ja));c-=b-a.hb;if(b-=a.Ca)a.N=Math.round(a.U/(100*b))/10,864E5<=b&&Aa(a);0>c?c=0:1==a.K?a.N<=a.fa&&(c=0):2==a.K&&(c=0);a.na+=a.ba;return c}
|
||||
function P(a){if(wa(a,!0)){a.u.Z||(Aa(a),a.J&&a.J.start(),a.u.Z=!0,a.B.run&&(a.B.run.innerHTML="Halt"),a.ca());Ha(a);try{do{a.step(a.ga);var b=a.O-a.H;a.U+=b;a.ba+=b;a.O=a.H=0;a.W-=a.ga;0>=a.W&&(a.W+=a.Ea,a.ya());a.V-=a.ga;0>=a.V&&(a.V+=a.Da,Fa(a));a.T-=a.ga;if(0>=a.T){a.T+=a.ja;break}}while(a.u.Z)}catch(c){O(a);a.update();wa(a,!1);va(a,c.stack||c.message);return}setTimeout(function(a){return function(){P(a)}}(a),Ia(a))}else a.update(),a.J&&a.J.stop(a.Ca,a.U)}
|
||||
e.step=function(a){this.b=this.j=-1;this.O=this.H=a;do{a=this.a[this.f];this.f++;this.v[a].call(this);if(0<=this.b){if(this.b>=this.la&&this.b<=this.ma)for(var b=this.b,c=this.f,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.b=-1}else if(0<=this.j){if(this.j>=this.da&&this.j<=this.ea)for(b=this.j,c=this.f,d=0;d<this.M.length;d++)b>=this.M[d][0]&&b<=this.M[d][1]&&this.M[d][3].call(this.M[d][2],b,c);this.j=-1}this.H-=this.eb[a]}while(0<this.H);return!0};
|
||||
function M(a){a.u.ra&&(a.u.wa=!0);a.O-=a.H;a.H=0;a.u.Z&&(a.u.Z=!1,a.B.run&&(a.B.run.innerHTML="Run"))}e.update=function(){this.ya();za(this)};function Da(a){return a.u.Z?a.U+a.O-a.H:0}e.X=function(a){return this.a[a]};function Aa(a){var b=a.c&256?1:0,b=b|(a.i&255?0:2),b=b|((a.w&255^a.D^a.w>>1)&128?64:0),b=b|(a.h&128?128:0);return a.A&60|b}
|
||||
function Q(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.D=b^c;a.w=f;a.h=f&255;160<=f&&(f+=96);512<=f&&(f-=256);a.c=f;a.i=b+c+d&255;a.H--;return f&255}function R(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.h=a.i=(a.c=b-c-d)&255;a.D=b^c;a.w=a.c;a.c^=256;a.H--;return f&255}function ta(a){a.g=0;a.m=0;a.o=0;a.s=256;a.A=0;a.h=0;a.i=0;a.D=0;a.w=0;a.c=0;a.f=0;a.b=-1;a.j=-1;a.N=0;a.U=a.O=a.H=0}
|
||||
e.Lb=function(){this.f++;this.a[this.s--]=this.f>>8;this.s|=256;this.a[this.s--]=this.f&255;this.s|=256;this.A|=16;this.A=Aa(this);this.a[this.s--]=this.A;this.s|=256;this.A&=239;this.b=65534;this.f=this.a[this.b]|this.a[this.b+1]<<8};e.dd=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=this.i=this.g|=this.a[this.b]};e.fd=function(){this.b=this.a[this.f++];this.h=this.i=this.g|=this.a[this.b]};
|
||||
e.Bb=function(){this.j=this.a[this.f++];this.c=this.a[this.j]<<1;this.h=this.i=this.a[this.j]=this.c&255};e.jd=function(){this.A=Aa(this);this.a[this.s--]=this.A;this.s|=256};e.cd=function(){this.b=this.f++;this.h=this.i=this.g|=this.a[this.b]};e.Ab=function(){this.c=this.g<<1;this.h=this.i=this.g=this.c&255};e.$c=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.g|=this.a[this.b]};
|
||||
function O(a){a.u.ra&&(a.u.wa=!0);a.O-=a.H;a.H=0;a.u.Z&&(a.u.Z=!1,a.B.run&&(a.B.run.innerHTML="Run"))}e.update=function(){this.ya();Fa(this)};function Ja(a){return a.u.Z?a.U+a.O-a.H:0}e.X=function(a){return this.a[a]};function Ga(a){var b=a.c&256?1:0,b=b|(a.i&255?0:2),b=b|((a.w&255^a.D^a.w>>1)&128?64:0),b=b|(a.h&128?128:0);return a.A&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.D=b^c;a.w=f;a.h=f&255;160<=f&&(f+=96);512<=f&&(f-=256);a.c=f;a.i=b+c+d&255;a.H--;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.h=a.i=(a.c=b-c-d)&255;a.D=b^c;a.w=a.c;a.c^=256;a.H--;return f&255}function za(a){a.g=0;a.m=0;a.o=0;a.s=256;a.A=0;a.h=0;a.i=0;a.D=0;a.w=0;a.c=0;a.f=0;a.b=-1;a.j=-1;a.N=0;a.U=a.O=a.H=0}
|
||||
e.Lb=function(){this.f++;this.a[this.s--]=this.f>>8;this.s|=256;this.a[this.s--]=this.f&255;this.s|=256;this.A|=16;this.A=Ga(this);this.a[this.s--]=this.A;this.s|=256;this.A&=239;this.b=65534;this.f=this.a[this.b]|this.a[this.b+1]<<8};e.dd=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=this.i=this.g|=this.a[this.b]};e.fd=function(){this.b=this.a[this.f++];this.h=this.i=this.g|=this.a[this.b]};
|
||||
e.Bb=function(){this.j=this.a[this.f++];this.c=this.a[this.j]<<1;this.h=this.i=this.a[this.j]=this.c&255};e.jd=function(){this.A=Ga(this);this.a[this.s--]=this.A;this.s|=256};e.cd=function(){this.b=this.f++;this.h=this.i=this.g|=this.a[this.b]};e.Ab=function(){this.c=this.g<<1;this.h=this.i=this.g=this.c&255};e.$c=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.g|=this.a[this.b]};
|
||||
e.yb=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.a[this.j]<<1;this.h=this.i=this.a[this.j]=this.c&255};e.Kb=function(){this.f+=(this.h&128?0:(this.H--,this.a[this.f]<<24>>24))+1};e.ed=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.h=this.i=this.g|=this.a[this.b]};e.gd=function(){this.b=this.a[this.f++]+this.m&255;this.h=this.i=this.g|=this.a[this.b]};
|
||||
e.Cb=function(){this.j=this.a[this.f++]+this.m&255;this.c=this.a[this.j]<<1;this.h=this.i=this.a[this.j]=this.c&255};e.Ob=function(){this.c=0};e.bd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.h=this.i=this.g|=this.a[this.b]};e.ad=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.h=this.i=this.g|=this.a[this.b]};e.zb=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.c=this.a[this.j]<<1;this.h=this.i=this.a[this.j]=this.c&255};
|
||||
e.Bc=function(){this.b=this.f++;this.a[this.s--]=this.f>>8;this.s|=256;this.a[this.s--]=this.f&255;this.s|=256;this.f=this.a[this.b]|this.a[this.b+1]<<8};e.ub=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=this.i=this.g&=this.a[this.b]};e.Hb=function(){this.b=this.a[this.f++];this.i=this.g&this.a[this.b];this.h=this.h&127|this.a[this.b]&128;this.w=0;this.D=this.a[this.b]&64?128:0};e.wb=function(){this.b=this.a[this.f++];this.h=this.i=this.g&=this.a[this.b]};
|
||||
|
|
@ -67,14 +69,14 @@ e.pc=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[
|
|||
e.Wc=function(){this.c=this.c&65279|(this.g&1?256:0);this.g=(this.c=this.c&65280|this.g>>1)&255;this.h=this.i=this.c&255};e.Ac=function(){this.b=this.f;this.f=this.a[this.b]|this.a[this.b+1]<<8};e.lc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.g^=this.a[this.b]};e.Uc=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.c&65279|(this.a[this.j]&1?256:0);this.a[this.j]=(this.c=this.c&65280|this.a[this.j]>>1)&255;this.h=this.i=this.c&255};
|
||||
e.Mb=function(){this.f+=((this.w&255^this.D^this.w>>1)&128?0:(this.H--,this.a[this.f]<<24>>24))+1};e.qc=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.h=this.i=this.g^=this.a[this.b]};e.sc=function(){this.b=this.a[this.f++]+this.m&255;this.h=this.i=this.g^=this.a[this.b]};e.Yc=function(){this.j=this.a[this.f++]+this.m&255;this.c=this.c&65279|(this.a[this.j]&1?256:0);this.a[this.j]=(this.c=this.c&65280|this.a[this.j]>>1)&255;this.h=this.i=this.c&255};
|
||||
e.Qb=function(){this.A&=251};e.nc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.h=this.i=this.g^=this.a[this.b]};e.mc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.h=this.i=this.g^=this.a[this.b]};e.Vc=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.c=this.c&65279|(this.a[this.j]&1?256:0);this.a[this.j]=(this.c=this.c&65280|this.a[this.j]>>1)&255;this.h=this.i=this.c&255};
|
||||
e.xd=function(){this.s=this.s+2&255|256;this.f=(this.a[this.s-1|256]|this.a[this.s]<<8)+1};e.La=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.mb=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.g=Q(this,this.g,this.a[this.b])};
|
||||
e.Na=function(){this.b=this.a[this.f++];this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.ob=function(){this.b=this.a[this.f++];this.g=Q(this,this.g,this.a[this.b])};e.ud=function(){this.j=this.a[this.f++];this.c=this.c&65280|this.a[this.j];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.h=this.i=this.a[this.j]=this.c&255};e.kd=function(){this.s=this.s+1&255|256;this.h=this.i=this.g=this.a[this.s]};
|
||||
e.Ka=function(){this.b=this.f++;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.lb=function(){this.b=this.f++;this.g=Q(this,this.g,this.a[this.b])};e.td=function(){this.c=this.c&65280|this.g;this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.h=this.i=this.g=this.c&255};e.zc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.f=this.a[this.b]|this.a[this.b+1]<<8};
|
||||
e.Ha=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.ib=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.g=Q(this,this.g,this.a[this.b])};e.rd=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.c&65280|this.a[this.j];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.h=this.i=this.a[this.j]=this.c&255};
|
||||
e.Nb=function(){this.f+=((this.w&255^this.D^this.w>>1)&128?(this.H--,this.a[this.f]<<24>>24):0)+1};e.Ma=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.nb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.g=Q(this,this.g,this.a[this.b])};
|
||||
e.Oa=function(){this.b=this.a[this.f++]+this.m&255;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.pb=function(){this.b=this.a[this.f++]+this.m&255;this.g=Q(this,this.g,this.a[this.b])};e.vd=function(){this.j=this.a[this.f++]+this.m&255;this.c=this.c&65280|this.a[this.j];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.h=this.i=this.a[this.j]=this.c&255};e.Id=function(){this.A|=4};
|
||||
e.Ja=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.kb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.g=Q(this,this.g,this.a[this.b])};e.Ia=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};
|
||||
e.jb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.g=Q(this,this.g,this.a[this.b])};e.sd=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.c=this.c&65280|this.a[this.j];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.h=this.i=this.a[this.j]=this.c&255};e.Md=function(){this.j=this.a[this.f++]+this.m&255;this.j=this.a[this.j]|this.a[this.j+1]<<8;this.a[this.j]=this.g};e.Ud=function(){this.j=this.a[this.f++];this.a[this.j]=this.o};
|
||||
e.xd=function(){this.s=this.s+2&255|256;this.f=(this.a[this.s-1|256]|this.a[this.s]<<8)+1};e.La=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.mb=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.g=S(this,this.g,this.a[this.b])};
|
||||
e.Na=function(){this.b=this.a[this.f++];this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.ob=function(){this.b=this.a[this.f++];this.g=S(this,this.g,this.a[this.b])};e.ud=function(){this.j=this.a[this.f++];this.c=this.c&65280|this.a[this.j];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.h=this.i=this.a[this.j]=this.c&255};e.kd=function(){this.s=this.s+1&255|256;this.h=this.i=this.g=this.a[this.s]};
|
||||
e.Ka=function(){this.b=this.f++;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.lb=function(){this.b=this.f++;this.g=S(this,this.g,this.a[this.b])};e.td=function(){this.c=this.c&65280|this.g;this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.h=this.i=this.g=this.c&255};e.zc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.f=this.a[this.b]|this.a[this.b+1]<<8};
|
||||
e.Ha=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.ib=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.g=S(this,this.g,this.a[this.b])};e.rd=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.c&65280|this.a[this.j];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.h=this.i=this.a[this.j]=this.c&255};
|
||||
e.Nb=function(){this.f+=((this.w&255^this.D^this.w>>1)&128?(this.H--,this.a[this.f]<<24>>24):0)+1};e.Ma=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.nb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.g=S(this,this.g,this.a[this.b])};
|
||||
e.Oa=function(){this.b=this.a[this.f++]+this.m&255;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.pb=function(){this.b=this.a[this.f++]+this.m&255;this.g=S(this,this.g,this.a[this.b])};e.vd=function(){this.j=this.a[this.f++]+this.m&255;this.c=this.c&65280|this.a[this.j];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.h=this.i=this.a[this.j]=this.c&255};e.Id=function(){this.A|=4};
|
||||
e.Ja=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.kb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.g=S(this,this.g,this.a[this.b])};e.Ia=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};
|
||||
e.jb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.g=S(this,this.g,this.a[this.b])};e.sd=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.c=this.c&65280|this.a[this.j];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.h=this.i=this.a[this.j]=this.c&255};e.Md=function(){this.j=this.a[this.f++]+this.m&255;this.j=this.a[this.j]|this.a[this.j+1]<<8;this.a[this.j]=this.g};e.Ud=function(){this.j=this.a[this.f++];this.a[this.j]=this.o};
|
||||
e.Od=function(){this.j=this.a[this.f++];this.a[this.j]=this.g};e.Rd=function(){this.j=this.a[this.f++];this.a[this.j]=this.m};e.kc=function(){this.h=this.i=this.o=this.o-1&255};e.$d=function(){this.h=this.i=this.g=this.m};e.Td=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.a[this.j]=this.o};e.Jd=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.a[this.j]=this.g};e.Qd=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.a[this.j]=this.m};
|
||||
e.Db=function(){this.f+=(this.c&256?0:(this.H--,this.a[this.f]<<24>>24))+1};e.Nd=function(){this.j=this.a[this.f++];this.j=(this.a[this.j]|this.a[this.j+1]<<8)+this.o;this.a[this.j]=this.g};e.Vd=function(){this.j=this.a[this.f++]+this.m&255;this.a[this.j]=this.o};e.Pd=function(){this.j=this.a[this.f++]+this.m&255;this.a[this.j]=this.g};e.Sd=function(){this.j=this.a[this.f++]+this.o&255;this.a[this.j]=this.m};e.be=function(){this.h=this.i=this.g=this.o};
|
||||
e.Ld=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.a[this.j]=this.g};e.ae=function(){this.s=this.m|256};e.Kd=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.a[this.j]=this.g};e.Rc=function(){this.b=this.f++;this.h=this.i=this.o=this.a[this.b]};e.Gc=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=this.i=this.g=this.a[this.b]};e.Mc=function(){this.b=this.f++;this.h=this.i=this.m=this.a[this.b]};
|
||||
|
|
@ -87,69 +89,69 @@ e.cc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.c
|
|||
e.Xb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.h=this.i=this.c=this.g-this.a[this.b];this.c^=256};e.Zb=function(){this.b=this.a[this.f++]+this.m&255;this.h=this.i=this.c=this.g-this.a[this.b];this.c^=256};e.ic=function(){this.j=this.a[this.f++]+this.m&255;this.h=this.i=this.a[this.j]=this.a[this.j]-1&255};
|
||||
e.Pb=function(){this.A&=-9;this.v[97]=this.La;this.v[101]=this.Na;this.v[105]=this.Ka;this.v[109]=this.Ha;this.v[113]=this.Ma;this.v[117]=this.Oa;this.v[121]=this.Ja;this.v[125]=this.Ia;this.v[225]=this.Ta;this.v[229]=this.Va;this.v[233]=this.Sa;this.v[237]=this.Pa;this.v[241]=this.Ua;this.v[245]=this.Wa;this.v[249]=this.Ra;this.v[253]=this.Qa};e.Ub=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.h=this.i=this.c=this.g-this.a[this.b];this.c^=256};
|
||||
e.Tb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.h=this.i=this.c=this.g-this.a[this.b];this.c^=256};e.gc=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.h=this.i=this.a[this.j]=this.a[this.j]-1&255};e.ac=function(){this.b=this.f++;this.h=this.i=this.c=this.m-this.a[this.b];this.c^=256};
|
||||
e.Ta=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.Cd=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.g=R(this,this.g,this.a[this.b])};e.bc=function(){this.b=this.a[this.f++];this.h=this.i=this.c=this.m-this.a[this.b];this.c^=256};
|
||||
e.Va=function(){this.b=this.a[this.f++];this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.Ed=function(){this.b=this.a[this.f++];this.g=R(this,this.g,this.a[this.b])};e.vc=function(){this.j=this.a[this.f++];this.h=this.i=this.a[this.j]=this.a[this.j]+1&255};e.xc=function(){this.h=this.i=this.m=this.m+1&255};
|
||||
e.Sa=function(){this.b=this.f++;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.Bd=function(){this.b=this.f++;this.g=R(this,this.g,this.a[this.b])};e.Zc=function(){};e.$b=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.c=this.m-this.a[this.b];this.c^=256};
|
||||
e.Pa=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.yd=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.g=R(this,this.g,this.a[this.b])};e.tc=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.a[this.j]=this.a[this.j]+1&255};e.Fb=function(){this.f+=(this.i&255?0:(this.H--,this.a[this.f]<<24>>24))+1};
|
||||
e.Ua=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.Dd=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.g=R(this,this.g,this.a[this.b])};
|
||||
e.Wa=function(){this.b=this.a[this.f++]+this.m&255;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.Fd=function(){this.b=this.a[this.f++]+this.m&255;this.g=R(this,this.g,this.a[this.b])};e.wc=function(){this.j=this.a[this.f++]+this.m&255;this.h=this.i=this.a[this.j]=this.a[this.j]+1&255};
|
||||
e.Ta=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.Cd=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.g=T(this,this.g,this.a[this.b])};e.bc=function(){this.b=this.a[this.f++];this.h=this.i=this.c=this.m-this.a[this.b];this.c^=256};
|
||||
e.Va=function(){this.b=this.a[this.f++];this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.Ed=function(){this.b=this.a[this.f++];this.g=T(this,this.g,this.a[this.b])};e.vc=function(){this.j=this.a[this.f++];this.h=this.i=this.a[this.j]=this.a[this.j]+1&255};e.xc=function(){this.h=this.i=this.m=this.m+1&255};
|
||||
e.Sa=function(){this.b=this.f++;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.Bd=function(){this.b=this.f++;this.g=T(this,this.g,this.a[this.b])};e.Zc=function(){};e.$b=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.c=this.m-this.a[this.b];this.c^=256};
|
||||
e.Pa=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.yd=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.g=T(this,this.g,this.a[this.b])};e.tc=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.a[this.j]=this.a[this.j]+1&255};e.Fb=function(){this.f+=(this.i&255?0:(this.H--,this.a[this.f]<<24>>24))+1};
|
||||
e.Ua=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.Dd=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.g=T(this,this.g,this.a[this.b])};
|
||||
e.Wa=function(){this.b=this.a[this.f++]+this.m&255;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.Fd=function(){this.b=this.a[this.f++]+this.m&255;this.g=T(this,this.g,this.a[this.b])};e.wc=function(){this.j=this.a[this.f++]+this.m&255;this.h=this.i=this.a[this.j]=this.a[this.j]+1&255};
|
||||
e.Hd=function(){this.A|=8;this.v[97]=this.mb;this.v[101]=this.ob;this.v[105]=this.lb;this.v[109]=this.ib;this.v[113]=this.nb;this.v[117]=this.pb;this.v[121]=this.kb;this.v[125]=this.jb;this.v[225]=this.Cd;this.v[229]=this.Ed;this.v[233]=this.Bd;this.v[237]=this.yd;this.v[241]=this.Dd;this.v[245]=this.Fd;this.v[249]=this.Ad;this.v[253]=this.zd};
|
||||
e.Ra=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.Ad=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.g=R(this,this.g,this.a[this.b])};
|
||||
e.Qa=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.zd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.g=R(this,this.g,this.a[this.b])};e.uc=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.h=this.i=this.a[this.j]=this.a[this.j]+1&255};
|
||||
e.Wd=function(){var a;a=this.a[this.f++];switch(a){case 0:this.F("HALT");M(this);break;case 1:a=this.f;for(var b="";a<this.a.length;){var c=this.a[a++];if(!c)break;b+=String.fromCharCode(c)}this.f=a;b=b.replace(/%A/g,r(this.g,2)).replace(/%X/g,r(this.m,2)).replace(/%Y/g,r(this.o,2));this.F(b);this.T=0;this.O-=this.H;this.H=0;break;default:this.f-=2,this.F("undefined opSim: "+r(a,2,!0)+" at "+r(this.f,4,!0)),M(this)}};
|
||||
e.l=function(){var a=this.a[--this.f];this.F("undefined opcode: "+r(a,2,!0)+" at "+r(this.f,4,!0));M(this)};v(function(){for(var a=G(document,"c1pjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new sa(d);F(d,c)}});
|
||||
function S(a){B.call(this,"C1PROM",a);this.b=this.a=null;this.c=a.size;if(this.f=a.image){a=this.f;var b=ba(this.f);"json"!=b&&"hex"!=b&&(a="http://"+(window?window.location.host:"www.pcjs.org")+"/api/v1/dump?file="+this.f+"&format=bytes");var c=this;t(a,function(a,b,g){Ea(c,a,b,g)})}}q(S,B);
|
||||
S.prototype.Y=function(a,b,c,d){this.a=a;this.g=b;a=c-b+1;this.c||(this.c=a);a!=this.c?pa(this,"computer-specified ROM size ("+r(a,4,!0)+") does not match component-specified size ("+r(this.c,4,!0)+")"):(d&&(this.G=d,O(d,b,c,this,this.h)),Fa(this))};S.prototype.$=function(a){a&&!this.u.I&&(this.u.I=!0)};S.prototype.h=function(a,b){void 0!==b&&(a-=this.g,this.a[this.g+a]=this.b?this.b[a]:0)};
|
||||
function Ea(a,b,c,d){if(d)a.F('Error loading ROM "'+b+'" ('+d+")");else{if("["==c.charAt(0)||"{"==c.charAt(0))try{var f=eval("("+c+")"),g=f.bytes;g?a.b=g:a.b=f}catch(h){a.F('Error processing ROM "'+b+'": '+h.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),c=0;c<b.length;c++)a.b[c]=parseInt(b[c],16);Fa(a)}}
|
||||
function Fa(a){if(!I(a))if(!a.f)a.R();else if(a.b&&a.a){var b=a.b.length;if(b!=a.c)pa(a,"ROM image size ("+r(b,4,!0)+") does not match component-specified size ("+r(a.c,4,!0)+")");else{for(var c=0;c<b;c++)a.a[a.g+c]=a.b[c];a.R()}}}v(function(){for(var a=G(document,"c1pjs","rom"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new S(d);F(d,c)}});function Ga(a){B.call(this,"C1PRAM",a)}q(Ga,B);Ga.prototype.Y=function(a){this.a=a;this.R()};
|
||||
v(function(){for(var a=G(document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Ga(d);F(d,c)}});
|
||||
function Ha(a){B.call(this,"C1PKeyboard",a);this.u.I=!1;this.ba=a.model;this.K=8;this.ma=10;this.la=13;this.M=27;this.ga=this.K;this.ka=this.ma;this.da=this.la;this.H=this.M;this.s=241;this.D=224;this.ea=3;this.fa=15;this.o=1;this.j={};this.j["break"]=this.D;this.j.esc=this.H;this.j["ctrl-c"]=this.ea;this.j["ctrl-o"]=this.fa;this.b=[];this.b[49]=30464;this.b[33]=30704;this.b[50]=30208;this.b[34]=30448;this.b[51]=29952;this.b[35]=30192;this.b[52]=29696;this.b[36]=29936;this.b[53]=29440;this.b[37]=
|
||||
e.Ra=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.Ad=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.g=T(this,this.g,this.a[this.b])};
|
||||
e.Qa=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.zd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.g=T(this,this.g,this.a[this.b])};e.uc=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.h=this.i=this.a[this.j]=this.a[this.j]+1&255};
|
||||
e.Wd=function(){var a;a=this.a[this.f++];switch(a){case 0:this.F("HALT");O(this);break;case 1:a=this.f;for(var b="";a<this.a.length;){var c=this.a[a++];if(!c)break;b+=String.fromCharCode(c)}this.f=a;b=b.replace(/%A/g,u(this.g,2)).replace(/%X/g,u(this.m,2)).replace(/%Y/g,u(this.o,2));this.F(b);this.T=0;this.O-=this.H;this.H=0;break;default:this.f-=2,this.F("undefined opSim: "+u(a,2,!0)+" at "+u(this.f,4,!0)),O(this)}};
|
||||
e.l=function(){var a=this.a[--this.f];this.F("undefined opcode: "+u(a,2,!0)+" at "+u(this.f,4,!0));O(this)};x(function(){for(var a=I(document,"c1pjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new ya(d);H(d,c)}});
|
||||
function U(a){D.call(this,"C1PROM",a);this.b=this.a=null;this.c=a.size;if(this.f=a.image){a=this.f;var b=ha(this.f);"json"!=b&&"hex"!=b&&(a="http://"+(window?window.location.host:"www.pcjs.org")+"/api/v1/dump?file="+this.f+"&format=bytes");var c=this;v(a,function(a,b,g){Ka(c,a,b,g)})}}q(U,D);
|
||||
U.prototype.Y=function(a,b,c,d){this.a=a;this.g=b;a=c-b+1;this.c||(this.c=a);a!=this.c?va(this,"computer-specified ROM size ("+u(a,4,!0)+") does not match component-specified size ("+u(this.c,4,!0)+")"):(d&&(this.G=d,Q(d,b,c,this,this.h)),La(this))};U.prototype.$=function(a){a&&!this.u.I&&(this.u.I=!0)};U.prototype.h=function(a,b){void 0!==b&&(a-=this.g,this.a[this.g+a]=this.b?this.b[a]:0)};
|
||||
function Ka(a,b,c,d){if(d)a.F('Error loading ROM "'+b+'" ('+d+")");else{if("["==c.charAt(0)||"{"==c.charAt(0))try{var f=eval("("+c+")"),g=f.bytes;g?a.b=g:a.b=f}catch(h){a.F('Error processing ROM "'+b+'": '+h.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),c=0;c<b.length;c++)a.b[c]=parseInt(b[c],16);La(a)}}
|
||||
function La(a){if(!K(a))if(!a.f)a.R();else if(a.b&&a.a){var b=a.b.length;if(b!=a.c)va(a,"ROM image size ("+u(b,4,!0)+") does not match component-specified size ("+u(a.c,4,!0)+")");else{for(var c=0;c<b;c++)a.a[a.g+c]=a.b[c];a.R()}}}x(function(){for(var a=I(document,"c1pjs","rom"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new U(d);H(d,c)}});function Ma(a){D.call(this,"C1PRAM",a)}q(Ma,D);Ma.prototype.Y=function(a){this.a=a;this.R()};
|
||||
x(function(){for(var a=I(document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new Ma(d);H(d,c)}});
|
||||
function Na(a){D.call(this,"C1PKeyboard",a);this.u.I=!1;this.ba=a.model;this.K=8;this.ma=10;this.la=13;this.M=27;this.ga=this.K;this.ka=this.ma;this.da=this.la;this.H=this.M;this.s=241;this.D=224;this.ea=3;this.fa=15;this.o=1;this.j={};this.j["break"]=this.D;this.j.esc=this.H;this.j["ctrl-c"]=this.ea;this.j["ctrl-o"]=this.fa;this.b=[];this.b[49]=30464;this.b[33]=30704;this.b[50]=30208;this.b[34]=30448;this.b[51]=29952;this.b[35]=30192;this.b[52]=29696;this.b[36]=29936;this.b[53]=29440;this.b[37]=
|
||||
29680;this.b[54]=29184;this.b[38]=29424;this.b[55]=28928;this.b[39]=29168;this.b[56]=26368;this.b[40]=26608;this.b[57]=26112;this.b[41]=26352;this.b[48]=25856;this.b[58]=25600;this.b[42]=25840;this.b[45]=25344;this.b[61]=25584;this.b[46]=22272;this.b[62]=22512;this.b[108]=22016;this.b[76]=22256;this.b[92]=22256;this.b[111]=21760;this.b[79]=22E3;this.b[this.ga]=22E3;this.b[this.ka]=21504;this.b[this.da]=21248;this.b[119]=18176;this.b[87]=18416;this.b[101]=17920;this.b[69]=18160;this.b[114]=17664;this.b[82]=
|
||||
17904;this.b[116]=17408;this.b[84]=17648;this.b[121]=17152;this.b[89]=17392;this.b[117]=16896;this.b[85]=17136;this.b[105]=16640;this.b[73]=16880;this.b[115]=14080;this.b[83]=14320;this.b[100]=13824;this.b[68]=14064;this.b[102]=13568;this.b[70]=13808;this.b[103]=13312;this.b[71]=13552;this.b[104]=13056;this.b[72]=13296;this.b[106]=12800;this.b[74]=13040;this.b[107]=12544;this.b[75]=12784;this.b[91]=12784;this.b[120]=9984;this.b[88]=10224;this.b[99]=9728;this.b[67]=9968;this.b[118]=9472;this.b[86]=
|
||||
9712;this.b[98]=9216;this.b[66]=9456;this.b[110]=8960;this.b[78]=9200;this.b[94]=9200;this.b[109]=8704;this.b[77]=8944;this.b[93]=8944;this.b[44]=8448;this.b[60]=8688;this.b[113]=5888;this.b[81]=6128;this.b[97]=5632;this.b[65]=5872;this.b[122]=5376;this.b[90]=5616;this.b[32]=5120;this.b[47]=4864;this.b[63]=5104;this.b[59]=4608;this.b[43]=4848;this.b[112]=4352;this.b[80]=4592;this.b[64]=4592;this.b[this.s]=1536;this.b[this.H]=1280;this.b[240]=512;this.b[242]=256;this.b[244]=0;this.reset()}q(Ha,B);
|
||||
e=Ha.prototype;e.reset=function(){this.pa(this.ba);this.c=this.o;this.O=0;this.f=[this.o,0,0,0,0,0,0,0];this.v=[];if(this.g)for(var a in this.g)isNaN(+a)||this.g[a]&&clearTimeout(this.g[a]);this.g=[];this.W=this.h=0;this.S=-1;this.N=this.f;this.U=this.A=0;this.i=""};
|
||||
e.L=function(a,b,c){if(void 0===this.B[b])switch(b){case "keyDown":return this.B[b]=c,c.onkeydown=function(a){return function(b){return Ia(a,b,!0)}}(this),!0;case "keyPress":return this.B[b]=c,c.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.i="";a.c&8?a.c&=-9:c=!T(a,b);return c}}(this),!0;case "keyUp":return this.B[b]=c,c.onkeyup=function(a){return function(b){return Ia(a,b,!1)}}(this),!0;case "break":return this.B[b]=c,c.onclick=function(a){return function(){a.J&&
|
||||
a.J.reset(!0)}}(this),!0;default:if(void 0!==this.j[b])return this.B[b]=c,c.onclick=function(a,b,c){return function(){a.G&&a.G.ca();return!T(a,c)}}(this,b,this.j[b]),!0}return!1};e.Y=function(a,b,c,d){this.a=a;this.V=b;this.ja=c-b+1;this.oa=this.V+this.ja;d&&(this.G=d,O(d,b,c,this,this.$a));this.R()};e.pa=function(a){this.m=a;this.w=255;600!=this.m&&(this.w=0,this.F("updated keyboard model: "+this.m))};e.$=function(a,b){a&&!this.u.I&&(this.u.I=!0,this.J=b)};
|
||||
e.R=function(){this.T=(this.na=u("iOS"))||u("Android");B.prototype.R.call(this)};function Ja(a,b){b=b?100:250;a.G&&a.G.N&&(b/=a.G.N);return b}function Ka(a,b){!a.h||void 0!==b&&b==a.h||(clearTimeout(a.g[a.h]),U(a,a.h,!1,4))}function V(a,b,c){a.i=b;La(a,c||300)}function La(a,b){if(0<a.i.length){var c=a.i.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.i=a.i.substr(1);T(a,c)}0<a.i.length&&setTimeout(function(a){return function(){La(a,b)}}(a),b)}
|
||||
function Ia(a,b,c){var d,f=!c;b=b.keyCode;c&&(a.W=b);16==b?(a.c&=-5,c&&(a.c|=4),b+=224,f=!1):18==b?(a.c&=-3,c&&(a.c|=2),b+=224,f=!1):b==a.s-224?(a.c&=-65,c&&(a.c|=64),b+=224,f=!1):20==b?(c=!c,a.c&=~a.o,c&&(a.c|=a.o),b+=224,f=!1):91==b?(a.c&=-9,c&&(a.c|=8),f=!1,d=!0):d=9==b?f=!1:b==a.M||b==a.K?c?!T(a,b):!1:!0;f&&(a.c&=-9,a.T||b!=a.W||Ka(a));void 0===d&&(d=!U(a,b,c,2));return d}
|
||||
function T(a,b){var c=!1;b==a.D?a.J&&(a.J.reset(!0),c=!0):(a.T&&65<=b&&90>=b&&(b+=32),Ka(a,b),U(a,b,!0,0)&&(2==a.G.K?U(a,b,!1,1):(c=!1,a.g[b]&&(clearTimeout(a.g[b]),c=!0),c=Ja(a,c),a.g[a.h=b]=setTimeout(function(a){return function(){U(a,b,!1,3)}}(a),c)),c=!0));return c}
|
||||
function U(a,b,c,d){var f=!1;c||(a.g[b]=null,a.h==b&&(a.h=0));var g=0,h=a.b[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.s),h=a.b[b]);void 0!==h&&(b=h>>12,f=h>>8&15,g||(g=h&255),c?(a.f[b]|=1<<f,a.f[0]=g==a.s?a.f[0]|64:240==g?a.f[0]|4:242==g?a.f[0]|2:a.f[0]&-71):(a.f[b]&=~(1<<f),a.f[0]&=-71,a.f[0]|=a.c&70),c=!d&&!a.v.length,a.v.push(a.f.slice()),Ma(a,c),f=!0);return f}e.X=function(){};e.$a=function(a){this.O=this.G.X(a)^this.w;this.A++;Ma(this,!1,a)};
|
||||
function Ma(a,b,c){var d=Da(a.G);b||(2==a.G.K?b=void 0!==c&&32<=a.A:(b=d-a.U,b=0>b||8192<=b));b&&(b=a.v.shift(),void 0!==b&&(a.N=b),a.A=0,a.U=d);for(b=d=0;8>b;b++)a.O&1<<b&&(d|=a.N[b]);d^=a.w;if(void 0!==c)a.a[c]=d;else if(c=a.V,d!=a.S)for(;c<a.oa;c++)a.a[c]=d;a.S=d}v(function(){for(var a=G(document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Ha(d);F(d,c)}});
|
||||
function Na(a,b,c,d){B.call(this,"C1PVideo",a);this.S=a.model;this.M=a.charCols;this.N=a.charRows;this.U=a.screenWidth;this.V=a.screenHeight;this.i=a.charWidth;this.j=a.charHeight;Oa(this);this.h=b;this.w=c;this.f=d;var f;b=["","moz","ms","webkit"];a=a.smoothing;if(!ja){c={};if(window){f||(f=window.location.search.substr(1));for(var g=/\+/g,h=/([^&=]+)=?([^&]*)/g;d=h.exec(f);)c[decodeURIComponent(d[1].replace(g," "))]=decodeURIComponent(d[2].replace(g," "))}ja=c}(f=ja.smoothing)&&(a="true"==f);if(null!=
|
||||
a)for(f=0;f<b.length;f++)if(c=(c=b[f])?c+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.w[c]){this.w[c]=a;break}}q(Na,B);e=Na.prototype;e.reset=function(a){this.pa(this.S);if(this.a)for(var b=this.s;b<this.A;b++)this.a[b]=a?Math.floor(256*Math.random()):32};e.L=function(a,b,c){switch(b){case "refresh":return this.B[b]=c,c.onclick=function(a){return function(){Pa(a);va(a)}}(this),!0}return!1};
|
||||
e.Y=function(a,b,c,d){this.a=a;this.s=b;this.T=c-b+1;this.A=this.s+this.T;d&&(this.G=d,wa(d,56832,56832,this,this.X),O(d,56832,56832,this,this.bb));this.reset(!0)};function Oa(a,b,c,d,f){a.o=void 0!==b?b:a.M;a.W=void 0!==c?c:a.N;a.c=a.o*a.W;a.A=a.s+a.c;a.K=void 0!==d?d:0;a.O=void 0!==f?f:c;a.D=Math.floor(a.U/a.o);a.H=Math.floor(a.V/a.O)}e.ca=function(){this.h.focus()};
|
||||
e.pa=function(a){this.m=a;600==this.m?(Oa(this,this.M,this.N,3,25),1024==this.c&&this.G&&(this.g=this.A+this.c-1,O(this.G,this.g,this.g,this,this.Ya))):(this.F("updated video model: "+this.m),Oa(this,64,32));Pa(this);va(this)};e.$=function(a,b){if(a&&!this.u.I&&I(this)){if(this.u.I=!0,this.b=L(b,"keyboard"))this.b.L("canvas","keyDown",this.h),this.b.L("canvas","keyPress",this.h),this.b.L("canvas","keyUp",this.h)}else!a&&this.u.I&&(this.u.I=!1)};
|
||||
e.R=function(){this.i||(this.i=Math.floor(this.f.width/16));this.j||(this.j=Math.floor(this.f.height/16));B.prototype.R.call(this)};e.X=function(a){var b=this.G.X(a);this.G.a[a]=b&127|(Math.floor(Da(this.G)/8333)&1?128:0)};e.bb=function(){};
|
||||
e.Ya=function(a,b){if(void 0!==b){this.pa(540);this.b&&this.b.pa(542);a=this.G;b=a.M;var c=[],d=xa(b,this.g,this.g,this,this.Ya);if(0<=d){c.push(b[d][0]);c.push(b[d][1]);b.splice(d,1);for(var f=65536,g=0,d=0;d<b.length;d++)f>b[d][0]&&(f=b[d][0]),g<b[d][1]&&(g=b[d][1]);c.push(f);c.push(g)}4==c.length&&(a.da=c[2],a.ea=c[3])}};function Pa(a){a.v=Array(a.c);for(var b=0;b<=a.c;b++)a.v[b]=-1}
|
||||
function va(a){var b=0;if(a.u.I)for(;b<a.c;){var c=a.a[a.s+b];if(a.v[b]!=c){var d=Math.floor(b/a.o);if(d>=a.K&&(d-=a.K,d<a.O)){var f=c*a.i;a.w.drawImage(a.f,f%a.f.width,Math.floor(f/a.f.width)*a.j,a.i,a.j,b%a.o*a.D,d*a.H,a.D,a.H)}a.v[b]=c}b++}}
|
||||
v(function(){for(var a=G(document,"c1pjs","video"),b=0;b<a.length;b++){var c=a[b],d=E(c),f=document.createElement("canvas");if(!f||!f.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer 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 Na(d,f,h,g);g.onload=function(a){return function(){a.R()}}(f,d.charSet);g.src=d.charSet;F(f,c)}});
|
||||
function Qa(a){B.call(this,"C1PSerialPort",a);this.u.I=!1;this.j=a.demo;this.reset(!0)}q(Qa,B);e=Qa.prototype;e.reset=function(a){if(a||this.f!=Ra){this.g=-1;this.h=0;this.c="";if(this.j){a=1;if(this.Ba){var b=this.Ba.match(/\d+/);null!==b&&(a=parseInt(b[0],10))}this.c='10 PRINT "HELLO OSI #'+a+'"\n'}this.i=!0;this.f=Sa}};e.start=function(){this.b&&this.j&&(V(this.b," C\n\n",3E3),setTimeout(function(a){return function(){a.f=Ta;V(a.b,"LOAD\n")}}(this),12E3));this.j=!1};
|
||||
e.L=function(a,b,c){var d=this;switch(b){case "listSerial":return this.B[b]=c,!0;case "loadSerial":return this.B[b]=c,c.onclick=function(){d.B.listSerial&&t(d.B.listSerial.value,function(a,b,c){Ua(d,a,b,c)})},!0;case "mountSerial":return!u("Mobi")&&window&&"FileReader"in window?(this.B[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){var b=a.currentTarget[1].files[0],c=new FileReader;c.onload=function(){Ua(d,
|
||||
b.name,c.result.toString(),0)};c.readAsText(b);return!1}):c.parentNode.removeChild(c),!0}return!1};e.Y=function(a,b,c,d){this.a=a;this.m=b;this.s=c-b+1;this.o=this.m+this.s;if(this.G=d)wa(d,b,c,this,this.X),O(d,b,c,this,this.ab);this.R()};e.$=function(a,b){a&&!this.u.I&&(this.u.I=!0,this.J=b,this.b=L(b,"keyboard"))};
|
||||
function Ua(a,b,c,d){if(c){a.h=0;a.c=c;a.i=!0;a.f=Sa;if(-1!==b.indexOf(".json",b.length-5))try{d="";var f=eval("("+c+")").bytes;for(c=0;c<f.length;c++)d+=String.fromCharCode(f[c]);a.c=d;a.i=!1}catch(g){a.F('Error processing file "'+b+'": '+g.message);return}a.J&&a.b&&a.G.u.Z?(a.F("auto-loading "+b),a.G.ca(),"."!=a.c.charAt(0)?(a.f=Ta,V(a.b,"NEW\nLOAD\n")):(a.f=Ra,a.J.reset(!0),V(a.b,"ML"))):a.F(b+" ready to load")}else a.F('Error loading file "'+b+'" ('+d+")")}
|
||||
e.X=function(a,b){void 0!==b&&(a&1?Va(this):this.c&&!this.h&&Va(this))};e.ab=function(){};function Va(a){if(void 0!==a.c){a.g=-1;if(a.h<a.c.length){var b=a.c.charCodeAt(a.h++)&255;a.i&&10==b&&(b=13);a.g=b}else a.c="",a.h=0,a.f==Ta&&a.b&&V(a.b," \nRUN\n"),a.f=Sa;for(b=a.m+0;b<a.o;b+=2)a.a[b]=0<=a.g?Wa:Xa;for(b=a.m+1;b<a.o;b+=2)a.a[b]=0<=a.g?a.g:0}}var Xa=0,Wa=1,Sa=0,Ta=1,Ra=2;v(function(){for(var a=G(document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Qa(d);F(d,c)}});
|
||||
function Ya(a){B.call(this,"C1PDiskController",a);this.u.I=!1;this.reset(!0)}q(Ya,B);e=Ya.prototype;e.reset=function(a){Za(this);this.b=-1;a&&(this.c=[],this.c[0]={ce:0,Ga:40,cb:!0,ia:20,aa:0,ha:-1,qa:[]})};
|
||||
function Za(a){a.s={C:64,read:function(){},update:function(a){return function(b){void 0!==b&&(this.C=b);a.i.C&4||W(a,0,this)}}(a)};a.f={C:255,read:function(){this.update()},update:function(a){return function(b){void 0===b?b=a.f.C:$a(a,b,a.h.C);b=(b|190)&-2;if(0<=a.b&&a.c[a.b].qa.length){var c=a.c[a.b];c.cb&&(b&=-33);c.aa||(b&=-3);10>=--c.ia&&(0<c.ia?(b&=-129,ab(a)):(c.ia=100,0<=a.b&&(a.c[a.b].ha=0,bb(a))))}this.C=b;a.i.C&4&&W(a,0,this)}}(a)};a.i={C:0,read:function(){},update:function(a){return function(b){void 0!==
|
||||
b&&(this.C=b&-193);W(a,1,this);a.f.update();a.s.update()}}(a)};a.v={C:255,read:function(){},update:function(a){return function(b){void 0!==b&&(this.C=b);a.j.C&4||W(a,2,this)}}(a)};a.h={C:255,read:function(){},update:function(a){return function(b){void 0===b?b=a.h.C:$a(a,a.f.C,b);if(0<=a.b&&a.b<a.c.length){var c=a.c[a.b];c.qa.length&&a.h.C&8&&!(b&8)&&(b&4?c.aa--:c.aa++,c.aa>=c.Ga&&(c.aa=c.Ga),0>c.aa&&(c.aa=0),c.ia=20,a.f.update(a.f.C|128),ab(a))}this.C=b;a.j.C&4&&W(a,2,this)}}(a)};a.j={C:0,read:function(){},
|
||||
update:function(a){return function(b){void 0!==b&&(this.C=b&-193);W(a,3,this);a.h.update();a.v.update()}}(a)};a.w={C:0,read:function(){},update:function(a){return function(b){void 0!==b&&(3==(b&3)&&(a.g.C=14),this.C=b);a.g.update()}}(a)};a.g={C:14,read:function(){},update:function(a){return function(b){void 0===b&&(b=a.g.C);b&=-2;0<=a.b&&0<=a.c[a.b].ha&&(b|=1);this.C=b;W(a,16,this)}}(a)};a.o={C:0,read:function(a){return function(){bb(a)}}(a),update:function(a){return function(b){void 0!==b&&(this.C=
|
||||
b);W(a,17,this)}}(a)};a.A={C:0,read:function(){},update:function(){return function(){}}(a)}}e.L=function(a,b,c){switch(b){case "listDisk":return this.B[b]=c,!0;case "loadDisk":return this.B[b]=c,c.onclick=function(a){return function(){if(a.B.listDisk){var b=a.B.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);a.F("loading "+aa(b)+"...");t(c,function(b,c,d){cb(a,b,c,d)})}}}(this),!0}return!1};
|
||||
e.Y=function(a,b,c,d){this.a=a;this.m=b;if(this.G=d)wa(d,b,c,this,this.X),O(d,b,c,this,this.Za);this.R()};e.$=function(a){a&&!this.u.I&&(this.u.I=!0)};
|
||||
function cb(a,b,c,d){if(d)a.F("disk load error ("+d+")");else{d=[];a.F("mounting "+b+"...");try{if(d=eval("("+c+")"),d.length)if(d[0].length){var f=d[0];if(void 0===f[0].trackNum)a.F("data error: "+f[0]);else if(a.c[0]){for(c=0;c<f.length;c++){var g,h=f[c],l=h.sectors;if(void 0===(g=h.trackNum)||void 0===l)throw Error("track "+c+" missing data");g!=c&&z("track "+g+" out of order (expected "+c+")");d=[];var k,n,m;if(g){db(d,h,"trackSig");eb(d,h);X(d,h,"trackType");for(var p=0;p<l.length;p++){k=l[p];
|
||||
n=k.sectorData;X(d,k,"sectorSig");X(d,k,"sectorNum");X(d,k,"sectorPages");for(m=0;m<n.length;m++)d.push(n[m]);db(d,k,"sectorEndSig")}}else for(k=l[0],n=k.sectorData,X(d,h,"trackLoad",2),X(d,k,"sectorPages"),m=0;m<n.length;m++)d.push(n[m]);f[g].Xa=d}a.c[0].qa=f;a.F("mount of "+b+" complete")}else a.F("no available drives")}else a.F("no tracks: "+b);else a.F("no data: "+b)}catch(kb){a.F("disk data error: "+kb.message)}}}
|
||||
function eb(a,b){b=b.trackNum;if(void 0===b)throw Error("missing bcd value: trackNum");a.push(Math.floor(b/10)<<4|b%10)}function X(a,b,c,d){b=b[c];if(void 0===b)throw Error("missing binary value: "+c);2==d&&a.push(b>>8&255);a.push(b&255)}function db(a,b,c){b=b[c];if(void 0===b)throw Error("missing signature: "+c);for(c=0;c<b.length;c++)a.push(b.charCodeAt(c))}
|
||||
function fb(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case 0:a=a.i.C&4?a.f:a.s;break;case 1:a=a.i;break;case 2:a=a.j.C&4?a.h:a.v;break;case 3:a=a.j;break;case 16:a=c?a.w:a.g;break;case 17:a=a.o;break;default:a=a.A}return a}e.X=function(a,b){void 0!==b&&fb(this,a-this.m,!1).read()};e.Za=function(a,b){void 0!==b&&(b=this.G.X(a),fb(this,a-this.m,!0).update(b))};function $a(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&32||(d|=2),a.f.C&64||(d|=1));a.b!=d&&(a.b=d,a.g.update())}
|
||||
function ab(a){0<=a.b&&(a.c[a.b].ha=-1,a.o.update(255),a.g.update())}function bb(a){var b;if(0<=a.b){b=a.c[a.b];var c=b.qa[b.aa];void 0!==c&&(0<=b.ha&&b.ha<c.Xa.length?(b.ia=100,b=c.Xa[b.ha++],a.o.update(b),a.g.update()):(b.ia=10,ab(a)))}}function W(a,b,c){a.G.a[b+a.m]=c.C}v(function(){for(var a=G(document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Ya(d);F(d,c)}});function Y(a,b){B.call(this,"C1PComputer",a);this.P=b}q(Y,B);
|
||||
Y.prototype.reset=function(a){var b=null,c;for(c in this.P)for(var d=0;d<this.P[c].length;d++){var f=this.P[c][d];f&&f.reset&&(f.reset(),"cpu"==c&&(b=f))}b&&(b.update(),a&&N(b))};Y.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()}};Y.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 f=this.P[c][d];f&&f.stop&&f.stop(a,b)}};
|
||||
Y.prototype.L=function(a,b,c){switch(b){case "reset":return this.B[b]=c,c.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 gb(a){var b=null,c;for(c in a.P)for(var d=0;d<a.P[c].length;d++){var f=a.P[c][d];if(f){if(!I(f)){I(f,function(a){return function(){gb(a)}}(a));return}"cpu"==c?b=f:f.$&&f.$(!0,a)}}a.R();a.F("C1Pjs v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>");b&&b.$(!0,a)}
|
||||
v(function(){for(var a=G(document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=E(c),f,g={},h,l=0,k=0,n=0;n<d.modules.length;n++){var m=d.modules[n];if(!n){if("cpu"!=m.type)break;l=m.start;k=m.end;h=Array(k+1-l);for(f=l;f<h.length;f++)h[f]=0}if(f=D(m.refID,d.id)){var p=m.type;void 0===g[p]&&(g[p]=[]);g[p].push(f);f.Y&&void 0!==m.start&&f.Y(h,m.start,m.end,g.cpu[0])}else{z('no component for <module refid="'+m.refID+'">');return}}if(!h){z('<module type="cpu"> definition must appear first in the <computer> specification');
|
||||
break}if(f=D("debugger",d.id))g["debugger"]=[f],f.Y&&f.Y(h,l,k,g.cpu[0]);l=new Y(d,g);if(k=D("panel",d.id))if(g.panel=[k],k.sa){f=d.id;d=void 0;g=[];f&&(f=0<(d=f.indexOf("."))?f.substr(0,d+1):"");for(d=0;d<C.length;d++)n=C[d],f&&n.id.indexOf(f)||g.push(n);d=g;for(g=0;g<d.length;g++)f=d[g],f!=k&&(f.ta=k.ta,f.F=k.F,f.sa=k.sa)}F(l,c);gb(l)}});var Z=0;function hb(a,b,c,d,f,g){f("Loading "+a+"...");t(a,function(h,l,k){k?(l||(l="unable to load "+a+" ("+k+")"),g(l,null)):ib(l,a,b,c,d,f,g)})}
|
||||
function ib(a,b,c,d,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(J[c]&&b&&(J[c][b]=a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,
|
||||
"$1C1Pjs$2"),a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1c1pjs$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(m){g=null,a=m.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?jb(a,g,l):l(a,null):h("no data"+(b?" for file: "+
|
||||
9712;this.b[98]=9216;this.b[66]=9456;this.b[110]=8960;this.b[78]=9200;this.b[94]=9200;this.b[109]=8704;this.b[77]=8944;this.b[93]=8944;this.b[44]=8448;this.b[60]=8688;this.b[113]=5888;this.b[81]=6128;this.b[97]=5632;this.b[65]=5872;this.b[122]=5376;this.b[90]=5616;this.b[32]=5120;this.b[47]=4864;this.b[63]=5104;this.b[59]=4608;this.b[43]=4848;this.b[112]=4352;this.b[80]=4592;this.b[64]=4592;this.b[this.s]=1536;this.b[this.H]=1280;this.b[240]=512;this.b[242]=256;this.b[244]=0;this.reset()}q(Na,D);
|
||||
e=Na.prototype;e.reset=function(){this.pa(this.ba);this.c=this.o;this.O=0;this.f=[this.o,0,0,0,0,0,0,0];this.v=[];if(this.g)for(var a in this.g)isNaN(+a)||this.g[a]&&clearTimeout(this.g[a]);this.g=[];this.W=this.h=0;this.S=-1;this.N=this.f;this.U=this.A=0;this.i=""};
|
||||
e.L=function(a,b,c){if(void 0===this.B[b])switch(b){case "keyDown":return this.B[b]=c,c.onkeydown=function(a){return function(b){return Oa(a,b,!0)}}(this),!0;case "keyPress":return this.B[b]=c,c.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.i="";a.c&8?a.c&=-9:c=!Pa(a,b);return c}}(this),!0;case "keyUp":return this.B[b]=c,c.onkeyup=function(a){return function(b){return Oa(a,b,!1)}}(this),!0;case "break":return this.B[b]=c,c.onclick=function(a){return function(){a.J&&
|
||||
a.J.reset(!0)}}(this),!0;default:if(void 0!==this.j[b])return this.B[b]=c,c.onclick=function(a,b,c){return function(){a.G&&a.G.ca();return!Pa(a,c)}}(this,b,this.j[b]),!0}return!1};e.Y=function(a,b,c,d){this.a=a;this.V=b;this.ja=c-b+1;this.oa=this.V+this.ja;d&&(this.G=d,Q(d,b,c,this,this.$a));this.R()};e.pa=function(a){this.m=a;this.w=255;600!=this.m&&(this.w=0,this.F("updated keyboard model: "+this.m))};e.$=function(a,b){a&&!this.u.I&&(this.u.I=!0,this.J=b)};
|
||||
e.R=function(){this.T=(this.na=w("iOS"))||w("Android");D.prototype.R.call(this)};function Qa(a,b){b=b?100:250;a.G&&a.G.N&&(b/=a.G.N);return b}function Ra(a,b){!a.h||void 0!==b&&b==a.h||(clearTimeout(a.g[a.h]),V(a,a.h,!1,4))}function W(a,b,c){a.i=b;Sa(a,c||300)}function Sa(a,b){if(0<a.i.length){var c=a.i.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.i=a.i.substr(1);Pa(a,c)}0<a.i.length&&setTimeout(function(a){return function(){Sa(a,b)}}(a),b)}
|
||||
function Oa(a,b,c){var d,f=!c;b=b.keyCode;c&&(a.W=b);16==b?(a.c&=-5,c&&(a.c|=4),b+=224,f=!1):18==b?(a.c&=-3,c&&(a.c|=2),b+=224,f=!1):b==a.s-224?(a.c&=-65,c&&(a.c|=64),b+=224,f=!1):20==b?(c=!c,a.c&=~a.o,c&&(a.c|=a.o),b+=224,f=!1):91==b?(a.c&=-9,c&&(a.c|=8),f=!1,d=!0):d=9==b?f=!1:b==a.M||b==a.K?c?!Pa(a,b):!1:!0;f&&(a.c&=-9,a.T||b!=a.W||Ra(a));void 0===d&&(d=!V(a,b,c,2));return d}
|
||||
function Pa(a,b){var c=!1;b==a.D?a.J&&(a.J.reset(!0),c=!0):(a.T&&65<=b&&90>=b&&(b+=32),Ra(a,b),V(a,b,!0,0)&&(2==a.G.K?V(a,b,!1,1):(c=!1,a.g[b]&&(clearTimeout(a.g[b]),c=!0),c=Qa(a,c),a.g[a.h=b]=setTimeout(function(a){return function(){V(a,b,!1,3)}}(a),c)),c=!0));return c}
|
||||
function V(a,b,c,d){var f=!1;c||(a.g[b]=null,a.h==b&&(a.h=0));var g=0,h=a.b[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.s),h=a.b[b]);void 0!==h&&(b=h>>12,f=h>>8&15,g||(g=h&255),c?(a.f[b]|=1<<f,a.f[0]=g==a.s?a.f[0]|64:240==g?a.f[0]|4:242==g?a.f[0]|2:a.f[0]&-71):(a.f[b]&=~(1<<f),a.f[0]&=-71,a.f[0]|=a.c&70),c=!d&&!a.v.length,a.v.push(a.f.slice()),Ta(a,c),f=!0);return f}e.X=function(){};e.$a=function(a){this.O=this.G.X(a)^this.w;this.A++;Ta(this,!1,a)};
|
||||
function Ta(a,b,c){var d=Ja(a.G);b||(2==a.G.K?b=void 0!==c&&32<=a.A:(b=d-a.U,b=0>b||8192<=b));b&&(b=a.v.shift(),void 0!==b&&(a.N=b),a.A=0,a.U=d);for(b=d=0;8>b;b++)a.O&1<<b&&(d|=a.N[b]);d^=a.w;if(void 0!==c)a.a[c]=d;else if(c=a.V,d!=a.S)for(;c<a.oa;c++)a.a[c]=d;a.S=d}x(function(){for(var a=I(document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new Na(d);H(d,c)}});
|
||||
function Ua(a,b,c,d){D.call(this,"C1PVideo",a);this.S=a.model;this.M=a.charCols;this.N=a.charRows;this.U=a.screenWidth;this.V=a.screenHeight;this.i=a.charWidth;this.j=a.charHeight;Va(this);this.h=b;this.w=c;this.f=d;var f;b=["","moz","ms","webkit"];a=a.smoothing;if(!pa){c={};if(window){f||(f=window.location.search.substr(1));for(var g=/\+/g,h=/([^&=]+)=?([^&]*)/g;d=h.exec(f);)c[decodeURIComponent(d[1].replace(g," "))]=decodeURIComponent(d[2].replace(g," "))}pa=c}(f=pa.smoothing)&&(a="true"==f);if(null!=
|
||||
a)for(f=0;f<b.length;f++)if(c=(c=b[f])?c+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.w[c]){this.w[c]=a;break}}q(Ua,D);e=Ua.prototype;e.reset=function(a){this.pa(this.S);if(this.a)for(var b=this.s;b<this.A;b++)this.a[b]=a?Math.floor(256*Math.random()):32};e.L=function(a,b,c){switch(b){case "refresh":return this.B[b]=c,c.onclick=function(a){return function(){Wa(a);Ba(a)}}(this),!0}return!1};
|
||||
e.Y=function(a,b,c,d){this.a=a;this.s=b;this.T=c-b+1;this.A=this.s+this.T;d&&(this.G=d,Ca(d,56832,56832,this,this.X),Q(d,56832,56832,this,this.bb));this.reset(!0)};function Va(a,b,c,d,f){a.o=void 0!==b?b:a.M;a.W=void 0!==c?c:a.N;a.c=a.o*a.W;a.A=a.s+a.c;a.K=void 0!==d?d:0;a.O=void 0!==f?f:c;a.D=Math.floor(a.U/a.o);a.H=Math.floor(a.V/a.O)}e.ca=function(){this.h.focus()};
|
||||
e.pa=function(a){this.m=a;600==this.m?(Va(this,this.M,this.N,3,25),1024==this.c&&this.G&&(this.g=this.A+this.c-1,Q(this.G,this.g,this.g,this,this.Ya))):(this.F("updated video model: "+this.m),Va(this,64,32));Wa(this);Ba(this)};e.$=function(a,b){if(a&&!this.u.I&&K(this)){if(this.u.I=!0,this.b=N(b,"keyboard"))this.b.L("canvas","keyDown",this.h),this.b.L("canvas","keyPress",this.h),this.b.L("canvas","keyUp",this.h)}else!a&&this.u.I&&(this.u.I=!1)};
|
||||
e.R=function(){this.i||(this.i=Math.floor(this.f.width/16));this.j||(this.j=Math.floor(this.f.height/16));D.prototype.R.call(this)};e.X=function(a){var b=this.G.X(a);this.G.a[a]=b&127|(Math.floor(Ja(this.G)/8333)&1?128:0)};e.bb=function(){};
|
||||
e.Ya=function(a,b){if(void 0!==b){this.pa(540);this.b&&this.b.pa(542);a=this.G;b=a.M;var c=[],d=Da(b,this.g,this.g,this,this.Ya);if(0<=d){c.push(b[d][0]);c.push(b[d][1]);b.splice(d,1);for(var f=65536,g=0,d=0;d<b.length;d++)f>b[d][0]&&(f=b[d][0]),g<b[d][1]&&(g=b[d][1]);c.push(f);c.push(g)}4==c.length&&(a.da=c[2],a.ea=c[3])}};function Wa(a){a.v=Array(a.c);for(var b=0;b<=a.c;b++)a.v[b]=-1}
|
||||
function Ba(a){var b=0;if(a.u.I)for(;b<a.c;){var c=a.a[a.s+b];if(a.v[b]!=c){var d=Math.floor(b/a.o);if(d>=a.K&&(d-=a.K,d<a.O)){var f=c*a.i;a.w.drawImage(a.f,f%a.f.width,Math.floor(f/a.f.width)*a.j,a.i,a.j,b%a.o*a.D,d*a.H,a.D,a.H)}a.v[b]=c}b++}}
|
||||
x(function(){for(var a=I(document,"c1pjs","video"),b=0;b<a.length;b++){var c=a[b],d=G(c),f=document.createElement("canvas");if(!f||!f.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer 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 Ua(d,f,h,g);g.onload=function(a){return function(){a.R()}}(f,d.charSet);g.src=d.charSet;H(f,c)}});
|
||||
function Xa(a){D.call(this,"C1PSerialPort",a);this.u.I=!1;this.j=a.demo;this.reset(!0)}q(Xa,D);e=Xa.prototype;e.reset=function(a){if(a||this.f!=Ya){this.g=-1;this.h=0;this.c="";if(this.j){a=1;if(this.Ba){var b=this.Ba.match(/\d+/);null!==b&&(a=parseInt(b[0],10))}this.c='10 PRINT "HELLO OSI #'+a+'"\n'}this.i=!0;this.f=Za}};e.start=function(){this.b&&this.j&&(W(this.b," C\n\n",3E3),setTimeout(function(a){return function(){a.f=$a;W(a.b,"LOAD\n")}}(this),12E3));this.j=!1};
|
||||
e.L=function(a,b,c){var d=this;switch(b){case "listSerial":return this.B[b]=c,!0;case "loadSerial":return this.B[b]=c,c.onclick=function(){d.B.listSerial&&v(d.B.listSerial.value,function(a,b,c){ab(d,a,b,c)})},!0;case "mountSerial":return!w("Mobi")&&window&&"FileReader"in window?(this.B[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){var b=a.currentTarget[1].files[0],c=new FileReader;c.onload=function(){ab(d,
|
||||
b.name,c.result.toString(),0)};c.readAsText(b);return!1}):c.parentNode.removeChild(c),!0}return!1};e.Y=function(a,b,c,d){this.a=a;this.m=b;this.s=c-b+1;this.o=this.m+this.s;if(this.G=d)Ca(d,b,c,this,this.X),Q(d,b,c,this,this.ab);this.R()};e.$=function(a,b){a&&!this.u.I&&(this.u.I=!0,this.J=b,this.b=N(b,"keyboard"))};
|
||||
function ab(a,b,c,d){if(c){a.h=0;a.c=c;a.i=!0;a.f=Za;if(-1!==b.indexOf(".json",b.length-5))try{d="";var f=eval("("+c+")").bytes;for(c=0;c<f.length;c++)d+=String.fromCharCode(f[c]);a.c=d;a.i=!1}catch(g){a.F('Error processing file "'+b+'": '+g.message);return}a.J&&a.b&&a.G.u.Z?(a.F("auto-loading "+b),a.G.ca(),"."!=a.c.charAt(0)?(a.f=$a,W(a.b,"NEW\nLOAD\n")):(a.f=Ya,a.J.reset(!0),W(a.b,"ML"))):a.F(b+" ready to load")}else a.F('Error loading file "'+b+'" ('+d+")")}
|
||||
e.X=function(a,b){void 0!==b&&(a&1?bb(this):this.c&&!this.h&&bb(this))};e.ab=function(){};function bb(a){if(void 0!==a.c){a.g=-1;if(a.h<a.c.length){var b=a.c.charCodeAt(a.h++)&255;a.i&&10==b&&(b=13);a.g=b}else a.c="",a.h=0,a.f==$a&&a.b&&W(a.b," \nRUN\n"),a.f=Za;for(b=a.m+0;b<a.o;b+=2)a.a[b]=0<=a.g?cb:db;for(b=a.m+1;b<a.o;b+=2)a.a[b]=0<=a.g?a.g:0}}var db=0,cb=1,Za=0,$a=1,Ya=2;x(function(){for(var a=I(document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new Xa(d);H(d,c)}});
|
||||
function eb(a){D.call(this,"C1PDiskController",a);this.u.I=!1;this.reset(!0)}q(eb,D);e=eb.prototype;e.reset=function(a){fb(this);this.b=-1;a&&(this.c=[],this.c[0]={ce:0,Ga:40,cb:!0,ia:20,aa:0,ha:-1,qa:[]})};
|
||||
function fb(a){a.s={C:64,read:function(){},update:function(a){return function(b){void 0!==b&&(this.C=b);a.i.C&4||X(a,0,this)}}(a)};a.f={C:255,read:function(){this.update()},update:function(a){return function(b){void 0===b?b=a.f.C:gb(a,b,a.h.C);b=(b|190)&-2;if(0<=a.b&&a.c[a.b].qa.length){var c=a.c[a.b];c.cb&&(b&=-33);c.aa||(b&=-3);10>=--c.ia&&(0<c.ia?(b&=-129,hb(a)):(c.ia=100,0<=a.b&&(a.c[a.b].ha=0,ib(a))))}this.C=b;a.i.C&4&&X(a,0,this)}}(a)};a.i={C:0,read:function(){},update:function(a){return function(b){void 0!==
|
||||
b&&(this.C=b&-193);X(a,1,this);a.f.update();a.s.update()}}(a)};a.v={C:255,read:function(){},update:function(a){return function(b){void 0!==b&&(this.C=b);a.j.C&4||X(a,2,this)}}(a)};a.h={C:255,read:function(){},update:function(a){return function(b){void 0===b?b=a.h.C:gb(a,a.f.C,b);if(0<=a.b&&a.b<a.c.length){var c=a.c[a.b];c.qa.length&&a.h.C&8&&!(b&8)&&(b&4?c.aa--:c.aa++,c.aa>=c.Ga&&(c.aa=c.Ga),0>c.aa&&(c.aa=0),c.ia=20,a.f.update(a.f.C|128),hb(a))}this.C=b;a.j.C&4&&X(a,2,this)}}(a)};a.j={C:0,read:function(){},
|
||||
update:function(a){return function(b){void 0!==b&&(this.C=b&-193);X(a,3,this);a.h.update();a.v.update()}}(a)};a.w={C:0,read:function(){},update:function(a){return function(b){void 0!==b&&(3==(b&3)&&(a.g.C=14),this.C=b);a.g.update()}}(a)};a.g={C:14,read:function(){},update:function(a){return function(b){void 0===b&&(b=a.g.C);b&=-2;0<=a.b&&0<=a.c[a.b].ha&&(b|=1);this.C=b;X(a,16,this)}}(a)};a.o={C:0,read:function(a){return function(){ib(a)}}(a),update:function(a){return function(b){void 0!==b&&(this.C=
|
||||
b);X(a,17,this)}}(a)};a.A={C:0,read:function(){},update:function(){return function(){}}(a)}}e.L=function(a,b,c){switch(b){case "listDisk":return this.B[b]=c,!0;case "loadDisk":return this.B[b]=c,c.onclick=function(a){return function(){if(a.B.listDisk){var b=a.B.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);a.F("loading "+ga(b)+"...");v(c,function(b,c,d){jb(a,b,c,d)})}}}(this),!0}return!1};
|
||||
e.Y=function(a,b,c,d){this.a=a;this.m=b;if(this.G=d)Ca(d,b,c,this,this.X),Q(d,b,c,this,this.Za);this.R()};e.$=function(a){a&&!this.u.I&&(this.u.I=!0)};
|
||||
function jb(a,b,c,d){if(d)a.F("disk load error ("+d+")");else{d=[];a.F("mounting "+b+"...");try{if(d=eval("("+c+")"),d.length)if(d[0].length){var f=d[0];if(void 0===f[0].trackNum)a.F("data error: "+f[0]);else if(a.c[0]){for(c=0;c<f.length;c++){var g,h=f[c],l=h.sectors;if(void 0===(g=h.trackNum)||void 0===l)throw Error("track "+c+" missing data");g!=c&&B("track "+g+" out of order (expected "+c+")");d=[];var k,n,m;if(g){kb(d,h,"trackSig");lb(d,h);Y(d,h,"trackType");for(var p=0;p<l.length;p++){k=l[p];
|
||||
n=k.sectorData;Y(d,k,"sectorSig");Y(d,k,"sectorNum");Y(d,k,"sectorPages");for(m=0;m<n.length;m++)d.push(n[m]);kb(d,k,"sectorEndSig")}}else for(k=l[0],n=k.sectorData,Y(d,h,"trackLoad",2),Y(d,k,"sectorPages"),m=0;m<n.length;m++)d.push(n[m]);f[g].Xa=d}a.c[0].qa=f;a.F("mount of "+b+" complete")}else a.F("no available drives")}else a.F("no tracks: "+b);else a.F("no data: "+b)}catch(sb){a.F("disk data error: "+sb.message)}}}
|
||||
function lb(a,b){b=b.trackNum;if(void 0===b)throw Error("missing bcd value: trackNum");a.push(Math.floor(b/10)<<4|b%10)}function Y(a,b,c,d){b=b[c];if(void 0===b)throw Error("missing binary value: "+c);2==d&&a.push(b>>8&255);a.push(b&255)}function kb(a,b,c){b=b[c];if(void 0===b)throw Error("missing signature: "+c);for(c=0;c<b.length;c++)a.push(b.charCodeAt(c))}
|
||||
function mb(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case 0:a=a.i.C&4?a.f:a.s;break;case 1:a=a.i;break;case 2:a=a.j.C&4?a.h:a.v;break;case 3:a=a.j;break;case 16:a=c?a.w:a.g;break;case 17:a=a.o;break;default:a=a.A}return a}e.X=function(a,b){void 0!==b&&mb(this,a-this.m,!1).read()};e.Za=function(a,b){void 0!==b&&(b=this.G.X(a),mb(this,a-this.m,!0).update(b))};function gb(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&32||(d|=2),a.f.C&64||(d|=1));a.b!=d&&(a.b=d,a.g.update())}
|
||||
function hb(a){0<=a.b&&(a.c[a.b].ha=-1,a.o.update(255),a.g.update())}function ib(a){var b;if(0<=a.b){b=a.c[a.b];var c=b.qa[b.aa];void 0!==c&&(0<=b.ha&&b.ha<c.Xa.length?(b.ia=100,b=c.Xa[b.ha++],a.o.update(b),a.g.update()):(b.ia=10,hb(a)))}}function X(a,b,c){a.G.a[b+a.m]=c.C}x(function(){for(var a=I(document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new eb(d);H(d,c)}});function Z(a,b){D.call(this,"C1PComputer",a);this.P=b}q(Z,D);
|
||||
Z.prototype.reset=function(a){var b=null,c;for(c in this.P)for(var d=0;d<this.P[c].length;d++){var f=this.P[c][d];f&&f.reset&&(f.reset(),"cpu"==c&&(b=f))}b&&(b.update(),a&&P(b))};Z.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()}};Z.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 f=this.P[c][d];f&&f.stop&&f.stop(a,b)}};
|
||||
Z.prototype.L=function(a,b,c){switch(b){case "reset":return this.B[b]=c,c.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function N(a,b){return a.P[b]?a.P[b][0]:null}function nb(a){var b=null,c;for(c in a.P)for(var d=0;d<a.P[c].length;d++){var f=a.P[c][d];if(f){if(!K(f)){K(f,function(a){return function(){nb(a)}}(a));return}"cpu"==c?b=f:f.$&&f.$(!0,a)}}a.R();a.F("C1Pjs v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>");b&&b.$(!0,a)}
|
||||
x(function(){for(var a=I(document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=G(c),f,g={},h,l=0,k=0,n=0;n<d.modules.length;n++){var m=d.modules[n];if(!n){if("cpu"!=m.type)break;l=m.start;k=m.end;h=Array(k+1-l);for(f=l;f<h.length;f++)h[f]=0}if(f=F(m.refID,d.id)){var p=m.type;void 0===g[p]&&(g[p]=[]);g[p].push(f);f.Y&&void 0!==m.start&&f.Y(h,m.start,m.end,g.cpu[0])}else{B('no component for <module refid="'+m.refID+'">');return}}if(!h){B('<module type="cpu"> definition must appear first in the <computer> specification');
|
||||
break}if(f=F("debugger",d.id))g["debugger"]=[f],f.Y&&f.Y(h,l,k,g.cpu[0]);l=new Z(d,g);if(k=F("panel",d.id))if(g.panel=[k],k.sa){f=d.id;d=void 0;g=[];f&&(f=0<(d=f.indexOf("."))?f.substr(0,d+1):"");for(d=0;d<E.length;d++)n=E[d],f&&n.id.indexOf(f)||g.push(n);d=g;for(g=0;g<d.length;g++)f=d[g],f!=k&&(f.ta=k.ta,f.F=k.F,f.sa=k.sa)}H(l,c);nb(l)}});var ob=0;function pb(a,b,c,d,f,g){f("Loading "+a+"...");v(a,function(h,l,k){k?(l||(l="unable to load "+a+" ("+k+")"),g(l,null)):qb(l,a,b,c,d,f,g)})}
|
||||
function qb(a,b,c,d,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(L[c]&&b&&(L[c][b]=a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,
|
||||
"$1C1Pjs$2"),a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1c1pjs$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(m){g=null,a=m.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?rb(a,g,l):l(a,null):h("no data"+(b?" for file: "+
|
||||
b:""),null)}
|
||||
function jb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");t(f,function(g,h,l){if(l||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(g=d[3])if(l=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=l[0],n,m=/( [a-z]+=)(['"])(.*?)\2/g;n=m.exec(g);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);l[0]!=k&&(h=h.replace(l[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,"");
|
||||
a=a.replace(d[0],h);jb(a,b,c)}})}else c(a,null)}
|
||||
function lb(a,b,c){function d(a){if(void 0===h){var b=g&&G(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ca(a))}function f(a){d("Error: "+a);l&&(--Z||A(!0));l=!1}var g,h,l=!0;Z++;J[a]={};try{if(g=document.getElementById(a)){var k;if("object"==typeof resources&&(k=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],m=document.createElement("style");m.type="text/css";m.styleSheet?m.styleSheet.cssText=k:m.appendChild(document.createTextNode(k));n.appendChild(m)}c||(c="/versions/c1pjs/1.34.0/components.xsl");
|
||||
k=function(h,k){k?hb(c,null,null,!1,d,function(h,l){l?(J[a]&&c&&(J[a][c]=h),d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--Z||A(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(h=new XSLTProcessor,h.importStylesheet(l),(l=h.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--Z||A(!0)):f("invalid machine element: "+a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):
|
||||
f(h)}):f(h)};"<"!=b.charAt(0)?hb(b,a,void 0,!0,d,k):ib(b,null,a,void 0,!1,d,k)}else f("missing machine element: "+a)}catch(p){f(p.message)}return l}window.embedC1P=function(a,b,c){A(!1);return lb(a,b,c)};window.findMachineComponent=function(a,b){return ka(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!H[a]){for(var c=!0,d=H,f=a,g=b.length,h=[],l=[],k="",n=null,m=0;m<g;m++){var p=b[m];if('"'==p||"'"==p)n&&p!=n?k+=p:(n?n=null:n=p,k&&(l.push(k),k=""));else{if(!n){if("\r"==p||"\n"==p)p=";";if(" "==p||"\t"==p||";"==p){k&&(l.push(k),k="");";"==p&&l.length&&(h.push(l),l=[]);continue}}k+=p}}k&&l.push(k);l.length&&h.push(l);d[f]=h;la(a)||(c=!1)}return c};window.enableEvents=A;window.sendEvent=ha;})();
|
||||
function rb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");v(f,function(g,h,l){if(l||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(g=d[3])if(l=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=l[0],n,m=/( [a-z]+=)(['"])(.*?)\2/g;n=m.exec(g);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);l[0]!=k&&(h=h.replace(l[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,"");
|
||||
a=a.replace(d[0],h);rb(a,b,c)}})}else c(a,null)}
|
||||
function tb(a,b,c){function d(a){if(void 0===h){var b=g&&I(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ia(a))}function f(a){d("Error: "+a);l&&(--ob||C(!0));l=!1}var g,h,l=!0;ob++;L[a]={};try{if(g=document.getElementById(a)){var k;if("object"==typeof resources&&(k=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],m=document.createElement("style");m.type="text/css";m.styleSheet?m.styleSheet.cssText=k:m.appendChild(document.createTextNode(k));n.appendChild(m)}c||(c=
|
||||
"/versions/c1pjs/1.34.0/components.xsl");k=function(h,k){k?pb(c,null,null,!1,d,function(h,l){l?(L[a]&&c&&(L[a][c]=h),d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--ob||C(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(h=new XSLTProcessor,h.importStylesheet(l),(l=h.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--ob||C(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(h)}):f(h)};"<"!=b.charAt(0)?pb(b,a,void 0,!0,d,k):qb(b,null,a,void 0,!1,d,k)}else f("missing machine element: "+a)}catch(p){f(p.message)}return l}window.embedC1P=function(a,b,c){C(!1);return tb(a,b,c)};window.findMachineComponent=function(a,b){return qa(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!J[a]){for(var c=!0,d=J,f=a,g=b.length,h=[],l=[],k="",n=null,m=0;m<g;m++){var p=b[m];if('"'==p||"'"==p)n&&p!=n?k+=p:(n?n=null:n=p,k&&(l.push(k),k=""));else{if(!n){if("\r"==p||"\n"==p)p=";";if(" "==p||"\t"==p||";"==p){k&&(l.push(k),k="");";"==p&&l.length&&(h.push(l),l=[]);continue}}k+=p}}k&&l.push(k);l.length&&h.push(l);d[f]=h;ra(a)||(c=!1)}return c};window.enableEvents=C;window.sendEvent=na;})();
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -29,23 +29,23 @@
|
|||
http://pcjs.org/modules/pdp10/lib/debugger.js (C) Jeff Parsons 2012-2017
|
||||
*/
|
||||
var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ea=0;function da(a){return"jscomp_symbol_"+(a||"")+ea++}
|
||||
function fa(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ga(this)}});fa=function(){}}function ga(a){var b=0;return ka(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ka(a){fa();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
|
||||
function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function la(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
|
||||
la("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});la("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
|
||||
var ma=Math.pow(2,36),na=-Math.pow(2,35),q={Xb:0,ob:1,Zb:2,$b:3,ac:4,bc:5,cc:6,dc:7,Za:8,ec:9,pb:10,fc:11,gc:12,qb:13,hc:14,ic:15,jc:16,kc:17,lc:18,mc:19,nc:20,oc:21,pc:22,qc:23,rc:24,sc:25,tc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ya:65,Wb:66,Yb:67,uc:68,E:69,vc:70,wc:71,xc:72,yc:73,zc:74,Ac:75,Bc:76,Cc:77,Dc:78,Ec:79,Fc:80,Q:81,
|
||||
function fa(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ga(this)}});fa=function(){}}function ga(a){var b=0;return ha(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ha(a){fa();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
|
||||
function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ka(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
|
||||
ka("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ka("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
|
||||
var la=Math.pow(2,36),ma=-Math.pow(2,35),q={Xb:0,ob:1,Zb:2,$b:3,ac:4,bc:5,cc:6,dc:7,Za:8,ec:9,pb:10,fc:11,gc:12,qb:13,hc:14,ic:15,jc:16,kc:17,lc:18,mc:19,nc:20,oc:21,pc:22,qc:23,rc:24,sc:25,tc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ya:65,Wb:66,Yb:67,uc:68,E:69,vc:70,wc:71,xc:72,yc:73,zc:74,Ac:75,Bc:76,Cc:77,Dc:78,Ec:79,Fc:80,Q:81,
|
||||
Gc:82,Hc:83,Ic:84,Jc:85,Kc:86,Lc:87,Mc:88,Nc:89,ub:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Oc:97,Pc:98,Qc:99,d:100,e:101,Rc:102,Sc:103,Tc:104,Uc:105,Vc:106,k:107,Wc:108,Xc:109,n:110,Yc:111,p:112,q:113,r:114,Zc:115,t:116,ad:117,bd:118,cd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,rb:127};
|
||||
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.cb=b.comment;this.tb=b;this.exports={};this.G=this.bindings={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.j={ready:!1,Fa:!1,Ta:!1,V:!1,error:!1};this.Ma=null;this.j.error=!1;this.X=c||0;this.A=this.g=this.D=this.C=this.ma=null;u.push(this)}function oa(a,b,c){va[a]&&b&&(va[a][b]=c)}function wa(){return Date.now()||+new Date}
|
||||
function v(a){window&&window.alert(a)}function xa(a){var b=!1;window&&(b=window.confirm(a));return b}function w(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}function ya(a){if(void 0!==a){var b;for(b=0;b<u.length;b++)if(u[b].id===a)return u[b]}return null}
|
||||
function za(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<u.length;d++)if(c)c==u[d]&&(c=null);else if(!(a!=u[d].type||b&&u[d].id.indexOf(b)))return u[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){v(c.message+" ("+a+")")}return b}
|
||||
function Aa(a,b){var c=B;b=C(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,g=0;g<e.length;g++){var f=e[g];if(1===f.nodeType){var h=f.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=z(f))&&h.binding&&a.ga(h.type,h.binding,f,h.value),m=k.length}}}}
|
||||
function C(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}
|
||||
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.cb=b.comment;this.tb=b;this.exports={};this.G=this.bindings={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.j={ready:!1,Fa:!1,Ta:!1,V:!1,error:!1};this.Ma=null;this.j.error=!1;this.X=c||0;this.A=this.g=this.D=this.C=this.ma=null;u.push(this)}function na(a,b,c){oa[a]&&b&&(oa[a][b]=c)}function va(){return Date.now()||+new Date}
|
||||
function v(a){window&&window.alert(a)}function wa(a){var b=!1;window&&(b=window.confirm(a));return b}function xa(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}function ya(a){if(void 0!==a){var b;for(b=0;b<u.length;b++)if(u[b].id===a)return u[b]}return null}
|
||||
function za(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<u.length;d++)if(c)c==u[d]&&(c=null);else if(!(a!=u[d].type||b&&u[d].id.indexOf(b)))return u[d]}return null}function w(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){v(c.message+" ("+a+")")}return b}
|
||||
function Aa(a,b){var c=A;b=B(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,g=0;g<e.length;g++){var f=e[g];if(1===f.nodeType){var h=f.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=w(f))&&h.binding&&a.ga(h.type,h.binding,f,h.value),m=k.length}}}}
|
||||
function B(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}
|
||||
function Ba(a){for(var b=!0,c=Ca[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],g=null;0<=Da.indexOf(e)&&(g=function(){return function(){Ba(a)}}());var f=Ea[e];if(f)if(!g)b=f(d[1],d[2],d[3]);else{if(!f(g,d[1],d[2],d[3]))break}else{var b=!1,h=za(d[1],a);if(h)if(f=Fa[e])b=f(h,d[2],d[3]);else{var k=h.exports;if(k&&(f=k[e]))if(b=!0,!g)b=f.call(h,d[2],d[3]);else if(!f.call(h,g,d[2],d[3]))break}}if(!b){v("Script error: "+e+(f?" failed":" unrecognized"));break}}c&&!c.length&&delete Ca[a];return b}l=t.prototype;
|
||||
l.toString=function(){return this.name?this.name:this.id||this.type};
|
||||
l.ga=function(a,b,c){switch(b){case "clear":return this.G[b]||(this.G[b]=c,c.onclick=function(a){return function(){a.G.print&&(a.G.print.value="")}}(this)),!0;case "print":return this.G[b]||(this.ma=this.G[b]=c,c.value="",this.f=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}}(c),this.ca=function(a){this.f(a,this.Ka)}),!0;default:return!1}};l.log=function(){};l.f=function(){};
|
||||
l.status=function(a){this.f(this.Ka+": "+a)};l.ca=function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)};function Ga(a,b){a.j.error=!0;a.ca(b)}function Oa(a){return a.j.error?(a.f(a.toString()+" error"),!0):!1}function Pa(a,b){b&&(a.j.ready?b():a.Ma=b);return a.j.ready}function D(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.Ma;a.Ma=null;b&&b()}}function Qa(a,b){a.j.Fa&&(b?a.j.Ta=!0:void 0===b&&a.f(a.toString()+" busy"));return a.j.Fa}
|
||||
l.status=function(a){this.f(this.Ka+": "+a)};l.ca=function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)};function Ga(a,b){a.j.error=!0;a.ca(b)}function Oa(a){return a.j.error?(a.f(a.toString()+" error"),!0):!1}function Pa(a,b){b&&(a.j.ready?b():a.Ma=b);return a.j.ready}function C(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.Ma;a.Ma=null;b&&b()}}function Qa(a,b){a.j.Fa&&(b?a.j.Ta=!0:void 0===b&&a.f(a.toString()+" busy"));return a.j.Fa}
|
||||
function Ra(a,b){if(a.j.Ta)return a.j.Fa=!1,a.j.Ta=!1;if(a.j.error)return a.f(a.toString()+" error"),!1;a.j.Fa=b;return a.j.Fa}l.na=function(){return this.j.V=!0};l.fa=function(a,b){b&&(this.j.V=!1);return!0};function Sa(a,b){if(a.A){a===a.A?b|=0:b=b||a.X;var c=a.A.X&b;return!!b&&c===b||!!(c&a.A.ib)}return!1}function Ta(a,b,c,d){a.A&&(!0===c||Sa(a,c|0))&&a.A.message(b,d)}
|
||||
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
||||
var va=window?window.PCjs.Machines:{},u=window?window.PCjs.Components:[],Ca=window?window.PCjs.Commands:{},Da=["hold","sleep","wait"],Ea={alert:function(a){v(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Fa={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
|
||||
var oa=window?window.PCjs.Machines:{},u=window?window.PCjs.Components:[],Ca=window?window.PCjs.Commands:{},Da=["hold","sleep","wait"],Ea={alert:function(a){v(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Fa={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
|
||||
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
|
||||
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
|
||||
function Ua(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var g,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
|
||||
|
|
@ -61,50 +61,50 @@ function ub(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return
|
|||
function wb(a){if(!xb){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,g=/([^&=]+)=?([^&]*)/g;d=g.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}xb=c}return xb[a]}function yb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function zb(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}}function Ab(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Bb(a){Cb.init.push(a)}
|
||||
function Db(a){if(Eb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){v(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Fb(a){!Eb&&a?(Eb=!0,Gb&&Hb("init"),Ib&&Hb("show")):Eb=a}function Hb(a){Cb[a]&&Db(Cb[a])}var xb=null,Cb={init:[],show:[],exit:[]},Gb=!1,Ib=!1,Eb=!0,sb=null;Ab("onload",function(){Gb=!0;Db(Cb.init)});Ab("onpageshow",function(){Ib=!0;Db(Cb.show)});Ab(vb("Opera")||vb("iOS")?"onunload":"onbeforeunload",function(){Db(Cb.exit)});
|
||||
var B="pdp10",Jb="PDPjs",Kb=Math.pow(2,18),Lb=Math.pow(2,18)-1,Mb=Math.pow(2,36),F=Math.pow(2,18),Nb=Math.pow(2,35)-1,Ob=Math.pow(2,21),Pb=Math.pow(2,26),Wb=Math.pow(2,23),B="pdp10",Jb="PDPjs",G={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
|
||||
function Xb(a,b){t.call(this,"Panel",a,512);this.J=this.L=0;this.T=b;this.i=this.I=this.u=this.v=0;this.M=this.N=-1;this.O=this.R=this.F=!1;this.S=Yb;this.B={};this.b={START:[1,1,!0,!1,this.Hb],STEP:[1,1,!1,!1,this.Ib],ENABLE:[1,1,!1,!1,this.Cb],CONT:[1,1,!0,!1,this.Ab],DEP:[0,0,!0,!1,this.Bb],EXAM:[1,1,!0,!1,this.Db],LOAD:[1,1,!0,!1,this.Fb],TEST:[0,0,!0,!1,this.Eb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Gb,a];this.A=this.g=this.D=this.C=null;this.exports={hold:this.yb,toggle:this.Rb,reset:this.Nb,
|
||||
set:this.Qb};D(this)}p(Xb,t);l=Xb.prototype;l.reset=function(a){this.stop();a&&Zb(this,this.v=0)};
|
||||
l.ga=function(a,b,c,d){if(this.C&&this.C.ga(a,b,c,d)||this.g&&this.g.ga(a,b,c,d)||this.A&&this.A.ga(a,b,c,d))return!0;switch(b){case "PC":return this.G[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.G[b]=c,this.B[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.G[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){$b(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){ac(a,b)}}(this,b),a.ontouchstart=
|
||||
function(a,b){return function(c){$b(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){ac(a,b)}}(this,b),!0):t.prototype.ga.call(this,a,b,c,d)}};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;bc(this);cc(this)};l.na=function(a,b){if(!b)if(this.T&&dc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new J(this);a.set(0,[this.i,this.v,this.u]);return a.data()};
|
||||
l.restore=function(a){if(a=a[0])ec(this,this.i=a[0]),Zb(this,this.v=a[1]),fc(this,a[2]);return!0};l.Nb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}cc(this);return!0};function gc(a,b,c){if(a=a.G[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function bc(a,b){for(var c in a.B)gc(a,c,null!=b?b:a.B[c])}function hc(a,b,c){if(a=a.G[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function cc(a){for(var b in a.b)hc(a,b,a.b[b][1])}
|
||||
l.yb=function(a,b,c){if($b(this,b)){if(c){var d=this;setTimeout(function(){ac(d,b);a&&a()},+c);return!1}ac(this,b)}return!0};l.Qb=function(a,b){if("SR"==a)return fc(this,Ua(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,hc(this,a,c[1]),!0):!1};l.Rb=function(a){return $b(this,a)?(ac(this,a),!0):!1};function $b(a,b){var c=a.b[b];return c?(hc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=ic&&(a.O=b==jc,a.R=b==kc),!0):!1}
|
||||
function ac(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(hc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Hb=function(a){a||this.g.j.K||(this.g.u=this.i%Kb,this.b[lc]&&this.b[lc][1]&&mc(this.g))};l.Ib=function(){};l.Cb=function(a){a||this.g.W()};
|
||||
l.Ab=function(a){if(!a&&!this.g.j.K)if(this.b[lc]&&this.b[lc][1])mc(this.g);else{if((a=this.A)&&!Qa(a,!0))Ra(a,!0),nc(a,0,null),Ra(a,!1);else try{var b=this.g.Ja(1);0<b&&(oc(this.g,b),pc(this.g,b,!0),qc(this.g,b))}catch(c){"number"!=typeof c&&Ga(this.g,c.stack||c.message)}this.stop();this.C&&K(this.C)}};l.Bb=function(a){a&&!this.g.j.K&&(this.O&&rc(this),a=Zb(this,this.v=this.u),this.S==Yb?sc(this.D,this.i,a):this.g.P(this.i,a))};
|
||||
l.Db=function(a){if(!a&&!this.g.j.K){var b;this.R&&rc(this);this.S==Yb?b=tc(this.D,this.i):b=this.g.H(this.i);Zb(this,this.v=b)}};l.Fb=function(a){a||this.g.j.K||ec(this,this.u)};l.Eb=function(a){a?(this.F=!0,bc(this,!0)):(this.F=!1,bc(this),fc(this,0))};l.Gb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function rc(a){var b=1,c=a.D.u;a.b[ic]&&a.b[ic][1]||(b=-b);ec(a,a.i&~c|a.i+b&c)}
|
||||
function ec(a,b){a.i=b&a.D.u;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.B[e]=g;d.F||gc(d,e,g)}}}function Zb(a,b){a.I=b%Mb;if(a.N!==a.I){a.N=a.I;b=a.N;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.B[e]=g;d.F||gc(d,e,g)}}return a.I}function fc(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;cc(a);return!0}l.stop=function(){ec(this,this.g.u)};
|
||||
function dc(){for(var a=C(document,B,"panel"),b=0;b<a.length;b++){var c=a[b],d=z(c),e=ya(d.id);e||(e=new Xb(d,!0));Aa(e,c)}}var Yb=7,jc="DEP",lc="ENABLE",kc="EXAM",ic="STEP";Bb(dc);function uc(a,b,c){t.call(this,"Bus",a,16);this.g=b;this.A=c;this.I=+a.busWidth||18;this.F=1<<this.I;this.u=this.F-1;this.i=Math.log2(16384);this.B=this.F/16384|0;this.v=0;this.b=[];a=new vc(this);wc(a,this.A);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;D(this)}p(uc,t);l=uc.prototype;l.reset=function(){};
|
||||
l.na=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new J(this);a.set(0,xc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,g=Array(4096),f=0;f<d.length-1;)for(var h=d[f++],k=d[f++];h--;)g[e++]=k;d=g}e=this.b[c];if(!e||!e.restore(d)){v("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function yc(a,b,c,d){for(var e=b,g=c,f=e>>>a.i;0<g&&f<a.b.length;){var h=a.b[f],k=16384*f,m=16384-(e-k);m>g&&(m=g);if(h&&h.size){if(h.type==d){if(e+g<=h.w)return h.Ha+=h.w-e,h.w=e,!0;if(e>=h.w+h.Ha){m=h.size-(e-k);m>g&&(m=g);h.Ha=e-h.w+m;e=k+16384;g-=m;f++;continue}}return zc(Ac,e,g)}e=new vc(a,e,m,16384,d);wc(e,a.A,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Bc[d]+" at "+Wa(b)),!0):zc(Cc,b,c)}
|
||||
function tc(a,b){var c=a.b[(b&a.u)>>>a.i];a.v++;b=c.G(b&16383,b);a.v--;return b}function sc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.v++;d.D(c,b&16383,b);a.v--}function xc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.Va||e.vb){c[b++]=d;var g=b++;if(e=e.save()){for(var f=0,h=0,k=[];f<e.length;){for(var m=e[f],n=f+1;n<e.length&&e[n]===m;)n++;k[h++]=n-f;k[h++]=m;f=n}k.length<e.length&&(e=k)}c[g]=e}}return c}
|
||||
l.xb=function(a){this.v||(this.A&&Sa(this.A,4)&&Ta(this.A,"memory fault on "+L(this.A,a),!0,!0),this.g.W())};function zc(a,b,c){v("Memory block error ("+a+": "+E(b)+","+E(c)+")");return!1}var Ac=1,Cc=2;function Dc(a){t.call(this,"Device",a,256)}p(Dc,t);l=Dc.prototype;l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.A=d;D(this)};l.na=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new J(this)).data()};
|
||||
l.restore=function(){return!0};Bb(function(){for(var a=C(document,B,"device"),b=0;b<a.length;b++){var c,d=a[b];c=z(d);switch(c.type){case "default":c=new Dc(c),Aa(c,d)}}});function vc(a,b,c,d,e){this.u=a;this.id=Ec+=2;this.w=b;this.Ha=c;this.size=d||0;this.type=e||Fc;this.i=e==Gc;this.b=null;this.H=this.G=this.Xa;this.P=this.D=this.Ia;this.g=this.A=0;wc(this);this.Va=this.vb=!1;if(this.size){a=this.C=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Hc(this,Ic)}else Hc(this)}l=vc.prototype;l.save=function(){return this.C};
|
||||
l.restore=function(a){return a&&this.size==a.length?(this.C=a,this.Va=!0):!1};function Hc(a,b){b||(b=Jc);ed(a,b,void 0);fd(a,b,void 0)}function ed(a,b,c){c&&a.g||(a.H=b[0]||a.Xa);if(c||void 0===c)a.G=b[0]||a.Xa}function fd(a,b,c){c&&a.A||(a.P=!a.i&&b[1]||a.Ia);if(c||void 0===c)a.D=b[1]||a.Ia}l.Ba=function(a,b){b?this.A++||fd(this,gd,!1):this.g++||ed(this,gd,!1)};function hd(a,b){b?--a.A||(a.P=a.i?a.Ia:a.D):--a.g||(a.H=a.G)}
|
||||
function wc(a,b,c){a.b=b;a.g=a.A=0;c&&((a.g=c.g)&&ed(a,gd,!1),(a.A=c.A)&&fd(a,gd,!1))}l.Xa=function(a,b){this.b&&Sa(this.b,32)&&Ta(this.b,"attempt to read invalid address "+L(this.b,b),!0);this.u.xb(b);return-1};l.Ia=function(a,b,c){this.b&&Sa(this.b,32)&&Ta(this.b,"attempt to write "+L(this.b,a)+" to invalid addresses "+L(this.b,c),!0)};l.Lb=function(a){return this.C[a]};l.Ub=function(a,b){this.C[b]!=a&&(this.C[b]=a,this.Va=!0)};
|
||||
l.Jb=function(a,b){if(this.b&&null!=this.w){var c=this.b;id(c,this.w+a,2,c.L)&&c.W(!1)}return this.G(a,b)};l.Tb=function(a,b,c){if(this.b&&null!=this.w){var d=this.b;id(d,this.w+b,2,d.I)&&d.W(!1)}this.i?this.Ia(a,0,c):this.D(a,b,c)};var Fc=0,Gc=2,Bc=["NONE","RAM","ROM"],Ec=0,Jc=[],Ic=[vc.prototype.Lb,vc.prototype.Ub],gd=[vc.prototype.Jb,vc.prototype.Tb];
|
||||
var A="pdp10",Jb="PDPjs",Kb=Math.pow(2,18),Lb=Math.pow(2,18)-1,Mb=Math.pow(2,36),F=Math.pow(2,18),Nb=Math.pow(2,35)-1,Ob=Math.pow(2,21),Pb=Math.pow(2,26),Xb=Math.pow(2,23),A="pdp10",Jb="PDPjs",G={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
|
||||
function Yb(a,b){t.call(this,"Panel",a,512);this.J=this.L=0;this.T=b;this.i=this.I=this.u=this.v=0;this.M=this.N=-1;this.O=this.R=this.F=!1;this.S=Zb;this.B={};this.b={START:[1,1,!0,!1,this.Hb],STEP:[1,1,!1,!1,this.Ib],ENABLE:[1,1,!1,!1,this.Cb],CONT:[1,1,!0,!1,this.Ab],DEP:[0,0,!0,!1,this.Bb],EXAM:[1,1,!0,!1,this.Db],LOAD:[1,1,!0,!1,this.Fb],TEST:[0,0,!0,!1,this.Eb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Gb,a];this.A=this.g=this.D=this.C=null;this.exports={hold:this.yb,toggle:this.Rb,reset:this.Nb,
|
||||
set:this.Qb};C(this)}p(Yb,t);l=Yb.prototype;l.reset=function(a){this.stop();a&&$b(this,this.v=0)};
|
||||
l.ga=function(a,b,c,d){if(this.C&&this.C.ga(a,b,c,d)||this.g&&this.g.ga(a,b,c,d)||this.A&&this.A.ga(a,b,c,d))return!0;switch(b){case "PC":return this.G[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.G[b]=c,this.B[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.G[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){ac(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){bc(a,b)}}(this,b),a.ontouchstart=
|
||||
function(a,b){return function(c){ac(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){bc(a,b)}}(this,b),!0):t.prototype.ga.call(this,a,b,c,d)}};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;cc(this);dc(this)};l.na=function(a,b){if(!b)if(this.T&&ec(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new H(this);a.set(0,[this.i,this.v,this.u]);return a.data()};
|
||||
l.restore=function(a){if(a=a[0])fc(this,this.i=a[0]),$b(this,this.v=a[1]),gc(this,a[2]);return!0};l.Nb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}dc(this);return!0};function hc(a,b,c){if(a=a.G[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function cc(a,b){for(var c in a.B)hc(a,c,null!=b?b:a.B[c])}function ic(a,b,c){if(a=a.G[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function dc(a){for(var b in a.b)ic(a,b,a.b[b][1])}
|
||||
l.yb=function(a,b,c){if(ac(this,b)){if(c){var d=this;setTimeout(function(){bc(d,b);a&&a()},+c);return!1}bc(this,b)}return!0};l.Qb=function(a,b){if("SR"==a)return gc(this,Ua(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,ic(this,a,c[1]),!0):!1};l.Rb=function(a){return ac(this,a)?(bc(this,a),!0):!1};function ac(a,b){var c=a.b[b];return c?(ic(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=jc&&(a.O=b==kc,a.R=b==lc),!0):!1}
|
||||
function bc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(ic(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Hb=function(a){a||this.g.j.K||(this.g.u=this.i%Kb,this.b[mc]&&this.b[mc][1]&&nc(this.g))};l.Ib=function(){};l.Cb=function(a){a||this.g.W()};
|
||||
l.Ab=function(a){if(!a&&!this.g.j.K)if(this.b[mc]&&this.b[mc][1])nc(this.g);else{if((a=this.A)&&!Qa(a,!0))Ra(a,!0),oc(a,0,null),Ra(a,!1);else try{var b=this.g.Ja(1);0<b&&(pc(this.g,b),qc(this.g,b,!0),rc(this.g,b))}catch(c){"number"!=typeof c&&Ga(this.g,c.stack||c.message)}this.stop();this.C&&J(this.C)}};l.Bb=function(a){a&&!this.g.j.K&&(this.O&&sc(this),a=$b(this,this.v=this.u),this.S==Zb?tc(this.D,this.i,a):this.g.P(this.i,a))};
|
||||
l.Db=function(a){if(!a&&!this.g.j.K){var b;this.R&&sc(this);this.S==Zb?b=uc(this.D,this.i):b=this.g.H(this.i);$b(this,this.v=b)}};l.Fb=function(a){a||this.g.j.K||fc(this,this.u)};l.Eb=function(a){a?(this.F=!0,cc(this,!0)):(this.F=!1,cc(this),gc(this,0))};l.Gb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function sc(a){var b=1,c=a.D.u;a.b[jc]&&a.b[jc][1]||(b=-b);fc(a,a.i&~c|a.i+b&c)}
|
||||
function fc(a,b){a.i=b&a.D.u;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.B[e]=g;d.F||hc(d,e,g)}}}function $b(a,b){a.I=b%Mb;if(a.N!==a.I){a.N=a.I;b=a.N;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.B[e]=g;d.F||hc(d,e,g)}}return a.I}function gc(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;dc(a);return!0}l.stop=function(){fc(this,this.g.u)};
|
||||
function ec(){for(var a=B(document,A,"panel"),b=0;b<a.length;b++){var c=a[b],d=w(c),e=ya(d.id);e||(e=new Yb(d,!0));Aa(e,c)}}var Zb=7,kc="DEP",mc="ENABLE",lc="EXAM",jc="STEP";Bb(ec);function vc(a,b,c){t.call(this,"Bus",a,16);this.g=b;this.A=c;this.I=+a.busWidth||18;this.F=1<<this.I;this.u=this.F-1;this.i=Math.log2(16384);this.B=this.F/16384|0;this.v=0;this.b=[];a=new wc(this);xc(a,this.A);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;C(this)}p(vc,t);l=vc.prototype;l.reset=function(){};
|
||||
l.na=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new H(this);a.set(0,yc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,g=Array(4096),f=0;f<d.length-1;)for(var h=d[f++],k=d[f++];h--;)g[e++]=k;d=g}e=this.b[c];if(!e||!e.restore(d)){v("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function zc(a,b,c,d){for(var e=b,g=c,f=e>>>a.i;0<g&&f<a.b.length;){var h=a.b[f],k=16384*f,m=16384-(e-k);m>g&&(m=g);if(h&&h.size){if(h.type==d){if(e+g<=h.w)return h.Ha+=h.w-e,h.w=e,!0;if(e>=h.w+h.Ha){m=h.size-(e-k);m>g&&(m=g);h.Ha=e-h.w+m;e=k+16384;g-=m;f++;continue}}return Ac(Bc,e,g)}e=new wc(a,e,m,16384,d);xc(e,a.A,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Cc[d]+" at "+Wa(b)),!0):Ac(Dc,b,c)}
|
||||
function uc(a,b){var c=a.b[(b&a.u)>>>a.i];a.v++;b=c.G(b&16383,b);a.v--;return b}function tc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.v++;d.D(c,b&16383,b);a.v--}function yc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.Va||e.vb){c[b++]=d;var g=b++;if(e=e.save()){for(var f=0,h=0,k=[];f<e.length;){for(var m=e[f],n=f+1;n<e.length&&e[n]===m;)n++;k[h++]=n-f;k[h++]=m;f=n}k.length<e.length&&(e=k)}c[g]=e}}return c}
|
||||
l.xb=function(a){this.v||(this.A&&Sa(this.A,4)&&Ta(this.A,"memory fault on "+K(this.A,a),!0,!0),this.g.W())};function Ac(a,b,c){v("Memory block error ("+a+": "+E(b)+","+E(c)+")");return!1}var Bc=1,Dc=2;function Ec(a){t.call(this,"Device",a,256)}p(Ec,t);l=Ec.prototype;l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.A=d;C(this)};l.na=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new H(this)).data()};
|
||||
l.restore=function(){return!0};Bb(function(){for(var a=B(document,A,"device"),b=0;b<a.length;b++){var c,d=a[b];c=w(d);switch(c.type){case "default":c=new Ec(c),Aa(c,d)}}});function wc(a,b,c,d,e){this.u=a;this.id=Fc+=2;this.w=b;this.Ha=c;this.size=d||0;this.type=e||Gc;this.i=e==Hc;this.b=null;this.H=this.G=this.Xa;this.P=this.D=this.Ia;this.g=this.A=0;xc(this);this.Va=this.vb=!1;if(this.size){a=this.C=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Ic(this,Jc)}else Ic(this)}l=wc.prototype;l.save=function(){return this.C};
|
||||
l.restore=function(a){return a&&this.size==a.length?(this.C=a,this.Va=!0):!1};function Ic(a,b){b||(b=Kc);ed(a,b,void 0);fd(a,b,void 0)}function ed(a,b,c){c&&a.g||(a.H=b[0]||a.Xa);if(c||void 0===c)a.G=b[0]||a.Xa}function fd(a,b,c){c&&a.A||(a.P=!a.i&&b[1]||a.Ia);if(c||void 0===c)a.D=b[1]||a.Ia}l.Ba=function(a,b){b?this.A++||fd(this,gd,!1):this.g++||ed(this,gd,!1)};function hd(a,b){b?--a.A||(a.P=a.i?a.Ia:a.D):--a.g||(a.H=a.G)}
|
||||
function xc(a,b,c){a.b=b;a.g=a.A=0;c&&((a.g=c.g)&&ed(a,gd,!1),(a.A=c.A)&&fd(a,gd,!1))}l.Xa=function(a,b){this.b&&Sa(this.b,32)&&Ta(this.b,"attempt to read invalid address "+K(this.b,b),!0);this.u.xb(b);return-1};l.Ia=function(a,b,c){this.b&&Sa(this.b,32)&&Ta(this.b,"attempt to write "+K(this.b,a)+" to invalid addresses "+K(this.b,c),!0)};l.Lb=function(a){return this.C[a]};l.Ub=function(a,b){this.C[b]!=a&&(this.C[b]=a,this.Va=!0)};
|
||||
l.Jb=function(a,b){if(this.b&&null!=this.w){var c=this.b;id(c,this.w+a,2,c.L)&&c.W(!1)}return this.G(a,b)};l.Tb=function(a,b,c){if(this.b&&null!=this.w){var d=this.b;id(d,this.w+b,2,d.I)&&d.W(!1)}this.i?this.Ia(a,0,c):this.D(a,b,c)};var Gc=0,Hc=2,Cc=["NONE","RAM","ROM"],Fc=0,Kc=[],Jc=[wc.prototype.Lb,wc.prototype.Ub],gd=[wc.prototype.Jb,wc.prototype.Tb];
|
||||
function jd(a,b){t.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Ca=0;this.Ra=b;this.T=c;this.Da=Math.round(this.Ra/1E4)/100;this.S=this.Da*this.T;this.Qa=this.ua=this.aa=this.ya=0;this.j.K=this.j.Pa=!1;this.j.Z=a.autoStart;"string"==typeof this.j.Z&&(this.j.Z="true"==this.j.Z);this.j.Ea=!1;this.sa=this.ha=0;this.ta=+a.csStart;this.da=+a.csInterval;this.ia=+a.csStop;this.I=[];this.fb=this.Ob.bind(this);this.N=this.F=this.L=this.M=this.B=this.ra=this.J=this.ja=this.Sa=this.R=0;this.xa=
|
||||
null;D(this)}p(jd,t);l=jd.prototype;l.va=function(a,b,c,d){this.C=a;this.D=b;this.A=d;this.xa=a.u;for(a=0;a<kd.length;a++)(b=this.G[kd[a]])&&this.C.ga(null,kd[a],b);D(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
null;C(this)}p(jd,t);l=jd.prototype;l.va=function(a,b,c,d){this.C=a;this.D=b;this.A=d;this.xa=a.u;for(a=0;a<kd.length;a++)(b=this.G[kd[a]])&&this.C.ga(null,kd[a],b);C(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.na=function(a,b){var c=ld(this.C,"autoStart");null!=c?this.j.Z="true"==c?!0:"false"==c?!1:!!c:null==this.j.Z&&(this.j.Z=!this.A&&void 0===this.G.run);if(!b){if(a){md(this);if(!this.restore(a))return!1;nd(this)}else this.reset();this.A?(a=this.A,b=this.j.Z,a.ya=!0,a.f("Type ? for help with PDPjs Debugger commands"),od(a),b||pd(a),a.ta&&(b=a.ta,a.ta=null,qd(a,b))):this.status("No debugger detected");this.j.Z||this.f("CPU will not be auto-started "+(this.xa?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
l.fa=function(a){return a?this.save():!0};l.Z=function(){return this.j.K?!0:this.j.Z?(mc(this),!0):!1};l.lb=function(){return 0};function nd(a){void 0===a.ta&&(a.ta=0);void 0===a.da&&(a.da=-1);void 0===a.ia&&(a.ia=-1);a.j.Ea=0<=a.ta&&0<a.da;a.j.Ea&&(a.sa=0,a.ha=a.ta-a.N)}function qc(a,b){if(a.j.Ea){var c=!1;a.sa=a.sa+a.lb()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.da,c=!0);0<=a.ia&&a.ia<=rd(a)&&(a.da=a.ia=-1,nd(a),a.W(),c=!0);c&&a.f(rd(a)+" cycles: checksum="+E(a.sa))}}
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.G[b]=c,!0;case "run":return this.G[b]=c,c.onclick=function(){var a;if(a=d.C)if(a=d.C,a.j.V)a=!0;else{var b=null,c,h=w(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.V);c++);c==h.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.Ma?" (waiting for notification)":""))+".");a=!1}a&&(d.j.K?d.W():mc(d))},!0;case "speed":return this.G[b]=
|
||||
c,!0;case "setSpeed":return this.G[b]=c,c.onclick=function(){sd(d,d.T<<1,!0)},c.textContent=this.S.toFixed(2)+"Mhz",!0}return!1};function pc(a,b,c){a.N+=b;c&&(a.L=a.M=0)}function td(a,b){var c=1;b&&1<a.T&&a.R&&(c=a.R/a.Da);a.Qa=Math.round(1E3/ud);a.ua=Math.floor(a.Ra/ud*c);b||(a.aa=a.ua);a.ya=0}function rd(a){return a.N+a.F+a.L-a.M}function md(a){a.R=0;a.Sa=0;a.N=a.F=a.L=a.M=0;nd(a);sd(a,1)}
|
||||
function sd(a,b,c){var d=!1;if(void 0!==b){.8>a.R/a.S?b=1:d=!0;a.T=b;b=a.Da*a.T;if(a.S!=b){a.S=b;b=a.S.toFixed(2)+"Mhz";var e=a.G.setSpeed;e&&(e.textContent=b);a.f("target speed: "+b)}c&&a.C&&vd(a.C)}pc(a,a.F);a.F=0;a.B=wa();a.J=0;td(a);return d}function wd(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function xd(a){for(var b=[],c=0;c<a.I.length;c++)b.push(a.I[c][0]);return b}
|
||||
function oc(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function yd(a,b){var c=a.L-=a.M;a.M=0;b&&(a.L=0);return c}
|
||||
l.Ob=function(){if(this.j.K){this.ya>=this.Ra&&td(this,!0);this.ja=0;this.ra=wa();if(this.J){var a=this.ra-this.J;a>this.Qa&&(this.B+=a,this.B>this.ra&&(this.B=this.ra))}try{do{var b=wd(this,this.j.Ea?1:this.ua);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=yd(this,!0);this.ja+=b;this.F+=b;qc(this,b);oc(this,b);this.aa-=b;if(0>=this.aa){this.aa+=this.ua;++this.Sa>=zd&&(this.C&&K(this.C,void 0),this.Sa=0);break}}while(this.j.K)}catch(e){this.W();this.C&&this.C.stop(wa(),rd(this));Ga(this,
|
||||
e.stack||e.message);return}if(this.j.K){a=setTimeout;b=this.fb;this.J=wa();var c=this.Qa;this.ja&&(c=Math.round(c*this.ja/this.ua));var c=c-(this.J-this.ra),d=this.J-this.B;d&&(this.R=Math.round(this.F/(10*d))/100,864E5<=d&&(this.N=0,sd(this)));if(0>c||this.R<this.S)-1E3>c&&(this.B-=c),c=0;this.ya+=this.ja;this.J+=c;a(b,c)}}};
|
||||
function mc(a,b){if(!Oa(a))if(a.j.K)a.f(a.toString()+" busy");else{sd(a);a.j.K=!0;a.j.Pa=!0;var c=a.G.run;c&&(c.textContent="Halt");a.C&&(b&&vd(a.C,!0),a.C.start(a.B,rd(a)));a.A||a.status("Started");setTimeout(a.fb,0)}}l.Ja=function(){return 0};l.W=function(a){var b=!1;if(this.j.K){yd(this);pc(this,this.F);this.F=0;this.j.K=!1;if(b=this.G.run)b.textContent="Run";this.C&&this.C.stop(wa(),rd(this));b=!0;this.A||this.status("Stopped")}this.j.complete=a;return b};var ud=30,zd=15,kd=["power","reset"];
|
||||
function Ad(a){var b=+a.model||1001;jd.call(this,a,1E6);this.eb=b;this.bb=+a.addrReset||0;this.sb=Bd.bind(this);this.b=N.bind(this);this.oa=null;this.ab=[];this.j.complete=!1}p(Ad,jd);l=Ad.prototype;l.reset=function(){this.status("Model "+this.eb);this.j.K&&this.W();this.i=this.O=this.za=0;this.pa=this.u=this.qa=this.bb;this.v=0;this.H=this.Kb;this.P=this.Vb;this.oa=null;md(this);this.j.error=!1;jd.prototype.reset.call(this)};l.lb=function(){return 0};
|
||||
l.save=function(){var a=new J(this);a.set(0,[this.i,this.O,this.za,this.u,this.qa,this.pa,this.v]);a.set(1,[]);a.set(2,[this.N,this.T,this.j.Z]);a.set(3,Cd(this));a.set(4,xd(this));return a.data()};
|
||||
l.fa=function(a){return a?this.save():!0};l.Z=function(){return this.j.K?!0:this.j.Z?(nc(this),!0):!1};l.lb=function(){return 0};function nd(a){void 0===a.ta&&(a.ta=0);void 0===a.da&&(a.da=-1);void 0===a.ia&&(a.ia=-1);a.j.Ea=0<=a.ta&&0<a.da;a.j.Ea&&(a.sa=0,a.ha=a.ta-a.N)}function rc(a,b){if(a.j.Ea){var c=!1;a.sa=a.sa+a.lb()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.da,c=!0);0<=a.ia&&a.ia<=rd(a)&&(a.da=a.ia=-1,nd(a),a.W(),c=!0);c&&a.f(rd(a)+" cycles: checksum="+E(a.sa))}}
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.G[b]=c,!0;case "run":return this.G[b]=c,c.onclick=function(){var a;if(a=d.C)if(a=d.C,a.j.V)a=!0;else{var b=null,c,h=xa(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.V);c++);c==h.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.Ma?" (waiting for notification)":""))+".");a=!1}a&&(d.j.K?d.W():nc(d))},!0;case "speed":return this.G[b]=
|
||||
c,!0;case "setSpeed":return this.G[b]=c,c.onclick=function(){sd(d,d.T<<1,!0)},c.textContent=this.S.toFixed(2)+"Mhz",!0}return!1};function qc(a,b,c){a.N+=b;c&&(a.L=a.M=0)}function td(a,b){var c=1;b&&1<a.T&&a.R&&(c=a.R/a.Da);a.Qa=Math.round(1E3/ud);a.ua=Math.floor(a.Ra/ud*c);b||(a.aa=a.ua);a.ya=0}function rd(a){return a.N+a.F+a.L-a.M}function md(a){a.R=0;a.Sa=0;a.N=a.F=a.L=a.M=0;nd(a);sd(a,1)}
|
||||
function sd(a,b,c){var d=!1;if(void 0!==b){.8>a.R/a.S?b=1:d=!0;a.T=b;b=a.Da*a.T;if(a.S!=b){a.S=b;b=a.S.toFixed(2)+"Mhz";var e=a.G.setSpeed;e&&(e.textContent=b);a.f("target speed: "+b)}c&&a.C&&vd(a.C)}qc(a,a.F);a.F=0;a.B=va();a.J=0;td(a);return d}function wd(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function xd(a){for(var b=[],c=0;c<a.I.length;c++)b.push(a.I[c][0]);return b}
|
||||
function pc(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function yd(a,b){var c=a.L-=a.M;a.M=0;b&&(a.L=0);return c}
|
||||
l.Ob=function(){if(this.j.K){this.ya>=this.Ra&&td(this,!0);this.ja=0;this.ra=va();if(this.J){var a=this.ra-this.J;a>this.Qa&&(this.B+=a,this.B>this.ra&&(this.B=this.ra))}try{do{var b=wd(this,this.j.Ea?1:this.ua);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=yd(this,!0);this.ja+=b;this.F+=b;rc(this,b);pc(this,b);this.aa-=b;if(0>=this.aa){this.aa+=this.ua;++this.Sa>=zd&&(this.C&&J(this.C,void 0),this.Sa=0);break}}while(this.j.K)}catch(e){this.W();this.C&&this.C.stop(va(),rd(this));Ga(this,
|
||||
e.stack||e.message);return}if(this.j.K){a=setTimeout;b=this.fb;this.J=va();var c=this.Qa;this.ja&&(c=Math.round(c*this.ja/this.ua));var c=c-(this.J-this.ra),d=this.J-this.B;d&&(this.R=Math.round(this.F/(10*d))/100,864E5<=d&&(this.N=0,sd(this)));if(0>c||this.R<this.S)-1E3>c&&(this.B-=c),c=0;this.ya+=this.ja;this.J+=c;a(b,c)}}};
|
||||
function nc(a,b){if(!Oa(a))if(a.j.K)a.f(a.toString()+" busy");else{sd(a);a.j.K=!0;a.j.Pa=!0;var c=a.G.run;c&&(c.textContent="Halt");a.C&&(b&&vd(a.C,!0),a.C.start(a.B,rd(a)));a.A||a.status("Started");setTimeout(a.fb,0)}}l.Ja=function(){return 0};l.W=function(a){var b=!1;if(this.j.K){yd(this);qc(this,this.F);this.F=0;this.j.K=!1;if(b=this.G.run)b.textContent="Run";this.C&&this.C.stop(va(),rd(this));b=!0;this.A||this.status("Stopped")}this.j.complete=a;return b};var ud=30,zd=15,kd=["power","reset"];
|
||||
function Ad(a){var b=+a.model||1001;jd.call(this,a,1E6);this.eb=b;this.bb=+a.addrReset||0;this.sb=Bd.bind(this);this.b=L.bind(this);this.oa=null;this.ab=[];this.j.complete=!1}p(Ad,jd);l=Ad.prototype;l.reset=function(){this.status("Model "+this.eb);this.j.K&&this.W();this.i=this.O=this.za=0;this.pa=this.u=this.qa=this.bb;this.v=0;this.H=this.Kb;this.P=this.Vb;this.oa=null;md(this);this.j.error=!1;jd.prototype.reset.call(this)};l.lb=function(){return 0};
|
||||
l.save=function(){var a=new H(this);a.set(0,[this.i,this.O,this.za,this.u,this.qa,this.pa,this.v]);a.set(1,[]);a.set(2,[this.N,this.T,this.j.Z]);a.set(3,Cd(this));a.set(4,xd(this));return a.data()};
|
||||
l.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.i=b.next().value;this.O=b.next().value;this.za=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.pa=b.next().value;this.v=b.next().value;b=a[2];this.N=b[0];sd(this,b[1]);this.j.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ab.length;d++){var e=this.ab[d];if(e.Sb===b[c]){d=e;break a}}d=null}d&&(d.next=this.oa,this.oa=d)}a=a[4];for(b=0;b<this.I.length&&b<a.length;b++)this.I[b][0]=
|
||||
a[b];return!0};function Dd(a,b){var c=a.u;a.u=(c+b)%Kb;return c}function Cd(a){var b=[];for(a=a.oa;a;)b.push(a.Sb),a=a.next;return b}l.Kb=function(a){var b=this.D;a=this.pa=a;return b.b[(a&b.u)>>>b.i].H(a&16383,a)};l.Vb=function(a,b){var c=this.D;a=this.pa=a;c.b[(a&c.u)>>>c.i].P(b,a&16383,a)};
|
||||
l.Ja=function(a){this.j.complete=!0;var b=this.A?Ed(this.A)?1:this.j.Pa?-1:0:0,c=a?this.j.Pa?0:1:-1;this.j.Pa=!1;this.L=this.M=a;this.v=this.v&-5|(b?4:0);do{if(this.v){if(this.v&4){if(Fd(this.A,this.u,c)){this.W();break}++b||(this.v&=-5);c||c++}if(a=this.v&11)this.v&2?this.oa||(this.v&=-3):this.v&1&&this.v++,a=!1;if(a){if(this.v&4&&Fd(this.A,this.u,c)){this.W();break}if(0>c)break}}this.v&=15;this.O=this.O&4194304?this.H(this.i)&8388607:(this.za=this.H(this.qa=this.u))&8388607;this.i=this.O&262143;
|
||||
if(a=this.O>>18&15)this.i=this.i+this.H(a)&Lb;this.O&4194304?a=-1:(this.u=(this.u+1)%Kb,a=this.za/Wb|0);0<=a&&this.sb(a)}while(0<this.M);return this.j.complete?this.L-this.M:!1===this.j.complete?-1:0};Bb(function(){for(var a=C(document,B,"cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Ad(d);Aa(d,c)}});function Bd(a){Gd[a>>4].call(this,a)}function O(a){this.b(a)}function Hd(a){this.b(a)}function Id(a){this.b(a)}
|
||||
function Jd(a){var b=a&15,c=this.H(this.i),d=this.H(b),d=Kd(a,d,c)+(c-(c&262143));this.P(b,d)}function Ld(a){var b=a&15,c=this.H(b),c=Kd(a,c,0);this.P(b,c)}function Md(a){var b=this.H(a&15),c=this.H(this.i),c=Kd(a,c,b)+(b-(b&262143));this.P(this.i,c)}function Nd(a){var b=this.H(this.i);this.P(this.i,Kd(a,b,b));var c=a&15;c&&(b=this.H(c),this.P(c,Kd(a,b,b)))}function Od(a){a&=15;var b=this.H(this.i)&262143,c=this.H(a);this.P(a,c-(c&262143)+b)}function P(a){this.b(a)}
|
||||
function N(a){this.f("undefined opcode: "+Wa(a));Dd(this,-1);this.W()}function Kd(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Nb?262143:0}return b}
|
||||
var Gd=[O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
if(a=this.O>>18&15)this.i=this.i+this.H(a)&Lb;this.O&4194304?a=-1:(this.u=(this.u+1)%Kb,a=this.za/Xb|0);0<=a&&this.sb(a)}while(0<this.M);return this.j.complete?this.L-this.M:!1===this.j.complete?-1:0};Bb(function(){for(var a=B(document,A,"cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ad(d);Aa(d,c)}});function Bd(a){Gd[a>>4].call(this,a)}function N(a){this.b(a)}function Hd(a){this.b(a)}function Id(a){this.b(a)}
|
||||
function Jd(a){var b=a&15,c=this.H(this.i),d=this.H(b),d=Kd(a,d,c)+(c-(c&262143));this.P(b,d)}function Ld(a){var b=a&15,c=this.H(b),c=Kd(a,c,0);this.P(b,c)}function Md(a){var b=this.H(a&15),c=this.H(this.i),c=Kd(a,c,b)+(b-(b&262143));this.P(this.i,c)}function Nd(a){var b=this.H(this.i);this.P(this.i,Kd(a,b,b));var c=a&15;c&&(b=this.H(c),this.P(c,Kd(a,b,b)))}function Od(a){a&=15;var b=this.H(this.i)&262143,c=this.H(a);this.P(a,c-(c&262143)+b)}function O(a){this.b(a)}
|
||||
function L(a){this.f("undefined opcode: "+Wa(a));Dd(this,-1);this.W()}function Kd(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Nb?262143:0}return b}
|
||||
var Gd=[N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Hd,Id,Id,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Hd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},N,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},N,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},L,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},L,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
|
|
@ -117,110 +117,110 @@ this.H(a&15)&262143;var b=this.H(this.i),b=(b&262143)+a*F;this.P(this.i,b)},func
|
|||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P];
|
||||
function Pd(a){t.call(this,"ROM",a,128);this.U=this.b=null;this.B=+a.addr;this.u=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.v=a.file;this.F=Xa(this.v);if(this.v){a=this.v;var b=Ya(this.F);"json"!=b&&"hex"!=b&&(a=$a()+"/api/v1/dump?file="+this.v+"&format=bytes&decimal=true");var c=this;pb(a,null,!0,function(a,b,g){g?(c.ca("Unable to load ROM resource (error "+g+": "+a+")"),c.v=null):(oa(c.La,a,b),(a=qb(a,b))?(c.b=a.Y,c.U=a.U):c.v=null);Qd(c)})}}p(Pd,t);
|
||||
O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O];
|
||||
function Pd(a){t.call(this,"ROM",a,128);this.U=this.b=null;this.B=+a.addr;this.u=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.v=a.file;this.F=Xa(this.v);if(this.v){a=this.v;var b=Ya(this.F);"json"!=b&&"hex"!=b&&(a=$a()+"/api/v1/dump?file="+this.v+"&format=bytes&decimal=true");var c=this;pb(a,null,!0,function(a,b,g){g?(c.ca("Unable to load ROM resource (error "+g+": "+a+")"),c.v=null):(na(c.La,a,b),(a=qb(a,b))?(c.b=a.Y,c.U=a.U):c.v=null);Qd(c)})}}p(Pd,t);
|
||||
Pd.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;Qd(this)};Pd.prototype.na=function(){this.U&&(this.A&&Rd(this.A,this.id,this.B,this.u,this.U),delete this.U);return!0};Pd.prototype.fa=function(){return!0};
|
||||
function Qd(a){if(!Pa(a)){if(a.v){if(!a.b||!a.D)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Ga(a,"ROM size ("+E(a.b.length,8,!0)+") does not match specified size ("+E(a.u,8,!0)+")");else{var b;b=a.B;if(yc(a.D,b,a.u,Gc)){var c;for(c=0;c<a.b.length;c++)sc(a.D,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],g=d.D,f=d.u,h=[],k=d.B>>>g.i;0<f&&k<g.b.length;)h.push(g.b[k++]),f-=16384;g=d.D;d=d.u;f=0;for(e>>>=
|
||||
g.i;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}D(a)}}Bb(function(){for(var a=C(document,B,"rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Pd(d);Aa(d,c)}});
|
||||
function Sd(a){t.call(this,"RAM",a);this.U=this.Aa=null;this.i=+a.addr;this.u=+a.size;this.la=a.load;this.ka=a.exec;null!=this.la&&(this.la=+this.la);null!=this.ka&&(this.ka=+this.ka);this.v=this.F=!1;this.b=a.file;this.B=Xa(this.b);if(this.b){a=this.b;var b=Ya(this.B);"json"!=b&&"hex"!=b&&(a=$a()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;pb(a,null,!0,function(a,b,g){g?(c.ca("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(oa(c.La,a,b),(a=qb(a,b))?(c.Aa=a.Aa,
|
||||
function Qd(a){if(!Pa(a)){if(a.v){if(!a.b||!a.D)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Ga(a,"ROM size ("+E(a.b.length,8,!0)+") does not match specified size ("+E(a.u,8,!0)+")");else{var b;b=a.B;if(zc(a.D,b,a.u,Hc)){var c;for(c=0;c<a.b.length;c++)tc(a.D,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],g=d.D,f=d.u,h=[],k=d.B>>>g.i;0<f&&k<g.b.length;)h.push(g.b[k++]),f-=16384;g=d.D;d=d.u;f=0;for(e>>>=
|
||||
g.i;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}C(a)}}Bb(function(){for(var a=B(document,A,"rom"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Pd(d);Aa(d,c)}});
|
||||
function Sd(a){t.call(this,"RAM",a);this.U=this.Aa=null;this.i=+a.addr;this.u=+a.size;this.la=a.load;this.ka=a.exec;null!=this.la&&(this.la=+this.la);null!=this.ka&&(this.ka=+this.ka);this.v=this.F=!1;this.b=a.file;this.B=Xa(this.b);if(this.b){a=this.b;var b=Ya(this.B);"json"!=b&&"hex"!=b&&(a=$a()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;pb(a,null,!0,function(a,b,g){g?(c.ca("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(na(c.La,a,b),(a=qb(a,b))?(c.Aa=a.Aa,
|
||||
c.U=a.U,null==c.la&&(c.la=a.la),null==c.ka&&(c.ka=a.ka)):c.b=null);Td(c)})}}p(Sd,t);Sd.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;Td(this)};Sd.prototype.na=function(a,b){this.U&&(this.A&&Rd(this.A,this.id,this.i,this.u,this.U),delete this.U);b||this.reset();return!0};Sd.prototype.fa=function(){return!0};
|
||||
function Td(a){if(a.D&&(!a.v&&a.u&&(yc(a.D,a.i,a.u,1)?a.v=!0:a.u=0),!Pa(a))){if(!a.v)v("No RAM allocated");else if(a.b){if(!a.Aa)return;Ud(a,a.Aa,a.la,a.ka,a.i)?a.status('Loaded image "'+a.B+'"'):a.ca('Error loading image "'+a.B+'"')}a.F=!0;D(a)}}
|
||||
Sd.prototype.reset=function(){if(this.v&&!this.F){for(var a=this.D,b=this.i,c=this.u,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],g=c,f=0,h,d=d||0,f=f||0;0>f&&f>=na&&(f+=ma);f=Math.trunc(Math.abs(f))%ma;void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.D(f,d,e.w+d);c-=16384;b++;d=0}this.Aa&&Ud(this,this.Aa,this.la,this.ka,this.i,!this.A)}this.F=!1};
|
||||
function Ud(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)sc(a.D,c+f,b[f]);f=!0}f&&(null==d&&(a.g.W(),g=!1),null!=d&&(a=a.g,a.bb=d,a.u=d%Kb,g?a.j.V?a.j.K||mc(a):a.j.Z=!0:a.A&&a.j.V?a.W()||a.C.j.reset||(od(a.A),K(a.C,-1)):!1===g&&a.W(),!a.j.K&&a.xa&&a.xa.stop()));return f}Bb(function(){for(var a=C(document,B,"ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Sd(d);Aa(d,c)}});
|
||||
function Td(a){if(a.D&&(!a.v&&a.u&&(zc(a.D,a.i,a.u,1)?a.v=!0:a.u=0),!Pa(a))){if(!a.v)v("No RAM allocated");else if(a.b){if(!a.Aa)return;Ud(a,a.Aa,a.la,a.ka,a.i)?a.status('Loaded image "'+a.B+'"'):a.ca('Error loading image "'+a.B+'"')}a.F=!0;C(a)}}
|
||||
Sd.prototype.reset=function(){if(this.v&&!this.F){for(var a=this.D,b=this.i,c=this.u,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],g=c,f=0,h,d=d||0,f=f||0;0>f&&f>=ma&&(f+=la);f=Math.trunc(Math.abs(f))%la;void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.D(f,d,e.w+d);c-=16384;b++;d=0}this.Aa&&Ud(this,this.Aa,this.la,this.ka,this.i,!this.A)}this.F=!1};
|
||||
function Ud(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)tc(a.D,c+f,b[f]);f=!0}f&&(null==d&&(a.g.W(),g=!1),null!=d&&(a=a.g,a.bb=d,a.u=d%Kb,g?a.j.V?a.j.K||nc(a):a.j.Z=!0:a.A&&a.j.V?a.W()||a.C.j.reset||(od(a.A),J(a.C,-1)):!1===g&&a.W(),!a.j.K&&a.xa&&a.xa.stop()));return f}Bb(function(){for(var a=B(document,A,"ram"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Sd(d);Aa(d,c)}});
|
||||
function Vd(a){t.call(this,"SerialPort",a,1048576);this.v=a.upperCase;"string"==typeof this.v&&(this.v="true"==this.v);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Wd;b&&(void 0===c&&(c="Panel"),(c=za(c,this.id))&&(b=c.G[b])&&this.ga(null,a,b))}this.b=this.B=null;this.exports={connect:this.nb,receiveData:this.Na,receiveStatus:this.Mb,setConnection:this.Pb}}p(Vd,t);l=Vd.prototype;
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case Wd:return this.G[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Za:q.rb:46==c?b=q.Za:a.ctrlKey&&c>=q.Ya&&c<=q.ub&&(b=c-(q.Ya-q.ob));b&&(a.preventDefault&&a.preventDefault(),d.Na(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.qb&&(b=q.pb);d.Na(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
|
||||
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Na(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;D(this)};
|
||||
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Na(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;C(this)};
|
||||
l.nb=function(a){if(!this.b){var b=ld(this.C,"connection");if(b){var c=b.split("->");if(2==c.length){var d=db(c[0]);if(d!=this.Ka)return;c=db(c[1]);if(this.b=ya(c)){var e=this.b.exports;if(e){var g=e.connect;g&&g.call(this.b,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.La+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.na=function(a,b){if(!b)if(this.nb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new J(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Na=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};l.Mb=function(){};l.Pb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var Wd="buffer";
|
||||
Bb(function(){for(var a=C(document,B,"serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Vd(d);Aa(d,c)}});function Xd(a){t.call(this,"Debugger",a);this.ba=+a.base||16;this.oa=!1;this.B=0;this.R=!1;this.v=-1;this.u=[];this.aa={}}p(Xd,t);Xd.prototype.mb=function(){return-1};Xd.prototype.Wa=function(){};
|
||||
l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new H(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Na=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};l.Mb=function(){};l.Pb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var Wd="buffer";
|
||||
Bb(function(){for(var a=B(document,A,"serial"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Vd(d);Aa(d,c)}});function Xd(a){t.call(this,"Debugger",a);this.ba=+a.base||16;this.oa=!1;this.B=0;this.R=!1;this.v=-1;this.u=[];this.aa={}}p(Xd,t);Xd.prototype.mb=function(){return-1};Xd.prototype.Wa=function(){};
|
||||
function Yd(a,b,c,d){if(c)if(b){0>a.v&&a.u.length&&(a.v=0);if(0>a.v||b!=a.u[a.v])a.u.splice(0,0,b),a.v=0;a.v--}else a.R?b="end":b=a.u[a.v+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var g=0;g<=b.length;g++){var f=b.charAt(g);if('"'==f||"'"==f)e?f==e&&(e=null):e=f;else if(f==d&&!e||!f)a.push(db(b.substring(c,g))),c=g+1}}return a}
|
||||
function Zd(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),g=a.pop();switch(d){case "*":d=g*e;break;case "/":if(!e)return!1;d=g/e;break;case "%":if(!e)return!1;d=g%e;break;case "+":d=g+e;break;case "-":d=g-e;break;case "<<":d=g<<e;break;case ">>":d=g>>e;break;case ">>>":d=g>>>e;break;case "<":d=g<e?1:0;break;case "<=":d=g<=e?1:0;break;case ">":d=g>e?1:0;break;case ">=":d=g>=e?1:0;break;case "==":d=g==e?1:0;break;case "!=":d=g!=e?1:0;break;case "&":d=g&e;break;
|
||||
case "^":d=g^e;break;case "|":d=g|e;break;case "&&":d=g&&e?1:0;break;case "||":d=g||e?1:0;break;default:return!1}a.push(d|0)}return!0}
|
||||
function R(a,b,c){var d;if(b){b=$d(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=db(n);if(!n){g=!0;break}n=ae(a,n,null,!1===c);if(void 0===n){g=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],x=n.length;k.length&&be[n]<be[k[k.length-1]]&&Zd(h,k,1);k.push(n);b=b.substr(r+x)}Zd(h,k)&&1==h.length||(g=!0);g?c&&a.f("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&ce(a,null,
|
||||
d))}return d}function $d(a,b){for(var c,d=a.oa?"(":"{",e=a.oa?")":"}",g=new RegExp(a.oa?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(g))&&!(0<=c[1].indexOf(d));){var f=R(a,c[1]);b=b.replace(d+c[1]+e,null!=f?L(a,f):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
|
||||
function P(a,b,c){var d;if(b){b=$d(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=db(n);if(!n){g=!0;break}n=ae(a,n,null,!1===c);if(void 0===n){g=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],y=n.length;k.length&&be[n]<be[k[k.length-1]]&&Zd(h,k,1);k.push(n);b=b.substr(r+y)}Zd(h,k)&&1==h.length||(g=!0);g?c&&a.f("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&ce(a,null,
|
||||
d))}return d}function $d(a,b){for(var c,d=a.oa?"(":"{",e=a.oa?")":"}",g=new RegExp(a.oa?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(g))&&!(0<=c[1].indexOf(d));){var f=P(a,c[1]);b=b.replace(d+c[1]+e,null!=f?K(a,f):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
|
||||
function ae(a,b,c,d){var e;null!=b?(e=a.mb(b),0<=e?e=a.Wa(e):(e=a.aa[b],null==e&&(e=Ua(b,a.ba))),null!=e||d||a.f("invalid "+(c?c:"value")+": "+b)):d||a.f("missing "+(c||"value"));return e}
|
||||
function ce(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var x=null==k||isNaN(k),U=m=m||n;0<n--;)U||(r=","+r,U=m),r=(x?"?":k&1?"1":"0")+r,k>>=1,U--;f=r+f;d>>=8}d=E(c,0,!0)+" "+c+". "+Wa(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.f((null!=b?b+": ":"")+d);return e}
|
||||
function de(a,b){if(b)return ce(a,b,a.aa[b]);var c=0;for(b in a.aa)ce(a,b,a.aa[b]),c++;return 0<c}function L(a,b,c){c=void 0===c?0:c;switch(a.ba){case 8:b=Wa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=Va(b,10,a);break;default:b=E(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var be={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function ee(a){Xd.call(this,a);this.ya=!1;this.oa=!0;this.ua=S();this.J=S();this.xa=S();this.O=S();this.F=[];this.b=this.L=this.I=[];fe(this);this.S=this.ja=0;this.i=[];this.ra=void 0;ge(this);this.A=this;this.pa={};this.X=this.ib=0;this.T=null;this.N=[];he(this,a.messages);this.ta=a.commands;this.M=0;this.Da=this.sa=null;this.B=this.Ca=this.za=this.ia=this.qa=0;this.ha=this.da=null;var b=this;window?void 0===window[B]&&(window[B]=function(a){return qd(b,a)}):void 0===global[B]&&(global[B]=function(a){return qd(b,
|
||||
a)})}p(ee,Xd);function T(a){a=a&&a.w;null==a&&(a=-1);return a}function S(a,b,c){return{w:void 0===a?null:a,wb:void 0===b?!1:b,ea:!1,ba:c}}function ie(a,b){a.w=b.w;a.ea=b.ea;a.ba=b.ba}function je(a,b){a.w=b;a.ea=!1;a.ba=void 0}function ke(a){return[a.w,a.wb,a.ba,a.ea,a.Oa]}function le(a,b){var c=S(b[0],b[1],b[2]);c.ea=b[3];b[4]&&(c.gb=Yd(a,c.Oa=b[4]));return c}l=ee.prototype;
|
||||
l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.ha=a.u;(a=ld(a,"messages"))&&he(this,a);me(this,function(a){a:{var b=d.D.b,c=a[0],e=a=0,k=b.length;if(c){a=T(Z(d,c));if(-1===a){d.f("invalid address: "+c);break a}e=a>>>d.D.i;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.f("..."):(c=n.type,m=Bc[c],n&&d.f(E(n.id,8)+" %"+E(e<<d.D.i,8)+" %"+E(n.w,8)+" "+E(n.Ha,4,!0)+
|
||||
" "+E(n.size,4,!0)+" "+m),c!=Fc&&(c=-1),m=0);a+=16384;e++}}});D(this)};
|
||||
function ce(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var y=null==k||isNaN(k),U=m=m||n;0<n--;)U||(r=","+r,U=m),r=(y?"?":k&1?"1":"0")+r,k>>=1,U--;f=r+f;d>>=8}d=E(c,0,!0)+" "+c+". "+Wa(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.f((null!=b?b+": ":"")+d);return e}
|
||||
function de(a,b){if(b)return ce(a,b,a.aa[b]);var c=0;for(b in a.aa)ce(a,b,a.aa[b]),c++;return 0<c}function K(a,b,c){c=void 0===c?0:c;switch(a.ba){case 8:b=Wa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=Va(b,10,a);break;default:b=E(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var be={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function ee(a){Xd.call(this,a);this.ya=!1;this.oa=!0;this.ua=R();this.J=R();this.xa=R();this.O=R();this.F=[];this.b=this.L=this.I=[];fe(this);this.S=this.ja=0;this.i=[];this.ra=void 0;ge(this);this.A=this;this.pa={};this.X=this.ib=0;this.T=null;this.N=[];he(this,a.messages);this.ta=a.commands;this.M=0;this.Da=this.sa=null;this.B=this.Ca=this.za=this.ia=this.qa=0;this.ha=this.da=null;var b=this;window?void 0===window[A]&&(window[A]=function(a){return qd(b,a)}):void 0===global[A]&&(global[A]=function(a){return qd(b,
|
||||
a)})}p(ee,Xd);function S(a){a=a&&a.w;null==a&&(a=-1);return a}function R(a,b,c){return{w:void 0===a?null:a,wb:void 0===b?!1:b,ea:!1,ba:c}}function ie(a,b){a.w=b.w;a.ea=b.ea;a.ba=b.ba}function je(a,b){a.w=b;a.ea=!1;a.ba=void 0}function ke(a){return[a.w,a.wb,a.ba,a.ea,a.Oa]}function le(a,b){var c=R(b[0],b[1],b[2]);c.ea=b[3];b[4]&&(c.gb=Yd(a,c.Oa=b[4]));return c}l=ee.prototype;
|
||||
l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.ha=a.u;(a=ld(a,"messages"))&&he(this,a);me(this,function(a){a:{var b=d.D.b,c=a[0],e=a=0,k=b.length;if(c){a=S(T(d,c));if(-1===a){d.f("invalid address: "+c);break a}e=a>>>d.D.i;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.f("..."):(c=n.type,m=Cc[c],n&&d.f(E(n.id,8)+" %"+E(e<<d.D.i,8)+" %"+E(n.w,8)+" "+E(n.Ha,4,!0)+
|
||||
" "+E(n.size,4,!0)+" "+m),c!=Gc&&(c=-1),m=0);a+=16384;e++}}});C(this)};
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case "debugInput":return this.da=this.G[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",qd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.v<d.u.length-1&&(b=d.u[++d.v])):40==a.keyCode&&(0<d.v?b=d.u[--d.v]:(b="",d.v=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.G[b]=c,zb(c,function(){if(d.da){var a=d.da.value;
|
||||
d.da.value="";qd(d,a,!0);return!0}return!1}),!0;case "step":return this.G[b]=c,zb(c,function(a){var b=!1;Qa(d,!0)||(Ra(d,!0),b=nc(d,a?1:0,null),Ra(d,!1));return b}),!0}return!1};function pd(a){if(a.da){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.da.focus();window&&window.scrollTo(b,c)}}l.wa=function(a,b){var c=-1,d=T(a);-1!==d&&(c=tc(this.D,d),b&&null!=a.w&&(a.w+=b||1));return c};l.$a=function(a,b,c){var d=T(a);-1!==d&&(sc(this.D,d,b),c&&null!=a.w&&(a.w+=c||1),K(this.C,-1))};
|
||||
function Z(a,b,c){var d;c=(c?a.J:a.xa).w;var e,g;if(void 0!==b){b=$d(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var f,h;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.F.length;c++){var k=a.F[c].U[d];if(null!=k){h=k.o;break}}null!=h&&(f=S(h));if(d=f)return d;0<=b.indexOf("0x")?g=16:0<=b.indexOf("0o")?g=8:0<=b.indexOf(".")&&(g=10);c=R(a,b,void 0)}null!=c&&(d=S(c,e,g));return d}function ne(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.gb=Yd(a,b.Oa=c[2]))}
|
||||
d.da.value="";qd(d,a,!0);return!0}return!1}),!0;case "step":return this.G[b]=c,zb(c,function(a){var b=!1;Qa(d,!0)||(Ra(d,!0),b=oc(d,a?1:0,null),Ra(d,!1));return b}),!0}return!1};function pd(a){if(a.da){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.da.focus();window&&window.scrollTo(b,c)}}l.wa=function(a,b){var c=-1,d=S(a);-1!==d&&(c=uc(this.D,d),b&&null!=a.w&&(a.w+=b||1));return c};l.$a=function(a,b,c){var d=S(a);-1!==d&&(tc(this.D,d,b),c&&null!=a.w&&(a.w+=c||1),J(this.C,-1))};
|
||||
function T(a,b,c){var d;c=(c?a.J:a.xa).w;var e,g;if(void 0!==b){b=$d(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var f,h;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.F.length;c++){var k=a.F[c].U[d];if(null!=k){h=k.o;break}}null!=h&&(f=R(h));if(d=f)return d;0<=b.indexOf("0x")?g=16:0<=b.indexOf("0o")?g=8:0<=b.indexOf(".")&&(g=10);c=P(a,b,void 0)}null!=c&&(d=R(c,e,g));return d}function ne(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.gb=Yd(a,b.Oa=c[2]))}
|
||||
function oe(a){return Wa(a/Kb,6)+" "+Wa(a%Kb,6)}function he(a,b){a.A=a;a.X=a.ib=536870916;a.T=null;a.N=[];b=Yd(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in G){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=G[c],a.f(c+" messages enabled"))}}function me(a,b){for(var c in G)if(16==G[c]){a.pa[c]=b;break}}l.mb=function(a){return pe.indexOf(a.toUpperCase())};
|
||||
l.Wa=function(a){var b;switch(a){case qe:b=this.g.u;break;case re:b=this.g.O;break;case se:b=this.g.i}return b};l.message=function(a,b){b&&(a+=" @"+L(this,S(this.g.qa).w));if(!this.T||a!=this.T)if(this.T=a,this.X&1073741824)this.N.push(a);else{var c;if(this.X&-2147483648&&this.g&&(c=this.g.j.K)||Qa(this,!0))this.W(),c&&(a+=" (cpu halted)");this.f(a);this.g&&(a=this.g,yd(a),a.aa=0,a.C&&K(a.C,void 0))}};
|
||||
function ge(a){var b;if(!Ed(a))a.i&&a.i.length&&a.f("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(te);for(b=0;b<a.i.length;b++)a.i[b]=S();a.S=0;a.f("instruction history buffer allocated")}}function ue(a,b,c){if(!ve(a,c))return!1;mc(a.g,b);return!0}
|
||||
function nc(a,b,c,d){if(!ve(a))return!1;var e="";null===c&&(e=(c=!a.sa||"tr"==a.sa)?"tr":"t");a.B=0;b||Ed(a)&&Fd(a,a.g.u,0);try{b=wd(a.g,b);var g=a.g.Ja(b);0<g&&(oc(a.g,g),a.B+=g,pc(a.g,g,!0),qc(a.g,g),a.ia++)}catch(f){"number"!=typeof f&&(a.B=0,Ga(a.g,f.stack||f.message))}!1!==d&&(a.ha&&a.ha.stop(),K(a.C,-1));od(a,c||!1,e);return 0<a.B}l.W=function(a){this.g&&this.g.W(a)};function od(a,b,c){a.ya&&(void 0===b&&(b=!0),c&&a.f(we+c),je(a.J,a.g.u),b&&1!=a.M?xe(a):ye(a))}
|
||||
l.Wa=function(a){var b;switch(a){case qe:b=this.g.u;break;case re:b=this.g.O;break;case se:b=this.g.i}return b};l.message=function(a,b){b&&(a+=" @"+K(this,R(this.g.qa).w));if(!this.T||a!=this.T)if(this.T=a,this.X&1073741824)this.N.push(a);else{var c;if(this.X&-2147483648&&this.g&&(c=this.g.j.K)||Qa(this,!0))this.W(),c&&(a+=" (cpu halted)");this.f(a);this.g&&(a=this.g,yd(a),a.aa=0,a.C&&J(a.C,void 0))}};
|
||||
function ge(a){var b;if(!Ed(a))a.i&&a.i.length&&a.f("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(te);for(b=0;b<a.i.length;b++)a.i[b]=R();a.S=0;a.f("instruction history buffer allocated")}}function ue(a,b,c){if(!ve(a,c))return!1;nc(a.g,b);return!0}
|
||||
function oc(a,b,c,d){if(!ve(a))return!1;var e="";null===c&&(e=(c=!a.sa||"tr"==a.sa)?"tr":"t");a.B=0;b||Ed(a)&&Fd(a,a.g.u,0);try{b=wd(a.g,b);var g=a.g.Ja(b);0<g&&(pc(a.g,g),a.B+=g,qc(a.g,g,!0),rc(a.g,g),a.ia++)}catch(f){"number"!=typeof f&&(a.B=0,Ga(a.g,f.stack||f.message))}!1!==d&&(a.ha&&a.ha.stop(),J(a.C,-1));od(a,c||!1,e);return 0<a.B}l.W=function(a){this.g&&this.g.W(a)};function od(a,b,c){a.ya&&(void 0===b&&(b=!0),c&&a.f(we+c),je(a.J,a.g.u),b&&1!=a.M?xe(a):ye(a))}
|
||||
function ve(a,b){var c;(c=!a.g||!Pa(a.g))||(c=a.g,c.j.V?c=!0:(c.f(c.toString()+" not powered"),c=!1),c=!c);return c||a.g.j.K?(b||a.f("cpu busy or unavailable, command ignored"),!1):!Oa(a.g)}l.na=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.fa=function(a,b){b&&this.f(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){ge(this);this.ia=0;this.T=null;this.B=0;je(this.J,this.g.u);this.j.K=!1;ze(this);a||od(this)};
|
||||
l.save=function(){var a=new J(this);a.set(0,ke(this.J));a.set(1,ke(this.O));a.set(2,[this.u,this.R,this.X]);a.set(3,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.J=le(this,a[b++]),this.O=le(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.R=a[b][1],this.X|=a[b][2]);a[3]&&(this.F=a[3]);return!0};l.start=function(a,b){this.M||this.f("running");this.j.K=!0;this.za=a;this.Ca=b};
|
||||
l.save=function(){var a=new H(this);a.set(0,ke(this.J));a.set(1,ke(this.O));a.set(2,[this.u,this.R,this.X]);a.set(3,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.J=le(this,a[b++]),this.O=le(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.R=a[b][1],this.X|=a[b][2]);a[3]&&(this.F=a[3]);return!0};l.start=function(a,b){this.M||this.f("running");this.j.K=!0;this.za=a;this.Ca=b};
|
||||
l.stop=function(a,b){if(this.j.K){this.j.K=!1;this.B=b-this.Ca;if(!this.M){b="stopped";if(this.B){a-=this.za;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";Ed(this)&&(b+=this.ia+" instructions, ",this.ia=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Sa(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.f(b)}od(this,!0);pd(this);ze(this,this.g.u);this.T=null}};function Ed(a){return 1<a.b.length||!!a.ja}
|
||||
function Fd(a,b,c){var d=-1;c||(d=a.g.H(b),2756==d>>23&&a.g.qa==b&&(b=Dd(a.g,1)));if(0<c&&(a.ja&&!--a.ja||id(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ia++,0>d&&(d=a.g.H(b)),0<=d&&(je(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}
|
||||
function ef(a,b,c,d){var e=S(b.w),g=a.wa(b,1),f,h,k,m=0,n=g/Ob|0,r;for(r in gf)if(f=gf[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=hf;m=n&3;break;case 32256:k=jf;m=n&7;break;case 29248:k=kf,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>lf&&(k="B");k=mf[f||0]+k;k=cb(k,8);f?(k=28700==h?k+L(a,g/Pb&127,-1):k+L(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=L(a,g&262143,-1),(g=g>>18&15)&&(k+="("+L(a,g,-1)+")")):k+=oe(g);g=k;f="";h=L(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(k=a.wa(e,1),f+=" "+oe(k),null==
|
||||
e.w)break;while(e.w!=b.w)}h+=cb(f,16)+g;c&&(h=cb(h,48)+";"+(c||""),h=a.g.j.Ea?h+("cycles="+rd(a.g).toString()+" cs="+E(a.g.sa)):h+(null!=d?"="+d.toString():""));return h}function fe(a){var b,c;a.b=["bp"];if(a.L)for(b=1;b<a.L.length;b++){c=a.L[b];c=T(c);var d=a.D;hd(d.b[c>>>d.i],!1)}a.L=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=T(c),d=a.D,hd(d.b[c>>>d.i],!0);a.I=["bw"];a.qa=0;a.ja=0}
|
||||
l.Ba=function(a,b,c){var d=!0;c||nf(this,a,b,!1,!0);if(a!=this.b){var e=T(b);if(-1===e)this.f("invalid address: "+L(this,b.w)),d=!1;else{var g=this.D;g.b[e>>>g.i].Ba(e&16383,a==this.I)}}d&&(a.push(b),c?b.ea=!0:(of(this,a,a.length-1,"set"),ge(this)));return d};function nf(a,b,c,d,e){var g=!1;c=T(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==T(h)&&(!d||h.ea)){g=!0;h.ea||e||of(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.D,hd(d.b[c>>>d.i],b==a.I));h.ea||ge(a);break}}return g}
|
||||
function pf(a,b){for(var c=1;c<b.length;c++)of(a,b,c);return b.length-1}function of(a,b,c,d){c=b[c];a.f(b[0]+" "+L(a,c.w)+(d?" "+d:c.Oa?' "'+c.Oa+'"':""))}function ze(a,b){if(void 0!==b)id(a,b,1,a.b,!0),a.M=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ea){if(!nf(a,a.b,c,!0))break;b=0}}}
|
||||
function id(a,b,c,d,e){var g=!1;if(!a.qa++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.ea)for(var k=T(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ea&&(nf(a,d,h,!0),e=!0);if(n=h.gb){for(var g=!1,r=0;r<n.length;r++)if(!qf(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var x=r+1;x<n.length&&n[x].indexOf("else");x++)r++;if(x==n.length){g=!0;break}}a.g.j.K||(g=!0)}if(g){e||of(a,d,f,"hit");break}}}a.qa--;return g}
|
||||
function rf(a,b){var c=pe[b]||"";c&&(c+="="+L(a,a.Wa(b),b==re?23:18)+" ");return c}function sf(a,b){for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,g=Wa(d,2);je(e.ua,d);g+="="+L(e,e.wa(e.ua),36)+" ";c+=g}b&&(c+="\n"+(rf(a,qe)+rf(a,re)+rf(a,se)));return c}l.jb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Rd(a,b,c,d,e){var g=[],f;for(f in e){var h=e[f];"number"==typeof h&&(e[f]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=g,k=[k>>>0,f],r=fb(n,k,a.jb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({$c:b,w:c,zb:d,U:e,hb:g})}function tf(a,b,c){var d=[],e=T(b)>>>0;for(b=0;b<a.F.length;b++){var g=a.F[b],f=g.w>>>0,h=g.zb;if(e>=f&&e<f+h){e=fb(g.hb,[e-f],a.jb);0<=e?uf(a,b,e,d):c&&(e=~e,uf(a,b,e-1,d),uf(a,b,e,d));break}}return d}
|
||||
function uf(a,b,c,d){var e={},g=a.F[b].hb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.F[b].U[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function vf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return de(a)||a.f("no variables"),!0;if(!c[2])return de(a,c[1]);if(!c[3])return delete a.aa[c[1]],!0;b=R(a,c[3]);return void 0!==b?(a.aa[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
|
||||
function wf(a,b,c){var d=null;if(b=Z(a,b,!0)){var e=tf(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.w-e[1])&&(f=" + "+E(g,4,!0)),g=e[0]+" ("+L(a,e[1])+")"+f,c&&a.f(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.w)&&(f=" - "+E(g,4,!0)),g=e[4]+" ("+L(a,e[5])+")"+f,c&&a.f(g),d||(d=g))}else c&&a.f("no symbols")}return d}
|
||||
function xe(a,b){var c;if(b&&"?"==b[1])a.f("register commands:"),a.f("\tr\tdump registers"),a.f("\trm\tdump misc registers"),a.f("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.g;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)d=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}f=R(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":e.u=f%Kb;je(a.J,e.u);break;default:a.f("unknown register: "+
|
||||
g);return}K(a.C);a.f("updated registers:")}}a.f(sf(a,d));c&&(je(a.J,e.u),ye(a,L(a,a.J.w)))}}function xf(a,b){b=db(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.f(c[2]):ce(a,null,c[2].charCodeAt(0)):R(a,b,!0)}
|
||||
function yf(a,b,c){if("?"==c)a.f("trace commands:"),a.f("\tt [#]\ttrace # instructions"),a.f("\ttr [#]\ttrace # instructions with register updates"),a.f("\ttc [#]\ttrace # cycles"),a.f("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=ae(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.sa=b;yb(c,function(){return Ra(a,!0)&&nc(a,e,d,!1)},function(){a.ha&&a.ha.stop();K(a.C,-1);Ra(a,!1)})}}
|
||||
function ye(a,b,c,d){if(b=Z(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=ae(a,c.substr(1)),null!=c&&(d=c);else{d=Z(a,c,!0);if(!d||d.w<b.w)return;e=d.w-b.w;if(256<e){a.f("range too large");return}d=-1}c=0;for(var g;0<e&&d--;){g=Qa(a,!1)||a.M?a.B:null;var f=null!=g?"cycles":null,h=tf(a,b),k=b.w;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(f=h[3],g=null);g=ef(a,b,f,g);a.f(g);ie(a.J,b);e-=b.w-k;c++}}}
|
||||
function qf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(we+b):(a.R&&(a.f("ended assemble at "+L(a,a.O.w)),ie(a.J,a.O),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Pa(a)&&0<b.length){a.R&&(b="a "+L(a,a.O.w)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=
|
||||
Z(a,f[1],!0);if(r){var x=f[2];a.O=r;if(void 0==x)a.f("begin assemble at "+L(a,r.w)),a.R=!0,K(a.C);else{f.shift();f.shift();f.shift();var U,Ae=f.join(""),A=-1,Kc,$f=x.toUpperCase(),Lc;for(Lc in gf){var Ha;Kc=+Lc;var Be=gf[Lc];switch(Kc){case 32512:Ha=hf;break;case 32256:Ha=jf;break;case 29248:Ha=kf;break;default:Ha=[""]}var Ce,Mc;for(Mc in Be){for(var De=Be[Mc],Ia=0;Ia<Ha.length;Ia++){var Nc=Ha[Ia];"S"==Nc&&De>lf&&(Nc="B");if($f==mf[De]+Nc){Ce=29248!=Kc?Ia:(Ia&3)<<1|(Ia&12)<<2;A=(Mc|Ce<<6)*Ob;break}}if(0<=
|
||||
A)break}if(0<=A)break}if(0<=A)if(Ae)for(var Oc=Ae.split(","),eb=0;eb<Oc.length;eb++){var Qb=Oc[eb].trim();if(Qb){if(1<eb){a.f("too many operands: "+Qb);A=-1;break}var ha=Qb.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!ha){a.f("unknown operand: "+Qb);A=-1;break}var H=R(a,ha[2]);if(void 0==H){A=-1;break}if(!eb&&1<Oc.length){if(0>H||15<H){a.f("accumulator index out of range: "+ha[2]);A=-1;break}A+=H<<23}else{if(0>H||262143<H){a.f("address out of range: "+ha[2]);A=-1;break}A+=H;if(ha[3]){H=R(a,ha[3]);if(void 0==
|
||||
H){A=-1;break}if(0>H||15<H){a.f("index out of range: "+ha[3]);A=-1;break}A+=H<<18}ha[1]&&(A+=4194304)}}}else a.f("missing operand(s)"),A=-1;else a.f("unknown instruction: "+x);U=A;0<=U&&(a.$a(r,U),a.f(ef(a,a.O)))}}break;case "b":a:{var ag=f[0],Ja=f[1],bg=b;if("?"==Ja)a.f("breakpoint commands:"),a.f("\tbp #\tset exec breakpoint"),a.f("\tbr #\tset read breakpoint"),a.f("\tbw #\tset write breakpoint"),a.f("\tbc #\tclear breakpoint (* to clear all)"),a.f("\tbl\tlist all breakpoints"),a.f("\tbn [#]\tbreak after # instruction(s)");
|
||||
else{var pa=ag.charAt(1);if("l"==pa){var Pc;Pc=0+pf(a,a.b);Pc+=pf(a,a.L);(Pc+=pf(a,a.I))||a.f("no breakpoints")}else if("n"==pa){var Ee=+Ja||0;Ja&&(a.ja=Ee);a.f("break after "+Ee+" instruction(s)")}else if(void 0===Ja)a.f("missing breakpoint address");else{var I=S();if("*"!=Ja&&(I=Z(a,Ja,!0),!I))break a;"c"==pa?null==I.w?(fe(a),a.f("all breakpoints cleared")):nf(a,a.b,I)||nf(a,a.L,I)||nf(a,a.I,I)||a.f("breakpoint missing: "+L(a,I.w)):null!=I.w&&(ne(a,I,bg),"p"==pa?a.Ba(a.b,I):"r"==pa?a.Ba(a.L,I):
|
||||
"w"==pa?a.Ba(a.I,I):a.f("unknown breakpoint command: "+pa))}}}break;case "c":a.ma&&(a.ma.value="");break;case "d":a:{var Ka,La=f[0],V=f[1],ia=f[2],cg=f[3];if("?"==V){var Ma="";for(Ka in G)a.pa[Ka]&&(Ma&&(Ma+=","),Ma+=Ka);Ma+=",state,symbols";a.f("dump memory commands:");a.f("\tdw [a] [n] dump n words at address a");a.f("\tds [a] [n] dump n words at address a as JSON");a.f("\tdh [p] [n] dump n instructions from history position p");Ma.length&&a.f("dump extension commands:\n\t"+Ma)}else if("state"==
|
||||
V){var Qc=zf(a.C,!0);"console"==ia?console.log(Qc):(a.ma&&(a.ma.value=""),Qc&&a.f(Qc))}else if("symbols"==V)for(var Rc=0;Rc<a.F.length;Rc++){var Sc=a.F[Rc],Na;for(Na in Sc.U)if("."!=Na.charAt(0)){var Fe=Sc.U[Na].o;if(void 0!==Fe){var Ge=Sc.U[Na].l;Ge&&(Na=Ge);a.f(L(a,Fe)+" "+Na)}}}else{if("d"==La){for(Ka in G)if(f[1]==Ka){var He=a.pa[Ka];He?(f.shift(),f.shift(),He(f)):a.f("no dump registered for "+V);break a}V||(La=a.Da||"dw")}else a.Da=La;if("dh"==La){var Ie=V,Je=ia,Ke="",Le=0,Q=a.S,W=a.i;if(W.length){var M=
|
||||
+Ie||a.ra,gb=+Je||10;isNaN(M)?M=gb:Ke="more ";M>W.length&&(a.f("note: only "+W.length+" available"),M=W.length);Q-=M;0>Q&&(null==W[W.length-1].w?(M=Q+M,Q=0):Q+=W.length);var Tc=[];"call"==Je&&(gb=1E5,Tc=["CALL"]);for(void 0!==Ie&&a.f(M+" instructions earlier:");0<gb&&Q!=a.S;){var Me=W[Q++];if(null==Me.w)break;var hb=S(Me.w),dg=M--,Ne=ef(a,hb,"history",dg);(!Tc.length||0<=Ne.indexOf(Tc[0]))&&a.f(Ne);hb.Ua&&(Q+=hb.Ua,gb-=hb.Ua,M-=hb.Ua);Q>=W.length&&(Q=0);a.ra=M;Le++;gb--}}Le||(a.f("no "+Ke+"history available"),
|
||||
a.ra=void 0)}else{var qa=Z(a,V);if(qa){var ra=0,Oe="ds"==La;if(ia){if("l"==ia.charAt(0))ia=ia.substr(1)||cg,ra=ae(a,ia);else{var Pe=Z(a,ia);Pe&&(ra=Pe.w-qa.w)}0>ra&&(ra=0);65536<ra&&(ra=65536)}var eg=a.ba;qa.ba&&(a.ba=qa.ba);for(var Qe="db"==La?1:2,Uc=ra||32,Vc=1==Qe?2:4,fg=(Uc+Vc-1)/Vc|0||1,sa="";fg--&&0<Uc;){for(var ta="",Re="",V=L(a,qa.w),Se=Vc;0<Se--&&0<Uc--;){var Rb=a.wa(qa,1);Oe?(ta&&(ta+=","),ta+=Rb):(ta+=oe(Rb),ta+=" ");for(var Te=0;1==Qe&&6>Te;Te++)Re+=String.fromCharCode((Rb%64|0)+32),
|
||||
Rb/=64}sa&&(sa+="\n");sa=Oe?sa+(ta+","):sa+(V+": "+ta+(0>Se?" "+Re:""))}sa&&a.f(sa);ie(a.xa,qa);a.ba=eg}}}}break;case "e":if("else"==f[0])break;var Ue,Ve,We=f[0],Wc=f[1];"e"==We||"ew"==We?(Ue=a.wa,Ve=a.$a):Wc=null;if(null==Wc)a.f("edit memory commands:"),a.f("\tew [a] [...] edit words at address a");else{var Sb=Z(a,Wc);if(Sb)for(var Tb=2;Tb<f.length;Tb++){var Xc=R(a,f[Tb]);if(void 0===Xc){a.f("unknown value: "+f[Tb]);break}a.f("changing "+L(a,Sb.w)+" from "+oe(Ue.call(a,Sb))+" to "+oe(Xc));Ve.call(a,
|
||||
Sb,Xc,1)}}break;case "g":a:{var Xe=f[1],gg=b;if(void 0!==Xe){var Yc=Z(a,Xe,!0);if(!Yc)break a;ne(a,Yc,gg);a.Ba(a.b,Yc,!0)}ue(a,!0,c)}break;case "h":a.j.K?(c||a.f("halting"),a.W()):Qa(a,!0)||c||a.f("already halted");break;case "i":if("if"==f[0]){var Zc;var ib=b.substr(2),ib=db(ib);R(a,ib)?(c||a.f("true: "+ib),Zc=!0):(c||a.f("false: "+ib),Zc=!1);Zc||(d=!1);break}g=!0;break;case "k":var hg=f[0];if("?"==f[1])a.f("stack trace commands:"),a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");
|
||||
else{var $c=0,ad=S(),jb=S();for(a.f("stack trace for "+L(a,jb.w));10>$c;){for(var ua=null,ig=256;65536>jb.w>>>0;){ad.w=a.wa(jb,2);if(null==jb.w||!ig--)break;if(!(ad.w&1)){for(var jg=a,Ub=ad,Ye=null,kb=Ub.w,Ze=kb,bd=1;6>=bd&&kb;bd++){if(2<bd){Ub.w=kb;var Vb=ef(jg,Ub);if(0<=Vb.indexOf("JSR")){var $e=Vb.indexOf(" ");if(kb+(Vb.indexOf(" ",$e+1)-$e-1)/2==Ze){Ye=Vb;break}}}kb-=2}Ub.w=Ze;if(ua=Ye)break}}if(!ua||null==ua)break;var af=null;if("ks"==hg){var bf=ua.match(/[0-9A-F]+$/);bf&&(af=wf(a,bf[0]))}ua=
|
||||
cb(ua,50)+" ;"+(af||"stack="+L(a,jb.w));a.f(ua);$c++}$c||a.f("no return addresses found")}break;case "l":if("ln"==f[0]){wf(a,f[1],!0);break}g=!0;break;case "m":a:{var X,Y=null,y=f[1];"?"==y&&(y=void 0);if(void 0!==y){var ja=0;if("all"==y)ja=1879046143,y=null;else if("on"==y)Y=!0,y=null;else if("off"==y)Y=!1,y=null;else{"keys"==y&&(y="key");"kbd"==y&&(y="keyboard");for(X in G)if(y==X){ja=G[X];Y=!!(a.X&ja);break}if(!ja){a.f("unknown message category: "+y);break a}}if(ja)if("on"==f[2])a.X|=ja,Y=!0;
|
||||
else if("off"==f[2]&&(a.X&=~ja,Y=!1,1073741824==ja)){for(var cf=1E3<=a.N.length?a.N.length-1E3:0;cf<a.N.length;)a.f(a.N[cf++]);a.N=[]}}var kg=0,lb="";for(X in G)if(!y||y==X){var lg=!!(a.X&G[X]);if(null===Y||Y==lg)lb&&(lb+=","),++kg%10||(lb+="\n\t"),"key"==X&&(X="keys"),lb+=X}void 0===y&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==Y?Y?"messages on: ":"messages off: ":"message categories:\n\t")+(lb||"none"));ge(a)}break;case "p":if("print"==f[0]){xf(a,b.substr(5));
|
||||
break}var mg=f[0];if("?"==f[1])a.f("step commands:"),a.f("\tp\tstep over instruction"),a.f("\tpr\tstep over instruction with register update");else{var ng="pr"==mg?1:0;if(a.M)a.f("step in progress");else{var df=S(a.g.u);a.wa(df);a.M?(a.Ba(a.b,df,!0),ue(a)||(a.C&&vd(a.C),a.M=0)):yf(a,ng?"tr":"t")}}break;case "r":if("reset"==b){a.C&&a.C.reset();break}xe(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var mb=+f[2];if(8==mb||10==mb||16==mb)a.ba=mb;else{a.f("invalid base: "+mb);break}}a.f("default base: "+
|
||||
a.ba);break;case "cs":var nb;void 0!==f[3]&&(nb=+f[3]);switch(f[2]){case "int":a.g.da=nb;break;case "start":a.g.ta=nb;break;case "stop":a.g.ia=nb;break;default:a.f("unknown cs option");break a}void 0!==nb&&nd(a.g);a.f("checksums "+(a.g.j.Ea?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(sd(a.g,+f[2])||a.f("warning: using 1x multiplier, previous target not reached"));a.f("target speed: "+(a.g.S.toFixed(2)+"Mhz")+" ("+a.g.T+"x)");break;default:if(f[1]){a.f("unknown option: "+f[1]);break}case "?":a.f("debugger options:"),
|
||||
a.f("\tbase #\t\tset default base to #"),a.f("\tcs int #\tset checksum cycle interval to #"),a.f("\tcs start #\tset checksum cycle start count to #"),a.f("\tcs stop #\tset checksum cycle stop count to #"),a.f("\tsp #\t\tset speed multiplier to #")}break;case "t":yf(a,f[0],f[1]);break;case "u":ye(a,f[1],f[2],8);break;case "v":if("var"==f[0]){vf(a,b.substr(3))||(d=!1);break}if("ver"==f[0]){a.f((Jb||"PDP10")+" version 1.34.0 ("+a.g.eb+",RELEASE)");a.f(window?window.navigator.userAgent:"");break}g=!0;
|
||||
break;case "?":if(f[1]){xf(a,b.substr(1));break}var cd="commands:",dd;for(dd in Af)cd+="\n"+cb(dd,9)+Af[dd];Ed(a)||(cd+="\nnote: history disabled if no exec breakpoints");a.f(cd);break;default:g=!0}g&&(a.f("unknown command: "+b),d=!1)}}catch(ff){a.f("debugger error: "+(ff.stack||ff.message)),d=!1}return d}function qd(a,b,c){b=Yd(a,b,c);for(var d in b)if(!qf(a,b[+d]))return!1;return!0}
|
||||
function Ae(a,b,c,d){var e=R(b.w),g=a.wa(b,1),f,h,k,m=0,n=g/Ob|0,r;for(r in ff)if(f=ff[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=hf;m=n&3;break;case 32256:k=jf;m=n&7;break;case 29248:k=kf,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>lf&&(k="B");k=mf[f||0]+k;k=cb(k,8);f?(k=28700==h?k+K(a,g/Pb&127,-1):k+K(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=K(a,g&262143,-1),(g=g>>18&15)&&(k+="("+K(a,g,-1)+")")):k+=oe(g);g=k;f="";h=K(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(k=a.wa(e,1),f+=" "+oe(k),null==
|
||||
e.w)break;while(e.w!=b.w)}h+=cb(f,16)+g;c&&(h=cb(h,48)+";"+(c||""),h=a.g.j.Ea?h+("cycles="+rd(a.g).toString()+" cs="+E(a.g.sa)):h+(null!=d?"="+d.toString():""));return h}function fe(a){var b,c;a.b=["bp"];if(a.L)for(b=1;b<a.L.length;b++){c=a.L[b];c=S(c);var d=a.D;hd(d.b[c>>>d.i],!1)}a.L=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=S(c),d=a.D,hd(d.b[c>>>d.i],!0);a.I=["bw"];a.qa=0;a.ja=0}
|
||||
l.Ba=function(a,b,c){var d=!0;c||nf(this,a,b,!1,!0);if(a!=this.b){var e=S(b);if(-1===e)this.f("invalid address: "+K(this,b.w)),d=!1;else{var g=this.D;g.b[e>>>g.i].Ba(e&16383,a==this.I)}}d&&(a.push(b),c?b.ea=!0:(of(this,a,a.length-1,"set"),ge(this)));return d};function nf(a,b,c,d,e){var g=!1;c=S(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==S(h)&&(!d||h.ea)){g=!0;h.ea||e||of(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.D,hd(d.b[c>>>d.i],b==a.I));h.ea||ge(a);break}}return g}
|
||||
function pf(a,b){for(var c=1;c<b.length;c++)of(a,b,c);return b.length-1}function of(a,b,c,d){c=b[c];a.f(b[0]+" "+K(a,c.w)+(d?" "+d:c.Oa?' "'+c.Oa+'"':""))}function ze(a,b){if(void 0!==b)id(a,b,1,a.b,!0),a.M=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ea){if(!nf(a,a.b,c,!0))break;b=0}}}
|
||||
function id(a,b,c,d,e){var g=!1;if(!a.qa++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.ea)for(var k=S(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ea&&(nf(a,d,h,!0),e=!0);if(n=h.gb){for(var g=!1,r=0;r<n.length;r++)if(!qf(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var y=r+1;y<n.length&&n[y].indexOf("else");y++)r++;if(y==n.length){g=!0;break}}a.g.j.K||(g=!0)}if(g){e||of(a,d,f,"hit");break}}}a.qa--;return g}
|
||||
function rf(a,b){var c=pe[b]||"";c&&(c+="="+K(a,a.Wa(b),b==re?23:18)+" ");return c}function sf(a,b){for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,g=Wa(d,2);je(e.ua,d);g+="="+K(e,e.wa(e.ua),36)+" ";c+=g}b&&(c+="\n"+(rf(a,qe)+rf(a,re)+rf(a,se)));return c}l.jb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Rd(a,b,c,d,e){var g=[],f;for(f in e){var h=e[f];"number"==typeof h&&(e[f]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=g,k=[k>>>0,f],r=fb(n,k,a.jb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({$c:b,w:c,zb:d,U:e,hb:g})}function tf(a,b,c){var d=[],e=S(b)>>>0;for(b=0;b<a.F.length;b++){var g=a.F[b],f=g.w>>>0,h=g.zb;if(e>=f&&e<f+h){e=fb(g.hb,[e-f],a.jb);0<=e?uf(a,b,e,d):c&&(e=~e,uf(a,b,e-1,d),uf(a,b,e,d));break}}return d}
|
||||
function uf(a,b,c,d){var e={},g=a.F[b].hb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.F[b].U[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function vf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return de(a)||a.f("no variables"),!0;if(!c[2])return de(a,c[1]);if(!c[3])return delete a.aa[c[1]],!0;b=P(a,c[3]);return void 0!==b?(a.aa[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
|
||||
function wf(a,b,c){var d=null;if(b=T(a,b,!0)){var e=tf(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.w-e[1])&&(f=" + "+E(g,4,!0)),g=e[0]+" ("+K(a,e[1])+")"+f,c&&a.f(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.w)&&(f=" - "+E(g,4,!0)),g=e[4]+" ("+K(a,e[5])+")"+f,c&&a.f(g),d||(d=g))}else c&&a.f("no symbols")}return d}
|
||||
function xe(a,b){var c;if(b&&"?"==b[1])a.f("register commands:"),a.f("\tr\tdump registers"),a.f("\trm\tdump misc registers"),a.f("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.g;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)d=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}f=P(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":e.u=f%Kb;je(a.J,e.u);break;default:a.f("unknown register: "+
|
||||
g);return}J(a.C);a.f("updated registers:")}}a.f(sf(a,d));c&&(je(a.J,e.u),ye(a,K(a,a.J.w)))}}function xf(a,b){b=db(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.f(c[2]):ce(a,null,c[2].charCodeAt(0)):P(a,b,!0)}
|
||||
function yf(a,b,c){if("?"==c)a.f("trace commands:"),a.f("\tt [#]\ttrace # instructions"),a.f("\ttr [#]\ttrace # instructions with register updates"),a.f("\ttc [#]\ttrace # cycles"),a.f("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=ae(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.sa=b;yb(c,function(){return Ra(a,!0)&&oc(a,e,d,!1)},function(){a.ha&&a.ha.stop();J(a.C,-1);Ra(a,!1)})}}
|
||||
function ye(a,b,c,d){if(b=T(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=ae(a,c.substr(1)),null!=c&&(d=c);else{d=T(a,c,!0);if(!d||d.w<b.w)return;e=d.w-b.w;if(256<e){a.f("range too large");return}d=-1}c=0;for(var g;0<e&&d--;){g=Qa(a,!1)||a.M?a.B:null;var f=null!=g?"cycles":null,h=tf(a,b),k=b.w;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(f=h[3],g=null);g=Ae(a,b,f,g);a.f(g);ie(a.J,b);e-=b.w-k;c++}}}
|
||||
function qf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(we+b):(a.R&&(a.f("ended assemble at "+K(a,a.O.w)),ie(a.J,a.O),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Pa(a)&&0<b.length){a.R&&(b="a "+K(a,a.O.w)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=
|
||||
T(a,f[1],!0);if(r){var y=f[2];a.O=r;if(void 0==y)a.f("begin assemble at "+K(a,r.w)),a.R=!0,J(a.C);else{f.shift();f.shift();f.shift();var U,Be=f.join(""),x=-1,Qb,$f=y.toUpperCase(),Lc;for(Lc in ff){var Ha;Qb=+Lc;var Ce=ff[Lc];switch(Qb){case 32512:Ha=hf;break;case 32256:Ha=jf;break;case 29248:Ha=kf;break;default:Ha=[""]}var De,Mc;for(Mc in Ce){for(var Ee=Ce[Mc],Ia=0;Ia<Ha.length;Ia++){var Nc=Ha[Ia];"S"==Nc&&Ee>lf&&(Nc="B");if($f==mf[Ee]+Nc){De=29248!=Qb?Ia:(Ia&3)<<1|(Ia&12)<<2;x=(Mc|De<<6)*Ob;break}}if(0<=
|
||||
x)break}if(0<=x)break}if(0<=x)if(Be)for(var Oc=Be.split(","),eb=0;eb<Oc.length;eb++){var Rb=Oc[eb].trim();if(Rb){if(1<eb){a.f("too many operands: "+Rb);x=-1;break}var V=Rb.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!V){a.f("unknown operand: "+Rb);x=-1;break}var D=P(a,V[2]);if(void 0==D){x=-1;break}if(!eb&&1<Oc.length)if(28700==Qb){if(0>D||127<D){a.f("device code out of range: "+V[2]);x=-1;break}x+=D*Pb}else{if(0>D||15<D){a.f("accumulator address out of range: "+V[2]);x=-1;break}x+=D<<23}else{if(0>D||262143<
|
||||
D){a.f("memory address out of range: "+V[2]);x=-1;break}x+=D;if(V[3]){D=P(a,V[3]);if(void 0==D){x=-1;break}if(0>D||15<D){a.f("memory index out of range: "+V[3]);x=-1;break}x+=D<<18}V[1]&&(x+=4194304)}}}else a.f("missing operand(s)"),x=-1;else a.f("unknown instruction: "+y);U=x;0<=U&&(a.$a(r,U),a.f(Ae(a,a.O)))}}break;case "b":a:{var ag=f[0],Ja=f[1],bg=b;if("?"==Ja)a.f("breakpoint commands:"),a.f("\tbp #\tset exec breakpoint"),a.f("\tbr #\tset read breakpoint"),a.f("\tbw #\tset write breakpoint"),a.f("\tbc #\tclear breakpoint (* to clear all)"),
|
||||
a.f("\tbl\tlist all breakpoints"),a.f("\tbn [#]\tbreak after # instruction(s)");else{var pa=ag.charAt(1);if("l"==pa){var Pc;Pc=0+pf(a,a.b);Pc+=pf(a,a.L);(Pc+=pf(a,a.I))||a.f("no breakpoints")}else if("n"==pa){var Fe=+Ja||0;Ja&&(a.ja=Fe);a.f("break after "+Fe+" instruction(s)")}else if(void 0===Ja)a.f("missing breakpoint address");else{var I=R();if("*"!=Ja&&(I=T(a,Ja,!0),!I))break a;"c"==pa?null==I.w?(fe(a),a.f("all breakpoints cleared")):nf(a,a.b,I)||nf(a,a.L,I)||nf(a,a.I,I)||a.f("breakpoint missing: "+
|
||||
K(a,I.w)):null!=I.w&&(ne(a,I,bg),"p"==pa?a.Ba(a.b,I):"r"==pa?a.Ba(a.L,I):"w"==pa?a.Ba(a.I,I):a.f("unknown breakpoint command: "+pa))}}}break;case "c":a.ma&&(a.ma.value="");break;case "d":a:{var Ka,La=f[0],W=f[1],ia=f[2],cg=f[3];if("?"==W){var Ma="";for(Ka in G)a.pa[Ka]&&(Ma&&(Ma+=","),Ma+=Ka);Ma+=",state,symbols";a.f("dump memory commands:");a.f("\tdw [a] [n] dump n words at address a");a.f("\tds [a] [n] dump n words at address a as JSON");a.f("\tdh [p] [n] dump n instructions from history position p");
|
||||
Ma.length&&a.f("dump extension commands:\n\t"+Ma)}else if("state"==W){var Qc=zf(a.C,!0);"console"==ia?console.log(Qc):(a.ma&&(a.ma.value=""),Qc&&a.f(Qc))}else if("symbols"==W)for(var Rc=0;Rc<a.F.length;Rc++){var Sc=a.F[Rc],Na;for(Na in Sc.U)if("."!=Na.charAt(0)){var Ge=Sc.U[Na].o;if(void 0!==Ge){var He=Sc.U[Na].l;He&&(Na=He);a.f(K(a,Ge)+" "+Na)}}}else{if("d"==La){for(Ka in G)if(f[1]==Ka){var Ie=a.pa[Ka];Ie?(f.shift(),f.shift(),Ie(f)):a.f("no dump registered for "+W);break a}W||(La=a.Da||"dw")}else a.Da=
|
||||
La;if("dh"==La){var Je=W,Ke=ia,Le="",Me=0,Q=a.S,X=a.i;if(X.length){var M=+Je||a.ra,gb=+Ke||10;isNaN(M)?M=gb:Le="more ";M>X.length&&(a.f("note: only "+X.length+" available"),M=X.length);Q-=M;0>Q&&(null==X[X.length-1].w?(M=Q+M,Q=0):Q+=X.length);var Tc=[];"call"==Ke&&(gb=1E5,Tc=["CALL"]);for(void 0!==Je&&a.f(M+" instructions earlier:");0<gb&&Q!=a.S;){var Ne=X[Q++];if(null==Ne.w)break;var hb=R(Ne.w),dg=M--,Oe=Ae(a,hb,"history",dg);(!Tc.length||0<=Oe.indexOf(Tc[0]))&&a.f(Oe);hb.Ua&&(Q+=hb.Ua,gb-=hb.Ua,
|
||||
M-=hb.Ua);Q>=X.length&&(Q=0);a.ra=M;Me++;gb--}}Me||(a.f("no "+Le+"history available"),a.ra=void 0)}else{var qa=T(a,W);if(qa){var ra=0,Pe="ds"==La;if(ia){if("l"==ia.charAt(0))ia=ia.substr(1)||cg,ra=ae(a,ia);else{var Qe=T(a,ia);Qe&&(ra=Qe.w-qa.w)}0>ra&&(ra=0);65536<ra&&(ra=65536)}var eg=a.ba;qa.ba&&(a.ba=qa.ba);for(var Re="db"==La?1:2,Uc=ra||32,Vc=1==Re?2:4,fg=(Uc+Vc-1)/Vc|0||1,sa="";fg--&&0<Uc;){for(var ta="",Se="",W=K(a,qa.w),Te=Vc;0<Te--&&0<Uc--;){var Sb=a.wa(qa,1);Pe?(ta&&(ta+=","),ta+=Sb):(ta+=
|
||||
oe(Sb),ta+=" ");for(var Ue=0;1==Re&&6>Ue;Ue++)Se+=String.fromCharCode((Sb%64|0)+32),Sb/=64}sa&&(sa+="\n");sa=Pe?sa+(ta+","):sa+(W+": "+ta+(0>Te?" "+Se:""))}sa&&a.f(sa);ie(a.xa,qa);a.ba=eg}}}}break;case "e":if("else"==f[0])break;var Ve,We,Xe=f[0],Wc=f[1];"e"==Xe||"ew"==Xe?(Ve=a.wa,We=a.$a):Wc=null;if(null==Wc)a.f("edit memory commands:"),a.f("\tew [a] [...] edit words at address a");else{var Tb=T(a,Wc);if(Tb)for(var Ub=2;Ub<f.length;Ub++){var Xc=P(a,f[Ub]);if(void 0===Xc){a.f("unknown value: "+f[Ub]);
|
||||
break}a.f("changing "+K(a,Tb.w)+" from "+oe(Ve.call(a,Tb))+" to "+oe(Xc));We.call(a,Tb,Xc,1)}}break;case "g":a:{var Ye=f[1],gg=b;if(void 0!==Ye){var Yc=T(a,Ye,!0);if(!Yc)break a;ne(a,Yc,gg);a.Ba(a.b,Yc,!0)}ue(a,!0,c)}break;case "h":a.j.K?(c||a.f("halting"),a.W()):Qa(a,!0)||c||a.f("already halted");break;case "i":if("if"==f[0]){var Zc;var ib=b.substr(2),ib=db(ib);P(a,ib)?(c||a.f("true: "+ib),Zc=!0):(c||a.f("false: "+ib),Zc=!1);Zc||(d=!1);break}g=!0;break;case "k":var hg=f[0];if("?"==f[1])a.f("stack trace commands:"),
|
||||
a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");else{var $c=0,ad=R(),jb=R();for(a.f("stack trace for "+K(a,jb.w));10>$c;){for(var ua=null,ig=256;65536>jb.w>>>0;){ad.w=a.wa(jb,2);if(null==jb.w||!ig--)break;if(!(ad.w&1)){for(var jg=a,Vb=ad,Ze=null,kb=Vb.w,$e=kb,bd=1;6>=bd&&kb;bd++){if(2<bd){Vb.w=kb;var Wb=Ae(jg,Vb);if(0<=Wb.indexOf("JSR")){var af=Wb.indexOf(" ");if(kb+(Wb.indexOf(" ",af+1)-af-1)/2==$e){Ze=Wb;break}}}kb-=2}Vb.w=$e;if(ua=Ze)break}}if(!ua||null==ua)break;var bf=null;
|
||||
if("ks"==hg){var cf=ua.match(/[0-9A-F]+$/);cf&&(bf=wf(a,cf[0]))}ua=cb(ua,50)+" ;"+(bf||"stack="+K(a,jb.w));a.f(ua);$c++}$c||a.f("no return addresses found")}break;case "l":if("ln"==f[0]){wf(a,f[1],!0);break}g=!0;break;case "m":a:{var Y,Z=null,z=f[1];"?"==z&&(z=void 0);if(void 0!==z){var ja=0;if("all"==z)ja=1879046143,z=null;else if("on"==z)Z=!0,z=null;else if("off"==z)Z=!1,z=null;else{"keys"==z&&(z="key");"kbd"==z&&(z="keyboard");for(Y in G)if(z==Y){ja=G[Y];Z=!!(a.X&ja);break}if(!ja){a.f("unknown message category: "+
|
||||
z);break a}}if(ja)if("on"==f[2])a.X|=ja,Z=!0;else if("off"==f[2]&&(a.X&=~ja,Z=!1,1073741824==ja)){for(var df=1E3<=a.N.length?a.N.length-1E3:0;df<a.N.length;)a.f(a.N[df++]);a.N=[]}}var kg=0,lb="";for(Y in G)if(!z||z==Y){var lg=!!(a.X&G[Y]);if(null===Z||Z==lg)lb&&(lb+=","),++kg%10||(lb+="\n\t"),"key"==Y&&(Y="keys"),lb+=Y}void 0===z&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==Z?Z?"messages on: ":"messages off: ":"message categories:\n\t")+(lb||"none"));ge(a)}break;
|
||||
case "p":if("print"==f[0]){xf(a,b.substr(5));break}var mg=f[0];if("?"==f[1])a.f("step commands:"),a.f("\tp\tstep over instruction"),a.f("\tpr\tstep over instruction with register update");else{var ng="pr"==mg?1:0;if(a.M)a.f("step in progress");else{var ef=R(a.g.u);a.wa(ef);a.M?(a.Ba(a.b,ef,!0),ue(a)||(a.C&&vd(a.C),a.M=0)):yf(a,ng?"tr":"t")}}break;case "r":if("reset"==b){a.C&&a.C.reset();break}xe(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var mb=+f[2];if(8==mb||10==mb||16==mb)a.ba=mb;
|
||||
else{a.f("invalid base: "+mb);break}}a.f("default base: "+a.ba);break;case "cs":var nb;void 0!==f[3]&&(nb=+f[3]);switch(f[2]){case "int":a.g.da=nb;break;case "start":a.g.ta=nb;break;case "stop":a.g.ia=nb;break;default:a.f("unknown cs option");break a}void 0!==nb&&nd(a.g);a.f("checksums "+(a.g.j.Ea?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(sd(a.g,+f[2])||a.f("warning: using 1x multiplier, previous target not reached"));a.f("target speed: "+(a.g.S.toFixed(2)+"Mhz")+" ("+a.g.T+"x)");break;
|
||||
default:if(f[1]){a.f("unknown option: "+f[1]);break}case "?":a.f("debugger options:"),a.f("\tbase #\t\tset default base to #"),a.f("\tcs int #\tset checksum cycle interval to #"),a.f("\tcs start #\tset checksum cycle start count to #"),a.f("\tcs stop #\tset checksum cycle stop count to #"),a.f("\tsp #\t\tset speed multiplier to #")}break;case "t":yf(a,f[0],f[1]);break;case "u":ye(a,f[1],f[2],8);break;case "v":if("var"==f[0]){vf(a,b.substr(3))||(d=!1);break}if("ver"==f[0]){a.f((Jb||"PDP10")+" version 1.34.0 ("+
|
||||
a.g.eb+",RELEASE)");a.f(window?window.navigator.userAgent:"");break}g=!0;break;case "?":if(f[1]){xf(a,b.substr(1));break}var cd="commands:",dd;for(dd in Af)cd+="\n"+cb(dd,9)+Af[dd];Ed(a)||(cd+="\nnote: history disabled if no exec breakpoints");a.f(cd);break;default:g=!0}g&&(a.f("unknown command: "+b),d=!1)}}catch(gf){a.f("debugger error: "+(gf.stack||gf.message)),d=!1}return d}function qd(a,b,c){b=Yd(a,b,c);for(var d in b)if(!qf(a,b[+d]))return!1;return!0}
|
||||
var Af={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},lf=20,mf=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOV MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CA JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO".split(" "),
|
||||
qe=0,re=1,se=2,pe=["PC","RA","EA"],Bf={},gf=(Bf[28672]={0:101},Bf[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Bf[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:lf,9216:53,9472:52,9728:55,9984:54,11776:50,12032:51,16384:30,
|
||||
qe=0,re=1,se=2,pe=["PC","RA","EA"],Bf={},ff=(Bf[28672]={0:101},Bf[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Bf[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:lf,9216:53,9472:52,9728:55,9984:54,11776:50,12032:51,16384:30,
|
||||
16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},Bf[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Bf[29248]={24576:79,24640:80,25088:81,25152:82},Bf[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,28692:98,28696:99,28700:100},Bf),hf=["","I",
|
||||
"M","S"],jf=" L E LE A GE N G".split(" "),kf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),te=1E3,we=">> ";Bb(function(){for(var a=C(document,B,"debugger"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new ee(d);Aa(d,c)}});
|
||||
function Cf(a,b,c){t.call(this,"Computer",a,33554432);this.j.V=!1;this.R=null;Df(this,b);this.N=ld(this,"autoPower",a,6);this.v=0;this.aa=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.J=this.T=!1;this.I=this.B=null;this.S=this.O=!1;this.da=ld(this,"url")||"";(Math.random()+.1).toString(36);this.i=Ef(this);if(this.g=za("CPU",this.id)){this.A=za("Debugger",this.id);this.D=new uc({id:this.La+".bus",busWidth:this.aa},this.g,this.A);var d,e=w(this.id);if((this.u=za("Panel",this.id))&&this.u.ma)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.ca=this.u.ca,d.f=this.u.f,d.ma=this.u.ma;this.f(Jb+" v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.va&&d.va(this,this.D,this.g,this.A);b=null;d=ld(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var g;if(a=ld(this,"state")||(g=!0,a.state))this.M=b=a,g||(this.J=!0,this.b=Ff),this.b&&(this.I=new J(this,"1.34.0"),Gf(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=Hf(this))&&(this.J=!0);if(b){var f=this;pb(b,null,!0,function(a,b,c){c?(f.F=null,f.J=!1,f.ca("Unable to load machine state from server (error "+c+(b?": "+db(b):"")+")")):(f.L=b,f.T=!0);D(f)})}else D(this);this.G.power||(this.N=!0);!c&&this.N&&If(this,this.Ga)}else v("Unable to find CPU component")}p(Cf,t);function Df(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.R=b}
|
||||
function ld(a,b,c,d){var e=b.toLowerCase(),e=wb(b)||wb(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function If(a,b,c){for(var d=w(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Pa(g)){Pa(g,function(){If(a,b,c)});return}}b.call(a,c)}
|
||||
function Jf(a,b){var c=new J(a,"1.34.0",Kf);if(Gf(c)&&Lf(c)){var d=c.get(Mf),e=b?b.get(Mf):"unknown";d!=e&&(a.ca("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Cf.prototype;
|
||||
l.Ga=function(a){void 0===a&&(a=this.b||(this.L?Nf:Ff));if(!this.v){this.v++;var b=!1,c=!1;this.O=!1;var d=this.I||new J(this,"1.34.0");if(a==Of)b=!0;else if(a>Ff){if(Gf(d,this.L)){this.B=new J(this,"1.34.0",Pf);Gf(this.B)&&(Qf(this,d),a=Rf,Sf(this.B));this.B.set(Mf,ob());Tf(this.B);var e=this.b&&!this.J;if(a==Nf||xa("Click OK to restore the previous "+Jb+" machine state, or CANCEL to reset the machine.")){if(c=Lf(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?Gf(d,f):("error"==g&&"no machine state"!=
|
||||
f?(this.ca("Error: "+f),"unable to verify user"==f&&(ub(Uf,""),this.i=null)):this.f(g+": "+f),Sf(d),Gf(d)?(c=Lf(d),e=!0):c=!1))}e&&Jf(this,c?d:null)}else a==Rf&&d.clear()}else Jf(this);delete this.L;delete this.I}e=w(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.g&&(c=Vf(this,f,d,b,c));b=[d,a,c];a!=Of?If(this,this.kb,b):this.kb(b)}};
|
||||
"M","S"],jf=" L E LE A GE N G".split(" "),kf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),te=1E3,we=">> ";Bb(function(){for(var a=B(document,A,"debugger"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new ee(d);Aa(d,c)}});
|
||||
function Cf(a,b,c){t.call(this,"Computer",a,33554432);this.j.V=!1;this.R=null;Df(this,b);this.N=ld(this,"autoPower",a,6);this.v=0;this.aa=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.J=this.T=!1;this.I=this.B=null;this.S=this.O=!1;this.da=ld(this,"url")||"";(Math.random()+.1).toString(36);this.i=Ef(this);if(this.g=za("CPU",this.id)){this.A=za("Debugger",this.id);this.D=new vc({id:this.La+".bus",busWidth:this.aa},this.g,this.A);var d,e=xa(this.id);if((this.u=za("Panel",this.id))&&this.u.ma)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.ca=this.u.ca,d.f=this.u.f,d.ma=this.u.ma;this.f(Jb+" v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.va&&d.va(this,this.D,this.g,this.A);b=null;d=ld(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var g;if(a=ld(this,"state")||(g=!0,a.state))this.M=b=a,g||(this.J=!0,this.b=Ff),this.b&&(this.I=new H(this,"1.34.0"),Gf(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=Hf(this))&&(this.J=!0);if(b){var f=this;pb(b,null,!0,function(a,b,c){c?(f.F=null,f.J=!1,f.ca("Unable to load machine state from server (error "+c+(b?": "+db(b):"")+")")):(f.L=b,f.T=!0);C(f)})}else C(this);this.G.power||(this.N=!0);!c&&this.N&&If(this,this.Ga)}else v("Unable to find CPU component")}p(Cf,t);function Df(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.R=b}
|
||||
function ld(a,b,c,d){var e=b.toLowerCase(),e=wb(b)||wb(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function If(a,b,c){for(var d=xa(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Pa(g)){Pa(g,function(){If(a,b,c)});return}}b.call(a,c)}
|
||||
function Jf(a,b){var c=new H(a,"1.34.0",Kf);if(Gf(c)&&Lf(c)){var d=c.get(Mf),e=b?b.get(Mf):"unknown";d!=e&&(a.ca("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Cf.prototype;
|
||||
l.Ga=function(a){void 0===a&&(a=this.b||(this.L?Nf:Ff));if(!this.v){this.v++;var b=!1,c=!1;this.O=!1;var d=this.I||new H(this,"1.34.0");if(a==Of)b=!0;else if(a>Ff){if(Gf(d,this.L)){this.B=new H(this,"1.34.0",Pf);Gf(this.B)&&(Qf(this,d),a=Rf,Sf(this.B));this.B.set(Mf,ob());Tf(this.B);var e=this.b&&!this.J;if(a==Nf||wa("Click OK to restore the previous "+Jb+" machine state, or CANCEL to reset the machine.")){if(c=Lf(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?Gf(d,f):("error"==g&&"no machine state"!=
|
||||
f?(this.ca("Error: "+f),"unable to verify user"==f&&(ub(Uf,""),this.i=null)):this.f(g+": "+f),Sf(d),Gf(d)?(c=Lf(d),e=!0):c=!1))}e&&Jf(this,c?d:null)}else a==Rf&&d.clear()}else Jf(this);delete this.L;delete this.I}e=xa(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.g&&(c=Vf(this,f,d,b,c));b=[d,a,c];a!=Of?If(this,this.kb,b):this.kb(b)}};
|
||||
function Vf(a,b,c,d,e){if(!b.j.V){b.j.V=!0;var g=null;try{if(e&&((g=c.get(b.id))||(g=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof g&&(g=null),!b.na(g,d)&&g&&(v("Unable to restore state for "+b.type),a.M&&!a.T?(c.clear(),a.b=Ff,window&&window.location.reload()):a.O=!0,b.na(null),e=!1),!d&&b.cb){var f=b.cb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){v("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
l.kb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.j.V=!0;var d=this.G.power;d&&(d.textContent="Shutdown");this.g&&(Vf(this,this.g,b,c,a),K(this,-2),this.g.Z());this.O&&(Qf(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.v=0};
|
||||
function Qf(a,b){if(xa("There may be a problem with your "+Jb+" machine.\n\nTo help us diagnose it, click OK to send this "+Jb+" machine state to http://www.pcjs.org.")){var c=a.da;a=a.i||"";b=b.toString();var d={};d.app=Jb;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;pb("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function zf(a,b,c){var d,e="none";if(a.v)return null;a.v--;var g=new J(a,"1.34.0"),f=new J(a,"1.34.0",Kf),h=ob();f.set(Mf,h);g.set(Mf,h);g.set(Wf,"1.34.0");g.set(Xf,window?window.location.href:null);g.set(Yf,window?window.navigator.userAgent:"");a.g&&a.g.fa&&(c&&(b&&(a.g.j.Z=a.g.j.K),a.g.W()),d=a.g.fa(b,c),"object"===typeof d&&g.set(a.g.id,d),c&&(a.g.j.V=!1,!1===d&&(e=null)));for(var h=w(a.id),k=0;k<h.length;k++){var m=h[k];m.j.V&&(m.fa&&(d=m.fa(b,c),"object"===typeof d&&g.set(m.id,d)),c&&(m.j.V=
|
||||
l.kb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.j.V=!0;var d=this.G.power;d&&(d.textContent="Shutdown");this.g&&(Vf(this,this.g,b,c,a),J(this,-2),this.g.Z());this.O&&(Qf(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.v=0};
|
||||
function Qf(a,b){if(wa("There may be a problem with your "+Jb+" machine.\n\nTo help us diagnose it, click OK to send this "+Jb+" machine state to http://www.pcjs.org.")){var c=a.da;a=a.i||"";b=b.toString();var d={};d.app=Jb;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;pb("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function zf(a,b,c){var d,e="none";if(a.v)return null;a.v--;var g=new H(a,"1.34.0"),f=new H(a,"1.34.0",Kf),h=ob();f.set(Mf,h);g.set(Mf,h);g.set(Wf,"1.34.0");g.set(Xf,window?window.location.href:null);g.set(Yf,window?window.navigator.userAgent:"");a.g&&a.g.fa&&(c&&(b&&(a.g.j.Z=a.g.j.K),a.g.W()),d=a.g.fa(b,c),"object"===typeof d&&g.set(a.g.id,d),c&&(a.g.j.V=!1,!1===d&&(e=null)));for(var h=xa(a.id),k=0;k<h.length;k++){var m=h[k];m.j.V&&(m.fa&&(d=m.fa(b,c),"object"===typeof d&&g.set(m.id,d)),c&&(m.j.V=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Zf(a,a.i,g.toString()),Tf(f)&&Tf(g)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==og),d&&g.clear(h)):e=g.toString());c&&(a.j.V=!1,b=a.G.power)&&(b.textContent="Power");a.v=0;return e}
|
||||
l.reset=function(){this.j.reset=!0;this.D&&this.D.reset&&(Ta(this,"Resetting "+this.D.type),this.D.reset());this.g&&this.g.reset&&(Ta(this,"Resetting "+this.g.type),this.g.reset());for(var a=w(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.D&&c!==this.g&&c.reset&&(Ta(this,"Resetting "+c.type),c.reset())}this.j.reset=!1;K(this,-1)};l.start=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}K(this,-1)};
|
||||
l.stop=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}K(this,-1)};
|
||||
function K(a,b){if(a.g){var c=a.g,d=b||0,e=c.G.speed;e&&(0>=d||30<=(c.Ca+=d))&&(e.textContent=c.j.K?c.R.toFixed(2)+"Mhz":"Stopped",c.Ca=0)}if(a.u&&(a=a.u,b=b||0,a.L)){c=a.g.j.K;d=!!(a.g.v&8);if(0>=b||60<=(a.J+=b)){e=a.g.u;if(a.G.PC){var g=a.A&&a.A.ba||8,e=e||0,e=8==g?Wa(e,void 0):E(e,void 0);a.G.PC.textContent!=e&&(a.G.PC.textContent=e)}a.J=0}-1>b?a.i=a.g.u:0<b&&c&&!d&&(a.i=a.g.pa);ec(a,a.i);Zb(a,a.v)}}
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case "power":return this.G[b]=c,c.onclick=function(){d.v||(d.j.V?zf(d,!1,!0):If(d,d.Ga))},!0;case "reset":return this.G[b]=c,c.onclick=function(){if(d.j.V&&!d.v)if(d.b&&!d.F){var a=xa("Click OK to save changes to this "+Jb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");zf(d,a,!0);!a&&d.M?window&&window.location.reload():d.Ga(Ff)}else d.reset(),d.g&&!d.A&&d.g.Z()},!0;case "save":if(Za())c.parentNode.removeChild(c);else return this.G[b]=
|
||||
l.reset=function(){this.j.reset=!0;this.D&&this.D.reset&&(Ta(this,"Resetting "+this.D.type),this.D.reset());this.g&&this.g.reset&&(Ta(this,"Resetting "+this.g.type),this.g.reset());for(var a=xa(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.D&&c!==this.g&&c.reset&&(Ta(this,"Resetting "+c.type),c.reset())}this.j.reset=!1;J(this,-1)};l.start=function(a,b){for(var c=xa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}J(this,-1)};
|
||||
l.stop=function(a,b){for(var c=xa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}J(this,-1)};
|
||||
function J(a,b){if(a.g){var c=a.g,d=b||0,e=c.G.speed;e&&(0>=d||30<=(c.Ca+=d))&&(e.textContent=c.j.K?c.R.toFixed(2)+"Mhz":"Stopped",c.Ca=0)}if(a.u&&(a=a.u,b=b||0,a.L)){c=a.g.j.K;d=!!(a.g.v&8);if(0>=b||60<=(a.J+=b)){e=a.g.u;if(a.G.PC){var g=a.A&&a.A.ba||8,e=e||0,e=8==g?Wa(e,void 0):E(e,void 0);a.G.PC.textContent!=e&&(a.G.PC.textContent=e)}a.J=0}-1>b?a.i=a.g.u:0<b&&c&&!d&&(a.i=a.g.pa);fc(a,a.i);$b(a,a.v)}}
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case "power":return this.G[b]=c,c.onclick=function(){d.v||(d.j.V?zf(d,!1,!0):If(d,d.Ga))},!0;case "reset":return this.G[b]=c,c.onclick=function(){if(d.j.V&&!d.v)if(d.b&&!d.F){var a=wa("Click OK to save changes to this "+Jb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");zf(d,a,!0);!a&&d.M?window&&window.location.reload():d.Ga(Ff)}else d.reset(),d.g&&!d.A&&d.g.Z()},!0;case "save":if(Za())c.parentNode.removeChild(c);else return this.G[b]=
|
||||
c,c.onclick=function(){var a=Ef(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=zf(d,b);b?Zf(d,a,c):d.ca("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Ef(a,b){var c=a.i;c||((c=tb(Uf),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=pg(a,c))||a.ca("The user ID is invalid.")):b&&a.ca("Browser local storage is not available"));return c}
|
||||
function pg(a,b){a.i=null;b=pb($a()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ub(Uf,b.data),a.i=b.data)}catch(d){v(d.message+" ("+c+")")}return a.i}function Hf(a){var b=null;a.i&&(b=$a()+"/api/v1/user?req=load&user="+a.i+"&state="+qg(a,"1.34.0"));return b}
|
||||
function Zf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=qg(a,"1.34.0");d.data=c;b=pb($a()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ca("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.ca(c),ub(Uf,""),a.i=null)}}
|
||||
function vd(a,b){if(a.ma){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.ma.focus();!b&&window&&window.scrollTo(c,d)}}var Pf="failsafe",Kf="validate",Mf="timestamp",Wf="version",Xf="url",Yf="browser",Uf="user",Of=-1,Ff=0,Nf=1,Rf=2,og=3;Bb(function(){for(var a=C(document,B+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=C(c,B,"computer"),e=0;e<c.length;e++){var g=c[e],f=z(g),f=new Cf(f,d,!0);Aa(f,g);f.N&&If(f,f.Ga)}});
|
||||
Cb.show.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=za("Computer",c.id))&&c.S&&!c.j.V&&c.Ga(Of)}});Cb.exit.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=za("Computer",c.id))&&c.j.V&&zf(c,!(!c.b||c.F),!0)}});function J(a,b,c){this.id=a.id;this.g="";this.b={};this.A=this.C=!1;this.key=qg(a,b,c);Sf(this,a.tb)}l=J.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
|
||||
function vd(a,b){if(a.ma){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.ma.focus();!b&&window&&window.scrollTo(c,d)}}var Pf="failsafe",Kf="validate",Mf="timestamp",Wf="version",Xf="url",Yf="browser",Uf="user",Of=-1,Ff=0,Nf=1,Rf=2,og=3;Bb(function(){for(var a=B(document,A+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=w(c),c=B(c,A,"computer"),e=0;e<c.length;e++){var g=c[e],f=w(g),f=new Cf(f,d,!0);Aa(f,g);f.N&&If(f,f.Ga)}});
|
||||
Cb.show.push(function(){for(var a=B(document,A,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=za("Computer",c.id))&&c.S&&!c.j.V&&c.Ga(Of)}});Cb.exit.push(function(){for(var a=B(document,A,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=za("Computer",c.id))&&c.j.V&&zf(c,!(!c.b||c.F),!0)}});function H(a,b,c){this.id=a.id;this.g="";this.b={};this.A=this.C=!1;this.key=qg(a,b,c);Sf(this,a.tb)}l=H.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
|
||||
l.data=function(){return this.b};function Gf(a,b){return b?(a.g=b,a.A=!0,a.C=!1,!0):a.A?!0:rb()&&(b=tb(a.key))?(a.g=b,a.A=!0):!1}function Lf(a){var b=!0;if(!a.C)try{a.b=JSON.parse(a.g),a.C=!0}catch(c){v(c.message||c),b=!1}return b}function Tf(a){var b=!0;if(rb()){var c=JSON.stringify(a.b);ub(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};
|
||||
function Sf(a,b){a.g="";a.b={};a.A=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){Sf(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function qg(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var rg=0;
|
||||
function sg(a,b,c,d,e,g,f){g("Loading "+a+"...");pb(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):tg(k,a,b,c,d,e,g,f)})}
|
||||
function tg(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(oa(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
function tg(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(na(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?g?ug(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function ug(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pb(e,null,!0,function(g,f,h){if(h||!f)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=f.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(f=f.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}f=f.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],f);ug(a,b,c)}})}else c(a,null)}
|
||||
function vg(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&C(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=ab(a))}function f(a){g("Error: "+a);m&&(--rg||Fb(!0));m=!1}var h,k,m=!0;rg++;va[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],x=document.createElement("style");x.type="text/css";x.styleSheet?x.styleSheet.cssText=n:x.appendChild(document.createTextNode(n));r.appendChild(x)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.0/components.xsl");n=function(e,k){k?sg(d,null,a,null,!1,g,function(a,e){e?(oa(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--rg||Fb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--rg||
|
||||
function vg(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&B(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=ab(a))}function f(a){g("Error: "+a);m&&(--rg||Fb(!0));m=!1}var h,k,m=!0;rg++;oa[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=n:y.appendChild(document.createTextNode(n));r.appendChild(y)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.0/components.xsl");n=function(e,k){k?sg(d,null,a,null,!1,g,function(a,e){e?(na(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--rg||Fb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--rg||
|
||||
Fb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?sg(c,b,a,e,!0,g,n):tg(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(U){f(U.message)}return m}window.embedPDP10=function(a,b,c,d){Fb(!1);return vg("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){Fb(!1);return vg("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return za(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Ca[a]){for(var c=!0,d=Ca,e=a,g=b.length,f=[],h=[],k="",m=null,n=0;n<g;n++){var r=b[n];if('"'==r||"'"==r)m&&r!=m?k+=r:(m?m=null:m=r,k&&(h.push(k),k=""));else{if(!m){if("\r"==r||"\n"==r)r=";";if(" "==r||"\t"==r||";"==r){k&&(h.push(k),k="");";"==r&&h.length&&(f.push(h),h=[]);continue}}k+=r}}k&&h.push(k);h.length&&f.push(h);d[e]=f;Ba(a)||(c=!1)}return c};window.enableEvents=Fb;window.sendEvent=Hb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.0/pdp10-dbg.map
|
||||
|
|
|
|||
Loading…
Reference in a new issue