Sync'ed some of the constants used in the pdp10 and int36 modules

This commit is contained in:
Jeff 2017-03-05 10:19:04 -08:00 committed by Jeff Parsons
commit 61e64bf3fc
4 changed files with 92 additions and 91 deletions

View file

@ -101,20 +101,21 @@ var PDP10 = {
* automatic inlining will no longer occur.
*/
ADDR_INVALID: -1,
ADDR_LIMIT: Math.pow(2, 18),
ADDR_MASK: Math.pow(2, 18) - 1,
WORD_INVALID: -1,
INT_LIMIT: Math.pow(2, 35), // signed word (magnitude) limit
INT_MASK: Math.pow(2, 35) - 1, // signed word (magnitude) mask
WORD_LIMIT: Math.pow(2, 36), // unsigned word limit
WORD_MASK: Math.pow(2, 36) - 1, // unsigned word mask
HALF_SHIFT: Math.pow(2, 18), // unsigned half-word shift
HALF_MASK: Math.pow(2, 18) - 1, // unsigned half-word mask
ADDR_LIMIT: Math.pow(2, 18),
/*
* 18-bit and 36-bit largest positive (and smallest negative) values; however, since we store all
* values as unsigned quantities, these are the unsigned equivalents.
*/
WORD_INVALID: -1,
INT_MASK: Math.pow(2, 35) - 1, // 34,359,738,367 (377777 777777): signed word (magnitude) mask
INT_LIMIT: Math.pow(2, 35), // -34,359,738,368 (400000 000000): signed word (magnitude) limit
WORD_MASK: Math.pow(2, 36) - 1, // 68,719,476,735 (777777 777777): unsigned word mask
WORD_LIMIT: Math.pow(2, 36), // 68,719,476,735 (1 000000 000000): unsigned word limit
HALF_MASK: Math.pow(2, 18) - 1, // unsigned half-word mask
HALF_SHIFT: Math.pow(2, 18), // unsigned half-word shift
MAX_POS18: Math.pow(2, 17) - 1, // 131,071 (377777)
MIN_NEG18: Math.pow(2, 17), // -131,072 (400000)
MAX_POS36: Math.pow(2, 35) - 1, // 34,359,738,367 (377777 777777)

View file

@ -123,7 +123,7 @@
* @unrestricted
*
* The 'value' property stores the 36-bit value as an unsigned integer. When the value should be
* interpreted as a signed quantity, subtract BIT36 whenever value > MAXPOS.
* interpreted as a signed quantity, subtract BIT36 whenever value > MAX_POS36.
*
* The 'extended' property stores an additional 36 bits of data from a multiplication, and can also
* provide an additional 36 bits of data to a division. Internally, it should be null whenever the
@ -152,9 +152,9 @@ class Int36 {
*
* 0 <= i <= Math.pow(2, 36) - 1
*
* The lower bound is ZERO and the upper bound is Int36.MAXVAL. Whenever an Int36 value should be
* interpreted as a signed value, values above Int36.MAXPOS (ie, values with bit 35 set) should be
* converted to their signed counterpart by subtracting the value from Int36.BIT36 (aka MAXVAL + 1);
* The lower bound is ZERO and the upper bound is Int36.WORD_MASK. Whenever an Int36 value should be
* interpreted as a signed value, values above Int36.MAX_POS36 (ie, values with bit 35 set) should be
* converted to their signed counterpart by subtracting the value from Int36.BIT36 (aka WORD_MASK + 1);
* the easiest way to do that is call isNeg() to check the sign bit and then call negate() as
* appropriate.
*
@ -322,12 +322,12 @@ class Int36 {
/**
* truncate(result, operand, fSub)
*
* The range of valid results (0 - MAXVAL) is divided into two equal sub-ranges: 0 to MAXPOS,
* where the sign bit is zero (the bottom range), and MAXPOS+1 to MAXVAL (the top range), where
* The range of valid results (0 - WORD_MASK) is divided into two equal sub-ranges: 0 to MAX_POS36,
* where the sign bit is zero (the bottom range), and MAX_POS36+1 to WORD_MASK (the top range), where
* the sign bit is one. During a single arithmetic operation, the result can "wrap around" from
* the bottom range to the top, or from the top range to the bottom, but it's an overflow/underflow
* error ONLY if the result "wraps across" the midpoint between the two ranges, producing an
* unnaturally small delta (<= MAXPOS).
* unnaturally small delta (<= MAX_POS36).
*
* This can be confirmed independently by examining the sign bits (BIT35) of the original value
* (V), the operand (O), the result (R), as well as two intermediate calculations, VR = (V ^ R)
@ -404,9 +404,9 @@ class Int36 {
var v = this.value / Int36.BIT35, r = result / Int36.BIT35, o = operand / Int36.BIT35;
e = ((v ^ r) & (o ^ (fSub? v : r))) & 1;
}
if ((result > Int36.MAXPOS) != (this.value > Int36.MAXPOS)) {
if ((result > Int36.MAX_POS36) != (this.value > Int36.MAX_POS36)) {
var delta = result - this.value;
if (Math.abs(delta) <= Int36.MAXPOS) {
if (Math.abs(delta) <= Int36.MAX_POS36) {
this.error |= (delta > 0 ? Int36.ERROR.OVERFLOW : Int36.ERROR.UNDERFLOW);
if (DEBUG && (delta > 0) != !(e & v)) e = 0;
}
@ -502,12 +502,12 @@ class Int36 {
this.error = Int36.ERROR.NONE;
if (n1 > Int36.MAXPOS) {
if (n1 > Int36.MAX_POS36) {
n1 = Int36.BIT36 - n1;
fNeg = !fNeg;
}
if (n2 > Int36.MAXPOS) {
if (n2 > Int36.MAX_POS36) {
n2 = Int36.BIT36 - n2;
fNeg = !fNeg;
}
@ -584,7 +584,7 @@ class Int36 {
var fNegQ = false, fNegR = false;
if (divisor > Int36.MAXPOS) {
if (divisor > Int36.MAX_POS36) {
divisor = Int36.BIT36 - divisor;
fNegQ = !fNegQ;
}
@ -687,11 +687,11 @@ class Int36 {
/*
* Convert the unsigned word (w) to a signed value (i), for convenience.
*/
var i = w > Int36.MAXPOS? -(Int36.BIT36 - w) : w;
var i = w > Int36.MAX_POS36? -(Int36.BIT36 - w) : w;
if (s > 0) {
if (s >= 35) {
i = (i < 0? Int36.BIT35 : 0);
bitsShifted = Int36.MAXPOS;
bitsShifted = Int36.MAX_POS36;
} else {
i = (i * Math.pow(2, s)) % Int36.BIT35;
/*
@ -709,20 +709,20 @@ class Int36 {
*/
bitsShifted = Int36.BIT35 - Math.pow(2, 35 - s);
}
if (w <= Int36.MAXPOS) {
if (w <= Int36.MAX_POS36) {
/*
* Since w was positive, overflow occurs ONLY if any of the bits we shifted out were 1s.
* If all those bits in the original value (w) were 0s, then adding bitsShifted to it could NOT
* produce a value > MAX_POS36.
*/
if (w + bitsShifted > Int36.MAXPOS) this.error |= Int36.ERROR.OVERFLOW;
if (w + bitsShifted > Int36.MAX_POS36) this.error |= Int36.ERROR.OVERFLOW;
} else {
/*
* Since w was negative, overflow occurs ONLY if any of the bits we shifted out were 0s.
* If all those bits in the original value (w) were 1s, subtracting bitsShifted from it could NOT
* produce a value <= MAX_POS36.
*/
if (w - bitsShifted <= Int36.MAXPOS) this.error |= Int36.ERROR.OVERFLOW;
if (w - bitsShifted <= Int36.MAX_POS36) this.error |= Int36.ERROR.OVERFLOW;
}
} else {
if (s <= -35) {
@ -891,7 +891,7 @@ class Int36 {
extend()
{
if (this.extended == null) {
this.extended = (this.value > Int36.MAXPOS? Int36.MAXVAL : 0);
this.extended = (this.value > Int36.MAX_POS36? Int36.WORD_MASK : 0);
}
}
@ -917,7 +917,7 @@ class Int36 {
*/
reduce()
{
if (this.extended == 0 && this.value <= Int36.MAXPOS || this.extended == Int36.MAXVAL && this.value > Int36.MAXPOS) {
if (this.extended == 0 && this.value <= Int36.MAX_POS36 || this.extended == Int36.WORD_MASK && this.value > Int36.MAX_POS36) {
this.extended = null;
}
}
@ -929,18 +929,18 @@ class Int36 {
*/
isNeg()
{
return (this.extended > Int36.MAXPOS || this.extended == null && this.value > Int36.MAXPOS);
return (this.extended > Int36.MAX_POS36 || this.extended == null && this.value > Int36.MAX_POS36);
}
/**
* negate()
*
* negate() MUST automatically extend the value, because the two's complement of the most negative
* number (MINNEG) still has its sign bit set, so we must rely on the sign of the extended value to
* number (MIN_NEG36) still has its sign bit set, so we must rely on the sign of the extended value to
* compensate.
*
* This is handled below by setting extended first, based on the opposite of the value's current sign;
* we could negate extended AFTER negating value, but then we'd need a special test for the MINNEG value.
* we could negate extended AFTER negating value, but then we'd need a special test for the MIN_NEG36 value.
*/
negate()
{
@ -948,13 +948,13 @@ class Int36 {
/*
* Set extended to the OPPOSITE of the current value.
*/
this.extended = (this.value > Int36.MAXPOS? 0 : Int36.MAXVAL);
this.extended = (this.value > Int36.MAX_POS36? 0 : Int36.WORD_MASK);
}
else if (this.value) {
/*
* Perform one's complement on the extended value.
*/
this.extended = Int36.MAXVAL - this.extended;
this.extended = Int36.WORD_MASK - this.extended;
}
else {
/*
@ -1113,7 +1113,7 @@ class Int36 {
* converting any signed values to their unsigned (two's complement) counterpart, provided they are
* within the acceptable range. Any values outside that range will be dealt with afterward.
*/
if (num < 0 && num >= Int36.MINNEG) {
if (num < 0 && num >= -Int36.MIN_NEG36) {
num += Int36.BIT36;
}
var value = Math.trunc(Math.abs(num)) % Math.pow(2, bits);
@ -1135,9 +1135,9 @@ Int36.BIT18 = Math.pow(2, 18); // 262,144
Int36.BIT35 = Math.pow(2, 35); // 34,359,738,368 (aka the sign bit)
Int36.BIT36 = Math.pow(2, 36); // 68,719,476,736
Int36.MAXPOS = Math.pow(2, 35) - 1; // 34,359,738,367
Int36.MINNEG = -Math.pow(2, 35); // -34,359,738,368
Int36.MAX_POS36 = Math.pow(2, 35) - 1; // 34,359,738,367 (377777 777777)
Int36.MIN_NEG36 = Math.pow(2, 35); // -34,359,738,368 (400000 000000)
Int36.MAXVAL = Math.pow(2, 36) - 1; // 68,719,476,735
Int36.WORD_MASK = Math.pow(2, 36) - 1; // 68,719,476,735
if (NODE) module.exports = Int36;

View file

@ -31,7 +31,7 @@ var l,ga="function"==typeof Object.defineProperties?Object.defineProperty:functi
function la(){ia();var a=ha.Symbol.iterator;a||(a=ha.Symbol.iterator=ha.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&ga(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ma(this)}});la=function(){}}function ma(a){var b=0;return na(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function na(a){la();a={next:a};a[ha.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 qa(a,b){if(b){var c=ha;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&&ga(c,a,{configurable:!0,writable:!0,value:b})}}
qa("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}});qa("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var ra=Math.pow(2,36),sa=-Math.pow(2,35),q={Zb:0,rb:1,ac:2,bc:3,cc:4,dc:5,ec:6,fc:7,cb:8,gc:9,sb:10,hc:11,ic:12,tb:13,jc:14,kc:15,lc:16,mc:17,nc:18,oc:19,pc:20,qc:21,rc:22,sc:23,tc:24,uc:25,vc: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,bb:65,Yb:66,$b:67,wc:68,E:69,xc:70,yc:71,zc:72,Ac:73,Bc:74,Cc:75,Dc:76,Ec:77,Fc:78,Gc:79,Hc:80,Q:81,
var ra=Math.pow(2,36),sa=Math.pow(2,35),q={Zb:0,rb:1,ac:2,bc:3,cc:4,dc:5,ec:6,fc:7,cb:8,gc:9,sb:10,hc:11,ic:12,tb:13,jc:14,kc:15,lc:16,mc:17,nc:18,oc:19,pc:20,qc:21,rc:22,sc:23,tc:24,uc:25,vc: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,bb:65,Yb:66,$b:67,wc:68,E:69,xc:70,yc:71,zc:72,Ac:73,Bc:74,Cc:75,Dc:76,Ec:77,Fc:78,Gc:79,Hc:80,Q:81,
Ic:82,Jc:83,Kc:84,Lc:85,Mc:86,Nc:87,Oc:88,Pc:89,xb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Qc:97,Rc:98,Sc:99,d:100,e:101,Tc:102,Uc:103,Vc:104,Wc:105,Xc:106,k:107,Yc:108,Zc:109,n:110,$c:111,p:112,q:113,r:114,ad:115,t:116,cd:117,dd:118,ed:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,ub:127};
function ta(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&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(c=g)}return c}function ua(a,b,c,d){var e="";if(null==a||isNaN(a))for(;0<c--;)e="?"+e;else for(0>a&&-1<a&&(a=-1);0<c--;){var g=a%b,g=g+(0<=g&&9>=g?48:55),e=String.fromCharCode(g)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function va(a,b,c){b?12<b&&(b=12):b=a&-16777216?11:a&-65536?8:6;return ua(a,8,b,c?"0o":"")}function t(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ua(a,16,b,c?"0x":"")}
@ -60,7 +60,7 @@ window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machin
var ob=window?window.PCjs.Machines:{},w=window?window.PCjs.Components:[],Eb=window?window.PCjs.Commands:{},Fb=["hold","sleep","wait"],Gb={alert:function(a){u(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Hb={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});
var y="pdp10",Pb="PDPjs",Qb=Math.pow(2,18),Rb=Math.pow(2,18)-1,Sb=Math.pow(2,35),Tb=Math.pow(2,35)-1,E=Math.pow(2,36),F=Math.pow(2,36)-1,G=Math.pow(2,18),H=Math.pow(2,18)-1,Ub=Math.pow(2,17)-1,Vb=Math.pow(2,35)-1,Wb=Math.pow(2,35),Xb=Math.pow(2,36),I=Math.pow(2,32),Yb=Math.pow(2,21),Zb=Math.pow(2,26),$b=Math.pow(2,23),ac=Math.pow(2,30),y="pdp10",Pb="PDPjs",K={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,
var y="pdp10",Pb="PDPjs",Qb=Math.pow(2,18)-1,Rb=Math.pow(2,18),Sb=Math.pow(2,35)-1,Tb=Math.pow(2,35),E=Math.pow(2,36)-1,F=Math.pow(2,36),G=Math.pow(2,18)-1,H=Math.pow(2,18),Ub=Math.pow(2,17)-1,Vb=Math.pow(2,35)-1,Wb=Math.pow(2,35),Xb=Math.pow(2,36),I=Math.pow(2,32),Yb=Math.pow(2,21),Zb=Math.pow(2,26),$b=Math.pow(2,23),ac=Math.pow(2,30),y="pdp10",Pb="PDPjs",K={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 bc(a,b){v.call(this,"Panel",a,512);this.L=this.M=0;this.W=b;this.f=this.J=this.w=this.A=0;this.N=this.O=-1;this.P=this.R=this.G=!1;this.S=cc;this.C={};this.b={START:[1,1,!0,!1,this.Jb],STEP:[1,1,!1,!1,this.Kb],ENABLE:[1,1,!1,!1,this.Eb],CONT:[1,1,!0,!1,this.Cb],DEP:[0,0,!0,!1,this.Db],EXAM:[1,1,!0,!1,this.Fb],LOAD:[1,1,!0,!1,this.Hb],TEST:[0,0,!0,!1,this.Gb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Ib,a];this.D=this.u=this.H=this.F=null;this.exports={hold:this.Ab,toggle:this.Tb,reset:this.Pb,
set:this.Sb};B(this)}p(bc,v);l=bc.prototype;l.reset=function(a){this.stop();a&&dc(this,this.A=0)};
@ -68,10 +68,10 @@ l.ha=function(a,b,c,d){if(this.F&&this.F.ha(a,b,c,d)||this.u&&this.u.ha(a,b,c,d)
function(a,b){return function(c){ec(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){fc(a,b)}}(this,b),!0):v.prototype.ha.call(this,a,b,c,d)}};l.xa=function(a,b,c,d){this.F=a;this.H=b;this.u=c;this.D=d;gc(this);hc(this)};l.pa=function(a,b){if(!b)if(this.W&&ic(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ga=function(a){return a?this.save():!0};l.save=function(){var a=new L(this);a.set(0,[this.f,this.A,this.w]);return a.data()};
l.restore=function(a){if(a=a[0])jc(this,this.f=a[0]),dc(this,this.A=a[1]),kc(this,a[2]);return!0};l.Pb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}hc(this);return!0};function lc(a,b,c){if(a=a.I[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function gc(a,b){for(var c in a.C)lc(a,c,null!=b?b:a.C[c])}function mc(a,b,c){if(a=a.I[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function hc(a){for(var b in a.b)mc(a,b,a.b[b][1])}
l.Ab=function(a,b,c){if(ec(this,b)){if(c){var d=this;setTimeout(function(){fc(d,b);a&&a()},+c);return!1}fc(this,b)}return!0};l.Sb=function(a,b){if("SR"==a)return kc(this,ta(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,mc(this,a,c[1]),!0):!1};l.Tb=function(a){return ec(this,a)?(fc(this,a),!0):!1};function ec(a,b){var c=a.b[b];return c?(mc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=uc&&(a.P=b==vc,a.R=b==wc),!0):!1}
function fc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(mc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Jb=function(a){a||this.u.v.K||(this.u.A=this.f%Qb,this.b[xc]&&this.b[xc][1]&&yc(this.u))};l.Kb=function(){};l.Eb=function(a){a||this.u.V()};
function fc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(mc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Jb=function(a){a||this.u.v.K||(this.u.A=this.f%Rb,this.b[xc]&&this.b[xc][1]&&yc(this.u))};l.Kb=function(){};l.Eb=function(a){a||this.u.V()};
l.Cb=function(a){if(!a&&!this.u.v.K)if(this.b[xc]&&this.b[xc][1])yc(this.u);else{if((a=this.D)&&!Lb(a,!0))Mb(a,!0),zc(a,0,null),Mb(a,!1);else try{var b=this.u.Ja(1);0<b&&(Ac(this.u,b),Bc(this.u,b,!0),Cc(this.u,b))}catch(c){"number"!=typeof c&&Ib(this.u,c.stack||c.message)}this.stop();this.F&&M(this.F)}};l.Db=function(a){a&&!this.u.v.K&&(this.P&&Dc(this),a=dc(this,this.A=this.w),this.S==cc?Ec(this.H,this.f,a):this.u.j(this.f,a))};
l.Fb=function(a){if(!a&&!this.u.v.K){var b;this.R&&Dc(this);this.S==cc?b=Fc(this.H,this.f):b=this.u.g(this.f);dc(this,this.A=b)}};l.Hb=function(a){a||this.u.v.K||jc(this,this.w)};l.Gb=function(a){a?(this.G=!0,gc(this,!0)):(this.G=!1,gc(this),kc(this,0))};l.Ib=function(a,b){this.w=a?this.w|1<<b:this.w&~(1<<b)};function Dc(a){var b=1,c=a.H.w;a.b[uc]&&a.b[uc][1]||(b=-b);jc(a,a.f&~c|a.f+b&c)}
function jc(a,b){a.f=b&a.H.w;if(a.N!==a.f){a.N=a.f;b=a.N;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.C[e]=g;d.G||lc(d,e,g)}}}function dc(a,b){a.J=b%E;if(a.O!==a.J){a.O=a.J;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.C[e]=g;d.G||lc(d,e,g)}}return a.J}function kc(a,b){a.w=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.w&1<<b?1:0;hc(a);return!0}l.stop=function(){jc(this,this.u.A)};
function jc(a,b){a.f=b&a.H.w;if(a.N!==a.f){a.N=a.f;b=a.N;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.C[e]=g;d.G||lc(d,e,g)}}}function dc(a,b){a.J=b%F;if(a.O!==a.J){a.O=a.J;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.C[e]=g;d.G||lc(d,e,g)}}return a.J}function kc(a,b){a.w=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.w&1<<b?1:0;hc(a);return!0}l.stop=function(){jc(this,this.u.A)};
function ic(){for(var a=z(document,y,"panel"),b=0;b<a.length;b++){var c=a[b],d=x(c),e=Ab(d.id);e||(e=new bc(d,!0));Cb(e,c)}}var cc=7,vc="DEP",xc="ENABLE",wc="EXAM",uc="STEP";eb(ic);function Gc(a,b,c){v.call(this,"Bus",a,16);this.u=b;this.D=c;this.J=+a.busWidth||18;this.G=1<<this.J;this.w=this.G-1;this.f=Math.log2(16384);this.C=this.G/16384|0;this.A=0;this.b=[];a=new Hc(this);Ic(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;B(this)}p(Gc,v);l=Gc.prototype;l.reset=function(){};
l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ga=function(a){return a?this.save():!0};l.save=function(){var a=new L(this);a.set(0,Jc(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)){u("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Kc(a,b,c,d){for(var e=b,g=c,f=e>>>a.f;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.B)return h.Ha+=h.B-e,h.B=e,!0;if(e>=h.B+h.Ha){m=h.size-(e-k);m>g&&(m=g);h.Ha=e-h.B+m;e=k+16384;g-=m;f++;continue}}return Lc(Mc,e,g)}e=new Hc(a,e,m,16384,d);Ic(e,a.D,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Nc[d]+" at "+va(b)),!0):Lc(Oc,b,c)}
@ -95,34 +95,34 @@ function yc(a,b){if(!Jb(a))if(a.v.K)a.i(a.toString()+" busy");else{jd(a);a.v.K=!
function Ld(a){var b=+a.model||1001;ad.call(this,a,1E6);this.hb=b;this.Aa=+a.addrReset||0;this.vb=Md.bind(this);this.b=O.bind(this);this.ra=null;this.fb=[];this.v.complete=!1}p(Ld,ad);l=Ld.prototype;l.reset=function(){this.status("Model "+this.hb);this.v.K&&this.V();this.f=this.J=this.Ma=0;this.A=this.sa=this.Aa;this.G=-1;this.w=0;this.qa=this.A;this.C=0;this.g=this.Mb;this.j=this.Xb;this.ra=null;dd(this);this.v.error=!1;ad.prototype.reset.call(this)};l.ob=function(){return 0};
l.save=function(){var a=new L(this);a.set(0,[this.f,this.J,this.Ma,this.A,this.G,this.w,this.C,this.sa,this.qa,this.Aa]);a.set(1,[]);a.set(2,[this.S,this.ba,this.v.Z]);a.set(3,Nd(this));a.set(4,od(this));return a.data()};
l.restore=function(a){var b;b=a[0];la();ia();la();var c=b[Symbol.iterator];b=c?c.call(b):ma(b);this.f=b.next().value;this.J=b.next().value;this.Ma=b.next().value;this.A=b.next().value;this.G=b.next().value;this.w=b.next().value;this.C=b.next().value;this.sa=b.next().value;this.qa=b.next().value;this.Aa=b.next().value;b=a[2];this.S=b[0];jd(this,b[1]);this.v.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.fb.length;d++){var e=this.fb[d];if(e.Ub===b[c]){d=e;break a}}d=null}d&&(d.next=
this.ra,this.ra=d)}a=a[4];for(b=0;b<this.N.length&&b<a.length;b++)this.N[b][0]=a[b];return!0};function Od(a,b){var c=a.A;a.A=(c+b)%Qb;return c}l.abs=function(a){a>Vb&&(a!=Wb?a=Xb-a:this.w|=163840);return a};function Pd(a,b){b?b==Wb?a.w|=163840:b=Xb-b:a.w|=98304;return b}function Nd(a){var b=[];for(a=a.ra;a;)b.push(a.Ub),a=a.next;return b}l.Mb=function(a){var b=this.H;a=this.qa=a;return b.b[(a&b.w)>>>b.f].g(a&16383,a)};l.Xb=function(a,b){var c=this.H;a=this.qa=a;c.b[(a&c.w)>>>c.f].j(b,a&16383,a);return b};
this.ra,this.ra=d)}a=a[4];for(b=0;b<this.N.length&&b<a.length;b++)this.N[b][0]=a[b];return!0};function Od(a,b){var c=a.A;a.A=(c+b)%Rb;return c}l.abs=function(a){a>Vb&&(a!=Wb?a=Xb-a:this.w|=163840);return a};function Pd(a,b){b?b==Wb?a.w|=163840:b=Xb-b:a.w|=98304;return b}function Nd(a){var b=[];for(a=a.ra;a;)b.push(a.Ub),a=a.next;return b}l.Mb=function(a){var b=this.H;a=this.qa=a;return b.b[(a&b.w)>>>b.f].g(a&16383,a)};l.Xb=function(a,b){var c=this.H;a=this.qa=a;c.b[(a&c.w)>>>c.f].j(b,a&16383,a);return b};
l.Ja=function(a){this.v.complete=!0;var b=this.D?Qd(this.D)?1:this.v.Ra?-1:0:0,c=a?this.v.Ra?0:1:-1;this.v.Ra=!1;this.P=this.R=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(Rd(this.D,this.A,c)){this.V();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.ra||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&Rd(this.D,this.A,c)){this.V();break}if(0>c)break}}this.C&=15;this.J=this.J&4194304?this.g(this.f):this.Ma=this.g(this.sa=this.A);this.J&=8388607;this.f=this.J&262143;if(a=
this.J>>18&15)this.f=this.f+this.g(a)&Rb;this.J&4194304?a=-1:(this.A=(this.A+1)%Qb,a=this.Ma/$b|0);0<=a&&this.vb(a)}while(0<this.R);return this.v.complete?this.P-this.R:!1===this.v.complete?-1:0};eb(function(){for(var a=z(document,y,"cpu"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Ld(d);Cb(d,c)}});function Md(a){Sd[a>>4].call(this,a,a&15)}function Q(a){this.b(a)}
function Td(){var a=0,b=this.g(this.f),c=b/ac&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*ac+(d<<24)+(b&16777215);a&&(b=(b+a)%E);this.j(this.f,b)}function Ud(a,b){a=this.g(this.f);if(0>this.G)this.G=a,this.J=this.f|4194304,Od(this,-1);else{var c=this.G/ac&63,d=this.G>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.j(b,a);this.G=-1}}
function Vd(a,b){a=this.g(this.f);if(0>this.G)this.G=a,this.J=this.f|4194304,Od(this,-1);else{var c=this.G/ac&63,d=this.G>>24&63;b=this.g(b)%Math.pow(2,d)*Math.pow(2,c)%E;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.j(this.f,a);this.G=-1}}function Wd(a,b){this.j(b,this.g(this.f))}function Xd(a,b){this.j(b,this.f)}function Yd(a,b){this.j(this.f,this.g(b))}function Zd(a,b){this.j(b,0)}function $d(a,b){this.j(b,F-this.g(b))}function ae(a,b){this.j(b,F)}
function be(a,b){var c=this.g(this.f),d=this.g(b);this.j(b,ce(a,d,c)+(c-(c&H)))}function de(a,b){var c=this.g(b);this.j(b,ce(a,c,0))}function ee(a,b){b=this.g(b);var c=this.g(this.f);this.j(this.f,ce(a,c,b)+(b-(b&H)))}function fe(a,b){var c=this.g(this.f),d=c;if(a&=384)switch(d-=d&H,a){case 256:d+=H;break;case 384:d+=c>Vb?H:0}c=d;this.j(this.f,c);b&&this.j(b,c)}function ge(a,b){var c=(this.g(this.f)&H)*G,d=this.g(b);this.j(b,ce(a,d,c)+c)}
function he(a,b){var c=this.f*G,d=this.g(b);this.j(b,ce(a,d,c)+c)}function ie(a,b){b=(this.g(b)&H)*G;var c=this.g(this.f);this.j(this.f,ce(a,c,b)+b)}function je(a,b){var c=this.g(this.f),d=(c&H)*G,c=ce(a,c,d)+d;this.j(this.f,c);b&&this.j(b,c)}function ke(a,b){var c=this.g(this.f)&H,d=this.g(b);this.j(b,le(a,d,c)+c)}function me(a,b){var c=this.g(b);this.j(b,le(a,c,this.f)+this.f)}function ne(a,b){b=this.g(b)&H;var c=this.g(this.f);this.j(this.f,le(a,c,b)+b)}
function oe(a,b){var c=this.g(this.f),d=c;if(a&=384)switch(d&=H,a){case 256:d+=H*G;break;case 384:d+=c>Ub?H*G:0}c=d;this.j(this.f,c);b&&this.j(b,c)}function pe(a,b){var c=this.g(this.f)/G|0,d=this.g(b);this.j(b,le(a,d,c)+c)}function qe(a,b){var c=this.g(b);this.j(b,le(a,c,0))}function re(a,b){b=this.g(b)/G|0;var c=this.g(this.f);this.j(this.f,le(a,c,b)+b)}function se(a,b){var c=this.g(this.f),d=c/G|0,c=le(a,c,d)+d;this.j(this.f,c);b&&this.j(b,c)}function R(a){te[a&7].call(this,a,a>>3&127)}
function ue(){}function O(a){this.i("undefined opcode: "+va(a));Od(this,-1);this.V()}function le(a,b,c){switch(a&384){case 0:b-=b&H;break;case 128:b=0;break;case 256:b=H*G;break;case 384:b=c>Ub?H*G:0}return b}function ce(a,b,c){switch(a&384){case 0:b&=H;break;case 128:b=0;break;case 256:b=H;break;case 384:b=c>Vb?H:0}return b}function S(a,b){return((a/I|0)&(b/I|0))*I+((a&b)>>>0)}function ve(a,b){return((a/I|0)^(b/I|0))*I+((a^b)>>>0)}function we(a,b){return(~((a/I|0)^(b/I|0))&15)*I+(~(a^b)>>>0)}
this.J>>18&15)this.f=this.f+this.g(a)&Qb;this.J&4194304?a=-1:(this.A=(this.A+1)%Rb,a=this.Ma/$b|0);0<=a&&this.vb(a)}while(0<this.R);return this.v.complete?this.P-this.R:!1===this.v.complete?-1:0};eb(function(){for(var a=z(document,y,"cpu"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Ld(d);Cb(d,c)}});function Md(a){Sd[a>>4].call(this,a,a&15)}function Q(a){this.b(a)}
function Td(){var a=0,b=this.g(this.f),c=b/ac&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*ac+(d<<24)+(b&16777215);a&&(b=(b+a)%F);this.j(this.f,b)}function Ud(a,b){a=this.g(this.f);if(0>this.G)this.G=a,this.J=this.f|4194304,Od(this,-1);else{var c=this.G/ac&63,d=this.G>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.j(b,a);this.G=-1}}
function Vd(a,b){a=this.g(this.f);if(0>this.G)this.G=a,this.J=this.f|4194304,Od(this,-1);else{var c=this.G/ac&63,d=this.G>>24&63;b=this.g(b)%Math.pow(2,d)*Math.pow(2,c)%F;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.j(this.f,a);this.G=-1}}function Wd(a,b){this.j(b,this.g(this.f))}function Xd(a,b){this.j(b,this.f)}function Yd(a,b){this.j(this.f,this.g(b))}function Zd(a,b){this.j(b,0)}function $d(a,b){this.j(b,E-this.g(b))}function ae(a,b){this.j(b,E)}
function be(a,b){var c=this.g(this.f),d=this.g(b);this.j(b,ce(a,d,c)+(c-(c&G)))}function de(a,b){var c=this.g(b);this.j(b,ce(a,c,0))}function ee(a,b){b=this.g(b);var c=this.g(this.f);this.j(this.f,ce(a,c,b)+(b-(b&G)))}function fe(a,b){var c=this.g(this.f),d=c;if(a&=384)switch(d-=d&G,a){case 256:d+=G;break;case 384:d+=c>Vb?G:0}c=d;this.j(this.f,c);b&&this.j(b,c)}function ge(a,b){var c=(this.g(this.f)&G)*H,d=this.g(b);this.j(b,ce(a,d,c)+c)}
function he(a,b){var c=this.f*H,d=this.g(b);this.j(b,ce(a,d,c)+c)}function ie(a,b){b=(this.g(b)&G)*H;var c=this.g(this.f);this.j(this.f,ce(a,c,b)+b)}function je(a,b){var c=this.g(this.f),d=(c&G)*H,c=ce(a,c,d)+d;this.j(this.f,c);b&&this.j(b,c)}function ke(a,b){var c=this.g(this.f)&G,d=this.g(b);this.j(b,le(a,d,c)+c)}function me(a,b){var c=this.g(b);this.j(b,le(a,c,this.f)+this.f)}function ne(a,b){b=this.g(b)&G;var c=this.g(this.f);this.j(this.f,le(a,c,b)+b)}
function oe(a,b){var c=this.g(this.f),d=c;if(a&=384)switch(d&=G,a){case 256:d+=G*H;break;case 384:d+=c>Ub?G*H:0}c=d;this.j(this.f,c);b&&this.j(b,c)}function pe(a,b){var c=this.g(this.f)/H|0,d=this.g(b);this.j(b,le(a,d,c)+c)}function qe(a,b){var c=this.g(b);this.j(b,le(a,c,0))}function re(a,b){b=this.g(b)/H|0;var c=this.g(this.f);this.j(this.f,le(a,c,b)+b)}function se(a,b){var c=this.g(this.f),d=c/H|0,c=le(a,c,d)+d;this.j(this.f,c);b&&this.j(b,c)}function R(a){te[a&7].call(this,a,a>>3&127)}
function ue(){}function O(a){this.i("undefined opcode: "+va(a));Od(this,-1);this.V()}function le(a,b,c){switch(a&384){case 0:b-=b&G;break;case 128:b=0;break;case 256:b=G*H;break;case 384:b=c>Ub?G*H:0}return b}function ce(a,b,c){switch(a&384){case 0:b&=G;break;case 128:b=0;break;case 256:b=G;break;case 384:b=c>Vb?G:0}return b}function S(a,b){return((a/I|0)&(b/I|0))*I+((a&b)>>>0)}function ve(a,b){return((a/I|0)^(b/I|0))*I+((a^b)>>>0)}function we(a,b){return(~((a/I|0)^(b/I|0))&15)*I+(~(a^b)>>>0)}
function U(a,b){return(a/I|0|b/I|0)*I+((a|b)>>>0)}
var Sd=[Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,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(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Td,function(a,b){0>this.G&&Td.call(this);Ud.call(this,0,b)},Ud,function(a,b){0>this.G&&Td.call(this);Vd.call(this,0,b)},Vd,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)},Wd,Xd,Yd,function(a,b){b&&this.j(b,this.g(this.f))},function(a,b){a=this.g(this.f);a=(a/G|0)+a%G*G;this.j(b,a)},function(a,b){this.j(b,this.f*G)},function(a,b){a=this.g(b);a=(a/G|0)+a%G*G;this.j(this.f,a)},function(a,b){a=this.g(this.f);a=(a/G|0)+a%G*G;this.j(this.f,a);b&&this.j(b,a)},function(a,b){this.j(b,Pd(this,this.g(this.f)))},function(a,b){this.j(b,this.f?Xb-this.f:0)},function(a,b){this.j(this.f,Pd(this,
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Wd,Xd,Yd,function(a,b){b&&this.j(b,this.g(this.f))},function(a,b){a=this.g(this.f);a=(a/H|0)+a%H*H;this.j(b,a)},function(a,b){this.j(b,this.f*H)},function(a,b){a=this.g(b);a=(a/H|0)+a%H*H;this.j(this.f,a)},function(a,b){a=this.g(this.f);a=(a/H|0)+a%H*H;this.j(this.f,a);b&&this.j(b,a)},function(a,b){this.j(b,Pd(this,this.g(this.f)))},function(a,b){this.j(b,this.f?Xb-this.f:0)},function(a,b){this.j(this.f,Pd(this,
this.g(b)))},function(a,b){a=Pd(this,this.g(this.f));this.j(this.f,a);b&&this.j(b,a)},function(a,b){this.j(b,this.abs(this.g(this.f)))},function(a,b){this.j(b,this.f)},function(a,b){this.j(this.f,this.abs(this.g(b)))},function(a,b){a=this.abs(this.g(this.f));this.j(this.f,a);b&&this.j(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,b){var c=(this.f<<14>>14)%256;if(c){a=this.g(b);var d=a>Vb?-(E-a):a;0<c?(35<=c?(d=0>d?Sb:0,c=Tb):(d=d*Math.pow(2,c)%Sb,c=Sb-Math.pow(2,35-c)),a<=Vb?a+c>Vb&&(this.w|=131072):a-c<=Vb&&(this.w|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+E:d;this.j(b,a)}},function(a,b){if(a=(this.f<<14>>14)%36){var c=this.g(b);0>a&&(a=36+a);c=c*Math.pow(2,
a)%E+Math.trunc(c/Math.pow(2,36-a));this.j(b,c)}},function(a,b){if(a=(this.f<<14>>14)%256){var c=this.g(b),c=0<a?36<=a?0:c*Math.pow(2,a)%E:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.j(b,c)}},function(a){this.b(a)},function(a){this.b(a)},function(a,b){if(a=(this.f<<14>>14)%72){var c=this.g(b),d=this.g(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%E+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%E+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%E+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,
a-36)%E+Math.trunc(d/Math.pow(2,72-a)));this.j(b,c);this.j(b+1&15,d)}},function(a,b){if(a=(this.f<<14>>14)%256){var c=this.g(b),d=this.g(b+1&15);0<a?36<=a?(d=0,c=72<=a?0:d*Math.pow(2,a-36)%E):(c=c*Math.pow(2,a)%E+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%E):-36>=a?(c=0,d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36))):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%E,c=Math.trunc(c/Math.pow(2,-a)));this.j(b,c);this.j(b+1&15,d)}},O,function(a,b){a=this.g(b);this.j(b,this.g(this.f));this.j(this.f,
a)},function(a,b){a=!1;for(var c=this.g(b),d=c/G|0,c=c&H;!a;)this.j(c,this.g(d)),c==this.f&&(a=!0),d=d+1&H,c=c+1&H,this.v.K||(this.j(b,d*G+c),a||Od(this,-1),a=!0)},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)},O,function(a){this.b(a)},function(a,b){a=this.g(b);a+=262145;this.j(a&H,this.g(this.f));a>=E&&(a-=E);a/G|0||(this.w|=262144);this.j(b,a)},function(a,b){a=this.g(b);var c=this.g(a&H);this.j(this.f,c);this.f==b&&(a=c);a-=262145;
0>a&&(a+=E);(a/G|0)==H&&(this.w|=262144);this.j(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,b){var c=(this.f<<14>>14)%256;if(c){a=this.g(b);var d=a>Vb?-(F-a):a;0<c?(35<=c?(d=0>d?Tb:0,c=Sb):(d=d*Math.pow(2,c)%Tb,c=Tb-Math.pow(2,35-c)),a<=Vb?a+c>Vb&&(this.w|=131072):a-c<=Vb&&(this.w|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+F:d;this.j(b,a)}},function(a,b){if(a=(this.f<<14>>14)%36){var c=this.g(b);0>a&&(a=36+a);c=c*Math.pow(2,
a)%F+Math.trunc(c/Math.pow(2,36-a));this.j(b,c)}},function(a,b){if(a=(this.f<<14>>14)%256){var c=this.g(b),c=0<a?36<=a?0:c*Math.pow(2,a)%F:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.j(b,c)}},function(a){this.b(a)},function(a){this.b(a)},function(a,b){if(a=(this.f<<14>>14)%72){var c=this.g(b),d=this.g(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%F+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%F+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%F+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,
a-36)%F+Math.trunc(d/Math.pow(2,72-a)));this.j(b,c);this.j(b+1&15,d)}},function(a,b){if(a=(this.f<<14>>14)%256){var c=this.g(b),d=this.g(b+1&15);0<a?36<=a?(d=0,c=72<=a?0:d*Math.pow(2,a-36)%F):(c=c*Math.pow(2,a)%F+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%F):-36>=a?(c=0,d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36))):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%F,c=Math.trunc(c/Math.pow(2,-a)));this.j(b,c);this.j(b+1&15,d)}},O,function(a,b){a=this.g(b);this.j(b,this.g(this.f));this.j(this.f,
a)},function(a,b){a=!1;for(var c=this.g(b),d=c/H|0,c=c&G;!a;)this.j(c,this.g(d)),c==this.f&&(a=!0),d=d+1&G,c=c+1&G,this.v.K||(this.j(b,d*H+c),a||Od(this,-1),a=!0)},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)},O,function(a){this.b(a)},function(a,b){a=this.g(b);a+=262145;this.j(a&G,this.g(this.f));a>=F&&(a-=F);a/H|0||(this.w|=262144);this.j(b,a)},function(a,b){a=this.g(b);var c=this.g(a&G);this.j(this.f,c);this.f==b&&(a=c);a-=262145;
0>a&&(a+=F);(a/H|0)==G&&(this.w|=262144);this.j(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)},Zd,Zd,function(){this.j(this.f,0)},function(a,b){this.j(this.f,this.j(b,0))},function(a,b){this.j(b,S(this.g(b),this.g(this.f)))},function(a,b){this.j(b,S(this.g(b),this.f))},function(a,b){this.j(this.f,
S(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,S(this.g(b),this.g(this.f))))},function(a,b){this.j(b,S(F-this.g(b),this.g(this.f)))},function(a,b){this.j(b,S(F-this.g(b),this.f))},function(a,b){this.j(this.f,S(F-this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,S(F-this.g(b),this.g(this.f))))},Wd,Xd,ue,Wd,function(a,b){this.j(b,S(this.g(b),F-this.g(this.f)))},function(a,b){this.j(b,S(this.g(b),F-this.f))},function(a,b){this.j(this.f,S(this.g(b),F-this.g(this.f)))},
function(a,b){this.j(this.f,this.j(b,S(this.g(b),F-this.g(this.f))))},ue,ue,Yd,Yd,function(a,b){this.j(b,ve(this.g(b),this.g(this.f)))},function(a,b){this.j(b,ve(this.g(b),this.f))},function(a,b){this.j(this.f,ve(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,ve(this.g(b),this.g(this.f))))},function(a,b){this.j(b,U(this.g(b),this.g(this.f)))},function(a,b){this.j(b,U(this.g(b),this.f))},function(a,b){this.j(this.f,U(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,
U(this.g(b),this.g(this.f))))},function(a,b){this.j(b,S(F-this.g(b),F-this.g(this.f)))},function(a,b){this.j(b,S(F-this.g(b),F-this.f))},function(a,b){this.j(this.f,S(F-this.g(b),F-this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,S(F-this.g(b),F-this.g(this.f))))},function(a,b){this.j(b,we(this.g(b),this.g(this.f)))},function(a,b){this.j(b,we(this.g(b),this.f))},function(a,b){this.j(this.f,we(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,we(this.g(b),this.g(this.f))))},$d,
$d,function(a,b){this.j(this.f,F-this.g(b))},function(a,b){this.j(this.f,this.j(b,F-this.g(b)))},function(a,b){this.j(b,U(F-this.g(b),this.g(this.f)))},function(a,b){this.j(b,U(F-this.g(b),this.f))},function(a,b){this.j(this.f,U(F-this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(F-this.g(b),this.g(this.f))))},function(a,b){this.j(b,F-this.g(this.f))},function(a,b){this.j(b,F-this.f)},function(){this.j(this.f,F-this.g(this.f))},function(a,b){this.j(this.f,this.j(b,F-this.g(this.f)))},
function(a,b){this.j(b,U(this.g(b),F-this.g(this.f)))},function(a,b){this.j(b,U(this.g(b),F-this.f))},function(a,b){this.j(this.f,U(this.g(b),F-this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(this.g(b),F-this.g(this.f))))},function(a,b){this.j(b,U(F-this.g(b),F-this.g(this.f)))},function(a,b){this.j(b,U(F-this.g(b),F-this.f))},function(a,b){this.j(this.f,U(F-this.g(b),F-this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(F-this.g(b),F-this.g(this.f))))},ae,ae,function(){this.j(this.f,
F)},function(a,b){this.j(this.f,this.j(b,F))},be,de,ee,fe,ge,he,ie,je,be,de,ee,fe,ge,he,ie,je,be,de,ee,fe,ge,he,ie,je,be,de,ee,fe,ge,he,ie,je,ke,me,ne,oe,pe,qe,re,se,ke,me,ne,oe,pe,qe,re,se,ke,me,ne,oe,pe,qe,re,se,ke,me,ne,oe,pe,qe,re,se,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)},
S(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,S(this.g(b),this.g(this.f))))},function(a,b){this.j(b,S(E-this.g(b),this.g(this.f)))},function(a,b){this.j(b,S(E-this.g(b),this.f))},function(a,b){this.j(this.f,S(E-this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,S(E-this.g(b),this.g(this.f))))},Wd,Xd,ue,Wd,function(a,b){this.j(b,S(this.g(b),E-this.g(this.f)))},function(a,b){this.j(b,S(this.g(b),E-this.f))},function(a,b){this.j(this.f,S(this.g(b),E-this.g(this.f)))},
function(a,b){this.j(this.f,this.j(b,S(this.g(b),E-this.g(this.f))))},ue,ue,Yd,Yd,function(a,b){this.j(b,ve(this.g(b),this.g(this.f)))},function(a,b){this.j(b,ve(this.g(b),this.f))},function(a,b){this.j(this.f,ve(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,ve(this.g(b),this.g(this.f))))},function(a,b){this.j(b,U(this.g(b),this.g(this.f)))},function(a,b){this.j(b,U(this.g(b),this.f))},function(a,b){this.j(this.f,U(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,
U(this.g(b),this.g(this.f))))},function(a,b){this.j(b,S(E-this.g(b),E-this.g(this.f)))},function(a,b){this.j(b,S(E-this.g(b),E-this.f))},function(a,b){this.j(this.f,S(E-this.g(b),E-this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,S(E-this.g(b),E-this.g(this.f))))},function(a,b){this.j(b,we(this.g(b),this.g(this.f)))},function(a,b){this.j(b,we(this.g(b),this.f))},function(a,b){this.j(this.f,we(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,we(this.g(b),this.g(this.f))))},$d,
$d,function(a,b){this.j(this.f,E-this.g(b))},function(a,b){this.j(this.f,this.j(b,E-this.g(b)))},function(a,b){this.j(b,U(E-this.g(b),this.g(this.f)))},function(a,b){this.j(b,U(E-this.g(b),this.f))},function(a,b){this.j(this.f,U(E-this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(E-this.g(b),this.g(this.f))))},function(a,b){this.j(b,E-this.g(this.f))},function(a,b){this.j(b,E-this.f)},function(){this.j(this.f,E-this.g(this.f))},function(a,b){this.j(this.f,this.j(b,E-this.g(this.f)))},
function(a,b){this.j(b,U(this.g(b),E-this.g(this.f)))},function(a,b){this.j(b,U(this.g(b),E-this.f))},function(a,b){this.j(this.f,U(this.g(b),E-this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(this.g(b),E-this.g(this.f))))},function(a,b){this.j(b,U(E-this.g(b),E-this.g(this.f)))},function(a,b){this.j(b,U(E-this.g(b),E-this.f))},function(a,b){this.j(this.f,U(E-this.g(b),E-this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(E-this.g(b),E-this.g(this.f))))},ae,ae,function(){this.j(this.f,
E)},function(a,b){this.j(this.f,this.j(b,E))},be,de,ee,fe,ge,he,ie,je,be,de,ee,fe,ge,he,ie,je,be,de,ee,fe,ge,he,ie,je,be,de,ee,fe,ge,he,ie,je,ke,me,ne,oe,pe,qe,re,se,ke,me,ne,oe,pe,qe,re,se,ke,me,ne,oe,pe,qe,re,se,ke,me,ne,oe,pe,qe,re,se,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)},R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R],te=[function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){switch(b){case 0:a=this.g(this.f);a&8&&(this.w&=-131073);a&131072&&(this.w&=-262145);
@ -134,8 +134,8 @@ g.f;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}B
function Ae(a){v.call(this,"RAM",a);this.T=this.Ca=null;this.f=+a.addr;this.w=+a.size;this.na=a.load;this.ma=a.exec;null!=this.na&&(this.na=+this.na);null!=this.ma&&(this.ma=+this.ma);this.A=this.G=!1;this.b=a.file;this.C=wa(this.b);if(this.b){a=this.b;var b=xa(this.C);"json"!=b&&"hex"!=b&&(a=Ea()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;La(a,null,!0,function(a,b,g){g?(c.da("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(mb(c.La,a,b),(a=Ma(a,b))?(c.Ca=a.Ca,
c.T=a.T,null==c.na&&(c.na=a.na),null==c.ma&&(c.ma=a.ma)):c.b=null);Be(c)})}}p(Ae,v);Ae.prototype.xa=function(a,b,c,d){this.H=b;this.u=c;this.D=d;Be(this)};Ae.prototype.pa=function(a,b){this.T&&(this.D&&ze(this.D,this.id,this.f,this.w,this.T),delete this.T);b||this.reset();return!0};Ae.prototype.ga=function(){return!0};
function Be(a){if(a.H&&(!a.A&&a.w&&(Kc(a.H,a.f,a.w,1)?a.A=!0:a.w=0),!Kb(a))){if(!a.A)u("No RAM allocated");else if(a.b){if(!a.Ca)return;Ce(a,a.Ca,a.na,a.ma,a.f)?a.status('Loaded image "'+a.C+'"'):a.da('Error loading image "'+a.C+'"')}a.G=!0;B(a)}}
Ae.prototype.reset=function(){if(this.A&&!this.G){for(var a=this.H,b=this.f,c=this.w,d=b&16383,b=b>>>a.f;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>=sa&&(f+=ra);f=Math.trunc(Math.abs(f))%Math.pow(2,36);void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.F(f,d,e.B+d);c-=16384;b++;d=0}this.Ca&&Ce(this,this.Ca,this.na,this.ma,this.f,!this.D)}this.G=!1};
function Ce(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)Ec(a.H,c+f,b[f]);f=!0}f&&(null==d&&(a.u.V(),g=!1),null!=d&&(a=a.u,a.Aa=d,a.A=d%Qb,g?a.v.U?a.v.K||yc(a):a.v.Z=!0:a.D&&a.v.U?a.V()||a.F.v.reset||(fd(a.D),M(a.F,-1)):!1===g&&a.V(),!a.v.K&&a.za&&a.za.stop()));return f}eb(function(){for(var a=z(document,y,"ram"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Ae(d);Cb(d,c)}});
Ae.prototype.reset=function(){if(this.A&&!this.G){for(var a=this.H,b=this.f,c=this.w,d=b&16383,b=b>>>a.f;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>=-sa&&(f+=ra);f=Math.trunc(Math.abs(f))%Math.pow(2,36);void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.F(f,d,e.B+d);c-=16384;b++;d=0}this.Ca&&Ce(this,this.Ca,this.na,this.ma,this.f,!this.D)}this.G=!1};
function Ce(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)Ec(a.H,c+f,b[f]);f=!0}f&&(null==d&&(a.u.V(),g=!1),null!=d&&(a=a.u,a.Aa=d,a.A=d%Rb,g?a.v.U?a.v.K||yc(a):a.v.Z=!0:a.D&&a.v.U?a.V()||a.F.v.reset||(fd(a.D),M(a.F,-1)):!1===g&&a.V(),!a.v.K&&a.za&&a.za.stop()));return f}eb(function(){for(var a=z(document,y,"ram"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Ae(d);Cb(d,c)}});
function De(a){v.call(this,"SerialPort",a,1048576);this.A=a.upperCase;"string"==typeof this.A&&(this.A="true"==this.A);this.w=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=Ee;b&&(void 0===c&&(c="Panel"),(c=Bb(c,this.id))&&(b=c.I[b])&&this.ha(null,a,b))}this.b=this.C=null;this.exports={connect:this.qb,receiveData:this.Pa,receiveStatus:this.Ob,setConnection:this.Rb}}p(De,v);l=De.prototype;
l.ha=function(a,b,c){var d=this;switch(b){case Ee:return this.I[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.cb:q.ub:46==c?b=q.cb:a.ctrlKey&&c>=q.bb&&c<=q.xb&&(b=c-(q.bb-q.rb));b&&(a.preventDefault&&a.preventDefault(),d.Pa(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.tb&&(b=q.sb);d.Pa(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.Pa(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.xa=function(a,b,c,d){this.F=a;this.H=b;this.u=c;this.D=d;B(this)};
@ -157,7 +157,7 @@ l.xa=function(a,b,c,d){this.H=b;this.F=a;this.u=c;this.ea=a.w;(a=cd(a,"messages"
l.ha=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.I[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",hd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.w.length-1&&(b=d.w[++d.A])):40==a.keyCode&&(0<d.A?b=d.w[--d.A]:(b="",d.A=-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.I[b]=c,cb(c,function(){if(d.aa){var a=d.aa.value;
d.aa.value="";hd(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,cb(c,function(a){var b=!1;Lb(d,!0)||(Mb(d,!0),b=zc(d,a?1:0,null),Mb(d,!1));return b}),!0}return!1};function gd(a){if(a.aa){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.aa.focus();window&&window.scrollTo(b,c)}}l.ya=function(a,b){var c=-1,d=Y(a);-1!==d&&(c=Fc(this.H,d),b&&null!=a.B&&(a.B+=b||1));return c};l.eb=function(a,b,c){var d=Y(a);-1!==d&&(Ec(this.H,d,b),c&&null!=a.B&&(a.B+=c||1),M(this.F,-1))};
function Z(a,b,c){var d,e;c||(c=W());var g=c.B;if(void 0!==b){b=Ie(a,b);"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var f,g=b,h;if(g.match(/^[a-z_][a-z0-9_]*$/i))for(var g=g.toUpperCase(),k=0;k<a.G.length;k++){var m=a.G[k].T[g];if(null!=m){h=m.o;break}}null!=h&&(f=W(h));if(f)return f;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);g=V(a,b,void 0)}null!=g&&Re(c,g,d,e);return c}function Ve(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.jb=Ge(a,b.Qa=c[2]))}
function We(a){return va(a/Qb,6)+" "+va(a%Qb,6)}function Qe(a,b){a.D=a;a.X=a.lb=536870916;a.S=null;a.O=[];b=Ge(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in K){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|=K[c],a.i(c+" messages enabled"))}}function Ue(a,b){for(var c in K)if(16==K[c]){a.qa[c]=b;break}}l.pb=function(a){return Xe.indexOf(a.toUpperCase())};
function We(a){return va(a/Rb,6)+" "+va(a%Rb,6)}function Qe(a,b){a.D=a;a.X=a.lb=536870916;a.S=null;a.O=[];b=Ge(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in K){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|=K[c],a.i(c+" messages enabled"))}}function Ue(a,b){for(var c in K)if(16==K[c]){a.qa[c]=b;break}}l.pb=function(a){return Xe.indexOf(a.toUpperCase())};
l.$a=function(a){var b,c=this.u;switch(a){case Ye:b=c.A;break;case Ze:b=c.J;break;case $e:b=c.f;break;case af:b=c.w&65536?1:0;break;case bf:b=c.w&32768?1:0;break;case cf:b=c.w&131072?1:0;break;case df:b=c.w&32?1:0;break;case ef:b=c.w&262144?1:0}return b};
l.message=function(a,b){b&&(a+=" @"+N(this,W(this.u.sa).B));if(!this.S||a!=this.S)if(this.S=a,this.X&1073741824)this.O.push(a);else{var c;if(this.X&-2147483648&&this.u&&(c=this.u.v.K)||Lb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.i(a);this.u&&(a=this.u,Jd(a),a.ea=0,a.F&&M(a.F,void 0))}};
function Pe(a){var b;if(!Qd(a))a.f&&a.f.length&&a.i("instruction history buffer freed"),a.R=0,a.f=[];else if(!a.f||!a.f.length){a.f=Array(Nf);for(b=0;b<a.f.length;b++)a.f[b]=W();a.R=0;a.i("instruction history buffer allocated")}}function Pf(a,b,c){if(!Qf(a,c))return!1;yc(a.u,b);return!0}
@ -175,7 +175,7 @@ function fg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n")
function ze(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=Ja(n,k,a.mb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.G.push({bd:b,B:c,Bb:d,T:e,kb:g})}function gg(a,b,c){var d=[],e=Y(b)>>>0;for(b=0;b<a.G.length;b++){var g=a.G[b],f=g.B>>>0,h=g.Bb;if(e>=f&&e<f+h){e=Ja(g.kb,[e-f],a.mb);0<=e?hg(a,b,e,d):c&&(e=~e,hg(a,b,e-1,d),hg(a,b,e,d));break}}return d}
function hg(a,b,c,d){var e={},g=a.G[b].kb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.G[b].T[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function ig(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Me(a)||a.i("no variables"),!0;if(!c[2])return Me(a,c[1]);if(!c[3])return delete a.W[c[1]],!0;b=V(a,c[3]);return void 0!==b?(a.W[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function jg(a,b,c){var d=null;if(b=Z(a,b)){var e=gg(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.B-e[1])&&(f=" + "+t(g,4,!0)),g=e[0]+" ("+N(a,e[1])+")"+f,c&&a.i(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.B)&&(f=" - "+t(g,4,!0)),g=e[4]+" ("+N(a,e[5])+")"+f,c&&a.i(g),d||(d=g))}else c&&a.i("no symbols")}return d}
function Sf(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trm\tdump misc registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)e=!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.i("missing value for "+b[1]);return}f=V(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":d.A=f%Qb;Re(a.L,d.A);break;default:a.i("unknown register: "+
function Sf(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trm\tdump misc registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)e=!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.i("missing value for "+b[1]);return}f=V(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":d.A=f%Rb;Re(a.L,d.A);break;default:a.i("unknown register: "+
g);return}M(a.F);a.i("updated registers:")}}a.i(fg(a,e));c&&(Re(a.L,d.A),Tf(a,N(a,a.L.B)))}}function kg(a,b){b=Ia(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.i(c[2]):Le(a,null,c[2].charCodeAt(0)):V(a,b,!0)}
function lg(a,b,c){if("?"==c)a.i("trace commands:"),a.i("\tt [#]\ttrace # instructions"),a.i("\ttr [#]\ttrace # instructions with register updates"),a.i("\ttc [#]\ttrace # cycles"),a.i("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Je(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ta=b;bb(c,function(){return Mb(a,!0)&&zc(a,e,d,!1)},function(){a.ea&&a.ea.stop();M(a.F,-1);Mb(a,!1)})}}
function Tf(a,b,c,d){if(b=Z(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Je(a,c.substr(1)),null!=c&&(d=c);else{d=Z(a,c);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.i("range too large");return}d=-1}for(c=0;0<e&&d--;){var g=Lb(a,!1)||a.N?a.C:null,f=null!=g?"cycles":null,h=gg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.i(m)}h[3]&&(f=h[3],g=null);h=a.ba;m=b;h.B=m.B;h.Na=m.Na;h.fa=m.fa;h.ca=m.ca;a.i(Vf(a,b,f,g));e-=b.B-k;c++}}}

View file

@ -31,7 +31,7 @@ var k,aa="function"==typeof Object.defineProperties?Object.defineProperty:functi
function ea(){ba();var a=m.Symbol.iterator;a||(a=m.Symbol.iterator=m.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return fa(this)}});ea=function(){}}function fa(a){var b=0;return ga(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ga(a){ea();a={next:a};a[m.Symbol.iterator]=function(){return this};return a}
function n(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 ha(a,b){if(b){var c=m;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})}}
ha("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}});ha("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var ia=Math.pow(2,36),ja=-Math.pow(2,35),q={Ab:0,Ta:1,Cb:2,Db:3,Eb:4,Fb:5,Gb:6,Hb:7,Ma:8,Ib:9,Ua:10,Jb:11,Kb:12,Va:13,Lb:14,Mb:15,Nb:16,Ob:17,Pb:18,Qb:19,Rb:20,Sb:21,Tb:22,Ub:23,Vb:24,Wb:25,Xb: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,La:65,zb:66,Bb:67,Yb:68,E:69,Zb:70,$b:71,ac:72,bc:73,cc:74,dc:75,ec:76,fc:77,gc:78,hc:79,ic:80,Q:81,
var ia=Math.pow(2,36),ja=Math.pow(2,35),q={Ab:0,Ta:1,Cb:2,Db:3,Eb:4,Fb:5,Gb:6,Hb:7,Ma:8,Ib:9,Ua:10,Jb:11,Kb:12,Va:13,Lb:14,Mb:15,Nb:16,Ob:17,Pb:18,Qb:19,Rb:20,Sb:21,Tb:22,Ub:23,Vb:24,Wb:25,Xb: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,La:65,zb:66,Bb:67,Yb:68,E:69,Zb:70,$b:71,ac:72,bc:73,cc:74,dc:75,ec:76,fc:77,gc:78,hc:79,ic:80,Q:81,
jc:82,kc:83,lc:84,mc:85,nc:86,oc:87,pc:88,qc:89,$a:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,rc:97,sc:98,tc:99,d:100,e:101,uc:102,vc:103,wc:104,xc:105,yc:106,k:107,zc:108,Ac:109,n:110,Bc:111,p:112,q:113,r:114,Cc:115,t:116,Dc:117,Ec:118,Fc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Wa:127};
function ka(a,b,c,d){var e="";if(null==a||isNaN(a))for(;0<c--;)e="?"+e;else for(0>a&&-1<a&&(a=-1);0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function la(a,b){b?12<b&&(b=12):b=a&-16777216?11:a&-65536?8:6;return ka(a,8,b,"")}function r(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ka(a,16,b,c?"0x":"")}function ma(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 na(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function oa(){var a=pa();return-1!==a.indexOf("pcjs.org",a.length-8)}function qa(a){return a.replace(/[&<>"']/g,function(a){return sa[a]})}function ta(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var sa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};
@ -57,7 +57,7 @@ window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machin
var La=window?window.PCjs.Machines:{},A=window?window.PCjs.Components:[],Qa=window?window.PCjs.Commands:{},Ra=["hold","sleep","wait"],Sa={alert:function(a){u(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Ta={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});
var F="pdp10",I="PDPjs",Wa=Math.pow(2,18),Xa=Math.pow(2,18)-1,Ya=Math.pow(2,35),Za=Math.pow(2,35)-1,J=Math.pow(2,36),K=Math.pow(2,36)-1,L=Math.pow(2,18),M=Math.pow(2,18)-1,$a=Math.pow(2,17)-1,N=Math.pow(2,35)-1,ab=Math.pow(2,35),bb=Math.pow(2,36),O=Math.pow(2,32),cb=Math.pow(2,23),db=Math.pow(2,30),F="pdp10",I="PDPjs";
var F="pdp10",I="PDPjs",Wa=Math.pow(2,18)-1,Xa=Math.pow(2,18),Ya=Math.pow(2,35)-1,Za=Math.pow(2,35),J=Math.pow(2,36)-1,K=Math.pow(2,36),L=Math.pow(2,18)-1,M=Math.pow(2,18),$a=Math.pow(2,17)-1,N=Math.pow(2,35)-1,ab=Math.pow(2,35),bb=Math.pow(2,36),O=Math.pow(2,32),cb=Math.pow(2,23),db=Math.pow(2,30),F="pdp10",I="PDPjs";
function eb(a,b){y.call(this,"Panel",a);this.B=this.C=0;this.P=b;this.b=this.w=this.i=this.j=0;this.G=this.I=-1;this.K=this.L=this.o=!1;this.N=fb;this.l={};this.a={START:[1,1,!0,!1,this.kb],STEP:[1,1,!1,!1,this.lb],ENABLE:[1,1,!1,!1,this.fb],CONT:[1,1,!0,!1,this.cb],DEP:[0,0,!0,!1,this.eb],EXAM:[1,1,!0,!1,this.gb],LOAD:[1,1,!0,!1,this.ib],TEST:[0,0,!0,!1,this.hb]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.jb,a];this.v=this.h=this.s=this.u=null;this.exports={hold:this.bb,toggle:this.ub,reset:this.qb,
set:this.tb};H(this)}n(eb,y);k=eb.prototype;k.reset=function(a){this.stop();a&&gb(this,this.j=0)};
k.U=function(a,b,c,d){if(this.u&&this.u.U(a,b,c,d)||this.h&&this.h.U(a,b,c,d))return!0;switch(b){case "PC":return this.m[b]=c,this.C++,!0;default:return"led"==a||"rled"==a?(this.m[b]=c,this.l[b]=d?1:0,this.C++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.m[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){hb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){ib(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){hb(a,
@ -66,9 +66,9 @@ k.restore=function(a){if(a=a[0])mb(this,this.b=a[0]),gb(this,this.j=a[1]),nb(thi
k.bb=function(a,b,c){if(hb(this,b)){if(c){var d=this;setTimeout(function(){ib(d,b);a&&a()},+c);return!1}ib(this,b)}return!0};
k.tb=function(a,b){if("SR"==a){a=b;b=8;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 f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):
2==e&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return nb(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,pb(this,a,c[1]),!0):!1};k.ub=function(a){return hb(this,a)?(ib(this,a),!0):!1};function hb(a,b){var c=a.a[b];return c?(pb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=qb&&(a.K=b==rb,a.L=b==sb),!0):!1}function ib(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(pb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
k.kb=function(a){a||this.h.g.A||(this.h.o=this.b%Wa,this.a[tb]&&this.a[tb][1]&&ub(this.h))};k.lb=function(){};k.fb=function(a){a||Q(this.h)};k.cb=function(a){if(!a&&!this.h.g.A)if(this.a[tb]&&this.a[tb][1])ub(this.h);else{a=this.v;var b;if(b=a)a.g.ua&&(a.g.Ga=!0),b=!a.g.ua;if(b)Va(a,!0),a.b(0,null),Va(a,!1);else try{var c=this.h.za(1);0<c&&(vb(this.h,c),wb(this.h,c,!0),xb(this.h,c))}catch(d){"number"!=typeof d&&(c=this.h,a=d.stack||d.message,c.g.error=!0,c.F(a))}this.stop();this.u&&R(this.u)}};
k.kb=function(a){a||this.h.g.A||(this.h.o=this.b%Xa,this.a[tb]&&this.a[tb][1]&&ub(this.h))};k.lb=function(){};k.fb=function(a){a||Q(this.h)};k.cb=function(a){if(!a&&!this.h.g.A)if(this.a[tb]&&this.a[tb][1])ub(this.h);else{a=this.v;var b;if(b=a)a.g.ua&&(a.g.Ga=!0),b=!a.g.ua;if(b)Va(a,!0),a.b(0,null),Va(a,!1);else try{var c=this.h.za(1);0<c&&(vb(this.h,c),wb(this.h,c,!0),xb(this.h,c))}catch(d){"number"!=typeof d&&(c=this.h,a=d.stack||d.message,c.g.error=!0,c.F(a))}this.stop();this.u&&R(this.u)}};
k.eb=function(a){a&&!this.h.g.A&&(this.K&&yb(this),a=gb(this,this.j=this.i),this.N==fb?zb(this.s,this.b,a):this.h.f(this.b,a))};k.gb=function(a){if(!a&&!this.h.g.A){this.L&&yb(this);if(this.N==fb){a=this.s;var b=this.b,c=a.a[(b&a.i)>>>a.b];a.j++;b=c.s(b&16383,b);a.j--;a=b}else a=this.h.c(this.b);gb(this,this.j=a)}};k.ib=function(a){a||this.h.g.A||mb(this,this.i)};k.hb=function(a){a?(this.o=!0,jb(this,!0)):(this.o=!1,jb(this),nb(this,0))};k.jb=function(a,b){this.i=a?this.i|1<<b:this.i&~(1<<b)};
function yb(a){var b=1,c=a.s.i;a.a[qb]&&a.a[qb][1]||(b=-b);mb(a,a.b&~c|a.b+b&c)}function mb(a,b){a.b=b&a.s.i;if(a.G!==a.b){a.G=a.b;b=a.G;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.l[e]=f;d.o||ob(d,e,f)}}}function gb(a,b){a.w=b%J;if(a.I!==a.w){a.I=a.w;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.l[e]=f;d.o||ob(d,e,f)}}return a.w}function nb(a,b){a.i=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.i&1<<b?1:0;kb(a);return!0}k.stop=function(){mb(this,this.h.o)};
function yb(a){var b=1,c=a.s.i;a.a[qb]&&a.a[qb][1]||(b=-b);mb(a,a.b&~c|a.b+b&c)}function mb(a,b){a.b=b&a.s.i;if(a.G!==a.b){a.G=a.b;b=a.G;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.l[e]=f;d.o||ob(d,e,f)}}}function gb(a,b){a.w=b%K;if(a.I!==a.w){a.I=a.w;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.l[e]=f;d.o||ob(d,e,f)}}return a.w}function nb(a,b){a.i=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.i&1<<b?1:0;kb(a);return!0}k.stop=function(){mb(this,this.h.o)};
function lb(){for(var a=G(document,F,"panel"),b=0;b<a.length;b++){var c=a[b],d=D(c),e=Oa(d.id);e||(e=new eb(d,!0));E(e,c)}}var fb=7,rb="DEP",tb="ENABLE",sb="EXAM",qb="STEP";w(lb);function Ab(a,b,c){y.call(this,"Bus",a);this.h=b;this.v=c;this.w=+a.busWidth||18;this.o=1<<this.w;this.i=this.o-1;this.b=Math.log2(16384);this.l=this.o/16384|0;this.j=0;this.a=[];a=new S(this);Bb(a);this.a=Array(this.l);for(b=0;b<this.l;b++)this.a[b]=a;H(this)}n(Ab,y);k=Ab.prototype;k.reset=function(){};
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new P(this);a.set(0,Cb(this));return a.data()};k.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,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],l=d[g++];h--;)f[e++]=l;d=f}e=this.a[c];if(!e||!e.restore(d)){u("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Db(a,b,c,d){for(var e=b,f=c,g=e>>>a.b;0<f&&g<a.a.length;){var h=a.a[g],l=16384*g,p=16384-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.aa)return h.ya+=h.aa-e,h.aa=e,!0;if(e>=h.aa+h.ya){p=h.size-(e-l);p>f&&(p=f);h.ya=e-h.aa+p;e=l+16384;f-=p;g++;continue}}return Eb(Fb,e,f)}e=new S(a,e,p,16384,d);Bb(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Gb[d]+" at "+la(b)),!0):Eb(Hb,b,c)}function zb(a,b,c){var d=a.a[(b&a.i)>>>a.b];a.j++;d.m(c,b&16383,b);a.j--}
@ -91,33 +91,33 @@ function ub(a){var b;a.g.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a
function dc(a){var b=+a.model||1001;Sb.call(this,a,1E6);this.Xa=b;this.na=+a.addrReset||0;this.Ya=ec.bind(this);this.a=T.bind(this);this.fa=null;this.Na=[];this.g.complete=!1}n(dc,Sb);k=dc.prototype;k.reset=function(){this.status("Model "+this.Xa);this.g.A&&Q(this);this.b=this.w=this.ta=0;this.o=this.Ba=this.na;this.l=-1;this.i=0;this.la=this.o;this.j=0;this.c=this.nb;this.f=this.yb;this.fa=null;Vb(this);this.g.error=!1;Sb.prototype.reset.call(this)};k.Ra=function(){return 0};
k.save=function(){var a=new P(this);a.set(0,[this.b,this.w,this.ta,this.o,this.l,this.i,this.j,this.Ba,this.la,this.na]);a.set(1,[]);a.set(2,[this.N,this.ca,this.g.J]);a.set(3,fc(this));a.set(4,ac(this));return a.data()};
k.restore=function(a){var b;b=a[0];ea();ba();ea();var c=b[Symbol.iterator];b=c?c.call(b):fa(b);this.b=b.next().value;this.w=b.next().value;this.ta=b.next().value;this.o=b.next().value;this.l=b.next().value;this.i=b.next().value;this.j=b.next().value;this.Ba=b.next().value;this.la=b.next().value;this.na=b.next().value;b=a[2];this.N=b[0];Yb(this,b[1]);this.g.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Na.length;d++){var e=this.Na[d];if(e.vb===b[c]){d=e;break a}}d=null}d&&(d.next=
this.fa,this.fa=d)}a=a[4];for(b=0;b<this.G.length&&b<a.length;b++)this.G[b][0]=a[b];return!0};function gc(a){a.o=(a.o+-1)%Wa}k.abs=function(a){a>N&&(a!=ab?a=bb-a:this.i|=163840);return a};function hc(a,b){b?b==ab?a.i|=163840:b=bb-b:a.i|=98304;return b}function fc(a){var b=[];for(a=a.fa;a;)b.push(a.vb),a=a.next;return b}k.nb=function(a){var b=this.s;a=this.la=a;return b.a[(a&b.i)>>>b.b].c(a&16383,a)};k.yb=function(a,b){var c=this.s;a=this.la=a;c.a[(a&c.i)>>>c.b].f(b,a&16383,a);return b};
k.za=function(a){this.g.complete=!0;var b=a?this.g.Ja?0:1:-1;this.g.Ja=!1;this.K=this.L=a;this.j=this.j&-5|0;do{if(a=this.j)if(a=this.j&11)this.j&2?this.fa||(this.j&=-3):this.j&1&&this.j++,a=!1;if(a){if(this.j&4&&this.v.j(this.o,b)){Q(this);break}if(0>b)break}this.j&=15;this.w=this.w&4194304?this.c(this.b):this.ta=this.c(this.Ba=this.o);this.w&=8388607;this.b=this.w&262143;if(a=this.w>>18&15)this.b=this.b+this.c(a)&Xa;this.w&4194304?a=-1:(this.o=(this.o+1)%Wa,a=this.ta/cb|0);0<=a&&this.Ya(a)}while(0<
this.L);return this.g.complete?this.K-this.L:!1===this.g.complete?-1:0};w(function(){for(var a=G(document,F,"cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new dc(d);E(d,c)}});function ec(a){ic[a>>4].call(this,a,a&15)}function U(a){this.a(a)}function jc(){var a=0,b=this.c(this.b),c=b/db&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*db+(d<<24)+(b&16777215);a&&(b=(b+a)%J);this.f(this.b,b)}
function kc(a,b){a=this.c(this.b);if(0>this.l)this.l=a,this.w=this.b|4194304,gc(this);else{var c=this.l/db&63,d=this.l>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.f(b,a);this.l=-1}}function lc(a,b){a=this.c(this.b);if(0>this.l)this.l=a,this.w=this.b|4194304,gc(this);else{var c=this.l/db&63,d=this.l>>24&63;b=this.c(b)%Math.pow(2,d)*Math.pow(2,c)%J;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.f(this.b,a);this.l=-1}}function mc(a,b){this.f(b,this.c(this.b))}
function nc(a,b){this.f(b,this.b)}function oc(a,b){this.f(this.b,this.c(b))}function pc(a,b){this.f(b,0)}function qc(a,b){this.f(b,K-this.c(b))}function rc(a,b){this.f(b,K)}function sc(a,b){var c=this.c(this.b),d=this.c(b);this.f(b,V(a,d,c)+(c-(c&M)))}function tc(a,b){var c=this.c(b);this.f(b,V(a,c,0))}function uc(a,b){b=this.c(b);var c=this.c(this.b);this.f(this.b,V(a,c,b)+(b-(b&M)))}
function vc(a,b){var c=this.c(this.b),d=c;if(a&=384)switch(d-=d&M,a){case 256:d+=M;break;case 384:d+=c>N?M:0}c=d;this.f(this.b,c);b&&this.f(b,c)}function wc(a,b){var c=(this.c(this.b)&M)*L,d=this.c(b);this.f(b,V(a,d,c)+c)}function xc(a,b){var c=this.b*L,d=this.c(b);this.f(b,V(a,d,c)+c)}function yc(a,b){b=(this.c(b)&M)*L;var c=this.c(this.b);this.f(this.b,V(a,c,b)+b)}function zc(a,b){var c=this.c(this.b),d=(c&M)*L,c=V(a,c,d)+d;this.f(this.b,c);b&&this.f(b,c)}
function Ac(a,b){var c=this.c(this.b)&M,d=this.c(b);this.f(b,W(a,d,c)+c)}function Bc(a,b){var c=this.c(b);this.f(b,W(a,c,this.b)+this.b)}function Cc(a,b){b=this.c(b)&M;var c=this.c(this.b);this.f(this.b,W(a,c,b)+b)}function Dc(a,b){var c=this.c(this.b),d=c;if(a&=384)switch(d&=M,a){case 256:d+=M*L;break;case 384:d+=c>$a?M*L:0}c=d;this.f(this.b,c);b&&this.f(b,c)}function Ec(a,b){var c=this.c(this.b)/L|0,d=this.c(b);this.f(b,W(a,d,c)+c)}function Fc(a,b){var c=this.c(b);this.f(b,W(a,c,0))}
function Gc(a,b){b=this.c(b)/L|0;var c=this.c(this.b);this.f(this.b,W(a,c,b)+b)}function Hc(a,b){var c=this.c(this.b),d=c/L|0,c=W(a,c,d)+d;this.f(this.b,c);b&&this.f(b,c)}function X(a){Ic[a&7].call(this,a,a>>3&127)}function Jc(){}function T(a){this.M("undefined opcode: "+la(a));gc(this);Q(this)}function W(a,b,c){switch(a&384){case 0:b-=b&M;break;case 128:b=0;break;case 256:b=M*L;break;case 384:b=c>$a?M*L:0}return b}
function V(a,b,c){switch(a&384){case 0:b&=M;break;case 128:b=0;break;case 256:b=M;break;case 384:b=c>N?M:0}return b}function Y(a,b){return((a/O|0)&(b/O|0))*O+((a&b)>>>0)}function Kc(a,b){return((a/O|0)^(b/O|0))*O+((a^b)>>>0)}function Lc(a,b){return(~((a/O|0)^(b/O|0))&15)*O+(~(a^b)>>>0)}function Z(a,b){return(a/O|0|b/O|0)*O+((a|b)>>>0)}
this.fa,this.fa=d)}a=a[4];for(b=0;b<this.G.length&&b<a.length;b++)this.G[b][0]=a[b];return!0};function gc(a){a.o=(a.o+-1)%Xa}k.abs=function(a){a>N&&(a!=ab?a=bb-a:this.i|=163840);return a};function hc(a,b){b?b==ab?a.i|=163840:b=bb-b:a.i|=98304;return b}function fc(a){var b=[];for(a=a.fa;a;)b.push(a.vb),a=a.next;return b}k.nb=function(a){var b=this.s;a=this.la=a;return b.a[(a&b.i)>>>b.b].c(a&16383,a)};k.yb=function(a,b){var c=this.s;a=this.la=a;c.a[(a&c.i)>>>c.b].f(b,a&16383,a);return b};
k.za=function(a){this.g.complete=!0;var b=a?this.g.Ja?0:1:-1;this.g.Ja=!1;this.K=this.L=a;this.j=this.j&-5|0;do{if(a=this.j)if(a=this.j&11)this.j&2?this.fa||(this.j&=-3):this.j&1&&this.j++,a=!1;if(a){if(this.j&4&&this.v.j(this.o,b)){Q(this);break}if(0>b)break}this.j&=15;this.w=this.w&4194304?this.c(this.b):this.ta=this.c(this.Ba=this.o);this.w&=8388607;this.b=this.w&262143;if(a=this.w>>18&15)this.b=this.b+this.c(a)&Wa;this.w&4194304?a=-1:(this.o=(this.o+1)%Xa,a=this.ta/cb|0);0<=a&&this.Ya(a)}while(0<
this.L);return this.g.complete?this.K-this.L:!1===this.g.complete?-1:0};w(function(){for(var a=G(document,F,"cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new dc(d);E(d,c)}});function ec(a){ic[a>>4].call(this,a,a&15)}function U(a){this.a(a)}function jc(){var a=0,b=this.c(this.b),c=b/db&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*db+(d<<24)+(b&16777215);a&&(b=(b+a)%K);this.f(this.b,b)}
function kc(a,b){a=this.c(this.b);if(0>this.l)this.l=a,this.w=this.b|4194304,gc(this);else{var c=this.l/db&63,d=this.l>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.f(b,a);this.l=-1}}function lc(a,b){a=this.c(this.b);if(0>this.l)this.l=a,this.w=this.b|4194304,gc(this);else{var c=this.l/db&63,d=this.l>>24&63;b=this.c(b)%Math.pow(2,d)*Math.pow(2,c)%K;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.f(this.b,a);this.l=-1}}function mc(a,b){this.f(b,this.c(this.b))}
function nc(a,b){this.f(b,this.b)}function oc(a,b){this.f(this.b,this.c(b))}function pc(a,b){this.f(b,0)}function qc(a,b){this.f(b,J-this.c(b))}function rc(a,b){this.f(b,J)}function sc(a,b){var c=this.c(this.b),d=this.c(b);this.f(b,V(a,d,c)+(c-(c&L)))}function tc(a,b){var c=this.c(b);this.f(b,V(a,c,0))}function uc(a,b){b=this.c(b);var c=this.c(this.b);this.f(this.b,V(a,c,b)+(b-(b&L)))}
function vc(a,b){var c=this.c(this.b),d=c;if(a&=384)switch(d-=d&L,a){case 256:d+=L;break;case 384:d+=c>N?L:0}c=d;this.f(this.b,c);b&&this.f(b,c)}function wc(a,b){var c=(this.c(this.b)&L)*M,d=this.c(b);this.f(b,V(a,d,c)+c)}function xc(a,b){var c=this.b*M,d=this.c(b);this.f(b,V(a,d,c)+c)}function yc(a,b){b=(this.c(b)&L)*M;var c=this.c(this.b);this.f(this.b,V(a,c,b)+b)}function zc(a,b){var c=this.c(this.b),d=(c&L)*M,c=V(a,c,d)+d;this.f(this.b,c);b&&this.f(b,c)}
function Ac(a,b){var c=this.c(this.b)&L,d=this.c(b);this.f(b,W(a,d,c)+c)}function Bc(a,b){var c=this.c(b);this.f(b,W(a,c,this.b)+this.b)}function Cc(a,b){b=this.c(b)&L;var c=this.c(this.b);this.f(this.b,W(a,c,b)+b)}function Dc(a,b){var c=this.c(this.b),d=c;if(a&=384)switch(d&=L,a){case 256:d+=L*M;break;case 384:d+=c>$a?L*M:0}c=d;this.f(this.b,c);b&&this.f(b,c)}function Ec(a,b){var c=this.c(this.b)/M|0,d=this.c(b);this.f(b,W(a,d,c)+c)}function Fc(a,b){var c=this.c(b);this.f(b,W(a,c,0))}
function Gc(a,b){b=this.c(b)/M|0;var c=this.c(this.b);this.f(this.b,W(a,c,b)+b)}function Hc(a,b){var c=this.c(this.b),d=c/M|0,c=W(a,c,d)+d;this.f(this.b,c);b&&this.f(b,c)}function X(a){Ic[a&7].call(this,a,a>>3&127)}function Jc(){}function T(a){this.M("undefined opcode: "+la(a));gc(this);Q(this)}function W(a,b,c){switch(a&384){case 0:b-=b&L;break;case 128:b=0;break;case 256:b=L*M;break;case 384:b=c>$a?L*M:0}return b}
function V(a,b,c){switch(a&384){case 0:b&=L;break;case 128:b=0;break;case 256:b=L;break;case 384:b=c>N?L:0}return b}function Y(a,b){return((a/O|0)&(b/O|0))*O+((a&b)>>>0)}function Kc(a,b){return((a/O|0)^(b/O|0))*O+((a^b)>>>0)}function Lc(a,b){return(~((a/O|0)^(b/O|0))&15)*O+(~(a^b)>>>0)}function Z(a,b){return(a/O|0|b/O|0)*O+((a|b)>>>0)}
var ic=[U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},jc,function(a,b){0>this.l&&jc.call(this);kc.call(this,0,b)},kc,function(a,b){0>this.l&&jc.call(this);lc.call(this,0,b)},lc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},mc,nc,oc,function(a,b){b&&this.f(b,this.c(this.b))},function(a,b){a=this.c(this.b);a=(a/L|0)+a%L*L;this.f(b,a)},function(a,b){this.f(b,this.b*L)},function(a,b){a=this.c(b);a=(a/L|0)+a%L*L;this.f(this.b,a)},function(a,b){a=this.c(this.b);a=(a/L|0)+a%L*L;this.f(this.b,a);b&&this.f(b,a)},function(a,b){this.f(b,hc(this,this.c(this.b)))},function(a,b){this.f(b,this.b?bb-this.b:0)},function(a,b){this.f(this.b,hc(this,
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},mc,nc,oc,function(a,b){b&&this.f(b,this.c(this.b))},function(a,b){a=this.c(this.b);a=(a/M|0)+a%M*M;this.f(b,a)},function(a,b){this.f(b,this.b*M)},function(a,b){a=this.c(b);a=(a/M|0)+a%M*M;this.f(this.b,a)},function(a,b){a=this.c(this.b);a=(a/M|0)+a%M*M;this.f(this.b,a);b&&this.f(b,a)},function(a,b){this.f(b,hc(this,this.c(this.b)))},function(a,b){this.f(b,this.b?bb-this.b:0)},function(a,b){this.f(this.b,hc(this,
this.c(b)))},function(a,b){a=hc(this,this.c(this.b));this.f(this.b,a);b&&this.f(b,a)},function(a,b){this.f(b,this.abs(this.c(this.b)))},function(a,b){this.f(b,this.b)},function(a,b){this.f(this.b,this.abs(this.c(b)))},function(a,b){a=this.abs(this.c(this.b));this.f(this.b,a);b&&this.f(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.c(b);var d=a>N?-(J-a):a;0<c?(35<=c?(d=0>d?Ya:0,c=Za):(d=d*Math.pow(2,c)%Ya,c=Ya-Math.pow(2,35-c)),a<=N?a+c>N&&(this.i|=131072):a-c<=N&&(this.i|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+J:d;this.f(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.c(b);0>a&&(a=36+a);c=c*Math.pow(2,
a)%J+Math.trunc(c/Math.pow(2,36-a));this.f(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.c(b),c=0<a?36<=a?0:c*Math.pow(2,a)%J:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.f(b,c)}},function(a){this.a(a)},function(a){this.a(a)},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.c(b),d=this.c(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%J+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%J+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%J+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,
a-36)%J+Math.trunc(d/Math.pow(2,72-a)));this.f(b,c);this.f(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.c(b),d=this.c(b+1&15);0<a?36<=a?(d=0,c=72<=a?0:d*Math.pow(2,a-36)%J):(c=c*Math.pow(2,a)%J+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%J):-36>=a?(c=0,d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36))):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%J,c=Math.trunc(c/Math.pow(2,-a)));this.f(b,c);this.f(b+1&15,d)}},T,function(a,b){a=this.c(b);this.f(b,this.c(this.b));this.f(this.b,
a)},function(a,b){a=!1;for(var c=this.c(b),d=c/L|0,c=c&M;!a;)this.f(c,this.c(d)),c==this.b&&(a=!0),d=d+1&M,c=c+1&M,this.g.A||(this.f(b,d*L+c),a||gc(this),a=!0)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},T,function(a){this.a(a)},function(a,b){a=this.c(b);a+=262145;this.f(a&M,this.c(this.b));a>=J&&(a-=J);a/L|0||(this.i|=262144);this.f(b,a)},function(a,b){a=this.c(b);var c=this.c(a&M);this.f(this.b,c);this.b==b&&(a=c);a-=262145;
0>a&&(a+=J);(a/L|0)==M&&(this.i|=262144);this.f(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.c(b);var d=a>N?-(K-a):a;0<c?(35<=c?(d=0>d?Za:0,c=Ya):(d=d*Math.pow(2,c)%Za,c=Za-Math.pow(2,35-c)),a<=N?a+c>N&&(this.i|=131072):a-c<=N&&(this.i|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+K:d;this.f(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.c(b);0>a&&(a=36+a);c=c*Math.pow(2,
a)%K+Math.trunc(c/Math.pow(2,36-a));this.f(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.c(b),c=0<a?36<=a?0:c*Math.pow(2,a)%K:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.f(b,c)}},function(a){this.a(a)},function(a){this.a(a)},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.c(b),d=this.c(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%K+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%K+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%K+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,
a-36)%K+Math.trunc(d/Math.pow(2,72-a)));this.f(b,c);this.f(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.c(b),d=this.c(b+1&15);0<a?36<=a?(d=0,c=72<=a?0:d*Math.pow(2,a-36)%K):(c=c*Math.pow(2,a)%K+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%K):-36>=a?(c=0,d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36))):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%K,c=Math.trunc(c/Math.pow(2,-a)));this.f(b,c);this.f(b+1&15,d)}},T,function(a,b){a=this.c(b);this.f(b,this.c(this.b));this.f(this.b,
a)},function(a,b){a=!1;for(var c=this.c(b),d=c/M|0,c=c&L;!a;)this.f(c,this.c(d)),c==this.b&&(a=!0),d=d+1&L,c=c+1&L,this.g.A||(this.f(b,d*M+c),a||gc(this),a=!0)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},T,function(a){this.a(a)},function(a,b){a=this.c(b);a+=262145;this.f(a&L,this.c(this.b));a>=K&&(a-=K);a/M|0||(this.i|=262144);this.f(b,a)},function(a,b){a=this.c(b);var c=this.c(a&L);this.f(this.b,c);this.b==b&&(a=c);a-=262145;
0>a&&(a+=K);(a/M|0)==L&&(this.i|=262144);this.f(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},pc,pc,function(){this.f(this.b,0)},function(a,b){this.f(this.b,this.f(b,0))},function(a,b){this.f(b,Y(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Y(this.c(b),this.b))},function(a,b){this.f(this.b,
Y(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(this.c(b),this.c(this.b))))},function(a,b){this.f(b,Y(K-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Y(K-this.c(b),this.b))},function(a,b){this.f(this.b,Y(K-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(K-this.c(b),this.c(this.b))))},mc,nc,Jc,mc,function(a,b){this.f(b,Y(this.c(b),K-this.c(this.b)))},function(a,b){this.f(b,Y(this.c(b),K-this.b))},function(a,b){this.f(this.b,Y(this.c(b),K-this.c(this.b)))},
function(a,b){this.f(this.b,this.f(b,Y(this.c(b),K-this.c(this.b))))},Jc,Jc,oc,oc,function(a,b){this.f(b,Kc(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Kc(this.c(b),this.b))},function(a,b){this.f(this.b,Kc(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Kc(this.c(b),this.c(this.b))))},function(a,b){this.f(b,Z(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z(this.c(b),this.b))},function(a,b){this.f(this.b,Z(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,
Z(this.c(b),this.c(this.b))))},function(a,b){this.f(b,Y(K-this.c(b),K-this.c(this.b)))},function(a,b){this.f(b,Y(K-this.c(b),K-this.b))},function(a,b){this.f(this.b,Y(K-this.c(b),K-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(K-this.c(b),K-this.c(this.b))))},function(a,b){this.f(b,Lc(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Lc(this.c(b),this.b))},function(a,b){this.f(this.b,Lc(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Lc(this.c(b),this.c(this.b))))},qc,
qc,function(a,b){this.f(this.b,K-this.c(b))},function(a,b){this.f(this.b,this.f(b,K-this.c(b)))},function(a,b){this.f(b,Z(K-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z(K-this.c(b),this.b))},function(a,b){this.f(this.b,Z(K-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(K-this.c(b),this.c(this.b))))},function(a,b){this.f(b,K-this.c(this.b))},function(a,b){this.f(b,K-this.b)},function(){this.f(this.b,K-this.c(this.b))},function(a,b){this.f(this.b,this.f(b,K-this.c(this.b)))},
function(a,b){this.f(b,Z(this.c(b),K-this.c(this.b)))},function(a,b){this.f(b,Z(this.c(b),K-this.b))},function(a,b){this.f(this.b,Z(this.c(b),K-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(this.c(b),K-this.c(this.b))))},function(a,b){this.f(b,Z(K-this.c(b),K-this.c(this.b)))},function(a,b){this.f(b,Z(K-this.c(b),K-this.b))},function(a,b){this.f(this.b,Z(K-this.c(b),K-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(K-this.c(b),K-this.c(this.b))))},rc,rc,function(){this.f(this.b,
K)},function(a,b){this.f(this.b,this.f(b,K))},sc,tc,uc,vc,wc,xc,yc,zc,sc,tc,uc,vc,wc,xc,yc,zc,sc,tc,uc,vc,wc,xc,yc,zc,sc,tc,uc,vc,wc,xc,yc,zc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,Hc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,Hc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,Hc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,Hc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
Y(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(this.c(b),this.c(this.b))))},function(a,b){this.f(b,Y(J-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Y(J-this.c(b),this.b))},function(a,b){this.f(this.b,Y(J-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(J-this.c(b),this.c(this.b))))},mc,nc,Jc,mc,function(a,b){this.f(b,Y(this.c(b),J-this.c(this.b)))},function(a,b){this.f(b,Y(this.c(b),J-this.b))},function(a,b){this.f(this.b,Y(this.c(b),J-this.c(this.b)))},
function(a,b){this.f(this.b,this.f(b,Y(this.c(b),J-this.c(this.b))))},Jc,Jc,oc,oc,function(a,b){this.f(b,Kc(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Kc(this.c(b),this.b))},function(a,b){this.f(this.b,Kc(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Kc(this.c(b),this.c(this.b))))},function(a,b){this.f(b,Z(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z(this.c(b),this.b))},function(a,b){this.f(this.b,Z(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,
Z(this.c(b),this.c(this.b))))},function(a,b){this.f(b,Y(J-this.c(b),J-this.c(this.b)))},function(a,b){this.f(b,Y(J-this.c(b),J-this.b))},function(a,b){this.f(this.b,Y(J-this.c(b),J-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(J-this.c(b),J-this.c(this.b))))},function(a,b){this.f(b,Lc(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Lc(this.c(b),this.b))},function(a,b){this.f(this.b,Lc(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Lc(this.c(b),this.c(this.b))))},qc,
qc,function(a,b){this.f(this.b,J-this.c(b))},function(a,b){this.f(this.b,this.f(b,J-this.c(b)))},function(a,b){this.f(b,Z(J-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z(J-this.c(b),this.b))},function(a,b){this.f(this.b,Z(J-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(J-this.c(b),this.c(this.b))))},function(a,b){this.f(b,J-this.c(this.b))},function(a,b){this.f(b,J-this.b)},function(){this.f(this.b,J-this.c(this.b))},function(a,b){this.f(this.b,this.f(b,J-this.c(this.b)))},
function(a,b){this.f(b,Z(this.c(b),J-this.c(this.b)))},function(a,b){this.f(b,Z(this.c(b),J-this.b))},function(a,b){this.f(this.b,Z(this.c(b),J-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(this.c(b),J-this.c(this.b))))},function(a,b){this.f(b,Z(J-this.c(b),J-this.c(this.b)))},function(a,b){this.f(b,Z(J-this.c(b),J-this.b))},function(a,b){this.f(this.b,Z(J-this.c(b),J-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(J-this.c(b),J-this.c(this.b))))},rc,rc,function(){this.f(this.b,
J)},function(a,b){this.f(this.b,this.f(b,J))},sc,tc,uc,vc,wc,xc,yc,zc,sc,tc,uc,vc,wc,xc,yc,zc,sc,tc,uc,vc,wc,xc,yc,zc,sc,tc,uc,vc,wc,xc,yc,zc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,Hc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,Hc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,Hc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,Hc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X],Ic=[function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){switch(b){case 0:a=this.c(this.b);a&8&&(this.i&=-131073);a&131072&&(this.i&=-262145);
@ -129,8 +129,8 @@ d=d.i;g=0;for(e>>>=f.b;0<d&&e<f.a.length;){l=h[g++];if(!l)break;f.a[e++]=l;d-=16
function Oc(a){y.call(this,"RAM",a);this.O=this.Y=null;this.b=+a.addr;this.i=+a.size;this.T=a.load;this.S=a.exec;null!=this.T&&(this.T=+this.T);null!=this.S&&(this.S=+this.S);this.j=this.o=!1;this.a=a.file;this.l=ma(this.a);if(this.a){a=this.a;var b=na(this.l);"json"!=b&&"hex"!=b&&(a=pa()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;t(a,null,!0,function(a,b,f){f?(c.F("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(Ka(c.pa,a,b),(a=va(a,b))?(c.Y=a.Y,c.O=a.O,null==
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);Pc(c)})}}n(Oc,y);Oc.prototype.Z=function(a,b,c,d){this.s=b;this.h=c;this.v=d;Pc(this)};Oc.prototype.V=function(a,b){this.O&&(this.v&&this.v.a(this.id,this.b,this.i,this.O),delete this.O);b||this.reset();return!0};Oc.prototype.R=function(){return!0};
function Pc(a){if(a.s&&(!a.j&&a.i&&(Db(a.s,a.b,a.i,1)?a.j=!0:a.i=0),!Ua(a))){if(!a.j)u("No RAM allocated");else if(a.a){if(!a.Y)return;Qc(a,a.Y,a.T,a.S,a.b)?a.status('Loaded image "'+a.l+'"'):a.F('Error loading image "'+a.l+'"')}a.o=!0;H(a)}}
Oc.prototype.reset=function(){if(this.j&&!this.o){for(var a=this.s,b=this.b,c=this.i,d=b&16383,b=b>>>a.b;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=ja&&(g+=ia);g=Math.trunc(Math.abs(g))%Math.pow(2,36);void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.m(g,d,e.aa+d);c-=16384;b++;d=0}this.Y&&Qc(this,this.Y,this.T,this.S,this.b,!this.v)}this.o=!1};
function Qc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)zb(a.s,c+g,b[g]);g=!0}g&&(null==d&&(Q(a.h),f=!1),null!=d&&(a=a.h,a.na=d,a.o=d%Wa,f?a.g.D?a.g.A||ub(a):a.g.J=!0:a.v&&a.g.D?Q(a)||a.u.g.reset||(a.v.i(),R(a.u,-1)):!1===f&&Q(a),!a.g.A&&a.ma&&a.ma.stop()));return g}w(function(){for(var a=G(document,F,"ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Oc(d);E(d,c)}});
Oc.prototype.reset=function(){if(this.j&&!this.o){for(var a=this.s,b=this.b,c=this.i,d=b&16383,b=b>>>a.b;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=-ja&&(g+=ia);g=Math.trunc(Math.abs(g))%Math.pow(2,36);void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.m(g,d,e.aa+d);c-=16384;b++;d=0}this.Y&&Qc(this,this.Y,this.T,this.S,this.b,!this.v)}this.o=!1};
function Qc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)zb(a.s,c+g,b[g]);g=!0}g&&(null==d&&(Q(a.h),f=!1),null!=d&&(a=a.h,a.na=d,a.o=d%Xa,f?a.g.D?a.g.A||ub(a):a.g.J=!0:a.v&&a.g.D?Q(a)||a.u.g.reset||(a.v.i(),R(a.u,-1)):!1===f&&Q(a),!a.g.A&&a.ma&&a.ma.stop()));return g}w(function(){for(var a=G(document,F,"ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Oc(d);E(d,c)}});
function Rc(a){y.call(this,"SerialPort",a);this.j=a.upperCase;"string"==typeof this.j&&(this.j="true"==this.j);this.i=!0;this.b=[];var b=a.binding;if("console"!=b){var c;a=Sc;b&&(void 0===c&&(c="Panel"),(c=C(c,this.id))&&(b=c.m[b])&&this.U(null,a,b))}this.a=this.l=null;this.exports={connect:this.Sa,receiveData:this.xa,receiveStatus:this.pb,setConnection:this.sb}}n(Rc,y);k=Rc.prototype;
k.U=function(a,b,c){var d=this;switch(b){case Sc:return this.m[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Ma:q.Wa:46==c?b=q.Ma:a.ctrlKey&&c>=q.La&&c<=q.$a&&(b=c-(q.La-q.Ta));b&&(a.preventDefault&&a.preventDefault(),d.xa(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Va&&(b=q.Ua);d.xa(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.xa(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.u=a;this.s=b;this.h=c;this.v=d;H(this)};